├── .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 | ![Cover Art](https://alain.xyz/blog/raw-webgl/assets/cover.jpg) 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 | --------------------------------------------------------------------------------