aboutsummaryrefslogtreecommitdiff
path: root/frontend
diff options
context:
space:
mode:
Diffstat (limited to 'frontend')
-rw-r--r--frontend/.env.example1
-rw-r--r--frontend/.prettierrc11
-rw-r--r--frontend/craco.config.js14
-rw-r--r--frontend/index.html21
-rw-r--r--frontend/package-lock.json18717
-rw-r--r--frontend/package.json22
-rw-r--r--frontend/public/index.html42
-rw-r--r--frontend/src/App.css233
-rw-r--r--frontend/src/App.tsx109
-rw-r--r--frontend/src/api/Api.ts90
-rw-r--r--frontend/src/api/Auth.ts2
-rw-r--r--frontend/src/api/Games.ts16
-rw-r--r--frontend/src/api/Maps.ts158
-rw-r--r--frontend/src/api/Mod.ts98
-rw-r--r--frontend/src/api/User.ts18
-rw-r--r--frontend/src/components/ConfirmDialog.tsx51
-rw-r--r--frontend/src/components/Discussions.tsx327
-rw-r--r--frontend/src/components/GameCategory.tsx32
-rw-r--r--frontend/src/components/GameEntry.tsx38
-rw-r--r--frontend/src/components/Leaderboards.tsx295
-rw-r--r--frontend/src/components/Login.tsx128
-rw-r--r--frontend/src/components/MapEntry.tsx10
-rw-r--r--frontend/src/components/MessageDialog.tsx48
-rw-r--r--frontend/src/components/MessageDialogLoad.tsx46
-rw-r--r--frontend/src/components/ModMenu.tsx461
-rw-r--r--frontend/src/components/RankingEntry.tsx93
-rw-r--r--frontend/src/components/Sidebar.tsx381
-rw-r--r--frontend/src/components/Summary.tsx300
-rw-r--r--frontend/src/components/UploadRunDialog.tsx375
-rw-r--r--frontend/src/hooks/UseConfirm.tsx65
-rw-r--r--frontend/src/hooks/UseMessage.tsx60
-rw-r--r--frontend/src/hooks/UseMessageLoad.tsx55
-rw-r--r--frontend/src/images/Images.tsx48
-rw-r--r--frontend/src/images/svgs/steam.tsx7
-rw-r--r--frontend/src/index.tsx8
-rw-r--r--frontend/src/pages/About.tsx62
-rw-r--r--frontend/src/pages/Games.tsx55
-rw-r--r--frontend/src/pages/Homepage.tsx43
-rw-r--r--frontend/src/pages/Maplist.tsx234
-rw-r--r--frontend/src/pages/Maps.tsx166
-rw-r--r--frontend/src/pages/Profile.tsx672
-rw-r--r--frontend/src/pages/Rankings.tsx320
-rw-r--r--frontend/src/pages/Rules.tsx64
-rw-r--r--frontend/src/pages/User.tsx525
-rw-r--r--frontend/src/types/Chapters.ts18
-rw-r--r--frontend/src/types/Content.ts8
-rw-r--r--frontend/src/types/Game.ts15
-rw-r--r--frontend/src/types/Map.ts36
-rw-r--r--frontend/src/types/MapNames.ts220
-rw-r--r--frontend/src/types/Pagination.ts2
-rw-r--r--frontend/src/types/Profile.ts19
-rw-r--r--frontend/src/types/Ranking.ts38
-rw-r--r--frontend/src/types/Search.ts4
-rw-r--r--frontend/src/utils/Jwt.ts32
-rw-r--r--frontend/src/utils/Time.ts64
-rw-r--r--frontend/tsconfig.json43
-rw-r--r--frontend/tsconfig.node.json10
-rw-r--r--frontend/vite.config.ts38
58 files changed, 6155 insertions, 18913 deletions
diff --git a/frontend/.env.example b/frontend/.env.example
new file mode 100644
index 0000000..1e3e5e3
--- /dev/null
+++ b/frontend/.env.example
@@ -0,0 +1 @@
VITE_API_TARGET="https://lp.pektezol.dev" \ No newline at end of file
diff --git a/frontend/.prettierrc b/frontend/.prettierrc
new file mode 100644
index 0000000..30dce81
--- /dev/null
+++ b/frontend/.prettierrc
@@ -0,0 +1,11 @@
1{
2 "tabWidth": 2,
3 "useTabs": false,
4 "semi": true,
5 "singleQuote": false,
6 "trailingComma": "es5",
7 "printWidth": 80,
8 "bracketSpacing": true,
9 "jsxBracketSameLine": false,
10 "arrowParens": "avoid"
11}
diff --git a/frontend/craco.config.js b/frontend/craco.config.js
deleted file mode 100644
index 79037fa..0000000
--- a/frontend/craco.config.js
+++ /dev/null
@@ -1,14 +0,0 @@
1const CracoAlias = require('craco-alias');
2
3module.exports = {
4 plugins: [
5 {
6 plugin: CracoAlias,
7 options: {
8 source: 'tsconfig',
9 baseUrl: './src',
10 tsConfigPath: './tsconfig.paths.json',
11 },
12 },
13 ],
14}; \ No newline at end of file
diff --git a/frontend/index.html b/frontend/index.html
new file mode 100644
index 0000000..7538ee9
--- /dev/null
+++ b/frontend/index.html
@@ -0,0 +1,21 @@
1<!DOCTYPE html>
2<html lang="en">
3
4<head>
5 <meta charset="utf-8" />
6 <link rel="icon" href="/favicon.ico" />
7 <meta name="viewport" content="width=device-width, initial-scale=1" />
8 <meta name="theme-color" content="#000000" />
9 <link rel="apple-touch-icon" href="/logo192.png" />
10 <link href="/src/style.css" rel="stylesheet">
11 <link rel="manifest" href="/manifest.json" />
12 <title>LPHUB</title>
13</head>
14
15<body>
16 <noscript>You need to enable JavaScript to run this app.</noscript>
17 <div id="root"></div>
18 <script type="module" src="/src/index.tsx"></script>
19</body>
20
21</html> \ No newline at end of file
diff --git a/frontend/package-lock.json b/frontend/package-lock.json
index 9ee52eb..f2ae350 100644
--- a/frontend/package-lock.json
+++ b/frontend/package-lock.json
@@ -9,49 +9,42 @@
9 "version": "0.1.0", 9 "version": "0.1.0",
10 "dependencies": { 10 "dependencies": {
11 "@nekz/sdp": "^0.9.0", 11 "@nekz/sdp": "^0.9.0",
12 "@tailwindcss/vite": "^4.1.11",
12 "@testing-library/jest-dom": "^5.17.0", 13 "@testing-library/jest-dom": "^5.17.0",
13 "@testing-library/react": "^13.4.0", 14 "@testing-library/react": "^13.4.0",
14 "@testing-library/user-event": "^13.5.0", 15 "@testing-library/user-event": "^13.5.0",
15 "@types/jest": "^27.5.2", 16 "@types/jest": "^27.5.2",
16 "@types/node": "^16.18.105", 17 "@types/node": "^20.19.9",
17 "@types/react": "^18.3.3", 18 "@types/react": "^18.3.3",
18 "@types/react-dom": "^18.3.0", 19 "@types/react-dom": "^18.3.0",
20 "@types/react-helmet": "^6.1.11",
21 "@vitejs/plugin-react": "^5.0.0",
19 "axios": "^1.7.4", 22 "axios": "^1.7.4",
20 "react": "^18.3.1", 23 "react": "^18.3.1",
21 "react-dom": "^18.3.1", 24 "react-dom": "^18.3.1",
22 "react-helmet": "^6.1.0", 25 "react-helmet": "^6.1.0",
23 "react-markdown": "^9.0.1", 26 "react-markdown": "^9.0.1",
24 "react-router-dom": "^6.26.1", 27 "react-router-dom": "^6.26.1",
25 "react-scripts": "5.0.1", 28 "tailwindcss": "^4.1.11",
26 "typescript": "^4.9.5", 29 "typescript": "^4.9.5",
30 "vite": "^7.1.2",
27 "web-vitals": "^2.1.4" 31 "web-vitals": "^2.1.4"
28 }, 32 },
29 "devDependencies": { 33 "devDependencies": {
30 "@craco/craco": "^7.1.0", 34 "prettier": "^3.4.2"
31 "@types/react-helmet": "^6.1.11",
32 "craco-alias": "^3.0.1"
33 } 35 }
34 }, 36 },
35 "node_modules/@adobe/css-tools": { 37 "node_modules/@adobe/css-tools": {
36 "version": "4.4.0", 38 "version": "4.4.1",
37 "resolved": "https://registry.npmjs.org/@adobe/css-tools/-/css-tools-4.4.0.tgz", 39 "resolved": "https://registry.npmjs.org/@adobe/css-tools/-/css-tools-4.4.1.tgz",
38 "integrity": "sha512-Ff9+ksdQQB3rMncgqDK78uLznstjyfIf2Arnh22pW8kBpLs6rpKDwgnZT46hin5Hl1WzazzK64DOrhSwYpS7bQ==" 40 "integrity": "sha512-12WGKBQzjUAI4ayyF4IAtfw2QR/IDoqk6jTddXDhtYTJF9ASmoE1zst7cVtP0aL/F1jUJL5r+JxKXKEgHNbEUQ==",
39 }, 41 "license": "MIT"
40 "node_modules/@alloc/quick-lru": {
41 "version": "5.2.0",
42 "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz",
43 "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==",
44 "engines": {
45 "node": ">=10"
46 },
47 "funding": {
48 "url": "https://github.com/sponsors/sindresorhus"
49 }
50 }, 42 },
51 "node_modules/@ampproject/remapping": { 43 "node_modules/@ampproject/remapping": {
52 "version": "2.3.0", 44 "version": "2.3.0",
53 "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", 45 "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz",
54 "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", 46 "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==",
47 "license": "Apache-2.0",
55 "dependencies": { 48 "dependencies": {
56 "@jridgewell/gen-mapping": "^0.3.5", 49 "@jridgewell/gen-mapping": "^0.3.5",
57 "@jridgewell/trace-mapping": "^0.3.24" 50 "@jridgewell/trace-mapping": "^0.3.24"
@@ -61,40 +54,44 @@
61 } 54 }
62 }, 55 },
63 "node_modules/@babel/code-frame": { 56 "node_modules/@babel/code-frame": {
64 "version": "7.24.7", 57 "version": "7.27.1",
65 "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.7.tgz", 58 "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz",
66 "integrity": "sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==", 59 "integrity": "sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==",
60 "license": "MIT",
67 "dependencies": { 61 "dependencies": {
68 "@babel/highlight": "^7.24.7", 62 "@babel/helper-validator-identifier": "^7.27.1",
69 "picocolors": "^1.0.0" 63 "js-tokens": "^4.0.0",
64 "picocolors": "^1.1.1"
70 }, 65 },
71 "engines": { 66 "engines": {
72 "node": ">=6.9.0" 67 "node": ">=6.9.0"
73 } 68 }
74 }, 69 },
75 "node_modules/@babel/compat-data": { 70 "node_modules/@babel/compat-data": {
76 "version": "7.25.2", 71 "version": "7.28.0",
77 "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.25.2.tgz", 72 "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.28.0.tgz",
78 "integrity": "sha512-bYcppcpKBvX4znYaPEeFau03bp89ShqNMLs+rmdptMw+heSZh9+z84d2YG+K7cYLbWwzdjtDoW/uqZmPjulClQ==", 73 "integrity": "sha512-60X7qkglvrap8mn1lh2ebxXdZYtUcpd7gsmy9kLaBJ4i/WdY8PqTSdxyA8qraikqKQK5C1KRBKXqznrVapyNaw==",
74 "license": "MIT",
79 "engines": { 75 "engines": {
80 "node": ">=6.9.0" 76 "node": ">=6.9.0"
81 } 77 }
82 }, 78 },
83 "node_modules/@babel/core": { 79 "node_modules/@babel/core": {
84 "version": "7.25.2", 80 "version": "7.28.0",
85 "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.25.2.tgz", 81 "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.28.0.tgz",
86 "integrity": "sha512-BBt3opiCOxUr9euZ5/ro/Xv8/V7yJ5bjYMqG/C1YAo8MIKAnumZalCN+msbci3Pigy4lIQfPUpfMM27HMGaYEA==", 82 "integrity": "sha512-UlLAnTPrFdNGoFtbSXwcGFQBtQZJCNjaN6hQNP3UPvuNXT1i82N26KL3dZeIpNalWywr9IuQuncaAfUaS1g6sQ==",
83 "license": "MIT",
87 "dependencies": { 84 "dependencies": {
88 "@ampproject/remapping": "^2.2.0", 85 "@ampproject/remapping": "^2.2.0",
89 "@babel/code-frame": "^7.24.7", 86 "@babel/code-frame": "^7.27.1",
90 "@babel/generator": "^7.25.0", 87 "@babel/generator": "^7.28.0",
91 "@babel/helper-compilation-targets": "^7.25.2", 88 "@babel/helper-compilation-targets": "^7.27.2",
92 "@babel/helper-module-transforms": "^7.25.2", 89 "@babel/helper-module-transforms": "^7.27.3",
93 "@babel/helpers": "^7.25.0", 90 "@babel/helpers": "^7.27.6",
94 "@babel/parser": "^7.25.0", 91 "@babel/parser": "^7.28.0",
95 "@babel/template": "^7.25.0", 92 "@babel/template": "^7.27.2",
96 "@babel/traverse": "^7.25.2", 93 "@babel/traverse": "^7.28.0",
97 "@babel/types": "^7.25.2", 94 "@babel/types": "^7.28.0",
98 "convert-source-map": "^2.0.0", 95 "convert-source-map": "^2.0.0",
99 "debug": "^4.1.0", 96 "debug": "^4.1.0",
100 "gensync": "^1.0.0-beta.2", 97 "gensync": "^1.0.0-beta.2",
@@ -109,92 +106,31 @@
109 "url": "https://opencollective.com/babel" 106 "url": "https://opencollective.com/babel"
110 } 107 }
111 }, 108 },
112 "node_modules/@babel/core/node_modules/semver": {
113 "version": "6.3.1",
114 "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
115 "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
116 "bin": {
117 "semver": "bin/semver.js"
118 }
119 },
120 "node_modules/@babel/eslint-parser": {
121 "version": "7.25.1",
122 "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.25.1.tgz",
123 "integrity": "sha512-Y956ghgTT4j7rKesabkh5WeqgSFZVFwaPR0IWFm7KFHFmmJ4afbG49SmfW4S+GyRPx0Dy5jxEWA5t0rpxfElWg==",
124 "dependencies": {
125 "@nicolo-ribaudo/eslint-scope-5-internals": "5.1.1-v1",
126 "eslint-visitor-keys": "^2.1.0",
127 "semver": "^6.3.1"
128 },
129 "engines": {
130 "node": "^10.13.0 || ^12.13.0 || >=14.0.0"
131 },
132 "peerDependencies": {
133 "@babel/core": "^7.11.0",
134 "eslint": "^7.5.0 || ^8.0.0 || ^9.0.0"
135 }
136 },
137 "node_modules/@babel/eslint-parser/node_modules/eslint-visitor-keys": {
138 "version": "2.1.0",
139 "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz",
140 "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==",
141 "engines": {
142 "node": ">=10"
143 }
144 },
145 "node_modules/@babel/eslint-parser/node_modules/semver": {
146 "version": "6.3.1",
147 "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
148 "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
149 "bin": {
150 "semver": "bin/semver.js"
151 }
152 },
153 "node_modules/@babel/generator": { 109 "node_modules/@babel/generator": {
154 "version": "7.25.0", 110 "version": "7.28.0",
155 "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.25.0.tgz", 111 "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.28.0.tgz",
156 "integrity": "sha512-3LEEcj3PVW8pW2R1SR1M89g/qrYk/m/mB/tLqn7dn4sbBUQyTqnlod+II2U4dqiGtUmkcnAmkMDralTFZttRiw==", 112 "integrity": "sha512-lJjzvrbEeWrhB4P3QBsH7tey117PjLZnDbLiQEKjQ/fNJTjuq4HSqgFA+UNSwZT8D7dxxbnuSBMsa1lrWzKlQg==",
157 "dependencies": { 113 "license": "MIT",
158 "@babel/types": "^7.25.0",
159 "@jridgewell/gen-mapping": "^0.3.5",
160 "@jridgewell/trace-mapping": "^0.3.25",
161 "jsesc": "^2.5.1"
162 },
163 "engines": {
164 "node": ">=6.9.0"
165 }
166 },
167 "node_modules/@babel/helper-annotate-as-pure": {
168 "version": "7.24.7",
169 "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.24.7.tgz",
170 "integrity": "sha512-BaDeOonYvhdKw+JoMVkAixAAJzG2jVPIwWoKBPdYuY9b452e2rPuI9QPYh3KpofZ3pW2akOmwZLOiOsHMiqRAg==",
171 "dependencies": {
172 "@babel/types": "^7.24.7"
173 },
174 "engines": {
175 "node": ">=6.9.0"
176 }
177 },
178 "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": {
179 "version": "7.24.7",
180 "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.24.7.tgz",
181 "integrity": "sha512-xZeCVVdwb4MsDBkkyZ64tReWYrLRHlMN72vP7Bdm3OUOuyFZExhsHUUnuWnm2/XOlAJzR0LfPpB56WXZn0X/lA==",
182 "dependencies": { 114 "dependencies": {
183 "@babel/traverse": "^7.24.7", 115 "@babel/parser": "^7.28.0",
184 "@babel/types": "^7.24.7" 116 "@babel/types": "^7.28.0",
117 "@jridgewell/gen-mapping": "^0.3.12",
118 "@jridgewell/trace-mapping": "^0.3.28",
119 "jsesc": "^3.0.2"
185 }, 120 },
186 "engines": { 121 "engines": {
187 "node": ">=6.9.0" 122 "node": ">=6.9.0"
188 } 123 }
189 }, 124 },
190 "node_modules/@babel/helper-compilation-targets": { 125 "node_modules/@babel/helper-compilation-targets": {
191 "version": "7.25.2", 126 "version": "7.27.2",
192 "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.2.tgz", 127 "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.2.tgz",
193 "integrity": "sha512-U2U5LsSaZ7TAt3cfaymQ8WHh0pxvdHoEk6HVpaexxixjyEquMh0L0YNJNM6CTGKMXV1iksi0iZkGw4AcFkPaaw==", 128 "integrity": "sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==",
129 "license": "MIT",
194 "dependencies": { 130 "dependencies": {
195 "@babel/compat-data": "^7.25.2", 131 "@babel/compat-data": "^7.27.2",
196 "@babel/helper-validator-option": "^7.24.8", 132 "@babel/helper-validator-option": "^7.27.1",
197 "browserslist": "^4.23.1", 133 "browserslist": "^4.24.0",
198 "lru-cache": "^5.1.1", 134 "lru-cache": "^5.1.1",
199 "semver": "^6.3.1" 135 "semver": "^6.3.1"
200 }, 136 },
@@ -202,114 +138,37 @@
202 "node": ">=6.9.0" 138 "node": ">=6.9.0"
203 } 139 }
204 }, 140 },
205 "node_modules/@babel/helper-compilation-targets/node_modules/semver": { 141 "node_modules/@babel/helper-globals": {
206 "version": "6.3.1", 142 "version": "7.28.0",
207 "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", 143 "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz",
208 "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", 144 "integrity": "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==",
209 "bin": { 145 "license": "MIT",
210 "semver": "bin/semver.js"
211 }
212 },
213 "node_modules/@babel/helper-create-class-features-plugin": {
214 "version": "7.25.0",
215 "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.25.0.tgz",
216 "integrity": "sha512-GYM6BxeQsETc9mnct+nIIpf63SAyzvyYN7UB/IlTyd+MBg06afFGp0mIeUqGyWgS2mxad6vqbMrHVlaL3m70sQ==",
217 "dependencies": {
218 "@babel/helper-annotate-as-pure": "^7.24.7",
219 "@babel/helper-member-expression-to-functions": "^7.24.8",
220 "@babel/helper-optimise-call-expression": "^7.24.7",
221 "@babel/helper-replace-supers": "^7.25.0",
222 "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7",
223 "@babel/traverse": "^7.25.0",
224 "semver": "^6.3.1"
225 },
226 "engines": {
227 "node": ">=6.9.0"
228 },
229 "peerDependencies": {
230 "@babel/core": "^7.0.0"
231 }
232 },
233 "node_modules/@babel/helper-create-class-features-plugin/node_modules/semver": {
234 "version": "6.3.1",
235 "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
236 "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
237 "bin": {
238 "semver": "bin/semver.js"
239 }
240 },
241 "node_modules/@babel/helper-create-regexp-features-plugin": {
242 "version": "7.25.2",
243 "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.25.2.tgz",
244 "integrity": "sha512-+wqVGP+DFmqwFD3EH6TMTfUNeqDehV3E/dl+Sd54eaXqm17tEUNbEIn4sVivVowbvUpOtIGxdo3GoXyDH9N/9g==",
245 "dependencies": {
246 "@babel/helper-annotate-as-pure": "^7.24.7",
247 "regexpu-core": "^5.3.1",
248 "semver": "^6.3.1"
249 },
250 "engines": {
251 "node": ">=6.9.0"
252 },
253 "peerDependencies": {
254 "@babel/core": "^7.0.0"
255 }
256 },
257 "node_modules/@babel/helper-create-regexp-features-plugin/node_modules/semver": {
258 "version": "6.3.1",
259 "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
260 "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
261 "bin": {
262 "semver": "bin/semver.js"
263 }
264 },
265 "node_modules/@babel/helper-define-polyfill-provider": {
266 "version": "0.6.2",
267 "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.2.tgz",
268 "integrity": "sha512-LV76g+C502biUK6AyZ3LK10vDpDyCzZnhZFXkH1L75zHPj68+qc8Zfpx2th+gzwA2MzyK+1g/3EPl62yFnVttQ==",
269 "dependencies": {
270 "@babel/helper-compilation-targets": "^7.22.6",
271 "@babel/helper-plugin-utils": "^7.22.5",
272 "debug": "^4.1.1",
273 "lodash.debounce": "^4.0.8",
274 "resolve": "^1.14.2"
275 },
276 "peerDependencies": {
277 "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0"
278 }
279 },
280 "node_modules/@babel/helper-member-expression-to-functions": {
281 "version": "7.24.8",
282 "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.24.8.tgz",
283 "integrity": "sha512-LABppdt+Lp/RlBxqrh4qgf1oEH/WxdzQNDJIu5gC/W1GyvPVrOBiItmmM8wan2fm4oYqFuFfkXmlGpLQhPY8CA==",
284 "dependencies": {
285 "@babel/traverse": "^7.24.8",
286 "@babel/types": "^7.24.8"
287 },
288 "engines": { 146 "engines": {
289 "node": ">=6.9.0" 147 "node": ">=6.9.0"
290 } 148 }
291 }, 149 },
292 "node_modules/@babel/helper-module-imports": { 150 "node_modules/@babel/helper-module-imports": {
293 "version": "7.24.7", 151 "version": "7.27.1",
294 "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.7.tgz", 152 "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.27.1.tgz",
295 "integrity": "sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==", 153 "integrity": "sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==",
154 "license": "MIT",
296 "dependencies": { 155 "dependencies": {
297 "@babel/traverse": "^7.24.7", 156 "@babel/traverse": "^7.27.1",
298 "@babel/types": "^7.24.7" 157 "@babel/types": "^7.27.1"
299 }, 158 },
300 "engines": { 159 "engines": {
301 "node": ">=6.9.0" 160 "node": ">=6.9.0"
302 } 161 }
303 }, 162 },
304 "node_modules/@babel/helper-module-transforms": { 163 "node_modules/@babel/helper-module-transforms": {
305 "version": "7.25.2", 164 "version": "7.27.3",
306 "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.25.2.tgz", 165 "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.27.3.tgz",
307 "integrity": "sha512-BjyRAbix6j/wv83ftcVJmBt72QtHI56C7JXZoG2xATiLpmoC7dpd8WnkikExHDVPpi/3qCmO6WY1EaXOluiecQ==", 166 "integrity": "sha512-dSOvYwvyLsWBeIRyOeHXp5vPj5l1I011r52FM1+r1jCERv+aFXYk4whgQccYEGYxK2H3ZAIA8nuPkQ0HaUo3qg==",
167 "license": "MIT",
308 "dependencies": { 168 "dependencies": {
309 "@babel/helper-module-imports": "^7.24.7", 169 "@babel/helper-module-imports": "^7.27.1",
310 "@babel/helper-simple-access": "^7.24.7", 170 "@babel/helper-validator-identifier": "^7.27.1",
311 "@babel/helper-validator-identifier": "^7.24.7", 171 "@babel/traverse": "^7.27.3"
312 "@babel/traverse": "^7.25.2"
313 }, 172 },
314 "engines": { 173 "engines": {
315 "node": ">=6.9.0" 174 "node": ">=6.9.0"
@@ -318,150 +177,62 @@
318 "@babel/core": "^7.0.0" 177 "@babel/core": "^7.0.0"
319 } 178 }
320 }, 179 },
321 "node_modules/@babel/helper-optimise-call-expression": {
322 "version": "7.24.7",
323 "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.24.7.tgz",
324 "integrity": "sha512-jKiTsW2xmWwxT1ixIdfXUZp+P5yURx2suzLZr5Hi64rURpDYdMW0pv+Uf17EYk2Rd428Lx4tLsnjGJzYKDM/6A==",
325 "dependencies": {
326 "@babel/types": "^7.24.7"
327 },
328 "engines": {
329 "node": ">=6.9.0"
330 }
331 },
332 "node_modules/@babel/helper-plugin-utils": { 180 "node_modules/@babel/helper-plugin-utils": {
333 "version": "7.24.8", 181 "version": "7.27.1",
334 "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.8.tgz", 182 "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.27.1.tgz",
335 "integrity": "sha512-FFWx5142D8h2Mgr/iPVGH5G7w6jDn4jUSpZTyDnQO0Yn7Ks2Kuz6Pci8H6MPCoUJegd/UZQ3tAvfLCxQSnWWwg==", 183 "integrity": "sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==",
336 "engines": { 184 "license": "MIT",
337 "node": ">=6.9.0"
338 }
339 },
340 "node_modules/@babel/helper-remap-async-to-generator": {
341 "version": "7.25.0",
342 "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.25.0.tgz",
343 "integrity": "sha512-NhavI2eWEIz/H9dbrG0TuOicDhNexze43i5z7lEqwYm0WEZVTwnPpA0EafUTP7+6/W79HWIP2cTe3Z5NiSTVpw==",
344 "dependencies": {
345 "@babel/helper-annotate-as-pure": "^7.24.7",
346 "@babel/helper-wrap-function": "^7.25.0",
347 "@babel/traverse": "^7.25.0"
348 },
349 "engines": {
350 "node": ">=6.9.0"
351 },
352 "peerDependencies": {
353 "@babel/core": "^7.0.0"
354 }
355 },
356 "node_modules/@babel/helper-replace-supers": {
357 "version": "7.25.0",
358 "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.25.0.tgz",
359 "integrity": "sha512-q688zIvQVYtZu+i2PsdIu/uWGRpfxzr5WESsfpShfZECkO+d2o+WROWezCi/Q6kJ0tfPa5+pUGUlfx2HhrA3Bg==",
360 "dependencies": {
361 "@babel/helper-member-expression-to-functions": "^7.24.8",
362 "@babel/helper-optimise-call-expression": "^7.24.7",
363 "@babel/traverse": "^7.25.0"
364 },
365 "engines": {
366 "node": ">=6.9.0"
367 },
368 "peerDependencies": {
369 "@babel/core": "^7.0.0"
370 }
371 },
372 "node_modules/@babel/helper-simple-access": {
373 "version": "7.24.7",
374 "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.24.7.tgz",
375 "integrity": "sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==",
376 "dependencies": {
377 "@babel/traverse": "^7.24.7",
378 "@babel/types": "^7.24.7"
379 },
380 "engines": {
381 "node": ">=6.9.0"
382 }
383 },
384 "node_modules/@babel/helper-skip-transparent-expression-wrappers": {
385 "version": "7.24.7",
386 "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.24.7.tgz",
387 "integrity": "sha512-IO+DLT3LQUElMbpzlatRASEyQtfhSE0+m465v++3jyyXeBTBUjtVZg28/gHeV5mrTJqvEKhKroBGAvhW+qPHiQ==",
388 "dependencies": {
389 "@babel/traverse": "^7.24.7",
390 "@babel/types": "^7.24.7"
391 },
392 "engines": { 185 "engines": {
393 "node": ">=6.9.0" 186 "node": ">=6.9.0"
394 } 187 }
395 }, 188 },
396 "node_modules/@babel/helper-string-parser": { 189 "node_modules/@babel/helper-string-parser": {
397 "version": "7.24.8", 190 "version": "7.27.1",
398 "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.8.tgz", 191 "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz",
399 "integrity": "sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ==", 192 "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==",
193 "license": "MIT",
400 "engines": { 194 "engines": {
401 "node": ">=6.9.0" 195 "node": ">=6.9.0"
402 } 196 }
403 }, 197 },
404 "node_modules/@babel/helper-validator-identifier": { 198 "node_modules/@babel/helper-validator-identifier": {
405 "version": "7.24.7", 199 "version": "7.27.1",
406 "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz", 200 "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.27.1.tgz",
407 "integrity": "sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==", 201 "integrity": "sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==",
202 "license": "MIT",
408 "engines": { 203 "engines": {
409 "node": ">=6.9.0" 204 "node": ">=6.9.0"
410 } 205 }
411 }, 206 },
412 "node_modules/@babel/helper-validator-option": { 207 "node_modules/@babel/helper-validator-option": {
413 "version": "7.24.8", 208 "version": "7.27.1",
414 "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.24.8.tgz", 209 "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz",
415 "integrity": "sha512-xb8t9tD1MHLungh/AIoWYN+gVHaB9kwlu8gffXGSt3FFEIT7RjS+xWbc2vUD1UTZdIpKj/ab3rdqJ7ufngyi2Q==", 210 "integrity": "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==",
416 "engines": { 211 "license": "MIT",
417 "node": ">=6.9.0"
418 }
419 },
420 "node_modules/@babel/helper-wrap-function": {
421 "version": "7.25.0",
422 "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.25.0.tgz",
423 "integrity": "sha512-s6Q1ebqutSiZnEjaofc/UKDyC4SbzV5n5SrA2Gq8UawLycr3i04f1dX4OzoQVnexm6aOCh37SQNYlJ/8Ku+PMQ==",
424 "dependencies": {
425 "@babel/template": "^7.25.0",
426 "@babel/traverse": "^7.25.0",
427 "@babel/types": "^7.25.0"
428 },
429 "engines": { 212 "engines": {
430 "node": ">=6.9.0" 213 "node": ">=6.9.0"
431 } 214 }
432 }, 215 },
433 "node_modules/@babel/helpers": { 216 "node_modules/@babel/helpers": {
434 "version": "7.25.0", 217 "version": "7.28.2",
435 "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.25.0.tgz", 218 "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.28.2.tgz",
436 "integrity": "sha512-MjgLZ42aCm0oGjJj8CtSM3DB8NOOf8h2l7DCTePJs29u+v7yO/RBX9nShlKMgFnRks/Q4tBAe7Hxnov9VkGwLw==", 219 "integrity": "sha512-/V9771t+EgXz62aCcyofnQhGM8DQACbRhvzKFsXKC9QM+5MadF8ZmIm0crDMaz3+o0h0zXfJnd4EhbYbxsrcFw==",
437 "dependencies": { 220 "license": "MIT",
438 "@babel/template": "^7.25.0",
439 "@babel/types": "^7.25.0"
440 },
441 "engines": {
442 "node": ">=6.9.0"
443 }
444 },
445 "node_modules/@babel/highlight": {
446 "version": "7.24.7",
447 "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.7.tgz",
448 "integrity": "sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==",
449 "dependencies": { 221 "dependencies": {
450 "@babel/helper-validator-identifier": "^7.24.7", 222 "@babel/template": "^7.27.2",
451 "chalk": "^2.4.2", 223 "@babel/types": "^7.28.2"
452 "js-tokens": "^4.0.0",
453 "picocolors": "^1.0.0"
454 }, 224 },
455 "engines": { 225 "engines": {
456 "node": ">=6.9.0" 226 "node": ">=6.9.0"
457 } 227 }
458 }, 228 },
459 "node_modules/@babel/parser": { 229 "node_modules/@babel/parser": {
460 "version": "7.25.3", 230 "version": "7.28.0",
461 "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.25.3.tgz", 231 "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.0.tgz",
462 "integrity": "sha512-iLTJKDbJ4hMvFPgQwwsVoxtHyWpKKPBrxkANrSYewDPaPpT5py5yeVkgPIJ7XYXhndxJpaA3PyALSXQ7u8e/Dw==", 232 "integrity": "sha512-jVZGvOxOuNSsuQuLRTh13nU0AogFlw32w/MT+LV6D3sP5WdbW61E77RnkbaO2dUvmPAYrBDJXGn5gGS6tH4j8g==",
233 "license": "MIT",
463 "dependencies": { 234 "dependencies": {
464 "@babel/types": "^7.25.2" 235 "@babel/types": "^7.28.0"
465 }, 236 },
466 "bin": { 237 "bin": {
467 "parser": "bin/babel-parser.js" 238 "parser": "bin/babel-parser.js"
@@ -470,1471 +241,13 @@
470 "node": ">=6.0.0" 241 "node": ">=6.0.0"
471 } 242 }
472 }, 243 },
473 "node_modules/@babel/plugin-bugfix-firefox-class-in-computed-class-key": { 244 "node_modules/@babel/plugin-transform-react-jsx-self": {
474 "version": "7.25.3", 245 "version": "7.27.1",
475 "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", 246 "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.27.1.tgz",
476 "integrity": "sha512-wUrcsxZg6rqBXG05HG1FPYgsP6EvwF4WpBbxIpWIIYnH8wG0gzx3yZY3dtEHas4sTAOGkbTsc9EGPxwff8lRoA==", 247 "integrity": "sha512-6UzkCs+ejGdZ5mFFC/OCUrv028ab2fp1znZmCZjAOBKiBK2jXD1O+BPSfX8X2qjJ75fZBMSnQn3Rq2mrBJK2mw==",
477 "dependencies": { 248 "license": "MIT",
478 "@babel/helper-plugin-utils": "^7.24.8",
479 "@babel/traverse": "^7.25.3"
480 },
481 "engines": {
482 "node": ">=6.9.0"
483 },
484 "peerDependencies": {
485 "@babel/core": "^7.0.0"
486 }
487 },
488 "node_modules/@babel/plugin-bugfix-safari-class-field-initializer-scope": {
489 "version": "7.25.0",
490 "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.25.0.tgz",
491 "integrity": "sha512-Bm4bH2qsX880b/3ziJ8KD711LT7z4u8CFudmjqle65AZj/HNUFhEf90dqYv6O86buWvSBmeQDjv0Tn2aF/bIBA==",
492 "dependencies": {
493 "@babel/helper-plugin-utils": "^7.24.8"
494 },
495 "engines": {
496 "node": ">=6.9.0"
497 },
498 "peerDependencies": {
499 "@babel/core": "^7.0.0"
500 }
501 },
502 "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": {
503 "version": "7.25.0",
504 "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",
505 "integrity": "sha512-lXwdNZtTmeVOOFtwM/WDe7yg1PL8sYhRk/XH0FzbR2HDQ0xC+EnQ/JHeoMYSavtU115tnUk0q9CDyq8si+LMAA==",
506 "dependencies": {
507 "@babel/helper-plugin-utils": "^7.24.8"
508 },
509 "engines": {
510 "node": ">=6.9.0"
511 },
512 "peerDependencies": {
513 "@babel/core": "^7.0.0"
514 }
515 },
516 "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": {
517 "version": "7.24.7",
518 "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",
519 "integrity": "sha512-+izXIbke1T33mY4MSNnrqhPXDz01WYhEf3yF5NbnUtkiNnm+XBZJl3kNfoK6NKmYlz/D07+l2GWVK/QfDkNCuQ==",
520 "dependencies": {
521 "@babel/helper-plugin-utils": "^7.24.7",
522 "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7",
523 "@babel/plugin-transform-optional-chaining": "^7.24.7"
524 },
525 "engines": {
526 "node": ">=6.9.0"
527 },
528 "peerDependencies": {
529 "@babel/core": "^7.13.0"
530 }
531 },
532 "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": {
533 "version": "7.25.0",
534 "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",
535 "integrity": "sha512-tggFrk1AIShG/RUQbEwt2Tr/E+ObkfwrPjR6BjbRvsx24+PSjK8zrq0GWPNCjo8qpRx4DuJzlcvWJqlm+0h3kw==",
536 "dependencies": {
537 "@babel/helper-plugin-utils": "^7.24.8",
538 "@babel/traverse": "^7.25.0"
539 },
540 "engines": {
541 "node": ">=6.9.0"
542 },
543 "peerDependencies": {
544 "@babel/core": "^7.0.0"
545 }
546 },
547 "node_modules/@babel/plugin-proposal-class-properties": {
548 "version": "7.18.6",
549 "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz",
550 "integrity": "sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==",
551 "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-class-properties instead.",
552 "dependencies": {
553 "@babel/helper-create-class-features-plugin": "^7.18.6",
554 "@babel/helper-plugin-utils": "^7.18.6"
555 },
556 "engines": {
557 "node": ">=6.9.0"
558 },
559 "peerDependencies": {
560 "@babel/core": "^7.0.0-0"
561 }
562 },
563 "node_modules/@babel/plugin-proposal-decorators": {
564 "version": "7.24.7",
565 "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.24.7.tgz",
566 "integrity": "sha512-RL9GR0pUG5Kc8BUWLNDm2T5OpYwSX15r98I0IkgmRQTXuELq/OynH8xtMTMvTJFjXbMWFVTKtYkTaYQsuAwQlQ==",
567 "dependencies": {
568 "@babel/helper-create-class-features-plugin": "^7.24.7",
569 "@babel/helper-plugin-utils": "^7.24.7",
570 "@babel/plugin-syntax-decorators": "^7.24.7"
571 },
572 "engines": {
573 "node": ">=6.9.0"
574 },
575 "peerDependencies": {
576 "@babel/core": "^7.0.0-0"
577 }
578 },
579 "node_modules/@babel/plugin-proposal-nullish-coalescing-operator": {
580 "version": "7.18.6",
581 "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz",
582 "integrity": "sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==",
583 "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-nullish-coalescing-operator instead.",
584 "dependencies": {
585 "@babel/helper-plugin-utils": "^7.18.6",
586 "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3"
587 },
588 "engines": {
589 "node": ">=6.9.0"
590 },
591 "peerDependencies": {
592 "@babel/core": "^7.0.0-0"
593 }
594 },
595 "node_modules/@babel/plugin-proposal-numeric-separator": {
596 "version": "7.18.6",
597 "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz",
598 "integrity": "sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==",
599 "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-numeric-separator instead.",
600 "dependencies": {
601 "@babel/helper-plugin-utils": "^7.18.6",
602 "@babel/plugin-syntax-numeric-separator": "^7.10.4"
603 },
604 "engines": {
605 "node": ">=6.9.0"
606 },
607 "peerDependencies": {
608 "@babel/core": "^7.0.0-0"
609 }
610 },
611 "node_modules/@babel/plugin-proposal-optional-chaining": {
612 "version": "7.21.0",
613 "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.21.0.tgz",
614 "integrity": "sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA==",
615 "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-optional-chaining instead.",
616 "dependencies": {
617 "@babel/helper-plugin-utils": "^7.20.2",
618 "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0",
619 "@babel/plugin-syntax-optional-chaining": "^7.8.3"
620 },
621 "engines": {
622 "node": ">=6.9.0"
623 },
624 "peerDependencies": {
625 "@babel/core": "^7.0.0-0"
626 }
627 },
628 "node_modules/@babel/plugin-proposal-private-methods": {
629 "version": "7.18.6",
630 "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz",
631 "integrity": "sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==",
632 "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-private-methods instead.",
633 "dependencies": {
634 "@babel/helper-create-class-features-plugin": "^7.18.6",
635 "@babel/helper-plugin-utils": "^7.18.6"
636 },
637 "engines": {
638 "node": ">=6.9.0"
639 },
640 "peerDependencies": {
641 "@babel/core": "^7.0.0-0"
642 }
643 },
644 "node_modules/@babel/plugin-proposal-private-property-in-object": {
645 "version": "7.21.0-placeholder-for-preset-env.2",
646 "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",
647 "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==",
648 "engines": {
649 "node": ">=6.9.0"
650 },
651 "peerDependencies": {
652 "@babel/core": "^7.0.0-0"
653 }
654 },
655 "node_modules/@babel/plugin-syntax-async-generators": {
656 "version": "7.8.4",
657 "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz",
658 "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==",
659 "dependencies": {
660 "@babel/helper-plugin-utils": "^7.8.0"
661 },
662 "peerDependencies": {
663 "@babel/core": "^7.0.0-0"
664 }
665 },
666 "node_modules/@babel/plugin-syntax-bigint": {
667 "version": "7.8.3",
668 "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz",
669 "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==",
670 "dependencies": {
671 "@babel/helper-plugin-utils": "^7.8.0"
672 },
673 "peerDependencies": {
674 "@babel/core": "^7.0.0-0"
675 }
676 },
677 "node_modules/@babel/plugin-syntax-class-properties": {
678 "version": "7.12.13",
679 "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz",
680 "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==",
681 "dependencies": {
682 "@babel/helper-plugin-utils": "^7.12.13"
683 },
684 "peerDependencies": {
685 "@babel/core": "^7.0.0-0"
686 }
687 },
688 "node_modules/@babel/plugin-syntax-class-static-block": {
689 "version": "7.14.5",
690 "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz",
691 "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==",
692 "dependencies": {
693 "@babel/helper-plugin-utils": "^7.14.5"
694 },
695 "engines": {
696 "node": ">=6.9.0"
697 },
698 "peerDependencies": {
699 "@babel/core": "^7.0.0-0"
700 }
701 },
702 "node_modules/@babel/plugin-syntax-decorators": {
703 "version": "7.24.7",
704 "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.24.7.tgz",
705 "integrity": "sha512-Ui4uLJJrRV1lb38zg1yYTmRKmiZLiftDEvZN2iq3kd9kUFU+PttmzTbAFC2ucRk/XJmtek6G23gPsuZbhrT8fQ==",
706 "dependencies": {
707 "@babel/helper-plugin-utils": "^7.24.7"
708 },
709 "engines": {
710 "node": ">=6.9.0"
711 },
712 "peerDependencies": {
713 "@babel/core": "^7.0.0-0"
714 }
715 },
716 "node_modules/@babel/plugin-syntax-dynamic-import": {
717 "version": "7.8.3",
718 "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz",
719 "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==",
720 "dependencies": {
721 "@babel/helper-plugin-utils": "^7.8.0"
722 },
723 "peerDependencies": {
724 "@babel/core": "^7.0.0-0"
725 }
726 },
727 "node_modules/@babel/plugin-syntax-export-namespace-from": {
728 "version": "7.8.3",
729 "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz",
730 "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==",
731 "dependencies": {
732 "@babel/helper-plugin-utils": "^7.8.3"
733 },
734 "peerDependencies": {
735 "@babel/core": "^7.0.0-0"
736 }
737 },
738 "node_modules/@babel/plugin-syntax-flow": {
739 "version": "7.24.7",
740 "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.24.7.tgz",
741 "integrity": "sha512-9G8GYT/dxn/D1IIKOUBmGX0mnmj46mGH9NnZyJLwtCpgh5f7D2VbuKodb+2s9m1Yavh1s7ASQN8lf0eqrb1LTw==",
742 "dependencies": {
743 "@babel/helper-plugin-utils": "^7.24.7"
744 },
745 "engines": {
746 "node": ">=6.9.0"
747 },
748 "peerDependencies": {
749 "@babel/core": "^7.0.0-0"
750 }
751 },
752 "node_modules/@babel/plugin-syntax-import-assertions": {
753 "version": "7.24.7",
754 "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.24.7.tgz",
755 "integrity": "sha512-Ec3NRUMoi8gskrkBe3fNmEQfxDvY8bgfQpz6jlk/41kX9eUjvpyqWU7PBP/pLAvMaSQjbMNKJmvX57jP+M6bPg==",
756 "dependencies": {
757 "@babel/helper-plugin-utils": "^7.24.7"
758 },
759 "engines": {
760 "node": ">=6.9.0"
761 },
762 "peerDependencies": {
763 "@babel/core": "^7.0.0-0"
764 }
765 },
766 "node_modules/@babel/plugin-syntax-import-attributes": {
767 "version": "7.24.7",
768 "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.24.7.tgz",
769 "integrity": "sha512-hbX+lKKeUMGihnK8nvKqmXBInriT3GVjzXKFriV3YC6APGxMbP8RZNFwy91+hocLXq90Mta+HshoB31802bb8A==",
770 "dependencies": {
771 "@babel/helper-plugin-utils": "^7.24.7"
772 },
773 "engines": {
774 "node": ">=6.9.0"
775 },
776 "peerDependencies": {
777 "@babel/core": "^7.0.0-0"
778 }
779 },
780 "node_modules/@babel/plugin-syntax-import-meta": {
781 "version": "7.10.4",
782 "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz",
783 "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==",
784 "dependencies": {
785 "@babel/helper-plugin-utils": "^7.10.4"
786 },
787 "peerDependencies": {
788 "@babel/core": "^7.0.0-0"
789 }
790 },
791 "node_modules/@babel/plugin-syntax-json-strings": {
792 "version": "7.8.3",
793 "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz",
794 "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==",
795 "dependencies": {
796 "@babel/helper-plugin-utils": "^7.8.0"
797 },
798 "peerDependencies": {
799 "@babel/core": "^7.0.0-0"
800 }
801 },
802 "node_modules/@babel/plugin-syntax-jsx": {
803 "version": "7.24.7",
804 "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.24.7.tgz",
805 "integrity": "sha512-6ddciUPe/mpMnOKv/U+RSd2vvVy+Yw/JfBB0ZHYjEZt9NLHmCUylNYlsbqCCS1Bffjlb0fCwC9Vqz+sBz6PsiQ==",
806 "dependencies": {
807 "@babel/helper-plugin-utils": "^7.24.7"
808 },
809 "engines": {
810 "node": ">=6.9.0"
811 },
812 "peerDependencies": {
813 "@babel/core": "^7.0.0-0"
814 }
815 },
816 "node_modules/@babel/plugin-syntax-logical-assignment-operators": {
817 "version": "7.10.4",
818 "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz",
819 "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==",
820 "dependencies": {
821 "@babel/helper-plugin-utils": "^7.10.4"
822 },
823 "peerDependencies": {
824 "@babel/core": "^7.0.0-0"
825 }
826 },
827 "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": {
828 "version": "7.8.3",
829 "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz",
830 "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==",
831 "dependencies": {
832 "@babel/helper-plugin-utils": "^7.8.0"
833 },
834 "peerDependencies": {
835 "@babel/core": "^7.0.0-0"
836 }
837 },
838 "node_modules/@babel/plugin-syntax-numeric-separator": {
839 "version": "7.10.4",
840 "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz",
841 "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==",
842 "dependencies": {
843 "@babel/helper-plugin-utils": "^7.10.4"
844 },
845 "peerDependencies": {
846 "@babel/core": "^7.0.0-0"
847 }
848 },
849 "node_modules/@babel/plugin-syntax-object-rest-spread": {
850 "version": "7.8.3",
851 "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz",
852 "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==",
853 "dependencies": {
854 "@babel/helper-plugin-utils": "^7.8.0"
855 },
856 "peerDependencies": {
857 "@babel/core": "^7.0.0-0"
858 }
859 },
860 "node_modules/@babel/plugin-syntax-optional-catch-binding": {
861 "version": "7.8.3",
862 "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz",
863 "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==",
864 "dependencies": {
865 "@babel/helper-plugin-utils": "^7.8.0"
866 },
867 "peerDependencies": {
868 "@babel/core": "^7.0.0-0"
869 }
870 },
871 "node_modules/@babel/plugin-syntax-optional-chaining": {
872 "version": "7.8.3",
873 "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz",
874 "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==",
875 "dependencies": {
876 "@babel/helper-plugin-utils": "^7.8.0"
877 },
878 "peerDependencies": {
879 "@babel/core": "^7.0.0-0"
880 }
881 },
882 "node_modules/@babel/plugin-syntax-private-property-in-object": {
883 "version": "7.14.5",
884 "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz",
885 "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==",
886 "dependencies": {
887 "@babel/helper-plugin-utils": "^7.14.5"
888 },
889 "engines": {
890 "node": ">=6.9.0"
891 },
892 "peerDependencies": {
893 "@babel/core": "^7.0.0-0"
894 }
895 },
896 "node_modules/@babel/plugin-syntax-top-level-await": {
897 "version": "7.14.5",
898 "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz",
899 "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==",
900 "dependencies": {
901 "@babel/helper-plugin-utils": "^7.14.5"
902 },
903 "engines": {
904 "node": ">=6.9.0"
905 },
906 "peerDependencies": {
907 "@babel/core": "^7.0.0-0"
908 }
909 },
910 "node_modules/@babel/plugin-syntax-typescript": {
911 "version": "7.24.7",
912 "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.24.7.tgz",
913 "integrity": "sha512-c/+fVeJBB0FeKsFvwytYiUD+LBvhHjGSI0g446PRGdSVGZLRNArBUno2PETbAly3tpiNAQR5XaZ+JslxkotsbA==",
914 "dependencies": {
915 "@babel/helper-plugin-utils": "^7.24.7"
916 },
917 "engines": {
918 "node": ">=6.9.0"
919 },
920 "peerDependencies": {
921 "@babel/core": "^7.0.0-0"
922 }
923 },
924 "node_modules/@babel/plugin-syntax-unicode-sets-regex": {
925 "version": "7.18.6",
926 "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz",
927 "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==",
928 "dependencies": {
929 "@babel/helper-create-regexp-features-plugin": "^7.18.6",
930 "@babel/helper-plugin-utils": "^7.18.6"
931 },
932 "engines": {
933 "node": ">=6.9.0"
934 },
935 "peerDependencies": {
936 "@babel/core": "^7.0.0"
937 }
938 },
939 "node_modules/@babel/plugin-transform-arrow-functions": {
940 "version": "7.24.7",
941 "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.24.7.tgz",
942 "integrity": "sha512-Dt9LQs6iEY++gXUwY03DNFat5C2NbO48jj+j/bSAz6b3HgPs39qcPiYt77fDObIcFwj3/C2ICX9YMwGflUoSHQ==",
943 "dependencies": {
944 "@babel/helper-plugin-utils": "^7.24.7"
945 },
946 "engines": {
947 "node": ">=6.9.0"
948 },
949 "peerDependencies": {
950 "@babel/core": "^7.0.0-0"
951 }
952 },
953 "node_modules/@babel/plugin-transform-async-generator-functions": {
954 "version": "7.25.0",
955 "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.25.0.tgz",
956 "integrity": "sha512-uaIi2FdqzjpAMvVqvB51S42oC2JEVgh0LDsGfZVDysWE8LrJtQC2jvKmOqEYThKyB7bDEb7BP1GYWDm7tABA0Q==",
957 "dependencies": {
958 "@babel/helper-plugin-utils": "^7.24.8",
959 "@babel/helper-remap-async-to-generator": "^7.25.0",
960 "@babel/plugin-syntax-async-generators": "^7.8.4",
961 "@babel/traverse": "^7.25.0"
962 },
963 "engines": {
964 "node": ">=6.9.0"
965 },
966 "peerDependencies": {
967 "@babel/core": "^7.0.0-0"
968 }
969 },
970 "node_modules/@babel/plugin-transform-async-to-generator": {
971 "version": "7.24.7",
972 "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.24.7.tgz",
973 "integrity": "sha512-SQY01PcJfmQ+4Ash7NE+rpbLFbmqA2GPIgqzxfFTL4t1FKRq4zTms/7htKpoCUI9OcFYgzqfmCdH53s6/jn5fA==",
974 "dependencies": {
975 "@babel/helper-module-imports": "^7.24.7",
976 "@babel/helper-plugin-utils": "^7.24.7",
977 "@babel/helper-remap-async-to-generator": "^7.24.7"
978 },
979 "engines": {
980 "node": ">=6.9.0"
981 },
982 "peerDependencies": {
983 "@babel/core": "^7.0.0-0"
984 }
985 },
986 "node_modules/@babel/plugin-transform-block-scoped-functions": {
987 "version": "7.24.7",
988 "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.24.7.tgz",
989 "integrity": "sha512-yO7RAz6EsVQDaBH18IDJcMB1HnrUn2FJ/Jslc/WtPPWcjhpUJXU/rjbwmluzp7v/ZzWcEhTMXELnnsz8djWDwQ==",
990 "dependencies": {
991 "@babel/helper-plugin-utils": "^7.24.7"
992 },
993 "engines": {
994 "node": ">=6.9.0"
995 },
996 "peerDependencies": {
997 "@babel/core": "^7.0.0-0"
998 }
999 },
1000 "node_modules/@babel/plugin-transform-block-scoping": {
1001 "version": "7.25.0",
1002 "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.25.0.tgz",
1003 "integrity": "sha512-yBQjYoOjXlFv9nlXb3f1casSHOZkWr29NX+zChVanLg5Nc157CrbEX9D7hxxtTpuFy7Q0YzmmWfJxzvps4kXrQ==",
1004 "dependencies": {
1005 "@babel/helper-plugin-utils": "^7.24.8"
1006 },
1007 "engines": {
1008 "node": ">=6.9.0"
1009 },
1010 "peerDependencies": {
1011 "@babel/core": "^7.0.0-0"
1012 }
1013 },
1014 "node_modules/@babel/plugin-transform-class-properties": {
1015 "version": "7.24.7",
1016 "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.24.7.tgz",
1017 "integrity": "sha512-vKbfawVYayKcSeSR5YYzzyXvsDFWU2mD8U5TFeXtbCPLFUqe7GyCgvO6XDHzje862ODrOwy6WCPmKeWHbCFJ4w==",
1018 "dependencies": {
1019 "@babel/helper-create-class-features-plugin": "^7.24.7",
1020 "@babel/helper-plugin-utils": "^7.24.7"
1021 },
1022 "engines": {
1023 "node": ">=6.9.0"
1024 },
1025 "peerDependencies": {
1026 "@babel/core": "^7.0.0-0"
1027 }
1028 },
1029 "node_modules/@babel/plugin-transform-class-static-block": {
1030 "version": "7.24.7",
1031 "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.24.7.tgz",
1032 "integrity": "sha512-HMXK3WbBPpZQufbMG4B46A90PkuuhN9vBCb5T8+VAHqvAqvcLi+2cKoukcpmUYkszLhScU3l1iudhrks3DggRQ==",
1033 "dependencies": {
1034 "@babel/helper-create-class-features-plugin": "^7.24.7",
1035 "@babel/helper-plugin-utils": "^7.24.7",
1036 "@babel/plugin-syntax-class-static-block": "^7.14.5"
1037 },
1038 "engines": {
1039 "node": ">=6.9.0"
1040 },
1041 "peerDependencies": {
1042 "@babel/core": "^7.12.0"
1043 }
1044 },
1045 "node_modules/@babel/plugin-transform-classes": {
1046 "version": "7.25.0",
1047 "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.25.0.tgz",
1048 "integrity": "sha512-xyi6qjr/fYU304fiRwFbekzkqVJZ6A7hOjWZd+89FVcBqPV3S9Wuozz82xdpLspckeaafntbzglaW4pqpzvtSw==",
1049 "dependencies": {
1050 "@babel/helper-annotate-as-pure": "^7.24.7",
1051 "@babel/helper-compilation-targets": "^7.24.8",
1052 "@babel/helper-plugin-utils": "^7.24.8",
1053 "@babel/helper-replace-supers": "^7.25.0",
1054 "@babel/traverse": "^7.25.0",
1055 "globals": "^11.1.0"
1056 },
1057 "engines": {
1058 "node": ">=6.9.0"
1059 },
1060 "peerDependencies": {
1061 "@babel/core": "^7.0.0-0"
1062 }
1063 },
1064 "node_modules/@babel/plugin-transform-computed-properties": {
1065 "version": "7.24.7",
1066 "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.24.7.tgz",
1067 "integrity": "sha512-25cS7v+707Gu6Ds2oY6tCkUwsJ9YIDbggd9+cu9jzzDgiNq7hR/8dkzxWfKWnTic26vsI3EsCXNd4iEB6e8esQ==",
1068 "dependencies": {
1069 "@babel/helper-plugin-utils": "^7.24.7",
1070 "@babel/template": "^7.24.7"
1071 },
1072 "engines": {
1073 "node": ">=6.9.0"
1074 },
1075 "peerDependencies": {
1076 "@babel/core": "^7.0.0-0"
1077 }
1078 },
1079 "node_modules/@babel/plugin-transform-destructuring": {
1080 "version": "7.24.8",
1081 "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.24.8.tgz",
1082 "integrity": "sha512-36e87mfY8TnRxc7yc6M9g9gOB7rKgSahqkIKwLpz4Ppk2+zC2Cy1is0uwtuSG6AE4zlTOUa+7JGz9jCJGLqQFQ==",
1083 "dependencies": {
1084 "@babel/helper-plugin-utils": "^7.24.8"
1085 },
1086 "engines": {
1087 "node": ">=6.9.0"
1088 },
1089 "peerDependencies": {
1090 "@babel/core": "^7.0.0-0"
1091 }
1092 },
1093 "node_modules/@babel/plugin-transform-dotall-regex": {
1094 "version": "7.24.7",
1095 "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.24.7.tgz",
1096 "integrity": "sha512-ZOA3W+1RRTSWvyqcMJDLqbchh7U4NRGqwRfFSVbOLS/ePIP4vHB5e8T8eXcuqyN1QkgKyj5wuW0lcS85v4CrSw==",
1097 "dependencies": {
1098 "@babel/helper-create-regexp-features-plugin": "^7.24.7",
1099 "@babel/helper-plugin-utils": "^7.24.7"
1100 },
1101 "engines": {
1102 "node": ">=6.9.0"
1103 },
1104 "peerDependencies": {
1105 "@babel/core": "^7.0.0-0"
1106 }
1107 },
1108 "node_modules/@babel/plugin-transform-duplicate-keys": {
1109 "version": "7.24.7",
1110 "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.24.7.tgz",
1111 "integrity": "sha512-JdYfXyCRihAe46jUIliuL2/s0x0wObgwwiGxw/UbgJBr20gQBThrokO4nYKgWkD7uBaqM7+9x5TU7NkExZJyzw==",
1112 "dependencies": {
1113 "@babel/helper-plugin-utils": "^7.24.7"
1114 },
1115 "engines": {
1116 "node": ">=6.9.0"
1117 },
1118 "peerDependencies": {
1119 "@babel/core": "^7.0.0-0"
1120 }
1121 },
1122 "node_modules/@babel/plugin-transform-duplicate-named-capturing-groups-regex": {
1123 "version": "7.25.0",
1124 "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.25.0.tgz",
1125 "integrity": "sha512-YLpb4LlYSc3sCUa35un84poXoraOiQucUTTu8X1j18JV+gNa8E0nyUf/CjZ171IRGr4jEguF+vzJU66QZhn29g==",
1126 "dependencies": {
1127 "@babel/helper-create-regexp-features-plugin": "^7.25.0",
1128 "@babel/helper-plugin-utils": "^7.24.8"
1129 },
1130 "engines": {
1131 "node": ">=6.9.0"
1132 },
1133 "peerDependencies": {
1134 "@babel/core": "^7.0.0"
1135 }
1136 },
1137 "node_modules/@babel/plugin-transform-dynamic-import": {
1138 "version": "7.24.7",
1139 "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.24.7.tgz",
1140 "integrity": "sha512-sc3X26PhZQDb3JhORmakcbvkeInvxz+A8oda99lj7J60QRuPZvNAk9wQlTBS1ZynelDrDmTU4pw1tyc5d5ZMUg==",
1141 "dependencies": {
1142 "@babel/helper-plugin-utils": "^7.24.7",
1143 "@babel/plugin-syntax-dynamic-import": "^7.8.3"
1144 },
1145 "engines": {
1146 "node": ">=6.9.0"
1147 },
1148 "peerDependencies": {
1149 "@babel/core": "^7.0.0-0"
1150 }
1151 },
1152 "node_modules/@babel/plugin-transform-exponentiation-operator": {
1153 "version": "7.24.7",
1154 "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.24.7.tgz",
1155 "integrity": "sha512-Rqe/vSc9OYgDajNIK35u7ot+KeCoetqQYFXM4Epf7M7ez3lWlOjrDjrwMei6caCVhfdw+mIKD4cgdGNy5JQotQ==",
1156 "dependencies": {
1157 "@babel/helper-builder-binary-assignment-operator-visitor": "^7.24.7",
1158 "@babel/helper-plugin-utils": "^7.24.7"
1159 },
1160 "engines": {
1161 "node": ">=6.9.0"
1162 },
1163 "peerDependencies": {
1164 "@babel/core": "^7.0.0-0"
1165 }
1166 },
1167 "node_modules/@babel/plugin-transform-export-namespace-from": {
1168 "version": "7.24.7",
1169 "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.24.7.tgz",
1170 "integrity": "sha512-v0K9uNYsPL3oXZ/7F9NNIbAj2jv1whUEtyA6aujhekLs56R++JDQuzRcP2/z4WX5Vg/c5lE9uWZA0/iUoFhLTA==",
1171 "dependencies": {
1172 "@babel/helper-plugin-utils": "^7.24.7",
1173 "@babel/plugin-syntax-export-namespace-from": "^7.8.3"
1174 },
1175 "engines": {
1176 "node": ">=6.9.0"
1177 },
1178 "peerDependencies": {
1179 "@babel/core": "^7.0.0-0"
1180 }
1181 },
1182 "node_modules/@babel/plugin-transform-flow-strip-types": {
1183 "version": "7.25.2",
1184 "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.25.2.tgz",
1185 "integrity": "sha512-InBZ0O8tew5V0K6cHcQ+wgxlrjOw1W4wDXLkOTjLRD8GYhTSkxTVBtdy3MMtvYBrbAWa1Qm3hNoTc1620Yj+Mg==",
1186 "dependencies": {
1187 "@babel/helper-plugin-utils": "^7.24.8",
1188 "@babel/plugin-syntax-flow": "^7.24.7"
1189 },
1190 "engines": {
1191 "node": ">=6.9.0"
1192 },
1193 "peerDependencies": {
1194 "@babel/core": "^7.0.0-0"
1195 }
1196 },
1197 "node_modules/@babel/plugin-transform-for-of": {
1198 "version": "7.24.7",
1199 "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.24.7.tgz",
1200 "integrity": "sha512-wo9ogrDG1ITTTBsy46oGiN1dS9A7MROBTcYsfS8DtsImMkHk9JXJ3EWQM6X2SUw4x80uGPlwj0o00Uoc6nEE3g==",
1201 "dependencies": {
1202 "@babel/helper-plugin-utils": "^7.24.7",
1203 "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7"
1204 },
1205 "engines": {
1206 "node": ">=6.9.0"
1207 },
1208 "peerDependencies": {
1209 "@babel/core": "^7.0.0-0"
1210 }
1211 },
1212 "node_modules/@babel/plugin-transform-function-name": {
1213 "version": "7.25.1",
1214 "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.25.1.tgz",
1215 "integrity": "sha512-TVVJVdW9RKMNgJJlLtHsKDTydjZAbwIsn6ySBPQaEAUU5+gVvlJt/9nRmqVbsV/IBanRjzWoaAQKLoamWVOUuA==",
1216 "dependencies": {
1217 "@babel/helper-compilation-targets": "^7.24.8",
1218 "@babel/helper-plugin-utils": "^7.24.8",
1219 "@babel/traverse": "^7.25.1"
1220 },
1221 "engines": {
1222 "node": ">=6.9.0"
1223 },
1224 "peerDependencies": {
1225 "@babel/core": "^7.0.0-0"
1226 }
1227 },
1228 "node_modules/@babel/plugin-transform-json-strings": {
1229 "version": "7.24.7",
1230 "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.24.7.tgz",
1231 "integrity": "sha512-2yFnBGDvRuxAaE/f0vfBKvtnvvqU8tGpMHqMNpTN2oWMKIR3NqFkjaAgGwawhqK/pIN2T3XdjGPdaG0vDhOBGw==",
1232 "dependencies": {
1233 "@babel/helper-plugin-utils": "^7.24.7",
1234 "@babel/plugin-syntax-json-strings": "^7.8.3"
1235 },
1236 "engines": {
1237 "node": ">=6.9.0"
1238 },
1239 "peerDependencies": {
1240 "@babel/core": "^7.0.0-0"
1241 }
1242 },
1243 "node_modules/@babel/plugin-transform-literals": {
1244 "version": "7.25.2",
1245 "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.25.2.tgz",
1246 "integrity": "sha512-HQI+HcTbm9ur3Z2DkO+jgESMAMcYLuN/A7NRw9juzxAezN9AvqvUTnpKP/9kkYANz6u7dFlAyOu44ejuGySlfw==",
1247 "dependencies": {
1248 "@babel/helper-plugin-utils": "^7.24.8"
1249 },
1250 "engines": {
1251 "node": ">=6.9.0"
1252 },
1253 "peerDependencies": {
1254 "@babel/core": "^7.0.0-0"
1255 }
1256 },
1257 "node_modules/@babel/plugin-transform-logical-assignment-operators": {
1258 "version": "7.24.7",
1259 "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.24.7.tgz",
1260 "integrity": "sha512-4D2tpwlQ1odXmTEIFWy9ELJcZHqrStlzK/dAOWYyxX3zT0iXQB6banjgeOJQXzEc4S0E0a5A+hahxPaEFYftsw==",
1261 "dependencies": {
1262 "@babel/helper-plugin-utils": "^7.24.7",
1263 "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4"
1264 },
1265 "engines": {
1266 "node": ">=6.9.0"
1267 },
1268 "peerDependencies": {
1269 "@babel/core": "^7.0.0-0"
1270 }
1271 },
1272 "node_modules/@babel/plugin-transform-member-expression-literals": {
1273 "version": "7.24.7",
1274 "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.24.7.tgz",
1275 "integrity": "sha512-T/hRC1uqrzXMKLQ6UCwMT85S3EvqaBXDGf0FaMf4446Qx9vKwlghvee0+uuZcDUCZU5RuNi4781UQ7R308zzBw==",
1276 "dependencies": {
1277 "@babel/helper-plugin-utils": "^7.24.7"
1278 },
1279 "engines": {
1280 "node": ">=6.9.0"
1281 },
1282 "peerDependencies": {
1283 "@babel/core": "^7.0.0-0"
1284 }
1285 },
1286 "node_modules/@babel/plugin-transform-modules-amd": {
1287 "version": "7.24.7",
1288 "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.24.7.tgz",
1289 "integrity": "sha512-9+pB1qxV3vs/8Hdmz/CulFB8w2tuu6EB94JZFsjdqxQokwGa9Unap7Bo2gGBGIvPmDIVvQrom7r5m/TCDMURhg==",
1290 "dependencies": {
1291 "@babel/helper-module-transforms": "^7.24.7",
1292 "@babel/helper-plugin-utils": "^7.24.7"
1293 },
1294 "engines": {
1295 "node": ">=6.9.0"
1296 },
1297 "peerDependencies": {
1298 "@babel/core": "^7.0.0-0"
1299 }
1300 },
1301 "node_modules/@babel/plugin-transform-modules-commonjs": {
1302 "version": "7.24.8",
1303 "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.24.8.tgz",
1304 "integrity": "sha512-WHsk9H8XxRs3JXKWFiqtQebdh9b/pTk4EgueygFzYlTKAg0Ud985mSevdNjdXdFBATSKVJGQXP1tv6aGbssLKA==",
1305 "dependencies": {
1306 "@babel/helper-module-transforms": "^7.24.8",
1307 "@babel/helper-plugin-utils": "^7.24.8",
1308 "@babel/helper-simple-access": "^7.24.7"
1309 },
1310 "engines": {
1311 "node": ">=6.9.0"
1312 },
1313 "peerDependencies": {
1314 "@babel/core": "^7.0.0-0"
1315 }
1316 },
1317 "node_modules/@babel/plugin-transform-modules-systemjs": {
1318 "version": "7.25.0",
1319 "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.25.0.tgz",
1320 "integrity": "sha512-YPJfjQPDXxyQWg/0+jHKj1llnY5f/R6a0p/vP4lPymxLu7Lvl4k2WMitqi08yxwQcCVUUdG9LCUj4TNEgAp3Jw==",
1321 "dependencies": {
1322 "@babel/helper-module-transforms": "^7.25.0",
1323 "@babel/helper-plugin-utils": "^7.24.8",
1324 "@babel/helper-validator-identifier": "^7.24.7",
1325 "@babel/traverse": "^7.25.0"
1326 },
1327 "engines": {
1328 "node": ">=6.9.0"
1329 },
1330 "peerDependencies": {
1331 "@babel/core": "^7.0.0-0"
1332 }
1333 },
1334 "node_modules/@babel/plugin-transform-modules-umd": {
1335 "version": "7.24.7",
1336 "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.24.7.tgz",
1337 "integrity": "sha512-3aytQvqJ/h9z4g8AsKPLvD4Zqi2qT+L3j7XoFFu1XBlZWEl2/1kWnhmAbxpLgPrHSY0M6UA02jyTiwUVtiKR6A==",
1338 "dependencies": {
1339 "@babel/helper-module-transforms": "^7.24.7",
1340 "@babel/helper-plugin-utils": "^7.24.7"
1341 },
1342 "engines": {
1343 "node": ">=6.9.0"
1344 },
1345 "peerDependencies": {
1346 "@babel/core": "^7.0.0-0"
1347 }
1348 },
1349 "node_modules/@babel/plugin-transform-named-capturing-groups-regex": {
1350 "version": "7.24.7",
1351 "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.24.7.tgz",
1352 "integrity": "sha512-/jr7h/EWeJtk1U/uz2jlsCioHkZk1JJZVcc8oQsJ1dUlaJD83f4/6Zeh2aHt9BIFokHIsSeDfhUmju0+1GPd6g==",
1353 "dependencies": {
1354 "@babel/helper-create-regexp-features-plugin": "^7.24.7",
1355 "@babel/helper-plugin-utils": "^7.24.7"
1356 },
1357 "engines": {
1358 "node": ">=6.9.0"
1359 },
1360 "peerDependencies": {
1361 "@babel/core": "^7.0.0"
1362 }
1363 },
1364 "node_modules/@babel/plugin-transform-new-target": {
1365 "version": "7.24.7",
1366 "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.24.7.tgz",
1367 "integrity": "sha512-RNKwfRIXg4Ls/8mMTza5oPF5RkOW8Wy/WgMAp1/F1yZ8mMbtwXW+HDoJiOsagWrAhI5f57Vncrmr9XeT4CVapA==",
1368 "dependencies": {
1369 "@babel/helper-plugin-utils": "^7.24.7"
1370 },
1371 "engines": {
1372 "node": ">=6.9.0"
1373 },
1374 "peerDependencies": {
1375 "@babel/core": "^7.0.0-0"
1376 }
1377 },
1378 "node_modules/@babel/plugin-transform-nullish-coalescing-operator": {
1379 "version": "7.24.7",
1380 "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.24.7.tgz",
1381 "integrity": "sha512-Ts7xQVk1OEocqzm8rHMXHlxvsfZ0cEF2yomUqpKENHWMF4zKk175Y4q8H5knJes6PgYad50uuRmt3UJuhBw8pQ==",
1382 "dependencies": {
1383 "@babel/helper-plugin-utils": "^7.24.7",
1384 "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3"
1385 },
1386 "engines": {
1387 "node": ">=6.9.0"
1388 },
1389 "peerDependencies": {
1390 "@babel/core": "^7.0.0-0"
1391 }
1392 },
1393 "node_modules/@babel/plugin-transform-numeric-separator": {
1394 "version": "7.24.7",
1395 "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.24.7.tgz",
1396 "integrity": "sha512-e6q1TiVUzvH9KRvicuxdBTUj4AdKSRwzIyFFnfnezpCfP2/7Qmbb8qbU2j7GODbl4JMkblitCQjKYUaX/qkkwA==",
1397 "dependencies": {
1398 "@babel/helper-plugin-utils": "^7.24.7",
1399 "@babel/plugin-syntax-numeric-separator": "^7.10.4"
1400 },
1401 "engines": {
1402 "node": ">=6.9.0"
1403 },
1404 "peerDependencies": {
1405 "@babel/core": "^7.0.0-0"
1406 }
1407 },
1408 "node_modules/@babel/plugin-transform-object-rest-spread": {
1409 "version": "7.24.7",
1410 "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.24.7.tgz",
1411 "integrity": "sha512-4QrHAr0aXQCEFni2q4DqKLD31n2DL+RxcwnNjDFkSG0eNQ/xCavnRkfCUjsyqGC2OviNJvZOF/mQqZBw7i2C5Q==",
1412 "dependencies": {
1413 "@babel/helper-compilation-targets": "^7.24.7",
1414 "@babel/helper-plugin-utils": "^7.24.7",
1415 "@babel/plugin-syntax-object-rest-spread": "^7.8.3",
1416 "@babel/plugin-transform-parameters": "^7.24.7"
1417 },
1418 "engines": {
1419 "node": ">=6.9.0"
1420 },
1421 "peerDependencies": {
1422 "@babel/core": "^7.0.0-0"
1423 }
1424 },
1425 "node_modules/@babel/plugin-transform-object-super": {
1426 "version": "7.24.7",
1427 "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.24.7.tgz",
1428 "integrity": "sha512-A/vVLwN6lBrMFmMDmPPz0jnE6ZGx7Jq7d6sT/Ev4H65RER6pZ+kczlf1DthF5N0qaPHBsI7UXiE8Zy66nmAovg==",
1429 "dependencies": {
1430 "@babel/helper-plugin-utils": "^7.24.7",
1431 "@babel/helper-replace-supers": "^7.24.7"
1432 },
1433 "engines": {
1434 "node": ">=6.9.0"
1435 },
1436 "peerDependencies": {
1437 "@babel/core": "^7.0.0-0"
1438 }
1439 },
1440 "node_modules/@babel/plugin-transform-optional-catch-binding": {
1441 "version": "7.24.7",
1442 "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.24.7.tgz",
1443 "integrity": "sha512-uLEndKqP5BfBbC/5jTwPxLh9kqPWWgzN/f8w6UwAIirAEqiIVJWWY312X72Eub09g5KF9+Zn7+hT7sDxmhRuKA==",
1444 "dependencies": {
1445 "@babel/helper-plugin-utils": "^7.24.7",
1446 "@babel/plugin-syntax-optional-catch-binding": "^7.8.3"
1447 },
1448 "engines": {
1449 "node": ">=6.9.0"
1450 },
1451 "peerDependencies": {
1452 "@babel/core": "^7.0.0-0"
1453 }
1454 },
1455 "node_modules/@babel/plugin-transform-optional-chaining": {
1456 "version": "7.24.8",
1457 "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.24.8.tgz",
1458 "integrity": "sha512-5cTOLSMs9eypEy8JUVvIKOu6NgvbJMnpG62VpIHrTmROdQ+L5mDAaI40g25k5vXti55JWNX5jCkq3HZxXBQANw==",
1459 "dependencies": {
1460 "@babel/helper-plugin-utils": "^7.24.8",
1461 "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7",
1462 "@babel/plugin-syntax-optional-chaining": "^7.8.3"
1463 },
1464 "engines": {
1465 "node": ">=6.9.0"
1466 },
1467 "peerDependencies": {
1468 "@babel/core": "^7.0.0-0"
1469 }
1470 },
1471 "node_modules/@babel/plugin-transform-parameters": {
1472 "version": "7.24.7",
1473 "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.24.7.tgz",
1474 "integrity": "sha512-yGWW5Rr+sQOhK0Ot8hjDJuxU3XLRQGflvT4lhlSY0DFvdb3TwKaY26CJzHtYllU0vT9j58hc37ndFPsqT1SrzA==",
1475 "dependencies": {
1476 "@babel/helper-plugin-utils": "^7.24.7"
1477 },
1478 "engines": {
1479 "node": ">=6.9.0"
1480 },
1481 "peerDependencies": {
1482 "@babel/core": "^7.0.0-0"
1483 }
1484 },
1485 "node_modules/@babel/plugin-transform-private-methods": {
1486 "version": "7.24.7",
1487 "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.24.7.tgz",
1488 "integrity": "sha512-COTCOkG2hn4JKGEKBADkA8WNb35TGkkRbI5iT845dB+NyqgO8Hn+ajPbSnIQznneJTa3d30scb6iz/DhH8GsJQ==",
1489 "dependencies": {
1490 "@babel/helper-create-class-features-plugin": "^7.24.7",
1491 "@babel/helper-plugin-utils": "^7.24.7"
1492 },
1493 "engines": {
1494 "node": ">=6.9.0"
1495 },
1496 "peerDependencies": {
1497 "@babel/core": "^7.0.0-0"
1498 }
1499 },
1500 "node_modules/@babel/plugin-transform-private-property-in-object": {
1501 "version": "7.24.7",
1502 "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.24.7.tgz",
1503 "integrity": "sha512-9z76mxwnwFxMyxZWEgdgECQglF2Q7cFLm0kMf8pGwt+GSJsY0cONKj/UuO4bOH0w/uAel3ekS4ra5CEAyJRmDA==",
1504 "dependencies": {
1505 "@babel/helper-annotate-as-pure": "^7.24.7",
1506 "@babel/helper-create-class-features-plugin": "^7.24.7",
1507 "@babel/helper-plugin-utils": "^7.24.7",
1508 "@babel/plugin-syntax-private-property-in-object": "^7.14.5"
1509 },
1510 "engines": {
1511 "node": ">=6.9.0"
1512 },
1513 "peerDependencies": {
1514 "@babel/core": "^7.0.0-0"
1515 }
1516 },
1517 "node_modules/@babel/plugin-transform-property-literals": {
1518 "version": "7.24.7",
1519 "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.24.7.tgz",
1520 "integrity": "sha512-EMi4MLQSHfd2nrCqQEWxFdha2gBCqU4ZcCng4WBGZ5CJL4bBRW0ptdqqDdeirGZcpALazVVNJqRmsO8/+oNCBA==",
1521 "dependencies": {
1522 "@babel/helper-plugin-utils": "^7.24.7"
1523 },
1524 "engines": {
1525 "node": ">=6.9.0"
1526 },
1527 "peerDependencies": {
1528 "@babel/core": "^7.0.0-0"
1529 }
1530 },
1531 "node_modules/@babel/plugin-transform-react-constant-elements": {
1532 "version": "7.25.1",
1533 "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.25.1.tgz",
1534 "integrity": "sha512-SLV/giH/V4SmloZ6Dt40HjTGTAIkxn33TVIHxNGNvo8ezMhrxBkzisj4op1KZYPIOHFLqhv60OHvX+YRu4xbmQ==",
1535 "dependencies": {
1536 "@babel/helper-plugin-utils": "^7.24.8"
1537 },
1538 "engines": {
1539 "node": ">=6.9.0"
1540 },
1541 "peerDependencies": {
1542 "@babel/core": "^7.0.0-0"
1543 }
1544 },
1545 "node_modules/@babel/plugin-transform-react-display-name": {
1546 "version": "7.24.7",
1547 "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.24.7.tgz",
1548 "integrity": "sha512-H/Snz9PFxKsS1JLI4dJLtnJgCJRoo0AUm3chP6NYr+9En1JMKloheEiLIhlp5MDVznWo+H3AAC1Mc8lmUEpsgg==",
1549 "dependencies": {
1550 "@babel/helper-plugin-utils": "^7.24.7"
1551 },
1552 "engines": {
1553 "node": ">=6.9.0"
1554 },
1555 "peerDependencies": {
1556 "@babel/core": "^7.0.0-0"
1557 }
1558 },
1559 "node_modules/@babel/plugin-transform-react-jsx": {
1560 "version": "7.25.2",
1561 "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.25.2.tgz",
1562 "integrity": "sha512-KQsqEAVBpU82NM/B/N9j9WOdphom1SZH3R+2V7INrQUH+V9EBFwZsEJl8eBIVeQE62FxJCc70jzEZwqU7RcVqA==",
1563 "dependencies": {
1564 "@babel/helper-annotate-as-pure": "^7.24.7",
1565 "@babel/helper-module-imports": "^7.24.7",
1566 "@babel/helper-plugin-utils": "^7.24.8",
1567 "@babel/plugin-syntax-jsx": "^7.24.7",
1568 "@babel/types": "^7.25.2"
1569 },
1570 "engines": {
1571 "node": ">=6.9.0"
1572 },
1573 "peerDependencies": {
1574 "@babel/core": "^7.0.0-0"
1575 }
1576 },
1577 "node_modules/@babel/plugin-transform-react-jsx-development": {
1578 "version": "7.24.7",
1579 "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.24.7.tgz",
1580 "integrity": "sha512-QG9EnzoGn+Qar7rxuW+ZOsbWOt56FvvI93xInqsZDC5fsekx1AlIO4KIJ5M+D0p0SqSH156EpmZyXq630B8OlQ==",
1581 "dependencies": {
1582 "@babel/plugin-transform-react-jsx": "^7.24.7"
1583 },
1584 "engines": {
1585 "node": ">=6.9.0"
1586 },
1587 "peerDependencies": {
1588 "@babel/core": "^7.0.0-0"
1589 }
1590 },
1591 "node_modules/@babel/plugin-transform-react-pure-annotations": {
1592 "version": "7.24.7",
1593 "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.24.7.tgz",
1594 "integrity": "sha512-PLgBVk3fzbmEjBJ/u8kFzOqS9tUeDjiaWud/rRym/yjCo/M9cASPlnrd2ZmmZpQT40fOOrvR8jh+n8jikrOhNA==",
1595 "dependencies": {
1596 "@babel/helper-annotate-as-pure": "^7.24.7",
1597 "@babel/helper-plugin-utils": "^7.24.7"
1598 },
1599 "engines": {
1600 "node": ">=6.9.0"
1601 },
1602 "peerDependencies": {
1603 "@babel/core": "^7.0.0-0"
1604 }
1605 },
1606 "node_modules/@babel/plugin-transform-regenerator": {
1607 "version": "7.24.7",
1608 "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.24.7.tgz",
1609 "integrity": "sha512-lq3fvXPdimDrlg6LWBoqj+r/DEWgONuwjuOuQCSYgRroXDH/IdM1C0IZf59fL5cHLpjEH/O6opIRBbqv7ELnuA==",
1610 "dependencies": {
1611 "@babel/helper-plugin-utils": "^7.24.7",
1612 "regenerator-transform": "^0.15.2"
1613 },
1614 "engines": {
1615 "node": ">=6.9.0"
1616 },
1617 "peerDependencies": {
1618 "@babel/core": "^7.0.0-0"
1619 }
1620 },
1621 "node_modules/@babel/plugin-transform-reserved-words": {
1622 "version": "7.24.7",
1623 "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.24.7.tgz",
1624 "integrity": "sha512-0DUq0pHcPKbjFZCfTss/pGkYMfy3vFWydkUBd9r0GHpIyfs2eCDENvqadMycRS9wZCXR41wucAfJHJmwA0UmoQ==",
1625 "dependencies": {
1626 "@babel/helper-plugin-utils": "^7.24.7"
1627 },
1628 "engines": {
1629 "node": ">=6.9.0"
1630 },
1631 "peerDependencies": {
1632 "@babel/core": "^7.0.0-0"
1633 }
1634 },
1635 "node_modules/@babel/plugin-transform-runtime": {
1636 "version": "7.24.7",
1637 "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.24.7.tgz",
1638 "integrity": "sha512-YqXjrk4C+a1kZjewqt+Mmu2UuV1s07y8kqcUf4qYLnoqemhR4gRQikhdAhSVJioMjVTu6Mo6pAbaypEA3jY6fw==",
1639 "dependencies": {
1640 "@babel/helper-module-imports": "^7.24.7",
1641 "@babel/helper-plugin-utils": "^7.24.7",
1642 "babel-plugin-polyfill-corejs2": "^0.4.10",
1643 "babel-plugin-polyfill-corejs3": "^0.10.1",
1644 "babel-plugin-polyfill-regenerator": "^0.6.1",
1645 "semver": "^6.3.1"
1646 },
1647 "engines": {
1648 "node": ">=6.9.0"
1649 },
1650 "peerDependencies": {
1651 "@babel/core": "^7.0.0-0"
1652 }
1653 },
1654 "node_modules/@babel/plugin-transform-runtime/node_modules/semver": {
1655 "version": "6.3.1",
1656 "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
1657 "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
1658 "bin": {
1659 "semver": "bin/semver.js"
1660 }
1661 },
1662 "node_modules/@babel/plugin-transform-shorthand-properties": {
1663 "version": "7.24.7",
1664 "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.24.7.tgz",
1665 "integrity": "sha512-KsDsevZMDsigzbA09+vacnLpmPH4aWjcZjXdyFKGzpplxhbeB4wYtury3vglQkg6KM/xEPKt73eCjPPf1PgXBA==",
1666 "dependencies": {
1667 "@babel/helper-plugin-utils": "^7.24.7"
1668 },
1669 "engines": {
1670 "node": ">=6.9.0"
1671 },
1672 "peerDependencies": {
1673 "@babel/core": "^7.0.0-0"
1674 }
1675 },
1676 "node_modules/@babel/plugin-transform-spread": {
1677 "version": "7.24.7",
1678 "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.24.7.tgz",
1679 "integrity": "sha512-x96oO0I09dgMDxJaANcRyD4ellXFLLiWhuwDxKZX5g2rWP1bTPkBSwCYv96VDXVT1bD9aPj8tppr5ITIh8hBng==",
1680 "dependencies": {
1681 "@babel/helper-plugin-utils": "^7.24.7",
1682 "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7"
1683 },
1684 "engines": {
1685 "node": ">=6.9.0"
1686 },
1687 "peerDependencies": {
1688 "@babel/core": "^7.0.0-0"
1689 }
1690 },
1691 "node_modules/@babel/plugin-transform-sticky-regex": {
1692 "version": "7.24.7",
1693 "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.24.7.tgz",
1694 "integrity": "sha512-kHPSIJc9v24zEml5geKg9Mjx5ULpfncj0wRpYtxbvKyTtHCYDkVE3aHQ03FrpEo4gEe2vrJJS1Y9CJTaThA52g==",
1695 "dependencies": {
1696 "@babel/helper-plugin-utils": "^7.24.7"
1697 },
1698 "engines": {
1699 "node": ">=6.9.0"
1700 },
1701 "peerDependencies": {
1702 "@babel/core": "^7.0.0-0"
1703 }
1704 },
1705 "node_modules/@babel/plugin-transform-template-literals": {
1706 "version": "7.24.7",
1707 "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.24.7.tgz",
1708 "integrity": "sha512-AfDTQmClklHCOLxtGoP7HkeMw56k1/bTQjwsfhL6pppo/M4TOBSq+jjBUBLmV/4oeFg4GWMavIl44ZeCtmmZTw==",
1709 "dependencies": {
1710 "@babel/helper-plugin-utils": "^7.24.7"
1711 },
1712 "engines": {
1713 "node": ">=6.9.0"
1714 },
1715 "peerDependencies": {
1716 "@babel/core": "^7.0.0-0"
1717 }
1718 },
1719 "node_modules/@babel/plugin-transform-typeof-symbol": {
1720 "version": "7.24.8",
1721 "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.24.8.tgz",
1722 "integrity": "sha512-adNTUpDCVnmAE58VEqKlAA6ZBlNkMnWD0ZcW76lyNFN3MJniyGFZfNwERVk8Ap56MCnXztmDr19T4mPTztcuaw==",
1723 "dependencies": {
1724 "@babel/helper-plugin-utils": "^7.24.8"
1725 },
1726 "engines": {
1727 "node": ">=6.9.0"
1728 },
1729 "peerDependencies": {
1730 "@babel/core": "^7.0.0-0"
1731 }
1732 },
1733 "node_modules/@babel/plugin-transform-typescript": {
1734 "version": "7.25.2",
1735 "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.25.2.tgz",
1736 "integrity": "sha512-lBwRvjSmqiMYe/pS0+1gggjJleUJi7NzjvQ1Fkqtt69hBa/0t1YuW/MLQMAPixfwaQOHUXsd6jeU3Z+vdGv3+A==",
1737 "dependencies": {
1738 "@babel/helper-annotate-as-pure": "^7.24.7",
1739 "@babel/helper-create-class-features-plugin": "^7.25.0",
1740 "@babel/helper-plugin-utils": "^7.24.8",
1741 "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7",
1742 "@babel/plugin-syntax-typescript": "^7.24.7"
1743 },
1744 "engines": {
1745 "node": ">=6.9.0"
1746 },
1747 "peerDependencies": {
1748 "@babel/core": "^7.0.0-0"
1749 }
1750 },
1751 "node_modules/@babel/plugin-transform-unicode-escapes": {
1752 "version": "7.24.7",
1753 "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.24.7.tgz",
1754 "integrity": "sha512-U3ap1gm5+4edc2Q/P+9VrBNhGkfnf+8ZqppY71Bo/pzZmXhhLdqgaUl6cuB07O1+AQJtCLfaOmswiNbSQ9ivhw==",
1755 "dependencies": {
1756 "@babel/helper-plugin-utils": "^7.24.7"
1757 },
1758 "engines": {
1759 "node": ">=6.9.0"
1760 },
1761 "peerDependencies": {
1762 "@babel/core": "^7.0.0-0"
1763 }
1764 },
1765 "node_modules/@babel/plugin-transform-unicode-property-regex": {
1766 "version": "7.24.7",
1767 "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.24.7.tgz",
1768 "integrity": "sha512-uH2O4OV5M9FZYQrwc7NdVmMxQJOCCzFeYudlZSzUAHRFeOujQefa92E74TQDVskNHCzOXoigEuoyzHDhaEaK5w==",
1769 "dependencies": {
1770 "@babel/helper-create-regexp-features-plugin": "^7.24.7",
1771 "@babel/helper-plugin-utils": "^7.24.7"
1772 },
1773 "engines": {
1774 "node": ">=6.9.0"
1775 },
1776 "peerDependencies": {
1777 "@babel/core": "^7.0.0-0"
1778 }
1779 },
1780 "node_modules/@babel/plugin-transform-unicode-regex": {
1781 "version": "7.24.7",
1782 "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.24.7.tgz",
1783 "integrity": "sha512-hlQ96MBZSAXUq7ltkjtu3FJCCSMx/j629ns3hA3pXnBXjanNP0LHi+JpPeA81zaWgVK1VGH95Xuy7u0RyQ8kMg==",
1784 "dependencies": {
1785 "@babel/helper-create-regexp-features-plugin": "^7.24.7",
1786 "@babel/helper-plugin-utils": "^7.24.7"
1787 },
1788 "engines": {
1789 "node": ">=6.9.0"
1790 },
1791 "peerDependencies": {
1792 "@babel/core": "^7.0.0-0"
1793 }
1794 },
1795 "node_modules/@babel/plugin-transform-unicode-sets-regex": {
1796 "version": "7.24.7",
1797 "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.24.7.tgz",
1798 "integrity": "sha512-2G8aAvF4wy1w/AGZkemprdGMRg5o6zPNhbHVImRz3lss55TYCBd6xStN19rt8XJHq20sqV0JbyWjOWwQRwV/wg==",
1799 "dependencies": {
1800 "@babel/helper-create-regexp-features-plugin": "^7.24.7",
1801 "@babel/helper-plugin-utils": "^7.24.7"
1802 },
1803 "engines": {
1804 "node": ">=6.9.0"
1805 },
1806 "peerDependencies": {
1807 "@babel/core": "^7.0.0"
1808 }
1809 },
1810 "node_modules/@babel/preset-env": {
1811 "version": "7.25.3",
1812 "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.25.3.tgz",
1813 "integrity": "sha512-QsYW7UeAaXvLPX9tdVliMJE7MD7M6MLYVTovRTIwhoYQVFHR1rM4wO8wqAezYi3/BpSD+NzVCZ69R6smWiIi8g==",
1814 "dependencies": {
1815 "@babel/compat-data": "^7.25.2",
1816 "@babel/helper-compilation-targets": "^7.25.2",
1817 "@babel/helper-plugin-utils": "^7.24.8",
1818 "@babel/helper-validator-option": "^7.24.8",
1819 "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.25.3",
1820 "@babel/plugin-bugfix-safari-class-field-initializer-scope": "^7.25.0",
1821 "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.25.0",
1822 "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.24.7",
1823 "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.25.0",
1824 "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2",
1825 "@babel/plugin-syntax-async-generators": "^7.8.4",
1826 "@babel/plugin-syntax-class-properties": "^7.12.13",
1827 "@babel/plugin-syntax-class-static-block": "^7.14.5",
1828 "@babel/plugin-syntax-dynamic-import": "^7.8.3",
1829 "@babel/plugin-syntax-export-namespace-from": "^7.8.3",
1830 "@babel/plugin-syntax-import-assertions": "^7.24.7",
1831 "@babel/plugin-syntax-import-attributes": "^7.24.7",
1832 "@babel/plugin-syntax-import-meta": "^7.10.4",
1833 "@babel/plugin-syntax-json-strings": "^7.8.3",
1834 "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4",
1835 "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3",
1836 "@babel/plugin-syntax-numeric-separator": "^7.10.4",
1837 "@babel/plugin-syntax-object-rest-spread": "^7.8.3",
1838 "@babel/plugin-syntax-optional-catch-binding": "^7.8.3",
1839 "@babel/plugin-syntax-optional-chaining": "^7.8.3",
1840 "@babel/plugin-syntax-private-property-in-object": "^7.14.5",
1841 "@babel/plugin-syntax-top-level-await": "^7.14.5",
1842 "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6",
1843 "@babel/plugin-transform-arrow-functions": "^7.24.7",
1844 "@babel/plugin-transform-async-generator-functions": "^7.25.0",
1845 "@babel/plugin-transform-async-to-generator": "^7.24.7",
1846 "@babel/plugin-transform-block-scoped-functions": "^7.24.7",
1847 "@babel/plugin-transform-block-scoping": "^7.25.0",
1848 "@babel/plugin-transform-class-properties": "^7.24.7",
1849 "@babel/plugin-transform-class-static-block": "^7.24.7",
1850 "@babel/plugin-transform-classes": "^7.25.0",
1851 "@babel/plugin-transform-computed-properties": "^7.24.7",
1852 "@babel/plugin-transform-destructuring": "^7.24.8",
1853 "@babel/plugin-transform-dotall-regex": "^7.24.7",
1854 "@babel/plugin-transform-duplicate-keys": "^7.24.7",
1855 "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "^7.25.0",
1856 "@babel/plugin-transform-dynamic-import": "^7.24.7",
1857 "@babel/plugin-transform-exponentiation-operator": "^7.24.7",
1858 "@babel/plugin-transform-export-namespace-from": "^7.24.7",
1859 "@babel/plugin-transform-for-of": "^7.24.7",
1860 "@babel/plugin-transform-function-name": "^7.25.1",
1861 "@babel/plugin-transform-json-strings": "^7.24.7",
1862 "@babel/plugin-transform-literals": "^7.25.2",
1863 "@babel/plugin-transform-logical-assignment-operators": "^7.24.7",
1864 "@babel/plugin-transform-member-expression-literals": "^7.24.7",
1865 "@babel/plugin-transform-modules-amd": "^7.24.7",
1866 "@babel/plugin-transform-modules-commonjs": "^7.24.8",
1867 "@babel/plugin-transform-modules-systemjs": "^7.25.0",
1868 "@babel/plugin-transform-modules-umd": "^7.24.7",
1869 "@babel/plugin-transform-named-capturing-groups-regex": "^7.24.7",
1870 "@babel/plugin-transform-new-target": "^7.24.7",
1871 "@babel/plugin-transform-nullish-coalescing-operator": "^7.24.7",
1872 "@babel/plugin-transform-numeric-separator": "^7.24.7",
1873 "@babel/plugin-transform-object-rest-spread": "^7.24.7",
1874 "@babel/plugin-transform-object-super": "^7.24.7",
1875 "@babel/plugin-transform-optional-catch-binding": "^7.24.7",
1876 "@babel/plugin-transform-optional-chaining": "^7.24.8",
1877 "@babel/plugin-transform-parameters": "^7.24.7",
1878 "@babel/plugin-transform-private-methods": "^7.24.7",
1879 "@babel/plugin-transform-private-property-in-object": "^7.24.7",
1880 "@babel/plugin-transform-property-literals": "^7.24.7",
1881 "@babel/plugin-transform-regenerator": "^7.24.7",
1882 "@babel/plugin-transform-reserved-words": "^7.24.7",
1883 "@babel/plugin-transform-shorthand-properties": "^7.24.7",
1884 "@babel/plugin-transform-spread": "^7.24.7",
1885 "@babel/plugin-transform-sticky-regex": "^7.24.7",
1886 "@babel/plugin-transform-template-literals": "^7.24.7",
1887 "@babel/plugin-transform-typeof-symbol": "^7.24.8",
1888 "@babel/plugin-transform-unicode-escapes": "^7.24.7",
1889 "@babel/plugin-transform-unicode-property-regex": "^7.24.7",
1890 "@babel/plugin-transform-unicode-regex": "^7.24.7",
1891 "@babel/plugin-transform-unicode-sets-regex": "^7.24.7",
1892 "@babel/preset-modules": "0.1.6-no-external-plugins",
1893 "babel-plugin-polyfill-corejs2": "^0.4.10",
1894 "babel-plugin-polyfill-corejs3": "^0.10.4",
1895 "babel-plugin-polyfill-regenerator": "^0.6.1",
1896 "core-js-compat": "^3.37.1",
1897 "semver": "^6.3.1"
1898 },
1899 "engines": {
1900 "node": ">=6.9.0"
1901 },
1902 "peerDependencies": {
1903 "@babel/core": "^7.0.0-0"
1904 }
1905 },
1906 "node_modules/@babel/preset-env/node_modules/semver": {
1907 "version": "6.3.1",
1908 "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
1909 "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
1910 "bin": {
1911 "semver": "bin/semver.js"
1912 }
1913 },
1914 "node_modules/@babel/preset-modules": {
1915 "version": "0.1.6-no-external-plugins",
1916 "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz",
1917 "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==",
1918 "dependencies": {
1919 "@babel/helper-plugin-utils": "^7.0.0",
1920 "@babel/types": "^7.4.4",
1921 "esutils": "^2.0.2"
1922 },
1923 "peerDependencies": {
1924 "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0"
1925 }
1926 },
1927 "node_modules/@babel/preset-react": {
1928 "version": "7.24.7",
1929 "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.24.7.tgz",
1930 "integrity": "sha512-AAH4lEkpmzFWrGVlHaxJB7RLH21uPQ9+He+eFLWHmF9IuFQVugz8eAsamaW0DXRrTfco5zj1wWtpdcXJUOfsag==",
1931 "dependencies": { 249 "dependencies": {
1932 "@babel/helper-plugin-utils": "^7.24.7", 250 "@babel/helper-plugin-utils": "^7.27.1"
1933 "@babel/helper-validator-option": "^7.24.7",
1934 "@babel/plugin-transform-react-display-name": "^7.24.7",
1935 "@babel/plugin-transform-react-jsx": "^7.24.7",
1936 "@babel/plugin-transform-react-jsx-development": "^7.24.7",
1937 "@babel/plugin-transform-react-pure-annotations": "^7.24.7"
1938 }, 251 },
1939 "engines": { 252 "engines": {
1940 "node": ">=6.9.0" 253 "node": ">=6.9.0"
@@ -1943,16 +256,13 @@
1943 "@babel/core": "^7.0.0-0" 256 "@babel/core": "^7.0.0-0"
1944 } 257 }
1945 }, 258 },
1946 "node_modules/@babel/preset-typescript": { 259 "node_modules/@babel/plugin-transform-react-jsx-source": {
1947 "version": "7.24.7", 260 "version": "7.27.1",
1948 "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.24.7.tgz", 261 "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.27.1.tgz",
1949 "integrity": "sha512-SyXRe3OdWwIwalxDg5UtJnJQO+YPcTfwiIY2B0Xlddh9o7jpWLvv8X1RthIeDOxQ+O1ML5BLPCONToObyVQVuQ==", 262 "integrity": "sha512-zbwoTsBruTeKB9hSq73ha66iFeJHuaFkUbwvqElnygoNbj/jHRsSeokowZFN3CZ64IvEqcmmkVe89OPXc7ldAw==",
263 "license": "MIT",
1950 "dependencies": { 264 "dependencies": {
1951 "@babel/helper-plugin-utils": "^7.24.7", 265 "@babel/helper-plugin-utils": "^7.27.1"
1952 "@babel/helper-validator-option": "^7.24.7",
1953 "@babel/plugin-syntax-jsx": "^7.24.7",
1954 "@babel/plugin-transform-modules-commonjs": "^7.24.7",
1955 "@babel/plugin-transform-typescript": "^7.24.7"
1956 }, 266 },
1957 "engines": { 267 "engines": {
1958 "node": ">=6.9.0" 268 "node": ">=6.9.0"
@@ -1961,1726 +271,1071 @@
1961 "@babel/core": "^7.0.0-0" 271 "@babel/core": "^7.0.0-0"
1962 } 272 }
1963 }, 273 },
1964 "node_modules/@babel/regjsgen": {
1965 "version": "0.8.0",
1966 "resolved": "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz",
1967 "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA=="
1968 },
1969 "node_modules/@babel/runtime": { 274 "node_modules/@babel/runtime": {
1970 "version": "7.25.0", 275 "version": "7.28.2",
1971 "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.25.0.tgz", 276 "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.28.2.tgz",
1972 "integrity": "sha512-7dRy4DwXwtzBrPbZflqxnvfxLF8kdZXPkhymtDeFoFqE6ldzjQFgYTtYIFARcLEYDrqfBfYcZt1WqFxRoyC9Rw==", 277 "integrity": "sha512-KHp2IflsnGywDjBWDkR9iEqiWSpc8GIi0lgTT3mOElT0PP1tG26P4tmFI2YvAdzgq9RGyoHZQEIEdZy6Ec5xCA==",
1973 "dependencies": { 278 "license": "MIT",
1974 "regenerator-runtime": "^0.14.0"
1975 },
1976 "engines": { 279 "engines": {
1977 "node": ">=6.9.0" 280 "node": ">=6.9.0"
1978 } 281 }
1979 }, 282 },
1980 "node_modules/@babel/template": { 283 "node_modules/@babel/template": {
1981 "version": "7.25.0", 284 "version": "7.27.2",
1982 "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.25.0.tgz", 285 "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.27.2.tgz",
1983 "integrity": "sha512-aOOgh1/5XzKvg1jvVz7AVrx2piJ2XBi227DHmbY6y+bM9H2FlN+IfecYu4Xl0cNiiVejlsCri89LUsbj8vJD9Q==", 286 "integrity": "sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==",
287 "license": "MIT",
1984 "dependencies": { 288 "dependencies": {
1985 "@babel/code-frame": "^7.24.7", 289 "@babel/code-frame": "^7.27.1",
1986 "@babel/parser": "^7.25.0", 290 "@babel/parser": "^7.27.2",
1987 "@babel/types": "^7.25.0" 291 "@babel/types": "^7.27.1"
1988 }, 292 },
1989 "engines": { 293 "engines": {
1990 "node": ">=6.9.0" 294 "node": ">=6.9.0"
1991 } 295 }
1992 }, 296 },
1993 "node_modules/@babel/traverse": { 297 "node_modules/@babel/traverse": {
1994 "version": "7.25.3", 298 "version": "7.28.0",
1995 "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.25.3.tgz", 299 "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.0.tgz",
1996 "integrity": "sha512-HefgyP1x754oGCsKmV5reSmtV7IXj/kpaE1XYY+D9G5PvKKoFfSbiS4M77MdjuwlZKDIKFCffq9rPU+H/s3ZdQ==", 300 "integrity": "sha512-mGe7UK5wWyh0bKRfupsUchrQGqvDbZDbKJw+kcRGSmdHVYrv+ltd0pnpDTVpiTqnaBru9iEvA8pz8W46v0Amwg==",
301 "license": "MIT",
1997 "dependencies": { 302 "dependencies": {
1998 "@babel/code-frame": "^7.24.7", 303 "@babel/code-frame": "^7.27.1",
1999 "@babel/generator": "^7.25.0", 304 "@babel/generator": "^7.28.0",
2000 "@babel/parser": "^7.25.3", 305 "@babel/helper-globals": "^7.28.0",
2001 "@babel/template": "^7.25.0", 306 "@babel/parser": "^7.28.0",
2002 "@babel/types": "^7.25.2", 307 "@babel/template": "^7.27.2",
2003 "debug": "^4.3.1", 308 "@babel/types": "^7.28.0",
2004 "globals": "^11.1.0" 309 "debug": "^4.3.1"
2005 }, 310 },
2006 "engines": { 311 "engines": {
2007 "node": ">=6.9.0" 312 "node": ">=6.9.0"
2008 } 313 }
2009 }, 314 },
2010 "node_modules/@babel/types": { 315 "node_modules/@babel/types": {
2011 "version": "7.25.2", 316 "version": "7.28.2",
2012 "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.25.2.tgz", 317 "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.2.tgz",
2013 "integrity": "sha512-YTnYtra7W9e6/oAZEHj0bJehPRUlLH9/fbpT5LfB0NhQXyALCRkRs3zH9v07IYhkgpqX6Z78FnuccZr/l4Fs4Q==", 318 "integrity": "sha512-ruv7Ae4J5dUYULmeXw1gmb7rYRz57OWCPM57pHojnLq/3Z1CK2lNSLTCVjxVk1F/TZHwOZZrOWi0ur95BbLxNQ==",
319 "license": "MIT",
2014 "dependencies": { 320 "dependencies": {
2015 "@babel/helper-string-parser": "^7.24.8", 321 "@babel/helper-string-parser": "^7.27.1",
2016 "@babel/helper-validator-identifier": "^7.24.7", 322 "@babel/helper-validator-identifier": "^7.27.1"
2017 "to-fast-properties": "^2.0.0"
2018 }, 323 },
2019 "engines": { 324 "engines": {
2020 "node": ">=6.9.0" 325 "node": ">=6.9.0"
2021 } 326 }
2022 }, 327 },
2023 "node_modules/@bcoe/v8-coverage": { 328 "node_modules/@esbuild/aix-ppc64": {
2024 "version": "0.2.3", 329 "version": "0.25.8",
2025 "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", 330 "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.8.tgz",
2026 "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==" 331 "integrity": "sha512-urAvrUedIqEiFR3FYSLTWQgLu5tb+m0qZw0NBEasUeo6wuqatkMDaRT+1uABiGXEu5vqgPd7FGE1BhsAIy9QVA==",
2027 }, 332 "cpu": [
2028 "node_modules/@craco/craco": { 333 "ppc64"
2029 "version": "7.1.0", 334 ],
2030 "resolved": "https://registry.npmjs.org/@craco/craco/-/craco-7.1.0.tgz",
2031 "integrity": "sha512-oRAcPIKYrfPXp9rSzlsDNeOaVtDiKhoyqSXUoqiK24jCkHr4T8m/a2f74yXIzCbIheoUWDOIfWZyRgFgT+cpqA==",
2032 "dev": true,
2033 "license": "Apache-2.0",
2034 "dependencies": {
2035 "autoprefixer": "^10.4.12",
2036 "cosmiconfig": "^7.0.1",
2037 "cosmiconfig-typescript-loader": "^1.0.0",
2038 "cross-spawn": "^7.0.3",
2039 "lodash": "^4.17.21",
2040 "semver": "^7.3.7",
2041 "webpack-merge": "^5.8.0"
2042 },
2043 "bin": {
2044 "craco": "dist/bin/craco.js"
2045 },
2046 "engines": {
2047 "node": ">=6"
2048 },
2049 "peerDependencies": {
2050 "react-scripts": "^5.0.0"
2051 }
2052 },
2053 "node_modules/@cspotcode/source-map-support": {
2054 "version": "0.8.1",
2055 "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz",
2056 "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==",
2057 "devOptional": true,
2058 "license": "MIT", 335 "license": "MIT",
2059 "dependencies": { 336 "optional": true,
2060 "@jridgewell/trace-mapping": "0.3.9" 337 "os": [
2061 }, 338 "aix"
339 ],
2062 "engines": { 340 "engines": {
2063 "node": ">=12" 341 "node": ">=18"
2064 } 342 }
2065 }, 343 },
2066 "node_modules/@cspotcode/source-map-support/node_modules/@jridgewell/trace-mapping": { 344 "node_modules/@esbuild/android-arm": {
2067 "version": "0.3.9", 345 "version": "0.25.8",
2068 "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", 346 "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.8.tgz",
2069 "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", 347 "integrity": "sha512-RONsAvGCz5oWyePVnLdZY/HHwA++nxYWIX1atInlaW6SEkwq6XkP3+cb825EUcRs5Vss/lGh/2YxAb5xqc07Uw==",
2070 "devOptional": true, 348 "cpu": [
349 "arm"
350 ],
2071 "license": "MIT", 351 "license": "MIT",
2072 "dependencies": { 352 "optional": true,
2073 "@jridgewell/resolve-uri": "^3.0.3", 353 "os": [
2074 "@jridgewell/sourcemap-codec": "^1.4.10" 354 "android"
2075 } 355 ],
2076 },
2077 "node_modules/@csstools/normalize.css": {
2078 "version": "12.1.1",
2079 "resolved": "https://registry.npmjs.org/@csstools/normalize.css/-/normalize.css-12.1.1.tgz",
2080 "integrity": "sha512-YAYeJ+Xqh7fUou1d1j9XHl44BmsuThiTr4iNrgCQ3J27IbhXsxXDGZ1cXv8Qvs99d4rBbLiSKy3+WZiet32PcQ=="
2081 },
2082 "node_modules/@csstools/postcss-cascade-layers": {
2083 "version": "1.1.1",
2084 "resolved": "https://registry.npmjs.org/@csstools/postcss-cascade-layers/-/postcss-cascade-layers-1.1.1.tgz",
2085 "integrity": "sha512-+KdYrpKC5TgomQr2DlZF4lDEpHcoxnj5IGddYYfBWJAKfj1JtuHUIqMa+E1pJJ+z3kvDViWMqyqPlG4Ja7amQA==",
2086 "dependencies": {
2087 "@csstools/selector-specificity": "^2.0.2",
2088 "postcss-selector-parser": "^6.0.10"
2089 },
2090 "engines": {
2091 "node": "^12 || ^14 || >=16"
2092 },
2093 "funding": {
2094 "type": "opencollective",
2095 "url": "https://opencollective.com/csstools"
2096 },
2097 "peerDependencies": {
2098 "postcss": "^8.2"
2099 }
2100 },
2101 "node_modules/@csstools/postcss-color-function": {
2102 "version": "1.1.1",
2103 "resolved": "https://registry.npmjs.org/@csstools/postcss-color-function/-/postcss-color-function-1.1.1.tgz",
2104 "integrity": "sha512-Bc0f62WmHdtRDjf5f3e2STwRAl89N2CLb+9iAwzrv4L2hncrbDwnQD9PCq0gtAt7pOI2leIV08HIBUd4jxD8cw==",
2105 "dependencies": {
2106 "@csstools/postcss-progressive-custom-properties": "^1.1.0",
2107 "postcss-value-parser": "^4.2.0"
2108 },
2109 "engines": {
2110 "node": "^12 || ^14 || >=16"
2111 },
2112 "funding": {
2113 "type": "opencollective",
2114 "url": "https://opencollective.com/csstools"
2115 },
2116 "peerDependencies": {
2117 "postcss": "^8.2"
2118 }
2119 },
2120 "node_modules/@csstools/postcss-font-format-keywords": {
2121 "version": "1.0.1",
2122 "resolved": "https://registry.npmjs.org/@csstools/postcss-font-format-keywords/-/postcss-font-format-keywords-1.0.1.tgz",
2123 "integrity": "sha512-ZgrlzuUAjXIOc2JueK0X5sZDjCtgimVp/O5CEqTcs5ShWBa6smhWYbS0x5cVc/+rycTDbjjzoP0KTDnUneZGOg==",
2124 "dependencies": {
2125 "postcss-value-parser": "^4.2.0"
2126 },
2127 "engines": {
2128 "node": "^12 || ^14 || >=16"
2129 },
2130 "funding": {
2131 "type": "opencollective",
2132 "url": "https://opencollective.com/csstools"
2133 },
2134 "peerDependencies": {
2135 "postcss": "^8.2"
2136 }
2137 },
2138 "node_modules/@csstools/postcss-hwb-function": {
2139 "version": "1.0.2",
2140 "resolved": "https://registry.npmjs.org/@csstools/postcss-hwb-function/-/postcss-hwb-function-1.0.2.tgz",
2141 "integrity": "sha512-YHdEru4o3Rsbjmu6vHy4UKOXZD+Rn2zmkAmLRfPet6+Jz4Ojw8cbWxe1n42VaXQhD3CQUXXTooIy8OkVbUcL+w==",
2142 "dependencies": {
2143 "postcss-value-parser": "^4.2.0"
2144 },
2145 "engines": {
2146 "node": "^12 || ^14 || >=16"
2147 },
2148 "funding": {
2149 "type": "opencollective",
2150 "url": "https://opencollective.com/csstools"
2151 },
2152 "peerDependencies": {
2153 "postcss": "^8.2"
2154 }
2155 },
2156 "node_modules/@csstools/postcss-ic-unit": {
2157 "version": "1.0.1",
2158 "resolved": "https://registry.npmjs.org/@csstools/postcss-ic-unit/-/postcss-ic-unit-1.0.1.tgz",
2159 "integrity": "sha512-Ot1rcwRAaRHNKC9tAqoqNZhjdYBzKk1POgWfhN4uCOE47ebGcLRqXjKkApVDpjifL6u2/55ekkpnFcp+s/OZUw==",
2160 "dependencies": {
2161 "@csstools/postcss-progressive-custom-properties": "^1.1.0",
2162 "postcss-value-parser": "^4.2.0"
2163 },
2164 "engines": {
2165 "node": "^12 || ^14 || >=16"
2166 },
2167 "funding": {
2168 "type": "opencollective",
2169 "url": "https://opencollective.com/csstools"
2170 },
2171 "peerDependencies": {
2172 "postcss": "^8.2"
2173 }
2174 },
2175 "node_modules/@csstools/postcss-is-pseudo-class": {
2176 "version": "2.0.7",
2177 "resolved": "https://registry.npmjs.org/@csstools/postcss-is-pseudo-class/-/postcss-is-pseudo-class-2.0.7.tgz",
2178 "integrity": "sha512-7JPeVVZHd+jxYdULl87lvjgvWldYu+Bc62s9vD/ED6/QTGjy0jy0US/f6BG53sVMTBJ1lzKZFpYmofBN9eaRiA==",
2179 "dependencies": {
2180 "@csstools/selector-specificity": "^2.0.0",
2181 "postcss-selector-parser": "^6.0.10"
2182 },
2183 "engines": {
2184 "node": "^12 || ^14 || >=16"
2185 },
2186 "funding": {
2187 "type": "opencollective",
2188 "url": "https://opencollective.com/csstools"
2189 },
2190 "peerDependencies": {
2191 "postcss": "^8.2"
2192 }
2193 },
2194 "node_modules/@csstools/postcss-nested-calc": {
2195 "version": "1.0.0",
2196 "resolved": "https://registry.npmjs.org/@csstools/postcss-nested-calc/-/postcss-nested-calc-1.0.0.tgz",
2197 "integrity": "sha512-JCsQsw1wjYwv1bJmgjKSoZNvf7R6+wuHDAbi5f/7MbFhl2d/+v+TvBTU4BJH3G1X1H87dHl0mh6TfYogbT/dJQ==",
2198 "dependencies": {
2199 "postcss-value-parser": "^4.2.0"
2200 },
2201 "engines": {
2202 "node": "^12 || ^14 || >=16"
2203 },
2204 "funding": {
2205 "type": "opencollective",
2206 "url": "https://opencollective.com/csstools"
2207 },
2208 "peerDependencies": {
2209 "postcss": "^8.2"
2210 }
2211 },
2212 "node_modules/@csstools/postcss-normalize-display-values": {
2213 "version": "1.0.1",
2214 "resolved": "https://registry.npmjs.org/@csstools/postcss-normalize-display-values/-/postcss-normalize-display-values-1.0.1.tgz",
2215 "integrity": "sha512-jcOanIbv55OFKQ3sYeFD/T0Ti7AMXc9nM1hZWu8m/2722gOTxFg7xYu4RDLJLeZmPUVQlGzo4jhzvTUq3x4ZUw==",
2216 "dependencies": {
2217 "postcss-value-parser": "^4.2.0"
2218 },
2219 "engines": {
2220 "node": "^12 || ^14 || >=16"
2221 },
2222 "funding": {
2223 "type": "opencollective",
2224 "url": "https://opencollective.com/csstools"
2225 },
2226 "peerDependencies": {
2227 "postcss": "^8.2"
2228 }
2229 },
2230 "node_modules/@csstools/postcss-oklab-function": {
2231 "version": "1.1.1",
2232 "resolved": "https://registry.npmjs.org/@csstools/postcss-oklab-function/-/postcss-oklab-function-1.1.1.tgz",
2233 "integrity": "sha512-nJpJgsdA3dA9y5pgyb/UfEzE7W5Ka7u0CX0/HIMVBNWzWemdcTH3XwANECU6anWv/ao4vVNLTMxhiPNZsTK6iA==",
2234 "dependencies": {
2235 "@csstools/postcss-progressive-custom-properties": "^1.1.0",
2236 "postcss-value-parser": "^4.2.0"
2237 },
2238 "engines": {
2239 "node": "^12 || ^14 || >=16"
2240 },
2241 "funding": {
2242 "type": "opencollective",
2243 "url": "https://opencollective.com/csstools"
2244 },
2245 "peerDependencies": {
2246 "postcss": "^8.2"
2247 }
2248 },
2249 "node_modules/@csstools/postcss-progressive-custom-properties": {
2250 "version": "1.3.0",
2251 "resolved": "https://registry.npmjs.org/@csstools/postcss-progressive-custom-properties/-/postcss-progressive-custom-properties-1.3.0.tgz",
2252 "integrity": "sha512-ASA9W1aIy5ygskZYuWams4BzafD12ULvSypmaLJT2jvQ8G0M3I8PRQhC0h7mG0Z3LI05+agZjqSR9+K9yaQQjA==",
2253 "dependencies": {
2254 "postcss-value-parser": "^4.2.0"
2255 },
2256 "engines": {
2257 "node": "^12 || ^14 || >=16"
2258 },
2259 "peerDependencies": {
2260 "postcss": "^8.3"
2261 }
2262 },
2263 "node_modules/@csstools/postcss-stepped-value-functions": {
2264 "version": "1.0.1",
2265 "resolved": "https://registry.npmjs.org/@csstools/postcss-stepped-value-functions/-/postcss-stepped-value-functions-1.0.1.tgz",
2266 "integrity": "sha512-dz0LNoo3ijpTOQqEJLY8nyaapl6umbmDcgj4AD0lgVQ572b2eqA1iGZYTTWhrcrHztWDDRAX2DGYyw2VBjvCvQ==",
2267 "dependencies": {
2268 "postcss-value-parser": "^4.2.0"
2269 },
2270 "engines": {
2271 "node": "^12 || ^14 || >=16"
2272 },
2273 "funding": {
2274 "type": "opencollective",
2275 "url": "https://opencollective.com/csstools"
2276 },
2277 "peerDependencies": {
2278 "postcss": "^8.2"
2279 }
2280 },
2281 "node_modules/@csstools/postcss-text-decoration-shorthand": {
2282 "version": "1.0.0",
2283 "resolved": "https://registry.npmjs.org/@csstools/postcss-text-decoration-shorthand/-/postcss-text-decoration-shorthand-1.0.0.tgz",
2284 "integrity": "sha512-c1XwKJ2eMIWrzQenN0XbcfzckOLLJiczqy+YvfGmzoVXd7pT9FfObiSEfzs84bpE/VqfpEuAZ9tCRbZkZxxbdw==",
2285 "dependencies": {
2286 "postcss-value-parser": "^4.2.0"
2287 },
2288 "engines": {
2289 "node": "^12 || ^14 || >=16"
2290 },
2291 "funding": {
2292 "type": "opencollective",
2293 "url": "https://opencollective.com/csstools"
2294 },
2295 "peerDependencies": {
2296 "postcss": "^8.2"
2297 }
2298 },
2299 "node_modules/@csstools/postcss-trigonometric-functions": {
2300 "version": "1.0.2",
2301 "resolved": "https://registry.npmjs.org/@csstools/postcss-trigonometric-functions/-/postcss-trigonometric-functions-1.0.2.tgz",
2302 "integrity": "sha512-woKaLO///4bb+zZC2s80l+7cm07M7268MsyG3M0ActXXEFi6SuhvriQYcb58iiKGbjwwIU7n45iRLEHypB47Og==",
2303 "dependencies": {
2304 "postcss-value-parser": "^4.2.0"
2305 },
2306 "engines": {
2307 "node": "^14 || >=16"
2308 },
2309 "funding": {
2310 "type": "opencollective",
2311 "url": "https://opencollective.com/csstools"
2312 },
2313 "peerDependencies": {
2314 "postcss": "^8.2"
2315 }
2316 },
2317 "node_modules/@csstools/postcss-unset-value": {
2318 "version": "1.0.2",
2319 "resolved": "https://registry.npmjs.org/@csstools/postcss-unset-value/-/postcss-unset-value-1.0.2.tgz",
2320 "integrity": "sha512-c8J4roPBILnelAsdLr4XOAR/GsTm0GJi4XpcfvoWk3U6KiTCqiFYc63KhRMQQX35jYMp4Ao8Ij9+IZRgMfJp1g==",
2321 "engines": {
2322 "node": "^12 || ^14 || >=16"
2323 },
2324 "funding": {
2325 "type": "opencollective",
2326 "url": "https://opencollective.com/csstools"
2327 },
2328 "peerDependencies": {
2329 "postcss": "^8.2"
2330 }
2331 },
2332 "node_modules/@csstools/selector-specificity": {
2333 "version": "2.2.0",
2334 "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-2.2.0.tgz",
2335 "integrity": "sha512-+OJ9konv95ClSTOJCmMZqpd5+YGsB2S+x6w3E1oaM8UuR5j8nTNHYSz8c9BEPGDOCMQYIEEGlVPj/VY64iTbGw==",
2336 "engines": {
2337 "node": "^14 || ^16 || >=18"
2338 },
2339 "funding": {
2340 "type": "opencollective",
2341 "url": "https://opencollective.com/csstools"
2342 },
2343 "peerDependencies": {
2344 "postcss-selector-parser": "^6.0.10"
2345 }
2346 },
2347 "node_modules/@eslint-community/eslint-utils": {
2348 "version": "4.4.0",
2349 "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz",
2350 "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==",
2351 "dependencies": {
2352 "eslint-visitor-keys": "^3.3.0"
2353 },
2354 "engines": {
2355 "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
2356 },
2357 "peerDependencies": {
2358 "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0"
2359 }
2360 },
2361 "node_modules/@eslint-community/regexpp": {
2362 "version": "4.11.0",
2363 "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.11.0.tgz",
2364 "integrity": "sha512-G/M/tIiMrTAxEWRfLfQJMmGNX28IxBg4PBz8XqQhqUHLFI6TL2htpIB1iQCj144V5ee/JaKyT9/WZ0MGZWfA7A==",
2365 "engines": {
2366 "node": "^12.0.0 || ^14.0.0 || >=16.0.0"
2367 }
2368 },
2369 "node_modules/@eslint/eslintrc": {
2370 "version": "2.1.4",
2371 "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz",
2372 "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==",
2373 "dependencies": {
2374 "ajv": "^6.12.4",
2375 "debug": "^4.3.2",
2376 "espree": "^9.6.0",
2377 "globals": "^13.19.0",
2378 "ignore": "^5.2.0",
2379 "import-fresh": "^3.2.1",
2380 "js-yaml": "^4.1.0",
2381 "minimatch": "^3.1.2",
2382 "strip-json-comments": "^3.1.1"
2383 },
2384 "engines": {
2385 "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
2386 },
2387 "funding": {
2388 "url": "https://opencollective.com/eslint"
2389 }
2390 },
2391 "node_modules/@eslint/eslintrc/node_modules/argparse": {
2392 "version": "2.0.1",
2393 "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
2394 "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="
2395 },
2396 "node_modules/@eslint/eslintrc/node_modules/globals": {
2397 "version": "13.24.0",
2398 "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz",
2399 "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==",
2400 "dependencies": {
2401 "type-fest": "^0.20.2"
2402 },
2403 "engines": {
2404 "node": ">=8"
2405 },
2406 "funding": {
2407 "url": "https://github.com/sponsors/sindresorhus"
2408 }
2409 },
2410 "node_modules/@eslint/eslintrc/node_modules/js-yaml": {
2411 "version": "4.1.0",
2412 "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
2413 "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
2414 "dependencies": {
2415 "argparse": "^2.0.1"
2416 },
2417 "bin": {
2418 "js-yaml": "bin/js-yaml.js"
2419 }
2420 },
2421 "node_modules/@eslint/eslintrc/node_modules/type-fest": {
2422 "version": "0.20.2",
2423 "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz",
2424 "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==",
2425 "engines": {
2426 "node": ">=10"
2427 },
2428 "funding": {
2429 "url": "https://github.com/sponsors/sindresorhus"
2430 }
2431 },
2432 "node_modules/@eslint/js": {
2433 "version": "8.57.0",
2434 "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz",
2435 "integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==",
2436 "engines": {
2437 "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
2438 }
2439 },
2440 "node_modules/@humanwhocodes/config-array": {
2441 "version": "0.11.14",
2442 "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz",
2443 "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==",
2444 "deprecated": "Use @eslint/config-array instead",
2445 "dependencies": {
2446 "@humanwhocodes/object-schema": "^2.0.2",
2447 "debug": "^4.3.1",
2448 "minimatch": "^3.0.5"
2449 },
2450 "engines": {
2451 "node": ">=10.10.0"
2452 }
2453 },
2454 "node_modules/@humanwhocodes/module-importer": {
2455 "version": "1.0.1",
2456 "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz",
2457 "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==",
2458 "engines": {
2459 "node": ">=12.22"
2460 },
2461 "funding": {
2462 "type": "github",
2463 "url": "https://github.com/sponsors/nzakas"
2464 }
2465 },
2466 "node_modules/@humanwhocodes/object-schema": {
2467 "version": "2.0.3",
2468 "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz",
2469 "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==",
2470 "deprecated": "Use @eslint/object-schema instead"
2471 },
2472 "node_modules/@isaacs/cliui": {
2473 "version": "8.0.2",
2474 "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz",
2475 "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==",
2476 "dependencies": {
2477 "string-width": "^5.1.2",
2478 "string-width-cjs": "npm:string-width@^4.2.0",
2479 "strip-ansi": "^7.0.1",
2480 "strip-ansi-cjs": "npm:strip-ansi@^6.0.1",
2481 "wrap-ansi": "^8.1.0",
2482 "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0"
2483 },
2484 "engines": {
2485 "node": ">=12"
2486 }
2487 },
2488 "node_modules/@isaacs/cliui/node_modules/ansi-regex": {
2489 "version": "6.0.1",
2490 "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz",
2491 "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==",
2492 "engines": {
2493 "node": ">=12"
2494 },
2495 "funding": {
2496 "url": "https://github.com/chalk/ansi-regex?sponsor=1"
2497 }
2498 },
2499 "node_modules/@isaacs/cliui/node_modules/ansi-styles": {
2500 "version": "6.2.1",
2501 "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz",
2502 "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==",
2503 "engines": {
2504 "node": ">=12"
2505 },
2506 "funding": {
2507 "url": "https://github.com/chalk/ansi-styles?sponsor=1"
2508 }
2509 },
2510 "node_modules/@isaacs/cliui/node_modules/string-width": {
2511 "version": "5.1.2",
2512 "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz",
2513 "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==",
2514 "dependencies": {
2515 "eastasianwidth": "^0.2.0",
2516 "emoji-regex": "^9.2.2",
2517 "strip-ansi": "^7.0.1"
2518 },
2519 "engines": {
2520 "node": ">=12"
2521 },
2522 "funding": {
2523 "url": "https://github.com/sponsors/sindresorhus"
2524 }
2525 },
2526 "node_modules/@isaacs/cliui/node_modules/strip-ansi": {
2527 "version": "7.1.0",
2528 "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz",
2529 "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==",
2530 "dependencies": {
2531 "ansi-regex": "^6.0.1"
2532 },
2533 "engines": {
2534 "node": ">=12"
2535 },
2536 "funding": {
2537 "url": "https://github.com/chalk/strip-ansi?sponsor=1"
2538 }
2539 },
2540 "node_modules/@isaacs/cliui/node_modules/wrap-ansi": {
2541 "version": "8.1.0",
2542 "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz",
2543 "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==",
2544 "dependencies": {
2545 "ansi-styles": "^6.1.0",
2546 "string-width": "^5.0.1",
2547 "strip-ansi": "^7.0.1"
2548 },
2549 "engines": {
2550 "node": ">=12"
2551 },
2552 "funding": {
2553 "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
2554 }
2555 },
2556 "node_modules/@istanbuljs/load-nyc-config": {
2557 "version": "1.1.0",
2558 "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz",
2559 "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==",
2560 "dependencies": {
2561 "camelcase": "^5.3.1",
2562 "find-up": "^4.1.0",
2563 "get-package-type": "^0.1.0",
2564 "js-yaml": "^3.13.1",
2565 "resolve-from": "^5.0.0"
2566 },
2567 "engines": {
2568 "node": ">=8"
2569 }
2570 },
2571 "node_modules/@istanbuljs/load-nyc-config/node_modules/camelcase": {
2572 "version": "5.3.1",
2573 "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
2574 "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
2575 "engines": {
2576 "node": ">=6"
2577 }
2578 },
2579 "node_modules/@istanbuljs/schema": {
2580 "version": "0.1.3",
2581 "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz",
2582 "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==",
2583 "engines": {
2584 "node": ">=8"
2585 }
2586 },
2587 "node_modules/@jest/console": {
2588 "version": "27.5.1",
2589 "resolved": "https://registry.npmjs.org/@jest/console/-/console-27.5.1.tgz",
2590 "integrity": "sha512-kZ/tNpS3NXn0mlXXXPNuDZnb4c0oZ20r4K5eemM2k30ZC3G0T02nXUvyhf5YdbXWHPEJLc9qGLxEZ216MdL+Zg==",
2591 "dependencies": {
2592 "@jest/types": "^27.5.1",
2593 "@types/node": "*",
2594 "chalk": "^4.0.0",
2595 "jest-message-util": "^27.5.1",
2596 "jest-util": "^27.5.1",
2597 "slash": "^3.0.0"
2598 },
2599 "engines": {
2600 "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
2601 }
2602 },
2603 "node_modules/@jest/console/node_modules/ansi-styles": {
2604 "version": "4.3.0",
2605 "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
2606 "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
2607 "dependencies": {
2608 "color-convert": "^2.0.1"
2609 },
2610 "engines": {
2611 "node": ">=8"
2612 },
2613 "funding": {
2614 "url": "https://github.com/chalk/ansi-styles?sponsor=1"
2615 }
2616 },
2617 "node_modules/@jest/console/node_modules/chalk": {
2618 "version": "4.1.2",
2619 "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
2620 "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
2621 "dependencies": {
2622 "ansi-styles": "^4.1.0",
2623 "supports-color": "^7.1.0"
2624 },
2625 "engines": {
2626 "node": ">=10"
2627 },
2628 "funding": {
2629 "url": "https://github.com/chalk/chalk?sponsor=1"
2630 }
2631 },
2632 "node_modules/@jest/console/node_modules/color-convert": {
2633 "version": "2.0.1",
2634 "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
2635 "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
2636 "dependencies": {
2637 "color-name": "~1.1.4"
2638 },
2639 "engines": {
2640 "node": ">=7.0.0"
2641 }
2642 },
2643 "node_modules/@jest/console/node_modules/color-name": {
2644 "version": "1.1.4",
2645 "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
2646 "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
2647 },
2648 "node_modules/@jest/console/node_modules/has-flag": {
2649 "version": "4.0.0",
2650 "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
2651 "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
2652 "engines": {
2653 "node": ">=8"
2654 }
2655 },
2656 "node_modules/@jest/console/node_modules/supports-color": {
2657 "version": "7.2.0",
2658 "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
2659 "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
2660 "dependencies": {
2661 "has-flag": "^4.0.0"
2662 },
2663 "engines": {
2664 "node": ">=8"
2665 }
2666 },
2667 "node_modules/@jest/core": {
2668 "version": "27.5.1",
2669 "resolved": "https://registry.npmjs.org/@jest/core/-/core-27.5.1.tgz",
2670 "integrity": "sha512-AK6/UTrvQD0Cd24NSqmIA6rKsu0tKIxfiCducZvqxYdmMisOYAsdItspT+fQDQYARPf8XgjAFZi0ogW2agH5nQ==",
2671 "dependencies": {
2672 "@jest/console": "^27.5.1",
2673 "@jest/reporters": "^27.5.1",
2674 "@jest/test-result": "^27.5.1",
2675 "@jest/transform": "^27.5.1",
2676 "@jest/types": "^27.5.1",
2677 "@types/node": "*",
2678 "ansi-escapes": "^4.2.1",
2679 "chalk": "^4.0.0",
2680 "emittery": "^0.8.1",
2681 "exit": "^0.1.2",
2682 "graceful-fs": "^4.2.9",
2683 "jest-changed-files": "^27.5.1",
2684 "jest-config": "^27.5.1",
2685 "jest-haste-map": "^27.5.1",
2686 "jest-message-util": "^27.5.1",
2687 "jest-regex-util": "^27.5.1",
2688 "jest-resolve": "^27.5.1",
2689 "jest-resolve-dependencies": "^27.5.1",
2690 "jest-runner": "^27.5.1",
2691 "jest-runtime": "^27.5.1",
2692 "jest-snapshot": "^27.5.1",
2693 "jest-util": "^27.5.1",
2694 "jest-validate": "^27.5.1",
2695 "jest-watcher": "^27.5.1",
2696 "micromatch": "^4.0.4",
2697 "rimraf": "^3.0.0",
2698 "slash": "^3.0.0",
2699 "strip-ansi": "^6.0.0"
2700 },
2701 "engines": {
2702 "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
2703 },
2704 "peerDependencies": {
2705 "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0"
2706 },
2707 "peerDependenciesMeta": {
2708 "node-notifier": {
2709 "optional": true
2710 }
2711 }
2712 },
2713 "node_modules/@jest/core/node_modules/ansi-styles": {
2714 "version": "4.3.0",
2715 "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
2716 "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
2717 "dependencies": {
2718 "color-convert": "^2.0.1"
2719 },
2720 "engines": {
2721 "node": ">=8"
2722 },
2723 "funding": {
2724 "url": "https://github.com/chalk/ansi-styles?sponsor=1"
2725 }
2726 },
2727 "node_modules/@jest/core/node_modules/chalk": {
2728 "version": "4.1.2",
2729 "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
2730 "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
2731 "dependencies": {
2732 "ansi-styles": "^4.1.0",
2733 "supports-color": "^7.1.0"
2734 },
2735 "engines": {
2736 "node": ">=10"
2737 },
2738 "funding": {
2739 "url": "https://github.com/chalk/chalk?sponsor=1"
2740 }
2741 },
2742 "node_modules/@jest/core/node_modules/color-convert": {
2743 "version": "2.0.1",
2744 "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
2745 "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
2746 "dependencies": {
2747 "color-name": "~1.1.4"
2748 },
2749 "engines": {
2750 "node": ">=7.0.0"
2751 }
2752 },
2753 "node_modules/@jest/core/node_modules/color-name": {
2754 "version": "1.1.4",
2755 "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
2756 "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
2757 },
2758 "node_modules/@jest/core/node_modules/has-flag": {
2759 "version": "4.0.0",
2760 "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
2761 "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
2762 "engines": {
2763 "node": ">=8"
2764 }
2765 },
2766 "node_modules/@jest/core/node_modules/supports-color": {
2767 "version": "7.2.0",
2768 "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
2769 "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
2770 "dependencies": {
2771 "has-flag": "^4.0.0"
2772 },
2773 "engines": {
2774 "node": ">=8"
2775 }
2776 },
2777 "node_modules/@jest/environment": {
2778 "version": "27.5.1",
2779 "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-27.5.1.tgz",
2780 "integrity": "sha512-/WQjhPJe3/ghaol/4Bq480JKXV/Rfw8nQdN7f41fM8VDHLcxKXou6QyXAh3EFr9/bVG3x74z1NWDkP87EiY8gA==",
2781 "dependencies": {
2782 "@jest/fake-timers": "^27.5.1",
2783 "@jest/types": "^27.5.1",
2784 "@types/node": "*",
2785 "jest-mock": "^27.5.1"
2786 },
2787 "engines": {
2788 "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
2789 }
2790 },
2791 "node_modules/@jest/fake-timers": {
2792 "version": "27.5.1",
2793 "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-27.5.1.tgz",
2794 "integrity": "sha512-/aPowoolwa07k7/oM3aASneNeBGCmGQsc3ugN4u6s4C/+s5M64MFo/+djTdiwcbQlRfFElGuDXWzaWj6QgKObQ==",
2795 "dependencies": {
2796 "@jest/types": "^27.5.1",
2797 "@sinonjs/fake-timers": "^8.0.1",
2798 "@types/node": "*",
2799 "jest-message-util": "^27.5.1",
2800 "jest-mock": "^27.5.1",
2801 "jest-util": "^27.5.1"
2802 },
2803 "engines": {
2804 "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
2805 }
2806 },
2807 "node_modules/@jest/globals": {
2808 "version": "27.5.1",
2809 "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-27.5.1.tgz",
2810 "integrity": "sha512-ZEJNB41OBQQgGzgyInAv0UUfDDj3upmHydjieSxFvTRuZElrx7tXg/uVQ5hYVEwiXs3+aMsAeEc9X7xiSKCm4Q==",
2811 "dependencies": {
2812 "@jest/environment": "^27.5.1",
2813 "@jest/types": "^27.5.1",
2814 "expect": "^27.5.1"
2815 },
2816 "engines": { 356 "engines": {
2817 "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" 357 "node": ">=18"
2818 } 358 }
2819 }, 359 },
2820 "node_modules/@jest/reporters": { 360 "node_modules/@esbuild/android-arm64": {
2821 "version": "27.5.1", 361 "version": "0.25.8",
2822 "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-27.5.1.tgz", 362 "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.8.tgz",
2823 "integrity": "sha512-cPXh9hWIlVJMQkVk84aIvXuBB4uQQmFqZiacloFuGiP3ah1sbCxCosidXFDfqG8+6fO1oR2dTJTlsOy4VFmUfw==", 363 "integrity": "sha512-OD3p7LYzWpLhZEyATcTSJ67qB5D+20vbtr6vHlHWSQYhKtzUYrETuWThmzFpZtFsBIxRvhO07+UgVA9m0i/O1w==",
2824 "dependencies": { 364 "cpu": [
2825 "@bcoe/v8-coverage": "^0.2.3", 365 "arm64"
2826 "@jest/console": "^27.5.1", 366 ],
2827 "@jest/test-result": "^27.5.1", 367 "license": "MIT",
2828 "@jest/transform": "^27.5.1", 368 "optional": true,
2829 "@jest/types": "^27.5.1", 369 "os": [
2830 "@types/node": "*", 370 "android"
2831 "chalk": "^4.0.0", 371 ],
2832 "collect-v8-coverage": "^1.0.0",
2833 "exit": "^0.1.2",
2834 "glob": "^7.1.2",
2835 "graceful-fs": "^4.2.9",
2836 "istanbul-lib-coverage": "^3.0.0",
2837 "istanbul-lib-instrument": "^5.1.0",
2838 "istanbul-lib-report": "^3.0.0",
2839 "istanbul-lib-source-maps": "^4.0.0",
2840 "istanbul-reports": "^3.1.3",
2841 "jest-haste-map": "^27.5.1",
2842 "jest-resolve": "^27.5.1",
2843 "jest-util": "^27.5.1",
2844 "jest-worker": "^27.5.1",
2845 "slash": "^3.0.0",
2846 "source-map": "^0.6.0",
2847 "string-length": "^4.0.1",
2848 "terminal-link": "^2.0.0",
2849 "v8-to-istanbul": "^8.1.0"
2850 },
2851 "engines": { 372 "engines": {
2852 "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" 373 "node": ">=18"
2853 },
2854 "peerDependencies": {
2855 "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0"
2856 },
2857 "peerDependenciesMeta": {
2858 "node-notifier": {
2859 "optional": true
2860 }
2861 } 374 }
2862 }, 375 },
2863 "node_modules/@jest/reporters/node_modules/ansi-styles": { 376 "node_modules/@esbuild/android-x64": {
2864 "version": "4.3.0", 377 "version": "0.25.8",
2865 "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", 378 "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.8.tgz",
2866 "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", 379 "integrity": "sha512-yJAVPklM5+4+9dTeKwHOaA+LQkmrKFX96BM0A/2zQrbS6ENCmxc4OVoBs5dPkCCak2roAD+jKCdnmOqKszPkjA==",
2867 "dependencies": { 380 "cpu": [
2868 "color-convert": "^2.0.1" 381 "x64"
2869 }, 382 ],
383 "license": "MIT",
384 "optional": true,
385 "os": [
386 "android"
387 ],
2870 "engines": { 388 "engines": {
2871 "node": ">=8" 389 "node": ">=18"
2872 },
2873 "funding": {
2874 "url": "https://github.com/chalk/ansi-styles?sponsor=1"
2875 } 390 }
2876 }, 391 },
2877 "node_modules/@jest/reporters/node_modules/chalk": { 392 "node_modules/@esbuild/darwin-arm64": {
2878 "version": "4.1.2", 393 "version": "0.25.8",
2879 "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", 394 "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.8.tgz",
2880 "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", 395 "integrity": "sha512-Jw0mxgIaYX6R8ODrdkLLPwBqHTtYHJSmzzd+QeytSugzQ0Vg4c5rDky5VgkoowbZQahCbsv1rT1KW72MPIkevw==",
2881 "dependencies": { 396 "cpu": [
2882 "ansi-styles": "^4.1.0", 397 "arm64"
2883 "supports-color": "^7.1.0" 398 ],
2884 }, 399 "license": "MIT",
400 "optional": true,
401 "os": [
402 "darwin"
403 ],
2885 "engines": { 404 "engines": {
2886 "node": ">=10" 405 "node": ">=18"
2887 },
2888 "funding": {
2889 "url": "https://github.com/chalk/chalk?sponsor=1"
2890 } 406 }
2891 }, 407 },
2892 "node_modules/@jest/reporters/node_modules/color-convert": { 408 "node_modules/@esbuild/darwin-x64": {
2893 "version": "2.0.1", 409 "version": "0.25.8",
2894 "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", 410 "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.8.tgz",
2895 "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", 411 "integrity": "sha512-Vh2gLxxHnuoQ+GjPNvDSDRpoBCUzY4Pu0kBqMBDlK4fuWbKgGtmDIeEC081xi26PPjn+1tct+Bh8FjyLlw1Zlg==",
2896 "dependencies": { 412 "cpu": [
2897 "color-name": "~1.1.4" 413 "x64"
2898 }, 414 ],
415 "license": "MIT",
416 "optional": true,
417 "os": [
418 "darwin"
419 ],
2899 "engines": { 420 "engines": {
2900 "node": ">=7.0.0" 421 "node": ">=18"
2901 } 422 }
2902 }, 423 },
2903 "node_modules/@jest/reporters/node_modules/color-name": { 424 "node_modules/@esbuild/freebsd-arm64": {
2904 "version": "1.1.4", 425 "version": "0.25.8",
2905 "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", 426 "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.8.tgz",
2906 "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" 427 "integrity": "sha512-YPJ7hDQ9DnNe5vxOm6jaie9QsTwcKedPvizTVlqWG9GBSq+BuyWEDazlGaDTC5NGU4QJd666V0yqCBL2oWKPfA==",
2907 }, 428 "cpu": [
2908 "node_modules/@jest/reporters/node_modules/has-flag": { 429 "arm64"
2909 "version": "4.0.0", 430 ],
2910 "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", 431 "license": "MIT",
2911 "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", 432 "optional": true,
433 "os": [
434 "freebsd"
435 ],
2912 "engines": { 436 "engines": {
2913 "node": ">=8" 437 "node": ">=18"
2914 } 438 }
2915 }, 439 },
2916 "node_modules/@jest/reporters/node_modules/source-map": { 440 "node_modules/@esbuild/freebsd-x64": {
2917 "version": "0.6.1", 441 "version": "0.25.8",
2918 "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", 442 "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.8.tgz",
2919 "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", 443 "integrity": "sha512-MmaEXxQRdXNFsRN/KcIimLnSJrk2r5H8v+WVafRWz5xdSVmWLoITZQXcgehI2ZE6gioE6HirAEToM/RvFBeuhw==",
444 "cpu": [
445 "x64"
446 ],
447 "license": "MIT",
448 "optional": true,
449 "os": [
450 "freebsd"
451 ],
2920 "engines": { 452 "engines": {
2921 "node": ">=0.10.0" 453 "node": ">=18"
2922 } 454 }
2923 }, 455 },
2924 "node_modules/@jest/reporters/node_modules/supports-color": { 456 "node_modules/@esbuild/linux-arm": {
2925 "version": "7.2.0", 457 "version": "0.25.8",
2926 "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", 458 "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.8.tgz",
2927 "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", 459 "integrity": "sha512-FuzEP9BixzZohl1kLf76KEVOsxtIBFwCaLupVuk4eFVnOZfU+Wsn+x5Ryam7nILV2pkq2TqQM9EZPsOBuMC+kg==",
2928 "dependencies": { 460 "cpu": [
2929 "has-flag": "^4.0.0" 461 "arm"
2930 }, 462 ],
463 "license": "MIT",
464 "optional": true,
465 "os": [
466 "linux"
467 ],
2931 "engines": { 468 "engines": {
2932 "node": ">=8" 469 "node": ">=18"
2933 } 470 }
2934 }, 471 },
2935 "node_modules/@jest/schemas": { 472 "node_modules/@esbuild/linux-arm64": {
2936 "version": "28.1.3", 473 "version": "0.25.8",
2937 "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-28.1.3.tgz", 474 "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.8.tgz",
2938 "integrity": "sha512-/l/VWsdt/aBXgjshLWOFyFt3IVdYypu5y2Wn2rOO1un6nkqIn8SLXzgIMYXFyYsRWDyF5EthmKJMIdJvk08grg==", 475 "integrity": "sha512-WIgg00ARWv/uYLU7lsuDK00d/hHSfES5BzdWAdAig1ioV5kaFNrtK8EqGcUBJhYqotlUByUKz5Qo6u8tt7iD/w==",
2939 "dependencies": { 476 "cpu": [
2940 "@sinclair/typebox": "^0.24.1" 477 "arm64"
2941 }, 478 ],
479 "license": "MIT",
480 "optional": true,
481 "os": [
482 "linux"
483 ],
2942 "engines": { 484 "engines": {
2943 "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" 485 "node": ">=18"
2944 } 486 }
2945 }, 487 },
2946 "node_modules/@jest/source-map": { 488 "node_modules/@esbuild/linux-ia32": {
2947 "version": "27.5.1", 489 "version": "0.25.8",
2948 "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-27.5.1.tgz", 490 "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.8.tgz",
2949 "integrity": "sha512-y9NIHUYF3PJRlHk98NdC/N1gl88BL08aQQgu4k4ZopQkCw9t9cV8mtl3TV8b/YCB8XaVTFrmUTAJvjsntDireg==", 491 "integrity": "sha512-A1D9YzRX1i+1AJZuFFUMP1E9fMaYY+GnSQil9Tlw05utlE86EKTUA7RjwHDkEitmLYiFsRd9HwKBPEftNdBfjg==",
2950 "dependencies": { 492 "cpu": [
2951 "callsites": "^3.0.0", 493 "ia32"
2952 "graceful-fs": "^4.2.9", 494 ],
2953 "source-map": "^0.6.0" 495 "license": "MIT",
2954 }, 496 "optional": true,
497 "os": [
498 "linux"
499 ],
2955 "engines": { 500 "engines": {
2956 "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" 501 "node": ">=18"
2957 } 502 }
2958 }, 503 },
2959 "node_modules/@jest/source-map/node_modules/source-map": { 504 "node_modules/@esbuild/linux-loong64": {
2960 "version": "0.6.1", 505 "version": "0.25.8",
2961 "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", 506 "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.8.tgz",
2962 "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", 507 "integrity": "sha512-O7k1J/dwHkY1RMVvglFHl1HzutGEFFZ3kNiDMSOyUrB7WcoHGf96Sh+64nTRT26l3GMbCW01Ekh/ThKM5iI7hQ==",
508 "cpu": [
509 "loong64"
510 ],
511 "license": "MIT",
512 "optional": true,
513 "os": [
514 "linux"
515 ],
2963 "engines": { 516 "engines": {
2964 "node": ">=0.10.0" 517 "node": ">=18"
2965 } 518 }
2966 }, 519 },
2967 "node_modules/@jest/test-result": { 520 "node_modules/@esbuild/linux-mips64el": {
2968 "version": "27.5.1", 521 "version": "0.25.8",
2969 "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-27.5.1.tgz", 522 "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.8.tgz",
2970 "integrity": "sha512-EW35l2RYFUcUQxFJz5Cv5MTOxlJIQs4I7gxzi2zVU7PJhOwfYq1MdC5nhSmYjX1gmMmLPvB3sIaC+BkcHRBfag==", 523 "integrity": "sha512-uv+dqfRazte3BzfMp8PAQXmdGHQt2oC/y2ovwpTteqrMx2lwaksiFZ/bdkXJC19ttTvNXBuWH53zy/aTj1FgGw==",
2971 "dependencies": { 524 "cpu": [
2972 "@jest/console": "^27.5.1", 525 "mips64el"
2973 "@jest/types": "^27.5.1", 526 ],
2974 "@types/istanbul-lib-coverage": "^2.0.0", 527 "license": "MIT",
2975 "collect-v8-coverage": "^1.0.0" 528 "optional": true,
2976 }, 529 "os": [
530 "linux"
531 ],
2977 "engines": { 532 "engines": {
2978 "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" 533 "node": ">=18"
2979 } 534 }
2980 }, 535 },
2981 "node_modules/@jest/test-sequencer": { 536 "node_modules/@esbuild/linux-ppc64": {
2982 "version": "27.5.1", 537 "version": "0.25.8",
2983 "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-27.5.1.tgz", 538 "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.8.tgz",
2984 "integrity": "sha512-LCheJF7WB2+9JuCS7VB/EmGIdQuhtqjRNI9A43idHv3E4KltCTsPsLxvdaubFHSYwY/fNjMWjl6vNRhDiN7vpQ==", 539 "integrity": "sha512-GyG0KcMi1GBavP5JgAkkstMGyMholMDybAf8wF5A70CALlDM2p/f7YFE7H92eDeH/VBtFJA5MT4nRPDGg4JuzQ==",
2985 "dependencies": { 540 "cpu": [
2986 "@jest/test-result": "^27.5.1", 541 "ppc64"
2987 "graceful-fs": "^4.2.9", 542 ],
2988 "jest-haste-map": "^27.5.1", 543 "license": "MIT",
2989 "jest-runtime": "^27.5.1" 544 "optional": true,
2990 }, 545 "os": [
546 "linux"
547 ],
2991 "engines": { 548 "engines": {
2992 "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" 549 "node": ">=18"
2993 } 550 }
2994 }, 551 },
2995 "node_modules/@jest/transform": { 552 "node_modules/@esbuild/linux-riscv64": {
2996 "version": "27.5.1", 553 "version": "0.25.8",
2997 "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-27.5.1.tgz", 554 "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.8.tgz",
2998 "integrity": "sha512-ipON6WtYgl/1329g5AIJVbUuEh0wZVbdpGwC99Jw4LwuoBNS95MVphU6zOeD9pDkon+LLbFL7lOQRapbB8SCHw==", 555 "integrity": "sha512-rAqDYFv3yzMrq7GIcen3XP7TUEG/4LK86LUPMIz6RT8A6pRIDn0sDcvjudVZBiiTcZCY9y2SgYX2lgK3AF+1eg==",
2999 "dependencies": { 556 "cpu": [
3000 "@babel/core": "^7.1.0", 557 "riscv64"
3001 "@jest/types": "^27.5.1", 558 ],
3002 "babel-plugin-istanbul": "^6.1.1", 559 "license": "MIT",
3003 "chalk": "^4.0.0", 560 "optional": true,
3004 "convert-source-map": "^1.4.0", 561 "os": [
3005 "fast-json-stable-stringify": "^2.0.0", 562 "linux"
3006 "graceful-fs": "^4.2.9", 563 ],
3007 "jest-haste-map": "^27.5.1",
3008 "jest-regex-util": "^27.5.1",
3009 "jest-util": "^27.5.1",
3010 "micromatch": "^4.0.4",
3011 "pirates": "^4.0.4",
3012 "slash": "^3.0.0",
3013 "source-map": "^0.6.1",
3014 "write-file-atomic": "^3.0.0"
3015 },
3016 "engines": { 564 "engines": {
3017 "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" 565 "node": ">=18"
3018 } 566 }
3019 }, 567 },
3020 "node_modules/@jest/transform/node_modules/ansi-styles": { 568 "node_modules/@esbuild/linux-s390x": {
3021 "version": "4.3.0", 569 "version": "0.25.8",
3022 "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", 570 "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.8.tgz",
3023 "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", 571 "integrity": "sha512-Xutvh6VjlbcHpsIIbwY8GVRbwoviWT19tFhgdA7DlenLGC/mbc3lBoVb7jxj9Z+eyGqvcnSyIltYUrkKzWqSvg==",
3024 "dependencies": { 572 "cpu": [
3025 "color-convert": "^2.0.1" 573 "s390x"
3026 }, 574 ],
575 "license": "MIT",
576 "optional": true,
577 "os": [
578 "linux"
579 ],
3027 "engines": { 580 "engines": {
3028 "node": ">=8" 581 "node": ">=18"
3029 },
3030 "funding": {
3031 "url": "https://github.com/chalk/ansi-styles?sponsor=1"
3032 } 582 }
3033 }, 583 },
3034 "node_modules/@jest/transform/node_modules/chalk": { 584 "node_modules/@esbuild/linux-x64": {
3035 "version": "4.1.2", 585 "version": "0.25.8",
3036 "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", 586 "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.8.tgz",
3037 "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", 587 "integrity": "sha512-ASFQhgY4ElXh3nDcOMTkQero4b1lgubskNlhIfJrsH5OKZXDpUAKBlNS0Kx81jwOBp+HCeZqmoJuihTv57/jvQ==",
3038 "dependencies": { 588 "cpu": [
3039 "ansi-styles": "^4.1.0", 589 "x64"
3040 "supports-color": "^7.1.0" 590 ],
3041 }, 591 "license": "MIT",
592 "optional": true,
593 "os": [
594 "linux"
595 ],
3042 "engines": { 596 "engines": {
3043 "node": ">=10" 597 "node": ">=18"
3044 },
3045 "funding": {
3046 "url": "https://github.com/chalk/chalk?sponsor=1"
3047 } 598 }
3048 }, 599 },
3049 "node_modules/@jest/transform/node_modules/color-convert": { 600 "node_modules/@esbuild/netbsd-arm64": {
3050 "version": "2.0.1", 601 "version": "0.25.8",
3051 "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", 602 "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.8.tgz",
3052 "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", 603 "integrity": "sha512-d1KfruIeohqAi6SA+gENMuObDbEjn22olAR7egqnkCD9DGBG0wsEARotkLgXDu6c4ncgWTZJtN5vcgxzWRMzcw==",
3053 "dependencies": { 604 "cpu": [
3054 "color-name": "~1.1.4" 605 "arm64"
3055 }, 606 ],
607 "license": "MIT",
608 "optional": true,
609 "os": [
610 "netbsd"
611 ],
3056 "engines": { 612 "engines": {
3057 "node": ">=7.0.0" 613 "node": ">=18"
3058 } 614 }
3059 }, 615 },
3060 "node_modules/@jest/transform/node_modules/color-name": { 616 "node_modules/@esbuild/netbsd-x64": {
3061 "version": "1.1.4", 617 "version": "0.25.8",
3062 "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", 618 "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.8.tgz",
3063 "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" 619 "integrity": "sha512-nVDCkrvx2ua+XQNyfrujIG38+YGyuy2Ru9kKVNyh5jAys6n+l44tTtToqHjino2My8VAY6Lw9H7RI73XFi66Cg==",
3064 }, 620 "cpu": [
3065 "node_modules/@jest/transform/node_modules/convert-source-map": { 621 "x64"
3066 "version": "1.9.0", 622 ],
3067 "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", 623 "license": "MIT",
3068 "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==" 624 "optional": true,
3069 }, 625 "os": [
3070 "node_modules/@jest/transform/node_modules/has-flag": { 626 "netbsd"
3071 "version": "4.0.0", 627 ],
3072 "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
3073 "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
3074 "engines": { 628 "engines": {
3075 "node": ">=8" 629 "node": ">=18"
3076 } 630 }
3077 }, 631 },
3078 "node_modules/@jest/transform/node_modules/source-map": { 632 "node_modules/@esbuild/openbsd-arm64": {
3079 "version": "0.6.1", 633 "version": "0.25.8",
3080 "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", 634 "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.8.tgz",
3081 "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", 635 "integrity": "sha512-j8HgrDuSJFAujkivSMSfPQSAa5Fxbvk4rgNAS5i3K+r8s1X0p1uOO2Hl2xNsGFppOeHOLAVgYwDVlmxhq5h+SQ==",
636 "cpu": [
637 "arm64"
638 ],
639 "license": "MIT",
640 "optional": true,
641 "os": [
642 "openbsd"
643 ],
3082 "engines": { 644 "engines": {
3083 "node": ">=0.10.0" 645 "node": ">=18"
3084 } 646 }
3085 }, 647 },
3086 "node_modules/@jest/transform/node_modules/supports-color": { 648 "node_modules/@esbuild/openbsd-x64": {
3087 "version": "7.2.0", 649 "version": "0.25.8",
3088 "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", 650 "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.8.tgz",
3089 "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", 651 "integrity": "sha512-1h8MUAwa0VhNCDp6Af0HToI2TJFAn1uqT9Al6DJVzdIBAd21m/G0Yfc77KDM3uF3T/YaOgQq3qTJHPbTOInaIQ==",
3090 "dependencies": { 652 "cpu": [
3091 "has-flag": "^4.0.0" 653 "x64"
3092 }, 654 ],
655 "license": "MIT",
656 "optional": true,
657 "os": [
658 "openbsd"
659 ],
3093 "engines": { 660 "engines": {
3094 "node": ">=8" 661 "node": ">=18"
3095 } 662 }
3096 }, 663 },
3097 "node_modules/@jest/types": { 664 "node_modules/@esbuild/openharmony-arm64": {
3098 "version": "27.5.1", 665 "version": "0.25.8",
3099 "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", 666 "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.25.8.tgz",
3100 "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", 667 "integrity": "sha512-r2nVa5SIK9tSWd0kJd9HCffnDHKchTGikb//9c7HX+r+wHYCpQrSgxhlY6KWV1nFo1l4KFbsMlHk+L6fekLsUg==",
3101 "dependencies": { 668 "cpu": [
3102 "@types/istanbul-lib-coverage": "^2.0.0", 669 "arm64"
3103 "@types/istanbul-reports": "^3.0.0", 670 ],
3104 "@types/node": "*", 671 "license": "MIT",
3105 "@types/yargs": "^16.0.0", 672 "optional": true,
3106 "chalk": "^4.0.0" 673 "os": [
3107 }, 674 "openharmony"
675 ],
3108 "engines": { 676 "engines": {
3109 "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" 677 "node": ">=18"
3110 } 678 }
3111 }, 679 },
3112 "node_modules/@jest/types/node_modules/ansi-styles": { 680 "node_modules/@esbuild/sunos-x64": {
3113 "version": "4.3.0", 681 "version": "0.25.8",
3114 "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", 682 "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.8.tgz",
3115 "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", 683 "integrity": "sha512-zUlaP2S12YhQ2UzUfcCuMDHQFJyKABkAjvO5YSndMiIkMimPmxA+BYSBikWgsRpvyxuRnow4nS5NPnf9fpv41w==",
3116 "dependencies": { 684 "cpu": [
3117 "color-convert": "^2.0.1" 685 "x64"
3118 }, 686 ],
687 "license": "MIT",
688 "optional": true,
689 "os": [
690 "sunos"
691 ],
3119 "engines": { 692 "engines": {
3120 "node": ">=8" 693 "node": ">=18"
3121 },
3122 "funding": {
3123 "url": "https://github.com/chalk/ansi-styles?sponsor=1"
3124 } 694 }
3125 }, 695 },
3126 "node_modules/@jest/types/node_modules/chalk": { 696 "node_modules/@esbuild/win32-arm64": {
3127 "version": "4.1.2", 697 "version": "0.25.8",
3128 "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", 698 "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.8.tgz",
3129 "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", 699 "integrity": "sha512-YEGFFWESlPva8hGL+zvj2z/SaK+pH0SwOM0Nc/d+rVnW7GSTFlLBGzZkuSU9kFIGIo8q9X3ucpZhu8PDN5A2sQ==",
3130 "dependencies": { 700 "cpu": [
3131 "ansi-styles": "^4.1.0", 701 "arm64"
3132 "supports-color": "^7.1.0" 702 ],
3133 }, 703 "license": "MIT",
704 "optional": true,
705 "os": [
706 "win32"
707 ],
3134 "engines": { 708 "engines": {
3135 "node": ">=10" 709 "node": ">=18"
3136 },
3137 "funding": {
3138 "url": "https://github.com/chalk/chalk?sponsor=1"
3139 } 710 }
3140 }, 711 },
3141 "node_modules/@jest/types/node_modules/color-convert": { 712 "node_modules/@esbuild/win32-ia32": {
3142 "version": "2.0.1", 713 "version": "0.25.8",
3143 "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", 714 "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.8.tgz",
3144 "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", 715 "integrity": "sha512-hiGgGC6KZ5LZz58OL/+qVVoZiuZlUYlYHNAmczOm7bs2oE1XriPFi5ZHHrS8ACpV5EjySrnoCKmcbQMN+ojnHg==",
3145 "dependencies": { 716 "cpu": [
3146 "color-name": "~1.1.4" 717 "ia32"
3147 }, 718 ],
719 "license": "MIT",
720 "optional": true,
721 "os": [
722 "win32"
723 ],
3148 "engines": { 724 "engines": {
3149 "node": ">=7.0.0" 725 "node": ">=18"
3150 } 726 }
3151 }, 727 },
3152 "node_modules/@jest/types/node_modules/color-name": { 728 "node_modules/@esbuild/win32-x64": {
3153 "version": "1.1.4", 729 "version": "0.25.8",
3154 "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", 730 "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.8.tgz",
3155 "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" 731 "integrity": "sha512-cn3Yr7+OaaZq1c+2pe+8yxC8E144SReCQjN6/2ynubzYjvyqZjTXfQJpAcQpsdJq3My7XADANiYGHoFC69pLQw==",
3156 }, 732 "cpu": [
3157 "node_modules/@jest/types/node_modules/has-flag": { 733 "x64"
3158 "version": "4.0.0", 734 ],
3159 "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", 735 "license": "MIT",
3160 "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", 736 "optional": true,
737 "os": [
738 "win32"
739 ],
3161 "engines": { 740 "engines": {
3162 "node": ">=8" 741 "node": ">=18"
3163 } 742 }
3164 }, 743 },
3165 "node_modules/@jest/types/node_modules/supports-color": { 744 "node_modules/@isaacs/fs-minipass": {
3166 "version": "7.2.0", 745 "version": "4.0.1",
3167 "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", 746 "resolved": "https://registry.npmjs.org/@isaacs/fs-minipass/-/fs-minipass-4.0.1.tgz",
3168 "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", 747 "integrity": "sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==",
748 "license": "ISC",
3169 "dependencies": { 749 "dependencies": {
3170 "has-flag": "^4.0.0" 750 "minipass": "^7.0.4"
3171 }, 751 },
3172 "engines": { 752 "engines": {
3173 "node": ">=8" 753 "node": ">=18.0.0"
3174 } 754 }
3175 }, 755 },
3176 "node_modules/@jridgewell/gen-mapping": { 756 "node_modules/@jridgewell/gen-mapping": {
3177 "version": "0.3.5", 757 "version": "0.3.12",
3178 "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", 758 "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.12.tgz",
3179 "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", 759 "integrity": "sha512-OuLGC46TjB5BbN1dH8JULVVZY4WTdkF7tV9Ys6wLL1rubZnCMstOhNHueU5bLCrnRuDhKPDM4g6sw4Bel5Gzqg==",
760 "license": "MIT",
3180 "dependencies": { 761 "dependencies": {
3181 "@jridgewell/set-array": "^1.2.1", 762 "@jridgewell/sourcemap-codec": "^1.5.0",
3182 "@jridgewell/sourcemap-codec": "^1.4.10",
3183 "@jridgewell/trace-mapping": "^0.3.24" 763 "@jridgewell/trace-mapping": "^0.3.24"
3184 },
3185 "engines": {
3186 "node": ">=6.0.0"
3187 } 764 }
3188 }, 765 },
3189 "node_modules/@jridgewell/resolve-uri": { 766 "node_modules/@jridgewell/resolve-uri": {
3190 "version": "3.1.2", 767 "version": "3.1.2",
3191 "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", 768 "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz",
3192 "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", 769 "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==",
770 "license": "MIT",
3193 "engines": { 771 "engines": {
3194 "node": ">=6.0.0" 772 "node": ">=6.0.0"
3195 } 773 }
3196 }, 774 },
3197 "node_modules/@jridgewell/set-array": {
3198 "version": "1.2.1",
3199 "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz",
3200 "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==",
3201 "engines": {
3202 "node": ">=6.0.0"
3203 }
3204 },
3205 "node_modules/@jridgewell/source-map": {
3206 "version": "0.3.6",
3207 "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz",
3208 "integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==",
3209 "dependencies": {
3210 "@jridgewell/gen-mapping": "^0.3.5",
3211 "@jridgewell/trace-mapping": "^0.3.25"
3212 }
3213 },
3214 "node_modules/@jridgewell/sourcemap-codec": { 775 "node_modules/@jridgewell/sourcemap-codec": {
3215 "version": "1.5.0", 776 "version": "1.5.4",
3216 "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", 777 "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.4.tgz",
3217 "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==" 778 "integrity": "sha512-VT2+G1VQs/9oz078bLrYbecdZKs912zQlkelYpuf+SXF+QvZDYJlbx/LSx+meSAwdDFnF8FVXW92AVjjkVmgFw==",
779 "license": "MIT"
3218 }, 780 },
3219 "node_modules/@jridgewell/trace-mapping": { 781 "node_modules/@jridgewell/trace-mapping": {
3220 "version": "0.3.25", 782 "version": "0.3.29",
3221 "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", 783 "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.29.tgz",
3222 "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", 784 "integrity": "sha512-uw6guiW/gcAGPDhLmd77/6lW8QLeiV5RUTsAX46Db6oLhGaVj4lhnPwb184s1bkc8kdVg/+h988dro8GRDpmYQ==",
785 "license": "MIT",
3223 "dependencies": { 786 "dependencies": {
3224 "@jridgewell/resolve-uri": "^3.1.0", 787 "@jridgewell/resolve-uri": "^3.1.0",
3225 "@jridgewell/sourcemap-codec": "^1.4.14" 788 "@jridgewell/sourcemap-codec": "^1.4.14"
3226 } 789 }
3227 }, 790 },
3228 "node_modules/@leichtgewicht/ip-codec": {
3229 "version": "2.0.5",
3230 "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.5.tgz",
3231 "integrity": "sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw=="
3232 },
3233 "node_modules/@nekz/sdp": { 791 "node_modules/@nekz/sdp": {
3234 "version": "0.9.0", 792 "version": "0.9.0",
3235 "resolved": "https://registry.npmjs.org/@nekz/sdp/-/sdp-0.9.0.tgz", 793 "resolved": "https://registry.npmjs.org/@nekz/sdp/-/sdp-0.9.0.tgz",
3236 "integrity": "sha512-ndg3Ze/RZxsyX0QRhZ0HnkHUIth7/3jpTcABhzQzsXV0Y4MzpoZ0dj6KRqiBz+O3acZdk0/9gr40Smqc7S4ikg==" 794 "integrity": "sha512-ndg3Ze/RZxsyX0QRhZ0HnkHUIth7/3jpTcABhzQzsXV0Y4MzpoZ0dj6KRqiBz+O3acZdk0/9gr40Smqc7S4ikg==",
3237 }, 795 "license": "MIT"
3238 "node_modules/@nicolo-ribaudo/eslint-scope-5-internals": {
3239 "version": "5.1.1-v1",
3240 "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/eslint-scope-5-internals/-/eslint-scope-5-internals-5.1.1-v1.tgz",
3241 "integrity": "sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg==",
3242 "dependencies": {
3243 "eslint-scope": "5.1.1"
3244 }
3245 }, 796 },
3246 "node_modules/@nicolo-ribaudo/eslint-scope-5-internals/node_modules/eslint-scope": { 797 "node_modules/@remix-run/router": {
3247 "version": "5.1.1", 798 "version": "1.22.0",
3248 "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", 799 "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.22.0.tgz",
3249 "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", 800 "integrity": "sha512-MBOl8MeOzpK0HQQQshKB7pABXbmyHizdTpqnrIseTbsv0nAepwC2ENZa1aaBExNQcpLoXmWthhak8SABLzvGPw==",
3250 "dependencies": { 801 "license": "MIT",
3251 "esrecurse": "^4.3.0",
3252 "estraverse": "^4.1.1"
3253 },
3254 "engines": { 802 "engines": {
3255 "node": ">=8.0.0" 803 "node": ">=14.0.0"
3256 } 804 }
3257 }, 805 },
3258 "node_modules/@nicolo-ribaudo/eslint-scope-5-internals/node_modules/estraverse": { 806 "node_modules/@rolldown/pluginutils": {
3259 "version": "4.3.0", 807 "version": "1.0.0-beta.30",
3260 "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", 808 "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.30.tgz",
3261 "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", 809 "integrity": "sha512-whXaSoNUFiyDAjkUF8OBpOm77Szdbk5lGNqFe6CbVbJFrhCCPinCbRA3NjawwlNHla1No7xvXXh+CpSxnPfUEw==",
3262 "engines": { 810 "license": "MIT"
3263 "node": ">=4.0"
3264 }
3265 }, 811 },
3266 "node_modules/@nodelib/fs.scandir": { 812 "node_modules/@rollup/rollup-android-arm-eabi": {
3267 "version": "2.1.5", 813 "version": "4.46.2",
3268 "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", 814 "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.46.2.tgz",
3269 "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", 815 "integrity": "sha512-Zj3Hl6sN34xJtMv7Anwb5Gu01yujyE/cLBDB2gnHTAHaWS1Z38L7kuSG+oAh0giZMqG060f/YBStXtMH6FvPMA==",
3270 "dependencies": { 816 "cpu": [
3271 "@nodelib/fs.stat": "2.0.5", 817 "arm"
3272 "run-parallel": "^1.1.9" 818 ],
3273 }, 819 "license": "MIT",
3274 "engines": { 820 "optional": true,
3275 "node": ">= 8" 821 "os": [
3276 } 822 "android"
823 ]
3277 }, 824 },
3278 "node_modules/@nodelib/fs.stat": { 825 "node_modules/@rollup/rollup-android-arm64": {
3279 "version": "2.0.5", 826 "version": "4.46.2",
3280 "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", 827 "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.46.2.tgz",
3281 "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", 828 "integrity": "sha512-nTeCWY83kN64oQ5MGz3CgtPx8NSOhC5lWtsjTs+8JAJNLcP3QbLCtDDgUKQc/Ro/frpMq4SHUaHN6AMltcEoLQ==",
3282 "engines": { 829 "cpu": [
3283 "node": ">= 8" 830 "arm64"
3284 } 831 ],
832 "license": "MIT",
833 "optional": true,
834 "os": [
835 "android"
836 ]
3285 }, 837 },
3286 "node_modules/@nodelib/fs.walk": { 838 "node_modules/@rollup/rollup-darwin-arm64": {
3287 "version": "1.2.8", 839 "version": "4.46.2",
3288 "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", 840 "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.46.2.tgz",
3289 "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", 841 "integrity": "sha512-HV7bW2Fb/F5KPdM/9bApunQh68YVDU8sO8BvcW9OngQVN3HHHkw99wFupuUJfGR9pYLLAjcAOA6iO+evsbBaPQ==",
3290 "dependencies": { 842 "cpu": [
3291 "@nodelib/fs.scandir": "2.1.5", 843 "arm64"
3292 "fastq": "^1.6.0" 844 ],
3293 }, 845 "license": "MIT",
3294 "engines": { 846 "optional": true,
3295 "node": ">= 8" 847 "os": [
3296 } 848 "darwin"
849 ]
3297 }, 850 },
3298 "node_modules/@pkgjs/parseargs": { 851 "node_modules/@rollup/rollup-darwin-x64": {
3299 "version": "0.11.0", 852 "version": "4.46.2",
3300 "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", 853 "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.46.2.tgz",
3301 "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", 854 "integrity": "sha512-SSj8TlYV5nJixSsm/y3QXfhspSiLYP11zpfwp6G/YDXctf3Xkdnk4woJIF5VQe0of2OjzTt8EsxnJDCdHd2xMA==",
855 "cpu": [
856 "x64"
857 ],
858 "license": "MIT",
3302 "optional": true, 859 "optional": true,
3303 "engines": { 860 "os": [
3304 "node": ">=14" 861 "darwin"
3305 } 862 ]
3306 }, 863 },
3307 "node_modules/@pmmmwh/react-refresh-webpack-plugin": { 864 "node_modules/@rollup/rollup-freebsd-arm64": {
3308 "version": "0.5.15", 865 "version": "4.46.2",
3309 "resolved": "https://registry.npmjs.org/@pmmmwh/react-refresh-webpack-plugin/-/react-refresh-webpack-plugin-0.5.15.tgz", 866 "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.46.2.tgz",
3310 "integrity": "sha512-LFWllMA55pzB9D34w/wXUCf8+c+IYKuJDgxiZ3qMhl64KRMBHYM1I3VdGaD2BV5FNPV2/S2596bppxHbv2ZydQ==", 867 "integrity": "sha512-ZyrsG4TIT9xnOlLsSSi9w/X29tCbK1yegE49RYm3tu3wF1L/B6LVMqnEWyDB26d9Ecx9zrmXCiPmIabVuLmNSg==",
3311 "dependencies": { 868 "cpu": [
3312 "ansi-html": "^0.0.9", 869 "arm64"
3313 "core-js-pure": "^3.23.3", 870 ],
3314 "error-stack-parser": "^2.0.6", 871 "license": "MIT",
3315 "html-entities": "^2.1.0", 872 "optional": true,
3316 "loader-utils": "^2.0.4", 873 "os": [
3317 "schema-utils": "^4.2.0", 874 "freebsd"
3318 "source-map": "^0.7.3" 875 ]
3319 },
3320 "engines": {
3321 "node": ">= 10.13"
3322 },
3323 "peerDependencies": {
3324 "@types/webpack": "4.x || 5.x",
3325 "react-refresh": ">=0.10.0 <1.0.0",
3326 "sockjs-client": "^1.4.0",
3327 "type-fest": ">=0.17.0 <5.0.0",
3328 "webpack": ">=4.43.0 <6.0.0",
3329 "webpack-dev-server": "3.x || 4.x || 5.x",
3330 "webpack-hot-middleware": "2.x",
3331 "webpack-plugin-serve": "0.x || 1.x"
3332 },
3333 "peerDependenciesMeta": {
3334 "@types/webpack": {
3335 "optional": true
3336 },
3337 "sockjs-client": {
3338 "optional": true
3339 },
3340 "type-fest": {
3341 "optional": true
3342 },
3343 "webpack-dev-server": {
3344 "optional": true
3345 },
3346 "webpack-hot-middleware": {
3347 "optional": true
3348 },
3349 "webpack-plugin-serve": {
3350 "optional": true
3351 }
3352 }
3353 }, 876 },
3354 "node_modules/@remix-run/router": { 877 "node_modules/@rollup/rollup-freebsd-x64": {
3355 "version": "1.19.1", 878 "version": "4.46.2",
3356 "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.19.1.tgz", 879 "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.46.2.tgz",
3357 "integrity": "sha512-S45oynt/WH19bHbIXjtli6QmwNYvaz+vtnubvNpNDvUOoA/OWh6j1OikIP3G+v5GHdxyC6EXoChG3HgYGEUfcg==", 880 "integrity": "sha512-pCgHFoOECwVCJ5GFq8+gR8SBKnMO+xe5UEqbemxBpCKYQddRQMgomv1104RnLSg7nNvgKy05sLsY51+OVRyiVw==",
3358 "engines": { 881 "cpu": [
3359 "node": ">=14.0.0" 882 "x64"
3360 } 883 ],
884 "license": "MIT",
885 "optional": true,
886 "os": [
887 "freebsd"
888 ]
3361 }, 889 },
3362 "node_modules/@rollup/plugin-babel": { 890 "node_modules/@rollup/rollup-linux-arm-gnueabihf": {
3363 "version": "5.3.1", 891 "version": "4.46.2",
3364 "resolved": "https://registry.npmjs.org/@rollup/plugin-babel/-/plugin-babel-5.3.1.tgz", 892 "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.46.2.tgz",
3365 "integrity": "sha512-WFfdLWU/xVWKeRQnKmIAQULUI7Il0gZnBIH/ZFO069wYIfPu+8zrfp/KMW0atmELoRDq8FbiP3VCss9MhCut7Q==", 893 "integrity": "sha512-EtP8aquZ0xQg0ETFcxUbU71MZlHaw9MChwrQzatiE8U/bvi5uv/oChExXC4mWhjiqK7azGJBqU0tt5H123SzVA==",
3366 "dependencies": { 894 "cpu": [
3367 "@babel/helper-module-imports": "^7.10.4", 895 "arm"
3368 "@rollup/pluginutils": "^3.1.0" 896 ],
3369 }, 897 "license": "MIT",
3370 "engines": { 898 "optional": true,
3371 "node": ">= 10.0.0" 899 "os": [
3372 }, 900 "linux"
3373 "peerDependencies": { 901 ]
3374 "@babel/core": "^7.0.0",
3375 "@types/babel__core": "^7.1.9",
3376 "rollup": "^1.20.0||^2.0.0"
3377 },
3378 "peerDependenciesMeta": {
3379 "@types/babel__core": {
3380 "optional": true
3381 }
3382 }
3383 }, 902 },
3384 "node_modules/@rollup/plugin-node-resolve": { 903 "node_modules/@rollup/rollup-linux-arm-musleabihf": {
3385 "version": "11.2.1", 904 "version": "4.46.2",
3386 "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-11.2.1.tgz", 905 "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.46.2.tgz",
3387 "integrity": "sha512-yc2n43jcqVyGE2sqV5/YCmocy9ArjVAP/BeXyTtADTBBX6V0e5UMqwO8CdQ0kzjb6zu5P1qMzsScCMRvE9OlVg==", 906 "integrity": "sha512-qO7F7U3u1nfxYRPM8HqFtLd+raev2K137dsV08q/LRKRLEc7RsiDWihUnrINdsWQxPR9jqZ8DIIZ1zJJAm5PjQ==",
3388 "dependencies": { 907 "cpu": [
3389 "@rollup/pluginutils": "^3.1.0", 908 "arm"
3390 "@types/resolve": "1.17.1", 909 ],
3391 "builtin-modules": "^3.1.0", 910 "license": "MIT",
3392 "deepmerge": "^4.2.2", 911 "optional": true,
3393 "is-module": "^1.0.0", 912 "os": [
3394 "resolve": "^1.19.0" 913 "linux"
3395 }, 914 ]
3396 "engines": {
3397 "node": ">= 10.0.0"
3398 },
3399 "peerDependencies": {
3400 "rollup": "^1.20.0||^2.0.0"
3401 }
3402 }, 915 },
3403 "node_modules/@rollup/plugin-replace": { 916 "node_modules/@rollup/rollup-linux-arm64-gnu": {
3404 "version": "2.4.2", 917 "version": "4.46.2",
3405 "resolved": "https://registry.npmjs.org/@rollup/plugin-replace/-/plugin-replace-2.4.2.tgz", 918 "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.46.2.tgz",
3406 "integrity": "sha512-IGcu+cydlUMZ5En85jxHH4qj2hta/11BHq95iHEyb2sbgiN0eCdzvUcHw5gt9pBL5lTi4JDYJ1acCoMGpTvEZg==", 919 "integrity": "sha512-3dRaqLfcOXYsfvw5xMrxAk9Lb1f395gkoBYzSFcc/scgRFptRXL9DOaDpMiehf9CO8ZDRJW2z45b6fpU5nwjng==",
3407 "dependencies": { 920 "cpu": [
3408 "@rollup/pluginutils": "^3.1.0", 921 "arm64"
3409 "magic-string": "^0.25.7" 922 ],
3410 }, 923 "license": "MIT",
3411 "peerDependencies": { 924 "optional": true,
3412 "rollup": "^1.20.0 || ^2.0.0" 925 "os": [
3413 } 926 "linux"
927 ]
3414 }, 928 },
3415 "node_modules/@rollup/pluginutils": { 929 "node_modules/@rollup/rollup-linux-arm64-musl": {
3416 "version": "3.1.0", 930 "version": "4.46.2",
3417 "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", 931 "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.46.2.tgz",
3418 "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==", 932 "integrity": "sha512-fhHFTutA7SM+IrR6lIfiHskxmpmPTJUXpWIsBXpeEwNgZzZZSg/q4i6FU4J8qOGyJ0TR+wXBwx/L7Ho9z0+uDg==",
3419 "dependencies": { 933 "cpu": [
3420 "@types/estree": "0.0.39", 934 "arm64"
3421 "estree-walker": "^1.0.1", 935 ],
3422 "picomatch": "^2.2.2" 936 "license": "MIT",
3423 }, 937 "optional": true,
3424 "engines": { 938 "os": [
3425 "node": ">= 8.0.0" 939 "linux"
3426 }, 940 ]
3427 "peerDependencies": { 941 },
3428 "rollup": "^1.20.0||^2.0.0" 942 "node_modules/@rollup/rollup-linux-loongarch64-gnu": {
3429 } 943 "version": "4.46.2",
944 "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.46.2.tgz",
945 "integrity": "sha512-i7wfGFXu8x4+FRqPymzjD+Hyav8l95UIZ773j7J7zRYc3Xsxy2wIn4x+llpunexXe6laaO72iEjeeGyUFmjKeA==",
946 "cpu": [
947 "loong64"
948 ],
949 "license": "MIT",
950 "optional": true,
951 "os": [
952 "linux"
953 ]
954 },
955 "node_modules/@rollup/rollup-linux-ppc64-gnu": {
956 "version": "4.46.2",
957 "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.46.2.tgz",
958 "integrity": "sha512-B/l0dFcHVUnqcGZWKcWBSV2PF01YUt0Rvlurci5P+neqY/yMKchGU8ullZvIv5e8Y1C6wOn+U03mrDylP5q9Yw==",
959 "cpu": [
960 "ppc64"
961 ],
962 "license": "MIT",
963 "optional": true,
964 "os": [
965 "linux"
966 ]
967 },
968 "node_modules/@rollup/rollup-linux-riscv64-gnu": {
969 "version": "4.46.2",
970 "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.46.2.tgz",
971 "integrity": "sha512-32k4ENb5ygtkMwPMucAb8MtV8olkPT03oiTxJbgkJa7lJ7dZMr0GCFJlyvy+K8iq7F/iuOr41ZdUHaOiqyR3iQ==",
972 "cpu": [
973 "riscv64"
974 ],
975 "license": "MIT",
976 "optional": true,
977 "os": [
978 "linux"
979 ]
3430 }, 980 },
3431 "node_modules/@rollup/pluginutils/node_modules/@types/estree": { 981 "node_modules/@rollup/rollup-linux-riscv64-musl": {
3432 "version": "0.0.39", 982 "version": "4.46.2",
3433 "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", 983 "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.46.2.tgz",
3434 "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==" 984 "integrity": "sha512-t5B2loThlFEauloaQkZg9gxV05BYeITLvLkWOkRXogP4qHXLkWSbSHKM9S6H1schf/0YGP/qNKtiISlxvfmmZw==",
985 "cpu": [
986 "riscv64"
987 ],
988 "license": "MIT",
989 "optional": true,
990 "os": [
991 "linux"
992 ]
3435 }, 993 },
3436 "node_modules/@rushstack/eslint-patch": { 994 "node_modules/@rollup/rollup-linux-s390x-gnu": {
3437 "version": "1.10.4", 995 "version": "4.46.2",
3438 "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.10.4.tgz", 996 "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.46.2.tgz",
3439 "integrity": "sha512-WJgX9nzTqknM393q1QJDJmoW28kUfEnybeTfVNcNAPnIx210RXm2DiXiHzfNPJNIUUb1tJnz/l4QGtJ30PgWmA==" 997 "integrity": "sha512-YKjekwTEKgbB7n17gmODSmJVUIvj8CX7q5442/CK80L8nqOUbMtf8b01QkG3jOqyr1rotrAnW6B/qiHwfcuWQA==",
998 "cpu": [
999 "s390x"
1000 ],
1001 "license": "MIT",
1002 "optional": true,
1003 "os": [
1004 "linux"
1005 ]
3440 }, 1006 },
3441 "node_modules/@sinclair/typebox": { 1007 "node_modules/@rollup/rollup-linux-x64-gnu": {
3442 "version": "0.24.51", 1008 "version": "4.46.2",
3443 "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.24.51.tgz", 1009 "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.46.2.tgz",
3444 "integrity": "sha512-1P1OROm/rdubP5aFDSZQILU0vrLCJ4fvHt6EoqHEM+2D/G5MK3bIaymUKLit8Js9gbns5UyJnkP/TZROLw4tUA==" 1010 "integrity": "sha512-Jj5a9RUoe5ra+MEyERkDKLwTXVu6s3aACP51nkfnK9wJTraCC8IMe3snOfALkrjTYd2G1ViE1hICj0fZ7ALBPA==",
1011 "cpu": [
1012 "x64"
1013 ],
1014 "license": "MIT",
1015 "optional": true,
1016 "os": [
1017 "linux"
1018 ]
3445 }, 1019 },
3446 "node_modules/@sinonjs/commons": { 1020 "node_modules/@rollup/rollup-linux-x64-musl": {
3447 "version": "1.8.6", 1021 "version": "4.46.2",
3448 "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.6.tgz", 1022 "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.46.2.tgz",
3449 "integrity": "sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ==", 1023 "integrity": "sha512-7kX69DIrBeD7yNp4A5b81izs8BqoZkCIaxQaOpumcJ1S/kmqNFjPhDu1LHeVXv0SexfHQv5cqHsxLOjETuqDuA==",
3450 "dependencies": { 1024 "cpu": [
3451 "type-detect": "4.0.8" 1025 "x64"
3452 } 1026 ],
1027 "license": "MIT",
1028 "optional": true,
1029 "os": [
1030 "linux"
1031 ]
3453 }, 1032 },
3454 "node_modules/@sinonjs/fake-timers": { 1033 "node_modules/@rollup/rollup-win32-arm64-msvc": {
3455 "version": "8.1.0", 1034 "version": "4.46.2",
3456 "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-8.1.0.tgz", 1035 "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.46.2.tgz",
3457 "integrity": "sha512-OAPJUAtgeINhh/TAlUID4QTs53Njm7xzddaVlEs/SXwgtiD1tW22zAB/W1wdqfrpmikgaWQ9Fw6Ws+hsiRm5Vg==", 1036 "integrity": "sha512-wiJWMIpeaak/jsbaq2HMh/rzZxHVW1rU6coyeNNpMwk5isiPjSTx0a4YLSlYDwBH/WBvLz+EtsNqQScZTLJy3g==",
3458 "dependencies": { 1037 "cpu": [
3459 "@sinonjs/commons": "^1.7.0" 1038 "arm64"
3460 } 1039 ],
1040 "license": "MIT",
1041 "optional": true,
1042 "os": [
1043 "win32"
1044 ]
3461 }, 1045 },
3462 "node_modules/@surma/rollup-plugin-off-main-thread": { 1046 "node_modules/@rollup/rollup-win32-ia32-msvc": {
3463 "version": "2.2.3", 1047 "version": "4.46.2",
3464 "resolved": "https://registry.npmjs.org/@surma/rollup-plugin-off-main-thread/-/rollup-plugin-off-main-thread-2.2.3.tgz", 1048 "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.46.2.tgz",
3465 "integrity": "sha512-lR8q/9W7hZpMWweNiAKU7NQerBnzQQLvi8qnTDU/fxItPhtZVMbPV3lbCwjhIlNBe9Bbr5V+KHshvWmVSG9cxQ==", 1049 "integrity": "sha512-gBgaUDESVzMgWZhcyjfs9QFK16D8K6QZpwAaVNJxYDLHWayOta4ZMjGm/vsAEy3hvlS2GosVFlBlP9/Wb85DqQ==",
1050 "cpu": [
1051 "ia32"
1052 ],
1053 "license": "MIT",
1054 "optional": true,
1055 "os": [
1056 "win32"
1057 ]
1058 },
1059 "node_modules/@rollup/rollup-win32-x64-msvc": {
1060 "version": "4.46.2",
1061 "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.46.2.tgz",
1062 "integrity": "sha512-CvUo2ixeIQGtF6WvuB87XWqPQkoFAFqW+HUo/WzHwuHDvIwZCtjdWXoYCcr06iKGydiqTclC4jU/TNObC/xKZg==",
1063 "cpu": [
1064 "x64"
1065 ],
1066 "license": "MIT",
1067 "optional": true,
1068 "os": [
1069 "win32"
1070 ]
1071 },
1072 "node_modules/@tailwindcss/node": {
1073 "version": "4.1.11",
1074 "resolved": "https://registry.npmjs.org/@tailwindcss/node/-/node-4.1.11.tgz",
1075 "integrity": "sha512-yzhzuGRmv5QyU9qLNg4GTlYI6STedBWRE7NjxP45CsFYYq9taI0zJXZBMqIC/c8fViNLhmrbpSFS57EoxUmD6Q==",
1076 "license": "MIT",
3466 "dependencies": { 1077 "dependencies": {
3467 "ejs": "^3.1.6", 1078 "@ampproject/remapping": "^2.3.0",
3468 "json5": "^2.2.0", 1079 "enhanced-resolve": "^5.18.1",
3469 "magic-string": "^0.25.0", 1080 "jiti": "^2.4.2",
3470 "string.prototype.matchall": "^4.0.6" 1081 "lightningcss": "1.30.1",
1082 "magic-string": "^0.30.17",
1083 "source-map-js": "^1.2.1",
1084 "tailwindcss": "4.1.11"
3471 } 1085 }
3472 }, 1086 },
3473 "node_modules/@svgr/babel-plugin-add-jsx-attribute": { 1087 "node_modules/@tailwindcss/oxide": {
3474 "version": "5.4.0", 1088 "version": "4.1.11",
3475 "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-5.4.0.tgz", 1089 "resolved": "https://registry.npmjs.org/@tailwindcss/oxide/-/oxide-4.1.11.tgz",
3476 "integrity": "sha512-ZFf2gs/8/6B8PnSofI0inYXr2SDNTDScPXhN7k5EqD4aZ3gi6u+rbmZHVB8IM3wDyx8ntKACZbtXSm7oZGRqVg==", 1090 "integrity": "sha512-Q69XzrtAhuyfHo+5/HMgr1lAiPP/G40OMFAnws7xcFEYqcypZmdW8eGXaOUIeOl1dzPJBPENXgbjsOyhg2nkrg==",
3477 "engines": { 1091 "hasInstallScript": true,
3478 "node": ">=10" 1092 "license": "MIT",
1093 "dependencies": {
1094 "detect-libc": "^2.0.4",
1095 "tar": "^7.4.3"
3479 }, 1096 },
3480 "funding": {
3481 "type": "github",
3482 "url": "https://github.com/sponsors/gregberge"
3483 }
3484 },
3485 "node_modules/@svgr/babel-plugin-remove-jsx-attribute": {
3486 "version": "5.4.0",
3487 "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-5.4.0.tgz",
3488 "integrity": "sha512-yaS4o2PgUtwLFGTKbsiAy6D0o3ugcUhWK0Z45umJ66EPWunAz9fuFw2gJuje6wqQvQWOTJvIahUwndOXb7QCPg==",
3489 "engines": { 1097 "engines": {
3490 "node": ">=10" 1098 "node": ">= 10"
3491 }, 1099 },
3492 "funding": { 1100 "optionalDependencies": {
3493 "type": "github", 1101 "@tailwindcss/oxide-android-arm64": "4.1.11",
3494 "url": "https://github.com/sponsors/gregberge" 1102 "@tailwindcss/oxide-darwin-arm64": "4.1.11",
1103 "@tailwindcss/oxide-darwin-x64": "4.1.11",
1104 "@tailwindcss/oxide-freebsd-x64": "4.1.11",
1105 "@tailwindcss/oxide-linux-arm-gnueabihf": "4.1.11",
1106 "@tailwindcss/oxide-linux-arm64-gnu": "4.1.11",
1107 "@tailwindcss/oxide-linux-arm64-musl": "4.1.11",
1108 "@tailwindcss/oxide-linux-x64-gnu": "4.1.11",
1109 "@tailwindcss/oxide-linux-x64-musl": "4.1.11",
1110 "@tailwindcss/oxide-wasm32-wasi": "4.1.11",
1111 "@tailwindcss/oxide-win32-arm64-msvc": "4.1.11",
1112 "@tailwindcss/oxide-win32-x64-msvc": "4.1.11"
1113 }
1114 },
1115 "node_modules/@tailwindcss/oxide-android-arm64": {
1116 "version": "4.1.11",
1117 "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-android-arm64/-/oxide-android-arm64-4.1.11.tgz",
1118 "integrity": "sha512-3IfFuATVRUMZZprEIx9OGDjG3Ou3jG4xQzNTvjDoKmU9JdmoCohQJ83MYd0GPnQIu89YoJqvMM0G3uqLRFtetg==",
1119 "cpu": [
1120 "arm64"
1121 ],
1122 "license": "MIT",
1123 "optional": true,
1124 "os": [
1125 "android"
1126 ],
1127 "engines": {
1128 "node": ">= 10"
3495 } 1129 }
3496 }, 1130 },
3497 "node_modules/@svgr/babel-plugin-remove-jsx-empty-expression": { 1131 "node_modules/@tailwindcss/oxide-darwin-arm64": {
3498 "version": "5.0.1", 1132 "version": "4.1.11",
3499 "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-5.0.1.tgz", 1133 "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-arm64/-/oxide-darwin-arm64-4.1.11.tgz",
3500 "integrity": "sha512-LA72+88A11ND/yFIMzyuLRSMJ+tRKeYKeQ+mR3DcAZ5I4h5CPWN9AHyUzJbWSYp/u2u0xhmgOe0+E41+GjEueA==", 1134 "integrity": "sha512-ESgStEOEsyg8J5YcMb1xl8WFOXfeBmrhAwGsFxxB2CxY9evy63+AtpbDLAyRkJnxLy2WsD1qF13E97uQyP1lfQ==",
1135 "cpu": [
1136 "arm64"
1137 ],
1138 "license": "MIT",
1139 "optional": true,
1140 "os": [
1141 "darwin"
1142 ],
3501 "engines": { 1143 "engines": {
3502 "node": ">=10" 1144 "node": ">= 10"
3503 },
3504 "funding": {
3505 "type": "github",
3506 "url": "https://github.com/sponsors/gregberge"
3507 } 1145 }
3508 }, 1146 },
3509 "node_modules/@svgr/babel-plugin-replace-jsx-attribute-value": { 1147 "node_modules/@tailwindcss/oxide-darwin-x64": {
3510 "version": "5.0.1", 1148 "version": "4.1.11",
3511 "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-5.0.1.tgz", 1149 "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-x64/-/oxide-darwin-x64-4.1.11.tgz",
3512 "integrity": "sha512-PoiE6ZD2Eiy5mK+fjHqwGOS+IXX0wq/YDtNyIgOrc6ejFnxN4b13pRpiIPbtPwHEc+NT2KCjteAcq33/F1Y9KQ==", 1150 "integrity": "sha512-EgnK8kRchgmgzG6jE10UQNaH9Mwi2n+yw1jWmof9Vyg2lpKNX2ioe7CJdf9M5f8V9uaQxInenZkOxnTVL3fhAw==",
1151 "cpu": [
1152 "x64"
1153 ],
1154 "license": "MIT",
1155 "optional": true,
1156 "os": [
1157 "darwin"
1158 ],
3513 "engines": { 1159 "engines": {
3514 "node": ">=10" 1160 "node": ">= 10"
3515 },
3516 "funding": {
3517 "type": "github",
3518 "url": "https://github.com/sponsors/gregberge"
3519 } 1161 }
3520 }, 1162 },
3521 "node_modules/@svgr/babel-plugin-svg-dynamic-title": { 1163 "node_modules/@tailwindcss/oxide-freebsd-x64": {
3522 "version": "5.4.0", 1164 "version": "4.1.11",
3523 "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-5.4.0.tgz", 1165 "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-freebsd-x64/-/oxide-freebsd-x64-4.1.11.tgz",
3524 "integrity": "sha512-zSOZH8PdZOpuG1ZVx/cLVePB2ibo3WPpqo7gFIjLV9a0QsuQAzJiwwqmuEdTaW2pegyBE17Uu15mOgOcgabQZg==", 1166 "integrity": "sha512-xdqKtbpHs7pQhIKmqVpxStnY1skuNh4CtbcyOHeX1YBE0hArj2romsFGb6yUmzkq/6M24nkxDqU8GYrKrz+UcA==",
1167 "cpu": [
1168 "x64"
1169 ],
1170 "license": "MIT",
1171 "optional": true,
1172 "os": [
1173 "freebsd"
1174 ],
3525 "engines": { 1175 "engines": {
3526 "node": ">=10" 1176 "node": ">= 10"
3527 },
3528 "funding": {
3529 "type": "github",
3530 "url": "https://github.com/sponsors/gregberge"
3531 } 1177 }
3532 }, 1178 },
3533 "node_modules/@svgr/babel-plugin-svg-em-dimensions": { 1179 "node_modules/@tailwindcss/oxide-linux-arm-gnueabihf": {
3534 "version": "5.4.0", 1180 "version": "4.1.11",
3535 "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-5.4.0.tgz", 1181 "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm-gnueabihf/-/oxide-linux-arm-gnueabihf-4.1.11.tgz",
3536 "integrity": "sha512-cPzDbDA5oT/sPXDCUYoVXEmm3VIoAWAPT6mSPTJNbQaBNUuEKVKyGH93oDY4e42PYHRW67N5alJx/eEol20abw==", 1182 "integrity": "sha512-ryHQK2eyDYYMwB5wZL46uoxz2zzDZsFBwfjssgB7pzytAeCCa6glsiJGjhTEddq/4OsIjsLNMAiMlHNYnkEEeg==",
1183 "cpu": [
1184 "arm"
1185 ],
1186 "license": "MIT",
1187 "optional": true,
1188 "os": [
1189 "linux"
1190 ],
3537 "engines": { 1191 "engines": {
3538 "node": ">=10" 1192 "node": ">= 10"
3539 },
3540 "funding": {
3541 "type": "github",
3542 "url": "https://github.com/sponsors/gregberge"
3543 } 1193 }
3544 }, 1194 },
3545 "node_modules/@svgr/babel-plugin-transform-react-native-svg": { 1195 "node_modules/@tailwindcss/oxide-linux-arm64-gnu": {
3546 "version": "5.4.0", 1196 "version": "4.1.11",
3547 "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-5.4.0.tgz", 1197 "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-gnu/-/oxide-linux-arm64-gnu-4.1.11.tgz",
3548 "integrity": "sha512-3eYP/SaopZ41GHwXma7Rmxcv9uRslRDTY1estspeB1w1ueZWd/tPlMfEOoccYpEMZU3jD4OU7YitnXcF5hLW2Q==", 1198 "integrity": "sha512-mYwqheq4BXF83j/w75ewkPJmPZIqqP1nhoghS9D57CLjsh3Nfq0m4ftTotRYtGnZd3eCztgbSPJ9QhfC91gDZQ==",
1199 "cpu": [
1200 "arm64"
1201 ],
1202 "license": "MIT",
1203 "optional": true,
1204 "os": [
1205 "linux"
1206 ],
3549 "engines": { 1207 "engines": {
3550 "node": ">=10" 1208 "node": ">= 10"
3551 },
3552 "funding": {
3553 "type": "github",
3554 "url": "https://github.com/sponsors/gregberge"
3555 } 1209 }
3556 }, 1210 },
3557 "node_modules/@svgr/babel-plugin-transform-svg-component": { 1211 "node_modules/@tailwindcss/oxide-linux-arm64-musl": {
3558 "version": "5.5.0", 1212 "version": "4.1.11",
3559 "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-5.5.0.tgz", 1213 "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-musl/-/oxide-linux-arm64-musl-4.1.11.tgz",
3560 "integrity": "sha512-q4jSH1UUvbrsOtlo/tKcgSeiCHRSBdXoIoqX1pgcKK/aU3JD27wmMKwGtpB8qRYUYoyXvfGxUVKchLuR5pB3rQ==", 1214 "integrity": "sha512-m/NVRFNGlEHJrNVk3O6I9ggVuNjXHIPoD6bqay/pubtYC9QIdAMpS+cswZQPBLvVvEF6GtSNONbDkZrjWZXYNQ==",
1215 "cpu": [
1216 "arm64"
1217 ],
1218 "license": "MIT",
1219 "optional": true,
1220 "os": [
1221 "linux"
1222 ],
3561 "engines": { 1223 "engines": {
3562 "node": ">=10" 1224 "node": ">= 10"
3563 },
3564 "funding": {
3565 "type": "github",
3566 "url": "https://github.com/sponsors/gregberge"
3567 } 1225 }
3568 }, 1226 },
3569 "node_modules/@svgr/babel-preset": { 1227 "node_modules/@tailwindcss/oxide-linux-x64-gnu": {
3570 "version": "5.5.0", 1228 "version": "4.1.11",
3571 "resolved": "https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-5.5.0.tgz", 1229 "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-gnu/-/oxide-linux-x64-gnu-4.1.11.tgz",
3572 "integrity": "sha512-4FiXBjvQ+z2j7yASeGPEi8VD/5rrGQk4Xrq3EdJmoZgz/tpqChpo5hgXDvmEauwtvOc52q8ghhZK4Oy7qph4ig==", 1230 "integrity": "sha512-YW6sblI7xukSD2TdbbaeQVDysIm/UPJtObHJHKxDEcW2exAtY47j52f8jZXkqE1krdnkhCMGqP3dbniu1Te2Fg==",
3573 "dependencies": { 1231 "cpu": [
3574 "@svgr/babel-plugin-add-jsx-attribute": "^5.4.0", 1232 "x64"
3575 "@svgr/babel-plugin-remove-jsx-attribute": "^5.4.0", 1233 ],
3576 "@svgr/babel-plugin-remove-jsx-empty-expression": "^5.0.1", 1234 "license": "MIT",
3577 "@svgr/babel-plugin-replace-jsx-attribute-value": "^5.0.1", 1235 "optional": true,
3578 "@svgr/babel-plugin-svg-dynamic-title": "^5.4.0", 1236 "os": [
3579 "@svgr/babel-plugin-svg-em-dimensions": "^5.4.0", 1237 "linux"
3580 "@svgr/babel-plugin-transform-react-native-svg": "^5.4.0", 1238 ],
3581 "@svgr/babel-plugin-transform-svg-component": "^5.5.0"
3582 },
3583 "engines": { 1239 "engines": {
3584 "node": ">=10" 1240 "node": ">= 10"
3585 },
3586 "funding": {
3587 "type": "github",
3588 "url": "https://github.com/sponsors/gregberge"
3589 } 1241 }
3590 }, 1242 },
3591 "node_modules/@svgr/core": { 1243 "node_modules/@tailwindcss/oxide-linux-x64-musl": {
3592 "version": "5.5.0", 1244 "version": "4.1.11",
3593 "resolved": "https://registry.npmjs.org/@svgr/core/-/core-5.5.0.tgz", 1245 "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-musl/-/oxide-linux-x64-musl-4.1.11.tgz",
3594 "integrity": "sha512-q52VOcsJPvV3jO1wkPtzTuKlvX7Y3xIcWRpCMtBF3MrteZJtBfQw/+u0B1BHy5ColpQc1/YVTrPEtSYIMNZlrQ==", 1246 "integrity": "sha512-e3C/RRhGunWYNC3aSF7exsQkdXzQ/M+aYuZHKnw4U7KQwTJotnWsGOIVih0s2qQzmEzOFIJ3+xt7iq67K/p56Q==",
3595 "dependencies": { 1247 "cpu": [
3596 "@svgr/plugin-jsx": "^5.5.0", 1248 "x64"
3597 "camelcase": "^6.2.0", 1249 ],
3598 "cosmiconfig": "^7.0.0" 1250 "license": "MIT",
3599 }, 1251 "optional": true,
1252 "os": [
1253 "linux"
1254 ],
3600 "engines": { 1255 "engines": {
3601 "node": ">=10" 1256 "node": ">= 10"
3602 },
3603 "funding": {
3604 "type": "github",
3605 "url": "https://github.com/sponsors/gregberge"
3606 } 1257 }
3607 }, 1258 },
3608 "node_modules/@svgr/hast-util-to-babel-ast": { 1259 "node_modules/@tailwindcss/oxide-wasm32-wasi": {
3609 "version": "5.5.0", 1260 "version": "4.1.11",
3610 "resolved": "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-5.5.0.tgz", 1261 "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-wasm32-wasi/-/oxide-wasm32-wasi-4.1.11.tgz",
3611 "integrity": "sha512-cAaR/CAiZRB8GP32N+1jocovUtvlj0+e65TB50/6Lcime+EA49m/8l+P2ko+XPJ4dw3xaPS3jOL4F2X4KWxoeQ==", 1262 "integrity": "sha512-Xo1+/GU0JEN/C/dvcammKHzeM6NqKovG+6921MR6oadee5XPBaKOumrJCXvopJ/Qb5TH7LX/UAywbqrP4lax0g==",
1263 "bundleDependencies": [
1264 "@napi-rs/wasm-runtime",
1265 "@emnapi/core",
1266 "@emnapi/runtime",
1267 "@tybys/wasm-util",
1268 "@emnapi/wasi-threads",
1269 "tslib"
1270 ],
1271 "cpu": [
1272 "wasm32"
1273 ],
1274 "license": "MIT",
1275 "optional": true,
3612 "dependencies": { 1276 "dependencies": {
3613 "@babel/types": "^7.12.6" 1277 "@emnapi/core": "^1.4.3",
1278 "@emnapi/runtime": "^1.4.3",
1279 "@emnapi/wasi-threads": "^1.0.2",
1280 "@napi-rs/wasm-runtime": "^0.2.11",
1281 "@tybys/wasm-util": "^0.9.0",
1282 "tslib": "^2.8.0"
3614 }, 1283 },
3615 "engines": { 1284 "engines": {
3616 "node": ">=10" 1285 "node": ">=14.0.0"
3617 },
3618 "funding": {
3619 "type": "github",
3620 "url": "https://github.com/sponsors/gregberge"
3621 } 1286 }
3622 }, 1287 },
3623 "node_modules/@svgr/plugin-jsx": { 1288 "node_modules/@tailwindcss/oxide-win32-arm64-msvc": {
3624 "version": "5.5.0", 1289 "version": "4.1.11",
3625 "resolved": "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-5.5.0.tgz", 1290 "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-arm64-msvc/-/oxide-win32-arm64-msvc-4.1.11.tgz",
3626 "integrity": "sha512-V/wVh33j12hGh05IDg8GpIUXbjAPnTdPTKuP4VNLggnwaHMPNQNae2pRnyTAILWCQdz5GyMqtO488g7CKM8CBA==", 1291 "integrity": "sha512-UgKYx5PwEKrac3GPNPf6HVMNhUIGuUh4wlDFR2jYYdkX6pL/rn73zTq/4pzUm8fOjAn5L8zDeHp9iXmUGOXZ+w==",
3627 "dependencies": { 1292 "cpu": [
3628 "@babel/core": "^7.12.3", 1293 "arm64"
3629 "@svgr/babel-preset": "^5.5.0", 1294 ],
3630 "@svgr/hast-util-to-babel-ast": "^5.5.0", 1295 "license": "MIT",
3631 "svg-parser": "^2.0.2" 1296 "optional": true,
3632 }, 1297 "os": [
1298 "win32"
1299 ],
3633 "engines": { 1300 "engines": {
3634 "node": ">=10" 1301 "node": ">= 10"
3635 },
3636 "funding": {
3637 "type": "github",
3638 "url": "https://github.com/sponsors/gregberge"
3639 } 1302 }
3640 }, 1303 },
3641 "node_modules/@svgr/plugin-svgo": { 1304 "node_modules/@tailwindcss/oxide-win32-x64-msvc": {
3642 "version": "5.5.0", 1305 "version": "4.1.11",
3643 "resolved": "https://registry.npmjs.org/@svgr/plugin-svgo/-/plugin-svgo-5.5.0.tgz", 1306 "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-x64-msvc/-/oxide-win32-x64-msvc-4.1.11.tgz",
3644 "integrity": "sha512-r5swKk46GuQl4RrVejVwpeeJaydoxkdwkM1mBKOgJLBUJPGaLci6ylg/IjhrRsREKDkr4kbMWdgOtbXEh0fyLQ==", 1307 "integrity": "sha512-YfHoggn1j0LK7wR82TOucWc5LDCguHnoS879idHekmmiR7g9HUtMw9MI0NHatS28u/Xlkfi9w5RJWgz2Dl+5Qg==",
3645 "dependencies": { 1308 "cpu": [
3646 "cosmiconfig": "^7.0.0", 1309 "x64"
3647 "deepmerge": "^4.2.2", 1310 ],
3648 "svgo": "^1.2.2" 1311 "license": "MIT",
3649 }, 1312 "optional": true,
1313 "os": [
1314 "win32"
1315 ],
3650 "engines": { 1316 "engines": {
3651 "node": ">=10" 1317 "node": ">= 10"
3652 },
3653 "funding": {
3654 "type": "github",
3655 "url": "https://github.com/sponsors/gregberge"
3656 } 1318 }
3657 }, 1319 },
3658 "node_modules/@svgr/webpack": { 1320 "node_modules/@tailwindcss/vite": {
3659 "version": "5.5.0", 1321 "version": "4.1.11",
3660 "resolved": "https://registry.npmjs.org/@svgr/webpack/-/webpack-5.5.0.tgz", 1322 "resolved": "https://registry.npmjs.org/@tailwindcss/vite/-/vite-4.1.11.tgz",
3661 "integrity": "sha512-DOBOK255wfQxguUta2INKkzPj6AIS6iafZYiYmHn6W3pHlycSRRlvWKCfLDG10fXfLWqE3DJHgRUOyJYmARa7g==", 1323 "integrity": "sha512-RHYhrR3hku0MJFRV+fN2gNbDNEh3dwKvY8XJvTxCSXeMOsCRSr+uKvDWQcbizrHgjML6ZmTE5OwMrl5wKcujCw==",
1324 "license": "MIT",
3662 "dependencies": { 1325 "dependencies": {
3663 "@babel/core": "^7.12.3", 1326 "@tailwindcss/node": "4.1.11",
3664 "@babel/plugin-transform-react-constant-elements": "^7.12.1", 1327 "@tailwindcss/oxide": "4.1.11",
3665 "@babel/preset-env": "^7.12.1", 1328 "tailwindcss": "4.1.11"
3666 "@babel/preset-react": "^7.12.5",
3667 "@svgr/core": "^5.5.0",
3668 "@svgr/plugin-jsx": "^5.5.0",
3669 "@svgr/plugin-svgo": "^5.5.0",
3670 "loader-utils": "^2.0.0"
3671 }, 1329 },
3672 "engines": { 1330 "peerDependencies": {
3673 "node": ">=10" 1331 "vite": "^5.2.0 || ^6 || ^7"
3674 },
3675 "funding": {
3676 "type": "github",
3677 "url": "https://github.com/sponsors/gregberge"
3678 } 1332 }
3679 }, 1333 },
3680 "node_modules/@testing-library/dom": { 1334 "node_modules/@testing-library/dom": {
3681 "version": "10.4.0", 1335 "version": "10.4.0",
3682 "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-10.4.0.tgz", 1336 "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-10.4.0.tgz",
3683 "integrity": "sha512-pemlzrSESWbdAloYml3bAJMEfNh1Z7EduzqPKprCH5S341frlpYnUEW0H72dLxa6IsYr+mPno20GiSm+h9dEdQ==", 1337 "integrity": "sha512-pemlzrSESWbdAloYml3bAJMEfNh1Z7EduzqPKprCH5S341frlpYnUEW0H72dLxa6IsYr+mPno20GiSm+h9dEdQ==",
1338 "license": "MIT",
3684 "peer": true, 1339 "peer": true,
3685 "dependencies": { 1340 "dependencies": {
3686 "@babel/code-frame": "^7.10.4", 1341 "@babel/code-frame": "^7.10.4",
@@ -3696,89 +1351,11 @@
3696 "node": ">=18" 1351 "node": ">=18"
3697 } 1352 }
3698 }, 1353 },
3699 "node_modules/@testing-library/dom/node_modules/ansi-styles": {
3700 "version": "4.3.0",
3701 "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
3702 "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
3703 "peer": true,
3704 "dependencies": {
3705 "color-convert": "^2.0.1"
3706 },
3707 "engines": {
3708 "node": ">=8"
3709 },
3710 "funding": {
3711 "url": "https://github.com/chalk/ansi-styles?sponsor=1"
3712 }
3713 },
3714 "node_modules/@testing-library/dom/node_modules/aria-query": {
3715 "version": "5.3.0",
3716 "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.0.tgz",
3717 "integrity": "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==",
3718 "peer": true,
3719 "dependencies": {
3720 "dequal": "^2.0.3"
3721 }
3722 },
3723 "node_modules/@testing-library/dom/node_modules/chalk": {
3724 "version": "4.1.2",
3725 "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
3726 "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
3727 "peer": true,
3728 "dependencies": {
3729 "ansi-styles": "^4.1.0",
3730 "supports-color": "^7.1.0"
3731 },
3732 "engines": {
3733 "node": ">=10"
3734 },
3735 "funding": {
3736 "url": "https://github.com/chalk/chalk?sponsor=1"
3737 }
3738 },
3739 "node_modules/@testing-library/dom/node_modules/color-convert": {
3740 "version": "2.0.1",
3741 "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
3742 "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
3743 "peer": true,
3744 "dependencies": {
3745 "color-name": "~1.1.4"
3746 },
3747 "engines": {
3748 "node": ">=7.0.0"
3749 }
3750 },
3751 "node_modules/@testing-library/dom/node_modules/color-name": {
3752 "version": "1.1.4",
3753 "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
3754 "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
3755 "peer": true
3756 },
3757 "node_modules/@testing-library/dom/node_modules/has-flag": {
3758 "version": "4.0.0",
3759 "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
3760 "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
3761 "peer": true,
3762 "engines": {
3763 "node": ">=8"
3764 }
3765 },
3766 "node_modules/@testing-library/dom/node_modules/supports-color": {
3767 "version": "7.2.0",
3768 "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
3769 "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
3770 "peer": true,
3771 "dependencies": {
3772 "has-flag": "^4.0.0"
3773 },
3774 "engines": {
3775 "node": ">=8"
3776 }
3777 },
3778 "node_modules/@testing-library/jest-dom": { 1354 "node_modules/@testing-library/jest-dom": {
3779 "version": "5.17.0", 1355 "version": "5.17.0",
3780 "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-5.17.0.tgz", 1356 "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-5.17.0.tgz",
3781 "integrity": "sha512-ynmNeT7asXyH3aSVv4vvX4Rb+0qjOhdNHnO/3vuZNqPmhDpV/+rCSGwQ7bLcmU2cJ4dvoheIO85LQj0IbJHEtg==", 1357 "integrity": "sha512-ynmNeT7asXyH3aSVv4vvX4Rb+0qjOhdNHnO/3vuZNqPmhDpV/+rCSGwQ7bLcmU2cJ4dvoheIO85LQj0IbJHEtg==",
1358 "license": "MIT",
3782 "dependencies": { 1359 "dependencies": {
3783 "@adobe/css-tools": "^4.0.1", 1360 "@adobe/css-tools": "^4.0.1",
3784 "@babel/runtime": "^7.9.2", 1361 "@babel/runtime": "^7.9.2",
@@ -3796,24 +1373,11 @@
3796 "yarn": ">=1" 1373 "yarn": ">=1"
3797 } 1374 }
3798 }, 1375 },
3799 "node_modules/@testing-library/jest-dom/node_modules/ansi-styles": {
3800 "version": "4.3.0",
3801 "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
3802 "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
3803 "dependencies": {
3804 "color-convert": "^2.0.1"
3805 },
3806 "engines": {
3807 "node": ">=8"
3808 },
3809 "funding": {
3810 "url": "https://github.com/chalk/ansi-styles?sponsor=1"
3811 }
3812 },
3813 "node_modules/@testing-library/jest-dom/node_modules/chalk": { 1376 "node_modules/@testing-library/jest-dom/node_modules/chalk": {
3814 "version": "3.0.0", 1377 "version": "3.0.0",
3815 "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", 1378 "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz",
3816 "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", 1379 "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==",
1380 "license": "MIT",
3817 "dependencies": { 1381 "dependencies": {
3818 "ansi-styles": "^4.1.0", 1382 "ansi-styles": "^4.1.0",
3819 "supports-color": "^7.1.0" 1383 "supports-color": "^7.1.0"
@@ -3822,45 +1386,11 @@
3822 "node": ">=8" 1386 "node": ">=8"
3823 } 1387 }
3824 }, 1388 },
3825 "node_modules/@testing-library/jest-dom/node_modules/color-convert": {
3826 "version": "2.0.1",
3827 "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
3828 "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
3829 "dependencies": {
3830 "color-name": "~1.1.4"
3831 },
3832 "engines": {
3833 "node": ">=7.0.0"
3834 }
3835 },
3836 "node_modules/@testing-library/jest-dom/node_modules/color-name": {
3837 "version": "1.1.4",
3838 "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
3839 "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
3840 },
3841 "node_modules/@testing-library/jest-dom/node_modules/has-flag": {
3842 "version": "4.0.0",
3843 "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
3844 "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
3845 "engines": {
3846 "node": ">=8"
3847 }
3848 },
3849 "node_modules/@testing-library/jest-dom/node_modules/supports-color": {
3850 "version": "7.2.0",
3851 "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
3852 "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
3853 "dependencies": {
3854 "has-flag": "^4.0.0"
3855 },
3856 "engines": {
3857 "node": ">=8"
3858 }
3859 },
3860 "node_modules/@testing-library/react": { 1389 "node_modules/@testing-library/react": {
3861 "version": "13.4.0", 1390 "version": "13.4.0",
3862 "resolved": "https://registry.npmjs.org/@testing-library/react/-/react-13.4.0.tgz", 1391 "resolved": "https://registry.npmjs.org/@testing-library/react/-/react-13.4.0.tgz",
3863 "integrity": "sha512-sXOGON+WNTh3MLE9rve97ftaZukN3oNf2KjDy7YTx6hcTO2uuLHuCGynMDhFwGw/jYf4OJ2Qk0i4i79qMNNkyw==", 1392 "integrity": "sha512-sXOGON+WNTh3MLE9rve97ftaZukN3oNf2KjDy7YTx6hcTO2uuLHuCGynMDhFwGw/jYf4OJ2Qk0i4i79qMNNkyw==",
1393 "license": "MIT",
3864 "dependencies": { 1394 "dependencies": {
3865 "@babel/runtime": "^7.12.5", 1395 "@babel/runtime": "^7.12.5",
3866 "@testing-library/dom": "^8.5.0", 1396 "@testing-library/dom": "^8.5.0",
@@ -3878,6 +1408,7 @@
3878 "version": "8.20.1", 1408 "version": "8.20.1",
3879 "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-8.20.1.tgz", 1409 "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-8.20.1.tgz",
3880 "integrity": "sha512-/DiOQ5xBxgdYRC8LNk7U+RWat0S3qRLeIw3ZIkMQ9kkVlRmwD/Eg8k8CqIpD6GW7u20JIUOfMKbxtiLutpjQ4g==", 1410 "integrity": "sha512-/DiOQ5xBxgdYRC8LNk7U+RWat0S3qRLeIw3ZIkMQ9kkVlRmwD/Eg8k8CqIpD6GW7u20JIUOfMKbxtiLutpjQ4g==",
1411 "license": "MIT",
3881 "dependencies": { 1412 "dependencies": {
3882 "@babel/code-frame": "^7.10.4", 1413 "@babel/code-frame": "^7.10.4",
3883 "@babel/runtime": "^7.12.5", 1414 "@babel/runtime": "^7.12.5",
@@ -3892,74 +1423,20 @@
3892 "node": ">=12" 1423 "node": ">=12"
3893 } 1424 }
3894 }, 1425 },
3895 "node_modules/@testing-library/react/node_modules/ansi-styles": { 1426 "node_modules/@testing-library/react/node_modules/aria-query": {
3896 "version": "4.3.0", 1427 "version": "5.1.3",
3897 "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", 1428 "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.1.3.tgz",
3898 "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", 1429 "integrity": "sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==",
3899 "dependencies": { 1430 "license": "Apache-2.0",
3900 "color-convert": "^2.0.1"
3901 },
3902 "engines": {
3903 "node": ">=8"
3904 },
3905 "funding": {
3906 "url": "https://github.com/chalk/ansi-styles?sponsor=1"
3907 }
3908 },
3909 "node_modules/@testing-library/react/node_modules/chalk": {
3910 "version": "4.1.2",
3911 "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
3912 "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
3913 "dependencies": {
3914 "ansi-styles": "^4.1.0",
3915 "supports-color": "^7.1.0"
3916 },
3917 "engines": {
3918 "node": ">=10"
3919 },
3920 "funding": {
3921 "url": "https://github.com/chalk/chalk?sponsor=1"
3922 }
3923 },
3924 "node_modules/@testing-library/react/node_modules/color-convert": {
3925 "version": "2.0.1",
3926 "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
3927 "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
3928 "dependencies": {
3929 "color-name": "~1.1.4"
3930 },
3931 "engines": {
3932 "node": ">=7.0.0"
3933 }
3934 },
3935 "node_modules/@testing-library/react/node_modules/color-name": {
3936 "version": "1.1.4",
3937 "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
3938 "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
3939 },
3940 "node_modules/@testing-library/react/node_modules/has-flag": {
3941 "version": "4.0.0",
3942 "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
3943 "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
3944 "engines": {
3945 "node": ">=8"
3946 }
3947 },
3948 "node_modules/@testing-library/react/node_modules/supports-color": {
3949 "version": "7.2.0",
3950 "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
3951 "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
3952 "dependencies": { 1431 "dependencies": {
3953 "has-flag": "^4.0.0" 1432 "deep-equal": "^2.0.5"
3954 },
3955 "engines": {
3956 "node": ">=8"
3957 } 1433 }
3958 }, 1434 },
3959 "node_modules/@testing-library/user-event": { 1435 "node_modules/@testing-library/user-event": {
3960 "version": "13.5.0", 1436 "version": "13.5.0",
3961 "resolved": "https://registry.npmjs.org/@testing-library/user-event/-/user-event-13.5.0.tgz", 1437 "resolved": "https://registry.npmjs.org/@testing-library/user-event/-/user-event-13.5.0.tgz",
3962 "integrity": "sha512-5Kwtbo3Y/NowpkbRuSepbyMFkZmHgD+vPzYB/RJ4oxt5Gj/avFFBYjhw27cqSVPVw/3a67NK1PbiIr9k4Gwmdg==", 1438 "integrity": "sha512-5Kwtbo3Y/NowpkbRuSepbyMFkZmHgD+vPzYB/RJ4oxt5Gj/avFFBYjhw27cqSVPVw/3a67NK1PbiIr9k4Gwmdg==",
1439 "license": "MIT",
3963 "dependencies": { 1440 "dependencies": {
3964 "@babel/runtime": "^7.12.5" 1441 "@babel/runtime": "^7.12.5"
3965 }, 1442 },
@@ -3971,59 +1448,17 @@
3971 "@testing-library/dom": ">=7.21.4" 1448 "@testing-library/dom": ">=7.21.4"
3972 } 1449 }
3973 }, 1450 },
3974 "node_modules/@tootallnate/once": {
3975 "version": "1.1.2",
3976 "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz",
3977 "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==",
3978 "engines": {
3979 "node": ">= 6"
3980 }
3981 },
3982 "node_modules/@trysound/sax": {
3983 "version": "0.2.0",
3984 "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz",
3985 "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==",
3986 "engines": {
3987 "node": ">=10.13.0"
3988 }
3989 },
3990 "node_modules/@tsconfig/node10": {
3991 "version": "1.0.11",
3992 "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.11.tgz",
3993 "integrity": "sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==",
3994 "devOptional": true,
3995 "license": "MIT"
3996 },
3997 "node_modules/@tsconfig/node12": {
3998 "version": "1.0.11",
3999 "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz",
4000 "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==",
4001 "devOptional": true,
4002 "license": "MIT"
4003 },
4004 "node_modules/@tsconfig/node14": {
4005 "version": "1.0.3",
4006 "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz",
4007 "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==",
4008 "devOptional": true,
4009 "license": "MIT"
4010 },
4011 "node_modules/@tsconfig/node16": {
4012 "version": "1.0.4",
4013 "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz",
4014 "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==",
4015 "devOptional": true,
4016 "license": "MIT"
4017 },
4018 "node_modules/@types/aria-query": { 1451 "node_modules/@types/aria-query": {
4019 "version": "5.0.4", 1452 "version": "5.0.4",
4020 "resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-5.0.4.tgz", 1453 "resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-5.0.4.tgz",
4021 "integrity": "sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==" 1454 "integrity": "sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==",
1455 "license": "MIT"
4022 }, 1456 },
4023 "node_modules/@types/babel__core": { 1457 "node_modules/@types/babel__core": {
4024 "version": "7.20.5", 1458 "version": "7.20.5",
4025 "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", 1459 "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz",
4026 "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", 1460 "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==",
1461 "license": "MIT",
4027 "dependencies": { 1462 "dependencies": {
4028 "@babel/parser": "^7.20.7", 1463 "@babel/parser": "^7.20.7",
4029 "@babel/types": "^7.20.7", 1464 "@babel/types": "^7.20.7",
@@ -4033,9 +1468,10 @@
4033 } 1468 }
4034 }, 1469 },
4035 "node_modules/@types/babel__generator": { 1470 "node_modules/@types/babel__generator": {
4036 "version": "7.6.8", 1471 "version": "7.27.0",
4037 "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.8.tgz", 1472 "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.27.0.tgz",
4038 "integrity": "sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==", 1473 "integrity": "sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==",
1474 "license": "MIT",
4039 "dependencies": { 1475 "dependencies": {
4040 "@babel/types": "^7.0.0" 1476 "@babel/types": "^7.0.0"
4041 } 1477 }
@@ -4044,1159 +1480,204 @@
4044 "version": "7.4.4", 1480 "version": "7.4.4",
4045 "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", 1481 "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz",
4046 "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", 1482 "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==",
1483 "license": "MIT",
4047 "dependencies": { 1484 "dependencies": {
4048 "@babel/parser": "^7.1.0", 1485 "@babel/parser": "^7.1.0",
4049 "@babel/types": "^7.0.0" 1486 "@babel/types": "^7.0.0"
4050 } 1487 }
4051 }, 1488 },
4052 "node_modules/@types/babel__traverse": { 1489 "node_modules/@types/babel__traverse": {
4053 "version": "7.20.6", 1490 "version": "7.28.0",
4054 "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.6.tgz", 1491 "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.28.0.tgz",
4055 "integrity": "sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==", 1492 "integrity": "sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q==",
4056 "dependencies": { 1493 "license": "MIT",
4057 "@babel/types": "^7.20.7"
4058 }
4059 },
4060 "node_modules/@types/body-parser": {
4061 "version": "1.19.5",
4062 "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.5.tgz",
4063 "integrity": "sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==",
4064 "dependencies": {
4065 "@types/connect": "*",
4066 "@types/node": "*"
4067 }
4068 },
4069 "node_modules/@types/bonjour": {
4070 "version": "3.5.13",
4071 "resolved": "https://registry.npmjs.org/@types/bonjour/-/bonjour-3.5.13.tgz",
4072 "integrity": "sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ==",
4073 "dependencies": {
4074 "@types/node": "*"
4075 }
4076 },
4077 "node_modules/@types/connect": {
4078 "version": "3.4.38",
4079 "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz",
4080 "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==",
4081 "dependencies": {
4082 "@types/node": "*"
4083 }
4084 },
4085 "node_modules/@types/connect-history-api-fallback": {
4086 "version": "1.5.4",
4087 "resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.4.tgz",
4088 "integrity": "sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw==",
4089 "dependencies": { 1494 "dependencies": {
4090 "@types/express-serve-static-core": "*", 1495 "@babel/types": "^7.28.2"
4091 "@types/node": "*"
4092 } 1496 }
4093 }, 1497 },
4094 "node_modules/@types/debug": { 1498 "node_modules/@types/debug": {
4095 "version": "4.1.12", 1499 "version": "4.1.12",
4096 "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.12.tgz", 1500 "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.12.tgz",
4097 "integrity": "sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==", 1501 "integrity": "sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==",
1502 "license": "MIT",
4098 "dependencies": { 1503 "dependencies": {
4099 "@types/ms": "*" 1504 "@types/ms": "*"
4100 } 1505 }
4101 }, 1506 },
4102 "node_modules/@types/eslint": {
4103 "version": "8.56.11",
4104 "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.56.11.tgz",
4105 "integrity": "sha512-sVBpJMf7UPo/wGecYOpk2aQya2VUGeHhe38WG7/mN5FufNSubf5VT9Uh9Uyp8/eLJpu1/tuhJ/qTo4mhSB4V4Q==",
4106 "dependencies": {
4107 "@types/estree": "*",
4108 "@types/json-schema": "*"
4109 }
4110 },
4111 "node_modules/@types/eslint-scope": {
4112 "version": "3.7.7",
4113 "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.7.tgz",
4114 "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==",
4115 "dependencies": {
4116 "@types/eslint": "*",
4117 "@types/estree": "*"
4118 }
4119 },
4120 "node_modules/@types/estree": { 1507 "node_modules/@types/estree": {
4121 "version": "1.0.5", 1508 "version": "1.0.8",
4122 "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", 1509 "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz",
4123 "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==" 1510 "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==",
1511 "license": "MIT"
4124 }, 1512 },
4125 "node_modules/@types/estree-jsx": { 1513 "node_modules/@types/estree-jsx": {
4126 "version": "1.0.5", 1514 "version": "1.0.5",
4127 "resolved": "https://registry.npmjs.org/@types/estree-jsx/-/estree-jsx-1.0.5.tgz", 1515 "resolved": "https://registry.npmjs.org/@types/estree-jsx/-/estree-jsx-1.0.5.tgz",
4128 "integrity": "sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==", 1516 "integrity": "sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==",
1517 "license": "MIT",
4129 "dependencies": { 1518 "dependencies": {
4130 "@types/estree": "*" 1519 "@types/estree": "*"
4131 } 1520 }
4132 }, 1521 },
4133 "node_modules/@types/express": {
4134 "version": "4.17.21",
4135 "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.21.tgz",
4136 "integrity": "sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==",
4137 "dependencies": {
4138 "@types/body-parser": "*",
4139 "@types/express-serve-static-core": "^4.17.33",
4140 "@types/qs": "*",
4141 "@types/serve-static": "*"
4142 }
4143 },
4144 "node_modules/@types/express-serve-static-core": {
4145 "version": "4.19.5",
4146 "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.19.5.tgz",
4147 "integrity": "sha512-y6W03tvrACO72aijJ5uF02FRq5cgDR9lUxddQ8vyF+GvmjJQqbzDcJngEjURc+ZsG31VI3hODNZJ2URj86pzmg==",
4148 "dependencies": {
4149 "@types/node": "*",
4150 "@types/qs": "*",
4151 "@types/range-parser": "*",
4152 "@types/send": "*"
4153 }
4154 },
4155 "node_modules/@types/graceful-fs": {
4156 "version": "4.1.9",
4157 "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz",
4158 "integrity": "sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==",
4159 "dependencies": {
4160 "@types/node": "*"
4161 }
4162 },
4163 "node_modules/@types/hast": { 1522 "node_modules/@types/hast": {
4164 "version": "3.0.4", 1523 "version": "3.0.4",
4165 "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz", 1524 "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz",
4166 "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==", 1525 "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==",
1526 "license": "MIT",
4167 "dependencies": { 1527 "dependencies": {
4168 "@types/unist": "*" 1528 "@types/unist": "*"
4169 } 1529 }
4170 }, 1530 },
4171 "node_modules/@types/html-minifier-terser": {
4172 "version": "6.1.0",
4173 "resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz",
4174 "integrity": "sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg=="
4175 },
4176 "node_modules/@types/http-errors": {
4177 "version": "2.0.4",
4178 "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.4.tgz",
4179 "integrity": "sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA=="
4180 },
4181 "node_modules/@types/http-proxy": {
4182 "version": "1.17.15",
4183 "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.15.tgz",
4184 "integrity": "sha512-25g5atgiVNTIv0LBDTg1H74Hvayx0ajtJPLLcYE3whFv75J0pWNtOBzaXJQgDTmrX1bx5U9YC2w/n65BN1HwRQ==",
4185 "dependencies": {
4186 "@types/node": "*"
4187 }
4188 },
4189 "node_modules/@types/istanbul-lib-coverage": {
4190 "version": "2.0.6",
4191 "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz",
4192 "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w=="
4193 },
4194 "node_modules/@types/istanbul-lib-report": {
4195 "version": "3.0.3",
4196 "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz",
4197 "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==",
4198 "dependencies": {
4199 "@types/istanbul-lib-coverage": "*"
4200 }
4201 },
4202 "node_modules/@types/istanbul-reports": {
4203 "version": "3.0.4",
4204 "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz",
4205 "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==",
4206 "dependencies": {
4207 "@types/istanbul-lib-report": "*"
4208 }
4209 },
4210 "node_modules/@types/jest": { 1531 "node_modules/@types/jest": {
4211 "version": "27.5.2", 1532 "version": "27.5.2",
4212 "resolved": "https://registry.npmjs.org/@types/jest/-/jest-27.5.2.tgz", 1533 "resolved": "https://registry.npmjs.org/@types/jest/-/jest-27.5.2.tgz",
4213 "integrity": "sha512-mpT8LJJ4CMeeahobofYWIjFo0xonRS/HfxnVEPMPFSQdGUt1uHCnoPT7Zhb+sjDU2wz0oKV0OLUR0WzrHNgfeA==", 1534 "integrity": "sha512-mpT8LJJ4CMeeahobofYWIjFo0xonRS/HfxnVEPMPFSQdGUt1uHCnoPT7Zhb+sjDU2wz0oKV0OLUR0WzrHNgfeA==",
1535 "license": "MIT",
4214 "dependencies": { 1536 "dependencies": {
4215 "jest-matcher-utils": "^27.0.0", 1537 "jest-matcher-utils": "^27.0.0",
4216 "pretty-format": "^27.0.0" 1538 "pretty-format": "^27.0.0"
4217 } 1539 }
4218 }, 1540 },
4219 "node_modules/@types/json-schema": {
4220 "version": "7.0.15",
4221 "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz",
4222 "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA=="
4223 },
4224 "node_modules/@types/json5": {
4225 "version": "0.0.29",
4226 "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz",
4227 "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ=="
4228 },
4229 "node_modules/@types/mdast": { 1541 "node_modules/@types/mdast": {
4230 "version": "4.0.4", 1542 "version": "4.0.4",
4231 "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.4.tgz", 1543 "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.4.tgz",
4232 "integrity": "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==", 1544 "integrity": "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==",
1545 "license": "MIT",
4233 "dependencies": { 1546 "dependencies": {
4234 "@types/unist": "*" 1547 "@types/unist": "*"
4235 } 1548 }
4236 }, 1549 },
4237 "node_modules/@types/mime": {
4238 "version": "1.3.5",
4239 "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz",
4240 "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w=="
4241 },
4242 "node_modules/@types/ms": { 1550 "node_modules/@types/ms": {
4243 "version": "0.7.34", 1551 "version": "2.1.0",
4244 "resolved": "https://registry.npmjs.org/@types/ms/-/ms-0.7.34.tgz", 1552 "resolved": "https://registry.npmjs.org/@types/ms/-/ms-2.1.0.tgz",
4245 "integrity": "sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==" 1553 "integrity": "sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==",
1554 "license": "MIT"
4246 }, 1555 },
4247 "node_modules/@types/node": { 1556 "node_modules/@types/node": {
4248 "version": "16.18.105", 1557 "version": "20.19.9",
4249 "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.105.tgz", 1558 "resolved": "https://registry.npmjs.org/@types/node/-/node-20.19.9.tgz",
4250 "integrity": "sha512-w2d0Z9yMk07uH3+Cx0N8lqFyi3yjXZxlbYappPj+AsOlT02OyxyiuNoNHdGt6EuiSm8Wtgp2YV7vWg+GMFrvFA==" 1559 "integrity": "sha512-cuVNgarYWZqxRJDQHEB58GEONhOK79QVR/qYx4S7kcUObQvUwvFnYxJuuHUKm2aieN9X3yZB4LZsuYNU1Qphsw==",
4251 }, 1560 "license": "MIT",
4252 "node_modules/@types/node-forge": {
4253 "version": "1.3.11",
4254 "resolved": "https://registry.npmjs.org/@types/node-forge/-/node-forge-1.3.11.tgz",
4255 "integrity": "sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ==",
4256 "dependencies": { 1561 "dependencies": {
4257 "@types/node": "*" 1562 "undici-types": "~6.21.0"
4258 } 1563 }
4259 }, 1564 },
4260 "node_modules/@types/parse-json": {
4261 "version": "4.0.2",
4262 "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.2.tgz",
4263 "integrity": "sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw=="
4264 },
4265 "node_modules/@types/prettier": {
4266 "version": "2.7.3",
4267 "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.3.tgz",
4268 "integrity": "sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA=="
4269 },
4270 "node_modules/@types/prop-types": { 1565 "node_modules/@types/prop-types": {
4271 "version": "15.7.12", 1566 "version": "15.7.14",
4272 "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.12.tgz", 1567 "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.14.tgz",
4273 "integrity": "sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==" 1568 "integrity": "sha512-gNMvNH49DJ7OJYv+KAKn0Xp45p8PLl6zo2YnvDIbTd4J6MER2BmWN49TG7n9LvkyihINxeKW8+3bfS2yDC9dzQ==",
4274 }, 1569 "license": "MIT"
4275 "node_modules/@types/q": {
4276 "version": "1.5.8",
4277 "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.8.tgz",
4278 "integrity": "sha512-hroOstUScF6zhIi+5+x0dzqrHA1EJi+Irri6b1fxolMTqqHIV/Cg77EtnQcZqZCu8hR3mX2BzIxN4/GzI68Kfw=="
4279 },
4280 "node_modules/@types/qs": {
4281 "version": "6.9.15",
4282 "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.15.tgz",
4283 "integrity": "sha512-uXHQKES6DQKKCLh441Xv/dwxOq1TVS3JPUMlEqoEglvlhR6Mxnlew/Xq/LRVHpLyk7iK3zODe1qYHIMltO7XGg=="
4284 },
4285 "node_modules/@types/range-parser": {
4286 "version": "1.2.7",
4287 "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz",
4288 "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ=="
4289 }, 1570 },
4290 "node_modules/@types/react": { 1571 "node_modules/@types/react": {
4291 "version": "18.3.3", 1572 "version": "18.3.18",
4292 "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.3.tgz", 1573 "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.18.tgz",
4293 "integrity": "sha512-hti/R0pS0q1/xx+TsI73XIqk26eBsISZ2R0wUijXIngRK9R/e7Xw/cXVxQK7R5JjW+SV4zGcn5hXjudkN/pLIw==", 1574 "integrity": "sha512-t4yC+vtgnkYjNSKlFx1jkAhH8LgTo2N/7Qvi83kdEaUtMDiwpbLAktKDaAMlRcJ5eSxZkH74eEGt1ky31d7kfQ==",
1575 "license": "MIT",
4294 "dependencies": { 1576 "dependencies": {
4295 "@types/prop-types": "*", 1577 "@types/prop-types": "*",
4296 "csstype": "^3.0.2" 1578 "csstype": "^3.0.2"
4297 } 1579 }
4298 }, 1580 },
4299 "node_modules/@types/react-dom": { 1581 "node_modules/@types/react-dom": {
4300 "version": "18.3.0", 1582 "version": "18.3.5",
4301 "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.0.tgz", 1583 "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.5.tgz",
4302 "integrity": "sha512-EhwApuTmMBmXuFOikhQLIBUn6uFg81SwLMOAUgodJF14SOBOCMdU04gDoYi0WOJJHD144TL32z4yDqCW3dnkQg==", 1584 "integrity": "sha512-P4t6saawp+b/dFrUr2cvkVsfvPguwsxtH6dNIYRllMsefqFzkZk5UIjzyDOv5g1dXIPdG4Sp1yCR4Z6RCUsG/Q==",
4303 "dependencies": { 1585 "license": "MIT",
4304 "@types/react": "*" 1586 "peerDependencies": {
1587 "@types/react": "^18.0.0"
4305 } 1588 }
4306 }, 1589 },
4307 "node_modules/@types/react-helmet": { 1590 "node_modules/@types/react-helmet": {
4308 "version": "6.1.11", 1591 "version": "6.1.11",
4309 "resolved": "https://registry.npmjs.org/@types/react-helmet/-/react-helmet-6.1.11.tgz", 1592 "resolved": "https://registry.npmjs.org/@types/react-helmet/-/react-helmet-6.1.11.tgz",
4310 "integrity": "sha512-0QcdGLddTERotCXo3VFlUSWO3ztraw8nZ6e3zJSgG7apwV5xt+pJUS8ewPBqT4NYB1optGLprNQzFleIY84u/g==", 1593 "integrity": "sha512-0QcdGLddTERotCXo3VFlUSWO3ztraw8nZ6e3zJSgG7apwV5xt+pJUS8ewPBqT4NYB1optGLprNQzFleIY84u/g==",
4311 "dev": true, 1594 "license": "MIT",
4312 "dependencies": { 1595 "dependencies": {
4313 "@types/react": "*" 1596 "@types/react": "*"
4314 } 1597 }
4315 }, 1598 },
4316 "node_modules/@types/resolve": {
4317 "version": "1.17.1",
4318 "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz",
4319 "integrity": "sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==",
4320 "dependencies": {
4321 "@types/node": "*"
4322 }
4323 },
4324 "node_modules/@types/retry": {
4325 "version": "0.12.0",
4326 "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz",
4327 "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA=="
4328 },
4329 "node_modules/@types/semver": {
4330 "version": "7.5.8",
4331 "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.8.tgz",
4332 "integrity": "sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ=="
4333 },
4334 "node_modules/@types/send": {
4335 "version": "0.17.4",
4336 "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.4.tgz",
4337 "integrity": "sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==",
4338 "dependencies": {
4339 "@types/mime": "^1",
4340 "@types/node": "*"
4341 }
4342 },
4343 "node_modules/@types/serve-index": {
4344 "version": "1.9.4",
4345 "resolved": "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.4.tgz",
4346 "integrity": "sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug==",
4347 "dependencies": {
4348 "@types/express": "*"
4349 }
4350 },
4351 "node_modules/@types/serve-static": {
4352 "version": "1.15.7",
4353 "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.7.tgz",
4354 "integrity": "sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==",
4355 "dependencies": {
4356 "@types/http-errors": "*",
4357 "@types/node": "*",
4358 "@types/send": "*"
4359 }
4360 },
4361 "node_modules/@types/sockjs": {
4362 "version": "0.3.36",
4363 "resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.36.tgz",
4364 "integrity": "sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q==",
4365 "dependencies": {
4366 "@types/node": "*"
4367 }
4368 },
4369 "node_modules/@types/stack-utils": {
4370 "version": "2.0.3",
4371 "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz",
4372 "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw=="
4373 },
4374 "node_modules/@types/testing-library__jest-dom": { 1599 "node_modules/@types/testing-library__jest-dom": {
4375 "version": "5.14.9", 1600 "version": "5.14.9",
4376 "resolved": "https://registry.npmjs.org/@types/testing-library__jest-dom/-/testing-library__jest-dom-5.14.9.tgz", 1601 "resolved": "https://registry.npmjs.org/@types/testing-library__jest-dom/-/testing-library__jest-dom-5.14.9.tgz",
4377 "integrity": "sha512-FSYhIjFlfOpGSRyVoMBMuS3ws5ehFQODymf3vlI7U1K8c7PHwWwFY7VREfmsuzHSOnoKs/9/Y983ayOs7eRzqw==", 1602 "integrity": "sha512-FSYhIjFlfOpGSRyVoMBMuS3ws5ehFQODymf3vlI7U1K8c7PHwWwFY7VREfmsuzHSOnoKs/9/Y983ayOs7eRzqw==",
1603 "license": "MIT",
4378 "dependencies": { 1604 "dependencies": {
4379 "@types/jest": "*" 1605 "@types/jest": "*"
4380 } 1606 }
4381 }, 1607 },
4382 "node_modules/@types/trusted-types": {
4383 "version": "2.0.7",
4384 "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz",
4385 "integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw=="
4386 },
4387 "node_modules/@types/unist": { 1608 "node_modules/@types/unist": {
4388 "version": "3.0.3", 1609 "version": "3.0.3",
4389 "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", 1610 "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz",
4390 "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==" 1611 "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==",
4391 }, 1612 "license": "MIT"
4392 "node_modules/@types/ws": {
4393 "version": "8.5.12",
4394 "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.12.tgz",
4395 "integrity": "sha512-3tPRkv1EtkDpzlgyKyI8pGsGZAGPEaXeu0DOj5DI25Ja91bdAYddYHbADRYVrZMRbfW+1l5YwXVDKohDJNQxkQ==",
4396 "dependencies": {
4397 "@types/node": "*"
4398 }
4399 },
4400 "node_modules/@types/yargs": {
4401 "version": "16.0.9",
4402 "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.9.tgz",
4403 "integrity": "sha512-tHhzvkFXZQeTECenFoRljLBYPZJ7jAVxqqtEI0qTLOmuultnFp4I9yKE17vTuhf7BkhCu7I4XuemPgikDVuYqA==",
4404 "dependencies": {
4405 "@types/yargs-parser": "*"
4406 }
4407 },
4408 "node_modules/@types/yargs-parser": {
4409 "version": "21.0.3",
4410 "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz",
4411 "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ=="
4412 },
4413 "node_modules/@typescript-eslint/eslint-plugin": {
4414 "version": "5.62.0",
4415 "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.62.0.tgz",
4416 "integrity": "sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==",
4417 "dependencies": {
4418 "@eslint-community/regexpp": "^4.4.0",
4419 "@typescript-eslint/scope-manager": "5.62.0",
4420 "@typescript-eslint/type-utils": "5.62.0",
4421 "@typescript-eslint/utils": "5.62.0",
4422 "debug": "^4.3.4",
4423 "graphemer": "^1.4.0",
4424 "ignore": "^5.2.0",
4425 "natural-compare-lite": "^1.4.0",
4426 "semver": "^7.3.7",
4427 "tsutils": "^3.21.0"
4428 },
4429 "engines": {
4430 "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
4431 },
4432 "funding": {
4433 "type": "opencollective",
4434 "url": "https://opencollective.com/typescript-eslint"
4435 },
4436 "peerDependencies": {
4437 "@typescript-eslint/parser": "^5.0.0",
4438 "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0"
4439 },
4440 "peerDependenciesMeta": {
4441 "typescript": {
4442 "optional": true
4443 }
4444 }
4445 },
4446 "node_modules/@typescript-eslint/experimental-utils": {
4447 "version": "5.62.0",
4448 "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-5.62.0.tgz",
4449 "integrity": "sha512-RTXpeB3eMkpoclG3ZHft6vG/Z30azNHuqY6wKPBHlVMZFuEvrtlEDe8gMqDb+SO+9hjC/pLekeSCryf9vMZlCw==",
4450 "dependencies": {
4451 "@typescript-eslint/utils": "5.62.0"
4452 },
4453 "engines": {
4454 "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
4455 },
4456 "funding": {
4457 "type": "opencollective",
4458 "url": "https://opencollective.com/typescript-eslint"
4459 },
4460 "peerDependencies": {
4461 "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0"
4462 }
4463 },
4464 "node_modules/@typescript-eslint/parser": {
4465 "version": "5.62.0",
4466 "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.62.0.tgz",
4467 "integrity": "sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==",
4468 "dependencies": {
4469 "@typescript-eslint/scope-manager": "5.62.0",
4470 "@typescript-eslint/types": "5.62.0",
4471 "@typescript-eslint/typescript-estree": "5.62.0",
4472 "debug": "^4.3.4"
4473 },
4474 "engines": {
4475 "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
4476 },
4477 "funding": {
4478 "type": "opencollective",
4479 "url": "https://opencollective.com/typescript-eslint"
4480 },
4481 "peerDependencies": {
4482 "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0"
4483 },
4484 "peerDependenciesMeta": {
4485 "typescript": {
4486 "optional": true
4487 }
4488 }
4489 },
4490 "node_modules/@typescript-eslint/scope-manager": {
4491 "version": "5.62.0",
4492 "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz",
4493 "integrity": "sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==",
4494 "dependencies": {
4495 "@typescript-eslint/types": "5.62.0",
4496 "@typescript-eslint/visitor-keys": "5.62.0"
4497 },
4498 "engines": {
4499 "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
4500 },
4501 "funding": {
4502 "type": "opencollective",
4503 "url": "https://opencollective.com/typescript-eslint"
4504 }
4505 },
4506 "node_modules/@typescript-eslint/type-utils": {
4507 "version": "5.62.0",
4508 "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.62.0.tgz",
4509 "integrity": "sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==",
4510 "dependencies": {
4511 "@typescript-eslint/typescript-estree": "5.62.0",
4512 "@typescript-eslint/utils": "5.62.0",
4513 "debug": "^4.3.4",
4514 "tsutils": "^3.21.0"
4515 },
4516 "engines": {
4517 "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
4518 },
4519 "funding": {
4520 "type": "opencollective",
4521 "url": "https://opencollective.com/typescript-eslint"
4522 },
4523 "peerDependencies": {
4524 "eslint": "*"
4525 },
4526 "peerDependenciesMeta": {
4527 "typescript": {
4528 "optional": true
4529 }
4530 }
4531 },
4532 "node_modules/@typescript-eslint/types": {
4533 "version": "5.62.0",
4534 "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.62.0.tgz",
4535 "integrity": "sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==",
4536 "engines": {
4537 "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
4538 },
4539 "funding": {
4540 "type": "opencollective",
4541 "url": "https://opencollective.com/typescript-eslint"
4542 }
4543 },
4544 "node_modules/@typescript-eslint/typescript-estree": {
4545 "version": "5.62.0",
4546 "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz",
4547 "integrity": "sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==",
4548 "dependencies": {
4549 "@typescript-eslint/types": "5.62.0",
4550 "@typescript-eslint/visitor-keys": "5.62.0",
4551 "debug": "^4.3.4",
4552 "globby": "^11.1.0",
4553 "is-glob": "^4.0.3",
4554 "semver": "^7.3.7",
4555 "tsutils": "^3.21.0"
4556 },
4557 "engines": {
4558 "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
4559 },
4560 "funding": {
4561 "type": "opencollective",
4562 "url": "https://opencollective.com/typescript-eslint"
4563 },
4564 "peerDependenciesMeta": {
4565 "typescript": {
4566 "optional": true
4567 }
4568 }
4569 },
4570 "node_modules/@typescript-eslint/utils": {
4571 "version": "5.62.0",
4572 "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.62.0.tgz",
4573 "integrity": "sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==",
4574 "dependencies": {
4575 "@eslint-community/eslint-utils": "^4.2.0",
4576 "@types/json-schema": "^7.0.9",
4577 "@types/semver": "^7.3.12",
4578 "@typescript-eslint/scope-manager": "5.62.0",
4579 "@typescript-eslint/types": "5.62.0",
4580 "@typescript-eslint/typescript-estree": "5.62.0",
4581 "eslint-scope": "^5.1.1",
4582 "semver": "^7.3.7"
4583 },
4584 "engines": {
4585 "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
4586 },
4587 "funding": {
4588 "type": "opencollective",
4589 "url": "https://opencollective.com/typescript-eslint"
4590 },
4591 "peerDependencies": {
4592 "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0"
4593 }
4594 },
4595 "node_modules/@typescript-eslint/utils/node_modules/eslint-scope": {
4596 "version": "5.1.1",
4597 "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz",
4598 "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==",
4599 "dependencies": {
4600 "esrecurse": "^4.3.0",
4601 "estraverse": "^4.1.1"
4602 },
4603 "engines": {
4604 "node": ">=8.0.0"
4605 }
4606 },
4607 "node_modules/@typescript-eslint/utils/node_modules/estraverse": {
4608 "version": "4.3.0",
4609 "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz",
4610 "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==",
4611 "engines": {
4612 "node": ">=4.0"
4613 }
4614 },
4615 "node_modules/@typescript-eslint/visitor-keys": {
4616 "version": "5.62.0",
4617 "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz",
4618 "integrity": "sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==",
4619 "dependencies": {
4620 "@typescript-eslint/types": "5.62.0",
4621 "eslint-visitor-keys": "^3.3.0"
4622 },
4623 "engines": {
4624 "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
4625 },
4626 "funding": {
4627 "type": "opencollective",
4628 "url": "https://opencollective.com/typescript-eslint"
4629 }
4630 }, 1613 },
4631 "node_modules/@ungap/structured-clone": { 1614 "node_modules/@ungap/structured-clone": {
4632 "version": "1.2.0", 1615 "version": "1.3.0",
4633 "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", 1616 "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.3.0.tgz",
4634 "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==" 1617 "integrity": "sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==",
4635 }, 1618 "license": "ISC"
4636 "node_modules/@webassemblyjs/ast": {
4637 "version": "1.12.1",
4638 "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.12.1.tgz",
4639 "integrity": "sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg==",
4640 "dependencies": {
4641 "@webassemblyjs/helper-numbers": "1.11.6",
4642 "@webassemblyjs/helper-wasm-bytecode": "1.11.6"
4643 }
4644 },
4645 "node_modules/@webassemblyjs/floating-point-hex-parser": {
4646 "version": "1.11.6",
4647 "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz",
4648 "integrity": "sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw=="
4649 },
4650 "node_modules/@webassemblyjs/helper-api-error": {
4651 "version": "1.11.6",
4652 "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz",
4653 "integrity": "sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q=="
4654 },
4655 "node_modules/@webassemblyjs/helper-buffer": {
4656 "version": "1.12.1",
4657 "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.12.1.tgz",
4658 "integrity": "sha512-nzJwQw99DNDKr9BVCOZcLuJJUlqkJh+kVzVl6Fmq/tI5ZtEyWT1KZMyOXltXLZJmDtvLCDgwsyrkohEtopTXCw=="
4659 },
4660 "node_modules/@webassemblyjs/helper-numbers": {
4661 "version": "1.11.6",
4662 "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz",
4663 "integrity": "sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==",
4664 "dependencies": {
4665 "@webassemblyjs/floating-point-hex-parser": "1.11.6",
4666 "@webassemblyjs/helper-api-error": "1.11.6",
4667 "@xtuc/long": "4.2.2"
4668 }
4669 },
4670 "node_modules/@webassemblyjs/helper-wasm-bytecode": {
4671 "version": "1.11.6",
4672 "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz",
4673 "integrity": "sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA=="
4674 },
4675 "node_modules/@webassemblyjs/helper-wasm-section": {
4676 "version": "1.12.1",
4677 "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.12.1.tgz",
4678 "integrity": "sha512-Jif4vfB6FJlUlSbgEMHUyk1j234GTNG9dBJ4XJdOySoj518Xj0oGsNi59cUQF4RRMS9ouBUxDDdyBVfPTypa5g==",
4679 "dependencies": {
4680 "@webassemblyjs/ast": "1.12.1",
4681 "@webassemblyjs/helper-buffer": "1.12.1",
4682 "@webassemblyjs/helper-wasm-bytecode": "1.11.6",
4683 "@webassemblyjs/wasm-gen": "1.12.1"
4684 }
4685 },
4686 "node_modules/@webassemblyjs/ieee754": {
4687 "version": "1.11.6",
4688 "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz",
4689 "integrity": "sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==",
4690 "dependencies": {
4691 "@xtuc/ieee754": "^1.2.0"
4692 }
4693 },
4694 "node_modules/@webassemblyjs/leb128": {
4695 "version": "1.11.6",
4696 "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.6.tgz",
4697 "integrity": "sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==",
4698 "dependencies": {
4699 "@xtuc/long": "4.2.2"
4700 }
4701 },
4702 "node_modules/@webassemblyjs/utf8": {
4703 "version": "1.11.6",
4704 "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.6.tgz",
4705 "integrity": "sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA=="
4706 },
4707 "node_modules/@webassemblyjs/wasm-edit": {
4708 "version": "1.12.1",
4709 "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.12.1.tgz",
4710 "integrity": "sha512-1DuwbVvADvS5mGnXbE+c9NfA8QRcZ6iKquqjjmR10k6o+zzsRVesil54DKexiowcFCPdr/Q0qaMgB01+SQ1u6g==",
4711 "dependencies": {
4712 "@webassemblyjs/ast": "1.12.1",
4713 "@webassemblyjs/helper-buffer": "1.12.1",
4714 "@webassemblyjs/helper-wasm-bytecode": "1.11.6",
4715 "@webassemblyjs/helper-wasm-section": "1.12.1",
4716 "@webassemblyjs/wasm-gen": "1.12.1",
4717 "@webassemblyjs/wasm-opt": "1.12.1",
4718 "@webassemblyjs/wasm-parser": "1.12.1",
4719 "@webassemblyjs/wast-printer": "1.12.1"
4720 }
4721 },
4722 "node_modules/@webassemblyjs/wasm-gen": {
4723 "version": "1.12.1",
4724 "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.12.1.tgz",
4725 "integrity": "sha512-TDq4Ojh9fcohAw6OIMXqiIcTq5KUXTGRkVxbSo1hQnSy6lAM5GSdfwWeSxpAo0YzgsgF182E/U0mDNhuA0tW7w==",
4726 "dependencies": {
4727 "@webassemblyjs/ast": "1.12.1",
4728 "@webassemblyjs/helper-wasm-bytecode": "1.11.6",
4729 "@webassemblyjs/ieee754": "1.11.6",
4730 "@webassemblyjs/leb128": "1.11.6",
4731 "@webassemblyjs/utf8": "1.11.6"
4732 }
4733 },
4734 "node_modules/@webassemblyjs/wasm-opt": {
4735 "version": "1.12.1",
4736 "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.12.1.tgz",
4737 "integrity": "sha512-Jg99j/2gG2iaz3hijw857AVYekZe2SAskcqlWIZXjji5WStnOpVoat3gQfT/Q5tb2djnCjBtMocY/Su1GfxPBg==",
4738 "dependencies": {
4739 "@webassemblyjs/ast": "1.12.1",
4740 "@webassemblyjs/helper-buffer": "1.12.1",
4741 "@webassemblyjs/wasm-gen": "1.12.1",
4742 "@webassemblyjs/wasm-parser": "1.12.1"
4743 }
4744 },
4745 "node_modules/@webassemblyjs/wasm-parser": {
4746 "version": "1.12.1",
4747 "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.12.1.tgz",
4748 "integrity": "sha512-xikIi7c2FHXysxXe3COrVUPSheuBtpcfhbpFj4gmu7KRLYOzANztwUU0IbsqvMqzuNK2+glRGWCEqZo1WCLyAQ==",
4749 "dependencies": {
4750 "@webassemblyjs/ast": "1.12.1",
4751 "@webassemblyjs/helper-api-error": "1.11.6",
4752 "@webassemblyjs/helper-wasm-bytecode": "1.11.6",
4753 "@webassemblyjs/ieee754": "1.11.6",
4754 "@webassemblyjs/leb128": "1.11.6",
4755 "@webassemblyjs/utf8": "1.11.6"
4756 }
4757 },
4758 "node_modules/@webassemblyjs/wast-printer": {
4759 "version": "1.12.1",
4760 "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.12.1.tgz",
4761 "integrity": "sha512-+X4WAlOisVWQMikjbcvY2e0rwPsKQ9F688lksZhBcPycBBuii3O7m8FACbDMWDojpAqvjIncrG8J0XHKyQfVeA==",
4762 "dependencies": {
4763 "@webassemblyjs/ast": "1.12.1",
4764 "@xtuc/long": "4.2.2"
4765 }
4766 },
4767 "node_modules/@xtuc/ieee754": {
4768 "version": "1.2.0",
4769 "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz",
4770 "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA=="
4771 },
4772 "node_modules/@xtuc/long": {
4773 "version": "4.2.2",
4774 "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz",
4775 "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ=="
4776 },
4777 "node_modules/abab": {
4778 "version": "2.0.6",
4779 "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz",
4780 "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==",
4781 "deprecated": "Use your platform's native atob() and btoa() methods instead"
4782 },
4783 "node_modules/accepts": {
4784 "version": "1.3.8",
4785 "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz",
4786 "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==",
4787 "dependencies": {
4788 "mime-types": "~2.1.34",
4789 "negotiator": "0.6.3"
4790 },
4791 "engines": {
4792 "node": ">= 0.6"
4793 }
4794 },
4795 "node_modules/acorn": {
4796 "version": "8.12.1",
4797 "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz",
4798 "integrity": "sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==",
4799 "bin": {
4800 "acorn": "bin/acorn"
4801 },
4802 "engines": {
4803 "node": ">=0.4.0"
4804 }
4805 },
4806 "node_modules/acorn-globals": {
4807 "version": "6.0.0",
4808 "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz",
4809 "integrity": "sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==",
4810 "dependencies": {
4811 "acorn": "^7.1.1",
4812 "acorn-walk": "^7.1.1"
4813 }
4814 },
4815 "node_modules/acorn-globals/node_modules/acorn": {
4816 "version": "7.4.1",
4817 "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz",
4818 "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==",
4819 "bin": {
4820 "acorn": "bin/acorn"
4821 },
4822 "engines": {
4823 "node": ">=0.4.0"
4824 }
4825 },
4826 "node_modules/acorn-import-attributes": {
4827 "version": "1.9.5",
4828 "resolved": "https://registry.npmjs.org/acorn-import-attributes/-/acorn-import-attributes-1.9.5.tgz",
4829 "integrity": "sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==",
4830 "peerDependencies": {
4831 "acorn": "^8"
4832 }
4833 },
4834 "node_modules/acorn-jsx": {
4835 "version": "5.3.2",
4836 "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz",
4837 "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==",
4838 "peerDependencies": {
4839 "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0"
4840 }
4841 },
4842 "node_modules/acorn-walk": {
4843 "version": "7.2.0",
4844 "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz",
4845 "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==",
4846 "engines": {
4847 "node": ">=0.4.0"
4848 }
4849 },
4850 "node_modules/address": {
4851 "version": "1.2.2",
4852 "resolved": "https://registry.npmjs.org/address/-/address-1.2.2.tgz",
4853 "integrity": "sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA==",
4854 "engines": {
4855 "node": ">= 10.0.0"
4856 }
4857 },
4858 "node_modules/adjust-sourcemap-loader": {
4859 "version": "4.0.0",
4860 "resolved": "https://registry.npmjs.org/adjust-sourcemap-loader/-/adjust-sourcemap-loader-4.0.0.tgz",
4861 "integrity": "sha512-OXwN5b9pCUXNQHJpwwD2qP40byEmSgzj8B4ydSN0uMNYWiFmJ6x6KwUllMmfk8Rwu/HJDFR7U8ubsWBoN0Xp0A==",
4862 "dependencies": {
4863 "loader-utils": "^2.0.0",
4864 "regex-parser": "^2.2.11"
4865 },
4866 "engines": {
4867 "node": ">=8.9"
4868 }
4869 }, 1619 },
4870 "node_modules/agent-base": { 1620 "node_modules/@vitejs/plugin-react": {
4871 "version": "6.0.2", 1621 "version": "5.0.0",
4872 "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", 1622 "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-5.0.0.tgz",
4873 "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", 1623 "integrity": "sha512-Jx9JfsTa05bYkS9xo0hkofp2dCmp1blrKjw9JONs5BTHOvJCgLbaPSuZLGSVJW6u2qe0tc4eevY0+gSNNi0YCw==",
1624 "license": "MIT",
4874 "dependencies": { 1625 "dependencies": {
4875 "debug": "4" 1626 "@babel/core": "^7.28.0",
1627 "@babel/plugin-transform-react-jsx-self": "^7.27.1",
1628 "@babel/plugin-transform-react-jsx-source": "^7.27.1",
1629 "@rolldown/pluginutils": "1.0.0-beta.30",
1630 "@types/babel__core": "^7.20.5",
1631 "react-refresh": "^0.17.0"
4876 }, 1632 },
4877 "engines": { 1633 "engines": {
4878 "node": ">= 6.0.0" 1634 "node": "^20.19.0 || >=22.12.0"
4879 }
4880 },
4881 "node_modules/ajv": {
4882 "version": "6.12.6",
4883 "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
4884 "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
4885 "dependencies": {
4886 "fast-deep-equal": "^3.1.1",
4887 "fast-json-stable-stringify": "^2.0.0",
4888 "json-schema-traverse": "^0.4.1",
4889 "uri-js": "^4.2.2"
4890 },
4891 "funding": {
4892 "type": "github",
4893 "url": "https://github.com/sponsors/epoberezkin"
4894 }
4895 },
4896 "node_modules/ajv-formats": {
4897 "version": "2.1.1",
4898 "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz",
4899 "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==",
4900 "dependencies": {
4901 "ajv": "^8.0.0"
4902 },
4903 "peerDependencies": {
4904 "ajv": "^8.0.0"
4905 },
4906 "peerDependenciesMeta": {
4907 "ajv": {
4908 "optional": true
4909 }
4910 }
4911 },
4912 "node_modules/ajv-formats/node_modules/ajv": {
4913 "version": "8.17.1",
4914 "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz",
4915 "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==",
4916 "dependencies": {
4917 "fast-deep-equal": "^3.1.3",
4918 "fast-uri": "^3.0.1",
4919 "json-schema-traverse": "^1.0.0",
4920 "require-from-string": "^2.0.2"
4921 }, 1635 },
4922 "funding": {
4923 "type": "github",
4924 "url": "https://github.com/sponsors/epoberezkin"
4925 }
4926 },
4927 "node_modules/ajv-formats/node_modules/json-schema-traverse": {
4928 "version": "1.0.0",
4929 "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
4930 "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug=="
4931 },
4932 "node_modules/ajv-keywords": {
4933 "version": "3.5.2",
4934 "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz",
4935 "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==",
4936 "peerDependencies": { 1636 "peerDependencies": {
4937 "ajv": "^6.9.1" 1637 "vite": "^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0"
4938 }
4939 },
4940 "node_modules/ansi-escapes": {
4941 "version": "4.3.2",
4942 "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz",
4943 "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==",
4944 "dependencies": {
4945 "type-fest": "^0.21.3"
4946 },
4947 "engines": {
4948 "node": ">=8"
4949 },
4950 "funding": {
4951 "url": "https://github.com/sponsors/sindresorhus"
4952 }
4953 },
4954 "node_modules/ansi-html": {
4955 "version": "0.0.9",
4956 "resolved": "https://registry.npmjs.org/ansi-html/-/ansi-html-0.0.9.tgz",
4957 "integrity": "sha512-ozbS3LuenHVxNRh/wdnN16QapUHzauqSomAl1jwwJRRsGwFwtj644lIhxfWu0Fy0acCij2+AEgHvjscq3dlVXg==",
4958 "engines": [
4959 "node >= 0.8.0"
4960 ],
4961 "bin": {
4962 "ansi-html": "bin/ansi-html"
4963 }
4964 },
4965 "node_modules/ansi-html-community": {
4966 "version": "0.0.8",
4967 "resolved": "https://registry.npmjs.org/ansi-html-community/-/ansi-html-community-0.0.8.tgz",
4968 "integrity": "sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==",
4969 "engines": [
4970 "node >= 0.8.0"
4971 ],
4972 "bin": {
4973 "ansi-html": "bin/ansi-html"
4974 } 1638 }
4975 }, 1639 },
4976 "node_modules/ansi-regex": { 1640 "node_modules/ansi-regex": {
4977 "version": "5.0.1", 1641 "version": "5.0.1",
4978 "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", 1642 "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
4979 "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", 1643 "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
1644 "license": "MIT",
4980 "engines": { 1645 "engines": {
4981 "node": ">=8" 1646 "node": ">=8"
4982 } 1647 }
4983 }, 1648 },
4984 "node_modules/ansi-styles": { 1649 "node_modules/ansi-styles": {
4985 "version": "3.2.1", 1650 "version": "4.3.0",
4986 "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", 1651 "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
4987 "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", 1652 "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
4988 "dependencies": { 1653 "license": "MIT",
4989 "color-convert": "^1.9.0"
4990 },
4991 "engines": {
4992 "node": ">=4"
4993 }
4994 },
4995 "node_modules/any-promise": {
4996 "version": "1.3.0",
4997 "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz",
4998 "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A=="
4999 },
5000 "node_modules/anymatch": {
5001 "version": "3.1.3",
5002 "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
5003 "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
5004 "dependencies": {
5005 "normalize-path": "^3.0.0",
5006 "picomatch": "^2.0.4"
5007 },
5008 "engines": {
5009 "node": ">= 8"
5010 }
5011 },
5012 "node_modules/arg": {
5013 "version": "5.0.2",
5014 "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz",
5015 "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg=="
5016 },
5017 "node_modules/argparse": {
5018 "version": "1.0.10",
5019 "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
5020 "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
5021 "dependencies": {
5022 "sprintf-js": "~1.0.2"
5023 }
5024 },
5025 "node_modules/aria-query": {
5026 "version": "5.1.3",
5027 "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.1.3.tgz",
5028 "integrity": "sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==",
5029 "dependencies": {
5030 "deep-equal": "^2.0.5"
5031 }
5032 },
5033 "node_modules/array-buffer-byte-length": {
5034 "version": "1.0.1",
5035 "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz",
5036 "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==",
5037 "dependencies": {
5038 "call-bind": "^1.0.5",
5039 "is-array-buffer": "^3.0.4"
5040 },
5041 "engines": {
5042 "node": ">= 0.4"
5043 },
5044 "funding": {
5045 "url": "https://github.com/sponsors/ljharb"
5046 }
5047 },
5048 "node_modules/array-flatten": {
5049 "version": "1.1.1",
5050 "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
5051 "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg=="
5052 },
5053 "node_modules/array-includes": {
5054 "version": "3.1.8",
5055 "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.8.tgz",
5056 "integrity": "sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==",
5057 "dependencies": { 1654 "dependencies": {
5058 "call-bind": "^1.0.7", 1655 "color-convert": "^2.0.1"
5059 "define-properties": "^1.2.1",
5060 "es-abstract": "^1.23.2",
5061 "es-object-atoms": "^1.0.0",
5062 "get-intrinsic": "^1.2.4",
5063 "is-string": "^1.0.7"
5064 }, 1656 },
5065 "engines": { 1657 "engines": {
5066 "node": ">= 0.4"
5067 },
5068 "funding": {
5069 "url": "https://github.com/sponsors/ljharb"
5070 }
5071 },
5072 "node_modules/array-union": {
5073 "version": "2.1.0",
5074 "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz",
5075 "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==",
5076 "engines": {
5077 "node": ">=8" 1658 "node": ">=8"
5078 }
5079 },
5080 "node_modules/array.prototype.findlast": {
5081 "version": "1.2.5",
5082 "resolved": "https://registry.npmjs.org/array.prototype.findlast/-/array.prototype.findlast-1.2.5.tgz",
5083 "integrity": "sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==",
5084 "dependencies": {
5085 "call-bind": "^1.0.7",
5086 "define-properties": "^1.2.1",
5087 "es-abstract": "^1.23.2",
5088 "es-errors": "^1.3.0",
5089 "es-object-atoms": "^1.0.0",
5090 "es-shim-unscopables": "^1.0.2"
5091 },
5092 "engines": {
5093 "node": ">= 0.4"
5094 },
5095 "funding": {
5096 "url": "https://github.com/sponsors/ljharb"
5097 }
5098 },
5099 "node_modules/array.prototype.findlastindex": {
5100 "version": "1.2.5",
5101 "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.5.tgz",
5102 "integrity": "sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==",
5103 "dependencies": {
5104 "call-bind": "^1.0.7",
5105 "define-properties": "^1.2.1",
5106 "es-abstract": "^1.23.2",
5107 "es-errors": "^1.3.0",
5108 "es-object-atoms": "^1.0.0",
5109 "es-shim-unscopables": "^1.0.2"
5110 },
5111 "engines": {
5112 "node": ">= 0.4"
5113 },
5114 "funding": {
5115 "url": "https://github.com/sponsors/ljharb"
5116 }
5117 },
5118 "node_modules/array.prototype.flat": {
5119 "version": "1.3.2",
5120 "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz",
5121 "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==",
5122 "dependencies": {
5123 "call-bind": "^1.0.2",
5124 "define-properties": "^1.2.0",
5125 "es-abstract": "^1.22.1",
5126 "es-shim-unscopables": "^1.0.0"
5127 },
5128 "engines": {
5129 "node": ">= 0.4"
5130 },
5131 "funding": {
5132 "url": "https://github.com/sponsors/ljharb"
5133 }
5134 },
5135 "node_modules/array.prototype.flatmap": {
5136 "version": "1.3.2",
5137 "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz",
5138 "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==",
5139 "dependencies": {
5140 "call-bind": "^1.0.2",
5141 "define-properties": "^1.2.0",
5142 "es-abstract": "^1.22.1",
5143 "es-shim-unscopables": "^1.0.0"
5144 },
5145 "engines": {
5146 "node": ">= 0.4"
5147 }, 1659 },
5148 "funding": { 1660 "funding": {
5149 "url": "https://github.com/sponsors/ljharb" 1661 "url": "https://github.com/chalk/ansi-styles?sponsor=1"
5150 }
5151 },
5152 "node_modules/array.prototype.reduce": {
5153 "version": "1.0.7",
5154 "resolved": "https://registry.npmjs.org/array.prototype.reduce/-/array.prototype.reduce-1.0.7.tgz",
5155 "integrity": "sha512-mzmiUCVwtiD4lgxYP8g7IYy8El8p2CSMePvIbTS7gchKir/L1fgJrk0yDKmAX6mnRQFKNADYIk8nNlTris5H1Q==",
5156 "dependencies": {
5157 "call-bind": "^1.0.7",
5158 "define-properties": "^1.2.1",
5159 "es-abstract": "^1.23.2",
5160 "es-array-method-boxes-properly": "^1.0.0",
5161 "es-errors": "^1.3.0",
5162 "es-object-atoms": "^1.0.0",
5163 "is-string": "^1.0.7"
5164 },
5165 "engines": {
5166 "node": ">= 0.4"
5167 },
5168 "funding": {
5169 "url": "https://github.com/sponsors/ljharb"
5170 } 1662 }
5171 }, 1663 },
5172 "node_modules/array.prototype.tosorted": { 1664 "node_modules/aria-query": {
5173 "version": "1.1.4", 1665 "version": "5.3.0",
5174 "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.4.tgz", 1666 "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.0.tgz",
5175 "integrity": "sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==", 1667 "integrity": "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==",
1668 "license": "Apache-2.0",
5176 "dependencies": { 1669 "dependencies": {
5177 "call-bind": "^1.0.7", 1670 "dequal": "^2.0.3"
5178 "define-properties": "^1.2.1",
5179 "es-abstract": "^1.23.3",
5180 "es-errors": "^1.3.0",
5181 "es-shim-unscopables": "^1.0.2"
5182 },
5183 "engines": {
5184 "node": ">= 0.4"
5185 } 1671 }
5186 }, 1672 },
5187 "node_modules/arraybuffer.prototype.slice": { 1673 "node_modules/array-buffer-byte-length": {
5188 "version": "1.0.3", 1674 "version": "1.0.2",
5189 "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz", 1675 "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.2.tgz",
5190 "integrity": "sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==", 1676 "integrity": "sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==",
1677 "license": "MIT",
5191 "dependencies": { 1678 "dependencies": {
5192 "array-buffer-byte-length": "^1.0.1", 1679 "call-bound": "^1.0.3",
5193 "call-bind": "^1.0.5", 1680 "is-array-buffer": "^3.0.5"
5194 "define-properties": "^1.2.1",
5195 "es-abstract": "^1.22.3",
5196 "es-errors": "^1.2.1",
5197 "get-intrinsic": "^1.2.3",
5198 "is-array-buffer": "^3.0.4",
5199 "is-shared-array-buffer": "^1.0.2"
5200 }, 1681 },
5201 "engines": { 1682 "engines": {
5202 "node": ">= 0.4" 1683 "node": ">= 0.4"
@@ -5205,74 +1686,17 @@
5205 "url": "https://github.com/sponsors/ljharb" 1686 "url": "https://github.com/sponsors/ljharb"
5206 } 1687 }
5207 }, 1688 },
5208 "node_modules/asap": {
5209 "version": "2.0.6",
5210 "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz",
5211 "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA=="
5212 },
5213 "node_modules/ast-types-flow": {
5214 "version": "0.0.8",
5215 "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.8.tgz",
5216 "integrity": "sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ=="
5217 },
5218 "node_modules/async": {
5219 "version": "3.2.6",
5220 "resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz",
5221 "integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA=="
5222 },
5223 "node_modules/asynckit": { 1689 "node_modules/asynckit": {
5224 "version": "0.4.0", 1690 "version": "0.4.0",
5225 "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", 1691 "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
5226 "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" 1692 "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==",
5227 }, 1693 "license": "MIT"
5228 "node_modules/at-least-node": {
5229 "version": "1.0.0",
5230 "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz",
5231 "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==",
5232 "engines": {
5233 "node": ">= 4.0.0"
5234 }
5235 },
5236 "node_modules/autoprefixer": {
5237 "version": "10.4.20",
5238 "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.20.tgz",
5239 "integrity": "sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6+c7wUvx/16g==",
5240 "funding": [
5241 {
5242 "type": "opencollective",
5243 "url": "https://opencollective.com/postcss/"
5244 },
5245 {
5246 "type": "tidelift",
5247 "url": "https://tidelift.com/funding/github/npm/autoprefixer"
5248 },
5249 {
5250 "type": "github",
5251 "url": "https://github.com/sponsors/ai"
5252 }
5253 ],
5254 "dependencies": {
5255 "browserslist": "^4.23.3",
5256 "caniuse-lite": "^1.0.30001646",
5257 "fraction.js": "^4.3.7",
5258 "normalize-range": "^0.1.2",
5259 "picocolors": "^1.0.1",
5260 "postcss-value-parser": "^4.2.0"
5261 },
5262 "bin": {
5263 "autoprefixer": "bin/autoprefixer"
5264 },
5265 "engines": {
5266 "node": "^10 || ^12 || >=14"
5267 },
5268 "peerDependencies": {
5269 "postcss": "^8.1.0"
5270 }
5271 }, 1694 },
5272 "node_modules/available-typed-arrays": { 1695 "node_modules/available-typed-arrays": {
5273 "version": "1.0.7", 1696 "version": "1.0.7",
5274 "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", 1697 "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz",
5275 "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", 1698 "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==",
1699 "license": "MIT",
5276 "dependencies": { 1700 "dependencies": {
5277 "possible-typed-array-names": "^1.0.0" 1701 "possible-typed-array-names": "^1.0.0"
5278 }, 1702 },
@@ -5283,484 +1707,31 @@
5283 "url": "https://github.com/sponsors/ljharb" 1707 "url": "https://github.com/sponsors/ljharb"
5284 } 1708 }
5285 }, 1709 },
5286 "node_modules/axe-core": {
5287 "version": "4.10.0",
5288 "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.10.0.tgz",
5289 "integrity": "sha512-Mr2ZakwQ7XUAjp7pAwQWRhhK8mQQ6JAaNWSjmjxil0R8BPioMtQsTLOolGYkji1rcL++3dCqZA3zWqpT+9Ew6g==",
5290 "engines": {
5291 "node": ">=4"
5292 }
5293 },
5294 "node_modules/axios": { 1710 "node_modules/axios": {
5295 "version": "1.7.4", 1711 "version": "1.11.0",
5296 "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.4.tgz", 1712 "resolved": "https://registry.npmjs.org/axios/-/axios-1.11.0.tgz",
5297 "integrity": "sha512-DukmaFRnY6AzAALSH4J2M3k6PkaC+MfaAGdEERRWcC9q3/TWQwLpHR8ZRLKTdQ3aBDL64EdluRDjJqKw+BPZEw==", 1713 "integrity": "sha512-1Lx3WLFQWm3ooKDYZD1eXmoGO9fxYQjrycfHFC8P0sCfQVXyROp0p9PFWBehewBOdCwHc+f/b8I0fMto5eSfwA==",
1714 "license": "MIT",
5298 "dependencies": { 1715 "dependencies": {
5299 "follow-redirects": "^1.15.6", 1716 "follow-redirects": "^1.15.6",
5300 "form-data": "^4.0.0", 1717 "form-data": "^4.0.4",
5301 "proxy-from-env": "^1.1.0" 1718 "proxy-from-env": "^1.1.0"
5302 } 1719 }
5303 }, 1720 },
5304 "node_modules/axios/node_modules/form-data": {
5305 "version": "4.0.0",
5306 "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz",
5307 "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==",
5308 "dependencies": {
5309 "asynckit": "^0.4.0",
5310 "combined-stream": "^1.0.8",
5311 "mime-types": "^2.1.12"
5312 },
5313 "engines": {
5314 "node": ">= 6"
5315 }
5316 },
5317 "node_modules/axobject-query": {
5318 "version": "3.1.1",
5319 "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-3.1.1.tgz",
5320 "integrity": "sha512-goKlv8DZrK9hUh975fnHzhNIO4jUnFCfv/dszV5VwUGDFjI6vQ2VwoyjYjYNEbBE8AH87TduWP5uyDR1D+Iteg==",
5321 "dependencies": {
5322 "deep-equal": "^2.0.5"
5323 }
5324 },
5325 "node_modules/babel-jest": {
5326 "version": "27.5.1",
5327 "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-27.5.1.tgz",
5328 "integrity": "sha512-cdQ5dXjGRd0IBRATiQ4mZGlGlRE8kJpjPOixdNRdT+m3UcNqmYWN6rK6nvtXYfY3D76cb8s/O1Ss8ea24PIwcg==",
5329 "dependencies": {
5330 "@jest/transform": "^27.5.1",
5331 "@jest/types": "^27.5.1",
5332 "@types/babel__core": "^7.1.14",
5333 "babel-plugin-istanbul": "^6.1.1",
5334 "babel-preset-jest": "^27.5.1",
5335 "chalk": "^4.0.0",
5336 "graceful-fs": "^4.2.9",
5337 "slash": "^3.0.0"
5338 },
5339 "engines": {
5340 "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
5341 },
5342 "peerDependencies": {
5343 "@babel/core": "^7.8.0"
5344 }
5345 },
5346 "node_modules/babel-jest/node_modules/ansi-styles": {
5347 "version": "4.3.0",
5348 "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
5349 "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
5350 "dependencies": {
5351 "color-convert": "^2.0.1"
5352 },
5353 "engines": {
5354 "node": ">=8"
5355 },
5356 "funding": {
5357 "url": "https://github.com/chalk/ansi-styles?sponsor=1"
5358 }
5359 },
5360 "node_modules/babel-jest/node_modules/chalk": {
5361 "version": "4.1.2",
5362 "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
5363 "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
5364 "dependencies": {
5365 "ansi-styles": "^4.1.0",
5366 "supports-color": "^7.1.0"
5367 },
5368 "engines": {
5369 "node": ">=10"
5370 },
5371 "funding": {
5372 "url": "https://github.com/chalk/chalk?sponsor=1"
5373 }
5374 },
5375 "node_modules/babel-jest/node_modules/color-convert": {
5376 "version": "2.0.1",
5377 "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
5378 "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
5379 "dependencies": {
5380 "color-name": "~1.1.4"
5381 },
5382 "engines": {
5383 "node": ">=7.0.0"
5384 }
5385 },
5386 "node_modules/babel-jest/node_modules/color-name": {
5387 "version": "1.1.4",
5388 "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
5389 "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
5390 },
5391 "node_modules/babel-jest/node_modules/has-flag": {
5392 "version": "4.0.0",
5393 "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
5394 "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
5395 "engines": {
5396 "node": ">=8"
5397 }
5398 },
5399 "node_modules/babel-jest/node_modules/supports-color": {
5400 "version": "7.2.0",
5401 "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
5402 "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
5403 "dependencies": {
5404 "has-flag": "^4.0.0"
5405 },
5406 "engines": {
5407 "node": ">=8"
5408 }
5409 },
5410 "node_modules/babel-loader": {
5411 "version": "8.3.0",
5412 "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.3.0.tgz",
5413 "integrity": "sha512-H8SvsMF+m9t15HNLMipppzkC+Y2Yq+v3SonZyU70RBL/h1gxPkH08Ot8pEE9Z4Kd+czyWJClmFS8qzIP9OZ04Q==",
5414 "dependencies": {
5415 "find-cache-dir": "^3.3.1",
5416 "loader-utils": "^2.0.0",
5417 "make-dir": "^3.1.0",
5418 "schema-utils": "^2.6.5"
5419 },
5420 "engines": {
5421 "node": ">= 8.9"
5422 },
5423 "peerDependencies": {
5424 "@babel/core": "^7.0.0",
5425 "webpack": ">=2"
5426 }
5427 },
5428 "node_modules/babel-loader/node_modules/schema-utils": {
5429 "version": "2.7.1",
5430 "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz",
5431 "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==",
5432 "dependencies": {
5433 "@types/json-schema": "^7.0.5",
5434 "ajv": "^6.12.4",
5435 "ajv-keywords": "^3.5.2"
5436 },
5437 "engines": {
5438 "node": ">= 8.9.0"
5439 },
5440 "funding": {
5441 "type": "opencollective",
5442 "url": "https://opencollective.com/webpack"
5443 }
5444 },
5445 "node_modules/babel-plugin-istanbul": {
5446 "version": "6.1.1",
5447 "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz",
5448 "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==",
5449 "dependencies": {
5450 "@babel/helper-plugin-utils": "^7.0.0",
5451 "@istanbuljs/load-nyc-config": "^1.0.0",
5452 "@istanbuljs/schema": "^0.1.2",
5453 "istanbul-lib-instrument": "^5.0.4",
5454 "test-exclude": "^6.0.0"
5455 },
5456 "engines": {
5457 "node": ">=8"
5458 }
5459 },
5460 "node_modules/babel-plugin-jest-hoist": {
5461 "version": "27.5.1",
5462 "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-27.5.1.tgz",
5463 "integrity": "sha512-50wCwD5EMNW4aRpOwtqzyZHIewTYNxLA4nhB+09d8BIssfNfzBRhkBIHiaPv1Si226TQSvp8gxAJm2iY2qs2hQ==",
5464 "dependencies": {
5465 "@babel/template": "^7.3.3",
5466 "@babel/types": "^7.3.3",
5467 "@types/babel__core": "^7.0.0",
5468 "@types/babel__traverse": "^7.0.6"
5469 },
5470 "engines": {
5471 "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
5472 }
5473 },
5474 "node_modules/babel-plugin-macros": {
5475 "version": "3.1.0",
5476 "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz",
5477 "integrity": "sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==",
5478 "dependencies": {
5479 "@babel/runtime": "^7.12.5",
5480 "cosmiconfig": "^7.0.0",
5481 "resolve": "^1.19.0"
5482 },
5483 "engines": {
5484 "node": ">=10",
5485 "npm": ">=6"
5486 }
5487 },
5488 "node_modules/babel-plugin-named-asset-import": {
5489 "version": "0.3.8",
5490 "resolved": "https://registry.npmjs.org/babel-plugin-named-asset-import/-/babel-plugin-named-asset-import-0.3.8.tgz",
5491 "integrity": "sha512-WXiAc++qo7XcJ1ZnTYGtLxmBCVbddAml3CEXgWaBzNzLNoxtQ8AiGEFDMOhot9XjTCQbvP5E77Fj9Gk924f00Q==",
5492 "peerDependencies": {
5493 "@babel/core": "^7.1.0"
5494 }
5495 },
5496 "node_modules/babel-plugin-polyfill-corejs2": {
5497 "version": "0.4.11",
5498 "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.11.tgz",
5499 "integrity": "sha512-sMEJ27L0gRHShOh5G54uAAPaiCOygY/5ratXuiyb2G46FmlSpc9eFCzYVyDiPxfNbwzA7mYahmjQc5q+CZQ09Q==",
5500 "dependencies": {
5501 "@babel/compat-data": "^7.22.6",
5502 "@babel/helper-define-polyfill-provider": "^0.6.2",
5503 "semver": "^6.3.1"
5504 },
5505 "peerDependencies": {
5506 "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0"
5507 }
5508 },
5509 "node_modules/babel-plugin-polyfill-corejs2/node_modules/semver": {
5510 "version": "6.3.1",
5511 "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
5512 "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
5513 "bin": {
5514 "semver": "bin/semver.js"
5515 }
5516 },
5517 "node_modules/babel-plugin-polyfill-corejs3": {
5518 "version": "0.10.6",
5519 "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.10.6.tgz",
5520 "integrity": "sha512-b37+KR2i/khY5sKmWNVQAnitvquQbNdWy6lJdsr0kmquCKEEUgMKK4SboVM3HtfnZilfjr4MMQ7vY58FVWDtIA==",
5521 "dependencies": {
5522 "@babel/helper-define-polyfill-provider": "^0.6.2",
5523 "core-js-compat": "^3.38.0"
5524 },
5525 "peerDependencies": {
5526 "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0"
5527 }
5528 },
5529 "node_modules/babel-plugin-polyfill-regenerator": {
5530 "version": "0.6.2",
5531 "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.2.tgz",
5532 "integrity": "sha512-2R25rQZWP63nGwaAswvDazbPXfrM3HwVoBXK6HcqeKrSrL/JqcC/rDcf95l4r7LXLyxDXc8uQDa064GubtCABg==",
5533 "dependencies": {
5534 "@babel/helper-define-polyfill-provider": "^0.6.2"
5535 },
5536 "peerDependencies": {
5537 "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0"
5538 }
5539 },
5540 "node_modules/babel-plugin-transform-react-remove-prop-types": {
5541 "version": "0.4.24",
5542 "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-remove-prop-types/-/babel-plugin-transform-react-remove-prop-types-0.4.24.tgz",
5543 "integrity": "sha512-eqj0hVcJUR57/Ug2zE1Yswsw4LhuqqHhD+8v120T1cl3kjg76QwtyBrdIk4WVwK+lAhBJVYCd/v+4nc4y+8JsA=="
5544 },
5545 "node_modules/babel-preset-current-node-syntax": {
5546 "version": "1.1.0",
5547 "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.1.0.tgz",
5548 "integrity": "sha512-ldYss8SbBlWva1bs28q78Ju5Zq1F+8BrqBZZ0VFhLBvhh6lCpC2o3gDJi/5DRLs9FgYZCnmPYIVFU4lRXCkyUw==",
5549 "dependencies": {
5550 "@babel/plugin-syntax-async-generators": "^7.8.4",
5551 "@babel/plugin-syntax-bigint": "^7.8.3",
5552 "@babel/plugin-syntax-class-properties": "^7.12.13",
5553 "@babel/plugin-syntax-class-static-block": "^7.14.5",
5554 "@babel/plugin-syntax-import-attributes": "^7.24.7",
5555 "@babel/plugin-syntax-import-meta": "^7.10.4",
5556 "@babel/plugin-syntax-json-strings": "^7.8.3",
5557 "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4",
5558 "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3",
5559 "@babel/plugin-syntax-numeric-separator": "^7.10.4",
5560 "@babel/plugin-syntax-object-rest-spread": "^7.8.3",
5561 "@babel/plugin-syntax-optional-catch-binding": "^7.8.3",
5562 "@babel/plugin-syntax-optional-chaining": "^7.8.3",
5563 "@babel/plugin-syntax-private-property-in-object": "^7.14.5",
5564 "@babel/plugin-syntax-top-level-await": "^7.14.5"
5565 },
5566 "peerDependencies": {
5567 "@babel/core": "^7.0.0"
5568 }
5569 },
5570 "node_modules/babel-preset-jest": {
5571 "version": "27.5.1",
5572 "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-27.5.1.tgz",
5573 "integrity": "sha512-Nptf2FzlPCWYuJg41HBqXVT8ym6bXOevuCTbhxlUpjwtysGaIWFvDEjp4y+G7fl13FgOdjs7P/DmErqH7da0Ag==",
5574 "dependencies": {
5575 "babel-plugin-jest-hoist": "^27.5.1",
5576 "babel-preset-current-node-syntax": "^1.0.0"
5577 },
5578 "engines": {
5579 "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
5580 },
5581 "peerDependencies": {
5582 "@babel/core": "^7.0.0"
5583 }
5584 },
5585 "node_modules/babel-preset-react-app": {
5586 "version": "10.0.1",
5587 "resolved": "https://registry.npmjs.org/babel-preset-react-app/-/babel-preset-react-app-10.0.1.tgz",
5588 "integrity": "sha512-b0D9IZ1WhhCWkrTXyFuIIgqGzSkRIH5D5AmB0bXbzYAB1OBAwHcUeyWW2LorutLWF5btNo/N7r/cIdmvvKJlYg==",
5589 "dependencies": {
5590 "@babel/core": "^7.16.0",
5591 "@babel/plugin-proposal-class-properties": "^7.16.0",
5592 "@babel/plugin-proposal-decorators": "^7.16.4",
5593 "@babel/plugin-proposal-nullish-coalescing-operator": "^7.16.0",
5594 "@babel/plugin-proposal-numeric-separator": "^7.16.0",
5595 "@babel/plugin-proposal-optional-chaining": "^7.16.0",
5596 "@babel/plugin-proposal-private-methods": "^7.16.0",
5597 "@babel/plugin-transform-flow-strip-types": "^7.16.0",
5598 "@babel/plugin-transform-react-display-name": "^7.16.0",
5599 "@babel/plugin-transform-runtime": "^7.16.4",
5600 "@babel/preset-env": "^7.16.4",
5601 "@babel/preset-react": "^7.16.0",
5602 "@babel/preset-typescript": "^7.16.0",
5603 "@babel/runtime": "^7.16.3",
5604 "babel-plugin-macros": "^3.1.0",
5605 "babel-plugin-transform-react-remove-prop-types": "^0.4.24"
5606 }
5607 },
5608 "node_modules/bail": { 1721 "node_modules/bail": {
5609 "version": "2.0.2", 1722 "version": "2.0.2",
5610 "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.2.tgz", 1723 "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.2.tgz",
5611 "integrity": "sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==", 1724 "integrity": "sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==",
1725 "license": "MIT",
5612 "funding": { 1726 "funding": {
5613 "type": "github", 1727 "type": "github",
5614 "url": "https://github.com/sponsors/wooorm" 1728 "url": "https://github.com/sponsors/wooorm"
5615 } 1729 }
5616 }, 1730 },
5617 "node_modules/balanced-match": {
5618 "version": "1.0.2",
5619 "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
5620 "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="
5621 },
5622 "node_modules/batch": {
5623 "version": "0.6.1",
5624 "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz",
5625 "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw=="
5626 },
5627 "node_modules/bfj": {
5628 "version": "7.1.0",
5629 "resolved": "https://registry.npmjs.org/bfj/-/bfj-7.1.0.tgz",
5630 "integrity": "sha512-I6MMLkn+anzNdCUp9hMRyui1HaNEUCco50lxbvNS4+EyXg8lN3nJ48PjPWtbH8UVS9CuMoaKE9U2V3l29DaRQw==",
5631 "dependencies": {
5632 "bluebird": "^3.7.2",
5633 "check-types": "^11.2.3",
5634 "hoopy": "^0.1.4",
5635 "jsonpath": "^1.1.1",
5636 "tryer": "^1.0.1"
5637 },
5638 "engines": {
5639 "node": ">= 8.0.0"
5640 }
5641 },
5642 "node_modules/big.js": {
5643 "version": "5.2.2",
5644 "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz",
5645 "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==",
5646 "engines": {
5647 "node": "*"
5648 }
5649 },
5650 "node_modules/binary-extensions": {
5651 "version": "2.3.0",
5652 "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz",
5653 "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==",
5654 "engines": {
5655 "node": ">=8"
5656 },
5657 "funding": {
5658 "url": "https://github.com/sponsors/sindresorhus"
5659 }
5660 },
5661 "node_modules/bluebird": {
5662 "version": "3.7.2",
5663 "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz",
5664 "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg=="
5665 },
5666 "node_modules/body-parser": {
5667 "version": "1.20.2",
5668 "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz",
5669 "integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==",
5670 "dependencies": {
5671 "bytes": "3.1.2",
5672 "content-type": "~1.0.5",
5673 "debug": "2.6.9",
5674 "depd": "2.0.0",
5675 "destroy": "1.2.0",
5676 "http-errors": "2.0.0",
5677 "iconv-lite": "0.4.24",
5678 "on-finished": "2.4.1",
5679 "qs": "6.11.0",
5680 "raw-body": "2.5.2",
5681 "type-is": "~1.6.18",
5682 "unpipe": "1.0.0"
5683 },
5684 "engines": {
5685 "node": ">= 0.8",
5686 "npm": "1.2.8000 || >= 1.4.16"
5687 }
5688 },
5689 "node_modules/body-parser/node_modules/bytes": {
5690 "version": "3.1.2",
5691 "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz",
5692 "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==",
5693 "engines": {
5694 "node": ">= 0.8"
5695 }
5696 },
5697 "node_modules/body-parser/node_modules/debug": {
5698 "version": "2.6.9",
5699 "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
5700 "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
5701 "dependencies": {
5702 "ms": "2.0.0"
5703 }
5704 },
5705 "node_modules/body-parser/node_modules/iconv-lite": {
5706 "version": "0.4.24",
5707 "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
5708 "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
5709 "dependencies": {
5710 "safer-buffer": ">= 2.1.2 < 3"
5711 },
5712 "engines": {
5713 "node": ">=0.10.0"
5714 }
5715 },
5716 "node_modules/body-parser/node_modules/ms": {
5717 "version": "2.0.0",
5718 "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
5719 "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
5720 },
5721 "node_modules/bonjour-service": {
5722 "version": "1.2.1",
5723 "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.2.1.tgz",
5724 "integrity": "sha512-oSzCS2zV14bh2kji6vNe7vrpJYCHGvcZnlffFQ1MEoX/WOeQ/teD8SYWKR942OI3INjq8OMNJlbPK5LLLUxFDw==",
5725 "dependencies": {
5726 "fast-deep-equal": "^3.1.3",
5727 "multicast-dns": "^7.2.5"
5728 }
5729 },
5730 "node_modules/boolbase": {
5731 "version": "1.0.0",
5732 "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz",
5733 "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww=="
5734 },
5735 "node_modules/brace-expansion": {
5736 "version": "1.1.11",
5737 "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
5738 "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
5739 "dependencies": {
5740 "balanced-match": "^1.0.0",
5741 "concat-map": "0.0.1"
5742 }
5743 },
5744 "node_modules/braces": {
5745 "version": "3.0.3",
5746 "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz",
5747 "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==",
5748 "dependencies": {
5749 "fill-range": "^7.1.1"
5750 },
5751 "engines": {
5752 "node": ">=8"
5753 }
5754 },
5755 "node_modules/browser-process-hrtime": {
5756 "version": "1.0.0",
5757 "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz",
5758 "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow=="
5759 },
5760 "node_modules/browserslist": { 1731 "node_modules/browserslist": {
5761 "version": "4.23.3", 1732 "version": "4.25.1",
5762 "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.3.tgz", 1733 "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.25.1.tgz",
5763 "integrity": "sha512-btwCFJVjI4YWDNfau8RhZ+B1Q/VLoUITrm3RlP6y1tYGWIOa+InuYiRGXUBXo8nA1qKmHMyLB/iVQg5TT4eFoA==", 1734 "integrity": "sha512-KGj0KoOMXLpSNkkEI6Z6mShmQy0bc1I+T7K9N81k4WWMrfz+6fQ6es80B/YLAeRoKvjYE1YSHHOW1qe9xIVzHw==",
5764 "funding": [ 1735 "funding": [
5765 { 1736 {
5766 "type": "opencollective", 1737 "type": "opencollective",
@@ -5775,11 +1746,12 @@
5775 "url": "https://github.com/sponsors/ai" 1746 "url": "https://github.com/sponsors/ai"
5776 } 1747 }
5777 ], 1748 ],
1749 "license": "MIT",
5778 "dependencies": { 1750 "dependencies": {
5779 "caniuse-lite": "^1.0.30001646", 1751 "caniuse-lite": "^1.0.30001726",
5780 "electron-to-chromium": "^1.5.4", 1752 "electron-to-chromium": "^1.5.173",
5781 "node-releases": "^2.0.18", 1753 "node-releases": "^2.0.19",
5782 "update-browserslist-db": "^1.1.0" 1754 "update-browserslist-db": "^1.1.3"
5783 }, 1755 },
5784 "bin": { 1756 "bin": {
5785 "browserslist": "cli.js" 1757 "browserslist": "cli.js"
@@ -5788,48 +1760,16 @@
5788 "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" 1760 "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
5789 } 1761 }
5790 }, 1762 },
5791 "node_modules/bser": {
5792 "version": "2.1.1",
5793 "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz",
5794 "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==",
5795 "dependencies": {
5796 "node-int64": "^0.4.0"
5797 }
5798 },
5799 "node_modules/buffer-from": {
5800 "version": "1.1.2",
5801 "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz",
5802 "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ=="
5803 },
5804 "node_modules/builtin-modules": {
5805 "version": "3.3.0",
5806 "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz",
5807 "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==",
5808 "engines": {
5809 "node": ">=6"
5810 },
5811 "funding": {
5812 "url": "https://github.com/sponsors/sindresorhus"
5813 }
5814 },
5815 "node_modules/bytes": {
5816 "version": "3.0.0",
5817 "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz",
5818 "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==",
5819 "engines": {
5820 "node": ">= 0.8"
5821 }
5822 },
5823 "node_modules/call-bind": { 1763 "node_modules/call-bind": {
5824 "version": "1.0.7", 1764 "version": "1.0.8",
5825 "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", 1765 "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz",
5826 "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", 1766 "integrity": "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==",
1767 "license": "MIT",
5827 "dependencies": { 1768 "dependencies": {
1769 "call-bind-apply-helpers": "^1.0.0",
5828 "es-define-property": "^1.0.0", 1770 "es-define-property": "^1.0.0",
5829 "es-errors": "^1.3.0",
5830 "function-bind": "^1.1.2",
5831 "get-intrinsic": "^1.2.4", 1771 "get-intrinsic": "^1.2.4",
5832 "set-function-length": "^1.2.1" 1772 "set-function-length": "^1.2.2"
5833 }, 1773 },
5834 "engines": { 1774 "engines": {
5835 "node": ">= 0.4" 1775 "node": ">= 0.4"
@@ -5838,57 +1778,39 @@
5838 "url": "https://github.com/sponsors/ljharb" 1778 "url": "https://github.com/sponsors/ljharb"
5839 } 1779 }
5840 }, 1780 },
5841 "node_modules/callsites": { 1781 "node_modules/call-bind-apply-helpers": {
5842 "version": "3.1.0", 1782 "version": "1.0.1",
5843 "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", 1783 "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.1.tgz",
5844 "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", 1784 "integrity": "sha512-BhYE+WDaywFg2TBWYNXAE+8B1ATnThNBqXHP5nQu0jWJdVvY2hvkpyB3qOmtmDePiS5/BDQ8wASEWGMWRG148g==",
1785 "license": "MIT",
1786 "dependencies": {
1787 "es-errors": "^1.3.0",
1788 "function-bind": "^1.1.2"
1789 },
5845 "engines": { 1790 "engines": {
5846 "node": ">=6" 1791 "node": ">= 0.4"
5847 } 1792 }
5848 }, 1793 },
5849 "node_modules/camel-case": { 1794 "node_modules/call-bound": {
5850 "version": "4.1.2", 1795 "version": "1.0.3",
5851 "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", 1796 "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.3.tgz",
5852 "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", 1797 "integrity": "sha512-YTd+6wGlNlPxSuri7Y6X8tY2dmm12UMH66RpKMhiX6rsk5wXXnYgbUcOt8kiS31/AjfoTOvCsE+w8nZQLQnzHA==",
1798 "license": "MIT",
5853 "dependencies": { 1799 "dependencies": {
5854 "pascal-case": "^3.1.2", 1800 "call-bind-apply-helpers": "^1.0.1",
5855 "tslib": "^2.0.3" 1801 "get-intrinsic": "^1.2.6"
5856 } 1802 },
5857 },
5858 "node_modules/camelcase": {
5859 "version": "6.3.0",
5860 "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz",
5861 "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==",
5862 "engines": { 1803 "engines": {
5863 "node": ">=10" 1804 "node": ">= 0.4"
5864 }, 1805 },
5865 "funding": { 1806 "funding": {
5866 "url": "https://github.com/sponsors/sindresorhus" 1807 "url": "https://github.com/sponsors/ljharb"
5867 }
5868 },
5869 "node_modules/camelcase-css": {
5870 "version": "2.0.1",
5871 "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz",
5872 "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==",
5873 "engines": {
5874 "node": ">= 6"
5875 }
5876 },
5877 "node_modules/caniuse-api": {
5878 "version": "3.0.0",
5879 "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz",
5880 "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==",
5881 "dependencies": {
5882 "browserslist": "^4.0.0",
5883 "caniuse-lite": "^1.0.0",
5884 "lodash.memoize": "^4.1.2",
5885 "lodash.uniq": "^4.5.0"
5886 } 1808 }
5887 }, 1809 },
5888 "node_modules/caniuse-lite": { 1810 "node_modules/caniuse-lite": {
5889 "version": "1.0.30001651", 1811 "version": "1.0.30001731",
5890 "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001651.tgz", 1812 "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001731.tgz",
5891 "integrity": "sha512-9Cf+Xv1jJNe1xPZLGuUXLNkE1BoDkqRqYyFJ9TDYSqhduqA4hu4oR9HluGoWYQC/aj8WHjsGVV+bwkh0+tegRg==", 1813 "integrity": "sha512-lDdp2/wrOmTRWuoB5DpfNkC0rJDU8DqRa6nYL6HK6sytw70QMopt/NIc/9SM7ylItlBWfACXk0tEn37UWM/+mg==",
5892 "funding": [ 1814 "funding": [
5893 { 1815 {
5894 "type": "opencollective", 1816 "type": "opencollective",
@@ -5902,50 +1824,40 @@
5902 "type": "github", 1824 "type": "github",
5903 "url": "https://github.com/sponsors/ai" 1825 "url": "https://github.com/sponsors/ai"
5904 } 1826 }
5905 ] 1827 ],
5906 }, 1828 "license": "CC-BY-4.0"
5907 "node_modules/case-sensitive-paths-webpack-plugin": {
5908 "version": "2.4.0",
5909 "resolved": "https://registry.npmjs.org/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.4.0.tgz",
5910 "integrity": "sha512-roIFONhcxog0JSSWbvVAh3OocukmSgpqOH6YpMkCvav/ySIV3JKg4Dc8vYtQjYi/UxpNE36r/9v+VqTQqgkYmw==",
5911 "engines": {
5912 "node": ">=4"
5913 }
5914 }, 1829 },
5915 "node_modules/ccount": { 1830 "node_modules/ccount": {
5916 "version": "2.0.1", 1831 "version": "2.0.1",
5917 "resolved": "https://registry.npmjs.org/ccount/-/ccount-2.0.1.tgz", 1832 "resolved": "https://registry.npmjs.org/ccount/-/ccount-2.0.1.tgz",
5918 "integrity": "sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==", 1833 "integrity": "sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==",
1834 "license": "MIT",
5919 "funding": { 1835 "funding": {
5920 "type": "github", 1836 "type": "github",
5921 "url": "https://github.com/sponsors/wooorm" 1837 "url": "https://github.com/sponsors/wooorm"
5922 } 1838 }
5923 }, 1839 },
5924 "node_modules/chalk": { 1840 "node_modules/chalk": {
5925 "version": "2.4.2", 1841 "version": "4.1.2",
5926 "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", 1842 "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
5927 "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", 1843 "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
1844 "license": "MIT",
5928 "dependencies": { 1845 "dependencies": {
5929 "ansi-styles": "^3.2.1", 1846 "ansi-styles": "^4.1.0",
5930 "escape-string-regexp": "^1.0.5", 1847 "supports-color": "^7.1.0"
5931 "supports-color": "^5.3.0"
5932 }, 1848 },
5933 "engines": { 1849 "engines": {
5934 "node": ">=4"
5935 }
5936 },
5937 "node_modules/char-regex": {
5938 "version": "1.0.2",
5939 "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz",
5940 "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==",
5941 "engines": {
5942 "node": ">=10" 1850 "node": ">=10"
1851 },
1852 "funding": {
1853 "url": "https://github.com/chalk/chalk?sponsor=1"
5943 } 1854 }
5944 }, 1855 },
5945 "node_modules/character-entities": { 1856 "node_modules/character-entities": {
5946 "version": "2.0.2", 1857 "version": "2.0.2",
5947 "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-2.0.2.tgz", 1858 "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-2.0.2.tgz",
5948 "integrity": "sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==", 1859 "integrity": "sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==",
1860 "license": "MIT",
5949 "funding": { 1861 "funding": {
5950 "type": "github", 1862 "type": "github",
5951 "url": "https://github.com/sponsors/wooorm" 1863 "url": "https://github.com/sponsors/wooorm"
@@ -5955,6 +1867,7 @@
5955 "version": "2.1.0", 1867 "version": "2.1.0",
5956 "resolved": "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-2.1.0.tgz", 1868 "resolved": "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-2.1.0.tgz",
5957 "integrity": "sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==", 1869 "integrity": "sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==",
1870 "license": "MIT",
5958 "funding": { 1871 "funding": {
5959 "type": "github", 1872 "type": "github",
5960 "url": "https://github.com/sponsors/wooorm" 1873 "url": "https://github.com/sponsors/wooorm"
@@ -5964,6 +1877,7 @@
5964 "version": "3.0.0", 1877 "version": "3.0.0",
5965 "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz", 1878 "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz",
5966 "integrity": "sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==", 1879 "integrity": "sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==",
1880 "license": "MIT",
5967 "funding": { 1881 "funding": {
5968 "type": "github", 1882 "type": "github",
5969 "url": "https://github.com/sponsors/wooorm" 1883 "url": "https://github.com/sponsors/wooorm"
@@ -5973,175 +1887,44 @@
5973 "version": "2.0.1", 1887 "version": "2.0.1",
5974 "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-2.0.1.tgz", 1888 "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-2.0.1.tgz",
5975 "integrity": "sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==", 1889 "integrity": "sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==",
1890 "license": "MIT",
5976 "funding": { 1891 "funding": {
5977 "type": "github", 1892 "type": "github",
5978 "url": "https://github.com/sponsors/wooorm" 1893 "url": "https://github.com/sponsors/wooorm"
5979 } 1894 }
5980 }, 1895 },
5981 "node_modules/check-types": { 1896 "node_modules/chownr": {
5982 "version": "11.2.3", 1897 "version": "3.0.0",
5983 "resolved": "https://registry.npmjs.org/check-types/-/check-types-11.2.3.tgz", 1898 "resolved": "https://registry.npmjs.org/chownr/-/chownr-3.0.0.tgz",
5984 "integrity": "sha512-+67P1GkJRaxQD6PKK0Et9DhwQB+vGg3PM5+aavopCpZT1lj9jeqfvpgTLAWErNj8qApkkmXlu/Ug74kmhagkXg==" 1899 "integrity": "sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==",
5985 }, 1900 "license": "BlueOak-1.0.0",
5986 "node_modules/chokidar": {
5987 "version": "3.6.0",
5988 "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz",
5989 "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==",
5990 "dependencies": {
5991 "anymatch": "~3.1.2",
5992 "braces": "~3.0.2",
5993 "glob-parent": "~5.1.2",
5994 "is-binary-path": "~2.1.0",
5995 "is-glob": "~4.0.1",
5996 "normalize-path": "~3.0.0",
5997 "readdirp": "~3.6.0"
5998 },
5999 "engines": {
6000 "node": ">= 8.10.0"
6001 },
6002 "funding": {
6003 "url": "https://paulmillr.com/funding/"
6004 },
6005 "optionalDependencies": {
6006 "fsevents": "~2.3.2"
6007 }
6008 },
6009 "node_modules/chokidar/node_modules/glob-parent": {
6010 "version": "5.1.2",
6011 "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
6012 "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
6013 "dependencies": {
6014 "is-glob": "^4.0.1"
6015 },
6016 "engines": {
6017 "node": ">= 6"
6018 }
6019 },
6020 "node_modules/chrome-trace-event": {
6021 "version": "1.0.4",
6022 "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz",
6023 "integrity": "sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==",
6024 "engines": {
6025 "node": ">=6.0"
6026 }
6027 },
6028 "node_modules/ci-info": {
6029 "version": "3.9.0",
6030 "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz",
6031 "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==",
6032 "funding": [
6033 {
6034 "type": "github",
6035 "url": "https://github.com/sponsors/sibiraj-s"
6036 }
6037 ],
6038 "engines": {
6039 "node": ">=8"
6040 }
6041 },
6042 "node_modules/cjs-module-lexer": {
6043 "version": "1.3.1",
6044 "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.3.1.tgz",
6045 "integrity": "sha512-a3KdPAANPbNE4ZUv9h6LckSl9zLsYOP4MBmhIPkRaeyybt+r4UghLvq+xw/YwUcC1gqylCkL4rdVs3Lwupjm4Q=="
6046 },
6047 "node_modules/clean-css": {
6048 "version": "5.3.3",
6049 "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.3.3.tgz",
6050 "integrity": "sha512-D5J+kHaVb/wKSFcyyV75uCn8fiY4sV38XJoe4CUyGQ+mOU/fMVYUdH1hJC+CJQ5uY3EnW27SbJYS4X8BiLrAFg==",
6051 "dependencies": {
6052 "source-map": "~0.6.0"
6053 },
6054 "engines": {
6055 "node": ">= 10.0"
6056 }
6057 },
6058 "node_modules/clean-css/node_modules/source-map": {
6059 "version": "0.6.1",
6060 "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
6061 "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
6062 "engines": { 1901 "engines": {
6063 "node": ">=0.10.0" 1902 "node": ">=18"
6064 }
6065 },
6066 "node_modules/cliui": {
6067 "version": "7.0.4",
6068 "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz",
6069 "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==",
6070 "dependencies": {
6071 "string-width": "^4.2.0",
6072 "strip-ansi": "^6.0.0",
6073 "wrap-ansi": "^7.0.0"
6074 } 1903 }
6075 }, 1904 },
6076 "node_modules/clone-deep": { 1905 "node_modules/color-convert": {
6077 "version": "4.0.1", 1906 "version": "2.0.1",
6078 "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", 1907 "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
6079 "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", 1908 "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
6080 "dev": true,
6081 "license": "MIT", 1909 "license": "MIT",
6082 "dependencies": { 1910 "dependencies": {
6083 "is-plain-object": "^2.0.4", 1911 "color-name": "~1.1.4"
6084 "kind-of": "^6.0.2",
6085 "shallow-clone": "^3.0.0"
6086 },
6087 "engines": {
6088 "node": ">=6"
6089 }
6090 },
6091 "node_modules/co": {
6092 "version": "4.6.0",
6093 "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz",
6094 "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==",
6095 "engines": {
6096 "iojs": ">= 1.0.0",
6097 "node": ">= 0.12.0"
6098 }
6099 },
6100 "node_modules/coa": {
6101 "version": "2.0.2",
6102 "resolved": "https://registry.npmjs.org/coa/-/coa-2.0.2.tgz",
6103 "integrity": "sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA==",
6104 "dependencies": {
6105 "@types/q": "^1.5.1",
6106 "chalk": "^2.4.1",
6107 "q": "^1.1.2"
6108 }, 1912 },
6109 "engines": { 1913 "engines": {
6110 "node": ">= 4.0" 1914 "node": ">=7.0.0"
6111 }
6112 },
6113 "node_modules/collect-v8-coverage": {
6114 "version": "1.0.2",
6115 "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz",
6116 "integrity": "sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q=="
6117 },
6118 "node_modules/color-convert": {
6119 "version": "1.9.3",
6120 "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
6121 "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
6122 "dependencies": {
6123 "color-name": "1.1.3"
6124 } 1915 }
6125 }, 1916 },
6126 "node_modules/color-name": { 1917 "node_modules/color-name": {
6127 "version": "1.1.3", 1918 "version": "1.1.4",
6128 "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", 1919 "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
6129 "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" 1920 "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
6130 }, 1921 "license": "MIT"
6131 "node_modules/colord": {
6132 "version": "2.9.3",
6133 "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz",
6134 "integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw=="
6135 },
6136 "node_modules/colorette": {
6137 "version": "2.0.20",
6138 "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz",
6139 "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w=="
6140 }, 1922 },
6141 "node_modules/combined-stream": { 1923 "node_modules/combined-stream": {
6142 "version": "1.0.8", 1924 "version": "1.0.8",
6143 "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", 1925 "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
6144 "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", 1926 "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
1927 "license": "MIT",
6145 "dependencies": { 1928 "dependencies": {
6146 "delayed-stream": "~1.0.0" 1929 "delayed-stream": "~1.0.0"
6147 }, 1930 },
@@ -6153,668 +1936,37 @@
6153 "version": "2.0.3", 1936 "version": "2.0.3",
6154 "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz", 1937 "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz",
6155 "integrity": "sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==", 1938 "integrity": "sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==",
1939 "license": "MIT",
6156 "funding": { 1940 "funding": {
6157 "type": "github", 1941 "type": "github",
6158 "url": "https://github.com/sponsors/wooorm" 1942 "url": "https://github.com/sponsors/wooorm"
6159 } 1943 }
6160 }, 1944 },
6161 "node_modules/commander": {
6162 "version": "8.3.0",
6163 "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz",
6164 "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==",
6165 "engines": {
6166 "node": ">= 12"
6167 }
6168 },
6169 "node_modules/common-tags": {
6170 "version": "1.8.2",
6171 "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.8.2.tgz",
6172 "integrity": "sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==",
6173 "engines": {
6174 "node": ">=4.0.0"
6175 }
6176 },
6177 "node_modules/commondir": {
6178 "version": "1.0.1",
6179 "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz",
6180 "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg=="
6181 },
6182 "node_modules/compressible": {
6183 "version": "2.0.18",
6184 "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz",
6185 "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==",
6186 "dependencies": {
6187 "mime-db": ">= 1.43.0 < 2"
6188 },
6189 "engines": {
6190 "node": ">= 0.6"
6191 }
6192 },
6193 "node_modules/compression": {
6194 "version": "1.7.4",
6195 "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz",
6196 "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==",
6197 "dependencies": {
6198 "accepts": "~1.3.5",
6199 "bytes": "3.0.0",
6200 "compressible": "~2.0.16",
6201 "debug": "2.6.9",
6202 "on-headers": "~1.0.2",
6203 "safe-buffer": "5.1.2",
6204 "vary": "~1.1.2"
6205 },
6206 "engines": {
6207 "node": ">= 0.8.0"
6208 }
6209 },
6210 "node_modules/compression/node_modules/debug": {
6211 "version": "2.6.9",
6212 "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
6213 "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
6214 "dependencies": {
6215 "ms": "2.0.0"
6216 }
6217 },
6218 "node_modules/compression/node_modules/ms": {
6219 "version": "2.0.0",
6220 "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
6221 "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
6222 },
6223 "node_modules/compression/node_modules/safe-buffer": {
6224 "version": "5.1.2",
6225 "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
6226 "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
6227 },
6228 "node_modules/concat-map": {
6229 "version": "0.0.1",
6230 "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
6231 "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg=="
6232 },
6233 "node_modules/confusing-browser-globals": {
6234 "version": "1.0.11",
6235 "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz",
6236 "integrity": "sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA=="
6237 },
6238 "node_modules/connect-history-api-fallback": {
6239 "version": "2.0.0",
6240 "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz",
6241 "integrity": "sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==",
6242 "engines": {
6243 "node": ">=0.8"
6244 }
6245 },
6246 "node_modules/content-disposition": {
6247 "version": "0.5.4",
6248 "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz",
6249 "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==",
6250 "dependencies": {
6251 "safe-buffer": "5.2.1"
6252 },
6253 "engines": {
6254 "node": ">= 0.6"
6255 }
6256 },
6257 "node_modules/content-type": {
6258 "version": "1.0.5",
6259 "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz",
6260 "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==",
6261 "engines": {
6262 "node": ">= 0.6"
6263 }
6264 },
6265 "node_modules/convert-source-map": { 1945 "node_modules/convert-source-map": {
6266 "version": "2.0.0", 1946 "version": "2.0.0",
6267 "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", 1947 "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz",
6268 "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==" 1948 "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==",
6269 },
6270 "node_modules/cookie": {
6271 "version": "0.6.0",
6272 "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz",
6273 "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==",
6274 "engines": {
6275 "node": ">= 0.6"
6276 }
6277 },
6278 "node_modules/cookie-signature": {
6279 "version": "1.0.6",
6280 "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
6281 "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ=="
6282 },
6283 "node_modules/core-js": {
6284 "version": "3.38.1",
6285 "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.38.1.tgz",
6286 "integrity": "sha512-OP35aUorbU3Zvlx7pjsFdu1rGNnD4pgw/CWoYzRY3t2EzoVT7shKHY1dlAy3f41cGIO7ZDPQimhGFTlEYkG/Hw==",
6287 "hasInstallScript": true,
6288 "funding": {
6289 "type": "opencollective",
6290 "url": "https://opencollective.com/core-js"
6291 }
6292 },
6293 "node_modules/core-js-compat": {
6294 "version": "3.38.1",
6295 "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.38.1.tgz",
6296 "integrity": "sha512-JRH6gfXxGmrzF3tZ57lFx97YARxCXPaMzPo6jELZhv88pBH5VXpQ+y0znKGlFnzuaihqhLbefxSJxWJMPtfDzw==",
6297 "dependencies": {
6298 "browserslist": "^4.23.3"
6299 },
6300 "funding": {
6301 "type": "opencollective",
6302 "url": "https://opencollective.com/core-js"
6303 }
6304 },
6305 "node_modules/core-js-pure": {
6306 "version": "3.38.1",
6307 "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.38.1.tgz",
6308 "integrity": "sha512-BY8Etc1FZqdw1glX0XNOq2FDwfrg/VGqoZOZCdaL+UmdaqDwQwYXkMJT4t6In+zfEfOJDcM9T0KdbBeJg8KKCQ==",
6309 "hasInstallScript": true,
6310 "funding": {
6311 "type": "opencollective",
6312 "url": "https://opencollective.com/core-js"
6313 }
6314 },
6315 "node_modules/core-util-is": {
6316 "version": "1.0.3",
6317 "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz",
6318 "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ=="
6319 },
6320 "node_modules/cosmiconfig": {
6321 "version": "7.1.0",
6322 "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz",
6323 "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==",
6324 "dependencies": {
6325 "@types/parse-json": "^4.0.0",
6326 "import-fresh": "^3.2.1",
6327 "parse-json": "^5.0.0",
6328 "path-type": "^4.0.0",
6329 "yaml": "^1.10.0"
6330 },
6331 "engines": {
6332 "node": ">=10"
6333 }
6334 },
6335 "node_modules/cosmiconfig-typescript-loader": {
6336 "version": "1.0.9",
6337 "resolved": "https://registry.npmjs.org/cosmiconfig-typescript-loader/-/cosmiconfig-typescript-loader-1.0.9.tgz",
6338 "integrity": "sha512-tRuMRhxN4m1Y8hP9SNYfz7jRwt8lZdWxdjg/ohg5esKmsndJIn4yT96oJVcf5x0eA11taXl+sIp+ielu529k6g==",
6339 "dev": true,
6340 "license": "MIT",
6341 "dependencies": {
6342 "cosmiconfig": "^7",
6343 "ts-node": "^10.7.0"
6344 },
6345 "engines": {
6346 "node": ">=12",
6347 "npm": ">=6"
6348 },
6349 "peerDependencies": {
6350 "@types/node": "*",
6351 "cosmiconfig": ">=7",
6352 "typescript": ">=3"
6353 }
6354 },
6355 "node_modules/craco-alias": {
6356 "version": "3.0.1",
6357 "resolved": "https://registry.npmjs.org/craco-alias/-/craco-alias-3.0.1.tgz",
6358 "integrity": "sha512-N+Qaf/Gr/f3o5ZH2TQjMu5NhR9PnT1ZYsfejpNvZPpB0ujdrhsSr4Ct6GVjnV5ostCVquhTKJpIVBKyL9qDQYA==",
6359 "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.",
6360 "dev": true,
6361 "license": "MIT"
6362 },
6363 "node_modules/create-require": {
6364 "version": "1.1.1",
6365 "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz",
6366 "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==",
6367 "devOptional": true,
6368 "license": "MIT" 1949 "license": "MIT"
6369 }, 1950 },
6370 "node_modules/cross-spawn": {
6371 "version": "7.0.3",
6372 "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
6373 "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
6374 "dependencies": {
6375 "path-key": "^3.1.0",
6376 "shebang-command": "^2.0.0",
6377 "which": "^2.0.1"
6378 },
6379 "engines": {
6380 "node": ">= 8"
6381 }
6382 },
6383 "node_modules/crypto-random-string": {
6384 "version": "2.0.0",
6385 "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz",
6386 "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==",
6387 "engines": {
6388 "node": ">=8"
6389 }
6390 },
6391 "node_modules/css-blank-pseudo": {
6392 "version": "3.0.3",
6393 "resolved": "https://registry.npmjs.org/css-blank-pseudo/-/css-blank-pseudo-3.0.3.tgz",
6394 "integrity": "sha512-VS90XWtsHGqoM0t4KpH053c4ehxZ2E6HtGI7x68YFV0pTo/QmkV/YFA+NnlvK8guxZVNWGQhVNJGC39Q8XF4OQ==",
6395 "dependencies": {
6396 "postcss-selector-parser": "^6.0.9"
6397 },
6398 "bin": {
6399 "css-blank-pseudo": "dist/cli.cjs"
6400 },
6401 "engines": {
6402 "node": "^12 || ^14 || >=16"
6403 },
6404 "peerDependencies": {
6405 "postcss": "^8.4"
6406 }
6407 },
6408 "node_modules/css-declaration-sorter": {
6409 "version": "6.4.1",
6410 "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.4.1.tgz",
6411 "integrity": "sha512-rtdthzxKuyq6IzqX6jEcIzQF/YqccluefyCYheovBOLhFT/drQA9zj/UbRAa9J7C0o6EG6u3E6g+vKkay7/k3g==",
6412 "engines": {
6413 "node": "^10 || ^12 || >=14"
6414 },
6415 "peerDependencies": {
6416 "postcss": "^8.0.9"
6417 }
6418 },
6419 "node_modules/css-has-pseudo": {
6420 "version": "3.0.4",
6421 "resolved": "https://registry.npmjs.org/css-has-pseudo/-/css-has-pseudo-3.0.4.tgz",
6422 "integrity": "sha512-Vse0xpR1K9MNlp2j5w1pgWIJtm1a8qS0JwS9goFYcImjlHEmywP9VUF05aGBXzGpDJF86QXk4L0ypBmwPhGArw==",
6423 "dependencies": {
6424 "postcss-selector-parser": "^6.0.9"
6425 },
6426 "bin": {
6427 "css-has-pseudo": "dist/cli.cjs"
6428 },
6429 "engines": {
6430 "node": "^12 || ^14 || >=16"
6431 },
6432 "peerDependencies": {
6433 "postcss": "^8.4"
6434 }
6435 },
6436 "node_modules/css-loader": {
6437 "version": "6.11.0",
6438 "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.11.0.tgz",
6439 "integrity": "sha512-CTJ+AEQJjq5NzLga5pE39qdiSV56F8ywCIsqNIRF0r7BDgWsN25aazToqAFg7ZrtA/U016xudB3ffgweORxX7g==",
6440 "dependencies": {
6441 "icss-utils": "^5.1.0",
6442 "postcss": "^8.4.33",
6443 "postcss-modules-extract-imports": "^3.1.0",
6444 "postcss-modules-local-by-default": "^4.0.5",
6445 "postcss-modules-scope": "^3.2.0",
6446 "postcss-modules-values": "^4.0.0",
6447 "postcss-value-parser": "^4.2.0",
6448 "semver": "^7.5.4"
6449 },
6450 "engines": {
6451 "node": ">= 12.13.0"
6452 },
6453 "funding": {
6454 "type": "opencollective",
6455 "url": "https://opencollective.com/webpack"
6456 },
6457 "peerDependencies": {
6458 "@rspack/core": "0.x || 1.x",
6459 "webpack": "^5.0.0"
6460 },
6461 "peerDependenciesMeta": {
6462 "@rspack/core": {
6463 "optional": true
6464 },
6465 "webpack": {
6466 "optional": true
6467 }
6468 }
6469 },
6470 "node_modules/css-minimizer-webpack-plugin": {
6471 "version": "3.4.1",
6472 "resolved": "https://registry.npmjs.org/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-3.4.1.tgz",
6473 "integrity": "sha512-1u6D71zeIfgngN2XNRJefc/hY7Ybsxd74Jm4qngIXyUEk7fss3VUzuHxLAq/R8NAba4QU9OUSaMZlbpRc7bM4Q==",
6474 "dependencies": {
6475 "cssnano": "^5.0.6",
6476 "jest-worker": "^27.0.2",
6477 "postcss": "^8.3.5",
6478 "schema-utils": "^4.0.0",
6479 "serialize-javascript": "^6.0.0",
6480 "source-map": "^0.6.1"
6481 },
6482 "engines": {
6483 "node": ">= 12.13.0"
6484 },
6485 "funding": {
6486 "type": "opencollective",
6487 "url": "https://opencollective.com/webpack"
6488 },
6489 "peerDependencies": {
6490 "webpack": "^5.0.0"
6491 },
6492 "peerDependenciesMeta": {
6493 "@parcel/css": {
6494 "optional": true
6495 },
6496 "clean-css": {
6497 "optional": true
6498 },
6499 "csso": {
6500 "optional": true
6501 },
6502 "esbuild": {
6503 "optional": true
6504 }
6505 }
6506 },
6507 "node_modules/css-minimizer-webpack-plugin/node_modules/source-map": {
6508 "version": "0.6.1",
6509 "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
6510 "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
6511 "engines": {
6512 "node": ">=0.10.0"
6513 }
6514 },
6515 "node_modules/css-prefers-color-scheme": {
6516 "version": "6.0.3",
6517 "resolved": "https://registry.npmjs.org/css-prefers-color-scheme/-/css-prefers-color-scheme-6.0.3.tgz",
6518 "integrity": "sha512-4BqMbZksRkJQx2zAjrokiGMd07RqOa2IxIrrN10lyBe9xhn9DEvjUK79J6jkeiv9D9hQFXKb6g1jwU62jziJZA==",
6519 "bin": {
6520 "css-prefers-color-scheme": "dist/cli.cjs"
6521 },
6522 "engines": {
6523 "node": "^12 || ^14 || >=16"
6524 },
6525 "peerDependencies": {
6526 "postcss": "^8.4"
6527 }
6528 },
6529 "node_modules/css-select": {
6530 "version": "4.3.0",
6531 "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz",
6532 "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==",
6533 "dependencies": {
6534 "boolbase": "^1.0.0",
6535 "css-what": "^6.0.1",
6536 "domhandler": "^4.3.1",
6537 "domutils": "^2.8.0",
6538 "nth-check": "^2.0.1"
6539 },
6540 "funding": {
6541 "url": "https://github.com/sponsors/fb55"
6542 }
6543 },
6544 "node_modules/css-select-base-adapter": {
6545 "version": "0.1.1",
6546 "resolved": "https://registry.npmjs.org/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz",
6547 "integrity": "sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w=="
6548 },
6549 "node_modules/css-tree": {
6550 "version": "1.0.0-alpha.37",
6551 "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.37.tgz",
6552 "integrity": "sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg==",
6553 "dependencies": {
6554 "mdn-data": "2.0.4",
6555 "source-map": "^0.6.1"
6556 },
6557 "engines": {
6558 "node": ">=8.0.0"
6559 }
6560 },
6561 "node_modules/css-tree/node_modules/source-map": {
6562 "version": "0.6.1",
6563 "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
6564 "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
6565 "engines": {
6566 "node": ">=0.10.0"
6567 }
6568 },
6569 "node_modules/css-what": {
6570 "version": "6.1.0",
6571 "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz",
6572 "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==",
6573 "engines": {
6574 "node": ">= 6"
6575 },
6576 "funding": {
6577 "url": "https://github.com/sponsors/fb55"
6578 }
6579 },
6580 "node_modules/css.escape": { 1951 "node_modules/css.escape": {
6581 "version": "1.5.1", 1952 "version": "1.5.1",
6582 "resolved": "https://registry.npmjs.org/css.escape/-/css.escape-1.5.1.tgz", 1953 "resolved": "https://registry.npmjs.org/css.escape/-/css.escape-1.5.1.tgz",
6583 "integrity": "sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==" 1954 "integrity": "sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==",
6584 }, 1955 "license": "MIT"
6585 "node_modules/cssdb": {
6586 "version": "7.11.2",
6587 "resolved": "https://registry.npmjs.org/cssdb/-/cssdb-7.11.2.tgz",
6588 "integrity": "sha512-lhQ32TFkc1X4eTefGfYPvgovRSzIMofHkigfH8nWtyRL4XJLsRhJFreRvEgKzept7x1rjBuy3J/MurXLaFxW/A==",
6589 "funding": [
6590 {
6591 "type": "opencollective",
6592 "url": "https://opencollective.com/csstools"
6593 },
6594 {
6595 "type": "github",
6596 "url": "https://github.com/sponsors/csstools"
6597 }
6598 ]
6599 },
6600 "node_modules/cssesc": {
6601 "version": "3.0.0",
6602 "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz",
6603 "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==",
6604 "bin": {
6605 "cssesc": "bin/cssesc"
6606 },
6607 "engines": {
6608 "node": ">=4"
6609 }
6610 },
6611 "node_modules/cssnano": {
6612 "version": "5.1.15",
6613 "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-5.1.15.tgz",
6614 "integrity": "sha512-j+BKgDcLDQA+eDifLx0EO4XSA56b7uut3BQFH+wbSaSTuGLuiyTa/wbRYthUXX8LC9mLg+WWKe8h+qJuwTAbHw==",
6615 "dependencies": {
6616 "cssnano-preset-default": "^5.2.14",
6617 "lilconfig": "^2.0.3",
6618 "yaml": "^1.10.2"
6619 },
6620 "engines": {
6621 "node": "^10 || ^12 || >=14.0"
6622 },
6623 "funding": {
6624 "type": "opencollective",
6625 "url": "https://opencollective.com/cssnano"
6626 },
6627 "peerDependencies": {
6628 "postcss": "^8.2.15"
6629 }
6630 },
6631 "node_modules/cssnano-preset-default": {
6632 "version": "5.2.14",
6633 "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.2.14.tgz",
6634 "integrity": "sha512-t0SFesj/ZV2OTylqQVOrFgEh5uanxbO6ZAdeCrNsUQ6fVuXwYTxJPNAGvGTxHbD68ldIJNec7PyYZDBrfDQ+6A==",
6635 "dependencies": {
6636 "css-declaration-sorter": "^6.3.1",
6637 "cssnano-utils": "^3.1.0",
6638 "postcss-calc": "^8.2.3",
6639 "postcss-colormin": "^5.3.1",
6640 "postcss-convert-values": "^5.1.3",
6641 "postcss-discard-comments": "^5.1.2",
6642 "postcss-discard-duplicates": "^5.1.0",
6643 "postcss-discard-empty": "^5.1.1",
6644 "postcss-discard-overridden": "^5.1.0",
6645 "postcss-merge-longhand": "^5.1.7",
6646 "postcss-merge-rules": "^5.1.4",
6647 "postcss-minify-font-values": "^5.1.0",
6648 "postcss-minify-gradients": "^5.1.1",
6649 "postcss-minify-params": "^5.1.4",
6650 "postcss-minify-selectors": "^5.2.1",
6651 "postcss-normalize-charset": "^5.1.0",
6652 "postcss-normalize-display-values": "^5.1.0",
6653 "postcss-normalize-positions": "^5.1.1",
6654 "postcss-normalize-repeat-style": "^5.1.1",
6655 "postcss-normalize-string": "^5.1.0",
6656 "postcss-normalize-timing-functions": "^5.1.0",
6657 "postcss-normalize-unicode": "^5.1.1",
6658 "postcss-normalize-url": "^5.1.0",
6659 "postcss-normalize-whitespace": "^5.1.1",
6660 "postcss-ordered-values": "^5.1.3",
6661 "postcss-reduce-initial": "^5.1.2",
6662 "postcss-reduce-transforms": "^5.1.0",
6663 "postcss-svgo": "^5.1.0",
6664 "postcss-unique-selectors": "^5.1.1"
6665 },
6666 "engines": {
6667 "node": "^10 || ^12 || >=14.0"
6668 },
6669 "peerDependencies": {
6670 "postcss": "^8.2.15"
6671 }
6672 },
6673 "node_modules/cssnano-utils": {
6674 "version": "3.1.0",
6675 "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-3.1.0.tgz",
6676 "integrity": "sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==",
6677 "engines": {
6678 "node": "^10 || ^12 || >=14.0"
6679 },
6680 "peerDependencies": {
6681 "postcss": "^8.2.15"
6682 }
6683 },
6684 "node_modules/csso": {
6685 "version": "4.2.0",
6686 "resolved": "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz",
6687 "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==",
6688 "dependencies": {
6689 "css-tree": "^1.1.2"
6690 },
6691 "engines": {
6692 "node": ">=8.0.0"
6693 }
6694 },
6695 "node_modules/csso/node_modules/css-tree": {
6696 "version": "1.1.3",
6697 "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz",
6698 "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==",
6699 "dependencies": {
6700 "mdn-data": "2.0.14",
6701 "source-map": "^0.6.1"
6702 },
6703 "engines": {
6704 "node": ">=8.0.0"
6705 }
6706 },
6707 "node_modules/csso/node_modules/mdn-data": {
6708 "version": "2.0.14",
6709 "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz",
6710 "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow=="
6711 },
6712 "node_modules/csso/node_modules/source-map": {
6713 "version": "0.6.1",
6714 "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
6715 "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
6716 "engines": {
6717 "node": ">=0.10.0"
6718 }
6719 },
6720 "node_modules/cssom": {
6721 "version": "0.4.4",
6722 "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz",
6723 "integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw=="
6724 },
6725 "node_modules/cssstyle": {
6726 "version": "2.3.0",
6727 "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz",
6728 "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==",
6729 "dependencies": {
6730 "cssom": "~0.3.6"
6731 },
6732 "engines": {
6733 "node": ">=8"
6734 }
6735 },
6736 "node_modules/cssstyle/node_modules/cssom": {
6737 "version": "0.3.8",
6738 "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz",
6739 "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg=="
6740 }, 1956 },
6741 "node_modules/csstype": { 1957 "node_modules/csstype": {
6742 "version": "3.1.3", 1958 "version": "3.1.3",
6743 "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", 1959 "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz",
6744 "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==" 1960 "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==",
6745 }, 1961 "license": "MIT"
6746 "node_modules/damerau-levenshtein": {
6747 "version": "1.0.8",
6748 "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz",
6749 "integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA=="
6750 },
6751 "node_modules/data-urls": {
6752 "version": "2.0.0",
6753 "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz",
6754 "integrity": "sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==",
6755 "dependencies": {
6756 "abab": "^2.0.3",
6757 "whatwg-mimetype": "^2.3.0",
6758 "whatwg-url": "^8.0.0"
6759 },
6760 "engines": {
6761 "node": ">=10"
6762 }
6763 },
6764 "node_modules/data-view-buffer": {
6765 "version": "1.0.1",
6766 "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.1.tgz",
6767 "integrity": "sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==",
6768 "dependencies": {
6769 "call-bind": "^1.0.6",
6770 "es-errors": "^1.3.0",
6771 "is-data-view": "^1.0.1"
6772 },
6773 "engines": {
6774 "node": ">= 0.4"
6775 },
6776 "funding": {
6777 "url": "https://github.com/sponsors/ljharb"
6778 }
6779 },
6780 "node_modules/data-view-byte-length": {
6781 "version": "1.0.1",
6782 "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz",
6783 "integrity": "sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==",
6784 "dependencies": {
6785 "call-bind": "^1.0.7",
6786 "es-errors": "^1.3.0",
6787 "is-data-view": "^1.0.1"
6788 },
6789 "engines": {
6790 "node": ">= 0.4"
6791 },
6792 "funding": {
6793 "url": "https://github.com/sponsors/ljharb"
6794 }
6795 },
6796 "node_modules/data-view-byte-offset": {
6797 "version": "1.0.0",
6798 "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz",
6799 "integrity": "sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==",
6800 "dependencies": {
6801 "call-bind": "^1.0.6",
6802 "es-errors": "^1.3.0",
6803 "is-data-view": "^1.0.1"
6804 },
6805 "engines": {
6806 "node": ">= 0.4"
6807 },
6808 "funding": {
6809 "url": "https://github.com/sponsors/ljharb"
6810 }
6811 }, 1962 },
6812 "node_modules/debug": { 1963 "node_modules/debug": {
6813 "version": "4.3.6", 1964 "version": "4.4.0",
6814 "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.6.tgz", 1965 "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz",
6815 "integrity": "sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==", 1966 "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==",
1967 "license": "MIT",
6816 "dependencies": { 1968 "dependencies": {
6817 "ms": "2.1.2" 1969 "ms": "^2.1.3"
6818 }, 1970 },
6819 "engines": { 1971 "engines": {
6820 "node": ">=6.0" 1972 "node": ">=6.0"
@@ -6825,15 +1977,11 @@
6825 } 1977 }
6826 } 1978 }
6827 }, 1979 },
6828 "node_modules/decimal.js": {
6829 "version": "10.4.3",
6830 "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.3.tgz",
6831 "integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA=="
6832 },
6833 "node_modules/decode-named-character-reference": { 1980 "node_modules/decode-named-character-reference": {
6834 "version": "1.0.2", 1981 "version": "1.0.2",
6835 "resolved": "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.0.2.tgz", 1982 "resolved": "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.0.2.tgz",
6836 "integrity": "sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==", 1983 "integrity": "sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==",
1984 "license": "MIT",
6837 "dependencies": { 1985 "dependencies": {
6838 "character-entities": "^2.0.0" 1986 "character-entities": "^2.0.0"
6839 }, 1987 },
@@ -6842,15 +1990,11 @@
6842 "url": "https://github.com/sponsors/wooorm" 1990 "url": "https://github.com/sponsors/wooorm"
6843 } 1991 }
6844 }, 1992 },
6845 "node_modules/dedent": {
6846 "version": "0.7.0",
6847 "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz",
6848 "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA=="
6849 },
6850 "node_modules/deep-equal": { 1993 "node_modules/deep-equal": {
6851 "version": "2.2.3", 1994 "version": "2.2.3",
6852 "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-2.2.3.tgz", 1995 "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-2.2.3.tgz",
6853 "integrity": "sha512-ZIwpnevOurS8bpT4192sqAowWM76JDKSHYzMLty3BZGSswgq6pBaH3DhCSW5xVAZICZyKdOBPjwww5wfgT/6PA==", 1996 "integrity": "sha512-ZIwpnevOurS8bpT4192sqAowWM76JDKSHYzMLty3BZGSswgq6pBaH3DhCSW5xVAZICZyKdOBPjwww5wfgT/6PA==",
1997 "license": "MIT",
6854 "dependencies": { 1998 "dependencies": {
6855 "array-buffer-byte-length": "^1.0.0", 1999 "array-buffer-byte-length": "^1.0.0",
6856 "call-bind": "^1.0.5", 2000 "call-bind": "^1.0.5",
@@ -6878,34 +2022,11 @@
6878 "url": "https://github.com/sponsors/ljharb" 2022 "url": "https://github.com/sponsors/ljharb"
6879 } 2023 }
6880 }, 2024 },
6881 "node_modules/deep-is": {
6882 "version": "0.1.4",
6883 "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz",
6884 "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ=="
6885 },
6886 "node_modules/deepmerge": {
6887 "version": "4.3.1",
6888 "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz",
6889 "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==",
6890 "engines": {
6891 "node": ">=0.10.0"
6892 }
6893 },
6894 "node_modules/default-gateway": {
6895 "version": "6.0.3",
6896 "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-6.0.3.tgz",
6897 "integrity": "sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==",
6898 "dependencies": {
6899 "execa": "^5.0.0"
6900 },
6901 "engines": {
6902 "node": ">= 10"
6903 }
6904 },
6905 "node_modules/define-data-property": { 2025 "node_modules/define-data-property": {
6906 "version": "1.1.4", 2026 "version": "1.1.4",
6907 "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", 2027 "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz",
6908 "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", 2028 "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==",
2029 "license": "MIT",
6909 "dependencies": { 2030 "dependencies": {
6910 "es-define-property": "^1.0.0", 2031 "es-define-property": "^1.0.0",
6911 "es-errors": "^1.3.0", 2032 "es-errors": "^1.3.0",
@@ -6918,18 +2039,11 @@
6918 "url": "https://github.com/sponsors/ljharb" 2039 "url": "https://github.com/sponsors/ljharb"
6919 } 2040 }
6920 }, 2041 },
6921 "node_modules/define-lazy-prop": {
6922 "version": "2.0.0",
6923 "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz",
6924 "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==",
6925 "engines": {
6926 "node": ">=8"
6927 }
6928 },
6929 "node_modules/define-properties": { 2042 "node_modules/define-properties": {
6930 "version": "1.2.1", 2043 "version": "1.2.1",
6931 "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", 2044 "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz",
6932 "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", 2045 "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==",
2046 "license": "MIT",
6933 "dependencies": { 2047 "dependencies": {
6934 "define-data-property": "^1.0.1", 2048 "define-data-property": "^1.0.1",
6935 "has-property-descriptors": "^1.0.0", 2049 "has-property-descriptors": "^1.0.0",
@@ -6946,81 +2060,34 @@
6946 "version": "1.0.0", 2060 "version": "1.0.0",
6947 "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", 2061 "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
6948 "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", 2062 "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==",
2063 "license": "MIT",
6949 "engines": { 2064 "engines": {
6950 "node": ">=0.4.0" 2065 "node": ">=0.4.0"
6951 } 2066 }
6952 }, 2067 },
6953 "node_modules/depd": {
6954 "version": "2.0.0",
6955 "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz",
6956 "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==",
6957 "engines": {
6958 "node": ">= 0.8"
6959 }
6960 },
6961 "node_modules/dequal": { 2068 "node_modules/dequal": {
6962 "version": "2.0.3", 2069 "version": "2.0.3",
6963 "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", 2070 "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz",
6964 "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", 2071 "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==",
2072 "license": "MIT",
6965 "engines": { 2073 "engines": {
6966 "node": ">=6" 2074 "node": ">=6"
6967 } 2075 }
6968 }, 2076 },
6969 "node_modules/destroy": { 2077 "node_modules/detect-libc": {
6970 "version": "1.2.0", 2078 "version": "2.0.4",
6971 "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", 2079 "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.4.tgz",
6972 "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", 2080 "integrity": "sha512-3UDv+G9CsCKO1WKMGw9fwq/SWJYbI0c5Y7LU1AXYoDdbhE2AHQ6N6Nb34sG8Fj7T5APy8qXDCKuuIHd1BR0tVA==",
6973 "engines": { 2081 "license": "Apache-2.0",
6974 "node": ">= 0.8",
6975 "npm": "1.2.8000 || >= 1.4.16"
6976 }
6977 },
6978 "node_modules/detect-newline": {
6979 "version": "3.1.0",
6980 "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz",
6981 "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==",
6982 "engines": { 2082 "engines": {
6983 "node": ">=8" 2083 "node": ">=8"
6984 } 2084 }
6985 }, 2085 },
6986 "node_modules/detect-node": {
6987 "version": "2.1.0",
6988 "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz",
6989 "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g=="
6990 },
6991 "node_modules/detect-port-alt": {
6992 "version": "1.1.6",
6993 "resolved": "https://registry.npmjs.org/detect-port-alt/-/detect-port-alt-1.1.6.tgz",
6994 "integrity": "sha512-5tQykt+LqfJFBEYaDITx7S7cR7mJ/zQmLXZ2qt5w04ainYZw6tBf9dBunMjVeVOdYVRUzUOE4HkY5J7+uttb5Q==",
6995 "dependencies": {
6996 "address": "^1.0.1",
6997 "debug": "^2.6.0"
6998 },
6999 "bin": {
7000 "detect": "bin/detect-port",
7001 "detect-port": "bin/detect-port"
7002 },
7003 "engines": {
7004 "node": ">= 4.2.1"
7005 }
7006 },
7007 "node_modules/detect-port-alt/node_modules/debug": {
7008 "version": "2.6.9",
7009 "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
7010 "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
7011 "dependencies": {
7012 "ms": "2.0.0"
7013 }
7014 },
7015 "node_modules/detect-port-alt/node_modules/ms": {
7016 "version": "2.0.0",
7017 "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
7018 "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
7019 },
7020 "node_modules/devlop": { 2086 "node_modules/devlop": {
7021 "version": "1.1.0", 2087 "version": "1.1.0",
7022 "resolved": "https://registry.npmjs.org/devlop/-/devlop-1.1.0.tgz", 2088 "resolved": "https://registry.npmjs.org/devlop/-/devlop-1.1.0.tgz",
7023 "integrity": "sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==", 2089 "integrity": "sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==",
2090 "license": "MIT",
7024 "dependencies": { 2091 "dependencies": {
7025 "dequal": "^2.0.0" 2092 "dequal": "^2.0.0"
7026 }, 2093 },
@@ -7029,243 +2096,46 @@
7029 "url": "https://github.com/sponsors/wooorm" 2096 "url": "https://github.com/sponsors/wooorm"
7030 } 2097 }
7031 }, 2098 },
7032 "node_modules/didyoumean": {
7033 "version": "1.2.2",
7034 "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz",
7035 "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw=="
7036 },
7037 "node_modules/diff": {
7038 "version": "4.0.2",
7039 "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz",
7040 "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==",
7041 "devOptional": true,
7042 "license": "BSD-3-Clause",
7043 "engines": {
7044 "node": ">=0.3.1"
7045 }
7046 },
7047 "node_modules/diff-sequences": { 2099 "node_modules/diff-sequences": {
7048 "version": "27.5.1", 2100 "version": "27.5.1",
7049 "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.5.1.tgz", 2101 "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.5.1.tgz",
7050 "integrity": "sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ==", 2102 "integrity": "sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ==",
2103 "license": "MIT",
7051 "engines": { 2104 "engines": {
7052 "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" 2105 "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
7053 } 2106 }
7054 }, 2107 },
7055 "node_modules/dir-glob": {
7056 "version": "3.0.1",
7057 "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz",
7058 "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==",
7059 "dependencies": {
7060 "path-type": "^4.0.0"
7061 },
7062 "engines": {
7063 "node": ">=8"
7064 }
7065 },
7066 "node_modules/dlv": {
7067 "version": "1.1.3",
7068 "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz",
7069 "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA=="
7070 },
7071 "node_modules/dns-packet": {
7072 "version": "5.6.1",
7073 "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.6.1.tgz",
7074 "integrity": "sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==",
7075 "dependencies": {
7076 "@leichtgewicht/ip-codec": "^2.0.1"
7077 },
7078 "engines": {
7079 "node": ">=6"
7080 }
7081 },
7082 "node_modules/doctrine": {
7083 "version": "3.0.0",
7084 "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz",
7085 "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==",
7086 "dependencies": {
7087 "esutils": "^2.0.2"
7088 },
7089 "engines": {
7090 "node": ">=6.0.0"
7091 }
7092 },
7093 "node_modules/dom-accessibility-api": { 2108 "node_modules/dom-accessibility-api": {
7094 "version": "0.5.16", 2109 "version": "0.5.16",
7095 "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.5.16.tgz", 2110 "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.5.16.tgz",
7096 "integrity": "sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==" 2111 "integrity": "sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==",
7097 }, 2112 "license": "MIT"
7098 "node_modules/dom-converter": {
7099 "version": "0.2.0",
7100 "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz",
7101 "integrity": "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==",
7102 "dependencies": {
7103 "utila": "~0.4"
7104 }
7105 },
7106 "node_modules/dom-serializer": {
7107 "version": "1.4.1",
7108 "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz",
7109 "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==",
7110 "dependencies": {
7111 "domelementtype": "^2.0.1",
7112 "domhandler": "^4.2.0",
7113 "entities": "^2.0.0"
7114 },
7115 "funding": {
7116 "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1"
7117 }
7118 },
7119 "node_modules/domelementtype": {
7120 "version": "2.3.0",
7121 "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz",
7122 "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==",
7123 "funding": [
7124 {
7125 "type": "github",
7126 "url": "https://github.com/sponsors/fb55"
7127 }
7128 ]
7129 },
7130 "node_modules/domexception": {
7131 "version": "2.0.1",
7132 "resolved": "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz",
7133 "integrity": "sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==",
7134 "deprecated": "Use your platform's native DOMException instead",
7135 "dependencies": {
7136 "webidl-conversions": "^5.0.0"
7137 },
7138 "engines": {
7139 "node": ">=8"
7140 }
7141 },
7142 "node_modules/domexception/node_modules/webidl-conversions": {
7143 "version": "5.0.0",
7144 "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz",
7145 "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==",
7146 "engines": {
7147 "node": ">=8"
7148 }
7149 },
7150 "node_modules/domhandler": {
7151 "version": "4.3.1",
7152 "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz",
7153 "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==",
7154 "dependencies": {
7155 "domelementtype": "^2.2.0"
7156 },
7157 "engines": {
7158 "node": ">= 4"
7159 },
7160 "funding": {
7161 "url": "https://github.com/fb55/domhandler?sponsor=1"
7162 }
7163 },
7164 "node_modules/domutils": {
7165 "version": "2.8.0",
7166 "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz",
7167 "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==",
7168 "dependencies": {
7169 "dom-serializer": "^1.0.1",
7170 "domelementtype": "^2.2.0",
7171 "domhandler": "^4.2.0"
7172 },
7173 "funding": {
7174 "url": "https://github.com/fb55/domutils?sponsor=1"
7175 }
7176 },
7177 "node_modules/dot-case": {
7178 "version": "3.0.4",
7179 "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz",
7180 "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==",
7181 "dependencies": {
7182 "no-case": "^3.0.4",
7183 "tslib": "^2.0.3"
7184 }
7185 },
7186 "node_modules/dotenv": {
7187 "version": "10.0.0",
7188 "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-10.0.0.tgz",
7189 "integrity": "sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==",
7190 "engines": {
7191 "node": ">=10"
7192 }
7193 },
7194 "node_modules/dotenv-expand": {
7195 "version": "5.1.0",
7196 "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-5.1.0.tgz",
7197 "integrity": "sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA=="
7198 },
7199 "node_modules/duplexer": {
7200 "version": "0.1.2",
7201 "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz",
7202 "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg=="
7203 },
7204 "node_modules/eastasianwidth": {
7205 "version": "0.2.0",
7206 "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz",
7207 "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA=="
7208 },
7209 "node_modules/ee-first": {
7210 "version": "1.1.1",
7211 "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
7212 "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow=="
7213 }, 2113 },
7214 "node_modules/ejs": { 2114 "node_modules/dunder-proto": {
7215 "version": "3.1.10", 2115 "version": "1.0.1",
7216 "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.10.tgz", 2116 "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz",
7217 "integrity": "sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==", 2117 "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==",
2118 "license": "MIT",
7218 "dependencies": { 2119 "dependencies": {
7219 "jake": "^10.8.5" 2120 "call-bind-apply-helpers": "^1.0.1",
7220 }, 2121 "es-errors": "^1.3.0",
7221 "bin": { 2122 "gopd": "^1.2.0"
7222 "ejs": "bin/cli.js"
7223 }, 2123 },
7224 "engines": { 2124 "engines": {
7225 "node": ">=0.10.0" 2125 "node": ">= 0.4"
7226 } 2126 }
7227 }, 2127 },
7228 "node_modules/electron-to-chromium": { 2128 "node_modules/electron-to-chromium": {
7229 "version": "1.5.12", 2129 "version": "1.5.199",
7230 "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.12.tgz", 2130 "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.199.tgz",
7231 "integrity": "sha512-tIhPkdlEoCL1Y+PToq3zRNehUaKp3wBX/sr7aclAWdIWjvqAe/Im/H0SiCM4c1Q8BLPHCdoJTol+ZblflydehA==" 2131 "integrity": "sha512-3gl0S7zQd88kCAZRO/DnxtBKuhMO4h0EaQIN3YgZfV6+pW+5+bf2AdQeHNESCoaQqo/gjGVYEf2YM4O5HJQqpQ==",
7232 }, 2132 "license": "ISC"
7233 "node_modules/emittery": {
7234 "version": "0.8.1",
7235 "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.8.1.tgz",
7236 "integrity": "sha512-uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg==",
7237 "engines": {
7238 "node": ">=10"
7239 },
7240 "funding": {
7241 "url": "https://github.com/sindresorhus/emittery?sponsor=1"
7242 }
7243 },
7244 "node_modules/emoji-regex": {
7245 "version": "9.2.2",
7246 "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz",
7247 "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg=="
7248 },
7249 "node_modules/emojis-list": {
7250 "version": "3.0.0",
7251 "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz",
7252 "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==",
7253 "engines": {
7254 "node": ">= 4"
7255 }
7256 },
7257 "node_modules/encodeurl": {
7258 "version": "1.0.2",
7259 "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
7260 "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==",
7261 "engines": {
7262 "node": ">= 0.8"
7263 }
7264 }, 2133 },
7265 "node_modules/enhanced-resolve": { 2134 "node_modules/enhanced-resolve": {
7266 "version": "5.17.1", 2135 "version": "5.18.3",
7267 "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.17.1.tgz", 2136 "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.3.tgz",
7268 "integrity": "sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==", 2137 "integrity": "sha512-d4lC8xfavMeBjzGr2vECC3fsGXziXZQyJxD868h2M/mBI3PwAuODxAkLkq5HYuvrPYcUtiLzsTo8U3PgX3Ocww==",
2138 "license": "MIT",
7269 "dependencies": { 2139 "dependencies": {
7270 "graceful-fs": "^4.2.4", 2140 "graceful-fs": "^4.2.4",
7271 "tapable": "^2.2.0" 2141 "tapable": "^2.2.0"
@@ -7274,101 +2144,11 @@
7274 "node": ">=10.13.0" 2144 "node": ">=10.13.0"
7275 } 2145 }
7276 }, 2146 },
7277 "node_modules/entities": {
7278 "version": "2.2.0",
7279 "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz",
7280 "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==",
7281 "funding": {
7282 "url": "https://github.com/fb55/entities?sponsor=1"
7283 }
7284 },
7285 "node_modules/error-ex": {
7286 "version": "1.3.2",
7287 "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
7288 "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==",
7289 "dependencies": {
7290 "is-arrayish": "^0.2.1"
7291 }
7292 },
7293 "node_modules/error-stack-parser": {
7294 "version": "2.1.4",
7295 "resolved": "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.1.4.tgz",
7296 "integrity": "sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==",
7297 "dependencies": {
7298 "stackframe": "^1.3.4"
7299 }
7300 },
7301 "node_modules/es-abstract": {
7302 "version": "1.23.3",
7303 "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.3.tgz",
7304 "integrity": "sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==",
7305 "dependencies": {
7306 "array-buffer-byte-length": "^1.0.1",
7307 "arraybuffer.prototype.slice": "^1.0.3",
7308 "available-typed-arrays": "^1.0.7",
7309 "call-bind": "^1.0.7",
7310 "data-view-buffer": "^1.0.1",
7311 "data-view-byte-length": "^1.0.1",
7312 "data-view-byte-offset": "^1.0.0",
7313 "es-define-property": "^1.0.0",
7314 "es-errors": "^1.3.0",
7315 "es-object-atoms": "^1.0.0",
7316 "es-set-tostringtag": "^2.0.3",
7317 "es-to-primitive": "^1.2.1",
7318 "function.prototype.name": "^1.1.6",
7319 "get-intrinsic": "^1.2.4",
7320 "get-symbol-description": "^1.0.2",
7321 "globalthis": "^1.0.3",
7322 "gopd": "^1.0.1",
7323 "has-property-descriptors": "^1.0.2",
7324 "has-proto": "^1.0.3",
7325 "has-symbols": "^1.0.3",
7326 "hasown": "^2.0.2",
7327 "internal-slot": "^1.0.7",
7328 "is-array-buffer": "^3.0.4",
7329 "is-callable": "^1.2.7",
7330 "is-data-view": "^1.0.1",
7331 "is-negative-zero": "^2.0.3",
7332 "is-regex": "^1.1.4",
7333 "is-shared-array-buffer": "^1.0.3",
7334 "is-string": "^1.0.7",
7335 "is-typed-array": "^1.1.13",
7336 "is-weakref": "^1.0.2",
7337 "object-inspect": "^1.13.1",
7338 "object-keys": "^1.1.1",
7339 "object.assign": "^4.1.5",
7340 "regexp.prototype.flags": "^1.5.2",
7341 "safe-array-concat": "^1.1.2",
7342 "safe-regex-test": "^1.0.3",
7343 "string.prototype.trim": "^1.2.9",
7344 "string.prototype.trimend": "^1.0.8",
7345 "string.prototype.trimstart": "^1.0.8",
7346 "typed-array-buffer": "^1.0.2",
7347 "typed-array-byte-length": "^1.0.1",
7348 "typed-array-byte-offset": "^1.0.2",
7349 "typed-array-length": "^1.0.6",
7350 "unbox-primitive": "^1.0.2",
7351 "which-typed-array": "^1.1.15"
7352 },
7353 "engines": {
7354 "node": ">= 0.4"
7355 },
7356 "funding": {
7357 "url": "https://github.com/sponsors/ljharb"
7358 }
7359 },
7360 "node_modules/es-array-method-boxes-properly": {
7361 "version": "1.0.0",
7362 "resolved": "https://registry.npmjs.org/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz",
7363 "integrity": "sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA=="
7364 },
7365 "node_modules/es-define-property": { 2147 "node_modules/es-define-property": {
7366 "version": "1.0.0", 2148 "version": "1.0.1",
7367 "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", 2149 "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz",
7368 "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", 2150 "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==",
7369 "dependencies": { 2151 "license": "MIT",
7370 "get-intrinsic": "^1.2.4"
7371 },
7372 "engines": { 2152 "engines": {
7373 "node": ">= 0.4" 2153 "node": ">= 0.4"
7374 } 2154 }
@@ -7377,6 +2157,7 @@
7377 "version": "1.3.0", 2157 "version": "1.3.0",
7378 "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", 2158 "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz",
7379 "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", 2159 "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==",
2160 "license": "MIT",
7380 "engines": { 2161 "engines": {
7381 "node": ">= 0.4" 2162 "node": ">= 0.4"
7382 } 2163 }
@@ -7385,6 +2166,7 @@
7385 "version": "1.1.3", 2166 "version": "1.1.3",
7386 "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.3.tgz", 2167 "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.3.tgz",
7387 "integrity": "sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==", 2168 "integrity": "sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==",
2169 "license": "MIT",
7388 "dependencies": { 2170 "dependencies": {
7389 "call-bind": "^1.0.2", 2171 "call-bind": "^1.0.2",
7390 "get-intrinsic": "^1.1.3", 2172 "get-intrinsic": "^1.1.3",
@@ -7400,39 +2182,11 @@
7400 "url": "https://github.com/sponsors/ljharb" 2182 "url": "https://github.com/sponsors/ljharb"
7401 } 2183 }
7402 }, 2184 },
7403 "node_modules/es-iterator-helpers": {
7404 "version": "1.0.19",
7405 "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.0.19.tgz",
7406 "integrity": "sha512-zoMwbCcH5hwUkKJkT8kDIBZSz9I6mVG//+lDCinLCGov4+r7NIy0ld8o03M0cJxl2spVf6ESYVS6/gpIfq1FFw==",
7407 "dependencies": {
7408 "call-bind": "^1.0.7",
7409 "define-properties": "^1.2.1",
7410 "es-abstract": "^1.23.3",
7411 "es-errors": "^1.3.0",
7412 "es-set-tostringtag": "^2.0.3",
7413 "function-bind": "^1.1.2",
7414 "get-intrinsic": "^1.2.4",
7415 "globalthis": "^1.0.3",
7416 "has-property-descriptors": "^1.0.2",
7417 "has-proto": "^1.0.3",
7418 "has-symbols": "^1.0.3",
7419 "internal-slot": "^1.0.7",
7420 "iterator.prototype": "^1.1.2",
7421 "safe-array-concat": "^1.1.2"
7422 },
7423 "engines": {
7424 "node": ">= 0.4"
7425 }
7426 },
7427 "node_modules/es-module-lexer": {
7428 "version": "1.5.4",
7429 "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.5.4.tgz",
7430 "integrity": "sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw=="
7431 },
7432 "node_modules/es-object-atoms": { 2185 "node_modules/es-object-atoms": {
7433 "version": "1.0.0", 2186 "version": "1.1.1",
7434 "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.0.0.tgz", 2187 "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz",
7435 "integrity": "sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==", 2188 "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==",
2189 "license": "MIT",
7436 "dependencies": { 2190 "dependencies": {
7437 "es-errors": "^1.3.0" 2191 "es-errors": "^1.3.0"
7438 }, 2192 },
@@ -7441,1156 +2195,111 @@
7441 } 2195 }
7442 }, 2196 },
7443 "node_modules/es-set-tostringtag": { 2197 "node_modules/es-set-tostringtag": {
7444 "version": "2.0.3", 2198 "version": "2.1.0",
7445 "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz", 2199 "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz",
7446 "integrity": "sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==", 2200 "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==",
2201 "license": "MIT",
7447 "dependencies": { 2202 "dependencies": {
7448 "get-intrinsic": "^1.2.4", 2203 "es-errors": "^1.3.0",
2204 "get-intrinsic": "^1.2.6",
7449 "has-tostringtag": "^1.0.2", 2205 "has-tostringtag": "^1.0.2",
7450 "hasown": "^2.0.1" 2206 "hasown": "^2.0.2"
7451 },
7452 "engines": {
7453 "node": ">= 0.4"
7454 }
7455 },
7456 "node_modules/es-shim-unscopables": {
7457 "version": "1.0.2",
7458 "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz",
7459 "integrity": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==",
7460 "dependencies": {
7461 "hasown": "^2.0.0"
7462 }
7463 },
7464 "node_modules/es-to-primitive": {
7465 "version": "1.2.1",
7466 "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz",
7467 "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==",
7468 "dependencies": {
7469 "is-callable": "^1.1.4",
7470 "is-date-object": "^1.0.1",
7471 "is-symbol": "^1.0.2"
7472 }, 2207 },
7473 "engines": { 2208 "engines": {
7474 "node": ">= 0.4" 2209 "node": ">= 0.4"
7475 },
7476 "funding": {
7477 "url": "https://github.com/sponsors/ljharb"
7478 } 2210 }
7479 }, 2211 },
7480 "node_modules/escalade": { 2212 "node_modules/esbuild": {
7481 "version": "3.1.2", 2213 "version": "0.25.8",
7482 "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", 2214 "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.8.tgz",
7483 "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", 2215 "integrity": "sha512-vVC0USHGtMi8+R4Kz8rt6JhEWLxsv9Rnu/lGYbPR8u47B+DCBksq9JarW0zOO7bs37hyOK1l2/oqtbciutL5+Q==",
7484 "engines": { 2216 "hasInstallScript": true,
7485 "node": ">=6" 2217 "license": "MIT",
7486 }
7487 },
7488 "node_modules/escape-html": {
7489 "version": "1.0.3",
7490 "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
7491 "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow=="
7492 },
7493 "node_modules/escape-string-regexp": {
7494 "version": "1.0.5",
7495 "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
7496 "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
7497 "engines": {
7498 "node": ">=0.8.0"
7499 }
7500 },
7501 "node_modules/escodegen": {
7502 "version": "2.1.0",
7503 "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz",
7504 "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==",
7505 "dependencies": {
7506 "esprima": "^4.0.1",
7507 "estraverse": "^5.2.0",
7508 "esutils": "^2.0.2"
7509 },
7510 "bin": { 2218 "bin": {
7511 "escodegen": "bin/escodegen.js", 2219 "esbuild": "bin/esbuild"
7512 "esgenerate": "bin/esgenerate.js"
7513 }, 2220 },
7514 "engines": { 2221 "engines": {
7515 "node": ">=6.0" 2222 "node": ">=18"
7516 }, 2223 },
7517 "optionalDependencies": { 2224 "optionalDependencies": {
7518 "source-map": "~0.6.1" 2225 "@esbuild/aix-ppc64": "0.25.8",
7519 } 2226 "@esbuild/android-arm": "0.25.8",
7520 }, 2227 "@esbuild/android-arm64": "0.25.8",
7521 "node_modules/escodegen/node_modules/source-map": { 2228 "@esbuild/android-x64": "0.25.8",
7522 "version": "0.6.1", 2229 "@esbuild/darwin-arm64": "0.25.8",
7523 "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", 2230 "@esbuild/darwin-x64": "0.25.8",
7524 "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", 2231 "@esbuild/freebsd-arm64": "0.25.8",
7525 "optional": true, 2232 "@esbuild/freebsd-x64": "0.25.8",
7526 "engines": { 2233 "@esbuild/linux-arm": "0.25.8",
7527 "node": ">=0.10.0" 2234 "@esbuild/linux-arm64": "0.25.8",
7528 } 2235 "@esbuild/linux-ia32": "0.25.8",
7529 }, 2236 "@esbuild/linux-loong64": "0.25.8",
7530 "node_modules/eslint": { 2237 "@esbuild/linux-mips64el": "0.25.8",
7531 "version": "8.57.0", 2238 "@esbuild/linux-ppc64": "0.25.8",
7532 "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz", 2239 "@esbuild/linux-riscv64": "0.25.8",
7533 "integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==", 2240 "@esbuild/linux-s390x": "0.25.8",
7534 "dependencies": { 2241 "@esbuild/linux-x64": "0.25.8",
7535 "@eslint-community/eslint-utils": "^4.2.0", 2242 "@esbuild/netbsd-arm64": "0.25.8",
7536 "@eslint-community/regexpp": "^4.6.1", 2243 "@esbuild/netbsd-x64": "0.25.8",
7537 "@eslint/eslintrc": "^2.1.4", 2244 "@esbuild/openbsd-arm64": "0.25.8",
7538 "@eslint/js": "8.57.0", 2245 "@esbuild/openbsd-x64": "0.25.8",
7539 "@humanwhocodes/config-array": "^0.11.14", 2246 "@esbuild/openharmony-arm64": "0.25.8",
7540 "@humanwhocodes/module-importer": "^1.0.1", 2247 "@esbuild/sunos-x64": "0.25.8",
7541 "@nodelib/fs.walk": "^1.2.8", 2248 "@esbuild/win32-arm64": "0.25.8",
7542 "@ungap/structured-clone": "^1.2.0", 2249 "@esbuild/win32-ia32": "0.25.8",
7543 "ajv": "^6.12.4", 2250 "@esbuild/win32-x64": "0.25.8"
7544 "chalk": "^4.0.0",
7545 "cross-spawn": "^7.0.2",
7546 "debug": "^4.3.2",
7547 "doctrine": "^3.0.0",
7548 "escape-string-regexp": "^4.0.0",
7549 "eslint-scope": "^7.2.2",
7550 "eslint-visitor-keys": "^3.4.3",
7551 "espree": "^9.6.1",
7552 "esquery": "^1.4.2",
7553 "esutils": "^2.0.2",
7554 "fast-deep-equal": "^3.1.3",
7555 "file-entry-cache": "^6.0.1",
7556 "find-up": "^5.0.0",
7557 "glob-parent": "^6.0.2",
7558 "globals": "^13.19.0",
7559 "graphemer": "^1.4.0",
7560 "ignore": "^5.2.0",
7561 "imurmurhash": "^0.1.4",
7562 "is-glob": "^4.0.0",
7563 "is-path-inside": "^3.0.3",
7564 "js-yaml": "^4.1.0",
7565 "json-stable-stringify-without-jsonify": "^1.0.1",
7566 "levn": "^0.4.1",
7567 "lodash.merge": "^4.6.2",
7568 "minimatch": "^3.1.2",
7569 "natural-compare": "^1.4.0",
7570 "optionator": "^0.9.3",
7571 "strip-ansi": "^6.0.1",
7572 "text-table": "^0.2.0"
7573 },
7574 "bin": {
7575 "eslint": "bin/eslint.js"
7576 },
7577 "engines": {
7578 "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
7579 },
7580 "funding": {
7581 "url": "https://opencollective.com/eslint"
7582 }
7583 },
7584 "node_modules/eslint-config-react-app": {
7585 "version": "7.0.1",
7586 "resolved": "https://registry.npmjs.org/eslint-config-react-app/-/eslint-config-react-app-7.0.1.tgz",
7587 "integrity": "sha512-K6rNzvkIeHaTd8m/QEh1Zko0KI7BACWkkneSs6s9cKZC/J27X3eZR6Upt1jkmZ/4FK+XUOPPxMEN7+lbUXfSlA==",
7588 "dependencies": {
7589 "@babel/core": "^7.16.0",
7590 "@babel/eslint-parser": "^7.16.3",
7591 "@rushstack/eslint-patch": "^1.1.0",
7592 "@typescript-eslint/eslint-plugin": "^5.5.0",
7593 "@typescript-eslint/parser": "^5.5.0",
7594 "babel-preset-react-app": "^10.0.1",
7595 "confusing-browser-globals": "^1.0.11",
7596 "eslint-plugin-flowtype": "^8.0.3",
7597 "eslint-plugin-import": "^2.25.3",
7598 "eslint-plugin-jest": "^25.3.0",
7599 "eslint-plugin-jsx-a11y": "^6.5.1",
7600 "eslint-plugin-react": "^7.27.1",
7601 "eslint-plugin-react-hooks": "^4.3.0",
7602 "eslint-plugin-testing-library": "^5.0.1"
7603 },
7604 "engines": {
7605 "node": ">=14.0.0"
7606 },
7607 "peerDependencies": {
7608 "eslint": "^8.0.0"
7609 }
7610 },
7611 "node_modules/eslint-import-resolver-node": {
7612 "version": "0.3.9",
7613 "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz",
7614 "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==",
7615 "dependencies": {
7616 "debug": "^3.2.7",
7617 "is-core-module": "^2.13.0",
7618 "resolve": "^1.22.4"
7619 }
7620 },
7621 "node_modules/eslint-import-resolver-node/node_modules/debug": {
7622 "version": "3.2.7",
7623 "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
7624 "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
7625 "dependencies": {
7626 "ms": "^2.1.1"
7627 }
7628 },
7629 "node_modules/eslint-module-utils": {
7630 "version": "2.8.1",
7631 "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.1.tgz",
7632 "integrity": "sha512-rXDXR3h7cs7dy9RNpUlQf80nX31XWJEyGq1tRMo+6GsO5VmTe4UTwtmonAD4ZkAsrfMVDA2wlGJ3790Ys+D49Q==",
7633 "dependencies": {
7634 "debug": "^3.2.7"
7635 },
7636 "engines": {
7637 "node": ">=4"
7638 },
7639 "peerDependenciesMeta": {
7640 "eslint": {
7641 "optional": true
7642 }
7643 }
7644 },
7645 "node_modules/eslint-module-utils/node_modules/debug": {
7646 "version": "3.2.7",
7647 "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
7648 "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
7649 "dependencies": {
7650 "ms": "^2.1.1"
7651 }
7652 },
7653 "node_modules/eslint-plugin-flowtype": {
7654 "version": "8.0.3",
7655 "resolved": "https://registry.npmjs.org/eslint-plugin-flowtype/-/eslint-plugin-flowtype-8.0.3.tgz",
7656 "integrity": "sha512-dX8l6qUL6O+fYPtpNRideCFSpmWOUVx5QcaGLVqe/vlDiBSe4vYljDWDETwnyFzpl7By/WVIu6rcrniCgH9BqQ==",
7657 "dependencies": {
7658 "lodash": "^4.17.21",
7659 "string-natural-compare": "^3.0.1"
7660 },
7661 "engines": {
7662 "node": ">=12.0.0"
7663 },
7664 "peerDependencies": {
7665 "@babel/plugin-syntax-flow": "^7.14.5",
7666 "@babel/plugin-transform-react-jsx": "^7.14.9",
7667 "eslint": "^8.1.0"
7668 }
7669 },
7670 "node_modules/eslint-plugin-import": {
7671 "version": "2.29.1",
7672 "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.29.1.tgz",
7673 "integrity": "sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==",
7674 "dependencies": {
7675 "array-includes": "^3.1.7",
7676 "array.prototype.findlastindex": "^1.2.3",
7677 "array.prototype.flat": "^1.3.2",
7678 "array.prototype.flatmap": "^1.3.2",
7679 "debug": "^3.2.7",
7680 "doctrine": "^2.1.0",
7681 "eslint-import-resolver-node": "^0.3.9",
7682 "eslint-module-utils": "^2.8.0",
7683 "hasown": "^2.0.0",
7684 "is-core-module": "^2.13.1",
7685 "is-glob": "^4.0.3",
7686 "minimatch": "^3.1.2",
7687 "object.fromentries": "^2.0.7",
7688 "object.groupby": "^1.0.1",
7689 "object.values": "^1.1.7",
7690 "semver": "^6.3.1",
7691 "tsconfig-paths": "^3.15.0"
7692 },
7693 "engines": {
7694 "node": ">=4"
7695 },
7696 "peerDependencies": {
7697 "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8"
7698 }
7699 },
7700 "node_modules/eslint-plugin-import/node_modules/debug": {
7701 "version": "3.2.7",
7702 "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
7703 "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
7704 "dependencies": {
7705 "ms": "^2.1.1"
7706 }
7707 },
7708 "node_modules/eslint-plugin-import/node_modules/doctrine": {
7709 "version": "2.1.0",
7710 "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz",
7711 "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==",
7712 "dependencies": {
7713 "esutils": "^2.0.2"
7714 },
7715 "engines": {
7716 "node": ">=0.10.0"
7717 }
7718 },
7719 "node_modules/eslint-plugin-import/node_modules/semver": {
7720 "version": "6.3.1",
7721 "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
7722 "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
7723 "bin": {
7724 "semver": "bin/semver.js"
7725 }
7726 },
7727 "node_modules/eslint-plugin-jest": {
7728 "version": "25.7.0",
7729 "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-25.7.0.tgz",
7730 "integrity": "sha512-PWLUEXeeF7C9QGKqvdSbzLOiLTx+bno7/HC9eefePfEb257QFHg7ye3dh80AZVkaa/RQsBB1Q/ORQvg2X7F0NQ==",
7731 "dependencies": {
7732 "@typescript-eslint/experimental-utils": "^5.0.0"
7733 },
7734 "engines": {
7735 "node": "^12.13.0 || ^14.15.0 || >=16.0.0"
7736 },
7737 "peerDependencies": {
7738 "@typescript-eslint/eslint-plugin": "^4.0.0 || ^5.0.0",
7739 "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0"
7740 },
7741 "peerDependenciesMeta": {
7742 "@typescript-eslint/eslint-plugin": {
7743 "optional": true
7744 },
7745 "jest": {
7746 "optional": true
7747 }
7748 }
7749 },
7750 "node_modules/eslint-plugin-jsx-a11y": {
7751 "version": "6.9.0",
7752 "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.9.0.tgz",
7753 "integrity": "sha512-nOFOCaJG2pYqORjK19lqPqxMO/JpvdCZdPtNdxY3kvom3jTvkAbOvQvD8wuD0G8BYR0IGAGYDlzqWJOh/ybn2g==",
7754 "dependencies": {
7755 "aria-query": "~5.1.3",
7756 "array-includes": "^3.1.8",
7757 "array.prototype.flatmap": "^1.3.2",
7758 "ast-types-flow": "^0.0.8",
7759 "axe-core": "^4.9.1",
7760 "axobject-query": "~3.1.1",
7761 "damerau-levenshtein": "^1.0.8",
7762 "emoji-regex": "^9.2.2",
7763 "es-iterator-helpers": "^1.0.19",
7764 "hasown": "^2.0.2",
7765 "jsx-ast-utils": "^3.3.5",
7766 "language-tags": "^1.0.9",
7767 "minimatch": "^3.1.2",
7768 "object.fromentries": "^2.0.8",
7769 "safe-regex-test": "^1.0.3",
7770 "string.prototype.includes": "^2.0.0"
7771 },
7772 "engines": {
7773 "node": ">=4.0"
7774 },
7775 "peerDependencies": {
7776 "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8"
7777 }
7778 },
7779 "node_modules/eslint-plugin-react": {
7780 "version": "7.35.0",
7781 "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.35.0.tgz",
7782 "integrity": "sha512-v501SSMOWv8gerHkk+IIQBkcGRGrO2nfybfj5pLxuJNFTPxxA3PSryhXTK+9pNbtkggheDdsC0E9Q8CuPk6JKA==",
7783 "dependencies": {
7784 "array-includes": "^3.1.8",
7785 "array.prototype.findlast": "^1.2.5",
7786 "array.prototype.flatmap": "^1.3.2",
7787 "array.prototype.tosorted": "^1.1.4",
7788 "doctrine": "^2.1.0",
7789 "es-iterator-helpers": "^1.0.19",
7790 "estraverse": "^5.3.0",
7791 "hasown": "^2.0.2",
7792 "jsx-ast-utils": "^2.4.1 || ^3.0.0",
7793 "minimatch": "^3.1.2",
7794 "object.entries": "^1.1.8",
7795 "object.fromentries": "^2.0.8",
7796 "object.values": "^1.2.0",
7797 "prop-types": "^15.8.1",
7798 "resolve": "^2.0.0-next.5",
7799 "semver": "^6.3.1",
7800 "string.prototype.matchall": "^4.0.11",
7801 "string.prototype.repeat": "^1.0.0"
7802 },
7803 "engines": {
7804 "node": ">=4"
7805 },
7806 "peerDependencies": {
7807 "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7"
7808 }
7809 },
7810 "node_modules/eslint-plugin-react-hooks": {
7811 "version": "4.6.2",
7812 "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.2.tgz",
7813 "integrity": "sha512-QzliNJq4GinDBcD8gPB5v0wh6g8q3SUi6EFF0x8N/BL9PoVs0atuGc47ozMRyOWAKdwaZ5OnbOEa3WR+dSGKuQ==",
7814 "engines": {
7815 "node": ">=10"
7816 },
7817 "peerDependencies": {
7818 "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0"
7819 }
7820 },
7821 "node_modules/eslint-plugin-react/node_modules/doctrine": {
7822 "version": "2.1.0",
7823 "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz",
7824 "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==",
7825 "dependencies": {
7826 "esutils": "^2.0.2"
7827 },
7828 "engines": {
7829 "node": ">=0.10.0"
7830 }
7831 },
7832 "node_modules/eslint-plugin-react/node_modules/resolve": {
7833 "version": "2.0.0-next.5",
7834 "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz",
7835 "integrity": "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==",
7836 "dependencies": {
7837 "is-core-module": "^2.13.0",
7838 "path-parse": "^1.0.7",
7839 "supports-preserve-symlinks-flag": "^1.0.0"
7840 },
7841 "bin": {
7842 "resolve": "bin/resolve"
7843 },
7844 "funding": {
7845 "url": "https://github.com/sponsors/ljharb"
7846 }
7847 },
7848 "node_modules/eslint-plugin-react/node_modules/semver": {
7849 "version": "6.3.1",
7850 "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
7851 "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
7852 "bin": {
7853 "semver": "bin/semver.js"
7854 }
7855 },
7856 "node_modules/eslint-plugin-testing-library": {
7857 "version": "5.11.1",
7858 "resolved": "https://registry.npmjs.org/eslint-plugin-testing-library/-/eslint-plugin-testing-library-5.11.1.tgz",
7859 "integrity": "sha512-5eX9e1Kc2PqVRed3taaLnAAqPZGEX75C+M/rXzUAI3wIg/ZxzUm1OVAwfe/O+vE+6YXOLetSe9g5GKD2ecXipw==",
7860 "dependencies": {
7861 "@typescript-eslint/utils": "^5.58.0"
7862 },
7863 "engines": {
7864 "node": "^12.22.0 || ^14.17.0 || >=16.0.0",
7865 "npm": ">=6"
7866 },
7867 "peerDependencies": {
7868 "eslint": "^7.5.0 || ^8.0.0"
7869 }
7870 },
7871 "node_modules/eslint-scope": {
7872 "version": "7.2.2",
7873 "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz",
7874 "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==",
7875 "dependencies": {
7876 "esrecurse": "^4.3.0",
7877 "estraverse": "^5.2.0"
7878 },
7879 "engines": {
7880 "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
7881 },
7882 "funding": {
7883 "url": "https://opencollective.com/eslint"
7884 }
7885 },
7886 "node_modules/eslint-visitor-keys": {
7887 "version": "3.4.3",
7888 "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz",
7889 "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==",
7890 "engines": {
7891 "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
7892 },
7893 "funding": {
7894 "url": "https://opencollective.com/eslint"
7895 } 2251 }
7896 }, 2252 },
7897 "node_modules/eslint-webpack-plugin": { 2253 "node_modules/escalade": {
7898 "version": "3.2.0", 2254 "version": "3.2.0",
7899 "resolved": "https://registry.npmjs.org/eslint-webpack-plugin/-/eslint-webpack-plugin-3.2.0.tgz", 2255 "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz",
7900 "integrity": "sha512-avrKcGncpPbPSUHX6B3stNGzkKFto3eL+DKM4+VyMrVnhPc3vRczVlCq3uhuFOdRvDHTVXuzwk1ZKUrqDQHQ9w==", 2256 "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==",
7901 "dependencies": { 2257 "license": "MIT",
7902 "@types/eslint": "^7.29.0 || ^8.4.1",
7903 "jest-worker": "^28.0.2",
7904 "micromatch": "^4.0.5",
7905 "normalize-path": "^3.0.0",
7906 "schema-utils": "^4.0.0"
7907 },
7908 "engines": {
7909 "node": ">= 12.13.0"
7910 },
7911 "funding": {
7912 "type": "opencollective",
7913 "url": "https://opencollective.com/webpack"
7914 },
7915 "peerDependencies": {
7916 "eslint": "^7.0.0 || ^8.0.0",
7917 "webpack": "^5.0.0"
7918 }
7919 },
7920 "node_modules/eslint-webpack-plugin/node_modules/has-flag": {
7921 "version": "4.0.0",
7922 "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
7923 "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
7924 "engines": {
7925 "node": ">=8"
7926 }
7927 },
7928 "node_modules/eslint-webpack-plugin/node_modules/jest-worker": {
7929 "version": "28.1.3",
7930 "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-28.1.3.tgz",
7931 "integrity": "sha512-CqRA220YV/6jCo8VWvAt1KKx6eek1VIHMPeLEbpcfSfkEeWyBNppynM/o6q+Wmw+sOhos2ml34wZbSX3G13//g==",
7932 "dependencies": {
7933 "@types/node": "*",
7934 "merge-stream": "^2.0.0",
7935 "supports-color": "^8.0.0"
7936 },
7937 "engines": {
7938 "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0"
7939 }
7940 },
7941 "node_modules/eslint-webpack-plugin/node_modules/supports-color": {
7942 "version": "8.1.1",
7943 "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz",
7944 "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==",
7945 "dependencies": {
7946 "has-flag": "^4.0.0"
7947 },
7948 "engines": {
7949 "node": ">=10"
7950 },
7951 "funding": {
7952 "url": "https://github.com/chalk/supports-color?sponsor=1"
7953 }
7954 },
7955 "node_modules/eslint/node_modules/ansi-styles": {
7956 "version": "4.3.0",
7957 "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
7958 "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
7959 "dependencies": {
7960 "color-convert": "^2.0.1"
7961 },
7962 "engines": {
7963 "node": ">=8"
7964 },
7965 "funding": {
7966 "url": "https://github.com/chalk/ansi-styles?sponsor=1"
7967 }
7968 },
7969 "node_modules/eslint/node_modules/argparse": {
7970 "version": "2.0.1",
7971 "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
7972 "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="
7973 },
7974 "node_modules/eslint/node_modules/chalk": {
7975 "version": "4.1.2",
7976 "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
7977 "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
7978 "dependencies": {
7979 "ansi-styles": "^4.1.0",
7980 "supports-color": "^7.1.0"
7981 },
7982 "engines": {
7983 "node": ">=10"
7984 },
7985 "funding": {
7986 "url": "https://github.com/chalk/chalk?sponsor=1"
7987 }
7988 },
7989 "node_modules/eslint/node_modules/color-convert": {
7990 "version": "2.0.1",
7991 "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
7992 "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
7993 "dependencies": {
7994 "color-name": "~1.1.4"
7995 },
7996 "engines": {
7997 "node": ">=7.0.0"
7998 }
7999 },
8000 "node_modules/eslint/node_modules/color-name": {
8001 "version": "1.1.4",
8002 "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
8003 "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
8004 },
8005 "node_modules/eslint/node_modules/escape-string-regexp": {
8006 "version": "4.0.0",
8007 "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
8008 "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
8009 "engines": {
8010 "node": ">=10"
8011 },
8012 "funding": {
8013 "url": "https://github.com/sponsors/sindresorhus"
8014 }
8015 },
8016 "node_modules/eslint/node_modules/find-up": {
8017 "version": "5.0.0",
8018 "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz",
8019 "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==",
8020 "dependencies": {
8021 "locate-path": "^6.0.0",
8022 "path-exists": "^4.0.0"
8023 },
8024 "engines": {
8025 "node": ">=10"
8026 },
8027 "funding": {
8028 "url": "https://github.com/sponsors/sindresorhus"
8029 }
8030 },
8031 "node_modules/eslint/node_modules/globals": {
8032 "version": "13.24.0",
8033 "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz",
8034 "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==",
8035 "dependencies": {
8036 "type-fest": "^0.20.2"
8037 },
8038 "engines": {
8039 "node": ">=8"
8040 },
8041 "funding": {
8042 "url": "https://github.com/sponsors/sindresorhus"
8043 }
8044 },
8045 "node_modules/eslint/node_modules/has-flag": {
8046 "version": "4.0.0",
8047 "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
8048 "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
8049 "engines": {
8050 "node": ">=8"
8051 }
8052 },
8053 "node_modules/eslint/node_modules/js-yaml": {
8054 "version": "4.1.0",
8055 "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
8056 "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
8057 "dependencies": {
8058 "argparse": "^2.0.1"
8059 },
8060 "bin": {
8061 "js-yaml": "bin/js-yaml.js"
8062 }
8063 },
8064 "node_modules/eslint/node_modules/locate-path": {
8065 "version": "6.0.0",
8066 "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz",
8067 "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==",
8068 "dependencies": {
8069 "p-locate": "^5.0.0"
8070 },
8071 "engines": {
8072 "node": ">=10"
8073 },
8074 "funding": {
8075 "url": "https://github.com/sponsors/sindresorhus"
8076 }
8077 },
8078 "node_modules/eslint/node_modules/p-limit": {
8079 "version": "3.1.0",
8080 "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
8081 "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
8082 "dependencies": {
8083 "yocto-queue": "^0.1.0"
8084 },
8085 "engines": {
8086 "node": ">=10"
8087 },
8088 "funding": {
8089 "url": "https://github.com/sponsors/sindresorhus"
8090 }
8091 },
8092 "node_modules/eslint/node_modules/p-locate": {
8093 "version": "5.0.0",
8094 "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz",
8095 "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==",
8096 "dependencies": {
8097 "p-limit": "^3.0.2"
8098 },
8099 "engines": {
8100 "node": ">=10"
8101 },
8102 "funding": {
8103 "url": "https://github.com/sponsors/sindresorhus"
8104 }
8105 },
8106 "node_modules/eslint/node_modules/supports-color": {
8107 "version": "7.2.0",
8108 "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
8109 "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
8110 "dependencies": {
8111 "has-flag": "^4.0.0"
8112 },
8113 "engines": {
8114 "node": ">=8"
8115 }
8116 },
8117 "node_modules/eslint/node_modules/type-fest": {
8118 "version": "0.20.2",
8119 "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz",
8120 "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==",
8121 "engines": {
8122 "node": ">=10"
8123 },
8124 "funding": {
8125 "url": "https://github.com/sponsors/sindresorhus"
8126 }
8127 },
8128 "node_modules/espree": {
8129 "version": "9.6.1",
8130 "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz",
8131 "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==",
8132 "dependencies": {
8133 "acorn": "^8.9.0",
8134 "acorn-jsx": "^5.3.2",
8135 "eslint-visitor-keys": "^3.4.1"
8136 },
8137 "engines": {
8138 "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
8139 },
8140 "funding": {
8141 "url": "https://opencollective.com/eslint"
8142 }
8143 },
8144 "node_modules/esprima": {
8145 "version": "4.0.1",
8146 "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
8147 "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
8148 "bin": {
8149 "esparse": "bin/esparse.js",
8150 "esvalidate": "bin/esvalidate.js"
8151 },
8152 "engines": {
8153 "node": ">=4"
8154 }
8155 },
8156 "node_modules/esquery": {
8157 "version": "1.6.0",
8158 "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz",
8159 "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==",
8160 "dependencies": {
8161 "estraverse": "^5.1.0"
8162 },
8163 "engines": {
8164 "node": ">=0.10"
8165 }
8166 },
8167 "node_modules/esrecurse": {
8168 "version": "4.3.0",
8169 "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz",
8170 "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==",
8171 "dependencies": {
8172 "estraverse": "^5.2.0"
8173 },
8174 "engines": {
8175 "node": ">=4.0"
8176 }
8177 },
8178 "node_modules/estraverse": {
8179 "version": "5.3.0",
8180 "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
8181 "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
8182 "engines": { 2258 "engines": {
8183 "node": ">=4.0" 2259 "node": ">=6"
8184 } 2260 }
8185 }, 2261 },
8186 "node_modules/estree-util-is-identifier-name": { 2262 "node_modules/estree-util-is-identifier-name": {
8187 "version": "3.0.0", 2263 "version": "3.0.0",
8188 "resolved": "https://registry.npmjs.org/estree-util-is-identifier-name/-/estree-util-is-identifier-name-3.0.0.tgz", 2264 "resolved": "https://registry.npmjs.org/estree-util-is-identifier-name/-/estree-util-is-identifier-name-3.0.0.tgz",
8189 "integrity": "sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg==", 2265 "integrity": "sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg==",
2266 "license": "MIT",
8190 "funding": { 2267 "funding": {
8191 "type": "opencollective", 2268 "type": "opencollective",
8192 "url": "https://opencollective.com/unified" 2269 "url": "https://opencollective.com/unified"
8193 } 2270 }
8194 }, 2271 },
8195 "node_modules/estree-walker": {
8196 "version": "1.0.1",
8197 "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz",
8198 "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg=="
8199 },
8200 "node_modules/esutils": {
8201 "version": "2.0.3",
8202 "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
8203 "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
8204 "engines": {
8205 "node": ">=0.10.0"
8206 }
8207 },
8208 "node_modules/etag": {
8209 "version": "1.8.1",
8210 "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
8211 "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==",
8212 "engines": {
8213 "node": ">= 0.6"
8214 }
8215 },
8216 "node_modules/eventemitter3": {
8217 "version": "4.0.7",
8218 "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz",
8219 "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw=="
8220 },
8221 "node_modules/events": {
8222 "version": "3.3.0",
8223 "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz",
8224 "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==",
8225 "engines": {
8226 "node": ">=0.8.x"
8227 }
8228 },
8229 "node_modules/execa": {
8230 "version": "5.1.1",
8231 "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz",
8232 "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==",
8233 "dependencies": {
8234 "cross-spawn": "^7.0.3",
8235 "get-stream": "^6.0.0",
8236 "human-signals": "^2.1.0",
8237 "is-stream": "^2.0.0",
8238 "merge-stream": "^2.0.0",
8239 "npm-run-path": "^4.0.1",
8240 "onetime": "^5.1.2",
8241 "signal-exit": "^3.0.3",
8242 "strip-final-newline": "^2.0.0"
8243 },
8244 "engines": {
8245 "node": ">=10"
8246 },
8247 "funding": {
8248 "url": "https://github.com/sindresorhus/execa?sponsor=1"
8249 }
8250 },
8251 "node_modules/exit": {
8252 "version": "0.1.2",
8253 "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz",
8254 "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==",
8255 "engines": {
8256 "node": ">= 0.8.0"
8257 }
8258 },
8259 "node_modules/expect": {
8260 "version": "27.5.1",
8261 "resolved": "https://registry.npmjs.org/expect/-/expect-27.5.1.tgz",
8262 "integrity": "sha512-E1q5hSUG2AmYQwQJ041nvgpkODHQvB+RKlB4IYdru6uJsyFTRyZAP463M+1lINorwbqAmUggi6+WwkD8lCS/Dw==",
8263 "dependencies": {
8264 "@jest/types": "^27.5.1",
8265 "jest-get-type": "^27.5.1",
8266 "jest-matcher-utils": "^27.5.1",
8267 "jest-message-util": "^27.5.1"
8268 },
8269 "engines": {
8270 "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
8271 }
8272 },
8273 "node_modules/express": {
8274 "version": "4.19.2",
8275 "resolved": "https://registry.npmjs.org/express/-/express-4.19.2.tgz",
8276 "integrity": "sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==",
8277 "dependencies": {
8278 "accepts": "~1.3.8",
8279 "array-flatten": "1.1.1",
8280 "body-parser": "1.20.2",
8281 "content-disposition": "0.5.4",
8282 "content-type": "~1.0.4",
8283 "cookie": "0.6.0",
8284 "cookie-signature": "1.0.6",
8285 "debug": "2.6.9",
8286 "depd": "2.0.0",
8287 "encodeurl": "~1.0.2",
8288 "escape-html": "~1.0.3",
8289 "etag": "~1.8.1",
8290 "finalhandler": "1.2.0",
8291 "fresh": "0.5.2",
8292 "http-errors": "2.0.0",
8293 "merge-descriptors": "1.0.1",
8294 "methods": "~1.1.2",
8295 "on-finished": "2.4.1",
8296 "parseurl": "~1.3.3",
8297 "path-to-regexp": "0.1.7",
8298 "proxy-addr": "~2.0.7",
8299 "qs": "6.11.0",
8300 "range-parser": "~1.2.1",
8301 "safe-buffer": "5.2.1",
8302 "send": "0.18.0",
8303 "serve-static": "1.15.0",
8304 "setprototypeof": "1.2.0",
8305 "statuses": "2.0.1",
8306 "type-is": "~1.6.18",
8307 "utils-merge": "1.0.1",
8308 "vary": "~1.1.2"
8309 },
8310 "engines": {
8311 "node": ">= 0.10.0"
8312 }
8313 },
8314 "node_modules/express/node_modules/debug": {
8315 "version": "2.6.9",
8316 "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
8317 "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
8318 "dependencies": {
8319 "ms": "2.0.0"
8320 }
8321 },
8322 "node_modules/express/node_modules/ms": {
8323 "version": "2.0.0",
8324 "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
8325 "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
8326 },
8327 "node_modules/extend": { 2272 "node_modules/extend": {
8328 "version": "3.0.2", 2273 "version": "3.0.2",
8329 "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", 2274 "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
8330 "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" 2275 "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==",
8331 }, 2276 "license": "MIT"
8332 "node_modules/fast-deep-equal": {
8333 "version": "3.1.3",
8334 "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
8335 "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="
8336 },
8337 "node_modules/fast-glob": {
8338 "version": "3.3.2",
8339 "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz",
8340 "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==",
8341 "dependencies": {
8342 "@nodelib/fs.stat": "^2.0.2",
8343 "@nodelib/fs.walk": "^1.2.3",
8344 "glob-parent": "^5.1.2",
8345 "merge2": "^1.3.0",
8346 "micromatch": "^4.0.4"
8347 },
8348 "engines": {
8349 "node": ">=8.6.0"
8350 }
8351 },
8352 "node_modules/fast-glob/node_modules/glob-parent": {
8353 "version": "5.1.2",
8354 "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
8355 "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
8356 "dependencies": {
8357 "is-glob": "^4.0.1"
8358 },
8359 "engines": {
8360 "node": ">= 6"
8361 }
8362 },
8363 "node_modules/fast-json-stable-stringify": {
8364 "version": "2.1.0",
8365 "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
8366 "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw=="
8367 },
8368 "node_modules/fast-levenshtein": {
8369 "version": "2.0.6",
8370 "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
8371 "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw=="
8372 },
8373 "node_modules/fast-uri": {
8374 "version": "3.0.1",
8375 "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.1.tgz",
8376 "integrity": "sha512-MWipKbbYiYI0UC7cl8m/i/IWTqfC8YXsqjzybjddLsFjStroQzsHXkc73JutMvBiXmOvapk+axIl79ig5t55Bw=="
8377 },
8378 "node_modules/fastq": {
8379 "version": "1.17.1",
8380 "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz",
8381 "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==",
8382 "dependencies": {
8383 "reusify": "^1.0.4"
8384 }
8385 },
8386 "node_modules/faye-websocket": {
8387 "version": "0.11.4",
8388 "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz",
8389 "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==",
8390 "dependencies": {
8391 "websocket-driver": ">=0.5.1"
8392 },
8393 "engines": {
8394 "node": ">=0.8.0"
8395 }
8396 },
8397 "node_modules/fb-watchman": {
8398 "version": "2.0.2",
8399 "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz",
8400 "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==",
8401 "dependencies": {
8402 "bser": "2.1.1"
8403 }
8404 },
8405 "node_modules/file-entry-cache": {
8406 "version": "6.0.1",
8407 "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz",
8408 "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==",
8409 "dependencies": {
8410 "flat-cache": "^3.0.4"
8411 },
8412 "engines": {
8413 "node": "^10.12.0 || >=12.0.0"
8414 }
8415 }, 2277 },
8416 "node_modules/file-loader": { 2278 "node_modules/fdir": {
8417 "version": "6.2.0", 2279 "version": "6.4.6",
8418 "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-6.2.0.tgz", 2280 "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.6.tgz",
8419 "integrity": "sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==", 2281 "integrity": "sha512-hiFoqpyZcfNm1yc4u8oWCf9A2c4D3QjCrks3zmoVKVxpQRzmPNar1hUJcBG2RQHvEVGDN+Jm81ZheVLAQMK6+w==",
8420 "dependencies": { 2282 "license": "MIT",
8421 "loader-utils": "^2.0.0",
8422 "schema-utils": "^3.0.0"
8423 },
8424 "engines": {
8425 "node": ">= 10.13.0"
8426 },
8427 "funding": {
8428 "type": "opencollective",
8429 "url": "https://opencollective.com/webpack"
8430 },
8431 "peerDependencies": { 2283 "peerDependencies": {
8432 "webpack": "^4.0.0 || ^5.0.0" 2284 "picomatch": "^3 || ^4"
8433 }
8434 },
8435 "node_modules/file-loader/node_modules/schema-utils": {
8436 "version": "3.3.0",
8437 "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz",
8438 "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==",
8439 "dependencies": {
8440 "@types/json-schema": "^7.0.8",
8441 "ajv": "^6.12.5",
8442 "ajv-keywords": "^3.5.2"
8443 },
8444 "engines": {
8445 "node": ">= 10.13.0"
8446 },
8447 "funding": {
8448 "type": "opencollective",
8449 "url": "https://opencollective.com/webpack"
8450 }
8451 },
8452 "node_modules/filelist": {
8453 "version": "1.0.4",
8454 "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz",
8455 "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==",
8456 "dependencies": {
8457 "minimatch": "^5.0.1"
8458 }
8459 },
8460 "node_modules/filelist/node_modules/brace-expansion": {
8461 "version": "2.0.1",
8462 "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
8463 "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
8464 "dependencies": {
8465 "balanced-match": "^1.0.0"
8466 }
8467 },
8468 "node_modules/filelist/node_modules/minimatch": {
8469 "version": "5.1.6",
8470 "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz",
8471 "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==",
8472 "dependencies": {
8473 "brace-expansion": "^2.0.1"
8474 },
8475 "engines": {
8476 "node": ">=10"
8477 }
8478 },
8479 "node_modules/filesize": {
8480 "version": "8.0.7",
8481 "resolved": "https://registry.npmjs.org/filesize/-/filesize-8.0.7.tgz",
8482 "integrity": "sha512-pjmC+bkIF8XI7fWaH8KxHcZL3DPybs1roSKP4rKDvy20tAWwIObE4+JIseG2byfGKhud5ZnM4YSGKBz7Sh0ndQ==",
8483 "engines": {
8484 "node": ">= 0.4.0"
8485 }
8486 },
8487 "node_modules/fill-range": {
8488 "version": "7.1.1",
8489 "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz",
8490 "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==",
8491 "dependencies": {
8492 "to-regex-range": "^5.0.1"
8493 },
8494 "engines": {
8495 "node": ">=8"
8496 }
8497 },
8498 "node_modules/finalhandler": {
8499 "version": "1.2.0",
8500 "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz",
8501 "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==",
8502 "dependencies": {
8503 "debug": "2.6.9",
8504 "encodeurl": "~1.0.2",
8505 "escape-html": "~1.0.3",
8506 "on-finished": "2.4.1",
8507 "parseurl": "~1.3.3",
8508 "statuses": "2.0.1",
8509 "unpipe": "~1.0.0"
8510 },
8511 "engines": {
8512 "node": ">= 0.8"
8513 }
8514 },
8515 "node_modules/finalhandler/node_modules/debug": {
8516 "version": "2.6.9",
8517 "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
8518 "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
8519 "dependencies": {
8520 "ms": "2.0.0"
8521 }
8522 },
8523 "node_modules/finalhandler/node_modules/ms": {
8524 "version": "2.0.0",
8525 "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
8526 "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
8527 },
8528 "node_modules/find-cache-dir": {
8529 "version": "3.3.2",
8530 "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz",
8531 "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==",
8532 "dependencies": {
8533 "commondir": "^1.0.1",
8534 "make-dir": "^3.0.2",
8535 "pkg-dir": "^4.1.0"
8536 },
8537 "engines": {
8538 "node": ">=8"
8539 },
8540 "funding": {
8541 "url": "https://github.com/avajs/find-cache-dir?sponsor=1"
8542 }
8543 },
8544 "node_modules/find-up": {
8545 "version": "4.1.0",
8546 "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
8547 "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
8548 "dependencies": {
8549 "locate-path": "^5.0.0",
8550 "path-exists": "^4.0.0"
8551 }, 2285 },
8552 "engines": { 2286 "peerDependenciesMeta": {
8553 "node": ">=8" 2287 "picomatch": {
8554 } 2288 "optional": true
8555 }, 2289 }
8556 "node_modules/flat": {
8557 "version": "5.0.2",
8558 "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz",
8559 "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==",
8560 "dev": true,
8561 "license": "BSD-3-Clause",
8562 "bin": {
8563 "flat": "cli.js"
8564 }
8565 },
8566 "node_modules/flat-cache": {
8567 "version": "3.2.0",
8568 "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz",
8569 "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==",
8570 "dependencies": {
8571 "flatted": "^3.2.9",
8572 "keyv": "^4.5.3",
8573 "rimraf": "^3.0.2"
8574 },
8575 "engines": {
8576 "node": "^10.12.0 || >=12.0.0"
8577 } 2290 }
8578 }, 2291 },
8579 "node_modules/flatted": {
8580 "version": "3.3.1",
8581 "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz",
8582 "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw=="
8583 },
8584 "node_modules/follow-redirects": { 2292 "node_modules/follow-redirects": {
8585 "version": "1.15.6", 2293 "version": "1.15.9",
8586 "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz", 2294 "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.9.tgz",
8587 "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==", 2295 "integrity": "sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==",
8588 "funding": [ 2296 "funding": [
8589 { 2297 {
8590 "type": "individual", 2298 "type": "individual",
8591 "url": "https://github.com/sponsors/RubenVerborgh" 2299 "url": "https://github.com/sponsors/RubenVerborgh"
8592 } 2300 }
8593 ], 2301 ],
2302 "license": "MIT",
8594 "engines": { 2303 "engines": {
8595 "node": ">=4.0" 2304 "node": ">=4.0"
8596 }, 2305 },
@@ -8601,264 +2310,42 @@
8601 } 2310 }
8602 }, 2311 },
8603 "node_modules/for-each": { 2312 "node_modules/for-each": {
8604 "version": "0.3.3", 2313 "version": "0.3.4",
8605 "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", 2314 "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.4.tgz",
8606 "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", 2315 "integrity": "sha512-kKaIINnFpzW6ffJNDjjyjrk21BkDx38c0xa/klsT8VzLCaMEefv4ZTacrcVR4DmgTeBra++jMDAfS/tS799YDw==",
8607 "dependencies": { 2316 "license": "MIT",
8608 "is-callable": "^1.1.3"
8609 }
8610 },
8611 "node_modules/foreground-child": {
8612 "version": "3.3.0",
8613 "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.0.tgz",
8614 "integrity": "sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==",
8615 "dependencies": {
8616 "cross-spawn": "^7.0.0",
8617 "signal-exit": "^4.0.1"
8618 },
8619 "engines": {
8620 "node": ">=14"
8621 },
8622 "funding": {
8623 "url": "https://github.com/sponsors/isaacs"
8624 }
8625 },
8626 "node_modules/foreground-child/node_modules/signal-exit": {
8627 "version": "4.1.0",
8628 "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz",
8629 "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==",
8630 "engines": {
8631 "node": ">=14"
8632 },
8633 "funding": {
8634 "url": "https://github.com/sponsors/isaacs"
8635 }
8636 },
8637 "node_modules/fork-ts-checker-webpack-plugin": {
8638 "version": "6.5.3",
8639 "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-6.5.3.tgz",
8640 "integrity": "sha512-SbH/l9ikmMWycd5puHJKTkZJKddF4iRLyW3DeZ08HTI7NGyLS38MXd/KGgeWumQO7YNQbW2u/NtPT2YowbPaGQ==",
8641 "dependencies": {
8642 "@babel/code-frame": "^7.8.3",
8643 "@types/json-schema": "^7.0.5",
8644 "chalk": "^4.1.0",
8645 "chokidar": "^3.4.2",
8646 "cosmiconfig": "^6.0.0",
8647 "deepmerge": "^4.2.2",
8648 "fs-extra": "^9.0.0",
8649 "glob": "^7.1.6",
8650 "memfs": "^3.1.2",
8651 "minimatch": "^3.0.4",
8652 "schema-utils": "2.7.0",
8653 "semver": "^7.3.2",
8654 "tapable": "^1.0.0"
8655 },
8656 "engines": {
8657 "node": ">=10",
8658 "yarn": ">=1.0.0"
8659 },
8660 "peerDependencies": {
8661 "eslint": ">= 6",
8662 "typescript": ">= 2.7",
8663 "vue-template-compiler": "*",
8664 "webpack": ">= 4"
8665 },
8666 "peerDependenciesMeta": {
8667 "eslint": {
8668 "optional": true
8669 },
8670 "vue-template-compiler": {
8671 "optional": true
8672 }
8673 }
8674 },
8675 "node_modules/fork-ts-checker-webpack-plugin/node_modules/ansi-styles": {
8676 "version": "4.3.0",
8677 "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
8678 "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
8679 "dependencies": {
8680 "color-convert": "^2.0.1"
8681 },
8682 "engines": {
8683 "node": ">=8"
8684 },
8685 "funding": {
8686 "url": "https://github.com/chalk/ansi-styles?sponsor=1"
8687 }
8688 },
8689 "node_modules/fork-ts-checker-webpack-plugin/node_modules/chalk": {
8690 "version": "4.1.2",
8691 "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
8692 "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
8693 "dependencies": {
8694 "ansi-styles": "^4.1.0",
8695 "supports-color": "^7.1.0"
8696 },
8697 "engines": {
8698 "node": ">=10"
8699 },
8700 "funding": {
8701 "url": "https://github.com/chalk/chalk?sponsor=1"
8702 }
8703 },
8704 "node_modules/fork-ts-checker-webpack-plugin/node_modules/color-convert": {
8705 "version": "2.0.1",
8706 "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
8707 "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
8708 "dependencies": {
8709 "color-name": "~1.1.4"
8710 },
8711 "engines": {
8712 "node": ">=7.0.0"
8713 }
8714 },
8715 "node_modules/fork-ts-checker-webpack-plugin/node_modules/color-name": {
8716 "version": "1.1.4",
8717 "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
8718 "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
8719 },
8720 "node_modules/fork-ts-checker-webpack-plugin/node_modules/cosmiconfig": {
8721 "version": "6.0.0",
8722 "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz",
8723 "integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==",
8724 "dependencies": {
8725 "@types/parse-json": "^4.0.0",
8726 "import-fresh": "^3.1.0",
8727 "parse-json": "^5.0.0",
8728 "path-type": "^4.0.0",
8729 "yaml": "^1.7.2"
8730 },
8731 "engines": {
8732 "node": ">=8"
8733 }
8734 },
8735 "node_modules/fork-ts-checker-webpack-plugin/node_modules/fs-extra": {
8736 "version": "9.1.0",
8737 "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz",
8738 "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==",
8739 "dependencies": {
8740 "at-least-node": "^1.0.0",
8741 "graceful-fs": "^4.2.0",
8742 "jsonfile": "^6.0.1",
8743 "universalify": "^2.0.0"
8744 },
8745 "engines": {
8746 "node": ">=10"
8747 }
8748 },
8749 "node_modules/fork-ts-checker-webpack-plugin/node_modules/has-flag": {
8750 "version": "4.0.0",
8751 "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
8752 "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
8753 "engines": {
8754 "node": ">=8"
8755 }
8756 },
8757 "node_modules/fork-ts-checker-webpack-plugin/node_modules/schema-utils": {
8758 "version": "2.7.0",
8759 "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.0.tgz",
8760 "integrity": "sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==",
8761 "dependencies": { 2317 "dependencies": {
8762 "@types/json-schema": "^7.0.4", 2318 "is-callable": "^1.2.7"
8763 "ajv": "^6.12.2",
8764 "ajv-keywords": "^3.4.1"
8765 }, 2319 },
8766 "engines": { 2320 "engines": {
8767 "node": ">= 8.9.0" 2321 "node": ">= 0.4"
8768 }, 2322 },
8769 "funding": { 2323 "funding": {
8770 "type": "opencollective", 2324 "url": "https://github.com/sponsors/ljharb"
8771 "url": "https://opencollective.com/webpack"
8772 }
8773 },
8774 "node_modules/fork-ts-checker-webpack-plugin/node_modules/supports-color": {
8775 "version": "7.2.0",
8776 "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
8777 "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
8778 "dependencies": {
8779 "has-flag": "^4.0.0"
8780 },
8781 "engines": {
8782 "node": ">=8"
8783 }
8784 },
8785 "node_modules/fork-ts-checker-webpack-plugin/node_modules/tapable": {
8786 "version": "1.1.3",
8787 "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz",
8788 "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==",
8789 "engines": {
8790 "node": ">=6"
8791 } 2325 }
8792 }, 2326 },
8793 "node_modules/form-data": { 2327 "node_modules/form-data": {
8794 "version": "3.0.1", 2328 "version": "4.0.4",
8795 "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", 2329 "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.4.tgz",
8796 "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", 2330 "integrity": "sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow==",
2331 "license": "MIT",
8797 "dependencies": { 2332 "dependencies": {
8798 "asynckit": "^0.4.0", 2333 "asynckit": "^0.4.0",
8799 "combined-stream": "^1.0.8", 2334 "combined-stream": "^1.0.8",
2335 "es-set-tostringtag": "^2.1.0",
2336 "hasown": "^2.0.2",
8800 "mime-types": "^2.1.12" 2337 "mime-types": "^2.1.12"
8801 }, 2338 },
8802 "engines": { 2339 "engines": {
8803 "node": ">= 6" 2340 "node": ">= 6"
8804 } 2341 }
8805 }, 2342 },
8806 "node_modules/forwarded": {
8807 "version": "0.2.0",
8808 "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz",
8809 "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==",
8810 "engines": {
8811 "node": ">= 0.6"
8812 }
8813 },
8814 "node_modules/fraction.js": {
8815 "version": "4.3.7",
8816 "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz",
8817 "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==",
8818 "engines": {
8819 "node": "*"
8820 },
8821 "funding": {
8822 "type": "patreon",
8823 "url": "https://github.com/sponsors/rawify"
8824 }
8825 },
8826 "node_modules/fresh": {
8827 "version": "0.5.2",
8828 "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
8829 "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==",
8830 "engines": {
8831 "node": ">= 0.6"
8832 }
8833 },
8834 "node_modules/fs-extra": {
8835 "version": "10.1.0",
8836 "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz",
8837 "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==",
8838 "dependencies": {
8839 "graceful-fs": "^4.2.0",
8840 "jsonfile": "^6.0.1",
8841 "universalify": "^2.0.0"
8842 },
8843 "engines": {
8844 "node": ">=12"
8845 }
8846 },
8847 "node_modules/fs-monkey": {
8848 "version": "1.0.6",
8849 "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.6.tgz",
8850 "integrity": "sha512-b1FMfwetIKymC0eioW7mTywihSQE4oLzQn1dB6rZB5fx/3NpNEdAWeCSMB+60/AeT0TCXsxzAlcYVEFCTAksWg=="
8851 },
8852 "node_modules/fs.realpath": {
8853 "version": "1.0.0",
8854 "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
8855 "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw=="
8856 },
8857 "node_modules/fsevents": { 2343 "node_modules/fsevents": {
8858 "version": "2.3.3", 2344 "version": "2.3.3",
8859 "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", 2345 "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
8860 "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", 2346 "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
8861 "hasInstallScript": true, 2347 "hasInstallScript": true,
2348 "license": "MIT",
8862 "optional": true, 2349 "optional": true,
8863 "os": [ 2350 "os": [
8864 "darwin" 2351 "darwin"
@@ -8871,23 +2358,7 @@
8871 "version": "1.1.2", 2358 "version": "1.1.2",
8872 "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", 2359 "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
8873 "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", 2360 "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
8874 "funding": { 2361 "license": "MIT",
8875 "url": "https://github.com/sponsors/ljharb"
8876 }
8877 },
8878 "node_modules/function.prototype.name": {
8879 "version": "1.1.6",
8880 "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz",
8881 "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==",
8882 "dependencies": {
8883 "call-bind": "^1.0.2",
8884 "define-properties": "^1.2.0",
8885 "es-abstract": "^1.22.1",
8886 "functions-have-names": "^1.2.3"
8887 },
8888 "engines": {
8889 "node": ">= 0.4"
8890 },
8891 "funding": { 2362 "funding": {
8892 "url": "https://github.com/sponsors/ljharb" 2363 "url": "https://github.com/sponsors/ljharb"
8893 } 2364 }
@@ -8896,6 +2367,7 @@
8896 "version": "1.2.3", 2367 "version": "1.2.3",
8897 "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", 2368 "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz",
8898 "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", 2369 "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==",
2370 "license": "MIT",
8899 "funding": { 2371 "funding": {
8900 "url": "https://github.com/sponsors/ljharb" 2372 "url": "https://github.com/sponsors/ljharb"
8901 } 2373 }
@@ -8904,28 +2376,27 @@
8904 "version": "1.0.0-beta.2", 2376 "version": "1.0.0-beta.2",
8905 "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", 2377 "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz",
8906 "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", 2378 "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==",
2379 "license": "MIT",
8907 "engines": { 2380 "engines": {
8908 "node": ">=6.9.0" 2381 "node": ">=6.9.0"
8909 } 2382 }
8910 }, 2383 },
8911 "node_modules/get-caller-file": {
8912 "version": "2.0.5",
8913 "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
8914 "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
8915 "engines": {
8916 "node": "6.* || 8.* || >= 10.*"
8917 }
8918 },
8919 "node_modules/get-intrinsic": { 2384 "node_modules/get-intrinsic": {
8920 "version": "1.2.4", 2385 "version": "1.2.7",
8921 "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", 2386 "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.7.tgz",
8922 "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", 2387 "integrity": "sha512-VW6Pxhsrk0KAOqs3WEd0klDiF/+V7gQOpAvY1jVU/LHmaD/kQO4523aiJuikX/QAKYiW6x8Jh+RJej1almdtCA==",
2388 "license": "MIT",
8923 "dependencies": { 2389 "dependencies": {
2390 "call-bind-apply-helpers": "^1.0.1",
2391 "es-define-property": "^1.0.1",
8924 "es-errors": "^1.3.0", 2392 "es-errors": "^1.3.0",
2393 "es-object-atoms": "^1.0.0",
8925 "function-bind": "^1.1.2", 2394 "function-bind": "^1.1.2",
8926 "has-proto": "^1.0.1", 2395 "get-proto": "^1.0.0",
8927 "has-symbols": "^1.0.3", 2396 "gopd": "^1.2.0",
8928 "hasown": "^2.0.0" 2397 "has-symbols": "^1.1.0",
2398 "hasown": "^2.0.2",
2399 "math-intrinsics": "^1.1.0"
8929 }, 2400 },
8930 "engines": { 2401 "engines": {
8931 "node": ">= 0.4" 2402 "node": ">= 0.4"
@@ -8934,133 +2405,24 @@
8934 "url": "https://github.com/sponsors/ljharb" 2405 "url": "https://github.com/sponsors/ljharb"
8935 } 2406 }
8936 }, 2407 },
8937 "node_modules/get-own-enumerable-property-symbols": { 2408 "node_modules/get-proto": {
8938 "version": "3.0.2", 2409 "version": "1.0.1",
8939 "resolved": "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz", 2410 "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz",
8940 "integrity": "sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==" 2411 "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==",
8941 }, 2412 "license": "MIT",
8942 "node_modules/get-package-type": {
8943 "version": "0.1.0",
8944 "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz",
8945 "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==",
8946 "engines": {
8947 "node": ">=8.0.0"
8948 }
8949 },
8950 "node_modules/get-stream": {
8951 "version": "6.0.1",
8952 "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz",
8953 "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==",
8954 "engines": {
8955 "node": ">=10"
8956 },
8957 "funding": {
8958 "url": "https://github.com/sponsors/sindresorhus"
8959 }
8960 },
8961 "node_modules/get-symbol-description": {
8962 "version": "1.0.2",
8963 "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz",
8964 "integrity": "sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==",
8965 "dependencies": { 2413 "dependencies": {
8966 "call-bind": "^1.0.5", 2414 "dunder-proto": "^1.0.1",
8967 "es-errors": "^1.3.0", 2415 "es-object-atoms": "^1.0.0"
8968 "get-intrinsic": "^1.2.4"
8969 }, 2416 },
8970 "engines": { 2417 "engines": {
8971 "node": ">= 0.4" 2418 "node": ">= 0.4"
8972 },
8973 "funding": {
8974 "url": "https://github.com/sponsors/ljharb"
8975 }
8976 },
8977 "node_modules/glob": {
8978 "version": "7.2.3",
8979 "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
8980 "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
8981 "deprecated": "Glob versions prior to v9 are no longer supported",
8982 "dependencies": {
8983 "fs.realpath": "^1.0.0",
8984 "inflight": "^1.0.4",
8985 "inherits": "2",
8986 "minimatch": "^3.1.1",
8987 "once": "^1.3.0",
8988 "path-is-absolute": "^1.0.0"
8989 },
8990 "engines": {
8991 "node": "*"
8992 },
8993 "funding": {
8994 "url": "https://github.com/sponsors/isaacs"
8995 }
8996 },
8997 "node_modules/glob-parent": {
8998 "version": "6.0.2",
8999 "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz",
9000 "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==",
9001 "dependencies": {
9002 "is-glob": "^4.0.3"
9003 },
9004 "engines": {
9005 "node": ">=10.13.0"
9006 }
9007 },
9008 "node_modules/glob-to-regexp": {
9009 "version": "0.4.1",
9010 "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz",
9011 "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw=="
9012 },
9013 "node_modules/global-modules": {
9014 "version": "2.0.0",
9015 "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz",
9016 "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==",
9017 "dependencies": {
9018 "global-prefix": "^3.0.0"
9019 },
9020 "engines": {
9021 "node": ">=6"
9022 } 2419 }
9023 }, 2420 },
9024 "node_modules/global-prefix": { 2421 "node_modules/gopd": {
9025 "version": "3.0.0", 2422 "version": "1.2.0",
9026 "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", 2423 "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz",
9027 "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", 2424 "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==",
9028 "dependencies": { 2425 "license": "MIT",
9029 "ini": "^1.3.5",
9030 "kind-of": "^6.0.2",
9031 "which": "^1.3.1"
9032 },
9033 "engines": {
9034 "node": ">=6"
9035 }
9036 },
9037 "node_modules/global-prefix/node_modules/which": {
9038 "version": "1.3.1",
9039 "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
9040 "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
9041 "dependencies": {
9042 "isexe": "^2.0.0"
9043 },
9044 "bin": {
9045 "which": "bin/which"
9046 }
9047 },
9048 "node_modules/globals": {
9049 "version": "11.12.0",
9050 "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz",
9051 "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==",
9052 "engines": {
9053 "node": ">=4"
9054 }
9055 },
9056 "node_modules/globalthis": {
9057 "version": "1.0.4",
9058 "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz",
9059 "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==",
9060 "dependencies": {
9061 "define-properties": "^1.2.1",
9062 "gopd": "^1.0.1"
9063 },
9064 "engines": { 2426 "engines": {
9065 "node": ">= 0.4" 2427 "node": ">= 0.4"
9066 }, 2428 },
@@ -9068,90 +2430,38 @@
9068 "url": "https://github.com/sponsors/ljharb" 2430 "url": "https://github.com/sponsors/ljharb"
9069 } 2431 }
9070 }, 2432 },
9071 "node_modules/globby": {
9072 "version": "11.1.0",
9073 "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz",
9074 "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==",
9075 "dependencies": {
9076 "array-union": "^2.1.0",
9077 "dir-glob": "^3.0.1",
9078 "fast-glob": "^3.2.9",
9079 "ignore": "^5.2.0",
9080 "merge2": "^1.4.1",
9081 "slash": "^3.0.0"
9082 },
9083 "engines": {
9084 "node": ">=10"
9085 },
9086 "funding": {
9087 "url": "https://github.com/sponsors/sindresorhus"
9088 }
9089 },
9090 "node_modules/gopd": {
9091 "version": "1.0.1",
9092 "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz",
9093 "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==",
9094 "dependencies": {
9095 "get-intrinsic": "^1.1.3"
9096 },
9097 "funding": {
9098 "url": "https://github.com/sponsors/ljharb"
9099 }
9100 },
9101 "node_modules/graceful-fs": { 2433 "node_modules/graceful-fs": {
9102 "version": "4.2.11", 2434 "version": "4.2.11",
9103 "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", 2435 "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz",
9104 "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" 2436 "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==",
9105 }, 2437 "license": "ISC"
9106 "node_modules/graphemer": {
9107 "version": "1.4.0",
9108 "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz",
9109 "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag=="
9110 }, 2438 },
9111 "node_modules/gzip-size": { 2439 "node_modules/has-bigints": {
9112 "version": "6.0.0", 2440 "version": "1.1.0",
9113 "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-6.0.0.tgz", 2441 "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.1.0.tgz",
9114 "integrity": "sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==", 2442 "integrity": "sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==",
9115 "dependencies": { 2443 "license": "MIT",
9116 "duplexer": "^0.1.2"
9117 },
9118 "engines": { 2444 "engines": {
9119 "node": ">=10" 2445 "node": ">= 0.4"
9120 }, 2446 },
9121 "funding": { 2447 "funding": {
9122 "url": "https://github.com/sponsors/sindresorhus"
9123 }
9124 },
9125 "node_modules/handle-thing": {
9126 "version": "2.0.1",
9127 "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz",
9128 "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg=="
9129 },
9130 "node_modules/harmony-reflect": {
9131 "version": "1.6.2",
9132 "resolved": "https://registry.npmjs.org/harmony-reflect/-/harmony-reflect-1.6.2.tgz",
9133 "integrity": "sha512-HIp/n38R9kQjDEziXyDTuW3vvoxxyxjxFzXLrBr18uB47GnSt+G9D29fqrpM5ZkspMcPICud3XsBJQ4Y2URg8g=="
9134 },
9135 "node_modules/has-bigints": {
9136 "version": "1.0.2",
9137 "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz",
9138 "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==",
9139 "funding": {
9140 "url": "https://github.com/sponsors/ljharb" 2448 "url": "https://github.com/sponsors/ljharb"
9141 } 2449 }
9142 }, 2450 },
9143 "node_modules/has-flag": { 2451 "node_modules/has-flag": {
9144 "version": "3.0.0", 2452 "version": "4.0.0",
9145 "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", 2453 "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
9146 "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", 2454 "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
2455 "license": "MIT",
9147 "engines": { 2456 "engines": {
9148 "node": ">=4" 2457 "node": ">=8"
9149 } 2458 }
9150 }, 2459 },
9151 "node_modules/has-property-descriptors": { 2460 "node_modules/has-property-descriptors": {
9152 "version": "1.0.2", 2461 "version": "1.0.2",
9153 "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", 2462 "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz",
9154 "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", 2463 "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==",
2464 "license": "MIT",
9155 "dependencies": { 2465 "dependencies": {
9156 "es-define-property": "^1.0.0" 2466 "es-define-property": "^1.0.0"
9157 }, 2467 },
@@ -9159,21 +2469,11 @@
9159 "url": "https://github.com/sponsors/ljharb" 2469 "url": "https://github.com/sponsors/ljharb"
9160 } 2470 }
9161 }, 2471 },
9162 "node_modules/has-proto": {
9163 "version": "1.0.3",
9164 "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz",
9165 "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==",
9166 "engines": {
9167 "node": ">= 0.4"
9168 },
9169 "funding": {
9170 "url": "https://github.com/sponsors/ljharb"
9171 }
9172 },
9173 "node_modules/has-symbols": { 2472 "node_modules/has-symbols": {
9174 "version": "1.0.3", 2473 "version": "1.1.0",
9175 "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", 2474 "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz",
9176 "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", 2475 "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==",
2476 "license": "MIT",
9177 "engines": { 2477 "engines": {
9178 "node": ">= 0.4" 2478 "node": ">= 0.4"
9179 }, 2479 },
@@ -9185,6 +2485,7 @@
9185 "version": "1.0.2", 2485 "version": "1.0.2",
9186 "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", 2486 "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz",
9187 "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", 2487 "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==",
2488 "license": "MIT",
9188 "dependencies": { 2489 "dependencies": {
9189 "has-symbols": "^1.0.3" 2490 "has-symbols": "^1.0.3"
9190 }, 2491 },
@@ -9199,6 +2500,7 @@
9199 "version": "2.0.2", 2500 "version": "2.0.2",
9200 "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", 2501 "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz",
9201 "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", 2502 "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==",
2503 "license": "MIT",
9202 "dependencies": { 2504 "dependencies": {
9203 "function-bind": "^1.1.2" 2505 "function-bind": "^1.1.2"
9204 }, 2506 },
@@ -9207,9 +2509,10 @@
9207 } 2509 }
9208 }, 2510 },
9209 "node_modules/hast-util-to-jsx-runtime": { 2511 "node_modules/hast-util-to-jsx-runtime": {
9210 "version": "2.3.0", 2512 "version": "2.3.2",
9211 "resolved": "https://registry.npmjs.org/hast-util-to-jsx-runtime/-/hast-util-to-jsx-runtime-2.3.0.tgz", 2513 "resolved": "https://registry.npmjs.org/hast-util-to-jsx-runtime/-/hast-util-to-jsx-runtime-2.3.2.tgz",
9212 "integrity": "sha512-H/y0+IWPdsLLS738P8tDnrQ8Z+dj12zQQ6WC11TIM21C8WFVoIxcqWXf2H3hiTVZjF1AWqoimGwrTWecWrnmRQ==", 2514 "integrity": "sha512-1ngXYb+V9UT5h+PxNRa1O1FYguZK/XL+gkeqvp7EdHlB9oHUG0eYRo/vY5inBdcqo3RkPMC58/H94HvkbfGdyg==",
2515 "license": "MIT",
9213 "dependencies": { 2516 "dependencies": {
9214 "@types/estree": "^1.0.0", 2517 "@types/estree": "^1.0.0",
9215 "@types/hast": "^3.0.0", 2518 "@types/hast": "^3.0.0",
@@ -9236,6 +2539,7 @@
9236 "version": "3.0.0", 2539 "version": "3.0.0",
9237 "resolved": "https://registry.npmjs.org/hast-util-whitespace/-/hast-util-whitespace-3.0.0.tgz", 2540 "resolved": "https://registry.npmjs.org/hast-util-whitespace/-/hast-util-whitespace-3.0.0.tgz",
9238 "integrity": "sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==", 2541 "integrity": "sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==",
2542 "license": "MIT",
9239 "dependencies": { 2543 "dependencies": {
9240 "@types/hast": "^3.0.0" 2544 "@types/hast": "^3.0.0"
9241 }, 2545 },
@@ -9244,430 +2548,50 @@
9244 "url": "https://opencollective.com/unified" 2548 "url": "https://opencollective.com/unified"
9245 } 2549 }
9246 }, 2550 },
9247 "node_modules/he": {
9248 "version": "1.2.0",
9249 "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz",
9250 "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==",
9251 "bin": {
9252 "he": "bin/he"
9253 }
9254 },
9255 "node_modules/hoopy": {
9256 "version": "0.1.4",
9257 "resolved": "https://registry.npmjs.org/hoopy/-/hoopy-0.1.4.tgz",
9258 "integrity": "sha512-HRcs+2mr52W0K+x8RzcLzuPPmVIKMSv97RGHy0Ea9y/mpcaK+xTrjICA04KAHi4GRzxliNqNJEFYWHghy3rSfQ==",
9259 "engines": {
9260 "node": ">= 6.0.0"
9261 }
9262 },
9263 "node_modules/hpack.js": {
9264 "version": "2.1.6",
9265 "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz",
9266 "integrity": "sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==",
9267 "dependencies": {
9268 "inherits": "^2.0.1",
9269 "obuf": "^1.0.0",
9270 "readable-stream": "^2.0.1",
9271 "wbuf": "^1.1.0"
9272 }
9273 },
9274 "node_modules/hpack.js/node_modules/isarray": {
9275 "version": "1.0.0",
9276 "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
9277 "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ=="
9278 },
9279 "node_modules/hpack.js/node_modules/readable-stream": {
9280 "version": "2.3.8",
9281 "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz",
9282 "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==",
9283 "dependencies": {
9284 "core-util-is": "~1.0.0",
9285 "inherits": "~2.0.3",
9286 "isarray": "~1.0.0",
9287 "process-nextick-args": "~2.0.0",
9288 "safe-buffer": "~5.1.1",
9289 "string_decoder": "~1.1.1",
9290 "util-deprecate": "~1.0.1"
9291 }
9292 },
9293 "node_modules/hpack.js/node_modules/safe-buffer": {
9294 "version": "5.1.2",
9295 "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
9296 "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
9297 },
9298 "node_modules/hpack.js/node_modules/string_decoder": {
9299 "version": "1.1.1",
9300 "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
9301 "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
9302 "dependencies": {
9303 "safe-buffer": "~5.1.0"
9304 }
9305 },
9306 "node_modules/html-encoding-sniffer": {
9307 "version": "2.0.1",
9308 "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz",
9309 "integrity": "sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==",
9310 "dependencies": {
9311 "whatwg-encoding": "^1.0.5"
9312 },
9313 "engines": {
9314 "node": ">=10"
9315 }
9316 },
9317 "node_modules/html-entities": {
9318 "version": "2.5.2",
9319 "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.5.2.tgz",
9320 "integrity": "sha512-K//PSRMQk4FZ78Kyau+mZurHn3FH0Vwr+H36eE0rPbeYkRRi9YxceYPhuN60UwWorxyKHhqoAJl2OFKa4BVtaA==",
9321 "funding": [
9322 {
9323 "type": "github",
9324 "url": "https://github.com/sponsors/mdevils"
9325 },
9326 {
9327 "type": "patreon",
9328 "url": "https://patreon.com/mdevils"
9329 }
9330 ]
9331 },
9332 "node_modules/html-escaper": {
9333 "version": "2.0.2",
9334 "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz",
9335 "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg=="
9336 },
9337 "node_modules/html-minifier-terser": {
9338 "version": "6.1.0",
9339 "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz",
9340 "integrity": "sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==",
9341 "dependencies": {
9342 "camel-case": "^4.1.2",
9343 "clean-css": "^5.2.2",
9344 "commander": "^8.3.0",
9345 "he": "^1.2.0",
9346 "param-case": "^3.0.4",
9347 "relateurl": "^0.2.7",
9348 "terser": "^5.10.0"
9349 },
9350 "bin": {
9351 "html-minifier-terser": "cli.js"
9352 },
9353 "engines": {
9354 "node": ">=12"
9355 }
9356 },
9357 "node_modules/html-url-attributes": { 2551 "node_modules/html-url-attributes": {
9358 "version": "3.0.0", 2552 "version": "3.0.1",
9359 "resolved": "https://registry.npmjs.org/html-url-attributes/-/html-url-attributes-3.0.0.tgz", 2553 "resolved": "https://registry.npmjs.org/html-url-attributes/-/html-url-attributes-3.0.1.tgz",
9360 "integrity": "sha512-/sXbVCWayk6GDVg3ctOX6nxaVj7So40FcFAnWlWGNAB1LpYKcV5Cd10APjPjW80O7zYW2MsjBV4zZ7IZO5fVow==", 2554 "integrity": "sha512-ol6UPyBWqsrO6EJySPz2O7ZSr856WDrEzM5zMqp+FJJLGMW35cLYmmZnl0vztAZxRUoNZJFTCohfjuIJ8I4QBQ==",
2555 "license": "MIT",
9361 "funding": { 2556 "funding": {
9362 "type": "opencollective", 2557 "type": "opencollective",
9363 "url": "https://opencollective.com/unified" 2558 "url": "https://opencollective.com/unified"
9364 } 2559 }
9365 }, 2560 },
9366 "node_modules/html-webpack-plugin": {
9367 "version": "5.6.0",
9368 "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-5.6.0.tgz",
9369 "integrity": "sha512-iwaY4wzbe48AfKLZ/Cc8k0L+FKG6oSNRaZ8x5A/T/IVDGyXcbHncM9TdDa93wn0FsSm82FhTKW7f3vS61thXAw==",
9370 "dependencies": {
9371 "@types/html-minifier-terser": "^6.0.0",
9372 "html-minifier-terser": "^6.0.2",
9373 "lodash": "^4.17.21",
9374 "pretty-error": "^4.0.0",
9375 "tapable": "^2.0.0"
9376 },
9377 "engines": {
9378 "node": ">=10.13.0"
9379 },
9380 "funding": {
9381 "type": "opencollective",
9382 "url": "https://opencollective.com/html-webpack-plugin"
9383 },
9384 "peerDependencies": {
9385 "@rspack/core": "0.x || 1.x",
9386 "webpack": "^5.20.0"
9387 },
9388 "peerDependenciesMeta": {
9389 "@rspack/core": {
9390 "optional": true
9391 },
9392 "webpack": {
9393 "optional": true
9394 }
9395 }
9396 },
9397 "node_modules/htmlparser2": {
9398 "version": "6.1.0",
9399 "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz",
9400 "integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==",
9401 "funding": [
9402 "https://github.com/fb55/htmlparser2?sponsor=1",
9403 {
9404 "type": "github",
9405 "url": "https://github.com/sponsors/fb55"
9406 }
9407 ],
9408 "dependencies": {
9409 "domelementtype": "^2.0.1",
9410 "domhandler": "^4.0.0",
9411 "domutils": "^2.5.2",
9412 "entities": "^2.0.0"
9413 }
9414 },
9415 "node_modules/http-deceiver": {
9416 "version": "1.2.7",
9417 "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz",
9418 "integrity": "sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw=="
9419 },
9420 "node_modules/http-errors": {
9421 "version": "2.0.0",
9422 "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz",
9423 "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==",
9424 "dependencies": {
9425 "depd": "2.0.0",
9426 "inherits": "2.0.4",
9427 "setprototypeof": "1.2.0",
9428 "statuses": "2.0.1",
9429 "toidentifier": "1.0.1"
9430 },
9431 "engines": {
9432 "node": ">= 0.8"
9433 }
9434 },
9435 "node_modules/http-parser-js": {
9436 "version": "0.5.8",
9437 "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.8.tgz",
9438 "integrity": "sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q=="
9439 },
9440 "node_modules/http-proxy": {
9441 "version": "1.18.1",
9442 "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz",
9443 "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==",
9444 "dependencies": {
9445 "eventemitter3": "^4.0.0",
9446 "follow-redirects": "^1.0.0",
9447 "requires-port": "^1.0.0"
9448 },
9449 "engines": {
9450 "node": ">=8.0.0"
9451 }
9452 },
9453 "node_modules/http-proxy-agent": {
9454 "version": "4.0.1",
9455 "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz",
9456 "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==",
9457 "dependencies": {
9458 "@tootallnate/once": "1",
9459 "agent-base": "6",
9460 "debug": "4"
9461 },
9462 "engines": {
9463 "node": ">= 6"
9464 }
9465 },
9466 "node_modules/http-proxy-middleware": {
9467 "version": "2.0.6",
9468 "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.6.tgz",
9469 "integrity": "sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==",
9470 "dependencies": {
9471 "@types/http-proxy": "^1.17.8",
9472 "http-proxy": "^1.18.1",
9473 "is-glob": "^4.0.1",
9474 "is-plain-obj": "^3.0.0",
9475 "micromatch": "^4.0.2"
9476 },
9477 "engines": {
9478 "node": ">=12.0.0"
9479 },
9480 "peerDependencies": {
9481 "@types/express": "^4.17.13"
9482 },
9483 "peerDependenciesMeta": {
9484 "@types/express": {
9485 "optional": true
9486 }
9487 }
9488 },
9489 "node_modules/https-proxy-agent": {
9490 "version": "5.0.1",
9491 "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz",
9492 "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==",
9493 "dependencies": {
9494 "agent-base": "6",
9495 "debug": "4"
9496 },
9497 "engines": {
9498 "node": ">= 6"
9499 }
9500 },
9501 "node_modules/human-signals": {
9502 "version": "2.1.0",
9503 "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz",
9504 "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==",
9505 "engines": {
9506 "node": ">=10.17.0"
9507 }
9508 },
9509 "node_modules/iconv-lite": {
9510 "version": "0.6.3",
9511 "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz",
9512 "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==",
9513 "dependencies": {
9514 "safer-buffer": ">= 2.1.2 < 3.0.0"
9515 },
9516 "engines": {
9517 "node": ">=0.10.0"
9518 }
9519 },
9520 "node_modules/icss-utils": {
9521 "version": "5.1.0",
9522 "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz",
9523 "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==",
9524 "engines": {
9525 "node": "^10 || ^12 || >= 14"
9526 },
9527 "peerDependencies": {
9528 "postcss": "^8.1.0"
9529 }
9530 },
9531 "node_modules/idb": {
9532 "version": "7.1.1",
9533 "resolved": "https://registry.npmjs.org/idb/-/idb-7.1.1.tgz",
9534 "integrity": "sha512-gchesWBzyvGHRO9W8tzUWFDycow5gwjvFKfyV9FF32Y7F50yZMp7mP+T2mJIWFx49zicqyC4uefHM17o6xKIVQ=="
9535 },
9536 "node_modules/identity-obj-proxy": {
9537 "version": "3.0.0",
9538 "resolved": "https://registry.npmjs.org/identity-obj-proxy/-/identity-obj-proxy-3.0.0.tgz",
9539 "integrity": "sha512-00n6YnVHKrinT9t0d9+5yZC6UBNJANpYEQvL2LlX6Ab9lnmxzIRcEmTPuyGScvl1+jKuCICX1Z0Ab1pPKKdikA==",
9540 "dependencies": {
9541 "harmony-reflect": "^1.4.6"
9542 },
9543 "engines": {
9544 "node": ">=4"
9545 }
9546 },
9547 "node_modules/ignore": {
9548 "version": "5.3.2",
9549 "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz",
9550 "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==",
9551 "engines": {
9552 "node": ">= 4"
9553 }
9554 },
9555 "node_modules/immer": {
9556 "version": "9.0.21",
9557 "resolved": "https://registry.npmjs.org/immer/-/immer-9.0.21.tgz",
9558 "integrity": "sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA==",
9559 "funding": {
9560 "type": "opencollective",
9561 "url": "https://opencollective.com/immer"
9562 }
9563 },
9564 "node_modules/import-fresh": {
9565 "version": "3.3.0",
9566 "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz",
9567 "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==",
9568 "dependencies": {
9569 "parent-module": "^1.0.0",
9570 "resolve-from": "^4.0.0"
9571 },
9572 "engines": {
9573 "node": ">=6"
9574 },
9575 "funding": {
9576 "url": "https://github.com/sponsors/sindresorhus"
9577 }
9578 },
9579 "node_modules/import-fresh/node_modules/resolve-from": {
9580 "version": "4.0.0",
9581 "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
9582 "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
9583 "engines": {
9584 "node": ">=4"
9585 }
9586 },
9587 "node_modules/import-local": {
9588 "version": "3.2.0",
9589 "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.2.0.tgz",
9590 "integrity": "sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA==",
9591 "dependencies": {
9592 "pkg-dir": "^4.2.0",
9593 "resolve-cwd": "^3.0.0"
9594 },
9595 "bin": {
9596 "import-local-fixture": "fixtures/cli.js"
9597 },
9598 "engines": {
9599 "node": ">=8"
9600 },
9601 "funding": {
9602 "url": "https://github.com/sponsors/sindresorhus"
9603 }
9604 },
9605 "node_modules/imurmurhash": {
9606 "version": "0.1.4",
9607 "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
9608 "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==",
9609 "engines": {
9610 "node": ">=0.8.19"
9611 }
9612 },
9613 "node_modules/indent-string": { 2561 "node_modules/indent-string": {
9614 "version": "4.0.0", 2562 "version": "4.0.0",
9615 "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", 2563 "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz",
9616 "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", 2564 "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==",
2565 "license": "MIT",
9617 "engines": { 2566 "engines": {
9618 "node": ">=8" 2567 "node": ">=8"
9619 } 2568 }
9620 }, 2569 },
9621 "node_modules/inflight": {
9622 "version": "1.0.6",
9623 "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
9624 "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
9625 "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.",
9626 "dependencies": {
9627 "once": "^1.3.0",
9628 "wrappy": "1"
9629 }
9630 },
9631 "node_modules/inherits": {
9632 "version": "2.0.4",
9633 "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
9634 "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
9635 },
9636 "node_modules/ini": {
9637 "version": "1.3.8",
9638 "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz",
9639 "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew=="
9640 },
9641 "node_modules/inline-style-parser": { 2570 "node_modules/inline-style-parser": {
9642 "version": "0.2.3", 2571 "version": "0.2.4",
9643 "resolved": "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.2.3.tgz", 2572 "resolved": "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.2.4.tgz",
9644 "integrity": "sha512-qlD8YNDqyTKTyuITrDOffsl6Tdhv+UC4hcdAVuQsK4IMQ99nSgd1MIA/Q+jQYoh9r3hVUXhYh7urSRmXPkW04g==" 2573 "integrity": "sha512-0aO8FkhNZlj/ZIbNi7Lxxr12obT7cL1moPfE4tg1LkX7LlLfC6DeX4l2ZEud1ukP9jNQyNnfzQVqwbwmAATY4Q==",
2574 "license": "MIT"
9645 }, 2575 },
9646 "node_modules/internal-slot": { 2576 "node_modules/internal-slot": {
9647 "version": "1.0.7", 2577 "version": "1.1.0",
9648 "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz", 2578 "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.1.0.tgz",
9649 "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==", 2579 "integrity": "sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==",
2580 "license": "MIT",
9650 "dependencies": { 2581 "dependencies": {
9651 "es-errors": "^1.3.0", 2582 "es-errors": "^1.3.0",
9652 "hasown": "^2.0.0", 2583 "hasown": "^2.0.2",
9653 "side-channel": "^1.0.4" 2584 "side-channel": "^1.1.0"
9654 }, 2585 },
9655 "engines": { 2586 "engines": {
9656 "node": ">= 0.4" 2587 "node": ">= 0.4"
9657 } 2588 }
9658 }, 2589 },
9659 "node_modules/ipaddr.js": {
9660 "version": "2.2.0",
9661 "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.2.0.tgz",
9662 "integrity": "sha512-Ag3wB2o37wslZS19hZqorUnrnzSkpOVy+IiiDEiTqNubEYpYuHWIf6K4psgN2ZWKExS4xhVCrRVfb/wfW8fWJA==",
9663 "engines": {
9664 "node": ">= 10"
9665 }
9666 },
9667 "node_modules/is-alphabetical": { 2590 "node_modules/is-alphabetical": {
9668 "version": "2.0.1", 2591 "version": "2.0.1",
9669 "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-2.0.1.tgz", 2592 "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-2.0.1.tgz",
9670 "integrity": "sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==", 2593 "integrity": "sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==",
2594 "license": "MIT",
9671 "funding": { 2595 "funding": {
9672 "type": "github", 2596 "type": "github",
9673 "url": "https://github.com/sponsors/wooorm" 2597 "url": "https://github.com/sponsors/wooorm"
@@ -9677,6 +2601,7 @@
9677 "version": "2.0.1", 2601 "version": "2.0.1",
9678 "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-2.0.1.tgz", 2602 "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-2.0.1.tgz",
9679 "integrity": "sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==", 2603 "integrity": "sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==",
2604 "license": "MIT",
9680 "dependencies": { 2605 "dependencies": {
9681 "is-alphabetical": "^2.0.0", 2606 "is-alphabetical": "^2.0.0",
9682 "is-decimal": "^2.0.0" 2607 "is-decimal": "^2.0.0"
@@ -9687,12 +2612,13 @@
9687 } 2612 }
9688 }, 2613 },
9689 "node_modules/is-arguments": { 2614 "node_modules/is-arguments": {
9690 "version": "1.1.1", 2615 "version": "1.2.0",
9691 "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", 2616 "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.2.0.tgz",
9692 "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", 2617 "integrity": "sha512-7bVbi0huj/wrIAOzb8U1aszg9kdi3KN/CyU19CTI7tAoZYEZoL9yCDXpbXN+uPsuWnP02cyug1gleqq+TU+YCA==",
2618 "license": "MIT",
9693 "dependencies": { 2619 "dependencies": {
9694 "call-bind": "^1.0.2", 2620 "call-bound": "^1.0.2",
9695 "has-tostringtag": "^1.0.0" 2621 "has-tostringtag": "^1.0.2"
9696 }, 2622 },
9697 "engines": { 2623 "engines": {
9698 "node": ">= 0.4" 2624 "node": ">= 0.4"
@@ -9702,12 +2628,14 @@
9702 } 2628 }
9703 }, 2629 },
9704 "node_modules/is-array-buffer": { 2630 "node_modules/is-array-buffer": {
9705 "version": "3.0.4", 2631 "version": "3.0.5",
9706 "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz", 2632 "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.5.tgz",
9707 "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==", 2633 "integrity": "sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==",
2634 "license": "MIT",
9708 "dependencies": { 2635 "dependencies": {
9709 "call-bind": "^1.0.2", 2636 "call-bind": "^1.0.8",
9710 "get-intrinsic": "^1.2.1" 2637 "call-bound": "^1.0.3",
2638 "get-intrinsic": "^1.2.6"
9711 }, 2639 },
9712 "engines": { 2640 "engines": {
9713 "node": ">= 0.4" 2641 "node": ">= 0.4"
@@ -9716,17 +2644,13 @@
9716 "url": "https://github.com/sponsors/ljharb" 2644 "url": "https://github.com/sponsors/ljharb"
9717 } 2645 }
9718 }, 2646 },
9719 "node_modules/is-arrayish": { 2647 "node_modules/is-bigint": {
9720 "version": "0.2.1", 2648 "version": "1.1.0",
9721 "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", 2649 "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.1.0.tgz",
9722 "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==" 2650 "integrity": "sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==",
9723 }, 2651 "license": "MIT",
9724 "node_modules/is-async-function": {
9725 "version": "2.0.0",
9726 "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.0.0.tgz",
9727 "integrity": "sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==",
9728 "dependencies": { 2652 "dependencies": {
9729 "has-tostringtag": "^1.0.0" 2653 "has-bigints": "^1.0.2"
9730 }, 2654 },
9731 "engines": { 2655 "engines": {
9732 "node": ">= 0.4" 2656 "node": ">= 0.4"
@@ -9735,35 +2659,14 @@
9735 "url": "https://github.com/sponsors/ljharb" 2659 "url": "https://github.com/sponsors/ljharb"
9736 } 2660 }
9737 }, 2661 },
9738 "node_modules/is-bigint": {
9739 "version": "1.0.4",
9740 "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz",
9741 "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==",
9742 "dependencies": {
9743 "has-bigints": "^1.0.1"
9744 },
9745 "funding": {
9746 "url": "https://github.com/sponsors/ljharb"
9747 }
9748 },
9749 "node_modules/is-binary-path": {
9750 "version": "2.1.0",
9751 "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
9752 "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
9753 "dependencies": {
9754 "binary-extensions": "^2.0.0"
9755 },
9756 "engines": {
9757 "node": ">=8"
9758 }
9759 },
9760 "node_modules/is-boolean-object": { 2662 "node_modules/is-boolean-object": {
9761 "version": "1.1.2", 2663 "version": "1.2.1",
9762 "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", 2664 "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.2.1.tgz",
9763 "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", 2665 "integrity": "sha512-l9qO6eFlUETHtuihLcYOaLKByJ1f+N4kthcU9YjHy3N+B3hWv0y/2Nd0mu/7lTFnRQHTrSdXF50HQ3bl5fEnng==",
2666 "license": "MIT",
9764 "dependencies": { 2667 "dependencies": {
9765 "call-bind": "^1.0.2", 2668 "call-bound": "^1.0.2",
9766 "has-tostringtag": "^1.0.0" 2669 "has-tostringtag": "^1.0.2"
9767 }, 2670 },
9768 "engines": { 2671 "engines": {
9769 "node": ">= 0.4" 2672 "node": ">= 0.4"
@@ -9776,34 +2679,7 @@
9776 "version": "1.2.7", 2679 "version": "1.2.7",
9777 "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", 2680 "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz",
9778 "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", 2681 "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==",
9779 "engines": { 2682 "license": "MIT",
9780 "node": ">= 0.4"
9781 },
9782 "funding": {
9783 "url": "https://github.com/sponsors/ljharb"
9784 }
9785 },
9786 "node_modules/is-core-module": {
9787 "version": "2.15.0",
9788 "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.15.0.tgz",
9789 "integrity": "sha512-Dd+Lb2/zvk9SKy1TGCt1wFJFo/MWBPMX5x7KcvLajWTGuomczdQX61PvY5yK6SVACwpoexWo81IfFyoKY2QnTA==",
9790 "dependencies": {
9791 "hasown": "^2.0.2"
9792 },
9793 "engines": {
9794 "node": ">= 0.4"
9795 },
9796 "funding": {
9797 "url": "https://github.com/sponsors/ljharb"
9798 }
9799 },
9800 "node_modules/is-data-view": {
9801 "version": "1.0.1",
9802 "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.1.tgz",
9803 "integrity": "sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==",
9804 "dependencies": {
9805 "is-typed-array": "^1.1.13"
9806 },
9807 "engines": { 2683 "engines": {
9808 "node": ">= 0.4" 2684 "node": ">= 0.4"
9809 }, 2685 },
@@ -9812,11 +2688,13 @@
9812 } 2688 }
9813 }, 2689 },
9814 "node_modules/is-date-object": { 2690 "node_modules/is-date-object": {
9815 "version": "1.0.5", 2691 "version": "1.1.0",
9816 "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", 2692 "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.1.0.tgz",
9817 "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", 2693 "integrity": "sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==",
2694 "license": "MIT",
9818 "dependencies": { 2695 "dependencies": {
9819 "has-tostringtag": "^1.0.0" 2696 "call-bound": "^1.0.2",
2697 "has-tostringtag": "^1.0.2"
9820 }, 2698 },
9821 "engines": { 2699 "engines": {
9822 "node": ">= 0.4" 2700 "node": ">= 0.4"
@@ -9829,89 +2707,17 @@
9829 "version": "2.0.1", 2707 "version": "2.0.1",
9830 "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-2.0.1.tgz", 2708 "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-2.0.1.tgz",
9831 "integrity": "sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==", 2709 "integrity": "sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==",
2710 "license": "MIT",
9832 "funding": { 2711 "funding": {
9833 "type": "github", 2712 "type": "github",
9834 "url": "https://github.com/sponsors/wooorm" 2713 "url": "https://github.com/sponsors/wooorm"
9835 } 2714 }
9836 }, 2715 },
9837 "node_modules/is-docker": {
9838 "version": "2.2.1",
9839 "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz",
9840 "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==",
9841 "bin": {
9842 "is-docker": "cli.js"
9843 },
9844 "engines": {
9845 "node": ">=8"
9846 },
9847 "funding": {
9848 "url": "https://github.com/sponsors/sindresorhus"
9849 }
9850 },
9851 "node_modules/is-extglob": {
9852 "version": "2.1.1",
9853 "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
9854 "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
9855 "engines": {
9856 "node": ">=0.10.0"
9857 }
9858 },
9859 "node_modules/is-finalizationregistry": {
9860 "version": "1.0.2",
9861 "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.0.2.tgz",
9862 "integrity": "sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==",
9863 "dependencies": {
9864 "call-bind": "^1.0.2"
9865 },
9866 "funding": {
9867 "url": "https://github.com/sponsors/ljharb"
9868 }
9869 },
9870 "node_modules/is-fullwidth-code-point": {
9871 "version": "3.0.0",
9872 "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
9873 "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
9874 "engines": {
9875 "node": ">=8"
9876 }
9877 },
9878 "node_modules/is-generator-fn": {
9879 "version": "2.1.0",
9880 "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz",
9881 "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==",
9882 "engines": {
9883 "node": ">=6"
9884 }
9885 },
9886 "node_modules/is-generator-function": {
9887 "version": "1.0.10",
9888 "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz",
9889 "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==",
9890 "dependencies": {
9891 "has-tostringtag": "^1.0.0"
9892 },
9893 "engines": {
9894 "node": ">= 0.4"
9895 },
9896 "funding": {
9897 "url": "https://github.com/sponsors/ljharb"
9898 }
9899 },
9900 "node_modules/is-glob": {
9901 "version": "4.0.3",
9902 "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
9903 "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
9904 "dependencies": {
9905 "is-extglob": "^2.1.1"
9906 },
9907 "engines": {
9908 "node": ">=0.10.0"
9909 }
9910 },
9911 "node_modules/is-hexadecimal": { 2716 "node_modules/is-hexadecimal": {
9912 "version": "2.0.1", 2717 "version": "2.0.1",
9913 "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-2.0.1.tgz", 2718 "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-2.0.1.tgz",
9914 "integrity": "sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==", 2719 "integrity": "sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==",
2720 "license": "MIT",
9915 "funding": { 2721 "funding": {
9916 "type": "github", 2722 "type": "github",
9917 "url": "https://github.com/sponsors/wooorm" 2723 "url": "https://github.com/sponsors/wooorm"
@@ -9921,6 +2727,7 @@
9921 "version": "2.0.3", 2727 "version": "2.0.3",
9922 "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz", 2728 "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz",
9923 "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==", 2729 "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==",
2730 "license": "MIT",
9924 "engines": { 2731 "engines": {
9925 "node": ">= 0.4" 2732 "node": ">= 0.4"
9926 }, 2733 },
@@ -9928,36 +2735,14 @@
9928 "url": "https://github.com/sponsors/ljharb" 2735 "url": "https://github.com/sponsors/ljharb"
9929 } 2736 }
9930 }, 2737 },
9931 "node_modules/is-module": {
9932 "version": "1.0.0",
9933 "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz",
9934 "integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g=="
9935 },
9936 "node_modules/is-negative-zero": {
9937 "version": "2.0.3",
9938 "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz",
9939 "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==",
9940 "engines": {
9941 "node": ">= 0.4"
9942 },
9943 "funding": {
9944 "url": "https://github.com/sponsors/ljharb"
9945 }
9946 },
9947 "node_modules/is-number": {
9948 "version": "7.0.0",
9949 "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
9950 "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
9951 "engines": {
9952 "node": ">=0.12.0"
9953 }
9954 },
9955 "node_modules/is-number-object": { 2738 "node_modules/is-number-object": {
9956 "version": "1.0.7", 2739 "version": "1.1.1",
9957 "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", 2740 "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.1.1.tgz",
9958 "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", 2741 "integrity": "sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==",
2742 "license": "MIT",
9959 "dependencies": { 2743 "dependencies": {
9960 "has-tostringtag": "^1.0.0" 2744 "call-bound": "^1.0.3",
2745 "has-tostringtag": "^1.0.2"
9961 }, 2746 },
9962 "engines": { 2747 "engines": {
9963 "node": ">= 0.4" 2748 "node": ">= 0.4"
@@ -9966,58 +2751,28 @@
9966 "url": "https://github.com/sponsors/ljharb" 2751 "url": "https://github.com/sponsors/ljharb"
9967 } 2752 }
9968 }, 2753 },
9969 "node_modules/is-obj": {
9970 "version": "1.0.1",
9971 "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz",
9972 "integrity": "sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==",
9973 "engines": {
9974 "node": ">=0.10.0"
9975 }
9976 },
9977 "node_modules/is-path-inside": {
9978 "version": "3.0.3",
9979 "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz",
9980 "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==",
9981 "engines": {
9982 "node": ">=8"
9983 }
9984 },
9985 "node_modules/is-plain-obj": { 2754 "node_modules/is-plain-obj": {
9986 "version": "3.0.0", 2755 "version": "4.1.0",
9987 "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", 2756 "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz",
9988 "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==", 2757 "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==",
2758 "license": "MIT",
9989 "engines": { 2759 "engines": {
9990 "node": ">=10" 2760 "node": ">=12"
9991 }, 2761 },
9992 "funding": { 2762 "funding": {
9993 "url": "https://github.com/sponsors/sindresorhus" 2763 "url": "https://github.com/sponsors/sindresorhus"
9994 } 2764 }
9995 }, 2765 },
9996 "node_modules/is-plain-object": {
9997 "version": "2.0.4",
9998 "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz",
9999 "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==",
10000 "dev": true,
10001 "license": "MIT",
10002 "dependencies": {
10003 "isobject": "^3.0.1"
10004 },
10005 "engines": {
10006 "node": ">=0.10.0"
10007 }
10008 },
10009 "node_modules/is-potential-custom-element-name": {
10010 "version": "1.0.1",
10011 "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz",
10012 "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ=="
10013 },
10014 "node_modules/is-regex": { 2766 "node_modules/is-regex": {
10015 "version": "1.1.4", 2767 "version": "1.2.1",
10016 "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", 2768 "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz",
10017 "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", 2769 "integrity": "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==",
2770 "license": "MIT",
10018 "dependencies": { 2771 "dependencies": {
10019 "call-bind": "^1.0.2", 2772 "call-bound": "^1.0.2",
10020 "has-tostringtag": "^1.0.0" 2773 "gopd": "^1.2.0",
2774 "has-tostringtag": "^1.0.2",
2775 "hasown": "^2.0.2"
10021 }, 2776 },
10022 "engines": { 2777 "engines": {
10023 "node": ">= 0.4" 2778 "node": ">= 0.4"
@@ -10026,26 +2781,11 @@
10026 "url": "https://github.com/sponsors/ljharb" 2781 "url": "https://github.com/sponsors/ljharb"
10027 } 2782 }
10028 }, 2783 },
10029 "node_modules/is-regexp": {
10030 "version": "1.0.0",
10031 "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz",
10032 "integrity": "sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA==",
10033 "engines": {
10034 "node": ">=0.10.0"
10035 }
10036 },
10037 "node_modules/is-root": {
10038 "version": "2.1.0",
10039 "resolved": "https://registry.npmjs.org/is-root/-/is-root-2.1.0.tgz",
10040 "integrity": "sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg==",
10041 "engines": {
10042 "node": ">=6"
10043 }
10044 },
10045 "node_modules/is-set": { 2784 "node_modules/is-set": {
10046 "version": "2.0.3", 2785 "version": "2.0.3",
10047 "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz", 2786 "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz",
10048 "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==", 2787 "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==",
2788 "license": "MIT",
10049 "engines": { 2789 "engines": {
10050 "node": ">= 0.4" 2790 "node": ">= 0.4"
10051 }, 2791 },
@@ -10054,11 +2794,12 @@
10054 } 2794 }
10055 }, 2795 },
10056 "node_modules/is-shared-array-buffer": { 2796 "node_modules/is-shared-array-buffer": {
10057 "version": "1.0.3", 2797 "version": "1.0.4",
10058 "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz", 2798 "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.4.tgz",
10059 "integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==", 2799 "integrity": "sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==",
2800 "license": "MIT",
10060 "dependencies": { 2801 "dependencies": {
10061 "call-bind": "^1.0.7" 2802 "call-bound": "^1.0.3"
10062 }, 2803 },
10063 "engines": { 2804 "engines": {
10064 "node": ">= 0.4" 2805 "node": ">= 0.4"
@@ -10067,23 +2808,14 @@
10067 "url": "https://github.com/sponsors/ljharb" 2808 "url": "https://github.com/sponsors/ljharb"
10068 } 2809 }
10069 }, 2810 },
10070 "node_modules/is-stream": {
10071 "version": "2.0.1",
10072 "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz",
10073 "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==",
10074 "engines": {
10075 "node": ">=8"
10076 },
10077 "funding": {
10078 "url": "https://github.com/sponsors/sindresorhus"
10079 }
10080 },
10081 "node_modules/is-string": { 2811 "node_modules/is-string": {
10082 "version": "1.0.7", 2812 "version": "1.1.1",
10083 "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", 2813 "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.1.1.tgz",
10084 "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", 2814 "integrity": "sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==",
2815 "license": "MIT",
10085 "dependencies": { 2816 "dependencies": {
10086 "has-tostringtag": "^1.0.0" 2817 "call-bound": "^1.0.3",
2818 "has-tostringtag": "^1.0.2"
10087 }, 2819 },
10088 "engines": { 2820 "engines": {
10089 "node": ">= 0.4" 2821 "node": ">= 0.4"
@@ -10093,25 +2825,14 @@
10093 } 2825 }
10094 }, 2826 },
10095 "node_modules/is-symbol": { 2827 "node_modules/is-symbol": {
10096 "version": "1.0.4", 2828 "version": "1.1.1",
10097 "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", 2829 "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.1.1.tgz",
10098 "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", 2830 "integrity": "sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==",
10099 "dependencies": { 2831 "license": "MIT",
10100 "has-symbols": "^1.0.2"
10101 },
10102 "engines": {
10103 "node": ">= 0.4"
10104 },
10105 "funding": {
10106 "url": "https://github.com/sponsors/ljharb"
10107 }
10108 },
10109 "node_modules/is-typed-array": {
10110 "version": "1.1.13",
10111 "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz",
10112 "integrity": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==",
10113 "dependencies": { 2832 "dependencies": {
10114 "which-typed-array": "^1.1.14" 2833 "call-bound": "^1.0.2",
2834 "has-symbols": "^1.1.0",
2835 "safe-regex-test": "^1.1.0"
10115 }, 2836 },
10116 "engines": { 2837 "engines": {
10117 "node": ">= 0.4" 2838 "node": ">= 0.4"
@@ -10120,15 +2841,11 @@
10120 "url": "https://github.com/sponsors/ljharb" 2841 "url": "https://github.com/sponsors/ljharb"
10121 } 2842 }
10122 }, 2843 },
10123 "node_modules/is-typedarray": {
10124 "version": "1.0.0",
10125 "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
10126 "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA=="
10127 },
10128 "node_modules/is-weakmap": { 2844 "node_modules/is-weakmap": {
10129 "version": "2.0.2", 2845 "version": "2.0.2",
10130 "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz", 2846 "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz",
10131 "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==", 2847 "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==",
2848 "license": "MIT",
10132 "engines": { 2849 "engines": {
10133 "node": ">= 0.4" 2850 "node": ">= 0.4"
10134 }, 2851 },
@@ -10136,24 +2853,14 @@
10136 "url": "https://github.com/sponsors/ljharb" 2853 "url": "https://github.com/sponsors/ljharb"
10137 } 2854 }
10138 }, 2855 },
10139 "node_modules/is-weakref": {
10140 "version": "1.0.2",
10141 "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz",
10142 "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==",
10143 "dependencies": {
10144 "call-bind": "^1.0.2"
10145 },
10146 "funding": {
10147 "url": "https://github.com/sponsors/ljharb"
10148 }
10149 },
10150 "node_modules/is-weakset": { 2856 "node_modules/is-weakset": {
10151 "version": "2.0.3", 2857 "version": "2.0.4",
10152 "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.3.tgz", 2858 "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.4.tgz",
10153 "integrity": "sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==", 2859 "integrity": "sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==",
2860 "license": "MIT",
10154 "dependencies": { 2861 "dependencies": {
10155 "call-bind": "^1.0.7", 2862 "call-bound": "^1.0.3",
10156 "get-intrinsic": "^1.2.4" 2863 "get-intrinsic": "^1.2.6"
10157 }, 2864 },
10158 "engines": { 2865 "engines": {
10159 "node": ">= 0.4" 2866 "node": ">= 0.4"
@@ -10162,591 +2869,17 @@
10162 "url": "https://github.com/sponsors/ljharb" 2869 "url": "https://github.com/sponsors/ljharb"
10163 } 2870 }
10164 }, 2871 },
10165 "node_modules/is-wsl": {
10166 "version": "2.2.0",
10167 "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz",
10168 "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==",
10169 "dependencies": {
10170 "is-docker": "^2.0.0"
10171 },
10172 "engines": {
10173 "node": ">=8"
10174 }
10175 },
10176 "node_modules/isarray": { 2872 "node_modules/isarray": {
10177 "version": "2.0.5", 2873 "version": "2.0.5",
10178 "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", 2874 "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz",
10179 "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==" 2875 "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==",
10180 }, 2876 "license": "MIT"
10181 "node_modules/isexe": {
10182 "version": "2.0.0",
10183 "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
10184 "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw=="
10185 },
10186 "node_modules/isobject": {
10187 "version": "3.0.1",
10188 "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
10189 "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==",
10190 "dev": true,
10191 "license": "MIT",
10192 "engines": {
10193 "node": ">=0.10.0"
10194 }
10195 },
10196 "node_modules/istanbul-lib-coverage": {
10197 "version": "3.2.2",
10198 "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz",
10199 "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==",
10200 "engines": {
10201 "node": ">=8"
10202 }
10203 },
10204 "node_modules/istanbul-lib-instrument": {
10205 "version": "5.2.1",
10206 "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz",
10207 "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==",
10208 "dependencies": {
10209 "@babel/core": "^7.12.3",
10210 "@babel/parser": "^7.14.7",
10211 "@istanbuljs/schema": "^0.1.2",
10212 "istanbul-lib-coverage": "^3.2.0",
10213 "semver": "^6.3.0"
10214 },
10215 "engines": {
10216 "node": ">=8"
10217 }
10218 },
10219 "node_modules/istanbul-lib-instrument/node_modules/semver": {
10220 "version": "6.3.1",
10221 "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
10222 "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
10223 "bin": {
10224 "semver": "bin/semver.js"
10225 }
10226 },
10227 "node_modules/istanbul-lib-report": {
10228 "version": "3.0.1",
10229 "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz",
10230 "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==",
10231 "dependencies": {
10232 "istanbul-lib-coverage": "^3.0.0",
10233 "make-dir": "^4.0.0",
10234 "supports-color": "^7.1.0"
10235 },
10236 "engines": {
10237 "node": ">=10"
10238 }
10239 },
10240 "node_modules/istanbul-lib-report/node_modules/has-flag": {
10241 "version": "4.0.0",
10242 "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
10243 "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
10244 "engines": {
10245 "node": ">=8"
10246 }
10247 },
10248 "node_modules/istanbul-lib-report/node_modules/make-dir": {
10249 "version": "4.0.0",
10250 "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz",
10251 "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==",
10252 "dependencies": {
10253 "semver": "^7.5.3"
10254 },
10255 "engines": {
10256 "node": ">=10"
10257 },
10258 "funding": {
10259 "url": "https://github.com/sponsors/sindresorhus"
10260 }
10261 },
10262 "node_modules/istanbul-lib-report/node_modules/supports-color": {
10263 "version": "7.2.0",
10264 "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
10265 "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
10266 "dependencies": {
10267 "has-flag": "^4.0.0"
10268 },
10269 "engines": {
10270 "node": ">=8"
10271 }
10272 },
10273 "node_modules/istanbul-lib-source-maps": {
10274 "version": "4.0.1",
10275 "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz",
10276 "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==",
10277 "dependencies": {
10278 "debug": "^4.1.1",
10279 "istanbul-lib-coverage": "^3.0.0",
10280 "source-map": "^0.6.1"
10281 },
10282 "engines": {
10283 "node": ">=10"
10284 }
10285 },
10286 "node_modules/istanbul-lib-source-maps/node_modules/source-map": {
10287 "version": "0.6.1",
10288 "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
10289 "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
10290 "engines": {
10291 "node": ">=0.10.0"
10292 }
10293 },
10294 "node_modules/istanbul-reports": {
10295 "version": "3.1.7",
10296 "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.7.tgz",
10297 "integrity": "sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==",
10298 "dependencies": {
10299 "html-escaper": "^2.0.0",
10300 "istanbul-lib-report": "^3.0.0"
10301 },
10302 "engines": {
10303 "node": ">=8"
10304 }
10305 },
10306 "node_modules/iterator.prototype": {
10307 "version": "1.1.2",
10308 "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.2.tgz",
10309 "integrity": "sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==",
10310 "dependencies": {
10311 "define-properties": "^1.2.1",
10312 "get-intrinsic": "^1.2.1",
10313 "has-symbols": "^1.0.3",
10314 "reflect.getprototypeof": "^1.0.4",
10315 "set-function-name": "^2.0.1"
10316 }
10317 },
10318 "node_modules/jackspeak": {
10319 "version": "3.4.3",
10320 "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz",
10321 "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==",
10322 "dependencies": {
10323 "@isaacs/cliui": "^8.0.2"
10324 },
10325 "funding": {
10326 "url": "https://github.com/sponsors/isaacs"
10327 },
10328 "optionalDependencies": {
10329 "@pkgjs/parseargs": "^0.11.0"
10330 }
10331 },
10332 "node_modules/jake": {
10333 "version": "10.9.2",
10334 "resolved": "https://registry.npmjs.org/jake/-/jake-10.9.2.tgz",
10335 "integrity": "sha512-2P4SQ0HrLQ+fw6llpLnOaGAvN2Zu6778SJMrCUwns4fOoG9ayrTiZk3VV8sCPkVZF8ab0zksVpS8FDY5pRCNBA==",
10336 "dependencies": {
10337 "async": "^3.2.3",
10338 "chalk": "^4.0.2",
10339 "filelist": "^1.0.4",
10340 "minimatch": "^3.1.2"
10341 },
10342 "bin": {
10343 "jake": "bin/cli.js"
10344 },
10345 "engines": {
10346 "node": ">=10"
10347 }
10348 },
10349 "node_modules/jake/node_modules/ansi-styles": {
10350 "version": "4.3.0",
10351 "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
10352 "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
10353 "dependencies": {
10354 "color-convert": "^2.0.1"
10355 },
10356 "engines": {
10357 "node": ">=8"
10358 },
10359 "funding": {
10360 "url": "https://github.com/chalk/ansi-styles?sponsor=1"
10361 }
10362 },
10363 "node_modules/jake/node_modules/chalk": {
10364 "version": "4.1.2",
10365 "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
10366 "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
10367 "dependencies": {
10368 "ansi-styles": "^4.1.0",
10369 "supports-color": "^7.1.0"
10370 },
10371 "engines": {
10372 "node": ">=10"
10373 },
10374 "funding": {
10375 "url": "https://github.com/chalk/chalk?sponsor=1"
10376 }
10377 },
10378 "node_modules/jake/node_modules/color-convert": {
10379 "version": "2.0.1",
10380 "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
10381 "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
10382 "dependencies": {
10383 "color-name": "~1.1.4"
10384 },
10385 "engines": {
10386 "node": ">=7.0.0"
10387 }
10388 },
10389 "node_modules/jake/node_modules/color-name": {
10390 "version": "1.1.4",
10391 "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
10392 "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
10393 },
10394 "node_modules/jake/node_modules/has-flag": {
10395 "version": "4.0.0",
10396 "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
10397 "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
10398 "engines": {
10399 "node": ">=8"
10400 }
10401 },
10402 "node_modules/jake/node_modules/supports-color": {
10403 "version": "7.2.0",
10404 "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
10405 "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
10406 "dependencies": {
10407 "has-flag": "^4.0.0"
10408 },
10409 "engines": {
10410 "node": ">=8"
10411 }
10412 },
10413 "node_modules/jest": {
10414 "version": "27.5.1",
10415 "resolved": "https://registry.npmjs.org/jest/-/jest-27.5.1.tgz",
10416 "integrity": "sha512-Yn0mADZB89zTtjkPJEXwrac3LHudkQMR+Paqa8uxJHCBr9agxztUifWCyiYrjhMPBoUVBjyny0I7XH6ozDr7QQ==",
10417 "dependencies": {
10418 "@jest/core": "^27.5.1",
10419 "import-local": "^3.0.2",
10420 "jest-cli": "^27.5.1"
10421 },
10422 "bin": {
10423 "jest": "bin/jest.js"
10424 },
10425 "engines": {
10426 "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
10427 },
10428 "peerDependencies": {
10429 "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0"
10430 },
10431 "peerDependenciesMeta": {
10432 "node-notifier": {
10433 "optional": true
10434 }
10435 }
10436 },
10437 "node_modules/jest-changed-files": {
10438 "version": "27.5.1",
10439 "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-27.5.1.tgz",
10440 "integrity": "sha512-buBLMiByfWGCoMsLLzGUUSpAmIAGnbR2KJoMN10ziLhOLvP4e0SlypHnAel8iqQXTrcbmfEY9sSqae5sgUsTvw==",
10441 "dependencies": {
10442 "@jest/types": "^27.5.1",
10443 "execa": "^5.0.0",
10444 "throat": "^6.0.1"
10445 },
10446 "engines": {
10447 "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
10448 }
10449 },
10450 "node_modules/jest-circus": {
10451 "version": "27.5.1",
10452 "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-27.5.1.tgz",
10453 "integrity": "sha512-D95R7x5UtlMA5iBYsOHFFbMD/GVA4R/Kdq15f7xYWUfWHBto9NYRsOvnSauTgdF+ogCpJ4tyKOXhUifxS65gdw==",
10454 "dependencies": {
10455 "@jest/environment": "^27.5.1",
10456 "@jest/test-result": "^27.5.1",
10457 "@jest/types": "^27.5.1",
10458 "@types/node": "*",
10459 "chalk": "^4.0.0",
10460 "co": "^4.6.0",
10461 "dedent": "^0.7.0",
10462 "expect": "^27.5.1",
10463 "is-generator-fn": "^2.0.0",
10464 "jest-each": "^27.5.1",
10465 "jest-matcher-utils": "^27.5.1",
10466 "jest-message-util": "^27.5.1",
10467 "jest-runtime": "^27.5.1",
10468 "jest-snapshot": "^27.5.1",
10469 "jest-util": "^27.5.1",
10470 "pretty-format": "^27.5.1",
10471 "slash": "^3.0.0",
10472 "stack-utils": "^2.0.3",
10473 "throat": "^6.0.1"
10474 },
10475 "engines": {
10476 "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
10477 }
10478 },
10479 "node_modules/jest-circus/node_modules/ansi-styles": {
10480 "version": "4.3.0",
10481 "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
10482 "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
10483 "dependencies": {
10484 "color-convert": "^2.0.1"
10485 },
10486 "engines": {
10487 "node": ">=8"
10488 },
10489 "funding": {
10490 "url": "https://github.com/chalk/ansi-styles?sponsor=1"
10491 }
10492 },
10493 "node_modules/jest-circus/node_modules/chalk": {
10494 "version": "4.1.2",
10495 "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
10496 "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
10497 "dependencies": {
10498 "ansi-styles": "^4.1.0",
10499 "supports-color": "^7.1.0"
10500 },
10501 "engines": {
10502 "node": ">=10"
10503 },
10504 "funding": {
10505 "url": "https://github.com/chalk/chalk?sponsor=1"
10506 }
10507 },
10508 "node_modules/jest-circus/node_modules/color-convert": {
10509 "version": "2.0.1",
10510 "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
10511 "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
10512 "dependencies": {
10513 "color-name": "~1.1.4"
10514 },
10515 "engines": {
10516 "node": ">=7.0.0"
10517 }
10518 },
10519 "node_modules/jest-circus/node_modules/color-name": {
10520 "version": "1.1.4",
10521 "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
10522 "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
10523 },
10524 "node_modules/jest-circus/node_modules/has-flag": {
10525 "version": "4.0.0",
10526 "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
10527 "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
10528 "engines": {
10529 "node": ">=8"
10530 }
10531 },
10532 "node_modules/jest-circus/node_modules/supports-color": {
10533 "version": "7.2.0",
10534 "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
10535 "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
10536 "dependencies": {
10537 "has-flag": "^4.0.0"
10538 },
10539 "engines": {
10540 "node": ">=8"
10541 }
10542 },
10543 "node_modules/jest-cli": {
10544 "version": "27.5.1",
10545 "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-27.5.1.tgz",
10546 "integrity": "sha512-Hc6HOOwYq4/74/c62dEE3r5elx8wjYqxY0r0G/nFrLDPMFRu6RA/u8qINOIkvhxG7mMQ5EJsOGfRpI8L6eFUVw==",
10547 "dependencies": {
10548 "@jest/core": "^27.5.1",
10549 "@jest/test-result": "^27.5.1",
10550 "@jest/types": "^27.5.1",
10551 "chalk": "^4.0.0",
10552 "exit": "^0.1.2",
10553 "graceful-fs": "^4.2.9",
10554 "import-local": "^3.0.2",
10555 "jest-config": "^27.5.1",
10556 "jest-util": "^27.5.1",
10557 "jest-validate": "^27.5.1",
10558 "prompts": "^2.0.1",
10559 "yargs": "^16.2.0"
10560 },
10561 "bin": {
10562 "jest": "bin/jest.js"
10563 },
10564 "engines": {
10565 "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
10566 },
10567 "peerDependencies": {
10568 "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0"
10569 },
10570 "peerDependenciesMeta": {
10571 "node-notifier": {
10572 "optional": true
10573 }
10574 }
10575 },
10576 "node_modules/jest-cli/node_modules/ansi-styles": {
10577 "version": "4.3.0",
10578 "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
10579 "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
10580 "dependencies": {
10581 "color-convert": "^2.0.1"
10582 },
10583 "engines": {
10584 "node": ">=8"
10585 },
10586 "funding": {
10587 "url": "https://github.com/chalk/ansi-styles?sponsor=1"
10588 }
10589 },
10590 "node_modules/jest-cli/node_modules/chalk": {
10591 "version": "4.1.2",
10592 "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
10593 "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
10594 "dependencies": {
10595 "ansi-styles": "^4.1.0",
10596 "supports-color": "^7.1.0"
10597 },
10598 "engines": {
10599 "node": ">=10"
10600 },
10601 "funding": {
10602 "url": "https://github.com/chalk/chalk?sponsor=1"
10603 }
10604 },
10605 "node_modules/jest-cli/node_modules/color-convert": {
10606 "version": "2.0.1",
10607 "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
10608 "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
10609 "dependencies": {
10610 "color-name": "~1.1.4"
10611 },
10612 "engines": {
10613 "node": ">=7.0.0"
10614 }
10615 },
10616 "node_modules/jest-cli/node_modules/color-name": {
10617 "version": "1.1.4",
10618 "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
10619 "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
10620 },
10621 "node_modules/jest-cli/node_modules/has-flag": {
10622 "version": "4.0.0",
10623 "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
10624 "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
10625 "engines": {
10626 "node": ">=8"
10627 }
10628 },
10629 "node_modules/jest-cli/node_modules/supports-color": {
10630 "version": "7.2.0",
10631 "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
10632 "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
10633 "dependencies": {
10634 "has-flag": "^4.0.0"
10635 },
10636 "engines": {
10637 "node": ">=8"
10638 }
10639 },
10640 "node_modules/jest-config": {
10641 "version": "27.5.1",
10642 "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-27.5.1.tgz",
10643 "integrity": "sha512-5sAsjm6tGdsVbW9ahcChPAFCk4IlkQUknH5AvKjuLTSlcO/wCZKyFdn7Rg0EkC+OGgWODEy2hDpWB1PgzH0JNA==",
10644 "dependencies": {
10645 "@babel/core": "^7.8.0",
10646 "@jest/test-sequencer": "^27.5.1",
10647 "@jest/types": "^27.5.1",
10648 "babel-jest": "^27.5.1",
10649 "chalk": "^4.0.0",
10650 "ci-info": "^3.2.0",
10651 "deepmerge": "^4.2.2",
10652 "glob": "^7.1.1",
10653 "graceful-fs": "^4.2.9",
10654 "jest-circus": "^27.5.1",
10655 "jest-environment-jsdom": "^27.5.1",
10656 "jest-environment-node": "^27.5.1",
10657 "jest-get-type": "^27.5.1",
10658 "jest-jasmine2": "^27.5.1",
10659 "jest-regex-util": "^27.5.1",
10660 "jest-resolve": "^27.5.1",
10661 "jest-runner": "^27.5.1",
10662 "jest-util": "^27.5.1",
10663 "jest-validate": "^27.5.1",
10664 "micromatch": "^4.0.4",
10665 "parse-json": "^5.2.0",
10666 "pretty-format": "^27.5.1",
10667 "slash": "^3.0.0",
10668 "strip-json-comments": "^3.1.1"
10669 },
10670 "engines": {
10671 "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
10672 },
10673 "peerDependencies": {
10674 "ts-node": ">=9.0.0"
10675 },
10676 "peerDependenciesMeta": {
10677 "ts-node": {
10678 "optional": true
10679 }
10680 }
10681 },
10682 "node_modules/jest-config/node_modules/ansi-styles": {
10683 "version": "4.3.0",
10684 "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
10685 "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
10686 "dependencies": {
10687 "color-convert": "^2.0.1"
10688 },
10689 "engines": {
10690 "node": ">=8"
10691 },
10692 "funding": {
10693 "url": "https://github.com/chalk/ansi-styles?sponsor=1"
10694 }
10695 },
10696 "node_modules/jest-config/node_modules/chalk": {
10697 "version": "4.1.2",
10698 "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
10699 "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
10700 "dependencies": {
10701 "ansi-styles": "^4.1.0",
10702 "supports-color": "^7.1.0"
10703 },
10704 "engines": {
10705 "node": ">=10"
10706 },
10707 "funding": {
10708 "url": "https://github.com/chalk/chalk?sponsor=1"
10709 }
10710 },
10711 "node_modules/jest-config/node_modules/color-convert": {
10712 "version": "2.0.1",
10713 "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
10714 "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
10715 "dependencies": {
10716 "color-name": "~1.1.4"
10717 },
10718 "engines": {
10719 "node": ">=7.0.0"
10720 }
10721 },
10722 "node_modules/jest-config/node_modules/color-name": {
10723 "version": "1.1.4",
10724 "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
10725 "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
10726 },
10727 "node_modules/jest-config/node_modules/has-flag": {
10728 "version": "4.0.0",
10729 "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
10730 "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
10731 "engines": {
10732 "node": ">=8"
10733 }
10734 },
10735 "node_modules/jest-config/node_modules/supports-color": {
10736 "version": "7.2.0",
10737 "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
10738 "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
10739 "dependencies": {
10740 "has-flag": "^4.0.0"
10741 },
10742 "engines": {
10743 "node": ">=8"
10744 }
10745 }, 2877 },
10746 "node_modules/jest-diff": { 2878 "node_modules/jest-diff": {
10747 "version": "27.5.1", 2879 "version": "27.5.1",
10748 "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-27.5.1.tgz", 2880 "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-27.5.1.tgz",
10749 "integrity": "sha512-m0NvkX55LDt9T4mctTEgnZk3fmEg3NRYutvMPWM/0iPnkFj2wIeF45O1718cMSOFO1vINkqmxqD8vE37uTEbqw==", 2881 "integrity": "sha512-m0NvkX55LDt9T4mctTEgnZk3fmEg3NRYutvMPWM/0iPnkFj2wIeF45O1718cMSOFO1vINkqmxqD8vE37uTEbqw==",
2882 "license": "MIT",
10750 "dependencies": { 2883 "dependencies": {
10751 "chalk": "^4.0.0", 2884 "chalk": "^4.0.0",
10752 "diff-sequences": "^27.5.1", 2885 "diff-sequences": "^27.5.1",
@@ -10757,325 +2890,11 @@
10757 "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" 2890 "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
10758 } 2891 }
10759 }, 2892 },
10760 "node_modules/jest-diff/node_modules/ansi-styles": {
10761 "version": "4.3.0",
10762 "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
10763 "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
10764 "dependencies": {
10765 "color-convert": "^2.0.1"
10766 },
10767 "engines": {
10768 "node": ">=8"
10769 },
10770 "funding": {
10771 "url": "https://github.com/chalk/ansi-styles?sponsor=1"
10772 }
10773 },
10774 "node_modules/jest-diff/node_modules/chalk": {
10775 "version": "4.1.2",
10776 "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
10777 "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
10778 "dependencies": {
10779 "ansi-styles": "^4.1.0",
10780 "supports-color": "^7.1.0"
10781 },
10782 "engines": {
10783 "node": ">=10"
10784 },
10785 "funding": {
10786 "url": "https://github.com/chalk/chalk?sponsor=1"
10787 }
10788 },
10789 "node_modules/jest-diff/node_modules/color-convert": {
10790 "version": "2.0.1",
10791 "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
10792 "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
10793 "dependencies": {
10794 "color-name": "~1.1.4"
10795 },
10796 "engines": {
10797 "node": ">=7.0.0"
10798 }
10799 },
10800 "node_modules/jest-diff/node_modules/color-name": {
10801 "version": "1.1.4",
10802 "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
10803 "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
10804 },
10805 "node_modules/jest-diff/node_modules/has-flag": {
10806 "version": "4.0.0",
10807 "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
10808 "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
10809 "engines": {
10810 "node": ">=8"
10811 }
10812 },
10813 "node_modules/jest-diff/node_modules/supports-color": {
10814 "version": "7.2.0",
10815 "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
10816 "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
10817 "dependencies": {
10818 "has-flag": "^4.0.0"
10819 },
10820 "engines": {
10821 "node": ">=8"
10822 }
10823 },
10824 "node_modules/jest-docblock": {
10825 "version": "27.5.1",
10826 "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-27.5.1.tgz",
10827 "integrity": "sha512-rl7hlABeTsRYxKiUfpHrQrG4e2obOiTQWfMEH3PxPjOtdsfLQO4ReWSZaQ7DETm4xu07rl4q/h4zcKXyU0/OzQ==",
10828 "dependencies": {
10829 "detect-newline": "^3.0.0"
10830 },
10831 "engines": {
10832 "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
10833 }
10834 },
10835 "node_modules/jest-each": {
10836 "version": "27.5.1",
10837 "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-27.5.1.tgz",
10838 "integrity": "sha512-1Ff6p+FbhT/bXQnEouYy00bkNSY7OUpfIcmdl8vZ31A1UUaurOLPA8a8BbJOF2RDUElwJhmeaV7LnagI+5UwNQ==",
10839 "dependencies": {
10840 "@jest/types": "^27.5.1",
10841 "chalk": "^4.0.0",
10842 "jest-get-type": "^27.5.1",
10843 "jest-util": "^27.5.1",
10844 "pretty-format": "^27.5.1"
10845 },
10846 "engines": {
10847 "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
10848 }
10849 },
10850 "node_modules/jest-each/node_modules/ansi-styles": {
10851 "version": "4.3.0",
10852 "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
10853 "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
10854 "dependencies": {
10855 "color-convert": "^2.0.1"
10856 },
10857 "engines": {
10858 "node": ">=8"
10859 },
10860 "funding": {
10861 "url": "https://github.com/chalk/ansi-styles?sponsor=1"
10862 }
10863 },
10864 "node_modules/jest-each/node_modules/chalk": {
10865 "version": "4.1.2",
10866 "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
10867 "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
10868 "dependencies": {
10869 "ansi-styles": "^4.1.0",
10870 "supports-color": "^7.1.0"
10871 },
10872 "engines": {
10873 "node": ">=10"
10874 },
10875 "funding": {
10876 "url": "https://github.com/chalk/chalk?sponsor=1"
10877 }
10878 },
10879 "node_modules/jest-each/node_modules/color-convert": {
10880 "version": "2.0.1",
10881 "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
10882 "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
10883 "dependencies": {
10884 "color-name": "~1.1.4"
10885 },
10886 "engines": {
10887 "node": ">=7.0.0"
10888 }
10889 },
10890 "node_modules/jest-each/node_modules/color-name": {
10891 "version": "1.1.4",
10892 "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
10893 "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
10894 },
10895 "node_modules/jest-each/node_modules/has-flag": {
10896 "version": "4.0.0",
10897 "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
10898 "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
10899 "engines": {
10900 "node": ">=8"
10901 }
10902 },
10903 "node_modules/jest-each/node_modules/supports-color": {
10904 "version": "7.2.0",
10905 "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
10906 "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
10907 "dependencies": {
10908 "has-flag": "^4.0.0"
10909 },
10910 "engines": {
10911 "node": ">=8"
10912 }
10913 },
10914 "node_modules/jest-environment-jsdom": {
10915 "version": "27.5.1",
10916 "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-27.5.1.tgz",
10917 "integrity": "sha512-TFBvkTC1Hnnnrka/fUb56atfDtJ9VMZ94JkjTbggl1PEpwrYtUBKMezB3inLmWqQsXYLcMwNoDQwoBTAvFfsfw==",
10918 "dependencies": {
10919 "@jest/environment": "^27.5.1",
10920 "@jest/fake-timers": "^27.5.1",
10921 "@jest/types": "^27.5.1",
10922 "@types/node": "*",
10923 "jest-mock": "^27.5.1",
10924 "jest-util": "^27.5.1",
10925 "jsdom": "^16.6.0"
10926 },
10927 "engines": {
10928 "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
10929 }
10930 },
10931 "node_modules/jest-environment-node": {
10932 "version": "27.5.1",
10933 "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-27.5.1.tgz",
10934 "integrity": "sha512-Jt4ZUnxdOsTGwSRAfKEnE6BcwsSPNOijjwifq5sDFSA2kesnXTvNqKHYgM0hDq3549Uf/KzdXNYn4wMZJPlFLw==",
10935 "dependencies": {
10936 "@jest/environment": "^27.5.1",
10937 "@jest/fake-timers": "^27.5.1",
10938 "@jest/types": "^27.5.1",
10939 "@types/node": "*",
10940 "jest-mock": "^27.5.1",
10941 "jest-util": "^27.5.1"
10942 },
10943 "engines": {
10944 "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
10945 }
10946 },
10947 "node_modules/jest-get-type": { 2893 "node_modules/jest-get-type": {
10948 "version": "27.5.1", 2894 "version": "27.5.1",
10949 "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz", 2895 "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz",
10950 "integrity": "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==", 2896 "integrity": "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==",
10951 "engines": { 2897 "license": "MIT",
10952 "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
10953 }
10954 },
10955 "node_modules/jest-haste-map": {
10956 "version": "27.5.1",
10957 "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.5.1.tgz",
10958 "integrity": "sha512-7GgkZ4Fw4NFbMSDSpZwXeBiIbx+t/46nJ2QitkOjvwPYyZmqttu2TDSimMHP1EkPOi4xUZAN1doE5Vd25H4Jng==",
10959 "dependencies": {
10960 "@jest/types": "^27.5.1",
10961 "@types/graceful-fs": "^4.1.2",
10962 "@types/node": "*",
10963 "anymatch": "^3.0.3",
10964 "fb-watchman": "^2.0.0",
10965 "graceful-fs": "^4.2.9",
10966 "jest-regex-util": "^27.5.1",
10967 "jest-serializer": "^27.5.1",
10968 "jest-util": "^27.5.1",
10969 "jest-worker": "^27.5.1",
10970 "micromatch": "^4.0.4",
10971 "walker": "^1.0.7"
10972 },
10973 "engines": {
10974 "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
10975 },
10976 "optionalDependencies": {
10977 "fsevents": "^2.3.2"
10978 }
10979 },
10980 "node_modules/jest-jasmine2": {
10981 "version": "27.5.1",
10982 "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-27.5.1.tgz",
10983 "integrity": "sha512-jtq7VVyG8SqAorDpApwiJJImd0V2wv1xzdheGHRGyuT7gZm6gG47QEskOlzsN1PG/6WNaCo5pmwMHDf3AkG2pQ==",
10984 "dependencies": {
10985 "@jest/environment": "^27.5.1",
10986 "@jest/source-map": "^27.5.1",
10987 "@jest/test-result": "^27.5.1",
10988 "@jest/types": "^27.5.1",
10989 "@types/node": "*",
10990 "chalk": "^4.0.0",
10991 "co": "^4.6.0",
10992 "expect": "^27.5.1",
10993 "is-generator-fn": "^2.0.0",
10994 "jest-each": "^27.5.1",
10995 "jest-matcher-utils": "^27.5.1",
10996 "jest-message-util": "^27.5.1",
10997 "jest-runtime": "^27.5.1",
10998 "jest-snapshot": "^27.5.1",
10999 "jest-util": "^27.5.1",
11000 "pretty-format": "^27.5.1",
11001 "throat": "^6.0.1"
11002 },
11003 "engines": {
11004 "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
11005 }
11006 },
11007 "node_modules/jest-jasmine2/node_modules/ansi-styles": {
11008 "version": "4.3.0",
11009 "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
11010 "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
11011 "dependencies": {
11012 "color-convert": "^2.0.1"
11013 },
11014 "engines": {
11015 "node": ">=8"
11016 },
11017 "funding": {
11018 "url": "https://github.com/chalk/ansi-styles?sponsor=1"
11019 }
11020 },
11021 "node_modules/jest-jasmine2/node_modules/chalk": {
11022 "version": "4.1.2",
11023 "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
11024 "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
11025 "dependencies": {
11026 "ansi-styles": "^4.1.0",
11027 "supports-color": "^7.1.0"
11028 },
11029 "engines": {
11030 "node": ">=10"
11031 },
11032 "funding": {
11033 "url": "https://github.com/chalk/chalk?sponsor=1"
11034 }
11035 },
11036 "node_modules/jest-jasmine2/node_modules/color-convert": {
11037 "version": "2.0.1",
11038 "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
11039 "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
11040 "dependencies": {
11041 "color-name": "~1.1.4"
11042 },
11043 "engines": {
11044 "node": ">=7.0.0"
11045 }
11046 },
11047 "node_modules/jest-jasmine2/node_modules/color-name": {
11048 "version": "1.1.4",
11049 "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
11050 "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
11051 },
11052 "node_modules/jest-jasmine2/node_modules/has-flag": {
11053 "version": "4.0.0",
11054 "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
11055 "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
11056 "engines": {
11057 "node": ">=8"
11058 }
11059 },
11060 "node_modules/jest-jasmine2/node_modules/supports-color": {
11061 "version": "7.2.0",
11062 "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
11063 "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
11064 "dependencies": {
11065 "has-flag": "^4.0.0"
11066 },
11067 "engines": {
11068 "node": ">=8"
11069 }
11070 },
11071 "node_modules/jest-leak-detector": {
11072 "version": "27.5.1",
11073 "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-27.5.1.tgz",
11074 "integrity": "sha512-POXfWAMvfU6WMUXftV4HolnJfnPOGEu10fscNCA76KBpRRhcMN2c8d3iT2pxQS3HLbA+5X4sOUPzYO2NUyIlHQ==",
11075 "dependencies": {
11076 "jest-get-type": "^27.5.1",
11077 "pretty-format": "^27.5.1"
11078 },
11079 "engines": { 2898 "engines": {
11080 "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" 2899 "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
11081 } 2900 }
@@ -11084,6 +2903,7 @@
11084 "version": "27.5.1", 2903 "version": "27.5.1",
11085 "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.5.1.tgz", 2904 "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.5.1.tgz",
11086 "integrity": "sha512-z2uTx/T6LBaCoNWNFWwChLBKYxTMcGBRjAt+2SbP929/Fflb9aa5LGma654Rz8z9HLxsrUaYzxE9T/EFIL/PAw==", 2905 "integrity": "sha512-z2uTx/T6LBaCoNWNFWwChLBKYxTMcGBRjAt+2SbP929/Fflb9aa5LGma654Rz8z9HLxsrUaYzxE9T/EFIL/PAw==",
2906 "license": "MIT",
11087 "dependencies": { 2907 "dependencies": {
11088 "chalk": "^4.0.0", 2908 "chalk": "^4.0.0",
11089 "jest-diff": "^27.5.1", 2909 "jest-diff": "^27.5.1",
@@ -11094,1527 +2914,284 @@
11094 "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" 2914 "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
11095 } 2915 }
11096 }, 2916 },
11097 "node_modules/jest-matcher-utils/node_modules/ansi-styles": { 2917 "node_modules/jiti": {
11098 "version": "4.3.0", 2918 "version": "2.5.1",
11099 "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", 2919 "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.5.1.tgz",
11100 "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", 2920 "integrity": "sha512-twQoecYPiVA5K/h6SxtORw/Bs3ar+mLUtoPSc7iMXzQzK8d7eJ/R09wmTwAjiamETn1cXYPGfNnu7DMoHgu12w==",
11101 "dependencies": { 2921 "license": "MIT",
11102 "color-convert": "^2.0.1" 2922 "bin": {
11103 }, 2923 "jiti": "lib/jiti-cli.mjs"
11104 "engines": {
11105 "node": ">=8"
11106 },
11107 "funding": {
11108 "url": "https://github.com/chalk/ansi-styles?sponsor=1"
11109 }
11110 },
11111 "node_modules/jest-matcher-utils/node_modules/chalk": {
11112 "version": "4.1.2",
11113 "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
11114 "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
11115 "dependencies": {
11116 "ansi-styles": "^4.1.0",
11117 "supports-color": "^7.1.0"
11118 },
11119 "engines": {
11120 "node": ">=10"
11121 },
11122 "funding": {
11123 "url": "https://github.com/chalk/chalk?sponsor=1"
11124 }
11125 },
11126 "node_modules/jest-matcher-utils/node_modules/color-convert": {
11127 "version": "2.0.1",
11128 "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
11129 "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
11130 "dependencies": {
11131 "color-name": "~1.1.4"
11132 },
11133 "engines": {
11134 "node": ">=7.0.0"
11135 }
11136 },
11137 "node_modules/jest-matcher-utils/node_modules/color-name": {
11138 "version": "1.1.4",
11139 "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
11140 "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
11141 },
11142 "node_modules/jest-matcher-utils/node_modules/has-flag": {
11143 "version": "4.0.0",
11144 "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
11145 "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
11146 "engines": {
11147 "node": ">=8"
11148 }
11149 },
11150 "node_modules/jest-matcher-utils/node_modules/supports-color": {
11151 "version": "7.2.0",
11152 "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
11153 "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
11154 "dependencies": {
11155 "has-flag": "^4.0.0"
11156 },
11157 "engines": {
11158 "node": ">=8"
11159 }
11160 },
11161 "node_modules/jest-message-util": {
11162 "version": "27.5.1",
11163 "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.5.1.tgz",
11164 "integrity": "sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g==",
11165 "dependencies": {
11166 "@babel/code-frame": "^7.12.13",
11167 "@jest/types": "^27.5.1",
11168 "@types/stack-utils": "^2.0.0",
11169 "chalk": "^4.0.0",
11170 "graceful-fs": "^4.2.9",
11171 "micromatch": "^4.0.4",
11172 "pretty-format": "^27.5.1",
11173 "slash": "^3.0.0",
11174 "stack-utils": "^2.0.3"
11175 },
11176 "engines": {
11177 "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
11178 }
11179 },
11180 "node_modules/jest-message-util/node_modules/ansi-styles": {
11181 "version": "4.3.0",
11182 "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
11183 "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
11184 "dependencies": {
11185 "color-convert": "^2.0.1"
11186 },
11187 "engines": {
11188 "node": ">=8"
11189 },
11190 "funding": {
11191 "url": "https://github.com/chalk/ansi-styles?sponsor=1"
11192 }
11193 },
11194 "node_modules/jest-message-util/node_modules/chalk": {
11195 "version": "4.1.2",
11196 "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
11197 "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
11198 "dependencies": {
11199 "ansi-styles": "^4.1.0",
11200 "supports-color": "^7.1.0"
11201 },
11202 "engines": {
11203 "node": ">=10"
11204 },
11205 "funding": {
11206 "url": "https://github.com/chalk/chalk?sponsor=1"
11207 }
11208 },
11209 "node_modules/jest-message-util/node_modules/color-convert": {
11210 "version": "2.0.1",
11211 "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
11212 "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
11213 "dependencies": {
11214 "color-name": "~1.1.4"
11215 },
11216 "engines": {
11217 "node": ">=7.0.0"
11218 } 2924 }
11219 }, 2925 },
11220 "node_modules/jest-message-util/node_modules/color-name": { 2926 "node_modules/js-tokens": {
11221 "version": "1.1.4",
11222 "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
11223 "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
11224 },
11225 "node_modules/jest-message-util/node_modules/has-flag": {
11226 "version": "4.0.0", 2927 "version": "4.0.0",
11227 "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", 2928 "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
11228 "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", 2929 "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
11229 "engines": { 2930 "license": "MIT"
11230 "node": ">=8"
11231 }
11232 },
11233 "node_modules/jest-message-util/node_modules/supports-color": {
11234 "version": "7.2.0",
11235 "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
11236 "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
11237 "dependencies": {
11238 "has-flag": "^4.0.0"
11239 },
11240 "engines": {
11241 "node": ">=8"
11242 }
11243 }, 2931 },
11244 "node_modules/jest-mock": { 2932 "node_modules/jsesc": {
11245 "version": "27.5.1", 2933 "version": "3.1.0",
11246 "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-27.5.1.tgz", 2934 "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz",
11247 "integrity": "sha512-K4jKbY1d4ENhbrG2zuPWaQBvDly+iZ2yAW+T1fATN78hc0sInwn7wZB8XtlNnvHug5RMwV897Xm4LqmPM4e2Og==", 2935 "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==",
11248 "dependencies": { 2936 "license": "MIT",
11249 "@jest/types": "^27.5.1", 2937 "bin": {
11250 "@types/node": "*" 2938 "jsesc": "bin/jsesc"
11251 }, 2939 },
11252 "engines": { 2940 "engines": {
11253 "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
11254 }
11255 },
11256 "node_modules/jest-pnp-resolver": {
11257 "version": "1.2.3",
11258 "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz",
11259 "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==",
11260 "engines": {
11261 "node": ">=6" 2941 "node": ">=6"
11262 },
11263 "peerDependencies": {
11264 "jest-resolve": "*"
11265 },
11266 "peerDependenciesMeta": {
11267 "jest-resolve": {
11268 "optional": true
11269 }
11270 }
11271 },
11272 "node_modules/jest-regex-util": {
11273 "version": "27.5.1",
11274 "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-27.5.1.tgz",
11275 "integrity": "sha512-4bfKq2zie+x16okqDXjXn9ql2B0dScQu+vcwe4TvFVhkVyuWLqpZrZtXxLLWoXYgn0E87I6r6GRYHF7wFZBUvg==",
11276 "engines": {
11277 "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
11278 }
11279 },
11280 "node_modules/jest-resolve": {
11281 "version": "27.5.1",
11282 "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-27.5.1.tgz",
11283 "integrity": "sha512-FFDy8/9E6CV83IMbDpcjOhumAQPDyETnU2KZ1O98DwTnz8AOBsW/Xv3GySr1mOZdItLR+zDZ7I/UdTFbgSOVCw==",
11284 "dependencies": {
11285 "@jest/types": "^27.5.1",
11286 "chalk": "^4.0.0",
11287 "graceful-fs": "^4.2.9",
11288 "jest-haste-map": "^27.5.1",
11289 "jest-pnp-resolver": "^1.2.2",
11290 "jest-util": "^27.5.1",
11291 "jest-validate": "^27.5.1",
11292 "resolve": "^1.20.0",
11293 "resolve.exports": "^1.1.0",
11294 "slash": "^3.0.0"
11295 },
11296 "engines": {
11297 "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
11298 }
11299 },
11300 "node_modules/jest-resolve-dependencies": {
11301 "version": "27.5.1",
11302 "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-27.5.1.tgz",
11303 "integrity": "sha512-QQOOdY4PE39iawDn5rzbIePNigfe5B9Z91GDD1ae/xNDlu9kaat8QQ5EKnNmVWPV54hUdxCVwwj6YMgR2O7IOg==",
11304 "dependencies": {
11305 "@jest/types": "^27.5.1",
11306 "jest-regex-util": "^27.5.1",
11307 "jest-snapshot": "^27.5.1"
11308 },
11309 "engines": {
11310 "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
11311 }
11312 },
11313 "node_modules/jest-resolve/node_modules/ansi-styles": {
11314 "version": "4.3.0",
11315 "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
11316 "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
11317 "dependencies": {
11318 "color-convert": "^2.0.1"
11319 },
11320 "engines": {
11321 "node": ">=8"
11322 },
11323 "funding": {
11324 "url": "https://github.com/chalk/ansi-styles?sponsor=1"
11325 }
11326 },
11327 "node_modules/jest-resolve/node_modules/chalk": {
11328 "version": "4.1.2",
11329 "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
11330 "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
11331 "dependencies": {
11332 "ansi-styles": "^4.1.0",
11333 "supports-color": "^7.1.0"
11334 },
11335 "engines": {
11336 "node": ">=10"
11337 },
11338 "funding": {
11339 "url": "https://github.com/chalk/chalk?sponsor=1"
11340 }
11341 },
11342 "node_modules/jest-resolve/node_modules/color-convert": {
11343 "version": "2.0.1",
11344 "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
11345 "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
11346 "dependencies": {
11347 "color-name": "~1.1.4"
11348 },
11349 "engines": {
11350 "node": ">=7.0.0"
11351 }
11352 },
11353 "node_modules/jest-resolve/node_modules/color-name": {
11354 "version": "1.1.4",
11355 "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
11356 "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
11357 },
11358 "node_modules/jest-resolve/node_modules/has-flag": {
11359 "version": "4.0.0",
11360 "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
11361 "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
11362 "engines": {
11363 "node": ">=8"
11364 }
11365 },
11366 "node_modules/jest-resolve/node_modules/supports-color": {
11367 "version": "7.2.0",
11368 "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
11369 "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
11370 "dependencies": {
11371 "has-flag": "^4.0.0"
11372 },
11373 "engines": {
11374 "node": ">=8"
11375 }
11376 },
11377 "node_modules/jest-runner": {
11378 "version": "27.5.1",
11379 "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-27.5.1.tgz",
11380 "integrity": "sha512-g4NPsM4mFCOwFKXO4p/H/kWGdJp9V8kURY2lX8Me2drgXqG7rrZAx5kv+5H7wtt/cdFIjhqYx1HrlqWHaOvDaQ==",
11381 "dependencies": {
11382 "@jest/console": "^27.5.1",
11383 "@jest/environment": "^27.5.1",
11384 "@jest/test-result": "^27.5.1",
11385 "@jest/transform": "^27.5.1",
11386 "@jest/types": "^27.5.1",
11387 "@types/node": "*",
11388 "chalk": "^4.0.0",
11389 "emittery": "^0.8.1",
11390 "graceful-fs": "^4.2.9",
11391 "jest-docblock": "^27.5.1",
11392 "jest-environment-jsdom": "^27.5.1",
11393 "jest-environment-node": "^27.5.1",
11394 "jest-haste-map": "^27.5.1",
11395 "jest-leak-detector": "^27.5.1",
11396 "jest-message-util": "^27.5.1",
11397 "jest-resolve": "^27.5.1",
11398 "jest-runtime": "^27.5.1",
11399 "jest-util": "^27.5.1",
11400 "jest-worker": "^27.5.1",
11401 "source-map-support": "^0.5.6",
11402 "throat": "^6.0.1"
11403 },
11404 "engines": {
11405 "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
11406 }
11407 },
11408 "node_modules/jest-runner/node_modules/ansi-styles": {
11409 "version": "4.3.0",
11410 "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
11411 "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
11412 "dependencies": {
11413 "color-convert": "^2.0.1"
11414 },
11415 "engines": {
11416 "node": ">=8"
11417 },
11418 "funding": {
11419 "url": "https://github.com/chalk/ansi-styles?sponsor=1"
11420 }
11421 },
11422 "node_modules/jest-runner/node_modules/chalk": {
11423 "version": "4.1.2",
11424 "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
11425 "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
11426 "dependencies": {
11427 "ansi-styles": "^4.1.0",
11428 "supports-color": "^7.1.0"
11429 },
11430 "engines": {
11431 "node": ">=10"
11432 },
11433 "funding": {
11434 "url": "https://github.com/chalk/chalk?sponsor=1"
11435 }
11436 },
11437 "node_modules/jest-runner/node_modules/color-convert": {
11438 "version": "2.0.1",
11439 "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
11440 "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
11441 "dependencies": {
11442 "color-name": "~1.1.4"
11443 },
11444 "engines": {
11445 "node": ">=7.0.0"
11446 }
11447 },
11448 "node_modules/jest-runner/node_modules/color-name": {
11449 "version": "1.1.4",
11450 "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
11451 "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
11452 },
11453 "node_modules/jest-runner/node_modules/has-flag": {
11454 "version": "4.0.0",
11455 "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
11456 "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
11457 "engines": {
11458 "node": ">=8"
11459 }
11460 },
11461 "node_modules/jest-runner/node_modules/supports-color": {
11462 "version": "7.2.0",
11463 "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
11464 "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
11465 "dependencies": {
11466 "has-flag": "^4.0.0"
11467 },
11468 "engines": {
11469 "node": ">=8"
11470 } 2942 }
11471 }, 2943 },
11472 "node_modules/jest-runtime": { 2944 "node_modules/json5": {
11473 "version": "27.5.1", 2945 "version": "2.2.3",
11474 "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-27.5.1.tgz", 2946 "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz",
11475 "integrity": "sha512-o7gxw3Gf+H2IGt8fv0RiyE1+r83FJBRruoA+FXrlHw6xEyBsU8ugA6IPfTdVyA0w8HClpbK+DGJxH59UrNMx8A==", 2947 "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==",
11476 "dependencies": { 2948 "license": "MIT",
11477 "@jest/environment": "^27.5.1", 2949 "bin": {
11478 "@jest/fake-timers": "^27.5.1", 2950 "json5": "lib/cli.js"
11479 "@jest/globals": "^27.5.1",
11480 "@jest/source-map": "^27.5.1",
11481 "@jest/test-result": "^27.5.1",
11482 "@jest/transform": "^27.5.1",
11483 "@jest/types": "^27.5.1",
11484 "chalk": "^4.0.0",
11485 "cjs-module-lexer": "^1.0.0",
11486 "collect-v8-coverage": "^1.0.0",
11487 "execa": "^5.0.0",
11488 "glob": "^7.1.3",
11489 "graceful-fs": "^4.2.9",
11490 "jest-haste-map": "^27.5.1",
11491 "jest-message-util": "^27.5.1",
11492 "jest-mock": "^27.5.1",
11493 "jest-regex-util": "^27.5.1",
11494 "jest-resolve": "^27.5.1",
11495 "jest-snapshot": "^27.5.1",
11496 "jest-util": "^27.5.1",
11497 "slash": "^3.0.0",
11498 "strip-bom": "^4.0.0"
11499 },
11500 "engines": {
11501 "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
11502 }
11503 },
11504 "node_modules/jest-runtime/node_modules/ansi-styles": {
11505 "version": "4.3.0",
11506 "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
11507 "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
11508 "dependencies": {
11509 "color-convert": "^2.0.1"
11510 },
11511 "engines": {
11512 "node": ">=8"
11513 },
11514 "funding": {
11515 "url": "https://github.com/chalk/ansi-styles?sponsor=1"
11516 }
11517 },
11518 "node_modules/jest-runtime/node_modules/chalk": {
11519 "version": "4.1.2",
11520 "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
11521 "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
11522 "dependencies": {
11523 "ansi-styles": "^4.1.0",
11524 "supports-color": "^7.1.0"
11525 },
11526 "engines": {
11527 "node": ">=10"
11528 },
11529 "funding": {
11530 "url": "https://github.com/chalk/chalk?sponsor=1"
11531 }
11532 },
11533 "node_modules/jest-runtime/node_modules/color-convert": {
11534 "version": "2.0.1",
11535 "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
11536 "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
11537 "dependencies": {
11538 "color-name": "~1.1.4"
11539 },
11540 "engines": {
11541 "node": ">=7.0.0"
11542 }
11543 },
11544 "node_modules/jest-runtime/node_modules/color-name": {
11545 "version": "1.1.4",
11546 "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
11547 "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
11548 },
11549 "node_modules/jest-runtime/node_modules/has-flag": {
11550 "version": "4.0.0",
11551 "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
11552 "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
11553 "engines": {
11554 "node": ">=8"
11555 }
11556 },
11557 "node_modules/jest-runtime/node_modules/supports-color": {
11558 "version": "7.2.0",
11559 "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
11560 "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
11561 "dependencies": {
11562 "has-flag": "^4.0.0"
11563 },
11564 "engines": {
11565 "node": ">=8"
11566 }
11567 },
11568 "node_modules/jest-serializer": {
11569 "version": "27.5.1",
11570 "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.5.1.tgz",
11571 "integrity": "sha512-jZCyo6iIxO1aqUxpuBlwTDMkzOAJS4a3eYz3YzgxxVQFwLeSA7Jfq5cbqCY+JLvTDrWirgusI/0KwxKMgrdf7w==",
11572 "dependencies": {
11573 "@types/node": "*",
11574 "graceful-fs": "^4.2.9"
11575 },
11576 "engines": {
11577 "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
11578 }
11579 },
11580 "node_modules/jest-snapshot": {
11581 "version": "27.5.1",
11582 "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-27.5.1.tgz",
11583 "integrity": "sha512-yYykXI5a0I31xX67mgeLw1DZ0bJB+gpq5IpSuCAoyDi0+BhgU/RIrL+RTzDmkNTchvDFWKP8lp+w/42Z3us5sA==",
11584 "dependencies": {
11585 "@babel/core": "^7.7.2",
11586 "@babel/generator": "^7.7.2",
11587 "@babel/plugin-syntax-typescript": "^7.7.2",
11588 "@babel/traverse": "^7.7.2",
11589 "@babel/types": "^7.0.0",
11590 "@jest/transform": "^27.5.1",
11591 "@jest/types": "^27.5.1",
11592 "@types/babel__traverse": "^7.0.4",
11593 "@types/prettier": "^2.1.5",
11594 "babel-preset-current-node-syntax": "^1.0.0",
11595 "chalk": "^4.0.0",
11596 "expect": "^27.5.1",
11597 "graceful-fs": "^4.2.9",
11598 "jest-diff": "^27.5.1",
11599 "jest-get-type": "^27.5.1",
11600 "jest-haste-map": "^27.5.1",
11601 "jest-matcher-utils": "^27.5.1",
11602 "jest-message-util": "^27.5.1",
11603 "jest-util": "^27.5.1",
11604 "natural-compare": "^1.4.0",
11605 "pretty-format": "^27.5.1",
11606 "semver": "^7.3.2"
11607 },
11608 "engines": {
11609 "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
11610 }
11611 },
11612 "node_modules/jest-snapshot/node_modules/ansi-styles": {
11613 "version": "4.3.0",
11614 "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
11615 "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
11616 "dependencies": {
11617 "color-convert": "^2.0.1"
11618 },
11619 "engines": {
11620 "node": ">=8"
11621 },
11622 "funding": {
11623 "url": "https://github.com/chalk/ansi-styles?sponsor=1"
11624 }
11625 },
11626 "node_modules/jest-snapshot/node_modules/chalk": {
11627 "version": "4.1.2",
11628 "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
11629 "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
11630 "dependencies": {
11631 "ansi-styles": "^4.1.0",
11632 "supports-color": "^7.1.0"
11633 },
11634 "engines": {
11635 "node": ">=10"
11636 },
11637 "funding": {
11638 "url": "https://github.com/chalk/chalk?sponsor=1"
11639 }
11640 },
11641 "node_modules/jest-snapshot/node_modules/color-convert": {
11642 "version": "2.0.1",
11643 "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
11644 "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
11645 "dependencies": {
11646 "color-name": "~1.1.4"
11647 },
11648 "engines": {
11649 "node": ">=7.0.0"
11650 }
11651 },
11652 "node_modules/jest-snapshot/node_modules/color-name": {
11653 "version": "1.1.4",
11654 "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
11655 "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
11656 },
11657 "node_modules/jest-snapshot/node_modules/has-flag": {
11658 "version": "4.0.0",
11659 "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
11660 "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
11661 "engines": {
11662 "node": ">=8"
11663 }
11664 },
11665 "node_modules/jest-snapshot/node_modules/supports-color": {
11666 "version": "7.2.0",
11667 "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
11668 "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
11669 "dependencies": {
11670 "has-flag": "^4.0.0"
11671 },
11672 "engines": {
11673 "node": ">=8"
11674 }
11675 },
11676 "node_modules/jest-util": {
11677 "version": "27.5.1",
11678 "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz",
11679 "integrity": "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==",
11680 "dependencies": {
11681 "@jest/types": "^27.5.1",
11682 "@types/node": "*",
11683 "chalk": "^4.0.0",
11684 "ci-info": "^3.2.0",
11685 "graceful-fs": "^4.2.9",
11686 "picomatch": "^2.2.3"
11687 },
11688 "engines": {
11689 "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
11690 }
11691 },
11692 "node_modules/jest-util/node_modules/ansi-styles": {
11693 "version": "4.3.0",
11694 "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
11695 "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
11696 "dependencies": {
11697 "color-convert": "^2.0.1"
11698 },
11699 "engines": {
11700 "node": ">=8"
11701 },
11702 "funding": {
11703 "url": "https://github.com/chalk/ansi-styles?sponsor=1"
11704 }
11705 },
11706 "node_modules/jest-util/node_modules/chalk": {
11707 "version": "4.1.2",
11708 "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
11709 "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
11710 "dependencies": {
11711 "ansi-styles": "^4.1.0",
11712 "supports-color": "^7.1.0"
11713 },
11714 "engines": {
11715 "node": ">=10"
11716 },
11717 "funding": {
11718 "url": "https://github.com/chalk/chalk?sponsor=1"
11719 }
11720 },
11721 "node_modules/jest-util/node_modules/color-convert": {
11722 "version": "2.0.1",
11723 "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
11724 "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
11725 "dependencies": {
11726 "color-name": "~1.1.4"
11727 },
11728 "engines": {
11729 "node": ">=7.0.0"
11730 }
11731 },
11732 "node_modules/jest-util/node_modules/color-name": {
11733 "version": "1.1.4",
11734 "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
11735 "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
11736 },
11737 "node_modules/jest-util/node_modules/has-flag": {
11738 "version": "4.0.0",
11739 "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
11740 "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
11741 "engines": {
11742 "node": ">=8"
11743 }
11744 },
11745 "node_modules/jest-util/node_modules/supports-color": {
11746 "version": "7.2.0",
11747 "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
11748 "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
11749 "dependencies": {
11750 "has-flag": "^4.0.0"
11751 },
11752 "engines": {
11753 "node": ">=8"
11754 }
11755 },
11756 "node_modules/jest-validate": {
11757 "version": "27.5.1",
11758 "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-27.5.1.tgz",
11759 "integrity": "sha512-thkNli0LYTmOI1tDB3FI1S1RTp/Bqyd9pTarJwL87OIBFuqEb5Apv5EaApEudYg4g86e3CT6kM0RowkhtEnCBQ==",
11760 "dependencies": {
11761 "@jest/types": "^27.5.1",
11762 "camelcase": "^6.2.0",
11763 "chalk": "^4.0.0",
11764 "jest-get-type": "^27.5.1",
11765 "leven": "^3.1.0",
11766 "pretty-format": "^27.5.1"
11767 },
11768 "engines": {
11769 "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
11770 }
11771 },
11772 "node_modules/jest-validate/node_modules/ansi-styles": {
11773 "version": "4.3.0",
11774 "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
11775 "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
11776 "dependencies": {
11777 "color-convert": "^2.0.1"
11778 },
11779 "engines": {
11780 "node": ">=8"
11781 },
11782 "funding": {
11783 "url": "https://github.com/chalk/ansi-styles?sponsor=1"
11784 }
11785 },
11786 "node_modules/jest-validate/node_modules/chalk": {
11787 "version": "4.1.2",
11788 "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
11789 "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
11790 "dependencies": {
11791 "ansi-styles": "^4.1.0",
11792 "supports-color": "^7.1.0"
11793 },
11794 "engines": {
11795 "node": ">=10"
11796 },
11797 "funding": {
11798 "url": "https://github.com/chalk/chalk?sponsor=1"
11799 }
11800 },
11801 "node_modules/jest-validate/node_modules/color-convert": {
11802 "version": "2.0.1",
11803 "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
11804 "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
11805 "dependencies": {
11806 "color-name": "~1.1.4"
11807 },
11808 "engines": {
11809 "node": ">=7.0.0"
11810 }
11811 },
11812 "node_modules/jest-validate/node_modules/color-name": {
11813 "version": "1.1.4",
11814 "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
11815 "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
11816 },
11817 "node_modules/jest-validate/node_modules/has-flag": {
11818 "version": "4.0.0",
11819 "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
11820 "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
11821 "engines": {
11822 "node": ">=8"
11823 }
11824 },
11825 "node_modules/jest-validate/node_modules/supports-color": {
11826 "version": "7.2.0",
11827 "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
11828 "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
11829 "dependencies": {
11830 "has-flag": "^4.0.0"
11831 },
11832 "engines": {
11833 "node": ">=8"
11834 }
11835 },
11836 "node_modules/jest-watch-typeahead": {
11837 "version": "1.1.0",
11838 "resolved": "https://registry.npmjs.org/jest-watch-typeahead/-/jest-watch-typeahead-1.1.0.tgz",
11839 "integrity": "sha512-Va5nLSJTN7YFtC2jd+7wsoe1pNe5K4ShLux/E5iHEwlB9AxaxmggY7to9KUqKojhaJw3aXqt5WAb4jGPOolpEw==",
11840 "dependencies": {
11841 "ansi-escapes": "^4.3.1",
11842 "chalk": "^4.0.0",
11843 "jest-regex-util": "^28.0.0",
11844 "jest-watcher": "^28.0.0",
11845 "slash": "^4.0.0",
11846 "string-length": "^5.0.1",
11847 "strip-ansi": "^7.0.1"
11848 },
11849 "engines": {
11850 "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
11851 },
11852 "peerDependencies": {
11853 "jest": "^27.0.0 || ^28.0.0"
11854 }
11855 },
11856 "node_modules/jest-watch-typeahead/node_modules/@jest/console": {
11857 "version": "28.1.3",
11858 "resolved": "https://registry.npmjs.org/@jest/console/-/console-28.1.3.tgz",
11859 "integrity": "sha512-QPAkP5EwKdK/bxIr6C1I4Vs0rm2nHiANzj/Z5X2JQkrZo6IqvC4ldZ9K95tF0HdidhA8Bo6egxSzUFPYKcEXLw==",
11860 "dependencies": {
11861 "@jest/types": "^28.1.3",
11862 "@types/node": "*",
11863 "chalk": "^4.0.0",
11864 "jest-message-util": "^28.1.3",
11865 "jest-util": "^28.1.3",
11866 "slash": "^3.0.0"
11867 },
11868 "engines": {
11869 "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0"
11870 }
11871 },
11872 "node_modules/jest-watch-typeahead/node_modules/@jest/console/node_modules/slash": {
11873 "version": "3.0.0",
11874 "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
11875 "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
11876 "engines": {
11877 "node": ">=8"
11878 }
11879 },
11880 "node_modules/jest-watch-typeahead/node_modules/@jest/test-result": {
11881 "version": "28.1.3",
11882 "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-28.1.3.tgz",
11883 "integrity": "sha512-kZAkxnSE+FqE8YjW8gNuoVkkC9I7S1qmenl8sGcDOLropASP+BkcGKwhXoyqQuGOGeYY0y/ixjrd/iERpEXHNg==",
11884 "dependencies": {
11885 "@jest/console": "^28.1.3",
11886 "@jest/types": "^28.1.3",
11887 "@types/istanbul-lib-coverage": "^2.0.0",
11888 "collect-v8-coverage": "^1.0.0"
11889 },
11890 "engines": {
11891 "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0"
11892 }
11893 },
11894 "node_modules/jest-watch-typeahead/node_modules/@jest/types": {
11895 "version": "28.1.3",
11896 "resolved": "https://registry.npmjs.org/@jest/types/-/types-28.1.3.tgz",
11897 "integrity": "sha512-RyjiyMUZrKz/c+zlMFO1pm70DcIlST8AeWTkoUdZevew44wcNZQHsEVOiCVtgVnlFFD82FPaXycys58cf2muVQ==",
11898 "dependencies": {
11899 "@jest/schemas": "^28.1.3",
11900 "@types/istanbul-lib-coverage": "^2.0.0",
11901 "@types/istanbul-reports": "^3.0.0",
11902 "@types/node": "*",
11903 "@types/yargs": "^17.0.8",
11904 "chalk": "^4.0.0"
11905 }, 2951 },
11906 "engines": { 2952 "engines": {
11907 "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" 2953 "node": ">=6"
11908 }
11909 },
11910 "node_modules/jest-watch-typeahead/node_modules/@types/yargs": {
11911 "version": "17.0.33",
11912 "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.33.tgz",
11913 "integrity": "sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==",
11914 "dependencies": {
11915 "@types/yargs-parser": "*"
11916 } 2954 }
11917 }, 2955 },
11918 "node_modules/jest-watch-typeahead/node_modules/ansi-styles": { 2956 "node_modules/lightningcss": {
11919 "version": "4.3.0", 2957 "version": "1.30.1",
11920 "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", 2958 "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.30.1.tgz",
11921 "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", 2959 "integrity": "sha512-xi6IyHML+c9+Q3W0S4fCQJOym42pyurFiJUHEcEyHS0CeKzia4yZDEsLlqOFykxOdHpNy0NmvVO31vcSqAxJCg==",
2960 "license": "MPL-2.0",
11922 "dependencies": { 2961 "dependencies": {
11923 "color-convert": "^2.0.1" 2962 "detect-libc": "^2.0.3"
11924 }, 2963 },
11925 "engines": { 2964 "engines": {
11926 "node": ">=8" 2965 "node": ">= 12.0.0"
11927 }, 2966 },
11928 "funding": { 2967 "funding": {
11929 "url": "https://github.com/chalk/ansi-styles?sponsor=1" 2968 "type": "opencollective",
11930 } 2969 "url": "https://opencollective.com/parcel"
11931 },
11932 "node_modules/jest-watch-typeahead/node_modules/chalk": {
11933 "version": "4.1.2",
11934 "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
11935 "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
11936 "dependencies": {
11937 "ansi-styles": "^4.1.0",
11938 "supports-color": "^7.1.0"
11939 }, 2970 },
2971 "optionalDependencies": {
2972 "lightningcss-darwin-arm64": "1.30.1",
2973 "lightningcss-darwin-x64": "1.30.1",
2974 "lightningcss-freebsd-x64": "1.30.1",
2975 "lightningcss-linux-arm-gnueabihf": "1.30.1",
2976 "lightningcss-linux-arm64-gnu": "1.30.1",
2977 "lightningcss-linux-arm64-musl": "1.30.1",
2978 "lightningcss-linux-x64-gnu": "1.30.1",
2979 "lightningcss-linux-x64-musl": "1.30.1",
2980 "lightningcss-win32-arm64-msvc": "1.30.1",
2981 "lightningcss-win32-x64-msvc": "1.30.1"
2982 }
2983 },
2984 "node_modules/lightningcss-darwin-arm64": {
2985 "version": "1.30.1",
2986 "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.30.1.tgz",
2987 "integrity": "sha512-c8JK7hyE65X1MHMN+Viq9n11RRC7hgin3HhYKhrMyaXflk5GVplZ60IxyoVtzILeKr+xAJwg6zK6sjTBJ0FKYQ==",
2988 "cpu": [
2989 "arm64"
2990 ],
2991 "license": "MPL-2.0",
2992 "optional": true,
2993 "os": [
2994 "darwin"
2995 ],
11940 "engines": { 2996 "engines": {
11941 "node": ">=10" 2997 "node": ">= 12.0.0"
11942 }, 2998 },
11943 "funding": { 2999 "funding": {
11944 "url": "https://github.com/chalk/chalk?sponsor=1" 3000 "type": "opencollective",
11945 } 3001 "url": "https://opencollective.com/parcel"
11946 },
11947 "node_modules/jest-watch-typeahead/node_modules/color-convert": {
11948 "version": "2.0.1",
11949 "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
11950 "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
11951 "dependencies": {
11952 "color-name": "~1.1.4"
11953 },
11954 "engines": {
11955 "node": ">=7.0.0"
11956 } 3002 }
11957 }, 3003 },
11958 "node_modules/jest-watch-typeahead/node_modules/color-name": { 3004 "node_modules/lightningcss-darwin-x64": {
11959 "version": "1.1.4", 3005 "version": "1.30.1",
11960 "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", 3006 "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.30.1.tgz",
11961 "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" 3007 "integrity": "sha512-k1EvjakfumAQoTfcXUcHQZhSpLlkAuEkdMBsI/ivWw9hL+7FtilQc0Cy3hrx0AAQrVtQAbMI7YjCgYgvn37PzA==",
11962 }, 3008 "cpu": [
11963 "node_modules/jest-watch-typeahead/node_modules/emittery": { 3009 "x64"
11964 "version": "0.10.2", 3010 ],
11965 "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.10.2.tgz", 3011 "license": "MPL-2.0",
11966 "integrity": "sha512-aITqOwnLanpHLNXZJENbOgjUBeHocD+xsSJmNrjovKBW5HbSpW3d1pEls7GFQPUWXiwG9+0P4GtHfEqC/4M0Iw==", 3012 "optional": true,
3013 "os": [
3014 "darwin"
3015 ],
11967 "engines": { 3016 "engines": {
11968 "node": ">=12" 3017 "node": ">= 12.0.0"
11969 }, 3018 },
11970 "funding": { 3019 "funding": {
11971 "url": "https://github.com/sindresorhus/emittery?sponsor=1" 3020 "type": "opencollective",
11972 } 3021 "url": "https://opencollective.com/parcel"
11973 },
11974 "node_modules/jest-watch-typeahead/node_modules/has-flag": {
11975 "version": "4.0.0",
11976 "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
11977 "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
11978 "engines": {
11979 "node": ">=8"
11980 }
11981 },
11982 "node_modules/jest-watch-typeahead/node_modules/jest-message-util": {
11983 "version": "28.1.3",
11984 "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-28.1.3.tgz",
11985 "integrity": "sha512-PFdn9Iewbt575zKPf1286Ht9EPoJmYT7P0kY+RibeYZ2XtOr53pDLEFoTWXbd1h4JiGiWpTBC84fc8xMXQMb7g==",
11986 "dependencies": {
11987 "@babel/code-frame": "^7.12.13",
11988 "@jest/types": "^28.1.3",
11989 "@types/stack-utils": "^2.0.0",
11990 "chalk": "^4.0.0",
11991 "graceful-fs": "^4.2.9",
11992 "micromatch": "^4.0.4",
11993 "pretty-format": "^28.1.3",
11994 "slash": "^3.0.0",
11995 "stack-utils": "^2.0.3"
11996 },
11997 "engines": {
11998 "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0"
11999 }
12000 },
12001 "node_modules/jest-watch-typeahead/node_modules/jest-message-util/node_modules/slash": {
12002 "version": "3.0.0",
12003 "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
12004 "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
12005 "engines": {
12006 "node": ">=8"
12007 }
12008 },
12009 "node_modules/jest-watch-typeahead/node_modules/jest-regex-util": {
12010 "version": "28.0.2",
12011 "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-28.0.2.tgz",
12012 "integrity": "sha512-4s0IgyNIy0y9FK+cjoVYoxamT7Zeo7MhzqRGx7YDYmaQn1wucY9rotiGkBzzcMXTtjrCAP/f7f+E0F7+fxPNdw==",
12013 "engines": {
12014 "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0"
12015 }
12016 },
12017 "node_modules/jest-watch-typeahead/node_modules/jest-util": {
12018 "version": "28.1.3",
12019 "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-28.1.3.tgz",
12020 "integrity": "sha512-XdqfpHwpcSRko/C35uLYFM2emRAltIIKZiJ9eAmhjsj0CqZMa0p1ib0R5fWIqGhn1a103DebTbpqIaP1qCQ6tQ==",
12021 "dependencies": {
12022 "@jest/types": "^28.1.3",
12023 "@types/node": "*",
12024 "chalk": "^4.0.0",
12025 "ci-info": "^3.2.0",
12026 "graceful-fs": "^4.2.9",
12027 "picomatch": "^2.2.3"
12028 },
12029 "engines": {
12030 "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0"
12031 }
12032 },
12033 "node_modules/jest-watch-typeahead/node_modules/jest-watcher": {
12034 "version": "28.1.3",
12035 "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-28.1.3.tgz",
12036 "integrity": "sha512-t4qcqj9hze+jviFPUN3YAtAEeFnr/azITXQEMARf5cMwKY2SMBRnCQTXLixTl20OR6mLh9KLMrgVJgJISym+1g==",
12037 "dependencies": {
12038 "@jest/test-result": "^28.1.3",
12039 "@jest/types": "^28.1.3",
12040 "@types/node": "*",
12041 "ansi-escapes": "^4.2.1",
12042 "chalk": "^4.0.0",
12043 "emittery": "^0.10.2",
12044 "jest-util": "^28.1.3",
12045 "string-length": "^4.0.1"
12046 },
12047 "engines": {
12048 "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0"
12049 }
12050 },
12051 "node_modules/jest-watch-typeahead/node_modules/jest-watcher/node_modules/string-length": {
12052 "version": "4.0.2",
12053 "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz",
12054 "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==",
12055 "dependencies": {
12056 "char-regex": "^1.0.2",
12057 "strip-ansi": "^6.0.0"
12058 },
12059 "engines": {
12060 "node": ">=10"
12061 }
12062 },
12063 "node_modules/jest-watch-typeahead/node_modules/jest-watcher/node_modules/strip-ansi": {
12064 "version": "6.0.1",
12065 "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
12066 "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
12067 "dependencies": {
12068 "ansi-regex": "^5.0.1"
12069 },
12070 "engines": {
12071 "node": ">=8"
12072 }
12073 },
12074 "node_modules/jest-watch-typeahead/node_modules/pretty-format": {
12075 "version": "28.1.3",
12076 "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.3.tgz",
12077 "integrity": "sha512-8gFb/To0OmxHR9+ZTb14Df2vNxdGCX8g1xWGUTqUw5TiZvcQf5sHKObd5UcPyLLyowNwDAMTF3XWOG1B6mxl1Q==",
12078 "dependencies": {
12079 "@jest/schemas": "^28.1.3",
12080 "ansi-regex": "^5.0.1",
12081 "ansi-styles": "^5.0.0",
12082 "react-is": "^18.0.0"
12083 },
12084 "engines": {
12085 "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0"
12086 } 3022 }
12087 }, 3023 },
12088 "node_modules/jest-watch-typeahead/node_modules/pretty-format/node_modules/ansi-styles": { 3024 "node_modules/lightningcss-freebsd-x64": {
12089 "version": "5.2.0", 3025 "version": "1.30.1",
12090 "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", 3026 "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.30.1.tgz",
12091 "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", 3027 "integrity": "sha512-kmW6UGCGg2PcyUE59K5r0kWfKPAVy4SltVeut+umLCFoJ53RdCUWxcRDzO1eTaxf/7Q2H7LTquFHPL5R+Gjyig==",
3028 "cpu": [
3029 "x64"
3030 ],
3031 "license": "MPL-2.0",
3032 "optional": true,
3033 "os": [
3034 "freebsd"
3035 ],
12092 "engines": { 3036 "engines": {
12093 "node": ">=10" 3037 "node": ">= 12.0.0"
12094 }, 3038 },
12095 "funding": { 3039 "funding": {
12096 "url": "https://github.com/chalk/ansi-styles?sponsor=1" 3040 "type": "opencollective",
3041 "url": "https://opencollective.com/parcel"
12097 } 3042 }
12098 }, 3043 },
12099 "node_modules/jest-watch-typeahead/node_modules/react-is": { 3044 "node_modules/lightningcss-linux-arm-gnueabihf": {
12100 "version": "18.3.1", 3045 "version": "1.30.1",
12101 "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", 3046 "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.30.1.tgz",
12102 "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==" 3047 "integrity": "sha512-MjxUShl1v8pit+6D/zSPq9S9dQ2NPFSQwGvxBCYaBYLPlCWuPh9/t1MRS8iUaR8i+a6w7aps+B4N0S1TYP/R+Q==",
12103 }, 3048 "cpu": [
12104 "node_modules/jest-watch-typeahead/node_modules/slash": { 3049 "arm"
12105 "version": "4.0.0", 3050 ],
12106 "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", 3051 "license": "MPL-2.0",
12107 "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", 3052 "optional": true,
3053 "os": [
3054 "linux"
3055 ],
12108 "engines": { 3056 "engines": {
12109 "node": ">=12" 3057 "node": ">= 12.0.0"
12110 }, 3058 },
12111 "funding": { 3059 "funding": {
12112 "url": "https://github.com/sponsors/sindresorhus" 3060 "type": "opencollective",
3061 "url": "https://opencollective.com/parcel"
12113 } 3062 }
12114 }, 3063 },
12115 "node_modules/jest-watch-typeahead/node_modules/string-length": { 3064 "node_modules/lightningcss-linux-arm64-gnu": {
12116 "version": "5.0.1", 3065 "version": "1.30.1",
12117 "resolved": "https://registry.npmjs.org/string-length/-/string-length-5.0.1.tgz", 3066 "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.30.1.tgz",
12118 "integrity": "sha512-9Ep08KAMUn0OadnVaBuRdE2l615CQ508kr0XMadjClfYpdCyvrbFp6Taebo8yyxokQ4viUd/xPPUA4FGgUa0ow==", 3067 "integrity": "sha512-gB72maP8rmrKsnKYy8XUuXi/4OctJiuQjcuqWNlJQ6jZiWqtPvqFziskH3hnajfvKB27ynbVCucKSm2rkQp4Bw==",
12119 "dependencies": { 3068 "cpu": [
12120 "char-regex": "^2.0.0", 3069 "arm64"
12121 "strip-ansi": "^7.0.1" 3070 ],
12122 }, 3071 "license": "MPL-2.0",
3072 "optional": true,
3073 "os": [
3074 "linux"
3075 ],
12123 "engines": { 3076 "engines": {
12124 "node": ">=12.20" 3077 "node": ">= 12.0.0"
12125 }, 3078 },
12126 "funding": { 3079 "funding": {
12127 "url": "https://github.com/sponsors/sindresorhus" 3080 "type": "opencollective",
12128 } 3081 "url": "https://opencollective.com/parcel"
12129 },
12130 "node_modules/jest-watch-typeahead/node_modules/string-length/node_modules/char-regex": {
12131 "version": "2.0.1",
12132 "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-2.0.1.tgz",
12133 "integrity": "sha512-oSvEeo6ZUD7NepqAat3RqoucZ5SeqLJgOvVIwkafu6IP3V0pO38s/ypdVUmDDK6qIIHNlYHJAKX9E7R7HoKElw==",
12134 "engines": {
12135 "node": ">=12.20"
12136 } 3082 }
12137 }, 3083 },
12138 "node_modules/jest-watch-typeahead/node_modules/strip-ansi": { 3084 "node_modules/lightningcss-linux-arm64-musl": {
12139 "version": "7.1.0", 3085 "version": "1.30.1",
12140 "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", 3086 "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.30.1.tgz",
12141 "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", 3087 "integrity": "sha512-jmUQVx4331m6LIX+0wUhBbmMX7TCfjF5FoOH6SD1CttzuYlGNVpA7QnrmLxrsub43ClTINfGSYyHe2HWeLl5CQ==",
12142 "dependencies": { 3088 "cpu": [
12143 "ansi-regex": "^6.0.1" 3089 "arm64"
12144 }, 3090 ],
3091 "license": "MPL-2.0",
3092 "optional": true,
3093 "os": [
3094 "linux"
3095 ],
12145 "engines": { 3096 "engines": {
12146 "node": ">=12" 3097 "node": ">= 12.0.0"
12147 }, 3098 },
12148 "funding": { 3099 "funding": {
12149 "url": "https://github.com/chalk/strip-ansi?sponsor=1" 3100 "type": "opencollective",
3101 "url": "https://opencollective.com/parcel"
12150 } 3102 }
12151 }, 3103 },
12152 "node_modules/jest-watch-typeahead/node_modules/strip-ansi/node_modules/ansi-regex": { 3104 "node_modules/lightningcss-linux-x64-gnu": {
12153 "version": "6.0.1", 3105 "version": "1.30.1",
12154 "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", 3106 "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.30.1.tgz",
12155 "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", 3107 "integrity": "sha512-piWx3z4wN8J8z3+O5kO74+yr6ze/dKmPnI7vLqfSqI8bccaTGY5xiSGVIJBDd5K5BHlvVLpUB3S2YCfelyJ1bw==",
3108 "cpu": [
3109 "x64"
3110 ],
3111 "license": "MPL-2.0",
3112 "optional": true,
3113 "os": [
3114 "linux"
3115 ],
12156 "engines": { 3116 "engines": {
12157 "node": ">=12" 3117 "node": ">= 12.0.0"
12158 }, 3118 },
12159 "funding": { 3119 "funding": {
12160 "url": "https://github.com/chalk/ansi-regex?sponsor=1" 3120 "type": "opencollective",
12161 } 3121 "url": "https://opencollective.com/parcel"
12162 },
12163 "node_modules/jest-watch-typeahead/node_modules/supports-color": {
12164 "version": "7.2.0",
12165 "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
12166 "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
12167 "dependencies": {
12168 "has-flag": "^4.0.0"
12169 },
12170 "engines": {
12171 "node": ">=8"
12172 }
12173 },
12174 "node_modules/jest-watcher": {
12175 "version": "27.5.1",
12176 "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-27.5.1.tgz",
12177 "integrity": "sha512-z676SuD6Z8o8qbmEGhoEUFOM1+jfEiL3DXHK/xgEiG2EyNYfFG60jluWcupY6dATjfEsKQuibReS1djInQnoVw==",
12178 "dependencies": {
12179 "@jest/test-result": "^27.5.1",
12180 "@jest/types": "^27.5.1",
12181 "@types/node": "*",
12182 "ansi-escapes": "^4.2.1",
12183 "chalk": "^4.0.0",
12184 "jest-util": "^27.5.1",
12185 "string-length": "^4.0.1"
12186 },
12187 "engines": {
12188 "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
12189 } 3122 }
12190 }, 3123 },
12191 "node_modules/jest-watcher/node_modules/ansi-styles": { 3124 "node_modules/lightningcss-linux-x64-musl": {
12192 "version": "4.3.0", 3125 "version": "1.30.1",
12193 "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", 3126 "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.30.1.tgz",
12194 "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", 3127 "integrity": "sha512-rRomAK7eIkL+tHY0YPxbc5Dra2gXlI63HL+v1Pdi1a3sC+tJTcFrHX+E86sulgAXeI7rSzDYhPSeHHjqFhqfeQ==",
12195 "dependencies": { 3128 "cpu": [
12196 "color-convert": "^2.0.1" 3129 "x64"
12197 }, 3130 ],
3131 "license": "MPL-2.0",
3132 "optional": true,
3133 "os": [
3134 "linux"
3135 ],
12198 "engines": { 3136 "engines": {
12199 "node": ">=8" 3137 "node": ">= 12.0.0"
12200 }, 3138 },
12201 "funding": { 3139 "funding": {
12202 "url": "https://github.com/chalk/ansi-styles?sponsor=1" 3140 "type": "opencollective",
3141 "url": "https://opencollective.com/parcel"
12203 } 3142 }
12204 }, 3143 },
12205 "node_modules/jest-watcher/node_modules/chalk": { 3144 "node_modules/lightningcss-win32-arm64-msvc": {
12206 "version": "4.1.2", 3145 "version": "1.30.1",
12207 "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", 3146 "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.30.1.tgz",
12208 "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", 3147 "integrity": "sha512-mSL4rqPi4iXq5YVqzSsJgMVFENoa4nGTT/GjO2c0Yl9OuQfPsIfncvLrEW6RbbB24WtZ3xP/2CCmI3tNkNV4oA==",
12209 "dependencies": { 3148 "cpu": [
12210 "ansi-styles": "^4.1.0", 3149 "arm64"
12211 "supports-color": "^7.1.0" 3150 ],
12212 }, 3151 "license": "MPL-2.0",
3152 "optional": true,
3153 "os": [
3154 "win32"
3155 ],
12213 "engines": { 3156 "engines": {
12214 "node": ">=10" 3157 "node": ">= 12.0.0"
12215 }, 3158 },
12216 "funding": { 3159 "funding": {
12217 "url": "https://github.com/chalk/chalk?sponsor=1" 3160 "type": "opencollective",
12218 } 3161 "url": "https://opencollective.com/parcel"
12219 },
12220 "node_modules/jest-watcher/node_modules/color-convert": {
12221 "version": "2.0.1",
12222 "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
12223 "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
12224 "dependencies": {
12225 "color-name": "~1.1.4"
12226 },
12227 "engines": {
12228 "node": ">=7.0.0"
12229 }
12230 },
12231 "node_modules/jest-watcher/node_modules/color-name": {
12232 "version": "1.1.4",
12233 "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
12234 "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
12235 },
12236 "node_modules/jest-watcher/node_modules/has-flag": {
12237 "version": "4.0.0",
12238 "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
12239 "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
12240 "engines": {
12241 "node": ">=8"
12242 }
12243 },
12244 "node_modules/jest-watcher/node_modules/supports-color": {
12245 "version": "7.2.0",
12246 "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
12247 "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
12248 "dependencies": {
12249 "has-flag": "^4.0.0"
12250 },
12251 "engines": {
12252 "node": ">=8"
12253 }
12254 },
12255 "node_modules/jest-worker": {
12256 "version": "27.5.1",
12257 "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz",
12258 "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==",
12259 "dependencies": {
12260 "@types/node": "*",
12261 "merge-stream": "^2.0.0",
12262 "supports-color": "^8.0.0"
12263 },
12264 "engines": {
12265 "node": ">= 10.13.0"
12266 }
12267 },
12268 "node_modules/jest-worker/node_modules/has-flag": {
12269 "version": "4.0.0",
12270 "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
12271 "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
12272 "engines": {
12273 "node": ">=8"
12274 } 3162 }
12275 }, 3163 },
12276 "node_modules/jest-worker/node_modules/supports-color": { 3164 "node_modules/lightningcss-win32-x64-msvc": {
12277 "version": "8.1.1", 3165 "version": "1.30.1",
12278 "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", 3166 "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.30.1.tgz",
12279 "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", 3167 "integrity": "sha512-PVqXh48wh4T53F/1CCu8PIPCxLzWyCnn/9T5W1Jpmdy5h9Cwd+0YQS6/LwhHXSafuc61/xg9Lv5OrCby6a++jg==",
12280 "dependencies": { 3168 "cpu": [
12281 "has-flag": "^4.0.0" 3169 "x64"
12282 }, 3170 ],
3171 "license": "MPL-2.0",
3172 "optional": true,
3173 "os": [
3174 "win32"
3175 ],
12283 "engines": { 3176 "engines": {
12284 "node": ">=10" 3177 "node": ">= 12.0.0"
12285 }, 3178 },
12286 "funding": { 3179 "funding": {
12287 "url": "https://github.com/chalk/supports-color?sponsor=1" 3180 "type": "opencollective",
12288 } 3181 "url": "https://opencollective.com/parcel"
12289 },
12290 "node_modules/jiti": {
12291 "version": "1.21.6",
12292 "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.6.tgz",
12293 "integrity": "sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==",
12294 "bin": {
12295 "jiti": "bin/jiti.js"
12296 }
12297 },
12298 "node_modules/js-tokens": {
12299 "version": "4.0.0",
12300 "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
12301 "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="
12302 },
12303 "node_modules/js-yaml": {
12304 "version": "3.14.1",
12305 "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz",
12306 "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==",
12307 "dependencies": {
12308 "argparse": "^1.0.7",
12309 "esprima": "^4.0.0"
12310 },
12311 "bin": {
12312 "js-yaml": "bin/js-yaml.js"
12313 }
12314 },
12315 "node_modules/jsdom": {
12316 "version": "16.7.0",
12317 "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.7.0.tgz",
12318 "integrity": "sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw==",
12319 "dependencies": {
12320 "abab": "^2.0.5",
12321 "acorn": "^8.2.4",
12322 "acorn-globals": "^6.0.0",
12323 "cssom": "^0.4.4",
12324 "cssstyle": "^2.3.0",
12325 "data-urls": "^2.0.0",
12326 "decimal.js": "^10.2.1",
12327 "domexception": "^2.0.1",
12328 "escodegen": "^2.0.0",
12329 "form-data": "^3.0.0",
12330 "html-encoding-sniffer": "^2.0.1",
12331 "http-proxy-agent": "^4.0.1",
12332 "https-proxy-agent": "^5.0.0",
12333 "is-potential-custom-element-name": "^1.0.1",
12334 "nwsapi": "^2.2.0",
12335 "parse5": "6.0.1",
12336 "saxes": "^5.0.1",
12337 "symbol-tree": "^3.2.4",
12338 "tough-cookie": "^4.0.0",
12339 "w3c-hr-time": "^1.0.2",
12340 "w3c-xmlserializer": "^2.0.0",
12341 "webidl-conversions": "^6.1.0",
12342 "whatwg-encoding": "^1.0.5",
12343 "whatwg-mimetype": "^2.3.0",
12344 "whatwg-url": "^8.5.0",
12345 "ws": "^7.4.6",
12346 "xml-name-validator": "^3.0.0"
12347 },
12348 "engines": {
12349 "node": ">=10"
12350 },
12351 "peerDependencies": {
12352 "canvas": "^2.5.0"
12353 },
12354 "peerDependenciesMeta": {
12355 "canvas": {
12356 "optional": true
12357 }
12358 }
12359 },
12360 "node_modules/jsesc": {
12361 "version": "2.5.2",
12362 "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz",
12363 "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==",
12364 "bin": {
12365 "jsesc": "bin/jsesc"
12366 },
12367 "engines": {
12368 "node": ">=4"
12369 }
12370 },
12371 "node_modules/json-buffer": {
12372 "version": "3.0.1",
12373 "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz",
12374 "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ=="
12375 },
12376 "node_modules/json-parse-even-better-errors": {
12377 "version": "2.3.1",
12378 "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz",
12379 "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w=="
12380 },
12381 "node_modules/json-schema": {
12382 "version": "0.4.0",
12383 "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz",
12384 "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA=="
12385 },
12386 "node_modules/json-schema-traverse": {
12387 "version": "0.4.1",
12388 "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
12389 "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="
12390 },
12391 "node_modules/json-stable-stringify-without-jsonify": {
12392 "version": "1.0.1",
12393 "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
12394 "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw=="
12395 },
12396 "node_modules/json5": {
12397 "version": "2.2.3",
12398 "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz",
12399 "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==",
12400 "bin": {
12401 "json5": "lib/cli.js"
12402 },
12403 "engines": {
12404 "node": ">=6"
12405 }
12406 },
12407 "node_modules/jsonfile": {
12408 "version": "6.1.0",
12409 "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz",
12410 "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==",
12411 "dependencies": {
12412 "universalify": "^2.0.0"
12413 },
12414 "optionalDependencies": {
12415 "graceful-fs": "^4.1.6"
12416 }
12417 },
12418 "node_modules/jsonpath": {
12419 "version": "1.1.1",
12420 "resolved": "https://registry.npmjs.org/jsonpath/-/jsonpath-1.1.1.tgz",
12421 "integrity": "sha512-l6Cg7jRpixfbgoWgkrl77dgEj8RPvND0wMH6TwQmi9Qs4TFfS9u5cUFnbeKTwj5ga5Y3BTGGNI28k117LJ009w==",
12422 "dependencies": {
12423 "esprima": "1.2.2",
12424 "static-eval": "2.0.2",
12425 "underscore": "1.12.1"
12426 }
12427 },
12428 "node_modules/jsonpath/node_modules/esprima": {
12429 "version": "1.2.2",
12430 "resolved": "https://registry.npmjs.org/esprima/-/esprima-1.2.2.tgz",
12431 "integrity": "sha512-+JpPZam9w5DuJ3Q67SqsMGtiHKENSMRVoxvArfJZK01/BfLEObtZ6orJa/MtoGNR/rfMgp5837T41PAmTwAv/A==",
12432 "bin": {
12433 "esparse": "bin/esparse.js",
12434 "esvalidate": "bin/esvalidate.js"
12435 },
12436 "engines": {
12437 "node": ">=0.4.0"
12438 }
12439 },
12440 "node_modules/jsonpointer": {
12441 "version": "5.0.1",
12442 "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-5.0.1.tgz",
12443 "integrity": "sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==",
12444 "engines": {
12445 "node": ">=0.10.0"
12446 }
12447 },
12448 "node_modules/jsx-ast-utils": {
12449 "version": "3.3.5",
12450 "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz",
12451 "integrity": "sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==",
12452 "dependencies": {
12453 "array-includes": "^3.1.6",
12454 "array.prototype.flat": "^1.3.1",
12455 "object.assign": "^4.1.4",
12456 "object.values": "^1.1.6"
12457 },
12458 "engines": {
12459 "node": ">=4.0"
12460 }
12461 },
12462 "node_modules/keyv": {
12463 "version": "4.5.4",
12464 "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz",
12465 "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==",
12466 "dependencies": {
12467 "json-buffer": "3.0.1"
12468 }
12469 },
12470 "node_modules/kind-of": {
12471 "version": "6.0.3",
12472 "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
12473 "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==",
12474 "engines": {
12475 "node": ">=0.10.0"
12476 }
12477 },
12478 "node_modules/kleur": {
12479 "version": "3.0.3",
12480 "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz",
12481 "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==",
12482 "engines": {
12483 "node": ">=6"
12484 }
12485 },
12486 "node_modules/klona": {
12487 "version": "2.0.6",
12488 "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.6.tgz",
12489 "integrity": "sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==",
12490 "engines": {
12491 "node": ">= 8"
12492 }
12493 },
12494 "node_modules/language-subtag-registry": {
12495 "version": "0.3.23",
12496 "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.23.tgz",
12497 "integrity": "sha512-0K65Lea881pHotoGEa5gDlMxt3pctLi2RplBb7Ezh4rRdLEOtgi7n4EwK9lamnUCkKBqaeKRVebTq6BAxSkpXQ=="
12498 },
12499 "node_modules/language-tags": {
12500 "version": "1.0.9",
12501 "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.9.tgz",
12502 "integrity": "sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==",
12503 "dependencies": {
12504 "language-subtag-registry": "^0.3.20"
12505 },
12506 "engines": {
12507 "node": ">=0.10"
12508 }
12509 },
12510 "node_modules/launch-editor": {
12511 "version": "2.8.1",
12512 "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.8.1.tgz",
12513 "integrity": "sha512-elBx2l/tp9z99X5H/qev8uyDywVh0VXAwEbjk8kJhnc5grOFkGh7aW6q55me9xnYbss261XtnUrysZ+XvGbhQA==",
12514 "dependencies": {
12515 "picocolors": "^1.0.0",
12516 "shell-quote": "^1.8.1"
12517 }
12518 },
12519 "node_modules/leven": {
12520 "version": "3.1.0",
12521 "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz",
12522 "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==",
12523 "engines": {
12524 "node": ">=6"
12525 }
12526 },
12527 "node_modules/levn": {
12528 "version": "0.4.1",
12529 "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz",
12530 "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==",
12531 "dependencies": {
12532 "prelude-ls": "^1.2.1",
12533 "type-check": "~0.4.0"
12534 },
12535 "engines": {
12536 "node": ">= 0.8.0"
12537 }
12538 },
12539 "node_modules/lilconfig": {
12540 "version": "2.1.0",
12541 "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz",
12542 "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==",
12543 "engines": {
12544 "node": ">=10"
12545 }
12546 },
12547 "node_modules/lines-and-columns": {
12548 "version": "1.2.4",
12549 "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz",
12550 "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg=="
12551 },
12552 "node_modules/loader-runner": {
12553 "version": "4.3.0",
12554 "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz",
12555 "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==",
12556 "engines": {
12557 "node": ">=6.11.5"
12558 }
12559 },
12560 "node_modules/loader-utils": {
12561 "version": "2.0.4",
12562 "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz",
12563 "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==",
12564 "dependencies": {
12565 "big.js": "^5.2.2",
12566 "emojis-list": "^3.0.0",
12567 "json5": "^2.1.2"
12568 },
12569 "engines": {
12570 "node": ">=8.9.0"
12571 }
12572 },
12573 "node_modules/locate-path": {
12574 "version": "5.0.0",
12575 "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
12576 "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
12577 "dependencies": {
12578 "p-locate": "^4.1.0"
12579 },
12580 "engines": {
12581 "node": ">=8"
12582 } 3182 }
12583 }, 3183 },
12584 "node_modules/lodash": { 3184 "node_modules/lodash": {
12585 "version": "4.17.21", 3185 "version": "4.17.21",
12586 "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", 3186 "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
12587 "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" 3187 "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==",
12588 }, 3188 "license": "MIT"
12589 "node_modules/lodash.debounce": {
12590 "version": "4.0.8",
12591 "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz",
12592 "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow=="
12593 },
12594 "node_modules/lodash.memoize": {
12595 "version": "4.1.2",
12596 "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz",
12597 "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag=="
12598 },
12599 "node_modules/lodash.merge": {
12600 "version": "4.6.2",
12601 "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz",
12602 "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ=="
12603 },
12604 "node_modules/lodash.sortby": {
12605 "version": "4.7.0",
12606 "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz",
12607 "integrity": "sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA=="
12608 },
12609 "node_modules/lodash.uniq": {
12610 "version": "4.5.0",
12611 "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz",
12612 "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ=="
12613 }, 3189 },
12614 "node_modules/longest-streak": { 3190 "node_modules/longest-streak": {
12615 "version": "3.1.0", 3191 "version": "3.1.0",
12616 "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-3.1.0.tgz", 3192 "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-3.1.0.tgz",
12617 "integrity": "sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==", 3193 "integrity": "sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==",
3194 "license": "MIT",
12618 "funding": { 3195 "funding": {
12619 "type": "github", 3196 "type": "github",
12620 "url": "https://github.com/sponsors/wooorm" 3197 "url": "https://github.com/sponsors/wooorm"
@@ -12624,6 +3201,7 @@
12624 "version": "1.4.0", 3201 "version": "1.4.0",
12625 "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", 3202 "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
12626 "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", 3203 "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
3204 "license": "MIT",
12627 "dependencies": { 3205 "dependencies": {
12628 "js-tokens": "^3.0.0 || ^4.0.0" 3206 "js-tokens": "^3.0.0 || ^4.0.0"
12629 }, 3207 },
@@ -12631,18 +3209,11 @@
12631 "loose-envify": "cli.js" 3209 "loose-envify": "cli.js"
12632 } 3210 }
12633 }, 3211 },
12634 "node_modules/lower-case": {
12635 "version": "2.0.2",
12636 "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz",
12637 "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==",
12638 "dependencies": {
12639 "tslib": "^2.0.3"
12640 }
12641 },
12642 "node_modules/lru-cache": { 3212 "node_modules/lru-cache": {
12643 "version": "5.1.1", 3213 "version": "5.1.1",
12644 "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", 3214 "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
12645 "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", 3215 "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==",
3216 "license": "ISC",
12646 "dependencies": { 3217 "dependencies": {
12647 "yallist": "^3.0.2" 3218 "yallist": "^3.0.2"
12648 } 3219 }
@@ -12651,59 +3222,34 @@
12651 "version": "1.5.0", 3222 "version": "1.5.0",
12652 "resolved": "https://registry.npmjs.org/lz-string/-/lz-string-1.5.0.tgz", 3223 "resolved": "https://registry.npmjs.org/lz-string/-/lz-string-1.5.0.tgz",
12653 "integrity": "sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==", 3224 "integrity": "sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==",
3225 "license": "MIT",
12654 "bin": { 3226 "bin": {
12655 "lz-string": "bin/bin.js" 3227 "lz-string": "bin/bin.js"
12656 } 3228 }
12657 }, 3229 },
12658 "node_modules/magic-string": { 3230 "node_modules/magic-string": {
12659 "version": "0.25.9", 3231 "version": "0.30.17",
12660 "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", 3232 "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz",
12661 "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", 3233 "integrity": "sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==",
3234 "license": "MIT",
12662 "dependencies": { 3235 "dependencies": {
12663 "sourcemap-codec": "^1.4.8" 3236 "@jridgewell/sourcemap-codec": "^1.5.0"
12664 } 3237 }
12665 }, 3238 },
12666 "node_modules/make-dir": { 3239 "node_modules/math-intrinsics": {
12667 "version": "3.1.0", 3240 "version": "1.1.0",
12668 "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", 3241 "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz",
12669 "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", 3242 "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==",
12670 "dependencies": { 3243 "license": "MIT",
12671 "semver": "^6.0.0"
12672 },
12673 "engines": { 3244 "engines": {
12674 "node": ">=8" 3245 "node": ">= 0.4"
12675 },
12676 "funding": {
12677 "url": "https://github.com/sponsors/sindresorhus"
12678 }
12679 },
12680 "node_modules/make-dir/node_modules/semver": {
12681 "version": "6.3.1",
12682 "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
12683 "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
12684 "bin": {
12685 "semver": "bin/semver.js"
12686 }
12687 },
12688 "node_modules/make-error": {
12689 "version": "1.3.6",
12690 "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz",
12691 "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==",
12692 "devOptional": true,
12693 "license": "ISC"
12694 },
12695 "node_modules/makeerror": {
12696 "version": "1.0.12",
12697 "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz",
12698 "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==",
12699 "dependencies": {
12700 "tmpl": "1.0.5"
12701 } 3246 }
12702 }, 3247 },
12703 "node_modules/mdast-util-from-markdown": { 3248 "node_modules/mdast-util-from-markdown": {
12704 "version": "2.0.1", 3249 "version": "2.0.2",
12705 "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.1.tgz", 3250 "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.2.tgz",
12706 "integrity": "sha512-aJEUyzZ6TzlsX2s5B4Of7lN7EQtAxvtradMMglCQDyaTFgse6CmtmdJ15ElnVRlCg1vpNyVtbem0PWzlNieZsA==", 3251 "integrity": "sha512-uZhTV/8NBuw0WHkPTrCqDOl0zVe1BIng5ZtHoDk49ME1qqcjYmmLmOf0gELgcRMxN4w2iuIeVso5/6QymSrgmA==",
3252 "license": "MIT",
12707 "dependencies": { 3253 "dependencies": {
12708 "@types/mdast": "^4.0.0", 3254 "@types/mdast": "^4.0.0",
12709 "@types/unist": "^3.0.0", 3255 "@types/unist": "^3.0.0",
@@ -12724,9 +3270,10 @@
12724 } 3270 }
12725 }, 3271 },
12726 "node_modules/mdast-util-mdx-expression": { 3272 "node_modules/mdast-util-mdx-expression": {
12727 "version": "2.0.0", 3273 "version": "2.0.1",
12728 "resolved": "https://registry.npmjs.org/mdast-util-mdx-expression/-/mdast-util-mdx-expression-2.0.0.tgz", 3274 "resolved": "https://registry.npmjs.org/mdast-util-mdx-expression/-/mdast-util-mdx-expression-2.0.1.tgz",
12729 "integrity": "sha512-fGCu8eWdKUKNu5mohVGkhBXCXGnOTLuFqOvGMvdikr+J1w7lDJgxThOKpwRWzzbyXAU2hhSwsmssOY4yTokluw==", 3275 "integrity": "sha512-J6f+9hUp+ldTZqKRSg7Vw5V6MqjATc+3E4gf3CFNcuZNWD8XdyI6zQ8GqH7f8169MM6P7hMBRDVGnn7oHB9kXQ==",
3276 "license": "MIT",
12730 "dependencies": { 3277 "dependencies": {
12731 "@types/estree-jsx": "^1.0.0", 3278 "@types/estree-jsx": "^1.0.0",
12732 "@types/hast": "^3.0.0", 3279 "@types/hast": "^3.0.0",
@@ -12741,9 +3288,10 @@
12741 } 3288 }
12742 }, 3289 },
12743 "node_modules/mdast-util-mdx-jsx": { 3290 "node_modules/mdast-util-mdx-jsx": {
12744 "version": "3.1.3", 3291 "version": "3.2.0",
12745 "resolved": "https://registry.npmjs.org/mdast-util-mdx-jsx/-/mdast-util-mdx-jsx-3.1.3.tgz", 3292 "resolved": "https://registry.npmjs.org/mdast-util-mdx-jsx/-/mdast-util-mdx-jsx-3.2.0.tgz",
12746 "integrity": "sha512-bfOjvNt+1AcbPLTFMFWY149nJz0OjmewJs3LQQ5pIyVGxP4CdOqNVJL6kTaM5c68p8q82Xv3nCyFfUnuEcH3UQ==", 3293 "integrity": "sha512-lj/z8v0r6ZtsN/cGNNtemmmfoLAFZnjMbNyLzBafjzikOM+glrjNHPlf6lQDOTccj9n5b0PPihEBbhneMyGs1Q==",
3294 "license": "MIT",
12747 "dependencies": { 3295 "dependencies": {
12748 "@types/estree-jsx": "^1.0.0", 3296 "@types/estree-jsx": "^1.0.0",
12749 "@types/hast": "^3.0.0", 3297 "@types/hast": "^3.0.0",
@@ -12767,6 +3315,7 @@
12767 "version": "2.0.1", 3315 "version": "2.0.1",
12768 "resolved": "https://registry.npmjs.org/mdast-util-mdxjs-esm/-/mdast-util-mdxjs-esm-2.0.1.tgz", 3316 "resolved": "https://registry.npmjs.org/mdast-util-mdxjs-esm/-/mdast-util-mdxjs-esm-2.0.1.tgz",
12769 "integrity": "sha512-EcmOpxsZ96CvlP03NghtH1EsLtr0n9Tm4lPUJUBccV9RwUOneqSycg19n5HGzCf+10LozMRSObtVr3ee1WoHtg==", 3317 "integrity": "sha512-EcmOpxsZ96CvlP03NghtH1EsLtr0n9Tm4lPUJUBccV9RwUOneqSycg19n5HGzCf+10LozMRSObtVr3ee1WoHtg==",
3318 "license": "MIT",
12770 "dependencies": { 3319 "dependencies": {
12771 "@types/estree-jsx": "^1.0.0", 3320 "@types/estree-jsx": "^1.0.0",
12772 "@types/hast": "^3.0.0", 3321 "@types/hast": "^3.0.0",
@@ -12784,6 +3333,7 @@
12784 "version": "4.1.0", 3333 "version": "4.1.0",
12785 "resolved": "https://registry.npmjs.org/mdast-util-phrasing/-/mdast-util-phrasing-4.1.0.tgz", 3334 "resolved": "https://registry.npmjs.org/mdast-util-phrasing/-/mdast-util-phrasing-4.1.0.tgz",
12786 "integrity": "sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==", 3335 "integrity": "sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==",
3336 "license": "MIT",
12787 "dependencies": { 3337 "dependencies": {
12788 "@types/mdast": "^4.0.0", 3338 "@types/mdast": "^4.0.0",
12789 "unist-util-is": "^6.0.0" 3339 "unist-util-is": "^6.0.0"
@@ -12797,6 +3347,7 @@
12797 "version": "13.2.0", 3347 "version": "13.2.0",
12798 "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-13.2.0.tgz", 3348 "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-13.2.0.tgz",
12799 "integrity": "sha512-QGYKEuUsYT9ykKBCMOEDLsU5JRObWQusAolFMeko/tYPufNkRffBAQjIE+99jbA87xv6FgmjLtwjh9wBWajwAA==", 3349 "integrity": "sha512-QGYKEuUsYT9ykKBCMOEDLsU5JRObWQusAolFMeko/tYPufNkRffBAQjIE+99jbA87xv6FgmjLtwjh9wBWajwAA==",
3350 "license": "MIT",
12800 "dependencies": { 3351 "dependencies": {
12801 "@types/hast": "^3.0.0", 3352 "@types/hast": "^3.0.0",
12802 "@types/mdast": "^4.0.0", 3353 "@types/mdast": "^4.0.0",
@@ -12814,15 +3365,17 @@
12814 } 3365 }
12815 }, 3366 },
12816 "node_modules/mdast-util-to-markdown": { 3367 "node_modules/mdast-util-to-markdown": {
12817 "version": "2.1.0", 3368 "version": "2.1.2",
12818 "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-2.1.0.tgz", 3369 "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-2.1.2.tgz",
12819 "integrity": "sha512-SR2VnIEdVNCJbP6y7kVTJgPLifdr8WEU440fQec7qHoHOUz/oJ2jmNRqdDQ3rbiStOXb2mCDGTuwsK5OPUgYlQ==", 3370 "integrity": "sha512-xj68wMTvGXVOKonmog6LwyJKrYXZPvlwabaryTjLh9LuvovB/KAH+kvi8Gjj+7rJjsFi23nkUxRQv1KqSroMqA==",
3371 "license": "MIT",
12820 "dependencies": { 3372 "dependencies": {
12821 "@types/mdast": "^4.0.0", 3373 "@types/mdast": "^4.0.0",
12822 "@types/unist": "^3.0.0", 3374 "@types/unist": "^3.0.0",
12823 "longest-streak": "^3.0.0", 3375 "longest-streak": "^3.0.0",
12824 "mdast-util-phrasing": "^4.0.0", 3376 "mdast-util-phrasing": "^4.0.0",
12825 "mdast-util-to-string": "^4.0.0", 3377 "mdast-util-to-string": "^4.0.0",
3378 "micromark-util-classify-character": "^2.0.0",
12826 "micromark-util-decode-string": "^2.0.0", 3379 "micromark-util-decode-string": "^2.0.0",
12827 "unist-util-visit": "^5.0.0", 3380 "unist-util-visit": "^5.0.0",
12828 "zwitch": "^2.0.0" 3381 "zwitch": "^2.0.0"
@@ -12836,6 +3389,7 @@
12836 "version": "4.0.0", 3389 "version": "4.0.0",
12837 "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-4.0.0.tgz", 3390 "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-4.0.0.tgz",
12838 "integrity": "sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==", 3391 "integrity": "sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==",
3392 "license": "MIT",
12839 "dependencies": { 3393 "dependencies": {
12840 "@types/mdast": "^4.0.0" 3394 "@types/mdast": "^4.0.0"
12841 }, 3395 },
@@ -12844,60 +3398,10 @@
12844 "url": "https://opencollective.com/unified" 3398 "url": "https://opencollective.com/unified"
12845 } 3399 }
12846 }, 3400 },
12847 "node_modules/mdn-data": {
12848 "version": "2.0.4",
12849 "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.4.tgz",
12850 "integrity": "sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA=="
12851 },
12852 "node_modules/media-typer": {
12853 "version": "0.3.0",
12854 "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
12855 "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==",
12856 "engines": {
12857 "node": ">= 0.6"
12858 }
12859 },
12860 "node_modules/memfs": {
12861 "version": "3.5.3",
12862 "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.5.3.tgz",
12863 "integrity": "sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==",
12864 "dependencies": {
12865 "fs-monkey": "^1.0.4"
12866 },
12867 "engines": {
12868 "node": ">= 4.0.0"
12869 }
12870 },
12871 "node_modules/merge-descriptors": {
12872 "version": "1.0.1",
12873 "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
12874 "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w=="
12875 },
12876 "node_modules/merge-stream": {
12877 "version": "2.0.0",
12878 "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz",
12879 "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w=="
12880 },
12881 "node_modules/merge2": {
12882 "version": "1.4.1",
12883 "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
12884 "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
12885 "engines": {
12886 "node": ">= 8"
12887 }
12888 },
12889 "node_modules/methods": {
12890 "version": "1.1.2",
12891 "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
12892 "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==",
12893 "engines": {
12894 "node": ">= 0.6"
12895 }
12896 },
12897 "node_modules/micromark": { 3401 "node_modules/micromark": {
12898 "version": "4.0.0", 3402 "version": "4.0.1",
12899 "resolved": "https://registry.npmjs.org/micromark/-/micromark-4.0.0.tgz", 3403 "resolved": "https://registry.npmjs.org/micromark/-/micromark-4.0.1.tgz",
12900 "integrity": "sha512-o/sd0nMof8kYff+TqcDx3VSrgBTcZpSvYcAHIfHhv5VAuNmisCxjhx6YmxS8PFEpb9z5WKWKPdzf0jM23ro3RQ==", 3404 "integrity": "sha512-eBPdkcoCNvYcxQOAKAlceo5SNdzZWfF+FcSupREAzdAh9rRmE239CEQAiTwIgblwnoM8zzj35sZ5ZwvSEOF6Kw==",
12901 "funding": [ 3405 "funding": [
12902 { 3406 {
12903 "type": "GitHub Sponsors", 3407 "type": "GitHub Sponsors",
@@ -12908,6 +3412,7 @@
12908 "url": "https://opencollective.com/unified" 3412 "url": "https://opencollective.com/unified"
12909 } 3413 }
12910 ], 3414 ],
3415 "license": "MIT",
12911 "dependencies": { 3416 "dependencies": {
12912 "@types/debug": "^4.0.0", 3417 "@types/debug": "^4.0.0",
12913 "debug": "^4.0.0", 3418 "debug": "^4.0.0",
@@ -12929,9 +3434,9 @@
12929 } 3434 }
12930 }, 3435 },
12931 "node_modules/micromark-core-commonmark": { 3436 "node_modules/micromark-core-commonmark": {
12932 "version": "2.0.1", 3437 "version": "2.0.2",
12933 "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-2.0.1.tgz", 3438 "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-2.0.2.tgz",
12934 "integrity": "sha512-CUQyKr1e///ZODyD1U3xit6zXwy1a8q2a1S1HKtIlmgvurrEpaw/Y9y6KSIbF8P59cn/NjzHyO+Q2fAyYLQrAA==", 3439 "integrity": "sha512-FKjQKbxd1cibWMM1P9N+H8TwlgGgSkWZMmfuVucLCHaYqeSvJ0hFeHsIa65pA2nYbes0f8LDHPMrd9X7Ujxg9w==",
12935 "funding": [ 3440 "funding": [
12936 { 3441 {
12937 "type": "GitHub Sponsors", 3442 "type": "GitHub Sponsors",
@@ -12942,6 +3447,7 @@
12942 "url": "https://opencollective.com/unified" 3447 "url": "https://opencollective.com/unified"
12943 } 3448 }
12944 ], 3449 ],
3450 "license": "MIT",
12945 "dependencies": { 3451 "dependencies": {
12946 "decode-named-character-reference": "^1.0.0", 3452 "decode-named-character-reference": "^1.0.0",
12947 "devlop": "^1.0.0", 3453 "devlop": "^1.0.0",
@@ -12962,9 +3468,9 @@
12962 } 3468 }
12963 }, 3469 },
12964 "node_modules/micromark-factory-destination": { 3470 "node_modules/micromark-factory-destination": {
12965 "version": "2.0.0", 3471 "version": "2.0.1",
12966 "resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-2.0.0.tgz", 3472 "resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-2.0.1.tgz",
12967 "integrity": "sha512-j9DGrQLm/Uhl2tCzcbLhy5kXsgkHUrjJHg4fFAeoMRwJmJerT9aw4FEhIbZStWN8A3qMwOp1uzHr4UL8AInxtA==", 3473 "integrity": "sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA==",
12968 "funding": [ 3474 "funding": [
12969 { 3475 {
12970 "type": "GitHub Sponsors", 3476 "type": "GitHub Sponsors",
@@ -12975,6 +3481,7 @@
12975 "url": "https://opencollective.com/unified" 3481 "url": "https://opencollective.com/unified"
12976 } 3482 }
12977 ], 3483 ],
3484 "license": "MIT",
12978 "dependencies": { 3485 "dependencies": {
12979 "micromark-util-character": "^2.0.0", 3486 "micromark-util-character": "^2.0.0",
12980 "micromark-util-symbol": "^2.0.0", 3487 "micromark-util-symbol": "^2.0.0",
@@ -12982,9 +3489,9 @@
12982 } 3489 }
12983 }, 3490 },
12984 "node_modules/micromark-factory-label": { 3491 "node_modules/micromark-factory-label": {
12985 "version": "2.0.0", 3492 "version": "2.0.1",
12986 "resolved": "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-2.0.0.tgz", 3493 "resolved": "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-2.0.1.tgz",
12987 "integrity": "sha512-RR3i96ohZGde//4WSe/dJsxOX6vxIg9TimLAS3i4EhBAFx8Sm5SmqVfR8E87DPSR31nEAjZfbt91OMZWcNgdZw==", 3494 "integrity": "sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg==",
12988 "funding": [ 3495 "funding": [
12989 { 3496 {
12990 "type": "GitHub Sponsors", 3497 "type": "GitHub Sponsors",
@@ -12995,6 +3502,7 @@
12995 "url": "https://opencollective.com/unified" 3502 "url": "https://opencollective.com/unified"
12996 } 3503 }
12997 ], 3504 ],
3505 "license": "MIT",
12998 "dependencies": { 3506 "dependencies": {
12999 "devlop": "^1.0.0", 3507 "devlop": "^1.0.0",
13000 "micromark-util-character": "^2.0.0", 3508 "micromark-util-character": "^2.0.0",
@@ -13003,9 +3511,9 @@
13003 } 3511 }
13004 }, 3512 },
13005 "node_modules/micromark-factory-space": { 3513 "node_modules/micromark-factory-space": {
13006 "version": "2.0.0", 3514 "version": "2.0.1",
13007 "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.0.tgz", 3515 "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz",
13008 "integrity": "sha512-TKr+LIDX2pkBJXFLzpyPyljzYK3MtmllMUMODTQJIUfDGncESaqB90db9IAUcz4AZAJFdd8U9zOp9ty1458rxg==", 3516 "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==",
13009 "funding": [ 3517 "funding": [
13010 { 3518 {
13011 "type": "GitHub Sponsors", 3519 "type": "GitHub Sponsors",
@@ -13016,15 +3524,16 @@
13016 "url": "https://opencollective.com/unified" 3524 "url": "https://opencollective.com/unified"
13017 } 3525 }
13018 ], 3526 ],
3527 "license": "MIT",
13019 "dependencies": { 3528 "dependencies": {
13020 "micromark-util-character": "^2.0.0", 3529 "micromark-util-character": "^2.0.0",
13021 "micromark-util-types": "^2.0.0" 3530 "micromark-util-types": "^2.0.0"
13022 } 3531 }
13023 }, 3532 },
13024 "node_modules/micromark-factory-title": { 3533 "node_modules/micromark-factory-title": {
13025 "version": "2.0.0", 3534 "version": "2.0.1",
13026 "resolved": "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-2.0.0.tgz", 3535 "resolved": "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-2.0.1.tgz",
13027 "integrity": "sha512-jY8CSxmpWLOxS+t8W+FG3Xigc0RDQA9bKMY/EwILvsesiRniiVMejYTE4wumNc2f4UbAa4WsHqe3J1QS1sli+A==", 3536 "integrity": "sha512-5bZ+3CjhAd9eChYTHsjy6TGxpOFSKgKKJPJxr293jTbfry2KDoWkhBb6TcPVB4NmzaPhMs1Frm9AZH7OD4Cjzw==",
13028 "funding": [ 3537 "funding": [
13029 { 3538 {
13030 "type": "GitHub Sponsors", 3539 "type": "GitHub Sponsors",
@@ -13035,6 +3544,7 @@
13035 "url": "https://opencollective.com/unified" 3544 "url": "https://opencollective.com/unified"
13036 } 3545 }
13037 ], 3546 ],
3547 "license": "MIT",
13038 "dependencies": { 3548 "dependencies": {
13039 "micromark-factory-space": "^2.0.0", 3549 "micromark-factory-space": "^2.0.0",
13040 "micromark-util-character": "^2.0.0", 3550 "micromark-util-character": "^2.0.0",
@@ -13043,9 +3553,9 @@
13043 } 3553 }
13044 }, 3554 },
13045 "node_modules/micromark-factory-whitespace": { 3555 "node_modules/micromark-factory-whitespace": {
13046 "version": "2.0.0", 3556 "version": "2.0.1",
13047 "resolved": "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-2.0.0.tgz", 3557 "resolved": "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-2.0.1.tgz",
13048 "integrity": "sha512-28kbwaBjc5yAI1XadbdPYHX/eDnqaUFVikLwrO7FDnKG7lpgxnvk/XGRhX/PN0mOZ+dBSZ+LgunHS+6tYQAzhA==", 3558 "integrity": "sha512-Ob0nuZ3PKt/n0hORHyvoD9uZhr+Za8sFoP+OnMcnWK5lngSzALgQYKMr9RJVOWLqQYuyn6ulqGWSXdwf6F80lQ==",
13049 "funding": [ 3559 "funding": [
13050 { 3560 {
13051 "type": "GitHub Sponsors", 3561 "type": "GitHub Sponsors",
@@ -13056,6 +3566,7 @@
13056 "url": "https://opencollective.com/unified" 3566 "url": "https://opencollective.com/unified"
13057 } 3567 }
13058 ], 3568 ],
3569 "license": "MIT",
13059 "dependencies": { 3570 "dependencies": {
13060 "micromark-factory-space": "^2.0.0", 3571 "micromark-factory-space": "^2.0.0",
13061 "micromark-util-character": "^2.0.0", 3572 "micromark-util-character": "^2.0.0",
@@ -13064,9 +3575,9 @@
13064 } 3575 }
13065 }, 3576 },
13066 "node_modules/micromark-util-character": { 3577 "node_modules/micromark-util-character": {
13067 "version": "2.1.0", 3578 "version": "2.1.1",
13068 "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.0.tgz", 3579 "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz",
13069 "integrity": "sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==", 3580 "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==",
13070 "funding": [ 3581 "funding": [
13071 { 3582 {
13072 "type": "GitHub Sponsors", 3583 "type": "GitHub Sponsors",
@@ -13077,15 +3588,16 @@
13077 "url": "https://opencollective.com/unified" 3588 "url": "https://opencollective.com/unified"
13078 } 3589 }
13079 ], 3590 ],
3591 "license": "MIT",
13080 "dependencies": { 3592 "dependencies": {
13081 "micromark-util-symbol": "^2.0.0", 3593 "micromark-util-symbol": "^2.0.0",
13082 "micromark-util-types": "^2.0.0" 3594 "micromark-util-types": "^2.0.0"
13083 } 3595 }
13084 }, 3596 },
13085 "node_modules/micromark-util-chunked": { 3597 "node_modules/micromark-util-chunked": {
13086 "version": "2.0.0", 3598 "version": "2.0.1",
13087 "resolved": "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-2.0.0.tgz", 3599 "resolved": "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-2.0.1.tgz",
13088 "integrity": "sha512-anK8SWmNphkXdaKgz5hJvGa7l00qmcaUQoMYsBwDlSKFKjc6gjGXPDw3FNL3Nbwq5L8gE+RCbGqTw49FK5Qyvg==", 3600 "integrity": "sha512-QUNFEOPELfmvv+4xiNg2sRYeS/P84pTW0TCgP5zc9FpXetHY0ab7SxKyAQCNCc1eK0459uoLI1y5oO5Vc1dbhA==",
13089 "funding": [ 3601 "funding": [
13090 { 3602 {
13091 "type": "GitHub Sponsors", 3603 "type": "GitHub Sponsors",
@@ -13096,14 +3608,15 @@
13096 "url": "https://opencollective.com/unified" 3608 "url": "https://opencollective.com/unified"
13097 } 3609 }
13098 ], 3610 ],
3611 "license": "MIT",
13099 "dependencies": { 3612 "dependencies": {
13100 "micromark-util-symbol": "^2.0.0" 3613 "micromark-util-symbol": "^2.0.0"
13101 } 3614 }
13102 }, 3615 },
13103 "node_modules/micromark-util-classify-character": { 3616 "node_modules/micromark-util-classify-character": {
13104 "version": "2.0.0", 3617 "version": "2.0.1",
13105 "resolved": "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-2.0.0.tgz", 3618 "resolved": "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-2.0.1.tgz",
13106 "integrity": "sha512-S0ze2R9GH+fu41FA7pbSqNWObo/kzwf8rN/+IGlW/4tC6oACOs8B++bh+i9bVyNnwCcuksbFwsBme5OCKXCwIw==", 3619 "integrity": "sha512-K0kHzM6afW/MbeWYWLjoHQv1sgg2Q9EccHEDzSkxiP/EaagNzCm7T/WMKZ3rjMbvIpvBiZgwR3dKMygtA4mG1Q==",
13107 "funding": [ 3620 "funding": [
13108 { 3621 {
13109 "type": "GitHub Sponsors", 3622 "type": "GitHub Sponsors",
@@ -13114,6 +3627,7 @@
13114 "url": "https://opencollective.com/unified" 3627 "url": "https://opencollective.com/unified"
13115 } 3628 }
13116 ], 3629 ],
3630 "license": "MIT",
13117 "dependencies": { 3631 "dependencies": {
13118 "micromark-util-character": "^2.0.0", 3632 "micromark-util-character": "^2.0.0",
13119 "micromark-util-symbol": "^2.0.0", 3633 "micromark-util-symbol": "^2.0.0",
@@ -13121,9 +3635,9 @@
13121 } 3635 }
13122 }, 3636 },
13123 "node_modules/micromark-util-combine-extensions": { 3637 "node_modules/micromark-util-combine-extensions": {
13124 "version": "2.0.0", 3638 "version": "2.0.1",
13125 "resolved": "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-2.0.0.tgz", 3639 "resolved": "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-2.0.1.tgz",
13126 "integrity": "sha512-vZZio48k7ON0fVS3CUgFatWHoKbbLTK/rT7pzpJ4Bjp5JjkZeasRfrS9wsBdDJK2cJLHMckXZdzPSSr1B8a4oQ==", 3640 "integrity": "sha512-OnAnH8Ujmy59JcyZw8JSbK9cGpdVY44NKgSM7E9Eh7DiLS2E9RNQf0dONaGDzEG9yjEl5hcqeIsj4hfRkLH/Bg==",
13127 "funding": [ 3641 "funding": [
13128 { 3642 {
13129 "type": "GitHub Sponsors", 3643 "type": "GitHub Sponsors",
@@ -13134,15 +3648,16 @@
13134 "url": "https://opencollective.com/unified" 3648 "url": "https://opencollective.com/unified"
13135 } 3649 }
13136 ], 3650 ],
3651 "license": "MIT",
13137 "dependencies": { 3652 "dependencies": {
13138 "micromark-util-chunked": "^2.0.0", 3653 "micromark-util-chunked": "^2.0.0",
13139 "micromark-util-types": "^2.0.0" 3654 "micromark-util-types": "^2.0.0"
13140 } 3655 }
13141 }, 3656 },
13142 "node_modules/micromark-util-decode-numeric-character-reference": { 3657 "node_modules/micromark-util-decode-numeric-character-reference": {
13143 "version": "2.0.1", 3658 "version": "2.0.2",
13144 "resolved": "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-2.0.1.tgz", 3659 "resolved": "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-2.0.2.tgz",
13145 "integrity": "sha512-bmkNc7z8Wn6kgjZmVHOX3SowGmVdhYS7yBpMnuMnPzDq/6xwVA604DuOXMZTO1lvq01g+Adfa0pE2UKGlxL1XQ==", 3660 "integrity": "sha512-ccUbYk6CwVdkmCQMyr64dXz42EfHGkPQlBj5p7YVGzq8I7CtjXZJrubAYezf7Rp+bjPseiROqe7G6foFd+lEuw==",
13146 "funding": [ 3661 "funding": [
13147 { 3662 {
13148 "type": "GitHub Sponsors", 3663 "type": "GitHub Sponsors",
@@ -13153,14 +3668,15 @@
13153 "url": "https://opencollective.com/unified" 3668 "url": "https://opencollective.com/unified"
13154 } 3669 }
13155 ], 3670 ],
3671 "license": "MIT",
13156 "dependencies": { 3672 "dependencies": {
13157 "micromark-util-symbol": "^2.0.0" 3673 "micromark-util-symbol": "^2.0.0"
13158 } 3674 }
13159 }, 3675 },
13160 "node_modules/micromark-util-decode-string": { 3676 "node_modules/micromark-util-decode-string": {
13161 "version": "2.0.0", 3677 "version": "2.0.1",
13162 "resolved": "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-2.0.0.tgz", 3678 "resolved": "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-2.0.1.tgz",
13163 "integrity": "sha512-r4Sc6leeUTn3P6gk20aFMj2ntPwn6qpDZqWvYmAG6NgvFTIlj4WtrAudLi65qYoaGdXYViXYw2pkmn7QnIFasA==", 3679 "integrity": "sha512-nDV/77Fj6eH1ynwscYTOsbK7rR//Uj0bZXBwJZRfaLEJ1iGBR6kIfNmlNqaqJf649EP0F3NWNdeJi03elllNUQ==",
13164 "funding": [ 3680 "funding": [
13165 { 3681 {
13166 "type": "GitHub Sponsors", 3682 "type": "GitHub Sponsors",
@@ -13171,6 +3687,7 @@
13171 "url": "https://opencollective.com/unified" 3687 "url": "https://opencollective.com/unified"
13172 } 3688 }
13173 ], 3689 ],
3690 "license": "MIT",
13174 "dependencies": { 3691 "dependencies": {
13175 "decode-named-character-reference": "^1.0.0", 3692 "decode-named-character-reference": "^1.0.0",
13176 "micromark-util-character": "^2.0.0", 3693 "micromark-util-character": "^2.0.0",
@@ -13179,9 +3696,9 @@
13179 } 3696 }
13180 }, 3697 },
13181 "node_modules/micromark-util-encode": { 3698 "node_modules/micromark-util-encode": {
13182 "version": "2.0.0", 3699 "version": "2.0.1",
13183 "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-2.0.0.tgz", 3700 "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-2.0.1.tgz",
13184 "integrity": "sha512-pS+ROfCXAGLWCOc8egcBvT0kf27GoWMqtdarNfDcjb6YLuV5cM3ioG45Ys2qOVqeqSbjaKg72vU+Wby3eddPsA==", 3701 "integrity": "sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==",
13185 "funding": [ 3702 "funding": [
13186 { 3703 {
13187 "type": "GitHub Sponsors", 3704 "type": "GitHub Sponsors",
@@ -13191,12 +3708,13 @@
13191 "type": "OpenCollective", 3708 "type": "OpenCollective",
13192 "url": "https://opencollective.com/unified" 3709 "url": "https://opencollective.com/unified"
13193 } 3710 }
13194 ] 3711 ],
3712 "license": "MIT"
13195 }, 3713 },
13196 "node_modules/micromark-util-html-tag-name": { 3714 "node_modules/micromark-util-html-tag-name": {
13197 "version": "2.0.0", 3715 "version": "2.0.1",
13198 "resolved": "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-2.0.0.tgz", 3716 "resolved": "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-2.0.1.tgz",
13199 "integrity": "sha512-xNn4Pqkj2puRhKdKTm8t1YHC/BAjx6CEwRFXntTaRf/x16aqka6ouVoutm+QdkISTlT7e2zU7U4ZdlDLJd2Mcw==", 3717 "integrity": "sha512-2cNEiYDhCWKI+Gs9T0Tiysk136SnR13hhO8yW6BGNyhOC4qYFnwF1nKfD3HFAIXA5c45RrIG1ub11GiXeYd1xA==",
13200 "funding": [ 3718 "funding": [
13201 { 3719 {
13202 "type": "GitHub Sponsors", 3720 "type": "GitHub Sponsors",
@@ -13206,12 +3724,13 @@
13206 "type": "OpenCollective", 3724 "type": "OpenCollective",
13207 "url": "https://opencollective.com/unified" 3725 "url": "https://opencollective.com/unified"
13208 } 3726 }
13209 ] 3727 ],
3728 "license": "MIT"
13210 }, 3729 },
13211 "node_modules/micromark-util-normalize-identifier": { 3730 "node_modules/micromark-util-normalize-identifier": {
13212 "version": "2.0.0", 3731 "version": "2.0.1",
13213 "resolved": "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-2.0.0.tgz", 3732 "resolved": "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-2.0.1.tgz",
13214 "integrity": "sha512-2xhYT0sfo85FMrUPtHcPo2rrp1lwbDEEzpx7jiH2xXJLqBuy4H0GgXk5ToU8IEwoROtXuL8ND0ttVa4rNqYK3w==", 3733 "integrity": "sha512-sxPqmo70LyARJs0w2UclACPUUEqltCkJ6PhKdMIDuJ3gSf/Q+/GIe3WKl0Ijb/GyH9lOpUkRAO2wp0GVkLvS9Q==",
13215 "funding": [ 3734 "funding": [
13216 { 3735 {
13217 "type": "GitHub Sponsors", 3736 "type": "GitHub Sponsors",
@@ -13222,14 +3741,15 @@
13222 "url": "https://opencollective.com/unified" 3741 "url": "https://opencollective.com/unified"
13223 } 3742 }
13224 ], 3743 ],
3744 "license": "MIT",
13225 "dependencies": { 3745 "dependencies": {
13226 "micromark-util-symbol": "^2.0.0" 3746 "micromark-util-symbol": "^2.0.0"
13227 } 3747 }
13228 }, 3748 },
13229 "node_modules/micromark-util-resolve-all": { 3749 "node_modules/micromark-util-resolve-all": {
13230 "version": "2.0.0", 3750 "version": "2.0.1",
13231 "resolved": "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-2.0.0.tgz", 3751 "resolved": "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-2.0.1.tgz",
13232 "integrity": "sha512-6KU6qO7DZ7GJkaCgwBNtplXCvGkJToU86ybBAUdavvgsCiG8lSSvYxr9MhwmQ+udpzywHsl4RpGJsYWG1pDOcA==", 3752 "integrity": "sha512-VdQyxFWFT2/FGJgwQnJYbe1jjQoNTS4RjglmSjTUlpUMa95Htx9NHeYW4rGDJzbjvCsl9eLjMQwGeElsqmzcHg==",
13233 "funding": [ 3753 "funding": [
13234 { 3754 {
13235 "type": "GitHub Sponsors", 3755 "type": "GitHub Sponsors",
@@ -13240,14 +3760,15 @@
13240 "url": "https://opencollective.com/unified" 3760 "url": "https://opencollective.com/unified"
13241 } 3761 }
13242 ], 3762 ],
3763 "license": "MIT",
13243 "dependencies": { 3764 "dependencies": {
13244 "micromark-util-types": "^2.0.0" 3765 "micromark-util-types": "^2.0.0"
13245 } 3766 }
13246 }, 3767 },
13247 "node_modules/micromark-util-sanitize-uri": { 3768 "node_modules/micromark-util-sanitize-uri": {
13248 "version": "2.0.0", 3769 "version": "2.0.1",
13249 "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.0.tgz", 3770 "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.1.tgz",
13250 "integrity": "sha512-WhYv5UEcZrbAtlsnPuChHUAsu/iBPOVaEVsntLBIdpibO0ddy8OzavZz3iL2xVvBZOpolujSliP65Kq0/7KIYw==", 3771 "integrity": "sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==",
13251 "funding": [ 3772 "funding": [
13252 { 3773 {
13253 "type": "GitHub Sponsors", 3774 "type": "GitHub Sponsors",
@@ -13258,6 +3779,7 @@
13258 "url": "https://opencollective.com/unified" 3779 "url": "https://opencollective.com/unified"
13259 } 3780 }
13260 ], 3781 ],
3782 "license": "MIT",
13261 "dependencies": { 3783 "dependencies": {
13262 "micromark-util-character": "^2.0.0", 3784 "micromark-util-character": "^2.0.0",
13263 "micromark-util-encode": "^2.0.0", 3785 "micromark-util-encode": "^2.0.0",
@@ -13265,9 +3787,9 @@
13265 } 3787 }
13266 }, 3788 },
13267 "node_modules/micromark-util-subtokenize": { 3789 "node_modules/micromark-util-subtokenize": {
13268 "version": "2.0.1", 3790 "version": "2.0.4",
13269 "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-2.0.1.tgz", 3791 "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-2.0.4.tgz",
13270 "integrity": "sha512-jZNtiFl/1aY73yS3UGQkutD0UbhTt68qnRpw2Pifmz5wV9h8gOVsN70v+Lq/f1rKaU/W8pxRe8y8Q9FX1AOe1Q==", 3792 "integrity": "sha512-N6hXjrin2GTJDe3MVjf5FuXpm12PGm80BrUAeub9XFXca8JZbP+oIwY4LJSVwFUCL1IPm/WwSVUN7goFHmSGGQ==",
13271 "funding": [ 3793 "funding": [
13272 { 3794 {
13273 "type": "GitHub Sponsors", 3795 "type": "GitHub Sponsors",
@@ -13278,6 +3800,7 @@
13278 "url": "https://opencollective.com/unified" 3800 "url": "https://opencollective.com/unified"
13279 } 3801 }
13280 ], 3802 ],
3803 "license": "MIT",
13281 "dependencies": { 3804 "dependencies": {
13282 "devlop": "^1.0.0", 3805 "devlop": "^1.0.0",
13283 "micromark-util-chunked": "^2.0.0", 3806 "micromark-util-chunked": "^2.0.0",
@@ -13286,9 +3809,9 @@
13286 } 3809 }
13287 }, 3810 },
13288 "node_modules/micromark-util-symbol": { 3811 "node_modules/micromark-util-symbol": {
13289 "version": "2.0.0", 3812 "version": "2.0.1",
13290 "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", 3813 "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz",
13291 "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", 3814 "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==",
13292 "funding": [ 3815 "funding": [
13293 { 3816 {
13294 "type": "GitHub Sponsors", 3817 "type": "GitHub Sponsors",
@@ -13298,12 +3821,13 @@
13298 "type": "OpenCollective", 3821 "type": "OpenCollective",
13299 "url": "https://opencollective.com/unified" 3822 "url": "https://opencollective.com/unified"
13300 } 3823 }
13301 ] 3824 ],
3825 "license": "MIT"
13302 }, 3826 },
13303 "node_modules/micromark-util-types": { 3827 "node_modules/micromark-util-types": {
13304 "version": "2.0.0", 3828 "version": "2.0.1",
13305 "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.0.tgz", 3829 "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.1.tgz",
13306 "integrity": "sha512-oNh6S2WMHWRZrmutsRmDDfkzKtxF+bc2VxLC9dvtrDIRFln627VsFP6fLMgTryGDljgLPjkrzQSDcPrjPyDJ5w==", 3830 "integrity": "sha512-534m2WhVTddrcKVepwmVEVnUAmtrx9bfIjNoQHRqfnvdaHQiFytEhJoTgpWJvDEXCO5gLTQh3wYC1PgOJA4NSQ==",
13307 "funding": [ 3831 "funding": [
13308 { 3832 {
13309 "type": "GitHub Sponsors", 3833 "type": "GitHub Sponsors",
@@ -13313,35 +3837,14 @@
13313 "type": "OpenCollective", 3837 "type": "OpenCollective",
13314 "url": "https://opencollective.com/unified" 3838 "url": "https://opencollective.com/unified"
13315 } 3839 }
13316 ] 3840 ],
13317 }, 3841 "license": "MIT"
13318 "node_modules/micromatch": {
13319 "version": "4.0.7",
13320 "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.7.tgz",
13321 "integrity": "sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==",
13322 "dependencies": {
13323 "braces": "^3.0.3",
13324 "picomatch": "^2.3.1"
13325 },
13326 "engines": {
13327 "node": ">=8.6"
13328 }
13329 },
13330 "node_modules/mime": {
13331 "version": "1.6.0",
13332 "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
13333 "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==",
13334 "bin": {
13335 "mime": "cli.js"
13336 },
13337 "engines": {
13338 "node": ">=4"
13339 }
13340 }, 3842 },
13341 "node_modules/mime-db": { 3843 "node_modules/mime-db": {
13342 "version": "1.52.0", 3844 "version": "1.52.0",
13343 "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", 3845 "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
13344 "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", 3846 "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
3847 "license": "MIT",
13345 "engines": { 3848 "engines": {
13346 "node": ">= 0.6" 3849 "node": ">= 0.6"
13347 } 3850 }
@@ -13350,6 +3853,7 @@
13350 "version": "2.1.35", 3853 "version": "2.1.35",
13351 "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", 3854 "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
13352 "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", 3855 "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
3856 "license": "MIT",
13353 "dependencies": { 3857 "dependencies": {
13354 "mime-db": "1.52.0" 3858 "mime-db": "1.52.0"
13355 }, 3859 },
@@ -13357,121 +3861,68 @@
13357 "node": ">= 0.6" 3861 "node": ">= 0.6"
13358 } 3862 }
13359 }, 3863 },
13360 "node_modules/mimic-fn": {
13361 "version": "2.1.0",
13362 "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
13363 "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==",
13364 "engines": {
13365 "node": ">=6"
13366 }
13367 },
13368 "node_modules/min-indent": { 3864 "node_modules/min-indent": {
13369 "version": "1.0.1", 3865 "version": "1.0.1",
13370 "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", 3866 "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz",
13371 "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", 3867 "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==",
3868 "license": "MIT",
13372 "engines": { 3869 "engines": {
13373 "node": ">=4" 3870 "node": ">=4"
13374 } 3871 }
13375 }, 3872 },
13376 "node_modules/mini-css-extract-plugin": {
13377 "version": "2.9.1",
13378 "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.9.1.tgz",
13379 "integrity": "sha512-+Vyi+GCCOHnrJ2VPS+6aPoXN2k2jgUzDRhTFLjjTBn23qyXJXkjUWQgTL+mXpF5/A8ixLdCc6kWsoeOjKGejKQ==",
13380 "dependencies": {
13381 "schema-utils": "^4.0.0",
13382 "tapable": "^2.2.1"
13383 },
13384 "engines": {
13385 "node": ">= 12.13.0"
13386 },
13387 "funding": {
13388 "type": "opencollective",
13389 "url": "https://opencollective.com/webpack"
13390 },
13391 "peerDependencies": {
13392 "webpack": "^5.0.0"
13393 }
13394 },
13395 "node_modules/minimalistic-assert": {
13396 "version": "1.0.1",
13397 "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz",
13398 "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A=="
13399 },
13400 "node_modules/minimatch": {
13401 "version": "3.1.2",
13402 "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
13403 "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
13404 "dependencies": {
13405 "brace-expansion": "^1.1.7"
13406 },
13407 "engines": {
13408 "node": "*"
13409 }
13410 },
13411 "node_modules/minimist": {
13412 "version": "1.2.8",
13413 "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz",
13414 "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==",
13415 "funding": {
13416 "url": "https://github.com/sponsors/ljharb"
13417 }
13418 },
13419 "node_modules/minipass": { 3873 "node_modules/minipass": {
13420 "version": "7.1.2", 3874 "version": "7.1.2",
13421 "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", 3875 "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz",
13422 "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", 3876 "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==",
3877 "license": "ISC",
13423 "engines": { 3878 "engines": {
13424 "node": ">=16 || 14 >=14.17" 3879 "node": ">=16 || 14 >=14.17"
13425 } 3880 }
13426 }, 3881 },
13427 "node_modules/mkdirp": { 3882 "node_modules/minizlib": {
13428 "version": "0.5.6", 3883 "version": "3.0.2",
13429 "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", 3884 "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-3.0.2.tgz",
13430 "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", 3885 "integrity": "sha512-oG62iEk+CYt5Xj2YqI5Xi9xWUeZhDI8jjQmC5oThVH5JGCTgIjr7ciJDzC7MBzYd//WvR1OTmP5Q38Q8ShQtVA==",
3886 "license": "MIT",
13431 "dependencies": { 3887 "dependencies": {
13432 "minimist": "^1.2.6" 3888 "minipass": "^7.1.2"
13433 }, 3889 },
13434 "bin": { 3890 "engines": {
13435 "mkdirp": "bin/cmd.js" 3891 "node": ">= 18"
13436 } 3892 }
13437 }, 3893 },
13438 "node_modules/ms": { 3894 "node_modules/mkdirp": {
13439 "version": "2.1.2", 3895 "version": "3.0.1",
13440 "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", 3896 "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-3.0.1.tgz",
13441 "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" 3897 "integrity": "sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==",
13442 }, 3898 "license": "MIT",
13443 "node_modules/multicast-dns": {
13444 "version": "7.2.5",
13445 "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-7.2.5.tgz",
13446 "integrity": "sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==",
13447 "dependencies": {
13448 "dns-packet": "^5.2.2",
13449 "thunky": "^1.0.2"
13450 },
13451 "bin": { 3899 "bin": {
13452 "multicast-dns": "cli.js" 3900 "mkdirp": "dist/cjs/src/bin.js"
3901 },
3902 "engines": {
3903 "node": ">=10"
3904 },
3905 "funding": {
3906 "url": "https://github.com/sponsors/isaacs"
13453 } 3907 }
13454 }, 3908 },
13455 "node_modules/mz": { 3909 "node_modules/ms": {
13456 "version": "2.7.0", 3910 "version": "2.1.3",
13457 "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", 3911 "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
13458 "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", 3912 "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
13459 "dependencies": { 3913 "license": "MIT"
13460 "any-promise": "^1.0.0",
13461 "object-assign": "^4.0.1",
13462 "thenify-all": "^1.0.0"
13463 }
13464 }, 3914 },
13465 "node_modules/nanoid": { 3915 "node_modules/nanoid": {
13466 "version": "3.3.7", 3916 "version": "3.3.11",
13467 "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", 3917 "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz",
13468 "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", 3918 "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==",
13469 "funding": [ 3919 "funding": [
13470 { 3920 {
13471 "type": "github", 3921 "type": "github",
13472 "url": "https://github.com/sponsors/ai" 3922 "url": "https://github.com/sponsors/ai"
13473 } 3923 }
13474 ], 3924 ],
3925 "license": "MIT",
13475 "bin": { 3926 "bin": {
13476 "nanoid": "bin/nanoid.cjs" 3927 "nanoid": "bin/nanoid.cjs"
13477 }, 3928 },
@@ -13479,130 +3930,26 @@
13479 "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" 3930 "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
13480 } 3931 }
13481 }, 3932 },
13482 "node_modules/natural-compare": {
13483 "version": "1.4.0",
13484 "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
13485 "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw=="
13486 },
13487 "node_modules/natural-compare-lite": {
13488 "version": "1.4.0",
13489 "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz",
13490 "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g=="
13491 },
13492 "node_modules/negotiator": {
13493 "version": "0.6.3",
13494 "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz",
13495 "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==",
13496 "engines": {
13497 "node": ">= 0.6"
13498 }
13499 },
13500 "node_modules/neo-async": {
13501 "version": "2.6.2",
13502 "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz",
13503 "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw=="
13504 },
13505 "node_modules/no-case": {
13506 "version": "3.0.4",
13507 "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz",
13508 "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==",
13509 "dependencies": {
13510 "lower-case": "^2.0.2",
13511 "tslib": "^2.0.3"
13512 }
13513 },
13514 "node_modules/node-forge": {
13515 "version": "1.3.1",
13516 "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz",
13517 "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==",
13518 "engines": {
13519 "node": ">= 6.13.0"
13520 }
13521 },
13522 "node_modules/node-int64": {
13523 "version": "0.4.0",
13524 "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz",
13525 "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw=="
13526 },
13527 "node_modules/node-releases": { 3933 "node_modules/node-releases": {
13528 "version": "2.0.18", 3934 "version": "2.0.19",
13529 "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.18.tgz", 3935 "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz",
13530 "integrity": "sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==" 3936 "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==",
13531 }, 3937 "license": "MIT"
13532 "node_modules/normalize-path": {
13533 "version": "3.0.0",
13534 "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
13535 "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
13536 "engines": {
13537 "node": ">=0.10.0"
13538 }
13539 },
13540 "node_modules/normalize-range": {
13541 "version": "0.1.2",
13542 "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz",
13543 "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==",
13544 "engines": {
13545 "node": ">=0.10.0"
13546 }
13547 },
13548 "node_modules/normalize-url": {
13549 "version": "6.1.0",
13550 "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz",
13551 "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==",
13552 "engines": {
13553 "node": ">=10"
13554 },
13555 "funding": {
13556 "url": "https://github.com/sponsors/sindresorhus"
13557 }
13558 },
13559 "node_modules/npm-run-path": {
13560 "version": "4.0.1",
13561 "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz",
13562 "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==",
13563 "dependencies": {
13564 "path-key": "^3.0.0"
13565 },
13566 "engines": {
13567 "node": ">=8"
13568 }
13569 },
13570 "node_modules/nth-check": {
13571 "version": "2.1.1",
13572 "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz",
13573 "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==",
13574 "dependencies": {
13575 "boolbase": "^1.0.0"
13576 },
13577 "funding": {
13578 "url": "https://github.com/fb55/nth-check?sponsor=1"
13579 }
13580 },
13581 "node_modules/nwsapi": {
13582 "version": "2.2.12",
13583 "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.12.tgz",
13584 "integrity": "sha512-qXDmcVlZV4XRtKFzddidpfVP4oMSGhga+xdMc25mv8kaLUHtgzCDhUxkrN8exkGdTlLNaXj7CV3GtON7zuGZ+w=="
13585 }, 3938 },
13586 "node_modules/object-assign": { 3939 "node_modules/object-assign": {
13587 "version": "4.1.1", 3940 "version": "4.1.1",
13588 "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", 3941 "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
13589 "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", 3942 "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
3943 "license": "MIT",
13590 "engines": { 3944 "engines": {
13591 "node": ">=0.10.0" 3945 "node": ">=0.10.0"
13592 } 3946 }
13593 }, 3947 },
13594 "node_modules/object-hash": {
13595 "version": "3.0.0",
13596 "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz",
13597 "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==",
13598 "engines": {
13599 "node": ">= 6"
13600 }
13601 },
13602 "node_modules/object-inspect": { 3948 "node_modules/object-inspect": {
13603 "version": "1.13.2", 3949 "version": "1.13.3",
13604 "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.2.tgz", 3950 "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.3.tgz",
13605 "integrity": "sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==", 3951 "integrity": "sha512-kDCGIbxkDSXE3euJZZXzc6to7fCrKHNI/hSRQnRuQ+BWjFNzZwiFF8fj/6o2t2G9/jTj8PSIYTfCLelLZEeRpA==",
3952 "license": "MIT",
13606 "engines": { 3953 "engines": {
13607 "node": ">= 0.4" 3954 "node": ">= 0.4"
13608 }, 3955 },
@@ -13614,6 +3961,7 @@
13614 "version": "1.1.6", 3961 "version": "1.1.6",
13615 "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.6.tgz", 3962 "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.6.tgz",
13616 "integrity": "sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==", 3963 "integrity": "sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==",
3964 "license": "MIT",
13617 "dependencies": { 3965 "dependencies": {
13618 "call-bind": "^1.0.7", 3966 "call-bind": "^1.0.7",
13619 "define-properties": "^1.2.1" 3967 "define-properties": "^1.2.1"
@@ -13629,98 +3977,23 @@
13629 "version": "1.1.1", 3977 "version": "1.1.1",
13630 "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", 3978 "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
13631 "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", 3979 "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
3980 "license": "MIT",
13632 "engines": { 3981 "engines": {
13633 "node": ">= 0.4" 3982 "node": ">= 0.4"
13634 } 3983 }
13635 }, 3984 },
13636 "node_modules/object.assign": { 3985 "node_modules/object.assign": {
13637 "version": "4.1.5", 3986 "version": "4.1.7",
13638 "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", 3987 "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.7.tgz",
13639 "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", 3988 "integrity": "sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==",
13640 "dependencies": { 3989 "license": "MIT",
13641 "call-bind": "^1.0.5",
13642 "define-properties": "^1.2.1",
13643 "has-symbols": "^1.0.3",
13644 "object-keys": "^1.1.1"
13645 },
13646 "engines": {
13647 "node": ">= 0.4"
13648 },
13649 "funding": {
13650 "url": "https://github.com/sponsors/ljharb"
13651 }
13652 },
13653 "node_modules/object.entries": {
13654 "version": "1.1.8",
13655 "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.8.tgz",
13656 "integrity": "sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==",
13657 "dependencies": {
13658 "call-bind": "^1.0.7",
13659 "define-properties": "^1.2.1",
13660 "es-object-atoms": "^1.0.0"
13661 },
13662 "engines": {
13663 "node": ">= 0.4"
13664 }
13665 },
13666 "node_modules/object.fromentries": {
13667 "version": "2.0.8",
13668 "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.8.tgz",
13669 "integrity": "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==",
13670 "dependencies": {
13671 "call-bind": "^1.0.7",
13672 "define-properties": "^1.2.1",
13673 "es-abstract": "^1.23.2",
13674 "es-object-atoms": "^1.0.0"
13675 },
13676 "engines": {
13677 "node": ">= 0.4"
13678 },
13679 "funding": {
13680 "url": "https://github.com/sponsors/ljharb"
13681 }
13682 },
13683 "node_modules/object.getownpropertydescriptors": {
13684 "version": "2.1.8",
13685 "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.8.tgz",
13686 "integrity": "sha512-qkHIGe4q0lSYMv0XI4SsBTJz3WaURhLvd0lKSgtVuOsJ2krg4SgMw3PIRQFMp07yi++UR3se2mkcLqsBNpBb/A==",
13687 "dependencies": { 3990 "dependencies": {
13688 "array.prototype.reduce": "^1.0.6", 3991 "call-bind": "^1.0.8",
13689 "call-bind": "^1.0.7", 3992 "call-bound": "^1.0.3",
13690 "define-properties": "^1.2.1", 3993 "define-properties": "^1.2.1",
13691 "es-abstract": "^1.23.2",
13692 "es-object-atoms": "^1.0.0", 3994 "es-object-atoms": "^1.0.0",
13693 "gopd": "^1.0.1", 3995 "has-symbols": "^1.1.0",
13694 "safe-array-concat": "^1.1.2" 3996 "object-keys": "^1.1.1"
13695 },
13696 "engines": {
13697 "node": ">= 0.8"
13698 },
13699 "funding": {
13700 "url": "https://github.com/sponsors/ljharb"
13701 }
13702 },
13703 "node_modules/object.groupby": {
13704 "version": "1.0.3",
13705 "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.3.tgz",
13706 "integrity": "sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==",
13707 "dependencies": {
13708 "call-bind": "^1.0.7",
13709 "define-properties": "^1.2.1",
13710 "es-abstract": "^1.23.2"
13711 },
13712 "engines": {
13713 "node": ">= 0.4"
13714 }
13715 },
13716 "node_modules/object.values": {
13717 "version": "1.2.0",
13718 "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.0.tgz",
13719 "integrity": "sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==",
13720 "dependencies": {
13721 "call-bind": "^1.0.7",
13722 "define-properties": "^1.2.1",
13723 "es-object-atoms": "^1.0.0"
13724 }, 3997 },
13725 "engines": { 3998 "engines": {
13726 "node": ">= 0.4" 3999 "node": ">= 0.4"
@@ -13729,161 +4002,13 @@
13729 "url": "https://github.com/sponsors/ljharb" 4002 "url": "https://github.com/sponsors/ljharb"
13730 } 4003 }
13731 }, 4004 },
13732 "node_modules/obuf": {
13733 "version": "1.1.2",
13734 "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz",
13735 "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg=="
13736 },
13737 "node_modules/on-finished": {
13738 "version": "2.4.1",
13739 "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz",
13740 "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==",
13741 "dependencies": {
13742 "ee-first": "1.1.1"
13743 },
13744 "engines": {
13745 "node": ">= 0.8"
13746 }
13747 },
13748 "node_modules/on-headers": {
13749 "version": "1.0.2",
13750 "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz",
13751 "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==",
13752 "engines": {
13753 "node": ">= 0.8"
13754 }
13755 },
13756 "node_modules/once": {
13757 "version": "1.4.0",
13758 "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
13759 "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
13760 "dependencies": {
13761 "wrappy": "1"
13762 }
13763 },
13764 "node_modules/onetime": {
13765 "version": "5.1.2",
13766 "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz",
13767 "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==",
13768 "dependencies": {
13769 "mimic-fn": "^2.1.0"
13770 },
13771 "engines": {
13772 "node": ">=6"
13773 },
13774 "funding": {
13775 "url": "https://github.com/sponsors/sindresorhus"
13776 }
13777 },
13778 "node_modules/open": {
13779 "version": "8.4.2",
13780 "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz",
13781 "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==",
13782 "dependencies": {
13783 "define-lazy-prop": "^2.0.0",
13784 "is-docker": "^2.1.1",
13785 "is-wsl": "^2.2.0"
13786 },
13787 "engines": {
13788 "node": ">=12"
13789 },
13790 "funding": {
13791 "url": "https://github.com/sponsors/sindresorhus"
13792 }
13793 },
13794 "node_modules/optionator": {
13795 "version": "0.9.4",
13796 "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz",
13797 "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==",
13798 "dependencies": {
13799 "deep-is": "^0.1.3",
13800 "fast-levenshtein": "^2.0.6",
13801 "levn": "^0.4.1",
13802 "prelude-ls": "^1.2.1",
13803 "type-check": "^0.4.0",
13804 "word-wrap": "^1.2.5"
13805 },
13806 "engines": {
13807 "node": ">= 0.8.0"
13808 }
13809 },
13810 "node_modules/p-limit": {
13811 "version": "2.3.0",
13812 "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
13813 "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
13814 "dependencies": {
13815 "p-try": "^2.0.0"
13816 },
13817 "engines": {
13818 "node": ">=6"
13819 },
13820 "funding": {
13821 "url": "https://github.com/sponsors/sindresorhus"
13822 }
13823 },
13824 "node_modules/p-locate": {
13825 "version": "4.1.0",
13826 "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
13827 "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
13828 "dependencies": {
13829 "p-limit": "^2.2.0"
13830 },
13831 "engines": {
13832 "node": ">=8"
13833 }
13834 },
13835 "node_modules/p-retry": {
13836 "version": "4.6.2",
13837 "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.2.tgz",
13838 "integrity": "sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==",
13839 "dependencies": {
13840 "@types/retry": "0.12.0",
13841 "retry": "^0.13.1"
13842 },
13843 "engines": {
13844 "node": ">=8"
13845 }
13846 },
13847 "node_modules/p-try": {
13848 "version": "2.2.0",
13849 "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
13850 "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
13851 "engines": {
13852 "node": ">=6"
13853 }
13854 },
13855 "node_modules/package-json-from-dist": {
13856 "version": "1.0.0",
13857 "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.0.tgz",
13858 "integrity": "sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw=="
13859 },
13860 "node_modules/param-case": {
13861 "version": "3.0.4",
13862 "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz",
13863 "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==",
13864 "dependencies": {
13865 "dot-case": "^3.0.4",
13866 "tslib": "^2.0.3"
13867 }
13868 },
13869 "node_modules/parent-module": {
13870 "version": "1.0.1",
13871 "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
13872 "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
13873 "dependencies": {
13874 "callsites": "^3.0.0"
13875 },
13876 "engines": {
13877 "node": ">=6"
13878 }
13879 },
13880 "node_modules/parse-entities": { 4005 "node_modules/parse-entities": {
13881 "version": "4.0.1", 4006 "version": "4.0.2",
13882 "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-4.0.1.tgz", 4007 "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-4.0.2.tgz",
13883 "integrity": "sha512-SWzvYcSJh4d/SGLIOQfZ/CoNv6BTlI6YEQ7Nj82oDVnRpwe/Z/F1EMx42x3JAOwGBlCjeCH0BRJQbQ/opHL17w==", 4008 "integrity": "sha512-GG2AQYWoLgL877gQIKeRPGO1xF9+eG1ujIb5soS5gPvLQ1y2o8FL90w2QWNdf9I361Mpp7726c+lj3U0qK1uGw==",
4009 "license": "MIT",
13884 "dependencies": { 4010 "dependencies": {
13885 "@types/unist": "^2.0.0", 4011 "@types/unist": "^2.0.0",
13886 "character-entities": "^2.0.0",
13887 "character-entities-legacy": "^3.0.0", 4012 "character-entities-legacy": "^3.0.0",
13888 "character-reference-invalid": "^2.0.0", 4013 "character-reference-invalid": "^2.0.0",
13889 "decode-named-character-reference": "^1.0.0", 4014 "decode-named-character-reference": "^1.0.0",
@@ -13899,222 +4024,40 @@
13899 "node_modules/parse-entities/node_modules/@types/unist": { 4024 "node_modules/parse-entities/node_modules/@types/unist": {
13900 "version": "2.0.11", 4025 "version": "2.0.11",
13901 "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz", 4026 "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz",
13902 "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==" 4027 "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==",
13903 }, 4028 "license": "MIT"
13904 "node_modules/parse-json": {
13905 "version": "5.2.0",
13906 "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz",
13907 "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==",
13908 "dependencies": {
13909 "@babel/code-frame": "^7.0.0",
13910 "error-ex": "^1.3.1",
13911 "json-parse-even-better-errors": "^2.3.0",
13912 "lines-and-columns": "^1.1.6"
13913 },
13914 "engines": {
13915 "node": ">=8"
13916 },
13917 "funding": {
13918 "url": "https://github.com/sponsors/sindresorhus"
13919 }
13920 },
13921 "node_modules/parse5": {
13922 "version": "6.0.1",
13923 "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz",
13924 "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw=="
13925 },
13926 "node_modules/parseurl": {
13927 "version": "1.3.3",
13928 "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
13929 "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==",
13930 "engines": {
13931 "node": ">= 0.8"
13932 }
13933 },
13934 "node_modules/pascal-case": {
13935 "version": "3.1.2",
13936 "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz",
13937 "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==",
13938 "dependencies": {
13939 "no-case": "^3.0.4",
13940 "tslib": "^2.0.3"
13941 }
13942 },
13943 "node_modules/path-exists": {
13944 "version": "4.0.0",
13945 "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
13946 "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
13947 "engines": {
13948 "node": ">=8"
13949 }
13950 },
13951 "node_modules/path-is-absolute": {
13952 "version": "1.0.1",
13953 "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
13954 "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==",
13955 "engines": {
13956 "node": ">=0.10.0"
13957 }
13958 },
13959 "node_modules/path-key": {
13960 "version": "3.1.1",
13961 "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
13962 "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
13963 "engines": {
13964 "node": ">=8"
13965 }
13966 },
13967 "node_modules/path-parse": {
13968 "version": "1.0.7",
13969 "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
13970 "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw=="
13971 },
13972 "node_modules/path-scurry": {
13973 "version": "1.11.1",
13974 "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz",
13975 "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==",
13976 "dependencies": {
13977 "lru-cache": "^10.2.0",
13978 "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0"
13979 },
13980 "engines": {
13981 "node": ">=16 || 14 >=14.18"
13982 },
13983 "funding": {
13984 "url": "https://github.com/sponsors/isaacs"
13985 }
13986 },
13987 "node_modules/path-scurry/node_modules/lru-cache": {
13988 "version": "10.4.3",
13989 "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz",
13990 "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ=="
13991 },
13992 "node_modules/path-to-regexp": {
13993 "version": "0.1.7",
13994 "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
13995 "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ=="
13996 },
13997 "node_modules/path-type": {
13998 "version": "4.0.0",
13999 "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz",
14000 "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==",
14001 "engines": {
14002 "node": ">=8"
14003 }
14004 },
14005 "node_modules/performance-now": {
14006 "version": "2.1.0",
14007 "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
14008 "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow=="
14009 }, 4029 },
14010 "node_modules/picocolors": { 4030 "node_modules/picocolors": {
14011 "version": "1.0.1", 4031 "version": "1.1.1",
14012 "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz", 4032 "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz",
14013 "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==" 4033 "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==",
4034 "license": "ISC"
14014 }, 4035 },
14015 "node_modules/picomatch": { 4036 "node_modules/picomatch": {
14016 "version": "2.3.1", 4037 "version": "4.0.3",
14017 "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", 4038 "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz",
14018 "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", 4039 "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==",
4040 "license": "MIT",
14019 "engines": { 4041 "engines": {
14020 "node": ">=8.6" 4042 "node": ">=12"
14021 }, 4043 },
14022 "funding": { 4044 "funding": {
14023 "url": "https://github.com/sponsors/jonschlinkert" 4045 "url": "https://github.com/sponsors/jonschlinkert"
14024 } 4046 }
14025 }, 4047 },
14026 "node_modules/pify": {
14027 "version": "2.3.0",
14028 "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
14029 "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==",
14030 "engines": {
14031 "node": ">=0.10.0"
14032 }
14033 },
14034 "node_modules/pirates": {
14035 "version": "4.0.6",
14036 "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz",
14037 "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==",
14038 "engines": {
14039 "node": ">= 6"
14040 }
14041 },
14042 "node_modules/pkg-dir": {
14043 "version": "4.2.0",
14044 "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz",
14045 "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==",
14046 "dependencies": {
14047 "find-up": "^4.0.0"
14048 },
14049 "engines": {
14050 "node": ">=8"
14051 }
14052 },
14053 "node_modules/pkg-up": {
14054 "version": "3.1.0",
14055 "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz",
14056 "integrity": "sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==",
14057 "dependencies": {
14058 "find-up": "^3.0.0"
14059 },
14060 "engines": {
14061 "node": ">=8"
14062 }
14063 },
14064 "node_modules/pkg-up/node_modules/find-up": {
14065 "version": "3.0.0",
14066 "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
14067 "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
14068 "dependencies": {
14069 "locate-path": "^3.0.0"
14070 },
14071 "engines": {
14072 "node": ">=6"
14073 }
14074 },
14075 "node_modules/pkg-up/node_modules/locate-path": {
14076 "version": "3.0.0",
14077 "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
14078 "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
14079 "dependencies": {
14080 "p-locate": "^3.0.0",
14081 "path-exists": "^3.0.0"
14082 },
14083 "engines": {
14084 "node": ">=6"
14085 }
14086 },
14087 "node_modules/pkg-up/node_modules/p-locate": {
14088 "version": "3.0.0",
14089 "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
14090 "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
14091 "dependencies": {
14092 "p-limit": "^2.0.0"
14093 },
14094 "engines": {
14095 "node": ">=6"
14096 }
14097 },
14098 "node_modules/pkg-up/node_modules/path-exists": {
14099 "version": "3.0.0",
14100 "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
14101 "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==",
14102 "engines": {
14103 "node": ">=4"
14104 }
14105 },
14106 "node_modules/possible-typed-array-names": { 4048 "node_modules/possible-typed-array-names": {
14107 "version": "1.0.0", 4049 "version": "1.0.0",
14108 "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz", 4050 "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz",
14109 "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==", 4051 "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==",
4052 "license": "MIT",
14110 "engines": { 4053 "engines": {
14111 "node": ">= 0.4" 4054 "node": ">= 0.4"
14112 } 4055 }
14113 }, 4056 },
14114 "node_modules/postcss": { 4057 "node_modules/postcss": {
14115 "version": "8.4.41", 4058 "version": "8.5.6",
14116 "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.41.tgz", 4059 "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz",
14117 "integrity": "sha512-TesUflQ0WKZqAvg52PWL6kHgLKP6xB6heTOdoYM0Wt2UHyxNa4K25EZZMgKns3BH1RLVbZCREPpLY0rhnNoHVQ==", 4060 "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==",
14118 "funding": [ 4061 "funding": [
14119 { 4062 {
14120 "type": "opencollective", 4063 "type": "opencollective",
@@ -14129,1225 +4072,37 @@
14129 "url": "https://github.com/sponsors/ai" 4072 "url": "https://github.com/sponsors/ai"
14130 } 4073 }
14131 ], 4074 ],
4075 "license": "MIT",
14132 "dependencies": { 4076 "dependencies": {
14133 "nanoid": "^3.3.7", 4077 "nanoid": "^3.3.11",
14134 "picocolors": "^1.0.1", 4078 "picocolors": "^1.1.1",
14135 "source-map-js": "^1.2.0" 4079 "source-map-js": "^1.2.1"
14136 }, 4080 },
14137 "engines": { 4081 "engines": {
14138 "node": "^10 || ^12 || >=14" 4082 "node": "^10 || ^12 || >=14"
14139 } 4083 }
14140 }, 4084 },
14141 "node_modules/postcss-attribute-case-insensitive": { 4085 "node_modules/prettier": {
14142 "version": "5.0.2", 4086 "version": "3.4.2",
14143 "resolved": "https://registry.npmjs.org/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-5.0.2.tgz", 4087 "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.4.2.tgz",
14144 "integrity": "sha512-XIidXV8fDr0kKt28vqki84fRK8VW8eTuIa4PChv2MqKuT6C9UjmSKzen6KaWhWEoYvwxFCa7n/tC1SZ3tyq4SQ==", 4088 "integrity": "sha512-e9MewbtFo+Fevyuxn/4rrcDAaq0IYxPGLvObpQjiZBMAzB9IGmzlnG9RZy3FFas+eBMu2vA0CszMeduow5dIuQ==",
14145 "dependencies": { 4089 "dev": true,
14146 "postcss-selector-parser": "^6.0.10" 4090 "license": "MIT",
14147 },
14148 "engines": {
14149 "node": "^12 || ^14 || >=16"
14150 },
14151 "funding": {
14152 "type": "opencollective",
14153 "url": "https://opencollective.com/csstools"
14154 },
14155 "peerDependencies": {
14156 "postcss": "^8.2"
14157 }
14158 },
14159 "node_modules/postcss-browser-comments": {
14160 "version": "4.0.0",
14161 "resolved": "https://registry.npmjs.org/postcss-browser-comments/-/postcss-browser-comments-4.0.0.tgz",
14162 "integrity": "sha512-X9X9/WN3KIvY9+hNERUqX9gncsgBA25XaeR+jshHz2j8+sYyHktHw1JdKuMjeLpGktXidqDhA7b/qm1mrBDmgg==",
14163 "engines": {
14164 "node": ">=8"
14165 },
14166 "peerDependencies": {
14167 "browserslist": ">=4",
14168 "postcss": ">=8"
14169 }
14170 },
14171 "node_modules/postcss-calc": {
14172 "version": "8.2.4",
14173 "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-8.2.4.tgz",
14174 "integrity": "sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q==",
14175 "dependencies": {
14176 "postcss-selector-parser": "^6.0.9",
14177 "postcss-value-parser": "^4.2.0"
14178 },
14179 "peerDependencies": {
14180 "postcss": "^8.2.2"
14181 }
14182 },
14183 "node_modules/postcss-clamp": {
14184 "version": "4.1.0",
14185 "resolved": "https://registry.npmjs.org/postcss-clamp/-/postcss-clamp-4.1.0.tgz",
14186 "integrity": "sha512-ry4b1Llo/9zz+PKC+030KUnPITTJAHeOwjfAyyB60eT0AorGLdzp52s31OsPRHRf8NchkgFoG2y6fCfn1IV1Ow==",
14187 "dependencies": {
14188 "postcss-value-parser": "^4.2.0"
14189 },
14190 "engines": {
14191 "node": ">=7.6.0"
14192 },
14193 "peerDependencies": {
14194 "postcss": "^8.4.6"
14195 }
14196 },
14197 "node_modules/postcss-color-functional-notation": {
14198 "version": "4.2.4",
14199 "resolved": "https://registry.npmjs.org/postcss-color-functional-notation/-/postcss-color-functional-notation-4.2.4.tgz",
14200 "integrity": "sha512-2yrTAUZUab9s6CpxkxC4rVgFEVaR6/2Pipvi6qcgvnYiVqZcbDHEoBDhrXzyb7Efh2CCfHQNtcqWcIruDTIUeg==",
14201 "dependencies": {
14202 "postcss-value-parser": "^4.2.0"
14203 },
14204 "engines": {
14205 "node": "^12 || ^14 || >=16"
14206 },
14207 "funding": {
14208 "type": "opencollective",
14209 "url": "https://opencollective.com/csstools"
14210 },
14211 "peerDependencies": {
14212 "postcss": "^8.2"
14213 }
14214 },
14215 "node_modules/postcss-color-hex-alpha": {
14216 "version": "8.0.4",
14217 "resolved": "https://registry.npmjs.org/postcss-color-hex-alpha/-/postcss-color-hex-alpha-8.0.4.tgz",
14218 "integrity": "sha512-nLo2DCRC9eE4w2JmuKgVA3fGL3d01kGq752pVALF68qpGLmx2Qrk91QTKkdUqqp45T1K1XV8IhQpcu1hoAQflQ==",
14219 "dependencies": {
14220 "postcss-value-parser": "^4.2.0"
14221 },
14222 "engines": {
14223 "node": "^12 || ^14 || >=16"
14224 },
14225 "funding": {
14226 "type": "opencollective",
14227 "url": "https://opencollective.com/csstools"
14228 },
14229 "peerDependencies": {
14230 "postcss": "^8.4"
14231 }
14232 },
14233 "node_modules/postcss-color-rebeccapurple": {
14234 "version": "7.1.1",
14235 "resolved": "https://registry.npmjs.org/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-7.1.1.tgz",
14236 "integrity": "sha512-pGxkuVEInwLHgkNxUc4sdg4g3py7zUeCQ9sMfwyHAT+Ezk8a4OaaVZ8lIY5+oNqA/BXXgLyXv0+5wHP68R79hg==",
14237 "dependencies": {
14238 "postcss-value-parser": "^4.2.0"
14239 },
14240 "engines": {
14241 "node": "^12 || ^14 || >=16"
14242 },
14243 "funding": {
14244 "type": "opencollective",
14245 "url": "https://opencollective.com/csstools"
14246 },
14247 "peerDependencies": {
14248 "postcss": "^8.2"
14249 }
14250 },
14251 "node_modules/postcss-colormin": {
14252 "version": "5.3.1",
14253 "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-5.3.1.tgz",
14254 "integrity": "sha512-UsWQG0AqTFQmpBegeLLc1+c3jIqBNB0zlDGRWR+dQ3pRKJL1oeMzyqmH3o2PIfn9MBdNrVPWhDbT769LxCTLJQ==",
14255 "dependencies": {
14256 "browserslist": "^4.21.4",
14257 "caniuse-api": "^3.0.0",
14258 "colord": "^2.9.1",
14259 "postcss-value-parser": "^4.2.0"
14260 },
14261 "engines": {
14262 "node": "^10 || ^12 || >=14.0"
14263 },
14264 "peerDependencies": {
14265 "postcss": "^8.2.15"
14266 }
14267 },
14268 "node_modules/postcss-convert-values": {
14269 "version": "5.1.3",
14270 "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-5.1.3.tgz",
14271 "integrity": "sha512-82pC1xkJZtcJEfiLw6UXnXVXScgtBrjlO5CBmuDQc+dlb88ZYheFsjTn40+zBVi3DkfF7iezO0nJUPLcJK3pvA==",
14272 "dependencies": {
14273 "browserslist": "^4.21.4",
14274 "postcss-value-parser": "^4.2.0"
14275 },
14276 "engines": {
14277 "node": "^10 || ^12 || >=14.0"
14278 },
14279 "peerDependencies": {
14280 "postcss": "^8.2.15"
14281 }
14282 },
14283 "node_modules/postcss-custom-media": {
14284 "version": "8.0.2",
14285 "resolved": "https://registry.npmjs.org/postcss-custom-media/-/postcss-custom-media-8.0.2.tgz",
14286 "integrity": "sha512-7yi25vDAoHAkbhAzX9dHx2yc6ntS4jQvejrNcC+csQJAXjj15e7VcWfMgLqBNAbOvqi5uIa9huOVwdHbf+sKqg==",
14287 "dependencies": {
14288 "postcss-value-parser": "^4.2.0"
14289 },
14290 "engines": {
14291 "node": "^12 || ^14 || >=16"
14292 },
14293 "funding": {
14294 "type": "opencollective",
14295 "url": "https://opencollective.com/csstools"
14296 },
14297 "peerDependencies": {
14298 "postcss": "^8.3"
14299 }
14300 },
14301 "node_modules/postcss-custom-properties": {
14302 "version": "12.1.11",
14303 "resolved": "https://registry.npmjs.org/postcss-custom-properties/-/postcss-custom-properties-12.1.11.tgz",
14304 "integrity": "sha512-0IDJYhgU8xDv1KY6+VgUwuQkVtmYzRwu+dMjnmdMafXYv86SWqfxkc7qdDvWS38vsjaEtv8e0vGOUQrAiMBLpQ==",
14305 "dependencies": {
14306 "postcss-value-parser": "^4.2.0"
14307 },
14308 "engines": {
14309 "node": "^12 || ^14 || >=16"
14310 },
14311 "funding": {
14312 "type": "opencollective",
14313 "url": "https://opencollective.com/csstools"
14314 },
14315 "peerDependencies": {
14316 "postcss": "^8.2"
14317 }
14318 },
14319 "node_modules/postcss-custom-selectors": {
14320 "version": "6.0.3",
14321 "resolved": "https://registry.npmjs.org/postcss-custom-selectors/-/postcss-custom-selectors-6.0.3.tgz",
14322 "integrity": "sha512-fgVkmyiWDwmD3JbpCmB45SvvlCD6z9CG6Ie6Iere22W5aHea6oWa7EM2bpnv2Fj3I94L3VbtvX9KqwSi5aFzSg==",
14323 "dependencies": {
14324 "postcss-selector-parser": "^6.0.4"
14325 },
14326 "engines": {
14327 "node": "^12 || ^14 || >=16"
14328 },
14329 "funding": {
14330 "type": "opencollective",
14331 "url": "https://opencollective.com/csstools"
14332 },
14333 "peerDependencies": {
14334 "postcss": "^8.3"
14335 }
14336 },
14337 "node_modules/postcss-dir-pseudo-class": {
14338 "version": "6.0.5",
14339 "resolved": "https://registry.npmjs.org/postcss-dir-pseudo-class/-/postcss-dir-pseudo-class-6.0.5.tgz",
14340 "integrity": "sha512-eqn4m70P031PF7ZQIvSgy9RSJ5uI2171O/OO/zcRNYpJbvaeKFUlar1aJ7rmgiQtbm0FSPsRewjpdS0Oew7MPA==",
14341 "dependencies": {
14342 "postcss-selector-parser": "^6.0.10"
14343 },
14344 "engines": {
14345 "node": "^12 || ^14 || >=16"
14346 },
14347 "funding": {
14348 "type": "opencollective",
14349 "url": "https://opencollective.com/csstools"
14350 },
14351 "peerDependencies": {
14352 "postcss": "^8.2"
14353 }
14354 },
14355 "node_modules/postcss-discard-comments": {
14356 "version": "5.1.2",
14357 "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-5.1.2.tgz",
14358 "integrity": "sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ==",
14359 "engines": {
14360 "node": "^10 || ^12 || >=14.0"
14361 },
14362 "peerDependencies": {
14363 "postcss": "^8.2.15"
14364 }
14365 },
14366 "node_modules/postcss-discard-duplicates": {
14367 "version": "5.1.0",
14368 "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-5.1.0.tgz",
14369 "integrity": "sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==",
14370 "engines": {
14371 "node": "^10 || ^12 || >=14.0"
14372 },
14373 "peerDependencies": {
14374 "postcss": "^8.2.15"
14375 }
14376 },
14377 "node_modules/postcss-discard-empty": {
14378 "version": "5.1.1",
14379 "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-5.1.1.tgz",
14380 "integrity": "sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==",
14381 "engines": {
14382 "node": "^10 || ^12 || >=14.0"
14383 },
14384 "peerDependencies": {
14385 "postcss": "^8.2.15"
14386 }
14387 },
14388 "node_modules/postcss-discard-overridden": {
14389 "version": "5.1.0",
14390 "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-5.1.0.tgz",
14391 "integrity": "sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==",
14392 "engines": {
14393 "node": "^10 || ^12 || >=14.0"
14394 },
14395 "peerDependencies": {
14396 "postcss": "^8.2.15"
14397 }
14398 },
14399 "node_modules/postcss-double-position-gradients": {
14400 "version": "3.1.2",
14401 "resolved": "https://registry.npmjs.org/postcss-double-position-gradients/-/postcss-double-position-gradients-3.1.2.tgz",
14402 "integrity": "sha512-GX+FuE/uBR6eskOK+4vkXgT6pDkexLokPaz/AbJna9s5Kzp/yl488pKPjhy0obB475ovfT1Wv8ho7U/cHNaRgQ==",
14403 "dependencies": {
14404 "@csstools/postcss-progressive-custom-properties": "^1.1.0",
14405 "postcss-value-parser": "^4.2.0"
14406 },
14407 "engines": {
14408 "node": "^12 || ^14 || >=16"
14409 },
14410 "funding": {
14411 "type": "opencollective",
14412 "url": "https://opencollective.com/csstools"
14413 },
14414 "peerDependencies": {
14415 "postcss": "^8.2"
14416 }
14417 },
14418 "node_modules/postcss-env-function": {
14419 "version": "4.0.6",
14420 "resolved": "https://registry.npmjs.org/postcss-env-function/-/postcss-env-function-4.0.6.tgz",
14421 "integrity": "sha512-kpA6FsLra+NqcFnL81TnsU+Z7orGtDTxcOhl6pwXeEq1yFPpRMkCDpHhrz8CFQDr/Wfm0jLiNQ1OsGGPjlqPwA==",
14422 "dependencies": {
14423 "postcss-value-parser": "^4.2.0"
14424 },
14425 "engines": {
14426 "node": "^12 || ^14 || >=16"
14427 },
14428 "peerDependencies": {
14429 "postcss": "^8.4"
14430 }
14431 },
14432 "node_modules/postcss-flexbugs-fixes": {
14433 "version": "5.0.2",
14434 "resolved": "https://registry.npmjs.org/postcss-flexbugs-fixes/-/postcss-flexbugs-fixes-5.0.2.tgz",
14435 "integrity": "sha512-18f9voByak7bTktR2QgDveglpn9DTbBWPUzSOe9g0N4WR/2eSt6Vrcbf0hmspvMI6YWGywz6B9f7jzpFNJJgnQ==",
14436 "peerDependencies": {
14437 "postcss": "^8.1.4"
14438 }
14439 },
14440 "node_modules/postcss-focus-visible": {
14441 "version": "6.0.4",
14442 "resolved": "https://registry.npmjs.org/postcss-focus-visible/-/postcss-focus-visible-6.0.4.tgz",
14443 "integrity": "sha512-QcKuUU/dgNsstIK6HELFRT5Y3lbrMLEOwG+A4s5cA+fx3A3y/JTq3X9LaOj3OC3ALH0XqyrgQIgey/MIZ8Wczw==",
14444 "dependencies": {
14445 "postcss-selector-parser": "^6.0.9"
14446 },
14447 "engines": {
14448 "node": "^12 || ^14 || >=16"
14449 },
14450 "peerDependencies": {
14451 "postcss": "^8.4"
14452 }
14453 },
14454 "node_modules/postcss-focus-within": {
14455 "version": "5.0.4",
14456 "resolved": "https://registry.npmjs.org/postcss-focus-within/-/postcss-focus-within-5.0.4.tgz",
14457 "integrity": "sha512-vvjDN++C0mu8jz4af5d52CB184ogg/sSxAFS+oUJQq2SuCe7T5U2iIsVJtsCp2d6R4j0jr5+q3rPkBVZkXD9fQ==",
14458 "dependencies": {
14459 "postcss-selector-parser": "^6.0.9"
14460 },
14461 "engines": {
14462 "node": "^12 || ^14 || >=16"
14463 },
14464 "peerDependencies": {
14465 "postcss": "^8.4"
14466 }
14467 },
14468 "node_modules/postcss-font-variant": {
14469 "version": "5.0.0",
14470 "resolved": "https://registry.npmjs.org/postcss-font-variant/-/postcss-font-variant-5.0.0.tgz",
14471 "integrity": "sha512-1fmkBaCALD72CK2a9i468mA/+tr9/1cBxRRMXOUaZqO43oWPR5imcyPjXwuv7PXbCid4ndlP5zWhidQVVa3hmA==",
14472 "peerDependencies": {
14473 "postcss": "^8.1.0"
14474 }
14475 },
14476 "node_modules/postcss-gap-properties": {
14477 "version": "3.0.5",
14478 "resolved": "https://registry.npmjs.org/postcss-gap-properties/-/postcss-gap-properties-3.0.5.tgz",
14479 "integrity": "sha512-IuE6gKSdoUNcvkGIqdtjtcMtZIFyXZhmFd5RUlg97iVEvp1BZKV5ngsAjCjrVy+14uhGBQl9tzmi1Qwq4kqVOg==",
14480 "engines": {
14481 "node": "^12 || ^14 || >=16"
14482 },
14483 "funding": {
14484 "type": "opencollective",
14485 "url": "https://opencollective.com/csstools"
14486 },
14487 "peerDependencies": {
14488 "postcss": "^8.2"
14489 }
14490 },
14491 "node_modules/postcss-image-set-function": {
14492 "version": "4.0.7",
14493 "resolved": "https://registry.npmjs.org/postcss-image-set-function/-/postcss-image-set-function-4.0.7.tgz",
14494 "integrity": "sha512-9T2r9rsvYzm5ndsBE8WgtrMlIT7VbtTfE7b3BQnudUqnBcBo7L758oc+o+pdj/dUV0l5wjwSdjeOH2DZtfv8qw==",
14495 "dependencies": {
14496 "postcss-value-parser": "^4.2.0"
14497 },
14498 "engines": {
14499 "node": "^12 || ^14 || >=16"
14500 },
14501 "funding": {
14502 "type": "opencollective",
14503 "url": "https://opencollective.com/csstools"
14504 },
14505 "peerDependencies": {
14506 "postcss": "^8.2"
14507 }
14508 },
14509 "node_modules/postcss-import": {
14510 "version": "15.1.0",
14511 "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz",
14512 "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==",
14513 "dependencies": {
14514 "postcss-value-parser": "^4.0.0",
14515 "read-cache": "^1.0.0",
14516 "resolve": "^1.1.7"
14517 },
14518 "engines": {
14519 "node": ">=14.0.0"
14520 },
14521 "peerDependencies": {
14522 "postcss": "^8.0.0"
14523 }
14524 },
14525 "node_modules/postcss-initial": {
14526 "version": "4.0.1",
14527 "resolved": "https://registry.npmjs.org/postcss-initial/-/postcss-initial-4.0.1.tgz",
14528 "integrity": "sha512-0ueD7rPqX8Pn1xJIjay0AZeIuDoF+V+VvMt/uOnn+4ezUKhZM/NokDeP6DwMNyIoYByuN/94IQnt5FEkaN59xQ==",
14529 "peerDependencies": {
14530 "postcss": "^8.0.0"
14531 }
14532 },
14533 "node_modules/postcss-js": {
14534 "version": "4.0.1",
14535 "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz",
14536 "integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==",
14537 "dependencies": {
14538 "camelcase-css": "^2.0.1"
14539 },
14540 "engines": {
14541 "node": "^12 || ^14 || >= 16"
14542 },
14543 "funding": {
14544 "type": "opencollective",
14545 "url": "https://opencollective.com/postcss/"
14546 },
14547 "peerDependencies": {
14548 "postcss": "^8.4.21"
14549 }
14550 },
14551 "node_modules/postcss-lab-function": {
14552 "version": "4.2.1",
14553 "resolved": "https://registry.npmjs.org/postcss-lab-function/-/postcss-lab-function-4.2.1.tgz",
14554 "integrity": "sha512-xuXll4isR03CrQsmxyz92LJB2xX9n+pZJ5jE9JgcnmsCammLyKdlzrBin+25dy6wIjfhJpKBAN80gsTlCgRk2w==",
14555 "dependencies": {
14556 "@csstools/postcss-progressive-custom-properties": "^1.1.0",
14557 "postcss-value-parser": "^4.2.0"
14558 },
14559 "engines": {
14560 "node": "^12 || ^14 || >=16"
14561 },
14562 "funding": {
14563 "type": "opencollective",
14564 "url": "https://opencollective.com/csstools"
14565 },
14566 "peerDependencies": {
14567 "postcss": "^8.2"
14568 }
14569 },
14570 "node_modules/postcss-load-config": {
14571 "version": "4.0.2",
14572 "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.2.tgz",
14573 "integrity": "sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==",
14574 "funding": [
14575 {
14576 "type": "opencollective",
14577 "url": "https://opencollective.com/postcss/"
14578 },
14579 {
14580 "type": "github",
14581 "url": "https://github.com/sponsors/ai"
14582 }
14583 ],
14584 "dependencies": {
14585 "lilconfig": "^3.0.0",
14586 "yaml": "^2.3.4"
14587 },
14588 "engines": {
14589 "node": ">= 14"
14590 },
14591 "peerDependencies": {
14592 "postcss": ">=8.0.9",
14593 "ts-node": ">=9.0.0"
14594 },
14595 "peerDependenciesMeta": {
14596 "postcss": {
14597 "optional": true
14598 },
14599 "ts-node": {
14600 "optional": true
14601 }
14602 }
14603 },
14604 "node_modules/postcss-load-config/node_modules/lilconfig": {
14605 "version": "3.1.2",
14606 "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.2.tgz",
14607 "integrity": "sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==",
14608 "engines": {
14609 "node": ">=14"
14610 },
14611 "funding": {
14612 "url": "https://github.com/sponsors/antonk52"
14613 }
14614 },
14615 "node_modules/postcss-load-config/node_modules/yaml": {
14616 "version": "2.5.0",
14617 "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.5.0.tgz",
14618 "integrity": "sha512-2wWLbGbYDiSqqIKoPjar3MPgB94ErzCtrNE1FdqGuaO0pi2JGjmE8aW8TDZwzU7vuxcGRdL/4gPQwQ7hD5AMSw==",
14619 "bin": {
14620 "yaml": "bin.mjs"
14621 },
14622 "engines": {
14623 "node": ">= 14"
14624 }
14625 },
14626 "node_modules/postcss-loader": {
14627 "version": "6.2.1",
14628 "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-6.2.1.tgz",
14629 "integrity": "sha512-WbbYpmAaKcux/P66bZ40bpWsBucjx/TTgVVzRZ9yUO8yQfVBlameJ0ZGVaPfH64hNSBh63a+ICP5nqOpBA0w+Q==",
14630 "dependencies": {
14631 "cosmiconfig": "^7.0.0",
14632 "klona": "^2.0.5",
14633 "semver": "^7.3.5"
14634 },
14635 "engines": {
14636 "node": ">= 12.13.0"
14637 },
14638 "funding": {
14639 "type": "opencollective",
14640 "url": "https://opencollective.com/webpack"
14641 },
14642 "peerDependencies": {
14643 "postcss": "^7.0.0 || ^8.0.1",
14644 "webpack": "^5.0.0"
14645 }
14646 },
14647 "node_modules/postcss-logical": {
14648 "version": "5.0.4",
14649 "resolved": "https://registry.npmjs.org/postcss-logical/-/postcss-logical-5.0.4.tgz",
14650 "integrity": "sha512-RHXxplCeLh9VjinvMrZONq7im4wjWGlRJAqmAVLXyZaXwfDWP73/oq4NdIp+OZwhQUMj0zjqDfM5Fj7qby+B4g==",
14651 "engines": {
14652 "node": "^12 || ^14 || >=16"
14653 },
14654 "peerDependencies": {
14655 "postcss": "^8.4"
14656 }
14657 },
14658 "node_modules/postcss-media-minmax": {
14659 "version": "5.0.0",
14660 "resolved": "https://registry.npmjs.org/postcss-media-minmax/-/postcss-media-minmax-5.0.0.tgz",
14661 "integrity": "sha512-yDUvFf9QdFZTuCUg0g0uNSHVlJ5X1lSzDZjPSFaiCWvjgsvu8vEVxtahPrLMinIDEEGnx6cBe6iqdx5YWz08wQ==",
14662 "engines": {
14663 "node": ">=10.0.0"
14664 },
14665 "peerDependencies": {
14666 "postcss": "^8.1.0"
14667 }
14668 },
14669 "node_modules/postcss-merge-longhand": {
14670 "version": "5.1.7",
14671 "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-5.1.7.tgz",
14672 "integrity": "sha512-YCI9gZB+PLNskrK0BB3/2OzPnGhPkBEwmwhfYk1ilBHYVAZB7/tkTHFBAnCrvBBOmeYyMYw3DMjT55SyxMBzjQ==",
14673 "dependencies": {
14674 "postcss-value-parser": "^4.2.0",
14675 "stylehacks": "^5.1.1"
14676 },
14677 "engines": {
14678 "node": "^10 || ^12 || >=14.0"
14679 },
14680 "peerDependencies": {
14681 "postcss": "^8.2.15"
14682 }
14683 },
14684 "node_modules/postcss-merge-rules": {
14685 "version": "5.1.4",
14686 "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-5.1.4.tgz",
14687 "integrity": "sha512-0R2IuYpgU93y9lhVbO/OylTtKMVcHb67zjWIfCiKR9rWL3GUk1677LAqD/BcHizukdZEjT8Ru3oHRoAYoJy44g==",
14688 "dependencies": {
14689 "browserslist": "^4.21.4",
14690 "caniuse-api": "^3.0.0",
14691 "cssnano-utils": "^3.1.0",
14692 "postcss-selector-parser": "^6.0.5"
14693 },
14694 "engines": {
14695 "node": "^10 || ^12 || >=14.0"
14696 },
14697 "peerDependencies": {
14698 "postcss": "^8.2.15"
14699 }
14700 },
14701 "node_modules/postcss-minify-font-values": {
14702 "version": "5.1.0",
14703 "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-5.1.0.tgz",
14704 "integrity": "sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA==",
14705 "dependencies": {
14706 "postcss-value-parser": "^4.2.0"
14707 },
14708 "engines": {
14709 "node": "^10 || ^12 || >=14.0"
14710 },
14711 "peerDependencies": {
14712 "postcss": "^8.2.15"
14713 }
14714 },
14715 "node_modules/postcss-minify-gradients": {
14716 "version": "5.1.1",
14717 "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-5.1.1.tgz",
14718 "integrity": "sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw==",
14719 "dependencies": {
14720 "colord": "^2.9.1",
14721 "cssnano-utils": "^3.1.0",
14722 "postcss-value-parser": "^4.2.0"
14723 },
14724 "engines": {
14725 "node": "^10 || ^12 || >=14.0"
14726 },
14727 "peerDependencies": {
14728 "postcss": "^8.2.15"
14729 }
14730 },
14731 "node_modules/postcss-minify-params": {
14732 "version": "5.1.4",
14733 "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-5.1.4.tgz",
14734 "integrity": "sha512-+mePA3MgdmVmv6g+30rn57USjOGSAyuxUmkfiWpzalZ8aiBkdPYjXWtHuwJGm1v5Ojy0Z0LaSYhHaLJQB0P8Jw==",
14735 "dependencies": {
14736 "browserslist": "^4.21.4",
14737 "cssnano-utils": "^3.1.0",
14738 "postcss-value-parser": "^4.2.0"
14739 },
14740 "engines": {
14741 "node": "^10 || ^12 || >=14.0"
14742 },
14743 "peerDependencies": {
14744 "postcss": "^8.2.15"
14745 }
14746 },
14747 "node_modules/postcss-minify-selectors": {
14748 "version": "5.2.1",
14749 "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-5.2.1.tgz",
14750 "integrity": "sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg==",
14751 "dependencies": {
14752 "postcss-selector-parser": "^6.0.5"
14753 },
14754 "engines": {
14755 "node": "^10 || ^12 || >=14.0"
14756 },
14757 "peerDependencies": {
14758 "postcss": "^8.2.15"
14759 }
14760 },
14761 "node_modules/postcss-modules-extract-imports": {
14762 "version": "3.1.0",
14763 "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.1.0.tgz",
14764 "integrity": "sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q==",
14765 "engines": {
14766 "node": "^10 || ^12 || >= 14"
14767 },
14768 "peerDependencies": {
14769 "postcss": "^8.1.0"
14770 }
14771 },
14772 "node_modules/postcss-modules-local-by-default": {
14773 "version": "4.0.5",
14774 "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.5.tgz",
14775 "integrity": "sha512-6MieY7sIfTK0hYfafw1OMEG+2bg8Q1ocHCpoWLqOKj3JXlKu4G7btkmM/B7lFubYkYWmRSPLZi5chid63ZaZYw==",
14776 "dependencies": {
14777 "icss-utils": "^5.0.0",
14778 "postcss-selector-parser": "^6.0.2",
14779 "postcss-value-parser": "^4.1.0"
14780 },
14781 "engines": {
14782 "node": "^10 || ^12 || >= 14"
14783 },
14784 "peerDependencies": {
14785 "postcss": "^8.1.0"
14786 }
14787 },
14788 "node_modules/postcss-modules-scope": {
14789 "version": "3.2.0",
14790 "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.2.0.tgz",
14791 "integrity": "sha512-oq+g1ssrsZOsx9M96c5w8laRmvEu9C3adDSjI8oTcbfkrTE8hx/zfyobUoWIxaKPO8bt6S62kxpw5GqypEw1QQ==",
14792 "dependencies": {
14793 "postcss-selector-parser": "^6.0.4"
14794 },
14795 "engines": {
14796 "node": "^10 || ^12 || >= 14"
14797 },
14798 "peerDependencies": {
14799 "postcss": "^8.1.0"
14800 }
14801 },
14802 "node_modules/postcss-modules-values": {
14803 "version": "4.0.0",
14804 "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz",
14805 "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==",
14806 "dependencies": {
14807 "icss-utils": "^5.0.0"
14808 },
14809 "engines": {
14810 "node": "^10 || ^12 || >= 14"
14811 },
14812 "peerDependencies": {
14813 "postcss": "^8.1.0"
14814 }
14815 },
14816 "node_modules/postcss-nested": {
14817 "version": "6.2.0",
14818 "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.2.0.tgz",
14819 "integrity": "sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==",
14820 "funding": [
14821 {
14822 "type": "opencollective",
14823 "url": "https://opencollective.com/postcss/"
14824 },
14825 {
14826 "type": "github",
14827 "url": "https://github.com/sponsors/ai"
14828 }
14829 ],
14830 "dependencies": {
14831 "postcss-selector-parser": "^6.1.1"
14832 },
14833 "engines": {
14834 "node": ">=12.0"
14835 },
14836 "peerDependencies": {
14837 "postcss": "^8.2.14"
14838 }
14839 },
14840 "node_modules/postcss-nesting": {
14841 "version": "10.2.0",
14842 "resolved": "https://registry.npmjs.org/postcss-nesting/-/postcss-nesting-10.2.0.tgz",
14843 "integrity": "sha512-EwMkYchxiDiKUhlJGzWsD9b2zvq/r2SSubcRrgP+jujMXFzqvANLt16lJANC+5uZ6hjI7lpRmI6O8JIl+8l1KA==",
14844 "dependencies": {
14845 "@csstools/selector-specificity": "^2.0.0",
14846 "postcss-selector-parser": "^6.0.10"
14847 },
14848 "engines": {
14849 "node": "^12 || ^14 || >=16"
14850 },
14851 "funding": {
14852 "type": "opencollective",
14853 "url": "https://opencollective.com/csstools"
14854 },
14855 "peerDependencies": {
14856 "postcss": "^8.2"
14857 }
14858 },
14859 "node_modules/postcss-normalize": {
14860 "version": "10.0.1",
14861 "resolved": "https://registry.npmjs.org/postcss-normalize/-/postcss-normalize-10.0.1.tgz",
14862 "integrity": "sha512-+5w18/rDev5mqERcG3W5GZNMJa1eoYYNGo8gB7tEwaos0ajk3ZXAI4mHGcNT47NE+ZnZD1pEpUOFLvltIwmeJA==",
14863 "dependencies": {
14864 "@csstools/normalize.css": "*",
14865 "postcss-browser-comments": "^4",
14866 "sanitize.css": "*"
14867 },
14868 "engines": {
14869 "node": ">= 12"
14870 },
14871 "peerDependencies": {
14872 "browserslist": ">= 4",
14873 "postcss": ">= 8"
14874 }
14875 },
14876 "node_modules/postcss-normalize-charset": {
14877 "version": "5.1.0",
14878 "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-5.1.0.tgz",
14879 "integrity": "sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg==",
14880 "engines": {
14881 "node": "^10 || ^12 || >=14.0"
14882 },
14883 "peerDependencies": {
14884 "postcss": "^8.2.15"
14885 }
14886 },
14887 "node_modules/postcss-normalize-display-values": {
14888 "version": "5.1.0",
14889 "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-5.1.0.tgz",
14890 "integrity": "sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA==",
14891 "dependencies": {
14892 "postcss-value-parser": "^4.2.0"
14893 },
14894 "engines": {
14895 "node": "^10 || ^12 || >=14.0"
14896 },
14897 "peerDependencies": {
14898 "postcss": "^8.2.15"
14899 }
14900 },
14901 "node_modules/postcss-normalize-positions": {
14902 "version": "5.1.1",
14903 "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-5.1.1.tgz",
14904 "integrity": "sha512-6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg==",
14905 "dependencies": {
14906 "postcss-value-parser": "^4.2.0"
14907 },
14908 "engines": {
14909 "node": "^10 || ^12 || >=14.0"
14910 },
14911 "peerDependencies": {
14912 "postcss": "^8.2.15"
14913 }
14914 },
14915 "node_modules/postcss-normalize-repeat-style": {
14916 "version": "5.1.1",
14917 "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.1.1.tgz",
14918 "integrity": "sha512-mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g==",
14919 "dependencies": {
14920 "postcss-value-parser": "^4.2.0"
14921 },
14922 "engines": {
14923 "node": "^10 || ^12 || >=14.0"
14924 },
14925 "peerDependencies": {
14926 "postcss": "^8.2.15"
14927 }
14928 },
14929 "node_modules/postcss-normalize-string": {
14930 "version": "5.1.0",
14931 "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-5.1.0.tgz",
14932 "integrity": "sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w==",
14933 "dependencies": {
14934 "postcss-value-parser": "^4.2.0"
14935 },
14936 "engines": {
14937 "node": "^10 || ^12 || >=14.0"
14938 },
14939 "peerDependencies": {
14940 "postcss": "^8.2.15"
14941 }
14942 },
14943 "node_modules/postcss-normalize-timing-functions": {
14944 "version": "5.1.0",
14945 "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-5.1.0.tgz",
14946 "integrity": "sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg==",
14947 "dependencies": {
14948 "postcss-value-parser": "^4.2.0"
14949 },
14950 "engines": {
14951 "node": "^10 || ^12 || >=14.0"
14952 },
14953 "peerDependencies": {
14954 "postcss": "^8.2.15"
14955 }
14956 },
14957 "node_modules/postcss-normalize-unicode": {
14958 "version": "5.1.1",
14959 "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-5.1.1.tgz",
14960 "integrity": "sha512-qnCL5jzkNUmKVhZoENp1mJiGNPcsJCs1aaRmURmeJGES23Z/ajaln+EPTD+rBeNkSryI+2WTdW+lwcVdOikrpA==",
14961 "dependencies": {
14962 "browserslist": "^4.21.4",
14963 "postcss-value-parser": "^4.2.0"
14964 },
14965 "engines": {
14966 "node": "^10 || ^12 || >=14.0"
14967 },
14968 "peerDependencies": {
14969 "postcss": "^8.2.15"
14970 }
14971 },
14972 "node_modules/postcss-normalize-url": {
14973 "version": "5.1.0",
14974 "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-5.1.0.tgz",
14975 "integrity": "sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew==",
14976 "dependencies": {
14977 "normalize-url": "^6.0.1",
14978 "postcss-value-parser": "^4.2.0"
14979 },
14980 "engines": {
14981 "node": "^10 || ^12 || >=14.0"
14982 },
14983 "peerDependencies": {
14984 "postcss": "^8.2.15"
14985 }
14986 },
14987 "node_modules/postcss-normalize-whitespace": {
14988 "version": "5.1.1",
14989 "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.1.1.tgz",
14990 "integrity": "sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA==",
14991 "dependencies": {
14992 "postcss-value-parser": "^4.2.0"
14993 },
14994 "engines": {
14995 "node": "^10 || ^12 || >=14.0"
14996 },
14997 "peerDependencies": {
14998 "postcss": "^8.2.15"
14999 }
15000 },
15001 "node_modules/postcss-opacity-percentage": {
15002 "version": "1.1.3",
15003 "resolved": "https://registry.npmjs.org/postcss-opacity-percentage/-/postcss-opacity-percentage-1.1.3.tgz",
15004 "integrity": "sha512-An6Ba4pHBiDtyVpSLymUUERMo2cU7s+Obz6BTrS+gxkbnSBNKSuD0AVUc+CpBMrpVPKKfoVz0WQCX+Tnst0i4A==",
15005 "funding": [
15006 {
15007 "type": "kofi",
15008 "url": "https://ko-fi.com/mrcgrtz"
15009 },
15010 {
15011 "type": "liberapay",
15012 "url": "https://liberapay.com/mrcgrtz"
15013 }
15014 ],
15015 "engines": {
15016 "node": "^12 || ^14 || >=16"
15017 },
15018 "peerDependencies": {
15019 "postcss": "^8.2"
15020 }
15021 },
15022 "node_modules/postcss-ordered-values": {
15023 "version": "5.1.3",
15024 "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-5.1.3.tgz",
15025 "integrity": "sha512-9UO79VUhPwEkzbb3RNpqqghc6lcYej1aveQteWY+4POIwlqkYE21HKWaLDF6lWNuqCobEAyTovVhtI32Rbv2RQ==",
15026 "dependencies": {
15027 "cssnano-utils": "^3.1.0",
15028 "postcss-value-parser": "^4.2.0"
15029 },
15030 "engines": {
15031 "node": "^10 || ^12 || >=14.0"
15032 },
15033 "peerDependencies": {
15034 "postcss": "^8.2.15"
15035 }
15036 },
15037 "node_modules/postcss-overflow-shorthand": {
15038 "version": "3.0.4",
15039 "resolved": "https://registry.npmjs.org/postcss-overflow-shorthand/-/postcss-overflow-shorthand-3.0.4.tgz",
15040 "integrity": "sha512-otYl/ylHK8Y9bcBnPLo3foYFLL6a6Ak+3EQBPOTR7luMYCOsiVTUk1iLvNf6tVPNGXcoL9Hoz37kpfriRIFb4A==",
15041 "dependencies": {
15042 "postcss-value-parser": "^4.2.0"
15043 },
15044 "engines": {
15045 "node": "^12 || ^14 || >=16"
15046 },
15047 "funding": {
15048 "type": "opencollective",
15049 "url": "https://opencollective.com/csstools"
15050 },
15051 "peerDependencies": {
15052 "postcss": "^8.2"
15053 }
15054 },
15055 "node_modules/postcss-page-break": {
15056 "version": "3.0.4",
15057 "resolved": "https://registry.npmjs.org/postcss-page-break/-/postcss-page-break-3.0.4.tgz",
15058 "integrity": "sha512-1JGu8oCjVXLa9q9rFTo4MbeeA5FMe00/9C7lN4va606Rdb+HkxXtXsmEDrIraQ11fGz/WvKWa8gMuCKkrXpTsQ==",
15059 "peerDependencies": {
15060 "postcss": "^8"
15061 }
15062 },
15063 "node_modules/postcss-place": {
15064 "version": "7.0.5",
15065 "resolved": "https://registry.npmjs.org/postcss-place/-/postcss-place-7.0.5.tgz",
15066 "integrity": "sha512-wR8igaZROA6Z4pv0d+bvVrvGY4GVHihBCBQieXFY3kuSuMyOmEnnfFzHl/tQuqHZkfkIVBEbDvYcFfHmpSet9g==",
15067 "dependencies": {
15068 "postcss-value-parser": "^4.2.0"
15069 },
15070 "engines": {
15071 "node": "^12 || ^14 || >=16"
15072 },
15073 "funding": {
15074 "type": "opencollective",
15075 "url": "https://opencollective.com/csstools"
15076 },
15077 "peerDependencies": {
15078 "postcss": "^8.2"
15079 }
15080 },
15081 "node_modules/postcss-preset-env": {
15082 "version": "7.8.3",
15083 "resolved": "https://registry.npmjs.org/postcss-preset-env/-/postcss-preset-env-7.8.3.tgz",
15084 "integrity": "sha512-T1LgRm5uEVFSEF83vHZJV2z19lHg4yJuZ6gXZZkqVsqv63nlr6zabMH3l4Pc01FQCyfWVrh2GaUeCVy9Po+Aag==",
15085 "dependencies": {
15086 "@csstools/postcss-cascade-layers": "^1.1.1",
15087 "@csstools/postcss-color-function": "^1.1.1",
15088 "@csstools/postcss-font-format-keywords": "^1.0.1",
15089 "@csstools/postcss-hwb-function": "^1.0.2",
15090 "@csstools/postcss-ic-unit": "^1.0.1",
15091 "@csstools/postcss-is-pseudo-class": "^2.0.7",
15092 "@csstools/postcss-nested-calc": "^1.0.0",
15093 "@csstools/postcss-normalize-display-values": "^1.0.1",
15094 "@csstools/postcss-oklab-function": "^1.1.1",
15095 "@csstools/postcss-progressive-custom-properties": "^1.3.0",
15096 "@csstools/postcss-stepped-value-functions": "^1.0.1",
15097 "@csstools/postcss-text-decoration-shorthand": "^1.0.0",
15098 "@csstools/postcss-trigonometric-functions": "^1.0.2",
15099 "@csstools/postcss-unset-value": "^1.0.2",
15100 "autoprefixer": "^10.4.13",
15101 "browserslist": "^4.21.4",
15102 "css-blank-pseudo": "^3.0.3",
15103 "css-has-pseudo": "^3.0.4",
15104 "css-prefers-color-scheme": "^6.0.3",
15105 "cssdb": "^7.1.0",
15106 "postcss-attribute-case-insensitive": "^5.0.2",
15107 "postcss-clamp": "^4.1.0",
15108 "postcss-color-functional-notation": "^4.2.4",
15109 "postcss-color-hex-alpha": "^8.0.4",
15110 "postcss-color-rebeccapurple": "^7.1.1",
15111 "postcss-custom-media": "^8.0.2",
15112 "postcss-custom-properties": "^12.1.10",
15113 "postcss-custom-selectors": "^6.0.3",
15114 "postcss-dir-pseudo-class": "^6.0.5",
15115 "postcss-double-position-gradients": "^3.1.2",
15116 "postcss-env-function": "^4.0.6",
15117 "postcss-focus-visible": "^6.0.4",
15118 "postcss-focus-within": "^5.0.4",
15119 "postcss-font-variant": "^5.0.0",
15120 "postcss-gap-properties": "^3.0.5",
15121 "postcss-image-set-function": "^4.0.7",
15122 "postcss-initial": "^4.0.1",
15123 "postcss-lab-function": "^4.2.1",
15124 "postcss-logical": "^5.0.4",
15125 "postcss-media-minmax": "^5.0.0",
15126 "postcss-nesting": "^10.2.0",
15127 "postcss-opacity-percentage": "^1.1.2",
15128 "postcss-overflow-shorthand": "^3.0.4",
15129 "postcss-page-break": "^3.0.4",
15130 "postcss-place": "^7.0.5",
15131 "postcss-pseudo-class-any-link": "^7.1.6",
15132 "postcss-replace-overflow-wrap": "^4.0.0",
15133 "postcss-selector-not": "^6.0.1",
15134 "postcss-value-parser": "^4.2.0"
15135 },
15136 "engines": {
15137 "node": "^12 || ^14 || >=16"
15138 },
15139 "funding": {
15140 "type": "opencollective",
15141 "url": "https://opencollective.com/csstools"
15142 },
15143 "peerDependencies": {
15144 "postcss": "^8.2"
15145 }
15146 },
15147 "node_modules/postcss-pseudo-class-any-link": {
15148 "version": "7.1.6",
15149 "resolved": "https://registry.npmjs.org/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-7.1.6.tgz",
15150 "integrity": "sha512-9sCtZkO6f/5ML9WcTLcIyV1yz9D1rf0tWc+ulKcvV30s0iZKS/ONyETvoWsr6vnrmW+X+KmuK3gV/w5EWnT37w==",
15151 "dependencies": {
15152 "postcss-selector-parser": "^6.0.10"
15153 },
15154 "engines": {
15155 "node": "^12 || ^14 || >=16"
15156 },
15157 "funding": {
15158 "type": "opencollective",
15159 "url": "https://opencollective.com/csstools"
15160 },
15161 "peerDependencies": {
15162 "postcss": "^8.2"
15163 }
15164 },
15165 "node_modules/postcss-reduce-initial": {
15166 "version": "5.1.2",
15167 "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-5.1.2.tgz",
15168 "integrity": "sha512-dE/y2XRaqAi6OvjzD22pjTUQ8eOfc6m/natGHgKFBK9DxFmIm69YmaRVQrGgFlEfc1HePIurY0TmDeROK05rIg==",
15169 "dependencies": {
15170 "browserslist": "^4.21.4",
15171 "caniuse-api": "^3.0.0"
15172 },
15173 "engines": {
15174 "node": "^10 || ^12 || >=14.0"
15175 },
15176 "peerDependencies": {
15177 "postcss": "^8.2.15"
15178 }
15179 },
15180 "node_modules/postcss-reduce-transforms": {
15181 "version": "5.1.0",
15182 "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-5.1.0.tgz",
15183 "integrity": "sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ==",
15184 "dependencies": {
15185 "postcss-value-parser": "^4.2.0"
15186 },
15187 "engines": {
15188 "node": "^10 || ^12 || >=14.0"
15189 },
15190 "peerDependencies": {
15191 "postcss": "^8.2.15"
15192 }
15193 },
15194 "node_modules/postcss-replace-overflow-wrap": {
15195 "version": "4.0.0",
15196 "resolved": "https://registry.npmjs.org/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-4.0.0.tgz",
15197 "integrity": "sha512-KmF7SBPphT4gPPcKZc7aDkweHiKEEO8cla/GjcBK+ckKxiZslIu3C4GCRW3DNfL0o7yW7kMQu9xlZ1kXRXLXtw==",
15198 "peerDependencies": {
15199 "postcss": "^8.0.3"
15200 }
15201 },
15202 "node_modules/postcss-selector-not": {
15203 "version": "6.0.1",
15204 "resolved": "https://registry.npmjs.org/postcss-selector-not/-/postcss-selector-not-6.0.1.tgz",
15205 "integrity": "sha512-1i9affjAe9xu/y9uqWH+tD4r6/hDaXJruk8xn2x1vzxC2U3J3LKO3zJW4CyxlNhA56pADJ/djpEwpH1RClI2rQ==",
15206 "dependencies": {
15207 "postcss-selector-parser": "^6.0.10"
15208 },
15209 "engines": {
15210 "node": "^12 || ^14 || >=16"
15211 },
15212 "funding": {
15213 "type": "opencollective",
15214 "url": "https://opencollective.com/csstools"
15215 },
15216 "peerDependencies": {
15217 "postcss": "^8.2"
15218 }
15219 },
15220 "node_modules/postcss-selector-parser": {
15221 "version": "6.1.2",
15222 "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz",
15223 "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==",
15224 "dependencies": {
15225 "cssesc": "^3.0.0",
15226 "util-deprecate": "^1.0.2"
15227 },
15228 "engines": {
15229 "node": ">=4"
15230 }
15231 },
15232 "node_modules/postcss-svgo": {
15233 "version": "5.1.0",
15234 "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-5.1.0.tgz",
15235 "integrity": "sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA==",
15236 "dependencies": {
15237 "postcss-value-parser": "^4.2.0",
15238 "svgo": "^2.7.0"
15239 },
15240 "engines": {
15241 "node": "^10 || ^12 || >=14.0"
15242 },
15243 "peerDependencies": {
15244 "postcss": "^8.2.15"
15245 }
15246 },
15247 "node_modules/postcss-svgo/node_modules/commander": {
15248 "version": "7.2.0",
15249 "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz",
15250 "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==",
15251 "engines": {
15252 "node": ">= 10"
15253 }
15254 },
15255 "node_modules/postcss-svgo/node_modules/css-tree": {
15256 "version": "1.1.3",
15257 "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz",
15258 "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==",
15259 "dependencies": {
15260 "mdn-data": "2.0.14",
15261 "source-map": "^0.6.1"
15262 },
15263 "engines": {
15264 "node": ">=8.0.0"
15265 }
15266 },
15267 "node_modules/postcss-svgo/node_modules/mdn-data": {
15268 "version": "2.0.14",
15269 "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz",
15270 "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow=="
15271 },
15272 "node_modules/postcss-svgo/node_modules/source-map": {
15273 "version": "0.6.1",
15274 "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
15275 "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
15276 "engines": {
15277 "node": ">=0.10.0"
15278 }
15279 },
15280 "node_modules/postcss-svgo/node_modules/svgo": {
15281 "version": "2.8.0",
15282 "resolved": "https://registry.npmjs.org/svgo/-/svgo-2.8.0.tgz",
15283 "integrity": "sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==",
15284 "dependencies": {
15285 "@trysound/sax": "0.2.0",
15286 "commander": "^7.2.0",
15287 "css-select": "^4.1.3",
15288 "css-tree": "^1.1.3",
15289 "csso": "^4.2.0",
15290 "picocolors": "^1.0.0",
15291 "stable": "^0.1.8"
15292 },
15293 "bin": { 4091 "bin": {
15294 "svgo": "bin/svgo" 4092 "prettier": "bin/prettier.cjs"
15295 },
15296 "engines": {
15297 "node": ">=10.13.0"
15298 }
15299 },
15300 "node_modules/postcss-unique-selectors": {
15301 "version": "5.1.1",
15302 "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-5.1.1.tgz",
15303 "integrity": "sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA==",
15304 "dependencies": {
15305 "postcss-selector-parser": "^6.0.5"
15306 }, 4093 },
15307 "engines": { 4094 "engines": {
15308 "node": "^10 || ^12 || >=14.0" 4095 "node": ">=14"
15309 },
15310 "peerDependencies": {
15311 "postcss": "^8.2.15"
15312 }
15313 },
15314 "node_modules/postcss-value-parser": {
15315 "version": "4.2.0",
15316 "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz",
15317 "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ=="
15318 },
15319 "node_modules/prelude-ls": {
15320 "version": "1.2.1",
15321 "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz",
15322 "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==",
15323 "engines": {
15324 "node": ">= 0.8.0"
15325 }
15326 },
15327 "node_modules/pretty-bytes": {
15328 "version": "5.6.0",
15329 "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz",
15330 "integrity": "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==",
15331 "engines": {
15332 "node": ">=6"
15333 }, 4096 },
15334 "funding": { 4097 "funding": {
15335 "url": "https://github.com/sponsors/sindresorhus" 4098 "url": "https://github.com/prettier/prettier?sponsor=1"
15336 }
15337 },
15338 "node_modules/pretty-error": {
15339 "version": "4.0.0",
15340 "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-4.0.0.tgz",
15341 "integrity": "sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw==",
15342 "dependencies": {
15343 "lodash": "^4.17.20",
15344 "renderkid": "^3.0.0"
15345 } 4099 }
15346 }, 4100 },
15347 "node_modules/pretty-format": { 4101 "node_modules/pretty-format": {
15348 "version": "27.5.1", 4102 "version": "27.5.1",
15349 "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", 4103 "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz",
15350 "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", 4104 "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==",
4105 "license": "MIT",
15351 "dependencies": { 4106 "dependencies": {
15352 "ansi-regex": "^5.0.1", 4107 "ansi-regex": "^5.0.1",
15353 "ansi-styles": "^5.0.0", 4108 "ansi-styles": "^5.0.0",
@@ -15361,6 +4116,7 @@
15361 "version": "5.2.0", 4116 "version": "5.2.0",
15362 "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", 4117 "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz",
15363 "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", 4118 "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==",
4119 "license": "MIT",
15364 "engines": { 4120 "engines": {
15365 "node": ">=10" 4121 "node": ">=10"
15366 }, 4122 },
@@ -15368,35 +4124,11 @@
15368 "url": "https://github.com/chalk/ansi-styles?sponsor=1" 4124 "url": "https://github.com/chalk/ansi-styles?sponsor=1"
15369 } 4125 }
15370 }, 4126 },
15371 "node_modules/process-nextick-args": {
15372 "version": "2.0.1",
15373 "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
15374 "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag=="
15375 },
15376 "node_modules/promise": {
15377 "version": "8.3.0",
15378 "resolved": "https://registry.npmjs.org/promise/-/promise-8.3.0.tgz",
15379 "integrity": "sha512-rZPNPKTOYVNEEKFaq1HqTgOwZD+4/YHS5ukLzQCypkj+OkYx7iv0mA91lJlpPPZ8vMau3IIGj5Qlwrx+8iiSmg==",
15380 "dependencies": {
15381 "asap": "~2.0.6"
15382 }
15383 },
15384 "node_modules/prompts": {
15385 "version": "2.4.2",
15386 "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz",
15387 "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==",
15388 "dependencies": {
15389 "kleur": "^3.0.3",
15390 "sisteransi": "^1.0.5"
15391 },
15392 "engines": {
15393 "node": ">= 6"
15394 }
15395 },
15396 "node_modules/prop-types": { 4127 "node_modules/prop-types": {
15397 "version": "15.8.1", 4128 "version": "15.8.1",
15398 "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", 4129 "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz",
15399 "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", 4130 "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==",
4131 "license": "MIT",
15400 "dependencies": { 4132 "dependencies": {
15401 "loose-envify": "^1.4.0", 4133 "loose-envify": "^1.4.0",
15402 "object-assign": "^4.1.1", 4134 "object-assign": "^4.1.1",
@@ -15406,164 +4138,30 @@
15406 "node_modules/prop-types/node_modules/react-is": { 4138 "node_modules/prop-types/node_modules/react-is": {
15407 "version": "16.13.1", 4139 "version": "16.13.1",
15408 "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", 4140 "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
15409 "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" 4141 "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==",
4142 "license": "MIT"
15410 }, 4143 },
15411 "node_modules/property-information": { 4144 "node_modules/property-information": {
15412 "version": "6.5.0", 4145 "version": "6.5.0",
15413 "resolved": "https://registry.npmjs.org/property-information/-/property-information-6.5.0.tgz", 4146 "resolved": "https://registry.npmjs.org/property-information/-/property-information-6.5.0.tgz",
15414 "integrity": "sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig==", 4147 "integrity": "sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig==",
4148 "license": "MIT",
15415 "funding": { 4149 "funding": {
15416 "type": "github", 4150 "type": "github",
15417 "url": "https://github.com/sponsors/wooorm" 4151 "url": "https://github.com/sponsors/wooorm"
15418 } 4152 }
15419 }, 4153 },
15420 "node_modules/proxy-addr": {
15421 "version": "2.0.7",
15422 "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz",
15423 "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==",
15424 "dependencies": {
15425 "forwarded": "0.2.0",
15426 "ipaddr.js": "1.9.1"
15427 },
15428 "engines": {
15429 "node": ">= 0.10"
15430 }
15431 },
15432 "node_modules/proxy-addr/node_modules/ipaddr.js": {
15433 "version": "1.9.1",
15434 "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz",
15435 "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==",
15436 "engines": {
15437 "node": ">= 0.10"
15438 }
15439 },
15440 "node_modules/proxy-from-env": { 4154 "node_modules/proxy-from-env": {
15441 "version": "1.1.0", 4155 "version": "1.1.0",
15442 "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", 4156 "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz",
15443 "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" 4157 "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==",
15444 }, 4158 "license": "MIT"
15445 "node_modules/psl": {
15446 "version": "1.9.0",
15447 "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz",
15448 "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag=="
15449 },
15450 "node_modules/punycode": {
15451 "version": "2.3.1",
15452 "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz",
15453 "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==",
15454 "engines": {
15455 "node": ">=6"
15456 }
15457 },
15458 "node_modules/q": {
15459 "version": "1.5.1",
15460 "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz",
15461 "integrity": "sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==",
15462 "deprecated": "You or someone you depend on is using Q, the JavaScript Promise library that gave JavaScript developers strong feelings about promises. They can almost certainly migrate to the native JavaScript promise now. Thank you literally everyone for joining me in this bet against the odds. Be excellent to each other.\n\n(For a CapTP with native promises, see @endo/eventual-send and @endo/captp)",
15463 "engines": {
15464 "node": ">=0.6.0",
15465 "teleport": ">=0.2.0"
15466 }
15467 },
15468 "node_modules/qs": {
15469 "version": "6.11.0",
15470 "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz",
15471 "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==",
15472 "dependencies": {
15473 "side-channel": "^1.0.4"
15474 },
15475 "engines": {
15476 "node": ">=0.6"
15477 },
15478 "funding": {
15479 "url": "https://github.com/sponsors/ljharb"
15480 }
15481 },
15482 "node_modules/querystringify": {
15483 "version": "2.2.0",
15484 "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz",
15485 "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ=="
15486 },
15487 "node_modules/queue-microtask": {
15488 "version": "1.2.3",
15489 "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
15490 "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
15491 "funding": [
15492 {
15493 "type": "github",
15494 "url": "https://github.com/sponsors/feross"
15495 },
15496 {
15497 "type": "patreon",
15498 "url": "https://www.patreon.com/feross"
15499 },
15500 {
15501 "type": "consulting",
15502 "url": "https://feross.org/support"
15503 }
15504 ]
15505 },
15506 "node_modules/raf": {
15507 "version": "3.4.1",
15508 "resolved": "https://registry.npmjs.org/raf/-/raf-3.4.1.tgz",
15509 "integrity": "sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA==",
15510 "dependencies": {
15511 "performance-now": "^2.1.0"
15512 }
15513 },
15514 "node_modules/randombytes": {
15515 "version": "2.1.0",
15516 "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz",
15517 "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==",
15518 "dependencies": {
15519 "safe-buffer": "^5.1.0"
15520 }
15521 },
15522 "node_modules/range-parser": {
15523 "version": "1.2.1",
15524 "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
15525 "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==",
15526 "engines": {
15527 "node": ">= 0.6"
15528 }
15529 },
15530 "node_modules/raw-body": {
15531 "version": "2.5.2",
15532 "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz",
15533 "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==",
15534 "dependencies": {
15535 "bytes": "3.1.2",
15536 "http-errors": "2.0.0",
15537 "iconv-lite": "0.4.24",
15538 "unpipe": "1.0.0"
15539 },
15540 "engines": {
15541 "node": ">= 0.8"
15542 }
15543 },
15544 "node_modules/raw-body/node_modules/bytes": {
15545 "version": "3.1.2",
15546 "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz",
15547 "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==",
15548 "engines": {
15549 "node": ">= 0.8"
15550 }
15551 },
15552 "node_modules/raw-body/node_modules/iconv-lite": {
15553 "version": "0.4.24",
15554 "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
15555 "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
15556 "dependencies": {
15557 "safer-buffer": ">= 2.1.2 < 3"
15558 },
15559 "engines": {
15560 "node": ">=0.10.0"
15561 }
15562 }, 4159 },
15563 "node_modules/react": { 4160 "node_modules/react": {
15564 "version": "18.3.1", 4161 "version": "18.3.1",
15565 "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", 4162 "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz",
15566 "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", 4163 "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==",
4164 "license": "MIT",
15567 "dependencies": { 4165 "dependencies": {
15568 "loose-envify": "^1.1.0" 4166 "loose-envify": "^1.1.0"
15569 }, 4167 },
@@ -15571,205 +4169,11 @@
15571 "node": ">=0.10.0" 4169 "node": ">=0.10.0"
15572 } 4170 }
15573 }, 4171 },
15574 "node_modules/react-app-polyfill": {
15575 "version": "3.0.0",
15576 "resolved": "https://registry.npmjs.org/react-app-polyfill/-/react-app-polyfill-3.0.0.tgz",
15577 "integrity": "sha512-sZ41cxiU5llIB003yxxQBYrARBqe0repqPTTYBTmMqTz9szeBbE37BehCE891NZsmdZqqP+xWKdT3eo3vOzN8w==",
15578 "dependencies": {
15579 "core-js": "^3.19.2",
15580 "object-assign": "^4.1.1",
15581 "promise": "^8.1.0",
15582 "raf": "^3.4.1",
15583 "regenerator-runtime": "^0.13.9",
15584 "whatwg-fetch": "^3.6.2"
15585 },
15586 "engines": {
15587 "node": ">=14"
15588 }
15589 },
15590 "node_modules/react-app-polyfill/node_modules/regenerator-runtime": {
15591 "version": "0.13.11",
15592 "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz",
15593 "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg=="
15594 },
15595 "node_modules/react-dev-utils": {
15596 "version": "12.0.1",
15597 "resolved": "https://registry.npmjs.org/react-dev-utils/-/react-dev-utils-12.0.1.tgz",
15598 "integrity": "sha512-84Ivxmr17KjUupyqzFode6xKhjwuEJDROWKJy/BthkL7Wn6NJ8h4WE6k/exAv6ImS+0oZLRRW5j/aINMHyeGeQ==",
15599 "dependencies": {
15600 "@babel/code-frame": "^7.16.0",
15601 "address": "^1.1.2",
15602 "browserslist": "^4.18.1",
15603 "chalk": "^4.1.2",
15604 "cross-spawn": "^7.0.3",
15605 "detect-port-alt": "^1.1.6",
15606 "escape-string-regexp": "^4.0.0",
15607 "filesize": "^8.0.6",
15608 "find-up": "^5.0.0",
15609 "fork-ts-checker-webpack-plugin": "^6.5.0",
15610 "global-modules": "^2.0.0",
15611 "globby": "^11.0.4",
15612 "gzip-size": "^6.0.0",
15613 "immer": "^9.0.7",
15614 "is-root": "^2.1.0",
15615 "loader-utils": "^3.2.0",
15616 "open": "^8.4.0",
15617 "pkg-up": "^3.1.0",
15618 "prompts": "^2.4.2",
15619 "react-error-overlay": "^6.0.11",
15620 "recursive-readdir": "^2.2.2",
15621 "shell-quote": "^1.7.3",
15622 "strip-ansi": "^6.0.1",
15623 "text-table": "^0.2.0"
15624 },
15625 "engines": {
15626 "node": ">=14"
15627 }
15628 },
15629 "node_modules/react-dev-utils/node_modules/ansi-styles": {
15630 "version": "4.3.0",
15631 "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
15632 "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
15633 "dependencies": {
15634 "color-convert": "^2.0.1"
15635 },
15636 "engines": {
15637 "node": ">=8"
15638 },
15639 "funding": {
15640 "url": "https://github.com/chalk/ansi-styles?sponsor=1"
15641 }
15642 },
15643 "node_modules/react-dev-utils/node_modules/chalk": {
15644 "version": "4.1.2",
15645 "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
15646 "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
15647 "dependencies": {
15648 "ansi-styles": "^4.1.0",
15649 "supports-color": "^7.1.0"
15650 },
15651 "engines": {
15652 "node": ">=10"
15653 },
15654 "funding": {
15655 "url": "https://github.com/chalk/chalk?sponsor=1"
15656 }
15657 },
15658 "node_modules/react-dev-utils/node_modules/color-convert": {
15659 "version": "2.0.1",
15660 "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
15661 "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
15662 "dependencies": {
15663 "color-name": "~1.1.4"
15664 },
15665 "engines": {
15666 "node": ">=7.0.0"
15667 }
15668 },
15669 "node_modules/react-dev-utils/node_modules/color-name": {
15670 "version": "1.1.4",
15671 "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
15672 "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
15673 },
15674 "node_modules/react-dev-utils/node_modules/escape-string-regexp": {
15675 "version": "4.0.0",
15676 "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
15677 "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
15678 "engines": {
15679 "node": ">=10"
15680 },
15681 "funding": {
15682 "url": "https://github.com/sponsors/sindresorhus"
15683 }
15684 },
15685 "node_modules/react-dev-utils/node_modules/find-up": {
15686 "version": "5.0.0",
15687 "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz",
15688 "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==",
15689 "dependencies": {
15690 "locate-path": "^6.0.0",
15691 "path-exists": "^4.0.0"
15692 },
15693 "engines": {
15694 "node": ">=10"
15695 },
15696 "funding": {
15697 "url": "https://github.com/sponsors/sindresorhus"
15698 }
15699 },
15700 "node_modules/react-dev-utils/node_modules/has-flag": {
15701 "version": "4.0.0",
15702 "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
15703 "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
15704 "engines": {
15705 "node": ">=8"
15706 }
15707 },
15708 "node_modules/react-dev-utils/node_modules/loader-utils": {
15709 "version": "3.3.1",
15710 "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-3.3.1.tgz",
15711 "integrity": "sha512-FMJTLMXfCLMLfJxcX9PFqX5qD88Z5MRGaZCVzfuqeZSPsyiBzs+pahDQjbIWz2QIzPZz0NX9Zy4FX3lmK6YHIg==",
15712 "engines": {
15713 "node": ">= 12.13.0"
15714 }
15715 },
15716 "node_modules/react-dev-utils/node_modules/locate-path": {
15717 "version": "6.0.0",
15718 "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz",
15719 "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==",
15720 "dependencies": {
15721 "p-locate": "^5.0.0"
15722 },
15723 "engines": {
15724 "node": ">=10"
15725 },
15726 "funding": {
15727 "url": "https://github.com/sponsors/sindresorhus"
15728 }
15729 },
15730 "node_modules/react-dev-utils/node_modules/p-limit": {
15731 "version": "3.1.0",
15732 "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
15733 "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
15734 "dependencies": {
15735 "yocto-queue": "^0.1.0"
15736 },
15737 "engines": {
15738 "node": ">=10"
15739 },
15740 "funding": {
15741 "url": "https://github.com/sponsors/sindresorhus"
15742 }
15743 },
15744 "node_modules/react-dev-utils/node_modules/p-locate": {
15745 "version": "5.0.0",
15746 "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz",
15747 "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==",
15748 "dependencies": {
15749 "p-limit": "^3.0.2"
15750 },
15751 "engines": {
15752 "node": ">=10"
15753 },
15754 "funding": {
15755 "url": "https://github.com/sponsors/sindresorhus"
15756 }
15757 },
15758 "node_modules/react-dev-utils/node_modules/supports-color": {
15759 "version": "7.2.0",
15760 "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
15761 "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
15762 "dependencies": {
15763 "has-flag": "^4.0.0"
15764 },
15765 "engines": {
15766 "node": ">=8"
15767 }
15768 },
15769 "node_modules/react-dom": { 4172 "node_modules/react-dom": {
15770 "version": "18.3.1", 4173 "version": "18.3.1",
15771 "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", 4174 "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz",
15772 "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", 4175 "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==",
4176 "license": "MIT",
15773 "dependencies": { 4177 "dependencies": {
15774 "loose-envify": "^1.1.0", 4178 "loose-envify": "^1.1.0",
15775 "scheduler": "^0.23.2" 4179 "scheduler": "^0.23.2"
@@ -15778,20 +4182,17 @@
15778 "react": "^18.3.1" 4182 "react": "^18.3.1"
15779 } 4183 }
15780 }, 4184 },
15781 "node_modules/react-error-overlay": {
15782 "version": "6.0.11",
15783 "resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.11.tgz",
15784 "integrity": "sha512-/6UZ2qgEyH2aqzYZgQPxEnz33NJ2gNsnHA2o5+o4wW9bLM/JYQitNP9xPhsXwC08hMMovfGe/8retsdDsczPRg=="
15785 },
15786 "node_modules/react-fast-compare": { 4185 "node_modules/react-fast-compare": {
15787 "version": "3.2.2", 4186 "version": "3.2.2",
15788 "resolved": "https://registry.npmjs.org/react-fast-compare/-/react-fast-compare-3.2.2.tgz", 4187 "resolved": "https://registry.npmjs.org/react-fast-compare/-/react-fast-compare-3.2.2.tgz",
15789 "integrity": "sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ==" 4188 "integrity": "sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ==",
4189 "license": "MIT"
15790 }, 4190 },
15791 "node_modules/react-helmet": { 4191 "node_modules/react-helmet": {
15792 "version": "6.1.0", 4192 "version": "6.1.0",
15793 "resolved": "https://registry.npmjs.org/react-helmet/-/react-helmet-6.1.0.tgz", 4193 "resolved": "https://registry.npmjs.org/react-helmet/-/react-helmet-6.1.0.tgz",
15794 "integrity": "sha512-4uMzEY9nlDlgxr61NL3XbKRy1hEkXmKNXhjbAIOVw5vcFrsdYbH2FEwcNyWvWinl103nXgzYNlns9ca+8kFiWw==", 4194 "integrity": "sha512-4uMzEY9nlDlgxr61NL3XbKRy1hEkXmKNXhjbAIOVw5vcFrsdYbH2FEwcNyWvWinl103nXgzYNlns9ca+8kFiWw==",
4195 "license": "MIT",
15795 "dependencies": { 4196 "dependencies": {
15796 "object-assign": "^4.1.1", 4197 "object-assign": "^4.1.1",
15797 "prop-types": "^15.7.2", 4198 "prop-types": "^15.7.2",
@@ -15805,12 +4206,14 @@
15805 "node_modules/react-is": { 4206 "node_modules/react-is": {
15806 "version": "17.0.2", 4207 "version": "17.0.2",
15807 "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", 4208 "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz",
15808 "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" 4209 "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==",
4210 "license": "MIT"
15809 }, 4211 },
15810 "node_modules/react-markdown": { 4212 "node_modules/react-markdown": {
15811 "version": "9.0.1", 4213 "version": "9.0.3",
15812 "resolved": "https://registry.npmjs.org/react-markdown/-/react-markdown-9.0.1.tgz", 4214 "resolved": "https://registry.npmjs.org/react-markdown/-/react-markdown-9.0.3.tgz",
15813 "integrity": "sha512-186Gw/vF1uRkydbsOIkcGXw7aHq0sZOCRFFjGrr7b9+nVZg4UfA4enXCaxm4fUzecU38sWfrNDitGhshuU7rdg==", 4215 "integrity": "sha512-Yk7Z94dbgYTOrdk41Z74GoKA7rThnsbbqBTRYuxoe08qvfQ9tJVhmAKw6BJS/ZORG7kTy/s1QvYzSuaoBA1qfw==",
4216 "license": "MIT",
15814 "dependencies": { 4217 "dependencies": {
15815 "@types/hast": "^3.0.0", 4218 "@types/hast": "^3.0.0",
15816 "devlop": "^1.0.0", 4219 "devlop": "^1.0.0",
@@ -15833,19 +4236,21 @@
15833 } 4236 }
15834 }, 4237 },
15835 "node_modules/react-refresh": { 4238 "node_modules/react-refresh": {
15836 "version": "0.11.0", 4239 "version": "0.17.0",
15837 "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.11.0.tgz", 4240 "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.17.0.tgz",
15838 "integrity": "sha512-F27qZr8uUqwhWZboondsPx8tnC3Ct3SxZA3V5WyEvujRyyNv0VYPhoBg1gZ8/MV5tubQp76Trw8lTv9hzRBa+A==", 4241 "integrity": "sha512-z6F7K9bV85EfseRCp2bzrpyQ0Gkw1uLoCel9XBVWPg/TjRj94SkJzUTGfOa4bs7iJvBWtQG0Wq7wnI0syw3EBQ==",
4242 "license": "MIT",
15839 "engines": { 4243 "engines": {
15840 "node": ">=0.10.0" 4244 "node": ">=0.10.0"
15841 } 4245 }
15842 }, 4246 },
15843 "node_modules/react-router": { 4247 "node_modules/react-router": {
15844 "version": "6.26.1", 4248 "version": "6.29.0",
15845 "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.26.1.tgz", 4249 "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.29.0.tgz",
15846 "integrity": "sha512-kIwJveZNwp7teQRI5QmwWo39A5bXRyqpH0COKKmPnyD2vBvDwgFXSqDUYtt1h+FEyfnE8eXr7oe0MxRzVwCcvQ==", 4250 "integrity": "sha512-DXZJoE0q+KyeVw75Ck6GkPxFak63C4fGqZGNijnWgzB/HzSP1ZfTlBj5COaGWwhrMQ/R8bXiq5Ooy4KG+ReyjQ==",
4251 "license": "MIT",
15847 "dependencies": { 4252 "dependencies": {
15848 "@remix-run/router": "1.19.1" 4253 "@remix-run/router": "1.22.0"
15849 }, 4254 },
15850 "engines": { 4255 "engines": {
15851 "node": ">=14.0.0" 4256 "node": ">=14.0.0"
@@ -15855,12 +4260,13 @@
15855 } 4260 }
15856 }, 4261 },
15857 "node_modules/react-router-dom": { 4262 "node_modules/react-router-dom": {
15858 "version": "6.26.1", 4263 "version": "6.29.0",
15859 "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.26.1.tgz", 4264 "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.29.0.tgz",
15860 "integrity": "sha512-veut7m41S1fLql4pLhxeSW3jlqs+4MtjRLj0xvuCEXsxusJCbs6I8yn9BxzzDX2XDgafrccY6hwjmd/bL54tFw==", 4265 "integrity": "sha512-pkEbJPATRJ2iotK+wUwHfy0xs2T59YPEN8BQxVCPeBZvK7kfPESRc/nyxzdcxR17hXgUPYx2whMwl+eo9cUdnQ==",
4266 "license": "MIT",
15861 "dependencies": { 4267 "dependencies": {
15862 "@remix-run/router": "1.19.1", 4268 "@remix-run/router": "1.22.0",
15863 "react-router": "6.26.1" 4269 "react-router": "6.29.0"
15864 }, 4270 },
15865 "engines": { 4271 "engines": {
15866 "node": ">=14.0.0" 4272 "node": ">=14.0.0"
@@ -15870,133 +4276,20 @@
15870 "react-dom": ">=16.8" 4276 "react-dom": ">=16.8"
15871 } 4277 }
15872 }, 4278 },
15873 "node_modules/react-scripts": {
15874 "version": "5.0.1",
15875 "resolved": "https://registry.npmjs.org/react-scripts/-/react-scripts-5.0.1.tgz",
15876 "integrity": "sha512-8VAmEm/ZAwQzJ+GOMLbBsTdDKOpuZh7RPs0UymvBR2vRk4iZWCskjbFnxqjrzoIvlNNRZ3QJFx6/qDSi6zSnaQ==",
15877 "dependencies": {
15878 "@babel/core": "^7.16.0",
15879 "@pmmmwh/react-refresh-webpack-plugin": "^0.5.3",
15880 "@svgr/webpack": "^5.5.0",
15881 "babel-jest": "^27.4.2",
15882 "babel-loader": "^8.2.3",
15883 "babel-plugin-named-asset-import": "^0.3.8",
15884 "babel-preset-react-app": "^10.0.1",
15885 "bfj": "^7.0.2",
15886 "browserslist": "^4.18.1",
15887 "camelcase": "^6.2.1",
15888 "case-sensitive-paths-webpack-plugin": "^2.4.0",
15889 "css-loader": "^6.5.1",
15890 "css-minimizer-webpack-plugin": "^3.2.0",
15891 "dotenv": "^10.0.0",
15892 "dotenv-expand": "^5.1.0",
15893 "eslint": "^8.3.0",
15894 "eslint-config-react-app": "^7.0.1",
15895 "eslint-webpack-plugin": "^3.1.1",
15896 "file-loader": "^6.2.0",
15897 "fs-extra": "^10.0.0",
15898 "html-webpack-plugin": "^5.5.0",
15899 "identity-obj-proxy": "^3.0.0",
15900 "jest": "^27.4.3",
15901 "jest-resolve": "^27.4.2",
15902 "jest-watch-typeahead": "^1.0.0",
15903 "mini-css-extract-plugin": "^2.4.5",
15904 "postcss": "^8.4.4",
15905 "postcss-flexbugs-fixes": "^5.0.2",
15906 "postcss-loader": "^6.2.1",
15907 "postcss-normalize": "^10.0.1",
15908 "postcss-preset-env": "^7.0.1",
15909 "prompts": "^2.4.2",
15910 "react-app-polyfill": "^3.0.0",
15911 "react-dev-utils": "^12.0.1",
15912 "react-refresh": "^0.11.0",
15913 "resolve": "^1.20.0",
15914 "resolve-url-loader": "^4.0.0",
15915 "sass-loader": "^12.3.0",
15916 "semver": "^7.3.5",
15917 "source-map-loader": "^3.0.0",
15918 "style-loader": "^3.3.1",
15919 "tailwindcss": "^3.0.2",
15920 "terser-webpack-plugin": "^5.2.5",
15921 "webpack": "^5.64.4",
15922 "webpack-dev-server": "^4.6.0",
15923 "webpack-manifest-plugin": "^4.0.2",
15924 "workbox-webpack-plugin": "^6.4.1"
15925 },
15926 "bin": {
15927 "react-scripts": "bin/react-scripts.js"
15928 },
15929 "engines": {
15930 "node": ">=14.0.0"
15931 },
15932 "optionalDependencies": {
15933 "fsevents": "^2.3.2"
15934 },
15935 "peerDependencies": {
15936 "react": ">= 16",
15937 "typescript": "^3.2.1 || ^4"
15938 },
15939 "peerDependenciesMeta": {
15940 "typescript": {
15941 "optional": true
15942 }
15943 }
15944 },
15945 "node_modules/react-side-effect": { 4279 "node_modules/react-side-effect": {
15946 "version": "2.1.2", 4280 "version": "2.1.2",
15947 "resolved": "https://registry.npmjs.org/react-side-effect/-/react-side-effect-2.1.2.tgz", 4281 "resolved": "https://registry.npmjs.org/react-side-effect/-/react-side-effect-2.1.2.tgz",
15948 "integrity": "sha512-PVjOcvVOyIILrYoyGEpDN3vmYNLdy1CajSFNt4TDsVQC5KpTijDvWVoR+/7Rz2xT978D8/ZtFceXxzsPwZEDvw==", 4282 "integrity": "sha512-PVjOcvVOyIILrYoyGEpDN3vmYNLdy1CajSFNt4TDsVQC5KpTijDvWVoR+/7Rz2xT978D8/ZtFceXxzsPwZEDvw==",
4283 "license": "MIT",
15949 "peerDependencies": { 4284 "peerDependencies": {
15950 "react": "^16.3.0 || ^17.0.0 || ^18.0.0" 4285 "react": "^16.3.0 || ^17.0.0 || ^18.0.0"
15951 } 4286 }
15952 }, 4287 },
15953 "node_modules/read-cache": {
15954 "version": "1.0.0",
15955 "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz",
15956 "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==",
15957 "dependencies": {
15958 "pify": "^2.3.0"
15959 }
15960 },
15961 "node_modules/readable-stream": {
15962 "version": "3.6.2",
15963 "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
15964 "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
15965 "dependencies": {
15966 "inherits": "^2.0.3",
15967 "string_decoder": "^1.1.1",
15968 "util-deprecate": "^1.0.1"
15969 },
15970 "engines": {
15971 "node": ">= 6"
15972 }
15973 },
15974 "node_modules/readdirp": {
15975 "version": "3.6.0",
15976 "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
15977 "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
15978 "dependencies": {
15979 "picomatch": "^2.2.1"
15980 },
15981 "engines": {
15982 "node": ">=8.10.0"
15983 }
15984 },
15985 "node_modules/recursive-readdir": {
15986 "version": "2.2.3",
15987 "resolved": "https://registry.npmjs.org/recursive-readdir/-/recursive-readdir-2.2.3.tgz",
15988 "integrity": "sha512-8HrF5ZsXk5FAH9dgsx3BlUer73nIhuj+9OrQwEbLTPOBzGkL1lsFCR01am+v+0m2Cmbs1nP12hLDl5FA7EszKA==",
15989 "dependencies": {
15990 "minimatch": "^3.0.5"
15991 },
15992 "engines": {
15993 "node": ">=6.0.0"
15994 }
15995 },
15996 "node_modules/redent": { 4288 "node_modules/redent": {
15997 "version": "3.0.0", 4289 "version": "3.0.0",
15998 "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", 4290 "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz",
15999 "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", 4291 "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==",
4292 "license": "MIT",
16000 "dependencies": { 4293 "dependencies": {
16001 "indent-string": "^4.0.0", 4294 "indent-string": "^4.0.0",
16002 "strip-indent": "^3.0.0" 4295 "strip-indent": "^3.0.0"
@@ -16005,69 +4298,18 @@
16005 "node": ">=8" 4298 "node": ">=8"
16006 } 4299 }
16007 }, 4300 },
16008 "node_modules/reflect.getprototypeof": {
16009 "version": "1.0.6",
16010 "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.6.tgz",
16011 "integrity": "sha512-fmfw4XgoDke3kdI6h4xcUz1dG8uaiv5q9gcEwLS4Pnth2kxT+GZ7YehS1JTMGBQmtV7Y4GFGbs2re2NqhdozUg==",
16012 "dependencies": {
16013 "call-bind": "^1.0.7",
16014 "define-properties": "^1.2.1",
16015 "es-abstract": "^1.23.1",
16016 "es-errors": "^1.3.0",
16017 "get-intrinsic": "^1.2.4",
16018 "globalthis": "^1.0.3",
16019 "which-builtin-type": "^1.1.3"
16020 },
16021 "engines": {
16022 "node": ">= 0.4"
16023 },
16024 "funding": {
16025 "url": "https://github.com/sponsors/ljharb"
16026 }
16027 },
16028 "node_modules/regenerate": {
16029 "version": "1.4.2",
16030 "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz",
16031 "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A=="
16032 },
16033 "node_modules/regenerate-unicode-properties": {
16034 "version": "10.1.1",
16035 "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz",
16036 "integrity": "sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==",
16037 "dependencies": {
16038 "regenerate": "^1.4.2"
16039 },
16040 "engines": {
16041 "node": ">=4"
16042 }
16043 },
16044 "node_modules/regenerator-runtime": {
16045 "version": "0.14.1",
16046 "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz",
16047 "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw=="
16048 },
16049 "node_modules/regenerator-transform": {
16050 "version": "0.15.2",
16051 "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz",
16052 "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==",
16053 "dependencies": {
16054 "@babel/runtime": "^7.8.4"
16055 }
16056 },
16057 "node_modules/regex-parser": {
16058 "version": "2.3.0",
16059 "resolved": "https://registry.npmjs.org/regex-parser/-/regex-parser-2.3.0.tgz",
16060 "integrity": "sha512-TVILVSz2jY5D47F4mA4MppkBrafEaiUWJO/TcZHEIuI13AqoZMkK1WMA4Om1YkYbTx+9Ki1/tSUXbceyr9saRg=="
16061 },
16062 "node_modules/regexp.prototype.flags": { 4301 "node_modules/regexp.prototype.flags": {
16063 "version": "1.5.2", 4302 "version": "1.5.4",
16064 "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz", 4303 "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.4.tgz",
16065 "integrity": "sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==", 4304 "integrity": "sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==",
4305 "license": "MIT",
16066 "dependencies": { 4306 "dependencies": {
16067 "call-bind": "^1.0.6", 4307 "call-bind": "^1.0.8",
16068 "define-properties": "^1.2.1", 4308 "define-properties": "^1.2.1",
16069 "es-errors": "^1.3.0", 4309 "es-errors": "^1.3.0",
16070 "set-function-name": "^2.0.1" 4310 "get-proto": "^1.0.1",
4311 "gopd": "^1.2.0",
4312 "set-function-name": "^2.0.2"
16071 }, 4313 },
16072 "engines": { 4314 "engines": {
16073 "node": ">= 0.4" 4315 "node": ">= 0.4"
@@ -16076,53 +4318,11 @@
16076 "url": "https://github.com/sponsors/ljharb" 4318 "url": "https://github.com/sponsors/ljharb"
16077 } 4319 }
16078 }, 4320 },
16079 "node_modules/regexpu-core": {
16080 "version": "5.3.2",
16081 "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz",
16082 "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==",
16083 "dependencies": {
16084 "@babel/regjsgen": "^0.8.0",
16085 "regenerate": "^1.4.2",
16086 "regenerate-unicode-properties": "^10.1.0",
16087 "regjsparser": "^0.9.1",
16088 "unicode-match-property-ecmascript": "^2.0.0",
16089 "unicode-match-property-value-ecmascript": "^2.1.0"
16090 },
16091 "engines": {
16092 "node": ">=4"
16093 }
16094 },
16095 "node_modules/regjsparser": {
16096 "version": "0.9.1",
16097 "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz",
16098 "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==",
16099 "dependencies": {
16100 "jsesc": "~0.5.0"
16101 },
16102 "bin": {
16103 "regjsparser": "bin/parser"
16104 }
16105 },
16106 "node_modules/regjsparser/node_modules/jsesc": {
16107 "version": "0.5.0",
16108 "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz",
16109 "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==",
16110 "bin": {
16111 "jsesc": "bin/jsesc"
16112 }
16113 },
16114 "node_modules/relateurl": {
16115 "version": "0.2.7",
16116 "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz",
16117 "integrity": "sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==",
16118 "engines": {
16119 "node": ">= 0.10"
16120 }
16121 },
16122 "node_modules/remark-parse": { 4321 "node_modules/remark-parse": {
16123 "version": "11.0.0", 4322 "version": "11.0.0",
16124 "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-11.0.0.tgz", 4323 "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-11.0.0.tgz",
16125 "integrity": "sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==", 4324 "integrity": "sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==",
4325 "license": "MIT",
16126 "dependencies": { 4326 "dependencies": {
16127 "@types/mdast": "^4.0.0", 4327 "@types/mdast": "^4.0.0",
16128 "mdast-util-from-markdown": "^2.0.0", 4328 "mdast-util-from-markdown": "^2.0.0",
@@ -16135,9 +4335,10 @@
16135 } 4335 }
16136 }, 4336 },
16137 "node_modules/remark-rehype": { 4337 "node_modules/remark-rehype": {
16138 "version": "11.1.0", 4338 "version": "11.1.1",
16139 "resolved": "https://registry.npmjs.org/remark-rehype/-/remark-rehype-11.1.0.tgz", 4339 "resolved": "https://registry.npmjs.org/remark-rehype/-/remark-rehype-11.1.1.tgz",
16140 "integrity": "sha512-z3tJrAs2kIs1AqIIy6pzHmAHlF1hWQ+OdY4/hv+Wxe35EhyLKcajL33iUEn3ScxtFox9nUvRufR/Zre8Q08H/g==", 4340 "integrity": "sha512-g/osARvjkBXb6Wo0XvAeXQohVta8i84ACbenPpoSsxTOQH/Ae0/RGP4WZgnMH5pMLpsj4FG7OHmcIcXxpza8eQ==",
4341 "license": "MIT",
16141 "dependencies": { 4342 "dependencies": {
16142 "@types/hast": "^3.0.0", 4343 "@types/hast": "^3.0.0",
16143 "@types/mdast": "^4.0.0", 4344 "@types/mdast": "^4.0.0",
@@ -16150,310 +4351,54 @@
16150 "url": "https://opencollective.com/unified" 4351 "url": "https://opencollective.com/unified"
16151 } 4352 }
16152 }, 4353 },
16153 "node_modules/renderkid": { 4354 "node_modules/rollup": {
16154 "version": "3.0.0", 4355 "version": "4.46.2",
16155 "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-3.0.0.tgz", 4356 "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.46.2.tgz",
16156 "integrity": "sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg==", 4357 "integrity": "sha512-WMmLFI+Boh6xbop+OAGo9cQ3OgX9MIg7xOQjn+pTCwOkk+FNDAeAemXkJ3HzDJrVXleLOFVa1ipuc1AmEx1Dwg==",
16157 "dependencies": { 4358 "license": "MIT",
16158 "css-select": "^4.1.3",
16159 "dom-converter": "^0.2.0",
16160 "htmlparser2": "^6.1.0",
16161 "lodash": "^4.17.21",
16162 "strip-ansi": "^6.0.1"
16163 }
16164 },
16165 "node_modules/require-directory": {
16166 "version": "2.1.1",
16167 "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
16168 "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==",
16169 "engines": {
16170 "node": ">=0.10.0"
16171 }
16172 },
16173 "node_modules/require-from-string": {
16174 "version": "2.0.2",
16175 "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz",
16176 "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==",
16177 "engines": {
16178 "node": ">=0.10.0"
16179 }
16180 },
16181 "node_modules/requires-port": {
16182 "version": "1.0.0",
16183 "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz",
16184 "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ=="
16185 },
16186 "node_modules/resolve": {
16187 "version": "1.22.8",
16188 "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz",
16189 "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==",
16190 "dependencies": {
16191 "is-core-module": "^2.13.0",
16192 "path-parse": "^1.0.7",
16193 "supports-preserve-symlinks-flag": "^1.0.0"
16194 },
16195 "bin": {
16196 "resolve": "bin/resolve"
16197 },
16198 "funding": {
16199 "url": "https://github.com/sponsors/ljharb"
16200 }
16201 },
16202 "node_modules/resolve-cwd": {
16203 "version": "3.0.0",
16204 "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz",
16205 "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==",
16206 "dependencies": {
16207 "resolve-from": "^5.0.0"
16208 },
16209 "engines": {
16210 "node": ">=8"
16211 }
16212 },
16213 "node_modules/resolve-from": {
16214 "version": "5.0.0",
16215 "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz",
16216 "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==",
16217 "engines": {
16218 "node": ">=8"
16219 }
16220 },
16221 "node_modules/resolve-url-loader": {
16222 "version": "4.0.0",
16223 "resolved": "https://registry.npmjs.org/resolve-url-loader/-/resolve-url-loader-4.0.0.tgz",
16224 "integrity": "sha512-05VEMczVREcbtT7Bz+C+96eUO5HDNvdthIiMB34t7FcF8ehcu4wC0sSgPUubs3XW2Q3CNLJk/BJrCU9wVRymiA==",
16225 "dependencies": {
16226 "adjust-sourcemap-loader": "^4.0.0",
16227 "convert-source-map": "^1.7.0",
16228 "loader-utils": "^2.0.0",
16229 "postcss": "^7.0.35",
16230 "source-map": "0.6.1"
16231 },
16232 "engines": {
16233 "node": ">=8.9"
16234 },
16235 "peerDependencies": {
16236 "rework": "1.0.1",
16237 "rework-visit": "1.0.0"
16238 },
16239 "peerDependenciesMeta": {
16240 "rework": {
16241 "optional": true
16242 },
16243 "rework-visit": {
16244 "optional": true
16245 }
16246 }
16247 },
16248 "node_modules/resolve-url-loader/node_modules/convert-source-map": {
16249 "version": "1.9.0",
16250 "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz",
16251 "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A=="
16252 },
16253 "node_modules/resolve-url-loader/node_modules/picocolors": {
16254 "version": "0.2.1",
16255 "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz",
16256 "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA=="
16257 },
16258 "node_modules/resolve-url-loader/node_modules/postcss": {
16259 "version": "7.0.39",
16260 "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz",
16261 "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==",
16262 "dependencies": {
16263 "picocolors": "^0.2.1",
16264 "source-map": "^0.6.1"
16265 },
16266 "engines": {
16267 "node": ">=6.0.0"
16268 },
16269 "funding": {
16270 "type": "opencollective",
16271 "url": "https://opencollective.com/postcss/"
16272 }
16273 },
16274 "node_modules/resolve-url-loader/node_modules/source-map": {
16275 "version": "0.6.1",
16276 "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
16277 "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
16278 "engines": {
16279 "node": ">=0.10.0"
16280 }
16281 },
16282 "node_modules/resolve.exports": {
16283 "version": "1.1.1",
16284 "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-1.1.1.tgz",
16285 "integrity": "sha512-/NtpHNDN7jWhAaQ9BvBUYZ6YTXsRBgfqWFWP7BZBaoMJO/I3G5OFzvTuWNlZC3aPjins1F+TNrLKsGbH4rfsRQ==",
16286 "engines": {
16287 "node": ">=10"
16288 }
16289 },
16290 "node_modules/retry": {
16291 "version": "0.13.1",
16292 "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz",
16293 "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==",
16294 "engines": {
16295 "node": ">= 4"
16296 }
16297 },
16298 "node_modules/reusify": {
16299 "version": "1.0.4",
16300 "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz",
16301 "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==",
16302 "engines": {
16303 "iojs": ">=1.0.0",
16304 "node": ">=0.10.0"
16305 }
16306 },
16307 "node_modules/rimraf": {
16308 "version": "3.0.2",
16309 "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
16310 "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
16311 "deprecated": "Rimraf versions prior to v4 are no longer supported",
16312 "dependencies": { 4359 "dependencies": {
16313 "glob": "^7.1.3" 4360 "@types/estree": "1.0.8"
16314 }, 4361 },
16315 "bin": { 4362 "bin": {
16316 "rimraf": "bin.js"
16317 },
16318 "funding": {
16319 "url": "https://github.com/sponsors/isaacs"
16320 }
16321 },
16322 "node_modules/rollup": {
16323 "version": "2.79.1",
16324 "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.79.1.tgz",
16325 "integrity": "sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==",
16326 "bin": {
16327 "rollup": "dist/bin/rollup" 4363 "rollup": "dist/bin/rollup"
16328 }, 4364 },
16329 "engines": { 4365 "engines": {
16330 "node": ">=10.0.0" 4366 "node": ">=18.0.0",
4367 "npm": ">=8.0.0"
16331 }, 4368 },
16332 "optionalDependencies": { 4369 "optionalDependencies": {
4370 "@rollup/rollup-android-arm-eabi": "4.46.2",
4371 "@rollup/rollup-android-arm64": "4.46.2",
4372 "@rollup/rollup-darwin-arm64": "4.46.2",
4373 "@rollup/rollup-darwin-x64": "4.46.2",
4374 "@rollup/rollup-freebsd-arm64": "4.46.2",
4375 "@rollup/rollup-freebsd-x64": "4.46.2",
4376 "@rollup/rollup-linux-arm-gnueabihf": "4.46.2",
4377 "@rollup/rollup-linux-arm-musleabihf": "4.46.2",
4378 "@rollup/rollup-linux-arm64-gnu": "4.46.2",
4379 "@rollup/rollup-linux-arm64-musl": "4.46.2",
4380 "@rollup/rollup-linux-loongarch64-gnu": "4.46.2",
4381 "@rollup/rollup-linux-ppc64-gnu": "4.46.2",
4382 "@rollup/rollup-linux-riscv64-gnu": "4.46.2",
4383 "@rollup/rollup-linux-riscv64-musl": "4.46.2",
4384 "@rollup/rollup-linux-s390x-gnu": "4.46.2",
4385 "@rollup/rollup-linux-x64-gnu": "4.46.2",
4386 "@rollup/rollup-linux-x64-musl": "4.46.2",
4387 "@rollup/rollup-win32-arm64-msvc": "4.46.2",
4388 "@rollup/rollup-win32-ia32-msvc": "4.46.2",
4389 "@rollup/rollup-win32-x64-msvc": "4.46.2",
16333 "fsevents": "~2.3.2" 4390 "fsevents": "~2.3.2"
16334 } 4391 }
16335 }, 4392 },
16336 "node_modules/rollup-plugin-terser": {
16337 "version": "7.0.2",
16338 "resolved": "https://registry.npmjs.org/rollup-plugin-terser/-/rollup-plugin-terser-7.0.2.tgz",
16339 "integrity": "sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ==",
16340 "deprecated": "This package has been deprecated and is no longer maintained. Please use @rollup/plugin-terser",
16341 "dependencies": {
16342 "@babel/code-frame": "^7.10.4",
16343 "jest-worker": "^26.2.1",
16344 "serialize-javascript": "^4.0.0",
16345 "terser": "^5.0.0"
16346 },
16347 "peerDependencies": {
16348 "rollup": "^2.0.0"
16349 }
16350 },
16351 "node_modules/rollup-plugin-terser/node_modules/has-flag": {
16352 "version": "4.0.0",
16353 "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
16354 "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
16355 "engines": {
16356 "node": ">=8"
16357 }
16358 },
16359 "node_modules/rollup-plugin-terser/node_modules/jest-worker": {
16360 "version": "26.6.2",
16361 "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz",
16362 "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==",
16363 "dependencies": {
16364 "@types/node": "*",
16365 "merge-stream": "^2.0.0",
16366 "supports-color": "^7.0.0"
16367 },
16368 "engines": {
16369 "node": ">= 10.13.0"
16370 }
16371 },
16372 "node_modules/rollup-plugin-terser/node_modules/serialize-javascript": {
16373 "version": "4.0.0",
16374 "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz",
16375 "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==",
16376 "dependencies": {
16377 "randombytes": "^2.1.0"
16378 }
16379 },
16380 "node_modules/rollup-plugin-terser/node_modules/supports-color": {
16381 "version": "7.2.0",
16382 "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
16383 "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
16384 "dependencies": {
16385 "has-flag": "^4.0.0"
16386 },
16387 "engines": {
16388 "node": ">=8"
16389 }
16390 },
16391 "node_modules/run-parallel": {
16392 "version": "1.2.0",
16393 "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
16394 "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
16395 "funding": [
16396 {
16397 "type": "github",
16398 "url": "https://github.com/sponsors/feross"
16399 },
16400 {
16401 "type": "patreon",
16402 "url": "https://www.patreon.com/feross"
16403 },
16404 {
16405 "type": "consulting",
16406 "url": "https://feross.org/support"
16407 }
16408 ],
16409 "dependencies": {
16410 "queue-microtask": "^1.2.2"
16411 }
16412 },
16413 "node_modules/safe-array-concat": {
16414 "version": "1.1.2",
16415 "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.2.tgz",
16416 "integrity": "sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==",
16417 "dependencies": {
16418 "call-bind": "^1.0.7",
16419 "get-intrinsic": "^1.2.4",
16420 "has-symbols": "^1.0.3",
16421 "isarray": "^2.0.5"
16422 },
16423 "engines": {
16424 "node": ">=0.4"
16425 },
16426 "funding": {
16427 "url": "https://github.com/sponsors/ljharb"
16428 }
16429 },
16430 "node_modules/safe-buffer": {
16431 "version": "5.2.1",
16432 "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
16433 "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
16434 "funding": [
16435 {
16436 "type": "github",
16437 "url": "https://github.com/sponsors/feross"
16438 },
16439 {
16440 "type": "patreon",
16441 "url": "https://www.patreon.com/feross"
16442 },
16443 {
16444 "type": "consulting",
16445 "url": "https://feross.org/support"
16446 }
16447 ]
16448 },
16449 "node_modules/safe-regex-test": { 4393 "node_modules/safe-regex-test": {
16450 "version": "1.0.3", 4394 "version": "1.1.0",
16451 "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.3.tgz", 4395 "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.1.0.tgz",
16452 "integrity": "sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==", 4396 "integrity": "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==",
4397 "license": "MIT",
16453 "dependencies": { 4398 "dependencies": {
16454 "call-bind": "^1.0.6", 4399 "call-bound": "^1.0.2",
16455 "es-errors": "^1.3.0", 4400 "es-errors": "^1.3.0",
16456 "is-regex": "^1.1.4" 4401 "is-regex": "^1.2.1"
16457 }, 4402 },
16458 "engines": { 4403 "engines": {
16459 "node": ">= 0.4" 4404 "node": ">= 0.4"
@@ -16462,291 +4407,29 @@
16462 "url": "https://github.com/sponsors/ljharb" 4407 "url": "https://github.com/sponsors/ljharb"
16463 } 4408 }
16464 }, 4409 },
16465 "node_modules/safer-buffer": {
16466 "version": "2.1.2",
16467 "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
16468 "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
16469 },
16470 "node_modules/sanitize.css": {
16471 "version": "13.0.0",
16472 "resolved": "https://registry.npmjs.org/sanitize.css/-/sanitize.css-13.0.0.tgz",
16473 "integrity": "sha512-ZRwKbh/eQ6w9vmTjkuG0Ioi3HBwPFce0O+v//ve+aOq1oeCy7jMV2qzzAlpsNuqpqCBjjriM1lbtZbF/Q8jVyA=="
16474 },
16475 "node_modules/sass-loader": {
16476 "version": "12.6.0",
16477 "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-12.6.0.tgz",
16478 "integrity": "sha512-oLTaH0YCtX4cfnJZxKSLAyglED0naiYfNG1iXfU5w1LNZ+ukoA5DtyDIN5zmKVZwYNJP4KRc5Y3hkWga+7tYfA==",
16479 "dependencies": {
16480 "klona": "^2.0.4",
16481 "neo-async": "^2.6.2"
16482 },
16483 "engines": {
16484 "node": ">= 12.13.0"
16485 },
16486 "funding": {
16487 "type": "opencollective",
16488 "url": "https://opencollective.com/webpack"
16489 },
16490 "peerDependencies": {
16491 "fibers": ">= 3.1.0",
16492 "node-sass": "^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0",
16493 "sass": "^1.3.0",
16494 "sass-embedded": "*",
16495 "webpack": "^5.0.0"
16496 },
16497 "peerDependenciesMeta": {
16498 "fibers": {
16499 "optional": true
16500 },
16501 "node-sass": {
16502 "optional": true
16503 },
16504 "sass": {
16505 "optional": true
16506 },
16507 "sass-embedded": {
16508 "optional": true
16509 }
16510 }
16511 },
16512 "node_modules/sax": {
16513 "version": "1.2.4",
16514 "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz",
16515 "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw=="
16516 },
16517 "node_modules/saxes": {
16518 "version": "5.0.1",
16519 "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz",
16520 "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==",
16521 "dependencies": {
16522 "xmlchars": "^2.2.0"
16523 },
16524 "engines": {
16525 "node": ">=10"
16526 }
16527 },
16528 "node_modules/scheduler": { 4410 "node_modules/scheduler": {
16529 "version": "0.23.2", 4411 "version": "0.23.2",
16530 "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", 4412 "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz",
16531 "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", 4413 "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==",
4414 "license": "MIT",
16532 "dependencies": { 4415 "dependencies": {
16533 "loose-envify": "^1.1.0" 4416 "loose-envify": "^1.1.0"
16534 } 4417 }
16535 }, 4418 },
16536 "node_modules/schema-utils": {
16537 "version": "4.2.0",
16538 "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz",
16539 "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==",
16540 "dependencies": {
16541 "@types/json-schema": "^7.0.9",
16542 "ajv": "^8.9.0",
16543 "ajv-formats": "^2.1.1",
16544 "ajv-keywords": "^5.1.0"
16545 },
16546 "engines": {
16547 "node": ">= 12.13.0"
16548 },
16549 "funding": {
16550 "type": "opencollective",
16551 "url": "https://opencollective.com/webpack"
16552 }
16553 },
16554 "node_modules/schema-utils/node_modules/ajv": {
16555 "version": "8.17.1",
16556 "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz",
16557 "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==",
16558 "dependencies": {
16559 "fast-deep-equal": "^3.1.3",
16560 "fast-uri": "^3.0.1",
16561 "json-schema-traverse": "^1.0.0",
16562 "require-from-string": "^2.0.2"
16563 },
16564 "funding": {
16565 "type": "github",
16566 "url": "https://github.com/sponsors/epoberezkin"
16567 }
16568 },
16569 "node_modules/schema-utils/node_modules/ajv-keywords": {
16570 "version": "5.1.0",
16571 "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz",
16572 "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==",
16573 "dependencies": {
16574 "fast-deep-equal": "^3.1.3"
16575 },
16576 "peerDependencies": {
16577 "ajv": "^8.8.2"
16578 }
16579 },
16580 "node_modules/schema-utils/node_modules/json-schema-traverse": {
16581 "version": "1.0.0",
16582 "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
16583 "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug=="
16584 },
16585 "node_modules/select-hose": {
16586 "version": "2.0.0",
16587 "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz",
16588 "integrity": "sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg=="
16589 },
16590 "node_modules/selfsigned": {
16591 "version": "2.4.1",
16592 "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.4.1.tgz",
16593 "integrity": "sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==",
16594 "dependencies": {
16595 "@types/node-forge": "^1.3.0",
16596 "node-forge": "^1"
16597 },
16598 "engines": {
16599 "node": ">=10"
16600 }
16601 },
16602 "node_modules/semver": { 4419 "node_modules/semver": {
16603 "version": "7.6.3", 4420 "version": "6.3.1",
16604 "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", 4421 "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
16605 "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", 4422 "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
4423 "license": "ISC",
16606 "bin": { 4424 "bin": {
16607 "semver": "bin/semver.js" 4425 "semver": "bin/semver.js"
16608 },
16609 "engines": {
16610 "node": ">=10"
16611 }
16612 },
16613 "node_modules/send": {
16614 "version": "0.18.0",
16615 "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz",
16616 "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==",
16617 "dependencies": {
16618 "debug": "2.6.9",
16619 "depd": "2.0.0",
16620 "destroy": "1.2.0",
16621 "encodeurl": "~1.0.2",
16622 "escape-html": "~1.0.3",
16623 "etag": "~1.8.1",
16624 "fresh": "0.5.2",
16625 "http-errors": "2.0.0",
16626 "mime": "1.6.0",
16627 "ms": "2.1.3",
16628 "on-finished": "2.4.1",
16629 "range-parser": "~1.2.1",
16630 "statuses": "2.0.1"
16631 },
16632 "engines": {
16633 "node": ">= 0.8.0"
16634 }
16635 },
16636 "node_modules/send/node_modules/debug": {
16637 "version": "2.6.9",
16638 "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
16639 "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
16640 "dependencies": {
16641 "ms": "2.0.0"
16642 }
16643 },
16644 "node_modules/send/node_modules/debug/node_modules/ms": {
16645 "version": "2.0.0",
16646 "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
16647 "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
16648 },
16649 "node_modules/send/node_modules/ms": {
16650 "version": "2.1.3",
16651 "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
16652 "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
16653 },
16654 "node_modules/serialize-javascript": {
16655 "version": "6.0.2",
16656 "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz",
16657 "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==",
16658 "dependencies": {
16659 "randombytes": "^2.1.0"
16660 }
16661 },
16662 "node_modules/serve-index": {
16663 "version": "1.9.1",
16664 "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz",
16665 "integrity": "sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==",
16666 "dependencies": {
16667 "accepts": "~1.3.4",
16668 "batch": "0.6.1",
16669 "debug": "2.6.9",
16670 "escape-html": "~1.0.3",
16671 "http-errors": "~1.6.2",
16672 "mime-types": "~2.1.17",
16673 "parseurl": "~1.3.2"
16674 },
16675 "engines": {
16676 "node": ">= 0.8.0"
16677 }
16678 },
16679 "node_modules/serve-index/node_modules/debug": {
16680 "version": "2.6.9",
16681 "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
16682 "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
16683 "dependencies": {
16684 "ms": "2.0.0"
16685 }
16686 },
16687 "node_modules/serve-index/node_modules/depd": {
16688 "version": "1.1.2",
16689 "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
16690 "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==",
16691 "engines": {
16692 "node": ">= 0.6"
16693 }
16694 },
16695 "node_modules/serve-index/node_modules/http-errors": {
16696 "version": "1.6.3",
16697 "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz",
16698 "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==",
16699 "dependencies": {
16700 "depd": "~1.1.2",
16701 "inherits": "2.0.3",
16702 "setprototypeof": "1.1.0",
16703 "statuses": ">= 1.4.0 < 2"
16704 },
16705 "engines": {
16706 "node": ">= 0.6"
16707 }
16708 },
16709 "node_modules/serve-index/node_modules/inherits": {
16710 "version": "2.0.3",
16711 "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
16712 "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw=="
16713 },
16714 "node_modules/serve-index/node_modules/ms": {
16715 "version": "2.0.0",
16716 "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
16717 "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
16718 },
16719 "node_modules/serve-index/node_modules/setprototypeof": {
16720 "version": "1.1.0",
16721 "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz",
16722 "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ=="
16723 },
16724 "node_modules/serve-index/node_modules/statuses": {
16725 "version": "1.5.0",
16726 "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
16727 "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==",
16728 "engines": {
16729 "node": ">= 0.6"
16730 }
16731 },
16732 "node_modules/serve-static": {
16733 "version": "1.15.0",
16734 "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz",
16735 "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==",
16736 "dependencies": {
16737 "encodeurl": "~1.0.2",
16738 "escape-html": "~1.0.3",
16739 "parseurl": "~1.3.3",
16740 "send": "0.18.0"
16741 },
16742 "engines": {
16743 "node": ">= 0.8.0"
16744 } 4426 }
16745 }, 4427 },
16746 "node_modules/set-function-length": { 4428 "node_modules/set-function-length": {
16747 "version": "1.2.2", 4429 "version": "1.2.2",
16748 "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", 4430 "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz",
16749 "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", 4431 "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==",
4432 "license": "MIT",
16750 "dependencies": { 4433 "dependencies": {
16751 "define-data-property": "^1.1.4", 4434 "define-data-property": "^1.1.4",
16752 "es-errors": "^1.3.0", 4435 "es-errors": "^1.3.0",
@@ -16763,6 +4446,7 @@
16763 "version": "2.0.2", 4446 "version": "2.0.2",
16764 "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", 4447 "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz",
16765 "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", 4448 "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==",
4449 "license": "MIT",
16766 "dependencies": { 4450 "dependencies": {
16767 "define-data-property": "^1.1.4", 4451 "define-data-property": "^1.1.4",
16768 "es-errors": "^1.3.0", 4452 "es-errors": "^1.3.0",
@@ -16773,60 +4457,33 @@
16773 "node": ">= 0.4" 4457 "node": ">= 0.4"
16774 } 4458 }
16775 }, 4459 },
16776 "node_modules/setprototypeof": { 4460 "node_modules/side-channel": {
16777 "version": "1.2.0", 4461 "version": "1.1.0",
16778 "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", 4462 "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz",
16779 "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" 4463 "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==",
16780 },
16781 "node_modules/shallow-clone": {
16782 "version": "3.0.1",
16783 "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz",
16784 "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==",
16785 "dev": true,
16786 "license": "MIT", 4464 "license": "MIT",
16787 "dependencies": { 4465 "dependencies": {
16788 "kind-of": "^6.0.2" 4466 "es-errors": "^1.3.0",
4467 "object-inspect": "^1.13.3",
4468 "side-channel-list": "^1.0.0",
4469 "side-channel-map": "^1.0.1",
4470 "side-channel-weakmap": "^1.0.2"
16789 }, 4471 },
16790 "engines": { 4472 "engines": {
16791 "node": ">=8" 4473 "node": ">= 0.4"
16792 }
16793 },
16794 "node_modules/shebang-command": {
16795 "version": "2.0.0",
16796 "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
16797 "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
16798 "dependencies": {
16799 "shebang-regex": "^3.0.0"
16800 }, 4474 },
16801 "engines": {
16802 "node": ">=8"
16803 }
16804 },
16805 "node_modules/shebang-regex": {
16806 "version": "3.0.0",
16807 "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
16808 "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
16809 "engines": {
16810 "node": ">=8"
16811 }
16812 },
16813 "node_modules/shell-quote": {
16814 "version": "1.8.1",
16815 "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.1.tgz",
16816 "integrity": "sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==",
16817 "funding": { 4475 "funding": {
16818 "url": "https://github.com/sponsors/ljharb" 4476 "url": "https://github.com/sponsors/ljharb"
16819 } 4477 }
16820 }, 4478 },
16821 "node_modules/side-channel": { 4479 "node_modules/side-channel-list": {
16822 "version": "1.0.6", 4480 "version": "1.0.0",
16823 "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", 4481 "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz",
16824 "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", 4482 "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==",
4483 "license": "MIT",
16825 "dependencies": { 4484 "dependencies": {
16826 "call-bind": "^1.0.7",
16827 "es-errors": "^1.3.0", 4485 "es-errors": "^1.3.0",
16828 "get-intrinsic": "^1.2.4", 4486 "object-inspect": "^1.13.3"
16829 "object-inspect": "^1.13.1"
16830 }, 4487 },
16831 "engines": { 4488 "engines": {
16832 "node": ">= 0.4" 4489 "node": ">= 0.4"
@@ -16835,437 +4492,80 @@
16835 "url": "https://github.com/sponsors/ljharb" 4492 "url": "https://github.com/sponsors/ljharb"
16836 } 4493 }
16837 }, 4494 },
16838 "node_modules/signal-exit": { 4495 "node_modules/side-channel-map": {
16839 "version": "3.0.7", 4496 "version": "1.0.1",
16840 "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", 4497 "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz",
16841 "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" 4498 "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==",
16842 }, 4499 "license": "MIT",
16843 "node_modules/sisteransi": {
16844 "version": "1.0.5",
16845 "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz",
16846 "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg=="
16847 },
16848 "node_modules/slash": {
16849 "version": "3.0.0",
16850 "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
16851 "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
16852 "engines": {
16853 "node": ">=8"
16854 }
16855 },
16856 "node_modules/sockjs": {
16857 "version": "0.3.24",
16858 "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz",
16859 "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==",
16860 "dependencies": { 4500 "dependencies": {
16861 "faye-websocket": "^0.11.3", 4501 "call-bound": "^1.0.2",
16862 "uuid": "^8.3.2", 4502 "es-errors": "^1.3.0",
16863 "websocket-driver": "^0.7.4" 4503 "get-intrinsic": "^1.2.5",
16864 } 4504 "object-inspect": "^1.13.3"
16865 }, 4505 },
16866 "node_modules/source-list-map": {
16867 "version": "2.0.1",
16868 "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz",
16869 "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw=="
16870 },
16871 "node_modules/source-map": {
16872 "version": "0.7.4",
16873 "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz",
16874 "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==",
16875 "engines": {
16876 "node": ">= 8"
16877 }
16878 },
16879 "node_modules/source-map-js": {
16880 "version": "1.2.0",
16881 "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz",
16882 "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==",
16883 "engines": { 4506 "engines": {
16884 "node": ">=0.10.0" 4507 "node": ">= 0.4"
4508 },
4509 "funding": {
4510 "url": "https://github.com/sponsors/ljharb"
16885 } 4511 }
16886 }, 4512 },
16887 "node_modules/source-map-loader": { 4513 "node_modules/side-channel-weakmap": {
16888 "version": "3.0.2", 4514 "version": "1.0.2",
16889 "resolved": "https://registry.npmjs.org/source-map-loader/-/source-map-loader-3.0.2.tgz", 4515 "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz",
16890 "integrity": "sha512-BokxPoLjyl3iOrgkWaakaxqnelAJSS+0V+De0kKIq6lyWrXuiPgYTGp6z3iHmqljKAaLXwZa+ctD8GccRJeVvg==", 4516 "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==",
4517 "license": "MIT",
16891 "dependencies": { 4518 "dependencies": {
16892 "abab": "^2.0.5", 4519 "call-bound": "^1.0.2",
16893 "iconv-lite": "^0.6.3", 4520 "es-errors": "^1.3.0",
16894 "source-map-js": "^1.0.1" 4521 "get-intrinsic": "^1.2.5",
4522 "object-inspect": "^1.13.3",
4523 "side-channel-map": "^1.0.1"
16895 }, 4524 },
16896 "engines": { 4525 "engines": {
16897 "node": ">= 12.13.0" 4526 "node": ">= 0.4"
16898 }, 4527 },
16899 "funding": { 4528 "funding": {
16900 "type": "opencollective", 4529 "url": "https://github.com/sponsors/ljharb"
16901 "url": "https://opencollective.com/webpack"
16902 },
16903 "peerDependencies": {
16904 "webpack": "^5.0.0"
16905 }
16906 },
16907 "node_modules/source-map-support": {
16908 "version": "0.5.21",
16909 "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz",
16910 "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==",
16911 "dependencies": {
16912 "buffer-from": "^1.0.0",
16913 "source-map": "^0.6.0"
16914 } 4530 }
16915 }, 4531 },
16916 "node_modules/source-map-support/node_modules/source-map": { 4532 "node_modules/source-map-js": {
16917 "version": "0.6.1", 4533 "version": "1.2.1",
16918 "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", 4534 "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz",
16919 "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", 4535 "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==",
4536 "license": "BSD-3-Clause",
16920 "engines": { 4537 "engines": {
16921 "node": ">=0.10.0" 4538 "node": ">=0.10.0"
16922 } 4539 }
16923 }, 4540 },
16924 "node_modules/sourcemap-codec": {
16925 "version": "1.4.8",
16926 "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz",
16927 "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==",
16928 "deprecated": "Please use @jridgewell/sourcemap-codec instead"
16929 },
16930 "node_modules/space-separated-tokens": { 4541 "node_modules/space-separated-tokens": {
16931 "version": "2.0.2", 4542 "version": "2.0.2",
16932 "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz", 4543 "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz",
16933 "integrity": "sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==", 4544 "integrity": "sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==",
4545 "license": "MIT",
16934 "funding": { 4546 "funding": {
16935 "type": "github", 4547 "type": "github",
16936 "url": "https://github.com/sponsors/wooorm" 4548 "url": "https://github.com/sponsors/wooorm"
16937 } 4549 }
16938 }, 4550 },
16939 "node_modules/spdy": {
16940 "version": "4.0.2",
16941 "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz",
16942 "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==",
16943 "dependencies": {
16944 "debug": "^4.1.0",
16945 "handle-thing": "^2.0.0",
16946 "http-deceiver": "^1.2.7",
16947 "select-hose": "^2.0.0",
16948 "spdy-transport": "^3.0.0"
16949 },
16950 "engines": {
16951 "node": ">=6.0.0"
16952 }
16953 },
16954 "node_modules/spdy-transport": {
16955 "version": "3.0.0",
16956 "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz",
16957 "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==",
16958 "dependencies": {
16959 "debug": "^4.1.0",
16960 "detect-node": "^2.0.4",
16961 "hpack.js": "^2.1.6",
16962 "obuf": "^1.1.2",
16963 "readable-stream": "^3.0.6",
16964 "wbuf": "^1.7.3"
16965 }
16966 },
16967 "node_modules/sprintf-js": {
16968 "version": "1.0.3",
16969 "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
16970 "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g=="
16971 },
16972 "node_modules/stable": {
16973 "version": "0.1.8",
16974 "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz",
16975 "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==",
16976 "deprecated": "Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility"
16977 },
16978 "node_modules/stack-utils": {
16979 "version": "2.0.6",
16980 "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz",
16981 "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==",
16982 "dependencies": {
16983 "escape-string-regexp": "^2.0.0"
16984 },
16985 "engines": {
16986 "node": ">=10"
16987 }
16988 },
16989 "node_modules/stack-utils/node_modules/escape-string-regexp": {
16990 "version": "2.0.0",
16991 "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz",
16992 "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==",
16993 "engines": {
16994 "node": ">=8"
16995 }
16996 },
16997 "node_modules/stackframe": {
16998 "version": "1.3.4",
16999 "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.3.4.tgz",
17000 "integrity": "sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw=="
17001 },
17002 "node_modules/static-eval": {
17003 "version": "2.0.2",
17004 "resolved": "https://registry.npmjs.org/static-eval/-/static-eval-2.0.2.tgz",
17005 "integrity": "sha512-N/D219Hcr2bPjLxPiV+TQE++Tsmrady7TqAJugLy7Xk1EumfDWS/f5dtBbkRCGE7wKKXuYockQoj8Rm2/pVKyg==",
17006 "dependencies": {
17007 "escodegen": "^1.8.1"
17008 }
17009 },
17010 "node_modules/static-eval/node_modules/escodegen": {
17011 "version": "1.14.3",
17012 "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz",
17013 "integrity": "sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==",
17014 "dependencies": {
17015 "esprima": "^4.0.1",
17016 "estraverse": "^4.2.0",
17017 "esutils": "^2.0.2",
17018 "optionator": "^0.8.1"
17019 },
17020 "bin": {
17021 "escodegen": "bin/escodegen.js",
17022 "esgenerate": "bin/esgenerate.js"
17023 },
17024 "engines": {
17025 "node": ">=4.0"
17026 },
17027 "optionalDependencies": {
17028 "source-map": "~0.6.1"
17029 }
17030 },
17031 "node_modules/static-eval/node_modules/estraverse": {
17032 "version": "4.3.0",
17033 "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz",
17034 "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==",
17035 "engines": {
17036 "node": ">=4.0"
17037 }
17038 },
17039 "node_modules/static-eval/node_modules/levn": {
17040 "version": "0.3.0",
17041 "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz",
17042 "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==",
17043 "dependencies": {
17044 "prelude-ls": "~1.1.2",
17045 "type-check": "~0.3.2"
17046 },
17047 "engines": {
17048 "node": ">= 0.8.0"
17049 }
17050 },
17051 "node_modules/static-eval/node_modules/optionator": {
17052 "version": "0.8.3",
17053 "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz",
17054 "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==",
17055 "dependencies": {
17056 "deep-is": "~0.1.3",
17057 "fast-levenshtein": "~2.0.6",
17058 "levn": "~0.3.0",
17059 "prelude-ls": "~1.1.2",
17060 "type-check": "~0.3.2",
17061 "word-wrap": "~1.2.3"
17062 },
17063 "engines": {
17064 "node": ">= 0.8.0"
17065 }
17066 },
17067 "node_modules/static-eval/node_modules/prelude-ls": {
17068 "version": "1.1.2",
17069 "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz",
17070 "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==",
17071 "engines": {
17072 "node": ">= 0.8.0"
17073 }
17074 },
17075 "node_modules/static-eval/node_modules/source-map": {
17076 "version": "0.6.1",
17077 "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
17078 "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
17079 "optional": true,
17080 "engines": {
17081 "node": ">=0.10.0"
17082 }
17083 },
17084 "node_modules/static-eval/node_modules/type-check": {
17085 "version": "0.3.2",
17086 "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz",
17087 "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==",
17088 "dependencies": {
17089 "prelude-ls": "~1.1.2"
17090 },
17091 "engines": {
17092 "node": ">= 0.8.0"
17093 }
17094 },
17095 "node_modules/statuses": {
17096 "version": "2.0.1",
17097 "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz",
17098 "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==",
17099 "engines": {
17100 "node": ">= 0.8"
17101 }
17102 },
17103 "node_modules/stop-iteration-iterator": { 4551 "node_modules/stop-iteration-iterator": {
17104 "version": "1.0.0", 4552 "version": "1.1.0",
17105 "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.0.0.tgz", 4553 "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.1.0.tgz",
17106 "integrity": "sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==", 4554 "integrity": "sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==",
17107 "dependencies": { 4555 "license": "MIT",
17108 "internal-slot": "^1.0.4"
17109 },
17110 "engines": {
17111 "node": ">= 0.4"
17112 }
17113 },
17114 "node_modules/string_decoder": {
17115 "version": "1.3.0",
17116 "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
17117 "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
17118 "dependencies": {
17119 "safe-buffer": "~5.2.0"
17120 }
17121 },
17122 "node_modules/string-length": {
17123 "version": "4.0.2",
17124 "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz",
17125 "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==",
17126 "dependencies": {
17127 "char-regex": "^1.0.2",
17128 "strip-ansi": "^6.0.0"
17129 },
17130 "engines": {
17131 "node": ">=10"
17132 }
17133 },
17134 "node_modules/string-natural-compare": {
17135 "version": "3.0.1",
17136 "resolved": "https://registry.npmjs.org/string-natural-compare/-/string-natural-compare-3.0.1.tgz",
17137 "integrity": "sha512-n3sPwynL1nwKi3WJ6AIsClwBMa0zTi54fn2oLU6ndfTSIO05xaznjSf15PcBZU6FNWbmN5Q6cxT4V5hGvB4taw=="
17138 },
17139 "node_modules/string-width": {
17140 "version": "4.2.3",
17141 "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
17142 "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
17143 "dependencies": {
17144 "emoji-regex": "^8.0.0",
17145 "is-fullwidth-code-point": "^3.0.0",
17146 "strip-ansi": "^6.0.1"
17147 },
17148 "engines": {
17149 "node": ">=8"
17150 }
17151 },
17152 "node_modules/string-width-cjs": {
17153 "name": "string-width",
17154 "version": "4.2.3",
17155 "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
17156 "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
17157 "dependencies": {
17158 "emoji-regex": "^8.0.0",
17159 "is-fullwidth-code-point": "^3.0.0",
17160 "strip-ansi": "^6.0.1"
17161 },
17162 "engines": {
17163 "node": ">=8"
17164 }
17165 },
17166 "node_modules/string-width-cjs/node_modules/emoji-regex": {
17167 "version": "8.0.0",
17168 "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
17169 "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="
17170 },
17171 "node_modules/string-width/node_modules/emoji-regex": {
17172 "version": "8.0.0",
17173 "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
17174 "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="
17175 },
17176 "node_modules/string.prototype.includes": {
17177 "version": "2.0.0",
17178 "resolved": "https://registry.npmjs.org/string.prototype.includes/-/string.prototype.includes-2.0.0.tgz",
17179 "integrity": "sha512-E34CkBgyeqNDcrbU76cDjL5JLcVrtSdYq0MEh/B10r17pRP4ciHLwTgnuLV8Ay6cgEMLkcBkFCKyFZ43YldYzg==",
17180 "dependencies": {
17181 "define-properties": "^1.1.3",
17182 "es-abstract": "^1.17.5"
17183 }
17184 },
17185 "node_modules/string.prototype.matchall": {
17186 "version": "4.0.11",
17187 "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.11.tgz",
17188 "integrity": "sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg==",
17189 "dependencies": { 4556 "dependencies": {
17190 "call-bind": "^1.0.7",
17191 "define-properties": "^1.2.1",
17192 "es-abstract": "^1.23.2",
17193 "es-errors": "^1.3.0", 4557 "es-errors": "^1.3.0",
17194 "es-object-atoms": "^1.0.0", 4558 "internal-slot": "^1.1.0"
17195 "get-intrinsic": "^1.2.4",
17196 "gopd": "^1.0.1",
17197 "has-symbols": "^1.0.3",
17198 "internal-slot": "^1.0.7",
17199 "regexp.prototype.flags": "^1.5.2",
17200 "set-function-name": "^2.0.2",
17201 "side-channel": "^1.0.6"
17202 },
17203 "engines": {
17204 "node": ">= 0.4"
17205 },
17206 "funding": {
17207 "url": "https://github.com/sponsors/ljharb"
17208 }
17209 },
17210 "node_modules/string.prototype.repeat": {
17211 "version": "1.0.0",
17212 "resolved": "https://registry.npmjs.org/string.prototype.repeat/-/string.prototype.repeat-1.0.0.tgz",
17213 "integrity": "sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==",
17214 "dependencies": {
17215 "define-properties": "^1.1.3",
17216 "es-abstract": "^1.17.5"
17217 }
17218 },
17219 "node_modules/string.prototype.trim": {
17220 "version": "1.2.9",
17221 "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz",
17222 "integrity": "sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==",
17223 "dependencies": {
17224 "call-bind": "^1.0.7",
17225 "define-properties": "^1.2.1",
17226 "es-abstract": "^1.23.0",
17227 "es-object-atoms": "^1.0.0"
17228 }, 4559 },
17229 "engines": { 4560 "engines": {
17230 "node": ">= 0.4" 4561 "node": ">= 0.4"
17231 },
17232 "funding": {
17233 "url": "https://github.com/sponsors/ljharb"
17234 }
17235 },
17236 "node_modules/string.prototype.trimend": {
17237 "version": "1.0.8",
17238 "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz",
17239 "integrity": "sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==",
17240 "dependencies": {
17241 "call-bind": "^1.0.7",
17242 "define-properties": "^1.2.1",
17243 "es-object-atoms": "^1.0.0"
17244 },
17245 "funding": {
17246 "url": "https://github.com/sponsors/ljharb"
17247 }
17248 },
17249 "node_modules/string.prototype.trimstart": {
17250 "version": "1.0.8",
17251 "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz",
17252 "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==",
17253 "dependencies": {
17254 "call-bind": "^1.0.7",
17255 "define-properties": "^1.2.1",
17256 "es-object-atoms": "^1.0.0"
17257 },
17258 "engines": {
17259 "node": ">= 0.4"
17260 },
17261 "funding": {
17262 "url": "https://github.com/sponsors/ljharb"
17263 } 4562 }
17264 }, 4563 },
17265 "node_modules/stringify-entities": { 4564 "node_modules/stringify-entities": {
17266 "version": "4.0.4", 4565 "version": "4.0.4",
17267 "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-4.0.4.tgz", 4566 "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-4.0.4.tgz",
17268 "integrity": "sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==", 4567 "integrity": "sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==",
4568 "license": "MIT",
17269 "dependencies": { 4569 "dependencies": {
17270 "character-entities-html4": "^2.0.0", 4570 "character-entities-html4": "^2.0.0",
17271 "character-entities-legacy": "^3.0.0" 4571 "character-entities-legacy": "^3.0.0"
@@ -17275,70 +4575,11 @@
17275 "url": "https://github.com/sponsors/wooorm" 4575 "url": "https://github.com/sponsors/wooorm"
17276 } 4576 }
17277 }, 4577 },
17278 "node_modules/stringify-object": {
17279 "version": "3.3.0",
17280 "resolved": "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz",
17281 "integrity": "sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==",
17282 "dependencies": {
17283 "get-own-enumerable-property-symbols": "^3.0.0",
17284 "is-obj": "^1.0.1",
17285 "is-regexp": "^1.0.0"
17286 },
17287 "engines": {
17288 "node": ">=4"
17289 }
17290 },
17291 "node_modules/strip-ansi": {
17292 "version": "6.0.1",
17293 "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
17294 "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
17295 "dependencies": {
17296 "ansi-regex": "^5.0.1"
17297 },
17298 "engines": {
17299 "node": ">=8"
17300 }
17301 },
17302 "node_modules/strip-ansi-cjs": {
17303 "name": "strip-ansi",
17304 "version": "6.0.1",
17305 "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
17306 "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
17307 "dependencies": {
17308 "ansi-regex": "^5.0.1"
17309 },
17310 "engines": {
17311 "node": ">=8"
17312 }
17313 },
17314 "node_modules/strip-bom": {
17315 "version": "4.0.0",
17316 "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz",
17317 "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==",
17318 "engines": {
17319 "node": ">=8"
17320 }
17321 },
17322 "node_modules/strip-comments": {
17323 "version": "2.0.1",
17324 "resolved": "https://registry.npmjs.org/strip-comments/-/strip-comments-2.0.1.tgz",
17325 "integrity": "sha512-ZprKx+bBLXv067WTCALv8SSz5l2+XhpYCsVtSqlMnkAXMWDq+/ekVbl1ghqP9rUHTzv6sm/DwCOiYutU/yp1fw==",
17326 "engines": {
17327 "node": ">=10"
17328 }
17329 },
17330 "node_modules/strip-final-newline": {
17331 "version": "2.0.0",
17332 "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz",
17333 "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==",
17334 "engines": {
17335 "node": ">=6"
17336 }
17337 },
17338 "node_modules/strip-indent": { 4578 "node_modules/strip-indent": {
17339 "version": "3.0.0", 4579 "version": "3.0.0",
17340 "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", 4580 "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz",
17341 "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", 4581 "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==",
4582 "license": "MIT",
17342 "dependencies": { 4583 "dependencies": {
17343 "min-indent": "^1.0.0" 4584 "min-indent": "^1.0.0"
17344 }, 4585 },
@@ -17346,160 +4587,20 @@
17346 "node": ">=8" 4587 "node": ">=8"
17347 } 4588 }
17348 }, 4589 },
17349 "node_modules/strip-json-comments": {
17350 "version": "3.1.1",
17351 "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
17352 "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==",
17353 "engines": {
17354 "node": ">=8"
17355 },
17356 "funding": {
17357 "url": "https://github.com/sponsors/sindresorhus"
17358 }
17359 },
17360 "node_modules/style-loader": {
17361 "version": "3.3.4",
17362 "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-3.3.4.tgz",
17363 "integrity": "sha512-0WqXzrsMTyb8yjZJHDqwmnwRJvhALK9LfRtRc6B4UTWe8AijYLZYZ9thuJTZc2VfQWINADW/j+LiJnfy2RoC1w==",
17364 "engines": {
17365 "node": ">= 12.13.0"
17366 },
17367 "funding": {
17368 "type": "opencollective",
17369 "url": "https://opencollective.com/webpack"
17370 },
17371 "peerDependencies": {
17372 "webpack": "^5.0.0"
17373 }
17374 },
17375 "node_modules/style-to-object": { 4590 "node_modules/style-to-object": {
17376 "version": "1.0.7", 4591 "version": "1.0.8",
17377 "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-1.0.7.tgz", 4592 "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-1.0.8.tgz",
17378 "integrity": "sha512-uSjr59G5u6fbxUfKbb8GcqMGT3Xs9v5IbPkjb0S16GyOeBLAzSRK0CixBv5YrYvzO6TDLzIS6QCn78tkqWngPw==", 4593 "integrity": "sha512-xT47I/Eo0rwJmaXC4oilDGDWLohVhR6o/xAQcPQN8q6QBuZVL8qMYL85kLmST5cPjAorwvqIA4qXTRQoYHaL6g==",
17379 "dependencies": { 4594 "license": "MIT",
17380 "inline-style-parser": "0.2.3"
17381 }
17382 },
17383 "node_modules/stylehacks": {
17384 "version": "5.1.1",
17385 "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-5.1.1.tgz",
17386 "integrity": "sha512-sBpcd5Hx7G6seo7b1LkpttvTz7ikD0LlH5RmdcBNb6fFR0Fl7LQwHDFr300q4cwUqi+IYrFGmsIHieMBfnN/Bw==",
17387 "dependencies": {
17388 "browserslist": "^4.21.4",
17389 "postcss-selector-parser": "^6.0.4"
17390 },
17391 "engines": {
17392 "node": "^10 || ^12 || >=14.0"
17393 },
17394 "peerDependencies": {
17395 "postcss": "^8.2.15"
17396 }
17397 },
17398 "node_modules/sucrase": {
17399 "version": "3.35.0",
17400 "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz",
17401 "integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==",
17402 "dependencies": {
17403 "@jridgewell/gen-mapping": "^0.3.2",
17404 "commander": "^4.0.0",
17405 "glob": "^10.3.10",
17406 "lines-and-columns": "^1.1.6",
17407 "mz": "^2.7.0",
17408 "pirates": "^4.0.1",
17409 "ts-interface-checker": "^0.1.9"
17410 },
17411 "bin": {
17412 "sucrase": "bin/sucrase",
17413 "sucrase-node": "bin/sucrase-node"
17414 },
17415 "engines": {
17416 "node": ">=16 || 14 >=14.17"
17417 }
17418 },
17419 "node_modules/sucrase/node_modules/brace-expansion": {
17420 "version": "2.0.1",
17421 "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
17422 "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
17423 "dependencies": {
17424 "balanced-match": "^1.0.0"
17425 }
17426 },
17427 "node_modules/sucrase/node_modules/commander": {
17428 "version": "4.1.1",
17429 "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz",
17430 "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==",
17431 "engines": {
17432 "node": ">= 6"
17433 }
17434 },
17435 "node_modules/sucrase/node_modules/glob": {
17436 "version": "10.4.5",
17437 "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz",
17438 "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==",
17439 "dependencies": {
17440 "foreground-child": "^3.1.0",
17441 "jackspeak": "^3.1.2",
17442 "minimatch": "^9.0.4",
17443 "minipass": "^7.1.2",
17444 "package-json-from-dist": "^1.0.0",
17445 "path-scurry": "^1.11.1"
17446 },
17447 "bin": {
17448 "glob": "dist/esm/bin.mjs"
17449 },
17450 "funding": {
17451 "url": "https://github.com/sponsors/isaacs"
17452 }
17453 },
17454 "node_modules/sucrase/node_modules/minimatch": {
17455 "version": "9.0.5",
17456 "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
17457 "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
17458 "dependencies": { 4595 "dependencies": {
17459 "brace-expansion": "^2.0.1" 4596 "inline-style-parser": "0.2.4"
17460 },
17461 "engines": {
17462 "node": ">=16 || 14 >=14.17"
17463 },
17464 "funding": {
17465 "url": "https://github.com/sponsors/isaacs"
17466 } 4597 }
17467 }, 4598 },
17468 "node_modules/supports-color": { 4599 "node_modules/supports-color": {
17469 "version": "5.5.0",
17470 "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
17471 "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
17472 "dependencies": {
17473 "has-flag": "^3.0.0"
17474 },
17475 "engines": {
17476 "node": ">=4"
17477 }
17478 },
17479 "node_modules/supports-hyperlinks": {
17480 "version": "2.3.0",
17481 "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz",
17482 "integrity": "sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==",
17483 "dependencies": {
17484 "has-flag": "^4.0.0",
17485 "supports-color": "^7.0.0"
17486 },
17487 "engines": {
17488 "node": ">=8"
17489 }
17490 },
17491 "node_modules/supports-hyperlinks/node_modules/has-flag": {
17492 "version": "4.0.0",
17493 "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
17494 "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
17495 "engines": {
17496 "node": ">=8"
17497 }
17498 },
17499 "node_modules/supports-hyperlinks/node_modules/supports-color": {
17500 "version": "7.2.0", 4600 "version": "7.2.0",
17501 "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", 4601 "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
17502 "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", 4602 "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
4603 "license": "MIT",
17503 "dependencies": { 4604 "dependencies": {
17504 "has-flag": "^4.0.0" 4605 "has-flag": "^4.0.0"
17505 }, 4606 },
@@ -17507,390 +4608,68 @@
17507 "node": ">=8" 4608 "node": ">=8"
17508 } 4609 }
17509 }, 4610 },
17510 "node_modules/supports-preserve-symlinks-flag": {
17511 "version": "1.0.0",
17512 "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
17513 "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
17514 "engines": {
17515 "node": ">= 0.4"
17516 },
17517 "funding": {
17518 "url": "https://github.com/sponsors/ljharb"
17519 }
17520 },
17521 "node_modules/svg-parser": {
17522 "version": "2.0.4",
17523 "resolved": "https://registry.npmjs.org/svg-parser/-/svg-parser-2.0.4.tgz",
17524 "integrity": "sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ=="
17525 },
17526 "node_modules/svgo": {
17527 "version": "1.3.2",
17528 "resolved": "https://registry.npmjs.org/svgo/-/svgo-1.3.2.tgz",
17529 "integrity": "sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw==",
17530 "deprecated": "This SVGO version is no longer supported. Upgrade to v2.x.x.",
17531 "dependencies": {
17532 "chalk": "^2.4.1",
17533 "coa": "^2.0.2",
17534 "css-select": "^2.0.0",
17535 "css-select-base-adapter": "^0.1.1",
17536 "css-tree": "1.0.0-alpha.37",
17537 "csso": "^4.0.2",
17538 "js-yaml": "^3.13.1",
17539 "mkdirp": "~0.5.1",
17540 "object.values": "^1.1.0",
17541 "sax": "~1.2.4",
17542 "stable": "^0.1.8",
17543 "unquote": "~1.1.1",
17544 "util.promisify": "~1.0.0"
17545 },
17546 "bin": {
17547 "svgo": "bin/svgo"
17548 },
17549 "engines": {
17550 "node": ">=4.0.0"
17551 }
17552 },
17553 "node_modules/svgo/node_modules/css-select": {
17554 "version": "2.1.0",
17555 "resolved": "https://registry.npmjs.org/css-select/-/css-select-2.1.0.tgz",
17556 "integrity": "sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ==",
17557 "dependencies": {
17558 "boolbase": "^1.0.0",
17559 "css-what": "^3.2.1",
17560 "domutils": "^1.7.0",
17561 "nth-check": "^1.0.2"
17562 }
17563 },
17564 "node_modules/svgo/node_modules/css-what": {
17565 "version": "3.4.2",
17566 "resolved": "https://registry.npmjs.org/css-what/-/css-what-3.4.2.tgz",
17567 "integrity": "sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ==",
17568 "engines": {
17569 "node": ">= 6"
17570 },
17571 "funding": {
17572 "url": "https://github.com/sponsors/fb55"
17573 }
17574 },
17575 "node_modules/svgo/node_modules/dom-serializer": {
17576 "version": "0.2.2",
17577 "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz",
17578 "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==",
17579 "dependencies": {
17580 "domelementtype": "^2.0.1",
17581 "entities": "^2.0.0"
17582 }
17583 },
17584 "node_modules/svgo/node_modules/domutils": {
17585 "version": "1.7.0",
17586 "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz",
17587 "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==",
17588 "dependencies": {
17589 "dom-serializer": "0",
17590 "domelementtype": "1"
17591 }
17592 },
17593 "node_modules/svgo/node_modules/domutils/node_modules/domelementtype": {
17594 "version": "1.3.1",
17595 "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz",
17596 "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w=="
17597 },
17598 "node_modules/svgo/node_modules/nth-check": {
17599 "version": "1.0.2",
17600 "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz",
17601 "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==",
17602 "dependencies": {
17603 "boolbase": "~1.0.0"
17604 }
17605 },
17606 "node_modules/symbol-tree": {
17607 "version": "3.2.4",
17608 "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz",
17609 "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw=="
17610 },
17611 "node_modules/tailwindcss": { 4611 "node_modules/tailwindcss": {
17612 "version": "3.4.10", 4612 "version": "4.1.11",
17613 "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.10.tgz", 4613 "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.1.11.tgz",
17614 "integrity": "sha512-KWZkVPm7yJRhdu4SRSl9d4AK2wM3a50UsvgHZO7xY77NQr2V+fIrEuoDGQcbvswWvFGbS2f6e+jC/6WJm1Dl0w==", 4614 "integrity": "sha512-2E9TBm6MDD/xKYe+dvJZAmg3yxIEDNRc0jwlNyDg/4Fil2QcSLjFKGVff0lAf1jjeaArlG/M75Ey/EYr/OJtBA==",
17615 "dependencies": { 4615 "license": "MIT"
17616 "@alloc/quick-lru": "^5.2.0",
17617 "arg": "^5.0.2",
17618 "chokidar": "^3.5.3",
17619 "didyoumean": "^1.2.2",
17620 "dlv": "^1.1.3",
17621 "fast-glob": "^3.3.0",
17622 "glob-parent": "^6.0.2",
17623 "is-glob": "^4.0.3",
17624 "jiti": "^1.21.0",
17625 "lilconfig": "^2.1.0",
17626 "micromatch": "^4.0.5",
17627 "normalize-path": "^3.0.0",
17628 "object-hash": "^3.0.0",
17629 "picocolors": "^1.0.0",
17630 "postcss": "^8.4.23",
17631 "postcss-import": "^15.1.0",
17632 "postcss-js": "^4.0.1",
17633 "postcss-load-config": "^4.0.1",
17634 "postcss-nested": "^6.0.1",
17635 "postcss-selector-parser": "^6.0.11",
17636 "resolve": "^1.22.2",
17637 "sucrase": "^3.32.0"
17638 },
17639 "bin": {
17640 "tailwind": "lib/cli.js",
17641 "tailwindcss": "lib/cli.js"
17642 },
17643 "engines": {
17644 "node": ">=14.0.0"
17645 }
17646 }, 4616 },
17647 "node_modules/tapable": { 4617 "node_modules/tapable": {
17648 "version": "2.2.1", 4618 "version": "2.2.2",
17649 "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", 4619 "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.2.tgz",
17650 "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", 4620 "integrity": "sha512-Re10+NauLTMCudc7T5WLFLAwDhQ0JWdrMK+9B2M8zR5hRExKmsRDCBA7/aV/pNJFltmBFO5BAMlQFi/vq3nKOg==",
4621 "license": "MIT",
17651 "engines": { 4622 "engines": {
17652 "node": ">=6" 4623 "node": ">=6"
17653 } 4624 }
17654 }, 4625 },
17655 "node_modules/temp-dir": { 4626 "node_modules/tar": {
17656 "version": "2.0.0", 4627 "version": "7.4.3",
17657 "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-2.0.0.tgz", 4628 "resolved": "https://registry.npmjs.org/tar/-/tar-7.4.3.tgz",
17658 "integrity": "sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==", 4629 "integrity": "sha512-5S7Va8hKfV7W5U6g3aYxXmlPoZVAwUMy9AOKyF2fVuZa2UD3qZjg578OrLRt8PcNN1PleVaL/5/yYATNL0ICUw==",
17659 "engines": { 4630 "license": "ISC",
17660 "node": ">=8"
17661 }
17662 },
17663 "node_modules/tempy": {
17664 "version": "0.6.0",
17665 "resolved": "https://registry.npmjs.org/tempy/-/tempy-0.6.0.tgz",
17666 "integrity": "sha512-G13vtMYPT/J8A4X2SjdtBTphZlrp1gKv6hZiOjw14RCWg6GbHuQBGtjlx75xLbYV/wEc0D7G5K4rxKP/cXk8Bw==",
17667 "dependencies": {
17668 "is-stream": "^2.0.0",
17669 "temp-dir": "^2.0.0",
17670 "type-fest": "^0.16.0",
17671 "unique-string": "^2.0.0"
17672 },
17673 "engines": {
17674 "node": ">=10"
17675 },
17676 "funding": {
17677 "url": "https://github.com/sponsors/sindresorhus"
17678 }
17679 },
17680 "node_modules/tempy/node_modules/type-fest": {
17681 "version": "0.16.0",
17682 "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.16.0.tgz",
17683 "integrity": "sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg==",
17684 "engines": {
17685 "node": ">=10"
17686 },
17687 "funding": {
17688 "url": "https://github.com/sponsors/sindresorhus"
17689 }
17690 },
17691 "node_modules/terminal-link": {
17692 "version": "2.1.1",
17693 "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz",
17694 "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==",
17695 "dependencies": {
17696 "ansi-escapes": "^4.2.1",
17697 "supports-hyperlinks": "^2.0.0"
17698 },
17699 "engines": {
17700 "node": ">=8"
17701 },
17702 "funding": {
17703 "url": "https://github.com/sponsors/sindresorhus"
17704 }
17705 },
17706 "node_modules/terser": {
17707 "version": "5.31.6",
17708 "resolved": "https://registry.npmjs.org/terser/-/terser-5.31.6.tgz",
17709 "integrity": "sha512-PQ4DAriWzKj+qgehQ7LK5bQqCFNMmlhjR2PFFLuqGCpuCAauxemVBWwWOxo3UIwWQx8+Pr61Df++r76wDmkQBg==",
17710 "dependencies": { 4631 "dependencies": {
17711 "@jridgewell/source-map": "^0.3.3", 4632 "@isaacs/fs-minipass": "^4.0.0",
17712 "acorn": "^8.8.2", 4633 "chownr": "^3.0.0",
17713 "commander": "^2.20.0", 4634 "minipass": "^7.1.2",
17714 "source-map-support": "~0.5.20" 4635 "minizlib": "^3.0.1",
17715 }, 4636 "mkdirp": "^3.0.1",
17716 "bin": { 4637 "yallist": "^5.0.0"
17717 "terser": "bin/terser"
17718 }, 4638 },
17719 "engines": { 4639 "engines": {
17720 "node": ">=10" 4640 "node": ">=18"
17721 } 4641 }
17722 }, 4642 },
17723 "node_modules/terser-webpack-plugin": { 4643 "node_modules/tar/node_modules/yallist": {
17724 "version": "5.3.10", 4644 "version": "5.0.0",
17725 "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.10.tgz", 4645 "resolved": "https://registry.npmjs.org/yallist/-/yallist-5.0.0.tgz",
17726 "integrity": "sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==", 4646 "integrity": "sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==",
17727 "dependencies": { 4647 "license": "BlueOak-1.0.0",
17728 "@jridgewell/trace-mapping": "^0.3.20",
17729 "jest-worker": "^27.4.5",
17730 "schema-utils": "^3.1.1",
17731 "serialize-javascript": "^6.0.1",
17732 "terser": "^5.26.0"
17733 },
17734 "engines": { 4648 "engines": {
17735 "node": ">= 10.13.0" 4649 "node": ">=18"
17736 },
17737 "funding": {
17738 "type": "opencollective",
17739 "url": "https://opencollective.com/webpack"
17740 },
17741 "peerDependencies": {
17742 "webpack": "^5.1.0"
17743 },
17744 "peerDependenciesMeta": {
17745 "@swc/core": {
17746 "optional": true
17747 },
17748 "esbuild": {
17749 "optional": true
17750 },
17751 "uglify-js": {
17752 "optional": true
17753 }
17754 } 4650 }
17755 }, 4651 },
17756 "node_modules/terser-webpack-plugin/node_modules/schema-utils": { 4652 "node_modules/tinyglobby": {
17757 "version": "3.3.0", 4653 "version": "0.2.14",
17758 "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", 4654 "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.14.tgz",
17759 "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", 4655 "integrity": "sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ==",
4656 "license": "MIT",
17760 "dependencies": { 4657 "dependencies": {
17761 "@types/json-schema": "^7.0.8", 4658 "fdir": "^6.4.4",
17762 "ajv": "^6.12.5", 4659 "picomatch": "^4.0.2"
17763 "ajv-keywords": "^3.5.2"
17764 }, 4660 },
17765 "engines": { 4661 "engines": {
17766 "node": ">= 10.13.0" 4662 "node": ">=12.0.0"
17767 }, 4663 },
17768 "funding": { 4664 "funding": {
17769 "type": "opencollective", 4665 "url": "https://github.com/sponsors/SuperchupuDev"
17770 "url": "https://opencollective.com/webpack"
17771 }
17772 },
17773 "node_modules/terser/node_modules/commander": {
17774 "version": "2.20.3",
17775 "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
17776 "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ=="
17777 },
17778 "node_modules/test-exclude": {
17779 "version": "6.0.0",
17780 "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz",
17781 "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==",
17782 "dependencies": {
17783 "@istanbuljs/schema": "^0.1.2",
17784 "glob": "^7.1.4",
17785 "minimatch": "^3.0.4"
17786 },
17787 "engines": {
17788 "node": ">=8"
17789 }
17790 },
17791 "node_modules/text-table": {
17792 "version": "0.2.0",
17793 "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
17794 "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw=="
17795 },
17796 "node_modules/thenify": {
17797 "version": "3.3.1",
17798 "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz",
17799 "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==",
17800 "dependencies": {
17801 "any-promise": "^1.0.0"
17802 }
17803 },
17804 "node_modules/thenify-all": {
17805 "version": "1.6.0",
17806 "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz",
17807 "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==",
17808 "dependencies": {
17809 "thenify": ">= 3.1.0 < 4"
17810 },
17811 "engines": {
17812 "node": ">=0.8"
17813 }
17814 },
17815 "node_modules/throat": {
17816 "version": "6.0.2",
17817 "resolved": "https://registry.npmjs.org/throat/-/throat-6.0.2.tgz",
17818 "integrity": "sha512-WKexMoJj3vEuK0yFEapj8y64V0A6xcuPuK9Gt1d0R+dzCSJc0lHqQytAbSB4cDAK0dWh4T0E2ETkoLE2WZ41OQ=="
17819 },
17820 "node_modules/thunky": {
17821 "version": "1.1.0",
17822 "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz",
17823 "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA=="
17824 },
17825 "node_modules/tmpl": {
17826 "version": "1.0.5",
17827 "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz",
17828 "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw=="
17829 },
17830 "node_modules/to-fast-properties": {
17831 "version": "2.0.0",
17832 "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
17833 "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==",
17834 "engines": {
17835 "node": ">=4"
17836 }
17837 },
17838 "node_modules/to-regex-range": {
17839 "version": "5.0.1",
17840 "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
17841 "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
17842 "dependencies": {
17843 "is-number": "^7.0.0"
17844 },
17845 "engines": {
17846 "node": ">=8.0"
17847 }
17848 },
17849 "node_modules/toidentifier": {
17850 "version": "1.0.1",
17851 "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz",
17852 "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==",
17853 "engines": {
17854 "node": ">=0.6"
17855 }
17856 },
17857 "node_modules/tough-cookie": {
17858 "version": "4.1.4",
17859 "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.4.tgz",
17860 "integrity": "sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==",
17861 "dependencies": {
17862 "psl": "^1.1.33",
17863 "punycode": "^2.1.1",
17864 "universalify": "^0.2.0",
17865 "url-parse": "^1.5.3"
17866 },
17867 "engines": {
17868 "node": ">=6"
17869 }
17870 },
17871 "node_modules/tough-cookie/node_modules/universalify": {
17872 "version": "0.2.0",
17873 "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz",
17874 "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==",
17875 "engines": {
17876 "node": ">= 4.0.0"
17877 }
17878 },
17879 "node_modules/tr46": {
17880 "version": "2.1.0",
17881 "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz",
17882 "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==",
17883 "dependencies": {
17884 "punycode": "^2.1.1"
17885 },
17886 "engines": {
17887 "node": ">=8"
17888 } 4666 }
17889 }, 4667 },
17890 "node_modules/trim-lines": { 4668 "node_modules/trim-lines": {
17891 "version": "3.0.1", 4669 "version": "3.0.1",
17892 "resolved": "https://registry.npmjs.org/trim-lines/-/trim-lines-3.0.1.tgz", 4670 "resolved": "https://registry.npmjs.org/trim-lines/-/trim-lines-3.0.1.tgz",
17893 "integrity": "sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==", 4671 "integrity": "sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==",
4672 "license": "MIT",
17894 "funding": { 4673 "funding": {
17895 "type": "github", 4674 "type": "github",
17896 "url": "https://github.com/sponsors/wooorm" 4675 "url": "https://github.com/sponsors/wooorm"
@@ -17900,262 +4679,17 @@
17900 "version": "2.2.0", 4679 "version": "2.2.0",
17901 "resolved": "https://registry.npmjs.org/trough/-/trough-2.2.0.tgz", 4680 "resolved": "https://registry.npmjs.org/trough/-/trough-2.2.0.tgz",
17902 "integrity": "sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==", 4681 "integrity": "sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==",
4682 "license": "MIT",
17903 "funding": { 4683 "funding": {
17904 "type": "github", 4684 "type": "github",
17905 "url": "https://github.com/sponsors/wooorm" 4685 "url": "https://github.com/sponsors/wooorm"
17906 } 4686 }
17907 }, 4687 },
17908 "node_modules/tryer": {
17909 "version": "1.0.1",
17910 "resolved": "https://registry.npmjs.org/tryer/-/tryer-1.0.1.tgz",
17911 "integrity": "sha512-c3zayb8/kWWpycWYg87P71E1S1ZL6b6IJxfb5fvsUgsf0S2MVGaDhDXXjDMpdCpfWXqptc+4mXwmiy1ypXqRAA=="
17912 },
17913 "node_modules/ts-interface-checker": {
17914 "version": "0.1.13",
17915 "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz",
17916 "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA=="
17917 },
17918 "node_modules/ts-node": {
17919 "version": "10.9.2",
17920 "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.2.tgz",
17921 "integrity": "sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==",
17922 "devOptional": true,
17923 "license": "MIT",
17924 "dependencies": {
17925 "@cspotcode/source-map-support": "^0.8.0",
17926 "@tsconfig/node10": "^1.0.7",
17927 "@tsconfig/node12": "^1.0.7",
17928 "@tsconfig/node14": "^1.0.0",
17929 "@tsconfig/node16": "^1.0.2",
17930 "acorn": "^8.4.1",
17931 "acorn-walk": "^8.1.1",
17932 "arg": "^4.1.0",
17933 "create-require": "^1.1.0",
17934 "diff": "^4.0.1",
17935 "make-error": "^1.1.1",
17936 "v8-compile-cache-lib": "^3.0.1",
17937 "yn": "3.1.1"
17938 },
17939 "bin": {
17940 "ts-node": "dist/bin.js",
17941 "ts-node-cwd": "dist/bin-cwd.js",
17942 "ts-node-esm": "dist/bin-esm.js",
17943 "ts-node-script": "dist/bin-script.js",
17944 "ts-node-transpile-only": "dist/bin-transpile.js",
17945 "ts-script": "dist/bin-script-deprecated.js"
17946 },
17947 "peerDependencies": {
17948 "@swc/core": ">=1.2.50",
17949 "@swc/wasm": ">=1.2.50",
17950 "@types/node": "*",
17951 "typescript": ">=2.7"
17952 },
17953 "peerDependenciesMeta": {
17954 "@swc/core": {
17955 "optional": true
17956 },
17957 "@swc/wasm": {
17958 "optional": true
17959 }
17960 }
17961 },
17962 "node_modules/ts-node/node_modules/acorn-walk": {
17963 "version": "8.3.4",
17964 "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.4.tgz",
17965 "integrity": "sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==",
17966 "devOptional": true,
17967 "license": "MIT",
17968 "dependencies": {
17969 "acorn": "^8.11.0"
17970 },
17971 "engines": {
17972 "node": ">=0.4.0"
17973 }
17974 },
17975 "node_modules/ts-node/node_modules/arg": {
17976 "version": "4.1.3",
17977 "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz",
17978 "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==",
17979 "devOptional": true,
17980 "license": "MIT"
17981 },
17982 "node_modules/tsconfig-paths": {
17983 "version": "3.15.0",
17984 "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz",
17985 "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==",
17986 "dependencies": {
17987 "@types/json5": "^0.0.29",
17988 "json5": "^1.0.2",
17989 "minimist": "^1.2.6",
17990 "strip-bom": "^3.0.0"
17991 }
17992 },
17993 "node_modules/tsconfig-paths/node_modules/json5": {
17994 "version": "1.0.2",
17995 "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz",
17996 "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==",
17997 "dependencies": {
17998 "minimist": "^1.2.0"
17999 },
18000 "bin": {
18001 "json5": "lib/cli.js"
18002 }
18003 },
18004 "node_modules/tsconfig-paths/node_modules/strip-bom": {
18005 "version": "3.0.0",
18006 "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
18007 "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==",
18008 "engines": {
18009 "node": ">=4"
18010 }
18011 },
18012 "node_modules/tslib": {
18013 "version": "2.6.3",
18014 "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.3.tgz",
18015 "integrity": "sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ=="
18016 },
18017 "node_modules/tsutils": {
18018 "version": "3.21.0",
18019 "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz",
18020 "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==",
18021 "dependencies": {
18022 "tslib": "^1.8.1"
18023 },
18024 "engines": {
18025 "node": ">= 6"
18026 },
18027 "peerDependencies": {
18028 "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta"
18029 }
18030 },
18031 "node_modules/tsutils/node_modules/tslib": {
18032 "version": "1.14.1",
18033 "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
18034 "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
18035 },
18036 "node_modules/type-check": {
18037 "version": "0.4.0",
18038 "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz",
18039 "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==",
18040 "dependencies": {
18041 "prelude-ls": "^1.2.1"
18042 },
18043 "engines": {
18044 "node": ">= 0.8.0"
18045 }
18046 },
18047 "node_modules/type-detect": {
18048 "version": "4.0.8",
18049 "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz",
18050 "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==",
18051 "engines": {
18052 "node": ">=4"
18053 }
18054 },
18055 "node_modules/type-fest": {
18056 "version": "0.21.3",
18057 "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz",
18058 "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==",
18059 "engines": {
18060 "node": ">=10"
18061 },
18062 "funding": {
18063 "url": "https://github.com/sponsors/sindresorhus"
18064 }
18065 },
18066 "node_modules/type-is": {
18067 "version": "1.6.18",
18068 "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
18069 "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
18070 "dependencies": {
18071 "media-typer": "0.3.0",
18072 "mime-types": "~2.1.24"
18073 },
18074 "engines": {
18075 "node": ">= 0.6"
18076 }
18077 },
18078 "node_modules/typed-array-buffer": {
18079 "version": "1.0.2",
18080 "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz",
18081 "integrity": "sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==",
18082 "dependencies": {
18083 "call-bind": "^1.0.7",
18084 "es-errors": "^1.3.0",
18085 "is-typed-array": "^1.1.13"
18086 },
18087 "engines": {
18088 "node": ">= 0.4"
18089 }
18090 },
18091 "node_modules/typed-array-byte-length": {
18092 "version": "1.0.1",
18093 "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz",
18094 "integrity": "sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==",
18095 "dependencies": {
18096 "call-bind": "^1.0.7",
18097 "for-each": "^0.3.3",
18098 "gopd": "^1.0.1",
18099 "has-proto": "^1.0.3",
18100 "is-typed-array": "^1.1.13"
18101 },
18102 "engines": {
18103 "node": ">= 0.4"
18104 },
18105 "funding": {
18106 "url": "https://github.com/sponsors/ljharb"
18107 }
18108 },
18109 "node_modules/typed-array-byte-offset": {
18110 "version": "1.0.2",
18111 "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz",
18112 "integrity": "sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==",
18113 "dependencies": {
18114 "available-typed-arrays": "^1.0.7",
18115 "call-bind": "^1.0.7",
18116 "for-each": "^0.3.3",
18117 "gopd": "^1.0.1",
18118 "has-proto": "^1.0.3",
18119 "is-typed-array": "^1.1.13"
18120 },
18121 "engines": {
18122 "node": ">= 0.4"
18123 },
18124 "funding": {
18125 "url": "https://github.com/sponsors/ljharb"
18126 }
18127 },
18128 "node_modules/typed-array-length": {
18129 "version": "1.0.6",
18130 "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.6.tgz",
18131 "integrity": "sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==",
18132 "dependencies": {
18133 "call-bind": "^1.0.7",
18134 "for-each": "^0.3.3",
18135 "gopd": "^1.0.1",
18136 "has-proto": "^1.0.3",
18137 "is-typed-array": "^1.1.13",
18138 "possible-typed-array-names": "^1.0.0"
18139 },
18140 "engines": {
18141 "node": ">= 0.4"
18142 },
18143 "funding": {
18144 "url": "https://github.com/sponsors/ljharb"
18145 }
18146 },
18147 "node_modules/typedarray-to-buffer": {
18148 "version": "3.1.5",
18149 "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz",
18150 "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==",
18151 "dependencies": {
18152 "is-typedarray": "^1.0.0"
18153 }
18154 },
18155 "node_modules/typescript": { 4688 "node_modules/typescript": {
18156 "version": "4.9.5", 4689 "version": "4.9.5",
18157 "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", 4690 "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz",
18158 "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", 4691 "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==",
4692 "license": "Apache-2.0",
18159 "bin": { 4693 "bin": {
18160 "tsc": "bin/tsc", 4694 "tsc": "bin/tsc",
18161 "tsserver": "bin/tsserver" 4695 "tsserver": "bin/tsserver"
@@ -18164,65 +4698,17 @@
18164 "node": ">=4.2.0" 4698 "node": ">=4.2.0"
18165 } 4699 }
18166 }, 4700 },
18167 "node_modules/unbox-primitive": { 4701 "node_modules/undici-types": {
18168 "version": "1.0.2", 4702 "version": "6.21.0",
18169 "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", 4703 "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz",
18170 "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", 4704 "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==",
18171 "dependencies": { 4705 "license": "MIT"
18172 "call-bind": "^1.0.2",
18173 "has-bigints": "^1.0.2",
18174 "has-symbols": "^1.0.3",
18175 "which-boxed-primitive": "^1.0.2"
18176 },
18177 "funding": {
18178 "url": "https://github.com/sponsors/ljharb"
18179 }
18180 },
18181 "node_modules/underscore": {
18182 "version": "1.12.1",
18183 "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.12.1.tgz",
18184 "integrity": "sha512-hEQt0+ZLDVUMhebKxL4x1BTtDY7bavVofhZ9KZ4aI26X9SRaE+Y3m83XUL1UP2jn8ynjndwCCpEHdUG+9pP1Tw=="
18185 },
18186 "node_modules/unicode-canonical-property-names-ecmascript": {
18187 "version": "2.0.0",
18188 "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz",
18189 "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==",
18190 "engines": {
18191 "node": ">=4"
18192 }
18193 },
18194 "node_modules/unicode-match-property-ecmascript": {
18195 "version": "2.0.0",
18196 "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz",
18197 "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==",
18198 "dependencies": {
18199 "unicode-canonical-property-names-ecmascript": "^2.0.0",
18200 "unicode-property-aliases-ecmascript": "^2.0.0"
18201 },
18202 "engines": {
18203 "node": ">=4"
18204 }
18205 },
18206 "node_modules/unicode-match-property-value-ecmascript": {
18207 "version": "2.1.0",
18208 "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz",
18209 "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==",
18210 "engines": {
18211 "node": ">=4"
18212 }
18213 },
18214 "node_modules/unicode-property-aliases-ecmascript": {
18215 "version": "2.1.0",
18216 "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz",
18217 "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==",
18218 "engines": {
18219 "node": ">=4"
18220 }
18221 }, 4706 },
18222 "node_modules/unified": { 4707 "node_modules/unified": {
18223 "version": "11.0.5", 4708 "version": "11.0.5",
18224 "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.5.tgz", 4709 "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.5.tgz",
18225 "integrity": "sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==", 4710 "integrity": "sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==",
4711 "license": "MIT",
18226 "dependencies": { 4712 "dependencies": {
18227 "@types/unist": "^3.0.0", 4713 "@types/unist": "^3.0.0",
18228 "bail": "^2.0.0", 4714 "bail": "^2.0.0",
@@ -18237,32 +4723,11 @@
18237 "url": "https://opencollective.com/unified" 4723 "url": "https://opencollective.com/unified"
18238 } 4724 }
18239 }, 4725 },
18240 "node_modules/unified/node_modules/is-plain-obj": {
18241 "version": "4.1.0",
18242 "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz",
18243 "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==",
18244 "engines": {
18245 "node": ">=12"
18246 },
18247 "funding": {
18248 "url": "https://github.com/sponsors/sindresorhus"
18249 }
18250 },
18251 "node_modules/unique-string": {
18252 "version": "2.0.0",
18253 "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz",
18254 "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==",
18255 "dependencies": {
18256 "crypto-random-string": "^2.0.0"
18257 },
18258 "engines": {
18259 "node": ">=8"
18260 }
18261 },
18262 "node_modules/unist-util-is": { 4726 "node_modules/unist-util-is": {
18263 "version": "6.0.0", 4727 "version": "6.0.0",
18264 "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.0.tgz", 4728 "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.0.tgz",
18265 "integrity": "sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==", 4729 "integrity": "sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==",
4730 "license": "MIT",
18266 "dependencies": { 4731 "dependencies": {
18267 "@types/unist": "^3.0.0" 4732 "@types/unist": "^3.0.0"
18268 }, 4733 },
@@ -18275,6 +4740,7 @@
18275 "version": "5.0.0", 4740 "version": "5.0.0",
18276 "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz", 4741 "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz",
18277 "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==", 4742 "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==",
4743 "license": "MIT",
18278 "dependencies": { 4744 "dependencies": {
18279 "@types/unist": "^3.0.0" 4745 "@types/unist": "^3.0.0"
18280 }, 4746 },
@@ -18287,6 +4753,7 @@
18287 "version": "4.0.0", 4753 "version": "4.0.0",
18288 "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", 4754 "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
18289 "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", 4755 "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
4756 "license": "MIT",
18290 "dependencies": { 4757 "dependencies": {
18291 "@types/unist": "^3.0.0" 4758 "@types/unist": "^3.0.0"
18292 }, 4759 },
@@ -18299,6 +4766,7 @@
18299 "version": "5.0.0", 4766 "version": "5.0.0",
18300 "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.0.0.tgz", 4767 "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.0.0.tgz",
18301 "integrity": "sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==", 4768 "integrity": "sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==",
4769 "license": "MIT",
18302 "dependencies": { 4770 "dependencies": {
18303 "@types/unist": "^3.0.0", 4771 "@types/unist": "^3.0.0",
18304 "unist-util-is": "^6.0.0", 4772 "unist-util-is": "^6.0.0",
@@ -18313,6 +4781,7 @@
18313 "version": "6.0.1", 4781 "version": "6.0.1",
18314 "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.1.tgz", 4782 "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.1.tgz",
18315 "integrity": "sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==", 4783 "integrity": "sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==",
4784 "license": "MIT",
18316 "dependencies": { 4785 "dependencies": {
18317 "@types/unist": "^3.0.0", 4786 "@types/unist": "^3.0.0",
18318 "unist-util-is": "^6.0.0" 4787 "unist-util-is": "^6.0.0"
@@ -18322,40 +4791,10 @@
18322 "url": "https://opencollective.com/unified" 4791 "url": "https://opencollective.com/unified"
18323 } 4792 }
18324 }, 4793 },
18325 "node_modules/universalify": {
18326 "version": "2.0.1",
18327 "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz",
18328 "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==",
18329 "engines": {
18330 "node": ">= 10.0.0"
18331 }
18332 },
18333 "node_modules/unpipe": {
18334 "version": "1.0.0",
18335 "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
18336 "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==",
18337 "engines": {
18338 "node": ">= 0.8"
18339 }
18340 },
18341 "node_modules/unquote": {
18342 "version": "1.1.1",
18343 "resolved": "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz",
18344 "integrity": "sha512-vRCqFv6UhXpWxZPyGDh/F3ZpNv8/qo7w6iufLpQg9aKnQ71qM4B5KiI7Mia9COcjEhrO9LueHpMYjYzsWH3OIg=="
18345 },
18346 "node_modules/upath": {
18347 "version": "1.2.0",
18348 "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz",
18349 "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==",
18350 "engines": {
18351 "node": ">=4",
18352 "yarn": "*"
18353 }
18354 },
18355 "node_modules/update-browserslist-db": { 4794 "node_modules/update-browserslist-db": {
18356 "version": "1.1.0", 4795 "version": "1.1.3",
18357 "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.0.tgz", 4796 "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz",
18358 "integrity": "sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ==", 4797 "integrity": "sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==",
18359 "funding": [ 4798 "funding": [
18360 { 4799 {
18361 "type": "opencollective", 4800 "type": "opencollective",
@@ -18370,9 +4809,10 @@
18370 "url": "https://github.com/sponsors/ai" 4809 "url": "https://github.com/sponsors/ai"
18371 } 4810 }
18372 ], 4811 ],
4812 "license": "MIT",
18373 "dependencies": { 4813 "dependencies": {
18374 "escalade": "^3.1.2", 4814 "escalade": "^3.2.0",
18375 "picocolors": "^1.0.1" 4815 "picocolors": "^1.1.1"
18376 }, 4816 },
18377 "bin": { 4817 "bin": {
18378 "update-browserslist-db": "cli.js" 4818 "update-browserslist-db": "cli.js"
@@ -18381,100 +4821,11 @@
18381 "browserslist": ">= 4.21.0" 4821 "browserslist": ">= 4.21.0"
18382 } 4822 }
18383 }, 4823 },
18384 "node_modules/uri-js": {
18385 "version": "4.4.1",
18386 "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
18387 "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
18388 "dependencies": {
18389 "punycode": "^2.1.0"
18390 }
18391 },
18392 "node_modules/url-parse": {
18393 "version": "1.5.10",
18394 "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz",
18395 "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==",
18396 "dependencies": {
18397 "querystringify": "^2.1.1",
18398 "requires-port": "^1.0.0"
18399 }
18400 },
18401 "node_modules/util-deprecate": {
18402 "version": "1.0.2",
18403 "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
18404 "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="
18405 },
18406 "node_modules/util.promisify": {
18407 "version": "1.0.1",
18408 "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.1.tgz",
18409 "integrity": "sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA==",
18410 "dependencies": {
18411 "define-properties": "^1.1.3",
18412 "es-abstract": "^1.17.2",
18413 "has-symbols": "^1.0.1",
18414 "object.getownpropertydescriptors": "^2.1.0"
18415 },
18416 "funding": {
18417 "url": "https://github.com/sponsors/ljharb"
18418 }
18419 },
18420 "node_modules/utila": {
18421 "version": "0.4.0",
18422 "resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz",
18423 "integrity": "sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA=="
18424 },
18425 "node_modules/utils-merge": {
18426 "version": "1.0.1",
18427 "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
18428 "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==",
18429 "engines": {
18430 "node": ">= 0.4.0"
18431 }
18432 },
18433 "node_modules/uuid": {
18434 "version": "8.3.2",
18435 "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz",
18436 "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==",
18437 "bin": {
18438 "uuid": "dist/bin/uuid"
18439 }
18440 },
18441 "node_modules/v8-compile-cache-lib": {
18442 "version": "3.0.1",
18443 "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz",
18444 "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==",
18445 "devOptional": true,
18446 "license": "MIT"
18447 },
18448 "node_modules/v8-to-istanbul": {
18449 "version": "8.1.1",
18450 "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-8.1.1.tgz",
18451 "integrity": "sha512-FGtKtv3xIpR6BYhvgH8MI/y78oT7d8Au3ww4QIxymrCtZEh5b8gCw2siywE+puhEmuWKDtmfrvF5UlB298ut3w==",
18452 "dependencies": {
18453 "@types/istanbul-lib-coverage": "^2.0.1",
18454 "convert-source-map": "^1.6.0",
18455 "source-map": "^0.7.3"
18456 },
18457 "engines": {
18458 "node": ">=10.12.0"
18459 }
18460 },
18461 "node_modules/v8-to-istanbul/node_modules/convert-source-map": {
18462 "version": "1.9.0",
18463 "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz",
18464 "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A=="
18465 },
18466 "node_modules/vary": {
18467 "version": "1.1.2",
18468 "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
18469 "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==",
18470 "engines": {
18471 "node": ">= 0.8"
18472 }
18473 },
18474 "node_modules/vfile": { 4824 "node_modules/vfile": {
18475 "version": "6.0.3", 4825 "version": "6.0.3",
18476 "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.3.tgz", 4826 "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.3.tgz",
18477 "integrity": "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==", 4827 "integrity": "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==",
4828 "license": "MIT",
18478 "dependencies": { 4829 "dependencies": {
18479 "@types/unist": "^3.0.0", 4830 "@types/unist": "^3.0.0",
18480 "vfile-message": "^4.0.0" 4831 "vfile-message": "^4.0.0"
@@ -18488,6 +4839,7 @@
18488 "version": "4.0.2", 4839 "version": "4.0.2",
18489 "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", 4840 "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz",
18490 "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", 4841 "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==",
4842 "license": "MIT",
18491 "dependencies": { 4843 "dependencies": {
18492 "@types/unist": "^3.0.0", 4844 "@types/unist": "^3.0.0",
18493 "unist-util-stringify-position": "^4.0.0" 4845 "unist-util-stringify-position": "^4.0.0"
@@ -18497,417 +4849,97 @@
18497 "url": "https://opencollective.com/unified" 4849 "url": "https://opencollective.com/unified"
18498 } 4850 }
18499 }, 4851 },
18500 "node_modules/w3c-hr-time": { 4852 "node_modules/vite": {
18501 "version": "1.0.2", 4853 "version": "7.1.2",
18502 "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", 4854 "resolved": "https://registry.npmjs.org/vite/-/vite-7.1.2.tgz",
18503 "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==", 4855 "integrity": "sha512-J0SQBPlQiEXAF7tajiH+rUooJPo0l8KQgyg4/aMunNtrOa7bwuZJsJbDWzeljqQpgftxuq5yNJxQ91O9ts29UQ==",
18504 "deprecated": "Use your platform's native performance.now() and performance.timeOrigin.", 4856 "license": "MIT",
18505 "dependencies": {
18506 "browser-process-hrtime": "^1.0.0"
18507 }
18508 },
18509 "node_modules/w3c-xmlserializer": {
18510 "version": "2.0.0",
18511 "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz",
18512 "integrity": "sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==",
18513 "dependencies": {
18514 "xml-name-validator": "^3.0.0"
18515 },
18516 "engines": {
18517 "node": ">=10"
18518 }
18519 },
18520 "node_modules/walker": {
18521 "version": "1.0.8",
18522 "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz",
18523 "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==",
18524 "dependencies": {
18525 "makeerror": "1.0.12"
18526 }
18527 },
18528 "node_modules/watchpack": {
18529 "version": "2.4.2",
18530 "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.2.tgz",
18531 "integrity": "sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw==",
18532 "dependencies": {
18533 "glob-to-regexp": "^0.4.1",
18534 "graceful-fs": "^4.1.2"
18535 },
18536 "engines": {
18537 "node": ">=10.13.0"
18538 }
18539 },
18540 "node_modules/wbuf": {
18541 "version": "1.7.3",
18542 "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz",
18543 "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==",
18544 "dependencies": {
18545 "minimalistic-assert": "^1.0.0"
18546 }
18547 },
18548 "node_modules/web-vitals": {
18549 "version": "2.1.4",
18550 "resolved": "https://registry.npmjs.org/web-vitals/-/web-vitals-2.1.4.tgz",
18551 "integrity": "sha512-sVWcwhU5mX6crfI5Vd2dC4qchyTqxV8URinzt25XqVh+bHEPGH4C3NPrNionCP7Obx59wrYEbNlw4Z8sjALzZg=="
18552 },
18553 "node_modules/webidl-conversions": {
18554 "version": "6.1.0",
18555 "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz",
18556 "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==",
18557 "engines": {
18558 "node": ">=10.4"
18559 }
18560 },
18561 "node_modules/webpack": {
18562 "version": "5.93.0",
18563 "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.93.0.tgz",
18564 "integrity": "sha512-Y0m5oEY1LRuwly578VqluorkXbvXKh7U3rLoQCEO04M97ScRr44afGVkI0FQFsXzysk5OgFAxjZAb9rsGQVihA==",
18565 "dependencies": { 4857 "dependencies": {
18566 "@types/eslint-scope": "^3.7.3", 4858 "esbuild": "^0.25.0",
18567 "@types/estree": "^1.0.5", 4859 "fdir": "^6.4.6",
18568 "@webassemblyjs/ast": "^1.12.1", 4860 "picomatch": "^4.0.3",
18569 "@webassemblyjs/wasm-edit": "^1.12.1", 4861 "postcss": "^8.5.6",
18570 "@webassemblyjs/wasm-parser": "^1.12.1", 4862 "rollup": "^4.43.0",
18571 "acorn": "^8.7.1", 4863 "tinyglobby": "^0.2.14"
18572 "acorn-import-attributes": "^1.9.5",
18573 "browserslist": "^4.21.10",
18574 "chrome-trace-event": "^1.0.2",
18575 "enhanced-resolve": "^5.17.0",
18576 "es-module-lexer": "^1.2.1",
18577 "eslint-scope": "5.1.1",
18578 "events": "^3.2.0",
18579 "glob-to-regexp": "^0.4.1",
18580 "graceful-fs": "^4.2.11",
18581 "json-parse-even-better-errors": "^2.3.1",
18582 "loader-runner": "^4.2.0",
18583 "mime-types": "^2.1.27",
18584 "neo-async": "^2.6.2",
18585 "schema-utils": "^3.2.0",
18586 "tapable": "^2.1.1",
18587 "terser-webpack-plugin": "^5.3.10",
18588 "watchpack": "^2.4.1",
18589 "webpack-sources": "^3.2.3"
18590 }, 4864 },
18591 "bin": { 4865 "bin": {
18592 "webpack": "bin/webpack.js" 4866 "vite": "bin/vite.js"
18593 },
18594 "engines": {
18595 "node": ">=10.13.0"
18596 },
18597 "funding": {
18598 "type": "opencollective",
18599 "url": "https://opencollective.com/webpack"
18600 },
18601 "peerDependenciesMeta": {
18602 "webpack-cli": {
18603 "optional": true
18604 }
18605 }
18606 },
18607 "node_modules/webpack-dev-middleware": {
18608 "version": "5.3.4",
18609 "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.4.tgz",
18610 "integrity": "sha512-BVdTqhhs+0IfoeAf7EoH5WE+exCmqGerHfDM0IL096Px60Tq2Mn9MAbnaGUe6HiMa41KMCYF19gyzZmBcq/o4Q==",
18611 "dependencies": {
18612 "colorette": "^2.0.10",
18613 "memfs": "^3.4.3",
18614 "mime-types": "^2.1.31",
18615 "range-parser": "^1.2.1",
18616 "schema-utils": "^4.0.0"
18617 }, 4867 },
18618 "engines": { 4868 "engines": {
18619 "node": ">= 12.13.0" 4869 "node": "^20.19.0 || >=22.12.0"
18620 }, 4870 },
18621 "funding": { 4871 "funding": {
18622 "type": "opencollective", 4872 "url": "https://github.com/vitejs/vite?sponsor=1"
18623 "url": "https://opencollective.com/webpack"
18624 },
18625 "peerDependencies": {
18626 "webpack": "^4.0.0 || ^5.0.0"
18627 }
18628 },
18629 "node_modules/webpack-dev-server": {
18630 "version": "4.15.2",
18631 "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.15.2.tgz",
18632 "integrity": "sha512-0XavAZbNJ5sDrCbkpWL8mia0o5WPOd2YGtxrEiZkBK9FjLppIUK2TgxK6qGD2P3hUXTJNNPVibrerKcx5WkR1g==",
18633 "dependencies": {
18634 "@types/bonjour": "^3.5.9",
18635 "@types/connect-history-api-fallback": "^1.3.5",
18636 "@types/express": "^4.17.13",
18637 "@types/serve-index": "^1.9.1",
18638 "@types/serve-static": "^1.13.10",
18639 "@types/sockjs": "^0.3.33",
18640 "@types/ws": "^8.5.5",
18641 "ansi-html-community": "^0.0.8",
18642 "bonjour-service": "^1.0.11",
18643 "chokidar": "^3.5.3",
18644 "colorette": "^2.0.10",
18645 "compression": "^1.7.4",
18646 "connect-history-api-fallback": "^2.0.0",
18647 "default-gateway": "^6.0.3",
18648 "express": "^4.17.3",
18649 "graceful-fs": "^4.2.6",
18650 "html-entities": "^2.3.2",
18651 "http-proxy-middleware": "^2.0.3",
18652 "ipaddr.js": "^2.0.1",
18653 "launch-editor": "^2.6.0",
18654 "open": "^8.0.9",
18655 "p-retry": "^4.5.0",
18656 "rimraf": "^3.0.2",
18657 "schema-utils": "^4.0.0",
18658 "selfsigned": "^2.1.1",
18659 "serve-index": "^1.9.1",
18660 "sockjs": "^0.3.24",
18661 "spdy": "^4.0.2",
18662 "webpack-dev-middleware": "^5.3.4",
18663 "ws": "^8.13.0"
18664 },
18665 "bin": {
18666 "webpack-dev-server": "bin/webpack-dev-server.js"
18667 }, 4873 },
18668 "engines": { 4874 "optionalDependencies": {
18669 "node": ">= 12.13.0" 4875 "fsevents": "~2.3.3"
18670 },
18671 "funding": {
18672 "type": "opencollective",
18673 "url": "https://opencollective.com/webpack"
18674 }, 4876 },
18675 "peerDependencies": { 4877 "peerDependencies": {
18676 "webpack": "^4.37.0 || ^5.0.0" 4878 "@types/node": "^20.19.0 || >=22.12.0",
4879 "jiti": ">=1.21.0",
4880 "less": "^4.0.0",
4881 "lightningcss": "^1.21.0",
4882 "sass": "^1.70.0",
4883 "sass-embedded": "^1.70.0",
4884 "stylus": ">=0.54.8",
4885 "sugarss": "^5.0.0",
4886 "terser": "^5.16.0",
4887 "tsx": "^4.8.1",
4888 "yaml": "^2.4.2"
18677 }, 4889 },
18678 "peerDependenciesMeta": { 4890 "peerDependenciesMeta": {
18679 "webpack": { 4891 "@types/node": {
18680 "optional": true 4892 "optional": true
18681 }, 4893 },
18682 "webpack-cli": { 4894 "jiti": {
18683 "optional": true 4895 "optional": true
18684 } 4896 },
18685 } 4897 "less": {
18686 }, 4898 "optional": true
18687 "node_modules/webpack-dev-server/node_modules/ws": { 4899 },
18688 "version": "8.18.0", 4900 "lightningcss": {
18689 "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz", 4901 "optional": true
18690 "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", 4902 },
18691 "engines": { 4903 "sass": {
18692 "node": ">=10.0.0" 4904 "optional": true
18693 }, 4905 },
18694 "peerDependencies": { 4906 "sass-embedded": {
18695 "bufferutil": "^4.0.1", 4907 "optional": true
18696 "utf-8-validate": ">=5.0.2" 4908 },
18697 }, 4909 "stylus": {
18698 "peerDependenciesMeta": { 4910 "optional": true
18699 "bufferutil": { 4911 },
4912 "sugarss": {
4913 "optional": true
4914 },
4915 "terser": {
4916 "optional": true
4917 },
4918 "tsx": {
18700 "optional": true 4919 "optional": true
18701 }, 4920 },
18702 "utf-8-validate": { 4921 "yaml": {
18703 "optional": true 4922 "optional": true
18704 } 4923 }
18705 } 4924 }
18706 }, 4925 },
18707 "node_modules/webpack-manifest-plugin": { 4926 "node_modules/web-vitals": {
18708 "version": "4.1.1", 4927 "version": "2.1.4",
18709 "resolved": "https://registry.npmjs.org/webpack-manifest-plugin/-/webpack-manifest-plugin-4.1.1.tgz", 4928 "resolved": "https://registry.npmjs.org/web-vitals/-/web-vitals-2.1.4.tgz",
18710 "integrity": "sha512-YXUAwxtfKIJIKkhg03MKuiFAD72PlrqCiwdwO4VEXdRO5V0ORCNwaOwAZawPZalCbmH9kBDmXnNeQOw+BIEiow==", 4929 "integrity": "sha512-sVWcwhU5mX6crfI5Vd2dC4qchyTqxV8URinzt25XqVh+bHEPGH4C3NPrNionCP7Obx59wrYEbNlw4Z8sjALzZg==",
18711 "dependencies": { 4930 "license": "Apache-2.0"
18712 "tapable": "^2.0.0",
18713 "webpack-sources": "^2.2.0"
18714 },
18715 "engines": {
18716 "node": ">=12.22.0"
18717 },
18718 "peerDependencies": {
18719 "webpack": "^4.44.2 || ^5.47.0"
18720 }
18721 },
18722 "node_modules/webpack-manifest-plugin/node_modules/source-map": {
18723 "version": "0.6.1",
18724 "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
18725 "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
18726 "engines": {
18727 "node": ">=0.10.0"
18728 }
18729 },
18730 "node_modules/webpack-manifest-plugin/node_modules/webpack-sources": {
18731 "version": "2.3.1",
18732 "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-2.3.1.tgz",
18733 "integrity": "sha512-y9EI9AO42JjEcrTJFOYmVywVZdKVUfOvDUPsJea5GIr1JOEGFVqwlY2K098fFoIjOkDzHn2AjRvM8dsBZu+gCA==",
18734 "dependencies": {
18735 "source-list-map": "^2.0.1",
18736 "source-map": "^0.6.1"
18737 },
18738 "engines": {
18739 "node": ">=10.13.0"
18740 }
18741 },
18742 "node_modules/webpack-merge": {
18743 "version": "5.10.0",
18744 "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.10.0.tgz",
18745 "integrity": "sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA==",
18746 "dev": true,
18747 "license": "MIT",
18748 "dependencies": {
18749 "clone-deep": "^4.0.1",
18750 "flat": "^5.0.2",
18751 "wildcard": "^2.0.0"
18752 },
18753 "engines": {
18754 "node": ">=10.0.0"
18755 }
18756 },
18757 "node_modules/webpack-sources": {
18758 "version": "3.2.3",
18759 "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz",
18760 "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==",
18761 "engines": {
18762 "node": ">=10.13.0"
18763 }
18764 },
18765 "node_modules/webpack/node_modules/eslint-scope": {
18766 "version": "5.1.1",
18767 "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz",
18768 "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==",
18769 "dependencies": {
18770 "esrecurse": "^4.3.0",
18771 "estraverse": "^4.1.1"
18772 },
18773 "engines": {
18774 "node": ">=8.0.0"
18775 }
18776 },
18777 "node_modules/webpack/node_modules/estraverse": {
18778 "version": "4.3.0",
18779 "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz",
18780 "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==",
18781 "engines": {
18782 "node": ">=4.0"
18783 }
18784 },
18785 "node_modules/webpack/node_modules/schema-utils": {
18786 "version": "3.3.0",
18787 "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz",
18788 "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==",
18789 "dependencies": {
18790 "@types/json-schema": "^7.0.8",
18791 "ajv": "^6.12.5",
18792 "ajv-keywords": "^3.5.2"
18793 },
18794 "engines": {
18795 "node": ">= 10.13.0"
18796 },
18797 "funding": {
18798 "type": "opencollective",
18799 "url": "https://opencollective.com/webpack"
18800 }
18801 },
18802 "node_modules/websocket-driver": {
18803 "version": "0.7.4",
18804 "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz",
18805 "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==",
18806 "dependencies": {
18807 "http-parser-js": ">=0.5.1",
18808 "safe-buffer": ">=5.1.0",
18809 "websocket-extensions": ">=0.1.1"
18810 },
18811 "engines": {
18812 "node": ">=0.8.0"
18813 }
18814 },
18815 "node_modules/websocket-extensions": {
18816 "version": "0.1.4",
18817 "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz",
18818 "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==",
18819 "engines": {
18820 "node": ">=0.8.0"
18821 }
18822 },
18823 "node_modules/whatwg-encoding": {
18824 "version": "1.0.5",
18825 "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz",
18826 "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==",
18827 "dependencies": {
18828 "iconv-lite": "0.4.24"
18829 }
18830 },
18831 "node_modules/whatwg-encoding/node_modules/iconv-lite": {
18832 "version": "0.4.24",
18833 "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
18834 "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
18835 "dependencies": {
18836 "safer-buffer": ">= 2.1.2 < 3"
18837 },
18838 "engines": {
18839 "node": ">=0.10.0"
18840 }
18841 },
18842 "node_modules/whatwg-fetch": {
18843 "version": "3.6.20",
18844 "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.20.tgz",
18845 "integrity": "sha512-EqhiFU6daOA8kpjOWTL0olhVOF3i7OrFzSYiGsEMB8GcXS+RrzauAERX65xMeNWVqxA6HXH2m69Z9LaKKdisfg=="
18846 },
18847 "node_modules/whatwg-mimetype": {
18848 "version": "2.3.0",
18849 "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz",
18850 "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g=="
18851 },
18852 "node_modules/whatwg-url": {
18853 "version": "8.7.0",
18854 "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.7.0.tgz",
18855 "integrity": "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==",
18856 "dependencies": {
18857 "lodash": "^4.7.0",
18858 "tr46": "^2.1.0",
18859 "webidl-conversions": "^6.1.0"
18860 },
18861 "engines": {
18862 "node": ">=10"
18863 }
18864 },
18865 "node_modules/which": {
18866 "version": "2.0.2",
18867 "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
18868 "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
18869 "dependencies": {
18870 "isexe": "^2.0.0"
18871 },
18872 "bin": {
18873 "node-which": "bin/node-which"
18874 },
18875 "engines": {
18876 "node": ">= 8"
18877 }
18878 }, 4931 },
18879 "node_modules/which-boxed-primitive": { 4932 "node_modules/which-boxed-primitive": {
18880 "version": "1.0.2", 4933 "version": "1.1.1",
18881 "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", 4934 "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.1.1.tgz",
18882 "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", 4935 "integrity": "sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==",
18883 "dependencies": { 4936 "license": "MIT",
18884 "is-bigint": "^1.0.1",
18885 "is-boolean-object": "^1.1.0",
18886 "is-number-object": "^1.0.4",
18887 "is-string": "^1.0.5",
18888 "is-symbol": "^1.0.3"
18889 },
18890 "funding": {
18891 "url": "https://github.com/sponsors/ljharb"
18892 }
18893 },
18894 "node_modules/which-builtin-type": {
18895 "version": "1.1.4",
18896 "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.1.4.tgz",
18897 "integrity": "sha512-bppkmBSsHFmIMSl8BO9TbsyzsvGjVoppt8xUiGzwiu/bhDCGxnpOKCxgqj6GuyHE0mINMDecBFPlOm2hzY084w==",
18898 "dependencies": { 4937 "dependencies": {
18899 "function.prototype.name": "^1.1.6", 4938 "is-bigint": "^1.1.0",
18900 "has-tostringtag": "^1.0.2", 4939 "is-boolean-object": "^1.2.1",
18901 "is-async-function": "^2.0.0", 4940 "is-number-object": "^1.1.1",
18902 "is-date-object": "^1.0.5", 4941 "is-string": "^1.1.1",
18903 "is-finalizationregistry": "^1.0.2", 4942 "is-symbol": "^1.1.1"
18904 "is-generator-function": "^1.0.10",
18905 "is-regex": "^1.1.4",
18906 "is-weakref": "^1.0.2",
18907 "isarray": "^2.0.5",
18908 "which-boxed-primitive": "^1.0.2",
18909 "which-collection": "^1.0.2",
18910 "which-typed-array": "^1.1.15"
18911 }, 4943 },
18912 "engines": { 4944 "engines": {
18913 "node": ">= 0.4" 4945 "node": ">= 0.4"
@@ -18920,6 +4952,7 @@
18920 "version": "1.0.2", 4952 "version": "1.0.2",
18921 "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz", 4953 "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz",
18922 "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==", 4954 "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==",
4955 "license": "MIT",
18923 "dependencies": { 4956 "dependencies": {
18924 "is-map": "^2.0.3", 4957 "is-map": "^2.0.3",
18925 "is-set": "^2.0.3", 4958 "is-set": "^2.0.3",
@@ -18934,14 +4967,16 @@
18934 } 4967 }
18935 }, 4968 },
18936 "node_modules/which-typed-array": { 4969 "node_modules/which-typed-array": {
18937 "version": "1.1.15", 4970 "version": "1.1.18",
18938 "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.15.tgz", 4971 "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.18.tgz",
18939 "integrity": "sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==", 4972 "integrity": "sha512-qEcY+KJYlWyLH9vNbsr6/5j59AXk5ni5aakf8ldzBvGde6Iz4sxZGkJyWSAueTG7QhOvNRYb1lDdFmL5Td0QKA==",
4973 "license": "MIT",
18940 "dependencies": { 4974 "dependencies": {
18941 "available-typed-arrays": "^1.0.7", 4975 "available-typed-arrays": "^1.0.7",
18942 "call-bind": "^1.0.7", 4976 "call-bind": "^1.0.8",
4977 "call-bound": "^1.0.3",
18943 "for-each": "^0.3.3", 4978 "for-each": "^0.3.3",
18944 "gopd": "^1.0.1", 4979 "gopd": "^1.2.0",
18945 "has-tostringtag": "^1.0.2" 4980 "has-tostringtag": "^1.0.2"
18946 }, 4981 },
18947 "engines": { 4982 "engines": {
@@ -18951,527 +4986,17 @@
18951 "url": "https://github.com/sponsors/ljharb" 4986 "url": "https://github.com/sponsors/ljharb"
18952 } 4987 }
18953 }, 4988 },
18954 "node_modules/wildcard": {
18955 "version": "2.0.1",
18956 "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.1.tgz",
18957 "integrity": "sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==",
18958 "dev": true,
18959 "license": "MIT"
18960 },
18961 "node_modules/word-wrap": {
18962 "version": "1.2.5",
18963 "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz",
18964 "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==",
18965 "engines": {
18966 "node": ">=0.10.0"
18967 }
18968 },
18969 "node_modules/workbox-background-sync": {
18970 "version": "6.6.0",
18971 "resolved": "https://registry.npmjs.org/workbox-background-sync/-/workbox-background-sync-6.6.0.tgz",
18972 "integrity": "sha512-jkf4ZdgOJxC9u2vztxLuPT/UjlH7m/nWRQ/MgGL0v8BJHoZdVGJd18Kck+a0e55wGXdqyHO+4IQTk0685g4MUw==",
18973 "dependencies": {
18974 "idb": "^7.0.1",
18975 "workbox-core": "6.6.0"
18976 }
18977 },
18978 "node_modules/workbox-broadcast-update": {
18979 "version": "6.6.0",
18980 "resolved": "https://registry.npmjs.org/workbox-broadcast-update/-/workbox-broadcast-update-6.6.0.tgz",
18981 "integrity": "sha512-nm+v6QmrIFaB/yokJmQ/93qIJ7n72NICxIwQwe5xsZiV2aI93MGGyEyzOzDPVz5THEr5rC3FJSsO3346cId64Q==",
18982 "dependencies": {
18983 "workbox-core": "6.6.0"
18984 }
18985 },
18986 "node_modules/workbox-build": {
18987 "version": "6.6.0",
18988 "resolved": "https://registry.npmjs.org/workbox-build/-/workbox-build-6.6.0.tgz",
18989 "integrity": "sha512-Tjf+gBwOTuGyZwMz2Nk/B13Fuyeo0Q84W++bebbVsfr9iLkDSo6j6PST8tET9HYA58mlRXwlMGpyWO8ETJiXdQ==",
18990 "dependencies": {
18991 "@apideck/better-ajv-errors": "^0.3.1",
18992 "@babel/core": "^7.11.1",
18993 "@babel/preset-env": "^7.11.0",
18994 "@babel/runtime": "^7.11.2",
18995 "@rollup/plugin-babel": "^5.2.0",
18996 "@rollup/plugin-node-resolve": "^11.2.1",
18997 "@rollup/plugin-replace": "^2.4.1",
18998 "@surma/rollup-plugin-off-main-thread": "^2.2.3",
18999 "ajv": "^8.6.0",
19000 "common-tags": "^1.8.0",
19001 "fast-json-stable-stringify": "^2.1.0",
19002 "fs-extra": "^9.0.1",
19003 "glob": "^7.1.6",
19004 "lodash": "^4.17.20",
19005 "pretty-bytes": "^5.3.0",
19006 "rollup": "^2.43.1",
19007 "rollup-plugin-terser": "^7.0.0",
19008 "source-map": "^0.8.0-beta.0",
19009 "stringify-object": "^3.3.0",
19010 "strip-comments": "^2.0.1",
19011 "tempy": "^0.6.0",
19012 "upath": "^1.2.0",
19013 "workbox-background-sync": "6.6.0",
19014 "workbox-broadcast-update": "6.6.0",
19015 "workbox-cacheable-response": "6.6.0",
19016 "workbox-core": "6.6.0",
19017 "workbox-expiration": "6.6.0",
19018 "workbox-google-analytics": "6.6.0",
19019 "workbox-navigation-preload": "6.6.0",
19020 "workbox-precaching": "6.6.0",
19021 "workbox-range-requests": "6.6.0",
19022 "workbox-recipes": "6.6.0",
19023 "workbox-routing": "6.6.0",
19024 "workbox-strategies": "6.6.0",
19025 "workbox-streams": "6.6.0",
19026 "workbox-sw": "6.6.0",
19027 "workbox-window": "6.6.0"
19028 },
19029 "engines": {
19030 "node": ">=10.0.0"
19031 }
19032 },
19033 "node_modules/workbox-build/node_modules/@apideck/better-ajv-errors": {
19034 "version": "0.3.6",
19035 "resolved": "https://registry.npmjs.org/@apideck/better-ajv-errors/-/better-ajv-errors-0.3.6.tgz",
19036 "integrity": "sha512-P+ZygBLZtkp0qqOAJJVX4oX/sFo5JR3eBWwwuqHHhK0GIgQOKWrAfiAaWX0aArHkRWHMuggFEgAZNxVPwPZYaA==",
19037 "dependencies": {
19038 "json-schema": "^0.4.0",
19039 "jsonpointer": "^5.0.0",
19040 "leven": "^3.1.0"
19041 },
19042 "engines": {
19043 "node": ">=10"
19044 },
19045 "peerDependencies": {
19046 "ajv": ">=8"
19047 }
19048 },
19049 "node_modules/workbox-build/node_modules/ajv": {
19050 "version": "8.17.1",
19051 "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz",
19052 "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==",
19053 "dependencies": {
19054 "fast-deep-equal": "^3.1.3",
19055 "fast-uri": "^3.0.1",
19056 "json-schema-traverse": "^1.0.0",
19057 "require-from-string": "^2.0.2"
19058 },
19059 "funding": {
19060 "type": "github",
19061 "url": "https://github.com/sponsors/epoberezkin"
19062 }
19063 },
19064 "node_modules/workbox-build/node_modules/fs-extra": {
19065 "version": "9.1.0",
19066 "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz",
19067 "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==",
19068 "dependencies": {
19069 "at-least-node": "^1.0.0",
19070 "graceful-fs": "^4.2.0",
19071 "jsonfile": "^6.0.1",
19072 "universalify": "^2.0.0"
19073 },
19074 "engines": {
19075 "node": ">=10"
19076 }
19077 },
19078 "node_modules/workbox-build/node_modules/json-schema-traverse": {
19079 "version": "1.0.0",
19080 "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
19081 "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug=="
19082 },
19083 "node_modules/workbox-build/node_modules/source-map": {
19084 "version": "0.8.0-beta.0",
19085 "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.8.0-beta.0.tgz",
19086 "integrity": "sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==",
19087 "dependencies": {
19088 "whatwg-url": "^7.0.0"
19089 },
19090 "engines": {
19091 "node": ">= 8"
19092 }
19093 },
19094 "node_modules/workbox-build/node_modules/tr46": {
19095 "version": "1.0.1",
19096 "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz",
19097 "integrity": "sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==",
19098 "dependencies": {
19099 "punycode": "^2.1.0"
19100 }
19101 },
19102 "node_modules/workbox-build/node_modules/webidl-conversions": {
19103 "version": "4.0.2",
19104 "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz",
19105 "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg=="
19106 },
19107 "node_modules/workbox-build/node_modules/whatwg-url": {
19108 "version": "7.1.0",
19109 "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz",
19110 "integrity": "sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==",
19111 "dependencies": {
19112 "lodash.sortby": "^4.7.0",
19113 "tr46": "^1.0.1",
19114 "webidl-conversions": "^4.0.2"
19115 }
19116 },
19117 "node_modules/workbox-cacheable-response": {
19118 "version": "6.6.0",
19119 "resolved": "https://registry.npmjs.org/workbox-cacheable-response/-/workbox-cacheable-response-6.6.0.tgz",
19120 "integrity": "sha512-JfhJUSQDwsF1Xv3EV1vWzSsCOZn4mQ38bWEBR3LdvOxSPgB65gAM6cS2CX8rkkKHRgiLrN7Wxoyu+TuH67kHrw==",
19121 "deprecated": "workbox-background-sync@6.6.0",
19122 "dependencies": {
19123 "workbox-core": "6.6.0"
19124 }
19125 },
19126 "node_modules/workbox-core": {
19127 "version": "6.6.0",
19128 "resolved": "https://registry.npmjs.org/workbox-core/-/workbox-core-6.6.0.tgz",
19129 "integrity": "sha512-GDtFRF7Yg3DD859PMbPAYPeJyg5gJYXuBQAC+wyrWuuXgpfoOrIQIvFRZnQ7+czTIQjIr1DhLEGFzZanAT/3bQ=="
19130 },
19131 "node_modules/workbox-expiration": {
19132 "version": "6.6.0",
19133 "resolved": "https://registry.npmjs.org/workbox-expiration/-/workbox-expiration-6.6.0.tgz",
19134 "integrity": "sha512-baplYXcDHbe8vAo7GYvyAmlS4f6998Jff513L4XvlzAOxcl8F620O91guoJ5EOf5qeXG4cGdNZHkkVAPouFCpw==",
19135 "dependencies": {
19136 "idb": "^7.0.1",
19137 "workbox-core": "6.6.0"
19138 }
19139 },
19140 "node_modules/workbox-google-analytics": {
19141 "version": "6.6.0",
19142 "resolved": "https://registry.npmjs.org/workbox-google-analytics/-/workbox-google-analytics-6.6.0.tgz",
19143 "integrity": "sha512-p4DJa6OldXWd6M9zRl0H6vB9lkrmqYFkRQ2xEiNdBFp9U0LhsGO7hsBscVEyH9H2/3eZZt8c97NB2FD9U2NJ+Q==",
19144 "deprecated": "It is not compatible with newer versions of GA starting with v4, as long as you are using GAv3 it should be ok, but the package is not longer being maintained",
19145 "dependencies": {
19146 "workbox-background-sync": "6.6.0",
19147 "workbox-core": "6.6.0",
19148 "workbox-routing": "6.6.0",
19149 "workbox-strategies": "6.6.0"
19150 }
19151 },
19152 "node_modules/workbox-navigation-preload": {
19153 "version": "6.6.0",
19154 "resolved": "https://registry.npmjs.org/workbox-navigation-preload/-/workbox-navigation-preload-6.6.0.tgz",
19155 "integrity": "sha512-utNEWG+uOfXdaZmvhshrh7KzhDu/1iMHyQOV6Aqup8Mm78D286ugu5k9MFD9SzBT5TcwgwSORVvInaXWbvKz9Q==",
19156 "dependencies": {
19157 "workbox-core": "6.6.0"
19158 }
19159 },
19160 "node_modules/workbox-precaching": {
19161 "version": "6.6.0",
19162 "resolved": "https://registry.npmjs.org/workbox-precaching/-/workbox-precaching-6.6.0.tgz",
19163 "integrity": "sha512-eYu/7MqtRZN1IDttl/UQcSZFkHP7dnvr/X3Vn6Iw6OsPMruQHiVjjomDFCNtd8k2RdjLs0xiz9nq+t3YVBcWPw==",
19164 "dependencies": {
19165 "workbox-core": "6.6.0",
19166 "workbox-routing": "6.6.0",
19167 "workbox-strategies": "6.6.0"
19168 }
19169 },
19170 "node_modules/workbox-range-requests": {
19171 "version": "6.6.0",
19172 "resolved": "https://registry.npmjs.org/workbox-range-requests/-/workbox-range-requests-6.6.0.tgz",
19173 "integrity": "sha512-V3aICz5fLGq5DpSYEU8LxeXvsT//mRWzKrfBOIxzIdQnV/Wj7R+LyJVTczi4CQ4NwKhAaBVaSujI1cEjXW+hTw==",
19174 "dependencies": {
19175 "workbox-core": "6.6.0"
19176 }
19177 },
19178 "node_modules/workbox-recipes": {
19179 "version": "6.6.0",
19180 "resolved": "https://registry.npmjs.org/workbox-recipes/-/workbox-recipes-6.6.0.tgz",
19181 "integrity": "sha512-TFi3kTgYw73t5tg73yPVqQC8QQjxJSeqjXRO4ouE/CeypmP2O/xqmB/ZFBBQazLTPxILUQ0b8aeh0IuxVn9a6A==",
19182 "dependencies": {
19183 "workbox-cacheable-response": "6.6.0",
19184 "workbox-core": "6.6.0",
19185 "workbox-expiration": "6.6.0",
19186 "workbox-precaching": "6.6.0",
19187 "workbox-routing": "6.6.0",
19188 "workbox-strategies": "6.6.0"
19189 }
19190 },
19191 "node_modules/workbox-routing": {
19192 "version": "6.6.0",
19193 "resolved": "https://registry.npmjs.org/workbox-routing/-/workbox-routing-6.6.0.tgz",
19194 "integrity": "sha512-x8gdN7VDBiLC03izAZRfU+WKUXJnbqt6PG9Uh0XuPRzJPpZGLKce/FkOX95dWHRpOHWLEq8RXzjW0O+POSkKvw==",
19195 "dependencies": {
19196 "workbox-core": "6.6.0"
19197 }
19198 },
19199 "node_modules/workbox-strategies": {
19200 "version": "6.6.0",
19201 "resolved": "https://registry.npmjs.org/workbox-strategies/-/workbox-strategies-6.6.0.tgz",
19202 "integrity": "sha512-eC07XGuINAKUWDnZeIPdRdVja4JQtTuc35TZ8SwMb1ztjp7Ddq2CJ4yqLvWzFWGlYI7CG/YGqaETntTxBGdKgQ==",
19203 "dependencies": {
19204 "workbox-core": "6.6.0"
19205 }
19206 },
19207 "node_modules/workbox-streams": {
19208 "version": "6.6.0",
19209 "resolved": "https://registry.npmjs.org/workbox-streams/-/workbox-streams-6.6.0.tgz",
19210 "integrity": "sha512-rfMJLVvwuED09CnH1RnIep7L9+mj4ufkTyDPVaXPKlhi9+0czCu+SJggWCIFbPpJaAZmp2iyVGLqS3RUmY3fxg==",
19211 "dependencies": {
19212 "workbox-core": "6.6.0",
19213 "workbox-routing": "6.6.0"
19214 }
19215 },
19216 "node_modules/workbox-sw": {
19217 "version": "6.6.0",
19218 "resolved": "https://registry.npmjs.org/workbox-sw/-/workbox-sw-6.6.0.tgz",
19219 "integrity": "sha512-R2IkwDokbtHUE4Kus8pKO5+VkPHD2oqTgl+XJwh4zbF1HyjAbgNmK/FneZHVU7p03XUt9ICfuGDYISWG9qV/CQ=="
19220 },
19221 "node_modules/workbox-webpack-plugin": {
19222 "version": "6.6.0",
19223 "resolved": "https://registry.npmjs.org/workbox-webpack-plugin/-/workbox-webpack-plugin-6.6.0.tgz",
19224 "integrity": "sha512-xNZIZHalboZU66Wa7x1YkjIqEy1gTR+zPM+kjrYJzqN7iurYZBctBLISyScjhkJKYuRrZUP0iqViZTh8rS0+3A==",
19225 "dependencies": {
19226 "fast-json-stable-stringify": "^2.1.0",
19227 "pretty-bytes": "^5.4.1",
19228 "upath": "^1.2.0",
19229 "webpack-sources": "^1.4.3",
19230 "workbox-build": "6.6.0"
19231 },
19232 "engines": {
19233 "node": ">=10.0.0"
19234 },
19235 "peerDependencies": {
19236 "webpack": "^4.4.0 || ^5.9.0"
19237 }
19238 },
19239 "node_modules/workbox-webpack-plugin/node_modules/source-map": {
19240 "version": "0.6.1",
19241 "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
19242 "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
19243 "engines": {
19244 "node": ">=0.10.0"
19245 }
19246 },
19247 "node_modules/workbox-webpack-plugin/node_modules/webpack-sources": {
19248 "version": "1.4.3",
19249 "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz",
19250 "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==",
19251 "dependencies": {
19252 "source-list-map": "^2.0.0",
19253 "source-map": "~0.6.1"
19254 }
19255 },
19256 "node_modules/workbox-window": {
19257 "version": "6.6.0",
19258 "resolved": "https://registry.npmjs.org/workbox-window/-/workbox-window-6.6.0.tgz",
19259 "integrity": "sha512-L4N9+vka17d16geaJXXRjENLFldvkWy7JyGxElRD0JvBxvFEd8LOhr+uXCcar/NzAmIBRv9EZ+M+Qr4mOoBITw==",
19260 "dependencies": {
19261 "@types/trusted-types": "^2.0.2",
19262 "workbox-core": "6.6.0"
19263 }
19264 },
19265 "node_modules/wrap-ansi": {
19266 "version": "7.0.0",
19267 "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
19268 "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
19269 "dependencies": {
19270 "ansi-styles": "^4.0.0",
19271 "string-width": "^4.1.0",
19272 "strip-ansi": "^6.0.0"
19273 },
19274 "engines": {
19275 "node": ">=10"
19276 },
19277 "funding": {
19278 "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
19279 }
19280 },
19281 "node_modules/wrap-ansi-cjs": {
19282 "name": "wrap-ansi",
19283 "version": "7.0.0",
19284 "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
19285 "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
19286 "dependencies": {
19287 "ansi-styles": "^4.0.0",
19288 "string-width": "^4.1.0",
19289 "strip-ansi": "^6.0.0"
19290 },
19291 "engines": {
19292 "node": ">=10"
19293 },
19294 "funding": {
19295 "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
19296 }
19297 },
19298 "node_modules/wrap-ansi-cjs/node_modules/ansi-styles": {
19299 "version": "4.3.0",
19300 "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
19301 "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
19302 "dependencies": {
19303 "color-convert": "^2.0.1"
19304 },
19305 "engines": {
19306 "node": ">=8"
19307 },
19308 "funding": {
19309 "url": "https://github.com/chalk/ansi-styles?sponsor=1"
19310 }
19311 },
19312 "node_modules/wrap-ansi-cjs/node_modules/color-convert": {
19313 "version": "2.0.1",
19314 "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
19315 "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
19316 "dependencies": {
19317 "color-name": "~1.1.4"
19318 },
19319 "engines": {
19320 "node": ">=7.0.0"
19321 }
19322 },
19323 "node_modules/wrap-ansi-cjs/node_modules/color-name": {
19324 "version": "1.1.4",
19325 "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
19326 "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
19327 },
19328 "node_modules/wrap-ansi/node_modules/ansi-styles": {
19329 "version": "4.3.0",
19330 "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
19331 "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
19332 "dependencies": {
19333 "color-convert": "^2.0.1"
19334 },
19335 "engines": {
19336 "node": ">=8"
19337 },
19338 "funding": {
19339 "url": "https://github.com/chalk/ansi-styles?sponsor=1"
19340 }
19341 },
19342 "node_modules/wrap-ansi/node_modules/color-convert": {
19343 "version": "2.0.1",
19344 "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
19345 "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
19346 "dependencies": {
19347 "color-name": "~1.1.4"
19348 },
19349 "engines": {
19350 "node": ">=7.0.0"
19351 }
19352 },
19353 "node_modules/wrap-ansi/node_modules/color-name": {
19354 "version": "1.1.4",
19355 "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
19356 "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
19357 },
19358 "node_modules/wrappy": {
19359 "version": "1.0.2",
19360 "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
19361 "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="
19362 },
19363 "node_modules/write-file-atomic": {
19364 "version": "3.0.3",
19365 "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz",
19366 "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==",
19367 "dependencies": {
19368 "imurmurhash": "^0.1.4",
19369 "is-typedarray": "^1.0.0",
19370 "signal-exit": "^3.0.2",
19371 "typedarray-to-buffer": "^3.1.5"
19372 }
19373 },
19374 "node_modules/ws": {
19375 "version": "7.5.10",
19376 "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz",
19377 "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==",
19378 "engines": {
19379 "node": ">=8.3.0"
19380 },
19381 "peerDependencies": {
19382 "bufferutil": "^4.0.1",
19383 "utf-8-validate": "^5.0.2"
19384 },
19385 "peerDependenciesMeta": {
19386 "bufferutil": {
19387 "optional": true
19388 },
19389 "utf-8-validate": {
19390 "optional": true
19391 }
19392 }
19393 },
19394 "node_modules/xml-name-validator": {
19395 "version": "3.0.0",
19396 "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz",
19397 "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw=="
19398 },
19399 "node_modules/xmlchars": {
19400 "version": "2.2.0",
19401 "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz",
19402 "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw=="
19403 },
19404 "node_modules/y18n": {
19405 "version": "5.0.8",
19406 "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
19407 "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==",
19408 "engines": {
19409 "node": ">=10"
19410 }
19411 },
19412 "node_modules/yallist": { 4989 "node_modules/yallist": {
19413 "version": "3.1.1", 4990 "version": "3.1.1",
19414 "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", 4991 "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
19415 "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" 4992 "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==",
19416 }, 4993 "license": "ISC"
19417 "node_modules/yaml": {
19418 "version": "1.10.2",
19419 "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz",
19420 "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==",
19421 "engines": {
19422 "node": ">= 6"
19423 }
19424 },
19425 "node_modules/yargs": {
19426 "version": "16.2.0",
19427 "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz",
19428 "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==",
19429 "dependencies": {
19430 "cliui": "^7.0.2",
19431 "escalade": "^3.1.1",
19432 "get-caller-file": "^2.0.5",
19433 "require-directory": "^2.1.1",
19434 "string-width": "^4.2.0",
19435 "y18n": "^5.0.5",
19436 "yargs-parser": "^20.2.2"
19437 },
19438 "engines": {
19439 "node": ">=10"
19440 }
19441 },
19442 "node_modules/yargs-parser": {
19443 "version": "20.2.9",
19444 "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz",
19445 "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==",
19446 "engines": {
19447 "node": ">=10"
19448 }
19449 },
19450 "node_modules/yn": {
19451 "version": "3.1.1",
19452 "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz",
19453 "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==",
19454 "devOptional": true,
19455 "license": "MIT",
19456 "engines": {
19457 "node": ">=6"
19458 }
19459 },
19460 "node_modules/yocto-queue": {
19461 "version": "0.1.0",
19462 "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz",
19463 "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==",
19464 "engines": {
19465 "node": ">=10"
19466 },
19467 "funding": {
19468 "url": "https://github.com/sponsors/sindresorhus"
19469 }
19470 }, 4994 },
19471 "node_modules/zwitch": { 4995 "node_modules/zwitch": {
19472 "version": "2.0.4", 4996 "version": "2.0.4",
19473 "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-2.0.4.tgz", 4997 "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-2.0.4.tgz",
19474 "integrity": "sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==", 4998 "integrity": "sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==",
4999 "license": "MIT",
19475 "funding": { 5000 "funding": {
19476 "type": "github", 5001 "type": "github",
19477 "url": "https://github.com/sponsors/wooorm" 5002 "url": "https://github.com/sponsors/wooorm"
diff --git a/frontend/package.json b/frontend/package.json
index 1ee6441..f2a6d37 100644
--- a/frontend/package.json
+++ b/frontend/package.json
@@ -1,31 +1,37 @@
1{ 1{
2 "name": "frontend", 2 "name": "frontend",
3 "version": "0.1.0", 3 "version": "0.1.0",
4 "type": "module",
4 "private": true, 5 "private": true,
5 "dependencies": { 6 "dependencies": {
6 "@nekz/sdp": "^0.9.0", 7 "@nekz/sdp": "^0.9.0",
8 "@tailwindcss/vite": "^4.1.11",
7 "@testing-library/jest-dom": "^5.17.0", 9 "@testing-library/jest-dom": "^5.17.0",
8 "@testing-library/react": "^13.4.0", 10 "@testing-library/react": "^13.4.0",
9 "@testing-library/user-event": "^13.5.0", 11 "@testing-library/user-event": "^13.5.0",
10 "@types/jest": "^27.5.2", 12 "@types/jest": "^27.5.2",
11 "@types/node": "^16.18.105",
12 "@types/react": "^18.3.3", 13 "@types/react": "^18.3.3",
13 "@types/react-dom": "^18.3.0", 14 "@types/react-dom": "^18.3.0",
15 "@types/react-helmet": "^6.1.11",
16 "@types/node": "^20.19.9",
17 "@vitejs/plugin-react": "^5.0.0",
14 "axios": "^1.7.4", 18 "axios": "^1.7.4",
15 "react": "^18.3.1", 19 "react": "^18.3.1",
16 "react-dom": "^18.3.1", 20 "react-dom": "^18.3.1",
17 "react-helmet": "^6.1.0", 21 "react-helmet": "^6.1.0",
18 "react-markdown": "^9.0.1", 22 "react-markdown": "^9.0.1",
19 "react-router-dom": "^6.26.1", 23 "react-router-dom": "^6.26.1",
20 "react-scripts": "5.0.1", 24 "tailwindcss": "^4.1.11",
21 "typescript": "^4.9.5", 25 "typescript": "^4.9.5",
26 "vite": "^7.1.2",
22 "web-vitals": "^2.1.4" 27 "web-vitals": "^2.1.4"
23 }, 28 },
24 "scripts": { 29 "scripts": {
25 "start": "craco start", 30 "start": "vite",
26 "build": "craco build", 31 "dev": "vite",
27 "test": "craco test", 32 "build": "vite build",
28 "eject": "react-scripts eject" 33 "preview": "vite preview",
34 "test": "vitest"
29 }, 35 },
30 "eslintConfig": { 36 "eslintConfig": {
31 "extends": [ 37 "extends": [
@@ -46,8 +52,6 @@
46 ] 52 ]
47 }, 53 },
48 "devDependencies": { 54 "devDependencies": {
49 "@craco/craco": "^7.1.0", 55 "prettier": "^3.4.2"
50 "@types/react-helmet": "^6.1.11",
51 "craco-alias": "^3.0.1"
52 } 56 }
53} 57}
diff --git a/frontend/public/index.html b/frontend/public/index.html
deleted file mode 100644
index 37e27b7..0000000
--- a/frontend/public/index.html
+++ /dev/null
@@ -1,42 +0,0 @@
1<!DOCTYPE html>
2<html lang="en">
3
4<head>
5 <meta charset="utf-8" />
6 <link rel="icon" href="%PUBLIC_URL%/favicon.ico" />
7 <meta name="viewport" content="width=device-width, initial-scale=1" />
8 <meta name="theme-color" content="#000000" />
9 <link rel="apple-touch-icon" href="%PUBLIC_URL%/logo192.png" />
10 <!--
11 manifest.json provides metadata used when your web app is installed on a
12 user's mobile device or desktop. See https://developers.google.com/web/fundamentals/web-app-manifest/
13 -->
14 <link rel="manifest" href="%PUBLIC_URL%/manifest.json" />
15 <!--
16 Notice the use of %PUBLIC_URL% in the tags above.
17 It will be replaced with the URL of the `public` folder during the build.
18 Only files inside the `public` folder can be referenced from the HTML.
19
20 Unlike "/favicon.ico" or "favicon.ico", "%PUBLIC_URL%/favicon.ico" will
21 work correctly both with client-side routing and a non-root public URL.
22 Learn how to configure a non-root public URL by running `npm run build`.
23 -->
24 <title>LPHUB</title>
25</head>
26
27<body>
28 <noscript>You need to enable JavaScript to run this app.</noscript>
29 <div id="root"></div>
30 <!--
31 This HTML file is a template.
32 If you open it directly in the browser, you will see an empty page.
33
34 You can add webfonts, meta tags, or analytics to this file.
35 The build step will place the bundled scripts into the <body> tag.
36
37 To begin the development, run `npm start` or `yarn start`.
38 To create a production bundle, use `npm run build` or `yarn build`.
39 -->
40</body>
41
42</html> \ No newline at end of file
diff --git a/frontend/src/App.css b/frontend/src/App.css
index 14a9972..464b759 100644
--- a/frontend/src/App.css
+++ b/frontend/src/App.css
@@ -1,42 +1,76 @@
1main { 1@import url('https://fonts.googleapis.com/css2?family=Barlow+Condensed:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&family=Montserrat+Alternates:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap');
2 overflow: auto; 2@import "tailwindcss";
3 overflow-x: hidden;
4 position: relative;
5 3
6 width: calc(100% - 380px); 4@theme {
7 height: 100vh; 5 --color-rosewater: #f2d5cf;
8 left: 350px; 6 --color-flamingo: #eebebe;
7 --color-pink: #f4b8e4;
8 --color-mauve: #ca9ee6;
9 --color-red: #e78284;
10 --color-maroon: #ea999c;
11 --color-peach: #ef9f76;
12 --color-yellow: #e5c890;
13 --color-green: #a6d189;
14 --color-teal: #81c8be;
15 --color-sky: #99d1db;
16 --color-sapphire: #85c1dc;
17 --color-blue: #8caaee;
18 --color-lavender: #babbf1;
19 --color-text: #c6d0f5;
20 --color-subtext1: #b5bfe2;
21 --color-subtext0: #a5adce;
22 --color-overlay2: #949cbb;
23 --color-overlay1: #838ba7;
24 --color-overlay0: #737994;
25 --color-surface2: #626880;
26 --color-surface1: #51576d;
27 --color-surface0: #414559;
28 --color-base: #303446;
29 --color-mantle: #292c3c;
30 --color-crust: #232634;
9 31
10 padding-right: 30px; 32 --color-primary: var(--color-mauve);
11 33 --color-secondary: var(--color-blue);
12 font-size: 40px; 34 --color-accent: var(--color-peach);
13 font-family: BarlowSemiCondensed-Regular; 35 --color-background: var(--color-base);
14 color: #cdcfdf; 36 --color-surface: var(--color-surface0);
37 --color-muted: var(--color-overlay0);
38 --color-border: var(--color-surface2);
39 --color-input: var(--color-surface1);
40 --color-foreground: var(--color-text);
41 --color-success: var(--color-green);
42 --color-warning: var(--color-yellow);
43 --color-error: var(--color-red);
44 --color-info: var(--color-blue);
15 45
46 --font-barlow-condensed-regular: 'BarlowCondensed-Regular';
47 --font-barlow-condensed-bold: 'BarlowCondensed-Bold';
48 --font-barlow-semicondensed-regular: 'BarlowSemiCondensed-Regular';
49 --font-barlow-semicondensed-semibold: 'BarlowSemiCondensed-SemiBold';
16} 50}
17 51
52
18a { 53a {
19 color: inherit; 54 color: inherit;
20 width: fit-content;
21} 55}
22 56
23body { 57body {
24 overflow: hidden; 58 overflow: hidden;
25 background-color: #141520; 59 background-color: var(--color-crust);
26 margin: 0; 60 margin: 0;
27} 61}
28 62
29.loader { 63.loader {
30 animation: loader 1.2s ease infinite; 64 animation: loader 1.2s ease infinite;
31 background-size: 400% 300%; 65 background-size: 400% 300%;
32 background-image: linear-gradient(-90deg, #202232 0%, #202232 25%, #2a2c41 50%, #202232 75%, #202232 100%); 66 background-image: linear-gradient(-90deg, var(--color-mantle) 0%, var(--color-mantle) 25%, var(--color-surface1) 50%, var(--color-mantle) 75%, var(--color-mantle) 100%);
33 user-select: none; 67 user-select: none;
34} 68}
35 69
36.loader-text { 70.loader-text {
37 animation: loader 1.2s ease infinite; 71 animation: loader 1.2s ease infinite;
38 background-size: 400% 300%; 72 background-size: 400% 300%;
39 background-image: linear-gradient(-90deg, #202232 0%, #202232 25%, #2a2c41 50%, #202232 75%, #202232 100%); 73 background-image: linear-gradient(-90deg, var(--color-mantle) 0%, var(--color-mantle) 25%, var(--color-surface1) 50%, var(--color-mantle) 75%, var(--color-mantle) 100%);
40 user-select: none; 74 user-select: none;
41 color: #00000000; 75 color: #00000000;
42 border-radius: 1000px; 76 border-radius: 1000px;
@@ -76,6 +110,173 @@ body {
76 } 110 }
77} 111}
78 112
113/* Custom Tailwind utilities for Catppuccin Frappe theme */
114@layer utilities {
115 .bg-primary {
116 background-color: var(--color-primary);
117 }
118
119 .bg-secondary {
120 background-color: var(--color-secondary);
121 }
122
123 .bg-accent {
124 background-color: var(--color-accent);
125 }
126
127 .bg-background {
128 background-color: var(--color-background);
129 }
130
131 .bg-surface {
132 background-color: var(--color-surface);
133 }
134
135 .bg-muted {
136 background-color: var(--color-muted);
137 }
138
139 .text-primary {
140 color: var(--color-primary);
141 }
142
143 .text-secondary {
144 color: var(--color-secondary);
145 }
146
147 .text-accent {
148 color: var(--color-accent);
149 }
150
151 .text-foreground {
152 color: var(--color-foreground);
153 }
154
155 .text-muted {
156 color: var(--color-muted);
157 }
158
159 .border-primary {
160 border-color: var(--color-primary);
161 }
162
163 .border-secondary {
164 border-color: var(--color-secondary);
165 }
166
167 .border-muted {
168 border-color: var(--color-border);
169 }
170
171 .hover\:bg-primary:hover {
172 background-color: var(--color-primary);
173 }
174
175 .hover\:bg-secondary:hover {
176 background-color: var(--color-secondary);
177 }
178
179 .hover\:bg-surface:hover {
180 background-color: var(--color-surface);
181 }
182
183 .hover\:text-primary:hover {
184 color: var(--color-primary);
185 }
186
187 .focus\:ring-primary:focus {
188 --tw-ring-color: var(--color-primary);
189 }
190
191 .triangle {
192 width: 0;
193 height: 0;
194 border-left: 5px solid transparent;
195 border-right: 5px solid transparent;
196 border-bottom: 8px solid var(--color-foreground);
197 display: inline-block;
198 }
199
200 .sidebar-button-selected {
201 background-color: var(--color-primary) !important;
202 color: var(--color-background) !important;
203 }
204
205 .sidebar-button-deselected {
206 background-color: var(--color-surface) !important;
207 color: var(--color-foreground) !important;
208 }
209
210 .profileboard-record {
211 background-color: var(--color-surface);
212 border: 1px solid var(--color-border);
213 border-radius: 0.5rem;
214 padding: 0.75rem;
215 margin-bottom: 0.5rem;
216 transition: all 0.2s ease;
217 }
218
219 .profileboard-record:hover {
220 background-color: var(--color-surface1);
221 }
222
223 .difficulty-rating {
224 width: 20px;
225 height: 20px;
226 background-color: var(--color-muted);
227 border-radius: 50%;
228 margin: 0 2px;
229 display: inline-block;
230 }
231
232 .nav-button {
233 background-color: var(--color-surface);
234 color: var(--color-foreground);
235 border: 1px solid var(--color-border);
236 border-radius: 0.5rem;
237 padding: 0.5rem 1rem;
238 transition: all 0.2s ease;
239 display: inline-flex;
240 align-items: center;
241 gap: 0.5rem;
242 text-decoration: none;
243 }
244
245 .nav-button:hover {
246 background-color: var(--color-surface1);
247 }
248
249 .record {
250 background-color: var(--color-surface);
251 border: 1px solid var(--color-border);
252 border-radius: 0.5rem;
253 padding: 0.5rem;
254 margin: 0.25rem;
255 cursor: pointer;
256 transition: all 0.2s ease;
257 }
258
259 .record:hover {
260 background-color: var(--color-surface1);
261 }
262
263 .portal-count {
264 font-size: 3rem;
265 font-weight: bold;
266 color: var(--color-primary);
267 }
268
269 .titles {
270 background-color: var(--color-accent);
271 color: var(--color-background);
272 padding: 0.25rem 0.5rem;
273 border-radius: 1rem;
274 font-size: 0.875rem;
275 margin-right: 0.5rem;
276 display: inline-block;
277 }
278}
279
79@font-face { 280@font-face {
80 font-family: 'BarlowCondensed-Bold'; 281 font-family: 'BarlowCondensed-Bold';
81 src: local('BarlowCondensed-Bold'), url(./fonts/BarlowCondensed-Bold.ttf) format('truetype'); 282 src: local('BarlowCondensed-Bold'), url(./fonts/BarlowCondensed-Bold.ttf) format('truetype');
diff --git a/frontend/src/App.tsx b/frontend/src/App.tsx
index bdd3adc..fbfa59f 100644
--- a/frontend/src/App.tsx
+++ b/frontend/src/App.tsx
@@ -1,32 +1,32 @@
1import React from 'react'; 1import React, { useCallback } from "react";
2import { Routes, Route } from "react-router-dom"; 2import { Routes, Route } from "react-router-dom";
3import { Helmet } from "react-helmet"; 3import { Helmet } from "react-helmet";
4 4
5import { UserProfile } from '@customTypes/Profile'; 5import { UserProfile } from "@customTypes/Profile";
6import Sidebar from './components/Sidebar'; 6import Sidebar from "./components/Sidebar";
7import "./App.css"; 7import "./App.css";
8 8
9import Profile from '@pages/Profile'; 9import Profile from "@pages/Profile";
10import Games from '@pages/Games'; 10import Games from "@pages/Games";
11import Maps from '@pages/Maps'; 11import Maps from "@pages/Maps";
12import User from '@pages/User'; 12import User from "@pages/User";
13import Homepage from '@pages/Homepage'; 13import Homepage from "@pages/Homepage";
14import UploadRunDialog from './components/UploadRunDialog'; 14import UploadRunDialog from "./components/UploadRunDialog";
15import Rules from '@pages/Rules'; 15import Rules from "@pages/Rules";
16import About from '@pages/About'; 16import About from "@pages/About";
17import { Game } from '@customTypes/Game'; 17import { Game } from "@customTypes/Game";
18import { API } from './api/Api'; 18import { API } from "./api/Api";
19import Maplist from '@pages/Maplist'; 19import Maplist from "@pages/Maplist";
20import Rankings from '@pages/Rankings'; 20import Rankings from "@pages/Rankings";
21import { get_user_id_from_token, get_user_mod_from_token } from './utils/Jwt'; 21import { get_user_id_from_token, get_user_mod_from_token } from "./utils/Jwt";
22 22
23const App: React.FC = () => { 23const App: React.FC = () => {
24 const [token, setToken] = React.useState<string | undefined>(undefined); 24 const [token, setToken] = React.useState<string | undefined>(undefined);
25 const [profile, setProfile] = React.useState<UserProfile | undefined>(undefined); 25 const [profile, setProfile] = React.useState<UserProfile | undefined>(
26 undefined
27 );
26 const [isModerator, setIsModerator] = React.useState<boolean>(false); 28 const [isModerator, setIsModerator] = React.useState<boolean>(false);
27
28 const [games, setGames] = React.useState<Game[]>([]); 29 const [games, setGames] = React.useState<Game[]>([]);
29
30 const [uploadRunDialog, setUploadRunDialog] = React.useState<boolean>(false); 30 const [uploadRunDialog, setUploadRunDialog] = React.useState<boolean>(false);
31 31
32 const _fetch_token = async () => { 32 const _fetch_token = async () => {
@@ -39,12 +39,15 @@ const App: React.FC = () => {
39 setGames(games); 39 setGames(games);
40 }; 40 };
41 41
42 const _set_profile = async (user_id?: string) => { 42 const _set_profile = useCallback(
43 if (user_id && token) { 43 async (user_id?: string) => {
44 const user = await API.get_profile(token); 44 if (user_id && token) {
45 setProfile(user); 45 const user = await API.get_profile(token);
46 } 46 setProfile(user);
47 }; 47 }
48 },
49 [token]
50 );
48 51
49 React.useEffect(() => { 52 React.useEffect(() => {
50 if (token === undefined) { 53 if (token === undefined) {
@@ -52,15 +55,15 @@ const App: React.FC = () => {
52 setIsModerator(false); 55 setIsModerator(false);
53 } else { 56 } else {
54 setProfile({} as UserProfile); // placeholder before we call actual user profile 57 setProfile({} as UserProfile); // placeholder before we call actual user profile
55 _set_profile(get_user_id_from_token(token)) 58 _set_profile(get_user_id_from_token(token));
56 const modStatus = get_user_mod_from_token(token) 59 const modStatus = get_user_mod_from_token(token);
57 if (modStatus) { 60 if (modStatus) {
58 setIsModerator(true); 61 setIsModerator(true);
59 } else { 62 } else {
60 setIsModerator(false); 63 setIsModerator(false);
61 } 64 }
62 } 65 }
63 }, [token]); 66 }, [token, _set_profile]);
64 67
65 React.useEffect(() => { 68 React.useEffect(() => {
66 _fetch_token(); 69 _fetch_token();
@@ -73,23 +76,49 @@ const App: React.FC = () => {
73 <title>LPHUB</title> 76 <title>LPHUB</title>
74 <meta name="description" content="Least Portals Hub" /> 77 <meta name="description" content="Least Portals Hub" />
75 </Helmet> 78 </Helmet>
76 <UploadRunDialog token={token} open={uploadRunDialog} onClose={(updateProfile) => { 79 <UploadRunDialog
77 setUploadRunDialog(false); 80 token={token}
78 if (updateProfile) { 81 open={uploadRunDialog}
79 _set_profile(get_user_id_from_token(token)); 82 onClose={updateProfile => {
80 } 83 setUploadRunDialog(false);
81 }} games={games} /> 84 if (updateProfile) {
82 <Sidebar setToken={setToken} profile={profile} setProfile={setProfile} onUploadRun={() => setUploadRunDialog(true)} /> 85 _set_profile(get_user_id_from_token(token));
86 }
87 }}
88 games={games}
89 />
90 <Sidebar
91 setToken={setToken}
92 profile={profile}
93 setProfile={setProfile}
94 onUploadRun={() => setUploadRunDialog(true)}
95 />
83 <Routes> 96 <Routes>
84 <Route path="/" element={<Homepage />} /> 97 <Route path="/" element={<Homepage />} />
85 <Route path="/profile" element={<Profile profile={profile} token={token} gameData={games} onDeleteRecord={() => _set_profile(get_user_id_from_token(token))} />} /> 98 <Route
86 <Route path="/users/*" element={<User profile={profile} token={token} gameData={games} />} /> 99 path="/profile"
100 element={
101 <Profile
102 profile={profile}
103 token={token}
104 gameData={games}
105 onDeleteRecord={() => _set_profile(get_user_id_from_token(token))}
106 />
107 }
108 />
109 <Route
110 path="/users/*"
111 element={<User profile={profile} token={token} gameData={games} />}
112 />
87 <Route path="/games" element={<Games games={games} />} /> 113 <Route path="/games" element={<Games games={games} />} />
88 <Route path='/games/:id' element={<Maplist />}></Route> 114 <Route path="/games/:id" element={<Maplist />}></Route>
89 <Route path="/maps/*" element={<Maps token={token} isModerator={isModerator} />} /> 115 <Route
116 path="/maps/*"
117 element={<Maps token={token} isModerator={isModerator} />}
118 />
90 <Route path="/rules" element={<Rules />} /> 119 <Route path="/rules" element={<Rules />} />
91 <Route path="/about" element={<About />} /> 120 <Route path="/about" element={<About />} />
92 <Route path='/rankings' element={<Rankings />}></Route> 121 <Route path="/rankings" element={<Rankings />}></Route>
93 <Route path="*" element={"404"} /> 122 <Route path="*" element={"404"} />
94 </Routes> 123 </Routes>
95 </> 124 </>
diff --git a/frontend/src/api/Api.ts b/frontend/src/api/Api.ts
index 862e688..b782d17 100644
--- a/frontend/src/api/Api.ts
+++ b/frontend/src/api/Api.ts
@@ -1,18 +1,39 @@
1import { MapDiscussionCommentContent, MapDiscussionContent, ModMenuContent } from '@customTypes/Content'; 1import { MapDiscussionContent, ModMenuContent } from "@customTypes/Content";
2import { delete_token, get_token } from '@api/Auth'; 2import { delete_token, get_token } from "@api/Auth";
3import { get_user, get_profile, post_profile } from '@api/User'; 3import { get_user, get_profile, post_profile } from "@api/User";
4import { get_games, get_chapters, get_games_chapters, get_game_maps, get_search } from '@api/Games'; 4import {
5import { get_official_rankings, get_unofficial_rankings } from '@api/Rankings'; 5 get_games,
6import { get_map_summary, get_map_leaderboard, get_map_discussions, get_map_discussion, post_map_discussion, post_map_discussion_comment, delete_map_discussion, post_record, delete_map_record } from '@api/Maps'; 6 get_chapters,
7import { delete_map_summary, post_map_summary, put_map_image, put_map_summary } from '@api/Mod'; 7 get_games_chapters,
8import { UploadRunContent } from '@customTypes/Content'; 8 get_game_maps,
9 get_search,
10} from "@api/Games";
11import { get_official_rankings, get_unofficial_rankings } from "@api/Rankings";
12import {
13 get_map_summary,
14 get_map_leaderboard,
15 get_map_discussions,
16 get_map_discussion,
17 post_map_discussion,
18 post_map_discussion_comment,
19 delete_map_discussion,
20 post_record,
21 delete_map_record,
22} from "@api/Maps";
23import {
24 delete_map_summary,
25 post_map_summary,
26 put_map_image,
27 put_map_summary,
28} from "@api/Mod";
29import { UploadRunContent } from "@customTypes/Content";
9 30
10// add new api call function entries here 31// add new api call function entries here
11// example usage: API.get_games(); 32// example usage: API.get_games();
12export const API = { 33export const API = {
13 // Auth 34 // Auth
14 get_token: () => get_token(), 35 get_token: () => get_token(),
15 36
16 delete_token: () => delete_token(), 37 delete_token: () => delete_token(),
17 // User 38 // User
18 get_user: (user_id: string) => get_user(user_id), 39 get_user: (user_id: string) => get_user(user_id),
@@ -29,28 +50,49 @@ export const API = {
29 get_unofficial_rankings: () => get_unofficial_rankings(), 50 get_unofficial_rankings: () => get_unofficial_rankings(),
30 // Maps 51 // Maps
31 get_map_summary: (map_id: string) => get_map_summary(map_id), 52 get_map_summary: (map_id: string) => get_map_summary(map_id),
32 get_map_leaderboard: (map_id: string, page: string) => get_map_leaderboard(map_id, page), 53 get_map_leaderboard: (map_id: string, page: string) =>
54 get_map_leaderboard(map_id, page),
33 get_map_discussions: (map_id: string) => get_map_discussions(map_id), 55 get_map_discussions: (map_id: string) => get_map_discussions(map_id),
34 get_map_discussion: (map_id: string, discussion_id: number) => get_map_discussion(map_id, discussion_id), 56 get_map_discussion: (map_id: string, discussion_id: number) =>
57 get_map_discussion(map_id, discussion_id),
35 58
36 post_map_discussion: (token: string, map_id: string, content: MapDiscussionContent) => post_map_discussion(token, map_id, content), 59 post_map_discussion: (
37 post_map_discussion_comment: (token: string, map_id: string, discussion_id: number, comment: string) => post_map_discussion_comment(token, map_id, discussion_id, comment), 60 token: string,
38 post_record: (token: string, run: UploadRunContent, map_id: number) => post_record(token, run, map_id), 61 map_id: string,
62 content: MapDiscussionContent
63 ) => post_map_discussion(token, map_id, content),
64 post_map_discussion_comment: (
65 token: string,
66 map_id: string,
67 discussion_id: number,
68 comment: string
69 ) => post_map_discussion_comment(token, map_id, discussion_id, comment),
70 post_record: (token: string, run: UploadRunContent, map_id: number) =>
71 post_record(token, run, map_id),
39 72
40 delete_map_discussion: (token: string, map_id: string, discussion_id: number) => delete_map_discussion(token, map_id, discussion_id), 73 delete_map_discussion: (
74 token: string,
75 map_id: string,
76 discussion_id: number
77 ) => delete_map_discussion(token, map_id, discussion_id),
41 78
42 delete_map_record: (token: string, map_id: number, record_id: number) => delete_map_record(token, map_id, record_id), 79 delete_map_record: (token: string, map_id: number, record_id: number) =>
80 delete_map_record(token, map_id, record_id),
43 // Mod 81 // Mod
44 post_map_summary: (token: string, map_id: string, content: ModMenuContent) => post_map_summary(token, map_id, content), 82 post_map_summary: (token: string, map_id: string, content: ModMenuContent) =>
45 83 post_map_summary(token, map_id, content),
46 put_map_image: (token: string, map_id: string, image: string) => put_map_image(token, map_id, image), 84
47 put_map_summary: (token: string, map_id: string, content: ModMenuContent) => put_map_summary(token, map_id, content), 85 put_map_image: (token: string, map_id: string, image: string) =>
48 86 put_map_image(token, map_id, image),
49 delete_map_summary: (token: string, map_id: string, route_id: number) => delete_map_summary(token, map_id, route_id), 87 put_map_summary: (token: string, map_id: string, content: ModMenuContent) =>
88 put_map_summary(token, map_id, content),
89
90 delete_map_summary: (token: string, map_id: string, route_id: number) =>
91 delete_map_summary(token, map_id, route_id),
50}; 92};
51 93
52const BASE_API_URL: string = "/api/v1/" 94const BASE_API_URL: string = "https://lp.portal2.sr/api/v1/"
53 95
54export function url(path: string): string { 96export function url(path: string): string {
55 return BASE_API_URL + path; 97 return BASE_API_URL + path;
56}; 98}
diff --git a/frontend/src/api/Auth.ts b/frontend/src/api/Auth.ts
index 875c7e5..98c6d36 100644
--- a/frontend/src/api/Auth.ts
+++ b/frontend/src/api/Auth.ts
@@ -2,7 +2,7 @@ import axios from "axios";
2import { url } from "@api/Api"; 2import { url } from "@api/Api";
3 3
4export const get_token = async (): Promise<string | undefined> => { 4export const get_token = async (): Promise<string | undefined> => {
5 const response = await axios.get(url(`token`)) 5 const response = await axios.get(url(`token`));
6 if (!response.data.success) { 6 if (!response.data.success) {
7 return undefined; 7 return undefined;
8 } 8 }
diff --git a/frontend/src/api/Games.ts b/frontend/src/api/Games.ts
index 72bb4b3..b739f80 100644
--- a/frontend/src/api/Games.ts
+++ b/frontend/src/api/Games.ts
@@ -6,26 +6,30 @@ import { Map } from "@customTypes/Map";
6import { Search } from "@customTypes/Search"; 6import { Search } from "@customTypes/Search";
7 7
8export const get_games = async (): Promise<Game[]> => { 8export const get_games = async (): Promise<Game[]> => {
9 const response = await axios.get(url(`games`)) 9 const response = await axios.get(url(`games`));
10 return response.data.data; 10 return response.data.data;
11}; 11};
12 12
13export const get_chapters = async (chapter_id: string): Promise<GameChapter> => { 13export const get_chapters = async (
14 chapter_id: string
15): Promise<GameChapter> => {
14 const response = await axios.get(url(`chapters/${chapter_id}`)); 16 const response = await axios.get(url(`chapters/${chapter_id}`));
15 return response.data.data; 17 return response.data.data;
16} 18};
17 19
18export const get_games_chapters = async (game_id: string): Promise<GamesChapters> => { 20export const get_games_chapters = async (
21 game_id: string
22): Promise<GamesChapters> => {
19 const response = await axios.get(url(`games/${game_id}`)); 23 const response = await axios.get(url(`games/${game_id}`));
20 return response.data.data; 24 return response.data.data;
21}; 25};
22 26
23export const get_game_maps = async (game_id: string): Promise<Map[]> => { 27export const get_game_maps = async (game_id: string): Promise<Map[]> => {
24 const response = await axios.get(url(`games/${game_id}/maps`)) 28 const response = await axios.get(url(`games/${game_id}/maps`));
25 return response.data.data.maps; 29 return response.data.data.maps;
26}; 30};
27 31
28export const get_search = async (q: string): Promise<Search> => { 32export const get_search = async (q: string): Promise<Search> => {
29 const response = await axios.get(url(`search?q=${q}`)) 33 const response = await axios.get(url(`search?q=${q}`));
30 return response.data.data; 34 return response.data.data;
31}; 35};
diff --git a/frontend/src/api/Maps.ts b/frontend/src/api/Maps.ts
index aa967ce..2485941 100644
--- a/frontend/src/api/Maps.ts
+++ b/frontend/src/api/Maps.ts
@@ -1,15 +1,25 @@
1import axios from "axios"; 1import axios from "axios";
2import { url } from "@api/Api"; 2import { url } from "@api/Api";
3import { MapDiscussionContent, UploadRunContent } from "@customTypes/Content"; 3import { MapDiscussionContent, UploadRunContent } from "@customTypes/Content";
4import { MapSummary, MapLeaderboard, MapDiscussions, MapDiscussion } from "@customTypes/Map"; 4import {
5 MapSummary,
6 MapLeaderboard,
7 MapDiscussions,
8 MapDiscussion,
9} from "@customTypes/Map";
5 10
6export const get_map_summary = async (map_id: string): Promise<MapSummary> => { 11export const get_map_summary = async (map_id: string): Promise<MapSummary> => {
7 const response = await axios.get(url(`maps/${map_id}/summary`)) 12 const response = await axios.get(url(`maps/${map_id}/summary`));
8 return response.data.data; 13 return response.data.data;
9}; 14};
10 15
11export const get_map_leaderboard = async (map_id: string, page: string): Promise<MapLeaderboard | undefined> => { 16export const get_map_leaderboard = async (
12 const response = await axios.get(url(`maps/${map_id}/leaderboards?page=${page}`)); 17 map_id: string,
18 page: string
19): Promise<MapLeaderboard | undefined> => {
20 const response = await axios.get(
21 url(`maps/${map_id}/leaderboards?page=${page}`)
22 );
13 if (!response.data.success) { 23 if (!response.data.success) {
14 return undefined; 24 return undefined;
15 } 25 }
@@ -17,15 +27,17 @@ export const get_map_leaderboard = async (map_id: string, page: string): Promise
17 // map the kind of leaderboard 27 // map the kind of leaderboard
18 data.records = data.records.map((record: any) => { 28 data.records = data.records.map((record: any) => {
19 if (record.host && record.partner) { 29 if (record.host && record.partner) {
20 return { ...record, kind: 'multiplayer' }; 30 return { ...record, kind: "multiplayer" };
21 } else { 31 } else {
22 return { ...record, kind: 'singleplayer' }; 32 return { ...record, kind: "singleplayer" };
23 } 33 }
24 }); 34 });
25 return data; 35 return data;
26}; 36};
27 37
28export const get_map_discussions = async (map_id: string): Promise<MapDiscussions | undefined> => { 38export const get_map_discussions = async (
39 map_id: string
40): Promise<MapDiscussions | undefined> => {
29 const response = await axios.get(url(`maps/${map_id}/discussions`)); 41 const response = await axios.get(url(`maps/${map_id}/discussions`));
30 if (!response.data.data.discussions) { 42 if (!response.data.data.discussions) {
31 return undefined; 43 return undefined;
@@ -33,74 +45,122 @@ export const get_map_discussions = async (map_id: string): Promise<MapDiscussion
33 return response.data.data; 45 return response.data.data;
34}; 46};
35 47
36export const get_map_discussion = async (map_id: string, discussion_id: number): Promise<MapDiscussion | undefined> => { 48export const get_map_discussion = async (
37 const response = await axios.get(url(`maps/${map_id}/discussions/${discussion_id}`)); 49 map_id: string,
50 discussion_id: number
51): Promise<MapDiscussion | undefined> => {
52 const response = await axios.get(
53 url(`maps/${map_id}/discussions/${discussion_id}`)
54 );
38 if (!response.data.data.discussion) { 55 if (!response.data.data.discussion) {
39 return undefined; 56 return undefined;
40 } 57 }
41 return response.data.data; 58 return response.data.data;
42}; 59};
43 60
44export const post_map_discussion = async (token: string, map_id: string, content: MapDiscussionContent): Promise<boolean> => { 61export const post_map_discussion = async (
45 const response = await axios.post(url(`maps/${map_id}/discussions`), { 62 token: string,
46 "title": content.title, 63 map_id: string,
47 "content": content.content, 64 content: MapDiscussionContent
48 }, { 65): Promise<boolean> => {
49 headers: { 66 const response = await axios.post(
50 "Authorization": token, 67 url(`maps/${map_id}/discussions`),
68 {
69 title: content.title,
70 content: content.content,
71 },
72 {
73 headers: {
74 Authorization: token,
75 },
51 } 76 }
52 }); 77 );
53 return response.data.success; 78 return response.data.success;
54}; 79};
55 80
56export const post_map_discussion_comment = async (token: string, map_id: string, discussion_id: number, comment: string): Promise<boolean> => { 81export const post_map_discussion_comment = async (
57 const response = await axios.post(url(`maps/${map_id}/discussions/${discussion_id}`), { 82 token: string,
58 "comment": comment, 83 map_id: string,
59 }, { 84 discussion_id: number,
60 headers: { 85 comment: string
61 "Authorization": token, 86): Promise<boolean> => {
87 const response = await axios.post(
88 url(`maps/${map_id}/discussions/${discussion_id}`),
89 {
90 comment: comment,
91 },
92 {
93 headers: {
94 Authorization: token,
95 },
62 } 96 }
63 }); 97 );
64 return response.data.success; 98 return response.data.success;
65}; 99};
66 100
67export const delete_map_discussion = async (token: string, map_id: string, discussion_id: number): Promise<boolean> => { 101export const delete_map_discussion = async (
68 const response = await axios.delete(url(`maps/${map_id}/discussions/${discussion_id}`), { 102 token: string,
69 headers: { 103 map_id: string,
70 "Authorization": token, 104 discussion_id: number
105): Promise<boolean> => {
106 const response = await axios.delete(
107 url(`maps/${map_id}/discussions/${discussion_id}`),
108 {
109 headers: {
110 Authorization: token,
111 },
71 } 112 }
72 }); 113 );
73 return response.data.success; 114 return response.data.success;
74}; 115};
75 116
76export const post_record = async (token: string, run: UploadRunContent, map_id: number): Promise<[boolean, string]> => { 117export const post_record = async (
118 token: string,
119 run: UploadRunContent,
120 map_id: number
121): Promise<[boolean, string]> => {
77 if (run.partner_demo) { 122 if (run.partner_demo) {
78 const response = await axios.postForm(url(`maps/${map_id}/record`), { 123 const response = await axios.postForm(
79 "host_demo": run.host_demo, 124 url(`maps/${map_id}/record`),
80 "partner_demo": run.partner_demo, 125 {
81 }, { 126 host_demo: run.host_demo,
82 headers: { 127 partner_demo: run.partner_demo,
83 "Authorization": token, 128 },
129 {
130 headers: {
131 Authorization: token,
132 },
84 } 133 }
85 }); 134 );
86 return [response.data.success, response.data.message]; 135 return [response.data.success, response.data.message];
87 } else { 136 } else {
88 const response = await axios.postForm(url(`maps/${map_id}/record`), { 137 const response = await axios.postForm(
89 "host_demo": run.host_demo, 138 url(`maps/${map_id}/record`),
90 }, { 139 {
91 headers: { 140 host_demo: run.host_demo,
92 "Authorization": token, 141 },
142 {
143 headers: {
144 Authorization: token,
145 },
93 } 146 }
94 }); 147 );
95 return [response.data.success, response.data.message]; 148 return [response.data.success, response.data.message];
96 } 149 }
97} 150};
98 151
99export const delete_map_record = async (token: string, map_id: number, record_id: number): Promise<boolean> => { 152export const delete_map_record = async (
100 const response = await axios.delete(url(`maps/${map_id}/record/${record_id}`), { 153 token: string,
101 headers: { 154 map_id: number,
102 "Authorization": token, 155 record_id: number
156): Promise<boolean> => {
157 const response = await axios.delete(
158 url(`maps/${map_id}/record/${record_id}`),
159 {
160 headers: {
161 Authorization: token,
162 },
103 } 163 }
104 }); 164 );
105 return response.data.success; 165 return response.data.success;
106}; 166};
diff --git a/frontend/src/api/Mod.ts b/frontend/src/api/Mod.ts
index 1511f8b..d682f1a 100644
--- a/frontend/src/api/Mod.ts
+++ b/frontend/src/api/Mod.ts
@@ -2,57 +2,85 @@ import axios from "axios";
2import { url } from "@api/Api"; 2import { url } from "@api/Api";
3import { ModMenuContent } from "@customTypes/Content"; 3import { ModMenuContent } from "@customTypes/Content";
4 4
5export const put_map_image = async (token: string, map_id: string, image: string): Promise<boolean> => { 5export const put_map_image = async (
6 const response = await axios.put(url(`maps/${map_id}/image`), { 6 token: string,
7 "image": image, 7 map_id: string,
8 }, { 8 image: string
9 headers: { 9): Promise<boolean> => {
10 "Authorization": token, 10 const response = await axios.put(
11 url(`maps/${map_id}/image`),
12 {
13 image: image,
14 },
15 {
16 headers: {
17 Authorization: token,
18 },
11 } 19 }
12 }); 20 );
13 return response.data.success; 21 return response.data.success;
14}; 22};
15 23
16export const post_map_summary = async (token: string, map_id: string, content: ModMenuContent): Promise<boolean> => { 24export const post_map_summary = async (
17 const response = await axios.post(url(`maps/${map_id}/summary`), { 25 token: string,
18 "category_id": content.category_id, 26 map_id: string,
19 "user_name": content.name, 27 content: ModMenuContent
20 "score_count": content.score, 28): Promise<boolean> => {
21 "record_date": content.date, 29 const response = await axios.post(
22 "showcase": content.showcase, 30 url(`maps/${map_id}/summary`),
23 "description": content.description, 31 {
24 }, { 32 category_id: content.category_id,
25 headers: { 33 user_name: content.name,
26 "Authorization": token, 34 score_count: content.score,
35 record_date: content.date,
36 showcase: content.showcase,
37 description: content.description,
38 },
39 {
40 headers: {
41 Authorization: token,
42 },
27 } 43 }
28 }); 44 );
29 return response.data.success; 45 return response.data.success;
30}; 46};
31 47
32export const put_map_summary = async (token: string, map_id: string, content: ModMenuContent): Promise<boolean> => { 48export const put_map_summary = async (
33 const response = await axios.put(url(`maps/${map_id}/summary`), { 49 token: string,
34 "route_id": content.id, 50 map_id: string,
35 "user_name": content.name, 51 content: ModMenuContent
36 "score_count": content.score, 52): Promise<boolean> => {
37 "record_date": content.date, 53 const response = await axios.put(
38 "showcase": content.showcase, 54 url(`maps/${map_id}/summary`),
39 "description": content.description, 55 {
40 }, { 56 route_id: content.id,
41 headers: { 57 user_name: content.name,
42 "Authorization": token, 58 score_count: content.score,
59 record_date: content.date,
60 showcase: content.showcase,
61 description: content.description,
62 },
63 {
64 headers: {
65 Authorization: token,
66 },
43 } 67 }
44 }); 68 );
45 return response.data.success; 69 return response.data.success;
46}; 70};
47 71
48export const delete_map_summary = async (token: string, map_id: string, route_id: number): Promise<boolean> => { 72export const delete_map_summary = async (
73 token: string,
74 map_id: string,
75 route_id: number
76): Promise<boolean> => {
49 const response = await axios.delete(url(`maps/${map_id}/summary`), { 77 const response = await axios.delete(url(`maps/${map_id}/summary`), {
50 data: { 78 data: {
51 "route_id": route_id, 79 route_id: route_id,
52 }, 80 },
53 headers: { 81 headers: {
54 "Authorization": token, 82 Authorization: token,
55 } 83 },
56 }); 84 });
57 return response.data.success; 85 return response.data.success;
58}; 86};
diff --git a/frontend/src/api/User.ts b/frontend/src/api/User.ts
index 88da0f2..004aa22 100644
--- a/frontend/src/api/User.ts
+++ b/frontend/src/api/User.ts
@@ -10,16 +10,20 @@ export const get_user = async (user_id: string): Promise<UserProfile> => {
10export const get_profile = async (token: string): Promise<UserProfile> => { 10export const get_profile = async (token: string): Promise<UserProfile> => {
11 const response = await axios.get(url(`profile`), { 11 const response = await axios.get(url(`profile`), {
12 headers: { 12 headers: {
13 "Authorization": token, 13 Authorization: token,
14 } 14 },
15 }); 15 });
16 return response.data.data; 16 return response.data.data;
17}; 17};
18 18
19export const post_profile = async (token: string) => { 19export const post_profile = async (token: string): Promise<void> => {
20 const _ = await axios.post(url(`profile`), {}, { 20 await axios.post(
21 headers: { 21 url(`profile`),
22 "Authorization": token, 22 {},
23 {
24 headers: {
25 Authorization: token,
26 },
23 } 27 }
24 }); 28 );
25}; 29};
diff --git a/frontend/src/components/ConfirmDialog.tsx b/frontend/src/components/ConfirmDialog.tsx
index 44a653b..8f2ce7a 100644
--- a/frontend/src/components/ConfirmDialog.tsx
+++ b/frontend/src/components/ConfirmDialog.tsx
@@ -1,31 +1,34 @@
1import React from 'react'; 1import React from "react";
2
3import "@css/Dialog.css"
4 2
5interface ConfirmDialogProps { 3interface ConfirmDialogProps {
6 title: string; 4 title: string;
7 subtitle: string; 5 subtitle: string;
8 onConfirm: () => void; 6 onConfirm: () => void;
9 onCancel: () => void; 7 onCancel: () => void;
10}; 8}
11 9
12const ConfirmDialog: React.FC<ConfirmDialogProps> = ({ title, subtitle, onConfirm, onCancel }) => { 10const ConfirmDialog: React.FC<ConfirmDialogProps> = ({
13 return ( 11 title,
14 <div className='dimmer'> 12 subtitle,
15 <div className='dialog'> 13 onConfirm,
16 <div className='dialog-element dialog-header'> 14 onCancel,
17 <span>{title}</span> 15}) => {
18 </div> 16 return (
19 <div className='dialog-element dialog-description'> 17 <div className="fixed w-[200%] h-full bg-black bg-opacity-50 z-[4]">
20 <span>{subtitle}</span> 18 <div className="fixed z-[4] top-1/2 left-1/2 transform -translate-x-1/2 -translate-y-1/2 bg-surface rounded-3xl overflow-hidden min-w-[350px] border border-border animate-[dialog_in_0.2s_cubic-bezier(0.075,0.82,0.165,1.1)] text-foreground font-[--font-barlow-semicondensed-regular]">
21 </div> 19 <div className="p-2 text-2xl bg-mantle">
22 <div className='dialog-element dialog-btns-container'> 20 <span>{title}</span>
23 <button onClick={onCancel}>Cancel</button> 21 </div>
24 <button onClick={onConfirm}>Confirm</button> 22 <div className="p-2">
25 </div> 23 <span>{subtitle}</span>
26 </div> 24 </div>
25 <div className="p-2 flex justify-end border-t-2 border-border bg-mantle">
26 <button className="mr-2 px-4 py-2 bg-muted text-foreground rounded hover:bg-overlay1 transition-colors" onClick={onCancel}>Cancel</button>
27 <button className="px-4 py-2 bg-primary text-background rounded hover:bg-mauve transition-colors" onClick={onConfirm}>Confirm</button>
27 </div> 28 </div>
28 ) 29 </div>
30 </div>
31 );
29}; 32};
30 33
31export default ConfirmDialog; 34export default ConfirmDialog;
diff --git a/frontend/src/components/Discussions.tsx b/frontend/src/components/Discussions.tsx
index 17ae586..7aa8901 100644
--- a/frontend/src/components/Discussions.tsx
+++ b/frontend/src/components/Discussions.tsx
@@ -1,34 +1,48 @@
1import React from 'react'; 1import React from "react";
2 2
3import { MapDiscussion, MapDiscussions, MapDiscussionsDetail } from '@customTypes/Map'; 3import {
4import { MapDiscussionCommentContent, MapDiscussionContent } from '@customTypes/Content'; 4 MapDiscussion,
5import { time_ago } from '@utils/Time'; 5 MapDiscussions,
6import { API } from '@api/Api'; 6 MapDiscussionsDetail,
7import "@css/Maps.css" 7} from "@customTypes/Map";
8import { Link } from 'react-router-dom'; 8import { MapDiscussionContent } from "@customTypes/Content";
9import useConfirm from '@hooks/UseConfirm'; 9import { time_ago } from "@utils/Time";
10import { API } from "@api/Api";
11import "@css/Maps.css";
12import { Link } from "react-router-dom";
13import useConfirm from "@hooks/UseConfirm";
10 14
11interface DiscussionsProps { 15interface DiscussionsProps {
12 token?: string 16 token?: string;
13 data?: MapDiscussions; 17 data?: MapDiscussions;
14 isModerator: boolean; 18 isModerator: boolean;
15 mapID: string; 19 mapID: string;
16 onRefresh: () => void; 20 onRefresh: () => void;
17} 21}
18 22
19const Discussions: React.FC<DiscussionsProps> = ({ token, data, isModerator, mapID, onRefresh }) => { 23const Discussions: React.FC<DiscussionsProps> = ({
20 24 token,
25 data,
26 isModerator,
27 mapID,
28 onRefresh,
29}) => {
21 const { confirm, ConfirmDialogComponent } = useConfirm(); 30 const { confirm, ConfirmDialogComponent } = useConfirm();
22 31
23 const [discussionThread, setDiscussionThread] = React.useState<MapDiscussion | undefined>(undefined); 32 const [discussionThread, setDiscussionThread] = React.useState<
33 MapDiscussion | undefined
34 >(undefined);
24 const [discussionSearch, setDiscussionSearch] = React.useState<string>(""); 35 const [discussionSearch, setDiscussionSearch] = React.useState<string>("");
25 36
26 const [createDiscussion, setCreateDiscussion] = React.useState<boolean>(false); 37 const [createDiscussion, setCreateDiscussion] =
27 const [createDiscussionContent, setCreateDiscussionContent] = React.useState<MapDiscussionContent>({ 38 React.useState<boolean>(false);
28 title: "", 39 const [createDiscussionContent, setCreateDiscussionContent] =
29 content: "", 40 React.useState<MapDiscussionContent>({
30 }); 41 title: "",
31 const [createDiscussionCommentContent, setCreateDiscussionCommentContent] = React.useState<string>(""); 42 content: "",
43 });
44 const [createDiscussionCommentContent, setCreateDiscussionCommentContent] =
45 React.useState<string>("");
32 46
33 const _open_map_discussion = async (discussion_id: number) => { 47 const _open_map_discussion = async (discussion_id: number) => {
34 const mapDiscussion = await API.get_map_discussion(mapID, discussion_id); 48 const mapDiscussion = await API.get_map_discussion(mapID, discussion_id);
@@ -45,13 +59,23 @@ const Discussions: React.FC<DiscussionsProps> = ({ token, data, isModerator, map
45 59
46 const _create_map_discussion_comment = async (discussion_id: number) => { 60 const _create_map_discussion_comment = async (discussion_id: number) => {
47 if (token) { 61 if (token) {
48 await API.post_map_discussion_comment(token, mapID, discussion_id, createDiscussionCommentContent); 62 await API.post_map_discussion_comment(
63 token,
64 mapID,
65 discussion_id,
66 createDiscussionCommentContent
67 );
49 await _open_map_discussion(discussion_id); 68 await _open_map_discussion(discussion_id);
50 } 69 }
51 }; 70 };
52 71
53 const _delete_map_discussion = async (discussion: MapDiscussionsDetail) => { 72 const _delete_map_discussion = async (discussion: MapDiscussionsDetail) => {
54 if (await confirm("Delete Map Discussion", `Are you sure you want to remove post: ${discussion.title}?`)) { 73 if (
74 await confirm(
75 "Delete Map Discussion",
76 `Are you sure you want to remove post: ${discussion.title}?`
77 )
78 ) {
55 if (token) { 79 if (token) {
56 await API.delete_map_discussion(token, mapID, discussion.id); 80 await API.delete_map_discussion(token, mapID, discussion.id);
57 onRefresh(); 81 onRefresh();
@@ -60,107 +84,186 @@ const Discussions: React.FC<DiscussionsProps> = ({ token, data, isModerator, map
60 }; 84 };
61 85
62 return ( 86 return (
63 <section id='section7' className='summary3'> 87 <section id="section7" className="summary3">
64 {ConfirmDialogComponent} 88 {ConfirmDialogComponent}
65 <div id='discussion-search'> 89 <div id="discussion-search">
66 <input type="text" value={discussionSearch} placeholder={"Search for posts..."} onChange={(e) => setDiscussionSearch(e.target.value)} /> 90 <input
67 <div><button onClick={() => setCreateDiscussion(true)}>New Post</button></div> 91 type="text"
92 value={discussionSearch}
93 placeholder={"Search for posts..."}
94 onChange={e => setDiscussionSearch(e.target.value)}
95 />
96 <div>
97 <button onClick={() => setCreateDiscussion(true)}>New Post</button>
98 </div>
68 </div> 99 </div>
69 100
70 { // janky ternary operators here, could divide them to more components? 101 {
71 createDiscussion ? 102 // janky ternary operators here, could divide them to more components?
72 ( 103 createDiscussion ? (
73 <div id='discussion-create'> 104 <div id="discussion-create">
74 <span>Create Post</span> 105 <span>Create Post</span>
75 <button onClick={() => setCreateDiscussion(false)}>X</button> 106 <button onClick={() => setCreateDiscussion(false)}>X</button>
76 <div style={{ gridColumn: "1 / span 2" }}> 107 <div style={{ gridColumn: "1 / span 2" }}>
77 <input id='discussion-create-title' placeholder='Title...' onChange={(e) => setCreateDiscussionContent({ 108 <input
78 ...createDiscussionContent, 109 id="discussion-create-title"
79 title: e.target.value, 110 placeholder="Title..."
80 })} /> 111 onChange={e =>
81 <input id='discussion-create-content' placeholder='Enter the content...' onChange={(e) => setCreateDiscussionContent({ 112 setCreateDiscussionContent({
82 ...createDiscussionContent, 113 ...createDiscussionContent,
83 content: e.target.value, 114 title: e.target.value,
84 })} /> 115 })
85 </div> 116 }
86 <div style={{ placeItems: "end", gridColumn: "1 / span 2" }}> 117 />
87 <button id='discussion-create-button' onClick={() => _create_map_discussion()}>Post</button> 118 <input
88 </div> 119 id="discussion-create-content"
120 placeholder="Enter the content..."
121 onChange={e =>
122 setCreateDiscussionContent({
123 ...createDiscussionContent,
124 content: e.target.value,
125 })
126 }
127 />
128 </div>
129 <div style={{ placeItems: "end", gridColumn: "1 / span 2" }}>
130 <button
131 id="discussion-create-button"
132 onClick={() => _create_map_discussion()}
133 >
134 Post
135 </button>
136 </div>
137 </div>
138 ) : discussionThread ? (
139 <div id="discussion-thread">
140 <div>
141 <span>{discussionThread.discussion.title}</span>
142 <button onClick={() => setDiscussionThread(undefined)}>X</button>
89 </div> 143 </div>
90 )
91 :
92 discussionThread ?
93 (
94 <div id='discussion-thread'>
95 <div>
96 <span>{discussionThread.discussion.title}</span>
97 <button onClick={() => setDiscussionThread(undefined)}>X</button>
98 </div>
99 144
100 <div> 145 <div>
101 <Link to={`/users/${discussionThread.discussion.creator.steam_id}`}> 146 <Link
102 <img src={discussionThread.discussion.creator.avatar_link} alt="" /> 147 to={`/users/${discussionThread.discussion.creator.steam_id}`}
103 </Link> 148 >
104 <div> 149 <img
105 <span>{discussionThread.discussion.creator.user_name}</span> 150 src={discussionThread.discussion.creator.avatar_link}
106 <span>{time_ago(new Date(discussionThread.discussion.created_at.replace("T", " ").replace("Z", "")))}</span> 151 alt=""
107 <span>{discussionThread.discussion.content}</span> 152 />
108 </div> 153 </Link>
109 {discussionThread.discussion.comments ? 154 <div>
110 discussionThread.discussion.comments.sort((a, b) => new Date(a.date).getTime() - new Date(b.date).getTime()) 155 <span>{discussionThread.discussion.creator.user_name}</span>
111 .map(e => ( 156 <span>
112 <> 157 {time_ago(
113 <Link to={`/users/${e.user.steam_id}`}> 158 new Date(
114 <img src={e.user.avatar_link} alt="" /> 159 discussionThread.discussion.created_at
115 </Link> 160 .replace("T", " ")
116 <div> 161 .replace("Z", "")
117 <span>{e.user.user_name}</span> 162 )
118 <span>{time_ago(new Date(e.date.replace("T", " ").replace("Z", "")))}</span> 163 )}
119 <span>{e.comment}</span> 164 </span>
120 </div> 165 <span>{discussionThread.discussion.content}</span>
121 </> 166 </div>
122 )) : "" 167 {discussionThread.discussion.comments
123 } 168 ? discussionThread.discussion.comments
124 </div> 169 .sort(
125 <div id='discussion-send'> 170 (a, b) =>
126 <input type="text" value={createDiscussionCommentContent} placeholder={"Message"} 171 new Date(a.date).getTime() - new Date(b.date).getTime()
127 onKeyDown={(e) => e.key === "Enter" && _create_map_discussion_comment(discussionThread.discussion.id)} 172 )
128 onChange={(e) => setCreateDiscussionCommentContent(e.target.value)} /> 173 .map(e => (
129 <div><button onClick={() => { 174 <>
175 <Link to={`/users/${e.user.steam_id}`}>
176 <img src={e.user.avatar_link} alt="" />
177 </Link>
178 <div>
179 <span>{e.user.user_name}</span>
180 <span>
181 {time_ago(
182 new Date(
183 e.date.replace("T", " ").replace("Z", "")
184 )
185 )}
186 </span>
187 <span>{e.comment}</span>
188 </div>
189 </>
190 ))
191 : ""}
192 </div>
193 <div id="discussion-send">
194 <input
195 type="text"
196 value={createDiscussionCommentContent}
197 placeholder={"Message"}
198 onKeyDown={e =>
199 e.key === "Enter" &&
200 _create_map_discussion_comment(discussionThread.discussion.id)
201 }
202 onChange={e =>
203 setCreateDiscussionCommentContent(e.target.value)
204 }
205 />
206 <div>
207 <button
208 onClick={() => {
130 if (createDiscussionCommentContent !== "") { 209 if (createDiscussionCommentContent !== "") {
131 _create_map_discussion_comment(discussionThread.discussion.id); 210 _create_map_discussion_comment(
211 discussionThread.discussion.id
212 );
132 setCreateDiscussionCommentContent(""); 213 setCreateDiscussionCommentContent("");
133 } 214 }
134 }}>Send</button></div> 215 }}
135 </div> 216 >
136 217 Send
218 </button>
137 </div> 219 </div>
138 ) 220 </div>
139 : 221 </div>
140 ( 222 ) : data ? (
141 data ? 223 <>
142 (<> 224 {data.discussions
143 {data.discussions.filter(f => f.title.includes(discussionSearch)).sort((a, b) => new Date(b.updated_at).getTime() - new Date(a.updated_at).getTime()) 225 .filter(f => f.title.includes(discussionSearch))
144 .map((e, i) => ( 226 .sort(
145 <div id='discussion-post'> 227 (a, b) =>
146 <button key={e.id} onClick={() => _open_map_discussion(e.id)}> 228 new Date(b.updated_at).getTime() -
147 <span>{e.title}</span> 229 new Date(a.updated_at).getTime()
148 {isModerator ? 230 )
149 <button onClick={(m) => { 231 .map((e, i) => (
150 m.stopPropagation(); 232 <div id="discussion-post">
151 _delete_map_discussion(e); 233 <button key={e.id} onClick={() => _open_map_discussion(e.id)}>
152 }}>Delete Post</button> 234 <span>{e.title}</span>
153 : <span></span> 235 {isModerator ? (
154 } 236 <button
155 <span><b>{e.creator.user_name}:</b> {e.content}</span> 237 onClick={m => {
156 <span>Last Updated: {time_ago(new Date(e.updated_at.replace("T", " ").replace("Z", "")))}</span> 238 m.stopPropagation();
157 </button> 239 _delete_map_discussion(e);
158 </div> 240 }}
159 ))} 241 >
160 </>) 242 Delete Post
161 : 243 </button>
162 (<span style={{ textAlign: "center", display: "block" }}>No Discussions...</span>) 244 ) : (
163 ) 245 <span></span>
246 )}
247 <span>
248 <b>{e.creator.user_name}:</b> {e.content}
249 </span>
250 <span>
251 Last Updated:{" "}
252 {time_ago(
253 new Date(
254 e.updated_at.replace("T", " ").replace("Z", "")
255 )
256 )}
257 </span>
258 </button>
259 </div>
260 ))}
261 </>
262 ) : (
263 <span style={{ textAlign: "center", display: "block" }}>
264 No Discussions...
265 </span>
266 )
164 } 267 }
165 </section> 268 </section>
166 ); 269 );
diff --git a/frontend/src/components/GameCategory.tsx b/frontend/src/components/GameCategory.tsx
index d8879ef..b18c9d9 100644
--- a/frontend/src/components/GameCategory.tsx
+++ b/frontend/src/components/GameCategory.tsx
@@ -1,24 +1,24 @@
1import React from 'react'; 1import React from "react";
2import { Link } from "react-router-dom"; 2import { Link } from "react-router-dom";
3 3
4import { Game, GameCategoryPortals } from '@customTypes/Game'; 4import { Game, GameCategoryPortals } from "@customTypes/Game";
5import "@css/Games.css"
6 5
7interface GameCategoryProps { 6interface GameCategoryProps {
8 game: Game; 7 game: Game;
9 cat: GameCategoryPortals; 8 cat: GameCategoryPortals;
10} 9}
11 10
12const GameCategory: React.FC<GameCategoryProps> = ({cat, game}) => { 11const GameCategory: React.FC<GameCategoryProps> = ({ cat, game }) => {
13 return ( 12 return (
14 <Link className="games-page-item-body-item" to={"/games/" + game.id + "?cat=" + cat.category.id}> 13 <Link
15 <div> 14 className="bg-surface text-center w-full h-[100px] rounded-3xl text-foreground m-3 hover:bg-surface1 transition-colors flex flex-col justify-between p-4"
16 <span className='games-page-item-body-item-title'>{cat.category.name}</span> 15 to={"/games/" + game.id + "?cat=" + cat.category.id}
17 <br /> 16 >
18 <span className='games-page-item-body-item-num'>{cat.portal_count}</span> 17 <p className="text-3xl font-semibold">{cat.category.name}</p>
19 </div> 18 <br />
20 </Link> 19 <p className="font-bold text-4xl">{cat.portal_count}</p>
21 ) 20 </Link>
22} 21 );
22};
23 23
24export default GameCategory; 24export default GameCategory;
diff --git a/frontend/src/components/GameEntry.tsx b/frontend/src/components/GameEntry.tsx
index 3bd2842..f8fd179 100644
--- a/frontend/src/components/GameEntry.tsx
+++ b/frontend/src/components/GameEntry.tsx
@@ -1,10 +1,9 @@
1import React from 'react'; 1import React from "react";
2import { Link } from "react-router-dom"; 2import { Link } from "react-router-dom";
3 3
4import { Game, GameCategoryPortals } from '@customTypes/Game'; 4import { Game, GameCategoryPortals } from "@customTypes/Game";
5import "@css/Games.css"
6 5
7import GameCategory from '@components/GameCategory'; 6import GameCategory from "@components/GameCategory";
8 7
9interface GameEntryProps { 8interface GameEntryProps {
10 game: Game; 9 game: Game;
@@ -18,17 +17,28 @@ const GameEntry: React.FC<GameEntryProps> = ({ game }) => {
18 }, [game.category_portals]); 17 }, [game.category_portals]);
19 18
20 return ( 19 return (
21 <Link to={"/games/" + game.id}><div className='games-page-item'> 20 <Link to={"/games/" + game.id} className="w-full">
22 <div className='games-page-item-header'> 21 <div className="w-full h-64 bg-mantle rounded-3xl overflow-hidden my-6">
23 <div style={{ backgroundImage: `url(${game.image})` }} className='games-page-item-header-img'></div> 22 <div className="w-full h-1/2 bg-cover overflow-hidden relative">
24 <span><b>{game.name}</b></span> 23 <div
24 style={{ backgroundImage: `url(${game.image})` }}
25 className="w-full h-full backdrop-blur-sm blur-sm bg-cover"
26 ></div>
27 <span className="absolute inset-0 flex justify-center items-center">
28 <b className="text-[56px] font-[--font-barlow-condensed-bold] text-white">{game.name}</b>
29 </span>
30 </div>
31 <div className="flex justify-center items-center h-1/2">
32 <div className="flex flex-row justify-between w-full">
33 {catInfo.map((cat, index) => {
34 return (
35 <GameCategory key={index} cat={cat} game={game} />
36 );
37 })}
38 </div>
39 </div>
25 </div> 40 </div>
26 <div id={game.id as any as string} className='games-page-item-body'> 41 </Link>
27 {catInfo.map((cat, index) => {
28 return <GameCategory cat={cat} game={game} key={index}></GameCategory>
29 })}
30 </div>
31 </div></Link>
32 ); 42 );
33}; 43};
34 44
diff --git a/frontend/src/components/Leaderboards.tsx b/frontend/src/components/Leaderboards.tsx
index fb614fa..1de9b08 100644
--- a/frontend/src/components/Leaderboards.tsx
+++ b/frontend/src/components/Leaderboards.tsx
@@ -1,15 +1,15 @@
1import React from 'react'; 1import React, { useCallback } from "react";
2import { Link, useNavigate } from 'react-router-dom'; 2import { Link, useNavigate } from "react-router-dom";
3 3
4import { DownloadIcon, ThreedotIcon } from '@images/Images'; 4import { DownloadIcon, ThreedotIcon } from "@images/Images";
5import { MapLeaderboard } from '@customTypes/Map'; 5import { MapLeaderboard } from "@customTypes/Map";
6import { ticks_to_time, time_ago } from '@utils/Time'; 6import { ticks_to_time, time_ago } from "@utils/Time";
7import { API } from "@api/Api"; 7import { API } from "@api/Api";
8import useMessage from "@hooks/UseMessage"; 8import useMessage from "@hooks/UseMessage";
9import "@css/Maps.css" 9import "@css/Maps.css";
10 10
11interface LeaderboardsProps { 11interface LeaderboardsProps {
12 mapID: string; 12 mapID: string;
13} 13}
14 14
15const Leaderboards: React.FC<LeaderboardsProps> = ({ mapID }) => { 15const Leaderboards: React.FC<LeaderboardsProps> = ({ mapID }) => {
@@ -17,109 +17,228 @@ const Leaderboards: React.FC<LeaderboardsProps> = ({ mapID }) => {
17 const [data, setData] = React.useState<MapLeaderboard | undefined>(undefined); 17 const [data, setData] = React.useState<MapLeaderboard | undefined>(undefined);
18 const [pageNumber, setPageNumber] = React.useState<number>(1); 18 const [pageNumber, setPageNumber] = React.useState<number>(1);
19 19
20 const _fetch_map_leaderboards = async () => { 20 const _fetch_map_leaderboards = useCallback(async () => {
21 const mapLeaderboards = await API.get_map_leaderboard(mapID, pageNumber.toString()); 21 const mapLeaderboards = await API.get_map_leaderboard(
22 mapID,
23 pageNumber.toString()
24 );
22 setData(mapLeaderboards); 25 setData(mapLeaderboards);
23 }; 26 }, [mapID, pageNumber]);
24 27
25 const { message, MessageDialogComponent } = useMessage(); 28 const { message, MessageDialogComponent } = useMessage();
26 29
27 React.useEffect(() => { 30 React.useEffect(() => {
28 _fetch_map_leaderboards(); 31 _fetch_map_leaderboards();
29 console.log(data); 32 console.log(data);
30 }, [pageNumber, navigate]) 33 }, [pageNumber, navigate, _fetch_map_leaderboards, data]);
31 34
32 if (!data) { 35 if (!data) {
33 return ( 36 return (
34 <section id='section6' className='summary2'> 37 <section id="section6" className="summary2">
35 <h1 style={{ textAlign: "center" }}>Map is not available for competitive boards.</h1> 38 <h1 style={{ textAlign: "center" }}>
39 Loading...
40 </h1>
36 </section> 41 </section>
37 ); 42 );
38 }; 43 }
39 44
40 if (data.records.length === 0) { 45 if (data.records.length === 0) {
41 return ( 46 return (
42 <section id='section6' className='summary2'> 47 <section id="section6" className="summary2">
43 <h1 style={{ textAlign: "center" }}>No records found.</h1> 48 <h1 style={{ textAlign: "center" }}>No records found.</h1>
44 </section> 49 </section>
45 ); 50 );
46 }; 51 }
47 52
48 return ( 53 return (
49 <div> 54 <div className="text-foreground">
50 {MessageDialogComponent} 55 {MessageDialogComponent}
51 <section id='section6' className='summary2'> 56 <section id="section6" className="summary2">
52 57 <div
53 <div id='leaderboard-top' 58 id="leaderboard-top"
54 style={data.map.is_coop ? { gridTemplateColumns: "7.5% 40% 7.5% 15% 15% 15%" } : { gridTemplateColumns: "7.5% 30% 10% 20% 17.5% 15%" }} 59 style={
55 > 60 data.map.is_coop
56 <span>Place</span> 61 ? { gridTemplateColumns: "7.5% 40% 7.5% 15% 15% 15%" }
57 62 : { gridTemplateColumns: "7.5% 30% 10% 20% 17.5% 15%" }
58 {data.map.is_coop ? ( 63 }
59 <div id='runner'> 64 >
60 <span>Blue</span> 65 <span>Place</span>
61 <span>Orange</span> 66
62 </div> 67 {data.map.is_coop ? (
63 ) : ( 68 <div id="runner">
64 <span>Runner</span> 69 <span>Blue</span>
65 )} 70 <span>Orange</span>
66 71 </div>
67 <span>Portals</span> 72 ) : (
68 <span>Time</span> 73 <span>Runner</span>
69 <span>Date</span> 74 )}
70 <div id='page-number'> 75
71 <div> 76 <span>Portals</span>
72 77 <span>Time</span>
73 <button onClick={() => pageNumber === 1 ? null : setPageNumber(prevPageNumber => prevPageNumber - 1)} 78 <span>Date</span>
74 ><i className='triangle' style={{ position: 'relative', left: '-5px', }}></i> </button> 79 <div id="page-number">
75 <span>{data.pagination.current_page}/{data.pagination.total_pages}</span> 80 <div>
76 <button onClick={() => pageNumber === data.pagination.total_pages ? null : setPageNumber(prevPageNumber => prevPageNumber + 1)} 81 <button
77 ><i className='triangle' style={{ position: 'relative', left: '5px', transform: 'rotate(180deg)' }}></i> </button> 82 onClick={() =>
83 pageNumber === 1
84 ? null
85 : setPageNumber(prevPageNumber => prevPageNumber - 1)
86 }
87 >
88 <i
89 className="triangle"
90 style={{ position: "relative", left: "-5px" }}
91 ></i>{" "}
92 </button>
93 <span>
94 {data.pagination.current_page}/{data.pagination.total_pages}
95 </span>
96 <button
97 onClick={() =>
98 pageNumber === data.pagination.total_pages
99 ? null
100 : setPageNumber(prevPageNumber => prevPageNumber + 1)
101 }
102 >
103 <i
104 className="triangle"
105 style={{
106 position: "relative",
107 left: "5px",
108 transform: "rotate(180deg)",
109 }}
110 ></i>{" "}
111 </button>
112 </div>
78 </div> 113 </div>
79 </div> 114 </div>
80 </div> 115 <hr />
81 <hr /> 116 <div id="leaderboard-records">
82 <div id='leaderboard-records'> 117 {data.records.map((r, index) => (
83 {data.records.map((r, index) => ( 118 <span
84 <span className='leaderboard-record' key={index} 119 className="leaderboard-record"
85 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%" }} 120 key={index}
86 > 121 style={
87 <span>{r.placement}</span> 122 data.map.is_coop
88 <span> </span> 123 ? { gridTemplateColumns: "3% 4.5% 40% 4% 3.5% 15% 15% 14.5%" }
89 {r.kind === "multiplayer" ? ( 124 : { gridTemplateColumns: "3% 4.5% 30% 4% 6% 20% 17% 15%" }
90 <div> 125 }
91 <Link to={`/users/${r.host.steam_id}`}><span><img src={r.host.avatar_link} alt='' /> &nbsp; {r.host.user_name}</span></Link> 126 >
92 <Link to={`/users/${r.partner.steam_id}`}><span><img src={r.partner.avatar_link} alt='' /> &nbsp; {r.partner.user_name}</span></Link> 127 <span>{r.placement}</span>
93 </div> 128 <span> </span>
94 ) : r.kind === "singleplayer" && ( 129 {r.kind === "multiplayer" ? (
95 <div> 130 <div>
96 <Link to={`/users/${r.user.steam_id}`}><span><img src={r.user.avatar_link} alt='' /> &nbsp; {r.user.user_name}</span></Link> 131 <Link to={`/users/${r.host.steam_id}`}>
97 </div> 132 <span>
98 )} 133 <img src={r.host.avatar_link} alt="" /> &nbsp;{" "}
99 134 {r.host.user_name}
100 <span>{r.score_count}</span> 135 </span>
101 <span> </span> 136 </Link>
102 <span className='hover-popup' popup-text={(r.score_time) + " ticks"}>{ticks_to_time(r.score_time)}</span> 137 <Link to={`/users/${r.partner.steam_id}`}>
103 <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> 138 <span>
104 139 <img src={r.partner.avatar_link} alt="" /> &nbsp;{" "}
105 {r.kind === "multiplayer" ? ( 140 {r.partner.user_name}
106 <span> 141 </span>
107 <button onClick={() => { message("Demo Information", `Host Demo ID: ${r.host_demo_id} \nParnter Demo ID: ${r.partner_demo_id}`) }}><img src={ThreedotIcon} alt="demo_id" /></button> 142 </Link>
108 <button onClick={() => window.location.href = `/api/v1/demos?uuid=${r.partner_demo_id}`}><img src={DownloadIcon} alt="download" style={{ filter: "hue-rotate(160deg) contrast(60%) saturate(1000%)" }} /></button> 143 </div>
109 <button onClick={() => window.location.href = `/api/v1/demos?uuid=${r.host_demo_id}`}><img src={DownloadIcon} alt="download" style={{ filter: "hue-rotate(300deg) contrast(60%) saturate(1000%)" }} /></button> 144 ) : (
145 r.kind === "singleplayer" && (
146 <div>
147 <Link to={`/users/${r.user.steam_id}`}>
148 <span>
149 <img src={r.user.avatar_link} alt="" /> &nbsp;{" "}
150 {r.user.user_name}
151 </span>
152 </Link>
153 </div>
154 )
155 )}
156
157 <span>{r.score_count}</span>
158 <span> </span>
159 <span
160 className="hover-popup"
161 popup-text={r.score_time + " ticks"}
162 >
163 {ticks_to_time(r.score_time)}
110 </span> 164 </span>
111 ) : r.kind === "singleplayer" && ( 165 <span
112 166 className="hover-popup"
113 <span> 167 popup-text={r.record_date.replace("T", " ").split(".")[0]}
114 <button onClick={() => { message("Demo Information", `Demo ID: ${r.demo_id}`) }}><img src={ThreedotIcon} alt="demo_id" /></button> 168 >
115 <button onClick={() => window.location.href = `/api/v1/demos?uuid=${r.demo_id}`}><img src={DownloadIcon} alt="download" /></button> 169 {time_ago(
170 new Date(r.record_date.replace("T", " ").replace("Z", ""))
171 )}
116 </span> 172 </span>
117 )} 173
118 </span> 174 {r.kind === "multiplayer" ? (
119 ))} 175 <span>
120 </div> 176 <button
121 </section> 177 onClick={() => {
122 </div> 178 message(
179 "Demo Information",
180 `Host Demo ID: ${r.host_demo_id} \nParnter Demo ID: ${r.partner_demo_id}`
181 );
182 }}
183 >
184 <img src={ThreedotIcon} alt="demo_id" />
185 </button>
186 <button
187 onClick={() =>
188 (window.location.href = `/api/v1/demos?uuid=${r.partner_demo_id}`)
189 }
190 >
191 <img
192 src={DownloadIcon}
193 alt="download"
194 style={{
195 filter:
196 "hue-rotate(160deg) contrast(60%) saturate(1000%)",
197 }}
198 className="w-6 h-6 mx-4"
199 />
200 </button>
201 <button
202 onClick={() =>
203 (window.location.href = `/api/v1/demos?uuid=${r.host_demo_id}`)
204 }
205 >
206 <img
207 src={DownloadIcon}
208 alt="download"
209 style={{
210 filter:
211 "hue-rotate(300deg) contrast(60%) saturate(1000%)",
212 }}
213 className="w-6 h-6"
214 />
215 </button>
216 </span>
217 ) : (
218 r.kind === "singleplayer" && (
219 <span>
220 <button
221 onClick={() => {
222 message("Demo Information", `Demo ID: ${r.demo_id}`);
223 }}
224 >
225 <img src={ThreedotIcon} alt="demo_id" />
226 </button>
227 <button
228 onClick={() =>
229 (window.location.href = `/api/v1/demos?uuid=${r.demo_id}`)
230 }
231 >
232 <img src={DownloadIcon} alt="download" className="w-6 h-6 mr-4" />
233 </button>
234 </span>
235 )
236 )}
237 </span>
238 ))}
239 </div>
240 </section>
241 </div>
123 ); 242 );
124}; 243};
125 244
diff --git a/frontend/src/components/Login.tsx b/frontend/src/components/Login.tsx
index f1628b2..ba85aeb 100644
--- a/frontend/src/components/Login.tsx
+++ b/frontend/src/components/Login.tsx
@@ -1,19 +1,18 @@
1import React from 'react'; 1import React from "react";
2import { Link, useNavigate } from 'react-router-dom'; 2import { Link, useNavigate } from "react-router-dom";
3 3
4import { ExitIcon, UserIcon, LoginIcon } from '@images/Images'; 4import { ExitIcon, UserIcon, LoginIcon } from "../images/Images";
5import { UserProfile } from '@customTypes/Profile'; 5import { UserProfile } from "@customTypes/Profile";
6import { API } from '@api/Api'; 6import { API } from "@api/Api";
7import "@css/Login.css";
8 7
9interface LoginProps { 8interface LoginProps {
10 setToken: React.Dispatch<React.SetStateAction<string | undefined>>; 9 setToken: React.Dispatch<React.SetStateAction<string | undefined>>;
11 profile?: UserProfile; 10 profile?: UserProfile;
12 setProfile: React.Dispatch<React.SetStateAction<UserProfile | undefined>>; 11 setProfile: React.Dispatch<React.SetStateAction<UserProfile | undefined>>;
13}; 12 isOpen: boolean;
14 13}
15const Login: React.FC<LoginProps> = ({ setToken, profile, setProfile }) => {
16 14
15const Login: React.FC<LoginProps> = ({ setToken, profile, setProfile, isOpen }) => {
17 const navigate = useNavigate(); 16 const navigate = useNavigate();
18 17
19 const _login = () => { 18 const _login = () => {
@@ -29,52 +28,71 @@ const Login: React.FC<LoginProps> = ({ setToken, profile, setProfile }) => {
29 28
30 return ( 29 return (
31 <> 30 <>
32 {profile 31 {profile ? (
33 ? 32 <>
34 ( 33 {profile.profile ? (
35 <> 34 <>
36 {profile.profile ? 35 <Link to="/profile" tabIndex={-1} className="grid grid-cols-[50px_auto_200px]">
37 ( 36 <button className="grid grid-cols-[50px_auto] place-items-start text-left bg-inherit cursor-pointer border-none w-[310px] h-10 rounded-[20px] py-[0.3em] px-0 pl-[11px] transition-all duration-300">
38 <> 37 <img
39 <Link to="/profile" tabIndex={-1} className='login'> 38 className="rounded-[50px]"
40 <button className='sidebar-button'> 39 src={profile.avatar_link}
41 <img className="avatar-img" src={profile.avatar_link} alt="" /> 40 alt=""
42 <span>{profile.user_name}</span> 41 />
43 </button> 42 <span className="font-[--font-barlow-semicondensed-regular] text-lg text-foreground h-8 leading-7 transition-opacity duration-100 max-w-[22ch] overflow-hidden">{profile.user_name}</span>
44 <button className='logout-button' onClick={_logout}> 43 </button>
45 <img src={ExitIcon} alt="" /><span /> 44 <button className="relative left-[210px] w-[50px] !pl-[10px] !bg-transparent" onClick={_logout}>
46 </button> 45 <img src={ExitIcon} alt="" />
47 </Link> 46 <span />
48 </> 47 </button>
49 ) 48 </Link>
50 : 49 </>
51 ( 50 ) : (
52 <> 51 <>
53 <Link to="/" tabIndex={-1} className='login'> 52 <Link to="/" tabIndex={-1} className="grid grid-cols-[50px_auto_200px]">
54 <button className='sidebar-button'> 53 <button className="grid grid-cols-[50px_auto] place-items-start text-left bg-inherit cursor-pointer border-none w-[310px] h-10 rounded-[20px] py-[0.3em] px-0 pl-[11px] transition-all duration-300">
55 <img className="avatar-img" src={profile.avatar_link} alt="" /> 54 <img
56 <span>Loading Profile...</span> 55 className="rounded-[50px]"
57 </button> 56 src={profile.avatar_link}
58 <button disabled className='logout-button' onClick={_logout}> 57 alt=""
59 <img src={ExitIcon} alt="" /><span /> 58 />
60 </button> 59 <span className="font-[--font-barlow-semicondensed-regular] text-lg text-foreground h-8 leading-7 transition-opacity duration-100 max-w-[22ch] overflow-hidden">Loading Profile...</span>
61 </Link> 60 </button>
62 </> 61 <button disabled className="relative left-[210px] w-[50px] !pl-[10px] !bg-transparent hidden" onClick={_logout}>
63 ) 62 <img src={ExitIcon} alt="" />
64 } 63 <span />
65 </> 64 </button>
66 ) 65 </Link>
67 : 66 </>
68 ( 67 )}
69 <Link to="/api/v1/login" tabIndex={-1} className='login' > 68 </>
70 <button className='sidebar-button' onClick={_login}> 69 ) : (
71 <img className="avatar-img" src={UserIcon} alt="" /> 70 <Link to="/api/v1/login" tabIndex={-1}>
72 <span> 71 <button
73 <img src={LoginIcon} alt="Sign in through Steam" /> 72 className={`${
74 </span> 73 isOpen
75 </button> 74 ? "grid grid-cols-[50px_auto] place-items-start pl-[11px]"
76 </Link> 75 : "flex items-center justify-center"
77 )} 76 } text-left bg-inherit cursor-pointer border-none w-[310px] h-16 rounded-[20px] py-[0.3em] px-0 transition-all duration-300 ${isOpen ? "text-white" : "text-gray-400"}`}
77 onClick={_login}
78 >
79 <span className={`font-[--font-barlow-semicondensed-regular] text-lg h-12 leading-7 transition-opacity duration-100 ${isOpen ? " overflow-hidden" : ""}`}>
80 {isOpen ? (
81 <div className="bg-neutral-800 p-2 rounded-lg w-64 flex flex-row items-center justifyt-start gap-2 font-semibold">
82 <LoginIcon />
83 <span>
84 Login with Steam
85 </span>
86 </div>
87 ) : (
88 <div className="bg-neutral-800 p-2 rounded-lg w-">
89 <LoginIcon />
90 </div>
91 )}
92 </span>
93 </button>
94 </Link>
95 )}
78 </> 96 </>
79 ); 97 );
80}; 98};
diff --git a/frontend/src/components/MapEntry.tsx b/frontend/src/components/MapEntry.tsx
index 0f494ad..985e806 100644
--- a/frontend/src/components/MapEntry.tsx
+++ b/frontend/src/components/MapEntry.tsx
@@ -1,12 +1,8 @@
1import React from 'react'; 1import React from "react";
2import { Link } from "react-router-dom"; 2import { Link } from "react-router-dom";
3 3
4const MapEntry: React.FC = () => { 4const MapEntry: React.FC = () => {
5 return ( 5 return <div></div>;
6 <div> 6};
7
8 </div>
9 )
10}
11 7
12export default MapEntry; 8export default MapEntry;
diff --git a/frontend/src/components/MessageDialog.tsx b/frontend/src/components/MessageDialog.tsx
index 5c85189..fcf4d8d 100644
--- a/frontend/src/components/MessageDialog.tsx
+++ b/frontend/src/components/MessageDialog.tsx
@@ -1,29 +1,33 @@
1import React from 'react'; 1import React from "react";
2 2
3import "@css/Dialog.css" 3import "@css/Dialog.css";
4 4
5interface MessageDialogProps { 5interface MessageDialogProps {
6 title: string; 6 title: string;
7 subtitle: string; 7 subtitle: string;
8 onClose: () => void; 8 onClose: () => void;
9}; 9}
10 10
11const MessageDialog: React.FC<MessageDialogProps> = ({ title, subtitle, onClose }) => { 11const MessageDialog: React.FC<MessageDialogProps> = ({
12 return ( 12 title,
13 <div className='dimmer'> 13 subtitle,
14 <div className='dialog'> 14 onClose,
15 <div className='dialog-element dialog-header'> 15}) => {
16 <span>{title}</span> 16 return (
17 </div> 17 <div className="dimmer">
18 <div className='dialog-element dialog-description'> 18 <div className="dialog">
19 <span>{subtitle}</span> 19 <div className="dialog-element dialog-header">
20 </div> 20 <span>{title}</span>
21 <div className='dialog-element dialog-btns-container'>
22 <button onClick={onClose}>Close</button>
23 </div>
24 </div>
25 </div> 21 </div>
26 ) 22 <div className="dialog-element dialog-description">
27} 23 <span>{subtitle}</span>
24 </div>
25 <div className="dialog-element dialog-btns-container">
26 <button onClick={onClose}>Close</button>
27 </div>
28 </div>
29 </div>
30 );
31};
28 32
29export default MessageDialog; 33export default MessageDialog;
diff --git a/frontend/src/components/MessageDialogLoad.tsx b/frontend/src/components/MessageDialogLoad.tsx
index 966e064..64cdd29 100644
--- a/frontend/src/components/MessageDialogLoad.tsx
+++ b/frontend/src/components/MessageDialogLoad.tsx
@@ -1,29 +1,31 @@
1import React from 'react'; 1import React from "react";
2 2
3import "@css/Dialog.css" 3import "@css/Dialog.css";
4 4
5interface MessageDialogLoadProps { 5interface MessageDialogLoadProps {
6 title: string; 6 title: string;
7 onClose: () => void; 7 onClose: () => void;
8}; 8}
9 9
10const MessageDialogLoad: React.FC<MessageDialogLoadProps> = ({ title, onClose }) => { 10const MessageDialogLoad: React.FC<MessageDialogLoadProps> = ({
11 return ( 11 title,
12 <div className='dimmer'> 12 onClose,
13 <div className='dialog'> 13}) => {
14 <div className='dialog-element dialog-header'> 14 return (
15 <span>{title}</span> 15 <div className="dimmer">
16 </div> 16 <div className="dialog">
17 <div className='dialog-element dialog-description'> 17 <div className="dialog-element dialog-header">
18 <div style={{display: "flex", justifyContent: "center"}}> 18 <span>{title}</span>
19 <span className="loader"></span>
20 </div>
21 </div>
22 <div className='dialog-element dialog-btns-container'>
23 </div>
24 </div>
25 </div> 19 </div>
26 ) 20 <div className="dialog-element dialog-description">
27} 21 <div style={{ display: "flex", justifyContent: "center" }}>
22 <span className="loader"></span>
23 </div>
24 </div>
25 <div className="dialog-element dialog-btns-container"></div>
26 </div>
27 </div>
28 );
29};
28 30
29export default MessageDialogLoad; 31export default MessageDialogLoad;
diff --git a/frontend/src/components/ModMenu.tsx b/frontend/src/components/ModMenu.tsx
index 925b8a8..a0d7eb7 100644
--- a/frontend/src/components/ModMenu.tsx
+++ b/frontend/src/components/ModMenu.tsx
@@ -1,12 +1,11 @@
1import React from 'react'; 1import React from "react";
2import ReactMarkdown from 'react-markdown'; 2import ReactMarkdown from "react-markdown";
3import { useNavigate } from 'react-router-dom'; 3import { useNavigate } from "react-router-dom";
4 4
5import { MapSummary } from '@customTypes/Map'; 5import { MapSummary } from "@customTypes/Map";
6import { ModMenuContent } from '@customTypes/Content'; 6import { ModMenuContent } from "@customTypes/Content";
7import { API } from '@api/Api'; 7import { API } from "@api/Api";
8import "@css/ModMenu.css" 8import useConfirm from "@hooks/UseConfirm";
9import useConfirm from '@hooks/UseConfirm';
10 9
11interface ModMenuProps { 10interface ModMenuProps {
12 token?: string; 11 token?: string;
@@ -15,8 +14,12 @@ interface ModMenuProps {
15 mapID: string; 14 mapID: string;
16} 15}
17 16
18const ModMenu: React.FC<ModMenuProps> = ({ token, data, selectedRun, mapID }) => { 17const ModMenu: React.FC<ModMenuProps> = ({
19 18 token,
19 data,
20 selectedRun,
21 mapID,
22}) => {
20 const { confirm, ConfirmDialogComponent } = useConfirm(); 23 const { confirm, ConfirmDialogComponent } = useConfirm();
21 24
22 const [menu, setMenu] = React.useState<number>(0); 25 const [menu, setMenu] = React.useState<number>(0);
@@ -55,74 +58,99 @@ const ModMenu: React.FC<ModMenuProps> = ({ token, data, selectedRun, mapID }) =>
55 width *= 320 / height; 58 width *= 320 / height;
56 height = 320; 59 height = 320;
57 } 60 }
58 const canvas = document.createElement('canvas'); 61 const canvas = document.createElement("canvas");
59 canvas.width = width; 62 canvas.width = width;
60 canvas.height = height; 63 canvas.height = height;
61 canvas.getContext('2d')!.drawImage(img, 0, 0, width, height); 64 canvas.getContext("2d")!.drawImage(img, 0, 0, width, height);
62 resolve(canvas.toDataURL(file.type, 0.6)); 65 resolve(canvas.toDataURL(file.type, 0.6));
63 }; 66 };
64 } 67 }
65 }; 68 };
66 }); 69 });
67 }; 70 }
68 71
69 const _edit_map_summary_image = async () => { 72 const _edit_map_summary_image = async () => {
70 if (await confirm("Edit Map Summary Image", "Are you sure you want to submit this to the database?")) { 73 if (
74 await confirm(
75 "Edit Map Summary Image",
76 "Are you sure you want to submit this to the database?"
77 )
78 ) {
71 if (token) { 79 if (token) {
72 const success = await API.put_map_image(token, mapID, image); 80 const success = await API.put_map_image(token, mapID, image);
73 if (success) { 81 if (success) {
74 navigate(0); 82 navigate(0);
75 } else { 83 } else {
76 alert("Error. Check logs.") 84 alert("Error. Check logs.");
77 } 85 }
78 } 86 }
79 } 87 }
80 }; 88 };
81 89
82 const _edit_map_summary_route = async () => { 90 const _edit_map_summary_route = async () => {
83 if (await confirm("Edit Map Summary Route", "Are you sure you want to submit this to the database?")) { 91 if (
92 await confirm(
93 "Edit Map Summary Route",
94 "Are you sure you want to submit this to the database?"
95 )
96 ) {
84 if (token) { 97 if (token) {
85 routeContent.date += "T00:00:00Z"; 98 routeContent.date += "T00:00:00Z";
86 const success = await API.put_map_summary(token, mapID, routeContent); 99 const success = await API.put_map_summary(token, mapID, routeContent);
87 if (success) { 100 if (success) {
88 navigate(0); 101 navigate(0);
89 } else { 102 } else {
90 alert("Error. Check logs.") 103 alert("Error. Check logs.");
91 } 104 }
92 } 105 }
93 } 106 }
94 }; 107 };
95 108
96 const _create_map_summary_route = async () => { 109 const _create_map_summary_route = async () => {
97 if (await confirm("Create Map Summary Route", "Are you sure you want to submit this to the database?")) { 110 if (
111 await confirm(
112 "Create Map Summary Route",
113 "Are you sure you want to submit this to the database?"
114 )
115 ) {
98 if (token) { 116 if (token) {
99 routeContent.date += "T00:00:00Z"; 117 routeContent.date += "T00:00:00Z";
100 const success = await API.post_map_summary(token, mapID, routeContent); 118 const success = await API.post_map_summary(token, mapID, routeContent);
101 if (success) { 119 if (success) {
102 navigate(0); 120 navigate(0);
103 } else { 121 } else {
104 alert("Error. Check logs.") 122 alert("Error. Check logs.");
105 } 123 }
106 } 124 }
107 } 125 }
108 }; 126 };
109 127
110 const _delete_map_summary_route = async () => { 128 const _delete_map_summary_route = async () => {
111 if (await confirm("Delete Map Summary Route", `Are you sure you want to submit this to the database?\n 129 if (
112 ${data.summary.routes[selectedRun].category.name}\n${data.summary.routes[selectedRun].history.score_count} portals\n${data.summary.routes[selectedRun].history.runner_name}`)) { 130 await confirm(
131 "Delete Map Summary Route",
132 `Are you sure you want to submit this to the database?\n
133 ${data.summary.routes[selectedRun].category.name}\n${data.summary.routes[selectedRun].history.score_count} portals\n${data.summary.routes[selectedRun].history.runner_name}`
134 )
135 ) {
113 if (token) { 136 if (token) {
114 const success = await API.delete_map_summary(token, mapID, data.summary.routes[selectedRun].route_id); 137 const success = await API.delete_map_summary(
138 token,
139 mapID,
140 data.summary.routes[selectedRun].route_id
141 );
115 if (success) { 142 if (success) {
116 navigate(0); 143 navigate(0);
117 } else { 144 } else {
118 alert("Error. Check logs.") 145 alert("Error. Check logs.");
119 } 146 }
120 } 147 }
121 } 148 }
122 }; 149 };
123 150
124 React.useEffect(() => { 151 React.useEffect(() => {
125 if (menu === 3) { // add route 152 if (menu === 3) {
153 // add route
126 setRouteContent({ 154 setRouteContent({
127 id: 0, 155 id: 0,
128 name: "", 156 name: "",
@@ -134,7 +162,8 @@ const ModMenu: React.FC<ModMenuProps> = ({ token, data, selectedRun, mapID }) =>
134 }); 162 });
135 setMd("No description available."); 163 setMd("No description available.");
136 } 164 }
137 if (menu === 2) { // edit route 165 if (menu === 2) {
166 // edit route
138 setRouteContent({ 167 setRouteContent({
139 id: data.summary.routes[selectedRun].route_id, 168 id: data.summary.routes[selectedRun].route_id,
140 name: data.summary.routes[selectedRun].history.runner_name, 169 name: data.summary.routes[selectedRun].history.runner_name,
@@ -146,207 +175,335 @@ const ModMenu: React.FC<ModMenuProps> = ({ token, data, selectedRun, mapID }) =>
146 }); 175 });
147 setMd(data.summary.routes[selectedRun].description); 176 setMd(data.summary.routes[selectedRun].description);
148 } 177 }
149 }, [menu]); 178 }, [menu, data.summary.routes, selectedRun]);
150 179
151 React.useEffect(() => { 180 React.useEffect(() => {
152 const modview = document.querySelector("div#modview") as HTMLElement 181 const modview = document.querySelector("div#modview") as HTMLElement;
153 if (modview) { 182 if (modview) {
154 showButton ? modview.style.transform = "translateY(-68%)" 183 showButton
155 : modview.style.transform = "translateY(0%)" 184 ? (modview.style.transform = "translateY(-68%)")
185 : (modview.style.transform = "translateY(0%)");
156 } 186 }
157 187
158 const modview_block = document.querySelector("#modview_block") as HTMLElement 188 const modview_block = document.querySelector(
189 "#modview_block"
190 ) as HTMLElement;
159 if (modview_block) { 191 if (modview_block) {
160 showButton ? modview_block.style.display = "none" : modview_block.style.display = "block" 192 showButton
193 ? (modview_block.style.display = "none")
194 : (modview_block.style.display = "block");
161 } 195 }
162 }, [showButton]) 196 }, [showButton]);
163 197
164 return ( 198 return (
165 <> 199 <>
166 {ConfirmDialogComponent} 200 {ConfirmDialogComponent}
167 <div id="modview_block" /> 201 <div id="modview_block" />
168 <div id='modview'> 202 <div id="modview">
169 <div> 203 <div>
170 <button onClick={() => setMenu(1)}>Edit Image</button> 204 <button onClick={() => setMenu(1)}>Edit Image</button>
171 <button onClick={() => setMenu(2)}>Edit Selected Route</button> 205 <button onClick={() => setMenu(2)}>Edit Selected Route</button>
172 <button onClick={() => setMenu(3)}>Add New Route</button> 206 <button onClick={() => setMenu(3)}>Add New Route</button>
173 <button onClick={() => _delete_map_summary_route()}>Delete Selected Route</button> 207 <button onClick={() => _delete_map_summary_route()}>
208 Delete Selected Route
209 </button>
174 </div> 210 </div>
175 <div> 211 <div>
176 {showButton ? ( 212 {showButton ? (
177 <button onClick={() => setShowButton(false)}>Show</button> 213 <button onClick={() => setShowButton(false)}>Show</button>
178 ) : ( 214 ) : (
179 <button onClick={() => { setShowButton(true); setMenu(0); }}>Hide</button> 215 <button
216 onClick={() => {
217 setShowButton(true);
218 setMenu(0);
219 }}
220 >
221 Hide
222 </button>
180 )} 223 )}
181 </div> 224 </div>
182 </div><div id='modview-menu'> 225 </div>
183 {// Edit Image 226 <div id="modview-menu">
227 {
228 // Edit Image
184 menu === 1 && ( 229 menu === 1 && (
185 <div id='modview-menu-image'> 230 <div id="modview-menu-image">
186 <div> 231 <div>
187 <span>Current Image:</span> 232 <span>Current Image:</span>
188 <img src={data.map.image} alt="missing" /> 233 <img src={data.map.image} alt="missing" />
189 </div> 234 </div>
190 235
191 <div> 236 <div>
192 <span>New Image: 237 <span>
193 <input type="file" accept='image/*' onChange={e => { 238 New Image:
194 if (e.target.files) { 239 <input
195 compressImage(e.target.files[0]) 240 type="file"
196 .then(d => setImage(d)); 241 accept="image/*"
197 } 242 onChange={e => {
198 }} /></span> 243 if (e.target.files) {
199 {image ? (<button onClick={() => _edit_map_summary_image()}>upload</button>) : <span></span>} 244 compressImage(e.target.files[0]).then(d => setImage(d));
200 <img src={image} alt="" id='modview-menu-image-file' /> 245 }
201 246 }}
247 />
248 </span>
249 {image ? (
250 <button onClick={() => _edit_map_summary_image()}>
251 upload
252 </button>
253 ) : (
254 <span></span>
255 )}
256 <img src={image} alt="" id="modview-menu-image-file" />
202 </div> 257 </div>
203 </div> 258 </div>
204 )} 259 )
260 }
205 261
206 {// Edit Route 262 {
263 // Edit Route
207 menu === 2 && ( 264 menu === 2 && (
208 <div id='modview-menu-edit'> 265 <div id="modview-menu-edit">
209 <div id='modview-route-id'> 266 <div id="modview-route-id">
210 <span>Route ID:</span> 267 <span>Route ID:</span>
211 <input type="number" value={routeContent.id} disabled /> 268 <input type="number" value={routeContent.id} disabled />
212 </div> 269 </div>
213 <div id='modview-route-name'> 270 <div id="modview-route-name">
214 <span>Runner Name:</span> 271 <span>Runner Name:</span>
215 <input type="text" value={routeContent.name} onChange={(e) => { 272 <input
216 setRouteContent({ 273 type="text"
217 ...routeContent, 274 value={routeContent.name}
218 name: e.target.value, 275 onChange={e => {
219 }); 276 setRouteContent({
220 }} /> 277 ...routeContent,
278 name: e.target.value,
279 });
280 }}
281 />
221 </div> 282 </div>
222 <div id='modview-route-score'> 283 <div id="modview-route-score">
223 <span>Score:</span> 284 <span>Score:</span>
224 <input type="number" value={routeContent.score} onChange={(e) => { 285 <input
225 setRouteContent({ 286 type="number"
226 ...routeContent, 287 value={routeContent.score}
227 score: parseInt(e.target.value), 288 onChange={e => {
228 }); 289 setRouteContent({
229 }} /> 290 ...routeContent,
291 score: parseInt(e.target.value),
292 });
293 }}
294 />
230 </div> 295 </div>
231 <div id='modview-route-date'> 296 <div id="modview-route-date">
232 <span>Date:</span> 297 <span>Date:</span>
233 <input type="date" value={routeContent.date} onChange={(e) => { 298 <input
234 setRouteContent({ 299 type="date"
235 ...routeContent, 300 value={routeContent.date}
236 date: e.target.value, 301 onChange={e => {
237 }); 302 setRouteContent({
238 }} /> 303 ...routeContent,
304 date: e.target.value,
305 });
306 }}
307 />
239 </div> 308 </div>
240 <div id='modview-route-showcase'> 309 <div id="modview-route-showcase">
241 <span>Showcase Video:</span> 310 <span>Showcase Video:</span>
242 <input type="text" value={routeContent.showcase} onChange={(e) => { 311 <input
243 setRouteContent({ 312 type="text"
244 ...routeContent, 313 value={routeContent.showcase}
245 showcase: e.target.value, 314 onChange={e => {
246 }); 315 setRouteContent({
247 }} /> 316 ...routeContent,
317 showcase: e.target.value,
318 });
319 }}
320 />
248 </div> 321 </div>
249 <div id='modview-route-description' style={{ height: "180px", gridColumn: "1 / span 5" }}> 322 <div
323 id="modview-route-description"
324 style={{ height: "180px", gridColumn: "1 / span 5" }}
325 >
250 <span>Description:</span> 326 <span>Description:</span>
251 <textarea value={routeContent.description} onChange={(e) => { 327 <textarea
252 setRouteContent({ 328 value={routeContent.description}
253 ...routeContent, 329 onChange={e => {
254 description: e.target.value, 330 setRouteContent({
255 }); 331 ...routeContent,
256 setMd(routeContent.description); 332 description: e.target.value,
257 }} /> 333 });
334 setMd(routeContent.description);
335 }}
336 />
258 </div> 337 </div>
259 <button style={{ gridColumn: "2 / span 3", height: "40px" }} onClick={_edit_map_summary_route}>Apply</button> 338 <button
339 style={{ gridColumn: "2 / span 3", height: "40px" }}
340 onClick={_edit_map_summary_route}
341 >
342 Apply
343 </button>
260 344
261 <div id='modview-md'> 345 <div id="modview-md">
262 <span>Markdown Preview</span> 346 <span>Markdown Preview</span>
263 <span><a href="https://commonmark.org/help/" rel="noreferrer" target='_blank'>Documentation</a></span> 347 <span>
264 <span><a href="https://remarkjs.github.io/react-markdown/" rel="noreferrer" target='_blank'>Demo</a></span> 348 <a
349 href="https://commonmark.org/help/"
350 rel="noreferrer"
351 target="_blank"
352 >
353 Documentation
354 </a>
355 </span>
356 <span>
357 <a
358 href="https://remarkjs.github.io/react-markdown/"
359 rel="noreferrer"
360 target="_blank"
361 >
362 Demo
363 </a>
364 </span>
265 <p> 365 <p>
266 <ReactMarkdown>{md} 366 <ReactMarkdown>{md}</ReactMarkdown>
267 </ReactMarkdown>
268 </p> 367 </p>
269 </div> 368 </div>
270 </div> 369 </div>
271 )} 370 )
371 }
272 372
273 {// Add Route 373 {
374 // Add Route
274 menu === 3 && ( 375 menu === 3 && (
275 <div id='modview-menu-add'> 376 <div id="modview-menu-add">
276 <div id='modview-route-category'> 377 <div id="modview-route-category">
277 <span>Category:</span> 378 <span>Category:</span>
278 <select onChange={(e) => { 379 <select
279 setRouteContent({ 380 onChange={e => {
280 ...routeContent, 381 setRouteContent({
281 category_id: parseInt(e.target.value), 382 ...routeContent,
282 }); 383 category_id: parseInt(e.target.value),
283 }}> 384 });
284 <option value="1" key="1">CM</option> 385 }}
285 <option value="2" key="2">No SLA</option> 386 >
286 {data.map.game_name === "Portal 2 - Cooperative" ? "" : ( 387 <option value="1" key="1">
287 <option value="3" key="3">Inbounds SLA</option>)} 388 CM
288 <option value="4" key="4">Any%</option> 389 </option>
390 <option value="2" key="2">
391 No SLA
392 </option>
393 {data.map.game_name === "Portal 2 - Cooperative" ? (
394 ""
395 ) : (
396 <option value="3" key="3">
397 Inbounds SLA
398 </option>
399 )}
400 <option value="4" key="4">
401 Any%
402 </option>
289 </select> 403 </select>
290 </div> 404 </div>
291 <div id='modview-route-name'> 405 <div id="modview-route-name">
292 <span>Runner Name:</span> 406 <span>Runner Name:</span>
293 <input type="text" value={routeContent.name} onChange={(e) => { 407 <input
294 setRouteContent({ 408 type="text"
295 ...routeContent, 409 value={routeContent.name}
296 name: e.target.value, 410 onChange={e => {
297 }); 411 setRouteContent({
298 }} /> 412 ...routeContent,
413 name: e.target.value,
414 });
415 }}
416 />
299 </div> 417 </div>
300 <div id='modview-route-score'> 418 <div id="modview-route-score">
301 <span>Score:</span> 419 <span>Score:</span>
302 <input type="number" value={routeContent.score} onChange={(e) => { 420 <input
303 setRouteContent({ 421 type="number"
304 ...routeContent, 422 value={routeContent.score}
305 score: parseInt(e.target.value), 423 onChange={e => {
306 }); 424 setRouteContent({
307 }} /> 425 ...routeContent,
426 score: parseInt(e.target.value),
427 });
428 }}
429 />
308 </div> 430 </div>
309 <div id='modview-route-date'> 431 <div id="modview-route-date">
310 <span>Date:</span> 432 <span>Date:</span>
311 <input type="date" value={routeContent.date} onChange={(e) => { 433 <input
312 setRouteContent({ 434 type="date"
313 ...routeContent, 435 value={routeContent.date}
314 date: e.target.value, 436 onChange={e => {
315 }); 437 setRouteContent({
316 }} /> 438 ...routeContent,
439 date: e.target.value,
440 });
441 }}
442 />
317 </div> 443 </div>
318 <div id='modview-route-showcase'> 444 <div id="modview-route-showcase">
319 <span>Showcase Video:</span> 445 <span>Showcase Video:</span>
320 <input type="text" value={routeContent.showcase} onChange={(e) => { 446 <input
321 setRouteContent({ 447 type="text"
322 ...routeContent, 448 value={routeContent.showcase}
323 showcase: e.target.value, 449 onChange={e => {
324 }); 450 setRouteContent({
325 }} /> 451 ...routeContent,
452 showcase: e.target.value,
453 });
454 }}
455 />
326 </div> 456 </div>
327 <div id='modview-route-description' style={{ height: "180px", gridColumn: "1 / span 5" }}> 457 <div
458 id="modview-route-description"
459 style={{ height: "180px", gridColumn: "1 / span 5" }}
460 >
328 <span>Description:</span> 461 <span>Description:</span>
329 <textarea value={routeContent.description} onChange={(e) => { 462 <textarea
330 setRouteContent({ 463 value={routeContent.description}
331 ...routeContent, 464 onChange={e => {
332 description: e.target.value, 465 setRouteContent({
333 }); 466 ...routeContent,
334 setMd(routeContent.description); 467 description: e.target.value,
335 }} /> 468 });
469 setMd(routeContent.description);
470 }}
471 />
336 </div> 472 </div>
337 <button style={{ gridColumn: "2 / span 3", height: "40px" }} onClick={_create_map_summary_route}>Apply</button> 473 <button
474 style={{ gridColumn: "2 / span 3", height: "40px" }}
475 onClick={_create_map_summary_route}
476 >
477 Apply
478 </button>
338 479
339 <div id='modview-md'> 480 <div id="modview-md">
340 <span>Markdown preview</span> 481 <span>Markdown preview</span>
341 <span><a href="https://commonmark.org/help/" rel="noreferrer" target='_blank'>documentation</a></span> 482 <span>
342 <span><a href="https://remarkjs.github.io/react-markdown/" rel="noreferrer" target='_blank'>demo</a></span> 483 <a
484 href="https://commonmark.org/help/"
485 rel="noreferrer"
486 target="_blank"
487 >
488 documentation
489 </a>
490 </span>
491 <span>
492 <a
493 href="https://remarkjs.github.io/react-markdown/"
494 rel="noreferrer"
495 target="_blank"
496 >
497 demo
498 </a>
499 </span>
343 <p> 500 <p>
344 <ReactMarkdown>{md} 501 <ReactMarkdown>{md}</ReactMarkdown>
345 </ReactMarkdown>
346 </p> 502 </p>
347 </div> 503 </div>
348 </div> 504 </div>
349 )} 505 )
506 }
350 </div> 507 </div>
351 </> 508 </>
352 ); 509 );
diff --git a/frontend/src/components/RankingEntry.tsx b/frontend/src/components/RankingEntry.tsx
index b899965..f28eabf 100644
--- a/frontend/src/components/RankingEntry.tsx
+++ b/frontend/src/components/RankingEntry.tsx
@@ -1,46 +1,65 @@
1import React from 'react'; 1import React from "react";
2import { Link } from "react-router-dom"; 2import { Link } from "react-router-dom";
3import { RankingType, SteamRanking, SteamRankingType } from '@customTypes/Ranking'; 3import { RankingType, SteamRankingType } from "@customTypes/Ranking";
4 4
5enum RankingCategories { 5enum RankingCategories {
6 rankings_overall, 6 rankings_overall,
7 rankings_multiplayer, 7 rankings_multiplayer,
8 rankings_singleplayer 8 rankings_singleplayer,
9} 9}
10 10
11interface RankingEntryProps { 11interface RankingEntryProps {
12 curRankingData: RankingType | SteamRankingType; 12 curRankingData: RankingType | SteamRankingType;
13 currentLeaderboardType: RankingCategories 13 currentLeaderboardType: RankingCategories;
14};
15
16const RankingEntry: React.FC<RankingEntryProps> = (prop) => {
17 if ("placement" in prop.curRankingData) {
18 return (
19 <div className='leaderboard-entry'>
20 <span>{prop.curRankingData.placement}</span>
21 <div>
22 <Link to={`/users/${prop.curRankingData.user.steam_id}`}>
23 <img src={prop.curRankingData.user.avatar_link}></img>
24 <span>{prop.curRankingData.user.user_name}</span>
25 </Link>
26 </div>
27 <span>{prop.curRankingData.total_score}</span>
28 </div>
29 )
30 } else {
31 return (
32 <div className='leaderboard-entry'>
33 <span>{prop.currentLeaderboardType == RankingCategories.rankings_singleplayer ? prop.curRankingData.sp_rank : prop.currentLeaderboardType == RankingCategories.rankings_multiplayer ? prop.curRankingData.mp_rank : prop.curRankingData.overall_rank}</span>
34 <div>
35 <Link to={`/users/${prop.curRankingData.steam_id}`}>
36 <img src={prop.curRankingData.avatar_link}></img>
37 <span>{prop.curRankingData.user_name}</span>
38 </Link>
39 </div>
40 <span>{prop.currentLeaderboardType == RankingCategories.rankings_singleplayer ? prop.curRankingData.sp_score : prop.currentLeaderboardType == RankingCategories.rankings_multiplayer ? prop.curRankingData.mp_score : prop.curRankingData.overall_score}</span>
41 </div>
42 )
43 }
44} 14}
45 15
16const RankingEntry: React.FC<RankingEntryProps> = prop => {
17 if ("placement" in prop.curRankingData) {
18 return (
19 <div className="leaderboard-entry">
20 <span>{prop.curRankingData.placement}</span>
21 <div>
22 <Link to={`/users/${prop.curRankingData.user.steam_id}`}>
23 <img
24 src={prop.curRankingData.user.avatar_link}
25 alt={`${prop.curRankingData.user.user_name}'s Avatar`}
26 ></img>
27 <span>{prop.curRankingData.user.user_name}</span>
28 </Link>
29 </div>
30 <span>{prop.curRankingData.total_score}</span>
31 </div>
32 );
33 } else {
34 return (
35 <div className="leaderboard-entry">
36 <span>
37 {prop.currentLeaderboardType ===
38 RankingCategories.rankings_singleplayer
39 ? prop.curRankingData.sp_rank
40 : prop.currentLeaderboardType ===
41 RankingCategories.rankings_multiplayer
42 ? prop.curRankingData.mp_rank
43 : prop.curRankingData.overall_rank}
44 </span>
45 <div>
46 <Link to={`/users/${prop.curRankingData.steam_id}`}>
47 <img src={prop.curRankingData.avatar_link}></img>
48 <span>{prop.curRankingData.user_name}</span>
49 </Link>
50 </div>
51 <span>
52 {prop.currentLeaderboardType ===
53 RankingCategories.rankings_singleplayer
54 ? prop.curRankingData.sp_score
55 : prop.currentLeaderboardType ===
56 RankingCategories.rankings_multiplayer
57 ? prop.curRankingData.mp_score
58 : prop.curRankingData.overall_score}
59 </span>
60 </div>
61 );
62 }
63};
64
46export default RankingEntry; 65export default RankingEntry;
diff --git a/frontend/src/components/Sidebar.tsx b/frontend/src/components/Sidebar.tsx
index 67f7f3d..88a5297 100644
--- a/frontend/src/components/Sidebar.tsx
+++ b/frontend/src/components/Sidebar.tsx
@@ -1,99 +1,80 @@
1import React from 'react'; 1import React, { useCallback, useRef } from "react";
2import { Link, useLocation } from 'react-router-dom'; 2import { Link, useLocation } from "react-router-dom";
3 3
4import { BookIcon, FlagIcon, HelpIcon, HomeIcon, LogoIcon, PortalIcon, SearchIcon, UploadIcon } from '@images/Images'; 4import {
5import Login from '@components/Login'; 5 BookIcon,
6import { UserProfile } from '@customTypes/Profile'; 6 FlagIcon,
7import { Search } from '@customTypes/Search'; 7 HelpIcon,
8import { API } from '@api/Api'; 8 HomeIcon,
9import "@css/Sidebar.css"; 9 LogoIcon,
10 PortalIcon,
11 SearchIcon,
12 UploadIcon,
13} from "../images/Images";
14import Login from "@components/Login";
15import { UserProfile } from "@customTypes/Profile";
16import { Search } from "@customTypes/Search";
17import { API } from "@api/Api";
10 18
11interface SidebarProps { 19interface SidebarProps {
12 setToken: React.Dispatch<React.SetStateAction<string | undefined>>; 20 setToken: React.Dispatch<React.SetStateAction<string | undefined>>;
13 profile?: UserProfile; 21 profile?: UserProfile;
14 setProfile: React.Dispatch<React.SetStateAction<UserProfile | undefined>>; 22 setProfile: React.Dispatch<React.SetStateAction<UserProfile | undefined>>;
15 onUploadRun: () => void; 23 onUploadRun: () => void;
16}; 24}
25
26function OpenSidebarIcon(){
27 return (
28 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round" className="lucide lucide-panel-right-close-icon lucide-panel-right-close"><rect width="18" height="18" x="3" y="3" rx="2"/><path d="M15 3v18"/><path d="m8 9 3 3-3 3"/></svg>
29 )
30}
17 31
18const Sidebar: React.FC<SidebarProps> = ({ setToken, profile, setProfile, onUploadRun }) => { 32function ClosedSidebarIcon(){
33 return (
34<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round" className="lucide lucide-panel-right-open-icon lucide-panel-right-open"><rect width="18" height="18" x="3" y="3" rx="2"/><path d="M15 3v18"/><path d="m10 15-3-3 3-3"/></svg> )
35}
19 36
20 const [searchData, setSearchData] = React.useState<Search | undefined>(undefined); 37const Sidebar: React.FC<SidebarProps> = ({
38 setToken,
39 profile,
40 setProfile,
41 onUploadRun,
42}) => {
43 const [searchData, setSearchData] = React.useState<Search | undefined>(
44 undefined
45 );
21 const [isSidebarLocked, setIsSidebarLocked] = React.useState<boolean>(false); 46 const [isSidebarLocked, setIsSidebarLocked] = React.useState<boolean>(false);
22 const [isSidebarOpen, setSidebarOpen] = React.useState<boolean>(true); 47 const [isSidebarOpen, setSidebarOpen] = React.useState<boolean>(false);
48 const [selectedButtonIndex, setSelectedButtonIndex] = React.useState<number>(1);
23 49
24 const location = useLocation(); 50 const location = useLocation();
25 const path = location.pathname; 51 const path = location.pathname;
26 52
27 const handle_sidebar_click = (clicked_sidebar_idx: number) => { 53 const sidebarRef = useRef<HTMLDivElement>(null);
28 const btn = document.querySelectorAll("button.sidebar-button"); 54 const searchbarRef = useRef<HTMLInputElement>(null);
29 if (isSidebarOpen) { setSidebarOpen(false); _handle_sidebar_hide() } 55 const uploadRunRef = useRef<HTMLButtonElement>(null);
30 // clusterfuck 56 const sidebarButtonRefs = useRef<(HTMLButtonElement | null)[]>([]);
31 btn.forEach((e, i) => {
32 btn[i].classList.remove("sidebar-button-selected")
33 btn[i].classList.add("sidebar-button-deselected")
34 })
35 btn[clicked_sidebar_idx].classList.add("sidebar-button-selected")
36 btn[clicked_sidebar_idx].classList.remove("sidebar-button-deselected")
37 };
38 57
39 const _handle_sidebar_hide = () => { 58 const _handle_sidebar_toggle = useCallback(() => {
40 var btn = document.querySelectorAll("button.sidebar-button") as NodeListOf<HTMLElement> 59 if (!sidebarRef.current) return;
41 const span = document.querySelectorAll("button.sidebar-button>span") as NodeListOf<HTMLElement>
42 const side = document.querySelector("#sidebar-list") as HTMLElement;
43 const searchbar = document.querySelector("#searchbar") as HTMLInputElement;
44 const uploadRunBtn = document.querySelector("#upload-run") as HTMLInputElement;
45 const uploadRunSpan = document.querySelector("#upload-run>span") as HTMLInputElement;
46 60
47 if (isSidebarOpen) { 61 if (isSidebarOpen) {
48 if (profile) {
49 const login = document.querySelectorAll(".login>button")[1] as HTMLElement;
50 login.style.opacity = "1"
51 uploadRunBtn.style.width = "310px"
52 uploadRunBtn.style.padding = "0.4em 0 0 11px"
53 uploadRunSpan.style.opacity = "0"
54 setTimeout(() => {
55 uploadRunSpan.style.opacity = "1"
56 }, 100)
57 }
58 setSidebarOpen(false); 62 setSidebarOpen(false);
59 side.style.width = "320px"
60 btn.forEach((e, i) => {
61 e.style.width = "310px"
62 e.style.padding = "0.4em 0 0 11px"
63 setTimeout(() => {
64 span[i].style.opacity = "1"
65 }, 100)
66 });
67 side.style.zIndex = "2"
68 } else { 63 } else {
69 if (profile) {
70 const login = document.querySelectorAll(".login>button")[1] as HTMLElement;
71 login.style.opacity = "0"
72 uploadRunBtn.style.width = "40px"
73 uploadRunBtn.style.padding = "0.4em 0 0 5px"
74 uploadRunSpan.style.opacity = "0"
75 }
76 setSidebarOpen(true); 64 setSidebarOpen(true);
77 side.style.width = "40px"; 65 searchbarRef.current?.focus();
78 searchbar.focus();
79 btn.forEach((e, i) => {
80 e.style.width = "40px"
81 e.style.padding = "0.4em 0 0 5px"
82 span[i].style.opacity = "0"
83 })
84 setTimeout(() => {
85 side.style.zIndex = "0"
86 }, 300);
87 } 66 }
88 }; 67 }, [isSidebarOpen]);
89 68
90 const _handle_sidebar_lock = () => { 69 const handle_sidebar_click = useCallback(
91 if (!isSidebarLocked) { 70 (clicked_sidebar_idx: number) => {
92 _handle_sidebar_hide() 71 setSelectedButtonIndex(clicked_sidebar_idx);
93 setIsSidebarLocked(true); 72 if (isSidebarOpen) {
94 setTimeout(() => setIsSidebarLocked(false), 300); 73 setSidebarOpen(false);
95 } 74 }
96 }; 75 },
76 [isSidebarOpen]
77 );
97 78
98 const _handle_search_change = async (q: string) => { 79 const _handle_search_change = async (q: string) => {
99 const searchResponse = await API.get_search(q); 80 const searchResponse = await API.get_search(q);
@@ -101,100 +82,200 @@ const Sidebar: React.FC<SidebarProps> = ({ setToken, profile, setProfile, onUplo
101 }; 82 };
102 83
103 React.useEffect(() => { 84 React.useEffect(() => {
104 if (path === "/") { handle_sidebar_click(1) } 85 if (path === "/") {
105 else if (path.includes("games")) { handle_sidebar_click(2) } 86 setSelectedButtonIndex(1);
106 else if (path.includes("rankings")) { handle_sidebar_click(3) } 87 } else if (path.includes("games")) {
107 // else if (path.includes("news")) { handle_sidebar_click(4) } 88 setSelectedButtonIndex(2);
108 // else if (path.includes("scorelog")) { handle_sidebar_click(5) } 89 } else if (path.includes("rankings")) {
109 else if (path.includes("profile")) { handle_sidebar_click(4) } 90 setSelectedButtonIndex(3);
110 else if (path.includes("rules")) { handle_sidebar_click(5) } 91 } else if (path.includes("profile")) {
111 else if (path.includes("about")) { handle_sidebar_click(6) } 92 setSelectedButtonIndex(4);
93 } else if (path.includes("rules")) {
94 setSelectedButtonIndex(5);
95 } else if (path.includes("about")) {
96 setSelectedButtonIndex(6);
97 }
112 }, [path]); 98 }, [path]);
113 99
114 return ( 100 const getButtonClasses = (buttonIndex: number) => {
115 <div id='sidebar'> 101 const baseClasses = "flex items-center gap-3 w-full text-left bg-inherit cursor-pointer border-none rounded-lg py-3 px-3 transition-all duration-300 hover:bg-surface1";
116 <Link to="/" tabIndex={-1}> 102 const selectedClasses = selectedButtonIndex === buttonIndex ? "bg-primary text-background" : "bg-transparent text-foreground";
117 <div id='logo'> {/* logo */} 103
118 <img src={LogoIcon} alt="" height={"80px"} /> 104 return `${baseClasses} ${selectedClasses}`;
119 <div id='logo-text'> 105 };
120 <span><b>PORTAL 2</b></span><br />
121 <span>Least Portals Hub</span>
122 </div>
123 </div>
124 </Link>
125 <div id='sidebar-list'> {/* List */}
126 <div id='sidebar-toplist'> {/* Top */}
127
128 <button className='sidebar-button' onClick={() => _handle_sidebar_lock()}><img src={SearchIcon} alt="" /><span>Search</span></button>
129
130 <span></span>
131 106
132 <Link to="/" tabIndex={-1}> 107 const iconClasses = "w-6 h-6 flex-shrink-0";
133 <button className='sidebar-button'><img src={HomeIcon} alt="homepage" /><span>Home&nbsp;Page</span></button>
134 </Link>
135 108
136 <Link to="/games" tabIndex={-1}> 109 return (
137 <button className='sidebar-button'><img src={PortalIcon} alt="games" /><span>Games</span></button> 110 <div className={`fixed top-0 left-0 h-screen bg-surface border-r border-border transition-all duration-300 z-10 overflow-hidden ${
138 </Link> 111 isSidebarOpen ? 'w-80' : 'w-20'
112 }`}>
113 <div className="flex items-center h-20 px-4 border-b border-border">
114 <Link to="/" tabIndex={-1} className="flex items-center flex-1 cursor-pointer select-none min-w-0">
115 <img src={LogoIcon} alt="Logo" className="w-12 h-12 flex-shrink-0" />
116 {isSidebarOpen && (
117 <div className="ml-3 font-[--font-barlow-condensed-regular] text-white min-w-0 overflow-hidden">
118 <div className="font-[--font-barlow-condensed-bold] text-2xl leading-6 truncate">
119 PORTAL 2
120 </div>
121 <div className="text-sm leading-4 truncate">
122 Least Portals Hub
123 </div>
124 </div>
125 )}
126 </Link>
127
128 <button
129 onClick={_handle_sidebar_toggle}
130 className="ml-2 p-2 rounded-lg hover:bg-surface1 transition-colors text-foreground"
131 title={isSidebarOpen ? "Close sidebar" : "Open sidebar"}
132 >
133 {isSidebarOpen ? <ClosedSidebarIcon /> : <OpenSidebarIcon />}
134 </button>
135 </div>
139 136
140 <Link to="/rankings" tabIndex={-1}> 137 {/* Sidebar Content */}
141 <button className='sidebar-button'><img src={FlagIcon} alt="rankings" /><span>Rankings</span></button> 138 <div
142 </Link> 139 ref={sidebarRef}
140 className="flex flex-col h-[calc(100vh-80px)] overflow-y-auto overflow-x-hidden"
141 >
142 {isSidebarOpen && (
143 <div className="p-4 border-b border-border min-w-0">
144 <div className="flex items-center gap-3 mb-3">
145 <img src={SearchIcon} alt="Search" className={iconClasses} />
146 <span className="text-white font-[--font-barlow-semicondensed-regular] truncate">Search</span>
147 </div>
148
149 <div className="min-w-0">
150 <input
151 ref={searchbarRef}
152 type="text"
153 id="searchbar"
154 placeholder="Search for map or a player..."
155 onChange={e => _handle_search_change(e.target.value)}
156 className="w-full p-2 bg-input text-foreground border border-border rounded-lg text-sm min-w-0"
157 />
143 158
144 {/* <Link to="/news" tabIndex={-1}> 159 {searchData && (
145 <button className='sidebar-button'><img src={NewsIcon} alt="news" /><span>News</span></button> 160 <div className="mt-2 max-h-40 overflow-y-auto min-w-0">
146 </Link> */} 161 {searchData?.maps.map((q, index) => (
162 <Link to={`/maps/${q.id}`} className="block p-2 mb-1 bg-surface1 rounded hover:bg-surface2 transition-colors min-w-0" key={index}>
163 <span className="block text-xs text-subtext1 truncate">{q.game}</span>
164 <span className="block text-xs text-subtext1 truncate">{q.chapter}</span>
165 <span className="block text-sm text-foreground truncate">{q.map}</span>
166 </Link>
167 ))}
168 {searchData?.players.map((q, index) => (
169 <Link
170 to={
171 profile && q.steam_id === profile.steam_id
172 ? `/profile`
173 : `/users/${q.steam_id}`
174 }
175 className="flex items-center p-2 mb-1 bg-surface1 rounded hover:bg-surface2 transition-colors min-w-0"
176 key={index}
177 >
178 <img src={q.avatar_link} alt="pfp" className="w-6 h-6 rounded-full mr-2 flex-shrink-0" />
179 <span className="text-sm text-foreground truncate">
180 {q.user_name}
181 </span>
182 </Link>
183 ))}
184 </div>
185 )}
186 </div>
187 </div>
188 )}
147 189
148 {/* <Link to="/scorelog" tabIndex={-1}> 190 <div className="flex-1 p-4 min-w-0">
149 <button className='sidebar-button'><img src={TableIcon} alt="scorelogs" /><span>Score&nbsp;Logs</span></button> 191 <nav className="space-y-2">
150 </Link> */} 192 {[
193 {
194 to: "/",
195 refIndex: 1,
196 icon: HomeIcon,
197 alt: "Home",
198 label: "Home Page",
199 },
200 {
201 to: "/games",
202 refIndex: 2,
203 icon: PortalIcon,
204 alt: "Games",
205 label: "Games",
206 },
207 {
208 to: "/rankings",
209 refIndex: 3,
210 icon: FlagIcon,
211 alt: "Rankings",
212 label: "Rankings",
213 },
214 ].map(({ to, refIndex, icon, alt, label }) => (
215 <Link to={to} tabIndex={-1} key={refIndex}>
216 <button
217 ref={el => sidebarButtonRefs.current[refIndex] = el}
218 className={getButtonClasses(refIndex)}
219 onClick={() => handle_sidebar_click(refIndex)}
220 >
221 <img src={icon} alt={alt} className={iconClasses} />
222 {isSidebarOpen && (
223 <span className="text-white font-[--font-barlow-semicondensed-regular] truncate">
224 {label}
225 </span>
226 )}
227 </button>
228 </Link>
229 ))}
230 </nav>
151 </div> 231 </div>
152 <div id='sidebar-bottomlist'>
153 <span></span>
154 232
155 { 233 {/* Bottom Section */}
156 profile && profile.profile ? 234 <div className="p-4 border-t border-border space-y-2 min-w-0">
157 <button id='upload-run' className='submit-run-button' onClick={() => onUploadRun()}><img src={UploadIcon} alt="upload" /><span>Upload&nbsp;Record</span></button> 235 {profile && profile.profile && (
158 : 236 <button
159 <span></span> 237 ref={uploadRunRef}
160 } 238 id="upload-run"
239 className={getButtonClasses(-1)}
240 onClick={() => onUploadRun()}
241 >
242 <img src={UploadIcon} alt="Upload" className={iconClasses} />
243 {isSidebarOpen && <span className="font-[--font-barlow-semicondensed-regular] truncate">Upload Record</span>}
244 </button>
245 )}
161 246
162 <Login setToken={setToken} profile={profile} setProfile={setProfile} /> 247 <div className={isSidebarOpen ? 'min-w-0' : 'flex justify-center'}>
248 <Login
249 setToken={setToken}
250 profile={profile}
251 setProfile={setProfile}
252 isOpen={isSidebarOpen}
253 />
254 </div>
163 255
164 <Link to="/rules" tabIndex={-1}> 256 <Link to="/rules" tabIndex={-1}>
165 <button className='sidebar-button'><img src={BookIcon} alt="rules" /><span>Leaderboard&nbsp;Rules</span></button> 257 <button
258 ref={el => sidebarButtonRefs.current[5] = el}
259 className={getButtonClasses(5)}
260 onClick={() => handle_sidebar_click(5)}
261 >
262 <img src={BookIcon} alt="Rules" className={iconClasses} />
263 {isSidebarOpen && <span className="font-[--font-barlow-semicondensed-regular] truncate">Leaderboard Rules</span>}
264 </button>
166 </Link> 265 </Link>
167 266
168 <Link to="/about" tabIndex={-1}> 267 <Link to="/about" tabIndex={-1}>
169 <button className='sidebar-button'><img src={HelpIcon} alt="about" /><span>About&nbsp;LPHUB</span></button> 268 <button
269 ref={el => sidebarButtonRefs.current[6] = el}
270 className={getButtonClasses(6)}
271 onClick={() => handle_sidebar_click(6)}
272 >
273 <img src={HelpIcon} alt="About" className={iconClasses} />
274 {isSidebarOpen && <span className="font-[--font-barlow-semicondensed-regular] truncate">About LPHUB</span>}
275 </button>
170 </Link> 276 </Link>
171 </div> 277 </div>
172 </div> 278 </div>
173 <div>
174 <input type="text" id='searchbar' placeholder='Search for map or a player...' onChange={(e) => _handle_search_change(e.target.value)} />
175
176 <div id='search-data'>
177
178 {searchData?.maps.map((q, index) => (
179 <Link to={`/maps/${q.id}`} className='search-map' key={index}>
180 <span>{q.game}</span>
181 <span>{q.chapter}</span>
182 <span>{q.map}</span>
183 </Link>
184 ))}
185 {searchData?.players.map((q, index) =>
186 (
187 <Link to={
188 profile && q.steam_id === profile.steam_id ? `/profile` :
189 `/users/${q.steam_id}`
190 } className='search-player' key={index}>
191 <img src={q.avatar_link} alt='pfp'></img>
192 <span style={{ fontSize: `${36 - q.user_name.length * 0.8}px` }}>{q.user_name}</span>
193 </Link>
194 ))}
195
196 </div>
197 </div>
198 </div> 279 </div>
199 ); 280 );
200}; 281};
diff --git a/frontend/src/components/Summary.tsx b/frontend/src/components/Summary.tsx
index 7da2f1e..ba91f57 100644
--- a/frontend/src/components/Summary.tsx
+++ b/frontend/src/components/Summary.tsx
@@ -1,193 +1,267 @@
1import React from 'react'; 1import React from "react";
2import ReactMarkdown from 'react-markdown'; 2import ReactMarkdown from "react-markdown";
3 3
4import { MapSummary } from '@customTypes/Map'; 4import { MapSummary } from "@customTypes/Map";
5import "@css/Maps.css"
6 5
7interface SummaryProps { 6interface SummaryProps {
8 selectedRun: number 7 selectedRun: number;
9 setSelectedRun: (x: number) => void; 8 setSelectedRun: (x: number) => void;
10 data: MapSummary; 9 data: MapSummary;
11} 10}
12 11
13const Summary: React.FC<SummaryProps> = ({ selectedRun, setSelectedRun, data }) => { 12const Summary: React.FC<SummaryProps> = ({
14 13 selectedRun,
14 setSelectedRun,
15 data,
16}) => {
15 const [selectedCategory, setSelectedCategory] = React.useState<number>(1); 17 const [selectedCategory, setSelectedCategory] = React.useState<number>(1);
16 const [historySelected, setHistorySelected] = React.useState<boolean>(false); 18 const [historySelected, setHistorySelected] = React.useState<boolean>(false);
17 19
18 function _select_run(idx: number, category_id: number) { 20 const _select_run = React.useCallback(
19 let r = document.querySelectorAll("button.record"); 21 (idx: number, category_id: number) => {
20 r.forEach(e => (e as HTMLElement).style.backgroundColor = "#2b2e46"); 22 let r = document.querySelectorAll("button.record");
21 (r[idx] as HTMLElement).style.backgroundColor = "#161723" 23 r.forEach(e => ((e as HTMLElement).style.backgroundColor = "#2b2e46"));
22 24 (r[idx] as HTMLElement).style.backgroundColor = "#161723";
23 25
24 if (data && data.summary.routes.length !== 0) { 26 if (data && data.summary.routes.length !== 0) {
25 idx += data.summary.routes.filter(e => e.category.id < category_id).length // lethimcook 27 idx += data.summary.routes.filter(
26 setSelectedRun(idx); 28 e => e.category.id < category_id
27 } 29 ).length; // lethimcook
28 }; 30 setSelectedRun(idx);
31 }
32 },
33 [data, setSelectedRun]
34 );
29 35
30 function _get_youtube_id(url: string): string { 36 function _get_youtube_id(url: string): string {
31 const urlArray = url.split(/(vi\/|v=|\/v\/|youtu\.be\/|\/embed\/)/); 37 const urlArray = url.split(/(vi\/|v=|\/v\/|youtu\.be\/|\/embed\/)/);
32 return (urlArray[2] !== undefined) ? urlArray[2].split(/[^0-9a-z_-]/i)[0] : urlArray[0]; 38 return urlArray[2] !== undefined
33 }; 39 ? urlArray[2].split(/[^0-9a-z_-]/i)[0]
40 : urlArray[0];
41 }
34 42
35 function _category_change() { 43 const _category_change = React.useCallback(() => {
36 const btn = document.querySelectorAll("#section3 #category span button"); 44 const btn = document.querySelectorAll("#section3 #category span button");
37 btn.forEach((e) => { (e as HTMLElement).style.backgroundColor = "#2b2e46" }); 45 btn.forEach(e => {
46 (e as HTMLElement).style.backgroundColor = "#2b2e46";
47 });
38 // heavenly father forgive me for i have sinned. TODO: fix this bullshit with dynamic categories 48 // heavenly father forgive me for i have sinned. TODO: fix this bullshit with dynamic categories
39 const idx = selectedCategory === 1 ? 0 : data.map.is_coop ? selectedCategory - 3 : selectedCategory - 1; 49 const idx =
50 selectedCategory === 1
51 ? 0
52 : data.map.is_coop
53 ? selectedCategory - 3
54 : selectedCategory - 1;
40 (btn[idx] as HTMLElement).style.backgroundColor = "#202232"; 55 (btn[idx] as HTMLElement).style.backgroundColor = "#202232";
41 }; 56 }, [selectedCategory, data.map.is_coop]);
42 57
43 function _history_change() { 58 const _history_change = React.useCallback(() => {
44 const btn = document.querySelectorAll("#section3 #history span button"); 59 const btn = document.querySelectorAll("#section3 #history span button");
45 btn.forEach((e) => { (e as HTMLElement).style.backgroundColor = "#2b2e46" }); 60 btn.forEach(e => {
46 (historySelected ? btn[1] as HTMLElement : btn[0] as HTMLElement).style.backgroundColor = "#202232"; 61 (e as HTMLElement).style.backgroundColor = "#2b2e46";
47 }; 62 });
63 (historySelected
64 ? (btn[1] as HTMLElement)
65 : (btn[0] as HTMLElement)
66 ).style.backgroundColor = "#202232";
67 }, [historySelected]);
48 68
49 React.useEffect(() => { 69 React.useEffect(() => {
50 _history_change(); 70 _history_change();
51 }, [historySelected]); 71 }, [historySelected, _history_change]);
52 72
53 React.useEffect(() => { 73 React.useEffect(() => {
54 _category_change(); 74 _category_change();
55 _select_run(0, selectedCategory); 75 _select_run(0, selectedCategory);
56 }, [selectedCategory]); 76 }, [selectedCategory, _category_change, _select_run]);
57 77
58 React.useEffect(() => { 78 React.useEffect(() => {
59 _select_run(0, selectedCategory); 79 _select_run(0, selectedCategory);
60 }, []); 80 }, [_select_run, selectedCategory]);
61 81
62 return ( 82 return (
63 <> 83 <>
64 <section id='section3' className='summary1'> 84 <section id="section3" className="summary1 text-foreground">
65 <div id='category' 85 <div
66 style={data.map.image === "" ? { backgroundColor: "#202232" } : {}}> 86 id="category"
67 <img src={data.map.image} alt="" id='category-image'></img> 87 style={data.map.image === "" ? { backgroundColor: "#202232" } : {}}
68 <p><span className='portal-count'>{data.summary.routes[selectedRun].history.score_count}</span> 88 >
69 {data.summary.routes[selectedRun].history.score_count === 1 ? ` portal` : ` portals`}</p> 89 <img src={data.map.image} alt="" id="category-image"></img>
70 {data.map.is_coop ? // TODO: make this part dynamic 90 <p>
71 ( 91 <span className="portal-count">
72 <span style={{ gridTemplateColumns: "1fr 1fr 1fr" }}> 92 {data.summary.routes[selectedRun].history.score_count}
73 <button onClick={() => setSelectedCategory(1)}>CM</button> 93 </span>
74 <button onClick={() => setSelectedCategory(4)}>Any%</button> 94 {data.summary.routes[selectedRun].history.score_count === 1
75 <button onClick={() => setSelectedCategory(5)}>All Courses</button> 95 ? ` portal`
76 </span> 96 : ` portals`}
77 ) 97 </p>
78 : 98 {data.map.is_coop ? ( // TODO: make this part dynamic
79 ( 99 <span style={{ gridTemplateColumns: "1fr 1fr 1fr" }}>
80 <span style={{ gridTemplateColumns: "1fr 1fr 1fr 1fr" }}> 100 <button onClick={() => setSelectedCategory(1)}>CM</button>
81 101 <button onClick={() => setSelectedCategory(4)}>Any%</button>
82 <button onClick={() => setSelectedCategory(1)}>CM</button> 102 <button onClick={() => setSelectedCategory(5)}>
83 <button onClick={() => setSelectedCategory(2)}>NoSLA</button> 103 All Courses
84 <button onClick={() => setSelectedCategory(3)}>Inbounds SLA</button> 104 </button>
85 <button onClick={() => setSelectedCategory(4)}>Any%</button> 105 </span>
86 </span> 106 ) : (
87 ) 107 <span style={{ gridTemplateColumns: "1fr 1fr 1fr 1fr" }}>
88 } 108 <button onClick={() => setSelectedCategory(1)}>CM</button>
89 109 <button onClick={() => setSelectedCategory(2)}>NoSLA</button>
110 <button onClick={() => setSelectedCategory(3)}>
111 Inbounds SLA
112 </button>
113 <button onClick={() => setSelectedCategory(4)}>Any%</button>
114 </span>
115 )}
90 </div> 116 </div>
91 117
92 <div id='history'> 118 <div id="history">
93
94 <div style={{ display: historySelected ? "none" : "block" }}> 119 <div style={{ display: historySelected ? "none" : "block" }}>
95 {data.summary.routes.filter(e => e.category.id === selectedCategory).length === 0 ? <h5>There are no records for this map.</h5> : 120 {data.summary.routes.filter(e => e.category.id === selectedCategory)
121 .length === 0 ? (
122 <h5>There are no records for this map.</h5>
123 ) : (
96 <> 124 <>
97 <div className='record-top'> 125 <div className="record-top">
98 <span>Date</span> 126 <span>Date</span>
99 <span>Record</span> 127 <span>Record</span>
100 <span>First Completion</span> 128 <span>First Completion</span>
101 </div> 129 </div>
102 <hr /> 130 <hr />
103 <div id='records'> 131 <div id="records">
104
105 {data.summary.routes 132 {data.summary.routes
106 .filter(e => e.category.id === selectedCategory) 133 .filter(e => e.category.id === selectedCategory)
107 .map((r, index) => ( 134 .map((r, index) => (
108 <button className='record' key={index} onClick={() => { 135 <button
109 _select_run(index, r.category.id); 136 className="record"
110 }}> 137 key={index}
111 <span>{new Date(r.history.date).toLocaleDateString( 138 onClick={() => {
112 "en-US", { month: 'long', day: 'numeric', year: 'numeric' } 139 _select_run(index, r.category.id);
113 )}</span> 140 }}
141 >
142 <span>
143 {new Date(r.history.date).toLocaleDateString(
144 "en-US",
145 { month: "long", day: "numeric", year: "numeric" }
146 )}
147 </span>
114 <span>{r.history.score_count}</span> 148 <span>{r.history.score_count}</span>
115 <span>{r.history.runner_name}</span> 149 <span>{r.history.runner_name}</span>
116 </button> 150 </button>
117 ))} 151 ))}
118 </div> 152 </div>
119 </> 153 </>
120 } 154 )}
121 </div> 155 </div>
122 156
123 <div style={{ display: historySelected ? "block" : "none" }}> 157 <div style={{ display: historySelected ? "block" : "none" }}>
124 {data.summary.routes.filter(e => e.category.id === selectedCategory).length === 0 ? <h5>There are no records for this map.</h5> : 158 {data.summary.routes.filter(e => e.category.id === selectedCategory)
125 <div id='graph'> 159 .length === 0 ? (
160 <h5>There are no records for this map.</h5>
161 ) : (
162 <div id="graph">
126 {/* <div>{graph(1)}</div> 163 {/* <div>{graph(1)}</div>
127 <div>{graph(2)}</div> 164 <div>{graph(2)}</div>
128 <div>{graph(3)}</div> */} 165 <div>{graph(3)}</div> */}
129 </div> 166 </div>
130 } 167 )}
131 </div> 168 </div>
132 <span> 169 <span>
133 <button onClick={() => setHistorySelected(false)}>List</button> 170 <button onClick={() => setHistorySelected(false)}>List</button>
134 <button onClick={() => setHistorySelected(true)}>Graph</button> 171 <button onClick={() => setHistorySelected(true)}>Graph</button>
135 </span> 172 </span>
136 </div> 173 </div>
137 174 </section>
138 175 <section id="section4" className="summary1">
139 </section > 176 <div id="difficulty">
140 <section id='section4' className='summary1'> 177 <span className="">Difficulty</span>
141 <div id='difficulty'> 178 {data.map.difficulty <= 2 && (
142 <span>Difficulty</span> 179 <span style={{ color: "lime" }}>Very Easy</span>
143 {data.map.difficulty <= 2 && (<span style={{ color: "lime" }}>Very easy</span>)} 180 )}
144 {data.map.difficulty > 2 && data.map.difficulty <= 4 && (<span style={{ color: "green" }}>Easy</span>)} 181 {data.map.difficulty > 2 && data.map.difficulty <= 4 && (
145 {data.map.difficulty > 4 && data.map.difficulty <= 6 && (<span style={{ color: "yellow" }}>Medium</span>)} 182 <span style={{ color: "green" }}>Easy</span>
146 {data.map.difficulty > 6 && data.map.difficulty <= 8 && (<span style={{ color: "orange" }}>Hard</span>)} 183 )}
147 {data.map.difficulty > 8 && data.map.difficulty <= 10 && (<span style={{ color: "red" }}>Very hard</span>)} 184 {data.map.difficulty > 4 && data.map.difficulty <= 6 && (
185 <span style={{ color: "yellow" }}>Medium</span>
186 )}
187 {data.map.difficulty > 6 && data.map.difficulty <= 8 && (
188 <span style={{ color: "orange" }}>Hard</span>
189 )}
190 {data.map.difficulty > 8 && data.map.difficulty <= 10 && (
191 <span style={{ color: "red" }}>Very Hard</span>
192 )}
148 <div> 193 <div>
149 {data.map.difficulty <= 2 ? (<div className='difficulty-rating' style={{ backgroundColor: "lime" }}></div>) : (<div className='difficulty-rating'></div>)} 194 {data.map.difficulty <= 2 && ? (
150 {data.map.difficulty > 2 && data.map.difficulty <= 4 ? (<div className='difficulty-rating' style={{ backgroundColor: "green" }}></div>) : (<div className='difficulty-rating'></div>)} 195 <div
151 {data.map.difficulty > 4 && data.map.difficulty <= 6 ? (<div className='difficulty-rating' style={{ backgroundColor: "yellow" }}></div>) : (<div className='difficulty-rating'></div>)} 196 className="difficulty-rating"
152 {data.map.difficulty > 6 && data.map.difficulty <= 8 ? (<div className='difficulty-rating' style={{ backgroundColor: "orange" }}></div>) : (<div className='difficulty-rating'></div>)} 197 style={{ backgroundColor: "lime" }}
153 {data.map.difficulty > 8 && data.map.difficulty <= 10 ? (<div className='difficulty-rating' style={{ backgroundColor: "red" }}></div>) : (<div className='difficulty-rating'></div>)} 198 ></div>
199 ) : (
200 <div className="difficulty-rating"></div>
201 )}
202 {data.map.difficulty > 2 && data.map.difficulty <= 4 && ? (
203 <div
204 className="difficulty-rating"
205 style={{ backgroundColor: "green" }}
206 ></div>
207 ) : (
208 <div className="difficulty-rating"></div>
209 )}
210 {data.map.difficulty > 4 && data.map.difficulty <= 6 && ? (
211 <div
212 className="difficulty-rating"
213 style={{ backgroundColor: "yellow" }}
214 ></div>
215 ) : (
216 <div className="difficulty-rating"></div>
217 )}
218 {data.map.difficulty > 6 && data.map.difficulty <= 8 && ? (
219 <div
220 className="difficulty-rating"
221 style={{ backgroundColor: "orange" }}
222 ></div>
223 ) : (
224 <div className="difficulty-rating"></div>
225 )}
226 {data.map.difficulty > 8 && data.map.difficulty <= 10 && ? (
227 <div
228 className="difficulty-rating"
229 style={{ backgroundColor: "red" }}
230 ></div>
231 ) : (
232 <div className="difficulty-rating"></div>
233 )}
154 </div> 234 </div>
155 </div> 235 </div>
156 {/* <div id='difficulty'> 236 <div id="count">
157 <span>Difficulty</span>
158 {data.summary.routes[selectedRun].rating <= 2 && (<span style={{ color: "lime" }}>Very easy</span>)}
159 {data.summary.routes[selectedRun].rating > 2 && data.summary.routes[selectedRun].rating <= 4 && (<span style={{ color: "green" }}>Easy</span>)}
160 {data.summary.routes[selectedRun].rating > 4 && data.summary.routes[selectedRun].rating <= 6 && (<span style={{ color: "yellow" }}>Medium</span>)}
161 {data.summary.routes[selectedRun].rating > 6 && data.summary.routes[selectedRun].rating <= 8 && (<span style={{ color: "orange" }}>Hard</span>)}
162 {data.summary.routes[selectedRun].rating > 8 && data.summary.routes[selectedRun].rating <= 10 && (<span style={{ color: "red" }}>Very hard</span>)}
163 <div>
164 {data.summary.routes[selectedRun].rating <= 2 ? (<div className='difficulty-rating' style={{ backgroundColor: "lime" }}></div>) : (<div className='difficulty-rating'></div>)}
165 {data.summary.routes[selectedRun].rating > 2 && data.summary.routes[selectedRun].rating <= 4 ? (<div className='difficulty-rating' style={{ backgroundColor: "green" }}></div>) : (<div className='difficulty-rating'></div>)}
166 {data.summary.routes[selectedRun].rating > 4 && data.summary.routes[selectedRun].rating <= 6 ? (<div className='difficulty-rating' style={{ backgroundColor: "yellow" }}></div>) : (<div className='difficulty-rating'></div>)}
167 {data.summary.routes[selectedRun].rating > 6 && data.summary.routes[selectedRun].rating <= 8 ? (<div className='difficulty-rating' style={{ backgroundColor: "orange" }}></div>) : (<div className='difficulty-rating'></div>)}
168 {data.summary.routes[selectedRun].rating > 8 && data.summary.routes[selectedRun].rating <= 10 ? (<div className='difficulty-rating' style={{ backgroundColor: "red" }}></div>) : (<div className='difficulty-rating'></div>)}
169 </div>
170 </div> */}
171 <div id='count'>
172 <span>Completion Count</span> 237 <span>Completion Count</span>
173 <div>{data.summary.routes[selectedRun].completion_count}</div> 238 <div>{data.summary.routes[selectedRun].completion_count}</div>
174 </div> 239 </div>
175 </section> 240 </section>
176 241
177 <section id='section5' className='summary1'> 242 <section id="section5" className="summary1">
178 <div id='description'> 243 <div id="description">
179 {data.summary.routes[selectedRun].showcase !== "" ? 244 {data.summary.routes[selectedRun].showcase !== "" ? (
180 <iframe title='Showcase video' src={"https://www.youtube.com/embed/" + _get_youtube_id(data.summary.routes[selectedRun].showcase)}> </iframe> 245 <iframe
181 : ""} 246 title="Showcase video"
182 <h3>Route Description</h3> 247 src={
183 <span id='description-text'> 248 "https://www.youtube.com/embed/" +
184 <ReactMarkdown> 249 _get_youtube_id(data.summary.routes[selectedRun].showcase)
250 }
251 >
252 {" "}
253 </iframe>
254 ) : (
255 ""
256 )}
257 <h3 className="font-semibold">Route Description</h3>
258 <span id="description-text">
259 <ReactMarkdown className="text-foreground">
185 {data.summary.routes[selectedRun].description} 260 {data.summary.routes[selectedRun].description}
186 </ReactMarkdown> 261 </ReactMarkdown>
187 </span> 262 </span>
188 </div> 263 </div>
189 </section> 264 </section>
190
191 </> 265 </>
192 ); 266 );
193}; 267};
diff --git a/frontend/src/components/UploadRunDialog.tsx b/frontend/src/components/UploadRunDialog.tsx
index c02fdb8..0034019 100644
--- a/frontend/src/components/UploadRunDialog.tsx
+++ b/frontend/src/components/UploadRunDialog.tsx
@@ -1,15 +1,14 @@
1import React from 'react'; 1import React from "react";
2import { UploadRunContent } from '@customTypes/Content'; 2import { UploadRunContent } from "@customTypes/Content";
3import { ScoreboardTempUpdate, SourceDemoParser, NetMessages } from '@nekz/sdp'; 3import { ScoreboardTempUpdate, SourceDemoParser, NetMessages } from "@nekz/sdp";
4 4
5import '@css/UploadRunDialog.css'; 5import { Game } from "@customTypes/Game";
6import { Game } from '@customTypes/Game'; 6import { API } from "@api/Api";
7import { API } from '@api/Api'; 7import { useNavigate } from "react-router-dom";
8import { useNavigate } from 'react-router-dom'; 8import useMessage from "@hooks/UseMessage";
9import useMessage from '@hooks/UseMessage'; 9import useConfirm from "@hooks/UseConfirm";
10import useConfirm from '@hooks/UseConfirm';
11import useMessageLoad from "@hooks/UseMessageLoad"; 10import useMessageLoad from "@hooks/UseMessageLoad";
12import { MapNames } from '@customTypes/MapNames'; 11import { MapNames } from "@customTypes/MapNames";
13 12
14interface UploadRunDialogProps { 13interface UploadRunDialogProps {
15 token?: string; 14 token?: string;
@@ -18,18 +17,24 @@ interface UploadRunDialogProps {
18 games: Game[]; 17 games: Game[];
19} 18}
20 19
21const UploadRunDialog: React.FC<UploadRunDialogProps> = ({ token, open, onClose, games }) => { 20const UploadRunDialog: React.FC<UploadRunDialogProps> = ({
22 21 token,
22 open,
23 onClose,
24 games,
25}) => {
23 const { message, MessageDialogComponent } = useMessage(); 26 const { message, MessageDialogComponent } = useMessage();
24 const { confirm, ConfirmDialogComponent } = useConfirm(); 27 const { confirm, ConfirmDialogComponent } = useConfirm();
25 const { messageLoad, messageLoadClose, MessageDialogLoadComponent } = useMessageLoad(); 28 const { messageLoad, messageLoadClose, MessageDialogLoadComponent } =
29 useMessageLoad();
26 30
27 const navigate = useNavigate(); 31 const navigate = useNavigate();
28 32
29 const [uploadRunContent, setUploadRunContent] = React.useState<UploadRunContent>({ 33 const [uploadRunContent, setUploadRunContent] =
30 host_demo: null, 34 React.useState<UploadRunContent>({
31 partner_demo: null, 35 host_demo: null,
32 }); 36 partner_demo: null,
37 });
33 38
34 const [selectedGameID, setSelectedGameID] = React.useState<number>(0); 39 const [selectedGameID, setSelectedGameID] = React.useState<number>(0);
35 const [selectedGameName, setSelectedGameName] = React.useState<string>(""); 40 const [selectedGameName, setSelectedGameName] = React.useState<string>("");
@@ -41,7 +46,8 @@ const UploadRunDialog: React.FC<UploadRunDialogProps> = ({ token, open, onClose,
41 const [loading, setLoading] = React.useState<boolean>(false); 46 const [loading, setLoading] = React.useState<boolean>(false);
42 47
43 const [dragHightlight, setDragHighlight] = React.useState<boolean>(false); 48 const [dragHightlight, setDragHighlight] = React.useState<boolean>(false);
44 const [dragHightlightPartner, setDragHighlightPartner] = React.useState<boolean>(false); 49 const [dragHightlightPartner, setDragHighlightPartner] =
50 React.useState<boolean>(false);
45 51
46 const fileInputRef = React.useRef<HTMLInputElement>(null); 52 const fileInputRef = React.useRef<HTMLInputElement>(null);
47 const fileInputRefPartner = React.useRef<HTMLInputElement>(null); 53 const fileInputRefPartner = React.useRef<HTMLInputElement>(null);
@@ -52,9 +58,12 @@ const UploadRunDialog: React.FC<UploadRunDialogProps> = ({ token, open, onClose,
52 } else { 58 } else {
53 fileInputRefPartner.current?.click(); 59 fileInputRefPartner.current?.click();
54 } 60 }
55 } 61 };
56 62
57 const _handle_drag_over = (e: React.DragEvent<HTMLDivElement>, host: boolean) => { 63 const _handle_drag_over = (
64 e: React.DragEvent<HTMLDivElement>,
65 host: boolean
66 ) => {
58 e.preventDefault(); 67 e.preventDefault();
59 e.stopPropagation(); 68 e.stopPropagation();
60 if (host) { 69 if (host) {
@@ -62,9 +71,12 @@ const UploadRunDialog: React.FC<UploadRunDialogProps> = ({ token, open, onClose,
62 } else { 71 } else {
63 setDragHighlightPartner(true); 72 setDragHighlightPartner(true);
64 } 73 }
65 } 74 };
66 75
67 const _handle_drag_leave = (e: React.DragEvent<HTMLDivElement>, host: boolean) => { 76 const _handle_drag_leave = (
77 e: React.DragEvent<HTMLDivElement>,
78 host: boolean
79 ) => {
68 e.preventDefault(); 80 e.preventDefault();
69 e.stopPropagation(); 81 e.stopPropagation();
70 if (host) { 82 if (host) {
@@ -72,7 +84,7 @@ const UploadRunDialog: React.FC<UploadRunDialogProps> = ({ token, open, onClose,
72 } else { 84 } else {
73 setDragHighlightPartner(false); 85 setDragHighlightPartner(false);
74 } 86 }
75 } 87 };
76 88
77 const _handle_drop = (e: React.DragEvent<HTMLDivElement>, host: boolean) => { 89 const _handle_drop = (e: React.DragEvent<HTMLDivElement>, host: boolean) => {
78 e.preventDefault(); 90 e.preventDefault();
@@ -80,18 +92,18 @@ const UploadRunDialog: React.FC<UploadRunDialogProps> = ({ token, open, onClose,
80 setDragHighlight(true); 92 setDragHighlight(true);
81 93
82 _handle_file_change(e.dataTransfer.files, host); 94 _handle_file_change(e.dataTransfer.files, host);
83 } 95 };
84 96
85 const _handle_dropdowns = (dropdown: number) => { 97 const _handle_dropdowns = (dropdown: number) => {
86 setDropdown1Vis(false); 98 setDropdown1Vis(false);
87 setDropdown2Vis(false); 99 setDropdown2Vis(false);
88 if (dropdown == 1) { 100 if (dropdown === 1) {
89 setDropdown1Vis(!dropdown1Vis); 101 setDropdown1Vis(!dropdown1Vis);
90 } else if (dropdown == 2) { 102 } else if (dropdown === 2) {
91 setDropdown2Vis(!dropdown2Vis); 103 setDropdown2Vis(!dropdown2Vis);
92 document.querySelector("#dropdown2")?.scrollTo(0, 0); 104 document.querySelector("#dropdown2")?.scrollTo(0, 0);
93 } 105 }
94 } 106 };
95 107
96 const _handle_game_select = async (game_id: string, game_name: string) => { 108 const _handle_game_select = async (game_id: string, game_name: string) => {
97 setLoading(true); 109 setLoading(true);
@@ -120,53 +132,76 @@ const UploadRunDialog: React.FC<UploadRunDialogProps> = ({ token, open, onClose,
120 if (token) { 132 if (token) {
121 if (games[selectedGameID].is_coop) { 133 if (games[selectedGameID].is_coop) {
122 if (uploadRunContent.host_demo === null) { 134 if (uploadRunContent.host_demo === null) {
123 await message("Error", "You must select a host demo to upload.") 135 await message("Error", "You must select a host demo to upload.");
124 return 136 return;
125 } else if (uploadRunContent.partner_demo === null) { 137 } else if (uploadRunContent.partner_demo === null) {
126 await message("Error", "You must select a partner demo to upload.") 138 await message("Error", "You must select a partner demo to upload.");
127 return 139 return;
128 } 140 }
129 } else { 141 } else {
130 if (uploadRunContent.host_demo === null) { 142 if (uploadRunContent.host_demo === null) {
131 await message("Error", "You must select a demo to upload.") 143 await message("Error", "You must select a demo to upload.");
132 return 144 return;
133 } 145 }
134 } 146 }
135 const demo = SourceDemoParser.default() 147 const demo = SourceDemoParser.default()
136 .setOptions({ packets: true, header: true }) 148 .setOptions({ packets: true, header: true })
137 .parse(await uploadRunContent.host_demo.arrayBuffer()); 149 .parse(await uploadRunContent.host_demo.arrayBuffer());
138 const scoreboard = demo.findPacket<NetMessages.SvcUserMessage>((msg) => { 150 const scoreboard = demo.findPacket<NetMessages.SvcUserMessage>(msg => {
139 return msg instanceof NetMessages.SvcUserMessage && msg.userMessage instanceof ScoreboardTempUpdate; 151 return (
140 }) 152 msg instanceof NetMessages.SvcUserMessage &&
153 msg.userMessage instanceof ScoreboardTempUpdate
154 );
155 });
141 156
142 if (!scoreboard) { 157 if (!scoreboard) {
143 await message("Error", "Error while processing demo: Unable to get scoreboard result. Either there is a demo that is corrupt or haven't been recorded in challenge mode.") 158 await message(
144 return 159 "Error",
160 "Error while processing demo: Unable to get scoreboard result. Either there is a demo that is corrupt or haven't been recorded in challenge mode."
161 );
162 return;
145 } 163 }
146 164
147 if (!demo.mapName || !MapNames[demo.mapName]) { 165 if (!demo.mapName || !MapNames[demo.mapName]) {
148 await message("Error", "Error while processing demo: Invalid map name.") 166 await message(
149 return 167 "Error",
168 "Error while processing demo: Invalid map name."
169 );
170 return;
150 } 171 }
151 172
152 if (selectedGameID === 0 && MapNames[demo.mapName] > 60) { 173 if (selectedGameID === 0 && MapNames[demo.mapName] > 60) {
153 await message("Error", "Error while processing demo: Invalid cooperative demo in singleplayer submission.") 174 await message(
154 return 175 "Error",
176 "Error while processing demo: Invalid cooperative demo in singleplayer submission."
177 );
178 return;
155 } else if (selectedGameID === 1 && MapNames[demo.mapName] <= 60) { 179 } else if (selectedGameID === 1 && MapNames[demo.mapName] <= 60) {
156 await message("Error", "Error while processing demo: Invalid singleplayer demo in cooperative submission.") 180 await message(
157 return 181 "Error",
182 "Error while processing demo: Invalid singleplayer demo in cooperative submission."
183 );
184 return;
158 } 185 }
159 186
160 const { portalScore, timeScore } = scoreboard.userMessage?.as<ScoreboardTempUpdate>() ?? {}; 187 const { portalScore, timeScore } =
188 scoreboard.userMessage?.as<ScoreboardTempUpdate>() ?? {};
161 189
162 const userConfirmed = await confirm("Upload Record", `Map Name: ${demo.mapName}\nPortal Count: ${portalScore}\nTicks: ${timeScore}\n\nAre you sure you want to upload this demo?`); 190 const userConfirmed = await confirm(
191 "Upload Record",
192 `Map Name: ${demo.mapName}\nPortal Count: ${portalScore}\nTicks: ${timeScore}\n\nAre you sure you want to upload this demo?`
193 );
163 194
164 if (!userConfirmed) { 195 if (!userConfirmed) {
165 return; 196 return;
166 } 197 }
167 198
168 messageLoad("Uploading..."); 199 messageLoad("Uploading...");
169 const [success, response] = await API.post_record(token, uploadRunContent, MapNames[demo.mapName]); 200 const [success, response] = await API.post_record(
201 token,
202 uploadRunContent,
203 MapNames[demo.mapName]
204 );
170 messageLoadClose(); 205 messageLoadClose();
171 await message("Upload Record", response); 206 await message("Upload Record", response);
172 if (success) { 207 if (success) {
@@ -196,84 +231,191 @@ const UploadRunDialog: React.FC<UploadRunDialogProps> = ({ token, open, onClose,
196 {MessageDialogLoadComponent} 231 {MessageDialogLoadComponent}
197 {ConfirmDialogComponent} 232 {ConfirmDialogComponent}
198 233
199 <div id='upload-run-menu'> 234 <div id="upload-run-menu">
200 <div id='upload-run-menu-add'> 235 <div id="upload-run-menu-add">
201 <div id='upload-run-route-category'> 236 <div id="upload-run-route-category">
202 <div style={{ padding: "15px 0px" }} className='upload-run-dropdown-container upload-run-item'> 237 <div
238 style={{ padding: "15px 0px" }}
239 className="upload-run-dropdown-container upload-run-item"
240 >
203 <h3 style={{ margin: "0px 0px" }}>Select Game</h3> 241 <h3 style={{ margin: "0px 0px" }}>Select Game</h3>
204 <div onClick={() => _handle_dropdowns(1)} style={{ display: "flex", alignItems: "center", cursor: "pointer", justifyContent: "space-between", margin: "10px 0px" }}> 242 <div
205 <div className='dropdown-cur'>{selectedGameName}</div> 243 onClick={() => _handle_dropdowns(1)}
206 <i style={{ rotate: "-90deg", transform: "translate(-5px, 10px)" }} className="triangle"></i> 244 style={{
245 display: "flex",
246 alignItems: "center",
247 cursor: "pointer",
248 justifyContent: "space-between",
249 margin: "10px 0px",
250 }}
251 >
252 <div className="dropdown-cur">{selectedGameName}</div>
253 <i
254 style={{
255 rotate: "-90deg",
256 transform: "translate(-5px, 10px)",
257 }}
258 className="triangle"
259 ></i>
207 </div> 260 </div>
208 <div style={{ top: "110px" }} className={dropdown1Vis ? "upload-run-dropdown" : "upload-run-dropdown hidden"}> 261 <div
209 {games.map((game) => ( 262 style={{ top: "110px" }}
210 <div onClick={() => { _handle_game_select(game.id.toString(), game.name); _handle_dropdowns(1) }} key={game.id}>{game.name}</div> 263 className={
264 dropdown1Vis
265 ? "upload-run-dropdown"
266 : "upload-run-dropdown hidden"
267 }
268 >
269 {games.map(game => (
270 <div
271 onClick={() => {
272 _handle_game_select(game.id.toString(), game.name);
273 _handle_dropdowns(1);
274 }}
275 key={game.id}
276 >
277 {game.name}
278 </div>
211 ))} 279 ))}
212 </div> 280 </div>
213 </div> 281 </div>
214 282
215 { 283 {!loading && (
216 !loading && 284 <>
217 ( 285 <div>
218 <> 286 <h3 style={{ margin: "10px 0px" }}>Host Demo</h3>
219 287 <div
220 <div> 288 onClick={() => {
221 <h3 style={{ margin: "10px 0px" }}>Host Demo</h3> 289 _handle_file_click(true);
222 <div onClick={() => { _handle_file_click(true) }} onDragOver={(e) => { _handle_drag_over(e, true) }} onDrop={(e) => { _handle_drop(e, true) }} onDragLeave={(e) => { _handle_drag_leave(e, true) }} className={`upload-run-drag-area ${dragHightlight ? "upload-run-drag-area-highlight" : ""} ${uploadRunContent.host_demo ? "upload-run-drag-area-hidden" : ""}`}> 290 }}
223 <input ref={fileInputRef} type="file" name="host_demo" id="host_demo" accept=".dem" onChange={(e) => _handle_file_change(e.target.files, true)} /> 291 onDragOver={e => {
224 {!uploadRunContent.host_demo ? 292 _handle_drag_over(e, true);
293 }}
294 onDrop={e => {
295 _handle_drop(e, true);
296 }}
297 onDragLeave={e => {
298 _handle_drag_leave(e, true);
299 }}
300 className={`upload-run-drag-area ${dragHightlight ? "upload-run-drag-area-highlight" : ""} ${uploadRunContent.host_demo ? "upload-run-drag-area-hidden" : ""}`}
301 >
302 <input
303 ref={fileInputRef}
304 type="file"
305 name="host_demo"
306 id="host_demo"
307 accept=".dem"
308 onChange={e =>
309 _handle_file_change(e.target.files, true)
310 }
311 />
312 {!uploadRunContent.host_demo ? (
313 <div>
314 <span>Drag and drop</span>
225 <div> 315 <div>
226 <span>Drag and drop</span> 316 <span
227 <div> 317 style={{
228 <span style={{ fontFamily: "BarlowSemiCondensed-Regular" }}>Or click here</span><br /> 318 fontFamily: "BarlowSemiCondensed-Regular",
229 <button style={{ borderRadius: "24px", padding: "5px 8px", margin: "5px 0px" }}>Upload</button> 319 }}
230 </div> 320 >
321 Or click here
322 </span>
323 <br />
324 <button
325 style={{
326 borderRadius: "24px",
327 padding: "5px 8px",
328 margin: "5px 0px",
329 }}
330 >
331 Upload
332 </button>
231 </div> 333 </div>
232 : null} 334 </div>
233 335 ) : null}
234 <span className="upload-run-demo-name">{uploadRunContent.host_demo?.name}</span>
235 </div>
236 {
237 games[selectedGameID].is_coop &&
238 (
239 <>
240 <div>
241 <h3 style={{ margin: "10px 0px" }}>Partner Demo</h3>
242 <div onClick={() => { _handle_file_click(false) }} onDragOver={(e) => { _handle_drag_over(e, false) }} onDrop={(e) => { _handle_drop(e, false) }} onDragLeave={(e) => { _handle_drag_leave(e, false) }} className={`upload-run-drag-area ${dragHightlightPartner ? "upload-run-drag-area-highlight-partner" : ""} ${uploadRunContent.partner_demo ? "upload-run-drag-area-hidden" : ""}`}>
243 <input ref={fileInputRefPartner} type="file" name="partner_demo" id="partner_demo" accept=".dem" onChange={(e) => _handle_file_change(e.target.files, false)} /> {!uploadRunContent.partner_demo ?
244 <div>
245 <span>Drag and drop</span>
246 <div>
247 <span style={{ fontFamily: "BarlowSemiCondensed-Regular" }}>Or click here</span><br />
248 <button style={{ borderRadius: "24px", padding: "5px 8px", margin: "5px 0px" }}>Upload</button>
249 </div>
250 </div>
251 : null}
252
253 <span className="upload-run-demo-name">{uploadRunContent.partner_demo?.name}</span>
254 </div>
255 </div>
256 </>
257 )
258 }
259 </div>
260 <div className='search-container'>
261 336
337 <span className="upload-run-demo-name">
338 {uploadRunContent.host_demo?.name}
339 </span>
262 </div> 340 </div>
263 341 {games[selectedGameID].is_coop && (
264 </> 342 <>
265 ) 343 <div>
266 } 344 <h3 style={{ margin: "10px 0px" }}>Partner Demo</h3>
345 <div
346 onClick={() => {
347 _handle_file_click(false);
348 }}
349 onDragOver={e => {
350 _handle_drag_over(e, false);
351 }}
352 onDrop={e => {
353 _handle_drop(e, false);
354 }}
355 onDragLeave={e => {
356 _handle_drag_leave(e, false);
357 }}
358 className={`upload-run-drag-area ${dragHightlightPartner ? "upload-run-drag-area-highlight-partner" : ""} ${uploadRunContent.partner_demo ? "upload-run-drag-area-hidden" : ""}`}
359 >
360 <input
361 ref={fileInputRefPartner}
362 type="file"
363 name="partner_demo"
364 id="partner_demo"
365 accept=".dem"
366 onChange={e =>
367 _handle_file_change(e.target.files, false)
368 }
369 />{" "}
370 {!uploadRunContent.partner_demo ? (
371 <div>
372 <span>Drag and drop</span>
373 <div>
374 <span
375 style={{
376 fontFamily: "BarlowSemiCondensed-Regular",
377 }}
378 >
379 Or click here
380 </span>
381 <br />
382 <button
383 style={{
384 borderRadius: "24px",
385 padding: "5px 8px",
386 margin: "5px 0px",
387 }}
388 >
389 Upload
390 </button>
391 </div>
392 </div>
393 ) : null}
394 <span className="upload-run-demo-name">
395 {uploadRunContent.partner_demo?.name}
396 </span>
397 </div>
398 </div>
399 </>
400 )}
401 </div>
402 <div className="search-container"></div>
403 </>
404 )}
267 </div> 405 </div>
268 <div className='upload-run-buttons-container'> 406 <div className="upload-run-buttons-container">
269 <button onClick={_upload_run}>Submit</button> 407 <button onClick={_upload_run}>Submit</button>
270 <button onClick={() => { 408 <button
271 onClose(false); 409 onClick={() => {
272 setUploadRunContent({ 410 onClose(false);
273 host_demo: null, 411 setUploadRunContent({
274 partner_demo: null, 412 host_demo: null,
275 }); 413 partner_demo: null,
276 }}>Cancel</button> 414 });
415 }}
416 >
417 Cancel
418 </button>
277 </div> 419 </div>
278 </div> 420 </div>
279 </div> 421 </div>
@@ -281,10 +423,7 @@ const UploadRunDialog: React.FC<UploadRunDialogProps> = ({ token, open, onClose,
281 ); 423 );
282 } 424 }
283 425
284 return ( 426 return <></>;
285 <></>
286 );
287
288}; 427};
289 428
290export default UploadRunDialog; 429export default UploadRunDialog;
diff --git a/frontend/src/hooks/UseConfirm.tsx b/frontend/src/hooks/UseConfirm.tsx
index e86d70d..4692d53 100644
--- a/frontend/src/hooks/UseConfirm.tsx
+++ b/frontend/src/hooks/UseConfirm.tsx
@@ -1,40 +1,47 @@
1import React, { useState } from 'react'; 1import React, { useState } from "react";
2import ConfirmDialog from '@components/ConfirmDialog'; 2import ConfirmDialog from "@components/ConfirmDialog";
3 3
4const useConfirm = () => { 4const useConfirm = () => {
5 const [isOpen, setIsOpen] = useState(false); 5 const [isOpen, setIsOpen] = useState(false);
6 const [title, setTitle] = useState<string>(""); 6 const [title, setTitle] = useState<string>("");
7 const [subtitle, setSubtitle] = useState<string>(""); 7 const [subtitle, setSubtitle] = useState<string>("");
8 const [resolvePromise, setResolvePromise] = useState<((value: boolean) => void) | null>(null); 8 const [resolvePromise, setResolvePromise] = useState<
9 ((value: boolean) => void) | null
10 >(null);
9 11
10 const confirm = ( titleN: string, subtitleN: string ) => { 12 const confirm = (titleN: string, subtitleN: string) => {
11 setIsOpen(true); 13 setIsOpen(true);
12 setTitle(titleN); 14 setTitle(titleN);
13 setSubtitle(subtitleN); 15 setSubtitle(subtitleN);
14 return new Promise<boolean>((resolve) => { 16 return new Promise<boolean>(resolve => {
15 setResolvePromise(() => resolve); 17 setResolvePromise(() => resolve);
16 }); 18 });
17 }; 19 };
18 20
19 const handleConfirm = () => { 21 const handleConfirm = () => {
20 setIsOpen(false); 22 setIsOpen(false);
21 if (resolvePromise) { 23 if (resolvePromise) {
22 resolvePromise(true); 24 resolvePromise(true);
23 }
24 } 25 }
26 };
25 27
26 const handleCancel = () => { 28 const handleCancel = () => {
27 setIsOpen(false); 29 setIsOpen(false);
28 if (resolvePromise) { 30 if (resolvePromise) {
29 resolvePromise(false); 31 resolvePromise(false);
30 }
31 } 32 }
33 };
32 34
33 const ConfirmDialogComponent = isOpen && ( 35 const ConfirmDialogComponent = isOpen && (
34 <ConfirmDialog title={title} subtitle={subtitle} onConfirm={handleConfirm} onCancel={handleCancel}></ConfirmDialog> 36 <ConfirmDialog
35 ); 37 title={title}
38 subtitle={subtitle}
39 onConfirm={handleConfirm}
40 onCancel={handleCancel}
41 ></ConfirmDialog>
42 );
36 43
37 return { confirm, ConfirmDialogComponent }; 44 return { confirm, ConfirmDialogComponent };
38} 45};
39 46
40export default useConfirm; 47export default useConfirm;
diff --git a/frontend/src/hooks/UseMessage.tsx b/frontend/src/hooks/UseMessage.tsx
index 97ec746..b639fac 100644
--- a/frontend/src/hooks/UseMessage.tsx
+++ b/frontend/src/hooks/UseMessage.tsx
@@ -1,37 +1,43 @@
1import React, { useState } from 'react'; 1import React, { useState } from "react";
2import MessageDialog from "@components/MessageDialog"; 2import MessageDialog from "@components/MessageDialog";
3 3
4const useMessage = () => { 4const useMessage = () => {
5 const [isOpen, setIsOpen] = useState(false); 5 const [isOpen, setIsOpen] = useState(false);
6 6
7 const [title, setTitle] = useState<string>(""); 7 const [title, setTitle] = useState<string>("");
8 const [subtitle, setSubtitle] = useState<string>(""); 8 const [subtitle, setSubtitle] = useState<string>("");
9 const [resolvePromise, setResolvePromise] = useState<(() => void) | null>(null); 9 const [resolvePromise, setResolvePromise] = useState<(() => void) | null>(
10 null
11 );
10 12
11 const message = (title: string, subtitle: string) => { 13 const message = (title: string, subtitle: string) => {
12 setIsOpen(true); 14 setIsOpen(true);
13 setTitle(title); 15 setTitle(title);
14 setSubtitle(subtitle); 16 setSubtitle(subtitle);
15 return new Promise((resolve) => { 17 return new Promise(resolve => {
16 setResolvePromise(() => resolve); 18 setResolvePromise(() => resolve);
17 }); 19 });
18 }; 20 };
19 21
20 const handleClose = () => { 22 const handleClose = () => {
21 setIsOpen(false); 23 setIsOpen(false);
22 if (resolvePromise) { 24 if (resolvePromise) {
23 resolvePromise(); 25 resolvePromise();
24 setResolvePromise(null); 26 setResolvePromise(null);
25 } 27 }
26 }; 28 };
27 29
28 const MessageDialogComponent = isOpen && ( 30 const MessageDialogComponent = isOpen && (
29 <div className="dialog-container"> 31 <div className="dialog-container">
30 <MessageDialog title={title} subtitle={subtitle} onClose={handleClose}></MessageDialog> 32 <MessageDialog
31 </div> 33 title={title}
32 ); 34 subtitle={subtitle}
35 onClose={handleClose}
36 ></MessageDialog>
37 </div>
38 );
33 39
34 return { message, MessageDialogComponent }; 40 return { message, MessageDialogComponent };
35} 41};
36 42
37export default useMessage; 43export default useMessage;
diff --git a/frontend/src/hooks/UseMessageLoad.tsx b/frontend/src/hooks/UseMessageLoad.tsx
index 228c2b4..4cbd0f7 100644
--- a/frontend/src/hooks/UseMessageLoad.tsx
+++ b/frontend/src/hooks/UseMessageLoad.tsx
@@ -1,35 +1,40 @@
1import React, { useState } from 'react'; 1import React, { useState } from "react";
2import MessageDialogLoad from "@components/MessageDialogLoad"; 2import MessageDialogLoad from "@components/MessageDialogLoad";
3 3
4const useMessageLoad = () => { 4const useMessageLoad = () => {
5 const [isOpen, setIsOpen] = useState(false); 5 const [isOpen, setIsOpen] = useState(false);
6 6
7 const [title, setTitle] = useState<string>(""); 7 const [title, setTitle] = useState<string>("");
8 const [resolvePromise, setResolvePromise] = useState<(() => void) | null>(null); 8 const [resolvePromise, setResolvePromise] = useState<(() => void) | null>(
9 null
10 );
9 11
10 const messageLoad = (title: string) => { 12 const messageLoad = (title: string) => {
11 setIsOpen(true); 13 setIsOpen(true);
12 setTitle(title); 14 setTitle(title);
13 return new Promise((resolve) => { 15 return new Promise(resolve => {
14 setResolvePromise(() => resolve); 16 setResolvePromise(() => resolve);
15 }); 17 });
16 }; 18 };
17 19
18 const messageLoadClose = () => { 20 const messageLoadClose = () => {
19 setIsOpen(false); 21 setIsOpen(false);
20 if (resolvePromise) { 22 if (resolvePromise) {
21 resolvePromise(); 23 resolvePromise();
22 setResolvePromise(null); 24 setResolvePromise(null);
23 } 25 }
24 }; 26 };
25 27
26 const MessageDialogLoadComponent = isOpen && ( 28 const MessageDialogLoadComponent = isOpen && (
27 <div className="dialog-container"> 29 <div className="dialog-container">
28 <MessageDialogLoad title={title} onClose={messageLoadClose}></MessageDialogLoad> 30 <MessageDialogLoad
29 </div> 31 title={title}
30 ); 32 onClose={messageLoadClose}
33 ></MessageDialogLoad>
34 </div>
35 );
31 36
32 return { messageLoad, messageLoadClose, MessageDialogLoadComponent }; 37 return { messageLoad, messageLoadClose, MessageDialogLoadComponent };
33} 38};
34 39
35export default useMessageLoad; 40export default useMessageLoad;
diff --git a/frontend/src/images/Images.tsx b/frontend/src/images/Images.tsx
index 198431b..6b46893 100644
--- a/frontend/src/images/Images.tsx
+++ b/frontend/src/images/Images.tsx
@@ -1,29 +1,29 @@
1import logo from "./png/logo.png" 1import logo from "./png/logo.png";
2import login from "./png/login.png" 2import { LoginIcon as Login } from "./svgs/steam.tsx";
3import img1 from './png/1.png'; 3import img1 from "./png/1.png";
4import img2 from './png/2.png'; 4import img2 from "./png/2.png";
5import img3 from './png/3.png'; 5import img3 from "./png/3.png";
6import img4 from './png/4.png'; 6import img4 from "./png/4.png";
7import img5 from './png/5.png'; 7import img5 from "./png/5.png";
8import img6 from './png/6.png'; 8import img6 from "./png/6.png";
9import img7 from './png/7.png'; 9import img7 from "./png/7.png";
10import img8 from './png/8.png'; 10import img8 from "./png/8.png";
11import img9 from './png/9.png'; 11import img9 from "./png/9.png";
12import img10 from './png/10.png'; 12import img10 from "./png/10.png";
13import img11 from './png/11.png'; 13import img11 from "./png/11.png";
14import img12 from './png/12.png'; 14import img12 from "./png/12.png";
15import img13 from './png/13.png'; 15import img13 from "./png/13.png";
16import img14 from './png/14.png'; 16import img14 from "./png/14.png";
17import img15 from './png/15.png'; 17import img15 from "./png/15.png";
18import img16 from './png/16.png'; 18import img16 from "./png/16.png";
19import img17 from './png/17.png'; 19import img17 from "./png/17.png";
20import img18 from './png/18.png'; 20import img18 from "./png/18.png";
21import img19 from './png/19.png'; 21import img19 from "./png/19.png";
22import img20 from './png/20.png'; 22import img20 from "./png/20.png";
23import img21 from "./png/21.png"; 23import img21 from "./png/21.png";
24 24
25export const LogoIcon = logo; 25export const LogoIcon = logo;
26export const LoginIcon = login; 26export const LoginIcon = Login;
27 27
28export const SearchIcon = img1; 28export const SearchIcon = img1;
29export const HomeIcon = img2; 29export const HomeIcon = img2;
@@ -45,4 +45,4 @@ export const SteamIcon = img17;
45export const HistoryIcon = img18; 45export const HistoryIcon = img18;
46export const SortIcon = img19; 46export const SortIcon = img19;
47export const UploadIcon = img20; 47export const UploadIcon = img20;
48export const DeleteIcon = img21; \ No newline at end of file 48export const DeleteIcon = img21;
diff --git a/frontend/src/images/svgs/steam.tsx b/frontend/src/images/svgs/steam.tsx
new file mode 100644
index 0000000..0dc9a04
--- /dev/null
+++ b/frontend/src/images/svgs/steam.tsx
@@ -0,0 +1,7 @@
1export function LoginIcon(){
2 return (
3 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" className="text-white" height={32} width={32}>
4 <path d="M504 256c0 137-111.2 248-248.4 248-113.8 0-209.6-76.3-239-180.4l95.2 39.3c6.4 32.1 34.9 56.4 68.9 56.4 39.2 0 71.9-32.4 70.2-73.5l84.5-60.2c52.1 1.3 95.8-40.9 95.8-93.5 0-51.6-42-93.5-93.7-93.5s-93.7 42-93.7 93.5l0 1.2-59.2 85.7c-15.5-.9-30.7 3.4-43.5 12.1L8 236.1C18.2 108.4 125.1 8 255.6 8 392.8 8 504 119 504 256zM163.7 384.3l-30.5-12.6c5.6 11.6 15.3 20.8 27.2 25.8 26.9 11.2 57.8-1.6 69-28.4 5.4-13 5.5-27.3 .1-40.3S214 305.6 201 300.2c-12.9-5.4-26.7-5.2-38.9-.6l31.5 13c19.8 8.2 29.2 30.9 20.9 50.7-8.3 19.9-31 29.2-50.8 21zM337.5 129.8a62.3 62.3 0 1 1 0 124.6 62.3 62.3 0 1 1 0-124.6zm.1 109a46.8 46.8 0 1 0 0-93.6 46.8 46.8 0 1 0 0 93.6z" fill="currentColor"/>
5 </svg>
6 )
7} \ No newline at end of file
diff --git a/frontend/src/index.tsx b/frontend/src/index.tsx
index eec2ff4..13d180c 100644
--- a/frontend/src/index.tsx
+++ b/frontend/src/index.tsx
@@ -1,11 +1,11 @@
1import React from 'react'; 1import React from "react";
2import ReactDOM from 'react-dom/client'; 2import ReactDOM from "react-dom/client";
3import { BrowserRouter } from "react-router-dom"; 3import { BrowserRouter } from "react-router-dom";
4 4
5import App from './App'; 5import App from "./App";
6 6
7const root = ReactDOM.createRoot( 7const root = ReactDOM.createRoot(
8 document.getElementById('root') as HTMLElement 8 document.getElementById("root") as HTMLElement
9); 9);
10 10
11root.render( 11root.render(
diff --git a/frontend/src/pages/About.tsx b/frontend/src/pages/About.tsx
index a8b7826..7802d75 100644
--- a/frontend/src/pages/About.tsx
+++ b/frontend/src/pages/About.tsx
@@ -1,40 +1,36 @@
1import React from 'react'; 1import React from "react";
2import ReactMarkdown from 'react-markdown'; 2import ReactMarkdown from "react-markdown";
3import { Helmet } from 'react-helmet'; 3import { Helmet } from "react-helmet";
4
5import '@css/About.css';
6 4
7const About: React.FC = () => { 5const About: React.FC = () => {
6 const [aboutText, setAboutText] = React.useState<string>("");
8 7
9 const [aboutText, setAboutText] = React.useState<string>(""); 8 React.useEffect(() => {
10 9 const fetchReadme = async () => {
11 React.useEffect(() => { 10 try {
12 const fetchReadme = async () => { 11 const response = await fetch(
13 try { 12 "https://raw.githubusercontent.com/pektezol/lphub/main/README.md"
14 const response = await fetch( 13 );
15 'https://raw.githubusercontent.com/pektezol/lphub/main/README.md' 14 if (!response.ok) {
16 ); 15 throw new Error("Failed to fetch README");
17 if (!response.ok) { 16 }
18 throw new Error('Failed to fetch README'); 17 const readmeText = await response.text();
19 } 18 setAboutText(readmeText);
20 const readmeText = await response.text(); 19 } catch (error) {
21 setAboutText(readmeText); 20 console.error("Error fetching README:", error);
22 } catch (error) { 21 }
23 console.error('Error fetching README:', error); 22 };
24 } 23 fetchReadme();
25 }; 24 }, []);
26 fetchReadme();
27 }, []);
28
29 25
30 return ( 26 return (
31 <div id="about"> 27 <div className="ml-16 p-8 text-foreground font-[--font-barlow-semicondensed-regular] prose prose-invert max-w-none">
32 <Helmet> 28 <Helmet>
33 <title>LPHUB | About</title> 29 <title>LPHUB | About</title>
34 </Helmet> 30 </Helmet>
35 <ReactMarkdown>{aboutText}</ReactMarkdown> 31 <ReactMarkdown className={"overflow-auto"}>{aboutText}</ReactMarkdown>
36 </div> 32 </div>
37 ); 33 );
38}; 34};
39 35
40export default About; 36export default About;
diff --git a/frontend/src/pages/Games.tsx b/frontend/src/pages/Games.tsx
index 15cc891..8587635 100644
--- a/frontend/src/pages/Games.tsx
+++ b/frontend/src/pages/Games.tsx
@@ -1,46 +1,29 @@
1import React from 'react'; 1import React from "react";
2import { Helmet } from 'react-helmet'; 2import { Helmet } from "react-helmet";
3 3
4import GameEntry from '@components/GameEntry'; 4import GameEntry from "@components/GameEntry";
5import { Game } from '@customTypes/Game'; 5import { Game } from "@customTypes/Game";
6import "@css/Maps.css"
7 6
8interface GamesProps { 7interface GamesProps {
9 games: Game[]; 8 games: Game[];
10} 9}
11 10
12const Games: React.FC<GamesProps> = ({ games }) => { 11const Games: React.FC<GamesProps> = ({ games }) => {
13 12 return (
14 const _page_load = () => { 13 <div className="ml-20 min-h-screen text-foreground font-[--font-barlow-semicondensed-regular] overflow-y-auto scrollbar-thin">
15 const loaders = document.querySelectorAll(".loader"); 14 <Helmet>
16 loaders.forEach((loader) => { 15 <title>LPHUB | Games</title>
17 (loader as HTMLElement).style.display = "none"; 16 </Helmet>
18 }); 17 <section className="py-12 px-12 w-full">
19 } 18 <h1 className="text-3xl font-bold mb-8">Games</h1>
20 19 <div className="flex flex-col w-full">
21 React.useEffect(() => { 20 {games.map((game, index) => (
22 document.querySelectorAll(".games-page-item-body").forEach((game, index) => { 21 <GameEntry game={game} key={index} />
23 game.innerHTML = ""; 22 ))}
24 });
25 _page_load();
26 }, []);
27
28 return (
29 <div className='games-page'>
30 <Helmet>
31 <title>LPHUB | Games</title>
32 </Helmet>
33 <section>
34 <div className='games-page-content'>
35 <div className='games-page-item-content'>
36 {games.map((game, index) => (
37 <GameEntry game={game} key={index} />
38 ))}
39 </div>
40 </div>
41 </section>
42 </div> 23 </div>
43 ); 24 </section>
25 </div>
26 );
44}; 27};
45 28
46export default Games; 29export default Games;
diff --git a/frontend/src/pages/Homepage.tsx b/frontend/src/pages/Homepage.tsx
index 4f46af5..b4ac3b0 100644
--- a/frontend/src/pages/Homepage.tsx
+++ b/frontend/src/pages/Homepage.tsx
@@ -1,22 +1,31 @@
1import React from 'react'; 1import React from "react";
2import { Helmet } from 'react-helmet'; 2import { Helmet } from "react-helmet";
3 3
4const Homepage: React.FC = () => { 4const Homepage: React.FC = () => {
5 5 return (
6 return ( 6 <main className="ml-12 relative left-0 w-fullmin-h-screen p-4 sm:p-8 text-foreground font-[--font-barlow-semicondensed-regular]">
7 <main> 7 <Helmet>
8 <Helmet> 8 <title>LPHUB | Homepage</title>
9 <title>LPHUB | Homepage</title> 9 </Helmet>
10 </Helmet> 10 <section className="p-8">
11 <section> 11 <p />
12 <p /> 12 <h1 className="text-5xl font-[--font-barlow-condensed-bold] mb-6 text-primary">Welcome to Least Portals Hub!</h1>
13 <h1>Welcome to Least Portals Hub!</h1> 13 <p className="text-lg mb-4 leading-relaxed">
14 <p>At the moment, LPHUB is in beta state. This means that the site has only the core functionalities enabled for providing both collaborative information and competitive leaderboards.</p> 14 At the moment, LPHUB is in beta state. This means that the site has
15 <p>The website should feel intuitive to navigate around. For any type of feedback, reach us at LPHUB Discord server.</p> 15 only the core functionalities enabled for providing both collaborative
16 <p>By using LPHUB, you agree that you have read the 'Leaderboard Rules' and the 'About LPHUB' pages.</p> 16 information and competitive leaderboards.
17 </section> 17 </p>
18 </main> 18 <p className="text-lg mb-4 leading-relaxed">
19 ); 19 The website should feel intuitive to navigate around. For any type of
20 feedback, reach us at LPHUB Discord server.
21 </p>
22 <p className="text-lg mb-4 leading-relaxed">
23 By using LPHUB, you agree that you have read the 'Leaderboard Rules'
24 and the 'About LPHUB' pages.
25 </p>
26 </section>
27 </main>
28 );
20}; 29};
21 30
22export default Homepage; 31export default Homepage;
diff --git a/frontend/src/pages/Maplist.tsx b/frontend/src/pages/Maplist.tsx
index 76f9a52..2f0491e 100644
--- a/frontend/src/pages/Maplist.tsx
+++ b/frontend/src/pages/Maplist.tsx
@@ -2,7 +2,6 @@ import React, { useEffect } from "react";
2import { Link, useLocation, useNavigate, useParams } from "react-router-dom"; 2import { Link, useLocation, useNavigate, useParams } from "react-router-dom";
3import { Helmet } from "react-helmet"; 3import { Helmet } from "react-helmet";
4 4
5import "@css/Maplist.css";
6import { API } from "@api/Api"; 5import { API } from "@api/Api";
7import { Game } from "@customTypes/Game"; 6import { Game } from "@customTypes/Game";
8import { GameChapter, GamesChapters } from "@customTypes/Chapters"; 7import { GameChapter, GamesChapters } from "@customTypes/Chapters";
@@ -11,7 +10,6 @@ const Maplist: React.FC = () => {
11 const [game, setGame] = React.useState<Game | null>(null); 10 const [game, setGame] = React.useState<Game | null>(null);
12 const [catNum, setCatNum] = React.useState(0); 11 const [catNum, setCatNum] = React.useState(0);
13 const [id, setId] = React.useState(0); 12 const [id, setId] = React.useState(0);
14 const [category, setCategory] = React.useState(0);
15 const [load, setLoad] = React.useState(false); 13 const [load, setLoad] = React.useState(false);
16 const [currentlySelected, setCurrentlySelected] = React.useState<number>(0); 14 const [currentlySelected, setCurrentlySelected] = React.useState<number>(0);
17 const [hasClicked, setHasClicked] = React.useState(false); 15 const [hasClicked, setHasClicked] = React.useState(false);
@@ -21,7 +19,7 @@ const Maplist: React.FC = () => {
21 19
22 const [dropdownActive, setDropdownActive] = React.useState("none"); 20 const [dropdownActive, setDropdownActive] = React.useState("none");
23 21
24 const params = useParams<{ id: string, chapter: string }>(); 22 const params = useParams<{ id: string; chapter: string }>();
25 const location = useLocation(); 23 const location = useLocation();
26 const navigate = useNavigate(); 24 const navigate = useNavigate();
27 25
@@ -34,15 +32,15 @@ const Maplist: React.FC = () => {
34 const _fetch_chapters = async (chapter_id: string) => { 32 const _fetch_chapters = async (chapter_id: string) => {
35 const chapters = await API.get_chapters(chapter_id); 33 const chapters = await API.get_chapters(chapter_id);
36 setCurChapter(chapters); 34 setCurChapter(chapters);
37 } 35 };
38 36
39 const _handle_dropdown_click = () => { 37 const _handle_dropdown_click = () => {
40 if (dropdownActive == "none") { 38 if (dropdownActive === "none") {
41 setDropdownActive("block"); 39 setDropdownActive("block");
42 } else { 40 } else {
43 setDropdownActive("none"); 41 setDropdownActive("none");
44 } 42 }
45 } 43 };
46 44
47 // im sorry but im too lazy to fix this right now 45 // im sorry but im too lazy to fix this right now
48 useEffect(() => { 46 useEffect(() => {
@@ -54,7 +52,7 @@ const Maplist: React.FC = () => {
54 const queryParams = new URLSearchParams(location.search); 52 const queryParams = new URLSearchParams(location.search);
55 if (queryParams.get("chapter")) { 53 if (queryParams.get("chapter")) {
56 let cat = parseFloat(queryParams.get("chapter") || ""); 54 let cat = parseFloat(queryParams.get("chapter") || "");
57 if (gameId == 2) { 55 if (gameId === 2) {
58 cat += 10; 56 cat += 10;
59 } 57 }
60 _fetch_chapters(cat.toString()); 58 _fetch_chapters(cat.toString());
@@ -62,7 +60,7 @@ const Maplist: React.FC = () => {
62 60
63 const _fetch_game = async () => { 61 const _fetch_game = async () => {
64 const games = await API.get_games(); 62 const games = await API.get_games();
65 const foundGame = games.find((game) => game.id === gameId); 63 const foundGame = games.find(game => game.id === gameId);
66 // console.log(foundGame) 64 // console.log(foundGame)
67 if (foundGame) { 65 if (foundGame) {
68 setGame(foundGame); 66 setGame(foundGame);
@@ -74,111 +72,175 @@ const Maplist: React.FC = () => {
74 const games_chapters = await API.get_games_chapters(gameId.toString()); 72 const games_chapters = await API.get_games_chapters(gameId.toString());
75 setGameChapters(games_chapters); 73 setGameChapters(games_chapters);
76 setNumChapters(games_chapters.chapters.length); 74 setNumChapters(games_chapters.chapters.length);
77 } 75 };
78 76
79 setLoad(true); 77 setLoad(true);
80 _fetch_game(); 78 _fetch_game();
81 _fetch_game_chapters(); 79 _fetch_game_chapters();
82 }, []); 80 }, [location.search]);
83 81
84 useEffect(() => { 82 useEffect(() => {
85 const queryParams = new URLSearchParams(location.search); 83 const queryParams = new URLSearchParams(location.search);
86 if (gameChapters != undefined && !queryParams.get("chapter")) { 84 if (gameChapters !== undefined && !queryParams.get("chapter")) {
87 _fetch_chapters(gameChapters!.chapters[0].id.toString()); 85 _fetch_chapters(gameChapters!.chapters[0].id.toString());
88 } 86 }
89 }, [gameChapters]) 87 }, [gameChapters, location.search]);
90
91
92 88
93 return ( 89 return (
94 <main> 90 <main className="*:text-foreground w-[calc(100vw-80px)] relative left-0 ml-20 min-h-screen p-4 sm:p-8">
95 <Helmet> 91 <Helmet>
96 <title>LPHUB | Maplist</title> 92 <title>LPHUB | Maplist</title>
97 </Helmet> 93 </Helmet>
98 <section style={{ marginTop: "20px" }}> 94
99 <Link to="/games"> 95 <section className="mt-5">
100 <button className="nav-button" style={{ borderRadius: "20px" }}> 96 <Link to="/games">
101 <i className="triangle"></i> 97 <button className="nav-button rounded-[20px] h-10 bg-surface border-0 text-foreground text-lg font-[--font-barlow-semicondensed-regular] transition-colors duration-100 hover:bg-surface2 flex items-center px-2">
102 <span>Games List</span> 98 <i className="triangle mr-2"></i>
103 </button> 99 <span className="px-2">Games List</span>
104 </Link> 100 </button>
101 </Link>
105 </section> 102 </section>
103
106 {load ? ( 104 {load ? (
107 <div></div> 105 <div></div>
108 ) : ( 106 ) : (
107 <section>
108 <h1 className="font-[--font-barlow-condensed-bold] text-3xl sm:text-6xl my-0 text-foreground">
109 {game?.name}
110 </h1>
111
112 <div
113 className="text-center rounded-3xl overflow-hidden bg-cover bg-[25%] mt-3 relative"
114 style={{ backgroundImage: `url(${game?.image})` }}
115 >
116 <div className="backdrop-blur-sm flex flex-col w-full">
117 <div className="h-full flex flex-col justify-center items-center py-6">
118 <h2 className="my-5 font-[--font-barlow-semicondensed-semibold] text-4xl sm:text-8xl text-foreground">
119 {
120 game?.category_portals.find(
121 obj => obj.category.id === catNum + 1
122 )?.portal_count
123 }
124 </h2>
125 <h3 className="font-[--font-barlow-semicondensed-regular] mx-2.5 text-2xl sm:text-4xl my-0 text-foreground">
126 portals
127 </h3>
128 </div>
129
130 <div className="flex h-12 bg-surface gap-0.5">
131 {game?.category_portals.map((cat, index) => (
132 <button
133 key={index}
134 className={`border-0 text-foreground font-[--font-barlow-semicondensed-regular] text-sm sm:text-xl cursor-pointer transition-all duration-100 w-full ${
135 currentlySelected === cat.category.id ||
136 (cat.category.id - 1 === catNum && !hasClicked)
137 ? "bg-surface"
138 : "bg-surface1 hover:bg-surface"
139 }`}
140 onClick={() => {
141 setCatNum(cat.category.id - 1);
142 _update_currently_selected(cat.category.id);
143 }}
144 >
145 <span className="truncate">{cat.category.name}</span>
146 </button>
147 ))}
148 </div>
149 </div>
150 </div>
151
152 <div>
109 <section> 153 <section>
110 <h1>{game?.name}</h1> 154 <div>
155 <span className="text-lg sm:text-lg translate-y-1.5 block mt-2.5 text-foreground">
156 {curChapter?.chapter.name.split(" - ")[0]}
157 </span>
158 </div>
159 <div
160 onClick={_handle_dropdown_click}
161 className="cursor-pointer select-none flex w-fit items-center"
162 >
163 <span className="text-foreground text-base sm:text-2xl">
164 {curChapter?.chapter.name.split(" - ")[1]}
165 </span>
166 <i className="triangle translate-x-1.5 translate-y-2 -rotate-90"></i>
167 </div>
168 \
111 <div 169 <div
112 style={{ backgroundImage: `url(${game?.image})` }} 170 className={`absolute z-[1000] bg-surface1 rounded-2xl overflow-hidden p-1 animate-in fade-in duration-100 ${
113 className="game-header" 171 dropdownActive === "none" ? "hidden" : "block"
172 }`}
114 > 173 >
115 <div className="blur"> 174 {gameChapters?.chapters.map((chapter, i) => {
116 <div className="game-header-portal-count"> 175 return (
117 <h2 className="portal-count"> 176 <div
118 { 177 key={i}
119 game?.category_portals.find( 178 className="cursor-pointer text-base sm:text-xl rounded-[2000px] p-1 hover:bg-surface text-foreground"
120 (obj) => obj.category.id === catNum + 1 179 onClick={() => {
121 )?.portal_count 180 _fetch_chapters(chapter.id.toString());
122 } 181 _handle_dropdown_click();
123 </h2> 182 }}
124 <h3>portals</h3> 183 >
125 </div> 184 {chapter.name}
126 <div className="game-header-categories">
127 {game?.category_portals.map((cat, index) => (
128 <button key={index} className={currentlySelected == cat.category.id || cat.category.id - 1 == catNum && !hasClicked ? "game-cat-button selected" : "game-cat-button"} onClick={() => { setCatNum(cat.category.id - 1); _update_currently_selected(cat.category.id) }}>
129 <span>{cat.category.name}</span>
130 </button>
131 ))}
132 </div>
133 </div> 185 </div>
186 );
187 })}
134 </div> 188 </div>
189 </section>
135 190
136 <div> 191 <section className="grid grid-cols-1 sm:grid-cols-2 md:grid-cols-3 lg:grid-cols-4 gap-5 my-5">
137 <section className="chapter-select-container"> 192 {curChapter?.maps.map((map, i) => {
138 <div> 193 return (
139 <span style={{ fontSize: "18px", transform: "translateY(5px)", display: "block", marginTop: "10px" }}>{curChapter?.chapter.name.split(" - ")[0]}</span> 194 <div key={i} className="bg-surface rounded-3xl overflow-hidden">
195 <Link to={`/maps/${map.id}`}>
196 <span className="text-center text-base sm:text-xl w-full block my-1.5 text-foreground truncate">
197 {map.name}
198 </span>
199 <div
200 className="flex h-40 sm:h-48 bg-cover relative"
201 style={{ backgroundImage: `url(${map.image})` }}
202 >
203 <div className="backdrop-blur-sm w-full flex items-center justify-center">
204 <span className="text-2xl sm:text-4xl font-[--font-barlow-semicondensed-semibold] text-white mr-1.5">
205 {map.is_disabled
206 ? map.category_portals[0].portal_count
207 : map.category_portals.find(
208 obj => obj.category.id === catNum + 1
209 )?.portal_count}
210 </span>
211 <span className="text-2xl sm:text-4xl font-[--font-barlow-semicondensed-regular] text-white">
212 portals
213 </span>
140 </div> 214 </div>
141 <div onClick={_handle_dropdown_click} className="dropdown">
142 <span>{curChapter?.chapter.name.split(" - ")[1]}</span>
143 <i className="triangle"></i>
144 </div> 215 </div>
145 <div className="dropdown-elements" style={{ display: dropdownActive }}>
146 {gameChapters?.chapters.map((chapter, i) => {
147 return <div className="dropdown-element" onClick={() => { _fetch_chapters(chapter.id.toString()); _handle_dropdown_click() }}>{chapter.name}</div>
148 })
149 216
150 } 217 <div className="flex mx-2.5 my-4">
218 <div className="flex w-full items-center justify-center gap-1.5 rounded-[2000px] ml-0.5 translate-y-px">
219 {[1, 2, 3, 4, 5].map((point) => (
220 <div
221 key={point}
222 className={`flex h-0.5 w-full rounded-3xl ${
223 point <= (map.difficulty + 1)
224 ? map.difficulty === 0
225 ? "bg-green-500"
226 : map.difficulty === 1 || map.difficulty === 2
227 ? "bg-lime-500"
228 : map.difficulty === 3
229 ? "bg-red-400"
230 : "bg-red-600"
231 : "bg-surface1"
232 }`}
233 />
234 ))}
151 </div> 235 </div>
152 </section> 236 </div>
153 <section className="maplist"> 237 </Link>
154 {curChapter?.maps.map((map, i) => { 238 </div>
155 return <div className="maplist-entry"> 239 );
156 <Link to={`/maps/${map.id}`}> 240 })}
157 <span>{map.name}</span>
158 <div className="map-entry-image" style={{ backgroundImage: `url(${map.image})` }}>
159 <div className="blur map">
160 <span>{map.is_disabled ? map.category_portals[0].portal_count : map.category_portals.find(
161 (obj) => obj.category.id === catNum + 1
162 )?.portal_count}</span>
163 <span>portals</span>
164 </div>
165 </div>
166 <div className="difficulty-bar">
167 {/* <span>Difficulty:</span> */}
168 <div className={map.difficulty <= 2 ? "one" : map.difficulty <= 4 ? "two" : map.difficulty <= 6 ? "three" : map.difficulty <= 8 ? "four" : map.difficulty <= 10 ? "five" : "one"}>
169 <div className="difficulty-point"></div>
170 <div className="difficulty-point"></div>
171 <div className="difficulty-point"></div>
172 <div className="difficulty-point"></div>
173 <div className="difficulty-point"></div>
174 </div>
175 </div>
176 </Link>
177 </div>
178 })}
179 </section>
180 </div>
181 </section> 241 </section>
242 </div>
243 </section>
182 )} 244 )}
183 </main> 245 </main>
184 ); 246 );
diff --git a/frontend/src/pages/Maps.tsx b/frontend/src/pages/Maps.tsx
index fb13563..50fe03b 100644
--- a/frontend/src/pages/Maps.tsx
+++ b/frontend/src/pages/Maps.tsx
@@ -1,28 +1,32 @@
1import React from 'react'; 1import React from "react";
2import { Link, useLocation } from 'react-router-dom'; 2import { Link, useLocation } from "react-router-dom";
3import { Helmet } from 'react-helmet'; 3import { Helmet } from "react-helmet";
4 4
5import { PortalIcon, FlagIcon, ChatIcon } from '@images/Images'; 5import { PortalIcon, FlagIcon, ChatIcon } from "../images/Images";
6import Summary from '@components/Summary'; 6import Summary from "@components/Summary";
7import Leaderboards from '@components/Leaderboards'; 7import Leaderboards from "@components/Leaderboards";
8import Discussions from '@components/Discussions'; 8import Discussions from "@components/Discussions";
9import ModMenu from '@components/ModMenu'; 9import ModMenu from "@components/ModMenu";
10import { MapDiscussions, MapLeaderboard, MapSummary } from '@customTypes/Map'; 10import { MapDiscussions, MapLeaderboard, MapSummary } from "@customTypes/Map";
11import { API } from '@api/Api'; 11import { API } from "@api/Api";
12import "@css/Maps.css";
13 12
14interface MapProps { 13interface MapProps {
15 token?: string; 14 token?: string;
16 isModerator: boolean; 15 isModerator: boolean;
17}; 16}
18 17
19const Maps: React.FC<MapProps> = ({ token, isModerator }) => { 18const Maps: React.FC<MapProps> = ({ token, isModerator }) => {
20
21 const [selectedRun, setSelectedRun] = React.useState<number>(0); 19 const [selectedRun, setSelectedRun] = React.useState<number>(0);
22 20
23 const [mapSummaryData, setMapSummaryData] = React.useState<MapSummary | undefined>(undefined); 21 const [mapSummaryData, setMapSummaryData] = React.useState<
24 const [mapLeaderboardData, setMapLeaderboardData] = React.useState<MapLeaderboard | undefined>(undefined); 22 MapSummary | undefined
25 const [mapDiscussionsData, setMapDiscussionsData] = React.useState<MapDiscussions | undefined>(undefined); 23 >(undefined);
24 const [mapLeaderboardData, setMapLeaderboardData] = React.useState<
25 MapLeaderboard | undefined
26 >(undefined);
27 const [mapDiscussionsData, setMapDiscussionsData] = React.useState<
28 MapDiscussions | undefined
29 >(undefined);
26 30
27 const [navState, setNavState] = React.useState<number>(0); 31 const [navState, setNavState] = React.useState<number>(0);
28 32
@@ -30,45 +34,66 @@ const Maps: React.FC<MapProps> = ({ token, isModerator }) => {
30 34
31 const mapID = location.pathname.split("/")[2]; 35 const mapID = location.pathname.split("/")[2];
32 36
33 const _fetch_map_summary = async () => { 37 const _fetch_map_summary = React.useCallback(async () => {
34 const mapSummary = await API.get_map_summary(mapID); 38 const mapSummary = await API.get_map_summary(mapID);
35 setMapSummaryData(mapSummary); 39 setMapSummaryData(mapSummary);
36 }; 40 }, [mapID]);
37 41
38 const _fetch_map_leaderboards = async () => { 42 const _fetch_map_leaderboards = React.useCallback(async () => {
39 const mapLeaderboards = await API.get_map_leaderboard(mapID, "1"); 43 const mapLeaderboards = await API.get_map_leaderboard(mapID, "1");
40 setMapLeaderboardData(mapLeaderboards); 44 setMapLeaderboardData(mapLeaderboards);
41 }; 45 }, [mapID]);
42 46
43 const _fetch_map_discussions = async () => { 47 const _fetch_map_discussions = React.useCallback(async () => {
44 const mapDiscussions = await API.get_map_discussions(mapID); 48 const mapDiscussions = await API.get_map_discussions(mapID);
45 setMapDiscussionsData(mapDiscussions); 49 setMapDiscussionsData(mapDiscussions);
46 }; 50 }, [mapID]);
47 51
48 React.useEffect(() => { 52 React.useEffect(() => {
49 _fetch_map_summary(); 53 _fetch_map_summary();
50 _fetch_map_leaderboards(); 54 _fetch_map_leaderboards();
51 _fetch_map_discussions(); 55 _fetch_map_discussions();
52 }, [mapID]); 56 }, [
57 mapID,
58 _fetch_map_discussions,
59 _fetch_map_leaderboards,
60 _fetch_map_summary,
61 ]);
53 62
54 if (!mapSummaryData) { 63 if (!mapSummaryData) {
55 // loading placeholder 64 // loading placeholder
56 return ( 65 return (
57 <> 66 <>
58 <main> 67 <main className="*:text-foreground relative left-0 w-[calc(100%-20rem)] min-h-screen p-4 sm:p-8">
59 <section id='section1' className='summary1'> 68 <section id="section1" className="summary1">
60 <div> 69 <div>
61 <Link to="/games"><button className='nav-button' style={{ borderRadius: "20px 20px 20px 20px" }}><i className='triangle'></i><span>Games List</span></button></Link> 70 <Link to="/games">
71 <button
72 className="nav-button rounded-[20px] h-10 bg-surface border-0 text-foreground text-lg font-[--font-barlow-semicondensed-regular] transition-colors duration-100 hover:bg-surface2 flex items-center px-2"
73 >
74 <i className="triangle"></i>
75 <span className="px-2">Games List</span>
76 </button>
77 </Link>
62 </div> 78 </div>
63 </section> 79 </section>
64 80
65 <section id='section2' className='summary1'> 81 <section id="section2" className="summary1 mt-4 flex gap-2 flex-wrap">
66 <button className='nav-button'><img src={PortalIcon} alt="" /><span>Summary</span></button> 82 <button className="nav-button">
67 <button className='nav-button'><img src={FlagIcon} alt="" /><span>Leaderboards</span></button> 83 <img src={PortalIcon} alt="" className="w-5 h-5 sm:w-6 sm:h-6" />
68 <button className='nav-button'><img src={ChatIcon} alt="" /><span>Discussions</span></button> 84 <span>Summary</span>
85 </button>
86 <button className="nav-button">
87 <img src={FlagIcon} alt="" className="w-5 h-5 sm:w-6 sm:h-6" />
88 <span>Leaderboards</span>
89 </button>
90 <button className="nav-button">
91 <img src={ChatIcon} alt="" className="w-5 h-5 sm:w-6 sm:h-6" />
92 <span>Discussions</span>
93 </button>
69 </section> 94 </section>
70 95
71 <section id='section6' className='summary2' /> 96 <section id="section6" className="summary2 mt-4" />
72 </main> 97 </main>
73 </> 98 </>
74 ); 99 );
@@ -80,29 +105,78 @@ const Maps: React.FC<MapProps> = ({ token, isModerator }) => {
80 <title>LPHUB | {mapSummaryData.map.map_name}</title> 105 <title>LPHUB | {mapSummaryData.map.map_name}</title>
81 <meta name="description" content={mapSummaryData.map.map_name} /> 106 <meta name="description" content={mapSummaryData.map.map_name} />
82 </Helmet> 107 </Helmet>
83 {isModerator && <ModMenu token={token} data={mapSummaryData} selectedRun={selectedRun} mapID={mapID} />} 108 {isModerator && (
84 109 <ModMenu
85 <div id='background-image'> 110 token={token}
111 data={mapSummaryData}
112 selectedRun={selectedRun}
113 mapID={mapID}
114 />
115 )}
116
117 <div id="background-image">
86 <img src={mapSummaryData.map.image} alt="" /> 118 <img src={mapSummaryData.map.image} alt="" />
87 </div> 119 </div>
88 <main> 120 <main className="relative left-0 w-full sm:ml-80 sm:w-[calc(100%-20rem)] min-h-screen max-h-screen overflow-y-auto p-4 sm:p-8 scrollbar-thin scrollbar-track-surface scrollbar-thumb-muted hover:scrollbar-thumb-surface1">
89 <section id='section1' className='summary1'> 121 <section id="section1" className="summary1">
90 <div> 122 <div>
91 <Link to="/games"><button className='nav-button' style={{ borderRadius: "20px 0px 0px 20px" }}><i className='triangle'></i><span>Games List</span></button></Link> 123 <Link to="/games">
92 <Link to={`/games/${mapSummaryData.map.is_coop ? "2" : "1"}?chapter=${mapSummaryData.map.chapter_name.split(" ")[1]}`}><button className='nav-button' style={{ borderRadius: "0px 20px 20px 0px", marginLeft: "2px" }}><i className='triangle'></i><span>{mapSummaryData.map.chapter_name}</span></button></Link> 124 <button
93 <br /><span><b>{mapSummaryData.map.map_name}</b></span> 125 className="nav-button rounded-[20px] h-10 bg-surface border-0 text-foreground text-lg font-[--font-barlow-semicondensed-regular] transition-colors duration-100 hover:bg-surface2 flex items-center px-2"
126 >
127 <i className="triangle"></i>
128 <span className="px-2">Games List</span>
129 </button>
130 </Link>
131 <Link
132 to={`/games/${mapSummaryData.map.is_coop ? "2" : "1"}?chapter=${mapSummaryData.map.chapter_name.split(" ")[1]}`}
133 >
134 <button
135 className="nav-button ml-2"
136 >
137 <i className="triangle"></i>
138 <span className="px-2">{mapSummaryData.map.chapter_name}</span>
139 </button>
140 </Link>
141 <br />
142 <span className="block mt-2 text-lg sm:text-xl text-foreground">
143 <b>{mapSummaryData.map.map_name}</b>
144 </span>
94 </div> 145 </div>
95 </section> 146 </section>
96 147
97 <section id='section2' className='summary1'> 148 <section id="section2" className="summary1 mt-4 flex gap-2 flex-wrap">
98 <button className='nav-button' onClick={() => setNavState(0)}><img src={PortalIcon} alt="" /><span>Summary</span></button> 149 <button className="nav-button" onClick={() => setNavState(0)}>
99 <button className='nav-button' onClick={() => setNavState(1)}><img src={FlagIcon} alt="" /><span>Leaderboards</span></button> 150 <img src={PortalIcon} alt="" className="w-5 h-5 sm:w-6 sm:h-6" />
100 <button className='nav-button' onClick={() => setNavState(2)}><img src={ChatIcon} alt="" /><span>Discussions</span></button> 151 <span>Summary</span>
152 </button>
153 <button className="nav-button" onClick={() => setNavState(1)}>
154 <img src={FlagIcon} alt="" className="w-5 h-5 sm:w-6 sm:h-6" />
155 <span>Leaderboards</span>
156 </button>
157 <button className="nav-button" onClick={() => setNavState(2)}>
158 <img src={ChatIcon} alt="" className="w-5 h-5 sm:w-6 sm:h-6" />
159 <span>Discussions</span>
160 </button>
101 </section> 161 </section>
102 162
103 {navState === 0 && <Summary selectedRun={selectedRun} setSelectedRun={setSelectedRun} data={mapSummaryData} />} 163 {navState === 0 && (
164 <Summary
165 selectedRun={selectedRun}
166 setSelectedRun={setSelectedRun}
167 data={mapSummaryData}
168 />
169 )}
104 {navState === 1 && <Leaderboards mapID={mapID} />} 170 {navState === 1 && <Leaderboards mapID={mapID} />}
105 {navState === 2 && <Discussions data={mapDiscussionsData} token={token} isModerator={isModerator} mapID={mapID} onRefresh={() => _fetch_map_discussions()} />} 171 {navState === 2 && (
172 <Discussions
173 data={mapDiscussionsData}
174 token={token}
175 isModerator={isModerator}
176 mapID={mapID}
177 onRefresh={() => _fetch_map_discussions()}
178 />
179 )}
106 </main> 180 </main>
107 </> 181 </>
108 ); 182 );
diff --git a/frontend/src/pages/Profile.tsx b/frontend/src/pages/Profile.tsx
index 48233bf..f44f587 100644
--- a/frontend/src/pages/Profile.tsx
+++ b/frontend/src/pages/Profile.tsx
@@ -1,16 +1,27 @@
1import React from 'react'; 1import React from "react";
2import { Link, useNavigate } from 'react-router-dom'; 2import { Link, useNavigate } from "react-router-dom";
3import { Helmet } from 'react-helmet'; 3import { Helmet } from "react-helmet";
4 4
5import { SteamIcon, TwitchIcon, YouTubeIcon, PortalIcon, FlagIcon, StatisticsIcon, SortIcon, ThreedotIcon, DownloadIcon, HistoryIcon, DeleteIcon } from '@images/Images'; 5import {
6import { UserProfile } from '@customTypes/Profile'; 6 SteamIcon,
7import { Game, GameChapters } from '@customTypes/Game'; 7 TwitchIcon,
8import { Map } from '@customTypes/Map'; 8 YouTubeIcon,
9import { ticks_to_time } from '@utils/Time'; 9 PortalIcon,
10import "@css/Profile.css"; 10 FlagIcon,
11import { API } from '@api/Api'; 11 StatisticsIcon,
12import useConfirm from '@hooks/UseConfirm'; 12 SortIcon,
13import useMessage from '@hooks/UseMessage'; 13 ThreedotIcon,
14 DownloadIcon,
15 HistoryIcon,
16 DeleteIcon,
17} from "@images/Images";
18import { UserProfile } from "@customTypes/Profile";
19import { Game, GameChapters } from "@customTypes/Game";
20import { Map } from "@customTypes/Map";
21import { ticks_to_time } from "@utils/Time";
22import { API } from "@api/Api";
23import useConfirm from "@hooks/UseConfirm";
24import useMessage from "@hooks/UseMessage";
14import useMessageLoad from "@hooks/UseMessageLoad"; 25import useMessageLoad from "@hooks/UseMessageLoad";
15 26
16interface ProfileProps { 27interface ProfileProps {
@@ -20,17 +31,25 @@ interface ProfileProps {
20 onDeleteRecord: () => void; 31 onDeleteRecord: () => void;
21} 32}
22 33
23const Profile: React.FC<ProfileProps> = ({ profile, token, gameData, onDeleteRecord }) => { 34const Profile: React.FC<ProfileProps> = ({
35 profile,
36 token,
37 gameData,
38 onDeleteRecord,
39}) => {
24 const { confirm, ConfirmDialogComponent } = useConfirm(); 40 const { confirm, ConfirmDialogComponent } = useConfirm();
25 const { message, MessageDialogComponent } = useMessage(); 41 const { message, MessageDialogComponent } = useMessage();
26 const { messageLoad, messageLoadClose, MessageDialogLoadComponent } = useMessageLoad(); 42 const { messageLoad, messageLoadClose, MessageDialogLoadComponent } =
43 useMessageLoad();
27 const [navState, setNavState] = React.useState(0); 44 const [navState, setNavState] = React.useState(0);
28 const [pageNumber, setPageNumber] = React.useState(1); 45 const [pageNumber, setPageNumber] = React.useState(1);
29 const [pageMax, setPageMax] = React.useState(0); 46 const [pageMax, setPageMax] = React.useState(0);
30 47
31 const [game, setGame] = React.useState("0") 48 const [game, setGame] = React.useState("0");
32 const [chapter, setChapter] = React.useState("0") 49 const [chapter, setChapter] = React.useState("0");
33 const [chapterData, setChapterData] = React.useState<GameChapters | null>(null); 50 const [chapterData, setChapterData] = React.useState<GameChapters | null>(
51 null
52 );
34 const [maps, setMaps] = React.useState<Map[]>([]); 53 const [maps, setMaps] = React.useState<Map[]>([]);
35 54
36 const navigate = useNavigate(); 55 const navigate = useNavigate();
@@ -41,7 +60,7 @@ const Profile: React.FC<ProfileProps> = ({ profile, token, gameData, onDeleteRec
41 } 60 }
42 }; 61 };
43 62
44 const _get_game_chapters = async () => { 63 const _get_game_chapters = React.useCallback(async () => {
45 if (game && game !== "0") { 64 if (game && game !== "0") {
46 const gameChapters = await API.get_games_chapters(game); 65 const gameChapters = await API.get_games_chapters(game);
47 setChapterData(gameChapters); 66 setChapterData(gameChapters);
@@ -49,9 +68,9 @@ const Profile: React.FC<ProfileProps> = ({ profile, token, gameData, onDeleteRec
49 setPageMax(Math.ceil(profile!.records.length / 20)); 68 setPageMax(Math.ceil(profile!.records.length / 20));
50 setPageNumber(1); 69 setPageNumber(1);
51 } 70 }
52 }; 71 }, [game, profile]);
53 72
54 const _get_game_maps = async () => { 73 const _get_game_maps = React.useCallback(async () => {
55 if (chapter === "0") { 74 if (chapter === "0") {
56 const gameMaps = await API.get_game_maps(game); 75 const gameMaps = await API.get_game_maps(game);
57 setMaps(gameMaps); 76 setMaps(gameMaps);
@@ -63,10 +82,13 @@ const Profile: React.FC<ProfileProps> = ({ profile, token, gameData, onDeleteRec
63 setPageMax(Math.ceil(gameChapters.maps.length / 20)); 82 setPageMax(Math.ceil(gameChapters.maps.length / 20));
64 setPageNumber(1); 83 setPageNumber(1);
65 } 84 }
66 }; 85 }, [chapter, game]);
67 86
68 const _delete_submission = async (map_id: number, record_id: number) => { 87 const _delete_submission = async (map_id: number, record_id: number) => {
69 const userConfirmed = await confirm("Delete Record", "Are you sure you want to delete this record?"); 88 const userConfirmed = await confirm(
89 "Delete Record",
90 "Are you sure you want to delete this record?"
91 );
70 92
71 if (!userConfirmed) { 93 if (!userConfirmed) {
72 return; 94 return;
@@ -87,26 +109,24 @@ const Profile: React.FC<ProfileProps> = ({ profile, token, gameData, onDeleteRec
87 React.useEffect(() => { 109 React.useEffect(() => {
88 if (!profile) { 110 if (!profile) {
89 navigate("/"); 111 navigate("/");
90 }; 112 }
91 }, [profile]); 113 }, [profile, navigate]);
92 114
93 React.useEffect(() => { 115 React.useEffect(() => {
94 if (profile) { 116 if (profile) {
95 _get_game_chapters(); 117 _get_game_chapters();
96 } 118 }
97 }, [profile, game]); 119 }, [profile, game, _get_game_chapters]);
98 120
99 React.useEffect(() => { 121 React.useEffect(() => {
100 if (profile && game !== "0") { 122 if (profile && game !== "0") {
101 _get_game_maps(); 123 _get_game_maps();
102 } 124 }
103 }, [profile, game, chapter, chapterData]) 125 }, [profile, game, chapter, chapterData, _get_game_maps]);
104 126
105 if (!profile) { 127 if (!profile) {
106 return ( 128 return <></>;
107 <></> 129 }
108 );
109 };
110 130
111 return ( 131 return (
112 <div> 132 <div>
@@ -119,230 +139,490 @@ const Profile: React.FC<ProfileProps> = ({ profile, token, gameData, onDeleteRec
119 {ConfirmDialogComponent} 139 {ConfirmDialogComponent}
120 140
121 <main> 141 <main>
122 <section id='section1' className='profile'> 142 <section id="section1" className="profile">
123 143 {profile.profile ? (
124 {profile.profile 144 <div id="profile-image" onClick={_update_profile}>
125 ? ( 145 <img src={profile.avatar_link} alt="profile-image"></img>
126 <div id='profile-image' onClick={_update_profile}> 146 <span>Refresh</span>
127 <img src={profile.avatar_link} alt="profile-image"></img> 147 </div>
128 <span>Refresh</span> 148 ) : (
129 </div> 149 <div>
130 ) : ( 150 <img src={profile.avatar_link} alt="profile-image"></img>
131 <div> 151 </div>
132 <img src={profile.avatar_link} alt="profile-image"></img> 152 )}
133 </div>
134 )}
135 153
136 <div id='profile-top'> 154 <div id="profile-top">
137 <div> 155 <div>
138 <div>{profile.user_name}</div> 156 <div>{profile.user_name}</div>
139 <div> 157 <div>
140 {profile.country_code === "XX" ? "" : <img src={`https://flagcdn.com/w80/${profile.country_code.toLowerCase()}.jpg`} alt={profile.country_code} />} 158 {profile.country_code === "XX" ? (
159 ""
160 ) : (
161 <img
162 src={`https://flagcdn.com/w80/${profile.country_code.toLowerCase()}.jpg`}
163 alt={profile.country_code}
164 />
165 )}
141 </div> 166 </div>
142 <div> 167 <div>
143 {profile.titles.map(e => ( 168 {profile.titles.map(e => (
144 <span className="titles" style={{ backgroundColor: `#${e.color}` }}> 169 <span
170 className="titles"
171 style={{ backgroundColor: `#${e.color}` }}
172 >
145 {e.name} 173 {e.name}
146 </span> 174 </span>
147 ))} 175 ))}
148 </div> 176 </div>
149 </div> 177 </div>
150 <div> 178 <div>
151 {profile.links.steam === "-" ? "" : <a href={profile.links.steam}><img src={SteamIcon} alt="Steam" /></a>} 179 {profile.links.steam === "-" ? (
152 {profile.links.twitch === "-" ? "" : <a href={profile.links.twitch}><img src={TwitchIcon} alt="Twitch" /></a>} 180 ""
153 {profile.links.youtube === "-" ? "" : <a href={profile.links.youtube}><img src={YouTubeIcon} alt="Youtube" /></a>} 181 ) : (
154 {profile.links.p2sr === "-" ? "" : <a href={profile.links.p2sr}><img src={PortalIcon} alt="P2SR" style={{ padding: "0" }} /></a>} 182 <a href={profile.links.steam}>
183 <img src={SteamIcon} alt="Steam" />
184 </a>
185 )}
186 {profile.links.twitch === "-" ? (
187 ""
188 ) : (
189 <a href={profile.links.twitch}>
190 <img src={TwitchIcon} alt="Twitch" />
191 </a>
192 )}
193 {profile.links.youtube === "-" ? (
194 ""
195 ) : (
196 <a href={profile.links.youtube}>
197 <img src={YouTubeIcon} alt="Youtube" />
198 </a>
199 )}
200 {profile.links.p2sr === "-" ? (
201 ""
202 ) : (
203 <a href={profile.links.p2sr}>
204 <img src={PortalIcon} alt="P2SR" style={{ padding: "0" }} />
205 </a>
206 )}
155 </div> 207 </div>
156
157 </div> 208 </div>
158 <div id='profile-bottom'> 209 <div id="profile-bottom">
159 <div> 210 <div>
160 <span>Overall</span> 211 <span>Overall</span>
161 <span>{profile.rankings.overall.rank === 0 ? "N/A " : "#" + profile.rankings.overall.rank + " "} 212 <span>
162 <span>({profile.rankings.overall.completion_count}/{profile.rankings.overall.completion_total})</span> 213 {profile.rankings.overall.rank === 0
214 ? "N/A "
215 : "#" + profile.rankings.overall.rank + " "}
216 <span>
217 ({profile.rankings.overall.completion_count}/
218 {profile.rankings.overall.completion_total})
219 </span>
163 </span> 220 </span>
164 </div> 221 </div>
165 <div> 222 <div>
166 <span>Singleplayer</span> 223 <span>Singleplayer</span>
167 <span>{profile.rankings.singleplayer.rank === 0 ? "N/A " : "#" + profile.rankings.singleplayer.rank + " "} 224 <span>
168 <span>({profile.rankings.singleplayer.completion_count}/{profile.rankings.singleplayer.completion_total})</span> 225 {profile.rankings.singleplayer.rank === 0
226 ? "N/A "
227 : "#" + profile.rankings.singleplayer.rank + " "}
228 <span>
229 ({profile.rankings.singleplayer.completion_count}/
230 {profile.rankings.singleplayer.completion_total})
231 </span>
169 </span> 232 </span>
170 </div> 233 </div>
171 <div> 234 <div>
172 <span>Cooperative</span> 235 <span>Cooperative</span>
173 <span>{profile.rankings.cooperative.rank === 0 ? "N/A " : "#" + profile.rankings.cooperative.rank + " "} 236 <span>
174 <span>({profile.rankings.cooperative.completion_count}/{profile.rankings.cooperative.completion_total})</span> 237 {profile.rankings.cooperative.rank === 0
238 ? "N/A "
239 : "#" + profile.rankings.cooperative.rank + " "}
240 <span>
241 ({profile.rankings.cooperative.completion_count}/
242 {profile.rankings.cooperative.completion_total})
243 </span>
175 </span> 244 </span>
176 </div> 245 </div>
177 </div> 246 </div>
178 </section> 247 </section>
179 248
180 249 <section id="section2" className="profile">
181 <section id='section2' className='profile'> 250 <button onClick={() => setNavState(0)}>
182 <button onClick={() => setNavState(0)}><img src={FlagIcon} alt="" />&nbsp;Player Records</button> 251 <img src={FlagIcon} alt="" />
183 <button onClick={() => setNavState(1)}><img src={StatisticsIcon} alt="" />&nbsp;Statistics</button> 252 &nbsp;Player Records
253 </button>
254 <button onClick={() => setNavState(1)}>
255 <img src={StatisticsIcon} alt="" />
256 &nbsp;Statistics
257 </button>
184 </section> 258 </section>
185 259
186 260 <section id="section3" className="profile1">
187 261 <div id="profileboard-nav">
188 262 {gameData === null ? (
189 263 <select>error</select>
190 <section id='section3' className='profile1'> 264 ) : (
191 <div id='profileboard-nav'> 265 <select
192 {gameData === null ? <select>error</select> : 266 id="select-game"
193
194 <select id='select-game'
195 onChange={() => { 267 onChange={() => {
196 setGame((document.querySelector('#select-game') as HTMLInputElement).value); 268 setGame(
269 (document.querySelector("#select-game") as HTMLInputElement)
270 .value
271 );
197 setChapter("0"); 272 setChapter("0");
198 const chapterSelect = document.querySelector('#select-chapter') as HTMLSelectElement; 273 const chapterSelect = document.querySelector(
274 "#select-chapter"
275 ) as HTMLSelectElement;
199 if (chapterSelect) { 276 if (chapterSelect) {
200 chapterSelect.value = "0"; 277 chapterSelect.value = "0";
201 } 278 }
202 }}> 279 }}
203 <option value={0} key={0}>All Scores</option> 280 >
281 <option value={0} key={0}>
282 All Scores
283 </option>
204 {gameData.map((e, i) => ( 284 {gameData.map((e, i) => (
205 <option value={e.id} key={i + 1}>{e.name}</option> 285 <option value={e.id} key={i + 1}>
206 ))}</select> 286 {e.name}
207 } 287 </option>
288 ))}
289 </select>
290 )}
208 291
209 {game === "0" ? 292 {game === "0" ? (
210 <select disabled> 293 <select disabled>
211 <option>All Chapters</option> 294 <option>All Chapters</option>
212 </select> 295 </select>
213 : chapterData === null ? <select></select> : 296 ) : chapterData === null ? (
214 297 <select></select>
215 <select id='select-chapter' 298 ) : (
216 onChange={() => setChapter((document.querySelector('#select-chapter') as HTMLInputElement).value)}> 299 <select
217 <option value="0" key="0">All Chapters</option> 300 id="select-chapter"
218 {chapterData.chapters.filter(e => e.is_disabled === false).map((e, i) => ( 301 onChange={() =>
219 <option value={e.id} key={i + 1}>{e.name}</option> 302 setChapter(
220 ))}</select> 303 (
221 } 304 document.querySelector(
305 "#select-chapter"
306 ) as HTMLInputElement
307 ).value
308 )
309 }
310 >
311 <option value="0" key="0">
312 All Chapters
313 </option>
314 {chapterData.chapters
315 .filter(e => e.is_disabled === false)
316 .map((e, i) => (
317 <option value={e.id} key={i + 1}>
318 {e.name}
319 </option>
320 ))}
321 </select>
322 )}
222 </div> 323 </div>
223 <div id='profileboard-top'> 324 <div id="profileboard-top">
224 <span><span>Map Name</span><img src={SortIcon} alt="" /></span> 325 <span>
225 <span style={{ justifyContent: 'center' }}><span>Portals</span><img src={SortIcon} alt="" /></span> 326 <span>Map Name</span>
226 <span style={{ justifyContent: 'center' }}><span>WRΔ </span><img src={SortIcon} alt="" /></span> 327 <img src={SortIcon} alt="" />
227 <span style={{ justifyContent: 'center' }}><span>Time</span><img src={SortIcon} alt="" /></span> 328 </span>
329 <span style={{ justifyContent: "center" }}>
330 <span>Portals</span>
331 <img src={SortIcon} alt="" />
332 </span>
333 <span style={{ justifyContent: "center" }}>
334 <span>WRΔ </span>
335 <img src={SortIcon} alt="" />
336 </span>
337 <span style={{ justifyContent: "center" }}>
338 <span>Time</span>
339 <img src={SortIcon} alt="" />
340 </span>
228 <span> </span> 341 <span> </span>
229 <span><span>Rank</span><img src={SortIcon} alt="" /></span> 342 <span>
230 <span><span>Date</span><img src={SortIcon} alt="" /></span> 343 <span>Rank</span>
231 <div id='page-number'> 344 <img src={SortIcon} alt="" />
345 </span>
346 <span>
347 <span>Date</span>
348 <img src={SortIcon} alt="" />
349 </span>
350 <div id="page-number">
232 <div> 351 <div>
233 <button onClick={() => { 352 <button
234 if (pageNumber !== 1) { 353 onClick={() => {
235 setPageNumber(prevPageNumber => prevPageNumber - 1); 354 if (pageNumber !== 1) {
236 const records = document.querySelectorAll(".profileboard-record"); 355 setPageNumber(prevPageNumber => prevPageNumber - 1);
237 records.forEach((r) => { 356 const records = document.querySelectorAll(
238 (r as HTMLInputElement).style.height = "44px"; 357 ".profileboard-record"
239 }); 358 );
240 } 359 records.forEach(r => {
241 }} 360 (r as HTMLInputElement).style.height = "44px";
242 ><i className='triangle' style={{ position: 'relative', left: '-5px', }}></i> </button> 361 });
243 <span>{pageNumber}/{pageMax}</span> 362 }
244 <button onClick={() => { 363 }}
245 if (pageNumber !== pageMax) { 364 >
246 setPageNumber(prevPageNumber => prevPageNumber + 1); 365 <i
247 const records = document.querySelectorAll(".profileboard-record"); 366 className="triangle"
248 records.forEach((r) => { 367 style={{ position: "relative", left: "-5px" }}
249 (r as HTMLInputElement).style.height = "44px"; 368 ></i>{" "}
250 }); 369 </button>
251 } 370 <span>
252 }} 371 {pageNumber}/{pageMax}
253 ><i className='triangle' style={{ position: 'relative', left: '5px', transform: 'rotate(180deg)' }}></i> </button> 372 </span>
373 <button
374 onClick={() => {
375 if (pageNumber !== pageMax) {
376 setPageNumber(prevPageNumber => prevPageNumber + 1);
377 const records = document.querySelectorAll(
378 ".profileboard-record"
379 );
380 records.forEach(r => {
381 (r as HTMLInputElement).style.height = "44px";
382 });
383 }
384 }}
385 >
386 <i
387 className="triangle"
388 style={{
389 position: "relative",
390 left: "5px",
391 transform: "rotate(180deg)",
392 }}
393 ></i>{" "}
394 </button>
254 </div> 395 </div>
255 </div> 396 </div>
256 </div> 397 </div>
257 <hr /> 398 <hr />
258 <div id='profileboard-records'> 399 <div id="profileboard-records">
259 400 {game === "0" ? (
260 {game === "0" 401 profile.records
261 ? ( 402 .sort((a, b) => a.map_id - b.map_id)
262 403 .map((r, index) =>
263 profile.records.sort((a, b) => a.map_id - b.map_id) 404 Math.ceil((index + 1) / 20) === pageNumber ? (
264 .map((r, index) => ( 405 <button className="profileboard-record" key={index}>
265 406 {r.scores.map((e, i) => (
266 Math.ceil((index + 1) / 20) === pageNumber ? ( 407 <>
267 <button className="profileboard-record" key={index}> 408 {i !== 0 ? (
268 {r.scores.map((e, i) => (<> 409 <hr style={{ gridColumn: "1 / span 8" }} />
269 {i !== 0 ? <hr style={{ gridColumn: "1 / span 8" }} /> : ""} 410 ) : (
270 411 ""
271 <Link to={`/maps/${r.map_id}`}><span>{r.map_name}</span></Link> 412 )}
272 413
273 <span style={{ display: "grid" }}>{e.score_count}</span> 414 <Link to={`/maps/${r.map_id}`}>
415 <span>{r.map_name}</span>
416 </Link>
417
418 <span style={{ display: "grid" }}>
419 {e.score_count}
420 </span>
274 421
275 <span style={{ display: "grid" }}>{e.score_count - r.map_wr_count > 0 ? `+${e.score_count - r.map_wr_count}` : `-`}</span> 422 <span style={{ display: "grid" }}>
276 <span style={{ display: "grid" }}>{ticks_to_time(e.score_time)}</span> 423 {e.score_count - r.map_wr_count > 0
424 ? `+${e.score_count - r.map_wr_count}`
425 : `-`}
426 </span>
427 <span style={{ display: "grid" }}>
428 {ticks_to_time(e.score_time)}
429 </span>
277 <span> </span> 430 <span> </span>
278 {i === 0 ? <span>#{r.placement}</span> : <span> </span>} 431 {i === 0 ? (
432 <span>#{r.placement}</span>
433 ) : (
434 <span> </span>
435 )}
279 <span>{e.date.split("T")[0]}</span> 436 <span>{e.date.split("T")[0]}</span>
280 <span style={{ flexDirection: "row-reverse" }}> 437 <span style={{ flexDirection: "row-reverse" }}>
281 438 <button
282 <button style={{ marginRight: "10px" }} onClick={() => { message("Demo Information", `Demo ID: ${e.demo_id}`) }}><img src={ThreedotIcon} alt="demo_id" /></button> 439 style={{ marginRight: "10px" }}
283 <button onClick={() => { _delete_submission(r.map_id, e.record_id) }}><img src={DeleteIcon}></img></button> 440 onClick={() => {
284 <button onClick={() => window.location.href = `/api/v1/demos?uuid=${e.demo_id}`}><img src={DownloadIcon} alt="download" /></button> 441 message(
285 {i === 0 && r.scores.length > 1 ? <button onClick={() => { 442 "Demo Information",
286 (document.querySelectorAll(".profileboard-record")[index % 20] as HTMLInputElement).style.height === "44px" || 443 `Demo ID: ${e.demo_id}`
287 (document.querySelectorAll(".profileboard-record")[index % 20] as HTMLInputElement).style.height === "" ? 444 );
288 (document.querySelectorAll(".profileboard-record")[index % 20] as HTMLInputElement).style.height = `${r.scores.length * 46}px` : 445 }}
289 (document.querySelectorAll(".profileboard-record")[index % 20] as HTMLInputElement).style.height = "44px" 446 >
290 } 447 <img src={ThreedotIcon} alt="demo_id" />
291 }><img src={HistoryIcon} alt="history" /></button> : ""} 448 </button>
292 449 <button
450 onClick={() => {
451 _delete_submission(r.map_id, e.record_id);
452 }}
453 >
454 <img src={DeleteIcon} alt="delete icon"></img>
455 </button>
456 <button
457 onClick={() =>
458 (window.location.href = `/api/v1/demos?uuid=${e.demo_id}`)
459 }
460 >
461 <img src={DownloadIcon} alt="download" />
462 </button>
463 {i === 0 && r.scores.length > 1 ? (
464 <button
465 onClick={() => {
466 (
467 document.querySelectorAll(
468 ".profileboard-record"
469 )[index % 20] as HTMLInputElement
470 ).style.height === "44px" ||
471 (
472 document.querySelectorAll(
473 ".profileboard-record"
474 )[index % 20] as HTMLInputElement
475 ).style.height === ""
476 ? ((
477 document.querySelectorAll(
478 ".profileboard-record"
479 )[index % 20] as HTMLInputElement
480 ).style.height =
481 `${r.scores.length * 46}px`)
482 : ((
483 document.querySelectorAll(
484 ".profileboard-record"
485 )[index % 20] as HTMLInputElement
486 ).style.height = "44px");
487 }}
488 >
489 <img src={HistoryIcon} alt="history" />
490 </button>
491 ) : (
492 ""
493 )}
293 </span> 494 </span>
294 </>))} 495 </>
295 496 ))}
497 </button>
498 ) : (
499 ""
500 )
501 )
502 ) : maps ? (
503 maps
504 .filter(e => e.is_disabled === false)
505 .sort((a, b) => a.id - b.id)
506 .map((r, index) => {
507 if (Math.ceil((index + 1) / 20) === pageNumber) {
508 let record = profile.records.find(e => e.map_id === r.id);
509 return record === undefined ? (
510 <button
511 className="profileboard-record"
512 key={index}
513 style={{ backgroundColor: "#1b1b20" }}
514 >
515 <Link to={`/maps/${r.id}`}>
516 <span>{r.name}</span>
517 </Link>
518 <span style={{ display: "grid" }}>N/A</span>
519 <span style={{ display: "grid" }}>N/A</span>
520 <span>N/A</span>
521 <span> </span>
522 <span>N/A</span>
523 <span>N/A</span>
524 <span style={{ flexDirection: "row-reverse" }}></span>
296 </button> 525 </button>
297 ) : "" 526 ) : (
298 ))) : maps ? 527 <button className="profileboard-record" key={index}>
299 528 {record.scores.map((e, i) => (
300 maps.filter(e => e.is_disabled === false).sort((a, b) => a.id - b.id) 529 <>
301 .map((r, index) => { 530 {i !== 0 ? (
302 if (Math.ceil((index + 1) / 20) === pageNumber) { 531 <hr style={{ gridColumn: "1 / span 8" }} />
303 let record = profile.records.find((e) => e.map_id === r.id); 532 ) : (
304 return record === undefined ? ( 533 ""
305 <button className="profileboard-record" key={index} style={{ backgroundColor: "#1b1b20" }}> 534 )}
306 <Link to={`/maps/${r.id}`}><span>{r.name}</span></Link> 535 <Link to={`/maps/${r.id}`}>
307 <span style={{ display: "grid" }}>N/A</span> 536 <span>{r.name}</span>
308 <span style={{ display: "grid" }}>N/A</span> 537 </Link>
309 <span>N/A</span> 538 <span style={{ display: "grid" }}>
310 <span> </span> 539 {record!.scores[i].score_count}
311 <span>N/A</span> 540 </span>
312 <span>N/A</span> 541 <span style={{ display: "grid" }}>
313 <span style={{ flexDirection: "row-reverse" }}></span> 542 {record!.scores[i].score_count -
314 </button> 543 record!.map_wr_count >
315 ) : ( 544 0
316 <button className="profileboard-record" key={index}> 545 ? `+${record!.scores[i].score_count - record!.map_wr_count}`
317 {record.scores.map((e, i) => (<> 546 : `-`}
318 {i !== 0 ? <hr style={{ gridColumn: "1 / span 8" }} /> : ""} 547 </span>
319 <Link to={`/maps/${r.id}`}><span>{r.name}</span></Link> 548 <span style={{ display: "grid" }}>
320 <span style={{ display: "grid" }}>{record!.scores[i].score_count}</span> 549 {ticks_to_time(record!.scores[i].score_time)}
321 <span style={{ display: "grid" }}>{record!.scores[i].score_count - record!.map_wr_count > 0 ? `+${record!.scores[i].score_count - record!.map_wr_count}` : `-`}</span> 550 </span>
322 <span style={{ display: "grid" }}>{ticks_to_time(record!.scores[i].score_time)}</span>
323 <span> </span> 551 <span> </span>
324 {i === 0 ? <span>#{record!.placement}</span> : <span> </span>} 552 {i === 0 ? (
553 <span>#{record!.placement}</span>
554 ) : (
555 <span> </span>
556 )}
325 <span>{record!.scores[i].date.split("T")[0]}</span> 557 <span>{record!.scores[i].date.split("T")[0]}</span>
326 <span style={{ flexDirection: "row-reverse" }}> 558 <span style={{ flexDirection: "row-reverse" }}>
327 559 <button
328 <button onClick={() => { message("Demo Information", `Demo ID: ${e.demo_id}`) }}><img src={ThreedotIcon} alt="demo_id" /></button> 560 onClick={() => {
329 <button onClick={() => { _delete_submission(r.id, e.record_id) }}><img src={DeleteIcon}></img></button> 561 message(
330 <button onClick={() => window.location.href = `/api/v1/demos?uuid=${e.demo_id}`}><img src={DownloadIcon} alt="download" /></button> 562 "Demo Information",
331 {i === 0 && record!.scores.length > 1 ? <button onClick={() => { 563 `Demo ID: ${e.demo_id}`
332 (document.querySelectorAll(".profileboard-record")[index % 20] as HTMLInputElement).style.height === "44px" || 564 );
333 (document.querySelectorAll(".profileboard-record")[index % 20] as HTMLInputElement).style.height === "" ? 565 }}
334 (document.querySelectorAll(".profileboard-record")[index % 20] as HTMLInputElement).style.height = `${record!.scores.length * 46}px` : 566 >
335 (document.querySelectorAll(".profileboard-record")[index % 20] as HTMLInputElement).style.height = "44px" 567 <img src={ThreedotIcon} alt="demo_id" />
336 } 568 </button>
337 }><img src={HistoryIcon} alt="history" /></button> : ""} 569 <button
338 570 onClick={() => {
571 _delete_submission(r.id, e.record_id);
572 }}
573 >
574 <img src={DeleteIcon} alt="delete icon"></img>
575 </button>
576 <button
577 onClick={() =>
578 (window.location.href = `/api/v1/demos?uuid=${e.demo_id}`)
579 }
580 >
581 <img src={DownloadIcon} alt="download" />
582 </button>
583 {i === 0 && record!.scores.length > 1 ? (
584 <button
585 onClick={() => {
586 (
587 document.querySelectorAll(
588 ".profileboard-record"
589 )[index % 20] as HTMLInputElement
590 ).style.height === "44px" ||
591 (
592 document.querySelectorAll(
593 ".profileboard-record"
594 )[index % 20] as HTMLInputElement
595 ).style.height === ""
596 ? ((
597 document.querySelectorAll(
598 ".profileboard-record"
599 )[index % 20] as HTMLInputElement
600 ).style.height =
601 `${record!.scores.length * 46}px`)
602 : ((
603 document.querySelectorAll(
604 ".profileboard-record"
605 )[index % 20] as HTMLInputElement
606 ).style.height = "44px");
607 }}
608 >
609 <img src={HistoryIcon} alt="history" />
610 </button>
611 ) : (
612 ""
613 )}
339 </span> 614 </span>
340 </>))} 615 </>
341 </button> 616 ))}
342 617 </button>
343 ) 618 );
344 } else { return null } 619 } else {
345 }) : (<>{console.warn(maps)}</>)} 620 return null;
621 }
622 })
623 ) : (
624 <>{console.warn(maps)}</>
625 )}
346 </div> 626 </div>
347 </section> 627 </section>
348 </main> 628 </main>
diff --git a/frontend/src/pages/Rankings.tsx b/frontend/src/pages/Rankings.tsx
index 71aa427..dec0e17 100644
--- a/frontend/src/pages/Rankings.tsx
+++ b/frontend/src/pages/Rankings.tsx
@@ -2,146 +2,202 @@ import React, { useEffect } from "react";
2import { Helmet } from "react-helmet"; 2import { Helmet } from "react-helmet";
3 3
4import RankingEntry from "@components/RankingEntry"; 4import RankingEntry from "@components/RankingEntry";
5import { Ranking, SteamRanking, RankingType, SteamRankingType } from "@customTypes/Ranking"; 5import {
6 Ranking,
7 SteamRanking,
8 RankingType,
9 SteamRankingType,
10} from "@customTypes/Ranking";
6import { API } from "@api/Api"; 11import { API } from "@api/Api";
7 12
8import "@css/Rankings.css"; 13import "@css/Rankings.css";
9 14
10const Rankings: React.FC = () => { 15enum LeaderboardTypes {
11 const [leaderboardData, setLeaderboardData] = React.useState<Ranking | SteamRanking>(); 16 official,
12 const [currentLeaderboard, setCurrentLeaderboard] = React.useState<RankingType[] | SteamRankingType[]>(); 17 unofficial,
13 enum LeaderboardTypes { 18}
14 official,
15 unofficial
16 }
17 const [currentRankingType, setCurrentRankingType] = React.useState<LeaderboardTypes>(LeaderboardTypes.official);
18 19
19 const [leaderboardLoad, setLeaderboardLoad] = React.useState<boolean>(false); 20enum RankingCategories {
21 rankings_overall,
22 rankings_multiplayer,
23 rankings_singleplayer,
24}
20 25
21 enum RankingCategories { 26const Rankings: React.FC = () => {
22 rankings_overall, 27 const [leaderboardData, setLeaderboardData] = React.useState<
23 rankings_multiplayer, 28 Ranking | SteamRanking
24 rankings_singleplayer 29 >();
30 const [currentLeaderboard, setCurrentLeaderboard] = React.useState<
31 RankingType[] | SteamRankingType[]
32 >();
33 const [currentRankingType, setCurrentRankingType] =
34 React.useState<LeaderboardTypes>(LeaderboardTypes.official);
35
36 const [leaderboardLoad, setLeaderboardLoad] = React.useState<boolean>(false);
37
38 const [currentLeaderboardType, setCurrentLeaderboardType] =
39 React.useState<RankingCategories>(RankingCategories.rankings_singleplayer);
40 const [load, setLoad] = React.useState<boolean>(false);
41
42 const _fetch_rankings = React.useCallback(async () => {
43 setLeaderboardLoad(false);
44 const rankings = await API.get_official_rankings();
45 setLeaderboardData(rankings);
46 if (currentLeaderboardType === RankingCategories.rankings_singleplayer) {
47 setCurrentLeaderboard(rankings.rankings_singleplayer);
48 } else if (
49 currentLeaderboardType === RankingCategories.rankings_multiplayer
50 ) {
51 setCurrentLeaderboard(rankings.rankings_multiplayer);
52 } else {
53 setCurrentLeaderboard(rankings.rankings_overall);
25 } 54 }
26 const [currentLeaderboardType, setCurrentLeaderboardType] = React.useState<RankingCategories>(RankingCategories.rankings_singleplayer); 55 setLoad(true);
27 const [load, setLoad] = React.useState<boolean>(false); 56 setLeaderboardLoad(true);
28 57 }, [currentLeaderboardType]);
29 const _fetch_rankings = async () => { 58
30 setLeaderboardLoad(false); 59 const __dev_fetch_unofficial_rankings = async () => {
31 const rankings = await API.get_official_rankings(); 60 try {
32 setLeaderboardData(rankings); 61 setLeaderboardLoad(false);
33 if (currentLeaderboardType == RankingCategories.rankings_singleplayer) { 62 const rankings = await API.get_unofficial_rankings();
34 setCurrentLeaderboard(rankings.rankings_singleplayer) 63 setLeaderboardData(rankings);
35 } else if (currentLeaderboardType == RankingCategories.rankings_multiplayer) { 64 if (currentLeaderboardType === RankingCategories.rankings_singleplayer) {
36 setCurrentLeaderboard(rankings.rankings_multiplayer) 65 // console.log(_sort_rankings_steam(unofficialRanking.rankings_singleplayer))
37 } else { 66 setCurrentLeaderboard(rankings.rankings_singleplayer);
38 setCurrentLeaderboard(rankings.rankings_overall) 67 } else if (
39 } 68 currentLeaderboardType === RankingCategories.rankings_multiplayer
40 setLoad(true); 69 ) {
41 setLeaderboardLoad(true); 70 setCurrentLeaderboard(rankings.rankings_multiplayer);
71 } else {
72 setCurrentLeaderboard(rankings.rankings_overall);
73 }
74 setLeaderboardLoad(true);
75 } catch (e) {
76 console.log(e);
42 } 77 }
43 78 };
44 const __dev_fetch_unofficial_rankings = async () => { 79
45 try { 80 const _set_current_leaderboard = React.useCallback(
46 setLeaderboardLoad(false); 81 (ranking_cat: RankingCategories) => {
47 const rankings = await API.get_unofficial_rankings(); 82 if (ranking_cat === RankingCategories.rankings_singleplayer) {
48 setLeaderboardData(rankings); 83 setCurrentLeaderboard(leaderboardData!.rankings_singleplayer);
49 if (currentLeaderboardType == RankingCategories.rankings_singleplayer) { 84 } else if (ranking_cat === RankingCategories.rankings_multiplayer) {
50 // console.log(_sort_rankings_steam(unofficialRanking.rankings_singleplayer)) 85 setCurrentLeaderboard(leaderboardData!.rankings_multiplayer);
51 setCurrentLeaderboard(rankings.rankings_singleplayer) 86 } else {
52 } else if (currentLeaderboardType == RankingCategories.rankings_multiplayer) { 87 setCurrentLeaderboard(leaderboardData!.rankings_overall);
53 setCurrentLeaderboard(rankings.rankings_multiplayer) 88 }
54 } else { 89
55 setCurrentLeaderboard(rankings.rankings_overall) 90 setCurrentLeaderboardType(ranking_cat);
91 },
92 [leaderboardData]
93 );
94
95 // unused func
96 // const _set_leaderboard_type = (leaderboard_type: LeaderboardTypes) => {
97 // if (leaderboard_type === LeaderboardTypes.official) {
98 // _fetch_rankings();
99 // } else {
100 // }
101 // };
102
103 useEffect(() => {
104 _fetch_rankings();
105 }, [_fetch_rankings]);
106
107 return (
108 <main className="*:text-foreground">
109 <Helmet>
110 <title>LPHUB | Rankings</title>
111 </Helmet>
112 <section className="nav-container nav-1">
113 <div>
114 <button
115 onClick={() => {
116 _fetch_rankings();
117 setCurrentRankingType(LeaderboardTypes.official);
118 }}
119 className={`nav-1-btn ${currentRankingType === LeaderboardTypes.official ? "selected" : ""}`}
120 >
121 <span>Official (LPHUB)</span>
122 </button>
123 <button
124 onClick={() => {
125 __dev_fetch_unofficial_rankings();
126 setCurrentRankingType(LeaderboardTypes.unofficial);
127 }}
128 className={`nav-1-btn ${currentRankingType === LeaderboardTypes.unofficial ? "selected" : ""}`}
129 >
130 <span>Unofficial (Steam)</span>
131 </button>
132 </div>
133 </section>
134 <section className="nav-container nav-2">
135 <div>
136 <button
137 onClick={() =>
138 _set_current_leaderboard(RankingCategories.rankings_singleplayer)
56 } 139 }
57 setLeaderboardLoad(true); 140 className={`nav-2-btn ${currentLeaderboardType === RankingCategories.rankings_singleplayer ? "selected" : ""}`}
58 } catch (e) { 141 >
59 console.log(e) 142 <span>Singleplayer</span>
60 } 143 </button>
61 } 144 <button
62 145 onClick={() =>
63 const _set_current_leaderboard = (ranking_cat: RankingCategories) => { 146 _set_current_leaderboard(RankingCategories.rankings_multiplayer)
64 if (ranking_cat == RankingCategories.rankings_singleplayer) { 147 }
65 setCurrentLeaderboard(leaderboardData!.rankings_singleplayer); 148 className={`nav-2-btn ${currentLeaderboardType === RankingCategories.rankings_multiplayer ? "selected" : ""}`}
66 } else if (ranking_cat == RankingCategories.rankings_multiplayer) { 149 >
67 setCurrentLeaderboard(leaderboardData!.rankings_multiplayer); 150 <span>Cooperative</span>
68 } else { 151 </button>
69 setCurrentLeaderboard(leaderboardData!.rankings_overall); 152 <button
70 } 153 onClick={() =>
71 154 _set_current_leaderboard(RankingCategories.rankings_overall)
72 setCurrentLeaderboardType(ranking_cat); 155 }
73 } 156 className={`nav-2-btn ${currentLeaderboardType === RankingCategories.rankings_overall ? "selected" : ""}`}
74 157 >
75 const _set_leaderboard_type = (leaderboard_type: LeaderboardTypes) => { 158 <span>Overall</span>
76 if (leaderboard_type == LeaderboardTypes.official) { 159 </button>
77 _fetch_rankings(); 160 </div>
78 } else { 161 </section>
79 162
80 } 163 {load ? (
81 } 164 <section className="rankings-leaderboard">
82 165 <div className="ranks-container">
83 useEffect(() => { 166 <div className="leaderboard-entry header">
84 _fetch_rankings(); 167 <span>Rank</span>
85 if (load) { 168 <span>Player</span>
86 _set_current_leaderboard(RankingCategories.rankings_singleplayer); 169 <span>Portals</span>
87 } 170 </div>
88 }, [load]) 171
89 172 <div className="splitter"></div>
90 return ( 173
91 <main> 174 {leaderboardLoad &&
92 <Helmet> 175 currentLeaderboard?.map((curRankingData, i) => {
93 <title>LPHUB | Rankings</title> 176 return (
94 </Helmet> 177 <RankingEntry
95 <section className="nav-container nav-1"> 178 currentLeaderboardType={currentLeaderboardType}
96 <div> 179 curRankingData={curRankingData}
97 <button onClick={() => { _fetch_rankings(); setCurrentRankingType(LeaderboardTypes.official) }} className={`nav-1-btn ${currentRankingType == LeaderboardTypes.official ? "selected" : ""}`}> 180 key={i}
98 <span>Official (LPHUB)</span> 181 ></RankingEntry>
99 </button> 182 );
100 <button onClick={() => { __dev_fetch_unofficial_rankings(); setCurrentRankingType(LeaderboardTypes.unofficial) }} className={`nav-1-btn ${currentRankingType == LeaderboardTypes.unofficial ? "selected" : ""}`}> 183 })}
101 <span>Unofficial (Steam)</span> 184
102 </button> 185 {leaderboardLoad ? null : (
103 </div> 186 <div
104 </section> 187 style={{
105 <section className="nav-container nav-2"> 188 display: "flex",
106 <div> 189 justifyContent: "center",
107 <button onClick={() => _set_current_leaderboard(RankingCategories.rankings_singleplayer)} className={`nav-2-btn ${currentLeaderboardType == RankingCategories.rankings_singleplayer ? "selected" : ""}`}> 190 margin: "30px 0px",
108 <span>Singleplayer</span> 191 }}
109 </button> 192 >
110 <button onClick={() => _set_current_leaderboard(RankingCategories.rankings_multiplayer)} className={`nav-2-btn ${currentLeaderboardType == RankingCategories.rankings_multiplayer ? "selected" : ""}`}> 193 <span className="loader"></span>
111 <span>Cooperative</span> 194 </div>
112 </button> 195 )}
113 <button onClick={() => _set_current_leaderboard(RankingCategories.rankings_overall)} className={`nav-2-btn ${currentLeaderboardType == RankingCategories.rankings_overall ? "selected" : ""}`}> 196 </div>
114 <span>Overall</span> 197 </section>
115 </button> 198 ) : null}
116 </div> 199 </main>
117 </section> 200 );
118 201};
119 {load ?
120 <section className="rankings-leaderboard">
121 <div className="ranks-container">
122 <div className="leaderboard-entry header">
123 <span>Rank</span>
124 <span>Player</span>
125 <span>Portals</span>
126 </div>
127
128 <div className="splitter"></div>
129
130 {leaderboardLoad && currentLeaderboard?.map((curRankingData, i) => {
131 return <RankingEntry currentLeaderboardType={currentLeaderboardType} curRankingData={curRankingData} key={i}></RankingEntry>
132 })
133 }
134
135 {leaderboardLoad ? null :
136 <div style={{ display: "flex", justifyContent: "center", margin: "30px 0px" }}>
137 <span className="loader"></span>
138 </div>
139 }
140 </div>
141 </section>
142 : null}
143 </main>
144 )
145}
146 202
147export default Rankings; 203export default Rankings;
diff --git a/frontend/src/pages/Rules.tsx b/frontend/src/pages/Rules.tsx
index 9f57b7e..9c7885c 100644
--- a/frontend/src/pages/Rules.tsx
+++ b/frontend/src/pages/Rules.tsx
@@ -1,41 +1,37 @@
1import React from 'react'; 1import React from "react";
2import ReactMarkdown from 'react-markdown'; 2import ReactMarkdown from "react-markdown";
3import { Helmet } from 'react-helmet'; 3import { Helmet } from "react-helmet";
4
5import '@css/Rules.css';
6 4
7const Rules: React.FC = () => { 5const Rules: React.FC = () => {
6 const [rulesText, setRulesText] = React.useState<string>("");
8 7
9 const [rulesText, setRulesText] = React.useState<string>(""); 8 React.useEffect(() => {
10 9 const fetchRules = async () => {
11 React.useEffect(() => { 10 try {
12 const fetchRules = async () => { 11 const response = await fetch(
13 try { 12 "https://raw.githubusercontent.com/pektezol/lphub/main/RULES.md"
14 const response = await fetch( 13 );
15 'https://raw.githubusercontent.com/pektezol/lphub/main/RULES.md' 14 if (!response.ok) {
16 ); 15 throw new Error("Failed to fetch README");
17 if (!response.ok) { 16 }
18 throw new Error('Failed to fetch README'); 17 const rulesText = await response.text();
19 } 18 setRulesText(rulesText);
20 const rulesText = await response.text(); 19 } catch (error) {
21 setRulesText(rulesText); 20 console.error("Error fetching Rules:", error);
22 } catch (error) { 21 }
23 console.error('Error fetching Rules:', error); 22 // setRulesText(rulesText)
24 } 23 };
25 // setRulesText(rulesText) 24 fetchRules();
26 }; 25 }, []);
27 fetchRules();
28 }, []);
29
30 26
31 return ( 27 return (
32 <main> 28 <main className="ml-16 p-8 text-foreground font-[--font-barlow-semicondensed-regular] prose prose-invert max-w-none">
33 <Helmet> 29 <Helmet>
34 <title>LPHUB | Rules</title> 30 <title>LPHUB | Rules</title>
35 </Helmet> 31 </Helmet>
36 <ReactMarkdown>{rulesText}</ReactMarkdown> 32 <ReactMarkdown>{rulesText}</ReactMarkdown>
37 </main> 33 </main>
38 ); 34 );
39}; 35};
40 36
41export default Rules; 37export default Rules;
diff --git a/frontend/src/pages/User.tsx b/frontend/src/pages/User.tsx
index d43c0c6..8c699b1 100644
--- a/frontend/src/pages/User.tsx
+++ b/frontend/src/pages/User.tsx
@@ -1,15 +1,25 @@
1import React from 'react'; 1import React from "react";
2import { Link, useLocation, useNavigate } from 'react-router-dom'; 2import { Link, useLocation, useNavigate } from "react-router-dom";
3import { Helmet } from 'react-helmet'; 3import { Helmet } from "react-helmet";
4 4
5import { SteamIcon, TwitchIcon, YouTubeIcon, PortalIcon, FlagIcon, StatisticsIcon, SortIcon, ThreedotIcon, DownloadIcon, HistoryIcon } from '@images/Images'; 5import {
6import { UserProfile } from '@customTypes/Profile'; 6 SteamIcon,
7import { Game, GameChapters } from '@customTypes/Game'; 7 TwitchIcon,
8import { Map } from '@customTypes/Map'; 8 YouTubeIcon,
9import { API } from '@api/Api'; 9 PortalIcon,
10import { ticks_to_time } from '@utils/Time'; 10 FlagIcon,
11import "@css/Profile.css"; 11 StatisticsIcon,
12import useMessage from '@hooks/UseMessage'; 12 SortIcon,
13 ThreedotIcon,
14 DownloadIcon,
15 HistoryIcon,
16} from "@images/Images";
17import { UserProfile } from "@customTypes/Profile";
18import { Game, GameChapters } from "@customTypes/Game";
19import { Map } from "@customTypes/Map";
20import { API } from "@api/Api";
21import { ticks_to_time } from "@utils/Time";
22import useMessage from "@hooks/UseMessage";
13 23
14interface UserProps { 24interface UserProps {
15 profile?: UserProfile; 25 profile?: UserProfile;
@@ -18,7 +28,6 @@ interface UserProps {
18} 28}
19 29
20const User: React.FC<UserProps> = ({ token, profile, gameData }) => { 30const User: React.FC<UserProps> = ({ token, profile, gameData }) => {
21
22 const { message, MessageDialogComponent } = useMessage(); 31 const { message, MessageDialogComponent } = useMessage();
23 32
24 const [user, setUser] = React.useState<UserProfile | undefined>(undefined); 33 const [user, setUser] = React.useState<UserProfile | undefined>(undefined);
@@ -29,13 +38,15 @@ const User: React.FC<UserProps> = ({ token, profile, gameData }) => {
29 38
30 const [game, setGame] = React.useState("0"); 39 const [game, setGame] = React.useState("0");
31 const [chapter, setChapter] = React.useState("0"); 40 const [chapter, setChapter] = React.useState("0");
32 const [chapterData, setChapterData] = React.useState<GameChapters | null>(null); 41 const [chapterData, setChapterData] = React.useState<GameChapters | null>(
42 null
43 );
33 const [maps, setMaps] = React.useState<Map[]>([]); 44 const [maps, setMaps] = React.useState<Map[]>([]);
34 45
35 const location = useLocation(); 46 const location = useLocation();
36 const navigate = useNavigate(); 47 const navigate = useNavigate();
37 48
38 const _fetch_user = async () => { 49 const _fetch_user = React.useCallback(async () => {
39 const userID = location.pathname.split("/")[2]; 50 const userID = location.pathname.split("/")[2];
40 if (token && profile && profile.profile && profile.steam_id === userID) { 51 if (token && profile && profile.profile && profile.steam_id === userID) {
41 navigate("/profile"); 52 navigate("/profile");
@@ -43,9 +54,9 @@ const User: React.FC<UserProps> = ({ token, profile, gameData }) => {
43 } 54 }
44 const userData = await API.get_user(userID); 55 const userData = await API.get_user(userID);
45 setUser(userData); 56 setUser(userData);
46 }; 57 }, [location.pathname, token, profile, navigate]);
47 58
48 const _get_game_chapters = async () => { 59 const _get_game_chapters = React.useCallback(async () => {
49 if (game !== "0") { 60 if (game !== "0") {
50 const gameChapters = await API.get_games_chapters(game); 61 const gameChapters = await API.get_games_chapters(game);
51 setChapterData(gameChapters); 62 setChapterData(gameChapters);
@@ -53,9 +64,9 @@ const User: React.FC<UserProps> = ({ token, profile, gameData }) => {
53 setPageMax(Math.ceil(user!.records.length / 20)); 64 setPageMax(Math.ceil(user!.records.length / 20));
54 setPageNumber(1); 65 setPageNumber(1);
55 } 66 }
56 }; 67 }, [game, user]);
57 68
58 const _get_game_maps = async () => { 69 const _get_game_maps = React.useCallback(async () => {
59 if (chapter === "0") { 70 if (chapter === "0") {
60 const gameMaps = await API.get_game_maps(game); 71 const gameMaps = await API.get_game_maps(game);
61 setMaps(gameMaps); 72 setMaps(gameMaps);
@@ -67,251 +78,331 @@ const User: React.FC<UserProps> = ({ token, profile, gameData }) => {
67 setPageMax(Math.ceil(gameChapters.maps.length / 20)); 78 setPageMax(Math.ceil(gameChapters.maps.length / 20));
68 setPageNumber(1); 79 setPageNumber(1);
69 } 80 }
70 }; 81 }, [chapter, game]);
71 82
72 React.useEffect(() => { 83 React.useEffect(() => {
73 _fetch_user(); 84 _fetch_user();
74 }, [location]); 85 }, [location, _fetch_user]);
75 86
76 React.useEffect(() => { 87 React.useEffect(() => {
77 if (user) { 88 if (user) {
78 _get_game_chapters(); 89 _get_game_chapters();
79 } 90 }
80 }, [user, game, location]); 91 }, [user, game, location, _get_game_chapters]);
81 92
82 React.useEffect(() => { 93 React.useEffect(() => {
83 if (user && game !== "0") { 94 if (user && game !== "0") {
84 _get_game_maps(); 95 _get_game_maps();
85 } 96 }
86 }, [user, game, chapter, location]) 97 }, [user, game, chapter, location, _get_game_maps]);
87 98
88 if (!user) { 99 if (!user) {
89 return ( 100 return (
90 <></> 101 <div className="flex justify-center items-center h-[50vh] text-lg text-foreground">
102 Loading...
103 </div>
91 ); 104 );
92 }; 105 }
93 106
94 return ( 107 return (
95 <main> 108 <main className="ml-20 overflow-auto overflow-x-hidden relative w-[calc(100%px)] h-screen font-[--font-barlow-semicondensed-regular] text-foreground text-xl">
96 <Helmet> 109 <Helmet>
97 <title>LPHUB | {user.user_name}</title> 110 <title>LPHUB | {user.user_name}</title>
98 <meta name="description" content={user.user_name} /> 111 <meta name="description" content={user.user_name} />
99 </Helmet> 112 </Helmet>
113
100 {MessageDialogComponent} 114 {MessageDialogComponent}
101 <section id='section1' className='profile'> 115
102 <div> 116 <section className="m-5 bg-gradient-to-t from-[#202232] from-50% to-[#2b2e46] to-50% rounded-3xl p-[30px] mb-[30px] text-foreground">
103 <img src={user.avatar_link} alt="profile-image"></img> 117 <div className="grid grid-cols-[200px_1fr_auto] items-center gap-[25px] mb-[25px]">
104 </div> 118 <img
105 <div id='profile-top'> 119 src={user.avatar_link}
120 alt="Profile"
121 className="w-[120px] h-[120px] rounded-full border-[3px] border-[rgba(205,207,223,0.2)]"
122 />
106 <div> 123 <div>
107 <div>{user.user_name}</div> 124 <h1 className="m-0 mb-[10px] text-[50px] font-bold text-white font-[--font-barlow-semicondensed-regular]">
108 <div> 125 {user.user_name}
109 {user.country_code === "XX" ? "" : <img src={`https://flagcdn.com/w80/${user.country_code.toLowerCase()}.jpg`} alt={user.country_code} />} 126 </h1>
110 </div> 127 {user.country_code !== "XX" && (
111 <div> 128 <div className="flex items-center gap-3 mb-[15px]">
112 {user.titles.map(e => ( 129 <img
113 <span className="titles" style={{ backgroundColor: `#${e.color}` }}> 130 src={`https://flagcdn.com/w80/${user.country_code.toLowerCase()}.jpg`}
114 {e.name} 131 alt={user.country_code}
132 className="w-6 h-4 rounded-[10px]"
133 />
134 <span>{user.country_code}</span>
135 </div>
136 )}
137 <div className="flex flex-wrap gap-2">
138 {user.titles.map((title, index) => (
139 <span
140 key={index}
141 className="py-[6px] px-5 pt-[6px] rounded-[10px] text-lg font-normal text-white"
142 style={{ backgroundColor: `#${title.color}` }}
143 >
144 {title.name}
115 </span> 145 </span>
116 ))} 146 ))}
117 </div> 147 </div>
118 </div> 148 </div>
119 <div> 149 <div className="flex gap-[15px] items-center pr-[10px]">
120 {user.links.steam === "-" ? "" : <a href={user.links.steam}><img src={SteamIcon} alt="Steam" /></a>} 150 {user.links.steam !== "-" && (
121 {user.links.twitch === "-" ? "" : <a href={user.links.twitch}><img src={TwitchIcon} alt="Twitch" /></a>} 151 <a href={user.links.steam} className="flex items-center justify-center transition-all duration-200 hover:-translate-y-0.5">
122 {user.links.youtube === "-" ? "" : <a href={user.links.youtube}><img src={YouTubeIcon} alt="Youtube" /></a>} 152 <img src={SteamIcon} alt="Steam" className="h-[50px] px-[5px] scale-90 brightness-200" />
123 {user.links.p2sr === "-" ? "" : <a href={user.links.p2sr}><img src={PortalIcon} alt="P2SR" style={{ padding: "0" }} /></a>} 153 </a>
154 )}
155 {user.links.twitch !== "-" && (
156 <a href={user.links.twitch} className="flex items-center justify-center transition-all duration-200 hover:-translate-y-0.5">
157 <img src={TwitchIcon} alt="Twitch" className="h-[50px] px-[5px] scale-90 brightness-200" />
158 </a>
159 )}
160 {user.links.youtube !== "-" && (
161 <a href={user.links.youtube} className="flex items-center justify-center transition-all duration-200 hover:-translate-y-0.5">
162 <img src={YouTubeIcon} alt="YouTube" className="h-[50px] px-[5px] scale-90 brightness-200" />
163 </a>
164 )}
165 {user.links.p2sr !== "-" && (
166 <a href={user.links.p2sr} className="flex items-center justify-center transition-all duration-200 hover:-translate-y-0.5">
167 <img src={PortalIcon} alt="P2SR" className="h-[50px] px-[5px] scale-90 brightness-200" />
168 </a>
169 )}
124 </div> 170 </div>
125
126 </div> 171 </div>
127 <div id='profile-bottom'> 172
128 <div> 173 <div className="grid grid-cols-3 gap-3 mt-24">
129 <span>Overall</span> 174 <div className="m-3 bg-[#2b2e46] rounded-[20px] p-5 text-center grid place-items-center grid-rows-[40%_50%]">
130 <span>{user.rankings.overall.rank === 0 ? "N/A " : "#" + user.rankings.overall.rank + " "} 175 <div className="text-inherit text-lg">Overall</div>
131 <span>({user.rankings.overall.completion_count}/{user.rankings.overall.completion_total})</span> 176 <div className="text-white text-[40px]">
132 </span> 177 {user.rankings.overall.rank === 0 ? "N/A" : `#${user.rankings.overall.rank}`}
178 </div>
179 <div className="text-white text-xl">
180 {user.rankings.overall.completion_count}/{user.rankings.overall.completion_total}
181 </div>
133 </div> 182 </div>
134 <div> 183 <div className="m-3 bg-[#2b2e46] rounded-[20px] p-5 text-center grid place-items-center grid-rows-[40%_50%]">
135 <span>Singleplayer</span> 184 <div className="text-inherit text-lg">Singleplayer</div>
136 <span>{user.rankings.singleplayer.rank === 0 ? "N/A " : "#" + user.rankings.singleplayer.rank + " "} 185 <div className="text-white text-[40px]">
137 <span>({user.rankings.singleplayer.completion_count}/{user.rankings.singleplayer.completion_total})</span> 186 {user.rankings.singleplayer.rank === 0 ? "N/A" : `#${user.rankings.singleplayer.rank}`}
138 </span> 187 </div>
188 <div className="text-white text-xl">
189 {user.rankings.singleplayer.completion_count}/{user.rankings.singleplayer.completion_total}
190 </div>
139 </div> 191 </div>
140 <div> 192 <div className="m-3 bg-[#2b2e46] rounded-[20px] p-5 text-center grid place-items-center grid-rows-[40%_50%]">
141 <span>Cooperative</span> 193 <div className="text-inherit text-lg">Cooperative</div>
142 <span>{user.rankings.cooperative.rank === 0 ? "N/A " : "#" + user.rankings.cooperative.rank + " "} 194 <div className="text-white text-[40px]">
143 <span>({user.rankings.cooperative.completion_count}/{user.rankings.cooperative.completion_total})</span> 195 {user.rankings.cooperative.rank === 0 ? "N/A" : `#${user.rankings.cooperative.rank}`}
144 </span> 196 </div>
197 <div className="text-white text-xl">
198 {user.rankings.cooperative.completion_count}/{user.rankings.cooperative.completion_total}
199 </div>
145 </div> 200 </div>
146 </div> 201 </div>
147 </section> 202 </section>
148 203
149 204 <section className="m-5 h-[60px] grid grid-cols-2">
150 <section id='section2' className='profile'> 205 <button
151 <button onClick={() => setNavState(0)}><img src={FlagIcon} alt="" />&nbsp;Player Records</button> 206 className={`flex justify-center items-center gap-2 bg-[#2b2e46] border-0 text-inherit font-inherit text-2xl cursor-pointer transition-colors duration-100 rounded-l-3xl hover:bg-[#202232] ${
152 <button onClick={() => setNavState(1)}><img src={StatisticsIcon} alt="" />&nbsp;Statistics</button> 207 navState === 0 ? 'bg-[#202232]' : ''
208 }`}
209 onClick={() => setNavState(0)}
210 >
211 <img src={FlagIcon} alt="" className="w-5 h-5 scale-[1.2]" />
212 Player Records
213 </button>
214 <button
215 className={`flex justify-center items-center gap-2 bg-[#2b2e46] border-0 text-inherit font-inherit text-2xl cursor-pointer transition-colors duration-100 rounded-r-3xl hover:bg-[#202232] ${
216 navState === 1 ? 'bg-[#202232]' : ''
217 }`}
218 onClick={() => setNavState(1)}
219 >
220 <img src={StatisticsIcon} alt="" className="w-5 h-5 scale-[1.2]" />
221 Statistics
222 </button>
153 </section> 223 </section>
154 224
155 225 {navState === 0 && (
156 226 <section className="m-5 block bg-[#202232] rounded-3xl overflow-hidden">
157 227 <div className="grid grid-cols-2 mx-5 my-5 mt-[10px] mb-5">
158 228 <select
159 <section id='section3' className='profile1'> 229 className="h-[50px] rounded-3xl text-center text-inherit font-inherit text-2xl border-0 bg-[#2b2e46] mr-[10px]"
160 <div id='profileboard-nav'> 230 value={game}
161 {gameData === null ? <select>error</select> : 231 onChange={(e) => {
162 232 setGame(e.target.value);
163 <select id='select-game'
164 onChange={() => {
165 setGame((document.querySelector('#select-game') as HTMLInputElement).value);
166 setChapter("0"); 233 setChapter("0");
167 const chapterSelect = document.querySelector('#select-chapter') as HTMLSelectElement; 234 }}
168 if (chapterSelect) { 235 >
169 chapterSelect.value = "0"; 236 <option value="0">All Games</option>
170 } 237 {gameData?.map((g) => (
171 }}> 238 <option key={g.id} value={g.id}>
172 <option value={0} key={0}>All Scores</option> 239 {g.name}
173 {gameData.map((e, i) => ( 240 </option>
174 <option value={e.id} key={i + 1}>{e.name}</option> 241 ))}
175 ))}</select> 242 </select>
176 }
177 243
178 {game === "0" ? 244 <select
179 <select disabled> 245 className="h-[50px] rounded-3xl text-center text-inherit font-inherit text-2xl border-0 bg-[#2b2e46] mr-[10px] disabled:opacity-50"
180 <option>All Chapters</option> 246 value={chapter}
247 onChange={(e) => setChapter(e.target.value)}
248 disabled={game === "0"}
249 >
250 <option value="0">All Chapters</option>
251 {chapterData?.chapters
252 .filter(c => !c.is_disabled)
253 .map((c) => (
254 <option key={c.id} value={c.id}>
255 {c.name}
256 </option>
257 ))}
181 </select> 258 </select>
182 : chapterData === null ? <select></select> : 259 </div>
183 260
184 <select id='select-chapter' 261 <div className="h-[34px] grid text-xl pl-[60px] mx-5 my-0 grid-cols-[15%_15%_5%_15%_5%_15%_15%_15%]">
185 onChange={() => setChapter((document.querySelector('#select-chapter') as HTMLInputElement).value)}> 262 <div className="flex place-items-end cursor-pointer">
186 <option value="0" key="0">All Chapters</option> 263 <span>Map Name</span>
187 {chapterData.chapters.filter(e => e.is_disabled === false).map((e, i) => ( 264 <img src={SortIcon} alt="Sort" className="h-5 scale-[0.8]" />
188 <option value={e.id} key={i + 1}>{e.name}</option> 265 </div>
189 ))}</select> 266 <div className="flex place-items-end cursor-pointer">
190 } 267 <span>Portals</span>
191 </div> 268 <img src={SortIcon} alt="Sort" className="h-5 scale-[0.8]" />
192 <div id='profileboard-top'> 269 </div>
193 <span><span>Map Name</span><img src={SortIcon} alt="" /></span> 270 <div className="flex place-items-end cursor-pointer">
194 <span style={{ justifyContent: 'center' }}><span>Portals</span><img src={SortIcon} alt="" /></span> 271 <span>WRΔ</span>
195 <span style={{ justifyContent: 'center' }}><span>WRΔ </span><img src={SortIcon} alt="" /></span> 272 <img src={SortIcon} alt="Sort" className="h-5 scale-[0.8]" />
196 <span style={{ justifyContent: 'center' }}><span>Time</span><img src={SortIcon} alt="" /></span> 273 </div>
197 <span> </span> 274 <div className="flex place-items-end cursor-pointer">
198 <span><span>Rank</span><img src={SortIcon} alt="" /></span> 275 <span>Time</span>
199 <span><span>Date</span><img src={SortIcon} alt="" /></span> 276 <img src={SortIcon} alt="Sort" className="h-5 scale-[0.8]" />
200 <div id='page-number'> 277 </div>
201 <div> 278 <div></div>
202 <button onClick={() => { 279 <div className="flex place-items-end cursor-pointer">
203 if (pageNumber !== 1) { 280 <span>Rank</span>
204 setPageNumber(prevPageNumber => prevPageNumber - 1); 281 <img src={SortIcon} alt="Sort" className="h-5 scale-[0.8]" />
205 const records = document.querySelectorAll(".profileboard-record"); 282 </div>
206 records.forEach((r) => { 283 <div className="flex place-items-end cursor-pointer">
207 (r as HTMLInputElement).style.height = "44px"; 284 <span>Date</span>
208 }); 285 <img src={SortIcon} alt="Sort" className="h-5 scale-[0.8]" />
209 } 286 </div>
210 }} 287 <div className="flex items-center gap-[10px] justify-center">
211 ><i className='triangle' style={{ position: 'relative', left: '-5px', }}></i> </button> 288 <button
212 <span>{pageNumber}/{pageMax}</span> 289 className="w-8 h-8 border border-[#2b2e46] bg-[#2b2e46] rounded cursor-pointer flex items-center justify-center text-foreground transition-colors duration-100 hover:bg-[#202232] disabled:opacity-50 disabled:cursor-not-allowed"
213 <button onClick={() => { 290 onClick={() => setPageNumber(Math.max(1, pageNumber - 1))}
214 if (pageNumber !== pageMax) { 291 disabled={pageNumber === 1}
215 setPageNumber(prevPageNumber => prevPageNumber + 1); 292 >
216 const records = document.querySelectorAll(".profileboard-record"); 293
217 records.forEach((r) => { 294 </button>
218 (r as HTMLInputElement).style.height = "44px"; 295 <span className="text-sm text-foreground">{pageNumber}/{pageMax}</span>
219 }); 296 <button
220 } 297 className="w-8 h-8 border border-[#2b2e46] bg-[#2b2e46] rounded cursor-pointer flex items-center justify-center text-foreground transition-colors duration-100 hover:bg-[#202232] disabled:opacity-50 disabled:cursor-not-allowed"
221 }} 298 onClick={() => setPageNumber(Math.min(pageMax, pageNumber + 1))}
222 ><i className='triangle' style={{ position: 'relative', left: '5px', transform: 'rotate(180deg)' }}></i> </button> 299 disabled={pageNumber === pageMax}
300 >
301
302 </button>
223 </div> 303 </div>
224 </div> 304 </div>
225 </div>
226 <hr />
227 <div id='profileboard-records'>
228
229 {game === "0"
230 ? (
231
232 user.records.sort((a, b) => a.map_id - b.map_id)
233 .map((r, index) => (
234 305
306 <div>
307 {game === "0" ? (
308 user.records
309 .sort((a, b) => a.map_id - b.map_id)
310 .map((record, index) =>
235 Math.ceil((index + 1) / 20) === pageNumber ? ( 311 Math.ceil((index + 1) / 20) === pageNumber ? (
236 <button className="profileboard-record" key={index}> 312 <div key={index} className="w-[calc(100%-40px)] mx-5 my-0 mt-[10px] h-11 rounded-[20px] pl-[40px] text-xl text-inherit font-inherit border-0 transition-colors duration-100 bg-[#2b2e46] grid grid-cols-[15%_15%_5%_15%_5%_15%_15%_15%] overflow-hidden whitespace-nowrap cursor-pointer hover:bg-[#202232]">
237 {r.scores.map((e, i) => (<> 313 <Link to={`/maps/${record.map_id}`} className="text-[#3c91e6] no-underline font-inherit flex place-items-center h-11 hover:underline">
238 {i !== 0 ? <hr style={{ gridColumn: "1 / span 8" }} /> : ""} 314 {record.map_name}
239 315 </Link>
240 <Link to={`/maps/${r.map_id}`}><span>{r.map_name}</span></Link> 316 <span className="flex place-items-center h-11">{record.scores[0]?.score_count || 'N/A'}</span>
241 317 <span className={`flex place-items-center h-11 ${record.scores[0]?.score_count - record.map_wr_count > 0 ? 'text-[#dc3545]' : ''}`}>
242 <span style={{ display: "grid" }}>{e.score_count}</span> 318 {record.scores[0]?.score_count - record.map_wr_count > 0
243 319 ? `+${record.scores[0].score_count - record.map_wr_count}`
244 <span style={{ display: "grid" }}>{e.score_count - r.map_wr_count > 0 ? `+${e.score_count - r.map_wr_count}` : `-`}</span> 320 : '–'}
245 <span style={{ display: "grid" }}>{ticks_to_time(e.score_time)}</span> 321 </span>
246 <span> </span> 322 <span className="flex place-items-center h-11">{record.scores[0] ? ticks_to_time(record.scores[0].score_time) : 'N/A'}</span>
247 {i === 0 ? <span>#{r.placement}</span> : <span> </span>} 323 <span className="flex place-items-center h-11"></span>
248 <span>{e.date.split("T")[0]}</span> 324 <span className="flex place-items-center h-11 font-semibold">#{record.placement}</span>
249 <span style={{ flexDirection: "row-reverse" }}> 325 <span className="flex place-items-center h-11">{record.scores[0]?.date.split("T")[0] || 'N/A'}</span>
250 326 <div className="flex gap-[5px] justify-end flex-row-reverse place-items-center h-11">
251 <button onClick={() => { message("Demo Information", `Demo ID: ${e.demo_id}`) }}><img src={ThreedotIcon} alt="demo_id" /></button> 327 <button
252 <button onClick={() => window.location.href = `/api/v1/demos?uuid=${e.demo_id}`}><img src={DownloadIcon} alt="download" /></button> 328 className="bg-transparent border-0 cursor-pointer transition-colors duration-100 p-0.5 hover:bg-[rgba(32,34,50,0.5)]"
253 {i === 0 && r.scores.length > 1 ? <button onClick={() => { 329 onClick={() => message("Demo Information", `Demo ID: ${record.scores[0]?.demo_id}`)}
254 (document.querySelectorAll(".profileboard-record")[index % 20] as HTMLInputElement).style.height === "44px" || 330 title="Demo Info"
255 (document.querySelectorAll(".profileboard-record")[index % 20] as HTMLInputElement).style.height === "" ? 331 >
256 (document.querySelectorAll(".profileboard-record")[index % 20] as HTMLInputElement).style.height = `${r.scores.length * 46}px` : 332 <img src={ThreedotIcon} alt="Info" className="w-4 h-4" />
257 (document.querySelectorAll(".profileboard-record")[index % 20] as HTMLInputElement).style.height = "44px" 333 </button>
258 } 334 <button
259 }><img src={HistoryIcon} alt="history" /></button> : ""} 335 className="bg-transparent border-0 cursor-pointer transition-colors duration-100 p-0.5 hover:bg-[rgba(32,34,50,0.5)]"
260 336 onClick={() => window.location.href = `/api/v1/demos?uuid=${record.scores[0]?.demo_id}`}
261 </span> 337 title="Download Demo"
262 </>))} 338 >
263 339 <img src={DownloadIcon} alt="Download" className="w-4 h-4" />
264 </button> 340 </button>
265 ) : "" 341 {record.scores.length > 1 && (
266 ))) : maps ? 342 <button className="bg-transparent border-0 cursor-pointer transition-colors duration-100 p-0.5 hover:bg-[rgba(32,34,50,0.5)]" title="View History">
267 343 <img src={HistoryIcon} alt="History" className="w-4 h-4" />
268 maps.filter(e => e.is_disabled === false).sort((a, b) => a.id - b.id) 344 </button>
269 .map((r, index) => { 345 )}
270 if (Math.ceil((index + 1) / 20) === pageNumber) { 346 </div>
271 let record = user.records.find((e) => e.map_id === r.id); 347 </div>
272 return record === undefined ? ( 348 ) : null
273 <button className="profileboard-record" key={index} style={{ backgroundColor: "#1b1b20" }}> 349 )
274 <Link to={`/maps/${r.id}`}><span>{r.name}</span></Link> 350 ) : (
275 <span style={{ display: "grid" }}>N/A</span> 351 maps
276 <span style={{ display: "grid" }}>N/A</span> 352 ?.filter(map => !map.is_disabled)
277 <span>N/A</span> 353 .sort((a, b) => a.id - b.id)
278 <span> </span> 354 .map((map, index) => {
279 <span>N/A</span> 355 if (Math.ceil((index + 1) / 20) !== pageNumber) return null;
280 <span>N/A</span> 356
281 <span style={{ flexDirection: "row-reverse" }}></span> 357 const record = user.records.find(r => r.map_id === map.id);
282 </button> 358
283 ) : ( 359 return (
284 <button className="profileboard-record" key={index}> 360 <div key={index} className={`w-[calc(100%-40px)] mx-5 my-0 mt-[10px] h-11 rounded-[20px] pl-[40px] text-xl text-inherit font-inherit border-0 transition-colors duration-100 bg-[#2b2e46] grid grid-cols-[15%_15%_5%_15%_5%_15%_15%_15%] overflow-hidden whitespace-nowrap cursor-pointer hover:bg-[#202232] ${!record ? 'opacity-65' : ''}`}>
285 {record.scores.map((e, i) => (<> 361 <Link to={`/maps/${map.id}`} className="text-[#3c91e6] no-underline font-inherit flex place-items-center h-11 hover:underline">
286 {i !== 0 ? <hr style={{ gridColumn: "1 / span 8" }} /> : ""} 362 {map.name}
287 <Link to={`/maps/${r.id}`}><span>{r.name}</span></Link> 363 </Link>
288 <span style={{ display: "grid" }}>{record!.scores[i].score_count}</span> 364 <span className="flex place-items-center h-11">{record?.scores[0]?.score_count || 'N/A'}</span>
289 <span style={{ display: "grid" }}>{record!.scores[i].score_count - record!.map_wr_count > 0 ? `+${record!.scores[i].score_count - record!.map_wr_count}` : `-`}</span> 365 <span className={`flex place-items-center h-11 ${record?.scores[0]?.score_count && record.scores[0].score_count - record.map_wr_count > 0 ? 'text-[#dc3545]' : ''}`}>
290 <span style={{ display: "grid" }}>{ticks_to_time(record!.scores[i].score_time)}</span> 366 {record?.scores[0]?.score_count && record.scores[0].score_count - record.map_wr_count > 0
291 <span> </span> 367 ? `+${record.scores[0].score_count - record.map_wr_count}`
292 {i === 0 ? <span>#{record!.placement}</span> : <span> </span>} 368 : '–'}
293 <span>{record!.scores[i].date.split("T")[0]}</span> 369 </span>
294 <span style={{ flexDirection: "row-reverse" }}> 370 <span className="flex place-items-center h-11">{record?.scores[0] ? ticks_to_time(record.scores[0].score_time) : 'N/A'}</span>
295 371 <span className="flex place-items-center h-11"></span>
296 <button onClick={() => { message("Demo Information", `Demo ID: ${e.demo_id}`) }}><img src={ThreedotIcon} alt="demo_id" /></button> 372 <span className="flex place-items-center h-11 font-semibold">{record ? `#${record.placement}` : 'N/A'}</span>
297 <button onClick={() => window.location.href = `/api/v1/demos?uuid=${e.demo_id}`}><img src={DownloadIcon} alt="download" /></button> 373 <span className="flex place-items-center h-11">{record?.scores[0]?.date.split("T")[0] || 'N/A'}</span>
298 {i === 0 && record!.scores.length > 1 ? <button onClick={() => { 374 <div className="flex gap-[5px] justify-end flex-row-reverse place-items-center h-11">
299 (document.querySelectorAll(".profileboard-record")[index % 20] as HTMLInputElement).style.height === "44px" || 375 {record?.scores[0] && (
300 (document.querySelectorAll(".profileboard-record")[index % 20] as HTMLInputElement).style.height === "" ? 376 <>
301 (document.querySelectorAll(".profileboard-record")[index % 20] as HTMLInputElement).style.height = `${record!.scores.length * 46}px` : 377 <button
302 (document.querySelectorAll(".profileboard-record")[index % 20] as HTMLInputElement).style.height = "44px" 378 className="bg-transparent border-0 cursor-pointer transition-colors duration-100 p-0.5 hover:bg-[rgba(32,34,50,0.5)]"
303 } 379 onClick={() => message("Demo Information", `Demo ID: ${record.scores[0].demo_id}`)}
304 }><img src={HistoryIcon} alt="history" /></button> : ""} 380 title="Demo Info"
305 381 >
306 </span> 382 <img src={ThreedotIcon} alt="Info" className="w-4 h-4" />
307 </>))} 383 </button>
308 </button> 384 <button
309 385 className="bg-transparent border-0 cursor-pointer transition-colors duration-100 p-0.5 hover:bg-[rgba(32,34,50,0.5)]"
310 ) 386 onClick={() => window.location.href = `/api/v1/demos?uuid=${record.scores[0].demo_id}`}
311 } else { return null } 387 title="Download Demo"
312 }) : (<>{console.warn(maps)}</>)} 388 >
313 </div> 389 <img src={DownloadIcon} alt="Download" className="w-4 h-4" />
314 </section> 390 </button>
391 {record.scores.length > 1 && (
392 <button className="bg-transparent border-0 cursor-pointer transition-colors duration-100 p-0.5 hover:bg-[rgba(32,34,50,0.5)]" title="View History">
393 <img src={HistoryIcon} alt="History" className="w-4 h-4" />
394 </button>
395 )}
396 </>
397 )}
398 </div>
399 </div>
400 );
401 })
402 )}
403 </div>
404 </section>
405 )}
315 </main> 406 </main>
316 ); 407 );
317}; 408};
diff --git a/frontend/src/types/Chapters.ts b/frontend/src/types/Chapters.ts
index 1d48306..5b494ca 100644
--- a/frontend/src/types/Chapters.ts
+++ b/frontend/src/types/Chapters.ts
@@ -2,18 +2,18 @@ import type { Game } from "@customTypes/Game";
2import type { Map } from "@customTypes/Map"; 2import type { Map } from "@customTypes/Map";
3 3
4interface Chapter { 4interface Chapter {
5 id: number; 5 id: number;
6 name: string; 6 name: string;
7 image: string; 7 image: string;
8 is_disabled: boolean; 8 is_disabled: boolean;
9} 9}
10 10
11export interface GameChapter { 11export interface GameChapter {
12 chapter: Chapter; 12 chapter: Chapter;
13 maps: Map[]; 13 maps: Map[];
14} 14}
15 15
16export interface GamesChapters { 16export interface GamesChapters {
17 game: Game; 17 game: Game;
18 chapters: Chapter[]; 18 chapters: Chapter[];
19} \ No newline at end of file 19}
diff --git a/frontend/src/types/Content.ts b/frontend/src/types/Content.ts
index 775fab4..77b3970 100644
--- a/frontend/src/types/Content.ts
+++ b/frontend/src/types/Content.ts
@@ -6,18 +6,18 @@ export interface ModMenuContent {
6 showcase: string; 6 showcase: string;
7 description: string; 7 description: string;
8 category_id: number; 8 category_id: number;
9}; 9}
10 10
11export interface MapDiscussionContent { 11export interface MapDiscussionContent {
12 title: string; 12 title: string;
13 content: string; 13 content: string;
14}; 14}
15 15
16export interface MapDiscussionCommentContent { 16export interface MapDiscussionCommentContent {
17 comment: string; 17 comment: string;
18}; 18}
19 19
20export interface UploadRunContent { 20export interface UploadRunContent {
21 host_demo: File | null; 21 host_demo: File | null;
22 partner_demo: File | null; 22 partner_demo: File | null;
23}; 23}
diff --git a/frontend/src/types/Game.ts b/frontend/src/types/Game.ts
index 1a80341..0e7dc80 100644
--- a/frontend/src/types/Game.ts
+++ b/frontend/src/types/Game.ts
@@ -1,5 +1,4 @@
1import type { Map } from '@customTypes/Map'; 1import type { Map } from "@customTypes/Map";
2
3 2
4export interface Game { 3export interface Game {
5 id: number; 4 id: number;
@@ -7,31 +6,31 @@ export interface Game {
7 image: string; 6 image: string;
8 is_coop: boolean; 7 is_coop: boolean;
9 category_portals: GameCategoryPortals[]; 8 category_portals: GameCategoryPortals[];
10}; 9}
11 10
12export interface GameChapters { 11export interface GameChapters {
13 game: Game; 12 game: Game;
14 chapters: Chapter[]; 13 chapters: Chapter[];
15}; 14}
16 15
17export interface GameMaps { 16export interface GameMaps {
18 game: Game; 17 game: Game;
19 maps: Map[]; 18 maps: Map[];
20}; 19}
21 20
22export interface Category { 21export interface Category {
23 id: number; 22 id: number;
24 name: string; 23 name: string;
25}; 24}
26 25
27interface Chapter { 26interface Chapter {
28 id: number; 27 id: number;
29 name: string; 28 name: string;
30 image: string; 29 image: string;
31 is_disabled: boolean; 30 is_disabled: boolean;
32}; 31}
33 32
34export interface GameCategoryPortals { 33export interface GameCategoryPortals {
35 category: Category; 34 category: Category;
36 portal_count: number; 35 portal_count: number;
37}; 36}
diff --git a/frontend/src/types/Map.ts b/frontend/src/types/Map.ts
index 4f8eabf..a5c9404 100644
--- a/frontend/src/types/Map.ts
+++ b/frontend/src/types/Map.ts
@@ -1,6 +1,6 @@
1import type { Category, GameCategoryPortals } from '@customTypes/Game'; 1import type { Category, GameCategoryPortals } from "@customTypes/Game";
2import type { Pagination } from '@customTypes/Pagination'; 2import type { Pagination } from "@customTypes/Pagination";
3import type { UserShort } from '@customTypes/Profile'; 3import type { UserShort } from "@customTypes/Profile";
4 4
5export interface Map { 5export interface Map {
6 id: number; 6 id: number;
@@ -9,15 +9,15 @@ export interface Map {
9 is_disabled: boolean; 9 is_disabled: boolean;
10 difficulty: number; 10 difficulty: number;
11 category_portals: GameCategoryPortals[]; 11 category_portals: GameCategoryPortals[];
12}; 12}
13 13
14export interface MapDiscussion { 14export interface MapDiscussion {
15 discussion: MapDiscussionsDetail; 15 discussion: MapDiscussionsDetail;
16}; 16}
17 17
18export interface MapDiscussions { 18export interface MapDiscussions {
19 discussions: MapDiscussionsDetail[]; 19 discussions: MapDiscussionsDetail[];
20}; 20}
21 21
22export interface MapDiscussionsDetail { 22export interface MapDiscussionsDetail {
23 id: number; 23 id: number;
@@ -27,19 +27,21 @@ export interface MapDiscussionsDetail {
27 comments: MapDiscussionDetailComment[]; 27 comments: MapDiscussionDetailComment[];
28 created_at: string; 28 created_at: string;
29 updated_at: string; 29 updated_at: string;
30}; 30}
31 31
32interface MapDiscussionDetailComment { 32interface MapDiscussionDetailComment {
33 comment: string; 33 comment: string;
34 date: string; 34 date: string;
35 user: UserShort; 35 user: UserShort;
36}; 36}
37 37
38export interface MapLeaderboard { 38export interface MapLeaderboard {
39 map: MapSummaryMap; 39 map: MapSummaryMap;
40 records: MapLeaderboardRecordSingleplayer[] | MapLeaderboardRecordMultiplayer[]; 40 records:
41 | MapLeaderboardRecordSingleplayer[]
42 | MapLeaderboardRecordMultiplayer[];
41 pagination: Pagination; 43 pagination: Pagination;
42}; 44}
43 45
44export interface MapLeaderboardRecordSingleplayer { 46export interface MapLeaderboardRecordSingleplayer {
45 kind: "singleplayer"; 47 kind: "singleplayer";
@@ -50,7 +52,7 @@ export interface MapLeaderboardRecordSingleplayer {
50 user: UserShort; 52 user: UserShort;
51 demo_id: string; 53 demo_id: string;
52 record_date: string; 54 record_date: string;
53}; 55}
54 56
55export interface MapLeaderboardRecordMultiplayer { 57export interface MapLeaderboardRecordMultiplayer {
56 kind: "multiplayer"; 58 kind: "multiplayer";
@@ -63,13 +65,12 @@ export interface MapLeaderboardRecordMultiplayer {
63 host_demo_id: string; 65 host_demo_id: string;
64 partner_demo_id: string; 66 partner_demo_id: string;
65 record_date: string; 67 record_date: string;
66}; 68}
67
68 69
69export interface MapSummary { 70export interface MapSummary {
70 map: MapSummaryMap; 71 map: MapSummaryMap;
71 summary: MapSummaryDetails; 72 summary: MapSummaryDetails;
72}; 73}
73 74
74interface MapSummaryMap { 75interface MapSummaryMap {
75 id: number; 76 id: number;
@@ -84,7 +85,7 @@ interface MapSummaryMap {
84 85
85interface MapSummaryDetails { 86interface MapSummaryDetails {
86 routes: MapSummaryDetailsRoute[]; 87 routes: MapSummaryDetailsRoute[];
87}; 88}
88 89
89interface MapSummaryDetailsRoute { 90interface MapSummaryDetailsRoute {
90 route_id: number; 91 route_id: number;
@@ -94,16 +95,15 @@ interface MapSummaryDetailsRoute {
94 completion_count: number; 95 completion_count: number;
95 description: string; 96 description: string;
96 showcase: string; 97 showcase: string;
97}; 98}
98 99
99interface MapSummaryDetailsRouteHistory { 100interface MapSummaryDetailsRouteHistory {
100 runner_name: string; 101 runner_name: string;
101 score_count: number; 102 score_count: number;
102 date: string; 103 date: string;
103}; 104}
104 105
105export interface MapDeleteEndpoint { 106export interface MapDeleteEndpoint {
106 map_id: number; 107 map_id: number;
107 record_id: number; 108 record_id: number;
108} 109}
109
diff --git a/frontend/src/types/MapNames.ts b/frontend/src/types/MapNames.ts
index b6313e7..9ea9851 100644
--- a/frontend/src/types/MapNames.ts
+++ b/frontend/src/types/MapNames.ts
@@ -1,127 +1,127 @@
1export const MapNames: { [key: string]: number } = { 1export const MapNames: { [key: string]: number } = {
2 "sp_a1_intro1": 1, 2 sp_a1_intro1: 1,
3 "sp_a1_intro2": 2, 3 sp_a1_intro2: 2,
4 "sp_a1_intro3": 3, 4 sp_a1_intro3: 3,
5 "sp_a1_intro4": 4, 5 sp_a1_intro4: 4,
6 "sp_a1_intro5": 5, 6 sp_a1_intro5: 5,
7 "sp_a1_intro6": 6, 7 sp_a1_intro6: 6,
8 "sp_a1_intro7": 7, 8 sp_a1_intro7: 7,
9 "sp_a1_wakeup": 8, 9 sp_a1_wakeup: 8,
10 "sp_a2_intro": 9, 10 sp_a2_intro: 9,
11 11
12 "sp_a2_laser_intro": 10, 12 sp_a2_laser_intro: 10,
13 "sp_a2_laser_stairs": 11, 13 sp_a2_laser_stairs: 11,
14 "sp_a2_dual_lasers": 12, 14 sp_a2_dual_lasers: 12,
15 "sp_a2_laser_over_goo": 13, 15 sp_a2_laser_over_goo: 13,
16 "sp_a2_catapult_intro": 14, 16 sp_a2_catapult_intro: 14,
17 "sp_a2_trust_fling": 15, 17 sp_a2_trust_fling: 15,
18 "sp_a2_pit_flings": 16, 18 sp_a2_pit_flings: 16,
19 "sp_a2_fizzler_intro": 17, 19 sp_a2_fizzler_intro: 17,
20 20
21 "sp_a2_sphere_peek": 18, 21 sp_a2_sphere_peek: 18,
22 "sp_a2_ricochet": 19, 22 sp_a2_ricochet: 19,
23 "sp_a2_bridge_intro": 20, 23 sp_a2_bridge_intro: 20,
24 "sp_a2_bridge_the_gap": 21, 24 sp_a2_bridge_the_gap: 21,
25 "sp_a2_turret_intro": 22, 25 sp_a2_turret_intro: 22,
26 "sp_a2_laser_relays": 23, 26 sp_a2_laser_relays: 23,
27 "sp_a2_turret_blocker": 24, 27 sp_a2_turret_blocker: 24,
28 "sp_a2_laser_vs_turret": 25, 28 sp_a2_laser_vs_turret: 25,
29 "sp_a2_pull_the_rug": 26, 29 sp_a2_pull_the_rug: 26,
30 30
31 "sp_a2_column_blocker": 27, 31 sp_a2_column_blocker: 27,
32 "sp_a2_laser_chaining": 28, 32 sp_a2_laser_chaining: 28,
33 "sp_a2_triple_laser": 29, 33 sp_a2_triple_laser: 29,
34 "sp_a2_bts1": 30, 34 sp_a2_bts1: 30,
35 "sp_a2_bts2": 31, 35 sp_a2_bts2: 31,
36 36
37 "sp_a2_bts3": 32, 37 sp_a2_bts3: 32,
38 "sp_a2_bts4": 33, 38 sp_a2_bts4: 33,
39 "sp_a2_bts5": 34, 39 sp_a2_bts5: 34,
40 "sp_a2_core": 35, 40 sp_a2_core: 35,
41 41
42 "sp_a3_01": 36, 42 sp_a3_01: 36,
43 "sp_a3_03": 37, 43 sp_a3_03: 37,
44 "sp_a3_jump_intro": 38, 44 sp_a3_jump_intro: 38,
45 "sp_a3_bomb_flings": 39, 45 sp_a3_bomb_flings: 39,
46 "sp_a3_crazy_box": 40, 46 sp_a3_crazy_box: 40,
47 "sp_a3_transition01": 41, 47 sp_a3_transition01: 41,
48 48
49 "sp_a3_speed_ramp": 42, 49 sp_a3_speed_ramp: 42,
50 "sp_a3_speed_flings": 43, 50 sp_a3_speed_flings: 43,
51 "sp_a3_portal_intro": 44, 51 sp_a3_portal_intro: 44,
52 "sp_a3_end": 45, 52 sp_a3_end: 45,
53 53
54 "sp_a4_intro": 46, 54 sp_a4_intro: 46,
55 "sp_a4_tb_intro": 47, 55 sp_a4_tb_intro: 47,
56 "sp_a4_tb_trust_drop": 48, 56 sp_a4_tb_trust_drop: 48,
57 "sp_a4_tb_wall_button": 49, 57 sp_a4_tb_wall_button: 49,
58 "sp_a4_tb_polarity": 50, 58 sp_a4_tb_polarity: 50,
59 "sp_a4_tb_catch": 51, 59 sp_a4_tb_catch: 51,
60 "sp_a4_stop_the_box": 52, 60 sp_a4_stop_the_box: 52,
61 "sp_a4_laser_catapult": 53, 61 sp_a4_laser_catapult: 53,
62 "sp_a4_laser_platform": 54, 62 sp_a4_laser_platform: 54,
63 "sp_a4_speed_tb_catch": 55, 63 sp_a4_speed_tb_catch: 55,
64 "sp_a4_jump_polarity": 56, 64 sp_a4_jump_polarity: 56,
65 65
66 "sp_a4_finale1": 57, 66 sp_a4_finale1: 57,
67 "sp_a4_finale2": 58, 67 sp_a4_finale2: 58,
68 "sp_a4_finale3": 59, 68 sp_a4_finale3: 59,
69 "sp_a4_finale4": 60, 69 sp_a4_finale4: 60,
70 70
71 "mp_coop_start": 61, 71 mp_coop_start: 61,
72 "mp_coop_lobby_3": 62, 72 mp_coop_lobby_3: 62,
73 73
74 "mp_coop_doors": 63, 74 mp_coop_doors: 63,
75 "mp_coop_race_2": 64, 75 mp_coop_race_2: 64,
76 "mp_coop_laser_2": 65, 76 mp_coop_laser_2: 65,
77 "mp_coop_rat_maze": 66, 77 mp_coop_rat_maze: 66,
78 "mp_coop_laser_crusher": 67, 78 mp_coop_laser_crusher: 67,
79 "mp_coop_teambts": 68, 79 mp_coop_teambts: 68,
80 80
81 "mp_coop_fling_3": 69, 81 mp_coop_fling_3: 69,
82 "mp_coop_infinifling_train": 70, 82 mp_coop_infinifling_train: 70,
83 "mp_coop_come_along": 71, 83 mp_coop_come_along: 71,
84 "mp_coop_fling_1": 72, 84 mp_coop_fling_1: 72,
85 "mp_coop_catapult_1": 73, 85 mp_coop_catapult_1: 73,
86 "mp_coop_multifling_1": 74, 86 mp_coop_multifling_1: 74,
87 "mp_coop_fling_crushers": 75, 87 mp_coop_fling_crushers: 75,
88 "mp_coop_fan": 76, 88 mp_coop_fan: 76,
89 89
90 "mp_coop_wall_intro": 77, 90 mp_coop_wall_intro: 77,
91 "mp_coop_wall_2": 78, 91 mp_coop_wall_2: 78,
92 "mp_coop_catapult_wall_intro": 79, 92 mp_coop_catapult_wall_intro: 79,
93 "mp_coop_wall_block": 80, 93 mp_coop_wall_block: 80,
94 "mp_coop_catapult_2": 81, 94 mp_coop_catapult_2: 81,
95 "mp_coop_turret_walls": 82, 95 mp_coop_turret_walls: 82,
96 "mp_coop_turret_ball": 83, 96 mp_coop_turret_ball: 83,
97 "mp_coop_wall_5": 84, 97 mp_coop_wall_5: 84,
98 98
99 "mp_coop_tbeam_redirect": 85, 99 mp_coop_tbeam_redirect: 85,
100 "mp_coop_tbeam_drill": 86, 100 mp_coop_tbeam_drill: 86,
101 "mp_coop_tbeam_catch_grind_1": 87, 101 mp_coop_tbeam_catch_grind_1: 87,
102 "mp_coop_tbeam_laser_1": 88, 102 mp_coop_tbeam_laser_1: 88,
103 "mp_coop_tbeam_polarity": 89, 103 mp_coop_tbeam_polarity: 89,
104 "mp_coop_tbeam_polarity2": 90, 104 mp_coop_tbeam_polarity2: 90,
105 "mp_coop_tbeam_polarity3": 91, 105 mp_coop_tbeam_polarity3: 91,
106 "mp_coop_tbeam_maze": 92, 106 mp_coop_tbeam_maze: 92,
107 "mp_coop_tbeam_end": 93, 107 mp_coop_tbeam_end: 93,
108 108
109 "mp_coop_paint_come_along": 94, 109 mp_coop_paint_come_along: 94,
110 "mp_coop_paint_redirect": 95, 110 mp_coop_paint_redirect: 95,
111 "mp_coop_paint_bridge": 96, 111 mp_coop_paint_bridge: 96,
112 "mp_coop_paint_walljumps": 97, 112 mp_coop_paint_walljumps: 97,
113 "mp_coop_paint_speed_fling": 98, 113 mp_coop_paint_speed_fling: 98,
114 "mp_coop_paint_red_racer": 99, 114 mp_coop_paint_red_racer: 99,
115 "mp_coop_paint_speed_catch": 100, 115 mp_coop_paint_speed_catch: 100,
116 "mp_coop_paint_longjump_intro": 101, 116 mp_coop_paint_longjump_intro: 101,
117 117
118 "mp_coop_separation_1": 102, 118 mp_coop_separation_1: 102,
119 "mp_coop_tripleaxis": 103, 119 mp_coop_tripleaxis: 103,
120 "mp_coop_catapult_catch": 104, 120 mp_coop_catapult_catch: 104,
121 "mp_coop_2paints_1bridge": 105, 121 mp_coop_2paints_1bridge: 105,
122 "mp_coop_paint_conversion": 106, 122 mp_coop_paint_conversion: 106,
123 "mp_coop_bridge_catch": 107, 123 mp_coop_bridge_catch: 107,
124 "mp_coop_laser_tbeam": 108, 124 mp_coop_laser_tbeam: 108,
125 "mp_coop_paint_rat_maze": 109, 125 mp_coop_paint_rat_maze: 109,
126 "mp_coop_paint_crazy_box": 110, 126 mp_coop_paint_crazy_box: 110,
127}; 127};
diff --git a/frontend/src/types/Pagination.ts b/frontend/src/types/Pagination.ts
index ccff04b..18494eb 100644
--- a/frontend/src/types/Pagination.ts
+++ b/frontend/src/types/Pagination.ts
@@ -3,4 +3,4 @@ export interface Pagination {
3 total_pages: number; 3 total_pages: number;
4 current_page: number; 4 current_page: number;
5 page_size: number; 5 page_size: number;
6}; 6}
diff --git a/frontend/src/types/Profile.ts b/frontend/src/types/Profile.ts
index 42e5c3e..3c83d29 100644
--- a/frontend/src/types/Profile.ts
+++ b/frontend/src/types/Profile.ts
@@ -4,7 +4,7 @@ export interface UserShort {
4 steam_id: string; 4 steam_id: string;
5 user_name: string; 5 user_name: string;
6 avatar_link: string; 6 avatar_link: string;
7}; 7}
8 8
9export interface UserProfile { 9export interface UserProfile {
10 profile: boolean; 10 profile: boolean;
@@ -17,25 +17,25 @@ export interface UserProfile {
17 rankings: UserProfileRankings; 17 rankings: UserProfileRankings;
18 records: UserProfileRecords[]; 18 records: UserProfileRecords[];
19 pagination: Pagination; 19 pagination: Pagination;
20}; 20}
21 21
22interface UserProfileTitles { 22interface UserProfileTitles {
23 name: string; 23 name: string;
24 color: string; 24 color: string;
25}; 25}
26 26
27interface UserProfileLinks { 27interface UserProfileLinks {
28 p2sr: string; 28 p2sr: string;
29 steam: string; 29 steam: string;
30 youtube: string; 30 youtube: string;
31 twitch: string; 31 twitch: string;
32}; 32}
33 33
34interface UserProfileRankings { 34interface UserProfileRankings {
35 overall: UserProfileRankingsDetail; 35 overall: UserProfileRankingsDetail;
36 singleplayer: UserProfileRankingsDetail; 36 singleplayer: UserProfileRankingsDetail;
37 cooperative: UserProfileRankingsDetail; 37 cooperative: UserProfileRankingsDetail;
38}; 38}
39 39
40interface UserProfileRecords { 40interface UserProfileRecords {
41 game_id: number; 41 game_id: number;
@@ -44,8 +44,8 @@ interface UserProfileRecords {
44 map_name: string; 44 map_name: string;
45 map_wr_count: number; 45 map_wr_count: number;
46 placement: number; 46 placement: number;
47 scores: UserProfileRecordsScores[] 47 scores: UserProfileRecordsScores[];
48}; 48}
49 49
50interface UserProfileRecordsScores { 50interface UserProfileRecordsScores {
51 record_id: number; 51 record_id: number;
@@ -53,11 +53,10 @@ interface UserProfileRecordsScores {
53 score_count: number; 53 score_count: number;
54 score_time: number; 54 score_time: number;
55 date: string; 55 date: string;
56}; 56}
57 57
58interface UserProfileRankingsDetail { 58interface UserProfileRankingsDetail {
59 rank: number; 59 rank: number;
60 completion_count: number; 60 completion_count: number;
61 completion_total: number; 61 completion_total: number;
62}; 62}
63
diff --git a/frontend/src/types/Ranking.ts b/frontend/src/types/Ranking.ts
index a143355..800f4be 100644
--- a/frontend/src/types/Ranking.ts
+++ b/frontend/src/types/Ranking.ts
@@ -1,31 +1,31 @@
1import type { UserShort } from "@customTypes/Profile"; 1import type { UserShort } from "@customTypes/Profile";
2 2
3export interface RankingType { 3export interface RankingType {
4 placement: number; 4 placement: number;
5 user: UserShort; 5 user: UserShort;
6 total_score: number; 6 total_score: number;
7} 7}
8 8
9export interface SteamRankingType { 9export interface SteamRankingType {
10 user_name: string; 10 user_name: string;
11 avatar_link: string; 11 avatar_link: string;
12 steam_id: string; 12 steam_id: string;
13 sp_score: number; 13 sp_score: number;
14 mp_score: number; 14 mp_score: number;
15 overall_score: number; 15 overall_score: number;
16 sp_rank: number; 16 sp_rank: number;
17 mp_rank: number; 17 mp_rank: number;
18 overall_rank: number; 18 overall_rank: number;
19} 19}
20 20
21export interface Ranking { 21export interface Ranking {
22 rankings_overall: RankingType[]; 22 rankings_overall: RankingType[];
23 rankings_singleplayer: RankingType[]; 23 rankings_singleplayer: RankingType[];
24 rankings_multiplayer: RankingType[]; 24 rankings_multiplayer: RankingType[];
25} 25}
26 26
27export interface SteamRanking { 27export interface SteamRanking {
28 rankings_overall: SteamRankingType[]; 28 rankings_overall: SteamRankingType[];
29 rankings_singleplayer: SteamRankingType[]; 29 rankings_singleplayer: SteamRankingType[];
30 rankings_multiplayer: SteamRankingType[]; 30 rankings_multiplayer: SteamRankingType[];
31} \ No newline at end of file 31}
diff --git a/frontend/src/types/Search.ts b/frontend/src/types/Search.ts
index d218806..b258ee3 100644
--- a/frontend/src/types/Search.ts
+++ b/frontend/src/types/Search.ts
@@ -3,11 +3,11 @@ import type { UserShort } from "@customTypes/Profile";
3export interface Search { 3export interface Search {
4 players: UserShort[]; 4 players: UserShort[];
5 maps: SearchMap[]; 5 maps: SearchMap[];
6}; 6}
7 7
8interface SearchMap { 8interface SearchMap {
9 id: number; 9 id: number;
10 game: string; 10 game: string;
11 chapter: string; 11 chapter: string;
12 map: string; 12 map: string;
13}; 13}
diff --git a/frontend/src/utils/Jwt.ts b/frontend/src/utils/Jwt.ts
index ce351fb..dc6ec92 100644
--- a/frontend/src/utils/Jwt.ts
+++ b/frontend/src/utils/Jwt.ts
@@ -1,44 +1,48 @@
1// llm ahh funcs 1// llm ahh funcs
2export function get_user_id_from_token(token: string | undefined): string | undefined { 2export function get_user_id_from_token(
3 token: string | undefined
4): string | undefined {
3 if (!token) { 5 if (!token) {
4 return undefined; 6 return undefined;
5 } 7 }
6 const parts = token.split('.'); 8 const parts = token.split(".");
7 if (parts.length !== 3) { 9 if (parts.length !== 3) {
8 return undefined; 10 return undefined;
9 } 11 }
10 const base64Url = parts[1]; 12 const base64Url = parts[1];
11 const base64 = base64Url.replace(/-/g, '+').replace(/_/g, '/'); 13 const base64 = base64Url.replace(/-/g, "+").replace(/_/g, "/");
12 14
13 const jsonPayload = decodeURIComponent( 15 const jsonPayload = decodeURIComponent(
14 atob(base64) 16 atob(base64)
15 .split('') 17 .split("")
16 .map(function (c) { 18 .map(function (c) {
17 return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2); 19 return "%" + ("00" + c.charCodeAt(0).toString(16)).slice(-2);
18 }) 20 })
19 .join('') 21 .join("")
20 ); 22 );
21 return JSON.parse(jsonPayload).sub; 23 return JSON.parse(jsonPayload).sub;
22}; 24}
23 25
24export function get_user_mod_from_token(token: string | undefined): boolean | undefined { 26export function get_user_mod_from_token(
27 token: string | undefined
28): boolean | undefined {
25 if (!token) { 29 if (!token) {
26 return undefined; 30 return undefined;
27 } 31 }
28 const parts = token.split('.'); 32 const parts = token.split(".");
29 if (parts.length !== 3) { 33 if (parts.length !== 3) {
30 return undefined; 34 return undefined;
31 } 35 }
32 const base64Url = parts[1]; 36 const base64Url = parts[1];
33 const base64 = base64Url.replace(/-/g, '+').replace(/_/g, '/'); 37 const base64 = base64Url.replace(/-/g, "+").replace(/_/g, "/");
34 38
35 const jsonPayload = decodeURIComponent( 39 const jsonPayload = decodeURIComponent(
36 atob(base64) 40 atob(base64)
37 .split('') 41 .split("")
38 .map(function (c) { 42 .map(function (c) {
39 return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2); 43 return "%" + ("00" + c.charCodeAt(0).toString(16)).slice(-2);
40 }) 44 })
41 .join('') 45 .join("")
42 ); 46 );
43 return JSON.parse(jsonPayload).mod; 47 return JSON.parse(jsonPayload).mod;
44}; 48}
diff --git a/frontend/src/utils/Time.ts b/frontend/src/utils/Time.ts
index b83a7ed..8f2c03c 100644
--- a/frontend/src/utils/Time.ts
+++ b/frontend/src/utils/Time.ts
@@ -1,42 +1,62 @@
1export function time_ago(date: any) { 1export function time_ago(date: any) {
2 const now = new Date().getTime(); 2 const now = new Date().getTime();
3 3
4 const localDate = new Date(date.getTime() - (date.getTimezoneOffset() * 60000)); 4 const localDate = new Date(date.getTime() - date.getTimezoneOffset() * 60000);
5 const seconds = Math.floor((now - localDate.getTime()) / 1000); 5 const seconds = Math.floor((now - localDate.getTime()) / 1000);
6 6
7 let interval = Math.floor(seconds / 31536000); 7 let interval = Math.floor(seconds / 31536000);
8 if (interval === 1) {return interval + ' year ago';} 8 if (interval === 1) {
9 if (interval > 1) {return interval + ' years ago';} 9 return interval + " year ago";
10 }
11 if (interval > 1) {
12 return interval + " years ago";
13 }
10 14
11 interval = Math.floor(seconds / 2592000); 15 interval = Math.floor(seconds / 2592000);
12 if (interval === 1) {return interval + ' month ago';} 16 if (interval === 1) {
13 if (interval > 1) {return interval + ' months ago';} 17 return interval + " month ago";
18 }
19 if (interval > 1) {
20 return interval + " months ago";
21 }
14 22
15 interval = Math.floor(seconds / 86400); 23 interval = Math.floor(seconds / 86400);
16 if (interval === 1) {return interval + ' day ago';} 24 if (interval === 1) {
17 if (interval > 1) {return interval + ' days ago';} 25 return interval + " day ago";
26 }
27 if (interval > 1) {
28 return interval + " days ago";
29 }
18 30
19 interval = Math.floor(seconds / 3600); 31 interval = Math.floor(seconds / 3600);
20 if (interval === 1) {return interval + ' hour ago';} 32 if (interval === 1) {
21 if (interval > 1) {return interval + ' hours ago';} 33 return interval + " hour ago";
34 }
35 if (interval > 1) {
36 return interval + " hours ago";
37 }
22 38
23 interval = Math.floor(seconds / 60); 39 interval = Math.floor(seconds / 60);
24 if (interval === 1) {return interval + ' minute ago';} 40 if (interval === 1) {
25 if (interval > 1) {return interval + ' minutes ago';} 41 return interval + " minute ago";
42 }
43 if (interval > 1) {
44 return interval + " minutes ago";
45 }
26 46
27 if(seconds < 10) return 'just now'; 47 if (seconds < 10) return "just now";
28 48
29 return Math.floor(seconds) + ' seconds ago'; 49 return Math.floor(seconds) + " seconds ago";
30}; 50}
31 51
32export function ticks_to_time(ticks: number) { 52export function ticks_to_time(ticks: number) {
33 let seconds = Math.floor(ticks / 60) 53 let seconds = Math.floor(ticks / 60);
34 let minutes = Math.floor(seconds / 60) 54 let minutes = Math.floor(seconds / 60);
35 let hours = Math.floor(minutes / 60) 55 let hours = Math.floor(minutes / 60);
36 56
37 let milliseconds = Math.floor((ticks % 60) * 1000 / 60) 57 let milliseconds = Math.floor(((ticks % 60) * 1000) / 60);
38 seconds = seconds % 60; 58 seconds = seconds % 60;
39 minutes = minutes % 60; 59 minutes = minutes % 60;
40 60
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')}`; 61 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 62}
diff --git a/frontend/tsconfig.json b/frontend/tsconfig.json
index 813525a..a78cf3a 100644
--- a/frontend/tsconfig.json
+++ b/frontend/tsconfig.json
@@ -1,29 +1,30 @@
1{ 1{
2 "extends": "./tsconfig.paths.json",
3 "compilerOptions": { 2 "compilerOptions": {
4 "target": "es5", 3 "target": "ES2020",
5 "lib": [ 4 "lib": ["ES2020", "DOM", "DOM.Iterable"],
6 "dom", 5 "module": "ESNext",
7 "dom.iterable",
8 "esnext"
9 ],
10 "allowJs": true,
11 "skipLibCheck": true, 6 "skipLibCheck": true,
12 "esModuleInterop": true, 7 "moduleResolution": "bundler",
13 "allowSyntheticDefaultImports": true, 8 "allowImportingTsExtensions": true,
14 "strict": true,
15 "forceConsistentCasingInFileNames": true,
16 "noFallthroughCasesInSwitch": true,
17 "strictNullChecks": true,
18 // "allowImportingTsExtensions": false,
19 "module": "esnext",
20 "moduleResolution": "node",
21 "resolveJsonModule": true, 9 "resolveJsonModule": true,
22 "isolatedModules": true, 10 "isolatedModules": true,
23 "noEmit": true, 11 "noEmit": true,
24 "jsx": "react-jsx", 12 "jsx": "react-jsx",
13 "strict": true,
14 "noUnusedLocals": true,
15 "noUnusedParameters": true,
16 "noFallthroughCasesInSwitch": true,
17 "baseUrl": ".",
18 "paths": {
19 "@api/*": ["src/api/*"],
20 "@components/*": ["src/components/*"],
21 "@css/*": ["src/css/*"],
22 "@customTypes/*": ["src/types/*"],
23 "@hooks/*": ["src/hooks/*"],
24 "@pages/*": ["src/pages/*"],
25 "@utils/*": ["src/utils/*"]
26 }
25 }, 27 },
26 "include": [ 28 "include": ["src"],
27 "src" 29 "references": [{ "path": "./tsconfig.node.json" }]
28 ] 30} \ No newline at end of file
29}
diff --git a/frontend/tsconfig.node.json b/frontend/tsconfig.node.json
new file mode 100644
index 0000000..099658c
--- /dev/null
+++ b/frontend/tsconfig.node.json
@@ -0,0 +1,10 @@
1{
2 "compilerOptions": {
3 "composite": true,
4 "skipLibCheck": true,
5 "module": "ESNext",
6 "moduleResolution": "bundler",
7 "allowSyntheticDefaultImports": true
8 },
9 "include": ["vite.config.ts"]
10} \ No newline at end of file
diff --git a/frontend/vite.config.ts b/frontend/vite.config.ts
new file mode 100644
index 0000000..c90383c
--- /dev/null
+++ b/frontend/vite.config.ts
@@ -0,0 +1,38 @@
1import { defineConfig, loadEnv } from 'vite'
2import react from '@vitejs/plugin-react'
3import tailwindcss from '@tailwindcss/vite'
4import path from 'path'
5
6export default defineConfig(({ mode }) => {
7 // load env variables for the current mode (from .env, .env.development, etc.)
8 const env = loadEnv(mode, process.cwd(), '')
9 const API_TARGET = env.VITE_API_TARGET || 'https://lp.pektezol.dev/'
10
11 return {
12 plugins: [react(), tailwindcss()],
13 resolve: {
14 alias: {
15 '@api': path.resolve(__dirname, './src/api'),
16 '@components': path.resolve(__dirname, './src/components'),
17 '@css': path.resolve(__dirname, './src/css'),
18 '@customTypes': path.resolve(__dirname, './src/types'),
19 '@hooks': path.resolve(__dirname, './src/hooks'),
20 '@pages': path.resolve(__dirname, './src/pages'),
21 '@utils': path.resolve(__dirname, './src/utils'),
22 '@images': path.resolve(__dirname, './src/images'),
23 },
24 },
25 server: {
26 port: 3000,
27 proxy: {
28 '/api': {
29 target: API_TARGET,
30 changeOrigin: true,
31 },
32 },
33 },
34 build: {
35 outDir: 'build',
36 },
37 }
38}) \ No newline at end of file