├── .gitignore
├── client
├── .gitignore
├── dist
│ ├── assets
│ │ └── index.fa74ed46.js
│ ├── index.html
│ └── vite.svg
├── index.html
├── package-lock.json
├── package.json
├── public
│ └── vite.svg
├── src
│ ├── App.css
│ ├── App.jsx
│ ├── assets
│ │ └── react.svg
│ ├── index.css
│ └── main.jsx
└── vite.config.js
├── go.mod
├── go.sum
├── main.go
├── models
└── user_model.go
└── requests
└── users.http
/.gitignore:
--------------------------------------------------------------------------------
1 | tmp
--------------------------------------------------------------------------------
/client/.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 |
--------------------------------------------------------------------------------
/client/dist/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | Vite + React
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/client/dist/vite.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/client/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | Vite + React
8 |
9 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/client/package-lock.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "client",
3 | "version": "0.0.0",
4 | "lockfileVersion": 2,
5 | "requires": true,
6 | "packages": {
7 | "": {
8 | "name": "client",
9 | "version": "0.0.0",
10 | "dependencies": {
11 | "react": "^18.2.0",
12 | "react-dom": "^18.2.0"
13 | },
14 | "devDependencies": {
15 | "@types/react": "^18.0.15",
16 | "@types/react-dom": "^18.0.6",
17 | "@vitejs/plugin-react": "^2.0.0",
18 | "vite": "^3.0.0"
19 | }
20 | },
21 | "node_modules/@ampproject/remapping": {
22 | "version": "2.2.0",
23 | "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz",
24 | "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==",
25 | "dev": true,
26 | "dependencies": {
27 | "@jridgewell/gen-mapping": "^0.1.0",
28 | "@jridgewell/trace-mapping": "^0.3.9"
29 | },
30 | "engines": {
31 | "node": ">=6.0.0"
32 | }
33 | },
34 | "node_modules/@babel/code-frame": {
35 | "version": "7.18.6",
36 | "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz",
37 | "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==",
38 | "dev": true,
39 | "dependencies": {
40 | "@babel/highlight": "^7.18.6"
41 | },
42 | "engines": {
43 | "node": ">=6.9.0"
44 | }
45 | },
46 | "node_modules/@babel/compat-data": {
47 | "version": "7.18.8",
48 | "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.18.8.tgz",
49 | "integrity": "sha512-HSmX4WZPPK3FUxYp7g2T6EyO8j96HlZJlxmKPSh6KAcqwyDrfx7hKjXpAW/0FhFfTJsR0Yt4lAjLI2coMptIHQ==",
50 | "dev": true,
51 | "engines": {
52 | "node": ">=6.9.0"
53 | }
54 | },
55 | "node_modules/@babel/core": {
56 | "version": "7.18.10",
57 | "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.18.10.tgz",
58 | "integrity": "sha512-JQM6k6ENcBFKVtWvLavlvi/mPcpYZ3+R+2EySDEMSMbp7Mn4FexlbbJVrx2R7Ijhr01T8gyqrOaABWIOgxeUyw==",
59 | "dev": true,
60 | "dependencies": {
61 | "@ampproject/remapping": "^2.1.0",
62 | "@babel/code-frame": "^7.18.6",
63 | "@babel/generator": "^7.18.10",
64 | "@babel/helper-compilation-targets": "^7.18.9",
65 | "@babel/helper-module-transforms": "^7.18.9",
66 | "@babel/helpers": "^7.18.9",
67 | "@babel/parser": "^7.18.10",
68 | "@babel/template": "^7.18.10",
69 | "@babel/traverse": "^7.18.10",
70 | "@babel/types": "^7.18.10",
71 | "convert-source-map": "^1.7.0",
72 | "debug": "^4.1.0",
73 | "gensync": "^1.0.0-beta.2",
74 | "json5": "^2.2.1",
75 | "semver": "^6.3.0"
76 | },
77 | "engines": {
78 | "node": ">=6.9.0"
79 | },
80 | "funding": {
81 | "type": "opencollective",
82 | "url": "https://opencollective.com/babel"
83 | }
84 | },
85 | "node_modules/@babel/generator": {
86 | "version": "7.18.12",
87 | "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.18.12.tgz",
88 | "integrity": "sha512-dfQ8ebCN98SvyL7IxNMCUtZQSq5R7kxgN+r8qYTGDmmSion1hX2C0zq2yo1bsCDhXixokv1SAWTZUMYbO/V5zg==",
89 | "dev": true,
90 | "dependencies": {
91 | "@babel/types": "^7.18.10",
92 | "@jridgewell/gen-mapping": "^0.3.2",
93 | "jsesc": "^2.5.1"
94 | },
95 | "engines": {
96 | "node": ">=6.9.0"
97 | }
98 | },
99 | "node_modules/@babel/generator/node_modules/@jridgewell/gen-mapping": {
100 | "version": "0.3.2",
101 | "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz",
102 | "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==",
103 | "dev": true,
104 | "dependencies": {
105 | "@jridgewell/set-array": "^1.0.1",
106 | "@jridgewell/sourcemap-codec": "^1.4.10",
107 | "@jridgewell/trace-mapping": "^0.3.9"
108 | },
109 | "engines": {
110 | "node": ">=6.0.0"
111 | }
112 | },
113 | "node_modules/@babel/helper-annotate-as-pure": {
114 | "version": "7.18.6",
115 | "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz",
116 | "integrity": "sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==",
117 | "dev": true,
118 | "dependencies": {
119 | "@babel/types": "^7.18.6"
120 | },
121 | "engines": {
122 | "node": ">=6.9.0"
123 | }
124 | },
125 | "node_modules/@babel/helper-compilation-targets": {
126 | "version": "7.18.9",
127 | "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.18.9.tgz",
128 | "integrity": "sha512-tzLCyVmqUiFlcFoAPLA/gL9TeYrF61VLNtb+hvkuVaB5SUjW7jcfrglBIX1vUIoT7CLP3bBlIMeyEsIl2eFQNg==",
129 | "dev": true,
130 | "dependencies": {
131 | "@babel/compat-data": "^7.18.8",
132 | "@babel/helper-validator-option": "^7.18.6",
133 | "browserslist": "^4.20.2",
134 | "semver": "^6.3.0"
135 | },
136 | "engines": {
137 | "node": ">=6.9.0"
138 | },
139 | "peerDependencies": {
140 | "@babel/core": "^7.0.0"
141 | }
142 | },
143 | "node_modules/@babel/helper-environment-visitor": {
144 | "version": "7.18.9",
145 | "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz",
146 | "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==",
147 | "dev": true,
148 | "engines": {
149 | "node": ">=6.9.0"
150 | }
151 | },
152 | "node_modules/@babel/helper-function-name": {
153 | "version": "7.18.9",
154 | "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.18.9.tgz",
155 | "integrity": "sha512-fJgWlZt7nxGksJS9a0XdSaI4XvpExnNIgRP+rVefWh5U7BL8pPuir6SJUmFKRfjWQ51OtWSzwOxhaH/EBWWc0A==",
156 | "dev": true,
157 | "dependencies": {
158 | "@babel/template": "^7.18.6",
159 | "@babel/types": "^7.18.9"
160 | },
161 | "engines": {
162 | "node": ">=6.9.0"
163 | }
164 | },
165 | "node_modules/@babel/helper-hoist-variables": {
166 | "version": "7.18.6",
167 | "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz",
168 | "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==",
169 | "dev": true,
170 | "dependencies": {
171 | "@babel/types": "^7.18.6"
172 | },
173 | "engines": {
174 | "node": ">=6.9.0"
175 | }
176 | },
177 | "node_modules/@babel/helper-module-imports": {
178 | "version": "7.18.6",
179 | "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz",
180 | "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==",
181 | "dev": true,
182 | "dependencies": {
183 | "@babel/types": "^7.18.6"
184 | },
185 | "engines": {
186 | "node": ">=6.9.0"
187 | }
188 | },
189 | "node_modules/@babel/helper-module-transforms": {
190 | "version": "7.18.9",
191 | "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.18.9.tgz",
192 | "integrity": "sha512-KYNqY0ICwfv19b31XzvmI/mfcylOzbLtowkw+mfvGPAQ3kfCnMLYbED3YecL5tPd8nAYFQFAd6JHp2LxZk/J1g==",
193 | "dev": true,
194 | "dependencies": {
195 | "@babel/helper-environment-visitor": "^7.18.9",
196 | "@babel/helper-module-imports": "^7.18.6",
197 | "@babel/helper-simple-access": "^7.18.6",
198 | "@babel/helper-split-export-declaration": "^7.18.6",
199 | "@babel/helper-validator-identifier": "^7.18.6",
200 | "@babel/template": "^7.18.6",
201 | "@babel/traverse": "^7.18.9",
202 | "@babel/types": "^7.18.9"
203 | },
204 | "engines": {
205 | "node": ">=6.9.0"
206 | }
207 | },
208 | "node_modules/@babel/helper-plugin-utils": {
209 | "version": "7.18.9",
210 | "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.18.9.tgz",
211 | "integrity": "sha512-aBXPT3bmtLryXaoJLyYPXPlSD4p1ld9aYeR+sJNOZjJJGiOpb+fKfh3NkcCu7J54nUJwCERPBExCCpyCOHnu/w==",
212 | "dev": true,
213 | "engines": {
214 | "node": ">=6.9.0"
215 | }
216 | },
217 | "node_modules/@babel/helper-simple-access": {
218 | "version": "7.18.6",
219 | "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.18.6.tgz",
220 | "integrity": "sha512-iNpIgTgyAvDQpDj76POqg+YEt8fPxx3yaNBg3S30dxNKm2SWfYhD0TGrK/Eu9wHpUW63VQU894TsTg+GLbUa1g==",
221 | "dev": true,
222 | "dependencies": {
223 | "@babel/types": "^7.18.6"
224 | },
225 | "engines": {
226 | "node": ">=6.9.0"
227 | }
228 | },
229 | "node_modules/@babel/helper-split-export-declaration": {
230 | "version": "7.18.6",
231 | "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz",
232 | "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==",
233 | "dev": true,
234 | "dependencies": {
235 | "@babel/types": "^7.18.6"
236 | },
237 | "engines": {
238 | "node": ">=6.9.0"
239 | }
240 | },
241 | "node_modules/@babel/helper-string-parser": {
242 | "version": "7.18.10",
243 | "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.18.10.tgz",
244 | "integrity": "sha512-XtIfWmeNY3i4t7t4D2t02q50HvqHybPqW2ki1kosnvWCwuCMeo81Jf0gwr85jy/neUdg5XDdeFE/80DXiO+njw==",
245 | "dev": true,
246 | "engines": {
247 | "node": ">=6.9.0"
248 | }
249 | },
250 | "node_modules/@babel/helper-validator-identifier": {
251 | "version": "7.18.6",
252 | "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz",
253 | "integrity": "sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g==",
254 | "dev": true,
255 | "engines": {
256 | "node": ">=6.9.0"
257 | }
258 | },
259 | "node_modules/@babel/helper-validator-option": {
260 | "version": "7.18.6",
261 | "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz",
262 | "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==",
263 | "dev": true,
264 | "engines": {
265 | "node": ">=6.9.0"
266 | }
267 | },
268 | "node_modules/@babel/helpers": {
269 | "version": "7.18.9",
270 | "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.18.9.tgz",
271 | "integrity": "sha512-Jf5a+rbrLoR4eNdUmnFu8cN5eNJT6qdTdOg5IHIzq87WwyRw9PwguLFOWYgktN/60IP4fgDUawJvs7PjQIzELQ==",
272 | "dev": true,
273 | "dependencies": {
274 | "@babel/template": "^7.18.6",
275 | "@babel/traverse": "^7.18.9",
276 | "@babel/types": "^7.18.9"
277 | },
278 | "engines": {
279 | "node": ">=6.9.0"
280 | }
281 | },
282 | "node_modules/@babel/highlight": {
283 | "version": "7.18.6",
284 | "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz",
285 | "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==",
286 | "dev": true,
287 | "dependencies": {
288 | "@babel/helper-validator-identifier": "^7.18.6",
289 | "chalk": "^2.0.0",
290 | "js-tokens": "^4.0.0"
291 | },
292 | "engines": {
293 | "node": ">=6.9.0"
294 | }
295 | },
296 | "node_modules/@babel/parser": {
297 | "version": "7.18.11",
298 | "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.18.11.tgz",
299 | "integrity": "sha512-9JKn5vN+hDt0Hdqn1PiJ2guflwP+B6Ga8qbDuoF0PzzVhrzsKIJo8yGqVk6CmMHiMei9w1C1Bp9IMJSIK+HPIQ==",
300 | "dev": true,
301 | "bin": {
302 | "parser": "bin/babel-parser.js"
303 | },
304 | "engines": {
305 | "node": ">=6.0.0"
306 | }
307 | },
308 | "node_modules/@babel/plugin-syntax-jsx": {
309 | "version": "7.18.6",
310 | "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.18.6.tgz",
311 | "integrity": "sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q==",
312 | "dev": true,
313 | "dependencies": {
314 | "@babel/helper-plugin-utils": "^7.18.6"
315 | },
316 | "engines": {
317 | "node": ">=6.9.0"
318 | },
319 | "peerDependencies": {
320 | "@babel/core": "^7.0.0-0"
321 | }
322 | },
323 | "node_modules/@babel/plugin-transform-react-jsx": {
324 | "version": "7.18.10",
325 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.18.10.tgz",
326 | "integrity": "sha512-gCy7Iikrpu3IZjYZolFE4M1Sm+nrh1/6za2Ewj77Z+XirT4TsbJcvOFOyF+fRPwU6AKKK136CZxx6L8AbSFG6A==",
327 | "dev": true,
328 | "dependencies": {
329 | "@babel/helper-annotate-as-pure": "^7.18.6",
330 | "@babel/helper-module-imports": "^7.18.6",
331 | "@babel/helper-plugin-utils": "^7.18.9",
332 | "@babel/plugin-syntax-jsx": "^7.18.6",
333 | "@babel/types": "^7.18.10"
334 | },
335 | "engines": {
336 | "node": ">=6.9.0"
337 | },
338 | "peerDependencies": {
339 | "@babel/core": "^7.0.0-0"
340 | }
341 | },
342 | "node_modules/@babel/plugin-transform-react-jsx-development": {
343 | "version": "7.18.6",
344 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.18.6.tgz",
345 | "integrity": "sha512-SA6HEjwYFKF7WDjWcMcMGUimmw/nhNRDWxr+KaLSCrkD/LMDBvWRmHAYgE1HDeF8KUuI8OAu+RT6EOtKxSW2qA==",
346 | "dev": true,
347 | "dependencies": {
348 | "@babel/plugin-transform-react-jsx": "^7.18.6"
349 | },
350 | "engines": {
351 | "node": ">=6.9.0"
352 | },
353 | "peerDependencies": {
354 | "@babel/core": "^7.0.0-0"
355 | }
356 | },
357 | "node_modules/@babel/plugin-transform-react-jsx-self": {
358 | "version": "7.18.6",
359 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.18.6.tgz",
360 | "integrity": "sha512-A0LQGx4+4Jv7u/tWzoJF7alZwnBDQd6cGLh9P+Ttk4dpiL+J5p7NSNv/9tlEFFJDq3kjxOavWmbm6t0Gk+A3Ig==",
361 | "dev": true,
362 | "dependencies": {
363 | "@babel/helper-plugin-utils": "^7.18.6"
364 | },
365 | "engines": {
366 | "node": ">=6.9.0"
367 | },
368 | "peerDependencies": {
369 | "@babel/core": "^7.0.0-0"
370 | }
371 | },
372 | "node_modules/@babel/plugin-transform-react-jsx-source": {
373 | "version": "7.18.6",
374 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.18.6.tgz",
375 | "integrity": "sha512-utZmlASneDfdaMh0m/WausbjUjEdGrQJz0vFK93d7wD3xf5wBtX219+q6IlCNZeguIcxS2f/CvLZrlLSvSHQXw==",
376 | "dev": true,
377 | "dependencies": {
378 | "@babel/helper-plugin-utils": "^7.18.6"
379 | },
380 | "engines": {
381 | "node": ">=6.9.0"
382 | },
383 | "peerDependencies": {
384 | "@babel/core": "^7.0.0-0"
385 | }
386 | },
387 | "node_modules/@babel/template": {
388 | "version": "7.18.10",
389 | "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.18.10.tgz",
390 | "integrity": "sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA==",
391 | "dev": true,
392 | "dependencies": {
393 | "@babel/code-frame": "^7.18.6",
394 | "@babel/parser": "^7.18.10",
395 | "@babel/types": "^7.18.10"
396 | },
397 | "engines": {
398 | "node": ">=6.9.0"
399 | }
400 | },
401 | "node_modules/@babel/traverse": {
402 | "version": "7.18.11",
403 | "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.18.11.tgz",
404 | "integrity": "sha512-TG9PiM2R/cWCAy6BPJKeHzNbu4lPzOSZpeMfeNErskGpTJx6trEvFaVCbDvpcxwy49BKWmEPwiW8mrysNiDvIQ==",
405 | "dev": true,
406 | "dependencies": {
407 | "@babel/code-frame": "^7.18.6",
408 | "@babel/generator": "^7.18.10",
409 | "@babel/helper-environment-visitor": "^7.18.9",
410 | "@babel/helper-function-name": "^7.18.9",
411 | "@babel/helper-hoist-variables": "^7.18.6",
412 | "@babel/helper-split-export-declaration": "^7.18.6",
413 | "@babel/parser": "^7.18.11",
414 | "@babel/types": "^7.18.10",
415 | "debug": "^4.1.0",
416 | "globals": "^11.1.0"
417 | },
418 | "engines": {
419 | "node": ">=6.9.0"
420 | }
421 | },
422 | "node_modules/@babel/types": {
423 | "version": "7.18.10",
424 | "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.18.10.tgz",
425 | "integrity": "sha512-MJvnbEiiNkpjo+LknnmRrqbY1GPUUggjv+wQVjetM/AONoupqRALB7I6jGqNUAZsKcRIEu2J6FRFvsczljjsaQ==",
426 | "dev": true,
427 | "dependencies": {
428 | "@babel/helper-string-parser": "^7.18.10",
429 | "@babel/helper-validator-identifier": "^7.18.6",
430 | "to-fast-properties": "^2.0.0"
431 | },
432 | "engines": {
433 | "node": ">=6.9.0"
434 | }
435 | },
436 | "node_modules/@esbuild/linux-loong64": {
437 | "version": "0.14.53",
438 | "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.14.53.tgz",
439 | "integrity": "sha512-W2dAL6Bnyn4xa/QRSU3ilIK4EzD5wgYXKXJiS1HDF5vU3675qc2bvFyLwbUcdmssDveyndy7FbitrCoiV/eMLg==",
440 | "cpu": [
441 | "loong64"
442 | ],
443 | "dev": true,
444 | "optional": true,
445 | "os": [
446 | "linux"
447 | ],
448 | "engines": {
449 | "node": ">=12"
450 | }
451 | },
452 | "node_modules/@jridgewell/gen-mapping": {
453 | "version": "0.1.1",
454 | "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz",
455 | "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==",
456 | "dev": true,
457 | "dependencies": {
458 | "@jridgewell/set-array": "^1.0.0",
459 | "@jridgewell/sourcemap-codec": "^1.4.10"
460 | },
461 | "engines": {
462 | "node": ">=6.0.0"
463 | }
464 | },
465 | "node_modules/@jridgewell/resolve-uri": {
466 | "version": "3.1.0",
467 | "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz",
468 | "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==",
469 | "dev": true,
470 | "engines": {
471 | "node": ">=6.0.0"
472 | }
473 | },
474 | "node_modules/@jridgewell/set-array": {
475 | "version": "1.1.2",
476 | "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz",
477 | "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==",
478 | "dev": true,
479 | "engines": {
480 | "node": ">=6.0.0"
481 | }
482 | },
483 | "node_modules/@jridgewell/sourcemap-codec": {
484 | "version": "1.4.14",
485 | "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz",
486 | "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==",
487 | "dev": true
488 | },
489 | "node_modules/@jridgewell/trace-mapping": {
490 | "version": "0.3.14",
491 | "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.14.tgz",
492 | "integrity": "sha512-bJWEfQ9lPTvm3SneWwRFVLzrh6nhjwqw7TUFFBEMzwvg7t7PCDenf2lDwqo4NQXzdpgBXyFgDWnQA+2vkruksQ==",
493 | "dev": true,
494 | "dependencies": {
495 | "@jridgewell/resolve-uri": "^3.0.3",
496 | "@jridgewell/sourcemap-codec": "^1.4.10"
497 | }
498 | },
499 | "node_modules/@types/prop-types": {
500 | "version": "15.7.5",
501 | "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz",
502 | "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==",
503 | "dev": true
504 | },
505 | "node_modules/@types/react": {
506 | "version": "18.0.15",
507 | "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.15.tgz",
508 | "integrity": "sha512-iz3BtLuIYH1uWdsv6wXYdhozhqj20oD4/Hk2DNXIn1kFsmp9x8d9QB6FnPhfkbhd2PgEONt9Q1x/ebkwjfFLow==",
509 | "dev": true,
510 | "dependencies": {
511 | "@types/prop-types": "*",
512 | "@types/scheduler": "*",
513 | "csstype": "^3.0.2"
514 | }
515 | },
516 | "node_modules/@types/react-dom": {
517 | "version": "18.0.6",
518 | "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.0.6.tgz",
519 | "integrity": "sha512-/5OFZgfIPSwy+YuIBP/FgJnQnsxhZhjjrnxudMddeblOouIodEQ75X14Rr4wGSG/bknL+Omy9iWlLo1u/9GzAA==",
520 | "dev": true,
521 | "dependencies": {
522 | "@types/react": "*"
523 | }
524 | },
525 | "node_modules/@types/scheduler": {
526 | "version": "0.16.2",
527 | "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.2.tgz",
528 | "integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==",
529 | "dev": true
530 | },
531 | "node_modules/@vitejs/plugin-react": {
532 | "version": "2.0.0",
533 | "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-2.0.0.tgz",
534 | "integrity": "sha512-zHkRR+X4zqEPNBbKV2FvWSxK7Q6crjMBVIAYroSU8Nbb4M3E5x4qOiLoqJBHtXgr27kfednXjkwr3lr8jS6Wrw==",
535 | "dev": true,
536 | "dependencies": {
537 | "@babel/core": "^7.18.6",
538 | "@babel/plugin-transform-react-jsx": "^7.18.6",
539 | "@babel/plugin-transform-react-jsx-development": "^7.18.6",
540 | "@babel/plugin-transform-react-jsx-self": "^7.18.6",
541 | "@babel/plugin-transform-react-jsx-source": "^7.18.6",
542 | "magic-string": "^0.26.2",
543 | "react-refresh": "^0.14.0"
544 | },
545 | "engines": {
546 | "node": ">=14.18.0"
547 | },
548 | "peerDependencies": {
549 | "vite": "^3.0.0"
550 | }
551 | },
552 | "node_modules/ansi-styles": {
553 | "version": "3.2.1",
554 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
555 | "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
556 | "dev": true,
557 | "dependencies": {
558 | "color-convert": "^1.9.0"
559 | },
560 | "engines": {
561 | "node": ">=4"
562 | }
563 | },
564 | "node_modules/browserslist": {
565 | "version": "4.21.3",
566 | "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.3.tgz",
567 | "integrity": "sha512-898rgRXLAyRkM1GryrrBHGkqA5hlpkV5MhtZwg9QXeiyLUYs2k00Un05aX5l2/yJIOObYKOpS2JNo8nJDE7fWQ==",
568 | "dev": true,
569 | "funding": [
570 | {
571 | "type": "opencollective",
572 | "url": "https://opencollective.com/browserslist"
573 | },
574 | {
575 | "type": "tidelift",
576 | "url": "https://tidelift.com/funding/github/npm/browserslist"
577 | }
578 | ],
579 | "dependencies": {
580 | "caniuse-lite": "^1.0.30001370",
581 | "electron-to-chromium": "^1.4.202",
582 | "node-releases": "^2.0.6",
583 | "update-browserslist-db": "^1.0.5"
584 | },
585 | "bin": {
586 | "browserslist": "cli.js"
587 | },
588 | "engines": {
589 | "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
590 | }
591 | },
592 | "node_modules/caniuse-lite": {
593 | "version": "1.0.30001374",
594 | "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001374.tgz",
595 | "integrity": "sha512-mWvzatRx3w+j5wx/mpFN5v5twlPrabG8NqX2c6e45LCpymdoGqNvRkRutFUqpRTXKFQFNQJasvK0YT7suW6/Hw==",
596 | "dev": true,
597 | "funding": [
598 | {
599 | "type": "opencollective",
600 | "url": "https://opencollective.com/browserslist"
601 | },
602 | {
603 | "type": "tidelift",
604 | "url": "https://tidelift.com/funding/github/npm/caniuse-lite"
605 | }
606 | ]
607 | },
608 | "node_modules/chalk": {
609 | "version": "2.4.2",
610 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
611 | "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
612 | "dev": true,
613 | "dependencies": {
614 | "ansi-styles": "^3.2.1",
615 | "escape-string-regexp": "^1.0.5",
616 | "supports-color": "^5.3.0"
617 | },
618 | "engines": {
619 | "node": ">=4"
620 | }
621 | },
622 | "node_modules/color-convert": {
623 | "version": "1.9.3",
624 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
625 | "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
626 | "dev": true,
627 | "dependencies": {
628 | "color-name": "1.1.3"
629 | }
630 | },
631 | "node_modules/color-name": {
632 | "version": "1.1.3",
633 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
634 | "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
635 | "dev": true
636 | },
637 | "node_modules/convert-source-map": {
638 | "version": "1.8.0",
639 | "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz",
640 | "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==",
641 | "dev": true,
642 | "dependencies": {
643 | "safe-buffer": "~5.1.1"
644 | }
645 | },
646 | "node_modules/csstype": {
647 | "version": "3.1.0",
648 | "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.0.tgz",
649 | "integrity": "sha512-uX1KG+x9h5hIJsaKR9xHUeUraxf8IODOwq9JLNPq6BwB04a/xgpq3rcx47l5BZu5zBPlgD342tdke3Hom/nJRA==",
650 | "dev": true
651 | },
652 | "node_modules/debug": {
653 | "version": "4.3.4",
654 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
655 | "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
656 | "dev": true,
657 | "dependencies": {
658 | "ms": "2.1.2"
659 | },
660 | "engines": {
661 | "node": ">=6.0"
662 | },
663 | "peerDependenciesMeta": {
664 | "supports-color": {
665 | "optional": true
666 | }
667 | }
668 | },
669 | "node_modules/electron-to-chromium": {
670 | "version": "1.4.211",
671 | "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.211.tgz",
672 | "integrity": "sha512-BZSbMpyFQU0KBJ1JG26XGeFI3i4op+qOYGxftmZXFZoHkhLgsSv4DHDJfl8ogII3hIuzGt51PaZ195OVu0yJ9A==",
673 | "dev": true
674 | },
675 | "node_modules/esbuild": {
676 | "version": "0.14.53",
677 | "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.14.53.tgz",
678 | "integrity": "sha512-ohO33pUBQ64q6mmheX1mZ8mIXj8ivQY/L4oVuAshr+aJI+zLl+amrp3EodrUNDNYVrKJXGPfIHFGhO8slGRjuw==",
679 | "dev": true,
680 | "hasInstallScript": true,
681 | "bin": {
682 | "esbuild": "bin/esbuild"
683 | },
684 | "engines": {
685 | "node": ">=12"
686 | },
687 | "optionalDependencies": {
688 | "@esbuild/linux-loong64": "0.14.53",
689 | "esbuild-android-64": "0.14.53",
690 | "esbuild-android-arm64": "0.14.53",
691 | "esbuild-darwin-64": "0.14.53",
692 | "esbuild-darwin-arm64": "0.14.53",
693 | "esbuild-freebsd-64": "0.14.53",
694 | "esbuild-freebsd-arm64": "0.14.53",
695 | "esbuild-linux-32": "0.14.53",
696 | "esbuild-linux-64": "0.14.53",
697 | "esbuild-linux-arm": "0.14.53",
698 | "esbuild-linux-arm64": "0.14.53",
699 | "esbuild-linux-mips64le": "0.14.53",
700 | "esbuild-linux-ppc64le": "0.14.53",
701 | "esbuild-linux-riscv64": "0.14.53",
702 | "esbuild-linux-s390x": "0.14.53",
703 | "esbuild-netbsd-64": "0.14.53",
704 | "esbuild-openbsd-64": "0.14.53",
705 | "esbuild-sunos-64": "0.14.53",
706 | "esbuild-windows-32": "0.14.53",
707 | "esbuild-windows-64": "0.14.53",
708 | "esbuild-windows-arm64": "0.14.53"
709 | }
710 | },
711 | "node_modules/esbuild-android-64": {
712 | "version": "0.14.53",
713 | "resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.14.53.tgz",
714 | "integrity": "sha512-fIL93sOTnEU+NrTAVMIKiAw0YH22HWCAgg4N4Z6zov2t0kY9RAJ50zY9ZMCQ+RT6bnOfDt8gCTnt/RaSNA2yRA==",
715 | "cpu": [
716 | "x64"
717 | ],
718 | "dev": true,
719 | "optional": true,
720 | "os": [
721 | "android"
722 | ],
723 | "engines": {
724 | "node": ">=12"
725 | }
726 | },
727 | "node_modules/esbuild-android-arm64": {
728 | "version": "0.14.53",
729 | "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.14.53.tgz",
730 | "integrity": "sha512-PC7KaF1v0h/nWpvlU1UMN7dzB54cBH8qSsm7S9mkwFA1BXpaEOufCg8hdoEI1jep0KeO/rjZVWrsH8+q28T77A==",
731 | "cpu": [
732 | "arm64"
733 | ],
734 | "dev": true,
735 | "optional": true,
736 | "os": [
737 | "android"
738 | ],
739 | "engines": {
740 | "node": ">=12"
741 | }
742 | },
743 | "node_modules/esbuild-darwin-64": {
744 | "version": "0.14.53",
745 | "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.14.53.tgz",
746 | "integrity": "sha512-gE7P5wlnkX4d4PKvLBUgmhZXvL7lzGRLri17/+CmmCzfncIgq8lOBvxGMiQ4xazplhxq+72TEohyFMZLFxuWvg==",
747 | "cpu": [
748 | "x64"
749 | ],
750 | "dev": true,
751 | "optional": true,
752 | "os": [
753 | "darwin"
754 | ],
755 | "engines": {
756 | "node": ">=12"
757 | }
758 | },
759 | "node_modules/esbuild-darwin-arm64": {
760 | "version": "0.14.53",
761 | "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.53.tgz",
762 | "integrity": "sha512-otJwDU3hnI15Q98PX4MJbknSZ/WSR1I45il7gcxcECXzfN4Mrpft5hBDHXNRnCh+5858uPXBXA1Vaz2jVWLaIA==",
763 | "cpu": [
764 | "arm64"
765 | ],
766 | "dev": true,
767 | "optional": true,
768 | "os": [
769 | "darwin"
770 | ],
771 | "engines": {
772 | "node": ">=12"
773 | }
774 | },
775 | "node_modules/esbuild-freebsd-64": {
776 | "version": "0.14.53",
777 | "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.53.tgz",
778 | "integrity": "sha512-WkdJa8iyrGHyKiPF4lk0MiOF87Q2SkE+i+8D4Cazq3/iqmGPJ6u49je300MFi5I2eUsQCkaOWhpCVQMTKGww2w==",
779 | "cpu": [
780 | "x64"
781 | ],
782 | "dev": true,
783 | "optional": true,
784 | "os": [
785 | "freebsd"
786 | ],
787 | "engines": {
788 | "node": ">=12"
789 | }
790 | },
791 | "node_modules/esbuild-freebsd-arm64": {
792 | "version": "0.14.53",
793 | "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.53.tgz",
794 | "integrity": "sha512-9T7WwCuV30NAx0SyQpw8edbKvbKELnnm1FHg7gbSYaatH+c8WJW10g/OdM7JYnv7qkimw2ZTtSA+NokOLd2ydQ==",
795 | "cpu": [
796 | "arm64"
797 | ],
798 | "dev": true,
799 | "optional": true,
800 | "os": [
801 | "freebsd"
802 | ],
803 | "engines": {
804 | "node": ">=12"
805 | }
806 | },
807 | "node_modules/esbuild-linux-32": {
808 | "version": "0.14.53",
809 | "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.14.53.tgz",
810 | "integrity": "sha512-VGanLBg5en2LfGDgLEUxQko2lqsOS7MTEWUi8x91YmsHNyzJVT/WApbFFx3MQGhkf+XdimVhpyo5/G0PBY91zg==",
811 | "cpu": [
812 | "ia32"
813 | ],
814 | "dev": true,
815 | "optional": true,
816 | "os": [
817 | "linux"
818 | ],
819 | "engines": {
820 | "node": ">=12"
821 | }
822 | },
823 | "node_modules/esbuild-linux-64": {
824 | "version": "0.14.53",
825 | "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.14.53.tgz",
826 | "integrity": "sha512-pP/FA55j/fzAV7N9DF31meAyjOH6Bjuo3aSKPh26+RW85ZEtbJv9nhoxmGTd9FOqjx59Tc1ZbrJabuiXlMwuZQ==",
827 | "cpu": [
828 | "x64"
829 | ],
830 | "dev": true,
831 | "optional": true,
832 | "os": [
833 | "linux"
834 | ],
835 | "engines": {
836 | "node": ">=12"
837 | }
838 | },
839 | "node_modules/esbuild-linux-arm": {
840 | "version": "0.14.53",
841 | "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.14.53.tgz",
842 | "integrity": "sha512-/u81NGAVZMopbmzd21Nu/wvnKQK3pT4CrvQ8BTje1STXcQAGnfyKgQlj3m0j2BzYbvQxSy+TMck4TNV2onvoPA==",
843 | "cpu": [
844 | "arm"
845 | ],
846 | "dev": true,
847 | "optional": true,
848 | "os": [
849 | "linux"
850 | ],
851 | "engines": {
852 | "node": ">=12"
853 | }
854 | },
855 | "node_modules/esbuild-linux-arm64": {
856 | "version": "0.14.53",
857 | "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.53.tgz",
858 | "integrity": "sha512-GDmWITT+PMsjCA6/lByYk7NyFssW4Q6in32iPkpjZ/ytSyH+xeEx8q7HG3AhWH6heemEYEWpTll/eui3jwlSnw==",
859 | "cpu": [
860 | "arm64"
861 | ],
862 | "dev": true,
863 | "optional": true,
864 | "os": [
865 | "linux"
866 | ],
867 | "engines": {
868 | "node": ">=12"
869 | }
870 | },
871 | "node_modules/esbuild-linux-mips64le": {
872 | "version": "0.14.53",
873 | "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.53.tgz",
874 | "integrity": "sha512-d6/XHIQW714gSSp6tOOX2UscedVobELvQlPMkInhx1NPz4ThZI9uNLQ4qQJHGBGKGfu+rtJsxM4NVHLhnNRdWQ==",
875 | "cpu": [
876 | "mips64el"
877 | ],
878 | "dev": true,
879 | "optional": true,
880 | "os": [
881 | "linux"
882 | ],
883 | "engines": {
884 | "node": ">=12"
885 | }
886 | },
887 | "node_modules/esbuild-linux-ppc64le": {
888 | "version": "0.14.53",
889 | "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.53.tgz",
890 | "integrity": "sha512-ndnJmniKPCB52m+r6BtHHLAOXw+xBCWIxNnedbIpuREOcbSU/AlyM/2dA3BmUQhsHdb4w3amD5U2s91TJ3MzzA==",
891 | "cpu": [
892 | "ppc64"
893 | ],
894 | "dev": true,
895 | "optional": true,
896 | "os": [
897 | "linux"
898 | ],
899 | "engines": {
900 | "node": ">=12"
901 | }
902 | },
903 | "node_modules/esbuild-linux-riscv64": {
904 | "version": "0.14.53",
905 | "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.53.tgz",
906 | "integrity": "sha512-yG2sVH+QSix6ct4lIzJj329iJF3MhloLE6/vKMQAAd26UVPVkhMFqFopY+9kCgYsdeWvXdPgmyOuKa48Y7+/EQ==",
907 | "cpu": [
908 | "riscv64"
909 | ],
910 | "dev": true,
911 | "optional": true,
912 | "os": [
913 | "linux"
914 | ],
915 | "engines": {
916 | "node": ">=12"
917 | }
918 | },
919 | "node_modules/esbuild-linux-s390x": {
920 | "version": "0.14.53",
921 | "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.53.tgz",
922 | "integrity": "sha512-OCJlgdkB+XPYndHmw6uZT7jcYgzmx9K+28PVdOa/eLjdoYkeAFvH5hTwX4AXGLZLH09tpl4bVsEtvuyUldaNCg==",
923 | "cpu": [
924 | "s390x"
925 | ],
926 | "dev": true,
927 | "optional": true,
928 | "os": [
929 | "linux"
930 | ],
931 | "engines": {
932 | "node": ">=12"
933 | }
934 | },
935 | "node_modules/esbuild-netbsd-64": {
936 | "version": "0.14.53",
937 | "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.53.tgz",
938 | "integrity": "sha512-gp2SB+Efc7MhMdWV2+pmIs/Ja/Mi5rjw+wlDmmbIn68VGXBleNgiEZG+eV2SRS0kJEUyHNedDtwRIMzaohWedQ==",
939 | "cpu": [
940 | "x64"
941 | ],
942 | "dev": true,
943 | "optional": true,
944 | "os": [
945 | "netbsd"
946 | ],
947 | "engines": {
948 | "node": ">=12"
949 | }
950 | },
951 | "node_modules/esbuild-openbsd-64": {
952 | "version": "0.14.53",
953 | "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.53.tgz",
954 | "integrity": "sha512-eKQ30ZWe+WTZmteDYg8S+YjHV5s4iTxeSGhJKJajFfQx9TLZJvsJX0/paqwP51GicOUruFpSUAs2NCc0a4ivQQ==",
955 | "cpu": [
956 | "x64"
957 | ],
958 | "dev": true,
959 | "optional": true,
960 | "os": [
961 | "openbsd"
962 | ],
963 | "engines": {
964 | "node": ">=12"
965 | }
966 | },
967 | "node_modules/esbuild-sunos-64": {
968 | "version": "0.14.53",
969 | "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.14.53.tgz",
970 | "integrity": "sha512-OWLpS7a2FrIRukQqcgQqR1XKn0jSJoOdT+RlhAxUoEQM/IpytS3FXzCJM6xjUYtpO5GMY0EdZJp+ur2pYdm39g==",
971 | "cpu": [
972 | "x64"
973 | ],
974 | "dev": true,
975 | "optional": true,
976 | "os": [
977 | "sunos"
978 | ],
979 | "engines": {
980 | "node": ">=12"
981 | }
982 | },
983 | "node_modules/esbuild-windows-32": {
984 | "version": "0.14.53",
985 | "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.14.53.tgz",
986 | "integrity": "sha512-m14XyWQP5rwGW0tbEfp95U6A0wY0DYPInWBB7D69FAXUpBpBObRoGTKRv36lf2RWOdE4YO3TNvj37zhXjVL5xg==",
987 | "cpu": [
988 | "ia32"
989 | ],
990 | "dev": true,
991 | "optional": true,
992 | "os": [
993 | "win32"
994 | ],
995 | "engines": {
996 | "node": ">=12"
997 | }
998 | },
999 | "node_modules/esbuild-windows-64": {
1000 | "version": "0.14.53",
1001 | "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.14.53.tgz",
1002 | "integrity": "sha512-s9skQFF0I7zqnQ2K8S1xdLSfZFsPLuOGmSx57h2btSEswv0N0YodYvqLcJMrNMXh6EynOmWD7rz+0rWWbFpIHQ==",
1003 | "cpu": [
1004 | "x64"
1005 | ],
1006 | "dev": true,
1007 | "optional": true,
1008 | "os": [
1009 | "win32"
1010 | ],
1011 | "engines": {
1012 | "node": ">=12"
1013 | }
1014 | },
1015 | "node_modules/esbuild-windows-arm64": {
1016 | "version": "0.14.53",
1017 | "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.53.tgz",
1018 | "integrity": "sha512-E+5Gvb+ZWts+00T9II6wp2L3KG2r3iGxByqd/a1RmLmYWVsSVUjkvIxZuJ3hYTIbhLkH5PRwpldGTKYqVz0nzQ==",
1019 | "cpu": [
1020 | "arm64"
1021 | ],
1022 | "dev": true,
1023 | "optional": true,
1024 | "os": [
1025 | "win32"
1026 | ],
1027 | "engines": {
1028 | "node": ">=12"
1029 | }
1030 | },
1031 | "node_modules/escalade": {
1032 | "version": "3.1.1",
1033 | "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz",
1034 | "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==",
1035 | "dev": true,
1036 | "engines": {
1037 | "node": ">=6"
1038 | }
1039 | },
1040 | "node_modules/escape-string-regexp": {
1041 | "version": "1.0.5",
1042 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
1043 | "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
1044 | "dev": true,
1045 | "engines": {
1046 | "node": ">=0.8.0"
1047 | }
1048 | },
1049 | "node_modules/fsevents": {
1050 | "version": "2.3.2",
1051 | "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
1052 | "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
1053 | "dev": true,
1054 | "hasInstallScript": true,
1055 | "optional": true,
1056 | "os": [
1057 | "darwin"
1058 | ],
1059 | "engines": {
1060 | "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
1061 | }
1062 | },
1063 | "node_modules/function-bind": {
1064 | "version": "1.1.1",
1065 | "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
1066 | "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
1067 | "dev": true
1068 | },
1069 | "node_modules/gensync": {
1070 | "version": "1.0.0-beta.2",
1071 | "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz",
1072 | "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==",
1073 | "dev": true,
1074 | "engines": {
1075 | "node": ">=6.9.0"
1076 | }
1077 | },
1078 | "node_modules/globals": {
1079 | "version": "11.12.0",
1080 | "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz",
1081 | "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==",
1082 | "dev": true,
1083 | "engines": {
1084 | "node": ">=4"
1085 | }
1086 | },
1087 | "node_modules/has": {
1088 | "version": "1.0.3",
1089 | "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
1090 | "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
1091 | "dev": true,
1092 | "dependencies": {
1093 | "function-bind": "^1.1.1"
1094 | },
1095 | "engines": {
1096 | "node": ">= 0.4.0"
1097 | }
1098 | },
1099 | "node_modules/has-flag": {
1100 | "version": "3.0.0",
1101 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
1102 | "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
1103 | "dev": true,
1104 | "engines": {
1105 | "node": ">=4"
1106 | }
1107 | },
1108 | "node_modules/is-core-module": {
1109 | "version": "2.10.0",
1110 | "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.10.0.tgz",
1111 | "integrity": "sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg==",
1112 | "dev": true,
1113 | "dependencies": {
1114 | "has": "^1.0.3"
1115 | },
1116 | "funding": {
1117 | "url": "https://github.com/sponsors/ljharb"
1118 | }
1119 | },
1120 | "node_modules/js-tokens": {
1121 | "version": "4.0.0",
1122 | "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
1123 | "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="
1124 | },
1125 | "node_modules/jsesc": {
1126 | "version": "2.5.2",
1127 | "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz",
1128 | "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==",
1129 | "dev": true,
1130 | "bin": {
1131 | "jsesc": "bin/jsesc"
1132 | },
1133 | "engines": {
1134 | "node": ">=4"
1135 | }
1136 | },
1137 | "node_modules/json5": {
1138 | "version": "2.2.1",
1139 | "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz",
1140 | "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==",
1141 | "dev": true,
1142 | "bin": {
1143 | "json5": "lib/cli.js"
1144 | },
1145 | "engines": {
1146 | "node": ">=6"
1147 | }
1148 | },
1149 | "node_modules/loose-envify": {
1150 | "version": "1.4.0",
1151 | "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
1152 | "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
1153 | "dependencies": {
1154 | "js-tokens": "^3.0.0 || ^4.0.0"
1155 | },
1156 | "bin": {
1157 | "loose-envify": "cli.js"
1158 | }
1159 | },
1160 | "node_modules/magic-string": {
1161 | "version": "0.26.2",
1162 | "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.26.2.tgz",
1163 | "integrity": "sha512-NzzlXpclt5zAbmo6h6jNc8zl2gNRGHvmsZW4IvZhTC4W7k4OlLP+S5YLussa/r3ixNT66KOQfNORlXHSOy/X4A==",
1164 | "dev": true,
1165 | "dependencies": {
1166 | "sourcemap-codec": "^1.4.8"
1167 | },
1168 | "engines": {
1169 | "node": ">=12"
1170 | }
1171 | },
1172 | "node_modules/ms": {
1173 | "version": "2.1.2",
1174 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
1175 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
1176 | "dev": true
1177 | },
1178 | "node_modules/nanoid": {
1179 | "version": "3.3.4",
1180 | "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz",
1181 | "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==",
1182 | "dev": true,
1183 | "bin": {
1184 | "nanoid": "bin/nanoid.cjs"
1185 | },
1186 | "engines": {
1187 | "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
1188 | }
1189 | },
1190 | "node_modules/node-releases": {
1191 | "version": "2.0.6",
1192 | "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz",
1193 | "integrity": "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==",
1194 | "dev": true
1195 | },
1196 | "node_modules/path-parse": {
1197 | "version": "1.0.7",
1198 | "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
1199 | "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
1200 | "dev": true
1201 | },
1202 | "node_modules/picocolors": {
1203 | "version": "1.0.0",
1204 | "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz",
1205 | "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==",
1206 | "dev": true
1207 | },
1208 | "node_modules/postcss": {
1209 | "version": "8.4.14",
1210 | "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.14.tgz",
1211 | "integrity": "sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==",
1212 | "dev": true,
1213 | "funding": [
1214 | {
1215 | "type": "opencollective",
1216 | "url": "https://opencollective.com/postcss/"
1217 | },
1218 | {
1219 | "type": "tidelift",
1220 | "url": "https://tidelift.com/funding/github/npm/postcss"
1221 | }
1222 | ],
1223 | "dependencies": {
1224 | "nanoid": "^3.3.4",
1225 | "picocolors": "^1.0.0",
1226 | "source-map-js": "^1.0.2"
1227 | },
1228 | "engines": {
1229 | "node": "^10 || ^12 || >=14"
1230 | }
1231 | },
1232 | "node_modules/react": {
1233 | "version": "18.2.0",
1234 | "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz",
1235 | "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==",
1236 | "dependencies": {
1237 | "loose-envify": "^1.1.0"
1238 | },
1239 | "engines": {
1240 | "node": ">=0.10.0"
1241 | }
1242 | },
1243 | "node_modules/react-dom": {
1244 | "version": "18.2.0",
1245 | "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz",
1246 | "integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==",
1247 | "dependencies": {
1248 | "loose-envify": "^1.1.0",
1249 | "scheduler": "^0.23.0"
1250 | },
1251 | "peerDependencies": {
1252 | "react": "^18.2.0"
1253 | }
1254 | },
1255 | "node_modules/react-refresh": {
1256 | "version": "0.14.0",
1257 | "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.0.tgz",
1258 | "integrity": "sha512-wViHqhAd8OHeLS/IRMJjTSDHF3U9eWi62F/MledQGPdJGDhodXJ9PBLNGr6WWL7qlH12Mt3TyTpbS+hGXMjCzQ==",
1259 | "dev": true,
1260 | "engines": {
1261 | "node": ">=0.10.0"
1262 | }
1263 | },
1264 | "node_modules/resolve": {
1265 | "version": "1.22.1",
1266 | "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz",
1267 | "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==",
1268 | "dev": true,
1269 | "dependencies": {
1270 | "is-core-module": "^2.9.0",
1271 | "path-parse": "^1.0.7",
1272 | "supports-preserve-symlinks-flag": "^1.0.0"
1273 | },
1274 | "bin": {
1275 | "resolve": "bin/resolve"
1276 | },
1277 | "funding": {
1278 | "url": "https://github.com/sponsors/ljharb"
1279 | }
1280 | },
1281 | "node_modules/rollup": {
1282 | "version": "2.77.2",
1283 | "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.77.2.tgz",
1284 | "integrity": "sha512-m/4YzYgLcpMQbxX3NmAqDvwLATZzxt8bIegO78FZLl+lAgKJBd1DRAOeEiZcKOIOPjxE6ewHWHNgGEalFXuz1g==",
1285 | "dev": true,
1286 | "bin": {
1287 | "rollup": "dist/bin/rollup"
1288 | },
1289 | "engines": {
1290 | "node": ">=10.0.0"
1291 | },
1292 | "optionalDependencies": {
1293 | "fsevents": "~2.3.2"
1294 | }
1295 | },
1296 | "node_modules/safe-buffer": {
1297 | "version": "5.1.2",
1298 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
1299 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
1300 | "dev": true
1301 | },
1302 | "node_modules/scheduler": {
1303 | "version": "0.23.0",
1304 | "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz",
1305 | "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==",
1306 | "dependencies": {
1307 | "loose-envify": "^1.1.0"
1308 | }
1309 | },
1310 | "node_modules/semver": {
1311 | "version": "6.3.0",
1312 | "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
1313 | "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
1314 | "dev": true,
1315 | "bin": {
1316 | "semver": "bin/semver.js"
1317 | }
1318 | },
1319 | "node_modules/source-map-js": {
1320 | "version": "1.0.2",
1321 | "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz",
1322 | "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==",
1323 | "dev": true,
1324 | "engines": {
1325 | "node": ">=0.10.0"
1326 | }
1327 | },
1328 | "node_modules/sourcemap-codec": {
1329 | "version": "1.4.8",
1330 | "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz",
1331 | "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==",
1332 | "dev": true
1333 | },
1334 | "node_modules/supports-color": {
1335 | "version": "5.5.0",
1336 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
1337 | "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
1338 | "dev": true,
1339 | "dependencies": {
1340 | "has-flag": "^3.0.0"
1341 | },
1342 | "engines": {
1343 | "node": ">=4"
1344 | }
1345 | },
1346 | "node_modules/supports-preserve-symlinks-flag": {
1347 | "version": "1.0.0",
1348 | "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
1349 | "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
1350 | "dev": true,
1351 | "engines": {
1352 | "node": ">= 0.4"
1353 | },
1354 | "funding": {
1355 | "url": "https://github.com/sponsors/ljharb"
1356 | }
1357 | },
1358 | "node_modules/to-fast-properties": {
1359 | "version": "2.0.0",
1360 | "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
1361 | "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==",
1362 | "dev": true,
1363 | "engines": {
1364 | "node": ">=4"
1365 | }
1366 | },
1367 | "node_modules/update-browserslist-db": {
1368 | "version": "1.0.5",
1369 | "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.5.tgz",
1370 | "integrity": "sha512-dteFFpCyvuDdr9S/ff1ISkKt/9YZxKjI9WlRR99c180GaztJtRa/fn18FdxGVKVsnPY7/a/FDN68mcvUmP4U7Q==",
1371 | "dev": true,
1372 | "funding": [
1373 | {
1374 | "type": "opencollective",
1375 | "url": "https://opencollective.com/browserslist"
1376 | },
1377 | {
1378 | "type": "tidelift",
1379 | "url": "https://tidelift.com/funding/github/npm/browserslist"
1380 | }
1381 | ],
1382 | "dependencies": {
1383 | "escalade": "^3.1.1",
1384 | "picocolors": "^1.0.0"
1385 | },
1386 | "bin": {
1387 | "browserslist-lint": "cli.js"
1388 | },
1389 | "peerDependencies": {
1390 | "browserslist": ">= 4.21.0"
1391 | }
1392 | },
1393 | "node_modules/vite": {
1394 | "version": "3.0.4",
1395 | "resolved": "https://registry.npmjs.org/vite/-/vite-3.0.4.tgz",
1396 | "integrity": "sha512-NU304nqnBeOx2MkQnskBQxVsa0pRAH5FphokTGmyy8M3oxbvw7qAXts2GORxs+h/2vKsD+osMhZ7An6yK6F1dA==",
1397 | "dev": true,
1398 | "dependencies": {
1399 | "esbuild": "^0.14.47",
1400 | "postcss": "^8.4.14",
1401 | "resolve": "^1.22.1",
1402 | "rollup": "^2.75.6"
1403 | },
1404 | "bin": {
1405 | "vite": "bin/vite.js"
1406 | },
1407 | "engines": {
1408 | "node": "^14.18.0 || >=16.0.0"
1409 | },
1410 | "optionalDependencies": {
1411 | "fsevents": "~2.3.2"
1412 | },
1413 | "peerDependencies": {
1414 | "less": "*",
1415 | "sass": "*",
1416 | "stylus": "*",
1417 | "terser": "^5.4.0"
1418 | },
1419 | "peerDependenciesMeta": {
1420 | "less": {
1421 | "optional": true
1422 | },
1423 | "sass": {
1424 | "optional": true
1425 | },
1426 | "stylus": {
1427 | "optional": true
1428 | },
1429 | "terser": {
1430 | "optional": true
1431 | }
1432 | }
1433 | }
1434 | },
1435 | "dependencies": {
1436 | "@ampproject/remapping": {
1437 | "version": "2.2.0",
1438 | "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz",
1439 | "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==",
1440 | "dev": true,
1441 | "requires": {
1442 | "@jridgewell/gen-mapping": "^0.1.0",
1443 | "@jridgewell/trace-mapping": "^0.3.9"
1444 | }
1445 | },
1446 | "@babel/code-frame": {
1447 | "version": "7.18.6",
1448 | "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz",
1449 | "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==",
1450 | "dev": true,
1451 | "requires": {
1452 | "@babel/highlight": "^7.18.6"
1453 | }
1454 | },
1455 | "@babel/compat-data": {
1456 | "version": "7.18.8",
1457 | "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.18.8.tgz",
1458 | "integrity": "sha512-HSmX4WZPPK3FUxYp7g2T6EyO8j96HlZJlxmKPSh6KAcqwyDrfx7hKjXpAW/0FhFfTJsR0Yt4lAjLI2coMptIHQ==",
1459 | "dev": true
1460 | },
1461 | "@babel/core": {
1462 | "version": "7.18.10",
1463 | "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.18.10.tgz",
1464 | "integrity": "sha512-JQM6k6ENcBFKVtWvLavlvi/mPcpYZ3+R+2EySDEMSMbp7Mn4FexlbbJVrx2R7Ijhr01T8gyqrOaABWIOgxeUyw==",
1465 | "dev": true,
1466 | "requires": {
1467 | "@ampproject/remapping": "^2.1.0",
1468 | "@babel/code-frame": "^7.18.6",
1469 | "@babel/generator": "^7.18.10",
1470 | "@babel/helper-compilation-targets": "^7.18.9",
1471 | "@babel/helper-module-transforms": "^7.18.9",
1472 | "@babel/helpers": "^7.18.9",
1473 | "@babel/parser": "^7.18.10",
1474 | "@babel/template": "^7.18.10",
1475 | "@babel/traverse": "^7.18.10",
1476 | "@babel/types": "^7.18.10",
1477 | "convert-source-map": "^1.7.0",
1478 | "debug": "^4.1.0",
1479 | "gensync": "^1.0.0-beta.2",
1480 | "json5": "^2.2.1",
1481 | "semver": "^6.3.0"
1482 | }
1483 | },
1484 | "@babel/generator": {
1485 | "version": "7.18.12",
1486 | "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.18.12.tgz",
1487 | "integrity": "sha512-dfQ8ebCN98SvyL7IxNMCUtZQSq5R7kxgN+r8qYTGDmmSion1hX2C0zq2yo1bsCDhXixokv1SAWTZUMYbO/V5zg==",
1488 | "dev": true,
1489 | "requires": {
1490 | "@babel/types": "^7.18.10",
1491 | "@jridgewell/gen-mapping": "^0.3.2",
1492 | "jsesc": "^2.5.1"
1493 | },
1494 | "dependencies": {
1495 | "@jridgewell/gen-mapping": {
1496 | "version": "0.3.2",
1497 | "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz",
1498 | "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==",
1499 | "dev": true,
1500 | "requires": {
1501 | "@jridgewell/set-array": "^1.0.1",
1502 | "@jridgewell/sourcemap-codec": "^1.4.10",
1503 | "@jridgewell/trace-mapping": "^0.3.9"
1504 | }
1505 | }
1506 | }
1507 | },
1508 | "@babel/helper-annotate-as-pure": {
1509 | "version": "7.18.6",
1510 | "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz",
1511 | "integrity": "sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==",
1512 | "dev": true,
1513 | "requires": {
1514 | "@babel/types": "^7.18.6"
1515 | }
1516 | },
1517 | "@babel/helper-compilation-targets": {
1518 | "version": "7.18.9",
1519 | "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.18.9.tgz",
1520 | "integrity": "sha512-tzLCyVmqUiFlcFoAPLA/gL9TeYrF61VLNtb+hvkuVaB5SUjW7jcfrglBIX1vUIoT7CLP3bBlIMeyEsIl2eFQNg==",
1521 | "dev": true,
1522 | "requires": {
1523 | "@babel/compat-data": "^7.18.8",
1524 | "@babel/helper-validator-option": "^7.18.6",
1525 | "browserslist": "^4.20.2",
1526 | "semver": "^6.3.0"
1527 | }
1528 | },
1529 | "@babel/helper-environment-visitor": {
1530 | "version": "7.18.9",
1531 | "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz",
1532 | "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==",
1533 | "dev": true
1534 | },
1535 | "@babel/helper-function-name": {
1536 | "version": "7.18.9",
1537 | "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.18.9.tgz",
1538 | "integrity": "sha512-fJgWlZt7nxGksJS9a0XdSaI4XvpExnNIgRP+rVefWh5U7BL8pPuir6SJUmFKRfjWQ51OtWSzwOxhaH/EBWWc0A==",
1539 | "dev": true,
1540 | "requires": {
1541 | "@babel/template": "^7.18.6",
1542 | "@babel/types": "^7.18.9"
1543 | }
1544 | },
1545 | "@babel/helper-hoist-variables": {
1546 | "version": "7.18.6",
1547 | "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz",
1548 | "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==",
1549 | "dev": true,
1550 | "requires": {
1551 | "@babel/types": "^7.18.6"
1552 | }
1553 | },
1554 | "@babel/helper-module-imports": {
1555 | "version": "7.18.6",
1556 | "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz",
1557 | "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==",
1558 | "dev": true,
1559 | "requires": {
1560 | "@babel/types": "^7.18.6"
1561 | }
1562 | },
1563 | "@babel/helper-module-transforms": {
1564 | "version": "7.18.9",
1565 | "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.18.9.tgz",
1566 | "integrity": "sha512-KYNqY0ICwfv19b31XzvmI/mfcylOzbLtowkw+mfvGPAQ3kfCnMLYbED3YecL5tPd8nAYFQFAd6JHp2LxZk/J1g==",
1567 | "dev": true,
1568 | "requires": {
1569 | "@babel/helper-environment-visitor": "^7.18.9",
1570 | "@babel/helper-module-imports": "^7.18.6",
1571 | "@babel/helper-simple-access": "^7.18.6",
1572 | "@babel/helper-split-export-declaration": "^7.18.6",
1573 | "@babel/helper-validator-identifier": "^7.18.6",
1574 | "@babel/template": "^7.18.6",
1575 | "@babel/traverse": "^7.18.9",
1576 | "@babel/types": "^7.18.9"
1577 | }
1578 | },
1579 | "@babel/helper-plugin-utils": {
1580 | "version": "7.18.9",
1581 | "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.18.9.tgz",
1582 | "integrity": "sha512-aBXPT3bmtLryXaoJLyYPXPlSD4p1ld9aYeR+sJNOZjJJGiOpb+fKfh3NkcCu7J54nUJwCERPBExCCpyCOHnu/w==",
1583 | "dev": true
1584 | },
1585 | "@babel/helper-simple-access": {
1586 | "version": "7.18.6",
1587 | "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.18.6.tgz",
1588 | "integrity": "sha512-iNpIgTgyAvDQpDj76POqg+YEt8fPxx3yaNBg3S30dxNKm2SWfYhD0TGrK/Eu9wHpUW63VQU894TsTg+GLbUa1g==",
1589 | "dev": true,
1590 | "requires": {
1591 | "@babel/types": "^7.18.6"
1592 | }
1593 | },
1594 | "@babel/helper-split-export-declaration": {
1595 | "version": "7.18.6",
1596 | "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz",
1597 | "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==",
1598 | "dev": true,
1599 | "requires": {
1600 | "@babel/types": "^7.18.6"
1601 | }
1602 | },
1603 | "@babel/helper-string-parser": {
1604 | "version": "7.18.10",
1605 | "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.18.10.tgz",
1606 | "integrity": "sha512-XtIfWmeNY3i4t7t4D2t02q50HvqHybPqW2ki1kosnvWCwuCMeo81Jf0gwr85jy/neUdg5XDdeFE/80DXiO+njw==",
1607 | "dev": true
1608 | },
1609 | "@babel/helper-validator-identifier": {
1610 | "version": "7.18.6",
1611 | "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz",
1612 | "integrity": "sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g==",
1613 | "dev": true
1614 | },
1615 | "@babel/helper-validator-option": {
1616 | "version": "7.18.6",
1617 | "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz",
1618 | "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==",
1619 | "dev": true
1620 | },
1621 | "@babel/helpers": {
1622 | "version": "7.18.9",
1623 | "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.18.9.tgz",
1624 | "integrity": "sha512-Jf5a+rbrLoR4eNdUmnFu8cN5eNJT6qdTdOg5IHIzq87WwyRw9PwguLFOWYgktN/60IP4fgDUawJvs7PjQIzELQ==",
1625 | "dev": true,
1626 | "requires": {
1627 | "@babel/template": "^7.18.6",
1628 | "@babel/traverse": "^7.18.9",
1629 | "@babel/types": "^7.18.9"
1630 | }
1631 | },
1632 | "@babel/highlight": {
1633 | "version": "7.18.6",
1634 | "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz",
1635 | "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==",
1636 | "dev": true,
1637 | "requires": {
1638 | "@babel/helper-validator-identifier": "^7.18.6",
1639 | "chalk": "^2.0.0",
1640 | "js-tokens": "^4.0.0"
1641 | }
1642 | },
1643 | "@babel/parser": {
1644 | "version": "7.18.11",
1645 | "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.18.11.tgz",
1646 | "integrity": "sha512-9JKn5vN+hDt0Hdqn1PiJ2guflwP+B6Ga8qbDuoF0PzzVhrzsKIJo8yGqVk6CmMHiMei9w1C1Bp9IMJSIK+HPIQ==",
1647 | "dev": true
1648 | },
1649 | "@babel/plugin-syntax-jsx": {
1650 | "version": "7.18.6",
1651 | "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.18.6.tgz",
1652 | "integrity": "sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q==",
1653 | "dev": true,
1654 | "requires": {
1655 | "@babel/helper-plugin-utils": "^7.18.6"
1656 | }
1657 | },
1658 | "@babel/plugin-transform-react-jsx": {
1659 | "version": "7.18.10",
1660 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.18.10.tgz",
1661 | "integrity": "sha512-gCy7Iikrpu3IZjYZolFE4M1Sm+nrh1/6za2Ewj77Z+XirT4TsbJcvOFOyF+fRPwU6AKKK136CZxx6L8AbSFG6A==",
1662 | "dev": true,
1663 | "requires": {
1664 | "@babel/helper-annotate-as-pure": "^7.18.6",
1665 | "@babel/helper-module-imports": "^7.18.6",
1666 | "@babel/helper-plugin-utils": "^7.18.9",
1667 | "@babel/plugin-syntax-jsx": "^7.18.6",
1668 | "@babel/types": "^7.18.10"
1669 | }
1670 | },
1671 | "@babel/plugin-transform-react-jsx-development": {
1672 | "version": "7.18.6",
1673 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.18.6.tgz",
1674 | "integrity": "sha512-SA6HEjwYFKF7WDjWcMcMGUimmw/nhNRDWxr+KaLSCrkD/LMDBvWRmHAYgE1HDeF8KUuI8OAu+RT6EOtKxSW2qA==",
1675 | "dev": true,
1676 | "requires": {
1677 | "@babel/plugin-transform-react-jsx": "^7.18.6"
1678 | }
1679 | },
1680 | "@babel/plugin-transform-react-jsx-self": {
1681 | "version": "7.18.6",
1682 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.18.6.tgz",
1683 | "integrity": "sha512-A0LQGx4+4Jv7u/tWzoJF7alZwnBDQd6cGLh9P+Ttk4dpiL+J5p7NSNv/9tlEFFJDq3kjxOavWmbm6t0Gk+A3Ig==",
1684 | "dev": true,
1685 | "requires": {
1686 | "@babel/helper-plugin-utils": "^7.18.6"
1687 | }
1688 | },
1689 | "@babel/plugin-transform-react-jsx-source": {
1690 | "version": "7.18.6",
1691 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.18.6.tgz",
1692 | "integrity": "sha512-utZmlASneDfdaMh0m/WausbjUjEdGrQJz0vFK93d7wD3xf5wBtX219+q6IlCNZeguIcxS2f/CvLZrlLSvSHQXw==",
1693 | "dev": true,
1694 | "requires": {
1695 | "@babel/helper-plugin-utils": "^7.18.6"
1696 | }
1697 | },
1698 | "@babel/template": {
1699 | "version": "7.18.10",
1700 | "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.18.10.tgz",
1701 | "integrity": "sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA==",
1702 | "dev": true,
1703 | "requires": {
1704 | "@babel/code-frame": "^7.18.6",
1705 | "@babel/parser": "^7.18.10",
1706 | "@babel/types": "^7.18.10"
1707 | }
1708 | },
1709 | "@babel/traverse": {
1710 | "version": "7.18.11",
1711 | "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.18.11.tgz",
1712 | "integrity": "sha512-TG9PiM2R/cWCAy6BPJKeHzNbu4lPzOSZpeMfeNErskGpTJx6trEvFaVCbDvpcxwy49BKWmEPwiW8mrysNiDvIQ==",
1713 | "dev": true,
1714 | "requires": {
1715 | "@babel/code-frame": "^7.18.6",
1716 | "@babel/generator": "^7.18.10",
1717 | "@babel/helper-environment-visitor": "^7.18.9",
1718 | "@babel/helper-function-name": "^7.18.9",
1719 | "@babel/helper-hoist-variables": "^7.18.6",
1720 | "@babel/helper-split-export-declaration": "^7.18.6",
1721 | "@babel/parser": "^7.18.11",
1722 | "@babel/types": "^7.18.10",
1723 | "debug": "^4.1.0",
1724 | "globals": "^11.1.0"
1725 | }
1726 | },
1727 | "@babel/types": {
1728 | "version": "7.18.10",
1729 | "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.18.10.tgz",
1730 | "integrity": "sha512-MJvnbEiiNkpjo+LknnmRrqbY1GPUUggjv+wQVjetM/AONoupqRALB7I6jGqNUAZsKcRIEu2J6FRFvsczljjsaQ==",
1731 | "dev": true,
1732 | "requires": {
1733 | "@babel/helper-string-parser": "^7.18.10",
1734 | "@babel/helper-validator-identifier": "^7.18.6",
1735 | "to-fast-properties": "^2.0.0"
1736 | }
1737 | },
1738 | "@esbuild/linux-loong64": {
1739 | "version": "0.14.53",
1740 | "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.14.53.tgz",
1741 | "integrity": "sha512-W2dAL6Bnyn4xa/QRSU3ilIK4EzD5wgYXKXJiS1HDF5vU3675qc2bvFyLwbUcdmssDveyndy7FbitrCoiV/eMLg==",
1742 | "dev": true,
1743 | "optional": true
1744 | },
1745 | "@jridgewell/gen-mapping": {
1746 | "version": "0.1.1",
1747 | "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz",
1748 | "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==",
1749 | "dev": true,
1750 | "requires": {
1751 | "@jridgewell/set-array": "^1.0.0",
1752 | "@jridgewell/sourcemap-codec": "^1.4.10"
1753 | }
1754 | },
1755 | "@jridgewell/resolve-uri": {
1756 | "version": "3.1.0",
1757 | "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz",
1758 | "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==",
1759 | "dev": true
1760 | },
1761 | "@jridgewell/set-array": {
1762 | "version": "1.1.2",
1763 | "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz",
1764 | "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==",
1765 | "dev": true
1766 | },
1767 | "@jridgewell/sourcemap-codec": {
1768 | "version": "1.4.14",
1769 | "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz",
1770 | "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==",
1771 | "dev": true
1772 | },
1773 | "@jridgewell/trace-mapping": {
1774 | "version": "0.3.14",
1775 | "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.14.tgz",
1776 | "integrity": "sha512-bJWEfQ9lPTvm3SneWwRFVLzrh6nhjwqw7TUFFBEMzwvg7t7PCDenf2lDwqo4NQXzdpgBXyFgDWnQA+2vkruksQ==",
1777 | "dev": true,
1778 | "requires": {
1779 | "@jridgewell/resolve-uri": "^3.0.3",
1780 | "@jridgewell/sourcemap-codec": "^1.4.10"
1781 | }
1782 | },
1783 | "@types/prop-types": {
1784 | "version": "15.7.5",
1785 | "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz",
1786 | "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==",
1787 | "dev": true
1788 | },
1789 | "@types/react": {
1790 | "version": "18.0.15",
1791 | "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.15.tgz",
1792 | "integrity": "sha512-iz3BtLuIYH1uWdsv6wXYdhozhqj20oD4/Hk2DNXIn1kFsmp9x8d9QB6FnPhfkbhd2PgEONt9Q1x/ebkwjfFLow==",
1793 | "dev": true,
1794 | "requires": {
1795 | "@types/prop-types": "*",
1796 | "@types/scheduler": "*",
1797 | "csstype": "^3.0.2"
1798 | }
1799 | },
1800 | "@types/react-dom": {
1801 | "version": "18.0.6",
1802 | "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.0.6.tgz",
1803 | "integrity": "sha512-/5OFZgfIPSwy+YuIBP/FgJnQnsxhZhjjrnxudMddeblOouIodEQ75X14Rr4wGSG/bknL+Omy9iWlLo1u/9GzAA==",
1804 | "dev": true,
1805 | "requires": {
1806 | "@types/react": "*"
1807 | }
1808 | },
1809 | "@types/scheduler": {
1810 | "version": "0.16.2",
1811 | "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.2.tgz",
1812 | "integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==",
1813 | "dev": true
1814 | },
1815 | "@vitejs/plugin-react": {
1816 | "version": "2.0.0",
1817 | "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-2.0.0.tgz",
1818 | "integrity": "sha512-zHkRR+X4zqEPNBbKV2FvWSxK7Q6crjMBVIAYroSU8Nbb4M3E5x4qOiLoqJBHtXgr27kfednXjkwr3lr8jS6Wrw==",
1819 | "dev": true,
1820 | "requires": {
1821 | "@babel/core": "^7.18.6",
1822 | "@babel/plugin-transform-react-jsx": "^7.18.6",
1823 | "@babel/plugin-transform-react-jsx-development": "^7.18.6",
1824 | "@babel/plugin-transform-react-jsx-self": "^7.18.6",
1825 | "@babel/plugin-transform-react-jsx-source": "^7.18.6",
1826 | "magic-string": "^0.26.2",
1827 | "react-refresh": "^0.14.0"
1828 | }
1829 | },
1830 | "ansi-styles": {
1831 | "version": "3.2.1",
1832 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
1833 | "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
1834 | "dev": true,
1835 | "requires": {
1836 | "color-convert": "^1.9.0"
1837 | }
1838 | },
1839 | "browserslist": {
1840 | "version": "4.21.3",
1841 | "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.3.tgz",
1842 | "integrity": "sha512-898rgRXLAyRkM1GryrrBHGkqA5hlpkV5MhtZwg9QXeiyLUYs2k00Un05aX5l2/yJIOObYKOpS2JNo8nJDE7fWQ==",
1843 | "dev": true,
1844 | "requires": {
1845 | "caniuse-lite": "^1.0.30001370",
1846 | "electron-to-chromium": "^1.4.202",
1847 | "node-releases": "^2.0.6",
1848 | "update-browserslist-db": "^1.0.5"
1849 | }
1850 | },
1851 | "caniuse-lite": {
1852 | "version": "1.0.30001374",
1853 | "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001374.tgz",
1854 | "integrity": "sha512-mWvzatRx3w+j5wx/mpFN5v5twlPrabG8NqX2c6e45LCpymdoGqNvRkRutFUqpRTXKFQFNQJasvK0YT7suW6/Hw==",
1855 | "dev": true
1856 | },
1857 | "chalk": {
1858 | "version": "2.4.2",
1859 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
1860 | "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
1861 | "dev": true,
1862 | "requires": {
1863 | "ansi-styles": "^3.2.1",
1864 | "escape-string-regexp": "^1.0.5",
1865 | "supports-color": "^5.3.0"
1866 | }
1867 | },
1868 | "color-convert": {
1869 | "version": "1.9.3",
1870 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
1871 | "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
1872 | "dev": true,
1873 | "requires": {
1874 | "color-name": "1.1.3"
1875 | }
1876 | },
1877 | "color-name": {
1878 | "version": "1.1.3",
1879 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
1880 | "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
1881 | "dev": true
1882 | },
1883 | "convert-source-map": {
1884 | "version": "1.8.0",
1885 | "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz",
1886 | "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==",
1887 | "dev": true,
1888 | "requires": {
1889 | "safe-buffer": "~5.1.1"
1890 | }
1891 | },
1892 | "csstype": {
1893 | "version": "3.1.0",
1894 | "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.0.tgz",
1895 | "integrity": "sha512-uX1KG+x9h5hIJsaKR9xHUeUraxf8IODOwq9JLNPq6BwB04a/xgpq3rcx47l5BZu5zBPlgD342tdke3Hom/nJRA==",
1896 | "dev": true
1897 | },
1898 | "debug": {
1899 | "version": "4.3.4",
1900 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
1901 | "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
1902 | "dev": true,
1903 | "requires": {
1904 | "ms": "2.1.2"
1905 | }
1906 | },
1907 | "electron-to-chromium": {
1908 | "version": "1.4.211",
1909 | "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.211.tgz",
1910 | "integrity": "sha512-BZSbMpyFQU0KBJ1JG26XGeFI3i4op+qOYGxftmZXFZoHkhLgsSv4DHDJfl8ogII3hIuzGt51PaZ195OVu0yJ9A==",
1911 | "dev": true
1912 | },
1913 | "esbuild": {
1914 | "version": "0.14.53",
1915 | "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.14.53.tgz",
1916 | "integrity": "sha512-ohO33pUBQ64q6mmheX1mZ8mIXj8ivQY/L4oVuAshr+aJI+zLl+amrp3EodrUNDNYVrKJXGPfIHFGhO8slGRjuw==",
1917 | "dev": true,
1918 | "requires": {
1919 | "@esbuild/linux-loong64": "0.14.53",
1920 | "esbuild-android-64": "0.14.53",
1921 | "esbuild-android-arm64": "0.14.53",
1922 | "esbuild-darwin-64": "0.14.53",
1923 | "esbuild-darwin-arm64": "0.14.53",
1924 | "esbuild-freebsd-64": "0.14.53",
1925 | "esbuild-freebsd-arm64": "0.14.53",
1926 | "esbuild-linux-32": "0.14.53",
1927 | "esbuild-linux-64": "0.14.53",
1928 | "esbuild-linux-arm": "0.14.53",
1929 | "esbuild-linux-arm64": "0.14.53",
1930 | "esbuild-linux-mips64le": "0.14.53",
1931 | "esbuild-linux-ppc64le": "0.14.53",
1932 | "esbuild-linux-riscv64": "0.14.53",
1933 | "esbuild-linux-s390x": "0.14.53",
1934 | "esbuild-netbsd-64": "0.14.53",
1935 | "esbuild-openbsd-64": "0.14.53",
1936 | "esbuild-sunos-64": "0.14.53",
1937 | "esbuild-windows-32": "0.14.53",
1938 | "esbuild-windows-64": "0.14.53",
1939 | "esbuild-windows-arm64": "0.14.53"
1940 | }
1941 | },
1942 | "esbuild-android-64": {
1943 | "version": "0.14.53",
1944 | "resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.14.53.tgz",
1945 | "integrity": "sha512-fIL93sOTnEU+NrTAVMIKiAw0YH22HWCAgg4N4Z6zov2t0kY9RAJ50zY9ZMCQ+RT6bnOfDt8gCTnt/RaSNA2yRA==",
1946 | "dev": true,
1947 | "optional": true
1948 | },
1949 | "esbuild-android-arm64": {
1950 | "version": "0.14.53",
1951 | "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.14.53.tgz",
1952 | "integrity": "sha512-PC7KaF1v0h/nWpvlU1UMN7dzB54cBH8qSsm7S9mkwFA1BXpaEOufCg8hdoEI1jep0KeO/rjZVWrsH8+q28T77A==",
1953 | "dev": true,
1954 | "optional": true
1955 | },
1956 | "esbuild-darwin-64": {
1957 | "version": "0.14.53",
1958 | "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.14.53.tgz",
1959 | "integrity": "sha512-gE7P5wlnkX4d4PKvLBUgmhZXvL7lzGRLri17/+CmmCzfncIgq8lOBvxGMiQ4xazplhxq+72TEohyFMZLFxuWvg==",
1960 | "dev": true,
1961 | "optional": true
1962 | },
1963 | "esbuild-darwin-arm64": {
1964 | "version": "0.14.53",
1965 | "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.53.tgz",
1966 | "integrity": "sha512-otJwDU3hnI15Q98PX4MJbknSZ/WSR1I45il7gcxcECXzfN4Mrpft5hBDHXNRnCh+5858uPXBXA1Vaz2jVWLaIA==",
1967 | "dev": true,
1968 | "optional": true
1969 | },
1970 | "esbuild-freebsd-64": {
1971 | "version": "0.14.53",
1972 | "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.53.tgz",
1973 | "integrity": "sha512-WkdJa8iyrGHyKiPF4lk0MiOF87Q2SkE+i+8D4Cazq3/iqmGPJ6u49je300MFi5I2eUsQCkaOWhpCVQMTKGww2w==",
1974 | "dev": true,
1975 | "optional": true
1976 | },
1977 | "esbuild-freebsd-arm64": {
1978 | "version": "0.14.53",
1979 | "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.53.tgz",
1980 | "integrity": "sha512-9T7WwCuV30NAx0SyQpw8edbKvbKELnnm1FHg7gbSYaatH+c8WJW10g/OdM7JYnv7qkimw2ZTtSA+NokOLd2ydQ==",
1981 | "dev": true,
1982 | "optional": true
1983 | },
1984 | "esbuild-linux-32": {
1985 | "version": "0.14.53",
1986 | "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.14.53.tgz",
1987 | "integrity": "sha512-VGanLBg5en2LfGDgLEUxQko2lqsOS7MTEWUi8x91YmsHNyzJVT/WApbFFx3MQGhkf+XdimVhpyo5/G0PBY91zg==",
1988 | "dev": true,
1989 | "optional": true
1990 | },
1991 | "esbuild-linux-64": {
1992 | "version": "0.14.53",
1993 | "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.14.53.tgz",
1994 | "integrity": "sha512-pP/FA55j/fzAV7N9DF31meAyjOH6Bjuo3aSKPh26+RW85ZEtbJv9nhoxmGTd9FOqjx59Tc1ZbrJabuiXlMwuZQ==",
1995 | "dev": true,
1996 | "optional": true
1997 | },
1998 | "esbuild-linux-arm": {
1999 | "version": "0.14.53",
2000 | "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.14.53.tgz",
2001 | "integrity": "sha512-/u81NGAVZMopbmzd21Nu/wvnKQK3pT4CrvQ8BTje1STXcQAGnfyKgQlj3m0j2BzYbvQxSy+TMck4TNV2onvoPA==",
2002 | "dev": true,
2003 | "optional": true
2004 | },
2005 | "esbuild-linux-arm64": {
2006 | "version": "0.14.53",
2007 | "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.53.tgz",
2008 | "integrity": "sha512-GDmWITT+PMsjCA6/lByYk7NyFssW4Q6in32iPkpjZ/ytSyH+xeEx8q7HG3AhWH6heemEYEWpTll/eui3jwlSnw==",
2009 | "dev": true,
2010 | "optional": true
2011 | },
2012 | "esbuild-linux-mips64le": {
2013 | "version": "0.14.53",
2014 | "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.53.tgz",
2015 | "integrity": "sha512-d6/XHIQW714gSSp6tOOX2UscedVobELvQlPMkInhx1NPz4ThZI9uNLQ4qQJHGBGKGfu+rtJsxM4NVHLhnNRdWQ==",
2016 | "dev": true,
2017 | "optional": true
2018 | },
2019 | "esbuild-linux-ppc64le": {
2020 | "version": "0.14.53",
2021 | "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.53.tgz",
2022 | "integrity": "sha512-ndnJmniKPCB52m+r6BtHHLAOXw+xBCWIxNnedbIpuREOcbSU/AlyM/2dA3BmUQhsHdb4w3amD5U2s91TJ3MzzA==",
2023 | "dev": true,
2024 | "optional": true
2025 | },
2026 | "esbuild-linux-riscv64": {
2027 | "version": "0.14.53",
2028 | "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.53.tgz",
2029 | "integrity": "sha512-yG2sVH+QSix6ct4lIzJj329iJF3MhloLE6/vKMQAAd26UVPVkhMFqFopY+9kCgYsdeWvXdPgmyOuKa48Y7+/EQ==",
2030 | "dev": true,
2031 | "optional": true
2032 | },
2033 | "esbuild-linux-s390x": {
2034 | "version": "0.14.53",
2035 | "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.53.tgz",
2036 | "integrity": "sha512-OCJlgdkB+XPYndHmw6uZT7jcYgzmx9K+28PVdOa/eLjdoYkeAFvH5hTwX4AXGLZLH09tpl4bVsEtvuyUldaNCg==",
2037 | "dev": true,
2038 | "optional": true
2039 | },
2040 | "esbuild-netbsd-64": {
2041 | "version": "0.14.53",
2042 | "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.53.tgz",
2043 | "integrity": "sha512-gp2SB+Efc7MhMdWV2+pmIs/Ja/Mi5rjw+wlDmmbIn68VGXBleNgiEZG+eV2SRS0kJEUyHNedDtwRIMzaohWedQ==",
2044 | "dev": true,
2045 | "optional": true
2046 | },
2047 | "esbuild-openbsd-64": {
2048 | "version": "0.14.53",
2049 | "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.53.tgz",
2050 | "integrity": "sha512-eKQ30ZWe+WTZmteDYg8S+YjHV5s4iTxeSGhJKJajFfQx9TLZJvsJX0/paqwP51GicOUruFpSUAs2NCc0a4ivQQ==",
2051 | "dev": true,
2052 | "optional": true
2053 | },
2054 | "esbuild-sunos-64": {
2055 | "version": "0.14.53",
2056 | "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.14.53.tgz",
2057 | "integrity": "sha512-OWLpS7a2FrIRukQqcgQqR1XKn0jSJoOdT+RlhAxUoEQM/IpytS3FXzCJM6xjUYtpO5GMY0EdZJp+ur2pYdm39g==",
2058 | "dev": true,
2059 | "optional": true
2060 | },
2061 | "esbuild-windows-32": {
2062 | "version": "0.14.53",
2063 | "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.14.53.tgz",
2064 | "integrity": "sha512-m14XyWQP5rwGW0tbEfp95U6A0wY0DYPInWBB7D69FAXUpBpBObRoGTKRv36lf2RWOdE4YO3TNvj37zhXjVL5xg==",
2065 | "dev": true,
2066 | "optional": true
2067 | },
2068 | "esbuild-windows-64": {
2069 | "version": "0.14.53",
2070 | "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.14.53.tgz",
2071 | "integrity": "sha512-s9skQFF0I7zqnQ2K8S1xdLSfZFsPLuOGmSx57h2btSEswv0N0YodYvqLcJMrNMXh6EynOmWD7rz+0rWWbFpIHQ==",
2072 | "dev": true,
2073 | "optional": true
2074 | },
2075 | "esbuild-windows-arm64": {
2076 | "version": "0.14.53",
2077 | "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.53.tgz",
2078 | "integrity": "sha512-E+5Gvb+ZWts+00T9II6wp2L3KG2r3iGxByqd/a1RmLmYWVsSVUjkvIxZuJ3hYTIbhLkH5PRwpldGTKYqVz0nzQ==",
2079 | "dev": true,
2080 | "optional": true
2081 | },
2082 | "escalade": {
2083 | "version": "3.1.1",
2084 | "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz",
2085 | "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==",
2086 | "dev": true
2087 | },
2088 | "escape-string-regexp": {
2089 | "version": "1.0.5",
2090 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
2091 | "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
2092 | "dev": true
2093 | },
2094 | "fsevents": {
2095 | "version": "2.3.2",
2096 | "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
2097 | "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
2098 | "dev": true,
2099 | "optional": true
2100 | },
2101 | "function-bind": {
2102 | "version": "1.1.1",
2103 | "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
2104 | "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
2105 | "dev": true
2106 | },
2107 | "gensync": {
2108 | "version": "1.0.0-beta.2",
2109 | "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz",
2110 | "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==",
2111 | "dev": true
2112 | },
2113 | "globals": {
2114 | "version": "11.12.0",
2115 | "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz",
2116 | "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==",
2117 | "dev": true
2118 | },
2119 | "has": {
2120 | "version": "1.0.3",
2121 | "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
2122 | "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
2123 | "dev": true,
2124 | "requires": {
2125 | "function-bind": "^1.1.1"
2126 | }
2127 | },
2128 | "has-flag": {
2129 | "version": "3.0.0",
2130 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
2131 | "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
2132 | "dev": true
2133 | },
2134 | "is-core-module": {
2135 | "version": "2.10.0",
2136 | "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.10.0.tgz",
2137 | "integrity": "sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg==",
2138 | "dev": true,
2139 | "requires": {
2140 | "has": "^1.0.3"
2141 | }
2142 | },
2143 | "js-tokens": {
2144 | "version": "4.0.0",
2145 | "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
2146 | "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="
2147 | },
2148 | "jsesc": {
2149 | "version": "2.5.2",
2150 | "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz",
2151 | "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==",
2152 | "dev": true
2153 | },
2154 | "json5": {
2155 | "version": "2.2.1",
2156 | "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz",
2157 | "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==",
2158 | "dev": true
2159 | },
2160 | "loose-envify": {
2161 | "version": "1.4.0",
2162 | "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
2163 | "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
2164 | "requires": {
2165 | "js-tokens": "^3.0.0 || ^4.0.0"
2166 | }
2167 | },
2168 | "magic-string": {
2169 | "version": "0.26.2",
2170 | "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.26.2.tgz",
2171 | "integrity": "sha512-NzzlXpclt5zAbmo6h6jNc8zl2gNRGHvmsZW4IvZhTC4W7k4OlLP+S5YLussa/r3ixNT66KOQfNORlXHSOy/X4A==",
2172 | "dev": true,
2173 | "requires": {
2174 | "sourcemap-codec": "^1.4.8"
2175 | }
2176 | },
2177 | "ms": {
2178 | "version": "2.1.2",
2179 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
2180 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
2181 | "dev": true
2182 | },
2183 | "nanoid": {
2184 | "version": "3.3.4",
2185 | "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz",
2186 | "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==",
2187 | "dev": true
2188 | },
2189 | "node-releases": {
2190 | "version": "2.0.6",
2191 | "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz",
2192 | "integrity": "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==",
2193 | "dev": true
2194 | },
2195 | "path-parse": {
2196 | "version": "1.0.7",
2197 | "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
2198 | "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
2199 | "dev": true
2200 | },
2201 | "picocolors": {
2202 | "version": "1.0.0",
2203 | "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz",
2204 | "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==",
2205 | "dev": true
2206 | },
2207 | "postcss": {
2208 | "version": "8.4.14",
2209 | "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.14.tgz",
2210 | "integrity": "sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==",
2211 | "dev": true,
2212 | "requires": {
2213 | "nanoid": "^3.3.4",
2214 | "picocolors": "^1.0.0",
2215 | "source-map-js": "^1.0.2"
2216 | }
2217 | },
2218 | "react": {
2219 | "version": "18.2.0",
2220 | "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz",
2221 | "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==",
2222 | "requires": {
2223 | "loose-envify": "^1.1.0"
2224 | }
2225 | },
2226 | "react-dom": {
2227 | "version": "18.2.0",
2228 | "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz",
2229 | "integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==",
2230 | "requires": {
2231 | "loose-envify": "^1.1.0",
2232 | "scheduler": "^0.23.0"
2233 | }
2234 | },
2235 | "react-refresh": {
2236 | "version": "0.14.0",
2237 | "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.0.tgz",
2238 | "integrity": "sha512-wViHqhAd8OHeLS/IRMJjTSDHF3U9eWi62F/MledQGPdJGDhodXJ9PBLNGr6WWL7qlH12Mt3TyTpbS+hGXMjCzQ==",
2239 | "dev": true
2240 | },
2241 | "resolve": {
2242 | "version": "1.22.1",
2243 | "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz",
2244 | "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==",
2245 | "dev": true,
2246 | "requires": {
2247 | "is-core-module": "^2.9.0",
2248 | "path-parse": "^1.0.7",
2249 | "supports-preserve-symlinks-flag": "^1.0.0"
2250 | }
2251 | },
2252 | "rollup": {
2253 | "version": "2.77.2",
2254 | "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.77.2.tgz",
2255 | "integrity": "sha512-m/4YzYgLcpMQbxX3NmAqDvwLATZzxt8bIegO78FZLl+lAgKJBd1DRAOeEiZcKOIOPjxE6ewHWHNgGEalFXuz1g==",
2256 | "dev": true,
2257 | "requires": {
2258 | "fsevents": "~2.3.2"
2259 | }
2260 | },
2261 | "safe-buffer": {
2262 | "version": "5.1.2",
2263 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
2264 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
2265 | "dev": true
2266 | },
2267 | "scheduler": {
2268 | "version": "0.23.0",
2269 | "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz",
2270 | "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==",
2271 | "requires": {
2272 | "loose-envify": "^1.1.0"
2273 | }
2274 | },
2275 | "semver": {
2276 | "version": "6.3.0",
2277 | "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
2278 | "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
2279 | "dev": true
2280 | },
2281 | "source-map-js": {
2282 | "version": "1.0.2",
2283 | "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz",
2284 | "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==",
2285 | "dev": true
2286 | },
2287 | "sourcemap-codec": {
2288 | "version": "1.4.8",
2289 | "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz",
2290 | "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==",
2291 | "dev": true
2292 | },
2293 | "supports-color": {
2294 | "version": "5.5.0",
2295 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
2296 | "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
2297 | "dev": true,
2298 | "requires": {
2299 | "has-flag": "^3.0.0"
2300 | }
2301 | },
2302 | "supports-preserve-symlinks-flag": {
2303 | "version": "1.0.0",
2304 | "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
2305 | "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
2306 | "dev": true
2307 | },
2308 | "to-fast-properties": {
2309 | "version": "2.0.0",
2310 | "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
2311 | "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==",
2312 | "dev": true
2313 | },
2314 | "update-browserslist-db": {
2315 | "version": "1.0.5",
2316 | "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.5.tgz",
2317 | "integrity": "sha512-dteFFpCyvuDdr9S/ff1ISkKt/9YZxKjI9WlRR99c180GaztJtRa/fn18FdxGVKVsnPY7/a/FDN68mcvUmP4U7Q==",
2318 | "dev": true,
2319 | "requires": {
2320 | "escalade": "^3.1.1",
2321 | "picocolors": "^1.0.0"
2322 | }
2323 | },
2324 | "vite": {
2325 | "version": "3.0.4",
2326 | "resolved": "https://registry.npmjs.org/vite/-/vite-3.0.4.tgz",
2327 | "integrity": "sha512-NU304nqnBeOx2MkQnskBQxVsa0pRAH5FphokTGmyy8M3oxbvw7qAXts2GORxs+h/2vKsD+osMhZ7An6yK6F1dA==",
2328 | "dev": true,
2329 | "requires": {
2330 | "esbuild": "^0.14.47",
2331 | "fsevents": "~2.3.2",
2332 | "postcss": "^8.4.14",
2333 | "resolve": "^1.22.1",
2334 | "rollup": "^2.75.6"
2335 | }
2336 | }
2337 | }
2338 | }
2339 |
--------------------------------------------------------------------------------
/client/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 | "preview": "vite preview"
10 | },
11 | "dependencies": {
12 | "react": "^18.2.0",
13 | "react-dom": "^18.2.0"
14 | },
15 | "devDependencies": {
16 | "@types/react": "^18.0.15",
17 | "@types/react-dom": "^18.0.6",
18 | "@vitejs/plugin-react": "^2.0.0",
19 | "vite": "^3.0.0"
20 | }
21 | }
--------------------------------------------------------------------------------
/client/public/vite.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/client/src/App.css:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FaztWeb/go-react-project/9e0f660cc950727cc8237be166345b22c02e2305/client/src/App.css
--------------------------------------------------------------------------------
/client/src/App.jsx:
--------------------------------------------------------------------------------
1 | import { useEffect } from "react";
2 | import { useState } from "react";
3 |
4 | function App() {
5 | const [name, setName] = useState("");
6 | const [users, setUsers] = useState([])
7 |
8 | async function loadUsers() {
9 | const response = await fetch(import.meta.env.VITE_API + "/users");
10 | const data = await response.json();
11 | console.log(data)
12 | setUsers(data.users)
13 | }
14 |
15 | useEffect(() => {
16 | loadUsers()
17 | }, []);
18 |
19 | const handleSubmit = async (e) => {
20 | e.preventDefault();
21 | const response = await fetch(import.meta.env.VITE_API + "/users", {
22 | method: "POST",
23 | body: JSON.stringify({ name }),
24 | headers: {
25 | "Content-Type": "application/json",
26 | },
27 | });
28 | const data = await response.json();
29 | loadUsers()
30 | };
31 |
32 | return (
33 |
34 |
43 |
44 |
45 | {users.map(user => (
46 | - {user.name}
47 | ))}
48 |
49 |
50 | );
51 | }
52 |
53 | export default App;
54 |
--------------------------------------------------------------------------------
/client/src/assets/react.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/client/src/index.css:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FaztWeb/go-react-project/9e0f660cc950727cc8237be166345b22c02e2305/client/src/index.css
--------------------------------------------------------------------------------
/client/src/main.jsx:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import ReactDOM from 'react-dom/client'
3 | import App from './App'
4 | import './index.css'
5 |
6 | ReactDOM.createRoot(document.getElementById('root')).render(
7 |
8 |
9 |
10 | )
11 |
--------------------------------------------------------------------------------
/client/vite.config.js:
--------------------------------------------------------------------------------
1 | import { defineConfig } from 'vite'
2 | import react from '@vitejs/plugin-react'
3 |
4 | // https://vitejs.dev/config/
5 | export default defineConfig({
6 | plugins: [react()]
7 | })
8 |
--------------------------------------------------------------------------------
/go.mod:
--------------------------------------------------------------------------------
1 | module github.com/faztweb/go-react-crud
2 |
3 | go 1.18
4 |
5 | require (
6 | github.com/andybalholm/brotli v1.0.4 // indirect
7 | github.com/gofiber/fiber/v2 v2.36.0 // indirect
8 | github.com/golang/snappy v0.0.1 // indirect
9 | github.com/klauspost/compress v1.15.0 // indirect
10 | github.com/montanaflynn/stats v0.0.0-20171201202039-1bf9dbcd8cbe // indirect
11 | github.com/pkg/errors v0.9.1 // indirect
12 | github.com/valyala/bytebufferpool v1.0.0 // indirect
13 | github.com/valyala/fasthttp v1.38.0 // indirect
14 | github.com/valyala/tcplisten v1.0.0 // indirect
15 | github.com/xdg-go/pbkdf2 v1.0.0 // indirect
16 | github.com/xdg-go/scram v1.1.1 // indirect
17 | github.com/xdg-go/stringprep v1.0.3 // indirect
18 | github.com/youmark/pkcs8 v0.0.0-20181117223130-1be2e3e5546d // indirect
19 | go.mongodb.org/mongo-driver v1.10.1 // indirect
20 | golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d // indirect
21 | golang.org/x/sync v0.0.0-20210220032951-036812b2e83c // indirect
22 | golang.org/x/sys v0.0.0-20220227234510-4e6760a101f9 // indirect
23 | golang.org/x/text v0.3.7 // indirect
24 | )
25 |
--------------------------------------------------------------------------------
/go.sum:
--------------------------------------------------------------------------------
1 | github.com/andybalholm/brotli v1.0.4 h1:V7DdXeJtZscaqfNuAdSRuRFzuiKlHSC/Zh3zl9qY3JY=
2 | github.com/andybalholm/brotli v1.0.4/go.mod h1:fO7iG3H7G2nSZ7m0zPUDn85XEX2GTukHGRSepvi9Eig=
3 | github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
4 | github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
5 | github.com/gofiber/fiber/v2 v2.36.0 h1:1qLMe5rhXFLPa2SjK10Wz7WFgLwYi4TYg7XrjztJHqA=
6 | github.com/gofiber/fiber/v2 v2.36.0/go.mod h1:tgCr+lierLwLoVHHO/jn3Niannv34WRkQETU8wiL9fQ=
7 | github.com/golang/snappy v0.0.1 h1:Qgr9rKW7uDUkrbSmQeiDsGa8SjGyCOGtuasMWwvp2P4=
8 | github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
9 | github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
10 | github.com/klauspost/compress v1.13.6/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47etQ6QUkpK6sk=
11 | github.com/klauspost/compress v1.15.0 h1:xqfchp4whNFxn5A4XFyyYtitiWI8Hy5EW59jEwcyL6U=
12 | github.com/klauspost/compress v1.15.0/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47etQ6QUkpK6sk=
13 | github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
14 | github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
15 | github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
16 | github.com/montanaflynn/stats v0.0.0-20171201202039-1bf9dbcd8cbe h1:iruDEfMl2E6fbMZ9s0scYfZQ84/6SPL6zC8ACM2oIL0=
17 | github.com/montanaflynn/stats v0.0.0-20171201202039-1bf9dbcd8cbe/go.mod h1:wL8QJuTMNUDYhXwkmfOly8iTdp5TEcJFWZD2D7SIkUc=
18 | github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
19 | github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
20 | github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
21 | github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
22 | github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
23 | github.com/tidwall/pretty v1.0.0/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk=
24 | github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6KllzawFIhcdPw=
25 | github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc=
26 | github.com/valyala/fasthttp v1.38.0 h1:yTjSSNjuDi2PPvXY2836bIwLmiTS2T4T9p1coQshpco=
27 | github.com/valyala/fasthttp v1.38.0/go.mod h1:t/G+3rLek+CyY9bnIE+YlMRddxVAAGjhxndDB4i4C0I=
28 | github.com/valyala/tcplisten v1.0.0 h1:rBHj/Xf+E1tRGZyWIWwJDiRY0zc1Js+CV5DqwacVSA8=
29 | github.com/valyala/tcplisten v1.0.0/go.mod h1:T0xQ8SeCZGxckz9qRXTfG43PvQ/mcWh7FwZEA7Ioqkc=
30 | github.com/xdg-go/pbkdf2 v1.0.0 h1:Su7DPu48wXMwC3bs7MCNG+z4FhcyEuz5dlvchbq0B0c=
31 | github.com/xdg-go/pbkdf2 v1.0.0/go.mod h1:jrpuAogTd400dnrH08LKmI/xc1MbPOebTwRqcT5RDeI=
32 | github.com/xdg-go/scram v1.1.1 h1:VOMT+81stJgXW3CpHyqHN3AXDYIMsx56mEFrB37Mb/E=
33 | github.com/xdg-go/scram v1.1.1/go.mod h1:RaEWvsqvNKKvBPvcKeFjrG2cJqOkHTiyTpzz23ni57g=
34 | github.com/xdg-go/stringprep v1.0.3 h1:kdwGpVNwPFtjs98xCGkHjQtGKh86rDcRZN17QEMCOIs=
35 | github.com/xdg-go/stringprep v1.0.3/go.mod h1:W3f5j4i+9rC0kuIEJL0ky1VpHXQU3ocBgklLGvcBnW8=
36 | github.com/youmark/pkcs8 v0.0.0-20181117223130-1be2e3e5546d h1:splanxYIlg+5LfHAM6xpdFEAYOk8iySO56hMFq6uLyA=
37 | github.com/youmark/pkcs8 v0.0.0-20181117223130-1be2e3e5546d/go.mod h1:rHwXgn7JulP+udvsHwJoVG1YGAP6VLg4y9I5dyZdqmA=
38 | go.mongodb.org/mongo-driver v1.10.1 h1:NujsPveKwHaWuKUer/ceo9DzEe7HIj1SlJ6uvXZG0S4=
39 | go.mongodb.org/mongo-driver v1.10.1/go.mod h1:z4XpeoU6w+9Vht+jAFyLgVrD+jGSQQe0+CBWFHNiHt8=
40 | golang.org/x/crypto v0.0.0-20220214200702-86341886e292/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
41 | golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d h1:sK3txAijHtOK88l68nt020reeT1ZdKLIYetKl95FzVY=
42 | golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
43 | golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
44 | golang.org/x/net v0.0.0-20220225172249-27dd8689420f/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk=
45 | golang.org/x/sync v0.0.0-20210220032951-036812b2e83c h1:5KslGYwFpkhGh+Q16bwMP3cOontH8FOep7tGV86Y7SQ=
46 | golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
47 | golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
48 | golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
49 | golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
50 | golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
51 | golang.org/x/sys v0.0.0-20220227234510-4e6760a101f9 h1:nhht2DYV/Sn3qOayu8lM+cU1ii9sTLUeBQwQQfUHtrs=
52 | golang.org/x/sys v0.0.0-20220227234510-4e6760a101f9/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
53 | golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
54 | golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
55 | golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
56 | golang.org/x/text v0.3.7 h1:olpwvP2KacW1ZWvsR7uQhoyTYvKAupfQrRGBFM352Gk=
57 | golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
58 | golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
59 | golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
60 | gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
61 | gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
62 | gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
63 | gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
64 |
--------------------------------------------------------------------------------
/main.go:
--------------------------------------------------------------------------------
1 | package main
2 |
3 | import (
4 | "context"
5 | "fmt"
6 |
7 | "os"
8 |
9 | "github.com/gofiber/fiber/v2"
10 | "github.com/gofiber/fiber/v2/middleware/cors"
11 | "go.mongodb.org/mongo-driver/bson"
12 | "go.mongodb.org/mongo-driver/mongo"
13 | "go.mongodb.org/mongo-driver/mongo/options"
14 |
15 | "github.com/faztweb/go-react-crud/models"
16 | )
17 |
18 | func main() {
19 |
20 | port := os.Getenv("PORT")
21 | mongodb := os.Getenv("MONGODB_URI")
22 |
23 | if port == "" {
24 | port = "3000"
25 | }
26 |
27 | if mongodb == "" {
28 | mongodb = "mongodb://localhost:27017/gomongodb"
29 | }
30 |
31 | app := fiber.New()
32 | client, err := mongo.Connect(context.TODO(), options.Client().ApplyURI("mongodb+srv://fazt:faztpassword@cluster0.ynu6g.mongodb.net/?retryWrites=true&w=majority"))
33 |
34 | if err != nil {
35 | panic(err)
36 | }
37 |
38 | app.Use(cors.New())
39 |
40 | app.Static("/", "./client/dist")
41 |
42 | app.Post("/users", func(c *fiber.Ctx) error {
43 | var user models.User
44 |
45 | c.BodyParser(&user)
46 |
47 | coll := client.Database("gomongodb").Collection("users")
48 | result, err := coll.InsertOne(context.TODO(), bson.D{{
49 | Key: "name",
50 | Value: user.Name,
51 | }})
52 |
53 | if err != nil {
54 | panic(err)
55 | }
56 |
57 | return c.JSON(&fiber.Map{
58 | "data": result,
59 | })
60 | })
61 |
62 | app.Get("/users", func(c *fiber.Ctx) error {
63 | var users []models.User
64 |
65 | coll := client.Database("gomongodb").Collection("users")
66 | results, error := coll.Find(context.TODO(), bson.M{})
67 |
68 | if error != nil {
69 | panic(error)
70 | }
71 |
72 | for results.Next(context.TODO()) {
73 | var user models.User
74 | results.Decode(&user)
75 | users = append(users, user)
76 | }
77 |
78 | return c.JSON(&fiber.Map{
79 | "users": users,
80 | })
81 |
82 | })
83 |
84 | app.Listen(":" + port)
85 | fmt.Println("Server on port 3000")
86 | }
87 |
--------------------------------------------------------------------------------
/models/user_model.go:
--------------------------------------------------------------------------------
1 | package models
2 |
3 | import "go.mongodb.org/mongo-driver/bson/primitive"
4 |
5 | type User struct {
6 | Id primitive.ObjectID `json:"_id" bson:"_id"`
7 | Name string `json:"name"`
8 | }
9 |
--------------------------------------------------------------------------------
/requests/users.http:
--------------------------------------------------------------------------------
1 | POST http://localhost:3000/users
2 | Content-Type: application/json
3 |
4 | {
5 | "name": "jesus"
6 | }
--------------------------------------------------------------------------------