aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArda Serdar Pektezol <1669855+pektezol@users.noreply.github.com>2024-09-03 00:08:53 +0300
committerArda Serdar Pektezol <1669855+pektezol@users.noreply.github.com>2024-09-03 00:08:53 +0300
commita65d6d9127c3fa7f6a8ecaec5d1ffd1f47c2bc98 (patch)
treeedf8630e9d6426124dd49854af0cb703ebc5b710
parentfix: revert to static homepage (#195) (diff)
downloadlphub-a65d6d9127c3fa7f6a8ecaec5d1ffd1f47c2bc98.tar.gz
lphub-a65d6d9127c3fa7f6a8ecaec5d1ffd1f47c2bc98.tar.bz2
lphub-a65d6d9127c3fa7f6a8ecaec5d1ffd1f47c2bc98.zip
refactor: port to typescript
-rw-r--r--frontend/.gitignore42
-rw-r--r--frontend/README.md1
-rw-r--r--frontend/package-lock.json15814
-rw-r--r--frontend/package.json20
-rw-r--r--frontend/public/index.html30
-rw-r--r--frontend/public/manifest.json14
-rw-r--r--frontend/public/vite.svg1
-rw-r--r--frontend/src/App.css17
-rw-r--r--frontend/src/App.js49
-rw-r--r--frontend/src/App.tsx40
-rw-r--r--frontend/src/api/Api.tsx157
-rw-r--r--frontend/src/components/Discussions.tsx151
-rw-r--r--frontend/src/components/GameEntry.tsx49
-rw-r--r--frontend/src/components/Leaderboards.tsx105
-rw-r--r--frontend/src/components/Login.tsx1931
-rw-r--r--frontend/src/components/ModMenu.tsx324
-rw-r--r--frontend/src/components/Sidebar.tsx183
-rw-r--r--frontend/src/components/Summary.tsx169
-rw-r--r--frontend/src/components/login.js61
-rw-r--r--frontend/src/components/main.css17
-rw-r--r--frontend/src/components/main.js17
-rw-r--r--frontend/src/components/news.css29
-rw-r--r--frontend/src/components/news.js21
-rw-r--r--frontend/src/components/pages/about.css17
-rw-r--r--frontend/src/components/pages/about.js32
-rw-r--r--frontend/src/components/pages/game.js46
-rw-r--r--frontend/src/components/pages/games.js62
-rw-r--r--frontend/src/components/pages/home.css92
-rw-r--r--frontend/src/components/pages/home.js242
-rw-r--r--frontend/src/components/pages/maplist.css403
-rw-r--r--frontend/src/components/pages/maplist.js890
-rw-r--r--frontend/src/components/pages/profile.js382
-rw-r--r--frontend/src/components/pages/summary.js650
-rw-r--r--frontend/src/components/pages/summary_modview.js254
-rw-r--r--frontend/src/components/record.css15
-rw-r--r--frontend/src/components/record.js56
-rw-r--r--frontend/src/components/sidebar.js203
-rw-r--r--frontend/src/css/Games.css (renamed from frontend/src/components/pages/games.css)0
-rw-r--r--frontend/src/css/Login.css (renamed from frontend/src/components/login.css)2
-rw-r--r--frontend/src/css/Maps.css (renamed from frontend/src/components/pages/summary.css)10
-rw-r--r--frontend/src/css/ModMenu.css (renamed from frontend/src/components/pages/summary_modview.css)0
-rw-r--r--frontend/src/css/Profile.css (renamed from frontend/src/components/pages/profile.css)0
-rw-r--r--frontend/src/css/Sidebar.css (renamed from frontend/src/components/sidebar.css)0
-rw-r--r--frontend/src/images/Images.tsx44
-rw-r--r--frontend/src/images/png/1.png (renamed from frontend/src/imgs/1.png)bin2011 -> 2011 bytes
-rw-r--r--frontend/src/images/png/10.png (renamed from frontend/src/imgs/10.png)bin1601 -> 1601 bytes
-rw-r--r--frontend/src/images/png/11.png (renamed from frontend/src/imgs/11.png)bin1294 -> 1294 bytes
-rw-r--r--frontend/src/images/png/12.png (renamed from frontend/src/imgs/12.png)bin1545 -> 1545 bytes
-rw-r--r--frontend/src/images/png/13.png (renamed from frontend/src/imgs/13.png)bin1251 -> 1251 bytes
-rw-r--r--frontend/src/images/png/14.png (renamed from frontend/src/imgs/14.png)bin1363 -> 1363 bytes
-rw-r--r--frontend/src/images/png/15.png (renamed from frontend/src/imgs/15.png)bin2988 -> 2988 bytes
-rw-r--r--frontend/src/images/png/16.png (renamed from frontend/src/imgs/16.png)bin3078 -> 3078 bytes
-rw-r--r--frontend/src/images/png/17.png (renamed from frontend/src/imgs/17.png)bin4943 -> 4943 bytes
-rw-r--r--frontend/src/images/png/18.png (renamed from frontend/src/imgs/18.png)bin2434 -> 2434 bytes
-rw-r--r--frontend/src/images/png/19.png (renamed from frontend/src/imgs/19.png)bin1266 -> 1266 bytes
-rw-r--r--frontend/src/images/png/2.png (renamed from frontend/src/imgs/2.png)bin1833 -> 1833 bytes
-rw-r--r--frontend/src/images/png/3.png (renamed from frontend/src/imgs/3.png)bin1517 -> 1517 bytes
-rw-r--r--frontend/src/images/png/4.png (renamed from frontend/src/imgs/4.png)bin4517 -> 4517 bytes
-rw-r--r--frontend/src/images/png/5.png (renamed from frontend/src/imgs/5.png)bin4112 -> 4112 bytes
-rw-r--r--frontend/src/images/png/6.png (renamed from frontend/src/imgs/6.png)bin2715 -> 2715 bytes
-rw-r--r--frontend/src/images/png/7.png (renamed from frontend/src/imgs/7.png)bin1608 -> 1608 bytes
-rw-r--r--frontend/src/images/png/8.png (renamed from frontend/src/imgs/8.png)bin1584 -> 1584 bytes
-rw-r--r--frontend/src/images/png/9.png (renamed from frontend/src/imgs/9.png)bin6037 -> 6037 bytes
-rw-r--r--frontend/src/images/png/login.png (renamed from frontend/src/imgs/login.png)bin4871 -> 4871 bytes
-rw-r--r--frontend/src/images/png/logo.png (renamed from frontend/src/imgs/logo.png)bin67124 -> 67124 bytes
-rw-r--r--frontend/src/index.js8
-rw-r--r--frontend/src/index.tsx17
-rw-r--r--frontend/src/pages/Games.tsx51
-rw-r--r--frontend/src/pages/Maps.tsx91
-rw-r--r--frontend/src/pages/Profile.tsx326
-rw-r--r--frontend/src/pages/User.tsx320
-rw-r--r--frontend/src/react-app-env.d.ts2
-rw-r--r--frontend/src/types/Content.tsx18
-rw-r--r--frontend/src/types/Game.tsx37
-rw-r--r--frontend/src/types/Map.tsx103
-rw-r--r--frontend/src/types/Pagination.tsx6
-rw-r--r--frontend/src/types/Profile.tsx63
-rw-r--r--frontend/src/types/Search.tsx13
-rw-r--r--frontend/src/utils/Time.tsx42
79 files changed, 5492 insertions, 18247 deletions
diff --git a/frontend/.gitignore b/frontend/.gitignore
index 5d7b14b..4d29575 100644
--- a/frontend/.gitignore
+++ b/frontend/.gitignore
@@ -1,25 +1,23 @@
1# Logs 1# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
2logs 2
3*.log 3# dependencies
4npm-debug.log* 4/node_modules
5yarn-debug.log* 5/.pnp
6yarn-error.log* 6.pnp.js
7pnpm-debug.log* 7
8lerna-debug.log* 8# testing
9/coverage
9 10
10node_modules 11# production
11dist 12/build
12dist-ssr
13*.local
14build
15 13
16# Editor directories and files 14# misc
17.vscode/*
18!.vscode/extensions.json
19.idea
20.DS_Store 15.DS_Store
21*.suo 16.env.local
22*.ntvs* 17.env.development.local
23*.njsproj 18.env.test.local
24*.sln 19.env.production.local
25*.sw? 20
21npm-debug.log*
22yarn-debug.log*
23yarn-error.log*
diff --git a/frontend/README.md b/frontend/README.md
deleted file mode 100644
index fb1249d..0000000
--- a/frontend/README.md
+++ /dev/null
@@ -1 +0,0 @@
1# Least Portals
diff --git a/frontend/package-lock.json b/frontend/package-lock.json
index 82db942..209df7f 100644
--- a/frontend/package-lock.json
+++ b/frontend/package-lock.json
@@ -1,24 +1,28 @@
1{ 1{
2 "name": "frontend", 2 "name": "frontend2",
3 "version": "0.1.0", 3 "version": "0.1.0",
4 "lockfileVersion": 2, 4 "lockfileVersion": 3,
5 "requires": true, 5 "requires": true,
6 "packages": { 6 "packages": {
7 "": { 7 "": {
8 "name": "frontend", 8 "name": "frontend2",
9 "version": "0.1.0", 9 "version": "0.1.0",
10 "dependencies": { 10 "dependencies": {
11 "@testing-library/jest-dom": "^5.16.5", 11 "@testing-library/jest-dom": "^5.17.0",
12 "@testing-library/react": "^13.4.0", 12 "@testing-library/react": "^13.4.0",
13 "@testing-library/user-event": "^13.5.0", 13 "@testing-library/user-event": "^13.5.0",
14 "react": "^18.2.0", 14 "@types/jest": "^27.5.2",
15 "react-dom": "^18.2.0", 15 "@types/node": "^16.18.105",
16 "react-markdown": "^8.0.7", 16 "@types/react": "^18.3.3",
17 "react-scripts": "^5.0.1", 17 "@types/react-dom": "^18.3.0",
18 "axios": "^1.7.4",
19 "react": "^18.3.1",
20 "react-dom": "^18.3.1",
21 "react-markdown": "^9.0.1",
22 "react-router-dom": "^6.26.1",
23 "react-scripts": "5.0.1",
24 "typescript": "^4.9.5",
18 "web-vitals": "^2.1.4" 25 "web-vitals": "^2.1.4"
19 },
20 "devDependencies": {
21 "react-router-dom": "^6.10.0"
22 } 26 }
23 }, 27 },
24 "node_modules/@adobe/css-tools": { 28 "node_modules/@adobe/css-tools": {
@@ -38,12 +42,12 @@
38 } 42 }
39 }, 43 },
40 "node_modules/@ampproject/remapping": { 44 "node_modules/@ampproject/remapping": {
41 "version": "2.2.0", 45 "version": "2.3.0",
42 "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", 46 "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz",
43 "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", 47 "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==",
44 "dependencies": { 48 "dependencies": {
45 "@jridgewell/gen-mapping": "^0.1.0", 49 "@jridgewell/gen-mapping": "^0.3.5",
46 "@jridgewell/trace-mapping": "^0.3.9" 50 "@jridgewell/trace-mapping": "^0.3.24"
47 }, 51 },
48 "engines": { 52 "engines": {
49 "node": ">=6.0.0" 53 "node": ">=6.0.0"
@@ -62,33 +66,33 @@
62 } 66 }
63 }, 67 },
64 "node_modules/@babel/compat-data": { 68 "node_modules/@babel/compat-data": {
65 "version": "7.24.8", 69 "version": "7.25.2",
66 "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.24.8.tgz", 70 "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.25.2.tgz",
67 "integrity": "sha512-c4IM7OTg6k1Q+AJ153e2mc2QVTezTwnb4VzquwcyiEzGnW0Kedv4do/TrkU98qPeC5LNiMt/QXwIjzYXLBpyZg==", 71 "integrity": "sha512-bYcppcpKBvX4znYaPEeFau03bp89ShqNMLs+rmdptMw+heSZh9+z84d2YG+K7cYLbWwzdjtDoW/uqZmPjulClQ==",
68 "engines": { 72 "engines": {
69 "node": ">=6.9.0" 73 "node": ">=6.9.0"
70 } 74 }
71 }, 75 },
72 "node_modules/@babel/core": { 76 "node_modules/@babel/core": {
73 "version": "7.20.12", 77 "version": "7.25.2",
74 "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.20.12.tgz", 78 "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.25.2.tgz",
75 "integrity": "sha512-XsMfHovsUYHFMdrIHkZphTN/2Hzzi78R08NuHfDBehym2VsPDL6Zn/JAD/JQdnRvbSsbQc4mVaU1m6JgtTEElg==", 79 "integrity": "sha512-BBt3opiCOxUr9euZ5/ro/Xv8/V7yJ5bjYMqG/C1YAo8MIKAnumZalCN+msbci3Pigy4lIQfPUpfMM27HMGaYEA==",
76 "dependencies": { 80 "dependencies": {
77 "@ampproject/remapping": "^2.1.0", 81 "@ampproject/remapping": "^2.2.0",
78 "@babel/code-frame": "^7.18.6", 82 "@babel/code-frame": "^7.24.7",
79 "@babel/generator": "^7.20.7", 83 "@babel/generator": "^7.25.0",
80 "@babel/helper-compilation-targets": "^7.20.7", 84 "@babel/helper-compilation-targets": "^7.25.2",
81 "@babel/helper-module-transforms": "^7.20.11", 85 "@babel/helper-module-transforms": "^7.25.2",
82 "@babel/helpers": "^7.20.7", 86 "@babel/helpers": "^7.25.0",
83 "@babel/parser": "^7.20.7", 87 "@babel/parser": "^7.25.0",
84 "@babel/template": "^7.20.7", 88 "@babel/template": "^7.25.0",
85 "@babel/traverse": "^7.20.12", 89 "@babel/traverse": "^7.25.2",
86 "@babel/types": "^7.20.7", 90 "@babel/types": "^7.25.2",
87 "convert-source-map": "^1.7.0", 91 "convert-source-map": "^2.0.0",
88 "debug": "^4.1.0", 92 "debug": "^4.1.0",
89 "gensync": "^1.0.0-beta.2", 93 "gensync": "^1.0.0-beta.2",
90 "json5": "^2.2.2", 94 "json5": "^2.2.3",
91 "semver": "^6.3.0" 95 "semver": "^6.3.1"
92 }, 96 },
93 "engines": { 97 "engines": {
94 "node": ">=6.9.0" 98 "node": ">=6.9.0"
@@ -107,9 +111,9 @@
107 } 111 }
108 }, 112 },
109 "node_modules/@babel/eslint-parser": { 113 "node_modules/@babel/eslint-parser": {
110 "version": "7.24.8", 114 "version": "7.25.1",
111 "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.24.8.tgz", 115 "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.25.1.tgz",
112 "integrity": "sha512-nYAikI4XTGokU2QX7Jx+v4rxZKhKivaQaREZjuW3mrJrbdWJ5yUfohnoUULge+zEEaKjPYNxhoRgUKktjXtbwA==", 116 "integrity": "sha512-Y956ghgTT4j7rKesabkh5WeqgSFZVFwaPR0IWFm7KFHFmmJ4afbG49SmfW4S+GyRPx0Dy5jxEWA5t0rpxfElWg==",
113 "dependencies": { 117 "dependencies": {
114 "@nicolo-ribaudo/eslint-scope-5-internals": "5.1.1-v1", 118 "@nicolo-ribaudo/eslint-scope-5-internals": "5.1.1-v1",
115 "eslint-visitor-keys": "^2.1.0", 119 "eslint-visitor-keys": "^2.1.0",
@@ -140,11 +144,11 @@
140 } 144 }
141 }, 145 },
142 "node_modules/@babel/generator": { 146 "node_modules/@babel/generator": {
143 "version": "7.24.8", 147 "version": "7.25.0",
144 "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.8.tgz", 148 "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.25.0.tgz",
145 "integrity": "sha512-47DG+6F5SzOi0uEvK4wMShmn5yY0mVjVJoWTphdY2B4Rx9wHgjK7Yhtr0ru6nE+sn0v38mzrWOlah0p/YlHHOQ==", 149 "integrity": "sha512-3LEEcj3PVW8pW2R1SR1M89g/qrYk/m/mB/tLqn7dn4sbBUQyTqnlod+II2U4dqiGtUmkcnAmkMDralTFZttRiw==",
146 "dependencies": { 150 "dependencies": {
147 "@babel/types": "^7.24.8", 151 "@babel/types": "^7.25.0",
148 "@jridgewell/gen-mapping": "^0.3.5", 152 "@jridgewell/gen-mapping": "^0.3.5",
149 "@jridgewell/trace-mapping": "^0.3.25", 153 "@jridgewell/trace-mapping": "^0.3.25",
150 "jsesc": "^2.5.1" 154 "jsesc": "^2.5.1"
@@ -153,19 +157,6 @@
153 "node": ">=6.9.0" 157 "node": ">=6.9.0"
154 } 158 }
155 }, 159 },
156 "node_modules/@babel/generator/node_modules/@jridgewell/gen-mapping": {
157 "version": "0.3.5",
158 "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz",
159 "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==",
160 "dependencies": {
161 "@jridgewell/set-array": "^1.2.1",
162 "@jridgewell/sourcemap-codec": "^1.4.10",
163 "@jridgewell/trace-mapping": "^0.3.24"
164 },
165 "engines": {
166 "node": ">=6.0.0"
167 }
168 },
169 "node_modules/@babel/helper-annotate-as-pure": { 160 "node_modules/@babel/helper-annotate-as-pure": {
170 "version": "7.24.7", 161 "version": "7.24.7",
171 "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.24.7.tgz", 162 "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.24.7.tgz",
@@ -190,11 +181,11 @@
190 } 181 }
191 }, 182 },
192 "node_modules/@babel/helper-compilation-targets": { 183 "node_modules/@babel/helper-compilation-targets": {
193 "version": "7.24.8", 184 "version": "7.25.2",
194 "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.24.8.tgz", 185 "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.2.tgz",
195 "integrity": "sha512-oU+UoqCHdp+nWVDkpldqIQL/i/bvAv53tRqLG/s+cOXxe66zOYLU7ar/Xs3LdmBihrUMEUhwu6dMZwbNOYDwvw==", 186 "integrity": "sha512-U2U5LsSaZ7TAt3cfaymQ8WHh0pxvdHoEk6HVpaexxixjyEquMh0L0YNJNM6CTGKMXV1iksi0iZkGw4AcFkPaaw==",
196 "dependencies": { 187 "dependencies": {
197 "@babel/compat-data": "^7.24.8", 188 "@babel/compat-data": "^7.25.2",
198 "@babel/helper-validator-option": "^7.24.8", 189 "@babel/helper-validator-option": "^7.24.8",
199 "browserslist": "^4.23.1", 190 "browserslist": "^4.23.1",
200 "lru-cache": "^5.1.1", 191 "lru-cache": "^5.1.1",
@@ -213,18 +204,16 @@
213 } 204 }
214 }, 205 },
215 "node_modules/@babel/helper-create-class-features-plugin": { 206 "node_modules/@babel/helper-create-class-features-plugin": {
216 "version": "7.24.8", 207 "version": "7.25.0",
217 "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.24.8.tgz", 208 "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.25.0.tgz",
218 "integrity": "sha512-4f6Oqnmyp2PP3olgUMmOwC3akxSm5aBYraQ6YDdKy7NcAMkDECHWG0DEnV6M2UAkERgIBhYt8S27rURPg7SxWA==", 209 "integrity": "sha512-GYM6BxeQsETc9mnct+nIIpf63SAyzvyYN7UB/IlTyd+MBg06afFGp0mIeUqGyWgS2mxad6vqbMrHVlaL3m70sQ==",
219 "dependencies": { 210 "dependencies": {
220 "@babel/helper-annotate-as-pure": "^7.24.7", 211 "@babel/helper-annotate-as-pure": "^7.24.7",
221 "@babel/helper-environment-visitor": "^7.24.7",
222 "@babel/helper-function-name": "^7.24.7",
223 "@babel/helper-member-expression-to-functions": "^7.24.8", 212 "@babel/helper-member-expression-to-functions": "^7.24.8",
224 "@babel/helper-optimise-call-expression": "^7.24.7", 213 "@babel/helper-optimise-call-expression": "^7.24.7",
225 "@babel/helper-replace-supers": "^7.24.7", 214 "@babel/helper-replace-supers": "^7.25.0",
226 "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7", 215 "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7",
227 "@babel/helper-split-export-declaration": "^7.24.7", 216 "@babel/traverse": "^7.25.0",
228 "semver": "^6.3.1" 217 "semver": "^6.3.1"
229 }, 218 },
230 "engines": { 219 "engines": {
@@ -243,9 +232,9 @@
243 } 232 }
244 }, 233 },
245 "node_modules/@babel/helper-create-regexp-features-plugin": { 234 "node_modules/@babel/helper-create-regexp-features-plugin": {
246 "version": "7.24.7", 235 "version": "7.25.2",
247 "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.24.7.tgz", 236 "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.25.2.tgz",
248 "integrity": "sha512-03TCmXy2FtXJEZfbXDTSqq1fRJArk7lX9DOFC/47VthYcxyIOx+eXQmdo6DOQvrbpIix+KfXwvuXdFDZHxt+rA==", 237 "integrity": "sha512-+wqVGP+DFmqwFD3EH6TMTfUNeqDehV3E/dl+Sd54eaXqm17tEUNbEIn4sVivVowbvUpOtIGxdo3GoXyDH9N/9g==",
249 "dependencies": { 238 "dependencies": {
250 "@babel/helper-annotate-as-pure": "^7.24.7", 239 "@babel/helper-annotate-as-pure": "^7.24.7",
251 "regexpu-core": "^5.3.1", 240 "regexpu-core": "^5.3.1",
@@ -281,40 +270,6 @@
281 "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" 270 "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0"
282 } 271 }
283 }, 272 },
284 "node_modules/@babel/helper-environment-visitor": {
285 "version": "7.24.7",
286 "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.24.7.tgz",
287 "integrity": "sha512-DoiN84+4Gnd0ncbBOM9AZENV4a5ZiL39HYMyZJGZ/AZEykHYdJw0wW3kdcsh9/Kn+BRXHLkkklZ51ecPKmI1CQ==",
288 "dependencies": {
289 "@babel/types": "^7.24.7"
290 },
291 "engines": {
292 "node": ">=6.9.0"
293 }
294 },
295 "node_modules/@babel/helper-function-name": {
296 "version": "7.24.7",
297 "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.24.7.tgz",
298 "integrity": "sha512-FyoJTsj/PEUWu1/TYRiXTIHc8lbw+TDYkZuoE43opPS5TrI7MyONBE1oNvfguEXAD9yhQRrVBnXdXzSLQl9XnA==",
299 "dependencies": {
300 "@babel/template": "^7.24.7",
301 "@babel/types": "^7.24.7"
302 },
303 "engines": {
304 "node": ">=6.9.0"
305 }
306 },
307 "node_modules/@babel/helper-hoist-variables": {
308 "version": "7.24.7",
309 "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.24.7.tgz",
310 "integrity": "sha512-MJJwhkoGy5c4ehfoRyrJ/owKeMl19U54h27YYftT0o2teQ3FJ3nQUf/I3LlJsX4l3qlw7WRXUmiyajvHXoTubQ==",
311 "dependencies": {
312 "@babel/types": "^7.24.7"
313 },
314 "engines": {
315 "node": ">=6.9.0"
316 }
317 },
318 "node_modules/@babel/helper-member-expression-to-functions": { 273 "node_modules/@babel/helper-member-expression-to-functions": {
319 "version": "7.24.8", 274 "version": "7.24.8",
320 "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.24.8.tgz", 275 "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.24.8.tgz",
@@ -340,15 +295,14 @@
340 } 295 }
341 }, 296 },
342 "node_modules/@babel/helper-module-transforms": { 297 "node_modules/@babel/helper-module-transforms": {
343 "version": "7.24.8", 298 "version": "7.25.2",
344 "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.24.8.tgz", 299 "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.25.2.tgz",
345 "integrity": "sha512-m4vWKVqvkVAWLXfHCCfff2luJj86U+J0/x+0N3ArG/tP0Fq7zky2dYwMbtPmkc/oulkkbjdL3uWzuoBwQ8R00Q==", 300 "integrity": "sha512-BjyRAbix6j/wv83ftcVJmBt72QtHI56C7JXZoG2xATiLpmoC7dpd8WnkikExHDVPpi/3qCmO6WY1EaXOluiecQ==",
346 "dependencies": { 301 "dependencies": {
347 "@babel/helper-environment-visitor": "^7.24.7",
348 "@babel/helper-module-imports": "^7.24.7", 302 "@babel/helper-module-imports": "^7.24.7",
349 "@babel/helper-simple-access": "^7.24.7", 303 "@babel/helper-simple-access": "^7.24.7",
350 "@babel/helper-split-export-declaration": "^7.24.7", 304 "@babel/helper-validator-identifier": "^7.24.7",
351 "@babel/helper-validator-identifier": "^7.24.7" 305 "@babel/traverse": "^7.25.2"
352 }, 306 },
353 "engines": { 307 "engines": {
354 "node": ">=6.9.0" 308 "node": ">=6.9.0"
@@ -377,13 +331,13 @@
377 } 331 }
378 }, 332 },
379 "node_modules/@babel/helper-remap-async-to-generator": { 333 "node_modules/@babel/helper-remap-async-to-generator": {
380 "version": "7.24.7", 334 "version": "7.25.0",
381 "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.24.7.tgz", 335 "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.25.0.tgz",
382 "integrity": "sha512-9pKLcTlZ92hNZMQfGCHImUpDOlAgkkpqalWEeftW5FBya75k8Li2ilerxkM/uBEj01iBZXcCIB/bwvDYgWyibA==", 336 "integrity": "sha512-NhavI2eWEIz/H9dbrG0TuOicDhNexze43i5z7lEqwYm0WEZVTwnPpA0EafUTP7+6/W79HWIP2cTe3Z5NiSTVpw==",
383 "dependencies": { 337 "dependencies": {
384 "@babel/helper-annotate-as-pure": "^7.24.7", 338 "@babel/helper-annotate-as-pure": "^7.24.7",
385 "@babel/helper-environment-visitor": "^7.24.7", 339 "@babel/helper-wrap-function": "^7.25.0",
386 "@babel/helper-wrap-function": "^7.24.7" 340 "@babel/traverse": "^7.25.0"
387 }, 341 },
388 "engines": { 342 "engines": {
389 "node": ">=6.9.0" 343 "node": ">=6.9.0"
@@ -393,13 +347,13 @@
393 } 347 }
394 }, 348 },
395 "node_modules/@babel/helper-replace-supers": { 349 "node_modules/@babel/helper-replace-supers": {
396 "version": "7.24.7", 350 "version": "7.25.0",
397 "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.24.7.tgz", 351 "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.25.0.tgz",
398 "integrity": "sha512-qTAxxBM81VEyoAY0TtLrx1oAEJc09ZK67Q9ljQToqCnA+55eNwCORaxlKyu+rNfX86o8OXRUSNUnrtsAZXM9sg==", 352 "integrity": "sha512-q688zIvQVYtZu+i2PsdIu/uWGRpfxzr5WESsfpShfZECkO+d2o+WROWezCi/Q6kJ0tfPa5+pUGUlfx2HhrA3Bg==",
399 "dependencies": { 353 "dependencies": {
400 "@babel/helper-environment-visitor": "^7.24.7", 354 "@babel/helper-member-expression-to-functions": "^7.24.8",
401 "@babel/helper-member-expression-to-functions": "^7.24.7", 355 "@babel/helper-optimise-call-expression": "^7.24.7",
402 "@babel/helper-optimise-call-expression": "^7.24.7" 356 "@babel/traverse": "^7.25.0"
403 }, 357 },
404 "engines": { 358 "engines": {
405 "node": ">=6.9.0" 359 "node": ">=6.9.0"
@@ -432,17 +386,6 @@
432 "node": ">=6.9.0" 386 "node": ">=6.9.0"
433 } 387 }
434 }, 388 },
435 "node_modules/@babel/helper-split-export-declaration": {
436 "version": "7.24.7",
437 "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.7.tgz",
438 "integrity": "sha512-oy5V7pD+UvfkEATUKvIjvIAH/xCzfsFVw7ygW2SI6NClZzquT+mwdTfgfdbUiceh6iQO0CHtCPsyze/MZ2YbAA==",
439 "dependencies": {
440 "@babel/types": "^7.24.7"
441 },
442 "engines": {
443 "node": ">=6.9.0"
444 }
445 },
446 "node_modules/@babel/helper-string-parser": { 389 "node_modules/@babel/helper-string-parser": {
447 "version": "7.24.8", 390 "version": "7.24.8",
448 "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.8.tgz", 391 "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.8.tgz",
@@ -468,27 +411,25 @@
468 } 411 }
469 }, 412 },
470 "node_modules/@babel/helper-wrap-function": { 413 "node_modules/@babel/helper-wrap-function": {
471 "version": "7.24.7", 414 "version": "7.25.0",
472 "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.24.7.tgz", 415 "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.25.0.tgz",
473 "integrity": "sha512-N9JIYk3TD+1vq/wn77YnJOqMtfWhNewNE+DJV4puD2X7Ew9J4JvrzrFDfTfyv5EgEXVy9/Wt8QiOErzEmv5Ifw==", 416 "integrity": "sha512-s6Q1ebqutSiZnEjaofc/UKDyC4SbzV5n5SrA2Gq8UawLycr3i04f1dX4OzoQVnexm6aOCh37SQNYlJ/8Ku+PMQ==",
474 "dependencies": { 417 "dependencies": {
475 "@babel/helper-function-name": "^7.24.7", 418 "@babel/template": "^7.25.0",
476 "@babel/template": "^7.24.7", 419 "@babel/traverse": "^7.25.0",
477 "@babel/traverse": "^7.24.7", 420 "@babel/types": "^7.25.0"
478 "@babel/types": "^7.24.7"
479 }, 421 },
480 "engines": { 422 "engines": {
481 "node": ">=6.9.0" 423 "node": ">=6.9.0"
482 } 424 }
483 }, 425 },
484 "node_modules/@babel/helpers": { 426 "node_modules/@babel/helpers": {
485 "version": "7.20.13", 427 "version": "7.25.0",
486 "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.20.13.tgz", 428 "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.25.0.tgz",
487 "integrity": "sha512-nzJ0DWCL3gB5RCXbUO3KIMMsBY2Eqbx8mBpKGE/02PgyRQFcPQLbkQ1vyy596mZLaP+dAfD+R4ckASzNVmW3jg==", 429 "integrity": "sha512-MjgLZ42aCm0oGjJj8CtSM3DB8NOOf8h2l7DCTePJs29u+v7yO/RBX9nShlKMgFnRks/Q4tBAe7Hxnov9VkGwLw==",
488 "dependencies": { 430 "dependencies": {
489 "@babel/template": "^7.20.7", 431 "@babel/template": "^7.25.0",
490 "@babel/traverse": "^7.20.13", 432 "@babel/types": "^7.25.0"
491 "@babel/types": "^7.20.7"
492 }, 433 },
493 "engines": { 434 "engines": {
494 "node": ">=6.9.0" 435 "node": ">=6.9.0"
@@ -509,9 +450,12 @@
509 } 450 }
510 }, 451 },
511 "node_modules/@babel/parser": { 452 "node_modules/@babel/parser": {
512 "version": "7.24.8", 453 "version": "7.25.3",
513 "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.8.tgz", 454 "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.25.3.tgz",
514 "integrity": "sha512-WzfbgXOkGzZiXXCqk43kKwZjzwx4oulxZi3nq2TYL9mOjQv6kYwul9mz6ID36njuL7Xkp6nJEfok848Zj10j/w==", 455 "integrity": "sha512-iLTJKDbJ4hMvFPgQwwsVoxtHyWpKKPBrxkANrSYewDPaPpT5py5yeVkgPIJ7XYXhndxJpaA3PyALSXQ7u8e/Dw==",
456 "dependencies": {
457 "@babel/types": "^7.25.2"
458 },
515 "bin": { 459 "bin": {
516 "parser": "bin/babel-parser.js" 460 "parser": "bin/babel-parser.js"
517 }, 461 },
@@ -520,12 +464,26 @@
520 } 464 }
521 }, 465 },
522 "node_modules/@babel/plugin-bugfix-firefox-class-in-computed-class-key": { 466 "node_modules/@babel/plugin-bugfix-firefox-class-in-computed-class-key": {
523 "version": "7.24.7", 467 "version": "7.25.3",
524 "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.24.7.tgz", 468 "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.25.3.tgz",
525 "integrity": "sha512-TiT1ss81W80eQsN+722OaeQMY/G4yTb4G9JrqeiDADs3N8lbPMGldWi9x8tyqCW5NLx1Jh2AvkE6r6QvEltMMQ==", 469 "integrity": "sha512-wUrcsxZg6rqBXG05HG1FPYgsP6EvwF4WpBbxIpWIIYnH8wG0gzx3yZY3dtEHas4sTAOGkbTsc9EGPxwff8lRoA==",
526 "dependencies": { 470 "dependencies": {
527 "@babel/helper-environment-visitor": "^7.24.7", 471 "@babel/helper-plugin-utils": "^7.24.8",
528 "@babel/helper-plugin-utils": "^7.24.7" 472 "@babel/traverse": "^7.25.3"
473 },
474 "engines": {
475 "node": ">=6.9.0"
476 },
477 "peerDependencies": {
478 "@babel/core": "^7.0.0"
479 }
480 },
481 "node_modules/@babel/plugin-bugfix-safari-class-field-initializer-scope": {
482 "version": "7.25.0",
483 "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.25.0.tgz",
484 "integrity": "sha512-Bm4bH2qsX880b/3ziJ8KD711LT7z4u8CFudmjqle65AZj/HNUFhEf90dqYv6O86buWvSBmeQDjv0Tn2aF/bIBA==",
485 "dependencies": {
486 "@babel/helper-plugin-utils": "^7.24.8"
529 }, 487 },
530 "engines": { 488 "engines": {
531 "node": ">=6.9.0" 489 "node": ">=6.9.0"
@@ -535,11 +493,11 @@
535 } 493 }
536 }, 494 },
537 "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { 495 "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": {
538 "version": "7.24.7", 496 "version": "7.25.0",
539 "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.24.7.tgz", 497 "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.25.0.tgz",
540 "integrity": "sha512-unaQgZ/iRu/By6tsjMZzpeBZjChYfLYry6HrEXPoz3KmfF0sVBQ1l8zKMQ4xRGLWVsjuvB8nQfjNP/DcfEOCsg==", 498 "integrity": "sha512-lXwdNZtTmeVOOFtwM/WDe7yg1PL8sYhRk/XH0FzbR2HDQ0xC+EnQ/JHeoMYSavtU115tnUk0q9CDyq8si+LMAA==",
541 "dependencies": { 499 "dependencies": {
542 "@babel/helper-plugin-utils": "^7.24.7" 500 "@babel/helper-plugin-utils": "^7.24.8"
543 }, 501 },
544 "engines": { 502 "engines": {
545 "node": ">=6.9.0" 503 "node": ">=6.9.0"
@@ -565,12 +523,12 @@
565 } 523 }
566 }, 524 },
567 "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { 525 "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": {
568 "version": "7.24.7", 526 "version": "7.25.0",
569 "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.24.7.tgz", 527 "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.25.0.tgz",
570 "integrity": "sha512-utA4HuR6F4Vvcr+o4DnjL8fCOlgRFGbeeBEGNg3ZTrLFw6VWG5XmUrvcQ0FjIYMU2ST4XcR2Wsp7t9qOAPnxMg==", 528 "integrity": "sha512-tggFrk1AIShG/RUQbEwt2Tr/E+ObkfwrPjR6BjbRvsx24+PSjK8zrq0GWPNCjo8qpRx4DuJzlcvWJqlm+0h3kw==",
571 "dependencies": { 529 "dependencies": {
572 "@babel/helper-environment-visitor": "^7.24.7", 530 "@babel/helper-plugin-utils": "^7.24.8",
573 "@babel/helper-plugin-utils": "^7.24.7" 531 "@babel/traverse": "^7.25.0"
574 }, 532 },
575 "engines": { 533 "engines": {
576 "node": ">=6.9.0" 534 "node": ">=6.9.0"
@@ -986,14 +944,14 @@
986 } 944 }
987 }, 945 },
988 "node_modules/@babel/plugin-transform-async-generator-functions": { 946 "node_modules/@babel/plugin-transform-async-generator-functions": {
989 "version": "7.24.7", 947 "version": "7.25.0",
990 "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.24.7.tgz", 948 "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.25.0.tgz",
991 "integrity": "sha512-o+iF77e3u7ZS4AoAuJvapz9Fm001PuD2V3Lp6OSE4FYQke+cSewYtnek+THqGRWyQloRCyvWL1OkyfNEl9vr/g==", 949 "integrity": "sha512-uaIi2FdqzjpAMvVqvB51S42oC2JEVgh0LDsGfZVDysWE8LrJtQC2jvKmOqEYThKyB7bDEb7BP1GYWDm7tABA0Q==",
992 "dependencies": { 950 "dependencies": {
993 "@babel/helper-environment-visitor": "^7.24.7", 951 "@babel/helper-plugin-utils": "^7.24.8",
994 "@babel/helper-plugin-utils": "^7.24.7", 952 "@babel/helper-remap-async-to-generator": "^7.25.0",
995 "@babel/helper-remap-async-to-generator": "^7.24.7", 953 "@babel/plugin-syntax-async-generators": "^7.8.4",
996 "@babel/plugin-syntax-async-generators": "^7.8.4" 954 "@babel/traverse": "^7.25.0"
997 }, 955 },
998 "engines": { 956 "engines": {
999 "node": ">=6.9.0" 957 "node": ">=6.9.0"
@@ -1033,11 +991,11 @@
1033 } 991 }
1034 }, 992 },
1035 "node_modules/@babel/plugin-transform-block-scoping": { 993 "node_modules/@babel/plugin-transform-block-scoping": {
1036 "version": "7.24.7", 994 "version": "7.25.0",
1037 "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.24.7.tgz", 995 "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.25.0.tgz",
1038 "integrity": "sha512-Nd5CvgMbWc+oWzBsuaMcbwjJWAcp5qzrbg69SZdHSP7AMY0AbWFqFO0WTFCA1jxhMCwodRwvRec8k0QUbZk7RQ==", 996 "integrity": "sha512-yBQjYoOjXlFv9nlXb3f1casSHOZkWr29NX+zChVanLg5Nc157CrbEX9D7hxxtTpuFy7Q0YzmmWfJxzvps4kXrQ==",
1039 "dependencies": { 997 "dependencies": {
1040 "@babel/helper-plugin-utils": "^7.24.7" 998 "@babel/helper-plugin-utils": "^7.24.8"
1041 }, 999 },
1042 "engines": { 1000 "engines": {
1043 "node": ">=6.9.0" 1001 "node": ">=6.9.0"
@@ -1078,17 +1036,15 @@
1078 } 1036 }
1079 }, 1037 },
1080 "node_modules/@babel/plugin-transform-classes": { 1038 "node_modules/@babel/plugin-transform-classes": {
1081 "version": "7.24.8", 1039 "version": "7.25.0",
1082 "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.24.8.tgz", 1040 "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.25.0.tgz",
1083 "integrity": "sha512-VXy91c47uujj758ud9wx+OMgheXm4qJfyhj1P18YvlrQkNOSrwsteHk+EFS3OMGfhMhpZa0A+81eE7G4QC+3CA==", 1041 "integrity": "sha512-xyi6qjr/fYU304fiRwFbekzkqVJZ6A7hOjWZd+89FVcBqPV3S9Wuozz82xdpLspckeaafntbzglaW4pqpzvtSw==",
1084 "dependencies": { 1042 "dependencies": {
1085 "@babel/helper-annotate-as-pure": "^7.24.7", 1043 "@babel/helper-annotate-as-pure": "^7.24.7",
1086 "@babel/helper-compilation-targets": "^7.24.8", 1044 "@babel/helper-compilation-targets": "^7.24.8",
1087 "@babel/helper-environment-visitor": "^7.24.7",
1088 "@babel/helper-function-name": "^7.24.7",
1089 "@babel/helper-plugin-utils": "^7.24.8", 1045 "@babel/helper-plugin-utils": "^7.24.8",
1090 "@babel/helper-replace-supers": "^7.24.7", 1046 "@babel/helper-replace-supers": "^7.25.0",
1091 "@babel/helper-split-export-declaration": "^7.24.7", 1047 "@babel/traverse": "^7.25.0",
1092 "globals": "^11.1.0" 1048 "globals": "^11.1.0"
1093 }, 1049 },
1094 "engines": { 1050 "engines": {
@@ -1156,6 +1112,21 @@
1156 "@babel/core": "^7.0.0-0" 1112 "@babel/core": "^7.0.0-0"
1157 } 1113 }
1158 }, 1114 },
1115 "node_modules/@babel/plugin-transform-duplicate-named-capturing-groups-regex": {
1116 "version": "7.25.0",
1117 "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.25.0.tgz",
1118 "integrity": "sha512-YLpb4LlYSc3sCUa35un84poXoraOiQucUTTu8X1j18JV+gNa8E0nyUf/CjZ171IRGr4jEguF+vzJU66QZhn29g==",
1119 "dependencies": {
1120 "@babel/helper-create-regexp-features-plugin": "^7.25.0",
1121 "@babel/helper-plugin-utils": "^7.24.8"
1122 },
1123 "engines": {
1124 "node": ">=6.9.0"
1125 },
1126 "peerDependencies": {
1127 "@babel/core": "^7.0.0"
1128 }
1129 },
1159 "node_modules/@babel/plugin-transform-dynamic-import": { 1130 "node_modules/@babel/plugin-transform-dynamic-import": {
1160 "version": "7.24.7", 1131 "version": "7.24.7",
1161 "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.24.7.tgz", 1132 "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.24.7.tgz",
@@ -1202,11 +1173,11 @@
1202 } 1173 }
1203 }, 1174 },
1204 "node_modules/@babel/plugin-transform-flow-strip-types": { 1175 "node_modules/@babel/plugin-transform-flow-strip-types": {
1205 "version": "7.24.7", 1176 "version": "7.25.2",
1206 "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.24.7.tgz", 1177 "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.25.2.tgz",
1207 "integrity": "sha512-cjRKJ7FobOH2eakx7Ja+KpJRj8+y+/SiB3ooYm/n2UJfxu0oEaOoxOinitkJcPqv9KxS0kxTGPUaR7L2XcXDXA==", 1178 "integrity": "sha512-InBZ0O8tew5V0K6cHcQ+wgxlrjOw1W4wDXLkOTjLRD8GYhTSkxTVBtdy3MMtvYBrbAWa1Qm3hNoTc1620Yj+Mg==",
1208 "dependencies": { 1179 "dependencies": {
1209 "@babel/helper-plugin-utils": "^7.24.7", 1180 "@babel/helper-plugin-utils": "^7.24.8",
1210 "@babel/plugin-syntax-flow": "^7.24.7" 1181 "@babel/plugin-syntax-flow": "^7.24.7"
1211 }, 1182 },
1212 "engines": { 1183 "engines": {
@@ -1232,13 +1203,13 @@
1232 } 1203 }
1233 }, 1204 },
1234 "node_modules/@babel/plugin-transform-function-name": { 1205 "node_modules/@babel/plugin-transform-function-name": {
1235 "version": "7.24.7", 1206 "version": "7.25.1",
1236 "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.24.7.tgz", 1207 "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.25.1.tgz",
1237 "integrity": "sha512-U9FcnA821YoILngSmYkW6FjyQe2TyZD5pHt4EVIhmcTkrJw/3KqcrRSxuOo5tFZJi7TE19iDyI1u+weTI7bn2w==", 1208 "integrity": "sha512-TVVJVdW9RKMNgJJlLtHsKDTydjZAbwIsn6ySBPQaEAUU5+gVvlJt/9nRmqVbsV/IBanRjzWoaAQKLoamWVOUuA==",
1238 "dependencies": { 1209 "dependencies": {
1239 "@babel/helper-compilation-targets": "^7.24.7", 1210 "@babel/helper-compilation-targets": "^7.24.8",
1240 "@babel/helper-function-name": "^7.24.7", 1211 "@babel/helper-plugin-utils": "^7.24.8",
1241 "@babel/helper-plugin-utils": "^7.24.7" 1212 "@babel/traverse": "^7.25.1"
1242 }, 1213 },
1243 "engines": { 1214 "engines": {
1244 "node": ">=6.9.0" 1215 "node": ">=6.9.0"
@@ -1263,11 +1234,11 @@
1263 } 1234 }
1264 }, 1235 },
1265 "node_modules/@babel/plugin-transform-literals": { 1236 "node_modules/@babel/plugin-transform-literals": {
1266 "version": "7.24.7", 1237 "version": "7.25.2",
1267 "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.24.7.tgz", 1238 "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.25.2.tgz",
1268 "integrity": "sha512-vcwCbb4HDH+hWi8Pqenwnjy+UiklO4Kt1vfspcQYFhJdpthSnW8XvWGyDZWKNVrVbVViI/S7K9PDJZiUmP2fYQ==", 1239 "integrity": "sha512-HQI+HcTbm9ur3Z2DkO+jgESMAMcYLuN/A7NRw9juzxAezN9AvqvUTnpKP/9kkYANz6u7dFlAyOu44ejuGySlfw==",
1269 "dependencies": { 1240 "dependencies": {
1270 "@babel/helper-plugin-utils": "^7.24.7" 1241 "@babel/helper-plugin-utils": "^7.24.8"
1271 }, 1242 },
1272 "engines": { 1243 "engines": {
1273 "node": ">=6.9.0" 1244 "node": ">=6.9.0"
@@ -1337,14 +1308,14 @@
1337 } 1308 }
1338 }, 1309 },
1339 "node_modules/@babel/plugin-transform-modules-systemjs": { 1310 "node_modules/@babel/plugin-transform-modules-systemjs": {
1340 "version": "7.24.7", 1311 "version": "7.25.0",
1341 "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.24.7.tgz", 1312 "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.25.0.tgz",
1342 "integrity": "sha512-GYQE0tW7YoaN13qFh3O1NCY4MPkUiAH3fiF7UcV/I3ajmDKEdG3l+UOcbAm4zUE3gnvUU+Eni7XrVKo9eO9auw==", 1313 "integrity": "sha512-YPJfjQPDXxyQWg/0+jHKj1llnY5f/R6a0p/vP4lPymxLu7Lvl4k2WMitqi08yxwQcCVUUdG9LCUj4TNEgAp3Jw==",
1343 "dependencies": { 1314 "dependencies": {
1344 "@babel/helper-hoist-variables": "^7.24.7", 1315 "@babel/helper-module-transforms": "^7.25.0",
1345 "@babel/helper-module-transforms": "^7.24.7", 1316 "@babel/helper-plugin-utils": "^7.24.8",
1346 "@babel/helper-plugin-utils": "^7.24.7", 1317 "@babel/helper-validator-identifier": "^7.24.7",
1347 "@babel/helper-validator-identifier": "^7.24.7" 1318 "@babel/traverse": "^7.25.0"
1348 }, 1319 },
1349 "engines": { 1320 "engines": {
1350 "node": ">=6.9.0" 1321 "node": ">=6.9.0"
@@ -1551,11 +1522,11 @@
1551 } 1522 }
1552 }, 1523 },
1553 "node_modules/@babel/plugin-transform-react-constant-elements": { 1524 "node_modules/@babel/plugin-transform-react-constant-elements": {
1554 "version": "7.24.7", 1525 "version": "7.25.1",
1555 "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.24.7.tgz", 1526 "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.25.1.tgz",
1556 "integrity": "sha512-7LidzZfUXyfZ8/buRW6qIIHBY8wAZ1OrY9c/wTr8YhZ6vMPo+Uc/CVFLYY1spZrEQlD4w5u8wjqk5NQ3OVqQKA==", 1527 "integrity": "sha512-SLV/giH/V4SmloZ6Dt40HjTGTAIkxn33TVIHxNGNvo8ezMhrxBkzisj4op1KZYPIOHFLqhv60OHvX+YRu4xbmQ==",
1557 "dependencies": { 1528 "dependencies": {
1558 "@babel/helper-plugin-utils": "^7.24.7" 1529 "@babel/helper-plugin-utils": "^7.24.8"
1559 }, 1530 },
1560 "engines": { 1531 "engines": {
1561 "node": ">=6.9.0" 1532 "node": ">=6.9.0"
@@ -1579,15 +1550,15 @@
1579 } 1550 }
1580 }, 1551 },
1581 "node_modules/@babel/plugin-transform-react-jsx": { 1552 "node_modules/@babel/plugin-transform-react-jsx": {
1582 "version": "7.24.7", 1553 "version": "7.25.2",
1583 "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.24.7.tgz", 1554 "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.25.2.tgz",
1584 "integrity": "sha512-+Dj06GDZEFRYvclU6k4bme55GKBEWUmByM/eoKuqg4zTNQHiApWRhQph5fxQB2wAEFvRzL1tOEj1RJ19wJrhoA==", 1555 "integrity": "sha512-KQsqEAVBpU82NM/B/N9j9WOdphom1SZH3R+2V7INrQUH+V9EBFwZsEJl8eBIVeQE62FxJCc70jzEZwqU7RcVqA==",
1585 "dependencies": { 1556 "dependencies": {
1586 "@babel/helper-annotate-as-pure": "^7.24.7", 1557 "@babel/helper-annotate-as-pure": "^7.24.7",
1587 "@babel/helper-module-imports": "^7.24.7", 1558 "@babel/helper-module-imports": "^7.24.7",
1588 "@babel/helper-plugin-utils": "^7.24.7", 1559 "@babel/helper-plugin-utils": "^7.24.8",
1589 "@babel/plugin-syntax-jsx": "^7.24.7", 1560 "@babel/plugin-syntax-jsx": "^7.24.7",
1590 "@babel/types": "^7.24.7" 1561 "@babel/types": "^7.25.2"
1591 }, 1562 },
1592 "engines": { 1563 "engines": {
1593 "node": ">=6.9.0" 1564 "node": ">=6.9.0"
@@ -1753,13 +1724,14 @@
1753 } 1724 }
1754 }, 1725 },
1755 "node_modules/@babel/plugin-transform-typescript": { 1726 "node_modules/@babel/plugin-transform-typescript": {
1756 "version": "7.24.8", 1727 "version": "7.25.2",
1757 "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.24.8.tgz", 1728 "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.25.2.tgz",
1758 "integrity": "sha512-CgFgtN61BbdOGCP4fLaAMOPkzWUh6yQZNMr5YSt8uz2cZSSiQONCQFWqsE4NeVfOIhqDOlS9CR3WD91FzMeB2Q==", 1729 "integrity": "sha512-lBwRvjSmqiMYe/pS0+1gggjJleUJi7NzjvQ1Fkqtt69hBa/0t1YuW/MLQMAPixfwaQOHUXsd6jeU3Z+vdGv3+A==",
1759 "dependencies": { 1730 "dependencies": {
1760 "@babel/helper-annotate-as-pure": "^7.24.7", 1731 "@babel/helper-annotate-as-pure": "^7.24.7",
1761 "@babel/helper-create-class-features-plugin": "^7.24.8", 1732 "@babel/helper-create-class-features-plugin": "^7.25.0",
1762 "@babel/helper-plugin-utils": "^7.24.8", 1733 "@babel/helper-plugin-utils": "^7.24.8",
1734 "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7",
1763 "@babel/plugin-syntax-typescript": "^7.24.7" 1735 "@babel/plugin-syntax-typescript": "^7.24.7"
1764 }, 1736 },
1765 "engines": { 1737 "engines": {
@@ -1829,18 +1801,19 @@
1829 } 1801 }
1830 }, 1802 },
1831 "node_modules/@babel/preset-env": { 1803 "node_modules/@babel/preset-env": {
1832 "version": "7.24.8", 1804 "version": "7.25.3",
1833 "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.24.8.tgz", 1805 "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.25.3.tgz",
1834 "integrity": "sha512-vObvMZB6hNWuDxhSaEPTKCwcqkAIuDtE+bQGn4XMXne1DSLzFVY8Vmj1bm+mUQXYNN8NmaQEO+r8MMbzPr1jBQ==", 1806 "integrity": "sha512-QsYW7UeAaXvLPX9tdVliMJE7MD7M6MLYVTovRTIwhoYQVFHR1rM4wO8wqAezYi3/BpSD+NzVCZ69R6smWiIi8g==",
1835 "dependencies": { 1807 "dependencies": {
1836 "@babel/compat-data": "^7.24.8", 1808 "@babel/compat-data": "^7.25.2",
1837 "@babel/helper-compilation-targets": "^7.24.8", 1809 "@babel/helper-compilation-targets": "^7.25.2",
1838 "@babel/helper-plugin-utils": "^7.24.8", 1810 "@babel/helper-plugin-utils": "^7.24.8",
1839 "@babel/helper-validator-option": "^7.24.8", 1811 "@babel/helper-validator-option": "^7.24.8",
1840 "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.24.7", 1812 "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.25.3",
1841 "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.24.7", 1813 "@babel/plugin-bugfix-safari-class-field-initializer-scope": "^7.25.0",
1814 "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.25.0",
1842 "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.24.7", 1815 "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.24.7",
1843 "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.24.7", 1816 "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.25.0",
1844 "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", 1817 "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2",
1845 "@babel/plugin-syntax-async-generators": "^7.8.4", 1818 "@babel/plugin-syntax-async-generators": "^7.8.4",
1846 "@babel/plugin-syntax-class-properties": "^7.12.13", 1819 "@babel/plugin-syntax-class-properties": "^7.12.13",
@@ -1861,29 +1834,30 @@
1861 "@babel/plugin-syntax-top-level-await": "^7.14.5", 1834 "@babel/plugin-syntax-top-level-await": "^7.14.5",
1862 "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", 1835 "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6",
1863 "@babel/plugin-transform-arrow-functions": "^7.24.7", 1836 "@babel/plugin-transform-arrow-functions": "^7.24.7",
1864 "@babel/plugin-transform-async-generator-functions": "^7.24.7", 1837 "@babel/plugin-transform-async-generator-functions": "^7.25.0",
1865 "@babel/plugin-transform-async-to-generator": "^7.24.7", 1838 "@babel/plugin-transform-async-to-generator": "^7.24.7",
1866 "@babel/plugin-transform-block-scoped-functions": "^7.24.7", 1839 "@babel/plugin-transform-block-scoped-functions": "^7.24.7",
1867 "@babel/plugin-transform-block-scoping": "^7.24.7", 1840 "@babel/plugin-transform-block-scoping": "^7.25.0",
1868 "@babel/plugin-transform-class-properties": "^7.24.7", 1841 "@babel/plugin-transform-class-properties": "^7.24.7",
1869 "@babel/plugin-transform-class-static-block": "^7.24.7", 1842 "@babel/plugin-transform-class-static-block": "^7.24.7",
1870 "@babel/plugin-transform-classes": "^7.24.8", 1843 "@babel/plugin-transform-classes": "^7.25.0",
1871 "@babel/plugin-transform-computed-properties": "^7.24.7", 1844 "@babel/plugin-transform-computed-properties": "^7.24.7",
1872 "@babel/plugin-transform-destructuring": "^7.24.8", 1845 "@babel/plugin-transform-destructuring": "^7.24.8",
1873 "@babel/plugin-transform-dotall-regex": "^7.24.7", 1846 "@babel/plugin-transform-dotall-regex": "^7.24.7",
1874 "@babel/plugin-transform-duplicate-keys": "^7.24.7", 1847 "@babel/plugin-transform-duplicate-keys": "^7.24.7",
1848 "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "^7.25.0",
1875 "@babel/plugin-transform-dynamic-import": "^7.24.7", 1849 "@babel/plugin-transform-dynamic-import": "^7.24.7",
1876 "@babel/plugin-transform-exponentiation-operator": "^7.24.7", 1850 "@babel/plugin-transform-exponentiation-operator": "^7.24.7",
1877 "@babel/plugin-transform-export-namespace-from": "^7.24.7", 1851 "@babel/plugin-transform-export-namespace-from": "^7.24.7",
1878 "@babel/plugin-transform-for-of": "^7.24.7", 1852 "@babel/plugin-transform-for-of": "^7.24.7",
1879 "@babel/plugin-transform-function-name": "^7.24.7", 1853 "@babel/plugin-transform-function-name": "^7.25.1",
1880 "@babel/plugin-transform-json-strings": "^7.24.7", 1854 "@babel/plugin-transform-json-strings": "^7.24.7",
1881 "@babel/plugin-transform-literals": "^7.24.7", 1855 "@babel/plugin-transform-literals": "^7.25.2",
1882 "@babel/plugin-transform-logical-assignment-operators": "^7.24.7", 1856 "@babel/plugin-transform-logical-assignment-operators": "^7.24.7",
1883 "@babel/plugin-transform-member-expression-literals": "^7.24.7", 1857 "@babel/plugin-transform-member-expression-literals": "^7.24.7",
1884 "@babel/plugin-transform-modules-amd": "^7.24.7", 1858 "@babel/plugin-transform-modules-amd": "^7.24.7",
1885 "@babel/plugin-transform-modules-commonjs": "^7.24.8", 1859 "@babel/plugin-transform-modules-commonjs": "^7.24.8",
1886 "@babel/plugin-transform-modules-systemjs": "^7.24.7", 1860 "@babel/plugin-transform-modules-systemjs": "^7.25.0",
1887 "@babel/plugin-transform-modules-umd": "^7.24.7", 1861 "@babel/plugin-transform-modules-umd": "^7.24.7",
1888 "@babel/plugin-transform-named-capturing-groups-regex": "^7.24.7", 1862 "@babel/plugin-transform-named-capturing-groups-regex": "^7.24.7",
1889 "@babel/plugin-transform-new-target": "^7.24.7", 1863 "@babel/plugin-transform-new-target": "^7.24.7",
@@ -1986,42 +1960,39 @@
1986 "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==" 1960 "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA=="
1987 }, 1961 },
1988 "node_modules/@babel/runtime": { 1962 "node_modules/@babel/runtime": {
1989 "version": "7.20.13", 1963 "version": "7.25.0",
1990 "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.20.13.tgz", 1964 "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.25.0.tgz",
1991 "integrity": "sha512-gt3PKXs0DBoL9xCvOIIZ2NEqAGZqHjAnmVbfQtB620V0uReIQutpel14KcneZuer7UioY8ALKZ7iocavvzTNFA==", 1965 "integrity": "sha512-7dRy4DwXwtzBrPbZflqxnvfxLF8kdZXPkhymtDeFoFqE6ldzjQFgYTtYIFARcLEYDrqfBfYcZt1WqFxRoyC9Rw==",
1992 "dependencies": { 1966 "dependencies": {
1993 "regenerator-runtime": "^0.13.11" 1967 "regenerator-runtime": "^0.14.0"
1994 }, 1968 },
1995 "engines": { 1969 "engines": {
1996 "node": ">=6.9.0" 1970 "node": ">=6.9.0"
1997 } 1971 }
1998 }, 1972 },
1999 "node_modules/@babel/template": { 1973 "node_modules/@babel/template": {
2000 "version": "7.24.7", 1974 "version": "7.25.0",
2001 "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.7.tgz", 1975 "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.25.0.tgz",
2002 "integrity": "sha512-jYqfPrU9JTF0PmPy1tLYHW4Mp4KlgxJD9l2nP9fD6yT/ICi554DmrWBAEYpIelzjHf1msDP3PxJIRt/nFNfBig==", 1976 "integrity": "sha512-aOOgh1/5XzKvg1jvVz7AVrx2piJ2XBi227DHmbY6y+bM9H2FlN+IfecYu4Xl0cNiiVejlsCri89LUsbj8vJD9Q==",
2003 "dependencies": { 1977 "dependencies": {
2004 "@babel/code-frame": "^7.24.7", 1978 "@babel/code-frame": "^7.24.7",
2005 "@babel/parser": "^7.24.7", 1979 "@babel/parser": "^7.25.0",
2006 "@babel/types": "^7.24.7" 1980 "@babel/types": "^7.25.0"
2007 }, 1981 },
2008 "engines": { 1982 "engines": {
2009 "node": ">=6.9.0" 1983 "node": ">=6.9.0"
2010 } 1984 }
2011 }, 1985 },
2012 "node_modules/@babel/traverse": { 1986 "node_modules/@babel/traverse": {
2013 "version": "7.24.8", 1987 "version": "7.25.3",
2014 "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.8.tgz", 1988 "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.25.3.tgz",
2015 "integrity": "sha512-t0P1xxAPzEDcEPmjprAQq19NWum4K0EQPjMwZQZbHt+GiZqvjCHjj755Weq1YRPVzBI+3zSfvScfpnuIecVFJQ==", 1989 "integrity": "sha512-HefgyP1x754oGCsKmV5reSmtV7IXj/kpaE1XYY+D9G5PvKKoFfSbiS4M77MdjuwlZKDIKFCffq9rPU+H/s3ZdQ==",
2016 "dependencies": { 1990 "dependencies": {
2017 "@babel/code-frame": "^7.24.7", 1991 "@babel/code-frame": "^7.24.7",
2018 "@babel/generator": "^7.24.8", 1992 "@babel/generator": "^7.25.0",
2019 "@babel/helper-environment-visitor": "^7.24.7", 1993 "@babel/parser": "^7.25.3",
2020 "@babel/helper-function-name": "^7.24.7", 1994 "@babel/template": "^7.25.0",
2021 "@babel/helper-hoist-variables": "^7.24.7", 1995 "@babel/types": "^7.25.2",
2022 "@babel/helper-split-export-declaration": "^7.24.7",
2023 "@babel/parser": "^7.24.8",
2024 "@babel/types": "^7.24.8",
2025 "debug": "^4.3.1", 1996 "debug": "^4.3.1",
2026 "globals": "^11.1.0" 1997 "globals": "^11.1.0"
2027 }, 1998 },
@@ -2030,9 +2001,9 @@
2030 } 2001 }
2031 }, 2002 },
2032 "node_modules/@babel/types": { 2003 "node_modules/@babel/types": {
2033 "version": "7.24.8", 2004 "version": "7.25.2",
2034 "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.8.tgz", 2005 "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.25.2.tgz",
2035 "integrity": "sha512-SkSBEHwwJRU52QEVZBmMBnE5Ux2/6WU1grdYyOhpbCNxbmJrDuDCphBzKZSO3taf0zztp+qkWlymE5tVL5l0TA==", 2006 "integrity": "sha512-YTnYtra7W9e6/oAZEHj0bJehPRUlLH9/fbpT5LfB0NhQXyALCRkRs3zH9v07IYhkgpqX6Z78FnuccZr/l4Fs4Q==",
2036 "dependencies": { 2007 "dependencies": {
2037 "@babel/helper-string-parser": "^7.24.8", 2008 "@babel/helper-string-parser": "^7.24.8",
2038 "@babel/helper-validator-identifier": "^7.24.7", 2009 "@babel/helper-validator-identifier": "^7.24.7",
@@ -2761,25 +2732,6 @@
2761 "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" 2732 "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
2762 } 2733 }
2763 }, 2734 },
2764 "node_modules/@jest/expect-utils": {
2765 "version": "29.4.3",
2766 "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.4.3.tgz",
2767 "integrity": "sha512-/6JWbkxHOP8EoS8jeeTd9dTfc9Uawi+43oLKHfp6zzux3U2hqOOVnV3ai4RpDYHOccL6g+5nrxpoc8DmJxtXVQ==",
2768 "dependencies": {
2769 "jest-get-type": "^29.4.3"
2770 },
2771 "engines": {
2772 "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
2773 }
2774 },
2775 "node_modules/@jest/expect-utils/node_modules/jest-get-type": {
2776 "version": "29.4.3",
2777 "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.4.3.tgz",
2778 "integrity": "sha512-J5Xez4nRRMjk8emnTpWrlkyb9pfRQQanDrvWHhsR1+VUfbwxi30eVcZFlcdGInRibU4G5LwHXpI7IRHU0CY+gg==",
2779 "engines": {
2780 "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
2781 }
2782 },
2783 "node_modules/@jest/fake-timers": { 2735 "node_modules/@jest/fake-timers": {
2784 "version": "27.5.1", 2736 "version": "27.5.1",
2785 "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-27.5.1.tgz", 2737 "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-27.5.1.tgz",
@@ -3054,6 +3006,11 @@
3054 "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", 3006 "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
3055 "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" 3007 "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
3056 }, 3008 },
3009 "node_modules/@jest/transform/node_modules/convert-source-map": {
3010 "version": "1.9.0",
3011 "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz",
3012 "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A=="
3013 },
3057 "node_modules/@jest/transform/node_modules/has-flag": { 3014 "node_modules/@jest/transform/node_modules/has-flag": {
3058 "version": "4.0.0", 3015 "version": "4.0.0",
3059 "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", 3016 "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
@@ -3161,21 +3118,22 @@
3161 } 3118 }
3162 }, 3119 },
3163 "node_modules/@jridgewell/gen-mapping": { 3120 "node_modules/@jridgewell/gen-mapping": {
3164 "version": "0.1.1", 3121 "version": "0.3.5",
3165 "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", 3122 "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz",
3166 "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", 3123 "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==",
3167 "dependencies": { 3124 "dependencies": {
3168 "@jridgewell/set-array": "^1.0.0", 3125 "@jridgewell/set-array": "^1.2.1",
3169 "@jridgewell/sourcemap-codec": "^1.4.10" 3126 "@jridgewell/sourcemap-codec": "^1.4.10",
3127 "@jridgewell/trace-mapping": "^0.3.24"
3170 }, 3128 },
3171 "engines": { 3129 "engines": {
3172 "node": ">=6.0.0" 3130 "node": ">=6.0.0"
3173 } 3131 }
3174 }, 3132 },
3175 "node_modules/@jridgewell/resolve-uri": { 3133 "node_modules/@jridgewell/resolve-uri": {
3176 "version": "3.1.0", 3134 "version": "3.1.2",
3177 "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", 3135 "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz",
3178 "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", 3136 "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==",
3179 "engines": { 3137 "engines": {
3180 "node": ">=6.0.0" 3138 "node": ">=6.0.0"
3181 } 3139 }
@@ -3197,23 +3155,10 @@
3197 "@jridgewell/trace-mapping": "^0.3.25" 3155 "@jridgewell/trace-mapping": "^0.3.25"
3198 } 3156 }
3199 }, 3157 },
3200 "node_modules/@jridgewell/source-map/node_modules/@jridgewell/gen-mapping": {
3201 "version": "0.3.5",
3202 "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz",
3203 "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==",
3204 "dependencies": {
3205 "@jridgewell/set-array": "^1.2.1",
3206 "@jridgewell/sourcemap-codec": "^1.4.10",
3207 "@jridgewell/trace-mapping": "^0.3.24"
3208 },
3209 "engines": {
3210 "node": ">=6.0.0"
3211 }
3212 },
3213 "node_modules/@jridgewell/sourcemap-codec": { 3158 "node_modules/@jridgewell/sourcemap-codec": {
3214 "version": "1.4.14", 3159 "version": "1.5.0",
3215 "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", 3160 "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz",
3216 "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==" 3161 "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ=="
3217 }, 3162 },
3218 "node_modules/@jridgewell/trace-mapping": { 3163 "node_modules/@jridgewell/trace-mapping": {
3219 "version": "0.3.25", 3164 "version": "0.3.25",
@@ -3346,12 +3291,11 @@
3346 } 3291 }
3347 }, 3292 },
3348 "node_modules/@remix-run/router": { 3293 "node_modules/@remix-run/router": {
3349 "version": "1.5.0", 3294 "version": "1.19.1",
3350 "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.5.0.tgz", 3295 "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.19.1.tgz",
3351 "integrity": "sha512-bkUDCp8o1MvFO+qxkODcbhSqRa6P2GXgrGZVpt0dCXNW2HCSCqYI0ZoAqEOSAjRWmmlKcYgFvN4B4S+zo/f8kg==", 3296 "integrity": "sha512-S45oynt/WH19bHbIXjtli6QmwNYvaz+vtnubvNpNDvUOoA/OWh6j1OikIP3G+v5GHdxyC6EXoChG3HgYGEUfcg==",
3352 "dev": true,
3353 "engines": { 3297 "engines": {
3354 "node": ">=14" 3298 "node": ">=14.0.0"
3355 } 3299 }
3356 }, 3300 },
3357 "node_modules/@rollup/plugin-babel": { 3301 "node_modules/@rollup/plugin-babel": {
@@ -3429,9 +3373,9 @@
3429 "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==" 3373 "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw=="
3430 }, 3374 },
3431 "node_modules/@rushstack/eslint-patch": { 3375 "node_modules/@rushstack/eslint-patch": {
3432 "version": "1.10.3", 3376 "version": "1.10.4",
3433 "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.10.3.tgz", 3377 "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.10.4.tgz",
3434 "integrity": "sha512-qC/xYId4NMebE6w/V33Fh9gWxLgURiNYgVNObbJl2LZv0GUUItCcCqC5axQSwRaAgaxl2mELq1rMzlswaQ0Zxg==" 3378 "integrity": "sha512-WJgX9nzTqknM393q1QJDJmoW28kUfEnybeTfVNcNAPnIx210RXm2DiXiHzfNPJNIUUb1tJnz/l4QGtJ30PgWmA=="
3435 }, 3379 },
3436 "node_modules/@sinclair/typebox": { 3380 "node_modules/@sinclair/typebox": {
3437 "version": "0.24.51", 3381 "version": "0.24.51",
@@ -3673,22 +3617,22 @@
3673 } 3617 }
3674 }, 3618 },
3675 "node_modules/@testing-library/dom": { 3619 "node_modules/@testing-library/dom": {
3676 "version": "9.0.0", 3620 "version": "10.4.0",
3677 "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-9.0.0.tgz", 3621 "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-10.4.0.tgz",
3678 "integrity": "sha512-+/TLgKNFsYUshOY/zXsQOk+PlFQK+eyJ9T13IDVNJEi+M+Un7xlJK+FZKkbGSnf0+7E1G6PlDhkSYQ/GFiruBQ==", 3622 "integrity": "sha512-pemlzrSESWbdAloYml3bAJMEfNh1Z7EduzqPKprCH5S341frlpYnUEW0H72dLxa6IsYr+mPno20GiSm+h9dEdQ==",
3679 "peer": true, 3623 "peer": true,
3680 "dependencies": { 3624 "dependencies": {
3681 "@babel/code-frame": "^7.10.4", 3625 "@babel/code-frame": "^7.10.4",
3682 "@babel/runtime": "^7.12.5", 3626 "@babel/runtime": "^7.12.5",
3683 "@types/aria-query": "^5.0.1", 3627 "@types/aria-query": "^5.0.1",
3684 "aria-query": "^5.0.0", 3628 "aria-query": "5.3.0",
3685 "chalk": "^4.1.0", 3629 "chalk": "^4.1.0",
3686 "dom-accessibility-api": "^0.5.9", 3630 "dom-accessibility-api": "^0.5.9",
3687 "lz-string": "^1.4.4", 3631 "lz-string": "^1.5.0",
3688 "pretty-format": "^27.0.2" 3632 "pretty-format": "^27.0.2"
3689 }, 3633 },
3690 "engines": { 3634 "engines": {
3691 "node": ">=14" 3635 "node": ">=18"
3692 } 3636 }
3693 }, 3637 },
3694 "node_modules/@testing-library/dom/node_modules/ansi-styles": { 3638 "node_modules/@testing-library/dom/node_modules/ansi-styles": {
@@ -3706,6 +3650,15 @@
3706 "url": "https://github.com/chalk/ansi-styles?sponsor=1" 3650 "url": "https://github.com/chalk/ansi-styles?sponsor=1"
3707 } 3651 }
3708 }, 3652 },
3653 "node_modules/@testing-library/dom/node_modules/aria-query": {
3654 "version": "5.3.0",
3655 "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.0.tgz",
3656 "integrity": "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==",
3657 "peer": true,
3658 "dependencies": {
3659 "dequal": "^2.0.3"
3660 }
3661 },
3709 "node_modules/@testing-library/dom/node_modules/chalk": { 3662 "node_modules/@testing-library/dom/node_modules/chalk": {
3710 "version": "4.1.2", 3663 "version": "4.1.2",
3711 "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", 3664 "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
@@ -3762,9 +3715,9 @@
3762 } 3715 }
3763 }, 3716 },
3764 "node_modules/@testing-library/jest-dom": { 3717 "node_modules/@testing-library/jest-dom": {
3765 "version": "5.16.5", 3718 "version": "5.17.0",
3766 "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-5.16.5.tgz", 3719 "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-5.17.0.tgz",
3767 "integrity": "sha512-N5ixQ2qKpi5OLYfwQmUb/5mSV9LneAcaUfp32pn4yCnpb8r/Yz0pXFPck21dIicKmi+ta5WRAknkZCfA8refMA==", 3720 "integrity": "sha512-ynmNeT7asXyH3aSVv4vvX4Rb+0qjOhdNHnO/3vuZNqPmhDpV/+rCSGwQ7bLcmU2cJ4dvoheIO85LQj0IbJHEtg==",
3768 "dependencies": { 3721 "dependencies": {
3769 "@adobe/css-tools": "^4.0.1", 3722 "@adobe/css-tools": "^4.0.1",
3770 "@babel/runtime": "^7.9.2", 3723 "@babel/runtime": "^7.9.2",
@@ -3861,17 +3814,17 @@
3861 } 3814 }
3862 }, 3815 },
3863 "node_modules/@testing-library/react/node_modules/@testing-library/dom": { 3816 "node_modules/@testing-library/react/node_modules/@testing-library/dom": {
3864 "version": "8.20.0", 3817 "version": "8.20.1",
3865 "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-8.20.0.tgz", 3818 "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-8.20.1.tgz",
3866 "integrity": "sha512-d9ULIT+a4EXLX3UU8FBjauG9NnsZHkHztXoIcTsOKoOw030fyjheN9svkTULjJxtYag9DZz5Jz5qkWZDPxTFwA==", 3819 "integrity": "sha512-/DiOQ5xBxgdYRC8LNk7U+RWat0S3qRLeIw3ZIkMQ9kkVlRmwD/Eg8k8CqIpD6GW7u20JIUOfMKbxtiLutpjQ4g==",
3867 "dependencies": { 3820 "dependencies": {
3868 "@babel/code-frame": "^7.10.4", 3821 "@babel/code-frame": "^7.10.4",
3869 "@babel/runtime": "^7.12.5", 3822 "@babel/runtime": "^7.12.5",
3870 "@types/aria-query": "^5.0.1", 3823 "@types/aria-query": "^5.0.1",
3871 "aria-query": "^5.0.0", 3824 "aria-query": "5.1.3",
3872 "chalk": "^4.1.0", 3825 "chalk": "^4.1.0",
3873 "dom-accessibility-api": "^0.5.9", 3826 "dom-accessibility-api": "^0.5.9",
3874 "lz-string": "^1.4.4", 3827 "lz-string": "^1.5.0",
3875 "pretty-format": "^27.0.2" 3828 "pretty-format": "^27.0.2"
3876 }, 3829 },
3877 "engines": { 3830 "engines": {
@@ -3974,9 +3927,9 @@
3974 } 3927 }
3975 }, 3928 },
3976 "node_modules/@types/aria-query": { 3929 "node_modules/@types/aria-query": {
3977 "version": "5.0.1", 3930 "version": "5.0.4",
3978 "resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-5.0.1.tgz", 3931 "resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-5.0.4.tgz",
3979 "integrity": "sha512-XTIieEY+gvJ39ChLcB4If5zHtPxt3Syj5rgZR+e1ctpmK8NjPf0zFqsz4JpLJT0xla9GFDKjy8Cpu331nrmE1Q==" 3932 "integrity": "sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw=="
3980 }, 3933 },
3981 "node_modules/@types/babel__core": { 3934 "node_modules/@types/babel__core": {
3982 "version": "7.20.5", 3935 "version": "7.20.5",
@@ -4050,17 +4003,17 @@
4050 } 4003 }
4051 }, 4004 },
4052 "node_modules/@types/debug": { 4005 "node_modules/@types/debug": {
4053 "version": "4.1.8", 4006 "version": "4.1.12",
4054 "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.8.tgz", 4007 "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.12.tgz",
4055 "integrity": "sha512-/vPO1EPOs306Cvhwv7KfVfYvOJqA/S/AXjaHQiJboCZzcNDb+TIJFN9/2C9DZ//ijSKWioNyUxD792QmDJ+HKQ==", 4008 "integrity": "sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==",
4056 "dependencies": { 4009 "dependencies": {
4057 "@types/ms": "*" 4010 "@types/ms": "*"
4058 } 4011 }
4059 }, 4012 },
4060 "node_modules/@types/eslint": { 4013 "node_modules/@types/eslint": {
4061 "version": "8.56.10", 4014 "version": "8.56.11",
4062 "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.56.10.tgz", 4015 "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.56.11.tgz",
4063 "integrity": "sha512-Shavhk87gCtY2fhXDctcfS3e6FdxWkCx1iUZ9eEUbh7rTqlZT0/IzOkCOVt0fCjcFuZ9FPYfuezTBImfHCDBGQ==", 4016 "integrity": "sha512-sVBpJMf7UPo/wGecYOpk2aQya2VUGeHhe38WG7/mN5FufNSubf5VT9Uh9Uyp8/eLJpu1/tuhJ/qTo4mhSB4V4Q==",
4064 "dependencies": { 4017 "dependencies": {
4065 "@types/estree": "*", 4018 "@types/estree": "*",
4066 "@types/json-schema": "*" 4019 "@types/json-schema": "*"
@@ -4080,6 +4033,14 @@
4080 "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", 4033 "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz",
4081 "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==" 4034 "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw=="
4082 }, 4035 },
4036 "node_modules/@types/estree-jsx": {
4037 "version": "1.0.5",
4038 "resolved": "https://registry.npmjs.org/@types/estree-jsx/-/estree-jsx-1.0.5.tgz",
4039 "integrity": "sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==",
4040 "dependencies": {
4041 "@types/estree": "*"
4042 }
4043 },
4083 "node_modules/@types/express": { 4044 "node_modules/@types/express": {
4084 "version": "4.17.21", 4045 "version": "4.17.21",
4085 "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.21.tgz", 4046 "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.21.tgz",
@@ -4111,9 +4072,9 @@
4111 } 4072 }
4112 }, 4073 },
4113 "node_modules/@types/hast": { 4074 "node_modules/@types/hast": {
4114 "version": "2.3.4", 4075 "version": "3.0.4",
4115 "resolved": "https://registry.npmjs.org/@types/hast/-/hast-2.3.4.tgz", 4076 "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz",
4116 "integrity": "sha512-wLEm0QvaoawEDoTRwzTXp4b4jpwiJDvR5KMnFnVodm3scufTlBOWRD6N1OBf9TZMhjlNsSfcO5V+7AF4+Vy+9g==", 4077 "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==",
4117 "dependencies": { 4078 "dependencies": {
4118 "@types/unist": "*" 4079 "@types/unist": "*"
4119 } 4080 }
@@ -4129,268 +4090,41 @@
4129 "integrity": "sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==" 4090 "integrity": "sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA=="
4130 }, 4091 },
4131 "node_modules/@types/http-proxy": { 4092 "node_modules/@types/http-proxy": {
4132 "version": "1.17.14", 4093 "version": "1.17.15",
4133 "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.14.tgz", 4094 "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.15.tgz",
4134 "integrity": "sha512-SSrD0c1OQzlFX7pGu1eXxSEjemej64aaNPRhhVYUGqXh0BtldAAx37MG8btcumvpgKyZp1F5Gn3JkktdxiFv6w==", 4095 "integrity": "sha512-25g5atgiVNTIv0LBDTg1H74Hvayx0ajtJPLLcYE3whFv75J0pWNtOBzaXJQgDTmrX1bx5U9YC2w/n65BN1HwRQ==",
4135 "dependencies": { 4096 "dependencies": {
4136 "@types/node": "*" 4097 "@types/node": "*"
4137 } 4098 }
4138 }, 4099 },
4139 "node_modules/@types/istanbul-lib-coverage": { 4100 "node_modules/@types/istanbul-lib-coverage": {
4140 "version": "2.0.4", 4101 "version": "2.0.6",
4141 "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", 4102 "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz",
4142 "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==" 4103 "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w=="
4143 }, 4104 },
4144 "node_modules/@types/istanbul-lib-report": { 4105 "node_modules/@types/istanbul-lib-report": {
4145 "version": "3.0.0", 4106 "version": "3.0.3",
4146 "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", 4107 "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz",
4147 "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", 4108 "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==",
4148 "dependencies": { 4109 "dependencies": {
4149 "@types/istanbul-lib-coverage": "*" 4110 "@types/istanbul-lib-coverage": "*"
4150 } 4111 }
4151 }, 4112 },
4152 "node_modules/@types/istanbul-reports": { 4113 "node_modules/@types/istanbul-reports": {
4153 "version": "3.0.1", 4114 "version": "3.0.4",
4154 "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", 4115 "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz",
4155 "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", 4116 "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==",
4156 "dependencies": { 4117 "dependencies": {
4157 "@types/istanbul-lib-report": "*" 4118 "@types/istanbul-lib-report": "*"
4158 } 4119 }
4159 }, 4120 },
4160 "node_modules/@types/jest": { 4121 "node_modules/@types/jest": {
4161 "version": "29.4.0", 4122 "version": "27.5.2",
4162 "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.4.0.tgz", 4123 "resolved": "https://registry.npmjs.org/@types/jest/-/jest-27.5.2.tgz",
4163 "integrity": "sha512-VaywcGQ9tPorCX/Jkkni7RWGFfI11whqzs8dvxF41P17Z+z872thvEvlIbznjPJ02kl1HMX3LmLOonsj2n7HeQ==", 4124 "integrity": "sha512-mpT8LJJ4CMeeahobofYWIjFo0xonRS/HfxnVEPMPFSQdGUt1uHCnoPT7Zhb+sjDU2wz0oKV0OLUR0WzrHNgfeA==",
4164 "dependencies": {
4165 "expect": "^29.0.0",
4166 "pretty-format": "^29.0.0"
4167 }
4168 },
4169 "node_modules/@types/jest/node_modules/@jest/schemas": {
4170 "version": "29.4.3",
4171 "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.4.3.tgz",
4172 "integrity": "sha512-VLYKXQmtmuEz6IxJsrZwzG9NvtkQsWNnWMsKxqWNu3+CnfzJQhp0WDDKWLVV9hLKr0l3SLLFRqcYHjhtyuDVxg==",
4173 "dependencies": {
4174 "@sinclair/typebox": "^0.25.16"
4175 },
4176 "engines": {
4177 "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
4178 }
4179 },
4180 "node_modules/@types/jest/node_modules/@jest/types": {
4181 "version": "29.4.3",
4182 "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.4.3.tgz",
4183 "integrity": "sha512-bPYfw8V65v17m2Od1cv44FH+SiKW7w2Xu7trhcdTLUmSv85rfKsP+qXSjO4KGJr4dtPSzl/gvslZBXctf1qGEA==",
4184 "dependencies": {
4185 "@jest/schemas": "^29.4.3",
4186 "@types/istanbul-lib-coverage": "^2.0.0",
4187 "@types/istanbul-reports": "^3.0.0",
4188 "@types/node": "*",
4189 "@types/yargs": "^17.0.8",
4190 "chalk": "^4.0.0"
4191 },
4192 "engines": {
4193 "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
4194 }
4195 },
4196 "node_modules/@types/jest/node_modules/@sinclair/typebox": {
4197 "version": "0.25.23",
4198 "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.25.23.tgz",
4199 "integrity": "sha512-VEB8ygeP42CFLWyAJhN5OklpxUliqdNEUcXb4xZ/CINqtYGTjL5ukluKdKzQ0iWdUxyQ7B0539PAUhHKrCNWSQ=="
4200 },
4201 "node_modules/@types/jest/node_modules/@types/yargs": {
4202 "version": "17.0.22",
4203 "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.22.tgz",
4204 "integrity": "sha512-pet5WJ9U8yPVRhkwuEIp5ktAeAqRZOq4UdAyWLWzxbtpyXnzbtLdKiXAjJzi/KLmPGS9wk86lUFWZFN6sISo4g==",
4205 "dependencies": {
4206 "@types/yargs-parser": "*"
4207 }
4208 },
4209 "node_modules/@types/jest/node_modules/ansi-styles": {
4210 "version": "4.3.0",
4211 "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
4212 "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
4213 "dependencies": {
4214 "color-convert": "^2.0.1"
4215 },
4216 "engines": {
4217 "node": ">=8"
4218 },
4219 "funding": {
4220 "url": "https://github.com/chalk/ansi-styles?sponsor=1"
4221 }
4222 },
4223 "node_modules/@types/jest/node_modules/chalk": {
4224 "version": "4.1.2",
4225 "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
4226 "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
4227 "dependencies": {
4228 "ansi-styles": "^4.1.0",
4229 "supports-color": "^7.1.0"
4230 },
4231 "engines": {
4232 "node": ">=10"
4233 },
4234 "funding": {
4235 "url": "https://github.com/chalk/chalk?sponsor=1"
4236 }
4237 },
4238 "node_modules/@types/jest/node_modules/color-convert": {
4239 "version": "2.0.1",
4240 "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
4241 "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
4242 "dependencies": {
4243 "color-name": "~1.1.4"
4244 },
4245 "engines": {
4246 "node": ">=7.0.0"
4247 }
4248 },
4249 "node_modules/@types/jest/node_modules/color-name": {
4250 "version": "1.1.4",
4251 "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
4252 "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
4253 },
4254 "node_modules/@types/jest/node_modules/diff-sequences": {
4255 "version": "29.4.3",
4256 "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.4.3.tgz",
4257 "integrity": "sha512-ofrBgwpPhCD85kMKtE9RYFFq6OC1A89oW2vvgWZNCwxrUpRUILopY7lsYyMDSjc8g6U6aiO0Qubg6r4Wgt5ZnA==",
4258 "engines": {
4259 "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
4260 }
4261 },
4262 "node_modules/@types/jest/node_modules/expect": {
4263 "version": "29.4.3",
4264 "resolved": "https://registry.npmjs.org/expect/-/expect-29.4.3.tgz",
4265 "integrity": "sha512-uC05+Q7eXECFpgDrHdXA4k2rpMyStAYPItEDLyQDo5Ta7fVkJnNA/4zh/OIVkVVNZ1oOK1PipQoyNjuZ6sz6Dg==",
4266 "dependencies": {
4267 "@jest/expect-utils": "^29.4.3",
4268 "jest-get-type": "^29.4.3",
4269 "jest-matcher-utils": "^29.4.3",
4270 "jest-message-util": "^29.4.3",
4271 "jest-util": "^29.4.3"
4272 },
4273 "engines": {
4274 "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
4275 }
4276 },
4277 "node_modules/@types/jest/node_modules/has-flag": {
4278 "version": "4.0.0",
4279 "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
4280 "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
4281 "engines": {
4282 "node": ">=8"
4283 }
4284 },
4285 "node_modules/@types/jest/node_modules/jest-diff": {
4286 "version": "29.4.3",
4287 "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.4.3.tgz",
4288 "integrity": "sha512-YB+ocenx7FZ3T5O9lMVMeLYV4265socJKtkwgk/6YUz/VsEzYDkiMuMhWzZmxm3wDRQvayJu/PjkjjSkjoHsCA==",
4289 "dependencies": {
4290 "chalk": "^4.0.0",
4291 "diff-sequences": "^29.4.3",
4292 "jest-get-type": "^29.4.3",
4293 "pretty-format": "^29.4.3"
4294 },
4295 "engines": {
4296 "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
4297 }
4298 },
4299 "node_modules/@types/jest/node_modules/jest-get-type": {
4300 "version": "29.4.3",
4301 "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.4.3.tgz",
4302 "integrity": "sha512-J5Xez4nRRMjk8emnTpWrlkyb9pfRQQanDrvWHhsR1+VUfbwxi30eVcZFlcdGInRibU4G5LwHXpI7IRHU0CY+gg==",
4303 "engines": {
4304 "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
4305 }
4306 },
4307 "node_modules/@types/jest/node_modules/jest-matcher-utils": {
4308 "version": "29.4.3",
4309 "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.4.3.tgz",
4310 "integrity": "sha512-TTciiXEONycZ03h6R6pYiZlSkvYgT0l8aa49z/DLSGYjex4orMUcafuLXYyyEDWB1RKglq00jzwY00Ei7yFNVg==",
4311 "dependencies": {
4312 "chalk": "^4.0.0",
4313 "jest-diff": "^29.4.3",
4314 "jest-get-type": "^29.4.3",
4315 "pretty-format": "^29.4.3"
4316 },
4317 "engines": {
4318 "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
4319 }
4320 },
4321 "node_modules/@types/jest/node_modules/jest-message-util": {
4322 "version": "29.4.3",
4323 "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.4.3.tgz",
4324 "integrity": "sha512-1Y8Zd4ZCN7o/QnWdMmT76If8LuDv23Z1DRovBj/vcSFNlGCJGoO8D1nJDw1AdyAGUk0myDLFGN5RbNeJyCRGCw==",
4325 "dependencies": {
4326 "@babel/code-frame": "^7.12.13",
4327 "@jest/types": "^29.4.3",
4328 "@types/stack-utils": "^2.0.0",
4329 "chalk": "^4.0.0",
4330 "graceful-fs": "^4.2.9",
4331 "micromatch": "^4.0.4",
4332 "pretty-format": "^29.4.3",
4333 "slash": "^3.0.0",
4334 "stack-utils": "^2.0.3"
4335 },
4336 "engines": {
4337 "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
4338 }
4339 },
4340 "node_modules/@types/jest/node_modules/jest-util": {
4341 "version": "29.4.3",
4342 "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.4.3.tgz",
4343 "integrity": "sha512-ToSGORAz4SSSoqxDSylWX8JzkOQR7zoBtNRsA7e+1WUX5F8jrOwaNpuh1YfJHJKDHXLHmObv5eOjejUd+/Ws+Q==",
4344 "dependencies": {
4345 "@jest/types": "^29.4.3",
4346 "@types/node": "*",
4347 "chalk": "^4.0.0",
4348 "ci-info": "^3.2.0",
4349 "graceful-fs": "^4.2.9",
4350 "picomatch": "^2.2.3"
4351 },
4352 "engines": {
4353 "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
4354 }
4355 },
4356 "node_modules/@types/jest/node_modules/pretty-format": {
4357 "version": "29.4.3",
4358 "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.4.3.tgz",
4359 "integrity": "sha512-cvpcHTc42lcsvOOAzd3XuNWTcvk1Jmnzqeu+WsOuiPmxUJTnkbAcFNsRKvEpBEUFVUgy/GTZLulZDcDEi+CIlA==",
4360 "dependencies": { 4125 "dependencies": {
4361 "@jest/schemas": "^29.4.3", 4126 "jest-matcher-utils": "^27.0.0",
4362 "ansi-styles": "^5.0.0", 4127 "pretty-format": "^27.0.0"
4363 "react-is": "^18.0.0"
4364 },
4365 "engines": {
4366 "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
4367 }
4368 },
4369 "node_modules/@types/jest/node_modules/pretty-format/node_modules/ansi-styles": {
4370 "version": "5.2.0",
4371 "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz",
4372 "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==",
4373 "engines": {
4374 "node": ">=10"
4375 },
4376 "funding": {
4377 "url": "https://github.com/chalk/ansi-styles?sponsor=1"
4378 }
4379 },
4380 "node_modules/@types/jest/node_modules/react-is": {
4381 "version": "18.2.0",
4382 "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz",
4383 "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w=="
4384 },
4385 "node_modules/@types/jest/node_modules/supports-color": {
4386 "version": "7.2.0",
4387 "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
4388 "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
4389 "dependencies": {
4390 "has-flag": "^4.0.0"
4391 },
4392 "engines": {
4393 "node": ">=8"
4394 } 4128 }
4395 }, 4129 },
4396 "node_modules/@types/json-schema": { 4130 "node_modules/@types/json-schema": {
@@ -4404,9 +4138,9 @@
4404 "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==" 4138 "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ=="
4405 }, 4139 },
4406 "node_modules/@types/mdast": { 4140 "node_modules/@types/mdast": {
4407 "version": "3.0.11", 4141 "version": "4.0.4",
4408 "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-3.0.11.tgz", 4142 "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.4.tgz",
4409 "integrity": "sha512-Y/uImid8aAwrEA24/1tcRZwpxX3pIFTSilcNDKSPn+Y2iDywSEachzRuvgAYYLR3wpGXAsMbv5lvKLDZLeYPAw==", 4143 "integrity": "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==",
4410 "dependencies": { 4144 "dependencies": {
4411 "@types/unist": "*" 4145 "@types/unist": "*"
4412 } 4146 }
@@ -4417,14 +4151,14 @@
4417 "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==" 4151 "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w=="
4418 }, 4152 },
4419 "node_modules/@types/ms": { 4153 "node_modules/@types/ms": {
4420 "version": "0.7.31", 4154 "version": "0.7.34",
4421 "resolved": "https://registry.npmjs.org/@types/ms/-/ms-0.7.31.tgz", 4155 "resolved": "https://registry.npmjs.org/@types/ms/-/ms-0.7.34.tgz",
4422 "integrity": "sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==" 4156 "integrity": "sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g=="
4423 }, 4157 },
4424 "node_modules/@types/node": { 4158 "node_modules/@types/node": {
4425 "version": "18.13.0", 4159 "version": "16.18.105",
4426 "resolved": "https://registry.npmjs.org/@types/node/-/node-18.13.0.tgz", 4160 "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.105.tgz",
4427 "integrity": "sha512-gC3TazRzGoOnoKAhUx+Q0t8S9Tzs74z7m0ipwGpSqQrleP14hKxP4/JUeEQcD3W1/aIpnWl8pHowI7WokuZpXg==" 4161 "integrity": "sha512-w2d0Z9yMk07uH3+Cx0N8lqFyi3yjXZxlbYappPj+AsOlT02OyxyiuNoNHdGt6EuiSm8Wtgp2YV7vWg+GMFrvFA=="
4428 }, 4162 },
4429 "node_modules/@types/node-forge": { 4163 "node_modules/@types/node-forge": {
4430 "version": "1.3.11", 4164 "version": "1.3.11",
@@ -4445,9 +4179,9 @@
4445 "integrity": "sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA==" 4179 "integrity": "sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA=="
4446 }, 4180 },
4447 "node_modules/@types/prop-types": { 4181 "node_modules/@types/prop-types": {
4448 "version": "15.7.5", 4182 "version": "15.7.12",
4449 "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz", 4183 "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.12.tgz",
4450 "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==" 4184 "integrity": "sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q=="
4451 }, 4185 },
4452 "node_modules/@types/q": { 4186 "node_modules/@types/q": {
4453 "version": "1.5.8", 4187 "version": "1.5.8",
@@ -4465,19 +4199,18 @@
4465 "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==" 4199 "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ=="
4466 }, 4200 },
4467 "node_modules/@types/react": { 4201 "node_modules/@types/react": {
4468 "version": "18.0.28", 4202 "version": "18.3.3",
4469 "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.28.tgz", 4203 "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.3.tgz",
4470 "integrity": "sha512-RD0ivG1kEztNBdoAK7lekI9M+azSnitIn85h4iOiaLjaTrMjzslhaqCGaI4IyCJ1RljWiLCEu4jyrLLgqxBTew==", 4204 "integrity": "sha512-hti/R0pS0q1/xx+TsI73XIqk26eBsISZ2R0wUijXIngRK9R/e7Xw/cXVxQK7R5JjW+SV4zGcn5hXjudkN/pLIw==",
4471 "dependencies": { 4205 "dependencies": {
4472 "@types/prop-types": "*", 4206 "@types/prop-types": "*",
4473 "@types/scheduler": "*",
4474 "csstype": "^3.0.2" 4207 "csstype": "^3.0.2"
4475 } 4208 }
4476 }, 4209 },
4477 "node_modules/@types/react-dom": { 4210 "node_modules/@types/react-dom": {
4478 "version": "18.0.11", 4211 "version": "18.3.0",
4479 "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.0.11.tgz", 4212 "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.0.tgz",
4480 "integrity": "sha512-O38bPbI2CWtgw/OoQoY+BRelw7uysmXbWvw3nLWO21H1HSh+GOlqPuXshJfjmpNlKiiSDG9cc1JZAaMmVdcTlw==", 4213 "integrity": "sha512-EhwApuTmMBmXuFOikhQLIBUn6uFg81SwLMOAUgodJF14SOBOCMdU04gDoYi0WOJJHD144TL32z4yDqCW3dnkQg==",
4481 "dependencies": { 4214 "dependencies": {
4482 "@types/react": "*" 4215 "@types/react": "*"
4483 } 4216 }
@@ -4495,11 +4228,6 @@
4495 "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz", 4228 "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz",
4496 "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==" 4229 "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA=="
4497 }, 4230 },
4498 "node_modules/@types/scheduler": {
4499 "version": "0.16.2",
4500 "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.2.tgz",
4501 "integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew=="
4502 },
4503 "node_modules/@types/semver": { 4231 "node_modules/@types/semver": {
4504 "version": "7.5.8", 4232 "version": "7.5.8",
4505 "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.8.tgz", 4233 "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.8.tgz",
@@ -4541,14 +4269,14 @@
4541 } 4269 }
4542 }, 4270 },
4543 "node_modules/@types/stack-utils": { 4271 "node_modules/@types/stack-utils": {
4544 "version": "2.0.1", 4272 "version": "2.0.3",
4545 "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", 4273 "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz",
4546 "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==" 4274 "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw=="
4547 }, 4275 },
4548 "node_modules/@types/testing-library__jest-dom": { 4276 "node_modules/@types/testing-library__jest-dom": {
4549 "version": "5.14.5", 4277 "version": "5.14.9",
4550 "resolved": "https://registry.npmjs.org/@types/testing-library__jest-dom/-/testing-library__jest-dom-5.14.5.tgz", 4278 "resolved": "https://registry.npmjs.org/@types/testing-library__jest-dom/-/testing-library__jest-dom-5.14.9.tgz",
4551 "integrity": "sha512-SBwbxYoyPIvxHbeHxTZX2Pe/74F/tX2/D3mMvzabdeJ25bBojfW0TyB8BHrbq/9zaaKICJZjLP+8r6AeZMFCuQ==", 4279 "integrity": "sha512-FSYhIjFlfOpGSRyVoMBMuS3ws5ehFQODymf3vlI7U1K8c7PHwWwFY7VREfmsuzHSOnoKs/9/Y983ayOs7eRzqw==",
4552 "dependencies": { 4280 "dependencies": {
4553 "@types/jest": "*" 4281 "@types/jest": "*"
4554 } 4282 }
@@ -4559,14 +4287,14 @@
4559 "integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==" 4287 "integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw=="
4560 }, 4288 },
4561 "node_modules/@types/unist": { 4289 "node_modules/@types/unist": {
4562 "version": "2.0.6", 4290 "version": "3.0.3",
4563 "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.6.tgz", 4291 "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz",
4564 "integrity": "sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ==" 4292 "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q=="
4565 }, 4293 },
4566 "node_modules/@types/ws": { 4294 "node_modules/@types/ws": {
4567 "version": "8.5.10", 4295 "version": "8.5.12",
4568 "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.10.tgz", 4296 "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.12.tgz",
4569 "integrity": "sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A==", 4297 "integrity": "sha512-3tPRkv1EtkDpzlgyKyI8pGsGZAGPEaXeu0DOj5DI25Ja91bdAYddYHbADRYVrZMRbfW+1l5YwXVDKohDJNQxkQ==",
4570 "dependencies": { 4298 "dependencies": {
4571 "@types/node": "*" 4299 "@types/node": "*"
4572 } 4300 }
@@ -4580,9 +4308,9 @@
4580 } 4308 }
4581 }, 4309 },
4582 "node_modules/@types/yargs-parser": { 4310 "node_modules/@types/yargs-parser": {
4583 "version": "21.0.0", 4311 "version": "21.0.3",
4584 "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz", 4312 "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz",
4585 "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==" 4313 "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ=="
4586 }, 4314 },
4587 "node_modules/@typescript-eslint/eslint-plugin": { 4315 "node_modules/@typescript-eslint/eslint-plugin": {
4588 "version": "5.62.0", 4316 "version": "5.62.0",
@@ -5084,14 +4812,14 @@
5084 } 4812 }
5085 }, 4813 },
5086 "node_modules/ajv-formats/node_modules/ajv": { 4814 "node_modules/ajv-formats/node_modules/ajv": {
5087 "version": "8.16.0", 4815 "version": "8.17.1",
5088 "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.16.0.tgz", 4816 "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz",
5089 "integrity": "sha512-F0twR8U1ZU67JIEtekUcLkXkoO5mMMmgGD8sK/xUFzJ805jxHQl92hImFAqqXMyMYjSPOyUPAwHYhB72g5sTXw==", 4817 "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==",
5090 "dependencies": { 4818 "dependencies": {
5091 "fast-deep-equal": "^3.1.3", 4819 "fast-deep-equal": "^3.1.3",
4820 "fast-uri": "^3.0.1",
5092 "json-schema-traverse": "^1.0.0", 4821 "json-schema-traverse": "^1.0.0",
5093 "require-from-string": "^2.0.2", 4822 "require-from-string": "^2.0.2"
5094 "uri-js": "^4.4.1"
5095 }, 4823 },
5096 "funding": { 4824 "funding": {
5097 "type": "github", 4825 "type": "github",
@@ -5343,17 +5071,6 @@
5343 "url": "https://github.com/sponsors/ljharb" 5071 "url": "https://github.com/sponsors/ljharb"
5344 } 5072 }
5345 }, 5073 },
5346 "node_modules/array.prototype.toreversed": {
5347 "version": "1.1.2",
5348 "resolved": "https://registry.npmjs.org/array.prototype.toreversed/-/array.prototype.toreversed-1.1.2.tgz",
5349 "integrity": "sha512-wwDCoT4Ck4Cz7sLtgUmzR5UV3YF5mFHUlbChCzZBQZ+0m2cl/DH3tKgvphv1nKgFsJ48oCSg6p91q2Vm0I/ZMA==",
5350 "dependencies": {
5351 "call-bind": "^1.0.2",
5352 "define-properties": "^1.2.0",
5353 "es-abstract": "^1.22.1",
5354 "es-shim-unscopables": "^1.0.0"
5355 }
5356 },
5357 "node_modules/array.prototype.tosorted": { 5074 "node_modules/array.prototype.tosorted": {
5358 "version": "1.1.4", 5075 "version": "1.1.4",
5359 "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.4.tgz", 5076 "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.4.tgz",
@@ -5401,9 +5118,9 @@
5401 "integrity": "sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==" 5118 "integrity": "sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ=="
5402 }, 5119 },
5403 "node_modules/async": { 5120 "node_modules/async": {
5404 "version": "3.2.5", 5121 "version": "3.2.6",
5405 "resolved": "https://registry.npmjs.org/async/-/async-3.2.5.tgz", 5122 "resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz",
5406 "integrity": "sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==" 5123 "integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA=="
5407 }, 5124 },
5408 "node_modules/asynckit": { 5125 "node_modules/asynckit": {
5409 "version": "0.4.0", 5126 "version": "0.4.0",
@@ -5419,9 +5136,9 @@
5419 } 5136 }
5420 }, 5137 },
5421 "node_modules/autoprefixer": { 5138 "node_modules/autoprefixer": {
5422 "version": "10.4.19", 5139 "version": "10.4.20",
5423 "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.19.tgz", 5140 "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.20.tgz",
5424 "integrity": "sha512-BaENR2+zBZ8xXhM4pUaKUxlVdxZ0EZhjvbopwnXmxRUfqDmwSpC2lAi/QXvx7NRdPCo1WKEcEF6mV64si1z4Ew==", 5141 "integrity": "sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6+c7wUvx/16g==",
5425 "funding": [ 5142 "funding": [
5426 { 5143 {
5427 "type": "opencollective", 5144 "type": "opencollective",
@@ -5437,11 +5154,11 @@
5437 } 5154 }
5438 ], 5155 ],
5439 "dependencies": { 5156 "dependencies": {
5440 "browserslist": "^4.23.0", 5157 "browserslist": "^4.23.3",
5441 "caniuse-lite": "^1.0.30001599", 5158 "caniuse-lite": "^1.0.30001646",
5442 "fraction.js": "^4.3.7", 5159 "fraction.js": "^4.3.7",
5443 "normalize-range": "^0.1.2", 5160 "normalize-range": "^0.1.2",
5444 "picocolors": "^1.0.0", 5161 "picocolors": "^1.0.1",
5445 "postcss-value-parser": "^4.2.0" 5162 "postcss-value-parser": "^4.2.0"
5446 }, 5163 },
5447 "bin": { 5164 "bin": {
@@ -5469,13 +5186,36 @@
5469 } 5186 }
5470 }, 5187 },
5471 "node_modules/axe-core": { 5188 "node_modules/axe-core": {
5472 "version": "4.9.1", 5189 "version": "4.10.0",
5473 "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.9.1.tgz", 5190 "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.10.0.tgz",
5474 "integrity": "sha512-QbUdXJVTpvUTHU7871ppZkdOLBeGUKBQWHkHrvN2V9IQWGMt61zf3B45BtzjxEJzYuj0JBjBZP/hmYS/R9pmAw==", 5191 "integrity": "sha512-Mr2ZakwQ7XUAjp7pAwQWRhhK8mQQ6JAaNWSjmjxil0R8BPioMtQsTLOolGYkji1rcL++3dCqZA3zWqpT+9Ew6g==",
5475 "engines": { 5192 "engines": {
5476 "node": ">=4" 5193 "node": ">=4"
5477 } 5194 }
5478 }, 5195 },
5196 "node_modules/axios": {
5197 "version": "1.7.4",
5198 "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.4.tgz",
5199 "integrity": "sha512-DukmaFRnY6AzAALSH4J2M3k6PkaC+MfaAGdEERRWcC9q3/TWQwLpHR8ZRLKTdQ3aBDL64EdluRDjJqKw+BPZEw==",
5200 "dependencies": {
5201 "follow-redirects": "^1.15.6",
5202 "form-data": "^4.0.0",
5203 "proxy-from-env": "^1.1.0"
5204 }
5205 },
5206 "node_modules/axios/node_modules/form-data": {
5207 "version": "4.0.0",
5208 "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz",
5209 "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==",
5210 "dependencies": {
5211 "asynckit": "^0.4.0",
5212 "combined-stream": "^1.0.8",
5213 "mime-types": "^2.1.12"
5214 },
5215 "engines": {
5216 "node": ">= 6"
5217 }
5218 },
5479 "node_modules/axobject-query": { 5219 "node_modules/axobject-query": {
5480 "version": "3.1.1", 5220 "version": "3.1.1",
5481 "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-3.1.1.tgz", 5221 "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-3.1.1.tgz",
@@ -5677,12 +5417,12 @@
5677 } 5417 }
5678 }, 5418 },
5679 "node_modules/babel-plugin-polyfill-corejs3": { 5419 "node_modules/babel-plugin-polyfill-corejs3": {
5680 "version": "0.10.4", 5420 "version": "0.10.6",
5681 "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.10.4.tgz", 5421 "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.10.6.tgz",
5682 "integrity": "sha512-25J6I8NGfa5YkCDogHRID3fVCadIR8/pGl1/spvCkzb6lVn6SR3ojpx9nOn9iEBcUsjY24AmdKm5khcfKdylcg==", 5422 "integrity": "sha512-b37+KR2i/khY5sKmWNVQAnitvquQbNdWy6lJdsr0kmquCKEEUgMKK4SboVM3HtfnZilfjr4MMQ7vY58FVWDtIA==",
5683 "dependencies": { 5423 "dependencies": {
5684 "@babel/helper-define-polyfill-provider": "^0.6.1", 5424 "@babel/helper-define-polyfill-provider": "^0.6.2",
5685 "core-js-compat": "^3.36.1" 5425 "core-js-compat": "^3.38.0"
5686 }, 5426 },
5687 "peerDependencies": { 5427 "peerDependencies": {
5688 "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" 5428 "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0"
@@ -5705,22 +5445,25 @@
5705 "integrity": "sha512-eqj0hVcJUR57/Ug2zE1Yswsw4LhuqqHhD+8v120T1cl3kjg76QwtyBrdIk4WVwK+lAhBJVYCd/v+4nc4y+8JsA==" 5445 "integrity": "sha512-eqj0hVcJUR57/Ug2zE1Yswsw4LhuqqHhD+8v120T1cl3kjg76QwtyBrdIk4WVwK+lAhBJVYCd/v+4nc4y+8JsA=="
5706 }, 5446 },
5707 "node_modules/babel-preset-current-node-syntax": { 5447 "node_modules/babel-preset-current-node-syntax": {
5708 "version": "1.0.1", 5448 "version": "1.1.0",
5709 "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", 5449 "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.1.0.tgz",
5710 "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", 5450 "integrity": "sha512-ldYss8SbBlWva1bs28q78Ju5Zq1F+8BrqBZZ0VFhLBvhh6lCpC2o3gDJi/5DRLs9FgYZCnmPYIVFU4lRXCkyUw==",
5711 "dependencies": { 5451 "dependencies": {
5712 "@babel/plugin-syntax-async-generators": "^7.8.4", 5452 "@babel/plugin-syntax-async-generators": "^7.8.4",
5713 "@babel/plugin-syntax-bigint": "^7.8.3", 5453 "@babel/plugin-syntax-bigint": "^7.8.3",
5714 "@babel/plugin-syntax-class-properties": "^7.8.3", 5454 "@babel/plugin-syntax-class-properties": "^7.12.13",
5715 "@babel/plugin-syntax-import-meta": "^7.8.3", 5455 "@babel/plugin-syntax-class-static-block": "^7.14.5",
5456 "@babel/plugin-syntax-import-attributes": "^7.24.7",
5457 "@babel/plugin-syntax-import-meta": "^7.10.4",
5716 "@babel/plugin-syntax-json-strings": "^7.8.3", 5458 "@babel/plugin-syntax-json-strings": "^7.8.3",
5717 "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", 5459 "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4",
5718 "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", 5460 "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3",
5719 "@babel/plugin-syntax-numeric-separator": "^7.8.3", 5461 "@babel/plugin-syntax-numeric-separator": "^7.10.4",
5720 "@babel/plugin-syntax-object-rest-spread": "^7.8.3", 5462 "@babel/plugin-syntax-object-rest-spread": "^7.8.3",
5721 "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", 5463 "@babel/plugin-syntax-optional-catch-binding": "^7.8.3",
5722 "@babel/plugin-syntax-optional-chaining": "^7.8.3", 5464 "@babel/plugin-syntax-optional-chaining": "^7.8.3",
5723 "@babel/plugin-syntax-top-level-await": "^7.8.3" 5465 "@babel/plugin-syntax-private-property-in-object": "^7.14.5",
5466 "@babel/plugin-syntax-top-level-await": "^7.14.5"
5724 }, 5467 },
5725 "peerDependencies": { 5468 "peerDependencies": {
5726 "@babel/core": "^7.0.0" 5469 "@babel/core": "^7.0.0"
@@ -5917,9 +5660,9 @@
5917 "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==" 5660 "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow=="
5918 }, 5661 },
5919 "node_modules/browserslist": { 5662 "node_modules/browserslist": {
5920 "version": "4.23.2", 5663 "version": "4.23.3",
5921 "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.2.tgz", 5664 "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.3.tgz",
5922 "integrity": "sha512-qkqSyistMYdxAcw+CzbZwlBy8AGmS/eEWs+sEV5TnLRGDOL+C5M2EnH6tlZyg0YoAxGJAFKh61En9BR941GnHA==", 5665 "integrity": "sha512-btwCFJVjI4YWDNfau8RhZ+B1Q/VLoUITrm3RlP6y1tYGWIOa+InuYiRGXUBXo8nA1qKmHMyLB/iVQg5TT4eFoA==",
5923 "funding": [ 5666 "funding": [
5924 { 5667 {
5925 "type": "opencollective", 5668 "type": "opencollective",
@@ -5935,9 +5678,9 @@
5935 } 5678 }
5936 ], 5679 ],
5937 "dependencies": { 5680 "dependencies": {
5938 "caniuse-lite": "^1.0.30001640", 5681 "caniuse-lite": "^1.0.30001646",
5939 "electron-to-chromium": "^1.4.820", 5682 "electron-to-chromium": "^1.5.4",
5940 "node-releases": "^2.0.14", 5683 "node-releases": "^2.0.18",
5941 "update-browserslist-db": "^1.1.0" 5684 "update-browserslist-db": "^1.1.0"
5942 }, 5685 },
5943 "bin": { 5686 "bin": {
@@ -6045,9 +5788,9 @@
6045 } 5788 }
6046 }, 5789 },
6047 "node_modules/caniuse-lite": { 5790 "node_modules/caniuse-lite": {
6048 "version": "1.0.30001641", 5791 "version": "1.0.30001651",
6049 "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001641.tgz", 5792 "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001651.tgz",
6050 "integrity": "sha512-Phv5thgl67bHYo1TtMY/MurjkHhV4EDaCosezRXgZ8jzA/Ub+wjxAvbGvjoFENStinwi5kCyOYV3mi5tOGykwA==", 5793 "integrity": "sha512-9Cf+Xv1jJNe1xPZLGuUXLNkE1BoDkqRqYyFJ9TDYSqhduqA4hu4oR9HluGoWYQC/aj8WHjsGVV+bwkh0+tegRg==",
6051 "funding": [ 5794 "funding": [
6052 { 5795 {
6053 "type": "opencollective", 5796 "type": "opencollective",
@@ -6071,6 +5814,15 @@
6071 "node": ">=4" 5814 "node": ">=4"
6072 } 5815 }
6073 }, 5816 },
5817 "node_modules/ccount": {
5818 "version": "2.0.1",
5819 "resolved": "https://registry.npmjs.org/ccount/-/ccount-2.0.1.tgz",
5820 "integrity": "sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==",
5821 "funding": {
5822 "type": "github",
5823 "url": "https://github.com/sponsors/wooorm"
5824 }
5825 },
6074 "node_modules/chalk": { 5826 "node_modules/chalk": {
6075 "version": "2.4.2", 5827 "version": "2.4.2",
6076 "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", 5828 "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
@@ -6101,6 +5853,33 @@
6101 "url": "https://github.com/sponsors/wooorm" 5853 "url": "https://github.com/sponsors/wooorm"
6102 } 5854 }
6103 }, 5855 },
5856 "node_modules/character-entities-html4": {
5857 "version": "2.1.0",
5858 "resolved": "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-2.1.0.tgz",
5859 "integrity": "sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==",
5860 "funding": {
5861 "type": "github",
5862 "url": "https://github.com/sponsors/wooorm"
5863 }
5864 },
5865 "node_modules/character-entities-legacy": {
5866 "version": "3.0.0",
5867 "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz",
5868 "integrity": "sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==",
5869 "funding": {
5870 "type": "github",
5871 "url": "https://github.com/sponsors/wooorm"
5872 }
5873 },
5874 "node_modules/character-reference-invalid": {
5875 "version": "2.0.1",
5876 "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-2.0.1.tgz",
5877 "integrity": "sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==",
5878 "funding": {
5879 "type": "github",
5880 "url": "https://github.com/sponsors/wooorm"
5881 }
5882 },
6104 "node_modules/check-types": { 5883 "node_modules/check-types": {
6105 "version": "11.2.3", 5884 "version": "11.2.3",
6106 "resolved": "https://registry.npmjs.org/check-types/-/check-types-11.2.3.tgz", 5885 "resolved": "https://registry.npmjs.org/check-types/-/check-types-11.2.3.tgz",
@@ -6149,9 +5928,9 @@
6149 } 5928 }
6150 }, 5929 },
6151 "node_modules/ci-info": { 5930 "node_modules/ci-info": {
6152 "version": "3.8.0", 5931 "version": "3.9.0",
6153 "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.8.0.tgz", 5932 "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz",
6154 "integrity": "sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==", 5933 "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==",
6155 "funding": [ 5934 "funding": [
6156 { 5935 {
6157 "type": "github", 5936 "type": "github",
@@ -6371,9 +6150,9 @@
6371 } 6150 }
6372 }, 6151 },
6373 "node_modules/convert-source-map": { 6152 "node_modules/convert-source-map": {
6374 "version": "1.9.0", 6153 "version": "2.0.0",
6375 "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", 6154 "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz",
6376 "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==" 6155 "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg=="
6377 }, 6156 },
6378 "node_modules/cookie": { 6157 "node_modules/cookie": {
6379 "version": "0.6.0", 6158 "version": "0.6.0",
@@ -6389,9 +6168,9 @@
6389 "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" 6168 "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ=="
6390 }, 6169 },
6391 "node_modules/core-js": { 6170 "node_modules/core-js": {
6392 "version": "3.37.1", 6171 "version": "3.38.1",
6393 "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.37.1.tgz", 6172 "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.38.1.tgz",
6394 "integrity": "sha512-Xn6qmxrQZyB0FFY8E3bgRXei3lWDJHhvI+u0q9TKIYM49G8pAr0FgnnrFRAmsbptZL1yxRADVXn+x5AGsbBfyw==", 6173 "integrity": "sha512-OP35aUorbU3Zvlx7pjsFdu1rGNnD4pgw/CWoYzRY3t2EzoVT7shKHY1dlAy3f41cGIO7ZDPQimhGFTlEYkG/Hw==",
6395 "hasInstallScript": true, 6174 "hasInstallScript": true,
6396 "funding": { 6175 "funding": {
6397 "type": "opencollective", 6176 "type": "opencollective",
@@ -6399,11 +6178,11 @@
6399 } 6178 }
6400 }, 6179 },
6401 "node_modules/core-js-compat": { 6180 "node_modules/core-js-compat": {
6402 "version": "3.37.1", 6181 "version": "3.38.1",
6403 "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.37.1.tgz", 6182 "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.38.1.tgz",
6404 "integrity": "sha512-9TNiImhKvQqSUkOvk/mMRZzOANTiEVC7WaBNhHcKM7x+/5E1l5NvsysR19zuDQScE8k+kfQXWRN3AtS/eOSHpg==", 6183 "integrity": "sha512-JRH6gfXxGmrzF3tZ57lFx97YARxCXPaMzPo6jELZhv88pBH5VXpQ+y0znKGlFnzuaihqhLbefxSJxWJMPtfDzw==",
6405 "dependencies": { 6184 "dependencies": {
6406 "browserslist": "^4.23.0" 6185 "browserslist": "^4.23.3"
6407 }, 6186 },
6408 "funding": { 6187 "funding": {
6409 "type": "opencollective", 6188 "type": "opencollective",
@@ -6411,9 +6190,9 @@
6411 } 6190 }
6412 }, 6191 },
6413 "node_modules/core-js-pure": { 6192 "node_modules/core-js-pure": {
6414 "version": "3.37.1", 6193 "version": "3.38.1",
6415 "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.37.1.tgz", 6194 "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.38.1.tgz",
6416 "integrity": "sha512-J/r5JTHSmzTxbiYYrzXg9w1VpqrYt+gexenBE9pugeyhwPZTAEJddyiReJWsLO6uNQ8xJZFbod6XC7KKwatCiA==", 6195 "integrity": "sha512-BY8Etc1FZqdw1glX0XNOq2FDwfrg/VGqoZOZCdaL+UmdaqDwQwYXkMJT4t6In+zfEfOJDcM9T0KdbBeJg8KKCQ==",
6417 "hasInstallScript": true, 6196 "hasInstallScript": true,
6418 "funding": { 6197 "funding": {
6419 "type": "opencollective", 6198 "type": "opencollective",
@@ -6812,9 +6591,9 @@
6812 "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==" 6591 "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg=="
6813 }, 6592 },
6814 "node_modules/csstype": { 6593 "node_modules/csstype": {
6815 "version": "3.1.1", 6594 "version": "3.1.3",
6816 "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.1.tgz", 6595 "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz",
6817 "integrity": "sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw==" 6596 "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw=="
6818 }, 6597 },
6819 "node_modules/damerau-levenshtein": { 6598 "node_modules/damerau-levenshtein": {
6820 "version": "1.0.8", 6599 "version": "1.0.8",
@@ -6883,9 +6662,9 @@
6883 } 6662 }
6884 }, 6663 },
6885 "node_modules/debug": { 6664 "node_modules/debug": {
6886 "version": "4.3.4", 6665 "version": "4.3.6",
6887 "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", 6666 "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.6.tgz",
6888 "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", 6667 "integrity": "sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==",
6889 "dependencies": { 6668 "dependencies": {
6890 "ms": "2.1.2" 6669 "ms": "2.1.2"
6891 }, 6670 },
@@ -6921,15 +6700,16 @@
6921 "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==" 6700 "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA=="
6922 }, 6701 },
6923 "node_modules/deep-equal": { 6702 "node_modules/deep-equal": {
6924 "version": "2.2.0", 6703 "version": "2.2.3",
6925 "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-2.2.0.tgz", 6704 "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-2.2.3.tgz",
6926 "integrity": "sha512-RdpzE0Hv4lhowpIUKKMJfeH6C1pXdtT1/it80ubgWqwI3qpuxUBpC1S4hnHg+zjnuOoDkzUtUCEEkG+XG5l3Mw==", 6705 "integrity": "sha512-ZIwpnevOurS8bpT4192sqAowWM76JDKSHYzMLty3BZGSswgq6pBaH3DhCSW5xVAZICZyKdOBPjwww5wfgT/6PA==",
6927 "dependencies": { 6706 "dependencies": {
6928 "call-bind": "^1.0.2", 6707 "array-buffer-byte-length": "^1.0.0",
6929 "es-get-iterator": "^1.1.2", 6708 "call-bind": "^1.0.5",
6930 "get-intrinsic": "^1.1.3", 6709 "es-get-iterator": "^1.1.3",
6710 "get-intrinsic": "^1.2.2",
6931 "is-arguments": "^1.1.1", 6711 "is-arguments": "^1.1.1",
6932 "is-array-buffer": "^3.0.1", 6712 "is-array-buffer": "^3.0.2",
6933 "is-date-object": "^1.0.5", 6713 "is-date-object": "^1.0.5",
6934 "is-regex": "^1.1.4", 6714 "is-regex": "^1.1.4",
6935 "is-shared-array-buffer": "^1.0.2", 6715 "is-shared-array-buffer": "^1.0.2",
@@ -6937,11 +6717,14 @@
6937 "object-is": "^1.1.5", 6717 "object-is": "^1.1.5",
6938 "object-keys": "^1.1.1", 6718 "object-keys": "^1.1.1",
6939 "object.assign": "^4.1.4", 6719 "object.assign": "^4.1.4",
6940 "regexp.prototype.flags": "^1.4.3", 6720 "regexp.prototype.flags": "^1.5.1",
6941 "side-channel": "^1.0.4", 6721 "side-channel": "^1.0.4",
6942 "which-boxed-primitive": "^1.0.2", 6722 "which-boxed-primitive": "^1.0.2",
6943 "which-collection": "^1.0.1", 6723 "which-collection": "^1.0.1",
6944 "which-typed-array": "^1.1.9" 6724 "which-typed-array": "^1.1.13"
6725 },
6726 "engines": {
6727 "node": ">= 0.4"
6945 }, 6728 },
6946 "funding": { 6729 "funding": {
6947 "url": "https://github.com/sponsors/ljharb" 6730 "url": "https://github.com/sponsors/ljharb"
@@ -7086,19 +6869,23 @@
7086 "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", 6869 "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
7087 "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" 6870 "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
7088 }, 6871 },
6872 "node_modules/devlop": {
6873 "version": "1.1.0",
6874 "resolved": "https://registry.npmjs.org/devlop/-/devlop-1.1.0.tgz",
6875 "integrity": "sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==",
6876 "dependencies": {
6877 "dequal": "^2.0.0"
6878 },
6879 "funding": {
6880 "type": "github",
6881 "url": "https://github.com/sponsors/wooorm"
6882 }
6883 },
7089 "node_modules/didyoumean": { 6884 "node_modules/didyoumean": {
7090 "version": "1.2.2", 6885 "version": "1.2.2",
7091 "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", 6886 "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz",
7092 "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==" 6887 "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw=="
7093 }, 6888 },
7094 "node_modules/diff": {
7095 "version": "5.1.0",
7096 "resolved": "https://registry.npmjs.org/diff/-/diff-5.1.0.tgz",
7097 "integrity": "sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==",
7098 "engines": {
7099 "node": ">=0.3.1"
7100 }
7101 },
7102 "node_modules/diff-sequences": { 6889 "node_modules/diff-sequences": {
7103 "version": "27.5.1", 6890 "version": "27.5.1",
7104 "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.5.1.tgz", 6891 "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.5.1.tgz",
@@ -7281,9 +7068,9 @@
7281 } 7068 }
7282 }, 7069 },
7283 "node_modules/electron-to-chromium": { 7070 "node_modules/electron-to-chromium": {
7284 "version": "1.4.825", 7071 "version": "1.5.12",
7285 "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.825.tgz", 7072 "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.12.tgz",
7286 "integrity": "sha512-OCcF+LwdgFGcsYPYC5keEEFC2XT0gBhrYbeGzHCx7i9qRFbzO/AqTmc/C/1xNhJj+JA7rzlN7mpBuStshh96Cg==" 7073 "integrity": "sha512-tIhPkdlEoCL1Y+PToq3zRNehUaKp3wBX/sr7aclAWdIWjvqAe/Im/H0SiCM4c1Q8BLPHCdoJTol+ZblflydehA=="
7287 }, 7074 },
7288 "node_modules/emittery": { 7075 "node_modules/emittery": {
7289 "version": "0.8.1", 7076 "version": "0.8.1",
@@ -7318,9 +7105,9 @@
7318 } 7105 }
7319 }, 7106 },
7320 "node_modules/enhanced-resolve": { 7107 "node_modules/enhanced-resolve": {
7321 "version": "5.17.0", 7108 "version": "5.17.1",
7322 "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.17.0.tgz", 7109 "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.17.1.tgz",
7323 "integrity": "sha512-dwDPwZL0dmye8Txp2gzFmA6sxALaSvdRDjPH0viLcKrtlOL3tw62nWWweVD1SdILDTJrbrL6tdWVN58Wo6U3eA==", 7110 "integrity": "sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==",
7324 "dependencies": { 7111 "dependencies": {
7325 "graceful-fs": "^4.2.4", 7112 "graceful-fs": "^4.2.4",
7326 "tapable": "^2.2.0" 7113 "tapable": "^2.2.0"
@@ -7832,34 +7619,34 @@
7832 } 7619 }
7833 }, 7620 },
7834 "node_modules/eslint-plugin-react": { 7621 "node_modules/eslint-plugin-react": {
7835 "version": "7.34.3", 7622 "version": "7.35.0",
7836 "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.34.3.tgz", 7623 "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.35.0.tgz",
7837 "integrity": "sha512-aoW4MV891jkUulwDApQbPYTVZmeuSyFrudpbTAQuj5Fv8VL+o6df2xIGpw8B0hPjAaih1/Fb0om9grCdyFYemA==", 7624 "integrity": "sha512-v501SSMOWv8gerHkk+IIQBkcGRGrO2nfybfj5pLxuJNFTPxxA3PSryhXTK+9pNbtkggheDdsC0E9Q8CuPk6JKA==",
7838 "dependencies": { 7625 "dependencies": {
7839 "array-includes": "^3.1.8", 7626 "array-includes": "^3.1.8",
7840 "array.prototype.findlast": "^1.2.5", 7627 "array.prototype.findlast": "^1.2.5",
7841 "array.prototype.flatmap": "^1.3.2", 7628 "array.prototype.flatmap": "^1.3.2",
7842 "array.prototype.toreversed": "^1.1.2",
7843 "array.prototype.tosorted": "^1.1.4", 7629 "array.prototype.tosorted": "^1.1.4",
7844 "doctrine": "^2.1.0", 7630 "doctrine": "^2.1.0",
7845 "es-iterator-helpers": "^1.0.19", 7631 "es-iterator-helpers": "^1.0.19",
7846 "estraverse": "^5.3.0", 7632 "estraverse": "^5.3.0",
7633 "hasown": "^2.0.2",
7847 "jsx-ast-utils": "^2.4.1 || ^3.0.0", 7634 "jsx-ast-utils": "^2.4.1 || ^3.0.0",
7848 "minimatch": "^3.1.2", 7635 "minimatch": "^3.1.2",
7849 "object.entries": "^1.1.8", 7636 "object.entries": "^1.1.8",
7850 "object.fromentries": "^2.0.8", 7637 "object.fromentries": "^2.0.8",
7851 "object.hasown": "^1.1.4",
7852 "object.values": "^1.2.0", 7638 "object.values": "^1.2.0",
7853 "prop-types": "^15.8.1", 7639 "prop-types": "^15.8.1",
7854 "resolve": "^2.0.0-next.5", 7640 "resolve": "^2.0.0-next.5",
7855 "semver": "^6.3.1", 7641 "semver": "^6.3.1",
7856 "string.prototype.matchall": "^4.0.11" 7642 "string.prototype.matchall": "^4.0.11",
7643 "string.prototype.repeat": "^1.0.0"
7857 }, 7644 },
7858 "engines": { 7645 "engines": {
7859 "node": ">=4" 7646 "node": ">=4"
7860 }, 7647 },
7861 "peerDependencies": { 7648 "peerDependencies": {
7862 "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8" 7649 "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7"
7863 } 7650 }
7864 }, 7651 },
7865 "node_modules/eslint-plugin-react-hooks": { 7652 "node_modules/eslint-plugin-react-hooks": {
@@ -8238,6 +8025,15 @@
8238 "node": ">=4.0" 8025 "node": ">=4.0"
8239 } 8026 }
8240 }, 8027 },
8028 "node_modules/estree-util-is-identifier-name": {
8029 "version": "3.0.0",
8030 "resolved": "https://registry.npmjs.org/estree-util-is-identifier-name/-/estree-util-is-identifier-name-3.0.0.tgz",
8031 "integrity": "sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg==",
8032 "funding": {
8033 "type": "opencollective",
8034 "url": "https://opencollective.com/unified"
8035 }
8036 },
8241 "node_modules/estree-walker": { 8037 "node_modules/estree-walker": {
8242 "version": "1.0.1", 8038 "version": "1.0.1",
8243 "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", 8039 "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz",
@@ -8416,6 +8212,11 @@
8416 "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", 8212 "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
8417 "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==" 8213 "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw=="
8418 }, 8214 },
8215 "node_modules/fast-uri": {
8216 "version": "3.0.1",
8217 "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.1.tgz",
8218 "integrity": "sha512-MWipKbbYiYI0UC7cl8m/i/IWTqfC8YXsqjzybjddLsFjStroQzsHXkc73JutMvBiXmOvapk+axIl79ig5t55Bw=="
8219 },
8419 "node_modules/fastq": { 8220 "node_modules/fastq": {
8420 "version": "1.17.1", 8221 "version": "1.17.1",
8421 "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", 8222 "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz",
@@ -8640,9 +8441,9 @@
8640 } 8441 }
8641 }, 8442 },
8642 "node_modules/foreground-child": { 8443 "node_modules/foreground-child": {
8643 "version": "3.2.1", 8444 "version": "3.3.0",
8644 "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.2.1.tgz", 8445 "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.0.tgz",
8645 "integrity": "sha512-PXUUyLqrR2XCWICfv6ukppP96sdFwWbNEnfEMt7jNsISjMsvaLNinAHNDYyvkyU+SZG2BTSbT5NjG+vZslfGTA==", 8446 "integrity": "sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==",
8646 "dependencies": { 8447 "dependencies": {
8647 "cross-spawn": "^7.0.0", 8448 "cross-spawn": "^7.0.0",
8648 "signal-exit": "^4.0.1" 8449 "signal-exit": "^4.0.1"
@@ -9237,10 +9038,39 @@
9237 "node": ">= 0.4" 9038 "node": ">= 0.4"
9238 } 9039 }
9239 }, 9040 },
9041 "node_modules/hast-util-to-jsx-runtime": {
9042 "version": "2.3.0",
9043 "resolved": "https://registry.npmjs.org/hast-util-to-jsx-runtime/-/hast-util-to-jsx-runtime-2.3.0.tgz",
9044 "integrity": "sha512-H/y0+IWPdsLLS738P8tDnrQ8Z+dj12zQQ6WC11TIM21C8WFVoIxcqWXf2H3hiTVZjF1AWqoimGwrTWecWrnmRQ==",
9045 "dependencies": {
9046 "@types/estree": "^1.0.0",
9047 "@types/hast": "^3.0.0",
9048 "@types/unist": "^3.0.0",
9049 "comma-separated-tokens": "^2.0.0",
9050 "devlop": "^1.0.0",
9051 "estree-util-is-identifier-name": "^3.0.0",
9052 "hast-util-whitespace": "^3.0.0",
9053 "mdast-util-mdx-expression": "^2.0.0",
9054 "mdast-util-mdx-jsx": "^3.0.0",
9055 "mdast-util-mdxjs-esm": "^2.0.0",
9056 "property-information": "^6.0.0",
9057 "space-separated-tokens": "^2.0.0",
9058 "style-to-object": "^1.0.0",
9059 "unist-util-position": "^5.0.0",
9060 "vfile-message": "^4.0.0"
9061 },
9062 "funding": {
9063 "type": "opencollective",
9064 "url": "https://opencollective.com/unified"
9065 }
9066 },
9240 "node_modules/hast-util-whitespace": { 9067 "node_modules/hast-util-whitespace": {
9241 "version": "2.0.1", 9068 "version": "3.0.0",
9242 "resolved": "https://registry.npmjs.org/hast-util-whitespace/-/hast-util-whitespace-2.0.1.tgz", 9069 "resolved": "https://registry.npmjs.org/hast-util-whitespace/-/hast-util-whitespace-3.0.0.tgz",
9243 "integrity": "sha512-nAxA0v8+vXSBDt3AnRUNjyRIQ0rD+ntpbAp4LnPkumc5M9yUbSMa4XDU9Q6etY4f1Wp4bNgvc1yjiZtsTTrSng==", 9070 "integrity": "sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==",
9071 "dependencies": {
9072 "@types/hast": "^3.0.0"
9073 },
9244 "funding": { 9074 "funding": {
9245 "type": "opencollective", 9075 "type": "opencollective",
9246 "url": "https://opencollective.com/unified" 9076 "url": "https://opencollective.com/unified"
@@ -9356,6 +9186,15 @@
9356 "node": ">=12" 9186 "node": ">=12"
9357 } 9187 }
9358 }, 9188 },
9189 "node_modules/html-url-attributes": {
9190 "version": "3.0.0",
9191 "resolved": "https://registry.npmjs.org/html-url-attributes/-/html-url-attributes-3.0.0.tgz",
9192 "integrity": "sha512-/sXbVCWayk6GDVg3ctOX6nxaVj7So40FcFAnWlWGNAB1LpYKcV5Cd10APjPjW80O7zYW2MsjBV4zZ7IZO5fVow==",
9193 "funding": {
9194 "type": "opencollective",
9195 "url": "https://opencollective.com/unified"
9196 }
9197 },
9359 "node_modules/html-webpack-plugin": { 9198 "node_modules/html-webpack-plugin": {
9360 "version": "5.6.0", 9199 "version": "5.6.0",
9361 "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-5.6.0.tgz", 9200 "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-5.6.0.tgz",
@@ -9538,9 +9377,9 @@
9538 } 9377 }
9539 }, 9378 },
9540 "node_modules/ignore": { 9379 "node_modules/ignore": {
9541 "version": "5.3.1", 9380 "version": "5.3.2",
9542 "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", 9381 "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz",
9543 "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", 9382 "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==",
9544 "engines": { 9383 "engines": {
9545 "node": ">= 4" 9384 "node": ">= 4"
9546 } 9385 }
@@ -9578,9 +9417,9 @@
9578 } 9417 }
9579 }, 9418 },
9580 "node_modules/import-local": { 9419 "node_modules/import-local": {
9581 "version": "3.1.0", 9420 "version": "3.2.0",
9582 "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", 9421 "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.2.0.tgz",
9583 "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", 9422 "integrity": "sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA==",
9584 "dependencies": { 9423 "dependencies": {
9585 "pkg-dir": "^4.2.0", 9424 "pkg-dir": "^4.2.0",
9586 "resolve-cwd": "^3.0.0" 9425 "resolve-cwd": "^3.0.0"
@@ -9632,9 +9471,9 @@
9632 "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" 9471 "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew=="
9633 }, 9472 },
9634 "node_modules/inline-style-parser": { 9473 "node_modules/inline-style-parser": {
9635 "version": "0.1.1", 9474 "version": "0.2.3",
9636 "resolved": "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.1.1.tgz", 9475 "resolved": "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.2.3.tgz",
9637 "integrity": "sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==" 9476 "integrity": "sha512-qlD8YNDqyTKTyuITrDOffsl6Tdhv+UC4hcdAVuQsK4IMQ99nSgd1MIA/Q+jQYoh9r3hVUXhYh7urSRmXPkW04g=="
9638 }, 9477 },
9639 "node_modules/internal-slot": { 9478 "node_modules/internal-slot": {
9640 "version": "1.0.7", 9479 "version": "1.0.7",
@@ -9657,6 +9496,28 @@
9657 "node": ">= 10" 9496 "node": ">= 10"
9658 } 9497 }
9659 }, 9498 },
9499 "node_modules/is-alphabetical": {
9500 "version": "2.0.1",
9501 "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-2.0.1.tgz",
9502 "integrity": "sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==",
9503 "funding": {
9504 "type": "github",
9505 "url": "https://github.com/sponsors/wooorm"
9506 }
9507 },
9508 "node_modules/is-alphanumerical": {
9509 "version": "2.0.1",
9510 "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-2.0.1.tgz",
9511 "integrity": "sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==",
9512 "dependencies": {
9513 "is-alphabetical": "^2.0.0",
9514 "is-decimal": "^2.0.0"
9515 },
9516 "funding": {
9517 "type": "github",
9518 "url": "https://github.com/sponsors/wooorm"
9519 }
9520 },
9660 "node_modules/is-arguments": { 9521 "node_modules/is-arguments": {
9661 "version": "1.1.1", 9522 "version": "1.1.1",
9662 "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", 9523 "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz",
@@ -9743,28 +9604,6 @@
9743 "url": "https://github.com/sponsors/ljharb" 9604 "url": "https://github.com/sponsors/ljharb"
9744 } 9605 }
9745 }, 9606 },
9746 "node_modules/is-buffer": {
9747 "version": "2.0.5",
9748 "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz",
9749 "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==",
9750 "funding": [
9751 {
9752 "type": "github",
9753 "url": "https://github.com/sponsors/feross"
9754 },
9755 {
9756 "type": "patreon",
9757 "url": "https://www.patreon.com/feross"
9758 },
9759 {
9760 "type": "consulting",
9761 "url": "https://feross.org/support"
9762 }
9763 ],
9764 "engines": {
9765 "node": ">=4"
9766 }
9767 },
9768 "node_modules/is-callable": { 9607 "node_modules/is-callable": {
9769 "version": "1.2.7", 9608 "version": "1.2.7",
9770 "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", 9609 "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz",
@@ -9777,9 +9616,9 @@
9777 } 9616 }
9778 }, 9617 },
9779 "node_modules/is-core-module": { 9618 "node_modules/is-core-module": {
9780 "version": "2.14.0", 9619 "version": "2.15.0",
9781 "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.14.0.tgz", 9620 "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.15.0.tgz",
9782 "integrity": "sha512-a5dFJih5ZLYlRtDc0dZWP7RiKr6xIKzmn/oAYCDvdLThadVgyJwlaoQPmRtMSpz+rk0OGAgIu+TcM9HUF0fk1A==", 9621 "integrity": "sha512-Dd+Lb2/zvk9SKy1TGCt1wFJFo/MWBPMX5x7KcvLajWTGuomczdQX61PvY5yK6SVACwpoexWo81IfFyoKY2QnTA==",
9783 "dependencies": { 9622 "dependencies": {
9784 "hasown": "^2.0.2" 9623 "hasown": "^2.0.2"
9785 }, 9624 },
@@ -9818,6 +9657,15 @@
9818 "url": "https://github.com/sponsors/ljharb" 9657 "url": "https://github.com/sponsors/ljharb"
9819 } 9658 }
9820 }, 9659 },
9660 "node_modules/is-decimal": {
9661 "version": "2.0.1",
9662 "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-2.0.1.tgz",
9663 "integrity": "sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==",
9664 "funding": {
9665 "type": "github",
9666 "url": "https://github.com/sponsors/wooorm"
9667 }
9668 },
9821 "node_modules/is-docker": { 9669 "node_modules/is-docker": {
9822 "version": "2.2.1", 9670 "version": "2.2.1",
9823 "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", 9671 "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz",
@@ -9892,10 +9740,22 @@
9892 "node": ">=0.10.0" 9740 "node": ">=0.10.0"
9893 } 9741 }
9894 }, 9742 },
9743 "node_modules/is-hexadecimal": {
9744 "version": "2.0.1",
9745 "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-2.0.1.tgz",
9746 "integrity": "sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==",
9747 "funding": {
9748 "type": "github",
9749 "url": "https://github.com/sponsors/wooorm"
9750 }
9751 },
9895 "node_modules/is-map": { 9752 "node_modules/is-map": {
9896 "version": "2.0.2", 9753 "version": "2.0.3",
9897 "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.2.tgz", 9754 "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz",
9898 "integrity": "sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==", 9755 "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==",
9756 "engines": {
9757 "node": ">= 0.4"
9758 },
9899 "funding": { 9759 "funding": {
9900 "url": "https://github.com/sponsors/ljharb" 9760 "url": "https://github.com/sponsors/ljharb"
9901 } 9761 }
@@ -10002,9 +9862,12 @@
10002 } 9862 }
10003 }, 9863 },
10004 "node_modules/is-set": { 9864 "node_modules/is-set": {
10005 "version": "2.0.2", 9865 "version": "2.0.3",
10006 "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.2.tgz", 9866 "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz",
10007 "integrity": "sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==", 9867 "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==",
9868 "engines": {
9869 "node": ">= 0.4"
9870 },
10008 "funding": { 9871 "funding": {
10009 "url": "https://github.com/sponsors/ljharb" 9872 "url": "https://github.com/sponsors/ljharb"
10010 } 9873 }
@@ -10082,9 +9945,12 @@
10082 "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==" 9945 "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA=="
10083 }, 9946 },
10084 "node_modules/is-weakmap": { 9947 "node_modules/is-weakmap": {
10085 "version": "2.0.1", 9948 "version": "2.0.2",
10086 "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.1.tgz", 9949 "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz",
10087 "integrity": "sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==", 9950 "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==",
9951 "engines": {
9952 "node": ">= 0.4"
9953 },
10088 "funding": { 9954 "funding": {
10089 "url": "https://github.com/sponsors/ljharb" 9955 "url": "https://github.com/sponsors/ljharb"
10090 } 9956 }
@@ -10101,12 +9967,15 @@
10101 } 9967 }
10102 }, 9968 },
10103 "node_modules/is-weakset": { 9969 "node_modules/is-weakset": {
10104 "version": "2.0.2", 9970 "version": "2.0.3",
10105 "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.2.tgz", 9971 "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.3.tgz",
10106 "integrity": "sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==", 9972 "integrity": "sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==",
10107 "dependencies": { 9973 "dependencies": {
10108 "call-bind": "^1.0.2", 9974 "call-bind": "^1.0.7",
10109 "get-intrinsic": "^1.1.1" 9975 "get-intrinsic": "^1.2.4"
9976 },
9977 "engines": {
9978 "node": ">= 0.4"
10110 }, 9979 },
10111 "funding": { 9980 "funding": {
10112 "url": "https://github.com/sponsors/ljharb" 9981 "url": "https://github.com/sponsors/ljharb"
@@ -10270,9 +10139,9 @@
10270 } 10139 }
10271 }, 10140 },
10272 "node_modules/jake": { 10141 "node_modules/jake": {
10273 "version": "10.9.1", 10142 "version": "10.9.2",
10274 "resolved": "https://registry.npmjs.org/jake/-/jake-10.9.1.tgz", 10143 "resolved": "https://registry.npmjs.org/jake/-/jake-10.9.2.tgz",
10275 "integrity": "sha512-61btcOHNnLnsOdtLgA5efqQWjnSi/vow5HbI7HMdKKWqvrKR1bLK3BPlJn9gcSaP2ewuamUSMB5XEy76KUIS2w==", 10144 "integrity": "sha512-2P4SQ0HrLQ+fw6llpLnOaGAvN2Zu6778SJMrCUwns4fOoG9ayrTiZk3VV8sCPkVZF8ab0zksVpS8FDY5pRCNBA==",
10276 "dependencies": { 10145 "dependencies": {
10277 "async": "^3.2.3", 10146 "async": "^3.2.3",
10278 "chalk": "^4.0.2", 10147 "chalk": "^4.0.2",
@@ -11848,9 +11717,9 @@
11848 } 11717 }
11849 }, 11718 },
11850 "node_modules/jest-watch-typeahead/node_modules/@types/yargs": { 11719 "node_modules/jest-watch-typeahead/node_modules/@types/yargs": {
11851 "version": "17.0.32", 11720 "version": "17.0.33",
11852 "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.32.tgz", 11721 "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.33.tgz",
11853 "integrity": "sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog==", 11722 "integrity": "sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==",
11854 "dependencies": { 11723 "dependencies": {
11855 "@types/yargs-parser": "*" 11724 "@types/yargs-parser": "*"
11856 } 11725 }
@@ -12448,9 +12317,9 @@
12448 } 12317 }
12449 }, 12318 },
12450 "node_modules/launch-editor": { 12319 "node_modules/launch-editor": {
12451 "version": "2.8.0", 12320 "version": "2.8.1",
12452 "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.8.0.tgz", 12321 "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.8.1.tgz",
12453 "integrity": "sha512-vJranOAJrI/llyWGRQqiDM+adrw+k83fvmmx3+nV47g3+36xM15jE+zyZ6Ffel02+xSvuM0b2GDRosXZkbb6wA==", 12322 "integrity": "sha512-elBx2l/tp9z99X5H/qev8uyDywVh0VXAwEbjk8kJhnc5grOFkGh7aW6q55me9xnYbss261XtnUrysZ+XvGbhQA==",
12454 "dependencies": { 12323 "dependencies": {
12455 "picocolors": "^1.0.0", 12324 "picocolors": "^1.0.0",
12456 "shell-quote": "^1.8.1" 12325 "shell-quote": "^1.8.1"
@@ -12551,6 +12420,15 @@
12551 "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", 12420 "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz",
12552 "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==" 12421 "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ=="
12553 }, 12422 },
12423 "node_modules/longest-streak": {
12424 "version": "3.1.0",
12425 "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-3.1.0.tgz",
12426 "integrity": "sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==",
12427 "funding": {
12428 "type": "github",
12429 "url": "https://github.com/sponsors/wooorm"
12430 }
12431 },
12554 "node_modules/loose-envify": { 12432 "node_modules/loose-envify": {
12555 "version": "1.4.0", 12433 "version": "1.4.0",
12556 "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", 12434 "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
@@ -12579,9 +12457,9 @@
12579 } 12457 }
12580 }, 12458 },
12581 "node_modules/lz-string": { 12459 "node_modules/lz-string": {
12582 "version": "1.4.4", 12460 "version": "1.5.0",
12583 "resolved": "https://registry.npmjs.org/lz-string/-/lz-string-1.4.4.tgz", 12461 "resolved": "https://registry.npmjs.org/lz-string/-/lz-string-1.5.0.tgz",
12584 "integrity": "sha512-0ckx7ZHRPqb0oUm8zNr+90mtf9DQB60H1wMCjBtfi62Kl3a7JbHob6gA2bC+xRvZoOL+1hzUK8jeuEIQE8svEQ==", 12462 "integrity": "sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==",
12585 "bin": { 12463 "bin": {
12586 "lz-string": "bin/bin.js" 12464 "lz-string": "bin/bin.js"
12587 } 12465 }
@@ -12624,37 +12502,93 @@
12624 "tmpl": "1.0.5" 12502 "tmpl": "1.0.5"
12625 } 12503 }
12626 }, 12504 },
12627 "node_modules/mdast-util-definitions": { 12505 "node_modules/mdast-util-from-markdown": {
12628 "version": "5.1.2", 12506 "version": "2.0.1",
12629 "resolved": "https://registry.npmjs.org/mdast-util-definitions/-/mdast-util-definitions-5.1.2.tgz", 12507 "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.1.tgz",
12630 "integrity": "sha512-8SVPMuHqlPME/z3gqVwWY4zVXn8lqKv/pAhC57FuJ40ImXyBpmO5ukh98zB2v7Blql2FiHjHv9LVztSIqjY+MA==", 12508 "integrity": "sha512-aJEUyzZ6TzlsX2s5B4Of7lN7EQtAxvtradMMglCQDyaTFgse6CmtmdJ15ElnVRlCg1vpNyVtbem0PWzlNieZsA==",
12631 "dependencies": { 12509 "dependencies": {
12632 "@types/mdast": "^3.0.0", 12510 "@types/mdast": "^4.0.0",
12633 "@types/unist": "^2.0.0", 12511 "@types/unist": "^3.0.0",
12634 "unist-util-visit": "^4.0.0" 12512 "decode-named-character-reference": "^1.0.0",
12513 "devlop": "^1.0.0",
12514 "mdast-util-to-string": "^4.0.0",
12515 "micromark": "^4.0.0",
12516 "micromark-util-decode-numeric-character-reference": "^2.0.0",
12517 "micromark-util-decode-string": "^2.0.0",
12518 "micromark-util-normalize-identifier": "^2.0.0",
12519 "micromark-util-symbol": "^2.0.0",
12520 "micromark-util-types": "^2.0.0",
12521 "unist-util-stringify-position": "^4.0.0"
12635 }, 12522 },
12636 "funding": { 12523 "funding": {
12637 "type": "opencollective", 12524 "type": "opencollective",
12638 "url": "https://opencollective.com/unified" 12525 "url": "https://opencollective.com/unified"
12639 } 12526 }
12640 }, 12527 },
12641 "node_modules/mdast-util-from-markdown": { 12528 "node_modules/mdast-util-mdx-expression": {
12642 "version": "1.3.1", 12529 "version": "2.0.0",
12643 "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-1.3.1.tgz", 12530 "resolved": "https://registry.npmjs.org/mdast-util-mdx-expression/-/mdast-util-mdx-expression-2.0.0.tgz",
12644 "integrity": "sha512-4xTO/M8c82qBcnQc1tgpNtubGUW/Y1tBQ1B0i5CtSoelOLKFYlElIr3bvgREYYO5iRqbMY1YuqZng0GVOI8Qww==", 12531 "integrity": "sha512-fGCu8eWdKUKNu5mohVGkhBXCXGnOTLuFqOvGMvdikr+J1w7lDJgxThOKpwRWzzbyXAU2hhSwsmssOY4yTokluw==",
12645 "dependencies": { 12532 "dependencies": {
12646 "@types/mdast": "^3.0.0", 12533 "@types/estree-jsx": "^1.0.0",
12647 "@types/unist": "^2.0.0", 12534 "@types/hast": "^3.0.0",
12648 "decode-named-character-reference": "^1.0.0", 12535 "@types/mdast": "^4.0.0",
12649 "mdast-util-to-string": "^3.1.0", 12536 "devlop": "^1.0.0",
12650 "micromark": "^3.0.0", 12537 "mdast-util-from-markdown": "^2.0.0",
12651 "micromark-util-decode-numeric-character-reference": "^1.0.0", 12538 "mdast-util-to-markdown": "^2.0.0"
12652 "micromark-util-decode-string": "^1.0.0", 12539 },
12653 "micromark-util-normalize-identifier": "^1.0.0", 12540 "funding": {
12654 "micromark-util-symbol": "^1.0.0", 12541 "type": "opencollective",
12655 "micromark-util-types": "^1.0.0", 12542 "url": "https://opencollective.com/unified"
12656 "unist-util-stringify-position": "^3.0.0", 12543 }
12657 "uvu": "^0.5.0" 12544 },
12545 "node_modules/mdast-util-mdx-jsx": {
12546 "version": "3.1.3",
12547 "resolved": "https://registry.npmjs.org/mdast-util-mdx-jsx/-/mdast-util-mdx-jsx-3.1.3.tgz",
12548 "integrity": "sha512-bfOjvNt+1AcbPLTFMFWY149nJz0OjmewJs3LQQ5pIyVGxP4CdOqNVJL6kTaM5c68p8q82Xv3nCyFfUnuEcH3UQ==",
12549 "dependencies": {
12550 "@types/estree-jsx": "^1.0.0",
12551 "@types/hast": "^3.0.0",
12552 "@types/mdast": "^4.0.0",
12553 "@types/unist": "^3.0.0",
12554 "ccount": "^2.0.0",
12555 "devlop": "^1.1.0",
12556 "mdast-util-from-markdown": "^2.0.0",
12557 "mdast-util-to-markdown": "^2.0.0",
12558 "parse-entities": "^4.0.0",
12559 "stringify-entities": "^4.0.0",
12560 "unist-util-stringify-position": "^4.0.0",
12561 "vfile-message": "^4.0.0"
12562 },
12563 "funding": {
12564 "type": "opencollective",
12565 "url": "https://opencollective.com/unified"
12566 }
12567 },
12568 "node_modules/mdast-util-mdxjs-esm": {
12569 "version": "2.0.1",
12570 "resolved": "https://registry.npmjs.org/mdast-util-mdxjs-esm/-/mdast-util-mdxjs-esm-2.0.1.tgz",
12571 "integrity": "sha512-EcmOpxsZ96CvlP03NghtH1EsLtr0n9Tm4lPUJUBccV9RwUOneqSycg19n5HGzCf+10LozMRSObtVr3ee1WoHtg==",
12572 "dependencies": {
12573 "@types/estree-jsx": "^1.0.0",
12574 "@types/hast": "^3.0.0",
12575 "@types/mdast": "^4.0.0",
12576 "devlop": "^1.0.0",
12577 "mdast-util-from-markdown": "^2.0.0",
12578 "mdast-util-to-markdown": "^2.0.0"
12579 },
12580 "funding": {
12581 "type": "opencollective",
12582 "url": "https://opencollective.com/unified"
12583 }
12584 },
12585 "node_modules/mdast-util-phrasing": {
12586 "version": "4.1.0",
12587 "resolved": "https://registry.npmjs.org/mdast-util-phrasing/-/mdast-util-phrasing-4.1.0.tgz",
12588 "integrity": "sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==",
12589 "dependencies": {
12590 "@types/mdast": "^4.0.0",
12591 "unist-util-is": "^6.0.0"
12658 }, 12592 },
12659 "funding": { 12593 "funding": {
12660 "type": "opencollective", 12594 "type": "opencollective",
@@ -12662,18 +12596,38 @@
12662 } 12596 }
12663 }, 12597 },
12664 "node_modules/mdast-util-to-hast": { 12598 "node_modules/mdast-util-to-hast": {
12665 "version": "12.3.0", 12599 "version": "13.2.0",
12666 "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-12.3.0.tgz", 12600 "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-13.2.0.tgz",
12667 "integrity": "sha512-pits93r8PhnIoU4Vy9bjW39M2jJ6/tdHyja9rrot9uujkN7UTU9SDnE6WNJz/IGyQk3XHX6yNNtrBH6cQzm8Hw==", 12601 "integrity": "sha512-QGYKEuUsYT9ykKBCMOEDLsU5JRObWQusAolFMeko/tYPufNkRffBAQjIE+99jbA87xv6FgmjLtwjh9wBWajwAA==",
12668 "dependencies": { 12602 "dependencies": {
12669 "@types/hast": "^2.0.0", 12603 "@types/hast": "^3.0.0",
12670 "@types/mdast": "^3.0.0", 12604 "@types/mdast": "^4.0.0",
12671 "mdast-util-definitions": "^5.0.0", 12605 "@ungap/structured-clone": "^1.0.0",
12672 "micromark-util-sanitize-uri": "^1.1.0", 12606 "devlop": "^1.0.0",
12607 "micromark-util-sanitize-uri": "^2.0.0",
12673 "trim-lines": "^3.0.0", 12608 "trim-lines": "^3.0.0",
12674 "unist-util-generated": "^2.0.0", 12609 "unist-util-position": "^5.0.0",
12675 "unist-util-position": "^4.0.0", 12610 "unist-util-visit": "^5.0.0",
12676 "unist-util-visit": "^4.0.0" 12611 "vfile": "^6.0.0"
12612 },
12613 "funding": {
12614 "type": "opencollective",
12615 "url": "https://opencollective.com/unified"
12616 }
12617 },
12618 "node_modules/mdast-util-to-markdown": {
12619 "version": "2.1.0",
12620 "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-2.1.0.tgz",
12621 "integrity": "sha512-SR2VnIEdVNCJbP6y7kVTJgPLifdr8WEU440fQec7qHoHOUz/oJ2jmNRqdDQ3rbiStOXb2mCDGTuwsK5OPUgYlQ==",
12622 "dependencies": {
12623 "@types/mdast": "^4.0.0",
12624 "@types/unist": "^3.0.0",
12625 "longest-streak": "^3.0.0",
12626 "mdast-util-phrasing": "^4.0.0",
12627 "mdast-util-to-string": "^4.0.0",
12628 "micromark-util-decode-string": "^2.0.0",
12629 "unist-util-visit": "^5.0.0",
12630 "zwitch": "^2.0.0"
12677 }, 12631 },
12678 "funding": { 12632 "funding": {
12679 "type": "opencollective", 12633 "type": "opencollective",
@@ -12681,11 +12635,11 @@
12681 } 12635 }
12682 }, 12636 },
12683 "node_modules/mdast-util-to-string": { 12637 "node_modules/mdast-util-to-string": {
12684 "version": "3.2.0", 12638 "version": "4.0.0",
12685 "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-3.2.0.tgz", 12639 "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-4.0.0.tgz",
12686 "integrity": "sha512-V4Zn/ncyN1QNSqSBxTrMOLpjr+IKdHl2v3KVLoWmDPscP4r9GcCi71gjgvUV1SFSKh92AjAG4peFuBl2/YgCJg==", 12640 "integrity": "sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==",
12687 "dependencies": { 12641 "dependencies": {
12688 "@types/mdast": "^3.0.0" 12642 "@types/mdast": "^4.0.0"
12689 }, 12643 },
12690 "funding": { 12644 "funding": {
12691 "type": "opencollective", 12645 "type": "opencollective",
@@ -12743,9 +12697,9 @@
12743 } 12697 }
12744 }, 12698 },
12745 "node_modules/micromark": { 12699 "node_modules/micromark": {
12746 "version": "3.2.0", 12700 "version": "4.0.0",
12747 "resolved": "https://registry.npmjs.org/micromark/-/micromark-3.2.0.tgz", 12701 "resolved": "https://registry.npmjs.org/micromark/-/micromark-4.0.0.tgz",
12748 "integrity": "sha512-uD66tJj54JLYq0De10AhWycZWGQNUvDI55xPgk2sQM5kn1JYlhbCMTtEeT27+vAhW2FBQxLlOmS3pmA7/2z4aA==", 12702 "integrity": "sha512-o/sd0nMof8kYff+TqcDx3VSrgBTcZpSvYcAHIfHhv5VAuNmisCxjhx6YmxS8PFEpb9z5WKWKPdzf0jM23ro3RQ==",
12749 "funding": [ 12703 "funding": [
12750 { 12704 {
12751 "type": "GitHub Sponsors", 12705 "type": "GitHub Sponsors",
@@ -12760,26 +12714,26 @@
12760 "@types/debug": "^4.0.0", 12714 "@types/debug": "^4.0.0",
12761 "debug": "^4.0.0", 12715 "debug": "^4.0.0",
12762 "decode-named-character-reference": "^1.0.0", 12716 "decode-named-character-reference": "^1.0.0",
12763 "micromark-core-commonmark": "^1.0.1", 12717 "devlop": "^1.0.0",
12764 "micromark-factory-space": "^1.0.0", 12718 "micromark-core-commonmark": "^2.0.0",
12765 "micromark-util-character": "^1.0.0", 12719 "micromark-factory-space": "^2.0.0",
12766 "micromark-util-chunked": "^1.0.0", 12720 "micromark-util-character": "^2.0.0",
12767 "micromark-util-combine-extensions": "^1.0.0", 12721 "micromark-util-chunked": "^2.0.0",
12768 "micromark-util-decode-numeric-character-reference": "^1.0.0", 12722 "micromark-util-combine-extensions": "^2.0.0",
12769 "micromark-util-encode": "^1.0.0", 12723 "micromark-util-decode-numeric-character-reference": "^2.0.0",
12770 "micromark-util-normalize-identifier": "^1.0.0", 12724 "micromark-util-encode": "^2.0.0",
12771 "micromark-util-resolve-all": "^1.0.0", 12725 "micromark-util-normalize-identifier": "^2.0.0",
12772 "micromark-util-sanitize-uri": "^1.0.0", 12726 "micromark-util-resolve-all": "^2.0.0",
12773 "micromark-util-subtokenize": "^1.0.0", 12727 "micromark-util-sanitize-uri": "^2.0.0",
12774 "micromark-util-symbol": "^1.0.0", 12728 "micromark-util-subtokenize": "^2.0.0",
12775 "micromark-util-types": "^1.0.1", 12729 "micromark-util-symbol": "^2.0.0",
12776 "uvu": "^0.5.0" 12730 "micromark-util-types": "^2.0.0"
12777 } 12731 }
12778 }, 12732 },
12779 "node_modules/micromark-core-commonmark": { 12733 "node_modules/micromark-core-commonmark": {
12780 "version": "1.1.0", 12734 "version": "2.0.1",
12781 "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-1.1.0.tgz", 12735 "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-2.0.1.tgz",
12782 "integrity": "sha512-BgHO1aRbolh2hcrzL2d1La37V0Aoz73ymF8rAcKnohLy93titmv62E0gP8Hrx9PKcKrqCZ1BbLGbP3bEhoXYlw==", 12736 "integrity": "sha512-CUQyKr1e///ZODyD1U3xit6zXwy1a8q2a1S1HKtIlmgvurrEpaw/Y9y6KSIbF8P59cn/NjzHyO+Q2fAyYLQrAA==",
12783 "funding": [ 12737 "funding": [
12784 { 12738 {
12785 "type": "GitHub Sponsors", 12739 "type": "GitHub Sponsors",
@@ -12792,27 +12746,27 @@
12792 ], 12746 ],
12793 "dependencies": { 12747 "dependencies": {
12794 "decode-named-character-reference": "^1.0.0", 12748 "decode-named-character-reference": "^1.0.0",
12795 "micromark-factory-destination": "^1.0.0", 12749 "devlop": "^1.0.0",
12796 "micromark-factory-label": "^1.0.0", 12750 "micromark-factory-destination": "^2.0.0",
12797 "micromark-factory-space": "^1.0.0", 12751 "micromark-factory-label": "^2.0.0",
12798 "micromark-factory-title": "^1.0.0", 12752 "micromark-factory-space": "^2.0.0",
12799 "micromark-factory-whitespace": "^1.0.0", 12753 "micromark-factory-title": "^2.0.0",
12800 "micromark-util-character": "^1.0.0", 12754 "micromark-factory-whitespace": "^2.0.0",
12801 "micromark-util-chunked": "^1.0.0", 12755 "micromark-util-character": "^2.0.0",
12802 "micromark-util-classify-character": "^1.0.0", 12756 "micromark-util-chunked": "^2.0.0",
12803 "micromark-util-html-tag-name": "^1.0.0", 12757 "micromark-util-classify-character": "^2.0.0",
12804 "micromark-util-normalize-identifier": "^1.0.0", 12758 "micromark-util-html-tag-name": "^2.0.0",
12805 "micromark-util-resolve-all": "^1.0.0", 12759 "micromark-util-normalize-identifier": "^2.0.0",
12806 "micromark-util-subtokenize": "^1.0.0", 12760 "micromark-util-resolve-all": "^2.0.0",
12807 "micromark-util-symbol": "^1.0.0", 12761 "micromark-util-subtokenize": "^2.0.0",
12808 "micromark-util-types": "^1.0.1", 12762 "micromark-util-symbol": "^2.0.0",
12809 "uvu": "^0.5.0" 12763 "micromark-util-types": "^2.0.0"
12810 } 12764 }
12811 }, 12765 },
12812 "node_modules/micromark-factory-destination": { 12766 "node_modules/micromark-factory-destination": {
12813 "version": "1.1.0", 12767 "version": "2.0.0",
12814 "resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-1.1.0.tgz", 12768 "resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-2.0.0.tgz",
12815 "integrity": "sha512-XaNDROBgx9SgSChd69pjiGKbV+nfHGDPVYFs5dOoDd7ZnMAE+Cuu91BCpsY8RT2NP9vo/B8pds2VQNCLiu0zhg==", 12769 "integrity": "sha512-j9DGrQLm/Uhl2tCzcbLhy5kXsgkHUrjJHg4fFAeoMRwJmJerT9aw4FEhIbZStWN8A3qMwOp1uzHr4UL8AInxtA==",
12816 "funding": [ 12770 "funding": [
12817 { 12771 {
12818 "type": "GitHub Sponsors", 12772 "type": "GitHub Sponsors",
@@ -12824,15 +12778,15 @@
12824 } 12778 }
12825 ], 12779 ],
12826 "dependencies": { 12780 "dependencies": {
12827 "micromark-util-character": "^1.0.0", 12781 "micromark-util-character": "^2.0.0",
12828 "micromark-util-symbol": "^1.0.0", 12782 "micromark-util-symbol": "^2.0.0",
12829 "micromark-util-types": "^1.0.0" 12783 "micromark-util-types": "^2.0.0"
12830 } 12784 }
12831 }, 12785 },
12832 "node_modules/micromark-factory-label": { 12786 "node_modules/micromark-factory-label": {
12833 "version": "1.1.0", 12787 "version": "2.0.0",
12834 "resolved": "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-1.1.0.tgz", 12788 "resolved": "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-2.0.0.tgz",
12835 "integrity": "sha512-OLtyez4vZo/1NjxGhcpDSbHQ+m0IIGnT8BoPamh+7jVlzLJBH98zzuCoUeMxvM6WsNeh8wx8cKvqLiPHEACn0w==", 12789 "integrity": "sha512-RR3i96ohZGde//4WSe/dJsxOX6vxIg9TimLAS3i4EhBAFx8Sm5SmqVfR8E87DPSR31nEAjZfbt91OMZWcNgdZw==",
12836 "funding": [ 12790 "funding": [
12837 { 12791 {
12838 "type": "GitHub Sponsors", 12792 "type": "GitHub Sponsors",
@@ -12844,16 +12798,16 @@
12844 } 12798 }
12845 ], 12799 ],
12846 "dependencies": { 12800 "dependencies": {
12847 "micromark-util-character": "^1.0.0", 12801 "devlop": "^1.0.0",
12848 "micromark-util-symbol": "^1.0.0", 12802 "micromark-util-character": "^2.0.0",
12849 "micromark-util-types": "^1.0.0", 12803 "micromark-util-symbol": "^2.0.0",
12850 "uvu": "^0.5.0" 12804 "micromark-util-types": "^2.0.0"
12851 } 12805 }
12852 }, 12806 },
12853 "node_modules/micromark-factory-space": { 12807 "node_modules/micromark-factory-space": {
12854 "version": "1.1.0", 12808 "version": "2.0.0",
12855 "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-1.1.0.tgz", 12809 "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.0.tgz",
12856 "integrity": "sha512-cRzEj7c0OL4Mw2v6nwzttyOZe8XY/Z8G0rzmWQZTBi/jjwyw/U4uqKtUORXQrR5bAZZnbTI/feRV/R7hc4jQYQ==", 12810 "integrity": "sha512-TKr+LIDX2pkBJXFLzpyPyljzYK3MtmllMUMODTQJIUfDGncESaqB90db9IAUcz4AZAJFdd8U9zOp9ty1458rxg==",
12857 "funding": [ 12811 "funding": [
12858 { 12812 {
12859 "type": "GitHub Sponsors", 12813 "type": "GitHub Sponsors",
@@ -12865,14 +12819,14 @@
12865 } 12819 }
12866 ], 12820 ],
12867 "dependencies": { 12821 "dependencies": {
12868 "micromark-util-character": "^1.0.0", 12822 "micromark-util-character": "^2.0.0",
12869 "micromark-util-types": "^1.0.0" 12823 "micromark-util-types": "^2.0.0"
12870 } 12824 }
12871 }, 12825 },
12872 "node_modules/micromark-factory-title": { 12826 "node_modules/micromark-factory-title": {
12873 "version": "1.1.0", 12827 "version": "2.0.0",
12874 "resolved": "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-1.1.0.tgz", 12828 "resolved": "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-2.0.0.tgz",
12875 "integrity": "sha512-J7n9R3vMmgjDOCY8NPw55jiyaQnH5kBdV2/UXCtZIpnHH3P6nHUKaH7XXEYuWwx/xUJcawa8plLBEjMPU24HzQ==", 12829 "integrity": "sha512-jY8CSxmpWLOxS+t8W+FG3Xigc0RDQA9bKMY/EwILvsesiRniiVMejYTE4wumNc2f4UbAa4WsHqe3J1QS1sli+A==",
12876 "funding": [ 12830 "funding": [
12877 { 12831 {
12878 "type": "GitHub Sponsors", 12832 "type": "GitHub Sponsors",
@@ -12884,16 +12838,16 @@
12884 } 12838 }
12885 ], 12839 ],
12886 "dependencies": { 12840 "dependencies": {
12887 "micromark-factory-space": "^1.0.0", 12841 "micromark-factory-space": "^2.0.0",
12888 "micromark-util-character": "^1.0.0", 12842 "micromark-util-character": "^2.0.0",
12889 "micromark-util-symbol": "^1.0.0", 12843 "micromark-util-symbol": "^2.0.0",
12890 "micromark-util-types": "^1.0.0" 12844 "micromark-util-types": "^2.0.0"
12891 } 12845 }
12892 }, 12846 },
12893 "node_modules/micromark-factory-whitespace": { 12847 "node_modules/micromark-factory-whitespace": {
12894 "version": "1.1.0", 12848 "version": "2.0.0",
12895 "resolved": "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-1.1.0.tgz", 12849 "resolved": "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-2.0.0.tgz",
12896 "integrity": "sha512-v2WlmiymVSp5oMg+1Q0N1Lxmt6pMhIHD457whWM7/GUlEks1hI9xj5w3zbc4uuMKXGisksZk8DzP2UyGbGqNsQ==", 12850 "integrity": "sha512-28kbwaBjc5yAI1XadbdPYHX/eDnqaUFVikLwrO7FDnKG7lpgxnvk/XGRhX/PN0mOZ+dBSZ+LgunHS+6tYQAzhA==",
12897 "funding": [ 12851 "funding": [
12898 { 12852 {
12899 "type": "GitHub Sponsors", 12853 "type": "GitHub Sponsors",
@@ -12905,16 +12859,16 @@
12905 } 12859 }
12906 ], 12860 ],
12907 "dependencies": { 12861 "dependencies": {
12908 "micromark-factory-space": "^1.0.0", 12862 "micromark-factory-space": "^2.0.0",
12909 "micromark-util-character": "^1.0.0", 12863 "micromark-util-character": "^2.0.0",
12910 "micromark-util-symbol": "^1.0.0", 12864 "micromark-util-symbol": "^2.0.0",
12911 "micromark-util-types": "^1.0.0" 12865 "micromark-util-types": "^2.0.0"
12912 } 12866 }
12913 }, 12867 },
12914 "node_modules/micromark-util-character": { 12868 "node_modules/micromark-util-character": {
12915 "version": "1.2.0", 12869 "version": "2.1.0",
12916 "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-1.2.0.tgz", 12870 "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.0.tgz",
12917 "integrity": "sha512-lXraTwcX3yH/vMDaFWCQJP1uIszLVebzUa3ZHdrgxr7KEU/9mL4mVgCpGbyhvNLNlauROiNUq7WN5u7ndbY6xg==", 12871 "integrity": "sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==",
12918 "funding": [ 12872 "funding": [
12919 { 12873 {
12920 "type": "GitHub Sponsors", 12874 "type": "GitHub Sponsors",
@@ -12926,14 +12880,14 @@
12926 } 12880 }
12927 ], 12881 ],
12928 "dependencies": { 12882 "dependencies": {
12929 "micromark-util-symbol": "^1.0.0", 12883 "micromark-util-symbol": "^2.0.0",
12930 "micromark-util-types": "^1.0.0" 12884 "micromark-util-types": "^2.0.0"
12931 } 12885 }
12932 }, 12886 },
12933 "node_modules/micromark-util-chunked": { 12887 "node_modules/micromark-util-chunked": {
12934 "version": "1.1.0", 12888 "version": "2.0.0",
12935 "resolved": "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-1.1.0.tgz", 12889 "resolved": "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-2.0.0.tgz",
12936 "integrity": "sha512-Ye01HXpkZPNcV6FiyoW2fGZDUw4Yc7vT0E9Sad83+bEDiCJ1uXu0S3mr8WLpsz3HaG3x2q0HM6CTuPdcZcluFQ==", 12890 "integrity": "sha512-anK8SWmNphkXdaKgz5hJvGa7l00qmcaUQoMYsBwDlSKFKjc6gjGXPDw3FNL3Nbwq5L8gE+RCbGqTw49FK5Qyvg==",
12937 "funding": [ 12891 "funding": [
12938 { 12892 {
12939 "type": "GitHub Sponsors", 12893 "type": "GitHub Sponsors",
@@ -12945,13 +12899,13 @@
12945 } 12899 }
12946 ], 12900 ],
12947 "dependencies": { 12901 "dependencies": {
12948 "micromark-util-symbol": "^1.0.0" 12902 "micromark-util-symbol": "^2.0.0"
12949 } 12903 }
12950 }, 12904 },
12951 "node_modules/micromark-util-classify-character": { 12905 "node_modules/micromark-util-classify-character": {
12952 "version": "1.1.0", 12906 "version": "2.0.0",
12953 "resolved": "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-1.1.0.tgz", 12907 "resolved": "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-2.0.0.tgz",
12954 "integrity": "sha512-SL0wLxtKSnklKSUplok1WQFoGhUdWYKggKUiqhX+Swala+BtptGCu5iPRc+xvzJ4PXE/hwM3FNXsfEVgoZsWbw==", 12908 "integrity": "sha512-S0ze2R9GH+fu41FA7pbSqNWObo/kzwf8rN/+IGlW/4tC6oACOs8B++bh+i9bVyNnwCcuksbFwsBme5OCKXCwIw==",
12955 "funding": [ 12909 "funding": [
12956 { 12910 {
12957 "type": "GitHub Sponsors", 12911 "type": "GitHub Sponsors",
@@ -12963,15 +12917,15 @@
12963 } 12917 }
12964 ], 12918 ],
12965 "dependencies": { 12919 "dependencies": {
12966 "micromark-util-character": "^1.0.0", 12920 "micromark-util-character": "^2.0.0",
12967 "micromark-util-symbol": "^1.0.0", 12921 "micromark-util-symbol": "^2.0.0",
12968 "micromark-util-types": "^1.0.0" 12922 "micromark-util-types": "^2.0.0"
12969 } 12923 }
12970 }, 12924 },
12971 "node_modules/micromark-util-combine-extensions": { 12925 "node_modules/micromark-util-combine-extensions": {
12972 "version": "1.1.0", 12926 "version": "2.0.0",
12973 "resolved": "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-1.1.0.tgz", 12927 "resolved": "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-2.0.0.tgz",
12974 "integrity": "sha512-Q20sp4mfNf9yEqDL50WwuWZHUrCO4fEyeDCnMGmG5Pr0Cz15Uo7KBs6jq+dq0EgX4DPwwrh9m0X+zPV1ypFvUA==", 12928 "integrity": "sha512-vZZio48k7ON0fVS3CUgFatWHoKbbLTK/rT7pzpJ4Bjp5JjkZeasRfrS9wsBdDJK2cJLHMckXZdzPSSr1B8a4oQ==",
12975 "funding": [ 12929 "funding": [
12976 { 12930 {
12977 "type": "GitHub Sponsors", 12931 "type": "GitHub Sponsors",
@@ -12983,14 +12937,14 @@
12983 } 12937 }
12984 ], 12938 ],
12985 "dependencies": { 12939 "dependencies": {
12986 "micromark-util-chunked": "^1.0.0", 12940 "micromark-util-chunked": "^2.0.0",
12987 "micromark-util-types": "^1.0.0" 12941 "micromark-util-types": "^2.0.0"
12988 } 12942 }
12989 }, 12943 },
12990 "node_modules/micromark-util-decode-numeric-character-reference": { 12944 "node_modules/micromark-util-decode-numeric-character-reference": {
12991 "version": "1.1.0", 12945 "version": "2.0.1",
12992 "resolved": "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-1.1.0.tgz", 12946 "resolved": "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-2.0.1.tgz",
12993 "integrity": "sha512-m9V0ExGv0jB1OT21mrWcuf4QhP46pH1KkfWy9ZEezqHKAxkj4mPCy3nIH1rkbdMlChLHX531eOrymlwyZIf2iw==", 12947 "integrity": "sha512-bmkNc7z8Wn6kgjZmVHOX3SowGmVdhYS7yBpMnuMnPzDq/6xwVA604DuOXMZTO1lvq01g+Adfa0pE2UKGlxL1XQ==",
12994 "funding": [ 12948 "funding": [
12995 { 12949 {
12996 "type": "GitHub Sponsors", 12950 "type": "GitHub Sponsors",
@@ -13002,13 +12956,13 @@
13002 } 12956 }
13003 ], 12957 ],
13004 "dependencies": { 12958 "dependencies": {
13005 "micromark-util-symbol": "^1.0.0" 12959 "micromark-util-symbol": "^2.0.0"
13006 } 12960 }
13007 }, 12961 },
13008 "node_modules/micromark-util-decode-string": { 12962 "node_modules/micromark-util-decode-string": {
13009 "version": "1.1.0", 12963 "version": "2.0.0",
13010 "resolved": "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-1.1.0.tgz", 12964 "resolved": "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-2.0.0.tgz",
13011 "integrity": "sha512-YphLGCK8gM1tG1bd54azwyrQRjCFcmgj2S2GoJDNnh4vYtnL38JS8M4gpxzOPNyHdNEpheyWXCTnnTDY3N+NVQ==", 12965 "integrity": "sha512-r4Sc6leeUTn3P6gk20aFMj2ntPwn6qpDZqWvYmAG6NgvFTIlj4WtrAudLi65qYoaGdXYViXYw2pkmn7QnIFasA==",
13012 "funding": [ 12966 "funding": [
13013 { 12967 {
13014 "type": "GitHub Sponsors", 12968 "type": "GitHub Sponsors",
@@ -13021,15 +12975,15 @@
13021 ], 12975 ],
13022 "dependencies": { 12976 "dependencies": {
13023 "decode-named-character-reference": "^1.0.0", 12977 "decode-named-character-reference": "^1.0.0",
13024 "micromark-util-character": "^1.0.0", 12978 "micromark-util-character": "^2.0.0",
13025 "micromark-util-decode-numeric-character-reference": "^1.0.0", 12979 "micromark-util-decode-numeric-character-reference": "^2.0.0",
13026 "micromark-util-symbol": "^1.0.0" 12980 "micromark-util-symbol": "^2.0.0"
13027 } 12981 }
13028 }, 12982 },
13029 "node_modules/micromark-util-encode": { 12983 "node_modules/micromark-util-encode": {
13030 "version": "1.1.0", 12984 "version": "2.0.0",
13031 "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-1.1.0.tgz", 12985 "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-2.0.0.tgz",
13032 "integrity": "sha512-EuEzTWSTAj9PA5GOAs992GzNh2dGQO52UvAbtSOMvXTxv3Criqb6IOzJUBCmEqrrXSblJIJBbFFv6zPxpreiJw==", 12986 "integrity": "sha512-pS+ROfCXAGLWCOc8egcBvT0kf27GoWMqtdarNfDcjb6YLuV5cM3ioG45Ys2qOVqeqSbjaKg72vU+Wby3eddPsA==",
13033 "funding": [ 12987 "funding": [
13034 { 12988 {
13035 "type": "GitHub Sponsors", 12989 "type": "GitHub Sponsors",
@@ -13042,9 +12996,9 @@
13042 ] 12996 ]
13043 }, 12997 },
13044 "node_modules/micromark-util-html-tag-name": { 12998 "node_modules/micromark-util-html-tag-name": {
13045 "version": "1.2.0", 12999 "version": "2.0.0",
13046 "resolved": "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-1.2.0.tgz", 13000 "resolved": "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-2.0.0.tgz",
13047 "integrity": "sha512-VTQzcuQgFUD7yYztuQFKXT49KghjtETQ+Wv/zUjGSGBioZnkA4P1XXZPT1FHeJA6RwRXSF47yvJ1tsJdoxwO+Q==", 13001 "integrity": "sha512-xNn4Pqkj2puRhKdKTm8t1YHC/BAjx6CEwRFXntTaRf/x16aqka6ouVoutm+QdkISTlT7e2zU7U4ZdlDLJd2Mcw==",
13048 "funding": [ 13002 "funding": [
13049 { 13003 {
13050 "type": "GitHub Sponsors", 13004 "type": "GitHub Sponsors",
@@ -13057,9 +13011,9 @@
13057 ] 13011 ]
13058 }, 13012 },
13059 "node_modules/micromark-util-normalize-identifier": { 13013 "node_modules/micromark-util-normalize-identifier": {
13060 "version": "1.1.0", 13014 "version": "2.0.0",
13061 "resolved": "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-1.1.0.tgz", 13015 "resolved": "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-2.0.0.tgz",
13062 "integrity": "sha512-N+w5vhqrBihhjdpM8+5Xsxy71QWqGn7HYNUvch71iV2PM7+E3uWGox1Qp90loa1ephtCxG2ftRV/Conitc6P2Q==", 13016 "integrity": "sha512-2xhYT0sfo85FMrUPtHcPo2rrp1lwbDEEzpx7jiH2xXJLqBuy4H0GgXk5ToU8IEwoROtXuL8ND0ttVa4rNqYK3w==",
13063 "funding": [ 13017 "funding": [
13064 { 13018 {
13065 "type": "GitHub Sponsors", 13019 "type": "GitHub Sponsors",
@@ -13071,13 +13025,13 @@
13071 } 13025 }
13072 ], 13026 ],
13073 "dependencies": { 13027 "dependencies": {
13074 "micromark-util-symbol": "^1.0.0" 13028 "micromark-util-symbol": "^2.0.0"
13075 } 13029 }
13076 }, 13030 },
13077 "node_modules/micromark-util-resolve-all": { 13031 "node_modules/micromark-util-resolve-all": {
13078 "version": "1.1.0", 13032 "version": "2.0.0",
13079 "resolved": "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-1.1.0.tgz", 13033 "resolved": "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-2.0.0.tgz",
13080 "integrity": "sha512-b/G6BTMSg+bX+xVCshPTPyAu2tmA0E4X98NSR7eIbeC6ycCqCeE7wjfDIgzEbkzdEVJXRtOG4FbEm/uGbCRouA==", 13034 "integrity": "sha512-6KU6qO7DZ7GJkaCgwBNtplXCvGkJToU86ybBAUdavvgsCiG8lSSvYxr9MhwmQ+udpzywHsl4RpGJsYWG1pDOcA==",
13081 "funding": [ 13035 "funding": [
13082 { 13036 {
13083 "type": "GitHub Sponsors", 13037 "type": "GitHub Sponsors",
@@ -13089,13 +13043,13 @@
13089 } 13043 }
13090 ], 13044 ],
13091 "dependencies": { 13045 "dependencies": {
13092 "micromark-util-types": "^1.0.0" 13046 "micromark-util-types": "^2.0.0"
13093 } 13047 }
13094 }, 13048 },
13095 "node_modules/micromark-util-sanitize-uri": { 13049 "node_modules/micromark-util-sanitize-uri": {
13096 "version": "1.2.0", 13050 "version": "2.0.0",
13097 "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-1.2.0.tgz", 13051 "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.0.tgz",
13098 "integrity": "sha512-QO4GXv0XZfWey4pYFndLUKEAktKkG5kZTdUNaTAkzbuJxn2tNBOr+QtxR2XpWaMhbImT2dPzyLrPXLlPhph34A==", 13052 "integrity": "sha512-WhYv5UEcZrbAtlsnPuChHUAsu/iBPOVaEVsntLBIdpibO0ddy8OzavZz3iL2xVvBZOpolujSliP65Kq0/7KIYw==",
13099 "funding": [ 13053 "funding": [
13100 { 13054 {
13101 "type": "GitHub Sponsors", 13055 "type": "GitHub Sponsors",
@@ -13107,15 +13061,15 @@
13107 } 13061 }
13108 ], 13062 ],
13109 "dependencies": { 13063 "dependencies": {
13110 "micromark-util-character": "^1.0.0", 13064 "micromark-util-character": "^2.0.0",
13111 "micromark-util-encode": "^1.0.0", 13065 "micromark-util-encode": "^2.0.0",
13112 "micromark-util-symbol": "^1.0.0" 13066 "micromark-util-symbol": "^2.0.0"
13113 } 13067 }
13114 }, 13068 },
13115 "node_modules/micromark-util-subtokenize": { 13069 "node_modules/micromark-util-subtokenize": {
13116 "version": "1.1.0", 13070 "version": "2.0.1",
13117 "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-1.1.0.tgz", 13071 "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-2.0.1.tgz",
13118 "integrity": "sha512-kUQHyzRoxvZO2PuLzMt2P/dwVsTiivCK8icYTeR+3WgbuPqfHgPPy7nFKbeqRivBvn/3N3GBiNC+JRTMSxEC7A==", 13072 "integrity": "sha512-jZNtiFl/1aY73yS3UGQkutD0UbhTt68qnRpw2Pifmz5wV9h8gOVsN70v+Lq/f1rKaU/W8pxRe8y8Q9FX1AOe1Q==",
13119 "funding": [ 13073 "funding": [
13120 { 13074 {
13121 "type": "GitHub Sponsors", 13075 "type": "GitHub Sponsors",
@@ -13127,16 +13081,16 @@
13127 } 13081 }
13128 ], 13082 ],
13129 "dependencies": { 13083 "dependencies": {
13130 "micromark-util-chunked": "^1.0.0", 13084 "devlop": "^1.0.0",
13131 "micromark-util-symbol": "^1.0.0", 13085 "micromark-util-chunked": "^2.0.0",
13132 "micromark-util-types": "^1.0.0", 13086 "micromark-util-symbol": "^2.0.0",
13133 "uvu": "^0.5.0" 13087 "micromark-util-types": "^2.0.0"
13134 } 13088 }
13135 }, 13089 },
13136 "node_modules/micromark-util-symbol": { 13090 "node_modules/micromark-util-symbol": {
13137 "version": "1.1.0", 13091 "version": "2.0.0",
13138 "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-1.1.0.tgz", 13092 "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz",
13139 "integrity": "sha512-uEjpEYY6KMs1g7QfJ2eX1SQEV+ZT4rUD3UcF6l57acZvLNK7PBZL+ty82Z1qhK1/yXIY4bdx04FKMgR0g4IAag==", 13093 "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==",
13140 "funding": [ 13094 "funding": [
13141 { 13095 {
13142 "type": "GitHub Sponsors", 13096 "type": "GitHub Sponsors",
@@ -13149,9 +13103,9 @@
13149 ] 13103 ]
13150 }, 13104 },
13151 "node_modules/micromark-util-types": { 13105 "node_modules/micromark-util-types": {
13152 "version": "1.1.0", 13106 "version": "2.0.0",
13153 "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-1.1.0.tgz", 13107 "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.0.tgz",
13154 "integrity": "sha512-ukRBgie8TIAcacscVHSiddHjO4k/q3pnedmzMQ4iwDcK0FtFCohKOlFbaOL/mPgfnPsL3C1ZyxJa4sbWrBl3jg==", 13108 "integrity": "sha512-oNh6S2WMHWRZrmutsRmDDfkzKtxF+bc2VxLC9dvtrDIRFln627VsFP6fLMgTryGDljgLPjkrzQSDcPrjPyDJ5w==",
13155 "funding": [ 13109 "funding": [
13156 { 13110 {
13157 "type": "GitHub Sponsors", 13111 "type": "GitHub Sponsors",
@@ -13164,11 +13118,11 @@
13164 ] 13118 ]
13165 }, 13119 },
13166 "node_modules/micromatch": { 13120 "node_modules/micromatch": {
13167 "version": "4.0.5", 13121 "version": "4.0.7",
13168 "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", 13122 "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.7.tgz",
13169 "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", 13123 "integrity": "sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==",
13170 "dependencies": { 13124 "dependencies": {
13171 "braces": "^3.0.2", 13125 "braces": "^3.0.3",
13172 "picomatch": "^2.3.1" 13126 "picomatch": "^2.3.1"
13173 }, 13127 },
13174 "engines": { 13128 "engines": {
@@ -13222,9 +13176,9 @@
13222 } 13176 }
13223 }, 13177 },
13224 "node_modules/mini-css-extract-plugin": { 13178 "node_modules/mini-css-extract-plugin": {
13225 "version": "2.9.0", 13179 "version": "2.9.1",
13226 "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.9.0.tgz", 13180 "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.9.1.tgz",
13227 "integrity": "sha512-Zs1YsZVfemekSZG+44vBsYTLQORkPMwnlv+aehcxK/NLKC+EGhDB39/YePYYqx/sTk6NnYpuqikhSn7+JIevTA==", 13181 "integrity": "sha512-+Vyi+GCCOHnrJ2VPS+6aPoXN2k2jgUzDRhTFLjjTBn23qyXJXkjUWQgTL+mXpF5/A8ixLdCc6kWsoeOjKGejKQ==",
13228 "dependencies": { 13182 "dependencies": {
13229 "schema-utils": "^4.0.0", 13183 "schema-utils": "^4.0.0",
13230 "tapable": "^2.2.1" 13184 "tapable": "^2.2.1"
@@ -13283,14 +13237,6 @@
13283 "mkdirp": "bin/cmd.js" 13237 "mkdirp": "bin/cmd.js"
13284 } 13238 }
13285 }, 13239 },
13286 "node_modules/mri": {
13287 "version": "1.2.0",
13288 "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz",
13289 "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==",
13290 "engines": {
13291 "node": ">=4"
13292 }
13293 },
13294 "node_modules/ms": { 13240 "node_modules/ms": {
13295 "version": "2.1.2", 13241 "version": "2.1.2",
13296 "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", 13242 "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
@@ -13381,9 +13327,9 @@
13381 "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==" 13327 "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw=="
13382 }, 13328 },
13383 "node_modules/node-releases": { 13329 "node_modules/node-releases": {
13384 "version": "2.0.14", 13330 "version": "2.0.18",
13385 "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", 13331 "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.18.tgz",
13386 "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==" 13332 "integrity": "sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g=="
13387 }, 13333 },
13388 "node_modules/normalize-path": { 13334 "node_modules/normalize-path": {
13389 "version": "3.0.0", 13335 "version": "3.0.0",
@@ -13467,12 +13413,12 @@
13467 } 13413 }
13468 }, 13414 },
13469 "node_modules/object-is": { 13415 "node_modules/object-is": {
13470 "version": "1.1.5", 13416 "version": "1.1.6",
13471 "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz", 13417 "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.6.tgz",
13472 "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==", 13418 "integrity": "sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==",
13473 "dependencies": { 13419 "dependencies": {
13474 "call-bind": "^1.0.2", 13420 "call-bind": "^1.0.7",
13475 "define-properties": "^1.1.3" 13421 "define-properties": "^1.2.1"
13476 }, 13422 },
13477 "engines": { 13423 "engines": {
13478 "node": ">= 0.4" 13424 "node": ">= 0.4"
@@ -13569,22 +13515,6 @@
13569 "node": ">= 0.4" 13515 "node": ">= 0.4"
13570 } 13516 }
13571 }, 13517 },
13572 "node_modules/object.hasown": {
13573 "version": "1.1.4",
13574 "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.4.tgz",
13575 "integrity": "sha512-FZ9LZt9/RHzGySlBARE3VF+gE26TxR38SdmqOqliuTnl9wrKulaQs+4dee1V+Io8VfxqzAfHu6YuRgUy8OHoTg==",
13576 "dependencies": {
13577 "define-properties": "^1.2.1",
13578 "es-abstract": "^1.23.2",
13579 "es-object-atoms": "^1.0.0"
13580 },
13581 "engines": {
13582 "node": ">= 0.4"
13583 },
13584 "funding": {
13585 "url": "https://github.com/sponsors/ljharb"
13586 }
13587 },
13588 "node_modules/object.values": { 13518 "node_modules/object.values": {
13589 "version": "1.2.0", 13519 "version": "1.2.0",
13590 "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.0.tgz", 13520 "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.0.tgz",
@@ -13749,6 +13679,30 @@
13749 "node": ">=6" 13679 "node": ">=6"
13750 } 13680 }
13751 }, 13681 },
13682 "node_modules/parse-entities": {
13683 "version": "4.0.1",
13684 "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-4.0.1.tgz",
13685 "integrity": "sha512-SWzvYcSJh4d/SGLIOQfZ/CoNv6BTlI6YEQ7Nj82oDVnRpwe/Z/F1EMx42x3JAOwGBlCjeCH0BRJQbQ/opHL17w==",
13686 "dependencies": {
13687 "@types/unist": "^2.0.0",
13688 "character-entities": "^2.0.0",
13689 "character-entities-legacy": "^3.0.0",
13690 "character-reference-invalid": "^2.0.0",
13691 "decode-named-character-reference": "^1.0.0",
13692 "is-alphanumerical": "^2.0.0",
13693 "is-decimal": "^2.0.0",
13694 "is-hexadecimal": "^2.0.0"
13695 },
13696 "funding": {
13697 "type": "github",
13698 "url": "https://github.com/sponsors/wooorm"
13699 }
13700 },
13701 "node_modules/parse-entities/node_modules/@types/unist": {
13702 "version": "2.0.11",
13703 "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz",
13704 "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA=="
13705 },
13752 "node_modules/parse-json": { 13706 "node_modules/parse-json": {
13753 "version": "5.2.0", 13707 "version": "5.2.0",
13754 "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", 13708 "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz",
@@ -13960,9 +13914,9 @@
13960 } 13914 }
13961 }, 13915 },
13962 "node_modules/postcss": { 13916 "node_modules/postcss": {
13963 "version": "8.4.39", 13917 "version": "8.4.41",
13964 "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.39.tgz", 13918 "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.41.tgz",
13965 "integrity": "sha512-0vzE+lAiG7hZl1/9I8yzKLx3aR9Xbof3fBHKunvMfOCYAtMhrsnccJY2iTURb9EZd5+pLuiNV9/c/GZJOHsgIw==", 13919 "integrity": "sha512-TesUflQ0WKZqAvg52PWL6kHgLKP6xB6heTOdoYM0Wt2UHyxNa4K25EZZMgKns3BH1RLVbZCREPpLY0rhnNoHVQ==",
13966 "funding": [ 13920 "funding": [
13967 { 13921 {
13968 "type": "opencollective", 13922 "type": "opencollective",
@@ -14461,9 +14415,9 @@
14461 } 14415 }
14462 }, 14416 },
14463 "node_modules/postcss-load-config/node_modules/yaml": { 14417 "node_modules/postcss-load-config/node_modules/yaml": {
14464 "version": "2.4.5", 14418 "version": "2.5.0",
14465 "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.4.5.tgz", 14419 "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.5.0.tgz",
14466 "integrity": "sha512-aBx2bnqDzVOyNKfsysjA2ms5ZlnjSAW2eG3/L5G/CSujfjLJTJsEw1bGw8kCf04KodQWk1pxlGnZ56CRxiawmg==", 14420 "integrity": "sha512-2wWLbGbYDiSqqIKoPjar3MPgB94ErzCtrNE1FdqGuaO0pi2JGjmE8aW8TDZwzU7vuxcGRdL/4gPQwQ7hD5AMSw==",
14467 "bin": { 14421 "bin": {
14468 "yaml": "bin.mjs" 14422 "yaml": "bin.mjs"
14469 }, 14423 },
@@ -14662,19 +14616,25 @@
14662 } 14616 }
14663 }, 14617 },
14664 "node_modules/postcss-nested": { 14618 "node_modules/postcss-nested": {
14665 "version": "6.0.1", 14619 "version": "6.2.0",
14666 "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.0.1.tgz", 14620 "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.2.0.tgz",
14667 "integrity": "sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==", 14621 "integrity": "sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==",
14622 "funding": [
14623 {
14624 "type": "opencollective",
14625 "url": "https://opencollective.com/postcss/"
14626 },
14627 {
14628 "type": "github",
14629 "url": "https://github.com/sponsors/ai"
14630 }
14631 ],
14668 "dependencies": { 14632 "dependencies": {
14669 "postcss-selector-parser": "^6.0.11" 14633 "postcss-selector-parser": "^6.1.1"
14670 }, 14634 },
14671 "engines": { 14635 "engines": {
14672 "node": ">=12.0" 14636 "node": ">=12.0"
14673 }, 14637 },
14674 "funding": {
14675 "type": "opencollective",
14676 "url": "https://opencollective.com/postcss/"
14677 },
14678 "peerDependencies": { 14638 "peerDependencies": {
14679 "postcss": "^8.2.14" 14639 "postcss": "^8.2.14"
14680 } 14640 }
@@ -15060,9 +15020,9 @@
15060 } 15020 }
15061 }, 15021 },
15062 "node_modules/postcss-selector-parser": { 15022 "node_modules/postcss-selector-parser": {
15063 "version": "6.1.0", 15023 "version": "6.1.2",
15064 "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.0.tgz", 15024 "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz",
15065 "integrity": "sha512-UMz42UD0UY0EApS0ZL9o1XnLhSTtvvvLe5Dc2H2O56fvRZi+KulDyf5ctDhhtYJBGKStV2FL1fy6253cmLgqVQ==", 15025 "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==",
15066 "dependencies": { 15026 "dependencies": {
15067 "cssesc": "^3.0.0", 15027 "cssesc": "^3.0.0",
15068 "util-deprecate": "^1.0.2" 15028 "util-deprecate": "^1.0.2"
@@ -15251,9 +15211,9 @@
15251 "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" 15211 "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ=="
15252 }, 15212 },
15253 "node_modules/property-information": { 15213 "node_modules/property-information": {
15254 "version": "6.2.0", 15214 "version": "6.5.0",
15255 "resolved": "https://registry.npmjs.org/property-information/-/property-information-6.2.0.tgz", 15215 "resolved": "https://registry.npmjs.org/property-information/-/property-information-6.5.0.tgz",
15256 "integrity": "sha512-kma4U7AFCTwpqq5twzC1YVIDXSqg6qQK6JN0smOw8fgRy1OkMi0CYSzFmsy6dnqSenamAtj0CyXMUJ1Mf6oROg==", 15216 "integrity": "sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig==",
15257 "funding": { 15217 "funding": {
15258 "type": "github", 15218 "type": "github",
15259 "url": "https://github.com/sponsors/wooorm" 15219 "url": "https://github.com/sponsors/wooorm"
@@ -15279,6 +15239,11 @@
15279 "node": ">= 0.10" 15239 "node": ">= 0.10"
15280 } 15240 }
15281 }, 15241 },
15242 "node_modules/proxy-from-env": {
15243 "version": "1.1.0",
15244 "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz",
15245 "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg=="
15246 },
15282 "node_modules/psl": { 15247 "node_modules/psl": {
15283 "version": "1.9.0", 15248 "version": "1.9.0",
15284 "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", 15249 "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz",
@@ -15398,9 +15363,9 @@
15398 } 15363 }
15399 }, 15364 },
15400 "node_modules/react": { 15365 "node_modules/react": {
15401 "version": "18.2.0", 15366 "version": "18.3.1",
15402 "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", 15367 "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz",
15403 "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==", 15368 "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==",
15404 "dependencies": { 15369 "dependencies": {
15405 "loose-envify": "^1.1.0" 15370 "loose-envify": "^1.1.0"
15406 }, 15371 },
@@ -15424,6 +15389,11 @@
15424 "node": ">=14" 15389 "node": ">=14"
15425 } 15390 }
15426 }, 15391 },
15392 "node_modules/react-app-polyfill/node_modules/regenerator-runtime": {
15393 "version": "0.13.11",
15394 "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz",
15395 "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg=="
15396 },
15427 "node_modules/react-dev-utils": { 15397 "node_modules/react-dev-utils": {
15428 "version": "12.0.1", 15398 "version": "12.0.1",
15429 "resolved": "https://registry.npmjs.org/react-dev-utils/-/react-dev-utils-12.0.1.tgz", 15399 "resolved": "https://registry.npmjs.org/react-dev-utils/-/react-dev-utils-12.0.1.tgz",
@@ -15599,15 +15569,15 @@
15599 } 15569 }
15600 }, 15570 },
15601 "node_modules/react-dom": { 15571 "node_modules/react-dom": {
15602 "version": "18.2.0", 15572 "version": "18.3.1",
15603 "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz", 15573 "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz",
15604 "integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==", 15574 "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==",
15605 "dependencies": { 15575 "dependencies": {
15606 "loose-envify": "^1.1.0", 15576 "loose-envify": "^1.1.0",
15607 "scheduler": "^0.23.0" 15577 "scheduler": "^0.23.2"
15608 }, 15578 },
15609 "peerDependencies": { 15579 "peerDependencies": {
15610 "react": "^18.2.0" 15580 "react": "^18.3.1"
15611 } 15581 }
15612 }, 15582 },
15613 "node_modules/react-error-overlay": { 15583 "node_modules/react-error-overlay": {
@@ -15621,40 +15591,30 @@
15621 "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" 15591 "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w=="
15622 }, 15592 },
15623 "node_modules/react-markdown": { 15593 "node_modules/react-markdown": {
15624 "version": "8.0.7", 15594 "version": "9.0.1",
15625 "resolved": "https://registry.npmjs.org/react-markdown/-/react-markdown-8.0.7.tgz", 15595 "resolved": "https://registry.npmjs.org/react-markdown/-/react-markdown-9.0.1.tgz",
15626 "integrity": "sha512-bvWbzG4MtOU62XqBx3Xx+zB2raaFFsq4mYiAzfjXJMEz2sixgeAfraA3tvzULF02ZdOMUOKTBFFaZJDDrq+BJQ==", 15596 "integrity": "sha512-186Gw/vF1uRkydbsOIkcGXw7aHq0sZOCRFFjGrr7b9+nVZg4UfA4enXCaxm4fUzecU38sWfrNDitGhshuU7rdg==",
15627 "dependencies": { 15597 "dependencies": {
15628 "@types/hast": "^2.0.0", 15598 "@types/hast": "^3.0.0",
15629 "@types/prop-types": "^15.0.0", 15599 "devlop": "^1.0.0",
15630 "@types/unist": "^2.0.0", 15600 "hast-util-to-jsx-runtime": "^2.0.0",
15631 "comma-separated-tokens": "^2.0.0", 15601 "html-url-attributes": "^3.0.0",
15632 "hast-util-whitespace": "^2.0.0", 15602 "mdast-util-to-hast": "^13.0.0",
15633 "prop-types": "^15.0.0", 15603 "remark-parse": "^11.0.0",
15634 "property-information": "^6.0.0", 15604 "remark-rehype": "^11.0.0",
15635 "react-is": "^18.0.0", 15605 "unified": "^11.0.0",
15636 "remark-parse": "^10.0.0", 15606 "unist-util-visit": "^5.0.0",
15637 "remark-rehype": "^10.0.0", 15607 "vfile": "^6.0.0"
15638 "space-separated-tokens": "^2.0.0",
15639 "style-to-object": "^0.4.0",
15640 "unified": "^10.0.0",
15641 "unist-util-visit": "^4.0.0",
15642 "vfile": "^5.0.0"
15643 }, 15608 },
15644 "funding": { 15609 "funding": {
15645 "type": "opencollective", 15610 "type": "opencollective",
15646 "url": "https://opencollective.com/unified" 15611 "url": "https://opencollective.com/unified"
15647 }, 15612 },
15648 "peerDependencies": { 15613 "peerDependencies": {
15649 "@types/react": ">=16", 15614 "@types/react": ">=18",
15650 "react": ">=16" 15615 "react": ">=18"
15651 } 15616 }
15652 }, 15617 },
15653 "node_modules/react-markdown/node_modules/react-is": {
15654 "version": "18.2.0",
15655 "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz",
15656 "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w=="
15657 },
15658 "node_modules/react-refresh": { 15618 "node_modules/react-refresh": {
15659 "version": "0.11.0", 15619 "version": "0.11.0",
15660 "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.11.0.tgz", 15620 "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.11.0.tgz",
@@ -15664,31 +15624,29 @@
15664 } 15624 }
15665 }, 15625 },
15666 "node_modules/react-router": { 15626 "node_modules/react-router": {
15667 "version": "6.10.0", 15627 "version": "6.26.1",
15668 "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.10.0.tgz", 15628 "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.26.1.tgz",
15669 "integrity": "sha512-Nrg0BWpQqrC3ZFFkyewrflCud9dio9ME3ojHCF/WLsprJVzkq3q3UeEhMCAW1dobjeGbWgjNn/PVF6m46ANxXQ==", 15629 "integrity": "sha512-kIwJveZNwp7teQRI5QmwWo39A5bXRyqpH0COKKmPnyD2vBvDwgFXSqDUYtt1h+FEyfnE8eXr7oe0MxRzVwCcvQ==",
15670 "dev": true,
15671 "dependencies": { 15630 "dependencies": {
15672 "@remix-run/router": "1.5.0" 15631 "@remix-run/router": "1.19.1"
15673 }, 15632 },
15674 "engines": { 15633 "engines": {
15675 "node": ">=14" 15634 "node": ">=14.0.0"
15676 }, 15635 },
15677 "peerDependencies": { 15636 "peerDependencies": {
15678 "react": ">=16.8" 15637 "react": ">=16.8"
15679 } 15638 }
15680 }, 15639 },
15681 "node_modules/react-router-dom": { 15640 "node_modules/react-router-dom": {
15682 "version": "6.10.0", 15641 "version": "6.26.1",
15683 "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.10.0.tgz", 15642 "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.26.1.tgz",
15684 "integrity": "sha512-E5dfxRPuXKJqzwSe/qGcqdwa18QiWC6f3H3cWXM24qj4N0/beCIf/CWTipop2xm7mR0RCS99NnaqPNjHtrAzCg==", 15643 "integrity": "sha512-veut7m41S1fLql4pLhxeSW3jlqs+4MtjRLj0xvuCEXsxusJCbs6I8yn9BxzzDX2XDgafrccY6hwjmd/bL54tFw==",
15685 "dev": true,
15686 "dependencies": { 15644 "dependencies": {
15687 "@remix-run/router": "1.5.0", 15645 "@remix-run/router": "1.19.1",
15688 "react-router": "6.10.0" 15646 "react-router": "6.26.1"
15689 }, 15647 },
15690 "engines": { 15648 "engines": {
15691 "node": ">=14" 15649 "node": ">=14.0.0"
15692 }, 15650 },
15693 "peerDependencies": { 15651 "peerDependencies": {
15694 "react": ">=16.8", 15652 "react": ">=16.8",
@@ -15859,9 +15817,9 @@
15859 } 15817 }
15860 }, 15818 },
15861 "node_modules/regenerator-runtime": { 15819 "node_modules/regenerator-runtime": {
15862 "version": "0.13.11", 15820 "version": "0.14.1",
15863 "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", 15821 "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz",
15864 "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==" 15822 "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw=="
15865 }, 15823 },
15866 "node_modules/regenerator-transform": { 15824 "node_modules/regenerator-transform": {
15867 "version": "0.15.2", 15825 "version": "0.15.2",
@@ -15937,13 +15895,14 @@
15937 } 15895 }
15938 }, 15896 },
15939 "node_modules/remark-parse": { 15897 "node_modules/remark-parse": {
15940 "version": "10.0.2", 15898 "version": "11.0.0",
15941 "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-10.0.2.tgz", 15899 "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-11.0.0.tgz",
15942 "integrity": "sha512-3ydxgHa/ZQzG8LvC7jTXccARYDcRld3VfcgIIFs7bI6vbRSxJJmzgLEIIoYKyrfhaY+ujuWaf/PJiMZXoiCXgw==", 15900 "integrity": "sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==",
15943 "dependencies": { 15901 "dependencies": {
15944 "@types/mdast": "^3.0.0", 15902 "@types/mdast": "^4.0.0",
15945 "mdast-util-from-markdown": "^1.0.0", 15903 "mdast-util-from-markdown": "^2.0.0",
15946 "unified": "^10.0.0" 15904 "micromark-util-types": "^2.0.0",
15905 "unified": "^11.0.0"
15947 }, 15906 },
15948 "funding": { 15907 "funding": {
15949 "type": "opencollective", 15908 "type": "opencollective",
@@ -15951,14 +15910,15 @@
15951 } 15910 }
15952 }, 15911 },
15953 "node_modules/remark-rehype": { 15912 "node_modules/remark-rehype": {
15954 "version": "10.1.0", 15913 "version": "11.1.0",
15955 "resolved": "https://registry.npmjs.org/remark-rehype/-/remark-rehype-10.1.0.tgz", 15914 "resolved": "https://registry.npmjs.org/remark-rehype/-/remark-rehype-11.1.0.tgz",
15956 "integrity": "sha512-EFmR5zppdBp0WQeDVZ/b66CWJipB2q2VLNFMabzDSGR66Z2fQii83G5gTBbgGEnEEA0QRussvrFHxk1HWGJskw==", 15915 "integrity": "sha512-z3tJrAs2kIs1AqIIy6pzHmAHlF1hWQ+OdY4/hv+Wxe35EhyLKcajL33iUEn3ScxtFox9nUvRufR/Zre8Q08H/g==",
15957 "dependencies": { 15916 "dependencies": {
15958 "@types/hast": "^2.0.0", 15917 "@types/hast": "^3.0.0",
15959 "@types/mdast": "^3.0.0", 15918 "@types/mdast": "^4.0.0",
15960 "mdast-util-to-hast": "^12.1.0", 15919 "mdast-util-to-hast": "^13.0.0",
15961 "unified": "^10.0.0" 15920 "unified": "^11.0.0",
15921 "vfile": "^6.0.0"
15962 }, 15922 },
15963 "funding": { 15923 "funding": {
15964 "type": "opencollective", 15924 "type": "opencollective",
@@ -16060,6 +16020,11 @@
16060 } 16020 }
16061 } 16021 }
16062 }, 16022 },
16023 "node_modules/resolve-url-loader/node_modules/convert-source-map": {
16024 "version": "1.9.0",
16025 "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz",
16026 "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A=="
16027 },
16063 "node_modules/resolve-url-loader/node_modules/picocolors": { 16028 "node_modules/resolve-url-loader/node_modules/picocolors": {
16064 "version": "0.2.1", 16029 "version": "0.2.1",
16065 "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", 16030 "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz",
@@ -16220,17 +16185,6 @@
16220 "queue-microtask": "^1.2.2" 16185 "queue-microtask": "^1.2.2"
16221 } 16186 }
16222 }, 16187 },
16223 "node_modules/sade": {
16224 "version": "1.8.1",
16225 "resolved": "https://registry.npmjs.org/sade/-/sade-1.8.1.tgz",
16226 "integrity": "sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==",
16227 "dependencies": {
16228 "mri": "^1.1.0"
16229 },
16230 "engines": {
16231 "node": ">=6"
16232 }
16233 },
16234 "node_modules/safe-array-concat": { 16188 "node_modules/safe-array-concat": {
16235 "version": "1.1.2", 16189 "version": "1.1.2",
16236 "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.2.tgz", 16190 "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.2.tgz",
@@ -16347,9 +16301,9 @@
16347 } 16301 }
16348 }, 16302 },
16349 "node_modules/scheduler": { 16303 "node_modules/scheduler": {
16350 "version": "0.23.0", 16304 "version": "0.23.2",
16351 "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz", 16305 "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz",
16352 "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==", 16306 "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==",
16353 "dependencies": { 16307 "dependencies": {
16354 "loose-envify": "^1.1.0" 16308 "loose-envify": "^1.1.0"
16355 } 16309 }
@@ -16373,14 +16327,14 @@
16373 } 16327 }
16374 }, 16328 },
16375 "node_modules/schema-utils/node_modules/ajv": { 16329 "node_modules/schema-utils/node_modules/ajv": {
16376 "version": "8.16.0", 16330 "version": "8.17.1",
16377 "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.16.0.tgz", 16331 "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz",
16378 "integrity": "sha512-F0twR8U1ZU67JIEtekUcLkXkoO5mMMmgGD8sK/xUFzJ805jxHQl92hImFAqqXMyMYjSPOyUPAwHYhB72g5sTXw==", 16332 "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==",
16379 "dependencies": { 16333 "dependencies": {
16380 "fast-deep-equal": "^3.1.3", 16334 "fast-deep-equal": "^3.1.3",
16335 "fast-uri": "^3.0.1",
16381 "json-schema-traverse": "^1.0.0", 16336 "json-schema-traverse": "^1.0.0",
16382 "require-from-string": "^2.0.2", 16337 "require-from-string": "^2.0.2"
16383 "uri-js": "^4.4.1"
16384 }, 16338 },
16385 "funding": { 16339 "funding": {
16386 "type": "github", 16340 "type": "github",
@@ -16421,9 +16375,9 @@
16421 } 16375 }
16422 }, 16376 },
16423 "node_modules/semver": { 16377 "node_modules/semver": {
16424 "version": "7.6.2", 16378 "version": "7.6.3",
16425 "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", 16379 "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz",
16426 "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", 16380 "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==",
16427 "bin": { 16381 "bin": {
16428 "semver": "bin/semver.js" 16382 "semver": "bin/semver.js"
16429 }, 16383 },
@@ -17015,6 +16969,15 @@
17015 "url": "https://github.com/sponsors/ljharb" 16969 "url": "https://github.com/sponsors/ljharb"
17016 } 16970 }
17017 }, 16971 },
16972 "node_modules/string.prototype.repeat": {
16973 "version": "1.0.0",
16974 "resolved": "https://registry.npmjs.org/string.prototype.repeat/-/string.prototype.repeat-1.0.0.tgz",
16975 "integrity": "sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==",
16976 "dependencies": {
16977 "define-properties": "^1.1.3",
16978 "es-abstract": "^1.17.5"
16979 }
16980 },
17018 "node_modules/string.prototype.trim": { 16981 "node_modules/string.prototype.trim": {
17019 "version": "1.2.9", 16982 "version": "1.2.9",
17020 "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz", 16983 "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz",
@@ -17061,6 +17024,19 @@
17061 "url": "https://github.com/sponsors/ljharb" 17024 "url": "https://github.com/sponsors/ljharb"
17062 } 17025 }
17063 }, 17026 },
17027 "node_modules/stringify-entities": {
17028 "version": "4.0.4",
17029 "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-4.0.4.tgz",
17030 "integrity": "sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==",
17031 "dependencies": {
17032 "character-entities-html4": "^2.0.0",
17033 "character-entities-legacy": "^3.0.0"
17034 },
17035 "funding": {
17036 "type": "github",
17037 "url": "https://github.com/sponsors/wooorm"
17038 }
17039 },
17064 "node_modules/stringify-object": { 17040 "node_modules/stringify-object": {
17065 "version": "3.3.0", 17041 "version": "3.3.0",
17066 "resolved": "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz", 17042 "resolved": "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz",
@@ -17159,11 +17135,11 @@
17159 } 17135 }
17160 }, 17136 },
17161 "node_modules/style-to-object": { 17137 "node_modules/style-to-object": {
17162 "version": "0.4.1", 17138 "version": "1.0.7",
17163 "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-0.4.1.tgz", 17139 "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-1.0.7.tgz",
17164 "integrity": "sha512-HFpbb5gr2ypci7Qw+IOhnP2zOU7e77b+rzM+wTzXzfi1PrtBCX0E7Pk4wL4iTLnhzZ+JgEGAhX81ebTg/aYjQw==", 17140 "integrity": "sha512-uSjr59G5u6fbxUfKbb8GcqMGT3Xs9v5IbPkjb0S16GyOeBLAzSRK0CixBv5YrYvzO6TDLzIS6QCn78tkqWngPw==",
17165 "dependencies": { 17141 "dependencies": {
17166 "inline-style-parser": "0.1.1" 17142 "inline-style-parser": "0.2.3"
17167 } 17143 }
17168 }, 17144 },
17169 "node_modules/stylehacks": { 17145 "node_modules/stylehacks": {
@@ -17202,19 +17178,6 @@
17202 "node": ">=16 || 14 >=14.17" 17178 "node": ">=16 || 14 >=14.17"
17203 } 17179 }
17204 }, 17180 },
17205 "node_modules/sucrase/node_modules/@jridgewell/gen-mapping": {
17206 "version": "0.3.5",
17207 "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz",
17208 "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==",
17209 "dependencies": {
17210 "@jridgewell/set-array": "^1.2.1",
17211 "@jridgewell/sourcemap-codec": "^1.4.10",
17212 "@jridgewell/trace-mapping": "^0.3.24"
17213 },
17214 "engines": {
17215 "node": ">=6.0.0"
17216 }
17217 },
17218 "node_modules/sucrase/node_modules/brace-expansion": { 17181 "node_modules/sucrase/node_modules/brace-expansion": {
17219 "version": "2.0.1", 17182 "version": "2.0.1",
17220 "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", 17183 "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
@@ -17408,9 +17371,9 @@
17408 "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==" 17371 "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw=="
17409 }, 17372 },
17410 "node_modules/tailwindcss": { 17373 "node_modules/tailwindcss": {
17411 "version": "3.4.4", 17374 "version": "3.4.10",
17412 "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.4.tgz", 17375 "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.10.tgz",
17413 "integrity": "sha512-ZoyXOdJjISB7/BcLTR6SEsLgKtDStYyYZVLsUtWChO4Ps20CBad7lfJKVDiejocV4ME1hLmyY0WJE3hSDcmQ2A==", 17376 "integrity": "sha512-KWZkVPm7yJRhdu4SRSl9d4AK2wM3a50UsvgHZO7xY77NQr2V+fIrEuoDGQcbvswWvFGbS2f6e+jC/6WJm1Dl0w==",
17414 "dependencies": { 17377 "dependencies": {
17415 "@alloc/quick-lru": "^5.2.0", 17378 "@alloc/quick-lru": "^5.2.0",
17416 "arg": "^5.0.2", 17379 "arg": "^5.0.2",
@@ -17503,9 +17466,9 @@
17503 } 17466 }
17504 }, 17467 },
17505 "node_modules/terser": { 17468 "node_modules/terser": {
17506 "version": "5.31.2", 17469 "version": "5.31.6",
17507 "resolved": "https://registry.npmjs.org/terser/-/terser-5.31.2.tgz", 17470 "resolved": "https://registry.npmjs.org/terser/-/terser-5.31.6.tgz",
17508 "integrity": "sha512-LGyRZVFm/QElZHy/CPr/O4eNZOZIzsrQ92y4v9UJe/pFJjypje2yI3C2FmPtvUEnhadlSbmG2nXtdcjHOjCfxw==", 17471 "integrity": "sha512-PQ4DAriWzKj+qgehQ7LK5bQqCFNMmlhjR2PFFLuqGCpuCAauxemVBWwWOxo3UIwWQx8+Pr61Df++r76wDmkQBg==",
17509 "dependencies": { 17472 "dependencies": {
17510 "@jridgewell/source-map": "^0.3.3", 17473 "@jridgewell/source-map": "^0.3.3",
17511 "acorn": "^8.8.2", 17474 "acorn": "^8.8.2",
@@ -17696,9 +17659,9 @@
17696 } 17659 }
17697 }, 17660 },
17698 "node_modules/trough": { 17661 "node_modules/trough": {
17699 "version": "2.1.0", 17662 "version": "2.2.0",
17700 "resolved": "https://registry.npmjs.org/trough/-/trough-2.1.0.tgz", 17663 "resolved": "https://registry.npmjs.org/trough/-/trough-2.2.0.tgz",
17701 "integrity": "sha512-AqTiAOLcj85xS7vQ8QkAV41hPDIJ71XJB4RCUrzo/1GM2CQwhkJGaf9Hgr7BOugMRpgGUrqRg/DrBDl4H40+8g==", 17664 "integrity": "sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==",
17702 "funding": { 17665 "funding": {
17703 "type": "github", 17666 "type": "github",
17704 "url": "https://github.com/sponsors/wooorm" 17667 "url": "https://github.com/sponsors/wooorm"
@@ -17888,16 +17851,15 @@
17888 } 17851 }
17889 }, 17852 },
17890 "node_modules/typescript": { 17853 "node_modules/typescript": {
17891 "version": "5.5.3", 17854 "version": "4.9.5",
17892 "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.5.3.tgz", 17855 "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz",
17893 "integrity": "sha512-/hreyEujaB0w76zKo6717l3L0o/qEUtRgdvUBvlkhoWeOVMjMuHNHk0BRBzikzuGDqNmPQbg5ifMEqsHLiIUcQ==", 17856 "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==",
17894 "peer": true,
17895 "bin": { 17857 "bin": {
17896 "tsc": "bin/tsc", 17858 "tsc": "bin/tsc",
17897 "tsserver": "bin/tsserver" 17859 "tsserver": "bin/tsserver"
17898 }, 17860 },
17899 "engines": { 17861 "engines": {
17900 "node": ">=14.17" 17862 "node": ">=4.2.0"
17901 } 17863 }
17902 }, 17864 },
17903 "node_modules/unbox-primitive": { 17865 "node_modules/unbox-primitive": {
@@ -17956,17 +17918,17 @@
17956 } 17918 }
17957 }, 17919 },
17958 "node_modules/unified": { 17920 "node_modules/unified": {
17959 "version": "10.1.2", 17921 "version": "11.0.5",
17960 "resolved": "https://registry.npmjs.org/unified/-/unified-10.1.2.tgz", 17922 "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.5.tgz",
17961 "integrity": "sha512-pUSWAi/RAnVy1Pif2kAoeWNBa3JVrx0MId2LASj8G+7AiHWoKZNTomq6LG326T68U7/e263X6fTdcXIy7XnF7Q==", 17923 "integrity": "sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==",
17962 "dependencies": { 17924 "dependencies": {
17963 "@types/unist": "^2.0.0", 17925 "@types/unist": "^3.0.0",
17964 "bail": "^2.0.0", 17926 "bail": "^2.0.0",
17927 "devlop": "^1.0.0",
17965 "extend": "^3.0.0", 17928 "extend": "^3.0.0",
17966 "is-buffer": "^2.0.0",
17967 "is-plain-obj": "^4.0.0", 17929 "is-plain-obj": "^4.0.0",
17968 "trough": "^2.0.0", 17930 "trough": "^2.0.0",
17969 "vfile": "^5.0.0" 17931 "vfile": "^6.0.0"
17970 }, 17932 },
17971 "funding": { 17933 "funding": {
17972 "type": "opencollective", 17934 "type": "opencollective",
@@ -17995,21 +17957,12 @@
17995 "node": ">=8" 17957 "node": ">=8"
17996 } 17958 }
17997 }, 17959 },
17998 "node_modules/unist-util-generated": {
17999 "version": "2.0.1",
18000 "resolved": "https://registry.npmjs.org/unist-util-generated/-/unist-util-generated-2.0.1.tgz",
18001 "integrity": "sha512-qF72kLmPxAw0oN2fwpWIqbXAVyEqUzDHMsbtPvOudIlUzXYFIeQIuxXQCRCFh22B7cixvU0MG7m3MW8FTq/S+A==",
18002 "funding": {
18003 "type": "opencollective",
18004 "url": "https://opencollective.com/unified"
18005 }
18006 },
18007 "node_modules/unist-util-is": { 17960 "node_modules/unist-util-is": {
18008 "version": "5.2.1", 17961 "version": "6.0.0",
18009 "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.2.1.tgz", 17962 "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.0.tgz",
18010 "integrity": "sha512-u9njyyfEh43npf1M+yGKDGVPbY/JWEemg5nH05ncKPfi+kBbKBJoTdsogMu33uhytuLlv9y0O7GH7fEdwLdLQw==", 17963 "integrity": "sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==",
18011 "dependencies": { 17964 "dependencies": {
18012 "@types/unist": "^2.0.0" 17965 "@types/unist": "^3.0.0"
18013 }, 17966 },
18014 "funding": { 17967 "funding": {
18015 "type": "opencollective", 17968 "type": "opencollective",
@@ -18017,11 +17970,11 @@
18017 } 17970 }
18018 }, 17971 },
18019 "node_modules/unist-util-position": { 17972 "node_modules/unist-util-position": {
18020 "version": "4.0.4", 17973 "version": "5.0.0",
18021 "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-4.0.4.tgz", 17974 "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz",
18022 "integrity": "sha512-kUBE91efOWfIVBo8xzh/uZQ7p9ffYRtUbMRZBNFYwf0RK8koUMx6dGUfwylLOKmaT2cs4wSW96QoYUSXAyEtpg==", 17975 "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==",
18023 "dependencies": { 17976 "dependencies": {
18024 "@types/unist": "^2.0.0" 17977 "@types/unist": "^3.0.0"
18025 }, 17978 },
18026 "funding": { 17979 "funding": {
18027 "type": "opencollective", 17980 "type": "opencollective",
@@ -18029,11 +17982,11 @@
18029 } 17982 }
18030 }, 17983 },
18031 "node_modules/unist-util-stringify-position": { 17984 "node_modules/unist-util-stringify-position": {
18032 "version": "3.0.3", 17985 "version": "4.0.0",
18033 "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.3.tgz", 17986 "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
18034 "integrity": "sha512-k5GzIBZ/QatR8N5X2y+drfpWG8IDBzdnVj6OInRNWm1oXrzydiaAT2OQiA8DPRRZyAKb9b6I2a6PxYklZD0gKg==", 17987 "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
18035 "dependencies": { 17988 "dependencies": {
18036 "@types/unist": "^2.0.0" 17989 "@types/unist": "^3.0.0"
18037 }, 17990 },
18038 "funding": { 17991 "funding": {
18039 "type": "opencollective", 17992 "type": "opencollective",
@@ -18041,13 +17994,13 @@
18041 } 17994 }
18042 }, 17995 },
18043 "node_modules/unist-util-visit": { 17996 "node_modules/unist-util-visit": {
18044 "version": "4.1.2", 17997 "version": "5.0.0",
18045 "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.1.2.tgz", 17998 "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.0.0.tgz",
18046 "integrity": "sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg==", 17999 "integrity": "sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==",
18047 "dependencies": { 18000 "dependencies": {
18048 "@types/unist": "^2.0.0", 18001 "@types/unist": "^3.0.0",
18049 "unist-util-is": "^5.0.0", 18002 "unist-util-is": "^6.0.0",
18050 "unist-util-visit-parents": "^5.1.1" 18003 "unist-util-visit-parents": "^6.0.0"
18051 }, 18004 },
18052 "funding": { 18005 "funding": {
18053 "type": "opencollective", 18006 "type": "opencollective",
@@ -18055,12 +18008,12 @@
18055 } 18008 }
18056 }, 18009 },
18057 "node_modules/unist-util-visit-parents": { 18010 "node_modules/unist-util-visit-parents": {
18058 "version": "5.1.3", 18011 "version": "6.0.1",
18059 "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.1.3.tgz", 18012 "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.1.tgz",
18060 "integrity": "sha512-x6+y8g7wWMyQhL1iZfhIPhDAs7Xwbn9nRosDXl7qoPTSCy0yNxnKc+hWokFifWQIDGi154rdUqKvbCa4+1kLhg==", 18013 "integrity": "sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==",
18061 "dependencies": { 18014 "dependencies": {
18062 "@types/unist": "^2.0.0", 18015 "@types/unist": "^3.0.0",
18063 "unist-util-is": "^5.0.0" 18016 "unist-util-is": "^6.0.0"
18064 }, 18017 },
18065 "funding": { 18018 "funding": {
18066 "type": "opencollective", 18019 "type": "opencollective",
@@ -18183,31 +18136,6 @@
18183 "uuid": "dist/bin/uuid" 18136 "uuid": "dist/bin/uuid"
18184 } 18137 }
18185 }, 18138 },
18186 "node_modules/uvu": {
18187 "version": "0.5.6",
18188 "resolved": "https://registry.npmjs.org/uvu/-/uvu-0.5.6.tgz",
18189 "integrity": "sha512-+g8ENReyr8YsOc6fv/NVJs2vFdHBnBNdfE49rshrTzDWOlUx4Gq7KOS2GD8eqhy2j+Ejq29+SbKH8yjkAqXqoA==",
18190 "dependencies": {
18191 "dequal": "^2.0.0",
18192 "diff": "^5.0.0",
18193 "kleur": "^4.0.3",
18194 "sade": "^1.7.3"
18195 },
18196 "bin": {
18197 "uvu": "bin.js"
18198 },
18199 "engines": {
18200 "node": ">=8"
18201 }
18202 },
18203 "node_modules/uvu/node_modules/kleur": {
18204 "version": "4.1.5",
18205 "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz",
18206 "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==",
18207 "engines": {
18208 "node": ">=6"
18209 }
18210 },
18211 "node_modules/v8-to-istanbul": { 18139 "node_modules/v8-to-istanbul": {
18212 "version": "8.1.1", 18140 "version": "8.1.1",
18213 "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-8.1.1.tgz", 18141 "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-8.1.1.tgz",
@@ -18221,6 +18149,11 @@
18221 "node": ">=10.12.0" 18149 "node": ">=10.12.0"
18222 } 18150 }
18223 }, 18151 },
18152 "node_modules/v8-to-istanbul/node_modules/convert-source-map": {
18153 "version": "1.9.0",
18154 "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz",
18155 "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A=="
18156 },
18224 "node_modules/vary": { 18157 "node_modules/vary": {
18225 "version": "1.1.2", 18158 "version": "1.1.2",
18226 "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", 18159 "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
@@ -18230,14 +18163,12 @@
18230 } 18163 }
18231 }, 18164 },
18232 "node_modules/vfile": { 18165 "node_modules/vfile": {
18233 "version": "5.3.7", 18166 "version": "6.0.3",
18234 "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.3.7.tgz", 18167 "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.3.tgz",
18235 "integrity": "sha512-r7qlzkgErKjobAmyNIkkSpizsFPYiUPuJb5pNW1RB4JcYVZhs4lIbVqk8XPk033CV/1z8ss5pkax8SuhGpcG8g==", 18168 "integrity": "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==",
18236 "dependencies": { 18169 "dependencies": {
18237 "@types/unist": "^2.0.0", 18170 "@types/unist": "^3.0.0",
18238 "is-buffer": "^2.0.0", 18171 "vfile-message": "^4.0.0"
18239 "unist-util-stringify-position": "^3.0.0",
18240 "vfile-message": "^3.0.0"
18241 }, 18172 },
18242 "funding": { 18173 "funding": {
18243 "type": "opencollective", 18174 "type": "opencollective",
@@ -18245,12 +18176,12 @@
18245 } 18176 }
18246 }, 18177 },
18247 "node_modules/vfile-message": { 18178 "node_modules/vfile-message": {
18248 "version": "3.1.4", 18179 "version": "4.0.2",
18249 "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.1.4.tgz", 18180 "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz",
18250 "integrity": "sha512-fa0Z6P8HUrQN4BZaX05SIVXic+7kE3b05PWAtPuYP9QLHsLKYR7/AlLW3NtOrpXRLeawpDLMsVkmk5DG0NXgWw==", 18181 "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==",
18251 "dependencies": { 18182 "dependencies": {
18252 "@types/unist": "^2.0.0", 18183 "@types/unist": "^3.0.0",
18253 "unist-util-stringify-position": "^3.0.0" 18184 "unist-util-stringify-position": "^4.0.0"
18254 }, 18185 },
18255 "funding": { 18186 "funding": {
18256 "type": "opencollective", 18187 "type": "opencollective",
@@ -18286,9 +18217,9 @@
18286 } 18217 }
18287 }, 18218 },
18288 "node_modules/watchpack": { 18219 "node_modules/watchpack": {
18289 "version": "2.4.1", 18220 "version": "2.4.2",
18290 "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.1.tgz", 18221 "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.2.tgz",
18291 "integrity": "sha512-8wrBCMtVhqcXP2Sup1ctSkga6uc2Bx0IIvKyT7yTFier5AXHooSI+QyQQAtTb7+E0IUCCKyTFmXqdqgum2XWGg==", 18222 "integrity": "sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw==",
18292 "dependencies": { 18223 "dependencies": {
18293 "glob-to-regexp": "^0.4.1", 18224 "glob-to-regexp": "^0.4.1",
18294 "graceful-fs": "^4.1.2" 18225 "graceful-fs": "^4.1.2"
@@ -18319,9 +18250,9 @@
18319 } 18250 }
18320 }, 18251 },
18321 "node_modules/webpack": { 18252 "node_modules/webpack": {
18322 "version": "5.92.1", 18253 "version": "5.93.0",
18323 "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.92.1.tgz", 18254 "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.93.0.tgz",
18324 "integrity": "sha512-JECQ7IwJb+7fgUFBlrJzbyu3GEuNBcdqr1LD7IbSzwkSmIevTm8PF+wej3Oxuz/JFBUZ6O1o43zsPkwm1C4TmA==", 18255 "integrity": "sha512-Y0m5oEY1LRuwly578VqluorkXbvXKh7U3rLoQCEO04M97ScRr44afGVkI0FQFsXzysk5OgFAxjZAb9rsGQVihA==",
18325 "dependencies": { 18256 "dependencies": {
18326 "@types/eslint-scope": "^3.7.3", 18257 "@types/eslint-scope": "^3.7.3",
18327 "@types/estree": "^1.0.5", 18258 "@types/estree": "^1.0.5",
@@ -18637,12 +18568,12 @@
18637 } 18568 }
18638 }, 18569 },
18639 "node_modules/which-builtin-type": { 18570 "node_modules/which-builtin-type": {
18640 "version": "1.1.3", 18571 "version": "1.1.4",
18641 "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.1.3.tgz", 18572 "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.1.4.tgz",
18642 "integrity": "sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw==", 18573 "integrity": "sha512-bppkmBSsHFmIMSl8BO9TbsyzsvGjVoppt8xUiGzwiu/bhDCGxnpOKCxgqj6GuyHE0mINMDecBFPlOm2hzY084w==",
18643 "dependencies": { 18574 "dependencies": {
18644 "function.prototype.name": "^1.1.5", 18575 "function.prototype.name": "^1.1.6",
18645 "has-tostringtag": "^1.0.0", 18576 "has-tostringtag": "^1.0.2",
18646 "is-async-function": "^2.0.0", 18577 "is-async-function": "^2.0.0",
18647 "is-date-object": "^1.0.5", 18578 "is-date-object": "^1.0.5",
18648 "is-finalizationregistry": "^1.0.2", 18579 "is-finalizationregistry": "^1.0.2",
@@ -18651,8 +18582,8 @@
18651 "is-weakref": "^1.0.2", 18582 "is-weakref": "^1.0.2",
18652 "isarray": "^2.0.5", 18583 "isarray": "^2.0.5",
18653 "which-boxed-primitive": "^1.0.2", 18584 "which-boxed-primitive": "^1.0.2",
18654 "which-collection": "^1.0.1", 18585 "which-collection": "^1.0.2",
18655 "which-typed-array": "^1.1.9" 18586 "which-typed-array": "^1.1.15"
18656 }, 18587 },
18657 "engines": { 18588 "engines": {
18658 "node": ">= 0.4" 18589 "node": ">= 0.4"
@@ -18662,14 +18593,17 @@
18662 } 18593 }
18663 }, 18594 },
18664 "node_modules/which-collection": { 18595 "node_modules/which-collection": {
18665 "version": "1.0.1", 18596 "version": "1.0.2",
18666 "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.1.tgz", 18597 "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz",
18667 "integrity": "sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==", 18598 "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==",
18668 "dependencies": { 18599 "dependencies": {
18669 "is-map": "^2.0.1", 18600 "is-map": "^2.0.3",
18670 "is-set": "^2.0.1", 18601 "is-set": "^2.0.3",
18671 "is-weakmap": "^2.0.1", 18602 "is-weakmap": "^2.0.2",
18672 "is-weakset": "^2.0.1" 18603 "is-weakset": "^2.0.3"
18604 },
18605 "engines": {
18606 "node": ">= 0.4"
18673 }, 18607 },
18674 "funding": { 18608 "funding": {
18675 "url": "https://github.com/sponsors/ljharb" 18609 "url": "https://github.com/sponsors/ljharb"
@@ -18782,14 +18716,14 @@
18782 } 18716 }
18783 }, 18717 },
18784 "node_modules/workbox-build/node_modules/ajv": { 18718 "node_modules/workbox-build/node_modules/ajv": {
18785 "version": "8.16.0", 18719 "version": "8.17.1",
18786 "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.16.0.tgz", 18720 "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz",
18787 "integrity": "sha512-F0twR8U1ZU67JIEtekUcLkXkoO5mMMmgGD8sK/xUFzJ805jxHQl92hImFAqqXMyMYjSPOyUPAwHYhB72g5sTXw==", 18721 "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==",
18788 "dependencies": { 18722 "dependencies": {
18789 "fast-deep-equal": "^3.1.3", 18723 "fast-deep-equal": "^3.1.3",
18724 "fast-uri": "^3.0.1",
18790 "json-schema-traverse": "^1.0.0", 18725 "json-schema-traverse": "^1.0.0",
18791 "require-from-string": "^2.0.2", 18726 "require-from-string": "^2.0.2"
18792 "uri-js": "^4.4.1"
18793 }, 18727 },
18794 "funding": { 18728 "funding": {
18795 "type": "github", 18729 "type": "github",
@@ -19192,13441 +19126,15 @@
19192 "funding": { 19126 "funding": {
19193 "url": "https://github.com/sponsors/sindresorhus" 19127 "url": "https://github.com/sponsors/sindresorhus"
19194 } 19128 }
19195 }
19196 },
19197 "dependencies": {
19198 "@adobe/css-tools": {
19199 "version": "4.4.0",
19200 "resolved": "https://registry.npmjs.org/@adobe/css-tools/-/css-tools-4.4.0.tgz",
19201 "integrity": "sha512-Ff9+ksdQQB3rMncgqDK78uLznstjyfIf2Arnh22pW8kBpLs6rpKDwgnZT46hin5Hl1WzazzK64DOrhSwYpS7bQ=="
19202 },
19203 "@alloc/quick-lru": {
19204 "version": "5.2.0",
19205 "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz",
19206 "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw=="
19207 },
19208 "@ampproject/remapping": {
19209 "version": "2.2.0",
19210 "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz",
19211 "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==",
19212 "requires": {
19213 "@jridgewell/gen-mapping": "^0.1.0",
19214 "@jridgewell/trace-mapping": "^0.3.9"
19215 }
19216 },
19217 "@babel/code-frame": {
19218 "version": "7.24.7",
19219 "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.7.tgz",
19220 "integrity": "sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==",
19221 "requires": {
19222 "@babel/highlight": "^7.24.7",
19223 "picocolors": "^1.0.0"
19224 }
19225 },
19226 "@babel/compat-data": {
19227 "version": "7.24.8",
19228 "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.24.8.tgz",
19229 "integrity": "sha512-c4IM7OTg6k1Q+AJ153e2mc2QVTezTwnb4VzquwcyiEzGnW0Kedv4do/TrkU98qPeC5LNiMt/QXwIjzYXLBpyZg=="
19230 },
19231 "@babel/core": {
19232 "version": "7.20.12",
19233 "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.20.12.tgz",
19234 "integrity": "sha512-XsMfHovsUYHFMdrIHkZphTN/2Hzzi78R08NuHfDBehym2VsPDL6Zn/JAD/JQdnRvbSsbQc4mVaU1m6JgtTEElg==",
19235 "requires": {
19236 "@ampproject/remapping": "^2.1.0",
19237 "@babel/code-frame": "^7.18.6",
19238 "@babel/generator": "^7.20.7",
19239 "@babel/helper-compilation-targets": "^7.20.7",
19240 "@babel/helper-module-transforms": "^7.20.11",
19241 "@babel/helpers": "^7.20.7",
19242 "@babel/parser": "^7.20.7",
19243 "@babel/template": "^7.20.7",
19244 "@babel/traverse": "^7.20.12",
19245 "@babel/types": "^7.20.7",
19246 "convert-source-map": "^1.7.0",
19247 "debug": "^4.1.0",
19248 "gensync": "^1.0.0-beta.2",
19249 "json5": "^2.2.2",
19250 "semver": "^6.3.0"
19251 },
19252 "dependencies": {
19253 "semver": {
19254 "version": "6.3.1",
19255 "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
19256 "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="
19257 }
19258 }
19259 },
19260 "@babel/eslint-parser": {
19261 "version": "7.24.8",
19262 "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.24.8.tgz",
19263 "integrity": "sha512-nYAikI4XTGokU2QX7Jx+v4rxZKhKivaQaREZjuW3mrJrbdWJ5yUfohnoUULge+zEEaKjPYNxhoRgUKktjXtbwA==",
19264 "requires": {
19265 "@nicolo-ribaudo/eslint-scope-5-internals": "5.1.1-v1",
19266 "eslint-visitor-keys": "^2.1.0",
19267 "semver": "^6.3.1"
19268 },
19269 "dependencies": {
19270 "eslint-visitor-keys": {
19271 "version": "2.1.0",
19272 "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz",
19273 "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw=="
19274 },
19275 "semver": {
19276 "version": "6.3.1",
19277 "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
19278 "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="
19279 }
19280 }
19281 },
19282 "@babel/generator": {
19283 "version": "7.24.8",
19284 "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.8.tgz",
19285 "integrity": "sha512-47DG+6F5SzOi0uEvK4wMShmn5yY0mVjVJoWTphdY2B4Rx9wHgjK7Yhtr0ru6nE+sn0v38mzrWOlah0p/YlHHOQ==",
19286 "requires": {
19287 "@babel/types": "^7.24.8",
19288 "@jridgewell/gen-mapping": "^0.3.5",
19289 "@jridgewell/trace-mapping": "^0.3.25",
19290 "jsesc": "^2.5.1"
19291 },
19292 "dependencies": {
19293 "@jridgewell/gen-mapping": {
19294 "version": "0.3.5",
19295 "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz",
19296 "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==",
19297 "requires": {
19298 "@jridgewell/set-array": "^1.2.1",
19299 "@jridgewell/sourcemap-codec": "^1.4.10",
19300 "@jridgewell/trace-mapping": "^0.3.24"
19301 }
19302 }
19303 }
19304 },
19305 "@babel/helper-annotate-as-pure": {
19306 "version": "7.24.7",
19307 "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.24.7.tgz",
19308 "integrity": "sha512-BaDeOonYvhdKw+JoMVkAixAAJzG2jVPIwWoKBPdYuY9b452e2rPuI9QPYh3KpofZ3pW2akOmwZLOiOsHMiqRAg==",
19309 "requires": {
19310 "@babel/types": "^7.24.7"
19311 }
19312 },
19313 "@babel/helper-builder-binary-assignment-operator-visitor": {
19314 "version": "7.24.7",
19315 "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.24.7.tgz",
19316 "integrity": "sha512-xZeCVVdwb4MsDBkkyZ64tReWYrLRHlMN72vP7Bdm3OUOuyFZExhsHUUnuWnm2/XOlAJzR0LfPpB56WXZn0X/lA==",
19317 "requires": {
19318 "@babel/traverse": "^7.24.7",
19319 "@babel/types": "^7.24.7"
19320 }
19321 },
19322 "@babel/helper-compilation-targets": {
19323 "version": "7.24.8",
19324 "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.24.8.tgz",
19325 "integrity": "sha512-oU+UoqCHdp+nWVDkpldqIQL/i/bvAv53tRqLG/s+cOXxe66zOYLU7ar/Xs3LdmBihrUMEUhwu6dMZwbNOYDwvw==",
19326 "requires": {
19327 "@babel/compat-data": "^7.24.8",
19328 "@babel/helper-validator-option": "^7.24.8",
19329 "browserslist": "^4.23.1",
19330 "lru-cache": "^5.1.1",
19331 "semver": "^6.3.1"
19332 },
19333 "dependencies": {
19334 "semver": {
19335 "version": "6.3.1",
19336 "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
19337 "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="
19338 }
19339 }
19340 },
19341 "@babel/helper-create-class-features-plugin": {
19342 "version": "7.24.8",
19343 "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.24.8.tgz",
19344 "integrity": "sha512-4f6Oqnmyp2PP3olgUMmOwC3akxSm5aBYraQ6YDdKy7NcAMkDECHWG0DEnV6M2UAkERgIBhYt8S27rURPg7SxWA==",
19345 "requires": {
19346 "@babel/helper-annotate-as-pure": "^7.24.7",
19347 "@babel/helper-environment-visitor": "^7.24.7",
19348 "@babel/helper-function-name": "^7.24.7",
19349 "@babel/helper-member-expression-to-functions": "^7.24.8",
19350 "@babel/helper-optimise-call-expression": "^7.24.7",
19351 "@babel/helper-replace-supers": "^7.24.7",
19352 "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7",
19353 "@babel/helper-split-export-declaration": "^7.24.7",
19354 "semver": "^6.3.1"
19355 },
19356 "dependencies": {
19357 "semver": {
19358 "version": "6.3.1",
19359 "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
19360 "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="
19361 }
19362 }
19363 },
19364 "@babel/helper-create-regexp-features-plugin": {
19365 "version": "7.24.7",
19366 "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.24.7.tgz",
19367 "integrity": "sha512-03TCmXy2FtXJEZfbXDTSqq1fRJArk7lX9DOFC/47VthYcxyIOx+eXQmdo6DOQvrbpIix+KfXwvuXdFDZHxt+rA==",
19368 "requires": {
19369 "@babel/helper-annotate-as-pure": "^7.24.7",
19370 "regexpu-core": "^5.3.1",
19371 "semver": "^6.3.1"
19372 },
19373 "dependencies": {
19374 "semver": {
19375 "version": "6.3.1",
19376 "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
19377 "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="
19378 }
19379 }
19380 },
19381 "@babel/helper-define-polyfill-provider": {
19382 "version": "0.6.2",
19383 "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.2.tgz",
19384 "integrity": "sha512-LV76g+C502biUK6AyZ3LK10vDpDyCzZnhZFXkH1L75zHPj68+qc8Zfpx2th+gzwA2MzyK+1g/3EPl62yFnVttQ==",
19385 "requires": {
19386 "@babel/helper-compilation-targets": "^7.22.6",
19387 "@babel/helper-plugin-utils": "^7.22.5",
19388 "debug": "^4.1.1",
19389 "lodash.debounce": "^4.0.8",
19390 "resolve": "^1.14.2"
19391 }
19392 },
19393 "@babel/helper-environment-visitor": {
19394 "version": "7.24.7",
19395 "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.24.7.tgz",
19396 "integrity": "sha512-DoiN84+4Gnd0ncbBOM9AZENV4a5ZiL39HYMyZJGZ/AZEykHYdJw0wW3kdcsh9/Kn+BRXHLkkklZ51ecPKmI1CQ==",
19397 "requires": {
19398 "@babel/types": "^7.24.7"
19399 }
19400 },
19401 "@babel/helper-function-name": {
19402 "version": "7.24.7",
19403 "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.24.7.tgz",
19404 "integrity": "sha512-FyoJTsj/PEUWu1/TYRiXTIHc8lbw+TDYkZuoE43opPS5TrI7MyONBE1oNvfguEXAD9yhQRrVBnXdXzSLQl9XnA==",
19405 "requires": {
19406 "@babel/template": "^7.24.7",
19407 "@babel/types": "^7.24.7"
19408 }
19409 },
19410 "@babel/helper-hoist-variables": {
19411 "version": "7.24.7",
19412 "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.24.7.tgz",
19413 "integrity": "sha512-MJJwhkoGy5c4ehfoRyrJ/owKeMl19U54h27YYftT0o2teQ3FJ3nQUf/I3LlJsX4l3qlw7WRXUmiyajvHXoTubQ==",
19414 "requires": {
19415 "@babel/types": "^7.24.7"
19416 }
19417 },
19418 "@babel/helper-member-expression-to-functions": {
19419 "version": "7.24.8",
19420 "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.24.8.tgz",
19421 "integrity": "sha512-LABppdt+Lp/RlBxqrh4qgf1oEH/WxdzQNDJIu5gC/W1GyvPVrOBiItmmM8wan2fm4oYqFuFfkXmlGpLQhPY8CA==",
19422 "requires": {
19423 "@babel/traverse": "^7.24.8",
19424 "@babel/types": "^7.24.8"
19425 }
19426 },
19427 "@babel/helper-module-imports": {
19428 "version": "7.24.7",
19429 "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.7.tgz",
19430 "integrity": "sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==",
19431 "requires": {
19432 "@babel/traverse": "^7.24.7",
19433 "@babel/types": "^7.24.7"
19434 }
19435 },
19436 "@babel/helper-module-transforms": {
19437 "version": "7.24.8",
19438 "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.24.8.tgz",
19439 "integrity": "sha512-m4vWKVqvkVAWLXfHCCfff2luJj86U+J0/x+0N3ArG/tP0Fq7zky2dYwMbtPmkc/oulkkbjdL3uWzuoBwQ8R00Q==",
19440 "requires": {
19441 "@babel/helper-environment-visitor": "^7.24.7",
19442 "@babel/helper-module-imports": "^7.24.7",
19443 "@babel/helper-simple-access": "^7.24.7",
19444 "@babel/helper-split-export-declaration": "^7.24.7",
19445 "@babel/helper-validator-identifier": "^7.24.7"
19446 }
19447 },
19448 "@babel/helper-optimise-call-expression": {
19449 "version": "7.24.7",
19450 "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.24.7.tgz",
19451 "integrity": "sha512-jKiTsW2xmWwxT1ixIdfXUZp+P5yURx2suzLZr5Hi64rURpDYdMW0pv+Uf17EYk2Rd428Lx4tLsnjGJzYKDM/6A==",
19452 "requires": {
19453 "@babel/types": "^7.24.7"
19454 }
19455 },
19456 "@babel/helper-plugin-utils": {
19457 "version": "7.24.8",
19458 "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.8.tgz",
19459 "integrity": "sha512-FFWx5142D8h2Mgr/iPVGH5G7w6jDn4jUSpZTyDnQO0Yn7Ks2Kuz6Pci8H6MPCoUJegd/UZQ3tAvfLCxQSnWWwg=="
19460 },
19461 "@babel/helper-remap-async-to-generator": {
19462 "version": "7.24.7",
19463 "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.24.7.tgz",
19464 "integrity": "sha512-9pKLcTlZ92hNZMQfGCHImUpDOlAgkkpqalWEeftW5FBya75k8Li2ilerxkM/uBEj01iBZXcCIB/bwvDYgWyibA==",
19465 "requires": {
19466 "@babel/helper-annotate-as-pure": "^7.24.7",
19467 "@babel/helper-environment-visitor": "^7.24.7",
19468 "@babel/helper-wrap-function": "^7.24.7"
19469 }
19470 },
19471 "@babel/helper-replace-supers": {
19472 "version": "7.24.7",
19473 "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.24.7.tgz",
19474 "integrity": "sha512-qTAxxBM81VEyoAY0TtLrx1oAEJc09ZK67Q9ljQToqCnA+55eNwCORaxlKyu+rNfX86o8OXRUSNUnrtsAZXM9sg==",
19475 "requires": {
19476 "@babel/helper-environment-visitor": "^7.24.7",
19477 "@babel/helper-member-expression-to-functions": "^7.24.7",
19478 "@babel/helper-optimise-call-expression": "^7.24.7"
19479 }
19480 },
19481 "@babel/helper-simple-access": {
19482 "version": "7.24.7",
19483 "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.24.7.tgz",
19484 "integrity": "sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==",
19485 "requires": {
19486 "@babel/traverse": "^7.24.7",
19487 "@babel/types": "^7.24.7"
19488 }
19489 },
19490 "@babel/helper-skip-transparent-expression-wrappers": {
19491 "version": "7.24.7",
19492 "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.24.7.tgz",
19493 "integrity": "sha512-IO+DLT3LQUElMbpzlatRASEyQtfhSE0+m465v++3jyyXeBTBUjtVZg28/gHeV5mrTJqvEKhKroBGAvhW+qPHiQ==",
19494 "requires": {
19495 "@babel/traverse": "^7.24.7",
19496 "@babel/types": "^7.24.7"
19497 }
19498 },
19499 "@babel/helper-split-export-declaration": {
19500 "version": "7.24.7",
19501 "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.7.tgz",
19502 "integrity": "sha512-oy5V7pD+UvfkEATUKvIjvIAH/xCzfsFVw7ygW2SI6NClZzquT+mwdTfgfdbUiceh6iQO0CHtCPsyze/MZ2YbAA==",
19503 "requires": {
19504 "@babel/types": "^7.24.7"
19505 }
19506 },
19507 "@babel/helper-string-parser": {
19508 "version": "7.24.8",
19509 "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.8.tgz",
19510 "integrity": "sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ=="
19511 },
19512 "@babel/helper-validator-identifier": {
19513 "version": "7.24.7",
19514 "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz",
19515 "integrity": "sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w=="
19516 },
19517 "@babel/helper-validator-option": {
19518 "version": "7.24.8",
19519 "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.24.8.tgz",
19520 "integrity": "sha512-xb8t9tD1MHLungh/AIoWYN+gVHaB9kwlu8gffXGSt3FFEIT7RjS+xWbc2vUD1UTZdIpKj/ab3rdqJ7ufngyi2Q=="
19521 },
19522 "@babel/helper-wrap-function": {
19523 "version": "7.24.7",
19524 "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.24.7.tgz",
19525 "integrity": "sha512-N9JIYk3TD+1vq/wn77YnJOqMtfWhNewNE+DJV4puD2X7Ew9J4JvrzrFDfTfyv5EgEXVy9/Wt8QiOErzEmv5Ifw==",
19526 "requires": {
19527 "@babel/helper-function-name": "^7.24.7",
19528 "@babel/template": "^7.24.7",
19529 "@babel/traverse": "^7.24.7",
19530 "@babel/types": "^7.24.7"
19531 }
19532 },
19533 "@babel/helpers": {
19534 "version": "7.20.13",
19535 "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.20.13.tgz",
19536 "integrity": "sha512-nzJ0DWCL3gB5RCXbUO3KIMMsBY2Eqbx8mBpKGE/02PgyRQFcPQLbkQ1vyy596mZLaP+dAfD+R4ckASzNVmW3jg==",
19537 "requires": {
19538 "@babel/template": "^7.20.7",
19539 "@babel/traverse": "^7.20.13",
19540 "@babel/types": "^7.20.7"
19541 }
19542 },
19543 "@babel/highlight": {
19544 "version": "7.24.7",
19545 "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.7.tgz",
19546 "integrity": "sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==",
19547 "requires": {
19548 "@babel/helper-validator-identifier": "^7.24.7",
19549 "chalk": "^2.4.2",
19550 "js-tokens": "^4.0.0",
19551 "picocolors": "^1.0.0"
19552 }
19553 },
19554 "@babel/parser": {
19555 "version": "7.24.8",
19556 "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.8.tgz",
19557 "integrity": "sha512-WzfbgXOkGzZiXXCqk43kKwZjzwx4oulxZi3nq2TYL9mOjQv6kYwul9mz6ID36njuL7Xkp6nJEfok848Zj10j/w=="
19558 },
19559 "@babel/plugin-bugfix-firefox-class-in-computed-class-key": {
19560 "version": "7.24.7",
19561 "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.24.7.tgz",
19562 "integrity": "sha512-TiT1ss81W80eQsN+722OaeQMY/G4yTb4G9JrqeiDADs3N8lbPMGldWi9x8tyqCW5NLx1Jh2AvkE6r6QvEltMMQ==",
19563 "requires": {
19564 "@babel/helper-environment-visitor": "^7.24.7",
19565 "@babel/helper-plugin-utils": "^7.24.7"
19566 }
19567 },
19568 "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": {
19569 "version": "7.24.7",
19570 "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.24.7.tgz",
19571 "integrity": "sha512-unaQgZ/iRu/By6tsjMZzpeBZjChYfLYry6HrEXPoz3KmfF0sVBQ1l8zKMQ4xRGLWVsjuvB8nQfjNP/DcfEOCsg==",
19572 "requires": {
19573 "@babel/helper-plugin-utils": "^7.24.7"
19574 }
19575 },
19576 "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": {
19577 "version": "7.24.7",
19578 "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.24.7.tgz",
19579 "integrity": "sha512-+izXIbke1T33mY4MSNnrqhPXDz01WYhEf3yF5NbnUtkiNnm+XBZJl3kNfoK6NKmYlz/D07+l2GWVK/QfDkNCuQ==",
19580 "requires": {
19581 "@babel/helper-plugin-utils": "^7.24.7",
19582 "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7",
19583 "@babel/plugin-transform-optional-chaining": "^7.24.7"
19584 }
19585 },
19586 "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": {
19587 "version": "7.24.7",
19588 "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.24.7.tgz",
19589 "integrity": "sha512-utA4HuR6F4Vvcr+o4DnjL8fCOlgRFGbeeBEGNg3ZTrLFw6VWG5XmUrvcQ0FjIYMU2ST4XcR2Wsp7t9qOAPnxMg==",
19590 "requires": {
19591 "@babel/helper-environment-visitor": "^7.24.7",
19592 "@babel/helper-plugin-utils": "^7.24.7"
19593 }
19594 },
19595 "@babel/plugin-proposal-class-properties": {
19596 "version": "7.18.6",
19597 "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz",
19598 "integrity": "sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==",
19599 "requires": {
19600 "@babel/helper-create-class-features-plugin": "^7.18.6",
19601 "@babel/helper-plugin-utils": "^7.18.6"
19602 }
19603 },
19604 "@babel/plugin-proposal-decorators": {
19605 "version": "7.24.7",
19606 "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.24.7.tgz",
19607 "integrity": "sha512-RL9GR0pUG5Kc8BUWLNDm2T5OpYwSX15r98I0IkgmRQTXuELq/OynH8xtMTMvTJFjXbMWFVTKtYkTaYQsuAwQlQ==",
19608 "requires": {
19609 "@babel/helper-create-class-features-plugin": "^7.24.7",
19610 "@babel/helper-plugin-utils": "^7.24.7",
19611 "@babel/plugin-syntax-decorators": "^7.24.7"
19612 }
19613 },
19614 "@babel/plugin-proposal-nullish-coalescing-operator": {
19615 "version": "7.18.6",
19616 "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz",
19617 "integrity": "sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==",
19618 "requires": {
19619 "@babel/helper-plugin-utils": "^7.18.6",
19620 "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3"
19621 }
19622 },
19623 "@babel/plugin-proposal-numeric-separator": {
19624 "version": "7.18.6",
19625 "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz",
19626 "integrity": "sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==",
19627 "requires": {
19628 "@babel/helper-plugin-utils": "^7.18.6",
19629 "@babel/plugin-syntax-numeric-separator": "^7.10.4"
19630 }
19631 },
19632 "@babel/plugin-proposal-optional-chaining": {
19633 "version": "7.21.0",
19634 "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.21.0.tgz",
19635 "integrity": "sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA==",
19636 "requires": {
19637 "@babel/helper-plugin-utils": "^7.20.2",
19638 "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0",
19639 "@babel/plugin-syntax-optional-chaining": "^7.8.3"
19640 }
19641 },
19642 "@babel/plugin-proposal-private-methods": {
19643 "version": "7.18.6",
19644 "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz",
19645 "integrity": "sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==",
19646 "requires": {
19647 "@babel/helper-create-class-features-plugin": "^7.18.6",
19648 "@babel/helper-plugin-utils": "^7.18.6"
19649 }
19650 },
19651 "@babel/plugin-proposal-private-property-in-object": {
19652 "version": "7.21.0-placeholder-for-preset-env.2",
19653 "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz",
19654 "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==",
19655 "requires": {}
19656 },
19657 "@babel/plugin-syntax-async-generators": {
19658 "version": "7.8.4",
19659 "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz",
19660 "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==",
19661 "requires": {
19662 "@babel/helper-plugin-utils": "^7.8.0"
19663 }
19664 },
19665 "@babel/plugin-syntax-bigint": {
19666 "version": "7.8.3",
19667 "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz",
19668 "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==",
19669 "requires": {
19670 "@babel/helper-plugin-utils": "^7.8.0"
19671 }
19672 },
19673 "@babel/plugin-syntax-class-properties": {
19674 "version": "7.12.13",
19675 "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz",
19676 "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==",
19677 "requires": {
19678 "@babel/helper-plugin-utils": "^7.12.13"
19679 }
19680 },
19681 "@babel/plugin-syntax-class-static-block": {
19682 "version": "7.14.5",
19683 "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz",
19684 "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==",
19685 "requires": {
19686 "@babel/helper-plugin-utils": "^7.14.5"
19687 }
19688 },
19689 "@babel/plugin-syntax-decorators": {
19690 "version": "7.24.7",
19691 "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.24.7.tgz",
19692 "integrity": "sha512-Ui4uLJJrRV1lb38zg1yYTmRKmiZLiftDEvZN2iq3kd9kUFU+PttmzTbAFC2ucRk/XJmtek6G23gPsuZbhrT8fQ==",
19693 "requires": {
19694 "@babel/helper-plugin-utils": "^7.24.7"
19695 }
19696 },
19697 "@babel/plugin-syntax-dynamic-import": {
19698 "version": "7.8.3",
19699 "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz",
19700 "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==",
19701 "requires": {
19702 "@babel/helper-plugin-utils": "^7.8.0"
19703 }
19704 },
19705 "@babel/plugin-syntax-export-namespace-from": {
19706 "version": "7.8.3",
19707 "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz",
19708 "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==",
19709 "requires": {
19710 "@babel/helper-plugin-utils": "^7.8.3"
19711 }
19712 },
19713 "@babel/plugin-syntax-flow": {
19714 "version": "7.24.7",
19715 "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.24.7.tgz",
19716 "integrity": "sha512-9G8GYT/dxn/D1IIKOUBmGX0mnmj46mGH9NnZyJLwtCpgh5f7D2VbuKodb+2s9m1Yavh1s7ASQN8lf0eqrb1LTw==",
19717 "requires": {
19718 "@babel/helper-plugin-utils": "^7.24.7"
19719 }
19720 },
19721 "@babel/plugin-syntax-import-assertions": {
19722 "version": "7.24.7",
19723 "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.24.7.tgz",
19724 "integrity": "sha512-Ec3NRUMoi8gskrkBe3fNmEQfxDvY8bgfQpz6jlk/41kX9eUjvpyqWU7PBP/pLAvMaSQjbMNKJmvX57jP+M6bPg==",
19725 "requires": {
19726 "@babel/helper-plugin-utils": "^7.24.7"
19727 }
19728 },
19729 "@babel/plugin-syntax-import-attributes": {
19730 "version": "7.24.7",
19731 "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.24.7.tgz",
19732 "integrity": "sha512-hbX+lKKeUMGihnK8nvKqmXBInriT3GVjzXKFriV3YC6APGxMbP8RZNFwy91+hocLXq90Mta+HshoB31802bb8A==",
19733 "requires": {
19734 "@babel/helper-plugin-utils": "^7.24.7"
19735 }
19736 },
19737 "@babel/plugin-syntax-import-meta": {
19738 "version": "7.10.4",
19739 "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz",
19740 "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==",
19741 "requires": {
19742 "@babel/helper-plugin-utils": "^7.10.4"
19743 }
19744 },
19745 "@babel/plugin-syntax-json-strings": {
19746 "version": "7.8.3",
19747 "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz",
19748 "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==",
19749 "requires": {
19750 "@babel/helper-plugin-utils": "^7.8.0"
19751 }
19752 },
19753 "@babel/plugin-syntax-jsx": {
19754 "version": "7.24.7",
19755 "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.24.7.tgz",
19756 "integrity": "sha512-6ddciUPe/mpMnOKv/U+RSd2vvVy+Yw/JfBB0ZHYjEZt9NLHmCUylNYlsbqCCS1Bffjlb0fCwC9Vqz+sBz6PsiQ==",
19757 "requires": {
19758 "@babel/helper-plugin-utils": "^7.24.7"
19759 }
19760 },
19761 "@babel/plugin-syntax-logical-assignment-operators": {
19762 "version": "7.10.4",
19763 "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz",
19764 "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==",
19765 "requires": {
19766 "@babel/helper-plugin-utils": "^7.10.4"
19767 }
19768 },
19769 "@babel/plugin-syntax-nullish-coalescing-operator": {
19770 "version": "7.8.3",
19771 "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz",
19772 "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==",
19773 "requires": {
19774 "@babel/helper-plugin-utils": "^7.8.0"
19775 }
19776 },
19777 "@babel/plugin-syntax-numeric-separator": {
19778 "version": "7.10.4",
19779 "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz",
19780 "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==",
19781 "requires": {
19782 "@babel/helper-plugin-utils": "^7.10.4"
19783 }
19784 },
19785 "@babel/plugin-syntax-object-rest-spread": {
19786 "version": "7.8.3",
19787 "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz",
19788 "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==",
19789 "requires": {
19790 "@babel/helper-plugin-utils": "^7.8.0"
19791 }
19792 },
19793 "@babel/plugin-syntax-optional-catch-binding": {
19794 "version": "7.8.3",
19795 "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz",
19796 "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==",
19797 "requires": {
19798 "@babel/helper-plugin-utils": "^7.8.0"
19799 }
19800 },
19801 "@babel/plugin-syntax-optional-chaining": {
19802 "version": "7.8.3",
19803 "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz",
19804 "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==",
19805 "requires": {
19806 "@babel/helper-plugin-utils": "^7.8.0"
19807 }
19808 },
19809 "@babel/plugin-syntax-private-property-in-object": {
19810 "version": "7.14.5",
19811 "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz",
19812 "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==",
19813 "requires": {
19814 "@babel/helper-plugin-utils": "^7.14.5"
19815 }
19816 },
19817 "@babel/plugin-syntax-top-level-await": {
19818 "version": "7.14.5",
19819 "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz",
19820 "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==",
19821 "requires": {
19822 "@babel/helper-plugin-utils": "^7.14.5"
19823 }
19824 },
19825 "@babel/plugin-syntax-typescript": {
19826 "version": "7.24.7",
19827 "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.24.7.tgz",
19828 "integrity": "sha512-c/+fVeJBB0FeKsFvwytYiUD+LBvhHjGSI0g446PRGdSVGZLRNArBUno2PETbAly3tpiNAQR5XaZ+JslxkotsbA==",
19829 "requires": {
19830 "@babel/helper-plugin-utils": "^7.24.7"
19831 }
19832 },
19833 "@babel/plugin-syntax-unicode-sets-regex": {
19834 "version": "7.18.6",
19835 "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz",
19836 "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==",
19837 "requires": {
19838 "@babel/helper-create-regexp-features-plugin": "^7.18.6",
19839 "@babel/helper-plugin-utils": "^7.18.6"
19840 }
19841 },
19842 "@babel/plugin-transform-arrow-functions": {
19843 "version": "7.24.7",
19844 "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.24.7.tgz",
19845 "integrity": "sha512-Dt9LQs6iEY++gXUwY03DNFat5C2NbO48jj+j/bSAz6b3HgPs39qcPiYt77fDObIcFwj3/C2ICX9YMwGflUoSHQ==",
19846 "requires": {
19847 "@babel/helper-plugin-utils": "^7.24.7"
19848 }
19849 },
19850 "@babel/plugin-transform-async-generator-functions": {
19851 "version": "7.24.7",
19852 "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.24.7.tgz",
19853 "integrity": "sha512-o+iF77e3u7ZS4AoAuJvapz9Fm001PuD2V3Lp6OSE4FYQke+cSewYtnek+THqGRWyQloRCyvWL1OkyfNEl9vr/g==",
19854 "requires": {
19855 "@babel/helper-environment-visitor": "^7.24.7",
19856 "@babel/helper-plugin-utils": "^7.24.7",
19857 "@babel/helper-remap-async-to-generator": "^7.24.7",
19858 "@babel/plugin-syntax-async-generators": "^7.8.4"
19859 }
19860 },
19861 "@babel/plugin-transform-async-to-generator": {
19862 "version": "7.24.7",
19863 "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.24.7.tgz",
19864 "integrity": "sha512-SQY01PcJfmQ+4Ash7NE+rpbLFbmqA2GPIgqzxfFTL4t1FKRq4zTms/7htKpoCUI9OcFYgzqfmCdH53s6/jn5fA==",
19865 "requires": {
19866 "@babel/helper-module-imports": "^7.24.7",
19867 "@babel/helper-plugin-utils": "^7.24.7",
19868 "@babel/helper-remap-async-to-generator": "^7.24.7"
19869 }
19870 },
19871 "@babel/plugin-transform-block-scoped-functions": {
19872 "version": "7.24.7",
19873 "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.24.7.tgz",
19874 "integrity": "sha512-yO7RAz6EsVQDaBH18IDJcMB1HnrUn2FJ/Jslc/WtPPWcjhpUJXU/rjbwmluzp7v/ZzWcEhTMXELnnsz8djWDwQ==",
19875 "requires": {
19876 "@babel/helper-plugin-utils": "^7.24.7"
19877 }
19878 },
19879 "@babel/plugin-transform-block-scoping": {
19880 "version": "7.24.7",
19881 "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.24.7.tgz",
19882 "integrity": "sha512-Nd5CvgMbWc+oWzBsuaMcbwjJWAcp5qzrbg69SZdHSP7AMY0AbWFqFO0WTFCA1jxhMCwodRwvRec8k0QUbZk7RQ==",
19883 "requires": {
19884 "@babel/helper-plugin-utils": "^7.24.7"
19885 }
19886 },
19887 "@babel/plugin-transform-class-properties": {
19888 "version": "7.24.7",
19889 "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.24.7.tgz",
19890 "integrity": "sha512-vKbfawVYayKcSeSR5YYzzyXvsDFWU2mD8U5TFeXtbCPLFUqe7GyCgvO6XDHzje862ODrOwy6WCPmKeWHbCFJ4w==",
19891 "requires": {
19892 "@babel/helper-create-class-features-plugin": "^7.24.7",
19893 "@babel/helper-plugin-utils": "^7.24.7"
19894 }
19895 },
19896 "@babel/plugin-transform-class-static-block": {
19897 "version": "7.24.7",
19898 "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.24.7.tgz",
19899 "integrity": "sha512-HMXK3WbBPpZQufbMG4B46A90PkuuhN9vBCb5T8+VAHqvAqvcLi+2cKoukcpmUYkszLhScU3l1iudhrks3DggRQ==",
19900 "requires": {
19901 "@babel/helper-create-class-features-plugin": "^7.24.7",
19902 "@babel/helper-plugin-utils": "^7.24.7",
19903 "@babel/plugin-syntax-class-static-block": "^7.14.5"
19904 }
19905 },
19906 "@babel/plugin-transform-classes": {
19907 "version": "7.24.8",
19908 "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.24.8.tgz",
19909 "integrity": "sha512-VXy91c47uujj758ud9wx+OMgheXm4qJfyhj1P18YvlrQkNOSrwsteHk+EFS3OMGfhMhpZa0A+81eE7G4QC+3CA==",
19910 "requires": {
19911 "@babel/helper-annotate-as-pure": "^7.24.7",
19912 "@babel/helper-compilation-targets": "^7.24.8",
19913 "@babel/helper-environment-visitor": "^7.24.7",
19914 "@babel/helper-function-name": "^7.24.7",
19915 "@babel/helper-plugin-utils": "^7.24.8",
19916 "@babel/helper-replace-supers": "^7.24.7",
19917 "@babel/helper-split-export-declaration": "^7.24.7",
19918 "globals": "^11.1.0"
19919 }
19920 },
19921 "@babel/plugin-transform-computed-properties": {
19922 "version": "7.24.7",
19923 "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.24.7.tgz",
19924 "integrity": "sha512-25cS7v+707Gu6Ds2oY6tCkUwsJ9YIDbggd9+cu9jzzDgiNq7hR/8dkzxWfKWnTic26vsI3EsCXNd4iEB6e8esQ==",
19925 "requires": {
19926 "@babel/helper-plugin-utils": "^7.24.7",
19927 "@babel/template": "^7.24.7"
19928 }
19929 },
19930 "@babel/plugin-transform-destructuring": {
19931 "version": "7.24.8",
19932 "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.24.8.tgz",
19933 "integrity": "sha512-36e87mfY8TnRxc7yc6M9g9gOB7rKgSahqkIKwLpz4Ppk2+zC2Cy1is0uwtuSG6AE4zlTOUa+7JGz9jCJGLqQFQ==",
19934 "requires": {
19935 "@babel/helper-plugin-utils": "^7.24.8"
19936 }
19937 },
19938 "@babel/plugin-transform-dotall-regex": {
19939 "version": "7.24.7",
19940 "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.24.7.tgz",
19941 "integrity": "sha512-ZOA3W+1RRTSWvyqcMJDLqbchh7U4NRGqwRfFSVbOLS/ePIP4vHB5e8T8eXcuqyN1QkgKyj5wuW0lcS85v4CrSw==",
19942 "requires": {
19943 "@babel/helper-create-regexp-features-plugin": "^7.24.7",
19944 "@babel/helper-plugin-utils": "^7.24.7"
19945 }
19946 },
19947 "@babel/plugin-transform-duplicate-keys": {
19948 "version": "7.24.7",
19949 "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.24.7.tgz",
19950 "integrity": "sha512-JdYfXyCRihAe46jUIliuL2/s0x0wObgwwiGxw/UbgJBr20gQBThrokO4nYKgWkD7uBaqM7+9x5TU7NkExZJyzw==",
19951 "requires": {
19952 "@babel/helper-plugin-utils": "^7.24.7"
19953 }
19954 },
19955 "@babel/plugin-transform-dynamic-import": {
19956 "version": "7.24.7",
19957 "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.24.7.tgz",
19958 "integrity": "sha512-sc3X26PhZQDb3JhORmakcbvkeInvxz+A8oda99lj7J60QRuPZvNAk9wQlTBS1ZynelDrDmTU4pw1tyc5d5ZMUg==",
19959 "requires": {
19960 "@babel/helper-plugin-utils": "^7.24.7",
19961 "@babel/plugin-syntax-dynamic-import": "^7.8.3"
19962 }
19963 },
19964 "@babel/plugin-transform-exponentiation-operator": {
19965 "version": "7.24.7",
19966 "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.24.7.tgz",
19967 "integrity": "sha512-Rqe/vSc9OYgDajNIK35u7ot+KeCoetqQYFXM4Epf7M7ez3lWlOjrDjrwMei6caCVhfdw+mIKD4cgdGNy5JQotQ==",
19968 "requires": {
19969 "@babel/helper-builder-binary-assignment-operator-visitor": "^7.24.7",
19970 "@babel/helper-plugin-utils": "^7.24.7"
19971 }
19972 },
19973 "@babel/plugin-transform-export-namespace-from": {
19974 "version": "7.24.7",
19975 "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.24.7.tgz",
19976 "integrity": "sha512-v0K9uNYsPL3oXZ/7F9NNIbAj2jv1whUEtyA6aujhekLs56R++JDQuzRcP2/z4WX5Vg/c5lE9uWZA0/iUoFhLTA==",
19977 "requires": {
19978 "@babel/helper-plugin-utils": "^7.24.7",
19979 "@babel/plugin-syntax-export-namespace-from": "^7.8.3"
19980 }
19981 },
19982 "@babel/plugin-transform-flow-strip-types": {
19983 "version": "7.24.7",
19984 "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.24.7.tgz",
19985 "integrity": "sha512-cjRKJ7FobOH2eakx7Ja+KpJRj8+y+/SiB3ooYm/n2UJfxu0oEaOoxOinitkJcPqv9KxS0kxTGPUaR7L2XcXDXA==",
19986 "requires": {
19987 "@babel/helper-plugin-utils": "^7.24.7",
19988 "@babel/plugin-syntax-flow": "^7.24.7"
19989 }
19990 },
19991 "@babel/plugin-transform-for-of": {
19992 "version": "7.24.7",
19993 "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.24.7.tgz",
19994 "integrity": "sha512-wo9ogrDG1ITTTBsy46oGiN1dS9A7MROBTcYsfS8DtsImMkHk9JXJ3EWQM6X2SUw4x80uGPlwj0o00Uoc6nEE3g==",
19995 "requires": {
19996 "@babel/helper-plugin-utils": "^7.24.7",
19997 "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7"
19998 }
19999 },
20000 "@babel/plugin-transform-function-name": {
20001 "version": "7.24.7",
20002 "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.24.7.tgz",
20003 "integrity": "sha512-U9FcnA821YoILngSmYkW6FjyQe2TyZD5pHt4EVIhmcTkrJw/3KqcrRSxuOo5tFZJi7TE19iDyI1u+weTI7bn2w==",
20004 "requires": {
20005 "@babel/helper-compilation-targets": "^7.24.7",
20006 "@babel/helper-function-name": "^7.24.7",
20007 "@babel/helper-plugin-utils": "^7.24.7"
20008 }
20009 },
20010 "@babel/plugin-transform-json-strings": {
20011 "version": "7.24.7",
20012 "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.24.7.tgz",
20013 "integrity": "sha512-2yFnBGDvRuxAaE/f0vfBKvtnvvqU8tGpMHqMNpTN2oWMKIR3NqFkjaAgGwawhqK/pIN2T3XdjGPdaG0vDhOBGw==",
20014 "requires": {
20015 "@babel/helper-plugin-utils": "^7.24.7",
20016 "@babel/plugin-syntax-json-strings": "^7.8.3"
20017 }
20018 },
20019 "@babel/plugin-transform-literals": {
20020 "version": "7.24.7",
20021 "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.24.7.tgz",
20022 "integrity": "sha512-vcwCbb4HDH+hWi8Pqenwnjy+UiklO4Kt1vfspcQYFhJdpthSnW8XvWGyDZWKNVrVbVViI/S7K9PDJZiUmP2fYQ==",
20023 "requires": {
20024 "@babel/helper-plugin-utils": "^7.24.7"
20025 }
20026 },
20027 "@babel/plugin-transform-logical-assignment-operators": {
20028 "version": "7.24.7",
20029 "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.24.7.tgz",
20030 "integrity": "sha512-4D2tpwlQ1odXmTEIFWy9ELJcZHqrStlzK/dAOWYyxX3zT0iXQB6banjgeOJQXzEc4S0E0a5A+hahxPaEFYftsw==",
20031 "requires": {
20032 "@babel/helper-plugin-utils": "^7.24.7",
20033 "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4"
20034 }
20035 },
20036 "@babel/plugin-transform-member-expression-literals": {
20037 "version": "7.24.7",
20038 "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.24.7.tgz",
20039 "integrity": "sha512-T/hRC1uqrzXMKLQ6UCwMT85S3EvqaBXDGf0FaMf4446Qx9vKwlghvee0+uuZcDUCZU5RuNi4781UQ7R308zzBw==",
20040 "requires": {
20041 "@babel/helper-plugin-utils": "^7.24.7"
20042 }
20043 },
20044 "@babel/plugin-transform-modules-amd": {
20045 "version": "7.24.7",
20046 "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.24.7.tgz",
20047 "integrity": "sha512-9+pB1qxV3vs/8Hdmz/CulFB8w2tuu6EB94JZFsjdqxQokwGa9Unap7Bo2gGBGIvPmDIVvQrom7r5m/TCDMURhg==",
20048 "requires": {
20049 "@babel/helper-module-transforms": "^7.24.7",
20050 "@babel/helper-plugin-utils": "^7.24.7"
20051 }
20052 },
20053 "@babel/plugin-transform-modules-commonjs": {
20054 "version": "7.24.8",
20055 "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.24.8.tgz",
20056 "integrity": "sha512-WHsk9H8XxRs3JXKWFiqtQebdh9b/pTk4EgueygFzYlTKAg0Ud985mSevdNjdXdFBATSKVJGQXP1tv6aGbssLKA==",
20057 "requires": {
20058 "@babel/helper-module-transforms": "^7.24.8",
20059 "@babel/helper-plugin-utils": "^7.24.8",
20060 "@babel/helper-simple-access": "^7.24.7"
20061 }
20062 },
20063 "@babel/plugin-transform-modules-systemjs": {
20064 "version": "7.24.7",
20065 "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.24.7.tgz",
20066 "integrity": "sha512-GYQE0tW7YoaN13qFh3O1NCY4MPkUiAH3fiF7UcV/I3ajmDKEdG3l+UOcbAm4zUE3gnvUU+Eni7XrVKo9eO9auw==",
20067 "requires": {
20068 "@babel/helper-hoist-variables": "^7.24.7",
20069 "@babel/helper-module-transforms": "^7.24.7",
20070 "@babel/helper-plugin-utils": "^7.24.7",
20071 "@babel/helper-validator-identifier": "^7.24.7"
20072 }
20073 },
20074 "@babel/plugin-transform-modules-umd": {
20075 "version": "7.24.7",
20076 "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.24.7.tgz",
20077 "integrity": "sha512-3aytQvqJ/h9z4g8AsKPLvD4Zqi2qT+L3j7XoFFu1XBlZWEl2/1kWnhmAbxpLgPrHSY0M6UA02jyTiwUVtiKR6A==",
20078 "requires": {
20079 "@babel/helper-module-transforms": "^7.24.7",
20080 "@babel/helper-plugin-utils": "^7.24.7"
20081 }
20082 },
20083 "@babel/plugin-transform-named-capturing-groups-regex": {
20084 "version": "7.24.7",
20085 "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.24.7.tgz",
20086 "integrity": "sha512-/jr7h/EWeJtk1U/uz2jlsCioHkZk1JJZVcc8oQsJ1dUlaJD83f4/6Zeh2aHt9BIFokHIsSeDfhUmju0+1GPd6g==",
20087 "requires": {
20088 "@babel/helper-create-regexp-features-plugin": "^7.24.7",
20089 "@babel/helper-plugin-utils": "^7.24.7"
20090 }
20091 },
20092 "@babel/plugin-transform-new-target": {
20093 "version": "7.24.7",
20094 "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.24.7.tgz",
20095 "integrity": "sha512-RNKwfRIXg4Ls/8mMTza5oPF5RkOW8Wy/WgMAp1/F1yZ8mMbtwXW+HDoJiOsagWrAhI5f57Vncrmr9XeT4CVapA==",
20096 "requires": {
20097 "@babel/helper-plugin-utils": "^7.24.7"
20098 }
20099 },
20100 "@babel/plugin-transform-nullish-coalescing-operator": {
20101 "version": "7.24.7",
20102 "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.24.7.tgz",
20103 "integrity": "sha512-Ts7xQVk1OEocqzm8rHMXHlxvsfZ0cEF2yomUqpKENHWMF4zKk175Y4q8H5knJes6PgYad50uuRmt3UJuhBw8pQ==",
20104 "requires": {
20105 "@babel/helper-plugin-utils": "^7.24.7",
20106 "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3"
20107 }
20108 },
20109 "@babel/plugin-transform-numeric-separator": {
20110 "version": "7.24.7",
20111 "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.24.7.tgz",
20112 "integrity": "sha512-e6q1TiVUzvH9KRvicuxdBTUj4AdKSRwzIyFFnfnezpCfP2/7Qmbb8qbU2j7GODbl4JMkblitCQjKYUaX/qkkwA==",
20113 "requires": {
20114 "@babel/helper-plugin-utils": "^7.24.7",
20115 "@babel/plugin-syntax-numeric-separator": "^7.10.4"
20116 }
20117 },
20118 "@babel/plugin-transform-object-rest-spread": {
20119 "version": "7.24.7",
20120 "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.24.7.tgz",
20121 "integrity": "sha512-4QrHAr0aXQCEFni2q4DqKLD31n2DL+RxcwnNjDFkSG0eNQ/xCavnRkfCUjsyqGC2OviNJvZOF/mQqZBw7i2C5Q==",
20122 "requires": {
20123 "@babel/helper-compilation-targets": "^7.24.7",
20124 "@babel/helper-plugin-utils": "^7.24.7",
20125 "@babel/plugin-syntax-object-rest-spread": "^7.8.3",
20126 "@babel/plugin-transform-parameters": "^7.24.7"
20127 }
20128 },
20129 "@babel/plugin-transform-object-super": {
20130 "version": "7.24.7",
20131 "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.24.7.tgz",
20132 "integrity": "sha512-A/vVLwN6lBrMFmMDmPPz0jnE6ZGx7Jq7d6sT/Ev4H65RER6pZ+kczlf1DthF5N0qaPHBsI7UXiE8Zy66nmAovg==",
20133 "requires": {
20134 "@babel/helper-plugin-utils": "^7.24.7",
20135 "@babel/helper-replace-supers": "^7.24.7"
20136 }
20137 },
20138 "@babel/plugin-transform-optional-catch-binding": {
20139 "version": "7.24.7",
20140 "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.24.7.tgz",
20141 "integrity": "sha512-uLEndKqP5BfBbC/5jTwPxLh9kqPWWgzN/f8w6UwAIirAEqiIVJWWY312X72Eub09g5KF9+Zn7+hT7sDxmhRuKA==",
20142 "requires": {
20143 "@babel/helper-plugin-utils": "^7.24.7",
20144 "@babel/plugin-syntax-optional-catch-binding": "^7.8.3"
20145 }
20146 },
20147 "@babel/plugin-transform-optional-chaining": {
20148 "version": "7.24.8",
20149 "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.24.8.tgz",
20150 "integrity": "sha512-5cTOLSMs9eypEy8JUVvIKOu6NgvbJMnpG62VpIHrTmROdQ+L5mDAaI40g25k5vXti55JWNX5jCkq3HZxXBQANw==",
20151 "requires": {
20152 "@babel/helper-plugin-utils": "^7.24.8",
20153 "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7",
20154 "@babel/plugin-syntax-optional-chaining": "^7.8.3"
20155 }
20156 },
20157 "@babel/plugin-transform-parameters": {
20158 "version": "7.24.7",
20159 "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.24.7.tgz",
20160 "integrity": "sha512-yGWW5Rr+sQOhK0Ot8hjDJuxU3XLRQGflvT4lhlSY0DFvdb3TwKaY26CJzHtYllU0vT9j58hc37ndFPsqT1SrzA==",
20161 "requires": {
20162 "@babel/helper-plugin-utils": "^7.24.7"
20163 }
20164 },
20165 "@babel/plugin-transform-private-methods": {
20166 "version": "7.24.7",
20167 "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.24.7.tgz",
20168 "integrity": "sha512-COTCOkG2hn4JKGEKBADkA8WNb35TGkkRbI5iT845dB+NyqgO8Hn+ajPbSnIQznneJTa3d30scb6iz/DhH8GsJQ==",
20169 "requires": {
20170 "@babel/helper-create-class-features-plugin": "^7.24.7",
20171 "@babel/helper-plugin-utils": "^7.24.7"
20172 }
20173 },
20174 "@babel/plugin-transform-private-property-in-object": {
20175 "version": "7.24.7",
20176 "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.24.7.tgz",
20177 "integrity": "sha512-9z76mxwnwFxMyxZWEgdgECQglF2Q7cFLm0kMf8pGwt+GSJsY0cONKj/UuO4bOH0w/uAel3ekS4ra5CEAyJRmDA==",
20178 "requires": {
20179 "@babel/helper-annotate-as-pure": "^7.24.7",
20180 "@babel/helper-create-class-features-plugin": "^7.24.7",
20181 "@babel/helper-plugin-utils": "^7.24.7",
20182 "@babel/plugin-syntax-private-property-in-object": "^7.14.5"
20183 }
20184 },
20185 "@babel/plugin-transform-property-literals": {
20186 "version": "7.24.7",
20187 "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.24.7.tgz",
20188 "integrity": "sha512-EMi4MLQSHfd2nrCqQEWxFdha2gBCqU4ZcCng4WBGZ5CJL4bBRW0ptdqqDdeirGZcpALazVVNJqRmsO8/+oNCBA==",
20189 "requires": {
20190 "@babel/helper-plugin-utils": "^7.24.7"
20191 }
20192 },
20193 "@babel/plugin-transform-react-constant-elements": {
20194 "version": "7.24.7",
20195 "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.24.7.tgz",
20196 "integrity": "sha512-7LidzZfUXyfZ8/buRW6qIIHBY8wAZ1OrY9c/wTr8YhZ6vMPo+Uc/CVFLYY1spZrEQlD4w5u8wjqk5NQ3OVqQKA==",
20197 "requires": {
20198 "@babel/helper-plugin-utils": "^7.24.7"
20199 }
20200 },
20201 "@babel/plugin-transform-react-display-name": {
20202 "version": "7.24.7",
20203 "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.24.7.tgz",
20204 "integrity": "sha512-H/Snz9PFxKsS1JLI4dJLtnJgCJRoo0AUm3chP6NYr+9En1JMKloheEiLIhlp5MDVznWo+H3AAC1Mc8lmUEpsgg==",
20205 "requires": {
20206 "@babel/helper-plugin-utils": "^7.24.7"
20207 }
20208 },
20209 "@babel/plugin-transform-react-jsx": {
20210 "version": "7.24.7",
20211 "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.24.7.tgz",
20212 "integrity": "sha512-+Dj06GDZEFRYvclU6k4bme55GKBEWUmByM/eoKuqg4zTNQHiApWRhQph5fxQB2wAEFvRzL1tOEj1RJ19wJrhoA==",
20213 "requires": {
20214 "@babel/helper-annotate-as-pure": "^7.24.7",
20215 "@babel/helper-module-imports": "^7.24.7",
20216 "@babel/helper-plugin-utils": "^7.24.7",
20217 "@babel/plugin-syntax-jsx": "^7.24.7",
20218 "@babel/types": "^7.24.7"
20219 }
20220 },
20221 "@babel/plugin-transform-react-jsx-development": {
20222 "version": "7.24.7",
20223 "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.24.7.tgz",
20224 "integrity": "sha512-QG9EnzoGn+Qar7rxuW+ZOsbWOt56FvvI93xInqsZDC5fsekx1AlIO4KIJ5M+D0p0SqSH156EpmZyXq630B8OlQ==",
20225 "requires": {
20226 "@babel/plugin-transform-react-jsx": "^7.24.7"
20227 }
20228 },
20229 "@babel/plugin-transform-react-pure-annotations": {
20230 "version": "7.24.7",
20231 "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.24.7.tgz",
20232 "integrity": "sha512-PLgBVk3fzbmEjBJ/u8kFzOqS9tUeDjiaWud/rRym/yjCo/M9cASPlnrd2ZmmZpQT40fOOrvR8jh+n8jikrOhNA==",
20233 "requires": {
20234 "@babel/helper-annotate-as-pure": "^7.24.7",
20235 "@babel/helper-plugin-utils": "^7.24.7"
20236 }
20237 },
20238 "@babel/plugin-transform-regenerator": {
20239 "version": "7.24.7",
20240 "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.24.7.tgz",
20241 "integrity": "sha512-lq3fvXPdimDrlg6LWBoqj+r/DEWgONuwjuOuQCSYgRroXDH/IdM1C0IZf59fL5cHLpjEH/O6opIRBbqv7ELnuA==",
20242 "requires": {
20243 "@babel/helper-plugin-utils": "^7.24.7",
20244 "regenerator-transform": "^0.15.2"
20245 }
20246 },
20247 "@babel/plugin-transform-reserved-words": {
20248 "version": "7.24.7",
20249 "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.24.7.tgz",
20250 "integrity": "sha512-0DUq0pHcPKbjFZCfTss/pGkYMfy3vFWydkUBd9r0GHpIyfs2eCDENvqadMycRS9wZCXR41wucAfJHJmwA0UmoQ==",
20251 "requires": {
20252 "@babel/helper-plugin-utils": "^7.24.7"
20253 }
20254 },
20255 "@babel/plugin-transform-runtime": {
20256 "version": "7.24.7",
20257 "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.24.7.tgz",
20258 "integrity": "sha512-YqXjrk4C+a1kZjewqt+Mmu2UuV1s07y8kqcUf4qYLnoqemhR4gRQikhdAhSVJioMjVTu6Mo6pAbaypEA3jY6fw==",
20259 "requires": {
20260 "@babel/helper-module-imports": "^7.24.7",
20261 "@babel/helper-plugin-utils": "^7.24.7",
20262 "babel-plugin-polyfill-corejs2": "^0.4.10",
20263 "babel-plugin-polyfill-corejs3": "^0.10.1",
20264 "babel-plugin-polyfill-regenerator": "^0.6.1",
20265 "semver": "^6.3.1"
20266 },
20267 "dependencies": {
20268 "semver": {
20269 "version": "6.3.1",
20270 "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
20271 "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="
20272 }
20273 }
20274 },
20275 "@babel/plugin-transform-shorthand-properties": {
20276 "version": "7.24.7",
20277 "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.24.7.tgz",
20278 "integrity": "sha512-KsDsevZMDsigzbA09+vacnLpmPH4aWjcZjXdyFKGzpplxhbeB4wYtury3vglQkg6KM/xEPKt73eCjPPf1PgXBA==",
20279 "requires": {
20280 "@babel/helper-plugin-utils": "^7.24.7"
20281 }
20282 },
20283 "@babel/plugin-transform-spread": {
20284 "version": "7.24.7",
20285 "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.24.7.tgz",
20286 "integrity": "sha512-x96oO0I09dgMDxJaANcRyD4ellXFLLiWhuwDxKZX5g2rWP1bTPkBSwCYv96VDXVT1bD9aPj8tppr5ITIh8hBng==",
20287 "requires": {
20288 "@babel/helper-plugin-utils": "^7.24.7",
20289 "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7"
20290 }
20291 },
20292 "@babel/plugin-transform-sticky-regex": {
20293 "version": "7.24.7",
20294 "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.24.7.tgz",
20295 "integrity": "sha512-kHPSIJc9v24zEml5geKg9Mjx5ULpfncj0wRpYtxbvKyTtHCYDkVE3aHQ03FrpEo4gEe2vrJJS1Y9CJTaThA52g==",
20296 "requires": {
20297 "@babel/helper-plugin-utils": "^7.24.7"
20298 }
20299 },
20300 "@babel/plugin-transform-template-literals": {
20301 "version": "7.24.7",
20302 "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.24.7.tgz",
20303 "integrity": "sha512-AfDTQmClklHCOLxtGoP7HkeMw56k1/bTQjwsfhL6pppo/M4TOBSq+jjBUBLmV/4oeFg4GWMavIl44ZeCtmmZTw==",
20304 "requires": {
20305 "@babel/helper-plugin-utils": "^7.24.7"
20306 }
20307 },
20308 "@babel/plugin-transform-typeof-symbol": {
20309 "version": "7.24.8",
20310 "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.24.8.tgz",
20311 "integrity": "sha512-adNTUpDCVnmAE58VEqKlAA6ZBlNkMnWD0ZcW76lyNFN3MJniyGFZfNwERVk8Ap56MCnXztmDr19T4mPTztcuaw==",
20312 "requires": {
20313 "@babel/helper-plugin-utils": "^7.24.8"
20314 }
20315 },
20316 "@babel/plugin-transform-typescript": {
20317 "version": "7.24.8",
20318 "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.24.8.tgz",
20319 "integrity": "sha512-CgFgtN61BbdOGCP4fLaAMOPkzWUh6yQZNMr5YSt8uz2cZSSiQONCQFWqsE4NeVfOIhqDOlS9CR3WD91FzMeB2Q==",
20320 "requires": {
20321 "@babel/helper-annotate-as-pure": "^7.24.7",
20322 "@babel/helper-create-class-features-plugin": "^7.24.8",
20323 "@babel/helper-plugin-utils": "^7.24.8",
20324 "@babel/plugin-syntax-typescript": "^7.24.7"
20325 }
20326 },
20327 "@babel/plugin-transform-unicode-escapes": {
20328 "version": "7.24.7",
20329 "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.24.7.tgz",
20330 "integrity": "sha512-U3ap1gm5+4edc2Q/P+9VrBNhGkfnf+8ZqppY71Bo/pzZmXhhLdqgaUl6cuB07O1+AQJtCLfaOmswiNbSQ9ivhw==",
20331 "requires": {
20332 "@babel/helper-plugin-utils": "^7.24.7"
20333 }
20334 },
20335 "@babel/plugin-transform-unicode-property-regex": {
20336 "version": "7.24.7",
20337 "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.24.7.tgz",
20338 "integrity": "sha512-uH2O4OV5M9FZYQrwc7NdVmMxQJOCCzFeYudlZSzUAHRFeOujQefa92E74TQDVskNHCzOXoigEuoyzHDhaEaK5w==",
20339 "requires": {
20340 "@babel/helper-create-regexp-features-plugin": "^7.24.7",
20341 "@babel/helper-plugin-utils": "^7.24.7"
20342 }
20343 },
20344 "@babel/plugin-transform-unicode-regex": {
20345 "version": "7.24.7",
20346 "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.24.7.tgz",
20347 "integrity": "sha512-hlQ96MBZSAXUq7ltkjtu3FJCCSMx/j629ns3hA3pXnBXjanNP0LHi+JpPeA81zaWgVK1VGH95Xuy7u0RyQ8kMg==",
20348 "requires": {
20349 "@babel/helper-create-regexp-features-plugin": "^7.24.7",
20350 "@babel/helper-plugin-utils": "^7.24.7"
20351 }
20352 },
20353 "@babel/plugin-transform-unicode-sets-regex": {
20354 "version": "7.24.7",
20355 "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.24.7.tgz",
20356 "integrity": "sha512-2G8aAvF4wy1w/AGZkemprdGMRg5o6zPNhbHVImRz3lss55TYCBd6xStN19rt8XJHq20sqV0JbyWjOWwQRwV/wg==",
20357 "requires": {
20358 "@babel/helper-create-regexp-features-plugin": "^7.24.7",
20359 "@babel/helper-plugin-utils": "^7.24.7"
20360 }
20361 },
20362 "@babel/preset-env": {
20363 "version": "7.24.8",
20364 "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.24.8.tgz",
20365 "integrity": "sha512-vObvMZB6hNWuDxhSaEPTKCwcqkAIuDtE+bQGn4XMXne1DSLzFVY8Vmj1bm+mUQXYNN8NmaQEO+r8MMbzPr1jBQ==",
20366 "requires": {
20367 "@babel/compat-data": "^7.24.8",
20368 "@babel/helper-compilation-targets": "^7.24.8",
20369 "@babel/helper-plugin-utils": "^7.24.8",
20370 "@babel/helper-validator-option": "^7.24.8",
20371 "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.24.7",
20372 "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.24.7",
20373 "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.24.7",
20374 "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.24.7",
20375 "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2",
20376 "@babel/plugin-syntax-async-generators": "^7.8.4",
20377 "@babel/plugin-syntax-class-properties": "^7.12.13",
20378 "@babel/plugin-syntax-class-static-block": "^7.14.5",
20379 "@babel/plugin-syntax-dynamic-import": "^7.8.3",
20380 "@babel/plugin-syntax-export-namespace-from": "^7.8.3",
20381 "@babel/plugin-syntax-import-assertions": "^7.24.7",
20382 "@babel/plugin-syntax-import-attributes": "^7.24.7",
20383 "@babel/plugin-syntax-import-meta": "^7.10.4",
20384 "@babel/plugin-syntax-json-strings": "^7.8.3",
20385 "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4",
20386 "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3",
20387 "@babel/plugin-syntax-numeric-separator": "^7.10.4",
20388 "@babel/plugin-syntax-object-rest-spread": "^7.8.3",
20389 "@babel/plugin-syntax-optional-catch-binding": "^7.8.3",
20390 "@babel/plugin-syntax-optional-chaining": "^7.8.3",
20391 "@babel/plugin-syntax-private-property-in-object": "^7.14.5",
20392 "@babel/plugin-syntax-top-level-await": "^7.14.5",
20393 "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6",
20394 "@babel/plugin-transform-arrow-functions": "^7.24.7",
20395 "@babel/plugin-transform-async-generator-functions": "^7.24.7",
20396 "@babel/plugin-transform-async-to-generator": "^7.24.7",
20397 "@babel/plugin-transform-block-scoped-functions": "^7.24.7",
20398 "@babel/plugin-transform-block-scoping": "^7.24.7",
20399 "@babel/plugin-transform-class-properties": "^7.24.7",
20400 "@babel/plugin-transform-class-static-block": "^7.24.7",
20401 "@babel/plugin-transform-classes": "^7.24.8",
20402 "@babel/plugin-transform-computed-properties": "^7.24.7",
20403 "@babel/plugin-transform-destructuring": "^7.24.8",
20404 "@babel/plugin-transform-dotall-regex": "^7.24.7",
20405 "@babel/plugin-transform-duplicate-keys": "^7.24.7",
20406 "@babel/plugin-transform-dynamic-import": "^7.24.7",
20407 "@babel/plugin-transform-exponentiation-operator": "^7.24.7",
20408 "@babel/plugin-transform-export-namespace-from": "^7.24.7",
20409 "@babel/plugin-transform-for-of": "^7.24.7",
20410 "@babel/plugin-transform-function-name": "^7.24.7",
20411 "@babel/plugin-transform-json-strings": "^7.24.7",
20412 "@babel/plugin-transform-literals": "^7.24.7",
20413 "@babel/plugin-transform-logical-assignment-operators": "^7.24.7",
20414 "@babel/plugin-transform-member-expression-literals": "^7.24.7",
20415 "@babel/plugin-transform-modules-amd": "^7.24.7",
20416 "@babel/plugin-transform-modules-commonjs": "^7.24.8",
20417 "@babel/plugin-transform-modules-systemjs": "^7.24.7",
20418 "@babel/plugin-transform-modules-umd": "^7.24.7",
20419 "@babel/plugin-transform-named-capturing-groups-regex": "^7.24.7",
20420 "@babel/plugin-transform-new-target": "^7.24.7",
20421 "@babel/plugin-transform-nullish-coalescing-operator": "^7.24.7",
20422 "@babel/plugin-transform-numeric-separator": "^7.24.7",
20423 "@babel/plugin-transform-object-rest-spread": "^7.24.7",
20424 "@babel/plugin-transform-object-super": "^7.24.7",
20425 "@babel/plugin-transform-optional-catch-binding": "^7.24.7",
20426 "@babel/plugin-transform-optional-chaining": "^7.24.8",
20427 "@babel/plugin-transform-parameters": "^7.24.7",
20428 "@babel/plugin-transform-private-methods": "^7.24.7",
20429 "@babel/plugin-transform-private-property-in-object": "^7.24.7",
20430 "@babel/plugin-transform-property-literals": "^7.24.7",
20431 "@babel/plugin-transform-regenerator": "^7.24.7",
20432 "@babel/plugin-transform-reserved-words": "^7.24.7",
20433 "@babel/plugin-transform-shorthand-properties": "^7.24.7",
20434 "@babel/plugin-transform-spread": "^7.24.7",
20435 "@babel/plugin-transform-sticky-regex": "^7.24.7",
20436 "@babel/plugin-transform-template-literals": "^7.24.7",
20437 "@babel/plugin-transform-typeof-symbol": "^7.24.8",
20438 "@babel/plugin-transform-unicode-escapes": "^7.24.7",
20439 "@babel/plugin-transform-unicode-property-regex": "^7.24.7",
20440 "@babel/plugin-transform-unicode-regex": "^7.24.7",
20441 "@babel/plugin-transform-unicode-sets-regex": "^7.24.7",
20442 "@babel/preset-modules": "0.1.6-no-external-plugins",
20443 "babel-plugin-polyfill-corejs2": "^0.4.10",
20444 "babel-plugin-polyfill-corejs3": "^0.10.4",
20445 "babel-plugin-polyfill-regenerator": "^0.6.1",
20446 "core-js-compat": "^3.37.1",
20447 "semver": "^6.3.1"
20448 },
20449 "dependencies": {
20450 "semver": {
20451 "version": "6.3.1",
20452 "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
20453 "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="
20454 }
20455 }
20456 },
20457 "@babel/preset-modules": {
20458 "version": "0.1.6-no-external-plugins",
20459 "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz",
20460 "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==",
20461 "requires": {
20462 "@babel/helper-plugin-utils": "^7.0.0",
20463 "@babel/types": "^7.4.4",
20464 "esutils": "^2.0.2"
20465 }
20466 },
20467 "@babel/preset-react": {
20468 "version": "7.24.7",
20469 "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.24.7.tgz",
20470 "integrity": "sha512-AAH4lEkpmzFWrGVlHaxJB7RLH21uPQ9+He+eFLWHmF9IuFQVugz8eAsamaW0DXRrTfco5zj1wWtpdcXJUOfsag==",
20471 "requires": {
20472 "@babel/helper-plugin-utils": "^7.24.7",
20473 "@babel/helper-validator-option": "^7.24.7",
20474 "@babel/plugin-transform-react-display-name": "^7.24.7",
20475 "@babel/plugin-transform-react-jsx": "^7.24.7",
20476 "@babel/plugin-transform-react-jsx-development": "^7.24.7",
20477 "@babel/plugin-transform-react-pure-annotations": "^7.24.7"
20478 }
20479 },
20480 "@babel/preset-typescript": {
20481 "version": "7.24.7",
20482 "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.24.7.tgz",
20483 "integrity": "sha512-SyXRe3OdWwIwalxDg5UtJnJQO+YPcTfwiIY2B0Xlddh9o7jpWLvv8X1RthIeDOxQ+O1ML5BLPCONToObyVQVuQ==",
20484 "requires": {
20485 "@babel/helper-plugin-utils": "^7.24.7",
20486 "@babel/helper-validator-option": "^7.24.7",
20487 "@babel/plugin-syntax-jsx": "^7.24.7",
20488 "@babel/plugin-transform-modules-commonjs": "^7.24.7",
20489 "@babel/plugin-transform-typescript": "^7.24.7"
20490 }
20491 },
20492 "@babel/regjsgen": {
20493 "version": "0.8.0",
20494 "resolved": "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz",
20495 "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA=="
20496 },
20497 "@babel/runtime": {
20498 "version": "7.20.13",
20499 "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.20.13.tgz",
20500 "integrity": "sha512-gt3PKXs0DBoL9xCvOIIZ2NEqAGZqHjAnmVbfQtB620V0uReIQutpel14KcneZuer7UioY8ALKZ7iocavvzTNFA==",
20501 "requires": {
20502 "regenerator-runtime": "^0.13.11"
20503 }
20504 },
20505 "@babel/template": {
20506 "version": "7.24.7",
20507 "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.7.tgz",
20508 "integrity": "sha512-jYqfPrU9JTF0PmPy1tLYHW4Mp4KlgxJD9l2nP9fD6yT/ICi554DmrWBAEYpIelzjHf1msDP3PxJIRt/nFNfBig==",
20509 "requires": {
20510 "@babel/code-frame": "^7.24.7",
20511 "@babel/parser": "^7.24.7",
20512 "@babel/types": "^7.24.7"
20513 }
20514 },
20515 "@babel/traverse": {
20516 "version": "7.24.8",
20517 "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.8.tgz",
20518 "integrity": "sha512-t0P1xxAPzEDcEPmjprAQq19NWum4K0EQPjMwZQZbHt+GiZqvjCHjj755Weq1YRPVzBI+3zSfvScfpnuIecVFJQ==",
20519 "requires": {
20520 "@babel/code-frame": "^7.24.7",
20521 "@babel/generator": "^7.24.8",
20522 "@babel/helper-environment-visitor": "^7.24.7",
20523 "@babel/helper-function-name": "^7.24.7",
20524 "@babel/helper-hoist-variables": "^7.24.7",
20525 "@babel/helper-split-export-declaration": "^7.24.7",
20526 "@babel/parser": "^7.24.8",
20527 "@babel/types": "^7.24.8",
20528 "debug": "^4.3.1",
20529 "globals": "^11.1.0"
20530 }
20531 },
20532 "@babel/types": {
20533 "version": "7.24.8",
20534 "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.8.tgz",
20535 "integrity": "sha512-SkSBEHwwJRU52QEVZBmMBnE5Ux2/6WU1grdYyOhpbCNxbmJrDuDCphBzKZSO3taf0zztp+qkWlymE5tVL5l0TA==",
20536 "requires": {
20537 "@babel/helper-string-parser": "^7.24.8",
20538 "@babel/helper-validator-identifier": "^7.24.7",
20539 "to-fast-properties": "^2.0.0"
20540 }
20541 },
20542 "@bcoe/v8-coverage": {
20543 "version": "0.2.3",
20544 "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz",
20545 "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw=="
20546 },
20547 "@csstools/normalize.css": {
20548 "version": "12.1.1",
20549 "resolved": "https://registry.npmjs.org/@csstools/normalize.css/-/normalize.css-12.1.1.tgz",
20550 "integrity": "sha512-YAYeJ+Xqh7fUou1d1j9XHl44BmsuThiTr4iNrgCQ3J27IbhXsxXDGZ1cXv8Qvs99d4rBbLiSKy3+WZiet32PcQ=="
20551 },
20552 "@csstools/postcss-cascade-layers": {
20553 "version": "1.1.1",
20554 "resolved": "https://registry.npmjs.org/@csstools/postcss-cascade-layers/-/postcss-cascade-layers-1.1.1.tgz",
20555 "integrity": "sha512-+KdYrpKC5TgomQr2DlZF4lDEpHcoxnj5IGddYYfBWJAKfj1JtuHUIqMa+E1pJJ+z3kvDViWMqyqPlG4Ja7amQA==",
20556 "requires": {
20557 "@csstools/selector-specificity": "^2.0.2",
20558 "postcss-selector-parser": "^6.0.10"
20559 }
20560 },
20561 "@csstools/postcss-color-function": {
20562 "version": "1.1.1",
20563 "resolved": "https://registry.npmjs.org/@csstools/postcss-color-function/-/postcss-color-function-1.1.1.tgz",
20564 "integrity": "sha512-Bc0f62WmHdtRDjf5f3e2STwRAl89N2CLb+9iAwzrv4L2hncrbDwnQD9PCq0gtAt7pOI2leIV08HIBUd4jxD8cw==",
20565 "requires": {
20566 "@csstools/postcss-progressive-custom-properties": "^1.1.0",
20567 "postcss-value-parser": "^4.2.0"
20568 }
20569 },
20570 "@csstools/postcss-font-format-keywords": {
20571 "version": "1.0.1",
20572 "resolved": "https://registry.npmjs.org/@csstools/postcss-font-format-keywords/-/postcss-font-format-keywords-1.0.1.tgz",
20573 "integrity": "sha512-ZgrlzuUAjXIOc2JueK0X5sZDjCtgimVp/O5CEqTcs5ShWBa6smhWYbS0x5cVc/+rycTDbjjzoP0KTDnUneZGOg==",
20574 "requires": {
20575 "postcss-value-parser": "^4.2.0"
20576 }
20577 },
20578 "@csstools/postcss-hwb-function": {
20579 "version": "1.0.2",
20580 "resolved": "https://registry.npmjs.org/@csstools/postcss-hwb-function/-/postcss-hwb-function-1.0.2.tgz",
20581 "integrity": "sha512-YHdEru4o3Rsbjmu6vHy4UKOXZD+Rn2zmkAmLRfPet6+Jz4Ojw8cbWxe1n42VaXQhD3CQUXXTooIy8OkVbUcL+w==",
20582 "requires": {
20583 "postcss-value-parser": "^4.2.0"
20584 }
20585 },
20586 "@csstools/postcss-ic-unit": {
20587 "version": "1.0.1",
20588 "resolved": "https://registry.npmjs.org/@csstools/postcss-ic-unit/-/postcss-ic-unit-1.0.1.tgz",
20589 "integrity": "sha512-Ot1rcwRAaRHNKC9tAqoqNZhjdYBzKk1POgWfhN4uCOE47ebGcLRqXjKkApVDpjifL6u2/55ekkpnFcp+s/OZUw==",
20590 "requires": {
20591 "@csstools/postcss-progressive-custom-properties": "^1.1.0",
20592 "postcss-value-parser": "^4.2.0"
20593 }
20594 },
20595 "@csstools/postcss-is-pseudo-class": {
20596 "version": "2.0.7",
20597 "resolved": "https://registry.npmjs.org/@csstools/postcss-is-pseudo-class/-/postcss-is-pseudo-class-2.0.7.tgz",
20598 "integrity": "sha512-7JPeVVZHd+jxYdULl87lvjgvWldYu+Bc62s9vD/ED6/QTGjy0jy0US/f6BG53sVMTBJ1lzKZFpYmofBN9eaRiA==",
20599 "requires": {
20600 "@csstools/selector-specificity": "^2.0.0",
20601 "postcss-selector-parser": "^6.0.10"
20602 }
20603 },
20604 "@csstools/postcss-nested-calc": {
20605 "version": "1.0.0",
20606 "resolved": "https://registry.npmjs.org/@csstools/postcss-nested-calc/-/postcss-nested-calc-1.0.0.tgz",
20607 "integrity": "sha512-JCsQsw1wjYwv1bJmgjKSoZNvf7R6+wuHDAbi5f/7MbFhl2d/+v+TvBTU4BJH3G1X1H87dHl0mh6TfYogbT/dJQ==",
20608 "requires": {
20609 "postcss-value-parser": "^4.2.0"
20610 }
20611 },
20612 "@csstools/postcss-normalize-display-values": {
20613 "version": "1.0.1",
20614 "resolved": "https://registry.npmjs.org/@csstools/postcss-normalize-display-values/-/postcss-normalize-display-values-1.0.1.tgz",
20615 "integrity": "sha512-jcOanIbv55OFKQ3sYeFD/T0Ti7AMXc9nM1hZWu8m/2722gOTxFg7xYu4RDLJLeZmPUVQlGzo4jhzvTUq3x4ZUw==",
20616 "requires": {
20617 "postcss-value-parser": "^4.2.0"
20618 }
20619 },
20620 "@csstools/postcss-oklab-function": {
20621 "version": "1.1.1",
20622 "resolved": "https://registry.npmjs.org/@csstools/postcss-oklab-function/-/postcss-oklab-function-1.1.1.tgz",
20623 "integrity": "sha512-nJpJgsdA3dA9y5pgyb/UfEzE7W5Ka7u0CX0/HIMVBNWzWemdcTH3XwANECU6anWv/ao4vVNLTMxhiPNZsTK6iA==",
20624 "requires": {
20625 "@csstools/postcss-progressive-custom-properties": "^1.1.0",
20626 "postcss-value-parser": "^4.2.0"
20627 }
20628 },
20629 "@csstools/postcss-progressive-custom-properties": {
20630 "version": "1.3.0",
20631 "resolved": "https://registry.npmjs.org/@csstools/postcss-progressive-custom-properties/-/postcss-progressive-custom-properties-1.3.0.tgz",
20632 "integrity": "sha512-ASA9W1aIy5ygskZYuWams4BzafD12ULvSypmaLJT2jvQ8G0M3I8PRQhC0h7mG0Z3LI05+agZjqSR9+K9yaQQjA==",
20633 "requires": {
20634 "postcss-value-parser": "^4.2.0"
20635 }
20636 },
20637 "@csstools/postcss-stepped-value-functions": {
20638 "version": "1.0.1",
20639 "resolved": "https://registry.npmjs.org/@csstools/postcss-stepped-value-functions/-/postcss-stepped-value-functions-1.0.1.tgz",
20640 "integrity": "sha512-dz0LNoo3ijpTOQqEJLY8nyaapl6umbmDcgj4AD0lgVQ572b2eqA1iGZYTTWhrcrHztWDDRAX2DGYyw2VBjvCvQ==",
20641 "requires": {
20642 "postcss-value-parser": "^4.2.0"
20643 }
20644 },
20645 "@csstools/postcss-text-decoration-shorthand": {
20646 "version": "1.0.0",
20647 "resolved": "https://registry.npmjs.org/@csstools/postcss-text-decoration-shorthand/-/postcss-text-decoration-shorthand-1.0.0.tgz",
20648 "integrity": "sha512-c1XwKJ2eMIWrzQenN0XbcfzckOLLJiczqy+YvfGmzoVXd7pT9FfObiSEfzs84bpE/VqfpEuAZ9tCRbZkZxxbdw==",
20649 "requires": {
20650 "postcss-value-parser": "^4.2.0"
20651 }
20652 },
20653 "@csstools/postcss-trigonometric-functions": {
20654 "version": "1.0.2",
20655 "resolved": "https://registry.npmjs.org/@csstools/postcss-trigonometric-functions/-/postcss-trigonometric-functions-1.0.2.tgz",
20656 "integrity": "sha512-woKaLO///4bb+zZC2s80l+7cm07M7268MsyG3M0ActXXEFi6SuhvriQYcb58iiKGbjwwIU7n45iRLEHypB47Og==",
20657 "requires": {
20658 "postcss-value-parser": "^4.2.0"
20659 }
20660 },
20661 "@csstools/postcss-unset-value": {
20662 "version": "1.0.2",
20663 "resolved": "https://registry.npmjs.org/@csstools/postcss-unset-value/-/postcss-unset-value-1.0.2.tgz",
20664 "integrity": "sha512-c8J4roPBILnelAsdLr4XOAR/GsTm0GJi4XpcfvoWk3U6KiTCqiFYc63KhRMQQX35jYMp4Ao8Ij9+IZRgMfJp1g==",
20665 "requires": {}
20666 },
20667 "@csstools/selector-specificity": {
20668 "version": "2.2.0",
20669 "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-2.2.0.tgz",
20670 "integrity": "sha512-+OJ9konv95ClSTOJCmMZqpd5+YGsB2S+x6w3E1oaM8UuR5j8nTNHYSz8c9BEPGDOCMQYIEEGlVPj/VY64iTbGw==",
20671 "requires": {}
20672 },
20673 "@eslint-community/eslint-utils": {
20674 "version": "4.4.0",
20675 "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz",
20676 "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==",
20677 "requires": {
20678 "eslint-visitor-keys": "^3.3.0"
20679 }
20680 },
20681 "@eslint-community/regexpp": {
20682 "version": "4.11.0",
20683 "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.11.0.tgz",
20684 "integrity": "sha512-G/M/tIiMrTAxEWRfLfQJMmGNX28IxBg4PBz8XqQhqUHLFI6TL2htpIB1iQCj144V5ee/JaKyT9/WZ0MGZWfA7A=="
20685 },
20686 "@eslint/eslintrc": {
20687 "version": "2.1.4",
20688 "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz",
20689 "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==",
20690 "requires": {
20691 "ajv": "^6.12.4",
20692 "debug": "^4.3.2",
20693 "espree": "^9.6.0",
20694 "globals": "^13.19.0",
20695 "ignore": "^5.2.0",
20696 "import-fresh": "^3.2.1",
20697 "js-yaml": "^4.1.0",
20698 "minimatch": "^3.1.2",
20699 "strip-json-comments": "^3.1.1"
20700 },
20701 "dependencies": {
20702 "argparse": {
20703 "version": "2.0.1",
20704 "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
20705 "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="
20706 },
20707 "globals": {
20708 "version": "13.24.0",
20709 "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz",
20710 "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==",
20711 "requires": {
20712 "type-fest": "^0.20.2"
20713 }
20714 },
20715 "js-yaml": {
20716 "version": "4.1.0",
20717 "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
20718 "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
20719 "requires": {
20720 "argparse": "^2.0.1"
20721 }
20722 },
20723 "type-fest": {
20724 "version": "0.20.2",
20725 "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz",
20726 "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ=="
20727 }
20728 }
20729 },
20730 "@eslint/js": {
20731 "version": "8.57.0",
20732 "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz",
20733 "integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g=="
20734 },
20735 "@humanwhocodes/config-array": {
20736 "version": "0.11.14",
20737 "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz",
20738 "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==",
20739 "requires": {
20740 "@humanwhocodes/object-schema": "^2.0.2",
20741 "debug": "^4.3.1",
20742 "minimatch": "^3.0.5"
20743 }
20744 },
20745 "@humanwhocodes/module-importer": {
20746 "version": "1.0.1",
20747 "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz",
20748 "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA=="
20749 },
20750 "@humanwhocodes/object-schema": {
20751 "version": "2.0.3",
20752 "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz",
20753 "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA=="
20754 },
20755 "@isaacs/cliui": {
20756 "version": "8.0.2",
20757 "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz",
20758 "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==",
20759 "requires": {
20760 "string-width": "^5.1.2",
20761 "string-width-cjs": "npm:string-width@^4.2.0",
20762 "strip-ansi": "^7.0.1",
20763 "strip-ansi-cjs": "npm:strip-ansi@^6.0.1",
20764 "wrap-ansi": "^8.1.0",
20765 "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0"
20766 },
20767 "dependencies": {
20768 "ansi-regex": {
20769 "version": "6.0.1",
20770 "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz",
20771 "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA=="
20772 },
20773 "ansi-styles": {
20774 "version": "6.2.1",
20775 "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz",
20776 "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug=="
20777 },
20778 "string-width": {
20779 "version": "5.1.2",
20780 "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz",
20781 "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==",
20782 "requires": {
20783 "eastasianwidth": "^0.2.0",
20784 "emoji-regex": "^9.2.2",
20785 "strip-ansi": "^7.0.1"
20786 }
20787 },
20788 "strip-ansi": {
20789 "version": "7.1.0",
20790 "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz",
20791 "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==",
20792 "requires": {
20793 "ansi-regex": "^6.0.1"
20794 }
20795 },
20796 "wrap-ansi": {
20797 "version": "8.1.0",
20798 "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz",
20799 "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==",
20800 "requires": {
20801 "ansi-styles": "^6.1.0",
20802 "string-width": "^5.0.1",
20803 "strip-ansi": "^7.0.1"
20804 }
20805 }
20806 }
20807 },
20808 "@istanbuljs/load-nyc-config": {
20809 "version": "1.1.0",
20810 "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz",
20811 "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==",
20812 "requires": {
20813 "camelcase": "^5.3.1",
20814 "find-up": "^4.1.0",
20815 "get-package-type": "^0.1.0",
20816 "js-yaml": "^3.13.1",
20817 "resolve-from": "^5.0.0"
20818 },
20819 "dependencies": {
20820 "camelcase": {
20821 "version": "5.3.1",
20822 "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
20823 "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg=="
20824 }
20825 }
20826 },
20827 "@istanbuljs/schema": {
20828 "version": "0.1.3",
20829 "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz",
20830 "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA=="
20831 },
20832 "@jest/console": {
20833 "version": "27.5.1",
20834 "resolved": "https://registry.npmjs.org/@jest/console/-/console-27.5.1.tgz",
20835 "integrity": "sha512-kZ/tNpS3NXn0mlXXXPNuDZnb4c0oZ20r4K5eemM2k30ZC3G0T02nXUvyhf5YdbXWHPEJLc9qGLxEZ216MdL+Zg==",
20836 "requires": {
20837 "@jest/types": "^27.5.1",
20838 "@types/node": "*",
20839 "chalk": "^4.0.0",
20840 "jest-message-util": "^27.5.1",
20841 "jest-util": "^27.5.1",
20842 "slash": "^3.0.0"
20843 },
20844 "dependencies": {
20845 "ansi-styles": {
20846 "version": "4.3.0",
20847 "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
20848 "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
20849 "requires": {
20850 "color-convert": "^2.0.1"
20851 }
20852 },
20853 "chalk": {
20854 "version": "4.1.2",
20855 "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
20856 "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
20857 "requires": {
20858 "ansi-styles": "^4.1.0",
20859 "supports-color": "^7.1.0"
20860 }
20861 },
20862 "color-convert": {
20863 "version": "2.0.1",
20864 "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
20865 "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
20866 "requires": {
20867 "color-name": "~1.1.4"
20868 }
20869 },
20870 "color-name": {
20871 "version": "1.1.4",
20872 "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
20873 "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
20874 },
20875 "has-flag": {
20876 "version": "4.0.0",
20877 "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
20878 "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
20879 },
20880 "supports-color": {
20881 "version": "7.2.0",
20882 "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
20883 "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
20884 "requires": {
20885 "has-flag": "^4.0.0"
20886 }
20887 }
20888 }
20889 },
20890 "@jest/core": {
20891 "version": "27.5.1",
20892 "resolved": "https://registry.npmjs.org/@jest/core/-/core-27.5.1.tgz",
20893 "integrity": "sha512-AK6/UTrvQD0Cd24NSqmIA6rKsu0tKIxfiCducZvqxYdmMisOYAsdItspT+fQDQYARPf8XgjAFZi0ogW2agH5nQ==",
20894 "requires": {
20895 "@jest/console": "^27.5.1",
20896 "@jest/reporters": "^27.5.1",
20897 "@jest/test-result": "^27.5.1",
20898 "@jest/transform": "^27.5.1",
20899 "@jest/types": "^27.5.1",
20900 "@types/node": "*",
20901 "ansi-escapes": "^4.2.1",
20902 "chalk": "^4.0.0",
20903 "emittery": "^0.8.1",
20904 "exit": "^0.1.2",
20905 "graceful-fs": "^4.2.9",
20906 "jest-changed-files": "^27.5.1",
20907 "jest-config": "^27.5.1",
20908 "jest-haste-map": "^27.5.1",
20909 "jest-message-util": "^27.5.1",
20910 "jest-regex-util": "^27.5.1",
20911 "jest-resolve": "^27.5.1",
20912 "jest-resolve-dependencies": "^27.5.1",
20913 "jest-runner": "^27.5.1",
20914 "jest-runtime": "^27.5.1",
20915 "jest-snapshot": "^27.5.1",
20916 "jest-util": "^27.5.1",
20917 "jest-validate": "^27.5.1",
20918 "jest-watcher": "^27.5.1",
20919 "micromatch": "^4.0.4",
20920 "rimraf": "^3.0.0",
20921 "slash": "^3.0.0",
20922 "strip-ansi": "^6.0.0"
20923 },
20924 "dependencies": {
20925 "ansi-styles": {
20926 "version": "4.3.0",
20927 "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
20928 "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
20929 "requires": {
20930 "color-convert": "^2.0.1"
20931 }
20932 },
20933 "chalk": {
20934 "version": "4.1.2",
20935 "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
20936 "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
20937 "requires": {
20938 "ansi-styles": "^4.1.0",
20939 "supports-color": "^7.1.0"
20940 }
20941 },
20942 "color-convert": {
20943 "version": "2.0.1",
20944 "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
20945 "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
20946 "requires": {
20947 "color-name": "~1.1.4"
20948 }
20949 },
20950 "color-name": {
20951 "version": "1.1.4",
20952 "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
20953 "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
20954 },
20955 "has-flag": {
20956 "version": "4.0.0",
20957 "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
20958 "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
20959 },
20960 "supports-color": {
20961 "version": "7.2.0",
20962 "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
20963 "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
20964 "requires": {
20965 "has-flag": "^4.0.0"
20966 }
20967 }
20968 }
20969 },
20970 "@jest/environment": {
20971 "version": "27.5.1",
20972 "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-27.5.1.tgz",
20973 "integrity": "sha512-/WQjhPJe3/ghaol/4Bq480JKXV/Rfw8nQdN7f41fM8VDHLcxKXou6QyXAh3EFr9/bVG3x74z1NWDkP87EiY8gA==",
20974 "requires": {
20975 "@jest/fake-timers": "^27.5.1",
20976 "@jest/types": "^27.5.1",
20977 "@types/node": "*",
20978 "jest-mock": "^27.5.1"
20979 }
20980 },
20981 "@jest/expect-utils": {
20982 "version": "29.4.3",
20983 "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.4.3.tgz",
20984 "integrity": "sha512-/6JWbkxHOP8EoS8jeeTd9dTfc9Uawi+43oLKHfp6zzux3U2hqOOVnV3ai4RpDYHOccL6g+5nrxpoc8DmJxtXVQ==",
20985 "requires": {
20986 "jest-get-type": "^29.4.3"
20987 },
20988 "dependencies": {
20989 "jest-get-type": {
20990 "version": "29.4.3",
20991 "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.4.3.tgz",
20992 "integrity": "sha512-J5Xez4nRRMjk8emnTpWrlkyb9pfRQQanDrvWHhsR1+VUfbwxi30eVcZFlcdGInRibU4G5LwHXpI7IRHU0CY+gg=="
20993 }
20994 }
20995 },
20996 "@jest/fake-timers": {
20997 "version": "27.5.1",
20998 "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-27.5.1.tgz",
20999 "integrity": "sha512-/aPowoolwa07k7/oM3aASneNeBGCmGQsc3ugN4u6s4C/+s5M64MFo/+djTdiwcbQlRfFElGuDXWzaWj6QgKObQ==",
21000 "requires": {
21001 "@jest/types": "^27.5.1",
21002 "@sinonjs/fake-timers": "^8.0.1",
21003 "@types/node": "*",
21004 "jest-message-util": "^27.5.1",
21005 "jest-mock": "^27.5.1",
21006 "jest-util": "^27.5.1"
21007 }
21008 },
21009 "@jest/globals": {
21010 "version": "27.5.1",
21011 "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-27.5.1.tgz",
21012 "integrity": "sha512-ZEJNB41OBQQgGzgyInAv0UUfDDj3upmHydjieSxFvTRuZElrx7tXg/uVQ5hYVEwiXs3+aMsAeEc9X7xiSKCm4Q==",
21013 "requires": {
21014 "@jest/environment": "^27.5.1",
21015 "@jest/types": "^27.5.1",
21016 "expect": "^27.5.1"
21017 }
21018 },
21019 "@jest/reporters": {
21020 "version": "27.5.1",
21021 "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-27.5.1.tgz",
21022 "integrity": "sha512-cPXh9hWIlVJMQkVk84aIvXuBB4uQQmFqZiacloFuGiP3ah1sbCxCosidXFDfqG8+6fO1oR2dTJTlsOy4VFmUfw==",
21023 "requires": {
21024 "@bcoe/v8-coverage": "^0.2.3",
21025 "@jest/console": "^27.5.1",
21026 "@jest/test-result": "^27.5.1",
21027 "@jest/transform": "^27.5.1",
21028 "@jest/types": "^27.5.1",
21029 "@types/node": "*",
21030 "chalk": "^4.0.0",
21031 "collect-v8-coverage": "^1.0.0",
21032 "exit": "^0.1.2",
21033 "glob": "^7.1.2",
21034 "graceful-fs": "^4.2.9",
21035 "istanbul-lib-coverage": "^3.0.0",
21036 "istanbul-lib-instrument": "^5.1.0",
21037 "istanbul-lib-report": "^3.0.0",
21038 "istanbul-lib-source-maps": "^4.0.0",
21039 "istanbul-reports": "^3.1.3",
21040 "jest-haste-map": "^27.5.1",
21041 "jest-resolve": "^27.5.1",
21042 "jest-util": "^27.5.1",
21043 "jest-worker": "^27.5.1",
21044 "slash": "^3.0.0",
21045 "source-map": "^0.6.0",
21046 "string-length": "^4.0.1",
21047 "terminal-link": "^2.0.0",
21048 "v8-to-istanbul": "^8.1.0"
21049 },
21050 "dependencies": {
21051 "ansi-styles": {
21052 "version": "4.3.0",
21053 "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
21054 "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
21055 "requires": {
21056 "color-convert": "^2.0.1"
21057 }
21058 },
21059 "chalk": {
21060 "version": "4.1.2",
21061 "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
21062 "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
21063 "requires": {
21064 "ansi-styles": "^4.1.0",
21065 "supports-color": "^7.1.0"
21066 }
21067 },
21068 "color-convert": {
21069 "version": "2.0.1",
21070 "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
21071 "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
21072 "requires": {
21073 "color-name": "~1.1.4"
21074 }
21075 },
21076 "color-name": {
21077 "version": "1.1.4",
21078 "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
21079 "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
21080 },
21081 "has-flag": {
21082 "version": "4.0.0",
21083 "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
21084 "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
21085 },
21086 "source-map": {
21087 "version": "0.6.1",
21088 "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
21089 "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
21090 },
21091 "supports-color": {
21092 "version": "7.2.0",
21093 "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
21094 "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
21095 "requires": {
21096 "has-flag": "^4.0.0"
21097 }
21098 }
21099 }
21100 },
21101 "@jest/schemas": {
21102 "version": "28.1.3",
21103 "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-28.1.3.tgz",
21104 "integrity": "sha512-/l/VWsdt/aBXgjshLWOFyFt3IVdYypu5y2Wn2rOO1un6nkqIn8SLXzgIMYXFyYsRWDyF5EthmKJMIdJvk08grg==",
21105 "requires": {
21106 "@sinclair/typebox": "^0.24.1"
21107 }
21108 },
21109 "@jest/source-map": {
21110 "version": "27.5.1",
21111 "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-27.5.1.tgz",
21112 "integrity": "sha512-y9NIHUYF3PJRlHk98NdC/N1gl88BL08aQQgu4k4ZopQkCw9t9cV8mtl3TV8b/YCB8XaVTFrmUTAJvjsntDireg==",
21113 "requires": {
21114 "callsites": "^3.0.0",
21115 "graceful-fs": "^4.2.9",
21116 "source-map": "^0.6.0"
21117 },
21118 "dependencies": {
21119 "source-map": {
21120 "version": "0.6.1",
21121 "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
21122 "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
21123 }
21124 }
21125 },
21126 "@jest/test-result": {
21127 "version": "27.5.1",
21128 "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-27.5.1.tgz",
21129 "integrity": "sha512-EW35l2RYFUcUQxFJz5Cv5MTOxlJIQs4I7gxzi2zVU7PJhOwfYq1MdC5nhSmYjX1gmMmLPvB3sIaC+BkcHRBfag==",
21130 "requires": {
21131 "@jest/console": "^27.5.1",
21132 "@jest/types": "^27.5.1",
21133 "@types/istanbul-lib-coverage": "^2.0.0",
21134 "collect-v8-coverage": "^1.0.0"
21135 }
21136 },
21137 "@jest/test-sequencer": {
21138 "version": "27.5.1",
21139 "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-27.5.1.tgz",
21140 "integrity": "sha512-LCheJF7WB2+9JuCS7VB/EmGIdQuhtqjRNI9A43idHv3E4KltCTsPsLxvdaubFHSYwY/fNjMWjl6vNRhDiN7vpQ==",
21141 "requires": {
21142 "@jest/test-result": "^27.5.1",
21143 "graceful-fs": "^4.2.9",
21144 "jest-haste-map": "^27.5.1",
21145 "jest-runtime": "^27.5.1"
21146 }
21147 },
21148 "@jest/transform": {
21149 "version": "27.5.1",
21150 "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-27.5.1.tgz",
21151 "integrity": "sha512-ipON6WtYgl/1329g5AIJVbUuEh0wZVbdpGwC99Jw4LwuoBNS95MVphU6zOeD9pDkon+LLbFL7lOQRapbB8SCHw==",
21152 "requires": {
21153 "@babel/core": "^7.1.0",
21154 "@jest/types": "^27.5.1",
21155 "babel-plugin-istanbul": "^6.1.1",
21156 "chalk": "^4.0.0",
21157 "convert-source-map": "^1.4.0",
21158 "fast-json-stable-stringify": "^2.0.0",
21159 "graceful-fs": "^4.2.9",
21160 "jest-haste-map": "^27.5.1",
21161 "jest-regex-util": "^27.5.1",
21162 "jest-util": "^27.5.1",
21163 "micromatch": "^4.0.4",
21164 "pirates": "^4.0.4",
21165 "slash": "^3.0.0",
21166 "source-map": "^0.6.1",
21167 "write-file-atomic": "^3.0.0"
21168 },
21169 "dependencies": {
21170 "ansi-styles": {
21171 "version": "4.3.0",
21172 "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
21173 "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
21174 "requires": {
21175 "color-convert": "^2.0.1"
21176 }
21177 },
21178 "chalk": {
21179 "version": "4.1.2",
21180 "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
21181 "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
21182 "requires": {
21183 "ansi-styles": "^4.1.0",
21184 "supports-color": "^7.1.0"
21185 }
21186 },
21187 "color-convert": {
21188 "version": "2.0.1",
21189 "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
21190 "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
21191 "requires": {
21192 "color-name": "~1.1.4"
21193 }
21194 },
21195 "color-name": {
21196 "version": "1.1.4",
21197 "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
21198 "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
21199 },
21200 "has-flag": {
21201 "version": "4.0.0",
21202 "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
21203 "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
21204 },
21205 "source-map": {
21206 "version": "0.6.1",
21207 "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
21208 "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
21209 },
21210 "supports-color": {
21211 "version": "7.2.0",
21212 "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
21213 "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
21214 "requires": {
21215 "has-flag": "^4.0.0"
21216 }
21217 }
21218 }
21219 },
21220 "@jest/types": {
21221 "version": "27.5.1",
21222 "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz",
21223 "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==",
21224 "requires": {
21225 "@types/istanbul-lib-coverage": "^2.0.0",
21226 "@types/istanbul-reports": "^3.0.0",
21227 "@types/node": "*",
21228 "@types/yargs": "^16.0.0",
21229 "chalk": "^4.0.0"
21230 },
21231 "dependencies": {
21232 "ansi-styles": {
21233 "version": "4.3.0",
21234 "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
21235 "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
21236 "requires": {
21237 "color-convert": "^2.0.1"
21238 }
21239 },
21240 "chalk": {
21241 "version": "4.1.2",
21242 "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
21243 "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
21244 "requires": {
21245 "ansi-styles": "^4.1.0",
21246 "supports-color": "^7.1.0"
21247 }
21248 },
21249 "color-convert": {
21250 "version": "2.0.1",
21251 "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
21252 "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
21253 "requires": {
21254 "color-name": "~1.1.4"
21255 }
21256 },
21257 "color-name": {
21258 "version": "1.1.4",
21259 "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
21260 "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
21261 },
21262 "has-flag": {
21263 "version": "4.0.0",
21264 "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
21265 "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
21266 },
21267 "supports-color": {
21268 "version": "7.2.0",
21269 "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
21270 "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
21271 "requires": {
21272 "has-flag": "^4.0.0"
21273 }
21274 }
21275 }
21276 },
21277 "@jridgewell/gen-mapping": {
21278 "version": "0.1.1",
21279 "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz",
21280 "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==",
21281 "requires": {
21282 "@jridgewell/set-array": "^1.0.0",
21283 "@jridgewell/sourcemap-codec": "^1.4.10"
21284 }
21285 },
21286 "@jridgewell/resolve-uri": {
21287 "version": "3.1.0",
21288 "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz",
21289 "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w=="
21290 },
21291 "@jridgewell/set-array": {
21292 "version": "1.2.1",
21293 "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz",
21294 "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A=="
21295 },
21296 "@jridgewell/source-map": {
21297 "version": "0.3.6",
21298 "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz",
21299 "integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==",
21300 "requires": {
21301 "@jridgewell/gen-mapping": "^0.3.5",
21302 "@jridgewell/trace-mapping": "^0.3.25"
21303 },
21304 "dependencies": {
21305 "@jridgewell/gen-mapping": {
21306 "version": "0.3.5",
21307 "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz",
21308 "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==",
21309 "requires": {
21310 "@jridgewell/set-array": "^1.2.1",
21311 "@jridgewell/sourcemap-codec": "^1.4.10",
21312 "@jridgewell/trace-mapping": "^0.3.24"
21313 }
21314 }
21315 }
21316 },
21317 "@jridgewell/sourcemap-codec": {
21318 "version": "1.4.14",
21319 "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz",
21320 "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw=="
21321 },
21322 "@jridgewell/trace-mapping": {
21323 "version": "0.3.25",
21324 "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz",
21325 "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==",
21326 "requires": {
21327 "@jridgewell/resolve-uri": "^3.1.0",
21328 "@jridgewell/sourcemap-codec": "^1.4.14"
21329 }
21330 },
21331 "@leichtgewicht/ip-codec": {
21332 "version": "2.0.5",
21333 "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.5.tgz",
21334 "integrity": "sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw=="
21335 },
21336 "@nicolo-ribaudo/eslint-scope-5-internals": {
21337 "version": "5.1.1-v1",
21338 "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/eslint-scope-5-internals/-/eslint-scope-5-internals-5.1.1-v1.tgz",
21339 "integrity": "sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg==",
21340 "requires": {
21341 "eslint-scope": "5.1.1"
21342 },
21343 "dependencies": {
21344 "eslint-scope": {
21345 "version": "5.1.1",
21346 "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz",
21347 "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==",
21348 "requires": {
21349 "esrecurse": "^4.3.0",
21350 "estraverse": "^4.1.1"
21351 }
21352 },
21353 "estraverse": {
21354 "version": "4.3.0",
21355 "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz",
21356 "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw=="
21357 }
21358 }
21359 },
21360 "@nodelib/fs.scandir": {
21361 "version": "2.1.5",
21362 "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
21363 "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
21364 "requires": {
21365 "@nodelib/fs.stat": "2.0.5",
21366 "run-parallel": "^1.1.9"
21367 }
21368 },
21369 "@nodelib/fs.stat": {
21370 "version": "2.0.5",
21371 "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz",
21372 "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A=="
21373 },
21374 "@nodelib/fs.walk": {
21375 "version": "1.2.8",
21376 "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz",
21377 "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",
21378 "requires": {
21379 "@nodelib/fs.scandir": "2.1.5",
21380 "fastq": "^1.6.0"
21381 }
21382 },
21383 "@pkgjs/parseargs": {
21384 "version": "0.11.0",
21385 "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz",
21386 "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==",
21387 "optional": true
21388 },
21389 "@pmmmwh/react-refresh-webpack-plugin": {
21390 "version": "0.5.15",
21391 "resolved": "https://registry.npmjs.org/@pmmmwh/react-refresh-webpack-plugin/-/react-refresh-webpack-plugin-0.5.15.tgz",
21392 "integrity": "sha512-LFWllMA55pzB9D34w/wXUCf8+c+IYKuJDgxiZ3qMhl64KRMBHYM1I3VdGaD2BV5FNPV2/S2596bppxHbv2ZydQ==",
21393 "requires": {
21394 "ansi-html": "^0.0.9",
21395 "core-js-pure": "^3.23.3",
21396 "error-stack-parser": "^2.0.6",
21397 "html-entities": "^2.1.0",
21398 "loader-utils": "^2.0.4",
21399 "schema-utils": "^4.2.0",
21400 "source-map": "^0.7.3"
21401 }
21402 },
21403 "@remix-run/router": {
21404 "version": "1.5.0",
21405 "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.5.0.tgz",
21406 "integrity": "sha512-bkUDCp8o1MvFO+qxkODcbhSqRa6P2GXgrGZVpt0dCXNW2HCSCqYI0ZoAqEOSAjRWmmlKcYgFvN4B4S+zo/f8kg==",
21407 "dev": true
21408 },
21409 "@rollup/plugin-babel": {
21410 "version": "5.3.1",
21411 "resolved": "https://registry.npmjs.org/@rollup/plugin-babel/-/plugin-babel-5.3.1.tgz",
21412 "integrity": "sha512-WFfdLWU/xVWKeRQnKmIAQULUI7Il0gZnBIH/ZFO069wYIfPu+8zrfp/KMW0atmELoRDq8FbiP3VCss9MhCut7Q==",
21413 "requires": {
21414 "@babel/helper-module-imports": "^7.10.4",
21415 "@rollup/pluginutils": "^3.1.0"
21416 }
21417 },
21418 "@rollup/plugin-node-resolve": {
21419 "version": "11.2.1",
21420 "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-11.2.1.tgz",
21421 "integrity": "sha512-yc2n43jcqVyGE2sqV5/YCmocy9ArjVAP/BeXyTtADTBBX6V0e5UMqwO8CdQ0kzjb6zu5P1qMzsScCMRvE9OlVg==",
21422 "requires": {
21423 "@rollup/pluginutils": "^3.1.0",
21424 "@types/resolve": "1.17.1",
21425 "builtin-modules": "^3.1.0",
21426 "deepmerge": "^4.2.2",
21427 "is-module": "^1.0.0",
21428 "resolve": "^1.19.0"
21429 }
21430 },
21431 "@rollup/plugin-replace": {
21432 "version": "2.4.2",
21433 "resolved": "https://registry.npmjs.org/@rollup/plugin-replace/-/plugin-replace-2.4.2.tgz",
21434 "integrity": "sha512-IGcu+cydlUMZ5En85jxHH4qj2hta/11BHq95iHEyb2sbgiN0eCdzvUcHw5gt9pBL5lTi4JDYJ1acCoMGpTvEZg==",
21435 "requires": {
21436 "@rollup/pluginutils": "^3.1.0",
21437 "magic-string": "^0.25.7"
21438 }
21439 },
21440 "@rollup/pluginutils": {
21441 "version": "3.1.0",
21442 "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz",
21443 "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==",
21444 "requires": {
21445 "@types/estree": "0.0.39",
21446 "estree-walker": "^1.0.1",
21447 "picomatch": "^2.2.2"
21448 },
21449 "dependencies": {
21450 "@types/estree": {
21451 "version": "0.0.39",
21452 "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz",
21453 "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw=="
21454 }
21455 }
21456 },
21457 "@rushstack/eslint-patch": {
21458 "version": "1.10.3",
21459 "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.10.3.tgz",
21460 "integrity": "sha512-qC/xYId4NMebE6w/V33Fh9gWxLgURiNYgVNObbJl2LZv0GUUItCcCqC5axQSwRaAgaxl2mELq1rMzlswaQ0Zxg=="
21461 },
21462 "@sinclair/typebox": {
21463 "version": "0.24.51",
21464 "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.24.51.tgz",
21465 "integrity": "sha512-1P1OROm/rdubP5aFDSZQILU0vrLCJ4fvHt6EoqHEM+2D/G5MK3bIaymUKLit8Js9gbns5UyJnkP/TZROLw4tUA=="
21466 },
21467 "@sinonjs/commons": {
21468 "version": "1.8.6",
21469 "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.6.tgz",
21470 "integrity": "sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ==",
21471 "requires": {
21472 "type-detect": "4.0.8"
21473 }
21474 },
21475 "@sinonjs/fake-timers": {
21476 "version": "8.1.0",
21477 "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-8.1.0.tgz",
21478 "integrity": "sha512-OAPJUAtgeINhh/TAlUID4QTs53Njm7xzddaVlEs/SXwgtiD1tW22zAB/W1wdqfrpmikgaWQ9Fw6Ws+hsiRm5Vg==",
21479 "requires": {
21480 "@sinonjs/commons": "^1.7.0"
21481 }
21482 },
21483 "@surma/rollup-plugin-off-main-thread": {
21484 "version": "2.2.3",
21485 "resolved": "https://registry.npmjs.org/@surma/rollup-plugin-off-main-thread/-/rollup-plugin-off-main-thread-2.2.3.tgz",
21486 "integrity": "sha512-lR8q/9W7hZpMWweNiAKU7NQerBnzQQLvi8qnTDU/fxItPhtZVMbPV3lbCwjhIlNBe9Bbr5V+KHshvWmVSG9cxQ==",
21487 "requires": {
21488 "ejs": "^3.1.6",
21489 "json5": "^2.2.0",
21490 "magic-string": "^0.25.0",
21491 "string.prototype.matchall": "^4.0.6"
21492 }
21493 },
21494 "@svgr/babel-plugin-add-jsx-attribute": {
21495 "version": "5.4.0",
21496 "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-5.4.0.tgz",
21497 "integrity": "sha512-ZFf2gs/8/6B8PnSofI0inYXr2SDNTDScPXhN7k5EqD4aZ3gi6u+rbmZHVB8IM3wDyx8ntKACZbtXSm7oZGRqVg=="
21498 },
21499 "@svgr/babel-plugin-remove-jsx-attribute": {
21500 "version": "5.4.0",
21501 "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-5.4.0.tgz",
21502 "integrity": "sha512-yaS4o2PgUtwLFGTKbsiAy6D0o3ugcUhWK0Z45umJ66EPWunAz9fuFw2gJuje6wqQvQWOTJvIahUwndOXb7QCPg=="
21503 },
21504 "@svgr/babel-plugin-remove-jsx-empty-expression": {
21505 "version": "5.0.1",
21506 "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-5.0.1.tgz",
21507 "integrity": "sha512-LA72+88A11ND/yFIMzyuLRSMJ+tRKeYKeQ+mR3DcAZ5I4h5CPWN9AHyUzJbWSYp/u2u0xhmgOe0+E41+GjEueA=="
21508 },
21509 "@svgr/babel-plugin-replace-jsx-attribute-value": {
21510 "version": "5.0.1",
21511 "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-5.0.1.tgz",
21512 "integrity": "sha512-PoiE6ZD2Eiy5mK+fjHqwGOS+IXX0wq/YDtNyIgOrc6ejFnxN4b13pRpiIPbtPwHEc+NT2KCjteAcq33/F1Y9KQ=="
21513 },
21514 "@svgr/babel-plugin-svg-dynamic-title": {
21515 "version": "5.4.0",
21516 "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-5.4.0.tgz",
21517 "integrity": "sha512-zSOZH8PdZOpuG1ZVx/cLVePB2ibo3WPpqo7gFIjLV9a0QsuQAzJiwwqmuEdTaW2pegyBE17Uu15mOgOcgabQZg=="
21518 },
21519 "@svgr/babel-plugin-svg-em-dimensions": {
21520 "version": "5.4.0",
21521 "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-5.4.0.tgz",
21522 "integrity": "sha512-cPzDbDA5oT/sPXDCUYoVXEmm3VIoAWAPT6mSPTJNbQaBNUuEKVKyGH93oDY4e42PYHRW67N5alJx/eEol20abw=="
21523 },
21524 "@svgr/babel-plugin-transform-react-native-svg": {
21525 "version": "5.4.0",
21526 "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-5.4.0.tgz",
21527 "integrity": "sha512-3eYP/SaopZ41GHwXma7Rmxcv9uRslRDTY1estspeB1w1ueZWd/tPlMfEOoccYpEMZU3jD4OU7YitnXcF5hLW2Q=="
21528 },
21529 "@svgr/babel-plugin-transform-svg-component": {
21530 "version": "5.5.0",
21531 "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-5.5.0.tgz",
21532 "integrity": "sha512-q4jSH1UUvbrsOtlo/tKcgSeiCHRSBdXoIoqX1pgcKK/aU3JD27wmMKwGtpB8qRYUYoyXvfGxUVKchLuR5pB3rQ=="
21533 },
21534 "@svgr/babel-preset": {
21535 "version": "5.5.0",
21536 "resolved": "https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-5.5.0.tgz",
21537 "integrity": "sha512-4FiXBjvQ+z2j7yASeGPEi8VD/5rrGQk4Xrq3EdJmoZgz/tpqChpo5hgXDvmEauwtvOc52q8ghhZK4Oy7qph4ig==",
21538 "requires": {
21539 "@svgr/babel-plugin-add-jsx-attribute": "^5.4.0",
21540 "@svgr/babel-plugin-remove-jsx-attribute": "^5.4.0",
21541 "@svgr/babel-plugin-remove-jsx-empty-expression": "^5.0.1",
21542 "@svgr/babel-plugin-replace-jsx-attribute-value": "^5.0.1",
21543 "@svgr/babel-plugin-svg-dynamic-title": "^5.4.0",
21544 "@svgr/babel-plugin-svg-em-dimensions": "^5.4.0",
21545 "@svgr/babel-plugin-transform-react-native-svg": "^5.4.0",
21546 "@svgr/babel-plugin-transform-svg-component": "^5.5.0"
21547 }
21548 },
21549 "@svgr/core": {
21550 "version": "5.5.0",
21551 "resolved": "https://registry.npmjs.org/@svgr/core/-/core-5.5.0.tgz",
21552 "integrity": "sha512-q52VOcsJPvV3jO1wkPtzTuKlvX7Y3xIcWRpCMtBF3MrteZJtBfQw/+u0B1BHy5ColpQc1/YVTrPEtSYIMNZlrQ==",
21553 "requires": {
21554 "@svgr/plugin-jsx": "^5.5.0",
21555 "camelcase": "^6.2.0",
21556 "cosmiconfig": "^7.0.0"
21557 }
21558 },
21559 "@svgr/hast-util-to-babel-ast": {
21560 "version": "5.5.0",
21561 "resolved": "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-5.5.0.tgz",
21562 "integrity": "sha512-cAaR/CAiZRB8GP32N+1jocovUtvlj0+e65TB50/6Lcime+EA49m/8l+P2ko+XPJ4dw3xaPS3jOL4F2X4KWxoeQ==",
21563 "requires": {
21564 "@babel/types": "^7.12.6"
21565 }
21566 },
21567 "@svgr/plugin-jsx": {
21568 "version": "5.5.0",
21569 "resolved": "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-5.5.0.tgz",
21570 "integrity": "sha512-V/wVh33j12hGh05IDg8GpIUXbjAPnTdPTKuP4VNLggnwaHMPNQNae2pRnyTAILWCQdz5GyMqtO488g7CKM8CBA==",
21571 "requires": {
21572 "@babel/core": "^7.12.3",
21573 "@svgr/babel-preset": "^5.5.0",
21574 "@svgr/hast-util-to-babel-ast": "^5.5.0",
21575 "svg-parser": "^2.0.2"
21576 }
21577 },
21578 "@svgr/plugin-svgo": {
21579 "version": "5.5.0",
21580 "resolved": "https://registry.npmjs.org/@svgr/plugin-svgo/-/plugin-svgo-5.5.0.tgz",
21581 "integrity": "sha512-r5swKk46GuQl4RrVejVwpeeJaydoxkdwkM1mBKOgJLBUJPGaLci6ylg/IjhrRsREKDkr4kbMWdgOtbXEh0fyLQ==",
21582 "requires": {
21583 "cosmiconfig": "^7.0.0",
21584 "deepmerge": "^4.2.2",
21585 "svgo": "^1.2.2"
21586 }
21587 },
21588 "@svgr/webpack": {
21589 "version": "5.5.0",
21590 "resolved": "https://registry.npmjs.org/@svgr/webpack/-/webpack-5.5.0.tgz",
21591 "integrity": "sha512-DOBOK255wfQxguUta2INKkzPj6AIS6iafZYiYmHn6W3pHlycSRRlvWKCfLDG10fXfLWqE3DJHgRUOyJYmARa7g==",
21592 "requires": {
21593 "@babel/core": "^7.12.3",
21594 "@babel/plugin-transform-react-constant-elements": "^7.12.1",
21595 "@babel/preset-env": "^7.12.1",
21596 "@babel/preset-react": "^7.12.5",
21597 "@svgr/core": "^5.5.0",
21598 "@svgr/plugin-jsx": "^5.5.0",
21599 "@svgr/plugin-svgo": "^5.5.0",
21600 "loader-utils": "^2.0.0"
21601 }
21602 },
21603 "@testing-library/dom": {
21604 "version": "9.0.0",
21605 "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-9.0.0.tgz",
21606 "integrity": "sha512-+/TLgKNFsYUshOY/zXsQOk+PlFQK+eyJ9T13IDVNJEi+M+Un7xlJK+FZKkbGSnf0+7E1G6PlDhkSYQ/GFiruBQ==",
21607 "peer": true,
21608 "requires": {
21609 "@babel/code-frame": "^7.10.4",
21610 "@babel/runtime": "^7.12.5",
21611 "@types/aria-query": "^5.0.1",
21612 "aria-query": "^5.0.0",
21613 "chalk": "^4.1.0",
21614 "dom-accessibility-api": "^0.5.9",
21615 "lz-string": "^1.4.4",
21616 "pretty-format": "^27.0.2"
21617 },
21618 "dependencies": {
21619 "ansi-styles": {
21620 "version": "4.3.0",
21621 "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
21622 "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
21623 "peer": true,
21624 "requires": {
21625 "color-convert": "^2.0.1"
21626 }
21627 },
21628 "chalk": {
21629 "version": "4.1.2",
21630 "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
21631 "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
21632 "peer": true,
21633 "requires": {
21634 "ansi-styles": "^4.1.0",
21635 "supports-color": "^7.1.0"
21636 }
21637 },
21638 "color-convert": {
21639 "version": "2.0.1",
21640 "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
21641 "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
21642 "peer": true,
21643 "requires": {
21644 "color-name": "~1.1.4"
21645 }
21646 },
21647 "color-name": {
21648 "version": "1.1.4",
21649 "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
21650 "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
21651 "peer": true
21652 },
21653 "has-flag": {
21654 "version": "4.0.0",
21655 "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
21656 "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
21657 "peer": true
21658 },
21659 "supports-color": {
21660 "version": "7.2.0",
21661 "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
21662 "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
21663 "peer": true,
21664 "requires": {
21665 "has-flag": "^4.0.0"
21666 }
21667 }
21668 }
21669 },
21670 "@testing-library/jest-dom": {
21671 "version": "5.16.5",
21672 "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-5.16.5.tgz",
21673 "integrity": "sha512-N5ixQ2qKpi5OLYfwQmUb/5mSV9LneAcaUfp32pn4yCnpb8r/Yz0pXFPck21dIicKmi+ta5WRAknkZCfA8refMA==",
21674 "requires": {
21675 "@adobe/css-tools": "^4.0.1",
21676 "@babel/runtime": "^7.9.2",
21677 "@types/testing-library__jest-dom": "^5.9.1",
21678 "aria-query": "^5.0.0",
21679 "chalk": "^3.0.0",
21680 "css.escape": "^1.5.1",
21681 "dom-accessibility-api": "^0.5.6",
21682 "lodash": "^4.17.15",
21683 "redent": "^3.0.0"
21684 },
21685 "dependencies": {
21686 "ansi-styles": {
21687 "version": "4.3.0",
21688 "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
21689 "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
21690 "requires": {
21691 "color-convert": "^2.0.1"
21692 }
21693 },
21694 "chalk": {
21695 "version": "3.0.0",
21696 "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz",
21697 "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==",
21698 "requires": {
21699 "ansi-styles": "^4.1.0",
21700 "supports-color": "^7.1.0"
21701 }
21702 },
21703 "color-convert": {
21704 "version": "2.0.1",
21705 "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
21706 "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
21707 "requires": {
21708 "color-name": "~1.1.4"
21709 }
21710 },
21711 "color-name": {
21712 "version": "1.1.4",
21713 "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
21714 "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
21715 },
21716 "has-flag": {
21717 "version": "4.0.0",
21718 "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
21719 "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
21720 },
21721 "supports-color": {
21722 "version": "7.2.0",
21723 "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
21724 "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
21725 "requires": {
21726 "has-flag": "^4.0.0"
21727 }
21728 }
21729 }
21730 },
21731 "@testing-library/react": {
21732 "version": "13.4.0",
21733 "resolved": "https://registry.npmjs.org/@testing-library/react/-/react-13.4.0.tgz",
21734 "integrity": "sha512-sXOGON+WNTh3MLE9rve97ftaZukN3oNf2KjDy7YTx6hcTO2uuLHuCGynMDhFwGw/jYf4OJ2Qk0i4i79qMNNkyw==",
21735 "requires": {
21736 "@babel/runtime": "^7.12.5",
21737 "@testing-library/dom": "^8.5.0",
21738 "@types/react-dom": "^18.0.0"
21739 },
21740 "dependencies": {
21741 "@testing-library/dom": {
21742 "version": "8.20.0",
21743 "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-8.20.0.tgz",
21744 "integrity": "sha512-d9ULIT+a4EXLX3UU8FBjauG9NnsZHkHztXoIcTsOKoOw030fyjheN9svkTULjJxtYag9DZz5Jz5qkWZDPxTFwA==",
21745 "requires": {
21746 "@babel/code-frame": "^7.10.4",
21747 "@babel/runtime": "^7.12.5",
21748 "@types/aria-query": "^5.0.1",
21749 "aria-query": "^5.0.0",
21750 "chalk": "^4.1.0",
21751 "dom-accessibility-api": "^0.5.9",
21752 "lz-string": "^1.4.4",
21753 "pretty-format": "^27.0.2"
21754 }
21755 },
21756 "ansi-styles": {
21757 "version": "4.3.0",
21758 "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
21759 "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
21760 "requires": {
21761 "color-convert": "^2.0.1"
21762 }
21763 },
21764 "chalk": {
21765 "version": "4.1.2",
21766 "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
21767 "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
21768 "requires": {
21769 "ansi-styles": "^4.1.0",
21770 "supports-color": "^7.1.0"
21771 }
21772 },
21773 "color-convert": {
21774 "version": "2.0.1",
21775 "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
21776 "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
21777 "requires": {
21778 "color-name": "~1.1.4"
21779 }
21780 },
21781 "color-name": {
21782 "version": "1.1.4",
21783 "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
21784 "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
21785 },
21786 "has-flag": {
21787 "version": "4.0.0",
21788 "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
21789 "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
21790 },
21791 "supports-color": {
21792 "version": "7.2.0",
21793 "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
21794 "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
21795 "requires": {
21796 "has-flag": "^4.0.0"
21797 }
21798 }
21799 }
21800 },
21801 "@testing-library/user-event": {
21802 "version": "13.5.0",
21803 "resolved": "https://registry.npmjs.org/@testing-library/user-event/-/user-event-13.5.0.tgz",
21804 "integrity": "sha512-5Kwtbo3Y/NowpkbRuSepbyMFkZmHgD+vPzYB/RJ4oxt5Gj/avFFBYjhw27cqSVPVw/3a67NK1PbiIr9k4Gwmdg==",
21805 "requires": {
21806 "@babel/runtime": "^7.12.5"
21807 }
21808 },
21809 "@tootallnate/once": {
21810 "version": "1.1.2",
21811 "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz",
21812 "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw=="
21813 },
21814 "@trysound/sax": {
21815 "version": "0.2.0",
21816 "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz",
21817 "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA=="
21818 },
21819 "@types/aria-query": {
21820 "version": "5.0.1",
21821 "resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-5.0.1.tgz",
21822 "integrity": "sha512-XTIieEY+gvJ39ChLcB4If5zHtPxt3Syj5rgZR+e1ctpmK8NjPf0zFqsz4JpLJT0xla9GFDKjy8Cpu331nrmE1Q=="
21823 },
21824 "@types/babel__core": {
21825 "version": "7.20.5",
21826 "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz",
21827 "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==",
21828 "requires": {
21829 "@babel/parser": "^7.20.7",
21830 "@babel/types": "^7.20.7",
21831 "@types/babel__generator": "*",
21832 "@types/babel__template": "*",
21833 "@types/babel__traverse": "*"
21834 }
21835 },
21836 "@types/babel__generator": {
21837 "version": "7.6.8",
21838 "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.8.tgz",
21839 "integrity": "sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==",
21840 "requires": {
21841 "@babel/types": "^7.0.0"
21842 }
21843 },
21844 "@types/babel__template": {
21845 "version": "7.4.4",
21846 "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz",
21847 "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==",
21848 "requires": {
21849 "@babel/parser": "^7.1.0",
21850 "@babel/types": "^7.0.0"
21851 }
21852 },
21853 "@types/babel__traverse": {
21854 "version": "7.20.6",
21855 "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.6.tgz",
21856 "integrity": "sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==",
21857 "requires": {
21858 "@babel/types": "^7.20.7"
21859 }
21860 },
21861 "@types/body-parser": {
21862 "version": "1.19.5",
21863 "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.5.tgz",
21864 "integrity": "sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==",
21865 "requires": {
21866 "@types/connect": "*",
21867 "@types/node": "*"
21868 }
21869 },
21870 "@types/bonjour": {
21871 "version": "3.5.13",
21872 "resolved": "https://registry.npmjs.org/@types/bonjour/-/bonjour-3.5.13.tgz",
21873 "integrity": "sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ==",
21874 "requires": {
21875 "@types/node": "*"
21876 }
21877 },
21878 "@types/connect": {
21879 "version": "3.4.38",
21880 "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz",
21881 "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==",
21882 "requires": {
21883 "@types/node": "*"
21884 }
21885 },
21886 "@types/connect-history-api-fallback": {
21887 "version": "1.5.4",
21888 "resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.4.tgz",
21889 "integrity": "sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw==",
21890 "requires": {
21891 "@types/express-serve-static-core": "*",
21892 "@types/node": "*"
21893 }
21894 },
21895 "@types/debug": {
21896 "version": "4.1.8",
21897 "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.8.tgz",
21898 "integrity": "sha512-/vPO1EPOs306Cvhwv7KfVfYvOJqA/S/AXjaHQiJboCZzcNDb+TIJFN9/2C9DZ//ijSKWioNyUxD792QmDJ+HKQ==",
21899 "requires": {
21900 "@types/ms": "*"
21901 }
21902 },
21903 "@types/eslint": {
21904 "version": "8.56.10",
21905 "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.56.10.tgz",
21906 "integrity": "sha512-Shavhk87gCtY2fhXDctcfS3e6FdxWkCx1iUZ9eEUbh7rTqlZT0/IzOkCOVt0fCjcFuZ9FPYfuezTBImfHCDBGQ==",
21907 "requires": {
21908 "@types/estree": "*",
21909 "@types/json-schema": "*"
21910 }
21911 },
21912 "@types/eslint-scope": {
21913 "version": "3.7.7",
21914 "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.7.tgz",
21915 "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==",
21916 "requires": {
21917 "@types/eslint": "*",
21918 "@types/estree": "*"
21919 }
21920 },
21921 "@types/estree": {
21922 "version": "1.0.5",
21923 "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz",
21924 "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw=="
21925 },
21926 "@types/express": {
21927 "version": "4.17.21",
21928 "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.21.tgz",
21929 "integrity": "sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==",
21930 "requires": {
21931 "@types/body-parser": "*",
21932 "@types/express-serve-static-core": "^4.17.33",
21933 "@types/qs": "*",
21934 "@types/serve-static": "*"
21935 }
21936 },
21937 "@types/express-serve-static-core": {
21938 "version": "4.19.5",
21939 "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.19.5.tgz",
21940 "integrity": "sha512-y6W03tvrACO72aijJ5uF02FRq5cgDR9lUxddQ8vyF+GvmjJQqbzDcJngEjURc+ZsG31VI3hODNZJ2URj86pzmg==",
21941 "requires": {
21942 "@types/node": "*",
21943 "@types/qs": "*",
21944 "@types/range-parser": "*",
21945 "@types/send": "*"
21946 }
21947 },
21948 "@types/graceful-fs": {
21949 "version": "4.1.9",
21950 "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz",
21951 "integrity": "sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==",
21952 "requires": {
21953 "@types/node": "*"
21954 }
21955 },
21956 "@types/hast": {
21957 "version": "2.3.4",
21958 "resolved": "https://registry.npmjs.org/@types/hast/-/hast-2.3.4.tgz",
21959 "integrity": "sha512-wLEm0QvaoawEDoTRwzTXp4b4jpwiJDvR5KMnFnVodm3scufTlBOWRD6N1OBf9TZMhjlNsSfcO5V+7AF4+Vy+9g==",
21960 "requires": {
21961 "@types/unist": "*"
21962 }
21963 },
21964 "@types/html-minifier-terser": {
21965 "version": "6.1.0",
21966 "resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz",
21967 "integrity": "sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg=="
21968 },
21969 "@types/http-errors": {
21970 "version": "2.0.4",
21971 "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.4.tgz",
21972 "integrity": "sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA=="
21973 },
21974 "@types/http-proxy": {
21975 "version": "1.17.14",
21976 "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.14.tgz",
21977 "integrity": "sha512-SSrD0c1OQzlFX7pGu1eXxSEjemej64aaNPRhhVYUGqXh0BtldAAx37MG8btcumvpgKyZp1F5Gn3JkktdxiFv6w==",
21978 "requires": {
21979 "@types/node": "*"
21980 }
21981 },
21982 "@types/istanbul-lib-coverage": {
21983 "version": "2.0.4",
21984 "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz",
21985 "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g=="
21986 },
21987 "@types/istanbul-lib-report": {
21988 "version": "3.0.0",
21989 "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz",
21990 "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==",
21991 "requires": {
21992 "@types/istanbul-lib-coverage": "*"
21993 }
21994 },
21995 "@types/istanbul-reports": {
21996 "version": "3.0.1",
21997 "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz",
21998 "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==",
21999 "requires": {
22000 "@types/istanbul-lib-report": "*"
22001 }
22002 },
22003 "@types/jest": {
22004 "version": "29.4.0",
22005 "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.4.0.tgz",
22006 "integrity": "sha512-VaywcGQ9tPorCX/Jkkni7RWGFfI11whqzs8dvxF41P17Z+z872thvEvlIbznjPJ02kl1HMX3LmLOonsj2n7HeQ==",
22007 "requires": {
22008 "expect": "^29.0.0",
22009 "pretty-format": "^29.0.0"
22010 },
22011 "dependencies": {
22012 "@jest/schemas": {
22013 "version": "29.4.3",
22014 "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.4.3.tgz",
22015 "integrity": "sha512-VLYKXQmtmuEz6IxJsrZwzG9NvtkQsWNnWMsKxqWNu3+CnfzJQhp0WDDKWLVV9hLKr0l3SLLFRqcYHjhtyuDVxg==",
22016 "requires": {
22017 "@sinclair/typebox": "^0.25.16"
22018 }
22019 },
22020 "@jest/types": {
22021 "version": "29.4.3",
22022 "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.4.3.tgz",
22023 "integrity": "sha512-bPYfw8V65v17m2Od1cv44FH+SiKW7w2Xu7trhcdTLUmSv85rfKsP+qXSjO4KGJr4dtPSzl/gvslZBXctf1qGEA==",
22024 "requires": {
22025 "@jest/schemas": "^29.4.3",
22026 "@types/istanbul-lib-coverage": "^2.0.0",
22027 "@types/istanbul-reports": "^3.0.0",
22028 "@types/node": "*",
22029 "@types/yargs": "^17.0.8",
22030 "chalk": "^4.0.0"
22031 }
22032 },
22033 "@sinclair/typebox": {
22034 "version": "0.25.23",
22035 "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.25.23.tgz",
22036 "integrity": "sha512-VEB8ygeP42CFLWyAJhN5OklpxUliqdNEUcXb4xZ/CINqtYGTjL5ukluKdKzQ0iWdUxyQ7B0539PAUhHKrCNWSQ=="
22037 },
22038 "@types/yargs": {
22039 "version": "17.0.22",
22040 "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.22.tgz",
22041 "integrity": "sha512-pet5WJ9U8yPVRhkwuEIp5ktAeAqRZOq4UdAyWLWzxbtpyXnzbtLdKiXAjJzi/KLmPGS9wk86lUFWZFN6sISo4g==",
22042 "requires": {
22043 "@types/yargs-parser": "*"
22044 }
22045 },
22046 "ansi-styles": {
22047 "version": "4.3.0",
22048 "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
22049 "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
22050 "requires": {
22051 "color-convert": "^2.0.1"
22052 }
22053 },
22054 "chalk": {
22055 "version": "4.1.2",
22056 "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
22057 "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
22058 "requires": {
22059 "ansi-styles": "^4.1.0",
22060 "supports-color": "^7.1.0"
22061 }
22062 },
22063 "color-convert": {
22064 "version": "2.0.1",
22065 "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
22066 "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
22067 "requires": {
22068 "color-name": "~1.1.4"
22069 }
22070 },
22071 "color-name": {
22072 "version": "1.1.4",
22073 "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
22074 "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
22075 },
22076 "diff-sequences": {
22077 "version": "29.4.3",
22078 "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.4.3.tgz",
22079 "integrity": "sha512-ofrBgwpPhCD85kMKtE9RYFFq6OC1A89oW2vvgWZNCwxrUpRUILopY7lsYyMDSjc8g6U6aiO0Qubg6r4Wgt5ZnA=="
22080 },
22081 "expect": {
22082 "version": "29.4.3",
22083 "resolved": "https://registry.npmjs.org/expect/-/expect-29.4.3.tgz",
22084 "integrity": "sha512-uC05+Q7eXECFpgDrHdXA4k2rpMyStAYPItEDLyQDo5Ta7fVkJnNA/4zh/OIVkVVNZ1oOK1PipQoyNjuZ6sz6Dg==",
22085 "requires": {
22086 "@jest/expect-utils": "^29.4.3",
22087 "jest-get-type": "^29.4.3",
22088 "jest-matcher-utils": "^29.4.3",
22089 "jest-message-util": "^29.4.3",
22090 "jest-util": "^29.4.3"
22091 }
22092 },
22093 "has-flag": {
22094 "version": "4.0.0",
22095 "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
22096 "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
22097 },
22098 "jest-diff": {
22099 "version": "29.4.3",
22100 "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.4.3.tgz",
22101 "integrity": "sha512-YB+ocenx7FZ3T5O9lMVMeLYV4265socJKtkwgk/6YUz/VsEzYDkiMuMhWzZmxm3wDRQvayJu/PjkjjSkjoHsCA==",
22102 "requires": {
22103 "chalk": "^4.0.0",
22104 "diff-sequences": "^29.4.3",
22105 "jest-get-type": "^29.4.3",
22106 "pretty-format": "^29.4.3"
22107 }
22108 },
22109 "jest-get-type": {
22110 "version": "29.4.3",
22111 "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.4.3.tgz",
22112 "integrity": "sha512-J5Xez4nRRMjk8emnTpWrlkyb9pfRQQanDrvWHhsR1+VUfbwxi30eVcZFlcdGInRibU4G5LwHXpI7IRHU0CY+gg=="
22113 },
22114 "jest-matcher-utils": {
22115 "version": "29.4.3",
22116 "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.4.3.tgz",
22117 "integrity": "sha512-TTciiXEONycZ03h6R6pYiZlSkvYgT0l8aa49z/DLSGYjex4orMUcafuLXYyyEDWB1RKglq00jzwY00Ei7yFNVg==",
22118 "requires": {
22119 "chalk": "^4.0.0",
22120 "jest-diff": "^29.4.3",
22121 "jest-get-type": "^29.4.3",
22122 "pretty-format": "^29.4.3"
22123 }
22124 },
22125 "jest-message-util": {
22126 "version": "29.4.3",
22127 "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.4.3.tgz",
22128 "integrity": "sha512-1Y8Zd4ZCN7o/QnWdMmT76If8LuDv23Z1DRovBj/vcSFNlGCJGoO8D1nJDw1AdyAGUk0myDLFGN5RbNeJyCRGCw==",
22129 "requires": {
22130 "@babel/code-frame": "^7.12.13",
22131 "@jest/types": "^29.4.3",
22132 "@types/stack-utils": "^2.0.0",
22133 "chalk": "^4.0.0",
22134 "graceful-fs": "^4.2.9",
22135 "micromatch": "^4.0.4",
22136 "pretty-format": "^29.4.3",
22137 "slash": "^3.0.0",
22138 "stack-utils": "^2.0.3"
22139 }
22140 },
22141 "jest-util": {
22142 "version": "29.4.3",
22143 "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.4.3.tgz",
22144 "integrity": "sha512-ToSGORAz4SSSoqxDSylWX8JzkOQR7zoBtNRsA7e+1WUX5F8jrOwaNpuh1YfJHJKDHXLHmObv5eOjejUd+/Ws+Q==",
22145 "requires": {
22146 "@jest/types": "^29.4.3",
22147 "@types/node": "*",
22148 "chalk": "^4.0.0",
22149 "ci-info": "^3.2.0",
22150 "graceful-fs": "^4.2.9",
22151 "picomatch": "^2.2.3"
22152 }
22153 },
22154 "pretty-format": {
22155 "version": "29.4.3",
22156 "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.4.3.tgz",
22157 "integrity": "sha512-cvpcHTc42lcsvOOAzd3XuNWTcvk1Jmnzqeu+WsOuiPmxUJTnkbAcFNsRKvEpBEUFVUgy/GTZLulZDcDEi+CIlA==",
22158 "requires": {
22159 "@jest/schemas": "^29.4.3",
22160 "ansi-styles": "^5.0.0",
22161 "react-is": "^18.0.0"
22162 },
22163 "dependencies": {
22164 "ansi-styles": {
22165 "version": "5.2.0",
22166 "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz",
22167 "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA=="
22168 }
22169 }
22170 },
22171 "react-is": {
22172 "version": "18.2.0",
22173 "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz",
22174 "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w=="
22175 },
22176 "supports-color": {
22177 "version": "7.2.0",
22178 "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
22179 "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
22180 "requires": {
22181 "has-flag": "^4.0.0"
22182 }
22183 }
22184 }
22185 },
22186 "@types/json-schema": {
22187 "version": "7.0.15",
22188 "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz",
22189 "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA=="
22190 },
22191 "@types/json5": {
22192 "version": "0.0.29",
22193 "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz",
22194 "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ=="
22195 },
22196 "@types/mdast": {
22197 "version": "3.0.11",
22198 "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-3.0.11.tgz",
22199 "integrity": "sha512-Y/uImid8aAwrEA24/1tcRZwpxX3pIFTSilcNDKSPn+Y2iDywSEachzRuvgAYYLR3wpGXAsMbv5lvKLDZLeYPAw==",
22200 "requires": {
22201 "@types/unist": "*"
22202 }
22203 },
22204 "@types/mime": {
22205 "version": "1.3.5",
22206 "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz",
22207 "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w=="
22208 },
22209 "@types/ms": {
22210 "version": "0.7.31",
22211 "resolved": "https://registry.npmjs.org/@types/ms/-/ms-0.7.31.tgz",
22212 "integrity": "sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA=="
22213 },
22214 "@types/node": {
22215 "version": "18.13.0",
22216 "resolved": "https://registry.npmjs.org/@types/node/-/node-18.13.0.tgz",
22217 "integrity": "sha512-gC3TazRzGoOnoKAhUx+Q0t8S9Tzs74z7m0ipwGpSqQrleP14hKxP4/JUeEQcD3W1/aIpnWl8pHowI7WokuZpXg=="
22218 },
22219 "@types/node-forge": {
22220 "version": "1.3.11",
22221 "resolved": "https://registry.npmjs.org/@types/node-forge/-/node-forge-1.3.11.tgz",
22222 "integrity": "sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ==",
22223 "requires": {
22224 "@types/node": "*"
22225 }
22226 },
22227 "@types/parse-json": {
22228 "version": "4.0.2",
22229 "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.2.tgz",
22230 "integrity": "sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw=="
22231 },
22232 "@types/prettier": {
22233 "version": "2.7.3",
22234 "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.3.tgz",
22235 "integrity": "sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA=="
22236 },
22237 "@types/prop-types": {
22238 "version": "15.7.5",
22239 "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz",
22240 "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w=="
22241 },
22242 "@types/q": {
22243 "version": "1.5.8",
22244 "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.8.tgz",
22245 "integrity": "sha512-hroOstUScF6zhIi+5+x0dzqrHA1EJi+Irri6b1fxolMTqqHIV/Cg77EtnQcZqZCu8hR3mX2BzIxN4/GzI68Kfw=="
22246 },
22247 "@types/qs": {
22248 "version": "6.9.15",
22249 "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.15.tgz",
22250 "integrity": "sha512-uXHQKES6DQKKCLh441Xv/dwxOq1TVS3JPUMlEqoEglvlhR6Mxnlew/Xq/LRVHpLyk7iK3zODe1qYHIMltO7XGg=="
22251 },
22252 "@types/range-parser": {
22253 "version": "1.2.7",
22254 "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz",
22255 "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ=="
22256 },
22257 "@types/react": {
22258 "version": "18.0.28",
22259 "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.28.tgz",
22260 "integrity": "sha512-RD0ivG1kEztNBdoAK7lekI9M+azSnitIn85h4iOiaLjaTrMjzslhaqCGaI4IyCJ1RljWiLCEu4jyrLLgqxBTew==",
22261 "requires": {
22262 "@types/prop-types": "*",
22263 "@types/scheduler": "*",
22264 "csstype": "^3.0.2"
22265 }
22266 },
22267 "@types/react-dom": {
22268 "version": "18.0.11",
22269 "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.0.11.tgz",
22270 "integrity": "sha512-O38bPbI2CWtgw/OoQoY+BRelw7uysmXbWvw3nLWO21H1HSh+GOlqPuXshJfjmpNlKiiSDG9cc1JZAaMmVdcTlw==",
22271 "requires": {
22272 "@types/react": "*"
22273 }
22274 },
22275 "@types/resolve": {
22276 "version": "1.17.1",
22277 "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz",
22278 "integrity": "sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==",
22279 "requires": {
22280 "@types/node": "*"
22281 }
22282 },
22283 "@types/retry": {
22284 "version": "0.12.0",
22285 "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz",
22286 "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA=="
22287 },
22288 "@types/scheduler": {
22289 "version": "0.16.2",
22290 "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.2.tgz",
22291 "integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew=="
22292 },
22293 "@types/semver": {
22294 "version": "7.5.8",
22295 "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.8.tgz",
22296 "integrity": "sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ=="
22297 },
22298 "@types/send": {
22299 "version": "0.17.4",
22300 "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.4.tgz",
22301 "integrity": "sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==",
22302 "requires": {
22303 "@types/mime": "^1",
22304 "@types/node": "*"
22305 }
22306 },
22307 "@types/serve-index": {
22308 "version": "1.9.4",
22309 "resolved": "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.4.tgz",
22310 "integrity": "sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug==",
22311 "requires": {
22312 "@types/express": "*"
22313 }
22314 },
22315 "@types/serve-static": {
22316 "version": "1.15.7",
22317 "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.7.tgz",
22318 "integrity": "sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==",
22319 "requires": {
22320 "@types/http-errors": "*",
22321 "@types/node": "*",
22322 "@types/send": "*"
22323 }
22324 },
22325 "@types/sockjs": {
22326 "version": "0.3.36",
22327 "resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.36.tgz",
22328 "integrity": "sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q==",
22329 "requires": {
22330 "@types/node": "*"
22331 }
22332 },
22333 "@types/stack-utils": {
22334 "version": "2.0.1",
22335 "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz",
22336 "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw=="
22337 },
22338 "@types/testing-library__jest-dom": {
22339 "version": "5.14.5",
22340 "resolved": "https://registry.npmjs.org/@types/testing-library__jest-dom/-/testing-library__jest-dom-5.14.5.tgz",
22341 "integrity": "sha512-SBwbxYoyPIvxHbeHxTZX2Pe/74F/tX2/D3mMvzabdeJ25bBojfW0TyB8BHrbq/9zaaKICJZjLP+8r6AeZMFCuQ==",
22342 "requires": {
22343 "@types/jest": "*"
22344 }
22345 },
22346 "@types/trusted-types": {
22347 "version": "2.0.7",
22348 "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz",
22349 "integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw=="
22350 },
22351 "@types/unist": {
22352 "version": "2.0.6",
22353 "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.6.tgz",
22354 "integrity": "sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ=="
22355 },
22356 "@types/ws": {
22357 "version": "8.5.10",
22358 "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.10.tgz",
22359 "integrity": "sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A==",
22360 "requires": {
22361 "@types/node": "*"
22362 }
22363 },
22364 "@types/yargs": {
22365 "version": "16.0.9",
22366 "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.9.tgz",
22367 "integrity": "sha512-tHhzvkFXZQeTECenFoRljLBYPZJ7jAVxqqtEI0qTLOmuultnFp4I9yKE17vTuhf7BkhCu7I4XuemPgikDVuYqA==",
22368 "requires": {
22369 "@types/yargs-parser": "*"
22370 }
22371 },
22372 "@types/yargs-parser": {
22373 "version": "21.0.0",
22374 "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz",
22375 "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA=="
22376 },
22377 "@typescript-eslint/eslint-plugin": {
22378 "version": "5.62.0",
22379 "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.62.0.tgz",
22380 "integrity": "sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==",
22381 "requires": {
22382 "@eslint-community/regexpp": "^4.4.0",
22383 "@typescript-eslint/scope-manager": "5.62.0",
22384 "@typescript-eslint/type-utils": "5.62.0",
22385 "@typescript-eslint/utils": "5.62.0",
22386 "debug": "^4.3.4",
22387 "graphemer": "^1.4.0",
22388 "ignore": "^5.2.0",
22389 "natural-compare-lite": "^1.4.0",
22390 "semver": "^7.3.7",
22391 "tsutils": "^3.21.0"
22392 }
22393 },
22394 "@typescript-eslint/experimental-utils": {
22395 "version": "5.62.0",
22396 "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-5.62.0.tgz",
22397 "integrity": "sha512-RTXpeB3eMkpoclG3ZHft6vG/Z30azNHuqY6wKPBHlVMZFuEvrtlEDe8gMqDb+SO+9hjC/pLekeSCryf9vMZlCw==",
22398 "requires": {
22399 "@typescript-eslint/utils": "5.62.0"
22400 }
22401 },
22402 "@typescript-eslint/parser": {
22403 "version": "5.62.0",
22404 "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.62.0.tgz",
22405 "integrity": "sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==",
22406 "requires": {
22407 "@typescript-eslint/scope-manager": "5.62.0",
22408 "@typescript-eslint/types": "5.62.0",
22409 "@typescript-eslint/typescript-estree": "5.62.0",
22410 "debug": "^4.3.4"
22411 }
22412 },
22413 "@typescript-eslint/scope-manager": {
22414 "version": "5.62.0",
22415 "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz",
22416 "integrity": "sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==",
22417 "requires": {
22418 "@typescript-eslint/types": "5.62.0",
22419 "@typescript-eslint/visitor-keys": "5.62.0"
22420 }
22421 },
22422 "@typescript-eslint/type-utils": {
22423 "version": "5.62.0",
22424 "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.62.0.tgz",
22425 "integrity": "sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==",
22426 "requires": {
22427 "@typescript-eslint/typescript-estree": "5.62.0",
22428 "@typescript-eslint/utils": "5.62.0",
22429 "debug": "^4.3.4",
22430 "tsutils": "^3.21.0"
22431 }
22432 },
22433 "@typescript-eslint/types": {
22434 "version": "5.62.0",
22435 "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.62.0.tgz",
22436 "integrity": "sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ=="
22437 },
22438 "@typescript-eslint/typescript-estree": {
22439 "version": "5.62.0",
22440 "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz",
22441 "integrity": "sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==",
22442 "requires": {
22443 "@typescript-eslint/types": "5.62.0",
22444 "@typescript-eslint/visitor-keys": "5.62.0",
22445 "debug": "^4.3.4",
22446 "globby": "^11.1.0",
22447 "is-glob": "^4.0.3",
22448 "semver": "^7.3.7",
22449 "tsutils": "^3.21.0"
22450 }
22451 },
22452 "@typescript-eslint/utils": {
22453 "version": "5.62.0",
22454 "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.62.0.tgz",
22455 "integrity": "sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==",
22456 "requires": {
22457 "@eslint-community/eslint-utils": "^4.2.0",
22458 "@types/json-schema": "^7.0.9",
22459 "@types/semver": "^7.3.12",
22460 "@typescript-eslint/scope-manager": "5.62.0",
22461 "@typescript-eslint/types": "5.62.0",
22462 "@typescript-eslint/typescript-estree": "5.62.0",
22463 "eslint-scope": "^5.1.1",
22464 "semver": "^7.3.7"
22465 },
22466 "dependencies": {
22467 "eslint-scope": {
22468 "version": "5.1.1",
22469 "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz",
22470 "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==",
22471 "requires": {
22472 "esrecurse": "^4.3.0",
22473 "estraverse": "^4.1.1"
22474 }
22475 },
22476 "estraverse": {
22477 "version": "4.3.0",
22478 "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz",
22479 "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw=="
22480 }
22481 }
22482 },
22483 "@typescript-eslint/visitor-keys": {
22484 "version": "5.62.0",
22485 "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz",
22486 "integrity": "sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==",
22487 "requires": {
22488 "@typescript-eslint/types": "5.62.0",
22489 "eslint-visitor-keys": "^3.3.0"
22490 }
22491 },
22492 "@ungap/structured-clone": {
22493 "version": "1.2.0",
22494 "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz",
22495 "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ=="
22496 },
22497 "@webassemblyjs/ast": {
22498 "version": "1.12.1",
22499 "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.12.1.tgz",
22500 "integrity": "sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg==",
22501 "requires": {
22502 "@webassemblyjs/helper-numbers": "1.11.6",
22503 "@webassemblyjs/helper-wasm-bytecode": "1.11.6"
22504 }
22505 },
22506 "@webassemblyjs/floating-point-hex-parser": {
22507 "version": "1.11.6",
22508 "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz",
22509 "integrity": "sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw=="
22510 },
22511 "@webassemblyjs/helper-api-error": {
22512 "version": "1.11.6",
22513 "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz",
22514 "integrity": "sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q=="
22515 },
22516 "@webassemblyjs/helper-buffer": {
22517 "version": "1.12.1",
22518 "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.12.1.tgz",
22519 "integrity": "sha512-nzJwQw99DNDKr9BVCOZcLuJJUlqkJh+kVzVl6Fmq/tI5ZtEyWT1KZMyOXltXLZJmDtvLCDgwsyrkohEtopTXCw=="
22520 },
22521 "@webassemblyjs/helper-numbers": {
22522 "version": "1.11.6",
22523 "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz",
22524 "integrity": "sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==",
22525 "requires": {
22526 "@webassemblyjs/floating-point-hex-parser": "1.11.6",
22527 "@webassemblyjs/helper-api-error": "1.11.6",
22528 "@xtuc/long": "4.2.2"
22529 }
22530 },
22531 "@webassemblyjs/helper-wasm-bytecode": {
22532 "version": "1.11.6",
22533 "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz",
22534 "integrity": "sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA=="
22535 },
22536 "@webassemblyjs/helper-wasm-section": {
22537 "version": "1.12.1",
22538 "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.12.1.tgz",
22539 "integrity": "sha512-Jif4vfB6FJlUlSbgEMHUyk1j234GTNG9dBJ4XJdOySoj518Xj0oGsNi59cUQF4RRMS9ouBUxDDdyBVfPTypa5g==",
22540 "requires": {
22541 "@webassemblyjs/ast": "1.12.1",
22542 "@webassemblyjs/helper-buffer": "1.12.1",
22543 "@webassemblyjs/helper-wasm-bytecode": "1.11.6",
22544 "@webassemblyjs/wasm-gen": "1.12.1"
22545 }
22546 },
22547 "@webassemblyjs/ieee754": {
22548 "version": "1.11.6",
22549 "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz",
22550 "integrity": "sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==",
22551 "requires": {
22552 "@xtuc/ieee754": "^1.2.0"
22553 }
22554 },
22555 "@webassemblyjs/leb128": {
22556 "version": "1.11.6",
22557 "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.6.tgz",
22558 "integrity": "sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==",
22559 "requires": {
22560 "@xtuc/long": "4.2.2"
22561 }
22562 },
22563 "@webassemblyjs/utf8": {
22564 "version": "1.11.6",
22565 "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.6.tgz",
22566 "integrity": "sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA=="
22567 },
22568 "@webassemblyjs/wasm-edit": {
22569 "version": "1.12.1",
22570 "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.12.1.tgz",
22571 "integrity": "sha512-1DuwbVvADvS5mGnXbE+c9NfA8QRcZ6iKquqjjmR10k6o+zzsRVesil54DKexiowcFCPdr/Q0qaMgB01+SQ1u6g==",
22572 "requires": {
22573 "@webassemblyjs/ast": "1.12.1",
22574 "@webassemblyjs/helper-buffer": "1.12.1",
22575 "@webassemblyjs/helper-wasm-bytecode": "1.11.6",
22576 "@webassemblyjs/helper-wasm-section": "1.12.1",
22577 "@webassemblyjs/wasm-gen": "1.12.1",
22578 "@webassemblyjs/wasm-opt": "1.12.1",
22579 "@webassemblyjs/wasm-parser": "1.12.1",
22580 "@webassemblyjs/wast-printer": "1.12.1"
22581 }
22582 },
22583 "@webassemblyjs/wasm-gen": {
22584 "version": "1.12.1",
22585 "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.12.1.tgz",
22586 "integrity": "sha512-TDq4Ojh9fcohAw6OIMXqiIcTq5KUXTGRkVxbSo1hQnSy6lAM5GSdfwWeSxpAo0YzgsgF182E/U0mDNhuA0tW7w==",
22587 "requires": {
22588 "@webassemblyjs/ast": "1.12.1",
22589 "@webassemblyjs/helper-wasm-bytecode": "1.11.6",
22590 "@webassemblyjs/ieee754": "1.11.6",
22591 "@webassemblyjs/leb128": "1.11.6",
22592 "@webassemblyjs/utf8": "1.11.6"
22593 }
22594 },
22595 "@webassemblyjs/wasm-opt": {
22596 "version": "1.12.1",
22597 "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.12.1.tgz",
22598 "integrity": "sha512-Jg99j/2gG2iaz3hijw857AVYekZe2SAskcqlWIZXjji5WStnOpVoat3gQfT/Q5tb2djnCjBtMocY/Su1GfxPBg==",
22599 "requires": {
22600 "@webassemblyjs/ast": "1.12.1",
22601 "@webassemblyjs/helper-buffer": "1.12.1",
22602 "@webassemblyjs/wasm-gen": "1.12.1",
22603 "@webassemblyjs/wasm-parser": "1.12.1"
22604 }
22605 },
22606 "@webassemblyjs/wasm-parser": {
22607 "version": "1.12.1",
22608 "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.12.1.tgz",
22609 "integrity": "sha512-xikIi7c2FHXysxXe3COrVUPSheuBtpcfhbpFj4gmu7KRLYOzANztwUU0IbsqvMqzuNK2+glRGWCEqZo1WCLyAQ==",
22610 "requires": {
22611 "@webassemblyjs/ast": "1.12.1",
22612 "@webassemblyjs/helper-api-error": "1.11.6",
22613 "@webassemblyjs/helper-wasm-bytecode": "1.11.6",
22614 "@webassemblyjs/ieee754": "1.11.6",
22615 "@webassemblyjs/leb128": "1.11.6",
22616 "@webassemblyjs/utf8": "1.11.6"
22617 }
22618 },
22619 "@webassemblyjs/wast-printer": {
22620 "version": "1.12.1",
22621 "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.12.1.tgz",
22622 "integrity": "sha512-+X4WAlOisVWQMikjbcvY2e0rwPsKQ9F688lksZhBcPycBBuii3O7m8FACbDMWDojpAqvjIncrG8J0XHKyQfVeA==",
22623 "requires": {
22624 "@webassemblyjs/ast": "1.12.1",
22625 "@xtuc/long": "4.2.2"
22626 }
22627 },
22628 "@xtuc/ieee754": {
22629 "version": "1.2.0",
22630 "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz",
22631 "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA=="
22632 },
22633 "@xtuc/long": {
22634 "version": "4.2.2",
22635 "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz",
22636 "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ=="
22637 },
22638 "abab": {
22639 "version": "2.0.6",
22640 "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz",
22641 "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA=="
22642 },
22643 "accepts": {
22644 "version": "1.3.8",
22645 "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz",
22646 "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==",
22647 "requires": {
22648 "mime-types": "~2.1.34",
22649 "negotiator": "0.6.3"
22650 }
22651 },
22652 "acorn": {
22653 "version": "8.12.1",
22654 "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz",
22655 "integrity": "sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg=="
22656 },
22657 "acorn-globals": {
22658 "version": "6.0.0",
22659 "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz",
22660 "integrity": "sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==",
22661 "requires": {
22662 "acorn": "^7.1.1",
22663 "acorn-walk": "^7.1.1"
22664 },
22665 "dependencies": {
22666 "acorn": {
22667 "version": "7.4.1",
22668 "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz",
22669 "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A=="
22670 }
22671 }
22672 },
22673 "acorn-import-attributes": {
22674 "version": "1.9.5",
22675 "resolved": "https://registry.npmjs.org/acorn-import-attributes/-/acorn-import-attributes-1.9.5.tgz",
22676 "integrity": "sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==",
22677 "requires": {}
22678 },
22679 "acorn-jsx": {
22680 "version": "5.3.2",
22681 "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz",
22682 "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==",
22683 "requires": {}
22684 },
22685 "acorn-walk": {
22686 "version": "7.2.0",
22687 "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz",
22688 "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA=="
22689 },
22690 "address": {
22691 "version": "1.2.2",
22692 "resolved": "https://registry.npmjs.org/address/-/address-1.2.2.tgz",
22693 "integrity": "sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA=="
22694 },
22695 "adjust-sourcemap-loader": {
22696 "version": "4.0.0",
22697 "resolved": "https://registry.npmjs.org/adjust-sourcemap-loader/-/adjust-sourcemap-loader-4.0.0.tgz",
22698 "integrity": "sha512-OXwN5b9pCUXNQHJpwwD2qP40byEmSgzj8B4ydSN0uMNYWiFmJ6x6KwUllMmfk8Rwu/HJDFR7U8ubsWBoN0Xp0A==",
22699 "requires": {
22700 "loader-utils": "^2.0.0",
22701 "regex-parser": "^2.2.11"
22702 }
22703 },
22704 "agent-base": {
22705 "version": "6.0.2",
22706 "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz",
22707 "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==",
22708 "requires": {
22709 "debug": "4"
22710 }
22711 },
22712 "ajv": {
22713 "version": "6.12.6",
22714 "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
22715 "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
22716 "requires": {
22717 "fast-deep-equal": "^3.1.1",
22718 "fast-json-stable-stringify": "^2.0.0",
22719 "json-schema-traverse": "^0.4.1",
22720 "uri-js": "^4.2.2"
22721 }
22722 },
22723 "ajv-formats": {
22724 "version": "2.1.1",
22725 "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz",
22726 "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==",
22727 "requires": {
22728 "ajv": "^8.0.0"
22729 },
22730 "dependencies": {
22731 "ajv": {
22732 "version": "8.16.0",
22733 "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.16.0.tgz",
22734 "integrity": "sha512-F0twR8U1ZU67JIEtekUcLkXkoO5mMMmgGD8sK/xUFzJ805jxHQl92hImFAqqXMyMYjSPOyUPAwHYhB72g5sTXw==",
22735 "requires": {
22736 "fast-deep-equal": "^3.1.3",
22737 "json-schema-traverse": "^1.0.0",
22738 "require-from-string": "^2.0.2",
22739 "uri-js": "^4.4.1"
22740 }
22741 },
22742 "json-schema-traverse": {
22743 "version": "1.0.0",
22744 "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
22745 "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug=="
22746 }
22747 }
22748 },
22749 "ajv-keywords": {
22750 "version": "3.5.2",
22751 "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz",
22752 "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==",
22753 "requires": {}
22754 },
22755 "ansi-escapes": {
22756 "version": "4.3.2",
22757 "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz",
22758 "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==",
22759 "requires": {
22760 "type-fest": "^0.21.3"
22761 }
22762 },
22763 "ansi-html": {
22764 "version": "0.0.9",
22765 "resolved": "https://registry.npmjs.org/ansi-html/-/ansi-html-0.0.9.tgz",
22766 "integrity": "sha512-ozbS3LuenHVxNRh/wdnN16QapUHzauqSomAl1jwwJRRsGwFwtj644lIhxfWu0Fy0acCij2+AEgHvjscq3dlVXg=="
22767 },
22768 "ansi-html-community": {
22769 "version": "0.0.8",
22770 "resolved": "https://registry.npmjs.org/ansi-html-community/-/ansi-html-community-0.0.8.tgz",
22771 "integrity": "sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw=="
22772 },
22773 "ansi-regex": {
22774 "version": "5.0.1",
22775 "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
22776 "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="
22777 },
22778 "ansi-styles": {
22779 "version": "3.2.1",
22780 "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
22781 "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
22782 "requires": {
22783 "color-convert": "^1.9.0"
22784 }
22785 },
22786 "any-promise": {
22787 "version": "1.3.0",
22788 "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz",
22789 "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A=="
22790 },
22791 "anymatch": {
22792 "version": "3.1.3",
22793 "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
22794 "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
22795 "requires": {
22796 "normalize-path": "^3.0.0",
22797 "picomatch": "^2.0.4"
22798 }
22799 },
22800 "arg": {
22801 "version": "5.0.2",
22802 "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz",
22803 "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg=="
22804 },
22805 "argparse": {
22806 "version": "1.0.10",
22807 "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
22808 "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
22809 "requires": {
22810 "sprintf-js": "~1.0.2"
22811 }
22812 },
22813 "aria-query": {
22814 "version": "5.1.3",
22815 "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.1.3.tgz",
22816 "integrity": "sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==",
22817 "requires": {
22818 "deep-equal": "^2.0.5"
22819 }
22820 },
22821 "array-buffer-byte-length": {
22822 "version": "1.0.1",
22823 "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz",
22824 "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==",
22825 "requires": {
22826 "call-bind": "^1.0.5",
22827 "is-array-buffer": "^3.0.4"
22828 }
22829 },
22830 "array-flatten": {
22831 "version": "1.1.1",
22832 "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
22833 "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg=="
22834 },
22835 "array-includes": {
22836 "version": "3.1.8",
22837 "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.8.tgz",
22838 "integrity": "sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==",
22839 "requires": {
22840 "call-bind": "^1.0.7",
22841 "define-properties": "^1.2.1",
22842 "es-abstract": "^1.23.2",
22843 "es-object-atoms": "^1.0.0",
22844 "get-intrinsic": "^1.2.4",
22845 "is-string": "^1.0.7"
22846 }
22847 },
22848 "array-union": {
22849 "version": "2.1.0",
22850 "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz",
22851 "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw=="
22852 },
22853 "array.prototype.findlast": {
22854 "version": "1.2.5",
22855 "resolved": "https://registry.npmjs.org/array.prototype.findlast/-/array.prototype.findlast-1.2.5.tgz",
22856 "integrity": "sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==",
22857 "requires": {
22858 "call-bind": "^1.0.7",
22859 "define-properties": "^1.2.1",
22860 "es-abstract": "^1.23.2",
22861 "es-errors": "^1.3.0",
22862 "es-object-atoms": "^1.0.0",
22863 "es-shim-unscopables": "^1.0.2"
22864 }
22865 },
22866 "array.prototype.findlastindex": {
22867 "version": "1.2.5",
22868 "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.5.tgz",
22869 "integrity": "sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==",
22870 "requires": {
22871 "call-bind": "^1.0.7",
22872 "define-properties": "^1.2.1",
22873 "es-abstract": "^1.23.2",
22874 "es-errors": "^1.3.0",
22875 "es-object-atoms": "^1.0.0",
22876 "es-shim-unscopables": "^1.0.2"
22877 }
22878 },
22879 "array.prototype.flat": {
22880 "version": "1.3.2",
22881 "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz",
22882 "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==",
22883 "requires": {
22884 "call-bind": "^1.0.2",
22885 "define-properties": "^1.2.0",
22886 "es-abstract": "^1.22.1",
22887 "es-shim-unscopables": "^1.0.0"
22888 }
22889 },
22890 "array.prototype.flatmap": {
22891 "version": "1.3.2",
22892 "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz",
22893 "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==",
22894 "requires": {
22895 "call-bind": "^1.0.2",
22896 "define-properties": "^1.2.0",
22897 "es-abstract": "^1.22.1",
22898 "es-shim-unscopables": "^1.0.0"
22899 }
22900 },
22901 "array.prototype.reduce": {
22902 "version": "1.0.7",
22903 "resolved": "https://registry.npmjs.org/array.prototype.reduce/-/array.prototype.reduce-1.0.7.tgz",
22904 "integrity": "sha512-mzmiUCVwtiD4lgxYP8g7IYy8El8p2CSMePvIbTS7gchKir/L1fgJrk0yDKmAX6mnRQFKNADYIk8nNlTris5H1Q==",
22905 "requires": {
22906 "call-bind": "^1.0.7",
22907 "define-properties": "^1.2.1",
22908 "es-abstract": "^1.23.2",
22909 "es-array-method-boxes-properly": "^1.0.0",
22910 "es-errors": "^1.3.0",
22911 "es-object-atoms": "^1.0.0",
22912 "is-string": "^1.0.7"
22913 }
22914 },
22915 "array.prototype.toreversed": {
22916 "version": "1.1.2",
22917 "resolved": "https://registry.npmjs.org/array.prototype.toreversed/-/array.prototype.toreversed-1.1.2.tgz",
22918 "integrity": "sha512-wwDCoT4Ck4Cz7sLtgUmzR5UV3YF5mFHUlbChCzZBQZ+0m2cl/DH3tKgvphv1nKgFsJ48oCSg6p91q2Vm0I/ZMA==",
22919 "requires": {
22920 "call-bind": "^1.0.2",
22921 "define-properties": "^1.2.0",
22922 "es-abstract": "^1.22.1",
22923 "es-shim-unscopables": "^1.0.0"
22924 }
22925 },
22926 "array.prototype.tosorted": {
22927 "version": "1.1.4",
22928 "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.4.tgz",
22929 "integrity": "sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==",
22930 "requires": {
22931 "call-bind": "^1.0.7",
22932 "define-properties": "^1.2.1",
22933 "es-abstract": "^1.23.3",
22934 "es-errors": "^1.3.0",
22935 "es-shim-unscopables": "^1.0.2"
22936 }
22937 },
22938 "arraybuffer.prototype.slice": {
22939 "version": "1.0.3",
22940 "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz",
22941 "integrity": "sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==",
22942 "requires": {
22943 "array-buffer-byte-length": "^1.0.1",
22944 "call-bind": "^1.0.5",
22945 "define-properties": "^1.2.1",
22946 "es-abstract": "^1.22.3",
22947 "es-errors": "^1.2.1",
22948 "get-intrinsic": "^1.2.3",
22949 "is-array-buffer": "^3.0.4",
22950 "is-shared-array-buffer": "^1.0.2"
22951 }
22952 },
22953 "asap": {
22954 "version": "2.0.6",
22955 "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz",
22956 "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA=="
22957 },
22958 "ast-types-flow": {
22959 "version": "0.0.8",
22960 "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.8.tgz",
22961 "integrity": "sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ=="
22962 },
22963 "async": {
22964 "version": "3.2.5",
22965 "resolved": "https://registry.npmjs.org/async/-/async-3.2.5.tgz",
22966 "integrity": "sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg=="
22967 },
22968 "asynckit": {
22969 "version": "0.4.0",
22970 "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
22971 "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q=="
22972 },
22973 "at-least-node": {
22974 "version": "1.0.0",
22975 "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz",
22976 "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg=="
22977 },
22978 "autoprefixer": {
22979 "version": "10.4.19",
22980 "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.19.tgz",
22981 "integrity": "sha512-BaENR2+zBZ8xXhM4pUaKUxlVdxZ0EZhjvbopwnXmxRUfqDmwSpC2lAi/QXvx7NRdPCo1WKEcEF6mV64si1z4Ew==",
22982 "requires": {
22983 "browserslist": "^4.23.0",
22984 "caniuse-lite": "^1.0.30001599",
22985 "fraction.js": "^4.3.7",
22986 "normalize-range": "^0.1.2",
22987 "picocolors": "^1.0.0",
22988 "postcss-value-parser": "^4.2.0"
22989 }
22990 },
22991 "available-typed-arrays": {
22992 "version": "1.0.7",
22993 "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz",
22994 "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==",
22995 "requires": {
22996 "possible-typed-array-names": "^1.0.0"
22997 }
22998 },
22999 "axe-core": {
23000 "version": "4.9.1",
23001 "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.9.1.tgz",
23002 "integrity": "sha512-QbUdXJVTpvUTHU7871ppZkdOLBeGUKBQWHkHrvN2V9IQWGMt61zf3B45BtzjxEJzYuj0JBjBZP/hmYS/R9pmAw=="
23003 },
23004 "axobject-query": {
23005 "version": "3.1.1",
23006 "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-3.1.1.tgz",
23007 "integrity": "sha512-goKlv8DZrK9hUh975fnHzhNIO4jUnFCfv/dszV5VwUGDFjI6vQ2VwoyjYjYNEbBE8AH87TduWP5uyDR1D+Iteg==",
23008 "requires": {
23009 "deep-equal": "^2.0.5"
23010 }
23011 },
23012 "babel-jest": {
23013 "version": "27.5.1",
23014 "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-27.5.1.tgz",
23015 "integrity": "sha512-cdQ5dXjGRd0IBRATiQ4mZGlGlRE8kJpjPOixdNRdT+m3UcNqmYWN6rK6nvtXYfY3D76cb8s/O1Ss8ea24PIwcg==",
23016 "requires": {
23017 "@jest/transform": "^27.5.1",
23018 "@jest/types": "^27.5.1",
23019 "@types/babel__core": "^7.1.14",
23020 "babel-plugin-istanbul": "^6.1.1",
23021 "babel-preset-jest": "^27.5.1",
23022 "chalk": "^4.0.0",
23023 "graceful-fs": "^4.2.9",
23024 "slash": "^3.0.0"
23025 },
23026 "dependencies": {
23027 "ansi-styles": {
23028 "version": "4.3.0",
23029 "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
23030 "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
23031 "requires": {
23032 "color-convert": "^2.0.1"
23033 }
23034 },
23035 "chalk": {
23036 "version": "4.1.2",
23037 "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
23038 "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
23039 "requires": {
23040 "ansi-styles": "^4.1.0",
23041 "supports-color": "^7.1.0"
23042 }
23043 },
23044 "color-convert": {
23045 "version": "2.0.1",
23046 "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
23047 "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
23048 "requires": {
23049 "color-name": "~1.1.4"
23050 }
23051 },
23052 "color-name": {
23053 "version": "1.1.4",
23054 "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
23055 "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
23056 },
23057 "has-flag": {
23058 "version": "4.0.0",
23059 "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
23060 "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
23061 },
23062 "supports-color": {
23063 "version": "7.2.0",
23064 "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
23065 "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
23066 "requires": {
23067 "has-flag": "^4.0.0"
23068 }
23069 }
23070 }
23071 },
23072 "babel-loader": {
23073 "version": "8.3.0",
23074 "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.3.0.tgz",
23075 "integrity": "sha512-H8SvsMF+m9t15HNLMipppzkC+Y2Yq+v3SonZyU70RBL/h1gxPkH08Ot8pEE9Z4Kd+czyWJClmFS8qzIP9OZ04Q==",
23076 "requires": {
23077 "find-cache-dir": "^3.3.1",
23078 "loader-utils": "^2.0.0",
23079 "make-dir": "^3.1.0",
23080 "schema-utils": "^2.6.5"
23081 },
23082 "dependencies": {
23083 "schema-utils": {
23084 "version": "2.7.1",
23085 "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz",
23086 "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==",
23087 "requires": {
23088 "@types/json-schema": "^7.0.5",
23089 "ajv": "^6.12.4",
23090 "ajv-keywords": "^3.5.2"
23091 }
23092 }
23093 }
23094 },
23095 "babel-plugin-istanbul": {
23096 "version": "6.1.1",
23097 "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz",
23098 "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==",
23099 "requires": {
23100 "@babel/helper-plugin-utils": "^7.0.0",
23101 "@istanbuljs/load-nyc-config": "^1.0.0",
23102 "@istanbuljs/schema": "^0.1.2",
23103 "istanbul-lib-instrument": "^5.0.4",
23104 "test-exclude": "^6.0.0"
23105 }
23106 },
23107 "babel-plugin-jest-hoist": {
23108 "version": "27.5.1",
23109 "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-27.5.1.tgz",
23110 "integrity": "sha512-50wCwD5EMNW4aRpOwtqzyZHIewTYNxLA4nhB+09d8BIssfNfzBRhkBIHiaPv1Si226TQSvp8gxAJm2iY2qs2hQ==",
23111 "requires": {
23112 "@babel/template": "^7.3.3",
23113 "@babel/types": "^7.3.3",
23114 "@types/babel__core": "^7.0.0",
23115 "@types/babel__traverse": "^7.0.6"
23116 }
23117 },
23118 "babel-plugin-macros": {
23119 "version": "3.1.0",
23120 "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz",
23121 "integrity": "sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==",
23122 "requires": {
23123 "@babel/runtime": "^7.12.5",
23124 "cosmiconfig": "^7.0.0",
23125 "resolve": "^1.19.0"
23126 }
23127 },
23128 "babel-plugin-named-asset-import": {
23129 "version": "0.3.8",
23130 "resolved": "https://registry.npmjs.org/babel-plugin-named-asset-import/-/babel-plugin-named-asset-import-0.3.8.tgz",
23131 "integrity": "sha512-WXiAc++qo7XcJ1ZnTYGtLxmBCVbddAml3CEXgWaBzNzLNoxtQ8AiGEFDMOhot9XjTCQbvP5E77Fj9Gk924f00Q==",
23132 "requires": {}
23133 },
23134 "babel-plugin-polyfill-corejs2": {
23135 "version": "0.4.11",
23136 "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.11.tgz",
23137 "integrity": "sha512-sMEJ27L0gRHShOh5G54uAAPaiCOygY/5ratXuiyb2G46FmlSpc9eFCzYVyDiPxfNbwzA7mYahmjQc5q+CZQ09Q==",
23138 "requires": {
23139 "@babel/compat-data": "^7.22.6",
23140 "@babel/helper-define-polyfill-provider": "^0.6.2",
23141 "semver": "^6.3.1"
23142 },
23143 "dependencies": {
23144 "semver": {
23145 "version": "6.3.1",
23146 "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
23147 "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="
23148 }
23149 }
23150 },
23151 "babel-plugin-polyfill-corejs3": {
23152 "version": "0.10.4",
23153 "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.10.4.tgz",
23154 "integrity": "sha512-25J6I8NGfa5YkCDogHRID3fVCadIR8/pGl1/spvCkzb6lVn6SR3ojpx9nOn9iEBcUsjY24AmdKm5khcfKdylcg==",
23155 "requires": {
23156 "@babel/helper-define-polyfill-provider": "^0.6.1",
23157 "core-js-compat": "^3.36.1"
23158 }
23159 },
23160 "babel-plugin-polyfill-regenerator": {
23161 "version": "0.6.2",
23162 "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.2.tgz",
23163 "integrity": "sha512-2R25rQZWP63nGwaAswvDazbPXfrM3HwVoBXK6HcqeKrSrL/JqcC/rDcf95l4r7LXLyxDXc8uQDa064GubtCABg==",
23164 "requires": {
23165 "@babel/helper-define-polyfill-provider": "^0.6.2"
23166 }
23167 },
23168 "babel-plugin-transform-react-remove-prop-types": {
23169 "version": "0.4.24",
23170 "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-remove-prop-types/-/babel-plugin-transform-react-remove-prop-types-0.4.24.tgz",
23171 "integrity": "sha512-eqj0hVcJUR57/Ug2zE1Yswsw4LhuqqHhD+8v120T1cl3kjg76QwtyBrdIk4WVwK+lAhBJVYCd/v+4nc4y+8JsA=="
23172 },
23173 "babel-preset-current-node-syntax": {
23174 "version": "1.0.1",
23175 "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz",
23176 "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==",
23177 "requires": {
23178 "@babel/plugin-syntax-async-generators": "^7.8.4",
23179 "@babel/plugin-syntax-bigint": "^7.8.3",
23180 "@babel/plugin-syntax-class-properties": "^7.8.3",
23181 "@babel/plugin-syntax-import-meta": "^7.8.3",
23182 "@babel/plugin-syntax-json-strings": "^7.8.3",
23183 "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3",
23184 "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3",
23185 "@babel/plugin-syntax-numeric-separator": "^7.8.3",
23186 "@babel/plugin-syntax-object-rest-spread": "^7.8.3",
23187 "@babel/plugin-syntax-optional-catch-binding": "^7.8.3",
23188 "@babel/plugin-syntax-optional-chaining": "^7.8.3",
23189 "@babel/plugin-syntax-top-level-await": "^7.8.3"
23190 }
23191 },
23192 "babel-preset-jest": {
23193 "version": "27.5.1",
23194 "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-27.5.1.tgz",
23195 "integrity": "sha512-Nptf2FzlPCWYuJg41HBqXVT8ym6bXOevuCTbhxlUpjwtysGaIWFvDEjp4y+G7fl13FgOdjs7P/DmErqH7da0Ag==",
23196 "requires": {
23197 "babel-plugin-jest-hoist": "^27.5.1",
23198 "babel-preset-current-node-syntax": "^1.0.0"
23199 }
23200 },
23201 "babel-preset-react-app": {
23202 "version": "10.0.1",
23203 "resolved": "https://registry.npmjs.org/babel-preset-react-app/-/babel-preset-react-app-10.0.1.tgz",
23204 "integrity": "sha512-b0D9IZ1WhhCWkrTXyFuIIgqGzSkRIH5D5AmB0bXbzYAB1OBAwHcUeyWW2LorutLWF5btNo/N7r/cIdmvvKJlYg==",
23205 "requires": {
23206 "@babel/core": "^7.16.0",
23207 "@babel/plugin-proposal-class-properties": "^7.16.0",
23208 "@babel/plugin-proposal-decorators": "^7.16.4",
23209 "@babel/plugin-proposal-nullish-coalescing-operator": "^7.16.0",
23210 "@babel/plugin-proposal-numeric-separator": "^7.16.0",
23211 "@babel/plugin-proposal-optional-chaining": "^7.16.0",
23212 "@babel/plugin-proposal-private-methods": "^7.16.0",
23213 "@babel/plugin-transform-flow-strip-types": "^7.16.0",
23214 "@babel/plugin-transform-react-display-name": "^7.16.0",
23215 "@babel/plugin-transform-runtime": "^7.16.4",
23216 "@babel/preset-env": "^7.16.4",
23217 "@babel/preset-react": "^7.16.0",
23218 "@babel/preset-typescript": "^7.16.0",
23219 "@babel/runtime": "^7.16.3",
23220 "babel-plugin-macros": "^3.1.0",
23221 "babel-plugin-transform-react-remove-prop-types": "^0.4.24"
23222 }
23223 },
23224 "bail": {
23225 "version": "2.0.2",
23226 "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.2.tgz",
23227 "integrity": "sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw=="
23228 },
23229 "balanced-match": {
23230 "version": "1.0.2",
23231 "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
23232 "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="
23233 },
23234 "batch": {
23235 "version": "0.6.1",
23236 "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz",
23237 "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw=="
23238 },
23239 "bfj": {
23240 "version": "7.1.0",
23241 "resolved": "https://registry.npmjs.org/bfj/-/bfj-7.1.0.tgz",
23242 "integrity": "sha512-I6MMLkn+anzNdCUp9hMRyui1HaNEUCco50lxbvNS4+EyXg8lN3nJ48PjPWtbH8UVS9CuMoaKE9U2V3l29DaRQw==",
23243 "requires": {
23244 "bluebird": "^3.7.2",
23245 "check-types": "^11.2.3",
23246 "hoopy": "^0.1.4",
23247 "jsonpath": "^1.1.1",
23248 "tryer": "^1.0.1"
23249 }
23250 },
23251 "big.js": {
23252 "version": "5.2.2",
23253 "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz",
23254 "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ=="
23255 },
23256 "binary-extensions": {
23257 "version": "2.3.0",
23258 "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz",
23259 "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw=="
23260 },
23261 "bluebird": {
23262 "version": "3.7.2",
23263 "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz",
23264 "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg=="
23265 },
23266 "body-parser": {
23267 "version": "1.20.2",
23268 "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz",
23269 "integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==",
23270 "requires": {
23271 "bytes": "3.1.2",
23272 "content-type": "~1.0.5",
23273 "debug": "2.6.9",
23274 "depd": "2.0.0",
23275 "destroy": "1.2.0",
23276 "http-errors": "2.0.0",
23277 "iconv-lite": "0.4.24",
23278 "on-finished": "2.4.1",
23279 "qs": "6.11.0",
23280 "raw-body": "2.5.2",
23281 "type-is": "~1.6.18",
23282 "unpipe": "1.0.0"
23283 },
23284 "dependencies": {
23285 "bytes": {
23286 "version": "3.1.2",
23287 "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz",
23288 "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg=="
23289 },
23290 "debug": {
23291 "version": "2.6.9",
23292 "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
23293 "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
23294 "requires": {
23295 "ms": "2.0.0"
23296 }
23297 },
23298 "iconv-lite": {
23299 "version": "0.4.24",
23300 "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
23301 "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
23302 "requires": {
23303 "safer-buffer": ">= 2.1.2 < 3"
23304 }
23305 },
23306 "ms": {
23307 "version": "2.0.0",
23308 "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
23309 "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
23310 }
23311 }
23312 },
23313 "bonjour-service": {
23314 "version": "1.2.1",
23315 "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.2.1.tgz",
23316 "integrity": "sha512-oSzCS2zV14bh2kji6vNe7vrpJYCHGvcZnlffFQ1MEoX/WOeQ/teD8SYWKR942OI3INjq8OMNJlbPK5LLLUxFDw==",
23317 "requires": {
23318 "fast-deep-equal": "^3.1.3",
23319 "multicast-dns": "^7.2.5"
23320 }
23321 },
23322 "boolbase": {
23323 "version": "1.0.0",
23324 "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz",
23325 "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww=="
23326 },
23327 "brace-expansion": {
23328 "version": "1.1.11",
23329 "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
23330 "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
23331 "requires": {
23332 "balanced-match": "^1.0.0",
23333 "concat-map": "0.0.1"
23334 }
23335 },
23336 "braces": {
23337 "version": "3.0.3",
23338 "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz",
23339 "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==",
23340 "requires": {
23341 "fill-range": "^7.1.1"
23342 }
23343 },
23344 "browser-process-hrtime": {
23345 "version": "1.0.0",
23346 "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz",
23347 "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow=="
23348 },
23349 "browserslist": {
23350 "version": "4.23.2",
23351 "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.2.tgz",
23352 "integrity": "sha512-qkqSyistMYdxAcw+CzbZwlBy8AGmS/eEWs+sEV5TnLRGDOL+C5M2EnH6tlZyg0YoAxGJAFKh61En9BR941GnHA==",
23353 "requires": {
23354 "caniuse-lite": "^1.0.30001640",
23355 "electron-to-chromium": "^1.4.820",
23356 "node-releases": "^2.0.14",
23357 "update-browserslist-db": "^1.1.0"
23358 }
23359 },
23360 "bser": {
23361 "version": "2.1.1",
23362 "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz",
23363 "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==",
23364 "requires": {
23365 "node-int64": "^0.4.0"
23366 }
23367 },
23368 "buffer-from": {
23369 "version": "1.1.2",
23370 "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz",
23371 "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ=="
23372 },
23373 "builtin-modules": {
23374 "version": "3.3.0",
23375 "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz",
23376 "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw=="
23377 },
23378 "bytes": {
23379 "version": "3.0.0",
23380 "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz",
23381 "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw=="
23382 },
23383 "call-bind": {
23384 "version": "1.0.7",
23385 "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz",
23386 "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==",
23387 "requires": {
23388 "es-define-property": "^1.0.0",
23389 "es-errors": "^1.3.0",
23390 "function-bind": "^1.1.2",
23391 "get-intrinsic": "^1.2.4",
23392 "set-function-length": "^1.2.1"
23393 }
23394 },
23395 "callsites": {
23396 "version": "3.1.0",
23397 "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
23398 "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ=="
23399 },
23400 "camel-case": {
23401 "version": "4.1.2",
23402 "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz",
23403 "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==",
23404 "requires": {
23405 "pascal-case": "^3.1.2",
23406 "tslib": "^2.0.3"
23407 }
23408 },
23409 "camelcase": {
23410 "version": "6.3.0",
23411 "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz",
23412 "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA=="
23413 },
23414 "camelcase-css": {
23415 "version": "2.0.1",
23416 "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz",
23417 "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA=="
23418 },
23419 "caniuse-api": {
23420 "version": "3.0.0",
23421 "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz",
23422 "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==",
23423 "requires": {
23424 "browserslist": "^4.0.0",
23425 "caniuse-lite": "^1.0.0",
23426 "lodash.memoize": "^4.1.2",
23427 "lodash.uniq": "^4.5.0"
23428 }
23429 },
23430 "caniuse-lite": {
23431 "version": "1.0.30001641",
23432 "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001641.tgz",
23433 "integrity": "sha512-Phv5thgl67bHYo1TtMY/MurjkHhV4EDaCosezRXgZ8jzA/Ub+wjxAvbGvjoFENStinwi5kCyOYV3mi5tOGykwA=="
23434 },
23435 "case-sensitive-paths-webpack-plugin": {
23436 "version": "2.4.0",
23437 "resolved": "https://registry.npmjs.org/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.4.0.tgz",
23438 "integrity": "sha512-roIFONhcxog0JSSWbvVAh3OocukmSgpqOH6YpMkCvav/ySIV3JKg4Dc8vYtQjYi/UxpNE36r/9v+VqTQqgkYmw=="
23439 },
23440 "chalk": {
23441 "version": "2.4.2",
23442 "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
23443 "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
23444 "requires": {
23445 "ansi-styles": "^3.2.1",
23446 "escape-string-regexp": "^1.0.5",
23447 "supports-color": "^5.3.0"
23448 }
23449 },
23450 "char-regex": {
23451 "version": "1.0.2",
23452 "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz",
23453 "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw=="
23454 },
23455 "character-entities": {
23456 "version": "2.0.2",
23457 "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-2.0.2.tgz",
23458 "integrity": "sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ=="
23459 },
23460 "check-types": {
23461 "version": "11.2.3",
23462 "resolved": "https://registry.npmjs.org/check-types/-/check-types-11.2.3.tgz",
23463 "integrity": "sha512-+67P1GkJRaxQD6PKK0Et9DhwQB+vGg3PM5+aavopCpZT1lj9jeqfvpgTLAWErNj8qApkkmXlu/Ug74kmhagkXg=="
23464 },
23465 "chokidar": {
23466 "version": "3.6.0",
23467 "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz",
23468 "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==",
23469 "requires": {
23470 "anymatch": "~3.1.2",
23471 "braces": "~3.0.2",
23472 "fsevents": "~2.3.2",
23473 "glob-parent": "~5.1.2",
23474 "is-binary-path": "~2.1.0",
23475 "is-glob": "~4.0.1",
23476 "normalize-path": "~3.0.0",
23477 "readdirp": "~3.6.0"
23478 },
23479 "dependencies": {
23480 "glob-parent": {
23481 "version": "5.1.2",
23482 "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
23483 "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
23484 "requires": {
23485 "is-glob": "^4.0.1"
23486 }
23487 }
23488 }
23489 },
23490 "chrome-trace-event": {
23491 "version": "1.0.4",
23492 "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz",
23493 "integrity": "sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ=="
23494 },
23495 "ci-info": {
23496 "version": "3.8.0",
23497 "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.8.0.tgz",
23498 "integrity": "sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw=="
23499 },
23500 "cjs-module-lexer": {
23501 "version": "1.3.1",
23502 "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.3.1.tgz",
23503 "integrity": "sha512-a3KdPAANPbNE4ZUv9h6LckSl9zLsYOP4MBmhIPkRaeyybt+r4UghLvq+xw/YwUcC1gqylCkL4rdVs3Lwupjm4Q=="
23504 },
23505 "clean-css": {
23506 "version": "5.3.3",
23507 "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.3.3.tgz",
23508 "integrity": "sha512-D5J+kHaVb/wKSFcyyV75uCn8fiY4sV38XJoe4CUyGQ+mOU/fMVYUdH1hJC+CJQ5uY3EnW27SbJYS4X8BiLrAFg==",
23509 "requires": {
23510 "source-map": "~0.6.0"
23511 },
23512 "dependencies": {
23513 "source-map": {
23514 "version": "0.6.1",
23515 "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
23516 "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
23517 }
23518 }
23519 },
23520 "cliui": {
23521 "version": "7.0.4",
23522 "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz",
23523 "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==",
23524 "requires": {
23525 "string-width": "^4.2.0",
23526 "strip-ansi": "^6.0.0",
23527 "wrap-ansi": "^7.0.0"
23528 }
23529 },
23530 "co": {
23531 "version": "4.6.0",
23532 "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz",
23533 "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ=="
23534 },
23535 "coa": {
23536 "version": "2.0.2",
23537 "resolved": "https://registry.npmjs.org/coa/-/coa-2.0.2.tgz",
23538 "integrity": "sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA==",
23539 "requires": {
23540 "@types/q": "^1.5.1",
23541 "chalk": "^2.4.1",
23542 "q": "^1.1.2"
23543 }
23544 },
23545 "collect-v8-coverage": {
23546 "version": "1.0.2",
23547 "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz",
23548 "integrity": "sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q=="
23549 },
23550 "color-convert": {
23551 "version": "1.9.3",
23552 "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
23553 "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
23554 "requires": {
23555 "color-name": "1.1.3"
23556 }
23557 },
23558 "color-name": {
23559 "version": "1.1.3",
23560 "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
23561 "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw=="
23562 },
23563 "colord": {
23564 "version": "2.9.3",
23565 "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz",
23566 "integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw=="
23567 },
23568 "colorette": {
23569 "version": "2.0.20",
23570 "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz",
23571 "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w=="
23572 },
23573 "combined-stream": {
23574 "version": "1.0.8",
23575 "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
23576 "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
23577 "requires": {
23578 "delayed-stream": "~1.0.0"
23579 }
23580 },
23581 "comma-separated-tokens": {
23582 "version": "2.0.3",
23583 "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz",
23584 "integrity": "sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg=="
23585 },
23586 "commander": {
23587 "version": "8.3.0",
23588 "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz",
23589 "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww=="
23590 },
23591 "common-tags": {
23592 "version": "1.8.2",
23593 "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.8.2.tgz",
23594 "integrity": "sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA=="
23595 },
23596 "commondir": {
23597 "version": "1.0.1",
23598 "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz",
23599 "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg=="
23600 },
23601 "compressible": {
23602 "version": "2.0.18",
23603 "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz",
23604 "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==",
23605 "requires": {
23606 "mime-db": ">= 1.43.0 < 2"
23607 }
23608 },
23609 "compression": {
23610 "version": "1.7.4",
23611 "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz",
23612 "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==",
23613 "requires": {
23614 "accepts": "~1.3.5",
23615 "bytes": "3.0.0",
23616 "compressible": "~2.0.16",
23617 "debug": "2.6.9",
23618 "on-headers": "~1.0.2",
23619 "safe-buffer": "5.1.2",
23620 "vary": "~1.1.2"
23621 },
23622 "dependencies": {
23623 "debug": {
23624 "version": "2.6.9",
23625 "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
23626 "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
23627 "requires": {
23628 "ms": "2.0.0"
23629 }
23630 },
23631 "ms": {
23632 "version": "2.0.0",
23633 "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
23634 "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
23635 },
23636 "safe-buffer": {
23637 "version": "5.1.2",
23638 "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
23639 "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
23640 }
23641 }
23642 },
23643 "concat-map": {
23644 "version": "0.0.1",
23645 "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
23646 "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg=="
23647 },
23648 "confusing-browser-globals": {
23649 "version": "1.0.11",
23650 "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz",
23651 "integrity": "sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA=="
23652 },
23653 "connect-history-api-fallback": {
23654 "version": "2.0.0",
23655 "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz",
23656 "integrity": "sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA=="
23657 },
23658 "content-disposition": {
23659 "version": "0.5.4",
23660 "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz",
23661 "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==",
23662 "requires": {
23663 "safe-buffer": "5.2.1"
23664 }
23665 },
23666 "content-type": {
23667 "version": "1.0.5",
23668 "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz",
23669 "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA=="
23670 },
23671 "convert-source-map": {
23672 "version": "1.9.0",
23673 "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz",
23674 "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A=="
23675 },
23676 "cookie": {
23677 "version": "0.6.0",
23678 "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz",
23679 "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw=="
23680 },
23681 "cookie-signature": {
23682 "version": "1.0.6",
23683 "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
23684 "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ=="
23685 },
23686 "core-js": {
23687 "version": "3.37.1",
23688 "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.37.1.tgz",
23689 "integrity": "sha512-Xn6qmxrQZyB0FFY8E3bgRXei3lWDJHhvI+u0q9TKIYM49G8pAr0FgnnrFRAmsbptZL1yxRADVXn+x5AGsbBfyw=="
23690 },
23691 "core-js-compat": {
23692 "version": "3.37.1",
23693 "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.37.1.tgz",
23694 "integrity": "sha512-9TNiImhKvQqSUkOvk/mMRZzOANTiEVC7WaBNhHcKM7x+/5E1l5NvsysR19zuDQScE8k+kfQXWRN3AtS/eOSHpg==",
23695 "requires": {
23696 "browserslist": "^4.23.0"
23697 }
23698 },
23699 "core-js-pure": {
23700 "version": "3.37.1",
23701 "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.37.1.tgz",
23702 "integrity": "sha512-J/r5JTHSmzTxbiYYrzXg9w1VpqrYt+gexenBE9pugeyhwPZTAEJddyiReJWsLO6uNQ8xJZFbod6XC7KKwatCiA=="
23703 },
23704 "core-util-is": {
23705 "version": "1.0.3",
23706 "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz",
23707 "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ=="
23708 },
23709 "cosmiconfig": {
23710 "version": "7.1.0",
23711 "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz",
23712 "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==",
23713 "requires": {
23714 "@types/parse-json": "^4.0.0",
23715 "import-fresh": "^3.2.1",
23716 "parse-json": "^5.0.0",
23717 "path-type": "^4.0.0",
23718 "yaml": "^1.10.0"
23719 }
23720 },
23721 "cross-spawn": {
23722 "version": "7.0.3",
23723 "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
23724 "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
23725 "requires": {
23726 "path-key": "^3.1.0",
23727 "shebang-command": "^2.0.0",
23728 "which": "^2.0.1"
23729 }
23730 },
23731 "crypto-random-string": {
23732 "version": "2.0.0",
23733 "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz",
23734 "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA=="
23735 },
23736 "css-blank-pseudo": {
23737 "version": "3.0.3",
23738 "resolved": "https://registry.npmjs.org/css-blank-pseudo/-/css-blank-pseudo-3.0.3.tgz",
23739 "integrity": "sha512-VS90XWtsHGqoM0t4KpH053c4ehxZ2E6HtGI7x68YFV0pTo/QmkV/YFA+NnlvK8guxZVNWGQhVNJGC39Q8XF4OQ==",
23740 "requires": {
23741 "postcss-selector-parser": "^6.0.9"
23742 }
23743 },
23744 "css-declaration-sorter": {
23745 "version": "6.4.1",
23746 "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.4.1.tgz",
23747 "integrity": "sha512-rtdthzxKuyq6IzqX6jEcIzQF/YqccluefyCYheovBOLhFT/drQA9zj/UbRAa9J7C0o6EG6u3E6g+vKkay7/k3g==",
23748 "requires": {}
23749 },
23750 "css-has-pseudo": {
23751 "version": "3.0.4",
23752 "resolved": "https://registry.npmjs.org/css-has-pseudo/-/css-has-pseudo-3.0.4.tgz",
23753 "integrity": "sha512-Vse0xpR1K9MNlp2j5w1pgWIJtm1a8qS0JwS9goFYcImjlHEmywP9VUF05aGBXzGpDJF86QXk4L0ypBmwPhGArw==",
23754 "requires": {
23755 "postcss-selector-parser": "^6.0.9"
23756 }
23757 },
23758 "css-loader": {
23759 "version": "6.11.0",
23760 "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.11.0.tgz",
23761 "integrity": "sha512-CTJ+AEQJjq5NzLga5pE39qdiSV56F8ywCIsqNIRF0r7BDgWsN25aazToqAFg7ZrtA/U016xudB3ffgweORxX7g==",
23762 "requires": {
23763 "icss-utils": "^5.1.0",
23764 "postcss": "^8.4.33",
23765 "postcss-modules-extract-imports": "^3.1.0",
23766 "postcss-modules-local-by-default": "^4.0.5",
23767 "postcss-modules-scope": "^3.2.0",
23768 "postcss-modules-values": "^4.0.0",
23769 "postcss-value-parser": "^4.2.0",
23770 "semver": "^7.5.4"
23771 }
23772 },
23773 "css-minimizer-webpack-plugin": {
23774 "version": "3.4.1",
23775 "resolved": "https://registry.npmjs.org/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-3.4.1.tgz",
23776 "integrity": "sha512-1u6D71zeIfgngN2XNRJefc/hY7Ybsxd74Jm4qngIXyUEk7fss3VUzuHxLAq/R8NAba4QU9OUSaMZlbpRc7bM4Q==",
23777 "requires": {
23778 "cssnano": "^5.0.6",
23779 "jest-worker": "^27.0.2",
23780 "postcss": "^8.3.5",
23781 "schema-utils": "^4.0.0",
23782 "serialize-javascript": "^6.0.0",
23783 "source-map": "^0.6.1"
23784 },
23785 "dependencies": {
23786 "source-map": {
23787 "version": "0.6.1",
23788 "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
23789 "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
23790 }
23791 }
23792 },
23793 "css-prefers-color-scheme": {
23794 "version": "6.0.3",
23795 "resolved": "https://registry.npmjs.org/css-prefers-color-scheme/-/css-prefers-color-scheme-6.0.3.tgz",
23796 "integrity": "sha512-4BqMbZksRkJQx2zAjrokiGMd07RqOa2IxIrrN10lyBe9xhn9DEvjUK79J6jkeiv9D9hQFXKb6g1jwU62jziJZA==",
23797 "requires": {}
23798 },
23799 "css-select": {
23800 "version": "4.3.0",
23801 "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz",
23802 "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==",
23803 "requires": {
23804 "boolbase": "^1.0.0",
23805 "css-what": "^6.0.1",
23806 "domhandler": "^4.3.1",
23807 "domutils": "^2.8.0",
23808 "nth-check": "^2.0.1"
23809 }
23810 },
23811 "css-select-base-adapter": {
23812 "version": "0.1.1",
23813 "resolved": "https://registry.npmjs.org/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz",
23814 "integrity": "sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w=="
23815 },
23816 "css-tree": {
23817 "version": "1.0.0-alpha.37",
23818 "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.37.tgz",
23819 "integrity": "sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg==",
23820 "requires": {
23821 "mdn-data": "2.0.4",
23822 "source-map": "^0.6.1"
23823 },
23824 "dependencies": {
23825 "source-map": {
23826 "version": "0.6.1",
23827 "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
23828 "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
23829 }
23830 }
23831 },
23832 "css-what": {
23833 "version": "6.1.0",
23834 "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz",
23835 "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw=="
23836 },
23837 "css.escape": {
23838 "version": "1.5.1",
23839 "resolved": "https://registry.npmjs.org/css.escape/-/css.escape-1.5.1.tgz",
23840 "integrity": "sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg=="
23841 },
23842 "cssdb": {
23843 "version": "7.11.2",
23844 "resolved": "https://registry.npmjs.org/cssdb/-/cssdb-7.11.2.tgz",
23845 "integrity": "sha512-lhQ32TFkc1X4eTefGfYPvgovRSzIMofHkigfH8nWtyRL4XJLsRhJFreRvEgKzept7x1rjBuy3J/MurXLaFxW/A=="
23846 },
23847 "cssesc": {
23848 "version": "3.0.0",
23849 "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz",
23850 "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg=="
23851 },
23852 "cssnano": {
23853 "version": "5.1.15",
23854 "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-5.1.15.tgz",
23855 "integrity": "sha512-j+BKgDcLDQA+eDifLx0EO4XSA56b7uut3BQFH+wbSaSTuGLuiyTa/wbRYthUXX8LC9mLg+WWKe8h+qJuwTAbHw==",
23856 "requires": {
23857 "cssnano-preset-default": "^5.2.14",
23858 "lilconfig": "^2.0.3",
23859 "yaml": "^1.10.2"
23860 }
23861 },
23862 "cssnano-preset-default": {
23863 "version": "5.2.14",
23864 "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.2.14.tgz",
23865 "integrity": "sha512-t0SFesj/ZV2OTylqQVOrFgEh5uanxbO6ZAdeCrNsUQ6fVuXwYTxJPNAGvGTxHbD68ldIJNec7PyYZDBrfDQ+6A==",
23866 "requires": {
23867 "css-declaration-sorter": "^6.3.1",
23868 "cssnano-utils": "^3.1.0",
23869 "postcss-calc": "^8.2.3",
23870 "postcss-colormin": "^5.3.1",
23871 "postcss-convert-values": "^5.1.3",
23872 "postcss-discard-comments": "^5.1.2",
23873 "postcss-discard-duplicates": "^5.1.0",
23874 "postcss-discard-empty": "^5.1.1",
23875 "postcss-discard-overridden": "^5.1.0",
23876 "postcss-merge-longhand": "^5.1.7",
23877 "postcss-merge-rules": "^5.1.4",
23878 "postcss-minify-font-values": "^5.1.0",
23879 "postcss-minify-gradients": "^5.1.1",
23880 "postcss-minify-params": "^5.1.4",
23881 "postcss-minify-selectors": "^5.2.1",
23882 "postcss-normalize-charset": "^5.1.0",
23883 "postcss-normalize-display-values": "^5.1.0",
23884 "postcss-normalize-positions": "^5.1.1",
23885 "postcss-normalize-repeat-style": "^5.1.1",
23886 "postcss-normalize-string": "^5.1.0",
23887 "postcss-normalize-timing-functions": "^5.1.0",
23888 "postcss-normalize-unicode": "^5.1.1",
23889 "postcss-normalize-url": "^5.1.0",
23890 "postcss-normalize-whitespace": "^5.1.1",
23891 "postcss-ordered-values": "^5.1.3",
23892 "postcss-reduce-initial": "^5.1.2",
23893 "postcss-reduce-transforms": "^5.1.0",
23894 "postcss-svgo": "^5.1.0",
23895 "postcss-unique-selectors": "^5.1.1"
23896 }
23897 },
23898 "cssnano-utils": {
23899 "version": "3.1.0",
23900 "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-3.1.0.tgz",
23901 "integrity": "sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==",
23902 "requires": {}
23903 },
23904 "csso": {
23905 "version": "4.2.0",
23906 "resolved": "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz",
23907 "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==",
23908 "requires": {
23909 "css-tree": "^1.1.2"
23910 },
23911 "dependencies": {
23912 "css-tree": {
23913 "version": "1.1.3",
23914 "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz",
23915 "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==",
23916 "requires": {
23917 "mdn-data": "2.0.14",
23918 "source-map": "^0.6.1"
23919 }
23920 },
23921 "mdn-data": {
23922 "version": "2.0.14",
23923 "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz",
23924 "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow=="
23925 },
23926 "source-map": {
23927 "version": "0.6.1",
23928 "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
23929 "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
23930 }
23931 }
23932 },
23933 "cssom": {
23934 "version": "0.4.4",
23935 "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz",
23936 "integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw=="
23937 },
23938 "cssstyle": {
23939 "version": "2.3.0",
23940 "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz",
23941 "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==",
23942 "requires": {
23943 "cssom": "~0.3.6"
23944 },
23945 "dependencies": {
23946 "cssom": {
23947 "version": "0.3.8",
23948 "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz",
23949 "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg=="
23950 }
23951 }
23952 },
23953 "csstype": {
23954 "version": "3.1.1",
23955 "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.1.tgz",
23956 "integrity": "sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw=="
23957 },
23958 "damerau-levenshtein": {
23959 "version": "1.0.8",
23960 "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz",
23961 "integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA=="
23962 },
23963 "data-urls": {
23964 "version": "2.0.0",
23965 "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz",
23966 "integrity": "sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==",
23967 "requires": {
23968 "abab": "^2.0.3",
23969 "whatwg-mimetype": "^2.3.0",
23970 "whatwg-url": "^8.0.0"
23971 }
23972 },
23973 "data-view-buffer": {
23974 "version": "1.0.1",
23975 "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.1.tgz",
23976 "integrity": "sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==",
23977 "requires": {
23978 "call-bind": "^1.0.6",
23979 "es-errors": "^1.3.0",
23980 "is-data-view": "^1.0.1"
23981 }
23982 },
23983 "data-view-byte-length": {
23984 "version": "1.0.1",
23985 "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz",
23986 "integrity": "sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==",
23987 "requires": {
23988 "call-bind": "^1.0.7",
23989 "es-errors": "^1.3.0",
23990 "is-data-view": "^1.0.1"
23991 }
23992 },
23993 "data-view-byte-offset": {
23994 "version": "1.0.0",
23995 "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz",
23996 "integrity": "sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==",
23997 "requires": {
23998 "call-bind": "^1.0.6",
23999 "es-errors": "^1.3.0",
24000 "is-data-view": "^1.0.1"
24001 }
24002 },
24003 "debug": {
24004 "version": "4.3.4",
24005 "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
24006 "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
24007 "requires": {
24008 "ms": "2.1.2"
24009 }
24010 },
24011 "decimal.js": {
24012 "version": "10.4.3",
24013 "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.3.tgz",
24014 "integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA=="
24015 },
24016 "decode-named-character-reference": {
24017 "version": "1.0.2",
24018 "resolved": "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.0.2.tgz",
24019 "integrity": "sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==",
24020 "requires": {
24021 "character-entities": "^2.0.0"
24022 }
24023 },
24024 "dedent": {
24025 "version": "0.7.0",
24026 "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz",
24027 "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA=="
24028 },
24029 "deep-equal": {
24030 "version": "2.2.0",
24031 "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-2.2.0.tgz",
24032 "integrity": "sha512-RdpzE0Hv4lhowpIUKKMJfeH6C1pXdtT1/it80ubgWqwI3qpuxUBpC1S4hnHg+zjnuOoDkzUtUCEEkG+XG5l3Mw==",
24033 "requires": {
24034 "call-bind": "^1.0.2",
24035 "es-get-iterator": "^1.1.2",
24036 "get-intrinsic": "^1.1.3",
24037 "is-arguments": "^1.1.1",
24038 "is-array-buffer": "^3.0.1",
24039 "is-date-object": "^1.0.5",
24040 "is-regex": "^1.1.4",
24041 "is-shared-array-buffer": "^1.0.2",
24042 "isarray": "^2.0.5",
24043 "object-is": "^1.1.5",
24044 "object-keys": "^1.1.1",
24045 "object.assign": "^4.1.4",
24046 "regexp.prototype.flags": "^1.4.3",
24047 "side-channel": "^1.0.4",
24048 "which-boxed-primitive": "^1.0.2",
24049 "which-collection": "^1.0.1",
24050 "which-typed-array": "^1.1.9"
24051 }
24052 },
24053 "deep-is": {
24054 "version": "0.1.4",
24055 "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz",
24056 "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ=="
24057 },
24058 "deepmerge": {
24059 "version": "4.3.1",
24060 "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz",
24061 "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A=="
24062 },
24063 "default-gateway": {
24064 "version": "6.0.3",
24065 "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-6.0.3.tgz",
24066 "integrity": "sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==",
24067 "requires": {
24068 "execa": "^5.0.0"
24069 }
24070 },
24071 "define-data-property": {
24072 "version": "1.1.4",
24073 "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz",
24074 "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==",
24075 "requires": {
24076 "es-define-property": "^1.0.0",
24077 "es-errors": "^1.3.0",
24078 "gopd": "^1.0.1"
24079 }
24080 },
24081 "define-lazy-prop": {
24082 "version": "2.0.0",
24083 "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz",
24084 "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og=="
24085 },
24086 "define-properties": {
24087 "version": "1.2.1",
24088 "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz",
24089 "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==",
24090 "requires": {
24091 "define-data-property": "^1.0.1",
24092 "has-property-descriptors": "^1.0.0",
24093 "object-keys": "^1.1.1"
24094 }
24095 },
24096 "delayed-stream": {
24097 "version": "1.0.0",
24098 "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
24099 "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ=="
24100 },
24101 "depd": {
24102 "version": "2.0.0",
24103 "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz",
24104 "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw=="
24105 },
24106 "dequal": {
24107 "version": "2.0.3",
24108 "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz",
24109 "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA=="
24110 },
24111 "destroy": {
24112 "version": "1.2.0",
24113 "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz",
24114 "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg=="
24115 },
24116 "detect-newline": {
24117 "version": "3.1.0",
24118 "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz",
24119 "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA=="
24120 },
24121 "detect-node": {
24122 "version": "2.1.0",
24123 "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz",
24124 "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g=="
24125 },
24126 "detect-port-alt": {
24127 "version": "1.1.6",
24128 "resolved": "https://registry.npmjs.org/detect-port-alt/-/detect-port-alt-1.1.6.tgz",
24129 "integrity": "sha512-5tQykt+LqfJFBEYaDITx7S7cR7mJ/zQmLXZ2qt5w04ainYZw6tBf9dBunMjVeVOdYVRUzUOE4HkY5J7+uttb5Q==",
24130 "requires": {
24131 "address": "^1.0.1",
24132 "debug": "^2.6.0"
24133 },
24134 "dependencies": {
24135 "debug": {
24136 "version": "2.6.9",
24137 "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
24138 "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
24139 "requires": {
24140 "ms": "2.0.0"
24141 }
24142 },
24143 "ms": {
24144 "version": "2.0.0",
24145 "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
24146 "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
24147 }
24148 }
24149 },
24150 "didyoumean": {
24151 "version": "1.2.2",
24152 "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz",
24153 "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw=="
24154 },
24155 "diff": {
24156 "version": "5.1.0",
24157 "resolved": "https://registry.npmjs.org/diff/-/diff-5.1.0.tgz",
24158 "integrity": "sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw=="
24159 },
24160 "diff-sequences": {
24161 "version": "27.5.1",
24162 "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.5.1.tgz",
24163 "integrity": "sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ=="
24164 },
24165 "dir-glob": {
24166 "version": "3.0.1",
24167 "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz",
24168 "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==",
24169 "requires": {
24170 "path-type": "^4.0.0"
24171 }
24172 },
24173 "dlv": {
24174 "version": "1.1.3",
24175 "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz",
24176 "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA=="
24177 },
24178 "dns-packet": {
24179 "version": "5.6.1",
24180 "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.6.1.tgz",
24181 "integrity": "sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==",
24182 "requires": {
24183 "@leichtgewicht/ip-codec": "^2.0.1"
24184 }
24185 },
24186 "doctrine": {
24187 "version": "3.0.0",
24188 "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz",
24189 "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==",
24190 "requires": {
24191 "esutils": "^2.0.2"
24192 }
24193 },
24194 "dom-accessibility-api": {
24195 "version": "0.5.16",
24196 "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.5.16.tgz",
24197 "integrity": "sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg=="
24198 },
24199 "dom-converter": {
24200 "version": "0.2.0",
24201 "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz",
24202 "integrity": "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==",
24203 "requires": {
24204 "utila": "~0.4"
24205 }
24206 },
24207 "dom-serializer": {
24208 "version": "1.4.1",
24209 "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz",
24210 "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==",
24211 "requires": {
24212 "domelementtype": "^2.0.1",
24213 "domhandler": "^4.2.0",
24214 "entities": "^2.0.0"
24215 }
24216 },
24217 "domelementtype": {
24218 "version": "2.3.0",
24219 "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz",
24220 "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw=="
24221 },
24222 "domexception": {
24223 "version": "2.0.1",
24224 "resolved": "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz",
24225 "integrity": "sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==",
24226 "requires": {
24227 "webidl-conversions": "^5.0.0"
24228 },
24229 "dependencies": {
24230 "webidl-conversions": {
24231 "version": "5.0.0",
24232 "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz",
24233 "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA=="
24234 }
24235 }
24236 },
24237 "domhandler": {
24238 "version": "4.3.1",
24239 "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz",
24240 "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==",
24241 "requires": {
24242 "domelementtype": "^2.2.0"
24243 }
24244 },
24245 "domutils": {
24246 "version": "2.8.0",
24247 "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz",
24248 "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==",
24249 "requires": {
24250 "dom-serializer": "^1.0.1",
24251 "domelementtype": "^2.2.0",
24252 "domhandler": "^4.2.0"
24253 }
24254 },
24255 "dot-case": {
24256 "version": "3.0.4",
24257 "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz",
24258 "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==",
24259 "requires": {
24260 "no-case": "^3.0.4",
24261 "tslib": "^2.0.3"
24262 }
24263 },
24264 "dotenv": {
24265 "version": "10.0.0",
24266 "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-10.0.0.tgz",
24267 "integrity": "sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q=="
24268 },
24269 "dotenv-expand": {
24270 "version": "5.1.0",
24271 "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-5.1.0.tgz",
24272 "integrity": "sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA=="
24273 },
24274 "duplexer": {
24275 "version": "0.1.2",
24276 "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz",
24277 "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg=="
24278 },
24279 "eastasianwidth": {
24280 "version": "0.2.0",
24281 "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz",
24282 "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA=="
24283 },
24284 "ee-first": {
24285 "version": "1.1.1",
24286 "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
24287 "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow=="
24288 },
24289 "ejs": {
24290 "version": "3.1.10",
24291 "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.10.tgz",
24292 "integrity": "sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==",
24293 "requires": {
24294 "jake": "^10.8.5"
24295 }
24296 },
24297 "electron-to-chromium": {
24298 "version": "1.4.825",
24299 "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.825.tgz",
24300 "integrity": "sha512-OCcF+LwdgFGcsYPYC5keEEFC2XT0gBhrYbeGzHCx7i9qRFbzO/AqTmc/C/1xNhJj+JA7rzlN7mpBuStshh96Cg=="
24301 },
24302 "emittery": {
24303 "version": "0.8.1",
24304 "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.8.1.tgz",
24305 "integrity": "sha512-uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg=="
24306 },
24307 "emoji-regex": {
24308 "version": "9.2.2",
24309 "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz",
24310 "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg=="
24311 },
24312 "emojis-list": {
24313 "version": "3.0.0",
24314 "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz",
24315 "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q=="
24316 },
24317 "encodeurl": {
24318 "version": "1.0.2",
24319 "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
24320 "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w=="
24321 },
24322 "enhanced-resolve": {
24323 "version": "5.17.0",
24324 "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.17.0.tgz",
24325 "integrity": "sha512-dwDPwZL0dmye8Txp2gzFmA6sxALaSvdRDjPH0viLcKrtlOL3tw62nWWweVD1SdILDTJrbrL6tdWVN58Wo6U3eA==",
24326 "requires": {
24327 "graceful-fs": "^4.2.4",
24328 "tapable": "^2.2.0"
24329 }
24330 },
24331 "entities": {
24332 "version": "2.2.0",
24333 "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz",
24334 "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A=="
24335 },
24336 "error-ex": {
24337 "version": "1.3.2",
24338 "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
24339 "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==",
24340 "requires": {
24341 "is-arrayish": "^0.2.1"
24342 }
24343 },
24344 "error-stack-parser": {
24345 "version": "2.1.4",
24346 "resolved": "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.1.4.tgz",
24347 "integrity": "sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==",
24348 "requires": {
24349 "stackframe": "^1.3.4"
24350 }
24351 },
24352 "es-abstract": {
24353 "version": "1.23.3",
24354 "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.3.tgz",
24355 "integrity": "sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==",
24356 "requires": {
24357 "array-buffer-byte-length": "^1.0.1",
24358 "arraybuffer.prototype.slice": "^1.0.3",
24359 "available-typed-arrays": "^1.0.7",
24360 "call-bind": "^1.0.7",
24361 "data-view-buffer": "^1.0.1",
24362 "data-view-byte-length": "^1.0.1",
24363 "data-view-byte-offset": "^1.0.0",
24364 "es-define-property": "^1.0.0",
24365 "es-errors": "^1.3.0",
24366 "es-object-atoms": "^1.0.0",
24367 "es-set-tostringtag": "^2.0.3",
24368 "es-to-primitive": "^1.2.1",
24369 "function.prototype.name": "^1.1.6",
24370 "get-intrinsic": "^1.2.4",
24371 "get-symbol-description": "^1.0.2",
24372 "globalthis": "^1.0.3",
24373 "gopd": "^1.0.1",
24374 "has-property-descriptors": "^1.0.2",
24375 "has-proto": "^1.0.3",
24376 "has-symbols": "^1.0.3",
24377 "hasown": "^2.0.2",
24378 "internal-slot": "^1.0.7",
24379 "is-array-buffer": "^3.0.4",
24380 "is-callable": "^1.2.7",
24381 "is-data-view": "^1.0.1",
24382 "is-negative-zero": "^2.0.3",
24383 "is-regex": "^1.1.4",
24384 "is-shared-array-buffer": "^1.0.3",
24385 "is-string": "^1.0.7",
24386 "is-typed-array": "^1.1.13",
24387 "is-weakref": "^1.0.2",
24388 "object-inspect": "^1.13.1",
24389 "object-keys": "^1.1.1",
24390 "object.assign": "^4.1.5",
24391 "regexp.prototype.flags": "^1.5.2",
24392 "safe-array-concat": "^1.1.2",
24393 "safe-regex-test": "^1.0.3",
24394 "string.prototype.trim": "^1.2.9",
24395 "string.prototype.trimend": "^1.0.8",
24396 "string.prototype.trimstart": "^1.0.8",
24397 "typed-array-buffer": "^1.0.2",
24398 "typed-array-byte-length": "^1.0.1",
24399 "typed-array-byte-offset": "^1.0.2",
24400 "typed-array-length": "^1.0.6",
24401 "unbox-primitive": "^1.0.2",
24402 "which-typed-array": "^1.1.15"
24403 }
24404 },
24405 "es-array-method-boxes-properly": {
24406 "version": "1.0.0",
24407 "resolved": "https://registry.npmjs.org/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz",
24408 "integrity": "sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA=="
24409 },
24410 "es-define-property": {
24411 "version": "1.0.0",
24412 "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz",
24413 "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==",
24414 "requires": {
24415 "get-intrinsic": "^1.2.4"
24416 }
24417 },
24418 "es-errors": {
24419 "version": "1.3.0",
24420 "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz",
24421 "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw=="
24422 },
24423 "es-get-iterator": {
24424 "version": "1.1.3",
24425 "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.3.tgz",
24426 "integrity": "sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==",
24427 "requires": {
24428 "call-bind": "^1.0.2",
24429 "get-intrinsic": "^1.1.3",
24430 "has-symbols": "^1.0.3",
24431 "is-arguments": "^1.1.1",
24432 "is-map": "^2.0.2",
24433 "is-set": "^2.0.2",
24434 "is-string": "^1.0.7",
24435 "isarray": "^2.0.5",
24436 "stop-iteration-iterator": "^1.0.0"
24437 }
24438 },
24439 "es-iterator-helpers": {
24440 "version": "1.0.19",
24441 "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.0.19.tgz",
24442 "integrity": "sha512-zoMwbCcH5hwUkKJkT8kDIBZSz9I6mVG//+lDCinLCGov4+r7NIy0ld8o03M0cJxl2spVf6ESYVS6/gpIfq1FFw==",
24443 "requires": {
24444 "call-bind": "^1.0.7",
24445 "define-properties": "^1.2.1",
24446 "es-abstract": "^1.23.3",
24447 "es-errors": "^1.3.0",
24448 "es-set-tostringtag": "^2.0.3",
24449 "function-bind": "^1.1.2",
24450 "get-intrinsic": "^1.2.4",
24451 "globalthis": "^1.0.3",
24452 "has-property-descriptors": "^1.0.2",
24453 "has-proto": "^1.0.3",
24454 "has-symbols": "^1.0.3",
24455 "internal-slot": "^1.0.7",
24456 "iterator.prototype": "^1.1.2",
24457 "safe-array-concat": "^1.1.2"
24458 }
24459 },
24460 "es-module-lexer": {
24461 "version": "1.5.4",
24462 "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.5.4.tgz",
24463 "integrity": "sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw=="
24464 },
24465 "es-object-atoms": {
24466 "version": "1.0.0",
24467 "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.0.0.tgz",
24468 "integrity": "sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==",
24469 "requires": {
24470 "es-errors": "^1.3.0"
24471 }
24472 },
24473 "es-set-tostringtag": {
24474 "version": "2.0.3",
24475 "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz",
24476 "integrity": "sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==",
24477 "requires": {
24478 "get-intrinsic": "^1.2.4",
24479 "has-tostringtag": "^1.0.2",
24480 "hasown": "^2.0.1"
24481 }
24482 },
24483 "es-shim-unscopables": {
24484 "version": "1.0.2",
24485 "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz",
24486 "integrity": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==",
24487 "requires": {
24488 "hasown": "^2.0.0"
24489 }
24490 },
24491 "es-to-primitive": {
24492 "version": "1.2.1",
24493 "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz",
24494 "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==",
24495 "requires": {
24496 "is-callable": "^1.1.4",
24497 "is-date-object": "^1.0.1",
24498 "is-symbol": "^1.0.2"
24499 }
24500 },
24501 "escalade": {
24502 "version": "3.1.2",
24503 "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz",
24504 "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA=="
24505 },
24506 "escape-html": {
24507 "version": "1.0.3",
24508 "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
24509 "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow=="
24510 },
24511 "escape-string-regexp": {
24512 "version": "1.0.5",
24513 "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
24514 "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg=="
24515 },
24516 "escodegen": {
24517 "version": "2.1.0",
24518 "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz",
24519 "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==",
24520 "requires": {
24521 "esprima": "^4.0.1",
24522 "estraverse": "^5.2.0",
24523 "esutils": "^2.0.2",
24524 "source-map": "~0.6.1"
24525 },
24526 "dependencies": {
24527 "source-map": {
24528 "version": "0.6.1",
24529 "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
24530 "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
24531 "optional": true
24532 }
24533 }
24534 },
24535 "eslint": {
24536 "version": "8.57.0",
24537 "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz",
24538 "integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==",
24539 "requires": {
24540 "@eslint-community/eslint-utils": "^4.2.0",
24541 "@eslint-community/regexpp": "^4.6.1",
24542 "@eslint/eslintrc": "^2.1.4",
24543 "@eslint/js": "8.57.0",
24544 "@humanwhocodes/config-array": "^0.11.14",
24545 "@humanwhocodes/module-importer": "^1.0.1",
24546 "@nodelib/fs.walk": "^1.2.8",
24547 "@ungap/structured-clone": "^1.2.0",
24548 "ajv": "^6.12.4",
24549 "chalk": "^4.0.0",
24550 "cross-spawn": "^7.0.2",
24551 "debug": "^4.3.2",
24552 "doctrine": "^3.0.0",
24553 "escape-string-regexp": "^4.0.0",
24554 "eslint-scope": "^7.2.2",
24555 "eslint-visitor-keys": "^3.4.3",
24556 "espree": "^9.6.1",
24557 "esquery": "^1.4.2",
24558 "esutils": "^2.0.2",
24559 "fast-deep-equal": "^3.1.3",
24560 "file-entry-cache": "^6.0.1",
24561 "find-up": "^5.0.0",
24562 "glob-parent": "^6.0.2",
24563 "globals": "^13.19.0",
24564 "graphemer": "^1.4.0",
24565 "ignore": "^5.2.0",
24566 "imurmurhash": "^0.1.4",
24567 "is-glob": "^4.0.0",
24568 "is-path-inside": "^3.0.3",
24569 "js-yaml": "^4.1.0",
24570 "json-stable-stringify-without-jsonify": "^1.0.1",
24571 "levn": "^0.4.1",
24572 "lodash.merge": "^4.6.2",
24573 "minimatch": "^3.1.2",
24574 "natural-compare": "^1.4.0",
24575 "optionator": "^0.9.3",
24576 "strip-ansi": "^6.0.1",
24577 "text-table": "^0.2.0"
24578 },
24579 "dependencies": {
24580 "ansi-styles": {
24581 "version": "4.3.0",
24582 "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
24583 "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
24584 "requires": {
24585 "color-convert": "^2.0.1"
24586 }
24587 },
24588 "argparse": {
24589 "version": "2.0.1",
24590 "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
24591 "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="
24592 },
24593 "chalk": {
24594 "version": "4.1.2",
24595 "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
24596 "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
24597 "requires": {
24598 "ansi-styles": "^4.1.0",
24599 "supports-color": "^7.1.0"
24600 }
24601 },
24602 "color-convert": {
24603 "version": "2.0.1",
24604 "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
24605 "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
24606 "requires": {
24607 "color-name": "~1.1.4"
24608 }
24609 },
24610 "color-name": {
24611 "version": "1.1.4",
24612 "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
24613 "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
24614 },
24615 "escape-string-regexp": {
24616 "version": "4.0.0",
24617 "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
24618 "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA=="
24619 },
24620 "find-up": {
24621 "version": "5.0.0",
24622 "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz",
24623 "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==",
24624 "requires": {
24625 "locate-path": "^6.0.0",
24626 "path-exists": "^4.0.0"
24627 }
24628 },
24629 "globals": {
24630 "version": "13.24.0",
24631 "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz",
24632 "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==",
24633 "requires": {
24634 "type-fest": "^0.20.2"
24635 }
24636 },
24637 "has-flag": {
24638 "version": "4.0.0",
24639 "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
24640 "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
24641 },
24642 "js-yaml": {
24643 "version": "4.1.0",
24644 "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
24645 "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
24646 "requires": {
24647 "argparse": "^2.0.1"
24648 }
24649 },
24650 "locate-path": {
24651 "version": "6.0.0",
24652 "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz",
24653 "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==",
24654 "requires": {
24655 "p-locate": "^5.0.0"
24656 }
24657 },
24658 "p-limit": {
24659 "version": "3.1.0",
24660 "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
24661 "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
24662 "requires": {
24663 "yocto-queue": "^0.1.0"
24664 }
24665 },
24666 "p-locate": {
24667 "version": "5.0.0",
24668 "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz",
24669 "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==",
24670 "requires": {
24671 "p-limit": "^3.0.2"
24672 }
24673 },
24674 "supports-color": {
24675 "version": "7.2.0",
24676 "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
24677 "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
24678 "requires": {
24679 "has-flag": "^4.0.0"
24680 }
24681 },
24682 "type-fest": {
24683 "version": "0.20.2",
24684 "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz",
24685 "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ=="
24686 }
24687 }
24688 },
24689 "eslint-config-react-app": {
24690 "version": "7.0.1",
24691 "resolved": "https://registry.npmjs.org/eslint-config-react-app/-/eslint-config-react-app-7.0.1.tgz",
24692 "integrity": "sha512-K6rNzvkIeHaTd8m/QEh1Zko0KI7BACWkkneSs6s9cKZC/J27X3eZR6Upt1jkmZ/4FK+XUOPPxMEN7+lbUXfSlA==",
24693 "requires": {
24694 "@babel/core": "^7.16.0",
24695 "@babel/eslint-parser": "^7.16.3",
24696 "@rushstack/eslint-patch": "^1.1.0",
24697 "@typescript-eslint/eslint-plugin": "^5.5.0",
24698 "@typescript-eslint/parser": "^5.5.0",
24699 "babel-preset-react-app": "^10.0.1",
24700 "confusing-browser-globals": "^1.0.11",
24701 "eslint-plugin-flowtype": "^8.0.3",
24702 "eslint-plugin-import": "^2.25.3",
24703 "eslint-plugin-jest": "^25.3.0",
24704 "eslint-plugin-jsx-a11y": "^6.5.1",
24705 "eslint-plugin-react": "^7.27.1",
24706 "eslint-plugin-react-hooks": "^4.3.0",
24707 "eslint-plugin-testing-library": "^5.0.1"
24708 }
24709 },
24710 "eslint-import-resolver-node": {
24711 "version": "0.3.9",
24712 "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz",
24713 "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==",
24714 "requires": {
24715 "debug": "^3.2.7",
24716 "is-core-module": "^2.13.0",
24717 "resolve": "^1.22.4"
24718 },
24719 "dependencies": {
24720 "debug": {
24721 "version": "3.2.7",
24722 "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
24723 "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
24724 "requires": {
24725 "ms": "^2.1.1"
24726 }
24727 }
24728 }
24729 },
24730 "eslint-module-utils": {
24731 "version": "2.8.1",
24732 "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.1.tgz",
24733 "integrity": "sha512-rXDXR3h7cs7dy9RNpUlQf80nX31XWJEyGq1tRMo+6GsO5VmTe4UTwtmonAD4ZkAsrfMVDA2wlGJ3790Ys+D49Q==",
24734 "requires": {
24735 "debug": "^3.2.7"
24736 },
24737 "dependencies": {
24738 "debug": {
24739 "version": "3.2.7",
24740 "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
24741 "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
24742 "requires": {
24743 "ms": "^2.1.1"
24744 }
24745 }
24746 }
24747 },
24748 "eslint-plugin-flowtype": {
24749 "version": "8.0.3",
24750 "resolved": "https://registry.npmjs.org/eslint-plugin-flowtype/-/eslint-plugin-flowtype-8.0.3.tgz",
24751 "integrity": "sha512-dX8l6qUL6O+fYPtpNRideCFSpmWOUVx5QcaGLVqe/vlDiBSe4vYljDWDETwnyFzpl7By/WVIu6rcrniCgH9BqQ==",
24752 "requires": {
24753 "lodash": "^4.17.21",
24754 "string-natural-compare": "^3.0.1"
24755 }
24756 },
24757 "eslint-plugin-import": {
24758 "version": "2.29.1",
24759 "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.29.1.tgz",
24760 "integrity": "sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==",
24761 "requires": {
24762 "array-includes": "^3.1.7",
24763 "array.prototype.findlastindex": "^1.2.3",
24764 "array.prototype.flat": "^1.3.2",
24765 "array.prototype.flatmap": "^1.3.2",
24766 "debug": "^3.2.7",
24767 "doctrine": "^2.1.0",
24768 "eslint-import-resolver-node": "^0.3.9",
24769 "eslint-module-utils": "^2.8.0",
24770 "hasown": "^2.0.0",
24771 "is-core-module": "^2.13.1",
24772 "is-glob": "^4.0.3",
24773 "minimatch": "^3.1.2",
24774 "object.fromentries": "^2.0.7",
24775 "object.groupby": "^1.0.1",
24776 "object.values": "^1.1.7",
24777 "semver": "^6.3.1",
24778 "tsconfig-paths": "^3.15.0"
24779 },
24780 "dependencies": {
24781 "debug": {
24782 "version": "3.2.7",
24783 "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
24784 "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
24785 "requires": {
24786 "ms": "^2.1.1"
24787 }
24788 },
24789 "doctrine": {
24790 "version": "2.1.0",
24791 "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz",
24792 "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==",
24793 "requires": {
24794 "esutils": "^2.0.2"
24795 }
24796 },
24797 "semver": {
24798 "version": "6.3.1",
24799 "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
24800 "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="
24801 }
24802 }
24803 },
24804 "eslint-plugin-jest": {
24805 "version": "25.7.0",
24806 "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-25.7.0.tgz",
24807 "integrity": "sha512-PWLUEXeeF7C9QGKqvdSbzLOiLTx+bno7/HC9eefePfEb257QFHg7ye3dh80AZVkaa/RQsBB1Q/ORQvg2X7F0NQ==",
24808 "requires": {
24809 "@typescript-eslint/experimental-utils": "^5.0.0"
24810 }
24811 },
24812 "eslint-plugin-jsx-a11y": {
24813 "version": "6.9.0",
24814 "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.9.0.tgz",
24815 "integrity": "sha512-nOFOCaJG2pYqORjK19lqPqxMO/JpvdCZdPtNdxY3kvom3jTvkAbOvQvD8wuD0G8BYR0IGAGYDlzqWJOh/ybn2g==",
24816 "requires": {
24817 "aria-query": "~5.1.3",
24818 "array-includes": "^3.1.8",
24819 "array.prototype.flatmap": "^1.3.2",
24820 "ast-types-flow": "^0.0.8",
24821 "axe-core": "^4.9.1",
24822 "axobject-query": "~3.1.1",
24823 "damerau-levenshtein": "^1.0.8",
24824 "emoji-regex": "^9.2.2",
24825 "es-iterator-helpers": "^1.0.19",
24826 "hasown": "^2.0.2",
24827 "jsx-ast-utils": "^3.3.5",
24828 "language-tags": "^1.0.9",
24829 "minimatch": "^3.1.2",
24830 "object.fromentries": "^2.0.8",
24831 "safe-regex-test": "^1.0.3",
24832 "string.prototype.includes": "^2.0.0"
24833 }
24834 },
24835 "eslint-plugin-react": {
24836 "version": "7.34.3",
24837 "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.34.3.tgz",
24838 "integrity": "sha512-aoW4MV891jkUulwDApQbPYTVZmeuSyFrudpbTAQuj5Fv8VL+o6df2xIGpw8B0hPjAaih1/Fb0om9grCdyFYemA==",
24839 "requires": {
24840 "array-includes": "^3.1.8",
24841 "array.prototype.findlast": "^1.2.5",
24842 "array.prototype.flatmap": "^1.3.2",
24843 "array.prototype.toreversed": "^1.1.2",
24844 "array.prototype.tosorted": "^1.1.4",
24845 "doctrine": "^2.1.0",
24846 "es-iterator-helpers": "^1.0.19",
24847 "estraverse": "^5.3.0",
24848 "jsx-ast-utils": "^2.4.1 || ^3.0.0",
24849 "minimatch": "^3.1.2",
24850 "object.entries": "^1.1.8",
24851 "object.fromentries": "^2.0.8",
24852 "object.hasown": "^1.1.4",
24853 "object.values": "^1.2.0",
24854 "prop-types": "^15.8.1",
24855 "resolve": "^2.0.0-next.5",
24856 "semver": "^6.3.1",
24857 "string.prototype.matchall": "^4.0.11"
24858 },
24859 "dependencies": {
24860 "doctrine": {
24861 "version": "2.1.0",
24862 "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz",
24863 "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==",
24864 "requires": {
24865 "esutils": "^2.0.2"
24866 }
24867 },
24868 "resolve": {
24869 "version": "2.0.0-next.5",
24870 "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz",
24871 "integrity": "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==",
24872 "requires": {
24873 "is-core-module": "^2.13.0",
24874 "path-parse": "^1.0.7",
24875 "supports-preserve-symlinks-flag": "^1.0.0"
24876 }
24877 },
24878 "semver": {
24879 "version": "6.3.1",
24880 "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
24881 "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="
24882 }
24883 }
24884 },
24885 "eslint-plugin-react-hooks": {
24886 "version": "4.6.2",
24887 "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.2.tgz",
24888 "integrity": "sha512-QzliNJq4GinDBcD8gPB5v0wh6g8q3SUi6EFF0x8N/BL9PoVs0atuGc47ozMRyOWAKdwaZ5OnbOEa3WR+dSGKuQ==",
24889 "requires": {}
24890 },
24891 "eslint-plugin-testing-library": {
24892 "version": "5.11.1",
24893 "resolved": "https://registry.npmjs.org/eslint-plugin-testing-library/-/eslint-plugin-testing-library-5.11.1.tgz",
24894 "integrity": "sha512-5eX9e1Kc2PqVRed3taaLnAAqPZGEX75C+M/rXzUAI3wIg/ZxzUm1OVAwfe/O+vE+6YXOLetSe9g5GKD2ecXipw==",
24895 "requires": {
24896 "@typescript-eslint/utils": "^5.58.0"
24897 }
24898 },
24899 "eslint-scope": {
24900 "version": "7.2.2",
24901 "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz",
24902 "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==",
24903 "requires": {
24904 "esrecurse": "^4.3.0",
24905 "estraverse": "^5.2.0"
24906 }
24907 },
24908 "eslint-visitor-keys": {
24909 "version": "3.4.3",
24910 "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz",
24911 "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag=="
24912 },
24913 "eslint-webpack-plugin": {
24914 "version": "3.2.0",
24915 "resolved": "https://registry.npmjs.org/eslint-webpack-plugin/-/eslint-webpack-plugin-3.2.0.tgz",
24916 "integrity": "sha512-avrKcGncpPbPSUHX6B3stNGzkKFto3eL+DKM4+VyMrVnhPc3vRczVlCq3uhuFOdRvDHTVXuzwk1ZKUrqDQHQ9w==",
24917 "requires": {
24918 "@types/eslint": "^7.29.0 || ^8.4.1",
24919 "jest-worker": "^28.0.2",
24920 "micromatch": "^4.0.5",
24921 "normalize-path": "^3.0.0",
24922 "schema-utils": "^4.0.0"
24923 },
24924 "dependencies": {
24925 "has-flag": {
24926 "version": "4.0.0",
24927 "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
24928 "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
24929 },
24930 "jest-worker": {
24931 "version": "28.1.3",
24932 "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-28.1.3.tgz",
24933 "integrity": "sha512-CqRA220YV/6jCo8VWvAt1KKx6eek1VIHMPeLEbpcfSfkEeWyBNppynM/o6q+Wmw+sOhos2ml34wZbSX3G13//g==",
24934 "requires": {
24935 "@types/node": "*",
24936 "merge-stream": "^2.0.0",
24937 "supports-color": "^8.0.0"
24938 }
24939 },
24940 "supports-color": {
24941 "version": "8.1.1",
24942 "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz",
24943 "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==",
24944 "requires": {
24945 "has-flag": "^4.0.0"
24946 }
24947 }
24948 }
24949 },
24950 "espree": {
24951 "version": "9.6.1",
24952 "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz",
24953 "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==",
24954 "requires": {
24955 "acorn": "^8.9.0",
24956 "acorn-jsx": "^5.3.2",
24957 "eslint-visitor-keys": "^3.4.1"
24958 }
24959 },
24960 "esprima": {
24961 "version": "4.0.1",
24962 "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
24963 "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A=="
24964 },
24965 "esquery": {
24966 "version": "1.6.0",
24967 "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz",
24968 "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==",
24969 "requires": {
24970 "estraverse": "^5.1.0"
24971 }
24972 },
24973 "esrecurse": {
24974 "version": "4.3.0",
24975 "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz",
24976 "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==",
24977 "requires": {
24978 "estraverse": "^5.2.0"
24979 }
24980 },
24981 "estraverse": {
24982 "version": "5.3.0",
24983 "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
24984 "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA=="
24985 },
24986 "estree-walker": {
24987 "version": "1.0.1",
24988 "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz",
24989 "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg=="
24990 },
24991 "esutils": {
24992 "version": "2.0.3",
24993 "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
24994 "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g=="
24995 },
24996 "etag": {
24997 "version": "1.8.1",
24998 "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
24999 "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg=="
25000 },
25001 "eventemitter3": {
25002 "version": "4.0.7",
25003 "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz",
25004 "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw=="
25005 },
25006 "events": {
25007 "version": "3.3.0",
25008 "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz",
25009 "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q=="
25010 },
25011 "execa": {
25012 "version": "5.1.1",
25013 "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz",
25014 "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==",
25015 "requires": {
25016 "cross-spawn": "^7.0.3",
25017 "get-stream": "^6.0.0",
25018 "human-signals": "^2.1.0",
25019 "is-stream": "^2.0.0",
25020 "merge-stream": "^2.0.0",
25021 "npm-run-path": "^4.0.1",
25022 "onetime": "^5.1.2",
25023 "signal-exit": "^3.0.3",
25024 "strip-final-newline": "^2.0.0"
25025 }
25026 },
25027 "exit": {
25028 "version": "0.1.2",
25029 "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz",
25030 "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ=="
25031 },
25032 "expect": {
25033 "version": "27.5.1",
25034 "resolved": "https://registry.npmjs.org/expect/-/expect-27.5.1.tgz",
25035 "integrity": "sha512-E1q5hSUG2AmYQwQJ041nvgpkODHQvB+RKlB4IYdru6uJsyFTRyZAP463M+1lINorwbqAmUggi6+WwkD8lCS/Dw==",
25036 "requires": {
25037 "@jest/types": "^27.5.1",
25038 "jest-get-type": "^27.5.1",
25039 "jest-matcher-utils": "^27.5.1",
25040 "jest-message-util": "^27.5.1"
25041 }
25042 },
25043 "express": {
25044 "version": "4.19.2",
25045 "resolved": "https://registry.npmjs.org/express/-/express-4.19.2.tgz",
25046 "integrity": "sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==",
25047 "requires": {
25048 "accepts": "~1.3.8",
25049 "array-flatten": "1.1.1",
25050 "body-parser": "1.20.2",
25051 "content-disposition": "0.5.4",
25052 "content-type": "~1.0.4",
25053 "cookie": "0.6.0",
25054 "cookie-signature": "1.0.6",
25055 "debug": "2.6.9",
25056 "depd": "2.0.0",
25057 "encodeurl": "~1.0.2",
25058 "escape-html": "~1.0.3",
25059 "etag": "~1.8.1",
25060 "finalhandler": "1.2.0",
25061 "fresh": "0.5.2",
25062 "http-errors": "2.0.0",
25063 "merge-descriptors": "1.0.1",
25064 "methods": "~1.1.2",
25065 "on-finished": "2.4.1",
25066 "parseurl": "~1.3.3",
25067 "path-to-regexp": "0.1.7",
25068 "proxy-addr": "~2.0.7",
25069 "qs": "6.11.0",
25070 "range-parser": "~1.2.1",
25071 "safe-buffer": "5.2.1",
25072 "send": "0.18.0",
25073 "serve-static": "1.15.0",
25074 "setprototypeof": "1.2.0",
25075 "statuses": "2.0.1",
25076 "type-is": "~1.6.18",
25077 "utils-merge": "1.0.1",
25078 "vary": "~1.1.2"
25079 },
25080 "dependencies": {
25081 "debug": {
25082 "version": "2.6.9",
25083 "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
25084 "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
25085 "requires": {
25086 "ms": "2.0.0"
25087 }
25088 },
25089 "ms": {
25090 "version": "2.0.0",
25091 "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
25092 "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
25093 }
25094 }
25095 },
25096 "extend": {
25097 "version": "3.0.2",
25098 "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
25099 "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g=="
25100 },
25101 "fast-deep-equal": {
25102 "version": "3.1.3",
25103 "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
25104 "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="
25105 },
25106 "fast-glob": {
25107 "version": "3.3.2",
25108 "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz",
25109 "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==",
25110 "requires": {
25111 "@nodelib/fs.stat": "^2.0.2",
25112 "@nodelib/fs.walk": "^1.2.3",
25113 "glob-parent": "^5.1.2",
25114 "merge2": "^1.3.0",
25115 "micromatch": "^4.0.4"
25116 },
25117 "dependencies": {
25118 "glob-parent": {
25119 "version": "5.1.2",
25120 "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
25121 "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
25122 "requires": {
25123 "is-glob": "^4.0.1"
25124 }
25125 }
25126 }
25127 },
25128 "fast-json-stable-stringify": {
25129 "version": "2.1.0",
25130 "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
25131 "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw=="
25132 },
25133 "fast-levenshtein": {
25134 "version": "2.0.6",
25135 "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
25136 "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw=="
25137 },
25138 "fastq": {
25139 "version": "1.17.1",
25140 "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz",
25141 "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==",
25142 "requires": {
25143 "reusify": "^1.0.4"
25144 }
25145 },
25146 "faye-websocket": {
25147 "version": "0.11.4",
25148 "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz",
25149 "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==",
25150 "requires": {
25151 "websocket-driver": ">=0.5.1"
25152 }
25153 },
25154 "fb-watchman": {
25155 "version": "2.0.2",
25156 "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz",
25157 "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==",
25158 "requires": {
25159 "bser": "2.1.1"
25160 }
25161 },
25162 "file-entry-cache": {
25163 "version": "6.0.1",
25164 "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz",
25165 "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==",
25166 "requires": {
25167 "flat-cache": "^3.0.4"
25168 }
25169 },
25170 "file-loader": {
25171 "version": "6.2.0",
25172 "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-6.2.0.tgz",
25173 "integrity": "sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==",
25174 "requires": {
25175 "loader-utils": "^2.0.0",
25176 "schema-utils": "^3.0.0"
25177 },
25178 "dependencies": {
25179 "schema-utils": {
25180 "version": "3.3.0",
25181 "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz",
25182 "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==",
25183 "requires": {
25184 "@types/json-schema": "^7.0.8",
25185 "ajv": "^6.12.5",
25186 "ajv-keywords": "^3.5.2"
25187 }
25188 }
25189 }
25190 },
25191 "filelist": {
25192 "version": "1.0.4",
25193 "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz",
25194 "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==",
25195 "requires": {
25196 "minimatch": "^5.0.1"
25197 },
25198 "dependencies": {
25199 "brace-expansion": {
25200 "version": "2.0.1",
25201 "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
25202 "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
25203 "requires": {
25204 "balanced-match": "^1.0.0"
25205 }
25206 },
25207 "minimatch": {
25208 "version": "5.1.6",
25209 "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz",
25210 "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==",
25211 "requires": {
25212 "brace-expansion": "^2.0.1"
25213 }
25214 }
25215 }
25216 },
25217 "filesize": {
25218 "version": "8.0.7",
25219 "resolved": "https://registry.npmjs.org/filesize/-/filesize-8.0.7.tgz",
25220 "integrity": "sha512-pjmC+bkIF8XI7fWaH8KxHcZL3DPybs1roSKP4rKDvy20tAWwIObE4+JIseG2byfGKhud5ZnM4YSGKBz7Sh0ndQ=="
25221 },
25222 "fill-range": {
25223 "version": "7.1.1",
25224 "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz",
25225 "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==",
25226 "requires": {
25227 "to-regex-range": "^5.0.1"
25228 }
25229 },
25230 "finalhandler": {
25231 "version": "1.2.0",
25232 "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz",
25233 "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==",
25234 "requires": {
25235 "debug": "2.6.9",
25236 "encodeurl": "~1.0.2",
25237 "escape-html": "~1.0.3",
25238 "on-finished": "2.4.1",
25239 "parseurl": "~1.3.3",
25240 "statuses": "2.0.1",
25241 "unpipe": "~1.0.0"
25242 },
25243 "dependencies": {
25244 "debug": {
25245 "version": "2.6.9",
25246 "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
25247 "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
25248 "requires": {
25249 "ms": "2.0.0"
25250 }
25251 },
25252 "ms": {
25253 "version": "2.0.0",
25254 "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
25255 "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
25256 }
25257 }
25258 },
25259 "find-cache-dir": {
25260 "version": "3.3.2",
25261 "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz",
25262 "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==",
25263 "requires": {
25264 "commondir": "^1.0.1",
25265 "make-dir": "^3.0.2",
25266 "pkg-dir": "^4.1.0"
25267 }
25268 },
25269 "find-up": {
25270 "version": "4.1.0",
25271 "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
25272 "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
25273 "requires": {
25274 "locate-path": "^5.0.0",
25275 "path-exists": "^4.0.0"
25276 }
25277 },
25278 "flat-cache": {
25279 "version": "3.2.0",
25280 "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz",
25281 "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==",
25282 "requires": {
25283 "flatted": "^3.2.9",
25284 "keyv": "^4.5.3",
25285 "rimraf": "^3.0.2"
25286 }
25287 },
25288 "flatted": {
25289 "version": "3.3.1",
25290 "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz",
25291 "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw=="
25292 },
25293 "follow-redirects": {
25294 "version": "1.15.6",
25295 "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz",
25296 "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA=="
25297 },
25298 "for-each": {
25299 "version": "0.3.3",
25300 "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz",
25301 "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==",
25302 "requires": {
25303 "is-callable": "^1.1.3"
25304 }
25305 },
25306 "foreground-child": {
25307 "version": "3.2.1",
25308 "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.2.1.tgz",
25309 "integrity": "sha512-PXUUyLqrR2XCWICfv6ukppP96sdFwWbNEnfEMt7jNsISjMsvaLNinAHNDYyvkyU+SZG2BTSbT5NjG+vZslfGTA==",
25310 "requires": {
25311 "cross-spawn": "^7.0.0",
25312 "signal-exit": "^4.0.1"
25313 },
25314 "dependencies": {
25315 "signal-exit": {
25316 "version": "4.1.0",
25317 "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz",
25318 "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw=="
25319 }
25320 }
25321 },
25322 "fork-ts-checker-webpack-plugin": {
25323 "version": "6.5.3",
25324 "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-6.5.3.tgz",
25325 "integrity": "sha512-SbH/l9ikmMWycd5puHJKTkZJKddF4iRLyW3DeZ08HTI7NGyLS38MXd/KGgeWumQO7YNQbW2u/NtPT2YowbPaGQ==",
25326 "requires": {
25327 "@babel/code-frame": "^7.8.3",
25328 "@types/json-schema": "^7.0.5",
25329 "chalk": "^4.1.0",
25330 "chokidar": "^3.4.2",
25331 "cosmiconfig": "^6.0.0",
25332 "deepmerge": "^4.2.2",
25333 "fs-extra": "^9.0.0",
25334 "glob": "^7.1.6",
25335 "memfs": "^3.1.2",
25336 "minimatch": "^3.0.4",
25337 "schema-utils": "2.7.0",
25338 "semver": "^7.3.2",
25339 "tapable": "^1.0.0"
25340 },
25341 "dependencies": {
25342 "ansi-styles": {
25343 "version": "4.3.0",
25344 "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
25345 "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
25346 "requires": {
25347 "color-convert": "^2.0.1"
25348 }
25349 },
25350 "chalk": {
25351 "version": "4.1.2",
25352 "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
25353 "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
25354 "requires": {
25355 "ansi-styles": "^4.1.0",
25356 "supports-color": "^7.1.0"
25357 }
25358 },
25359 "color-convert": {
25360 "version": "2.0.1",
25361 "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
25362 "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
25363 "requires": {
25364 "color-name": "~1.1.4"
25365 }
25366 },
25367 "color-name": {
25368 "version": "1.1.4",
25369 "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
25370 "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
25371 },
25372 "cosmiconfig": {
25373 "version": "6.0.0",
25374 "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz",
25375 "integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==",
25376 "requires": {
25377 "@types/parse-json": "^4.0.0",
25378 "import-fresh": "^3.1.0",
25379 "parse-json": "^5.0.0",
25380 "path-type": "^4.0.0",
25381 "yaml": "^1.7.2"
25382 }
25383 },
25384 "fs-extra": {
25385 "version": "9.1.0",
25386 "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz",
25387 "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==",
25388 "requires": {
25389 "at-least-node": "^1.0.0",
25390 "graceful-fs": "^4.2.0",
25391 "jsonfile": "^6.0.1",
25392 "universalify": "^2.0.0"
25393 }
25394 },
25395 "has-flag": {
25396 "version": "4.0.0",
25397 "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
25398 "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
25399 },
25400 "schema-utils": {
25401 "version": "2.7.0",
25402 "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.0.tgz",
25403 "integrity": "sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==",
25404 "requires": {
25405 "@types/json-schema": "^7.0.4",
25406 "ajv": "^6.12.2",
25407 "ajv-keywords": "^3.4.1"
25408 }
25409 },
25410 "supports-color": {
25411 "version": "7.2.0",
25412 "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
25413 "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
25414 "requires": {
25415 "has-flag": "^4.0.0"
25416 }
25417 },
25418 "tapable": {
25419 "version": "1.1.3",
25420 "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz",
25421 "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA=="
25422 }
25423 }
25424 },
25425 "form-data": {
25426 "version": "3.0.1",
25427 "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz",
25428 "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==",
25429 "requires": {
25430 "asynckit": "^0.4.0",
25431 "combined-stream": "^1.0.8",
25432 "mime-types": "^2.1.12"
25433 }
25434 },
25435 "forwarded": {
25436 "version": "0.2.0",
25437 "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz",
25438 "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow=="
25439 },
25440 "fraction.js": {
25441 "version": "4.3.7",
25442 "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz",
25443 "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew=="
25444 },
25445 "fresh": {
25446 "version": "0.5.2",
25447 "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
25448 "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q=="
25449 },
25450 "fs-extra": {
25451 "version": "10.1.0",
25452 "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz",
25453 "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==",
25454 "requires": {
25455 "graceful-fs": "^4.2.0",
25456 "jsonfile": "^6.0.1",
25457 "universalify": "^2.0.0"
25458 }
25459 },
25460 "fs-monkey": {
25461 "version": "1.0.6",
25462 "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.6.tgz",
25463 "integrity": "sha512-b1FMfwetIKymC0eioW7mTywihSQE4oLzQn1dB6rZB5fx/3NpNEdAWeCSMB+60/AeT0TCXsxzAlcYVEFCTAksWg=="
25464 },
25465 "fs.realpath": {
25466 "version": "1.0.0",
25467 "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
25468 "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw=="
25469 },
25470 "fsevents": {
25471 "version": "2.3.3",
25472 "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
25473 "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
25474 "optional": true
25475 },
25476 "function-bind": {
25477 "version": "1.1.2",
25478 "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
25479 "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA=="
25480 },
25481 "function.prototype.name": {
25482 "version": "1.1.6",
25483 "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz",
25484 "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==",
25485 "requires": {
25486 "call-bind": "^1.0.2",
25487 "define-properties": "^1.2.0",
25488 "es-abstract": "^1.22.1",
25489 "functions-have-names": "^1.2.3"
25490 }
25491 },
25492 "functions-have-names": {
25493 "version": "1.2.3",
25494 "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz",
25495 "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ=="
25496 },
25497 "gensync": {
25498 "version": "1.0.0-beta.2",
25499 "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz",
25500 "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg=="
25501 },
25502 "get-caller-file": {
25503 "version": "2.0.5",
25504 "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
25505 "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg=="
25506 },
25507 "get-intrinsic": {
25508 "version": "1.2.4",
25509 "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz",
25510 "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==",
25511 "requires": {
25512 "es-errors": "^1.3.0",
25513 "function-bind": "^1.1.2",
25514 "has-proto": "^1.0.1",
25515 "has-symbols": "^1.0.3",
25516 "hasown": "^2.0.0"
25517 }
25518 },
25519 "get-own-enumerable-property-symbols": {
25520 "version": "3.0.2",
25521 "resolved": "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz",
25522 "integrity": "sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g=="
25523 },
25524 "get-package-type": {
25525 "version": "0.1.0",
25526 "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz",
25527 "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q=="
25528 },
25529 "get-stream": {
25530 "version": "6.0.1",
25531 "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz",
25532 "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg=="
25533 },
25534 "get-symbol-description": {
25535 "version": "1.0.2",
25536 "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz",
25537 "integrity": "sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==",
25538 "requires": {
25539 "call-bind": "^1.0.5",
25540 "es-errors": "^1.3.0",
25541 "get-intrinsic": "^1.2.4"
25542 }
25543 },
25544 "glob": {
25545 "version": "7.2.3",
25546 "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
25547 "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
25548 "requires": {
25549 "fs.realpath": "^1.0.0",
25550 "inflight": "^1.0.4",
25551 "inherits": "2",
25552 "minimatch": "^3.1.1",
25553 "once": "^1.3.0",
25554 "path-is-absolute": "^1.0.0"
25555 }
25556 },
25557 "glob-parent": {
25558 "version": "6.0.2",
25559 "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz",
25560 "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==",
25561 "requires": {
25562 "is-glob": "^4.0.3"
25563 }
25564 },
25565 "glob-to-regexp": {
25566 "version": "0.4.1",
25567 "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz",
25568 "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw=="
25569 },
25570 "global-modules": {
25571 "version": "2.0.0",
25572 "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz",
25573 "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==",
25574 "requires": {
25575 "global-prefix": "^3.0.0"
25576 }
25577 },
25578 "global-prefix": {
25579 "version": "3.0.0",
25580 "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz",
25581 "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==",
25582 "requires": {
25583 "ini": "^1.3.5",
25584 "kind-of": "^6.0.2",
25585 "which": "^1.3.1"
25586 },
25587 "dependencies": {
25588 "which": {
25589 "version": "1.3.1",
25590 "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
25591 "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
25592 "requires": {
25593 "isexe": "^2.0.0"
25594 }
25595 }
25596 }
25597 },
25598 "globals": {
25599 "version": "11.12.0",
25600 "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz",
25601 "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA=="
25602 },
25603 "globalthis": {
25604 "version": "1.0.4",
25605 "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz",
25606 "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==",
25607 "requires": {
25608 "define-properties": "^1.2.1",
25609 "gopd": "^1.0.1"
25610 }
25611 },
25612 "globby": {
25613 "version": "11.1.0",
25614 "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz",
25615 "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==",
25616 "requires": {
25617 "array-union": "^2.1.0",
25618 "dir-glob": "^3.0.1",
25619 "fast-glob": "^3.2.9",
25620 "ignore": "^5.2.0",
25621 "merge2": "^1.4.1",
25622 "slash": "^3.0.0"
25623 }
25624 },
25625 "gopd": {
25626 "version": "1.0.1",
25627 "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz",
25628 "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==",
25629 "requires": {
25630 "get-intrinsic": "^1.1.3"
25631 }
25632 },
25633 "graceful-fs": {
25634 "version": "4.2.11",
25635 "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz",
25636 "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ=="
25637 },
25638 "graphemer": {
25639 "version": "1.4.0",
25640 "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz",
25641 "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag=="
25642 },
25643 "gzip-size": {
25644 "version": "6.0.0",
25645 "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-6.0.0.tgz",
25646 "integrity": "sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==",
25647 "requires": {
25648 "duplexer": "^0.1.2"
25649 }
25650 },
25651 "handle-thing": {
25652 "version": "2.0.1",
25653 "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz",
25654 "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg=="
25655 },
25656 "harmony-reflect": {
25657 "version": "1.6.2",
25658 "resolved": "https://registry.npmjs.org/harmony-reflect/-/harmony-reflect-1.6.2.tgz",
25659 "integrity": "sha512-HIp/n38R9kQjDEziXyDTuW3vvoxxyxjxFzXLrBr18uB47GnSt+G9D29fqrpM5ZkspMcPICud3XsBJQ4Y2URg8g=="
25660 },
25661 "has-bigints": {
25662 "version": "1.0.2",
25663 "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz",
25664 "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ=="
25665 },
25666 "has-flag": {
25667 "version": "3.0.0",
25668 "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
25669 "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw=="
25670 },
25671 "has-property-descriptors": {
25672 "version": "1.0.2",
25673 "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz",
25674 "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==",
25675 "requires": {
25676 "es-define-property": "^1.0.0"
25677 }
25678 },
25679 "has-proto": {
25680 "version": "1.0.3",
25681 "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz",
25682 "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q=="
25683 },
25684 "has-symbols": {
25685 "version": "1.0.3",
25686 "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz",
25687 "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A=="
25688 },
25689 "has-tostringtag": {
25690 "version": "1.0.2",
25691 "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz",
25692 "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==",
25693 "requires": {
25694 "has-symbols": "^1.0.3"
25695 }
25696 },
25697 "hasown": {
25698 "version": "2.0.2",
25699 "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz",
25700 "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==",
25701 "requires": {
25702 "function-bind": "^1.1.2"
25703 }
25704 },
25705 "hast-util-whitespace": {
25706 "version": "2.0.1",
25707 "resolved": "https://registry.npmjs.org/hast-util-whitespace/-/hast-util-whitespace-2.0.1.tgz",
25708 "integrity": "sha512-nAxA0v8+vXSBDt3AnRUNjyRIQ0rD+ntpbAp4LnPkumc5M9yUbSMa4XDU9Q6etY4f1Wp4bNgvc1yjiZtsTTrSng=="
25709 },
25710 "he": {
25711 "version": "1.2.0",
25712 "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz",
25713 "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw=="
25714 },
25715 "hoopy": {
25716 "version": "0.1.4",
25717 "resolved": "https://registry.npmjs.org/hoopy/-/hoopy-0.1.4.tgz",
25718 "integrity": "sha512-HRcs+2mr52W0K+x8RzcLzuPPmVIKMSv97RGHy0Ea9y/mpcaK+xTrjICA04KAHi4GRzxliNqNJEFYWHghy3rSfQ=="
25719 },
25720 "hpack.js": {
25721 "version": "2.1.6",
25722 "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz",
25723 "integrity": "sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==",
25724 "requires": {
25725 "inherits": "^2.0.1",
25726 "obuf": "^1.0.0",
25727 "readable-stream": "^2.0.1",
25728 "wbuf": "^1.1.0"
25729 },
25730 "dependencies": {
25731 "isarray": {
25732 "version": "1.0.0",
25733 "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
25734 "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ=="
25735 },
25736 "readable-stream": {
25737 "version": "2.3.8",
25738 "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz",
25739 "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==",
25740 "requires": {
25741 "core-util-is": "~1.0.0",
25742 "inherits": "~2.0.3",
25743 "isarray": "~1.0.0",
25744 "process-nextick-args": "~2.0.0",
25745 "safe-buffer": "~5.1.1",
25746 "string_decoder": "~1.1.1",
25747 "util-deprecate": "~1.0.1"
25748 }
25749 },
25750 "safe-buffer": {
25751 "version": "5.1.2",
25752 "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
25753 "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
25754 },
25755 "string_decoder": {
25756 "version": "1.1.1",
25757 "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
25758 "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
25759 "requires": {
25760 "safe-buffer": "~5.1.0"
25761 }
25762 }
25763 }
25764 },
25765 "html-encoding-sniffer": {
25766 "version": "2.0.1",
25767 "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz",
25768 "integrity": "sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==",
25769 "requires": {
25770 "whatwg-encoding": "^1.0.5"
25771 }
25772 },
25773 "html-entities": {
25774 "version": "2.5.2",
25775 "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.5.2.tgz",
25776 "integrity": "sha512-K//PSRMQk4FZ78Kyau+mZurHn3FH0Vwr+H36eE0rPbeYkRRi9YxceYPhuN60UwWorxyKHhqoAJl2OFKa4BVtaA=="
25777 },
25778 "html-escaper": {
25779 "version": "2.0.2",
25780 "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz",
25781 "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg=="
25782 },
25783 "html-minifier-terser": {
25784 "version": "6.1.0",
25785 "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz",
25786 "integrity": "sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==",
25787 "requires": {
25788 "camel-case": "^4.1.2",
25789 "clean-css": "^5.2.2",
25790 "commander": "^8.3.0",
25791 "he": "^1.2.0",
25792 "param-case": "^3.0.4",
25793 "relateurl": "^0.2.7",
25794 "terser": "^5.10.0"
25795 }
25796 },
25797 "html-webpack-plugin": {
25798 "version": "5.6.0",
25799 "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-5.6.0.tgz",
25800 "integrity": "sha512-iwaY4wzbe48AfKLZ/Cc8k0L+FKG6oSNRaZ8x5A/T/IVDGyXcbHncM9TdDa93wn0FsSm82FhTKW7f3vS61thXAw==",
25801 "requires": {
25802 "@types/html-minifier-terser": "^6.0.0",
25803 "html-minifier-terser": "^6.0.2",
25804 "lodash": "^4.17.21",
25805 "pretty-error": "^4.0.0",
25806 "tapable": "^2.0.0"
25807 }
25808 },
25809 "htmlparser2": {
25810 "version": "6.1.0",
25811 "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz",
25812 "integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==",
25813 "requires": {
25814 "domelementtype": "^2.0.1",
25815 "domhandler": "^4.0.0",
25816 "domutils": "^2.5.2",
25817 "entities": "^2.0.0"
25818 }
25819 },
25820 "http-deceiver": {
25821 "version": "1.2.7",
25822 "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz",
25823 "integrity": "sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw=="
25824 },
25825 "http-errors": {
25826 "version": "2.0.0",
25827 "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz",
25828 "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==",
25829 "requires": {
25830 "depd": "2.0.0",
25831 "inherits": "2.0.4",
25832 "setprototypeof": "1.2.0",
25833 "statuses": "2.0.1",
25834 "toidentifier": "1.0.1"
25835 }
25836 },
25837 "http-parser-js": {
25838 "version": "0.5.8",
25839 "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.8.tgz",
25840 "integrity": "sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q=="
25841 },
25842 "http-proxy": {
25843 "version": "1.18.1",
25844 "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz",
25845 "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==",
25846 "requires": {
25847 "eventemitter3": "^4.0.0",
25848 "follow-redirects": "^1.0.0",
25849 "requires-port": "^1.0.0"
25850 }
25851 },
25852 "http-proxy-agent": {
25853 "version": "4.0.1",
25854 "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz",
25855 "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==",
25856 "requires": {
25857 "@tootallnate/once": "1",
25858 "agent-base": "6",
25859 "debug": "4"
25860 }
25861 },
25862 "http-proxy-middleware": {
25863 "version": "2.0.6",
25864 "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.6.tgz",
25865 "integrity": "sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==",
25866 "requires": {
25867 "@types/http-proxy": "^1.17.8",
25868 "http-proxy": "^1.18.1",
25869 "is-glob": "^4.0.1",
25870 "is-plain-obj": "^3.0.0",
25871 "micromatch": "^4.0.2"
25872 }
25873 },
25874 "https-proxy-agent": {
25875 "version": "5.0.1",
25876 "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz",
25877 "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==",
25878 "requires": {
25879 "agent-base": "6",
25880 "debug": "4"
25881 }
25882 },
25883 "human-signals": {
25884 "version": "2.1.0",
25885 "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz",
25886 "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw=="
25887 }, 19129 },
25888 "iconv-lite": { 19130 "node_modules/zwitch": {
25889 "version": "0.6.3",
25890 "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz",
25891 "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==",
25892 "requires": {
25893 "safer-buffer": ">= 2.1.2 < 3.0.0"
25894 }
25895 },
25896 "icss-utils": {
25897 "version": "5.1.0",
25898 "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz",
25899 "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==",
25900 "requires": {}
25901 },
25902 "idb": {
25903 "version": "7.1.1",
25904 "resolved": "https://registry.npmjs.org/idb/-/idb-7.1.1.tgz",
25905 "integrity": "sha512-gchesWBzyvGHRO9W8tzUWFDycow5gwjvFKfyV9FF32Y7F50yZMp7mP+T2mJIWFx49zicqyC4uefHM17o6xKIVQ=="
25906 },
25907 "identity-obj-proxy": {
25908 "version": "3.0.0",
25909 "resolved": "https://registry.npmjs.org/identity-obj-proxy/-/identity-obj-proxy-3.0.0.tgz",
25910 "integrity": "sha512-00n6YnVHKrinT9t0d9+5yZC6UBNJANpYEQvL2LlX6Ab9lnmxzIRcEmTPuyGScvl1+jKuCICX1Z0Ab1pPKKdikA==",
25911 "requires": {
25912 "harmony-reflect": "^1.4.6"
25913 }
25914 },
25915 "ignore": {
25916 "version": "5.3.1",
25917 "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz",
25918 "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw=="
25919 },
25920 "immer": {
25921 "version": "9.0.21",
25922 "resolved": "https://registry.npmjs.org/immer/-/immer-9.0.21.tgz",
25923 "integrity": "sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA=="
25924 },
25925 "import-fresh": {
25926 "version": "3.3.0",
25927 "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz",
25928 "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==",
25929 "requires": {
25930 "parent-module": "^1.0.0",
25931 "resolve-from": "^4.0.0"
25932 },
25933 "dependencies": {
25934 "resolve-from": {
25935 "version": "4.0.0",
25936 "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
25937 "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g=="
25938 }
25939 }
25940 },
25941 "import-local": {
25942 "version": "3.1.0",
25943 "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz",
25944 "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==",
25945 "requires": {
25946 "pkg-dir": "^4.2.0",
25947 "resolve-cwd": "^3.0.0"
25948 }
25949 },
25950 "imurmurhash": {
25951 "version": "0.1.4",
25952 "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
25953 "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA=="
25954 },
25955 "indent-string": {
25956 "version": "4.0.0",
25957 "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz",
25958 "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg=="
25959 },
25960 "inflight": {
25961 "version": "1.0.6",
25962 "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
25963 "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
25964 "requires": {
25965 "once": "^1.3.0",
25966 "wrappy": "1"
25967 }
25968 },
25969 "inherits": {
25970 "version": "2.0.4", 19131 "version": "2.0.4",
25971 "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", 19132 "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-2.0.4.tgz",
25972 "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" 19133 "integrity": "sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==",
25973 }, 19134 "funding": {
25974 "ini": { 19135 "type": "github",
25975 "version": "1.3.8", 19136 "url": "https://github.com/sponsors/wooorm"
25976 "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz",
25977 "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew=="
25978 },
25979 "inline-style-parser": {
25980 "version": "0.1.1",
25981 "resolved": "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.1.1.tgz",
25982 "integrity": "sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q=="
25983 },
25984 "internal-slot": {
25985 "version": "1.0.7",
25986 "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz",
25987 "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==",
25988 "requires": {
25989 "es-errors": "^1.3.0",
25990 "hasown": "^2.0.0",
25991 "side-channel": "^1.0.4"
25992 }
25993 },
25994 "ipaddr.js": {
25995 "version": "2.2.0",
25996 "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.2.0.tgz",
25997 "integrity": "sha512-Ag3wB2o37wslZS19hZqorUnrnzSkpOVy+IiiDEiTqNubEYpYuHWIf6K4psgN2ZWKExS4xhVCrRVfb/wfW8fWJA=="
25998 },
25999 "is-arguments": {
26000 "version": "1.1.1",
26001 "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz",
26002 "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==",
26003 "requires": {
26004 "call-bind": "^1.0.2",
26005 "has-tostringtag": "^1.0.0"
26006 }
26007 },
26008 "is-array-buffer": {
26009 "version": "3.0.4",
26010 "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz",
26011 "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==",
26012 "requires": {
26013 "call-bind": "^1.0.2",
26014 "get-intrinsic": "^1.2.1"
26015 }
26016 },
26017 "is-arrayish": {
26018 "version": "0.2.1",
26019 "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
26020 "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg=="
26021 },
26022 "is-async-function": {
26023 "version": "2.0.0",
26024 "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.0.0.tgz",
26025 "integrity": "sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==",
26026 "requires": {
26027 "has-tostringtag": "^1.0.0"
26028 }
26029 },
26030 "is-bigint": {
26031 "version": "1.0.4",
26032 "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz",
26033 "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==",
26034 "requires": {
26035 "has-bigints": "^1.0.1"
26036 }
26037 },
26038 "is-binary-path": {
26039 "version": "2.1.0",
26040 "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
26041 "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
26042 "requires": {
26043 "binary-extensions": "^2.0.0"
26044 }
26045 },
26046 "is-boolean-object": {
26047 "version": "1.1.2",
26048 "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz",
26049 "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==",
26050 "requires": {
26051 "call-bind": "^1.0.2",
26052 "has-tostringtag": "^1.0.0"
26053 }
26054 },
26055 "is-buffer": {
26056 "version": "2.0.5",
26057 "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz",
26058 "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ=="
26059 },
26060 "is-callable": {
26061 "version": "1.2.7",
26062 "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz",
26063 "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA=="
26064 },
26065 "is-core-module": {
26066 "version": "2.14.0",
26067 "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.14.0.tgz",
26068 "integrity": "sha512-a5dFJih5ZLYlRtDc0dZWP7RiKr6xIKzmn/oAYCDvdLThadVgyJwlaoQPmRtMSpz+rk0OGAgIu+TcM9HUF0fk1A==",
26069 "requires": {
26070 "hasown": "^2.0.2"
26071 }
26072 },
26073 "is-data-view": {
26074 "version": "1.0.1",
26075 "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.1.tgz",
26076 "integrity": "sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==",
26077 "requires": {
26078 "is-typed-array": "^1.1.13"
26079 }
26080 },
26081 "is-date-object": {
26082 "version": "1.0.5",
26083 "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz",
26084 "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==",
26085 "requires": {
26086 "has-tostringtag": "^1.0.0"
26087 }
26088 },
26089 "is-docker": {
26090 "version": "2.2.1",
26091 "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz",
26092 "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ=="
26093 },
26094 "is-extglob": {
26095 "version": "2.1.1",
26096 "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
26097 "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ=="
26098 },
26099 "is-finalizationregistry": {
26100 "version": "1.0.2",
26101 "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.0.2.tgz",
26102 "integrity": "sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==",
26103 "requires": {
26104 "call-bind": "^1.0.2"
26105 }
26106 },
26107 "is-fullwidth-code-point": {
26108 "version": "3.0.0",
26109 "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
26110 "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg=="
26111 },
26112 "is-generator-fn": {
26113 "version": "2.1.0",
26114 "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz",
26115 "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ=="
26116 },
26117 "is-generator-function": {
26118 "version": "1.0.10",
26119 "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz",
26120 "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==",
26121 "requires": {
26122 "has-tostringtag": "^1.0.0"
26123 }
26124 },
26125 "is-glob": {
26126 "version": "4.0.3",
26127 "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
26128 "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
26129 "requires": {
26130 "is-extglob": "^2.1.1"
26131 }
26132 },
26133 "is-map": {
26134 "version": "2.0.2",
26135 "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.2.tgz",
26136 "integrity": "sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg=="
26137 },
26138 "is-module": {
26139 "version": "1.0.0",
26140 "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz",
26141 "integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g=="
26142 },
26143 "is-negative-zero": {
26144 "version": "2.0.3",
26145 "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz",
26146 "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw=="
26147 },
26148 "is-number": {
26149 "version": "7.0.0",
26150 "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
26151 "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng=="
26152 },
26153 "is-number-object": {
26154 "version": "1.0.7",
26155 "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz",
26156 "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==",
26157 "requires": {
26158 "has-tostringtag": "^1.0.0"
26159 }
26160 },
26161 "is-obj": {
26162 "version": "1.0.1",
26163 "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz",
26164 "integrity": "sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg=="
26165 },
26166 "is-path-inside": {
26167 "version": "3.0.3",
26168 "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz",
26169 "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ=="
26170 },
26171 "is-plain-obj": {
26172 "version": "3.0.0",
26173 "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz",
26174 "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA=="
26175 },
26176 "is-potential-custom-element-name": {
26177 "version": "1.0.1",
26178 "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz",
26179 "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ=="
26180 },
26181 "is-regex": {
26182 "version": "1.1.4",
26183 "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz",
26184 "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==",
26185 "requires": {
26186 "call-bind": "^1.0.2",
26187 "has-tostringtag": "^1.0.0"
26188 }
26189 },
26190 "is-regexp": {
26191 "version": "1.0.0",
26192 "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz",
26193 "integrity": "sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA=="
26194 },
26195 "is-root": {
26196 "version": "2.1.0",
26197 "resolved": "https://registry.npmjs.org/is-root/-/is-root-2.1.0.tgz",
26198 "integrity": "sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg=="
26199 },
26200 "is-set": {
26201 "version": "2.0.2",
26202 "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.2.tgz",
26203 "integrity": "sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g=="
26204 },
26205 "is-shared-array-buffer": {
26206 "version": "1.0.3",
26207 "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz",
26208 "integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==",
26209 "requires": {
26210 "call-bind": "^1.0.7"
26211 }
26212 },
26213 "is-stream": {
26214 "version": "2.0.1",
26215 "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz",
26216 "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg=="
26217 },
26218 "is-string": {
26219 "version": "1.0.7",
26220 "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz",
26221 "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==",
26222 "requires": {
26223 "has-tostringtag": "^1.0.0"
26224 }
26225 },
26226 "is-symbol": {
26227 "version": "1.0.4",
26228 "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz",
26229 "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==",
26230 "requires": {
26231 "has-symbols": "^1.0.2"
26232 }
26233 },
26234 "is-typed-array": {
26235 "version": "1.1.13",
26236 "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz",
26237 "integrity": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==",
26238 "requires": {
26239 "which-typed-array": "^1.1.14"
26240 }
26241 },
26242 "is-typedarray": {
26243 "version": "1.0.0",
26244 "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
26245 "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA=="
26246 },
26247 "is-weakmap": {
26248 "version": "2.0.1",
26249 "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.1.tgz",
26250 "integrity": "sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA=="
26251 },
26252 "is-weakref": {
26253 "version": "1.0.2",
26254 "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz",
26255 "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==",
26256 "requires": {
26257 "call-bind": "^1.0.2"
26258 }
26259 },
26260 "is-weakset": {
26261 "version": "2.0.2",
26262 "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.2.tgz",
26263 "integrity": "sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==",
26264 "requires": {
26265 "call-bind": "^1.0.2",
26266 "get-intrinsic": "^1.1.1"
26267 }
26268 },
26269 "is-wsl": {
26270 "version": "2.2.0",
26271 "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz",
26272 "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==",
26273 "requires": {
26274 "is-docker": "^2.0.0"
26275 }
26276 },
26277 "isarray": {
26278 "version": "2.0.5",
26279 "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz",
26280 "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw=="
26281 },
26282 "isexe": {
26283 "version": "2.0.0",
26284 "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
26285 "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw=="
26286 },
26287 "istanbul-lib-coverage": {
26288 "version": "3.2.2",
26289 "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz",
26290 "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg=="
26291 },
26292 "istanbul-lib-instrument": {
26293 "version": "5.2.1",
26294 "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz",
26295 "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==",
26296 "requires": {
26297 "@babel/core": "^7.12.3",
26298 "@babel/parser": "^7.14.7",
26299 "@istanbuljs/schema": "^0.1.2",
26300 "istanbul-lib-coverage": "^3.2.0",
26301 "semver": "^6.3.0"
26302 },
26303 "dependencies": {
26304 "semver": {
26305 "version": "6.3.1",
26306 "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
26307 "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="
26308 }
26309 }
26310 },
26311 "istanbul-lib-report": {
26312 "version": "3.0.1",
26313 "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz",
26314 "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==",
26315 "requires": {
26316 "istanbul-lib-coverage": "^3.0.0",
26317 "make-dir": "^4.0.0",
26318 "supports-color": "^7.1.0"
26319 },
26320 "dependencies": {
26321 "has-flag": {
26322 "version": "4.0.0",
26323 "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
26324 "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
26325 },
26326 "make-dir": {
26327 "version": "4.0.0",
26328 "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz",
26329 "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==",
26330 "requires": {
26331 "semver": "^7.5.3"
26332 }
26333 },
26334 "supports-color": {
26335 "version": "7.2.0",
26336 "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
26337 "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
26338 "requires": {
26339 "has-flag": "^4.0.0"
26340 }
26341 }
26342 }
26343 },
26344 "istanbul-lib-source-maps": {
26345 "version": "4.0.1",
26346 "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz",
26347 "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==",
26348 "requires": {
26349 "debug": "^4.1.1",
26350 "istanbul-lib-coverage": "^3.0.0",
26351 "source-map": "^0.6.1"
26352 },
26353 "dependencies": {
26354 "source-map": {
26355 "version": "0.6.1",
26356 "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
26357 "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
26358 }
26359 }
26360 },
26361 "istanbul-reports": {
26362 "version": "3.1.7",
26363 "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.7.tgz",
26364 "integrity": "sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==",
26365 "requires": {
26366 "html-escaper": "^2.0.0",
26367 "istanbul-lib-report": "^3.0.0"
26368 }
26369 },
26370 "iterator.prototype": {
26371 "version": "1.1.2",
26372 "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.2.tgz",
26373 "integrity": "sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==",
26374 "requires": {
26375 "define-properties": "^1.2.1",
26376 "get-intrinsic": "^1.2.1",
26377 "has-symbols": "^1.0.3",
26378 "reflect.getprototypeof": "^1.0.4",
26379 "set-function-name": "^2.0.1"
26380 }
26381 },
26382 "jackspeak": {
26383 "version": "3.4.3",
26384 "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz",
26385 "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==",
26386 "requires": {
26387 "@isaacs/cliui": "^8.0.2",
26388 "@pkgjs/parseargs": "^0.11.0"
26389 }
26390 },
26391 "jake": {
26392 "version": "10.9.1",
26393 "resolved": "https://registry.npmjs.org/jake/-/jake-10.9.1.tgz",
26394 "integrity": "sha512-61btcOHNnLnsOdtLgA5efqQWjnSi/vow5HbI7HMdKKWqvrKR1bLK3BPlJn9gcSaP2ewuamUSMB5XEy76KUIS2w==",
26395 "requires": {
26396 "async": "^3.2.3",
26397 "chalk": "^4.0.2",
26398 "filelist": "^1.0.4",
26399 "minimatch": "^3.1.2"
26400 },
26401 "dependencies": {
26402 "ansi-styles": {
26403 "version": "4.3.0",
26404 "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
26405 "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
26406 "requires": {
26407 "color-convert": "^2.0.1"
26408 }
26409 },
26410 "chalk": {
26411 "version": "4.1.2",
26412 "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
26413 "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
26414 "requires": {
26415 "ansi-styles": "^4.1.0",
26416 "supports-color": "^7.1.0"
26417 }
26418 },
26419 "color-convert": {
26420 "version": "2.0.1",
26421 "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
26422 "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
26423 "requires": {
26424 "color-name": "~1.1.4"
26425 }
26426 },
26427 "color-name": {
26428 "version": "1.1.4",
26429 "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
26430 "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
26431 },
26432 "has-flag": {
26433 "version": "4.0.0",
26434 "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
26435 "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
26436 },
26437 "supports-color": {
26438 "version": "7.2.0",
26439 "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
26440 "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
26441 "requires": {
26442 "has-flag": "^4.0.0"
26443 }
26444 }
26445 }
26446 },
26447 "jest": {
26448 "version": "27.5.1",
26449 "resolved": "https://registry.npmjs.org/jest/-/jest-27.5.1.tgz",
26450 "integrity": "sha512-Yn0mADZB89zTtjkPJEXwrac3LHudkQMR+Paqa8uxJHCBr9agxztUifWCyiYrjhMPBoUVBjyny0I7XH6ozDr7QQ==",
26451 "requires": {
26452 "@jest/core": "^27.5.1",
26453 "import-local": "^3.0.2",
26454 "jest-cli": "^27.5.1"
26455 }
26456 },
26457 "jest-changed-files": {
26458 "version": "27.5.1",
26459 "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-27.5.1.tgz",
26460 "integrity": "sha512-buBLMiByfWGCoMsLLzGUUSpAmIAGnbR2KJoMN10ziLhOLvP4e0SlypHnAel8iqQXTrcbmfEY9sSqae5sgUsTvw==",
26461 "requires": {
26462 "@jest/types": "^27.5.1",
26463 "execa": "^5.0.0",
26464 "throat": "^6.0.1"
26465 }
26466 },
26467 "jest-circus": {
26468 "version": "27.5.1",
26469 "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-27.5.1.tgz",
26470 "integrity": "sha512-D95R7x5UtlMA5iBYsOHFFbMD/GVA4R/Kdq15f7xYWUfWHBto9NYRsOvnSauTgdF+ogCpJ4tyKOXhUifxS65gdw==",
26471 "requires": {
26472 "@jest/environment": "^27.5.1",
26473 "@jest/test-result": "^27.5.1",
26474 "@jest/types": "^27.5.1",
26475 "@types/node": "*",
26476 "chalk": "^4.0.0",
26477 "co": "^4.6.0",
26478 "dedent": "^0.7.0",
26479 "expect": "^27.5.1",
26480 "is-generator-fn": "^2.0.0",
26481 "jest-each": "^27.5.1",
26482 "jest-matcher-utils": "^27.5.1",
26483 "jest-message-util": "^27.5.1",
26484 "jest-runtime": "^27.5.1",
26485 "jest-snapshot": "^27.5.1",
26486 "jest-util": "^27.5.1",
26487 "pretty-format": "^27.5.1",
26488 "slash": "^3.0.0",
26489 "stack-utils": "^2.0.3",
26490 "throat": "^6.0.1"
26491 },
26492 "dependencies": {
26493 "ansi-styles": {
26494 "version": "4.3.0",
26495 "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
26496 "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
26497 "requires": {
26498 "color-convert": "^2.0.1"
26499 }
26500 },
26501 "chalk": {
26502 "version": "4.1.2",
26503 "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
26504 "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
26505 "requires": {
26506 "ansi-styles": "^4.1.0",
26507 "supports-color": "^7.1.0"
26508 }
26509 },
26510 "color-convert": {
26511 "version": "2.0.1",
26512 "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
26513 "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
26514 "requires": {
26515 "color-name": "~1.1.4"
26516 }
26517 },
26518 "color-name": {
26519 "version": "1.1.4",
26520 "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
26521 "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
26522 },
26523 "has-flag": {
26524 "version": "4.0.0",
26525 "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
26526 "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
26527 },
26528 "supports-color": {
26529 "version": "7.2.0",
26530 "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
26531 "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
26532 "requires": {
26533 "has-flag": "^4.0.0"
26534 }
26535 }
26536 }
26537 },
26538 "jest-cli": {
26539 "version": "27.5.1",
26540 "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-27.5.1.tgz",
26541 "integrity": "sha512-Hc6HOOwYq4/74/c62dEE3r5elx8wjYqxY0r0G/nFrLDPMFRu6RA/u8qINOIkvhxG7mMQ5EJsOGfRpI8L6eFUVw==",
26542 "requires": {
26543 "@jest/core": "^27.5.1",
26544 "@jest/test-result": "^27.5.1",
26545 "@jest/types": "^27.5.1",
26546 "chalk": "^4.0.0",
26547 "exit": "^0.1.2",
26548 "graceful-fs": "^4.2.9",
26549 "import-local": "^3.0.2",
26550 "jest-config": "^27.5.1",
26551 "jest-util": "^27.5.1",
26552 "jest-validate": "^27.5.1",
26553 "prompts": "^2.0.1",
26554 "yargs": "^16.2.0"
26555 },
26556 "dependencies": {
26557 "ansi-styles": {
26558 "version": "4.3.0",
26559 "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
26560 "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
26561 "requires": {
26562 "color-convert": "^2.0.1"
26563 }
26564 },
26565 "chalk": {
26566 "version": "4.1.2",
26567 "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
26568 "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
26569 "requires": {
26570 "ansi-styles": "^4.1.0",
26571 "supports-color": "^7.1.0"
26572 }
26573 },
26574 "color-convert": {
26575 "version": "2.0.1",
26576 "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
26577 "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
26578 "requires": {
26579 "color-name": "~1.1.4"
26580 }
26581 },
26582 "color-name": {
26583 "version": "1.1.4",
26584 "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
26585 "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
26586 },
26587 "has-flag": {
26588 "version": "4.0.0",
26589 "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
26590 "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
26591 },
26592 "supports-color": {
26593 "version": "7.2.0",
26594 "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
26595 "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
26596 "requires": {
26597 "has-flag": "^4.0.0"
26598 }
26599 }
26600 }
26601 },
26602 "jest-config": {
26603 "version": "27.5.1",
26604 "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-27.5.1.tgz",
26605 "integrity": "sha512-5sAsjm6tGdsVbW9ahcChPAFCk4IlkQUknH5AvKjuLTSlcO/wCZKyFdn7Rg0EkC+OGgWODEy2hDpWB1PgzH0JNA==",
26606 "requires": {
26607 "@babel/core": "^7.8.0",
26608 "@jest/test-sequencer": "^27.5.1",
26609 "@jest/types": "^27.5.1",
26610 "babel-jest": "^27.5.1",
26611 "chalk": "^4.0.0",
26612 "ci-info": "^3.2.0",
26613 "deepmerge": "^4.2.2",
26614 "glob": "^7.1.1",
26615 "graceful-fs": "^4.2.9",
26616 "jest-circus": "^27.5.1",
26617 "jest-environment-jsdom": "^27.5.1",
26618 "jest-environment-node": "^27.5.1",
26619 "jest-get-type": "^27.5.1",
26620 "jest-jasmine2": "^27.5.1",
26621 "jest-regex-util": "^27.5.1",
26622 "jest-resolve": "^27.5.1",
26623 "jest-runner": "^27.5.1",
26624 "jest-util": "^27.5.1",
26625 "jest-validate": "^27.5.1",
26626 "micromatch": "^4.0.4",
26627 "parse-json": "^5.2.0",
26628 "pretty-format": "^27.5.1",
26629 "slash": "^3.0.0",
26630 "strip-json-comments": "^3.1.1"
26631 },
26632 "dependencies": {
26633 "ansi-styles": {
26634 "version": "4.3.0",
26635 "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
26636 "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
26637 "requires": {
26638 "color-convert": "^2.0.1"
26639 }
26640 },
26641 "chalk": {
26642 "version": "4.1.2",
26643 "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
26644 "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
26645 "requires": {
26646 "ansi-styles": "^4.1.0",
26647 "supports-color": "^7.1.0"
26648 }
26649 },
26650 "color-convert": {
26651 "version": "2.0.1",
26652 "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
26653 "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
26654 "requires": {
26655 "color-name": "~1.1.4"
26656 }
26657 },
26658 "color-name": {
26659 "version": "1.1.4",
26660 "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
26661 "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
26662 },
26663 "has-flag": {
26664 "version": "4.0.0",
26665 "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
26666 "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
26667 },
26668 "supports-color": {
26669 "version": "7.2.0",
26670 "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
26671 "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
26672 "requires": {
26673 "has-flag": "^4.0.0"
26674 }
26675 }
26676 }
26677 },
26678 "jest-diff": {
26679 "version": "27.5.1",
26680 "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-27.5.1.tgz",
26681 "integrity": "sha512-m0NvkX55LDt9T4mctTEgnZk3fmEg3NRYutvMPWM/0iPnkFj2wIeF45O1718cMSOFO1vINkqmxqD8vE37uTEbqw==",
26682 "requires": {
26683 "chalk": "^4.0.0",
26684 "diff-sequences": "^27.5.1",
26685 "jest-get-type": "^27.5.1",
26686 "pretty-format": "^27.5.1"
26687 },
26688 "dependencies": {
26689 "ansi-styles": {
26690 "version": "4.3.0",
26691 "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
26692 "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
26693 "requires": {
26694 "color-convert": "^2.0.1"
26695 }
26696 },
26697 "chalk": {
26698 "version": "4.1.2",
26699 "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
26700 "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
26701 "requires": {
26702 "ansi-styles": "^4.1.0",
26703 "supports-color": "^7.1.0"
26704 }
26705 },
26706 "color-convert": {
26707 "version": "2.0.1",
26708 "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
26709 "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
26710 "requires": {
26711 "color-name": "~1.1.4"
26712 }
26713 },
26714 "color-name": {
26715 "version": "1.1.4",
26716 "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
26717 "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
26718 },
26719 "has-flag": {
26720 "version": "4.0.0",
26721 "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
26722 "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
26723 },
26724 "supports-color": {
26725 "version": "7.2.0",
26726 "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
26727 "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
26728 "requires": {
26729 "has-flag": "^4.0.0"
26730 }
26731 }
26732 }
26733 },
26734 "jest-docblock": {
26735 "version": "27.5.1",
26736 "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-27.5.1.tgz",
26737 "integrity": "sha512-rl7hlABeTsRYxKiUfpHrQrG4e2obOiTQWfMEH3PxPjOtdsfLQO4ReWSZaQ7DETm4xu07rl4q/h4zcKXyU0/OzQ==",
26738 "requires": {
26739 "detect-newline": "^3.0.0"
26740 }
26741 },
26742 "jest-each": {
26743 "version": "27.5.1",
26744 "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-27.5.1.tgz",
26745 "integrity": "sha512-1Ff6p+FbhT/bXQnEouYy00bkNSY7OUpfIcmdl8vZ31A1UUaurOLPA8a8BbJOF2RDUElwJhmeaV7LnagI+5UwNQ==",
26746 "requires": {
26747 "@jest/types": "^27.5.1",
26748 "chalk": "^4.0.0",
26749 "jest-get-type": "^27.5.1",
26750 "jest-util": "^27.5.1",
26751 "pretty-format": "^27.5.1"
26752 },
26753 "dependencies": {
26754 "ansi-styles": {
26755 "version": "4.3.0",
26756 "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
26757 "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
26758 "requires": {
26759 "color-convert": "^2.0.1"
26760 }
26761 },
26762 "chalk": {
26763 "version": "4.1.2",
26764 "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
26765 "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
26766 "requires": {
26767 "ansi-styles": "^4.1.0",
26768 "supports-color": "^7.1.0"
26769 }
26770 },
26771 "color-convert": {
26772 "version": "2.0.1",
26773 "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
26774 "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
26775 "requires": {
26776 "color-name": "~1.1.4"
26777 }
26778 },
26779 "color-name": {
26780 "version": "1.1.4",
26781 "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
26782 "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
26783 },
26784 "has-flag": {
26785 "version": "4.0.0",
26786 "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
26787 "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
26788 },
26789 "supports-color": {
26790 "version": "7.2.0",
26791 "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
26792 "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
26793 "requires": {
26794 "has-flag": "^4.0.0"
26795 }
26796 }
26797 }
26798 },
26799 "jest-environment-jsdom": {
26800 "version": "27.5.1",
26801 "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-27.5.1.tgz",
26802 "integrity": "sha512-TFBvkTC1Hnnnrka/fUb56atfDtJ9VMZ94JkjTbggl1PEpwrYtUBKMezB3inLmWqQsXYLcMwNoDQwoBTAvFfsfw==",
26803 "requires": {
26804 "@jest/environment": "^27.5.1",
26805 "@jest/fake-timers": "^27.5.1",
26806 "@jest/types": "^27.5.1",
26807 "@types/node": "*",
26808 "jest-mock": "^27.5.1",
26809 "jest-util": "^27.5.1",
26810 "jsdom": "^16.6.0"
26811 }
26812 },
26813 "jest-environment-node": {
26814 "version": "27.5.1",
26815 "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-27.5.1.tgz",
26816 "integrity": "sha512-Jt4ZUnxdOsTGwSRAfKEnE6BcwsSPNOijjwifq5sDFSA2kesnXTvNqKHYgM0hDq3549Uf/KzdXNYn4wMZJPlFLw==",
26817 "requires": {
26818 "@jest/environment": "^27.5.1",
26819 "@jest/fake-timers": "^27.5.1",
26820 "@jest/types": "^27.5.1",
26821 "@types/node": "*",
26822 "jest-mock": "^27.5.1",
26823 "jest-util": "^27.5.1"
26824 }
26825 },
26826 "jest-get-type": {
26827 "version": "27.5.1",
26828 "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz",
26829 "integrity": "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw=="
26830 },
26831 "jest-haste-map": {
26832 "version": "27.5.1",
26833 "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.5.1.tgz",
26834 "integrity": "sha512-7GgkZ4Fw4NFbMSDSpZwXeBiIbx+t/46nJ2QitkOjvwPYyZmqttu2TDSimMHP1EkPOi4xUZAN1doE5Vd25H4Jng==",
26835 "requires": {
26836 "@jest/types": "^27.5.1",
26837 "@types/graceful-fs": "^4.1.2",
26838 "@types/node": "*",
26839 "anymatch": "^3.0.3",
26840 "fb-watchman": "^2.0.0",
26841 "fsevents": "^2.3.2",
26842 "graceful-fs": "^4.2.9",
26843 "jest-regex-util": "^27.5.1",
26844 "jest-serializer": "^27.5.1",
26845 "jest-util": "^27.5.1",
26846 "jest-worker": "^27.5.1",
26847 "micromatch": "^4.0.4",
26848 "walker": "^1.0.7"
26849 }
26850 },
26851 "jest-jasmine2": {
26852 "version": "27.5.1",
26853 "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-27.5.1.tgz",
26854 "integrity": "sha512-jtq7VVyG8SqAorDpApwiJJImd0V2wv1xzdheGHRGyuT7gZm6gG47QEskOlzsN1PG/6WNaCo5pmwMHDf3AkG2pQ==",
26855 "requires": {
26856 "@jest/environment": "^27.5.1",
26857 "@jest/source-map": "^27.5.1",
26858 "@jest/test-result": "^27.5.1",
26859 "@jest/types": "^27.5.1",
26860 "@types/node": "*",
26861 "chalk": "^4.0.0",
26862 "co": "^4.6.0",
26863 "expect": "^27.5.1",
26864 "is-generator-fn": "^2.0.0",
26865 "jest-each": "^27.5.1",
26866 "jest-matcher-utils": "^27.5.1",
26867 "jest-message-util": "^27.5.1",
26868 "jest-runtime": "^27.5.1",
26869 "jest-snapshot": "^27.5.1",
26870 "jest-util": "^27.5.1",
26871 "pretty-format": "^27.5.1",
26872 "throat": "^6.0.1"
26873 },
26874 "dependencies": {
26875 "ansi-styles": {
26876 "version": "4.3.0",
26877 "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
26878 "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
26879 "requires": {
26880 "color-convert": "^2.0.1"
26881 }
26882 },
26883 "chalk": {
26884 "version": "4.1.2",
26885 "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
26886 "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
26887 "requires": {
26888 "ansi-styles": "^4.1.0",
26889 "supports-color": "^7.1.0"
26890 }
26891 },
26892 "color-convert": {
26893 "version": "2.0.1",
26894 "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
26895 "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
26896 "requires": {
26897 "color-name": "~1.1.4"
26898 }
26899 },
26900 "color-name": {
26901 "version": "1.1.4",
26902 "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
26903 "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
26904 },
26905 "has-flag": {
26906 "version": "4.0.0",
26907 "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
26908 "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
26909 },
26910 "supports-color": {
26911 "version": "7.2.0",
26912 "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
26913 "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
26914 "requires": {
26915 "has-flag": "^4.0.0"
26916 }
26917 }
26918 }
26919 },
26920 "jest-leak-detector": {
26921 "version": "27.5.1",
26922 "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-27.5.1.tgz",
26923 "integrity": "sha512-POXfWAMvfU6WMUXftV4HolnJfnPOGEu10fscNCA76KBpRRhcMN2c8d3iT2pxQS3HLbA+5X4sOUPzYO2NUyIlHQ==",
26924 "requires": {
26925 "jest-get-type": "^27.5.1",
26926 "pretty-format": "^27.5.1"
26927 }
26928 },
26929 "jest-matcher-utils": {
26930 "version": "27.5.1",
26931 "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.5.1.tgz",
26932 "integrity": "sha512-z2uTx/T6LBaCoNWNFWwChLBKYxTMcGBRjAt+2SbP929/Fflb9aa5LGma654Rz8z9HLxsrUaYzxE9T/EFIL/PAw==",
26933 "requires": {
26934 "chalk": "^4.0.0",
26935 "jest-diff": "^27.5.1",
26936 "jest-get-type": "^27.5.1",
26937 "pretty-format": "^27.5.1"
26938 },
26939 "dependencies": {
26940 "ansi-styles": {
26941 "version": "4.3.0",
26942 "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
26943 "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
26944 "requires": {
26945 "color-convert": "^2.0.1"
26946 }
26947 },
26948 "chalk": {
26949 "version": "4.1.2",
26950 "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
26951 "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
26952 "requires": {
26953 "ansi-styles": "^4.1.0",
26954 "supports-color": "^7.1.0"
26955 }
26956 },
26957 "color-convert": {
26958 "version": "2.0.1",
26959 "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
26960 "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
26961 "requires": {
26962 "color-name": "~1.1.4"
26963 }
26964 },
26965 "color-name": {
26966 "version": "1.1.4",
26967 "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
26968 "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
26969 },
26970 "has-flag": {
26971 "version": "4.0.0",
26972 "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
26973 "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
26974 },
26975 "supports-color": {
26976 "version": "7.2.0",
26977 "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
26978 "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
26979 "requires": {
26980 "has-flag": "^4.0.0"
26981 }
26982 }
26983 }
26984 },
26985 "jest-message-util": {
26986 "version": "27.5.1",
26987 "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.5.1.tgz",
26988 "integrity": "sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g==",
26989 "requires": {
26990 "@babel/code-frame": "^7.12.13",
26991 "@jest/types": "^27.5.1",
26992 "@types/stack-utils": "^2.0.0",
26993 "chalk": "^4.0.0",
26994 "graceful-fs": "^4.2.9",
26995 "micromatch": "^4.0.4",
26996 "pretty-format": "^27.5.1",
26997 "slash": "^3.0.0",
26998 "stack-utils": "^2.0.3"
26999 },
27000 "dependencies": {
27001 "ansi-styles": {
27002 "version": "4.3.0",
27003 "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
27004 "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
27005 "requires": {
27006 "color-convert": "^2.0.1"
27007 }
27008 },
27009 "chalk": {
27010 "version": "4.1.2",
27011 "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
27012 "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
27013 "requires": {
27014 "ansi-styles": "^4.1.0",
27015 "supports-color": "^7.1.0"
27016 }
27017 },
27018 "color-convert": {
27019 "version": "2.0.1",
27020 "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
27021 "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
27022 "requires": {
27023 "color-name": "~1.1.4"
27024 }
27025 },
27026 "color-name": {
27027 "version": "1.1.4",
27028 "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
27029 "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
27030 },
27031 "has-flag": {
27032 "version": "4.0.0",
27033 "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
27034 "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
27035 },
27036 "supports-color": {
27037 "version": "7.2.0",
27038 "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
27039 "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
27040 "requires": {
27041 "has-flag": "^4.0.0"
27042 }
27043 }
27044 }
27045 },
27046 "jest-mock": {
27047 "version": "27.5.1",
27048 "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-27.5.1.tgz",
27049 "integrity": "sha512-K4jKbY1d4ENhbrG2zuPWaQBvDly+iZ2yAW+T1fATN78hc0sInwn7wZB8XtlNnvHug5RMwV897Xm4LqmPM4e2Og==",
27050 "requires": {
27051 "@jest/types": "^27.5.1",
27052 "@types/node": "*"
27053 }
27054 },
27055 "jest-pnp-resolver": {
27056 "version": "1.2.3",
27057 "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz",
27058 "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==",
27059 "requires": {}
27060 },
27061 "jest-regex-util": {
27062 "version": "27.5.1",
27063 "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-27.5.1.tgz",
27064 "integrity": "sha512-4bfKq2zie+x16okqDXjXn9ql2B0dScQu+vcwe4TvFVhkVyuWLqpZrZtXxLLWoXYgn0E87I6r6GRYHF7wFZBUvg=="
27065 },
27066 "jest-resolve": {
27067 "version": "27.5.1",
27068 "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-27.5.1.tgz",
27069 "integrity": "sha512-FFDy8/9E6CV83IMbDpcjOhumAQPDyETnU2KZ1O98DwTnz8AOBsW/Xv3GySr1mOZdItLR+zDZ7I/UdTFbgSOVCw==",
27070 "requires": {
27071 "@jest/types": "^27.5.1",
27072 "chalk": "^4.0.0",
27073 "graceful-fs": "^4.2.9",
27074 "jest-haste-map": "^27.5.1",
27075 "jest-pnp-resolver": "^1.2.2",
27076 "jest-util": "^27.5.1",
27077 "jest-validate": "^27.5.1",
27078 "resolve": "^1.20.0",
27079 "resolve.exports": "^1.1.0",
27080 "slash": "^3.0.0"
27081 },
27082 "dependencies": {
27083 "ansi-styles": {
27084 "version": "4.3.0",
27085 "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
27086 "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
27087 "requires": {
27088 "color-convert": "^2.0.1"
27089 }
27090 },
27091 "chalk": {
27092 "version": "4.1.2",
27093 "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
27094 "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
27095 "requires": {
27096 "ansi-styles": "^4.1.0",
27097 "supports-color": "^7.1.0"
27098 }
27099 },
27100 "color-convert": {
27101 "version": "2.0.1",
27102 "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
27103 "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
27104 "requires": {
27105 "color-name": "~1.1.4"
27106 }
27107 },
27108 "color-name": {
27109 "version": "1.1.4",
27110 "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
27111 "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
27112 },
27113 "has-flag": {
27114 "version": "4.0.0",
27115 "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
27116 "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
27117 },
27118 "supports-color": {
27119 "version": "7.2.0",
27120 "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
27121 "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
27122 "requires": {
27123 "has-flag": "^4.0.0"
27124 }
27125 }
27126 }
27127 },
27128 "jest-resolve-dependencies": {
27129 "version": "27.5.1",
27130 "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-27.5.1.tgz",
27131 "integrity": "sha512-QQOOdY4PE39iawDn5rzbIePNigfe5B9Z91GDD1ae/xNDlu9kaat8QQ5EKnNmVWPV54hUdxCVwwj6YMgR2O7IOg==",
27132 "requires": {
27133 "@jest/types": "^27.5.1",
27134 "jest-regex-util": "^27.5.1",
27135 "jest-snapshot": "^27.5.1"
27136 }
27137 },
27138 "jest-runner": {
27139 "version": "27.5.1",
27140 "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-27.5.1.tgz",
27141 "integrity": "sha512-g4NPsM4mFCOwFKXO4p/H/kWGdJp9V8kURY2lX8Me2drgXqG7rrZAx5kv+5H7wtt/cdFIjhqYx1HrlqWHaOvDaQ==",
27142 "requires": {
27143 "@jest/console": "^27.5.1",
27144 "@jest/environment": "^27.5.1",
27145 "@jest/test-result": "^27.5.1",
27146 "@jest/transform": "^27.5.1",
27147 "@jest/types": "^27.5.1",
27148 "@types/node": "*",
27149 "chalk": "^4.0.0",
27150 "emittery": "^0.8.1",
27151 "graceful-fs": "^4.2.9",
27152 "jest-docblock": "^27.5.1",
27153 "jest-environment-jsdom": "^27.5.1",
27154 "jest-environment-node": "^27.5.1",
27155 "jest-haste-map": "^27.5.1",
27156 "jest-leak-detector": "^27.5.1",
27157 "jest-message-util": "^27.5.1",
27158 "jest-resolve": "^27.5.1",
27159 "jest-runtime": "^27.5.1",
27160 "jest-util": "^27.5.1",
27161 "jest-worker": "^27.5.1",
27162 "source-map-support": "^0.5.6",
27163 "throat": "^6.0.1"
27164 },
27165 "dependencies": {
27166 "ansi-styles": {
27167 "version": "4.3.0",
27168 "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
27169 "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
27170 "requires": {
27171 "color-convert": "^2.0.1"
27172 }
27173 },
27174 "chalk": {
27175 "version": "4.1.2",
27176 "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
27177 "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
27178 "requires": {
27179 "ansi-styles": "^4.1.0",
27180 "supports-color": "^7.1.0"
27181 }
27182 },
27183 "color-convert": {
27184 "version": "2.0.1",
27185 "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
27186 "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
27187 "requires": {
27188 "color-name": "~1.1.4"
27189 }
27190 },
27191 "color-name": {
27192 "version": "1.1.4",
27193 "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
27194 "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
27195 },
27196 "has-flag": {
27197 "version": "4.0.0",
27198 "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
27199 "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
27200 },
27201 "supports-color": {
27202 "version": "7.2.0",
27203 "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
27204 "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
27205 "requires": {
27206 "has-flag": "^4.0.0"
27207 }
27208 }
27209 }
27210 },
27211 "jest-runtime": {
27212 "version": "27.5.1",
27213 "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-27.5.1.tgz",
27214 "integrity": "sha512-o7gxw3Gf+H2IGt8fv0RiyE1+r83FJBRruoA+FXrlHw6xEyBsU8ugA6IPfTdVyA0w8HClpbK+DGJxH59UrNMx8A==",
27215 "requires": {
27216 "@jest/environment": "^27.5.1",
27217 "@jest/fake-timers": "^27.5.1",
27218 "@jest/globals": "^27.5.1",
27219 "@jest/source-map": "^27.5.1",
27220 "@jest/test-result": "^27.5.1",
27221 "@jest/transform": "^27.5.1",
27222 "@jest/types": "^27.5.1",
27223 "chalk": "^4.0.0",
27224 "cjs-module-lexer": "^1.0.0",
27225 "collect-v8-coverage": "^1.0.0",
27226 "execa": "^5.0.0",
27227 "glob": "^7.1.3",
27228 "graceful-fs": "^4.2.9",
27229 "jest-haste-map": "^27.5.1",
27230 "jest-message-util": "^27.5.1",
27231 "jest-mock": "^27.5.1",
27232 "jest-regex-util": "^27.5.1",
27233 "jest-resolve": "^27.5.1",
27234 "jest-snapshot": "^27.5.1",
27235 "jest-util": "^27.5.1",
27236 "slash": "^3.0.0",
27237 "strip-bom": "^4.0.0"
27238 },
27239 "dependencies": {
27240 "ansi-styles": {
27241 "version": "4.3.0",
27242 "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
27243 "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
27244 "requires": {
27245 "color-convert": "^2.0.1"
27246 }
27247 },
27248 "chalk": {
27249 "version": "4.1.2",
27250 "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
27251 "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
27252 "requires": {
27253 "ansi-styles": "^4.1.0",
27254 "supports-color": "^7.1.0"
27255 }
27256 },
27257 "color-convert": {
27258 "version": "2.0.1",
27259 "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
27260 "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
27261 "requires": {
27262 "color-name": "~1.1.4"
27263 }
27264 },
27265 "color-name": {
27266 "version": "1.1.4",
27267 "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
27268 "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
27269 },
27270 "has-flag": {
27271 "version": "4.0.0",
27272 "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
27273 "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
27274 },
27275 "supports-color": {
27276 "version": "7.2.0",
27277 "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
27278 "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
27279 "requires": {
27280 "has-flag": "^4.0.0"
27281 }
27282 }
27283 }
27284 },
27285 "jest-serializer": {
27286 "version": "27.5.1",
27287 "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.5.1.tgz",
27288 "integrity": "sha512-jZCyo6iIxO1aqUxpuBlwTDMkzOAJS4a3eYz3YzgxxVQFwLeSA7Jfq5cbqCY+JLvTDrWirgusI/0KwxKMgrdf7w==",
27289 "requires": {
27290 "@types/node": "*",
27291 "graceful-fs": "^4.2.9"
27292 }
27293 },
27294 "jest-snapshot": {
27295 "version": "27.5.1",
27296 "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-27.5.1.tgz",
27297 "integrity": "sha512-yYykXI5a0I31xX67mgeLw1DZ0bJB+gpq5IpSuCAoyDi0+BhgU/RIrL+RTzDmkNTchvDFWKP8lp+w/42Z3us5sA==",
27298 "requires": {
27299 "@babel/core": "^7.7.2",
27300 "@babel/generator": "^7.7.2",
27301 "@babel/plugin-syntax-typescript": "^7.7.2",
27302 "@babel/traverse": "^7.7.2",
27303 "@babel/types": "^7.0.0",
27304 "@jest/transform": "^27.5.1",
27305 "@jest/types": "^27.5.1",
27306 "@types/babel__traverse": "^7.0.4",
27307 "@types/prettier": "^2.1.5",
27308 "babel-preset-current-node-syntax": "^1.0.0",
27309 "chalk": "^4.0.0",
27310 "expect": "^27.5.1",
27311 "graceful-fs": "^4.2.9",
27312 "jest-diff": "^27.5.1",
27313 "jest-get-type": "^27.5.1",
27314 "jest-haste-map": "^27.5.1",
27315 "jest-matcher-utils": "^27.5.1",
27316 "jest-message-util": "^27.5.1",
27317 "jest-util": "^27.5.1",
27318 "natural-compare": "^1.4.0",
27319 "pretty-format": "^27.5.1",
27320 "semver": "^7.3.2"
27321 },
27322 "dependencies": {
27323 "ansi-styles": {
27324 "version": "4.3.0",
27325 "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
27326 "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
27327 "requires": {
27328 "color-convert": "^2.0.1"
27329 }
27330 },
27331 "chalk": {
27332 "version": "4.1.2",
27333 "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
27334 "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
27335 "requires": {
27336 "ansi-styles": "^4.1.0",
27337 "supports-color": "^7.1.0"
27338 }
27339 },
27340 "color-convert": {
27341 "version": "2.0.1",
27342 "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
27343 "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
27344 "requires": {
27345 "color-name": "~1.1.4"
27346 }
27347 },
27348 "color-name": {
27349 "version": "1.1.4",
27350 "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
27351 "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
27352 },
27353 "has-flag": {
27354 "version": "4.0.0",
27355 "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
27356 "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
27357 },
27358 "supports-color": {
27359 "version": "7.2.0",
27360 "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
27361 "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
27362 "requires": {
27363 "has-flag": "^4.0.0"
27364 }
27365 }
27366 }
27367 },
27368 "jest-util": {
27369 "version": "27.5.1",
27370 "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz",
27371 "integrity": "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==",
27372 "requires": {
27373 "@jest/types": "^27.5.1",
27374 "@types/node": "*",
27375 "chalk": "^4.0.0",
27376 "ci-info": "^3.2.0",
27377 "graceful-fs": "^4.2.9",
27378 "picomatch": "^2.2.3"
27379 },
27380 "dependencies": {
27381 "ansi-styles": {
27382 "version": "4.3.0",
27383 "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
27384 "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
27385 "requires": {
27386 "color-convert": "^2.0.1"
27387 }
27388 },
27389 "chalk": {
27390 "version": "4.1.2",
27391 "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
27392 "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
27393 "requires": {
27394 "ansi-styles": "^4.1.0",
27395 "supports-color": "^7.1.0"
27396 }
27397 },
27398 "color-convert": {
27399 "version": "2.0.1",
27400 "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
27401 "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
27402 "requires": {
27403 "color-name": "~1.1.4"
27404 }
27405 },
27406 "color-name": {
27407 "version": "1.1.4",
27408 "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
27409 "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
27410 },
27411 "has-flag": {
27412 "version": "4.0.0",
27413 "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
27414 "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
27415 },
27416 "supports-color": {
27417 "version": "7.2.0",
27418 "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
27419 "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
27420 "requires": {
27421 "has-flag": "^4.0.0"
27422 }
27423 }
27424 }
27425 },
27426 "jest-validate": {
27427 "version": "27.5.1",
27428 "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-27.5.1.tgz",
27429 "integrity": "sha512-thkNli0LYTmOI1tDB3FI1S1RTp/Bqyd9pTarJwL87OIBFuqEb5Apv5EaApEudYg4g86e3CT6kM0RowkhtEnCBQ==",
27430 "requires": {
27431 "@jest/types": "^27.5.1",
27432 "camelcase": "^6.2.0",
27433 "chalk": "^4.0.0",
27434 "jest-get-type": "^27.5.1",
27435 "leven": "^3.1.0",
27436 "pretty-format": "^27.5.1"
27437 },
27438 "dependencies": {
27439 "ansi-styles": {
27440 "version": "4.3.0",
27441 "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
27442 "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
27443 "requires": {
27444 "color-convert": "^2.0.1"
27445 }
27446 },
27447 "chalk": {
27448 "version": "4.1.2",
27449 "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
27450 "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
27451 "requires": {
27452 "ansi-styles": "^4.1.0",
27453 "supports-color": "^7.1.0"
27454 }
27455 },
27456 "color-convert": {
27457 "version": "2.0.1",
27458 "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
27459 "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
27460 "requires": {
27461 "color-name": "~1.1.4"
27462 }
27463 },
27464 "color-name": {
27465 "version": "1.1.4",
27466 "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
27467 "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
27468 },
27469 "has-flag": {
27470 "version": "4.0.0",
27471 "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
27472 "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
27473 },
27474 "supports-color": {
27475 "version": "7.2.0",
27476 "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
27477 "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
27478 "requires": {
27479 "has-flag": "^4.0.0"
27480 }
27481 }
27482 }
27483 },
27484 "jest-watch-typeahead": {
27485 "version": "1.1.0",
27486 "resolved": "https://registry.npmjs.org/jest-watch-typeahead/-/jest-watch-typeahead-1.1.0.tgz",
27487 "integrity": "sha512-Va5nLSJTN7YFtC2jd+7wsoe1pNe5K4ShLux/E5iHEwlB9AxaxmggY7to9KUqKojhaJw3aXqt5WAb4jGPOolpEw==",
27488 "requires": {
27489 "ansi-escapes": "^4.3.1",
27490 "chalk": "^4.0.0",
27491 "jest-regex-util": "^28.0.0",
27492 "jest-watcher": "^28.0.0",
27493 "slash": "^4.0.0",
27494 "string-length": "^5.0.1",
27495 "strip-ansi": "^7.0.1"
27496 },
27497 "dependencies": {
27498 "@jest/console": {
27499 "version": "28.1.3",
27500 "resolved": "https://registry.npmjs.org/@jest/console/-/console-28.1.3.tgz",
27501 "integrity": "sha512-QPAkP5EwKdK/bxIr6C1I4Vs0rm2nHiANzj/Z5X2JQkrZo6IqvC4ldZ9K95tF0HdidhA8Bo6egxSzUFPYKcEXLw==",
27502 "requires": {
27503 "@jest/types": "^28.1.3",
27504 "@types/node": "*",
27505 "chalk": "^4.0.0",
27506 "jest-message-util": "^28.1.3",
27507 "jest-util": "^28.1.3",
27508 "slash": "^3.0.0"
27509 },
27510 "dependencies": {
27511 "slash": {
27512 "version": "3.0.0",
27513 "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
27514 "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q=="
27515 }
27516 }
27517 },
27518 "@jest/test-result": {
27519 "version": "28.1.3",
27520 "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-28.1.3.tgz",
27521 "integrity": "sha512-kZAkxnSE+FqE8YjW8gNuoVkkC9I7S1qmenl8sGcDOLropASP+BkcGKwhXoyqQuGOGeYY0y/ixjrd/iERpEXHNg==",
27522 "requires": {
27523 "@jest/console": "^28.1.3",
27524 "@jest/types": "^28.1.3",
27525 "@types/istanbul-lib-coverage": "^2.0.0",
27526 "collect-v8-coverage": "^1.0.0"
27527 }
27528 },
27529 "@jest/types": {
27530 "version": "28.1.3",
27531 "resolved": "https://registry.npmjs.org/@jest/types/-/types-28.1.3.tgz",
27532 "integrity": "sha512-RyjiyMUZrKz/c+zlMFO1pm70DcIlST8AeWTkoUdZevew44wcNZQHsEVOiCVtgVnlFFD82FPaXycys58cf2muVQ==",
27533 "requires": {
27534 "@jest/schemas": "^28.1.3",
27535 "@types/istanbul-lib-coverage": "^2.0.0",
27536 "@types/istanbul-reports": "^3.0.0",
27537 "@types/node": "*",
27538 "@types/yargs": "^17.0.8",
27539 "chalk": "^4.0.0"
27540 }
27541 },
27542 "@types/yargs": {
27543 "version": "17.0.32",
27544 "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.32.tgz",
27545 "integrity": "sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog==",
27546 "requires": {
27547 "@types/yargs-parser": "*"
27548 }
27549 },
27550 "ansi-styles": {
27551 "version": "4.3.0",
27552 "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
27553 "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
27554 "requires": {
27555 "color-convert": "^2.0.1"
27556 }
27557 },
27558 "chalk": {
27559 "version": "4.1.2",
27560 "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
27561 "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
27562 "requires": {
27563 "ansi-styles": "^4.1.0",
27564 "supports-color": "^7.1.0"
27565 }
27566 },
27567 "color-convert": {
27568 "version": "2.0.1",
27569 "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
27570 "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
27571 "requires": {
27572 "color-name": "~1.1.4"
27573 }
27574 },
27575 "color-name": {
27576 "version": "1.1.4",
27577 "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
27578 "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
27579 },
27580 "emittery": {
27581 "version": "0.10.2",
27582 "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.10.2.tgz",
27583 "integrity": "sha512-aITqOwnLanpHLNXZJENbOgjUBeHocD+xsSJmNrjovKBW5HbSpW3d1pEls7GFQPUWXiwG9+0P4GtHfEqC/4M0Iw=="
27584 },
27585 "has-flag": {
27586 "version": "4.0.0",
27587 "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
27588 "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
27589 },
27590 "jest-message-util": {
27591 "version": "28.1.3",
27592 "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-28.1.3.tgz",
27593 "integrity": "sha512-PFdn9Iewbt575zKPf1286Ht9EPoJmYT7P0kY+RibeYZ2XtOr53pDLEFoTWXbd1h4JiGiWpTBC84fc8xMXQMb7g==",
27594 "requires": {
27595 "@babel/code-frame": "^7.12.13",
27596 "@jest/types": "^28.1.3",
27597 "@types/stack-utils": "^2.0.0",
27598 "chalk": "^4.0.0",
27599 "graceful-fs": "^4.2.9",
27600 "micromatch": "^4.0.4",
27601 "pretty-format": "^28.1.3",
27602 "slash": "^3.0.0",
27603 "stack-utils": "^2.0.3"
27604 },
27605 "dependencies": {
27606 "slash": {
27607 "version": "3.0.0",
27608 "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
27609 "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q=="
27610 }
27611 }
27612 },
27613 "jest-regex-util": {
27614 "version": "28.0.2",
27615 "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-28.0.2.tgz",
27616 "integrity": "sha512-4s0IgyNIy0y9FK+cjoVYoxamT7Zeo7MhzqRGx7YDYmaQn1wucY9rotiGkBzzcMXTtjrCAP/f7f+E0F7+fxPNdw=="
27617 },
27618 "jest-util": {
27619 "version": "28.1.3",
27620 "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-28.1.3.tgz",
27621 "integrity": "sha512-XdqfpHwpcSRko/C35uLYFM2emRAltIIKZiJ9eAmhjsj0CqZMa0p1ib0R5fWIqGhn1a103DebTbpqIaP1qCQ6tQ==",
27622 "requires": {
27623 "@jest/types": "^28.1.3",
27624 "@types/node": "*",
27625 "chalk": "^4.0.0",
27626 "ci-info": "^3.2.0",
27627 "graceful-fs": "^4.2.9",
27628 "picomatch": "^2.2.3"
27629 }
27630 },
27631 "jest-watcher": {
27632 "version": "28.1.3",
27633 "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-28.1.3.tgz",
27634 "integrity": "sha512-t4qcqj9hze+jviFPUN3YAtAEeFnr/azITXQEMARf5cMwKY2SMBRnCQTXLixTl20OR6mLh9KLMrgVJgJISym+1g==",
27635 "requires": {
27636 "@jest/test-result": "^28.1.3",
27637 "@jest/types": "^28.1.3",
27638 "@types/node": "*",
27639 "ansi-escapes": "^4.2.1",
27640 "chalk": "^4.0.0",
27641 "emittery": "^0.10.2",
27642 "jest-util": "^28.1.3",
27643 "string-length": "^4.0.1"
27644 },
27645 "dependencies": {
27646 "string-length": {
27647 "version": "4.0.2",
27648 "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz",
27649 "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==",
27650 "requires": {
27651 "char-regex": "^1.0.2",
27652 "strip-ansi": "^6.0.0"
27653 }
27654 },
27655 "strip-ansi": {
27656 "version": "6.0.1",
27657 "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
27658 "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
27659 "requires": {
27660 "ansi-regex": "^5.0.1"
27661 }
27662 }
27663 }
27664 },
27665 "pretty-format": {
27666 "version": "28.1.3",
27667 "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.3.tgz",
27668 "integrity": "sha512-8gFb/To0OmxHR9+ZTb14Df2vNxdGCX8g1xWGUTqUw5TiZvcQf5sHKObd5UcPyLLyowNwDAMTF3XWOG1B6mxl1Q==",
27669 "requires": {
27670 "@jest/schemas": "^28.1.3",
27671 "ansi-regex": "^5.0.1",
27672 "ansi-styles": "^5.0.0",
27673 "react-is": "^18.0.0"
27674 },
27675 "dependencies": {
27676 "ansi-styles": {
27677 "version": "5.2.0",
27678 "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz",
27679 "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA=="
27680 }
27681 }
27682 },
27683 "react-is": {
27684 "version": "18.3.1",
27685 "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz",
27686 "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg=="
27687 },
27688 "slash": {
27689 "version": "4.0.0",
27690 "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz",
27691 "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew=="
27692 },
27693 "string-length": {
27694 "version": "5.0.1",
27695 "resolved": "https://registry.npmjs.org/string-length/-/string-length-5.0.1.tgz",
27696 "integrity": "sha512-9Ep08KAMUn0OadnVaBuRdE2l615CQ508kr0XMadjClfYpdCyvrbFp6Taebo8yyxokQ4viUd/xPPUA4FGgUa0ow==",
27697 "requires": {
27698 "char-regex": "^2.0.0",
27699 "strip-ansi": "^7.0.1"
27700 },
27701 "dependencies": {
27702 "char-regex": {
27703 "version": "2.0.1",
27704 "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-2.0.1.tgz",
27705 "integrity": "sha512-oSvEeo6ZUD7NepqAat3RqoucZ5SeqLJgOvVIwkafu6IP3V0pO38s/ypdVUmDDK6qIIHNlYHJAKX9E7R7HoKElw=="
27706 }
27707 }
27708 },
27709 "strip-ansi": {
27710 "version": "7.1.0",
27711 "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz",
27712 "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==",
27713 "requires": {
27714 "ansi-regex": "^6.0.1"
27715 },
27716 "dependencies": {
27717 "ansi-regex": {
27718 "version": "6.0.1",
27719 "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz",
27720 "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA=="
27721 }
27722 }
27723 },
27724 "supports-color": {
27725 "version": "7.2.0",
27726 "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
27727 "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
27728 "requires": {
27729 "has-flag": "^4.0.0"
27730 }
27731 }
27732 }
27733 },
27734 "jest-watcher": {
27735 "version": "27.5.1",
27736 "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-27.5.1.tgz",
27737 "integrity": "sha512-z676SuD6Z8o8qbmEGhoEUFOM1+jfEiL3DXHK/xgEiG2EyNYfFG60jluWcupY6dATjfEsKQuibReS1djInQnoVw==",
27738 "requires": {
27739 "@jest/test-result": "^27.5.1",
27740 "@jest/types": "^27.5.1",
27741 "@types/node": "*",
27742 "ansi-escapes": "^4.2.1",
27743 "chalk": "^4.0.0",
27744 "jest-util": "^27.5.1",
27745 "string-length": "^4.0.1"
27746 },
27747 "dependencies": {
27748 "ansi-styles": {
27749 "version": "4.3.0",
27750 "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
27751 "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
27752 "requires": {
27753 "color-convert": "^2.0.1"
27754 }
27755 },
27756 "chalk": {
27757 "version": "4.1.2",
27758 "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
27759 "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
27760 "requires": {
27761 "ansi-styles": "^4.1.0",
27762 "supports-color": "^7.1.0"
27763 }
27764 },
27765 "color-convert": {
27766 "version": "2.0.1",
27767 "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
27768 "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
27769 "requires": {
27770 "color-name": "~1.1.4"
27771 }
27772 },
27773 "color-name": {
27774 "version": "1.1.4",
27775 "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
27776 "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
27777 },
27778 "has-flag": {
27779 "version": "4.0.0",
27780 "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
27781 "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
27782 },
27783 "supports-color": {
27784 "version": "7.2.0",
27785 "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
27786 "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
27787 "requires": {
27788 "has-flag": "^4.0.0"
27789 }
27790 }
27791 }
27792 },
27793 "jest-worker": {
27794 "version": "27.5.1",
27795 "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz",
27796 "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==",
27797 "requires": {
27798 "@types/node": "*",
27799 "merge-stream": "^2.0.0",
27800 "supports-color": "^8.0.0"
27801 },
27802 "dependencies": {
27803 "has-flag": {
27804 "version": "4.0.0",
27805 "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
27806 "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
27807 },
27808 "supports-color": {
27809 "version": "8.1.1",
27810 "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz",
27811 "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==",
27812 "requires": {
27813 "has-flag": "^4.0.0"
27814 }
27815 }
27816 }
27817 },
27818 "jiti": {
27819 "version": "1.21.6",
27820 "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.6.tgz",
27821 "integrity": "sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w=="
27822 },
27823 "js-tokens": {
27824 "version": "4.0.0",
27825 "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
27826 "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="
27827 },
27828 "js-yaml": {
27829 "version": "3.14.1",
27830 "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz",
27831 "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==",
27832 "requires": {
27833 "argparse": "^1.0.7",
27834 "esprima": "^4.0.0"
27835 }
27836 },
27837 "jsdom": {
27838 "version": "16.7.0",
27839 "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.7.0.tgz",
27840 "integrity": "sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw==",
27841 "requires": {
27842 "abab": "^2.0.5",
27843 "acorn": "^8.2.4",
27844 "acorn-globals": "^6.0.0",
27845 "cssom": "^0.4.4",
27846 "cssstyle": "^2.3.0",
27847 "data-urls": "^2.0.0",
27848 "decimal.js": "^10.2.1",
27849 "domexception": "^2.0.1",
27850 "escodegen": "^2.0.0",
27851 "form-data": "^3.0.0",
27852 "html-encoding-sniffer": "^2.0.1",
27853 "http-proxy-agent": "^4.0.1",
27854 "https-proxy-agent": "^5.0.0",
27855 "is-potential-custom-element-name": "^1.0.1",
27856 "nwsapi": "^2.2.0",
27857 "parse5": "6.0.1",
27858 "saxes": "^5.0.1",
27859 "symbol-tree": "^3.2.4",
27860 "tough-cookie": "^4.0.0",
27861 "w3c-hr-time": "^1.0.2",
27862 "w3c-xmlserializer": "^2.0.0",
27863 "webidl-conversions": "^6.1.0",
27864 "whatwg-encoding": "^1.0.5",
27865 "whatwg-mimetype": "^2.3.0",
27866 "whatwg-url": "^8.5.0",
27867 "ws": "^7.4.6",
27868 "xml-name-validator": "^3.0.0"
27869 }
27870 },
27871 "jsesc": {
27872 "version": "2.5.2",
27873 "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz",
27874 "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA=="
27875 },
27876 "json-buffer": {
27877 "version": "3.0.1",
27878 "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz",
27879 "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ=="
27880 },
27881 "json-parse-even-better-errors": {
27882 "version": "2.3.1",
27883 "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz",
27884 "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w=="
27885 },
27886 "json-schema": {
27887 "version": "0.4.0",
27888 "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz",
27889 "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA=="
27890 },
27891 "json-schema-traverse": {
27892 "version": "0.4.1",
27893 "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
27894 "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="
27895 },
27896 "json-stable-stringify-without-jsonify": {
27897 "version": "1.0.1",
27898 "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
27899 "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw=="
27900 },
27901 "json5": {
27902 "version": "2.2.3",
27903 "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz",
27904 "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg=="
27905 },
27906 "jsonfile": {
27907 "version": "6.1.0",
27908 "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz",
27909 "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==",
27910 "requires": {
27911 "graceful-fs": "^4.1.6",
27912 "universalify": "^2.0.0"
27913 }
27914 },
27915 "jsonpath": {
27916 "version": "1.1.1",
27917 "resolved": "https://registry.npmjs.org/jsonpath/-/jsonpath-1.1.1.tgz",
27918 "integrity": "sha512-l6Cg7jRpixfbgoWgkrl77dgEj8RPvND0wMH6TwQmi9Qs4TFfS9u5cUFnbeKTwj5ga5Y3BTGGNI28k117LJ009w==",
27919 "requires": {
27920 "esprima": "1.2.2",
27921 "static-eval": "2.0.2",
27922 "underscore": "1.12.1"
27923 },
27924 "dependencies": {
27925 "esprima": {
27926 "version": "1.2.2",
27927 "resolved": "https://registry.npmjs.org/esprima/-/esprima-1.2.2.tgz",
27928 "integrity": "sha512-+JpPZam9w5DuJ3Q67SqsMGtiHKENSMRVoxvArfJZK01/BfLEObtZ6orJa/MtoGNR/rfMgp5837T41PAmTwAv/A=="
27929 }
27930 }
27931 },
27932 "jsonpointer": {
27933 "version": "5.0.1",
27934 "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-5.0.1.tgz",
27935 "integrity": "sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ=="
27936 },
27937 "jsx-ast-utils": {
27938 "version": "3.3.5",
27939 "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz",
27940 "integrity": "sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==",
27941 "requires": {
27942 "array-includes": "^3.1.6",
27943 "array.prototype.flat": "^1.3.1",
27944 "object.assign": "^4.1.4",
27945 "object.values": "^1.1.6"
27946 }
27947 },
27948 "keyv": {
27949 "version": "4.5.4",
27950 "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz",
27951 "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==",
27952 "requires": {
27953 "json-buffer": "3.0.1"
27954 }
27955 },
27956 "kind-of": {
27957 "version": "6.0.3",
27958 "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
27959 "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw=="
27960 },
27961 "kleur": {
27962 "version": "3.0.3",
27963 "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz",
27964 "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w=="
27965 },
27966 "klona": {
27967 "version": "2.0.6",
27968 "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.6.tgz",
27969 "integrity": "sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA=="
27970 },
27971 "language-subtag-registry": {
27972 "version": "0.3.23",
27973 "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.23.tgz",
27974 "integrity": "sha512-0K65Lea881pHotoGEa5gDlMxt3pctLi2RplBb7Ezh4rRdLEOtgi7n4EwK9lamnUCkKBqaeKRVebTq6BAxSkpXQ=="
27975 },
27976 "language-tags": {
27977 "version": "1.0.9",
27978 "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.9.tgz",
27979 "integrity": "sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==",
27980 "requires": {
27981 "language-subtag-registry": "^0.3.20"
27982 }
27983 },
27984 "launch-editor": {
27985 "version": "2.8.0",
27986 "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.8.0.tgz",
27987 "integrity": "sha512-vJranOAJrI/llyWGRQqiDM+adrw+k83fvmmx3+nV47g3+36xM15jE+zyZ6Ffel02+xSvuM0b2GDRosXZkbb6wA==",
27988 "requires": {
27989 "picocolors": "^1.0.0",
27990 "shell-quote": "^1.8.1"
27991 }
27992 },
27993 "leven": {
27994 "version": "3.1.0",
27995 "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz",
27996 "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A=="
27997 },
27998 "levn": {
27999 "version": "0.4.1",
28000 "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz",
28001 "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==",
28002 "requires": {
28003 "prelude-ls": "^1.2.1",
28004 "type-check": "~0.4.0"
28005 }
28006 },
28007 "lilconfig": {
28008 "version": "2.1.0",
28009 "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz",
28010 "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ=="
28011 },
28012 "lines-and-columns": {
28013 "version": "1.2.4",
28014 "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz",
28015 "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg=="
28016 },
28017 "loader-runner": {
28018 "version": "4.3.0",
28019 "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz",
28020 "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg=="
28021 },
28022 "loader-utils": {
28023 "version": "2.0.4",
28024 "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz",
28025 "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==",
28026 "requires": {
28027 "big.js": "^5.2.2",
28028 "emojis-list": "^3.0.0",
28029 "json5": "^2.1.2"
28030 }
28031 },
28032 "locate-path": {
28033 "version": "5.0.0",
28034 "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
28035 "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
28036 "requires": {
28037 "p-locate": "^4.1.0"
28038 }
28039 },
28040 "lodash": {
28041 "version": "4.17.21",
28042 "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
28043 "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="
28044 },
28045 "lodash.debounce": {
28046 "version": "4.0.8",
28047 "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz",
28048 "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow=="
28049 },
28050 "lodash.memoize": {
28051 "version": "4.1.2",
28052 "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz",
28053 "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag=="
28054 },
28055 "lodash.merge": {
28056 "version": "4.6.2",
28057 "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz",
28058 "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ=="
28059 },
28060 "lodash.sortby": {
28061 "version": "4.7.0",
28062 "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz",
28063 "integrity": "sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA=="
28064 },
28065 "lodash.uniq": {
28066 "version": "4.5.0",
28067 "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz",
28068 "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ=="
28069 },
28070 "loose-envify": {
28071 "version": "1.4.0",
28072 "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
28073 "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
28074 "requires": {
28075 "js-tokens": "^3.0.0 || ^4.0.0"
28076 }
28077 },
28078 "lower-case": {
28079 "version": "2.0.2",
28080 "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz",
28081 "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==",
28082 "requires": {
28083 "tslib": "^2.0.3"
28084 }
28085 },
28086 "lru-cache": {
28087 "version": "5.1.1",
28088 "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
28089 "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==",
28090 "requires": {
28091 "yallist": "^3.0.2"
28092 }
28093 },
28094 "lz-string": {
28095 "version": "1.4.4",
28096 "resolved": "https://registry.npmjs.org/lz-string/-/lz-string-1.4.4.tgz",
28097 "integrity": "sha512-0ckx7ZHRPqb0oUm8zNr+90mtf9DQB60H1wMCjBtfi62Kl3a7JbHob6gA2bC+xRvZoOL+1hzUK8jeuEIQE8svEQ=="
28098 },
28099 "magic-string": {
28100 "version": "0.25.9",
28101 "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz",
28102 "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==",
28103 "requires": {
28104 "sourcemap-codec": "^1.4.8"
28105 }
28106 },
28107 "make-dir": {
28108 "version": "3.1.0",
28109 "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz",
28110 "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==",
28111 "requires": {
28112 "semver": "^6.0.0"
28113 },
28114 "dependencies": {
28115 "semver": {
28116 "version": "6.3.1",
28117 "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
28118 "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="
28119 }
28120 }
28121 },
28122 "makeerror": {
28123 "version": "1.0.12",
28124 "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz",
28125 "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==",
28126 "requires": {
28127 "tmpl": "1.0.5"
28128 }
28129 },
28130 "mdast-util-definitions": {
28131 "version": "5.1.2",
28132 "resolved": "https://registry.npmjs.org/mdast-util-definitions/-/mdast-util-definitions-5.1.2.tgz",
28133 "integrity": "sha512-8SVPMuHqlPME/z3gqVwWY4zVXn8lqKv/pAhC57FuJ40ImXyBpmO5ukh98zB2v7Blql2FiHjHv9LVztSIqjY+MA==",
28134 "requires": {
28135 "@types/mdast": "^3.0.0",
28136 "@types/unist": "^2.0.0",
28137 "unist-util-visit": "^4.0.0"
28138 }
28139 },
28140 "mdast-util-from-markdown": {
28141 "version": "1.3.1",
28142 "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-1.3.1.tgz",
28143 "integrity": "sha512-4xTO/M8c82qBcnQc1tgpNtubGUW/Y1tBQ1B0i5CtSoelOLKFYlElIr3bvgREYYO5iRqbMY1YuqZng0GVOI8Qww==",
28144 "requires": {
28145 "@types/mdast": "^3.0.0",
28146 "@types/unist": "^2.0.0",
28147 "decode-named-character-reference": "^1.0.0",
28148 "mdast-util-to-string": "^3.1.0",
28149 "micromark": "^3.0.0",
28150 "micromark-util-decode-numeric-character-reference": "^1.0.0",
28151 "micromark-util-decode-string": "^1.0.0",
28152 "micromark-util-normalize-identifier": "^1.0.0",
28153 "micromark-util-symbol": "^1.0.0",
28154 "micromark-util-types": "^1.0.0",
28155 "unist-util-stringify-position": "^3.0.0",
28156 "uvu": "^0.5.0"
28157 }
28158 },
28159 "mdast-util-to-hast": {
28160 "version": "12.3.0",
28161 "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-12.3.0.tgz",
28162 "integrity": "sha512-pits93r8PhnIoU4Vy9bjW39M2jJ6/tdHyja9rrot9uujkN7UTU9SDnE6WNJz/IGyQk3XHX6yNNtrBH6cQzm8Hw==",
28163 "requires": {
28164 "@types/hast": "^2.0.0",
28165 "@types/mdast": "^3.0.0",
28166 "mdast-util-definitions": "^5.0.0",
28167 "micromark-util-sanitize-uri": "^1.1.0",
28168 "trim-lines": "^3.0.0",
28169 "unist-util-generated": "^2.0.0",
28170 "unist-util-position": "^4.0.0",
28171 "unist-util-visit": "^4.0.0"
28172 }
28173 },
28174 "mdast-util-to-string": {
28175 "version": "3.2.0",
28176 "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-3.2.0.tgz",
28177 "integrity": "sha512-V4Zn/ncyN1QNSqSBxTrMOLpjr+IKdHl2v3KVLoWmDPscP4r9GcCi71gjgvUV1SFSKh92AjAG4peFuBl2/YgCJg==",
28178 "requires": {
28179 "@types/mdast": "^3.0.0"
28180 }
28181 },
28182 "mdn-data": {
28183 "version": "2.0.4",
28184 "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.4.tgz",
28185 "integrity": "sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA=="
28186 },
28187 "media-typer": {
28188 "version": "0.3.0",
28189 "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
28190 "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ=="
28191 },
28192 "memfs": {
28193 "version": "3.5.3",
28194 "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.5.3.tgz",
28195 "integrity": "sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==",
28196 "requires": {
28197 "fs-monkey": "^1.0.4"
28198 }
28199 },
28200 "merge-descriptors": {
28201 "version": "1.0.1",
28202 "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
28203 "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w=="
28204 },
28205 "merge-stream": {
28206 "version": "2.0.0",
28207 "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz",
28208 "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w=="
28209 },
28210 "merge2": {
28211 "version": "1.4.1",
28212 "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
28213 "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg=="
28214 },
28215 "methods": {
28216 "version": "1.1.2",
28217 "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
28218 "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w=="
28219 },
28220 "micromark": {
28221 "version": "3.2.0",
28222 "resolved": "https://registry.npmjs.org/micromark/-/micromark-3.2.0.tgz",
28223 "integrity": "sha512-uD66tJj54JLYq0De10AhWycZWGQNUvDI55xPgk2sQM5kn1JYlhbCMTtEeT27+vAhW2FBQxLlOmS3pmA7/2z4aA==",
28224 "requires": {
28225 "@types/debug": "^4.0.0",
28226 "debug": "^4.0.0",
28227 "decode-named-character-reference": "^1.0.0",
28228 "micromark-core-commonmark": "^1.0.1",
28229 "micromark-factory-space": "^1.0.0",
28230 "micromark-util-character": "^1.0.0",
28231 "micromark-util-chunked": "^1.0.0",
28232 "micromark-util-combine-extensions": "^1.0.0",
28233 "micromark-util-decode-numeric-character-reference": "^1.0.0",
28234 "micromark-util-encode": "^1.0.0",
28235 "micromark-util-normalize-identifier": "^1.0.0",
28236 "micromark-util-resolve-all": "^1.0.0",
28237 "micromark-util-sanitize-uri": "^1.0.0",
28238 "micromark-util-subtokenize": "^1.0.0",
28239 "micromark-util-symbol": "^1.0.0",
28240 "micromark-util-types": "^1.0.1",
28241 "uvu": "^0.5.0"
28242 }
28243 },
28244 "micromark-core-commonmark": {
28245 "version": "1.1.0",
28246 "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-1.1.0.tgz",
28247 "integrity": "sha512-BgHO1aRbolh2hcrzL2d1La37V0Aoz73ymF8rAcKnohLy93titmv62E0gP8Hrx9PKcKrqCZ1BbLGbP3bEhoXYlw==",
28248 "requires": {
28249 "decode-named-character-reference": "^1.0.0",
28250 "micromark-factory-destination": "^1.0.0",
28251 "micromark-factory-label": "^1.0.0",
28252 "micromark-factory-space": "^1.0.0",
28253 "micromark-factory-title": "^1.0.0",
28254 "micromark-factory-whitespace": "^1.0.0",
28255 "micromark-util-character": "^1.0.0",
28256 "micromark-util-chunked": "^1.0.0",
28257 "micromark-util-classify-character": "^1.0.0",
28258 "micromark-util-html-tag-name": "^1.0.0",
28259 "micromark-util-normalize-identifier": "^1.0.0",
28260 "micromark-util-resolve-all": "^1.0.0",
28261 "micromark-util-subtokenize": "^1.0.0",
28262 "micromark-util-symbol": "^1.0.0",
28263 "micromark-util-types": "^1.0.1",
28264 "uvu": "^0.5.0"
28265 }
28266 },
28267 "micromark-factory-destination": {
28268 "version": "1.1.0",
28269 "resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-1.1.0.tgz",
28270 "integrity": "sha512-XaNDROBgx9SgSChd69pjiGKbV+nfHGDPVYFs5dOoDd7ZnMAE+Cuu91BCpsY8RT2NP9vo/B8pds2VQNCLiu0zhg==",
28271 "requires": {
28272 "micromark-util-character": "^1.0.0",
28273 "micromark-util-symbol": "^1.0.0",
28274 "micromark-util-types": "^1.0.0"
28275 }
28276 },
28277 "micromark-factory-label": {
28278 "version": "1.1.0",
28279 "resolved": "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-1.1.0.tgz",
28280 "integrity": "sha512-OLtyez4vZo/1NjxGhcpDSbHQ+m0IIGnT8BoPamh+7jVlzLJBH98zzuCoUeMxvM6WsNeh8wx8cKvqLiPHEACn0w==",
28281 "requires": {
28282 "micromark-util-character": "^1.0.0",
28283 "micromark-util-symbol": "^1.0.0",
28284 "micromark-util-types": "^1.0.0",
28285 "uvu": "^0.5.0"
28286 }
28287 },
28288 "micromark-factory-space": {
28289 "version": "1.1.0",
28290 "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-1.1.0.tgz",
28291 "integrity": "sha512-cRzEj7c0OL4Mw2v6nwzttyOZe8XY/Z8G0rzmWQZTBi/jjwyw/U4uqKtUORXQrR5bAZZnbTI/feRV/R7hc4jQYQ==",
28292 "requires": {
28293 "micromark-util-character": "^1.0.0",
28294 "micromark-util-types": "^1.0.0"
28295 }
28296 },
28297 "micromark-factory-title": {
28298 "version": "1.1.0",
28299 "resolved": "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-1.1.0.tgz",
28300 "integrity": "sha512-J7n9R3vMmgjDOCY8NPw55jiyaQnH5kBdV2/UXCtZIpnHH3P6nHUKaH7XXEYuWwx/xUJcawa8plLBEjMPU24HzQ==",
28301 "requires": {
28302 "micromark-factory-space": "^1.0.0",
28303 "micromark-util-character": "^1.0.0",
28304 "micromark-util-symbol": "^1.0.0",
28305 "micromark-util-types": "^1.0.0"
28306 }
28307 },
28308 "micromark-factory-whitespace": {
28309 "version": "1.1.0",
28310 "resolved": "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-1.1.0.tgz",
28311 "integrity": "sha512-v2WlmiymVSp5oMg+1Q0N1Lxmt6pMhIHD457whWM7/GUlEks1hI9xj5w3zbc4uuMKXGisksZk8DzP2UyGbGqNsQ==",
28312 "requires": {
28313 "micromark-factory-space": "^1.0.0",
28314 "micromark-util-character": "^1.0.0",
28315 "micromark-util-symbol": "^1.0.0",
28316 "micromark-util-types": "^1.0.0"
28317 }
28318 },
28319 "micromark-util-character": {
28320 "version": "1.2.0",
28321 "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-1.2.0.tgz",
28322 "integrity": "sha512-lXraTwcX3yH/vMDaFWCQJP1uIszLVebzUa3ZHdrgxr7KEU/9mL4mVgCpGbyhvNLNlauROiNUq7WN5u7ndbY6xg==",
28323 "requires": {
28324 "micromark-util-symbol": "^1.0.0",
28325 "micromark-util-types": "^1.0.0"
28326 }
28327 },
28328 "micromark-util-chunked": {
28329 "version": "1.1.0",
28330 "resolved": "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-1.1.0.tgz",
28331 "integrity": "sha512-Ye01HXpkZPNcV6FiyoW2fGZDUw4Yc7vT0E9Sad83+bEDiCJ1uXu0S3mr8WLpsz3HaG3x2q0HM6CTuPdcZcluFQ==",
28332 "requires": {
28333 "micromark-util-symbol": "^1.0.0"
28334 }
28335 },
28336 "micromark-util-classify-character": {
28337 "version": "1.1.0",
28338 "resolved": "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-1.1.0.tgz",
28339 "integrity": "sha512-SL0wLxtKSnklKSUplok1WQFoGhUdWYKggKUiqhX+Swala+BtptGCu5iPRc+xvzJ4PXE/hwM3FNXsfEVgoZsWbw==",
28340 "requires": {
28341 "micromark-util-character": "^1.0.0",
28342 "micromark-util-symbol": "^1.0.0",
28343 "micromark-util-types": "^1.0.0"
28344 }
28345 },
28346 "micromark-util-combine-extensions": {
28347 "version": "1.1.0",
28348 "resolved": "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-1.1.0.tgz",
28349 "integrity": "sha512-Q20sp4mfNf9yEqDL50WwuWZHUrCO4fEyeDCnMGmG5Pr0Cz15Uo7KBs6jq+dq0EgX4DPwwrh9m0X+zPV1ypFvUA==",
28350 "requires": {
28351 "micromark-util-chunked": "^1.0.0",
28352 "micromark-util-types": "^1.0.0"
28353 }
28354 },
28355 "micromark-util-decode-numeric-character-reference": {
28356 "version": "1.1.0",
28357 "resolved": "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-1.1.0.tgz",
28358 "integrity": "sha512-m9V0ExGv0jB1OT21mrWcuf4QhP46pH1KkfWy9ZEezqHKAxkj4mPCy3nIH1rkbdMlChLHX531eOrymlwyZIf2iw==",
28359 "requires": {
28360 "micromark-util-symbol": "^1.0.0"
28361 }
28362 },
28363 "micromark-util-decode-string": {
28364 "version": "1.1.0",
28365 "resolved": "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-1.1.0.tgz",
28366 "integrity": "sha512-YphLGCK8gM1tG1bd54azwyrQRjCFcmgj2S2GoJDNnh4vYtnL38JS8M4gpxzOPNyHdNEpheyWXCTnnTDY3N+NVQ==",
28367 "requires": {
28368 "decode-named-character-reference": "^1.0.0",
28369 "micromark-util-character": "^1.0.0",
28370 "micromark-util-decode-numeric-character-reference": "^1.0.0",
28371 "micromark-util-symbol": "^1.0.0"
28372 }
28373 },
28374 "micromark-util-encode": {
28375 "version": "1.1.0",
28376 "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-1.1.0.tgz",
28377 "integrity": "sha512-EuEzTWSTAj9PA5GOAs992GzNh2dGQO52UvAbtSOMvXTxv3Criqb6IOzJUBCmEqrrXSblJIJBbFFv6zPxpreiJw=="
28378 },
28379 "micromark-util-html-tag-name": {
28380 "version": "1.2.0",
28381 "resolved": "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-1.2.0.tgz",
28382 "integrity": "sha512-VTQzcuQgFUD7yYztuQFKXT49KghjtETQ+Wv/zUjGSGBioZnkA4P1XXZPT1FHeJA6RwRXSF47yvJ1tsJdoxwO+Q=="
28383 },
28384 "micromark-util-normalize-identifier": {
28385 "version": "1.1.0",
28386 "resolved": "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-1.1.0.tgz",
28387 "integrity": "sha512-N+w5vhqrBihhjdpM8+5Xsxy71QWqGn7HYNUvch71iV2PM7+E3uWGox1Qp90loa1ephtCxG2ftRV/Conitc6P2Q==",
28388 "requires": {
28389 "micromark-util-symbol": "^1.0.0"
28390 }
28391 },
28392 "micromark-util-resolve-all": {
28393 "version": "1.1.0",
28394 "resolved": "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-1.1.0.tgz",
28395 "integrity": "sha512-b/G6BTMSg+bX+xVCshPTPyAu2tmA0E4X98NSR7eIbeC6ycCqCeE7wjfDIgzEbkzdEVJXRtOG4FbEm/uGbCRouA==",
28396 "requires": {
28397 "micromark-util-types": "^1.0.0"
28398 }
28399 },
28400 "micromark-util-sanitize-uri": {
28401 "version": "1.2.0",
28402 "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-1.2.0.tgz",
28403 "integrity": "sha512-QO4GXv0XZfWey4pYFndLUKEAktKkG5kZTdUNaTAkzbuJxn2tNBOr+QtxR2XpWaMhbImT2dPzyLrPXLlPhph34A==",
28404 "requires": {
28405 "micromark-util-character": "^1.0.0",
28406 "micromark-util-encode": "^1.0.0",
28407 "micromark-util-symbol": "^1.0.0"
28408 }
28409 },
28410 "micromark-util-subtokenize": {
28411 "version": "1.1.0",
28412 "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-1.1.0.tgz",
28413 "integrity": "sha512-kUQHyzRoxvZO2PuLzMt2P/dwVsTiivCK8icYTeR+3WgbuPqfHgPPy7nFKbeqRivBvn/3N3GBiNC+JRTMSxEC7A==",
28414 "requires": {
28415 "micromark-util-chunked": "^1.0.0",
28416 "micromark-util-symbol": "^1.0.0",
28417 "micromark-util-types": "^1.0.0",
28418 "uvu": "^0.5.0"
28419 }
28420 },
28421 "micromark-util-symbol": {
28422 "version": "1.1.0",
28423 "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-1.1.0.tgz",
28424 "integrity": "sha512-uEjpEYY6KMs1g7QfJ2eX1SQEV+ZT4rUD3UcF6l57acZvLNK7PBZL+ty82Z1qhK1/yXIY4bdx04FKMgR0g4IAag=="
28425 },
28426 "micromark-util-types": {
28427 "version": "1.1.0",
28428 "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-1.1.0.tgz",
28429 "integrity": "sha512-ukRBgie8TIAcacscVHSiddHjO4k/q3pnedmzMQ4iwDcK0FtFCohKOlFbaOL/mPgfnPsL3C1ZyxJa4sbWrBl3jg=="
28430 },
28431 "micromatch": {
28432 "version": "4.0.5",
28433 "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz",
28434 "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
28435 "requires": {
28436 "braces": "^3.0.2",
28437 "picomatch": "^2.3.1"
28438 }
28439 },
28440 "mime": {
28441 "version": "1.6.0",
28442 "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
28443 "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg=="
28444 },
28445 "mime-db": {
28446 "version": "1.52.0",
28447 "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
28448 "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg=="
28449 },
28450 "mime-types": {
28451 "version": "2.1.35",
28452 "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
28453 "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
28454 "requires": {
28455 "mime-db": "1.52.0"
28456 }
28457 },
28458 "mimic-fn": {
28459 "version": "2.1.0",
28460 "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
28461 "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg=="
28462 },
28463 "min-indent": {
28464 "version": "1.0.1",
28465 "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz",
28466 "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg=="
28467 },
28468 "mini-css-extract-plugin": {
28469 "version": "2.9.0",
28470 "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.9.0.tgz",
28471 "integrity": "sha512-Zs1YsZVfemekSZG+44vBsYTLQORkPMwnlv+aehcxK/NLKC+EGhDB39/YePYYqx/sTk6NnYpuqikhSn7+JIevTA==",
28472 "requires": {
28473 "schema-utils": "^4.0.0",
28474 "tapable": "^2.2.1"
28475 }
28476 },
28477 "minimalistic-assert": {
28478 "version": "1.0.1",
28479 "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz",
28480 "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A=="
28481 },
28482 "minimatch": {
28483 "version": "3.1.2",
28484 "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
28485 "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
28486 "requires": {
28487 "brace-expansion": "^1.1.7"
28488 }
28489 },
28490 "minimist": {
28491 "version": "1.2.8",
28492 "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz",
28493 "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA=="
28494 },
28495 "minipass": {
28496 "version": "7.1.2",
28497 "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz",
28498 "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw=="
28499 },
28500 "mkdirp": {
28501 "version": "0.5.6",
28502 "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz",
28503 "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==",
28504 "requires": {
28505 "minimist": "^1.2.6"
28506 }
28507 },
28508 "mri": {
28509 "version": "1.2.0",
28510 "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz",
28511 "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA=="
28512 },
28513 "ms": {
28514 "version": "2.1.2",
28515 "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
28516 "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
28517 },
28518 "multicast-dns": {
28519 "version": "7.2.5",
28520 "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-7.2.5.tgz",
28521 "integrity": "sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==",
28522 "requires": {
28523 "dns-packet": "^5.2.2",
28524 "thunky": "^1.0.2"
28525 }
28526 },
28527 "mz": {
28528 "version": "2.7.0",
28529 "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz",
28530 "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==",
28531 "requires": {
28532 "any-promise": "^1.0.0",
28533 "object-assign": "^4.0.1",
28534 "thenify-all": "^1.0.0"
28535 }
28536 },
28537 "nanoid": {
28538 "version": "3.3.7",
28539 "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz",
28540 "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g=="
28541 },
28542 "natural-compare": {
28543 "version": "1.4.0",
28544 "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
28545 "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw=="
28546 },
28547 "natural-compare-lite": {
28548 "version": "1.4.0",
28549 "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz",
28550 "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g=="
28551 },
28552 "negotiator": {
28553 "version": "0.6.3",
28554 "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz",
28555 "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg=="
28556 },
28557 "neo-async": {
28558 "version": "2.6.2",
28559 "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz",
28560 "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw=="
28561 },
28562 "no-case": {
28563 "version": "3.0.4",
28564 "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz",
28565 "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==",
28566 "requires": {
28567 "lower-case": "^2.0.2",
28568 "tslib": "^2.0.3"
28569 }
28570 },
28571 "node-forge": {
28572 "version": "1.3.1",
28573 "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz",
28574 "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA=="
28575 },
28576 "node-int64": {
28577 "version": "0.4.0",
28578 "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz",
28579 "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw=="
28580 },
28581 "node-releases": {
28582 "version": "2.0.14",
28583 "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz",
28584 "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw=="
28585 },
28586 "normalize-path": {
28587 "version": "3.0.0",
28588 "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
28589 "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA=="
28590 },
28591 "normalize-range": {
28592 "version": "0.1.2",
28593 "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz",
28594 "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA=="
28595 },
28596 "normalize-url": {
28597 "version": "6.1.0",
28598 "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz",
28599 "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A=="
28600 },
28601 "npm-run-path": {
28602 "version": "4.0.1",
28603 "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz",
28604 "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==",
28605 "requires": {
28606 "path-key": "^3.0.0"
28607 }
28608 },
28609 "nth-check": {
28610 "version": "2.1.1",
28611 "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz",
28612 "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==",
28613 "requires": {
28614 "boolbase": "^1.0.0"
28615 }
28616 },
28617 "nwsapi": {
28618 "version": "2.2.12",
28619 "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.12.tgz",
28620 "integrity": "sha512-qXDmcVlZV4XRtKFzddidpfVP4oMSGhga+xdMc25mv8kaLUHtgzCDhUxkrN8exkGdTlLNaXj7CV3GtON7zuGZ+w=="
28621 },
28622 "object-assign": {
28623 "version": "4.1.1",
28624 "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
28625 "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg=="
28626 },
28627 "object-hash": {
28628 "version": "3.0.0",
28629 "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz",
28630 "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw=="
28631 },
28632 "object-inspect": {
28633 "version": "1.13.2",
28634 "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.2.tgz",
28635 "integrity": "sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g=="
28636 },
28637 "object-is": {
28638 "version": "1.1.5",
28639 "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz",
28640 "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==",
28641 "requires": {
28642 "call-bind": "^1.0.2",
28643 "define-properties": "^1.1.3"
28644 }
28645 },
28646 "object-keys": {
28647 "version": "1.1.1",
28648 "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
28649 "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA=="
28650 },
28651 "object.assign": {
28652 "version": "4.1.5",
28653 "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz",
28654 "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==",
28655 "requires": {
28656 "call-bind": "^1.0.5",
28657 "define-properties": "^1.2.1",
28658 "has-symbols": "^1.0.3",
28659 "object-keys": "^1.1.1"
28660 }
28661 },
28662 "object.entries": {
28663 "version": "1.1.8",
28664 "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.8.tgz",
28665 "integrity": "sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==",
28666 "requires": {
28667 "call-bind": "^1.0.7",
28668 "define-properties": "^1.2.1",
28669 "es-object-atoms": "^1.0.0"
28670 }
28671 },
28672 "object.fromentries": {
28673 "version": "2.0.8",
28674 "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.8.tgz",
28675 "integrity": "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==",
28676 "requires": {
28677 "call-bind": "^1.0.7",
28678 "define-properties": "^1.2.1",
28679 "es-abstract": "^1.23.2",
28680 "es-object-atoms": "^1.0.0"
28681 }
28682 },
28683 "object.getownpropertydescriptors": {
28684 "version": "2.1.8",
28685 "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.8.tgz",
28686 "integrity": "sha512-qkHIGe4q0lSYMv0XI4SsBTJz3WaURhLvd0lKSgtVuOsJ2krg4SgMw3PIRQFMp07yi++UR3se2mkcLqsBNpBb/A==",
28687 "requires": {
28688 "array.prototype.reduce": "^1.0.6",
28689 "call-bind": "^1.0.7",
28690 "define-properties": "^1.2.1",
28691 "es-abstract": "^1.23.2",
28692 "es-object-atoms": "^1.0.0",
28693 "gopd": "^1.0.1",
28694 "safe-array-concat": "^1.1.2"
28695 }
28696 },
28697 "object.groupby": {
28698 "version": "1.0.3",
28699 "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.3.tgz",
28700 "integrity": "sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==",
28701 "requires": {
28702 "call-bind": "^1.0.7",
28703 "define-properties": "^1.2.1",
28704 "es-abstract": "^1.23.2"
28705 }
28706 },
28707 "object.hasown": {
28708 "version": "1.1.4",
28709 "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.4.tgz",
28710 "integrity": "sha512-FZ9LZt9/RHzGySlBARE3VF+gE26TxR38SdmqOqliuTnl9wrKulaQs+4dee1V+Io8VfxqzAfHu6YuRgUy8OHoTg==",
28711 "requires": {
28712 "define-properties": "^1.2.1",
28713 "es-abstract": "^1.23.2",
28714 "es-object-atoms": "^1.0.0"
28715 }
28716 },
28717 "object.values": {
28718 "version": "1.2.0",
28719 "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.0.tgz",
28720 "integrity": "sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==",
28721 "requires": {
28722 "call-bind": "^1.0.7",
28723 "define-properties": "^1.2.1",
28724 "es-object-atoms": "^1.0.0"
28725 }
28726 },
28727 "obuf": {
28728 "version": "1.1.2",
28729 "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz",
28730 "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg=="
28731 },
28732 "on-finished": {
28733 "version": "2.4.1",
28734 "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz",
28735 "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==",
28736 "requires": {
28737 "ee-first": "1.1.1"
28738 }
28739 },
28740 "on-headers": {
28741 "version": "1.0.2",
28742 "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz",
28743 "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA=="
28744 },
28745 "once": {
28746 "version": "1.4.0",
28747 "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
28748 "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
28749 "requires": {
28750 "wrappy": "1"
28751 }
28752 },
28753 "onetime": {
28754 "version": "5.1.2",
28755 "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz",
28756 "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==",
28757 "requires": {
28758 "mimic-fn": "^2.1.0"
28759 }
28760 },
28761 "open": {
28762 "version": "8.4.2",
28763 "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz",
28764 "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==",
28765 "requires": {
28766 "define-lazy-prop": "^2.0.0",
28767 "is-docker": "^2.1.1",
28768 "is-wsl": "^2.2.0"
28769 }
28770 },
28771 "optionator": {
28772 "version": "0.9.4",
28773 "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz",
28774 "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==",
28775 "requires": {
28776 "deep-is": "^0.1.3",
28777 "fast-levenshtein": "^2.0.6",
28778 "levn": "^0.4.1",
28779 "prelude-ls": "^1.2.1",
28780 "type-check": "^0.4.0",
28781 "word-wrap": "^1.2.5"
28782 }
28783 },
28784 "p-limit": {
28785 "version": "2.3.0",
28786 "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
28787 "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
28788 "requires": {
28789 "p-try": "^2.0.0"
28790 }
28791 },
28792 "p-locate": {
28793 "version": "4.1.0",
28794 "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
28795 "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
28796 "requires": {
28797 "p-limit": "^2.2.0"
28798 }
28799 },
28800 "p-retry": {
28801 "version": "4.6.2",
28802 "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.2.tgz",
28803 "integrity": "sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==",
28804 "requires": {
28805 "@types/retry": "0.12.0",
28806 "retry": "^0.13.1"
28807 }
28808 },
28809 "p-try": {
28810 "version": "2.2.0",
28811 "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
28812 "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ=="
28813 },
28814 "package-json-from-dist": {
28815 "version": "1.0.0",
28816 "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.0.tgz",
28817 "integrity": "sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw=="
28818 },
28819 "param-case": {
28820 "version": "3.0.4",
28821 "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz",
28822 "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==",
28823 "requires": {
28824 "dot-case": "^3.0.4",
28825 "tslib": "^2.0.3"
28826 }
28827 },
28828 "parent-module": {
28829 "version": "1.0.1",
28830 "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
28831 "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
28832 "requires": {
28833 "callsites": "^3.0.0"
28834 }
28835 },
28836 "parse-json": {
28837 "version": "5.2.0",
28838 "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz",
28839 "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==",
28840 "requires": {
28841 "@babel/code-frame": "^7.0.0",
28842 "error-ex": "^1.3.1",
28843 "json-parse-even-better-errors": "^2.3.0",
28844 "lines-and-columns": "^1.1.6"
28845 }
28846 },
28847 "parse5": {
28848 "version": "6.0.1",
28849 "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz",
28850 "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw=="
28851 },
28852 "parseurl": {
28853 "version": "1.3.3",
28854 "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
28855 "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ=="
28856 },
28857 "pascal-case": {
28858 "version": "3.1.2",
28859 "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz",
28860 "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==",
28861 "requires": {
28862 "no-case": "^3.0.4",
28863 "tslib": "^2.0.3"
28864 }
28865 },
28866 "path-exists": {
28867 "version": "4.0.0",
28868 "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
28869 "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w=="
28870 },
28871 "path-is-absolute": {
28872 "version": "1.0.1",
28873 "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
28874 "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg=="
28875 },
28876 "path-key": {
28877 "version": "3.1.1",
28878 "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
28879 "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q=="
28880 },
28881 "path-parse": {
28882 "version": "1.0.7",
28883 "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
28884 "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw=="
28885 },
28886 "path-scurry": {
28887 "version": "1.11.1",
28888 "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz",
28889 "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==",
28890 "requires": {
28891 "lru-cache": "^10.2.0",
28892 "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0"
28893 },
28894 "dependencies": {
28895 "lru-cache": {
28896 "version": "10.4.3",
28897 "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz",
28898 "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ=="
28899 }
28900 }
28901 },
28902 "path-to-regexp": {
28903 "version": "0.1.7",
28904 "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
28905 "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ=="
28906 },
28907 "path-type": {
28908 "version": "4.0.0",
28909 "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz",
28910 "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw=="
28911 },
28912 "performance-now": {
28913 "version": "2.1.0",
28914 "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
28915 "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow=="
28916 },
28917 "picocolors": {
28918 "version": "1.0.1",
28919 "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz",
28920 "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew=="
28921 },
28922 "picomatch": {
28923 "version": "2.3.1",
28924 "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
28925 "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA=="
28926 },
28927 "pify": {
28928 "version": "2.3.0",
28929 "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
28930 "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog=="
28931 },
28932 "pirates": {
28933 "version": "4.0.6",
28934 "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz",
28935 "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg=="
28936 },
28937 "pkg-dir": {
28938 "version": "4.2.0",
28939 "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz",
28940 "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==",
28941 "requires": {
28942 "find-up": "^4.0.0"
28943 }
28944 },
28945 "pkg-up": {
28946 "version": "3.1.0",
28947 "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz",
28948 "integrity": "sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==",
28949 "requires": {
28950 "find-up": "^3.0.0"
28951 },
28952 "dependencies": {
28953 "find-up": {
28954 "version": "3.0.0",
28955 "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
28956 "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
28957 "requires": {
28958 "locate-path": "^3.0.0"
28959 }
28960 },
28961 "locate-path": {
28962 "version": "3.0.0",
28963 "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
28964 "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
28965 "requires": {
28966 "p-locate": "^3.0.0",
28967 "path-exists": "^3.0.0"
28968 }
28969 },
28970 "p-locate": {
28971 "version": "3.0.0",
28972 "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
28973 "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
28974 "requires": {
28975 "p-limit": "^2.0.0"
28976 }
28977 },
28978 "path-exists": {
28979 "version": "3.0.0",
28980 "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
28981 "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ=="
28982 }
28983 }
28984 },
28985 "possible-typed-array-names": {
28986 "version": "1.0.0",
28987 "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz",
28988 "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q=="
28989 },
28990 "postcss": {
28991 "version": "8.4.39",
28992 "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.39.tgz",
28993 "integrity": "sha512-0vzE+lAiG7hZl1/9I8yzKLx3aR9Xbof3fBHKunvMfOCYAtMhrsnccJY2iTURb9EZd5+pLuiNV9/c/GZJOHsgIw==",
28994 "requires": {
28995 "nanoid": "^3.3.7",
28996 "picocolors": "^1.0.1",
28997 "source-map-js": "^1.2.0"
28998 }
28999 },
29000 "postcss-attribute-case-insensitive": {
29001 "version": "5.0.2",
29002 "resolved": "https://registry.npmjs.org/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-5.0.2.tgz",
29003 "integrity": "sha512-XIidXV8fDr0kKt28vqki84fRK8VW8eTuIa4PChv2MqKuT6C9UjmSKzen6KaWhWEoYvwxFCa7n/tC1SZ3tyq4SQ==",
29004 "requires": {
29005 "postcss-selector-parser": "^6.0.10"
29006 }
29007 },
29008 "postcss-browser-comments": {
29009 "version": "4.0.0",
29010 "resolved": "https://registry.npmjs.org/postcss-browser-comments/-/postcss-browser-comments-4.0.0.tgz",
29011 "integrity": "sha512-X9X9/WN3KIvY9+hNERUqX9gncsgBA25XaeR+jshHz2j8+sYyHktHw1JdKuMjeLpGktXidqDhA7b/qm1mrBDmgg==",
29012 "requires": {}
29013 },
29014 "postcss-calc": {
29015 "version": "8.2.4",
29016 "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-8.2.4.tgz",
29017 "integrity": "sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q==",
29018 "requires": {
29019 "postcss-selector-parser": "^6.0.9",
29020 "postcss-value-parser": "^4.2.0"
29021 }
29022 },
29023 "postcss-clamp": {
29024 "version": "4.1.0",
29025 "resolved": "https://registry.npmjs.org/postcss-clamp/-/postcss-clamp-4.1.0.tgz",
29026 "integrity": "sha512-ry4b1Llo/9zz+PKC+030KUnPITTJAHeOwjfAyyB60eT0AorGLdzp52s31OsPRHRf8NchkgFoG2y6fCfn1IV1Ow==",
29027 "requires": {
29028 "postcss-value-parser": "^4.2.0"
29029 }
29030 },
29031 "postcss-color-functional-notation": {
29032 "version": "4.2.4",
29033 "resolved": "https://registry.npmjs.org/postcss-color-functional-notation/-/postcss-color-functional-notation-4.2.4.tgz",
29034 "integrity": "sha512-2yrTAUZUab9s6CpxkxC4rVgFEVaR6/2Pipvi6qcgvnYiVqZcbDHEoBDhrXzyb7Efh2CCfHQNtcqWcIruDTIUeg==",
29035 "requires": {
29036 "postcss-value-parser": "^4.2.0"
29037 }
29038 },
29039 "postcss-color-hex-alpha": {
29040 "version": "8.0.4",
29041 "resolved": "https://registry.npmjs.org/postcss-color-hex-alpha/-/postcss-color-hex-alpha-8.0.4.tgz",
29042 "integrity": "sha512-nLo2DCRC9eE4w2JmuKgVA3fGL3d01kGq752pVALF68qpGLmx2Qrk91QTKkdUqqp45T1K1XV8IhQpcu1hoAQflQ==",
29043 "requires": {
29044 "postcss-value-parser": "^4.2.0"
29045 }
29046 },
29047 "postcss-color-rebeccapurple": {
29048 "version": "7.1.1",
29049 "resolved": "https://registry.npmjs.org/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-7.1.1.tgz",
29050 "integrity": "sha512-pGxkuVEInwLHgkNxUc4sdg4g3py7zUeCQ9sMfwyHAT+Ezk8a4OaaVZ8lIY5+oNqA/BXXgLyXv0+5wHP68R79hg==",
29051 "requires": {
29052 "postcss-value-parser": "^4.2.0"
29053 }
29054 },
29055 "postcss-colormin": {
29056 "version": "5.3.1",
29057 "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-5.3.1.tgz",
29058 "integrity": "sha512-UsWQG0AqTFQmpBegeLLc1+c3jIqBNB0zlDGRWR+dQ3pRKJL1oeMzyqmH3o2PIfn9MBdNrVPWhDbT769LxCTLJQ==",
29059 "requires": {
29060 "browserslist": "^4.21.4",
29061 "caniuse-api": "^3.0.0",
29062 "colord": "^2.9.1",
29063 "postcss-value-parser": "^4.2.0"
29064 }
29065 },
29066 "postcss-convert-values": {
29067 "version": "5.1.3",
29068 "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-5.1.3.tgz",
29069 "integrity": "sha512-82pC1xkJZtcJEfiLw6UXnXVXScgtBrjlO5CBmuDQc+dlb88ZYheFsjTn40+zBVi3DkfF7iezO0nJUPLcJK3pvA==",
29070 "requires": {
29071 "browserslist": "^4.21.4",
29072 "postcss-value-parser": "^4.2.0"
29073 }
29074 },
29075 "postcss-custom-media": {
29076 "version": "8.0.2",
29077 "resolved": "https://registry.npmjs.org/postcss-custom-media/-/postcss-custom-media-8.0.2.tgz",
29078 "integrity": "sha512-7yi25vDAoHAkbhAzX9dHx2yc6ntS4jQvejrNcC+csQJAXjj15e7VcWfMgLqBNAbOvqi5uIa9huOVwdHbf+sKqg==",
29079 "requires": {
29080 "postcss-value-parser": "^4.2.0"
29081 }
29082 },
29083 "postcss-custom-properties": {
29084 "version": "12.1.11",
29085 "resolved": "https://registry.npmjs.org/postcss-custom-properties/-/postcss-custom-properties-12.1.11.tgz",
29086 "integrity": "sha512-0IDJYhgU8xDv1KY6+VgUwuQkVtmYzRwu+dMjnmdMafXYv86SWqfxkc7qdDvWS38vsjaEtv8e0vGOUQrAiMBLpQ==",
29087 "requires": {
29088 "postcss-value-parser": "^4.2.0"
29089 }
29090 },
29091 "postcss-custom-selectors": {
29092 "version": "6.0.3",
29093 "resolved": "https://registry.npmjs.org/postcss-custom-selectors/-/postcss-custom-selectors-6.0.3.tgz",
29094 "integrity": "sha512-fgVkmyiWDwmD3JbpCmB45SvvlCD6z9CG6Ie6Iere22W5aHea6oWa7EM2bpnv2Fj3I94L3VbtvX9KqwSi5aFzSg==",
29095 "requires": {
29096 "postcss-selector-parser": "^6.0.4"
29097 }
29098 },
29099 "postcss-dir-pseudo-class": {
29100 "version": "6.0.5",
29101 "resolved": "https://registry.npmjs.org/postcss-dir-pseudo-class/-/postcss-dir-pseudo-class-6.0.5.tgz",
29102 "integrity": "sha512-eqn4m70P031PF7ZQIvSgy9RSJ5uI2171O/OO/zcRNYpJbvaeKFUlar1aJ7rmgiQtbm0FSPsRewjpdS0Oew7MPA==",
29103 "requires": {
29104 "postcss-selector-parser": "^6.0.10"
29105 }
29106 },
29107 "postcss-discard-comments": {
29108 "version": "5.1.2",
29109 "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-5.1.2.tgz",
29110 "integrity": "sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ==",
29111 "requires": {}
29112 },
29113 "postcss-discard-duplicates": {
29114 "version": "5.1.0",
29115 "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-5.1.0.tgz",
29116 "integrity": "sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==",
29117 "requires": {}
29118 },
29119 "postcss-discard-empty": {
29120 "version": "5.1.1",
29121 "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-5.1.1.tgz",
29122 "integrity": "sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==",
29123 "requires": {}
29124 },
29125 "postcss-discard-overridden": {
29126 "version": "5.1.0",
29127 "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-5.1.0.tgz",
29128 "integrity": "sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==",
29129 "requires": {}
29130 },
29131 "postcss-double-position-gradients": {
29132 "version": "3.1.2",
29133 "resolved": "https://registry.npmjs.org/postcss-double-position-gradients/-/postcss-double-position-gradients-3.1.2.tgz",
29134 "integrity": "sha512-GX+FuE/uBR6eskOK+4vkXgT6pDkexLokPaz/AbJna9s5Kzp/yl488pKPjhy0obB475ovfT1Wv8ho7U/cHNaRgQ==",
29135 "requires": {
29136 "@csstools/postcss-progressive-custom-properties": "^1.1.0",
29137 "postcss-value-parser": "^4.2.0"
29138 }
29139 },
29140 "postcss-env-function": {
29141 "version": "4.0.6",
29142 "resolved": "https://registry.npmjs.org/postcss-env-function/-/postcss-env-function-4.0.6.tgz",
29143 "integrity": "sha512-kpA6FsLra+NqcFnL81TnsU+Z7orGtDTxcOhl6pwXeEq1yFPpRMkCDpHhrz8CFQDr/Wfm0jLiNQ1OsGGPjlqPwA==",
29144 "requires": {
29145 "postcss-value-parser": "^4.2.0"
29146 }
29147 },
29148 "postcss-flexbugs-fixes": {
29149 "version": "5.0.2",
29150 "resolved": "https://registry.npmjs.org/postcss-flexbugs-fixes/-/postcss-flexbugs-fixes-5.0.2.tgz",
29151 "integrity": "sha512-18f9voByak7bTktR2QgDveglpn9DTbBWPUzSOe9g0N4WR/2eSt6Vrcbf0hmspvMI6YWGywz6B9f7jzpFNJJgnQ==",
29152 "requires": {}
29153 },
29154 "postcss-focus-visible": {
29155 "version": "6.0.4",
29156 "resolved": "https://registry.npmjs.org/postcss-focus-visible/-/postcss-focus-visible-6.0.4.tgz",
29157 "integrity": "sha512-QcKuUU/dgNsstIK6HELFRT5Y3lbrMLEOwG+A4s5cA+fx3A3y/JTq3X9LaOj3OC3ALH0XqyrgQIgey/MIZ8Wczw==",
29158 "requires": {
29159 "postcss-selector-parser": "^6.0.9"
29160 }
29161 },
29162 "postcss-focus-within": {
29163 "version": "5.0.4",
29164 "resolved": "https://registry.npmjs.org/postcss-focus-within/-/postcss-focus-within-5.0.4.tgz",
29165 "integrity": "sha512-vvjDN++C0mu8jz4af5d52CB184ogg/sSxAFS+oUJQq2SuCe7T5U2iIsVJtsCp2d6R4j0jr5+q3rPkBVZkXD9fQ==",
29166 "requires": {
29167 "postcss-selector-parser": "^6.0.9"
29168 }
29169 },
29170 "postcss-font-variant": {
29171 "version": "5.0.0",
29172 "resolved": "https://registry.npmjs.org/postcss-font-variant/-/postcss-font-variant-5.0.0.tgz",
29173 "integrity": "sha512-1fmkBaCALD72CK2a9i468mA/+tr9/1cBxRRMXOUaZqO43oWPR5imcyPjXwuv7PXbCid4ndlP5zWhidQVVa3hmA==",
29174 "requires": {}
29175 },
29176 "postcss-gap-properties": {
29177 "version": "3.0.5",
29178 "resolved": "https://registry.npmjs.org/postcss-gap-properties/-/postcss-gap-properties-3.0.5.tgz",
29179 "integrity": "sha512-IuE6gKSdoUNcvkGIqdtjtcMtZIFyXZhmFd5RUlg97iVEvp1BZKV5ngsAjCjrVy+14uhGBQl9tzmi1Qwq4kqVOg==",
29180 "requires": {}
29181 },
29182 "postcss-image-set-function": {
29183 "version": "4.0.7",
29184 "resolved": "https://registry.npmjs.org/postcss-image-set-function/-/postcss-image-set-function-4.0.7.tgz",
29185 "integrity": "sha512-9T2r9rsvYzm5ndsBE8WgtrMlIT7VbtTfE7b3BQnudUqnBcBo7L758oc+o+pdj/dUV0l5wjwSdjeOH2DZtfv8qw==",
29186 "requires": {
29187 "postcss-value-parser": "^4.2.0"
29188 }
29189 },
29190 "postcss-import": {
29191 "version": "15.1.0",
29192 "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz",
29193 "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==",
29194 "requires": {
29195 "postcss-value-parser": "^4.0.0",
29196 "read-cache": "^1.0.0",
29197 "resolve": "^1.1.7"
29198 }
29199 },
29200 "postcss-initial": {
29201 "version": "4.0.1",
29202 "resolved": "https://registry.npmjs.org/postcss-initial/-/postcss-initial-4.0.1.tgz",
29203 "integrity": "sha512-0ueD7rPqX8Pn1xJIjay0AZeIuDoF+V+VvMt/uOnn+4ezUKhZM/NokDeP6DwMNyIoYByuN/94IQnt5FEkaN59xQ==",
29204 "requires": {}
29205 },
29206 "postcss-js": {
29207 "version": "4.0.1",
29208 "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz",
29209 "integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==",
29210 "requires": {
29211 "camelcase-css": "^2.0.1"
29212 }
29213 },
29214 "postcss-lab-function": {
29215 "version": "4.2.1",
29216 "resolved": "https://registry.npmjs.org/postcss-lab-function/-/postcss-lab-function-4.2.1.tgz",
29217 "integrity": "sha512-xuXll4isR03CrQsmxyz92LJB2xX9n+pZJ5jE9JgcnmsCammLyKdlzrBin+25dy6wIjfhJpKBAN80gsTlCgRk2w==",
29218 "requires": {
29219 "@csstools/postcss-progressive-custom-properties": "^1.1.0",
29220 "postcss-value-parser": "^4.2.0"
29221 }
29222 },
29223 "postcss-load-config": {
29224 "version": "4.0.2",
29225 "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.2.tgz",
29226 "integrity": "sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==",
29227 "requires": {
29228 "lilconfig": "^3.0.0",
29229 "yaml": "^2.3.4"
29230 },
29231 "dependencies": {
29232 "lilconfig": {
29233 "version": "3.1.2",
29234 "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.2.tgz",
29235 "integrity": "sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow=="
29236 },
29237 "yaml": {
29238 "version": "2.4.5",
29239 "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.4.5.tgz",
29240 "integrity": "sha512-aBx2bnqDzVOyNKfsysjA2ms5ZlnjSAW2eG3/L5G/CSujfjLJTJsEw1bGw8kCf04KodQWk1pxlGnZ56CRxiawmg=="
29241 }
29242 }
29243 },
29244 "postcss-loader": {
29245 "version": "6.2.1",
29246 "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-6.2.1.tgz",
29247 "integrity": "sha512-WbbYpmAaKcux/P66bZ40bpWsBucjx/TTgVVzRZ9yUO8yQfVBlameJ0ZGVaPfH64hNSBh63a+ICP5nqOpBA0w+Q==",
29248 "requires": {
29249 "cosmiconfig": "^7.0.0",
29250 "klona": "^2.0.5",
29251 "semver": "^7.3.5"
29252 }
29253 },
29254 "postcss-logical": {
29255 "version": "5.0.4",
29256 "resolved": "https://registry.npmjs.org/postcss-logical/-/postcss-logical-5.0.4.tgz",
29257 "integrity": "sha512-RHXxplCeLh9VjinvMrZONq7im4wjWGlRJAqmAVLXyZaXwfDWP73/oq4NdIp+OZwhQUMj0zjqDfM5Fj7qby+B4g==",
29258 "requires": {}
29259 },
29260 "postcss-media-minmax": {
29261 "version": "5.0.0",
29262 "resolved": "https://registry.npmjs.org/postcss-media-minmax/-/postcss-media-minmax-5.0.0.tgz",
29263 "integrity": "sha512-yDUvFf9QdFZTuCUg0g0uNSHVlJ5X1lSzDZjPSFaiCWvjgsvu8vEVxtahPrLMinIDEEGnx6cBe6iqdx5YWz08wQ==",
29264 "requires": {}
29265 },
29266 "postcss-merge-longhand": {
29267 "version": "5.1.7",
29268 "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-5.1.7.tgz",
29269 "integrity": "sha512-YCI9gZB+PLNskrK0BB3/2OzPnGhPkBEwmwhfYk1ilBHYVAZB7/tkTHFBAnCrvBBOmeYyMYw3DMjT55SyxMBzjQ==",
29270 "requires": {
29271 "postcss-value-parser": "^4.2.0",
29272 "stylehacks": "^5.1.1"
29273 }
29274 },
29275 "postcss-merge-rules": {
29276 "version": "5.1.4",
29277 "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-5.1.4.tgz",
29278 "integrity": "sha512-0R2IuYpgU93y9lhVbO/OylTtKMVcHb67zjWIfCiKR9rWL3GUk1677LAqD/BcHizukdZEjT8Ru3oHRoAYoJy44g==",
29279 "requires": {
29280 "browserslist": "^4.21.4",
29281 "caniuse-api": "^3.0.0",
29282 "cssnano-utils": "^3.1.0",
29283 "postcss-selector-parser": "^6.0.5"
29284 }
29285 },
29286 "postcss-minify-font-values": {
29287 "version": "5.1.0",
29288 "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-5.1.0.tgz",
29289 "integrity": "sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA==",
29290 "requires": {
29291 "postcss-value-parser": "^4.2.0"
29292 }
29293 },
29294 "postcss-minify-gradients": {
29295 "version": "5.1.1",
29296 "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-5.1.1.tgz",
29297 "integrity": "sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw==",
29298 "requires": {
29299 "colord": "^2.9.1",
29300 "cssnano-utils": "^3.1.0",
29301 "postcss-value-parser": "^4.2.0"
29302 }
29303 },
29304 "postcss-minify-params": {
29305 "version": "5.1.4",
29306 "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-5.1.4.tgz",
29307 "integrity": "sha512-+mePA3MgdmVmv6g+30rn57USjOGSAyuxUmkfiWpzalZ8aiBkdPYjXWtHuwJGm1v5Ojy0Z0LaSYhHaLJQB0P8Jw==",
29308 "requires": {
29309 "browserslist": "^4.21.4",
29310 "cssnano-utils": "^3.1.0",
29311 "postcss-value-parser": "^4.2.0"
29312 }
29313 },
29314 "postcss-minify-selectors": {
29315 "version": "5.2.1",
29316 "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-5.2.1.tgz",
29317 "integrity": "sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg==",
29318 "requires": {
29319 "postcss-selector-parser": "^6.0.5"
29320 }
29321 },
29322 "postcss-modules-extract-imports": {
29323 "version": "3.1.0",
29324 "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.1.0.tgz",
29325 "integrity": "sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q==",
29326 "requires": {}
29327 },
29328 "postcss-modules-local-by-default": {
29329 "version": "4.0.5",
29330 "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.5.tgz",
29331 "integrity": "sha512-6MieY7sIfTK0hYfafw1OMEG+2bg8Q1ocHCpoWLqOKj3JXlKu4G7btkmM/B7lFubYkYWmRSPLZi5chid63ZaZYw==",
29332 "requires": {
29333 "icss-utils": "^5.0.0",
29334 "postcss-selector-parser": "^6.0.2",
29335 "postcss-value-parser": "^4.1.0"
29336 }
29337 },
29338 "postcss-modules-scope": {
29339 "version": "3.2.0",
29340 "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.2.0.tgz",
29341 "integrity": "sha512-oq+g1ssrsZOsx9M96c5w8laRmvEu9C3adDSjI8oTcbfkrTE8hx/zfyobUoWIxaKPO8bt6S62kxpw5GqypEw1QQ==",
29342 "requires": {
29343 "postcss-selector-parser": "^6.0.4"
29344 }
29345 },
29346 "postcss-modules-values": {
29347 "version": "4.0.0",
29348 "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz",
29349 "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==",
29350 "requires": {
29351 "icss-utils": "^5.0.0"
29352 }
29353 },
29354 "postcss-nested": {
29355 "version": "6.0.1",
29356 "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.0.1.tgz",
29357 "integrity": "sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==",
29358 "requires": {
29359 "postcss-selector-parser": "^6.0.11"
29360 }
29361 },
29362 "postcss-nesting": {
29363 "version": "10.2.0",
29364 "resolved": "https://registry.npmjs.org/postcss-nesting/-/postcss-nesting-10.2.0.tgz",
29365 "integrity": "sha512-EwMkYchxiDiKUhlJGzWsD9b2zvq/r2SSubcRrgP+jujMXFzqvANLt16lJANC+5uZ6hjI7lpRmI6O8JIl+8l1KA==",
29366 "requires": {
29367 "@csstools/selector-specificity": "^2.0.0",
29368 "postcss-selector-parser": "^6.0.10"
29369 }
29370 },
29371 "postcss-normalize": {
29372 "version": "10.0.1",
29373 "resolved": "https://registry.npmjs.org/postcss-normalize/-/postcss-normalize-10.0.1.tgz",
29374 "integrity": "sha512-+5w18/rDev5mqERcG3W5GZNMJa1eoYYNGo8gB7tEwaos0ajk3ZXAI4mHGcNT47NE+ZnZD1pEpUOFLvltIwmeJA==",
29375 "requires": {
29376 "@csstools/normalize.css": "*",
29377 "postcss-browser-comments": "^4",
29378 "sanitize.css": "*"
29379 }
29380 },
29381 "postcss-normalize-charset": {
29382 "version": "5.1.0",
29383 "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-5.1.0.tgz",
29384 "integrity": "sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg==",
29385 "requires": {}
29386 },
29387 "postcss-normalize-display-values": {
29388 "version": "5.1.0",
29389 "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-5.1.0.tgz",
29390 "integrity": "sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA==",
29391 "requires": {
29392 "postcss-value-parser": "^4.2.0"
29393 }
29394 },
29395 "postcss-normalize-positions": {
29396 "version": "5.1.1",
29397 "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-5.1.1.tgz",
29398 "integrity": "sha512-6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg==",
29399 "requires": {
29400 "postcss-value-parser": "^4.2.0"
29401 }
29402 },
29403 "postcss-normalize-repeat-style": {
29404 "version": "5.1.1",
29405 "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.1.1.tgz",
29406 "integrity": "sha512-mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g==",
29407 "requires": {
29408 "postcss-value-parser": "^4.2.0"
29409 }
29410 },
29411 "postcss-normalize-string": {
29412 "version": "5.1.0",
29413 "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-5.1.0.tgz",
29414 "integrity": "sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w==",
29415 "requires": {
29416 "postcss-value-parser": "^4.2.0"
29417 }
29418 },
29419 "postcss-normalize-timing-functions": {
29420 "version": "5.1.0",
29421 "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-5.1.0.tgz",
29422 "integrity": "sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg==",
29423 "requires": {
29424 "postcss-value-parser": "^4.2.0"
29425 }
29426 },
29427 "postcss-normalize-unicode": {
29428 "version": "5.1.1",
29429 "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-5.1.1.tgz",
29430 "integrity": "sha512-qnCL5jzkNUmKVhZoENp1mJiGNPcsJCs1aaRmURmeJGES23Z/ajaln+EPTD+rBeNkSryI+2WTdW+lwcVdOikrpA==",
29431 "requires": {
29432 "browserslist": "^4.21.4",
29433 "postcss-value-parser": "^4.2.0"
29434 }
29435 },
29436 "postcss-normalize-url": {
29437 "version": "5.1.0",
29438 "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-5.1.0.tgz",
29439 "integrity": "sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew==",
29440 "requires": {
29441 "normalize-url": "^6.0.1",
29442 "postcss-value-parser": "^4.2.0"
29443 }
29444 },
29445 "postcss-normalize-whitespace": {
29446 "version": "5.1.1",
29447 "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.1.1.tgz",
29448 "integrity": "sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA==",
29449 "requires": {
29450 "postcss-value-parser": "^4.2.0"
29451 }
29452 },
29453 "postcss-opacity-percentage": {
29454 "version": "1.1.3",
29455 "resolved": "https://registry.npmjs.org/postcss-opacity-percentage/-/postcss-opacity-percentage-1.1.3.tgz",
29456 "integrity": "sha512-An6Ba4pHBiDtyVpSLymUUERMo2cU7s+Obz6BTrS+gxkbnSBNKSuD0AVUc+CpBMrpVPKKfoVz0WQCX+Tnst0i4A==",
29457 "requires": {}
29458 },
29459 "postcss-ordered-values": {
29460 "version": "5.1.3",
29461 "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-5.1.3.tgz",
29462 "integrity": "sha512-9UO79VUhPwEkzbb3RNpqqghc6lcYej1aveQteWY+4POIwlqkYE21HKWaLDF6lWNuqCobEAyTovVhtI32Rbv2RQ==",
29463 "requires": {
29464 "cssnano-utils": "^3.1.0",
29465 "postcss-value-parser": "^4.2.0"
29466 }
29467 },
29468 "postcss-overflow-shorthand": {
29469 "version": "3.0.4",
29470 "resolved": "https://registry.npmjs.org/postcss-overflow-shorthand/-/postcss-overflow-shorthand-3.0.4.tgz",
29471 "integrity": "sha512-otYl/ylHK8Y9bcBnPLo3foYFLL6a6Ak+3EQBPOTR7luMYCOsiVTUk1iLvNf6tVPNGXcoL9Hoz37kpfriRIFb4A==",
29472 "requires": {
29473 "postcss-value-parser": "^4.2.0"
29474 }
29475 },
29476 "postcss-page-break": {
29477 "version": "3.0.4",
29478 "resolved": "https://registry.npmjs.org/postcss-page-break/-/postcss-page-break-3.0.4.tgz",
29479 "integrity": "sha512-1JGu8oCjVXLa9q9rFTo4MbeeA5FMe00/9C7lN4va606Rdb+HkxXtXsmEDrIraQ11fGz/WvKWa8gMuCKkrXpTsQ==",
29480 "requires": {}
29481 },
29482 "postcss-place": {
29483 "version": "7.0.5",
29484 "resolved": "https://registry.npmjs.org/postcss-place/-/postcss-place-7.0.5.tgz",
29485 "integrity": "sha512-wR8igaZROA6Z4pv0d+bvVrvGY4GVHihBCBQieXFY3kuSuMyOmEnnfFzHl/tQuqHZkfkIVBEbDvYcFfHmpSet9g==",
29486 "requires": {
29487 "postcss-value-parser": "^4.2.0"
29488 }
29489 },
29490 "postcss-preset-env": {
29491 "version": "7.8.3",
29492 "resolved": "https://registry.npmjs.org/postcss-preset-env/-/postcss-preset-env-7.8.3.tgz",
29493 "integrity": "sha512-T1LgRm5uEVFSEF83vHZJV2z19lHg4yJuZ6gXZZkqVsqv63nlr6zabMH3l4Pc01FQCyfWVrh2GaUeCVy9Po+Aag==",
29494 "requires": {
29495 "@csstools/postcss-cascade-layers": "^1.1.1",
29496 "@csstools/postcss-color-function": "^1.1.1",
29497 "@csstools/postcss-font-format-keywords": "^1.0.1",
29498 "@csstools/postcss-hwb-function": "^1.0.2",
29499 "@csstools/postcss-ic-unit": "^1.0.1",
29500 "@csstools/postcss-is-pseudo-class": "^2.0.7",
29501 "@csstools/postcss-nested-calc": "^1.0.0",
29502 "@csstools/postcss-normalize-display-values": "^1.0.1",
29503 "@csstools/postcss-oklab-function": "^1.1.1",
29504 "@csstools/postcss-progressive-custom-properties": "^1.3.0",
29505 "@csstools/postcss-stepped-value-functions": "^1.0.1",
29506 "@csstools/postcss-text-decoration-shorthand": "^1.0.0",
29507 "@csstools/postcss-trigonometric-functions": "^1.0.2",
29508 "@csstools/postcss-unset-value": "^1.0.2",
29509 "autoprefixer": "^10.4.13",
29510 "browserslist": "^4.21.4",
29511 "css-blank-pseudo": "^3.0.3",
29512 "css-has-pseudo": "^3.0.4",
29513 "css-prefers-color-scheme": "^6.0.3",
29514 "cssdb": "^7.1.0",
29515 "postcss-attribute-case-insensitive": "^5.0.2",
29516 "postcss-clamp": "^4.1.0",
29517 "postcss-color-functional-notation": "^4.2.4",
29518 "postcss-color-hex-alpha": "^8.0.4",
29519 "postcss-color-rebeccapurple": "^7.1.1",
29520 "postcss-custom-media": "^8.0.2",
29521 "postcss-custom-properties": "^12.1.10",
29522 "postcss-custom-selectors": "^6.0.3",
29523 "postcss-dir-pseudo-class": "^6.0.5",
29524 "postcss-double-position-gradients": "^3.1.2",
29525 "postcss-env-function": "^4.0.6",
29526 "postcss-focus-visible": "^6.0.4",
29527 "postcss-focus-within": "^5.0.4",
29528 "postcss-font-variant": "^5.0.0",
29529 "postcss-gap-properties": "^3.0.5",
29530 "postcss-image-set-function": "^4.0.7",
29531 "postcss-initial": "^4.0.1",
29532 "postcss-lab-function": "^4.2.1",
29533 "postcss-logical": "^5.0.4",
29534 "postcss-media-minmax": "^5.0.0",
29535 "postcss-nesting": "^10.2.0",
29536 "postcss-opacity-percentage": "^1.1.2",
29537 "postcss-overflow-shorthand": "^3.0.4",
29538 "postcss-page-break": "^3.0.4",
29539 "postcss-place": "^7.0.5",
29540 "postcss-pseudo-class-any-link": "^7.1.6",
29541 "postcss-replace-overflow-wrap": "^4.0.0",
29542 "postcss-selector-not": "^6.0.1",
29543 "postcss-value-parser": "^4.2.0"
29544 }
29545 },
29546 "postcss-pseudo-class-any-link": {
29547 "version": "7.1.6",
29548 "resolved": "https://registry.npmjs.org/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-7.1.6.tgz",
29549 "integrity": "sha512-9sCtZkO6f/5ML9WcTLcIyV1yz9D1rf0tWc+ulKcvV30s0iZKS/ONyETvoWsr6vnrmW+X+KmuK3gV/w5EWnT37w==",
29550 "requires": {
29551 "postcss-selector-parser": "^6.0.10"
29552 }
29553 },
29554 "postcss-reduce-initial": {
29555 "version": "5.1.2",
29556 "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-5.1.2.tgz",
29557 "integrity": "sha512-dE/y2XRaqAi6OvjzD22pjTUQ8eOfc6m/natGHgKFBK9DxFmIm69YmaRVQrGgFlEfc1HePIurY0TmDeROK05rIg==",
29558 "requires": {
29559 "browserslist": "^4.21.4",
29560 "caniuse-api": "^3.0.0"
29561 }
29562 },
29563 "postcss-reduce-transforms": {
29564 "version": "5.1.0",
29565 "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-5.1.0.tgz",
29566 "integrity": "sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ==",
29567 "requires": {
29568 "postcss-value-parser": "^4.2.0"
29569 }
29570 },
29571 "postcss-replace-overflow-wrap": {
29572 "version": "4.0.0",
29573 "resolved": "https://registry.npmjs.org/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-4.0.0.tgz",
29574 "integrity": "sha512-KmF7SBPphT4gPPcKZc7aDkweHiKEEO8cla/GjcBK+ckKxiZslIu3C4GCRW3DNfL0o7yW7kMQu9xlZ1kXRXLXtw==",
29575 "requires": {}
29576 },
29577 "postcss-selector-not": {
29578 "version": "6.0.1",
29579 "resolved": "https://registry.npmjs.org/postcss-selector-not/-/postcss-selector-not-6.0.1.tgz",
29580 "integrity": "sha512-1i9affjAe9xu/y9uqWH+tD4r6/hDaXJruk8xn2x1vzxC2U3J3LKO3zJW4CyxlNhA56pADJ/djpEwpH1RClI2rQ==",
29581 "requires": {
29582 "postcss-selector-parser": "^6.0.10"
29583 }
29584 },
29585 "postcss-selector-parser": {
29586 "version": "6.1.0",
29587 "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.0.tgz",
29588 "integrity": "sha512-UMz42UD0UY0EApS0ZL9o1XnLhSTtvvvLe5Dc2H2O56fvRZi+KulDyf5ctDhhtYJBGKStV2FL1fy6253cmLgqVQ==",
29589 "requires": {
29590 "cssesc": "^3.0.0",
29591 "util-deprecate": "^1.0.2"
29592 }
29593 },
29594 "postcss-svgo": {
29595 "version": "5.1.0",
29596 "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-5.1.0.tgz",
29597 "integrity": "sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA==",
29598 "requires": {
29599 "postcss-value-parser": "^4.2.0",
29600 "svgo": "^2.7.0"
29601 },
29602 "dependencies": {
29603 "commander": {
29604 "version": "7.2.0",
29605 "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz",
29606 "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw=="
29607 },
29608 "css-tree": {
29609 "version": "1.1.3",
29610 "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz",
29611 "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==",
29612 "requires": {
29613 "mdn-data": "2.0.14",
29614 "source-map": "^0.6.1"
29615 }
29616 },
29617 "mdn-data": {
29618 "version": "2.0.14",
29619 "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz",
29620 "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow=="
29621 },
29622 "source-map": {
29623 "version": "0.6.1",
29624 "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
29625 "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
29626 },
29627 "svgo": {
29628 "version": "2.8.0",
29629 "resolved": "https://registry.npmjs.org/svgo/-/svgo-2.8.0.tgz",
29630 "integrity": "sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==",
29631 "requires": {
29632 "@trysound/sax": "0.2.0",
29633 "commander": "^7.2.0",
29634 "css-select": "^4.1.3",
29635 "css-tree": "^1.1.3",
29636 "csso": "^4.2.0",
29637 "picocolors": "^1.0.0",
29638 "stable": "^0.1.8"
29639 }
29640 }
29641 }
29642 },
29643 "postcss-unique-selectors": {
29644 "version": "5.1.1",
29645 "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-5.1.1.tgz",
29646 "integrity": "sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA==",
29647 "requires": {
29648 "postcss-selector-parser": "^6.0.5"
29649 }
29650 },
29651 "postcss-value-parser": {
29652 "version": "4.2.0",
29653 "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz",
29654 "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ=="
29655 },
29656 "prelude-ls": {
29657 "version": "1.2.1",
29658 "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz",
29659 "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g=="
29660 },
29661 "pretty-bytes": {
29662 "version": "5.6.0",
29663 "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz",
29664 "integrity": "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg=="
29665 },
29666 "pretty-error": {
29667 "version": "4.0.0",
29668 "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-4.0.0.tgz",
29669 "integrity": "sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw==",
29670 "requires": {
29671 "lodash": "^4.17.20",
29672 "renderkid": "^3.0.0"
29673 }
29674 },
29675 "pretty-format": {
29676 "version": "27.5.1",
29677 "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz",
29678 "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==",
29679 "requires": {
29680 "ansi-regex": "^5.0.1",
29681 "ansi-styles": "^5.0.0",
29682 "react-is": "^17.0.1"
29683 },
29684 "dependencies": {
29685 "ansi-styles": {
29686 "version": "5.2.0",
29687 "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz",
29688 "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA=="
29689 }
29690 }
29691 },
29692 "process-nextick-args": {
29693 "version": "2.0.1",
29694 "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
29695 "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag=="
29696 },
29697 "promise": {
29698 "version": "8.3.0",
29699 "resolved": "https://registry.npmjs.org/promise/-/promise-8.3.0.tgz",
29700 "integrity": "sha512-rZPNPKTOYVNEEKFaq1HqTgOwZD+4/YHS5ukLzQCypkj+OkYx7iv0mA91lJlpPPZ8vMau3IIGj5Qlwrx+8iiSmg==",
29701 "requires": {
29702 "asap": "~2.0.6"
29703 }
29704 },
29705 "prompts": {
29706 "version": "2.4.2",
29707 "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz",
29708 "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==",
29709 "requires": {
29710 "kleur": "^3.0.3",
29711 "sisteransi": "^1.0.5"
29712 }
29713 },
29714 "prop-types": {
29715 "version": "15.8.1",
29716 "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz",
29717 "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==",
29718 "requires": {
29719 "loose-envify": "^1.4.0",
29720 "object-assign": "^4.1.1",
29721 "react-is": "^16.13.1"
29722 },
29723 "dependencies": {
29724 "react-is": {
29725 "version": "16.13.1",
29726 "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
29727 "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ=="
29728 }
29729 }
29730 },
29731 "property-information": {
29732 "version": "6.2.0",
29733 "resolved": "https://registry.npmjs.org/property-information/-/property-information-6.2.0.tgz",
29734 "integrity": "sha512-kma4U7AFCTwpqq5twzC1YVIDXSqg6qQK6JN0smOw8fgRy1OkMi0CYSzFmsy6dnqSenamAtj0CyXMUJ1Mf6oROg=="
29735 },
29736 "proxy-addr": {
29737 "version": "2.0.7",
29738 "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz",
29739 "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==",
29740 "requires": {
29741 "forwarded": "0.2.0",
29742 "ipaddr.js": "1.9.1"
29743 },
29744 "dependencies": {
29745 "ipaddr.js": {
29746 "version": "1.9.1",
29747 "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz",
29748 "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g=="
29749 }
29750 }
29751 },
29752 "psl": {
29753 "version": "1.9.0",
29754 "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz",
29755 "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag=="
29756 },
29757 "punycode": {
29758 "version": "2.3.1",
29759 "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz",
29760 "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg=="
29761 },
29762 "q": {
29763 "version": "1.5.1",
29764 "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz",
29765 "integrity": "sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw=="
29766 },
29767 "qs": {
29768 "version": "6.11.0",
29769 "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz",
29770 "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==",
29771 "requires": {
29772 "side-channel": "^1.0.4"
29773 }
29774 },
29775 "querystringify": {
29776 "version": "2.2.0",
29777 "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz",
29778 "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ=="
29779 },
29780 "queue-microtask": {
29781 "version": "1.2.3",
29782 "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
29783 "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A=="
29784 },
29785 "raf": {
29786 "version": "3.4.1",
29787 "resolved": "https://registry.npmjs.org/raf/-/raf-3.4.1.tgz",
29788 "integrity": "sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA==",
29789 "requires": {
29790 "performance-now": "^2.1.0"
29791 }
29792 },
29793 "randombytes": {
29794 "version": "2.1.0",
29795 "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz",
29796 "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==",
29797 "requires": {
29798 "safe-buffer": "^5.1.0"
29799 }
29800 },
29801 "range-parser": {
29802 "version": "1.2.1",
29803 "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
29804 "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg=="
29805 },
29806 "raw-body": {
29807 "version": "2.5.2",
29808 "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz",
29809 "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==",
29810 "requires": {
29811 "bytes": "3.1.2",
29812 "http-errors": "2.0.0",
29813 "iconv-lite": "0.4.24",
29814 "unpipe": "1.0.0"
29815 },
29816 "dependencies": {
29817 "bytes": {
29818 "version": "3.1.2",
29819 "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz",
29820 "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg=="
29821 },
29822 "iconv-lite": {
29823 "version": "0.4.24",
29824 "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
29825 "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
29826 "requires": {
29827 "safer-buffer": ">= 2.1.2 < 3"
29828 }
29829 }
29830 }
29831 },
29832 "react": {
29833 "version": "18.2.0",
29834 "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz",
29835 "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==",
29836 "requires": {
29837 "loose-envify": "^1.1.0"
29838 }
29839 },
29840 "react-app-polyfill": {
29841 "version": "3.0.0",
29842 "resolved": "https://registry.npmjs.org/react-app-polyfill/-/react-app-polyfill-3.0.0.tgz",
29843 "integrity": "sha512-sZ41cxiU5llIB003yxxQBYrARBqe0repqPTTYBTmMqTz9szeBbE37BehCE891NZsmdZqqP+xWKdT3eo3vOzN8w==",
29844 "requires": {
29845 "core-js": "^3.19.2",
29846 "object-assign": "^4.1.1",
29847 "promise": "^8.1.0",
29848 "raf": "^3.4.1",
29849 "regenerator-runtime": "^0.13.9",
29850 "whatwg-fetch": "^3.6.2"
29851 }
29852 },
29853 "react-dev-utils": {
29854 "version": "12.0.1",
29855 "resolved": "https://registry.npmjs.org/react-dev-utils/-/react-dev-utils-12.0.1.tgz",
29856 "integrity": "sha512-84Ivxmr17KjUupyqzFode6xKhjwuEJDROWKJy/BthkL7Wn6NJ8h4WE6k/exAv6ImS+0oZLRRW5j/aINMHyeGeQ==",
29857 "requires": {
29858 "@babel/code-frame": "^7.16.0",
29859 "address": "^1.1.2",
29860 "browserslist": "^4.18.1",
29861 "chalk": "^4.1.2",
29862 "cross-spawn": "^7.0.3",
29863 "detect-port-alt": "^1.1.6",
29864 "escape-string-regexp": "^4.0.0",
29865 "filesize": "^8.0.6",
29866 "find-up": "^5.0.0",
29867 "fork-ts-checker-webpack-plugin": "^6.5.0",
29868 "global-modules": "^2.0.0",
29869 "globby": "^11.0.4",
29870 "gzip-size": "^6.0.0",
29871 "immer": "^9.0.7",
29872 "is-root": "^2.1.0",
29873 "loader-utils": "^3.2.0",
29874 "open": "^8.4.0",
29875 "pkg-up": "^3.1.0",
29876 "prompts": "^2.4.2",
29877 "react-error-overlay": "^6.0.11",
29878 "recursive-readdir": "^2.2.2",
29879 "shell-quote": "^1.7.3",
29880 "strip-ansi": "^6.0.1",
29881 "text-table": "^0.2.0"
29882 },
29883 "dependencies": {
29884 "ansi-styles": {
29885 "version": "4.3.0",
29886 "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
29887 "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
29888 "requires": {
29889 "color-convert": "^2.0.1"
29890 }
29891 },
29892 "chalk": {
29893 "version": "4.1.2",
29894 "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
29895 "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
29896 "requires": {
29897 "ansi-styles": "^4.1.0",
29898 "supports-color": "^7.1.0"
29899 }
29900 },
29901 "color-convert": {
29902 "version": "2.0.1",
29903 "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
29904 "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
29905 "requires": {
29906 "color-name": "~1.1.4"
29907 }
29908 },
29909 "color-name": {
29910 "version": "1.1.4",
29911 "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
29912 "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
29913 },
29914 "escape-string-regexp": {
29915 "version": "4.0.0",
29916 "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
29917 "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA=="
29918 },
29919 "find-up": {
29920 "version": "5.0.0",
29921 "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz",
29922 "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==",
29923 "requires": {
29924 "locate-path": "^6.0.0",
29925 "path-exists": "^4.0.0"
29926 }
29927 },
29928 "has-flag": {
29929 "version": "4.0.0",
29930 "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
29931 "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
29932 },
29933 "loader-utils": {
29934 "version": "3.3.1",
29935 "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-3.3.1.tgz",
29936 "integrity": "sha512-FMJTLMXfCLMLfJxcX9PFqX5qD88Z5MRGaZCVzfuqeZSPsyiBzs+pahDQjbIWz2QIzPZz0NX9Zy4FX3lmK6YHIg=="
29937 },
29938 "locate-path": {
29939 "version": "6.0.0",
29940 "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz",
29941 "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==",
29942 "requires": {
29943 "p-locate": "^5.0.0"
29944 }
29945 },
29946 "p-limit": {
29947 "version": "3.1.0",
29948 "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
29949 "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
29950 "requires": {
29951 "yocto-queue": "^0.1.0"
29952 }
29953 },
29954 "p-locate": {
29955 "version": "5.0.0",
29956 "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz",
29957 "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==",
29958 "requires": {
29959 "p-limit": "^3.0.2"
29960 }
29961 },
29962 "supports-color": {
29963 "version": "7.2.0",
29964 "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
29965 "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
29966 "requires": {
29967 "has-flag": "^4.0.0"
29968 }
29969 }
29970 }
29971 },
29972 "react-dom": {
29973 "version": "18.2.0",
29974 "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz",
29975 "integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==",
29976 "requires": {
29977 "loose-envify": "^1.1.0",
29978 "scheduler": "^0.23.0"
29979 }
29980 },
29981 "react-error-overlay": {
29982 "version": "6.0.11",
29983 "resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.11.tgz",
29984 "integrity": "sha512-/6UZ2qgEyH2aqzYZgQPxEnz33NJ2gNsnHA2o5+o4wW9bLM/JYQitNP9xPhsXwC08hMMovfGe/8retsdDsczPRg=="
29985 },
29986 "react-is": {
29987 "version": "17.0.2",
29988 "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz",
29989 "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w=="
29990 },
29991 "react-markdown": {
29992 "version": "8.0.7",
29993 "resolved": "https://registry.npmjs.org/react-markdown/-/react-markdown-8.0.7.tgz",
29994 "integrity": "sha512-bvWbzG4MtOU62XqBx3Xx+zB2raaFFsq4mYiAzfjXJMEz2sixgeAfraA3tvzULF02ZdOMUOKTBFFaZJDDrq+BJQ==",
29995 "requires": {
29996 "@types/hast": "^2.0.0",
29997 "@types/prop-types": "^15.0.0",
29998 "@types/unist": "^2.0.0",
29999 "comma-separated-tokens": "^2.0.0",
30000 "hast-util-whitespace": "^2.0.0",
30001 "prop-types": "^15.0.0",
30002 "property-information": "^6.0.0",
30003 "react-is": "^18.0.0",
30004 "remark-parse": "^10.0.0",
30005 "remark-rehype": "^10.0.0",
30006 "space-separated-tokens": "^2.0.0",
30007 "style-to-object": "^0.4.0",
30008 "unified": "^10.0.0",
30009 "unist-util-visit": "^4.0.0",
30010 "vfile": "^5.0.0"
30011 },
30012 "dependencies": {
30013 "react-is": {
30014 "version": "18.2.0",
30015 "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz",
30016 "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w=="
30017 }
30018 }
30019 },
30020 "react-refresh": {
30021 "version": "0.11.0",
30022 "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.11.0.tgz",
30023 "integrity": "sha512-F27qZr8uUqwhWZboondsPx8tnC3Ct3SxZA3V5WyEvujRyyNv0VYPhoBg1gZ8/MV5tubQp76Trw8lTv9hzRBa+A=="
30024 },
30025 "react-router": {
30026 "version": "6.10.0",
30027 "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.10.0.tgz",
30028 "integrity": "sha512-Nrg0BWpQqrC3ZFFkyewrflCud9dio9ME3ojHCF/WLsprJVzkq3q3UeEhMCAW1dobjeGbWgjNn/PVF6m46ANxXQ==",
30029 "dev": true,
30030 "requires": {
30031 "@remix-run/router": "1.5.0"
30032 }
30033 },
30034 "react-router-dom": {
30035 "version": "6.10.0",
30036 "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.10.0.tgz",
30037 "integrity": "sha512-E5dfxRPuXKJqzwSe/qGcqdwa18QiWC6f3H3cWXM24qj4N0/beCIf/CWTipop2xm7mR0RCS99NnaqPNjHtrAzCg==",
30038 "dev": true,
30039 "requires": {
30040 "@remix-run/router": "1.5.0",
30041 "react-router": "6.10.0"
30042 }
30043 },
30044 "react-scripts": {
30045 "version": "5.0.1",
30046 "resolved": "https://registry.npmjs.org/react-scripts/-/react-scripts-5.0.1.tgz",
30047 "integrity": "sha512-8VAmEm/ZAwQzJ+GOMLbBsTdDKOpuZh7RPs0UymvBR2vRk4iZWCskjbFnxqjrzoIvlNNRZ3QJFx6/qDSi6zSnaQ==",
30048 "requires": {
30049 "@babel/core": "^7.16.0",
30050 "@pmmmwh/react-refresh-webpack-plugin": "^0.5.3",
30051 "@svgr/webpack": "^5.5.0",
30052 "babel-jest": "^27.4.2",
30053 "babel-loader": "^8.2.3",
30054 "babel-plugin-named-asset-import": "^0.3.8",
30055 "babel-preset-react-app": "^10.0.1",
30056 "bfj": "^7.0.2",
30057 "browserslist": "^4.18.1",
30058 "camelcase": "^6.2.1",
30059 "case-sensitive-paths-webpack-plugin": "^2.4.0",
30060 "css-loader": "^6.5.1",
30061 "css-minimizer-webpack-plugin": "^3.2.0",
30062 "dotenv": "^10.0.0",
30063 "dotenv-expand": "^5.1.0",
30064 "eslint": "^8.3.0",
30065 "eslint-config-react-app": "^7.0.1",
30066 "eslint-webpack-plugin": "^3.1.1",
30067 "file-loader": "^6.2.0",
30068 "fs-extra": "^10.0.0",
30069 "fsevents": "^2.3.2",
30070 "html-webpack-plugin": "^5.5.0",
30071 "identity-obj-proxy": "^3.0.0",
30072 "jest": "^27.4.3",
30073 "jest-resolve": "^27.4.2",
30074 "jest-watch-typeahead": "^1.0.0",
30075 "mini-css-extract-plugin": "^2.4.5",
30076 "postcss": "^8.4.4",
30077 "postcss-flexbugs-fixes": "^5.0.2",
30078 "postcss-loader": "^6.2.1",
30079 "postcss-normalize": "^10.0.1",
30080 "postcss-preset-env": "^7.0.1",
30081 "prompts": "^2.4.2",
30082 "react-app-polyfill": "^3.0.0",
30083 "react-dev-utils": "^12.0.1",
30084 "react-refresh": "^0.11.0",
30085 "resolve": "^1.20.0",
30086 "resolve-url-loader": "^4.0.0",
30087 "sass-loader": "^12.3.0",
30088 "semver": "^7.3.5",
30089 "source-map-loader": "^3.0.0",
30090 "style-loader": "^3.3.1",
30091 "tailwindcss": "^3.0.2",
30092 "terser-webpack-plugin": "^5.2.5",
30093 "webpack": "^5.64.4",
30094 "webpack-dev-server": "^4.6.0",
30095 "webpack-manifest-plugin": "^4.0.2",
30096 "workbox-webpack-plugin": "^6.4.1"
30097 }
30098 },
30099 "read-cache": {
30100 "version": "1.0.0",
30101 "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz",
30102 "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==",
30103 "requires": {
30104 "pify": "^2.3.0"
30105 }
30106 },
30107 "readable-stream": {
30108 "version": "3.6.2",
30109 "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
30110 "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
30111 "requires": {
30112 "inherits": "^2.0.3",
30113 "string_decoder": "^1.1.1",
30114 "util-deprecate": "^1.0.1"
30115 }
30116 },
30117 "readdirp": {
30118 "version": "3.6.0",
30119 "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
30120 "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
30121 "requires": {
30122 "picomatch": "^2.2.1"
30123 }
30124 },
30125 "recursive-readdir": {
30126 "version": "2.2.3",
30127 "resolved": "https://registry.npmjs.org/recursive-readdir/-/recursive-readdir-2.2.3.tgz",
30128 "integrity": "sha512-8HrF5ZsXk5FAH9dgsx3BlUer73nIhuj+9OrQwEbLTPOBzGkL1lsFCR01am+v+0m2Cmbs1nP12hLDl5FA7EszKA==",
30129 "requires": {
30130 "minimatch": "^3.0.5"
30131 }
30132 },
30133 "redent": {
30134 "version": "3.0.0",
30135 "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz",
30136 "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==",
30137 "requires": {
30138 "indent-string": "^4.0.0",
30139 "strip-indent": "^3.0.0"
30140 }
30141 },
30142 "reflect.getprototypeof": {
30143 "version": "1.0.6",
30144 "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.6.tgz",
30145 "integrity": "sha512-fmfw4XgoDke3kdI6h4xcUz1dG8uaiv5q9gcEwLS4Pnth2kxT+GZ7YehS1JTMGBQmtV7Y4GFGbs2re2NqhdozUg==",
30146 "requires": {
30147 "call-bind": "^1.0.7",
30148 "define-properties": "^1.2.1",
30149 "es-abstract": "^1.23.1",
30150 "es-errors": "^1.3.0",
30151 "get-intrinsic": "^1.2.4",
30152 "globalthis": "^1.0.3",
30153 "which-builtin-type": "^1.1.3"
30154 }
30155 },
30156 "regenerate": {
30157 "version": "1.4.2",
30158 "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz",
30159 "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A=="
30160 },
30161 "regenerate-unicode-properties": {
30162 "version": "10.1.1",
30163 "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz",
30164 "integrity": "sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==",
30165 "requires": {
30166 "regenerate": "^1.4.2"
30167 }
30168 },
30169 "regenerator-runtime": {
30170 "version": "0.13.11",
30171 "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz",
30172 "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg=="
30173 },
30174 "regenerator-transform": {
30175 "version": "0.15.2",
30176 "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz",
30177 "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==",
30178 "requires": {
30179 "@babel/runtime": "^7.8.4"
30180 }
30181 },
30182 "regex-parser": {
30183 "version": "2.3.0",
30184 "resolved": "https://registry.npmjs.org/regex-parser/-/regex-parser-2.3.0.tgz",
30185 "integrity": "sha512-TVILVSz2jY5D47F4mA4MppkBrafEaiUWJO/TcZHEIuI13AqoZMkK1WMA4Om1YkYbTx+9Ki1/tSUXbceyr9saRg=="
30186 },
30187 "regexp.prototype.flags": {
30188 "version": "1.5.2",
30189 "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz",
30190 "integrity": "sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==",
30191 "requires": {
30192 "call-bind": "^1.0.6",
30193 "define-properties": "^1.2.1",
30194 "es-errors": "^1.3.0",
30195 "set-function-name": "^2.0.1"
30196 }
30197 },
30198 "regexpu-core": {
30199 "version": "5.3.2",
30200 "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz",
30201 "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==",
30202 "requires": {
30203 "@babel/regjsgen": "^0.8.0",
30204 "regenerate": "^1.4.2",
30205 "regenerate-unicode-properties": "^10.1.0",
30206 "regjsparser": "^0.9.1",
30207 "unicode-match-property-ecmascript": "^2.0.0",
30208 "unicode-match-property-value-ecmascript": "^2.1.0"
30209 }
30210 },
30211 "regjsparser": {
30212 "version": "0.9.1",
30213 "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz",
30214 "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==",
30215 "requires": {
30216 "jsesc": "~0.5.0"
30217 },
30218 "dependencies": {
30219 "jsesc": {
30220 "version": "0.5.0",
30221 "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz",
30222 "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA=="
30223 }
30224 }
30225 },
30226 "relateurl": {
30227 "version": "0.2.7",
30228 "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz",
30229 "integrity": "sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog=="
30230 },
30231 "remark-parse": {
30232 "version": "10.0.2",
30233 "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-10.0.2.tgz",
30234 "integrity": "sha512-3ydxgHa/ZQzG8LvC7jTXccARYDcRld3VfcgIIFs7bI6vbRSxJJmzgLEIIoYKyrfhaY+ujuWaf/PJiMZXoiCXgw==",
30235 "requires": {
30236 "@types/mdast": "^3.0.0",
30237 "mdast-util-from-markdown": "^1.0.0",
30238 "unified": "^10.0.0"
30239 }
30240 },
30241 "remark-rehype": {
30242 "version": "10.1.0",
30243 "resolved": "https://registry.npmjs.org/remark-rehype/-/remark-rehype-10.1.0.tgz",
30244 "integrity": "sha512-EFmR5zppdBp0WQeDVZ/b66CWJipB2q2VLNFMabzDSGR66Z2fQii83G5gTBbgGEnEEA0QRussvrFHxk1HWGJskw==",
30245 "requires": {
30246 "@types/hast": "^2.0.0",
30247 "@types/mdast": "^3.0.0",
30248 "mdast-util-to-hast": "^12.1.0",
30249 "unified": "^10.0.0"
30250 }
30251 },
30252 "renderkid": {
30253 "version": "3.0.0",
30254 "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-3.0.0.tgz",
30255 "integrity": "sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg==",
30256 "requires": {
30257 "css-select": "^4.1.3",
30258 "dom-converter": "^0.2.0",
30259 "htmlparser2": "^6.1.0",
30260 "lodash": "^4.17.21",
30261 "strip-ansi": "^6.0.1"
30262 }
30263 },
30264 "require-directory": {
30265 "version": "2.1.1",
30266 "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
30267 "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q=="
30268 },
30269 "require-from-string": {
30270 "version": "2.0.2",
30271 "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz",
30272 "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw=="
30273 },
30274 "requires-port": {
30275 "version": "1.0.0",
30276 "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz",
30277 "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ=="
30278 },
30279 "resolve": {
30280 "version": "1.22.8",
30281 "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz",
30282 "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==",
30283 "requires": {
30284 "is-core-module": "^2.13.0",
30285 "path-parse": "^1.0.7",
30286 "supports-preserve-symlinks-flag": "^1.0.0"
30287 }
30288 },
30289 "resolve-cwd": {
30290 "version": "3.0.0",
30291 "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz",
30292 "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==",
30293 "requires": {
30294 "resolve-from": "^5.0.0"
30295 }
30296 },
30297 "resolve-from": {
30298 "version": "5.0.0",
30299 "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz",
30300 "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw=="
30301 },
30302 "resolve-url-loader": {
30303 "version": "4.0.0",
30304 "resolved": "https://registry.npmjs.org/resolve-url-loader/-/resolve-url-loader-4.0.0.tgz",
30305 "integrity": "sha512-05VEMczVREcbtT7Bz+C+96eUO5HDNvdthIiMB34t7FcF8ehcu4wC0sSgPUubs3XW2Q3CNLJk/BJrCU9wVRymiA==",
30306 "requires": {
30307 "adjust-sourcemap-loader": "^4.0.0",
30308 "convert-source-map": "^1.7.0",
30309 "loader-utils": "^2.0.0",
30310 "postcss": "^7.0.35",
30311 "source-map": "0.6.1"
30312 },
30313 "dependencies": {
30314 "picocolors": {
30315 "version": "0.2.1",
30316 "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz",
30317 "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA=="
30318 },
30319 "postcss": {
30320 "version": "7.0.39",
30321 "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz",
30322 "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==",
30323 "requires": {
30324 "picocolors": "^0.2.1",
30325 "source-map": "^0.6.1"
30326 }
30327 },
30328 "source-map": {
30329 "version": "0.6.1",
30330 "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
30331 "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
30332 }
30333 }
30334 },
30335 "resolve.exports": {
30336 "version": "1.1.1",
30337 "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-1.1.1.tgz",
30338 "integrity": "sha512-/NtpHNDN7jWhAaQ9BvBUYZ6YTXsRBgfqWFWP7BZBaoMJO/I3G5OFzvTuWNlZC3aPjins1F+TNrLKsGbH4rfsRQ=="
30339 },
30340 "retry": {
30341 "version": "0.13.1",
30342 "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz",
30343 "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg=="
30344 },
30345 "reusify": {
30346 "version": "1.0.4",
30347 "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz",
30348 "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw=="
30349 },
30350 "rimraf": {
30351 "version": "3.0.2",
30352 "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
30353 "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
30354 "requires": {
30355 "glob": "^7.1.3"
30356 }
30357 },
30358 "rollup": {
30359 "version": "2.79.1",
30360 "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.79.1.tgz",
30361 "integrity": "sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==",
30362 "requires": {
30363 "fsevents": "~2.3.2"
30364 }
30365 },
30366 "rollup-plugin-terser": {
30367 "version": "7.0.2",
30368 "resolved": "https://registry.npmjs.org/rollup-plugin-terser/-/rollup-plugin-terser-7.0.2.tgz",
30369 "integrity": "sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ==",
30370 "requires": {
30371 "@babel/code-frame": "^7.10.4",
30372 "jest-worker": "^26.2.1",
30373 "serialize-javascript": "^4.0.0",
30374 "terser": "^5.0.0"
30375 },
30376 "dependencies": {
30377 "has-flag": {
30378 "version": "4.0.0",
30379 "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
30380 "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
30381 },
30382 "jest-worker": {
30383 "version": "26.6.2",
30384 "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz",
30385 "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==",
30386 "requires": {
30387 "@types/node": "*",
30388 "merge-stream": "^2.0.0",
30389 "supports-color": "^7.0.0"
30390 }
30391 },
30392 "serialize-javascript": {
30393 "version": "4.0.0",
30394 "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz",
30395 "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==",
30396 "requires": {
30397 "randombytes": "^2.1.0"
30398 }
30399 },
30400 "supports-color": {
30401 "version": "7.2.0",
30402 "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
30403 "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
30404 "requires": {
30405 "has-flag": "^4.0.0"
30406 }
30407 }
30408 }
30409 },
30410 "run-parallel": {
30411 "version": "1.2.0",
30412 "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
30413 "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
30414 "requires": {
30415 "queue-microtask": "^1.2.2"
30416 }
30417 },
30418 "sade": {
30419 "version": "1.8.1",
30420 "resolved": "https://registry.npmjs.org/sade/-/sade-1.8.1.tgz",
30421 "integrity": "sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==",
30422 "requires": {
30423 "mri": "^1.1.0"
30424 }
30425 },
30426 "safe-array-concat": {
30427 "version": "1.1.2",
30428 "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.2.tgz",
30429 "integrity": "sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==",
30430 "requires": {
30431 "call-bind": "^1.0.7",
30432 "get-intrinsic": "^1.2.4",
30433 "has-symbols": "^1.0.3",
30434 "isarray": "^2.0.5"
30435 }
30436 },
30437 "safe-buffer": {
30438 "version": "5.2.1",
30439 "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
30440 "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="
30441 },
30442 "safe-regex-test": {
30443 "version": "1.0.3",
30444 "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.3.tgz",
30445 "integrity": "sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==",
30446 "requires": {
30447 "call-bind": "^1.0.6",
30448 "es-errors": "^1.3.0",
30449 "is-regex": "^1.1.4"
30450 }
30451 },
30452 "safer-buffer": {
30453 "version": "2.1.2",
30454 "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
30455 "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
30456 },
30457 "sanitize.css": {
30458 "version": "13.0.0",
30459 "resolved": "https://registry.npmjs.org/sanitize.css/-/sanitize.css-13.0.0.tgz",
30460 "integrity": "sha512-ZRwKbh/eQ6w9vmTjkuG0Ioi3HBwPFce0O+v//ve+aOq1oeCy7jMV2qzzAlpsNuqpqCBjjriM1lbtZbF/Q8jVyA=="
30461 },
30462 "sass-loader": {
30463 "version": "12.6.0",
30464 "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-12.6.0.tgz",
30465 "integrity": "sha512-oLTaH0YCtX4cfnJZxKSLAyglED0naiYfNG1iXfU5w1LNZ+ukoA5DtyDIN5zmKVZwYNJP4KRc5Y3hkWga+7tYfA==",
30466 "requires": {
30467 "klona": "^2.0.4",
30468 "neo-async": "^2.6.2"
30469 }
30470 },
30471 "sax": {
30472 "version": "1.2.4",
30473 "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz",
30474 "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw=="
30475 },
30476 "saxes": {
30477 "version": "5.0.1",
30478 "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz",
30479 "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==",
30480 "requires": {
30481 "xmlchars": "^2.2.0"
30482 }
30483 },
30484 "scheduler": {
30485 "version": "0.23.0",
30486 "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz",
30487 "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==",
30488 "requires": {
30489 "loose-envify": "^1.1.0"
30490 }
30491 },
30492 "schema-utils": {
30493 "version": "4.2.0",
30494 "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz",
30495 "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==",
30496 "requires": {
30497 "@types/json-schema": "^7.0.9",
30498 "ajv": "^8.9.0",
30499 "ajv-formats": "^2.1.1",
30500 "ajv-keywords": "^5.1.0"
30501 },
30502 "dependencies": {
30503 "ajv": {
30504 "version": "8.16.0",
30505 "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.16.0.tgz",
30506 "integrity": "sha512-F0twR8U1ZU67JIEtekUcLkXkoO5mMMmgGD8sK/xUFzJ805jxHQl92hImFAqqXMyMYjSPOyUPAwHYhB72g5sTXw==",
30507 "requires": {
30508 "fast-deep-equal": "^3.1.3",
30509 "json-schema-traverse": "^1.0.0",
30510 "require-from-string": "^2.0.2",
30511 "uri-js": "^4.4.1"
30512 }
30513 },
30514 "ajv-keywords": {
30515 "version": "5.1.0",
30516 "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz",
30517 "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==",
30518 "requires": {
30519 "fast-deep-equal": "^3.1.3"
30520 }
30521 },
30522 "json-schema-traverse": {
30523 "version": "1.0.0",
30524 "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
30525 "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug=="
30526 }
30527 }
30528 },
30529 "select-hose": {
30530 "version": "2.0.0",
30531 "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz",
30532 "integrity": "sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg=="
30533 },
30534 "selfsigned": {
30535 "version": "2.4.1",
30536 "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.4.1.tgz",
30537 "integrity": "sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==",
30538 "requires": {
30539 "@types/node-forge": "^1.3.0",
30540 "node-forge": "^1"
30541 }
30542 },
30543 "semver": {
30544 "version": "7.6.2",
30545 "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz",
30546 "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w=="
30547 },
30548 "send": {
30549 "version": "0.18.0",
30550 "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz",
30551 "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==",
30552 "requires": {
30553 "debug": "2.6.9",
30554 "depd": "2.0.0",
30555 "destroy": "1.2.0",
30556 "encodeurl": "~1.0.2",
30557 "escape-html": "~1.0.3",
30558 "etag": "~1.8.1",
30559 "fresh": "0.5.2",
30560 "http-errors": "2.0.0",
30561 "mime": "1.6.0",
30562 "ms": "2.1.3",
30563 "on-finished": "2.4.1",
30564 "range-parser": "~1.2.1",
30565 "statuses": "2.0.1"
30566 },
30567 "dependencies": {
30568 "debug": {
30569 "version": "2.6.9",
30570 "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
30571 "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
30572 "requires": {
30573 "ms": "2.0.0"
30574 },
30575 "dependencies": {
30576 "ms": {
30577 "version": "2.0.0",
30578 "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
30579 "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
30580 }
30581 }
30582 },
30583 "ms": {
30584 "version": "2.1.3",
30585 "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
30586 "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
30587 }
30588 }
30589 },
30590 "serialize-javascript": {
30591 "version": "6.0.2",
30592 "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz",
30593 "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==",
30594 "requires": {
30595 "randombytes": "^2.1.0"
30596 }
30597 },
30598 "serve-index": {
30599 "version": "1.9.1",
30600 "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz",
30601 "integrity": "sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==",
30602 "requires": {
30603 "accepts": "~1.3.4",
30604 "batch": "0.6.1",
30605 "debug": "2.6.9",
30606 "escape-html": "~1.0.3",
30607 "http-errors": "~1.6.2",
30608 "mime-types": "~2.1.17",
30609 "parseurl": "~1.3.2"
30610 },
30611 "dependencies": {
30612 "debug": {
30613 "version": "2.6.9",
30614 "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
30615 "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
30616 "requires": {
30617 "ms": "2.0.0"
30618 }
30619 },
30620 "depd": {
30621 "version": "1.1.2",
30622 "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
30623 "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ=="
30624 },
30625 "http-errors": {
30626 "version": "1.6.3",
30627 "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz",
30628 "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==",
30629 "requires": {
30630 "depd": "~1.1.2",
30631 "inherits": "2.0.3",
30632 "setprototypeof": "1.1.0",
30633 "statuses": ">= 1.4.0 < 2"
30634 }
30635 },
30636 "inherits": {
30637 "version": "2.0.3",
30638 "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
30639 "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw=="
30640 },
30641 "ms": {
30642 "version": "2.0.0",
30643 "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
30644 "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
30645 },
30646 "setprototypeof": {
30647 "version": "1.1.0",
30648 "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz",
30649 "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ=="
30650 },
30651 "statuses": {
30652 "version": "1.5.0",
30653 "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
30654 "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA=="
30655 }
30656 }
30657 },
30658 "serve-static": {
30659 "version": "1.15.0",
30660 "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz",
30661 "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==",
30662 "requires": {
30663 "encodeurl": "~1.0.2",
30664 "escape-html": "~1.0.3",
30665 "parseurl": "~1.3.3",
30666 "send": "0.18.0"
30667 }
30668 },
30669 "set-function-length": {
30670 "version": "1.2.2",
30671 "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz",
30672 "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==",
30673 "requires": {
30674 "define-data-property": "^1.1.4",
30675 "es-errors": "^1.3.0",
30676 "function-bind": "^1.1.2",
30677 "get-intrinsic": "^1.2.4",
30678 "gopd": "^1.0.1",
30679 "has-property-descriptors": "^1.0.2"
30680 }
30681 },
30682 "set-function-name": {
30683 "version": "2.0.2",
30684 "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz",
30685 "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==",
30686 "requires": {
30687 "define-data-property": "^1.1.4",
30688 "es-errors": "^1.3.0",
30689 "functions-have-names": "^1.2.3",
30690 "has-property-descriptors": "^1.0.2"
30691 }
30692 },
30693 "setprototypeof": {
30694 "version": "1.2.0",
30695 "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz",
30696 "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw=="
30697 },
30698 "shebang-command": {
30699 "version": "2.0.0",
30700 "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
30701 "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
30702 "requires": {
30703 "shebang-regex": "^3.0.0"
30704 }
30705 },
30706 "shebang-regex": {
30707 "version": "3.0.0",
30708 "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
30709 "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A=="
30710 },
30711 "shell-quote": {
30712 "version": "1.8.1",
30713 "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.1.tgz",
30714 "integrity": "sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA=="
30715 },
30716 "side-channel": {
30717 "version": "1.0.6",
30718 "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz",
30719 "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==",
30720 "requires": {
30721 "call-bind": "^1.0.7",
30722 "es-errors": "^1.3.0",
30723 "get-intrinsic": "^1.2.4",
30724 "object-inspect": "^1.13.1"
30725 }
30726 },
30727 "signal-exit": {
30728 "version": "3.0.7",
30729 "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz",
30730 "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ=="
30731 },
30732 "sisteransi": {
30733 "version": "1.0.5",
30734 "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz",
30735 "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg=="
30736 },
30737 "slash": {
30738 "version": "3.0.0",
30739 "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
30740 "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q=="
30741 },
30742 "sockjs": {
30743 "version": "0.3.24",
30744 "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz",
30745 "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==",
30746 "requires": {
30747 "faye-websocket": "^0.11.3",
30748 "uuid": "^8.3.2",
30749 "websocket-driver": "^0.7.4"
30750 }
30751 },
30752 "source-list-map": {
30753 "version": "2.0.1",
30754 "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz",
30755 "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw=="
30756 },
30757 "source-map": {
30758 "version": "0.7.4",
30759 "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz",
30760 "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA=="
30761 },
30762 "source-map-js": {
30763 "version": "1.2.0",
30764 "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz",
30765 "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg=="
30766 },
30767 "source-map-loader": {
30768 "version": "3.0.2",
30769 "resolved": "https://registry.npmjs.org/source-map-loader/-/source-map-loader-3.0.2.tgz",
30770 "integrity": "sha512-BokxPoLjyl3iOrgkWaakaxqnelAJSS+0V+De0kKIq6lyWrXuiPgYTGp6z3iHmqljKAaLXwZa+ctD8GccRJeVvg==",
30771 "requires": {
30772 "abab": "^2.0.5",
30773 "iconv-lite": "^0.6.3",
30774 "source-map-js": "^1.0.1"
30775 }
30776 },
30777 "source-map-support": {
30778 "version": "0.5.21",
30779 "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz",
30780 "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==",
30781 "requires": {
30782 "buffer-from": "^1.0.0",
30783 "source-map": "^0.6.0"
30784 },
30785 "dependencies": {
30786 "source-map": {
30787 "version": "0.6.1",
30788 "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
30789 "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
30790 }
30791 }
30792 },
30793 "sourcemap-codec": {
30794 "version": "1.4.8",
30795 "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz",
30796 "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA=="
30797 },
30798 "space-separated-tokens": {
30799 "version": "2.0.2",
30800 "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz",
30801 "integrity": "sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q=="
30802 },
30803 "spdy": {
30804 "version": "4.0.2",
30805 "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz",
30806 "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==",
30807 "requires": {
30808 "debug": "^4.1.0",
30809 "handle-thing": "^2.0.0",
30810 "http-deceiver": "^1.2.7",
30811 "select-hose": "^2.0.0",
30812 "spdy-transport": "^3.0.0"
30813 }
30814 },
30815 "spdy-transport": {
30816 "version": "3.0.0",
30817 "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz",
30818 "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==",
30819 "requires": {
30820 "debug": "^4.1.0",
30821 "detect-node": "^2.0.4",
30822 "hpack.js": "^2.1.6",
30823 "obuf": "^1.1.2",
30824 "readable-stream": "^3.0.6",
30825 "wbuf": "^1.7.3"
30826 }
30827 },
30828 "sprintf-js": {
30829 "version": "1.0.3",
30830 "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
30831 "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g=="
30832 },
30833 "stable": {
30834 "version": "0.1.8",
30835 "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz",
30836 "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w=="
30837 },
30838 "stack-utils": {
30839 "version": "2.0.6",
30840 "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz",
30841 "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==",
30842 "requires": {
30843 "escape-string-regexp": "^2.0.0"
30844 },
30845 "dependencies": {
30846 "escape-string-regexp": {
30847 "version": "2.0.0",
30848 "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz",
30849 "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w=="
30850 }
30851 }
30852 },
30853 "stackframe": {
30854 "version": "1.3.4",
30855 "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.3.4.tgz",
30856 "integrity": "sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw=="
30857 },
30858 "static-eval": {
30859 "version": "2.0.2",
30860 "resolved": "https://registry.npmjs.org/static-eval/-/static-eval-2.0.2.tgz",
30861 "integrity": "sha512-N/D219Hcr2bPjLxPiV+TQE++Tsmrady7TqAJugLy7Xk1EumfDWS/f5dtBbkRCGE7wKKXuYockQoj8Rm2/pVKyg==",
30862 "requires": {
30863 "escodegen": "^1.8.1"
30864 },
30865 "dependencies": {
30866 "escodegen": {
30867 "version": "1.14.3",
30868 "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz",
30869 "integrity": "sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==",
30870 "requires": {
30871 "esprima": "^4.0.1",
30872 "estraverse": "^4.2.0",
30873 "esutils": "^2.0.2",
30874 "optionator": "^0.8.1",
30875 "source-map": "~0.6.1"
30876 }
30877 },
30878 "estraverse": {
30879 "version": "4.3.0",
30880 "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz",
30881 "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw=="
30882 },
30883 "levn": {
30884 "version": "0.3.0",
30885 "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz",
30886 "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==",
30887 "requires": {
30888 "prelude-ls": "~1.1.2",
30889 "type-check": "~0.3.2"
30890 }
30891 },
30892 "optionator": {
30893 "version": "0.8.3",
30894 "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz",
30895 "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==",
30896 "requires": {
30897 "deep-is": "~0.1.3",
30898 "fast-levenshtein": "~2.0.6",
30899 "levn": "~0.3.0",
30900 "prelude-ls": "~1.1.2",
30901 "type-check": "~0.3.2",
30902 "word-wrap": "~1.2.3"
30903 }
30904 },
30905 "prelude-ls": {
30906 "version": "1.1.2",
30907 "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz",
30908 "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w=="
30909 },
30910 "source-map": {
30911 "version": "0.6.1",
30912 "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
30913 "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
30914 "optional": true
30915 },
30916 "type-check": {
30917 "version": "0.3.2",
30918 "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz",
30919 "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==",
30920 "requires": {
30921 "prelude-ls": "~1.1.2"
30922 }
30923 }
30924 }
30925 },
30926 "statuses": {
30927 "version": "2.0.1",
30928 "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz",
30929 "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ=="
30930 },
30931 "stop-iteration-iterator": {
30932 "version": "1.0.0",
30933 "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.0.0.tgz",
30934 "integrity": "sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==",
30935 "requires": {
30936 "internal-slot": "^1.0.4"
30937 }
30938 },
30939 "string_decoder": {
30940 "version": "1.3.0",
30941 "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
30942 "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
30943 "requires": {
30944 "safe-buffer": "~5.2.0"
30945 }
30946 },
30947 "string-length": {
30948 "version": "4.0.2",
30949 "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz",
30950 "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==",
30951 "requires": {
30952 "char-regex": "^1.0.2",
30953 "strip-ansi": "^6.0.0"
30954 }
30955 },
30956 "string-natural-compare": {
30957 "version": "3.0.1",
30958 "resolved": "https://registry.npmjs.org/string-natural-compare/-/string-natural-compare-3.0.1.tgz",
30959 "integrity": "sha512-n3sPwynL1nwKi3WJ6AIsClwBMa0zTi54fn2oLU6ndfTSIO05xaznjSf15PcBZU6FNWbmN5Q6cxT4V5hGvB4taw=="
30960 },
30961 "string-width": {
30962 "version": "4.2.3",
30963 "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
30964 "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
30965 "requires": {
30966 "emoji-regex": "^8.0.0",
30967 "is-fullwidth-code-point": "^3.0.0",
30968 "strip-ansi": "^6.0.1"
30969 },
30970 "dependencies": {
30971 "emoji-regex": {
30972 "version": "8.0.0",
30973 "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
30974 "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="
30975 }
30976 }
30977 },
30978 "string-width-cjs": {
30979 "version": "npm:string-width@4.2.3",
30980 "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
30981 "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
30982 "requires": {
30983 "emoji-regex": "^8.0.0",
30984 "is-fullwidth-code-point": "^3.0.0",
30985 "strip-ansi": "^6.0.1"
30986 },
30987 "dependencies": {
30988 "emoji-regex": {
30989 "version": "8.0.0",
30990 "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
30991 "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="
30992 }
30993 }
30994 },
30995 "string.prototype.includes": {
30996 "version": "2.0.0",
30997 "resolved": "https://registry.npmjs.org/string.prototype.includes/-/string.prototype.includes-2.0.0.tgz",
30998 "integrity": "sha512-E34CkBgyeqNDcrbU76cDjL5JLcVrtSdYq0MEh/B10r17pRP4ciHLwTgnuLV8Ay6cgEMLkcBkFCKyFZ43YldYzg==",
30999 "requires": {
31000 "define-properties": "^1.1.3",
31001 "es-abstract": "^1.17.5"
31002 }
31003 },
31004 "string.prototype.matchall": {
31005 "version": "4.0.11",
31006 "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.11.tgz",
31007 "integrity": "sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg==",
31008 "requires": {
31009 "call-bind": "^1.0.7",
31010 "define-properties": "^1.2.1",
31011 "es-abstract": "^1.23.2",
31012 "es-errors": "^1.3.0",
31013 "es-object-atoms": "^1.0.0",
31014 "get-intrinsic": "^1.2.4",
31015 "gopd": "^1.0.1",
31016 "has-symbols": "^1.0.3",
31017 "internal-slot": "^1.0.7",
31018 "regexp.prototype.flags": "^1.5.2",
31019 "set-function-name": "^2.0.2",
31020 "side-channel": "^1.0.6"
31021 }
31022 },
31023 "string.prototype.trim": {
31024 "version": "1.2.9",
31025 "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz",
31026 "integrity": "sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==",
31027 "requires": {
31028 "call-bind": "^1.0.7",
31029 "define-properties": "^1.2.1",
31030 "es-abstract": "^1.23.0",
31031 "es-object-atoms": "^1.0.0"
31032 }
31033 },
31034 "string.prototype.trimend": {
31035 "version": "1.0.8",
31036 "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz",
31037 "integrity": "sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==",
31038 "requires": {
31039 "call-bind": "^1.0.7",
31040 "define-properties": "^1.2.1",
31041 "es-object-atoms": "^1.0.0"
31042 }
31043 },
31044 "string.prototype.trimstart": {
31045 "version": "1.0.8",
31046 "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz",
31047 "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==",
31048 "requires": {
31049 "call-bind": "^1.0.7",
31050 "define-properties": "^1.2.1",
31051 "es-object-atoms": "^1.0.0"
31052 }
31053 },
31054 "stringify-object": {
31055 "version": "3.3.0",
31056 "resolved": "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz",
31057 "integrity": "sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==",
31058 "requires": {
31059 "get-own-enumerable-property-symbols": "^3.0.0",
31060 "is-obj": "^1.0.1",
31061 "is-regexp": "^1.0.0"
31062 }
31063 },
31064 "strip-ansi": {
31065 "version": "6.0.1",
31066 "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
31067 "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
31068 "requires": {
31069 "ansi-regex": "^5.0.1"
31070 }
31071 },
31072 "strip-ansi-cjs": {
31073 "version": "npm:strip-ansi@6.0.1",
31074 "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
31075 "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
31076 "requires": {
31077 "ansi-regex": "^5.0.1"
31078 }
31079 },
31080 "strip-bom": {
31081 "version": "4.0.0",
31082 "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz",
31083 "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w=="
31084 },
31085 "strip-comments": {
31086 "version": "2.0.1",
31087 "resolved": "https://registry.npmjs.org/strip-comments/-/strip-comments-2.0.1.tgz",
31088 "integrity": "sha512-ZprKx+bBLXv067WTCALv8SSz5l2+XhpYCsVtSqlMnkAXMWDq+/ekVbl1ghqP9rUHTzv6sm/DwCOiYutU/yp1fw=="
31089 },
31090 "strip-final-newline": {
31091 "version": "2.0.0",
31092 "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz",
31093 "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA=="
31094 },
31095 "strip-indent": {
31096 "version": "3.0.0",
31097 "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz",
31098 "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==",
31099 "requires": {
31100 "min-indent": "^1.0.0"
31101 }
31102 },
31103 "strip-json-comments": {
31104 "version": "3.1.1",
31105 "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
31106 "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig=="
31107 },
31108 "style-loader": {
31109 "version": "3.3.4",
31110 "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-3.3.4.tgz",
31111 "integrity": "sha512-0WqXzrsMTyb8yjZJHDqwmnwRJvhALK9LfRtRc6B4UTWe8AijYLZYZ9thuJTZc2VfQWINADW/j+LiJnfy2RoC1w==",
31112 "requires": {}
31113 },
31114 "style-to-object": {
31115 "version": "0.4.1",
31116 "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-0.4.1.tgz",
31117 "integrity": "sha512-HFpbb5gr2ypci7Qw+IOhnP2zOU7e77b+rzM+wTzXzfi1PrtBCX0E7Pk4wL4iTLnhzZ+JgEGAhX81ebTg/aYjQw==",
31118 "requires": {
31119 "inline-style-parser": "0.1.1"
31120 }
31121 },
31122 "stylehacks": {
31123 "version": "5.1.1",
31124 "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-5.1.1.tgz",
31125 "integrity": "sha512-sBpcd5Hx7G6seo7b1LkpttvTz7ikD0LlH5RmdcBNb6fFR0Fl7LQwHDFr300q4cwUqi+IYrFGmsIHieMBfnN/Bw==",
31126 "requires": {
31127 "browserslist": "^4.21.4",
31128 "postcss-selector-parser": "^6.0.4"
31129 }
31130 },
31131 "sucrase": {
31132 "version": "3.35.0",
31133 "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz",
31134 "integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==",
31135 "requires": {
31136 "@jridgewell/gen-mapping": "^0.3.2",
31137 "commander": "^4.0.0",
31138 "glob": "^10.3.10",
31139 "lines-and-columns": "^1.1.6",
31140 "mz": "^2.7.0",
31141 "pirates": "^4.0.1",
31142 "ts-interface-checker": "^0.1.9"
31143 },
31144 "dependencies": {
31145 "@jridgewell/gen-mapping": {
31146 "version": "0.3.5",
31147 "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz",
31148 "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==",
31149 "requires": {
31150 "@jridgewell/set-array": "^1.2.1",
31151 "@jridgewell/sourcemap-codec": "^1.4.10",
31152 "@jridgewell/trace-mapping": "^0.3.24"
31153 }
31154 },
31155 "brace-expansion": {
31156 "version": "2.0.1",
31157 "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
31158 "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
31159 "requires": {
31160 "balanced-match": "^1.0.0"
31161 }
31162 },
31163 "commander": {
31164 "version": "4.1.1",
31165 "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz",
31166 "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA=="
31167 },
31168 "glob": {
31169 "version": "10.4.5",
31170 "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz",
31171 "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==",
31172 "requires": {
31173 "foreground-child": "^3.1.0",
31174 "jackspeak": "^3.1.2",
31175 "minimatch": "^9.0.4",
31176 "minipass": "^7.1.2",
31177 "package-json-from-dist": "^1.0.0",
31178 "path-scurry": "^1.11.1"
31179 }
31180 },
31181 "minimatch": {
31182 "version": "9.0.5",
31183 "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
31184 "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
31185 "requires": {
31186 "brace-expansion": "^2.0.1"
31187 }
31188 }
31189 }
31190 },
31191 "supports-color": {
31192 "version": "5.5.0",
31193 "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
31194 "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
31195 "requires": {
31196 "has-flag": "^3.0.0"
31197 }
31198 },
31199 "supports-hyperlinks": {
31200 "version": "2.3.0",
31201 "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz",
31202 "integrity": "sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==",
31203 "requires": {
31204 "has-flag": "^4.0.0",
31205 "supports-color": "^7.0.0"
31206 },
31207 "dependencies": {
31208 "has-flag": {
31209 "version": "4.0.0",
31210 "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
31211 "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
31212 },
31213 "supports-color": {
31214 "version": "7.2.0",
31215 "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
31216 "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
31217 "requires": {
31218 "has-flag": "^4.0.0"
31219 }
31220 }
31221 }
31222 },
31223 "supports-preserve-symlinks-flag": {
31224 "version": "1.0.0",
31225 "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
31226 "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w=="
31227 },
31228 "svg-parser": {
31229 "version": "2.0.4",
31230 "resolved": "https://registry.npmjs.org/svg-parser/-/svg-parser-2.0.4.tgz",
31231 "integrity": "sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ=="
31232 },
31233 "svgo": {
31234 "version": "1.3.2",
31235 "resolved": "https://registry.npmjs.org/svgo/-/svgo-1.3.2.tgz",
31236 "integrity": "sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw==",
31237 "requires": {
31238 "chalk": "^2.4.1",
31239 "coa": "^2.0.2",
31240 "css-select": "^2.0.0",
31241 "css-select-base-adapter": "^0.1.1",
31242 "css-tree": "1.0.0-alpha.37",
31243 "csso": "^4.0.2",
31244 "js-yaml": "^3.13.1",
31245 "mkdirp": "~0.5.1",
31246 "object.values": "^1.1.0",
31247 "sax": "~1.2.4",
31248 "stable": "^0.1.8",
31249 "unquote": "~1.1.1",
31250 "util.promisify": "~1.0.0"
31251 },
31252 "dependencies": {
31253 "css-select": {
31254 "version": "2.1.0",
31255 "resolved": "https://registry.npmjs.org/css-select/-/css-select-2.1.0.tgz",
31256 "integrity": "sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ==",
31257 "requires": {
31258 "boolbase": "^1.0.0",
31259 "css-what": "^3.2.1",
31260 "domutils": "^1.7.0",
31261 "nth-check": "^1.0.2"
31262 }
31263 },
31264 "css-what": {
31265 "version": "3.4.2",
31266 "resolved": "https://registry.npmjs.org/css-what/-/css-what-3.4.2.tgz",
31267 "integrity": "sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ=="
31268 },
31269 "dom-serializer": {
31270 "version": "0.2.2",
31271 "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz",
31272 "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==",
31273 "requires": {
31274 "domelementtype": "^2.0.1",
31275 "entities": "^2.0.0"
31276 }
31277 },
31278 "domutils": {
31279 "version": "1.7.0",
31280 "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz",
31281 "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==",
31282 "requires": {
31283 "dom-serializer": "0",
31284 "domelementtype": "1"
31285 },
31286 "dependencies": {
31287 "domelementtype": {
31288 "version": "1.3.1",
31289 "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz",
31290 "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w=="
31291 }
31292 }
31293 },
31294 "nth-check": {
31295 "version": "1.0.2",
31296 "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz",
31297 "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==",
31298 "requires": {
31299 "boolbase": "~1.0.0"
31300 }
31301 }
31302 }
31303 },
31304 "symbol-tree": {
31305 "version": "3.2.4",
31306 "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz",
31307 "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw=="
31308 },
31309 "tailwindcss": {
31310 "version": "3.4.4",
31311 "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.4.tgz",
31312 "integrity": "sha512-ZoyXOdJjISB7/BcLTR6SEsLgKtDStYyYZVLsUtWChO4Ps20CBad7lfJKVDiejocV4ME1hLmyY0WJE3hSDcmQ2A==",
31313 "requires": {
31314 "@alloc/quick-lru": "^5.2.0",
31315 "arg": "^5.0.2",
31316 "chokidar": "^3.5.3",
31317 "didyoumean": "^1.2.2",
31318 "dlv": "^1.1.3",
31319 "fast-glob": "^3.3.0",
31320 "glob-parent": "^6.0.2",
31321 "is-glob": "^4.0.3",
31322 "jiti": "^1.21.0",
31323 "lilconfig": "^2.1.0",
31324 "micromatch": "^4.0.5",
31325 "normalize-path": "^3.0.0",
31326 "object-hash": "^3.0.0",
31327 "picocolors": "^1.0.0",
31328 "postcss": "^8.4.23",
31329 "postcss-import": "^15.1.0",
31330 "postcss-js": "^4.0.1",
31331 "postcss-load-config": "^4.0.1",
31332 "postcss-nested": "^6.0.1",
31333 "postcss-selector-parser": "^6.0.11",
31334 "resolve": "^1.22.2",
31335 "sucrase": "^3.32.0"
31336 }
31337 },
31338 "tapable": {
31339 "version": "2.2.1",
31340 "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz",
31341 "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ=="
31342 },
31343 "temp-dir": {
31344 "version": "2.0.0",
31345 "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-2.0.0.tgz",
31346 "integrity": "sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg=="
31347 },
31348 "tempy": {
31349 "version": "0.6.0",
31350 "resolved": "https://registry.npmjs.org/tempy/-/tempy-0.6.0.tgz",
31351 "integrity": "sha512-G13vtMYPT/J8A4X2SjdtBTphZlrp1gKv6hZiOjw14RCWg6GbHuQBGtjlx75xLbYV/wEc0D7G5K4rxKP/cXk8Bw==",
31352 "requires": {
31353 "is-stream": "^2.0.0",
31354 "temp-dir": "^2.0.0",
31355 "type-fest": "^0.16.0",
31356 "unique-string": "^2.0.0"
31357 },
31358 "dependencies": {
31359 "type-fest": {
31360 "version": "0.16.0",
31361 "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.16.0.tgz",
31362 "integrity": "sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg=="
31363 }
31364 }
31365 },
31366 "terminal-link": {
31367 "version": "2.1.1",
31368 "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz",
31369 "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==",
31370 "requires": {
31371 "ansi-escapes": "^4.2.1",
31372 "supports-hyperlinks": "^2.0.0"
31373 }
31374 },
31375 "terser": {
31376 "version": "5.31.2",
31377 "resolved": "https://registry.npmjs.org/terser/-/terser-5.31.2.tgz",
31378 "integrity": "sha512-LGyRZVFm/QElZHy/CPr/O4eNZOZIzsrQ92y4v9UJe/pFJjypje2yI3C2FmPtvUEnhadlSbmG2nXtdcjHOjCfxw==",
31379 "requires": {
31380 "@jridgewell/source-map": "^0.3.3",
31381 "acorn": "^8.8.2",
31382 "commander": "^2.20.0",
31383 "source-map-support": "~0.5.20"
31384 },
31385 "dependencies": {
31386 "commander": {
31387 "version": "2.20.3",
31388 "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
31389 "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ=="
31390 }
31391 }
31392 },
31393 "terser-webpack-plugin": {
31394 "version": "5.3.10",
31395 "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.10.tgz",
31396 "integrity": "sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==",
31397 "requires": {
31398 "@jridgewell/trace-mapping": "^0.3.20",
31399 "jest-worker": "^27.4.5",
31400 "schema-utils": "^3.1.1",
31401 "serialize-javascript": "^6.0.1",
31402 "terser": "^5.26.0"
31403 },
31404 "dependencies": {
31405 "schema-utils": {
31406 "version": "3.3.0",
31407 "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz",
31408 "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==",
31409 "requires": {
31410 "@types/json-schema": "^7.0.8",
31411 "ajv": "^6.12.5",
31412 "ajv-keywords": "^3.5.2"
31413 }
31414 }
31415 }
31416 },
31417 "test-exclude": {
31418 "version": "6.0.0",
31419 "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz",
31420 "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==",
31421 "requires": {
31422 "@istanbuljs/schema": "^0.1.2",
31423 "glob": "^7.1.4",
31424 "minimatch": "^3.0.4"
31425 }
31426 },
31427 "text-table": {
31428 "version": "0.2.0",
31429 "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
31430 "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw=="
31431 },
31432 "thenify": {
31433 "version": "3.3.1",
31434 "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz",
31435 "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==",
31436 "requires": {
31437 "any-promise": "^1.0.0"
31438 }
31439 },
31440 "thenify-all": {
31441 "version": "1.6.0",
31442 "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz",
31443 "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==",
31444 "requires": {
31445 "thenify": ">= 3.1.0 < 4"
31446 }
31447 },
31448 "throat": {
31449 "version": "6.0.2",
31450 "resolved": "https://registry.npmjs.org/throat/-/throat-6.0.2.tgz",
31451 "integrity": "sha512-WKexMoJj3vEuK0yFEapj8y64V0A6xcuPuK9Gt1d0R+dzCSJc0lHqQytAbSB4cDAK0dWh4T0E2ETkoLE2WZ41OQ=="
31452 },
31453 "thunky": {
31454 "version": "1.1.0",
31455 "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz",
31456 "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA=="
31457 },
31458 "tmpl": {
31459 "version": "1.0.5",
31460 "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz",
31461 "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw=="
31462 },
31463 "to-fast-properties": {
31464 "version": "2.0.0",
31465 "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
31466 "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog=="
31467 },
31468 "to-regex-range": {
31469 "version": "5.0.1",
31470 "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
31471 "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
31472 "requires": {
31473 "is-number": "^7.0.0"
31474 }
31475 },
31476 "toidentifier": {
31477 "version": "1.0.1",
31478 "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz",
31479 "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA=="
31480 },
31481 "tough-cookie": {
31482 "version": "4.1.4",
31483 "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.4.tgz",
31484 "integrity": "sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==",
31485 "requires": {
31486 "psl": "^1.1.33",
31487 "punycode": "^2.1.1",
31488 "universalify": "^0.2.0",
31489 "url-parse": "^1.5.3"
31490 },
31491 "dependencies": {
31492 "universalify": {
31493 "version": "0.2.0",
31494 "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz",
31495 "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg=="
31496 }
31497 }
31498 },
31499 "tr46": {
31500 "version": "2.1.0",
31501 "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz",
31502 "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==",
31503 "requires": {
31504 "punycode": "^2.1.1"
31505 }
31506 },
31507 "trim-lines": {
31508 "version": "3.0.1",
31509 "resolved": "https://registry.npmjs.org/trim-lines/-/trim-lines-3.0.1.tgz",
31510 "integrity": "sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg=="
31511 },
31512 "trough": {
31513 "version": "2.1.0",
31514 "resolved": "https://registry.npmjs.org/trough/-/trough-2.1.0.tgz",
31515 "integrity": "sha512-AqTiAOLcj85xS7vQ8QkAV41hPDIJ71XJB4RCUrzo/1GM2CQwhkJGaf9Hgr7BOugMRpgGUrqRg/DrBDl4H40+8g=="
31516 },
31517 "tryer": {
31518 "version": "1.0.1",
31519 "resolved": "https://registry.npmjs.org/tryer/-/tryer-1.0.1.tgz",
31520 "integrity": "sha512-c3zayb8/kWWpycWYg87P71E1S1ZL6b6IJxfb5fvsUgsf0S2MVGaDhDXXjDMpdCpfWXqptc+4mXwmiy1ypXqRAA=="
31521 },
31522 "ts-interface-checker": {
31523 "version": "0.1.13",
31524 "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz",
31525 "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA=="
31526 },
31527 "tsconfig-paths": {
31528 "version": "3.15.0",
31529 "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz",
31530 "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==",
31531 "requires": {
31532 "@types/json5": "^0.0.29",
31533 "json5": "^1.0.2",
31534 "minimist": "^1.2.6",
31535 "strip-bom": "^3.0.0"
31536 },
31537 "dependencies": {
31538 "json5": {
31539 "version": "1.0.2",
31540 "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz",
31541 "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==",
31542 "requires": {
31543 "minimist": "^1.2.0"
31544 }
31545 },
31546 "strip-bom": {
31547 "version": "3.0.0",
31548 "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
31549 "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA=="
31550 }
31551 }
31552 },
31553 "tslib": {
31554 "version": "2.6.3",
31555 "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.3.tgz",
31556 "integrity": "sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ=="
31557 },
31558 "tsutils": {
31559 "version": "3.21.0",
31560 "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz",
31561 "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==",
31562 "requires": {
31563 "tslib": "^1.8.1"
31564 },
31565 "dependencies": {
31566 "tslib": {
31567 "version": "1.14.1",
31568 "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
31569 "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
31570 }
31571 }
31572 },
31573 "type-check": {
31574 "version": "0.4.0",
31575 "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz",
31576 "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==",
31577 "requires": {
31578 "prelude-ls": "^1.2.1"
31579 }
31580 },
31581 "type-detect": {
31582 "version": "4.0.8",
31583 "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz",
31584 "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g=="
31585 },
31586 "type-fest": {
31587 "version": "0.21.3",
31588 "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz",
31589 "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w=="
31590 },
31591 "type-is": {
31592 "version": "1.6.18",
31593 "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
31594 "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
31595 "requires": {
31596 "media-typer": "0.3.0",
31597 "mime-types": "~2.1.24"
31598 }
31599 },
31600 "typed-array-buffer": {
31601 "version": "1.0.2",
31602 "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz",
31603 "integrity": "sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==",
31604 "requires": {
31605 "call-bind": "^1.0.7",
31606 "es-errors": "^1.3.0",
31607 "is-typed-array": "^1.1.13"
31608 }
31609 },
31610 "typed-array-byte-length": {
31611 "version": "1.0.1",
31612 "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz",
31613 "integrity": "sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==",
31614 "requires": {
31615 "call-bind": "^1.0.7",
31616 "for-each": "^0.3.3",
31617 "gopd": "^1.0.1",
31618 "has-proto": "^1.0.3",
31619 "is-typed-array": "^1.1.13"
31620 }
31621 },
31622 "typed-array-byte-offset": {
31623 "version": "1.0.2",
31624 "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz",
31625 "integrity": "sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==",
31626 "requires": {
31627 "available-typed-arrays": "^1.0.7",
31628 "call-bind": "^1.0.7",
31629 "for-each": "^0.3.3",
31630 "gopd": "^1.0.1",
31631 "has-proto": "^1.0.3",
31632 "is-typed-array": "^1.1.13"
31633 }
31634 },
31635 "typed-array-length": {
31636 "version": "1.0.6",
31637 "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.6.tgz",
31638 "integrity": "sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==",
31639 "requires": {
31640 "call-bind": "^1.0.7",
31641 "for-each": "^0.3.3",
31642 "gopd": "^1.0.1",
31643 "has-proto": "^1.0.3",
31644 "is-typed-array": "^1.1.13",
31645 "possible-typed-array-names": "^1.0.0"
31646 }
31647 },
31648 "typedarray-to-buffer": {
31649 "version": "3.1.5",
31650 "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz",
31651 "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==",
31652 "requires": {
31653 "is-typedarray": "^1.0.0"
31654 }
31655 },
31656 "typescript": {
31657 "version": "5.5.3",
31658 "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.5.3.tgz",
31659 "integrity": "sha512-/hreyEujaB0w76zKo6717l3L0o/qEUtRgdvUBvlkhoWeOVMjMuHNHk0BRBzikzuGDqNmPQbg5ifMEqsHLiIUcQ==",
31660 "peer": true
31661 },
31662 "unbox-primitive": {
31663 "version": "1.0.2",
31664 "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz",
31665 "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==",
31666 "requires": {
31667 "call-bind": "^1.0.2",
31668 "has-bigints": "^1.0.2",
31669 "has-symbols": "^1.0.3",
31670 "which-boxed-primitive": "^1.0.2"
31671 }
31672 },
31673 "underscore": {
31674 "version": "1.12.1",
31675 "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.12.1.tgz",
31676 "integrity": "sha512-hEQt0+ZLDVUMhebKxL4x1BTtDY7bavVofhZ9KZ4aI26X9SRaE+Y3m83XUL1UP2jn8ynjndwCCpEHdUG+9pP1Tw=="
31677 },
31678 "unicode-canonical-property-names-ecmascript": {
31679 "version": "2.0.0",
31680 "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz",
31681 "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ=="
31682 },
31683 "unicode-match-property-ecmascript": {
31684 "version": "2.0.0",
31685 "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz",
31686 "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==",
31687 "requires": {
31688 "unicode-canonical-property-names-ecmascript": "^2.0.0",
31689 "unicode-property-aliases-ecmascript": "^2.0.0"
31690 }
31691 },
31692 "unicode-match-property-value-ecmascript": {
31693 "version": "2.1.0",
31694 "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz",
31695 "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA=="
31696 },
31697 "unicode-property-aliases-ecmascript": {
31698 "version": "2.1.0",
31699 "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz",
31700 "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w=="
31701 },
31702 "unified": {
31703 "version": "10.1.2",
31704 "resolved": "https://registry.npmjs.org/unified/-/unified-10.1.2.tgz",
31705 "integrity": "sha512-pUSWAi/RAnVy1Pif2kAoeWNBa3JVrx0MId2LASj8G+7AiHWoKZNTomq6LG326T68U7/e263X6fTdcXIy7XnF7Q==",
31706 "requires": {
31707 "@types/unist": "^2.0.0",
31708 "bail": "^2.0.0",
31709 "extend": "^3.0.0",
31710 "is-buffer": "^2.0.0",
31711 "is-plain-obj": "^4.0.0",
31712 "trough": "^2.0.0",
31713 "vfile": "^5.0.0"
31714 },
31715 "dependencies": {
31716 "is-plain-obj": {
31717 "version": "4.1.0",
31718 "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz",
31719 "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg=="
31720 }
31721 }
31722 },
31723 "unique-string": {
31724 "version": "2.0.0",
31725 "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz",
31726 "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==",
31727 "requires": {
31728 "crypto-random-string": "^2.0.0"
31729 }
31730 },
31731 "unist-util-generated": {
31732 "version": "2.0.1",
31733 "resolved": "https://registry.npmjs.org/unist-util-generated/-/unist-util-generated-2.0.1.tgz",
31734 "integrity": "sha512-qF72kLmPxAw0oN2fwpWIqbXAVyEqUzDHMsbtPvOudIlUzXYFIeQIuxXQCRCFh22B7cixvU0MG7m3MW8FTq/S+A=="
31735 },
31736 "unist-util-is": {
31737 "version": "5.2.1",
31738 "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.2.1.tgz",
31739 "integrity": "sha512-u9njyyfEh43npf1M+yGKDGVPbY/JWEemg5nH05ncKPfi+kBbKBJoTdsogMu33uhytuLlv9y0O7GH7fEdwLdLQw==",
31740 "requires": {
31741 "@types/unist": "^2.0.0"
31742 }
31743 },
31744 "unist-util-position": {
31745 "version": "4.0.4",
31746 "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-4.0.4.tgz",
31747 "integrity": "sha512-kUBE91efOWfIVBo8xzh/uZQ7p9ffYRtUbMRZBNFYwf0RK8koUMx6dGUfwylLOKmaT2cs4wSW96QoYUSXAyEtpg==",
31748 "requires": {
31749 "@types/unist": "^2.0.0"
31750 }
31751 },
31752 "unist-util-stringify-position": {
31753 "version": "3.0.3",
31754 "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.3.tgz",
31755 "integrity": "sha512-k5GzIBZ/QatR8N5X2y+drfpWG8IDBzdnVj6OInRNWm1oXrzydiaAT2OQiA8DPRRZyAKb9b6I2a6PxYklZD0gKg==",
31756 "requires": {
31757 "@types/unist": "^2.0.0"
31758 }
31759 },
31760 "unist-util-visit": {
31761 "version": "4.1.2",
31762 "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.1.2.tgz",
31763 "integrity": "sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg==",
31764 "requires": {
31765 "@types/unist": "^2.0.0",
31766 "unist-util-is": "^5.0.0",
31767 "unist-util-visit-parents": "^5.1.1"
31768 }
31769 },
31770 "unist-util-visit-parents": {
31771 "version": "5.1.3",
31772 "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.1.3.tgz",
31773 "integrity": "sha512-x6+y8g7wWMyQhL1iZfhIPhDAs7Xwbn9nRosDXl7qoPTSCy0yNxnKc+hWokFifWQIDGi154rdUqKvbCa4+1kLhg==",
31774 "requires": {
31775 "@types/unist": "^2.0.0",
31776 "unist-util-is": "^5.0.0"
31777 }
31778 },
31779 "universalify": {
31780 "version": "2.0.1",
31781 "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz",
31782 "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw=="
31783 },
31784 "unpipe": {
31785 "version": "1.0.0",
31786 "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
31787 "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ=="
31788 },
31789 "unquote": {
31790 "version": "1.1.1",
31791 "resolved": "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz",
31792 "integrity": "sha512-vRCqFv6UhXpWxZPyGDh/F3ZpNv8/qo7w6iufLpQg9aKnQ71qM4B5KiI7Mia9COcjEhrO9LueHpMYjYzsWH3OIg=="
31793 },
31794 "upath": {
31795 "version": "1.2.0",
31796 "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz",
31797 "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg=="
31798 },
31799 "update-browserslist-db": {
31800 "version": "1.1.0",
31801 "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.0.tgz",
31802 "integrity": "sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ==",
31803 "requires": {
31804 "escalade": "^3.1.2",
31805 "picocolors": "^1.0.1"
31806 }
31807 },
31808 "uri-js": {
31809 "version": "4.4.1",
31810 "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
31811 "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
31812 "requires": {
31813 "punycode": "^2.1.0"
31814 }
31815 },
31816 "url-parse": {
31817 "version": "1.5.10",
31818 "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz",
31819 "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==",
31820 "requires": {
31821 "querystringify": "^2.1.1",
31822 "requires-port": "^1.0.0"
31823 }
31824 },
31825 "util-deprecate": {
31826 "version": "1.0.2",
31827 "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
31828 "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="
31829 },
31830 "util.promisify": {
31831 "version": "1.0.1",
31832 "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.1.tgz",
31833 "integrity": "sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA==",
31834 "requires": {
31835 "define-properties": "^1.1.3",
31836 "es-abstract": "^1.17.2",
31837 "has-symbols": "^1.0.1",
31838 "object.getownpropertydescriptors": "^2.1.0"
31839 }
31840 },
31841 "utila": {
31842 "version": "0.4.0",
31843 "resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz",
31844 "integrity": "sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA=="
31845 },
31846 "utils-merge": {
31847 "version": "1.0.1",
31848 "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
31849 "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA=="
31850 },
31851 "uuid": {
31852 "version": "8.3.2",
31853 "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz",
31854 "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg=="
31855 },
31856 "uvu": {
31857 "version": "0.5.6",
31858 "resolved": "https://registry.npmjs.org/uvu/-/uvu-0.5.6.tgz",
31859 "integrity": "sha512-+g8ENReyr8YsOc6fv/NVJs2vFdHBnBNdfE49rshrTzDWOlUx4Gq7KOS2GD8eqhy2j+Ejq29+SbKH8yjkAqXqoA==",
31860 "requires": {
31861 "dequal": "^2.0.0",
31862 "diff": "^5.0.0",
31863 "kleur": "^4.0.3",
31864 "sade": "^1.7.3"
31865 },
31866 "dependencies": {
31867 "kleur": {
31868 "version": "4.1.5",
31869 "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz",
31870 "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ=="
31871 }
31872 }
31873 },
31874 "v8-to-istanbul": {
31875 "version": "8.1.1",
31876 "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-8.1.1.tgz",
31877 "integrity": "sha512-FGtKtv3xIpR6BYhvgH8MI/y78oT7d8Au3ww4QIxymrCtZEh5b8gCw2siywE+puhEmuWKDtmfrvF5UlB298ut3w==",
31878 "requires": {
31879 "@types/istanbul-lib-coverage": "^2.0.1",
31880 "convert-source-map": "^1.6.0",
31881 "source-map": "^0.7.3"
31882 }
31883 },
31884 "vary": {
31885 "version": "1.1.2",
31886 "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
31887 "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg=="
31888 },
31889 "vfile": {
31890 "version": "5.3.7",
31891 "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.3.7.tgz",
31892 "integrity": "sha512-r7qlzkgErKjobAmyNIkkSpizsFPYiUPuJb5pNW1RB4JcYVZhs4lIbVqk8XPk033CV/1z8ss5pkax8SuhGpcG8g==",
31893 "requires": {
31894 "@types/unist": "^2.0.0",
31895 "is-buffer": "^2.0.0",
31896 "unist-util-stringify-position": "^3.0.0",
31897 "vfile-message": "^3.0.0"
31898 }
31899 },
31900 "vfile-message": {
31901 "version": "3.1.4",
31902 "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.1.4.tgz",
31903 "integrity": "sha512-fa0Z6P8HUrQN4BZaX05SIVXic+7kE3b05PWAtPuYP9QLHsLKYR7/AlLW3NtOrpXRLeawpDLMsVkmk5DG0NXgWw==",
31904 "requires": {
31905 "@types/unist": "^2.0.0",
31906 "unist-util-stringify-position": "^3.0.0"
31907 }
31908 },
31909 "w3c-hr-time": {
31910 "version": "1.0.2",
31911 "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz",
31912 "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==",
31913 "requires": {
31914 "browser-process-hrtime": "^1.0.0"
31915 }
31916 },
31917 "w3c-xmlserializer": {
31918 "version": "2.0.0",
31919 "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz",
31920 "integrity": "sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==",
31921 "requires": {
31922 "xml-name-validator": "^3.0.0"
31923 }
31924 },
31925 "walker": {
31926 "version": "1.0.8",
31927 "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz",
31928 "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==",
31929 "requires": {
31930 "makeerror": "1.0.12"
31931 }
31932 },
31933 "watchpack": {
31934 "version": "2.4.1",
31935 "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.1.tgz",
31936 "integrity": "sha512-8wrBCMtVhqcXP2Sup1ctSkga6uc2Bx0IIvKyT7yTFier5AXHooSI+QyQQAtTb7+E0IUCCKyTFmXqdqgum2XWGg==",
31937 "requires": {
31938 "glob-to-regexp": "^0.4.1",
31939 "graceful-fs": "^4.1.2"
31940 }
31941 },
31942 "wbuf": {
31943 "version": "1.7.3",
31944 "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz",
31945 "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==",
31946 "requires": {
31947 "minimalistic-assert": "^1.0.0"
31948 }
31949 },
31950 "web-vitals": {
31951 "version": "2.1.4",
31952 "resolved": "https://registry.npmjs.org/web-vitals/-/web-vitals-2.1.4.tgz",
31953 "integrity": "sha512-sVWcwhU5mX6crfI5Vd2dC4qchyTqxV8URinzt25XqVh+bHEPGH4C3NPrNionCP7Obx59wrYEbNlw4Z8sjALzZg=="
31954 },
31955 "webidl-conversions": {
31956 "version": "6.1.0",
31957 "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz",
31958 "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w=="
31959 },
31960 "webpack": {
31961 "version": "5.92.1",
31962 "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.92.1.tgz",
31963 "integrity": "sha512-JECQ7IwJb+7fgUFBlrJzbyu3GEuNBcdqr1LD7IbSzwkSmIevTm8PF+wej3Oxuz/JFBUZ6O1o43zsPkwm1C4TmA==",
31964 "requires": {
31965 "@types/eslint-scope": "^3.7.3",
31966 "@types/estree": "^1.0.5",
31967 "@webassemblyjs/ast": "^1.12.1",
31968 "@webassemblyjs/wasm-edit": "^1.12.1",
31969 "@webassemblyjs/wasm-parser": "^1.12.1",
31970 "acorn": "^8.7.1",
31971 "acorn-import-attributes": "^1.9.5",
31972 "browserslist": "^4.21.10",
31973 "chrome-trace-event": "^1.0.2",
31974 "enhanced-resolve": "^5.17.0",
31975 "es-module-lexer": "^1.2.1",
31976 "eslint-scope": "5.1.1",
31977 "events": "^3.2.0",
31978 "glob-to-regexp": "^0.4.1",
31979 "graceful-fs": "^4.2.11",
31980 "json-parse-even-better-errors": "^2.3.1",
31981 "loader-runner": "^4.2.0",
31982 "mime-types": "^2.1.27",
31983 "neo-async": "^2.6.2",
31984 "schema-utils": "^3.2.0",
31985 "tapable": "^2.1.1",
31986 "terser-webpack-plugin": "^5.3.10",
31987 "watchpack": "^2.4.1",
31988 "webpack-sources": "^3.2.3"
31989 },
31990 "dependencies": {
31991 "eslint-scope": {
31992 "version": "5.1.1",
31993 "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz",
31994 "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==",
31995 "requires": {
31996 "esrecurse": "^4.3.0",
31997 "estraverse": "^4.1.1"
31998 }
31999 },
32000 "estraverse": {
32001 "version": "4.3.0",
32002 "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz",
32003 "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw=="
32004 },
32005 "schema-utils": {
32006 "version": "3.3.0",
32007 "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz",
32008 "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==",
32009 "requires": {
32010 "@types/json-schema": "^7.0.8",
32011 "ajv": "^6.12.5",
32012 "ajv-keywords": "^3.5.2"
32013 }
32014 }
32015 }
32016 },
32017 "webpack-dev-middleware": {
32018 "version": "5.3.4",
32019 "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.4.tgz",
32020 "integrity": "sha512-BVdTqhhs+0IfoeAf7EoH5WE+exCmqGerHfDM0IL096Px60Tq2Mn9MAbnaGUe6HiMa41KMCYF19gyzZmBcq/o4Q==",
32021 "requires": {
32022 "colorette": "^2.0.10",
32023 "memfs": "^3.4.3",
32024 "mime-types": "^2.1.31",
32025 "range-parser": "^1.2.1",
32026 "schema-utils": "^4.0.0"
32027 }
32028 },
32029 "webpack-dev-server": {
32030 "version": "4.15.2",
32031 "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.15.2.tgz",
32032 "integrity": "sha512-0XavAZbNJ5sDrCbkpWL8mia0o5WPOd2YGtxrEiZkBK9FjLppIUK2TgxK6qGD2P3hUXTJNNPVibrerKcx5WkR1g==",
32033 "requires": {
32034 "@types/bonjour": "^3.5.9",
32035 "@types/connect-history-api-fallback": "^1.3.5",
32036 "@types/express": "^4.17.13",
32037 "@types/serve-index": "^1.9.1",
32038 "@types/serve-static": "^1.13.10",
32039 "@types/sockjs": "^0.3.33",
32040 "@types/ws": "^8.5.5",
32041 "ansi-html-community": "^0.0.8",
32042 "bonjour-service": "^1.0.11",
32043 "chokidar": "^3.5.3",
32044 "colorette": "^2.0.10",
32045 "compression": "^1.7.4",
32046 "connect-history-api-fallback": "^2.0.0",
32047 "default-gateway": "^6.0.3",
32048 "express": "^4.17.3",
32049 "graceful-fs": "^4.2.6",
32050 "html-entities": "^2.3.2",
32051 "http-proxy-middleware": "^2.0.3",
32052 "ipaddr.js": "^2.0.1",
32053 "launch-editor": "^2.6.0",
32054 "open": "^8.0.9",
32055 "p-retry": "^4.5.0",
32056 "rimraf": "^3.0.2",
32057 "schema-utils": "^4.0.0",
32058 "selfsigned": "^2.1.1",
32059 "serve-index": "^1.9.1",
32060 "sockjs": "^0.3.24",
32061 "spdy": "^4.0.2",
32062 "webpack-dev-middleware": "^5.3.4",
32063 "ws": "^8.13.0"
32064 },
32065 "dependencies": {
32066 "ws": {
32067 "version": "8.18.0",
32068 "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz",
32069 "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==",
32070 "requires": {}
32071 }
32072 }
32073 },
32074 "webpack-manifest-plugin": {
32075 "version": "4.1.1",
32076 "resolved": "https://registry.npmjs.org/webpack-manifest-plugin/-/webpack-manifest-plugin-4.1.1.tgz",
32077 "integrity": "sha512-YXUAwxtfKIJIKkhg03MKuiFAD72PlrqCiwdwO4VEXdRO5V0ORCNwaOwAZawPZalCbmH9kBDmXnNeQOw+BIEiow==",
32078 "requires": {
32079 "tapable": "^2.0.0",
32080 "webpack-sources": "^2.2.0"
32081 },
32082 "dependencies": {
32083 "source-map": {
32084 "version": "0.6.1",
32085 "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
32086 "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
32087 },
32088 "webpack-sources": {
32089 "version": "2.3.1",
32090 "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-2.3.1.tgz",
32091 "integrity": "sha512-y9EI9AO42JjEcrTJFOYmVywVZdKVUfOvDUPsJea5GIr1JOEGFVqwlY2K098fFoIjOkDzHn2AjRvM8dsBZu+gCA==",
32092 "requires": {
32093 "source-list-map": "^2.0.1",
32094 "source-map": "^0.6.1"
32095 }
32096 }
32097 }
32098 },
32099 "webpack-sources": {
32100 "version": "3.2.3",
32101 "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz",
32102 "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w=="
32103 },
32104 "websocket-driver": {
32105 "version": "0.7.4",
32106 "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz",
32107 "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==",
32108 "requires": {
32109 "http-parser-js": ">=0.5.1",
32110 "safe-buffer": ">=5.1.0",
32111 "websocket-extensions": ">=0.1.1"
32112 }
32113 },
32114 "websocket-extensions": {
32115 "version": "0.1.4",
32116 "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz",
32117 "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg=="
32118 },
32119 "whatwg-encoding": {
32120 "version": "1.0.5",
32121 "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz",
32122 "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==",
32123 "requires": {
32124 "iconv-lite": "0.4.24"
32125 },
32126 "dependencies": {
32127 "iconv-lite": {
32128 "version": "0.4.24",
32129 "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
32130 "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
32131 "requires": {
32132 "safer-buffer": ">= 2.1.2 < 3"
32133 }
32134 }
32135 }
32136 },
32137 "whatwg-fetch": {
32138 "version": "3.6.20",
32139 "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.20.tgz",
32140 "integrity": "sha512-EqhiFU6daOA8kpjOWTL0olhVOF3i7OrFzSYiGsEMB8GcXS+RrzauAERX65xMeNWVqxA6HXH2m69Z9LaKKdisfg=="
32141 },
32142 "whatwg-mimetype": {
32143 "version": "2.3.0",
32144 "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz",
32145 "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g=="
32146 },
32147 "whatwg-url": {
32148 "version": "8.7.0",
32149 "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.7.0.tgz",
32150 "integrity": "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==",
32151 "requires": {
32152 "lodash": "^4.7.0",
32153 "tr46": "^2.1.0",
32154 "webidl-conversions": "^6.1.0"
32155 }
32156 },
32157 "which": {
32158 "version": "2.0.2",
32159 "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
32160 "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
32161 "requires": {
32162 "isexe": "^2.0.0"
32163 }
32164 },
32165 "which-boxed-primitive": {
32166 "version": "1.0.2",
32167 "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz",
32168 "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==",
32169 "requires": {
32170 "is-bigint": "^1.0.1",
32171 "is-boolean-object": "^1.1.0",
32172 "is-number-object": "^1.0.4",
32173 "is-string": "^1.0.5",
32174 "is-symbol": "^1.0.3"
32175 }
32176 },
32177 "which-builtin-type": {
32178 "version": "1.1.3",
32179 "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.1.3.tgz",
32180 "integrity": "sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw==",
32181 "requires": {
32182 "function.prototype.name": "^1.1.5",
32183 "has-tostringtag": "^1.0.0",
32184 "is-async-function": "^2.0.0",
32185 "is-date-object": "^1.0.5",
32186 "is-finalizationregistry": "^1.0.2",
32187 "is-generator-function": "^1.0.10",
32188 "is-regex": "^1.1.4",
32189 "is-weakref": "^1.0.2",
32190 "isarray": "^2.0.5",
32191 "which-boxed-primitive": "^1.0.2",
32192 "which-collection": "^1.0.1",
32193 "which-typed-array": "^1.1.9"
32194 }
32195 },
32196 "which-collection": {
32197 "version": "1.0.1",
32198 "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.1.tgz",
32199 "integrity": "sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==",
32200 "requires": {
32201 "is-map": "^2.0.1",
32202 "is-set": "^2.0.1",
32203 "is-weakmap": "^2.0.1",
32204 "is-weakset": "^2.0.1"
32205 }
32206 },
32207 "which-typed-array": {
32208 "version": "1.1.15",
32209 "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.15.tgz",
32210 "integrity": "sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==",
32211 "requires": {
32212 "available-typed-arrays": "^1.0.7",
32213 "call-bind": "^1.0.7",
32214 "for-each": "^0.3.3",
32215 "gopd": "^1.0.1",
32216 "has-tostringtag": "^1.0.2"
32217 }
32218 },
32219 "word-wrap": {
32220 "version": "1.2.5",
32221 "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz",
32222 "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA=="
32223 },
32224 "workbox-background-sync": {
32225 "version": "6.6.0",
32226 "resolved": "https://registry.npmjs.org/workbox-background-sync/-/workbox-background-sync-6.6.0.tgz",
32227 "integrity": "sha512-jkf4ZdgOJxC9u2vztxLuPT/UjlH7m/nWRQ/MgGL0v8BJHoZdVGJd18Kck+a0e55wGXdqyHO+4IQTk0685g4MUw==",
32228 "requires": {
32229 "idb": "^7.0.1",
32230 "workbox-core": "6.6.0"
32231 }
32232 },
32233 "workbox-broadcast-update": {
32234 "version": "6.6.0",
32235 "resolved": "https://registry.npmjs.org/workbox-broadcast-update/-/workbox-broadcast-update-6.6.0.tgz",
32236 "integrity": "sha512-nm+v6QmrIFaB/yokJmQ/93qIJ7n72NICxIwQwe5xsZiV2aI93MGGyEyzOzDPVz5THEr5rC3FJSsO3346cId64Q==",
32237 "requires": {
32238 "workbox-core": "6.6.0"
32239 }
32240 },
32241 "workbox-build": {
32242 "version": "6.6.0",
32243 "resolved": "https://registry.npmjs.org/workbox-build/-/workbox-build-6.6.0.tgz",
32244 "integrity": "sha512-Tjf+gBwOTuGyZwMz2Nk/B13Fuyeo0Q84W++bebbVsfr9iLkDSo6j6PST8tET9HYA58mlRXwlMGpyWO8ETJiXdQ==",
32245 "requires": {
32246 "@apideck/better-ajv-errors": "^0.3.1",
32247 "@babel/core": "^7.11.1",
32248 "@babel/preset-env": "^7.11.0",
32249 "@babel/runtime": "^7.11.2",
32250 "@rollup/plugin-babel": "^5.2.0",
32251 "@rollup/plugin-node-resolve": "^11.2.1",
32252 "@rollup/plugin-replace": "^2.4.1",
32253 "@surma/rollup-plugin-off-main-thread": "^2.2.3",
32254 "ajv": "^8.6.0",
32255 "common-tags": "^1.8.0",
32256 "fast-json-stable-stringify": "^2.1.0",
32257 "fs-extra": "^9.0.1",
32258 "glob": "^7.1.6",
32259 "lodash": "^4.17.20",
32260 "pretty-bytes": "^5.3.0",
32261 "rollup": "^2.43.1",
32262 "rollup-plugin-terser": "^7.0.0",
32263 "source-map": "^0.8.0-beta.0",
32264 "stringify-object": "^3.3.0",
32265 "strip-comments": "^2.0.1",
32266 "tempy": "^0.6.0",
32267 "upath": "^1.2.0",
32268 "workbox-background-sync": "6.6.0",
32269 "workbox-broadcast-update": "6.6.0",
32270 "workbox-cacheable-response": "6.6.0",
32271 "workbox-core": "6.6.0",
32272 "workbox-expiration": "6.6.0",
32273 "workbox-google-analytics": "6.6.0",
32274 "workbox-navigation-preload": "6.6.0",
32275 "workbox-precaching": "6.6.0",
32276 "workbox-range-requests": "6.6.0",
32277 "workbox-recipes": "6.6.0",
32278 "workbox-routing": "6.6.0",
32279 "workbox-strategies": "6.6.0",
32280 "workbox-streams": "6.6.0",
32281 "workbox-sw": "6.6.0",
32282 "workbox-window": "6.6.0"
32283 },
32284 "dependencies": {
32285 "@apideck/better-ajv-errors": {
32286 "version": "0.3.6",
32287 "resolved": "https://registry.npmjs.org/@apideck/better-ajv-errors/-/better-ajv-errors-0.3.6.tgz",
32288 "integrity": "sha512-P+ZygBLZtkp0qqOAJJVX4oX/sFo5JR3eBWwwuqHHhK0GIgQOKWrAfiAaWX0aArHkRWHMuggFEgAZNxVPwPZYaA==",
32289 "requires": {
32290 "json-schema": "^0.4.0",
32291 "jsonpointer": "^5.0.0",
32292 "leven": "^3.1.0"
32293 }
32294 },
32295 "ajv": {
32296 "version": "8.16.0",
32297 "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.16.0.tgz",
32298 "integrity": "sha512-F0twR8U1ZU67JIEtekUcLkXkoO5mMMmgGD8sK/xUFzJ805jxHQl92hImFAqqXMyMYjSPOyUPAwHYhB72g5sTXw==",
32299 "requires": {
32300 "fast-deep-equal": "^3.1.3",
32301 "json-schema-traverse": "^1.0.0",
32302 "require-from-string": "^2.0.2",
32303 "uri-js": "^4.4.1"
32304 }
32305 },
32306 "fs-extra": {
32307 "version": "9.1.0",
32308 "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz",
32309 "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==",
32310 "requires": {
32311 "at-least-node": "^1.0.0",
32312 "graceful-fs": "^4.2.0",
32313 "jsonfile": "^6.0.1",
32314 "universalify": "^2.0.0"
32315 }
32316 },
32317 "json-schema-traverse": {
32318 "version": "1.0.0",
32319 "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
32320 "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug=="
32321 },
32322 "source-map": {
32323 "version": "0.8.0-beta.0",
32324 "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.8.0-beta.0.tgz",
32325 "integrity": "sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==",
32326 "requires": {
32327 "whatwg-url": "^7.0.0"
32328 }
32329 },
32330 "tr46": {
32331 "version": "1.0.1",
32332 "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz",
32333 "integrity": "sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==",
32334 "requires": {
32335 "punycode": "^2.1.0"
32336 }
32337 },
32338 "webidl-conversions": {
32339 "version": "4.0.2",
32340 "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz",
32341 "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg=="
32342 },
32343 "whatwg-url": {
32344 "version": "7.1.0",
32345 "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz",
32346 "integrity": "sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==",
32347 "requires": {
32348 "lodash.sortby": "^4.7.0",
32349 "tr46": "^1.0.1",
32350 "webidl-conversions": "^4.0.2"
32351 }
32352 }
32353 }
32354 },
32355 "workbox-cacheable-response": {
32356 "version": "6.6.0",
32357 "resolved": "https://registry.npmjs.org/workbox-cacheable-response/-/workbox-cacheable-response-6.6.0.tgz",
32358 "integrity": "sha512-JfhJUSQDwsF1Xv3EV1vWzSsCOZn4mQ38bWEBR3LdvOxSPgB65gAM6cS2CX8rkkKHRgiLrN7Wxoyu+TuH67kHrw==",
32359 "requires": {
32360 "workbox-core": "6.6.0"
32361 }
32362 },
32363 "workbox-core": {
32364 "version": "6.6.0",
32365 "resolved": "https://registry.npmjs.org/workbox-core/-/workbox-core-6.6.0.tgz",
32366 "integrity": "sha512-GDtFRF7Yg3DD859PMbPAYPeJyg5gJYXuBQAC+wyrWuuXgpfoOrIQIvFRZnQ7+czTIQjIr1DhLEGFzZanAT/3bQ=="
32367 },
32368 "workbox-expiration": {
32369 "version": "6.6.0",
32370 "resolved": "https://registry.npmjs.org/workbox-expiration/-/workbox-expiration-6.6.0.tgz",
32371 "integrity": "sha512-baplYXcDHbe8vAo7GYvyAmlS4f6998Jff513L4XvlzAOxcl8F620O91guoJ5EOf5qeXG4cGdNZHkkVAPouFCpw==",
32372 "requires": {
32373 "idb": "^7.0.1",
32374 "workbox-core": "6.6.0"
32375 }
32376 },
32377 "workbox-google-analytics": {
32378 "version": "6.6.0",
32379 "resolved": "https://registry.npmjs.org/workbox-google-analytics/-/workbox-google-analytics-6.6.0.tgz",
32380 "integrity": "sha512-p4DJa6OldXWd6M9zRl0H6vB9lkrmqYFkRQ2xEiNdBFp9U0LhsGO7hsBscVEyH9H2/3eZZt8c97NB2FD9U2NJ+Q==",
32381 "requires": {
32382 "workbox-background-sync": "6.6.0",
32383 "workbox-core": "6.6.0",
32384 "workbox-routing": "6.6.0",
32385 "workbox-strategies": "6.6.0"
32386 }
32387 },
32388 "workbox-navigation-preload": {
32389 "version": "6.6.0",
32390 "resolved": "https://registry.npmjs.org/workbox-navigation-preload/-/workbox-navigation-preload-6.6.0.tgz",
32391 "integrity": "sha512-utNEWG+uOfXdaZmvhshrh7KzhDu/1iMHyQOV6Aqup8Mm78D286ugu5k9MFD9SzBT5TcwgwSORVvInaXWbvKz9Q==",
32392 "requires": {
32393 "workbox-core": "6.6.0"
32394 }
32395 },
32396 "workbox-precaching": {
32397 "version": "6.6.0",
32398 "resolved": "https://registry.npmjs.org/workbox-precaching/-/workbox-precaching-6.6.0.tgz",
32399 "integrity": "sha512-eYu/7MqtRZN1IDttl/UQcSZFkHP7dnvr/X3Vn6Iw6OsPMruQHiVjjomDFCNtd8k2RdjLs0xiz9nq+t3YVBcWPw==",
32400 "requires": {
32401 "workbox-core": "6.6.0",
32402 "workbox-routing": "6.6.0",
32403 "workbox-strategies": "6.6.0"
32404 }
32405 },
32406 "workbox-range-requests": {
32407 "version": "6.6.0",
32408 "resolved": "https://registry.npmjs.org/workbox-range-requests/-/workbox-range-requests-6.6.0.tgz",
32409 "integrity": "sha512-V3aICz5fLGq5DpSYEU8LxeXvsT//mRWzKrfBOIxzIdQnV/Wj7R+LyJVTczi4CQ4NwKhAaBVaSujI1cEjXW+hTw==",
32410 "requires": {
32411 "workbox-core": "6.6.0"
32412 }
32413 },
32414 "workbox-recipes": {
32415 "version": "6.6.0",
32416 "resolved": "https://registry.npmjs.org/workbox-recipes/-/workbox-recipes-6.6.0.tgz",
32417 "integrity": "sha512-TFi3kTgYw73t5tg73yPVqQC8QQjxJSeqjXRO4ouE/CeypmP2O/xqmB/ZFBBQazLTPxILUQ0b8aeh0IuxVn9a6A==",
32418 "requires": {
32419 "workbox-cacheable-response": "6.6.0",
32420 "workbox-core": "6.6.0",
32421 "workbox-expiration": "6.6.0",
32422 "workbox-precaching": "6.6.0",
32423 "workbox-routing": "6.6.0",
32424 "workbox-strategies": "6.6.0"
32425 }
32426 },
32427 "workbox-routing": {
32428 "version": "6.6.0",
32429 "resolved": "https://registry.npmjs.org/workbox-routing/-/workbox-routing-6.6.0.tgz",
32430 "integrity": "sha512-x8gdN7VDBiLC03izAZRfU+WKUXJnbqt6PG9Uh0XuPRzJPpZGLKce/FkOX95dWHRpOHWLEq8RXzjW0O+POSkKvw==",
32431 "requires": {
32432 "workbox-core": "6.6.0"
32433 }
32434 },
32435 "workbox-strategies": {
32436 "version": "6.6.0",
32437 "resolved": "https://registry.npmjs.org/workbox-strategies/-/workbox-strategies-6.6.0.tgz",
32438 "integrity": "sha512-eC07XGuINAKUWDnZeIPdRdVja4JQtTuc35TZ8SwMb1ztjp7Ddq2CJ4yqLvWzFWGlYI7CG/YGqaETntTxBGdKgQ==",
32439 "requires": {
32440 "workbox-core": "6.6.0"
32441 }
32442 },
32443 "workbox-streams": {
32444 "version": "6.6.0",
32445 "resolved": "https://registry.npmjs.org/workbox-streams/-/workbox-streams-6.6.0.tgz",
32446 "integrity": "sha512-rfMJLVvwuED09CnH1RnIep7L9+mj4ufkTyDPVaXPKlhi9+0czCu+SJggWCIFbPpJaAZmp2iyVGLqS3RUmY3fxg==",
32447 "requires": {
32448 "workbox-core": "6.6.0",
32449 "workbox-routing": "6.6.0"
32450 }
32451 },
32452 "workbox-sw": {
32453 "version": "6.6.0",
32454 "resolved": "https://registry.npmjs.org/workbox-sw/-/workbox-sw-6.6.0.tgz",
32455 "integrity": "sha512-R2IkwDokbtHUE4Kus8pKO5+VkPHD2oqTgl+XJwh4zbF1HyjAbgNmK/FneZHVU7p03XUt9ICfuGDYISWG9qV/CQ=="
32456 },
32457 "workbox-webpack-plugin": {
32458 "version": "6.6.0",
32459 "resolved": "https://registry.npmjs.org/workbox-webpack-plugin/-/workbox-webpack-plugin-6.6.0.tgz",
32460 "integrity": "sha512-xNZIZHalboZU66Wa7x1YkjIqEy1gTR+zPM+kjrYJzqN7iurYZBctBLISyScjhkJKYuRrZUP0iqViZTh8rS0+3A==",
32461 "requires": {
32462 "fast-json-stable-stringify": "^2.1.0",
32463 "pretty-bytes": "^5.4.1",
32464 "upath": "^1.2.0",
32465 "webpack-sources": "^1.4.3",
32466 "workbox-build": "6.6.0"
32467 },
32468 "dependencies": {
32469 "source-map": {
32470 "version": "0.6.1",
32471 "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
32472 "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
32473 },
32474 "webpack-sources": {
32475 "version": "1.4.3",
32476 "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz",
32477 "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==",
32478 "requires": {
32479 "source-list-map": "^2.0.0",
32480 "source-map": "~0.6.1"
32481 }
32482 }
32483 }
32484 },
32485 "workbox-window": {
32486 "version": "6.6.0",
32487 "resolved": "https://registry.npmjs.org/workbox-window/-/workbox-window-6.6.0.tgz",
32488 "integrity": "sha512-L4N9+vka17d16geaJXXRjENLFldvkWy7JyGxElRD0JvBxvFEd8LOhr+uXCcar/NzAmIBRv9EZ+M+Qr4mOoBITw==",
32489 "requires": {
32490 "@types/trusted-types": "^2.0.2",
32491 "workbox-core": "6.6.0"
32492 }
32493 },
32494 "wrap-ansi": {
32495 "version": "7.0.0",
32496 "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
32497 "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
32498 "requires": {
32499 "ansi-styles": "^4.0.0",
32500 "string-width": "^4.1.0",
32501 "strip-ansi": "^6.0.0"
32502 },
32503 "dependencies": {
32504 "ansi-styles": {
32505 "version": "4.3.0",
32506 "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
32507 "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
32508 "requires": {
32509 "color-convert": "^2.0.1"
32510 }
32511 },
32512 "color-convert": {
32513 "version": "2.0.1",
32514 "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
32515 "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
32516 "requires": {
32517 "color-name": "~1.1.4"
32518 }
32519 },
32520 "color-name": {
32521 "version": "1.1.4",
32522 "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
32523 "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
32524 }
32525 }
32526 },
32527 "wrap-ansi-cjs": {
32528 "version": "npm:wrap-ansi@7.0.0",
32529 "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
32530 "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
32531 "requires": {
32532 "ansi-styles": "^4.0.0",
32533 "string-width": "^4.1.0",
32534 "strip-ansi": "^6.0.0"
32535 },
32536 "dependencies": {
32537 "ansi-styles": {
32538 "version": "4.3.0",
32539 "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
32540 "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
32541 "requires": {
32542 "color-convert": "^2.0.1"
32543 }
32544 },
32545 "color-convert": {
32546 "version": "2.0.1",
32547 "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
32548 "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
32549 "requires": {
32550 "color-name": "~1.1.4"
32551 }
32552 },
32553 "color-name": {
32554 "version": "1.1.4",
32555 "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
32556 "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
32557 }
32558 }
32559 },
32560 "wrappy": {
32561 "version": "1.0.2",
32562 "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
32563 "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="
32564 },
32565 "write-file-atomic": {
32566 "version": "3.0.3",
32567 "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz",
32568 "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==",
32569 "requires": {
32570 "imurmurhash": "^0.1.4",
32571 "is-typedarray": "^1.0.0",
32572 "signal-exit": "^3.0.2",
32573 "typedarray-to-buffer": "^3.1.5"
32574 }
32575 },
32576 "ws": {
32577 "version": "7.5.10",
32578 "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz",
32579 "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==",
32580 "requires": {}
32581 },
32582 "xml-name-validator": {
32583 "version": "3.0.0",
32584 "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz",
32585 "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw=="
32586 },
32587 "xmlchars": {
32588 "version": "2.2.0",
32589 "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz",
32590 "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw=="
32591 },
32592 "y18n": {
32593 "version": "5.0.8",
32594 "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
32595 "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA=="
32596 },
32597 "yallist": {
32598 "version": "3.1.1",
32599 "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
32600 "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g=="
32601 },
32602 "yaml": {
32603 "version": "1.10.2",
32604 "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz",
32605 "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg=="
32606 },
32607 "yargs": {
32608 "version": "16.2.0",
32609 "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz",
32610 "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==",
32611 "requires": {
32612 "cliui": "^7.0.2",
32613 "escalade": "^3.1.1",
32614 "get-caller-file": "^2.0.5",
32615 "require-directory": "^2.1.1",
32616 "string-width": "^4.2.0",
32617 "y18n": "^5.0.5",
32618 "yargs-parser": "^20.2.2"
32619 } 19137 }
32620 },
32621 "yargs-parser": {
32622 "version": "20.2.9",
32623 "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz",
32624 "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w=="
32625 },
32626 "yocto-queue": {
32627 "version": "0.1.0",
32628 "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz",
32629 "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q=="
32630 } 19138 }
32631 } 19139 }
32632} 19140}
diff --git a/frontend/package.json b/frontend/package.json
index 80c740b..6c3022d 100644
--- a/frontend/package.json
+++ b/frontend/package.json
@@ -3,13 +3,20 @@
3 "version": "0.1.0", 3 "version": "0.1.0",
4 "private": true, 4 "private": true,
5 "dependencies": { 5 "dependencies": {
6 "@testing-library/jest-dom": "^5.16.5", 6 "@testing-library/jest-dom": "^5.17.0",
7 "@testing-library/react": "^13.4.0", 7 "@testing-library/react": "^13.4.0",
8 "@testing-library/user-event": "^13.5.0", 8 "@testing-library/user-event": "^13.5.0",
9 "react": "^18.2.0", 9 "@types/jest": "^27.5.2",
10 "react-dom": "^18.2.0", 10 "@types/node": "^16.18.105",
11 "react-markdown": "^8.0.7", 11 "@types/react": "^18.3.3",
12 "react-scripts": "^5.0.1", 12 "@types/react-dom": "^18.3.0",
13 "axios": "^1.7.4",
14 "react": "^18.3.1",
15 "react-dom": "^18.3.1",
16 "react-markdown": "^9.0.1",
17 "react-router-dom": "^6.26.1",
18 "react-scripts": "5.0.1",
19 "typescript": "^4.9.5",
13 "web-vitals": "^2.1.4" 20 "web-vitals": "^2.1.4"
14 }, 21 },
15 "scripts": { 22 "scripts": {
@@ -35,8 +42,5 @@
35 "last 1 firefox version", 42 "last 1 firefox version",
36 "last 1 safari version" 43 "last 1 safari version"
37 ] 44 ]
38 },
39 "devDependencies": {
40 "react-router-dom": "^6.10.0"
41 } 45 }
42} 46}
diff --git a/frontend/public/index.html b/frontend/public/index.html
index 2900a15..0bd6da2 100644
--- a/frontend/public/index.html
+++ b/frontend/public/index.html
@@ -2,14 +2,42 @@
2<html lang="en"> 2<html lang="en">
3 <head> 3 <head>
4 <meta charset="utf-8" /> 4 <meta charset="utf-8" />
5 <link rel="icon" href="%PUBLIC_URL%/favicon.ico" />
5 <meta name="viewport" content="width=device-width, initial-scale=1" /> 6 <meta name="viewport" content="width=device-width, initial-scale=1" />
6 <meta name="theme-color" content="#000000" /> 7 <meta name="theme-color" content="#000000" />
8 <meta
9 name="description"
10 content="Web site created using create-react-app"
11 />
12 <link rel="apple-touch-icon" href="%PUBLIC_URL%/logo192.png" />
13 <!--
14 manifest.json provides metadata used when your web app is installed on a
15 user's mobile device or desktop. See https://developers.google.com/web/fundamentals/web-app-manifest/
16 -->
7 <link rel="manifest" href="%PUBLIC_URL%/manifest.json" /> 17 <link rel="manifest" href="%PUBLIC_URL%/manifest.json" />
8 18 <!--
19 Notice the use of %PUBLIC_URL% in the tags above.
20 It will be replaced with the URL of the `public` folder during the build.
21 Only files inside the `public` folder can be referenced from the HTML.
22
23 Unlike "/favicon.ico" or "favicon.ico", "%PUBLIC_URL%/favicon.ico" will
24 work correctly both with client-side routing and a non-root public URL.
25 Learn how to configure a non-root public URL by running `npm run build`.
26 -->
9 <title>Least Portals Hub</title> 27 <title>Least Portals Hub</title>
10 </head> 28 </head>
11 <body> 29 <body>
12 <noscript>You need to enable JavaScript to run this app.</noscript> 30 <noscript>You need to enable JavaScript to run this app.</noscript>
13 <div id="root"></div> 31 <div id="root"></div>
32 <!--
33 This HTML file is a template.
34 If you open it directly in the browser, you will see an empty page.
35
36 You can add webfonts, meta tags, or analytics to this file.
37 The build step will place the bundled scripts into the <body> tag.
38
39 To begin the development, run `npm start` or `yarn start`.
40 To create a production bundle, use `npm run build` or `yarn build`.
41 -->
14 </body> 42 </body>
15</html> 43</html>
diff --git a/frontend/public/manifest.json b/frontend/public/manifest.json
index 080d6c7..6de3c1e 100644
--- a/frontend/public/manifest.json
+++ b/frontend/public/manifest.json
@@ -1,21 +1,11 @@
1{ 1{
2 "short_name": "React App", 2 "short_name": "Least Portals Hub",
3 "name": "Create React App Sample", 3 "name": "Least Portals Hub",
4 "icons": [ 4 "icons": [
5 { 5 {
6 "src": "favicon.ico", 6 "src": "favicon.ico",
7 "sizes": "64x64 32x32 24x24 16x16", 7 "sizes": "64x64 32x32 24x24 16x16",
8 "type": "image/x-icon" 8 "type": "image/x-icon"
9 },
10 {
11 "src": "logo192.png",
12 "type": "image/png",
13 "sizes": "192x192"
14 },
15 {
16 "src": "logo512.png",
17 "type": "image/png",
18 "sizes": "512x512"
19 } 9 }
20 ], 10 ],
21 "start_url": ".", 11 "start_url": ".",
diff --git a/frontend/public/vite.svg b/frontend/public/vite.svg
deleted file mode 100644
index e7b8dfb..0000000
--- a/frontend/public/vite.svg
+++ /dev/null
@@ -1 +0,0 @@
1<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--logos" width="31.88" height="32" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 257"><defs><linearGradient id="IconifyId1813088fe1fbc01fb466" x1="-.828%" x2="57.636%" y1="7.652%" y2="78.411%"><stop offset="0%" stop-color="#41D1FF"></stop><stop offset="100%" stop-color="#BD34FE"></stop></linearGradient><linearGradient id="IconifyId1813088fe1fbc01fb467" x1="43.376%" x2="50.316%" y1="2.242%" y2="89.03%"><stop offset="0%" stop-color="#FFEA83"></stop><stop offset="8.333%" stop-color="#FFDD35"></stop><stop offset="100%" stop-color="#FFA800"></stop></linearGradient></defs><path fill="url(#IconifyId1813088fe1fbc01fb466)" d="M255.153 37.938L134.897 252.976c-2.483 4.44-8.862 4.466-11.382.048L.875 37.958c-2.746-4.814 1.371-10.646 6.827-9.67l120.385 21.517a6.537 6.537 0 0 0 2.322-.004l117.867-21.483c5.438-.991 9.574 4.796 6.877 9.62Z"></path><path fill="url(#IconifyId1813088fe1fbc01fb467)" d="M185.432.063L96.44 17.501a3.268 3.268 0 0 0-2.634 3.014l-5.474 92.456a3.268 3.268 0 0 0 3.997 3.378l24.777-5.718c2.318-.535 4.413 1.507 3.936 3.838l-7.361 36.047c-.495 2.426 1.782 4.5 4.151 3.78l15.304-4.649c2.372-.72 4.652 1.36 4.15 3.788l-11.698 56.621c-.732 3.542 3.979 5.473 5.943 2.437l1.313-2.028l72.516-144.72c1.215-2.423-.88-5.186-3.54-4.672l-25.505 4.922c-2.396.462-4.435-1.77-3.759-4.114l16.646-57.705c.677-2.35-1.37-4.583-3.769-4.113Z"></path></svg> \ No newline at end of file
diff --git a/frontend/src/App.css b/frontend/src/App.css
index 65e35de..3b732f0 100644
--- a/frontend/src/App.css
+++ b/frontend/src/App.css
@@ -1,3 +1,20 @@
1main {
2 overflow: auto;
3 overflow-x: hidden;
4 position: relative;
5
6 width: calc(100% - 380px);
7 height: 100vh;
8 left: 350px;
9
10 padding-right: 30px;
11
12 font-size: 40px;
13 font-family: BarlowSemiCondensed-Regular;
14 color: #cdcfdf;
15
16}
17
1body { 18body {
2 overflow: hidden; 19 overflow: hidden;
3 background-color: #141520; 20 background-color: #141520;
diff --git a/frontend/src/App.js b/frontend/src/App.js
deleted file mode 100644
index d96fa88..0000000
--- a/frontend/src/App.js
+++ /dev/null
@@ -1,49 +0,0 @@
1import React from 'react';
2import { BrowserRouter, Routes, Route} from "react-router-dom";
3
4import Sidebar from "./components/sidebar.js"
5import Main from "./components/main.js"
6import "./App.css";
7
8import Summary from "./components/pages/summary.js"
9import Profile from "./components/pages/profile.js"
10import About from './components/pages/about.js';
11import Games from "./components/pages/games.js";
12import Maplist from './components/pages/maplist.js';
13import Home from "./components/pages/maplist.js";
14import Homepage from './components/pages/home.js';
15
16
17export default function App() {
18 const [token, setToken] = React.useState(null);
19 const [mod,setMod] = React.useState(false)
20 React.useEffect(()=>{
21 if(token!==null){
22 setMod(JSON.parse(atob(token.split(".")[1])).mod)
23 }
24 },[token])
25
26 return (
27 <>
28 <BrowserRouter>
29 <Sidebar token={token} setToken={setToken}/>
30 <Routes>
31 <Route index element={<Homepage token={token} mod={mod} setToken={setToken}/>}></Route>
32 <Route path="/news" element={<Main text="News"/>}></Route>
33 <Route path="/records" element={<Main text="Records"/>}></Route>
34 <Route path="/leaderboards" element={<Main text="Leaderboards"/>}></Route>
35 <Route path="/discussions" element={<Main text="Discussion"/>}></Route>
36 <Route path="/scorelog" element={<Main text="Score logs"/>}></Route>
37 <Route path="/profile" element={<Profile token={token}/>}></Route>
38 <Route path="/users/*" element={<Profile/>}></Route>
39 <Route path="/rules" element={<Main text="Rules"/>}></Route>
40 <Route path="/about" element={<About/>}></Route>
41 <Route path="/maps/*" element={<Summary token={token} mod={mod}/>}></Route>
42 <Route path="/games" element={<Games/>}></Route>
43 <Route path="/games/*" element={<Maplist token={token} mod={mod} />}></Route>
44 <Route path="*" element={<Main text="404 Page not found"/>}></Route>
45 </Routes>
46 </BrowserRouter>
47 </>
48 )
49} \ No newline at end of file
diff --git a/frontend/src/App.tsx b/frontend/src/App.tsx
new file mode 100644
index 0000000..555ce4c
--- /dev/null
+++ b/frontend/src/App.tsx
@@ -0,0 +1,40 @@
1import React from 'react';
2import { Routes, Route } from "react-router-dom";
3
4import { UserProfile } from './types/Profile';
5import Sidebar from './components/Sidebar';
6import "./App.css";
7
8import Profile from './pages/Profile';
9import Games from './pages/Games';
10import Maps from './pages/Maps';
11import User from './pages/User';
12
13
14const App: React.FC = () => {
15 const [token, setToken] = React.useState<string | undefined>(undefined);
16 const [profile, setProfile] = React.useState<UserProfile | undefined>(undefined);
17 const [isModerator, setIsModerator] = React.useState<boolean>(true);
18
19 // React.useEffect(() => {
20 // if (token) {
21 // setIsModerator(JSON.parse(atob(token.split(".")[1])).mod)
22 // }
23 // }, [token]);
24
25 return (
26 <>
27 <Sidebar setToken={setToken} profile={profile} setProfile={setProfile} />
28 <Routes>
29 <Route path="/" element={<div>yo</div>} />
30 <Route path="/profile" element={<Profile profile={profile!} />} />
31 <Route path="/users/*" element={<User />} />
32 <Route path="/games" element={<Games />} />
33 <Route path="/maps/*" element={<Maps isModerator={isModerator} />} />
34 <Route path="*" element={"404"} />
35 </Routes>
36 </>
37 );
38};
39
40export default App;
diff --git a/frontend/src/api/Api.tsx b/frontend/src/api/Api.tsx
new file mode 100644
index 0000000..9e45bc4
--- /dev/null
+++ b/frontend/src/api/Api.tsx
@@ -0,0 +1,157 @@
1import axios from 'axios';
2
3import { Game } from '../types/Game';
4import { MapDiscussion, MapDiscussions, MapLeaderboard, MapSummary } from '../types/Map';
5import { MapDiscussionCommentContent, MapDiscussionContent, ModMenuContent } from '../types/Content';
6import { Search } from '../types/Search';
7import { UserProfile } from '../types/Profile';
8
9// add new api call function entries here
10// example usage: API.get_games();
11export const API = {
12 user_logout: () => user_logout(),
13
14 get_user: (user_id: string) => get_user(user_id),
15 get_games: () => get_games(),
16 get_search: (q: string) => get_search(q),
17 get_map_summary: (map_id: string) => get_map_summary(map_id),
18 get_map_leaderboard: (map_id: string) => get_map_leaderboard(map_id),
19 get_map_discussions: (map_id: string) => get_map_discussions(map_id),
20 get_map_discussion: (map_id: string, discussion_id: number) => get_map_discussion(map_id, discussion_id),
21
22 post_map_summary: (map_id: string, content: ModMenuContent) => post_map_summary(map_id, content),
23 post_map_discussion: (map_id: string, content: MapDiscussionContent) => post_map_discussion(map_id, content),
24 post_map_discussion_comment: (map_id: string, discussion_id: number, content: MapDiscussionCommentContent) => post_map_discussion_comment(map_id, discussion_id, content),
25
26 put_map_image: (map_id: string, image: string) => put_map_image(map_id, image),
27 put_map_summary: (map_id: string, content: ModMenuContent) => put_map_summary(map_id, content),
28
29 delete_map_summary: (map_id: string, route_id: number) => delete_map_summary(map_id, route_id),
30 delete_map_discussion: (map_id: string, discussion_id: number) => delete_map_discussion(map_id, discussion_id),
31};
32
33const BASE_API_URL: string = "https://lp.ardapektezol.com/api/v1/"
34
35function url(path: string): string {
36 return BASE_API_URL + path;
37}
38
39// USER
40
41const user_logout = async () => {
42 await axios.delete(url("token"));
43};
44
45const get_user = async (user_id: string): Promise<UserProfile> => {
46 const response = await axios.get(url(`users/${user_id}`))
47 return response.data.data;
48};
49
50
51// GAMES
52
53const get_games = async (): Promise<Game[]> => {
54 const response = await axios.get(url("games"))
55 return response.data.data;
56};
57
58// SEARCH
59
60const get_search = async (q: string): Promise<Search> => {
61 const response = await axios.get(url(`search?q=${q}`))
62 return response.data.data;
63};
64
65// MAP SUMMARY
66
67const put_map_image = async (map_id: string, image: string): Promise<boolean> => {
68 const response = await axios.put(url(`maps/${map_id}/image`), {
69 "image": image,
70 });
71 return response.data.success;
72};
73
74const get_map_summary = async (map_id: string): Promise<MapSummary> => {
75 const response = await axios.get(url(`maps/${map_id}/summary`))
76 return response.data.data;
77};
78
79const post_map_summary = async (map_id: string, content: ModMenuContent): Promise<boolean> => {
80 const response = await axios.post(url(`maps/${map_id}/summary`), {
81 "user_name": content.name,
82 "score_count": content.score,
83 "record_date": content.date,
84 "showcase": content.showcase,
85 "description": content.description,
86 });
87 return response.data.success;
88};
89
90const put_map_summary = async (map_id: string, content: ModMenuContent): Promise<boolean> => {
91 const response = await axios.put(url(`maps/${map_id}/summary`), {
92 "route_id": content.id,
93 "user_name": content.name,
94 "score_count": content.score,
95 "record_date": content.date,
96 "showcase": content.showcase,
97 "description": content.description,
98 });
99 return response.data.success;
100};
101
102const delete_map_summary = async (map_id: string, route_id: number): Promise<boolean> => {
103 const response = await axios.delete(url(`maps/${map_id}/summary`), {
104 data: {
105 "route_id": route_id,
106 }
107 });
108 return response.data.success;
109};
110
111// MAP LEADERBOARDS
112
113const get_map_leaderboard = async (map_id: string): Promise<MapLeaderboard | undefined> => {
114 const response = await axios.get(url(`maps/${map_id}/leaderboards`))
115 if (!response.data.success) {
116 return undefined;
117 }
118 return response.data.data;
119};
120
121// MAP DISCUSSIONS
122
123const get_map_discussions = async (map_id: string): Promise<MapDiscussions | undefined> => {
124 const response = await axios.get(url(`maps/${map_id}/discussions`));
125 if (!response.data.data.discussions) {
126 return undefined;
127 }
128 return response.data.data;
129};
130
131const get_map_discussion = async (map_id: string, discussion_id: number): Promise<MapDiscussion | undefined> => {
132 const response = await axios.get(url(`maps/${map_id}/discussions/${discussion_id}`));
133 if (!response.data.data.discussion) {
134 return undefined;
135 }
136 return response.data.data;
137};
138
139const post_map_discussion = async (map_id: string, content: MapDiscussionContent): Promise<boolean> => {
140 const response = await axios.post(url(`maps/${map_id}/discussions`), {
141 "title": content.title,
142 "content": content.content,
143 });
144 return response.data.success;
145};
146
147const post_map_discussion_comment = async (map_id: string, discussion_id: number, content: MapDiscussionCommentContent): Promise<boolean> => {
148 const response = await axios.post(url(`maps/${map_id}/discussions/${discussion_id}`), {
149 "comment": content.comment,
150 });
151 return response.data.success;
152};
153
154const delete_map_discussion = async (map_id: string, discussion_id: number): Promise<boolean> => {
155 const response = await axios.delete(url(`maps/${map_id}/discussions/${discussion_id}`));
156 return response.data.success;
157};
diff --git a/frontend/src/components/Discussions.tsx b/frontend/src/components/Discussions.tsx
new file mode 100644
index 0000000..1cd3523
--- /dev/null
+++ b/frontend/src/components/Discussions.tsx
@@ -0,0 +1,151 @@
1import React from 'react';
2
3import { MapDiscussion, MapDiscussions, MapDiscussionsDetail } from '../types/Map';
4import { MapDiscussionCommentContent, MapDiscussionContent } from '../types/Content';
5import { time_ago } from '../utils/Time';
6import { API } from '../api/Api';
7import "../css/Maps.css"
8
9interface DiscussionsProps {
10 data?: MapDiscussions;
11 isModerator: boolean;
12 mapID: string;
13 onRefresh: () => void;
14}
15
16const Discussions: React.FC<DiscussionsProps> = ({ data, isModerator, mapID, onRefresh }) => {
17
18 const [discussionThread, setDiscussionThread] = React.useState<MapDiscussion | undefined>(undefined);
19 const [discussionSearch, setDiscussionSearch] = React.useState<string>("");
20
21 const [createDiscussion, setCreateDiscussion] = React.useState<boolean>(false);
22 const [createDiscussionContent, setCreateDiscussionContent] = React.useState<MapDiscussionContent>({
23 title: "",
24 content: "",
25 });
26 const [createDiscussionCommentContent, setCreateDiscussionCommentContent] = React.useState<MapDiscussionCommentContent>({
27 comment: "",
28 });
29
30 const _open_map_discussion = async (discussion_id: number) => {
31 const mapDiscussion = await API.get_map_discussion(mapID, discussion_id);
32 setDiscussionThread(mapDiscussion);
33 };
34
35 const _create_map_discussion = async () => {
36 await API.post_map_discussion(mapID, createDiscussionContent);
37 setCreateDiscussion(false);
38 onRefresh();
39 };
40
41 const _create_map_discussion_comment = async (discussion_id: number) => {
42 await API.post_map_discussion_comment(mapID, discussion_id, createDiscussionCommentContent);
43 await _open_map_discussion(discussion_id);
44 };
45
46 const _delete_map_discussion = async (discussion: MapDiscussionsDetail) => {
47 if (window.confirm(`Are you sure you want to remove post: ${discussion.title}?`)) {
48 await API.delete_map_discussion(mapID, discussion.id);
49 onRefresh();
50 }
51 };
52
53 return (
54 <section id='section7' className='summary3'>
55 <div id='discussion-search'>
56 <input type="text" value={discussionSearch} placeholder={"Search for posts..."} onChange={(e) => setDiscussionSearch(e.target.value)} />
57 <div><button onClick={() => setCreateDiscussion(true)}>New Post</button></div>
58 </div>
59
60 { // janky ternary operators here, could divide them to more components?
61 createDiscussion ?
62 (
63 <div id='discussion-create'>
64 <span>Create Post</span>
65 <button onClick={() => setCreateDiscussion(false)}>X</button>
66 <div style={{ gridColumn: "1 / span 2" }}>
67 <input id='discussion-create-title' placeholder='Title...' onChange={(e) => setCreateDiscussionContent({
68 ...createDiscussionContent,
69 title: e.target.value,
70 })} />
71 <input id='discussion-create-content' placeholder='Enter the comment...' onChange={(e) => setCreateDiscussionContent({
72 ...createDiscussionContent,
73 title: e.target.value,
74 })} />
75 </div>
76 <div style={{ placeItems: "end", gridColumn: "1 / span 2" }}>
77 <button id='discussion-create-button' onClick={() => _create_map_discussion()}>Post</button>
78 </div>
79 </div>
80 )
81 :
82 discussionThread ?
83 (
84 <div id='discussion-thread'>
85 <div>
86 <span>{discussionThread.discussion.title}</span>
87 <button onClick={() => setDiscussionThread(undefined)}>X</button>
88 </div>
89
90 <div>
91 <img src={discussionThread.discussion.creator.avatar_link} alt="" />
92 <div>
93 <span>{discussionThread.discussion.creator.user_name}</span>
94 <span>{time_ago(new Date(discussionThread.discussion.created_at.replace("T", " ").replace("Z", "")))}</span>
95 <span>{discussionThread.discussion.content}</span>
96 </div>
97 {discussionThread.discussion.comments ?
98 discussionThread.discussion.comments.sort((a, b) => new Date(a.date).getTime() - new Date(b.date).getTime())
99 .map(e => (
100 <>
101 <img src={e.user.avatar_link} alt="" />
102 <div>
103 <span>{e.user.user_name}</span>
104 <span>{time_ago(new Date(e.date.replace("T", " ").replace("Z", "")))}</span>
105 <span>{e.comment}</span>
106 </div>
107 </>
108 )) : ""
109 }
110 </div>
111 <div id='discussion-send'>
112 <input type="text" placeholder={"Message"} onKeyDown={(e) => e.key === "Enter" && _create_map_discussion_comment(discussionThread.discussion.id)} onChange={(e) => setCreateDiscussionCommentContent({
113 ...createDiscussionContent,
114 comment: e.target.value,
115 })} />
116 <div><button onClick={() => _create_map_discussion_comment(discussionThread.discussion.id)}>Send</button></div>
117 </div>
118
119 </div>
120 )
121 :
122 (
123 data ?
124 (<>
125 {data.discussions.filter(f => f.title.includes(discussionSearch)).sort((a, b) => new Date(b.updated_at).getTime() - new Date(a.updated_at).getTime())
126 .map((e, i) => (
127 <div id='discussion-post'>
128 <button key={e.id} onClick={() => _open_map_discussion(e.id)}>
129 <span>{e.title}</span>
130 {isModerator ?
131 <button onClick={(m) => {
132 m.stopPropagation();
133 _delete_map_discussion(e);
134 }}>Delete Post</button>
135 : <span></span>
136 }
137 <span><b>{e.creator.user_name}:</b> {e.content}</span>
138 <span>Last Updated: {time_ago(new Date(e.updated_at.replace("T", " ").replace("Z", "")))}</span>
139 </button>
140 </div>
141 ))}
142 </>)
143 :
144 (<span style={{ textAlign: "center", display: "block" }}>No Discussions...</span>)
145 )
146 }
147 </section>
148 );
149};
150
151export default Discussions;
diff --git a/frontend/src/components/GameEntry.tsx b/frontend/src/components/GameEntry.tsx
new file mode 100644
index 0000000..8e58ce9
--- /dev/null
+++ b/frontend/src/components/GameEntry.tsx
@@ -0,0 +1,49 @@
1import React from 'react';
2import { Link } from "react-router-dom";
3
4import { Game } from '../types/Game';
5import "../css/Games.css"
6
7interface GameEntryProps {
8 game: Game;
9}
10
11const GameEntry: React.FC<GameEntryProps> = ({ game }) => {
12
13 React.useEffect(() => {
14 game.category_portals.forEach(catInfo => {
15 const itemBody = document.createElement("div");
16 const itemTitle = document.createElement("span");
17 const spacing = document.createElement("br");
18 const itemNum = document.createElement("span");
19
20 itemTitle.innerText = catInfo.category.name;
21 itemNum.innerText = catInfo.portal_count as any as string;
22 itemTitle.classList.add("games-page-item-body-item-title");
23 itemNum.classList.add("games-page-item-body-item-num");
24 itemBody.appendChild(itemTitle);
25 itemBody.appendChild(spacing);
26 itemBody.appendChild(itemNum);
27 itemBody.className = "games-page-item-body-item";
28
29 // itemBody.innerHTML = `
30 // <span className='games-page-item-body-item-title'>${catInfo.category.name}</span><br />
31 // <span className='games-page-item-body-item-num'>${catInfo.portal_count}</span>`
32
33 document.getElementById(`${game.id}`)!.appendChild(itemBody);
34 });
35 }, []);
36
37 return (
38 <Link to={"/games/" + game.id}><div className='games-page-item'>
39 <div className='games-page-item-header'>
40 <div style={{ backgroundImage: `url(${game.image})` }} className='games-page-item-header-img'></div>
41 <span><b>{game.name}</b></span>
42 </div>
43 <div id={game.id as any as string} className='games-page-item-body'>
44 </div>
45 </div></Link>
46 );
47};
48
49export default GameEntry;
diff --git a/frontend/src/components/Leaderboards.tsx b/frontend/src/components/Leaderboards.tsx
new file mode 100644
index 0000000..badff37
--- /dev/null
+++ b/frontend/src/components/Leaderboards.tsx
@@ -0,0 +1,105 @@
1import React from 'react';
2
3import { DownloadIcon, ThreedotIcon } from '../images/Images';
4import { MapLeaderboard } from '../types/Map';
5import { ticks_to_time, time_ago } from '../utils/Time';
6import "../css/Maps.css"
7
8interface LeaderboardsProps {
9 data?: MapLeaderboard;
10}
11
12const Leaderboards: React.FC<LeaderboardsProps> = ({ data }) => {
13
14 const [pageNumber, setPageNumber] = React.useState<number>(1);
15
16 if (!data) {
17 return (
18 <section id='section6' className='summary2'>
19 <h1 style={{ textAlign: "center" }}>Map is not available for competitive boards.</h1>
20 </section>
21 );
22 };
23
24 if (data.records.length === 0) {
25 return (
26 <section id='section6' className='summary2'>
27 <h1 style={{ textAlign: "center" }}>No records found.</h1>
28 </section>
29 );
30 };
31
32 return (
33 <section id='section6' className='summary2'>
34
35 <div id='leaderboard-top'
36 style={data.map.is_coop ? { gridTemplateColumns: "7.5% 40% 7.5% 15% 15% 15%" } : { gridTemplateColumns: "7.5% 30% 10% 20% 17.5% 15%" }}
37 >
38 <span>Place</span>
39
40 {data.map.is_coop ? (
41 <div id='runner'>
42 <span>Host</span>
43 <span>Partner</span>
44 </div>
45 ) : (
46 <span>Runner</span>
47 )}
48
49 <span>Portals</span>
50 <span>Time</span>
51 <span>Date</span>
52 <div id='page-number'>
53 <div>
54
55 <button onClick={() => pageNumber === 1 ? null : setPageNumber(prevPageNumber => prevPageNumber - 1)}
56 ><i className='triangle' style={{ position: 'relative', left: '-5px', }}></i> </button>
57 <span>{data.pagination.current_page}/{data.pagination.total_pages}</span>
58 <button onClick={() => pageNumber === data.pagination.total_pages ? null : setPageNumber(prevPageNumber => prevPageNumber + 1)}
59 ><i className='triangle' style={{ position: 'relative', left: '5px', transform: 'rotate(180deg)' }}></i> </button>
60 </div>
61 </div>
62 </div>
63 <hr />
64 <div id='leaderboard-records'>
65 {data.records.map((r, index) => (
66 <span className='leaderboard-record' key={index}
67 style={data.map.is_coop ? { gridTemplateColumns: "3% 4.5% 40% 4% 3.5% 15% 15% 14.5%" } : { gridTemplateColumns: "3% 4.5% 30% 4% 6% 20% 17% 15%" }}
68 >
69 <span>{r.placement}</span>
70 <span> </span>
71 {r.kind === "multiplayer" ? (
72 <div>
73 <span><img src={r.host.avatar_link} alt='' /> &nbsp; {r.host.user_name}</span>
74 <span><img src={r.partner.avatar_link} alt='' /> &nbsp; {r.partner.user_name}</span>
75 </div>
76 ) : (
77 <div><span><img src={r.user.avatar_link} alt='' /> &nbsp; {r.user.user_name}</span></div>
78 )}
79
80 <span>{r.score_count}</span>
81 <span> </span>
82 <span className='hover-popup' popup-text={(r.score_time) + " ticks"}>{ticks_to_time(r.score_time)}</span>
83 <span className='hover-popup' popup-text={r.record_date.replace("T", ' ').split(".")[0]}>{time_ago(new Date(r.record_date.replace("T", " ").replace("Z", "")))}</span>
84
85 {r.kind === "multiplayer" ? (
86 <span>
87 <button onClick={() => { window.alert(`Host demo ID: ${r.host_demo_id} \nParnter demo ID: ${r.partner_demo_id}`) }}><img src={ThreedotIcon} alt="demo_id" /></button>
88 <button onClick={() => window.location.href = `https://lp.ardapektezol.com/api/v1/demos?uuid=${r.partner_demo_id}`}><img src={DownloadIcon} alt="download" style={{ filter: "hue-rotate(160deg) contrast(60%) saturate(1000%)" }} /></button>
89 <button onClick={() => window.location.href = `https://lp.ardapektezol.com/api/v1/demos?uuid=${r.host_demo_id}`}><img src={DownloadIcon} alt="download" style={{ filter: "hue-rotate(300deg) contrast(60%) saturate(1000%)" }} /></button>
90 </span>
91 ) : (
92
93 <span>
94 <button onClick={() => { window.alert(`Demo ID: ${r.demo_id}`) }}><img src={ThreedotIcon} alt="demo_id" /></button>
95 <button onClick={() => window.location.href = `https://lp.ardapektezol.com/api/v1/demos?uuid=${r.demo_id}`}><img src={DownloadIcon} alt="download" /></button>
96 </span>
97 )}
98 </span>
99 ))}
100 </div>
101 </section>
102 );
103};
104
105export default Leaderboards;
diff --git a/frontend/src/components/Login.tsx b/frontend/src/components/Login.tsx
new file mode 100644
index 0000000..adfa718
--- /dev/null
+++ b/frontend/src/components/Login.tsx
@@ -0,0 +1,1931 @@
1import React from 'react';
2import { Link, useNavigate } from 'react-router-dom';
3
4import { ExitIcon, UserIcon, LoginIcon } from '../images/Images';
5import { UserProfile } from '../types/Profile';
6import { API } from '../api/Api';
7import "../css/Login.css";
8
9interface LoginProps {
10 token?: string;
11 setToken: React.Dispatch<React.SetStateAction<string | undefined>>;
12 profile?: UserProfile;
13 setProfile: React.Dispatch<React.SetStateAction<UserProfile | undefined>>;
14};
15
16const Login: React.FC<LoginProps> = ({ token, setToken, profile, setProfile }) => {
17
18 const navigate = useNavigate();
19
20 const _logout = () => {
21 setProfile(undefined);
22 setToken(undefined);
23 API.user_logout();
24 navigate("/");
25 }
26
27 return (
28 <>
29 {profile
30 ?
31 (
32 <>
33 <Link to="/profile" tabIndex={-1} className='login'>
34 <button className='sidebar-button'>
35 <img src={profile.avatar_link} alt="" />
36 <span>{profile.user_name}</span>
37 </button>
38 <button className='sidebar-button' onClick={_logout}>
39 <img src={ExitIcon} alt="" /><span></span>
40 </button>
41 </Link>
42 </>
43 )
44 :
45 (
46 <Link to="/api/v1/login" tabIndex={-1} className='login' >
47 <button className='sidebar-button' onClick={() => {
48 setProfile({
49 "profile": true,
50 "steam_id": "76561198131629989",
51 "user_name": "BiSaXa",
52 "avatar_link": "https://avatars.steamstatic.com/fa7f64c79b247c8a80cafbd6dd8033b98cc1153c_full.jpg",
53 "country_code": "TR",
54 "titles": [
55 {
56 "name": "Admin",
57 "color": "ce6000"
58 },
59 {
60 "name": "Moderator",
61 "color": "4a8b00"
62 }
63 ],
64 "links": {
65 "p2sr": "-",
66 "steam": "-",
67 "youtube": "-",
68 "twitch": "-"
69 },
70 "rankings": {
71 "overall": {
72 "rank": 1,
73 "completion_count": 4,
74 "completion_total": 105
75 },
76 "singleplayer": {
77 "rank": 1,
78 "completion_count": 3,
79 "completion_total": 57
80 },
81 "cooperative": {
82 "rank": 1,
83 "completion_count": 1,
84 "completion_total": 48
85 }
86 },
87 "records": [
88 {
89 "game_id": 1,
90 "category_id": 1,
91 "map_id": 3,
92 "map_name": "Portal Gun",
93 "map_wr_count": 0,
94 "placement": 1,
95 "scores": [
96 {
97 "record_id": 350,
98 "demo_id": "e9ec0b83-7b95-4fa9-b974-2245fb79d5ca",
99 "score_count": 0,
100 "score_time": 3968,
101 "date": "2023-09-23T14:57:35.430781Z"
102 },
103 {
104 "record_id": 282,
105 "demo_id": "27b3a03e-56a3-4df3-b9bf-448fc0cbf1e7",
106 "score_count": 31,
107 "score_time": 9999,
108 "date": "2023-09-03T19:09:11.602056Z"
109 }
110 ]
111 },
112 {
113 "game_id": 1,
114 "category_id": 1,
115 "map_id": 4,
116 "map_name": "Smooth Jazz",
117 "map_wr_count": 0,
118 "placement": 1,
119 "scores": [
120 {
121 "record_id": 283,
122 "demo_id": "27b3a03e-56a3-4df3-b9bf-448fc0cbf1e7",
123 "score_count": 31,
124 "score_time": 9999,
125 "date": "2023-09-03T19:09:11.602056Z"
126 }
127 ]
128 },
129 {
130 "game_id": 1,
131 "category_id": 1,
132 "map_id": 5,
133 "map_name": "Cube Momentum",
134 "map_wr_count": 0,
135 "placement": 1,
136 "scores": [
137 {
138 "record_id": 284,
139 "demo_id": "27b3a03e-56a3-4df3-b9bf-448fc0cbf1e7",
140 "score_count": 31,
141 "score_time": 9999,
142 "date": "2023-09-03T19:09:11.602056Z"
143 }
144 ]
145 },
146 {
147 "game_id": 1,
148 "category_id": 1,
149 "map_id": 6,
150 "map_name": "Future Starter",
151 "map_wr_count": 0,
152 "placement": 1,
153 "scores": [
154 {
155 "record_id": 351,
156 "demo_id": "d5ee2227-e195-4e8d-bd1d-746b17538df7",
157 "score_count": 2,
158 "score_time": 71378,
159 "date": "2023-09-23T15:11:16.579757Z"
160 },
161 {
162 "record_id": 285,
163 "demo_id": "27b3a03e-56a3-4df3-b9bf-448fc0cbf1e7",
164 "score_count": 31,
165 "score_time": 9999,
166 "date": "2023-09-03T19:09:11.602056Z"
167 }
168 ]
169 },
170 {
171 "game_id": 1,
172 "category_id": 1,
173 "map_id": 7,
174 "map_name": "Secret Panel",
175 "map_wr_count": 0,
176 "placement": 1,
177 "scores": [
178 {
179 "record_id": 352,
180 "demo_id": "64ca612d-4586-40df-9cf3-850c270b5592",
181 "score_count": 0,
182 "score_time": 10943,
183 "date": "2023-09-23T15:19:15.413596Z"
184 },
185 {
186 "record_id": 286,
187 "demo_id": "27b3a03e-56a3-4df3-b9bf-448fc0cbf1e7",
188 "score_count": 31,
189 "score_time": 9999,
190 "date": "2023-09-03T19:09:11.602056Z"
191 }
192 ]
193 },
194 {
195 "game_id": 1,
196 "category_id": 1,
197 "map_id": 9,
198 "map_name": "Incinerator",
199 "map_wr_count": 0,
200 "placement": 1,
201 "scores": [
202 {
203 "record_id": 287,
204 "demo_id": "27b3a03e-56a3-4df3-b9bf-448fc0cbf1e7",
205 "score_count": 31,
206 "score_time": 9999,
207 "date": "2023-09-03T19:09:11.602056Z"
208 }
209 ]
210 },
211 {
212 "game_id": 1,
213 "category_id": 2,
214 "map_id": 10,
215 "map_name": "Laser Intro",
216 "map_wr_count": 0,
217 "placement": 1,
218 "scores": [
219 {
220 "record_id": 288,
221 "demo_id": "27b3a03e-56a3-4df3-b9bf-448fc0cbf1e7",
222 "score_count": 31,
223 "score_time": 9999,
224 "date": "2023-09-03T19:09:11.602056Z"
225 }
226 ]
227 },
228 {
229 "game_id": 1,
230 "category_id": 2,
231 "map_id": 11,
232 "map_name": "Laser Stairs",
233 "map_wr_count": 0,
234 "placement": 1,
235 "scores": [
236 {
237 "record_id": 289,
238 "demo_id": "27b3a03e-56a3-4df3-b9bf-448fc0cbf1e7",
239 "score_count": 31,
240 "score_time": 9999,
241 "date": "2023-09-03T19:09:11.602056Z"
242 }
243 ]
244 },
245 {
246 "game_id": 1,
247 "category_id": 2,
248 "map_id": 12,
249 "map_name": "Dual Lasers",
250 "map_wr_count": 0,
251 "placement": 1,
252 "scores": [
253 {
254 "record_id": 290,
255 "demo_id": "27b3a03e-56a3-4df3-b9bf-448fc0cbf1e7",
256 "score_count": 31,
257 "score_time": 9999,
258 "date": "2023-09-03T19:09:11.602056Z"
259 }
260 ]
261 },
262 {
263 "game_id": 1,
264 "category_id": 2,
265 "map_id": 13,
266 "map_name": "Laser Over Goo",
267 "map_wr_count": 0,
268 "placement": 1,
269 "scores": [
270 {
271 "record_id": 291,
272 "demo_id": "27b3a03e-56a3-4df3-b9bf-448fc0cbf1e7",
273 "score_count": 31,
274 "score_time": 9999,
275 "date": "2023-09-03T19:09:11.602056Z"
276 }
277 ]
278 },
279 {
280 "game_id": 1,
281 "category_id": 2,
282 "map_id": 14,
283 "map_name": "Catapult Intro",
284 "map_wr_count": 0,
285 "placement": 1,
286 "scores": [
287 {
288 "record_id": 338,
289 "demo_id": "27b3a03e-56a3-4df3-b9bf-448fc0cbf1e7",
290 "score_count": 31,
291 "score_time": 9999,
292 "date": "2023-09-03T19:09:11.602056Z"
293 }
294 ]
295 },
296 {
297 "game_id": 1,
298 "category_id": 2,
299 "map_id": 15,
300 "map_name": "Trust Fling",
301 "map_wr_count": 0,
302 "placement": 1,
303 "scores": [
304 {
305 "record_id": 292,
306 "demo_id": "27b3a03e-56a3-4df3-b9bf-448fc0cbf1e7",
307 "score_count": 31,
308 "score_time": 9999,
309 "date": "2023-09-03T19:09:11.602056Z"
310 }
311 ]
312 },
313 {
314 "game_id": 1,
315 "category_id": 2,
316 "map_id": 16,
317 "map_name": "Pit Flings",
318 "map_wr_count": 0,
319 "placement": 1,
320 "scores": [
321 {
322 "record_id": 293,
323 "demo_id": "27b3a03e-56a3-4df3-b9bf-448fc0cbf1e7",
324 "score_count": 31,
325 "score_time": 9999,
326 "date": "2023-09-03T19:09:11.602056Z"
327 }
328 ]
329 },
330 {
331 "game_id": 1,
332 "category_id": 2,
333 "map_id": 17,
334 "map_name": "Fizzler Intro",
335 "map_wr_count": 0,
336 "placement": 1,
337 "scores": [
338 {
339 "record_id": 294,
340 "demo_id": "27b3a03e-56a3-4df3-b9bf-448fc0cbf1e7",
341 "score_count": 31,
342 "score_time": 9999,
343 "date": "2023-09-03T19:09:11.602056Z"
344 }
345 ]
346 },
347 {
348 "game_id": 1,
349 "category_id": 3,
350 "map_id": 18,
351 "map_name": "Ceiling Catapult",
352 "map_wr_count": 0,
353 "placement": 1,
354 "scores": [
355 {
356 "record_id": 295,
357 "demo_id": "27b3a03e-56a3-4df3-b9bf-448fc0cbf1e7",
358 "score_count": 31,
359 "score_time": 9999,
360 "date": "2023-09-03T19:09:11.602056Z"
361 }
362 ]
363 },
364 {
365 "game_id": 1,
366 "category_id": 3,
367 "map_id": 19,
368 "map_name": "Ricochet",
369 "map_wr_count": 0,
370 "placement": 1,
371 "scores": [
372 {
373 "record_id": 296,
374 "demo_id": "27b3a03e-56a3-4df3-b9bf-448fc0cbf1e7",
375 "score_count": 31,
376 "score_time": 9999,
377 "date": "2023-09-03T19:09:11.602056Z"
378 }
379 ]
380 },
381 {
382 "game_id": 1,
383 "category_id": 3,
384 "map_id": 20,
385 "map_name": "Bridge Intro",
386 "map_wr_count": 0,
387 "placement": 1,
388 "scores": [
389 {
390 "record_id": 297,
391 "demo_id": "27b3a03e-56a3-4df3-b9bf-448fc0cbf1e7",
392 "score_count": 31,
393 "score_time": 9999,
394 "date": "2023-09-03T19:09:11.602056Z"
395 }
396 ]
397 },
398 {
399 "game_id": 1,
400 "category_id": 3,
401 "map_id": 21,
402 "map_name": "Bridge The Gap",
403 "map_wr_count": 0,
404 "placement": 1,
405 "scores": [
406 {
407 "record_id": 298,
408 "demo_id": "27b3a03e-56a3-4df3-b9bf-448fc0cbf1e7",
409 "score_count": 31,
410 "score_time": 9999,
411 "date": "2023-09-03T19:09:11.602056Z"
412 }
413 ]
414 },
415 {
416 "game_id": 1,
417 "category_id": 3,
418 "map_id": 22,
419 "map_name": "Turret Intro",
420 "map_wr_count": 0,
421 "placement": 1,
422 "scores": [
423 {
424 "record_id": 299,
425 "demo_id": "27b3a03e-56a3-4df3-b9bf-448fc0cbf1e7",
426 "score_count": 31,
427 "score_time": 9999,
428 "date": "2023-09-03T19:09:11.602056Z"
429 }
430 ]
431 },
432 {
433 "game_id": 1,
434 "category_id": 3,
435 "map_id": 23,
436 "map_name": "Laser Relays",
437 "map_wr_count": 0,
438 "placement": 1,
439 "scores": [
440 {
441 "record_id": 300,
442 "demo_id": "27b3a03e-56a3-4df3-b9bf-448fc0cbf1e7",
443 "score_count": 31,
444 "score_time": 9999,
445 "date": "2023-09-03T19:09:11.602056Z"
446 }
447 ]
448 },
449 {
450 "game_id": 1,
451 "category_id": 3,
452 "map_id": 24,
453 "map_name": "Turret Blocker",
454 "map_wr_count": 0,
455 "placement": 1,
456 "scores": [
457 {
458 "record_id": 301,
459 "demo_id": "27b3a03e-56a3-4df3-b9bf-448fc0cbf1e7",
460 "score_count": 31,
461 "score_time": 9999,
462 "date": "2023-09-03T19:09:11.602056Z"
463 }
464 ]
465 },
466 {
467 "game_id": 1,
468 "category_id": 3,
469 "map_id": 25,
470 "map_name": "Laser vs Turret",
471 "map_wr_count": 0,
472 "placement": 1,
473 "scores": [
474 {
475 "record_id": 302,
476 "demo_id": "27b3a03e-56a3-4df3-b9bf-448fc0cbf1e7",
477 "score_count": 31,
478 "score_time": 9999,
479 "date": "2023-09-03T19:09:11.602056Z"
480 }
481 ]
482 },
483 {
484 "game_id": 1,
485 "category_id": 3,
486 "map_id": 26,
487 "map_name": "Pull The Rug",
488 "map_wr_count": 0,
489 "placement": 2,
490 "scores": [
491 {
492 "record_id": 303,
493 "demo_id": "27b3a03e-56a3-4df3-b9bf-448fc0cbf1e7",
494 "score_count": 31,
495 "score_time": 9999,
496 "date": "2023-09-03T19:09:11.602056Z"
497 }
498 ]
499 },
500 {
501 "game_id": 1,
502 "category_id": 4,
503 "map_id": 27,
504 "map_name": "Column Blocker",
505 "map_wr_count": 0,
506 "placement": 1,
507 "scores": [
508 {
509 "record_id": 304,
510 "demo_id": "27b3a03e-56a3-4df3-b9bf-448fc0cbf1e7",
511 "score_count": 31,
512 "score_time": 9999,
513 "date": "2023-09-03T19:09:11.602056Z"
514 }
515 ]
516 },
517 {
518 "game_id": 1,
519 "category_id": 4,
520 "map_id": 28,
521 "map_name": "Laser Chaining",
522 "map_wr_count": 0,
523 "placement": 1,
524 "scores": [
525 {
526 "record_id": 305,
527 "demo_id": "27b3a03e-56a3-4df3-b9bf-448fc0cbf1e7",
528 "score_count": 31,
529 "score_time": 9999,
530 "date": "2023-09-03T19:09:11.602056Z"
531 }
532 ]
533 },
534 {
535 "game_id": 1,
536 "category_id": 4,
537 "map_id": 29,
538 "map_name": "Triple Laser",
539 "map_wr_count": 0,
540 "placement": 2,
541 "scores": [
542 {
543 "record_id": 337,
544 "demo_id": "27b3a03e-56a3-4df3-b9bf-448fc0cbf1e7",
545 "score_count": 31,
546 "score_time": 9999,
547 "date": "2023-09-03T19:09:11.602056Z"
548 }
549 ]
550 },
551 {
552 "game_id": 1,
553 "category_id": 4,
554 "map_id": 30,
555 "map_name": "Jail Break",
556 "map_wr_count": 0,
557 "placement": 1,
558 "scores": [
559 {
560 "record_id": 306,
561 "demo_id": "27b3a03e-56a3-4df3-b9bf-448fc0cbf1e7",
562 "score_count": 31,
563 "score_time": 9999,
564 "date": "2023-09-03T19:09:11.602056Z"
565 }
566 ]
567 },
568 {
569 "game_id": 1,
570 "category_id": 4,
571 "map_id": 31,
572 "map_name": "Escape",
573 "map_wr_count": 0,
574 "placement": 1,
575 "scores": [
576 {
577 "record_id": 307,
578 "demo_id": "27b3a03e-56a3-4df3-b9bf-448fc0cbf1e7",
579 "score_count": 31,
580 "score_time": 9999,
581 "date": "2023-09-03T19:09:11.602056Z"
582 }
583 ]
584 },
585 {
586 "game_id": 1,
587 "category_id": 5,
588 "map_id": 32,
589 "map_name": "Turret Factory",
590 "map_wr_count": 0,
591 "placement": 1,
592 "scores": [
593 {
594 "record_id": 308,
595 "demo_id": "27b3a03e-56a3-4df3-b9bf-448fc0cbf1e7",
596 "score_count": 31,
597 "score_time": 9999,
598 "date": "2023-09-03T19:09:11.602056Z"
599 }
600 ]
601 },
602 {
603 "game_id": 1,
604 "category_id": 5,
605 "map_id": 33,
606 "map_name": "Turret Sabotage",
607 "map_wr_count": 0,
608 "placement": 1,
609 "scores": [
610 {
611 "record_id": 309,
612 "demo_id": "27b3a03e-56a3-4df3-b9bf-448fc0cbf1e7",
613 "score_count": 31,
614 "score_time": 9999,
615 "date": "2023-09-03T19:09:11.602056Z"
616 }
617 ]
618 },
619 {
620 "game_id": 1,
621 "category_id": 5,
622 "map_id": 34,
623 "map_name": "Neurotoxin Sabotage",
624 "map_wr_count": 0,
625 "placement": 1,
626 "scores": [
627 {
628 "record_id": 310,
629 "demo_id": "27b3a03e-56a3-4df3-b9bf-448fc0cbf1e7",
630 "score_count": 31,
631 "score_time": 9999,
632 "date": "2023-09-03T19:09:11.602056Z"
633 }
634 ]
635 },
636 {
637 "game_id": 1,
638 "category_id": 5,
639 "map_id": 35,
640 "map_name": "Core",
641 "map_wr_count": 2,
642 "placement": 1,
643 "scores": [
644 {
645 "record_id": 311,
646 "demo_id": "27b3a03e-56a3-4df3-b9bf-448fc0cbf1e7",
647 "score_count": 31,
648 "score_time": 9999,
649 "date": "2023-09-03T19:09:11.602056Z"
650 }
651 ]
652 },
653 {
654 "game_id": 1,
655 "category_id": 6,
656 "map_id": 36,
657 "map_name": "Underground",
658 "map_wr_count": 0,
659 "placement": 1,
660 "scores": [
661 {
662 "record_id": 353,
663 "demo_id": "27b3a03e-56a3-4df3-b9bf-448fc0cbf1e7",
664 "score_count": 31,
665 "score_time": 9999,
666 "date": "2023-09-03T19:09:11.602056Z"
667 }
668 ]
669 },
670 {
671 "game_id": 1,
672 "category_id": 6,
673 "map_id": 37,
674 "map_name": "Cave Johnson",
675 "map_wr_count": 0,
676 "placement": 1,
677 "scores": [
678 {
679 "record_id": 313,
680 "demo_id": "27b3a03e-56a3-4df3-b9bf-448fc0cbf1e7",
681 "score_count": 31,
682 "score_time": 9999,
683 "date": "2023-09-03T19:09:11.602056Z"
684 }
685 ]
686 },
687 {
688 "game_id": 1,
689 "category_id": 6,
690 "map_id": 38,
691 "map_name": "Repulsion Intro",
692 "map_wr_count": 0,
693 "placement": 2,
694 "scores": [
695 {
696 "record_id": 314,
697 "demo_id": "27b3a03e-56a3-4df3-b9bf-448fc0cbf1e7",
698 "score_count": 31,
699 "score_time": 9999,
700 "date": "2023-09-03T19:09:11.602056Z"
701 }
702 ]
703 },
704 {
705 "game_id": 1,
706 "category_id": 6,
707 "map_id": 39,
708 "map_name": "Bomb Flings",
709 "map_wr_count": 0,
710 "placement": 1,
711 "scores": [
712 {
713 "record_id": 315,
714 "demo_id": "27b3a03e-56a3-4df3-b9bf-448fc0cbf1e7",
715 "score_count": 31,
716 "score_time": 9999,
717 "date": "2023-09-03T19:09:11.602056Z"
718 }
719 ]
720 },
721 {
722 "game_id": 1,
723 "category_id": 6,
724 "map_id": 40,
725 "map_name": "Crazy Box",
726 "map_wr_count": 0,
727 "placement": 1,
728 "scores": [
729 {
730 "record_id": 316,
731 "demo_id": "27b3a03e-56a3-4df3-b9bf-448fc0cbf1e7",
732 "score_count": 31,
733 "score_time": 9999,
734 "date": "2023-09-03T19:09:11.602056Z"
735 }
736 ]
737 },
738 {
739 "game_id": 1,
740 "category_id": 6,
741 "map_id": 41,
742 "map_name": "PotatOS",
743 "map_wr_count": 0,
744 "placement": 1,
745 "scores": [
746 {
747 "record_id": 317,
748 "demo_id": "27b3a03e-56a3-4df3-b9bf-448fc0cbf1e7",
749 "score_count": 31,
750 "score_time": 9999,
751 "date": "2023-09-03T19:09:11.602056Z"
752 }
753 ]
754 },
755 {
756 "game_id": 1,
757 "category_id": 7,
758 "map_id": 42,
759 "map_name": "Propulsion Intro",
760 "map_wr_count": 0,
761 "placement": 2,
762 "scores": [
763 {
764 "record_id": 362,
765 "demo_id": "51453c2b-79a4-4fab-81bf-442cbbc997d6",
766 "score_count": 3,
767 "score_time": 856,
768 "date": "2023-11-06T15:45:52.867581Z"
769 },
770 {
771 "record_id": 318,
772 "demo_id": "27b3a03e-56a3-4df3-b9bf-448fc0cbf1e7",
773 "score_count": 31,
774 "score_time": 9999,
775 "date": "2023-09-03T19:09:11.602056Z"
776 }
777 ]
778 },
779 {
780 "game_id": 1,
781 "category_id": 7,
782 "map_id": 43,
783 "map_name": "Propulsion Flings",
784 "map_wr_count": 0,
785 "placement": 1,
786 "scores": [
787 {
788 "record_id": 319,
789 "demo_id": "27b3a03e-56a3-4df3-b9bf-448fc0cbf1e7",
790 "score_count": 31,
791 "score_time": 9999,
792 "date": "2023-09-03T19:09:11.602056Z"
793 }
794 ]
795 },
796 {
797 "game_id": 1,
798 "category_id": 7,
799 "map_id": 44,
800 "map_name": "Conversion Intro",
801 "map_wr_count": 0,
802 "placement": 1,
803 "scores": [
804 {
805 "record_id": 320,
806 "demo_id": "27b3a03e-56a3-4df3-b9bf-448fc0cbf1e7",
807 "score_count": 31,
808 "score_time": 9999,
809 "date": "2023-09-03T19:09:11.602056Z"
810 }
811 ]
812 },
813 {
814 "game_id": 1,
815 "category_id": 7,
816 "map_id": 45,
817 "map_name": "Three Gels",
818 "map_wr_count": 0,
819 "placement": 1,
820 "scores": [
821 {
822 "record_id": 321,
823 "demo_id": "27b3a03e-56a3-4df3-b9bf-448fc0cbf1e7",
824 "score_count": 31,
825 "score_time": 9999,
826 "date": "2023-09-03T19:09:11.602056Z"
827 }
828 ]
829 },
830 {
831 "game_id": 1,
832 "category_id": 8,
833 "map_id": 46,
834 "map_name": "Test",
835 "map_wr_count": 0,
836 "placement": 1,
837 "scores": [
838 {
839 "record_id": 322,
840 "demo_id": "27b3a03e-56a3-4df3-b9bf-448fc0cbf1e7",
841 "score_count": 31,
842 "score_time": 9999,
843 "date": "2023-09-03T19:09:11.602056Z"
844 }
845 ]
846 },
847 {
848 "game_id": 1,
849 "category_id": 8,
850 "map_id": 47,
851 "map_name": "Funnel Intro",
852 "map_wr_count": 0,
853 "placement": 1,
854 "scores": [
855 {
856 "record_id": 323,
857 "demo_id": "27b3a03e-56a3-4df3-b9bf-448fc0cbf1e7",
858 "score_count": 31,
859 "score_time": 9999,
860 "date": "2023-09-03T19:09:11.602056Z"
861 }
862 ]
863 },
864 {
865 "game_id": 1,
866 "category_id": 8,
867 "map_id": 48,
868 "map_name": "Ceiling Button",
869 "map_wr_count": 0,
870 "placement": 1,
871 "scores": [
872 {
873 "record_id": 324,
874 "demo_id": "27b3a03e-56a3-4df3-b9bf-448fc0cbf1e7",
875 "score_count": 31,
876 "score_time": 9999,
877 "date": "2023-09-03T19:09:11.602056Z"
878 }
879 ]
880 },
881 {
882 "game_id": 1,
883 "category_id": 8,
884 "map_id": 49,
885 "map_name": "Wall Button",
886 "map_wr_count": 0,
887 "placement": 1,
888 "scores": [
889 {
890 "record_id": 325,
891 "demo_id": "27b3a03e-56a3-4df3-b9bf-448fc0cbf1e7",
892 "score_count": 31,
893 "score_time": 9999,
894 "date": "2023-09-03T19:09:11.602056Z"
895 }
896 ]
897 },
898 {
899 "game_id": 1,
900 "category_id": 8,
901 "map_id": 50,
902 "map_name": "Polarity",
903 "map_wr_count": 0,
904 "placement": 1,
905 "scores": [
906 {
907 "record_id": 326,
908 "demo_id": "27b3a03e-56a3-4df3-b9bf-448fc0cbf1e7",
909 "score_count": 31,
910 "score_time": 9999,
911 "date": "2023-09-03T19:09:11.602056Z"
912 }
913 ]
914 },
915 {
916 "game_id": 1,
917 "category_id": 8,
918 "map_id": 51,
919 "map_name": "Funnel Catch",
920 "map_wr_count": 0,
921 "placement": 1,
922 "scores": [
923 {
924 "record_id": 327,
925 "demo_id": "27b3a03e-56a3-4df3-b9bf-448fc0cbf1e7",
926 "score_count": 31,
927 "score_time": 9999,
928 "date": "2023-09-03T19:09:11.602056Z"
929 }
930 ]
931 },
932 {
933 "game_id": 1,
934 "category_id": 8,
935 "map_id": 52,
936 "map_name": "Stop The Box",
937 "map_wr_count": 0,
938 "placement": 1,
939 "scores": [
940 {
941 "record_id": 328,
942 "demo_id": "27b3a03e-56a3-4df3-b9bf-448fc0cbf1e7",
943 "score_count": 31,
944 "score_time": 9999,
945 "date": "2023-09-03T19:09:11.602056Z"
946 }
947 ]
948 },
949 {
950 "game_id": 1,
951 "category_id": 8,
952 "map_id": 53,
953 "map_name": "Laser Catapult",
954 "map_wr_count": 0,
955 "placement": 1,
956 "scores": [
957 {
958 "record_id": 329,
959 "demo_id": "27b3a03e-56a3-4df3-b9bf-448fc0cbf1e7",
960 "score_count": 31,
961 "score_time": 9999,
962 "date": "2023-09-03T19:09:11.602056Z"
963 }
964 ]
965 },
966 {
967 "game_id": 1,
968 "category_id": 8,
969 "map_id": 54,
970 "map_name": "Laser Platform",
971 "map_wr_count": 0,
972 "placement": 1,
973 "scores": [
974 {
975 "record_id": 330,
976 "demo_id": "27b3a03e-56a3-4df3-b9bf-448fc0cbf1e7",
977 "score_count": 31,
978 "score_time": 9999,
979 "date": "2023-09-03T19:09:11.602056Z"
980 }
981 ]
982 },
983 {
984 "game_id": 1,
985 "category_id": 8,
986 "map_id": 55,
987 "map_name": "Propulsion Catch",
988 "map_wr_count": 0,
989 "placement": 1,
990 "scores": [
991 {
992 "record_id": 331,
993 "demo_id": "27b3a03e-56a3-4df3-b9bf-448fc0cbf1e7",
994 "score_count": 31,
995 "score_time": 9999,
996 "date": "2023-09-03T19:09:11.602056Z"
997 }
998 ]
999 },
1000 {
1001 "game_id": 1,
1002 "category_id": 8,
1003 "map_id": 56,
1004 "map_name": "Repulsion Polarity",
1005 "map_wr_count": 0,
1006 "placement": 1,
1007 "scores": [
1008 {
1009 "record_id": 332,
1010 "demo_id": "27b3a03e-56a3-4df3-b9bf-448fc0cbf1e7",
1011 "score_count": 31,
1012 "score_time": 9999,
1013 "date": "2023-09-03T19:09:11.602056Z"
1014 }
1015 ]
1016 },
1017 {
1018 "game_id": 1,
1019 "category_id": 9,
1020 "map_id": 57,
1021 "map_name": "Finale 1",
1022 "map_wr_count": 0,
1023 "placement": 1,
1024 "scores": [
1025 {
1026 "record_id": 333,
1027 "demo_id": "27b3a03e-56a3-4df3-b9bf-448fc0cbf1e7",
1028 "score_count": 31,
1029 "score_time": 9999,
1030 "date": "2023-09-03T19:09:11.602056Z"
1031 }
1032 ]
1033 },
1034 {
1035 "game_id": 1,
1036 "category_id": 9,
1037 "map_id": 58,
1038 "map_name": "Finale 2",
1039 "map_wr_count": 0,
1040 "placement": 1,
1041 "scores": [
1042 {
1043 "record_id": 334,
1044 "demo_id": "27b3a03e-56a3-4df3-b9bf-448fc0cbf1e7",
1045 "score_count": 31,
1046 "score_time": 9999,
1047 "date": "2023-09-03T19:09:11.602056Z"
1048 }
1049 ]
1050 },
1051 {
1052 "game_id": 1,
1053 "category_id": 9,
1054 "map_id": 59,
1055 "map_name": "Finale 3",
1056 "map_wr_count": 2,
1057 "placement": 1,
1058 "scores": [
1059 {
1060 "record_id": 335,
1061 "demo_id": "27b3a03e-56a3-4df3-b9bf-448fc0cbf1e7",
1062 "score_count": 31,
1063 "score_time": 9999,
1064 "date": "2023-09-03T19:09:11.602056Z"
1065 }
1066 ]
1067 },
1068 {
1069 "game_id": 1,
1070 "category_id": 9,
1071 "map_id": 60,
1072 "map_name": "Finale 4",
1073 "map_wr_count": 1,
1074 "placement": 1,
1075 "scores": [
1076 {
1077 "record_id": 336,
1078 "demo_id": "27b3a03e-56a3-4df3-b9bf-448fc0cbf1e7",
1079 "score_count": 31,
1080 "score_time": 9999,
1081 "date": "2023-09-03T19:09:11.602056Z"
1082 }
1083 ]
1084 },
1085 {
1086 "game_id": 2,
1087 "category_id": 11,
1088 "map_id": 63,
1089 "map_name": "Doors",
1090 "map_wr_count": 0,
1091 "placement": 1,
1092 "scores": [
1093 {
1094 "record_id": 5,
1095 "demo_id": "b8d6adc2-d8b7-41e4-8faf-63f246d910cd",
1096 "score_count": 31,
1097 "score_time": 9999,
1098 "date": "2023-09-03T19:12:05.958456Z"
1099 }
1100 ]
1101 },
1102 {
1103 "game_id": 2,
1104 "category_id": 11,
1105 "map_id": 64,
1106 "map_name": "Buttons",
1107 "map_wr_count": 2,
1108 "placement": 1,
1109 "scores": [
1110 {
1111 "record_id": 6,
1112 "demo_id": "b8d6adc2-d8b7-41e4-8faf-63f246d910cd",
1113 "score_count": 31,
1114 "score_time": 9999,
1115 "date": "2023-09-03T19:12:05.958456Z"
1116 }
1117 ]
1118 },
1119 {
1120 "game_id": 2,
1121 "category_id": 11,
1122 "map_id": 65,
1123 "map_name": "Lasers",
1124 "map_wr_count": 2,
1125 "placement": 1,
1126 "scores": [
1127 {
1128 "record_id": 7,
1129 "demo_id": "b8d6adc2-d8b7-41e4-8faf-63f246d910cd",
1130 "score_count": 31,
1131 "score_time": 9999,
1132 "date": "2023-09-03T19:12:05.958456Z"
1133 }
1134 ]
1135 },
1136 {
1137 "game_id": 2,
1138 "category_id": 11,
1139 "map_id": 66,
1140 "map_name": "Rat Maze",
1141 "map_wr_count": 0,
1142 "placement": 1,
1143 "scores": [
1144 {
1145 "record_id": 8,
1146 "demo_id": "b8d6adc2-d8b7-41e4-8faf-63f246d910cd",
1147 "score_count": 31,
1148 "score_time": 9999,
1149 "date": "2023-09-03T19:12:05.958456Z"
1150 }
1151 ]
1152 },
1153 {
1154 "game_id": 2,
1155 "category_id": 11,
1156 "map_id": 67,
1157 "map_name": "Laser Crusher",
1158 "map_wr_count": 0,
1159 "placement": 1,
1160 "scores": [
1161 {
1162 "record_id": 9,
1163 "demo_id": "b8d6adc2-d8b7-41e4-8faf-63f246d910cd",
1164 "score_count": 31,
1165 "score_time": 9999,
1166 "date": "2023-09-03T19:12:05.958456Z"
1167 }
1168 ]
1169 },
1170 {
1171 "game_id": 2,
1172 "category_id": 11,
1173 "map_id": 68,
1174 "map_name": "Behind The Scenes",
1175 "map_wr_count": 0,
1176 "placement": 1,
1177 "scores": [
1178 {
1179 "record_id": 10,
1180 "demo_id": "b8d6adc2-d8b7-41e4-8faf-63f246d910cd",
1181 "score_count": 31,
1182 "score_time": 9999,
1183 "date": "2023-09-03T19:12:05.958456Z"
1184 }
1185 ]
1186 },
1187 {
1188 "game_id": 2,
1189 "category_id": 12,
1190 "map_id": 69,
1191 "map_name": "Flings",
1192 "map_wr_count": 4,
1193 "placement": 1,
1194 "scores": [
1195 {
1196 "record_id": 11,
1197 "demo_id": "b8d6adc2-d8b7-41e4-8faf-63f246d910cd",
1198 "score_count": 31,
1199 "score_time": 9999,
1200 "date": "2023-09-03T19:12:05.958456Z"
1201 }
1202 ]
1203 },
1204 {
1205 "game_id": 2,
1206 "category_id": 12,
1207 "map_id": 70,
1208 "map_name": "Infinifling",
1209 "map_wr_count": 0,
1210 "placement": 1,
1211 "scores": [
1212 {
1213 "record_id": 12,
1214 "demo_id": "b8d6adc2-d8b7-41e4-8faf-63f246d910cd",
1215 "score_count": 31,
1216 "score_time": 9999,
1217 "date": "2023-09-03T19:12:05.958456Z"
1218 }
1219 ]
1220 },
1221 {
1222 "game_id": 2,
1223 "category_id": 12,
1224 "map_id": 71,
1225 "map_name": "Team Retrieval",
1226 "map_wr_count": 0,
1227 "placement": 1,
1228 "scores": [
1229 {
1230 "record_id": 13,
1231 "demo_id": "b8d6adc2-d8b7-41e4-8faf-63f246d910cd",
1232 "score_count": 31,
1233 "score_time": 9999,
1234 "date": "2023-09-03T19:12:05.958456Z"
1235 }
1236 ]
1237 },
1238 {
1239 "game_id": 2,
1240 "category_id": 12,
1241 "map_id": 72,
1242 "map_name": "Vertical Flings",
1243 "map_wr_count": 2,
1244 "placement": 1,
1245 "scores": [
1246 {
1247 "record_id": 14,
1248 "demo_id": "b8d6adc2-d8b7-41e4-8faf-63f246d910cd",
1249 "score_count": 31,
1250 "score_time": 9999,
1251 "date": "2023-09-03T19:12:05.958456Z"
1252 }
1253 ]
1254 },
1255 {
1256 "game_id": 2,
1257 "category_id": 12,
1258 "map_id": 73,
1259 "map_name": "Catapults",
1260 "map_wr_count": 4,
1261 "placement": 1,
1262 "scores": [
1263 {
1264 "record_id": 15,
1265 "demo_id": "b8d6adc2-d8b7-41e4-8faf-63f246d910cd",
1266 "score_count": 31,
1267 "score_time": 9999,
1268 "date": "2023-09-03T19:12:05.958456Z"
1269 }
1270 ]
1271 },
1272 {
1273 "game_id": 2,
1274 "category_id": 12,
1275 "map_id": 74,
1276 "map_name": "Multifling",
1277 "map_wr_count": 2,
1278 "placement": 1,
1279 "scores": [
1280 {
1281 "record_id": 16,
1282 "demo_id": "b8d6adc2-d8b7-41e4-8faf-63f246d910cd",
1283 "score_count": 31,
1284 "score_time": 9999,
1285 "date": "2023-09-03T19:12:05.958456Z"
1286 }
1287 ]
1288 },
1289 {
1290 "game_id": 2,
1291 "category_id": 12,
1292 "map_id": 75,
1293 "map_name": "Fling Crushers",
1294 "map_wr_count": 0,
1295 "placement": 1,
1296 "scores": [
1297 {
1298 "record_id": 17,
1299 "demo_id": "b8d6adc2-d8b7-41e4-8faf-63f246d910cd",
1300 "score_count": 31,
1301 "score_time": 9999,
1302 "date": "2023-09-03T19:12:05.958456Z"
1303 }
1304 ]
1305 },
1306 {
1307 "game_id": 2,
1308 "category_id": 12,
1309 "map_id": 76,
1310 "map_name": "Industrial Fan",
1311 "map_wr_count": 0,
1312 "placement": 1,
1313 "scores": [
1314 {
1315 "record_id": 18,
1316 "demo_id": "b8d6adc2-d8b7-41e4-8faf-63f246d910cd",
1317 "score_count": 31,
1318 "score_time": 9999,
1319 "date": "2023-09-03T19:12:05.958456Z"
1320 }
1321 ]
1322 },
1323 {
1324 "game_id": 2,
1325 "category_id": 13,
1326 "map_id": 77,
1327 "map_name": "Cooperative Bridges",
1328 "map_wr_count": 3,
1329 "placement": 1,
1330 "scores": [
1331 {
1332 "record_id": 19,
1333 "demo_id": "b8d6adc2-d8b7-41e4-8faf-63f246d910cd",
1334 "score_count": 31,
1335 "score_time": 9999,
1336 "date": "2023-09-03T19:12:05.958456Z"
1337 }
1338 ]
1339 },
1340 {
1341 "game_id": 2,
1342 "category_id": 13,
1343 "map_id": 78,
1344 "map_name": "Bridge Swap",
1345 "map_wr_count": 2,
1346 "placement": 1,
1347 "scores": [
1348 {
1349 "record_id": 20,
1350 "demo_id": "b8d6adc2-d8b7-41e4-8faf-63f246d910cd",
1351 "score_count": 31,
1352 "score_time": 9999,
1353 "date": "2023-09-03T19:12:05.958456Z"
1354 }
1355 ]
1356 },
1357 {
1358 "game_id": 2,
1359 "category_id": 13,
1360 "map_id": 79,
1361 "map_name": "Fling Block",
1362 "map_wr_count": 0,
1363 "placement": 1,
1364 "scores": [
1365 {
1366 "record_id": 4,
1367 "demo_id": "b8d6adc2-d8b7-41e4-8faf-63f246d910cd",
1368 "score_count": 0,
1369 "score_time": 43368,
1370 "date": "2023-08-30T13:16:56.91335Z"
1371 },
1372 {
1373 "record_id": 21,
1374 "demo_id": "b8d6adc2-d8b7-41e4-8faf-63f246d910cd",
1375 "score_count": 31,
1376 "score_time": 9999,
1377 "date": "2023-09-03T19:12:05.958456Z"
1378 }
1379 ]
1380 },
1381 {
1382 "game_id": 2,
1383 "category_id": 13,
1384 "map_id": 80,
1385 "map_name": "Catapult Block",
1386 "map_wr_count": 4,
1387 "placement": 2,
1388 "scores": [
1389 {
1390 "record_id": 22,
1391 "demo_id": "b8d6adc2-d8b7-41e4-8faf-63f246d910cd",
1392 "score_count": 31,
1393 "score_time": 9999,
1394 "date": "2023-09-03T19:12:05.958456Z"
1395 }
1396 ]
1397 },
1398 {
1399 "game_id": 2,
1400 "category_id": 13,
1401 "map_id": 81,
1402 "map_name": "Bridge Fling",
1403 "map_wr_count": 2,
1404 "placement": 1,
1405 "scores": [
1406 {
1407 "record_id": 23,
1408 "demo_id": "b8d6adc2-d8b7-41e4-8faf-63f246d910cd",
1409 "score_count": 31,
1410 "score_time": 9999,
1411 "date": "2023-09-03T19:12:05.958456Z"
1412 }
1413 ]
1414 },
1415 {
1416 "game_id": 2,
1417 "category_id": 13,
1418 "map_id": 82,
1419 "map_name": "Turret Walls",
1420 "map_wr_count": 4,
1421 "placement": 1,
1422 "scores": [
1423 {
1424 "record_id": 24,
1425 "demo_id": "b8d6adc2-d8b7-41e4-8faf-63f246d910cd",
1426 "score_count": 31,
1427 "score_time": 9999,
1428 "date": "2023-09-03T19:12:05.958456Z"
1429 }
1430 ]
1431 },
1432 {
1433 "game_id": 2,
1434 "category_id": 13,
1435 "map_id": 83,
1436 "map_name": "Turret Assasin",
1437 "map_wr_count": 0,
1438 "placement": 1,
1439 "scores": [
1440 {
1441 "record_id": 25,
1442 "demo_id": "b8d6adc2-d8b7-41e4-8faf-63f246d910cd",
1443 "score_count": 31,
1444 "score_time": 9999,
1445 "date": "2023-09-03T19:12:05.958456Z"
1446 }
1447 ]
1448 },
1449 {
1450 "game_id": 2,
1451 "category_id": 13,
1452 "map_id": 84,
1453 "map_name": "Bridge Testing",
1454 "map_wr_count": 0,
1455 "placement": 1,
1456 "scores": [
1457 {
1458 "record_id": 26,
1459 "demo_id": "b8d6adc2-d8b7-41e4-8faf-63f246d910cd",
1460 "score_count": 31,
1461 "score_time": 9999,
1462 "date": "2023-09-03T19:12:05.958456Z"
1463 }
1464 ]
1465 },
1466 {
1467 "game_id": 2,
1468 "category_id": 14,
1469 "map_id": 85,
1470 "map_name": "Cooperative Funnels",
1471 "map_wr_count": 0,
1472 "placement": 1,
1473 "scores": [
1474 {
1475 "record_id": 27,
1476 "demo_id": "b8d6adc2-d8b7-41e4-8faf-63f246d910cd",
1477 "score_count": 31,
1478 "score_time": 9999,
1479 "date": "2023-09-03T19:12:05.958456Z"
1480 }
1481 ]
1482 },
1483 {
1484 "game_id": 2,
1485 "category_id": 14,
1486 "map_id": 86,
1487 "map_name": "Funnel Drill",
1488 "map_wr_count": 0,
1489 "placement": 1,
1490 "scores": [
1491 {
1492 "record_id": 28,
1493 "demo_id": "b8d6adc2-d8b7-41e4-8faf-63f246d910cd",
1494 "score_count": 31,
1495 "score_time": 9999,
1496 "date": "2023-09-03T19:12:05.958456Z"
1497 }
1498 ]
1499 },
1500 {
1501 "game_id": 2,
1502 "category_id": 14,
1503 "map_id": 87,
1504 "map_name": "Funnel Catch",
1505 "map_wr_count": 0,
1506 "placement": 1,
1507 "scores": [
1508 {
1509 "record_id": 29,
1510 "demo_id": "b8d6adc2-d8b7-41e4-8faf-63f246d910cd",
1511 "score_count": 31,
1512 "score_time": 9999,
1513 "date": "2023-09-03T19:12:05.958456Z"
1514 }
1515 ]
1516 },
1517 {
1518 "game_id": 2,
1519 "category_id": 14,
1520 "map_id": 88,
1521 "map_name": "Funnel Laser",
1522 "map_wr_count": 0,
1523 "placement": 1,
1524 "scores": [
1525 {
1526 "record_id": 30,
1527 "demo_id": "b8d6adc2-d8b7-41e4-8faf-63f246d910cd",
1528 "score_count": 31,
1529 "score_time": 9999,
1530 "date": "2023-09-03T19:12:05.958456Z"
1531 }
1532 ]
1533 },
1534 {
1535 "game_id": 2,
1536 "category_id": 14,
1537 "map_id": 89,
1538 "map_name": "Cooperative Polarity",
1539 "map_wr_count": 0,
1540 "placement": 1,
1541 "scores": [
1542 {
1543 "record_id": 31,
1544 "demo_id": "b8d6adc2-d8b7-41e4-8faf-63f246d910cd",
1545 "score_count": 31,
1546 "score_time": 9999,
1547 "date": "2023-09-03T19:12:05.958456Z"
1548 }
1549 ]
1550 },
1551 {
1552 "game_id": 2,
1553 "category_id": 14,
1554 "map_id": 90,
1555 "map_name": "Funnel Hop",
1556 "map_wr_count": 0,
1557 "placement": 1,
1558 "scores": [
1559 {
1560 "record_id": 32,
1561 "demo_id": "b8d6adc2-d8b7-41e4-8faf-63f246d910cd",
1562 "score_count": 31,
1563 "score_time": 9999,
1564 "date": "2023-09-03T19:12:05.958456Z"
1565 }
1566 ]
1567 },
1568 {
1569 "game_id": 2,
1570 "category_id": 14,
1571 "map_id": 91,
1572 "map_name": "Advanced Polarity",
1573 "map_wr_count": 0,
1574 "placement": 1,
1575 "scores": [
1576 {
1577 "record_id": 33,
1578 "demo_id": "b8d6adc2-d8b7-41e4-8faf-63f246d910cd",
1579 "score_count": 31,
1580 "score_time": 9999,
1581 "date": "2023-09-03T19:12:05.958456Z"
1582 }
1583 ]
1584 },
1585 {
1586 "game_id": 2,
1587 "category_id": 14,
1588 "map_id": 92,
1589 "map_name": "Funnel Maze",
1590 "map_wr_count": 0,
1591 "placement": 1,
1592 "scores": [
1593 {
1594 "record_id": 34,
1595 "demo_id": "b8d6adc2-d8b7-41e4-8faf-63f246d910cd",
1596 "score_count": 31,
1597 "score_time": 9999,
1598 "date": "2023-09-03T19:12:05.958456Z"
1599 }
1600 ]
1601 },
1602 {
1603 "game_id": 2,
1604 "category_id": 14,
1605 "map_id": 93,
1606 "map_name": "Turret Warehouse",
1607 "map_wr_count": 0,
1608 "placement": 1,
1609 "scores": [
1610 {
1611 "record_id": 35,
1612 "demo_id": "b8d6adc2-d8b7-41e4-8faf-63f246d910cd",
1613 "score_count": 31,
1614 "score_time": 9999,
1615 "date": "2023-09-03T19:12:05.958456Z"
1616 }
1617 ]
1618 },
1619 {
1620 "game_id": 2,
1621 "category_id": 15,
1622 "map_id": 94,
1623 "map_name": "Repulsion Jumps",
1624 "map_wr_count": 0,
1625 "placement": 1,
1626 "scores": [
1627 {
1628 "record_id": 36,
1629 "demo_id": "b8d6adc2-d8b7-41e4-8faf-63f246d910cd",
1630 "score_count": 31,
1631 "score_time": 9999,
1632 "date": "2023-09-03T19:12:05.958456Z"
1633 }
1634 ]
1635 },
1636 {
1637 "game_id": 2,
1638 "category_id": 15,
1639 "map_id": 95,
1640 "map_name": "Double Bounce",
1641 "map_wr_count": 0,
1642 "placement": 1,
1643 "scores": [
1644 {
1645 "record_id": 37,
1646 "demo_id": "b8d6adc2-d8b7-41e4-8faf-63f246d910cd",
1647 "score_count": 31,
1648 "score_time": 9999,
1649 "date": "2023-09-03T19:12:05.958456Z"
1650 }
1651 ]
1652 },
1653 {
1654 "game_id": 2,
1655 "category_id": 15,
1656 "map_id": 96,
1657 "map_name": "Bridge Repulsion",
1658 "map_wr_count": 2,
1659 "placement": 1,
1660 "scores": [
1661 {
1662 "record_id": 38,
1663 "demo_id": "b8d6adc2-d8b7-41e4-8faf-63f246d910cd",
1664 "score_count": 31,
1665 "score_time": 9999,
1666 "date": "2023-09-03T19:12:05.958456Z"
1667 }
1668 ]
1669 },
1670 {
1671 "game_id": 2,
1672 "category_id": 15,
1673 "map_id": 97,
1674 "map_name": "Wall Repulsion",
1675 "map_wr_count": 2,
1676 "placement": 1,
1677 "scores": [
1678 {
1679 "record_id": 39,
1680 "demo_id": "b8d6adc2-d8b7-41e4-8faf-63f246d910cd",
1681 "score_count": 31,
1682 "score_time": 9999,
1683 "date": "2023-09-03T19:12:05.958456Z"
1684 }
1685 ]
1686 },
1687 {
1688 "game_id": 2,
1689 "category_id": 15,
1690 "map_id": 98,
1691 "map_name": "Propulsion Crushers",
1692 "map_wr_count": 0,
1693 "placement": 1,
1694 "scores": [
1695 {
1696 "record_id": 40,
1697 "demo_id": "b8d6adc2-d8b7-41e4-8faf-63f246d910cd",
1698 "score_count": 31,
1699 "score_time": 9999,
1700 "date": "2023-09-03T19:12:05.958456Z"
1701 }
1702 ]
1703 },
1704 {
1705 "game_id": 2,
1706 "category_id": 15,
1707 "map_id": 99,
1708 "map_name": "Turret Ninja",
1709 "map_wr_count": 0,
1710 "placement": 1,
1711 "scores": [
1712 {
1713 "record_id": 41,
1714 "demo_id": "b8d6adc2-d8b7-41e4-8faf-63f246d910cd",
1715 "score_count": 31,
1716 "score_time": 9999,
1717 "date": "2023-09-03T19:12:05.958456Z"
1718 }
1719 ]
1720 },
1721 {
1722 "game_id": 2,
1723 "category_id": 15,
1724 "map_id": 100,
1725 "map_name": "Propulsion Retrieval",
1726 "map_wr_count": 0,
1727 "placement": 1,
1728 "scores": [
1729 {
1730 "record_id": 42,
1731 "demo_id": "b8d6adc2-d8b7-41e4-8faf-63f246d910cd",
1732 "score_count": 31,
1733 "score_time": 9999,
1734 "date": "2023-09-03T19:12:05.958456Z"
1735 }
1736 ]
1737 },
1738 {
1739 "game_id": 2,
1740 "category_id": 15,
1741 "map_id": 101,
1742 "map_name": "Vault Entrance",
1743 "map_wr_count": 0,
1744 "placement": 1,
1745 "scores": [
1746 {
1747 "record_id": 43,
1748 "demo_id": "b8d6adc2-d8b7-41e4-8faf-63f246d910cd",
1749 "score_count": 31,
1750 "score_time": 9999,
1751 "date": "2023-09-03T19:12:05.958456Z"
1752 }
1753 ]
1754 },
1755 {
1756 "game_id": 2,
1757 "category_id": 16,
1758 "map_id": 102,
1759 "map_name": "Separation",
1760 "map_wr_count": 0,
1761 "placement": 1,
1762 "scores": [
1763 {
1764 "record_id": 44,
1765 "demo_id": "b8d6adc2-d8b7-41e4-8faf-63f246d910cd",
1766 "score_count": 31,
1767 "score_time": 9999,
1768 "date": "2023-09-03T19:12:05.958456Z"
1769 }
1770 ]
1771 },
1772 {
1773 "game_id": 2,
1774 "category_id": 16,
1775 "map_id": 103,
1776 "map_name": "Triple Axis",
1777 "map_wr_count": 0,
1778 "placement": 1,
1779 "scores": [
1780 {
1781 "record_id": 45,
1782 "demo_id": "b8d6adc2-d8b7-41e4-8faf-63f246d910cd",
1783 "score_count": 31,
1784 "score_time": 9999,
1785 "date": "2023-09-03T19:12:05.958456Z"
1786 }
1787 ]
1788 },
1789 {
1790 "game_id": 2,
1791 "category_id": 16,
1792 "map_id": 104,
1793 "map_name": "Catapult Catch",
1794 "map_wr_count": 0,
1795 "placement": 1,
1796 "scores": [
1797 {
1798 "record_id": 46,
1799 "demo_id": "b8d6adc2-d8b7-41e4-8faf-63f246d910cd",
1800 "score_count": 31,
1801 "score_time": 9999,
1802 "date": "2023-09-03T19:12:05.958456Z"
1803 }
1804 ]
1805 },
1806 {
1807 "game_id": 2,
1808 "category_id": 16,
1809 "map_id": 105,
1810 "map_name": "Bridge Gels",
1811 "map_wr_count": 2,
1812 "placement": 1,
1813 "scores": [
1814 {
1815 "record_id": 47,
1816 "demo_id": "b8d6adc2-d8b7-41e4-8faf-63f246d910cd",
1817 "score_count": 31,
1818 "score_time": 9999,
1819 "date": "2023-09-03T19:12:05.958456Z"
1820 }
1821 ]
1822 },
1823 {
1824 "game_id": 2,
1825 "category_id": 16,
1826 "map_id": 106,
1827 "map_name": "Maintenance",
1828 "map_wr_count": 0,
1829 "placement": 1,
1830 "scores": [
1831 {
1832 "record_id": 48,
1833 "demo_id": "b8d6adc2-d8b7-41e4-8faf-63f246d910cd",
1834 "score_count": 31,
1835 "score_time": 9999,
1836 "date": "2023-09-03T19:12:05.958456Z"
1837 }
1838 ]
1839 },
1840 {
1841 "game_id": 2,
1842 "category_id": 16,
1843 "map_id": 107,
1844 "map_name": "Bridge Catch",
1845 "map_wr_count": 0,
1846 "placement": 1,
1847 "scores": [
1848 {
1849 "record_id": 49,
1850 "demo_id": "b8d6adc2-d8b7-41e4-8faf-63f246d910cd",
1851 "score_count": 31,
1852 "score_time": 9999,
1853 "date": "2023-09-03T19:12:05.958456Z"
1854 }
1855 ]
1856 },
1857 {
1858 "game_id": 2,
1859 "category_id": 16,
1860 "map_id": 108,
1861 "map_name": "Double Lift",
1862 "map_wr_count": 0,
1863 "placement": 1,
1864 "scores": [
1865 {
1866 "record_id": 50,
1867 "demo_id": "b8d6adc2-d8b7-41e4-8faf-63f246d910cd",
1868 "score_count": 31,
1869 "score_time": 9999,
1870 "date": "2023-09-03T19:12:05.958456Z"
1871 }
1872 ]
1873 },
1874 {
1875 "game_id": 2,
1876 "category_id": 16,
1877 "map_id": 109,
1878 "map_name": "Gel Maze",
1879 "map_wr_count": 0,
1880 "placement": 1,
1881 "scores": [
1882 {
1883 "record_id": 51,
1884 "demo_id": "b8d6adc2-d8b7-41e4-8faf-63f246d910cd",
1885 "score_count": 31,
1886 "score_time": 9999,
1887 "date": "2023-09-03T19:12:05.958456Z"
1888 }
1889 ]
1890 },
1891 {
1892 "game_id": 2,
1893 "category_id": 16,
1894 "map_id": 110,
1895 "map_name": "Crazier Box",
1896 "map_wr_count": 0,
1897 "placement": 1,
1898 "scores": [
1899 {
1900 "record_id": 52,
1901 "demo_id": "b8d6adc2-d8b7-41e4-8faf-63f246d910cd",
1902 "score_count": 31,
1903 "score_time": 9999,
1904 "date": "2023-09-03T19:12:05.958456Z"
1905 }
1906 ]
1907 }
1908 ],
1909 "pagination": {
1910 "total_records": 0,
1911 "total_pages": 0,
1912 "current_page": 0,
1913 "page_size": 0
1914 }
1915
1916 }
1917
1918 )
1919 }}>
1920 <img src={UserIcon} alt="" />
1921 <span>
1922 <img src={LoginIcon} alt="Sign in through Steam" />
1923 </span>
1924 </button>
1925 </Link>
1926 )}
1927 </>
1928 );
1929};
1930
1931export default Login;
diff --git a/frontend/src/components/ModMenu.tsx b/frontend/src/components/ModMenu.tsx
new file mode 100644
index 0000000..1fe4239
--- /dev/null
+++ b/frontend/src/components/ModMenu.tsx
@@ -0,0 +1,324 @@
1import React from 'react';
2import ReactMarkdown from 'react-markdown';
3
4import { MapSummary } from '../types/Map';
5import { ModMenuContent } from '../types/Content';
6import { API } from '../api/Api';
7import "../css/ModMenu.css"
8
9interface ModMenuProps {
10 data: MapSummary;
11 selectedRun: number;
12 mapID: string;
13}
14
15const ModMenu: React.FC<ModMenuProps> = ({ data, selectedRun, mapID }) => {
16
17 const [menu, setMenu] = React.useState<number>(0);
18 const [showButton, setShowButton] = React.useState(1)
19
20 const [routeContent, setRouteContent] = React.useState<ModMenuContent>({
21 id: 0,
22 name: "",
23 score: 0,
24 date: "",
25 showcase: "",
26 description: "No description available.",
27 category_id: 1,
28 });
29
30 const [image, setImage] = React.useState<string>("");
31 const [md, setMd] = React.useState<string>("");
32
33 function compressImage(file: File): Promise<string> {
34 const reader = new FileReader();
35 reader.readAsDataURL(file);
36 return new Promise(resolve => {
37 reader.onload = () => {
38 const img = new Image();
39 if (typeof reader.result === "string") {
40 img.src = reader.result;
41 img.onload = () => {
42 let { width, height } = img;
43 if (width > 550) {
44 height *= 550 / width;
45 width = 550;
46 }
47 if (height > 320) {
48 width *= 320 / height;
49 height = 320;
50 }
51 const canvas = document.createElement('canvas');
52 canvas.width = width;
53 canvas.height = height;
54 canvas.getContext('2d')!.drawImage(img, 0, 0, width, height);
55 resolve(canvas.toDataURL(file.type, 0.6));
56 };
57 }
58 };
59 });
60 };
61
62 const _edit_map_summary_image = async () => {
63 if (window.confirm("Are you sure you want to submit this to the database?")) {
64 await API.put_map_image(mapID, image);
65 }
66 };
67
68 const _edit_map_summary_route = async () => {
69 if (window.confirm("Are you sure you want to submit this to the database?")) {
70 await API.put_map_summary(mapID, routeContent);
71 }
72 };
73
74 const _create_map_summary_route = async () => {
75 if (window.confirm("Are you sure you want to submit this to the database?")) {
76 await API.post_map_summary(mapID, routeContent);
77 }
78 };
79
80 const _delete_map_summary_route = async () => {
81 if (window.confirm(`Are you sure you want to delete this run from the database?
82 ${data.summary.routes[selectedRun].category.name} ${data.summary.routes[selectedRun].history.score_count} portals ${data.summary.routes[selectedRun].history.runner_name}`)) {
83 await API.delete_map_summary(mapID, data.summary.routes[selectedRun].route_id);
84 }
85 };
86
87 React.useEffect(() => {
88 if (menu === 3) { // add route
89 setRouteContent({
90 id: 0,
91 name: "",
92 score: 0,
93 date: "",
94 showcase: "",
95 description: "No description available.",
96 category_id: 1,
97 });
98 setMd("No description available.");
99 }
100 if (menu === 2) { // edit route
101 setRouteContent({
102 id: data.summary.routes[selectedRun].route_id,
103 name: data.summary.routes[selectedRun].history.runner_name,
104 score: data.summary.routes[selectedRun].history.score_count,
105 date: data.summary.routes[selectedRun].history.date.split("T")[0],
106 showcase: data.summary.routes[selectedRun].showcase,
107 description: data.summary.routes[selectedRun].description,
108 category_id: data.summary.routes[selectedRun].category.id,
109 });
110 setMd(data.summary.routes[selectedRun].description);
111 }
112 }, [menu]);
113
114 React.useEffect(() => {
115 const modview = document.querySelector("div#modview") as HTMLElement
116 if (modview) {
117 showButton ? modview.style.transform = "translateY(-68%)"
118 : modview.style.transform = "translateY(0%)"
119 }
120
121 const modview_block = document.querySelector("#modview_block") as HTMLElement
122 if (modview_block) {
123 showButton === 1 ? modview_block.style.display = "none" : modview_block.style.display = "block"// eslint-disable-next-line
124 }
125 }, [showButton])
126
127 return (
128 <div id="modview_bdlock">
129
130 <div id='modview'>
131 <div>
132 <button onClick={() => setMenu(1)}>Edit Image</button>
133 <button onClick={() => setMenu(2)}>Edit Selected Route</button>
134 <button onClick={() => setMenu(3)}>Add New Route</button>
135 <button onClick={() => _delete_map_summary_route()}>Delete Selected Route</button>
136 </div>
137 <div>
138 {showButton ? (
139 <button onClick={() => setShowButton(0)}>Show</button>
140 ) : (
141 <button onClick={() => { setShowButton(1); setMenu(0) }}>Hide</button>
142 )}
143 </div>
144 </div>
145
146 <div id='modview-menu'>
147 { // Edit Image
148 menu === 1 && (
149 <div id='modview-menu-image'>
150 <div>
151 <span>Current Image:</span>
152 <img src={data.map.image} alt="missing" />
153 </div>
154
155 <div>
156 <span>New Image:
157 <input type="file" accept='image/*' onChange={e => {
158 if (e.target.files) {
159 compressImage(e.target.files[0])
160 .then(d => setImage(d))
161 }
162 }
163 } /></span>
164 {image ? (<button onClick={() => _edit_map_summary_image()}>upload</button>) : <span></span>}
165 <img src={image} alt="" id='modview-menu-image-file' />
166
167 </div>
168 </div>
169 )
170 }
171
172 { // Edit Route
173 menu === 2 && (
174 <div id='modview-menu-edit'>
175 <div id='modview-route-id'>
176 <span>Route ID:</span>
177 <input type="number" value={routeContent.id} disabled />
178 </div>
179 <div id='modview-route-name'>
180 <span>Runner Name:</span>
181 <input type="text" value={routeContent.name} onChange={(e) => {
182 setRouteContent({
183 ...routeContent,
184 name: e.target.value,
185 });
186 }} />
187 </div>
188 <div id='modview-route-score'>
189 <span>Score:</span>
190 <input type="number" value={routeContent.score} onChange={(e) => {
191 setRouteContent({
192 ...routeContent,
193 score: parseInt(e.target.value),
194 });
195 }} />
196 </div>
197 <div id='modview-route-date'>
198 <span>Date:</span>
199 <input type="date" value={routeContent.date} onChange={(e) => {
200 setRouteContent({
201 ...routeContent,
202 date: e.target.value,
203 });
204 }} />
205 </div>
206 <div id='modview-route-showcase'>
207 <span>Showcase Video:</span>
208 <input type="text" value={routeContent.showcase} onChange={(e) => {
209 setRouteContent({
210 ...routeContent,
211 showcase: e.target.value,
212 });
213 }} />
214 </div>
215 <div id='modview-route-description' style={{ height: "180px", gridColumn: "1 / span 5" }}>
216 <span>Description:</span>
217 <textarea value={routeContent.description} onChange={(e) => {
218 setRouteContent({
219 ...routeContent,
220 description: e.target.value,
221 });
222 setMd(routeContent.description);
223 }} />
224 </div>
225 <button style={{ gridColumn: "2 / span 3", height: "40px" }} onClick={_edit_map_summary_route}>Apply</button>
226
227 <div id='modview-md'>
228 <span>Markdown Preview</span>
229 <span><a href="https://commonmark.org/help/" rel="noreferrer" target='_blank'>Documentation</a></span>
230 <span><a href="https://remarkjs.github.io/react-markdown/" rel="noreferrer" target='_blank'>Demo</a></span>
231 <p>
232 <ReactMarkdown>{md}
233 </ReactMarkdown>
234 </p>
235 </div>
236 </div>
237 )
238 }
239
240 { // Add Route
241 menu === 3 && (
242 <div id='modview-menu-add'>
243 <div id='modview-route-category'>
244 <span>Category:</span>
245 <select onChange={(e) => {
246 setRouteContent({
247 ...routeContent,
248 category_id: parseInt(e.target.value),
249 });
250 }}>
251 <option value="1" key="1">CM</option>
252 <option value="2" key="2">No SLA</option>
253 {data.map.game_name === "Portal 2 - Cooperative" ? "" : (
254 <option value="3" key="3">Inbounds SLA</option>)}
255 <option value="4" key="4">Any%</option>
256 </select>
257 </div>
258 <div id='modview-route-name'>
259 <span>Runner Name:</span>
260 <input type="text" value={routeContent.name} onChange={(e) => {
261 setRouteContent({
262 ...routeContent,
263 name: e.target.value,
264 });
265 }} />
266 </div>
267 <div id='modview-route-score'>
268 <span>Score:</span>
269 <input type="number" value={routeContent.score} onChange={(e) => {
270 setRouteContent({
271 ...routeContent,
272 score: parseInt(e.target.value),
273 });
274 }} />
275 </div>
276 <div id='modview-route-date'>
277 <span>Date:</span>
278 <input type="date" value={routeContent.date} onChange={(e) => {
279 setRouteContent({
280 ...routeContent,
281 date: e.target.value,
282 });
283 }} />
284 </div>
285 <div id='modview-route-showcase'>
286 <span>Showcase Video:</span>
287 <input type="text" value={routeContent.showcase} onChange={(e) => {
288 setRouteContent({
289 ...routeContent,
290 showcase: e.target.value,
291 });
292 }} />
293 </div>
294 <div id='modview-route-description' style={{ height: "180px", gridColumn: "1 / span 5" }}>
295 <span>Description:</span>
296 <textarea value={routeContent.description} onChange={(e) => {
297 setRouteContent({
298 ...routeContent,
299 description: e.target.value,
300 });
301 setMd(routeContent.description);
302 }} />
303 </div>
304 <button style={{ gridColumn: "2 / span 3", height: "40px" }} onClick={_create_map_summary_route}>Apply</button>
305
306 <div id='modview-md'>
307 <span>Markdown preview</span>
308 <span><a href="https://commonmark.org/help/" rel="noreferrer" target='_blank'>documentation</a></span>
309 <span><a href="https://remarkjs.github.io/react-markdown/" rel="noreferrer" target='_blank'>demo</a></span>
310 <p>
311 <ReactMarkdown>{md}
312 </ReactMarkdown>
313 </p>
314 </div>
315 </div>
316 )
317 }
318 </div>
319
320 </div>
321 );
322};
323
324export default ModMenu;
diff --git a/frontend/src/components/Sidebar.tsx b/frontend/src/components/Sidebar.tsx
new file mode 100644
index 0000000..a8834b6
--- /dev/null
+++ b/frontend/src/components/Sidebar.tsx
@@ -0,0 +1,183 @@
1import React from 'react';
2import { Link, useLocation } from 'react-router-dom';
3
4import { BookIcon, FlagIcon, HelpIcon, HomeIcon, LogoIcon, NewsIcon, PortalIcon, SearchIcon, TableIcon } from '../images/Images';
5import Login from './Login';
6import { UserProfile } from '../types/Profile';
7import { Search } from '../types/Search';
8import { API } from '../api/Api';
9import "../css/Sidebar.css";
10
11interface SidebarProps {
12 setToken: React.Dispatch<React.SetStateAction<string | undefined>>;
13 profile?: UserProfile;
14 setProfile: React.Dispatch<React.SetStateAction<UserProfile | undefined>>;
15};
16
17const Sidebar: React.FC<SidebarProps> = ({ setToken, profile, setProfile }) => {
18
19 const [searchData, setSearchData] = React.useState<Search | undefined>(undefined);
20 const [isSidebarLocked, setIsSidebarLocked] = React.useState<boolean>(false);
21 const [isSidebarOpen, setSidebarOpen] = React.useState<boolean>(true);
22
23 const location = useLocation();
24 const path = location.pathname;
25
26 const handle_sidebar_click = (clicked_sidebar_idx: number) => {
27 const btn = document.querySelectorAll("button.sidebar-button");
28 if (isSidebarOpen) { setSidebarOpen(false); _handle_sidebar_hide() }
29 // clusterfuck
30 btn.forEach((e, i) => {
31 btn[i].classList.remove("sidebar-button-selected")
32 btn[i].classList.add("sidebar-button-deselected")
33 })
34 btn[clicked_sidebar_idx].classList.add("sidebar-button-selected")
35 btn[clicked_sidebar_idx].classList.remove("sidebar-button-deselected")
36 };
37
38 const _handle_sidebar_hide = () => {
39 var btn = document.querySelectorAll("button.sidebar-button") as NodeListOf<HTMLElement>
40 const span = document.querySelectorAll("button.sidebar-button>span") as NodeListOf<HTMLElement>
41 const side = document.querySelector("#sidebar-list") as HTMLElement;
42 const searchbar = document.querySelector("#searchbar") as HTMLInputElement;
43
44 if (isSidebarOpen) {
45 if (profile) {
46 const login = document.querySelectorAll(".login>button")[1] as HTMLElement;
47 login.style.opacity = "1"
48 }
49 setSidebarOpen(false);
50 side.style.width = "320px"
51 btn.forEach((e, i) => {
52 e.style.width = "310px"
53 e.style.padding = "0.4em 0 0 11px"
54 setTimeout(() => {
55 span[i].style.opacity = "1"
56 }, 100)
57 })
58 side.style.zIndex = "2"
59 } else {
60 if (profile) {
61 const login = document.querySelectorAll(".login>button")[1] as HTMLElement;
62 login.style.opacity = "0"
63 }
64 setSidebarOpen(true)
65 side.style.width = "40px";
66 searchbar.focus();
67 btn.forEach((e, i) => {
68 e.style.width = "40px"
69 e.style.padding = "0.4em 0 0 5px"
70 span[i].style.opacity = "0"
71 })
72 setTimeout(() => {
73 side.style.zIndex = "0"
74 }, 300);
75 }
76 };
77
78 const _handle_sidebar_lock = () => {
79 if (!isSidebarLocked) {
80 _handle_sidebar_hide()
81 setIsSidebarLocked(true);
82 setTimeout(() => setIsSidebarLocked(false), 300);
83 }
84 };
85
86 const _handle_search_change = async (q: string) => {
87 const searchResponse = await API.get_search(q);
88 setSearchData(searchResponse);
89 };
90
91 React.useEffect(() => {
92 if (path === "/") { handle_sidebar_click(1) }
93 else if (path.includes("news")) { handle_sidebar_click(2) }
94 else if (path.includes("games")) { handle_sidebar_click(3) }
95 else if (path.includes("leaderboards")) { handle_sidebar_click(4) }
96 else if (path.includes("scorelog")) { handle_sidebar_click(5) }
97 else if (path.includes("profile")) { handle_sidebar_click(6) }
98 else if (path.includes("rules")) { handle_sidebar_click(8) }
99 else if (path.includes("about")) { handle_sidebar_click(9) }
100 }, [path]);
101
102 return (
103 <div id='sidebar'>
104 <Link to="/" tabIndex={-1}>
105 <div id='logo'> {/* logo */}
106 <img src={LogoIcon} alt="" height={"80px"} />
107 <div id='logo-text'>
108 <span><b>PORTAL 2</b></span><br />
109 <span>Least Portals</span>
110 </div>
111 </div>
112 </Link>
113 <div id='sidebar-list'> {/* List */}
114 <div id='sidebar-toplist'> {/* Top */}
115
116 <button className='sidebar-button' onClick={() => _handle_sidebar_lock()}><img src={SearchIcon} alt="" /><span>Search</span></button>
117
118 <span></span>
119
120 <Link to="/" tabIndex={-1}>
121 <button className='sidebar-button'><img src={HomeIcon} alt="homepage" /><span>Home&nbsp;Page</span></button>
122 </Link>
123
124 <Link to="/news" tabIndex={-1}>
125 <button className='sidebar-button'><img src={NewsIcon} alt="news" /><span>News</span></button>
126 </Link>
127
128 <Link to="/games" tabIndex={-1}>
129 <button className='sidebar-button'><img src={PortalIcon} alt="games" /><span>Games</span></button>
130 </Link>
131
132 <Link to="/leaderboards" tabIndex={-1}>
133 <button className='sidebar-button'><img src={FlagIcon} alt="leaderboards" /><span>Leaderboards</span></button>
134 </Link>
135
136 <Link to="/scorelog" tabIndex={-1}>
137 <button className='sidebar-button'><img src={TableIcon} alt="scorelogs" /><span>Score&nbsp;Logs</span></button>
138 </Link>
139 </div>
140 <div id='sidebar-bottomlist'>
141 <span></span>
142
143 <Login setToken={setToken} profile={profile} setProfile={setProfile} />
144
145 <Link to="/rules" tabIndex={-1}>
146 <button className='sidebar-button'><img src={BookIcon} alt="leaderboardrules" /><span>Leaderboard&nbsp;Rules</span></button>
147 </Link>
148
149 <Link to="/about" tabIndex={-1}>
150 <button className='sidebar-button'><img src={HelpIcon} alt="aboutp2lp" /><span>About&nbsp;P2LP</span></button>
151 </Link>
152 </div>
153 </div>
154 <div>
155 <input type="text" id='searchbar' placeholder='Search for map or a player...' onChange={(e) => _handle_search_change(e.target.value)} />
156
157 <div id='search-data'>
158
159 {searchData?.maps.map((q, index) => (
160 <Link to={`/maps/${q.id}`} className='search-map' key={index}>
161 <span>{q.game}</span>
162 <span>{q.chapter}</span>
163 <span>{q.map}</span>
164 </Link>
165 ))}
166 {searchData?.players.map((q, index) =>
167 (
168 <Link to={
169 profile && q.steam_id === profile.steam_id ? `/profile` :
170 `/users/${q.steam_id}`
171 } className='search-player' key={index}>
172 <img src={q.avatar_link} alt='pfp'></img>
173 <span style={{ fontSize: `${36 - q.user_name.length * 0.8}px` }}>{q.user_name}</span>
174 </Link>
175 ))}
176
177 </div>
178 </div>
179 </div>
180 );
181};
182
183export default Sidebar;
diff --git a/frontend/src/components/Summary.tsx b/frontend/src/components/Summary.tsx
new file mode 100644
index 0000000..b8f0087
--- /dev/null
+++ b/frontend/src/components/Summary.tsx
@@ -0,0 +1,169 @@
1import React from 'react';
2import ReactMarkdown from 'react-markdown';
3
4import { MapSummary } from '../types/Map';
5import "../css/Maps.css"
6
7interface SummaryProps {
8 selectedRun: number
9 setSelectedRun: (x: number) => void;
10 data: MapSummary;
11}
12
13const Summary: React.FC<SummaryProps> = ({ selectedRun, setSelectedRun, data }) => {
14
15 const [selectedCategory, setSelectedCategory] = React.useState<number>(1);
16 const [historySelected, setHistorySelected] = React.useState<boolean>(false);
17
18 function _select_run(x: number, y: number) {
19 let r = document.querySelectorAll("button.record");
20 r.forEach(e => (e as HTMLElement).style.backgroundColor = "#2b2e46");
21 (r[x] as HTMLElement).style.backgroundColor = "#161723"
22
23
24 if (data && data.summary.routes.length !== 0 && data.summary.routes.length !== 0) {
25 if (y === 2) { x += data.summary.routes.filter(e => e.category.id < 2).length }
26 if (y === 3) { x += data.summary.routes.filter(e => e.category.id < 3).length }
27 if (y === 4) { x += data.summary.routes.filter(e => e.category.id < 4).length }
28 setSelectedRun(x);
29 }
30 }
31
32 function _get_youtube_id(url: string): string {
33 const urlArray = url.split(/(vi\/|v=|\/v\/|youtu\.be\/|\/embed\/)/);
34 return (urlArray[2] !== undefined) ? urlArray[2].split(/[^0-9a-z_]/i)[0] : urlArray[0];
35 };
36
37 function _category_change() {
38 const btn = document.querySelectorAll("#section3 #category span button");
39 btn.forEach((e) => { (e as HTMLElement).style.backgroundColor = "#2b2e46" });
40 (btn[selectedCategory - 1] as HTMLElement).style.backgroundColor = "#202232";
41 };
42
43 function _history_change() {
44 const btn = document.querySelectorAll("#section3 #history span button");
45 btn.forEach((e) => { (e as HTMLElement).style.backgroundColor = "#2b2e46" });
46 (historySelected ? btn[1] as HTMLElement : btn[0] as HTMLElement).style.backgroundColor = "#202232";
47 };
48
49 React.useEffect(() => {
50 _history_change();
51 }, [historySelected]);
52
53 React.useEffect(() => {
54 _category_change();
55 }, [selectedCategory]);
56
57 React.useEffect(() => {
58 _select_run(0, selectedCategory);
59 }, []);
60
61 return (
62 <>
63 <section id='section3' className='summary1'>
64 <div id='category'
65 style={data.map.image === "" ? { backgroundColor: "#202232" } : {}}>
66 <img src={data.map.image} alt="" id='category-image'></img>
67 <p><span className='portal-count'>{data.summary.routes.sort((a, b) => a.category.id - b.category.id)[selectedRun].history.score_count}</span>
68 {data.summary.routes.sort((a, b) => a.category.id - b.category.id)[selectedRun].history.score_count === 1 ? ` portal` : ` portals`}</p>
69 <span>
70 <button onClick={() => setSelectedCategory(1)}>CM</button>
71 <button onClick={() => setSelectedCategory(2)}>NoSLA</button>
72 {data.map.is_coop ? <button onClick={() => setSelectedCategory(3)}>SLA</button>
73 : <button onClick={() => setSelectedCategory(3)}>Inbounds SLA</button>}
74 <button onClick={() => setSelectedCategory(4)}>Any%</button>
75 </span>
76
77 </div>
78
79 <div id='history'>
80
81 <div style={{ display: historySelected ? "none" : "block" }}>
82 {data.summary.routes.filter(e => e.category.id === selectedCategory).length === 0 ? <h5>There are no records for this map.</h5> :
83 <>
84 <div className='record-top'>
85 <span>Date</span>
86 <span>Record</span>
87 <span>First completion</span>
88 </div>
89 <hr />
90 <div id='records'>
91
92 {data.summary.routes
93 .sort((a, b) => a.history.score_count - b.history.score_count)
94 .filter(e => e.category.id === selectedCategory)
95 .map((r, index) => (
96 <button className='record' key={index} onClick={() => {
97 _select_run(index, r.category.id);
98 }}>
99 <span>{new Date(r.history.date).toLocaleDateString(
100 "en-US", { month: 'long', day: 'numeric', year: 'numeric' }
101 )}</span>
102 <span>{r.history.score_count}</span>
103 <span>{r.history.runner_name}</span>
104 </button>
105 ))}
106 </div>
107 </>
108 }
109 </div>
110
111 <div style={{ display: historySelected ? "block" : "none" }}>
112 {data.summary.routes.filter(e => e.category.id === selectedCategory).length === 0 ? <h5>There are no records for this map.</h5> :
113 <div id='graph'>
114 {/* <div>{graph(1)}</div>
115 <div>{graph(2)}</div>
116 <div>{graph(3)}</div> */}
117 </div>
118 }
119 </div>
120 <span>
121 <button onClick={() => setHistorySelected(false)}>List</button>
122 <button onClick={() => setHistorySelected(true)}>Graph</button>
123 </span>
124 </div>
125
126
127 </section>
128 <section id='section4' className='summary1'>
129 <div id='difficulty'>
130 <span>Difficulty</span>
131 {data.summary.routes.sort((a, b) => a.category.id - b.category.id)[selectedRun].rating === 0 ? (<span>N/A</span>) : null}
132 {data.summary.routes.sort((a, b) => a.category.id - b.category.id)[selectedRun].rating === 1 ? (<span style={{ color: "lime" }}>Very easy</span>) : null}
133 {data.summary.routes.sort((a, b) => a.category.id - b.category.id)[selectedRun].rating === 2 ? (<span style={{ color: "green" }}>Easy</span>) : null}
134 {data.summary.routes.sort((a, b) => a.category.id - b.category.id)[selectedRun].rating === 3 ? (<span style={{ color: "yellow" }}>Medium</span>) : null}
135 {data.summary.routes.sort((a, b) => a.category.id - b.category.id)[selectedRun].rating === 4 ? (<span style={{ color: "orange" }}>Hard</span>) : null}
136 {data.summary.routes.sort((a, b) => a.category.id - b.category.id)[selectedRun].rating === 5 ? (<span style={{ color: "red" }}>Very hard</span>) : null}
137 <div>
138 {data.summary.routes.sort((a, b) => a.category.id - b.category.id)[selectedRun].rating === 1 ? (<div className='difficulty-rating' style={{ backgroundColor: "lime" }}></div>) : (<div className='difficulty-rating'></div>)}
139 {data.summary.routes.sort((a, b) => a.category.id - b.category.id)[selectedRun].rating === 2 ? (<div className='difficulty-rating' style={{ backgroundColor: "green" }}></div>) : (<div className='difficulty-rating'></div>)}
140 {data.summary.routes.sort((a, b) => a.category.id - b.category.id)[selectedRun].rating === 3 ? (<div className='difficulty-rating' style={{ backgroundColor: "yellow" }}></div>) : (<div className='difficulty-rating'></div>)}
141 {data.summary.routes.sort((a, b) => a.category.id - b.category.id)[selectedRun].rating === 4 ? (<div className='difficulty-rating' style={{ backgroundColor: "orange" }}></div>) : (<div className='difficulty-rating'></div>)}
142 {data.summary.routes.sort((a, b) => a.category.id - b.category.id)[selectedRun].rating === 5 ? (<div className='difficulty-rating' style={{ backgroundColor: "red" }}></div>) : (<div className='difficulty-rating'></div>)}
143 </div>
144 </div>
145 <div id='count'>
146 <span>Completion count</span>
147 <div>{selectedCategory === 1 ? data.summary.routes[selectedRun].completion_count : "N/A"}</div>
148 </div>
149 </section>
150
151 <section id='section5' className='summary1'>
152 <div id='description'>
153 {data.summary.routes.sort((a, b) => a.category.id - b.category.id)[selectedRun].showcase !== "" ?
154 <iframe title='Showcase video' src={"https://www.youtube.com/embed/" + _get_youtube_id(data.summary.routes[selectedRun].showcase)}> </iframe>
155 : ""}
156 <h3>Route description</h3>
157 <span id='description-text'>
158 <ReactMarkdown>
159 {data.summary.routes.sort((a, b) => a.category.id - b.category.id)[selectedRun].description}
160 </ReactMarkdown>
161 </span>
162 </div>
163 </section>
164
165 </>
166 );
167};
168
169export default Summary;
diff --git a/frontend/src/components/login.js b/frontend/src/components/login.js
deleted file mode 100644
index f86ad44..0000000
--- a/frontend/src/components/login.js
+++ /dev/null
@@ -1,61 +0,0 @@
1import React from 'react';
2import { Link } from "react-router-dom";
3
4import "./login.css";
5import img1 from "../imgs/login.png"
6import img2 from "../imgs/10.png"
7import img3 from "../imgs/11.png"
8
9
10export default function Login(prop) {
11const {setToken,profile,setProfile} = prop
12function login() {
13 window.location.href="https://lp.ardapektezol.com/api/v1/login"
14}
15function logout() {
16 setIsLoggedIn(false)
17 setProfile(null)
18 setToken(null)
19 fetch(`https://lp.ardapektezol.com/api/v1/token`,{'method':'DELETE'})
20 .then(r=>window.location.href="/")
21}
22const [isLoggedIn, setIsLoggedIn] = React.useState(false);
23React.useEffect(() => {
24 fetch(`https://lp.ardapektezol.com/api/v1/token`)
25 .then(r => r.json())
26 .then(d => {
27 if (d.data != null) {
28 setToken(d.data.token)
29 }
30 })
31 }, []);
32
33
34React.useEffect(() => {
35 if(profile!==null){setIsLoggedIn(true)}
36 }, [profile]);
37
38return (
39 <>
40 {isLoggedIn ? (
41 <Link to="/profile" tabIndex={-1} className='login'>
42 <button className='sidebar-button'>
43 <img src={profile.avatar_link} alt="" />
44 <span>{profile.user_name}</span>
45 </button>
46 <button className='sidebar-button' onClick={logout}><img src={img3} alt="" /><span></span></button>
47 </Link>
48 ) : (
49 <Link tabIndex={-1} className='login' >
50 <button className='sidebar-button' onClick={login}>
51 <img src={img2} alt="" />
52 <span><img src={img1} alt="Sign in through Steam" /></span>
53 </button>
54 <button className='sidebar-button' disabled><span></span></button>
55 </Link>
56 )}
57 </>
58 )
59}
60
61
diff --git a/frontend/src/components/main.css b/frontend/src/components/main.css
deleted file mode 100644
index 48e6379..0000000
--- a/frontend/src/components/main.css
+++ /dev/null
@@ -1,17 +0,0 @@
1
2main {
3 overflow: auto;
4 overflow-x: hidden;
5 position: relative;
6
7 width: calc(100% - 380px);
8 height: 100vh;
9 left: 350px;
10
11 padding-right: 30px;
12
13 font-size: 40px;
14 font-family: BarlowSemiCondensed-Regular;
15 color: #cdcfdf;
16
17}
diff --git a/frontend/src/components/main.js b/frontend/src/components/main.js
deleted file mode 100644
index b359105..0000000
--- a/frontend/src/components/main.js
+++ /dev/null
@@ -1,17 +0,0 @@
1import React from 'react';
2
3import "../App.css"
4import "./main.css";
5import { Link } from 'react-router-dom';
6
7export default function Main(props) {
8
9
10return (
11 <main>
12 <h1>{props.text}</h1>
13 </main>
14 )
15}
16
17
diff --git a/frontend/src/components/news.css b/frontend/src/components/news.css
deleted file mode 100644
index 102e9ba..0000000
--- a/frontend/src/components/news.css
+++ /dev/null
@@ -1,29 +0,0 @@
1.news-container {
2 background-color: #2A2D40;
3 border-radius: 24px;
4 font-size: 18px;
5 overflow: hidden;
6 margin-bottom: 10px;
7}
8
9.news-title {
10 padding: 20px;
11 font-family: BarlowSemiCondensed-SemiBold;
12 font-size: 22px;
13}
14
15.news-description-div {
16 margin: 0px 20px;
17 padding: 8px 0px;
18}
19
20.news-title-header {
21 background-color: #2B2E46;
22 padding: 10px 0px;
23}
24
25.news-container>span {
26 font-size: 18px;
27 font-family: BarlowSemiCondensed-Regular;
28 line-height: 0px;
29} \ No newline at end of file
diff --git a/frontend/src/components/news.js b/frontend/src/components/news.js
deleted file mode 100644
index 93e6be0..0000000
--- a/frontend/src/components/news.js
+++ /dev/null
@@ -1,21 +0,0 @@
1import React, { useEffect, useRef, useState } from 'react';
2import { useLocation, Link } from "react-router-dom";
3
4import "./news.css"
5
6export default function News({newsInfo}) {
7 // const { token } = prop
8 const [news, setNews] = React.useState(null);
9 const location = useLocation();
10
11 return (
12 <div className='news-container'>
13 <div className='news-title-header'>
14 <span className='news-title'>{newsInfo.title}</span>
15 </div>
16 <div className='news-description-div'>
17 <span className='description'>{newsInfo.short_description}</span>
18 </div>
19 </div>
20 )
21} \ No newline at end of file
diff --git a/frontend/src/components/pages/about.css b/frontend/src/components/pages/about.css
deleted file mode 100644
index 0dec300..0000000
--- a/frontend/src/components/pages/about.css
+++ /dev/null
@@ -1,17 +0,0 @@
1
2#about {
3 overflow: auto;
4 overflow-x: hidden;
5 position: relative;
6
7 width: calc(100% - 380px);
8 height: 100vh;
9 left: 350px;
10
11 padding-right: 30px;
12
13 font-size: 40px;
14 font-family: BarlowSemiCondensed-Regular;
15 color: #cdcfdf;
16
17}
diff --git a/frontend/src/components/pages/about.js b/frontend/src/components/pages/about.js
deleted file mode 100644
index 11b065d..0000000
--- a/frontend/src/components/pages/about.js
+++ /dev/null
@@ -1,32 +0,0 @@
1import React, { useState, useEffect } from 'react';
2import ReactMarkdown from 'react-markdown';
3
4import "./about.css";
5
6export default function About() {
7 const [aboutText, setAboutText] = useState('');
8
9 useEffect(() => {
10 const fetchReadme = async () => {
11 try {
12 const response = await fetch(
13 'https://raw.githubusercontent.com/pektezol/leastportalshub/main/README.md'
14 );
15 if (!response.ok) {
16 throw new Error('Failed to fetch README');
17 }
18 const readmeText = await response.text();
19 setAboutText(readmeText);
20 } catch (error) {
21 console.error('Error fetching README:', error);
22 }
23 };
24 fetchReadme();
25 }, []);
26
27 return (
28 <div id="about">
29 <ReactMarkdown>{aboutText}</ReactMarkdown>
30 </div>
31 );
32};
diff --git a/frontend/src/components/pages/game.js b/frontend/src/components/pages/game.js
deleted file mode 100644
index 301e035..0000000
--- a/frontend/src/components/pages/game.js
+++ /dev/null
@@ -1,46 +0,0 @@
1import React, { useEffect, useRef, useState } from 'react';
2import { useLocation, Link } from "react-router-dom";
3
4import "./games.css"
5
6export default function GameEntry({ gameInfo }) {
7 const [gameEntry, setGameEntry] = React.useState(null);
8 const location = useLocation();
9
10 const gameInfoCats = gameInfo.category_portals;
11
12 useEffect(() => {
13 gameInfoCats.forEach(catInfo => {
14 const itemBody = document.createElement("div");
15 const itemTitle = document.createElement("span");
16 const spacing = document.createElement("br");
17 const itemNum = document.createElement("span");
18
19 itemTitle.innerText = catInfo.category.name;
20 itemNum.innerText = catInfo.portal_count;
21 itemTitle.classList.add("games-page-item-body-item-title");
22 itemNum.classList.add("games-page-item-body-item-num");
23 itemBody.appendChild(itemTitle);
24 itemBody.appendChild(spacing);
25 itemBody.appendChild(itemNum);
26 itemBody.className = "games-page-item-body-item";
27
28 // itemBody.innerHTML = `
29 // <span className='games-page-item-body-item-title'>${catInfo.category.name}</span><br />
30 // <span className='games-page-item-body-item-num'>${catInfo.portal_count}</span>`
31
32 document.getElementById(`${gameInfo.id}`).appendChild(itemBody);
33 });
34 })
35
36 return (
37 <Link to={"/games/" + gameInfo.id}><div className='games-page-item'>
38 <div className='games-page-item-header'>
39 <div style={{backgroundImage: `url(${gameInfo.image})`}} className='games-page-item-header-img'></div>
40 <span><b>{gameInfo.name}</b></span>
41 </div>
42 <div id={gameInfo.id} className='games-page-item-body'>
43 </div>
44 </div></Link>
45 )
46}
diff --git a/frontend/src/components/pages/games.js b/frontend/src/components/pages/games.js
deleted file mode 100644
index 75b5e44..0000000
--- a/frontend/src/components/pages/games.js
+++ /dev/null
@@ -1,62 +0,0 @@
1import React, { useEffect, useState } from 'react';
2import { useLocation, Link } from "react-router-dom";
3
4import "./games.css"
5import GameEntry from './game';
6
7export default function Games(prop) {
8 const { token } = prop;
9 const [games, setGames] = useState([]);
10 const location = useLocation();
11
12 useEffect(() => {
13 document.querySelectorAll(".games-page-item-body").forEach((game, index) => {
14 game.innerHTML = "";
15 })
16
17 const fetchGames = async () => {
18 try {
19 const response = await fetch("https://lp.ardapektezol.com/api/v1/games", {
20 headers: {
21 'Authorization': token
22 }
23 });
24
25 const data = await response.json();
26 setGames(data.data);
27 pageLoad();
28 } catch (err) {
29 console.error("Error fetching games:", err);
30 }
31 };
32
33 fetchGames();
34
35 function pageLoad() {
36 const loaders = document.querySelectorAll(".loader");
37 loaders.forEach((loader) => {
38 loader.style.display = "none";
39 });
40 }
41 }, [token]);
42
43 return (
44 <div className='games-page'>
45 <section className='games-page-header'>
46 <span><b>Games list</b></span>
47 </section>
48
49 <section>
50 <div className='games-page-content'>
51 <div className='games-page-item-content'>
52 <div className='loader loader-game'></div>
53 <div className='loader loader-game'></div>
54 {games.map((game, index) => (
55 <GameEntry gameInfo={game} key={index} />
56 ))}
57 </div>
58 </div>
59 </section>
60 </div>
61 );
62}
diff --git a/frontend/src/components/pages/home.css b/frontend/src/components/pages/home.css
deleted file mode 100644
index e5a8eab..0000000
--- a/frontend/src/components/pages/home.css
+++ /dev/null
@@ -1,92 +0,0 @@
1* {
2 scrollbar-width: thin;
3}
4
5.homepage-panel {
6 background-color: #202232;
7 margin: 10px 10px;
8 padding: 10px;
9 border-radius: 24px;
10 overflow: hidden;
11 flex: 1 1 100%;
12 align-items: stretch;
13 width: 100%;
14}
15
16.homepage-panel-title-div {
17 background-color: #2B2E46;
18 width: fit-content;
19 padding: 5px 18px;
20 border-radius: 200px;
21 font-family: BarlowSemiCondensed-SemiBold;
22 font-size: 32px;
23 margin-bottom: 10px;
24}
25
26.stats-div {
27 background-color: #2B2E46;
28 border-radius: 24px;
29 text-align: center;
30 display: grid;
31 padding: 10px 0px;
32 width: 100%;
33}
34
35.stats-div span {
36 font-family: BarlowSemiCondensed-Regular;
37 font-size: 18px;
38}
39
40.stats-div span>b {
41 font-family: BarlowSemiCondensed-SemiBold;
42 font-size: 42px;
43}
44
45.record-title div {
46 --padding: 20px;
47 width: calc(100% - calc(var(--padding * 2)));
48 height: 32px;
49 border-radius: 200px;
50 font-size: 18px;
51 display: grid;
52 grid-template-columns: calc(20% - 3.6px) calc(25% - 4.5px) calc(15% - 2.7px) calc(15% - 2.7px) calc(25% - 4.5px);
53 text-align: center;
54 padding: 0px var(--padding);
55 vertical-align: middle;
56 align-items: center;
57 font-family: BarlowSemiCondensed-SemiBold;
58}
59
60.record-title::after {
61 content: "";
62 display: flex;
63 width: 100%;
64 height: 3px;
65 background-color: #2B2E46;
66 margin-bottom: 5px;
67}
68
69.recommended-map-img {
70 width: 250px;
71 border-radius: 19px;
72 margin-bottom: 0;
73 /* border: 7px solid #2B2E46; */
74 background-size: cover;
75 background-position-x: 50%;
76}
77
78.difficulty-bar-home {
79 width: 100%;
80 display: grid;
81 grid-template-columns: 20% 20% 20% 20% 20%;
82 align-items: center;
83 margin: 0px;
84 margin-top: 7px;
85}
86
87.difficulty-point {
88 background: #2B2E46;
89 height: 4px;
90 margin: 5px;
91 border-radius: 10px;
92}
diff --git a/frontend/src/components/pages/home.js b/frontend/src/components/pages/home.js
deleted file mode 100644
index 0a46bec..0000000
--- a/frontend/src/components/pages/home.js
+++ /dev/null
@@ -1,242 +0,0 @@
1import React, { useEffect, useState } from 'react';
2
3import "./home.css"
4import News from '../news';
5import Record from '../record';
6
7export default function Homepage({ token }) {
8 const [profile, setProfile] = useState(null);
9
10// useEffect(() => {
11
12// if (!token) {
13// return;
14// }
15
16// async function home() {
17
18// const profileResponse = await fetch(`https://lp.ardapektezol.com/api/v1/profile`, {
19// headers: {
20// Authorization: token
21// }
22// })
23
24// const profileData = await profileResponse.json();
25
26// setProfile(profileData);
27
28// const gamesResponse = await fetch("https://lp.ardapektezol.com/api/v1/games", {
29// headers: {
30// Authorization: token
31// }
32// });
33
34// const gamesData = await gamesResponse.json();
35
36// const recommendedMapImg = document.querySelector("#recommendedMapImg");
37
38// recommendedMapImg.style.backgroundImage = `url(${gamesData.data[0].image})`
39
40// const column1 = document.querySelector("#column1");
41// const column2 = document.querySelector("#column2");
42
43// column2.style.height = column1.clientHeight + "px";
44
45// const panels = document.querySelectorAll(".homepage-panel");
46// panels.forEach(e => {
47// // this is cuz react is silly
48// if (e.innerHTML.includes('<div class="homepage-panel-title-div">')) {
49// return
50// }
51// const title = e.getAttribute("title");
52
53// const titleDiv = document.createElement("div");
54// const titleSpan = document.createElement("span");
55
56// titleDiv.classList.add("homepage-panel-title-div")
57
58// titleSpan.innerText = title
59
60// titleDiv.appendChild(titleSpan)
61// e.insertBefore(titleDiv, e.firstChild)
62// });
63// }
64// try {
65// home();
66// } catch (e) {
67// console.log("error while setting up home page:", e);
68// }
69
70// }, [token]);
71
72const newsList = [
73 {
74 "title": "Portal Saved on Container Ride",
75 "short_description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus vehicula facilisis quam, non ultrices nisl aliquam at. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas."
76 },
77 {
78 "title": "Portal Saved on Container Ride",
79 "short_description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus vehicula facilisis quam, non ultrices nisl aliquam at. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas."
80 },
81 {
82 "title": "Portal Saved on Container Ride",
83 "short_description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus vehicula facilisis quam, non ultrices nisl aliquam at. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas."
84 },
85 {
86 "title": "Portal Saved on Container Ride",
87 "short_description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus vehicula facilisis quam, non ultrices nisl aliquam at. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas."
88 },
89 {
90 "title": "Portal Saved on Container Ride",
91 "short_description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus vehicula facilisis quam, non ultrices nisl aliquam at. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas."
92 },
93 {
94 "title": "Portal Saved on Container Ride",
95 "short_description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus vehicula facilisis quam, non ultrices nisl aliquam at. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas."
96 },
97 {
98 "title": "Portal Saved on Container Ride",
99 "short_description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus vehicula facilisis quam, non ultrices nisl aliquam at. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas."
100 },
101 {
102 "title": "Portal Saved on Container Ride",
103 "short_description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus vehicula facilisis quam, non ultrices nisl aliquam at. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas."
104 },
105 {
106 "title": "Portal Saved on Container Ride",
107 "short_description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus vehicula facilisis quam, non ultrices nisl aliquam at. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas."
108 },
109 {
110 "title": "Portal Saved on Container Ride",
111 "short_description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus vehicula facilisis quam, non ultrices nisl aliquam at. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas."
112 },
113 {
114 "title": "Portal Saved on Container Ride",
115 "short_description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus vehicula facilisis quam, non ultrices nisl aliquam at. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas."
116 },
117 {
118 "title": "Portal Saved on Container Ride",
119 "short_description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus vehicula facilisis quam, non ultrices nisl aliquam at. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas."
120 },
121 {
122 "title": "Portal Saved on Container Ride",
123 "short_description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus vehicula facilisis quam, non ultrices nisl aliquam at. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas."
124 },
125 {
126 "title": "Portal Saved on Container Ride",
127 "short_description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus vehicula facilisis quam, non ultrices nisl aliquam at. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas."
128 },
129]
130
131return (
132 <main>
133 <section style={{ userSelect: "none", display: "flex" }}>
134 <h1 style={{ marginTop: "53.6px", fontSize: "80px", marginBottom: "15px" }}>Home</h1>
135 {profile ?
136 <div style={{ textAlign: "right", width: "100%", marginTop: "20px" }}>
137 <span style={{ fontSize: "25px" }}>Welcome back,</span><br />
138
139 <span><b style={{ fontSize: "80px", transform: "translateY(-20px)", display: "block" }}>Wolfboy248</b></span>
140 </div>
141 : null}
142 </section>
143
144 <div style={{ display: "grid", gridTemplateColumns: "calc(50%) calc(50%)" }}>
145 <div id='column1' style={{ display: "flex", alignItems: "self-start", flexWrap: "wrap", alignContent: "start" }}>
146 {/* Column 1 */}
147 {profile ?
148 <section title="Your Profile" className='homepage-panel'>
149 <div style={{ display: "grid", gridTemplateColumns: "repeat(3, 1fr)", gap: "12px" }}>
150 <div className='stats-div'>
151 <span>Overall rank</span><br />
152 <span><b>{profile.rankings.overall.rank > 0 ? "#" + profile.rankings.overall.rank : "No rank"}</b></span>
153 </div>
154 <div className='stats-div'>
155 <span>Singleplayer</span><br />
156 <span style={{ fontSize: "22px" }}><b>{profile.rankings.singleplayer.rank > 0 ? "#" + profile.rankings.singleplayer.rank : "No rank"}</b>&nbsp;{profile.rankings.singleplayer.rank > 0 ? "(" + profile.rankings.singleplayer.completion_count + "/" + profile.rankings.singleplayer.completion_total + ")" : ""}</span>
157 </div>
158 <div className='stats-div'>
159 <span>Cooperative rank</span><br />
160 <span style={{ fontSize: "22px" }}><b>{profile.rankings.cooperative.rank > 0 ? "#" + profile.rankings.cooperative.rank : "No rank"}</b>&nbsp;{profile.rankings.cooperative.rank > 0 ? "(" + profile.rankings.cooperative.completion_count + "/" + profile.rankings.cooperative.completion_total + ")" : ""}</span>
161 </div>
162 </div>
163 </section>
164 : null}
165 {profile ?
166 <section title="What's Next?" className='homepage-panel'>
167 <div style={{ display: "flex" }}>
168 <div className='recommended-map-img' id="recommendedMapImg"></div>
169 <div style={{ marginLeft: "12px", display: "block", width: "100%" }}>
170 <span style={{ fontFamily: "BarlowSemiCondensed-SemiBold", fontSize: "32px", width: "100%", display: "block" }}>Container Ride</span>
171 <span style={{ fontSize: "20px", display: "block" }}>Your Record: 4 portals</span>
172 <span style={{ fontFamily: "BarlowSemiCondensed-SemiBold", fontSize: "36px", width: "100%", display: "block" }}>World Record: 2 portals</span>
173 <div className='difficulty-bar-home'>
174 <div className='difficulty-point' style={{ backgroundColor: "#51C355" }}></div>
175 <div className='difficulty-point'></div>
176 <div className='difficulty-point'></div>
177 <div className='difficulty-point'></div>
178 <div className='difficulty-point'></div>
179 </div>
180 </div>
181 </div>
182 </section>
183 : null}
184 <section title="Newest Records" className='homepage-panel' style={{ height: profile ? "250px" : "960px" }}>
185 <div className='record-title'>
186 <div>
187 <span>Place</span>
188 <span style={{ textAlign: "left" }}>Runner</span>
189 <span>Portals</span>
190 <span>Time</span>
191 <span>Date</span>
192 </div>
193 </div>
194 <div style={{ overflowY: "scroll", height: "calc(100% - 90px)", paddingRight: "10px" }}>
195 <Record name={"Krzyhau"} portals={"2"} date={new Date("2024-05-21T08:45:00")} place={"2"} time={"20.20"}></Record>
196 <Record name={"Krzyhau"} portals={"2"} date={new Date("2024-05-21T08:45:00")} place={"2"} time={"20.20"}></Record>
197 <Record name={"Krzyhau"} portals={"2"} date={new Date("2024-05-21T08:45:00")} place={"2"} time={"20.20"}></Record>
198 <Record name={"Krzyhau"} portals={"2"} date={new Date("2024-05-21T08:45:00")} place={"2"} time={"20.20"}></Record>
199 <Record name={"Krzyhau"} portals={"2"} date={new Date("2024-05-21T08:45:00")} place={"2"} time={"20.20"}></Record>
200 <Record name={"Krzyhau"} portals={"2"} date={new Date("2024-05-21T08:45:00")} place={"2"} time={"20.20"}></Record>
201 <Record name={"Krzyhau"} portals={"2"} date={new Date("2024-05-21T08:45:00")} place={"2"} time={"20.20"}></Record>
202 <Record name={"Krzyhau"} portals={"2"} date={new Date("2024-05-21T08:45:00")} place={"2"} time={"20.20"}></Record>
203 <Record name={"Krzyhau"} portals={"2"} date={new Date("2024-05-21T08:45:00")} place={"2"} time={"20.20"}></Record>
204 <Record name={"Krzyhau"} portals={"2"} date={new Date("2024-05-21T08:45:00")} place={"2"} time={"20.20"}></Record>
205 <Record name={"Krzyhau"} portals={"2"} date={new Date("2024-05-21T08:45:00")} place={"2"} time={"20.20"}></Record>
206 <Record name={"Krzyhau"} portals={"2"} date={new Date("2024-05-21T08:45:00")} place={"2"} time={"20.20"}></Record>
207 <Record name={"Krzyhau"} portals={"2"} date={new Date("2024-05-21T08:45:00")} place={"2"} time={"20.20"}></Record>
208 <Record name={"Krzyhau"} portals={"2"} date={new Date("2024-05-21T08:45:00")} place={"2"} time={"20.20"}></Record>
209 <Record name={"Krzyhau"} portals={"2"} date={new Date("2024-05-21T08:45:00")} place={"2"} time={"20.20"}></Record>
210 <Record name={"Krzyhau"} portals={"2"} date={new Date("2024-05-21T08:45:00")} place={"2"} time={"20.20"}></Record>
211 <Record name={"Krzyhau"} portals={"2"} date={new Date("2024-05-21T08:45:00")} place={"2"} time={"20.20"}></Record>
212 <Record name={"Krzyhau"} portals={"2"} date={new Date("2024-05-21T08:45:00")} place={"2"} time={"20.20"}></Record>
213 <Record name={"Krzyhau"} portals={"2"} date={new Date("2024-05-21T08:45:00")} place={"2"} time={"20.20"}></Record>
214 <Record name={"Krzyhau"} portals={"2"} date={new Date("2024-05-21T08:45:00")} place={"2"} time={"20.20"}></Record>
215 <Record name={"Krzyhau"} portals={"2"} date={new Date("2024-05-21T08:45:00")} place={"2"} time={"20.20"}></Record>
216 <Record name={"Krzyhau"} portals={"2"} date={new Date("2024-05-21T08:45:00")} place={"2"} time={"20.20"}></Record>
217 <Record name={"Krzyhau"} portals={"2"} date={new Date("2024-05-21T08:45:00")} place={"2"} time={"20.20"}></Record>
218 <Record name={"Krzyhau"} portals={"2"} date={new Date("2024-05-21T08:45:00")} place={"2"} time={"20.20"}></Record>
219 <Record name={"Krzyhau"} portals={"2"} date={new Date("2024-05-21T08:45:00")} place={"2"} time={"20.20"}></Record>
220 <Record name={"Krzyhau"} portals={"2"} date={new Date("2024-05-21T08:45:00")} place={"2"} time={"20.20"}></Record>
221 <Record name={"Krzyhau"} portals={"2"} date={new Date("2024-05-21T08:45:00")} place={"2"} time={"20.20"}></Record>
222 <Record name={"Krzyhau"} portals={"2"} date={new Date("2024-05-21T08:45:00")} place={"2"} time={"20.20"}></Record>
223 </div>
224 </section>
225 </div>
226 {/* Column 2 */}
227 <div id='column2' style={{ display: "flex", alignItems: "stretch", height: "1000px" }}>
228 <section title="News" className='homepage-panel'>
229 <div id='newsContent' style={{ display: "block", width: "100%", overflowY: "scroll", height: "calc(100% - 50px)" }}>
230 {newsList.map((newsList, index) => (
231 <News newsInfo={newsList} key={index}></News>
232 ))}
233 </div>
234 </section>
235 </div>
236 </div>
237
238
239
240 </main>
241)
242} \ No newline at end of file
diff --git a/frontend/src/components/pages/maplist.css b/frontend/src/components/pages/maplist.css
deleted file mode 100644
index b56aacc..0000000
--- a/frontend/src/components/pages/maplist.css
+++ /dev/null
@@ -1,403 +0,0 @@
1.maplist-page {
2 position: relative;
3 left: 350px;
4 height: 100vh;
5 color: #cdcfdf;
6 width: calc(100% - 380px);
7 font-family: BarlowSemiCondensed-Regular;
8 overflow-y: scroll;
9 overflow-x: hidden;
10 padding-right: 30px;
11}
12
13a {
14 color: inherit;
15 width: fit-content;
16}
17
18.maplist-page-content {
19 position: absolute;
20 left: 0px;
21 width: calc(100% - 50px);
22}
23
24.maplist-page-header {
25 margin-top: 33px;
26 display: grid;
27 margin-bottom: 10px;
28}
29
30.nav-btn {
31 height: 40px;
32 background-color: #2b2e46;
33 color: inherit;
34 font-size: 18px;
35 font-family: inherit;
36 border: none;
37 border-radius: 20px;
38 transition: background-color .1s;
39 cursor: default;
40 width: fit-content;
41}
42
43.nav-btn>span {
44 padding: 0 8px 0 8px;
45}
46
47.nav-btn:hover {
48 background-color: #202232;
49 cursor: pointer;
50}
51
52.game {
53 width: 100%;
54 height: 192px;
55 /* background: #202232; */
56 border-radius: 24px;
57 overflow: hidden;
58}
59
60.game-header {
61 width: 100%;
62 height: 144px;
63 display: flex;
64 justify-content: center;
65 align-items: center;
66 overflow: hidden;
67}
68
69.game-header-text {
70 display: flex;
71 justify-content: center;
72 align-items: center;
73 position: absolute;
74}
75
76.game-img {
77 width: 100%;
78 height: 100%;
79 background-size: cover;
80 filter: blur(4px);
81}
82
83.game-header-text>span {
84 font-size: 42px;
85 font-weight: 500;
86 margin: 5px;
87}
88
89.game-header-text span>b {
90 font-size: 96px;
91 font-weight: 600;
92}
93
94.game-nav {
95 display: flex;
96 height: 48px;
97}
98
99.game-nav-btn {
100 width: 100%;
101 height: 100%;
102 border: none;
103 border-radius: 0px;
104 color: inherit;
105 font-family: inherit;
106 font-size: 22px;
107 background: #2B2E46;
108 transition: background-color .1s;
109 margin: 0 1px;
110 display: flex;
111 justify-content: center;
112 align-items: center;
113}
114
115.game-nav-btn:hover {
116 cursor: pointer;
117}
118
119.selected {
120 background-color: #202232;
121}
122
123.gameview-nav {
124 margin-top: 20px;
125 display: flex;
126 height: 56px;
127 border-radius: 24px;
128 overflow: hidden;
129 gap: 0.06em;
130 /* background-color: #202232; */
131}
132
133.maplist {
134 width: 100%;
135 margin-top: 20px;
136 margin-bottom: 40px;
137}
138
139.chapter-name {
140 font-size: 30px;
141}
142
143.chapter-page-div {
144 display: flex;
145 justify-content: right;
146 transform: translateY(-30px);
147}
148
149.chapter-page-div button {
150 background-color: #00000000;
151 border: 0;
152 cursor: pointer;
153 height: 30px;
154 padding: 0;
155 width: 30px;
156}
157
158.chapter-page-div span {
159 color: #cdcfdf;
160 font-family: BarlowSemiCondensed-Regular;
161 font-size: 20px;
162}
163
164.maplist-maps {
165 display: grid;
166 grid-template-columns: 25% 25% 25% 25%;
167 margin-top: 10px;
168 transform: translateY(-30px);
169}
170
171.maplist-item {
172 background: #202232;
173 border-radius: 24px;
174 overflow: hidden;
175 margin: 10px 10px;
176 /* padding: 10px 15px; */
177 cursor: pointer;
178 user-select: none;
179}
180
181.loader-map {
182 border-radius: 24px;
183 overflow: hidden;
184 margin: 10px 10px;
185 /* padding: 10px 15px; */
186 user-select: none;
187 width: calc(100% - 20px);
188 height: calc(223px);
189}
190
191.maplist-img-div {
192 height: 150px;
193 overflow: hidden;
194}
195
196.maplist-img {
197 width: 100%;
198 height: 100%;
199 background-size: cover;
200 filter: blur(4px);
201 opacity: 0.7;
202}
203
204.maplist-portalcount-div {
205 display: flex;
206 justify-content: center;
207 align-items: center;
208 text-align: center;
209 height: 100%;
210 transform: translateY(-100%);
211 overflow: hidden;
212}
213
214.maplist-title {
215 font-size: 22px;
216 text-align: center;
217 width: 100%;
218 display: inherit;
219 padding: 5px 0px;
220 color: #CDCFDF;
221}
222
223.maplist-portals {
224 margin-left: 5px;
225 font-size: 32px;
226}
227
228.difficulty-div {
229 display: flex;
230 padding: 7px 10px;
231}
232
233.difficulty-label {
234 font-size: 18px;
235}
236
237.difficulty-bar {
238 width: 100%;
239 display: grid;
240 grid-template-columns: 20% 20% 20% 20% 20%;
241 align-items: center;
242 margin: 5px;
243}
244
245.difficulty-point {
246 background: #2B2E46;
247 height: 3px;
248 margin: 5px;
249 border-radius: 10px;
250}
251
252.stats {
253 margin-top: 30px;
254}
255
256.portalcount-over-time-div {
257 width: 100%;
258 height: 450px;
259 position: relative;
260 background-color: #202232;
261 border-radius: 20px;
262}
263
264.graph-title {
265 width: 100%;
266 display: inherit;
267 font-size: 24px;
268 margin-top: 5px;
269 text-align: center;
270 font-family: BarlowSemiCondensed-SemiBold;
271 padding-top: 7px;
272}
273
274.portalcount-graph {
275 height: calc(100% - 30px);
276 width: calc(100% - 80px);
277}
278
279.chart {
280 height: calc(100% - 80px);
281 width: 100%;
282 position: relative;
283 padding: 0px 0px;
284 scrollbar-width: thin;
285}
286
287.line-chart {
288 list-style: none;
289 margin: 0;
290 padding: 0;
291 height: 100%;
292 border-bottom: 2px solid #2B2E46;
293}
294
295.data-point {
296 background-color: #202232;
297 border: 4px solid #006FDE;
298 border-radius: 50%;
299 height: 6px;
300 position: absolute;
301 width: 6px;
302 bottom: calc(var(--y) - 4.5px);
303 left: calc(var(--x) - 6.5px);
304 transition: all 0.2s cubic-bezier(0.075, 0.82, 0.165, 1);
305 z-index: 1;
306 animation: point_intro 0.2s cubic-bezier(0.075, 0.82, 0.165, 1.8);
307 animation-fill-mode: backwards;
308}
309
310.data-point:hover, .data-point-active {
311 background-color: #006FDE;
312 box-shadow: 0px 0px 10px #006FDE;
313}
314
315.line-segment {
316 background-color: #006FDE;
317 bottom: var(--y);
318 height: 4px;
319 left: var(--x);
320 position: absolute;
321 transform: rotate(calc(var(--angle) * -1deg));
322 width: calc(var(--hypotenuse) * 1px);
323 transform-origin: left bottom;
324 border-radius: 20px;
325 z-index: 1;
326 animation: line_intro 0.05s cubic-bezier(0, 1, 0.31, 0.96);
327 animation-fill-mode: backwards;
328}
329
330#dataPointInfo {
331 position: absolute;
332 width: 400px;
333 height: 85px;
334 background: #202232;
335 box-shadow: 0px 4px 16px 0px #00000080;
336 transition: all 0.3s cubic-bezier(0.075, 0.82, 0.165, 1);
337 z-index: 1000;
338 opacity: 0;
339 left: auto;
340 border-radius: 20px;
341 padding: 15px 7px;
342}
343
344.section-header {
345 display: flex;
346 text-align: center;
347 font-family: BarlowSemiCondensed-SemiBold;
348 font-size: 18px;
349 height: 40%;
350 justify-content: space-evenly;
351 align-items: center;
352}
353
354.section-header span, .section-data span {
355 flex: 1;
356}
357
358.divider {
359 width: 100%;
360 height: 2px;
361 background-color: #2B2E46;
362 display: flex;
363 margin: 5px 0px 8px 0px;
364}
365
366.section-data {
367 display: flex;
368 grid-template-columns: 25% 25% 25% 25%;
369 text-align: center;
370 background-color: #2B2E46;
371 height: 52%;
372 border-radius: 200px;
373 align-items: center;
374 justify-content: space-evenly;
375 flex-grow: 1;
376 font-family: BarlowSemiCondensed-Regular;
377 font-size: 18px;
378 padding: 0px 5px;
379}
380
381@keyframes line_intro {
382 0% {
383 width: 0;
384 }
385 100% {
386 width: calc(var(--hypotenuse) * 1px);
387 }
388}
389
390@keyframes point_intro {
391 0% {
392 opacity: 0;
393 width: 0;
394 height: 0;
395 transform: translate(3px, -3px);
396 }
397 100% {
398 width: 6px;
399 height: 6px;
400 transform: translate(0px, 0px);
401 opacity: 1;
402 }
403}
diff --git a/frontend/src/components/pages/maplist.js b/frontend/src/components/pages/maplist.js
deleted file mode 100644
index a5c6c19..0000000
--- a/frontend/src/components/pages/maplist.js
+++ /dev/null
@@ -1,890 +0,0 @@
1import React, { useEffect, useRef, useState } from 'react';
2import { useLocation, Link } from "react-router-dom";
3import { BrowserRouter as Router, Route, Routes, useNavigate } from 'react-router-dom';
4
5import "./maplist.css"
6import img5 from "../../imgs/5.png"
7import img6 from "../../imgs/6.png"
8
9export default function Maplist(prop) {
10 const { token, setToken } = prop
11 const scrollRef = useRef(null)
12 const [games, setGames] = React.useState(null);
13 const [hasOpenedStatistics, setHasOpenedStatistics] = React.useState(false);
14 const [totalPortals, setTotalPortals] = React.useState(0);
15 const [loading, setLoading] = React.useState(true)
16 const location = useLocation();
17
18 const [gameTitle, setGameTitle] = React.useState("");
19 const [catPortalCount, setCatPortalCount] = React.useState(0);
20 let minPage;
21 let maxPage;
22 let currentPage;
23 let add = 0;
24 let gameState;
25 let catState = 0;
26 async function detectGame() {
27 const response = await fetch("https://lp.ardapektezol.com/api/v1/games", {
28 headers: {
29 'Authorization': token
30 }
31 });
32
33 const data = await response.json();
34
35 const url = new URL(window.location.href)
36
37 const params = new URLSearchParams(url.search)
38 gameState = parseFloat(location.pathname.split("/")[2])
39
40 if (gameState == 1) {
41 setGameTitle(data.data[0].name);
42
43 maxPage = 9;
44 minPage = 1;
45 createCategories(1);
46 } else if (gameState == 2) {
47 setGameTitle(data.data[1].name);
48
49 maxPage = 16;
50 minPage = 10;
51 add = 10
52 createCategories(2);
53 }
54
55 let chapterParam = params.get("chapter")
56
57 currentPage = minPage;
58
59 if (chapterParam) {
60 currentPage = +chapterParam + add
61 }
62
63 changePage(currentPage);
64
65 // if (!loading) {
66
67 // document.querySelector("#catPortalCount").innerText = data.data[gameState - 1].category_portals[0].portal_count;
68
69 // }
70
71 setCatPortalCount(data.data[gameState - 1].category_portals[0].portal_count);
72
73 // if (chapterParam) {
74 // document.querySelector("#pageNumbers").innerText = `${chapterParam - minPage + 1}/${maxPage - minPage + 1}`
75 // }
76 }
77
78 function changeMaplistOrStatistics(index, name) {
79 const maplistBtns = document.querySelectorAll("#maplistBtn");
80 maplistBtns.forEach((btn, i) => {
81 if (i == index) {
82 btn.className = "game-nav-btn selected"
83
84 if (name == "maplist") {
85 document.querySelector(".stats").style.display = "none";
86 document.querySelector(".maplist").style.display = "block";
87 document.querySelector(".maplist").setAttribute("currentTab", "maplist");
88 } else {
89 document.querySelector(".stats").style.display = "block";
90 document.querySelector(".maplist").style.display = "none";
91
92 document.querySelector(".maplist-page").scrollTo({ top: 372, behavior: "smooth" })
93 document.querySelector(".maplist").setAttribute("currentTab", "stats");
94 setHasOpenedStatistics(true);
95 }
96 } else {
97 btn.className = "game-nav-btn";
98 }
99 });
100 }
101
102 async function createCategories(gameID) {
103 const response = await fetch("https://lp.ardapektezol.com/api/v1/games", {
104 headers: {
105 'Authorization': token
106 }
107 });
108
109 const data = await response.json();
110 let categoriesArr = data.data[gameID - 1].category_portals;
111
112 if (document.querySelector(".maplist-maps") == null) {
113 return;
114 }
115 const gameNav = document.querySelector(".game-nav");
116 gameNav.innerHTML = "";
117 categoriesArr.forEach((category) => {
118 createCategory(category);
119 });
120
121 setLoading(false);
122 }
123
124 let categoryNum = 0;
125 function createCategory(category) {
126 const gameNav = document.querySelector(".game-nav");
127
128 categoryNum++;
129 const gameNavBtn = document.createElement("button");
130 if (categoryNum == 1) {
131 gameNavBtn.className = "game-nav-btn selected";
132 } else {
133 gameNavBtn.className = "game-nav-btn";
134 }
135 gameNavBtn.id = "catBtn"
136 gameNavBtn.innerText = category.category.name;
137
138 gameNavBtn.addEventListener("click", (e) => {
139 changeCategory(category, e);
140 changePage(currentPage);
141 })
142
143 gameNav.appendChild(gameNavBtn);
144 }
145
146 async function changeCategory(category, btn) {
147 const navBtns = document.querySelectorAll("#catBtn");
148 navBtns.forEach((btns) => {
149 btns.classList.remove("selected");
150 });
151
152 btn.srcElement.classList.add("selected");
153 const response = await fetch("https://lp.ardapektezol.com/api/v1/games", {
154 headers: {
155 'Authorization': token
156 }
157 });
158
159 const data = await response.json();
160 catState = category.category.id - 1;
161 // console.log(catState)
162 document.querySelector("#catPortalCount").innerText = category.portal_count;
163 }
164
165 async function changePage(page) {
166 const pageNumbers = document.querySelector("#pageNumbers");
167
168 pageNumbers.innerText = `${currentPage - minPage + 1}/${maxPage - minPage + 1}`;
169
170 const maplistMaps = document.querySelector(".maplist-maps");
171 maplistMaps.innerHTML = "";
172 for (let index = 0; index < 8; index++) {
173 const loadingAnimation = document.createElement("div");
174 loadingAnimation.classList.add("loader");
175 loadingAnimation.classList.add("loader-map")
176 maplistMaps.appendChild(loadingAnimation);
177 }
178 const data = await fetchMaps(page);
179 const maps = data.data.maps;
180 const name = data.data.chapter.name;
181
182 let chapterName = "Chapter";
183 const chapterNumberOld = name.split(" - ")[0];
184 let chapterNumber1 = chapterNumberOld.split("Chapter ")[1];
185 if (chapterNumber1 == undefined) {
186 chapterName = "Course"
187 chapterNumber1 = chapterNumberOld.split("Course ")[1];
188 }
189 const chapterNumber = chapterNumber1.toString().padStart(2, "0");
190 const chapterTitle = name.split(" - ")[1];
191
192 if (document.querySelector(".maplist-maps") == null) {
193 return;
194 }
195 const chapterNumberElement = document.querySelector(".chapter-num")
196 const chapterTitleElement = document.querySelector(".chapter-name")
197 chapterNumberElement.innerText = chapterName + " " + chapterNumber;
198 chapterTitleElement.innerText = chapterTitle;
199
200 maplistMaps.innerHTML = "";
201 maps.forEach(map => {
202 let portalCount;
203 if (map.category_portals[catState] != undefined) {
204 portalCount = map.category_portals[catState].portal_count;
205 } else {
206 portalCount = map.category_portals[0].portal_count;
207 }
208 addMap(map.name, portalCount, map.image, map.difficulty + 1, map.id);
209 });
210
211 const url = new URL(window.location.href)
212
213 const params = new URLSearchParams(url.search)
214
215 let chapterParam = params.get("chapter")
216
217 try {
218 const response = await fetch("https://lp.ardapektezol.com/api/v1/games", {
219 headers: {
220 'Authorization': token
221 }
222 });
223
224 const data = await response.json();
225
226 const gameImg = document.querySelector(".game-img");
227
228 gameImg.style.backgroundImage = `url(${data.data[0].image})`;
229
230 // const mapImg = document.querySelectorAll(".maplist-img");
231 // mapImg.forEach((map) => {
232 // map.style.backgroundImage = `url(${data.data[0].image})`;
233 // });
234
235 } catch (error) {
236 console.log("error fetching games:", error);
237 }
238
239 asignDifficulties();
240 }
241
242 async function addMap(mapName, mapPortalCount, mapImage, difficulty, mapID) {
243 // jesus christ
244 const maplistItem = document.createElement("div");
245 const maplistTitle = document.createElement("span");
246 const maplistImgDiv = document.createElement("div");
247 const maplistImg = document.createElement("div");
248 const maplistPortalcountDiv = document.createElement("div");
249 const maplistPortalcount = document.createElement("span");
250 const b = document.createElement("b");
251 const maplistPortalcountPortals = document.createElement("span");
252 const difficultyDiv = document.createElement("div");
253 const difficultyLabel = document.createElement("span");
254 const difficultyBar = document.createElement("div");
255 const difficultyPoint1 = document.createElement("div");
256 const difficultyPoint2 = document.createElement("div");
257 const difficultyPoint3 = document.createElement("div");
258 const difficultyPoint4 = document.createElement("div");
259 const difficultyPoint5 = document.createElement("div");
260
261 maplistItem.className = "maplist-item";
262 maplistTitle.className = "maplist-title";
263 maplistImgDiv.className = "maplist-img-div";
264 maplistImg.className = "maplist-img";
265 maplistPortalcountDiv.className = "maplist-portalcount-div";
266 maplistPortalcount.className = "maplist-portalcount";
267 maplistPortalcountPortals.className = "maplist-portals";
268 difficultyDiv.className = "difficulty-div";
269 difficultyLabel.className = "difficulty-label";
270 difficultyBar.className = "difficulty-bar";
271 difficultyPoint1.className = "difficulty-point";
272 difficultyPoint2.className = "difficulty-point";
273 difficultyPoint3.className = "difficulty-point";
274 difficultyPoint4.className = "difficulty-point";
275 difficultyPoint5.className = "difficulty-point";
276
277
278 maplistTitle.innerText = mapName;
279 difficultyLabel.innerText = "Difficulty: "
280 maplistPortalcountPortals.innerText = "portals"
281 b.innerText = mapPortalCount;
282 maplistImg.style.backgroundImage = `url(${mapImage})`;
283 difficultyBar.setAttribute("difficulty", difficulty)
284 maplistItem.setAttribute("id", mapID)
285 maplistItem.addEventListener("click", () => {
286 console.log(mapID)
287 window.location.href = "/maps/" + mapID
288 })
289
290 // appends
291 // maplist item
292 maplistItem.appendChild(maplistTitle);
293 maplistImgDiv.appendChild(maplistImg);
294 maplistImgDiv.appendChild(maplistPortalcountDiv);
295 maplistPortalcountDiv.appendChild(maplistPortalcount);
296 maplistPortalcount.appendChild(b);
297 maplistPortalcountDiv.appendChild(maplistPortalcountPortals);
298 maplistItem.appendChild(maplistImgDiv);
299 maplistItem.appendChild(difficultyDiv);
300 difficultyDiv.appendChild(difficultyLabel);
301 difficultyDiv.appendChild(difficultyBar);
302 difficultyBar.appendChild(difficultyPoint1);
303 difficultyBar.appendChild(difficultyPoint2);
304 difficultyBar.appendChild(difficultyPoint3);
305 difficultyBar.appendChild(difficultyPoint4);
306 difficultyBar.appendChild(difficultyPoint5);
307
308 // display in place
309 const maplistMaps = document.querySelector(".maplist-maps");
310 maplistMaps.appendChild(maplistItem);
311 }
312
313 async function fetchMaps(chapterID) {
314 try {
315 const response = await fetch(`https://lp.ardapektezol.com/api/v1/chapters/${chapterID}`, {
316 headers: {
317 'Authorization': token
318 }
319 });
320
321 const data = await response.json();
322 return data;
323 } catch (err) {
324 console.log(err)
325 }
326 }
327
328 // difficulty stuff
329 function asignDifficulties() {
330 const difficulties = document.querySelectorAll(".difficulty-bar");
331 difficulties.forEach((difficultyElement) => {
332 let difficulty = difficultyElement.getAttribute("difficulty");
333 if (difficulty == "1") {
334 difficultyElement.childNodes[0].style.backgroundColor = "#51C355";
335 } else if (difficulty == "2") {
336 difficultyElement.childNodes[0].style.backgroundColor = "#8AC93A";
337 difficultyElement.childNodes[1].style.backgroundColor = "#8AC93A";
338 } else if (difficulty == "3") {
339 difficultyElement.childNodes[0].style.backgroundColor = "#8AC93A";
340 difficultyElement.childNodes[1].style.backgroundColor = "#8AC93A";
341 difficultyElement.childNodes[2].style.backgroundColor = "#8AC93A";
342 } else if (difficulty == "4") {
343 difficultyElement.childNodes[0].style.backgroundColor = "#C35F51";
344 difficultyElement.childNodes[1].style.backgroundColor = "#C35F51";
345 difficultyElement.childNodes[2].style.backgroundColor = "#C35F51";
346 difficultyElement.childNodes[3].style.backgroundColor = "#C35F51";
347 } else if (difficulty == "5") {
348 difficultyElement.childNodes[0].style.backgroundColor = "#C35F51";
349 difficultyElement.childNodes[1].style.backgroundColor = "#C35F51";
350 difficultyElement.childNodes[2].style.backgroundColor = "#C35F51";
351 difficultyElement.childNodes[3].style.backgroundColor = "#C35F51";
352 difficultyElement.childNodes[4].style.backgroundColor = "#C35F51";
353 }
354 });
355 }
356
357 const divRef = useRef(null);
358
359 React.useEffect(() => {
360
361 const lineChart = document.querySelector(".line-chart")
362 let tempTotalPortals = 0
363 fetch("https://lp.ardapektezol.com/api/v1/games/1/maps", {
364 headers: {
365 'Authorization': token
366 }
367 })
368 .then(r => r.json())
369 .then(d => {
370 d.data.maps.forEach((map, i) => {
371 tempTotalPortals += map.portal_count
372 })
373 })
374 .then(() => {
375 setTotalPortals(tempTotalPortals)
376 })
377 async function createGraph() {
378 console.log(totalPortals)
379 // max
380 let items = [
381 {
382 record: "100",
383 date: new Date(2011, 4, 4),
384 map: "Container Ride",
385 first: "tiny zach"
386 },
387 {
388 record: "98",
389 date: new Date(2012, 6, 4),
390 map: "Container Ride",
391 first: "tiny zach"
392 },
393 {
394 record: "94",
395 date: new Date(2013, 0, 1),
396 map: "Container Ride",
397 first: "tiny zach"
398 },
399 {
400 record: "90",
401 date: new Date(2014, 0, 1),
402 map: "Container Ride",
403 first: "tiny zach"
404 },
405 {
406 record: "88",
407 date: new Date(2015, 6, 14),
408 map: "Container Ride",
409 first: "tiny zach"
410 },
411 {
412 record: "84",
413 date: new Date(2016, 8, 19),
414 map: "Container Ride",
415 first: "tiny zach"
416 },
417 {
418 record: "82",
419 date: new Date(2017, 3, 20),
420 map: "Container Ride",
421 first: "tiny zach"
422 },
423 {
424 record: "81",
425 date: new Date(2018, 2, 25),
426 map: "Container Ride",
427 first: "tiny zach"
428 },
429 {
430 record: "80",
431 date: new Date(2019, 3, 4),
432 map: "Container Ride",
433 first: "tiny zach"
434 },
435 {
436 record: "78",
437 date: new Date(2020, 11, 21),
438 map: "Container Ride",
439 first: "tiny zach"
440 },
441 {
442 record: "77",
443 date: new Date(2021, 10, 25),
444 map: "Container Ride",
445 first: "tiny zach"
446 },
447 {
448 record: "76",
449 date: new Date(2022, 4, 17),
450 map: "Container Ride",
451 first: "tiny zach"
452 },
453 {
454 record: "75",
455 date: new Date(2023, 9, 31),
456 map: "Container Ride",
457 first: "tiny zach"
458 },
459 {
460 record: "74",
461 date: new Date(2024, 4, 4),
462 map: "Container Ride",
463 first: "tiny zach"
464 },
465 ]
466
467 function calculatePosition(date, startDate, endDate, maxWidth) {
468 const totalMilliseconds = endDate - startDate + 10000000000;
469 const millisecondsFromStart = date - startDate + 5000000000;
470 return (millisecondsFromStart / totalMilliseconds) * maxWidth
471 }
472
473 const minDate = items.reduce((min, dp) => dp.date < min ? dp.date : min, items[0].date)
474 const maxDate = items.reduce((max, dp) => dp.date > max ? dp.date : max, items[0].date)
475
476 const graph_width = document.querySelector(".portalcount-over-time-div").clientWidth
477 // console.log(graph_width)
478
479 const uniqueYears = new Set()
480 items.forEach(dp => uniqueYears.add(dp.date.getFullYear()))
481 let minYear = Infinity;
482 let maxYear = -Infinity;
483
484 items.forEach(dp => {
485 const year = dp.date.getFullYear();
486 minYear = Math.min(minYear, year);
487 maxYear = Math.max(maxYear, year);
488 });
489
490 // Add missing years to the set
491 for (let year = minYear; year <= maxYear; year++) {
492 uniqueYears.add(year);
493 }
494 const uniqueYearsArr = Array.from(uniqueYears)
495
496 items = items.map(dp => ({
497 record: dp.record,
498 date: dp.date,
499 x: calculatePosition(dp.date, minDate, maxDate, lineChart.clientWidth),
500 map: dp.map,
501 first: dp.first
502 }))
503
504 const yearInterval = lineChart.clientWidth / uniqueYears.size
505 for (let index = 1; index < (uniqueYears.size); index++) {
506 const placeholderlmao = document.createElement("div")
507 const yearSpan = document.createElement("span")
508 yearSpan.style.position = "absolute"
509 placeholderlmao.style.height = "100%"
510 placeholderlmao.style.width = "2px"
511 placeholderlmao.style.backgroundColor = "#00000080"
512 placeholderlmao.style.position = `absolute`
513 const thing = calculatePosition(new Date(uniqueYearsArr[index], 0, 0), minDate, maxDate, lineChart.clientWidth)
514 placeholderlmao.style.left = `${thing}px`
515 yearSpan.style.left = `${thing}px`
516 yearSpan.style.bottom = "-34px"
517 yearSpan.innerText = uniqueYearsArr[index]
518 yearSpan.style.fontFamily = "BarlowSemiCondensed-Regular"
519 yearSpan.style.fontSize = "22px"
520 yearSpan.style.opacity = "0.8"
521 lineChart.appendChild(yearSpan)
522
523 }
524
525 let maxPortals;
526 let minPortals;
527 let precision;
528 let multiplier = 1;
529 for (let index = 0; index < items.length; index++) {
530 precision = Math.floor((items[0].record - items[items.length - 1].record))
531 if (precision > 20) {
532 precision = 20
533 }
534 minPortals = Math.floor((items[items.length - 1].record) / 10) * 10
535 if (index == 0) {
536 maxPortals = items[index].record - minPortals
537 }
538 }
539 function calculateMultiplier(value) {
540 while (value > precision) {
541 multiplier += 1;
542 value -= precision;
543 }
544 }
545 calculateMultiplier(items[0].record);
546 // if (items[0].record > 10) {
547 // multiplier = 2;
548 // }
549
550 // Original cubic bezier control points
551 const P0 = { x: 0, y: 0 };
552 const P1 = { x: 0.26, y: 1 };
553 const P2 = { x: 0.74, y: 1 };
554 const P3 = { x: 1, y: 0 };
555
556 function calculateIntermediateControlPoints(t, P0, P1, P2, P3) {
557 const x = (1 - t) ** 3 * P0.x +
558 3 * (1 - t) ** 2 * t * P1.x +
559 3 * (1 - t) * t ** 2 * P2.x +
560 t ** 3 * P3.x;
561
562 const y = (1 - t) ** 3 * P0.y +
563 3 * (1 - t) ** 2 * t * P1.y +
564 3 * (1 - t) * t ** 2 * P2.y +
565 t ** 3 * P3.y;
566
567 return { x, y };
568 }
569
570
571 let delay = 0;
572 for (let index = 0; index < items.length; index++) {
573 let chart_height = 340;
574 const item = items[index];
575 delay += 0.05;
576 // console.log(lineChart.clientWidth)
577
578 // maxPortals++;
579 // maxPortals++;
580
581 let point_height = (chart_height / maxPortals)
582
583 for (let index = 0; index < (maxPortals / multiplier); index++) {
584 // console.log((index + 1) * multiplier)
585 let current_portal_count = (index + 1);
586
587 const placeholderDiv = document.createElement("div")
588 const numPortalsText = document.createElement("span")
589 const numPortalsTextBottom = document.createElement("span")
590 numPortalsText.innerText = (current_portal_count * multiplier) + minPortals
591 numPortalsTextBottom.innerText = minPortals
592 placeholderDiv.style.position = "absolute"
593 numPortalsText.style.position = "absolute"
594 numPortalsTextBottom.style.position = "absolute"
595 numPortalsText.style.left = "-37px"
596 numPortalsText.style.opacity = "0.2"
597 numPortalsTextBottom.style.opacity = "0.2"
598 numPortalsText.style.fontFamily = "BarlowSemiCondensed-Regular"
599 numPortalsTextBottom.style.fontFamily = "BarlowSemiCondensed-Regular"
600 numPortalsText.style.fontSize = "22px"
601 numPortalsTextBottom.style.left = "-37px"
602 numPortalsTextBottom.style.fontSize = "22px"
603 numPortalsTextBottom.style.fontWeight = "400"
604 numPortalsText.style.color = "#CDCFDF"
605 numPortalsTextBottom.style.color = "#CDCFDF"
606 numPortalsText.style.fontFamily = "inherit"
607 numPortalsTextBottom.style.fontFamily = "inherit"
608 numPortalsText.style.textAlign = "right"
609 numPortalsTextBottom.style.textAlign = "right"
610 numPortalsText.style.width = "30px"
611 numPortalsTextBottom.style.width = "30px"
612 placeholderDiv.style.bottom = `${(point_height * current_portal_count * multiplier) - 2}px`
613 numPortalsText.style.bottom = `${(point_height * current_portal_count * multiplier) - 2 - 9}px`
614 numPortalsTextBottom.style.bottom = `${0 - 2 - 8}px`
615 placeholderDiv.id = placeholderDiv.style.bottom
616 placeholderDiv.style.width = "100%"
617 placeholderDiv.style.height = "2px"
618 placeholderDiv.style.backgroundColor = "#2B2E46"
619 placeholderDiv.style.zIndex = "0"
620
621 if (index == 0) {
622 lineChart.appendChild(numPortalsTextBottom)
623 }
624 lineChart.appendChild(numPortalsText)
625 lineChart.appendChild(placeholderDiv)
626 }
627
628 const li = document.createElement("li");
629 const lineSeg = document.createElement("div");
630 const dataPoint = document.createElement("div");
631
632 li.style = `--y: ${point_height * (item.record - minPortals) - 3}px; --x: ${item.x}px`;
633 lineSeg.className = "line-segment";
634 dataPoint.className = "data-point";
635
636 if (items[index + 1] !== undefined) {
637 const hypotenuse = Math.sqrt(
638 Math.pow(items[index + 1].x - items[index].x, 2) +
639 Math.pow((point_height * items[index + 1].record) - point_height * item.record, 2)
640 );
641 const angle = Math.asin(
642 ((point_height * item.record) - (point_height * items[index + 1].record)) / hypotenuse
643 );
644
645 lineSeg.style = `--hypotenuse: ${hypotenuse}; --angle: ${angle * (-180 / Math.PI)}`;
646 const t0 = index / items.length;
647 const t1 = (index + 1) / items.length
648
649 const P0t0 = calculateIntermediateControlPoints(t0, P0, P1, P2, P3);
650 const P1t1 = calculateIntermediateControlPoints(t1, P0, P1, P2, P3);
651 const bezierStyle = `cubic-bezier(${P0t0.x.toFixed(3)}, ${P0t0.y.toFixed(3)}, ${P1t1.x.toFixed(3)}, ${P1t1.y.toFixed(3)})`
652 lineSeg.style.animationTimingFunction = bezierStyle
653 lineSeg.style.animationDelay = delay + "s"
654 }
655 dataPoint.style.animationDelay = delay + "s"
656
657 let isHoveringOverData = true;
658 let isDataActive = false;
659 document.querySelector("#dataPointInfo").style.left = item.x + "px";
660 document.querySelector("#dataPointInfo").style.bottom = (point_height * item.record - 3) + "px";
661 dataPoint.addEventListener("mouseenter", (e) => {
662 isDataActive = true;
663 isHoveringOverData = true;
664 const dataPoints = document.querySelectorAll(".data-point")
665 dataPoints.forEach(point => {
666 point.classList.remove("data-point-active")
667 });
668 dataPoint.classList.add("data-point-active")
669 document.querySelector("#dataPointRecord").innerText = item.record;
670 document.querySelector("#dataPointMap").innerText = item.map;
671 document.querySelector("#dataPointDate").innerText = item.date.toLocaleDateString("en-GB");
672 document.querySelector("#dataPointFirst").innerText = item.first;
673 if ((lineChart.clientWidth - 400) < item.x) {
674 document.querySelector("#dataPointInfo").style.left = item.x - 400 + "px";
675 } else {
676 document.querySelector("#dataPointInfo").style.left = item.x + "px";
677 }
678 if ((lineChart.clientHeight - 115) < (point_height * (item.record - minPortals) - 3)) {
679 document.querySelector("#dataPointInfo").style.bottom = (point_height * (item.record - minPortals) - 3) - 115 + "px";
680 } else {
681 document.querySelector("#dataPointInfo").style.bottom = (point_height * (item.record - minPortals) - 3) + "px";
682 }
683 document.querySelector("#dataPointInfo").style.opacity = "1";
684 document.querySelector("#dataPointInfo").style.zIndex = "10";
685 });
686 document.querySelector("#dataPointInfo").addEventListener("mouseenter", (e) => {
687 isHoveringOverData = true;
688 })
689 document.querySelector("#dataPointInfo").addEventListener("mouseleave", (e) => {
690 isHoveringOverData = false;
691 })
692 document.addEventListener("mousedown", () => {
693 if (!isHoveringOverData) {
694 isDataActive = false
695 dataPoint.classList.remove("data-point-active")
696 document.querySelector("#dataPointInfo").style.opacity = "0";
697 document.querySelector("#dataPointInfo").style.zIndex = "0";
698 }
699 })
700 dataPoint.addEventListener("mouseenter", (e) => {
701 isHoveringOverData = false;
702 })
703 document.querySelector(".chart").addEventListener("mouseleave", () => {
704 isDataActive = false
705 // fuck you
706 isHoveringOverData = true;
707 dataPoint.classList.remove("data-point-active")
708 document.querySelector("#dataPointInfo").style.opacity = "0";
709 document.querySelector("#dataPointInfo").style.zIndex = "0";
710 })
711
712 li.appendChild(lineSeg);
713 li.appendChild(dataPoint);
714 lineChart.appendChild(li);
715 }
716 }
717
718 async function fetchGames() {
719 try {
720 const response = await fetch("https://lp.ardapektezol.com/api/v1/games", {
721 headers: {
722 'Authorization': token
723 }
724 });
725
726 const data = await response.json();
727
728 const gameImg = document.querySelector(".game-img");
729
730 gameImg.style.backgroundImage = `url(${data.data[0].image})`;
731
732 // const mapImg = document.querySelectorAll(".maplist-img");
733 // mapImg.forEach((map) => {
734 // map.style.backgroundImage = `url(${data.data[0].image})`;
735 // });
736
737 } catch (error) {
738 console.log("error fetching games:", error);
739 }
740 }
741
742 detectGame();
743
744 const maplistImg = document.querySelector("#maplistImg");
745 maplistImg.src = img5;
746 const statisticsImg = document.querySelector("#statisticsImg");
747 statisticsImg.src = img6;
748
749 fetchGames();
750
751 const handleResize = (entries) => {
752 for (let entry of entries) {
753 if (hasOpenedStatistics) {
754 lineChart.innerHTML = ""
755 createGraph()
756 }
757 if (document.querySelector(".maplist").getAttribute("currentTab") == "stats") {
758 document.querySelector(".stats").style.display = "block"
759 } else {
760 document.querySelector(".stats").style.display = "none"
761 }
762 }
763 };
764
765 const resizeObserver = new ResizeObserver(handleResize);
766
767 // if (scrollRef.current) {
768 // //hi
769 // if (new URLSearchParams(new URL(window.location.href).search).get("chapter")) {
770 // setTimeout(() => {
771 // scrollRef.current.scrollIntoView({ behavior: "smooth", block: "start" })
772 // }, 200);
773 // }
774
775 // }
776
777 if (divRef.current) {
778 resizeObserver.observe(divRef.current);
779 }
780
781 return () => {
782 if (divRef.current) {
783 resizeObserver.unobserve(divRef.current);
784 }
785 resizeObserver.disconnect();
786 };
787
788
789 })
790 return (
791 <div ref={divRef} className='maplist-page'>
792 <div className='maplist-page-content'>
793 <section className='maplist-page-header'>
794 <Link to='/games'><button className='nav-btn'>
795 <i className='triangle'></i>
796 <span>Games list</span>
797 </button></Link>
798 {!loading ?
799 <span><b id='gameTitle'>{gameTitle}</b></span>
800 :
801 <span><b id='gameTitle' className='loader-text'>LOADINGLOADING</b></span>}
802 </section>
803
804 <div className='game'>
805 {!loading ?
806 <div className='game-header'>
807 <div className='game-img'></div>
808 <div className='game-header-text'>
809 <span><b id='catPortalCount'>{catPortalCount}</b></span>
810 <span>portals</span>
811 </div>
812 </div>
813 : <div className='game-header loader'>
814 <div className='game-img'></div>
815 <div className='game-header-text'>
816 <span className='loader-text'><b id='catPortalCount'>00</b></span>
817 <span className='loader-text'>portals</span>
818 </div>
819 </div>}
820 {!loading ?
821 <div className='game-nav'>
822 </div>
823 : <div className='game-nav loader'>
824 </div>}
825 </div>
826
827 <div className='gameview-nav'>
828 <button id='maplistBtn' onClick={() => { changeMaplistOrStatistics(0, "maplist") }} className='game-nav-btn selected'>
829 <img id='maplistImg' />
830 <span>Map List</span>
831 </button>
832 <button id='maplistBtn' onClick={() => changeMaplistOrStatistics(1, "stats")} className='game-nav-btn'>
833 <img id='statisticsImg' />
834 <span>Statistics</span>
835 </button>
836 </div>
837
838 <div ref={scrollRef} className='maplist'>
839 <div className='chapter'>
840 <span className='chapter-num'>undefined</span><br />
841 <span className='chapter-name'>undefined</span>
842
843 <div className='chapter-page-div'>
844 <button id='pageChanger' onClick={() => { currentPage--; currentPage < minPage ? currentPage = minPage : changePage(currentPage); }}>
845 <i className='triangle'></i>
846 </button>
847 <span id='pageNumbers'>0/0</span>
848 <button id='pageChanger' onClick={() => { currentPage++; currentPage > maxPage ? currentPage = maxPage : changePage(currentPage); }}>
849 <i style={{ transform: "rotate(180deg)" }} className='triangle'></i>
850 </button>
851 </div>
852
853 <div className='maplist-maps'>
854 </div>
855 </div>
856 </div>
857
858 <div style={{ display: "block" }} className='stats'>
859 <div className='portalcount-over-time-div'>
860 <span className='graph-title'>Portal count over time</span><br />
861
862 <div className='portalcount-graph'>
863 <figure className='chart'>
864 <div style={{ display: "block" }}></div>
865 <div id="dataPointInfo">
866 <div className='section-header'>
867 <span className='header-title'>Date</span>
868 <span className='header-title'>Map</span>
869 <span className='header-title'>Record</span>
870 <span className='header-title'>First completion</span>
871 </div>
872 <div className='divider'></div>
873 <div className='section-data'>
874 <span id='dataPointDate'></span>
875 <span id='dataPointMap'></span>
876 <span id='dataPointRecord'></span>
877 <span id='dataPointFirst'>Hello</span>
878 </div>
879 </div>
880 <ul className='line-chart'>
881
882 </ul>
883 </figure>
884 </div>
885 </div>
886 </div>
887 </div>
888 </div>
889 )
890} \ No newline at end of file
diff --git a/frontend/src/components/pages/profile.js b/frontend/src/components/pages/profile.js
deleted file mode 100644
index 7c45320..0000000
--- a/frontend/src/components/pages/profile.js
+++ /dev/null
@@ -1,382 +0,0 @@
1import React from 'react';
2import { useLocation } from "react-router-dom";
3
4import img4 from "../../imgs/4.png"
5import img5 from "../../imgs/5.png"
6import img12 from "../../imgs/12.png"
7import img13 from "../../imgs/13.png"
8import img14 from "../../imgs/14.png"
9import img15 from "../../imgs/15.png"
10import img16 from "../../imgs/16.png"
11import img17 from "../../imgs/17.png"
12import img18 from "../../imgs/18.png"
13import img19 from "../../imgs/19.png"
14import "./profile.css";
15
16export default function Profile(props) {
17const {token} = props
18
19
20const location = useLocation()
21
22
23const [profileData, setProfileData] = React.useState(null)
24React.useEffect(()=>{
25 setProfileData(null)
26 setChapterData(null)
27 setMaps(null)
28 setPageNumber(1)
29
30 if(location.pathname==="/profile"){
31 fetch(`https://lp.ardapektezol.com/api/v1/${location.pathname}`,{
32 headers: {
33 'Authorization': token
34 }})
35 .then(r=>r.json())
36 .then(d=>{
37 setProfileData(d.data)
38 setPageMax(Math.ceil(d.data.records.length/20))
39 })
40 }else{
41 fetch(`https://lp.ardapektezol.com/api/v1/${location.pathname}`)
42 .then(r=>r.json())
43 .then(d=>{
44 setProfileData(d.data)
45 setPageMax(Math.ceil(d.data.records.length/20))
46 })
47 }
48},[location.pathname])
49
50
51
52const [game,setGame] = React.useState(0)
53const [gameData,setGameData] = React.useState(null)
54const [chapter,setChapter] = React.useState("0")
55const [chapterData,setChapterData] = React.useState(null)
56const [maps,setMaps] = React.useState(null)
57
58React.useEffect(()=>{
59 fetch("https://lp.ardapektezol.com/api/v1/games")
60 .then(r=>r.json())
61 .then(d=>{
62 setGameData(d.data)
63 setGame(0)
64 })
65
66},[location])
67
68React.useEffect(()=>{
69 if(game!==null && game!= 0){
70 fetch(`https://lp.ardapektezol.com/api/v1/games/${game}`)
71 .then(r=>r.json())
72 .then(d=>{
73 setChapterData(d.data)
74 setChapter("0")
75 document.querySelector('#select-chapter').value=0
76 })
77
78 } else if (game!==null && game==0 && profileData!== null){
79 setPageMax(Math.ceil(profileData.records.length/20))
80 setPageNumber(1)
81 }
82
83},[game,location])
84
85React.useEffect(()=>{
86 if(chapter!==null){
87 if(chapter==0){
88 setMaps(null)
89 fetch(`https://lp.ardapektezol.com/api/v1/games/${game}/maps`)
90 .then(r=>r.json())
91 .then(d=>{
92 setMaps(d.data.maps);
93 setPageMax(Math.ceil(d.data.maps.length/20))
94 setPageNumber(1)
95 })
96 }else{
97 setMaps(null)
98 fetch(`https://lp.ardapektezol.com/api/v1/chapters/${chapter}`)
99 .then(r=>r.json())
100 .then(d=>{
101 setMaps(d.data.maps);
102 setPageMax(Math.ceil(d.data.maps.length/20))
103 setPageNumber(1)
104 })
105
106 }
107 }
108},[chapter,chapterData])
109
110
111
112const [pageNumber, setPageNumber] = React.useState(1);
113const [pageMax, setPageMax] = React.useState(0);
114const [navState, setNavState] = React.useState(0); // eslint-disable-next-line
115React.useEffect(() => {NavClick();}, [[],navState]);
116function NavClick() {
117 if(profileData!==null){
118 const btn = document.querySelectorAll("#section2 button");
119 btn.forEach((e) => {e.style.backgroundColor = "#2b2e46"});
120 btn[navState].style.backgroundColor = "#202232";
121
122 document.querySelectorAll("section").forEach((e,i)=>i>=2?e.style.display="none":"")
123 if(navState === 0){document.querySelectorAll(".profile1").forEach((e) => {e.style.display = "block"});}
124 if(navState === 1){document.querySelectorAll(".profile2").forEach((e) => {e.style.display = "block"});}
125}
126}
127function UpdateProfile(){
128 fetch(`https://lp.ardapektezol.com/api/v1/profile`,{
129 method: 'POST',
130 headers: {Authorization: token}
131 }).then(r=>r.json())
132 .then(d=>d.success?window.alert("profile updated"):window.alert(`Error: ${d.message}`))
133}
134
135function TimeAgo(date) {
136 const seconds = Math.floor((new Date() - date) / 1000);
137
138 let interval = Math.floor(seconds / 31536000);
139 if (interval > 1) {return interval + ' years ago';}
140
141 interval = Math.floor(seconds / 2592000);
142 if (interval > 1) {return interval + ' months ago';}
143
144 interval = Math.floor(seconds / 86400);
145 if (interval > 1) {return interval + ' days ago';}
146
147 interval = Math.floor(seconds / 3600);
148 if (interval > 1) {return interval + ' hours ago';}
149
150 interval = Math.floor(seconds / 60);
151 if (interval > 1) {return interval + ' minutes ago';}
152
153 if(seconds < 10) return 'just now';
154
155 return Math.floor(seconds) + ' seconds ago';
156 };
157
158function TicksToTime(ticks) {
159
160 let seconds = Math.floor(ticks/60)
161 let minutes = Math.floor(seconds/60)
162 let hours = Math.floor(minutes/60)
163
164 let milliseconds = Math.floor((ticks%60)*1000/60)
165 seconds = seconds % 60;
166 minutes = minutes % 60;
167
168 return `${hours===0?"":hours+":"}${minutes===0?"":hours>0?minutes.toString().padStart(2, '0')+":":(minutes+":")}${minutes>0?seconds.toString().padStart(2, '0'):seconds}.${milliseconds.toString().padStart(3, '0')} (${ticks})`;
169}
170
171
172if(profileData!==null){
173return (
174 <main>
175 <section id='section1' className='profile'>
176
177 {profileData.profile?(
178 <div id='profile-image' onClick={()=>UpdateProfile()}>
179 <img src={profileData.avatar_link} alt=""></img>
180 <span>Refresh</span>
181 </div>
182 ):(
183 <div>
184 <img src={profileData.avatar_link} alt=""></img>
185 </div>
186 )}
187
188 <div id='profile-top'>
189 <div>
190 <div>{profileData.user_name}</div>
191 <div>
192 {profileData.country_code==="XX"?"":<img src={`https://flagcdn.com/w80/${profileData.country_code.toLowerCase()}.jpg`} alt={profileData.country_code} />}
193 </div>
194 <div>
195 {profileData.titles.map(e=>(
196 <span className="titles" style={{backgroundColor:`#${e.color}`}}>
197 {e.name}
198 </span>
199 ))}
200 </div>
201 </div>
202 <div>
203 {profileData.links.p2sr==="-"?"":<a href={profileData.links.p2sr}><img src={img17} alt="Steam" /></a>}
204 {profileData.links.p2sr==="-"?"":<a href={profileData.links.p2sr}><img src={img15} alt="Twitch" /></a>}
205 {profileData.links.p2sr==="-"?"":<a href={profileData.links.p2sr}><img src={img16} alt="Youtube" /></a>}
206 {profileData.links.p2sr==="-"?"":<a href={profileData.links.p2sr}><img src={img4} alt="P2SR" style={{padding:"0"}} /></a>}
207 </div>
208
209 </div>
210 <div id='profile-bottom'>
211 <div>
212 <span>Overall</span>
213 <span>{profileData.rankings.overall.rank===0?"N/A ":"#"+profileData.rankings.overall.rank+" "}
214 <span>({profileData.rankings.overall.completion_count}/{profileData.rankings.overall.completion_total})</span>
215 </span>
216 </div>
217 <div>
218 <span>Singleplayer</span>
219 <span>{profileData.rankings.singleplayer.rank===0?"N/A ":"#"+profileData.rankings.singleplayer.rank+" "}
220 <span>({profileData.rankings.singleplayer.completion_count}/{profileData.rankings.singleplayer.completion_total})</span>
221 </span>
222 </div>
223 <div>
224 <span>Cooperative</span>
225 <span>{profileData.rankings.cooperative.rank===0?"N/A ":"#"+profileData.rankings.cooperative.rank+" "}
226 <span>({profileData.rankings.cooperative.completion_count}/{profileData.rankings.cooperative.completion_total})</span>
227 </span>
228 </div>
229 </div>
230 </section>
231
232
233 <section id='section2' className='profile'>
234 <button onClick={()=>setNavState(0)}><img src={img5} alt="" />&nbsp;Player Records</button>
235 <button onClick={()=>setNavState(1)}><img src={img14} alt="" />&nbsp;Statistics</button>
236 </section>
237
238
239
240
241
242 <section id='section3' className='profile1'>
243 <div id='profileboard-nav'>
244 {gameData===null?<select>error</select>:
245
246 <select id='select-game'
247 onChange={()=>setGame(document.querySelector('#select-game').value)}>
248 <option value={0} key={0}>All Scores</option>
249 {gameData.map((e,i)=>(
250 <option value={e.id} key={i+1}>{e.name}</option>
251 ))}</select>
252 }
253
254 {game==0?
255 <select disabled>
256 <option>All Scores</option>
257 </select>
258 :chapterData===null?<select></select>:
259
260 <select id='select-chapter'
261 onChange={()=>setChapter(document.querySelector('#select-chapter').value)}>
262 <option value="0" key="0">All</option>
263 {chapterData.chapters.filter(e=>e.is_disabled===false).map((e,i)=>(
264 <option value={e.id} key={i+1}>{e.name}</option>
265 ))}</select>
266 }
267 </div>
268 <div id='profileboard-top'>
269 <span><span>Map Name</span><img src={img19} alt="" /></span>
270 <span style={{justifyContent:'center'}}><span>Portals</span><img src={img19} alt="" /></span>
271 <span style={{justifyContent:'center'}}><span>WRΔ </span><img src={img19} alt="" /></span>
272 <span style={{justifyContent:'center'}}><span>Time</span><img src={img19} alt="" /></span>
273 <span> </span>
274 <span><span>Rank</span><img src={img19} alt="" /></span>
275 <span><span>Date</span><img src={img19} alt="" /></span>
276 <div id='page-number'>
277 <div>
278 <button onClick={() => pageNumber === 1 ? null : setPageNumber(prevPageNumber => prevPageNumber - 1)}
279 ><i className='triangle' style={{position:'relative',left:'-5px',}}></i> </button>
280 <span>{pageNumber}/{pageMax}</span>
281 <button onClick={() => pageNumber === pageMax? null : setPageNumber(prevPageNumber => prevPageNumber + 1)}
282 ><i className='triangle' style={{position:'relative',left:'5px',transform:'rotate(180deg)'}}></i> </button>
283 </div>
284 </div>
285 </div>
286 <hr/>
287 <div id='profileboard-records'>
288
289 {game == 0 && profileData !== null
290 ? (
291
292 profileData.records.sort((a,b)=>a.map_id - b.map_id)
293 .map((r, index) => (
294
295 Math.ceil((index+1)/20)===pageNumber ? (
296 <button className="profileboard-record" key={index}>
297 {r.scores.map((e,i)=>(<>
298 {i!==0?<hr style={{gridColumn:"1 / span 8"}}/>:""}
299
300 <span>{r.map_name}</span>
301
302 <span style={{ display: "grid" }}>{e.score_count}</span>
303
304 <span style={{ display: "grid" }}>{e.score_count-r.map_wr_count}</span>
305 <span style={{ display: "grid" }}>{TicksToTime(e.score_time)}</span>
306 <span> </span>
307 {i===0?<span>#{r.placement}</span>:<span> </span>}
308 <span>{e.date.split("T")[0]}</span>
309 <span style={{ flexDirection: "row-reverse" }}>
310
311 <button onClick={()=>{window.alert(`Demo ID: ${e.demo_id}`)}}><img src={img13} alt="demo_id" /></button>
312 <button onClick={()=>window.location.href=`https://lp.ardapektezol.com/api/v1/demos?uuid=${e.demo_id}`}><img src={img12} alt="download" /></button>
313 {i===0&&r.scores.length>1?<button onClick={()=>
314 {
315 document.querySelectorAll(".profileboard-record")[index%20].style.height==="44px"||
316 document.querySelectorAll(".profileboard-record")[index%20].style.height===""?
317 document.querySelectorAll(".profileboard-record")[index%20].style.height=`${r.scores.length*46}px`:
318 document.querySelectorAll(".profileboard-record")[index%20].style.height="44px"
319 }
320 }><img src={img18} alt="history" /></button>:""}
321
322 </span>
323 </>))}
324
325 </button>
326 ) : ""
327 ))) : maps !== null ?
328
329 maps.filter(e=>e.is_disabled===false).sort((a,b)=>a.id - b.id)
330 .map((r, index) => {
331 if(Math.ceil((index+1)/20)===pageNumber){
332 let record = profileData.records.find((e) => e.map_id === r.id);
333 return record === undefined ? (
334 <button className="profileboard-record" key={index} style={{backgroundColor:"#1b1b20"}}>
335 <span>{r.name}</span>
336 <span style={{ display: "grid" }}>N/A</span>
337 <span style={{ display: "grid" }}>N/A</span>
338 <span>N/A</span>
339 <span> </span>
340 <span>N/A</span>
341 <span>N/A</span>
342 <span style={{ flexDirection: "row-reverse" }}></span>
343 </button>
344 ) : (
345 <button className="profileboard-record" key={index}>
346 {record.scores.map((e,i)=>(<>
347 {i!==0?<hr style={{gridColumn:"1 / span 8"}}/>:""}
348 <span>{r.name}</span>
349 <span style={{ display: "grid" }}>{record.scores[i].score_count}</span>
350 <span style={{ display: "grid" }}>{record.scores[i].score_count-record.map_wr_count}</span>
351 <span style={{ display: "grid" }}>{TicksToTime(record.scores[i].score_time)}</span>
352 <span> </span>
353 {i===0?<span>#{record.placement}</span>:<span> </span>}
354 <span>{record.scores[i].date.split("T")[0]}</span>
355 <span style={{ flexDirection: "row-reverse" }}>
356
357 <button onClick={()=>{window.alert(`Demo ID: ${e.demo_id}`)}}><img src={img13} alt="demo_id" /></button>
358 <button onClick={()=>window.location.href=`https://lp.ardapektezol.com/api/v1/demos?uuid=${e.demo_id}`}><img src={img12} alt="download" /></button>
359 {i===0&&record.scores.length>1?<button onClick={()=>
360 {
361 document.querySelectorAll(".profileboard-record")[index%20].style.height==="44px"||
362 document.querySelectorAll(".profileboard-record")[index%20].style.height===""?
363 document.querySelectorAll(".profileboard-record")[index%20].style.height=`${record.scores.length*46}px`:
364 document.querySelectorAll(".profileboard-record")[index%20].style.height="44px"
365 }
366 }><img src={img18} alt="history" /></button>:""}
367
368 </span>
369 </>))}
370 </button>
371
372 )
373 }else{return null}
374 }):(<>{console.warn(maps)}</>)}
375 </div>
376 </section>
377
378 </main>
379)}
380}
381
382
diff --git a/frontend/src/components/pages/summary.js b/frontend/src/components/pages/summary.js
deleted file mode 100644
index d276408..0000000
--- a/frontend/src/components/pages/summary.js
+++ /dev/null
@@ -1,650 +0,0 @@
1import React, { useEffect } from 'react';
2import { useLocation, Link } from "react-router-dom";
3import ReactMarkdown from 'react-markdown'
4
5import "./summary.css";
6
7import img4 from "../../imgs/4.png"
8import img5 from "../../imgs/5.png"
9import img6 from "../../imgs/6.png"
10import img12 from "../../imgs/12.png"
11import img13 from "../../imgs/13.png"
12import Modview from "./summary_modview.js"
13
14export default function Summary(prop) {
15const {token,mod} = prop
16const fakedata={} //for debug
17
18 const location = useLocation()
19
20 //fetching data
21 const [data, setData] = React.useState(null);
22 React.useEffect(() => {
23 setData(null)
24 setDiscussionThread(null)
25 setCreatePostState(0)
26 setSelectedRun(0)
27 setCatState(1)
28 fetch(`https://lp.ardapektezol.com/api/v1/maps/${location.pathname.split('/')[2]}/summary`)
29 .then(r => r.json())
30 .then(d => {
31 if(Object.keys(fakedata).length!==0){setData(fakedata)}
32 else{setData(d.data)}
33 if(d.data.summary.routes.length===0){d.data.summary.routes[0]={"category": "","history": {"score_count": 0,},"rating": 0,"description": "","showcase": ""}}
34 })
35 // eslint-disable-next-line
36 }, [location.pathname]);
37
38 const [pageNumber, setPageNumber] = React.useState(1);
39 const [lbData, setLbData] = React.useState(null);
40 React.useEffect(() => {
41 fetch(`https://lp.ardapektezol.com/api/v1/maps/${location.pathname.split('/')[2]}/leaderboards?page=${pageNumber}`)
42 .then(r => r.json())
43 .then(d => setLbData(d))
44 // eslint-disable-next-line
45 }, [pageNumber,location.pathname]);
46
47 const [discussions,setDiscussions] = React.useState(null)
48 function fetchDiscussions() {
49 fetch(`https://lp.ardapektezol.com/api/v1/maps/${location.pathname.split('/')[2]}/discussions`)
50 .then(r=>r.json())
51 .then(d=>setDiscussions(d.data.discussions))
52 }
53
54 React.useEffect(()=>{
55 fetchDiscussions()
56 },[location.pathname])
57
58
59
60const [discussionThread,setDiscussionThread] = React.useState(null)
61function openDiscussion(x){
62 fetch(`https://lp.ardapektezol.com/api/v1/maps/${location.pathname.split('/')[2]}/discussions/${x}`)
63 .then(r=>r.json())
64 .then(d=>setDiscussionThread(d.data.discussion))
65}
66const [discussionSearch, setDiscussionSearch] = React.useState("")
67
68
69
70
71const [navState, setNavState] = React.useState(0); // eslint-disable-next-line
72React.useEffect(() => {NavClick();}, [[],navState]);
73
74function NavClick() {
75 if(data!==null){
76 const btn = document.querySelectorAll("#section2 button.nav-button");
77 btn.forEach((e) => {e.style.backgroundColor = "#2b2e46"});
78 btn[navState].style.backgroundColor = "#202232";
79
80 document.querySelectorAll("section").forEach((e,i)=>i>=2?e.style.display="none":"")
81 if(navState === 0){document.querySelectorAll(".summary1").forEach((e) => {e.style.display = "grid"});}
82 if(navState === 1){document.querySelectorAll(".summary2").forEach((e) => {e.style.display = "block"});}
83 if(navState === 2){document.querySelectorAll(".summary3").forEach((e) => {e.style.display = "block"});}
84}}
85
86
87const [catState, setCatState] = React.useState(1); // eslint-disable-next-line
88React.useEffect(() => {CatClick();}, [[],catState]);
89
90function CatClick() {
91 if(data!==null){
92 const btn = document.querySelectorAll("#section3 #category span button");
93 btn.forEach((e) => {e.style.backgroundColor = "#2b2e46"});
94 btn[catState-1].style.backgroundColor = "#202232";
95}}
96React.useEffect(()=>{
97 if(data!==null && data.summary.routes.filter(e=>e.category.id===catState).length!==0){
98 selectRun(0,catState)} // eslint-disable-next-line
99},[catState,data])
100
101
102const [hisState, setHisState] = React.useState(0); // eslint-disable-next-line
103React.useEffect(() => {HisClick();}, [[],hisState]);
104
105function HisClick() {
106 if(data!==null){
107 const btn = document.querySelectorAll("#section3 #history span button");
108 btn.forEach((e) => {e.style.backgroundColor = "#2b2e46"});
109 btn[hisState].style.backgroundColor = "#202232";
110
111}}
112
113const [selectedRun,setSelectedRun] = React.useState(0)
114
115function selectRun(x,y){
116 let r = document.querySelectorAll("button.record")
117 r.forEach(e=>e.style.backgroundColor="#2b2e46")
118 r[x].style.backgroundColor="#161723"
119
120
121 if(data!==null && data.summary.routes.length!==0 && data.summary.routes.length!==0){
122 if(y===2){x+=data.summary.routes.filter(e=>e.category.id<2).length}
123 if(y===3){x+=data.summary.routes.filter(e=>e.category.id<3).length}
124 if(y===4){x+=data.summary.routes.filter(e=>e.category.id<4).length}
125 setSelectedRun(x)
126 }
127}
128
129function graph(state) {
130 // this is such a mess
131 let graph = data.summary.routes.filter(e=>e.category.id===catState)
132 let graph_score = []
133 data.summary.routes.filter(e=>e.category.id===catState).forEach(e=>graph_score.push(e.history.score_count))
134 let graph_dates = []
135 data.summary.routes.filter(e=>e.category.id===catState).forEach(e=>graph_dates.push(e.history.date.split("T")[0]))
136 let graph_max = graph[graph.length-1].history.score_count
137 let graph_numbers = []
138 for (let i=graph_max;i>=0;i--){
139 graph_numbers[i]=i
140 }
141
142 switch (state) {
143 case 1: //numbers
144 return graph_numbers
145 .reverse().map(e=>(
146 graph_score.includes(e) || e===0 ?
147 <span>{e}<br/></span>
148 :
149 <span><br/></span>
150 ))
151 case 2: // graph
152 let g = 0
153 let h = 0
154 return graph_numbers.map((e,j)=>(
155 <tr id={'graph_row-'+(graph_max-j)}
156 data-graph={ graph_score.includes(graph_max-j) ? g++ : 0}
157 data-graph2={h=0}
158
159 >
160 {
161 graph_score.map((e,i)=>(
162 <>
163 <td className='graph_ver'
164 data-graph={ h++ }
165 style={{outline:
166 g===h-1 ?
167 "1px solid #2b2e46" : g>=h ? "1px dashed white" : "0" }}
168 ></td>
169
170 {g===h && graph_score.includes(graph_max-j) ?
171 <button className='graph-button'
172 onClick={()=>{
173 selectRun(graph_dates.length-(i-1),catState);
174 }}
175 style={{left: `calc(100% / ${graph_dates.length} * ${h-1})`}}
176 ></button>
177 : ""}
178
179 <td className='graph_hor' id={'graph_table-'+i++}
180 style={{
181 outline:
182 graph_score.includes(graph_max-j) ?
183 g>=h ?
184 g-1>=h ? "1px dashed #2b2e46" : "1px solid white" : "0"
185 : "0"}}
186 ></td>
187
188
189
190 <td className='graph_hor' id={'graph_table-'+i++}
191 style={{outline:
192 graph_score.includes(graph_max-j) ?
193 g>=h ?
194 g-1>=h ? "1px dashed #2b2e46" : "1px solid white" : "0"
195 : "0"}}
196 ></td>
197
198 </>
199 ))
200
201 }
202
203 </tr>
204 ))
205
206 case 3: // dates
207 return graph_dates
208 .reverse().map(e=>(
209 <span>{e}</span>
210 ))
211 default:
212 break;
213
214 }
215
216}
217
218const [vid,setVid] = React.useState("")
219React.useEffect(()=>{
220 if(data!==null){
221 let showcase = data.summary.routes.sort((a,b)=>a.category.id - b.category.id)[selectedRun].showcase
222 showcase.length>6 ? setVid("https://www.youtube.com/embed/"+YouTubeGetID(showcase))
223 : setVid("")
224 } // eslint-disable-next-line
225},[[],selectedRun])
226
227function YouTubeGetID(url){
228 url = url.split(/(vi\/|v=|\/v\/|youtu\.be\/|\/embed\/)/);
229 return (url[2] !== undefined) ? url[2].split(/[^0-9a-z_]/i)[0] : url[0];
230 }
231
232function TimeAgo(date) {
233 // const seconds = Math.floor((new Date() - date) / 1000);
234
235 const seconds = Math.floor(((new Date(new Date() - (date.getTimezoneOffset()*-60000))) - date) / 1000);
236
237 let interval = Math.floor(seconds / 31536000);
238 if (interval === 1) {return interval + ' year ago';}
239 if (interval > 1) {return interval + ' years ago';}
240
241 interval = Math.floor(seconds / 2592000);
242 if (interval === 1) {return interval + ' month ago';}
243 if (interval > 1) {return interval + ' months ago';}
244
245 interval = Math.floor(seconds / 86400);
246 if (interval === 1) {return interval + ' day ago';}
247 if (interval > 1) {return interval + ' days ago';}
248
249 interval = Math.floor(seconds / 3600);
250 if (interval === 1) {return interval + ' hour ago';}
251 if (interval > 1) {return interval + ' hours ago';}
252
253 interval = Math.floor(seconds / 60);
254 if (interval === 1) {return interval + ' minute ago';}
255 if (interval > 1) {return interval + ' minutes ago';}
256
257 if(seconds < 10) return 'just now';
258
259 return Math.floor(seconds) + ' seconds ago';
260 };
261
262function TicksToTime(ticks) {
263
264 let seconds = Math.floor(ticks/60)
265 let minutes = Math.floor(seconds/60)
266 let hours = Math.floor(minutes/60)
267
268 let milliseconds = Math.floor((ticks%60)*1000/60)
269 seconds = seconds % 60;
270 minutes = minutes % 60;
271
272 return `${hours===0?"":hours+":"}${minutes===0?"":hours>0?minutes.toString().padStart(2, '0')+":":(minutes+":")}${minutes>0?seconds.toString().padStart(2, '0'):seconds}.${milliseconds.toString().padStart(3, '0')} (${ticks})`;
273}
274
275function PostComment() {
276
277 fetch(`https://lp.ardapektezol.com/api/v1/maps/${location.pathname.split('/')[2]}/discussions/${discussionThread.id}`,{
278 method:"POST",
279 headers:{authorization:token},
280 body:JSON.stringify({"comment":document.querySelector("#discussion-send>input").value})
281})
282.then(r=>r.json())
283.then(d=>{
284 document.querySelector("#discussion-send>input").value=""
285 openDiscussion(discussionThread.id)
286})
287}
288
289
290const [createPostState,setCreatePostState] = React.useState(0)
291function CreatePost() {
292
293 fetch(`https://lp.ardapektezol.com/api/v1/maps/${location.pathname.split('/')[2]}/discussions`,{
294 method:"POST",
295 headers:{authorization:token},
296 body:JSON.stringify({"title":document.querySelector("#discussion-create-title").value,"content":document.querySelector("#discussion-create-content").value})
297 })
298 .then(r=>r.json())
299 .then(d=>{
300 setCreatePostState(0)
301 fetchDiscussions()
302 })
303}
304
305function DeletePost(post) {
306if(window.confirm(`Are you sure you want to remove post: ${post.title}?`)){
307 console.log("deleted",post.id)
308 fetch(`https://lp.ardapektezol.com/api/v1/maps/${location.pathname.split('/')[2]}/discussions/${post.id}`,{
309 method:"DELETE",
310 headers:{authorization:token},
311 })
312 .then(r=>r.json())
313 .then(d=>{
314 fetchDiscussions()
315 })
316}
317}
318
319
320if(data!==null){
321 console.log(data)
322
323let current_chapter = data.map.chapter_name
324let isCoop = false;
325if (data.map.game_name == "Portal 2 - Cooperative") {
326 isCoop = true
327}
328
329current_chapter = data.map.chapter_name.split(" ")
330// current_chapter = current_chapter.split("-")
331current_chapter = current_chapter[1]
332
333return (
334 <>
335 {token!==null?mod===true?<Modview selectedRun={selectedRun} data={data} token={token}/>:"":""}
336
337 <div id='background-image'>
338 <img src={data.map.image} alt="" />
339 </div>
340 <main>
341 <section id='section1' className='summary1'>
342 <div>
343 <Link to="/games"><button className='nav-button' style={{borderRadius: "20px 0px 0px 20px"}}><i className='triangle'></i><span>Games list</span></button></Link>
344 <Link to={`/games/${!data.map.is_coop ? "1" : "2"}?chapter=${current_chapter}`}><button className='nav-button' style={{borderRadius: "0px 20px 20px 0px", marginLeft: "2px"}}><i className='triangle'></i><span>{data.map.chapter_name}</span></button></Link>
345 <br/><span><b>{data.map.map_name}</b></span>
346 </div>
347
348
349 </section>
350
351 <section id='section2' className='summary1'>
352 <button className='nav-button' onClick={()=>setNavState(0)}><img src={img4} alt="" /><span>Summary</span></button>
353 <button className='nav-button' onClick={()=>setNavState(1)}><img src={img5} alt="" /><span>Leaderboards</span></button>
354 <button className='nav-button' onClick={()=>setNavState(2)}><img src={img6} alt="" /><span>Discussions</span></button>
355 </section>
356 <section id='section3' className='summary1'>
357 <div id='category'
358 style={data.map.image===""?{backgroundColor:"#202232"}:{}}>
359 <img src={data.map.image} alt="" id='category-image'></img>
360 <p><span className='portal-count'>{data.summary.routes.sort((a,b)=>a.category.id - b.category.id)[selectedRun].history.score_count}</span>
361 {data.summary.routes.sort((a,b)=>a.category.id - b.category.id)[selectedRun].history.score_count === 1 ? ` portal` : ` portals` }</p>
362 <span>
363 <button onClick={()=>setCatState(1)}>CM</button>
364 <button onClick={()=>setCatState(2)}>NoSLA</button>
365 {data.map.is_coop?<button onClick={()=>setCatState(3)}>SLA</button>
366 :<button onClick={()=>setCatState(3)}>Inbounds SLA</button>}
367 <button onClick={()=>setCatState(4)}>Any%</button>
368 </span>
369
370 </div>
371
372 <div id='history'>
373
374 <div style={{display: hisState ? "none" : "block"}}>
375 {data.summary.routes.filter(e=>e.category.id===catState).length===0 ? <h5>There are no records for this map.</h5> :
376 <>
377 <div className='record-top'>
378 <span>Date</span>
379 <span>Record</span>
380 <span>First completion</span>
381 </div>
382 <hr/>
383 <div id='records'>
384
385 {data.summary.routes
386 .sort((a, b) => a.history.score_count - b.history.score_count)
387 .filter(e=>e.category.id===catState)
388 .map((r, index) => (
389 <button className='record' key={index} onClick={()=>{
390 selectRun(index,r.category.id);
391 }}>
392 <span>{ new Date(r.history.date).toLocaleDateString(
393 "en-US", { month: 'long', day: 'numeric', year: 'numeric' }
394 )}</span>
395 <span>{r.history.score_count}</span>
396 <span>{r.history.runner_name}</span>
397 </button>
398 ))}
399 </div>
400 </>
401 }
402 </div>
403
404 <div style={{display: hisState ? "block" : "none"}}>
405 {data.summary.routes.filter(e=>e.category.id===catState).length===0 ? <h5>There are no records for this map.</h5> :
406 <div id='graph'>
407 <div>{graph(1)}</div>
408 <div>{graph(2)}</div>
409 <div>{graph(3)}</div>
410 </div>
411 }
412 </div>
413 <span>
414 <button onClick={()=>setHisState(0)}>List</button>
415 <button onClick={()=>setHisState(1)}>Graph</button>
416 </span>
417 </div>
418
419
420 </section>
421 <section id='section4' className='summary1'>
422 <div id='difficulty'>
423 <span>Difficulty</span>
424 {data.summary.routes.sort((a,b)=>a.category.id - b.category.id)[selectedRun].rating === 0 ? (<span>N/A</span>):null}
425 {data.summary.routes.sort((a,b)=>a.category.id - b.category.id)[selectedRun].rating === 1 ? (<span style={{color:"lime"}}>Very easy</span>):null}
426 {data.summary.routes.sort((a,b)=>a.category.id - b.category.id)[selectedRun].rating === 2 ? (<span style={{color:"green"}}>Easy</span>):null}
427 {data.summary.routes.sort((a,b)=>a.category.id - b.category.id)[selectedRun].rating === 3 ? (<span style={{color:"yellow"}}>Medium</span>):null}
428 {data.summary.routes.sort((a,b)=>a.category.id - b.category.id)[selectedRun].rating === 4 ? (<span style={{color:"orange"}}>Hard</span>):null}
429 {data.summary.routes.sort((a,b)=>a.category.id - b.category.id)[selectedRun].rating === 5 ? (<span style={{color:"red"}}>Very hard</span>):null}
430 <div>
431 {data.summary.routes.sort((a,b)=>a.category.id - b.category.id)[selectedRun].rating === 1 ? (<div className='difficulty-rating' style={{backgroundColor:"lime"}}></div>) : (<div className='difficulty-rating'></div>)}
432 {data.summary.routes.sort((a,b)=>a.category.id - b.category.id)[selectedRun].rating === 2 ? (<div className='difficulty-rating' style={{backgroundColor:"green"}}></div>) : (<div className='difficulty-rating'></div>)}
433 {data.summary.routes.sort((a,b)=>a.category.id - b.category.id)[selectedRun].rating === 3 ? (<div className='difficulty-rating' style={{backgroundColor:"yellow"}}></div>) : (<div className='difficulty-rating'></div>)}
434 {data.summary.routes.sort((a,b)=>a.category.id - b.category.id)[selectedRun].rating === 4 ? (<div className='difficulty-rating' style={{backgroundColor:"orange"}}></div>) : (<div className='difficulty-rating'></div>)}
435 {data.summary.routes.sort((a,b)=>a.category.id - b.category.id)[selectedRun].rating === 5 ? (<div className='difficulty-rating' style={{backgroundColor:"red"}}></div>) : (<div className='difficulty-rating'></div>)}
436 </div>
437 </div>
438 <div id='count'>
439 <span>Completion count</span>
440 <div>{catState===1?data.summary.routes[selectedRun].completion_count:"N/A"}</div>
441 </div>
442 </section>
443
444 <section id='section5' className='summary1'>
445 <div id='description'>
446 {data.summary.routes.sort((a,b)=>a.category.id - b.category.id)[selectedRun].showcase!=="" ?
447 <iframe title='Showcase video' src={vid}> </iframe>
448 : ""}
449 <h3>Route description</h3>
450 <span id='description-text'>
451 <ReactMarkdown>
452 {data.summary.routes.sort((a,b)=>a.category.id - b.category.id)[selectedRun].description}
453 </ReactMarkdown>
454 </span>
455 </div>
456 </section>
457
458 {/* Leaderboards */}
459
460 {lbData===null?"":lbData.success===false?(
461 <section id='section6' className='summary2'>
462 <h1 style={{textAlign:"center"}}>Map is not available for competitive boards.</h1>
463 </section>
464 ):lbData.data.records.length===0?(
465 <section id='section6' className='summary2'>
466 <h1 style={{textAlign:"center"}}>No records found.</h1>
467 </section>
468 ):(
469 <section id='section6' className='summary2'>
470
471 <div id='leaderboard-top'
472 style={lbData.data.map.is_coop?{gridTemplateColumns:"7.5% 40% 7.5% 15% 15% 15%"}:{gridTemplateColumns:"7.5% 30% 10% 20% 17.5% 15%"}}
473 >
474 <span>Place</span>
475
476 {lbData.data.map.is_coop?(
477 <div id='runner'>
478 <span>Host</span>
479 <span>Partner</span>
480 </div>
481 ):(
482 <span>Runner</span>
483 )}
484
485 <span>Portals</span>
486 <span>Time</span>
487 <span>Date</span>
488 <div id='page-number'>
489 <div>
490
491 <button onClick={() => pageNumber === 1 ? null : setPageNumber(prevPageNumber => prevPageNumber - 1)}
492 ><i className='triangle' style={{position:'relative',left:'-5px',}}></i> </button>
493 <span>{lbData.data.pagination.current_page}/{lbData.data.pagination.total_pages}</span>
494 <button onClick={() => pageNumber === lbData.data.pagination.total_pages ? null : setPageNumber(prevPageNumber => prevPageNumber + 1)}
495 ><i className='triangle' style={{position:'relative',left:'5px',transform:'rotate(180deg)'}}></i> </button>
496 </div>
497 </div>
498 </div>
499 <hr/>
500 <div id='leaderboard-records'>
501 {lbData.data.records.map((r, index) => (
502 <span className='leaderboard-record' key={index}
503 style={lbData.data.map.is_coop?{gridTemplateColumns:"3% 4.5% 40% 4% 3.5% 15% 15% 14.5%"}:{gridTemplateColumns:"3% 4.5% 30% 4% 6% 20% 17% 15%"}}
504 >
505 <span>{r.placement}</span>
506 <span> </span>
507 {lbData.data.map.is_coop?(
508 <div>
509 <span><img src={r.host.avatar_link} alt='' /> &nbsp; {r.host.user_name}</span>
510 <span><img src={r.partner.avatar_link} alt='' /> &nbsp; {r.partner.user_name}</span>
511 </div>
512 ):(
513 <div><span><img src={r.user.avatar_link} alt='' /> &nbsp; {r.user.user_name}</span></div>
514 )}
515
516 <span>{r.score_count}</span>
517 <span> </span>
518 <span>{TicksToTime(r.score_time)}</span>
519 <span className='hover-popup' popup-text={r.record_date.replace("T",' ').split(".")[0]}>{ TimeAgo(new Date(r.record_date.replace("T"," ").replace("Z",""))) }</span>
520
521 {lbData.data.map.is_coop?(
522 <span>
523 <button onClick={()=>{window.alert(`Host demo ID: ${r.host_demo_id} \nParnter demo ID: ${r.partner_demo_id}`)}}><img src={img13} alt="demo_id" /></button>
524 <button onClick={()=>window.location.href=`https://lp.ardapektezol.com/api/v1/demos?uuid=${r.partner_demo_id}`}><img src={img12} alt="download" style={{filter:"hue-rotate(160deg) contrast(60%) saturate(1000%)"}}/></button>
525 <button onClick={()=>window.location.href=`https://lp.ardapektezol.com/api/v1/demos?uuid=${r.host_demo_id}`}><img src={img12} alt="download" style={{filter:"hue-rotate(300deg) contrast(60%) saturate(1000%)"}}/></button>
526 </span>
527 ):(
528
529 <span>
530 <button onClick={()=>{window.alert(`Demo ID: ${r.demo_id}`)}}><img src={img13} alt="demo_id" /></button>
531 <button onClick={()=>window.location.href=`https://lp.ardapektezol.com/api/v1/demos?uuid=${r.demo_id}`}><img src={img12} alt="download" /></button>
532 </span>
533 )}
534 </span>
535 ))}
536 </div>
537 </section>
538 )}
539
540
541 {/* Discussions */}
542 <section id='section7' className='summary3'>
543
544 {discussionThread === null ? (
545 createPostState === 0 ? (
546 discussions !== null ? (
547 // Main screen
548 <>
549 <div id='discussion-search'>
550 <input type="text" value={discussionSearch} placeholder={"Search for posts..."} onChange={()=>setDiscussionSearch(document.querySelector("#discussion-search>input").value)} />
551 <div><button onClick={()=>setCreatePostState(1)}>New Post</button></div>
552 </div>
553 {discussions.filter(f=>f.title.includes(discussionSearch)).sort((a, b) => new Date(b.updated_at) - new Date(a.updated_at))
554 .map((e, i) => (
555 <div id='discussion-post'>
556
557 <button key={e.id} onClick={() => openDiscussion(e.id)}>
558 <span>{e.title}</span>
559
560 {token!==null?e.creator.steam_id===JSON.parse(atob(token.split(".")[1])).sub?
561 <button onClick={()=>DeletePost(e)}>Delete Post</button>
562 :<span></span>:<span></span>}
563 <span><b>{e.creator.user_name}:</b> {e.content}</span>
564 <span>last updated: {TimeAgo(new Date(e.updated_at.replace("T"," ").replace("Z","")))}</span>
565 </button>
566 </div>
567 ))}
568 </>
569 ):(
570
571 // Main screen (no posts)
572 <>
573 <div id='discussion-search'>
574 <input type="text" value={discussionSearch} placeholder={"Search for posts..."} onChange={()=>setDiscussionSearch(document.querySelector("#discussion-search>input").value)} />
575 <div><button onClick={()=>setCreatePostState(1)}>New Post</button></div>
576 </div>
577 <span style={{textAlign:"center",display:"block"}}>no discussions</span>
578</>
579 )
580 ):(
581 // Creating post
582 <div id='discussion-create'>
583 <span>Create post</span>
584 <button onClick={()=>setCreatePostState(0)}>X</button>
585 <div style={{gridColumn:"1 / span 2"}}>
586 <input id='discussion-create-title' placeholder='Title...'></input>
587 <input id='discussion-create-content' placeholder='Enter the comment...' ></input>
588 </div>
589 <div style={{placeItems:"end",gridColumn:"1 / span 2"}}>
590 <button id='discussion-create-button' onClick={()=>CreatePost()}>Post</button>
591 </div>
592
593 </div>
594
595 )):(
596 // Post screen
597 <div id='discussion-thread'>
598 <div>
599 <span>{discussionThread.title}</span>
600 <button onClick={()=>setDiscussionThread(null)}>X</button>
601 </div>
602
603 <div>
604 <img src={discussionThread.creator.avatar_link} alt="" />
605 <div>
606 <span>{discussionThread.creator.user_name}</span>
607 <span>{TimeAgo(new Date(discussionThread.created_at.replace("T"," ").replace("Z","")))}</span>
608 <span>{discussionThread.content}</span>
609 </div>
610 {discussionThread.comments!==null?
611 discussionThread.comments.sort((a, b) => new Date(a.date) - new Date(b.date))
612 .map(e=>(
613 <>
614 <img src={e.user.avatar_link} alt="" />
615 <div>
616 <span>{e.user.user_name}</span>
617 <span>{TimeAgo(new Date(e.date.replace("T"," ").replace("Z","")))}</span>
618 <span>{e.comment}</span>
619 </div>
620 </>
621
622 )):""}
623
624
625 </div>
626 <div id='discussion-send'>
627 <input type="text" placeholder={"Message"} onKeyDown={(e)=>e.key==="Enter"?PostComment():""}/>
628 <div><button onClick={()=>PostComment()}>Send</button></div>
629 </div>
630
631 </div>
632
633
634 )}
635
636 </section>
637
638 </main>
639 </>
640 )
641}else{
642 return (
643 <main></main>
644 )
645}
646
647
648}
649
650
diff --git a/frontend/src/components/pages/summary_modview.js b/frontend/src/components/pages/summary_modview.js
deleted file mode 100644
index 3541c48..0000000
--- a/frontend/src/components/pages/summary_modview.js
+++ /dev/null
@@ -1,254 +0,0 @@
1import React from 'react';
2import { useLocation } from "react-router-dom";
3import ReactMarkdown from 'react-markdown'
4
5import "./summary_modview.css";
6
7
8export default function Modview(prop) {
9const {selectedRun,data,token} = prop
10
11const [menu,setMenu] = React.useState(0)
12React.useEffect(()=>{
13if(menu===3){ // add
14 document.querySelector("#modview-route-name>input").value=""
15 document.querySelector("#modview-route-score>input").value=""
16 document.querySelector("#modview-route-date>input").value=""
17 document.querySelector("#modview-route-showcase>input").value=""
18 document.querySelector("#modview-route-description>textarea").value=""
19 }
20if(menu===2){ // edit
21 document.querySelector("#modview-route-id>input").value=data.summary.routes[selectedRun].route_id
22 document.querySelector("#modview-route-name>input").value=data.summary.routes[selectedRun].history.runner_name
23 document.querySelector("#modview-route-score>input").value=data.summary.routes[selectedRun].history.score_count
24 document.querySelector("#modview-route-date>input").value=data.summary.routes[selectedRun].history.date.split("T")[0]
25 document.querySelector("#modview-route-showcase>input").value=data.summary.routes[selectedRun].showcase
26 document.querySelector("#modview-route-description>textarea").value=data.summary.routes[selectedRun].description
27} // eslint-disable-next-line
28},[menu])
29
30function compressImage(file) {
31 const reader = new FileReader();
32 reader.readAsDataURL(file);
33 return new Promise(resolve => {
34 reader.onload = () => {
35 const img = new Image();
36 img.src = reader.result;
37 img.onload = () => {
38 let {width, height} = img;
39 if (width > 550) {
40 height *= 550 / width;
41 width = 550;
42 }
43 if (height > 320) {
44 width *= 320 / height;
45 height = 320;
46 }
47 const canvas = document.createElement('canvas');
48 canvas.width = width;
49 canvas.height = height;
50 canvas.getContext('2d').drawImage(img, 0, 0, width, height);
51 resolve(canvas.toDataURL(file.type, 0.6));
52 };
53 };
54 });
55}
56const [image,setImage] = React.useState(null)
57function uploadImage(){
58 if(window.confirm("Are you sure you want to submit this to the database?")){
59 fetch(`/api/v1/maps/${location.pathname.split('/')[2]}/image`,{
60 method: 'PUT',
61 headers: {Authorization: token},
62 body: JSON.stringify({"image": image})
63 }).then(r=>window.location.reload())
64 }
65}
66const location = useLocation()
67function editRoute(){
68if(window.confirm("Are you sure you want to submit this to the database?")){
69 let payload = {
70 "description": document.querySelector("#modview-route-description>textarea").value===""?"No description available.":document.querySelector("#modview-route-description>textarea").value,
71 "record_date": document.querySelector("#modview-route-date>input").value+"T00:00:00Z",
72 "route_id": parseInt(document.querySelector("#modview-route-id>input").value),
73 "score_count": parseInt(document.querySelector("#modview-route-score>input").value),
74 "showcase": document.querySelector("#modview-route-showcase>input").value,
75 "user_name": document.querySelector("#modview-route-name>input").value
76 }
77 fetch(`/api/v1/maps/${location.pathname.split('/')[2]}/summary`,{
78 method: 'PUT',
79 headers: {Authorization: token},
80 body: JSON.stringify(payload)
81 }).then(r=>window.location.reload())
82 }
83}
84
85
86function addRoute(){
87 if(window.confirm("Are you sure you want to submit this to the database?")){
88 let payload = {
89 "category_id": parseInt(document.querySelector("#modview-route-category>select").value),
90 "description": document.querySelector("#modview-route-description>textarea").value===""?"No description available.":document.querySelector("#modview-route-description>textarea").value,
91 "record_date": document.querySelector("#modview-route-date>input").value+"T00:00:00Z",
92 "score_count": parseInt(document.querySelector("#modview-route-score>input").value),
93 "showcase": document.querySelector("#modview-route-showcase>input").value,
94 "user_name": document.querySelector("#modview-route-name>input").value
95 }
96 fetch(`/api/v1/maps/${location.pathname.split('/')[2]}/summary`,{
97 method: 'POST',
98 headers: {Authorization: token},
99 body: JSON.stringify(payload)
100 }).then(r=>window.location.reload())
101 }
102}
103
104function deleteRoute(){
105if(data.summary.routes[0].category==='')
106{window.alert("no run selected")}else{
107if(window.confirm(`Are you sure you want to delete this run from the database?
108${data.summary.routes[selectedRun].category.name} ${data.summary.routes[selectedRun].history.score_count} portals ${data.summary.routes[selectedRun].history.runner_name}`)===true){
109 console.log("deleted:",selectedRun)
110 fetch(`/api/v1/maps/${location.pathname.split('/')[2]}/summary`,{
111 method: 'DELETE',
112 headers: {Authorization: token},
113 body: JSON.stringify({"route_id":data.summary.routes[selectedRun].route_id})
114 }).then(r=>window.location.reload())
115}}
116
117}
118
119const [showButton, setShowButton] = React.useState(1)
120const modview = document.querySelector("div#modview")
121React.useEffect(()=>{
122 if(modview!==null){
123 showButton ? modview.style.transform="translateY(-68%)"
124 : modview.style.transform="translateY(0%)"
125 }
126 let modview_block = document.querySelector("#modview_block")
127 showButton===1?modview_block.style.display="none":modview_block.style.display="block"// eslint-disable-next-line
128},[showButton])
129
130const [md,setMd] = React.useState("")
131
132return (
133 <>
134 <div id="modview_block"></div>
135 <div id='modview'>
136 <div>
137 <button onClick={()=>setMenu(1)}>edit image</button>
138 <button onClick={
139 data.summary.routes[0].category===''?()=>window.alert("no run selected"):()=>setMenu(2)}>edit selected route</button>
140 <button onClick={()=>setMenu(3)}>add new route</button>
141 <button onClick={()=>deleteRoute()}>delete selected route</button>
142 </div>
143 <div>
144 {showButton ?(
145 <button onClick={()=>setShowButton(0)}>Show</button>
146 ) : (
147 <button onClick={()=>{setShowButton(1);setMenu(0)}}>Hide</button>
148 )}
149 </div>
150 </div>
151 {menu!==0? (
152 <div id='modview-menu'>
153 {menu===1? (
154 // image
155 <div id='modview-menu-image'>
156 <div>
157 <span>current image:</span>
158 <img src={data.map.image} alt="missing" />
159 </div>
160
161 <div>
162 <span>new image:
163 <input type="file" accept='image/*' onChange={e=>
164 compressImage(e.target.files[0])
165 .then(d=>setImage(d))
166 }/></span>
167 {image!==null?(<button onClick={()=>uploadImage()}>upload</button>):<span></span>}
168 <img src={image} alt="" id='modview-menu-image-file'/>
169
170 </div>
171 </div>
172 ):menu===2?(
173 // edit route
174 <div id='modview-menu-edit'>
175 <div id='modview-route-id'>
176 <span>route id:</span>
177 <input type="number" disabled/>
178 </div>
179 <div id='modview-route-name'>
180 <span>runner name:</span>
181 <input type="text"/>
182 </div>
183 <div id='modview-route-score'>
184 <span>score:</span>
185 <input type="number"/>
186 </div>
187 <div id='modview-route-date'>
188 <span>date:</span>
189 <input type="date"/>
190 </div>
191 <div id='modview-route-showcase'>
192 <span>showcase video:</span>
193 <input type="text"/>
194 </div>
195 <div id='modview-route-description' style={{height:"180px",gridColumn:"1 / span 5"}}>
196 <span>description:</span>
197 <textarea onChange={()=>setMd(document.querySelector("#modview-route-description>textarea").value)}></textarea>
198 </div>
199 <button style={{gridColumn:"2 / span 3",height:"40px"}} onClick={editRoute}>Apply</button>
200 </div>
201 ):menu===3?(
202 // add route
203 <div id='modview-menu-add'>
204 <div id='modview-route-category'>
205 <span>category:</span>
206 <select>
207 <option value="1" key="1">CM</option>
208 <option value="2" key="2">No SLA</option>
209 {data.map.game_name==="Portal 2 - Cooperative"?"":(
210 <option value="3" key="3">Inbounds SLA</option>)}
211 <option value="4" key="4">Any%</option>
212 </select>
213 </div>
214 <div id='modview-route-name'>
215 <span>runner name:</span>
216 <input type="text" />
217 </div>
218 <div id='modview-route-score'>
219 <span>score:</span>
220 <input type="number" />
221 </div>
222 <div id='modview-route-date'>
223 <span>date:</span>
224 <input type="date" />
225 </div>
226 <div id='modview-route-showcase'>
227 <span>showcase video:</span>
228 <input type="text" />
229 </div>
230 <div id='modview-route-description' style={{height:"180px",gridColumn:"1 / span 5"}}>
231 <span>description:</span>
232 <textarea defaultValue={"No description available."} onChange={()=>setMd(document.querySelector("#modview-route-description>textarea").value)}></textarea>
233 </div>
234 <button style={{gridColumn:"2 / span 3",height:"40px"}} onClick={addRoute}>Apply</button>
235 </div>
236 ):("error")}
237
238 {menu!==1?(
239 <div id='modview-md'>
240 <span>Markdown preview</span>
241 <span><a href="https://commonmark.org/help/" rel="noreferrer" target='_blank'>documentation</a></span>
242 <span><a href="https://remarkjs.github.io/react-markdown/" rel="noreferrer" target='_blank'>demo</a></span>
243 <p>
244 <ReactMarkdown>{md}
245 </ReactMarkdown>
246 </p>
247 </div>
248 ):""}
249 </div>):""}
250
251 </>
252)
253}
254
diff --git a/frontend/src/components/record.css b/frontend/src/components/record.css
deleted file mode 100644
index 60d47ee..0000000
--- a/frontend/src/components/record.css
+++ /dev/null
@@ -1,15 +0,0 @@
1.record-container {
2 --padding: 20px;
3 width: calc(100% - calc(var(--padding * 2)));
4 height: 42px;
5 background-color: #2B2E46;
6 border-radius: 200px;
7 font-size: 18px;
8 display: grid;
9 grid-template-columns: 20% 25% 15% 15% 25%;
10 text-align: center;
11 padding: 0px var(--padding);
12 vertical-align: middle;
13 align-items: center;
14 margin-bottom: 6px;
15} \ No newline at end of file
diff --git a/frontend/src/components/record.js b/frontend/src/components/record.js
deleted file mode 100644
index 80e084d..0000000
--- a/frontend/src/components/record.js
+++ /dev/null
@@ -1,56 +0,0 @@
1import React, { useEffect, useRef, useState } from 'react';
2import { useLocation, Link } from "react-router-dom";
3
4import "./record.css"
5
6export default function Record({ name, place, portals, time, date }) {
7 // const {token} = prop;
8 const [record, setRecord] = useState(null);
9 const location = useLocation();
10
11 // useEffect(() => {
12 // console.log(name, place, portals, time, date);
13 // })
14
15 function timeSince() {
16 const now = new Date();
17 const dateNew = new Date(date);
18
19 const secondsPast = Math.floor((now - dateNew) / 1000);
20
21 if (secondsPast < 60) {
22 return `${secondsPast} seconds ago`;
23 }
24 if (secondsPast < 3600) {
25 const minutes = Math.floor(secondsPast / 60);
26 return `${minutes} minutes ago`;
27 }
28 if (secondsPast < 86400) {
29 const hours = Math.floor(secondsPast / 3600);
30 return `${hours} hours ago`;
31 }
32 if (secondsPast < 2592000) {
33 const days = Math.floor(secondsPast / 86400);
34 return `${days} days ago`;
35 }
36 if (secondsPast < 31536000) {
37 const months = Math.floor(secondsPast / 2592000);
38 return `${months} months ago`;
39 }
40 const years = Math.floor(secondsPast / 31536000);
41 return `${years} years ago`;
42 }
43
44 return(
45 <div className='record-container'>
46 <span>{place}</span>
47 <div style={{display: "flex", alignItems: "center"}}>
48 <img style={{height: "40px", borderRadius: "200px"}} src="https://avatars.steamstatic.com/32d110951da2339d8b8d8419bc945d9a2b150b2a_full.jpg"></img>
49 <span style={{paddingLeft: "5px", fontFamily: "BarlowSemiCondensed-SemiBold"}}>{name}</span>
50 </div>
51 <span style={{fontFamily: "BarlowCondensed-Bold", color: "#D980FF"}}>{portals}</span>
52 <span>{time}</span>
53 <span>{timeSince()}</span>
54 </div>
55 )
56}
diff --git a/frontend/src/components/sidebar.js b/frontend/src/components/sidebar.js
deleted file mode 100644
index 1ca17e6..0000000
--- a/frontend/src/components/sidebar.js
+++ /dev/null
@@ -1,203 +0,0 @@
1import React, { useEffect } from 'react';
2import { Link, useLocation } from "react-router-dom";
3
4import "../App.css"
5import "./sidebar.css";
6import logo from "../imgs/logo.png"
7import img1 from "../imgs/1.png"
8import img2 from "../imgs/2.png"
9import img3 from "../imgs/3.png"
10import img4 from "../imgs/4.png"
11import img5 from "../imgs/5.png"
12import img6 from "../imgs/6.png"
13import img7 from "../imgs/7.png"
14import img8 from "../imgs/8.png"
15import img9 from "../imgs/9.png"
16import Login from "./login.js"
17
18export default function Sidebar(prop) {
19const {token,setToken} = prop
20const [profile, setProfile] = React.useState(null);
21
22React.useEffect(() => {
23 fetch(`https://lp.ardapektezol.com/api/v1/profile`,{
24 headers: {
25 'Content-Type': 'application/json',
26 Authorization: token
27 }})
28 .then(r => r.json())
29 .then(d => setProfile(d.data))
30 }, [token]);
31
32// Locks search button for 300ms before it can be clicked again, prevents spam
33const [isLocked, setIsLocked] = React.useState(false);
34function HandleLock(arg) {
35if (!isLocked) {
36 setIsLocked(true);
37 setTimeout(() => setIsLocked(false), 300);
38 SidebarHide(arg)
39 }
40}
41
42
43// The menu button
44const [sidebar, setSidebar] = React.useState();
45
46// Clicked buttons
47function SidebarClick(x){
48const btn = document.querySelectorAll("button.sidebar-button");
49
50if(sidebar===1){setSidebar(0);SidebarHide()}
51
52// clusterfuck
53btn.forEach((e,i) =>{
54 btn[i].classList.remove("sidebar-button-selected")
55 btn[i].classList.add("sidebar-button-deselected")
56})
57btn[x].classList.add("sidebar-button-selected")
58btn[x].classList.remove("sidebar-button-deselected")
59
60}
61
62function SidebarHide(){
63const btn = document.querySelectorAll("button.sidebar-button")
64const span = document.querySelectorAll("button.sidebar-button>span");
65const side = document.querySelector("#sidebar-list");
66const login = document.querySelectorAll(".login>button")[1];
67const searchbar = document.querySelector("#searchbar");
68
69if(sidebar===1){
70 setSidebar(0)
71 side.style.width="320px"
72 btn.forEach((e, i) =>{
73 e.style.width="310px"
74 e.style.padding = "0.4em 0 0 11px"
75 setTimeout(() => {
76 span[i].style.opacity="1"
77 login.style.opacity="1"
78
79 }, 100)
80 })
81 side.style.zIndex="2"
82} else {
83 side.style.width="40px";
84 searchbar.focus();
85 setSearch(searchbar.value)
86 setSidebar(1)
87 btn.forEach((e,i) =>{
88 e.style.width="40px"
89 e.style.padding = "0.4em 0 0 5px"
90 span[i].style.opacity="0"
91 })
92 login.style.opacity="0"
93 setTimeout(() => {
94 side.style.zIndex="0"
95 }, 300);
96 }
97}
98// Links
99const location = useLocation()
100React.useEffect(()=>{
101 if(location.pathname==="/"){SidebarClick(1)}
102 if(location.pathname.includes("news")){SidebarClick(2)}
103 if(location.pathname.includes("games")){SidebarClick(3)}
104 if(location.pathname.includes("leaderboards")){SidebarClick(4)}
105 if(location.pathname.includes("scorelog")){SidebarClick(5)}
106 if(location.pathname.includes("profile")){SidebarClick(6)}
107 if(location.pathname.includes("rules")){SidebarClick(8)}
108 if(location.pathname.includes("about")){SidebarClick(9)}
109
110 // eslint-disable-next-line react-hooks/exhaustive-deps
111}, [location.pathname])
112
113const [search,setSearch] = React.useState(null)
114const [searchData,setSearchData] = React.useState(null)
115
116React.useEffect(()=>{
117 fetch(`https://lp.ardapektezol.com/api/v1/search?q=${search}`)
118 .then(r=>r.json())
119 .then(d=>setSearchData(d.data))
120
121}, [search])
122
123
124return (
125 <div id='sidebar'>
126 <div id='logo'> {/* logo */}
127 <img src={logo} alt="" height={"80px"}/>
128 <div id='logo-text'>
129 <span><b>PORTAL 2</b></span><br/>
130 <span>Least Portals</span>
131 </div>
132 </div>
133 <div id='sidebar-list'> {/* List */}
134 <div id='sidebar-toplist'> {/* Top */}
135
136 <button className='sidebar-button' onClick={()=>HandleLock()}><img src={img1} alt="" /><span>Search</span></button>
137
138 <span></span>
139
140 <Link to="/" tabIndex={-1}>
141 <button className='sidebar-button'><img src={img2} alt="" /><span>Home&nbsp;Page</span></button>
142 </Link>
143
144 <Link to="/news" tabIndex={-1}>
145 <button className='sidebar-button'><img src={img3} alt="" /><span>News</span></button>
146 </Link>
147
148 <Link to="/games" tabIndex={-1}>
149 <button className='sidebar-button'><img src={img4} alt="" /><span>Games</span></button>
150 </Link>
151
152 <Link to="/leaderboards" tabIndex={-1}>
153 <button className='sidebar-button'><img src={img5} alt="" /><span>Leaderboards</span></button>
154 </Link>
155
156 <Link to="/scorelog" tabIndex={-1}>
157 <button className='sidebar-button'><img src={img7} alt="" /><span>Score&nbsp;Logs</span></button>
158 </Link>
159 </div>
160 <div id='sidebar-bottomlist'>
161 <span></span>
162
163 <Login setToken={setToken} profile={profile} setProfile={setProfile}/>
164
165 <Link to="/rules" tabIndex={-1}>
166 <button className='sidebar-button'><img src={img8} alt="" /><span>Leaderboard&nbsp;Rules</span></button>
167 </Link>
168
169 <Link to="/about" tabIndex={-1}>
170 <button className='sidebar-button'><img src={img9} alt="" /><span>About&nbsp;P2LP</span></button>
171 </Link>
172 </div>
173 </div>
174 <div>
175 <input type="text" id='searchbar' placeholder='Search for map or a player...' onChange={()=>setSearch(document.querySelector("#searchbar").value)}/>
176
177 <div id='search-data'>
178
179 {searchData!==null?searchData.maps.map((q,index)=>(
180 <Link to={`/maps/${q.id}`} className='search-map' key={index}>
181 <span>{q.game}</span>
182 <span>{q.chapter}</span>
183 <span>{q.map}</span>
184 </Link>
185 )):""}
186 {searchData!==null?searchData.players.map((q,index)=>
187 (
188 <Link to={
189 profile!==null&&q.steam_id===profile.steam_id?`/profile`:
190 `/users/${q.steam_id}`
191 } className='search-player' key={index}>
192 <img src={q.avatar_link} alt='pfp'></img>
193 <span style={{fontSize:`${36 - q.user_name.length * 0.8}px`}}>{q.user_name}</span>
194 </Link>
195 )):""}
196
197 </div>
198 </div>
199 </div>
200 )
201}
202
203
diff --git a/frontend/src/components/pages/games.css b/frontend/src/css/Games.css
index ec57a71..ec57a71 100644
--- a/frontend/src/components/pages/games.css
+++ b/frontend/src/css/Games.css
diff --git a/frontend/src/components/login.css b/frontend/src/css/Login.css
index b46be10..aa75f98 100644
--- a/frontend/src/components/login.css
+++ b/frontend/src/css/Login.css
@@ -13,7 +13,7 @@ span>img {
13 13
14 padding-left: 10px; 14 padding-left: 10px;
15 background-color: #00000000 !important; 15 background-color: #00000000 !important;
16 transition: opacity .1s; 16 /* transition: opacity .1s; */
17} 17}
18 18
19.login{ 19.login{
diff --git a/frontend/src/components/pages/summary.css b/frontend/src/css/Maps.css
index 8c6ec35..d164d3b 100644
--- a/frontend/src/components/pages/summary.css
+++ b/frontend/src/css/Maps.css
@@ -65,7 +65,7 @@
65#section3{ 65#section3{
66 margin: 40px 0 0 0; 66 margin: 40px 0 0 0;
67 67
68 display: none; 68 display: grid;
69 grid-template-columns: 1fr 1fr; 69 grid-template-columns: 1fr 1fr;
70 gap: 20px; 70 gap: 20px;
71} 71}
@@ -239,7 +239,7 @@ p>span.portal-count{font-weight: bold;font-size: 100px;vertical-align: -15%;}
239/* Section 4: Difficulty + count */ 239/* Section 4: Difficulty + count */
240 240
241#section4{ 241#section4{
242 display: none; 242 display: grid;
243 grid-template-columns: 1fr 1fr; 243 grid-template-columns: 1fr 1fr;
244 gap: 20px; 244 gap: 20px;
245 margin: 40px 0 0 0; 245 margin: 40px 0 0 0;
@@ -424,6 +424,7 @@ text-align: center;
424 424
425.hover-popup { 425.hover-popup {
426 position: relative; 426 position: relative;
427 display: inline-block;
427 } 428 }
428 429
429 .hover-popup::after { 430 .hover-popup::after {
@@ -438,8 +439,13 @@ text-align: center;
438 border-radius: 8px; 439 border-radius: 8px;
439 visibility: hidden; 440 visibility: hidden;
440 opacity: 0; 441 opacity: 0;
442 color: #cdcfdf;
441 /* transition: visibility 0s, opacity 0.3s ease; */ 443 /* transition: visibility 0s, opacity 0.3s ease; */
442 } 444 }
445
446 .hover-popup:hover {
447 color: transparent;
448 }
443 449
444 .hover-popup:hover::after { 450 .hover-popup:hover::after {
445 visibility: visible; 451 visibility: visible;
diff --git a/frontend/src/components/pages/summary_modview.css b/frontend/src/css/ModMenu.css
index c6d3d8d..c6d3d8d 100644
--- a/frontend/src/components/pages/summary_modview.css
+++ b/frontend/src/css/ModMenu.css
diff --git a/frontend/src/components/pages/profile.css b/frontend/src/css/Profile.css
index 4944ade..4944ade 100644
--- a/frontend/src/components/pages/profile.css
+++ b/frontend/src/css/Profile.css
diff --git a/frontend/src/components/sidebar.css b/frontend/src/css/Sidebar.css
index 34ede80..34ede80 100644
--- a/frontend/src/components/sidebar.css
+++ b/frontend/src/css/Sidebar.css
diff --git a/frontend/src/images/Images.tsx b/frontend/src/images/Images.tsx
new file mode 100644
index 0000000..d2f6dfb
--- /dev/null
+++ b/frontend/src/images/Images.tsx
@@ -0,0 +1,44 @@
1import logo from "./png/logo.png"
2import login from "./png/login.png"
3import img1 from './png/1.png';
4import img2 from './png/2.png';
5import img3 from './png/3.png';
6import img4 from './png/4.png';
7import img5 from './png/5.png';
8import img6 from './png/6.png';
9import img7 from './png/7.png';
10import img8 from './png/8.png';
11import img9 from './png/9.png';
12import img10 from './png/10.png';
13import img11 from './png/11.png';
14import img12 from './png/12.png';
15import img13 from './png/13.png';
16import img14 from './png/14.png';
17import img15 from './png/15.png';
18import img16 from './png/16.png';
19import img17 from './png/17.png';
20import img18 from './png/18.png';
21import img19 from './png/19.png';
22
23export const LogoIcon = logo;
24export const LoginIcon = login;
25
26export const SearchIcon = img1;
27export const HomeIcon = img2;
28export const NewsIcon = img3;
29export const PortalIcon = img4;
30export const FlagIcon = img5;
31export const ChatIcon = img6;
32export const TableIcon = img7;
33export const BookIcon = img8;
34export const HelpIcon = img9;
35export const UserIcon = img10;
36export const ExitIcon = img11;
37export const DownloadIcon = img12;
38export const ThreedotIcon = img13;
39export const StatisticsIcon = img14;
40export const TwitchIcon = img15;
41export const YouTubeIcon = img16;
42export const SteamIcon = img17;
43export const HistoryIcon = img18;
44export const SortIcon = img19; \ No newline at end of file
diff --git a/frontend/src/imgs/1.png b/frontend/src/images/png/1.png
index ea59d2f..ea59d2f 100644
--- a/frontend/src/imgs/1.png
+++ b/frontend/src/images/png/1.png
Binary files differ
diff --git a/frontend/src/imgs/10.png b/frontend/src/images/png/10.png
index d4b0863..d4b0863 100644
--- a/frontend/src/imgs/10.png
+++ b/frontend/src/images/png/10.png
Binary files differ
diff --git a/frontend/src/imgs/11.png b/frontend/src/images/png/11.png
index b493059..b493059 100644
--- a/frontend/src/imgs/11.png
+++ b/frontend/src/images/png/11.png
Binary files differ
diff --git a/frontend/src/imgs/12.png b/frontend/src/images/png/12.png
index abb7717..abb7717 100644
--- a/frontend/src/imgs/12.png
+++ b/frontend/src/images/png/12.png
Binary files differ
diff --git a/frontend/src/imgs/13.png b/frontend/src/images/png/13.png
index 28a67c5..28a67c5 100644
--- a/frontend/src/imgs/13.png
+++ b/frontend/src/images/png/13.png
Binary files differ
diff --git a/frontend/src/imgs/14.png b/frontend/src/images/png/14.png
index 7be6359..7be6359 100644
--- a/frontend/src/imgs/14.png
+++ b/frontend/src/images/png/14.png
Binary files differ
diff --git a/frontend/src/imgs/15.png b/frontend/src/images/png/15.png
index e5ae8aa..e5ae8aa 100644
--- a/frontend/src/imgs/15.png
+++ b/frontend/src/images/png/15.png
Binary files differ
diff --git a/frontend/src/imgs/16.png b/frontend/src/images/png/16.png
index bf3ae0c..bf3ae0c 100644
--- a/frontend/src/imgs/16.png
+++ b/frontend/src/images/png/16.png
Binary files differ
diff --git a/frontend/src/imgs/17.png b/frontend/src/images/png/17.png
index 85e39f0..85e39f0 100644
--- a/frontend/src/imgs/17.png
+++ b/frontend/src/images/png/17.png
Binary files differ
diff --git a/frontend/src/imgs/18.png b/frontend/src/images/png/18.png
index 048cda9..048cda9 100644
--- a/frontend/src/imgs/18.png
+++ b/frontend/src/images/png/18.png
Binary files differ
diff --git a/frontend/src/imgs/19.png b/frontend/src/images/png/19.png
index 0d97d16..0d97d16 100644
--- a/frontend/src/imgs/19.png
+++ b/frontend/src/images/png/19.png
Binary files differ
diff --git a/frontend/src/imgs/2.png b/frontend/src/images/png/2.png
index b8d108e..b8d108e 100644
--- a/frontend/src/imgs/2.png
+++ b/frontend/src/images/png/2.png
Binary files differ
diff --git a/frontend/src/imgs/3.png b/frontend/src/images/png/3.png
index cfda6a4..cfda6a4 100644
--- a/frontend/src/imgs/3.png
+++ b/frontend/src/images/png/3.png
Binary files differ
diff --git a/frontend/src/imgs/4.png b/frontend/src/images/png/4.png
index bbc01c4..bbc01c4 100644
--- a/frontend/src/imgs/4.png
+++ b/frontend/src/images/png/4.png
Binary files differ
diff --git a/frontend/src/imgs/5.png b/frontend/src/images/png/5.png
index b63d2c3..b63d2c3 100644
--- a/frontend/src/imgs/5.png
+++ b/frontend/src/images/png/5.png
Binary files differ
diff --git a/frontend/src/imgs/6.png b/frontend/src/images/png/6.png
index 6ced542..6ced542 100644
--- a/frontend/src/imgs/6.png
+++ b/frontend/src/images/png/6.png
Binary files differ
diff --git a/frontend/src/imgs/7.png b/frontend/src/images/png/7.png
index c20bcf4..c20bcf4 100644
--- a/frontend/src/imgs/7.png
+++ b/frontend/src/images/png/7.png
Binary files differ
diff --git a/frontend/src/imgs/8.png b/frontend/src/images/png/8.png
index d640522..d640522 100644
--- a/frontend/src/imgs/8.png
+++ b/frontend/src/images/png/8.png
Binary files differ
diff --git a/frontend/src/imgs/9.png b/frontend/src/images/png/9.png
index 3cd602a..3cd602a 100644
--- a/frontend/src/imgs/9.png
+++ b/frontend/src/images/png/9.png
Binary files differ
diff --git a/frontend/src/imgs/login.png b/frontend/src/images/png/login.png
index 6456c21..6456c21 100644
--- a/frontend/src/imgs/login.png
+++ b/frontend/src/images/png/login.png
Binary files differ
diff --git a/frontend/src/imgs/logo.png b/frontend/src/images/png/logo.png
index 774d55a..774d55a 100644
--- a/frontend/src/imgs/logo.png
+++ b/frontend/src/images/png/logo.png
Binary files differ
diff --git a/frontend/src/index.js b/frontend/src/index.js
deleted file mode 100644
index f648298..0000000
--- a/frontend/src/index.js
+++ /dev/null
@@ -1,8 +0,0 @@
1import React from 'react';
2import ReactDOM from 'react-dom/client';
3import App from './App';
4
5const root = ReactDOM.createRoot(document.getElementById('root'));
6root.render(
7 <App/>
8);
diff --git a/frontend/src/index.tsx b/frontend/src/index.tsx
new file mode 100644
index 0000000..eec2ff4
--- /dev/null
+++ b/frontend/src/index.tsx
@@ -0,0 +1,17 @@
1import React from 'react';
2import ReactDOM from 'react-dom/client';
3import { BrowserRouter } from "react-router-dom";
4
5import App from './App';
6
7const root = ReactDOM.createRoot(
8 document.getElementById('root') as HTMLElement
9);
10
11root.render(
12 <React.StrictMode>
13 <BrowserRouter>
14 <App />
15 </BrowserRouter>
16 </React.StrictMode>
17);
diff --git a/frontend/src/pages/Games.tsx b/frontend/src/pages/Games.tsx
new file mode 100644
index 0000000..e4b33e5
--- /dev/null
+++ b/frontend/src/pages/Games.tsx
@@ -0,0 +1,51 @@
1import React from 'react';
2
3import GameEntry from '../components/GameEntry';
4import { Game } from '../types/Game';
5import { API } from '../api/Api';
6import "../css/Maps.css"
7
8const Games: React.FC = () => {
9 const [games, setGames] = React.useState<Game[]>([]);
10
11 const _fetch_games = async () => {
12 const games = await API.get_games();
13 setGames(games);
14 };
15
16 const _page_load = () => {
17 const loaders = document.querySelectorAll(".loader");
18 loaders.forEach((loader) => {
19 (loader as HTMLElement).style.display = "none";
20 });
21 }
22
23 React.useEffect(() => {
24 document.querySelectorAll(".games-page-item-body").forEach((game, index) => {
25 game.innerHTML = "";
26 });
27
28 _fetch_games();
29 _page_load();
30 }, []);
31
32 return (
33 <div className='games-page'>
34 <section className='games-page-header'>
35 <span><b>Games list</b></span>
36 </section>
37
38 <section>
39 <div className='games-page-content'>
40 <div className='games-page-item-content'>
41 {games.map((game, index) => (
42 <GameEntry game={game} key={index} />
43 ))}
44 </div>
45 </div>
46 </section>
47 </div>
48 );
49};
50
51export default Games;
diff --git a/frontend/src/pages/Maps.tsx b/frontend/src/pages/Maps.tsx
new file mode 100644
index 0000000..707d865
--- /dev/null
+++ b/frontend/src/pages/Maps.tsx
@@ -0,0 +1,91 @@
1import React from 'react';
2import { Link, useLocation } from 'react-router-dom';
3
4import { PortalIcon, FlagIcon, ChatIcon } from '../images/Images';
5import Summary from '../components/Summary';
6import Leaderboards from '../components/Leaderboards';
7import Discussions from '../components/Discussions';
8import ModMenu from '../components/ModMenu';
9import { MapDiscussions, MapLeaderboard, MapSummary } from '../types/Map';
10import { API } from '../api/Api';
11import "../css/Maps.css";
12
13interface MapProps {
14 isModerator: boolean;
15};
16
17const Maps: React.FC<MapProps> = ({ isModerator }) => {
18
19 const [selectedRun, setSelectedRun] = React.useState<number>(0);
20
21 const [mapSummaryData, setMapSummaryData] = React.useState<MapSummary | undefined>(undefined);
22 const [mapLeaderboardData, setMapLeaderboardData] = React.useState<MapLeaderboard | undefined>(undefined);
23 const [mapDiscussionsData, setMapDiscussionsData] = React.useState<MapDiscussions | undefined>(undefined)
24
25
26 const [navState, setNavState] = React.useState<number>(0);
27
28 const location = useLocation();
29
30 const mapID = location.pathname.split("/")[2];
31
32 const _fetch_map_summary = async () => {
33 const mapSummary = await API.get_map_summary(mapID);
34 setMapSummaryData(mapSummary);
35 };
36
37 const _fetch_map_leaderboards = async () => {
38 const mapLeaderboards = await API.get_map_leaderboard(mapID);
39 setMapLeaderboardData(mapLeaderboards);
40 };
41
42 const _fetch_map_discussions = async () => {
43 const mapDiscussions = await API.get_map_discussions(mapID);
44 setMapDiscussionsData(mapDiscussions);
45 };
46
47 React.useEffect(() => {
48 _fetch_map_summary();
49 _fetch_map_leaderboards();
50 _fetch_map_discussions();
51 }, []);
52
53 if (!mapSummaryData) {
54 return (
55 <></>
56 );
57 }
58
59 return (
60 <>
61 {isModerator && <ModMenu data={mapSummaryData} selectedRun={selectedRun} mapID={mapID} />}
62
63 <div id='background-image'>
64 <img src={mapSummaryData.map.image} alt="" />
65 </div>
66 <main>
67 <section id='section1' className='summary1'>
68 <div>
69 <Link to="/games"><button className='nav-button' style={{ borderRadius: "20px 0px 0px 20px" }}><i className='triangle'></i><span>Games list</span></button></Link>
70 <Link to={`/games/${!mapSummaryData.map.is_coop ? "1" : "2"}?chapter=${mapSummaryData.map.chapter_name}`}><button className='nav-button' style={{ borderRadius: "0px 20px 20px 0px", marginLeft: "2px" }}><i className='triangle'></i><span>{mapSummaryData.map.chapter_name}</span></button></Link>
71 <br /><span><b>{mapSummaryData.map.map_name}</b></span>
72 </div>
73
74
75 </section>
76
77 <section id='section2' className='summary1'>
78 <button className='nav-button' onClick={() => setNavState(0)}><img src={PortalIcon} alt="" /><span>Summary</span></button>
79 <button className='nav-button' onClick={() => setNavState(1)}><img src={FlagIcon} alt="" /><span>Leaderboards</span></button>
80 <button className='nav-button' onClick={() => setNavState(2)}><img src={ChatIcon} alt="" /><span>Discussions</span></button>
81 </section>
82
83 {navState === 0 && <Summary selectedRun={selectedRun} setSelectedRun={setSelectedRun} data={mapSummaryData} />}
84 {navState === 1 && <Leaderboards data={mapLeaderboardData} />}
85 {navState === 2 && <Discussions data={mapDiscussionsData} isModerator={isModerator} mapID={mapID} onRefresh={() => _fetch_map_discussions()} />}
86 </main>
87 </>
88 );
89};
90
91export default Maps;
diff --git a/frontend/src/pages/Profile.tsx b/frontend/src/pages/Profile.tsx
new file mode 100644
index 0000000..8654a03
--- /dev/null
+++ b/frontend/src/pages/Profile.tsx
@@ -0,0 +1,326 @@
1import React from 'react';
2import { useLocation, useNavigate } from 'react-router-dom';
3
4import { SteamIcon, TwitchIcon, YouTubeIcon, PortalIcon, FlagIcon, StatisticsIcon, SortIcon, ThreedotIcon, DownloadIcon, HistoryIcon } from '../images/Images';
5import { UserProfile } from '../types/Profile';
6import { Game, GameChapters } from '../types/Game';
7import { Map } from '../types/Map';
8import "../css/Profile.css";
9
10interface ProfileProps {
11 profile: UserProfile;
12}
13
14const Profile: React.FC<ProfileProps> = ({ profile }) => {
15
16
17 const location = useLocation();
18 const navigate = useNavigate();
19
20 React.useEffect(() => {
21 if (!profile) {
22 navigate("/");
23 };
24 }, [profile]);
25
26 const [navState, setNavState] = React.useState(0);
27 const [pageNumber, setPageNumber] = React.useState(1);
28 const [pageMax, setPageMax] = React.useState(0);
29
30 const [game, setGame] = React.useState("0")
31 const [gameData, setGameData] = React.useState<Game[]>([]);
32 const [chapter, setChapter] = React.useState("0")
33 const [chapterData, setChapterData] = React.useState<GameChapters | null>(null);
34 const [maps, setMaps] = React.useState<Map[]>([]);
35
36 function NavClick() {
37 if (profile) {
38 const btn = document.querySelectorAll("#section2 button");
39 btn.forEach((e) => { (e as HTMLElement).style.backgroundColor = "#2b2e46" });
40 (btn[navState] as HTMLElement).style.backgroundColor = "#202232";
41
42 document.querySelectorAll("section").forEach((e, i) => i >= 2 ? e.style.display = "none" : "")
43 if (navState === 0) { document.querySelectorAll(".profile1").forEach((e) => { (e as HTMLElement).style.display = "block" }); }
44 if (navState === 1) { document.querySelectorAll(".profile2").forEach((e) => { (e as HTMLElement).style.display = "block" }); }
45 }
46 }
47
48 function UpdateProfile() {
49 fetch(`https://lp.ardapektezol.com/api/v1/profile`, {
50 method: 'POST',
51 headers: { Authorization: "" }
52 }).then(r => r.json())
53 .then(d => d.success ? window.alert("profile updated") : window.alert(`Error: ${d.message}`))
54 }
55
56 function TicksToTime(ticks: number) {
57
58 let seconds = Math.floor(ticks / 60)
59 let minutes = Math.floor(seconds / 60)
60 let hours = Math.floor(minutes / 60)
61
62 let milliseconds = Math.floor((ticks % 60) * 1000 / 60)
63 seconds = seconds % 60;
64 minutes = minutes % 60;
65
66 return `${hours === 0 ? "" : hours + ":"}${minutes === 0 ? "" : hours > 0 ? minutes.toString().padStart(2, '0') + ":" : (minutes + ":")}${minutes > 0 ? seconds.toString().padStart(2, '0') : seconds}.${milliseconds.toString().padStart(3, '0')} (${ticks})`;
67 }
68
69 React.useEffect(() => {
70 fetch("https://lp.ardapektezol.com/api/v1/games")
71 .then(r => r.json())
72 .then(d => {
73 setGameData(d.data)
74 setGame("0")
75 })
76
77 }, [location]);
78
79 React.useEffect(() => {
80 if (game && game !== "0") {
81 fetch(`https://lp.ardapektezol.com/api/v1/games/${game}`)
82 .then(r => r.json())
83 .then(d => {
84 setChapterData(d.data)
85 setChapter("0");
86 // (document.querySelector('#select-chapter') as HTMLInputElement).value = "0"
87 })
88
89 } else if (game && game === "0") {
90 setPageMax(Math.ceil(profile.records.length / 20))
91 setPageNumber(1)
92 }
93
94 }, [game, location]);
95
96 React.useEffect(() => {
97 if (game !== "0") {
98 if (chapter === "0") {
99 fetch(`https://lp.ardapektezol.com/api/v1/games/${game}/maps`)
100 .then(r => r.json())
101 .then(d => {
102 setMaps(d.data.maps);
103 setPageMax(Math.ceil(d.data.maps.length / 20))
104 setPageNumber(1)
105 })
106 } else {
107 fetch(`https://lp.ardapektezol.com/api/v1/chapters/${chapter}`)
108 .then(r => r.json())
109 .then(d => {
110 setMaps(d.data.maps);
111 setPageMax(Math.ceil(d.data.maps.length / 20))
112 setPageNumber(1)
113 })
114
115 }
116 }
117 }, [game, chapter, chapterData])
118
119 return (
120 <main>
121 <section id='section1' className='profile'>
122
123 {profile.profile
124 ? (
125 <div id='profile-image' onClick={() => UpdateProfile()}>
126 <img src={profile.avatar_link} alt="profile-image"></img>
127 <span>Refresh</span>
128 </div>
129 ) : (
130 <div>
131 <img src={profile.avatar_link} alt="profile-image"></img>
132 </div>
133 )}
134
135 <div id='profile-top'>
136 <div>
137 <div>{profile.user_name}</div>
138 <div>
139 {profile.country_code === "XX" ? "" : <img src={`https://flagcdn.com/w80/${profile.country_code.toLowerCase()}.jpg`} alt={profile.country_code} />}
140 </div>
141 <div>
142 {profile.titles.map(e => (
143 <span className="titles" style={{ backgroundColor: `#${e.color}` }}>
144 {e.name}
145 </span>
146 ))}
147 </div>
148 </div>
149 <div>
150 {profile.links.steam === "-" ? "" : <a href={profile.links.steam}><img src={SteamIcon} alt="Steam" /></a>}
151 {profile.links.twitch === "-" ? "" : <a href={profile.links.twitch}><img src={TwitchIcon} alt="Twitch" /></a>}
152 {profile.links.youtube === "-" ? "" : <a href={profile.links.youtube}><img src={YouTubeIcon} alt="Youtube" /></a>}
153 {profile.links.p2sr === "-" ? "" : <a href={profile.links.p2sr}><img src={PortalIcon} alt="P2SR" style={{ padding: "0" }} /></a>}
154 </div>
155
156 </div>
157 <div id='profile-bottom'>
158 <div>
159 <span>Overall</span>
160 <span>{profile.rankings.overall.rank === 0 ? "N/A " : "#" + profile.rankings.overall.rank + " "}
161 <span>({profile.rankings.overall.completion_count}/{profile.rankings.overall.completion_total})</span>
162 </span>
163 </div>
164 <div>
165 <span>Singleplayer</span>
166 <span>{profile.rankings.singleplayer.rank === 0 ? "N/A " : "#" + profile.rankings.singleplayer.rank + " "}
167 <span>({profile.rankings.singleplayer.completion_count}/{profile.rankings.singleplayer.completion_total})</span>
168 </span>
169 </div>
170 <div>
171 <span>Cooperative</span>
172 <span>{profile.rankings.cooperative.rank === 0 ? "N/A " : "#" + profile.rankings.cooperative.rank + " "}
173 <span>({profile.rankings.cooperative.completion_count}/{profile.rankings.cooperative.completion_total})</span>
174 </span>
175 </div>
176 </div>
177 </section>
178
179
180 <section id='section2' className='profile'>
181 <button onClick={() => setNavState(0)}><img src={FlagIcon} alt="" />&nbsp;Player Records</button>
182 <button onClick={() => setNavState(1)}><img src={StatisticsIcon} alt="" />&nbsp;Statistics</button>
183 </section>
184
185
186
187
188
189 <section id='section3' className='profile1'>
190 <div id='profileboard-nav'>
191 {gameData === null ? <select>error</select> :
192
193 <select id='select-game'
194 onChange={() => setGame((document.querySelector('#select-game') as HTMLInputElement).value)}>
195 <option value={0} key={0}>All Scores</option>
196 {gameData.map((e, i) => (
197 <option value={e.id} key={i + 1}>{e.name}</option>
198 ))}</select>
199 }
200
201 {game === "0" ?
202 <select disabled>
203 <option>All Scores</option>
204 </select>
205 : chapterData === null ? <select></select> :
206
207 <select id='select-chapter'
208 onChange={() => setChapter((document.querySelector('#select-chapter') as HTMLInputElement).value)}>
209 <option value="0" key="0">All</option>
210 {chapterData.chapters.filter(e => e.is_disabled === false).map((e, i) => (
211 <option value={e.id} key={i + 1}>{e.name}</option>
212 ))}</select>
213 }
214 </div>
215 <div id='profileboard-top'>
216 <span><span>Map Name</span><img src={SortIcon} alt="" /></span>
217 <span style={{ justifyContent: 'center' }}><span>Portals</span><img src={SortIcon} alt="" /></span>
218 <span style={{ justifyContent: 'center' }}><span>WRΔ </span><img src={SortIcon} alt="" /></span>
219 <span style={{ justifyContent: 'center' }}><span>Time</span><img src={SortIcon} alt="" /></span>
220 <span> </span>
221 <span><span>Rank</span><img src={SortIcon} alt="" /></span>
222 <span><span>Date</span><img src={SortIcon} alt="" /></span>
223 <div id='page-number'>
224 <div>
225 <button onClick={() => pageNumber === 1 ? null : setPageNumber(prevPageNumber => prevPageNumber - 1)}
226 ><i className='triangle' style={{ position: 'relative', left: '-5px', }}></i> </button>
227 <span>{pageNumber}/{pageMax}</span>
228 <button onClick={() => pageNumber === pageMax ? null : setPageNumber(prevPageNumber => prevPageNumber + 1)}
229 ><i className='triangle' style={{ position: 'relative', left: '5px', transform: 'rotate(180deg)' }}></i> </button>
230 </div>
231 </div>
232 </div>
233 <hr />
234 <div id='profileboard-records'>
235
236 {game === "0"
237 ? (
238
239 profile.records.sort((a, b) => a.map_id - b.map_id)
240 .map((r, index) => (
241
242 Math.ceil((index + 1) / 20) === pageNumber ? (
243 <button className="profileboard-record" key={index}>
244 {r.scores.map((e, i) => (<>
245 {i !== 0 ? <hr style={{ gridColumn: "1 / span 8" }} /> : ""}
246
247 <span>{r.map_name}</span>
248
249 <span style={{ display: "grid" }}>{e.score_count}</span>
250
251 <span style={{ display: "grid" }}>{e.score_count - r.map_wr_count}</span>
252 <span style={{ display: "grid" }}>{TicksToTime(e.score_time)}</span>
253 <span> </span>
254 {i === 0 ? <span>#{r.placement}</span> : <span> </span>}
255 <span>{e.date.split("T")[0]}</span>
256 <span style={{ flexDirection: "row-reverse" }}>
257
258 <button onClick={() => { window.alert(`Demo ID: ${e.demo_id}`) }}><img src={ThreedotIcon} alt="demo_id" /></button>
259 <button onClick={() => window.location.href = `https://lp.ardapektezol.com/api/v1/demos?uuid=${e.demo_id}`}><img src={DownloadIcon} alt="download" /></button>
260 {i === 0 && r.scores.length > 1 ? <button onClick={() => {
261 (document.querySelectorAll(".profileboard-record")[index % 20] as HTMLInputElement).style.height === "44px" ||
262 (document.querySelectorAll(".profileboard-record")[index % 20] as HTMLInputElement).style.height === "" ?
263 (document.querySelectorAll(".profileboard-record")[index % 20] as HTMLInputElement).style.height = `${r.scores.length * 46}px` :
264 (document.querySelectorAll(".profileboard-record")[index % 20] as HTMLInputElement).style.height = "44px"
265 }
266 }><img src={HistoryIcon} alt="history" /></button> : ""}
267
268 </span>
269 </>))}
270
271 </button>
272 ) : ""
273 ))) : maps ?
274
275 maps.filter(e => e.is_disabled === false).sort((a, b) => a.id - b.id)
276 .map((r, index) => {
277 if (Math.ceil((index + 1) / 20) === pageNumber) {
278 let record = profile.records.find((e) => e.map_id === r.id);
279 return record === undefined ? (
280 <button className="profileboard-record" key={index} style={{ backgroundColor: "#1b1b20" }}>
281 <span>{r.name}</span>
282 <span style={{ display: "grid" }}>N/A</span>
283 <span style={{ display: "grid" }}>N/A</span>
284 <span>N/A</span>
285 <span> </span>
286 <span>N/A</span>
287 <span>N/A</span>
288 <span style={{ flexDirection: "row-reverse" }}></span>
289 </button>
290 ) : (
291 <button className="profileboard-record" key={index}>
292 {record.scores.map((e, i) => (<>
293 {i !== 0 ? <hr style={{ gridColumn: "1 / span 8" }} /> : ""}
294 <span>{r.name}</span>
295 <span style={{ display: "grid" }}>{record!.scores[i].score_count}</span>
296 <span style={{ display: "grid" }}>{record!.scores[i].score_count - record!.map_wr_count}</span>
297 <span style={{ display: "grid" }}>{TicksToTime(record!.scores[i].score_time)}</span>
298 <span> </span>
299 {i === 0 ? <span>#{record!.placement}</span> : <span> </span>}
300 <span>{record!.scores[i].date.split("T")[0]}</span>
301 <span style={{ flexDirection: "row-reverse" }}>
302
303 <button onClick={() => { window.alert(`Demo ID: ${e.demo_id}`) }}><img src={ThreedotIcon} alt="demo_id" /></button>
304 <button onClick={() => window.location.href = `https://lp.ardapektezol.com/api/v1/demos?uuid=${e.demo_id}`}><img src={DownloadIcon} alt="download" /></button>
305 {i === 0 && record!.scores.length > 1 ? <button onClick={() => {
306 (document.querySelectorAll(".profileboard-record")[index % 20] as HTMLInputElement).style.height === "44px" ||
307 (document.querySelectorAll(".profileboard-record")[index % 20] as HTMLInputElement).style.height === "" ?
308 (document.querySelectorAll(".profileboard-record")[index % 20] as HTMLInputElement).style.height = `${record!.scores.length * 46}px` :
309 (document.querySelectorAll(".profileboard-record")[index % 20] as HTMLInputElement).style.height = "44px"
310 }
311 }><img src={HistoryIcon} alt="history" /></button> : ""}
312
313 </span>
314 </>))}
315 </button>
316
317 )
318 } else { return null }
319 }) : (<>{console.warn(maps)}</>)}
320 </div>
321 </section>
322 </main>
323 );
324};
325
326export default Profile;
diff --git a/frontend/src/pages/User.tsx b/frontend/src/pages/User.tsx
new file mode 100644
index 0000000..1f6d8d0
--- /dev/null
+++ b/frontend/src/pages/User.tsx
@@ -0,0 +1,320 @@
1import React from 'react';
2import { useLocation } from 'react-router-dom';
3
4import { SteamIcon, TwitchIcon, YouTubeIcon, PortalIcon, FlagIcon, StatisticsIcon, SortIcon, ThreedotIcon, DownloadIcon, HistoryIcon } from '../images/Images';
5import { UserProfile } from '../types/Profile';
6import { Game, GameChapters } from '../types/Game';
7import { Map } from '../types/Map';
8import { API } from '../api/Api';
9import { ticks_to_time } from '../utils/Time';
10import "../css/Profile.css";
11
12const User: React.FC = () => {
13 const location = useLocation();
14
15 const [user, setUser] = React.useState<UserProfile | undefined>(undefined);
16
17 const [navState, setNavState] = React.useState(0);
18 const [pageNumber, setPageNumber] = React.useState(1);
19 const [pageMax, setPageMax] = React.useState(0);
20
21 const [game, setGame] = React.useState("0")
22 const [gameData, setGameData] = React.useState<Game[]>([]);
23 const [chapter, setChapter] = React.useState("0")
24 const [chapterData, setChapterData] = React.useState<GameChapters | null>(null);
25 const [maps, setMaps] = React.useState<Map[]>([]);
26
27 function NavClick() {
28 if (user) {
29 const btn = document.querySelectorAll("#section2 button");
30 btn.forEach((e) => { (e as HTMLElement).style.backgroundColor = "#2b2e46" });
31 (btn[navState] as HTMLElement).style.backgroundColor = "#202232";
32
33 document.querySelectorAll("section").forEach((e, i) => i >= 2 ? e.style.display = "none" : "")
34 if (navState === 0) { document.querySelectorAll(".profile1").forEach((e) => { (e as HTMLElement).style.display = "block" }); }
35 if (navState === 1) { document.querySelectorAll(".profile2").forEach((e) => { (e as HTMLElement).style.display = "block" }); }
36 }
37 }
38
39 function UpdateProfile() {
40 fetch(`https://lp.ardapektezol.com/api/v1/profile`, {
41 method: 'POST',
42 headers: { Authorization: "" }
43 }).then(r => r.json())
44 .then(d => d.success ? window.alert("profile updated") : window.alert(`Error: ${d.message}`))
45 }
46
47 const _fetch_user = async () => {
48 const userData = await API.get_user(location.pathname.split("/")[2]);
49 setUser(userData);
50 };
51
52 React.useEffect(() => {
53 fetch("https://lp.ardapektezol.com/api/v1/games")
54 .then(r => r.json())
55 .then(d => {
56 setGameData(d.data)
57 setGame("0")
58 })
59
60 }, [location]);
61
62 React.useEffect(() => {
63 if (user) {
64 if (game && game !== "0") {
65 fetch(`https://lp.ardapektezol.com/api/v1/games/${game}`)
66 .then(r => r.json())
67 .then(d => {
68 setChapterData(d.data)
69 setChapter("0");
70 // (document.querySelector('#select-chapter') as HTMLInputElement).value = "0"
71 })
72
73 } else if (game && game === "0") {
74 setPageMax(Math.ceil(user.records.length / 20))
75 setPageNumber(1)
76 }
77 }
78 }, [user, game, location]);
79
80 React.useEffect(() => {
81 _fetch_user();
82 }, []);
83
84 React.useEffect(() => {
85 if (game !== "0") {
86 if (chapter === "0") {
87 fetch(`https://lp.ardapektezol.com/api/v1/games/${game}/maps`)
88 .then(r => r.json())
89 .then(d => {
90 setMaps(d.data.maps);
91 setPageMax(Math.ceil(d.data.maps.length / 20))
92 setPageNumber(1)
93 })
94 } else {
95 fetch(`https://lp.ardapektezol.com/api/v1/chapters/${chapter}`)
96 .then(r => r.json())
97 .then(d => {
98 setMaps(d.data.maps);
99 setPageMax(Math.ceil(d.data.maps.length / 20))
100 setPageNumber(1)
101 })
102
103 }
104 }
105 }, [game, chapter, chapterData])
106
107 if (!user) {
108 return (
109 <></>
110 );
111 };
112
113 return (
114 <main>
115 <section id='section1' className='profile'>
116
117 {user.profile
118 ? (
119 <div id='profile-image' onClick={() => UpdateProfile()}>
120 <img src={user.avatar_link} alt="profile-image"></img>
121 <span>Refresh</span>
122 </div>
123 ) : (
124 <div>
125 <img src={user.avatar_link} alt="profile-image"></img>
126 </div>
127 )}
128
129 <div id='profile-top'>
130 <div>
131 <div>{user.user_name}</div>
132 <div>
133 {user.country_code === "XX" ? "" : <img src={`https://flagcdn.com/w80/${user.country_code.toLowerCase()}.jpg`} alt={user.country_code} />}
134 </div>
135 <div>
136 {user.titles.map(e => (
137 <span className="titles" style={{ backgroundColor: `#${e.color}` }}>
138 {e.name}
139 </span>
140 ))}
141 </div>
142 </div>
143 <div>
144 {user.links.steam === "-" ? "" : <a href={user.links.steam}><img src={SteamIcon} alt="Steam" /></a>}
145 {user.links.twitch === "-" ? "" : <a href={user.links.twitch}><img src={TwitchIcon} alt="Twitch" /></a>}
146 {user.links.youtube === "-" ? "" : <a href={user.links.youtube}><img src={YouTubeIcon} alt="Youtube" /></a>}
147 {user.links.p2sr === "-" ? "" : <a href={user.links.p2sr}><img src={PortalIcon} alt="P2SR" style={{ padding: "0" }} /></a>}
148 </div>
149
150 </div>
151 <div id='profile-bottom'>
152 <div>
153 <span>Overall</span>
154 <span>{user.rankings.overall.rank === 0 ? "N/A " : "#" + user.rankings.overall.rank + " "}
155 <span>({user.rankings.overall.completion_count}/{user.rankings.overall.completion_total})</span>
156 </span>
157 </div>
158 <div>
159 <span>Singleplayer</span>
160 <span>{user.rankings.singleplayer.rank === 0 ? "N/A " : "#" + user.rankings.singleplayer.rank + " "}
161 <span>({user.rankings.singleplayer.completion_count}/{user.rankings.singleplayer.completion_total})</span>
162 </span>
163 </div>
164 <div>
165 <span>Cooperative</span>
166 <span>{user.rankings.cooperative.rank === 0 ? "N/A " : "#" + user.rankings.cooperative.rank + " "}
167 <span>({user.rankings.cooperative.completion_count}/{user.rankings.cooperative.completion_total})</span>
168 </span>
169 </div>
170 </div>
171 </section>
172
173
174 <section id='section2' className='profile'>
175 <button onClick={() => setNavState(0)}><img src={FlagIcon} alt="" />&nbsp;Player Records</button>
176 <button onClick={() => setNavState(1)}><img src={StatisticsIcon} alt="" />&nbsp;Statistics</button>
177 </section>
178
179
180
181
182
183 <section id='section3' className='profile1'>
184 <div id='profileboard-nav'>
185 {gameData === null ? <select>error</select> :
186
187 <select id='select-game'
188 onChange={() => setGame((document.querySelector('#select-game') as HTMLInputElement).value)}>
189 <option value={0} key={0}>All Scores</option>
190 {gameData.map((e, i) => (
191 <option value={e.id} key={i + 1}>{e.name}</option>
192 ))}</select>
193 }
194
195 {game === "0" ?
196 <select disabled>
197 <option>All Scores</option>
198 </select>
199 : chapterData === null ? <select></select> :
200
201 <select id='select-chapter'
202 onChange={() => setChapter((document.querySelector('#select-chapter') as HTMLInputElement).value)}>
203 <option value="0" key="0">All</option>
204 {chapterData.chapters.filter(e => e.is_disabled === false).map((e, i) => (
205 <option value={e.id} key={i + 1}>{e.name}</option>
206 ))}</select>
207 }
208 </div>
209 <div id='profileboard-top'>
210 <span><span>Map Name</span><img src={SortIcon} alt="" /></span>
211 <span style={{ justifyContent: 'center' }}><span>Portals</span><img src={SortIcon} alt="" /></span>
212 <span style={{ justifyContent: 'center' }}><span>WRΔ </span><img src={SortIcon} alt="" /></span>
213 <span style={{ justifyContent: 'center' }}><span>Time</span><img src={SortIcon} alt="" /></span>
214 <span> </span>
215 <span><span>Rank</span><img src={SortIcon} alt="" /></span>
216 <span><span>Date</span><img src={SortIcon} alt="" /></span>
217 <div id='page-number'>
218 <div>
219 <button onClick={() => pageNumber === 1 ? null : setPageNumber(prevPageNumber => prevPageNumber - 1)}
220 ><i className='triangle' style={{ position: 'relative', left: '-5px', }}></i> </button>
221 <span>{pageNumber}/{pageMax}</span>
222 <button onClick={() => pageNumber === pageMax ? null : setPageNumber(prevPageNumber => prevPageNumber + 1)}
223 ><i className='triangle' style={{ position: 'relative', left: '5px', transform: 'rotate(180deg)' }}></i> </button>
224 </div>
225 </div>
226 </div>
227 <hr />
228 <div id='profileboard-records'>
229
230 {game === "0"
231 ? (
232
233 user.records.sort((a, b) => a.map_id - b.map_id)
234 .map((r, index) => (
235
236 Math.ceil((index + 1) / 20) === pageNumber ? (
237 <button className="profileboard-record" key={index}>
238 {r.scores.map((e, i) => (<>
239 {i !== 0 ? <hr style={{ gridColumn: "1 / span 8" }} /> : ""}
240
241 <span>{r.map_name}</span>
242
243 <span style={{ display: "grid" }}>{e.score_count}</span>
244
245 <span style={{ display: "grid" }}>{e.score_count - r.map_wr_count}</span>
246 <span style={{ display: "grid" }}>{ticks_to_time(e.score_time)}</span>
247 <span> </span>
248 {i === 0 ? <span>#{r.placement}</span> : <span> </span>}
249 <span>{e.date.split("T")[0]}</span>
250 <span style={{ flexDirection: "row-reverse" }}>
251
252 <button onClick={() => { window.alert(`Demo ID: ${e.demo_id}`) }}><img src={ThreedotIcon} alt="demo_id" /></button>
253 <button onClick={() => window.location.href = `https://lp.ardapektezol.com/api/v1/demos?uuid=${e.demo_id}`}><img src={DownloadIcon} alt="download" /></button>
254 {i === 0 && r.scores.length > 1 ? <button onClick={() => {
255 (document.querySelectorAll(".profileboard-record")[index % 20] as HTMLInputElement).style.height === "44px" ||
256 (document.querySelectorAll(".profileboard-record")[index % 20] as HTMLInputElement).style.height === "" ?
257 (document.querySelectorAll(".profileboard-record")[index % 20] as HTMLInputElement).style.height = `${r.scores.length * 46}px` :
258 (document.querySelectorAll(".profileboard-record")[index % 20] as HTMLInputElement).style.height = "44px"
259 }
260 }><img src={HistoryIcon} alt="history" /></button> : ""}
261
262 </span>
263 </>))}
264
265 </button>
266 ) : ""
267 ))) : maps ?
268
269 maps.filter(e => e.is_disabled === false).sort((a, b) => a.id - b.id)
270 .map((r, index) => {
271 if (Math.ceil((index + 1) / 20) === pageNumber) {
272 let record = user.records.find((e) => e.map_id === r.id);
273 return record === undefined ? (
274 <button className="profileboard-record" key={index} style={{ backgroundColor: "#1b1b20" }}>
275 <span>{r.name}</span>
276 <span style={{ display: "grid" }}>N/A</span>
277 <span style={{ display: "grid" }}>N/A</span>
278 <span>N/A</span>
279 <span> </span>
280 <span>N/A</span>
281 <span>N/A</span>
282 <span style={{ flexDirection: "row-reverse" }}></span>
283 </button>
284 ) : (
285 <button className="profileboard-record" key={index}>
286 {record.scores.map((e, i) => (<>
287 {i !== 0 ? <hr style={{ gridColumn: "1 / span 8" }} /> : ""}
288 <span>{r.name}</span>
289 <span style={{ display: "grid" }}>{record!.scores[i].score_count}</span>
290 <span style={{ display: "grid" }}>{record!.scores[i].score_count - record!.map_wr_count}</span>
291 <span style={{ display: "grid" }}>{ticks_to_time(record!.scores[i].score_time)}</span>
292 <span> </span>
293 {i === 0 ? <span>#{record!.placement}</span> : <span> </span>}
294 <span>{record!.scores[i].date.split("T")[0]}</span>
295 <span style={{ flexDirection: "row-reverse" }}>
296
297 <button onClick={() => { window.alert(`Demo ID: ${e.demo_id}`) }}><img src={ThreedotIcon} alt="demo_id" /></button>
298 <button onClick={() => window.location.href = `https://lp.ardapektezol.com/api/v1/demos?uuid=${e.demo_id}`}><img src={DownloadIcon} alt="download" /></button>
299 {i === 0 && record!.scores.length > 1 ? <button onClick={() => {
300 (document.querySelectorAll(".profileboard-record")[index % 20] as HTMLInputElement).style.height === "44px" ||
301 (document.querySelectorAll(".profileboard-record")[index % 20] as HTMLInputElement).style.height === "" ?
302 (document.querySelectorAll(".profileboard-record")[index % 20] as HTMLInputElement).style.height = `${record!.scores.length * 46}px` :
303 (document.querySelectorAll(".profileboard-record")[index % 20] as HTMLInputElement).style.height = "44px"
304 }
305 }><img src={HistoryIcon} alt="history" /></button> : ""}
306
307 </span>
308 </>))}
309 </button>
310
311 )
312 } else { return null }
313 }) : (<>{console.warn(maps)}</>)}
314 </div>
315 </section>
316 </main>
317 );
318};
319
320export default User;
diff --git a/frontend/src/react-app-env.d.ts b/frontend/src/react-app-env.d.ts
new file mode 100644
index 0000000..8265915
--- /dev/null
+++ b/frontend/src/react-app-env.d.ts
@@ -0,0 +1,2 @@
1declare module "*.png";
2declare module "*.css";
diff --git a/frontend/src/types/Content.tsx b/frontend/src/types/Content.tsx
new file mode 100644
index 0000000..e593505
--- /dev/null
+++ b/frontend/src/types/Content.tsx
@@ -0,0 +1,18 @@
1export interface ModMenuContent {
2 id: number;
3 name: string;
4 score: number;
5 date: string;
6 showcase: string;
7 description: string;
8 category_id: number;
9};
10
11export interface MapDiscussionContent {
12 title: string;
13 content: string;
14};
15
16export interface MapDiscussionCommentContent {
17 comment: string;
18};
diff --git a/frontend/src/types/Game.tsx b/frontend/src/types/Game.tsx
new file mode 100644
index 0000000..eb435f6
--- /dev/null
+++ b/frontend/src/types/Game.tsx
@@ -0,0 +1,37 @@
1import { Map } from './Map';
2
3
4export interface Game {
5 id: number;
6 name: string;
7 image: string;
8 is_coop: boolean;
9 category_portals: GameCategoryPortals[];
10};
11
12export interface GameChapters {
13 game: Game;
14 chapters: Chapter[];
15};
16
17export interface GameMaps {
18 game: Game;
19 maps: Map[];
20};
21
22export interface Category {
23 id: number;
24 name: string;
25};
26
27interface Chapter {
28 id: number;
29 name: string;
30 image: string;
31 is_disabled: boolean;
32};
33
34export interface GameCategoryPortals {
35 category: Category;
36 portal_count: number;
37};
diff --git a/frontend/src/types/Map.tsx b/frontend/src/types/Map.tsx
new file mode 100644
index 0000000..4a6b60e
--- /dev/null
+++ b/frontend/src/types/Map.tsx
@@ -0,0 +1,103 @@
1import { Category, GameCategoryPortals } from './Game';
2import { Pagination } from './Pagination';
3import { UserShort } from './Profile';
4
5export interface Map {
6 id: number;
7 name: string;
8 image: string;
9 is_disabled: boolean;
10 difficulty: number;
11 category_portals: GameCategoryPortals[];
12};
13
14export interface MapDiscussion {
15 discussion: MapDiscussionsDetail;
16};
17
18export interface MapDiscussions {
19 discussions: MapDiscussionsDetail[];
20};
21
22export interface MapDiscussionsDetail {
23 id: number;
24 title: string;
25 content: string;
26 creator: UserShort;
27 comments: MapDiscussionDetailComment[];
28 created_at: string;
29 updated_at: string;
30};
31
32interface MapDiscussionDetailComment {
33 comment: string;
34 date: string;
35 user: UserShort;
36};
37
38export interface MapLeaderboard {
39 map: MapSummaryMap;
40 records: MapLeaderboardRecordSingleplayer[] | MapLeaderboardRecordMultiplayer[];
41 pagination: Pagination;
42};
43
44export interface MapLeaderboardRecordSingleplayer {
45 kind: "singleplayer";
46 placement: number;
47 record_id: number;
48 score_count: number;
49 score_time: number;
50 user: UserShort;
51 demo_id: string;
52 record_date: string;
53};
54
55export interface MapLeaderboardRecordMultiplayer {
56 kind: "multiplayer";
57 placement: number;
58 record_id: number;
59 score_count: number;
60 score_time: number;
61 host: UserShort;
62 partner: UserShort;
63 host_demo_id: string;
64 partner_demo_id: string;
65 record_date: string;
66};
67
68
69export interface MapSummary {
70 map: MapSummaryMap;
71 summary: MapSummaryDetails;
72};
73
74interface MapSummaryMap {
75 id: number;
76 image: string;
77 chapter_name: string;
78 game_name: string;
79 map_name: string;
80 is_coop: boolean;
81 is_disabled: boolean;
82};
83
84interface MapSummaryDetails {
85 routes: MapSummaryDetailsRoute[];
86};
87
88interface MapSummaryDetailsRoute {
89 route_id: number;
90 category: Category;
91 history: MapSummaryDetailsRouteHistory;
92 rating: number;
93 completion_count: number;
94 description: string;
95 showcase: string;
96};
97
98interface MapSummaryDetailsRouteHistory {
99 runner_name: string;
100 score_count: number;
101 date: string;
102};
103
diff --git a/frontend/src/types/Pagination.tsx b/frontend/src/types/Pagination.tsx
new file mode 100644
index 0000000..ccff04b
--- /dev/null
+++ b/frontend/src/types/Pagination.tsx
@@ -0,0 +1,6 @@
1export interface Pagination {
2 total_records: number;
3 total_pages: number;
4 current_page: number;
5 page_size: number;
6};
diff --git a/frontend/src/types/Profile.tsx b/frontend/src/types/Profile.tsx
new file mode 100644
index 0000000..2bb037c
--- /dev/null
+++ b/frontend/src/types/Profile.tsx
@@ -0,0 +1,63 @@
1import { Pagination } from "./Pagination";
2
3export interface UserShort {
4 steam_id: string;
5 user_name: string;
6 avatar_link: string;
7};
8
9export interface UserProfile {
10 profile: boolean;
11 steam_id: string;
12 user_name: string;
13 avatar_link: string;
14 country_code: string;
15 titles: UserProfileTitles[];
16 links: UserProfileLinks;
17 rankings: UserProfileRankings;
18 records: UserProfileRecords[];
19 pagination: Pagination;
20};
21
22interface UserProfileTitles {
23 name: string;
24 color: string;
25};
26
27interface UserProfileLinks {
28 p2sr: string;
29 steam: string;
30 youtube: string;
31 twitch: string;
32};
33
34interface UserProfileRankings {
35 overall: UserProfileRankingsDetail;
36 singleplayer: UserProfileRankingsDetail;
37 cooperative: UserProfileRankingsDetail;
38};
39
40interface UserProfileRecords {
41 game_id: number;
42 category_id: number;
43 map_id: number;
44 map_name: string;
45 map_wr_count: number;
46 placement: number;
47 scores: UserProfileRecordsScores[]
48};
49
50interface UserProfileRecordsScores {
51 record_id: number;
52 demo_id: string;
53 score_count: number;
54 score_time: number;
55 date: string;
56};
57
58interface UserProfileRankingsDetail {
59 rank: number;
60 completion_count: number;
61 completion_total: number;
62};
63
diff --git a/frontend/src/types/Search.tsx b/frontend/src/types/Search.tsx
new file mode 100644
index 0000000..766311a
--- /dev/null
+++ b/frontend/src/types/Search.tsx
@@ -0,0 +1,13 @@
1import { UserShort } from "./Profile";
2
3export interface Search {
4 players: UserShort[];
5 maps: SearchMap[];
6};
7
8interface SearchMap {
9 id: number;
10 game: string;
11 chapter: string;
12 map: string;
13};
diff --git a/frontend/src/utils/Time.tsx b/frontend/src/utils/Time.tsx
new file mode 100644
index 0000000..b83a7ed
--- /dev/null
+++ b/frontend/src/utils/Time.tsx
@@ -0,0 +1,42 @@
1export function time_ago(date: any) {
2 const now = new Date().getTime();
3
4 const localDate = new Date(date.getTime() - (date.getTimezoneOffset() * 60000));
5 const seconds = Math.floor((now - localDate.getTime()) / 1000);
6
7 let interval = Math.floor(seconds / 31536000);
8 if (interval === 1) {return interval + ' year ago';}
9 if (interval > 1) {return interval + ' years ago';}
10
11 interval = Math.floor(seconds / 2592000);
12 if (interval === 1) {return interval + ' month ago';}
13 if (interval > 1) {return interval + ' months ago';}
14
15 interval = Math.floor(seconds / 86400);
16 if (interval === 1) {return interval + ' day ago';}
17 if (interval > 1) {return interval + ' days ago';}
18
19 interval = Math.floor(seconds / 3600);
20 if (interval === 1) {return interval + ' hour ago';}
21 if (interval > 1) {return interval + ' hours ago';}
22
23 interval = Math.floor(seconds / 60);
24 if (interval === 1) {return interval + ' minute ago';}
25 if (interval > 1) {return interval + ' minutes ago';}
26
27 if(seconds < 10) return 'just now';
28
29 return Math.floor(seconds) + ' seconds ago';
30};
31
32export function ticks_to_time(ticks: number) {
33 let seconds = Math.floor(ticks / 60)
34 let minutes = Math.floor(seconds / 60)
35 let hours = Math.floor(minutes / 60)
36
37 let milliseconds = Math.floor((ticks % 60) * 1000 / 60)
38 seconds = seconds % 60;
39 minutes = minutes % 60;
40
41 return `${hours === 0 ? "" : hours + ":"}${minutes === 0 ? "" : hours > 0 ? minutes.toString().padStart(2, '0') + ":" : (minutes + ":")}${minutes > 0 ? seconds.toString().padStart(2, '0') : seconds}.${milliseconds.toString().padStart(3, '0')}`;
42}; \ No newline at end of file