o simple thing, where have you gone?

Seto Elkahfi committed Dec 29, 2024 at 02:05 UTC 08fb54563ebe5c8fa11025a42ad16ed6e8ee659d
49 files changed +63 -21835
.firebaserc deleted
-5
@@ -1,5 +0,0 @@
1 -{
2 - "projects": {
3 - "default": "blazing-fire-5965"
4 - }
5 -}
.gitignore deleted
-27
@@ -1,27 +0,0 @@
1 -# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
2 -
3 -# firebase
4 -.firebase/*
5 -
6 -# dependencies
7 -/node_modules
8 -/.pnp
9 -.pnp.js
10 -
11 -# testing
12 -/coverage
13 -
14 -# production
15 -/build
16 -/server/build/*
17 -
18 -# misc
19 -.DS_Store
20 -.env.local
21 -.env.development.local
22 -.env.test.local
23 -.env.production.local
24 -
25 -npm-debug.log*
26 -yarn-debug.log*
27 -yarn-error.log*
.nvmrc deleted
-1
@@ -1 +0,0 @@
1 -v20.5.0
.smb/nginx-setoelkahfi.com
+3 -6
@@ -3,17 +3,14 @@ server {
3 listen 443 ssl;
4
5 server_name setoelkahfi.com;
6 + root /var/www/setoelkahfi.com;
7 + index index.html
8
9 ssl_certificate /etc/letsencrypt/live/setoelkahfi.com/fullchain.pem;
10 ssl_certificate_key /etc/letsencrypt/live/setoelkahfi.com/privkey.pem;
11
12 location / {
11 - proxy_pass http://localhost:3003;
12 - proxy_http_version 1.1;
13 - proxy_set_header Upgrade $http_upgrade;
14 - proxy_set_header Connection 'upgrade';
15 - proxy_set_header Host $host;
16 - proxy_cache_bypass $http_upgrade;
13 + try_files $uri $uri/ =404;
14 }
15 }
16
.smb/post-receive deleted
-53
@@ -1,53 +0,0 @@
1 -#!/bin/bash
2 -
3 -# The bare git directory
4 -GIT_DIR=/home/deploy/setoelkahfi.com
5 -# The app directory
6 -WORK_TREE=/home/deploy/apps/ssr/setoelkahfi.com
7 -
8 -# Put environment variabels here
9 -. ~/.profile
10 -
11 -while read oldrev newrev ref
12 -do
13 - if [[ $ref =~ .*/main$ ]];
14 - then
15 - echo "🚀 Main ref received. Deploying main branch to production..."
16 - mkdir -p $WORK_TREE
17 - git --work-tree=$WORK_TREE --git-dir=$GIT_DIR checkout -f main
18 -
19 - # start deploy tasks
20 - cd $WORK_TREE
21 - # Configure nvm
22 - nvm install $(cat .nvmrc)
23 - nvm use
24 -
25 - # Install dependencies and build the app
26 - npm install
27 - npm run build
28 -
29 - # Check if SETOELKAHFI_COM_PORT defined in the environment variable.
30 - # If not, cancel the deployment.
31 - if [ -z ${SETOELKAHFI_COM_PORT+x} ]; then
32 - echo "❌ Deployment failed. SETOELKAHFI_COM_PORT is not defined."
33 - exit 1
34 - fi
35 -
36 - # Check if SETOELKAHFI_COM_PORT is a number.
37 - # If not, cancel the deployment.
38 - if ! [[ "$SETOELKAHFI_COM_PORT" =~ ^[0-9]+$ ]]; then
39 - echo "❌ Deployment failed. SETOELKAHFI_COM_PORT is not a number."
40 - exit 1
41 - fi
42 -
43 - # Kill existing SETOELKAHFI_COM_PORT process and start the server
44 - echo "🚀 Killing existing setoelkahfi.com process..."
45 - kill $(lsof -t -i:$SETOELKAHFI_COM_PORT)
46 - echo "🚀 Starting server..."
47 - npm run start > /dev/null 2>&1 &
48 -
49 - echo "✅ Deployment complete."
50 - else
51 - echo "Ref $ref successfully received. Doing nothing: only the main branch may be deployed on this server."
52 - fi
53 -done
README.md
+18 -77
@@ -1,87 +1,28 @@
1 -This project was bootstrapped with [Create React App](https://github.com/facebook/create-react-app) and deployed to the Firebase Hosting.
1 +# personal-website
2
3 -## Deployment
3 +This is the source and **nginx** config files for my personal website.
4
5 -1. Install Firebase CLI tool.
6 -2. Run `firebase login`.
7 -3. Run `npm run build` to build the project.
8 -4. RUn `firebase deploy` to deploy the new build.
5 +## deployment
6
10 -## SSR
7 +Given you have the key to the server:
8
12 -https://ui.dev/react-router-server-rendering
9 +```bash
10 +$ scp index.html deploy@api.smbcloud.xyz:/var/www/setoelkahfi.com
11 +```
12
14 -## Available Scripts
13 +Of course that will not work because of permission denied error. So, upload to home folder:
14
16 -In the project directory, you can run:
15 +```bash
16 +$ scp index.html deploy@api.smbcloud.xyz:
17 +$ scp -r src deploy@api.smbcloud.xyz:
18 +```
19
18 -### `npm start`
20 +Then move them to `/var/www/setoelkahfi.com/`.
21
20 -Runs the app in the development mode.<br>
21 -Open [http://localhost:3000](http://localhost:3000) to view it in the browser.
22 +## nginx
23
23 -The page will reload if you make edits.<br>
24 -You will also see any lint errors in the console.
24 +Download the **nginx** config for this website:
25
26 -### `npm test`
27 -
28 -Launches the test runner in the interactive watch mode.<br>
29 -See the section about [running tests](https://facebook.github.io/create-react-app/docs/running-tests) for more information.
30 -
31 -### `npm run build`
32 -
33 -Builds the app for production to the `build` folder.<br>
34 -It correctly bundles React in production mode and optimizes the build for the best performance.
35 -
36 -The build is minified and the filenames include the hashes.<br>
37 -Your app is ready to be deployed!
38 -
39 -See the section about [deployment](https://facebook.github.io/create-react-app/docs/deployment) for more information.
40 -
41 -### `npm run eject`
42 -
43 -**Note: this is a one-way operation. Once you `eject`, you can’t go back!**
44 -
45 -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.
46 -
47 -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.
48 -
49 -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.
50 -
51 -## Learn More
52 -
53 -You can learn more in the [Create React App documentation](https://facebook.github.io/create-react-app/docs/getting-started).
54 -
55 -To learn React, check out the [React documentation](https://reactjs.org/).
56 -
57 -### Code Splitting
58 -
59 -This section has moved here: https://facebook.github.io/create-react-app/docs/code-splitting
60 -
61 -### Analyzing the Bundle Size
62 -
63 -This section has moved here: https://facebook.github.io/create-react-app/docs/analyzing-the-bundle-size
64 -
65 -### Making a Progressive Web App
66 -
67 -This section has moved here: https://facebook.github.io/create-react-app/docs/making-a-progressive-web-app
68 -
69 -### Advanced Configuration
70 -
71 -This section has moved here: https://facebook.github.io/create-react-app/docs/advanced-configuration
72 -
73 -### Deployment
74 -
75 -This section has moved here: https://facebook.github.io/create-react-app/docs/deployment
76 -
77 -### `npm run build` fails to minify
78 -
79 -This section has moved here: https://facebook.github.io/create-react-app/docs/troubleshooting#npm-run-build-fails-to-minify
80 -
81 -
82 -## Firebase Integration
83 -
84 -Follow this instruction here https://www.robinwieruch.de/complete-firebase-authentication-react-tutorial
85 -
86 -Tldr;
87 -We use React Context API to provide a Firebase instance once at the top-level of the component hierarchy.
\ No newline at end of file
26 +```bash
27 +$ scp deploy@api.smbcloud.xyz:/etc/nginx/sites-enabled/setoelkahfi.com .smb/nginx-setoelkahfi.com
28 +```
\ No newline at end of file
firebase.json deleted
-16
@@ -1,16 +0,0 @@
1 -{
2 - "hosting": {
3 - "public": "build",
4 - "ignore": [
5 - "firebase.json",
6 - "**/.*",
7 - "**/node_modules/**"
8 - ],
9 - "rewrites": [
10 - {
11 - "source": "**",
12 - "destination": "/index.html"
13 - }
14 - ]
15 - }
16 -}
index.html new
+24
@@ -0,0 +1,24 @@
1 +<!DOCTYPE html>
2 +<html lang="en">
3 + <head>
4 + <meta charset="UTF-8" />
5 + <title>Error</title>
6 + <meta name="viewport" content="width=device-width, initial-scale=1.0" />
7 + <link rel="stylesheet" href="src/style.css" />
8 + </head>
9 + <body>
10 + <pre>
11 + TypeError: Cannot read properties of undefined (reading 'length')
12 + <div>
13 + at Home.render (/home/deploy/apps/<a href="https://www.scandinasia.eu/kunci-untuk-memahami-kenapa-framework-seperti-nextjs-ada/">ssr</a>/setoelkahfi.com/build/src/components/Home.js:141:19)
14 + at processChild (/home/deploy/apps/ssr/setoelkahfi.com/node_modules/react-dom/cjs/react-dom-server.node.development.js:3134:18)
15 + at resolve (/home/deploy/apps/ssr/setoelkahfi.com/node_modules/react-dom/cjs/react-dom-server.node.development.js:2960:5)
16 + at ReactDOMServerRenderer.render (/home/<a href="https://www.scandinasia.eu/push-to-deploy/">deploy</a>/apps/ssr/setoelkahfi.com/node_modules/react-dom/cjs/react-dom-server.node.development.js:3435:22)
17 + at ReactDOMServerRenderer.read (/home/deploy/apps/ssr/setoelkahfi.com/node_modules/react-dom/cjs/react-dom-server.node.development.js:3373:29)
18 + at Object.renderToString (/home/deploy/apps/ssr/setoelkahfi.com/node_modules/react-dom/cjs/react-dom-server.node.development.js:3988:27)
19 + at /home/deploy/apps/ssr/setoelkahfi.com/build/server/server.js:55:38
20 + at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
21 + </div>
22 + </pre>
23 + </body>
24 +</html>
package-lock.json deleted
-19640
@@ -1,19640 +0,0 @@
1 -{
2 - "name": "setoelkahfi.com",
3 - "version": "0.3.0",
4 - "lockfileVersion": 3,
5 - "requires": true,
6 - "packages": {
7 - "": {
8 - "name": "setoelkahfi.com",
9 - "version": "0.3.0",
10 - "dependencies": {
11 - "@babel/runtime": "^7.16.7",
12 - "@types/jest": "^24.9.1",
13 - "@types/node": "^13.13.52",
14 - "@types/react": "^16.14.43",
15 - "@types/react-dom": "^16.9.14",
16 - "@types/react-router-dom": "^5.3.2",
17 - "axios": "^0.25.0",
18 - "bootstrap": "5.1.3",
19 - "dexie": "^3.2.0",
20 - "express": "^4.18.2",
21 - "firebase": "^8.6.2",
22 - "react": "^16.14.0",
23 - "react-bootstrap": "^2.1.1",
24 - "react-dom": "^16.14.0",
25 - "react-icons": "^4.3.1",
26 - "react-intl": "^2.9.0",
27 - "react-rotating-text": "^1.4.1",
28 - "react-router-dom": "^5.3.0",
29 - "react-scripts": "^5.0.0",
30 - "react-youtube": "^7.14.0",
31 - "tone": "^14.7.77",
32 - "typescript": "^4.0.0"
33 - },
34 - "devDependencies": {
35 - "@types/express": "^4.17.17",
36 - "@types/react-intl": "^3.0.0"
37 - }
38 - },
39 - "node_modules/@aashutoshrathi/word-wrap": {
40 - "version": "1.2.6",
41 - "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz",
42 - "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==",
43 - "engines": {
44 - "node": ">=0.10.0"
45 - }
46 - },
47 - "node_modules/@alloc/quick-lru": {
48 - "version": "5.2.0",
49 - "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz",
50 - "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==",
51 - "engines": {
52 - "node": ">=10"
53 - },
54 - "funding": {
55 - "url": "https://github.com/sponsors/sindresorhus"
56 - }
57 - },
58 - "node_modules/@ampproject/remapping": {
59 - "version": "2.2.1",
60 - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz",
61 - "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==",
62 - "dependencies": {
63 - "@jridgewell/gen-mapping": "^0.3.0",
64 - "@jridgewell/trace-mapping": "^0.3.9"
65 - },
66 - "engines": {
67 - "node": ">=6.0.0"
68 - }
69 - },
70 - "node_modules/@babel/code-frame": {
71 - "version": "7.16.7",
72 - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz",
73 - "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==",
74 - "dependencies": {
75 - "@babel/highlight": "^7.16.7"
76 - },
77 - "engines": {
78 - "node": ">=6.9.0"
79 - }
80 - },
81 - "node_modules/@babel/compat-data": {
82 - "version": "7.22.9",
83 - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.22.9.tgz",
84 - "integrity": "sha512-5UamI7xkUcJ3i9qVDS+KFDEK8/7oJ55/sJMB1Ge7IEapr7KfdfV/HErR+koZwOfd+SgtFKOKRhRakdg++DcJpQ==",
85 - "engines": {
86 - "node": ">=6.9.0"
87 - }
88 - },
89 - "node_modules/@babel/core": {
90 - "version": "7.22.9",
91 - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.22.9.tgz",
92 - "integrity": "sha512-G2EgeufBcYw27U4hhoIwFcgc1XU7TlXJ3mv04oOv1WCuo900U/anZSPzEqNjwdjgffkk2Gs0AN0dW1CKVLcG7w==",
93 - "dependencies": {
94 - "@ampproject/remapping": "^2.2.0",
95 - "@babel/code-frame": "^7.22.5",
96 - "@babel/generator": "^7.22.9",
97 - "@babel/helper-compilation-targets": "^7.22.9",
98 - "@babel/helper-module-transforms": "^7.22.9",
99 - "@babel/helpers": "^7.22.6",
100 - "@babel/parser": "^7.22.7",
101 - "@babel/template": "^7.22.5",
102 - "@babel/traverse": "^7.22.8",
103 - "@babel/types": "^7.22.5",
104 - "convert-source-map": "^1.7.0",
105 - "debug": "^4.1.0",
106 - "gensync": "^1.0.0-beta.2",
107 - "json5": "^2.2.2",
108 - "semver": "^6.3.1"
109 - },
110 - "engines": {
111 - "node": ">=6.9.0"
112 - },
113 - "funding": {
114 - "type": "opencollective",
115 - "url": "https://opencollective.com/babel"
116 - }
117 - },
118 - "node_modules/@babel/core/node_modules/@babel/code-frame": {
119 - "version": "7.22.5",
120 - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.5.tgz",
121 - "integrity": "sha512-Xmwn266vad+6DAqEB2A6V/CcZVp62BbwVmcOJc2RPuwih1kw02TjQvWVWlcKGbBPd+8/0V5DEkOcizRGYsspYQ==",
122 - "dependencies": {
123 - "@babel/highlight": "^7.22.5"
124 - },
125 - "engines": {
126 - "node": ">=6.9.0"
127 - }
128 - },
129 - "node_modules/@babel/core/node_modules/semver": {
130 - "version": "6.3.1",
131 - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
132 - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
133 - "bin": {
134 - "semver": "bin/semver.js"
135 - }
136 - },
137 - "node_modules/@babel/eslint-parser": {
138 - "version": "7.22.9",
139 - "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.22.9.tgz",
140 - "integrity": "sha512-xdMkt39/nviO/4vpVdrEYPwXCsYIXSSAr6mC7WQsNIlGnuxKyKE7GZjalcnbSWiC4OXGNNN3UQPeHfjSC6sTDA==",
141 - "dependencies": {
142 - "@nicolo-ribaudo/eslint-scope-5-internals": "5.1.1-v1",
143 - "eslint-visitor-keys": "^2.1.0",
144 - "semver": "^6.3.1"
145 - },
146 - "engines": {
147 - "node": "^10.13.0 || ^12.13.0 || >=14.0.0"
148 - },
149 - "peerDependencies": {
150 - "@babel/core": ">=7.11.0",
151 - "eslint": "^7.5.0 || ^8.0.0"
152 - }
153 - },
154 - "node_modules/@babel/eslint-parser/node_modules/eslint-visitor-keys": {
155 - "version": "2.1.0",
156 - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz",
157 - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==",
158 - "engines": {
159 - "node": ">=10"
160 - }
161 - },
162 - "node_modules/@babel/eslint-parser/node_modules/semver": {
163 - "version": "6.3.1",
164 - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
165 - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
166 - "bin": {
167 - "semver": "bin/semver.js"
168 - }
169 - },
170 - "node_modules/@babel/generator": {
171 - "version": "7.22.9",
172 - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.22.9.tgz",
173 - "integrity": "sha512-KtLMbmicyuK2Ak/FTCJVbDnkN1SlT8/kceFTiuDiiRUUSMnHMidxSCdG4ndkTOHHpoomWe/4xkvHkEOncwjYIw==",
174 - "dependencies": {
175 - "@babel/types": "^7.22.5",
176 - "@jridgewell/gen-mapping": "^0.3.2",
177 - "@jridgewell/trace-mapping": "^0.3.17",
178 - "jsesc": "^2.5.1"
179 - },
180 - "engines": {
181 - "node": ">=6.9.0"
182 - }
183 - },
184 - "node_modules/@babel/helper-annotate-as-pure": {
185 - "version": "7.16.7",
186 - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.7.tgz",
187 - "integrity": "sha512-s6t2w/IPQVTAET1HitoowRGXooX8mCgtuP5195wD/QJPV6wYjpujCGF7JuMODVX2ZAJOf1GT6DT9MHEZvLOFSw==",
188 - "dependencies": {
189 - "@babel/types": "^7.16.7"
190 - },
191 - "engines": {
192 - "node": ">=6.9.0"
193 - }
194 - },
195 - "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": {
196 - "version": "7.16.7",
197 - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.16.7.tgz",
198 - "integrity": "sha512-C6FdbRaxYjwVu/geKW4ZeQ0Q31AftgRcdSnZ5/jsH6BzCJbtvXvhpfkbkThYSuutZA7nCXpPR6AD9zd1dprMkA==",
199 - "dependencies": {
200 - "@babel/helper-explode-assignable-expression": "^7.16.7",
201 - "@babel/types": "^7.16.7"
202 - },
203 - "engines": {
204 - "node": ">=6.9.0"
205 - }
206 - },
207 - "node_modules/@babel/helper-compilation-targets": {
208 - "version": "7.22.9",
209 - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.9.tgz",
210 - "integrity": "sha512-7qYrNM6HjpnPHJbopxmb8hSPoZ0gsX8IvUS32JGVoy+pU9e5N0nLr1VjJoR6kA4d9dmGLxNYOjeB8sUDal2WMw==",
211 - "dependencies": {
212 - "@babel/compat-data": "^7.22.9",
213 - "@babel/helper-validator-option": "^7.22.5",
214 - "browserslist": "^4.21.9",
215 - "lru-cache": "^5.1.1",
216 - "semver": "^6.3.1"
217 - },
218 - "engines": {
219 - "node": ">=6.9.0"
220 - },
221 - "peerDependencies": {
222 - "@babel/core": "^7.0.0"
223 - }
224 - },
225 - "node_modules/@babel/helper-compilation-targets/node_modules/semver": {
226 - "version": "6.3.1",
227 - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
228 - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
229 - "bin": {
230 - "semver": "bin/semver.js"
231 - }
232 - },
233 - "node_modules/@babel/helper-create-class-features-plugin": {
234 - "version": "7.16.10",
235 - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.16.10.tgz",
236 - "integrity": "sha512-wDeej0pu3WN/ffTxMNCPW5UCiOav8IcLRxSIyp/9+IF2xJUM9h/OYjg0IJLHaL6F8oU8kqMz9nc1vryXhMsgXg==",
237 - "dependencies": {
238 - "@babel/helper-annotate-as-pure": "^7.16.7",
239 - "@babel/helper-environment-visitor": "^7.16.7",
240 - "@babel/helper-function-name": "^7.16.7",
241 - "@babel/helper-member-expression-to-functions": "^7.16.7",
242 - "@babel/helper-optimise-call-expression": "^7.16.7",
243 - "@babel/helper-replace-supers": "^7.16.7",
244 - "@babel/helper-split-export-declaration": "^7.16.7"
245 - },
246 - "engines": {
247 - "node": ">=6.9.0"
248 - },
249 - "peerDependencies": {
250 - "@babel/core": "^7.0.0"
251 - }
252 - },
253 - "node_modules/@babel/helper-create-regexp-features-plugin": {
254 - "version": "7.16.7",
255 - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.16.7.tgz",
256 - "integrity": "sha512-fk5A6ymfp+O5+p2yCkXAu5Kyj6v0xh0RBeNcAkYUMDvvAAoxvSKXn+Jb37t/yWFiQVDFK1ELpUTD8/aLhCPu+g==",
257 - "dependencies": {
258 - "@babel/helper-annotate-as-pure": "^7.16.7",
259 - "regexpu-core": "^4.7.1"
260 - },
261 - "engines": {
262 - "node": ">=6.9.0"
263 - },
264 - "peerDependencies": {
265 - "@babel/core": "^7.0.0"
266 - }
267 - },
268 - "node_modules/@babel/helper-define-polyfill-provider": {
269 - "version": "0.3.1",
270 - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.1.tgz",
271 - "integrity": "sha512-J9hGMpJQmtWmj46B3kBHmL38UhJGhYX7eqkcq+2gsstyYt341HmPeWspihX43yVRA0mS+8GGk2Gckc7bY/HCmA==",
272 - "dependencies": {
273 - "@babel/helper-compilation-targets": "^7.13.0",
274 - "@babel/helper-module-imports": "^7.12.13",
275 - "@babel/helper-plugin-utils": "^7.13.0",
276 - "@babel/traverse": "^7.13.0",
277 - "debug": "^4.1.1",
278 - "lodash.debounce": "^4.0.8",
279 - "resolve": "^1.14.2",
280 - "semver": "^6.1.2"
281 - },
282 - "peerDependencies": {
283 - "@babel/core": "^7.4.0-0"
284 - }
285 - },
286 - "node_modules/@babel/helper-define-polyfill-provider/node_modules/semver": {
287 - "version": "6.3.0",
288 - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
289 - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
290 - "bin": {
291 - "semver": "bin/semver.js"
292 - }
293 - },
294 - "node_modules/@babel/helper-environment-visitor": {
295 - "version": "7.22.5",
296 - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.5.tgz",
297 - "integrity": "sha512-XGmhECfVA/5sAt+H+xpSg0mfrHq6FzNr9Oxh7PSEBBRUb/mL7Kz3NICXb194rCqAEdxkhPT1a88teizAFyvk8Q==",
298 - "engines": {
299 - "node": ">=6.9.0"
300 - }
301 - },
302 - "node_modules/@babel/helper-explode-assignable-expression": {
303 - "version": "7.16.7",
304 - "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.16.7.tgz",
305 - "integrity": "sha512-KyUenhWMC8VrxzkGP0Jizjo4/Zx+1nNZhgocs+gLzyZyB8SHidhoq9KK/8Ato4anhwsivfkBLftky7gvzbZMtQ==",
306 - "dependencies": {
307 - "@babel/types": "^7.16.7"
308 - },
309 - "engines": {
310 - "node": ">=6.9.0"
311 - }
312 - },
313 - "node_modules/@babel/helper-function-name": {
314 - "version": "7.22.5",
315 - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.22.5.tgz",
316 - "integrity": "sha512-wtHSq6jMRE3uF2otvfuD3DIvVhOsSNshQl0Qrd7qC9oQJzHvOL4qQXlQn2916+CXGywIjpGuIkoyZRRxHPiNQQ==",
317 - "dependencies": {
318 - "@babel/template": "^7.22.5",
319 - "@babel/types": "^7.22.5"
320 - },
321 - "engines": {
322 - "node": ">=6.9.0"
323 - }
324 - },
325 - "node_modules/@babel/helper-hoist-variables": {
326 - "version": "7.22.5",
327 - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz",
328 - "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==",
329 - "dependencies": {
330 - "@babel/types": "^7.22.5"
331 - },
332 - "engines": {
333 - "node": ">=6.9.0"
334 - }
335 - },
336 - "node_modules/@babel/helper-member-expression-to-functions": {
337 - "version": "7.16.7",
338 - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.16.7.tgz",
339 - "integrity": "sha512-VtJ/65tYiU/6AbMTDwyoXGPKHgTsfRarivm+YbB5uAzKUyuPjgZSgAFeG87FCigc7KNHu2Pegh1XIT3lXjvz3Q==",
340 - "dependencies": {
341 - "@babel/types": "^7.16.7"
342 - },
343 - "engines": {
344 - "node": ">=6.9.0"
345 - }
346 - },
347 - "node_modules/@babel/helper-module-imports": {
348 - "version": "7.22.5",
349 - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.5.tgz",
350 - "integrity": "sha512-8Dl6+HD/cKifutF5qGd/8ZJi84QeAKh+CEe1sBzz8UayBBGg1dAIJrdHOcOM5b2MpzWL2yuotJTtGjETq0qjXg==",
351 - "dependencies": {
352 - "@babel/types": "^7.22.5"
353 - },
354 - "engines": {
355 - "node": ">=6.9.0"
356 - }
357 - },
358 - "node_modules/@babel/helper-module-transforms": {
359 - "version": "7.22.9",
360 - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.22.9.tgz",
361 - "integrity": "sha512-t+WA2Xn5K+rTeGtC8jCsdAH52bjggG5TKRuRrAGNM/mjIbO4GxvlLMFOEz9wXY5I2XQ60PMFsAG2WIcG82dQMQ==",
362 - "dependencies": {
363 - "@babel/helper-environment-visitor": "^7.22.5",
364 - "@babel/helper-module-imports": "^7.22.5",
365 - "@babel/helper-simple-access": "^7.22.5",
366 - "@babel/helper-split-export-declaration": "^7.22.6",
367 - "@babel/helper-validator-identifier": "^7.22.5"
368 - },
369 - "engines": {
370 - "node": ">=6.9.0"
371 - },
372 - "peerDependencies": {
373 - "@babel/core": "^7.0.0"
374 - }
375 - },
376 - "node_modules/@babel/helper-optimise-call-expression": {
377 - "version": "7.16.7",
378 - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.16.7.tgz",
379 - "integrity": "sha512-EtgBhg7rd/JcnpZFXpBy0ze1YRfdm7BnBX4uKMBd3ixa3RGAE002JZB66FJyNH7g0F38U05pXmA5P8cBh7z+1w==",
380 - "dependencies": {
381 - "@babel/types": "^7.16.7"
382 - },
383 - "engines": {
384 - "node": ">=6.9.0"
385 - }
386 - },
387 - "node_modules/@babel/helper-plugin-utils": {
388 - "version": "7.16.7",
389 - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz",
390 - "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==",
391 - "engines": {
392 - "node": ">=6.9.0"
393 - }
394 - },
395 - "node_modules/@babel/helper-remap-async-to-generator": {
396 - "version": "7.16.8",
397 - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.16.8.tgz",
398 - "integrity": "sha512-fm0gH7Flb8H51LqJHy3HJ3wnE1+qtYR2A99K06ahwrawLdOFsCEWjZOrYricXJHoPSudNKxrMBUPEIPxiIIvBw==",
399 - "dependencies": {
400 - "@babel/helper-annotate-as-pure": "^7.16.7",
401 - "@babel/helper-wrap-function": "^7.16.8",
402 - "@babel/types": "^7.16.8"
403 - },
404 - "engines": {
405 - "node": ">=6.9.0"
406 - }
407 - },
408 - "node_modules/@babel/helper-replace-supers": {
409 - "version": "7.16.7",
410 - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.16.7.tgz",
411 - "integrity": "sha512-y9vsWilTNaVnVh6xiJfABzsNpgDPKev9HnAgz6Gb1p6UUwf9NepdlsV7VXGCftJM+jqD5f7JIEubcpLjZj5dBw==",
412 - "dependencies": {
413 - "@babel/helper-environment-visitor": "^7.16.7",
414 - "@babel/helper-member-expression-to-functions": "^7.16.7",
415 - "@babel/helper-optimise-call-expression": "^7.16.7",
416 - "@babel/traverse": "^7.16.7",
417 - "@babel/types": "^7.16.7"
418 - },
419 - "engines": {
420 - "node": ">=6.9.0"
421 - }
422 - },
423 - "node_modules/@babel/helper-simple-access": {
424 - "version": "7.22.5",
425 - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz",
426 - "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==",
427 - "dependencies": {
428 - "@babel/types": "^7.22.5"
429 - },
430 - "engines": {
431 - "node": ">=6.9.0"
432 - }
433 - },
434 - "node_modules/@babel/helper-skip-transparent-expression-wrappers": {
435 - "version": "7.16.0",
436 - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.16.0.tgz",
437 - "integrity": "sha512-+il1gTy0oHwUsBQZyJvukbB4vPMdcYBrFHa0Uc4AizLxbq6BOYC51Rv4tWocX9BLBDLZ4kc6qUFpQ6HRgL+3zw==",
438 - "dependencies": {
439 - "@babel/types": "^7.16.0"
440 - },
441 - "engines": {
442 - "node": ">=6.9.0"
443 - }
444 - },
445 - "node_modules/@babel/helper-split-export-declaration": {
446 - "version": "7.22.6",
447 - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz",
448 - "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==",
449 - "dependencies": {
450 - "@babel/types": "^7.22.5"
451 - },
452 - "engines": {
453 - "node": ">=6.9.0"
454 - }
455 - },
456 - "node_modules/@babel/helper-string-parser": {
457 - "version": "7.22.5",
458 - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz",
459 - "integrity": "sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==",
460 - "engines": {
461 - "node": ">=6.9.0"
462 - }
463 - },
464 - "node_modules/@babel/helper-validator-identifier": {
465 - "version": "7.22.5",
466 - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.5.tgz",
467 - "integrity": "sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ==",
468 - "engines": {
469 - "node": ">=6.9.0"
470 - }
471 - },
472 - "node_modules/@babel/helper-validator-option": {
473 - "version": "7.22.5",
474 - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.22.5.tgz",
475 - "integrity": "sha512-R3oB6xlIVKUnxNUxbmgq7pKjxpru24zlimpE8WK47fACIlM0II/Hm1RS8IaOI7NgCr6LNS+jl5l75m20npAziw==",
476 - "engines": {
477 - "node": ">=6.9.0"
478 - }
479 - },
480 - "node_modules/@babel/helper-wrap-function": {
481 - "version": "7.16.8",
482 - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.16.8.tgz",
483 - "integrity": "sha512-8RpyRVIAW1RcDDGTA+GpPAwV22wXCfKOoM9bet6TLkGIFTkRQSkH1nMQ5Yet4MpoXe1ZwHPVtNasc2w0uZMqnw==",
484 - "dependencies": {
485 - "@babel/helper-function-name": "^7.16.7",
486 - "@babel/template": "^7.16.7",
487 - "@babel/traverse": "^7.16.8",
488 - "@babel/types": "^7.16.8"
489 - },
490 - "engines": {
491 - "node": ">=6.9.0"
492 - }
493 - },
494 - "node_modules/@babel/helpers": {
495 - "version": "7.22.6",
496 - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.22.6.tgz",
497 - "integrity": "sha512-YjDs6y/fVOYFV8hAf1rxd1QvR9wJe1pDBZ2AREKq/SDayfPzgk0PBnVuTCE5X1acEpMMNOVUqoe+OwiZGJ+OaA==",
498 - "dependencies": {
499 - "@babel/template": "^7.22.5",
500 - "@babel/traverse": "^7.22.6",
501 - "@babel/types": "^7.22.5"
502 - },
503 - "engines": {
504 - "node": ">=6.9.0"
505 - }
506 - },
507 - "node_modules/@babel/highlight": {
508 - "version": "7.22.5",
509 - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.5.tgz",
510 - "integrity": "sha512-BSKlD1hgnedS5XRnGOljZawtag7H1yPfQp0tdNJCHoH6AZ+Pcm9VvkrK59/Yy593Ypg0zMxH2BxD1VPYUQ7UIw==",
511 - "dependencies": {
512 - "@babel/helper-validator-identifier": "^7.22.5",
513 - "chalk": "^2.0.0",
514 - "js-tokens": "^4.0.0"
515 - },
516 - "engines": {
517 - "node": ">=6.9.0"
518 - }
519 - },
520 - "node_modules/@babel/parser": {
521 - "version": "7.22.7",
522 - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.22.7.tgz",
523 - "integrity": "sha512-7NF8pOkHP5o2vpmGgNGcfAeCvOYhGLyA3Z4eBQkT1RJlWu47n63bCs93QfJ2hIAFCil7L5P2IWhs1oToVgrL0Q==",
524 - "bin": {
525 - "parser": "bin/babel-parser.js"
526 - },
527 - "engines": {
528 - "node": ">=6.0.0"
529 - }
530 - },
531 - "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": {
532 - "version": "7.16.7",
533 - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.16.7.tgz",
534 - "integrity": "sha512-anv/DObl7waiGEnC24O9zqL0pSuI9hljihqiDuFHC8d7/bjr/4RLGPWuc8rYOff/QPzbEPSkzG8wGG9aDuhHRg==",
535 - "dependencies": {
536 - "@babel/helper-plugin-utils": "^7.16.7"
537 - },
538 - "engines": {
539 - "node": ">=6.9.0"
540 - },
541 - "peerDependencies": {
542 - "@babel/core": "^7.0.0"
543 - }
544 - },
545 - "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": {
546 - "version": "7.16.7",
547 - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.16.7.tgz",
548 - "integrity": "sha512-di8vUHRdf+4aJ7ltXhaDbPoszdkh59AQtJM5soLsuHpQJdFQZOA4uGj0V2u/CZ8bJ/u8ULDL5yq6FO/bCXnKHw==",
549 - "dependencies": {
550 - "@babel/helper-plugin-utils": "^7.16.7",
551 - "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0",
552 - "@babel/plugin-proposal-optional-chaining": "^7.16.7"
553 - },
554 - "engines": {
555 - "node": ">=6.9.0"
556 - },
557 - "peerDependencies": {
558 - "@babel/core": "^7.13.0"
559 - }
560 - },
561 - "node_modules/@babel/plugin-proposal-async-generator-functions": {
562 - "version": "7.16.8",
563 - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.16.8.tgz",
564 - "integrity": "sha512-71YHIvMuiuqWJQkebWJtdhQTfd4Q4mF76q2IX37uZPkG9+olBxsX+rH1vkhFto4UeJZ9dPY2s+mDvhDm1u2BGQ==",
565 - "dependencies": {
566 - "@babel/helper-plugin-utils": "^7.16.7",
567 - "@babel/helper-remap-async-to-generator": "^7.16.8",
568 - "@babel/plugin-syntax-async-generators": "^7.8.4"
569 - },
570 - "engines": {
571 - "node": ">=6.9.0"
572 - },
573 - "peerDependencies": {
574 - "@babel/core": "^7.0.0-0"
575 - }
576 - },
577 - "node_modules/@babel/plugin-proposal-class-properties": {
578 - "version": "7.16.7",
579 - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.16.7.tgz",
580 - "integrity": "sha512-IobU0Xme31ewjYOShSIqd/ZGM/r/cuOz2z0MDbNrhF5FW+ZVgi0f2lyeoj9KFPDOAqsYxmLWZte1WOwlvY9aww==",
581 - "dependencies": {
582 - "@babel/helper-create-class-features-plugin": "^7.16.7",
583 - "@babel/helper-plugin-utils": "^7.16.7"
584 - },
585 - "engines": {
586 - "node": ">=6.9.0"
587 - },
588 - "peerDependencies": {
589 - "@babel/core": "^7.0.0-0"
590 - }
591 - },
592 - "node_modules/@babel/plugin-proposal-class-static-block": {
593 - "version": "7.16.7",
594 - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.16.7.tgz",
595 - "integrity": "sha512-dgqJJrcZoG/4CkMopzhPJjGxsIe9A8RlkQLnL/Vhhx8AA9ZuaRwGSlscSh42hazc7WSrya/IK7mTeoF0DP9tEw==",
596 - "dependencies": {
597 - "@babel/helper-create-class-features-plugin": "^7.16.7",
598 - "@babel/helper-plugin-utils": "^7.16.7",
599 - "@babel/plugin-syntax-class-static-block": "^7.14.5"
600 - },
601 - "engines": {
602 - "node": ">=6.9.0"
603 - },
604 - "peerDependencies": {
605 - "@babel/core": "^7.12.0"
606 - }
607 - },
608 - "node_modules/@babel/plugin-proposal-decorators": {
609 - "version": "7.16.7",
610 - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.16.7.tgz",
611 - "integrity": "sha512-DoEpnuXK14XV9btI1k8tzNGCutMclpj4yru8aXKoHlVmbO1s+2A+g2+h4JhcjrxkFJqzbymnLG6j/niOf3iFXQ==",
612 - "dependencies": {
613 - "@babel/helper-create-class-features-plugin": "^7.16.7",
614 - "@babel/helper-plugin-utils": "^7.16.7",
615 - "@babel/plugin-syntax-decorators": "^7.16.7"
616 - },
617 - "engines": {
618 - "node": ">=6.9.0"
619 - },
620 - "peerDependencies": {
621 - "@babel/core": "^7.0.0-0"
622 - }
623 - },
624 - "node_modules/@babel/plugin-proposal-dynamic-import": {
625 - "version": "7.16.7",
626 - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.16.7.tgz",
627 - "integrity": "sha512-I8SW9Ho3/8DRSdmDdH3gORdyUuYnk1m4cMxUAdu5oy4n3OfN8flDEH+d60iG7dUfi0KkYwSvoalHzzdRzpWHTg==",
628 - "dependencies": {
629 - "@babel/helper-plugin-utils": "^7.16.7",
630 - "@babel/plugin-syntax-dynamic-import": "^7.8.3"
631 - },
632 - "engines": {
633 - "node": ">=6.9.0"
634 - },
635 - "peerDependencies": {
636 - "@babel/core": "^7.0.0-0"
637 - }
638 - },
639 - "node_modules/@babel/plugin-proposal-export-namespace-from": {
640 - "version": "7.16.7",
641 - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.16.7.tgz",
642 - "integrity": "sha512-ZxdtqDXLRGBL64ocZcs7ovt71L3jhC1RGSyR996svrCi3PYqHNkb3SwPJCs8RIzD86s+WPpt2S73+EHCGO+NUA==",
643 - "dependencies": {
644 - "@babel/helper-plugin-utils": "^7.16.7",
645 - "@babel/plugin-syntax-export-namespace-from": "^7.8.3"
646 - },
647 - "engines": {
648 - "node": ">=6.9.0"
649 - },
650 - "peerDependencies": {
651 - "@babel/core": "^7.0.0-0"
652 - }
653 - },
654 - "node_modules/@babel/plugin-proposal-json-strings": {
655 - "version": "7.16.7",
656 - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.16.7.tgz",
657 - "integrity": "sha512-lNZ3EEggsGY78JavgbHsK9u5P3pQaW7k4axlgFLYkMd7UBsiNahCITShLjNQschPyjtO6dADrL24757IdhBrsQ==",
658 - "dependencies": {
659 - "@babel/helper-plugin-utils": "^7.16.7",
660 - "@babel/plugin-syntax-json-strings": "^7.8.3"
661 - },
662 - "engines": {
663 - "node": ">=6.9.0"
664 - },
665 - "peerDependencies": {
666 - "@babel/core": "^7.0.0-0"
667 - }
668 - },
669 - "node_modules/@babel/plugin-proposal-logical-assignment-operators": {
670 - "version": "7.16.7",
671 - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.16.7.tgz",
672 - "integrity": "sha512-K3XzyZJGQCr00+EtYtrDjmwX7o7PLK6U9bi1nCwkQioRFVUv6dJoxbQjtWVtP+bCPy82bONBKG8NPyQ4+i6yjg==",
673 - "dependencies": {
674 - "@babel/helper-plugin-utils": "^7.16.7",
675 - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4"
676 - },
677 - "engines": {
678 - "node": ">=6.9.0"
679 - },
680 - "peerDependencies": {
681 - "@babel/core": "^7.0.0-0"
682 - }
683 - },
684 - "node_modules/@babel/plugin-proposal-nullish-coalescing-operator": {
685 - "version": "7.16.7",
686 - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.16.7.tgz",
687 - "integrity": "sha512-aUOrYU3EVtjf62jQrCj63pYZ7k6vns2h/DQvHPWGmsJRYzWXZ6/AsfgpiRy6XiuIDADhJzP2Q9MwSMKauBQ+UQ==",
688 - "dependencies": {
689 - "@babel/helper-plugin-utils": "^7.16.7",
690 - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3"
691 - },
692 - "engines": {
693 - "node": ">=6.9.0"
694 - },
695 - "peerDependencies": {
696 - "@babel/core": "^7.0.0-0"
697 - }
698 - },
699 - "node_modules/@babel/plugin-proposal-numeric-separator": {
700 - "version": "7.16.7",
701 - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.16.7.tgz",
702 - "integrity": "sha512-vQgPMknOIgiuVqbokToyXbkY/OmmjAzr/0lhSIbG/KmnzXPGwW/AdhdKpi+O4X/VkWiWjnkKOBiqJrTaC98VKw==",
703 - "dependencies": {
704 - "@babel/helper-plugin-utils": "^7.16.7",
705 - "@babel/plugin-syntax-numeric-separator": "^7.10.4"
706 - },
707 - "engines": {
708 - "node": ">=6.9.0"
709 - },
710 - "peerDependencies": {
711 - "@babel/core": "^7.0.0-0"
712 - }
713 - },
714 - "node_modules/@babel/plugin-proposal-object-rest-spread": {
715 - "version": "7.16.7",
716 - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.16.7.tgz",
717 - "integrity": "sha512-3O0Y4+dw94HA86qSg9IHfyPktgR7q3gpNVAeiKQd+8jBKFaU5NQS1Yatgo4wY+UFNuLjvxcSmzcsHqrhgTyBUA==",
718 - "dependencies": {
719 - "@babel/compat-data": "^7.16.4",
720 - "@babel/helper-compilation-targets": "^7.16.7",
721 - "@babel/helper-plugin-utils": "^7.16.7",
722 - "@babel/plugin-syntax-object-rest-spread": "^7.8.3",
723 - "@babel/plugin-transform-parameters": "^7.16.7"
724 - },
725 - "engines": {
726 - "node": ">=6.9.0"
727 - },
728 - "peerDependencies": {
729 - "@babel/core": "^7.0.0-0"
730 - }
731 - },
732 - "node_modules/@babel/plugin-proposal-optional-catch-binding": {
733 - "version": "7.16.7",
734 - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.16.7.tgz",
735 - "integrity": "sha512-eMOH/L4OvWSZAE1VkHbr1vckLG1WUcHGJSLqqQwl2GaUqG6QjddvrOaTUMNYiv77H5IKPMZ9U9P7EaHwvAShfA==",
736 - "dependencies": {
737 - "@babel/helper-plugin-utils": "^7.16.7",
738 - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3"
739 - },
740 - "engines": {
741 - "node": ">=6.9.0"
742 - },
743 - "peerDependencies": {
744 - "@babel/core": "^7.0.0-0"
745 - }
746 - },
747 - "node_modules/@babel/plugin-proposal-optional-chaining": {
748 - "version": "7.16.7",
749 - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.16.7.tgz",
750 - "integrity": "sha512-eC3xy+ZrUcBtP7x+sq62Q/HYd674pPTb/77XZMb5wbDPGWIdUbSr4Agr052+zaUPSb+gGRnjxXfKFvx5iMJ+DA==",
751 - "dependencies": {
752 - "@babel/helper-plugin-utils": "^7.16.7",
753 - "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0",
754 - "@babel/plugin-syntax-optional-chaining": "^7.8.3"
755 - },
756 - "engines": {
757 - "node": ">=6.9.0"
758 - },
759 - "peerDependencies": {
760 - "@babel/core": "^7.0.0-0"
761 - }
762 - },
763 - "node_modules/@babel/plugin-proposal-private-methods": {
764 - "version": "7.16.7",
765 - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.16.7.tgz",
766 - "integrity": "sha512-7twV3pzhrRxSwHeIvFE6coPgvo+exNDOiGUMg39o2LiLo1Y+4aKpfkcLGcg1UHonzorCt7SNXnoMyCnnIOA8Sw==",
767 - "dependencies": {
768 - "@babel/helper-create-class-features-plugin": "^7.16.7",
769 - "@babel/helper-plugin-utils": "^7.16.7"
770 - },
771 - "engines": {
772 - "node": ">=6.9.0"
773 - },
774 - "peerDependencies": {
775 - "@babel/core": "^7.0.0-0"
776 - }
777 - },
778 - "node_modules/@babel/plugin-proposal-private-property-in-object": {
779 - "version": "7.16.7",
780 - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.16.7.tgz",
781 - "integrity": "sha512-rMQkjcOFbm+ufe3bTZLyOfsOUOxyvLXZJCTARhJr+8UMSoZmqTe1K1BgkFcrW37rAchWg57yI69ORxiWvUINuQ==",
782 - "dependencies": {
783 - "@babel/helper-annotate-as-pure": "^7.16.7",
784 - "@babel/helper-create-class-features-plugin": "^7.16.7",
785 - "@babel/helper-plugin-utils": "^7.16.7",
786 - "@babel/plugin-syntax-private-property-in-object": "^7.14.5"
787 - },
788 - "engines": {
789 - "node": ">=6.9.0"
790 - },
791 - "peerDependencies": {
792 - "@babel/core": "^7.0.0-0"
793 - }
794 - },
795 - "node_modules/@babel/plugin-proposal-unicode-property-regex": {
796 - "version": "7.16.7",
797 - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.16.7.tgz",
798 - "integrity": "sha512-QRK0YI/40VLhNVGIjRNAAQkEHws0cswSdFFjpFyt943YmJIU1da9uW63Iu6NFV6CxTZW5eTDCrwZUstBWgp/Rg==",
799 - "dependencies": {
800 - "@babel/helper-create-regexp-features-plugin": "^7.16.7",
801 - "@babel/helper-plugin-utils": "^7.16.7"
802 - },
803 - "engines": {
804 - "node": ">=4"
805 - },
806 - "peerDependencies": {
807 - "@babel/core": "^7.0.0-0"
808 - }
809 - },
810 - "node_modules/@babel/plugin-syntax-async-generators": {
811 - "version": "7.8.4",
812 - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz",
813 - "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==",
814 - "dependencies": {
815 - "@babel/helper-plugin-utils": "^7.8.0"
816 - },
817 - "peerDependencies": {
818 - "@babel/core": "^7.0.0-0"
819 - }
820 - },
821 - "node_modules/@babel/plugin-syntax-bigint": {
822 - "version": "7.8.3",
823 - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz",
824 - "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==",
825 - "dependencies": {
826 - "@babel/helper-plugin-utils": "^7.8.0"
827 - },
828 - "peerDependencies": {
829 - "@babel/core": "^7.0.0-0"
830 - }
831 - },
832 - "node_modules/@babel/plugin-syntax-class-properties": {
833 - "version": "7.12.13",
834 - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz",
835 - "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==",
836 - "dependencies": {
837 - "@babel/helper-plugin-utils": "^7.12.13"
838 - },
839 - "peerDependencies": {
840 - "@babel/core": "^7.0.0-0"
841 - }
842 - },
843 - "node_modules/@babel/plugin-syntax-class-static-block": {
844 - "version": "7.14.5",
845 - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz",
846 - "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==",
847 - "dependencies": {
848 - "@babel/helper-plugin-utils": "^7.14.5"
849 - },
850 - "engines": {
851 - "node": ">=6.9.0"
852 - },
853 - "peerDependencies": {
854 - "@babel/core": "^7.0.0-0"
855 - }
856 - },
857 - "node_modules/@babel/plugin-syntax-decorators": {
858 - "version": "7.16.7",
859 - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.16.7.tgz",
860 - "integrity": "sha512-vQ+PxL+srA7g6Rx6I1e15m55gftknl2X8GCUW1JTlkTaXZLJOS0UcaY0eK9jYT7IYf4awn6qwyghVHLDz1WyMw==",
861 - "dependencies": {
862 - "@babel/helper-plugin-utils": "^7.16.7"
863 - },
864 - "engines": {
865 - "node": ">=6.9.0"
866 - },
867 - "peerDependencies": {
868 - "@babel/core": "^7.0.0-0"
869 - }
870 - },
871 - "node_modules/@babel/plugin-syntax-dynamic-import": {
872 - "version": "7.8.3",
873 - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz",
874 - "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==",
875 - "dependencies": {
876 - "@babel/helper-plugin-utils": "^7.8.0"
877 - },
878 - "peerDependencies": {
879 - "@babel/core": "^7.0.0-0"
880 - }
881 - },
882 - "node_modules/@babel/plugin-syntax-export-namespace-from": {
883 - "version": "7.8.3",
884 - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz",
885 - "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==",
886 - "dependencies": {
887 - "@babel/helper-plugin-utils": "^7.8.3"
888 - },
889 - "peerDependencies": {
890 - "@babel/core": "^7.0.0-0"
891 - }
892 - },
893 - "node_modules/@babel/plugin-syntax-flow": {
894 - "version": "7.16.7",
895 - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.16.7.tgz",
896 - "integrity": "sha512-UDo3YGQO0jH6ytzVwgSLv9i/CzMcUjbKenL67dTrAZPPv6GFAtDhe6jqnvmoKzC/7htNTohhos+onPtDMqJwaQ==",
897 - "dependencies": {
898 - "@babel/helper-plugin-utils": "^7.16.7"
899 - },
900 - "engines": {
901 - "node": ">=6.9.0"
902 - },
903 - "peerDependencies": {
904 - "@babel/core": "^7.0.0-0"
905 - }
906 - },
907 - "node_modules/@babel/plugin-syntax-import-meta": {
908 - "version": "7.10.4",
909 - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz",
910 - "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==",
911 - "dependencies": {
912 - "@babel/helper-plugin-utils": "^7.10.4"
913 - },
914 - "peerDependencies": {
915 - "@babel/core": "^7.0.0-0"
916 - }
917 - },
918 - "node_modules/@babel/plugin-syntax-json-strings": {
919 - "version": "7.8.3",
920 - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz",
921 - "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==",
922 - "dependencies": {
923 - "@babel/helper-plugin-utils": "^7.8.0"
924 - },
925 - "peerDependencies": {
926 - "@babel/core": "^7.0.0-0"
927 - }
928 - },
929 - "node_modules/@babel/plugin-syntax-jsx": {
930 - "version": "7.16.7",
931 - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.16.7.tgz",
932 - "integrity": "sha512-Esxmk7YjA8QysKeT3VhTXvF6y77f/a91SIs4pWb4H2eWGQkCKFgQaG6hdoEVZtGsrAcb2K5BW66XsOErD4WU3Q==",
933 - "dependencies": {
934 - "@babel/helper-plugin-utils": "^7.16.7"
935 - },
936 - "engines": {
937 - "node": ">=6.9.0"
938 - },
939 - "peerDependencies": {
940 - "@babel/core": "^7.0.0-0"
941 - }
942 - },
943 - "node_modules/@babel/plugin-syntax-logical-assignment-operators": {
944 - "version": "7.10.4",
945 - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz",
946 - "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==",
947 - "dependencies": {
948 - "@babel/helper-plugin-utils": "^7.10.4"
949 - },
950 - "peerDependencies": {
951 - "@babel/core": "^7.0.0-0"
952 - }
953 - },
954 - "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": {
955 - "version": "7.8.3",
956 - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz",
957 - "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==",
958 - "dependencies": {
959 - "@babel/helper-plugin-utils": "^7.8.0"
960 - },
961 - "peerDependencies": {
962 - "@babel/core": "^7.0.0-0"
963 - }
964 - },
965 - "node_modules/@babel/plugin-syntax-numeric-separator": {
966 - "version": "7.10.4",
967 - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz",
968 - "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==",
969 - "dependencies": {
970 - "@babel/helper-plugin-utils": "^7.10.4"
971 - },
972 - "peerDependencies": {
973 - "@babel/core": "^7.0.0-0"
974 - }
975 - },
976 - "node_modules/@babel/plugin-syntax-object-rest-spread": {
977 - "version": "7.8.3",
978 - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz",
979 - "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==",
980 - "dependencies": {
981 - "@babel/helper-plugin-utils": "^7.8.0"
982 - },
983 - "peerDependencies": {
984 - "@babel/core": "^7.0.0-0"
985 - }
986 - },
987 - "node_modules/@babel/plugin-syntax-optional-catch-binding": {
988 - "version": "7.8.3",
989 - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz",
990 - "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==",
991 - "dependencies": {
992 - "@babel/helper-plugin-utils": "^7.8.0"
993 - },
994 - "peerDependencies": {
995 - "@babel/core": "^7.0.0-0"
996 - }
997 - },
998 - "node_modules/@babel/plugin-syntax-optional-chaining": {
999 - "version": "7.8.3",
1000 - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz",
1001 - "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==",
1002 - "dependencies": {
1003 - "@babel/helper-plugin-utils": "^7.8.0"
1004 - },
1005 - "peerDependencies": {
1006 - "@babel/core": "^7.0.0-0"
1007 - }
1008 - },
1009 - "node_modules/@babel/plugin-syntax-private-property-in-object": {
1010 - "version": "7.14.5",
1011 - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz",
1012 - "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==",
1013 - "dependencies": {
1014 - "@babel/helper-plugin-utils": "^7.14.5"
1015 - },
1016 - "engines": {
1017 - "node": ">=6.9.0"
1018 - },
1019 - "peerDependencies": {
1020 - "@babel/core": "^7.0.0-0"
1021 - }
1022 - },
1023 - "node_modules/@babel/plugin-syntax-top-level-await": {
1024 - "version": "7.14.5",
1025 - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz",
1026 - "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==",
1027 - "dependencies": {
1028 - "@babel/helper-plugin-utils": "^7.14.5"
1029 - },
1030 - "engines": {
1031 - "node": ">=6.9.0"
1032 - },
1033 - "peerDependencies": {
1034 - "@babel/core": "^7.0.0-0"
1035 - }
1036 - },
1037 - "node_modules/@babel/plugin-syntax-typescript": {
1038 - "version": "7.16.7",
1039 - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.16.7.tgz",
1040 - "integrity": "sha512-YhUIJHHGkqPgEcMYkPCKTyGUdoGKWtopIycQyjJH8OjvRgOYsXsaKehLVPScKJWAULPxMa4N1vCe6szREFlZ7A==",
1041 - "dependencies": {
1042 - "@babel/helper-plugin-utils": "^7.16.7"
1043 - },
1044 - "engines": {
1045 - "node": ">=6.9.0"
1046 - },
1047 - "peerDependencies": {
1048 - "@babel/core": "^7.0.0-0"
1049 - }
1050 - },
1051 - "node_modules/@babel/plugin-transform-arrow-functions": {
1052 - "version": "7.16.7",
1053 - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.16.7.tgz",
1054 - "integrity": "sha512-9ffkFFMbvzTvv+7dTp/66xvZAWASuPD5Tl9LK3Z9vhOmANo6j94rik+5YMBt4CwHVMWLWpMsriIc2zsa3WW3xQ==",
1055 - "dependencies": {
1056 - "@babel/helper-plugin-utils": "^7.16.7"
1057 - },
1058 - "engines": {
1059 - "node": ">=6.9.0"
1060 - },
1061 - "peerDependencies": {
1062 - "@babel/core": "^7.0.0-0"
1063 - }
1064 - },
1065 - "node_modules/@babel/plugin-transform-async-to-generator": {
1066 - "version": "7.16.8",
1067 - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.16.8.tgz",
1068 - "integrity": "sha512-MtmUmTJQHCnyJVrScNzNlofQJ3dLFuobYn3mwOTKHnSCMtbNsqvF71GQmJfFjdrXSsAA7iysFmYWw4bXZ20hOg==",
1069 - "dependencies": {
1070 - "@babel/helper-module-imports": "^7.16.7",
1071 - "@babel/helper-plugin-utils": "^7.16.7",
1072 - "@babel/helper-remap-async-to-generator": "^7.16.8"
1073 - },
1074 - "engines": {
1075 - "node": ">=6.9.0"
1076 - },
1077 - "peerDependencies": {
1078 - "@babel/core": "^7.0.0-0"
1079 - }
1080 - },
1081 - "node_modules/@babel/plugin-transform-block-scoped-functions": {
1082 - "version": "7.16.7",
1083 - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.16.7.tgz",
1084 - "integrity": "sha512-JUuzlzmF40Z9cXyytcbZEZKckgrQzChbQJw/5PuEHYeqzCsvebDx0K0jWnIIVcmmDOAVctCgnYs0pMcrYj2zJg==",
1085 - "dependencies": {
1086 - "@babel/helper-plugin-utils": "^7.16.7"
1087 - },
1088 - "engines": {
1089 - "node": ">=6.9.0"
1090 - },
1091 - "peerDependencies": {
1092 - "@babel/core": "^7.0.0-0"
1093 - }
1094 - },
1095 - "node_modules/@babel/plugin-transform-block-scoping": {
1096 - "version": "7.16.7",
1097 - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.16.7.tgz",
1098 - "integrity": "sha512-ObZev2nxVAYA4bhyusELdo9hb3H+A56bxH3FZMbEImZFiEDYVHXQSJ1hQKFlDnlt8G9bBrCZ5ZpURZUrV4G5qQ==",
1099 - "dependencies": {
1100 - "@babel/helper-plugin-utils": "^7.16.7"
1101 - },
1102 - "engines": {
1103 - "node": ">=6.9.0"
1104 - },
1105 - "peerDependencies": {
1106 - "@babel/core": "^7.0.0-0"
1107 - }
1108 - },
1109 - "node_modules/@babel/plugin-transform-classes": {
1110 - "version": "7.16.7",
1111 - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.16.7.tgz",
1112 - "integrity": "sha512-WY7og38SFAGYRe64BrjKf8OrE6ulEHtr5jEYaZMwox9KebgqPi67Zqz8K53EKk1fFEJgm96r32rkKZ3qA2nCWQ==",
1113 - "dependencies": {
1114 - "@babel/helper-annotate-as-pure": "^7.16.7",
1115 - "@babel/helper-environment-visitor": "^7.16.7",
1116 - "@babel/helper-function-name": "^7.16.7",
1117 - "@babel/helper-optimise-call-expression": "^7.16.7",
1118 - "@babel/helper-plugin-utils": "^7.16.7",
1119 - "@babel/helper-replace-supers": "^7.16.7",
1120 - "@babel/helper-split-export-declaration": "^7.16.7",
1121 - "globals": "^11.1.0"
1122 - },
1123 - "engines": {
1124 - "node": ">=6.9.0"
1125 - },
1126 - "peerDependencies": {
1127 - "@babel/core": "^7.0.0-0"
1128 - }
1129 - },
1130 - "node_modules/@babel/plugin-transform-computed-properties": {
1131 - "version": "7.16.7",
1132 - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.16.7.tgz",
1133 - "integrity": "sha512-gN72G9bcmenVILj//sv1zLNaPyYcOzUho2lIJBMh/iakJ9ygCo/hEF9cpGb61SCMEDxbbyBoVQxrt+bWKu5KGw==",
1134 - "dependencies": {
1135 - "@babel/helper-plugin-utils": "^7.16.7"
1136 - },
1137 - "engines": {
1138 - "node": ">=6.9.0"
1139 - },
1140 - "peerDependencies": {
1141 - "@babel/core": "^7.0.0-0"
1142 - }
1143 - },
1144 - "node_modules/@babel/plugin-transform-destructuring": {
1145 - "version": "7.16.7",
1146 - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.16.7.tgz",
1147 - "integrity": "sha512-VqAwhTHBnu5xBVDCvrvqJbtLUa++qZaWC0Fgr2mqokBlulZARGyIvZDoqbPlPaKImQ9dKAcCzbv+ul//uqu70A==",
1148 - "dependencies": {
1149 - "@babel/helper-plugin-utils": "^7.16.7"
1150 - },
1151 - "engines": {
1152 - "node": ">=6.9.0"
1153 - },
1154 - "peerDependencies": {
1155 - "@babel/core": "^7.0.0-0"
1156 - }
1157 - },
1158 - "node_modules/@babel/plugin-transform-dotall-regex": {
1159 - "version": "7.16.7",
1160 - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.16.7.tgz",
1161 - "integrity": "sha512-Lyttaao2SjZF6Pf4vk1dVKv8YypMpomAbygW+mU5cYP3S5cWTfCJjG8xV6CFdzGFlfWK81IjL9viiTvpb6G7gQ==",
1162 - "dependencies": {
1163 - "@babel/helper-create-regexp-features-plugin": "^7.16.7",
1164 - "@babel/helper-plugin-utils": "^7.16.7"
1165 - },
1166 - "engines": {
1167 - "node": ">=6.9.0"
1168 - },
1169 - "peerDependencies": {
1170 - "@babel/core": "^7.0.0-0"
1171 - }
1172 - },
1173 - "node_modules/@babel/plugin-transform-duplicate-keys": {
1174 - "version": "7.16.7",
1175 - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.16.7.tgz",
1176 - "integrity": "sha512-03DvpbRfvWIXyK0/6QiR1KMTWeT6OcQ7tbhjrXyFS02kjuX/mu5Bvnh5SDSWHxyawit2g5aWhKwI86EE7GUnTw==",
1177 - "dependencies": {
1178 - "@babel/helper-plugin-utils": "^7.16.7"
1179 - },
1180 - "engines": {
1181 - "node": ">=6.9.0"
1182 - },
1183 - "peerDependencies": {
1184 - "@babel/core": "^7.0.0-0"
1185 - }
1186 - },
1187 - "node_modules/@babel/plugin-transform-exponentiation-operator": {
1188 - "version": "7.16.7",
1189 - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.16.7.tgz",
1190 - "integrity": "sha512-8UYLSlyLgRixQvlYH3J2ekXFHDFLQutdy7FfFAMm3CPZ6q9wHCwnUyiXpQCe3gVVnQlHc5nsuiEVziteRNTXEA==",
1191 - "dependencies": {
1192 - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.16.7",
1193 - "@babel/helper-plugin-utils": "^7.16.7"
1194 - },
1195 - "engines": {
1196 - "node": ">=6.9.0"
1197 - },
1198 - "peerDependencies": {
1199 - "@babel/core": "^7.0.0-0"
1200 - }
1201 - },
1202 - "node_modules/@babel/plugin-transform-flow-strip-types": {
1203 - "version": "7.16.7",
1204 - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.16.7.tgz",
1205 - "integrity": "sha512-mzmCq3cNsDpZZu9FADYYyfZJIOrSONmHcop2XEKPdBNMa4PDC4eEvcOvzZaCNcjKu72v0XQlA5y1g58aLRXdYg==",
1206 - "dependencies": {
1207 - "@babel/helper-plugin-utils": "^7.16.7",
1208 - "@babel/plugin-syntax-flow": "^7.16.7"
1209 - },
1210 - "engines": {
1211 - "node": ">=6.9.0"
1212 - },
1213 - "peerDependencies": {
1214 - "@babel/core": "^7.0.0-0"
1215 - }
1216 - },
1217 - "node_modules/@babel/plugin-transform-for-of": {
1218 - "version": "7.16.7",
1219 - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.16.7.tgz",
1220 - "integrity": "sha512-/QZm9W92Ptpw7sjI9Nx1mbcsWz33+l8kuMIQnDwgQBG5s3fAfQvkRjQ7NqXhtNcKOnPkdICmUHyCaWW06HCsqg==",
1221 - "dependencies": {
1222 - "@babel/helper-plugin-utils": "^7.16.7"
1223 - },
1224 - "engines": {
1225 - "node": ">=6.9.0"
1226 - },
1227 - "peerDependencies": {
1228 - "@babel/core": "^7.0.0-0"
1229 - }
1230 - },
1231 - "node_modules/@babel/plugin-transform-function-name": {
1232 - "version": "7.16.7",
1233 - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.16.7.tgz",
1234 - "integrity": "sha512-SU/C68YVwTRxqWj5kgsbKINakGag0KTgq9f2iZEXdStoAbOzLHEBRYzImmA6yFo8YZhJVflvXmIHUO7GWHmxxA==",
1235 - "dependencies": {
1236 - "@babel/helper-compilation-targets": "^7.16.7",
1237 - "@babel/helper-function-name": "^7.16.7",
1238 - "@babel/helper-plugin-utils": "^7.16.7"
1239 - },
1240 - "engines": {
1241 - "node": ">=6.9.0"
1242 - },
1243 - "peerDependencies": {
1244 - "@babel/core": "^7.0.0-0"
1245 - }
1246 - },
1247 - "node_modules/@babel/plugin-transform-literals": {
1248 - "version": "7.16.7",
1249 - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.16.7.tgz",
1250 - "integrity": "sha512-6tH8RTpTWI0s2sV6uq3e/C9wPo4PTqqZps4uF0kzQ9/xPLFQtipynvmT1g/dOfEJ+0EQsHhkQ/zyRId8J2b8zQ==",
1251 - "dependencies": {
1252 - "@babel/helper-plugin-utils": "^7.16.7"
1253 - },
1254 - "engines": {
1255 - "node": ">=6.9.0"
1256 - },
1257 - "peerDependencies": {
1258 - "@babel/core": "^7.0.0-0"
1259 - }
1260 - },
1261 - "node_modules/@babel/plugin-transform-member-expression-literals": {
1262 - "version": "7.16.7",
1263 - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.16.7.tgz",
1264 - "integrity": "sha512-mBruRMbktKQwbxaJof32LT9KLy2f3gH+27a5XSuXo6h7R3vqltl0PgZ80C8ZMKw98Bf8bqt6BEVi3svOh2PzMw==",
1265 - "dependencies": {
1266 - "@babel/helper-plugin-utils": "^7.16.7"
1267 - },
1268 - "engines": {
1269 - "node": ">=6.9.0"
1270 - },
1271 - "peerDependencies": {
1272 - "@babel/core": "^7.0.0-0"
1273 - }
1274 - },
1275 - "node_modules/@babel/plugin-transform-modules-amd": {
1276 - "version": "7.16.7",
1277 - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.16.7.tgz",
1278 - "integrity": "sha512-KaaEtgBL7FKYwjJ/teH63oAmE3lP34N3kshz8mm4VMAw7U3PxjVwwUmxEFksbgsNUaO3wId9R2AVQYSEGRa2+g==",
1279 - "dependencies": {
1280 - "@babel/helper-module-transforms": "^7.16.7",
1281 - "@babel/helper-plugin-utils": "^7.16.7",
1282 - "babel-plugin-dynamic-import-node": "^2.3.3"
1283 - },
1284 - "engines": {
1285 - "node": ">=6.9.0"
1286 - },
1287 - "peerDependencies": {
1288 - "@babel/core": "^7.0.0-0"
1289 - }
1290 - },
1291 - "node_modules/@babel/plugin-transform-modules-commonjs": {
1292 - "version": "7.16.8",
1293 - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.16.8.tgz",
1294 - "integrity": "sha512-oflKPvsLT2+uKQopesJt3ApiaIS2HW+hzHFcwRNtyDGieAeC/dIHZX8buJQ2J2X1rxGPy4eRcUijm3qcSPjYcA==",
1295 - "dependencies": {
1296 - "@babel/helper-module-transforms": "^7.16.7",
1297 - "@babel/helper-plugin-utils": "^7.16.7",
1298 - "@babel/helper-simple-access": "^7.16.7",
1299 - "babel-plugin-dynamic-import-node": "^2.3.3"
1300 - },
1301 - "engines": {
1302 - "node": ">=6.9.0"
1303 - },
1304 - "peerDependencies": {
1305 - "@babel/core": "^7.0.0-0"
1306 - }
1307 - },
1308 - "node_modules/@babel/plugin-transform-modules-systemjs": {
1309 - "version": "7.16.7",
1310 - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.16.7.tgz",
1311 - "integrity": "sha512-DuK5E3k+QQmnOqBR9UkusByy5WZWGRxfzV529s9nPra1GE7olmxfqO2FHobEOYSPIjPBTr4p66YDcjQnt8cBmw==",
1312 - "dependencies": {
1313 - "@babel/helper-hoist-variables": "^7.16.7",
1314 - "@babel/helper-module-transforms": "^7.16.7",
1315 - "@babel/helper-plugin-utils": "^7.16.7",
1316 - "@babel/helper-validator-identifier": "^7.16.7",
1317 - "babel-plugin-dynamic-import-node": "^2.3.3"
1318 - },
1319 - "engines": {
1320 - "node": ">=6.9.0"
1321 - },
1322 - "peerDependencies": {
1323 - "@babel/core": "^7.0.0-0"
1324 - }
1325 - },
1326 - "node_modules/@babel/plugin-transform-modules-umd": {
1327 - "version": "7.16.7",
1328 - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.16.7.tgz",
1329 - "integrity": "sha512-EMh7uolsC8O4xhudF2F6wedbSHm1HHZ0C6aJ7K67zcDNidMzVcxWdGr+htW9n21klm+bOn+Rx4CBsAntZd3rEQ==",
1330 - "dependencies": {
1331 - "@babel/helper-module-transforms": "^7.16.7",
1332 - "@babel/helper-plugin-utils": "^7.16.7"
1333 - },
1334 - "engines": {
1335 - "node": ">=6.9.0"
1336 - },
1337 - "peerDependencies": {
1338 - "@babel/core": "^7.0.0-0"
1339 - }
1340 - },
1341 - "node_modules/@babel/plugin-transform-named-capturing-groups-regex": {
1342 - "version": "7.16.8",
1343 - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.16.8.tgz",
1344 - "integrity": "sha512-j3Jw+n5PvpmhRR+mrgIh04puSANCk/T/UA3m3P1MjJkhlK906+ApHhDIqBQDdOgL/r1UYpz4GNclTXxyZrYGSw==",
1345 - "dependencies": {
1346 - "@babel/helper-create-regexp-features-plugin": "^7.16.7"
1347 - },
1348 - "engines": {
1349 - "node": ">=6.9.0"
1350 - },
1351 - "peerDependencies": {
1352 - "@babel/core": "^7.0.0"
1353 - }
1354 - },
1355 - "node_modules/@babel/plugin-transform-new-target": {
1356 - "version": "7.16.7",
1357 - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.16.7.tgz",
1358 - "integrity": "sha512-xiLDzWNMfKoGOpc6t3U+etCE2yRnn3SM09BXqWPIZOBpL2gvVrBWUKnsJx0K/ADi5F5YC5f8APFfWrz25TdlGg==",
1359 - "dependencies": {
1360 - "@babel/helper-plugin-utils": "^7.16.7"
1361 - },
1362 - "engines": {
1363 - "node": ">=6.9.0"
1364 - },
1365 - "peerDependencies": {
1366 - "@babel/core": "^7.0.0-0"
1367 - }
1368 - },
1369 - "node_modules/@babel/plugin-transform-object-super": {
1370 - "version": "7.16.7",
1371 - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.16.7.tgz",
1372 - "integrity": "sha512-14J1feiQVWaGvRxj2WjyMuXS2jsBkgB3MdSN5HuC2G5nRspa5RK9COcs82Pwy5BuGcjb+fYaUj94mYcOj7rCvw==",
1373 - "dependencies": {
1374 - "@babel/helper-plugin-utils": "^7.16.7",
1375 - "@babel/helper-replace-supers": "^7.16.7"
1376 - },
1377 - "engines": {
1378 - "node": ">=6.9.0"
1379 - },
1380 - "peerDependencies": {
1381 - "@babel/core": "^7.0.0-0"
1382 - }
1383 - },
1384 - "node_modules/@babel/plugin-transform-parameters": {
1385 - "version": "7.16.7",
1386 - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.16.7.tgz",
1387 - "integrity": "sha512-AT3MufQ7zZEhU2hwOA11axBnExW0Lszu4RL/tAlUJBuNoRak+wehQW8h6KcXOcgjY42fHtDxswuMhMjFEuv/aw==",
1388 - "dependencies": {
1389 - "@babel/helper-plugin-utils": "^7.16.7"
1390 - },
1391 - "engines": {
1392 - "node": ">=6.9.0"
1393 - },
1394 - "peerDependencies": {
1395 - "@babel/core": "^7.0.0-0"
1396 - }
1397 - },
1398 - "node_modules/@babel/plugin-transform-property-literals": {
1399 - "version": "7.16.7",
1400 - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.16.7.tgz",
1401 - "integrity": "sha512-z4FGr9NMGdoIl1RqavCqGG+ZuYjfZ/hkCIeuH6Do7tXmSm0ls11nYVSJqFEUOSJbDab5wC6lRE/w6YjVcr6Hqw==",
1402 - "dependencies": {
1403 - "@babel/helper-plugin-utils": "^7.16.7"
1404 - },
1405 - "engines": {
1406 - "node": ">=6.9.0"
1407 - },
1408 - "peerDependencies": {
1409 - "@babel/core": "^7.0.0-0"
1410 - }
1411 - },
1412 - "node_modules/@babel/plugin-transform-react-constant-elements": {
1413 - "version": "7.16.7",
1414 - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.16.7.tgz",
1415 - "integrity": "sha512-lF+cfsyTgwWkcw715J88JhMYJ5GpysYNLhLP1PkvkhTRN7B3e74R/1KsDxFxhRpSn0UUD3IWM4GvdBR2PEbbQQ==",
1416 - "dependencies": {
1417 - "@babel/helper-plugin-utils": "^7.16.7"
1418 - },
1419 - "engines": {
1420 - "node": ">=6.9.0"
1421 - },
1422 - "peerDependencies": {
1423 - "@babel/core": "^7.0.0-0"
1424 - }
1425 - },
1426 - "node_modules/@babel/plugin-transform-react-display-name": {
1427 - "version": "7.16.7",
1428 - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.16.7.tgz",
1429 - "integrity": "sha512-qgIg8BcZgd0G/Cz916D5+9kqX0c7nPZyXaP8R2tLNN5tkyIZdG5fEwBrxwplzSnjC1jvQmyMNVwUCZPcbGY7Pg==",
1430 - "dependencies": {
1431 - "@babel/helper-plugin-utils": "^7.16.7"
1432 - },
1433 - "engines": {
1434 - "node": ">=6.9.0"
1435 - },
1436 - "peerDependencies": {
1437 - "@babel/core": "^7.0.0-0"
1438 - }
1439 - },
1440 - "node_modules/@babel/plugin-transform-react-jsx": {
1441 - "version": "7.16.7",
1442 - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.16.7.tgz",
1443 - "integrity": "sha512-8D16ye66fxiE8m890w0BpPpngG9o9OVBBy0gH2E+2AR7qMR2ZpTYJEqLxAsoroenMId0p/wMW+Blc0meDgu0Ag==",
1444 - "dependencies": {
1445 - "@babel/helper-annotate-as-pure": "^7.16.7",
1446 - "@babel/helper-module-imports": "^7.16.7",
1447 - "@babel/helper-plugin-utils": "^7.16.7",
1448 - "@babel/plugin-syntax-jsx": "^7.16.7",
1449 - "@babel/types": "^7.16.7"
1450 - },
1451 - "engines": {
1452 - "node": ">=6.9.0"
1453 - },
1454 - "peerDependencies": {
1455 - "@babel/core": "^7.0.0-0"
1456 - }
1457 - },
1458 - "node_modules/@babel/plugin-transform-react-jsx-development": {
1459 - "version": "7.16.7",
1460 - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.16.7.tgz",
1461 - "integrity": "sha512-RMvQWvpla+xy6MlBpPlrKZCMRs2AGiHOGHY3xRwl0pEeim348dDyxeH4xBsMPbIMhujeq7ihE702eM2Ew0Wo+A==",
1462 - "dependencies": {
1463 - "@babel/plugin-transform-react-jsx": "^7.16.7"
1464 - },
1465 - "engines": {
1466 - "node": ">=6.9.0"
1467 - },
1468 - "peerDependencies": {
1469 - "@babel/core": "^7.0.0-0"
1470 - }
1471 - },
1472 - "node_modules/@babel/plugin-transform-react-pure-annotations": {
1473 - "version": "7.16.7",
1474 - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.16.7.tgz",
1475 - "integrity": "sha512-hs71ToC97k3QWxswh2ElzMFABXHvGiJ01IB1TbYQDGeWRKWz/MPUTh5jGExdHvosYKpnJW5Pm3S4+TA3FyX+GA==",
1476 - "dependencies": {
1477 - "@babel/helper-annotate-as-pure": "^7.16.7",
1478 - "@babel/helper-plugin-utils": "^7.16.7"
1479 - },
1480 - "engines": {
1481 - "node": ">=6.9.0"
1482 - },
1483 - "peerDependencies": {
1484 - "@babel/core": "^7.0.0-0"
1485 - }
1486 - },
1487 - "node_modules/@babel/plugin-transform-regenerator": {
1488 - "version": "7.16.7",
1489 - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.16.7.tgz",
1490 - "integrity": "sha512-mF7jOgGYCkSJagJ6XCujSQg+6xC1M77/03K2oBmVJWoFGNUtnVJO4WHKJk3dnPC8HCcj4xBQP1Egm8DWh3Pb3Q==",
1491 - "dependencies": {
1492 - "regenerator-transform": "^0.14.2"
1493 - },
1494 - "engines": {
1495 - "node": ">=6.9.0"
1496 - },
1497 - "peerDependencies": {
1498 - "@babel/core": "^7.0.0-0"
1499 - }
1500 - },
1501 - "node_modules/@babel/plugin-transform-reserved-words": {
1502 - "version": "7.16.7",
1503 - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.16.7.tgz",
1504 - "integrity": "sha512-KQzzDnZ9hWQBjwi5lpY5v9shmm6IVG0U9pB18zvMu2i4H90xpT4gmqwPYsn8rObiadYe2M0gmgsiOIF5A/2rtg==",
1505 - "dependencies": {
1506 - "@babel/helper-plugin-utils": "^7.16.7"
1507 - },
1508 - "engines": {
1509 - "node": ">=6.9.0"
1510 - },
1511 - "peerDependencies": {
1512 - "@babel/core": "^7.0.0-0"
1513 - }
1514 - },
1515 - "node_modules/@babel/plugin-transform-runtime": {
1516 - "version": "7.16.10",
1517 - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.16.10.tgz",
1518 - "integrity": "sha512-9nwTiqETv2G7xI4RvXHNfpGdr8pAA+Q/YtN3yLK7OoK7n9OibVm/xymJ838a9A6E/IciOLPj82lZk0fW6O4O7w==",
1519 - "dependencies": {
1520 - "@babel/helper-module-imports": "^7.16.7",
1521 - "@babel/helper-plugin-utils": "^7.16.7",
1522 - "babel-plugin-polyfill-corejs2": "^0.3.0",
1523 - "babel-plugin-polyfill-corejs3": "^0.5.0",
1524 - "babel-plugin-polyfill-regenerator": "^0.3.0",
1525 - "semver": "^6.3.0"
1526 - },
1527 - "engines": {
1528 - "node": ">=6.9.0"
1529 - },
1530 - "peerDependencies": {
1531 - "@babel/core": "^7.0.0-0"
1532 - }
1533 - },
1534 - "node_modules/@babel/plugin-transform-runtime/node_modules/semver": {
1535 - "version": "6.3.0",
1536 - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
1537 - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
1538 - "bin": {
1539 - "semver": "bin/semver.js"
1540 - }
1541 - },
1542 - "node_modules/@babel/plugin-transform-shorthand-properties": {
1543 - "version": "7.16.7",
1544 - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.16.7.tgz",
1545 - "integrity": "sha512-hah2+FEnoRoATdIb05IOXf+4GzXYTq75TVhIn1PewihbpyrNWUt2JbudKQOETWw6QpLe+AIUpJ5MVLYTQbeeUg==",
1546 - "dependencies": {
1547 - "@babel/helper-plugin-utils": "^7.16.7"
1548 - },
1549 - "engines": {
1550 - "node": ">=6.9.0"
1551 - },
1552 - "peerDependencies": {
1553 - "@babel/core": "^7.0.0-0"
1554 - }
1555 - },
1556 - "node_modules/@babel/plugin-transform-spread": {
1557 - "version": "7.16.7",
1558 - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.16.7.tgz",
1559 - "integrity": "sha512-+pjJpgAngb53L0iaA5gU/1MLXJIfXcYepLgXB3esVRf4fqmj8f2cxM3/FKaHsZms08hFQJkFccEWuIpm429TXg==",
1560 - "dependencies": {
1561 - "@babel/helper-plugin-utils": "^7.16.7",
1562 - "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0"
1563 - },
1564 - "engines": {
1565 - "node": ">=6.9.0"
1566 - },
1567 - "peerDependencies": {
1568 - "@babel/core": "^7.0.0-0"
1569 - }
1570 - },
1571 - "node_modules/@babel/plugin-transform-sticky-regex": {
1572 - "version": "7.16.7",
1573 - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.16.7.tgz",
1574 - "integrity": "sha512-NJa0Bd/87QV5NZZzTuZG5BPJjLYadeSZ9fO6oOUoL4iQx+9EEuw/eEM92SrsT19Yc2jgB1u1hsjqDtH02c3Drw==",
1575 - "dependencies": {
1576 - "@babel/helper-plugin-utils": "^7.16.7"
1577 - },
1578 - "engines": {
1579 - "node": ">=6.9.0"
1580 - },
1581 - "peerDependencies": {
1582 - "@babel/core": "^7.0.0-0"
1583 - }
1584 - },
1585 - "node_modules/@babel/plugin-transform-template-literals": {
1586 - "version": "7.16.7",
1587 - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.16.7.tgz",
1588 - "integrity": "sha512-VwbkDDUeenlIjmfNeDX/V0aWrQH2QiVyJtwymVQSzItFDTpxfyJh3EVaQiS0rIN/CqbLGr0VcGmuwyTdZtdIsA==",
1589 - "dependencies": {
1590 - "@babel/helper-plugin-utils": "^7.16.7"
1591 - },
1592 - "engines": {
1593 - "node": ">=6.9.0"
1594 - },
1595 - "peerDependencies": {
1596 - "@babel/core": "^7.0.0-0"
1597 - }
1598 - },
1599 - "node_modules/@babel/plugin-transform-typeof-symbol": {
1600 - "version": "7.16.7",
1601 - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.16.7.tgz",
1602 - "integrity": "sha512-p2rOixCKRJzpg9JB4gjnG4gjWkWa89ZoYUnl9snJ1cWIcTH/hvxZqfO+WjG6T8DRBpctEol5jw1O5rA8gkCokQ==",
1603 - "dependencies": {
1604 - "@babel/helper-plugin-utils": "^7.16.7"
1605 - },
1606 - "engines": {
1607 - "node": ">=6.9.0"
1608 - },
1609 - "peerDependencies": {
1610 - "@babel/core": "^7.0.0-0"
1611 - }
1612 - },
1613 - "node_modules/@babel/plugin-transform-typescript": {
1614 - "version": "7.16.8",
1615 - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.16.8.tgz",
1616 - "integrity": "sha512-bHdQ9k7YpBDO2d0NVfkj51DpQcvwIzIusJ7mEUaMlbZq3Kt/U47j24inXZHQ5MDiYpCs+oZiwnXyKedE8+q7AQ==",
1617 - "dependencies": {
1618 - "@babel/helper-create-class-features-plugin": "^7.16.7",
1619 - "@babel/helper-plugin-utils": "^7.16.7",
1620 - "@babel/plugin-syntax-typescript": "^7.16.7"
1621 - },
1622 - "engines": {
1623 - "node": ">=6.9.0"
1624 - },
1625 - "peerDependencies": {
1626 - "@babel/core": "^7.0.0-0"
1627 - }
1628 - },
1629 - "node_modules/@babel/plugin-transform-unicode-escapes": {
1630 - "version": "7.16.7",
1631 - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.16.7.tgz",
1632 - "integrity": "sha512-TAV5IGahIz3yZ9/Hfv35TV2xEm+kaBDaZQCn2S/hG9/CZ0DktxJv9eKfPc7yYCvOYR4JGx1h8C+jcSOvgaaI/Q==",
1633 - "dependencies": {
1634 - "@babel/helper-plugin-utils": "^7.16.7"
1635 - },
1636 - "engines": {
1637 - "node": ">=6.9.0"
1638 - },
1639 - "peerDependencies": {
1640 - "@babel/core": "^7.0.0-0"
1641 - }
1642 - },
1643 - "node_modules/@babel/plugin-transform-unicode-regex": {
1644 - "version": "7.16.7",
1645 - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.16.7.tgz",
1646 - "integrity": "sha512-oC5tYYKw56HO75KZVLQ+R/Nl3Hro9kf8iG0hXoaHP7tjAyCpvqBiSNe6vGrZni1Z6MggmUOC6A7VP7AVmw225Q==",
1647 - "dependencies": {
1648 - "@babel/helper-create-regexp-features-plugin": "^7.16.7",
1649 - "@babel/helper-plugin-utils": "^7.16.7"
1650 - },
1651 - "engines": {
1652 - "node": ">=6.9.0"
1653 - },
1654 - "peerDependencies": {
1655 - "@babel/core": "^7.0.0-0"
1656 - }
1657 - },
1658 - "node_modules/@babel/preset-env": {
1659 - "version": "7.16.10",
1660 - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.16.10.tgz",
1661 - "integrity": "sha512-iCac3fZn9oOcLqc1N2/copPiX7aoxzsvjeDdXoZobrlbQ6YGgS3bL9HyldOJ8V8AY5P7pFynCATrn7M4dMw0Yg==",
1662 - "dependencies": {
1663 - "@babel/compat-data": "^7.16.8",
1664 - "@babel/helper-compilation-targets": "^7.16.7",
1665 - "@babel/helper-plugin-utils": "^7.16.7",
1666 - "@babel/helper-validator-option": "^7.16.7",
1667 - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.16.7",
1668 - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.16.7",
1669 - "@babel/plugin-proposal-async-generator-functions": "^7.16.8",
1670 - "@babel/plugin-proposal-class-properties": "^7.16.7",
1671 - "@babel/plugin-proposal-class-static-block": "^7.16.7",
1672 - "@babel/plugin-proposal-dynamic-import": "^7.16.7",
1673 - "@babel/plugin-proposal-export-namespace-from": "^7.16.7",
1674 - "@babel/plugin-proposal-json-strings": "^7.16.7",
1675 - "@babel/plugin-proposal-logical-assignment-operators": "^7.16.7",
1676 - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.16.7",
1677 - "@babel/plugin-proposal-numeric-separator": "^7.16.7",
1678 - "@babel/plugin-proposal-object-rest-spread": "^7.16.7",
1679 - "@babel/plugin-proposal-optional-catch-binding": "^7.16.7",
1680 - "@babel/plugin-proposal-optional-chaining": "^7.16.7",
1681 - "@babel/plugin-proposal-private-methods": "^7.16.7",
1682 - "@babel/plugin-proposal-private-property-in-object": "^7.16.7",
1683 - "@babel/plugin-proposal-unicode-property-regex": "^7.16.7",
1684 - "@babel/plugin-syntax-async-generators": "^7.8.4",
1685 - "@babel/plugin-syntax-class-properties": "^7.12.13",
1686 - "@babel/plugin-syntax-class-static-block": "^7.14.5",
1687 - "@babel/plugin-syntax-dynamic-import": "^7.8.3",
1688 - "@babel/plugin-syntax-export-namespace-from": "^7.8.3",
1689 - "@babel/plugin-syntax-json-strings": "^7.8.3",
1690 - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4",
1691 - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3",
1692 - "@babel/plugin-syntax-numeric-separator": "^7.10.4",
1693 - "@babel/plugin-syntax-object-rest-spread": "^7.8.3",
1694 - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3",
1695 - "@babel/plugin-syntax-optional-chaining": "^7.8.3",
1696 - "@babel/plugin-syntax-private-property-in-object": "^7.14.5",
1697 - "@babel/plugin-syntax-top-level-await": "^7.14.5",
1698 - "@babel/plugin-transform-arrow-functions": "^7.16.7",
1699 - "@babel/plugin-transform-async-to-generator": "^7.16.8",
1700 - "@babel/plugin-transform-block-scoped-functions": "^7.16.7",
1701 - "@babel/plugin-transform-block-scoping": "^7.16.7",
1702 - "@babel/plugin-transform-classes": "^7.16.7",
1703 - "@babel/plugin-transform-computed-properties": "^7.16.7",
1704 - "@babel/plugin-transform-destructuring": "^7.16.7",
1705 - "@babel/plugin-transform-dotall-regex": "^7.16.7",
1706 - "@babel/plugin-transform-duplicate-keys": "^7.16.7",
1707 - "@babel/plugin-transform-exponentiation-operator": "^7.16.7",
1708 - "@babel/plugin-transform-for-of": "^7.16.7",
1709 - "@babel/plugin-transform-function-name": "^7.16.7",
1710 - "@babel/plugin-transform-literals": "^7.16.7",
1711 - "@babel/plugin-transform-member-expression-literals": "^7.16.7",
1712 - "@babel/plugin-transform-modules-amd": "^7.16.7",
1713 - "@babel/plugin-transform-modules-commonjs": "^7.16.8",
1714 - "@babel/plugin-transform-modules-systemjs": "^7.16.7",
1715 - "@babel/plugin-transform-modules-umd": "^7.16.7",
1716 - "@babel/plugin-transform-named-capturing-groups-regex": "^7.16.8",
1717 - "@babel/plugin-transform-new-target": "^7.16.7",
1718 - "@babel/plugin-transform-object-super": "^7.16.7",
1719 - "@babel/plugin-transform-parameters": "^7.16.7",
1720 - "@babel/plugin-transform-property-literals": "^7.16.7",
1721 - "@babel/plugin-transform-regenerator": "^7.16.7",
1722 - "@babel/plugin-transform-reserved-words": "^7.16.7",
1723 - "@babel/plugin-transform-shorthand-properties": "^7.16.7",
1724 - "@babel/plugin-transform-spread": "^7.16.7",
1725 - "@babel/plugin-transform-sticky-regex": "^7.16.7",
1726 - "@babel/plugin-transform-template-literals": "^7.16.7",
1727 - "@babel/plugin-transform-typeof-symbol": "^7.16.7",
1728 - "@babel/plugin-transform-unicode-escapes": "^7.16.7",
1729 - "@babel/plugin-transform-unicode-regex": "^7.16.7",
1730 - "@babel/preset-modules": "^0.1.5",
1731 - "@babel/types": "^7.16.8",
1732 - "babel-plugin-polyfill-corejs2": "^0.3.0",
1733 - "babel-plugin-polyfill-corejs3": "^0.5.0",
1734 - "babel-plugin-polyfill-regenerator": "^0.3.0",
1735 - "core-js-compat": "^3.20.2",
1736 - "semver": "^6.3.0"
1737 - },
1738 - "engines": {
1739 - "node": ">=6.9.0"
1740 - },
1741 - "peerDependencies": {
1742 - "@babel/core": "^7.0.0-0"
1743 - }
1744 - },
1745 - "node_modules/@babel/preset-env/node_modules/semver": {
1746 - "version": "6.3.0",
1747 - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
1748 - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
1749 - "bin": {
1750 - "semver": "bin/semver.js"
1751 - }
1752 - },
1753 - "node_modules/@babel/preset-modules": {
1754 - "version": "0.1.5",
1755 - "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz",
1756 - "integrity": "sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==",
1757 - "dependencies": {
1758 - "@babel/helper-plugin-utils": "^7.0.0",
1759 - "@babel/plugin-proposal-unicode-property-regex": "^7.4.4",
1760 - "@babel/plugin-transform-dotall-regex": "^7.4.4",
1761 - "@babel/types": "^7.4.4",
1762 - "esutils": "^2.0.2"
1763 - },
1764 - "peerDependencies": {
1765 - "@babel/core": "^7.0.0-0"
1766 - }
1767 - },
1768 - "node_modules/@babel/preset-react": {
1769 - "version": "7.16.7",
1770 - "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.16.7.tgz",
1771 - "integrity": "sha512-fWpyI8UM/HE6DfPBzD8LnhQ/OcH8AgTaqcqP2nGOXEUV+VKBR5JRN9hCk9ai+zQQ57vtm9oWeXguBCPNUjytgA==",
1772 - "dependencies": {
1773 - "@babel/helper-plugin-utils": "^7.16.7",
1774 - "@babel/helper-validator-option": "^7.16.7",
1775 - "@babel/plugin-transform-react-display-name": "^7.16.7",
1776 - "@babel/plugin-transform-react-jsx": "^7.16.7",
1777 - "@babel/plugin-transform-react-jsx-development": "^7.16.7",
1778 - "@babel/plugin-transform-react-pure-annotations": "^7.16.7"
1779 - },
1780 - "engines": {
1781 - "node": ">=6.9.0"
1782 - },
1783 - "peerDependencies": {
1784 - "@babel/core": "^7.0.0-0"
1785 - }
1786 - },
1787 - "node_modules/@babel/preset-typescript": {
1788 - "version": "7.16.7",
1789 - "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.16.7.tgz",
1790 - "integrity": "sha512-WbVEmgXdIyvzB77AQjGBEyYPZx+8tTsO50XtfozQrkW8QB2rLJpH2lgx0TRw5EJrBxOZQ+wCcyPVQvS8tjEHpQ==",
1791 - "dependencies": {
1792 - "@babel/helper-plugin-utils": "^7.16.7",
1793 - "@babel/helper-validator-option": "^7.16.7",
1794 - "@babel/plugin-transform-typescript": "^7.16.7"
1795 - },
1796 - "engines": {
1797 - "node": ">=6.9.0"
1798 - },
1799 - "peerDependencies": {
1800 - "@babel/core": "^7.0.0-0"
1801 - }
1802 - },
1803 - "node_modules/@babel/runtime": {
1804 - "version": "7.22.6",
1805 - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.22.6.tgz",
1806 - "integrity": "sha512-wDb5pWm4WDdF6LFUde3Jl8WzPA+3ZbxYqkC6xAXuD3irdEHN1k0NfTRrJD8ZD378SJ61miMLCqIOXYhd8x+AJQ==",
1807 - "dependencies": {
1808 - "regenerator-runtime": "^0.13.11"
1809 - },
1810 - "engines": {
1811 - "node": ">=6.9.0"
1812 - }
1813 - },
1814 - "node_modules/@babel/template": {
1815 - "version": "7.22.5",
1816 - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.5.tgz",
1817 - "integrity": "sha512-X7yV7eiwAxdj9k94NEylvbVHLiVG1nvzCV2EAowhxLTwODV1jl9UzZ48leOC0sH7OnuHrIkllaBgneUykIcZaw==",
1818 - "dependencies": {
1819 - "@babel/code-frame": "^7.22.5",
1820 - "@babel/parser": "^7.22.5",
1821 - "@babel/types": "^7.22.5"
1822 - },
1823 - "engines": {
1824 - "node": ">=6.9.0"
1825 - }
1826 - },
1827 - "node_modules/@babel/template/node_modules/@babel/code-frame": {
1828 - "version": "7.22.5",
1829 - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.5.tgz",
1830 - "integrity": "sha512-Xmwn266vad+6DAqEB2A6V/CcZVp62BbwVmcOJc2RPuwih1kw02TjQvWVWlcKGbBPd+8/0V5DEkOcizRGYsspYQ==",
1831 - "dependencies": {
1832 - "@babel/highlight": "^7.22.5"
1833 - },
1834 - "engines": {
1835 - "node": ">=6.9.0"
1836 - }
1837 - },
1838 - "node_modules/@babel/traverse": {
1839 - "version": "7.22.8",
1840 - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.22.8.tgz",
1841 - "integrity": "sha512-y6LPR+wpM2I3qJrsheCTwhIinzkETbplIgPBbwvqPKc+uljeA5gP+3nP8irdYt1mjQaDnlIcG+dw8OjAco4GXw==",
1842 - "dependencies": {
1843 - "@babel/code-frame": "^7.22.5",
1844 - "@babel/generator": "^7.22.7",
1845 - "@babel/helper-environment-visitor": "^7.22.5",
1846 - "@babel/helper-function-name": "^7.22.5",
1847 - "@babel/helper-hoist-variables": "^7.22.5",
1848 - "@babel/helper-split-export-declaration": "^7.22.6",
1849 - "@babel/parser": "^7.22.7",
1850 - "@babel/types": "^7.22.5",
1851 - "debug": "^4.1.0",
1852 - "globals": "^11.1.0"
1853 - },
1854 - "engines": {
1855 - "node": ">=6.9.0"
1856 - }
1857 - },
1858 - "node_modules/@babel/traverse/node_modules/@babel/code-frame": {
1859 - "version": "7.22.5",
1860 - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.5.tgz",
1861 - "integrity": "sha512-Xmwn266vad+6DAqEB2A6V/CcZVp62BbwVmcOJc2RPuwih1kw02TjQvWVWlcKGbBPd+8/0V5DEkOcizRGYsspYQ==",
1862 - "dependencies": {
1863 - "@babel/highlight": "^7.22.5"
1864 - },
1865 - "engines": {
1866 - "node": ">=6.9.0"
1867 - }
1868 - },
1869 - "node_modules/@babel/types": {
1870 - "version": "7.22.5",
1871 - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.22.5.tgz",
1872 - "integrity": "sha512-zo3MIHGOkPOfoRXitsgHLjEXmlDaD/5KU1Uzuc9GNiZPhSqVxVRtxuPaSBZDsYZ9qV88AjtMtWW7ww98loJ9KA==",
1873 - "dependencies": {
1874 - "@babel/helper-string-parser": "^7.22.5",
1875 - "@babel/helper-validator-identifier": "^7.22.5",
1876 - "to-fast-properties": "^2.0.0"
1877 - },
1878 - "engines": {
1879 - "node": ">=6.9.0"
1880 - }
1881 - },
1882 - "node_modules/@bcoe/v8-coverage": {
1883 - "version": "0.2.3",
1884 - "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz",
1885 - "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw=="
1886 - },
1887 - "node_modules/@csstools/normalize.css": {
1888 - "version": "12.0.0",
1889 - "resolved": "https://registry.npmjs.org/@csstools/normalize.css/-/normalize.css-12.0.0.tgz",
1890 - "integrity": "sha512-M0qqxAcwCsIVfpFQSlGN5XjXWu8l5JDZN+fPt1LeW5SZexQTgnaEvgXAY+CeygRw0EeppWHi12JxESWiWrB0Sg=="
1891 - },
1892 - "node_modules/@csstools/postcss-cascade-layers": {
1893 - "version": "1.1.1",
1894 - "resolved": "https://registry.npmjs.org/@csstools/postcss-cascade-layers/-/postcss-cascade-layers-1.1.1.tgz",
1895 - "integrity": "sha512-+KdYrpKC5TgomQr2DlZF4lDEpHcoxnj5IGddYYfBWJAKfj1JtuHUIqMa+E1pJJ+z3kvDViWMqyqPlG4Ja7amQA==",
1896 - "dependencies": {
1897 - "@csstools/selector-specificity": "^2.0.2",
1898 - "postcss-selector-parser": "^6.0.10"
1899 - },
1900 - "engines": {
1901 - "node": "^12 || ^14 || >=16"
1902 - },
1903 - "funding": {
1904 - "type": "opencollective",
1905 - "url": "https://opencollective.com/csstools"
1906 - },
1907 - "peerDependencies": {
1908 - "postcss": "^8.2"
1909 - }
1910 - },
1911 - "node_modules/@csstools/postcss-color-function": {
1912 - "version": "1.1.1",
1913 - "resolved": "https://registry.npmjs.org/@csstools/postcss-color-function/-/postcss-color-function-1.1.1.tgz",
1914 - "integrity": "sha512-Bc0f62WmHdtRDjf5f3e2STwRAl89N2CLb+9iAwzrv4L2hncrbDwnQD9PCq0gtAt7pOI2leIV08HIBUd4jxD8cw==",
1915 - "dependencies": {
1916 - "@csstools/postcss-progressive-custom-properties": "^1.1.0",
1917 - "postcss-value-parser": "^4.2.0"
1918 - },
1919 - "engines": {
1920 - "node": "^12 || ^14 || >=16"
1921 - },
1922 - "funding": {
1923 - "type": "opencollective",
1924 - "url": "https://opencollective.com/csstools"
1925 - },
1926 - "peerDependencies": {
1927 - "postcss": "^8.2"
1928 - }
1929 - },
1930 - "node_modules/@csstools/postcss-font-format-keywords": {
1931 - "version": "1.0.1",
1932 - "resolved": "https://registry.npmjs.org/@csstools/postcss-font-format-keywords/-/postcss-font-format-keywords-1.0.1.tgz",
1933 - "integrity": "sha512-ZgrlzuUAjXIOc2JueK0X5sZDjCtgimVp/O5CEqTcs5ShWBa6smhWYbS0x5cVc/+rycTDbjjzoP0KTDnUneZGOg==",
1934 - "dependencies": {
1935 - "postcss-value-parser": "^4.2.0"
1936 - },
1937 - "engines": {
1938 - "node": "^12 || ^14 || >=16"
1939 - },
1940 - "funding": {
1941 - "type": "opencollective",
1942 - "url": "https://opencollective.com/csstools"
1943 - },
1944 - "peerDependencies": {
1945 - "postcss": "^8.2"
1946 - }
1947 - },
1948 - "node_modules/@csstools/postcss-hwb-function": {
1949 - "version": "1.0.2",
1950 - "resolved": "https://registry.npmjs.org/@csstools/postcss-hwb-function/-/postcss-hwb-function-1.0.2.tgz",
1951 - "integrity": "sha512-YHdEru4o3Rsbjmu6vHy4UKOXZD+Rn2zmkAmLRfPet6+Jz4Ojw8cbWxe1n42VaXQhD3CQUXXTooIy8OkVbUcL+w==",
1952 - "dependencies": {
1953 - "postcss-value-parser": "^4.2.0"
1954 - },
1955 - "engines": {
1956 - "node": "^12 || ^14 || >=16"
1957 - },
1958 - "funding": {
1959 - "type": "opencollective",
1960 - "url": "https://opencollective.com/csstools"
1961 - },
1962 - "peerDependencies": {
1963 - "postcss": "^8.2"
1964 - }
1965 - },
1966 - "node_modules/@csstools/postcss-ic-unit": {
1967 - "version": "1.0.1",
1968 - "resolved": "https://registry.npmjs.org/@csstools/postcss-ic-unit/-/postcss-ic-unit-1.0.1.tgz",
1969 - "integrity": "sha512-Ot1rcwRAaRHNKC9tAqoqNZhjdYBzKk1POgWfhN4uCOE47ebGcLRqXjKkApVDpjifL6u2/55ekkpnFcp+s/OZUw==",
1970 - "dependencies": {
1971 - "@csstools/postcss-progressive-custom-properties": "^1.1.0",
1972 - "postcss-value-parser": "^4.2.0"
1973 - },
1974 - "engines": {
1975 - "node": "^12 || ^14 || >=16"
1976 - },
1977 - "funding": {
1978 - "type": "opencollective",
1979 - "url": "https://opencollective.com/csstools"
1980 - },
1981 - "peerDependencies": {
1982 - "postcss": "^8.2"
1983 - }
1984 - },
1985 - "node_modules/@csstools/postcss-is-pseudo-class": {
1986 - "version": "2.0.7",
1987 - "resolved": "https://registry.npmjs.org/@csstools/postcss-is-pseudo-class/-/postcss-is-pseudo-class-2.0.7.tgz",
1988 - "integrity": "sha512-7JPeVVZHd+jxYdULl87lvjgvWldYu+Bc62s9vD/ED6/QTGjy0jy0US/f6BG53sVMTBJ1lzKZFpYmofBN9eaRiA==",
1989 - "dependencies": {
1990 - "@csstools/selector-specificity": "^2.0.0",
1991 - "postcss-selector-parser": "^6.0.10"
1992 - },
1993 - "engines": {
1994 - "node": "^12 || ^14 || >=16"
1995 - },
1996 - "funding": {
1997 - "type": "opencollective",
1998 - "url": "https://opencollective.com/csstools"
1999 - },
2000 - "peerDependencies": {
2001 - "postcss": "^8.2"
2002 - }
2003 - },
2004 - "node_modules/@csstools/postcss-nested-calc": {
2005 - "version": "1.0.0",
2006 - "resolved": "https://registry.npmjs.org/@csstools/postcss-nested-calc/-/postcss-nested-calc-1.0.0.tgz",
2007 - "integrity": "sha512-JCsQsw1wjYwv1bJmgjKSoZNvf7R6+wuHDAbi5f/7MbFhl2d/+v+TvBTU4BJH3G1X1H87dHl0mh6TfYogbT/dJQ==",
2008 - "dependencies": {
2009 - "postcss-value-parser": "^4.2.0"
2010 - },
2011 - "engines": {
2012 - "node": "^12 || ^14 || >=16"
2013 - },
2014 - "funding": {
2015 - "type": "opencollective",
2016 - "url": "https://opencollective.com/csstools"
2017 - },
2018 - "peerDependencies": {
2019 - "postcss": "^8.2"
2020 - }
2021 - },
2022 - "node_modules/@csstools/postcss-normalize-display-values": {
2023 - "version": "1.0.1",
2024 - "resolved": "https://registry.npmjs.org/@csstools/postcss-normalize-display-values/-/postcss-normalize-display-values-1.0.1.tgz",
2025 - "integrity": "sha512-jcOanIbv55OFKQ3sYeFD/T0Ti7AMXc9nM1hZWu8m/2722gOTxFg7xYu4RDLJLeZmPUVQlGzo4jhzvTUq3x4ZUw==",
2026 - "dependencies": {
2027 - "postcss-value-parser": "^4.2.0"
2028 - },
2029 - "engines": {
2030 - "node": "^12 || ^14 || >=16"
2031 - },
2032 - "funding": {
2033 - "type": "opencollective",
2034 - "url": "https://opencollective.com/csstools"
2035 - },
2036 - "peerDependencies": {
2037 - "postcss": "^8.2"
2038 - }
2039 - },
2040 - "node_modules/@csstools/postcss-oklab-function": {
2041 - "version": "1.1.1",
2042 - "resolved": "https://registry.npmjs.org/@csstools/postcss-oklab-function/-/postcss-oklab-function-1.1.1.tgz",
2043 - "integrity": "sha512-nJpJgsdA3dA9y5pgyb/UfEzE7W5Ka7u0CX0/HIMVBNWzWemdcTH3XwANECU6anWv/ao4vVNLTMxhiPNZsTK6iA==",
2044 - "dependencies": {
2045 - "@csstools/postcss-progressive-custom-properties": "^1.1.0",
2046 - "postcss-value-parser": "^4.2.0"
2047 - },
2048 - "engines": {
2049 - "node": "^12 || ^14 || >=16"
2050 - },
2051 - "funding": {
2052 - "type": "opencollective",
2053 - "url": "https://opencollective.com/csstools"
2054 - },
2055 - "peerDependencies": {
2056 - "postcss": "^8.2"
2057 - }
2058 - },
2059 - "node_modules/@csstools/postcss-progressive-custom-properties": {
2060 - "version": "1.3.0",
2061 - "resolved": "https://registry.npmjs.org/@csstools/postcss-progressive-custom-properties/-/postcss-progressive-custom-properties-1.3.0.tgz",
2062 - "integrity": "sha512-ASA9W1aIy5ygskZYuWams4BzafD12ULvSypmaLJT2jvQ8G0M3I8PRQhC0h7mG0Z3LI05+agZjqSR9+K9yaQQjA==",
2063 - "dependencies": {
2064 - "postcss-value-parser": "^4.2.0"
2065 - },
2066 - "engines": {
2067 - "node": "^12 || ^14 || >=16"
2068 - },
2069 - "peerDependencies": {
2070 - "postcss": "^8.3"
2071 - }
2072 - },
2073 - "node_modules/@csstools/postcss-stepped-value-functions": {
2074 - "version": "1.0.1",
2075 - "resolved": "https://registry.npmjs.org/@csstools/postcss-stepped-value-functions/-/postcss-stepped-value-functions-1.0.1.tgz",
2076 - "integrity": "sha512-dz0LNoo3ijpTOQqEJLY8nyaapl6umbmDcgj4AD0lgVQ572b2eqA1iGZYTTWhrcrHztWDDRAX2DGYyw2VBjvCvQ==",
2077 - "dependencies": {
2078 - "postcss-value-parser": "^4.2.0"
2079 - },
2080 - "engines": {
2081 - "node": "^12 || ^14 || >=16"
2082 - },
2083 - "funding": {
2084 - "type": "opencollective",
2085 - "url": "https://opencollective.com/csstools"
2086 - },
2087 - "peerDependencies": {
2088 - "postcss": "^8.2"
2089 - }
2090 - },
2091 - "node_modules/@csstools/postcss-text-decoration-shorthand": {
2092 - "version": "1.0.0",
2093 - "resolved": "https://registry.npmjs.org/@csstools/postcss-text-decoration-shorthand/-/postcss-text-decoration-shorthand-1.0.0.tgz",
2094 - "integrity": "sha512-c1XwKJ2eMIWrzQenN0XbcfzckOLLJiczqy+YvfGmzoVXd7pT9FfObiSEfzs84bpE/VqfpEuAZ9tCRbZkZxxbdw==",
2095 - "dependencies": {
2096 - "postcss-value-parser": "^4.2.0"
2097 - },
2098 - "engines": {
2099 - "node": "^12 || ^14 || >=16"
2100 - },
2101 - "funding": {
2102 - "type": "opencollective",
2103 - "url": "https://opencollective.com/csstools"
2104 - },
2105 - "peerDependencies": {
2106 - "postcss": "^8.2"
2107 - }
2108 - },
2109 - "node_modules/@csstools/postcss-trigonometric-functions": {
2110 - "version": "1.0.2",
2111 - "resolved": "https://registry.npmjs.org/@csstools/postcss-trigonometric-functions/-/postcss-trigonometric-functions-1.0.2.tgz",
2112 - "integrity": "sha512-woKaLO///4bb+zZC2s80l+7cm07M7268MsyG3M0ActXXEFi6SuhvriQYcb58iiKGbjwwIU7n45iRLEHypB47Og==",
2113 - "dependencies": {
2114 - "postcss-value-parser": "^4.2.0"
2115 - },
2116 - "engines": {
2117 - "node": "^14 || >=16"
2118 - },
2119 - "funding": {
2120 - "type": "opencollective",
2121 - "url": "https://opencollective.com/csstools"
2122 - },
2123 - "peerDependencies": {
2124 - "postcss": "^8.2"
2125 - }
2126 - },
2127 - "node_modules/@csstools/postcss-unset-value": {
2128 - "version": "1.0.2",
2129 - "resolved": "https://registry.npmjs.org/@csstools/postcss-unset-value/-/postcss-unset-value-1.0.2.tgz",
2130 - "integrity": "sha512-c8J4roPBILnelAsdLr4XOAR/GsTm0GJi4XpcfvoWk3U6KiTCqiFYc63KhRMQQX35jYMp4Ao8Ij9+IZRgMfJp1g==",
2131 - "engines": {
2132 - "node": "^12 || ^14 || >=16"
2133 - },
2134 - "funding": {
2135 - "type": "opencollective",
2136 - "url": "https://opencollective.com/csstools"
2137 - },
2138 - "peerDependencies": {
2139 - "postcss": "^8.2"
2140 - }
2141 - },
2142 - "node_modules/@csstools/selector-specificity": {
2143 - "version": "2.2.0",
2144 - "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-2.2.0.tgz",
2145 - "integrity": "sha512-+OJ9konv95ClSTOJCmMZqpd5+YGsB2S+x6w3E1oaM8UuR5j8nTNHYSz8c9BEPGDOCMQYIEEGlVPj/VY64iTbGw==",
2146 - "engines": {
2147 - "node": "^14 || ^16 || >=18"
2148 - },
2149 - "funding": {
2150 - "type": "opencollective",
2151 - "url": "https://opencollective.com/csstools"
2152 - },
2153 - "peerDependencies": {
2154 - "postcss-selector-parser": "^6.0.10"
2155 - }
2156 - },
2157 - "node_modules/@eslint-community/eslint-utils": {
2158 - "version": "4.4.0",
2159 - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz",
2160 - "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==",
2161 - "dependencies": {
2162 - "eslint-visitor-keys": "^3.3.0"
2163 - },
2164 - "engines": {
2165 - "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
2166 - },
2167 - "peerDependencies": {
2168 - "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0"
2169 - }
2170 - },
2171 - "node_modules/@eslint-community/regexpp": {
2172 - "version": "4.6.2",
2173 - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.6.2.tgz",
2174 - "integrity": "sha512-pPTNuaAG3QMH+buKyBIGJs3g/S5y0caxw0ygM3YyE6yJFySwiGGSzA+mM3KJ8QQvzeLh3blwgSonkFjgQdxzMw==",
2175 - "engines": {
2176 - "node": "^12.0.0 || ^14.0.0 || >=16.0.0"
2177 - }
2178 - },
2179 - "node_modules/@eslint/eslintrc": {
2180 - "version": "2.1.1",
2181 - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.1.tgz",
2182 - "integrity": "sha512-9t7ZA7NGGK8ckelF0PQCfcxIUzs1Md5rrO6U/c+FIQNanea5UZC0wqKXH4vHBccmu4ZJgZ2idtPeW7+Q2npOEA==",
2183 - "dependencies": {
2184 - "ajv": "^6.12.4",
2185 - "debug": "^4.3.2",
2186 - "espree": "^9.6.0",
2187 - "globals": "^13.19.0",
2188 - "ignore": "^5.2.0",
2189 - "import-fresh": "^3.2.1",
2190 - "js-yaml": "^4.1.0",
2191 - "minimatch": "^3.1.2",
2192 - "strip-json-comments": "^3.1.1"
2193 - },
2194 - "engines": {
2195 - "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
2196 - },
2197 - "funding": {
2198 - "url": "https://opencollective.com/eslint"
2199 - }
2200 - },
2201 - "node_modules/@eslint/eslintrc/node_modules/argparse": {
2202 - "version": "2.0.1",
2203 - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
2204 - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="
2205 - },
2206 - "node_modules/@eslint/eslintrc/node_modules/globals": {
2207 - "version": "13.20.0",
2208 - "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz",
2209 - "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==",
2210 - "dependencies": {
2211 - "type-fest": "^0.20.2"
2212 - },
2213 - "engines": {
2214 - "node": ">=8"
2215 - },
2216 - "funding": {
2217 - "url": "https://github.com/sponsors/sindresorhus"
2218 - }
2219 - },
2220 - "node_modules/@eslint/eslintrc/node_modules/js-yaml": {
2221 - "version": "4.1.0",
2222 - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
2223 - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
2224 - "dependencies": {
2225 - "argparse": "^2.0.1"
2226 - },
2227 - "bin": {
2228 - "js-yaml": "bin/js-yaml.js"
2229 - }
2230 - },
2231 - "node_modules/@eslint/eslintrc/node_modules/type-fest": {
2232 - "version": "0.20.2",
2233 - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz",
2234 - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==",
2235 - "engines": {
2236 - "node": ">=10"
2237 - },
2238 - "funding": {
2239 - "url": "https://github.com/sponsors/sindresorhus"
2240 - }
2241 - },
2242 - "node_modules/@eslint/js": {
2243 - "version": "8.46.0",
2244 - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.46.0.tgz",
2245 - "integrity": "sha512-a8TLtmPi8xzPkCbp/OGFUo5yhRkHM2Ko9kOWP4znJr0WAhWyThaw3PnwX4vOTWOAMsV2uRt32PPDcEz63esSaA==",
2246 - "engines": {
2247 - "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
2248 - }
2249 - },
2250 - "node_modules/@firebase/analytics": {
2251 - "version": "0.6.18",
2252 - "resolved": "https://registry.npmjs.org/@firebase/analytics/-/analytics-0.6.18.tgz",
2253 - "integrity": "sha512-FXNtYDxbs9ynPbzUVuG94BjFPOPpgJ7156660uvCBuKgoBCIVcNqKkJQQ7TH8384fqvGjbjdcgARY9jgAHbtog==",
2254 - "dependencies": {
2255 - "@firebase/analytics-types": "0.6.0",
2256 - "@firebase/component": "0.5.6",
2257 - "@firebase/installations": "0.4.32",
2258 - "@firebase/logger": "0.2.6",
2259 - "@firebase/util": "1.3.0",
2260 - "tslib": "^2.1.0"
2261 - },
2262 - "peerDependencies": {
2263 - "@firebase/app": "0.x",
2264 - "@firebase/app-types": "0.x"
2265 - }
2266 - },
2267 - "node_modules/@firebase/analytics-types": {
2268 - "version": "0.6.0",
2269 - "resolved": "https://registry.npmjs.org/@firebase/analytics-types/-/analytics-types-0.6.0.tgz",
2270 - "integrity": "sha512-kbMawY0WRPyL/lbknBkme4CNLl+Gw+E9G4OpNeXAauqoQiNkBgpIvZYy7BRT4sNGhZbxdxXxXbruqUwDzLmvTw=="
2271 - },
2272 - "node_modules/@firebase/app": {
2273 - "version": "0.6.30",
2274 - "resolved": "https://registry.npmjs.org/@firebase/app/-/app-0.6.30.tgz",
2275 - "integrity": "sha512-uAYEDXyK0mmpZ8hWQj5TNd7WVvfsU8PgsqKpGljbFBG/HhsH8KbcykWAAA+c1PqL7dt/dbt0Reh1y9zEdYzMhg==",
2276 - "dependencies": {
2277 - "@firebase/app-types": "0.6.3",
2278 - "@firebase/component": "0.5.6",
2279 - "@firebase/logger": "0.2.6",
2280 - "@firebase/util": "1.3.0",
2281 - "dom-storage": "2.1.0",
2282 - "tslib": "^2.1.0",
2283 - "xmlhttprequest": "1.8.0"
2284 - }
2285 - },
2286 - "node_modules/@firebase/app-check": {
2287 - "version": "0.3.2",
2288 - "resolved": "https://registry.npmjs.org/@firebase/app-check/-/app-check-0.3.2.tgz",
2289 - "integrity": "sha512-YjpsnV1xVTO1B836IKijRcDeceLgHQNJ/DWa+Vky9UHkm1Mi4qosddX8LZzldaWRTWKX7BN1MbZOLY8r7M/MZQ==",
2290 - "dependencies": {
2291 - "@firebase/app-check-interop-types": "0.1.0",
2292 - "@firebase/app-check-types": "0.3.1",
2293 - "@firebase/component": "0.5.6",
2294 - "@firebase/logger": "0.2.6",
2295 - "@firebase/util": "1.3.0",
2296 - "tslib": "^2.1.0"
2297 - },
2298 - "peerDependencies": {
2299 - "@firebase/app": "0.x",
2300 - "@firebase/app-types": "0.x"
2301 - }
2302 - },
2303 - "node_modules/@firebase/app-check-interop-types": {
2304 - "version": "0.1.0",
2305 - "resolved": "https://registry.npmjs.org/@firebase/app-check-interop-types/-/app-check-interop-types-0.1.0.tgz",
2306 - "integrity": "sha512-uZfn9s4uuRsaX5Lwx+gFP3B6YsyOKUE+Rqa6z9ojT4VSRAsZFko9FRn6OxQUA1z5t5d08fY4pf+/+Dkd5wbdbA=="
2307 - },
2308 - "node_modules/@firebase/app-check-types": {
2309 - "version": "0.3.1",
2310 - "resolved": "https://registry.npmjs.org/@firebase/app-check-types/-/app-check-types-0.3.1.tgz",
2311 - "integrity": "sha512-KJ+BqJbdNsx4QT/JIT1yDj5p6D+QN97iJs3GuHnORrqL+DU3RWc9nSYQsrY6Tv9jVWcOkMENXAgDT484vzsm2w=="
2312 - },
2313 - "node_modules/@firebase/app-types": {
2314 - "version": "0.6.3",
2315 - "resolved": "https://registry.npmjs.org/@firebase/app-types/-/app-types-0.6.3.tgz",
2316 - "integrity": "sha512-/M13DPPati7FQHEQ9Minjk1HGLm/4K4gs9bR4rzLCWJg64yGtVC0zNg9gDpkw9yc2cvol/mNFxqTtd4geGrwdw=="
2317 - },
2318 - "node_modules/@firebase/auth": {
2319 - "version": "0.16.8",
2320 - "resolved": "https://registry.npmjs.org/@firebase/auth/-/auth-0.16.8.tgz",
2321 - "integrity": "sha512-mR0UXG4LirWIfOiCWxVmvz1o23BuKGxeItQ2cCUgXLTjNtWJXdcky/356iTUsd7ZV5A78s2NHeN5tIDDG6H4rg==",
2322 - "dependencies": {
2323 - "@firebase/auth-types": "0.10.3"
2324 - },
2325 - "peerDependencies": {
2326 - "@firebase/app": "0.x"
2327 - }
2328 - },
2329 - "node_modules/@firebase/auth-interop-types": {
2330 - "version": "0.1.6",
2331 - "resolved": "https://registry.npmjs.org/@firebase/auth-interop-types/-/auth-interop-types-0.1.6.tgz",
2332 - "integrity": "sha512-etIi92fW3CctsmR9e3sYM3Uqnoq861M0Id9mdOPF6PWIg38BXL5k4upCNBggGUpLIS0H1grMOvy/wn1xymwe2g==",
2333 - "peerDependencies": {
2334 - "@firebase/app-types": "0.x",
2335 - "@firebase/util": "1.x"
2336 - }
2337 - },
2338 - "node_modules/@firebase/auth-types": {
2339 - "version": "0.10.3",
2340 - "resolved": "https://registry.npmjs.org/@firebase/auth-types/-/auth-types-0.10.3.tgz",
2341 - "integrity": "sha512-zExrThRqyqGUbXOFrH/sowuh2rRtfKHp9SBVY2vOqKWdCX1Ztn682n9WLtlUDsiYVIbBcwautYWk2HyCGFv0OA==",
2342 - "peerDependencies": {
2343 - "@firebase/app-types": "0.x",
2344 - "@firebase/util": "1.x"
2345 - }
2346 - },
2347 - "node_modules/@firebase/component": {
2348 - "version": "0.5.6",
2349 - "resolved": "https://registry.npmjs.org/@firebase/component/-/component-0.5.6.tgz",
2350 - "integrity": "sha512-GyQJ+2lrhsDqeGgd1VdS7W+Y6gNYyI0B51ovNTxeZVG/W8I7t9MwEiCWsCvfm5wQgfsKp9dkzOcJrL5k8oVO/Q==",
2351 - "dependencies": {
2352 - "@firebase/util": "1.3.0",
2353 - "tslib": "^2.1.0"
2354 - }
2355 - },
2356 - "node_modules/@firebase/database": {
2357 - "version": "0.11.0",
2358 - "resolved": "https://registry.npmjs.org/@firebase/database/-/database-0.11.0.tgz",
2359 - "integrity": "sha512-b/kwvCubr6G9coPlo48PbieBDln7ViFBHOGeVt/bt82yuv5jYZBEYAac/mtOVSxpf14aMo/tAN+Edl6SWqXApw==",
2360 - "dependencies": {
2361 - "@firebase/auth-interop-types": "0.1.6",
2362 - "@firebase/component": "0.5.6",
2363 - "@firebase/database-types": "0.8.0",
2364 - "@firebase/logger": "0.2.6",
2365 - "@firebase/util": "1.3.0",
2366 - "faye-websocket": "0.11.3",
2367 - "tslib": "^2.1.0"
2368 - }
2369 - },
2370 - "node_modules/@firebase/database-types": {
2371 - "version": "0.8.0",
2372 - "resolved": "https://registry.npmjs.org/@firebase/database-types/-/database-types-0.8.0.tgz",
2373 - "integrity": "sha512-7IdjAFRfPWyG3b4wcXyghb3Y1CLCSJFZIg1xl5GbTVMttSQFT4B5NYdhsfA34JwAsv5pMzPpjOaS3/K9XJ2KiA==",
2374 - "dependencies": {
2375 - "@firebase/app-types": "0.6.3",
2376 - "@firebase/util": "1.3.0"
2377 - }
2378 - },
2379 - "node_modules/@firebase/firestore": {
2380 - "version": "2.4.0",
2381 - "resolved": "https://registry.npmjs.org/@firebase/firestore/-/firestore-2.4.0.tgz",
2382 - "integrity": "sha512-PQ6+lWNrvh74GvFTHT4gCutFipDmtu8D1tNNawKe+/SyL6XFgeuMYgZIpKQgkTSezVDogC7EGQTJBFnewF9pOg==",
2383 - "dependencies": {
2384 - "@firebase/component": "0.5.6",
2385 - "@firebase/firestore-types": "2.4.0",
2386 - "@firebase/logger": "0.2.6",
2387 - "@firebase/util": "1.3.0",
2388 - "@firebase/webchannel-wrapper": "0.5.1",
2389 - "@grpc/grpc-js": "^1.3.2",
2390 - "@grpc/proto-loader": "^0.6.0",
2391 - "node-fetch": "2.6.1",
2392 - "tslib": "^2.1.0"
2393 - },
2394 - "engines": {
2395 - "node": "^8.13.0 || >=10.10.0"
2396 - },
2397 - "peerDependencies": {
2398 - "@firebase/app": "0.x",
2399 - "@firebase/app-types": "0.x"
2400 - }
2401 - },
2402 - "node_modules/@firebase/firestore-types": {
2403 - "version": "2.4.0",
2404 - "resolved": "https://registry.npmjs.org/@firebase/firestore-types/-/firestore-types-2.4.0.tgz",
2405 - "integrity": "sha512-0dgwfuNP7EN6/OlK2HSNSQiQNGLGaRBH0gvgr1ngtKKJuJFuq0Z48RBMeJX9CGjV4TP9h2KaB+KrUKJ5kh1hMg==",
2406 - "peerDependencies": {
2407 - "@firebase/app-types": "0.x",
2408 - "@firebase/util": "1.x"
2409 - }
2410 - },
2411 - "node_modules/@firebase/functions": {
2412 - "version": "0.6.15",
2413 - "resolved": "https://registry.npmjs.org/@firebase/functions/-/functions-0.6.15.tgz",
2414 - "integrity": "sha512-b7RpLwFXi0N+HgkfK8cmkarSOoBeSrc1jNdadkCacQt+vIePkKM3E9EJXF4roWSa8GwTruodpBsvH+lK9iCAKQ==",
2415 - "dependencies": {
2416 - "@firebase/component": "0.5.6",
2417 - "@firebase/functions-types": "0.4.0",
2418 - "@firebase/messaging-types": "0.5.0",
2419 - "node-fetch": "2.6.1",
2420 - "tslib": "^2.1.0"
2421 - },
2422 - "peerDependencies": {
2423 - "@firebase/app": "0.x",
2424 - "@firebase/app-types": "0.x"
2425 - }
2426 - },
2427 - "node_modules/@firebase/functions-types": {
2428 - "version": "0.4.0",
2429 - "resolved": "https://registry.npmjs.org/@firebase/functions-types/-/functions-types-0.4.0.tgz",
2430 - "integrity": "sha512-3KElyO3887HNxtxNF1ytGFrNmqD+hheqjwmT3sI09FaDCuaxGbOnsXAXH2eQ049XRXw9YQpHMgYws/aUNgXVyQ=="
2431 - },
2432 - "node_modules/@firebase/installations": {
2433 - "version": "0.4.32",
2434 - "resolved": "https://registry.npmjs.org/@firebase/installations/-/installations-0.4.32.tgz",
2435 - "integrity": "sha512-K4UlED1Vrhd2rFQQJih+OgEj8OTtrtH4+Izkx7ip2bhXSc+unk8ZhnF69D0kmh7zjXAqEDJrmHs9O5fI3rV6Tw==",
2436 - "dependencies": {
2437 - "@firebase/component": "0.5.6",
2438 - "@firebase/installations-types": "0.3.4",
2439 - "@firebase/util": "1.3.0",
2440 - "idb": "3.0.2",
2441 - "tslib": "^2.1.0"
2442 - },
2443 - "peerDependencies": {
2444 - "@firebase/app": "0.x",
2445 - "@firebase/app-types": "0.x"
2446 - }
2447 - },
2448 - "node_modules/@firebase/installations-types": {
2449 - "version": "0.3.4",
2450 - "resolved": "https://registry.npmjs.org/@firebase/installations-types/-/installations-types-0.3.4.tgz",
2451 - "integrity": "sha512-RfePJFovmdIXb6rYwtngyxuEcWnOrzdZd9m7xAW0gRxDIjBT20n3BOhjpmgRWXo/DAxRmS7bRjWAyTHY9cqN7Q==",
2452 - "peerDependencies": {
2453 - "@firebase/app-types": "0.x"
2454 - }
2455 - },
2456 - "node_modules/@firebase/logger": {
2457 - "version": "0.2.6",
2458 - "resolved": "https://registry.npmjs.org/@firebase/logger/-/logger-0.2.6.tgz",
2459 - "integrity": "sha512-KIxcUvW/cRGWlzK9Vd2KB864HlUnCfdTH0taHE0sXW5Xl7+W68suaeau1oKNEqmc3l45azkd4NzXTCWZRZdXrw=="
2460 - },
2461 - "node_modules/@firebase/messaging": {
2462 - "version": "0.8.0",
2463 - "resolved": "https://registry.npmjs.org/@firebase/messaging/-/messaging-0.8.0.tgz",
2464 - "integrity": "sha512-hkFHDyVe1kMcY9KEG+prjCbvS6MtLUgVFUbbQqq7JQfiv58E07YCzRUcMrJolbNi/1QHH6Jv16DxNWjJB9+/qA==",
2465 - "dependencies": {
2466 - "@firebase/component": "0.5.6",
2467 - "@firebase/installations": "0.4.32",
2468 - "@firebase/messaging-types": "0.5.0",
2469 - "@firebase/util": "1.3.0",
2470 - "idb": "3.0.2",
2471 - "tslib": "^2.1.0"
2472 - },
2473 - "peerDependencies": {
2474 - "@firebase/app": "0.x",
2475 - "@firebase/app-types": "0.x"
2476 - }
2477 - },
2478 - "node_modules/@firebase/messaging-types": {
2479 - "version": "0.5.0",
2480 - "resolved": "https://registry.npmjs.org/@firebase/messaging-types/-/messaging-types-0.5.0.tgz",
2481 - "integrity": "sha512-QaaBswrU6umJYb/ZYvjR5JDSslCGOH6D9P136PhabFAHLTR4TWjsaACvbBXuvwrfCXu10DtcjMxqfhdNIB1Xfg==",
2482 - "peerDependencies": {
2483 - "@firebase/app-types": "0.x"
2484 - }
2485 - },
2486 - "node_modules/@firebase/performance": {
2487 - "version": "0.4.18",
2488 - "resolved": "https://registry.npmjs.org/@firebase/performance/-/performance-0.4.18.tgz",
2489 - "integrity": "sha512-lvZW/TVDne2TyOpWbv++zjRn277HZpbjxbIPfwtnmKjVY1gJ+H77Qi1c2avVIc9hg80uGX/5tNf4pOApNDJLVg==",
2490 - "dependencies": {
2491 - "@firebase/component": "0.5.6",
2492 - "@firebase/installations": "0.4.32",
2493 - "@firebase/logger": "0.2.6",
2494 - "@firebase/performance-types": "0.0.13",
2495 - "@firebase/util": "1.3.0",
2496 - "tslib": "^2.1.0"
2497 - },
2498 - "peerDependencies": {
2499 - "@firebase/app": "0.x",
2500 - "@firebase/app-types": "0.x"
2501 - }
2502 - },
2503 - "node_modules/@firebase/performance-types": {
2504 - "version": "0.0.13",
2505 - "resolved": "https://registry.npmjs.org/@firebase/performance-types/-/performance-types-0.0.13.tgz",
2506 - "integrity": "sha512-6fZfIGjQpwo9S5OzMpPyqgYAUZcFzZxHFqOyNtorDIgNXq33nlldTL/vtaUZA8iT9TT5cJlCrF/jthKU7X21EA=="
2507 - },
2508 - "node_modules/@firebase/polyfill": {
2509 - "version": "0.3.36",
2510 - "resolved": "https://registry.npmjs.org/@firebase/polyfill/-/polyfill-0.3.36.tgz",
2511 - "integrity": "sha512-zMM9oSJgY6cT2jx3Ce9LYqb0eIpDE52meIzd/oe/y70F+v9u1LDqk5kUF5mf16zovGBWMNFmgzlsh6Wj0OsFtg==",
2512 - "dependencies": {
2513 - "core-js": "3.6.5",
2514 - "promise-polyfill": "8.1.3",
2515 - "whatwg-fetch": "2.0.4"
2516 - }
2517 - },
2518 - "node_modules/@firebase/remote-config": {
2519 - "version": "0.1.43",
2520 - "resolved": "https://registry.npmjs.org/@firebase/remote-config/-/remote-config-0.1.43.tgz",
2521 - "integrity": "sha512-laNM4MN0CfeSp7XCVNjYOC4DdV6mj0l2rzUh42x4v2wLTweCoJ/kc1i4oWMX9TI7Jw8Am5Wl71Awn1J2pVe5xA==",
2522 - "dependencies": {
2523 - "@firebase/component": "0.5.6",
2524 - "@firebase/installations": "0.4.32",
2525 - "@firebase/logger": "0.2.6",
2526 - "@firebase/remote-config-types": "0.1.9",
2527 - "@firebase/util": "1.3.0",
2528 - "tslib": "^2.1.0"
2529 - },
2530 - "peerDependencies": {
2531 - "@firebase/app": "0.x",
2532 - "@firebase/app-types": "0.x"
2533 - }
2534 - },
2535 - "node_modules/@firebase/remote-config-types": {
2536 - "version": "0.1.9",
2537 - "resolved": "https://registry.npmjs.org/@firebase/remote-config-types/-/remote-config-types-0.1.9.tgz",
2538 - "integrity": "sha512-G96qnF3RYGbZsTRut7NBX0sxyczxt1uyCgXQuH/eAfUCngxjEGcZQnBdy6mvSdqdJh5mC31rWPO4v9/s7HwtzA=="
2539 - },
2540 - "node_modules/@firebase/storage": {
2541 - "version": "0.7.0",
2542 - "resolved": "https://registry.npmjs.org/@firebase/storage/-/storage-0.7.0.tgz",
2543 - "integrity": "sha512-ebDFKJbM5HOxVtZV+RhVEBVtlWHK+Z5L3kA5uDBA2jMYcn+8NV/crozJnEE+iRsGEco6dLK5JS+Er4qtKLpH5A==",
2544 - "dependencies": {
2545 - "@firebase/component": "0.5.6",
2546 - "@firebase/storage-types": "0.5.0",
2547 - "@firebase/util": "1.3.0",
2548 - "node-fetch": "2.6.1",
2549 - "tslib": "^2.1.0"
2550 - },
2551 - "peerDependencies": {
2552 - "@firebase/app": "0.x",
2553 - "@firebase/app-types": "0.x"
2554 - }
2555 - },
2556 - "node_modules/@firebase/storage-types": {
2557 - "version": "0.5.0",
2558 - "resolved": "https://registry.npmjs.org/@firebase/storage-types/-/storage-types-0.5.0.tgz",
2559 - "integrity": "sha512-6Wv3Lu7s18hsgW7HG4BFwycTquZ3m/C8bjBoOsmPu0TD6M1GKwCzOC7qBdN7L6tRYPh8ipTj5+rPFrmhGfUVKA==",
2560 - "peerDependencies": {
2561 - "@firebase/app-types": "0.x",
2562 - "@firebase/util": "1.x"
2563 - }
2564 - },
2565 - "node_modules/@firebase/util": {
2566 - "version": "1.3.0",
2567 - "resolved": "https://registry.npmjs.org/@firebase/util/-/util-1.3.0.tgz",
2568 - "integrity": "sha512-SESvmYwuKOVCZ1ZxLbberbx+9cnbxpCa4CG2FUSQYqN6Ab8KyltegMDIsqMw5KyIBZ4n1phfHoOa22xo5NzAlQ==",
2569 - "dependencies": {
2570 - "tslib": "^2.1.0"
2571 - }
2572 - },
2573 - "node_modules/@firebase/webchannel-wrapper": {
2574 - "version": "0.5.1",
2575 - "resolved": "https://registry.npmjs.org/@firebase/webchannel-wrapper/-/webchannel-wrapper-0.5.1.tgz",
2576 - "integrity": "sha512-dZMzN0uAjwJXWYYAcnxIwXqRTZw3o14hGe7O6uhwjD1ZQWPVYA5lASgnNskEBra0knVBsOXB4KXg+HnlKewN/A=="
2577 - },
2578 - "node_modules/@grpc/grpc-js": {
2579 - "version": "1.5.2",
2580 - "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.5.2.tgz",
2581 - "integrity": "sha512-JlBkWqm2qVtZTg6OQU9g0o9C3jR6Us0TekZlTVCESxq5wUbFUjrW5GijXPDpwLqdmabCRJ0xm9Ayyj+b9T9pow==",
2582 - "dependencies": {
2583 - "@grpc/proto-loader": "^0.6.4",
2584 - "@types/node": ">=12.12.47"
2585 - },
2586 - "engines": {
2587 - "node": "^8.13.0 || >=10.10.0"
2588 - }
2589 - },
2590 - "node_modules/@grpc/proto-loader": {
2591 - "version": "0.6.9",
2592 - "resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.6.9.tgz",
2593 - "integrity": "sha512-UlcCS8VbsU9d3XTXGiEVFonN7hXk+oMXZtoHHG2oSA1/GcDP1q6OUgs20PzHDGizzyi8ufGSUDlk3O2NyY7leg==",
2594 - "dependencies": {
2595 - "@types/long": "^4.0.1",
2596 - "lodash.camelcase": "^4.3.0",
2597 - "long": "^4.0.0",
2598 - "protobufjs": "^6.10.0",
2599 - "yargs": "^16.2.0"
2600 - },
2601 - "bin": {
2602 - "proto-loader-gen-types": "build/bin/proto-loader-gen-types.js"
2603 - },
2604 - "engines": {
2605 - "node": ">=6"
2606 - }
2607 - },
2608 - "node_modules/@humanwhocodes/config-array": {
2609 - "version": "0.11.10",
2610 - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.10.tgz",
2611 - "integrity": "sha512-KVVjQmNUepDVGXNuoRRdmmEjruj0KfiGSbS8LVc12LMsWDQzRXJ0qdhN8L8uUigKpfEHRhlaQFY0ib1tnUbNeQ==",
2612 - "dependencies": {
2613 - "@humanwhocodes/object-schema": "^1.2.1",
2614 - "debug": "^4.1.1",
2615 - "minimatch": "^3.0.5"
2616 - },
2617 - "engines": {
2618 - "node": ">=10.10.0"
2619 - }
2620 - },
2621 - "node_modules/@humanwhocodes/module-importer": {
2622 - "version": "1.0.1",
2623 - "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz",
2624 - "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==",
2625 - "engines": {
2626 - "node": ">=12.22"
2627 - },
2628 - "funding": {
2629 - "type": "github",
2630 - "url": "https://github.com/sponsors/nzakas"
2631 - }
2632 - },
2633 - "node_modules/@humanwhocodes/object-schema": {
2634 - "version": "1.2.1",
2635 - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz",
2636 - "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA=="
2637 - },
2638 - "node_modules/@istanbuljs/load-nyc-config": {
2639 - "version": "1.1.0",
2640 - "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz",
2641 - "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==",
2642 - "dependencies": {
2643 - "camelcase": "^5.3.1",
2644 - "find-up": "^4.1.0",
2645 - "get-package-type": "^0.1.0",
2646 - "js-yaml": "^3.13.1",
2647 - "resolve-from": "^5.0.0"
2648 - },
2649 - "engines": {
2650 - "node": ">=8"
2651 - }
2652 - },
2653 - "node_modules/@istanbuljs/load-nyc-config/node_modules/camelcase": {
2654 - "version": "5.3.1",
2655 - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
2656 - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
2657 - "engines": {
2658 - "node": ">=6"
2659 - }
2660 - },
2661 - "node_modules/@istanbuljs/load-nyc-config/node_modules/find-up": {
2662 - "version": "4.1.0",
2663 - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
2664 - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
2665 - "dependencies": {
2666 - "locate-path": "^5.0.0",
2667 - "path-exists": "^4.0.0"
2668 - },
2669 - "engines": {
2670 - "node": ">=8"
2671 - }
2672 - },
2673 - "node_modules/@istanbuljs/load-nyc-config/node_modules/locate-path": {
2674 - "version": "5.0.0",
2675 - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
2676 - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
2677 - "dependencies": {
2678 - "p-locate": "^4.1.0"
2679 - },
2680 - "engines": {
2681 - "node": ">=8"
2682 - }
2683 - },
2684 - "node_modules/@istanbuljs/load-nyc-config/node_modules/p-limit": {
2685 - "version": "2.3.0",
2686 - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
2687 - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
2688 - "dependencies": {
2689 - "p-try": "^2.0.0"
2690 - },
2691 - "engines": {
2692 - "node": ">=6"
2693 - },
2694 - "funding": {
2695 - "url": "https://github.com/sponsors/sindresorhus"
2696 - }
2697 - },
2698 - "node_modules/@istanbuljs/load-nyc-config/node_modules/p-locate": {
2699 - "version": "4.1.0",
2700 - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
2701 - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
2702 - "dependencies": {
2703 - "p-limit": "^2.2.0"
2704 - },
2705 - "engines": {
2706 - "node": ">=8"
2707 - }
2708 - },
2709 - "node_modules/@istanbuljs/schema": {
2710 - "version": "0.1.3",
2711 - "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz",
2712 - "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==",
2713 - "engines": {
2714 - "node": ">=8"
2715 - }
2716 - },
2717 - "node_modules/@jest/console": {
2718 - "version": "27.5.1",
2719 - "resolved": "https://registry.npmjs.org/@jest/console/-/console-27.5.1.tgz",
2720 - "integrity": "sha512-kZ/tNpS3NXn0mlXXXPNuDZnb4c0oZ20r4K5eemM2k30ZC3G0T02nXUvyhf5YdbXWHPEJLc9qGLxEZ216MdL+Zg==",
2721 - "dependencies": {
2722 - "@jest/types": "^27.5.1",
2723 - "@types/node": "*",
2724 - "chalk": "^4.0.0",
2725 - "jest-message-util": "^27.5.1",
2726 - "jest-util": "^27.5.1",
2727 - "slash": "^3.0.0"
2728 - },
2729 - "engines": {
2730 - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
2731 - }
2732 - },
2733 - "node_modules/@jest/console/node_modules/@jest/types": {
2734 - "version": "27.5.1",
2735 - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz",
2736 - "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==",
2737 - "dependencies": {
2738 - "@types/istanbul-lib-coverage": "^2.0.0",
2739 - "@types/istanbul-reports": "^3.0.0",
2740 - "@types/node": "*",
2741 - "@types/yargs": "^16.0.0",
2742 - "chalk": "^4.0.0"
2743 - },
2744 - "engines": {
2745 - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
2746 - }
2747 - },
2748 - "node_modules/@jest/console/node_modules/@types/istanbul-reports": {
2749 - "version": "3.0.1",
2750 - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz",
2751 - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==",
2752 - "dependencies": {
2753 - "@types/istanbul-lib-report": "*"
2754 - }
2755 - },
2756 - "node_modules/@jest/console/node_modules/@types/yargs": {
2757 - "version": "16.0.5",
2758 - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.5.tgz",
2759 - "integrity": "sha512-AxO/ADJOBFJScHbWhq2xAhlWP24rY4aCEG/NFaMvbT3X2MgRsLjhjQwsn0Zi5zn0LG9jUhCCZMeX9Dkuw6k+vQ==",
2760 - "dependencies": {
2761 - "@types/yargs-parser": "*"
2762 - }
2763 - },
2764 - "node_modules/@jest/console/node_modules/ansi-styles": {
2765 - "version": "4.3.0",
2766 - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
2767 - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
2768 - "dependencies": {
2769 - "color-convert": "^2.0.1"
2770 - },
2771 - "engines": {
2772 - "node": ">=8"
2773 - },
2774 - "funding": {
2775 - "url": "https://github.com/chalk/ansi-styles?sponsor=1"
2776 - }
2777 - },
2778 - "node_modules/@jest/console/node_modules/chalk": {
2779 - "version": "4.1.2",
2780 - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
2781 - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
2782 - "dependencies": {
2783 - "ansi-styles": "^4.1.0",
2784 - "supports-color": "^7.1.0"
2785 - },
2786 - "engines": {
2787 - "node": ">=10"
2788 - },
2789 - "funding": {
2790 - "url": "https://github.com/chalk/chalk?sponsor=1"
2791 - }
2792 - },
2793 - "node_modules/@jest/console/node_modules/color-convert": {
2794 - "version": "2.0.1",
2795 - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
2796 - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
2797 - "dependencies": {
2798 - "color-name": "~1.1.4"
2799 - },
2800 - "engines": {
2801 - "node": ">=7.0.0"
2802 - }
2803 - },
2804 - "node_modules/@jest/console/node_modules/color-name": {
2805 - "version": "1.1.4",
2806 - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
2807 - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
2808 - },
2809 - "node_modules/@jest/console/node_modules/has-flag": {
2810 - "version": "4.0.0",
2811 - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
2812 - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
2813 - "engines": {
2814 - "node": ">=8"
2815 - }
2816 - },
2817 - "node_modules/@jest/console/node_modules/supports-color": {
2818 - "version": "7.2.0",
2819 - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
2820 - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
2821 - "dependencies": {
2822 - "has-flag": "^4.0.0"
2823 - },
2824 - "engines": {
2825 - "node": ">=8"
2826 - }
2827 - },
2828 - "node_modules/@jest/core": {
2829 - "version": "27.5.1",
2830 - "resolved": "https://registry.npmjs.org/@jest/core/-/core-27.5.1.tgz",
2831 - "integrity": "sha512-AK6/UTrvQD0Cd24NSqmIA6rKsu0tKIxfiCducZvqxYdmMisOYAsdItspT+fQDQYARPf8XgjAFZi0ogW2agH5nQ==",
2832 - "dependencies": {
2833 - "@jest/console": "^27.5.1",
2834 - "@jest/reporters": "^27.5.1",
2835 - "@jest/test-result": "^27.5.1",
2836 - "@jest/transform": "^27.5.1",
2837 - "@jest/types": "^27.5.1",
2838 - "@types/node": "*",
2839 - "ansi-escapes": "^4.2.1",
2840 - "chalk": "^4.0.0",
2841 - "emittery": "^0.8.1",
2842 - "exit": "^0.1.2",
2843 - "graceful-fs": "^4.2.9",
2844 - "jest-changed-files": "^27.5.1",
2845 - "jest-config": "^27.5.1",
2846 - "jest-haste-map": "^27.5.1",
2847 - "jest-message-util": "^27.5.1",
2848 - "jest-regex-util": "^27.5.1",
2849 - "jest-resolve": "^27.5.1",
2850 - "jest-resolve-dependencies": "^27.5.1",
2851 - "jest-runner": "^27.5.1",
2852 - "jest-runtime": "^27.5.1",
2853 - "jest-snapshot": "^27.5.1",
2854 - "jest-util": "^27.5.1",
2855 - "jest-validate": "^27.5.1",
2856 - "jest-watcher": "^27.5.1",
2857 - "micromatch": "^4.0.4",
2858 - "rimraf": "^3.0.0",
2859 - "slash": "^3.0.0",
2860 - "strip-ansi": "^6.0.0"
2861 - },
2862 - "engines": {
2863 - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
2864 - },
2865 - "peerDependencies": {
2866 - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0"
2867 - },
2868 - "peerDependenciesMeta": {
2869 - "node-notifier": {
2870 - "optional": true
2871 - }
2872 - }
2873 - },
2874 - "node_modules/@jest/core/node_modules/@jest/types": {
2875 - "version": "27.5.1",
2876 - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz",
2877 - "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==",
2878 - "dependencies": {
2879 - "@types/istanbul-lib-coverage": "^2.0.0",
2880 - "@types/istanbul-reports": "^3.0.0",
2881 - "@types/node": "*",
2882 - "@types/yargs": "^16.0.0",
2883 - "chalk": "^4.0.0"
2884 - },
2885 - "engines": {
2886 - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
2887 - }
2888 - },
2889 - "node_modules/@jest/core/node_modules/@types/istanbul-reports": {
2890 - "version": "3.0.1",
2891 - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz",
2892 - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==",
2893 - "dependencies": {
2894 - "@types/istanbul-lib-report": "*"
2895 - }
2896 - },
2897 - "node_modules/@jest/core/node_modules/@types/yargs": {
2898 - "version": "16.0.5",
2899 - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.5.tgz",
2900 - "integrity": "sha512-AxO/ADJOBFJScHbWhq2xAhlWP24rY4aCEG/NFaMvbT3X2MgRsLjhjQwsn0Zi5zn0LG9jUhCCZMeX9Dkuw6k+vQ==",
2901 - "dependencies": {
2902 - "@types/yargs-parser": "*"
2903 - }
2904 - },
2905 - "node_modules/@jest/core/node_modules/ansi-styles": {
2906 - "version": "4.3.0",
2907 - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
2908 - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
2909 - "dependencies": {
2910 - "color-convert": "^2.0.1"
2911 - },
2912 - "engines": {
2913 - "node": ">=8"
2914 - },
2915 - "funding": {
2916 - "url": "https://github.com/chalk/ansi-styles?sponsor=1"
2917 - }
2918 - },
2919 - "node_modules/@jest/core/node_modules/chalk": {
2920 - "version": "4.1.2",
2921 - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
2922 - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
2923 - "dependencies": {
2924 - "ansi-styles": "^4.1.0",
2925 - "supports-color": "^7.1.0"
2926 - },
2927 - "engines": {
2928 - "node": ">=10"
2929 - },
2930 - "funding": {
2931 - "url": "https://github.com/chalk/chalk?sponsor=1"
2932 - }
2933 - },
2934 - "node_modules/@jest/core/node_modules/color-convert": {
2935 - "version": "2.0.1",
2936 - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
2937 - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
2938 - "dependencies": {
2939 - "color-name": "~1.1.4"
2940 - },
2941 - "engines": {
2942 - "node": ">=7.0.0"
2943 - }
2944 - },
2945 - "node_modules/@jest/core/node_modules/color-name": {
2946 - "version": "1.1.4",
2947 - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
2948 - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
2949 - },
2950 - "node_modules/@jest/core/node_modules/has-flag": {
2951 - "version": "4.0.0",
2952 - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
2953 - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
2954 - "engines": {
2955 - "node": ">=8"
2956 - }
2957 - },
2958 - "node_modules/@jest/core/node_modules/supports-color": {
2959 - "version": "7.2.0",
2960 - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
2961 - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
2962 - "dependencies": {
2963 - "has-flag": "^4.0.0"
2964 - },
2965 - "engines": {
2966 - "node": ">=8"
2967 - }
2968 - },
2969 - "node_modules/@jest/environment": {
2970 - "version": "27.5.1",
2971 - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-27.5.1.tgz",
2972 - "integrity": "sha512-/WQjhPJe3/ghaol/4Bq480JKXV/Rfw8nQdN7f41fM8VDHLcxKXou6QyXAh3EFr9/bVG3x74z1NWDkP87EiY8gA==",
2973 - "dependencies": {
2974 - "@jest/fake-timers": "^27.5.1",
2975 - "@jest/types": "^27.5.1",
2976 - "@types/node": "*",
2977 - "jest-mock": "^27.5.1"
2978 - },
2979 - "engines": {
2980 - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
2981 - }
2982 - },
2983 - "node_modules/@jest/environment/node_modules/@jest/types": {
2984 - "version": "27.5.1",
2985 - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz",
2986 - "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==",
2987 - "dependencies": {
2988 - "@types/istanbul-lib-coverage": "^2.0.0",
2989 - "@types/istanbul-reports": "^3.0.0",
2990 - "@types/node": "*",
2991 - "@types/yargs": "^16.0.0",
2992 - "chalk": "^4.0.0"
2993 - },
2994 - "engines": {
2995 - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
2996 - }
2997 - },
2998 - "node_modules/@jest/environment/node_modules/@types/istanbul-reports": {
2999 - "version": "3.0.1",
3000 - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz",
3001 - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==",
3002 - "dependencies": {
3003 - "@types/istanbul-lib-report": "*"
3004 - }
3005 - },
3006 - "node_modules/@jest/environment/node_modules/@types/yargs": {
3007 - "version": "16.0.5",
3008 - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.5.tgz",
3009 - "integrity": "sha512-AxO/ADJOBFJScHbWhq2xAhlWP24rY4aCEG/NFaMvbT3X2MgRsLjhjQwsn0Zi5zn0LG9jUhCCZMeX9Dkuw6k+vQ==",
3010 - "dependencies": {
3011 - "@types/yargs-parser": "*"
3012 - }
3013 - },
3014 - "node_modules/@jest/environment/node_modules/ansi-styles": {
3015 - "version": "4.3.0",
3016 - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
3017 - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
3018 - "dependencies": {
3019 - "color-convert": "^2.0.1"
3020 - },
3021 - "engines": {
3022 - "node": ">=8"
3023 - },
3024 - "funding": {
3025 - "url": "https://github.com/chalk/ansi-styles?sponsor=1"
3026 - }
3027 - },
3028 - "node_modules/@jest/environment/node_modules/chalk": {
3029 - "version": "4.1.2",
3030 - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
3031 - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
3032 - "dependencies": {
3033 - "ansi-styles": "^4.1.0",
3034 - "supports-color": "^7.1.0"
3035 - },
3036 - "engines": {
3037 - "node": ">=10"
3038 - },
3039 - "funding": {
3040 - "url": "https://github.com/chalk/chalk?sponsor=1"
3041 - }
3042 - },
3043 - "node_modules/@jest/environment/node_modules/color-convert": {
3044 - "version": "2.0.1",
3045 - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
3046 - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
3047 - "dependencies": {
3048 - "color-name": "~1.1.4"
3049 - },
3050 - "engines": {
3051 - "node": ">=7.0.0"
3052 - }
3053 - },
3054 - "node_modules/@jest/environment/node_modules/color-name": {
3055 - "version": "1.1.4",
3056 - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
3057 - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
3058 - },
3059 - "node_modules/@jest/environment/node_modules/has-flag": {
3060 - "version": "4.0.0",
3061 - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
3062 - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
3063 - "engines": {
3064 - "node": ">=8"
3065 - }
3066 - },
3067 - "node_modules/@jest/environment/node_modules/supports-color": {
3068 - "version": "7.2.0",
3069 - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
3070 - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
3071 - "dependencies": {
3072 - "has-flag": "^4.0.0"
3073 - },
3074 - "engines": {
3075 - "node": ">=8"
3076 - }
3077 - },
3078 - "node_modules/@jest/fake-timers": {
3079 - "version": "27.5.1",
3080 - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-27.5.1.tgz",
3081 - "integrity": "sha512-/aPowoolwa07k7/oM3aASneNeBGCmGQsc3ugN4u6s4C/+s5M64MFo/+djTdiwcbQlRfFElGuDXWzaWj6QgKObQ==",
3082 - "dependencies": {
3083 - "@jest/types": "^27.5.1",
3084 - "@sinonjs/fake-timers": "^8.0.1",
3085 - "@types/node": "*",
3086 - "jest-message-util": "^27.5.1",
3087 - "jest-mock": "^27.5.1",
3088 - "jest-util": "^27.5.1"
3089 - },
3090 - "engines": {
3091 - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
3092 - }
3093 - },
3094 - "node_modules/@jest/fake-timers/node_modules/@jest/types": {
3095 - "version": "27.5.1",
3096 - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz",
3097 - "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==",
3098 - "dependencies": {
3099 - "@types/istanbul-lib-coverage": "^2.0.0",
3100 - "@types/istanbul-reports": "^3.0.0",
3101 - "@types/node": "*",
3102 - "@types/yargs": "^16.0.0",
3103 - "chalk": "^4.0.0"
3104 - },
3105 - "engines": {
3106 - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
3107 - }
3108 - },
3109 - "node_modules/@jest/fake-timers/node_modules/@types/istanbul-reports": {
3110 - "version": "3.0.1",
3111 - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz",
3112 - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==",
3113 - "dependencies": {
3114 - "@types/istanbul-lib-report": "*"
3115 - }
3116 - },
3117 - "node_modules/@jest/fake-timers/node_modules/@types/yargs": {
3118 - "version": "16.0.5",
3119 - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.5.tgz",
3120 - "integrity": "sha512-AxO/ADJOBFJScHbWhq2xAhlWP24rY4aCEG/NFaMvbT3X2MgRsLjhjQwsn0Zi5zn0LG9jUhCCZMeX9Dkuw6k+vQ==",
3121 - "dependencies": {
3122 - "@types/yargs-parser": "*"
3123 - }
3124 - },
3125 - "node_modules/@jest/fake-timers/node_modules/ansi-styles": {
3126 - "version": "4.3.0",
3127 - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
3128 - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
3129 - "dependencies": {
3130 - "color-convert": "^2.0.1"
3131 - },
3132 - "engines": {
3133 - "node": ">=8"
3134 - },
3135 - "funding": {
3136 - "url": "https://github.com/chalk/ansi-styles?sponsor=1"
3137 - }
3138 - },
3139 - "node_modules/@jest/fake-timers/node_modules/chalk": {
3140 - "version": "4.1.2",
3141 - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
3142 - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
3143 - "dependencies": {
3144 - "ansi-styles": "^4.1.0",
3145 - "supports-color": "^7.1.0"
3146 - },
3147 - "engines": {
3148 - "node": ">=10"
3149 - },
3150 - "funding": {
3151 - "url": "https://github.com/chalk/chalk?sponsor=1"
3152 - }
3153 - },
3154 - "node_modules/@jest/fake-timers/node_modules/color-convert": {
3155 - "version": "2.0.1",
3156 - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
3157 - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
3158 - "dependencies": {
3159 - "color-name": "~1.1.4"
3160 - },
3161 - "engines": {
3162 - "node": ">=7.0.0"
3163 - }
3164 - },
3165 - "node_modules/@jest/fake-timers/node_modules/color-name": {
3166 - "version": "1.1.4",
3167 - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
3168 - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
3169 - },
3170 - "node_modules/@jest/fake-timers/node_modules/has-flag": {
3171 - "version": "4.0.0",
3172 - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
3173 - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
3174 - "engines": {
3175 - "node": ">=8"
3176 - }
3177 - },
3178 - "node_modules/@jest/fake-timers/node_modules/supports-color": {
3179 - "version": "7.2.0",
3180 - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
3181 - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
3182 - "dependencies": {
3183 - "has-flag": "^4.0.0"
3184 - },
3185 - "engines": {
3186 - "node": ">=8"
3187 - }
3188 - },
3189 - "node_modules/@jest/globals": {
3190 - "version": "27.5.1",
3191 - "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-27.5.1.tgz",
3192 - "integrity": "sha512-ZEJNB41OBQQgGzgyInAv0UUfDDj3upmHydjieSxFvTRuZElrx7tXg/uVQ5hYVEwiXs3+aMsAeEc9X7xiSKCm4Q==",
3193 - "dependencies": {
3194 - "@jest/environment": "^27.5.1",
3195 - "@jest/types": "^27.5.1",
3196 - "expect": "^27.5.1"
3197 - },
3198 - "engines": {
3199 - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
3200 - }
3201 - },
3202 - "node_modules/@jest/globals/node_modules/@jest/types": {
3203 - "version": "27.5.1",
3204 - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz",
3205 - "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==",
3206 - "dependencies": {
3207 - "@types/istanbul-lib-coverage": "^2.0.0",
3208 - "@types/istanbul-reports": "^3.0.0",
3209 - "@types/node": "*",
3210 - "@types/yargs": "^16.0.0",
3211 - "chalk": "^4.0.0"
3212 - },
3213 - "engines": {
3214 - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
3215 - }
3216 - },
3217 - "node_modules/@jest/globals/node_modules/@types/istanbul-reports": {
3218 - "version": "3.0.1",
3219 - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz",
3220 - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==",
3221 - "dependencies": {
3222 - "@types/istanbul-lib-report": "*"
3223 - }
3224 - },
3225 - "node_modules/@jest/globals/node_modules/@types/yargs": {
3226 - "version": "16.0.5",
3227 - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.5.tgz",
3228 - "integrity": "sha512-AxO/ADJOBFJScHbWhq2xAhlWP24rY4aCEG/NFaMvbT3X2MgRsLjhjQwsn0Zi5zn0LG9jUhCCZMeX9Dkuw6k+vQ==",
3229 - "dependencies": {
3230 - "@types/yargs-parser": "*"
3231 - }
3232 - },
3233 - "node_modules/@jest/globals/node_modules/ansi-styles": {
3234 - "version": "4.3.0",
3235 - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
3236 - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
3237 - "dependencies": {
3238 - "color-convert": "^2.0.1"
3239 - },
3240 - "engines": {
3241 - "node": ">=8"
3242 - },
3243 - "funding": {
3244 - "url": "https://github.com/chalk/ansi-styles?sponsor=1"
3245 - }
3246 - },
3247 - "node_modules/@jest/globals/node_modules/chalk": {
3248 - "version": "4.1.2",
3249 - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
3250 - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
3251 - "dependencies": {
3252 - "ansi-styles": "^4.1.0",
3253 - "supports-color": "^7.1.0"
3254 - },
3255 - "engines": {
3256 - "node": ">=10"
3257 - },
3258 - "funding": {
3259 - "url": "https://github.com/chalk/chalk?sponsor=1"
3260 - }
3261 - },
3262 - "node_modules/@jest/globals/node_modules/color-convert": {
3263 - "version": "2.0.1",
3264 - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
3265 - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
3266 - "dependencies": {
3267 - "color-name": "~1.1.4"
3268 - },
3269 - "engines": {
3270 - "node": ">=7.0.0"
3271 - }
3272 - },
3273 - "node_modules/@jest/globals/node_modules/color-name": {
3274 - "version": "1.1.4",
3275 - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
3276 - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
3277 - },
3278 - "node_modules/@jest/globals/node_modules/has-flag": {
3279 - "version": "4.0.0",
3280 - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
3281 - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
3282 - "engines": {
3283 - "node": ">=8"
3284 - }
3285 - },
3286 - "node_modules/@jest/globals/node_modules/supports-color": {
3287 - "version": "7.2.0",
3288 - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
3289 - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
3290 - "dependencies": {
3291 - "has-flag": "^4.0.0"
3292 - },
3293 - "engines": {
3294 - "node": ">=8"
3295 - }
3296 - },
3297 - "node_modules/@jest/reporters": {
3298 - "version": "27.5.1",
3299 - "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-27.5.1.tgz",
3300 - "integrity": "sha512-cPXh9hWIlVJMQkVk84aIvXuBB4uQQmFqZiacloFuGiP3ah1sbCxCosidXFDfqG8+6fO1oR2dTJTlsOy4VFmUfw==",
3301 - "dependencies": {
3302 - "@bcoe/v8-coverage": "^0.2.3",
3303 - "@jest/console": "^27.5.1",
3304 - "@jest/test-result": "^27.5.1",
3305 - "@jest/transform": "^27.5.1",
3306 - "@jest/types": "^27.5.1",
3307 - "@types/node": "*",
3308 - "chalk": "^4.0.0",
3309 - "collect-v8-coverage": "^1.0.0",
3310 - "exit": "^0.1.2",
3311 - "glob": "^7.1.2",
3312 - "graceful-fs": "^4.2.9",
3313 - "istanbul-lib-coverage": "^3.0.0",
3314 - "istanbul-lib-instrument": "^5.1.0",
3315 - "istanbul-lib-report": "^3.0.0",
3316 - "istanbul-lib-source-maps": "^4.0.0",
3317 - "istanbul-reports": "^3.1.3",
3318 - "jest-haste-map": "^27.5.1",
3319 - "jest-resolve": "^27.5.1",
3320 - "jest-util": "^27.5.1",
3321 - "jest-worker": "^27.5.1",
3322 - "slash": "^3.0.0",
3323 - "source-map": "^0.6.0",
3324 - "string-length": "^4.0.1",
3325 - "terminal-link": "^2.0.0",
3326 - "v8-to-istanbul": "^8.1.0"
3327 - },
3328 - "engines": {
3329 - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
3330 - },
3331 - "peerDependencies": {
3332 - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0"
3333 - },
3334 - "peerDependenciesMeta": {
3335 - "node-notifier": {
3336 - "optional": true
3337 - }
3338 - }
3339 - },
3340 - "node_modules/@jest/reporters/node_modules/@jest/types": {
3341 - "version": "27.5.1",
3342 - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz",
3343 - "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==",
3344 - "dependencies": {
3345 - "@types/istanbul-lib-coverage": "^2.0.0",
3346 - "@types/istanbul-reports": "^3.0.0",
3347 - "@types/node": "*",
3348 - "@types/yargs": "^16.0.0",
3349 - "chalk": "^4.0.0"
3350 - },
3351 - "engines": {
3352 - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
3353 - }
3354 - },
3355 - "node_modules/@jest/reporters/node_modules/@types/istanbul-reports": {
3356 - "version": "3.0.1",
3357 - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz",
3358 - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==",
3359 - "dependencies": {
3360 - "@types/istanbul-lib-report": "*"
3361 - }
3362 - },
3363 - "node_modules/@jest/reporters/node_modules/@types/yargs": {
3364 - "version": "16.0.5",
3365 - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.5.tgz",
3366 - "integrity": "sha512-AxO/ADJOBFJScHbWhq2xAhlWP24rY4aCEG/NFaMvbT3X2MgRsLjhjQwsn0Zi5zn0LG9jUhCCZMeX9Dkuw6k+vQ==",
3367 - "dependencies": {
3368 - "@types/yargs-parser": "*"
3369 - }
3370 - },
3371 - "node_modules/@jest/reporters/node_modules/ansi-styles": {
3372 - "version": "4.3.0",
3373 - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
3374 - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
3375 - "dependencies": {
3376 - "color-convert": "^2.0.1"
3377 - },
3378 - "engines": {
3379 - "node": ">=8"
3380 - },
3381 - "funding": {
3382 - "url": "https://github.com/chalk/ansi-styles?sponsor=1"
3383 - }
3384 - },
3385 - "node_modules/@jest/reporters/node_modules/chalk": {
3386 - "version": "4.1.2",
3387 - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
3388 - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
3389 - "dependencies": {
3390 - "ansi-styles": "^4.1.0",
3391 - "supports-color": "^7.1.0"
3392 - },
3393 - "engines": {
3394 - "node": ">=10"
3395 - },
3396 - "funding": {
3397 - "url": "https://github.com/chalk/chalk?sponsor=1"
3398 - }
3399 - },
3400 - "node_modules/@jest/reporters/node_modules/color-convert": {
3401 - "version": "2.0.1",
3402 - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
3403 - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
3404 - "dependencies": {
3405 - "color-name": "~1.1.4"
3406 - },
3407 - "engines": {
3408 - "node": ">=7.0.0"
3409 - }
3410 - },
3411 - "node_modules/@jest/reporters/node_modules/color-name": {
3412 - "version": "1.1.4",
3413 - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
3414 - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
3415 - },
3416 - "node_modules/@jest/reporters/node_modules/has-flag": {
3417 - "version": "4.0.0",
3418 - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
3419 - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
3420 - "engines": {
3421 - "node": ">=8"
3422 - }
3423 - },
3424 - "node_modules/@jest/reporters/node_modules/supports-color": {
3425 - "version": "7.2.0",
3426 - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
3427 - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
3428 - "dependencies": {
3429 - "has-flag": "^4.0.0"
3430 - },
3431 - "engines": {
3432 - "node": ">=8"
3433 - }
3434 - },
3435 - "node_modules/@jest/schemas": {
3436 - "version": "28.1.3",
3437 - "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-28.1.3.tgz",
3438 - "integrity": "sha512-/l/VWsdt/aBXgjshLWOFyFt3IVdYypu5y2Wn2rOO1un6nkqIn8SLXzgIMYXFyYsRWDyF5EthmKJMIdJvk08grg==",
3439 - "dependencies": {
3440 - "@sinclair/typebox": "^0.24.1"
3441 - },
3442 - "engines": {
3443 - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0"
3444 - }
3445 - },
3446 - "node_modules/@jest/source-map": {
3447 - "version": "27.5.1",
3448 - "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-27.5.1.tgz",
3449 - "integrity": "sha512-y9NIHUYF3PJRlHk98NdC/N1gl88BL08aQQgu4k4ZopQkCw9t9cV8mtl3TV8b/YCB8XaVTFrmUTAJvjsntDireg==",
3450 - "dependencies": {
3451 - "callsites": "^3.0.0",
3452 - "graceful-fs": "^4.2.9",
3453 - "source-map": "^0.6.0"
3454 - },
3455 - "engines": {
3456 - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
3457 - }
3458 - },
3459 - "node_modules/@jest/test-result": {
3460 - "version": "27.5.1",
3461 - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-27.5.1.tgz",
3462 - "integrity": "sha512-EW35l2RYFUcUQxFJz5Cv5MTOxlJIQs4I7gxzi2zVU7PJhOwfYq1MdC5nhSmYjX1gmMmLPvB3sIaC+BkcHRBfag==",
3463 - "dependencies": {
3464 - "@jest/console": "^27.5.1",
3465 - "@jest/types": "^27.5.1",
3466 - "@types/istanbul-lib-coverage": "^2.0.0",
3467 - "collect-v8-coverage": "^1.0.0"
3468 - },
3469 - "engines": {
3470 - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
3471 - }
3472 - },
3473 - "node_modules/@jest/test-result/node_modules/@jest/types": {
3474 - "version": "27.5.1",
3475 - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz",
3476 - "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==",
3477 - "dependencies": {
3478 - "@types/istanbul-lib-coverage": "^2.0.0",
3479 - "@types/istanbul-reports": "^3.0.0",
3480 - "@types/node": "*",
3481 - "@types/yargs": "^16.0.0",
3482 - "chalk": "^4.0.0"
3483 - },
3484 - "engines": {
3485 - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
3486 - }
3487 - },
3488 - "node_modules/@jest/test-result/node_modules/@types/istanbul-reports": {
3489 - "version": "3.0.1",
3490 - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz",
3491 - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==",
3492 - "dependencies": {
3493 - "@types/istanbul-lib-report": "*"
3494 - }
3495 - },
3496 - "node_modules/@jest/test-result/node_modules/@types/yargs": {
3497 - "version": "16.0.5",
3498 - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.5.tgz",
3499 - "integrity": "sha512-AxO/ADJOBFJScHbWhq2xAhlWP24rY4aCEG/NFaMvbT3X2MgRsLjhjQwsn0Zi5zn0LG9jUhCCZMeX9Dkuw6k+vQ==",
3500 - "dependencies": {
3501 - "@types/yargs-parser": "*"
3502 - }
3503 - },
3504 - "node_modules/@jest/test-result/node_modules/ansi-styles": {
3505 - "version": "4.3.0",
3506 - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
3507 - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
3508 - "dependencies": {
3509 - "color-convert": "^2.0.1"
3510 - },
3511 - "engines": {
3512 - "node": ">=8"
3513 - },
3514 - "funding": {
3515 - "url": "https://github.com/chalk/ansi-styles?sponsor=1"
3516 - }
3517 - },
3518 - "node_modules/@jest/test-result/node_modules/chalk": {
3519 - "version": "4.1.2",
3520 - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
3521 - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
3522 - "dependencies": {
3523 - "ansi-styles": "^4.1.0",
3524 - "supports-color": "^7.1.0"
3525 - },
3526 - "engines": {
3527 - "node": ">=10"
3528 - },
3529 - "funding": {
3530 - "url": "https://github.com/chalk/chalk?sponsor=1"
3531 - }
3532 - },
3533 - "node_modules/@jest/test-result/node_modules/color-convert": {
3534 - "version": "2.0.1",
3535 - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
3536 - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
3537 - "dependencies": {
3538 - "color-name": "~1.1.4"
3539 - },
3540 - "engines": {
3541 - "node": ">=7.0.0"
3542 - }
3543 - },
3544 - "node_modules/@jest/test-result/node_modules/color-name": {
3545 - "version": "1.1.4",
3546 - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
3547 - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
3548 - },
3549 - "node_modules/@jest/test-result/node_modules/has-flag": {
3550 - "version": "4.0.0",
3551 - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
3552 - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
3553 - "engines": {
3554 - "node": ">=8"
3555 - }
3556 - },
3557 - "node_modules/@jest/test-result/node_modules/supports-color": {
3558 - "version": "7.2.0",
3559 - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
3560 - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
3561 - "dependencies": {
3562 - "has-flag": "^4.0.0"
3563 - },
3564 - "engines": {
3565 - "node": ">=8"
3566 - }
3567 - },
3568 - "node_modules/@jest/test-sequencer": {
3569 - "version": "27.5.1",
3570 - "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-27.5.1.tgz",
3571 - "integrity": "sha512-LCheJF7WB2+9JuCS7VB/EmGIdQuhtqjRNI9A43idHv3E4KltCTsPsLxvdaubFHSYwY/fNjMWjl6vNRhDiN7vpQ==",
3572 - "dependencies": {
3573 - "@jest/test-result": "^27.5.1",
3574 - "graceful-fs": "^4.2.9",
3575 - "jest-haste-map": "^27.5.1",
3576 - "jest-runtime": "^27.5.1"
3577 - },
3578 - "engines": {
3579 - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
3580 - }
3581 - },
3582 - "node_modules/@jest/transform": {
3583 - "version": "27.5.1",
3584 - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-27.5.1.tgz",
3585 - "integrity": "sha512-ipON6WtYgl/1329g5AIJVbUuEh0wZVbdpGwC99Jw4LwuoBNS95MVphU6zOeD9pDkon+LLbFL7lOQRapbB8SCHw==",
3586 - "dependencies": {
3587 - "@babel/core": "^7.1.0",
3588 - "@jest/types": "^27.5.1",
3589 - "babel-plugin-istanbul": "^6.1.1",
3590 - "chalk": "^4.0.0",
3591 - "convert-source-map": "^1.4.0",
3592 - "fast-json-stable-stringify": "^2.0.0",
3593 - "graceful-fs": "^4.2.9",
3594 - "jest-haste-map": "^27.5.1",
3595 - "jest-regex-util": "^27.5.1",
3596 - "jest-util": "^27.5.1",
3597 - "micromatch": "^4.0.4",
3598 - "pirates": "^4.0.4",
3599 - "slash": "^3.0.0",
3600 - "source-map": "^0.6.1",
3601 - "write-file-atomic": "^3.0.0"
3602 - },
3603 - "engines": {
3604 - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
3605 - }
3606 - },
3607 - "node_modules/@jest/transform/node_modules/@jest/types": {
3608 - "version": "27.5.1",
3609 - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz",
3610 - "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==",
3611 - "dependencies": {
3612 - "@types/istanbul-lib-coverage": "^2.0.0",
3613 - "@types/istanbul-reports": "^3.0.0",
3614 - "@types/node": "*",
3615 - "@types/yargs": "^16.0.0",
3616 - "chalk": "^4.0.0"
3617 - },
3618 - "engines": {
3619 - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
3620 - }
3621 - },
3622 - "node_modules/@jest/transform/node_modules/@types/istanbul-reports": {
3623 - "version": "3.0.1",
3624 - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz",
3625 - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==",
3626 - "dependencies": {
3627 - "@types/istanbul-lib-report": "*"
3628 - }
3629 - },
3630 - "node_modules/@jest/transform/node_modules/@types/yargs": {
3631 - "version": "16.0.5",
3632 - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.5.tgz",
3633 - "integrity": "sha512-AxO/ADJOBFJScHbWhq2xAhlWP24rY4aCEG/NFaMvbT3X2MgRsLjhjQwsn0Zi5zn0LG9jUhCCZMeX9Dkuw6k+vQ==",
3634 - "dependencies": {
3635 - "@types/yargs-parser": "*"
3636 - }
3637 - },
3638 - "node_modules/@jest/transform/node_modules/ansi-styles": {
3639 - "version": "4.3.0",
3640 - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
3641 - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
3642 - "dependencies": {
3643 - "color-convert": "^2.0.1"
3644 - },
3645 - "engines": {
3646 - "node": ">=8"
3647 - },
3648 - "funding": {
3649 - "url": "https://github.com/chalk/ansi-styles?sponsor=1"
3650 - }
3651 - },
3652 - "node_modules/@jest/transform/node_modules/chalk": {
3653 - "version": "4.1.2",
3654 - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
3655 - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
3656 - "dependencies": {
3657 - "ansi-styles": "^4.1.0",
3658 - "supports-color": "^7.1.0"
3659 - },
3660 - "engines": {
3661 - "node": ">=10"
3662 - },
3663 - "funding": {
3664 - "url": "https://github.com/chalk/chalk?sponsor=1"
3665 - }
3666 - },
3667 - "node_modules/@jest/transform/node_modules/color-convert": {
3668 - "version": "2.0.1",
3669 - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
3670 - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
3671 - "dependencies": {
3672 - "color-name": "~1.1.4"
3673 - },
3674 - "engines": {
3675 - "node": ">=7.0.0"
3676 - }
3677 - },
3678 - "node_modules/@jest/transform/node_modules/color-name": {
3679 - "version": "1.1.4",
3680 - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
3681 - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
3682 - },
3683 - "node_modules/@jest/transform/node_modules/has-flag": {
3684 - "version": "4.0.0",
3685 - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
3686 - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
3687 - "engines": {
3688 - "node": ">=8"
3689 - }
3690 - },
3691 - "node_modules/@jest/transform/node_modules/supports-color": {
3692 - "version": "7.2.0",
3693 - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
3694 - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
3695 - "dependencies": {
3696 - "has-flag": "^4.0.0"
3697 - },
3698 - "engines": {
3699 - "node": ">=8"
3700 - }
3701 - },
3702 - "node_modules/@jest/types": {
3703 - "version": "24.9.0",
3704 - "resolved": "https://registry.npmjs.org/@jest/types/-/types-24.9.0.tgz",
3705 - "integrity": "sha512-XKK7ze1apu5JWQ5eZjHITP66AX+QsLlbaJRBGYr8pNzwcAE2JVkwnf0yqjHTsDRcjR0mujy/NmZMXw5kl+kGBw==",
3706 - "dependencies": {
3707 - "@types/istanbul-lib-coverage": "^2.0.0",
3708 - "@types/istanbul-reports": "^1.1.1",
3709 - "@types/yargs": "^13.0.0"
3710 - },
3711 - "engines": {
3712 - "node": ">= 6"
3713 - }
3714 - },
3715 - "node_modules/@jridgewell/gen-mapping": {
3716 - "version": "0.3.3",
3717 - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz",
3718 - "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==",
3719 - "dependencies": {
3720 - "@jridgewell/set-array": "^1.0.1",
3721 - "@jridgewell/sourcemap-codec": "^1.4.10",
3722 - "@jridgewell/trace-mapping": "^0.3.9"
3723 - },
3724 - "engines": {
3725 - "node": ">=6.0.0"
3726 - }
3727 - },
3728 - "node_modules/@jridgewell/resolve-uri": {
3729 - "version": "3.1.0",
3730 - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz",
3731 - "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==",
3732 - "engines": {
3733 - "node": ">=6.0.0"
3734 - }
3735 - },
3736 - "node_modules/@jridgewell/set-array": {
3737 - "version": "1.1.2",
3738 - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz",
3739 - "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==",
3740 - "engines": {
3741 - "node": ">=6.0.0"
3742 - }
3743 - },
3744 - "node_modules/@jridgewell/source-map": {
3745 - "version": "0.3.5",
3746 - "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.5.tgz",
3747 - "integrity": "sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==",
3748 - "dependencies": {
3749 - "@jridgewell/gen-mapping": "^0.3.0",
3750 - "@jridgewell/trace-mapping": "^0.3.9"
3751 - }
3752 - },
3753 - "node_modules/@jridgewell/sourcemap-codec": {
3754 - "version": "1.4.15",
3755 - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz",
3756 - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg=="
3757 - },
3758 - "node_modules/@jridgewell/trace-mapping": {
3759 - "version": "0.3.18",
3760 - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz",
3761 - "integrity": "sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==",
3762 - "dependencies": {
3763 - "@jridgewell/resolve-uri": "3.1.0",
3764 - "@jridgewell/sourcemap-codec": "1.4.14"
3765 - }
3766 - },
3767 - "node_modules/@jridgewell/trace-mapping/node_modules/@jridgewell/sourcemap-codec": {
3768 - "version": "1.4.14",
3769 - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz",
3770 - "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw=="
3771 - },
3772 - "node_modules/@leichtgewicht/ip-codec": {
3773 - "version": "2.0.4",
3774 - "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz",
3775 - "integrity": "sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A=="
3776 - },
3777 - "node_modules/@nicolo-ribaudo/eslint-scope-5-internals": {
3778 - "version": "5.1.1-v1",
3779 - "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/eslint-scope-5-internals/-/eslint-scope-5-internals-5.1.1-v1.tgz",
3780 - "integrity": "sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg==",
3781 - "dependencies": {
3782 - "eslint-scope": "5.1.1"
3783 - }
3784 - },
3785 - "node_modules/@nicolo-ribaudo/eslint-scope-5-internals/node_modules/eslint-scope": {
3786 - "version": "5.1.1",
3787 - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz",
3788 - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==",
3789 - "dependencies": {
3790 - "esrecurse": "^4.3.0",
3791 - "estraverse": "^4.1.1"
3792 - },
3793 - "engines": {
3794 - "node": ">=8.0.0"
3795 - }
3796 - },
3797 - "node_modules/@nicolo-ribaudo/eslint-scope-5-internals/node_modules/estraverse": {
3798 - "version": "4.3.0",
3799 - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz",
3800 - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==",
3801 - "engines": {
3802 - "node": ">=4.0"
3803 - }
3804 - },
3805 - "node_modules/@nodelib/fs.scandir": {
3806 - "version": "2.1.5",
3807 - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
3808 - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
3809 - "dependencies": {
3810 - "@nodelib/fs.stat": "2.0.5",
3811 - "run-parallel": "^1.1.9"
3812 - },
3813 - "engines": {
3814 - "node": ">= 8"
3815 - }
3816 - },
3817 - "node_modules/@nodelib/fs.stat": {
3818 - "version": "2.0.5",
3819 - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz",
3820 - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==",
3821 - "engines": {
3822 - "node": ">= 8"
3823 - }
3824 - },
3825 - "node_modules/@nodelib/fs.walk": {
3826 - "version": "1.2.8",
3827 - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz",
3828 - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",
3829 - "dependencies": {
3830 - "@nodelib/fs.scandir": "2.1.5",
3831 - "fastq": "^1.6.0"
3832 - },
3833 - "engines": {
3834 - "node": ">= 8"
3835 - }
3836 - },
3837 - "node_modules/@pmmmwh/react-refresh-webpack-plugin": {
3838 - "version": "0.5.10",
3839 - "resolved": "https://registry.npmjs.org/@pmmmwh/react-refresh-webpack-plugin/-/react-refresh-webpack-plugin-0.5.10.tgz",
3840 - "integrity": "sha512-j0Ya0hCFZPd4x40qLzbhGsh9TMtdb+CJQiso+WxLOPNasohq9cc5SNUcwsZaRH6++Xh91Xkm/xHCkuIiIu0LUA==",
3841 - "dependencies": {
3842 - "ansi-html-community": "^0.0.8",
3843 - "common-path-prefix": "^3.0.0",
3844 - "core-js-pure": "^3.23.3",
3845 - "error-stack-parser": "^2.0.6",
3846 - "find-up": "^5.0.0",
3847 - "html-entities": "^2.1.0",
3848 - "loader-utils": "^2.0.4",
3849 - "schema-utils": "^3.0.0",
3850 - "source-map": "^0.7.3"
3851 - },
3852 - "engines": {
3853 - "node": ">= 10.13"
3854 - },
3855 - "peerDependencies": {
3856 - "@types/webpack": "4.x || 5.x",
3857 - "react-refresh": ">=0.10.0 <1.0.0",
3858 - "sockjs-client": "^1.4.0",
3859 - "type-fest": ">=0.17.0 <4.0.0",
3860 - "webpack": ">=4.43.0 <6.0.0",
3861 - "webpack-dev-server": "3.x || 4.x",
3862 - "webpack-hot-middleware": "2.x",
3863 - "webpack-plugin-serve": "0.x || 1.x"
3864 - },
3865 - "peerDependenciesMeta": {
3866 - "@types/webpack": {
3867 - "optional": true
3868 - },
3869 - "sockjs-client": {
3870 - "optional": true
3871 - },
3872 - "type-fest": {
3873 - "optional": true
3874 - },
3875 - "webpack-dev-server": {
3876 - "optional": true
3877 - },
3878 - "webpack-hot-middleware": {
3879 - "optional": true
3880 - },
3881 - "webpack-plugin-serve": {
3882 - "optional": true
3883 - }
3884 - }
3885 - },
3886 - "node_modules/@pmmmwh/react-refresh-webpack-plugin/node_modules/loader-utils": {
3887 - "version": "2.0.4",
3888 - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz",
3889 - "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==",
3890 - "dependencies": {
3891 - "big.js": "^5.2.2",
3892 - "emojis-list": "^3.0.0",
3893 - "json5": "^2.1.2"
3894 - },
3895 - "engines": {
3896 - "node": ">=8.9.0"
3897 - }
3898 - },
3899 - "node_modules/@pmmmwh/react-refresh-webpack-plugin/node_modules/source-map": {
3900 - "version": "0.7.4",
3901 - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz",
3902 - "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==",
3903 - "engines": {
3904 - "node": ">= 8"
3905 - }
3906 - },
3907 - "node_modules/@popperjs/core": {
3908 - "version": "2.11.8",
3909 - "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz",
3910 - "integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==",
3911 - "funding": {
3912 - "type": "opencollective",
3913 - "url": "https://opencollective.com/popperjs"
3914 - }
3915 - },
3916 - "node_modules/@protobufjs/aspromise": {
3917 - "version": "1.1.2",
3918 - "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz",
3919 - "integrity": "sha1-m4sMxmPWaafY9vXQiToU00jzD78= sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ=="
3920 - },
3921 - "node_modules/@protobufjs/base64": {
3922 - "version": "1.1.2",
3923 - "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz",
3924 - "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg=="
3925 - },
3926 - "node_modules/@protobufjs/codegen": {
3927 - "version": "2.0.4",
3928 - "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz",
3929 - "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg=="
3930 - },
3931 - "node_modules/@protobufjs/eventemitter": {
3932 - "version": "1.1.0",
3933 - "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz",
3934 - "integrity": "sha1-NVy8mLr61ZePntCV85diHx0Ga3A= sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q=="
3935 - },
3936 - "node_modules/@protobufjs/fetch": {
3937 - "version": "1.1.0",
3938 - "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz",
3939 - "integrity": "sha1-upn7WYYUr2VwDBYZ/wbUVLDYTEU= sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==",
3940 - "dependencies": {
3941 - "@protobufjs/aspromise": "^1.1.1",
3942 - "@protobufjs/inquire": "^1.1.0"
3943 - }
3944 - },
3945 - "node_modules/@protobufjs/float": {
3946 - "version": "1.0.2",
3947 - "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz",
3948 - "integrity": "sha1-Xp4avctz/Ap8uLKR33jIy9l7h9E= sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ=="
3949 - },
3950 - "node_modules/@protobufjs/inquire": {
3951 - "version": "1.1.0",
3952 - "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz",
3953 - "integrity": "sha1-/yAOPnzyQp4tyvwRQIKOjMY48Ik= sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q=="
3954 - },
3955 - "node_modules/@protobufjs/path": {
3956 - "version": "1.1.2",
3957 - "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz",
3958 - "integrity": "sha1-bMKyDFya1q0NzP0hynZz2Nf79o0= sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA=="
3959 - },
3960 - "node_modules/@protobufjs/pool": {
3961 - "version": "1.1.0",
3962 - "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz",
3963 - "integrity": "sha1-Cf0V8tbTq/qbZbw2ZQbWrXhG/1Q= sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw=="
3964 - },
3965 - "node_modules/@protobufjs/utf8": {
3966 - "version": "1.1.0",
3967 - "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz",
3968 - "integrity": "sha1-p3c2C1s5oaLlEG+OhY8v0tBgxXA= sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw=="
3969 - },
3970 - "node_modules/@react-aria/ssr": {
3971 - "version": "3.1.0",
3972 - "resolved": "https://registry.npmjs.org/@react-aria/ssr/-/ssr-3.1.0.tgz",
3973 - "integrity": "sha512-RxqQKmE8sO7TGdrcSlHTcVzMP450hqowtBSd2bBS9oPlcokVkaGq28c3Rwa8ty5ctw4EBCjXqjP7xdcKMGDzug==",
3974 - "dependencies": {
3975 - "@babel/runtime": "^7.6.2"
3976 - },
3977 - "peerDependencies": {
3978 - "react": "^16.8.0 || ^17.0.0-rc.1"
3979 - }
3980 - },
3981 - "node_modules/@restart/hooks": {
3982 - "version": "0.4.5",
3983 - "resolved": "https://registry.npmjs.org/@restart/hooks/-/hooks-0.4.5.tgz",
3984 - "integrity": "sha512-tLGtY0aHeIfT7aPwUkvQuhIy3+q3w4iqmUzFLPlOAf/vNUacLaBt1j/S//jv/dQhenRh8jvswyMojCwmLvJw8A==",
3985 - "dependencies": {
3986 - "dequal": "^2.0.2"
3987 - },
3988 - "peerDependencies": {
3989 - "react": ">=16.8.0"
3990 - }
3991 - },
3992 - "node_modules/@restart/ui": {
3993 - "version": "0.2.6",
3994 - "resolved": "https://registry.npmjs.org/@restart/ui/-/ui-0.2.6.tgz",
3995 - "integrity": "sha512-lcutEWPvsxz0uEyRxuysCbHBfXDFnMKNMNTsnuPmLFjZXgW9fVmhksS6rpFklXHMwxOM9g6hRTBq0gS3QRKgzQ==",
3996 - "dependencies": {
3997 - "@babel/runtime": "^7.13.16",
3998 - "@popperjs/core": "^2.10.1",
3999 - "@react-aria/ssr": "^3.0.1",
4000 - "@restart/hooks": "^0.4.0",
4001 - "@types/warning": "^3.0.0",
4002 - "dequal": "^2.0.2",
4003 - "dom-helpers": "^5.2.0",
4004 - "prop-types": "^15.7.2",
4005 - "uncontrollable": "^7.2.1",
4006 - "warning": "^4.0.3"
4007 - },
4008 - "peerDependencies": {
4009 - "react": ">=16.14.0",
4010 - "react-dom": ">=16.14.0"
4011 - }
4012 - },
4013 - "node_modules/@rollup/plugin-babel": {
4014 - "version": "5.3.1",
4015 - "resolved": "https://registry.npmjs.org/@rollup/plugin-babel/-/plugin-babel-5.3.1.tgz",
4016 - "integrity": "sha512-WFfdLWU/xVWKeRQnKmIAQULUI7Il0gZnBIH/ZFO069wYIfPu+8zrfp/KMW0atmELoRDq8FbiP3VCss9MhCut7Q==",
4017 - "dependencies": {
4018 - "@babel/helper-module-imports": "^7.10.4",
4019 - "@rollup/pluginutils": "^3.1.0"
4020 - },
4021 - "engines": {
4022 - "node": ">= 10.0.0"
4023 - },
4024 - "peerDependencies": {
4025 - "@babel/core": "^7.0.0",
4026 - "@types/babel__core": "^7.1.9",
4027 - "rollup": "^1.20.0||^2.0.0"
4028 - },
4029 - "peerDependenciesMeta": {
4030 - "@types/babel__core": {
4031 - "optional": true
4032 - }
4033 - }
4034 - },
4035 - "node_modules/@rollup/plugin-node-resolve": {
4036 - "version": "11.2.1",
4037 - "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-11.2.1.tgz",
4038 - "integrity": "sha512-yc2n43jcqVyGE2sqV5/YCmocy9ArjVAP/BeXyTtADTBBX6V0e5UMqwO8CdQ0kzjb6zu5P1qMzsScCMRvE9OlVg==",
4039 - "dependencies": {
4040 - "@rollup/pluginutils": "^3.1.0",
4041 - "@types/resolve": "1.17.1",
4042 - "builtin-modules": "^3.1.0",
4043 - "deepmerge": "^4.2.2",
4044 - "is-module": "^1.0.0",
4045 - "resolve": "^1.19.0"
4046 - },
4047 - "engines": {
4048 - "node": ">= 10.0.0"
4049 - },
4050 - "peerDependencies": {
4051 - "rollup": "^1.20.0||^2.0.0"
4052 - }
4053 - },
4054 - "node_modules/@rollup/plugin-replace": {
4055 - "version": "2.4.2",
4056 - "resolved": "https://registry.npmjs.org/@rollup/plugin-replace/-/plugin-replace-2.4.2.tgz",
4057 - "integrity": "sha512-IGcu+cydlUMZ5En85jxHH4qj2hta/11BHq95iHEyb2sbgiN0eCdzvUcHw5gt9pBL5lTi4JDYJ1acCoMGpTvEZg==",
4058 - "dependencies": {
4059 - "@rollup/pluginutils": "^3.1.0",
4060 - "magic-string": "^0.25.7"
4061 - },
4062 - "peerDependencies": {
4063 - "rollup": "^1.20.0 || ^2.0.0"
4064 - }
4065 - },
4066 - "node_modules/@rollup/pluginutils": {
4067 - "version": "3.1.0",
4068 - "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz",
4069 - "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==",
4070 - "dependencies": {
4071 - "@types/estree": "0.0.39",
4072 - "estree-walker": "^1.0.1",
4073 - "picomatch": "^2.2.2"
4074 - },
4075 - "engines": {
4076 - "node": ">= 8.0.0"
4077 - },
4078 - "peerDependencies": {
4079 - "rollup": "^1.20.0||^2.0.0"
4080 - }
4081 - },
4082 - "node_modules/@rollup/pluginutils/node_modules/@types/estree": {
4083 - "version": "0.0.39",
4084 - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz",
4085 - "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw=="
4086 - },
4087 - "node_modules/@rushstack/eslint-patch": {
4088 - "version": "1.3.2",
4089 - "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.3.2.tgz",
4090 - "integrity": "sha512-V+MvGwaHH03hYhY+k6Ef/xKd6RYlc4q8WBx+2ANmipHJcKuktNcI/NgEsJgdSUF6Lw32njT6OnrRsKYCdgHjYw=="
4091 - },
4092 - "node_modules/@sinclair/typebox": {
4093 - "version": "0.24.51",
4094 - "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.24.51.tgz",
4095 - "integrity": "sha512-1P1OROm/rdubP5aFDSZQILU0vrLCJ4fvHt6EoqHEM+2D/G5MK3bIaymUKLit8Js9gbns5UyJnkP/TZROLw4tUA=="
4096 - },
4097 - "node_modules/@sinonjs/commons": {
4098 - "version": "1.8.6",
4099 - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.6.tgz",
4100 - "integrity": "sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ==",
4101 - "dependencies": {
4102 - "type-detect": "4.0.8"
4103 - }
4104 - },
4105 - "node_modules/@sinonjs/fake-timers": {
4106 - "version": "8.1.0",
4107 - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-8.1.0.tgz",
4108 - "integrity": "sha512-OAPJUAtgeINhh/TAlUID4QTs53Njm7xzddaVlEs/SXwgtiD1tW22zAB/W1wdqfrpmikgaWQ9Fw6Ws+hsiRm5Vg==",
4109 - "dependencies": {
4110 - "@sinonjs/commons": "^1.7.0"
4111 - }
4112 - },
4113 - "node_modules/@surma/rollup-plugin-off-main-thread": {
4114 - "version": "2.2.3",
4115 - "resolved": "https://registry.npmjs.org/@surma/rollup-plugin-off-main-thread/-/rollup-plugin-off-main-thread-2.2.3.tgz",
4116 - "integrity": "sha512-lR8q/9W7hZpMWweNiAKU7NQerBnzQQLvi8qnTDU/fxItPhtZVMbPV3lbCwjhIlNBe9Bbr5V+KHshvWmVSG9cxQ==",
4117 - "dependencies": {
4118 - "ejs": "^3.1.6",
4119 - "json5": "^2.2.0",
4120 - "magic-string": "^0.25.0",
4121 - "string.prototype.matchall": "^4.0.6"
4122 - }
4123 - },
4124 - "node_modules/@svgr/babel-plugin-add-jsx-attribute": {
4125 - "version": "5.4.0",
4126 - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-5.4.0.tgz",
4127 - "integrity": "sha512-ZFf2gs/8/6B8PnSofI0inYXr2SDNTDScPXhN7k5EqD4aZ3gi6u+rbmZHVB8IM3wDyx8ntKACZbtXSm7oZGRqVg==",
4128 - "engines": {
4129 - "node": ">=10"
4130 - },
4131 - "funding": {
4132 - "type": "github",
4133 - "url": "https://github.com/sponsors/gregberge"
4134 - }
4135 - },
4136 - "node_modules/@svgr/babel-plugin-remove-jsx-attribute": {
4137 - "version": "5.4.0",
4138 - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-5.4.0.tgz",
4139 - "integrity": "sha512-yaS4o2PgUtwLFGTKbsiAy6D0o3ugcUhWK0Z45umJ66EPWunAz9fuFw2gJuje6wqQvQWOTJvIahUwndOXb7QCPg==",
4140 - "engines": {
4141 - "node": ">=10"
4142 - },
4143 - "funding": {
4144 - "type": "github",
4145 - "url": "https://github.com/sponsors/gregberge"
4146 - }
4147 - },
4148 - "node_modules/@svgr/babel-plugin-remove-jsx-empty-expression": {
4149 - "version": "5.0.1",
4150 - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-5.0.1.tgz",
4151 - "integrity": "sha512-LA72+88A11ND/yFIMzyuLRSMJ+tRKeYKeQ+mR3DcAZ5I4h5CPWN9AHyUzJbWSYp/u2u0xhmgOe0+E41+GjEueA==",
4152 - "engines": {
4153 - "node": ">=10"
4154 - },
4155 - "funding": {
4156 - "type": "github",
4157 - "url": "https://github.com/sponsors/gregberge"
4158 - }
4159 - },
4160 - "node_modules/@svgr/babel-plugin-replace-jsx-attribute-value": {
4161 - "version": "5.0.1",
4162 - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-5.0.1.tgz",
4163 - "integrity": "sha512-PoiE6ZD2Eiy5mK+fjHqwGOS+IXX0wq/YDtNyIgOrc6ejFnxN4b13pRpiIPbtPwHEc+NT2KCjteAcq33/F1Y9KQ==",
4164 - "engines": {
4165 - "node": ">=10"
4166 - },
4167 - "funding": {
4168 - "type": "github",
4169 - "url": "https://github.com/sponsors/gregberge"
4170 - }
4171 - },
4172 - "node_modules/@svgr/babel-plugin-svg-dynamic-title": {
4173 - "version": "5.4.0",
4174 - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-5.4.0.tgz",
4175 - "integrity": "sha512-zSOZH8PdZOpuG1ZVx/cLVePB2ibo3WPpqo7gFIjLV9a0QsuQAzJiwwqmuEdTaW2pegyBE17Uu15mOgOcgabQZg==",
4176 - "engines": {
4177 - "node": ">=10"
4178 - },
4179 - "funding": {
4180 - "type": "github",
4181 - "url": "https://github.com/sponsors/gregberge"
4182 - }
4183 - },
4184 - "node_modules/@svgr/babel-plugin-svg-em-dimensions": {
4185 - "version": "5.4.0",
4186 - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-5.4.0.tgz",
4187 - "integrity": "sha512-cPzDbDA5oT/sPXDCUYoVXEmm3VIoAWAPT6mSPTJNbQaBNUuEKVKyGH93oDY4e42PYHRW67N5alJx/eEol20abw==",
4188 - "engines": {
4189 - "node": ">=10"
4190 - },
4191 - "funding": {
4192 - "type": "github",
4193 - "url": "https://github.com/sponsors/gregberge"
4194 - }
4195 - },
4196 - "node_modules/@svgr/babel-plugin-transform-react-native-svg": {
4197 - "version": "5.4.0",
4198 - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-5.4.0.tgz",
4199 - "integrity": "sha512-3eYP/SaopZ41GHwXma7Rmxcv9uRslRDTY1estspeB1w1ueZWd/tPlMfEOoccYpEMZU3jD4OU7YitnXcF5hLW2Q==",
4200 - "engines": {
4201 - "node": ">=10"
4202 - },
4203 - "funding": {
4204 - "type": "github",
4205 - "url": "https://github.com/sponsors/gregberge"
4206 - }
4207 - },
4208 - "node_modules/@svgr/babel-plugin-transform-svg-component": {
4209 - "version": "5.5.0",
4210 - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-5.5.0.tgz",
4211 - "integrity": "sha512-q4jSH1UUvbrsOtlo/tKcgSeiCHRSBdXoIoqX1pgcKK/aU3JD27wmMKwGtpB8qRYUYoyXvfGxUVKchLuR5pB3rQ==",
4212 - "engines": {
4213 - "node": ">=10"
4214 - },
4215 - "funding": {
4216 - "type": "github",
4217 - "url": "https://github.com/sponsors/gregberge"
4218 - }
4219 - },
4220 - "node_modules/@svgr/babel-preset": {
4221 - "version": "5.5.0",
4222 - "resolved": "https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-5.5.0.tgz",
4223 - "integrity": "sha512-4FiXBjvQ+z2j7yASeGPEi8VD/5rrGQk4Xrq3EdJmoZgz/tpqChpo5hgXDvmEauwtvOc52q8ghhZK4Oy7qph4ig==",
4224 - "dependencies": {
4225 - "@svgr/babel-plugin-add-jsx-attribute": "^5.4.0",
4226 - "@svgr/babel-plugin-remove-jsx-attribute": "^5.4.0",
4227 - "@svgr/babel-plugin-remove-jsx-empty-expression": "^5.0.1",
4228 - "@svgr/babel-plugin-replace-jsx-attribute-value": "^5.0.1",
4229 - "@svgr/babel-plugin-svg-dynamic-title": "^5.4.0",
4230 - "@svgr/babel-plugin-svg-em-dimensions": "^5.4.0",
4231 - "@svgr/babel-plugin-transform-react-native-svg": "^5.4.0",
4232 - "@svgr/babel-plugin-transform-svg-component": "^5.5.0"
4233 - },
4234 - "engines": {
4235 - "node": ">=10"
4236 - },
4237 - "funding": {
4238 - "type": "github",
4239 - "url": "https://github.com/sponsors/gregberge"
4240 - }
4241 - },
4242 - "node_modules/@svgr/core": {
4243 - "version": "5.5.0",
4244 - "resolved": "https://registry.npmjs.org/@svgr/core/-/core-5.5.0.tgz",
4245 - "integrity": "sha512-q52VOcsJPvV3jO1wkPtzTuKlvX7Y3xIcWRpCMtBF3MrteZJtBfQw/+u0B1BHy5ColpQc1/YVTrPEtSYIMNZlrQ==",
4246 - "dependencies": {
4247 - "@svgr/plugin-jsx": "^5.5.0",
4248 - "camelcase": "^6.2.0",
4249 - "cosmiconfig": "^7.0.0"
4250 - },
4251 - "engines": {
4252 - "node": ">=10"
4253 - },
4254 - "funding": {
4255 - "type": "github",
4256 - "url": "https://github.com/sponsors/gregberge"
4257 - }
4258 - },
4259 - "node_modules/@svgr/hast-util-to-babel-ast": {
4260 - "version": "5.5.0",
4261 - "resolved": "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-5.5.0.tgz",
4262 - "integrity": "sha512-cAaR/CAiZRB8GP32N+1jocovUtvlj0+e65TB50/6Lcime+EA49m/8l+P2ko+XPJ4dw3xaPS3jOL4F2X4KWxoeQ==",
4263 - "dependencies": {
4264 - "@babel/types": "^7.12.6"
4265 - },
4266 - "engines": {
4267 - "node": ">=10"
4268 - },
4269 - "funding": {
4270 - "type": "github",
4271 - "url": "https://github.com/sponsors/gregberge"
4272 - }
4273 - },
4274 - "node_modules/@svgr/plugin-jsx": {
4275 - "version": "5.5.0",
4276 - "resolved": "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-5.5.0.tgz",
4277 - "integrity": "sha512-V/wVh33j12hGh05IDg8GpIUXbjAPnTdPTKuP4VNLggnwaHMPNQNae2pRnyTAILWCQdz5GyMqtO488g7CKM8CBA==",
4278 - "dependencies": {
4279 - "@babel/core": "^7.12.3",
4280 - "@svgr/babel-preset": "^5.5.0",
4281 - "@svgr/hast-util-to-babel-ast": "^5.5.0",
4282 - "svg-parser": "^2.0.2"
4283 - },
4284 - "engines": {
4285 - "node": ">=10"
4286 - },
4287 - "funding": {
4288 - "type": "github",
4289 - "url": "https://github.com/sponsors/gregberge"
4290 - }
4291 - },
4292 - "node_modules/@svgr/plugin-svgo": {
4293 - "version": "5.5.0",
4294 - "resolved": "https://registry.npmjs.org/@svgr/plugin-svgo/-/plugin-svgo-5.5.0.tgz",
4295 - "integrity": "sha512-r5swKk46GuQl4RrVejVwpeeJaydoxkdwkM1mBKOgJLBUJPGaLci6ylg/IjhrRsREKDkr4kbMWdgOtbXEh0fyLQ==",
4296 - "dependencies": {
4297 - "cosmiconfig": "^7.0.0",
4298 - "deepmerge": "^4.2.2",
4299 - "svgo": "^1.2.2"
4300 - },
4301 - "engines": {
4302 - "node": ">=10"
4303 - },
4304 - "funding": {
4305 - "type": "github",
4306 - "url": "https://github.com/sponsors/gregberge"
4307 - }
4308 - },
4309 - "node_modules/@svgr/webpack": {
4310 - "version": "5.5.0",
4311 - "resolved": "https://registry.npmjs.org/@svgr/webpack/-/webpack-5.5.0.tgz",
4312 - "integrity": "sha512-DOBOK255wfQxguUta2INKkzPj6AIS6iafZYiYmHn6W3pHlycSRRlvWKCfLDG10fXfLWqE3DJHgRUOyJYmARa7g==",
4313 - "dependencies": {
4314 - "@babel/core": "^7.12.3",
4315 - "@babel/plugin-transform-react-constant-elements": "^7.12.1",
4316 - "@babel/preset-env": "^7.12.1",
4317 - "@babel/preset-react": "^7.12.5",
4318 - "@svgr/core": "^5.5.0",
4319 - "@svgr/plugin-jsx": "^5.5.0",
4320 - "@svgr/plugin-svgo": "^5.5.0",
4321 - "loader-utils": "^2.0.0"
4322 - },
4323 - "engines": {
4324 - "node": ">=10"
4325 - },
4326 - "funding": {
4327 - "type": "github",
4328 - "url": "https://github.com/sponsors/gregberge"
4329 - }
4330 - },
4331 - "node_modules/@tootallnate/once": {
4332 - "version": "1.1.2",
4333 - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz",
4334 - "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==",
4335 - "engines": {
4336 - "node": ">= 6"
4337 - }
4338 - },
4339 - "node_modules/@trysound/sax": {
4340 - "version": "0.2.0",
4341 - "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz",
4342 - "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==",
4343 - "engines": {
4344 - "node": ">=10.13.0"
4345 - }
4346 - },
4347 - "node_modules/@types/babel__core": {
4348 - "version": "7.20.1",
4349 - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.1.tgz",
4350 - "integrity": "sha512-aACu/U/omhdk15O4Nfb+fHgH/z3QsfQzpnvRZhYhThms83ZnAOZz7zZAWO7mn2yyNQaA4xTO8GLK3uqFU4bYYw==",
4351 - "dependencies": {
4352 - "@babel/parser": "^7.20.7",
4353 - "@babel/types": "^7.20.7",
4354 - "@types/babel__generator": "*",
4355 - "@types/babel__template": "*",
4356 - "@types/babel__traverse": "*"
4357 - }
4358 - },
4359 - "node_modules/@types/babel__generator": {
4360 - "version": "7.6.4",
4361 - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.4.tgz",
4362 - "integrity": "sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==",
4363 - "dependencies": {
4364 - "@babel/types": "^7.0.0"
4365 - }
4366 - },
4367 - "node_modules/@types/babel__template": {
4368 - "version": "7.4.1",
4369 - "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz",
4370 - "integrity": "sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==",
4371 - "dependencies": {
4372 - "@babel/parser": "^7.1.0",
4373 - "@babel/types": "^7.0.0"
4374 - }
4375 - },
4376 - "node_modules/@types/babel__traverse": {
4377 - "version": "7.20.1",
4378 - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.1.tgz",
4379 - "integrity": "sha512-MitHFXnhtgwsGZWtT68URpOvLN4EREih1u3QtQiN4VdAxWKRVvGCSvw/Qth0M0Qq3pJpnGOu5JaM/ydK7OGbqg==",
4380 - "dependencies": {
4381 - "@babel/types": "^7.20.7"
4382 - }
4383 - },
4384 - "node_modules/@types/body-parser": {
4385 - "version": "1.19.2",
4386 - "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz",
4387 - "integrity": "sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==",
4388 - "dependencies": {
4389 - "@types/connect": "*",
4390 - "@types/node": "*"
4391 - }
4392 - },
4393 - "node_modules/@types/bonjour": {
4394 - "version": "3.5.10",
4395 - "resolved": "https://registry.npmjs.org/@types/bonjour/-/bonjour-3.5.10.tgz",
4396 - "integrity": "sha512-p7ienRMiS41Nu2/igbJxxLDWrSZ0WxM8UQgCeO9KhoVF7cOVFkrKsiDr1EsJIla8vV3oEEjGcz11jc5yimhzZw==",
4397 - "dependencies": {
4398 - "@types/node": "*"
4399 - }
4400 - },
4401 - "node_modules/@types/connect": {
4402 - "version": "3.4.35",
4403 - "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz",
4404 - "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==",
4405 - "dependencies": {
4406 - "@types/node": "*"
4407 - }
4408 - },
4409 - "node_modules/@types/connect-history-api-fallback": {
4410 - "version": "1.5.0",
4411 - "resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.0.tgz",
4412 - "integrity": "sha512-4x5FkPpLipqwthjPsF7ZRbOv3uoLUFkTA9G9v583qi4pACvq0uTELrB8OLUzPWUI4IJIyvM85vzkV1nyiI2Lig==",
4413 - "dependencies": {
4414 - "@types/express-serve-static-core": "*",
4415 - "@types/node": "*"
4416 - }
4417 - },
4418 - "node_modules/@types/eslint": {
4419 - "version": "8.44.1",
4420 - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.44.1.tgz",
4421 - "integrity": "sha512-XpNDc4Z5Tb4x+SW1MriMVeIsMoONHCkWFMkR/aPJbzEsxqHy+4Glu/BqTdPrApfDeMaXbtNh6bseNgl5KaWrSg==",
4422 - "dependencies": {
4423 - "@types/estree": "*",
4424 - "@types/json-schema": "*"
4425 - }
4426 - },
4427 - "node_modules/@types/eslint-scope": {
4428 - "version": "3.7.4",
4429 - "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.4.tgz",
4430 - "integrity": "sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA==",
4431 - "dependencies": {
4432 - "@types/eslint": "*",
4433 - "@types/estree": "*"
4434 - }
4435 - },
4436 - "node_modules/@types/estree": {
4437 - "version": "1.0.1",
4438 - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.1.tgz",
4439 - "integrity": "sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA=="
4440 - },
4441 - "node_modules/@types/express": {
4442 - "version": "4.17.17",
4443 - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.17.tgz",
4444 - "integrity": "sha512-Q4FmmuLGBG58btUnfS1c1r/NQdlp3DMfGDGig8WhfpA2YRUtEkxAjkZb0yvplJGYdF1fsQ81iMDcH24sSCNC/Q==",
4445 - "dependencies": {
4446 - "@types/body-parser": "*",
4447 - "@types/express-serve-static-core": "^4.17.33",
4448 - "@types/qs": "*",
4449 - "@types/serve-static": "*"
4450 - }
4451 - },
4452 - "node_modules/@types/express-serve-static-core": {
4453 - "version": "4.17.35",
4454 - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.35.tgz",
4455 - "integrity": "sha512-wALWQwrgiB2AWTT91CB62b6Yt0sNHpznUXeZEcnPU3DRdlDIz74x8Qg1UUYKSVFi+va5vKOLYRBI1bRKiLLKIg==",
4456 - "dependencies": {
4457 - "@types/node": "*",
4458 - "@types/qs": "*",
4459 - "@types/range-parser": "*",
4460 - "@types/send": "*"
4461 - }
4462 - },
4463 - "node_modules/@types/graceful-fs": {
4464 - "version": "4.1.6",
4465 - "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.6.tgz",
4466 - "integrity": "sha512-Sig0SNORX9fdW+bQuTEovKj3uHcUL6LQKbCrrqb1X7J6/ReAbhCXRAhc+SMejhLELFj2QcyuxmUooZ4bt5ReSw==",
4467 - "dependencies": {
4468 - "@types/node": "*"
4469 - }
4470 - },
4471 - "node_modules/@types/history": {
4472 - "version": "4.7.11",
4473 - "resolved": "https://registry.npmjs.org/@types/history/-/history-4.7.11.tgz",
4474 - "integrity": "sha512-qjDJRrmvBMiTx+jyLxvLfJU7UznFuokDv4f3WRuriHKERccVpFU+8XMQUAbDzoiJCsmexxRExQeMwwCdamSKDA=="
4475 - },
4476 - "node_modules/@types/html-minifier-terser": {
4477 - "version": "6.1.0",
4478 - "resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz",
4479 - "integrity": "sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg=="
4480 - },
4481 - "node_modules/@types/http-errors": {
4482 - "version": "2.0.1",
4483 - "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.1.tgz",
4484 - "integrity": "sha512-/K3ds8TRAfBvi5vfjuz8y6+GiAYBZ0x4tXv1Av6CWBWn0IlADc+ZX9pMq7oU0fNQPnBwIZl3rmeLp6SBApbxSQ=="
4485 - },
4486 - "node_modules/@types/http-proxy": {
4487 - "version": "1.17.11",
4488 - "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.11.tgz",
4489 - "integrity": "sha512-HC8G7c1WmaF2ekqpnFq626xd3Zz0uvaqFmBJNRZCGEZCXkvSdJoNFn/8Ygbd9fKNQj8UzLdCETaI0UWPAjK7IA==",
4490 - "dependencies": {
4491 - "@types/node": "*"
4492 - }
4493 - },
4494 - "node_modules/@types/invariant": {
4495 - "version": "2.2.35",
4496 - "resolved": "https://registry.npmjs.org/@types/invariant/-/invariant-2.2.35.tgz",
4497 - "integrity": "sha512-DxX1V9P8zdJPYQat1gHyY0xj3efl8gnMVjiM9iCY6y27lj+PoQWkgjt8jDqmovPqULkKVpKRg8J36iQiA+EtEg=="
4498 - },
4499 - "node_modules/@types/istanbul-lib-coverage": {
4500 - "version": "2.0.4",
4501 - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz",
4502 - "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g=="
4503 - },
4504 - "node_modules/@types/istanbul-lib-report": {
4505 - "version": "3.0.0",
4506 - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz",
4507 - "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==",
4508 - "dependencies": {
4509 - "@types/istanbul-lib-coverage": "*"
4510 - }
4511 - },
4512 - "node_modules/@types/istanbul-reports": {
4513 - "version": "1.1.2",
4514 - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-1.1.2.tgz",
4515 - "integrity": "sha512-P/W9yOX/3oPZSpaYOCQzGqgCQRXn0FFO/V8bWrCQs+wLmvVVxk6CRBXALEvNs9OHIatlnlFokfhuDo2ug01ciw==",
4516 - "dependencies": {
4517 - "@types/istanbul-lib-coverage": "*",
4518 - "@types/istanbul-lib-report": "*"
4519 - }
4520 - },
4521 - "node_modules/@types/jest": {
4522 - "version": "24.9.1",
4523 - "resolved": "https://registry.npmjs.org/@types/jest/-/jest-24.9.1.tgz",
4524 - "integrity": "sha512-Fb38HkXSVA4L8fGKEZ6le5bB8r6MRWlOCZbVuWZcmOMSCd2wCYOwN1ibj8daIoV9naq7aaOZjrLCoCMptKU/4Q==",
4525 - "dependencies": {
4526 - "jest-diff": "^24.3.0"
4527 - }
4528 - },
4529 - "node_modules/@types/json-schema": {
4530 - "version": "7.0.12",
4531 - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.12.tgz",
4532 - "integrity": "sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA=="
4533 - },
4534 - "node_modules/@types/json5": {
4535 - "version": "0.0.29",
4536 - "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz",
4537 - "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ=="
4538 - },
4539 - "node_modules/@types/long": {
4540 - "version": "4.0.1",
4541 - "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.1.tgz",
4542 - "integrity": "sha512-5tXH6Bx/kNGd3MgffdmP4dy2Z+G4eaXw0SE81Tq3BNadtnMR5/ySMzX4SLEzHJzSmPNn4HIdpQsBvXMUykr58w=="
4543 - },
4544 - "node_modules/@types/mime": {
4545 - "version": "1.3.2",
4546 - "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz",
4547 - "integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw=="
4548 - },
4549 - "node_modules/@types/node": {
4550 - "version": "13.13.52",
4551 - "resolved": "https://registry.npmjs.org/@types/node/-/node-13.13.52.tgz",
4552 - "integrity": "sha512-s3nugnZumCC//n4moGGe6tkNMyYEdaDBitVjwPxXmR5lnMG5dHePinH2EdxkG3Rh1ghFHHixAG4NJhpJW1rthQ=="
4553 - },
4554 - "node_modules/@types/parse-json": {
4555 - "version": "4.0.0",
4556 - "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz",
4557 - "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA=="
4558 - },
4559 - "node_modules/@types/prettier": {
4560 - "version": "2.7.3",
4561 - "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.3.tgz",
4562 - "integrity": "sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA=="
4563 - },
4564 - "node_modules/@types/prop-types": {
4565 - "version": "15.7.4",
4566 - "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.4.tgz",
4567 - "integrity": "sha512-rZ5drC/jWjrArrS8BR6SIr4cWpW09RNTYt9AMZo3Jwwif+iacXAqgVjm0B0Bv/S1jhDXKHqRVNCbACkJ89RAnQ=="
4568 - },
4569 - "node_modules/@types/q": {
4570 - "version": "1.5.5",
4571 - "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.5.tgz",
4572 - "integrity": "sha512-L28j2FcJfSZOnL1WBjDYp2vUHCeIFlyYI/53EwD/rKUBQ7MtUUfbQWiyKJGpcnv4/WgrhWsFKrcPstcAt/J0tQ=="
4573 - },
4574 - "node_modules/@types/qs": {
4575 - "version": "6.9.7",
4576 - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz",
4577 - "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw=="
4578 - },
4579 - "node_modules/@types/range-parser": {
4580 - "version": "1.2.4",
4581 - "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz",
4582 - "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw=="
4583 - },
4584 - "node_modules/@types/react": {
4585 - "version": "16.14.43",
4586 - "resolved": "https://registry.npmjs.org/@types/react/-/react-16.14.43.tgz",
4587 - "integrity": "sha512-7zdjv7jvoLLQg1tTvpQsm+hyNUMT2mPlNV1+d0I8fbGhkJl82spopMyBlu4wb1dviZAxpGdk5eHu/muacknnfw==",
4588 - "dependencies": {
4589 - "@types/prop-types": "*",
4590 - "@types/scheduler": "*",
4591 - "csstype": "^3.0.2"
4592 - }
4593 - },
4594 - "node_modules/@types/react-dom": {
4595 - "version": "16.9.14",
4596 - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-16.9.14.tgz",
4597 - "integrity": "sha512-FIX2AVmPTGP30OUJ+0vadeIFJJ07Mh1m+U0rxfgyW34p3rTlXI+nlenvAxNn4BP36YyI9IJ/+UJ7Wu22N1pI7A==",
4598 - "dependencies": {
4599 - "@types/react": "^16"
4600 - }
4601 - },
4602 - "node_modules/@types/react-intl": {
4603 - "version": "3.0.0",
4604 - "resolved": "https://registry.npmjs.org/@types/react-intl/-/react-intl-3.0.0.tgz",
4605 - "integrity": "sha512-k8F3d05XQGEqSWIfK97bBjZe4z9RruXU9Wa7OZ2iUC5pdeIpzuQDZe/9C2J3Xir5//ZtAkhcv08Wfx3n5TBTQg==",
4606 - "deprecated": "This is a stub types definition. react-intl provides its own type definitions, so you do not need this installed.",
4607 - "dev": true,
4608 - "dependencies": {
4609 - "react-intl": "*"
4610 - }
4611 - },
4612 - "node_modules/@types/react-router": {
4613 - "version": "5.1.18",
4614 - "resolved": "https://registry.npmjs.org/@types/react-router/-/react-router-5.1.18.tgz",
4615 - "integrity": "sha512-YYknwy0D0iOwKQgz9v8nOzt2J6l4gouBmDnWqUUznltOTaon+r8US8ky8HvN0tXvc38U9m6z/t2RsVsnd1zM0g==",
4616 - "dependencies": {
4617 - "@types/history": "^4.7.11",
4618 - "@types/react": "*"
4619 - }
4620 - },
4621 - "node_modules/@types/react-router-dom": {
4622 - "version": "5.3.3",
4623 - "resolved": "https://registry.npmjs.org/@types/react-router-dom/-/react-router-dom-5.3.3.tgz",
4624 - "integrity": "sha512-kpqnYK4wcdm5UaWI3fLcELopqLrHgLqNsdpHauzlQktfkHL3npOSwtj1Uz9oKBAzs7lFtVkV8j83voAz2D8fhw==",
4625 - "dependencies": {
4626 - "@types/history": "^4.7.11",
4627 - "@types/react": "*",
4628 - "@types/react-router": "*"
4629 - }
4630 - },
4631 - "node_modules/@types/react-transition-group": {
4632 - "version": "4.4.4",
4633 - "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.4.tgz",
4634 - "integrity": "sha512-7gAPz7anVK5xzbeQW9wFBDg7G++aPLAFY0QaSMOou9rJZpbuI58WAuJrgu+qR92l61grlnCUe7AFX8KGahAgug==",
4635 - "dependencies": {
4636 - "@types/react": "*"
4637 - }
4638 - },
4639 - "node_modules/@types/resolve": {
4640 - "version": "1.17.1",
4641 - "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz",
4642 - "integrity": "sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==",
4643 - "dependencies": {
4644 - "@types/node": "*"
4645 - }
4646 - },
4647 - "node_modules/@types/retry": {
4648 - "version": "0.12.0",
4649 - "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz",
4650 - "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA=="
4651 - },
4652 - "node_modules/@types/scheduler": {
4653 - "version": "0.16.2",
4654 - "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.2.tgz",
4655 - "integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew=="
4656 - },
4657 - "node_modules/@types/semver": {
4658 - "version": "7.5.0",
4659 - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.0.tgz",
4660 - "integrity": "sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw=="
4661 - },
4662 - "node_modules/@types/send": {
4663 - "version": "0.17.1",
4664 - "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.1.tgz",
4665 - "integrity": "sha512-Cwo8LE/0rnvX7kIIa3QHCkcuF21c05Ayb0ZfxPiv0W8VRiZiNW/WuRupHKpqqGVGf7SUA44QSOUKaEd9lIrd/Q==",
4666 - "dependencies": {
4667 - "@types/mime": "^1",
4668 - "@types/node": "*"
4669 - }
4670 - },
4671 - "node_modules/@types/serve-index": {
4672 - "version": "1.9.1",
4673 - "resolved": "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.1.tgz",
4674 - "integrity": "sha512-d/Hs3nWDxNL2xAczmOVZNj92YZCS6RGxfBPjKzuu/XirCgXdpKEb88dYNbrYGint6IVWLNP+yonwVAuRC0T2Dg==",
4675 - "dependencies": {
4676 - "@types/express": "*"
4677 - }
4678 - },
4679 - "node_modules/@types/serve-static": {
4680 - "version": "1.15.2",
4681 - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.2.tgz",
4682 - "integrity": "sha512-J2LqtvFYCzaj8pVYKw8klQXrLLk7TBZmQ4ShlcdkELFKGwGMfevMLneMMRkMgZxotOD9wg497LpC7O8PcvAmfw==",
4683 - "dependencies": {
4684 - "@types/http-errors": "*",
4685 - "@types/mime": "*",
4686 - "@types/node": "*"
4687 - }
4688 - },
4689 - "node_modules/@types/sockjs": {
4690 - "version": "0.3.33",
4691 - "resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.33.tgz",
4692 - "integrity": "sha512-f0KEEe05NvUnat+boPTZ0dgaLZ4SfSouXUgv5noUiefG2ajgKjmETo9ZJyuqsl7dfl2aHlLJUiki6B4ZYldiiw==",
4693 - "dependencies": {
4694 - "@types/node": "*"
4695 - }
4696 - },
4697 - "node_modules/@types/stack-utils": {
4698 - "version": "2.0.1",
4699 - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz",
4700 - "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw=="
4701 - },
4702 - "node_modules/@types/trusted-types": {
4703 - "version": "2.0.3",
4704 - "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.3.tgz",
4705 - "integrity": "sha512-NfQ4gyz38SL8sDNrSixxU2Os1a5xcdFxipAFxYEuLUlvU2uDwS4NUpsImcf1//SlWItCVMMLiylsxbmNMToV/g=="
4706 - },
4707 - "node_modules/@types/warning": {
4708 - "version": "3.0.0",
4709 - "resolved": "https://registry.npmjs.org/@types/warning/-/warning-3.0.0.tgz",
4710 - "integrity": "sha1-DSUBJorY+ZYrdA04fEZU9fjiPlI= sha512-t/Tvs5qR47OLOr+4E9ckN8AmP2Tf16gWq+/qA4iUGS/OOyHVO8wv2vjJuX8SNOUTJyWb+2t7wJm6cXILFnOROA=="
4711 - },
4712 - "node_modules/@types/ws": {
4713 - "version": "8.5.5",
4714 - "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.5.tgz",
4715 - "integrity": "sha512-lwhs8hktwxSjf9UaZ9tG5M03PGogvFaH8gUgLNbN9HKIg0dvv6q+gkSuJ8HN4/VbyxkuLzCjlN7GquQ0gUJfIg==",
4716 - "dependencies": {
4717 - "@types/node": "*"
4718 - }
4719 - },
4720 - "node_modules/@types/yargs": {
4721 - "version": "13.0.12",
4722 - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-13.0.12.tgz",
4723 - "integrity": "sha512-qCxJE1qgz2y0hA4pIxjBR+PelCH0U5CK1XJXFwCNqfmliatKp47UCXXE9Dyk1OXBDLvsCF57TqQEJaeLfDYEOQ==",
4724 - "dependencies": {
4725 - "@types/yargs-parser": "*"
4726 - }
4727 - },
4728 - "node_modules/@types/yargs-parser": {
4729 - "version": "20.2.1",
4730 - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-20.2.1.tgz",
4731 - "integrity": "sha512-7tFImggNeNBVMsn0vLrpn1H1uPrUBdnARPTpZoitY37ZrdJREzf7I16tMrlK3hen349gr1NYh8CmZQa7CTG6Aw=="
4732 - },
4733 - "node_modules/@typescript-eslint/eslint-plugin": {
4734 - "version": "5.62.0",
4735 - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.62.0.tgz",
4736 - "integrity": "sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==",
4737 - "dependencies": {
4738 - "@eslint-community/regexpp": "^4.4.0",
4739 - "@typescript-eslint/scope-manager": "5.62.0",
4740 - "@typescript-eslint/type-utils": "5.62.0",
4741 - "@typescript-eslint/utils": "5.62.0",
4742 - "debug": "^4.3.4",
4743 - "graphemer": "^1.4.0",
4744 - "ignore": "^5.2.0",
4745 - "natural-compare-lite": "^1.4.0",
4746 - "semver": "^7.3.7",
4747 - "tsutils": "^3.21.0"
4748 - },
4749 - "engines": {
4750 - "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
4751 - },
4752 - "funding": {
4753 - "type": "opencollective",
4754 - "url": "https://opencollective.com/typescript-eslint"
4755 - },
4756 - "peerDependencies": {
4757 - "@typescript-eslint/parser": "^5.0.0",
4758 - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0"
4759 - },
4760 - "peerDependenciesMeta": {
4761 - "typescript": {
4762 - "optional": true
4763 - }
4764 - }
4765 - },
4766 - "node_modules/@typescript-eslint/eslint-plugin/node_modules/debug": {
4767 - "version": "4.3.4",
4768 - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
4769 - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
4770 - "dependencies": {
4771 - "ms": "2.1.2"
4772 - },
4773 - "engines": {
4774 - "node": ">=6.0"
4775 - },
4776 - "peerDependenciesMeta": {
4777 - "supports-color": {
4778 - "optional": true
4779 - }
4780 - }
4781 - },
4782 - "node_modules/@typescript-eslint/experimental-utils": {
4783 - "version": "5.62.0",
4784 - "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-5.62.0.tgz",
4785 - "integrity": "sha512-RTXpeB3eMkpoclG3ZHft6vG/Z30azNHuqY6wKPBHlVMZFuEvrtlEDe8gMqDb+SO+9hjC/pLekeSCryf9vMZlCw==",
4786 - "dependencies": {
4787 - "@typescript-eslint/utils": "5.62.0"
4788 - },
4789 - "engines": {
4790 - "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
4791 - },
4792 - "funding": {
4793 - "type": "opencollective",
4794 - "url": "https://opencollective.com/typescript-eslint"
4795 - },
4796 - "peerDependencies": {
4797 - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0"
4798 - }
4799 - },
4800 - "node_modules/@typescript-eslint/parser": {
4801 - "version": "5.62.0",
4802 - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.62.0.tgz",
4803 - "integrity": "sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==",
4804 - "dependencies": {
4805 - "@typescript-eslint/scope-manager": "5.62.0",
4806 - "@typescript-eslint/types": "5.62.0",
4807 - "@typescript-eslint/typescript-estree": "5.62.0",
4808 - "debug": "^4.3.4"
4809 - },
4810 - "engines": {
4811 - "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
4812 - },
4813 - "funding": {
4814 - "type": "opencollective",
4815 - "url": "https://opencollective.com/typescript-eslint"
4816 - },
4817 - "peerDependencies": {
4818 - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0"
4819 - },
4820 - "peerDependenciesMeta": {
4821 - "typescript": {
4822 - "optional": true
4823 - }
4824 - }
4825 - },
4826 - "node_modules/@typescript-eslint/parser/node_modules/debug": {
4827 - "version": "4.3.4",
4828 - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
4829 - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
4830 - "dependencies": {
4831 - "ms": "2.1.2"
4832 - },
4833 - "engines": {
4834 - "node": ">=6.0"
4835 - },
4836 - "peerDependenciesMeta": {
4837 - "supports-color": {
4838 - "optional": true
4839 - }
4840 - }
4841 - },
4842 - "node_modules/@typescript-eslint/scope-manager": {
4843 - "version": "5.62.0",
4844 - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz",
4845 - "integrity": "sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==",
4846 - "dependencies": {
4847 - "@typescript-eslint/types": "5.62.0",
4848 - "@typescript-eslint/visitor-keys": "5.62.0"
4849 - },
4850 - "engines": {
4851 - "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
4852 - },
4853 - "funding": {
4854 - "type": "opencollective",
4855 - "url": "https://opencollective.com/typescript-eslint"
4856 - }
4857 - },
4858 - "node_modules/@typescript-eslint/type-utils": {
4859 - "version": "5.62.0",
4860 - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.62.0.tgz",
4861 - "integrity": "sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==",
4862 - "dependencies": {
4863 - "@typescript-eslint/typescript-estree": "5.62.0",
4864 - "@typescript-eslint/utils": "5.62.0",
4865 - "debug": "^4.3.4",
4866 - "tsutils": "^3.21.0"
4867 - },
4868 - "engines": {
4869 - "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
4870 - },
4871 - "funding": {
4872 - "type": "opencollective",
4873 - "url": "https://opencollective.com/typescript-eslint"
4874 - },
4875 - "peerDependencies": {
4876 - "eslint": "*"
4877 - },
4878 - "peerDependenciesMeta": {
4879 - "typescript": {
4880 - "optional": true
4881 - }
4882 - }
4883 - },
4884 - "node_modules/@typescript-eslint/type-utils/node_modules/debug": {
4885 - "version": "4.3.4",
4886 - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
4887 - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
4888 - "dependencies": {
4889 - "ms": "2.1.2"
4890 - },
4891 - "engines": {
4892 - "node": ">=6.0"
4893 - },
4894 - "peerDependenciesMeta": {
4895 - "supports-color": {
4896 - "optional": true
4897 - }
4898 - }
4899 - },
4900 - "node_modules/@typescript-eslint/types": {
4901 - "version": "5.62.0",
4902 - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.62.0.tgz",
4903 - "integrity": "sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==",
4904 - "engines": {
4905 - "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
4906 - },
4907 - "funding": {
4908 - "type": "opencollective",
4909 - "url": "https://opencollective.com/typescript-eslint"
4910 - }
4911 - },
4912 - "node_modules/@typescript-eslint/typescript-estree": {
4913 - "version": "5.62.0",
4914 - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz",
4915 - "integrity": "sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==",
4916 - "dependencies": {
4917 - "@typescript-eslint/types": "5.62.0",
4918 - "@typescript-eslint/visitor-keys": "5.62.0",
4919 - "debug": "^4.3.4",
4920 - "globby": "^11.1.0",
4921 - "is-glob": "^4.0.3",
4922 - "semver": "^7.3.7",
4923 - "tsutils": "^3.21.0"
4924 - },
4925 - "engines": {
4926 - "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
4927 - },
4928 - "funding": {
4929 - "type": "opencollective",
4930 - "url": "https://opencollective.com/typescript-eslint"
4931 - },
4932 - "peerDependenciesMeta": {
4933 - "typescript": {
4934 - "optional": true
4935 - }
4936 - }
4937 - },
4938 - "node_modules/@typescript-eslint/typescript-estree/node_modules/debug": {
4939 - "version": "4.3.4",
4940 - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
4941 - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
4942 - "dependencies": {
4943 - "ms": "2.1.2"
4944 - },
4945 - "engines": {
4946 - "node": ">=6.0"
4947 - },
4948 - "peerDependenciesMeta": {
4949 - "supports-color": {
4950 - "optional": true
4951 - }
4952 - }
4953 - },
4954 - "node_modules/@typescript-eslint/utils": {
4955 - "version": "5.62.0",
4956 - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.62.0.tgz",
4957 - "integrity": "sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==",
4958 - "dependencies": {
4959 - "@eslint-community/eslint-utils": "^4.2.0",
4960 - "@types/json-schema": "^7.0.9",
4961 - "@types/semver": "^7.3.12",
4962 - "@typescript-eslint/scope-manager": "5.62.0",
4963 - "@typescript-eslint/types": "5.62.0",
4964 - "@typescript-eslint/typescript-estree": "5.62.0",
4965 - "eslint-scope": "^5.1.1",
4966 - "semver": "^7.3.7"
4967 - },
4968 - "engines": {
4969 - "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
4970 - },
4971 - "funding": {
4972 - "type": "opencollective",
4973 - "url": "https://opencollective.com/typescript-eslint"
4974 - },
4975 - "peerDependencies": {
4976 - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0"
4977 - }
4978 - },
4979 - "node_modules/@typescript-eslint/utils/node_modules/eslint-scope": {
4980 - "version": "5.1.1",
4981 - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz",
4982 - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==",
4983 - "dependencies": {
4984 - "esrecurse": "^4.3.0",
4985 - "estraverse": "^4.1.1"
4986 - },
4987 - "engines": {
4988 - "node": ">=8.0.0"
4989 - }
4990 - },
4991 - "node_modules/@typescript-eslint/utils/node_modules/estraverse": {
4992 - "version": "4.3.0",
4993 - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz",
4994 - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==",
4995 - "engines": {
4996 - "node": ">=4.0"
4997 - }
4998 - },
4999 - "node_modules/@typescript-eslint/visitor-keys": {

This file is too large to show in full.

package.json deleted
-54
@@ -1,54 +0,0 @@
1 -{
2 - "name": "setoelkahfi.com",
3 - "version": "0.3.0",
4 - "private": true,
5 - "dependencies": {
6 - "@babel/runtime": "^7.16.7",
7 - "@types/jest": "^24.9.1",
8 - "@types/node": "^13.13.52",
9 - "@types/react": "^16.14.43",
10 - "@types/react-dom": "^16.9.14",
11 - "@types/react-router-dom": "^5.3.2",
12 - "axios": "^0.25.0",
13 - "bootstrap": "5.1.3",
14 - "dexie": "^3.2.0",
15 - "express": "^4.18.2",
16 - "firebase": "^8.6.2",
17 - "react": "^16.14.0",
18 - "react-bootstrap": "^2.1.1",
19 - "react-dom": "^16.14.0",
20 - "react-icons": "^4.3.1",
21 - "react-intl": "^2.9.0",
22 - "react-rotating-text": "^1.4.1",
23 - "react-router-dom": "^5.3.0",
24 - "react-scripts": "^5.0.0",
25 - "react-youtube": "^7.14.0",
26 - "tone": "^14.7.77",
27 - "typescript": "^4.0.0"
28 - },
29 - "scripts": {
30 - "client:start": "PORT=3002 react-scripts start",
31 - "client:build": "react-scripts build",
32 - "client:test": "react-scripts test",
33 - "client:eject": "react-scripts eject",
34 - "server:build": "npx tsc --project ./tsconfig.server.json --outDir ./build",
35 - "start": "node ./build/server/server.js",
36 - "build": "npm run client:build && npm run server:build"
37 - },
38 - "eslintConfig": {
39 - "extends": "react-app"
40 - },
41 - "browserslist": [
42 - ">0.2%",
43 - "not dead",
44 - "not ie <= 11",
45 - "not op_mini all"
46 - ],
47 - "devDependencies": {
48 - "@types/express": "^4.17.17",
49 - "@types/react-intl": "^3.0.0"
50 - },
51 - "overrides": {
52 - "autoprefixer": "10.4.5"
53 -}
54 -}
public/favicon.ico
Binary files a/public/favicon.ico and /dev/null differ
public/index.html deleted
-20
@@ -1,20 +0,0 @@
1 -<!DOCTYPE html>
2 -<html lang="en" id="lang">
3 - <head>
4 - <meta charset="utf-8" />
5 - <link rel="shortcut icon" href="%PUBLIC_URL%/favicon.ico" />
6 - <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"/>
7 - <meta name="theme-color" content="#000000" />
8 - <link rel="manifest" href="%PUBLIC_URL%/manifest.json" />
9 - <title>Seto Elkahfi</title>
10 - <link rel="stylesheet" href="//cdn.jsdelivr.net/jquery.supersized/3.2.7/core/css/supersized.core.css">
11 - <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.0/jquery.min.js"></script>
12 - <script src="https://cdn.jsdelivr.net/jquery.supersized/3.2.7/core/js/supersized.core.3.2.1.min.js"></script>
13 - <script type="text/javascript">$(function(e){e.supersized({start_slide:0,new_window:1,image_protect:1,min_width:0,min_height:0,vertical_center:1,horizontal_center:1,fit_always:0,fit_portrait:1,fit_landscape:0,slides:[{image:"https://buildinternet.s3.amazonaws.com/projects/supersized/3.2/slides/kazvan-1.jpg",title:"Image Credit: Maria Kazvan"},{image:"https://buildinternet.s3.amazonaws.com/projects/supersized/3.2/slides/kazvan-3.jpg",title:"Image Credit: Maria Kazvan"},{image:"https://buildinternet.s3.amazonaws.com/projects/supersized/3.2/slides/wojno-1.jpg",title:"Image Credit: Colin Wojno"},{image:"https://buildinternet.s3.amazonaws.com/projects/supersized/3.2/slides/wojno-2.jpg",title:"Image Credit: Colin Wojno"},{image:"https://buildinternet.s3.amazonaws.com/projects/supersized/3.2/slides/wojno-3.jpg",title:"Image Credit: Colin Wojno"}]})});</script>
14 - <script id="initial-data"></script>
15 - </head>
16 - <body>
17 - <noscript>You need to enable JavaScript to run this app.</noscript>
18 - <div id="root"></div>
19 - </body>
20 -</html>
public/manifest.json deleted
-15
@@ -1,15 +0,0 @@
1 -{
2 - "short_name": "Seto Elkahfi",
3 - "name": "Seto Elkahfi Personal Page",
4 - "icons": [
5 - {
6 - "src": "favicon.ico",
7 - "sizes": "64x64 32x32 24x24 16x16",
8 - "type": "image/x-icon"
9 - }
10 - ],
11 - "start_url": ".",
12 - "display": "standalone",
13 - "theme_color": "#000000",
14 - "background_color": "#ffffff"
15 -}
server/server.tsx deleted
-87
@@ -1,87 +0,0 @@
1 -import express from 'express'
2 -import React from 'react'
3 -import ReactDOMServer from 'react-dom/server'
4 -import App from '../src/components/App'
5 -import path from 'path';
6 -import fs from 'fs';
7 -import { StaticRouter, matchPath } from 'react-router-dom';
8 -import routes, { Path } from '../src/shared/routes';
9 -import Firebase from '../src/components/Firebase';
10 -import firebaseInstance from '../src/components/Firebase/config';
11 -import { determineUserLang } from '../src/shared/i18n';
12 -
13 -const server = express();
14 -
15 -server.use('/static', express.static('./build/static'));
16 -server.use('/favicon.ico', express.static('./build/favicon.ico'));
17 -server.use('/manifest.json', express.static('./build/manifest.json'));
18 -
19 -server.get('/*', (req, res, next) => {
20 -
21 - const acceptsLanguages = req.acceptsLanguages();
22 - console.log('SERVER#acceptsLanguages', acceptsLanguages);
23 - const language = determineUserLang(acceptsLanguages);
24 - console.log('SERVER#language', language);
25 -
26 - const activeRoute = routes.find((route) => {
27 - const cleanUrl = req.url.split('?')[0];
28 - console.log('cleanUrl', cleanUrl);
29 - return matchPath(route.path, cleanUrl)
30 - })
31 -
32 - const firebase = new Firebase(language, firebaseInstance.database());
33 -
34 - if (!activeRoute) {
35 - console.log('!activeRoute');
36 - return next();
37 - }
38 -
39 - // We have check the for validity of the path,
40 - // so we can cast it to Path.
41 - const ourPath: Path = req.path as Path;
42 - console.log('req.path', req.path);
43 - console.log('ourPath', ourPath);
44 -
45 - activeRoute
46 - .fetchInitialData(ourPath, firebase)
47 - .then((initialData) => {
48 -
49 - console.log('data', initialData);
50 - console.log('data, stringify', JSON.stringify(initialData));
51 -
52 - const app = ReactDOMServer.renderToString(
53 - <StaticRouter location={req.url}>
54 - <App initialData={initialData} />
55 - </StaticRouter>
56 - );
57 -
58 - const indexFile = path.resolve('./build/index.html');
59 -
60 - fs.readFile(indexFile, 'utf8', (err, data) => {
61 - if (err) {
62 - console.error('Something went wrong:', err);
63 - return res.status(500).send('Oops, better luck next time!');
64 - }
65 - return res.send(
66 - data
67 - .replace(
68 - '<div id="root"></div>',
69 - `<div id="root">${app}</div>`
70 - )
71 - .replace(
72 - '<script id="initial-data"></script>',
73 - `<script>
74 - window.__DATA__=${JSON.stringify(initialData)}
75 - </script>`
76 - )
77 - );
78 - });
79 - })
80 - .catch(next);
81 -});
82 -// Run on PORT 3002 unless SETOELKAHFI_COM_PORT is set
83 -const port = process.env.SETOELKAHFI_COM_PORT || 3002;
84 -
85 -server.listen(port, () => {
86 - console.log(`Server running on http://localhost:${port}`)
87 -})
\ No newline at end of file
src/App.test.js deleted
-9
@@ -1,9 +0,0 @@
1 -import React from 'react';
2 -import ReactDOM from 'react-dom';
3 -import App from './App';
4 -
5 -it('renders without crashing', () => {
6 - const div = document.createElement('div');
7 - ReactDOM.render(<App />, div);
8 - ReactDOM.unmountComponentAtNode(div);
9 -});
src/components/About.tsx deleted
-80
@@ -1,80 +0,0 @@
1 -import React, { Component } from 'react';
2 -import { FormattedMessage } from 'react-intl';
3 -import Firebase from './Firebase';
4 -import app from 'firebase/app';
5 -import { InitialData, Path } from '../shared/routes';
6 -
7 -type AboutProps = {
8 - firebase?: Firebase
9 - initialData?: InitialData
10 -}
11 -
12 -type AboutState = {
13 - contentMain: string,
14 - contentSkills: string,
15 - updatedAt: string
16 -}
17 -
18 -class About extends Component<AboutProps, AboutState> {
19 -
20 - aboutRef: app.database.Reference | undefined;
21 -
22 - constructor(props: AboutProps) {
23 - super(props);
24 - this.aboutRef = this.props.firebase?.aboutRef();
25 - if (this.props.initialData?.path === Path.ABOUT) {
26 - console.log('SERVER#ABOUT', this.props.initialData);
27 - this.state = {
28 - contentMain: this.props.initialData.data['contentMain'],
29 - contentSkills: this.props.initialData.data['contentSkills'],
30 - updatedAt: this.props.initialData.data['updatedAt']
31 - }
32 - } else {
33 - console.log('CLIENT#ABOUT');
34 - this.state = {
35 - contentMain: "Loading ...",
36 - contentSkills: "Loading ...",
37 - updatedAt: "Loading ..."
38 - }
39 - }
40 - }
41 -
42 - componentDidMount() {
43 - if (this.props.initialData?.path === Path.ABOUT)
44 - return;
45 -
46 - this.aboutRef?.on('value', (snapshot) => {
47 - let items = snapshot?.val();
48 - this.setState({
49 - contentMain: items.contentMain,
50 - contentSkills: items.contentSkills,
51 - updatedAt: items.updatedAt
52 - });
53 - });
54 - }
55 -
56 - componentWillUnmount() {
57 - this.aboutRef?.off();
58 - }
59 -
60 - render() {
61 - return (
62 - <div>
63 - <h1>
64 - <FormattedMessage id="about.title"
65 - defaultMessage="About"
66 - description="About page title"/>
67 - </h1>
68 - <p style={{lineHeight: "150%"}}>{this.state.contentMain}</p>
69 - <h2 style={{marginTop: 8}}>
70 - <FormattedMessage id="about.skills"
71 - defaultMessage="Skills"
72 - description="About page skills"/>
73 - </h2>
74 - <p style={{lineHeight: "150%"}}>{this.state.contentSkills}</p>
75 - </div>
76 - );
77 - }
78 -}
79 -
80 -export default About;
src/components/App.tsx deleted
-90
@@ -1,90 +0,0 @@
1 -import React, { Component } from 'react';
2 -import Header from './Header';
3 -import Main from './Main';
4 -import FooterLinks from './FooterLinks';
5 -import { IntlProvider, addLocaleData } from 'react-intl';
6 -import Firebase, { FirebaseContext } from '../components/Firebase';
7 -import localeEn from 'react-intl/locale-data/en';
8 -import localeSe from 'react-intl/locale-data/se';
9 -import localeId from 'react-intl/locale-data/id';
10 -import localeDe from 'react-intl/locale-data/de';
11 -import localeFr from 'react-intl/locale-data/fr';
12 -import localeZh from 'react-intl/locale-data/zh';
13 -import localeEs from 'react-intl/locale-data/es';
14 -import localeJa from 'react-intl/locale-data/ja';
15 -import messages_sv from "../shared/translations/sv.json";
16 -import messages_id from "../shared/translations/id.json";
17 -import messages_en from "../shared/translations/en.json";
18 -import messagesDe from "../shared/translations/de.json";
19 -import messagesFr from "../shared/translations/fr.json";
20 -import messagesZh from "../shared/translations/zh.json";
21 -import messagesEs from "../shared/translations/es.json";
22 -import messagesJa from "../shared/translations/ja.json";
23 -import { InitialData } from '../shared/routes';
24 -
25 -addLocaleData([
26 - ...localeEn,
27 - ...localeId,
28 - ...localeSe,
29 - ...localeDe,
30 - ...localeFr,
31 - ...localeZh,
32 - ...localeEs,
33 - ...localeJa
34 -]);
35 -
36 -let i18nConfig = {
37 - language: 'en',
38 - messages: messages_en
39 -};
40 -
41 -export type AppProps = {
42 - firebase?: Firebase
43 - initialData?: InitialData
44 -}
45 -
46 -type AppState = {
47 - language: string
48 -}
49 -
50 -class App extends Component<AppProps, AppState> {
51 -
52 - onChangeLanguage(language: string) {
53 - switch (language) {
54 - case 'se': i18nConfig.messages = messages_sv; break;
55 - case 'en': i18nConfig.messages = messages_en; break;
56 - case 'id': i18nConfig.messages = messages_id; break;
57 - case 'de': i18nConfig.messages = messagesDe; break;
58 - case 'fr': i18nConfig.messages = messagesFr; break;
59 - case 'zh': i18nConfig.messages = messagesZh; break;
60 - case 'es': i18nConfig.messages = messagesEs; break;
61 - case 'ja': i18nConfig.messages = messagesJa; break;
62 - default: i18nConfig.messages = messages_en; break;
63 - }
64 - i18nConfig.language = language;
65 - this.setState({ language: language })
66 - if (this.props.firebase) {
67 - this.props.firebase.setLanguage(language)
68 - }
69 - }
70 -
71 - render() {
72 - return (
73 - <IntlProvider locale={this.props.firebase?.language} messages={i18nConfig.messages}>
74 - <FirebaseContext.Provider value={this.props.firebase}>
75 - <Header
76 - onChangeLanguage={this.onChangeLanguage.bind(this)}
77 - selectedLanguage={this.props.firebase?.language || 'en'}
78 - />
79 - <Main
80 - firebase={this.props.firebase}
81 - initialData={this.props.initialData}
82 - />
83 - <FooterLinks />
84 - </FirebaseContext.Provider>
85 - </IntlProvider >
86 - );
87 - }
88 -}
89 -
90 -export default App;
\ No newline at end of file
src/components/AudioPlayer.tsx deleted
-437
@@ -1,437 +0,0 @@
1 -/* eslint-disable no-script-url */
2 -/* eslint-disable jsx-a11y/anchor-is-valid */
3 -import axios from 'axios';
4 -import React, { CSSProperties } from 'react';
5 -import { Component } from 'react';
6 -import { Col, Row, Spinner } from 'react-bootstrap';
7 -import YouTube, { Options } from 'react-youtube';
8 -import { GiMicrophone, GiDrumKit, GiGuitarHead, GiGuitarBassHead, GiPianoKeys, GiPlayButton, GiPauseButton } from 'react-icons/gi';
9 -import { IconContext } from 'react-icons';
10 -import { db, AudioFiles } from './db';
11 -import { FormattedMessage } from 'react-intl';
12 -import { Channel, Player} from 'tone';
13 -
14 -const buttonStyle: CSSProperties = {
15 -
16 -}
17 -
18 -interface Result {
19 - source_file: string,
20 - filename: string
21 -}
22 -
23 -interface AudioFile {
24 - youtube_video_id: string,
25 - results: Result[]
26 -}
27 -
28 -interface YouTubeEventTarget {
29 - pauseVideo: () => void,
30 - playVideo: () => void,
31 - seekTo: (arg0: number) => void,
32 - getPlayerState: () => YouTubePlayerState,
33 - getCurrentTime: () => number
34 -
35 -}
36 -
37 -// https://developers.google.com/youtube/iframe_api_reference#Playback_status
38 -enum YouTubePlayerState {
39 - unstarted = -1, ended, playing, paused, buffering, videoCued
40 -}
41 -
42 -type AudioProps = {
43 - audioFileId: string
44 -}
45 -
46 -type AudioState = {
47 - audioFile: AudioFile | null,
48 - playerTime: number,
49 - isPlayerReady: boolean,
50 - isYoutubePlayerReady: boolean,
51 - isPlaying: boolean
52 - vocalAudioOn: boolean
53 - guitarAudioOn: boolean
54 - bassAudioOn: boolean
55 - drumsAudioOn: boolean
56 - pianoAudioOn: boolean
57 -}
58 -
59 -export enum Mode {
60 - vocalist, bassist, guitarist, drummer, keyboardist
61 -}
62 -
63 -class AudioPlayer extends Component<AudioProps, AudioState> {
64 -
65 - vocalPlayer: Player | null = null;
66 - otherPlayer: Player | null = null;
67 - bassPlayer: Player | null = null;
68 - drumsPlayer: Player | null = null;
69 - pianoPlayer: Player | null = null;
70 -
71 - youTubeEventTarget: YouTubeEventTarget | null = null
72 - updateYouTubePlayerStatusIntervalId: any | null = null
73 -
74 - constructor(props: AudioProps) {
75 - super(props);
76 - this.state = {
77 - audioFile: null,
78 - playerTime: 0,
79 - isPlayerReady: false,
80 - isYoutubePlayerReady: false,
81 - isPlaying: false,
82 - vocalAudioOn: true,
83 - guitarAudioOn: true,
84 - bassAudioOn: true,
85 - drumsAudioOn: true,
86 - pianoAudioOn: true,
87 - }
88 - }
89 -
90 - componentDidMount() {
91 - axios.get(`/splitfire/${this.props.audioFileId}`)
92 - .then(res => {
93 - // console.log("Get results", res);
94 - const audioFile = res.data.audio_file;
95 - this.setState({ audioFile });
96 - // console.log(this.state);
97 - this.downloadAudioFilesIfNeeded();
98 - });
99 - }
100 -
101 - componentWillUnmount() {
102 - this.setState({isPlaying: false})
103 - this.vocalPlayer?.stop()
104 - this.bassPlayer?.stop()
105 - this.drumsPlayer?.stop()
106 - this.pianoPlayer?.stop()
107 - this.otherPlayer?.stop()
108 - }
109 -
110 - downloadAudioFilesIfNeeded() {
111 - this._prepareAudio(Mode.vocalist);
112 - this._prepareAudio(Mode.bassist);
113 - this._prepareAudio(Mode.drummer);
114 - this._prepareAudio(Mode.guitarist);
115 - this._prepareAudio(Mode.keyboardist);
116 - }
117 -
118 - async _downloadFile(type: Mode) {
119 - // console.log('_downloadFile', type);
120 - let audioFile: Result | undefined;
121 - switch (type) {
122 - case Mode.vocalist:
123 - audioFile = this.state.audioFile?.results.find(obj => { return obj.filename.startsWith('vocals') });
124 - break;
125 - case Mode.bassist:
126 - audioFile = this.state.audioFile?.results.find(obj => { return obj.filename.startsWith('bass') });
127 - break;
128 - case Mode.drummer:
129 - audioFile = this.state.audioFile?.results.find(obj => { return obj.filename.startsWith('drums') });
130 - break;
131 - case Mode.guitarist:
132 - audioFile = this.state.audioFile?.results.find(obj => { return obj.filename.startsWith('other') });
133 - break;
134 - case Mode.keyboardist:
135 - audioFile = this.state.audioFile?.results.find(obj => { return obj.filename.startsWith('piano') });
136 - break;
137 - }
138 -
139 - const audioFileId = this.props.audioFileId;
140 - // console.log("Download url", audioFile?.source_file);
141 - axios({
142 - url: audioFile?.source_file,
143 - method: 'GET',
144 - responseType: 'blob',
145 - }).then((response) => {
146 - const file = new Blob([response.data], { type: 'audio/mp3' });
147 - const item: AudioFiles = {
148 - audioFileId, type: type, file
149 - }
150 - db.audioFiles.add(item);
151 - // console.log('File Downloaded', file);
152 - this._setAudioSrc(type, file);
153 - }).catch(error => {
154 - // console.log(error);
155 - });
156 - }
157 -
158 - async _prepareAudio(type: Mode) {
159 - const audioFileId = this.props.audioFileId;
160 - db.audioFiles
161 - .get({ audioFileId: audioFileId, type: type })
162 - .then(record => {
163 - if (record?.file === undefined) {
164 - this._downloadFile(type);
165 - return
166 - }
167 - this._setAudioSrc(type, record.file)
168 - })
169 - .catch(onrejected => {
170 - // console.log("Rejected", onrejected);
171 - });
172 - }
173 -
174 - _setAudioSrc(type: Mode, file: Blob) {
175 - // Get window.URL object
176 - const URL = window.URL || window.webkitURL;
177 - // Create and revoke ObjectURL
178 - const audioFileURL = URL.createObjectURL(file);
179 - const channel = new Channel().toDestination();
180 -
181 - switch (type) {
182 - case Mode.vocalist:
183 - this.vocalPlayer = new Player({ url: audioFileURL, onload: this._updatePlayerStatus })
184 - this.vocalPlayer.connect(channel);
185 - break;
186 - case Mode.bassist:
187 - this.bassPlayer = new Player({ url: audioFileURL, onload: this._updatePlayerStatus })
188 - this.bassPlayer.connect(channel);
189 - break;
190 - case Mode.drummer:
191 - this.drumsPlayer = new Player({ url: audioFileURL, onload: this._updatePlayerStatus })
192 - this.drumsPlayer.connect(channel);
193 - break;
194 - case Mode.guitarist:
195 - this.otherPlayer = new Player({ url: audioFileURL, onload: this._updatePlayerStatus })
196 - this.otherPlayer.connect(channel);
197 - break;
198 - case Mode.keyboardist:
199 - this.pianoPlayer = new Player({ url: audioFileURL, onload: this._updatePlayerStatus })
200 - this.pianoPlayer.connect(channel);
201 - break;
202 - }
203 - }
204 -
205 - _updatePlayerStatus: (() => void) = () => {
206 - if (
207 - this.vocalPlayer?.loaded &&
208 - this.drumsPlayer?.loaded &&
209 - this.otherPlayer?.loaded &&
210 - this.bassPlayer?.loaded &&
211 - this.pianoPlayer?.loaded
212 - ) {
213 - this.setState({ isPlayerReady: true });
214 - }
215 - }
216 -
217 - togglePlayAudio() {
218 - this.setState({isPlaying: !this.state.isPlaying})
219 - if (this.state.isPlaying) {
220 - this.vocalPlayer?.stop()
221 - this.bassPlayer?.stop()
222 - this.drumsPlayer?.stop()
223 - this.pianoPlayer?.stop()
224 - this.otherPlayer?.stop()
225 - this.youTubeEventTarget?.pauseVideo()
226 - } else {
227 - this.youTubeEventTarget?.seekTo(0)
228 - this.youTubeEventTarget?.playVideo()
229 - this.vocalPlayer?.start();
230 - this.bassPlayer?.start();
231 - this.drumsPlayer?.start();
232 - this.pianoPlayer?.start();
233 - this.otherPlayer?.start();
234 - }
235 - }
236 -
237 - setToggleInstrument(mode: Mode) {
238 - switch (mode) {
239 - case Mode.vocalist:
240 - if (!this.vocalPlayer) return;
241 - this.setState({ vocalAudioOn: !this.state.vocalAudioOn });
242 - this.vocalPlayer.mute = this.state.vocalAudioOn;
243 - break;
244 - case Mode.bassist:
245 - if (!this.bassPlayer) return;
246 - this.setState({ bassAudioOn: !this.state.bassAudioOn });
247 - this.bassPlayer.mute = this.state.bassAudioOn;
248 - break;
249 - case Mode.guitarist:
250 - if (!this.otherPlayer) return;
251 - this.setState({ guitarAudioOn: !this.state.guitarAudioOn });
252 - this.otherPlayer.mute = this.state.guitarAudioOn;
253 - break;
254 - case Mode.keyboardist:
255 - if (!this.pianoPlayer) return;
256 - this.setState({ pianoAudioOn: !this.state.pianoAudioOn });
257 - this.pianoPlayer.mute = this.state.pianoAudioOn;;
258 - break;
259 - case Mode.drummer:
260 - if (!this.drumsPlayer) return;
261 - this.setState({ drumsAudioOn: !this.state.drumsAudioOn });
262 - this.drumsPlayer.mute = this.state.drumsAudioOn;
263 - break;
264 - }
265 - }
266 -
267 - render() {
268 - if (this.state.isPlayerReady) {
269 - const opts: Options = {
270 - width: '100%',
271 - playerVars: {
272 - // https://developers.google.com/youtube/player_parameters
273 - autoplay: 0,
274 - mute: 1,
275 - controls: 0,
276 - rel: 0,
277 - showinfo: 0
278 - },
279 - };
280 - let togglePlayButton = <div>
281 - <p>
282 - <FormattedMessage id="player.loadingYoutube"
283 - defaultMessage="Waiting for YouTube..."
284 - description="Loading message"/>
285 - </p>
286 - <Spinner animation='grow' variant="danger"></Spinner>
287 - </div>
288 - if (this.state.isYoutubePlayerReady) {
289 - let button
290 - if (this.state.isPlaying) {
291 - button = <Col>
292 - <GiPauseButton
293 - color={this.state.isPlaying ? `white` : `red`}
294 - onClick={() => this.togglePlayAudio() }
295 - style={buttonStyle} />
296 - </Col>
297 - } else {
298 - button = <Col>
299 - <GiPlayButton
300 - color={this.state.isPlaying ? `white` : `red`}
301 - onClick={() => this.togglePlayAudio() }
302 - style={buttonStyle} />
303 - </Col>
304 - }
305 - togglePlayButton = <Col>
306 - <p>
307 - <FormattedMessage id="player.instruction"
308 - defaultMessage="Click isntrument icon to mute part of the song."
309 - description="Instruction message"/>
310 - </p>
311 - {button}
312 - </Col>
313 - }
314 -
315 - return (
316 - <IconContext.Provider value={{ size: "2em", color: "white", className: "global-class-name" }}>
317 - <Header/>
318 - <Row className="mb-3 mt-3">
319 - {togglePlayButton}
320 - </Row>
321 - <Row className="mb-3 mt-3">
322 - <Col>
323 - <GiMicrophone
324 - color={this.state.vocalAudioOn ? `white` : `red`}
325 - onClick={() => this.setToggleInstrument(Mode.vocalist)}
326 - style={buttonStyle} />
327 - </Col>
328 - <Col>
329 - <GiDrumKit
330 - color={this.state.drumsAudioOn ? `white` : `red`}
331 - onClick={() => this.setToggleInstrument(Mode.drummer)}
332 - style={buttonStyle} />
333 - </Col>
334 - <Col>
335 - <GiGuitarBassHead
336 - color={this.state.bassAudioOn ? `white` : `red`}
337 - onClick={() => this.setToggleInstrument(Mode.bassist)}
338 - style={buttonStyle} />
339 - </Col>
340 - <Col>
341 - <GiGuitarHead
342 - color={this.state.guitarAudioOn ? `white` : `red`}
343 - onClick={() => this.setToggleInstrument(Mode.guitarist)}
344 - style={buttonStyle} />
345 - </Col>
346 - <Col>
347 - <GiPianoKeys
348 - color={this.state.pianoAudioOn ? `white` : `red`}
349 - onClick={() => this.setToggleInstrument(Mode.keyboardist)}
350 - style={buttonStyle} />
351 - </Col>
352 - </Row>
353 - <Row>
354 - <Col style={{display: this.state.isYoutubePlayerReady ? 'block' : 'none', pointerEvents: 'none'}}>
355 - <YouTube
356 - videoId={this.state.audioFile?.youtube_video_id}
357 - opts={opts}
358 - onReady={this._onReady.bind(this)}
359 - onStateChange={this._onStateChange.bind(this)}
360 - />
361 - </Col>
362 - </Row>
363 - </IconContext.Provider>
364 - )
365 - } else {
366 - return (
367 - <Row>
368 - <Header/>
369 - <Col className="mb-3 mt-3">
370 - <p>
371 - <FormattedMessage id="player.loading"
372 - defaultMessage="🤖 I'm doing my business..."
373 - description="Loading message"/>
374 - </p>
375 - <Spinner animation='grow' variant="danger"></Spinner>
376 - </Col>
377 - </Row>
378 - )
379 - }
380 - }
381 -
382 - _onReady(event: any) {
383 - // console.log('YouTube ready: ', event)
384 - this.youTubeEventTarget = event.target
385 - this.youTubeEventTarget?.playVideo()
386 - this.updateYouTubePlayerStatusIntervalId = setInterval(() => {
387 - if (!this.state.isYoutubePlayerReady) {
388 - this._updateYouTubePlayerStatusIfNeeded()
389 - }
390 - }, 2000)
391 - }
392 -
393 - _onStateChange(event: any) {
394 - // console.log('State changed: ', event)
395 - // console.log('getCurrentTime: ', event.target.getCurrentTime())
396 - // console.log('getPlayerState: ', event.target.getPlayerState())
397 - if (!this.youTubeEventTarget) return
398 -
399 - if (this.youTubeEventTarget.getPlayerState() === YouTubePlayerState.ended) {
400 - this.setState({ isPlaying: false })
401 - }
402 - }
403 -
404 - _updateYouTubePlayerStatusIfNeeded() {
405 -
406 - if (this.state.isYoutubePlayerReady) return
407 - if (!this.youTubeEventTarget) return
408 -
409 - // Let's say 5 seconds buffer is enough.
410 - if (this.youTubeEventTarget?.getCurrentTime() > 5) {
411 - this.setState({ isYoutubePlayerReady: true })
412 - this.youTubeEventTarget?.pauseVideo()
413 -
414 - if (this.updateYouTubePlayerStatusIntervalId)
415 - clearInterval(this.updateYouTubePlayerStatusIntervalId)
416 - }
417 - }
418 -
419 -}
420 -
421 -const Header = () => (
422 - <Row className="mb-3 mt-3">
423 - <Col>
424 - <h1>SplitFire AI</h1>
425 - <p>
426 - <FormattedMessage id="splitfire.whatIs"
427 - defaultMessage="I'm an artificial intelligence software who will split your favorite music to its separate components."
428 - description="Explanation message"/>
429 - </p>
430 - <a href="https://testflight.apple.com/join/4cb0rDIo" target={`__blank`}>
431 - <img src='https://splitfire.ai/packs/media/images/Pre-order_on_the_App_Store_Badge_US-UK_RGB_blk_121217-5fb138d3f649c68f7b3250e3887dbef5.svg' />
432 - </a>
433 - </Col>
434 - </Row>
435 -)
436 -
437 -export default AudioPlayer;
\ No newline at end of file
src/components/Contact.tsx deleted
-65
@@ -1,65 +0,0 @@
1 -import React, { Component } from 'react';
2 -import { FormattedMessage } from 'react-intl';
3 -import Firebase from './Firebase';
4 -import app from 'firebase/app';
5 -import { InitialData, Path } from '../shared/routes';
6 -
7 -type ContactProps = {
8 - firebase?: Firebase
9 - initialData?: InitialData
10 -}
11 -
12 -type ContactState = {
13 - content: string
14 -}
15 -
16 -class Contact extends Component<ContactProps, ContactState> {
17 -
18 - contactRef: app.database.Reference | undefined;
19 -
20 - constructor(props: ContactProps) {
21 - super(props);
22 - this.contactRef = this.props.firebase?.contactRef();
23 - if (props.initialData?.path === Path.CONTACT) {
24 - this.state = {
25 - content: props.initialData?.data.content
26 - }
27 - } else {
28 - this.state = {
29 - content: "Loading ..."
30 - }
31 - }
32 - }
33 -
34 - componentDidMount() {
35 - if (this.props.initialData?.path === Path.CONTACT) {
36 - return;
37 - }
38 -
39 - this.contactRef?.on('value', (snapshot) => {
40 - let items = snapshot?.val();
41 - this.setState({
42 - content: items.content
43 - });
44 - });
45 - }
46 -
47 - componentWillUnmount() {
48 - this.contactRef?.off();
49 - }
50 -
51 - render() {
52 - return (
53 - <div>
54 - <h1>
55 - <FormattedMessage id="contact.title"
56 - defaultMessage="Contact"
57 - description="Contact page title"/>
58 - </h1>
59 - <p style={{lineHeight: "150%"}}>{this.state.content}</p>
60 - </div>
61 - );
62 - }
63 -}
64 -
65 -export default Contact;
src/components/Cv.tsx deleted
-65
@@ -1,65 +0,0 @@
1 -import React, { Component } from 'react';
2 -import { FormattedMessage } from 'react-intl';
3 -import Firebase from './Firebase';
4 -import app from 'firebase/app';
5 -import { InitialData, Path } from '../shared/routes';
6 -
7 -type CvProps = {
8 - firebase?: Firebase
9 - initialData?: InitialData
10 -}
11 -
12 -type CvState = {
13 - content: string
14 -}
15 -
16 -class Cv extends Component<CvProps, CvState> {
17 -
18 - cvRef: app.database.Reference | undefined;
19 -
20 - constructor(props: CvProps) {
21 - super(props);
22 - this.cvRef = this.props.firebase?.cvRef();
23 - if (props.initialData?.path === Path.CV) {
24 - this.state = {
25 - content: props.initialData?.data.content
26 - }
27 - } else {
28 - this.state = {
29 - content: "Loading ..."
30 - }
31 - }
32 - }
33 -
34 - componentDidMount() {
35 - if (this.props.initialData?.path === Path.CV) {
36 - return;
37 - }
38 -
39 - this.cvRef?.on('value', (snapshot) => {
40 - let items = snapshot?.val();
41 - this.setState({
42 - content: items.content
43 - });
44 - });
45 - }
46 -
47 - componentWillUnmount() {
48 - this.cvRef?.off();
49 - }
50 -
51 - render() {
52 - return (
53 - <div>
54 - <h1>
55 - <FormattedMessage id="cv.title"
56 - defaultMessage="CV"
57 - description="CV page title"/>
58 - </h1>
59 - <p style={{lineHeight: "150%"}}>{this.state.content}</p>
60 - </div>
61 - );
62 - }
63 -}
64 -
65 -export default Cv;
src/components/Firebase/config.ts deleted
-14
@@ -1,14 +0,0 @@
1 -import app from 'firebase/app';
2 -import 'firebase/database';
3 -
4 -// Initialize Firebase
5 -const config = {
6 - apiKey: "AIzaSyBDMgSgpCGpPQVs2ziPm5igl2nL8I6jdeQ",
7 - authDomain: "blazing-fire-5965.firebaseapp.com",
8 - databaseURL: "https://blazing-fire-5965.firebaseio.com",
9 - projectId: "blazing-fire-5965",
10 - storageBucket: "blazing-fire-5965.appspot.com",
11 - messagingSenderId: "1043865982157"
12 - };
13 -
14 -export default !app.apps.length ? app.initializeApp(config) : app;
\ No newline at end of file
src/components/Firebase/context.ts deleted
-6
@@ -1,6 +0,0 @@
1 -import React from 'react';
2 -import Firebase from './firebase';
3 -
4 -const FirebaseContext = React.createContext<Firebase | undefined>(undefined);
5 -
6 -export default FirebaseContext;
\ No newline at end of file
src/components/Firebase/firebase.ts deleted
-42
@@ -1,42 +0,0 @@
1 -import app from 'firebase/app';
2 -import 'firebase/database';
3 -
4 -class Firebase {
5 -
6 - db!: app.database.Database;
7 - language!: string;
8 -
9 - public onLanguageChangedCallback: (() => void) | null = null
10 - private static instance: Firebase
11 -
12 - constructor(language: string, db: app.database.Database) {
13 -
14 - if (Firebase.instance)
15 - return Firebase.instance
16 -
17 - this.db = db;
18 - this.language = language;
19 - Firebase.instance = this;
20 - }
21 -
22 - setLanguage(language: string) {
23 - this.language = language
24 -
25 - if (this.onLanguageChangedCallback)
26 - this.onLanguageChangedCallback()
27 - }
28 -
29 - rootRef(): app.database.Reference {
30 - return this.db.ref('setoelkahfi-web-id').child(this.language);
31 - }
32 -
33 - whoAmIRef(): app.database.Reference {
34 - return this.rootRef().child('i am');
35 - }
36 -
37 - aboutRef = () => this.rootRef().child('about');
38 - cvRef = () => this.rootRef().child('cv');
39 - contactRef = () => this.rootRef().child('contact');
40 -}
41 -
42 -export default Firebase;
src/components/Firebase/index.ts deleted
-6
@@ -1,6 +0,0 @@
1 -import FirebaseContext from './context';
2 -import Firebase from './firebase';
3 -
4 -export default Firebase;
5 -
6 -export { FirebaseContext };
\ No newline at end of file
src/components/FooterLinks.tsx deleted
-59
@@ -1,59 +0,0 @@
1 -import React from 'react';
2 -import { Link } from 'react-router-dom';
3 -import { FormattedMessage } from 'react-intl';
4 -
5 -const linkStyle = {
6 - display: 'inline-block',
7 - margin: 4,
8 - fontSize: '10pt',
9 - textDecoration: 'none',
10 - outline: 'none',
11 - color: '#ddd',
12 - background: '#222',
13 - borderTop: '1px solid #333',
14 - padding: '5px 8px',
15 - MozBorderRadius: '3px',
16 - WebkitBorderRadius: '3px',
17 - borderRadius: '3px',
18 - MozBoxShadow: '0px 1px 1px #000',
19 - WebkitBoxShadow: '0px 1px 1px #000',
20 - boxShadow: '0px 1px 1px #000'
21 -};
22 -
23 -const FooterLinks = () => (
24 - <footer className="text-muted py-5">
25 - <div className="container">
26 - <p className="float-end mb-1">
27 - <button style={linkStyle}>
28 - <FormattedMessage id="footer.toTop"
29 - defaultMessage="Back to top"
30 - description="To top link" />
31 - </button>
32 - </p>
33 - <p className="mb-0">
34 - <Link to='/' style={linkStyle}>
35 - <FormattedMessage id="header.home"
36 - defaultMessage="Home"
37 - description="Home link" />
38 - </Link>
39 - <Link to='/about' style={linkStyle}>
40 - <FormattedMessage id="header.about"
41 - defaultMessage="About"
42 - description="About link" />
43 - </Link>
44 - <Link to='/cv' style={linkStyle}>
45 - <FormattedMessage id="header.cv"
46 - defaultMessage="CV"
47 - description="CV link" />
48 - </Link>
49 - <Link to='/contact' style={linkStyle}>
50 - <FormattedMessage id="header.contact"
51 - defaultMessage="Contact"
52 - description="Contact link" />
53 - </Link>
54 - </p>
55 - </div>
56 - </footer>
57 -);
58 -
59 -export default FooterLinks;
\ No newline at end of file
src/components/Header.tsx deleted
-85
@@ -1,85 +0,0 @@
1 -import React, { Component } from 'react';
2 -import { FormattedMessage } from 'react-intl';
3 -import LanguageDropdown from './LanguageDropdown';
4 -
5 -type HeaderProps = {
6 - onChangeLanguage: (language: string) => void
7 - selectedLanguage: string
8 -}
9 -
10 -type HeaderState = {
11 - expand: boolean
12 -}
13 -
14 -class Header extends Component<HeaderProps, HeaderState> {
15 -
16 - constructor(props: HeaderProps | Readonly<HeaderProps>) {
17 - super(props);
18 - this.state = { expand: false };
19 - }
20 -
21 - toggleExpand() {
22 - this.setState({ expand: !this.state.expand })
23 - }
24 -
25 - render() {
26 - return (
27 - <header>
28 - <div className={`collapse bg-dark ${this.state.expand ? 'show' : ''}`} id="navbarHeader">
29 - <div className="container">
30 - <div className="row">
31 - <div className="col-sm-6 col-md-6 py-4">
32 - <h4 className="text-white">
33 - <FormattedMessage id="about.title"
34 - defaultMessage="About"
35 - description="About page title" /></h4>
36 - <p className="text-muted">We buy things we don't need, with money we don't have, to impress people we don't like.</p>
37 - <p className="text-muted"><a href="https://hetzner.cloud/?ref=WwAE3O6U53DF" target={`__blank`} >Get your proper VM</a>.</p>
38 - </div>
39 - <div className="col-sm-2 offset-md-1 py-4">
40 - <h4 className="text-white">
41 - <FormattedMessage id="header.fun"
42 - defaultMessage="Fun projects"
43 - description="Fun projects title"/></h4>
44 - <ul className="list-unstyled">
45 - <li><a className="text-white" href="https://musik88.com/" title="Musik88" target="_blank" rel="noopener noreferrer">Musik88</a></li>
46 - <li><a className="text-white" href="https://splitfire.ai/" title="SplitFire AI" target="_blank" rel="noopener noreferrer">SplitFire AI</a></li>
47 - <li><a className="text-white" href="https://smbpndk.com/" title="SumbuPendek" target="_blank" rel="noopener noreferrer">SumbuPendek</a></li>
48 - <li><a className="text-white" href="https://scandinasia.eu/" title="SumbuPendek" target="_blank" rel="noopener noreferrer">United States of Scandinasia</a></li>
49 - </ul>
50 - </div>
51 - <div className="col-sm-2 py-4">
52 - <h4 className="text-white">
53 - <FormattedMessage id="contact.title"
54 - defaultMessage="Contact"
55 - description="Contact page title"/></h4>
56 - <ul className="list-unstyled">
57 - <li><a className="text-white" href="https://stackoverflow.com/users/1137814/seto" title="StackOverflow" target="_blank" rel="noopener noreferrer">StackOverflow</a></li>
58 - <li><a className="text-white" href="https://github.com/setoelkahfi" title="GitHub" target="_blank" rel="noopener noreferrer">GitHub</a></li>
59 - <li><a className="text-white" href="https://medium.com/@setoelkahfi" title="Medium" target="_blank" rel="noopener noreferrer">Medium</a></li>
60 - <li><a className="text-white" href="https://id.linkedin.com/in/setoelkahfi" title="LinkedIn" target="_blank" rel="noopener noreferrer">LinkedIn</a></li>
61 - </ul>
62 - </div>
63 - </div>
64 - </div>
65 - </div>
66 - <div className="navbar navbar-dark bg-dark shadow-sm">
67 - <div className="container">
68 - <a href={`https://musik88.com/@seto`} target={`__blank`} className="navbar-brand d-flex align-items-center">
69 - <strong>@seto</strong>
70 - </a>
71 - <LanguageDropdown
72 - onChangeLanguage={this.props.onChangeLanguage}
73 - selectedLanguage={this.props.selectedLanguage}
74 - />
75 - <button className="navbar-toggler" onClick={this.toggleExpand.bind(this)} type="button" data-bs-toggle="collapse" data-bs-target="#navbarHeader" aria-controls="navbarHeader" aria-expanded={this.state.expand} aria-label="Toggle navigation">
76 - <span className="navbar-toggler-icon"></span>
77 - </button>
78 - </div>
79 - </div>
80 - </header>
81 - )
82 - }
83 -}
84 -
85 -export default Header;
src/components/Home.tsx deleted
-193
@@ -1,193 +0,0 @@
1 -import React, { Component, CSSProperties } from 'react';
2 -import ReactRotatingText from 'react-rotating-text';
3 -import { FormattedMessage } from 'react-intl';
4 -import Firebase from './Firebase';
5 -import app from 'firebase/app';
6 -import axios from 'axios';
7 -import { Button, Carousel, Spinner } from 'react-bootstrap';
8 -import { InitialData, Path } from '../shared/routes';
9 -
10 -const pStyle: CSSProperties = {
11 - lineHeight: '32pt',
12 - marginTop: '10pt',
13 - fontSize: '20pt',
14 - textDecoration: 'none',
15 - outline: 'none',
16 -};
17 -const wordStyle = {
18 - color: '#FECD01',
19 - background: '#006BA8',
20 - padding: '5px 8px',
21 - MozBoxShadow: '0px 1px 1px #000',
22 - WebkitBoxShadow: '0px 1px 1px #000',
23 - boxShadow: '0px 1px 1px #000'
24 -};
25 -
26 -const initialValues: any = {
27 - "en": ["an Android developer", "an iOS developer"],
28 - "id": ["pengembang aplikasi Android", "pengembang aplikasi iOS"],
29 - "sv": ["är Android-utvecklare", "är iOS-utvecklare"],
30 - "es": ["an Android developer", "an iOS developer"],
31 - "de": ["an Android developer", "an iOS developer"],
32 - "fr": ["an Android developer", "an iOS developer"],
33 -};
34 -
35 -
36 -type HomeProps = {
37 - firebase?: Firebase
38 - initialData?: InitialData
39 -}
40 -
41 -type HomeState = {
42 - pStyle: any,
43 - wordStyle: any,
44 - alterEgos: any,
45 - files: any[]
46 -}
47 -
48 -class Home extends Component<HomeProps, HomeState> {
49 -
50 - whoAmIRef: app.database.Reference | undefined
51 -
52 - onLanguageChangedCallback = () => {
53 - // console.log("onLanguageChangedCallback")
54 - }
55 -
56 - constructor(props: HomeProps) {
57 - super(props);
58 - if (props.initialData?.path === Path.HOME) {
59 - console.log('SERVER#HOME', this.props.initialData);
60 - this.state = {
61 - pStyle: pStyle,
62 - wordStyle: wordStyle,
63 - alterEgos: this.shuffle(props.initialData.data['whoAmI']),
64 - files: props.initialData.data['carousel']
65 - }
66 - } else {
67 - console.log('CLIENT#HOME');
68 - this.whoAmIRef = this.props.firebase?.whoAmIRef();
69 - this.state = {
70 - pStyle: pStyle,
71 - wordStyle: wordStyle,
72 - alterEgos: initialValues[this.props.firebase?.language ?? 'en'],
73 - files: []
74 - }
75 -
76 - if (this.props.firebase)
77 - this.props.firebase.onLanguageChangedCallback = this.onLanguageChangedCallback.bind(this)
78 - }
79 - }
80 -
81 - componentDidMount() {
82 - if (this.props.initialData?.path === Path.HOME)
83 - return;
84 -
85 - this._updateTranslationIfNeeded()
86 - axios.get(`/carousel`)
87 - .then(res => {
88 - console.log(res);
89 - const files = res.data.audio_files;
90 - this.setState({ files });
91 - })
92 - .catch(error => {
93 - console.log(error);
94 - });
95 - }
96 -
97 - componentWillUnmount() {
98 - this.whoAmIRef?.off();
99 - if (this.props.firebase)
100 - this.props.firebase.onLanguageChangedCallback = null
101 - }
102 -
103 - _updateTranslationIfNeeded() {
104 - this.whoAmIRef?.on('value', (snapshot) => {
105 - let items = snapshot?.val();
106 - let whoAmI = [];
107 - for (let item in items) {
108 - whoAmI.push(items[item].content);
109 - }
110 - this.setState({
111 - alterEgos: this.shuffle(whoAmI)
112 - });
113 - })
114 - }
115 -
116 - shuffle(array: any[]) {
117 - var currentIndex = array.length, temporaryValue, randomIndex;
118 -
119 - // While there remain elements to shuffle...
120 - while (0 !== currentIndex) {
121 -
122 - // Pick a remaining element...
123 - randomIndex = Math.floor(Math.random() * currentIndex);
124 - currentIndex -= 1;
125 -
126 - // And swap it with the current element.
127 - temporaryValue = array[currentIndex];
128 - array[currentIndex] = array[randomIndex];
129 - array[randomIndex] = temporaryValue;
130 - }
131 -
132 - return array;
133 - }
134 -
135 - render() {
136 - const { files } = this.state
137 -
138 - let caraoselContent: any = <div>
139 - <p>
140 - <FormattedMessage id="home.loading"
141 - defaultMessage="Loading SplitFire AI..."
142 - description="Loading message"/>
143 - </p>
144 - <Spinner animation='grow' variant="danger"></Spinner>
145 - </div>
146 -
147 - if (files.length > 0) {
148 - caraoselContent = <div>
149 - <h2>SplitFire AI</h2>
150 - <p>
151 - <FormattedMessage id="splitfire.whatIs"
152 - defaultMessage="I'm an artificial intelligence software that can split your favorite music to its separate components."
153 - description="Explanation message"/>
154 - </p>
155 - <Carousel>
156 - {files.slice(0, 5).map(item => (
157 - <Carousel.Item key={item.id} style={{ padding: '20px' }}>
158 - <img
159 - className="d-block w-100"
160 - src={item.image_url}
161 - alt="First slide"
162 - />
163 - <Carousel.Caption>
164 - <a href={`https://splitfire.ai/split/${item.id}`} target={`__blank`}>
165 - <Button variant="dark">{item.name}</Button>
166 - </a>
167 - </Carousel.Caption>
168 - </Carousel.Item>
169 - ))}
170 - </Carousel>
171 - </div>
172 - }
173 -
174 - return (
175 - <div>
176 - <h1>
177 - <FormattedMessage id="home.title"
178 - defaultMessage="Hello, my name is {name}"
179 - description="Welcome message"
180 - values={{ name: 'Seto Elkahfi' }} />
181 - </h1>
182 - <p style={this.state.pStyle}>
183 - <FormattedMessage id="home.iam"
184 - defaultMessage="I'm "
185 - description="My self description" />
186 - <ReactRotatingText style={this.state.wordStyle} items={this.state.alterEgos} /></p>
187 - {caraoselContent}
188 - </div>
189 - );
190 - }
191 -}
192 -
193 -export default Home;
src/components/LanguageDropdown.tsx deleted
-64
@@ -1,64 +0,0 @@
1 -import React, { Component } from 'react'
2 -import { supportedLangs } from '../shared/i18n'
3 -
4 -const listStyle = {
5 - listStyle: 'none'
6 -}
7 -
8 -type OptionProps = {
9 - value: string
10 - name: string
11 -}
12 -
13 -class LanguageOption extends Component<OptionProps> {
14 -
15 - render() {
16 - return (
17 - <option value={this.props.value}>{this.props.name}</option>
18 - )
19 - }
20 -}
21 -
22 -type LanguageDropdownProps = {
23 - onChangeLanguage: (language: string) => void
24 - selectedLanguage: string
25 -}
26 -
27 -type LanguageDropdownState = {}
28 -
29 -class LanguageDropdown extends Component<LanguageDropdownProps, LanguageDropdownState> {
30 -
31 - getLanguageList(): OptionProps[] {
32 - const languageList: OptionProps[] = supportedLangs.map((lang) => {
33 - return {
34 - value: lang.code,
35 - name: lang.name
36 - }
37 - })
38 -
39 - return languageList
40 - }
41 -
42 - render() {
43 -
44 - var languageList = [];
45 -
46 - for (let language of this.getLanguageList()) {
47 - languageList.push(<LanguageOption name={language.name} value={language.value} key={language.value}/>);
48 - }
49 -
50 - return (
51 - <div>
52 - <select
53 - style={listStyle}
54 - onChange={ e => this.props.onChangeLanguage(e.currentTarget.value) }
55 - value={this.props.selectedLanguage}
56 - >
57 - {languageList}
58 - </select>
59 - </div>
60 - )
61 - }
62 -}
63 -
64 -export default LanguageDropdown;
\ No newline at end of file
src/components/Main.tsx deleted
-47
@@ -1,47 +0,0 @@
1 -import React from 'react';
2 -import { Switch, Route } from 'react-router-dom';
3 -import routes from '../shared/routes';
4 -import { AppProps } from './App';
5 -
6 -const mainStyle = {
7 - marginTop: 20,
8 - marginBottom: 20,
9 - marginLeft: 5,
10 - marginRight: 5,
11 - color: '#fff',
12 - font: '11pt "Helvetica Neue", "Helvetica", Arial, sans-serif',
13 -};
14 -
15 -const contentStyle = {
16 - borderRadius: '20px!important',
17 - backgroundColor: 'rgba(52, 52, 52, 0.6)'
18 -}
19 -
20 -const Main = (props: AppProps) => {
21 -
22 - // console.log('MAIN', props.initialData);
23 -
24 - return (
25 - <main style={mainStyle}>
26 - <section className="py-5 text-center container">
27 - <div className="row py-lg-5">
28 - <div className="col-lg-6 col-md-8 mx-auto" style={contentStyle}>
29 - <Switch>
30 - {
31 - routes.map((route, index) => (
32 - <Route key={index} exact={route.exact} path={route.path} >
33 - <route.component
34 - firebase={props.firebase}
35 - initialData={props.initialData}
36 - />
37 - </Route>
38 - ))
39 - }
40 - </Switch>
41 - </div>
42 - </div>
43 - </section>
44 - </main>
45 -)};
46 -
47 -export default Main;
\ No newline at end of file
src/components/db.ts deleted
-24
@@ -1,24 +0,0 @@
1 -import Dexie, { Table } from 'dexie';
2 -import { Mode } from './AudioPlayer';
3 -
4 -export interface AudioFiles {
5 - id?: number;
6 - audioFileId: string,
7 - type: Mode,
8 - file: Blob
9 -}
10 -
11 -export class MySubClassedDexie extends Dexie {
12 - // 'friends' is added by dexie when declaring the stores()
13 - // We just tell the typing system this is the case
14 - audioFiles!: Table<AudioFiles>;
15 -
16 - constructor() {
17 - super('splitfireDB');
18 - this.version(2).stores({
19 - audioFiles: '++id, [audioFileId+type]' // Primary key and indexed props
20 - });
21 - }
22 -}
23 -
24 -export const db = new MySubClassedDexie();
\ No newline at end of file
src/index.tsx deleted
-38
@@ -1,38 +0,0 @@
1 -import React from 'react';
2 -import { hydrate } from 'react-dom';
3 -import App from './components/App';
4 -//import * as serviceWorker from './serviceWorker';
5 -import 'bootstrap/dist/css/bootstrap.css';
6 -import axios from 'axios';
7 -import { BrowserRouter } from 'react-router-dom';
8 -import Firebase from './components/Firebase';
9 -import firebaseInstance from './components/Firebase/config';
10 -import { InitialData } from './shared/routes';
11 -import { determineUserLang } from './shared/i18n';
12 -
13 -axios.defaults.baseURL = 'https://api.musik88.com/api/v1/';
14 -
15 -declare global {
16 - interface Window { __DATA__?: InitialData; }
17 -}
18 -
19 -console.log('window.__DATA__', window.__DATA__);
20 -const languages = navigator.languages || [];
21 -console.log('CLIENT#languages', languages);
22 -const language = determineUserLang([...languages]);
23 -console.log('CLIENT#lang', language);
24 -
25 -hydrate(
26 - <BrowserRouter>
27 - <App
28 - firebase={new Firebase(language, firebaseInstance.database())}
29 - initialData={window.__DATA__}
30 - />
31 - </BrowserRouter>,
32 - document.getElementById('root')
33 -);
34 -
35 -// If you want your app to work offline and load faster, you can change
36 -// unregister() to register() below. Note this comes with some pitfalls.
37 -// Learn more about service workers: http://bit.ly/CRA-PWA
38 -//serviceWorker.unregister();
src/react-app-env.d.ts deleted
-1
@@ -1 +0,0 @@
1 -/// <reference types="react-scripts" />
src/serviceWorker.js deleted
-135
@@ -1,135 +0,0 @@
1 -// This optional code is used to register a service worker.
2 -// register() is not called by default.
3 -
4 -// This lets the app load faster on subsequent visits in production, and gives
5 -// it offline capabilities. However, it also means that developers (and users)
6 -// will only see deployed updates on subsequent visits to a page, after all the
7 -// existing tabs open on the page have been closed, since previously cached
8 -// resources are updated in the background.
9 -
10 -// To learn more about the benefits of this model and instructions on how to
11 -// opt-in, read http://bit.ly/CRA-PWA
12 -
13 -const isLocalhost = Boolean(
14 - window.location.hostname === 'localhost' ||
15 - // [::1] is the IPv6 localhost address.
16 - window.location.hostname === '[::1]' ||
17 - // 127.0.0.1/8 is considered localhost for IPv4.
18 - window.location.hostname.match(
19 - /^127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/
20 - )
21 -);
22 -
23 -export function register(config) {
24 - if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {
25 - // The URL constructor is available in all browsers that support SW.
26 - const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);
27 - if (publicUrl.origin !== window.location.origin) {
28 - // Our service worker won't work if PUBLIC_URL is on a different origin
29 - // from what our page is served on. This might happen if a CDN is used to
30 - // serve assets; see https://github.com/facebook/create-react-app/issues/2374
31 - return;
32 - }
33 -
34 - window.addEventListener('load', () => {
35 - const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;
36 -
37 - if (isLocalhost) {
38 - // This is running on localhost. Let's check if a service worker still exists or not.
39 - checkValidServiceWorker(swUrl, config);
40 -
41 - // Add some additional logging to localhost, pointing developers to the
42 - // service worker/PWA documentation.
43 - navigator.serviceWorker.ready.then(() => {
44 - console.log(
45 - 'This web app is being served cache-first by a service ' +
46 - 'worker. To learn more, visit http://bit.ly/CRA-PWA'
47 - );
48 - });
49 - } else {
50 - // Is not localhost. Just register service worker
51 - registerValidSW(swUrl, config);
52 - }
53 - });
54 - }
55 -}
56 -
57 -function registerValidSW(swUrl, config) {
58 - navigator.serviceWorker
59 - .register(swUrl)
60 - .then(registration => {
61 - registration.onupdatefound = () => {
62 - const installingWorker = registration.installing;
63 - if (installingWorker == null) {
64 - return;
65 - }
66 - installingWorker.onstatechange = () => {
67 - if (installingWorker.state === 'installed') {
68 - if (navigator.serviceWorker.controller) {
69 - // At this point, the updated precached content has been fetched,
70 - // but the previous service worker will still serve the older
71 - // content until all client tabs are closed.
72 - console.log(
73 - 'New content is available and will be used when all ' +
74 - 'tabs for this page are closed. See http://bit.ly/CRA-PWA.'
75 - );
76 -
77 - // Execute callback
78 - if (config && config.onUpdate) {
79 - config.onUpdate(registration);
80 - }
81 - } else {
82 - // At this point, everything has been precached.
83 - // It's the perfect time to display a
84 - // "Content is cached for offline use." message.
85 - console.log('Content is cached for offline use.');
86 -
87 - // Execute callback
88 - if (config && config.onSuccess) {
89 - config.onSuccess(registration);
90 - }
91 - }
92 - }
93 - };
94 - };
95 - })
96 - .catch(error => {
97 - console.error('Error during service worker registration:', error);
98 - });
99 -}
100 -
101 -function checkValidServiceWorker(swUrl, config) {
102 - // Check if the service worker can be found. If it can't reload the page.
103 - fetch(swUrl)
104 - .then(response => {
105 - // Ensure service worker exists, and that we really are getting a JS file.
106 - const contentType = response.headers.get('content-type');
107 - if (
108 - response.status === 404 ||
109 - (contentType != null && contentType.indexOf('javascript') === -1)
110 - ) {
111 - // No service worker found. Probably a different app. Reload the page.
112 - navigator.serviceWorker.ready.then(registration => {
113 - registration.unregister().then(() => {
114 - window.location.reload();
115 - });
116 - });
117 - } else {
118 - // Service worker found. Proceed as normal.
119 - registerValidSW(swUrl, config);
120 - }
121 - })
122 - .catch(() => {
123 - console.log(
124 - 'No internet connection found. App is running in offline mode.'
125 - );
126 - });
127 -}
128 -
129 -export function unregister() {
130 - if ('serviceWorker' in navigator) {
131 - navigator.serviceWorker.ready.then(registration => {
132 - registration.unregister();
133 - });
134 - }
135 -}
src/shared/api.ts deleted
-59
@@ -1,59 +0,0 @@
1 -import axios from "axios";
2 -import Firebase from "../components/Firebase";
3 -import { Path } from "./routes";
4 -
5 -axios.defaults.baseURL = 'https://api.musik88.com/api/v1/';
6 -
7 -export const getHome = (path: Path, firebase: Firebase) => {
8 - return Promise.all([
9 - firebase.whoAmIRef().once('value'),
10 - axios.get(`/carousel`),
11 - ]).then((values) => {
12 - const whoAmI = values[0].val();
13 - const files = values[1].data.audio_files;
14 - const obj = {
15 - path: path,
16 - data: {
17 - whoAmI: whoAmI,
18 - carousel: files
19 - }
20 - };
21 - return obj;
22 - });
23 -}
24 -
25 -export const getAbout = (path: Path, firebase: Firebase) => {
26 - return firebase
27 - .aboutRef()
28 - .once('value')
29 - .then((snapshot) => {
30 - return {
31 - path: path,
32 - data: snapshot.val()
33 - }
34 - });
35 -}
36 -
37 -export const getContact = (path: Path, firebase: Firebase) => {
38 - return firebase
39 - .contactRef()
40 - .once('value')
41 - .then((snapshot) => {
42 - return {
43 - path: path,
44 - data: snapshot.val()
45 - }
46 - });
47 -}
48 -
49 -export const getCv = (path: Path, firebase: Firebase) => {
50 - return firebase
51 - .cvRef()
52 - .once('value')
53 - .then((snapshot) => {
54 - return {
55 - path: path,
56 - data: snapshot.val()
57 - }
58 - });
59 -}
\ No newline at end of file
src/shared/i18n.ts deleted
-44
@@ -1,44 +0,0 @@
1 -export const defaultLang = "en";
2 -
3 -interface Lang {
4 - code: string;
5 - name: string;
6 -}
7 -
8 -export const supportedLangs: Lang[] = [
9 - { code: "en", name: "🇺🇸 English" },
10 - { code: "id", name: "🇮🇩 Indonesian" },
11 - { code: "se", name: "🇸🇪 Swedish" },
12 - { code: "de", name: "🇩🇪 German" },
13 - { code: "fr", name: "🇫🇷 French" },
14 - { code: "zh", name: "🇨🇳 Chinese" },
15 - { code: "es", name: "🇪🇸 Spanish" },
16 - { code: "ja", name: "🇯🇵 Japanese" },
17 -];
18 -
19 -export function determineUserLang(acceptedLangs: string[]) {
20 -
21 - const acceptedLangCodes = acceptedLangs.map(stripCountry);
22 -
23 - const supportedLangCodes = Object.keys(supportedLangs);
24 -
25 - const matchingLangCode = acceptedLangCodes.find(code =>
26 -
27 - supportedLangCodes.includes(code),
28 -
29 - );
30 -
31 - return matchingLangCode || defaultLang;
32 -
33 -}
34 -
35 -function stripCountry(lang: string) {
36 - return lang
37 -
38 - .trim()
39 -
40 - .replace("_", "-")
41 -
42 - .split("-")[0];
43 -
44 -}
\ No newline at end of file
src/shared/routes.tsx deleted
-53
@@ -1,53 +0,0 @@
1 -import Home from '../components/Home';
2 -import About from '../components/About';
3 -import React from 'react';
4 -import { getAbout, getHome, getContact, getCv } from './api';
5 -import Contact from '../components/Contact';
6 -import Cv from '../components/Cv';
7 -import Firebase from '../components/Firebase';
8 -
9 -export interface Route {
10 - path: Path;
11 - component: React.ComponentType<any>;
12 - exact?: boolean;
13 - fetchInitialData: (path: Path, firebase: Firebase) => Promise<InitialData>;
14 -}
15 -
16 -export type InitialData = {
17 - data: any;
18 - path: Path;
19 -}
20 -
21 -export enum Path {
22 - HOME = '/',
23 - ABOUT = '/about',
24 - CONTACT = '/contact',
25 - CV = '/cv'
26 -}
27 -
28 -// Desc: Routes for the application
29 -const routes: Route[] = [
30 - {
31 - path: Path.HOME,
32 - component: Home,
33 - exact: true,
34 - fetchInitialData: getHome
35 - },
36 - {
37 - path: Path.ABOUT,
38 - component: About,
39 - fetchInitialData: getAbout
40 - },
41 - {
42 - path: Path.CONTACT,
43 - component: Contact,
44 - fetchInitialData: getContact
45 - },
46 - {
47 - path: Path.CV,
48 - component: Cv,
49 - fetchInitialData: getCv
50 - }
51 -];
52 -
53 -export default routes;
\ No newline at end of file
src/shared/translations/de.json deleted
-19
@@ -1,19 +0,0 @@
1 -{
2 - "header.home": "Heim",
3 - "header.about": "Etwa",
4 - "header.cv": "CV",
5 - "header.contact": "Kontakt",
6 - "header.fun": "Lustige Projekte",
7 - "home.title": "Hallo, mein Name ist {name}.",
8 - "home.iam": "Ich bin ",
9 - "about.title": "Etwa",
10 - "about.skills": "Fähigkeiten",
11 - "cv.title": "CV",
12 - "contact.title": "Kontakt",
13 - "player.instruction": "Klicken Sie auf das Instrumentensymbol, um es aus dem Song zu entfernen.",
14 - "home.loading": "SplitFire AI wird geladen...",
15 - "player.loadingYoutube": "Warten auf YouTube...",
16 - "footer.toTop": "Zurück nach oben",
17 - "splitfire.whatIs": "Ich bin eine Software für künstliche Intelligenz, die Ihre Lieblingsmusik in ihre einzelnen Komponenten aufteilt.",
18 - "player.loading": "🤖 Ich mache mein Geschäft..."
19 -}
src/shared/translations/en.json deleted
-19
@@ -1,19 +0,0 @@
1 -{
2 - "header.home": "Home",
3 - "header.about": "About",
4 - "header.cv": "CV",
5 - "header.contact": "Contact",
6 - "header.fun": "Fun projects",
7 - "home.title": "Hello, my name is {name}.",
8 - "home.iam": "I'm ",
9 - "about.title": "About",
10 - "about.skills": "Skills",
11 - "cv.title": "CV",
12 - "contact.title": "Contact",
13 - "player.instruction": "Click the instrument icon to remove it from the song.",
14 - "home.loading": "Loading SplitFire AI...",
15 - "player.loadingYoutube": "Waiting for YouTube...",
16 - "footer.toTop": "Back to top",
17 - "splitfire.whatIs": "I'm an artificial intelligence software who will split your favorite music to its separate components.",
18 - "player.loading": "🤖 I'm doing my job..."
19 -}
src/shared/translations/es.json deleted
-19
@@ -1,19 +0,0 @@
1 -{
2 - "header.home": "Casa",
3 - "header.about": "Sobre",
4 - "header.cv": "CV",
5 - "header.contact": "Contacto",
6 - "header.fun": "Proyectos divertidos",
7 - "home.title": "Hola, mi nombre es {name}.",
8 - "home.iam": "Estoy ",
9 - "about.title": "Acerca de",
10 - "about.skills": "Habilidades",
11 - "cv.title": "CV",
12 - "contact.title": "Contacto",
13 - "player.instruction": "Haz clic en el ícono del instrumento para eliminarlo de la canción.",
14 - "home.loading": "Cargando SplitFire IA...",
15 - "player.loadingYoutube": "Esperando YouTube...",
16 - "footer.toTop": "Volver al principio",
17 - "splitfire.whatIs": "Soy un software de inteligencia artificial que dividirá tu música favorita en sus componentes separados",
18 - "player.loading": "🤖 Estoy haciendo mi trabajo..."
19 -}
src/shared/translations/fr.json deleted
-19
@@ -1,19 +0,0 @@
1 -{
2 - "header.home": "Accueil",
3 - "header.about": "Sur",
4 - "header.cv": "CV",
5 - "header.contact": "Contact",
6 - "header.fun": "Projets amusants",
7 - "home.title": "Bonjour, je m'appelle {name}.",
8 - "home.iam": "Je suis ",
9 - "about.title": "Sur",
10 - "about.skills": "Compétences",
11 - "cv.title": "CV",
12 - "contact.title": "Contact",
13 - "player.instruction": "Cliquez sur l'icône de l'instrument pour le supprimer du morceau.",
14 - "home.loading": "Chargement de SplitFire AI...",
15 - "player.loadingYoutube": "En attente de YouTube...",
16 - "footer.toTop": "Retour en haut",
17 - "splitfire.whatIs": "Je suis un logiciel d'intelligence artificielle qui divisera votre musique préférée en ses composants séparés.",
18 - "player.loading": "🤖 Je fais mes affaires..."
19 -}
src/shared/translations/id.json deleted
-19
@@ -1,19 +0,0 @@
1 - {
2 - "header.home": "Beranda",
3 - "header.about": "Tentang",
4 - "header.cv": "CV",
5 - "header.contact": "Kontak",
6 - "header.fun": "Iseng-iseng berhadiah",
7 - "home.title": "Halo, nama saya {name}.",
8 - "home.iam": "Saya ",
9 - "about.title": "Tentang",
10 - "about.skills": "Keterampilan",
11 - "cv.title": "CV",
12 - "contact.title": "Kontak",
13 - "player.instruction": "Klik ikon instrumen untuk menghapusnya dari lagu.",
14 - "home.loading": "Memuat SplitFire AI...",
15 - "player.loadingYoutube": "Menunggu YouTube...",
16 - "footer.toTop": "Kembali ke atas",
17 - "splitfire.whatIs": "Saya adalah perangkat lunak kecerdasan buatan yang akan membagi musik favorit Anda ke komponen terpisah.",
18 - "player.loading": "🤖 Saya sedang melakukan pekerjaan saya..."
19 - }
src/shared/translations/ja.json deleted
-19
@@ -1,19 +0,0 @@
1 -{
2 - "header.home": "ホーム",
3 - "header.about": "約",
4 - "header.cv": "CV",
5 - "header.contact": "連絡先",
6 - "header.fun": "楽しいプロジェクト",
7 - "home.title": "こんにちは,私の名前は{name}です。",
8 - "home.iam": "私は",
9 - "about.title": "約",
10 - "about.skills": "スキル",
11 - "cv.title": "CV",
12 - "contact.title": "連絡先",
13 - "player.instruction": "楽器のアイコンをクリックして,曲から削除します。",
14 - "home.loading": "SplitFire AIを読み込んでいます...",
15 - "player.loadingYoutube": "YouTubeを待っています...",
16 - "footer.toTop": "トップに戻る",
17 - "splitfire.whatIs": "私は,お気に入りの音楽を個別のコンポーネントに分割する人工知能ソフトウェアです。",
18 - "player.loading": "🤖私は自分の仕事をしています..."
19 -}
src/shared/translations/sv.json deleted
-19
@@ -1,19 +0,0 @@
1 - {
2 - "header.home": "Hem",
3 - "header.about": "Om",
4 - "header.cv": "CV",
5 - "header.contact": "Kontakt",
6 - "header.fun": "Roliga projekt",
7 - "home.title": "Tjena, jag heter {name}.",
8 - "home.iam": "Jag ",
9 - "about.title": "Om",
10 - "about.skills": "Kompetens",
11 - "cv.title": "CV",
12 - "contact.title": "Kontakt",
13 - "player.instruction": "Klicka på instrumentikonen för att ta bort den från låten.",
14 - "home.loading": "Laddar SplitFire AI...",
15 - "player.loadingYoutube": "Väntar på YouTube...",
16 - "footer.toTop": "Tillbaka till toppen",
17 - "splitfire.whatIs": "Jag är en programvara för artificiell intelligens som delar upp din favoritmusik till dess separata komponenter.",
18 - "player.loading": "🤖 Jag gör min job..."
19 - }
\ No newline at end of file
src/shared/translations/zh.json deleted
-19
@@ -1,19 +0,0 @@
1 -{
2 - "header.home": "家",
3 - "header.about": "关于",
4 - "header.cv": "CV",
5 - "header.contact": "接触",
6 - "header.fun": "有趣的项目",
7 - "home.title": "你好我的名字是 {name}.",
8 - "home.iam": "我是",
9 - "about.title": "关于",
10 - "about.skills": "技能",
11 - "cv.title": "CV",
12 - "contact.title": "接触",
13 - "player.instruction": "点击乐器图标将其从歌曲中移除。",
14 - "home.loading": "正在加载 SplitFire AI...",
15 - "player.loadingYoutube": "正在等待 YouTube...",
16 - "footer.toTop": "回到顶部",
17 - "splitfire.whatIs": "我是一个人工智能软件,可以将你最喜欢的音乐拆分成不同的组件.",
18 - "player.loading": "🤖 我在做我的事......"
19 -}
src/style.css new
+18
@@ -0,0 +1,18 @@
1 +body {
2 + background: #000000;
3 + margin: 0;
4 + padding: 0;
5 + height: 100vh;
6 + color: white;
7 + display: flex;
8 +}
9 +
10 +div {
11 + padding-left: 20px;
12 + margin-top: -28px;
13 +}
14 +
15 +a {
16 + color: blue;
17 + text-decoration: none;
18 +}
\ No newline at end of file
tsconfig.json deleted
-34
@@ -1,34 +0,0 @@
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 - "module": "esnext",
16 - "moduleResolution": "node",
17 - "resolveJsonModule": true,
18 - "isolatedModules": true,
19 - "noEmit": true,
20 - "jsx": "react",
21 - "typeRoots": [
22 - "./types",
23 - "./node_modules/@types"
24 - ],
25 - "noFallthroughCasesInSwitch": true
26 - },
27 - "include": [
28 - "src", "server"
29 - ],
30 - "exclude": [
31 - "node_modules",
32 - "types"
33 - ]
34 -}
tsconfig.server.json deleted
-22
@@ -1,22 +0,0 @@
1 -{
2 - "include": ["server"], // compile TS files in server directory
3 - "compilerOptions": {
4 - "module": "commonjs", // classic format that Node.js understands
5 - "esModuleInterop": true, // allow imports of modules in ES format
6 - "skipLibCheck": true, // only check types we refer to from our code
7 - "forceConsistentCasingInFileNames": true, // prevents cross-OS problems
8 - "resolveJsonModule": true, // enable import of JSON files
9 - "lib": ["es6", "dom"], // use JavaScript API ES6
10 - "target": "es6", // compile to ES6
11 - "jsx": "react", // compile JSX to React.createElement statements for SSR
12 - "allowJs": true, // allow import of JS modules
13 - // enable strict type checking
14 - "strict": true,
15 - "strictNullChecks": true,
16 - "noImplicitAny": true,
17 - "typeRoots": [
18 - "./types",
19 - "./node_modules/@types"
20 - ],
21 - }
22 - }
\ No newline at end of file
types/react-intl/index.d.ts deleted
-9
@@ -1,9 +0,0 @@
1 -declare module 'react-intl';
2 -declare module 'react-intl/locale-data/se';
3 -declare module 'react-intl/locale-data/en';
4 -declare module 'react-intl/locale-data/id';
5 -declare module 'react-intl/locale-data/de';
6 -declare module 'react-intl/locale-data/fr';
7 -declare module 'react-intl/locale-data/zh';
8 -declare module 'react-intl/locale-data/es';
9 -declare module 'react-intl/locale-data/ja';
\ No newline at end of file
types/react-rotating-text/index.d.ts deleted
-1
@@ -1 +0,0 @@
1 -declare module 'react-rotating-text';
\ No newline at end of file