switched frontend to CRA

Massimo Melina committed Dec 11, 2021 at 11:36 UTC 3b4f7d6bae5831baba702e672cfabbe721617764
31 files changed +32749 -200
.gitignore
+1
@@ -1,3 +1,4 @@
1 node_modules
2 +build
3 .idea
4 dist
\ No newline at end of file
frontend/.gitignore new
+23
@@ -0,0 +1,23 @@
1 +# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
2 +
3 +# dependencies
4 +/node_modules
5 +/.pnp
6 +.pnp.js
7 +
8 +# testing
9 +/coverage
10 +
11 +# production
12 +/build
13 +
14 +# misc
15 +.DS_Store
16 +.env.local
17 +.env.development.local
18 +.env.test.local
19 +.env.production.local
20 +
21 +npm-debug.log*
22 +yarn-debug.log*
23 +yarn-error.log*
frontend/README.md new
+46
@@ -0,0 +1,46 @@
1 +# Getting Started with Create React App
2 +
3 +This project was bootstrapped with [Create React App](https://github.com/facebook/create-react-app).
4 +
5 +## Available Scripts
6 +
7 +In the project directory, you can run:
8 +
9 +### `yarn start`
10 +
11 +Runs the app in the development mode.\
12 +Open [http://localhost:3000](http://localhost:3000) to view it in the browser.
13 +
14 +The page will reload if you make edits.\
15 +You will also see any lint errors in the console.
16 +
17 +### `yarn test`
18 +
19 +Launches the test runner in the interactive watch mode.\
20 +See the section about [running tests](https://facebook.github.io/create-react-app/docs/running-tests) for more information.
21 +
22 +### `yarn build`
23 +
24 +Builds the app for production to the `build` folder.\
25 +It correctly bundles React in production mode and optimizes the build for the best performance.
26 +
27 +The build is minified and the filenames include the hashes.\
28 +Your app is ready to be deployed!
29 +
30 +See the section about [deployment](https://facebook.github.io/create-react-app/docs/deployment) for more information.
31 +
32 +### `yarn eject`
33 +
34 +**Note: this is a one-way operation. Once you `eject`, you can’t go back!**
35 +
36 +If you aren’t satisfied with the build tool and configuration choices, you can `eject` at any time. This command will remove the single build dependency from your project.
37 +
38 +Instead, it will copy all the configuration files and the transitive dependencies (webpack, Babel, ESLint, etc) right into your project so you have full control over them. All of the commands except `eject` will still work, but they will point to the copied scripts so you can tweak them. At this point you’re on your own.
39 +
40 +You don’t have to ever use `eject`. The curated feature set is suitable for small and middle deployments, and you shouldn’t feel obligated to use this feature. However we understand that this tool wouldn’t be useful if you couldn’t customize it when you are ready for it.
41 +
42 +## Learn More
43 +
44 +You can learn more in the [Create React App documentation](https://facebook.github.io/create-react-app/docs/getting-started).
45 +
46 +To learn React, check out the [React documentation](https://reactjs.org/).
frontend/index.html deleted
-13
@@ -1,13 +0,0 @@
1 -<!DOCTYPE html>
2 -<html lang="en">
3 -<head>
4 - <meta charset="UTF-8" />
5 - <title>HFS</title>
6 - <meta name="viewport" content="width=device-width, initial-scale=1">
7 - <link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons" />
8 - <link rel="stylesheet" type="text/css" href="/~/main.css" />
9 - <script type="module" src='/~/main.js'></script>
10 -</head>
11 -<body>
12 -</body>
13 -</html>
frontend/main.css
frontend/main.js deleted
-31
@@ -1,31 +0,0 @@
1 -import { h, render, Fragment } from 'https://unpkg.com/preact@latest?module';
2 -import { useState, useEffect } from 'https://unpkg.com/preact@latest/hooks/dist/hooks.module.js?module';
3 -export { h, render, Fragment, useState, useEffect }
4 -
5 -import { useApi } from './api.js'
6 -//import * as Fluid from 'https://unpkg.com/preact-fluid@latest?module'; console.log(Fluid)
7 -
8 -document.addEventListener('DOMContentLoaded', ()=>
9 - render( h(App), document.body) )
10 -
11 -function App() {
12 - return h(BrowseFiles)
13 -}
14 -
15 -function BrowseFiles() {
16 - return h(Fragment, {},
17 - h(Head),
18 - h(FilesList) )
19 -}
20 -
21 -function Head() {
22 - return null
23 -}
24 -
25 -function FilesList() {
26 - const res = useApi('files_list', { path: location.pathname })
27 - if (!res)
28 - return 'loading'
29 - return h('ul', {}, res.list.map(({ n }) =>
30 - h('li',{}, h('a',{ href:n }, n)) ))
31 -}
\ No newline at end of file
frontend/package-lock.json new
+32137
@@ -0,0 +1,32137 @@
1 +{
2 + "name": "frontend",
3 + "version": "0.1.0",
4 + "lockfileVersion": 2,
5 + "requires": true,
6 + "packages": {
7 + "": {
8 + "name": "frontend",
9 + "version": "0.1.0",
10 + "dependencies": {
11 + "react": "^17.0.2",
12 + "react-dom": "^17.0.2",
13 + "react-router-dom": "^6.1.1",
14 + "web-vitals": "^1.0.1"
15 + },
16 + "devDependencies": {
17 + "@testing-library/jest-dom": "^5.11.4",
18 + "@testing-library/react": "^11.1.0",
19 + "@testing-library/user-event": "^12.1.10",
20 + "@types/jest": "^26.0.15",
21 + "@types/node": "^12.0.0",
22 + "@types/react": "^17.0.0",
23 + "@types/react-dom": "^17.0.0",
24 + "react-scripts": "4.0.3",
25 + "typescript": "^4.1.2"
26 + }
27 + },
28 + "node_modules/@babel/code-frame": {
29 + "version": "7.12.13",
30 + "dev": true,
31 + "license": "MIT",
32 + "dependencies": {
33 + "@babel/highlight": "^7.12.13"
34 + }
35 + },
36 + "node_modules/@babel/compat-data": {
37 + "version": "7.12.13",
38 + "dev": true,
39 + "license": "MIT"
40 + },
41 + "node_modules/@babel/core": {
42 + "version": "7.12.17",
43 + "dev": true,
44 + "license": "MIT",
45 + "dependencies": {
46 + "@babel/code-frame": "^7.12.13",
47 + "@babel/generator": "^7.12.17",
48 + "@babel/helper-module-transforms": "^7.12.17",
49 + "@babel/helpers": "^7.12.17",
50 + "@babel/parser": "^7.12.17",
51 + "@babel/template": "^7.12.13",
52 + "@babel/traverse": "^7.12.17",
53 + "@babel/types": "^7.12.17",
54 + "convert-source-map": "^1.7.0",
55 + "debug": "^4.1.0",
56 + "gensync": "^1.0.0-beta.1",
57 + "json5": "^2.1.2",
58 + "lodash": "^4.17.19",
59 + "semver": "^5.4.1",
60 + "source-map": "^0.5.0"
61 + },
62 + "engines": {
63 + "node": ">=6.9.0"
64 + },
65 + "funding": {
66 + "type": "opencollective",
67 + "url": "https://opencollective.com/babel"
68 + }
69 + },
70 + "node_modules/@babel/core/node_modules/json5": {
71 + "version": "2.2.0",
72 + "dev": true,
73 + "license": "MIT",
74 + "dependencies": {
75 + "minimist": "^1.2.5"
76 + },
77 + "bin": {
78 + "json5": "lib/cli.js"
79 + },
80 + "engines": {
81 + "node": ">=6"
82 + }
83 + },
84 + "node_modules/@babel/core/node_modules/source-map": {
85 + "version": "0.5.7",
86 + "dev": true,
87 + "license": "BSD-3-Clause",
88 + "engines": {
89 + "node": ">=0.10.0"
90 + }
91 + },
92 + "node_modules/@babel/generator": {
93 + "version": "7.12.17",
94 + "dev": true,
95 + "license": "MIT",
96 + "dependencies": {
97 + "@babel/types": "^7.12.17",
98 + "jsesc": "^2.5.1",
99 + "source-map": "^0.5.0"
100 + }
101 + },
102 + "node_modules/@babel/generator/node_modules/source-map": {
103 + "version": "0.5.7",
104 + "dev": true,
105 + "license": "BSD-3-Clause",
106 + "engines": {
107 + "node": ">=0.10.0"
108 + }
109 + },
110 + "node_modules/@babel/helper-annotate-as-pure": {
111 + "version": "7.12.13",
112 + "dev": true,
113 + "license": "MIT",
114 + "dependencies": {
115 + "@babel/types": "^7.12.13"
116 + }
117 + },
118 + "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": {
119 + "version": "7.12.13",
120 + "dev": true,
121 + "license": "MIT",
122 + "dependencies": {
123 + "@babel/helper-explode-assignable-expression": "^7.12.13",
124 + "@babel/types": "^7.12.13"
125 + }
126 + },
127 + "node_modules/@babel/helper-compilation-targets": {
128 + "version": "7.12.17",
129 + "dev": true,
130 + "license": "MIT",
131 + "dependencies": {
132 + "@babel/compat-data": "^7.12.13",
133 + "@babel/helper-validator-option": "^7.12.17",
134 + "browserslist": "^4.14.5",
135 + "semver": "^5.5.0"
136 + },
137 + "peerDependencies": {
138 + "@babel/core": "^7.0.0"
139 + }
140 + },
141 + "node_modules/@babel/helper-create-class-features-plugin": {
142 + "version": "7.12.17",
143 + "dev": true,
144 + "license": "MIT",
145 + "dependencies": {
146 + "@babel/helper-function-name": "^7.12.13",
147 + "@babel/helper-member-expression-to-functions": "^7.12.17",
148 + "@babel/helper-optimise-call-expression": "^7.12.13",
149 + "@babel/helper-replace-supers": "^7.12.13",
150 + "@babel/helper-split-export-declaration": "^7.12.13"
151 + },
152 + "peerDependencies": {
153 + "@babel/core": "^7.0.0"
154 + }
155 + },
156 + "node_modules/@babel/helper-create-class-features-plugin/node_modules/@babel/core": {
157 + "version": "7.12.3",
158 + "dev": true,
159 + "license": "MIT",
160 + "peer": true,
161 + "dependencies": {
162 + "@babel/code-frame": "^7.10.4",
163 + "@babel/generator": "^7.12.1",
164 + "@babel/helper-module-transforms": "^7.12.1",
165 + "@babel/helpers": "^7.12.1",
166 + "@babel/parser": "^7.12.3",
167 + "@babel/template": "^7.10.4",
168 + "@babel/traverse": "^7.12.1",
169 + "@babel/types": "^7.12.1",
170 + "convert-source-map": "^1.7.0",
171 + "debug": "^4.1.0",
172 + "gensync": "^1.0.0-beta.1",
173 + "json5": "^2.1.2",
174 + "lodash": "^4.17.19",
175 + "resolve": "^1.3.2",
176 + "semver": "^5.4.1",
177 + "source-map": "^0.5.0"
178 + },
179 + "engines": {
180 + "node": ">=6.9.0"
181 + },
182 + "funding": {
183 + "type": "opencollective",
184 + "url": "https://opencollective.com/babel"
185 + }
186 + },
187 + "node_modules/@babel/helper-create-class-features-plugin/node_modules/json5": {
188 + "version": "2.2.0",
189 + "dev": true,
190 + "license": "MIT",
191 + "peer": true,
192 + "dependencies": {
193 + "minimist": "^1.2.5"
194 + },
195 + "bin": {
196 + "json5": "lib/cli.js"
197 + },
198 + "engines": {
199 + "node": ">=6"
200 + }
201 + },
202 + "node_modules/@babel/helper-create-class-features-plugin/node_modules/source-map": {
203 + "version": "0.5.7",
204 + "dev": true,
205 + "license": "BSD-3-Clause",
206 + "peer": true,
207 + "engines": {
208 + "node": ">=0.10.0"
209 + }
210 + },
211 + "node_modules/@babel/helper-create-regexp-features-plugin": {
212 + "version": "7.12.17",
213 + "dev": true,
214 + "license": "MIT",
215 + "dependencies": {
216 + "@babel/helper-annotate-as-pure": "^7.12.13",
217 + "regexpu-core": "^4.7.1"
218 + },
219 + "peerDependencies": {
220 + "@babel/core": "^7.0.0"
221 + }
222 + },
223 + "node_modules/@babel/helper-explode-assignable-expression": {
224 + "version": "7.12.13",
225 + "dev": true,
226 + "license": "MIT",
227 + "dependencies": {
228 + "@babel/types": "^7.12.13"
229 + }
230 + },
231 + "node_modules/@babel/helper-function-name": {
232 + "version": "7.12.13",
233 + "dev": true,
234 + "license": "MIT",
235 + "dependencies": {
236 + "@babel/helper-get-function-arity": "^7.12.13",
237 + "@babel/template": "^7.12.13",
238 + "@babel/types": "^7.12.13"
239 + }
240 + },
241 + "node_modules/@babel/helper-get-function-arity": {
242 + "version": "7.12.13",
243 + "dev": true,
244 + "license": "MIT",
245 + "dependencies": {
246 + "@babel/types": "^7.12.13"
247 + }
248 + },
249 + "node_modules/@babel/helper-hoist-variables": {
250 + "version": "7.12.13",
251 + "dev": true,
252 + "license": "MIT",
253 + "dependencies": {
254 + "@babel/types": "^7.12.13"
255 + }
256 + },
257 + "node_modules/@babel/helper-member-expression-to-functions": {
258 + "version": "7.12.17",
259 + "dev": true,
260 + "license": "MIT",
261 + "dependencies": {
262 + "@babel/types": "^7.12.17"
263 + }
264 + },
265 + "node_modules/@babel/helper-module-imports": {
266 + "version": "7.12.13",
267 + "dev": true,
268 + "license": "MIT",
269 + "dependencies": {
270 + "@babel/types": "^7.12.13"
271 + }
272 + },
273 + "node_modules/@babel/helper-module-transforms": {
274 + "version": "7.12.17",
275 + "dev": true,
276 + "license": "MIT",
277 + "dependencies": {
278 + "@babel/helper-module-imports": "^7.12.13",
279 + "@babel/helper-replace-supers": "^7.12.13",
280 + "@babel/helper-simple-access": "^7.12.13",
281 + "@babel/helper-split-export-declaration": "^7.12.13",
282 + "@babel/helper-validator-identifier": "^7.12.11",
283 + "@babel/template": "^7.12.13",
284 + "@babel/traverse": "^7.12.17",
285 + "@babel/types": "^7.12.17",
286 + "lodash": "^4.17.19"
287 + }
288 + },
289 + "node_modules/@babel/helper-optimise-call-expression": {
290 + "version": "7.12.13",
291 + "dev": true,
292 + "license": "MIT",
293 + "dependencies": {
294 + "@babel/types": "^7.12.13"
295 + }
296 + },
297 + "node_modules/@babel/helper-plugin-utils": {
298 + "version": "7.12.13",
299 + "dev": true,
300 + "license": "MIT"
301 + },
302 + "node_modules/@babel/helper-remap-async-to-generator": {
303 + "version": "7.12.13",
304 + "dev": true,
305 + "license": "MIT",
306 + "dependencies": {
307 + "@babel/helper-annotate-as-pure": "^7.12.13",
308 + "@babel/helper-wrap-function": "^7.12.13",
309 + "@babel/types": "^7.12.13"
310 + }
311 + },
312 + "node_modules/@babel/helper-replace-supers": {
313 + "version": "7.12.13",
314 + "dev": true,
315 + "license": "MIT",
316 + "dependencies": {
317 + "@babel/helper-member-expression-to-functions": "^7.12.13",
318 + "@babel/helper-optimise-call-expression": "^7.12.13",
319 + "@babel/traverse": "^7.12.13",
320 + "@babel/types": "^7.12.13"
321 + }
322 + },
323 + "node_modules/@babel/helper-simple-access": {
324 + "version": "7.12.13",
325 + "dev": true,
326 + "license": "MIT",
327 + "dependencies": {
328 + "@babel/types": "^7.12.13"
329 + }
330 + },
331 + "node_modules/@babel/helper-skip-transparent-expression-wrappers": {
332 + "version": "7.12.1",
333 + "dev": true,
334 + "license": "MIT",
335 + "dependencies": {
336 + "@babel/types": "^7.12.1"
337 + }
338 + },
339 + "node_modules/@babel/helper-split-export-declaration": {
340 + "version": "7.12.13",
341 + "dev": true,
342 + "license": "MIT",
343 + "dependencies": {
344 + "@babel/types": "^7.12.13"
345 + }
346 + },
347 + "node_modules/@babel/helper-validator-identifier": {
348 + "version": "7.12.11",
349 + "dev": true,
350 + "license": "MIT"
351 + },
352 + "node_modules/@babel/helper-validator-option": {
353 + "version": "7.12.17",
354 + "dev": true,
355 + "license": "MIT"
356 + },
357 + "node_modules/@babel/helper-wrap-function": {
358 + "version": "7.12.13",
359 + "dev": true,
360 + "license": "MIT",
361 + "dependencies": {
362 + "@babel/helper-function-name": "^7.12.13",
363 + "@babel/template": "^7.12.13",
364 + "@babel/traverse": "^7.12.13",
365 + "@babel/types": "^7.12.13"
366 + }
367 + },
368 + "node_modules/@babel/helpers": {
369 + "version": "7.12.17",
370 + "dev": true,
371 + "license": "MIT",
372 + "dependencies": {
373 + "@babel/template": "^7.12.13",
374 + "@babel/traverse": "^7.12.17",
375 + "@babel/types": "^7.12.17"
376 + }
377 + },
378 + "node_modules/@babel/highlight": {
379 + "version": "7.12.13",
380 + "dev": true,
381 + "license": "MIT",
382 + "dependencies": {
383 + "@babel/helper-validator-identifier": "^7.12.11",
384 + "chalk": "^2.0.0",
385 + "js-tokens": "^4.0.0"
386 + }
387 + },
388 + "node_modules/@babel/highlight/node_modules/ansi-styles": {
389 + "version": "3.2.1",
390 + "dev": true,
391 + "license": "MIT",
392 + "dependencies": {
393 + "color-convert": "^1.9.0"
394 + },
395 + "engines": {
396 + "node": ">=4"
397 + }
398 + },
399 + "node_modules/@babel/highlight/node_modules/chalk": {
400 + "version": "2.4.2",
401 + "dev": true,
402 + "license": "MIT",
403 + "dependencies": {
404 + "ansi-styles": "^3.2.1",
405 + "escape-string-regexp": "^1.0.5",
406 + "supports-color": "^5.3.0"
407 + },
408 + "engines": {
409 + "node": ">=4"
410 + }
411 + },
412 + "node_modules/@babel/highlight/node_modules/escape-string-regexp": {
413 + "version": "1.0.5",
414 + "dev": true,
415 + "license": "MIT",
416 + "engines": {
417 + "node": ">=0.8.0"
418 + }
419 + },
420 + "node_modules/@babel/highlight/node_modules/supports-color": {
421 + "version": "5.5.0",
422 + "dev": true,
423 + "license": "MIT",
424 + "dependencies": {
425 + "has-flag": "^3.0.0"
426 + },
427 + "engines": {
428 + "node": ">=4"
429 + }
430 + },
431 + "node_modules/@babel/parser": {
432 + "version": "7.12.17",
433 + "dev": true,
434 + "license": "MIT",
435 + "bin": {
436 + "parser": "bin/babel-parser.js"
437 + },
438 + "engines": {
439 + "node": ">=6.0.0"
440 + }
441 + },
442 + "node_modules/@babel/plugin-proposal-async-generator-functions": {
443 + "version": "7.12.13",
444 + "dev": true,
445 + "license": "MIT",
446 + "dependencies": {
447 + "@babel/helper-plugin-utils": "^7.12.13",
448 + "@babel/helper-remap-async-to-generator": "^7.12.13",
449 + "@babel/plugin-syntax-async-generators": "^7.8.0"
450 + },
451 + "peerDependencies": {
452 + "@babel/core": "^7.0.0-0"
453 + }
454 + },
455 + "node_modules/@babel/plugin-proposal-class-properties": {
456 + "version": "7.12.13",
457 + "dev": true,
458 + "license": "MIT",
459 + "dependencies": {
460 + "@babel/helper-create-class-features-plugin": "^7.12.13",
461 + "@babel/helper-plugin-utils": "^7.12.13"
462 + },
463 + "peerDependencies": {
464 + "@babel/core": "^7.0.0-0"
465 + }
466 + },
467 + "node_modules/@babel/plugin-proposal-dynamic-import": {
468 + "version": "7.12.17",
469 + "dev": true,
470 + "license": "MIT",
471 + "dependencies": {
472 + "@babel/helper-plugin-utils": "^7.12.13",
473 + "@babel/plugin-syntax-dynamic-import": "^7.8.0"
474 + },
475 + "peerDependencies": {
476 + "@babel/core": "^7.0.0-0"
477 + }
478 + },
479 + "node_modules/@babel/plugin-proposal-export-namespace-from": {
480 + "version": "7.12.13",
481 + "dev": true,
482 + "license": "MIT",
483 + "dependencies": {
484 + "@babel/helper-plugin-utils": "^7.12.13",
485 + "@babel/plugin-syntax-export-namespace-from": "^7.8.3"
486 + },
487 + "peerDependencies": {
488 + "@babel/core": "^7.0.0-0"
489 + }
490 + },
491 + "node_modules/@babel/plugin-proposal-json-strings": {
492 + "version": "7.12.13",
493 + "dev": true,
494 + "license": "MIT",
495 + "dependencies": {
496 + "@babel/helper-plugin-utils": "^7.12.13",
497 + "@babel/plugin-syntax-json-strings": "^7.8.0"
498 + },
499 + "peerDependencies": {
500 + "@babel/core": "^7.0.0-0"
501 + }
502 + },
503 + "node_modules/@babel/plugin-proposal-logical-assignment-operators": {
504 + "version": "7.12.13",
505 + "dev": true,
506 + "license": "MIT",
507 + "dependencies": {
508 + "@babel/helper-plugin-utils": "^7.12.13",
509 + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4"
510 + },
511 + "peerDependencies": {
512 + "@babel/core": "^7.0.0-0"
513 + }
514 + },
515 + "node_modules/@babel/plugin-proposal-nullish-coalescing-operator": {
516 + "version": "7.12.13",
517 + "dev": true,
518 + "license": "MIT",
519 + "dependencies": {
520 + "@babel/helper-plugin-utils": "^7.12.13",
521 + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0"
522 + },
523 + "peerDependencies": {
524 + "@babel/core": "^7.0.0-0"
525 + }
526 + },
527 + "node_modules/@babel/plugin-proposal-numeric-separator": {
528 + "version": "7.12.13",
529 + "dev": true,
530 + "license": "MIT",
531 + "dependencies": {
532 + "@babel/helper-plugin-utils": "^7.12.13",
533 + "@babel/plugin-syntax-numeric-separator": "^7.10.4"
534 + },
535 + "peerDependencies": {
536 + "@babel/core": "^7.0.0-0"
537 + }
538 + },
539 + "node_modules/@babel/plugin-proposal-object-rest-spread": {
540 + "version": "7.12.13",
541 + "dev": true,
542 + "license": "MIT",
543 + "dependencies": {
544 + "@babel/helper-plugin-utils": "^7.12.13",
545 + "@babel/plugin-syntax-object-rest-spread": "^7.8.0",
546 + "@babel/plugin-transform-parameters": "^7.12.13"
547 + },
548 + "peerDependencies": {
549 + "@babel/core": "^7.0.0-0"
550 + }
551 + },
552 + "node_modules/@babel/plugin-proposal-optional-catch-binding": {
553 + "version": "7.12.13",
554 + "dev": true,
555 + "license": "MIT",
556 + "dependencies": {
557 + "@babel/helper-plugin-utils": "^7.12.13",
558 + "@babel/plugin-syntax-optional-catch-binding": "^7.8.0"
559 + },
560 + "peerDependencies": {
561 + "@babel/core": "^7.0.0-0"
562 + }
563 + },
564 + "node_modules/@babel/plugin-proposal-optional-chaining": {
565 + "version": "7.12.17",
566 + "dev": true,
567 + "license": "MIT",
568 + "dependencies": {
569 + "@babel/helper-plugin-utils": "^7.12.13",
570 + "@babel/helper-skip-transparent-expression-wrappers": "^7.12.1",
571 + "@babel/plugin-syntax-optional-chaining": "^7.8.0"
572 + },
573 + "peerDependencies": {
574 + "@babel/core": "^7.0.0-0"
575 + }
576 + },
577 + "node_modules/@babel/plugin-proposal-private-methods": {
578 + "version": "7.12.13",
579 + "dev": true,
580 + "license": "MIT",
581 + "dependencies": {
582 + "@babel/helper-create-class-features-plugin": "^7.12.13",
583 + "@babel/helper-plugin-utils": "^7.12.13"
584 + },
585 + "peerDependencies": {
586 + "@babel/core": "^7.0.0-0"
587 + }
588 + },
589 + "node_modules/@babel/plugin-proposal-unicode-property-regex": {
590 + "version": "7.12.13",
591 + "dev": true,
592 + "license": "MIT",
593 + "dependencies": {
594 + "@babel/helper-create-regexp-features-plugin": "^7.12.13",
595 + "@babel/helper-plugin-utils": "^7.12.13"
596 + },
597 + "engines": {
598 + "node": ">=4"
599 + },
600 + "peerDependencies": {
601 + "@babel/core": "^7.0.0-0"
602 + }
603 + },
604 + "node_modules/@babel/plugin-syntax-async-generators": {
605 + "version": "7.8.4",
606 + "dev": true,
607 + "license": "MIT",
608 + "dependencies": {
609 + "@babel/helper-plugin-utils": "^7.8.0"
610 + },
611 + "peerDependencies": {
612 + "@babel/core": "^7.0.0-0"
613 + }
614 + },
615 + "node_modules/@babel/plugin-syntax-class-properties": {
616 + "version": "7.12.13",
617 + "dev": true,
618 + "license": "MIT",
619 + "dependencies": {
620 + "@babel/helper-plugin-utils": "^7.12.13"
621 + },
622 + "peerDependencies": {
623 + "@babel/core": "^7.0.0-0"
624 + }
625 + },
626 + "node_modules/@babel/plugin-syntax-dynamic-import": {
627 + "version": "7.8.3",
628 + "dev": true,
629 + "license": "MIT",
630 + "dependencies": {
631 + "@babel/helper-plugin-utils": "^7.8.0"
632 + },
633 + "peerDependencies": {
634 + "@babel/core": "^7.0.0-0"
635 + }
636 + },
637 + "node_modules/@babel/plugin-syntax-export-namespace-from": {
638 + "version": "7.8.3",
639 + "dev": true,
640 + "license": "MIT",
641 + "dependencies": {
642 + "@babel/helper-plugin-utils": "^7.8.3"
643 + },
644 + "peerDependencies": {
645 + "@babel/core": "^7.0.0-0"
646 + }
647 + },
648 + "node_modules/@babel/plugin-syntax-json-strings": {
649 + "version": "7.8.3",
650 + "dev": true,
651 + "license": "MIT",
652 + "dependencies": {
653 + "@babel/helper-plugin-utils": "^7.8.0"
654 + },
655 + "peerDependencies": {
656 + "@babel/core": "^7.0.0-0"
657 + }
658 + },
659 + "node_modules/@babel/plugin-syntax-jsx": {
660 + "version": "7.12.13",
661 + "dev": true,
662 + "license": "MIT",
663 + "dependencies": {
664 + "@babel/helper-plugin-utils": "^7.12.13"
665 + },
666 + "peerDependencies": {
667 + "@babel/core": "^7.0.0-0"
668 + }
669 + },
670 + "node_modules/@babel/plugin-syntax-logical-assignment-operators": {
671 + "version": "7.10.4",
672 + "dev": true,
673 + "license": "MIT",
674 + "dependencies": {
675 + "@babel/helper-plugin-utils": "^7.10.4"
676 + },
677 + "peerDependencies": {
678 + "@babel/core": "^7.0.0-0"
679 + }
680 + },
681 + "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": {
682 + "version": "7.8.3",
683 + "dev": true,
684 + "license": "MIT",
685 + "dependencies": {
686 + "@babel/helper-plugin-utils": "^7.8.0"
687 + },
688 + "peerDependencies": {
689 + "@babel/core": "^7.0.0-0"
690 + }
691 + },
692 + "node_modules/@babel/plugin-syntax-numeric-separator": {
693 + "version": "7.10.4",
694 + "dev": true,
695 + "license": "MIT",
696 + "dependencies": {
697 + "@babel/helper-plugin-utils": "^7.10.4"
698 + },
699 + "peerDependencies": {
700 + "@babel/core": "^7.0.0-0"
701 + }
702 + },
703 + "node_modules/@babel/plugin-syntax-object-rest-spread": {
704 + "version": "7.8.3",
705 + "dev": true,
706 + "license": "MIT",
707 + "dependencies": {
708 + "@babel/helper-plugin-utils": "^7.8.0"
709 + },
710 + "peerDependencies": {
711 + "@babel/core": "^7.0.0-0"
712 + }
713 + },
714 + "node_modules/@babel/plugin-syntax-optional-catch-binding": {
715 + "version": "7.8.3",
716 + "dev": true,
717 + "license": "MIT",
718 + "dependencies": {
719 + "@babel/helper-plugin-utils": "^7.8.0"
720 + },
721 + "peerDependencies": {
722 + "@babel/core": "^7.0.0-0"
723 + }
724 + },
725 + "node_modules/@babel/plugin-syntax-optional-chaining": {
726 + "version": "7.8.3",
727 + "dev": true,
728 + "license": "MIT",
729 + "dependencies": {
730 + "@babel/helper-plugin-utils": "^7.8.0"
731 + },
732 + "peerDependencies": {
733 + "@babel/core": "^7.0.0-0"
734 + }
735 + },
736 + "node_modules/@babel/plugin-syntax-top-level-await": {
737 + "version": "7.12.13",
738 + "dev": true,
739 + "license": "MIT",
740 + "dependencies": {
741 + "@babel/helper-plugin-utils": "^7.12.13"
742 + },
743 + "peerDependencies": {
744 + "@babel/core": "^7.0.0-0"
745 + }
746 + },
747 + "node_modules/@babel/plugin-transform-arrow-functions": {
748 + "version": "7.12.13",
749 + "dev": true,
750 + "license": "MIT",
751 + "dependencies": {
752 + "@babel/helper-plugin-utils": "^7.12.13"
753 + },
754 + "peerDependencies": {
755 + "@babel/core": "^7.0.0-0"
756 + }
757 + },
758 + "node_modules/@babel/plugin-transform-async-to-generator": {
759 + "version": "7.12.13",
760 + "dev": true,
761 + "license": "MIT",
762 + "dependencies": {
763 + "@babel/helper-module-imports": "^7.12.13",
764 + "@babel/helper-plugin-utils": "^7.12.13",
765 + "@babel/helper-remap-async-to-generator": "^7.12.13"
766 + },
767 + "peerDependencies": {
768 + "@babel/core": "^7.0.0-0"
769 + }
770 + },
771 + "node_modules/@babel/plugin-transform-block-scoped-functions": {
772 + "version": "7.12.13",
773 + "dev": true,
774 + "license": "MIT",
775 + "dependencies": {
776 + "@babel/helper-plugin-utils": "^7.12.13"
777 + },
778 + "peerDependencies": {
779 + "@babel/core": "^7.0.0-0"
780 + }
781 + },
782 + "node_modules/@babel/plugin-transform-block-scoping": {
783 + "version": "7.12.13",
784 + "dev": true,
785 + "license": "MIT",
786 + "dependencies": {
787 + "@babel/helper-plugin-utils": "^7.12.13"
788 + },
789 + "peerDependencies": {
790 + "@babel/core": "^7.0.0-0"
791 + }
792 + },
793 + "node_modules/@babel/plugin-transform-classes": {
794 + "version": "7.12.13",
795 + "dev": true,
796 + "license": "MIT",
797 + "dependencies": {
798 + "@babel/helper-annotate-as-pure": "^7.12.13",
799 + "@babel/helper-function-name": "^7.12.13",
800 + "@babel/helper-optimise-call-expression": "^7.12.13",
801 + "@babel/helper-plugin-utils": "^7.12.13",
802 + "@babel/helper-replace-supers": "^7.12.13",
803 + "@babel/helper-split-export-declaration": "^7.12.13",
804 + "globals": "^11.1.0"
805 + },
806 + "peerDependencies": {
807 + "@babel/core": "^7.0.0-0"
808 + }
809 + },
810 + "node_modules/@babel/plugin-transform-computed-properties": {
811 + "version": "7.12.13",
812 + "dev": true,
813 + "license": "MIT",
814 + "dependencies": {
815 + "@babel/helper-plugin-utils": "^7.12.13"
816 + },
817 + "peerDependencies": {
818 + "@babel/core": "^7.0.0-0"
819 + }
820 + },
821 + "node_modules/@babel/plugin-transform-destructuring": {
822 + "version": "7.12.13",
823 + "dev": true,
824 + "license": "MIT",
825 + "dependencies": {
826 + "@babel/helper-plugin-utils": "^7.12.13"
827 + },
828 + "peerDependencies": {
829 + "@babel/core": "^7.0.0-0"
830 + }
831 + },
832 + "node_modules/@babel/plugin-transform-dotall-regex": {
833 + "version": "7.12.13",
834 + "dev": true,
835 + "license": "MIT",
836 + "dependencies": {
837 + "@babel/helper-create-regexp-features-plugin": "^7.12.13",
838 + "@babel/helper-plugin-utils": "^7.12.13"
839 + },
840 + "peerDependencies": {
841 + "@babel/core": "^7.0.0-0"
842 + }
843 + },
844 + "node_modules/@babel/plugin-transform-duplicate-keys": {
845 + "version": "7.12.13",
846 + "dev": true,
847 + "license": "MIT",
848 + "dependencies": {
849 + "@babel/helper-plugin-utils": "^7.12.13"
850 + },
851 + "peerDependencies": {
852 + "@babel/core": "^7.0.0-0"
853 + }
854 + },
855 + "node_modules/@babel/plugin-transform-exponentiation-operator": {
856 + "version": "7.12.13",
857 + "dev": true,
858 + "license": "MIT",
859 + "dependencies": {
860 + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.12.13",
861 + "@babel/helper-plugin-utils": "^7.12.13"
862 + },
863 + "peerDependencies": {
864 + "@babel/core": "^7.0.0-0"
865 + }
866 + },
867 + "node_modules/@babel/plugin-transform-for-of": {
868 + "version": "7.12.13",
869 + "dev": true,
870 + "license": "MIT",
871 + "dependencies": {
872 + "@babel/helper-plugin-utils": "^7.12.13"
873 + },
874 + "peerDependencies": {
875 + "@babel/core": "^7.0.0-0"
876 + }
877 + },
878 + "node_modules/@babel/plugin-transform-function-name": {
879 + "version": "7.12.13",
880 + "dev": true,
881 + "license": "MIT",
882 + "dependencies": {
883 + "@babel/helper-function-name": "^7.12.13",
884 + "@babel/helper-plugin-utils": "^7.12.13"
885 + },
886 + "peerDependencies": {
887 + "@babel/core": "^7.0.0-0"
888 + }
889 + },
890 + "node_modules/@babel/plugin-transform-literals": {
891 + "version": "7.12.13",
892 + "dev": true,
893 + "license": "MIT",
894 + "dependencies": {
895 + "@babel/helper-plugin-utils": "^7.12.13"
896 + },
897 + "peerDependencies": {
898 + "@babel/core": "^7.0.0-0"
899 + }
900 + },
901 + "node_modules/@babel/plugin-transform-member-expression-literals": {
902 + "version": "7.12.13",
903 + "dev": true,
904 + "license": "MIT",
905 + "dependencies": {
906 + "@babel/helper-plugin-utils": "^7.12.13"
907 + },
908 + "peerDependencies": {
909 + "@babel/core": "^7.0.0-0"
910 + }
911 + },
912 + "node_modules/@babel/plugin-transform-modules-amd": {
913 + "version": "7.12.13",
914 + "dev": true,
915 + "license": "MIT",
916 + "dependencies": {
917 + "@babel/helper-module-transforms": "^7.12.13",
918 + "@babel/helper-plugin-utils": "^7.12.13",
919 + "babel-plugin-dynamic-import-node": "^2.3.3"
920 + },
921 + "peerDependencies": {
922 + "@babel/core": "^7.0.0-0"
923 + }
924 + },
925 + "node_modules/@babel/plugin-transform-modules-commonjs": {
926 + "version": "7.12.13",
927 + "dev": true,
928 + "license": "MIT",
929 + "dependencies": {
930 + "@babel/helper-module-transforms": "^7.12.13",
931 + "@babel/helper-plugin-utils": "^7.12.13",
932 + "@babel/helper-simple-access": "^7.12.13",
933 + "babel-plugin-dynamic-import-node": "^2.3.3"
934 + },
935 + "peerDependencies": {
936 + "@babel/core": "^7.0.0-0"
937 + }
938 + },
939 + "node_modules/@babel/plugin-transform-modules-systemjs": {
940 + "version": "7.12.13",
941 + "dev": true,
942 + "license": "MIT",
943 + "dependencies": {
944 + "@babel/helper-hoist-variables": "^7.12.13",
945 + "@babel/helper-module-transforms": "^7.12.13",
946 + "@babel/helper-plugin-utils": "^7.12.13",
947 + "@babel/helper-validator-identifier": "^7.12.11",
948 + "babel-plugin-dynamic-import-node": "^2.3.3"
949 + },
950 + "peerDependencies": {
951 + "@babel/core": "^7.0.0-0"
952 + }
953 + },
954 + "node_modules/@babel/plugin-transform-modules-umd": {
955 + "version": "7.12.13",
956 + "dev": true,
957 + "license": "MIT",
958 + "dependencies": {
959 + "@babel/helper-module-transforms": "^7.12.13",
960 + "@babel/helper-plugin-utils": "^7.12.13"
961 + },
962 + "peerDependencies": {
963 + "@babel/core": "^7.0.0-0"
964 + }
965 + },
966 + "node_modules/@babel/plugin-transform-named-capturing-groups-regex": {
967 + "version": "7.12.13",
968 + "dev": true,
969 + "license": "MIT",
970 + "dependencies": {
971 + "@babel/helper-create-regexp-features-plugin": "^7.12.13"
972 + },
973 + "peerDependencies": {
974 + "@babel/core": "^7.0.0"
975 + }
976 + },
977 + "node_modules/@babel/plugin-transform-new-target": {
978 + "version": "7.12.13",
979 + "dev": true,
980 + "license": "MIT",
981 + "dependencies": {
982 + "@babel/helper-plugin-utils": "^7.12.13"
983 + },
984 + "peerDependencies": {
985 + "@babel/core": "^7.0.0-0"
986 + }
987 + },
988 + "node_modules/@babel/plugin-transform-object-super": {
989 + "version": "7.12.13",
990 + "dev": true,
991 + "license": "MIT",
992 + "dependencies": {
993 + "@babel/helper-plugin-utils": "^7.12.13",
994 + "@babel/helper-replace-supers": "^7.12.13"
995 + },
996 + "peerDependencies": {
997 + "@babel/core": "^7.0.0-0"
998 + }
999 + },
1000 + "node_modules/@babel/plugin-transform-parameters": {
1001 + "version": "7.12.13",
1002 + "dev": true,
1003 + "license": "MIT",
1004 + "dependencies": {
1005 + "@babel/helper-plugin-utils": "^7.12.13"
1006 + },
1007 + "peerDependencies": {
1008 + "@babel/core": "^7.0.0-0"
1009 + }
1010 + },
1011 + "node_modules/@babel/plugin-transform-property-literals": {
1012 + "version": "7.12.13",
1013 + "dev": true,
1014 + "license": "MIT",
1015 + "dependencies": {
1016 + "@babel/helper-plugin-utils": "^7.12.13"
1017 + },
1018 + "peerDependencies": {
1019 + "@babel/core": "^7.0.0-0"
1020 + }
1021 + },
1022 + "node_modules/@babel/plugin-transform-react-constant-elements": {
1023 + "version": "7.12.13",
1024 + "dev": true,
1025 + "license": "MIT",
1026 + "dependencies": {
1027 + "@babel/helper-plugin-utils": "^7.12.13"
1028 + },
1029 + "peerDependencies": {
1030 + "@babel/core": "^7.0.0-0"
1031 + }
1032 + },
1033 + "node_modules/@babel/plugin-transform-react-display-name": {
1034 + "version": "7.12.13",
1035 + "dev": true,
1036 + "license": "MIT",
1037 + "dependencies": {
1038 + "@babel/helper-plugin-utils": "^7.12.13"
1039 + },
1040 + "peerDependencies": {
1041 + "@babel/core": "^7.0.0-0"
1042 + }
1043 + },
1044 + "node_modules/@babel/plugin-transform-react-jsx": {
1045 + "version": "7.12.17",
1046 + "dev": true,
1047 + "license": "MIT",
1048 + "dependencies": {
1049 + "@babel/helper-annotate-as-pure": "^7.12.13",
1050 + "@babel/helper-module-imports": "^7.12.13",
1051 + "@babel/helper-plugin-utils": "^7.12.13",
1052 + "@babel/plugin-syntax-jsx": "^7.12.13",
1053 + "@babel/types": "^7.12.17"
1054 + },
1055 + "peerDependencies": {
1056 + "@babel/core": "^7.0.0-0"
1057 + }
1058 + },
1059 + "node_modules/@babel/plugin-transform-react-jsx-development": {
1060 + "version": "7.12.17",
1061 + "dev": true,
1062 + "license": "MIT",
1063 + "dependencies": {
1064 + "@babel/plugin-transform-react-jsx": "^7.12.17"
1065 + },
1066 + "peerDependencies": {
1067 + "@babel/core": "^7.0.0-0"
1068 + }
1069 + },
1070 + "node_modules/@babel/plugin-transform-react-pure-annotations": {
1071 + "version": "7.12.1",
1072 + "dev": true,
1073 + "license": "MIT",
1074 + "dependencies": {
1075 + "@babel/helper-annotate-as-pure": "^7.10.4",
1076 + "@babel/helper-plugin-utils": "^7.10.4"
1077 + },
1078 + "peerDependencies": {
1079 + "@babel/core": "^7.0.0-0"
1080 + }
1081 + },
1082 + "node_modules/@babel/plugin-transform-regenerator": {
1083 + "version": "7.12.13",
1084 + "dev": true,
1085 + "license": "MIT",
1086 + "dependencies": {
1087 + "regenerator-transform": "^0.14.2"
1088 + },
1089 + "peerDependencies": {
1090 + "@babel/core": "^7.0.0-0"
1091 + }
1092 + },
1093 + "node_modules/@babel/plugin-transform-reserved-words": {
1094 + "version": "7.12.13",
1095 + "dev": true,
1096 + "license": "MIT",
1097 + "dependencies": {
1098 + "@babel/helper-plugin-utils": "^7.12.13"
1099 + },
1100 + "peerDependencies": {
1101 + "@babel/core": "^7.0.0-0"
1102 + }
1103 + },
1104 + "node_modules/@babel/plugin-transform-shorthand-properties": {
1105 + "version": "7.12.13",
1106 + "dev": true,
1107 + "license": "MIT",
1108 + "dependencies": {
1109 + "@babel/helper-plugin-utils": "^7.12.13"
1110 + },
1111 + "peerDependencies": {
1112 + "@babel/core": "^7.0.0-0"
1113 + }
1114 + },
1115 + "node_modules/@babel/plugin-transform-spread": {
1116 + "version": "7.12.13",
1117 + "dev": true,
1118 + "license": "MIT",
1119 + "dependencies": {
1120 + "@babel/helper-plugin-utils": "^7.12.13",
1121 + "@babel/helper-skip-transparent-expression-wrappers": "^7.12.1"
1122 + },
1123 + "peerDependencies": {
1124 + "@babel/core": "^7.0.0-0"
1125 + }
1126 + },
1127 + "node_modules/@babel/plugin-transform-sticky-regex": {
1128 + "version": "7.12.13",
1129 + "dev": true,
1130 + "license": "MIT",
1131 + "dependencies": {
1132 + "@babel/helper-plugin-utils": "^7.12.13"
1133 + },
1134 + "peerDependencies": {
1135 + "@babel/core": "^7.0.0-0"
1136 + }
1137 + },
1138 + "node_modules/@babel/plugin-transform-template-literals": {
1139 + "version": "7.12.13",
1140 + "dev": true,
1141 + "license": "MIT",
1142 + "dependencies": {
1143 + "@babel/helper-plugin-utils": "^7.12.13"
1144 + },
1145 + "peerDependencies": {
1146 + "@babel/core": "^7.0.0-0"
1147 + }
1148 + },
1149 + "node_modules/@babel/plugin-transform-typeof-symbol": {
1150 + "version": "7.12.13",
1151 + "dev": true,
1152 + "license": "MIT",
1153 + "dependencies": {
1154 + "@babel/helper-plugin-utils": "^7.12.13"
1155 + },
1156 + "peerDependencies": {
1157 + "@babel/core": "^7.0.0-0"
1158 + }
1159 + },
1160 + "node_modules/@babel/plugin-transform-unicode-escapes": {
1161 + "version": "7.12.13",
1162 + "dev": true,
1163 + "license": "MIT",
1164 + "dependencies": {
1165 + "@babel/helper-plugin-utils": "^7.12.13"
1166 + },
1167 + "peerDependencies": {
1168 + "@babel/core": "^7.0.0-0"
1169 + }
1170 + },
1171 + "node_modules/@babel/plugin-transform-unicode-regex": {
1172 + "version": "7.12.13",
1173 + "dev": true,
1174 + "license": "MIT",
1175 + "dependencies": {
1176 + "@babel/helper-create-regexp-features-plugin": "^7.12.13",
1177 + "@babel/helper-plugin-utils": "^7.12.13"
1178 + },
1179 + "peerDependencies": {
1180 + "@babel/core": "^7.0.0-0"
1181 + }
1182 + },
1183 + "node_modules/@babel/preset-env": {
1184 + "version": "7.12.17",
1185 + "dev": true,
1186 + "license": "MIT",
1187 + "dependencies": {
1188 + "@babel/compat-data": "^7.12.13",
1189 + "@babel/helper-compilation-targets": "^7.12.17",
1190 + "@babel/helper-module-imports": "^7.12.13",
1191 + "@babel/helper-plugin-utils": "^7.12.13",
1192 + "@babel/helper-validator-option": "^7.12.17",
1193 + "@babel/plugin-proposal-async-generator-functions": "^7.12.13",
1194 + "@babel/plugin-proposal-class-properties": "^7.12.13",
1195 + "@babel/plugin-proposal-dynamic-import": "^7.12.17",
1196 + "@babel/plugin-proposal-export-namespace-from": "^7.12.13",
1197 + "@babel/plugin-proposal-json-strings": "^7.12.13",
1198 + "@babel/plugin-proposal-logical-assignment-operators": "^7.12.13",
1199 + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.12.13",
1200 + "@babel/plugin-proposal-numeric-separator": "^7.12.13",
1201 + "@babel/plugin-proposal-object-rest-spread": "^7.12.13",
1202 + "@babel/plugin-proposal-optional-catch-binding": "^7.12.13",
1203 + "@babel/plugin-proposal-optional-chaining": "^7.12.17",
1204 + "@babel/plugin-proposal-private-methods": "^7.12.13",
1205 + "@babel/plugin-proposal-unicode-property-regex": "^7.12.13",
1206 + "@babel/plugin-syntax-async-generators": "^7.8.0",
1207 + "@babel/plugin-syntax-class-properties": "^7.12.13",
1208 + "@babel/plugin-syntax-dynamic-import": "^7.8.0",
1209 + "@babel/plugin-syntax-export-namespace-from": "^7.8.3",
1210 + "@babel/plugin-syntax-json-strings": "^7.8.0",
1211 + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4",
1212 + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0",
1213 + "@babel/plugin-syntax-numeric-separator": "^7.10.4",
1214 + "@babel/plugin-syntax-object-rest-spread": "^7.8.0",
1215 + "@babel/plugin-syntax-optional-catch-binding": "^7.8.0",
1216 + "@babel/plugin-syntax-optional-chaining": "^7.8.0",
1217 + "@babel/plugin-syntax-top-level-await": "^7.12.13",
1218 + "@babel/plugin-transform-arrow-functions": "^7.12.13",
1219 + "@babel/plugin-transform-async-to-generator": "^7.12.13",
1220 + "@babel/plugin-transform-block-scoped-functions": "^7.12.13",
1221 + "@babel/plugin-transform-block-scoping": "^7.12.13",
1222 + "@babel/plugin-transform-classes": "^7.12.13",
1223 + "@babel/plugin-transform-computed-properties": "^7.12.13",
1224 + "@babel/plugin-transform-destructuring": "^7.12.13",
1225 + "@babel/plugin-transform-dotall-regex": "^7.12.13",
1226 + "@babel/plugin-transform-duplicate-keys": "^7.12.13",
1227 + "@babel/plugin-transform-exponentiation-operator": "^7.12.13",
1228 + "@babel/plugin-transform-for-of": "^7.12.13",
1229 + "@babel/plugin-transform-function-name": "^7.12.13",
1230 + "@babel/plugin-transform-literals": "^7.12.13",
1231 + "@babel/plugin-transform-member-expression-literals": "^7.12.13",
1232 + "@babel/plugin-transform-modules-amd": "^7.12.13",
1233 + "@babel/plugin-transform-modules-commonjs": "^7.12.13",
1234 + "@babel/plugin-transform-modules-systemjs": "^7.12.13",
1235 + "@babel/plugin-transform-modules-umd": "^7.12.13",
1236 + "@babel/plugin-transform-named-capturing-groups-regex": "^7.12.13",
1237 + "@babel/plugin-transform-new-target": "^7.12.13",
1238 + "@babel/plugin-transform-object-super": "^7.12.13",
1239 + "@babel/plugin-transform-parameters": "^7.12.13",
1240 + "@babel/plugin-transform-property-literals": "^7.12.13",
1241 + "@babel/plugin-transform-regenerator": "^7.12.13",
1242 + "@babel/plugin-transform-reserved-words": "^7.12.13",
1243 + "@babel/plugin-transform-shorthand-properties": "^7.12.13",
1244 + "@babel/plugin-transform-spread": "^7.12.13",
1245 + "@babel/plugin-transform-sticky-regex": "^7.12.13",
1246 + "@babel/plugin-transform-template-literals": "^7.12.13",
1247 + "@babel/plugin-transform-typeof-symbol": "^7.12.13",
1248 + "@babel/plugin-transform-unicode-escapes": "^7.12.13",
1249 + "@babel/plugin-transform-unicode-regex": "^7.12.13",
1250 + "@babel/preset-modules": "^0.1.3",
1251 + "@babel/types": "^7.12.17",
1252 + "core-js-compat": "^3.8.0",
1253 + "semver": "^5.5.0"
1254 + },
1255 + "peerDependencies": {
1256 + "@babel/core": "^7.0.0-0"
1257 + }
1258 + },
1259 + "node_modules/@babel/preset-modules": {
1260 + "version": "0.1.4",
1261 + "dev": true,
1262 + "license": "MIT",
1263 + "dependencies": {
1264 + "@babel/helper-plugin-utils": "^7.0.0",
1265 + "@babel/plugin-proposal-unicode-property-regex": "^7.4.4",
1266 + "@babel/plugin-transform-dotall-regex": "^7.4.4",
1267 + "@babel/types": "^7.4.4",
1268 + "esutils": "^2.0.2"
1269 + },
1270 + "peerDependencies": {
1271 + "@babel/core": "^7.0.0-0"
1272 + }
1273 + },
1274 + "node_modules/@babel/preset-react": {
1275 + "version": "7.12.13",
1276 + "dev": true,
1277 + "license": "MIT",
1278 + "dependencies": {
1279 + "@babel/helper-plugin-utils": "^7.12.13",
1280 + "@babel/plugin-transform-react-display-name": "^7.12.13",
1281 + "@babel/plugin-transform-react-jsx": "^7.12.13",
1282 + "@babel/plugin-transform-react-jsx-development": "^7.12.12",
1283 + "@babel/plugin-transform-react-pure-annotations": "^7.12.1"
1284 + },
1285 + "peerDependencies": {
1286 + "@babel/core": "^7.0.0-0"
1287 + }
1288 + },
1289 + "node_modules/@babel/runtime": {
1290 + "version": "7.12.18",
1291 + "license": "MIT",
1292 + "dependencies": {
1293 + "regenerator-runtime": "^0.13.4"
1294 + }
1295 + },
1296 + "node_modules/@babel/runtime-corejs3": {
1297 + "version": "7.12.18",
1298 + "dev": true,
1299 + "license": "MIT",
1300 + "dependencies": {
1301 + "core-js-pure": "^3.0.0",
1302 + "regenerator-runtime": "^0.13.4"
1303 + }
1304 + },
1305 + "node_modules/@babel/template": {
1306 + "version": "7.12.13",
1307 + "dev": true,
1308 + "license": "MIT",
1309 + "dependencies": {
1310 + "@babel/code-frame": "^7.12.13",
1311 + "@babel/parser": "^7.12.13",
1312 + "@babel/types": "^7.12.13"
1313 + }
1314 + },
1315 + "node_modules/@babel/traverse": {
1316 + "version": "7.12.17",
1317 + "dev": true,
1318 + "license": "MIT",
1319 + "dependencies": {
1320 + "@babel/code-frame": "^7.12.13",
1321 + "@babel/generator": "^7.12.17",
1322 + "@babel/helper-function-name": "^7.12.13",
1323 + "@babel/helper-split-export-declaration": "^7.12.13",
1324 + "@babel/parser": "^7.12.17",
1325 + "@babel/types": "^7.12.17",
1326 + "debug": "^4.1.0",
1327 + "globals": "^11.1.0",
1328 + "lodash": "^4.17.19"
1329 + }
1330 + },
1331 + "node_modules/@babel/types": {
1332 + "version": "7.12.17",
1333 + "dev": true,
1334 + "license": "MIT",
1335 + "dependencies": {
1336 + "@babel/helper-validator-identifier": "^7.12.11",
1337 + "lodash": "^4.17.19",
1338 + "to-fast-properties": "^2.0.0"
1339 + }
1340 + },
1341 + "node_modules/@bcoe/v8-coverage": {
1342 + "version": "0.2.3",
1343 + "dev": true,
1344 + "license": "MIT"
1345 + },
1346 + "node_modules/@cnakazawa/watch": {
1347 + "version": "1.0.4",
1348 + "dev": true,
1349 + "license": "Apache-2.0",
1350 + "dependencies": {
1351 + "exec-sh": "^0.3.2",
1352 + "minimist": "^1.2.0"
1353 + },
1354 + "bin": {
1355 + "watch": "cli.js"
1356 + },
1357 + "engines": {
1358 + "node": ">=0.1.95"
1359 + }
1360 + },
1361 + "node_modules/@csstools/convert-colors": {
1362 + "version": "1.4.0",
1363 + "dev": true,
1364 + "license": "CC0-1.0",
1365 + "engines": {
1366 + "node": ">=4.0.0"
1367 + }
1368 + },
1369 + "node_modules/@csstools/normalize.css": {
1370 + "version": "10.1.0",
1371 + "dev": true,
1372 + "license": "CC0-1.0"
1373 + },
1374 + "node_modules/@eslint/eslintrc": {
1375 + "version": "0.3.0",
1376 + "dev": true,
1377 + "license": "MIT",
1378 + "dependencies": {
1379 + "ajv": "^6.12.4",
1380 + "debug": "^4.1.1",
1381 + "espree": "^7.3.0",
1382 + "globals": "^12.1.0",
1383 + "ignore": "^4.0.6",
1384 + "import-fresh": "^3.2.1",
1385 + "js-yaml": "^3.13.1",
1386 + "lodash": "^4.17.20",
1387 + "minimatch": "^3.0.4",
1388 + "strip-json-comments": "^3.1.1"
1389 + },
1390 + "engines": {
1391 + "node": "^10.12.0 || >=12.0.0"
1392 + }
1393 + },
1394 + "node_modules/@eslint/eslintrc/node_modules/globals": {
1395 + "version": "12.4.0",
1396 + "dev": true,
1397 + "license": "MIT",
1398 + "dependencies": {
1399 + "type-fest": "^0.8.1"
1400 + },
1401 + "engines": {
1402 + "node": ">=8"
1403 + },
1404 + "funding": {
1405 + "url": "https://github.com/sponsors/sindresorhus"
1406 + }
1407 + },
1408 + "node_modules/@hapi/address": {
1409 + "version": "2.1.4",
1410 + "dev": true,
1411 + "license": "BSD-3-Clause"
1412 + },
1413 + "node_modules/@hapi/bourne": {
1414 + "version": "1.3.2",
1415 + "dev": true,
1416 + "license": "BSD-3-Clause"
1417 + },
1418 + "node_modules/@hapi/hoek": {
1419 + "version": "8.5.1",
1420 + "dev": true,
1421 + "license": "BSD-3-Clause"
1422 + },
1423 + "node_modules/@hapi/joi": {
1424 + "version": "15.1.1",
1425 + "dev": true,
1426 + "license": "BSD-3-Clause",
1427 + "dependencies": {
1428 + "@hapi/address": "2.x.x",
1429 + "@hapi/bourne": "1.x.x",
1430 + "@hapi/hoek": "8.x.x",
1431 + "@hapi/topo": "3.x.x"
1432 + }
1433 + },
1434 + "node_modules/@hapi/topo": {
1435 + "version": "3.1.6",
1436 + "dev": true,
1437 + "license": "BSD-3-Clause",
1438 + "dependencies": {
1439 + "@hapi/hoek": "^8.3.0"
1440 + }
1441 + },
1442 + "node_modules/@istanbuljs/load-nyc-config": {
1443 + "version": "1.1.0",
1444 + "dev": true,
1445 + "license": "ISC",
1446 + "dependencies": {
1447 + "camelcase": "^5.3.1",
1448 + "find-up": "^4.1.0",
1449 + "get-package-type": "^0.1.0",
1450 + "js-yaml": "^3.13.1",
1451 + "resolve-from": "^5.0.0"
1452 + },
1453 + "engines": {
1454 + "node": ">=8"
1455 + }
1456 + },
1457 + "node_modules/@istanbuljs/load-nyc-config/node_modules/resolve-from": {
1458 + "version": "5.0.0",
1459 + "dev": true,
1460 + "license": "MIT",
1461 + "engines": {
1462 + "node": ">=8"
1463 + }
1464 + },
1465 + "node_modules/@istanbuljs/schema": {
1466 + "version": "0.1.3",
1467 + "dev": true,
1468 + "license": "MIT",
1469 + "engines": {
1470 + "node": ">=8"
1471 + }
1472 + },
1473 + "node_modules/@jest/console": {
1474 + "version": "26.6.2",
1475 + "dev": true,
1476 + "license": "MIT",
1477 + "dependencies": {
1478 + "@jest/types": "^26.6.2",
1479 + "@types/node": "*",
1480 + "chalk": "^4.0.0",
1481 + "jest-message-util": "^26.6.2",
1482 + "jest-util": "^26.6.2",
1483 + "slash": "^3.0.0"
1484 + },
1485 + "engines": {
1486 + "node": ">= 10.14.2"
1487 + }
1488 + },
1489 + "node_modules/@jest/console/node_modules/@types/node": {
1490 + "version": "14.14.31",
1491 + "dev": true,
1492 + "license": "MIT"
1493 + },
1494 + "node_modules/@jest/core": {
1495 + "version": "26.6.3",
1496 + "dev": true,
1497 + "license": "MIT",
1498 + "dependencies": {
1499 + "@jest/console": "^26.6.2",
1500 + "@jest/reporters": "^26.6.2",
1501 + "@jest/test-result": "^26.6.2",
1502 + "@jest/transform": "^26.6.2",
1503 + "@jest/types": "^26.6.2",
1504 + "@types/node": "*",
1505 + "ansi-escapes": "^4.2.1",
1506 + "chalk": "^4.0.0",
1507 + "exit": "^0.1.2",
1508 + "graceful-fs": "^4.2.4",
1509 + "jest-changed-files": "^26.6.2",
1510 + "jest-config": "^26.6.3",
1511 + "jest-haste-map": "^26.6.2",
1512 + "jest-message-util": "^26.6.2",
1513 + "jest-regex-util": "^26.0.0",
1514 + "jest-resolve": "^26.6.2",
1515 + "jest-resolve-dependencies": "^26.6.3",
1516 + "jest-runner": "^26.6.3",
1517 + "jest-runtime": "^26.6.3",
1518 + "jest-snapshot": "^26.6.2",
1519 + "jest-util": "^26.6.2",
1520 + "jest-validate": "^26.6.2",
1521 + "jest-watcher": "^26.6.2",
1522 + "micromatch": "^4.0.2",
1523 + "p-each-series": "^2.1.0",
1524 + "rimraf": "^3.0.0",
1525 + "slash": "^3.0.0",
1526 + "strip-ansi": "^6.0.0"
1527 + },
1528 + "engines": {
1529 + "node": ">= 10.14.2"
1530 + }
1531 + },
1532 + "node_modules/@jest/core/node_modules/@types/node": {
1533 + "version": "14.14.31",
1534 + "dev": true,
1535 + "license": "MIT"
1536 + },
1537 + "node_modules/@jest/core/node_modules/rimraf": {
1538 + "version": "3.0.2",
1539 + "dev": true,
1540 + "license": "ISC",
1541 + "dependencies": {
1542 + "glob": "^7.1.3"
1543 + },
1544 + "bin": {
1545 + "rimraf": "bin.js"
1546 + },
1547 + "funding": {
1548 + "url": "https://github.com/sponsors/isaacs"
1549 + }
1550 + },
1551 + "node_modules/@jest/environment": {
1552 + "version": "26.6.2",
1553 + "dev": true,
1554 + "license": "MIT",
1555 + "dependencies": {
1556 + "@jest/fake-timers": "^26.6.2",
1557 + "@jest/types": "^26.6.2",
1558 + "@types/node": "*",
1559 + "jest-mock": "^26.6.2"
1560 + },
1561 + "engines": {
1562 + "node": ">= 10.14.2"
1563 + }
1564 + },
1565 + "node_modules/@jest/environment/node_modules/@types/node": {
1566 + "version": "14.14.31",
1567 + "dev": true,
1568 + "license": "MIT"
1569 + },
1570 + "node_modules/@jest/fake-timers": {
1571 + "version": "26.6.2",
1572 + "dev": true,
1573 + "license": "MIT",
1574 + "dependencies": {
1575 + "@jest/types": "^26.6.2",
1576 + "@sinonjs/fake-timers": "^6.0.1",
1577 + "@types/node": "*",
1578 + "jest-message-util": "^26.6.2",
1579 + "jest-mock": "^26.6.2",
1580 + "jest-util": "^26.6.2"
1581 + },
1582 + "engines": {
1583 + "node": ">= 10.14.2"
1584 + }
1585 + },
1586 + "node_modules/@jest/fake-timers/node_modules/@types/node": {
1587 + "version": "14.14.31",
1588 + "dev": true,
1589 + "license": "MIT"
1590 + },
1591 + "node_modules/@jest/globals": {
1592 + "version": "26.6.2",
1593 + "dev": true,
1594 + "license": "MIT",
1595 + "dependencies": {
1596 + "@jest/environment": "^26.6.2",
1597 + "@jest/types": "^26.6.2",
1598 + "expect": "^26.6.2"
1599 + },
1600 + "engines": {
1601 + "node": ">= 10.14.2"
1602 + }
1603 + },
1604 + "node_modules/@jest/reporters": {
1605 + "version": "26.6.2",
1606 + "dev": true,
1607 + "license": "MIT",
1608 + "dependencies": {
1609 + "@bcoe/v8-coverage": "^0.2.3",
1610 + "@jest/console": "^26.6.2",
1611 + "@jest/test-result": "^26.6.2",
1612 + "@jest/transform": "^26.6.2",
1613 + "@jest/types": "^26.6.2",
1614 + "chalk": "^4.0.0",
1615 + "collect-v8-coverage": "^1.0.0",
1616 + "exit": "^0.1.2",
1617 + "glob": "^7.1.2",
1618 + "graceful-fs": "^4.2.4",
1619 + "istanbul-lib-coverage": "^3.0.0",
1620 + "istanbul-lib-instrument": "^4.0.3",
1621 + "istanbul-lib-report": "^3.0.0",
1622 + "istanbul-lib-source-maps": "^4.0.0",
1623 + "istanbul-reports": "^3.0.2",
1624 + "jest-haste-map": "^26.6.2",
1625 + "jest-resolve": "^26.6.2",
1626 + "jest-util": "^26.6.2",
1627 + "jest-worker": "^26.6.2",
1628 + "slash": "^3.0.0",
1629 + "source-map": "^0.6.0",
1630 + "string-length": "^4.0.1",
1631 + "terminal-link": "^2.0.0",
1632 + "v8-to-istanbul": "^7.0.0"
1633 + },
1634 + "engines": {
1635 + "node": ">= 10.14.2"
1636 + },
1637 + "optionalDependencies": {
1638 + "node-notifier": "^8.0.0"
1639 + }
1640 + },
1641 + "node_modules/@jest/source-map": {
1642 + "version": "26.6.2",
1643 + "dev": true,
1644 + "license": "MIT",
1645 + "dependencies": {
1646 + "callsites": "^3.0.0",
1647 + "graceful-fs": "^4.2.4",
1648 + "source-map": "^0.6.0"
1649 + },
1650 + "engines": {
1651 + "node": ">= 10.14.2"
1652 + }
1653 + },
1654 + "node_modules/@jest/test-result": {
1655 + "version": "26.6.2",
1656 + "dev": true,
1657 + "license": "MIT",
1658 + "dependencies": {
1659 + "@jest/console": "^26.6.2",
1660 + "@jest/types": "^26.6.2",
1661 + "@types/istanbul-lib-coverage": "^2.0.0",
1662 + "collect-v8-coverage": "^1.0.0"
1663 + },
1664 + "engines": {
1665 + "node": ">= 10.14.2"
1666 + }
1667 + },
1668 + "node_modules/@jest/test-sequencer": {
1669 + "version": "26.6.3",
1670 + "dev": true,
1671 + "license": "MIT",
1672 + "dependencies": {
1673 + "@jest/test-result": "^26.6.2",
1674 + "graceful-fs": "^4.2.4",
1675 + "jest-haste-map": "^26.6.2",
1676 + "jest-runner": "^26.6.3",
1677 + "jest-runtime": "^26.6.3"
1678 + },
1679 + "engines": {
1680 + "node": ">= 10.14.2"
1681 + }
1682 + },
1683 + "node_modules/@jest/transform": {
1684 + "version": "26.6.2",
1685 + "dev": true,
1686 + "license": "MIT",
1687 + "dependencies": {
1688 + "@babel/core": "^7.1.0",
1689 + "@jest/types": "^26.6.2",
1690 + "babel-plugin-istanbul": "^6.0.0",
1691 + "chalk": "^4.0.0",
1692 + "convert-source-map": "^1.4.0",
1693 + "fast-json-stable-stringify": "^2.0.0",
1694 + "graceful-fs": "^4.2.4",
1695 + "jest-haste-map": "^26.6.2",
1696 + "jest-regex-util": "^26.0.0",
1697 + "jest-util": "^26.6.2",
1698 + "micromatch": "^4.0.2",
1699 + "pirates": "^4.0.1",
1700 + "slash": "^3.0.0",
1701 + "source-map": "^0.6.1",
1702 + "write-file-atomic": "^3.0.0"
1703 + },
1704 + "engines": {
1705 + "node": ">= 10.14.2"
1706 + }
1707 + },
1708 + "node_modules/@jest/types": {
1709 + "version": "26.6.2",
1710 + "dev": true,
1711 + "license": "MIT",
1712 + "dependencies": {
1713 + "@types/istanbul-lib-coverage": "^2.0.0",
1714 + "@types/istanbul-reports": "^3.0.0",
1715 + "@types/node": "*",
1716 + "@types/yargs": "^15.0.0",
1717 + "chalk": "^4.0.0"
1718 + },
1719 + "engines": {
1720 + "node": ">= 10.14.2"
1721 + }
1722 + },
1723 + "node_modules/@jest/types/node_modules/@types/node": {
1724 + "version": "14.14.31",
1725 + "dev": true,
1726 + "license": "MIT"
1727 + },
1728 + "node_modules/@nodelib/fs.scandir": {
1729 + "version": "2.1.4",
1730 + "dev": true,
1731 + "license": "MIT",
1732 + "dependencies": {
1733 + "@nodelib/fs.stat": "2.0.4",
1734 + "run-parallel": "^1.1.9"
1735 + },
1736 + "engines": {
1737 + "node": ">= 8"
1738 + }
1739 + },
1740 + "node_modules/@nodelib/fs.stat": {
1741 + "version": "2.0.4",
1742 + "dev": true,
1743 + "license": "MIT",
1744 + "engines": {
1745 + "node": ">= 8"
1746 + }
1747 + },
1748 + "node_modules/@nodelib/fs.walk": {
1749 + "version": "1.2.6",
1750 + "dev": true,
1751 + "license": "MIT",
1752 + "dependencies": {
1753 + "@nodelib/fs.scandir": "2.1.4",
1754 + "fastq": "^1.6.0"
1755 + },
1756 + "engines": {
1757 + "node": ">= 8"
1758 + }
1759 + },
1760 + "node_modules/@npmcli/move-file": {
1761 + "version": "1.1.2",
1762 + "dev": true,
1763 + "license": "MIT",
1764 + "dependencies": {
1765 + "mkdirp": "^1.0.4",
1766 + "rimraf": "^3.0.2"
1767 + },
1768 + "engines": {
1769 + "node": ">=10"
1770 + }
1771 + },
1772 + "node_modules/@npmcli/move-file/node_modules/mkdirp": {
1773 + "version": "1.0.4",
1774 + "dev": true,
1775 + "license": "MIT",
1776 + "bin": {
1777 + "mkdirp": "bin/cmd.js"
1778 + },
1779 + "engines": {
1780 + "node": ">=10"
1781 + }
1782 + },
1783 + "node_modules/@npmcli/move-file/node_modules/rimraf": {
1784 + "version": "3.0.2",
1785 + "dev": true,
1786 + "license": "ISC",
1787 + "dependencies": {
1788 + "glob": "^7.1.3"
1789 + },
1790 + "bin": {
1791 + "rimraf": "bin.js"
1792 + },
1793 + "funding": {
1794 + "url": "https://github.com/sponsors/isaacs"
1795 + }
1796 + },
1797 + "node_modules/@pmmmwh/react-refresh-webpack-plugin": {
1798 + "version": "0.4.3",
1799 + "dev": true,
1800 + "license": "MIT",
1801 + "dependencies": {
1802 + "ansi-html": "^0.0.7",
1803 + "error-stack-parser": "^2.0.6",
1804 + "html-entities": "^1.2.1",
1805 + "native-url": "^0.2.6",
1806 + "schema-utils": "^2.6.5",
1807 + "source-map": "^0.7.3"
1808 + },
1809 + "engines": {
1810 + "node": ">= 10.x"
1811 + },
1812 + "peerDependencies": {
1813 + "@types/webpack": "4.x",
1814 + "react-refresh": ">=0.8.3 <0.10.0",
1815 + "sockjs-client": "^1.4.0",
1816 + "type-fest": "^0.13.1",
1817 + "webpack": ">=4.43.0 <6.0.0",
1818 + "webpack-dev-server": "3.x",
1819 + "webpack-hot-middleware": "2.x",
1820 + "webpack-plugin-serve": "0.x || 1.x"
1821 + },
1822 + "peerDependenciesMeta": {
1823 + "@types/webpack": {
1824 + "optional": true
1825 + },
1826 + "sockjs-client": {
1827 + "optional": true
1828 + },
1829 + "type-fest": {
1830 + "optional": true
1831 + },
1832 + "webpack-dev-server": {
1833 + "optional": true
1834 + },
1835 + "webpack-hot-middleware": {
1836 + "optional": true
1837 + },
1838 + "webpack-plugin-serve": {
1839 + "optional": true
1840 + }
1841 + }
1842 + },
1843 + "node_modules/@pmmmwh/react-refresh-webpack-plugin/node_modules/schema-utils": {
1844 + "version": "2.7.1",
1845 + "dev": true,
1846 + "license": "MIT",
1847 + "dependencies": {
1848 + "@types/json-schema": "^7.0.5",
1849 + "ajv": "^6.12.4",
1850 + "ajv-keywords": "^3.5.2"
1851 + },
1852 + "engines": {
1853 + "node": ">= 8.9.0"
1854 + },
1855 + "funding": {
1856 + "type": "opencollective",
1857 + "url": "https://opencollective.com/webpack"
1858 + }
1859 + },
1860 + "node_modules/@pmmmwh/react-refresh-webpack-plugin/node_modules/source-map": {
1861 + "version": "0.7.3",
1862 + "dev": true,
1863 + "license": "BSD-3-Clause",
1864 + "engines": {
1865 + "node": ">= 8"
1866 + }
1867 + },
1868 + "node_modules/@rollup/plugin-node-resolve": {
1869 + "version": "7.1.3",
1870 + "dev": true,
1871 + "license": "MIT",
1872 + "dependencies": {
1873 + "@rollup/pluginutils": "^3.0.8",
1874 + "@types/resolve": "0.0.8",
1875 + "builtin-modules": "^3.1.0",
1876 + "is-module": "^1.0.0",
1877 + "resolve": "^1.14.2"
1878 + },
1879 + "engines": {
1880 + "node": ">= 8.0.0"
1881 + },
1882 + "peerDependencies": {
1883 + "rollup": "^1.20.0||^2.0.0"
1884 + }
1885 + },
1886 + "node_modules/@rollup/plugin-replace": {
1887 + "version": "2.4.1",
1888 + "dev": true,
1889 + "license": "MIT",
1890 + "dependencies": {
1891 + "@rollup/pluginutils": "^3.1.0",
1892 + "magic-string": "^0.25.7"
1893 + },
1894 + "peerDependencies": {
1895 + "rollup": "^1.20.0 || ^2.0.0"
1896 + }
1897 + },
1898 + "node_modules/@rollup/pluginutils": {
1899 + "version": "3.1.0",
1900 + "dev": true,
1901 + "license": "MIT",
1902 + "dependencies": {
1903 + "@types/estree": "0.0.39",
1904 + "estree-walker": "^1.0.1",
1905 + "picomatch": "^2.2.2"
1906 + },
1907 + "engines": {
1908 + "node": ">= 8.0.0"
1909 + },
1910 + "peerDependencies": {
1911 + "rollup": "^1.20.0||^2.0.0"
1912 + }
1913 + },
1914 + "node_modules/@rollup/pluginutils/node_modules/@types/estree": {
1915 + "version": "0.0.39",
1916 + "dev": true,
1917 + "license": "MIT"
1918 + },
1919 + "node_modules/@rollup/pluginutils/node_modules/estree-walker": {
1920 + "version": "1.0.1",
1921 + "dev": true,
1922 + "license": "MIT"
1923 + },
1924 + "node_modules/@sinonjs/commons": {
1925 + "version": "1.8.2",
1926 + "dev": true,
1927 + "license": "BSD-3-Clause",
1928 + "dependencies": {
1929 + "type-detect": "4.0.8"
1930 + }
1931 + },
1932 + "node_modules/@sinonjs/fake-timers": {
1933 + "version": "6.0.1",
1934 + "dev": true,
1935 + "license": "BSD-3-Clause",
1936 + "dependencies": {
1937 + "@sinonjs/commons": "^1.7.0"
1938 + }
1939 + },
1940 + "node_modules/@surma/rollup-plugin-off-main-thread": {
1941 + "version": "1.4.2",
1942 + "dev": true,
1943 + "license": "Apache-2.0",
1944 + "dependencies": {
1945 + "ejs": "^2.6.1",
1946 + "magic-string": "^0.25.0"
1947 + }
1948 + },
1949 + "node_modules/@svgr/babel-plugin-add-jsx-attribute": {
1950 + "version": "5.4.0",
1951 + "dev": true,
1952 + "license": "MIT",
1953 + "engines": {
1954 + "node": ">=10"
1955 + },
1956 + "funding": {
1957 + "type": "github",
1958 + "url": "https://github.com/sponsors/gregberge"
1959 + }
1960 + },
1961 + "node_modules/@svgr/babel-plugin-remove-jsx-attribute": {
1962 + "version": "5.4.0",
1963 + "dev": true,
1964 + "license": "MIT",
1965 + "engines": {
1966 + "node": ">=10"
1967 + },
1968 + "funding": {
1969 + "type": "github",
1970 + "url": "https://github.com/sponsors/gregberge"
1971 + }
1972 + },
1973 + "node_modules/@svgr/babel-plugin-remove-jsx-empty-expression": {
1974 + "version": "5.0.1",
1975 + "dev": true,
1976 + "license": "MIT",
1977 + "engines": {
1978 + "node": ">=10"
1979 + },
1980 + "funding": {
1981 + "type": "github",
1982 + "url": "https://github.com/sponsors/gregberge"
1983 + }
1984 + },
1985 + "node_modules/@svgr/babel-plugin-replace-jsx-attribute-value": {
1986 + "version": "5.0.1",
1987 + "dev": true,
1988 + "license": "MIT",
1989 + "engines": {
1990 + "node": ">=10"
1991 + },
1992 + "funding": {
1993 + "type": "github",
1994 + "url": "https://github.com/sponsors/gregberge"
1995 + }
1996 + },
1997 + "node_modules/@svgr/babel-plugin-svg-dynamic-title": {
1998 + "version": "5.4.0",
1999 + "dev": true,
2000 + "license": "MIT",
2001 + "engines": {
2002 + "node": ">=10"
2003 + },
2004 + "funding": {
2005 + "type": "github",
2006 + "url": "https://github.com/sponsors/gregberge"
2007 + }
2008 + },
2009 + "node_modules/@svgr/babel-plugin-svg-em-dimensions": {
2010 + "version": "5.4.0",
2011 + "dev": true,
2012 + "license": "MIT",
2013 + "engines": {
2014 + "node": ">=10"
2015 + },
2016 + "funding": {
2017 + "type": "github",
2018 + "url": "https://github.com/sponsors/gregberge"
2019 + }
2020 + },
2021 + "node_modules/@svgr/babel-plugin-transform-react-native-svg": {
2022 + "version": "5.4.0",
2023 + "dev": true,
2024 + "license": "MIT",
2025 + "engines": {
2026 + "node": ">=10"
2027 + },
2028 + "funding": {
2029 + "type": "github",
2030 + "url": "https://github.com/sponsors/gregberge"
2031 + }
2032 + },
2033 + "node_modules/@svgr/babel-plugin-transform-svg-component": {
2034 + "version": "5.5.0",
2035 + "dev": true,
2036 + "license": "MIT",
2037 + "engines": {
2038 + "node": ">=10"
2039 + },
2040 + "funding": {
2041 + "type": "github",
2042 + "url": "https://github.com/sponsors/gregberge"
2043 + }
2044 + },
2045 + "node_modules/@svgr/babel-preset": {
2046 + "version": "5.5.0",
2047 + "dev": true,
2048 + "license": "MIT",
2049 + "dependencies": {
2050 + "@svgr/babel-plugin-add-jsx-attribute": "^5.4.0",
2051 + "@svgr/babel-plugin-remove-jsx-attribute": "^5.4.0",
2052 + "@svgr/babel-plugin-remove-jsx-empty-expression": "^5.0.1",
2053 + "@svgr/babel-plugin-replace-jsx-attribute-value": "^5.0.1",
2054 + "@svgr/babel-plugin-svg-dynamic-title": "^5.4.0",
2055 + "@svgr/babel-plugin-svg-em-dimensions": "^5.4.0",
2056 + "@svgr/babel-plugin-transform-react-native-svg": "^5.4.0",
2057 + "@svgr/babel-plugin-transform-svg-component": "^5.5.0"
2058 + },
2059 + "engines": {
2060 + "node": ">=10"
2061 + },
2062 + "funding": {
2063 + "type": "github",
2064 + "url": "https://github.com/sponsors/gregberge"
2065 + }
2066 + },
2067 + "node_modules/@svgr/core": {
2068 + "version": "5.5.0",
2069 + "dev": true,
2070 + "license": "MIT",
2071 + "dependencies": {
2072 + "@svgr/plugin-jsx": "^5.5.0",
2073 + "camelcase": "^6.2.0",
2074 + "cosmiconfig": "^7.0.0"
2075 + },
2076 + "engines": {
2077 + "node": ">=10"
2078 + },
2079 + "funding": {
2080 + "type": "github",
2081 + "url": "https://github.com/sponsors/gregberge"
2082 + }
2083 + },
2084 + "node_modules/@svgr/core/node_modules/camelcase": {
2085 + "version": "6.2.0",
2086 + "dev": true,
2087 + "license": "MIT",
2088 + "engines": {
2089 + "node": ">=10"
2090 + },
2091 + "funding": {
2092 + "url": "https://github.com/sponsors/sindresorhus"
2093 + }
2094 + },
2095 + "node_modules/@svgr/core/node_modules/cosmiconfig": {
2096 + "version": "7.0.0",
2097 + "dev": true,
2098 + "license": "MIT",
2099 + "dependencies": {
2100 + "@types/parse-json": "^4.0.0",
2101 + "import-fresh": "^3.2.1",
2102 + "parse-json": "^5.0.0",
2103 + "path-type": "^4.0.0",
2104 + "yaml": "^1.10.0"
2105 + },
2106 + "engines": {
2107 + "node": ">=10"
2108 + }
2109 + },
2110 + "node_modules/@svgr/hast-util-to-babel-ast": {
2111 + "version": "5.5.0",
2112 + "dev": true,
2113 + "license": "MIT",
2114 + "dependencies": {
2115 + "@babel/types": "^7.12.6"
2116 + },
2117 + "engines": {
2118 + "node": ">=10"
2119 + },
2120 + "funding": {
2121 + "type": "github",
2122 + "url": "https://github.com/sponsors/gregberge"
2123 + }
2124 + },
2125 + "node_modules/@svgr/plugin-jsx": {
2126 + "version": "5.5.0",
2127 + "dev": true,
2128 + "license": "MIT",
2129 + "dependencies": {
2130 + "@babel/core": "^7.12.3",
2131 + "@svgr/babel-preset": "^5.5.0",
2132 + "@svgr/hast-util-to-babel-ast": "^5.5.0",
2133 + "svg-parser": "^2.0.2"
2134 + },
2135 + "engines": {
2136 + "node": ">=10"
2137 + },
2138 + "funding": {
2139 + "type": "github",
2140 + "url": "https://github.com/sponsors/gregberge"
2141 + }
2142 + },
2143 + "node_modules/@svgr/plugin-svgo": {
2144 + "version": "5.5.0",
2145 + "dev": true,
2146 + "license": "MIT",
2147 + "dependencies": {
2148 + "cosmiconfig": "^7.0.0",
2149 + "deepmerge": "^4.2.2",
2150 + "svgo": "^1.2.2"
2151 + },
2152 + "engines": {
2153 + "node": ">=10"
2154 + },
2155 + "funding": {
2156 + "type": "github",
2157 + "url": "https://github.com/sponsors/gregberge"
2158 + }
2159 + },
2160 + "node_modules/@svgr/plugin-svgo/node_modules/cosmiconfig": {
2161 + "version": "7.0.0",
2162 + "dev": true,
2163 + "license": "MIT",
2164 + "dependencies": {
2165 + "@types/parse-json": "^4.0.0",
2166 + "import-fresh": "^3.2.1",
2167 + "parse-json": "^5.0.0",
2168 + "path-type": "^4.0.0",
2169 + "yaml": "^1.10.0"
2170 + },
2171 + "engines": {
2172 + "node": ">=10"
2173 + }
2174 + },
2175 + "node_modules/@svgr/webpack": {
2176 + "version": "5.5.0",
2177 + "dev": true,
2178 + "license": "MIT",
2179 + "dependencies": {
2180 + "@babel/core": "^7.12.3",
2181 + "@babel/plugin-transform-react-constant-elements": "^7.12.1",
2182 + "@babel/preset-env": "^7.12.1",
2183 + "@babel/preset-react": "^7.12.5",
2184 + "@svgr/core": "^5.5.0",
2185 + "@svgr/plugin-jsx": "^5.5.0",
2186 + "@svgr/plugin-svgo": "^5.5.0",
2187 + "loader-utils": "^2.0.0"
2188 + },
2189 + "engines": {
2190 + "node": ">=10"
2191 + },
2192 + "funding": {
2193 + "type": "github",
2194 + "url": "https://github.com/sponsors/gregberge"
2195 + }
2196 + },
2197 + "node_modules/@testing-library/dom": {
2198 + "version": "7.31.2",
2199 + "dev": true,
2200 + "license": "MIT",
2201 + "dependencies": {
2202 + "@babel/code-frame": "^7.10.4",
2203 + "@babel/runtime": "^7.12.5",
2204 + "@types/aria-query": "^4.2.0",
2205 + "aria-query": "^4.2.2",
2206 + "chalk": "^4.1.0",
2207 + "dom-accessibility-api": "^0.5.6",
2208 + "lz-string": "^1.4.4",
2209 + "pretty-format": "^26.6.2"
2210 + },
2211 + "engines": {
2212 + "node": ">=10"
2213 + }
2214 + },
2215 + "node_modules/@testing-library/dom/node_modules/@babel/runtime": {
2216 + "version": "7.16.3",
2217 + "dev": true,
2218 + "license": "MIT",
2219 + "dependencies": {
2220 + "regenerator-runtime": "^0.13.4"
2221 + },
2222 + "engines": {
2223 + "node": ">=6.9.0"
2224 + }
2225 + },
2226 + "node_modules/@testing-library/dom/node_modules/chalk": {
2227 + "version": "4.1.2",
2228 + "dev": true,
2229 + "license": "MIT",
2230 + "dependencies": {
2231 + "ansi-styles": "^4.1.0",
2232 + "supports-color": "^7.1.0"
2233 + },
2234 + "engines": {
2235 + "node": ">=10"
2236 + },
2237 + "funding": {
2238 + "url": "https://github.com/chalk/chalk?sponsor=1"
2239 + }
2240 + },
2241 + "node_modules/@testing-library/jest-dom": {
2242 + "version": "5.16.1",
2243 + "dev": true,
2244 + "license": "MIT",
2245 + "dependencies": {
2246 + "@babel/runtime": "^7.9.2",
2247 + "@types/testing-library__jest-dom": "^5.9.1",
2248 + "aria-query": "^5.0.0",
2249 + "chalk": "^3.0.0",
2250 + "css": "^3.0.0",
2251 + "css.escape": "^1.5.1",
2252 + "dom-accessibility-api": "^0.5.6",
2253 + "lodash": "^4.17.15",
2254 + "redent": "^3.0.0"
2255 + },
2256 + "engines": {
2257 + "node": ">=8",
2258 + "npm": ">=6",
2259 + "yarn": ">=1"
2260 + }
2261 + },
2262 + "node_modules/@testing-library/jest-dom/node_modules/@babel/runtime": {
2263 + "version": "7.16.3",
2264 + "dev": true,
2265 + "license": "MIT",
2266 + "dependencies": {
2267 + "regenerator-runtime": "^0.13.4"
2268 + },
2269 + "engines": {
2270 + "node": ">=6.9.0"
2271 + }
2272 + },
2273 + "node_modules/@testing-library/jest-dom/node_modules/aria-query": {
2274 + "version": "5.0.0",
2275 + "dev": true,
2276 + "license": "Apache-2.0",
2277 + "engines": {
2278 + "node": ">=6.0"
2279 + }
2280 + },
2281 + "node_modules/@testing-library/jest-dom/node_modules/chalk": {
2282 + "version": "3.0.0",
2283 + "dev": true,
2284 + "license": "MIT",
2285 + "dependencies": {
2286 + "ansi-styles": "^4.1.0",
2287 + "supports-color": "^7.1.0"
2288 + },
2289 + "engines": {
2290 + "node": ">=8"
2291 + }
2292 + },
2293 + "node_modules/@testing-library/react": {
2294 + "version": "11.2.7",
2295 + "dev": true,
2296 + "license": "MIT",
2297 + "dependencies": {
2298 + "@babel/runtime": "^7.12.5",
2299 + "@testing-library/dom": "^7.28.1"
2300 + },
2301 + "engines": {
2302 + "node": ">=10"
2303 + },
2304 + "peerDependencies": {
2305 + "react": "*",
2306 + "react-dom": "*"
2307 + }
2308 + },
2309 + "node_modules/@testing-library/react/node_modules/@babel/runtime": {
2310 + "version": "7.16.3",
2311 + "dev": true,
2312 + "license": "MIT",
2313 + "dependencies": {
2314 + "regenerator-runtime": "^0.13.4"
2315 + },
2316 + "engines": {
2317 + "node": ">=6.9.0"
2318 + }
2319 + },
2320 + "node_modules/@testing-library/user-event": {
2321 + "version": "12.8.3",
2322 + "dev": true,
2323 + "license": "MIT",
2324 + "dependencies": {
2325 + "@babel/runtime": "^7.12.5"
2326 + },
2327 + "engines": {
2328 + "node": ">=10",
2329 + "npm": ">=6"
2330 + },
2331 + "peerDependencies": {
2332 + "@testing-library/dom": ">=7.21.4"
2333 + }
2334 + },
2335 + "node_modules/@testing-library/user-event/node_modules/@babel/runtime": {
2336 + "version": "7.16.3",
2337 + "dev": true,
2338 + "license": "MIT",
2339 + "dependencies": {
2340 + "regenerator-runtime": "^0.13.4"
2341 + },
2342 + "engines": {
2343 + "node": ">=6.9.0"
2344 + }
2345 + },
2346 + "node_modules/@types/anymatch": {
2347 + "version": "1.3.1",
2348 + "dev": true,
2349 + "license": "MIT"
2350 + },
2351 + "node_modules/@types/aria-query": {
2352 + "version": "4.2.2",
2353 + "dev": true,
2354 + "license": "MIT"
2355 + },
2356 + "node_modules/@types/babel__core": {
2357 + "version": "7.1.12",
2358 + "dev": true,
2359 + "license": "MIT",
2360 + "dependencies": {
2361 + "@babel/parser": "^7.1.0",
2362 + "@babel/types": "^7.0.0",
2363 + "@types/babel__generator": "*",
2364 + "@types/babel__template": "*",
2365 + "@types/babel__traverse": "*"
2366 + }
2367 + },
2368 + "node_modules/@types/babel__generator": {
2369 + "version": "7.6.2",
2370 + "dev": true,
2371 + "license": "MIT",
2372 + "dependencies": {
2373 + "@babel/types": "^7.0.0"
2374 + }
2375 + },
2376 + "node_modules/@types/babel__template": {
2377 + "version": "7.4.0",
2378 + "dev": true,
2379 + "license": "MIT",
2380 + "dependencies": {
2381 + "@babel/parser": "^7.1.0",
2382 + "@babel/types": "^7.0.0"
2383 + }
2384 + },
2385 + "node_modules/@types/babel__traverse": {
2386 + "version": "7.11.0",
2387 + "dev": true,
2388 + "license": "MIT",
2389 + "dependencies": {
2390 + "@babel/types": "^7.3.0"
2391 + }
2392 + },
2393 + "node_modules/@types/eslint": {
2394 + "version": "7.2.6",
2395 + "dev": true,
2396 + "license": "MIT",
2397 + "dependencies": {
2398 + "@types/estree": "*",
2399 + "@types/json-schema": "*"
2400 + }
2401 + },
2402 + "node_modules/@types/estree": {
2403 + "version": "0.0.46",
2404 + "dev": true,
2405 + "license": "MIT"
2406 + },
2407 + "node_modules/@types/glob": {
2408 + "version": "7.1.3",
2409 + "dev": true,
2410 + "license": "MIT",
2411 + "dependencies": {
2412 + "@types/minimatch": "*",
2413 + "@types/node": "*"
2414 + }
2415 + },
2416 + "node_modules/@types/glob/node_modules/@types/node": {
2417 + "version": "14.14.31",
2418 + "dev": true,
2419 + "license": "MIT"
2420 + },
2421 + "node_modules/@types/graceful-fs": {
2422 + "version": "4.1.5",
2423 + "dev": true,
2424 + "license": "MIT",
2425 + "dependencies": {
2426 + "@types/node": "*"
2427 + }
2428 + },
2429 + "node_modules/@types/graceful-fs/node_modules/@types/node": {
2430 + "version": "14.14.31",
2431 + "dev": true,
2432 + "license": "MIT"
2433 + },
2434 + "node_modules/@types/html-minifier-terser": {
2435 + "version": "5.1.1",
2436 + "dev": true,
2437 + "license": "MIT"
2438 + },
2439 + "node_modules/@types/istanbul-lib-coverage": {
2440 + "version": "2.0.3",
2441 + "dev": true,
2442 + "license": "MIT"
2443 + },
2444 + "node_modules/@types/istanbul-lib-report": {
2445 + "version": "3.0.0",
2446 + "dev": true,
2447 + "license": "MIT",
2448 + "dependencies": {
2449 + "@types/istanbul-lib-coverage": "*"
2450 + }
2451 + },
2452 + "node_modules/@types/istanbul-reports": {
2453 + "version": "3.0.0",
2454 + "dev": true,
2455 + "license": "MIT",
2456 + "dependencies": {
2457 + "@types/istanbul-lib-report": "*"
2458 + }
2459 + },
2460 + "node_modules/@types/jest": {
2461 + "version": "26.0.24",
2462 + "dev": true,
2463 + "license": "MIT",
2464 + "dependencies": {
2465 + "jest-diff": "^26.0.0",
2466 + "pretty-format": "^26.0.0"
2467 + }
2468 + },
2469 + "node_modules/@types/json-schema": {
2470 + "version": "7.0.7",
2471 + "dev": true,
2472 + "license": "MIT"
2473 + },
2474 + "node_modules/@types/json5": {
2475 + "version": "0.0.29",
2476 + "dev": true,
2477 + "license": "MIT"
2478 + },
2479 + "node_modules/@types/minimatch": {
2480 + "version": "3.0.3",
2481 + "dev": true,
2482 + "license": "MIT"
2483 + },
2484 + "node_modules/@types/node": {
2485 + "version": "12.20.37",
2486 + "dev": true,
2487 + "license": "MIT"
2488 + },
2489 + "node_modules/@types/normalize-package-data": {
2490 + "version": "2.4.0",
2491 + "dev": true,
2492 + "license": "MIT"
2493 + },
2494 + "node_modules/@types/parse-json": {
2495 + "version": "4.0.0",
2496 + "dev": true,
2497 + "license": "MIT"
2498 + },
2499 + "node_modules/@types/prettier": {
2500 + "version": "2.2.1",
2501 + "dev": true,
2502 + "license": "MIT"
2503 + },
2504 + "node_modules/@types/prop-types": {
2505 + "version": "15.7.4",
2506 + "dev": true,
2507 + "license": "MIT"
2508 + },
2509 + "node_modules/@types/q": {
2510 + "version": "1.5.4",
2511 + "dev": true,
2512 + "license": "MIT"
2513 + },
2514 + "node_modules/@types/react": {
2515 + "version": "17.0.37",
2516 + "dev": true,
2517 + "license": "MIT",
2518 + "dependencies": {
2519 + "@types/prop-types": "*",
2520 + "@types/scheduler": "*",
2521 + "csstype": "^3.0.2"
2522 + }
2523 + },
2524 + "node_modules/@types/react-dom": {
2525 + "version": "17.0.11",
2526 + "dev": true,
2527 + "license": "MIT",
2528 + "dependencies": {
2529 + "@types/react": "*"
2530 + }
2531 + },
2532 + "node_modules/@types/resolve": {
2533 + "version": "0.0.8",
2534 + "dev": true,
2535 + "license": "MIT",
2536 + "dependencies": {
2537 + "@types/node": "*"
2538 + }
2539 + },
2540 + "node_modules/@types/resolve/node_modules/@types/node": {
2541 + "version": "14.14.31",
2542 + "dev": true,
2543 + "license": "MIT"
2544 + },
2545 + "node_modules/@types/scheduler": {
2546 + "version": "0.16.2",
2547 + "dev": true,
2548 + "license": "MIT"
2549 + },
2550 + "node_modules/@types/source-list-map": {
2551 + "version": "0.1.2",
2552 + "dev": true,
2553 + "license": "MIT"
2554 + },
2555 + "node_modules/@types/stack-utils": {
2556 + "version": "2.0.0",
2557 + "dev": true,
2558 + "license": "MIT"
2559 + },
2560 + "node_modules/@types/tapable": {
2561 + "version": "1.0.6",
2562 + "dev": true,
2563 + "license": "MIT"
2564 + },
2565 + "node_modules/@types/testing-library__jest-dom": {
2566 + "version": "5.14.2",
2567 + "dev": true,
2568 + "license": "MIT",
2569 + "dependencies": {
2570 + "@types/jest": "*"
2571 + }
2572 + },
2573 + "node_modules/@types/testing-library__jest-dom/node_modules/@jest/types": {
2574 + "version": "27.4.2",
2575 + "dev": true,
2576 + "license": "MIT",
2577 + "dependencies": {
2578 + "@types/istanbul-lib-coverage": "^2.0.0",
2579 + "@types/istanbul-reports": "^3.0.0",
2580 + "@types/node": "*",
2581 + "@types/yargs": "^16.0.0",
2582 + "chalk": "^4.0.0"
2583 + },
2584 + "engines": {
2585 + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
2586 + }
2587 + },
2588 + "node_modules/@types/testing-library__jest-dom/node_modules/@types/jest": {
2589 + "version": "27.0.3",
2590 + "dev": true,
2591 + "license": "MIT",
2592 + "dependencies": {
2593 + "jest-diff": "^27.0.0",
2594 + "pretty-format": "^27.0.0"
2595 + }
2596 + },
2597 + "node_modules/@types/testing-library__jest-dom/node_modules/@types/node": {
2598 + "version": "14.14.31",
2599 + "dev": true,
2600 + "license": "MIT"
2601 + },
2602 + "node_modules/@types/testing-library__jest-dom/node_modules/@types/yargs": {
2603 + "version": "16.0.4",
2604 + "dev": true,
2605 + "license": "MIT",
2606 + "dependencies": {
2607 + "@types/yargs-parser": "*"
2608 + }
2609 + },
2610 + "node_modules/@types/testing-library__jest-dom/node_modules/ansi-regex": {
2611 + "version": "5.0.1",
2612 + "dev": true,
2613 + "license": "MIT",
2614 + "engines": {
2615 + "node": ">=8"
2616 + }
2617 + },
2618 + "node_modules/@types/testing-library__jest-dom/node_modules/ansi-styles": {
2619 + "version": "5.2.0",
2620 + "dev": true,
2621 + "license": "MIT",
2622 + "engines": {
2623 + "node": ">=10"
2624 + },
2625 + "funding": {
2626 + "url": "https://github.com/chalk/ansi-styles?sponsor=1"
2627 + }
2628 + },
2629 + "node_modules/@types/testing-library__jest-dom/node_modules/diff-sequences": {
2630 + "version": "27.4.0",
2631 + "dev": true,
2632 + "license": "MIT",
2633 + "engines": {
2634 + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
2635 + }
2636 + },
2637 + "node_modules/@types/testing-library__jest-dom/node_modules/jest-diff": {
2638 + "version": "27.4.2",
2639 + "dev": true,
2640 + "license": "MIT",
2641 + "dependencies": {
2642 + "chalk": "^4.0.0",
2643 + "diff-sequences": "^27.4.0",
2644 + "jest-get-type": "^27.4.0",
2645 + "pretty-format": "^27.4.2"
2646 + },
2647 + "engines": {
2648 + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
2649 + }
2650 + },
2651 + "node_modules/@types/testing-library__jest-dom/node_modules/jest-get-type": {
2652 + "version": "27.4.0",
2653 + "dev": true,
2654 + "license": "MIT",
2655 + "engines": {
2656 + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
2657 + }
2658 + },
2659 + "node_modules/@types/testing-library__jest-dom/node_modules/pretty-format": {
2660 + "version": "27.4.2",
2661 + "dev": true,
2662 + "license": "MIT",
2663 + "dependencies": {
2664 + "@jest/types": "^27.4.2",
2665 + "ansi-regex": "^5.0.1",
2666 + "ansi-styles": "^5.0.0",
2667 + "react-is": "^17.0.1"
2668 + },
2669 + "engines": {
2670 + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
2671 + }
2672 + },
2673 + "node_modules/@types/uglify-js": {
2674 + "version": "3.12.0",
2675 + "dev": true,
2676 + "license": "MIT",
2677 + "dependencies": {
2678 + "source-map": "^0.6.1"
2679 + }
2680 + },
2681 + "node_modules/@types/webpack": {
2682 + "version": "4.41.26",
2683 + "dev": true,
2684 + "license": "MIT",
2685 + "dependencies": {
2686 + "@types/anymatch": "*",
2687 + "@types/node": "*",
2688 + "@types/tapable": "*",
2689 + "@types/uglify-js": "*",
2690 + "@types/webpack-sources": "*",
2691 + "source-map": "^0.6.0"
2692 + }
2693 + },
2694 + "node_modules/@types/webpack-sources": {
2695 + "version": "2.1.0",
2696 + "dev": true,
2697 + "license": "MIT",
2698 + "dependencies": {
2699 + "@types/node": "*",
2700 + "@types/source-list-map": "*",
2701 + "source-map": "^0.7.3"
2702 + }
2703 + },
2704 + "node_modules/@types/webpack-sources/node_modules/@types/node": {
2705 + "version": "14.14.31",
2706 + "dev": true,
2707 + "license": "MIT"
2708 + },
2709 + "node_modules/@types/webpack-sources/node_modules/source-map": {
2710 + "version": "0.7.3",
2711 + "dev": true,
2712 + "license": "BSD-3-Clause",
2713 + "engines": {
2714 + "node": ">= 8"
2715 + }
2716 + },
2717 + "node_modules/@types/webpack/node_modules/@types/node": {
2718 + "version": "14.14.31",
2719 + "dev": true,
2720 + "license": "MIT"
2721 + },
2722 + "node_modules/@types/yargs": {
2723 + "version": "15.0.13",
2724 + "dev": true,
2725 + "license": "MIT",
2726 + "dependencies": {
2727 + "@types/yargs-parser": "*"
2728 + }
2729 + },
2730 + "node_modules/@types/yargs-parser": {
2731 + "version": "20.2.0",
2732 + "dev": true,
2733 + "license": "MIT"
2734 + },
2735 + "node_modules/@typescript-eslint/eslint-plugin": {
2736 + "version": "4.15.2",
2737 + "dev": true,
2738 + "license": "MIT",
2739 + "dependencies": {
2740 + "@typescript-eslint/experimental-utils": "4.15.2",
2741 + "@typescript-eslint/scope-manager": "4.15.2",
2742 + "debug": "^4.1.1",
2743 + "functional-red-black-tree": "^1.0.1",
2744 + "lodash": "^4.17.15",
2745 + "regexpp": "^3.0.0",
2746 + "semver": "^7.3.2",
2747 + "tsutils": "^3.17.1"
2748 + },
2749 + "engines": {
2750 + "node": "^10.12.0 || >=12.0.0"
2751 + },
2752 + "funding": {
2753 + "type": "opencollective",
2754 + "url": "https://opencollective.com/typescript-eslint"
2755 + },
2756 + "peerDependencies": {
2757 + "@typescript-eslint/parser": "^4.0.0",
2758 + "eslint": "^5.0.0 || ^6.0.0 || ^7.0.0"
2759 + },
2760 + "peerDependenciesMeta": {
2761 + "typescript": {
2762 + "optional": true
2763 + }
2764 + }
2765 + },
2766 + "node_modules/@typescript-eslint/eslint-plugin/node_modules/semver": {
2767 + "version": "7.3.4",
2768 + "dev": true,
2769 + "license": "ISC",
2770 + "dependencies": {
2771 + "lru-cache": "^6.0.0"
2772 + },
2773 + "bin": {
2774 + "semver": "bin/semver.js"
2775 + },
2776 + "engines": {
2777 + "node": ">=10"
2778 + }
2779 + },
2780 + "node_modules/@typescript-eslint/experimental-utils": {
2781 + "version": "4.15.2",
2782 + "dev": true,
2783 + "license": "MIT",
2784 + "dependencies": {
2785 + "@types/json-schema": "^7.0.3",
2786 + "@typescript-eslint/scope-manager": "4.15.2",
2787 + "@typescript-eslint/types": "4.15.2",
2788 + "@typescript-eslint/typescript-estree": "4.15.2",
2789 + "eslint-scope": "^5.0.0",
2790 + "eslint-utils": "^2.0.0"
2791 + },
2792 + "engines": {
2793 + "node": "^10.12.0 || >=12.0.0"
2794 + },
2795 + "funding": {
2796 + "type": "opencollective",
2797 + "url": "https://opencollective.com/typescript-eslint"
2798 + },
2799 + "peerDependencies": {
2800 + "eslint": "*"
2801 + }
2802 + },
2803 + "node_modules/@typescript-eslint/parser": {
2804 + "version": "4.15.2",
2805 + "dev": true,
2806 + "license": "BSD-2-Clause",
2807 + "dependencies": {
2808 + "@typescript-eslint/scope-manager": "4.15.2",
2809 + "@typescript-eslint/types": "4.15.2",
2810 + "@typescript-eslint/typescript-estree": "4.15.2",
2811 + "debug": "^4.1.1"
2812 + },
2813 + "engines": {
2814 + "node": "^10.12.0 || >=12.0.0"
2815 + },
2816 + "funding": {
2817 + "type": "opencollective",
2818 + "url": "https://opencollective.com/typescript-eslint"
2819 + },
2820 + "peerDependencies": {
2821 + "eslint": "^5.0.0 || ^6.0.0 || ^7.0.0"
2822 + },
2823 + "peerDependenciesMeta": {
2824 + "typescript": {
2825 + "optional": true
2826 + }
2827 + }
2828 + },
2829 + "node_modules/@typescript-eslint/scope-manager": {
2830 + "version": "4.15.2",
2831 + "dev": true,
2832 + "license": "MIT",
2833 + "dependencies": {
2834 + "@typescript-eslint/types": "4.15.2",
2835 + "@typescript-eslint/visitor-keys": "4.15.2"
2836 + },
2837 + "engines": {
2838 + "node": "^8.10.0 || ^10.13.0 || >=11.10.1"
2839 + },
2840 + "funding": {
2841 + "type": "opencollective",
2842 + "url": "https://opencollective.com/typescript-eslint"
2843 + }
2844 + },
2845 + "node_modules/@typescript-eslint/types": {
2846 + "version": "4.15.2",
2847 + "dev": true,
2848 + "license": "MIT",
2849 + "engines": {
2850 + "node": "^8.10.0 || ^10.13.0 || >=11.10.1"
2851 + },
2852 + "funding": {
2853 + "type": "opencollective",
2854 + "url": "https://opencollective.com/typescript-eslint"
2855 + }
2856 + },
2857 + "node_modules/@typescript-eslint/typescript-estree": {
2858 + "version": "4.15.2",
2859 + "dev": true,
2860 + "license": "BSD-2-Clause",
2861 + "dependencies": {
2862 + "@typescript-eslint/types": "4.15.2",
2863 + "@typescript-eslint/visitor-keys": "4.15.2",
2864 + "debug": "^4.1.1",
2865 + "globby": "^11.0.1",
2866 + "is-glob": "^4.0.1",
2867 + "semver": "^7.3.2",
2868 + "tsutils": "^3.17.1"
2869 + },
2870 + "engines": {
2871 + "node": "^10.12.0 || >=12.0.0"
2872 + },
2873 + "funding": {
2874 + "type": "opencollective",
2875 + "url": "https://opencollective.com/typescript-eslint"
2876 + },
2877 + "peerDependenciesMeta": {
2878 + "typescript": {
2879 + "optional": true
2880 + }
2881 + }
2882 + },
2883 + "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": {
2884 + "version": "7.3.4",
2885 + "dev": true,
2886 + "license": "ISC",
2887 + "dependencies": {
2888 + "lru-cache": "^6.0.0"
2889 + },
2890 + "bin": {
2891 + "semver": "bin/semver.js"
2892 + },
2893 + "engines": {
2894 + "node": ">=10"
2895 + }
2896 + },
2897 + "node_modules/@typescript-eslint/visitor-keys": {
2898 + "version": "4.15.2",
2899 + "dev": true,
2900 + "license": "MIT",
2901 + "dependencies": {
2902 + "@typescript-eslint/types": "4.15.2",
2903 + "eslint-visitor-keys": "^2.0.0"
2904 + },
2905 + "engines": {
2906 + "node": "^8.10.0 || ^10.13.0 || >=11.10.1"
2907 + },
2908 + "funding": {
2909 + "type": "opencollective",
2910 + "url": "https://opencollective.com/typescript-eslint"
2911 + }
2912 + },
2913 + "node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys": {
2914 + "version": "2.0.0",
2915 + "dev": true,
2916 + "license": "Apache-2.0",
2917 + "engines": {
2918 + "node": ">=10"
2919 + }
2920 + },
2921 + "node_modules/@webassemblyjs/ast": {
2922 + "version": "1.9.0",
2923 + "dev": true,
2924 + "license": "MIT",
2925 + "dependencies": {
2926 + "@webassemblyjs/helper-module-context": "1.9.0",
2927 + "@webassemblyjs/helper-wasm-bytecode": "1.9.0",
2928 + "@webassemblyjs/wast-parser": "1.9.0"
2929 + }
2930 + },
2931 + "node_modules/@webassemblyjs/floating-point-hex-parser": {
2932 + "version": "1.9.0",
2933 + "dev": true,
2934 + "license": "MIT"
2935 + },
2936 + "node_modules/@webassemblyjs/helper-api-error": {
2937 + "version": "1.9.0",
2938 + "dev": true,
2939 + "license": "MIT"
2940 + },
2941 + "node_modules/@webassemblyjs/helper-buffer": {
2942 + "version": "1.9.0",
2943 + "dev": true,
2944 + "license": "MIT"
2945 + },
2946 + "node_modules/@webassemblyjs/helper-code-frame": {
2947 + "version": "1.9.0",
2948 + "dev": true,
2949 + "license": "MIT",
2950 + "dependencies": {
2951 + "@webassemblyjs/wast-printer": "1.9.0"
2952 + }
2953 + },
2954 + "node_modules/@webassemblyjs/helper-fsm": {
2955 + "version": "1.9.0",
2956 + "dev": true,
2957 + "license": "ISC"
2958 + },
2959 + "node_modules/@webassemblyjs/helper-module-context": {
2960 + "version": "1.9.0",
2961 + "dev": true,
2962 + "license": "MIT",
2963 + "dependencies": {
2964 + "@webassemblyjs/ast": "1.9.0"
2965 + }
2966 + },
2967 + "node_modules/@webassemblyjs/helper-wasm-bytecode": {
2968 + "version": "1.9.0",
2969 + "dev": true,
2970 + "license": "MIT"
2971 + },
2972 + "node_modules/@webassemblyjs/helper-wasm-section": {
2973 + "version": "1.9.0",
2974 + "dev": true,
2975 + "license": "MIT",
2976 + "dependencies": {
2977 + "@webassemblyjs/ast": "1.9.0",
2978 + "@webassemblyjs/helper-buffer": "1.9.0",
2979 + "@webassemblyjs/helper-wasm-bytecode": "1.9.0",
2980 + "@webassemblyjs/wasm-gen": "1.9.0"
2981 + }
2982 + },
2983 + "node_modules/@webassemblyjs/ieee754": {
2984 + "version": "1.9.0",
2985 + "dev": true,
2986 + "license": "MIT",
2987 + "dependencies": {
2988 + "@xtuc/ieee754": "^1.2.0"
2989 + }
2990 + },
2991 + "node_modules/@webassemblyjs/leb128": {
2992 + "version": "1.9.0",
2993 + "dev": true,
2994 + "license": "MIT",
2995 + "dependencies": {
2996 + "@xtuc/long": "4.2.2"
2997 + }
2998 + },
2999 + "node_modules/@webassemblyjs/utf8": {
3000 + "version": "1.9.0",
3001 + "dev": true,
3002 + "license": "MIT"
3003 + },
3004 + "node_modules/@webassemblyjs/wasm-edit": {
3005 + "version": "1.9.0",
3006 + "dev": true,
3007 + "license": "MIT",
3008 + "dependencies": {
3009 + "@webassemblyjs/ast": "1.9.0",
3010 + "@webassemblyjs/helper-buffer": "1.9.0",
3011 + "@webassemblyjs/helper-wasm-bytecode": "1.9.0",
3012 + "@webassemblyjs/helper-wasm-section": "1.9.0",
3013 + "@webassemblyjs/wasm-gen": "1.9.0",
3014 + "@webassemblyjs/wasm-opt": "1.9.0",
3015 + "@webassemblyjs/wasm-parser": "1.9.0",
3016 + "@webassemblyjs/wast-printer": "1.9.0"
3017 + }
3018 + },
3019 + "node_modules/@webassemblyjs/wasm-gen": {
3020 + "version": "1.9.0",
3021 + "dev": true,
3022 + "license": "MIT",
3023 + "dependencies": {
3024 + "@webassemblyjs/ast": "1.9.0",
3025 + "@webassemblyjs/helper-wasm-bytecode": "1.9.0",
3026 + "@webassemblyjs/ieee754": "1.9.0",
3027 + "@webassemblyjs/leb128": "1.9.0",
3028 + "@webassemblyjs/utf8": "1.9.0"
3029 + }
3030 + },
3031 + "node_modules/@webassemblyjs/wasm-opt": {
3032 + "version": "1.9.0",
3033 + "dev": true,
3034 + "license": "MIT",
3035 + "dependencies": {
3036 + "@webassemblyjs/ast": "1.9.0",
3037 + "@webassemblyjs/helper-buffer": "1.9.0",
3038 + "@webassemblyjs/wasm-gen": "1.9.0",
3039 + "@webassemblyjs/wasm-parser": "1.9.0"
3040 + }
3041 + },
3042 + "node_modules/@webassemblyjs/wasm-parser": {
3043 + "version": "1.9.0",
3044 + "dev": true,
3045 + "license": "MIT",
3046 + "dependencies": {
3047 + "@webassemblyjs/ast": "1.9.0",
3048 + "@webassemblyjs/helper-api-error": "1.9.0",
3049 + "@webassemblyjs/helper-wasm-bytecode": "1.9.0",
3050 + "@webassemblyjs/ieee754": "1.9.0",
3051 + "@webassemblyjs/leb128": "1.9.0",
3052 + "@webassemblyjs/utf8": "1.9.0"
3053 + }
3054 + },
3055 + "node_modules/@webassemblyjs/wast-parser": {
3056 + "version": "1.9.0",
3057 + "dev": true,
3058 + "license": "MIT",
3059 + "dependencies": {
3060 + "@webassemblyjs/ast": "1.9.0",
3061 + "@webassemblyjs/floating-point-hex-parser": "1.9.0",
3062 + "@webassemblyjs/helper-api-error": "1.9.0",
3063 + "@webassemblyjs/helper-code-frame": "1.9.0",
3064 + "@webassemblyjs/helper-fsm": "1.9.0",
3065 + "@xtuc/long": "4.2.2"
3066 + }
3067 + },
3068 + "node_modules/@webassemblyjs/wast-printer": {
3069 + "version": "1.9.0",
3070 + "dev": true,
3071 + "license": "MIT",
3072 + "dependencies": {
3073 + "@webassemblyjs/ast": "1.9.0",
3074 + "@webassemblyjs/wast-parser": "1.9.0",
3075 + "@xtuc/long": "4.2.2"
3076 + }
3077 + },
3078 + "node_modules/@xtuc/ieee754": {
3079 + "version": "1.2.0",
3080 + "dev": true,
3081 + "license": "BSD-3-Clause"
3082 + },
3083 + "node_modules/@xtuc/long": {
3084 + "version": "4.2.2",
3085 + "dev": true,
3086 + "license": "Apache-2.0"
3087 + },
3088 + "node_modules/abab": {
3089 + "version": "2.0.5",
3090 + "dev": true,
3091 + "license": "BSD-3-Clause"
3092 + },
3093 + "node_modules/accepts": {
3094 + "version": "1.3.7",
3095 + "dev": true,
3096 + "license": "MIT",
3097 + "dependencies": {
3098 + "mime-types": "~2.1.24",
3099 + "negotiator": "0.6.2"
3100 + },
3101 + "engines": {
3102 + "node": ">= 0.6"
3103 + }
3104 + },
3105 + "node_modules/acorn": {
3106 + "version": "7.4.1",
3107 + "dev": true,
3108 + "license": "MIT",
3109 + "bin": {
3110 + "acorn": "bin/acorn"
3111 + },
3112 + "engines": {
3113 + "node": ">=0.4.0"
3114 + }
3115 + },
3116 + "node_modules/acorn-globals": {
3117 + "version": "6.0.0",
3118 + "dev": true,
3119 + "license": "MIT",
3120 + "dependencies": {
3121 + "acorn": "^7.1.1",
3122 + "acorn-walk": "^7.1.1"
3123 + }
3124 + },
3125 + "node_modules/acorn-jsx": {
3126 + "version": "5.3.1",
3127 + "dev": true,
3128 + "license": "MIT",
3129 + "peerDependencies": {
3130 + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0"
3131 + }
3132 + },
3133 + "node_modules/acorn-walk": {
3134 + "version": "7.2.0",
3135 + "dev": true,
3136 + "license": "MIT",
3137 + "engines": {
3138 + "node": ">=0.4.0"
3139 + }
3140 + },
3141 + "node_modules/address": {
3142 + "version": "1.1.2",
3143 + "dev": true,
3144 + "license": "MIT",
3145 + "engines": {
3146 + "node": ">= 0.12.0"
3147 + }
3148 + },
3149 + "node_modules/adjust-sourcemap-loader": {
3150 + "version": "3.0.0",
3151 + "dev": true,
3152 + "license": "MIT",
3153 + "dependencies": {
3154 + "loader-utils": "^2.0.0",
3155 + "regex-parser": "^2.2.11"
3156 + },
3157 + "engines": {
3158 + "node": ">=8.9"
3159 + }
3160 + },
3161 + "node_modules/aggregate-error": {
3162 + "version": "3.1.0",
3163 + "dev": true,
3164 + "license": "MIT",
3165 + "dependencies": {
3166 + "clean-stack": "^2.0.0",
3167 + "indent-string": "^4.0.0"
3168 + },
3169 + "engines": {
3170 + "node": ">=8"
3171 + }
3172 + },
3173 + "node_modules/ajv": {
3174 + "version": "6.12.6",
3175 + "dev": true,
3176 + "license": "MIT",
3177 + "dependencies": {
3178 + "fast-deep-equal": "^3.1.1",
3179 + "fast-json-stable-stringify": "^2.0.0",
3180 + "json-schema-traverse": "^0.4.1",
3181 + "uri-js": "^4.2.2"
3182 + },
3183 + "funding": {
3184 + "type": "github",
3185 + "url": "https://github.com/sponsors/epoberezkin"
3186 + }
3187 + },
3188 + "node_modules/ajv-errors": {
3189 + "version": "1.0.1",
3190 + "dev": true,
3191 + "license": "MIT",
3192 + "peerDependencies": {
3193 + "ajv": ">=5.0.0"
3194 + }
3195 + },
3196 + "node_modules/ajv-keywords": {
3197 + "version": "3.5.2",
3198 + "dev": true,
3199 + "license": "MIT",
3200 + "peerDependencies": {
3201 + "ajv": "^6.9.1"
3202 + }
3203 + },
3204 + "node_modules/alphanum-sort": {
3205 + "version": "1.0.2",
3206 + "dev": true,
3207 + "license": "MIT"
3208 + },
3209 + "node_modules/ansi-colors": {
3210 + "version": "3.2.4",
3211 + "dev": true,
3212 + "license": "MIT",
3213 + "engines": {
3214 + "node": ">=6"
3215 + }
3216 + },
3217 + "node_modules/ansi-escapes": {
3218 + "version": "4.3.1",
3219 + "dev": true,
3220 + "license": "MIT",
3221 + "dependencies": {
3222 + "type-fest": "^0.11.0"
3223 + },
3224 + "engines": {
3225 + "node": ">=8"
3226 + },
3227 + "funding": {
3228 + "url": "https://github.com/sponsors/sindresorhus"
3229 + }
3230 + },
3231 + "node_modules/ansi-escapes/node_modules/type-fest": {
3232 + "version": "0.11.0",
3233 + "dev": true,
3234 + "license": "(MIT OR CC0-1.0)",
3235 + "engines": {
3236 + "node": ">=8"
3237 + },
3238 + "funding": {
3239 + "url": "https://github.com/sponsors/sindresorhus"
3240 + }
3241 + },
3242 + "node_modules/ansi-html": {
3243 + "version": "0.0.7",
3244 + "dev": true,
3245 + "engines": [
3246 + "node >= 0.8.0"
3247 + ],
3248 + "license": "Apache-2.0",
3249 + "bin": {
3250 + "ansi-html": "bin/ansi-html"
3251 + }
3252 + },
3253 + "node_modules/ansi-regex": {
3254 + "version": "5.0.0",
3255 + "dev": true,
3256 + "license": "MIT",
3257 + "engines": {
3258 + "node": ">=8"
3259 + }
3260 + },
3261 + "node_modules/ansi-styles": {
3262 + "version": "4.3.0",
3263 + "dev": true,
3264 + "license": "MIT",
3265 + "dependencies": {
3266 + "color-convert": "^2.0.1"
3267 + },
3268 + "engines": {
3269 + "node": ">=8"
3270 + },
3271 + "funding": {
3272 + "url": "https://github.com/chalk/ansi-styles?sponsor=1"
3273 + }
3274 + },
3275 + "node_modules/ansi-styles/node_modules/color-convert": {
3276 + "version": "2.0.1",
3277 + "dev": true,
3278 + "license": "MIT",
3279 + "dependencies": {
3280 + "color-name": "~1.1.4"
3281 + },
3282 + "engines": {
3283 + "node": ">=7.0.0"
3284 + }
3285 + },
3286 + "node_modules/anymatch": {
3287 + "version": "2.0.0",
3288 + "dev": true,
3289 + "license": "ISC",
3290 + "dependencies": {
3291 + "micromatch": "^3.1.4",
3292 + "normalize-path": "^2.1.1"
3293 + }
3294 + },
3295 + "node_modules/anymatch/node_modules/define-property": {
3296 + "version": "2.0.2",
3297 + "dev": true,
3298 + "license": "MIT",
3299 + "dependencies": {
3300 + "is-descriptor": "^1.0.2",
3301 + "isobject": "^3.0.1"
3302 + },
3303 + "engines": {
3304 + "node": ">=0.10.0"
3305 + }
3306 + },
3307 + "node_modules/anymatch/node_modules/extend-shallow": {
3308 + "version": "3.0.2",
3309 + "dev": true,
3310 + "license": "MIT",
3311 + "dependencies": {
3312 + "assign-symbols": "^1.0.0",
3313 + "is-extendable": "^1.0.1"
3314 + },
3315 + "engines": {
3316 + "node": ">=0.10.0"
3317 + }
3318 + },
3319 + "node_modules/anymatch/node_modules/is-extendable": {
3320 + "version": "1.0.1",
3321 + "dev": true,
3322 + "license": "MIT",
3323 + "dependencies": {
3324 + "is-plain-object": "^2.0.4"
3325 + },
3326 + "engines": {
3327 + "node": ">=0.10.0"
3328 + }
3329 + },
3330 + "node_modules/anymatch/node_modules/kind-of": {
3331 + "version": "6.0.3",
3332 + "dev": true,
3333 + "license": "MIT",
3334 + "engines": {
3335 + "node": ">=0.10.0"
3336 + }
3337 + },
3338 + "node_modules/anymatch/node_modules/micromatch": {
3339 + "version": "3.1.10",
3340 + "dev": true,
3341 + "license": "MIT",
3342 + "dependencies": {
3343 + "arr-diff": "^4.0.0",
3344 + "array-unique": "^0.3.2",
3345 + "braces": "^2.3.1",
3346 + "define-property": "^2.0.2",
3347 + "extend-shallow": "^3.0.2",
3348 + "extglob": "^2.0.4",
3349 + "fragment-cache": "^0.2.1",
3350 + "kind-of": "^6.0.2",
3351 + "nanomatch": "^1.2.9",
3352 + "object.pick": "^1.3.0",
3353 + "regex-not": "^1.0.0",
3354 + "snapdragon": "^0.8.1",
3355 + "to-regex": "^3.0.2"
3356 + },
3357 + "engines": {
3358 + "node": ">=0.10.0"
3359 + }
3360 + },
3361 + "node_modules/anymatch/node_modules/normalize-path": {
3362 + "version": "2.1.1",
3363 + "dev": true,
3364 + "license": "MIT",
3365 + "dependencies": {
3366 + "remove-trailing-separator": "^1.0.1"
3367 + },
3368 + "engines": {
3369 + "node": ">=0.10.0"
3370 + }
3371 + },
3372 + "node_modules/aproba": {
3373 + "version": "1.2.0",
3374 + "dev": true,
3375 + "license": "ISC"
3376 + },
3377 + "node_modules/argparse": {
3378 + "version": "1.0.10",
3379 + "dev": true,
3380 + "license": "MIT",
3381 + "dependencies": {
3382 + "sprintf-js": "~1.0.2"
3383 + }
3384 + },
3385 + "node_modules/aria-query": {
3386 + "version": "4.2.2",
3387 + "dev": true,
3388 + "license": "Apache-2.0",
3389 + "dependencies": {
3390 + "@babel/runtime": "^7.10.2",
3391 + "@babel/runtime-corejs3": "^7.10.2"
3392 + },
3393 + "engines": {
3394 + "node": ">=6.0"
3395 + }
3396 + },
3397 + "node_modules/arity-n": {
3398 + "version": "1.0.4",
3399 + "dev": true,
3400 + "license": "MIT"
3401 + },
3402 + "node_modules/arr-diff": {
3403 + "version": "4.0.0",
3404 + "dev": true,
3405 + "license": "MIT",
3406 + "engines": {
3407 + "node": ">=0.10.0"
3408 + }
3409 + },
3410 + "node_modules/arr-flatten": {
3411 + "version": "1.1.0",
3412 + "dev": true,
3413 + "license": "MIT",
3414 + "engines": {
3415 + "node": ">=0.10.0"
3416 + }
3417 + },
3418 + "node_modules/arr-union": {
3419 + "version": "3.1.0",
3420 + "dev": true,
3421 + "license": "MIT",
3422 + "engines": {
3423 + "node": ">=0.10.0"
3424 + }
3425 + },
3426 + "node_modules/array-flatten": {
3427 + "version": "1.1.1",
3428 + "dev": true,
3429 + "license": "MIT"
3430 + },
3431 + "node_modules/array-includes": {
3432 + "version": "3.1.3",
3433 + "dev": true,
3434 + "license": "MIT",
3435 + "dependencies": {
3436 + "call-bind": "^1.0.2",
3437 + "define-properties": "^1.1.3",
3438 + "es-abstract": "^1.18.0-next.2",
3439 + "get-intrinsic": "^1.1.1",
3440 + "is-string": "^1.0.5"
3441 + },
3442 + "engines": {
3443 + "node": ">= 0.4"
3444 + },
3445 + "funding": {
3446 + "url": "https://github.com/sponsors/ljharb"
3447 + }
3448 + },
3449 + "node_modules/array-union": {
3450 + "version": "2.1.0",
3451 + "dev": true,
3452 + "license": "MIT",
3453 + "engines": {
3454 + "node": ">=8"
3455 + }
3456 + },
3457 + "node_modules/array-uniq": {
3458 + "version": "1.0.3",
3459 + "dev": true,
3460 + "license": "MIT",
3461 + "engines": {
3462 + "node": ">=0.10.0"
3463 + }
3464 + },
3465 + "node_modules/array-unique": {
3466 + "version": "0.3.2",
3467 + "dev": true,
3468 + "license": "MIT",
3469 + "engines": {
3470 + "node": ">=0.10.0"
3471 + }
3472 + },
3473 + "node_modules/array.prototype.flat": {
3474 + "version": "1.2.4",
3475 + "dev": true,
3476 + "license": "MIT",
3477 + "dependencies": {
3478 + "call-bind": "^1.0.0",
3479 + "define-properties": "^1.1.3",
3480 + "es-abstract": "^1.18.0-next.1"
3481 + },
3482 + "engines": {
3483 + "node": ">= 0.4"
3484 + },
3485 + "funding": {
3486 + "url": "https://github.com/sponsors/ljharb"
3487 + }
3488 + },
3489 + "node_modules/array.prototype.flatmap": {
3490 + "version": "1.2.4",
3491 + "dev": true,
3492 + "license": "MIT",
3493 + "dependencies": {
3494 + "call-bind": "^1.0.0",
3495 + "define-properties": "^1.1.3",
3496 + "es-abstract": "^1.18.0-next.1",
3497 + "function-bind": "^1.1.1"
3498 + },
3499 + "engines": {
3500 + "node": ">= 0.4"
3501 + },
3502 + "funding": {
3503 + "url": "https://github.com/sponsors/ljharb"
3504 + }
3505 + },
3506 + "node_modules/arrify": {
3507 + "version": "2.0.1",
3508 + "dev": true,
3509 + "license": "MIT",
3510 + "engines": {
3511 + "node": ">=8"
3512 + }
3513 + },
3514 + "node_modules/asap": {
3515 + "version": "2.0.6",
3516 + "dev": true,
3517 + "license": "MIT"
3518 + },
3519 + "node_modules/asn1": {
3520 + "version": "0.2.4",
3521 + "dev": true,
3522 + "license": "MIT",
3523 + "dependencies": {
3524 + "safer-buffer": "~2.1.0"
3525 + }
3526 + },
3527 + "node_modules/asn1.js": {
3528 + "version": "5.4.1",
3529 + "dev": true,
3530 + "license": "MIT",
3531 + "dependencies": {
3532 + "bn.js": "^4.0.0",
3533 + "inherits": "^2.0.1",
3534 + "minimalistic-assert": "^1.0.0",
3535 + "safer-buffer": "^2.1.0"
3536 + }
3537 + },
3538 + "node_modules/assert": {
3539 + "version": "1.5.0",
3540 + "dev": true,
3541 + "license": "MIT",
3542 + "dependencies": {
3543 + "object-assign": "^4.1.1",
3544 + "util": "0.10.3"
3545 + }
3546 + },
3547 + "node_modules/assert-plus": {
3548 + "version": "1.0.0",
3549 + "dev": true,
3550 + "license": "MIT",
3551 + "engines": {
3552 + "node": ">=0.8"
3553 + }
3554 + },
3555 + "node_modules/assert/node_modules/inherits": {
3556 + "version": "2.0.1",
3557 + "dev": true,
3558 + "license": "ISC"
3559 + },
3560 + "node_modules/assert/node_modules/util": {
3561 + "version": "0.10.3",
3562 + "dev": true,
3563 + "license": "MIT",
3564 + "dependencies": {
3565 + "inherits": "2.0.1"
3566 + }
3567 + },
3568 + "node_modules/assign-symbols": {
3569 + "version": "1.0.0",
3570 + "dev": true,
3571 + "license": "MIT",
3572 + "engines": {
3573 + "node": ">=0.10.0"
3574 + }
3575 + },
3576 + "node_modules/ast-types-flow": {
3577 + "version": "0.0.7",
3578 + "dev": true,
3579 + "license": "ISC"
3580 + },
3581 + "node_modules/astral-regex": {
3582 + "version": "2.0.0",
3583 + "dev": true,
3584 + "license": "MIT",
3585 + "engines": {
3586 + "node": ">=8"
3587 + }
3588 + },
3589 + "node_modules/async": {
3590 + "version": "2.6.3",
3591 + "dev": true,
3592 + "license": "MIT",
3593 + "dependencies": {
3594 + "lodash": "^4.17.14"
3595 + }
3596 + },
3597 + "node_modules/async-each": {
3598 + "version": "1.0.3",
3599 + "dev": true,
3600 + "license": "MIT"
3601 + },
3602 + "node_modules/async-limiter": {
3603 + "version": "1.0.1",
3604 + "dev": true,
3605 + "license": "MIT"
3606 + },
3607 + "node_modules/asynckit": {
3608 + "version": "0.4.0",
3609 + "dev": true,
3610 + "license": "MIT"
3611 + },
3612 + "node_modules/at-least-node": {
3613 + "version": "1.0.0",
3614 + "dev": true,
3615 + "license": "ISC",
3616 + "engines": {
3617 + "node": ">= 4.0.0"
3618 + }
3619 + },
3620 + "node_modules/atob": {
3621 + "version": "2.1.2",
3622 + "dev": true,
3623 + "license": "(MIT OR Apache-2.0)",
3624 + "bin": {
3625 + "atob": "bin/atob.js"
3626 + },
3627 + "engines": {
3628 + "node": ">= 4.5.0"
3629 + }
3630 + },
3631 + "node_modules/autoprefixer": {
3632 + "version": "9.8.6",
3633 + "dev": true,
3634 + "license": "MIT",
3635 + "dependencies": {
3636 + "browserslist": "^4.12.0",
3637 + "caniuse-lite": "^1.0.30001109",
3638 + "colorette": "^1.2.1",
3639 + "normalize-range": "^0.1.2",
3640 + "num2fraction": "^1.2.2",
3641 + "postcss": "^7.0.32",
3642 + "postcss-value-parser": "^4.1.0"
3643 + },
3644 + "bin": {
3645 + "autoprefixer": "bin/autoprefixer"
3646 + },
3647 + "funding": {
3648 + "type": "tidelift",
3649 + "url": "https://tidelift.com/funding/github/npm/autoprefixer"
3650 + }
3651 + },
3652 + "node_modules/autoprefixer/node_modules/postcss-value-parser": {
3653 + "version": "4.1.0",
3654 + "dev": true,
3655 + "license": "MIT"
3656 + },
3657 + "node_modules/aws-sign2": {
3658 + "version": "0.7.0",
3659 + "dev": true,
3660 + "license": "Apache-2.0",
3661 + "engines": {
3662 + "node": "*"
3663 + }
3664 + },
3665 + "node_modules/aws4": {
3666 + "version": "1.11.0",
3667 + "dev": true,
3668 + "license": "MIT"
3669 + },
3670 + "node_modules/axe-core": {
3671 + "version": "4.1.2",
3672 + "dev": true,
3673 + "license": "MPL-2.0",
3674 + "engines": {
3675 + "node": ">=4"
3676 + }
3677 + },
3678 + "node_modules/axobject-query": {
3679 + "version": "2.2.0",
3680 + "dev": true,
3681 + "license": "Apache-2.0"
3682 + },
3683 + "node_modules/babel-eslint": {
3684 + "version": "10.1.0",
3685 + "dev": true,
3686 + "license": "MIT",
3687 + "dependencies": {
3688 + "@babel/code-frame": "^7.0.0",
3689 + "@babel/parser": "^7.7.0",
3690 + "@babel/traverse": "^7.7.0",
3691 + "@babel/types": "^7.7.0",
3692 + "eslint-visitor-keys": "^1.0.0",
3693 + "resolve": "^1.12.0"
3694 + },
3695 + "engines": {
3696 + "node": ">=6"
3697 + },
3698 + "peerDependencies": {
3699 + "eslint": ">= 4.12.1"
3700 + }
3701 + },
3702 + "node_modules/babel-extract-comments": {
3703 + "version": "1.0.0",
3704 + "dev": true,
3705 + "license": "MIT",
3706 + "dependencies": {
3707 + "babylon": "^6.18.0"
3708 + },
3709 + "engines": {
3710 + "node": ">=4"
3711 + }
3712 + },
3713 + "node_modules/babel-jest": {
3714 + "version": "26.6.3",
3715 + "dev": true,
3716 + "license": "MIT",
3717 + "dependencies": {
3718 + "@jest/transform": "^26.6.2",
3719 + "@jest/types": "^26.6.2",
3720 + "@types/babel__core": "^7.1.7",
3721 + "babel-plugin-istanbul": "^6.0.0",
3722 + "babel-preset-jest": "^26.6.2",
3723 + "chalk": "^4.0.0",
3724 + "graceful-fs": "^4.2.4",
3725 + "slash": "^3.0.0"
3726 + },
3727 + "engines": {
3728 + "node": ">= 10.14.2"
3729 + },
3730 + "peerDependencies": {
3731 + "@babel/core": "^7.0.0"
3732 + }
3733 + },
3734 + "node_modules/babel-jest/node_modules/@babel/core": {
3735 + "version": "7.12.3",
3736 + "dev": true,
3737 + "license": "MIT",
3738 + "peer": true,
3739 + "dependencies": {
3740 + "@babel/code-frame": "^7.10.4",
3741 + "@babel/generator": "^7.12.1",
3742 + "@babel/helper-module-transforms": "^7.12.1",
3743 + "@babel/helpers": "^7.12.1",
3744 + "@babel/parser": "^7.12.3",
3745 + "@babel/template": "^7.10.4",
3746 + "@babel/traverse": "^7.12.1",
3747 + "@babel/types": "^7.12.1",
3748 + "convert-source-map": "^1.7.0",
3749 + "debug": "^4.1.0",
3750 + "gensync": "^1.0.0-beta.1",
3751 + "json5": "^2.1.2",
3752 + "lodash": "^4.17.19",
3753 + "resolve": "^1.3.2",
3754 + "semver": "^5.4.1",
3755 + "source-map": "^0.5.0"
3756 + },
3757 + "engines": {
3758 + "node": ">=6.9.0"
3759 + },
3760 + "funding": {
3761 + "type": "opencollective",
3762 + "url": "https://opencollective.com/babel"
3763 + }
3764 + },
3765 + "node_modules/babel-jest/node_modules/@babel/plugin-syntax-bigint": {
3766 + "version": "7.8.3",
3767 + "dev": true,
3768 + "license": "MIT",
3769 + "dependencies": {
3770 + "@babel/helper-plugin-utils": "^7.8.0"
3771 + },
3772 + "peerDependencies": {
3773 + "@babel/core": "^7.0.0-0"
3774 + }
3775 + },
3776 + "node_modules/babel-jest/node_modules/@babel/plugin-syntax-import-meta": {
3777 + "version": "7.10.4",
3778 + "dev": true,
3779 + "license": "MIT",
3780 + "dependencies": {
3781 + "@babel/helper-plugin-utils": "^7.10.4"
3782 + },
3783 + "peerDependencies": {
3784 + "@babel/core": "^7.0.0-0"
3785 + }
3786 + },
3787 + "node_modules/babel-jest/node_modules/babel-preset-current-node-syntax": {
3788 + "version": "1.0.1",
3789 + "dev": true,
3790 + "license": "MIT",
3791 + "dependencies": {
3792 + "@babel/plugin-syntax-async-generators": "^7.8.4",
3793 + "@babel/plugin-syntax-bigint": "^7.8.3",
3794 + "@babel/plugin-syntax-class-properties": "^7.8.3",
3795 + "@babel/plugin-syntax-import-meta": "^7.8.3",
3796 + "@babel/plugin-syntax-json-strings": "^7.8.3",
3797 + "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3",
3798 + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3",
3799 + "@babel/plugin-syntax-numeric-separator": "^7.8.3",
3800 + "@babel/plugin-syntax-object-rest-spread": "^7.8.3",
3801 + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3",
3802 + "@babel/plugin-syntax-optional-chaining": "^7.8.3",
3803 + "@babel/plugin-syntax-top-level-await": "^7.8.3"
3804 + },
3805 + "peerDependencies": {
3806 + "@babel/core": "^7.0.0"
3807 + }
3808 + },
3809 + "node_modules/babel-jest/node_modules/babel-preset-jest": {
3810 + "version": "26.6.2",
3811 + "dev": true,
3812 + "license": "MIT",
3813 + "dependencies": {
3814 + "babel-plugin-jest-hoist": "^26.6.2",
3815 + "babel-preset-current-node-syntax": "^1.0.0"
3816 + },
3817 + "engines": {
3818 + "node": ">= 10.14.2"
3819 + },
3820 + "peerDependencies": {
3821 + "@babel/core": "^7.0.0"
3822 + }
3823 + },
3824 + "node_modules/babel-jest/node_modules/json5": {
3825 + "version": "2.2.0",
3826 + "dev": true,
3827 + "license": "MIT",
3828 + "peer": true,
3829 + "dependencies": {
3830 + "minimist": "^1.2.5"
3831 + },
3832 + "bin": {
3833 + "json5": "lib/cli.js"
3834 + },
3835 + "engines": {
3836 + "node": ">=6"
3837 + }
3838 + },
3839 + "node_modules/babel-jest/node_modules/source-map": {
3840 + "version": "0.5.7",
3841 + "dev": true,
3842 + "license": "BSD-3-Clause",
3843 + "peer": true,
3844 + "engines": {
3845 + "node": ">=0.10.0"
3846 + }
3847 + },
3848 + "node_modules/babel-plugin-dynamic-import-node": {
3849 + "version": "2.3.3",
3850 + "dev": true,
3851 + "license": "MIT",
3852 + "dependencies": {
3853 + "object.assign": "^4.1.0"
3854 + }
3855 + },
3856 + "node_modules/babel-plugin-istanbul": {
3857 + "version": "6.0.0",
3858 + "dev": true,
3859 + "license": "BSD-3-Clause",
3860 + "dependencies": {
3861 + "@babel/helper-plugin-utils": "^7.0.0",
3862 + "@istanbuljs/load-nyc-config": "^1.0.0",
3863 + "@istanbuljs/schema": "^0.1.2",
3864 + "istanbul-lib-instrument": "^4.0.0",
3865 + "test-exclude": "^6.0.0"
3866 + },
3867 + "engines": {
3868 + "node": ">=8"
3869 + }
3870 + },
3871 + "node_modules/babel-plugin-jest-hoist": {
3872 + "version": "26.6.2",
3873 + "dev": true,
3874 + "license": "MIT",
3875 + "dependencies": {
3876 + "@babel/template": "^7.3.3",
3877 + "@babel/types": "^7.3.3",
3878 + "@types/babel__core": "^7.0.0",
3879 + "@types/babel__traverse": "^7.0.6"
3880 + },
3881 + "engines": {
3882 + "node": ">= 10.14.2"
3883 + }
3884 + },
3885 + "node_modules/babel-plugin-macros": {
3886 + "version": "2.8.0",
3887 + "dev": true,
3888 + "license": "MIT",
3889 + "dependencies": {
3890 + "@babel/runtime": "^7.7.2",
3891 + "cosmiconfig": "^6.0.0",
3892 + "resolve": "^1.12.0"
3893 + }
3894 + },
3895 + "node_modules/babel-plugin-macros/node_modules/cosmiconfig": {
3896 + "version": "6.0.0",
3897 + "dev": true,
3898 + "license": "MIT",
3899 + "dependencies": {
3900 + "@types/parse-json": "^4.0.0",
3901 + "import-fresh": "^3.1.0",
3902 + "parse-json": "^5.0.0",
3903 + "path-type": "^4.0.0",
3904 + "yaml": "^1.7.2"
3905 + },
3906 + "engines": {
3907 + "node": ">=8"
3908 + }
3909 + },
3910 + "node_modules/babel-plugin-syntax-object-rest-spread": {
3911 + "version": "6.13.0",
3912 + "dev": true,
3913 + "license": "MIT"
3914 + },
3915 + "node_modules/babel-plugin-transform-object-rest-spread": {
3916 + "version": "6.26.0",
3917 + "dev": true,
3918 + "license": "MIT",
3919 + "dependencies": {
3920 + "babel-plugin-syntax-object-rest-spread": "^6.8.0",
3921 + "babel-runtime": "^6.26.0"
3922 + }
3923 + },
3924 + "node_modules/babel-plugin-transform-react-remove-prop-types": {
3925 + "version": "0.4.24",
3926 + "dev": true,
3927 + "license": "MIT"
3928 + },
3929 + "node_modules/babel-preset-react-app": {
3930 + "version": "10.0.0",
3931 + "dev": true,
3932 + "license": "MIT",
3933 + "dependencies": {
3934 + "@babel/core": "7.12.3",
3935 + "@babel/plugin-proposal-class-properties": "7.12.1",
3936 + "@babel/plugin-proposal-decorators": "7.12.1",
3937 + "@babel/plugin-proposal-nullish-coalescing-operator": "7.12.1",
3938 + "@babel/plugin-proposal-numeric-separator": "7.12.1",
3939 + "@babel/plugin-proposal-optional-chaining": "7.12.1",
3940 + "@babel/plugin-transform-flow-strip-types": "7.12.1",
3941 + "@babel/plugin-transform-react-display-name": "7.12.1",
3942 + "@babel/plugin-transform-runtime": "7.12.1",
3943 + "@babel/preset-env": "7.12.1",
3944 + "@babel/preset-react": "7.12.1",
3945 + "@babel/preset-typescript": "7.12.1",
3946 + "@babel/runtime": "7.12.1",
3947 + "babel-plugin-macros": "2.8.0",
3948 + "babel-plugin-transform-react-remove-prop-types": "0.4.24"
3949 + }
3950 + },
3951 + "node_modules/babel-preset-react-app/node_modules/@babel/core": {
3952 + "version": "7.12.3",
3953 + "dev": true,
3954 + "license": "MIT",
3955 + "dependencies": {
3956 + "@babel/code-frame": "^7.10.4",
3957 + "@babel/generator": "^7.12.1",
3958 + "@babel/helper-module-transforms": "^7.12.1",
3959 + "@babel/helpers": "^7.12.1",
3960 + "@babel/parser": "^7.12.3",
3961 + "@babel/template": "^7.10.4",
3962 + "@babel/traverse": "^7.12.1",
3963 + "@babel/types": "^7.12.1",
3964 + "convert-source-map": "^1.7.0",
3965 + "debug": "^4.1.0",
3966 + "gensync": "^1.0.0-beta.1",
3967 + "json5": "^2.1.2",
3968 + "lodash": "^4.17.19",
3969 + "resolve": "^1.3.2",
3970 + "semver": "^5.4.1",
3971 + "source-map": "^0.5.0"
3972 + },
3973 + "engines": {
3974 + "node": ">=6.9.0"
3975 + },
3976 + "funding": {
3977 + "type": "opencollective",
3978 + "url": "https://opencollective.com/babel"
3979 + }
3980 + },
3981 + "node_modules/babel-preset-react-app/node_modules/@babel/plugin-proposal-class-properties": {
3982 + "version": "7.12.1",
3983 + "dev": true,
3984 + "license": "MIT",
3985 + "dependencies": {
3986 + "@babel/helper-create-class-features-plugin": "^7.12.1",
3987 + "@babel/helper-plugin-utils": "^7.10.4"
3988 + },
3989 + "peerDependencies": {
3990 + "@babel/core": "^7.0.0-0"
3991 + }
3992 + },
3993 + "node_modules/babel-preset-react-app/node_modules/@babel/plugin-proposal-decorators": {
3994 + "version": "7.12.1",
3995 + "dev": true,
3996 + "license": "MIT",
3997 + "dependencies": {
3998 + "@babel/helper-create-class-features-plugin": "^7.12.1",
3999 + "@babel/helper-plugin-utils": "^7.10.4",
4000 + "@babel/plugin-syntax-decorators": "^7.12.1"
4001 + },
4002 + "peerDependencies": {
4003 + "@babel/core": "^7.0.0-0"
4004 + }
4005 + },
4006 + "node_modules/babel-preset-react-app/node_modules/@babel/plugin-proposal-nullish-coalescing-operator": {
4007 + "version": "7.12.1",
4008 + "dev": true,
4009 + "license": "MIT",
4010 + "dependencies": {
4011 + "@babel/helper-plugin-utils": "^7.10.4",
4012 + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0"
4013 + },
4014 + "peerDependencies": {
4015 + "@babel/core": "^7.0.0-0"
4016 + }
4017 + },
4018 + "node_modules/babel-preset-react-app/node_modules/@babel/plugin-proposal-numeric-separator": {
4019 + "version": "7.12.1",
4020 + "dev": true,
4021 + "license": "MIT",
4022 + "dependencies": {
4023 + "@babel/helper-plugin-utils": "^7.10.4",
4024 + "@babel/plugin-syntax-numeric-separator": "^7.10.4"
4025 + },
4026 + "peerDependencies": {
4027 + "@babel/core": "^7.0.0-0"
4028 + }
4029 + },
4030 + "node_modules/babel-preset-react-app/node_modules/@babel/plugin-proposal-optional-chaining": {
4031 + "version": "7.12.1",
4032 + "dev": true,
4033 + "license": "MIT",
4034 + "dependencies": {
4035 + "@babel/helper-plugin-utils": "^7.10.4",
4036 + "@babel/helper-skip-transparent-expression-wrappers": "^7.12.1",
4037 + "@babel/plugin-syntax-optional-chaining": "^7.8.0"
4038 + },
4039 + "peerDependencies": {
4040 + "@babel/core": "^7.0.0-0"
4041 + }
4042 + },
4043 + "node_modules/babel-preset-react-app/node_modules/@babel/plugin-syntax-decorators": {
4044 + "version": "7.12.13",
4045 + "dev": true,
4046 + "license": "MIT",
4047 + "dependencies": {
4048 + "@babel/helper-plugin-utils": "^7.12.13"
4049 + },
4050 + "peerDependencies": {
4051 + "@babel/core": "^7.0.0-0"
4052 + }
4053 + },
4054 + "node_modules/babel-preset-react-app/node_modules/@babel/plugin-syntax-flow": {
4055 + "version": "7.12.13",
4056 + "dev": true,
4057 + "license": "MIT",
4058 + "dependencies": {
4059 + "@babel/helper-plugin-utils": "^7.12.13"
4060 + },
4061 + "peerDependencies": {
4062 + "@babel/core": "^7.0.0-0"
4063 + }
4064 + },
4065 + "node_modules/babel-preset-react-app/node_modules/@babel/plugin-syntax-typescript": {
4066 + "version": "7.12.13",
4067 + "dev": true,
4068 + "license": "MIT",
4069 + "dependencies": {
4070 + "@babel/helper-plugin-utils": "^7.12.13"
4071 + },
4072 + "peerDependencies": {
4073 + "@babel/core": "^7.0.0-0"
4074 + }
4075 + },
4076 + "node_modules/babel-preset-react-app/node_modules/@babel/plugin-transform-flow-strip-types": {
4077 + "version": "7.12.1",
4078 + "dev": true,
4079 + "license": "MIT",
4080 + "dependencies": {
4081 + "@babel/helper-plugin-utils": "^7.10.4",
4082 + "@babel/plugin-syntax-flow": "^7.12.1"
4083 + },
4084 + "peerDependencies": {
4085 + "@babel/core": "^7.0.0-0"
4086 + }
4087 + },
4088 + "node_modules/babel-preset-react-app/node_modules/@babel/plugin-transform-react-display-name": {
4089 + "version": "7.12.1",
4090 + "dev": true,
4091 + "license": "MIT",
4092 + "dependencies": {
4093 + "@babel/helper-plugin-utils": "^7.10.4"
4094 + },
4095 + "peerDependencies": {
4096 + "@babel/core": "^7.0.0-0"
4097 + }
4098 + },
4099 + "node_modules/babel-preset-react-app/node_modules/@babel/plugin-transform-react-jsx": {
4100 + "version": "7.12.17",
4101 + "dev": true,
4102 + "license": "MIT",
4103 + "dependencies": {
4104 + "@babel/helper-annotate-as-pure": "^7.12.13",
4105 + "@babel/helper-module-imports": "^7.12.13",
4106 + "@babel/helper-plugin-utils": "^7.12.13",
4107 + "@babel/plugin-syntax-jsx": "^7.12.13",
4108 + "@babel/types": "^7.12.17"
4109 + },
4110 + "peerDependencies": {
4111 + "@babel/core": "^7.0.0-0"
4112 + }
4113 + },
4114 + "node_modules/babel-preset-react-app/node_modules/@babel/plugin-transform-react-jsx-development": {
4115 + "version": "7.12.17",
4116 + "dev": true,
4117 + "license": "MIT",
4118 + "dependencies": {
4119 + "@babel/plugin-transform-react-jsx": "^7.12.17"
4120 + },
4121 + "peerDependencies": {
4122 + "@babel/core": "^7.0.0-0"
4123 + }
4124 + },
4125 + "node_modules/babel-preset-react-app/node_modules/@babel/plugin-transform-react-jsx-development/node_modules/@babel/core": {
4126 + "version": "7.12.17",
4127 + "dev": true,
4128 + "license": "MIT",
4129 + "peer": true,
4130 + "dependencies": {
4131 + "@babel/code-frame": "^7.12.13",
4132 + "@babel/generator": "^7.12.17",
4133 + "@babel/helper-module-transforms": "^7.12.17",
4134 + "@babel/helpers": "^7.12.17",
4135 + "@babel/parser": "^7.12.17",
4136 + "@babel/template": "^7.12.13",
4137 + "@babel/traverse": "^7.12.17",
4138 + "@babel/types": "^7.12.17",
4139 + "convert-source-map": "^1.7.0",
4140 + "debug": "^4.1.0",
4141 + "gensync": "^1.0.0-beta.1",
4142 + "json5": "^2.1.2",
4143 + "lodash": "^4.17.19",
4144 + "semver": "^5.4.1",
4145 + "source-map": "^0.5.0"
4146 + },
4147 + "engines": {
4148 + "node": ">=6.9.0"
4149 + },
4150 + "funding": {
4151 + "type": "opencollective",
4152 + "url": "https://opencollective.com/babel"
4153 + }
4154 + },
4155 + "node_modules/babel-preset-react-app/node_modules/@babel/plugin-transform-react-jsx-self": {
4156 + "version": "7.12.13",
4157 + "dev": true,
4158 + "license": "MIT",
4159 + "dependencies": {
4160 + "@babel/helper-plugin-utils": "^7.12.13"
4161 + },
4162 + "peerDependencies": {
4163 + "@babel/core": "^7.0.0-0"
4164 + }
4165 + },
4166 + "node_modules/babel-preset-react-app/node_modules/@babel/plugin-transform-react-jsx-source": {
4167 + "version": "7.12.13",
4168 + "dev": true,
4169 + "license": "MIT",
4170 + "dependencies": {
4171 + "@babel/helper-plugin-utils": "^7.12.13"
4172 + },
4173 + "peerDependencies": {
4174 + "@babel/core": "^7.0.0-0"
4175 + }
4176 + },
4177 + "node_modules/babel-preset-react-app/node_modules/@babel/plugin-transform-react-jsx/node_modules/@babel/core": {
4178 + "version": "7.12.17",
4179 + "dev": true,
4180 + "license": "MIT",
4181 + "peer": true,
4182 + "dependencies": {
4183 + "@babel/code-frame": "^7.12.13",
4184 + "@babel/generator": "^7.12.17",
4185 + "@babel/helper-module-transforms": "^7.12.17",
4186 + "@babel/helpers": "^7.12.17",
4187 + "@babel/parser": "^7.12.17",
4188 + "@babel/template": "^7.12.13",
4189 + "@babel/traverse": "^7.12.17",
4190 + "@babel/types": "^7.12.17",
4191 + "convert-source-map": "^1.7.0",
4192 + "debug": "^4.1.0",
4193 + "gensync": "^1.0.0-beta.1",
4194 + "json5": "^2.1.2",
4195 + "lodash": "^4.17.19",
4196 + "semver": "^5.4.1",
4197 + "source-map": "^0.5.0"
4198 + },
4199 + "engines": {
4200 + "node": ">=6.9.0"
4201 + },
4202 + "funding": {
4203 + "type": "opencollective",
4204 + "url": "https://opencollective.com/babel"
4205 + }
4206 + },
4207 + "node_modules/babel-preset-react-app/node_modules/@babel/plugin-transform-react-jsx/node_modules/@babel/plugin-syntax-jsx": {
4208 + "version": "7.12.13",
4209 + "dev": true,
4210 + "license": "MIT",
4211 + "dependencies": {
4212 + "@babel/helper-plugin-utils": "^7.12.13"
4213 + },
4214 + "peerDependencies": {
4215 + "@babel/core": "^7.0.0-0"
4216 + }
4217 + },
4218 + "node_modules/babel-preset-react-app/node_modules/@babel/plugin-transform-react-pure-annotations": {
4219 + "version": "7.12.1",
4220 + "dev": true,
4221 + "license": "MIT",
4222 + "dependencies": {
4223 + "@babel/helper-annotate-as-pure": "^7.10.4",
4224 + "@babel/helper-plugin-utils": "^7.10.4"
4225 + },
4226 + "peerDependencies": {
4227 + "@babel/core": "^7.0.0-0"
4228 + }
4229 + },
4230 + "node_modules/babel-preset-react-app/node_modules/@babel/plugin-transform-react-pure-annotations/node_modules/@babel/core": {
4231 + "version": "7.12.17",
4232 + "dev": true,
4233 + "license": "MIT",
4234 + "peer": true,
4235 + "dependencies": {
4236 + "@babel/code-frame": "^7.12.13",
4237 + "@babel/generator": "^7.12.17",
4238 + "@babel/helper-module-transforms": "^7.12.17",
4239 + "@babel/helpers": "^7.12.17",
4240 + "@babel/parser": "^7.12.17",
4241 + "@babel/template": "^7.12.13",
4242 + "@babel/traverse": "^7.12.17",
4243 + "@babel/types": "^7.12.17",
4244 + "convert-source-map": "^1.7.0",
4245 + "debug": "^4.1.0",
4246 + "gensync": "^1.0.0-beta.1",
4247 + "json5": "^2.1.2",
4248 + "lodash": "^4.17.19",
4249 + "semver": "^5.4.1",
4250 + "source-map": "^0.5.0"
4251 + },
4252 + "engines": {
4253 + "node": ">=6.9.0"
4254 + },
4255 + "funding": {
4256 + "type": "opencollective",
4257 + "url": "https://opencollective.com/babel"
4258 + }
4259 + },
4260 + "node_modules/babel-preset-react-app/node_modules/@babel/plugin-transform-runtime": {
4261 + "version": "7.12.1",
4262 + "dev": true,
4263 + "license": "MIT",
4264 + "dependencies": {
4265 + "@babel/helper-module-imports": "^7.12.1",
4266 + "@babel/helper-plugin-utils": "^7.10.4",
4267 + "resolve": "^1.8.1",
4268 + "semver": "^5.5.1"
4269 + },
4270 + "peerDependencies": {
4271 + "@babel/core": "^7.0.0-0"
4272 + }
4273 + },
4274 + "node_modules/babel-preset-react-app/node_modules/@babel/plugin-transform-typescript": {
4275 + "version": "7.12.17",
4276 + "dev": true,
4277 + "license": "MIT",
4278 + "dependencies": {
4279 + "@babel/helper-create-class-features-plugin": "^7.12.17",
4280 + "@babel/helper-plugin-utils": "^7.12.13",
4281 + "@babel/plugin-syntax-typescript": "^7.12.13"
4282 + },
4283 + "peerDependencies": {
4284 + "@babel/core": "^7.0.0-0"
4285 + }
4286 + },
4287 + "node_modules/babel-preset-react-app/node_modules/@babel/preset-env": {
4288 + "version": "7.12.1",
4289 + "dev": true,
4290 + "license": "MIT",
4291 + "dependencies": {
4292 + "@babel/compat-data": "^7.12.1",
4293 + "@babel/helper-compilation-targets": "^7.12.1",
4294 + "@babel/helper-module-imports": "^7.12.1",
4295 + "@babel/helper-plugin-utils": "^7.10.4",
4296 + "@babel/helper-validator-option": "^7.12.1",
4297 + "@babel/plugin-proposal-async-generator-functions": "^7.12.1",
4298 + "@babel/plugin-proposal-class-properties": "^7.12.1",
4299 + "@babel/plugin-proposal-dynamic-import": "^7.12.1",
4300 + "@babel/plugin-proposal-export-namespace-from": "^7.12.1",
4301 + "@babel/plugin-proposal-json-strings": "^7.12.1",
4302 + "@babel/plugin-proposal-logical-assignment-operators": "^7.12.1",
4303 + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.12.1",
4304 + "@babel/plugin-proposal-numeric-separator": "^7.12.1",
4305 + "@babel/plugin-proposal-object-rest-spread": "^7.12.1",
4306 + "@babel/plugin-proposal-optional-catch-binding": "^7.12.1",
4307 + "@babel/plugin-proposal-optional-chaining": "^7.12.1",
4308 + "@babel/plugin-proposal-private-methods": "^7.12.1",
4309 + "@babel/plugin-proposal-unicode-property-regex": "^7.12.1",
4310 + "@babel/plugin-syntax-async-generators": "^7.8.0",
4311 + "@babel/plugin-syntax-class-properties": "^7.12.1",
4312 + "@babel/plugin-syntax-dynamic-import": "^7.8.0",
4313 + "@babel/plugin-syntax-export-namespace-from": "^7.8.3",
4314 + "@babel/plugin-syntax-json-strings": "^7.8.0",
4315 + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4",
4316 + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0",
4317 + "@babel/plugin-syntax-numeric-separator": "^7.10.4",
4318 + "@babel/plugin-syntax-object-rest-spread": "^7.8.0",
4319 + "@babel/plugin-syntax-optional-catch-binding": "^7.8.0",
4320 + "@babel/plugin-syntax-optional-chaining": "^7.8.0",
4321 + "@babel/plugin-syntax-top-level-await": "^7.12.1",
4322 + "@babel/plugin-transform-arrow-functions": "^7.12.1",
4323 + "@babel/plugin-transform-async-to-generator": "^7.12.1",
4324 + "@babel/plugin-transform-block-scoped-functions": "^7.12.1",
4325 + "@babel/plugin-transform-block-scoping": "^7.12.1",
4326 + "@babel/plugin-transform-classes": "^7.12.1",
4327 + "@babel/plugin-transform-computed-properties": "^7.12.1",
4328 + "@babel/plugin-transform-destructuring": "^7.12.1",
4329 + "@babel/plugin-transform-dotall-regex": "^7.12.1",
4330 + "@babel/plugin-transform-duplicate-keys": "^7.12.1",
4331 + "@babel/plugin-transform-exponentiation-operator": "^7.12.1",
4332 + "@babel/plugin-transform-for-of": "^7.12.1",
4333 + "@babel/plugin-transform-function-name": "^7.12.1",
4334 + "@babel/plugin-transform-literals": "^7.12.1",
4335 + "@babel/plugin-transform-member-expression-literals": "^7.12.1",
4336 + "@babel/plugin-transform-modules-amd": "^7.12.1",
4337 + "@babel/plugin-transform-modules-commonjs": "^7.12.1",
4338 + "@babel/plugin-transform-modules-systemjs": "^7.12.1",
4339 + "@babel/plugin-transform-modules-umd": "^7.12.1",
4340 + "@babel/plugin-transform-named-capturing-groups-regex": "^7.12.1",
4341 + "@babel/plugin-transform-new-target": "^7.12.1",
4342 + "@babel/plugin-transform-object-super": "^7.12.1",
4343 + "@babel/plugin-transform-parameters": "^7.12.1",
4344 + "@babel/plugin-transform-property-literals": "^7.12.1",
4345 + "@babel/plugin-transform-regenerator": "^7.12.1",
4346 + "@babel/plugin-transform-reserved-words": "^7.12.1",
4347 + "@babel/plugin-transform-shorthand-properties": "^7.12.1",
4348 + "@babel/plugin-transform-spread": "^7.12.1",
4349 + "@babel/plugin-transform-sticky-regex": "^7.12.1",
4350 + "@babel/plugin-transform-template-literals": "^7.12.1",
4351 + "@babel/plugin-transform-typeof-symbol": "^7.12.1",
4352 + "@babel/plugin-transform-unicode-escapes": "^7.12.1",
4353 + "@babel/plugin-transform-unicode-regex": "^7.12.1",
4354 + "@babel/preset-modules": "^0.1.3",
4355 + "@babel/types": "^7.12.1",
4356 + "core-js-compat": "^3.6.2",
4357 + "semver": "^5.5.0"
4358 + },
4359 + "peerDependencies": {
4360 + "@babel/core": "^7.0.0-0"
4361 + }
4362 + },
4363 + "node_modules/babel-preset-react-app/node_modules/@babel/preset-env/node_modules/@babel/plugin-proposal-class-properties": {
4364 + "version": "7.12.13",
4365 + "dev": true,
4366 + "license": "MIT",
4367 + "dependencies": {
4368 + "@babel/helper-create-class-features-plugin": "^7.12.13",
4369 + "@babel/helper-plugin-utils": "^7.12.13"
4370 + },
4371 + "peerDependencies": {
4372 + "@babel/core": "^7.0.0-0"
4373 + }
4374 + },
4375 + "node_modules/babel-preset-react-app/node_modules/@babel/preset-env/node_modules/@babel/plugin-proposal-class-properties/node_modules/@babel/core": {
4376 + "version": "7.12.17",
4377 + "dev": true,
4378 + "license": "MIT",
4379 + "peer": true,
4380 + "dependencies": {
4381 + "@babel/code-frame": "^7.12.13",
4382 + "@babel/generator": "^7.12.17",
4383 + "@babel/helper-module-transforms": "^7.12.17",
4384 + "@babel/helpers": "^7.12.17",
4385 + "@babel/parser": "^7.12.17",
4386 + "@babel/template": "^7.12.13",
4387 + "@babel/traverse": "^7.12.17",
4388 + "@babel/types": "^7.12.17",
4389 + "convert-source-map": "^1.7.0",
4390 + "debug": "^4.1.0",
4391 + "gensync": "^1.0.0-beta.1",
4392 + "json5": "^2.1.2",
4393 + "lodash": "^4.17.19",
4394 + "semver": "^5.4.1",
4395 + "source-map": "^0.5.0"
4396 + },
4397 + "engines": {
4398 + "node": ">=6.9.0"
4399 + },
4400 + "funding": {
4401 + "type": "opencollective",
4402 + "url": "https://opencollective.com/babel"
4403 + }
4404 + },
4405 + "node_modules/babel-preset-react-app/node_modules/@babel/preset-env/node_modules/@babel/plugin-proposal-nullish-coalescing-operator": {
4406 + "version": "7.12.13",
4407 + "dev": true,
4408 + "license": "MIT",
4409 + "dependencies": {
4410 + "@babel/helper-plugin-utils": "^7.12.13",
4411 + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0"
4412 + },
4413 + "peerDependencies": {
4414 + "@babel/core": "^7.0.0-0"
4415 + }
4416 + },
4417 + "node_modules/babel-preset-react-app/node_modules/@babel/preset-env/node_modules/@babel/plugin-proposal-nullish-coalescing-operator/node_modules/@babel/core": {
4418 + "version": "7.12.17",
4419 + "dev": true,
4420 + "license": "MIT",
4421 + "peer": true,
4422 + "dependencies": {
4423 + "@babel/code-frame": "^7.12.13",
4424 + "@babel/generator": "^7.12.17",
4425 + "@babel/helper-module-transforms": "^7.12.17",
4426 + "@babel/helpers": "^7.12.17",
4427 + "@babel/parser": "^7.12.17",
4428 + "@babel/template": "^7.12.13",
4429 + "@babel/traverse": "^7.12.17",
4430 + "@babel/types": "^7.12.17",
4431 + "convert-source-map": "^1.7.0",
4432 + "debug": "^4.1.0",
4433 + "gensync": "^1.0.0-beta.1",
4434 + "json5": "^2.1.2",
4435 + "lodash": "^4.17.19",
4436 + "semver": "^5.4.1",
4437 + "source-map": "^0.5.0"
4438 + },
4439 + "engines": {
4440 + "node": ">=6.9.0"
4441 + },
4442 + "funding": {
4443 + "type": "opencollective",
4444 + "url": "https://opencollective.com/babel"
4445 + }
4446 + },
4447 + "node_modules/babel-preset-react-app/node_modules/@babel/preset-env/node_modules/@babel/plugin-proposal-numeric-separator": {
4448 + "version": "7.12.13",
4449 + "dev": true,
4450 + "license": "MIT",
4451 + "dependencies": {
4452 + "@babel/helper-plugin-utils": "^7.12.13",
4453 + "@babel/plugin-syntax-numeric-separator": "^7.10.4"
4454 + },
4455 + "peerDependencies": {
4456 + "@babel/core": "^7.0.0-0"
4457 + }
4458 + },
4459 + "node_modules/babel-preset-react-app/node_modules/@babel/preset-env/node_modules/@babel/plugin-proposal-numeric-separator/node_modules/@babel/core": {
4460 + "version": "7.12.17",
4461 + "dev": true,
4462 + "license": "MIT",
4463 + "peer": true,
4464 + "dependencies": {
4465 + "@babel/code-frame": "^7.12.13",
4466 + "@babel/generator": "^7.12.17",
4467 + "@babel/helper-module-transforms": "^7.12.17",
4468 + "@babel/helpers": "^7.12.17",
4469 + "@babel/parser": "^7.12.17",
4470 + "@babel/template": "^7.12.13",
4471 + "@babel/traverse": "^7.12.17",
4472 + "@babel/types": "^7.12.17",
4473 + "convert-source-map": "^1.7.0",
4474 + "debug": "^4.1.0",
4475 + "gensync": "^1.0.0-beta.1",
4476 + "json5": "^2.1.2",
4477 + "lodash": "^4.17.19",
4478 + "semver": "^5.4.1",
4479 + "source-map": "^0.5.0"
4480 + },
4481 + "engines": {
4482 + "node": ">=6.9.0"
4483 + },
4484 + "funding": {
4485 + "type": "opencollective",
4486 + "url": "https://opencollective.com/babel"
4487 + }
4488 + },
4489 + "node_modules/babel-preset-react-app/node_modules/@babel/preset-env/node_modules/@babel/plugin-proposal-optional-chaining": {
4490 + "version": "7.12.17",
4491 + "dev": true,
4492 + "license": "MIT",
4493 + "dependencies": {
4494 + "@babel/helper-plugin-utils": "^7.12.13",
4495 + "@babel/helper-skip-transparent-expression-wrappers": "^7.12.1",
4496 + "@babel/plugin-syntax-optional-chaining": "^7.8.0"
4497 + },
4498 + "peerDependencies": {
4499 + "@babel/core": "^7.0.0-0"
4500 + }
4501 + },
4502 + "node_modules/babel-preset-react-app/node_modules/@babel/preset-env/node_modules/@babel/plugin-proposal-optional-chaining/node_modules/@babel/core": {
4503 + "version": "7.12.17",
4504 + "dev": true,
4505 + "license": "MIT",
4506 + "peer": true,
4507 + "dependencies": {
4508 + "@babel/code-frame": "^7.12.13",
4509 + "@babel/generator": "^7.12.17",
4510 + "@babel/helper-module-transforms": "^7.12.17",
4511 + "@babel/helpers": "^7.12.17",
4512 + "@babel/parser": "^7.12.17",
4513 + "@babel/template": "^7.12.13",
4514 + "@babel/traverse": "^7.12.17",
4515 + "@babel/types": "^7.12.17",
4516 + "convert-source-map": "^1.7.0",
4517 + "debug": "^4.1.0",
4518 + "gensync": "^1.0.0-beta.1",
4519 + "json5": "^2.1.2",
4520 + "lodash": "^4.17.19",
4521 + "semver": "^5.4.1",
4522 + "source-map": "^0.5.0"
4523 + },
4524 + "engines": {
4525 + "node": ">=6.9.0"
4526 + },
4527 + "funding": {
4528 + "type": "opencollective",
4529 + "url": "https://opencollective.com/babel"
4530 + }
4531 + },
4532 + "node_modules/babel-preset-react-app/node_modules/@babel/preset-react": {
4533 + "version": "7.12.1",
4534 + "dev": true,
4535 + "license": "MIT",
4536 + "dependencies": {
4537 + "@babel/helper-plugin-utils": "^7.10.4",
4538 + "@babel/plugin-transform-react-display-name": "^7.12.1",
4539 + "@babel/plugin-transform-react-jsx": "^7.12.1",
4540 + "@babel/plugin-transform-react-jsx-development": "^7.12.1",
4541 + "@babel/plugin-transform-react-jsx-self": "^7.12.1",
4542 + "@babel/plugin-transform-react-jsx-source": "^7.12.1",
4543 + "@babel/plugin-transform-react-pure-annotations": "^7.12.1"
4544 + },
4545 + "peerDependencies": {
4546 + "@babel/core": "^7.0.0-0"
4547 + }
4548 + },
4549 + "node_modules/babel-preset-react-app/node_modules/@babel/preset-react/node_modules/@babel/plugin-transform-react-display-name": {
4550 + "version": "7.12.13",
4551 + "dev": true,
4552 + "license": "MIT",
4553 + "dependencies": {
4554 + "@babel/helper-plugin-utils": "^7.12.13"
4555 + },
4556 + "peerDependencies": {
4557 + "@babel/core": "^7.0.0-0"
4558 + }
4559 + },
4560 + "node_modules/babel-preset-react-app/node_modules/@babel/preset-react/node_modules/@babel/plugin-transform-react-display-name/node_modules/@babel/core": {
4561 + "version": "7.12.17",
4562 + "dev": true,
4563 + "license": "MIT",
4564 + "peer": true,
4565 + "dependencies": {
4566 + "@babel/code-frame": "^7.12.13",
4567 + "@babel/generator": "^7.12.17",
4568 + "@babel/helper-module-transforms": "^7.12.17",
4569 + "@babel/helpers": "^7.12.17",
4570 + "@babel/parser": "^7.12.17",
4571 + "@babel/template": "^7.12.13",
4572 + "@babel/traverse": "^7.12.17",
4573 + "@babel/types": "^7.12.17",
4574 + "convert-source-map": "^1.7.0",
4575 + "debug": "^4.1.0",
4576 + "gensync": "^1.0.0-beta.1",
4577 + "json5": "^2.1.2",
4578 + "lodash": "^4.17.19",
4579 + "semver": "^5.4.1",
4580 + "source-map": "^0.5.0"
4581 + },
4582 + "engines": {
4583 + "node": ">=6.9.0"
4584 + },
4585 + "funding": {
4586 + "type": "opencollective",
4587 + "url": "https://opencollective.com/babel"
4588 + }
4589 + },
4590 + "node_modules/babel-preset-react-app/node_modules/@babel/preset-typescript": {
4591 + "version": "7.12.1",
4592 + "dev": true,
4593 + "license": "MIT",
4594 + "dependencies": {
4595 + "@babel/helper-plugin-utils": "^7.10.4",
4596 + "@babel/plugin-transform-typescript": "^7.12.1"
4597 + },
4598 + "peerDependencies": {
4599 + "@babel/core": "^7.0.0-0"
4600 + }
4601 + },
4602 + "node_modules/babel-preset-react-app/node_modules/@babel/runtime": {
4603 + "version": "7.12.1",
4604 + "dev": true,
4605 + "license": "MIT",
4606 + "dependencies": {
4607 + "regenerator-runtime": "^0.13.4"
4608 + }
4609 + },
4610 + "node_modules/babel-preset-react-app/node_modules/json5": {
4611 + "version": "2.2.0",
4612 + "dev": true,
4613 + "license": "MIT",
4614 + "dependencies": {
4615 + "minimist": "^1.2.5"
4616 + },
4617 + "bin": {
4618 + "json5": "lib/cli.js"
4619 + },
4620 + "engines": {
4621 + "node": ">=6"
4622 + }
4623 + },
4624 + "node_modules/babel-preset-react-app/node_modules/source-map": {
4625 + "version": "0.5.7",
4626 + "dev": true,
4627 + "license": "BSD-3-Clause",
4628 + "engines": {
4629 + "node": ">=0.10.0"
4630 + }
4631 + },
4632 + "node_modules/babel-runtime": {
4633 + "version": "6.26.0",
4634 + "dev": true,
4635 + "license": "MIT",
4636 + "dependencies": {
4637 + "core-js": "^2.4.0",
4638 + "regenerator-runtime": "^0.11.0"
4639 + }
4640 + },
4641 + "node_modules/babel-runtime/node_modules/core-js": {
4642 + "version": "2.6.12",
4643 + "dev": true,
4644 + "hasInstallScript": true,
4645 + "license": "MIT"
4646 + },
4647 + "node_modules/babel-runtime/node_modules/regenerator-runtime": {
4648 + "version": "0.11.1",
4649 + "dev": true,
4650 + "license": "MIT"
4651 + },
4652 + "node_modules/babylon": {
4653 + "version": "6.18.0",
4654 + "dev": true,
4655 + "license": "MIT",
4656 + "bin": {
4657 + "babylon": "bin/babylon.js"
4658 + }
4659 + },
4660 + "node_modules/balanced-match": {
4661 + "version": "1.0.0",
4662 + "dev": true,
4663 + "license": "MIT"
4664 + },
4665 + "node_modules/base": {
4666 + "version": "0.11.2",
4667 + "dev": true,
4668 + "license": "MIT",
4669 + "dependencies": {
4670 + "cache-base": "^1.0.1",
4671 + "class-utils": "^0.3.5",
4672 + "component-emitter": "^1.2.1",
4673 + "define-property": "^1.0.0",
4674 + "isobject": "^3.0.1",
4675 + "mixin-deep": "^1.2.0",
4676 + "pascalcase": "^0.1.1"
4677 + },
4678 + "engines": {
4679 + "node": ">=0.10.0"
4680 + }
4681 + },
4682 + "node_modules/base/node_modules/define-property": {
4683 + "version": "1.0.0",
4684 + "dev": true,
4685 + "license": "MIT",
4686 + "dependencies": {
4687 + "is-descriptor": "^1.0.0"
4688 + },
4689 + "engines": {
4690 + "node": ">=0.10.0"
4691 + }
4692 + },
4693 + "node_modules/base64-js": {
4694 + "version": "1.5.1",
4695 + "dev": true,
4696 + "funding": [
4697 + {
4698 + "type": "github",
4699 + "url": "https://github.com/sponsors/feross"
4700 + },
4701 + {
4702 + "type": "patreon",
4703 + "url": "https://www.patreon.com/feross"
4704 + },
4705 + {
4706 + "type": "consulting",
4707 + "url": "https://feross.org/support"
4708 + }
4709 + ],
4710 + "license": "MIT"
4711 + },
4712 + "node_modules/batch": {
4713 + "version": "0.6.1",
4714 + "dev": true,
4715 + "license": "MIT"
4716 + },
4717 + "node_modules/bcrypt-pbkdf": {
4718 + "version": "1.0.2",
4719 + "dev": true,
4720 + "license": "BSD-3-Clause",
4721 + "dependencies": {
4722 + "tweetnacl": "^0.14.3"
4723 + }
4724 + },
4725 + "node_modules/bfj": {
4726 + "version": "7.0.2",
4727 + "dev": true,
4728 + "license": "MIT",
4729 + "dependencies": {
4730 + "bluebird": "^3.5.5",
4731 + "check-types": "^11.1.1",
4732 + "hoopy": "^0.1.4",
4733 + "tryer": "^1.0.1"
4734 + },
4735 + "engines": {
4736 + "node": ">= 8.0.0"
4737 + }
4738 + },
4739 + "node_modules/big.js": {
4740 + "version": "5.2.2",
4741 + "dev": true,
4742 + "license": "MIT",
4743 + "engines": {
4744 + "node": "*"
4745 + }
4746 + },
4747 + "node_modules/binary-extensions": {
4748 + "version": "1.13.1",
4749 + "dev": true,
4750 + "license": "MIT",
4751 + "engines": {
4752 + "node": ">=0.10.0"
4753 + }
4754 + },
4755 + "node_modules/bluebird": {
4756 + "version": "3.7.2",
4757 + "dev": true,
4758 + "license": "MIT"
4759 + },
4760 + "node_modules/bn.js": {
4761 + "version": "4.11.9",
4762 + "dev": true,
4763 + "license": "MIT"
4764 + },
4765 + "node_modules/body-parser": {
4766 + "version": "1.19.0",
4767 + "dev": true,
4768 + "license": "MIT",
4769 + "dependencies": {
4770 + "bytes": "3.1.0",
4771 + "content-type": "~1.0.4",
4772 + "debug": "2.6.9",
4773 + "depd": "~1.1.2",
4774 + "http-errors": "1.7.2",
4775 + "iconv-lite": "0.4.24",
4776 + "on-finished": "~2.3.0",
4777 + "qs": "6.7.0",
4778 + "raw-body": "2.4.0",
4779 + "type-is": "~1.6.17"
4780 + },
4781 + "engines": {
4782 + "node": ">= 0.8"
4783 + }
4784 + },
4785 + "node_modules/body-parser/node_modules/debug": {
4786 + "version": "2.6.9",
4787 + "dev": true,
4788 + "license": "MIT",
4789 + "dependencies": {
4790 + "ms": "2.0.0"
4791 + }
4792 + },
4793 + "node_modules/body-parser/node_modules/ms": {
4794 + "version": "2.0.0",
4795 + "dev": true,
4796 + "license": "MIT"
4797 + },
4798 + "node_modules/bonjour": {
4799 + "version": "3.5.0",
4800 + "dev": true,
4801 + "license": "MIT",
4802 + "dependencies": {
4803 + "array-flatten": "^2.1.0",
4804 + "deep-equal": "^1.0.1",
4805 + "dns-equal": "^1.0.0",
4806 + "dns-txt": "^2.0.2",
4807 + "multicast-dns": "^6.0.1",
4808 + "multicast-dns-service-types": "^1.1.0"
4809 + }
4810 + },
4811 + "node_modules/bonjour/node_modules/array-flatten": {
4812 + "version": "2.1.2",
4813 + "dev": true,
4814 + "license": "MIT"
4815 + },
4816 + "node_modules/boolbase": {
4817 + "version": "1.0.0",
4818 + "dev": true,
4819 + "license": "ISC"
4820 + },
4821 + "node_modules/brace-expansion": {
4822 + "version": "1.1.11",
4823 + "dev": true,
4824 + "license": "MIT",
4825 + "dependencies": {
4826 + "balanced-match": "^1.0.0",
4827 + "concat-map": "0.0.1"
4828 + }
4829 + },
4830 + "node_modules/braces": {
4831 + "version": "2.3.2",
4832 + "dev": true,
4833 + "license": "MIT",
4834 + "dependencies": {
4835 + "arr-flatten": "^1.1.0",
4836 + "array-unique": "^0.3.2",
4837 + "extend-shallow": "^2.0.1",
4838 + "fill-range": "^4.0.0",
4839 + "isobject": "^3.0.1",
4840 + "repeat-element": "^1.1.2",
4841 + "snapdragon": "^0.8.1",
4842 + "snapdragon-node": "^2.0.1",
4843 + "split-string": "^3.0.2",
4844 + "to-regex": "^3.0.1"
4845 + },
4846 + "engines": {
4847 + "node": ">=0.10.0"
4848 + }
4849 + },
4850 + "node_modules/brorand": {
4851 + "version": "1.1.0",
4852 + "dev": true,
4853 + "license": "MIT"
4854 + },
4855 + "node_modules/browser-process-hrtime": {
4856 + "version": "1.0.0",
4857 + "dev": true,
4858 + "license": "BSD-2-Clause"
4859 + },
4860 + "node_modules/browserify-aes": {
4861 + "version": "1.2.0",
4862 + "dev": true,
4863 + "license": "MIT",
4864 + "dependencies": {
4865 + "buffer-xor": "^1.0.3",
4866 + "cipher-base": "^1.0.0",
4867 + "create-hash": "^1.1.0",
4868 + "evp_bytestokey": "^1.0.3",
4869 + "inherits": "^2.0.1",
4870 + "safe-buffer": "^5.0.1"
4871 + }
4872 + },
4873 + "node_modules/browserify-cipher": {
4874 + "version": "1.0.1",
4875 + "dev": true,
4876 + "license": "MIT",
4877 + "dependencies": {
4878 + "browserify-aes": "^1.0.4",
4879 + "browserify-des": "^1.0.0",
4880 + "evp_bytestokey": "^1.0.0"
4881 + }
4882 + },
4883 + "node_modules/browserify-des": {
4884 + "version": "1.0.2",
4885 + "dev": true,
4886 + "license": "MIT",
4887 + "dependencies": {
4888 + "cipher-base": "^1.0.1",
4889 + "des.js": "^1.0.0",
4890 + "inherits": "^2.0.1",
4891 + "safe-buffer": "^5.1.2"
4892 + }
4893 + },
4894 + "node_modules/browserify-rsa": {
4895 + "version": "4.1.0",
4896 + "dev": true,
4897 + "license": "MIT",
4898 + "dependencies": {
4899 + "bn.js": "^5.0.0",
4900 + "randombytes": "^2.0.1"
4901 + }
4902 + },
4903 + "node_modules/browserify-rsa/node_modules/bn.js": {
4904 + "version": "5.1.3",
4905 + "dev": true,
4906 + "license": "MIT"
4907 + },
4908 + "node_modules/browserify-sign": {
4909 + "version": "4.2.1",
4910 + "dev": true,
4911 + "license": "ISC",
4912 + "dependencies": {
4913 + "bn.js": "^5.1.1",
4914 + "browserify-rsa": "^4.0.1",
4915 + "create-hash": "^1.2.0",
4916 + "create-hmac": "^1.1.7",
4917 + "elliptic": "^6.5.3",
4918 + "inherits": "^2.0.4",
4919 + "parse-asn1": "^5.1.5",
4920 + "readable-stream": "^3.6.0",
4921 + "safe-buffer": "^5.2.0"
4922 + }
4923 + },
4924 + "node_modules/browserify-sign/node_modules/bn.js": {
4925 + "version": "5.1.3",
4926 + "dev": true,
4927 + "license": "MIT"
4928 + },
4929 + "node_modules/browserify-sign/node_modules/readable-stream": {
4930 + "version": "3.6.0",
4931 + "dev": true,
4932 + "license": "MIT",
4933 + "dependencies": {
4934 + "inherits": "^2.0.3",
4935 + "string_decoder": "^1.1.1",
4936 + "util-deprecate": "^1.0.1"
4937 + },
4938 + "engines": {
4939 + "node": ">= 6"
4940 + }
4941 + },
4942 + "node_modules/browserify-zlib": {
4943 + "version": "0.2.0",
4944 + "dev": true,
4945 + "license": "MIT",
4946 + "dependencies": {
4947 + "pako": "~1.0.5"
4948 + }
4949 + },
4950 + "node_modules/browserslist": {
4951 + "version": "4.16.3",
4952 + "dev": true,
4953 + "license": "MIT",
4954 + "dependencies": {
4955 + "caniuse-lite": "^1.0.30001181",
4956 + "colorette": "^1.2.1",
4957 + "electron-to-chromium": "^1.3.649",
4958 + "escalade": "^3.1.1",
4959 + "node-releases": "^1.1.70"
4960 + },
4961 + "bin": {
4962 + "browserslist": "cli.js"
4963 + },
4964 + "engines": {
4965 + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
4966 + },
4967 + "funding": {
4968 + "type": "opencollective",
4969 + "url": "https://opencollective.com/browserslist"
4970 + }
4971 + },
4972 + "node_modules/bser": {
4973 + "version": "2.1.1",
4974 + "dev": true,
4975 + "license": "Apache-2.0",
4976 + "dependencies": {
4977 + "node-int64": "^0.4.0"
4978 + }
4979 + },
4980 + "node_modules/buffer": {
4981 + "version": "4.9.2",
4982 + "dev": true,
4983 + "license": "MIT",
4984 + "dependencies": {
4985 + "base64-js": "^1.0.2",
4986 + "ieee754": "^1.1.4",
4987 + "isarray": "^1.0.0"
4988 + }
4989 + },
4990 + "node_modules/buffer-from": {
4991 + "version": "1.1.1",
4992 + "dev": true,
4993 + "license": "MIT"
4994 + },
4995 + "node_modules/buffer-indexof": {
4996 + "version": "1.1.1",
4997 + "dev": true,
4998 + "license": "MIT"
4999 + },

This file is too large to show in full.

frontend/package.json new
+48
@@ -0,0 +1,48 @@
1 +{
2 + "name": "frontend",
3 + "version": "0.1.0",
4 + "private": true,
5 + "proxy": "http://localhost",
6 + "dependencies": {
7 + "react": "^17.0.2",
8 + "react-dom": "^17.0.2",
9 + "react-router-dom": "^6.1.1",
10 + "web-vitals": "^1.0.1"
11 + },
12 + "devDependencies": {
13 + "@testing-library/jest-dom": "^5.11.4",
14 + "@testing-library/react": "^11.1.0",
15 + "@testing-library/user-event": "^12.1.10",
16 + "@types/jest": "^26.0.15",
17 + "@types/node": "^12.0.0",
18 + "@types/react": "^17.0.0",
19 + "@types/react-dom": "^17.0.0",
20 + "react-scripts": "4.0.3",
21 + "typescript": "^4.1.2"
22 + },
23 + "scripts": {
24 + "start": "react-scripts start",
25 + "build": "react-scripts build",
26 + "test": "react-scripts test",
27 + "test-dep": "npm audit --production",
28 + "eject": "react-scripts eject"
29 + },
30 + "eslintConfig": {
31 + "extends": [
32 + "react-app",
33 + "react-app/jest"
34 + ]
35 + },
36 + "browserslist": {
37 + "production": [
38 + ">0.2%",
39 + "not dead",
40 + "not op_mini all"
41 + ],
42 + "development": [
43 + "last 1 chrome version",
44 + "last 1 firefox version",
45 + "last 1 safari version"
46 + ]
47 + }
48 +}
frontend/public/favicon.ico
Binary files /dev/null and b/frontend/public/favicon.ico differ
frontend/public/index.html new
+43
@@ -0,0 +1,43 @@
1 +<!DOCTYPE html>
2 +<html lang="en">
3 + <head>
4 + <meta charset="utf-8" />
5 + <link rel="icon" href="%PUBLIC_URL%/favicon.ico" />
6 + <meta name="viewport" content="width=device-width, initial-scale=1" />
7 + <meta name="theme-color" content="#000000" />
8 + <meta
9 + name="description"
10 + content="Web site created using create-react-app"
11 + />
12 + <link rel="apple-touch-icon" href="%PUBLIC_URL%/logo192.png" />
13 + <!--
14 + manifest.json provides metadata used when your web app is installed on a
15 + user's mobile device or desktop. See https://developers.google.com/web/fundamentals/web-app-manifest/
16 + -->
17 + <link rel="manifest" href="%PUBLIC_URL%/manifest.json" />
18 + <!--
19 + Notice the use of %PUBLIC_URL% in the tags above.
20 + It will be replaced with the URL of the `public` folder during the build.
21 + Only files inside the `public` folder can be referenced from the HTML.
22 +
23 + Unlike "/favicon.ico" or "favicon.ico", "%PUBLIC_URL%/favicon.ico" will
24 + work correctly both with client-side routing and a non-root public URL.
25 + Learn how to configure a non-root public URL by running `npm run build`.
26 + -->
27 + <title>File Server</title>
28 + </head>
29 + <body>
30 + <noscript>You need to enable JavaScript to run this app.</noscript>
31 + <div id="root"></div>
32 + <!--
33 + This HTML file is a template.
34 + If you open it directly in the browser, you will see an empty page.
35 +
36 + You can add webfonts, meta tags, or analytics to this file.
37 + The build step will place the bundled scripts into the <body> tag.
38 +
39 + To begin the development, run `npm start` or `yarn start`.
40 + To create a production bundle, use `npm run build` or `yarn build`.
41 + -->
42 + </body>
43 +</html>
frontend/public/logo192.png
Binary files /dev/null and b/frontend/public/logo192.png differ
frontend/public/logo512.png
Binary files /dev/null and b/frontend/public/logo512.png differ
frontend/public/manifest.json new
+25
@@ -0,0 +1,25 @@
1 +{
2 + "short_name": "React App",
3 + "name": "Create React App Sample",
4 + "icons": [
5 + {
6 + "src": "favicon.ico",
7 + "sizes": "64x64 32x32 24x24 16x16",
8 + "type": "image/x-icon"
9 + },
10 + {
11 + "src": "logo192.png",
12 + "type": "image/png",
13 + "sizes": "192x192"
14 + },
15 + {
16 + "src": "logo512.png",
17 + "type": "image/png",
18 + "sizes": "512x512"
19 + }
20 + ],
21 + "start_url": ".",
22 + "display": "standalone",
23 + "theme_color": "#000000",
24 + "background_color": "#ffffff"
25 +}
frontend/public/robots.txt new
+3
@@ -0,0 +1,3 @@
1 +# https://www.robotstxt.org/robotstxt.html
2 +User-agent: *
3 +Disallow:
frontend/src/App.css new
+38
@@ -0,0 +1,38 @@
1 +.App {
2 + text-align: center;
3 +}
4 +
5 +.App-logo {
6 + height: 40vmin;
7 + pointer-events: none;
8 +}
9 +
10 +@media (prefers-reduced-motion: no-preference) {
11 + .App-logo {
12 + animation: App-logo-spin infinite 20s linear;
13 + }
14 +}
15 +
16 +.App-header {
17 + background-color: #282c34;
18 + min-height: 100vh;
19 + display: flex;
20 + flex-direction: column;
21 + align-items: center;
22 + justify-content: center;
23 + font-size: calc(10px + 2vmin);
24 + color: white;
25 +}
26 +
27 +.App-link {
28 + color: #61dafb;
29 +}
30 +
31 +@keyframes App-logo-spin {
32 + from {
33 + transform: rotate(0deg);
34 + }
35 + to {
36 + transform: rotate(360deg);
37 + }
38 +}
frontend/src/App.test.tsx new
+9
@@ -0,0 +1,9 @@
1 +import React from 'react';
2 +import { render, screen } from '@testing-library/react';
3 +import App from './App';
4 +
5 +test('renders learn react link', () => {
6 + render(<App/>);
7 + const linkElement = screen.getByText(/learn react/i);
8 + expect(linkElement).toBeInTheDocument();
9 +});
frontend/src/App.tsx new
+43
@@ -0,0 +1,43 @@
1 +import React from 'react'
2 +import { BrowserRouter, Link, Route, Routes, useLocation } from "react-router-dom"
3 +import { createElement as h, Fragment } from 'react'
4 +import './App.css'
5 +import { useApi } from './api'
6 +
7 +function App() {
8 + return h(BrowserRouter, {},
9 + h(Routes, {},
10 + h(Route, { path:'*', element:h(BrowseFiles) })
11 + )
12 + )
13 +}
14 +
15 +export default App;
16 +
17 +function BrowseFiles() {
18 + return h(Fragment, {},
19 + h(Head),
20 + h(FilesList))
21 +}
22 +
23 +function Head() {
24 + return null
25 +}
26 +
27 +interface FileObj { n:string, s?:number }
28 +
29 +function FilesList() {
30 + const res = useApi('files_list', { path: useLocation().pathname })?.list
31 + if (!res)
32 + return h(Loading)
33 + return h('ul', {}, res.map(({ n }:FileObj) => {
34 + const isDir = n.endsWith('/')
35 + return h('li', { key: n },
36 + isDir ? h(Link, { to: n }, n)
37 + : h('a', { href: n }, n))
38 + }))
39 +}
40 +
41 +function Loading() {
42 + return 'loading' as React.ReactNode as React.ReactElement
43 +}
frontend/src/api.ts renamed
+5 -5
@@ -1,7 +1,7 @@
1 -import { useEffect, useState } from "./main.js";
1 +import { useEffect, useState } from 'react';
2
3 -export function apiCall(cmd, params) {
4 - return fetch('/~/api/'+cmd, {
3 +export function apiCall(cmd: string, params?: object) : Promise<any> {
4 + return fetch('/~api/'+cmd, {
5 method: 'POST',
6 headers: { 'content-type': 'application/json' },
7 body: params && JSON.stringify(params),
@@ -14,10 +14,10 @@ export function apiCall(cmd, params) {
14 })
15 }
16
17 -export function useApi(cmd, params) {
17 +export function useApi(cmd: string, params?: object) : any {
18 const [x, setX] = useState()
19 useEffect(()=>{
20 apiCall(cmd, params).then(setX, setX)
21 - }, [cmd])
21 + }, [cmd, JSON.stringify(params)]) //eslint-disable-line
22 return x
23 }
\ No newline at end of file
frontend/src/index.css new
+13
@@ -0,0 +1,13 @@
1 +body {
2 + margin: 0;
3 + font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen',
4 + 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue',
5 + sans-serif;
6 + -webkit-font-smoothing: antialiased;
7 + -moz-osx-font-smoothing: grayscale;
8 +}
9 +
10 +code {
11 + font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New',
12 + monospace;
13 +}
frontend/src/index.tsx new
+17
@@ -0,0 +1,17 @@
1 +import React from 'react';
2 +import ReactDOM from 'react-dom';
3 +import './index.css';
4 +import App from './App';
5 +import reportWebVitals from './reportWebVitals';
6 +
7 +ReactDOM.render(
8 + <React.StrictMode>
9 + <App/>
10 + </React.StrictMode>,
11 + document.getElementById('root')
12 +);
13 +
14 +// If you want to start measuring performance in your app, pass a function
15 +// to log results (for example: reportWebVitals(console.log))
16 +// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals
17 +reportWebVitals();
frontend/src/logo.svg new
+1
@@ -0,0 +1 @@
1 +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 841.9 595.3"><g fill="#61DAFB"><path d="M666.3 296.5c0-32.5-40.7-63.3-103.1-82.4 14.4-63.6 8-114.2-20.2-130.4-6.5-3.8-14.1-5.6-22.4-5.6v22.3c4.6 0 8.3.9 11.4 2.6 13.6 7.8 19.5 37.5 14.9 75.7-1.1 9.4-2.9 19.3-5.1 29.4-19.6-4.8-41-8.5-63.5-10.9-13.5-18.5-27.5-35.3-41.6-50 32.6-30.3 63.2-46.9 84-46.9V78c-27.5 0-63.5 19.6-99.9 53.6-36.4-33.8-72.4-53.2-99.9-53.2v22.3c20.7 0 51.4 16.5 84 46.6-14 14.7-28 31.4-41.3 49.9-22.6 2.4-44 6.1-63.6 11-2.3-10-4-19.7-5.2-29-4.7-38.2 1.1-67.9 14.6-75.8 3-1.8 6.9-2.6 11.5-2.6V78.5c-8.4 0-16 1.8-22.6 5.6-28.1 16.2-34.4 66.7-19.9 130.1-62.2 19.2-102.7 49.9-102.7 82.3 0 32.5 40.7 63.3 103.1 82.4-14.4 63.6-8 114.2 20.2 130.4 6.5 3.8 14.1 5.6 22.5 5.6 27.5 0 63.5-19.6 99.9-53.6 36.4 33.8 72.4 53.2 99.9 53.2 8.4 0 16-1.8 22.6-5.6 28.1-16.2 34.4-66.7 19.9-130.1 62-19.1 102.5-49.9 102.5-82.3zm-130.2-66.7c-3.7 12.9-8.3 26.2-13.5 39.5-4.1-8-8.4-16-13.1-24-4.6-8-9.5-15.8-14.4-23.4 14.2 2.1 27.9 4.7 41 7.9zm-45.8 106.5c-7.8 13.5-15.8 26.3-24.1 38.2-14.9 1.3-30 2-45.2 2-15.1 0-30.2-.7-45-1.9-8.3-11.9-16.4-24.6-24.2-38-7.6-13.1-14.5-26.4-20.8-39.8 6.2-13.4 13.2-26.8 20.7-39.9 7.8-13.5 15.8-26.3 24.1-38.2 14.9-1.3 30-2 45.2-2 15.1 0 30.2.7 45 1.9 8.3 11.9 16.4 24.6 24.2 38 7.6 13.1 14.5 26.4 20.8 39.8-6.3 13.4-13.2 26.8-20.7 39.9zm32.3-13c5.4 13.4 10 26.8 13.8 39.8-13.1 3.2-26.9 5.9-41.2 8 4.9-7.7 9.8-15.6 14.4-23.7 4.6-8 8.9-16.1 13-24.1zM421.2 430c-9.3-9.6-18.6-20.3-27.8-32 9 .4 18.2.7 27.5.7 9.4 0 18.7-.2 27.8-.7-9 11.7-18.3 22.4-27.5 32zm-74.4-58.9c-14.2-2.1-27.9-4.7-41-7.9 3.7-12.9 8.3-26.2 13.5-39.5 4.1 8 8.4 16 13.1 24 4.7 8 9.5 15.8 14.4 23.4zM420.7 163c9.3 9.6 18.6 20.3 27.8 32-9-.4-18.2-.7-27.5-.7-9.4 0-18.7.2-27.8.7 9-11.7 18.3-22.4 27.5-32zm-74 58.9c-4.9 7.7-9.8 15.6-14.4 23.7-4.6 8-8.9 16-13 24-5.4-13.4-10-26.8-13.8-39.8 13.1-3.1 26.9-5.8 41.2-7.9zm-90.5 125.2c-35.4-15.1-58.3-34.9-58.3-50.6 0-15.7 22.9-35.6 58.3-50.6 8.6-3.7 18-7 27.7-10.1 5.7 19.6 13.2 40 22.5 60.9-9.2 20.8-16.6 41.1-22.2 60.6-9.9-3.1-19.3-6.5-28-10.2zM310 490c-13.6-7.8-19.5-37.5-14.9-75.7 1.1-9.4 2.9-19.3 5.1-29.4 19.6 4.8 41 8.5 63.5 10.9 13.5 18.5 27.5 35.3 41.6 50-32.6 30.3-63.2 46.9-84 46.9-4.5-.1-8.3-1-11.3-2.7zm237.2-76.2c4.7 38.2-1.1 67.9-14.6 75.8-3 1.8-6.9 2.6-11.5 2.6-20.7 0-51.4-16.5-84-46.6 14-14.7 28-31.4 41.3-49.9 22.6-2.4 44-6.1 63.6-11 2.3 10.1 4.1 19.8 5.2 29.1zm38.5-66.7c-8.6 3.7-18 7-27.7 10.1-5.7-19.6-13.2-40-22.5-60.9 9.2-20.8 16.6-41.1 22.2-60.6 9.9 3.1 19.3 6.5 28.1 10.2 35.4 15.1 58.3 34.9 58.3 50.6-.1 15.7-23 35.6-58.4 50.6zM320.8 78.4z"/><circle cx="420.9" cy="296.5" r="45.7"/><path d="M520.5 78.1z"/></g></svg>
\ No newline at end of file
frontend/src/react-app-env.d.ts new
+1
@@ -0,0 +1 @@
1 +/// <reference types="react-scripts" />
frontend/src/reportWebVitals.ts new
+15
@@ -0,0 +1,15 @@
1 +import { ReportHandler } from 'web-vitals';
2 +
3 +const reportWebVitals = (onPerfEntry?: ReportHandler) => {
4 + if (onPerfEntry) {
5 + import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {
6 + getCLS(onPerfEntry);
7 + getFID(onPerfEntry);
8 + getFCP(onPerfEntry);
9 + getLCP(onPerfEntry);
10 + getTTFB(onPerfEntry);
11 + });
12 + }
13 +};
14 +
15 +export default reportWebVitals;
frontend/src/setupTests.ts new
+5
@@ -0,0 +1,5 @@
1 +// jest-dom adds custom jest matchers for asserting on DOM nodes.
2 +// allows you to do things like:
3 +// expect(element).toHaveTextContent(/react/i)
4 +// learn more: https://github.com/testing-library/jest-dom
5 +import '@testing-library/jest-dom';
frontend/tpl.js deleted
-17
@@ -1,17 +0,0 @@
1 -assert(TPL, 'tpl');
2 -
3 -TPL.item =
4 - "<a href=\"{url}\" class='item-link'><img src='{icon-file}' class='item-icon' /><span class='item-label'>{label}</span></a>"
5 - +"<div class='item-details'><div class='item-details-wrapper'>"
6 - +"<div class='item-type'>{type}</div>"
7 - +"<div class='item-size'>{size}</div>"
8 - +"</div></div>";
9 -
10 -TPL.list_onObjectItem = function(item) {
11 - item.size = item.size ? formatBytes(item.size) : 'folder';
12 -};
13 -
14 -TPL.tiles_onObjectItem = function(item) {
15 - item.type = 'Type: '+item.type;
16 - item.size = item.size ? 'Size: '+formatBytes(item.size) : '';
17 -};
frontend/tsconfig.json new
+26
@@ -0,0 +1,26 @@
1 +{
2 + "compilerOptions": {
3 + "target": "es5",
4 + "lib": [
5 + "dom",
6 + "dom.iterable",
7 + "esnext"
8 + ],
9 + "allowJs": true,
10 + "skipLibCheck": true,
11 + "esModuleInterop": true,
12 + "allowSyntheticDefaultImports": true,
13 + "strict": true,
14 + "forceConsistentCasingInFileNames": true,
15 + "noFallthroughCasesInSwitch": true,
16 + "module": "esnext",
17 + "moduleResolution": "node",
18 + "resolveJsonModule": true,
19 + "isolatedModules": true,
20 + "noEmit": true,
21 + "jsx": "react-jsx"
22 + },
23 + "include": [
24 + "src"
25 + ]
26 +}
frontend/vfs.js deleted
-118
@@ -1,118 +0,0 @@
1 -$(function(){
2 - $('#items').on({
3 - mouseenter: function(){
4 - if (!$(this).isOverflowed()) return; // is our label clipped?
5 - var lbl = $(this).find('.item-label');
6 - // make some changes so it's hopefully fully visible. We actually just mark it, leaving the real work to your css rules.
7 - lbl.addClass('full-label');
8 - },
9 - mouseleave: function(){
10 - // undo changes made few lines above
11 - var lbl = $(this).find('.full-label');
12 - lbl.removeClass('full-label');
13 - if (lbl.data('remove bg')) {
14 - lbl.css('background-color','');
15 - lbl.removeData('remove bg',null);
16 - }
17 - },
18 - click: itemClickHandler
19 - }, '.item-link');
20 -
21 - /* display:float used by 'tiles' is CPU expensive when we get many items (500+ on a core2duo@2.1).
22 - * To ease this task we periodically set fixed line breaks.
23 - */
24 - var last;
25 - repeat(100, function(){
26 - if (currentMode !== 'tiles') {
27 - last = null;
28 - return;
29 - }
30 - var d = $('#items');
31 - var x = d.children(':first').width();
32 - if (!x) return; // no items
33 - var n = Math.floor((d.width() - 5) / x); // leave a small margin, otherwise the browser decides it is not truly fitting, and you get an undesired wrapping
34 - if ($.support.hover) n--; // we leave some space for popup properties
35 - if (n === last) return;
36 - last = n;
37 - d.children('.forced-br').removeClass('forced-br'); // clean
38 - d.children(':nth-child({0}n+1):not(:first)'.x(n)).addClass('forced-br'); // set new br
39 - });
40 -
41 -
42 -});
43 -
44 -// rebuild the DOM of items
45 -function redrawItems() {
46 - var x = $('#items').empty();
47 -
48 - if (!listFromServer) return;
49 -
50 - // add a link to the parent folder
51 - var cf = currentFolder; // shortcut
52 - if (cf > '/') {
53 - addItem({
54 - label: '&uarr;&uarr;',
55 - url: dirname(cf).includeTrailing('/'),
56 - type: 'folder',
57 - icon: 'folder'
58 - });
59 - }
60 -
61 - var n = listFromServer.items.length;
62 - var pages = Math.max(1, Math.ceil(n/currentPagination));
63 - if (currentPage >= pages) currentPage = pages-1;
64 - var overflow = (currentPagination && currentPagination < n);
65 - var ofs = overflow ? currentPage*currentPagination : 0;
66 - var max = currentPagination ? Math.min(currentPagination, n-ofs) : n;
67 -
68 - $('#paginator').remove();
69 - if (overflow) { // draw a paginator
70 - var d = $("<div id='paginator'>").insertBefore('#items');
71 - d.append("Pages ");
72 - for (var i=0; i<pages; i++) {
73 - $("<button>").text(i+1)
74 - .attr({page:i, disabled:i===currentPage}) // highlight current page (by disabling the button)
75 - .appendTo(d)
76 - .click(function(){
77 - currentPage = +$(this).attr('page');if (it.jquery)
78 - redrawItems();
79 - })
80 - }
81 - }
82 -
83 - for (var a=listFromServer.items, i=0; i<max; ++i) {
84 - var o = a[ofs+i]._clone(); // The item will be manipulated (also inside addItem), and we don't want to make this changes persistent over view modes
85 - o.icon = o.type;
86 - addItem(o);
87 - }
88 -} // redrawItems
89 -
90 -// build the DOM for the single item, applying possible filtering functions
91 -function addItem(it) {
92 - it._expand({'icon-file':getIconURI(it.icon)}); // make this additions before the hook, so it can change these too
93 - TPL('onObjectItem', it); // custom treatment, especially mode-based
94 - $('<li>').append(TPL.item.format(it))
95 - .appendTo('#items');
96 -} // addItem
97 -
98 -// called when an item is clicked
99 -function itemClickHandler(ev) {
100 - var x = $(this);
101 - var h = x.attr('href');
102 - if (h.substr(-1) == '/') {
103 - if (location.pathname != '/') { // reloads the page to have a neater URL
104 - location = '/#'+h.substr(1);
105 - return false;
106 - }
107 -
108 - location.hash = (h.startsWith(location.pathname)) ? h.substr(location.pathname.length) : h;
109 - var loader = $("<img src='/~/pics/loader.gif'>").css(x.find('.item-icon').offset()._expand({position:'absolute'})).appendTo('body');
110 - loadFolder(h, function(){ loader.remove() });
111 - return false;
112 - }
113 - if (!x.attr('target')) {
114 - x.attr('target', 'preview'); // open the file in a new window so the app doesn't stop
115 - }
116 - return true;
117 -} // itemClickHandler
118 -
package-lock.json
+224
@@ -5,16 +5,20 @@
5 "packages": {
6 "": {
7 "dependencies": {
8 + "@koa/router": "^10.1.1",
9 "fast-glob": "^3.2.7",
10 "koa": "^2.13.4",
11 + "koa-better-http-proxy": "^0.2.9",
12 "koa-bodyparser": "^4.3.0",
13 "koa-mount": "^4.0.0",
14 "koa-static": "^5.0.0"
15 },
16 "devDependencies": {
17 "@types/koa": "^2.13.4",
18 + "@types/koa__router": "^8.0.11",
19 "@types/koa-bodyparser": "^4.3.4",
20 "@types/koa-mount": "^4.0.1",
21 + "@types/koa-router": "^7.4.4",
22 "@types/koa-static": "^4.0.2",
23 "@types/node": "^16.11.12",
24 "nodemon": "^2.0.15",
@@ -43,6 +47,21 @@
47 "node": ">=12"
48 }
49 },
50 + "node_modules/@koa/router": {
51 + "version": "10.1.1",
52 + "resolved": "https://registry.npmjs.org/@koa/router/-/router-10.1.1.tgz",
53 + "integrity": "sha512-ORNjq5z4EmQPriKbR0ER3k4Gh7YGNhWDL7JBW+8wXDrHLbWYKYSJaOJ9aN06npF5tbTxe2JBOsurpJDAvjiXKw==",
54 + "dependencies": {
55 + "debug": "^4.1.1",
56 + "http-errors": "^1.7.3",
57 + "koa-compose": "^4.1.0",
58 + "methods": "^1.1.2",
59 + "path-to-regexp": "^6.1.0"
60 + },
61 + "engines": {
62 + "node": ">= 8.0.0"
63 + }
64 + },
65 "node_modules/@nodelib/fs.scandir": {
66 "version": "2.1.5",
67 "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
@@ -223,6 +242,15 @@
242 "@types/node": "*"
243 }
244 },
245 + "node_modules/@types/koa__router": {
246 + "version": "8.0.11",
247 + "resolved": "https://registry.npmjs.org/@types/koa__router/-/koa__router-8.0.11.tgz",
248 + "integrity": "sha512-WXgKWpBsbS14kzmzD9LeFapOIa678h7zvUHxDwXwSx4ETKXhXLVUAToX6jZ/U7EihM7qwyD9W/BZvB0MRu7MTQ==",
249 + "dev": true,
250 + "dependencies": {
251 + "@types/koa": "*"
252 + }
253 + },
254 "node_modules/@types/koa-bodyparser": {
255 "version": "4.3.4",
256 "resolved": "https://registry.npmjs.org/@types/koa-bodyparser/-/koa-bodyparser-4.3.4.tgz",
@@ -250,6 +278,15 @@
278 "@types/koa": "*"
279 }
280 },
281 + "node_modules/@types/koa-router": {
282 + "version": "7.4.4",
283 + "resolved": "https://registry.npmjs.org/@types/koa-router/-/koa-router-7.4.4.tgz",
284 + "integrity": "sha512-3dHlZ6CkhgcWeF6wafEUvyyqjWYfKmev3vy1PtOmr0mBc3wpXPU5E8fBBd4YQo5bRpHPfmwC5yDaX7s4jhIN6A==",
285 + "dev": true,
286 + "dependencies": {
287 + "@types/koa": "*"
288 + }
289 + },
290 "node_modules/@types/koa-send": {
291 "version": "4.1.3",
292 "resolved": "https://registry.npmjs.org/@types/koa-send/-/koa-send-4.1.3.tgz",
@@ -394,6 +431,11 @@
431 "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==",
432 "dev": true
433 },
434 + "node_modules/async": {
435 + "version": "1.0.0",
436 + "resolved": "https://registry.npmjs.org/async/-/async-1.0.0.tgz",
437 + "integrity": "sha1-+PwEyjoTeErenhZBr5hXjPvWR6k="
438 + },
439 "node_modules/balanced-match": {
440 "version": "1.0.2",
441 "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
@@ -661,6 +703,14 @@
703 "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
704 "dev": true
705 },
706 + "node_modules/colors": {
707 + "version": "1.0.3",
708 + "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz",
709 + "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=",
710 + "engines": {
711 + "node": ">=0.1.90"
712 + }
713 + },
714 "node_modules/concat-map": {
715 "version": "0.0.1",
716 "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
@@ -735,6 +785,14 @@
785 "node": ">=8"
786 }
787 },
788 + "node_modules/cycle": {
789 + "version": "1.0.3",
790 + "resolved": "https://registry.npmjs.org/cycle/-/cycle-1.0.3.tgz",
791 + "integrity": "sha1-IegLK+hYD5i0aPN5QwZisEbDStI=",
792 + "engines": {
793 + "node": ">=0.4.0"
794 + }
795 + },
796 "node_modules/debug": {
797 "version": "4.3.3",
798 "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz",
@@ -856,6 +914,11 @@
914 "once": "^1.4.0"
915 }
916 },
917 + "node_modules/es6-promise": {
918 + "version": "3.3.1",
919 + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-3.3.1.tgz",
920 + "integrity": "sha1-oIzd6EzNvzTQJ6FFG8kdS80ophM="
921 + },
922 "node_modules/escape-goat": {
923 "version": "2.1.1",
924 "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz",
@@ -870,6 +933,14 @@
933 "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
934 "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg="
935 },
936 + "node_modules/eyes": {
937 + "version": "0.1.8",
938 + "resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz",
939 + "integrity": "sha1-Ys8SAjTGg3hdkCNIqADvPgzCC8A=",
940 + "engines": {
941 + "node": "> 0.1.90"
942 + }
943 + },
944 "node_modules/fast-glob": {
945 "version": "3.2.7",
946 "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.7.tgz",
@@ -1294,6 +1365,11 @@
1365 "integrity": "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==",
1366 "dev": true
1367 },
1368 + "node_modules/isstream": {
1369 + "version": "0.1.2",
1370 + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
1371 + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo="
1372 + },
1373 "node_modules/json-buffer": {
1374 "version": "3.0.0",
1375 "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz",
@@ -1353,6 +1429,19 @@
1429 "node": "^4.8.4 || ^6.10.1 || ^7.10.1 || >= 8.1.4"
1430 }
1431 },
1432 + "node_modules/koa-better-http-proxy": {
1433 + "version": "0.2.9",
1434 + "resolved": "https://registry.npmjs.org/koa-better-http-proxy/-/koa-better-http-proxy-0.2.9.tgz",
1435 + "integrity": "sha512-v33AKm5WZw09cI0FSLbEPG0l7sAMDuwvm9ACgFp21GEQ2ekrx2ODQZ9N6dohi6XSMlLafJvwfoHKdeoE6oH9vQ==",
1436 + "dependencies": {
1437 + "es6-promise": "^3.3.1",
1438 + "raw-body": "^2.2.0",
1439 + "winston": "^2.3.1"
1440 + },
1441 + "engines": {
1442 + "node": ">=10.0.0"
1443 + }
1444 + },
1445 "node_modules/koa-bodyparser": {
1446 "version": "4.3.0",
1447 "resolved": "https://registry.npmjs.org/koa-bodyparser/-/koa-bodyparser-4.3.0.tgz",
@@ -1506,6 +1595,14 @@
1595 "node": ">= 8"
1596 }
1597 },
1598 + "node_modules/methods": {
1599 + "version": "1.1.2",
1600 + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
1601 + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=",
1602 + "engines": {
1603 + "node": ">= 0.6"
1604 + }
1605 + },
1606 "node_modules/micromatch": {
1607 "version": "4.0.4",
1608 "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz",
@@ -1730,6 +1827,11 @@
1827 "node": ">=0.10.0"
1828 }
1829 },
1830 + "node_modules/path-to-regexp": {
1831 + "version": "6.2.0",
1832 + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.2.0.tgz",
1833 + "integrity": "sha512-f66KywYG6+43afgE/8j/GoiNyygk/bnoCbps++3ErRKsIYkGGupyv07R2Ok5m9i67Iqc+T2g1eAUGUPzWhYTyg=="
1834 + },
1835 "node_modules/picomatch": {
1836 "version": "2.3.0",
1837 "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz",
@@ -2030,6 +2132,14 @@
2132 "integrity": "sha512-sDl4qMFpijcGw22U5w63KmD3cZJfBuFlVNbVMKje2keoKML7X2UzWbc4XrmEbDwg0NXJc3yv4/ox7b+JWb57kQ==",
2133 "dev": true
2134 },
2135 + "node_modules/stack-trace": {
2136 + "version": "0.0.10",
2137 + "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz",
2138 + "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=",
2139 + "engines": {
2140 + "node": "*"
2141 + }
2142 + },
2143 "node_modules/statuses": {
2144 "version": "1.5.0",
2145 "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
@@ -2321,6 +2431,22 @@
2431 "node": ">=8"
2432 }
2433 },
2434 + "node_modules/winston": {
2435 + "version": "2.4.5",
2436 + "resolved": "https://registry.npmjs.org/winston/-/winston-2.4.5.tgz",
2437 + "integrity": "sha512-TWoamHt5yYvsMarGlGEQE59SbJHqGsZV8/lwC+iCcGeAe0vUaOh+Lv6SYM17ouzC/a/LB1/hz/7sxFBtlu1l4A==",
2438 + "dependencies": {
2439 + "async": "~1.0.0",
2440 + "colors": "1.0.x",
2441 + "cycle": "1.0.x",
2442 + "eyes": "0.1.x",
2443 + "isstream": "0.1.x",
2444 + "stack-trace": "0.0.x"
2445 + },
2446 + "engines": {
2447 + "node": ">= 0.10.0"
2448 + }
2449 + },
2450 "node_modules/wrap-ansi": {
2451 "version": "7.0.0",
2452 "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
@@ -2405,6 +2531,18 @@
2531 "@cspotcode/source-map-consumer": "0.8.0"
2532 }
2533 },
2534 + "@koa/router": {
2535 + "version": "10.1.1",
2536 + "resolved": "https://registry.npmjs.org/@koa/router/-/router-10.1.1.tgz",
2537 + "integrity": "sha512-ORNjq5z4EmQPriKbR0ER3k4Gh7YGNhWDL7JBW+8wXDrHLbWYKYSJaOJ9aN06npF5tbTxe2JBOsurpJDAvjiXKw==",
2538 + "requires": {
2539 + "debug": "^4.1.1",
2540 + "http-errors": "^1.7.3",
2541 + "koa-compose": "^4.1.0",
2542 + "methods": "^1.1.2",
2543 + "path-to-regexp": "^6.1.0"
2544 + }
2545 + },
2546 "@nodelib/fs.scandir": {
2547 "version": "2.1.5",
2548 "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
@@ -2570,6 +2708,15 @@
2708 "@types/node": "*"
2709 }
2710 },
2711 + "@types/koa__router": {
2712 + "version": "8.0.11",
2713 + "resolved": "https://registry.npmjs.org/@types/koa__router/-/koa__router-8.0.11.tgz",
2714 + "integrity": "sha512-WXgKWpBsbS14kzmzD9LeFapOIa678h7zvUHxDwXwSx4ETKXhXLVUAToX6jZ/U7EihM7qwyD9W/BZvB0MRu7MTQ==",
2715 + "dev": true,
2716 + "requires": {
2717 + "@types/koa": "*"
2718 + }
2719 + },
2720 "@types/koa-bodyparser": {
2721 "version": "4.3.4",
2722 "resolved": "https://registry.npmjs.org/@types/koa-bodyparser/-/koa-bodyparser-4.3.4.tgz",
@@ -2597,6 +2744,15 @@
2744 "@types/koa": "*"
2745 }
2746 },
2747 + "@types/koa-router": {
2748 + "version": "7.4.4",
2749 + "resolved": "https://registry.npmjs.org/@types/koa-router/-/koa-router-7.4.4.tgz",
2750 + "integrity": "sha512-3dHlZ6CkhgcWeF6wafEUvyyqjWYfKmev3vy1PtOmr0mBc3wpXPU5E8fBBd4YQo5bRpHPfmwC5yDaX7s4jhIN6A==",
2751 + "dev": true,
2752 + "requires": {
2753 + "@types/koa": "*"
2754 + }
2755 + },
2756 "@types/koa-send": {
2757 "version": "4.1.3",
2758 "resolved": "https://registry.npmjs.org/@types/koa-send/-/koa-send-4.1.3.tgz",
@@ -2717,6 +2873,11 @@
2873 "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==",
2874 "dev": true
2875 },
2876 + "async": {
2877 + "version": "1.0.0",
2878 + "resolved": "https://registry.npmjs.org/async/-/async-1.0.0.tgz",
2879 + "integrity": "sha1-+PwEyjoTeErenhZBr5hXjPvWR6k="
2880 + },
2881 "balanced-match": {
2882 "version": "1.0.2",
2883 "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
@@ -2919,6 +3080,11 @@
3080 "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
3081 "dev": true
3082 },
3083 + "colors": {
3084 + "version": "1.0.3",
3085 + "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz",
3086 + "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs="
3087 + },
3088 "concat-map": {
3089 "version": "0.0.1",
3090 "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
@@ -2978,6 +3144,11 @@
3144 "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==",
3145 "dev": true
3146 },
3147 + "cycle": {
3148 + "version": "1.0.3",
3149 + "resolved": "https://registry.npmjs.org/cycle/-/cycle-1.0.3.tgz",
3150 + "integrity": "sha1-IegLK+hYD5i0aPN5QwZisEbDStI="
3151 + },
3152 "debug": {
3153 "version": "4.3.3",
3154 "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz",
@@ -3073,6 +3244,11 @@
3244 "once": "^1.4.0"
3245 }
3246 },
3247 + "es6-promise": {
3248 + "version": "3.3.1",
3249 + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-3.3.1.tgz",
3250 + "integrity": "sha1-oIzd6EzNvzTQJ6FFG8kdS80ophM="
3251 + },
3252 "escape-goat": {
3253 "version": "2.1.1",
3254 "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz",
@@ -3084,6 +3260,11 @@
3260 "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
3261 "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg="
3262 },
3263 + "eyes": {
3264 + "version": "0.1.8",
3265 + "resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz",
3266 + "integrity": "sha1-Ys8SAjTGg3hdkCNIqADvPgzCC8A="
3267 + },
3268 "fast-glob": {
3269 "version": "3.2.7",
3270 "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.7.tgz",
@@ -3389,6 +3570,11 @@
3570 "integrity": "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==",
3571 "dev": true
3572 },
3573 + "isstream": {
3574 + "version": "0.1.2",
3575 + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
3576 + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo="
3577 + },
3578 "json-buffer": {
3579 "version": "3.0.0",
3580 "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz",
@@ -3442,6 +3628,16 @@
3628 "vary": "^1.1.2"
3629 }
3630 },
3631 + "koa-better-http-proxy": {
3632 + "version": "0.2.9",
3633 + "resolved": "https://registry.npmjs.org/koa-better-http-proxy/-/koa-better-http-proxy-0.2.9.tgz",
3634 + "integrity": "sha512-v33AKm5WZw09cI0FSLbEPG0l7sAMDuwvm9ACgFp21GEQ2ekrx2ODQZ9N6dohi6XSMlLafJvwfoHKdeoE6oH9vQ==",
3635 + "requires": {
3636 + "es6-promise": "^3.3.1",
3637 + "raw-body": "^2.2.0",
3638 + "winston": "^2.3.1"
3639 + }
3640 + },
3641 "koa-bodyparser": {
3642 "version": "4.3.0",
3643 "resolved": "https://registry.npmjs.org/koa-bodyparser/-/koa-bodyparser-4.3.0.tgz",
@@ -3560,6 +3756,11 @@
3756 "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
3757 "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg=="
3758 },
3759 + "methods": {
3760 + "version": "1.1.2",
3761 + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
3762 + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4="
3763 + },
3764 "micromatch": {
3765 "version": "4.0.4",
3766 "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz",
@@ -3726,6 +3927,11 @@
3927 "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
3928 "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18="
3929 },
3930 + "path-to-regexp": {
3931 + "version": "6.2.0",
3932 + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.2.0.tgz",
3933 + "integrity": "sha512-f66KywYG6+43afgE/8j/GoiNyygk/bnoCbps++3ErRKsIYkGGupyv07R2Ok5m9i67Iqc+T2g1eAUGUPzWhYTyg=="
3934 + },
3935 "picomatch": {
3936 "version": "2.3.0",
3937 "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz",
@@ -3946,6 +4152,11 @@
4152 "integrity": "sha512-sDl4qMFpijcGw22U5w63KmD3cZJfBuFlVNbVMKje2keoKML7X2UzWbc4XrmEbDwg0NXJc3yv4/ox7b+JWb57kQ==",
4153 "dev": true
4154 },
4155 + "stack-trace": {
4156 + "version": "0.0.10",
4157 + "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz",
4158 + "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA="
4159 + },
4160 "statuses": {
4161 "version": "1.5.0",
4162 "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
@@ -4145,6 +4356,19 @@
4356 "string-width": "^4.0.0"
4357 }
4358 },
4359 + "winston": {
4360 + "version": "2.4.5",
4361 + "resolved": "https://registry.npmjs.org/winston/-/winston-2.4.5.tgz",
4362 + "integrity": "sha512-TWoamHt5yYvsMarGlGEQE59SbJHqGsZV8/lwC+iCcGeAe0vUaOh+Lv6SYM17ouzC/a/LB1/hz/7sxFBtlu1l4A==",
4363 + "requires": {
4364 + "async": "~1.0.0",
4365 + "colors": "1.0.x",
4366 + "cycle": "1.0.x",
4367 + "eyes": "0.1.x",
4368 + "isstream": "0.1.x",
4369 + "stack-trace": "0.0.x"
4370 + }
4371 + },
4372 "wrap-ansi": {
4373 "version": "7.0.0",
4374 "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
package.json
+3
@@ -4,14 +4,17 @@
4 "start": "node dist"
5 },
6 "dependencies": {
7 + "@koa/router": "^10.1.1",
8 "fast-glob": "^3.2.7",
9 "koa": "^2.13.4",
10 + "koa-better-http-proxy": "^0.2.9",
11 "koa-bodyparser": "^4.3.0",
12 "koa-mount": "^4.0.0",
13 "koa-static": "^5.0.0"
14 },
15 "devDependencies": {
16 "@types/koa": "^2.13.4",
17 + "@types/koa__router": "^8.0.11",
18 "@types/koa-bodyparser": "^4.3.4",
19 "@types/koa-mount": "^4.0.1",
20 "@types/koa-static": "^4.0.2",
src/apis.ts
+1 -2
@@ -12,11 +12,10 @@ export default {
12 const o = x.stats
13 const folder = x.path.endsWith('/')
14 return {
15 - n: x.name,
15 + n: x.name+(folder ? '/' : ''),
16 c: o?.ctime,
17 m: o?.mtime,
18 s: folder ? undefined : o?.size,
19 - d: folder || undefined,
19 }
20 })
21 return { list }
src/index.ts
+22 -14
@@ -1,19 +1,35 @@
1 import Koa from 'koa'
2 import serve from 'koa-static'
3 -import send from 'koa-send'
3 import mount from 'koa-mount'
4 import bodyParser from 'koa-bodyparser'
5 +import Router from '@koa/router'
6 +import proxy from 'koa-better-http-proxy'
7 import apis from './apis'
8
9 +const PORT = 80
10 +const FRONTEND = 'frontend/build'
11 +const DEV = process.env.NODE_ENV === 'development' ? 'DEV' : ''
12 +const API_URI = '/~api/'
13 +
14 +if (DEV)
15 + console.clear()
16 +
17 const srv = new Koa()
18 +srv.use(async (ctx, next) => {
19 + const r = ctx.request.req
20 + console.debug(r.method, r.url)
21 + await next()
22 +})
23 srv.use(preventCrossDir())
10 -srv.use(serveRoot())
11 -srv.use(bodyParser())
12 -srv.use(mount('/~/api/', api(apis)))
13 -srv.use(mount('/~/', serve('frontend')))
24 +
25 +srv.use(mount(API_URI, new Koa().use(bodyParser()).use(api(apis))))
26 +
27 +const router = new Router();
28 +router.get('/(.*)', DEV ? proxy('localhost:3000', {}) : serve(FRONTEND))
29 +srv.use(router.routes())
30
31 srv.on('error', err => console.error('server error', err))
16 -srv.listen(80, ()=> console.log('running',new Date().toLocaleString()))
32 +srv.listen(PORT, ()=> console.log('running on port', PORT, DEV, new Date().toLocaleString()))
33
34 function preventCrossDir() : Koa.Middleware {
35 return async (ctx, next) => {
@@ -23,14 +39,6 @@ function preventCrossDir() : Koa.Middleware {
39 }
40 }
41
26 -function serveRoot() : Koa.Middleware {
27 - return async (ctx, next) => {
28 - if (ctx.method === 'GET' && ctx.path.endsWith('/'))
29 - await send(ctx, 'frontend/index.html')
30 - await next()
31 - }
32 -}
33 -
42 type ApiHandler = (params?:any, ctx?:any) => any
43 type ApiHandlers = Record<string, ApiHandler>
44