├── .gitignore
├── .travis.yml
├── index.html
├── license.md
├── package-lock.json
├── package.json
├── readme.md
├── src
├── main.ts
└── renderer.ts
├── tsconfig.json
└── webpack.ts
/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules
2 | dist
--------------------------------------------------------------------------------
/.travis.yml:
--------------------------------------------------------------------------------
1 | sudo: false
2 | language: node_js
3 | cache:
4 | directories:
5 | - node_modules
6 | notifications:
7 | email: false
8 | node_js:
9 | - '12'
10 | before_install:
11 | - npm i
12 | before_script:
13 | - npm prune
14 | script:
15 | - npm run build
16 | branches:
17 | except:
18 | - "/^v\\d+\\.\\d+\\.\\d+$/"
--------------------------------------------------------------------------------
/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | WebGL Hello Triangle
6 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
--------------------------------------------------------------------------------
/license.md:
--------------------------------------------------------------------------------
1 | This is free and unencumbered software released into the public domain.
2 |
3 | Anyone is free to copy, modify, publish, use, compile, sell, or distribute this software, either in source code form or as a compiled binary, for any purpose, commercial or non-commercial, and by any means.
4 |
5 | In jurisdictions that recognize copyright laws, the author or authors of this software dedicate any and all copyright interest in the software to the public domain. We make this dedication for the benefit of the public at large and to the detriment of our heirs and successors. We intend this dedication to be an overt act of relinquishment in perpetuity of all present and future rights to this software under copyright law.
6 |
7 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
8 |
9 | For more information, please refer to
--------------------------------------------------------------------------------
/package-lock.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "webgl-seed",
3 | "version": "1.0.0",
4 | "lockfileVersion": 2,
5 | "requires": true,
6 | "packages": {
7 | "": {
8 | "version": "1.0.0",
9 | "license": "Unlicense",
10 | "dependencies": {
11 | "gl-matrix": "^3.3.0"
12 | },
13 | "devDependencies": {
14 | "@types/node": "^14.14.x",
15 | "clean-webpack-plugin": "^3.0.x",
16 | "cross-env": "^7.0.x",
17 | "http-server": "^0.12.x",
18 | "ts-loader": "^8.0.x",
19 | "ts-node": "^9.1.x",
20 | "typescript": "^4.2.x",
21 | "webpack": "^5.24.x"
22 | },
23 | "engines": {
24 | "node": ">=12.0"
25 | }
26 | },
27 | "node_modules/@types/anymatch": {
28 | "version": "1.3.1",
29 | "resolved": "https://registry.npmjs.org/@types/anymatch/-/anymatch-1.3.1.tgz",
30 | "integrity": "sha512-/+CRPXpBDpo2RK9C68N3b2cOvO0Cf5B9aPijHsoDQTHivnGSObdOF2BRQOYjojWTDy6nQvMjmqRXIxH55VjxxA==",
31 | "dev": true
32 | },
33 | "node_modules/@types/eslint": {
34 | "version": "7.2.7",
35 | "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-7.2.7.tgz",
36 | "integrity": "sha512-EHXbc1z2GoQRqHaAT7+grxlTJ3WE2YNeD6jlpPoRc83cCoThRY+NUWjCUZaYmk51OICkPXn2hhphcWcWXgNW0Q==",
37 | "dev": true,
38 | "dependencies": {
39 | "@types/estree": "*",
40 | "@types/json-schema": "*"
41 | }
42 | },
43 | "node_modules/@types/eslint-scope": {
44 | "version": "3.7.0",
45 | "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.0.tgz",
46 | "integrity": "sha512-O/ql2+rrCUe2W2rs7wMR+GqPRcgB6UiqN5RhrR5xruFlY7l9YLMn0ZkDzjoHLeiFkR8MCQZVudUuuvQ2BLC9Qw==",
47 | "dev": true,
48 | "dependencies": {
49 | "@types/eslint": "*",
50 | "@types/estree": "*"
51 | }
52 | },
53 | "node_modules/@types/estree": {
54 | "version": "0.0.46",
55 | "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.46.tgz",
56 | "integrity": "sha512-laIjwTQaD+5DukBZaygQ79K1Z0jb1bPEMRrkXSLjtCcZm+abyp5YbrqpSLzD42FwWW6gK/aS4NYpJ804nG2brg==",
57 | "dev": true
58 | },
59 | "node_modules/@types/glob": {
60 | "version": "7.1.3",
61 | "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.3.tgz",
62 | "integrity": "sha512-SEYeGAIQIQX8NN6LDKprLjbrd5dARM5EXsd8GI/A5l0apYI1fGMWgPHSe4ZKL4eozlAyI+doUE9XbYS4xCkQ1w==",
63 | "dev": true,
64 | "dependencies": {
65 | "@types/minimatch": "*",
66 | "@types/node": "*"
67 | }
68 | },
69 | "node_modules/@types/json-schema": {
70 | "version": "7.0.7",
71 | "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.7.tgz",
72 | "integrity": "sha512-cxWFQVseBm6O9Gbw1IWb8r6OS4OhSt3hPZLkFApLjM8TEXROBuQGLAH2i2gZpcXdLBIrpXuTDhH7Vbm1iXmNGA==",
73 | "dev": true
74 | },
75 | "node_modules/@types/minimatch": {
76 | "version": "3.0.3",
77 | "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz",
78 | "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==",
79 | "dev": true
80 | },
81 | "node_modules/@types/node": {
82 | "version": "14.14.33",
83 | "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.33.tgz",
84 | "integrity": "sha512-oJqcTrgPUF29oUP8AsUqbXGJNuPutsetaa9kTQAQce5Lx5dTYWV02ScBiT/k1BX/Z7pKeqedmvp39Wu4zR7N7g==",
85 | "dev": true
86 | },
87 | "node_modules/@types/source-list-map": {
88 | "version": "0.1.2",
89 | "resolved": "https://registry.npmjs.org/@types/source-list-map/-/source-list-map-0.1.2.tgz",
90 | "integrity": "sha512-K5K+yml8LTo9bWJI/rECfIPrGgxdpeNbj+d53lwN4QjW1MCwlkhUms+gtdzigTeUyBr09+u8BwOIY3MXvHdcsA==",
91 | "dev": true
92 | },
93 | "node_modules/@types/tapable": {
94 | "version": "1.0.6",
95 | "resolved": "https://registry.npmjs.org/@types/tapable/-/tapable-1.0.6.tgz",
96 | "integrity": "sha512-W+bw9ds02rAQaMvaLYxAbJ6cvguW/iJXNT6lTssS1ps6QdrMKttqEAMEG/b5CR8TZl3/L7/lH0ZV5nNR1LXikA==",
97 | "dev": true
98 | },
99 | "node_modules/@types/uglify-js": {
100 | "version": "3.13.0",
101 | "resolved": "https://registry.npmjs.org/@types/uglify-js/-/uglify-js-3.13.0.tgz",
102 | "integrity": "sha512-EGkrJD5Uy+Pg0NUR8uA4bJ5WMfljyad0G+784vLCNUkD+QwOJXUbBYExXfVGf7YtyzdQp3L/XMYcliB987kL5Q==",
103 | "dev": true,
104 | "dependencies": {
105 | "source-map": "^0.6.1"
106 | }
107 | },
108 | "node_modules/@types/webpack": {
109 | "version": "4.41.26",
110 | "resolved": "https://registry.npmjs.org/@types/webpack/-/webpack-4.41.26.tgz",
111 | "integrity": "sha512-7ZyTfxjCRwexh+EJFwRUM+CDB2XvgHl4vfuqf1ZKrgGvcS5BrNvPQqJh3tsZ0P6h6Aa1qClVHaJZszLPzpqHeA==",
112 | "dev": true,
113 | "dependencies": {
114 | "@types/anymatch": "*",
115 | "@types/node": "*",
116 | "@types/tapable": "*",
117 | "@types/uglify-js": "*",
118 | "@types/webpack-sources": "*",
119 | "source-map": "^0.6.0"
120 | }
121 | },
122 | "node_modules/@types/webpack-sources": {
123 | "version": "2.1.0",
124 | "resolved": "https://registry.npmjs.org/@types/webpack-sources/-/webpack-sources-2.1.0.tgz",
125 | "integrity": "sha512-LXn/oYIpBeucgP1EIJbKQ2/4ZmpvRl+dlrFdX7+94SKRUV3Evy3FsfMZY318vGhkWUS5MPhtOM3w1/hCOAOXcg==",
126 | "dev": true,
127 | "dependencies": {
128 | "@types/node": "*",
129 | "@types/source-list-map": "*",
130 | "source-map": "^0.7.3"
131 | }
132 | },
133 | "node_modules/@types/webpack-sources/node_modules/source-map": {
134 | "version": "0.7.3",
135 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz",
136 | "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==",
137 | "dev": true,
138 | "engines": {
139 | "node": ">= 8"
140 | }
141 | },
142 | "node_modules/@webassemblyjs/ast": {
143 | "version": "1.11.0",
144 | "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.0.tgz",
145 | "integrity": "sha512-kX2W49LWsbthrmIRMbQZuQDhGtjyqXfEmmHyEi4XWnSZtPmxY0+3anPIzsnRb45VH/J55zlOfWvZuY47aJZTJg==",
146 | "dev": true,
147 | "dependencies": {
148 | "@webassemblyjs/helper-numbers": "1.11.0",
149 | "@webassemblyjs/helper-wasm-bytecode": "1.11.0"
150 | }
151 | },
152 | "node_modules/@webassemblyjs/floating-point-hex-parser": {
153 | "version": "1.11.0",
154 | "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.0.tgz",
155 | "integrity": "sha512-Q/aVYs/VnPDVYvsCBL/gSgwmfjeCb4LW8+TMrO3cSzJImgv8lxxEPM2JA5jMrivE7LSz3V+PFqtMbls3m1exDA==",
156 | "dev": true
157 | },
158 | "node_modules/@webassemblyjs/helper-api-error": {
159 | "version": "1.11.0",
160 | "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.0.tgz",
161 | "integrity": "sha512-baT/va95eXiXb2QflSx95QGT5ClzWpGaa8L7JnJbgzoYeaA27FCvuBXU758l+KXWRndEmUXjP0Q5fibhavIn8w==",
162 | "dev": true
163 | },
164 | "node_modules/@webassemblyjs/helper-buffer": {
165 | "version": "1.11.0",
166 | "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.0.tgz",
167 | "integrity": "sha512-u9HPBEl4DS+vA8qLQdEQ6N/eJQ7gT7aNvMIo8AAWvAl/xMrcOSiI2M0MAnMCy3jIFke7bEee/JwdX1nUpCtdyA==",
168 | "dev": true
169 | },
170 | "node_modules/@webassemblyjs/helper-numbers": {
171 | "version": "1.11.0",
172 | "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.0.tgz",
173 | "integrity": "sha512-DhRQKelIj01s5IgdsOJMKLppI+4zpmcMQ3XboFPLwCpSNH6Hqo1ritgHgD0nqHeSYqofA6aBN/NmXuGjM1jEfQ==",
174 | "dev": true,
175 | "dependencies": {
176 | "@webassemblyjs/floating-point-hex-parser": "1.11.0",
177 | "@webassemblyjs/helper-api-error": "1.11.0",
178 | "@xtuc/long": "4.2.2"
179 | }
180 | },
181 | "node_modules/@webassemblyjs/helper-wasm-bytecode": {
182 | "version": "1.11.0",
183 | "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.0.tgz",
184 | "integrity": "sha512-MbmhvxXExm542tWREgSFnOVo07fDpsBJg3sIl6fSp9xuu75eGz5lz31q7wTLffwL3Za7XNRCMZy210+tnsUSEA==",
185 | "dev": true
186 | },
187 | "node_modules/@webassemblyjs/helper-wasm-section": {
188 | "version": "1.11.0",
189 | "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.0.tgz",
190 | "integrity": "sha512-3Eb88hcbfY/FCukrg6i3EH8H2UsD7x8Vy47iVJrP967A9JGqgBVL9aH71SETPx1JrGsOUVLo0c7vMCN22ytJew==",
191 | "dev": true,
192 | "dependencies": {
193 | "@webassemblyjs/ast": "1.11.0",
194 | "@webassemblyjs/helper-buffer": "1.11.0",
195 | "@webassemblyjs/helper-wasm-bytecode": "1.11.0",
196 | "@webassemblyjs/wasm-gen": "1.11.0"
197 | }
198 | },
199 | "node_modules/@webassemblyjs/ieee754": {
200 | "version": "1.11.0",
201 | "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.0.tgz",
202 | "integrity": "sha512-KXzOqpcYQwAfeQ6WbF6HXo+0udBNmw0iXDmEK5sFlmQdmND+tr773Ti8/5T/M6Tl/413ArSJErATd8In3B+WBA==",
203 | "dev": true,
204 | "dependencies": {
205 | "@xtuc/ieee754": "^1.2.0"
206 | }
207 | },
208 | "node_modules/@webassemblyjs/leb128": {
209 | "version": "1.11.0",
210 | "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.0.tgz",
211 | "integrity": "sha512-aqbsHa1mSQAbeeNcl38un6qVY++hh8OpCOzxhixSYgbRfNWcxJNJQwe2rezK9XEcssJbbWIkblaJRwGMS9zp+g==",
212 | "dev": true,
213 | "dependencies": {
214 | "@xtuc/long": "4.2.2"
215 | }
216 | },
217 | "node_modules/@webassemblyjs/utf8": {
218 | "version": "1.11.0",
219 | "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.0.tgz",
220 | "integrity": "sha512-A/lclGxH6SpSLSyFowMzO/+aDEPU4hvEiooCMXQPcQFPPJaYcPQNKGOCLUySJsYJ4trbpr+Fs08n4jelkVTGVw==",
221 | "dev": true
222 | },
223 | "node_modules/@webassemblyjs/wasm-edit": {
224 | "version": "1.11.0",
225 | "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.0.tgz",
226 | "integrity": "sha512-JHQ0damXy0G6J9ucyKVXO2j08JVJ2ntkdJlq1UTiUrIgfGMmA7Ik5VdC/L8hBK46kVJgujkBIoMtT8yVr+yVOQ==",
227 | "dev": true,
228 | "dependencies": {
229 | "@webassemblyjs/ast": "1.11.0",
230 | "@webassemblyjs/helper-buffer": "1.11.0",
231 | "@webassemblyjs/helper-wasm-bytecode": "1.11.0",
232 | "@webassemblyjs/helper-wasm-section": "1.11.0",
233 | "@webassemblyjs/wasm-gen": "1.11.0",
234 | "@webassemblyjs/wasm-opt": "1.11.0",
235 | "@webassemblyjs/wasm-parser": "1.11.0",
236 | "@webassemblyjs/wast-printer": "1.11.0"
237 | }
238 | },
239 | "node_modules/@webassemblyjs/wasm-gen": {
240 | "version": "1.11.0",
241 | "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.0.tgz",
242 | "integrity": "sha512-BEUv1aj0WptCZ9kIS30th5ILASUnAPEvE3tVMTrItnZRT9tXCLW2LEXT8ezLw59rqPP9klh9LPmpU+WmRQmCPQ==",
243 | "dev": true,
244 | "dependencies": {
245 | "@webassemblyjs/ast": "1.11.0",
246 | "@webassemblyjs/helper-wasm-bytecode": "1.11.0",
247 | "@webassemblyjs/ieee754": "1.11.0",
248 | "@webassemblyjs/leb128": "1.11.0",
249 | "@webassemblyjs/utf8": "1.11.0"
250 | }
251 | },
252 | "node_modules/@webassemblyjs/wasm-opt": {
253 | "version": "1.11.0",
254 | "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.0.tgz",
255 | "integrity": "sha512-tHUSP5F4ywyh3hZ0+fDQuWxKx3mJiPeFufg+9gwTpYp324mPCQgnuVKwzLTZVqj0duRDovnPaZqDwoyhIO8kYg==",
256 | "dev": true,
257 | "dependencies": {
258 | "@webassemblyjs/ast": "1.11.0",
259 | "@webassemblyjs/helper-buffer": "1.11.0",
260 | "@webassemblyjs/wasm-gen": "1.11.0",
261 | "@webassemblyjs/wasm-parser": "1.11.0"
262 | }
263 | },
264 | "node_modules/@webassemblyjs/wasm-parser": {
265 | "version": "1.11.0",
266 | "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.0.tgz",
267 | "integrity": "sha512-6L285Sgu9gphrcpDXINvm0M9BskznnzJTE7gYkjDbxET28shDqp27wpruyx3C2S/dvEwiigBwLA1cz7lNUi0kw==",
268 | "dev": true,
269 | "dependencies": {
270 | "@webassemblyjs/ast": "1.11.0",
271 | "@webassemblyjs/helper-api-error": "1.11.0",
272 | "@webassemblyjs/helper-wasm-bytecode": "1.11.0",
273 | "@webassemblyjs/ieee754": "1.11.0",
274 | "@webassemblyjs/leb128": "1.11.0",
275 | "@webassemblyjs/utf8": "1.11.0"
276 | }
277 | },
278 | "node_modules/@webassemblyjs/wast-printer": {
279 | "version": "1.11.0",
280 | "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.0.tgz",
281 | "integrity": "sha512-Fg5OX46pRdTgB7rKIUojkh9vXaVN6sGYCnEiJN1GYkb0RPwShZXp6KTDqmoMdQPKhcroOXh3fEzmkWmCYaKYhQ==",
282 | "dev": true,
283 | "dependencies": {
284 | "@webassemblyjs/ast": "1.11.0",
285 | "@xtuc/long": "4.2.2"
286 | }
287 | },
288 | "node_modules/@xtuc/ieee754": {
289 | "version": "1.2.0",
290 | "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz",
291 | "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==",
292 | "dev": true
293 | },
294 | "node_modules/@xtuc/long": {
295 | "version": "4.2.2",
296 | "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz",
297 | "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==",
298 | "dev": true
299 | },
300 | "node_modules/acorn": {
301 | "version": "8.1.0",
302 | "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.1.0.tgz",
303 | "integrity": "sha512-LWCF/Wn0nfHOmJ9rzQApGnxnvgfROzGilS8936rqN/lfcYkY9MYZzdMqN+2NJ4SlTc+m5HiSa+kNfDtI64dwUA==",
304 | "dev": true,
305 | "bin": {
306 | "acorn": "bin/acorn"
307 | },
308 | "engines": {
309 | "node": ">=0.4.0"
310 | }
311 | },
312 | "node_modules/ajv": {
313 | "version": "6.12.6",
314 | "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
315 | "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
316 | "dev": true,
317 | "dependencies": {
318 | "fast-deep-equal": "^3.1.1",
319 | "fast-json-stable-stringify": "^2.0.0",
320 | "json-schema-traverse": "^0.4.1",
321 | "uri-js": "^4.2.2"
322 | },
323 | "funding": {
324 | "type": "github",
325 | "url": "https://github.com/sponsors/epoberezkin"
326 | }
327 | },
328 | "node_modules/ajv-keywords": {
329 | "version": "3.5.2",
330 | "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz",
331 | "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==",
332 | "dev": true,
333 | "peerDependencies": {
334 | "ajv": "^6.9.1"
335 | }
336 | },
337 | "node_modules/ansi-styles": {
338 | "version": "4.3.0",
339 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
340 | "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
341 | "dev": true,
342 | "dependencies": {
343 | "color-convert": "^2.0.1"
344 | },
345 | "engines": {
346 | "node": ">=8"
347 | },
348 | "funding": {
349 | "url": "https://github.com/chalk/ansi-styles?sponsor=1"
350 | }
351 | },
352 | "node_modules/arg": {
353 | "version": "4.1.3",
354 | "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz",
355 | "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==",
356 | "dev": true
357 | },
358 | "node_modules/array-union": {
359 | "version": "1.0.2",
360 | "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz",
361 | "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=",
362 | "dev": true,
363 | "dependencies": {
364 | "array-uniq": "^1.0.1"
365 | },
366 | "engines": {
367 | "node": ">=0.10.0"
368 | }
369 | },
370 | "node_modules/array-uniq": {
371 | "version": "1.0.3",
372 | "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz",
373 | "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=",
374 | "dev": true,
375 | "engines": {
376 | "node": ">=0.10.0"
377 | }
378 | },
379 | "node_modules/async": {
380 | "version": "2.6.3",
381 | "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz",
382 | "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==",
383 | "dev": true,
384 | "dependencies": {
385 | "lodash": "^4.17.14"
386 | }
387 | },
388 | "node_modules/balanced-match": {
389 | "version": "1.0.0",
390 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
391 | "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
392 | "dev": true
393 | },
394 | "node_modules/basic-auth": {
395 | "version": "1.1.0",
396 | "resolved": "https://registry.npmjs.org/basic-auth/-/basic-auth-1.1.0.tgz",
397 | "integrity": "sha1-RSIe5Cn37h5QNb4/UVM/HN/SmIQ=",
398 | "dev": true,
399 | "engines": {
400 | "node": ">= 0.6"
401 | }
402 | },
403 | "node_modules/big.js": {
404 | "version": "5.2.2",
405 | "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz",
406 | "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==",
407 | "dev": true,
408 | "engines": {
409 | "node": "*"
410 | }
411 | },
412 | "node_modules/brace-expansion": {
413 | "version": "1.1.11",
414 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
415 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
416 | "dev": true,
417 | "dependencies": {
418 | "balanced-match": "^1.0.0",
419 | "concat-map": "0.0.1"
420 | }
421 | },
422 | "node_modules/braces": {
423 | "version": "3.0.2",
424 | "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
425 | "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
426 | "dev": true,
427 | "dependencies": {
428 | "fill-range": "^7.0.1"
429 | },
430 | "engines": {
431 | "node": ">=8"
432 | }
433 | },
434 | "node_modules/browserslist": {
435 | "version": "4.16.3",
436 | "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.3.tgz",
437 | "integrity": "sha512-vIyhWmIkULaq04Gt93txdh+j02yX/JzlyhLYbV3YQCn/zvES3JnY7TifHHvvr1w5hTDluNKMkV05cs4vy8Q7sw==",
438 | "dev": true,
439 | "dependencies": {
440 | "caniuse-lite": "^1.0.30001181",
441 | "colorette": "^1.2.1",
442 | "electron-to-chromium": "^1.3.649",
443 | "escalade": "^3.1.1",
444 | "node-releases": "^1.1.70"
445 | },
446 | "bin": {
447 | "browserslist": "cli.js"
448 | },
449 | "engines": {
450 | "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
451 | },
452 | "funding": {
453 | "type": "opencollective",
454 | "url": "https://opencollective.com/browserslist"
455 | }
456 | },
457 | "node_modules/buffer-from": {
458 | "version": "1.1.1",
459 | "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz",
460 | "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==",
461 | "dev": true
462 | },
463 | "node_modules/caniuse-lite": {
464 | "version": "1.0.30001198",
465 | "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001198.tgz",
466 | "integrity": "sha512-r5GGgESqOPZzwvdLVER374FpQu2WluCF1Z2DSiFJ89KSmGjT0LVKjgv4NcAqHmGWF9ihNpqRI9KXO9Ex4sKsgA==",
467 | "dev": true
468 | },
469 | "node_modules/chalk": {
470 | "version": "4.1.0",
471 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz",
472 | "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==",
473 | "dev": true,
474 | "dependencies": {
475 | "ansi-styles": "^4.1.0",
476 | "supports-color": "^7.1.0"
477 | },
478 | "engines": {
479 | "node": ">=10"
480 | },
481 | "funding": {
482 | "url": "https://github.com/chalk/chalk?sponsor=1"
483 | }
484 | },
485 | "node_modules/chrome-trace-event": {
486 | "version": "1.0.2",
487 | "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz",
488 | "integrity": "sha512-9e/zx1jw7B4CO+c/RXoCsfg/x1AfUBioy4owYH0bJprEYAx5hRFLRhWBqHAG57D0ZM4H7vxbP7bPe0VwhQRYDQ==",
489 | "dev": true,
490 | "dependencies": {
491 | "tslib": "^1.9.0"
492 | },
493 | "engines": {
494 | "node": ">=6.0"
495 | }
496 | },
497 | "node_modules/clean-webpack-plugin": {
498 | "version": "3.0.0",
499 | "resolved": "https://registry.npmjs.org/clean-webpack-plugin/-/clean-webpack-plugin-3.0.0.tgz",
500 | "integrity": "sha512-MciirUH5r+cYLGCOL5JX/ZLzOZbVr1ot3Fw+KcvbhUb6PM+yycqd9ZhIlcigQ5gl+XhppNmw3bEFuaaMNyLj3A==",
501 | "dev": true,
502 | "dependencies": {
503 | "@types/webpack": "^4.4.31",
504 | "del": "^4.1.1"
505 | },
506 | "engines": {
507 | "node": ">=8.9.0"
508 | },
509 | "peerDependencies": {
510 | "webpack": "*"
511 | }
512 | },
513 | "node_modules/color-convert": {
514 | "version": "2.0.1",
515 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
516 | "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
517 | "dev": true,
518 | "dependencies": {
519 | "color-name": "~1.1.4"
520 | },
521 | "engines": {
522 | "node": ">=7.0.0"
523 | }
524 | },
525 | "node_modules/color-name": {
526 | "version": "1.1.4",
527 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
528 | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
529 | "dev": true
530 | },
531 | "node_modules/colorette": {
532 | "version": "1.2.2",
533 | "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.2.tgz",
534 | "integrity": "sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w==",
535 | "dev": true
536 | },
537 | "node_modules/colors": {
538 | "version": "1.4.0",
539 | "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz",
540 | "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==",
541 | "dev": true,
542 | "engines": {
543 | "node": ">=0.1.90"
544 | }
545 | },
546 | "node_modules/commander": {
547 | "version": "2.20.3",
548 | "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
549 | "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==",
550 | "dev": true
551 | },
552 | "node_modules/concat-map": {
553 | "version": "0.0.1",
554 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
555 | "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
556 | "dev": true
557 | },
558 | "node_modules/core-util-is": {
559 | "version": "1.0.2",
560 | "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
561 | "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=",
562 | "dev": true
563 | },
564 | "node_modules/corser": {
565 | "version": "2.0.1",
566 | "resolved": "https://registry.npmjs.org/corser/-/corser-2.0.1.tgz",
567 | "integrity": "sha1-jtolLsqrWEDc2XXOuQ2TcMgZ/4c=",
568 | "dev": true,
569 | "engines": {
570 | "node": ">= 0.4.0"
571 | }
572 | },
573 | "node_modules/create-require": {
574 | "version": "1.1.1",
575 | "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz",
576 | "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==",
577 | "dev": true
578 | },
579 | "node_modules/cross-env": {
580 | "version": "7.0.3",
581 | "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-7.0.3.tgz",
582 | "integrity": "sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==",
583 | "dev": true,
584 | "license": "MIT",
585 | "dependencies": {
586 | "cross-spawn": "^7.0.1"
587 | },
588 | "bin": {
589 | "cross-env": "src/bin/cross-env.js",
590 | "cross-env-shell": "src/bin/cross-env-shell.js"
591 | },
592 | "engines": {
593 | "node": ">=10.14",
594 | "npm": ">=6",
595 | "yarn": ">=1"
596 | }
597 | },
598 | "node_modules/cross-spawn": {
599 | "version": "7.0.3",
600 | "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
601 | "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
602 | "dev": true,
603 | "dependencies": {
604 | "path-key": "^3.1.0",
605 | "shebang-command": "^2.0.0",
606 | "which": "^2.0.1"
607 | },
608 | "engines": {
609 | "node": ">= 8"
610 | }
611 | },
612 | "node_modules/debug": {
613 | "version": "3.2.7",
614 | "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
615 | "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
616 | "dev": true,
617 | "dependencies": {
618 | "ms": "^2.1.1"
619 | }
620 | },
621 | "node_modules/del": {
622 | "version": "4.1.1",
623 | "resolved": "https://registry.npmjs.org/del/-/del-4.1.1.tgz",
624 | "integrity": "sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ==",
625 | "dev": true,
626 | "dependencies": {
627 | "@types/glob": "^7.1.1",
628 | "globby": "^6.1.0",
629 | "is-path-cwd": "^2.0.0",
630 | "is-path-in-cwd": "^2.0.0",
631 | "p-map": "^2.0.0",
632 | "pify": "^4.0.1",
633 | "rimraf": "^2.6.3"
634 | },
635 | "engines": {
636 | "node": ">=6"
637 | }
638 | },
639 | "node_modules/diff": {
640 | "version": "4.0.2",
641 | "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz",
642 | "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==",
643 | "dev": true,
644 | "engines": {
645 | "node": ">=0.3.1"
646 | }
647 | },
648 | "node_modules/ecstatic": {
649 | "version": "3.3.2",
650 | "resolved": "https://registry.npmjs.org/ecstatic/-/ecstatic-3.3.2.tgz",
651 | "integrity": "sha512-fLf9l1hnwrHI2xn9mEDT7KIi22UDqA2jaCwyCbSUJh9a1V+LEUSL/JO/6TIz/QyuBURWUHrFL5Kg2TtO1bkkog==",
652 | "dev": true,
653 | "dependencies": {
654 | "he": "^1.1.1",
655 | "mime": "^1.6.0",
656 | "minimist": "^1.1.0",
657 | "url-join": "^2.0.5"
658 | },
659 | "bin": {
660 | "ecstatic": "lib/ecstatic.js"
661 | }
662 | },
663 | "node_modules/electron-to-chromium": {
664 | "version": "1.3.684",
665 | "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.684.tgz",
666 | "integrity": "sha512-GV/vz2EmmtRSvfGSQ5A0Lucic//IRSDijgL15IgzbBEEnp4rfbxeUSZSlBfmsj7BQvE4sBdgfsvPzLCnp6L21w==",
667 | "dev": true
668 | },
669 | "node_modules/emojis-list": {
670 | "version": "3.0.0",
671 | "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz",
672 | "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==",
673 | "dev": true,
674 | "engines": {
675 | "node": ">= 4"
676 | }
677 | },
678 | "node_modules/enhanced-resolve": {
679 | "version": "4.5.0",
680 | "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.5.0.tgz",
681 | "integrity": "sha512-Nv9m36S/vxpsI+Hc4/ZGRs0n9mXqSWGGq49zxb/cJfPAQMbUtttJAlNPS4AQzaBdw/pKskw5bMbekT/Y7W/Wlg==",
682 | "dev": true,
683 | "dependencies": {
684 | "graceful-fs": "^4.1.2",
685 | "memory-fs": "^0.5.0",
686 | "tapable": "^1.0.0"
687 | },
688 | "engines": {
689 | "node": ">=6.9.0"
690 | }
691 | },
692 | "node_modules/errno": {
693 | "version": "0.1.8",
694 | "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz",
695 | "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==",
696 | "dev": true,
697 | "dependencies": {
698 | "prr": "~1.0.1"
699 | },
700 | "bin": {
701 | "errno": "cli.js"
702 | }
703 | },
704 | "node_modules/es-module-lexer": {
705 | "version": "0.4.1",
706 | "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.4.1.tgz",
707 | "integrity": "sha512-ooYciCUtfw6/d2w56UVeqHPcoCFAiJdz5XOkYpv/Txl1HMUozpXjz/2RIQgqwKdXNDPSF1W7mJCFse3G+HDyAA==",
708 | "dev": true
709 | },
710 | "node_modules/escalade": {
711 | "version": "3.1.1",
712 | "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz",
713 | "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==",
714 | "dev": true,
715 | "engines": {
716 | "node": ">=6"
717 | }
718 | },
719 | "node_modules/eslint-scope": {
720 | "version": "5.1.1",
721 | "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz",
722 | "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==",
723 | "dev": true,
724 | "dependencies": {
725 | "esrecurse": "^4.3.0",
726 | "estraverse": "^4.1.1"
727 | },
728 | "engines": {
729 | "node": ">=8.0.0"
730 | }
731 | },
732 | "node_modules/esrecurse": {
733 | "version": "4.3.0",
734 | "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz",
735 | "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==",
736 | "dev": true,
737 | "dependencies": {
738 | "estraverse": "^5.2.0"
739 | },
740 | "engines": {
741 | "node": ">=4.0"
742 | }
743 | },
744 | "node_modules/esrecurse/node_modules/estraverse": {
745 | "version": "5.2.0",
746 | "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz",
747 | "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==",
748 | "dev": true,
749 | "engines": {
750 | "node": ">=4.0"
751 | }
752 | },
753 | "node_modules/estraverse": {
754 | "version": "4.3.0",
755 | "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz",
756 | "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==",
757 | "dev": true,
758 | "engines": {
759 | "node": ">=4.0"
760 | }
761 | },
762 | "node_modules/eventemitter3": {
763 | "version": "4.0.7",
764 | "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz",
765 | "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==",
766 | "dev": true
767 | },
768 | "node_modules/events": {
769 | "version": "3.3.0",
770 | "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz",
771 | "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==",
772 | "dev": true,
773 | "engines": {
774 | "node": ">=0.8.x"
775 | }
776 | },
777 | "node_modules/fast-deep-equal": {
778 | "version": "3.1.3",
779 | "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
780 | "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==",
781 | "dev": true
782 | },
783 | "node_modules/fast-json-stable-stringify": {
784 | "version": "2.1.0",
785 | "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
786 | "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==",
787 | "dev": true
788 | },
789 | "node_modules/fill-range": {
790 | "version": "7.0.1",
791 | "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
792 | "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
793 | "dev": true,
794 | "dependencies": {
795 | "to-regex-range": "^5.0.1"
796 | },
797 | "engines": {
798 | "node": ">=8"
799 | }
800 | },
801 | "node_modules/follow-redirects": {
802 | "version": "1.13.3",
803 | "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.13.3.tgz",
804 | "integrity": "sha512-DUgl6+HDzB0iEptNQEXLx/KhTmDb8tZUHSeLqpnjpknR70H0nC2t9N73BK6fN4hOvJ84pKlIQVQ4k5FFlBedKA==",
805 | "dev": true,
806 | "funding": [
807 | {
808 | "type": "individual",
809 | "url": "https://github.com/sponsors/RubenVerborgh"
810 | }
811 | ],
812 | "engines": {
813 | "node": ">=4.0"
814 | },
815 | "peerDependenciesMeta": {
816 | "debug": {
817 | "optional": true
818 | }
819 | }
820 | },
821 | "node_modules/fs.realpath": {
822 | "version": "1.0.0",
823 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
824 | "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
825 | "dev": true
826 | },
827 | "node_modules/gl-matrix": {
828 | "version": "3.3.0",
829 | "resolved": "https://registry.npmjs.org/gl-matrix/-/gl-matrix-3.3.0.tgz",
830 | "integrity": "sha512-COb7LDz+SXaHtl/h4LeaFcNdJdAQSDeVqjiIihSXNrkWObZLhDI4hIkZC11Aeqp7bcE72clzB0BnDXr2SmslRA=="
831 | },
832 | "node_modules/glob": {
833 | "version": "7.1.6",
834 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
835 | "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==",
836 | "dev": true,
837 | "dependencies": {
838 | "fs.realpath": "^1.0.0",
839 | "inflight": "^1.0.4",
840 | "inherits": "2",
841 | "minimatch": "^3.0.4",
842 | "once": "^1.3.0",
843 | "path-is-absolute": "^1.0.0"
844 | },
845 | "engines": {
846 | "node": "*"
847 | },
848 | "funding": {
849 | "url": "https://github.com/sponsors/isaacs"
850 | }
851 | },
852 | "node_modules/glob-to-regexp": {
853 | "version": "0.4.1",
854 | "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz",
855 | "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==",
856 | "dev": true
857 | },
858 | "node_modules/globby": {
859 | "version": "6.1.0",
860 | "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz",
861 | "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=",
862 | "dev": true,
863 | "dependencies": {
864 | "array-union": "^1.0.1",
865 | "glob": "^7.0.3",
866 | "object-assign": "^4.0.1",
867 | "pify": "^2.0.0",
868 | "pinkie-promise": "^2.0.0"
869 | },
870 | "engines": {
871 | "node": ">=0.10.0"
872 | }
873 | },
874 | "node_modules/globby/node_modules/pify": {
875 | "version": "2.3.0",
876 | "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
877 | "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
878 | "dev": true,
879 | "engines": {
880 | "node": ">=0.10.0"
881 | }
882 | },
883 | "node_modules/graceful-fs": {
884 | "version": "4.2.6",
885 | "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz",
886 | "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==",
887 | "dev": true
888 | },
889 | "node_modules/has-flag": {
890 | "version": "4.0.0",
891 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
892 | "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
893 | "dev": true,
894 | "engines": {
895 | "node": ">=8"
896 | }
897 | },
898 | "node_modules/he": {
899 | "version": "1.2.0",
900 | "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz",
901 | "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==",
902 | "dev": true,
903 | "bin": {
904 | "he": "bin/he"
905 | }
906 | },
907 | "node_modules/http-proxy": {
908 | "version": "1.18.1",
909 | "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz",
910 | "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==",
911 | "dev": true,
912 | "dependencies": {
913 | "eventemitter3": "^4.0.0",
914 | "follow-redirects": "^1.0.0",
915 | "requires-port": "^1.0.0"
916 | },
917 | "engines": {
918 | "node": ">=8.0.0"
919 | }
920 | },
921 | "node_modules/http-server": {
922 | "version": "0.12.3",
923 | "resolved": "https://registry.npmjs.org/http-server/-/http-server-0.12.3.tgz",
924 | "integrity": "sha512-be0dKG6pni92bRjq0kvExtj/NrrAd28/8fCXkaI/4piTwQMSDSLMhWyW0NI1V+DBI3aa1HMlQu46/HjVLfmugA==",
925 | "dev": true,
926 | "dependencies": {
927 | "basic-auth": "^1.0.3",
928 | "colors": "^1.4.0",
929 | "corser": "^2.0.1",
930 | "ecstatic": "^3.3.2",
931 | "http-proxy": "^1.18.0",
932 | "minimist": "^1.2.5",
933 | "opener": "^1.5.1",
934 | "portfinder": "^1.0.25",
935 | "secure-compare": "3.0.1",
936 | "union": "~0.5.0"
937 | },
938 | "bin": {
939 | "hs": "bin/http-server",
940 | "http-server": "bin/http-server"
941 | },
942 | "engines": {
943 | "node": ">=6"
944 | }
945 | },
946 | "node_modules/inflight": {
947 | "version": "1.0.6",
948 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
949 | "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
950 | "dev": true,
951 | "dependencies": {
952 | "once": "^1.3.0",
953 | "wrappy": "1"
954 | }
955 | },
956 | "node_modules/inherits": {
957 | "version": "2.0.4",
958 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
959 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
960 | "dev": true
961 | },
962 | "node_modules/is-number": {
963 | "version": "7.0.0",
964 | "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
965 | "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
966 | "dev": true,
967 | "engines": {
968 | "node": ">=0.12.0"
969 | }
970 | },
971 | "node_modules/is-path-cwd": {
972 | "version": "2.2.0",
973 | "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz",
974 | "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==",
975 | "dev": true,
976 | "engines": {
977 | "node": ">=6"
978 | }
979 | },
980 | "node_modules/is-path-in-cwd": {
981 | "version": "2.1.0",
982 | "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz",
983 | "integrity": "sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ==",
984 | "dev": true,
985 | "dependencies": {
986 | "is-path-inside": "^2.1.0"
987 | },
988 | "engines": {
989 | "node": ">=6"
990 | }
991 | },
992 | "node_modules/is-path-inside": {
993 | "version": "2.1.0",
994 | "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-2.1.0.tgz",
995 | "integrity": "sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg==",
996 | "dev": true,
997 | "dependencies": {
998 | "path-is-inside": "^1.0.2"
999 | },
1000 | "engines": {
1001 | "node": ">=6"
1002 | }
1003 | },
1004 | "node_modules/isarray": {
1005 | "version": "1.0.0",
1006 | "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
1007 | "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
1008 | "dev": true
1009 | },
1010 | "node_modules/isexe": {
1011 | "version": "2.0.0",
1012 | "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
1013 | "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=",
1014 | "dev": true
1015 | },
1016 | "node_modules/jest-worker": {
1017 | "version": "26.6.2",
1018 | "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz",
1019 | "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==",
1020 | "dev": true,
1021 | "dependencies": {
1022 | "@types/node": "*",
1023 | "merge-stream": "^2.0.0",
1024 | "supports-color": "^7.0.0"
1025 | },
1026 | "engines": {
1027 | "node": ">= 10.13.0"
1028 | }
1029 | },
1030 | "node_modules/json-parse-better-errors": {
1031 | "version": "1.0.2",
1032 | "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz",
1033 | "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==",
1034 | "dev": true
1035 | },
1036 | "node_modules/json-schema-traverse": {
1037 | "version": "0.4.1",
1038 | "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
1039 | "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
1040 | "dev": true
1041 | },
1042 | "node_modules/json5": {
1043 | "version": "2.2.0",
1044 | "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz",
1045 | "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==",
1046 | "dev": true,
1047 | "dependencies": {
1048 | "minimist": "^1.2.5"
1049 | },
1050 | "bin": {
1051 | "json5": "lib/cli.js"
1052 | },
1053 | "engines": {
1054 | "node": ">=6"
1055 | }
1056 | },
1057 | "node_modules/loader-runner": {
1058 | "version": "4.2.0",
1059 | "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.2.0.tgz",
1060 | "integrity": "sha512-92+huvxMvYlMzMt0iIOukcwYBFpkYJdpl2xsZ7LrlayO7E8SOv+JJUEK17B/dJIHAOLMfh2dZZ/Y18WgmGtYNw==",
1061 | "dev": true,
1062 | "engines": {
1063 | "node": ">=6.11.5"
1064 | }
1065 | },
1066 | "node_modules/loader-utils": {
1067 | "version": "2.0.0",
1068 | "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz",
1069 | "integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==",
1070 | "dev": true,
1071 | "dependencies": {
1072 | "big.js": "^5.2.2",
1073 | "emojis-list": "^3.0.0",
1074 | "json5": "^2.1.2"
1075 | },
1076 | "engines": {
1077 | "node": ">=8.9.0"
1078 | }
1079 | },
1080 | "node_modules/lodash": {
1081 | "version": "4.17.21",
1082 | "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
1083 | "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==",
1084 | "dev": true
1085 | },
1086 | "node_modules/lru-cache": {
1087 | "version": "6.0.0",
1088 | "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
1089 | "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
1090 | "dev": true,
1091 | "dependencies": {
1092 | "yallist": "^4.0.0"
1093 | },
1094 | "engines": {
1095 | "node": ">=10"
1096 | }
1097 | },
1098 | "node_modules/make-error": {
1099 | "version": "1.3.6",
1100 | "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz",
1101 | "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==",
1102 | "dev": true
1103 | },
1104 | "node_modules/memory-fs": {
1105 | "version": "0.5.0",
1106 | "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.5.0.tgz",
1107 | "integrity": "sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==",
1108 | "dev": true,
1109 | "dependencies": {
1110 | "errno": "^0.1.3",
1111 | "readable-stream": "^2.0.1"
1112 | },
1113 | "engines": {
1114 | "node": ">=4.3.0 <5.0.0 || >=5.10"
1115 | }
1116 | },
1117 | "node_modules/merge-stream": {
1118 | "version": "2.0.0",
1119 | "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz",
1120 | "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==",
1121 | "dev": true
1122 | },
1123 | "node_modules/micromatch": {
1124 | "version": "4.0.2",
1125 | "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz",
1126 | "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==",
1127 | "dev": true,
1128 | "dependencies": {
1129 | "braces": "^3.0.1",
1130 | "picomatch": "^2.0.5"
1131 | },
1132 | "engines": {
1133 | "node": ">=8"
1134 | }
1135 | },
1136 | "node_modules/mime": {
1137 | "version": "1.6.0",
1138 | "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
1139 | "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==",
1140 | "dev": true,
1141 | "bin": {
1142 | "mime": "cli.js"
1143 | },
1144 | "engines": {
1145 | "node": ">=4"
1146 | }
1147 | },
1148 | "node_modules/mime-db": {
1149 | "version": "1.46.0",
1150 | "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.46.0.tgz",
1151 | "integrity": "sha512-svXaP8UQRZ5K7or+ZmfNhg2xX3yKDMUzqadsSqi4NCH/KomcH75MAMYAGVlvXn4+b/xOPhS3I2uHKRUzvjY7BQ==",
1152 | "dev": true,
1153 | "engines": {
1154 | "node": ">= 0.6"
1155 | }
1156 | },
1157 | "node_modules/mime-types": {
1158 | "version": "2.1.29",
1159 | "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.29.tgz",
1160 | "integrity": "sha512-Y/jMt/S5sR9OaqteJtslsFZKWOIIqMACsJSiHghlCAyhf7jfVYjKBmLiX8OgpWeW+fjJ2b+Az69aPFPkUOY6xQ==",
1161 | "dev": true,
1162 | "dependencies": {
1163 | "mime-db": "1.46.0"
1164 | },
1165 | "engines": {
1166 | "node": ">= 0.6"
1167 | }
1168 | },
1169 | "node_modules/minimatch": {
1170 | "version": "3.0.4",
1171 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
1172 | "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
1173 | "dev": true,
1174 | "dependencies": {
1175 | "brace-expansion": "^1.1.7"
1176 | },
1177 | "engines": {
1178 | "node": "*"
1179 | }
1180 | },
1181 | "node_modules/minimist": {
1182 | "version": "1.2.5",
1183 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
1184 | "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==",
1185 | "dev": true
1186 | },
1187 | "node_modules/mkdirp": {
1188 | "version": "0.5.5",
1189 | "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz",
1190 | "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==",
1191 | "dev": true,
1192 | "dependencies": {
1193 | "minimist": "^1.2.5"
1194 | },
1195 | "bin": {
1196 | "mkdirp": "bin/cmd.js"
1197 | }
1198 | },
1199 | "node_modules/ms": {
1200 | "version": "2.1.3",
1201 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
1202 | "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
1203 | "dev": true
1204 | },
1205 | "node_modules/neo-async": {
1206 | "version": "2.6.2",
1207 | "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz",
1208 | "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==",
1209 | "dev": true
1210 | },
1211 | "node_modules/node-releases": {
1212 | "version": "1.1.71",
1213 | "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.71.tgz",
1214 | "integrity": "sha512-zR6HoT6LrLCRBwukmrVbHv0EpEQjksO6GmFcZQQuCAy139BEsoVKPYnf3jongYW83fAa1torLGYwxxky/p28sg==",
1215 | "dev": true
1216 | },
1217 | "node_modules/object-assign": {
1218 | "version": "4.1.1",
1219 | "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
1220 | "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
1221 | "dev": true,
1222 | "engines": {
1223 | "node": ">=0.10.0"
1224 | }
1225 | },
1226 | "node_modules/once": {
1227 | "version": "1.4.0",
1228 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
1229 | "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
1230 | "dev": true,
1231 | "dependencies": {
1232 | "wrappy": "1"
1233 | }
1234 | },
1235 | "node_modules/opener": {
1236 | "version": "1.5.2",
1237 | "resolved": "https://registry.npmjs.org/opener/-/opener-1.5.2.tgz",
1238 | "integrity": "sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==",
1239 | "dev": true,
1240 | "bin": {
1241 | "opener": "bin/opener-bin.js"
1242 | }
1243 | },
1244 | "node_modules/p-limit": {
1245 | "version": "3.1.0",
1246 | "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
1247 | "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
1248 | "dev": true,
1249 | "dependencies": {
1250 | "yocto-queue": "^0.1.0"
1251 | },
1252 | "engines": {
1253 | "node": ">=10"
1254 | },
1255 | "funding": {
1256 | "url": "https://github.com/sponsors/sindresorhus"
1257 | }
1258 | },
1259 | "node_modules/p-map": {
1260 | "version": "2.1.0",
1261 | "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz",
1262 | "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==",
1263 | "dev": true,
1264 | "engines": {
1265 | "node": ">=6"
1266 | }
1267 | },
1268 | "node_modules/path-is-absolute": {
1269 | "version": "1.0.1",
1270 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
1271 | "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
1272 | "dev": true,
1273 | "engines": {
1274 | "node": ">=0.10.0"
1275 | }
1276 | },
1277 | "node_modules/path-is-inside": {
1278 | "version": "1.0.2",
1279 | "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz",
1280 | "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=",
1281 | "dev": true
1282 | },
1283 | "node_modules/path-key": {
1284 | "version": "3.1.1",
1285 | "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
1286 | "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
1287 | "dev": true,
1288 | "engines": {
1289 | "node": ">=8"
1290 | }
1291 | },
1292 | "node_modules/picomatch": {
1293 | "version": "2.2.2",
1294 | "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz",
1295 | "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==",
1296 | "dev": true,
1297 | "engines": {
1298 | "node": ">=8.6"
1299 | },
1300 | "funding": {
1301 | "url": "https://github.com/sponsors/jonschlinkert"
1302 | }
1303 | },
1304 | "node_modules/pify": {
1305 | "version": "4.0.1",
1306 | "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz",
1307 | "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==",
1308 | "dev": true,
1309 | "engines": {
1310 | "node": ">=6"
1311 | }
1312 | },
1313 | "node_modules/pinkie": {
1314 | "version": "2.0.4",
1315 | "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz",
1316 | "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=",
1317 | "dev": true,
1318 | "engines": {
1319 | "node": ">=0.10.0"
1320 | }
1321 | },
1322 | "node_modules/pinkie-promise": {
1323 | "version": "2.0.1",
1324 | "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz",
1325 | "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=",
1326 | "dev": true,
1327 | "dependencies": {
1328 | "pinkie": "^2.0.0"
1329 | },
1330 | "engines": {
1331 | "node": ">=0.10.0"
1332 | }
1333 | },
1334 | "node_modules/portfinder": {
1335 | "version": "1.0.28",
1336 | "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.28.tgz",
1337 | "integrity": "sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA==",
1338 | "dev": true,
1339 | "dependencies": {
1340 | "async": "^2.6.2",
1341 | "debug": "^3.1.1",
1342 | "mkdirp": "^0.5.5"
1343 | },
1344 | "engines": {
1345 | "node": ">= 0.12.0"
1346 | }
1347 | },
1348 | "node_modules/process-nextick-args": {
1349 | "version": "2.0.1",
1350 | "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
1351 | "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==",
1352 | "dev": true
1353 | },
1354 | "node_modules/prr": {
1355 | "version": "1.0.1",
1356 | "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz",
1357 | "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=",
1358 | "dev": true
1359 | },
1360 | "node_modules/punycode": {
1361 | "version": "2.1.1",
1362 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
1363 | "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==",
1364 | "dev": true,
1365 | "engines": {
1366 | "node": ">=6"
1367 | }
1368 | },
1369 | "node_modules/qs": {
1370 | "version": "6.9.6",
1371 | "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.6.tgz",
1372 | "integrity": "sha512-TIRk4aqYLNoJUbd+g2lEdz5kLWIuTMRagAXxl78Q0RiVjAOugHmeKNGdd3cwo/ktpf9aL9epCfFqWDEKysUlLQ==",
1373 | "dev": true,
1374 | "engines": {
1375 | "node": ">=0.6"
1376 | },
1377 | "funding": {
1378 | "url": "https://github.com/sponsors/ljharb"
1379 | }
1380 | },
1381 | "node_modules/randombytes": {
1382 | "version": "2.1.0",
1383 | "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz",
1384 | "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==",
1385 | "dev": true,
1386 | "dependencies": {
1387 | "safe-buffer": "^5.1.0"
1388 | }
1389 | },
1390 | "node_modules/readable-stream": {
1391 | "version": "2.3.7",
1392 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
1393 | "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
1394 | "dev": true,
1395 | "dependencies": {
1396 | "core-util-is": "~1.0.0",
1397 | "inherits": "~2.0.3",
1398 | "isarray": "~1.0.0",
1399 | "process-nextick-args": "~2.0.0",
1400 | "safe-buffer": "~5.1.1",
1401 | "string_decoder": "~1.1.1",
1402 | "util-deprecate": "~1.0.1"
1403 | }
1404 | },
1405 | "node_modules/requires-port": {
1406 | "version": "1.0.0",
1407 | "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz",
1408 | "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=",
1409 | "dev": true
1410 | },
1411 | "node_modules/rimraf": {
1412 | "version": "2.7.1",
1413 | "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
1414 | "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
1415 | "dev": true,
1416 | "dependencies": {
1417 | "glob": "^7.1.3"
1418 | },
1419 | "bin": {
1420 | "rimraf": "bin.js"
1421 | }
1422 | },
1423 | "node_modules/safe-buffer": {
1424 | "version": "5.1.2",
1425 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
1426 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
1427 | "dev": true
1428 | },
1429 | "node_modules/schema-utils": {
1430 | "version": "3.0.0",
1431 | "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz",
1432 | "integrity": "sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA==",
1433 | "dev": true,
1434 | "dependencies": {
1435 | "@types/json-schema": "^7.0.6",
1436 | "ajv": "^6.12.5",
1437 | "ajv-keywords": "^3.5.2"
1438 | },
1439 | "engines": {
1440 | "node": ">= 10.13.0"
1441 | },
1442 | "funding": {
1443 | "type": "opencollective",
1444 | "url": "https://opencollective.com/webpack"
1445 | }
1446 | },
1447 | "node_modules/secure-compare": {
1448 | "version": "3.0.1",
1449 | "resolved": "https://registry.npmjs.org/secure-compare/-/secure-compare-3.0.1.tgz",
1450 | "integrity": "sha1-8aAymzCLIh+uN7mXTz1XjQypmeM=",
1451 | "dev": true
1452 | },
1453 | "node_modules/semver": {
1454 | "version": "7.3.4",
1455 | "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz",
1456 | "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==",
1457 | "dev": true,
1458 | "dependencies": {
1459 | "lru-cache": "^6.0.0"
1460 | },
1461 | "bin": {
1462 | "semver": "bin/semver.js"
1463 | },
1464 | "engines": {
1465 | "node": ">=10"
1466 | }
1467 | },
1468 | "node_modules/serialize-javascript": {
1469 | "version": "5.0.1",
1470 | "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-5.0.1.tgz",
1471 | "integrity": "sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA==",
1472 | "dev": true,
1473 | "dependencies": {
1474 | "randombytes": "^2.1.0"
1475 | }
1476 | },
1477 | "node_modules/shebang-command": {
1478 | "version": "2.0.0",
1479 | "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
1480 | "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
1481 | "dev": true,
1482 | "dependencies": {
1483 | "shebang-regex": "^3.0.0"
1484 | },
1485 | "engines": {
1486 | "node": ">=8"
1487 | }
1488 | },
1489 | "node_modules/shebang-regex": {
1490 | "version": "3.0.0",
1491 | "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
1492 | "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
1493 | "dev": true,
1494 | "engines": {
1495 | "node": ">=8"
1496 | }
1497 | },
1498 | "node_modules/source-list-map": {
1499 | "version": "2.0.1",
1500 | "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz",
1501 | "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==",
1502 | "dev": true
1503 | },
1504 | "node_modules/source-map": {
1505 | "version": "0.6.1",
1506 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
1507 | "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
1508 | "dev": true,
1509 | "engines": {
1510 | "node": ">=0.10.0"
1511 | }
1512 | },
1513 | "node_modules/source-map-support": {
1514 | "version": "0.5.19",
1515 | "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz",
1516 | "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==",
1517 | "dev": true,
1518 | "dependencies": {
1519 | "buffer-from": "^1.0.0",
1520 | "source-map": "^0.6.0"
1521 | }
1522 | },
1523 | "node_modules/string_decoder": {
1524 | "version": "1.1.1",
1525 | "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
1526 | "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
1527 | "dev": true,
1528 | "dependencies": {
1529 | "safe-buffer": "~5.1.0"
1530 | }
1531 | },
1532 | "node_modules/supports-color": {
1533 | "version": "7.2.0",
1534 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
1535 | "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
1536 | "dev": true,
1537 | "dependencies": {
1538 | "has-flag": "^4.0.0"
1539 | },
1540 | "engines": {
1541 | "node": ">=8"
1542 | }
1543 | },
1544 | "node_modules/tapable": {
1545 | "version": "1.1.3",
1546 | "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz",
1547 | "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==",
1548 | "dev": true,
1549 | "engines": {
1550 | "node": ">=6"
1551 | }
1552 | },
1553 | "node_modules/terser": {
1554 | "version": "5.6.0",
1555 | "resolved": "https://registry.npmjs.org/terser/-/terser-5.6.0.tgz",
1556 | "integrity": "sha512-vyqLMoqadC1uR0vywqOZzriDYzgEkNJFK4q9GeyOBHIbiECHiWLKcWfbQWAUaPfxkjDhapSlZB9f7fkMrvkVjA==",
1557 | "dev": true,
1558 | "dependencies": {
1559 | "commander": "^2.20.0",
1560 | "source-map": "~0.7.2",
1561 | "source-map-support": "~0.5.19"
1562 | },
1563 | "bin": {
1564 | "terser": "bin/terser"
1565 | },
1566 | "engines": {
1567 | "node": ">=10"
1568 | }
1569 | },
1570 | "node_modules/terser-webpack-plugin": {
1571 | "version": "5.1.1",
1572 | "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.1.1.tgz",
1573 | "integrity": "sha512-5XNNXZiR8YO6X6KhSGXfY0QrGrCRlSwAEjIIrlRQR4W8nP69TaJUlh3bkuac6zzgspiGPfKEHcY295MMVExl5Q==",
1574 | "dev": true,
1575 | "dependencies": {
1576 | "jest-worker": "^26.6.2",
1577 | "p-limit": "^3.1.0",
1578 | "schema-utils": "^3.0.0",
1579 | "serialize-javascript": "^5.0.1",
1580 | "source-map": "^0.6.1",
1581 | "terser": "^5.5.1"
1582 | },
1583 | "engines": {
1584 | "node": ">= 10.13.0"
1585 | },
1586 | "funding": {
1587 | "type": "opencollective",
1588 | "url": "https://opencollective.com/webpack"
1589 | },
1590 | "peerDependencies": {
1591 | "webpack": "^5.1.0"
1592 | }
1593 | },
1594 | "node_modules/terser/node_modules/source-map": {
1595 | "version": "0.7.3",
1596 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz",
1597 | "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==",
1598 | "dev": true,
1599 | "engines": {
1600 | "node": ">= 8"
1601 | }
1602 | },
1603 | "node_modules/to-regex-range": {
1604 | "version": "5.0.1",
1605 | "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
1606 | "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
1607 | "dev": true,
1608 | "dependencies": {
1609 | "is-number": "^7.0.0"
1610 | },
1611 | "engines": {
1612 | "node": ">=8.0"
1613 | }
1614 | },
1615 | "node_modules/ts-loader": {
1616 | "version": "8.0.17",
1617 | "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-8.0.17.tgz",
1618 | "integrity": "sha512-OeVfSshx6ot/TCxRwpBHQ/4lRzfgyTkvi7ghDVrLXOHzTbSK413ROgu/xNqM72i3AFeAIJgQy78FwSMKmOW68w==",
1619 | "dev": true,
1620 | "dependencies": {
1621 | "chalk": "^4.1.0",
1622 | "enhanced-resolve": "^4.0.0",
1623 | "loader-utils": "^2.0.0",
1624 | "micromatch": "^4.0.0",
1625 | "semver": "^7.3.4"
1626 | },
1627 | "engines": {
1628 | "node": ">=10.0.0"
1629 | },
1630 | "peerDependencies": {
1631 | "typescript": "*",
1632 | "webpack": "*"
1633 | }
1634 | },
1635 | "node_modules/ts-node": {
1636 | "version": "9.1.1",
1637 | "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-9.1.1.tgz",
1638 | "integrity": "sha512-hPlt7ZACERQGf03M253ytLY3dHbGNGrAq9qIHWUY9XHYl1z7wYngSr3OQ5xmui8o2AaxsONxIzjafLUiWBo1Fg==",
1639 | "dev": true,
1640 | "dependencies": {
1641 | "arg": "^4.1.0",
1642 | "create-require": "^1.1.0",
1643 | "diff": "^4.0.1",
1644 | "make-error": "^1.1.1",
1645 | "source-map-support": "^0.5.17",
1646 | "yn": "3.1.1"
1647 | },
1648 | "bin": {
1649 | "ts-node": "dist/bin.js",
1650 | "ts-node-script": "dist/bin-script.js",
1651 | "ts-node-transpile-only": "dist/bin-transpile.js",
1652 | "ts-script": "dist/bin-script-deprecated.js"
1653 | },
1654 | "engines": {
1655 | "node": ">=10.0.0"
1656 | },
1657 | "peerDependencies": {
1658 | "typescript": ">=2.7"
1659 | }
1660 | },
1661 | "node_modules/tslib": {
1662 | "version": "1.14.1",
1663 | "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
1664 | "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
1665 | "dev": true
1666 | },
1667 | "node_modules/typescript": {
1668 | "version": "4.2.3",
1669 | "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.2.3.tgz",
1670 | "integrity": "sha512-qOcYwxaByStAWrBf4x0fibwZvMRG+r4cQoTjbPtUlrWjBHbmCAww1i448U0GJ+3cNNEtebDteo/cHOR3xJ4wEw==",
1671 | "dev": true,
1672 | "bin": {
1673 | "tsc": "bin/tsc",
1674 | "tsserver": "bin/tsserver"
1675 | },
1676 | "engines": {
1677 | "node": ">=4.2.0"
1678 | }
1679 | },
1680 | "node_modules/union": {
1681 | "version": "0.5.0",
1682 | "resolved": "https://registry.npmjs.org/union/-/union-0.5.0.tgz",
1683 | "integrity": "sha512-N6uOhuW6zO95P3Mel2I2zMsbsanvvtgn6jVqJv4vbVcz/JN0OkL9suomjQGmWtxJQXOCqUJvquc1sMeNz/IwlA==",
1684 | "dev": true,
1685 | "dependencies": {
1686 | "qs": "^6.4.0"
1687 | },
1688 | "engines": {
1689 | "node": ">= 0.8.0"
1690 | }
1691 | },
1692 | "node_modules/uri-js": {
1693 | "version": "4.4.1",
1694 | "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
1695 | "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
1696 | "dev": true,
1697 | "dependencies": {
1698 | "punycode": "^2.1.0"
1699 | }
1700 | },
1701 | "node_modules/url-join": {
1702 | "version": "2.0.5",
1703 | "resolved": "https://registry.npmjs.org/url-join/-/url-join-2.0.5.tgz",
1704 | "integrity": "sha1-WvIvGMBSoACkjXuCxenC4v7tpyg=",
1705 | "dev": true
1706 | },
1707 | "node_modules/util-deprecate": {
1708 | "version": "1.0.2",
1709 | "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
1710 | "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=",
1711 | "dev": true
1712 | },
1713 | "node_modules/watchpack": {
1714 | "version": "2.1.1",
1715 | "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.1.1.tgz",
1716 | "integrity": "sha512-Oo7LXCmc1eE1AjyuSBmtC3+Wy4HcV8PxWh2kP6fOl8yTlNS7r0K9l1ao2lrrUza7V39Y3D/BbJgY8VeSlc5JKw==",
1717 | "dev": true,
1718 | "dependencies": {
1719 | "glob-to-regexp": "^0.4.1",
1720 | "graceful-fs": "^4.1.2"
1721 | },
1722 | "engines": {
1723 | "node": ">=10.13.0"
1724 | }
1725 | },
1726 | "node_modules/webpack": {
1727 | "version": "5.24.4",
1728 | "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.24.4.tgz",
1729 | "integrity": "sha512-RXOdxF9hFFFhg47BryCgyFrEyyu7Y/75/uiI2DoUiTMqysK+WczVSTppvkR47oZcmI/DPaXCiCiaXBP8QjkNpA==",
1730 | "dev": true,
1731 | "dependencies": {
1732 | "@types/eslint-scope": "^3.7.0",
1733 | "@types/estree": "^0.0.46",
1734 | "@webassemblyjs/ast": "1.11.0",
1735 | "@webassemblyjs/wasm-edit": "1.11.0",
1736 | "@webassemblyjs/wasm-parser": "1.11.0",
1737 | "acorn": "^8.0.4",
1738 | "browserslist": "^4.14.5",
1739 | "chrome-trace-event": "^1.0.2",
1740 | "enhanced-resolve": "^5.7.0",
1741 | "es-module-lexer": "^0.4.0",
1742 | "eslint-scope": "^5.1.1",
1743 | "events": "^3.2.0",
1744 | "glob-to-regexp": "^0.4.1",
1745 | "graceful-fs": "^4.2.4",
1746 | "json-parse-better-errors": "^1.0.2",
1747 | "loader-runner": "^4.2.0",
1748 | "mime-types": "^2.1.27",
1749 | "neo-async": "^2.6.2",
1750 | "schema-utils": "^3.0.0",
1751 | "tapable": "^2.1.1",
1752 | "terser-webpack-plugin": "^5.1.1",
1753 | "watchpack": "^2.0.0",
1754 | "webpack-sources": "^2.1.1"
1755 | },
1756 | "bin": {
1757 | "webpack": "bin/webpack.js"
1758 | },
1759 | "engines": {
1760 | "node": ">=10.13.0"
1761 | },
1762 | "funding": {
1763 | "type": "opencollective",
1764 | "url": "https://opencollective.com/webpack"
1765 | },
1766 | "peerDependenciesMeta": {
1767 | "webpack-cli": {
1768 | "optional": true
1769 | }
1770 | }
1771 | },
1772 | "node_modules/webpack-sources": {
1773 | "version": "2.2.0",
1774 | "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-2.2.0.tgz",
1775 | "integrity": "sha512-bQsA24JLwcnWGArOKUxYKhX3Mz/nK1Xf6hxullKERyktjNMC4x8koOeaDNTA2fEJ09BdWLbM/iTW0ithREUP0w==",
1776 | "dev": true,
1777 | "dependencies": {
1778 | "source-list-map": "^2.0.1",
1779 | "source-map": "^0.6.1"
1780 | },
1781 | "engines": {
1782 | "node": ">=10.13.0"
1783 | }
1784 | },
1785 | "node_modules/webpack/node_modules/enhanced-resolve": {
1786 | "version": "5.7.0",
1787 | "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.7.0.tgz",
1788 | "integrity": "sha512-6njwt/NsZFUKhM6j9U8hzVyD4E4r0x7NQzhTCbcWOJ0IQjNSAoalWmb0AE51Wn+fwan5qVESWi7t2ToBxs9vrw==",
1789 | "dev": true,
1790 | "dependencies": {
1791 | "graceful-fs": "^4.2.4",
1792 | "tapable": "^2.2.0"
1793 | },
1794 | "engines": {
1795 | "node": ">=10.13.0"
1796 | }
1797 | },
1798 | "node_modules/webpack/node_modules/tapable": {
1799 | "version": "2.2.0",
1800 | "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.0.tgz",
1801 | "integrity": "sha512-FBk4IesMV1rBxX2tfiK8RAmogtWn53puLOQlvO8XuwlgxcYbP4mVPS9Ph4aeamSyyVjOl24aYWAuc8U5kCVwMw==",
1802 | "dev": true,
1803 | "engines": {
1804 | "node": ">=6"
1805 | }
1806 | },
1807 | "node_modules/which": {
1808 | "version": "2.0.2",
1809 | "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
1810 | "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
1811 | "dev": true,
1812 | "dependencies": {
1813 | "isexe": "^2.0.0"
1814 | },
1815 | "bin": {
1816 | "node-which": "bin/node-which"
1817 | },
1818 | "engines": {
1819 | "node": ">= 8"
1820 | }
1821 | },
1822 | "node_modules/wrappy": {
1823 | "version": "1.0.2",
1824 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
1825 | "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
1826 | "dev": true
1827 | },
1828 | "node_modules/yallist": {
1829 | "version": "4.0.0",
1830 | "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
1831 | "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
1832 | "dev": true
1833 | },
1834 | "node_modules/yn": {
1835 | "version": "3.1.1",
1836 | "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz",
1837 | "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==",
1838 | "dev": true,
1839 | "engines": {
1840 | "node": ">=6"
1841 | }
1842 | },
1843 | "node_modules/yocto-queue": {
1844 | "version": "0.1.0",
1845 | "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz",
1846 | "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==",
1847 | "dev": true,
1848 | "engines": {
1849 | "node": ">=10"
1850 | },
1851 | "funding": {
1852 | "url": "https://github.com/sponsors/sindresorhus"
1853 | }
1854 | }
1855 | },
1856 | "dependencies": {
1857 | "@types/anymatch": {
1858 | "version": "1.3.1",
1859 | "resolved": "https://registry.npmjs.org/@types/anymatch/-/anymatch-1.3.1.tgz",
1860 | "integrity": "sha512-/+CRPXpBDpo2RK9C68N3b2cOvO0Cf5B9aPijHsoDQTHivnGSObdOF2BRQOYjojWTDy6nQvMjmqRXIxH55VjxxA==",
1861 | "dev": true
1862 | },
1863 | "@types/eslint": {
1864 | "version": "7.2.7",
1865 | "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-7.2.7.tgz",
1866 | "integrity": "sha512-EHXbc1z2GoQRqHaAT7+grxlTJ3WE2YNeD6jlpPoRc83cCoThRY+NUWjCUZaYmk51OICkPXn2hhphcWcWXgNW0Q==",
1867 | "dev": true,
1868 | "requires": {
1869 | "@types/estree": "*",
1870 | "@types/json-schema": "*"
1871 | }
1872 | },
1873 | "@types/eslint-scope": {
1874 | "version": "3.7.0",
1875 | "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.0.tgz",
1876 | "integrity": "sha512-O/ql2+rrCUe2W2rs7wMR+GqPRcgB6UiqN5RhrR5xruFlY7l9YLMn0ZkDzjoHLeiFkR8MCQZVudUuuvQ2BLC9Qw==",
1877 | "dev": true,
1878 | "requires": {
1879 | "@types/eslint": "*",
1880 | "@types/estree": "*"
1881 | }
1882 | },
1883 | "@types/estree": {
1884 | "version": "0.0.46",
1885 | "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.46.tgz",
1886 | "integrity": "sha512-laIjwTQaD+5DukBZaygQ79K1Z0jb1bPEMRrkXSLjtCcZm+abyp5YbrqpSLzD42FwWW6gK/aS4NYpJ804nG2brg==",
1887 | "dev": true
1888 | },
1889 | "@types/glob": {
1890 | "version": "7.1.3",
1891 | "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.3.tgz",
1892 | "integrity": "sha512-SEYeGAIQIQX8NN6LDKprLjbrd5dARM5EXsd8GI/A5l0apYI1fGMWgPHSe4ZKL4eozlAyI+doUE9XbYS4xCkQ1w==",
1893 | "dev": true,
1894 | "requires": {
1895 | "@types/minimatch": "*",
1896 | "@types/node": "*"
1897 | }
1898 | },
1899 | "@types/json-schema": {
1900 | "version": "7.0.7",
1901 | "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.7.tgz",
1902 | "integrity": "sha512-cxWFQVseBm6O9Gbw1IWb8r6OS4OhSt3hPZLkFApLjM8TEXROBuQGLAH2i2gZpcXdLBIrpXuTDhH7Vbm1iXmNGA==",
1903 | "dev": true
1904 | },
1905 | "@types/minimatch": {
1906 | "version": "3.0.3",
1907 | "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz",
1908 | "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==",
1909 | "dev": true
1910 | },
1911 | "@types/node": {
1912 | "version": "14.14.33",
1913 | "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.33.tgz",
1914 | "integrity": "sha512-oJqcTrgPUF29oUP8AsUqbXGJNuPutsetaa9kTQAQce5Lx5dTYWV02ScBiT/k1BX/Z7pKeqedmvp39Wu4zR7N7g==",
1915 | "dev": true
1916 | },
1917 | "@types/source-list-map": {
1918 | "version": "0.1.2",
1919 | "resolved": "https://registry.npmjs.org/@types/source-list-map/-/source-list-map-0.1.2.tgz",
1920 | "integrity": "sha512-K5K+yml8LTo9bWJI/rECfIPrGgxdpeNbj+d53lwN4QjW1MCwlkhUms+gtdzigTeUyBr09+u8BwOIY3MXvHdcsA==",
1921 | "dev": true
1922 | },
1923 | "@types/tapable": {
1924 | "version": "1.0.6",
1925 | "resolved": "https://registry.npmjs.org/@types/tapable/-/tapable-1.0.6.tgz",
1926 | "integrity": "sha512-W+bw9ds02rAQaMvaLYxAbJ6cvguW/iJXNT6lTssS1ps6QdrMKttqEAMEG/b5CR8TZl3/L7/lH0ZV5nNR1LXikA==",
1927 | "dev": true
1928 | },
1929 | "@types/uglify-js": {
1930 | "version": "3.13.0",
1931 | "resolved": "https://registry.npmjs.org/@types/uglify-js/-/uglify-js-3.13.0.tgz",
1932 | "integrity": "sha512-EGkrJD5Uy+Pg0NUR8uA4bJ5WMfljyad0G+784vLCNUkD+QwOJXUbBYExXfVGf7YtyzdQp3L/XMYcliB987kL5Q==",
1933 | "dev": true,
1934 | "requires": {
1935 | "source-map": "^0.6.1"
1936 | }
1937 | },
1938 | "@types/webpack": {
1939 | "version": "4.41.26",
1940 | "resolved": "https://registry.npmjs.org/@types/webpack/-/webpack-4.41.26.tgz",
1941 | "integrity": "sha512-7ZyTfxjCRwexh+EJFwRUM+CDB2XvgHl4vfuqf1ZKrgGvcS5BrNvPQqJh3tsZ0P6h6Aa1qClVHaJZszLPzpqHeA==",
1942 | "dev": true,
1943 | "requires": {
1944 | "@types/anymatch": "*",
1945 | "@types/node": "*",
1946 | "@types/tapable": "*",
1947 | "@types/uglify-js": "*",
1948 | "@types/webpack-sources": "*",
1949 | "source-map": "^0.6.0"
1950 | }
1951 | },
1952 | "@types/webpack-sources": {
1953 | "version": "2.1.0",
1954 | "resolved": "https://registry.npmjs.org/@types/webpack-sources/-/webpack-sources-2.1.0.tgz",
1955 | "integrity": "sha512-LXn/oYIpBeucgP1EIJbKQ2/4ZmpvRl+dlrFdX7+94SKRUV3Evy3FsfMZY318vGhkWUS5MPhtOM3w1/hCOAOXcg==",
1956 | "dev": true,
1957 | "requires": {
1958 | "@types/node": "*",
1959 | "@types/source-list-map": "*",
1960 | "source-map": "^0.7.3"
1961 | },
1962 | "dependencies": {
1963 | "source-map": {
1964 | "version": "0.7.3",
1965 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz",
1966 | "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==",
1967 | "dev": true
1968 | }
1969 | }
1970 | },
1971 | "@webassemblyjs/ast": {
1972 | "version": "1.11.0",
1973 | "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.0.tgz",
1974 | "integrity": "sha512-kX2W49LWsbthrmIRMbQZuQDhGtjyqXfEmmHyEi4XWnSZtPmxY0+3anPIzsnRb45VH/J55zlOfWvZuY47aJZTJg==",
1975 | "dev": true,
1976 | "requires": {
1977 | "@webassemblyjs/helper-numbers": "1.11.0",
1978 | "@webassemblyjs/helper-wasm-bytecode": "1.11.0"
1979 | }
1980 | },
1981 | "@webassemblyjs/floating-point-hex-parser": {
1982 | "version": "1.11.0",
1983 | "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.0.tgz",
1984 | "integrity": "sha512-Q/aVYs/VnPDVYvsCBL/gSgwmfjeCb4LW8+TMrO3cSzJImgv8lxxEPM2JA5jMrivE7LSz3V+PFqtMbls3m1exDA==",
1985 | "dev": true
1986 | },
1987 | "@webassemblyjs/helper-api-error": {
1988 | "version": "1.11.0",
1989 | "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.0.tgz",
1990 | "integrity": "sha512-baT/va95eXiXb2QflSx95QGT5ClzWpGaa8L7JnJbgzoYeaA27FCvuBXU758l+KXWRndEmUXjP0Q5fibhavIn8w==",
1991 | "dev": true
1992 | },
1993 | "@webassemblyjs/helper-buffer": {
1994 | "version": "1.11.0",
1995 | "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.0.tgz",
1996 | "integrity": "sha512-u9HPBEl4DS+vA8qLQdEQ6N/eJQ7gT7aNvMIo8AAWvAl/xMrcOSiI2M0MAnMCy3jIFke7bEee/JwdX1nUpCtdyA==",
1997 | "dev": true
1998 | },
1999 | "@webassemblyjs/helper-numbers": {
2000 | "version": "1.11.0",
2001 | "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.0.tgz",
2002 | "integrity": "sha512-DhRQKelIj01s5IgdsOJMKLppI+4zpmcMQ3XboFPLwCpSNH6Hqo1ritgHgD0nqHeSYqofA6aBN/NmXuGjM1jEfQ==",
2003 | "dev": true,
2004 | "requires": {
2005 | "@webassemblyjs/floating-point-hex-parser": "1.11.0",
2006 | "@webassemblyjs/helper-api-error": "1.11.0",
2007 | "@xtuc/long": "4.2.2"
2008 | }
2009 | },
2010 | "@webassemblyjs/helper-wasm-bytecode": {
2011 | "version": "1.11.0",
2012 | "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.0.tgz",
2013 | "integrity": "sha512-MbmhvxXExm542tWREgSFnOVo07fDpsBJg3sIl6fSp9xuu75eGz5lz31q7wTLffwL3Za7XNRCMZy210+tnsUSEA==",
2014 | "dev": true
2015 | },
2016 | "@webassemblyjs/helper-wasm-section": {
2017 | "version": "1.11.0",
2018 | "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.0.tgz",
2019 | "integrity": "sha512-3Eb88hcbfY/FCukrg6i3EH8H2UsD7x8Vy47iVJrP967A9JGqgBVL9aH71SETPx1JrGsOUVLo0c7vMCN22ytJew==",
2020 | "dev": true,
2021 | "requires": {
2022 | "@webassemblyjs/ast": "1.11.0",
2023 | "@webassemblyjs/helper-buffer": "1.11.0",
2024 | "@webassemblyjs/helper-wasm-bytecode": "1.11.0",
2025 | "@webassemblyjs/wasm-gen": "1.11.0"
2026 | }
2027 | },
2028 | "@webassemblyjs/ieee754": {
2029 | "version": "1.11.0",
2030 | "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.0.tgz",
2031 | "integrity": "sha512-KXzOqpcYQwAfeQ6WbF6HXo+0udBNmw0iXDmEK5sFlmQdmND+tr773Ti8/5T/M6Tl/413ArSJErATd8In3B+WBA==",
2032 | "dev": true,
2033 | "requires": {
2034 | "@xtuc/ieee754": "^1.2.0"
2035 | }
2036 | },
2037 | "@webassemblyjs/leb128": {
2038 | "version": "1.11.0",
2039 | "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.0.tgz",
2040 | "integrity": "sha512-aqbsHa1mSQAbeeNcl38un6qVY++hh8OpCOzxhixSYgbRfNWcxJNJQwe2rezK9XEcssJbbWIkblaJRwGMS9zp+g==",
2041 | "dev": true,
2042 | "requires": {
2043 | "@xtuc/long": "4.2.2"
2044 | }
2045 | },
2046 | "@webassemblyjs/utf8": {
2047 | "version": "1.11.0",
2048 | "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.0.tgz",
2049 | "integrity": "sha512-A/lclGxH6SpSLSyFowMzO/+aDEPU4hvEiooCMXQPcQFPPJaYcPQNKGOCLUySJsYJ4trbpr+Fs08n4jelkVTGVw==",
2050 | "dev": true
2051 | },
2052 | "@webassemblyjs/wasm-edit": {
2053 | "version": "1.11.0",
2054 | "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.0.tgz",
2055 | "integrity": "sha512-JHQ0damXy0G6J9ucyKVXO2j08JVJ2ntkdJlq1UTiUrIgfGMmA7Ik5VdC/L8hBK46kVJgujkBIoMtT8yVr+yVOQ==",
2056 | "dev": true,
2057 | "requires": {
2058 | "@webassemblyjs/ast": "1.11.0",
2059 | "@webassemblyjs/helper-buffer": "1.11.0",
2060 | "@webassemblyjs/helper-wasm-bytecode": "1.11.0",
2061 | "@webassemblyjs/helper-wasm-section": "1.11.0",
2062 | "@webassemblyjs/wasm-gen": "1.11.0",
2063 | "@webassemblyjs/wasm-opt": "1.11.0",
2064 | "@webassemblyjs/wasm-parser": "1.11.0",
2065 | "@webassemblyjs/wast-printer": "1.11.0"
2066 | }
2067 | },
2068 | "@webassemblyjs/wasm-gen": {
2069 | "version": "1.11.0",
2070 | "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.0.tgz",
2071 | "integrity": "sha512-BEUv1aj0WptCZ9kIS30th5ILASUnAPEvE3tVMTrItnZRT9tXCLW2LEXT8ezLw59rqPP9klh9LPmpU+WmRQmCPQ==",
2072 | "dev": true,
2073 | "requires": {
2074 | "@webassemblyjs/ast": "1.11.0",
2075 | "@webassemblyjs/helper-wasm-bytecode": "1.11.0",
2076 | "@webassemblyjs/ieee754": "1.11.0",
2077 | "@webassemblyjs/leb128": "1.11.0",
2078 | "@webassemblyjs/utf8": "1.11.0"
2079 | }
2080 | },
2081 | "@webassemblyjs/wasm-opt": {
2082 | "version": "1.11.0",
2083 | "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.0.tgz",
2084 | "integrity": "sha512-tHUSP5F4ywyh3hZ0+fDQuWxKx3mJiPeFufg+9gwTpYp324mPCQgnuVKwzLTZVqj0duRDovnPaZqDwoyhIO8kYg==",
2085 | "dev": true,
2086 | "requires": {
2087 | "@webassemblyjs/ast": "1.11.0",
2088 | "@webassemblyjs/helper-buffer": "1.11.0",
2089 | "@webassemblyjs/wasm-gen": "1.11.0",
2090 | "@webassemblyjs/wasm-parser": "1.11.0"
2091 | }
2092 | },
2093 | "@webassemblyjs/wasm-parser": {
2094 | "version": "1.11.0",
2095 | "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.0.tgz",
2096 | "integrity": "sha512-6L285Sgu9gphrcpDXINvm0M9BskznnzJTE7gYkjDbxET28shDqp27wpruyx3C2S/dvEwiigBwLA1cz7lNUi0kw==",
2097 | "dev": true,
2098 | "requires": {
2099 | "@webassemblyjs/ast": "1.11.0",
2100 | "@webassemblyjs/helper-api-error": "1.11.0",
2101 | "@webassemblyjs/helper-wasm-bytecode": "1.11.0",
2102 | "@webassemblyjs/ieee754": "1.11.0",
2103 | "@webassemblyjs/leb128": "1.11.0",
2104 | "@webassemblyjs/utf8": "1.11.0"
2105 | }
2106 | },
2107 | "@webassemblyjs/wast-printer": {
2108 | "version": "1.11.0",
2109 | "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.0.tgz",
2110 | "integrity": "sha512-Fg5OX46pRdTgB7rKIUojkh9vXaVN6sGYCnEiJN1GYkb0RPwShZXp6KTDqmoMdQPKhcroOXh3fEzmkWmCYaKYhQ==",
2111 | "dev": true,
2112 | "requires": {
2113 | "@webassemblyjs/ast": "1.11.0",
2114 | "@xtuc/long": "4.2.2"
2115 | }
2116 | },
2117 | "@xtuc/ieee754": {
2118 | "version": "1.2.0",
2119 | "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz",
2120 | "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==",
2121 | "dev": true
2122 | },
2123 | "@xtuc/long": {
2124 | "version": "4.2.2",
2125 | "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz",
2126 | "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==",
2127 | "dev": true
2128 | },
2129 | "acorn": {
2130 | "version": "8.1.0",
2131 | "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.1.0.tgz",
2132 | "integrity": "sha512-LWCF/Wn0nfHOmJ9rzQApGnxnvgfROzGilS8936rqN/lfcYkY9MYZzdMqN+2NJ4SlTc+m5HiSa+kNfDtI64dwUA==",
2133 | "dev": true
2134 | },
2135 | "ajv": {
2136 | "version": "6.12.6",
2137 | "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
2138 | "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
2139 | "dev": true,
2140 | "requires": {
2141 | "fast-deep-equal": "^3.1.1",
2142 | "fast-json-stable-stringify": "^2.0.0",
2143 | "json-schema-traverse": "^0.4.1",
2144 | "uri-js": "^4.2.2"
2145 | }
2146 | },
2147 | "ajv-keywords": {
2148 | "version": "3.5.2",
2149 | "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz",
2150 | "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==",
2151 | "dev": true,
2152 | "requires": {}
2153 | },
2154 | "ansi-styles": {
2155 | "version": "4.3.0",
2156 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
2157 | "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
2158 | "dev": true,
2159 | "requires": {
2160 | "color-convert": "^2.0.1"
2161 | }
2162 | },
2163 | "arg": {
2164 | "version": "4.1.3",
2165 | "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz",
2166 | "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==",
2167 | "dev": true
2168 | },
2169 | "array-union": {
2170 | "version": "1.0.2",
2171 | "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz",
2172 | "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=",
2173 | "dev": true,
2174 | "requires": {
2175 | "array-uniq": "^1.0.1"
2176 | }
2177 | },
2178 | "array-uniq": {
2179 | "version": "1.0.3",
2180 | "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz",
2181 | "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=",
2182 | "dev": true
2183 | },
2184 | "async": {
2185 | "version": "2.6.3",
2186 | "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz",
2187 | "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==",
2188 | "dev": true,
2189 | "requires": {
2190 | "lodash": "^4.17.14"
2191 | }
2192 | },
2193 | "balanced-match": {
2194 | "version": "1.0.0",
2195 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
2196 | "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
2197 | "dev": true
2198 | },
2199 | "basic-auth": {
2200 | "version": "1.1.0",
2201 | "resolved": "https://registry.npmjs.org/basic-auth/-/basic-auth-1.1.0.tgz",
2202 | "integrity": "sha1-RSIe5Cn37h5QNb4/UVM/HN/SmIQ=",
2203 | "dev": true
2204 | },
2205 | "big.js": {
2206 | "version": "5.2.2",
2207 | "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz",
2208 | "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==",
2209 | "dev": true
2210 | },
2211 | "brace-expansion": {
2212 | "version": "1.1.11",
2213 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
2214 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
2215 | "dev": true,
2216 | "requires": {
2217 | "balanced-match": "^1.0.0",
2218 | "concat-map": "0.0.1"
2219 | }
2220 | },
2221 | "braces": {
2222 | "version": "3.0.2",
2223 | "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
2224 | "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
2225 | "dev": true,
2226 | "requires": {
2227 | "fill-range": "^7.0.1"
2228 | }
2229 | },
2230 | "browserslist": {
2231 | "version": "4.16.3",
2232 | "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.3.tgz",
2233 | "integrity": "sha512-vIyhWmIkULaq04Gt93txdh+j02yX/JzlyhLYbV3YQCn/zvES3JnY7TifHHvvr1w5hTDluNKMkV05cs4vy8Q7sw==",
2234 | "dev": true,
2235 | "requires": {
2236 | "caniuse-lite": "^1.0.30001181",
2237 | "colorette": "^1.2.1",
2238 | "electron-to-chromium": "^1.3.649",
2239 | "escalade": "^3.1.1",
2240 | "node-releases": "^1.1.70"
2241 | }
2242 | },
2243 | "buffer-from": {
2244 | "version": "1.1.1",
2245 | "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz",
2246 | "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==",
2247 | "dev": true
2248 | },
2249 | "caniuse-lite": {
2250 | "version": "1.0.30001198",
2251 | "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001198.tgz",
2252 | "integrity": "sha512-r5GGgESqOPZzwvdLVER374FpQu2WluCF1Z2DSiFJ89KSmGjT0LVKjgv4NcAqHmGWF9ihNpqRI9KXO9Ex4sKsgA==",
2253 | "dev": true
2254 | },
2255 | "chalk": {
2256 | "version": "4.1.0",
2257 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz",
2258 | "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==",
2259 | "dev": true,
2260 | "requires": {
2261 | "ansi-styles": "^4.1.0",
2262 | "supports-color": "^7.1.0"
2263 | }
2264 | },
2265 | "chrome-trace-event": {
2266 | "version": "1.0.2",
2267 | "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz",
2268 | "integrity": "sha512-9e/zx1jw7B4CO+c/RXoCsfg/x1AfUBioy4owYH0bJprEYAx5hRFLRhWBqHAG57D0ZM4H7vxbP7bPe0VwhQRYDQ==",
2269 | "dev": true,
2270 | "requires": {
2271 | "tslib": "^1.9.0"
2272 | }
2273 | },
2274 | "clean-webpack-plugin": {
2275 | "version": "3.0.0",
2276 | "resolved": "https://registry.npmjs.org/clean-webpack-plugin/-/clean-webpack-plugin-3.0.0.tgz",
2277 | "integrity": "sha512-MciirUH5r+cYLGCOL5JX/ZLzOZbVr1ot3Fw+KcvbhUb6PM+yycqd9ZhIlcigQ5gl+XhppNmw3bEFuaaMNyLj3A==",
2278 | "dev": true,
2279 | "requires": {
2280 | "@types/webpack": "^4.4.31",
2281 | "del": "^4.1.1"
2282 | }
2283 | },
2284 | "color-convert": {
2285 | "version": "2.0.1",
2286 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
2287 | "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
2288 | "dev": true,
2289 | "requires": {
2290 | "color-name": "~1.1.4"
2291 | }
2292 | },
2293 | "color-name": {
2294 | "version": "1.1.4",
2295 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
2296 | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
2297 | "dev": true
2298 | },
2299 | "colorette": {
2300 | "version": "1.2.2",
2301 | "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.2.tgz",
2302 | "integrity": "sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w==",
2303 | "dev": true
2304 | },
2305 | "colors": {
2306 | "version": "1.4.0",
2307 | "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz",
2308 | "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==",
2309 | "dev": true
2310 | },
2311 | "commander": {
2312 | "version": "2.20.3",
2313 | "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
2314 | "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==",
2315 | "dev": true
2316 | },
2317 | "concat-map": {
2318 | "version": "0.0.1",
2319 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
2320 | "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
2321 | "dev": true
2322 | },
2323 | "core-util-is": {
2324 | "version": "1.0.2",
2325 | "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
2326 | "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=",
2327 | "dev": true
2328 | },
2329 | "corser": {
2330 | "version": "2.0.1",
2331 | "resolved": "https://registry.npmjs.org/corser/-/corser-2.0.1.tgz",
2332 | "integrity": "sha1-jtolLsqrWEDc2XXOuQ2TcMgZ/4c=",
2333 | "dev": true
2334 | },
2335 | "create-require": {
2336 | "version": "1.1.1",
2337 | "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz",
2338 | "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==",
2339 | "dev": true
2340 | },
2341 | "cross-env": {
2342 | "version": "7.0.3",
2343 | "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-7.0.3.tgz",
2344 | "integrity": "sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==",
2345 | "dev": true,
2346 | "requires": {
2347 | "cross-spawn": "^7.0.1"
2348 | }
2349 | },
2350 | "cross-spawn": {
2351 | "version": "7.0.3",
2352 | "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
2353 | "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
2354 | "dev": true,
2355 | "requires": {
2356 | "path-key": "^3.1.0",
2357 | "shebang-command": "^2.0.0",
2358 | "which": "^2.0.1"
2359 | }
2360 | },
2361 | "debug": {
2362 | "version": "3.2.7",
2363 | "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
2364 | "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
2365 | "dev": true,
2366 | "requires": {
2367 | "ms": "^2.1.1"
2368 | }
2369 | },
2370 | "del": {
2371 | "version": "4.1.1",
2372 | "resolved": "https://registry.npmjs.org/del/-/del-4.1.1.tgz",
2373 | "integrity": "sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ==",
2374 | "dev": true,
2375 | "requires": {
2376 | "@types/glob": "^7.1.1",
2377 | "globby": "^6.1.0",
2378 | "is-path-cwd": "^2.0.0",
2379 | "is-path-in-cwd": "^2.0.0",
2380 | "p-map": "^2.0.0",
2381 | "pify": "^4.0.1",
2382 | "rimraf": "^2.6.3"
2383 | }
2384 | },
2385 | "diff": {
2386 | "version": "4.0.2",
2387 | "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz",
2388 | "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==",
2389 | "dev": true
2390 | },
2391 | "ecstatic": {
2392 | "version": "3.3.2",
2393 | "resolved": "https://registry.npmjs.org/ecstatic/-/ecstatic-3.3.2.tgz",
2394 | "integrity": "sha512-fLf9l1hnwrHI2xn9mEDT7KIi22UDqA2jaCwyCbSUJh9a1V+LEUSL/JO/6TIz/QyuBURWUHrFL5Kg2TtO1bkkog==",
2395 | "dev": true,
2396 | "requires": {
2397 | "he": "^1.1.1",
2398 | "mime": "^1.6.0",
2399 | "minimist": "^1.1.0",
2400 | "url-join": "^2.0.5"
2401 | }
2402 | },
2403 | "electron-to-chromium": {
2404 | "version": "1.3.684",
2405 | "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.684.tgz",
2406 | "integrity": "sha512-GV/vz2EmmtRSvfGSQ5A0Lucic//IRSDijgL15IgzbBEEnp4rfbxeUSZSlBfmsj7BQvE4sBdgfsvPzLCnp6L21w==",
2407 | "dev": true
2408 | },
2409 | "emojis-list": {
2410 | "version": "3.0.0",
2411 | "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz",
2412 | "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==",
2413 | "dev": true
2414 | },
2415 | "enhanced-resolve": {
2416 | "version": "4.5.0",
2417 | "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.5.0.tgz",
2418 | "integrity": "sha512-Nv9m36S/vxpsI+Hc4/ZGRs0n9mXqSWGGq49zxb/cJfPAQMbUtttJAlNPS4AQzaBdw/pKskw5bMbekT/Y7W/Wlg==",
2419 | "dev": true,
2420 | "requires": {
2421 | "graceful-fs": "^4.1.2",
2422 | "memory-fs": "^0.5.0",
2423 | "tapable": "^1.0.0"
2424 | }
2425 | },
2426 | "errno": {
2427 | "version": "0.1.8",
2428 | "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz",
2429 | "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==",
2430 | "dev": true,
2431 | "requires": {
2432 | "prr": "~1.0.1"
2433 | }
2434 | },
2435 | "es-module-lexer": {
2436 | "version": "0.4.1",
2437 | "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.4.1.tgz",
2438 | "integrity": "sha512-ooYciCUtfw6/d2w56UVeqHPcoCFAiJdz5XOkYpv/Txl1HMUozpXjz/2RIQgqwKdXNDPSF1W7mJCFse3G+HDyAA==",
2439 | "dev": true
2440 | },
2441 | "escalade": {
2442 | "version": "3.1.1",
2443 | "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz",
2444 | "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==",
2445 | "dev": true
2446 | },
2447 | "eslint-scope": {
2448 | "version": "5.1.1",
2449 | "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz",
2450 | "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==",
2451 | "dev": true,
2452 | "requires": {
2453 | "esrecurse": "^4.3.0",
2454 | "estraverse": "^4.1.1"
2455 | }
2456 | },
2457 | "esrecurse": {
2458 | "version": "4.3.0",
2459 | "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz",
2460 | "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==",
2461 | "dev": true,
2462 | "requires": {
2463 | "estraverse": "^5.2.0"
2464 | },
2465 | "dependencies": {
2466 | "estraverse": {
2467 | "version": "5.2.0",
2468 | "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz",
2469 | "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==",
2470 | "dev": true
2471 | }
2472 | }
2473 | },
2474 | "estraverse": {
2475 | "version": "4.3.0",
2476 | "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz",
2477 | "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==",
2478 | "dev": true
2479 | },
2480 | "eventemitter3": {
2481 | "version": "4.0.7",
2482 | "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz",
2483 | "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==",
2484 | "dev": true
2485 | },
2486 | "events": {
2487 | "version": "3.3.0",
2488 | "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz",
2489 | "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==",
2490 | "dev": true
2491 | },
2492 | "fast-deep-equal": {
2493 | "version": "3.1.3",
2494 | "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
2495 | "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==",
2496 | "dev": true
2497 | },
2498 | "fast-json-stable-stringify": {
2499 | "version": "2.1.0",
2500 | "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
2501 | "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==",
2502 | "dev": true
2503 | },
2504 | "fill-range": {
2505 | "version": "7.0.1",
2506 | "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
2507 | "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
2508 | "dev": true,
2509 | "requires": {
2510 | "to-regex-range": "^5.0.1"
2511 | }
2512 | },
2513 | "follow-redirects": {
2514 | "version": "1.13.3",
2515 | "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.13.3.tgz",
2516 | "integrity": "sha512-DUgl6+HDzB0iEptNQEXLx/KhTmDb8tZUHSeLqpnjpknR70H0nC2t9N73BK6fN4hOvJ84pKlIQVQ4k5FFlBedKA==",
2517 | "dev": true
2518 | },
2519 | "fs.realpath": {
2520 | "version": "1.0.0",
2521 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
2522 | "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
2523 | "dev": true
2524 | },
2525 | "gl-matrix": {
2526 | "version": "3.3.0",
2527 | "resolved": "https://registry.npmjs.org/gl-matrix/-/gl-matrix-3.3.0.tgz",
2528 | "integrity": "sha512-COb7LDz+SXaHtl/h4LeaFcNdJdAQSDeVqjiIihSXNrkWObZLhDI4hIkZC11Aeqp7bcE72clzB0BnDXr2SmslRA=="
2529 | },
2530 | "glob": {
2531 | "version": "7.1.6",
2532 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
2533 | "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==",
2534 | "dev": true,
2535 | "requires": {
2536 | "fs.realpath": "^1.0.0",
2537 | "inflight": "^1.0.4",
2538 | "inherits": "2",
2539 | "minimatch": "^3.0.4",
2540 | "once": "^1.3.0",
2541 | "path-is-absolute": "^1.0.0"
2542 | }
2543 | },
2544 | "glob-to-regexp": {
2545 | "version": "0.4.1",
2546 | "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz",
2547 | "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==",
2548 | "dev": true
2549 | },
2550 | "globby": {
2551 | "version": "6.1.0",
2552 | "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz",
2553 | "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=",
2554 | "dev": true,
2555 | "requires": {
2556 | "array-union": "^1.0.1",
2557 | "glob": "^7.0.3",
2558 | "object-assign": "^4.0.1",
2559 | "pify": "^2.0.0",
2560 | "pinkie-promise": "^2.0.0"
2561 | },
2562 | "dependencies": {
2563 | "pify": {
2564 | "version": "2.3.0",
2565 | "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
2566 | "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
2567 | "dev": true
2568 | }
2569 | }
2570 | },
2571 | "graceful-fs": {
2572 | "version": "4.2.6",
2573 | "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz",
2574 | "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==",
2575 | "dev": true
2576 | },
2577 | "has-flag": {
2578 | "version": "4.0.0",
2579 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
2580 | "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
2581 | "dev": true
2582 | },
2583 | "he": {
2584 | "version": "1.2.0",
2585 | "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz",
2586 | "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==",
2587 | "dev": true
2588 | },
2589 | "http-proxy": {
2590 | "version": "1.18.1",
2591 | "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz",
2592 | "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==",
2593 | "dev": true,
2594 | "requires": {
2595 | "eventemitter3": "^4.0.0",
2596 | "follow-redirects": "^1.0.0",
2597 | "requires-port": "^1.0.0"
2598 | }
2599 | },
2600 | "http-server": {
2601 | "version": "0.12.3",
2602 | "resolved": "https://registry.npmjs.org/http-server/-/http-server-0.12.3.tgz",
2603 | "integrity": "sha512-be0dKG6pni92bRjq0kvExtj/NrrAd28/8fCXkaI/4piTwQMSDSLMhWyW0NI1V+DBI3aa1HMlQu46/HjVLfmugA==",
2604 | "dev": true,
2605 | "requires": {
2606 | "basic-auth": "^1.0.3",
2607 | "colors": "^1.4.0",
2608 | "corser": "^2.0.1",
2609 | "ecstatic": "^3.3.2",
2610 | "http-proxy": "^1.18.0",
2611 | "minimist": "^1.2.5",
2612 | "opener": "^1.5.1",
2613 | "portfinder": "^1.0.25",
2614 | "secure-compare": "3.0.1",
2615 | "union": "~0.5.0"
2616 | }
2617 | },
2618 | "inflight": {
2619 | "version": "1.0.6",
2620 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
2621 | "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
2622 | "dev": true,
2623 | "requires": {
2624 | "once": "^1.3.0",
2625 | "wrappy": "1"
2626 | }
2627 | },
2628 | "inherits": {
2629 | "version": "2.0.4",
2630 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
2631 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
2632 | "dev": true
2633 | },
2634 | "is-number": {
2635 | "version": "7.0.0",
2636 | "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
2637 | "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
2638 | "dev": true
2639 | },
2640 | "is-path-cwd": {
2641 | "version": "2.2.0",
2642 | "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz",
2643 | "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==",
2644 | "dev": true
2645 | },
2646 | "is-path-in-cwd": {
2647 | "version": "2.1.0",
2648 | "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz",
2649 | "integrity": "sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ==",
2650 | "dev": true,
2651 | "requires": {
2652 | "is-path-inside": "^2.1.0"
2653 | }
2654 | },
2655 | "is-path-inside": {
2656 | "version": "2.1.0",
2657 | "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-2.1.0.tgz",
2658 | "integrity": "sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg==",
2659 | "dev": true,
2660 | "requires": {
2661 | "path-is-inside": "^1.0.2"
2662 | }
2663 | },
2664 | "isarray": {
2665 | "version": "1.0.0",
2666 | "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
2667 | "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
2668 | "dev": true
2669 | },
2670 | "isexe": {
2671 | "version": "2.0.0",
2672 | "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
2673 | "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=",
2674 | "dev": true
2675 | },
2676 | "jest-worker": {
2677 | "version": "26.6.2",
2678 | "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz",
2679 | "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==",
2680 | "dev": true,
2681 | "requires": {
2682 | "@types/node": "*",
2683 | "merge-stream": "^2.0.0",
2684 | "supports-color": "^7.0.0"
2685 | }
2686 | },
2687 | "json-parse-better-errors": {
2688 | "version": "1.0.2",
2689 | "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz",
2690 | "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==",
2691 | "dev": true
2692 | },
2693 | "json-schema-traverse": {
2694 | "version": "0.4.1",
2695 | "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
2696 | "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
2697 | "dev": true
2698 | },
2699 | "json5": {
2700 | "version": "2.2.0",
2701 | "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz",
2702 | "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==",
2703 | "dev": true,
2704 | "requires": {
2705 | "minimist": "^1.2.5"
2706 | }
2707 | },
2708 | "loader-runner": {
2709 | "version": "4.2.0",
2710 | "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.2.0.tgz",
2711 | "integrity": "sha512-92+huvxMvYlMzMt0iIOukcwYBFpkYJdpl2xsZ7LrlayO7E8SOv+JJUEK17B/dJIHAOLMfh2dZZ/Y18WgmGtYNw==",
2712 | "dev": true
2713 | },
2714 | "loader-utils": {
2715 | "version": "2.0.0",
2716 | "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz",
2717 | "integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==",
2718 | "dev": true,
2719 | "requires": {
2720 | "big.js": "^5.2.2",
2721 | "emojis-list": "^3.0.0",
2722 | "json5": "^2.1.2"
2723 | }
2724 | },
2725 | "lodash": {
2726 | "version": "4.17.21",
2727 | "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
2728 | "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==",
2729 | "dev": true
2730 | },
2731 | "lru-cache": {
2732 | "version": "6.0.0",
2733 | "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
2734 | "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
2735 | "dev": true,
2736 | "requires": {
2737 | "yallist": "^4.0.0"
2738 | }
2739 | },
2740 | "make-error": {
2741 | "version": "1.3.6",
2742 | "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz",
2743 | "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==",
2744 | "dev": true
2745 | },
2746 | "memory-fs": {
2747 | "version": "0.5.0",
2748 | "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.5.0.tgz",
2749 | "integrity": "sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==",
2750 | "dev": true,
2751 | "requires": {
2752 | "errno": "^0.1.3",
2753 | "readable-stream": "^2.0.1"
2754 | }
2755 | },
2756 | "merge-stream": {
2757 | "version": "2.0.0",
2758 | "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz",
2759 | "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==",
2760 | "dev": true
2761 | },
2762 | "micromatch": {
2763 | "version": "4.0.2",
2764 | "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz",
2765 | "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==",
2766 | "dev": true,
2767 | "requires": {
2768 | "braces": "^3.0.1",
2769 | "picomatch": "^2.0.5"
2770 | }
2771 | },
2772 | "mime": {
2773 | "version": "1.6.0",
2774 | "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
2775 | "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==",
2776 | "dev": true
2777 | },
2778 | "mime-db": {
2779 | "version": "1.46.0",
2780 | "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.46.0.tgz",
2781 | "integrity": "sha512-svXaP8UQRZ5K7or+ZmfNhg2xX3yKDMUzqadsSqi4NCH/KomcH75MAMYAGVlvXn4+b/xOPhS3I2uHKRUzvjY7BQ==",
2782 | "dev": true
2783 | },
2784 | "mime-types": {
2785 | "version": "2.1.29",
2786 | "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.29.tgz",
2787 | "integrity": "sha512-Y/jMt/S5sR9OaqteJtslsFZKWOIIqMACsJSiHghlCAyhf7jfVYjKBmLiX8OgpWeW+fjJ2b+Az69aPFPkUOY6xQ==",
2788 | "dev": true,
2789 | "requires": {
2790 | "mime-db": "1.46.0"
2791 | }
2792 | },
2793 | "minimatch": {
2794 | "version": "3.0.4",
2795 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
2796 | "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
2797 | "dev": true,
2798 | "requires": {
2799 | "brace-expansion": "^1.1.7"
2800 | }
2801 | },
2802 | "minimist": {
2803 | "version": "1.2.5",
2804 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
2805 | "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==",
2806 | "dev": true
2807 | },
2808 | "mkdirp": {
2809 | "version": "0.5.5",
2810 | "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz",
2811 | "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==",
2812 | "dev": true,
2813 | "requires": {
2814 | "minimist": "^1.2.5"
2815 | }
2816 | },
2817 | "ms": {
2818 | "version": "2.1.3",
2819 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
2820 | "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
2821 | "dev": true
2822 | },
2823 | "neo-async": {
2824 | "version": "2.6.2",
2825 | "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz",
2826 | "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==",
2827 | "dev": true
2828 | },
2829 | "node-releases": {
2830 | "version": "1.1.71",
2831 | "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.71.tgz",
2832 | "integrity": "sha512-zR6HoT6LrLCRBwukmrVbHv0EpEQjksO6GmFcZQQuCAy139BEsoVKPYnf3jongYW83fAa1torLGYwxxky/p28sg==",
2833 | "dev": true
2834 | },
2835 | "object-assign": {
2836 | "version": "4.1.1",
2837 | "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
2838 | "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
2839 | "dev": true
2840 | },
2841 | "once": {
2842 | "version": "1.4.0",
2843 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
2844 | "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
2845 | "dev": true,
2846 | "requires": {
2847 | "wrappy": "1"
2848 | }
2849 | },
2850 | "opener": {
2851 | "version": "1.5.2",
2852 | "resolved": "https://registry.npmjs.org/opener/-/opener-1.5.2.tgz",
2853 | "integrity": "sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==",
2854 | "dev": true
2855 | },
2856 | "p-limit": {
2857 | "version": "3.1.0",
2858 | "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
2859 | "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
2860 | "dev": true,
2861 | "requires": {
2862 | "yocto-queue": "^0.1.0"
2863 | }
2864 | },
2865 | "p-map": {
2866 | "version": "2.1.0",
2867 | "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz",
2868 | "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==",
2869 | "dev": true
2870 | },
2871 | "path-is-absolute": {
2872 | "version": "1.0.1",
2873 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
2874 | "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
2875 | "dev": true
2876 | },
2877 | "path-is-inside": {
2878 | "version": "1.0.2",
2879 | "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz",
2880 | "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=",
2881 | "dev": true
2882 | },
2883 | "path-key": {
2884 | "version": "3.1.1",
2885 | "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
2886 | "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
2887 | "dev": true
2888 | },
2889 | "picomatch": {
2890 | "version": "2.2.2",
2891 | "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz",
2892 | "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==",
2893 | "dev": true
2894 | },
2895 | "pify": {
2896 | "version": "4.0.1",
2897 | "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz",
2898 | "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==",
2899 | "dev": true
2900 | },
2901 | "pinkie": {
2902 | "version": "2.0.4",
2903 | "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz",
2904 | "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=",
2905 | "dev": true
2906 | },
2907 | "pinkie-promise": {
2908 | "version": "2.0.1",
2909 | "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz",
2910 | "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=",
2911 | "dev": true,
2912 | "requires": {
2913 | "pinkie": "^2.0.0"
2914 | }
2915 | },
2916 | "portfinder": {
2917 | "version": "1.0.28",
2918 | "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.28.tgz",
2919 | "integrity": "sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA==",
2920 | "dev": true,
2921 | "requires": {
2922 | "async": "^2.6.2",
2923 | "debug": "^3.1.1",
2924 | "mkdirp": "^0.5.5"
2925 | }
2926 | },
2927 | "process-nextick-args": {
2928 | "version": "2.0.1",
2929 | "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
2930 | "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==",
2931 | "dev": true
2932 | },
2933 | "prr": {
2934 | "version": "1.0.1",
2935 | "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz",
2936 | "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=",
2937 | "dev": true
2938 | },
2939 | "punycode": {
2940 | "version": "2.1.1",
2941 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
2942 | "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==",
2943 | "dev": true
2944 | },
2945 | "qs": {
2946 | "version": "6.9.6",
2947 | "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.6.tgz",
2948 | "integrity": "sha512-TIRk4aqYLNoJUbd+g2lEdz5kLWIuTMRagAXxl78Q0RiVjAOugHmeKNGdd3cwo/ktpf9aL9epCfFqWDEKysUlLQ==",
2949 | "dev": true
2950 | },
2951 | "randombytes": {
2952 | "version": "2.1.0",
2953 | "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz",
2954 | "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==",
2955 | "dev": true,
2956 | "requires": {
2957 | "safe-buffer": "^5.1.0"
2958 | }
2959 | },
2960 | "readable-stream": {
2961 | "version": "2.3.7",
2962 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
2963 | "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
2964 | "dev": true,
2965 | "requires": {
2966 | "core-util-is": "~1.0.0",
2967 | "inherits": "~2.0.3",
2968 | "isarray": "~1.0.0",
2969 | "process-nextick-args": "~2.0.0",
2970 | "safe-buffer": "~5.1.1",
2971 | "string_decoder": "~1.1.1",
2972 | "util-deprecate": "~1.0.1"
2973 | }
2974 | },
2975 | "requires-port": {
2976 | "version": "1.0.0",
2977 | "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz",
2978 | "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=",
2979 | "dev": true
2980 | },
2981 | "rimraf": {
2982 | "version": "2.7.1",
2983 | "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
2984 | "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
2985 | "dev": true,
2986 | "requires": {
2987 | "glob": "^7.1.3"
2988 | }
2989 | },
2990 | "safe-buffer": {
2991 | "version": "5.1.2",
2992 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
2993 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
2994 | "dev": true
2995 | },
2996 | "schema-utils": {
2997 | "version": "3.0.0",
2998 | "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz",
2999 | "integrity": "sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA==",
3000 | "dev": true,
3001 | "requires": {
3002 | "@types/json-schema": "^7.0.6",
3003 | "ajv": "^6.12.5",
3004 | "ajv-keywords": "^3.5.2"
3005 | }
3006 | },
3007 | "secure-compare": {
3008 | "version": "3.0.1",
3009 | "resolved": "https://registry.npmjs.org/secure-compare/-/secure-compare-3.0.1.tgz",
3010 | "integrity": "sha1-8aAymzCLIh+uN7mXTz1XjQypmeM=",
3011 | "dev": true
3012 | },
3013 | "semver": {
3014 | "version": "7.3.4",
3015 | "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz",
3016 | "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==",
3017 | "dev": true,
3018 | "requires": {
3019 | "lru-cache": "^6.0.0"
3020 | }
3021 | },
3022 | "serialize-javascript": {
3023 | "version": "5.0.1",
3024 | "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-5.0.1.tgz",
3025 | "integrity": "sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA==",
3026 | "dev": true,
3027 | "requires": {
3028 | "randombytes": "^2.1.0"
3029 | }
3030 | },
3031 | "shebang-command": {
3032 | "version": "2.0.0",
3033 | "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
3034 | "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
3035 | "dev": true,
3036 | "requires": {
3037 | "shebang-regex": "^3.0.0"
3038 | }
3039 | },
3040 | "shebang-regex": {
3041 | "version": "3.0.0",
3042 | "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
3043 | "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
3044 | "dev": true
3045 | },
3046 | "source-list-map": {
3047 | "version": "2.0.1",
3048 | "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz",
3049 | "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==",
3050 | "dev": true
3051 | },
3052 | "source-map": {
3053 | "version": "0.6.1",
3054 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
3055 | "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
3056 | "dev": true
3057 | },
3058 | "source-map-support": {
3059 | "version": "0.5.19",
3060 | "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz",
3061 | "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==",
3062 | "dev": true,
3063 | "requires": {
3064 | "buffer-from": "^1.0.0",
3065 | "source-map": "^0.6.0"
3066 | }
3067 | },
3068 | "string_decoder": {
3069 | "version": "1.1.1",
3070 | "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
3071 | "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
3072 | "dev": true,
3073 | "requires": {
3074 | "safe-buffer": "~5.1.0"
3075 | }
3076 | },
3077 | "supports-color": {
3078 | "version": "7.2.0",
3079 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
3080 | "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
3081 | "dev": true,
3082 | "requires": {
3083 | "has-flag": "^4.0.0"
3084 | }
3085 | },
3086 | "tapable": {
3087 | "version": "1.1.3",
3088 | "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz",
3089 | "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==",
3090 | "dev": true
3091 | },
3092 | "terser": {
3093 | "version": "5.6.0",
3094 | "resolved": "https://registry.npmjs.org/terser/-/terser-5.6.0.tgz",
3095 | "integrity": "sha512-vyqLMoqadC1uR0vywqOZzriDYzgEkNJFK4q9GeyOBHIbiECHiWLKcWfbQWAUaPfxkjDhapSlZB9f7fkMrvkVjA==",
3096 | "dev": true,
3097 | "requires": {
3098 | "commander": "^2.20.0",
3099 | "source-map": "~0.7.2",
3100 | "source-map-support": "~0.5.19"
3101 | },
3102 | "dependencies": {
3103 | "source-map": {
3104 | "version": "0.7.3",
3105 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz",
3106 | "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==",
3107 | "dev": true
3108 | }
3109 | }
3110 | },
3111 | "terser-webpack-plugin": {
3112 | "version": "5.1.1",
3113 | "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.1.1.tgz",
3114 | "integrity": "sha512-5XNNXZiR8YO6X6KhSGXfY0QrGrCRlSwAEjIIrlRQR4W8nP69TaJUlh3bkuac6zzgspiGPfKEHcY295MMVExl5Q==",
3115 | "dev": true,
3116 | "requires": {
3117 | "jest-worker": "^26.6.2",
3118 | "p-limit": "^3.1.0",
3119 | "schema-utils": "^3.0.0",
3120 | "serialize-javascript": "^5.0.1",
3121 | "source-map": "^0.6.1",
3122 | "terser": "^5.5.1"
3123 | }
3124 | },
3125 | "to-regex-range": {
3126 | "version": "5.0.1",
3127 | "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
3128 | "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
3129 | "dev": true,
3130 | "requires": {
3131 | "is-number": "^7.0.0"
3132 | }
3133 | },
3134 | "ts-loader": {
3135 | "version": "8.0.17",
3136 | "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-8.0.17.tgz",
3137 | "integrity": "sha512-OeVfSshx6ot/TCxRwpBHQ/4lRzfgyTkvi7ghDVrLXOHzTbSK413ROgu/xNqM72i3AFeAIJgQy78FwSMKmOW68w==",
3138 | "dev": true,
3139 | "requires": {
3140 | "chalk": "^4.1.0",
3141 | "enhanced-resolve": "^4.0.0",
3142 | "loader-utils": "^2.0.0",
3143 | "micromatch": "^4.0.0",
3144 | "semver": "^7.3.4"
3145 | }
3146 | },
3147 | "ts-node": {
3148 | "version": "9.1.1",
3149 | "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-9.1.1.tgz",
3150 | "integrity": "sha512-hPlt7ZACERQGf03M253ytLY3dHbGNGrAq9qIHWUY9XHYl1z7wYngSr3OQ5xmui8o2AaxsONxIzjafLUiWBo1Fg==",
3151 | "dev": true,
3152 | "requires": {
3153 | "arg": "^4.1.0",
3154 | "create-require": "^1.1.0",
3155 | "diff": "^4.0.1",
3156 | "make-error": "^1.1.1",
3157 | "source-map-support": "^0.5.17",
3158 | "yn": "3.1.1"
3159 | }
3160 | },
3161 | "tslib": {
3162 | "version": "1.14.1",
3163 | "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
3164 | "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
3165 | "dev": true
3166 | },
3167 | "typescript": {
3168 | "version": "4.2.3",
3169 | "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.2.3.tgz",
3170 | "integrity": "sha512-qOcYwxaByStAWrBf4x0fibwZvMRG+r4cQoTjbPtUlrWjBHbmCAww1i448U0GJ+3cNNEtebDteo/cHOR3xJ4wEw==",
3171 | "dev": true
3172 | },
3173 | "union": {
3174 | "version": "0.5.0",
3175 | "resolved": "https://registry.npmjs.org/union/-/union-0.5.0.tgz",
3176 | "integrity": "sha512-N6uOhuW6zO95P3Mel2I2zMsbsanvvtgn6jVqJv4vbVcz/JN0OkL9suomjQGmWtxJQXOCqUJvquc1sMeNz/IwlA==",
3177 | "dev": true,
3178 | "requires": {
3179 | "qs": "^6.4.0"
3180 | }
3181 | },
3182 | "uri-js": {
3183 | "version": "4.4.1",
3184 | "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
3185 | "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
3186 | "dev": true,
3187 | "requires": {
3188 | "punycode": "^2.1.0"
3189 | }
3190 | },
3191 | "url-join": {
3192 | "version": "2.0.5",
3193 | "resolved": "https://registry.npmjs.org/url-join/-/url-join-2.0.5.tgz",
3194 | "integrity": "sha1-WvIvGMBSoACkjXuCxenC4v7tpyg=",
3195 | "dev": true
3196 | },
3197 | "util-deprecate": {
3198 | "version": "1.0.2",
3199 | "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
3200 | "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=",
3201 | "dev": true
3202 | },
3203 | "watchpack": {
3204 | "version": "2.1.1",
3205 | "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.1.1.tgz",
3206 | "integrity": "sha512-Oo7LXCmc1eE1AjyuSBmtC3+Wy4HcV8PxWh2kP6fOl8yTlNS7r0K9l1ao2lrrUza7V39Y3D/BbJgY8VeSlc5JKw==",
3207 | "dev": true,
3208 | "requires": {
3209 | "glob-to-regexp": "^0.4.1",
3210 | "graceful-fs": "^4.1.2"
3211 | }
3212 | },
3213 | "webpack": {
3214 | "version": "5.24.4",
3215 | "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.24.4.tgz",
3216 | "integrity": "sha512-RXOdxF9hFFFhg47BryCgyFrEyyu7Y/75/uiI2DoUiTMqysK+WczVSTppvkR47oZcmI/DPaXCiCiaXBP8QjkNpA==",
3217 | "dev": true,
3218 | "requires": {
3219 | "@types/eslint-scope": "^3.7.0",
3220 | "@types/estree": "^0.0.46",
3221 | "@webassemblyjs/ast": "1.11.0",
3222 | "@webassemblyjs/wasm-edit": "1.11.0",
3223 | "@webassemblyjs/wasm-parser": "1.11.0",
3224 | "acorn": "^8.0.4",
3225 | "browserslist": "^4.14.5",
3226 | "chrome-trace-event": "^1.0.2",
3227 | "enhanced-resolve": "^5.7.0",
3228 | "es-module-lexer": "^0.4.0",
3229 | "eslint-scope": "^5.1.1",
3230 | "events": "^3.2.0",
3231 | "glob-to-regexp": "^0.4.1",
3232 | "graceful-fs": "^4.2.4",
3233 | "json-parse-better-errors": "^1.0.2",
3234 | "loader-runner": "^4.2.0",
3235 | "mime-types": "^2.1.27",
3236 | "neo-async": "^2.6.2",
3237 | "schema-utils": "^3.0.0",
3238 | "tapable": "^2.1.1",
3239 | "terser-webpack-plugin": "^5.1.1",
3240 | "watchpack": "^2.0.0",
3241 | "webpack-sources": "^2.1.1"
3242 | },
3243 | "dependencies": {
3244 | "enhanced-resolve": {
3245 | "version": "5.7.0",
3246 | "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.7.0.tgz",
3247 | "integrity": "sha512-6njwt/NsZFUKhM6j9U8hzVyD4E4r0x7NQzhTCbcWOJ0IQjNSAoalWmb0AE51Wn+fwan5qVESWi7t2ToBxs9vrw==",
3248 | "dev": true,
3249 | "requires": {
3250 | "graceful-fs": "^4.2.4",
3251 | "tapable": "^2.2.0"
3252 | }
3253 | },
3254 | "tapable": {
3255 | "version": "2.2.0",
3256 | "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.0.tgz",
3257 | "integrity": "sha512-FBk4IesMV1rBxX2tfiK8RAmogtWn53puLOQlvO8XuwlgxcYbP4mVPS9Ph4aeamSyyVjOl24aYWAuc8U5kCVwMw==",
3258 | "dev": true
3259 | }
3260 | }
3261 | },
3262 | "webpack-sources": {
3263 | "version": "2.2.0",
3264 | "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-2.2.0.tgz",
3265 | "integrity": "sha512-bQsA24JLwcnWGArOKUxYKhX3Mz/nK1Xf6hxullKERyktjNMC4x8koOeaDNTA2fEJ09BdWLbM/iTW0ithREUP0w==",
3266 | "dev": true,
3267 | "requires": {
3268 | "source-list-map": "^2.0.1",
3269 | "source-map": "^0.6.1"
3270 | }
3271 | },
3272 | "which": {
3273 | "version": "2.0.2",
3274 | "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
3275 | "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
3276 | "dev": true,
3277 | "requires": {
3278 | "isexe": "^2.0.0"
3279 | }
3280 | },
3281 | "wrappy": {
3282 | "version": "1.0.2",
3283 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
3284 | "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
3285 | "dev": true
3286 | },
3287 | "yallist": {
3288 | "version": "4.0.0",
3289 | "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
3290 | "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
3291 | "dev": true
3292 | },
3293 | "yn": {
3294 | "version": "3.1.1",
3295 | "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz",
3296 | "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==",
3297 | "dev": true
3298 | },
3299 | "yocto-queue": {
3300 | "version": "0.1.0",
3301 | "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz",
3302 | "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==",
3303 | "dev": true
3304 | }
3305 | }
3306 | }
3307 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "webgl-seed",
3 | "version": "1.0.0",
4 | "description": "A seed repo for getting started with WebGL applications.",
5 | "main": "dist/main.js",
6 | "scripts": {
7 | "start": "npm i && npm run build && npm run dev",
8 | "dev": "http-server",
9 | "build": "cross-env NODE_ENV=production ts-node webpack.ts"
10 | },
11 | "repository": {
12 | "type": "git",
13 | "url": "git+https://github.com/alaingalvan/webgl-seed.git"
14 | },
15 | "keywords": [
16 | "webgl",
17 | "example",
18 | "seed",
19 | "repo"
20 | ],
21 | "author": "Alain Galvan",
22 | "license": "Unlicense",
23 | "bugs": {
24 | "url": "https://github.com/alaingalvan/webgl-seed/issues"
25 | },
26 | "homepage": "https://github.com/alaingalvan/webgl-seed#readme",
27 | "engines": {
28 | "node": ">=12.0"
29 | },
30 | "dependencies": {
31 | "gl-matrix": "^3.3.0"
32 | },
33 | "devDependencies": {
34 | "@types/node": "^14.14.x",
35 | "clean-webpack-plugin": "^3.0.x",
36 | "cross-env": "^7.0.x",
37 | "http-server": "^0.12.x",
38 | "ts-loader": "^8.0.x",
39 | "ts-node": "^9.1.x",
40 | "typescript": "^4.2.x",
41 | "webpack": "^5.24.x"
42 | }
43 | }
44 |
--------------------------------------------------------------------------------
/readme.md:
--------------------------------------------------------------------------------
1 | 
2 |
3 | # WebGL Seed
4 |
5 | [![License][license-img]][license-url]
6 | [![Unit Tests][travis-img]][travis-url]
7 | [![Dependency Status][david-img]][david-url]
8 | [![devDependency Status][david-dev-img]][david-dev-url]
9 |
10 | A simple hello triangle example you could use to as a basis when starting WebGL.
11 |
12 | - [🔳 Codepen Example](https://codepen.io/alaingalvan/pen/OMEqKa)
13 |
14 | - [💬 Blog Post](https://alain.xyz/blog/raw-webgl)
15 |
16 | ## Setup
17 |
18 | First install:
19 |
20 | - [Git](https://git-scm.com/)
21 |
22 | - [Node.js](https://nodejs.org/en/)
23 |
24 | - A Text Editor such as [Visual Studio Code](https://code.visualstudio.com/).
25 |
26 | Then type the following in any terminal your such as [VS Code's Integrated Terminal](https://code.visualstudio.com/docs/editor/integrated-terminal).
27 |
28 | ```bash
29 | # 🐑 Clone the repo
30 | git clone https://github.com/alaingalvan/webgl-seed
31 |
32 | # 💿 go inside the folder
33 | cd webgl-seed
34 |
35 | # 🔨 Start building the project
36 | npm start
37 | ```
38 |
39 | > Refer to [this blog post on designing web libraries and apps](https://alain.xyz/blog/designing-a-web-app) for more details on Node.js, packages, etc.
40 |
41 | ## Project Layout
42 |
43 | As your project becomes more complex, you'll want to separate files and organize your application to something more akin to a game or renderer, check out this post on [game engine architecture](https://alain.xyz/blog/game-engine-architecture) and this one on [real time renderer architecture](https://alain.xyz/blog/realtime-renderer-architectures) for more details.
44 |
45 | ```bash
46 | ├─ 📂 node_modules/ # 👶 Dependencies
47 | │ ├─ 📁 gl-matrix # ➕ Linear Algebra
48 | │ └─ 📁 ... # 🕚 Other Dependencies (TypeScript, Webpack, etc.)
49 | ├─ 📂 src/ # 🌟 Source Files
50 | │ ├─ 📄 renderer.ts # 🔺 Triangle Renderer
51 | │ └─ 📄 main.ts # 🏁 Application Main
52 | ├─ 📄 .gitignore # 👁️ Ignore certain files in git repo
53 | ├─ 📄 package.json # 📦 Node Package File
54 | ├─ 📄 license.md # ⚖️ Your License (Unlicense)
55 | └─ 📃readme.md # 📖 Read Me!
56 | ```
57 |
58 | Some key dependencies are:
59 |
60 | - [gl-matrix](http://glmatrix.net/) - WebGL's best linear algebra library, perfect for people used to linear algebra libraries like [GLM](https://glm.g-truc.net/0.9.9/index.html) or the built in GLSL data structures.
61 |
62 | - [Webpack](https://webpack.js.org/) - Compiles our TypeScript files and creates binaries for us to use.
63 |
64 | - [TypeScript](https://github.com/microsoft/typescript) - JavaScript with types, makes it significantly easier to program web apps with instant autocomplete and type checking.
65 |
66 | [license-img]: https://img.shields.io/:license-unlicense-blue.svg?style=flat-square
67 | [license-url]: https://unlicense.org/
68 | [david-url]: https://david-dm.org/alaingalvan/webgl-seed
69 | [david-img]: https://david-dm.org/alaingalvan/webgl-seed/status.svg?style=flat-square
70 | [david-dev-url]: https://david-dm.org/alaingalvan/webgl-seed#info=devDependencies
71 | [david-dev-img]: https://david-dm.org/alaingalvan/webgl-seed/dev-status.svg?style=flat-square
72 | [travis-img]: https://img.shields.io/travis/com/alaingalvan/webgl-seed.svg?style=flat-square
73 | [travis-url]:https://www.travis-ci.com/github/alaingalvan/webgl-seed
--------------------------------------------------------------------------------
/src/main.ts:
--------------------------------------------------------------------------------
1 | import Renderer from './renderer';
2 |
3 | const canvas = document.getElementById('gfx') as HTMLCanvasElement;
4 | canvas.width = canvas.height = 640;
5 | const renderer = new Renderer(canvas);
6 | renderer.start();
7 |
--------------------------------------------------------------------------------
/src/renderer.ts:
--------------------------------------------------------------------------------
1 | // 📈 Position Vertex Buffer Data
2 | const positions = new Float32Array([
3 | 1.0, -1.0, 0.0,
4 | -1.0, -1.0, 0.0,
5 | 0.0, 1.0, 0.0
6 | ]);
7 |
8 | // 🎨 Color Vertex Buffer Data
9 | const colors = new Float32Array([
10 | 1.0, 0.0, 0.0, // 🔴
11 | 0.0, 1.0, 0.0, // 🟢
12 | 0.0, 0.0, 1.0 // 🔵
13 | ]);
14 |
15 | // 🗄️ Index Buffer Data
16 | const indices = new Uint16Array([ 0, 1, 2 ]);
17 |
18 |
19 | // 🕸️ Vertex Shader Source
20 | const vertShaderCode = `
21 | attribute vec3 inPosition;
22 | attribute vec3 inColor;
23 |
24 | varying vec3 vColor;
25 |
26 | void main()
27 | {
28 | vColor = inColor;
29 | gl_Position = vec4(inPosition, 1.0);
30 | }
31 | `;
32 |
33 | // 🟦 Fragment Shader Source
34 | const fragShaderCode = `
35 | precision mediump float;
36 |
37 | varying highp vec3 vColor;
38 |
39 | void main()
40 | {
41 | gl_FragColor = vec4(vColor, 1.0);
42 | }
43 | `;
44 |
45 | /*************************************************************/
46 |
47 | export default class Renderer {
48 | // 🖼️ Canvas
49 | canvas: HTMLCanvasElement;
50 |
51 | // ⚙️ API Data Structures
52 | gl: WebGLRenderingContext;
53 |
54 | // 🎞️ Frame Backings
55 | animationHandler: number;
56 |
57 | // 🔺 Resources
58 | positionBuffer: WebGLBuffer;
59 | colorBuffer: WebGLBuffer;
60 | indexBuffer: WebGLBuffer;
61 | vertModule: WebGLShader;
62 | fragModule: WebGLShader;
63 | program: WebGLProgram;
64 |
65 | constructor(canvas: HTMLCanvasElement) {
66 | this.canvas = canvas;
67 | }
68 |
69 | // 🏎️ Start the Rendering Engine
70 | start() {
71 | this.initializeAPI();
72 | this.initializeResources();
73 | this.render();
74 | }
75 |
76 | // 🌟 Initialize WebGL
77 | initializeAPI() {
78 | // ⚪ Initialization
79 | var gl: WebGLRenderingContext = this.canvas.getContext('webgl');
80 | if (!gl) {
81 | // This rendering engine failed to start...
82 | throw new Error('WebGL failed to initialize.');
83 | }
84 | this.gl = gl;
85 |
86 | // Most WebGL Apps will want to enable these settings:
87 |
88 | // ⚫ Set the default clear color when calling `gl.clear`
89 | gl.clearColor(0.0, 0.0, 0.0, 0.0);
90 | // 🎭 Write to all channels during a clear
91 | gl.colorMask(true, true, true, true);
92 | // 👓 Test if when something is drawn, it's in front of what was drawn previously
93 | gl.enable(gl.DEPTH_TEST);
94 | // ≤ Use this function to test depth values
95 | gl.depthFunc(gl.LEQUAL);
96 | // 🌒 Hide triangles who's normals don't face the camera
97 | gl.cullFace(gl.BACK);
98 | // 🍥 Properly blend images with alpha channels
99 | gl.blendFunc(gl.SRC_ALPHA, gl.ONE_MINUS_SRC_ALPHA);
100 | }
101 |
102 | // 🍱 Initialize resources to render triangle (buffers, shaders, pipeline)
103 | initializeResources() {
104 | let gl = this.gl;
105 |
106 | // 👋 Helper function for creating WebGLBuffer(s) out of Typed Arrays
107 | let createBuffer = (arr) => {
108 | // ⚪ Create Buffer
109 | let buf = gl.createBuffer();
110 | let bufType =
111 | arr instanceof Uint16Array || arr instanceof Uint32Array ? gl.ELEMENT_ARRAY_BUFFER : gl.ARRAY_BUFFER;
112 | // 🩹 Bind Buffer to WebGLState
113 | gl.bindBuffer(bufType, buf);
114 | // 💾 Push data to VBO
115 | gl.bufferData(bufType, arr, gl.STATIC_DRAW);
116 | return buf;
117 | };
118 |
119 | this.positionBuffer = createBuffer(positions);
120 | this.colorBuffer = createBuffer(colors);
121 | this.indexBuffer = createBuffer(indices);
122 |
123 | // 👋 Helper function for creating WebGLShader(s) out of strings
124 | let createShader = (source: string, stage) => {
125 | // ⚪ Create Shader
126 | let s = gl.createShader(stage);
127 | // 📰 Pass Vertex Shader String
128 | gl.shaderSource(s, source);
129 | // 🔨 Compile Vertex Shader (and check for errors)
130 | gl.compileShader(s);
131 | // ❔ Check if shader compiled correctly
132 | if (!gl.getShaderParameter(s, gl.COMPILE_STATUS)) {
133 | console.error('An error occurred compiling the shader: ' + gl.getShaderInfoLog(s));
134 | }
135 | return s;
136 | };
137 |
138 | this.vertModule = createShader(vertShaderCode, gl.VERTEX_SHADER);
139 | this.fragModule = createShader(fragShaderCode, gl.FRAGMENT_SHADER);
140 |
141 | // 👋 Helper function for creating WebGLProgram(s) out of WebGLShader(s)
142 | let createProgram = (stages: WebGLShader[]) => {
143 | let p = gl.createProgram();
144 | for (let stage of stages) {
145 | gl.attachShader(p, stage);
146 | }
147 | gl.linkProgram(p);
148 | return p;
149 | };
150 |
151 | this.program = createProgram([ this.vertModule, this.fragModule ]);
152 | }
153 |
154 | // 🔺 Render triangle
155 | render = () => {
156 | var gl = this.gl;
157 |
158 | // 🖌️ Encode drawing commands
159 | gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT);
160 | gl.useProgram(this.program);
161 | gl.viewport(0, 0, this.canvas.width, this.canvas.height);
162 | gl.scissor(0, 0, this.canvas.width, this.canvas.height);
163 |
164 | // 🔣 Bind Vertex Layout
165 | let setVertexBuffer = (buf: WebGLBuffer, name: string) => {
166 | gl.bindBuffer(gl.ARRAY_BUFFER, buf);
167 | let loc = gl.getAttribLocation(this.program, name);
168 | gl.vertexAttribPointer(loc, 3, gl.FLOAT, false, 4 * 3, 0);
169 | gl.enableVertexAttribArray(loc);
170 | };
171 |
172 | setVertexBuffer(this.positionBuffer, 'inPosition');
173 | setVertexBuffer(this.colorBuffer, 'inColor');
174 |
175 | gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, this.indexBuffer);
176 | gl.drawElements(gl.TRIANGLES, 3, gl.UNSIGNED_SHORT, 0);
177 |
178 | // ➿ Refresh canvas
179 | this.animationHandler = requestAnimationFrame(this.render);
180 | };
181 |
182 | // 💥 Destroy Buffers, Shaders, Programs
183 | destroyResources() {
184 | var gl = this.gl;
185 |
186 | gl.deleteBuffer(this.positionBuffer);
187 | gl.deleteBuffer(this.colorBuffer);
188 | gl.deleteBuffer(this.indexBuffer);
189 | gl.deleteShader(this.vertModule);
190 | gl.deleteShader(this.fragModule);
191 | gl.deleteProgram(this.program);
192 | }
193 |
194 | // 🛑 Stop the renderer from refreshing, destroy resources
195 | stop() {
196 | cancelAnimationFrame(this.animationHandler);
197 | this.destroyResources();
198 | }
199 | }
200 |
--------------------------------------------------------------------------------
/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "target": "ES6",
4 | "lib": [
5 | "es2017",
6 | "es2017.object",
7 | "es2017.sharedmemory",
8 | "es2016",
9 | "es2016.array.include",
10 | "es2015",
11 | "es2015.core",
12 | "es2015.promise",
13 | "es2015.collection",
14 | "es5",
15 | "dom"
16 | ],
17 | "module": "commonjs",
18 | "declaration": true,
19 | "noImplicitAny": false,
20 | "suppressImplicitAnyIndexErrors": true,
21 | "removeComments": false,
22 | "emitDecoratorMetadata": true,
23 | "experimentalDecorators": true,
24 | "noEmitHelpers": false,
25 | "sourceMap": false,
26 | "strictNullChecks": false,
27 | "jsx": "react",
28 | "esModuleInterop": true,
29 | "allowSyntheticDefaultImports": true
30 | },
31 | "compileOnSave": false,
32 | "buildOnSave": false
33 | }
--------------------------------------------------------------------------------
/webpack.ts:
--------------------------------------------------------------------------------
1 | import webpack from 'webpack';
2 | import { CleanWebpackPlugin } from 'clean-webpack-plugin';
3 | import path from 'path';
4 | import { argv } from 'process';
5 |
6 | let env = process.env['NODE_ENV'];
7 | let isProduction =
8 | (env && env.match(/production/)) || argv.reduce((prev, cur) => prev || cur === '--production', false);
9 |
10 | let config: webpack.Configuration = {
11 | context: path.join(__dirname, 'src'),
12 | entry: {
13 | app: './main.ts'
14 | },
15 | output: {
16 | filename: 'main.js',
17 | path: path.resolve(__dirname, 'dist')
18 | },
19 | resolve: {
20 | extensions: [ '.ts', '.tsx', 'js' ],
21 | modules: [ path.resolve(__dirname, 'src'), 'node_modules' ],
22 |
23 | },
24 | module: {
25 | rules: [
26 | {
27 | test: /\.ts/,
28 | exclude: /node_modules/,
29 | loader: 'ts-loader',
30 | options: {
31 | transpileOnly: true,
32 | compilerOptions: {
33 | isolatedModules: true
34 | }
35 | }
36 | }
37 | ]
38 | },
39 | node: false,
40 | plugins: [
41 | new CleanWebpackPlugin(),
42 | new webpack.DefinePlugin({
43 | 'process.env': {
44 | NODE_ENV: JSON.stringify(isProduction ? 'production' : 'development')
45 | }
46 | })
47 | ],
48 | optimization: {
49 | minimize: isProduction ? true : false
50 | }
51 | };
52 |
53 | /**
54 | * Start Build
55 | */
56 | const compiler: webpack.Compiler = webpack(config);
57 |
58 | if (!argv.reduce((prev, cur) => prev || cur === '--watch', false)) {
59 | compiler.run((err, stats) => {
60 | if (err) return console.error(err);
61 |
62 | if (stats.hasErrors()) {
63 | let statsJson = stats.toJson();
64 | console.log('❌' + ' · Error · ' + 'webgl-seed failed to compile:');
65 | for (let error of statsJson.errors) {
66 | console.log(error);
67 | }
68 | return;
69 | }
70 | console.log(
71 | '✔️️' +
72 | ' · Success · ' +
73 | 'webgl-seed' +
74 | (isProduction ? ' (production) ' : ' (development) ') +
75 | 'built in ' +
76 | (+stats.endTime - +stats.startTime + ' ms.')
77 | );
78 | });
79 | } else {
80 | compiler.watch({}, (err, stats) => {
81 | if (err) return console.error(err);
82 |
83 | if (stats.hasErrors()) {
84 | let statsJson = stats.toJson();
85 | console.log('❌' + ' · Error · ' + 'webgl-seed failed to compile:');
86 | for (let error of statsJson.errors) {
87 | console.log(error);
88 | }
89 | console.log('\n👀 · Watching for changes... · \n');
90 | return;
91 | }
92 | console.log(
93 | '✔️️' +
94 | ' · Success · ' +
95 | 'webgl-seed' +
96 | (isProduction ? ' (production) ' : ' (development) ') +
97 | 'built in ' +
98 | (+stats.endTime - +stats.startTime + ' ms.') +
99 | '\n👀 · Watching for changes... · \n'
100 | );
101 | });
102 | }
103 |
--------------------------------------------------------------------------------