├── .eslintrc.cjs
├── .gitignore
├── index.html
├── package.json
├── pnpm-lock.yaml
├── public
└── vite.svg
├── src
├── App.css
├── App.jsx
├── assets
│ └── react.svg
├── components
│ ├── Navbar.jsx
│ ├── TaskCard.jsx
│ ├── TaskForm.jsx
│ ├── TasksDoneList.jsx
│ └── TasksList.jsx
├── context
│ ├── AuthContext.jsx
│ └── TaskContext.jsx
├── index.css
├── main.jsx
├── pages
│ ├── Home.jsx
│ ├── Login.jsx
│ └── NotFound.jsx
└── supabase
│ └── client.js
└── vite.config.js
/.eslintrc.cjs:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | env: { browser: true, es2020: true },
3 | extends: [
4 | 'eslint:recommended',
5 | 'plugin:react/recommended',
6 | 'plugin:react/jsx-runtime',
7 | 'plugin:react-hooks/recommended',
8 | ],
9 | parserOptions: { ecmaVersion: 'latest', sourceType: 'module' },
10 | settings: { react: { version: '18.2' } },
11 | plugins: ['react-refresh'],
12 | rules: {
13 | 'react-refresh/only-export-components': 'warn',
14 | },
15 | }
16 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # Logs
2 | logs
3 | *.log
4 | npm-debug.log*
5 | yarn-debug.log*
6 | yarn-error.log*
7 | pnpm-debug.log*
8 | lerna-debug.log*
9 |
10 | node_modules
11 | dist
12 | dist-ssr
13 | *.local
14 |
15 | # Editor directories and files
16 | .vscode/*
17 | !.vscode/extensions.json
18 | .idea
19 | .DS_Store
20 | *.suo
21 | *.ntvs*
22 | *.njsproj
23 | *.sln
24 | *.sw?
25 |
--------------------------------------------------------------------------------
/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | Vite + React
8 |
9 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "client",
3 | "private": true,
4 | "version": "0.0.0",
5 | "type": "module",
6 | "scripts": {
7 | "dev": "vite",
8 | "build": "vite build",
9 | "lint": "eslint src --ext js,jsx --report-unused-disable-directives --max-warnings 0",
10 | "preview": "vite preview"
11 | },
12 | "dependencies": {
13 | "@supabase/supabase-js": "^2.22.0",
14 | "react": "^18.2.0",
15 | "react-dom": "^18.2.0",
16 | "react-router-dom": "^6.11.1"
17 | },
18 | "devDependencies": {
19 | "@types/react": "^18.0.28",
20 | "@types/react-dom": "^18.0.11",
21 | "@vitejs/plugin-react-swc": "^3.0.0",
22 | "eslint": "^8.38.0",
23 | "eslint-plugin-react": "^7.32.2",
24 | "eslint-plugin-react-hooks": "^4.6.0",
25 | "eslint-plugin-react-refresh": "^0.3.4",
26 | "vite": "^4.3.2"
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/pnpm-lock.yaml:
--------------------------------------------------------------------------------
1 | lockfileVersion: 5.4
2 |
3 | specifiers:
4 | '@supabase/supabase-js': ^2.22.0
5 | '@types/react': ^18.0.28
6 | '@types/react-dom': ^18.0.11
7 | '@vitejs/plugin-react-swc': ^3.0.0
8 | eslint: ^8.38.0
9 | eslint-plugin-react: ^7.32.2
10 | eslint-plugin-react-hooks: ^4.6.0
11 | eslint-plugin-react-refresh: ^0.3.4
12 | react: ^18.2.0
13 | react-dom: ^18.2.0
14 | react-router-dom: ^6.11.1
15 | vite: ^4.3.2
16 |
17 | dependencies:
18 | '@supabase/supabase-js': 2.22.0
19 | react: 18.2.0
20 | react-dom: 18.2.0_react@18.2.0
21 | react-router-dom: 6.11.1_biqbaboplfbrettd7655fr4n2y
22 |
23 | devDependencies:
24 | '@types/react': 18.2.6
25 | '@types/react-dom': 18.2.4
26 | '@vitejs/plugin-react-swc': 3.3.1_vite@4.3.6
27 | eslint: 8.40.0
28 | eslint-plugin-react: 7.32.2_eslint@8.40.0
29 | eslint-plugin-react-hooks: 4.6.0_eslint@8.40.0
30 | eslint-plugin-react-refresh: 0.3.5_eslint@8.40.0
31 | vite: 4.3.6
32 |
33 | packages:
34 |
35 | /@esbuild/android-arm/0.17.19:
36 | resolution: {integrity: sha512-rIKddzqhmav7MSmoFCmDIb6e2W57geRsM94gV2l38fzhXMwq7hZoClug9USI2pFRGL06f4IOPHHpFNOkWieR8A==}
37 | engines: {node: '>=12'}
38 | cpu: [arm]
39 | os: [android]
40 | requiresBuild: true
41 | dev: true
42 | optional: true
43 |
44 | /@esbuild/android-arm64/0.17.19:
45 | resolution: {integrity: sha512-KBMWvEZooR7+kzY0BtbTQn0OAYY7CsiydT63pVEaPtVYF0hXbUaOyZog37DKxK7NF3XacBJOpYT4adIJh+avxA==}
46 | engines: {node: '>=12'}
47 | cpu: [arm64]
48 | os: [android]
49 | requiresBuild: true
50 | dev: true
51 | optional: true
52 |
53 | /@esbuild/android-x64/0.17.19:
54 | resolution: {integrity: sha512-uUTTc4xGNDT7YSArp/zbtmbhO0uEEK9/ETW29Wk1thYUJBz3IVnvgEiEwEa9IeLyvnpKrWK64Utw2bgUmDveww==}
55 | engines: {node: '>=12'}
56 | cpu: [x64]
57 | os: [android]
58 | requiresBuild: true
59 | dev: true
60 | optional: true
61 |
62 | /@esbuild/darwin-arm64/0.17.19:
63 | resolution: {integrity: sha512-80wEoCfF/hFKM6WE1FyBHc9SfUblloAWx6FJkFWTWiCoht9Mc0ARGEM47e67W9rI09YoUxJL68WHfDRYEAvOhg==}
64 | engines: {node: '>=12'}
65 | cpu: [arm64]
66 | os: [darwin]
67 | requiresBuild: true
68 | dev: true
69 | optional: true
70 |
71 | /@esbuild/darwin-x64/0.17.19:
72 | resolution: {integrity: sha512-IJM4JJsLhRYr9xdtLytPLSH9k/oxR3boaUIYiHkAawtwNOXKE8KoU8tMvryogdcT8AU+Bflmh81Xn6Q0vTZbQw==}
73 | engines: {node: '>=12'}
74 | cpu: [x64]
75 | os: [darwin]
76 | requiresBuild: true
77 | dev: true
78 | optional: true
79 |
80 | /@esbuild/freebsd-arm64/0.17.19:
81 | resolution: {integrity: sha512-pBwbc7DufluUeGdjSU5Si+P3SoMF5DQ/F/UmTSb8HXO80ZEAJmrykPyzo1IfNbAoaqw48YRpv8shwd1NoI0jcQ==}
82 | engines: {node: '>=12'}
83 | cpu: [arm64]
84 | os: [freebsd]
85 | requiresBuild: true
86 | dev: true
87 | optional: true
88 |
89 | /@esbuild/freebsd-x64/0.17.19:
90 | resolution: {integrity: sha512-4lu+n8Wk0XlajEhbEffdy2xy53dpR06SlzvhGByyg36qJw6Kpfk7cp45DR/62aPH9mtJRmIyrXAS5UWBrJT6TQ==}
91 | engines: {node: '>=12'}
92 | cpu: [x64]
93 | os: [freebsd]
94 | requiresBuild: true
95 | dev: true
96 | optional: true
97 |
98 | /@esbuild/linux-arm/0.17.19:
99 | resolution: {integrity: sha512-cdmT3KxjlOQ/gZ2cjfrQOtmhG4HJs6hhvm3mWSRDPtZ/lP5oe8FWceS10JaSJC13GBd4eH/haHnqf7hhGNLerA==}
100 | engines: {node: '>=12'}
101 | cpu: [arm]
102 | os: [linux]
103 | requiresBuild: true
104 | dev: true
105 | optional: true
106 |
107 | /@esbuild/linux-arm64/0.17.19:
108 | resolution: {integrity: sha512-ct1Tg3WGwd3P+oZYqic+YZF4snNl2bsnMKRkb3ozHmnM0dGWuxcPTTntAF6bOP0Sp4x0PjSF+4uHQ1xvxfRKqg==}
109 | engines: {node: '>=12'}
110 | cpu: [arm64]
111 | os: [linux]
112 | requiresBuild: true
113 | dev: true
114 | optional: true
115 |
116 | /@esbuild/linux-ia32/0.17.19:
117 | resolution: {integrity: sha512-w4IRhSy1VbsNxHRQpeGCHEmibqdTUx61Vc38APcsRbuVgK0OPEnQ0YD39Brymn96mOx48Y2laBQGqgZ0j9w6SQ==}
118 | engines: {node: '>=12'}
119 | cpu: [ia32]
120 | os: [linux]
121 | requiresBuild: true
122 | dev: true
123 | optional: true
124 |
125 | /@esbuild/linux-loong64/0.17.19:
126 | resolution: {integrity: sha512-2iAngUbBPMq439a+z//gE+9WBldoMp1s5GWsUSgqHLzLJ9WoZLZhpwWuym0u0u/4XmZ3gpHmzV84PonE+9IIdQ==}
127 | engines: {node: '>=12'}
128 | cpu: [loong64]
129 | os: [linux]
130 | requiresBuild: true
131 | dev: true
132 | optional: true
133 |
134 | /@esbuild/linux-mips64el/0.17.19:
135 | resolution: {integrity: sha512-LKJltc4LVdMKHsrFe4MGNPp0hqDFA1Wpt3jE1gEyM3nKUvOiO//9PheZZHfYRfYl6AwdTH4aTcXSqBerX0ml4A==}
136 | engines: {node: '>=12'}
137 | cpu: [mips64el]
138 | os: [linux]
139 | requiresBuild: true
140 | dev: true
141 | optional: true
142 |
143 | /@esbuild/linux-ppc64/0.17.19:
144 | resolution: {integrity: sha512-/c/DGybs95WXNS8y3Ti/ytqETiW7EU44MEKuCAcpPto3YjQbyK3IQVKfF6nbghD7EcLUGl0NbiL5Rt5DMhn5tg==}
145 | engines: {node: '>=12'}
146 | cpu: [ppc64]
147 | os: [linux]
148 | requiresBuild: true
149 | dev: true
150 | optional: true
151 |
152 | /@esbuild/linux-riscv64/0.17.19:
153 | resolution: {integrity: sha512-FC3nUAWhvFoutlhAkgHf8f5HwFWUL6bYdvLc/TTuxKlvLi3+pPzdZiFKSWz/PF30TB1K19SuCxDTI5KcqASJqA==}
154 | engines: {node: '>=12'}
155 | cpu: [riscv64]
156 | os: [linux]
157 | requiresBuild: true
158 | dev: true
159 | optional: true
160 |
161 | /@esbuild/linux-s390x/0.17.19:
162 | resolution: {integrity: sha512-IbFsFbxMWLuKEbH+7sTkKzL6NJmG2vRyy6K7JJo55w+8xDk7RElYn6xvXtDW8HCfoKBFK69f3pgBJSUSQPr+4Q==}
163 | engines: {node: '>=12'}
164 | cpu: [s390x]
165 | os: [linux]
166 | requiresBuild: true
167 | dev: true
168 | optional: true
169 |
170 | /@esbuild/linux-x64/0.17.19:
171 | resolution: {integrity: sha512-68ngA9lg2H6zkZcyp22tsVt38mlhWde8l3eJLWkyLrp4HwMUr3c1s/M2t7+kHIhvMjglIBrFpncX1SzMckomGw==}
172 | engines: {node: '>=12'}
173 | cpu: [x64]
174 | os: [linux]
175 | requiresBuild: true
176 | dev: true
177 | optional: true
178 |
179 | /@esbuild/netbsd-x64/0.17.19:
180 | resolution: {integrity: sha512-CwFq42rXCR8TYIjIfpXCbRX0rp1jo6cPIUPSaWwzbVI4aOfX96OXY8M6KNmtPcg7QjYeDmN+DD0Wp3LaBOLf4Q==}
181 | engines: {node: '>=12'}
182 | cpu: [x64]
183 | os: [netbsd]
184 | requiresBuild: true
185 | dev: true
186 | optional: true
187 |
188 | /@esbuild/openbsd-x64/0.17.19:
189 | resolution: {integrity: sha512-cnq5brJYrSZ2CF6c35eCmviIN3k3RczmHz8eYaVlNasVqsNY+JKohZU5MKmaOI+KkllCdzOKKdPs762VCPC20g==}
190 | engines: {node: '>=12'}
191 | cpu: [x64]
192 | os: [openbsd]
193 | requiresBuild: true
194 | dev: true
195 | optional: true
196 |
197 | /@esbuild/sunos-x64/0.17.19:
198 | resolution: {integrity: sha512-vCRT7yP3zX+bKWFeP/zdS6SqdWB8OIpaRq/mbXQxTGHnIxspRtigpkUcDMlSCOejlHowLqII7K2JKevwyRP2rg==}
199 | engines: {node: '>=12'}
200 | cpu: [x64]
201 | os: [sunos]
202 | requiresBuild: true
203 | dev: true
204 | optional: true
205 |
206 | /@esbuild/win32-arm64/0.17.19:
207 | resolution: {integrity: sha512-yYx+8jwowUstVdorcMdNlzklLYhPxjniHWFKgRqH7IFlUEa0Umu3KuYplf1HUZZ422e3NU9F4LGb+4O0Kdcaag==}
208 | engines: {node: '>=12'}
209 | cpu: [arm64]
210 | os: [win32]
211 | requiresBuild: true
212 | dev: true
213 | optional: true
214 |
215 | /@esbuild/win32-ia32/0.17.19:
216 | resolution: {integrity: sha512-eggDKanJszUtCdlVs0RB+h35wNlb5v4TWEkq4vZcmVt5u/HiDZrTXe2bWFQUez3RgNHwx/x4sk5++4NSSicKkw==}
217 | engines: {node: '>=12'}
218 | cpu: [ia32]
219 | os: [win32]
220 | requiresBuild: true
221 | dev: true
222 | optional: true
223 |
224 | /@esbuild/win32-x64/0.17.19:
225 | resolution: {integrity: sha512-lAhycmKnVOuRYNtRtatQR1LPQf2oYCkRGkSFnseDAKPl8lu5SOsK/e1sXe5a0Pc5kHIHe6P2I/ilntNv2xf3cA==}
226 | engines: {node: '>=12'}
227 | cpu: [x64]
228 | os: [win32]
229 | requiresBuild: true
230 | dev: true
231 | optional: true
232 |
233 | /@eslint-community/eslint-utils/4.4.0_eslint@8.40.0:
234 | resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==}
235 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
236 | peerDependencies:
237 | eslint: ^6.0.0 || ^7.0.0 || >=8.0.0
238 | dependencies:
239 | eslint: 8.40.0
240 | eslint-visitor-keys: 3.4.1
241 | dev: true
242 |
243 | /@eslint-community/regexpp/4.5.1:
244 | resolution: {integrity: sha512-Z5ba73P98O1KUYCCJTUeVpja9RcGoMdncZ6T49FCUl2lN38JtCJ+3WgIDBv0AuY4WChU5PmtJmOCTlN6FZTFKQ==}
245 | engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0}
246 | dev: true
247 |
248 | /@eslint/eslintrc/2.0.3:
249 | resolution: {integrity: sha512-+5gy6OQfk+xx3q0d6jGZZC3f3KzAkXc/IanVxd1is/VIIziRqqt3ongQz0FiTUXqTk0c7aDB3OaFuKnuSoJicQ==}
250 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
251 | dependencies:
252 | ajv: 6.12.6
253 | debug: 4.3.4
254 | espree: 9.5.2
255 | globals: 13.20.0
256 | ignore: 5.2.4
257 | import-fresh: 3.3.0
258 | js-yaml: 4.1.0
259 | minimatch: 3.1.2
260 | strip-json-comments: 3.1.1
261 | transitivePeerDependencies:
262 | - supports-color
263 | dev: true
264 |
265 | /@eslint/js/8.40.0:
266 | resolution: {integrity: sha512-ElyB54bJIhXQYVKjDSvCkPO1iU1tSAeVQJbllWJq1XQSmmA4dgFk8CbiBGpiOPxleE48vDogxCtmMYku4HSVLA==}
267 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
268 | dev: true
269 |
270 | /@humanwhocodes/config-array/0.11.8:
271 | resolution: {integrity: sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==}
272 | engines: {node: '>=10.10.0'}
273 | dependencies:
274 | '@humanwhocodes/object-schema': 1.2.1
275 | debug: 4.3.4
276 | minimatch: 3.1.2
277 | transitivePeerDependencies:
278 | - supports-color
279 | dev: true
280 |
281 | /@humanwhocodes/module-importer/1.0.1:
282 | resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==}
283 | engines: {node: '>=12.22'}
284 | dev: true
285 |
286 | /@humanwhocodes/object-schema/1.2.1:
287 | resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==}
288 | dev: true
289 |
290 | /@nodelib/fs.scandir/2.1.5:
291 | resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==}
292 | engines: {node: '>= 8'}
293 | dependencies:
294 | '@nodelib/fs.stat': 2.0.5
295 | run-parallel: 1.2.0
296 | dev: true
297 |
298 | /@nodelib/fs.stat/2.0.5:
299 | resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==}
300 | engines: {node: '>= 8'}
301 | dev: true
302 |
303 | /@nodelib/fs.walk/1.2.8:
304 | resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==}
305 | engines: {node: '>= 8'}
306 | dependencies:
307 | '@nodelib/fs.scandir': 2.1.5
308 | fastq: 1.15.0
309 | dev: true
310 |
311 | /@remix-run/router/1.6.1:
312 | resolution: {integrity: sha512-YUkWj+xs0oOzBe74OgErsuR3wVn+efrFhXBWrit50kOiED+pvQe2r6MWY0iJMQU/mSVKxvNzL4ZaYvjdX+G7ZA==}
313 | engines: {node: '>=14'}
314 | dev: false
315 |
316 | /@supabase/functions-js/2.1.1:
317 | resolution: {integrity: sha512-bIR1Puae6W+1/MzPfYBWOG/SCWGo4B5CB7c0ZZksvliNEAzhxNBJ0UFKYINcGdGtxG8ZC+1xr3utWpNZNwnoRw==}
318 | dependencies:
319 | cross-fetch: 3.1.6
320 | transitivePeerDependencies:
321 | - encoding
322 | dev: false
323 |
324 | /@supabase/gotrue-js/2.26.0:
325 | resolution: {integrity: sha512-orxz8nwaF5D1nY/9H5xxTfFSCTvYeDLx24UO/Mxsx83xFP0t5RNxQZ0lEHBOhHhXJ4vR/COv79AxoWCOTu/7Rg==}
326 | dependencies:
327 | cross-fetch: 3.1.6
328 | transitivePeerDependencies:
329 | - encoding
330 | dev: false
331 |
332 | /@supabase/postgrest-js/1.6.1:
333 | resolution: {integrity: sha512-WDBUPOCOwcZonaCwEodwdA8hwWYOiXroDF9vWGxZxKAnuSVE2Ieci/kvhR4EsWvgGST2h90LRowgO+msXe8+fA==}
334 | dependencies:
335 | cross-fetch: 3.1.6
336 | transitivePeerDependencies:
337 | - encoding
338 | dev: false
339 |
340 | /@supabase/realtime-js/2.7.2:
341 | resolution: {integrity: sha512-Fi6xAl5PUkqnjl3wo4rdcQIbMG3+yTRX1aUZe/yfvTG84RMvmCXJ1yN6MmafVLeZpU1xkaz5Vx4L0tnHcLiy6w==}
342 | dependencies:
343 | '@types/phoenix': 1.5.6
344 | '@types/websocket': 1.0.5
345 | websocket: 1.0.34
346 | transitivePeerDependencies:
347 | - supports-color
348 | dev: false
349 |
350 | /@supabase/storage-js/2.5.1:
351 | resolution: {integrity: sha512-nkR0fQA9ScAtIKA3vNoPEqbZv1k5B5HVRYEvRWdlP6mUpFphM9TwPL2jZ/ztNGMTG5xT6SrHr+H7Ykz8qzbhjw==}
352 | dependencies:
353 | cross-fetch: 3.1.6
354 | transitivePeerDependencies:
355 | - encoding
356 | dev: false
357 |
358 | /@supabase/supabase-js/2.22.0:
359 | resolution: {integrity: sha512-omkgSWL1HwnpXZZy+yshFLx/qqxwk9kx9jbRM6IHNEylKrH/sz6JX7rGyIOmN9niDxMRjsCu1nwuBhD6IiF2xg==}
360 | dependencies:
361 | '@supabase/functions-js': 2.1.1
362 | '@supabase/gotrue-js': 2.26.0
363 | '@supabase/postgrest-js': 1.6.1
364 | '@supabase/realtime-js': 2.7.2
365 | '@supabase/storage-js': 2.5.1
366 | cross-fetch: 3.1.6
367 | transitivePeerDependencies:
368 | - encoding
369 | - supports-color
370 | dev: false
371 |
372 | /@swc/core-darwin-arm64/1.3.58:
373 | resolution: {integrity: sha512-NwX9768gcM4HjBEE+2VCMB+h/5bwNDF4DngOTJa9w02l3AwGZXWE66X4ulJQ3Oxv8EAz1nzWb8lbi3XT+WCtmQ==}
374 | engines: {node: '>=10'}
375 | cpu: [arm64]
376 | os: [darwin]
377 | requiresBuild: true
378 | dev: true
379 | optional: true
380 |
381 | /@swc/core-darwin-x64/1.3.58:
382 | resolution: {integrity: sha512-XUdKXRIu8S7N5kmrtd0Nxf3uPIgZhQbgVHPhkvYH+Qwb+uXsdltKPiRwhvLI9M0yF3fvIrKtGJ8qUJdH5ih4zw==}
383 | engines: {node: '>=10'}
384 | cpu: [x64]
385 | os: [darwin]
386 | requiresBuild: true
387 | dev: true
388 | optional: true
389 |
390 | /@swc/core-linux-arm-gnueabihf/1.3.58:
391 | resolution: {integrity: sha512-9M3/5RzjCXnz94a1kxb+0eBzqyZkxzeYTMmvcjIJSy7MVvWNuy0wHuh+x96X/6197g40P9LkzAiZ7q0DvxSPQQ==}
392 | engines: {node: '>=10'}
393 | cpu: [arm]
394 | os: [linux]
395 | requiresBuild: true
396 | dev: true
397 | optional: true
398 |
399 | /@swc/core-linux-arm64-gnu/1.3.58:
400 | resolution: {integrity: sha512-hRjJIJdnYUAZlUi9ACCrsfS/hSFP4MmZRaUVOlQOif578Rw4kQlxsxFd1Rh1bhzUCid0KyZOyCvRzHSD/2ONgw==}
401 | engines: {node: '>=10'}
402 | cpu: [arm64]
403 | os: [linux]
404 | requiresBuild: true
405 | dev: true
406 | optional: true
407 |
408 | /@swc/core-linux-arm64-musl/1.3.58:
409 | resolution: {integrity: sha512-3wrqZbRhbTKtxcQebMAMGKtyypL6BQU0OwqzAk4dBIgm9GaH45xu7sH2OekfHMp3vuj4uWuere+tYtr9HU7xcQ==}
410 | engines: {node: '>=10'}
411 | cpu: [arm64]
412 | os: [linux]
413 | requiresBuild: true
414 | dev: true
415 | optional: true
416 |
417 | /@swc/core-linux-x64-gnu/1.3.58:
418 | resolution: {integrity: sha512-yOI5ucB+8g+gtp4L2AydPBThobZ2I3WR/dU2T+x2DFIE5Qpe/fqt6HPTFb02qmvqvOw36TLT45pRwAe4cY5LAw==}
419 | engines: {node: '>=10'}
420 | cpu: [x64]
421 | os: [linux]
422 | requiresBuild: true
423 | dev: true
424 | optional: true
425 |
426 | /@swc/core-linux-x64-musl/1.3.58:
427 | resolution: {integrity: sha512-xPwxgPLxSWXsK9Yf792SsUmLKISdShAI9o/Kk6jjv0r7PRBS25hZ5FyOjAb/rMbAzDcmyGKHevKc3TMUPSMjwg==}
428 | engines: {node: '>=10'}
429 | cpu: [x64]
430 | os: [linux]
431 | requiresBuild: true
432 | dev: true
433 | optional: true
434 |
435 | /@swc/core-win32-arm64-msvc/1.3.58:
436 | resolution: {integrity: sha512-HW61trwkYGiaFprc+fJay6IKJ3scdquSdJaXsyumGF+jc/5kokQzNfY+JH6RWpk0/8zHnUWI4e+iNGuMYxYGeA==}
437 | engines: {node: '>=10'}
438 | cpu: [arm64]
439 | os: [win32]
440 | requiresBuild: true
441 | dev: true
442 | optional: true
443 |
444 | /@swc/core-win32-ia32-msvc/1.3.58:
445 | resolution: {integrity: sha512-nODSJgHCY8GU6qHR9ieoxshaFD5GYGrPen/6VUvQkGwnV/yMI2Yvecgd1vLSUV4v67ZruPhIkP9OJruD+Juwhg==}
446 | engines: {node: '>=10'}
447 | cpu: [ia32]
448 | os: [win32]
449 | requiresBuild: true
450 | dev: true
451 | optional: true
452 |
453 | /@swc/core-win32-x64-msvc/1.3.58:
454 | resolution: {integrity: sha512-If/uQ3MW6Pdtah2FHhfBY2xBdBXBJzOusXpFQAkwNbaxnrJgpqIIxpYphwsJMDQp6ooSS3U90YizW7mJNxb6UA==}
455 | engines: {node: '>=10'}
456 | cpu: [x64]
457 | os: [win32]
458 | requiresBuild: true
459 | dev: true
460 | optional: true
461 |
462 | /@swc/core/1.3.58:
463 | resolution: {integrity: sha512-tSDcHXMBQIo2ohQ/0ryZnUA+0mBrVhe49+cR+QsFru+XEhCok1BLqdE6cZ2a+sgZ1I+Dmw8aTxYm8Ox64PSKPQ==}
464 | engines: {node: '>=10'}
465 | requiresBuild: true
466 | peerDependencies:
467 | '@swc/helpers': ^0.5.0
468 | peerDependenciesMeta:
469 | '@swc/helpers':
470 | optional: true
471 | optionalDependencies:
472 | '@swc/core-darwin-arm64': 1.3.58
473 | '@swc/core-darwin-x64': 1.3.58
474 | '@swc/core-linux-arm-gnueabihf': 1.3.58
475 | '@swc/core-linux-arm64-gnu': 1.3.58
476 | '@swc/core-linux-arm64-musl': 1.3.58
477 | '@swc/core-linux-x64-gnu': 1.3.58
478 | '@swc/core-linux-x64-musl': 1.3.58
479 | '@swc/core-win32-arm64-msvc': 1.3.58
480 | '@swc/core-win32-ia32-msvc': 1.3.58
481 | '@swc/core-win32-x64-msvc': 1.3.58
482 | dev: true
483 |
484 | /@types/node/20.1.4:
485 | resolution: {integrity: sha512-At4pvmIOki8yuwLtd7BNHl3CiWNbtclUbNtScGx4OHfBd4/oWoJC8KRCIxXwkdndzhxOsPXihrsOoydxBjlE9Q==}
486 | dev: false
487 |
488 | /@types/phoenix/1.5.6:
489 | resolution: {integrity: sha512-e7jZ6I9uyRGsg7MNwQcarmBvRlbGb9DibbocE9crVnxqsy6C23RMxLWbJ2CQ3vgCW7taoL1L+F02EcjA6ld7XA==}
490 | dev: false
491 |
492 | /@types/prop-types/15.7.5:
493 | resolution: {integrity: sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==}
494 | dev: true
495 |
496 | /@types/react-dom/18.2.4:
497 | resolution: {integrity: sha512-G2mHoTMTL4yoydITgOGwWdWMVd8sNgyEP85xVmMKAPUBwQWm9wBPQUmvbeF4V3WBY1P7mmL4BkjQ0SqUpf1snw==}
498 | dependencies:
499 | '@types/react': 18.2.6
500 | dev: true
501 |
502 | /@types/react/18.2.6:
503 | resolution: {integrity: sha512-wRZClXn//zxCFW+ye/D2qY65UsYP1Fpex2YXorHc8awoNamkMZSvBxwxdYVInsHOZZd2Ppq8isnSzJL5Mpf8OA==}
504 | dependencies:
505 | '@types/prop-types': 15.7.5
506 | '@types/scheduler': 0.16.3
507 | csstype: 3.1.2
508 | dev: true
509 |
510 | /@types/scheduler/0.16.3:
511 | resolution: {integrity: sha512-5cJ8CB4yAx7BH1oMvdU0Jh9lrEXyPkar6F9G/ERswkCuvP4KQZfZkSjcMbAICCpQTN4OuZn8tz0HiKv9TGZgrQ==}
512 | dev: true
513 |
514 | /@types/websocket/1.0.5:
515 | resolution: {integrity: sha512-NbsqiNX9CnEfC1Z0Vf4mE1SgAJ07JnRYcNex7AJ9zAVzmiGHmjKFEk7O4TJIsgv2B1sLEb6owKFZrACwdYngsQ==}
516 | dependencies:
517 | '@types/node': 20.1.4
518 | dev: false
519 |
520 | /@vitejs/plugin-react-swc/3.3.1_vite@4.3.6:
521 | resolution: {integrity: sha512-ZoYjGxMniXP7X+5ry/W1tpY7w0OeLUEsBF5RHFPmAhpgwwNWie8OF4056MRXRi9QgvYYoZPDzdOXGK3wlCoTfQ==}
522 | peerDependencies:
523 | vite: ^4
524 | dependencies:
525 | '@swc/core': 1.3.58
526 | vite: 4.3.6
527 | transitivePeerDependencies:
528 | - '@swc/helpers'
529 | dev: true
530 |
531 | /acorn-jsx/5.3.2_acorn@8.8.2:
532 | resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==}
533 | peerDependencies:
534 | acorn: ^6.0.0 || ^7.0.0 || ^8.0.0
535 | dependencies:
536 | acorn: 8.8.2
537 | dev: true
538 |
539 | /acorn/8.8.2:
540 | resolution: {integrity: sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==}
541 | engines: {node: '>=0.4.0'}
542 | hasBin: true
543 | dev: true
544 |
545 | /ajv/6.12.6:
546 | resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==}
547 | dependencies:
548 | fast-deep-equal: 3.1.3
549 | fast-json-stable-stringify: 2.1.0
550 | json-schema-traverse: 0.4.1
551 | uri-js: 4.4.1
552 | dev: true
553 |
554 | /ansi-regex/5.0.1:
555 | resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==}
556 | engines: {node: '>=8'}
557 | dev: true
558 |
559 | /ansi-styles/4.3.0:
560 | resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==}
561 | engines: {node: '>=8'}
562 | dependencies:
563 | color-convert: 2.0.1
564 | dev: true
565 |
566 | /argparse/2.0.1:
567 | resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==}
568 | dev: true
569 |
570 | /array-buffer-byte-length/1.0.0:
571 | resolution: {integrity: sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==}
572 | dependencies:
573 | call-bind: 1.0.2
574 | is-array-buffer: 3.0.2
575 | dev: true
576 |
577 | /array-includes/3.1.6:
578 | resolution: {integrity: sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw==}
579 | engines: {node: '>= 0.4'}
580 | dependencies:
581 | call-bind: 1.0.2
582 | define-properties: 1.2.0
583 | es-abstract: 1.21.2
584 | get-intrinsic: 1.2.1
585 | is-string: 1.0.7
586 | dev: true
587 |
588 | /array.prototype.flatmap/1.3.1:
589 | resolution: {integrity: sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ==}
590 | engines: {node: '>= 0.4'}
591 | dependencies:
592 | call-bind: 1.0.2
593 | define-properties: 1.2.0
594 | es-abstract: 1.21.2
595 | es-shim-unscopables: 1.0.0
596 | dev: true
597 |
598 | /array.prototype.tosorted/1.1.1:
599 | resolution: {integrity: sha512-pZYPXPRl2PqWcsUs6LOMn+1f1532nEoPTYowBtqLwAW+W8vSVhkIGnmOX1t/UQjD6YGI0vcD2B1U7ZFGQH9jnQ==}
600 | dependencies:
601 | call-bind: 1.0.2
602 | define-properties: 1.2.0
603 | es-abstract: 1.21.2
604 | es-shim-unscopables: 1.0.0
605 | get-intrinsic: 1.2.1
606 | dev: true
607 |
608 | /available-typed-arrays/1.0.5:
609 | resolution: {integrity: sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==}
610 | engines: {node: '>= 0.4'}
611 | dev: true
612 |
613 | /balanced-match/1.0.2:
614 | resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
615 | dev: true
616 |
617 | /brace-expansion/1.1.11:
618 | resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==}
619 | dependencies:
620 | balanced-match: 1.0.2
621 | concat-map: 0.0.1
622 | dev: true
623 |
624 | /bufferutil/4.0.7:
625 | resolution: {integrity: sha512-kukuqc39WOHtdxtw4UScxF/WVnMFVSQVKhtx3AjZJzhd0RGZZldcrfSEbVsWWe6KNH253574cq5F+wpv0G9pJw==}
626 | engines: {node: '>=6.14.2'}
627 | requiresBuild: true
628 | dependencies:
629 | node-gyp-build: 4.6.0
630 | dev: false
631 |
632 | /call-bind/1.0.2:
633 | resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==}
634 | dependencies:
635 | function-bind: 1.1.1
636 | get-intrinsic: 1.2.1
637 | dev: true
638 |
639 | /callsites/3.1.0:
640 | resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==}
641 | engines: {node: '>=6'}
642 | dev: true
643 |
644 | /chalk/4.1.2:
645 | resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==}
646 | engines: {node: '>=10'}
647 | dependencies:
648 | ansi-styles: 4.3.0
649 | supports-color: 7.2.0
650 | dev: true
651 |
652 | /color-convert/2.0.1:
653 | resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==}
654 | engines: {node: '>=7.0.0'}
655 | dependencies:
656 | color-name: 1.1.4
657 | dev: true
658 |
659 | /color-name/1.1.4:
660 | resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
661 | dev: true
662 |
663 | /concat-map/0.0.1:
664 | resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==}
665 | dev: true
666 |
667 | /cross-fetch/3.1.6:
668 | resolution: {integrity: sha512-riRvo06crlE8HiqOwIpQhxwdOk4fOeR7FVM/wXoxchFEqMNUjvbs3bfo4OTgMEMHzppd4DxFBDbyySj8Cv781g==}
669 | dependencies:
670 | node-fetch: 2.6.11
671 | transitivePeerDependencies:
672 | - encoding
673 | dev: false
674 |
675 | /cross-spawn/7.0.3:
676 | resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==}
677 | engines: {node: '>= 8'}
678 | dependencies:
679 | path-key: 3.1.1
680 | shebang-command: 2.0.0
681 | which: 2.0.2
682 | dev: true
683 |
684 | /csstype/3.1.2:
685 | resolution: {integrity: sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==}
686 | dev: true
687 |
688 | /d/1.0.1:
689 | resolution: {integrity: sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==}
690 | dependencies:
691 | es5-ext: 0.10.62
692 | type: 1.2.0
693 | dev: false
694 |
695 | /debug/2.6.9:
696 | resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==}
697 | peerDependencies:
698 | supports-color: '*'
699 | peerDependenciesMeta:
700 | supports-color:
701 | optional: true
702 | dependencies:
703 | ms: 2.0.0
704 | dev: false
705 |
706 | /debug/4.3.4:
707 | resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==}
708 | engines: {node: '>=6.0'}
709 | peerDependencies:
710 | supports-color: '*'
711 | peerDependenciesMeta:
712 | supports-color:
713 | optional: true
714 | dependencies:
715 | ms: 2.1.2
716 | dev: true
717 |
718 | /deep-is/0.1.4:
719 | resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==}
720 | dev: true
721 |
722 | /define-properties/1.2.0:
723 | resolution: {integrity: sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==}
724 | engines: {node: '>= 0.4'}
725 | dependencies:
726 | has-property-descriptors: 1.0.0
727 | object-keys: 1.1.1
728 | dev: true
729 |
730 | /doctrine/2.1.0:
731 | resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==}
732 | engines: {node: '>=0.10.0'}
733 | dependencies:
734 | esutils: 2.0.3
735 | dev: true
736 |
737 | /doctrine/3.0.0:
738 | resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==}
739 | engines: {node: '>=6.0.0'}
740 | dependencies:
741 | esutils: 2.0.3
742 | dev: true
743 |
744 | /es-abstract/1.21.2:
745 | resolution: {integrity: sha512-y/B5POM2iBnIxCiernH1G7rC9qQoM77lLIMQLuob0zhp8C56Po81+2Nj0WFKnd0pNReDTnkYryc+zhOzpEIROg==}
746 | engines: {node: '>= 0.4'}
747 | dependencies:
748 | array-buffer-byte-length: 1.0.0
749 | available-typed-arrays: 1.0.5
750 | call-bind: 1.0.2
751 | es-set-tostringtag: 2.0.1
752 | es-to-primitive: 1.2.1
753 | function.prototype.name: 1.1.5
754 | get-intrinsic: 1.2.1
755 | get-symbol-description: 1.0.0
756 | globalthis: 1.0.3
757 | gopd: 1.0.1
758 | has: 1.0.3
759 | has-property-descriptors: 1.0.0
760 | has-proto: 1.0.1
761 | has-symbols: 1.0.3
762 | internal-slot: 1.0.5
763 | is-array-buffer: 3.0.2
764 | is-callable: 1.2.7
765 | is-negative-zero: 2.0.2
766 | is-regex: 1.1.4
767 | is-shared-array-buffer: 1.0.2
768 | is-string: 1.0.7
769 | is-typed-array: 1.1.10
770 | is-weakref: 1.0.2
771 | object-inspect: 1.12.3
772 | object-keys: 1.1.1
773 | object.assign: 4.1.4
774 | regexp.prototype.flags: 1.5.0
775 | safe-regex-test: 1.0.0
776 | string.prototype.trim: 1.2.7
777 | string.prototype.trimend: 1.0.6
778 | string.prototype.trimstart: 1.0.6
779 | typed-array-length: 1.0.4
780 | unbox-primitive: 1.0.2
781 | which-typed-array: 1.1.9
782 | dev: true
783 |
784 | /es-set-tostringtag/2.0.1:
785 | resolution: {integrity: sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==}
786 | engines: {node: '>= 0.4'}
787 | dependencies:
788 | get-intrinsic: 1.2.1
789 | has: 1.0.3
790 | has-tostringtag: 1.0.0
791 | dev: true
792 |
793 | /es-shim-unscopables/1.0.0:
794 | resolution: {integrity: sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==}
795 | dependencies:
796 | has: 1.0.3
797 | dev: true
798 |
799 | /es-to-primitive/1.2.1:
800 | resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==}
801 | engines: {node: '>= 0.4'}
802 | dependencies:
803 | is-callable: 1.2.7
804 | is-date-object: 1.0.5
805 | is-symbol: 1.0.4
806 | dev: true
807 |
808 | /es5-ext/0.10.62:
809 | resolution: {integrity: sha512-BHLqn0klhEpnOKSrzn/Xsz2UIW8j+cGmo9JLzr8BiUapV8hPL9+FliFqjwr9ngW7jWdnxv6eO+/LqyhJVqgrjA==}
810 | engines: {node: '>=0.10'}
811 | requiresBuild: true
812 | dependencies:
813 | es6-iterator: 2.0.3
814 | es6-symbol: 3.1.3
815 | next-tick: 1.1.0
816 | dev: false
817 |
818 | /es6-iterator/2.0.3:
819 | resolution: {integrity: sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==}
820 | dependencies:
821 | d: 1.0.1
822 | es5-ext: 0.10.62
823 | es6-symbol: 3.1.3
824 | dev: false
825 |
826 | /es6-symbol/3.1.3:
827 | resolution: {integrity: sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==}
828 | dependencies:
829 | d: 1.0.1
830 | ext: 1.7.0
831 | dev: false
832 |
833 | /esbuild/0.17.19:
834 | resolution: {integrity: sha512-XQ0jAPFkK/u3LcVRcvVHQcTIqD6E2H1fvZMA5dQPSOWb3suUbWbfbRf94pjc0bNzRYLfIrDRQXr7X+LHIm5oHw==}
835 | engines: {node: '>=12'}
836 | hasBin: true
837 | requiresBuild: true
838 | optionalDependencies:
839 | '@esbuild/android-arm': 0.17.19
840 | '@esbuild/android-arm64': 0.17.19
841 | '@esbuild/android-x64': 0.17.19
842 | '@esbuild/darwin-arm64': 0.17.19
843 | '@esbuild/darwin-x64': 0.17.19
844 | '@esbuild/freebsd-arm64': 0.17.19
845 | '@esbuild/freebsd-x64': 0.17.19
846 | '@esbuild/linux-arm': 0.17.19
847 | '@esbuild/linux-arm64': 0.17.19
848 | '@esbuild/linux-ia32': 0.17.19
849 | '@esbuild/linux-loong64': 0.17.19
850 | '@esbuild/linux-mips64el': 0.17.19
851 | '@esbuild/linux-ppc64': 0.17.19
852 | '@esbuild/linux-riscv64': 0.17.19
853 | '@esbuild/linux-s390x': 0.17.19
854 | '@esbuild/linux-x64': 0.17.19
855 | '@esbuild/netbsd-x64': 0.17.19
856 | '@esbuild/openbsd-x64': 0.17.19
857 | '@esbuild/sunos-x64': 0.17.19
858 | '@esbuild/win32-arm64': 0.17.19
859 | '@esbuild/win32-ia32': 0.17.19
860 | '@esbuild/win32-x64': 0.17.19
861 | dev: true
862 |
863 | /escape-string-regexp/4.0.0:
864 | resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==}
865 | engines: {node: '>=10'}
866 | dev: true
867 |
868 | /eslint-plugin-react-hooks/4.6.0_eslint@8.40.0:
869 | resolution: {integrity: sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==}
870 | engines: {node: '>=10'}
871 | peerDependencies:
872 | eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0
873 | dependencies:
874 | eslint: 8.40.0
875 | dev: true
876 |
877 | /eslint-plugin-react-refresh/0.3.5_eslint@8.40.0:
878 | resolution: {integrity: sha512-61qNIsc7fo9Pp/mju0J83kzvLm0Bsayu7OQSLEoJxLDCBjIIyb87bkzufoOvdDxLkSlMfkF7UxomC4+eztUBSA==}
879 | peerDependencies:
880 | eslint: '>=7'
881 | dependencies:
882 | eslint: 8.40.0
883 | dev: true
884 |
885 | /eslint-plugin-react/7.32.2_eslint@8.40.0:
886 | resolution: {integrity: sha512-t2fBMa+XzonrrNkyVirzKlvn5RXzzPwRHtMvLAtVZrt8oxgnTQaYbU6SXTOO1mwQgp1y5+toMSKInnzGr0Knqg==}
887 | engines: {node: '>=4'}
888 | peerDependencies:
889 | eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8
890 | dependencies:
891 | array-includes: 3.1.6
892 | array.prototype.flatmap: 1.3.1
893 | array.prototype.tosorted: 1.1.1
894 | doctrine: 2.1.0
895 | eslint: 8.40.0
896 | estraverse: 5.3.0
897 | jsx-ast-utils: 3.3.3
898 | minimatch: 3.1.2
899 | object.entries: 1.1.6
900 | object.fromentries: 2.0.6
901 | object.hasown: 1.1.2
902 | object.values: 1.1.6
903 | prop-types: 15.8.1
904 | resolve: 2.0.0-next.4
905 | semver: 6.3.0
906 | string.prototype.matchall: 4.0.8
907 | dev: true
908 |
909 | /eslint-scope/7.2.0:
910 | resolution: {integrity: sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw==}
911 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
912 | dependencies:
913 | esrecurse: 4.3.0
914 | estraverse: 5.3.0
915 | dev: true
916 |
917 | /eslint-visitor-keys/3.4.1:
918 | resolution: {integrity: sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==}
919 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
920 | dev: true
921 |
922 | /eslint/8.40.0:
923 | resolution: {integrity: sha512-bvR+TsP9EHL3TqNtj9sCNJVAFK3fBN8Q7g5waghxyRsPLIMwL73XSKnZFK0hk/O2ANC+iAoq6PWMQ+IfBAJIiQ==}
924 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
925 | hasBin: true
926 | dependencies:
927 | '@eslint-community/eslint-utils': 4.4.0_eslint@8.40.0
928 | '@eslint-community/regexpp': 4.5.1
929 | '@eslint/eslintrc': 2.0.3
930 | '@eslint/js': 8.40.0
931 | '@humanwhocodes/config-array': 0.11.8
932 | '@humanwhocodes/module-importer': 1.0.1
933 | '@nodelib/fs.walk': 1.2.8
934 | ajv: 6.12.6
935 | chalk: 4.1.2
936 | cross-spawn: 7.0.3
937 | debug: 4.3.4
938 | doctrine: 3.0.0
939 | escape-string-regexp: 4.0.0
940 | eslint-scope: 7.2.0
941 | eslint-visitor-keys: 3.4.1
942 | espree: 9.5.2
943 | esquery: 1.5.0
944 | esutils: 2.0.3
945 | fast-deep-equal: 3.1.3
946 | file-entry-cache: 6.0.1
947 | find-up: 5.0.0
948 | glob-parent: 6.0.2
949 | globals: 13.20.0
950 | grapheme-splitter: 1.0.4
951 | ignore: 5.2.4
952 | import-fresh: 3.3.0
953 | imurmurhash: 0.1.4
954 | is-glob: 4.0.3
955 | is-path-inside: 3.0.3
956 | js-sdsl: 4.4.0
957 | js-yaml: 4.1.0
958 | json-stable-stringify-without-jsonify: 1.0.1
959 | levn: 0.4.1
960 | lodash.merge: 4.6.2
961 | minimatch: 3.1.2
962 | natural-compare: 1.4.0
963 | optionator: 0.9.1
964 | strip-ansi: 6.0.1
965 | strip-json-comments: 3.1.1
966 | text-table: 0.2.0
967 | transitivePeerDependencies:
968 | - supports-color
969 | dev: true
970 |
971 | /espree/9.5.2:
972 | resolution: {integrity: sha512-7OASN1Wma5fum5SrNhFMAMJxOUAbhyfQ8dQ//PJaJbNw0URTPWqIghHWt1MmAANKhHZIYOHruW4Kw4ruUWOdGw==}
973 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
974 | dependencies:
975 | acorn: 8.8.2
976 | acorn-jsx: 5.3.2_acorn@8.8.2
977 | eslint-visitor-keys: 3.4.1
978 | dev: true
979 |
980 | /esquery/1.5.0:
981 | resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==}
982 | engines: {node: '>=0.10'}
983 | dependencies:
984 | estraverse: 5.3.0
985 | dev: true
986 |
987 | /esrecurse/4.3.0:
988 | resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==}
989 | engines: {node: '>=4.0'}
990 | dependencies:
991 | estraverse: 5.3.0
992 | dev: true
993 |
994 | /estraverse/5.3.0:
995 | resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==}
996 | engines: {node: '>=4.0'}
997 | dev: true
998 |
999 | /esutils/2.0.3:
1000 | resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==}
1001 | engines: {node: '>=0.10.0'}
1002 | dev: true
1003 |
1004 | /ext/1.7.0:
1005 | resolution: {integrity: sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==}
1006 | dependencies:
1007 | type: 2.7.2
1008 | dev: false
1009 |
1010 | /fast-deep-equal/3.1.3:
1011 | resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==}
1012 | dev: true
1013 |
1014 | /fast-json-stable-stringify/2.1.0:
1015 | resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==}
1016 | dev: true
1017 |
1018 | /fast-levenshtein/2.0.6:
1019 | resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==}
1020 | dev: true
1021 |
1022 | /fastq/1.15.0:
1023 | resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==}
1024 | dependencies:
1025 | reusify: 1.0.4
1026 | dev: true
1027 |
1028 | /file-entry-cache/6.0.1:
1029 | resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==}
1030 | engines: {node: ^10.12.0 || >=12.0.0}
1031 | dependencies:
1032 | flat-cache: 3.0.4
1033 | dev: true
1034 |
1035 | /find-up/5.0.0:
1036 | resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==}
1037 | engines: {node: '>=10'}
1038 | dependencies:
1039 | locate-path: 6.0.0
1040 | path-exists: 4.0.0
1041 | dev: true
1042 |
1043 | /flat-cache/3.0.4:
1044 | resolution: {integrity: sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==}
1045 | engines: {node: ^10.12.0 || >=12.0.0}
1046 | dependencies:
1047 | flatted: 3.2.7
1048 | rimraf: 3.0.2
1049 | dev: true
1050 |
1051 | /flatted/3.2.7:
1052 | resolution: {integrity: sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==}
1053 | dev: true
1054 |
1055 | /for-each/0.3.3:
1056 | resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==}
1057 | dependencies:
1058 | is-callable: 1.2.7
1059 | dev: true
1060 |
1061 | /fs.realpath/1.0.0:
1062 | resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==}
1063 | dev: true
1064 |
1065 | /fsevents/2.3.2:
1066 | resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==}
1067 | engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
1068 | os: [darwin]
1069 | requiresBuild: true
1070 | dev: true
1071 | optional: true
1072 |
1073 | /function-bind/1.1.1:
1074 | resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==}
1075 | dev: true
1076 |
1077 | /function.prototype.name/1.1.5:
1078 | resolution: {integrity: sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==}
1079 | engines: {node: '>= 0.4'}
1080 | dependencies:
1081 | call-bind: 1.0.2
1082 | define-properties: 1.2.0
1083 | es-abstract: 1.21.2
1084 | functions-have-names: 1.2.3
1085 | dev: true
1086 |
1087 | /functions-have-names/1.2.3:
1088 | resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==}
1089 | dev: true
1090 |
1091 | /get-intrinsic/1.2.1:
1092 | resolution: {integrity: sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==}
1093 | dependencies:
1094 | function-bind: 1.1.1
1095 | has: 1.0.3
1096 | has-proto: 1.0.1
1097 | has-symbols: 1.0.3
1098 | dev: true
1099 |
1100 | /get-symbol-description/1.0.0:
1101 | resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==}
1102 | engines: {node: '>= 0.4'}
1103 | dependencies:
1104 | call-bind: 1.0.2
1105 | get-intrinsic: 1.2.1
1106 | dev: true
1107 |
1108 | /glob-parent/6.0.2:
1109 | resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==}
1110 | engines: {node: '>=10.13.0'}
1111 | dependencies:
1112 | is-glob: 4.0.3
1113 | dev: true
1114 |
1115 | /glob/7.2.3:
1116 | resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==}
1117 | dependencies:
1118 | fs.realpath: 1.0.0
1119 | inflight: 1.0.6
1120 | inherits: 2.0.4
1121 | minimatch: 3.1.2
1122 | once: 1.4.0
1123 | path-is-absolute: 1.0.1
1124 | dev: true
1125 |
1126 | /globals/13.20.0:
1127 | resolution: {integrity: sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==}
1128 | engines: {node: '>=8'}
1129 | dependencies:
1130 | type-fest: 0.20.2
1131 | dev: true
1132 |
1133 | /globalthis/1.0.3:
1134 | resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==}
1135 | engines: {node: '>= 0.4'}
1136 | dependencies:
1137 | define-properties: 1.2.0
1138 | dev: true
1139 |
1140 | /gopd/1.0.1:
1141 | resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==}
1142 | dependencies:
1143 | get-intrinsic: 1.2.1
1144 | dev: true
1145 |
1146 | /grapheme-splitter/1.0.4:
1147 | resolution: {integrity: sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==}
1148 | dev: true
1149 |
1150 | /has-bigints/1.0.2:
1151 | resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==}
1152 | dev: true
1153 |
1154 | /has-flag/4.0.0:
1155 | resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==}
1156 | engines: {node: '>=8'}
1157 | dev: true
1158 |
1159 | /has-property-descriptors/1.0.0:
1160 | resolution: {integrity: sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==}
1161 | dependencies:
1162 | get-intrinsic: 1.2.1
1163 | dev: true
1164 |
1165 | /has-proto/1.0.1:
1166 | resolution: {integrity: sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==}
1167 | engines: {node: '>= 0.4'}
1168 | dev: true
1169 |
1170 | /has-symbols/1.0.3:
1171 | resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==}
1172 | engines: {node: '>= 0.4'}
1173 | dev: true
1174 |
1175 | /has-tostringtag/1.0.0:
1176 | resolution: {integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==}
1177 | engines: {node: '>= 0.4'}
1178 | dependencies:
1179 | has-symbols: 1.0.3
1180 | dev: true
1181 |
1182 | /has/1.0.3:
1183 | resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==}
1184 | engines: {node: '>= 0.4.0'}
1185 | dependencies:
1186 | function-bind: 1.1.1
1187 | dev: true
1188 |
1189 | /ignore/5.2.4:
1190 | resolution: {integrity: sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==}
1191 | engines: {node: '>= 4'}
1192 | dev: true
1193 |
1194 | /import-fresh/3.3.0:
1195 | resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==}
1196 | engines: {node: '>=6'}
1197 | dependencies:
1198 | parent-module: 1.0.1
1199 | resolve-from: 4.0.0
1200 | dev: true
1201 |
1202 | /imurmurhash/0.1.4:
1203 | resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==}
1204 | engines: {node: '>=0.8.19'}
1205 | dev: true
1206 |
1207 | /inflight/1.0.6:
1208 | resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==}
1209 | dependencies:
1210 | once: 1.4.0
1211 | wrappy: 1.0.2
1212 | dev: true
1213 |
1214 | /inherits/2.0.4:
1215 | resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
1216 | dev: true
1217 |
1218 | /internal-slot/1.0.5:
1219 | resolution: {integrity: sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==}
1220 | engines: {node: '>= 0.4'}
1221 | dependencies:
1222 | get-intrinsic: 1.2.1
1223 | has: 1.0.3
1224 | side-channel: 1.0.4
1225 | dev: true
1226 |
1227 | /is-array-buffer/3.0.2:
1228 | resolution: {integrity: sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==}
1229 | dependencies:
1230 | call-bind: 1.0.2
1231 | get-intrinsic: 1.2.1
1232 | is-typed-array: 1.1.10
1233 | dev: true
1234 |
1235 | /is-bigint/1.0.4:
1236 | resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==}
1237 | dependencies:
1238 | has-bigints: 1.0.2
1239 | dev: true
1240 |
1241 | /is-boolean-object/1.1.2:
1242 | resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==}
1243 | engines: {node: '>= 0.4'}
1244 | dependencies:
1245 | call-bind: 1.0.2
1246 | has-tostringtag: 1.0.0
1247 | dev: true
1248 |
1249 | /is-callable/1.2.7:
1250 | resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==}
1251 | engines: {node: '>= 0.4'}
1252 | dev: true
1253 |
1254 | /is-core-module/2.12.0:
1255 | resolution: {integrity: sha512-RECHCBCd/viahWmwj6enj19sKbHfJrddi/6cBDsNTKbNq0f7VeaUkBo60BqzvPqo/W54ChS62Z5qyun7cfOMqQ==}
1256 | dependencies:
1257 | has: 1.0.3
1258 | dev: true
1259 |
1260 | /is-date-object/1.0.5:
1261 | resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==}
1262 | engines: {node: '>= 0.4'}
1263 | dependencies:
1264 | has-tostringtag: 1.0.0
1265 | dev: true
1266 |
1267 | /is-extglob/2.1.1:
1268 | resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==}
1269 | engines: {node: '>=0.10.0'}
1270 | dev: true
1271 |
1272 | /is-glob/4.0.3:
1273 | resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==}
1274 | engines: {node: '>=0.10.0'}
1275 | dependencies:
1276 | is-extglob: 2.1.1
1277 | dev: true
1278 |
1279 | /is-negative-zero/2.0.2:
1280 | resolution: {integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==}
1281 | engines: {node: '>= 0.4'}
1282 | dev: true
1283 |
1284 | /is-number-object/1.0.7:
1285 | resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==}
1286 | engines: {node: '>= 0.4'}
1287 | dependencies:
1288 | has-tostringtag: 1.0.0
1289 | dev: true
1290 |
1291 | /is-path-inside/3.0.3:
1292 | resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==}
1293 | engines: {node: '>=8'}
1294 | dev: true
1295 |
1296 | /is-regex/1.1.4:
1297 | resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==}
1298 | engines: {node: '>= 0.4'}
1299 | dependencies:
1300 | call-bind: 1.0.2
1301 | has-tostringtag: 1.0.0
1302 | dev: true
1303 |
1304 | /is-shared-array-buffer/1.0.2:
1305 | resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==}
1306 | dependencies:
1307 | call-bind: 1.0.2
1308 | dev: true
1309 |
1310 | /is-string/1.0.7:
1311 | resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==}
1312 | engines: {node: '>= 0.4'}
1313 | dependencies:
1314 | has-tostringtag: 1.0.0
1315 | dev: true
1316 |
1317 | /is-symbol/1.0.4:
1318 | resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==}
1319 | engines: {node: '>= 0.4'}
1320 | dependencies:
1321 | has-symbols: 1.0.3
1322 | dev: true
1323 |
1324 | /is-typed-array/1.1.10:
1325 | resolution: {integrity: sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==}
1326 | engines: {node: '>= 0.4'}
1327 | dependencies:
1328 | available-typed-arrays: 1.0.5
1329 | call-bind: 1.0.2
1330 | for-each: 0.3.3
1331 | gopd: 1.0.1
1332 | has-tostringtag: 1.0.0
1333 | dev: true
1334 |
1335 | /is-typedarray/1.0.0:
1336 | resolution: {integrity: sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==}
1337 | dev: false
1338 |
1339 | /is-weakref/1.0.2:
1340 | resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==}
1341 | dependencies:
1342 | call-bind: 1.0.2
1343 | dev: true
1344 |
1345 | /isexe/2.0.0:
1346 | resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==}
1347 | dev: true
1348 |
1349 | /js-sdsl/4.4.0:
1350 | resolution: {integrity: sha512-FfVSdx6pJ41Oa+CF7RDaFmTnCaFhua+SNYQX74riGOpl96x+2jQCqEfQ2bnXu/5DPCqlRuiqyvTJM0Qjz26IVg==}
1351 | dev: true
1352 |
1353 | /js-tokens/4.0.0:
1354 | resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
1355 |
1356 | /js-yaml/4.1.0:
1357 | resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==}
1358 | hasBin: true
1359 | dependencies:
1360 | argparse: 2.0.1
1361 | dev: true
1362 |
1363 | /json-schema-traverse/0.4.1:
1364 | resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==}
1365 | dev: true
1366 |
1367 | /json-stable-stringify-without-jsonify/1.0.1:
1368 | resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==}
1369 | dev: true
1370 |
1371 | /jsx-ast-utils/3.3.3:
1372 | resolution: {integrity: sha512-fYQHZTZ8jSfmWZ0iyzfwiU4WDX4HpHbMCZ3gPlWYiCl3BoeOTsqKBqnTVfH2rYT7eP5c3sVbeSPHnnJOaTrWiw==}
1373 | engines: {node: '>=4.0'}
1374 | dependencies:
1375 | array-includes: 3.1.6
1376 | object.assign: 4.1.4
1377 | dev: true
1378 |
1379 | /levn/0.4.1:
1380 | resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==}
1381 | engines: {node: '>= 0.8.0'}
1382 | dependencies:
1383 | prelude-ls: 1.2.1
1384 | type-check: 0.4.0
1385 | dev: true
1386 |
1387 | /locate-path/6.0.0:
1388 | resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==}
1389 | engines: {node: '>=10'}
1390 | dependencies:
1391 | p-locate: 5.0.0
1392 | dev: true
1393 |
1394 | /lodash.merge/4.6.2:
1395 | resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==}
1396 | dev: true
1397 |
1398 | /loose-envify/1.4.0:
1399 | resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==}
1400 | hasBin: true
1401 | dependencies:
1402 | js-tokens: 4.0.0
1403 |
1404 | /minimatch/3.1.2:
1405 | resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==}
1406 | dependencies:
1407 | brace-expansion: 1.1.11
1408 | dev: true
1409 |
1410 | /ms/2.0.0:
1411 | resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==}
1412 | dev: false
1413 |
1414 | /ms/2.1.2:
1415 | resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==}
1416 | dev: true
1417 |
1418 | /nanoid/3.3.6:
1419 | resolution: {integrity: sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==}
1420 | engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
1421 | hasBin: true
1422 | dev: true
1423 |
1424 | /natural-compare/1.4.0:
1425 | resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==}
1426 | dev: true
1427 |
1428 | /next-tick/1.1.0:
1429 | resolution: {integrity: sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==}
1430 | dev: false
1431 |
1432 | /node-fetch/2.6.11:
1433 | resolution: {integrity: sha512-4I6pdBY1EthSqDmJkiNk3JIT8cswwR9nfeW/cPdUagJYEQG7R95WRH74wpz7ma8Gh/9dI9FP+OU+0E4FvtA55w==}
1434 | engines: {node: 4.x || >=6.0.0}
1435 | peerDependencies:
1436 | encoding: ^0.1.0
1437 | peerDependenciesMeta:
1438 | encoding:
1439 | optional: true
1440 | dependencies:
1441 | whatwg-url: 5.0.0
1442 | dev: false
1443 |
1444 | /node-gyp-build/4.6.0:
1445 | resolution: {integrity: sha512-NTZVKn9IylLwUzaKjkas1e4u2DLNcV4rdYagA4PWdPwW87Bi7z+BznyKSRwS/761tV/lzCGXplWsiaMjLqP2zQ==}
1446 | hasBin: true
1447 | dev: false
1448 |
1449 | /object-assign/4.1.1:
1450 | resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==}
1451 | engines: {node: '>=0.10.0'}
1452 | dev: true
1453 |
1454 | /object-inspect/1.12.3:
1455 | resolution: {integrity: sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==}
1456 | dev: true
1457 |
1458 | /object-keys/1.1.1:
1459 | resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==}
1460 | engines: {node: '>= 0.4'}
1461 | dev: true
1462 |
1463 | /object.assign/4.1.4:
1464 | resolution: {integrity: sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==}
1465 | engines: {node: '>= 0.4'}
1466 | dependencies:
1467 | call-bind: 1.0.2
1468 | define-properties: 1.2.0
1469 | has-symbols: 1.0.3
1470 | object-keys: 1.1.1
1471 | dev: true
1472 |
1473 | /object.entries/1.1.6:
1474 | resolution: {integrity: sha512-leTPzo4Zvg3pmbQ3rDK69Rl8GQvIqMWubrkxONG9/ojtFE2rD9fjMKfSI5BxW3osRH1m6VdzmqK8oAY9aT4x5w==}
1475 | engines: {node: '>= 0.4'}
1476 | dependencies:
1477 | call-bind: 1.0.2
1478 | define-properties: 1.2.0
1479 | es-abstract: 1.21.2
1480 | dev: true
1481 |
1482 | /object.fromentries/2.0.6:
1483 | resolution: {integrity: sha512-VciD13dswC4j1Xt5394WR4MzmAQmlgN72phd/riNp9vtD7tp4QQWJ0R4wvclXcafgcYK8veHRed2W6XeGBvcfg==}
1484 | engines: {node: '>= 0.4'}
1485 | dependencies:
1486 | call-bind: 1.0.2
1487 | define-properties: 1.2.0
1488 | es-abstract: 1.21.2
1489 | dev: true
1490 |
1491 | /object.hasown/1.1.2:
1492 | resolution: {integrity: sha512-B5UIT3J1W+WuWIU55h0mjlwaqxiE5vYENJXIXZ4VFe05pNYrkKuK0U/6aFcb0pKywYJh7IhfoqUfKVmrJJHZHw==}
1493 | dependencies:
1494 | define-properties: 1.2.0
1495 | es-abstract: 1.21.2
1496 | dev: true
1497 |
1498 | /object.values/1.1.6:
1499 | resolution: {integrity: sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw==}
1500 | engines: {node: '>= 0.4'}
1501 | dependencies:
1502 | call-bind: 1.0.2
1503 | define-properties: 1.2.0
1504 | es-abstract: 1.21.2
1505 | dev: true
1506 |
1507 | /once/1.4.0:
1508 | resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==}
1509 | dependencies:
1510 | wrappy: 1.0.2
1511 | dev: true
1512 |
1513 | /optionator/0.9.1:
1514 | resolution: {integrity: sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==}
1515 | engines: {node: '>= 0.8.0'}
1516 | dependencies:
1517 | deep-is: 0.1.4
1518 | fast-levenshtein: 2.0.6
1519 | levn: 0.4.1
1520 | prelude-ls: 1.2.1
1521 | type-check: 0.4.0
1522 | word-wrap: 1.2.3
1523 | dev: true
1524 |
1525 | /p-limit/3.1.0:
1526 | resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==}
1527 | engines: {node: '>=10'}
1528 | dependencies:
1529 | yocto-queue: 0.1.0
1530 | dev: true
1531 |
1532 | /p-locate/5.0.0:
1533 | resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==}
1534 | engines: {node: '>=10'}
1535 | dependencies:
1536 | p-limit: 3.1.0
1537 | dev: true
1538 |
1539 | /parent-module/1.0.1:
1540 | resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==}
1541 | engines: {node: '>=6'}
1542 | dependencies:
1543 | callsites: 3.1.0
1544 | dev: true
1545 |
1546 | /path-exists/4.0.0:
1547 | resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==}
1548 | engines: {node: '>=8'}
1549 | dev: true
1550 |
1551 | /path-is-absolute/1.0.1:
1552 | resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==}
1553 | engines: {node: '>=0.10.0'}
1554 | dev: true
1555 |
1556 | /path-key/3.1.1:
1557 | resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==}
1558 | engines: {node: '>=8'}
1559 | dev: true
1560 |
1561 | /path-parse/1.0.7:
1562 | resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==}
1563 | dev: true
1564 |
1565 | /picocolors/1.0.0:
1566 | resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==}
1567 | dev: true
1568 |
1569 | /postcss/8.4.23:
1570 | resolution: {integrity: sha512-bQ3qMcpF6A/YjR55xtoTr0jGOlnPOKAIMdOWiv0EIT6HVPEaJiJB4NLljSbiHoC2RX7DN5Uvjtpbg1NPdwv1oA==}
1571 | engines: {node: ^10 || ^12 || >=14}
1572 | dependencies:
1573 | nanoid: 3.3.6
1574 | picocolors: 1.0.0
1575 | source-map-js: 1.0.2
1576 | dev: true
1577 |
1578 | /prelude-ls/1.2.1:
1579 | resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==}
1580 | engines: {node: '>= 0.8.0'}
1581 | dev: true
1582 |
1583 | /prop-types/15.8.1:
1584 | resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==}
1585 | dependencies:
1586 | loose-envify: 1.4.0
1587 | object-assign: 4.1.1
1588 | react-is: 16.13.1
1589 | dev: true
1590 |
1591 | /punycode/2.3.0:
1592 | resolution: {integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==}
1593 | engines: {node: '>=6'}
1594 | dev: true
1595 |
1596 | /queue-microtask/1.2.3:
1597 | resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
1598 | dev: true
1599 |
1600 | /react-dom/18.2.0_react@18.2.0:
1601 | resolution: {integrity: sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==}
1602 | peerDependencies:
1603 | react: ^18.2.0
1604 | dependencies:
1605 | loose-envify: 1.4.0
1606 | react: 18.2.0
1607 | scheduler: 0.23.0
1608 | dev: false
1609 |
1610 | /react-is/16.13.1:
1611 | resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==}
1612 | dev: true
1613 |
1614 | /react-router-dom/6.11.1_biqbaboplfbrettd7655fr4n2y:
1615 | resolution: {integrity: sha512-dPC2MhoPeTQ1YUOt5uIK376SMNWbwUxYRWk2ZmTT4fZfwlOvabF8uduRKKJIyfkCZvMgiF0GSCQckmkGGijIrg==}
1616 | engines: {node: '>=14'}
1617 | peerDependencies:
1618 | react: '>=16.8'
1619 | react-dom: '>=16.8'
1620 | dependencies:
1621 | '@remix-run/router': 1.6.1
1622 | react: 18.2.0
1623 | react-dom: 18.2.0_react@18.2.0
1624 | react-router: 6.11.1_react@18.2.0
1625 | dev: false
1626 |
1627 | /react-router/6.11.1_react@18.2.0:
1628 | resolution: {integrity: sha512-OZINSdjJ2WgvAi7hgNLazrEV8SGn6xrKA+MkJe9wVDMZ3zQ6fdJocUjpCUCI0cNrelWjcvon0S/QK/j0NzL3KA==}
1629 | engines: {node: '>=14'}
1630 | peerDependencies:
1631 | react: '>=16.8'
1632 | dependencies:
1633 | '@remix-run/router': 1.6.1
1634 | react: 18.2.0
1635 | dev: false
1636 |
1637 | /react/18.2.0:
1638 | resolution: {integrity: sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==}
1639 | engines: {node: '>=0.10.0'}
1640 | dependencies:
1641 | loose-envify: 1.4.0
1642 | dev: false
1643 |
1644 | /regexp.prototype.flags/1.5.0:
1645 | resolution: {integrity: sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA==}
1646 | engines: {node: '>= 0.4'}
1647 | dependencies:
1648 | call-bind: 1.0.2
1649 | define-properties: 1.2.0
1650 | functions-have-names: 1.2.3
1651 | dev: true
1652 |
1653 | /resolve-from/4.0.0:
1654 | resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==}
1655 | engines: {node: '>=4'}
1656 | dev: true
1657 |
1658 | /resolve/2.0.0-next.4:
1659 | resolution: {integrity: sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ==}
1660 | hasBin: true
1661 | dependencies:
1662 | is-core-module: 2.12.0
1663 | path-parse: 1.0.7
1664 | supports-preserve-symlinks-flag: 1.0.0
1665 | dev: true
1666 |
1667 | /reusify/1.0.4:
1668 | resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==}
1669 | engines: {iojs: '>=1.0.0', node: '>=0.10.0'}
1670 | dev: true
1671 |
1672 | /rimraf/3.0.2:
1673 | resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==}
1674 | hasBin: true
1675 | dependencies:
1676 | glob: 7.2.3
1677 | dev: true
1678 |
1679 | /rollup/3.21.7:
1680 | resolution: {integrity: sha512-KXPaEuR8FfUoK2uHwNjxTmJ18ApyvD6zJpYv9FOJSqLStmt6xOY84l1IjK2dSolQmoXknrhEFRaPRgOPdqCT5w==}
1681 | engines: {node: '>=14.18.0', npm: '>=8.0.0'}
1682 | hasBin: true
1683 | optionalDependencies:
1684 | fsevents: 2.3.2
1685 | dev: true
1686 |
1687 | /run-parallel/1.2.0:
1688 | resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==}
1689 | dependencies:
1690 | queue-microtask: 1.2.3
1691 | dev: true
1692 |
1693 | /safe-regex-test/1.0.0:
1694 | resolution: {integrity: sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==}
1695 | dependencies:
1696 | call-bind: 1.0.2
1697 | get-intrinsic: 1.2.1
1698 | is-regex: 1.1.4
1699 | dev: true
1700 |
1701 | /scheduler/0.23.0:
1702 | resolution: {integrity: sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==}
1703 | dependencies:
1704 | loose-envify: 1.4.0
1705 | dev: false
1706 |
1707 | /semver/6.3.0:
1708 | resolution: {integrity: sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==}
1709 | hasBin: true
1710 | dev: true
1711 |
1712 | /shebang-command/2.0.0:
1713 | resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==}
1714 | engines: {node: '>=8'}
1715 | dependencies:
1716 | shebang-regex: 3.0.0
1717 | dev: true
1718 |
1719 | /shebang-regex/3.0.0:
1720 | resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==}
1721 | engines: {node: '>=8'}
1722 | dev: true
1723 |
1724 | /side-channel/1.0.4:
1725 | resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==}
1726 | dependencies:
1727 | call-bind: 1.0.2
1728 | get-intrinsic: 1.2.1
1729 | object-inspect: 1.12.3
1730 | dev: true
1731 |
1732 | /source-map-js/1.0.2:
1733 | resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==}
1734 | engines: {node: '>=0.10.0'}
1735 | dev: true
1736 |
1737 | /string.prototype.matchall/4.0.8:
1738 | resolution: {integrity: sha512-6zOCOcJ+RJAQshcTvXPHoxoQGONa3e/Lqx90wUA+wEzX78sg5Bo+1tQo4N0pohS0erG9qtCqJDjNCQBjeWVxyg==}
1739 | dependencies:
1740 | call-bind: 1.0.2
1741 | define-properties: 1.2.0
1742 | es-abstract: 1.21.2
1743 | get-intrinsic: 1.2.1
1744 | has-symbols: 1.0.3
1745 | internal-slot: 1.0.5
1746 | regexp.prototype.flags: 1.5.0
1747 | side-channel: 1.0.4
1748 | dev: true
1749 |
1750 | /string.prototype.trim/1.2.7:
1751 | resolution: {integrity: sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg==}
1752 | engines: {node: '>= 0.4'}
1753 | dependencies:
1754 | call-bind: 1.0.2
1755 | define-properties: 1.2.0
1756 | es-abstract: 1.21.2
1757 | dev: true
1758 |
1759 | /string.prototype.trimend/1.0.6:
1760 | resolution: {integrity: sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==}
1761 | dependencies:
1762 | call-bind: 1.0.2
1763 | define-properties: 1.2.0
1764 | es-abstract: 1.21.2
1765 | dev: true
1766 |
1767 | /string.prototype.trimstart/1.0.6:
1768 | resolution: {integrity: sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==}
1769 | dependencies:
1770 | call-bind: 1.0.2
1771 | define-properties: 1.2.0
1772 | es-abstract: 1.21.2
1773 | dev: true
1774 |
1775 | /strip-ansi/6.0.1:
1776 | resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==}
1777 | engines: {node: '>=8'}
1778 | dependencies:
1779 | ansi-regex: 5.0.1
1780 | dev: true
1781 |
1782 | /strip-json-comments/3.1.1:
1783 | resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==}
1784 | engines: {node: '>=8'}
1785 | dev: true
1786 |
1787 | /supports-color/7.2.0:
1788 | resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==}
1789 | engines: {node: '>=8'}
1790 | dependencies:
1791 | has-flag: 4.0.0
1792 | dev: true
1793 |
1794 | /supports-preserve-symlinks-flag/1.0.0:
1795 | resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==}
1796 | engines: {node: '>= 0.4'}
1797 | dev: true
1798 |
1799 | /text-table/0.2.0:
1800 | resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==}
1801 | dev: true
1802 |
1803 | /tr46/0.0.3:
1804 | resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==}
1805 | dev: false
1806 |
1807 | /type-check/0.4.0:
1808 | resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==}
1809 | engines: {node: '>= 0.8.0'}
1810 | dependencies:
1811 | prelude-ls: 1.2.1
1812 | dev: true
1813 |
1814 | /type-fest/0.20.2:
1815 | resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==}
1816 | engines: {node: '>=10'}
1817 | dev: true
1818 |
1819 | /type/1.2.0:
1820 | resolution: {integrity: sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==}
1821 | dev: false
1822 |
1823 | /type/2.7.2:
1824 | resolution: {integrity: sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==}
1825 | dev: false
1826 |
1827 | /typed-array-length/1.0.4:
1828 | resolution: {integrity: sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==}
1829 | dependencies:
1830 | call-bind: 1.0.2
1831 | for-each: 0.3.3
1832 | is-typed-array: 1.1.10
1833 | dev: true
1834 |
1835 | /typedarray-to-buffer/3.1.5:
1836 | resolution: {integrity: sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==}
1837 | dependencies:
1838 | is-typedarray: 1.0.0
1839 | dev: false
1840 |
1841 | /unbox-primitive/1.0.2:
1842 | resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==}
1843 | dependencies:
1844 | call-bind: 1.0.2
1845 | has-bigints: 1.0.2
1846 | has-symbols: 1.0.3
1847 | which-boxed-primitive: 1.0.2
1848 | dev: true
1849 |
1850 | /uri-js/4.4.1:
1851 | resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==}
1852 | dependencies:
1853 | punycode: 2.3.0
1854 | dev: true
1855 |
1856 | /utf-8-validate/5.0.10:
1857 | resolution: {integrity: sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ==}
1858 | engines: {node: '>=6.14.2'}
1859 | requiresBuild: true
1860 | dependencies:
1861 | node-gyp-build: 4.6.0
1862 | dev: false
1863 |
1864 | /vite/4.3.6:
1865 | resolution: {integrity: sha512-cqIyLSbA6gornMS659AXTVKF7cvSHMdKmJJwQ9DXq3lwsT1uZSdktuBRlpHQ8VnOWx0QHtjDwxPpGtyo9Fh/Qg==}
1866 | engines: {node: ^14.18.0 || >=16.0.0}
1867 | hasBin: true
1868 | peerDependencies:
1869 | '@types/node': '>= 14'
1870 | less: '*'
1871 | sass: '*'
1872 | stylus: '*'
1873 | sugarss: '*'
1874 | terser: ^5.4.0
1875 | peerDependenciesMeta:
1876 | '@types/node':
1877 | optional: true
1878 | less:
1879 | optional: true
1880 | sass:
1881 | optional: true
1882 | stylus:
1883 | optional: true
1884 | sugarss:
1885 | optional: true
1886 | terser:
1887 | optional: true
1888 | dependencies:
1889 | esbuild: 0.17.19
1890 | postcss: 8.4.23
1891 | rollup: 3.21.7
1892 | optionalDependencies:
1893 | fsevents: 2.3.2
1894 | dev: true
1895 |
1896 | /webidl-conversions/3.0.1:
1897 | resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==}
1898 | dev: false
1899 |
1900 | /websocket/1.0.34:
1901 | resolution: {integrity: sha512-PRDso2sGwF6kM75QykIesBijKSVceR6jL2G8NGYyq2XrItNC2P5/qL5XeR056GhA+Ly7JMFvJb9I312mJfmqnQ==}
1902 | engines: {node: '>=4.0.0'}
1903 | dependencies:
1904 | bufferutil: 4.0.7
1905 | debug: 2.6.9
1906 | es5-ext: 0.10.62
1907 | typedarray-to-buffer: 3.1.5
1908 | utf-8-validate: 5.0.10
1909 | yaeti: 0.0.6
1910 | transitivePeerDependencies:
1911 | - supports-color
1912 | dev: false
1913 |
1914 | /whatwg-url/5.0.0:
1915 | resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==}
1916 | dependencies:
1917 | tr46: 0.0.3
1918 | webidl-conversions: 3.0.1
1919 | dev: false
1920 |
1921 | /which-boxed-primitive/1.0.2:
1922 | resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==}
1923 | dependencies:
1924 | is-bigint: 1.0.4
1925 | is-boolean-object: 1.1.2
1926 | is-number-object: 1.0.7
1927 | is-string: 1.0.7
1928 | is-symbol: 1.0.4
1929 | dev: true
1930 |
1931 | /which-typed-array/1.1.9:
1932 | resolution: {integrity: sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==}
1933 | engines: {node: '>= 0.4'}
1934 | dependencies:
1935 | available-typed-arrays: 1.0.5
1936 | call-bind: 1.0.2
1937 | for-each: 0.3.3
1938 | gopd: 1.0.1
1939 | has-tostringtag: 1.0.0
1940 | is-typed-array: 1.1.10
1941 | dev: true
1942 |
1943 | /which/2.0.2:
1944 | resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==}
1945 | engines: {node: '>= 8'}
1946 | hasBin: true
1947 | dependencies:
1948 | isexe: 2.0.0
1949 | dev: true
1950 |
1951 | /word-wrap/1.2.3:
1952 | resolution: {integrity: sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==}
1953 | engines: {node: '>=0.10.0'}
1954 | dev: true
1955 |
1956 | /wrappy/1.0.2:
1957 | resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==}
1958 | dev: true
1959 |
1960 | /yaeti/0.0.6:
1961 | resolution: {integrity: sha512-MvQa//+KcZCUkBTIC9blM+CU9J2GzuTytsOUwf2lidtvkx/6gnEp1QvJv34t9vdjhFmha/mUiNDbN0D0mJWdug==}
1962 | engines: {node: '>=0.10.32'}
1963 | dev: false
1964 |
1965 | /yocto-queue/0.1.0:
1966 | resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==}
1967 | engines: {node: '>=10'}
1968 | dev: true
1969 |
--------------------------------------------------------------------------------
/public/vite.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/App.css:
--------------------------------------------------------------------------------
1 | #root {
2 | max-width: 1280px;
3 | margin: 0 auto;
4 | padding: 2rem;
5 | text-align: center;
6 | }
7 |
8 | .logo {
9 | height: 6em;
10 | padding: 1.5em;
11 | will-change: filter;
12 | transition: filter 300ms;
13 | }
14 | .logo:hover {
15 | filter: drop-shadow(0 0 2em #646cffaa);
16 | }
17 | .logo.react:hover {
18 | filter: drop-shadow(0 0 2em #61dafbaa);
19 | }
20 |
21 | @keyframes logo-spin {
22 | from {
23 | transform: rotate(0deg);
24 | }
25 | to {
26 | transform: rotate(360deg);
27 | }
28 | }
29 |
30 | @media (prefers-reduced-motion: no-preference) {
31 | a:nth-of-type(2) .logo {
32 | animation: logo-spin infinite 20s linear;
33 | }
34 | }
35 |
36 | .card {
37 | padding: 2em;
38 | }
39 |
40 | .read-the-docs {
41 | color: #888;
42 | }
43 |
--------------------------------------------------------------------------------
/src/App.jsx:
--------------------------------------------------------------------------------
1 | import { Routes, Route, useNavigate } from "react-router-dom";
2 | import { supabase } from "./supabase/client";
3 | import { useEffect } from "react";
4 | import Navbar from './components/Navbar'
5 | import Home from './pages/Home'
6 | import Login from './pages/Login'
7 | import NotFound from './pages/NotFound'
8 | import { TaskContextProvider } from "./context/TaskContext";
9 | import { AuthProvider } from "./context/AuthContext";
10 |
11 | function App() {
12 | const navigate = useNavigate();
13 |
14 | useEffect(() => {
15 | supabase.auth.onAuthStateChange((_event, session) => {
16 | if (!session) {
17 | navigate("/login");
18 | } else {
19 | navigate("/");
20 | }
21 | });
22 | }, [navigate]);
23 |
24 | return (
25 |
26 |
27 |
28 |
29 |
30 | } />
31 | } />
32 | } />
33 |
34 |
35 |
36 |
37 | )
38 | }
39 |
40 | export default App
--------------------------------------------------------------------------------
/src/assets/react.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/components/Navbar.jsx:
--------------------------------------------------------------------------------
1 | import { useAuth } from "../context/AuthContext";
2 | import { useTasks } from "../context/TaskContext";
3 | import { Link } from "react-router-dom";
4 |
5 | function Navbar() {
6 | const { logout } = useTasks();
7 | const { user } = useAuth()
8 |
9 | return (
10 |
37 | );
38 | }
39 |
40 | export default Navbar;
41 |
--------------------------------------------------------------------------------
/src/components/TaskCard.jsx:
--------------------------------------------------------------------------------
1 | import { useTasks } from "../context/TaskContext";
2 |
3 | function TaskCard({ task }) {
4 | const { deleteTask, updateTasks } = useTasks();
5 |
6 | const handleDelete = async (id) => {
7 | await deleteTask(id);
8 | };
9 |
10 | const handleToggleDone = async (id, doneState) => {
11 | await updateTasks(id, { done: !doneState });
12 | };
13 |
14 | return (
15 |
16 |
17 | {task.id}. {task.name}
18 |
19 |
{task.done ? "Done" : "Not done"}
20 |
21 |
27 |
33 |
34 |
35 | );
36 | }
37 |
38 | export default TaskCard;
39 |
--------------------------------------------------------------------------------
/src/components/TaskForm.jsx:
--------------------------------------------------------------------------------
1 | import { useState } from "react";
2 | import { useTasks } from "../context/TaskContext";
3 |
4 | function TaskForm() {
5 | const [taskName, setTaskName] = useState("");
6 | const { createTask, adding } = useTasks();
7 |
8 | const handleSubmit = async (e) => {
9 | e.preventDefault();
10 | try {
11 | await createTask(taskName);
12 | alert("Task created");
13 | setTaskName("");
14 | } catch (error) {
15 | console.log(error);
16 | }
17 | };
18 |
19 | return (
20 |
36 | );
37 | }
38 |
39 | export default TaskForm;
40 |
--------------------------------------------------------------------------------
/src/components/TasksDoneList.jsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FaztWeb/react-supabase-auth-crud/220c57c0593ab792250624d69faec2fb02a4ec7c/src/components/TasksDoneList.jsx
--------------------------------------------------------------------------------
/src/components/TasksList.jsx:
--------------------------------------------------------------------------------
1 | import { useEffect } from "react";
2 | import { useTasks } from "../context/TaskContext";
3 | import TaskCard from "./TaskCard";
4 |
5 | function TasksList({ done = false }) {
6 | const { loading, getTasks, tasks } = useTasks();
7 |
8 | useEffect(() => {
9 | getTasks(done);
10 | // eslint-disable-next-line react-hooks/exhaustive-deps
11 | }, [done]);
12 |
13 | function renderTasks() {
14 | if (loading) {
15 | return Loading...
;
16 | } else if (tasks.length === 0) {
17 | return No tasks
;
18 | } else {
19 | return tasks.map((task) => {
20 | return ;
21 | });
22 | }
23 | }
24 |
25 | return {renderTasks()}
;
26 | }
27 |
28 | export default TasksList;
29 |
--------------------------------------------------------------------------------
/src/context/AuthContext.jsx:
--------------------------------------------------------------------------------
1 | import {createContext, useContext} from 'react'
2 |
3 | export const AuthContext = createContext()
4 |
5 | export function useAuth() {
6 | return useContext(AuthContext)
7 | }
8 |
9 | export function AuthProvider({children}) {
10 | return (
11 |
14 | {children}
15 |
16 | )
17 | }
18 |
--------------------------------------------------------------------------------
/src/context/TaskContext.jsx:
--------------------------------------------------------------------------------
1 | import { createContext, useContext, useState } from "react";
2 | import { supabase } from "../supabase/client";
3 |
4 | export const TaskContext = createContext();
5 |
6 | export const useTasks = () => {
7 | const context = useContext(TaskContext);
8 | if (context === undefined) {
9 | throw new Error("useTasks must be used within a TaskProvider");
10 | }
11 | return context;
12 | };
13 |
14 | export const TaskContextProvider = ({ children }) => {
15 | const [tasks, setTasks] = useState([]);
16 | const [loading, setLoading] = useState(false);
17 | const [adding, setAdding] = useState(false);
18 |
19 | const loginWithMagicLink = async (email) => {
20 | setLoading(true);
21 | try {
22 | const { error } = await supabase.auth.signIn({ email });
23 | if (error) {
24 | throw error;
25 | }
26 | alert("check your email for the magic link");
27 | } catch (error) {
28 | alert(error.message);
29 | } finally {
30 | setLoading(false);
31 | }
32 | };
33 |
34 | const logout = async () => {
35 | setLoading(true);
36 | try {
37 | const { error } = await supabase.auth.signOut();
38 | if (error) {
39 | throw error;
40 | }
41 | } catch (error) {
42 | alert(error.error_description || error.message);
43 | } finally {
44 | setLoading(false);
45 | }
46 | };
47 |
48 | const createTask = async (taskName) => {
49 | setAdding(true);
50 | try {
51 | const user = supabase.auth.getUser();
52 |
53 | const { error, data } = await supabase.from("tasks").insert({
54 | name: taskName,
55 | userId: user.id,
56 | });
57 |
58 | setTasks([...tasks, ...data]);
59 |
60 | if (error) {
61 | throw error;
62 | }
63 | } catch (error) {
64 | alert(error.error_description || error.message);
65 | } finally {
66 | setAdding(false);
67 | }
68 | };
69 |
70 | const getTasks = async (done = false) => {
71 | setLoading(true);
72 |
73 | const user = supabase.auth.getUser();
74 |
75 | try {
76 | const { error, data } = await supabase
77 | .from("tasks")
78 | .select("id, name, done")
79 | .eq("userId", user.id)
80 | .eq("done", done)
81 | .order("id", { ascending: false });
82 |
83 | if (error) {
84 | throw error;
85 | }
86 |
87 | setTasks(data);
88 | } catch (error) {
89 | alert(error.error_description || error.message);
90 | } finally {
91 | setLoading(false);
92 | }
93 | };
94 |
95 | const updateTasks = async (id, updatedFields) => {
96 | try {
97 | const user = supabase.auth.getUser();
98 | const { error, data } = await supabase
99 | .from("tasks")
100 | .update(updatedFields)
101 | .eq("userId", user.id)
102 | .eq("id", id);
103 | if (error) {
104 | throw error;
105 | }
106 |
107 | setTasks(tasks.filter((task) => task.id !== data[0].id));
108 | } catch (error) {
109 | alert(error.error_description || error.message);
110 | }
111 | };
112 |
113 | const deleteTask = async (id) => {
114 | try {
115 | const user = supabase.auth.user();
116 |
117 | const { error, data } = await supabase
118 | .from("tasks")
119 | .delete()
120 | .eq("userId", user.id)
121 | .eq("id", id);
122 |
123 | if (error) {
124 | throw error;
125 | }
126 |
127 | setTasks(tasks.filter((task) => task.id !== data[0].id));
128 | } catch (error) {
129 | alert(error.error_description || error.message);
130 | }
131 | };
132 |
133 | return (
134 |
147 | {children}
148 |
149 | );
150 | };
151 |
--------------------------------------------------------------------------------
/src/index.css:
--------------------------------------------------------------------------------
1 | :root {
2 | font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif;
3 | line-height: 1.5;
4 | font-weight: 400;
5 |
6 | color-scheme: light dark;
7 | color: rgba(255, 255, 255, 0.87);
8 | background-color: #242424;
9 |
10 | font-synthesis: none;
11 | text-rendering: optimizeLegibility;
12 | -webkit-font-smoothing: antialiased;
13 | -moz-osx-font-smoothing: grayscale;
14 | -webkit-text-size-adjust: 100%;
15 | }
16 |
17 | a {
18 | font-weight: 500;
19 | color: #646cff;
20 | text-decoration: inherit;
21 | }
22 | a:hover {
23 | color: #535bf2;
24 | }
25 |
26 | body {
27 | margin: 0;
28 | display: flex;
29 | place-items: center;
30 | min-width: 320px;
31 | min-height: 100vh;
32 | }
33 |
34 | h1 {
35 | font-size: 3.2em;
36 | line-height: 1.1;
37 | }
38 |
39 | button {
40 | border-radius: 8px;
41 | border: 1px solid transparent;
42 | padding: 0.6em 1.2em;
43 | font-size: 1em;
44 | font-weight: 500;
45 | font-family: inherit;
46 | background-color: #1a1a1a;
47 | cursor: pointer;
48 | transition: border-color 0.25s;
49 | }
50 | button:hover {
51 | border-color: #646cff;
52 | }
53 | button:focus,
54 | button:focus-visible {
55 | outline: 4px auto -webkit-focus-ring-color;
56 | }
57 |
58 | @media (prefers-color-scheme: light) {
59 | :root {
60 | color: #213547;
61 | background-color: #ffffff;
62 | }
63 | a:hover {
64 | color: #747bff;
65 | }
66 | button {
67 | background-color: #f9f9f9;
68 | }
69 | }
70 |
--------------------------------------------------------------------------------
/src/main.jsx:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import ReactDOM from 'react-dom/client'
3 | import App from './App.jsx'
4 | import { BrowserRouter } from "react-router-dom";
5 | import './index.css'
6 |
7 | ReactDOM.createRoot(document.getElementById('root')).render(
8 |
9 |
10 |
11 |
12 | ,
13 | )
14 |
--------------------------------------------------------------------------------
/src/pages/Home.jsx:
--------------------------------------------------------------------------------
1 | import { useState, useEffect } from "react";
2 | import { useNavigate } from "react-router-dom";
3 | import TaskForm from "../components/TaskForm";
4 | import TasksList from "../components/TasksList";
5 | import { supabase } from "../supabase/client";
6 |
7 | function Home() {
8 | const navigate = useNavigate();
9 | const [showTasksDone, setShowTasksDone] = useState(false);
10 |
11 | useEffect(() => {
12 | if (!supabase.auth.getUser()) {
13 | navigate("/login");
14 | }
15 | }, [navigate]);
16 |
17 | return (
18 |
19 |
20 |
21 |
22 | {showTasksDone ? `Done Tasks` : "Tasks"}
23 |
29 |
30 |
31 |
32 |
33 |
34 | );
35 | }
36 |
37 | export default Home;
38 |
--------------------------------------------------------------------------------
/src/pages/Login.jsx:
--------------------------------------------------------------------------------
1 | import { useEffect, useState } from "react";
2 | import { useTasks } from "../context/TaskContext";
3 | import { supabase } from "../supabase/client";
4 | import { useNavigate } from "react-router-dom";
5 |
6 | function Login() {
7 | const [email, setEmail] = useState("");
8 | const { loading, loginWithMagicLink } = useTasks();
9 | const navigate = useNavigate();
10 |
11 | const handleSubmit = (e) => {
12 | e.preventDefault();
13 | loginWithMagicLink(email);
14 | };
15 |
16 | useEffect(() => {
17 | if (supabase.auth.getUser()) {
18 | navigate("/");
19 | }
20 | console.log("called");
21 | }, [navigate]);
22 |
23 | return (
24 |
45 | );
46 | }
47 |
48 | export default Login;
49 |
--------------------------------------------------------------------------------
/src/pages/NotFound.jsx:
--------------------------------------------------------------------------------
1 | function NotFound() {
2 | return (
3 | NotFound
4 | )
5 | }
6 |
7 | export default NotFound
--------------------------------------------------------------------------------
/src/supabase/client.js:
--------------------------------------------------------------------------------
1 | import { createClient } from "@supabase/supabase-js";
2 |
3 | export const supabase = createClient(
4 | import.meta.env.VITE_SUPABASE_URL,
5 | import.meta.env.VITE_SUPABASE_KEY
6 | );
7 |
--------------------------------------------------------------------------------
/vite.config.js:
--------------------------------------------------------------------------------
1 | import { defineConfig } from 'vite'
2 | import react from '@vitejs/plugin-react-swc'
3 |
4 | // https://vitejs.dev/config/
5 | export default defineConfig({
6 | plugins: [react()],
7 | })
8 |
--------------------------------------------------------------------------------