├── .gitignore
├── .vscode
└── launch.json
├── client
├── client.tsx
└── components
│ └── app.tsx
├── dev.js
├── package-lock.json
├── package.json
├── server
├── server.ts
└── views
│ └── client.ejs
├── tsconfig.client.json
├── tsconfig.server.json
├── webpack.config.client.js
└── webpack.config.server.js
/.gitignore:
--------------------------------------------------------------------------------
1 | dist/
2 | node_modules/
--------------------------------------------------------------------------------
/.vscode/launch.json:
--------------------------------------------------------------------------------
1 | {
2 | "version": "0.2.0",
3 | "configurations": [
4 | {
5 | "type": "node",
6 | "name": "Attach Node Debugger",
7 | "request": "attach",
8 | "sourceMaps": true,
9 | "restart": true,
10 | "outFiles": ["${workspaceFolder}/dist/server.js"]
11 | }
12 | ]
13 | }
--------------------------------------------------------------------------------
/client/client.tsx:
--------------------------------------------------------------------------------
1 | import React from "react";
2 | import ReactDOM from "react-dom";
3 | import { App } from "./components/app";
4 |
5 | ReactDOM.hydrate(
Hello from Client
; 4 | -------------------------------------------------------------------------------- /dev.js: -------------------------------------------------------------------------------- 1 | const spawn = require("cross-spawn"); 2 | const path = require("path"); 3 | const webpack = require("webpack"); 4 | const webpackConfigClient = require("./webpack.config.client"); 5 | const webpackConfigServer = require("./webpack.config.server"); 6 | 7 | const compiler = webpack([ 8 | { 9 | ...webpackConfigClient, 10 | mode: "development", 11 | devtool: "source-map", 12 | output: { 13 | ...webpackConfigClient.output, 14 | filename: "[name].js", 15 | }, 16 | }, 17 | { 18 | ...webpackConfigServer, 19 | mode: "development", 20 | devtool: "source-map", 21 | }, 22 | ]); 23 | 24 | let node; 25 | 26 | compiler.hooks.watchRun.tap("Dev", (compiler) => { 27 | console.log(`Compiling ${compiler.name} ...`); 28 | if (compiler.name === "server" && node) { 29 | node.kill(); 30 | node = undefined; 31 | } 32 | }); 33 | 34 | compiler.watch({}, (err, stats) => { 35 | if (err) { 36 | console.error(err); 37 | process.exit(1); 38 | } 39 | console.log(stats?.toString("minimal")); 40 | const compiledSuccessfully = !stats?.hasErrors(); 41 | if (compiledSuccessfully && !node) { 42 | console.log("Starting Node.js ..."); 43 | node = spawn( 44 | "node", 45 | ["--inspect", path.join(__dirname, "dist/server.js")], 46 | { 47 | stdio: "inherit", 48 | } 49 | ); 50 | } 51 | }); 52 | -------------------------------------------------------------------------------- /package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ts-react-webpack-ssr", 3 | "version": "1.0.0", 4 | "lockfileVersion": 1, 5 | "requires": true, 6 | "dependencies": { 7 | "@discoveryjs/json-ext": { 8 | "version": "0.5.2", 9 | "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.2.tgz", 10 | "integrity": "sha512-HyYEUDeIj5rRQU2Hk5HTB2uHsbRQpF70nvMhVzi+VJR0X+xNEhjPui4/kBf3VeH/wqD28PT4sVOm8qqLjBrSZg==", 11 | "dev": true 12 | }, 13 | "@nodelib/fs.scandir": { 14 | "version": "2.1.4", 15 | "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.4.tgz", 16 | "integrity": "sha512-33g3pMJk3bg5nXbL/+CY6I2eJDzZAni49PfJnL5fghPTggPvBd/pFNSgJsdAgWptuFu7qq/ERvOYFlhvsLTCKA==", 17 | "dev": true, 18 | "requires": { 19 | "@nodelib/fs.stat": "2.0.4", 20 | "run-parallel": "^1.1.9" 21 | } 22 | }, 23 | "@nodelib/fs.stat": { 24 | "version": "2.0.4", 25 | "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.4.tgz", 26 | "integrity": "sha512-IYlHJA0clt2+Vg7bccq+TzRdJvv19c2INqBSsoOLp1je7xjtr7J26+WXR72MCdvU9q1qTzIWDfhMf+DRvQJK4Q==", 27 | "dev": true 28 | }, 29 | "@nodelib/fs.walk": { 30 | "version": "1.2.6", 31 | "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.6.tgz", 32 | "integrity": "sha512-8Broas6vTtW4GIXTAHDoE32hnN2M5ykgCpWGbuXHQ15vEMqr23pB76e/GZcYsZCHALv50ktd24qhEyKr6wBtow==", 33 | "dev": true, 34 | "requires": { 35 | "@nodelib/fs.scandir": "2.1.4", 36 | "fastq": "^1.6.0" 37 | } 38 | }, 39 | "@types/anymatch": { 40 | "version": "1.3.1", 41 | "resolved": "https://registry.npmjs.org/@types/anymatch/-/anymatch-1.3.1.tgz", 42 | "integrity": "sha512-/+CRPXpBDpo2RK9C68N3b2cOvO0Cf5B9aPijHsoDQTHivnGSObdOF2BRQOYjojWTDy6nQvMjmqRXIxH55VjxxA==", 43 | "dev": true 44 | }, 45 | "@types/body-parser": { 46 | "version": "1.19.0", 47 | "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.0.tgz", 48 | "integrity": "sha512-W98JrE0j2K78swW4ukqMleo8R7h/pFETjM2DQ90MF6XK2i4LO4W3gQ71Lt4w3bfm2EvVSyWHplECvB5sK22yFQ==", 49 | "dev": true, 50 | "requires": { 51 | "@types/connect": "*", 52 | "@types/node": "*" 53 | } 54 | }, 55 | "@types/connect": { 56 | "version": "3.4.34", 57 | "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.34.tgz", 58 | "integrity": "sha512-ePPA/JuI+X0vb+gSWlPKOY0NdNAie/rPUqX2GUPpbZwiKTkSPhjXWuee47E4MtE54QVzGCQMQkAL6JhV2E1+cQ==", 59 | "dev": true, 60 | "requires": { 61 | "@types/node": "*" 62 | } 63 | }, 64 | "@types/cross-spawn": { 65 | "version": "6.0.2", 66 | "resolved": "https://registry.npmjs.org/@types/cross-spawn/-/cross-spawn-6.0.2.tgz", 67 | "integrity": "sha512-KuwNhp3eza+Rhu8IFI5HUXRP0LIhqH5cAjubUvGXXthh4YYBuP2ntwEX+Cz8GJoZUHlKo247wPWOfA9LYEq4cw==", 68 | "dev": true, 69 | "requires": { 70 | "@types/node": "*" 71 | } 72 | }, 73 | "@types/eslint": { 74 | "version": "7.2.7", 75 | "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-7.2.7.tgz", 76 | "integrity": "sha512-EHXbc1z2GoQRqHaAT7+grxlTJ3WE2YNeD6jlpPoRc83cCoThRY+NUWjCUZaYmk51OICkPXn2hhphcWcWXgNW0Q==", 77 | "dev": true, 78 | "requires": { 79 | "@types/estree": "*", 80 | "@types/json-schema": "*" 81 | } 82 | }, 83 | "@types/eslint-scope": { 84 | "version": "3.7.0", 85 | "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.0.tgz", 86 | "integrity": "sha512-O/ql2+rrCUe2W2rs7wMR+GqPRcgB6UiqN5RhrR5xruFlY7l9YLMn0ZkDzjoHLeiFkR8MCQZVudUuuvQ2BLC9Qw==", 87 | "dev": true, 88 | "requires": { 89 | "@types/eslint": "*", 90 | "@types/estree": "*" 91 | } 92 | }, 93 | "@types/estree": { 94 | "version": "0.0.46", 95 | "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.46.tgz", 96 | "integrity": "sha512-laIjwTQaD+5DukBZaygQ79K1Z0jb1bPEMRrkXSLjtCcZm+abyp5YbrqpSLzD42FwWW6gK/aS4NYpJ804nG2brg==", 97 | "dev": true 98 | }, 99 | "@types/express": { 100 | "version": "4.17.11", 101 | "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.11.tgz", 102 | "integrity": "sha512-no+R6rW60JEc59977wIxreQVsIEOAYwgCqldrA/vkpCnbD7MqTefO97lmoBe4WE0F156bC4uLSP1XHDOySnChg==", 103 | "dev": true, 104 | "requires": { 105 | "@types/body-parser": "*", 106 | "@types/express-serve-static-core": "^4.17.18", 107 | "@types/qs": "*", 108 | "@types/serve-static": "*" 109 | } 110 | }, 111 | "@types/express-serve-static-core": { 112 | "version": "4.17.19", 113 | "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.19.tgz", 114 | "integrity": "sha512-DJOSHzX7pCiSElWaGR8kCprwibCB/3yW6vcT8VG3P0SJjnv19gnWG/AZMfM60Xj/YJIp/YCaDHyvzsFVeniARA==", 115 | "dev": true, 116 | "requires": { 117 | "@types/node": "*", 118 | "@types/qs": "*", 119 | "@types/range-parser": "*" 120 | } 121 | }, 122 | "@types/glob": { 123 | "version": "7.1.3", 124 | "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.3.tgz", 125 | "integrity": "sha512-SEYeGAIQIQX8NN6LDKprLjbrd5dARM5EXsd8GI/A5l0apYI1fGMWgPHSe4ZKL4eozlAyI+doUE9XbYS4xCkQ1w==", 126 | "dev": true, 127 | "requires": { 128 | "@types/minimatch": "*", 129 | "@types/node": "*" 130 | } 131 | }, 132 | "@types/json-schema": { 133 | "version": "7.0.7", 134 | "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.7.tgz", 135 | "integrity": "sha512-cxWFQVseBm6O9Gbw1IWb8r6OS4OhSt3hPZLkFApLjM8TEXROBuQGLAH2i2gZpcXdLBIrpXuTDhH7Vbm1iXmNGA==", 136 | "dev": true 137 | }, 138 | "@types/mime": { 139 | "version": "1.3.2", 140 | "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz", 141 | "integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==", 142 | "dev": true 143 | }, 144 | "@types/minimatch": { 145 | "version": "3.0.4", 146 | "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.4.tgz", 147 | "integrity": "sha512-1z8k4wzFnNjVK/tlxvrWuK5WMt6mydWWP7+zvH5eFep4oj+UkrfiJTRtjCeBXNpwaA/FYqqtb4/QS4ianFpIRA==", 148 | "dev": true 149 | }, 150 | "@types/node": { 151 | "version": "14.14.35", 152 | "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.35.tgz", 153 | "integrity": "sha512-Lt+wj8NVPx0zUmUwumiVXapmaLUcAk3yPuHCFVXras9k5VT9TdhJqKqGVUQCD60OTMCl0qxJ57OiTL0Mic3Iag==", 154 | "dev": true 155 | }, 156 | "@types/prop-types": { 157 | "version": "15.7.3", 158 | "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.3.tgz", 159 | "integrity": "sha512-KfRL3PuHmqQLOG+2tGpRO26Ctg+Cq1E01D2DMriKEATHgWLfeNDmq9e29Q9WIky0dQ3NPkd1mzYH8Lm936Z9qw==", 160 | "dev": true 161 | }, 162 | "@types/qs": { 163 | "version": "6.9.6", 164 | "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.6.tgz", 165 | "integrity": "sha512-0/HnwIfW4ki2D8L8c9GVcG5I72s9jP5GSLVF0VIXDW00kmIpA6O33G7a8n59Tmh7Nz0WUC3rSb7PTY/sdW2JzA==", 166 | "dev": true 167 | }, 168 | "@types/range-parser": { 169 | "version": "1.2.3", 170 | "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.3.tgz", 171 | "integrity": "sha512-ewFXqrQHlFsgc09MK5jP5iR7vumV/BYayNC6PgJO2LPe8vrnNFyjQjSppfEngITi0qvfKtzFvgKymGheFM9UOA==", 172 | "dev": true 173 | }, 174 | "@types/react": { 175 | "version": "17.0.3", 176 | "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.3.tgz", 177 | "integrity": "sha512-wYOUxIgs2HZZ0ACNiIayItyluADNbONl7kt8lkLjVK8IitMH5QMyAh75Fwhmo37r1m7L2JaFj03sIfxBVDvRAg==", 178 | "dev": true, 179 | "requires": { 180 | "@types/prop-types": "*", 181 | "@types/scheduler": "*", 182 | "csstype": "^3.0.2" 183 | } 184 | }, 185 | "@types/react-dom": { 186 | "version": "17.0.3", 187 | "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-17.0.3.tgz", 188 | "integrity": "sha512-4NnJbCeWE+8YBzupn/YrJxZ8VnjcJq5iR1laqQ1vkpQgBiA7bwk0Rp24fxsdNinzJY2U+HHS4dJJDPdoMjdJ7w==", 189 | "dev": true, 190 | "requires": { 191 | "@types/react": "*" 192 | } 193 | }, 194 | "@types/scheduler": { 195 | "version": "0.16.1", 196 | "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.1.tgz", 197 | "integrity": "sha512-EaCxbanVeyxDRTQBkdLb3Bvl/HK7PBK6UJjsSixB0iHKoWxE5uu2Q/DgtpOhPIojN0Zl1whvOd7PoHs2P0s5eA==", 198 | "dev": true 199 | }, 200 | "@types/serve-static": { 201 | "version": "1.13.9", 202 | "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.9.tgz", 203 | "integrity": "sha512-ZFqF6qa48XsPdjXV5Gsz0Zqmux2PerNd3a/ktL45mHpa19cuMi/cL8tcxdAx497yRh+QtYPuofjT9oWw9P7nkA==", 204 | "dev": true, 205 | "requires": { 206 | "@types/mime": "^1", 207 | "@types/node": "*" 208 | } 209 | }, 210 | "@types/source-list-map": { 211 | "version": "0.1.2", 212 | "resolved": "https://registry.npmjs.org/@types/source-list-map/-/source-list-map-0.1.2.tgz", 213 | "integrity": "sha512-K5K+yml8LTo9bWJI/rECfIPrGgxdpeNbj+d53lwN4QjW1MCwlkhUms+gtdzigTeUyBr09+u8BwOIY3MXvHdcsA==", 214 | "dev": true 215 | }, 216 | "@types/tapable": { 217 | "version": "1.0.7", 218 | "resolved": "https://registry.npmjs.org/@types/tapable/-/tapable-1.0.7.tgz", 219 | "integrity": "sha512-0VBprVqfgFD7Ehb2vd8Lh9TG3jP98gvr8rgehQqzztZNI7o8zS8Ad4jyZneKELphpuE212D8J70LnSNQSyO6bQ==", 220 | "dev": true 221 | }, 222 | "@types/uglify-js": { 223 | "version": "3.13.0", 224 | "resolved": "https://registry.npmjs.org/@types/uglify-js/-/uglify-js-3.13.0.tgz", 225 | "integrity": "sha512-EGkrJD5Uy+Pg0NUR8uA4bJ5WMfljyad0G+784vLCNUkD+QwOJXUbBYExXfVGf7YtyzdQp3L/XMYcliB987kL5Q==", 226 | "dev": true, 227 | "requires": { 228 | "source-map": "^0.6.1" 229 | } 230 | }, 231 | "@types/webpack": { 232 | "version": "4.41.27", 233 | "resolved": "https://registry.npmjs.org/@types/webpack/-/webpack-4.41.27.tgz", 234 | "integrity": "sha512-wK/oi5gcHi72VMTbOaQ70VcDxSQ1uX8S2tukBK9ARuGXrYM/+u4ou73roc7trXDNmCxCoerE8zruQqX/wuHszA==", 235 | "dev": true, 236 | "requires": { 237 | "@types/anymatch": "*", 238 | "@types/node": "*", 239 | "@types/tapable": "^1", 240 | "@types/uglify-js": "*", 241 | "@types/webpack-sources": "*", 242 | "source-map": "^0.6.0" 243 | } 244 | }, 245 | "@types/webpack-sources": { 246 | "version": "2.1.0", 247 | "resolved": "https://registry.npmjs.org/@types/webpack-sources/-/webpack-sources-2.1.0.tgz", 248 | "integrity": "sha512-LXn/oYIpBeucgP1EIJbKQ2/4ZmpvRl+dlrFdX7+94SKRUV3Evy3FsfMZY318vGhkWUS5MPhtOM3w1/hCOAOXcg==", 249 | "dev": true, 250 | "requires": { 251 | "@types/node": "*", 252 | "@types/source-list-map": "*", 253 | "source-map": "^0.7.3" 254 | }, 255 | "dependencies": { 256 | "source-map": { 257 | "version": "0.7.3", 258 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", 259 | "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", 260 | "dev": true 261 | } 262 | } 263 | }, 264 | "@webassemblyjs/ast": { 265 | "version": "1.11.0", 266 | "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.0.tgz", 267 | "integrity": "sha512-kX2W49LWsbthrmIRMbQZuQDhGtjyqXfEmmHyEi4XWnSZtPmxY0+3anPIzsnRb45VH/J55zlOfWvZuY47aJZTJg==", 268 | "dev": true, 269 | "requires": { 270 | "@webassemblyjs/helper-numbers": "1.11.0", 271 | "@webassemblyjs/helper-wasm-bytecode": "1.11.0" 272 | } 273 | }, 274 | "@webassemblyjs/floating-point-hex-parser": { 275 | "version": "1.11.0", 276 | "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.0.tgz", 277 | "integrity": "sha512-Q/aVYs/VnPDVYvsCBL/gSgwmfjeCb4LW8+TMrO3cSzJImgv8lxxEPM2JA5jMrivE7LSz3V+PFqtMbls3m1exDA==", 278 | "dev": true 279 | }, 280 | "@webassemblyjs/helper-api-error": { 281 | "version": "1.11.0", 282 | "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.0.tgz", 283 | "integrity": "sha512-baT/va95eXiXb2QflSx95QGT5ClzWpGaa8L7JnJbgzoYeaA27FCvuBXU758l+KXWRndEmUXjP0Q5fibhavIn8w==", 284 | "dev": true 285 | }, 286 | "@webassemblyjs/helper-buffer": { 287 | "version": "1.11.0", 288 | "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.0.tgz", 289 | "integrity": "sha512-u9HPBEl4DS+vA8qLQdEQ6N/eJQ7gT7aNvMIo8AAWvAl/xMrcOSiI2M0MAnMCy3jIFke7bEee/JwdX1nUpCtdyA==", 290 | "dev": true 291 | }, 292 | "@webassemblyjs/helper-numbers": { 293 | "version": "1.11.0", 294 | "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.0.tgz", 295 | "integrity": "sha512-DhRQKelIj01s5IgdsOJMKLppI+4zpmcMQ3XboFPLwCpSNH6Hqo1ritgHgD0nqHeSYqofA6aBN/NmXuGjM1jEfQ==", 296 | "dev": true, 297 | "requires": { 298 | "@webassemblyjs/floating-point-hex-parser": "1.11.0", 299 | "@webassemblyjs/helper-api-error": "1.11.0", 300 | "@xtuc/long": "4.2.2" 301 | } 302 | }, 303 | "@webassemblyjs/helper-wasm-bytecode": { 304 | "version": "1.11.0", 305 | "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.0.tgz", 306 | "integrity": "sha512-MbmhvxXExm542tWREgSFnOVo07fDpsBJg3sIl6fSp9xuu75eGz5lz31q7wTLffwL3Za7XNRCMZy210+tnsUSEA==", 307 | "dev": true 308 | }, 309 | "@webassemblyjs/helper-wasm-section": { 310 | "version": "1.11.0", 311 | "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.0.tgz", 312 | "integrity": "sha512-3Eb88hcbfY/FCukrg6i3EH8H2UsD7x8Vy47iVJrP967A9JGqgBVL9aH71SETPx1JrGsOUVLo0c7vMCN22ytJew==", 313 | "dev": true, 314 | "requires": { 315 | "@webassemblyjs/ast": "1.11.0", 316 | "@webassemblyjs/helper-buffer": "1.11.0", 317 | "@webassemblyjs/helper-wasm-bytecode": "1.11.0", 318 | "@webassemblyjs/wasm-gen": "1.11.0" 319 | } 320 | }, 321 | "@webassemblyjs/ieee754": { 322 | "version": "1.11.0", 323 | "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.0.tgz", 324 | "integrity": "sha512-KXzOqpcYQwAfeQ6WbF6HXo+0udBNmw0iXDmEK5sFlmQdmND+tr773Ti8/5T/M6Tl/413ArSJErATd8In3B+WBA==", 325 | "dev": true, 326 | "requires": { 327 | "@xtuc/ieee754": "^1.2.0" 328 | } 329 | }, 330 | "@webassemblyjs/leb128": { 331 | "version": "1.11.0", 332 | "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.0.tgz", 333 | "integrity": "sha512-aqbsHa1mSQAbeeNcl38un6qVY++hh8OpCOzxhixSYgbRfNWcxJNJQwe2rezK9XEcssJbbWIkblaJRwGMS9zp+g==", 334 | "dev": true, 335 | "requires": { 336 | "@xtuc/long": "4.2.2" 337 | } 338 | }, 339 | "@webassemblyjs/utf8": { 340 | "version": "1.11.0", 341 | "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.0.tgz", 342 | "integrity": "sha512-A/lclGxH6SpSLSyFowMzO/+aDEPU4hvEiooCMXQPcQFPPJaYcPQNKGOCLUySJsYJ4trbpr+Fs08n4jelkVTGVw==", 343 | "dev": true 344 | }, 345 | "@webassemblyjs/wasm-edit": { 346 | "version": "1.11.0", 347 | "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.0.tgz", 348 | "integrity": "sha512-JHQ0damXy0G6J9ucyKVXO2j08JVJ2ntkdJlq1UTiUrIgfGMmA7Ik5VdC/L8hBK46kVJgujkBIoMtT8yVr+yVOQ==", 349 | "dev": true, 350 | "requires": { 351 | "@webassemblyjs/ast": "1.11.0", 352 | "@webassemblyjs/helper-buffer": "1.11.0", 353 | "@webassemblyjs/helper-wasm-bytecode": "1.11.0", 354 | "@webassemblyjs/helper-wasm-section": "1.11.0", 355 | "@webassemblyjs/wasm-gen": "1.11.0", 356 | "@webassemblyjs/wasm-opt": "1.11.0", 357 | "@webassemblyjs/wasm-parser": "1.11.0", 358 | "@webassemblyjs/wast-printer": "1.11.0" 359 | } 360 | }, 361 | "@webassemblyjs/wasm-gen": { 362 | "version": "1.11.0", 363 | "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.0.tgz", 364 | "integrity": "sha512-BEUv1aj0WptCZ9kIS30th5ILASUnAPEvE3tVMTrItnZRT9tXCLW2LEXT8ezLw59rqPP9klh9LPmpU+WmRQmCPQ==", 365 | "dev": true, 366 | "requires": { 367 | "@webassemblyjs/ast": "1.11.0", 368 | "@webassemblyjs/helper-wasm-bytecode": "1.11.0", 369 | "@webassemblyjs/ieee754": "1.11.0", 370 | "@webassemblyjs/leb128": "1.11.0", 371 | "@webassemblyjs/utf8": "1.11.0" 372 | } 373 | }, 374 | "@webassemblyjs/wasm-opt": { 375 | "version": "1.11.0", 376 | "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.0.tgz", 377 | "integrity": "sha512-tHUSP5F4ywyh3hZ0+fDQuWxKx3mJiPeFufg+9gwTpYp324mPCQgnuVKwzLTZVqj0duRDovnPaZqDwoyhIO8kYg==", 378 | "dev": true, 379 | "requires": { 380 | "@webassemblyjs/ast": "1.11.0", 381 | "@webassemblyjs/helper-buffer": "1.11.0", 382 | "@webassemblyjs/wasm-gen": "1.11.0", 383 | "@webassemblyjs/wasm-parser": "1.11.0" 384 | } 385 | }, 386 | "@webassemblyjs/wasm-parser": { 387 | "version": "1.11.0", 388 | "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.0.tgz", 389 | "integrity": "sha512-6L285Sgu9gphrcpDXINvm0M9BskznnzJTE7gYkjDbxET28shDqp27wpruyx3C2S/dvEwiigBwLA1cz7lNUi0kw==", 390 | "dev": true, 391 | "requires": { 392 | "@webassemblyjs/ast": "1.11.0", 393 | "@webassemblyjs/helper-api-error": "1.11.0", 394 | "@webassemblyjs/helper-wasm-bytecode": "1.11.0", 395 | "@webassemblyjs/ieee754": "1.11.0", 396 | "@webassemblyjs/leb128": "1.11.0", 397 | "@webassemblyjs/utf8": "1.11.0" 398 | } 399 | }, 400 | "@webassemblyjs/wast-printer": { 401 | "version": "1.11.0", 402 | "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.0.tgz", 403 | "integrity": "sha512-Fg5OX46pRdTgB7rKIUojkh9vXaVN6sGYCnEiJN1GYkb0RPwShZXp6KTDqmoMdQPKhcroOXh3fEzmkWmCYaKYhQ==", 404 | "dev": true, 405 | "requires": { 406 | "@webassemblyjs/ast": "1.11.0", 407 | "@xtuc/long": "4.2.2" 408 | } 409 | }, 410 | "@webpack-cli/configtest": { 411 | "version": "1.0.1", 412 | "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-1.0.1.tgz", 413 | "integrity": "sha512-B+4uBUYhpzDXmwuo3V9yBH6cISwxEI4J+NO5ggDaGEEHb0osY/R7MzeKc0bHURXQuZjMM4qD+bSJCKIuI3eNBQ==", 414 | "dev": true 415 | }, 416 | "@webpack-cli/info": { 417 | "version": "1.2.2", 418 | "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-1.2.2.tgz", 419 | "integrity": "sha512-5U9kUJHnwU+FhKH4PWGZuBC1hTEPYyxGSL5jjoBI96Gx8qcYJGOikpiIpFoTq8mmgX3im2zAo2wanv/alD74KQ==", 420 | "dev": true, 421 | "requires": { 422 | "envinfo": "^7.7.3" 423 | } 424 | }, 425 | "@webpack-cli/serve": { 426 | "version": "1.3.0", 427 | "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-1.3.0.tgz", 428 | "integrity": "sha512-k2p2VrONcYVX1wRRrf0f3X2VGltLWcv+JzXRBDmvCxGlCeESx4OXw91TsWeKOkp784uNoVQo313vxJFHXPPwfw==", 429 | "dev": true 430 | }, 431 | "@xtuc/ieee754": { 432 | "version": "1.2.0", 433 | "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", 434 | "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", 435 | "dev": true 436 | }, 437 | "@xtuc/long": { 438 | "version": "4.2.2", 439 | "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", 440 | "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", 441 | "dev": true 442 | }, 443 | "accepts": { 444 | "version": "1.3.7", 445 | "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", 446 | "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", 447 | "requires": { 448 | "mime-types": "~2.1.24", 449 | "negotiator": "0.6.2" 450 | } 451 | }, 452 | "acorn": { 453 | "version": "8.1.0", 454 | "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.1.0.tgz", 455 | "integrity": "sha512-LWCF/Wn0nfHOmJ9rzQApGnxnvgfROzGilS8936rqN/lfcYkY9MYZzdMqN+2NJ4SlTc+m5HiSa+kNfDtI64dwUA==", 456 | "dev": true 457 | }, 458 | "ajv": { 459 | "version": "6.12.6", 460 | "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", 461 | "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", 462 | "dev": true, 463 | "requires": { 464 | "fast-deep-equal": "^3.1.1", 465 | "fast-json-stable-stringify": "^2.0.0", 466 | "json-schema-traverse": "^0.4.1", 467 | "uri-js": "^4.2.2" 468 | } 469 | }, 470 | "ajv-keywords": { 471 | "version": "3.5.2", 472 | "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", 473 | "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", 474 | "dev": true 475 | }, 476 | "ansi-colors": { 477 | "version": "4.1.1", 478 | "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", 479 | "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", 480 | "dev": true 481 | }, 482 | "ansi-styles": { 483 | "version": "4.3.0", 484 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", 485 | "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", 486 | "dev": true, 487 | "requires": { 488 | "color-convert": "^2.0.1" 489 | } 490 | }, 491 | "array-flatten": { 492 | "version": "1.1.1", 493 | "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", 494 | "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" 495 | }, 496 | "array-union": { 497 | "version": "1.0.2", 498 | "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", 499 | "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", 500 | "dev": true, 501 | "requires": { 502 | "array-uniq": "^1.0.1" 503 | } 504 | }, 505 | "array-uniq": { 506 | "version": "1.0.3", 507 | "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", 508 | "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", 509 | "dev": true 510 | }, 511 | "async": { 512 | "version": "0.9.2", 513 | "resolved": "https://registry.npmjs.org/async/-/async-0.9.2.tgz", 514 | "integrity": "sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0=" 515 | }, 516 | "balanced-match": { 517 | "version": "1.0.0", 518 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", 519 | "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" 520 | }, 521 | "big.js": { 522 | "version": "5.2.2", 523 | "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", 524 | "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", 525 | "dev": true 526 | }, 527 | "body-parser": { 528 | "version": "1.19.0", 529 | "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", 530 | "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", 531 | "requires": { 532 | "bytes": "3.1.0", 533 | "content-type": "~1.0.4", 534 | "debug": "2.6.9", 535 | "depd": "~1.1.2", 536 | "http-errors": "1.7.2", 537 | "iconv-lite": "0.4.24", 538 | "on-finished": "~2.3.0", 539 | "qs": "6.7.0", 540 | "raw-body": "2.4.0", 541 | "type-is": "~1.6.17" 542 | } 543 | }, 544 | "brace-expansion": { 545 | "version": "1.1.11", 546 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", 547 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", 548 | "requires": { 549 | "balanced-match": "^1.0.0", 550 | "concat-map": "0.0.1" 551 | } 552 | }, 553 | "braces": { 554 | "version": "3.0.2", 555 | "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", 556 | "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", 557 | "dev": true, 558 | "requires": { 559 | "fill-range": "^7.0.1" 560 | } 561 | }, 562 | "browserslist": { 563 | "version": "4.16.3", 564 | "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.3.tgz", 565 | "integrity": "sha512-vIyhWmIkULaq04Gt93txdh+j02yX/JzlyhLYbV3YQCn/zvES3JnY7TifHHvvr1w5hTDluNKMkV05cs4vy8Q7sw==", 566 | "dev": true, 567 | "requires": { 568 | "caniuse-lite": "^1.0.30001181", 569 | "colorette": "^1.2.1", 570 | "electron-to-chromium": "^1.3.649", 571 | "escalade": "^3.1.1", 572 | "node-releases": "^1.1.70" 573 | } 574 | }, 575 | "buffer-from": { 576 | "version": "1.1.1", 577 | "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", 578 | "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", 579 | "dev": true 580 | }, 581 | "bytes": { 582 | "version": "3.1.0", 583 | "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", 584 | "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==" 585 | }, 586 | "caniuse-lite": { 587 | "version": "1.0.30001203", 588 | "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001203.tgz", 589 | "integrity": "sha512-/I9tvnzU/PHMH7wBPrfDMSuecDeUKerjCPX7D0xBbaJZPxoT9m+yYxt0zCTkcijCkjTdim3H56Zm0i5Adxch4w==", 590 | "dev": true 591 | }, 592 | "chalk": { 593 | "version": "4.1.0", 594 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", 595 | "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", 596 | "dev": true, 597 | "requires": { 598 | "ansi-styles": "^4.1.0", 599 | "supports-color": "^7.1.0" 600 | } 601 | }, 602 | "chrome-trace-event": { 603 | "version": "1.0.2", 604 | "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz", 605 | "integrity": "sha512-9e/zx1jw7B4CO+c/RXoCsfg/x1AfUBioy4owYH0bJprEYAx5hRFLRhWBqHAG57D0ZM4H7vxbP7bPe0VwhQRYDQ==", 606 | "dev": true, 607 | "requires": { 608 | "tslib": "^1.9.0" 609 | } 610 | }, 611 | "clean-webpack-plugin": { 612 | "version": "3.0.0", 613 | "resolved": "https://registry.npmjs.org/clean-webpack-plugin/-/clean-webpack-plugin-3.0.0.tgz", 614 | "integrity": "sha512-MciirUH5r+cYLGCOL5JX/ZLzOZbVr1ot3Fw+KcvbhUb6PM+yycqd9ZhIlcigQ5gl+XhppNmw3bEFuaaMNyLj3A==", 615 | "dev": true, 616 | "requires": { 617 | "@types/webpack": "^4.4.31", 618 | "del": "^4.1.1" 619 | } 620 | }, 621 | "clone-deep": { 622 | "version": "4.0.1", 623 | "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", 624 | "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", 625 | "dev": true, 626 | "requires": { 627 | "is-plain-object": "^2.0.4", 628 | "kind-of": "^6.0.2", 629 | "shallow-clone": "^3.0.0" 630 | } 631 | }, 632 | "color-convert": { 633 | "version": "2.0.1", 634 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", 635 | "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", 636 | "dev": true, 637 | "requires": { 638 | "color-name": "~1.1.4" 639 | } 640 | }, 641 | "color-name": { 642 | "version": "1.1.4", 643 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", 644 | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", 645 | "dev": true 646 | }, 647 | "colorette": { 648 | "version": "1.2.2", 649 | "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.2.tgz", 650 | "integrity": "sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w==", 651 | "dev": true 652 | }, 653 | "commander": { 654 | "version": "2.20.3", 655 | "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", 656 | "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", 657 | "dev": true 658 | }, 659 | "concat-map": { 660 | "version": "0.0.1", 661 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", 662 | "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" 663 | }, 664 | "content-disposition": { 665 | "version": "0.5.3", 666 | "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", 667 | "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==", 668 | "requires": { 669 | "safe-buffer": "5.1.2" 670 | } 671 | }, 672 | "content-type": { 673 | "version": "1.0.4", 674 | "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", 675 | "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" 676 | }, 677 | "cookie": { 678 | "version": "0.4.0", 679 | "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz", 680 | "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==" 681 | }, 682 | "cookie-signature": { 683 | "version": "1.0.6", 684 | "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", 685 | "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" 686 | }, 687 | "copy-webpack-plugin": { 688 | "version": "8.1.0", 689 | "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-8.1.0.tgz", 690 | "integrity": "sha512-Soiq8kXI2AZkpw3dSp18u6oU2JonC7UKv3UdXsKOmT1A5QT46ku9+6c0Qy29JDbSavQJNN1/eKGpd3QNw+cZWg==", 691 | "dev": true, 692 | "requires": { 693 | "fast-glob": "^3.2.5", 694 | "glob-parent": "^5.1.1", 695 | "globby": "^11.0.3", 696 | "normalize-path": "^3.0.0", 697 | "p-limit": "^3.1.0", 698 | "schema-utils": "^3.0.0", 699 | "serialize-javascript": "^5.0.1" 700 | }, 701 | "dependencies": { 702 | "array-union": { 703 | "version": "2.1.0", 704 | "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", 705 | "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", 706 | "dev": true 707 | }, 708 | "globby": { 709 | "version": "11.0.3", 710 | "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.3.tgz", 711 | "integrity": "sha512-ffdmosjA807y7+lA1NM0jELARVmYul/715xiILEjo3hBLPTcirgQNnXECn5g3mtR8TOLCVbkfua1Hpen25/Xcg==", 712 | "dev": true, 713 | "requires": { 714 | "array-union": "^2.1.0", 715 | "dir-glob": "^3.0.1", 716 | "fast-glob": "^3.1.1", 717 | "ignore": "^5.1.4", 718 | "merge2": "^1.3.0", 719 | "slash": "^3.0.0" 720 | } 721 | } 722 | } 723 | }, 724 | "core-util-is": { 725 | "version": "1.0.2", 726 | "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", 727 | "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", 728 | "dev": true 729 | }, 730 | "cross-spawn": { 731 | "version": "7.0.3", 732 | "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", 733 | "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", 734 | "dev": true, 735 | "requires": { 736 | "path-key": "^3.1.0", 737 | "shebang-command": "^2.0.0", 738 | "which": "^2.0.1" 739 | } 740 | }, 741 | "csstype": { 742 | "version": "3.0.7", 743 | "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.7.tgz", 744 | "integrity": "sha512-KxnUB0ZMlnUWCsx2Z8MUsr6qV6ja1w9ArPErJaJaF8a5SOWoHLIszeCTKGRGRgtLgYrs1E8CHkNSP1VZTTPc9g==", 745 | "dev": true 746 | }, 747 | "debug": { 748 | "version": "2.6.9", 749 | "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", 750 | "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", 751 | "requires": { 752 | "ms": "2.0.0" 753 | } 754 | }, 755 | "del": { 756 | "version": "4.1.1", 757 | "resolved": "https://registry.npmjs.org/del/-/del-4.1.1.tgz", 758 | "integrity": "sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ==", 759 | "dev": true, 760 | "requires": { 761 | "@types/glob": "^7.1.1", 762 | "globby": "^6.1.0", 763 | "is-path-cwd": "^2.0.0", 764 | "is-path-in-cwd": "^2.0.0", 765 | "p-map": "^2.0.0", 766 | "pify": "^4.0.1", 767 | "rimraf": "^2.6.3" 768 | } 769 | }, 770 | "depd": { 771 | "version": "1.1.2", 772 | "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", 773 | "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" 774 | }, 775 | "destroy": { 776 | "version": "1.0.4", 777 | "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", 778 | "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" 779 | }, 780 | "dir-glob": { 781 | "version": "3.0.1", 782 | "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", 783 | "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", 784 | "dev": true, 785 | "requires": { 786 | "path-type": "^4.0.0" 787 | } 788 | }, 789 | "ee-first": { 790 | "version": "1.1.1", 791 | "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", 792 | "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" 793 | }, 794 | "ejs": { 795 | "version": "3.1.6", 796 | "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.6.tgz", 797 | "integrity": "sha512-9lt9Zse4hPucPkoP7FHDF0LQAlGyF9JVpnClFLFH3aSSbxmyoqINRpp/9wePWJTUl4KOQwRL72Iw3InHPDkoGw==", 798 | "requires": { 799 | "jake": "^10.6.1" 800 | } 801 | }, 802 | "electron-to-chromium": { 803 | "version": "1.3.692", 804 | "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.692.tgz", 805 | "integrity": "sha512-Ix+zDUAXWZuUzqKdhkgN5dP7ZM+IwMG4yAGFGDLpGJP/3vNEEwuHG1LIhtXUfW0FFV0j38t5PUv2n/3MFSRviQ==", 806 | "dev": true 807 | }, 808 | "emojis-list": { 809 | "version": "3.0.0", 810 | "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", 811 | "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", 812 | "dev": true 813 | }, 814 | "encodeurl": { 815 | "version": "1.0.2", 816 | "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", 817 | "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" 818 | }, 819 | "enhanced-resolve": { 820 | "version": "5.7.0", 821 | "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.7.0.tgz", 822 | "integrity": "sha512-6njwt/NsZFUKhM6j9U8hzVyD4E4r0x7NQzhTCbcWOJ0IQjNSAoalWmb0AE51Wn+fwan5qVESWi7t2ToBxs9vrw==", 823 | "dev": true, 824 | "requires": { 825 | "graceful-fs": "^4.2.4", 826 | "tapable": "^2.2.0" 827 | } 828 | }, 829 | "enquirer": { 830 | "version": "2.3.6", 831 | "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", 832 | "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", 833 | "dev": true, 834 | "requires": { 835 | "ansi-colors": "^4.1.1" 836 | } 837 | }, 838 | "envinfo": { 839 | "version": "7.7.4", 840 | "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.7.4.tgz", 841 | "integrity": "sha512-TQXTYFVVwwluWSFis6K2XKxgrD22jEv0FTuLCQI+OjH7rn93+iY0fSSFM5lrSxFY+H1+B0/cvvlamr3UsBivdQ==", 842 | "dev": true 843 | }, 844 | "errno": { 845 | "version": "0.1.8", 846 | "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", 847 | "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", 848 | "dev": true, 849 | "requires": { 850 | "prr": "~1.0.1" 851 | } 852 | }, 853 | "es-module-lexer": { 854 | "version": "0.4.1", 855 | "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.4.1.tgz", 856 | "integrity": "sha512-ooYciCUtfw6/d2w56UVeqHPcoCFAiJdz5XOkYpv/Txl1HMUozpXjz/2RIQgqwKdXNDPSF1W7mJCFse3G+HDyAA==", 857 | "dev": true 858 | }, 859 | "escalade": { 860 | "version": "3.1.1", 861 | "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", 862 | "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", 863 | "dev": true 864 | }, 865 | "escape-html": { 866 | "version": "1.0.3", 867 | "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", 868 | "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" 869 | }, 870 | "escape-string-regexp": { 871 | "version": "1.0.5", 872 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", 873 | "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" 874 | }, 875 | "eslint-scope": { 876 | "version": "5.1.1", 877 | "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", 878 | "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", 879 | "dev": true, 880 | "requires": { 881 | "esrecurse": "^4.3.0", 882 | "estraverse": "^4.1.1" 883 | } 884 | }, 885 | "esrecurse": { 886 | "version": "4.3.0", 887 | "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", 888 | "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", 889 | "dev": true, 890 | "requires": { 891 | "estraverse": "^5.2.0" 892 | }, 893 | "dependencies": { 894 | "estraverse": { 895 | "version": "5.2.0", 896 | "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", 897 | "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", 898 | "dev": true 899 | } 900 | } 901 | }, 902 | "estraverse": { 903 | "version": "4.3.0", 904 | "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", 905 | "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", 906 | "dev": true 907 | }, 908 | "etag": { 909 | "version": "1.8.1", 910 | "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", 911 | "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" 912 | }, 913 | "events": { 914 | "version": "3.3.0", 915 | "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", 916 | "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", 917 | "dev": true 918 | }, 919 | "execa": { 920 | "version": "5.0.0", 921 | "resolved": "https://registry.npmjs.org/execa/-/execa-5.0.0.tgz", 922 | "integrity": "sha512-ov6w/2LCiuyO4RLYGdpFGjkcs0wMTgGE8PrkTHikeUy5iJekXyPIKUjifk5CsE0pt7sMCrMZ3YNqoCj6idQOnQ==", 923 | "dev": true, 924 | "requires": { 925 | "cross-spawn": "^7.0.3", 926 | "get-stream": "^6.0.0", 927 | "human-signals": "^2.1.0", 928 | "is-stream": "^2.0.0", 929 | "merge-stream": "^2.0.0", 930 | "npm-run-path": "^4.0.1", 931 | "onetime": "^5.1.2", 932 | "signal-exit": "^3.0.3", 933 | "strip-final-newline": "^2.0.0" 934 | } 935 | }, 936 | "express": { 937 | "version": "4.17.1", 938 | "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", 939 | "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==", 940 | "requires": { 941 | "accepts": "~1.3.7", 942 | "array-flatten": "1.1.1", 943 | "body-parser": "1.19.0", 944 | "content-disposition": "0.5.3", 945 | "content-type": "~1.0.4", 946 | "cookie": "0.4.0", 947 | "cookie-signature": "1.0.6", 948 | "debug": "2.6.9", 949 | "depd": "~1.1.2", 950 | "encodeurl": "~1.0.2", 951 | "escape-html": "~1.0.3", 952 | "etag": "~1.8.1", 953 | "finalhandler": "~1.1.2", 954 | "fresh": "0.5.2", 955 | "merge-descriptors": "1.0.1", 956 | "methods": "~1.1.2", 957 | "on-finished": "~2.3.0", 958 | "parseurl": "~1.3.3", 959 | "path-to-regexp": "0.1.7", 960 | "proxy-addr": "~2.0.5", 961 | "qs": "6.7.0", 962 | "range-parser": "~1.2.1", 963 | "safe-buffer": "5.1.2", 964 | "send": "0.17.1", 965 | "serve-static": "1.14.1", 966 | "setprototypeof": "1.1.1", 967 | "statuses": "~1.5.0", 968 | "type-is": "~1.6.18", 969 | "utils-merge": "1.0.1", 970 | "vary": "~1.1.2" 971 | } 972 | }, 973 | "fast-deep-equal": { 974 | "version": "3.1.3", 975 | "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", 976 | "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", 977 | "dev": true 978 | }, 979 | "fast-glob": { 980 | "version": "3.2.5", 981 | "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.5.tgz", 982 | "integrity": "sha512-2DtFcgT68wiTTiwZ2hNdJfcHNke9XOfnwmBRWXhmeKM8rF0TGwmC/Qto3S7RoZKp5cilZbxzO5iTNTQsJ+EeDg==", 983 | "dev": true, 984 | "requires": { 985 | "@nodelib/fs.stat": "^2.0.2", 986 | "@nodelib/fs.walk": "^1.2.3", 987 | "glob-parent": "^5.1.0", 988 | "merge2": "^1.3.0", 989 | "micromatch": "^4.0.2", 990 | "picomatch": "^2.2.1" 991 | } 992 | }, 993 | "fast-json-stable-stringify": { 994 | "version": "2.1.0", 995 | "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", 996 | "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", 997 | "dev": true 998 | }, 999 | "fastest-levenshtein": { 1000 | "version": "1.0.12", 1001 | "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.12.tgz", 1002 | "integrity": "sha512-On2N+BpYJ15xIC974QNVuYGMOlEVt4s0EOI3wwMqOmK1fdDY+FN/zltPV8vosq4ad4c/gJ1KHScUn/6AWIgiow==", 1003 | "dev": true 1004 | }, 1005 | "fastq": { 1006 | "version": "1.11.0", 1007 | "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.11.0.tgz", 1008 | "integrity": "sha512-7Eczs8gIPDrVzT+EksYBcupqMyxSHXXrHOLRRxU2/DicV8789MRBRR8+Hc2uWzUupOs4YS4JzBmBxjjCVBxD/g==", 1009 | "dev": true, 1010 | "requires": { 1011 | "reusify": "^1.0.4" 1012 | } 1013 | }, 1014 | "filelist": { 1015 | "version": "1.0.2", 1016 | "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.2.tgz", 1017 | "integrity": "sha512-z7O0IS8Plc39rTCq6i6iHxk43duYOn8uFJiWSewIq0Bww1RNybVHSCjahmcC87ZqAm4OTvFzlzeGu3XAzG1ctQ==", 1018 | "requires": { 1019 | "minimatch": "^3.0.4" 1020 | } 1021 | }, 1022 | "fill-range": { 1023 | "version": "7.0.1", 1024 | "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", 1025 | "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", 1026 | "dev": true, 1027 | "requires": { 1028 | "to-regex-range": "^5.0.1" 1029 | } 1030 | }, 1031 | "finalhandler": { 1032 | "version": "1.1.2", 1033 | "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", 1034 | "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", 1035 | "requires": { 1036 | "debug": "2.6.9", 1037 | "encodeurl": "~1.0.2", 1038 | "escape-html": "~1.0.3", 1039 | "on-finished": "~2.3.0", 1040 | "parseurl": "~1.3.3", 1041 | "statuses": "~1.5.0", 1042 | "unpipe": "~1.0.0" 1043 | } 1044 | }, 1045 | "find-up": { 1046 | "version": "4.1.0", 1047 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", 1048 | "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", 1049 | "dev": true, 1050 | "requires": { 1051 | "locate-path": "^5.0.0", 1052 | "path-exists": "^4.0.0" 1053 | } 1054 | }, 1055 | "forwarded": { 1056 | "version": "0.1.2", 1057 | "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", 1058 | "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=" 1059 | }, 1060 | "fresh": { 1061 | "version": "0.5.2", 1062 | "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", 1063 | "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" 1064 | }, 1065 | "fs.realpath": { 1066 | "version": "1.0.0", 1067 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", 1068 | "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", 1069 | "dev": true 1070 | }, 1071 | "function-bind": { 1072 | "version": "1.1.1", 1073 | "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", 1074 | "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", 1075 | "dev": true 1076 | }, 1077 | "get-stream": { 1078 | "version": "6.0.0", 1079 | "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.0.tgz", 1080 | "integrity": "sha512-A1B3Bh1UmL0bidM/YX2NsCOTnGJePL9rO/M+Mw3m9f2gUpfokS0hi5Eah0WSUEWZdZhIZtMjkIYS7mDfOqNHbg==", 1081 | "dev": true 1082 | }, 1083 | "glob": { 1084 | "version": "7.1.6", 1085 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", 1086 | "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", 1087 | "dev": true, 1088 | "requires": { 1089 | "fs.realpath": "^1.0.0", 1090 | "inflight": "^1.0.4", 1091 | "inherits": "2", 1092 | "minimatch": "^3.0.4", 1093 | "once": "^1.3.0", 1094 | "path-is-absolute": "^1.0.0" 1095 | } 1096 | }, 1097 | "glob-parent": { 1098 | "version": "5.1.2", 1099 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", 1100 | "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", 1101 | "dev": true, 1102 | "requires": { 1103 | "is-glob": "^4.0.1" 1104 | } 1105 | }, 1106 | "glob-to-regexp": { 1107 | "version": "0.4.1", 1108 | "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", 1109 | "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", 1110 | "dev": true 1111 | }, 1112 | "globby": { 1113 | "version": "6.1.0", 1114 | "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", 1115 | "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", 1116 | "dev": true, 1117 | "requires": { 1118 | "array-union": "^1.0.1", 1119 | "glob": "^7.0.3", 1120 | "object-assign": "^4.0.1", 1121 | "pify": "^2.0.0", 1122 | "pinkie-promise": "^2.0.0" 1123 | }, 1124 | "dependencies": { 1125 | "pify": { 1126 | "version": "2.3.0", 1127 | "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", 1128 | "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", 1129 | "dev": true 1130 | } 1131 | } 1132 | }, 1133 | "graceful-fs": { 1134 | "version": "4.2.6", 1135 | "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", 1136 | "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==", 1137 | "dev": true 1138 | }, 1139 | "has": { 1140 | "version": "1.0.3", 1141 | "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", 1142 | "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", 1143 | "dev": true, 1144 | "requires": { 1145 | "function-bind": "^1.1.1" 1146 | } 1147 | }, 1148 | "has-flag": { 1149 | "version": "4.0.0", 1150 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", 1151 | "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", 1152 | "dev": true 1153 | }, 1154 | "http-errors": { 1155 | "version": "1.7.2", 1156 | "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", 1157 | "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", 1158 | "requires": { 1159 | "depd": "~1.1.2", 1160 | "inherits": "2.0.3", 1161 | "setprototypeof": "1.1.1", 1162 | "statuses": ">= 1.5.0 < 2", 1163 | "toidentifier": "1.0.0" 1164 | } 1165 | }, 1166 | "human-signals": { 1167 | "version": "2.1.0", 1168 | "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", 1169 | "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", 1170 | "dev": true 1171 | }, 1172 | "iconv-lite": { 1173 | "version": "0.4.24", 1174 | "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", 1175 | "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", 1176 | "requires": { 1177 | "safer-buffer": ">= 2.1.2 < 3" 1178 | } 1179 | }, 1180 | "ignore": { 1181 | "version": "5.1.8", 1182 | "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", 1183 | "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==", 1184 | "dev": true 1185 | }, 1186 | "import-local": { 1187 | "version": "3.0.2", 1188 | "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.0.2.tgz", 1189 | "integrity": "sha512-vjL3+w0oulAVZ0hBHnxa/Nm5TAurf9YLQJDhqRZyqb+VKGOB6LU8t9H1Nr5CIo16vh9XfJTOoHwU0B71S557gA==", 1190 | "dev": true, 1191 | "requires": { 1192 | "pkg-dir": "^4.2.0", 1193 | "resolve-cwd": "^3.0.0" 1194 | } 1195 | }, 1196 | "inflight": { 1197 | "version": "1.0.6", 1198 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", 1199 | "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", 1200 | "dev": true, 1201 | "requires": { 1202 | "once": "^1.3.0", 1203 | "wrappy": "1" 1204 | } 1205 | }, 1206 | "inherits": { 1207 | "version": "2.0.3", 1208 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", 1209 | "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" 1210 | }, 1211 | "interpret": { 1212 | "version": "2.2.0", 1213 | "resolved": "https://registry.npmjs.org/interpret/-/interpret-2.2.0.tgz", 1214 | "integrity": "sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw==", 1215 | "dev": true 1216 | }, 1217 | "ipaddr.js": { 1218 | "version": "1.9.1", 1219 | "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", 1220 | "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==" 1221 | }, 1222 | "is-core-module": { 1223 | "version": "2.2.0", 1224 | "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.2.0.tgz", 1225 | "integrity": "sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ==", 1226 | "dev": true, 1227 | "requires": { 1228 | "has": "^1.0.3" 1229 | } 1230 | }, 1231 | "is-extglob": { 1232 | "version": "2.1.1", 1233 | "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", 1234 | "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", 1235 | "dev": true 1236 | }, 1237 | "is-glob": { 1238 | "version": "4.0.1", 1239 | "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", 1240 | "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", 1241 | "dev": true, 1242 | "requires": { 1243 | "is-extglob": "^2.1.1" 1244 | } 1245 | }, 1246 | "is-number": { 1247 | "version": "7.0.0", 1248 | "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", 1249 | "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", 1250 | "dev": true 1251 | }, 1252 | "is-path-cwd": { 1253 | "version": "2.2.0", 1254 | "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", 1255 | "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", 1256 | "dev": true 1257 | }, 1258 | "is-path-in-cwd": { 1259 | "version": "2.1.0", 1260 | "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz", 1261 | "integrity": "sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ==", 1262 | "dev": true, 1263 | "requires": { 1264 | "is-path-inside": "^2.1.0" 1265 | } 1266 | }, 1267 | "is-path-inside": { 1268 | "version": "2.1.0", 1269 | "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-2.1.0.tgz", 1270 | "integrity": "sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg==", 1271 | "dev": true, 1272 | "requires": { 1273 | "path-is-inside": "^1.0.2" 1274 | } 1275 | }, 1276 | "is-plain-object": { 1277 | "version": "2.0.4", 1278 | "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", 1279 | "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", 1280 | "dev": true, 1281 | "requires": { 1282 | "isobject": "^3.0.1" 1283 | } 1284 | }, 1285 | "is-stream": { 1286 | "version": "2.0.0", 1287 | "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", 1288 | "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", 1289 | "dev": true 1290 | }, 1291 | "isarray": { 1292 | "version": "1.0.0", 1293 | "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", 1294 | "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", 1295 | "dev": true 1296 | }, 1297 | "isexe": { 1298 | "version": "2.0.0", 1299 | "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", 1300 | "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", 1301 | "dev": true 1302 | }, 1303 | "isobject": { 1304 | "version": "3.0.1", 1305 | "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", 1306 | "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", 1307 | "dev": true 1308 | }, 1309 | "jake": { 1310 | "version": "10.8.2", 1311 | "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.2.tgz", 1312 | "integrity": "sha512-eLpKyrfG3mzvGE2Du8VoPbeSkRry093+tyNjdYaBbJS9v17knImYGNXQCUV0gLxQtF82m3E8iRb/wdSQZLoq7A==", 1313 | "requires": { 1314 | "async": "0.9.x", 1315 | "chalk": "^2.4.2", 1316 | "filelist": "^1.0.1", 1317 | "minimatch": "^3.0.4" 1318 | }, 1319 | "dependencies": { 1320 | "ansi-styles": { 1321 | "version": "3.2.1", 1322 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", 1323 | "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", 1324 | "requires": { 1325 | "color-convert": "^1.9.0" 1326 | } 1327 | }, 1328 | "chalk": { 1329 | "version": "2.4.2", 1330 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", 1331 | "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", 1332 | "requires": { 1333 | "ansi-styles": "^3.2.1", 1334 | "escape-string-regexp": "^1.0.5", 1335 | "supports-color": "^5.3.0" 1336 | } 1337 | }, 1338 | "color-convert": { 1339 | "version": "1.9.3", 1340 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", 1341 | "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", 1342 | "requires": { 1343 | "color-name": "1.1.3" 1344 | } 1345 | }, 1346 | "color-name": { 1347 | "version": "1.1.3", 1348 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", 1349 | "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" 1350 | }, 1351 | "has-flag": { 1352 | "version": "3.0.0", 1353 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", 1354 | "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" 1355 | }, 1356 | "supports-color": { 1357 | "version": "5.5.0", 1358 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", 1359 | "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", 1360 | "requires": { 1361 | "has-flag": "^3.0.0" 1362 | } 1363 | } 1364 | } 1365 | }, 1366 | "jest-worker": { 1367 | "version": "26.6.2", 1368 | "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz", 1369 | "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==", 1370 | "dev": true, 1371 | "requires": { 1372 | "@types/node": "*", 1373 | "merge-stream": "^2.0.0", 1374 | "supports-color": "^7.0.0" 1375 | } 1376 | }, 1377 | "js-tokens": { 1378 | "version": "4.0.0", 1379 | "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", 1380 | "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" 1381 | }, 1382 | "json-parse-better-errors": { 1383 | "version": "1.0.2", 1384 | "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", 1385 | "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", 1386 | "dev": true 1387 | }, 1388 | "json-schema-traverse": { 1389 | "version": "0.4.1", 1390 | "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", 1391 | "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", 1392 | "dev": true 1393 | }, 1394 | "json5": { 1395 | "version": "2.2.0", 1396 | "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", 1397 | "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", 1398 | "dev": true, 1399 | "requires": { 1400 | "minimist": "^1.2.5" 1401 | } 1402 | }, 1403 | "kind-of": { 1404 | "version": "6.0.3", 1405 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", 1406 | "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", 1407 | "dev": true 1408 | }, 1409 | "loader-runner": { 1410 | "version": "4.2.0", 1411 | "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.2.0.tgz", 1412 | "integrity": "sha512-92+huvxMvYlMzMt0iIOukcwYBFpkYJdpl2xsZ7LrlayO7E8SOv+JJUEK17B/dJIHAOLMfh2dZZ/Y18WgmGtYNw==", 1413 | "dev": true 1414 | }, 1415 | "loader-utils": { 1416 | "version": "2.0.0", 1417 | "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz", 1418 | "integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==", 1419 | "dev": true, 1420 | "requires": { 1421 | "big.js": "^5.2.2", 1422 | "emojis-list": "^3.0.0", 1423 | "json5": "^2.1.2" 1424 | } 1425 | }, 1426 | "locate-path": { 1427 | "version": "5.0.0", 1428 | "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", 1429 | "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", 1430 | "dev": true, 1431 | "requires": { 1432 | "p-locate": "^4.1.0" 1433 | } 1434 | }, 1435 | "loose-envify": { 1436 | "version": "1.4.0", 1437 | "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", 1438 | "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", 1439 | "requires": { 1440 | "js-tokens": "^3.0.0 || ^4.0.0" 1441 | } 1442 | }, 1443 | "lru-cache": { 1444 | "version": "6.0.0", 1445 | "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", 1446 | "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", 1447 | "dev": true, 1448 | "requires": { 1449 | "yallist": "^4.0.0" 1450 | } 1451 | }, 1452 | "media-typer": { 1453 | "version": "0.3.0", 1454 | "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", 1455 | "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" 1456 | }, 1457 | "memory-fs": { 1458 | "version": "0.5.0", 1459 | "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.5.0.tgz", 1460 | "integrity": "sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==", 1461 | "dev": true, 1462 | "requires": { 1463 | "errno": "^0.1.3", 1464 | "readable-stream": "^2.0.1" 1465 | } 1466 | }, 1467 | "merge-descriptors": { 1468 | "version": "1.0.1", 1469 | "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", 1470 | "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" 1471 | }, 1472 | "merge-stream": { 1473 | "version": "2.0.0", 1474 | "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", 1475 | "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", 1476 | "dev": true 1477 | }, 1478 | "merge2": { 1479 | "version": "1.4.1", 1480 | "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", 1481 | "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", 1482 | "dev": true 1483 | }, 1484 | "methods": { 1485 | "version": "1.1.2", 1486 | "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", 1487 | "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" 1488 | }, 1489 | "micromatch": { 1490 | "version": "4.0.2", 1491 | "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", 1492 | "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", 1493 | "dev": true, 1494 | "requires": { 1495 | "braces": "^3.0.1", 1496 | "picomatch": "^2.0.5" 1497 | } 1498 | }, 1499 | "mime": { 1500 | "version": "1.6.0", 1501 | "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", 1502 | "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" 1503 | }, 1504 | "mime-db": { 1505 | "version": "1.46.0", 1506 | "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.46.0.tgz", 1507 | "integrity": "sha512-svXaP8UQRZ5K7or+ZmfNhg2xX3yKDMUzqadsSqi4NCH/KomcH75MAMYAGVlvXn4+b/xOPhS3I2uHKRUzvjY7BQ==" 1508 | }, 1509 | "mime-types": { 1510 | "version": "2.1.29", 1511 | "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.29.tgz", 1512 | "integrity": "sha512-Y/jMt/S5sR9OaqteJtslsFZKWOIIqMACsJSiHghlCAyhf7jfVYjKBmLiX8OgpWeW+fjJ2b+Az69aPFPkUOY6xQ==", 1513 | "requires": { 1514 | "mime-db": "1.46.0" 1515 | } 1516 | }, 1517 | "mimic-fn": { 1518 | "version": "2.1.0", 1519 | "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", 1520 | "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", 1521 | "dev": true 1522 | }, 1523 | "minimatch": { 1524 | "version": "3.0.4", 1525 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", 1526 | "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", 1527 | "requires": { 1528 | "brace-expansion": "^1.1.7" 1529 | } 1530 | }, 1531 | "minimist": { 1532 | "version": "1.2.5", 1533 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", 1534 | "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", 1535 | "dev": true 1536 | }, 1537 | "ms": { 1538 | "version": "2.0.0", 1539 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", 1540 | "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" 1541 | }, 1542 | "negotiator": { 1543 | "version": "0.6.2", 1544 | "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", 1545 | "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==" 1546 | }, 1547 | "neo-async": { 1548 | "version": "2.6.2", 1549 | "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", 1550 | "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", 1551 | "dev": true 1552 | }, 1553 | "node-releases": { 1554 | "version": "1.1.71", 1555 | "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.71.tgz", 1556 | "integrity": "sha512-zR6HoT6LrLCRBwukmrVbHv0EpEQjksO6GmFcZQQuCAy139BEsoVKPYnf3jongYW83fAa1torLGYwxxky/p28sg==", 1557 | "dev": true 1558 | }, 1559 | "normalize-path": { 1560 | "version": "3.0.0", 1561 | "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", 1562 | "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", 1563 | "dev": true 1564 | }, 1565 | "npm-run-path": { 1566 | "version": "4.0.1", 1567 | "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", 1568 | "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", 1569 | "dev": true, 1570 | "requires": { 1571 | "path-key": "^3.0.0" 1572 | } 1573 | }, 1574 | "object-assign": { 1575 | "version": "4.1.1", 1576 | "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", 1577 | "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" 1578 | }, 1579 | "on-finished": { 1580 | "version": "2.3.0", 1581 | "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", 1582 | "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", 1583 | "requires": { 1584 | "ee-first": "1.1.1" 1585 | } 1586 | }, 1587 | "once": { 1588 | "version": "1.4.0", 1589 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", 1590 | "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", 1591 | "dev": true, 1592 | "requires": { 1593 | "wrappy": "1" 1594 | } 1595 | }, 1596 | "onetime": { 1597 | "version": "5.1.2", 1598 | "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", 1599 | "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", 1600 | "dev": true, 1601 | "requires": { 1602 | "mimic-fn": "^2.1.0" 1603 | } 1604 | }, 1605 | "p-limit": { 1606 | "version": "3.1.0", 1607 | "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", 1608 | "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", 1609 | "dev": true, 1610 | "requires": { 1611 | "yocto-queue": "^0.1.0" 1612 | } 1613 | }, 1614 | "p-locate": { 1615 | "version": "4.1.0", 1616 | "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", 1617 | "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", 1618 | "dev": true, 1619 | "requires": { 1620 | "p-limit": "^2.2.0" 1621 | }, 1622 | "dependencies": { 1623 | "p-limit": { 1624 | "version": "2.3.0", 1625 | "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", 1626 | "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", 1627 | "dev": true, 1628 | "requires": { 1629 | "p-try": "^2.0.0" 1630 | } 1631 | } 1632 | } 1633 | }, 1634 | "p-map": { 1635 | "version": "2.1.0", 1636 | "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", 1637 | "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==", 1638 | "dev": true 1639 | }, 1640 | "p-try": { 1641 | "version": "2.2.0", 1642 | "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", 1643 | "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", 1644 | "dev": true 1645 | }, 1646 | "parseurl": { 1647 | "version": "1.3.3", 1648 | "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", 1649 | "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" 1650 | }, 1651 | "path-exists": { 1652 | "version": "4.0.0", 1653 | "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", 1654 | "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", 1655 | "dev": true 1656 | }, 1657 | "path-is-absolute": { 1658 | "version": "1.0.1", 1659 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", 1660 | "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", 1661 | "dev": true 1662 | }, 1663 | "path-is-inside": { 1664 | "version": "1.0.2", 1665 | "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", 1666 | "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", 1667 | "dev": true 1668 | }, 1669 | "path-key": { 1670 | "version": "3.1.1", 1671 | "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", 1672 | "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", 1673 | "dev": true 1674 | }, 1675 | "path-parse": { 1676 | "version": "1.0.6", 1677 | "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", 1678 | "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", 1679 | "dev": true 1680 | }, 1681 | "path-to-regexp": { 1682 | "version": "0.1.7", 1683 | "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", 1684 | "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" 1685 | }, 1686 | "path-type": { 1687 | "version": "4.0.0", 1688 | "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", 1689 | "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", 1690 | "dev": true 1691 | }, 1692 | "picomatch": { 1693 | "version": "2.2.2", 1694 | "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", 1695 | "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==", 1696 | "dev": true 1697 | }, 1698 | "pify": { 1699 | "version": "4.0.1", 1700 | "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", 1701 | "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", 1702 | "dev": true 1703 | }, 1704 | "pinkie": { 1705 | "version": "2.0.4", 1706 | "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", 1707 | "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", 1708 | "dev": true 1709 | }, 1710 | "pinkie-promise": { 1711 | "version": "2.0.1", 1712 | "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", 1713 | "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", 1714 | "dev": true, 1715 | "requires": { 1716 | "pinkie": "^2.0.0" 1717 | } 1718 | }, 1719 | "pkg-dir": { 1720 | "version": "4.2.0", 1721 | "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", 1722 | "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", 1723 | "dev": true, 1724 | "requires": { 1725 | "find-up": "^4.0.0" 1726 | } 1727 | }, 1728 | "process-nextick-args": { 1729 | "version": "2.0.1", 1730 | "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", 1731 | "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", 1732 | "dev": true 1733 | }, 1734 | "proxy-addr": { 1735 | "version": "2.0.6", 1736 | "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz", 1737 | "integrity": "sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw==", 1738 | "requires": { 1739 | "forwarded": "~0.1.2", 1740 | "ipaddr.js": "1.9.1" 1741 | } 1742 | }, 1743 | "prr": { 1744 | "version": "1.0.1", 1745 | "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", 1746 | "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", 1747 | "dev": true 1748 | }, 1749 | "punycode": { 1750 | "version": "2.1.1", 1751 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", 1752 | "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", 1753 | "dev": true 1754 | }, 1755 | "qs": { 1756 | "version": "6.7.0", 1757 | "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", 1758 | "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==" 1759 | }, 1760 | "queue-microtask": { 1761 | "version": "1.2.3", 1762 | "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", 1763 | "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", 1764 | "dev": true 1765 | }, 1766 | "randombytes": { 1767 | "version": "2.1.0", 1768 | "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", 1769 | "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", 1770 | "dev": true, 1771 | "requires": { 1772 | "safe-buffer": "^5.1.0" 1773 | } 1774 | }, 1775 | "range-parser": { 1776 | "version": "1.2.1", 1777 | "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", 1778 | "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==" 1779 | }, 1780 | "raw-body": { 1781 | "version": "2.4.0", 1782 | "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz", 1783 | "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==", 1784 | "requires": { 1785 | "bytes": "3.1.0", 1786 | "http-errors": "1.7.2", 1787 | "iconv-lite": "0.4.24", 1788 | "unpipe": "1.0.0" 1789 | } 1790 | }, 1791 | "react": { 1792 | "version": "17.0.2", 1793 | "resolved": "https://registry.npmjs.org/react/-/react-17.0.2.tgz", 1794 | "integrity": "sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==", 1795 | "requires": { 1796 | "loose-envify": "^1.1.0", 1797 | "object-assign": "^4.1.1" 1798 | } 1799 | }, 1800 | "react-dom": { 1801 | "version": "17.0.2", 1802 | "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-17.0.2.tgz", 1803 | "integrity": "sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA==", 1804 | "requires": { 1805 | "loose-envify": "^1.1.0", 1806 | "object-assign": "^4.1.1", 1807 | "scheduler": "^0.20.2" 1808 | } 1809 | }, 1810 | "readable-stream": { 1811 | "version": "2.3.7", 1812 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", 1813 | "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", 1814 | "dev": true, 1815 | "requires": { 1816 | "core-util-is": "~1.0.0", 1817 | "inherits": "~2.0.3", 1818 | "isarray": "~1.0.0", 1819 | "process-nextick-args": "~2.0.0", 1820 | "safe-buffer": "~5.1.1", 1821 | "string_decoder": "~1.1.1", 1822 | "util-deprecate": "~1.0.1" 1823 | } 1824 | }, 1825 | "rechoir": { 1826 | "version": "0.7.0", 1827 | "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.7.0.tgz", 1828 | "integrity": "sha512-ADsDEH2bvbjltXEP+hTIAmeFekTFK0V2BTxMkok6qILyAJEXV0AFfoWcAq4yfll5VdIMd/RVXq0lR+wQi5ZU3Q==", 1829 | "dev": true, 1830 | "requires": { 1831 | "resolve": "^1.9.0" 1832 | } 1833 | }, 1834 | "resolve": { 1835 | "version": "1.20.0", 1836 | "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", 1837 | "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", 1838 | "dev": true, 1839 | "requires": { 1840 | "is-core-module": "^2.2.0", 1841 | "path-parse": "^1.0.6" 1842 | } 1843 | }, 1844 | "resolve-cwd": { 1845 | "version": "3.0.0", 1846 | "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", 1847 | "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", 1848 | "dev": true, 1849 | "requires": { 1850 | "resolve-from": "^5.0.0" 1851 | } 1852 | }, 1853 | "resolve-from": { 1854 | "version": "5.0.0", 1855 | "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", 1856 | "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", 1857 | "dev": true 1858 | }, 1859 | "reusify": { 1860 | "version": "1.0.4", 1861 | "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", 1862 | "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", 1863 | "dev": true 1864 | }, 1865 | "rimraf": { 1866 | "version": "2.7.1", 1867 | "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", 1868 | "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", 1869 | "dev": true, 1870 | "requires": { 1871 | "glob": "^7.1.3" 1872 | } 1873 | }, 1874 | "run-parallel": { 1875 | "version": "1.2.0", 1876 | "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", 1877 | "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", 1878 | "dev": true, 1879 | "requires": { 1880 | "queue-microtask": "^1.2.2" 1881 | } 1882 | }, 1883 | "safe-buffer": { 1884 | "version": "5.1.2", 1885 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", 1886 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" 1887 | }, 1888 | "safer-buffer": { 1889 | "version": "2.1.2", 1890 | "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", 1891 | "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" 1892 | }, 1893 | "scheduler": { 1894 | "version": "0.20.2", 1895 | "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.20.2.tgz", 1896 | "integrity": "sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==", 1897 | "requires": { 1898 | "loose-envify": "^1.1.0", 1899 | "object-assign": "^4.1.1" 1900 | } 1901 | }, 1902 | "schema-utils": { 1903 | "version": "3.0.0", 1904 | "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz", 1905 | "integrity": "sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA==", 1906 | "dev": true, 1907 | "requires": { 1908 | "@types/json-schema": "^7.0.6", 1909 | "ajv": "^6.12.5", 1910 | "ajv-keywords": "^3.5.2" 1911 | } 1912 | }, 1913 | "semver": { 1914 | "version": "7.3.4", 1915 | "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", 1916 | "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", 1917 | "dev": true, 1918 | "requires": { 1919 | "lru-cache": "^6.0.0" 1920 | } 1921 | }, 1922 | "send": { 1923 | "version": "0.17.1", 1924 | "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", 1925 | "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", 1926 | "requires": { 1927 | "debug": "2.6.9", 1928 | "depd": "~1.1.2", 1929 | "destroy": "~1.0.4", 1930 | "encodeurl": "~1.0.2", 1931 | "escape-html": "~1.0.3", 1932 | "etag": "~1.8.1", 1933 | "fresh": "0.5.2", 1934 | "http-errors": "~1.7.2", 1935 | "mime": "1.6.0", 1936 | "ms": "2.1.1", 1937 | "on-finished": "~2.3.0", 1938 | "range-parser": "~1.2.1", 1939 | "statuses": "~1.5.0" 1940 | }, 1941 | "dependencies": { 1942 | "ms": { 1943 | "version": "2.1.1", 1944 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", 1945 | "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" 1946 | } 1947 | } 1948 | }, 1949 | "serialize-javascript": { 1950 | "version": "5.0.1", 1951 | "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-5.0.1.tgz", 1952 | "integrity": "sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA==", 1953 | "dev": true, 1954 | "requires": { 1955 | "randombytes": "^2.1.0" 1956 | } 1957 | }, 1958 | "serve-static": { 1959 | "version": "1.14.1", 1960 | "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz", 1961 | "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==", 1962 | "requires": { 1963 | "encodeurl": "~1.0.2", 1964 | "escape-html": "~1.0.3", 1965 | "parseurl": "~1.3.3", 1966 | "send": "0.17.1" 1967 | } 1968 | }, 1969 | "setprototypeof": { 1970 | "version": "1.1.1", 1971 | "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", 1972 | "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" 1973 | }, 1974 | "shallow-clone": { 1975 | "version": "3.0.1", 1976 | "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", 1977 | "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", 1978 | "dev": true, 1979 | "requires": { 1980 | "kind-of": "^6.0.2" 1981 | } 1982 | }, 1983 | "shebang-command": { 1984 | "version": "2.0.0", 1985 | "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", 1986 | "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", 1987 | "dev": true, 1988 | "requires": { 1989 | "shebang-regex": "^3.0.0" 1990 | } 1991 | }, 1992 | "shebang-regex": { 1993 | "version": "3.0.0", 1994 | "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", 1995 | "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", 1996 | "dev": true 1997 | }, 1998 | "signal-exit": { 1999 | "version": "3.0.3", 2000 | "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", 2001 | "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==", 2002 | "dev": true 2003 | }, 2004 | "slash": { 2005 | "version": "3.0.0", 2006 | "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", 2007 | "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", 2008 | "dev": true 2009 | }, 2010 | "source-list-map": { 2011 | "version": "2.0.1", 2012 | "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", 2013 | "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==", 2014 | "dev": true 2015 | }, 2016 | "source-map": { 2017 | "version": "0.6.1", 2018 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", 2019 | "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", 2020 | "dev": true 2021 | }, 2022 | "source-map-support": { 2023 | "version": "0.5.19", 2024 | "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", 2025 | "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", 2026 | "dev": true, 2027 | "requires": { 2028 | "buffer-from": "^1.0.0", 2029 | "source-map": "^0.6.0" 2030 | } 2031 | }, 2032 | "statuses": { 2033 | "version": "1.5.0", 2034 | "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", 2035 | "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" 2036 | }, 2037 | "string_decoder": { 2038 | "version": "1.1.1", 2039 | "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", 2040 | "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", 2041 | "dev": true, 2042 | "requires": { 2043 | "safe-buffer": "~5.1.0" 2044 | } 2045 | }, 2046 | "strip-final-newline": { 2047 | "version": "2.0.0", 2048 | "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", 2049 | "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", 2050 | "dev": true 2051 | }, 2052 | "supports-color": { 2053 | "version": "7.2.0", 2054 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", 2055 | "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", 2056 | "dev": true, 2057 | "requires": { 2058 | "has-flag": "^4.0.0" 2059 | } 2060 | }, 2061 | "tapable": { 2062 | "version": "2.2.0", 2063 | "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.0.tgz", 2064 | "integrity": "sha512-FBk4IesMV1rBxX2tfiK8RAmogtWn53puLOQlvO8XuwlgxcYbP4mVPS9Ph4aeamSyyVjOl24aYWAuc8U5kCVwMw==", 2065 | "dev": true 2066 | }, 2067 | "terser": { 2068 | "version": "5.6.1", 2069 | "resolved": "https://registry.npmjs.org/terser/-/terser-5.6.1.tgz", 2070 | "integrity": "sha512-yv9YLFQQ+3ZqgWCUk+pvNJwgUTdlIxUk1WTN+RnaFJe2L7ipG2csPT0ra2XRm7Cs8cxN7QXmK1rFzEwYEQkzXw==", 2071 | "dev": true, 2072 | "requires": { 2073 | "commander": "^2.20.0", 2074 | "source-map": "~0.7.2", 2075 | "source-map-support": "~0.5.19" 2076 | }, 2077 | "dependencies": { 2078 | "source-map": { 2079 | "version": "0.7.3", 2080 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", 2081 | "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", 2082 | "dev": true 2083 | } 2084 | } 2085 | }, 2086 | "terser-webpack-plugin": { 2087 | "version": "5.1.1", 2088 | "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.1.1.tgz", 2089 | "integrity": "sha512-5XNNXZiR8YO6X6KhSGXfY0QrGrCRlSwAEjIIrlRQR4W8nP69TaJUlh3bkuac6zzgspiGPfKEHcY295MMVExl5Q==", 2090 | "dev": true, 2091 | "requires": { 2092 | "jest-worker": "^26.6.2", 2093 | "p-limit": "^3.1.0", 2094 | "schema-utils": "^3.0.0", 2095 | "serialize-javascript": "^5.0.1", 2096 | "source-map": "^0.6.1", 2097 | "terser": "^5.5.1" 2098 | } 2099 | }, 2100 | "to-regex-range": { 2101 | "version": "5.0.1", 2102 | "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", 2103 | "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", 2104 | "dev": true, 2105 | "requires": { 2106 | "is-number": "^7.0.0" 2107 | } 2108 | }, 2109 | "toidentifier": { 2110 | "version": "1.0.0", 2111 | "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", 2112 | "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==" 2113 | }, 2114 | "ts-loader": { 2115 | "version": "8.0.18", 2116 | "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-8.0.18.tgz", 2117 | "integrity": "sha512-hRZzkydPX30XkLaQwJTDcWDoxZHK6IrEMDQpNd7tgcakFruFkeUp/aY+9hBb7BUGb+ZWKI0jiOGMo0MckwzdDQ==", 2118 | "dev": true, 2119 | "requires": { 2120 | "chalk": "^4.1.0", 2121 | "enhanced-resolve": "^4.0.0", 2122 | "loader-utils": "^2.0.0", 2123 | "micromatch": "^4.0.0", 2124 | "semver": "^7.3.4" 2125 | }, 2126 | "dependencies": { 2127 | "enhanced-resolve": { 2128 | "version": "4.5.0", 2129 | "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.5.0.tgz", 2130 | "integrity": "sha512-Nv9m36S/vxpsI+Hc4/ZGRs0n9mXqSWGGq49zxb/cJfPAQMbUtttJAlNPS4AQzaBdw/pKskw5bMbekT/Y7W/Wlg==", 2131 | "dev": true, 2132 | "requires": { 2133 | "graceful-fs": "^4.1.2", 2134 | "memory-fs": "^0.5.0", 2135 | "tapable": "^1.0.0" 2136 | } 2137 | }, 2138 | "tapable": { 2139 | "version": "1.1.3", 2140 | "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", 2141 | "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==", 2142 | "dev": true 2143 | } 2144 | } 2145 | }, 2146 | "tslib": { 2147 | "version": "1.14.1", 2148 | "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", 2149 | "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", 2150 | "dev": true 2151 | }, 2152 | "type-is": { 2153 | "version": "1.6.18", 2154 | "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", 2155 | "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", 2156 | "requires": { 2157 | "media-typer": "0.3.0", 2158 | "mime-types": "~2.1.24" 2159 | } 2160 | }, 2161 | "typescript": { 2162 | "version": "4.2.3", 2163 | "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.2.3.tgz", 2164 | "integrity": "sha512-qOcYwxaByStAWrBf4x0fibwZvMRG+r4cQoTjbPtUlrWjBHbmCAww1i448U0GJ+3cNNEtebDteo/cHOR3xJ4wEw==", 2165 | "dev": true 2166 | }, 2167 | "unpipe": { 2168 | "version": "1.0.0", 2169 | "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", 2170 | "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" 2171 | }, 2172 | "uri-js": { 2173 | "version": "4.4.1", 2174 | "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", 2175 | "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", 2176 | "dev": true, 2177 | "requires": { 2178 | "punycode": "^2.1.0" 2179 | } 2180 | }, 2181 | "util-deprecate": { 2182 | "version": "1.0.2", 2183 | "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", 2184 | "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", 2185 | "dev": true 2186 | }, 2187 | "utils-merge": { 2188 | "version": "1.0.1", 2189 | "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", 2190 | "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" 2191 | }, 2192 | "v8-compile-cache": { 2193 | "version": "2.3.0", 2194 | "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", 2195 | "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", 2196 | "dev": true 2197 | }, 2198 | "vary": { 2199 | "version": "1.1.2", 2200 | "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", 2201 | "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" 2202 | }, 2203 | "watchpack": { 2204 | "version": "2.1.1", 2205 | "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.1.1.tgz", 2206 | "integrity": "sha512-Oo7LXCmc1eE1AjyuSBmtC3+Wy4HcV8PxWh2kP6fOl8yTlNS7r0K9l1ao2lrrUza7V39Y3D/BbJgY8VeSlc5JKw==", 2207 | "dev": true, 2208 | "requires": { 2209 | "glob-to-regexp": "^0.4.1", 2210 | "graceful-fs": "^4.1.2" 2211 | } 2212 | }, 2213 | "webpack": { 2214 | "version": "5.26.3", 2215 | "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.26.3.tgz", 2216 | "integrity": "sha512-z/F2lt2N1fZqaud1B4SzjL3OW03eULThbBXQ2OX4LSrZX4N9k1A5d0Rje3zS2g887DTWyAV0KGqEf64ois2dhg==", 2217 | "dev": true, 2218 | "requires": { 2219 | "@types/eslint-scope": "^3.7.0", 2220 | "@types/estree": "^0.0.46", 2221 | "@webassemblyjs/ast": "1.11.0", 2222 | "@webassemblyjs/wasm-edit": "1.11.0", 2223 | "@webassemblyjs/wasm-parser": "1.11.0", 2224 | "acorn": "^8.0.4", 2225 | "browserslist": "^4.14.5", 2226 | "chrome-trace-event": "^1.0.2", 2227 | "enhanced-resolve": "^5.7.0", 2228 | "es-module-lexer": "^0.4.0", 2229 | "eslint-scope": "^5.1.1", 2230 | "events": "^3.2.0", 2231 | "glob-to-regexp": "^0.4.1", 2232 | "graceful-fs": "^4.2.4", 2233 | "json-parse-better-errors": "^1.0.2", 2234 | "loader-runner": "^4.2.0", 2235 | "mime-types": "^2.1.27", 2236 | "neo-async": "^2.6.2", 2237 | "schema-utils": "^3.0.0", 2238 | "tapable": "^2.1.1", 2239 | "terser-webpack-plugin": "^5.1.1", 2240 | "watchpack": "^2.0.0", 2241 | "webpack-sources": "^2.1.1" 2242 | } 2243 | }, 2244 | "webpack-cli": { 2245 | "version": "4.5.0", 2246 | "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-4.5.0.tgz", 2247 | "integrity": "sha512-wXg/ef6Ibstl2f50mnkcHblRPN/P9J4Nlod5Hg9HGFgSeF8rsqDGHJeVe4aR26q9l62TUJi6vmvC2Qz96YJw1Q==", 2248 | "dev": true, 2249 | "requires": { 2250 | "@discoveryjs/json-ext": "^0.5.0", 2251 | "@webpack-cli/configtest": "^1.0.1", 2252 | "@webpack-cli/info": "^1.2.2", 2253 | "@webpack-cli/serve": "^1.3.0", 2254 | "colorette": "^1.2.1", 2255 | "commander": "^7.0.0", 2256 | "enquirer": "^2.3.6", 2257 | "execa": "^5.0.0", 2258 | "fastest-levenshtein": "^1.0.12", 2259 | "import-local": "^3.0.2", 2260 | "interpret": "^2.2.0", 2261 | "rechoir": "^0.7.0", 2262 | "v8-compile-cache": "^2.2.0", 2263 | "webpack-merge": "^5.7.3" 2264 | }, 2265 | "dependencies": { 2266 | "commander": { 2267 | "version": "7.1.0", 2268 | "resolved": "https://registry.npmjs.org/commander/-/commander-7.1.0.tgz", 2269 | "integrity": "sha512-pRxBna3MJe6HKnBGsDyMv8ETbptw3axEdYHoqNh7gu5oDcew8fs0xnivZGm06Ogk8zGAJ9VX+OPEr2GXEQK4dg==", 2270 | "dev": true 2271 | } 2272 | } 2273 | }, 2274 | "webpack-manifest-plugin": { 2275 | "version": "3.1.0", 2276 | "resolved": "https://registry.npmjs.org/webpack-manifest-plugin/-/webpack-manifest-plugin-3.1.0.tgz", 2277 | "integrity": "sha512-7jgB8Kb0MRWXq3YaDfe+0smv5c7MLMfze8YvG6eBEXZmy6fhwMe/eT47A0KEIF30c0DDEYKbbYTXzaMQETaZ0Q==", 2278 | "dev": true, 2279 | "requires": { 2280 | "tapable": "^2.0.0", 2281 | "webpack-sources": "^2.2.0" 2282 | } 2283 | }, 2284 | "webpack-merge": { 2285 | "version": "5.7.3", 2286 | "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.7.3.tgz", 2287 | "integrity": "sha512-6/JUQv0ELQ1igjGDzHkXbVDRxkfA57Zw7PfiupdLFJYrgFqY5ZP8xxbpp2lU3EPwYx89ht5Z/aDkD40hFCm5AA==", 2288 | "dev": true, 2289 | "requires": { 2290 | "clone-deep": "^4.0.1", 2291 | "wildcard": "^2.0.0" 2292 | } 2293 | }, 2294 | "webpack-node-externals": { 2295 | "version": "2.5.2", 2296 | "resolved": "https://registry.npmjs.org/webpack-node-externals/-/webpack-node-externals-2.5.2.tgz", 2297 | "integrity": "sha512-aHdl/y2N7PW2Sx7K+r3AxpJO+aDMcYzMQd60Qxefq3+EwhewSbTBqNumOsCE1JsCUNoyfGj5465N0sSf6hc/5w==", 2298 | "dev": true 2299 | }, 2300 | "webpack-sources": { 2301 | "version": "2.2.0", 2302 | "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-2.2.0.tgz", 2303 | "integrity": "sha512-bQsA24JLwcnWGArOKUxYKhX3Mz/nK1Xf6hxullKERyktjNMC4x8koOeaDNTA2fEJ09BdWLbM/iTW0ithREUP0w==", 2304 | "dev": true, 2305 | "requires": { 2306 | "source-list-map": "^2.0.1", 2307 | "source-map": "^0.6.1" 2308 | } 2309 | }, 2310 | "which": { 2311 | "version": "2.0.2", 2312 | "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", 2313 | "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", 2314 | "dev": true, 2315 | "requires": { 2316 | "isexe": "^2.0.0" 2317 | } 2318 | }, 2319 | "wildcard": { 2320 | "version": "2.0.0", 2321 | "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.0.tgz", 2322 | "integrity": "sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw==", 2323 | "dev": true 2324 | }, 2325 | "wrappy": { 2326 | "version": "1.0.2", 2327 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", 2328 | "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", 2329 | "dev": true 2330 | }, 2331 | "yallist": { 2332 | "version": "4.0.0", 2333 | "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", 2334 | "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", 2335 | "dev": true 2336 | }, 2337 | "yocto-queue": { 2338 | "version": "0.1.0", 2339 | "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", 2340 | "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", 2341 | "dev": true 2342 | } 2343 | } 2344 | } 2345 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ts-react-webpack-ssr", 3 | "version": "1.0.0", 4 | "scripts": { 5 | "build:server": "webpack --config webpack.config.server.js", 6 | "build:client": "webpack --config webpack.config.client.js", 7 | "start": "node ./dist/server.js", 8 | "start:dev": "node dev.js" 9 | }, 10 | "devDependencies": { 11 | "@types/cross-spawn": "^6.0.2", 12 | "@types/express": "^4.17.11", 13 | "@types/node": "^14.14.35", 14 | "@types/react": "^17.0.3", 15 | "@types/react-dom": "^17.0.3", 16 | "clean-webpack-plugin": "^3.0.0", 17 | "copy-webpack-plugin": "^8.1.0", 18 | "cross-spawn": "^7.0.3", 19 | "ts-loader": "^8.0.18", 20 | "typescript": "^4.2.3", 21 | "webpack": "^5.26.3", 22 | "webpack-cli": "^4.5.0", 23 | "webpack-manifest-plugin": "^3.1.0", 24 | "webpack-node-externals": "^2.5.2" 25 | }, 26 | "dependencies": { 27 | "ejs": "^3.1.6", 28 | "express": "^4.17.1", 29 | "react": "^17.0.2", 30 | "react-dom": "^17.0.2" 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /server/server.ts: -------------------------------------------------------------------------------- 1 | import express from "express"; 2 | import fs from "fs"; 3 | import path from "path"; 4 | import React from "react"; 5 | import ReactDOMServer from "react-dom/server"; 6 | import { App } from "../client/components/app"; 7 | 8 | const server = express(); 9 | 10 | server.set("view engine", "ejs"); 11 | server.set("views", path.join(__dirname, "views")); 12 | 13 | server.use("/", express.static(path.join(__dirname, "static"))); 14 | 15 | const manifest = fs.readFileSync( 16 | path.join(__dirname, "static/manifest.json"), 17 | "utf-8" 18 | ); 19 | const assets = JSON.parse(manifest); 20 | 21 | server.get("/", (req, res) => { 22 | const component = ReactDOMServer.renderToString(React.createElement(App)); 23 | res.render("client", { assets, component }); 24 | }); 25 | 26 | server.listen(3000, () => { 27 | console.log(`Server running on http://localhost:3000`); 28 | }); 29 | -------------------------------------------------------------------------------- /server/views/client.ejs: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 |