├── .dockerignore ├── .gitignore ├── .vscode ├── launch.json └── tasks.json ├── Dockerfile ├── Index.ts ├── README.md ├── docker-compose.yml ├── index.html ├── package-lock.json ├── package.json ├── resources ├── fuck.jpg ├── happy.jpg └── sad.jpg └── tsconfig.json /.dockerignore: -------------------------------------------------------------------------------- 1 | bin/ 2 | **/.classpath 3 | **/.dockerignore 4 | **/.env 5 | **/.git 6 | **/.gitignore 7 | **/.project 8 | **/.settings 9 | **/.toolstarget 10 | **/.vs 11 | **/.vscode 12 | **/*.*proj.user 13 | **/*.dbmdl 14 | **/*.jfm 15 | **/azds.yaml 16 | **/charts 17 | **/docker-compose* 18 | **/Dockerfile* 19 | **/node_modules 20 | **/npm-debug.log 21 | **/obj 22 | **/secrets.dev.yaml 23 | **/values.dev.yaml 24 | README.md -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | lerna-debug.log* 8 | bin 9 | # Diagnostic reports (https://nodejs.org/api/report.html) 10 | report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json 11 | 12 | # Runtime data 13 | pids 14 | *.pid 15 | *.seed 16 | *.pid.lock 17 | 18 | # Directory for instrumented libs generated by jscoverage/JSCover 19 | lib-cov 20 | 21 | # Coverage directory used by tools like istanbul 22 | coverage 23 | *.lcov 24 | 25 | # nyc test coverage 26 | .nyc_output 27 | 28 | # Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) 29 | .grunt 30 | 31 | # Bower dependency directory (https://bower.io/) 32 | bower_components 33 | 34 | # node-waf configuration 35 | .lock-wscript 36 | 37 | # Compiled binary addons (https://nodejs.org/api/addons.html) 38 | build/Release 39 | 40 | # Dependency directories 41 | node_modules/ 42 | jspm_packages/ 43 | 44 | # Snowpack dependency directory (https://snowpack.dev/) 45 | web_modules/ 46 | 47 | # TypeScript cache 48 | *.tsbuildinfo 49 | 50 | # Optional npm cache directory 51 | .npm 52 | 53 | # Optional eslint cache 54 | .eslintcache 55 | 56 | # Microbundle cache 57 | .rpt2_cache/ 58 | .rts2_cache_cjs/ 59 | .rts2_cache_es/ 60 | .rts2_cache_umd/ 61 | 62 | # Optional REPL history 63 | .node_repl_history 64 | 65 | # Output of 'npm pack' 66 | *.tgz 67 | 68 | # Yarn Integrity file 69 | .yarn-integrity 70 | 71 | # dotenv environment variables file 72 | .env 73 | .env.test 74 | 75 | # parcel-bundler cache (https://parceljs.org/) 76 | .cache 77 | 78 | # Next.js build output 79 | .next 80 | 81 | # Nuxt.js build / generate output 82 | .nuxt 83 | dist 84 | 85 | # Gatsby files 86 | .cache/ 87 | # Comment in the public line in if your project uses Gatsby and not Next.js 88 | # https://nextjs.org/blog/next-9-1#public-directory-support 89 | # public 90 | 91 | # vuepress build output 92 | .vuepress/dist 93 | 94 | # Serverless directories 95 | .serverless/ 96 | 97 | # FuseBox cache 98 | .fusebox/ 99 | 100 | # DynamoDB Local files 101 | .dynamodb/ 102 | 103 | # TernJS port file 104 | .tern-port 105 | 106 | # Stores VSCode versions used for testing VSCode extensions 107 | .vscode-test 108 | -------------------------------------------------------------------------------- /.vscode/launch.json: -------------------------------------------------------------------------------- 1 | { 2 | "configurations": [ 3 | { 4 | "name": "Docker Node.js Launch and Attach", 5 | "type": "docker", 6 | "request": "launch", 7 | "preLaunchTask": "docker-run: debug", 8 | "platform": "node" 9 | } 10 | ] 11 | } -------------------------------------------------------------------------------- /.vscode/tasks.json: -------------------------------------------------------------------------------- 1 | { 2 | "tasks": [ 3 | { 4 | "type": "docker-build", 5 | "label": "docker-build", 6 | "platform": "node", 7 | "dockerBuild": { 8 | "dockerfile": "${workspaceFolder}/Dockerfile", 9 | "context": "${workspaceFolder}", 10 | "pull": true 11 | } 12 | }, 13 | { 14 | "type": "docker-run", 15 | "label": "docker-run: release", 16 | "dependsOn": [ 17 | "docker-build" 18 | ], 19 | "platform": "node" 20 | }, 21 | { 22 | "type": "docker-run", 23 | "label": "docker-run: debug", 24 | "dependsOn": [ 25 | "docker-build" 26 | ], 27 | "dockerRun": { 28 | "env": { 29 | "DEBUG": "*", 30 | "NODE_ENV": "development" 31 | } 32 | }, 33 | "node": { 34 | "enableDebugging": true 35 | } 36 | } 37 | ] 38 | } -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- 1 | FROM node:12-alpine as build 2 | 3 | WORKDIR /src/ 4 | 5 | COPY package.json package-lock.json /src/ 6 | 7 | RUN npm ci --silent 8 | 9 | COPY . . 10 | 11 | FROM node:12-alpine as dev 12 | 13 | WORKDIR /src/ 14 | 15 | COPY --from=build /src/node_modules node_modules 16 | 17 | USER node 18 | 19 | CMD npm run live-reload -------------------------------------------------------------------------------- /Index.ts: -------------------------------------------------------------------------------- 1 | import Http from 'http' 2 | import Io from 'socket.io' 3 | 4 | const server = Http.createServer(); 5 | const io = Io(server); 6 | const PORT = process.env.BACK_PORT || 3000 7 | 8 | 9 | 10 | io.on('connection', client => 11 | /* 12 | 'happy.jpg', 13 | 'sad.jpg', 14 | 'fuck.jpg' 15 | */ 16 | client.emit("change-pic", `./resources/happy.jpg`) 17 | ); 18 | server.listen(PORT); 19 | console.log('listening at', PORT) 20 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Example for live reload using Node.js and Docker 2 | 3 | - After installing Docker and Docker Compose you'd run `docker-compose up --build` 4 | - Going to `localhost:8080` you'd find a page with an static image 5 | - Going to `./Index.ts` you'd change the image name and see the change on the browser 6 | 7 | ## What 8 | 9 | - This project will show how to use live reload functions by using a build process as an example. It uses Typescript and after each change, the Typescript must rebuild and the nodemon must reload to apply the changes. All of it, happens using only a command such as `docker-compose up`. 10 | -------------------------------------------------------------------------------- /docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: '2.1' 2 | 3 | services: 4 | docker-js-livereload: 5 | image: docker-js-livereload 6 | build: . 7 | environment: 8 | FRONT_PORT: 8080 9 | BACK_PORT: 3000 10 | volumes: 11 | - .:/src 12 | - nodemodules:/src/node_modules 13 | ports: 14 | - 3000:3000 15 | - 8080:8080 16 | volumes: 17 | nodemodules: {} 18 | -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Hello 7 | 8 | 25 | 26 | 27 |

Docker live reload with Node.js

28 | 29 |
30 | sad picture 31 | 32 | 33 | -------------------------------------------------------------------------------- /package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "docker-js-livereload", 3 | "version": "1.0.0", 4 | "lockfileVersion": 1, 5 | "requires": true, 6 | "dependencies": { 7 | "@types/node": { 8 | "version": "13.7.7", 9 | "resolved": "https://registry.npmjs.org/@types/node/-/node-13.7.7.tgz", 10 | "integrity": "sha512-Uo4chgKbnPNlxQwoFmYIwctkQVkMMmsAoGGU4JKwLuvBefF0pCq4FybNSnfkfRCpC7ZW7kttcC/TrRtAJsvGtg==", 11 | "dev": true 12 | }, 13 | "@types/socket.io": { 14 | "version": "2.1.4", 15 | "resolved": "https://registry.npmjs.org/@types/socket.io/-/socket.io-2.1.4.tgz", 16 | "integrity": "sha512-cI98INy7tYnweTsUlp8ocveVdAxENUThO0JsLSCs51cjOP2yV5Mqo5QszMDPckyRRA+PO6+wBgKvGvHUCc23TQ==", 17 | "dev": true, 18 | "requires": { 19 | "@types/node": "*" 20 | } 21 | }, 22 | "abbrev": { 23 | "version": "1.1.1", 24 | "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", 25 | "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", 26 | "dev": true 27 | }, 28 | "accepts": { 29 | "version": "1.3.7", 30 | "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", 31 | "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", 32 | "requires": { 33 | "mime-types": "~2.1.24", 34 | "negotiator": "0.6.2" 35 | } 36 | }, 37 | "after": { 38 | "version": "0.8.2", 39 | "resolved": "https://registry.npmjs.org/after/-/after-0.8.2.tgz", 40 | "integrity": "sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8=" 41 | }, 42 | "ansi-align": { 43 | "version": "2.0.0", 44 | "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-2.0.0.tgz", 45 | "integrity": "sha1-w2rsy6VjuJzrVW82kPCx2eNUf38=", 46 | "dev": true, 47 | "requires": { 48 | "string-width": "^2.0.0" 49 | }, 50 | "dependencies": { 51 | "ansi-regex": { 52 | "version": "3.0.0", 53 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", 54 | "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", 55 | "dev": true 56 | }, 57 | "string-width": { 58 | "version": "2.1.1", 59 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", 60 | "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", 61 | "dev": true, 62 | "requires": { 63 | "is-fullwidth-code-point": "^2.0.0", 64 | "strip-ansi": "^4.0.0" 65 | } 66 | }, 67 | "strip-ansi": { 68 | "version": "4.0.0", 69 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", 70 | "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", 71 | "dev": true, 72 | "requires": { 73 | "ansi-regex": "^3.0.0" 74 | } 75 | } 76 | } 77 | }, 78 | "ansi-regex": { 79 | "version": "4.1.0", 80 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", 81 | "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", 82 | "dev": true 83 | }, 84 | "ansi-styles": { 85 | "version": "3.2.1", 86 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", 87 | "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", 88 | "dev": true, 89 | "requires": { 90 | "color-convert": "^1.9.0" 91 | } 92 | }, 93 | "anymatch": { 94 | "version": "3.1.1", 95 | "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", 96 | "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", 97 | "dev": true, 98 | "requires": { 99 | "normalize-path": "^3.0.0", 100 | "picomatch": "^2.0.4" 101 | } 102 | }, 103 | "arraybuffer.slice": { 104 | "version": "0.0.7", 105 | "resolved": "https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz", 106 | "integrity": "sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog==" 107 | }, 108 | "async": { 109 | "version": "2.6.3", 110 | "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", 111 | "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", 112 | "dev": true, 113 | "requires": { 114 | "lodash": "^4.17.14" 115 | } 116 | }, 117 | "async-limiter": { 118 | "version": "1.0.1", 119 | "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", 120 | "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==" 121 | }, 122 | "backo2": { 123 | "version": "1.0.2", 124 | "resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz", 125 | "integrity": "sha1-MasayLEpNjRj41s+u2n038+6eUc=" 126 | }, 127 | "balanced-match": { 128 | "version": "1.0.0", 129 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", 130 | "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", 131 | "dev": true 132 | }, 133 | "base64-arraybuffer": { 134 | "version": "0.1.5", 135 | "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz", 136 | "integrity": "sha1-c5JncZI7Whl0etZmqlzUv5xunOg=" 137 | }, 138 | "base64id": { 139 | "version": "2.0.0", 140 | "resolved": "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz", 141 | "integrity": "sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==" 142 | }, 143 | "basic-auth": { 144 | "version": "1.1.0", 145 | "resolved": "https://registry.npmjs.org/basic-auth/-/basic-auth-1.1.0.tgz", 146 | "integrity": "sha1-RSIe5Cn37h5QNb4/UVM/HN/SmIQ=", 147 | "dev": true 148 | }, 149 | "better-assert": { 150 | "version": "1.0.2", 151 | "resolved": "https://registry.npmjs.org/better-assert/-/better-assert-1.0.2.tgz", 152 | "integrity": "sha1-QIZrnhueC1W0gYlDEeaPr/rrxSI=", 153 | "requires": { 154 | "callsite": "1.0.0" 155 | } 156 | }, 157 | "binary-extensions": { 158 | "version": "2.0.0", 159 | "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.0.0.tgz", 160 | "integrity": "sha512-Phlt0plgpIIBOGTT/ehfFnbNlfsDEiqmzE2KRXoX1bLIlir4X/MR+zSyBEkL05ffWgnRSf/DXv+WrUAVr93/ow==", 161 | "dev": true 162 | }, 163 | "blob": { 164 | "version": "0.0.5", 165 | "resolved": "https://registry.npmjs.org/blob/-/blob-0.0.5.tgz", 166 | "integrity": "sha512-gaqbzQPqOoamawKg0LGVd7SzLgXS+JH61oWprSLH+P+abTczqJbhTR8CmJ2u9/bUYNmHTGJx/UEmn6doAvvuig==" 167 | }, 168 | "boxen": { 169 | "version": "1.3.0", 170 | "resolved": "https://registry.npmjs.org/boxen/-/boxen-1.3.0.tgz", 171 | "integrity": "sha512-TNPjfTr432qx7yOjQyaXm3dSR0MH9vXp7eT1BFSl/C51g+EFnOR9hTg1IreahGBmDNCehscshe45f+C1TBZbLw==", 172 | "dev": true, 173 | "requires": { 174 | "ansi-align": "^2.0.0", 175 | "camelcase": "^4.0.0", 176 | "chalk": "^2.0.1", 177 | "cli-boxes": "^1.0.0", 178 | "string-width": "^2.0.0", 179 | "term-size": "^1.2.0", 180 | "widest-line": "^2.0.0" 181 | }, 182 | "dependencies": { 183 | "ansi-regex": { 184 | "version": "3.0.0", 185 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", 186 | "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", 187 | "dev": true 188 | }, 189 | "camelcase": { 190 | "version": "4.1.0", 191 | "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", 192 | "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", 193 | "dev": true 194 | }, 195 | "string-width": { 196 | "version": "2.1.1", 197 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", 198 | "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", 199 | "dev": true, 200 | "requires": { 201 | "is-fullwidth-code-point": "^2.0.0", 202 | "strip-ansi": "^4.0.0" 203 | } 204 | }, 205 | "strip-ansi": { 206 | "version": "4.0.0", 207 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", 208 | "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", 209 | "dev": true, 210 | "requires": { 211 | "ansi-regex": "^3.0.0" 212 | } 213 | } 214 | } 215 | }, 216 | "brace-expansion": { 217 | "version": "1.1.11", 218 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", 219 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", 220 | "dev": true, 221 | "requires": { 222 | "balanced-match": "^1.0.0", 223 | "concat-map": "0.0.1" 224 | } 225 | }, 226 | "braces": { 227 | "version": "3.0.2", 228 | "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", 229 | "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", 230 | "dev": true, 231 | "requires": { 232 | "fill-range": "^7.0.1" 233 | } 234 | }, 235 | "callsite": { 236 | "version": "1.0.0", 237 | "resolved": "https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz", 238 | "integrity": "sha1-KAOY5dZkvXQDi28JBRU+borxvCA=" 239 | }, 240 | "camelcase": { 241 | "version": "5.3.1", 242 | "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", 243 | "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", 244 | "dev": true 245 | }, 246 | "capture-stack-trace": { 247 | "version": "1.0.1", 248 | "resolved": "https://registry.npmjs.org/capture-stack-trace/-/capture-stack-trace-1.0.1.tgz", 249 | "integrity": "sha512-mYQLZnx5Qt1JgB1WEiMCf2647plpGeQ2NMR/5L0HNZzGQo4fuSPnK+wjfPnKZV0aiJDgzmWqqkV/g7JD+DW0qw==", 250 | "dev": true 251 | }, 252 | "chalk": { 253 | "version": "2.4.2", 254 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", 255 | "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", 256 | "dev": true, 257 | "requires": { 258 | "ansi-styles": "^3.2.1", 259 | "escape-string-regexp": "^1.0.5", 260 | "supports-color": "^5.3.0" 261 | }, 262 | "dependencies": { 263 | "supports-color": { 264 | "version": "5.5.0", 265 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", 266 | "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", 267 | "dev": true, 268 | "requires": { 269 | "has-flag": "^3.0.0" 270 | } 271 | } 272 | } 273 | }, 274 | "chokidar": { 275 | "version": "3.3.1", 276 | "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.3.1.tgz", 277 | "integrity": "sha512-4QYCEWOcK3OJrxwvyyAOxFuhpvOVCYkr33LPfFNBjAD/w3sEzWsp2BUOkI4l9bHvWioAd0rc6NlHUOEaWkTeqg==", 278 | "dev": true, 279 | "requires": { 280 | "anymatch": "~3.1.1", 281 | "braces": "~3.0.2", 282 | "fsevents": "~2.1.2", 283 | "glob-parent": "~5.1.0", 284 | "is-binary-path": "~2.1.0", 285 | "is-glob": "~4.0.1", 286 | "normalize-path": "~3.0.0", 287 | "readdirp": "~3.3.0" 288 | } 289 | }, 290 | "ci-info": { 291 | "version": "1.6.0", 292 | "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.6.0.tgz", 293 | "integrity": "sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A==", 294 | "dev": true 295 | }, 296 | "cli-boxes": { 297 | "version": "1.0.0", 298 | "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-1.0.0.tgz", 299 | "integrity": "sha1-T6kXw+WclKAEzWH47lCdplFocUM=", 300 | "dev": true 301 | }, 302 | "cliui": { 303 | "version": "5.0.0", 304 | "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", 305 | "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", 306 | "dev": true, 307 | "requires": { 308 | "string-width": "^3.1.0", 309 | "strip-ansi": "^5.2.0", 310 | "wrap-ansi": "^5.1.0" 311 | } 312 | }, 313 | "color-convert": { 314 | "version": "1.9.3", 315 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", 316 | "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", 317 | "dev": true, 318 | "requires": { 319 | "color-name": "1.1.3" 320 | } 321 | }, 322 | "color-name": { 323 | "version": "1.1.3", 324 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", 325 | "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", 326 | "dev": true 327 | }, 328 | "colors": { 329 | "version": "1.4.0", 330 | "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", 331 | "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", 332 | "dev": true 333 | }, 334 | "component-bind": { 335 | "version": "1.0.0", 336 | "resolved": "https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz", 337 | "integrity": "sha1-AMYIq33Nk4l8AAllGx06jh5zu9E=" 338 | }, 339 | "component-emitter": { 340 | "version": "1.2.1", 341 | "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", 342 | "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=" 343 | }, 344 | "component-inherit": { 345 | "version": "0.0.3", 346 | "resolved": "https://registry.npmjs.org/component-inherit/-/component-inherit-0.0.3.tgz", 347 | "integrity": "sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM=" 348 | }, 349 | "concat-map": { 350 | "version": "0.0.1", 351 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", 352 | "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", 353 | "dev": true 354 | }, 355 | "concurrently": { 356 | "version": "5.1.0", 357 | "resolved": "https://registry.npmjs.org/concurrently/-/concurrently-5.1.0.tgz", 358 | "integrity": "sha512-9ViZMu3OOCID3rBgU31mjBftro2chOop0G2u1olq1OuwRBVRw/GxHTg80TVJBUTJfoswMmEUeuOg1g1yu1X2dA==", 359 | "dev": true, 360 | "requires": { 361 | "chalk": "^2.4.2", 362 | "date-fns": "^2.0.1", 363 | "lodash": "^4.17.15", 364 | "read-pkg": "^4.0.1", 365 | "rxjs": "^6.5.2", 366 | "spawn-command": "^0.0.2-1", 367 | "supports-color": "^6.1.0", 368 | "tree-kill": "^1.2.2", 369 | "yargs": "^13.3.0" 370 | } 371 | }, 372 | "configstore": { 373 | "version": "3.1.2", 374 | "resolved": "https://registry.npmjs.org/configstore/-/configstore-3.1.2.tgz", 375 | "integrity": "sha512-vtv5HtGjcYUgFrXc6Kx747B83MRRVS5R1VTEQoXvuP+kMI+if6uywV0nDGoiydJRy4yk7h9od5Og0kxx4zUXmw==", 376 | "dev": true, 377 | "requires": { 378 | "dot-prop": "^4.1.0", 379 | "graceful-fs": "^4.1.2", 380 | "make-dir": "^1.0.0", 381 | "unique-string": "^1.0.0", 382 | "write-file-atomic": "^2.0.0", 383 | "xdg-basedir": "^3.0.0" 384 | } 385 | }, 386 | "cookie": { 387 | "version": "0.3.1", 388 | "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", 389 | "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=" 390 | }, 391 | "corser": { 392 | "version": "2.0.1", 393 | "resolved": "https://registry.npmjs.org/corser/-/corser-2.0.1.tgz", 394 | "integrity": "sha1-jtolLsqrWEDc2XXOuQ2TcMgZ/4c=", 395 | "dev": true 396 | }, 397 | "create-error-class": { 398 | "version": "3.0.2", 399 | "resolved": "https://registry.npmjs.org/create-error-class/-/create-error-class-3.0.2.tgz", 400 | "integrity": "sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y=", 401 | "dev": true, 402 | "requires": { 403 | "capture-stack-trace": "^1.0.0" 404 | } 405 | }, 406 | "cross-spawn": { 407 | "version": "5.1.0", 408 | "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", 409 | "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", 410 | "dev": true, 411 | "requires": { 412 | "lru-cache": "^4.0.1", 413 | "shebang-command": "^1.2.0", 414 | "which": "^1.2.9" 415 | } 416 | }, 417 | "crypto-random-string": { 418 | "version": "1.0.0", 419 | "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-1.0.0.tgz", 420 | "integrity": "sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4=", 421 | "dev": true 422 | }, 423 | "date-fns": { 424 | "version": "2.10.0", 425 | "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.10.0.tgz", 426 | "integrity": "sha512-EhfEKevYGWhWlZbNeplfhIU/+N+x0iCIx7VzKlXma2EdQyznVlZhCptXUY+BegNpPW2kjdx15Rvq503YcXXrcA==", 427 | "dev": true 428 | }, 429 | "debug": { 430 | "version": "4.1.1", 431 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", 432 | "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", 433 | "requires": { 434 | "ms": "^2.1.1" 435 | } 436 | }, 437 | "decamelize": { 438 | "version": "1.2.0", 439 | "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", 440 | "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", 441 | "dev": true 442 | }, 443 | "deep-extend": { 444 | "version": "0.6.0", 445 | "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", 446 | "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", 447 | "dev": true 448 | }, 449 | "dot-prop": { 450 | "version": "4.2.0", 451 | "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.0.tgz", 452 | "integrity": "sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==", 453 | "dev": true, 454 | "requires": { 455 | "is-obj": "^1.0.0" 456 | } 457 | }, 458 | "duplexer3": { 459 | "version": "0.1.4", 460 | "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", 461 | "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=", 462 | "dev": true 463 | }, 464 | "ecstatic": { 465 | "version": "3.3.2", 466 | "resolved": "https://registry.npmjs.org/ecstatic/-/ecstatic-3.3.2.tgz", 467 | "integrity": "sha512-fLf9l1hnwrHI2xn9mEDT7KIi22UDqA2jaCwyCbSUJh9a1V+LEUSL/JO/6TIz/QyuBURWUHrFL5Kg2TtO1bkkog==", 468 | "dev": true, 469 | "requires": { 470 | "he": "^1.1.1", 471 | "mime": "^1.6.0", 472 | "minimist": "^1.1.0", 473 | "url-join": "^2.0.5" 474 | } 475 | }, 476 | "emoji-regex": { 477 | "version": "7.0.3", 478 | "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", 479 | "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", 480 | "dev": true 481 | }, 482 | "engine.io": { 483 | "version": "3.4.0", 484 | "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-3.4.0.tgz", 485 | "integrity": "sha512-XCyYVWzcHnK5cMz7G4VTu2W7zJS7SM1QkcelghyIk/FmobWBtXE7fwhBusEKvCSqc3bMh8fNFMlUkCKTFRxH2w==", 486 | "requires": { 487 | "accepts": "~1.3.4", 488 | "base64id": "2.0.0", 489 | "cookie": "0.3.1", 490 | "debug": "~4.1.0", 491 | "engine.io-parser": "~2.2.0", 492 | "ws": "^7.1.2" 493 | } 494 | }, 495 | "engine.io-client": { 496 | "version": "3.4.0", 497 | "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.4.0.tgz", 498 | "integrity": "sha512-a4J5QO2k99CM2a0b12IznnyQndoEvtA4UAldhGzKqnHf42I3Qs2W5SPnDvatZRcMaNZs4IevVicBPayxYt6FwA==", 499 | "requires": { 500 | "component-emitter": "1.2.1", 501 | "component-inherit": "0.0.3", 502 | "debug": "~4.1.0", 503 | "engine.io-parser": "~2.2.0", 504 | "has-cors": "1.1.0", 505 | "indexof": "0.0.1", 506 | "parseqs": "0.0.5", 507 | "parseuri": "0.0.5", 508 | "ws": "~6.1.0", 509 | "xmlhttprequest-ssl": "~1.5.4", 510 | "yeast": "0.1.2" 511 | }, 512 | "dependencies": { 513 | "ws": { 514 | "version": "6.1.4", 515 | "resolved": "https://registry.npmjs.org/ws/-/ws-6.1.4.tgz", 516 | "integrity": "sha512-eqZfL+NE/YQc1/ZynhojeV8q+H050oR8AZ2uIev7RU10svA9ZnJUddHcOUZTJLinZ9yEfdA2kSATS2qZK5fhJA==", 517 | "requires": { 518 | "async-limiter": "~1.0.0" 519 | } 520 | } 521 | } 522 | }, 523 | "engine.io-parser": { 524 | "version": "2.2.0", 525 | "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-2.2.0.tgz", 526 | "integrity": "sha512-6I3qD9iUxotsC5HEMuuGsKA0cXerGz+4uGcXQEkfBidgKf0amsjrrtwcbwK/nzpZBxclXlV7gGl9dgWvu4LF6w==", 527 | "requires": { 528 | "after": "0.8.2", 529 | "arraybuffer.slice": "~0.0.7", 530 | "base64-arraybuffer": "0.1.5", 531 | "blob": "0.0.5", 532 | "has-binary2": "~1.0.2" 533 | } 534 | }, 535 | "error-ex": { 536 | "version": "1.3.2", 537 | "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", 538 | "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", 539 | "dev": true, 540 | "requires": { 541 | "is-arrayish": "^0.2.1" 542 | } 543 | }, 544 | "escape-string-regexp": { 545 | "version": "1.0.5", 546 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", 547 | "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", 548 | "dev": true 549 | }, 550 | "eventemitter3": { 551 | "version": "4.0.0", 552 | "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.0.tgz", 553 | "integrity": "sha512-qerSRB0p+UDEssxTtm6EDKcE7W4OaoisfIMl4CngyEhjpYglocpNg6UEqCvemdGhosAsg4sO2dXJOdyBifPGCg==", 554 | "dev": true 555 | }, 556 | "execa": { 557 | "version": "0.7.0", 558 | "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", 559 | "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", 560 | "dev": true, 561 | "requires": { 562 | "cross-spawn": "^5.0.1", 563 | "get-stream": "^3.0.0", 564 | "is-stream": "^1.1.0", 565 | "npm-run-path": "^2.0.0", 566 | "p-finally": "^1.0.0", 567 | "signal-exit": "^3.0.0", 568 | "strip-eof": "^1.0.0" 569 | } 570 | }, 571 | "fill-range": { 572 | "version": "7.0.1", 573 | "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", 574 | "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", 575 | "dev": true, 576 | "requires": { 577 | "to-regex-range": "^5.0.1" 578 | } 579 | }, 580 | "find-up": { 581 | "version": "3.0.0", 582 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", 583 | "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", 584 | "dev": true, 585 | "requires": { 586 | "locate-path": "^3.0.0" 587 | } 588 | }, 589 | "follow-redirects": { 590 | "version": "1.10.0", 591 | "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.10.0.tgz", 592 | "integrity": "sha512-4eyLK6s6lH32nOvLLwlIOnr9zrL8Sm+OvW4pVTJNoXeGzYIkHVf+pADQi+OJ0E67hiuSLezPVPyBcIZO50TmmQ==", 593 | "dev": true, 594 | "requires": { 595 | "debug": "^3.0.0" 596 | }, 597 | "dependencies": { 598 | "debug": { 599 | "version": "3.2.6", 600 | "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", 601 | "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", 602 | "dev": true, 603 | "requires": { 604 | "ms": "^2.1.1" 605 | } 606 | } 607 | } 608 | }, 609 | "fsevents": { 610 | "version": "2.1.2", 611 | "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.2.tgz", 612 | "integrity": "sha512-R4wDiBwZ0KzpgOWetKDug1FZcYhqYnUYKtfZYt4mD5SBz76q0KR4Q9o7GIPamsVPGmW3EYPPJ0dOOjvx32ldZA==", 613 | "dev": true, 614 | "optional": true 615 | }, 616 | "get-caller-file": { 617 | "version": "2.0.5", 618 | "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", 619 | "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", 620 | "dev": true 621 | }, 622 | "get-stream": { 623 | "version": "3.0.0", 624 | "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", 625 | "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", 626 | "dev": true 627 | }, 628 | "glob-parent": { 629 | "version": "5.1.0", 630 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.0.tgz", 631 | "integrity": "sha512-qjtRgnIVmOfnKUE3NJAQEdk+lKrxfw8t5ke7SXtfMTHcjsBfOfWXCQfdb30zfDoZQ2IRSIiidmjtbHZPZ++Ihw==", 632 | "dev": true, 633 | "requires": { 634 | "is-glob": "^4.0.1" 635 | } 636 | }, 637 | "global-dirs": { 638 | "version": "0.1.1", 639 | "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz", 640 | "integrity": "sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU=", 641 | "dev": true, 642 | "requires": { 643 | "ini": "^1.3.4" 644 | } 645 | }, 646 | "got": { 647 | "version": "6.7.1", 648 | "resolved": "https://registry.npmjs.org/got/-/got-6.7.1.tgz", 649 | "integrity": "sha1-JAzQV4WpoY5WHcG0S0HHY+8ejbA=", 650 | "dev": true, 651 | "requires": { 652 | "create-error-class": "^3.0.0", 653 | "duplexer3": "^0.1.4", 654 | "get-stream": "^3.0.0", 655 | "is-redirect": "^1.0.0", 656 | "is-retry-allowed": "^1.0.0", 657 | "is-stream": "^1.0.0", 658 | "lowercase-keys": "^1.0.0", 659 | "safe-buffer": "^5.0.1", 660 | "timed-out": "^4.0.0", 661 | "unzip-response": "^2.0.1", 662 | "url-parse-lax": "^1.0.0" 663 | } 664 | }, 665 | "graceful-fs": { 666 | "version": "4.2.3", 667 | "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz", 668 | "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==", 669 | "dev": true 670 | }, 671 | "has-binary2": { 672 | "version": "1.0.3", 673 | "resolved": "https://registry.npmjs.org/has-binary2/-/has-binary2-1.0.3.tgz", 674 | "integrity": "sha512-G1LWKhDSvhGeAQ8mPVQlqNcOB2sJdwATtZKl2pDKKHfpf/rYj24lkinxf69blJbnsvtqqNU+L3SL50vzZhXOnw==", 675 | "requires": { 676 | "isarray": "2.0.1" 677 | } 678 | }, 679 | "has-cors": { 680 | "version": "1.1.0", 681 | "resolved": "https://registry.npmjs.org/has-cors/-/has-cors-1.1.0.tgz", 682 | "integrity": "sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk=" 683 | }, 684 | "has-flag": { 685 | "version": "3.0.0", 686 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", 687 | "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", 688 | "dev": true 689 | }, 690 | "he": { 691 | "version": "1.2.0", 692 | "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", 693 | "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", 694 | "dev": true 695 | }, 696 | "hosted-git-info": { 697 | "version": "2.8.8", 698 | "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", 699 | "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==", 700 | "dev": true 701 | }, 702 | "http-proxy": { 703 | "version": "1.18.0", 704 | "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.0.tgz", 705 | "integrity": "sha512-84I2iJM/n1d4Hdgc6y2+qY5mDaz2PUVjlg9znE9byl+q0uC3DeByqBGReQu5tpLK0TAqTIXScRUV+dg7+bUPpQ==", 706 | "dev": true, 707 | "requires": { 708 | "eventemitter3": "^4.0.0", 709 | "follow-redirects": "^1.0.0", 710 | "requires-port": "^1.0.0" 711 | } 712 | }, 713 | "http-server": { 714 | "version": "0.12.1", 715 | "resolved": "https://registry.npmjs.org/http-server/-/http-server-0.12.1.tgz", 716 | "integrity": "sha512-T0jB+7J7GJ2Vo+a4/T7P7SbQ3x2GPDnqRqQXdfEuPuUOmES/9NBxPnDm7dh1HGEeUWqUmLUNtGV63ZC5Uy3tGA==", 717 | "dev": true, 718 | "requires": { 719 | "basic-auth": "^1.0.3", 720 | "colors": "^1.3.3", 721 | "corser": "^2.0.1", 722 | "ecstatic": "^3.3.2", 723 | "http-proxy": "^1.17.0", 724 | "opener": "^1.5.1", 725 | "optimist": "~0.6.1", 726 | "portfinder": "^1.0.20", 727 | "secure-compare": "3.0.1", 728 | "union": "~0.5.0" 729 | } 730 | }, 731 | "ignore-by-default": { 732 | "version": "1.0.1", 733 | "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", 734 | "integrity": "sha1-SMptcvbGo68Aqa1K5odr44ieKwk=", 735 | "dev": true 736 | }, 737 | "import-lazy": { 738 | "version": "2.1.0", 739 | "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", 740 | "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=", 741 | "dev": true 742 | }, 743 | "imurmurhash": { 744 | "version": "0.1.4", 745 | "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", 746 | "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", 747 | "dev": true 748 | }, 749 | "indexof": { 750 | "version": "0.0.1", 751 | "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", 752 | "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=" 753 | }, 754 | "ini": { 755 | "version": "1.3.5", 756 | "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", 757 | "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", 758 | "dev": true 759 | }, 760 | "is-arrayish": { 761 | "version": "0.2.1", 762 | "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", 763 | "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", 764 | "dev": true 765 | }, 766 | "is-binary-path": { 767 | "version": "2.1.0", 768 | "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", 769 | "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", 770 | "dev": true, 771 | "requires": { 772 | "binary-extensions": "^2.0.0" 773 | } 774 | }, 775 | "is-ci": { 776 | "version": "1.2.1", 777 | "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-1.2.1.tgz", 778 | "integrity": "sha512-s6tfsaQaQi3JNciBH6shVqEDvhGut0SUXr31ag8Pd8BBbVVlcGfWhpPmEOoM6RJ5TFhbypvf5yyRw/VXW1IiWg==", 779 | "dev": true, 780 | "requires": { 781 | "ci-info": "^1.5.0" 782 | } 783 | }, 784 | "is-extglob": { 785 | "version": "2.1.1", 786 | "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", 787 | "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", 788 | "dev": true 789 | }, 790 | "is-fullwidth-code-point": { 791 | "version": "2.0.0", 792 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", 793 | "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", 794 | "dev": true 795 | }, 796 | "is-glob": { 797 | "version": "4.0.1", 798 | "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", 799 | "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", 800 | "dev": true, 801 | "requires": { 802 | "is-extglob": "^2.1.1" 803 | } 804 | }, 805 | "is-installed-globally": { 806 | "version": "0.1.0", 807 | "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.1.0.tgz", 808 | "integrity": "sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA=", 809 | "dev": true, 810 | "requires": { 811 | "global-dirs": "^0.1.0", 812 | "is-path-inside": "^1.0.0" 813 | } 814 | }, 815 | "is-npm": { 816 | "version": "1.0.0", 817 | "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-1.0.0.tgz", 818 | "integrity": "sha1-8vtjpl5JBbQGyGBydloaTceTufQ=", 819 | "dev": true 820 | }, 821 | "is-number": { 822 | "version": "7.0.0", 823 | "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", 824 | "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", 825 | "dev": true 826 | }, 827 | "is-obj": { 828 | "version": "1.0.1", 829 | "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", 830 | "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=", 831 | "dev": true 832 | }, 833 | "is-path-inside": { 834 | "version": "1.0.1", 835 | "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", 836 | "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", 837 | "dev": true, 838 | "requires": { 839 | "path-is-inside": "^1.0.1" 840 | } 841 | }, 842 | "is-redirect": { 843 | "version": "1.0.0", 844 | "resolved": "https://registry.npmjs.org/is-redirect/-/is-redirect-1.0.0.tgz", 845 | "integrity": "sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ=", 846 | "dev": true 847 | }, 848 | "is-retry-allowed": { 849 | "version": "1.2.0", 850 | "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz", 851 | "integrity": "sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg==", 852 | "dev": true 853 | }, 854 | "is-stream": { 855 | "version": "1.1.0", 856 | "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", 857 | "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", 858 | "dev": true 859 | }, 860 | "isarray": { 861 | "version": "2.0.1", 862 | "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", 863 | "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=" 864 | }, 865 | "isexe": { 866 | "version": "2.0.0", 867 | "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", 868 | "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", 869 | "dev": true 870 | }, 871 | "json-parse-better-errors": { 872 | "version": "1.0.2", 873 | "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", 874 | "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", 875 | "dev": true 876 | }, 877 | "latest-version": { 878 | "version": "3.1.0", 879 | "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-3.1.0.tgz", 880 | "integrity": "sha1-ogU4P+oyKzO1rjsYq+4NwvNW7hU=", 881 | "dev": true, 882 | "requires": { 883 | "package-json": "^4.0.0" 884 | } 885 | }, 886 | "locate-path": { 887 | "version": "3.0.0", 888 | "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", 889 | "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", 890 | "dev": true, 891 | "requires": { 892 | "p-locate": "^3.0.0", 893 | "path-exists": "^3.0.0" 894 | } 895 | }, 896 | "lodash": { 897 | "version": "4.17.15", 898 | "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", 899 | "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==", 900 | "dev": true 901 | }, 902 | "lowercase-keys": { 903 | "version": "1.0.1", 904 | "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", 905 | "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", 906 | "dev": true 907 | }, 908 | "lru-cache": { 909 | "version": "4.1.5", 910 | "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", 911 | "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", 912 | "dev": true, 913 | "requires": { 914 | "pseudomap": "^1.0.2", 915 | "yallist": "^2.1.2" 916 | } 917 | }, 918 | "make-dir": { 919 | "version": "1.3.0", 920 | "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", 921 | "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", 922 | "dev": true, 923 | "requires": { 924 | "pify": "^3.0.0" 925 | } 926 | }, 927 | "mime": { 928 | "version": "1.6.0", 929 | "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", 930 | "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", 931 | "dev": true 932 | }, 933 | "mime-db": { 934 | "version": "1.43.0", 935 | "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.43.0.tgz", 936 | "integrity": "sha512-+5dsGEEovYbT8UY9yD7eE4XTc4UwJ1jBYlgaQQF38ENsKR3wj/8q8RFZrF9WIZpB2V1ArTVFUva8sAul1NzRzQ==" 937 | }, 938 | "mime-types": { 939 | "version": "2.1.26", 940 | "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.26.tgz", 941 | "integrity": "sha512-01paPWYgLrkqAyrlDorC1uDwl2p3qZT7yl806vW7DvDoxwXi46jsjFbg+WdwotBIk6/MbEhO/dh5aZ5sNj/dWQ==", 942 | "requires": { 943 | "mime-db": "1.43.0" 944 | } 945 | }, 946 | "minimatch": { 947 | "version": "3.0.4", 948 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", 949 | "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", 950 | "dev": true, 951 | "requires": { 952 | "brace-expansion": "^1.1.7" 953 | } 954 | }, 955 | "minimist": { 956 | "version": "1.2.0", 957 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", 958 | "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", 959 | "dev": true 960 | }, 961 | "mkdirp": { 962 | "version": "0.5.1", 963 | "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", 964 | "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", 965 | "dev": true, 966 | "requires": { 967 | "minimist": "0.0.8" 968 | }, 969 | "dependencies": { 970 | "minimist": { 971 | "version": "0.0.8", 972 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", 973 | "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", 974 | "dev": true 975 | } 976 | } 977 | }, 978 | "ms": { 979 | "version": "2.1.2", 980 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", 981 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" 982 | }, 983 | "negotiator": { 984 | "version": "0.6.2", 985 | "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", 986 | "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==" 987 | }, 988 | "nodemon": { 989 | "version": "2.0.2", 990 | "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.2.tgz", 991 | "integrity": "sha512-GWhYPMfde2+M0FsHnggIHXTqPDHXia32HRhh6H0d75Mt9FKUoCBvumNHr7LdrpPBTKxsWmIEOjoN+P4IU6Hcaw==", 992 | "dev": true, 993 | "requires": { 994 | "chokidar": "^3.2.2", 995 | "debug": "^3.2.6", 996 | "ignore-by-default": "^1.0.1", 997 | "minimatch": "^3.0.4", 998 | "pstree.remy": "^1.1.7", 999 | "semver": "^5.7.1", 1000 | "supports-color": "^5.5.0", 1001 | "touch": "^3.1.0", 1002 | "undefsafe": "^2.0.2", 1003 | "update-notifier": "^2.5.0" 1004 | }, 1005 | "dependencies": { 1006 | "debug": { 1007 | "version": "3.2.6", 1008 | "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", 1009 | "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", 1010 | "dev": true, 1011 | "requires": { 1012 | "ms": "^2.1.1" 1013 | } 1014 | }, 1015 | "supports-color": { 1016 | "version": "5.5.0", 1017 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", 1018 | "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", 1019 | "dev": true, 1020 | "requires": { 1021 | "has-flag": "^3.0.0" 1022 | } 1023 | } 1024 | } 1025 | }, 1026 | "nopt": { 1027 | "version": "1.0.10", 1028 | "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", 1029 | "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=", 1030 | "dev": true, 1031 | "requires": { 1032 | "abbrev": "1" 1033 | } 1034 | }, 1035 | "normalize-package-data": { 1036 | "version": "2.5.0", 1037 | "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", 1038 | "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", 1039 | "dev": true, 1040 | "requires": { 1041 | "hosted-git-info": "^2.1.4", 1042 | "resolve": "^1.10.0", 1043 | "semver": "2 || 3 || 4 || 5", 1044 | "validate-npm-package-license": "^3.0.1" 1045 | } 1046 | }, 1047 | "normalize-path": { 1048 | "version": "3.0.0", 1049 | "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", 1050 | "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", 1051 | "dev": true 1052 | }, 1053 | "npm-run-path": { 1054 | "version": "2.0.2", 1055 | "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", 1056 | "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", 1057 | "dev": true, 1058 | "requires": { 1059 | "path-key": "^2.0.0" 1060 | } 1061 | }, 1062 | "object-component": { 1063 | "version": "0.0.3", 1064 | "resolved": "https://registry.npmjs.org/object-component/-/object-component-0.0.3.tgz", 1065 | "integrity": "sha1-8MaapQ78lbhmwYb0AKM3acsvEpE=" 1066 | }, 1067 | "opener": { 1068 | "version": "1.5.1", 1069 | "resolved": "https://registry.npmjs.org/opener/-/opener-1.5.1.tgz", 1070 | "integrity": "sha512-goYSy5c2UXE4Ra1xixabeVh1guIX/ZV/YokJksb6q2lubWu6UbvPQ20p542/sFIll1nl8JnCyK9oBaOcCWXwvA==", 1071 | "dev": true 1072 | }, 1073 | "optimist": { 1074 | "version": "0.6.1", 1075 | "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", 1076 | "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", 1077 | "dev": true, 1078 | "requires": { 1079 | "minimist": "~0.0.1", 1080 | "wordwrap": "~0.0.2" 1081 | }, 1082 | "dependencies": { 1083 | "minimist": { 1084 | "version": "0.0.10", 1085 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz", 1086 | "integrity": "sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8=", 1087 | "dev": true 1088 | } 1089 | } 1090 | }, 1091 | "p-finally": { 1092 | "version": "1.0.0", 1093 | "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", 1094 | "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", 1095 | "dev": true 1096 | }, 1097 | "p-limit": { 1098 | "version": "2.2.2", 1099 | "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.2.tgz", 1100 | "integrity": "sha512-WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ==", 1101 | "dev": true, 1102 | "requires": { 1103 | "p-try": "^2.0.0" 1104 | } 1105 | }, 1106 | "p-locate": { 1107 | "version": "3.0.0", 1108 | "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", 1109 | "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", 1110 | "dev": true, 1111 | "requires": { 1112 | "p-limit": "^2.0.0" 1113 | } 1114 | }, 1115 | "p-try": { 1116 | "version": "2.2.0", 1117 | "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", 1118 | "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", 1119 | "dev": true 1120 | }, 1121 | "package-json": { 1122 | "version": "4.0.1", 1123 | "resolved": "https://registry.npmjs.org/package-json/-/package-json-4.0.1.tgz", 1124 | "integrity": "sha1-iGmgQBJTZhxMTKPabCEh7VVfXu0=", 1125 | "dev": true, 1126 | "requires": { 1127 | "got": "^6.7.1", 1128 | "registry-auth-token": "^3.0.1", 1129 | "registry-url": "^3.0.3", 1130 | "semver": "^5.1.0" 1131 | } 1132 | }, 1133 | "parse-json": { 1134 | "version": "4.0.0", 1135 | "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", 1136 | "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", 1137 | "dev": true, 1138 | "requires": { 1139 | "error-ex": "^1.3.1", 1140 | "json-parse-better-errors": "^1.0.1" 1141 | } 1142 | }, 1143 | "parseqs": { 1144 | "version": "0.0.5", 1145 | "resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.5.tgz", 1146 | "integrity": "sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0=", 1147 | "requires": { 1148 | "better-assert": "~1.0.0" 1149 | } 1150 | }, 1151 | "parseuri": { 1152 | "version": "0.0.5", 1153 | "resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.5.tgz", 1154 | "integrity": "sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo=", 1155 | "requires": { 1156 | "better-assert": "~1.0.0" 1157 | } 1158 | }, 1159 | "path-exists": { 1160 | "version": "3.0.0", 1161 | "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", 1162 | "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", 1163 | "dev": true 1164 | }, 1165 | "path-is-inside": { 1166 | "version": "1.0.2", 1167 | "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", 1168 | "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", 1169 | "dev": true 1170 | }, 1171 | "path-key": { 1172 | "version": "2.0.1", 1173 | "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", 1174 | "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", 1175 | "dev": true 1176 | }, 1177 | "path-parse": { 1178 | "version": "1.0.6", 1179 | "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", 1180 | "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", 1181 | "dev": true 1182 | }, 1183 | "picomatch": { 1184 | "version": "2.2.1", 1185 | "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.1.tgz", 1186 | "integrity": "sha512-ISBaA8xQNmwELC7eOjqFKMESB2VIqt4PPDD0nsS95b/9dZXvVKOlz9keMSnoGGKcOHXfTvDD6WMaRoSc9UuhRA==", 1187 | "dev": true 1188 | }, 1189 | "pify": { 1190 | "version": "3.0.0", 1191 | "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", 1192 | "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", 1193 | "dev": true 1194 | }, 1195 | "portfinder": { 1196 | "version": "1.0.25", 1197 | "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.25.tgz", 1198 | "integrity": "sha512-6ElJnHBbxVA1XSLgBp7G1FiCkQdlqGzuF7DswL5tcea+E8UpuvPU7beVAjjRwCioTS9ZluNbu+ZyRvgTsmqEBg==", 1199 | "dev": true, 1200 | "requires": { 1201 | "async": "^2.6.2", 1202 | "debug": "^3.1.1", 1203 | "mkdirp": "^0.5.1" 1204 | }, 1205 | "dependencies": { 1206 | "debug": { 1207 | "version": "3.2.6", 1208 | "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", 1209 | "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", 1210 | "dev": true, 1211 | "requires": { 1212 | "ms": "^2.1.1" 1213 | } 1214 | } 1215 | } 1216 | }, 1217 | "prepend-http": { 1218 | "version": "1.0.4", 1219 | "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", 1220 | "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=", 1221 | "dev": true 1222 | }, 1223 | "pseudomap": { 1224 | "version": "1.0.2", 1225 | "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", 1226 | "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", 1227 | "dev": true 1228 | }, 1229 | "pstree.remy": { 1230 | "version": "1.1.7", 1231 | "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.7.tgz", 1232 | "integrity": "sha512-xsMgrUwRpuGskEzBFkH8NmTimbZ5PcPup0LA8JJkHIm2IMUbQcpo3yeLNWVrufEYjh8YwtSVh0xz6UeWc5Oh5A==", 1233 | "dev": true 1234 | }, 1235 | "qs": { 1236 | "version": "6.9.1", 1237 | "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.1.tgz", 1238 | "integrity": "sha512-Cxm7/SS/y/Z3MHWSxXb8lIFqgqBowP5JMlTUFyJN88y0SGQhVmZnqFK/PeuMX9LzUyWsqqhNxIyg0jlzq946yA==", 1239 | "dev": true 1240 | }, 1241 | "rc": { 1242 | "version": "1.2.8", 1243 | "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", 1244 | "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", 1245 | "dev": true, 1246 | "requires": { 1247 | "deep-extend": "^0.6.0", 1248 | "ini": "~1.3.0", 1249 | "minimist": "^1.2.0", 1250 | "strip-json-comments": "~2.0.1" 1251 | } 1252 | }, 1253 | "read-pkg": { 1254 | "version": "4.0.1", 1255 | "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-4.0.1.tgz", 1256 | "integrity": "sha1-ljYlN48+HE1IyFhytabsfV0JMjc=", 1257 | "dev": true, 1258 | "requires": { 1259 | "normalize-package-data": "^2.3.2", 1260 | "parse-json": "^4.0.0", 1261 | "pify": "^3.0.0" 1262 | } 1263 | }, 1264 | "readdirp": { 1265 | "version": "3.3.0", 1266 | "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.3.0.tgz", 1267 | "integrity": "sha512-zz0pAkSPOXXm1viEwygWIPSPkcBYjW1xU5j/JBh5t9bGCJwa6f9+BJa6VaB2g+b55yVrmXzqkyLf4xaWYM0IkQ==", 1268 | "dev": true, 1269 | "requires": { 1270 | "picomatch": "^2.0.7" 1271 | } 1272 | }, 1273 | "registry-auth-token": { 1274 | "version": "3.4.0", 1275 | "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-3.4.0.tgz", 1276 | "integrity": "sha512-4LM6Fw8eBQdwMYcES4yTnn2TqIasbXuwDx3um+QRs7S55aMKCBKBxvPXl2RiUjHwuJLTyYfxSpmfSAjQpcuP+A==", 1277 | "dev": true, 1278 | "requires": { 1279 | "rc": "^1.1.6", 1280 | "safe-buffer": "^5.0.1" 1281 | } 1282 | }, 1283 | "registry-url": { 1284 | "version": "3.1.0", 1285 | "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-3.1.0.tgz", 1286 | "integrity": "sha1-PU74cPc93h138M+aOBQyRE4XSUI=", 1287 | "dev": true, 1288 | "requires": { 1289 | "rc": "^1.0.1" 1290 | } 1291 | }, 1292 | "require-directory": { 1293 | "version": "2.1.1", 1294 | "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", 1295 | "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", 1296 | "dev": true 1297 | }, 1298 | "require-main-filename": { 1299 | "version": "2.0.0", 1300 | "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", 1301 | "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", 1302 | "dev": true 1303 | }, 1304 | "requires-port": { 1305 | "version": "1.0.0", 1306 | "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", 1307 | "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=", 1308 | "dev": true 1309 | }, 1310 | "resolve": { 1311 | "version": "1.15.1", 1312 | "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.15.1.tgz", 1313 | "integrity": "sha512-84oo6ZTtoTUpjgNEr5SJyzQhzL72gaRodsSfyxC/AXRvwu0Yse9H8eF9IpGo7b8YetZhlI6v7ZQ6bKBFV/6S7w==", 1314 | "dev": true, 1315 | "requires": { 1316 | "path-parse": "^1.0.6" 1317 | } 1318 | }, 1319 | "rxjs": { 1320 | "version": "6.5.4", 1321 | "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.4.tgz", 1322 | "integrity": "sha512-naMQXcgEo3csAEGvw/NydRA0fuS2nDZJiw1YUWFKU7aPPAPGZEsD4Iimit96qwCieH6y614MCLYwdkrWx7z/7Q==", 1323 | "dev": true, 1324 | "requires": { 1325 | "tslib": "^1.9.0" 1326 | } 1327 | }, 1328 | "safe-buffer": { 1329 | "version": "5.2.0", 1330 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.0.tgz", 1331 | "integrity": "sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==", 1332 | "dev": true 1333 | }, 1334 | "secure-compare": { 1335 | "version": "3.0.1", 1336 | "resolved": "https://registry.npmjs.org/secure-compare/-/secure-compare-3.0.1.tgz", 1337 | "integrity": "sha1-8aAymzCLIh+uN7mXTz1XjQypmeM=", 1338 | "dev": true 1339 | }, 1340 | "semver": { 1341 | "version": "5.7.1", 1342 | "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", 1343 | "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", 1344 | "dev": true 1345 | }, 1346 | "semver-diff": { 1347 | "version": "2.1.0", 1348 | "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-2.1.0.tgz", 1349 | "integrity": "sha1-S7uEN8jTfksM8aaP1ybsbWRdbTY=", 1350 | "dev": true, 1351 | "requires": { 1352 | "semver": "^5.0.3" 1353 | } 1354 | }, 1355 | "set-blocking": { 1356 | "version": "2.0.0", 1357 | "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", 1358 | "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", 1359 | "dev": true 1360 | }, 1361 | "shebang-command": { 1362 | "version": "1.2.0", 1363 | "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", 1364 | "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", 1365 | "dev": true, 1366 | "requires": { 1367 | "shebang-regex": "^1.0.0" 1368 | } 1369 | }, 1370 | "shebang-regex": { 1371 | "version": "1.0.0", 1372 | "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", 1373 | "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", 1374 | "dev": true 1375 | }, 1376 | "signal-exit": { 1377 | "version": "3.0.2", 1378 | "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", 1379 | "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", 1380 | "dev": true 1381 | }, 1382 | "socket.io": { 1383 | "version": "2.3.0", 1384 | "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-2.3.0.tgz", 1385 | "integrity": "sha512-2A892lrj0GcgR/9Qk81EaY2gYhCBxurV0PfmmESO6p27QPrUK1J3zdns+5QPqvUYK2q657nSj0guoIil9+7eFg==", 1386 | "requires": { 1387 | "debug": "~4.1.0", 1388 | "engine.io": "~3.4.0", 1389 | "has-binary2": "~1.0.2", 1390 | "socket.io-adapter": "~1.1.0", 1391 | "socket.io-client": "2.3.0", 1392 | "socket.io-parser": "~3.4.0" 1393 | } 1394 | }, 1395 | "socket.io-adapter": { 1396 | "version": "1.1.2", 1397 | "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-1.1.2.tgz", 1398 | "integrity": "sha512-WzZRUj1kUjrTIrUKpZLEzFZ1OLj5FwLlAFQs9kuZJzJi5DKdU7FsWc36SNmA8iDOtwBQyT8FkrriRM8vXLYz8g==" 1399 | }, 1400 | "socket.io-client": { 1401 | "version": "2.3.0", 1402 | "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-2.3.0.tgz", 1403 | "integrity": "sha512-cEQQf24gET3rfhxZ2jJ5xzAOo/xhZwK+mOqtGRg5IowZsMgwvHwnf/mCRapAAkadhM26y+iydgwsXGObBB5ZdA==", 1404 | "requires": { 1405 | "backo2": "1.0.2", 1406 | "base64-arraybuffer": "0.1.5", 1407 | "component-bind": "1.0.0", 1408 | "component-emitter": "1.2.1", 1409 | "debug": "~4.1.0", 1410 | "engine.io-client": "~3.4.0", 1411 | "has-binary2": "~1.0.2", 1412 | "has-cors": "1.1.0", 1413 | "indexof": "0.0.1", 1414 | "object-component": "0.0.3", 1415 | "parseqs": "0.0.5", 1416 | "parseuri": "0.0.5", 1417 | "socket.io-parser": "~3.3.0", 1418 | "to-array": "0.1.4" 1419 | }, 1420 | "dependencies": { 1421 | "ms": { 1422 | "version": "2.0.0", 1423 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", 1424 | "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" 1425 | }, 1426 | "socket.io-parser": { 1427 | "version": "3.3.0", 1428 | "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.3.0.tgz", 1429 | "integrity": "sha512-hczmV6bDgdaEbVqhAeVMM/jfUfzuEZHsQg6eOmLgJht6G3mPKMxYm75w2+qhAQZ+4X+1+ATZ+QFKeOZD5riHng==", 1430 | "requires": { 1431 | "component-emitter": "1.2.1", 1432 | "debug": "~3.1.0", 1433 | "isarray": "2.0.1" 1434 | }, 1435 | "dependencies": { 1436 | "debug": { 1437 | "version": "3.1.0", 1438 | "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", 1439 | "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", 1440 | "requires": { 1441 | "ms": "2.0.0" 1442 | } 1443 | } 1444 | } 1445 | } 1446 | } 1447 | }, 1448 | "socket.io-parser": { 1449 | "version": "3.4.0", 1450 | "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.4.0.tgz", 1451 | "integrity": "sha512-/G/VOI+3DBp0+DJKW4KesGnQkQPFmUCbA/oO2QGT6CWxU7hLGWqU3tyuzeSK/dqcyeHsQg1vTe9jiZI8GU9SCQ==", 1452 | "requires": { 1453 | "component-emitter": "1.2.1", 1454 | "debug": "~4.1.0", 1455 | "isarray": "2.0.1" 1456 | } 1457 | }, 1458 | "spawn-command": { 1459 | "version": "0.0.2-1", 1460 | "resolved": "https://registry.npmjs.org/spawn-command/-/spawn-command-0.0.2-1.tgz", 1461 | "integrity": "sha1-YvXpRmmBwbeW3Fkpk34RycaSG9A=", 1462 | "dev": true 1463 | }, 1464 | "spdx-correct": { 1465 | "version": "3.1.0", 1466 | "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz", 1467 | "integrity": "sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q==", 1468 | "dev": true, 1469 | "requires": { 1470 | "spdx-expression-parse": "^3.0.0", 1471 | "spdx-license-ids": "^3.0.0" 1472 | } 1473 | }, 1474 | "spdx-exceptions": { 1475 | "version": "2.2.0", 1476 | "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz", 1477 | "integrity": "sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA==", 1478 | "dev": true 1479 | }, 1480 | "spdx-expression-parse": { 1481 | "version": "3.0.0", 1482 | "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", 1483 | "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", 1484 | "dev": true, 1485 | "requires": { 1486 | "spdx-exceptions": "^2.1.0", 1487 | "spdx-license-ids": "^3.0.0" 1488 | } 1489 | }, 1490 | "spdx-license-ids": { 1491 | "version": "3.0.5", 1492 | "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz", 1493 | "integrity": "sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q==", 1494 | "dev": true 1495 | }, 1496 | "string-width": { 1497 | "version": "3.1.0", 1498 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", 1499 | "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", 1500 | "dev": true, 1501 | "requires": { 1502 | "emoji-regex": "^7.0.1", 1503 | "is-fullwidth-code-point": "^2.0.0", 1504 | "strip-ansi": "^5.1.0" 1505 | } 1506 | }, 1507 | "strip-ansi": { 1508 | "version": "5.2.0", 1509 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", 1510 | "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", 1511 | "dev": true, 1512 | "requires": { 1513 | "ansi-regex": "^4.1.0" 1514 | } 1515 | }, 1516 | "strip-eof": { 1517 | "version": "1.0.0", 1518 | "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", 1519 | "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", 1520 | "dev": true 1521 | }, 1522 | "strip-json-comments": { 1523 | "version": "2.0.1", 1524 | "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", 1525 | "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", 1526 | "dev": true 1527 | }, 1528 | "supports-color": { 1529 | "version": "6.1.0", 1530 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", 1531 | "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", 1532 | "dev": true, 1533 | "requires": { 1534 | "has-flag": "^3.0.0" 1535 | } 1536 | }, 1537 | "term-size": { 1538 | "version": "1.2.0", 1539 | "resolved": "https://registry.npmjs.org/term-size/-/term-size-1.2.0.tgz", 1540 | "integrity": "sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk=", 1541 | "dev": true, 1542 | "requires": { 1543 | "execa": "^0.7.0" 1544 | } 1545 | }, 1546 | "timed-out": { 1547 | "version": "4.0.1", 1548 | "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", 1549 | "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=", 1550 | "dev": true 1551 | }, 1552 | "to-array": { 1553 | "version": "0.1.4", 1554 | "resolved": "https://registry.npmjs.org/to-array/-/to-array-0.1.4.tgz", 1555 | "integrity": "sha1-F+bBH3PdTz10zaek/zI46a2b+JA=" 1556 | }, 1557 | "to-regex-range": { 1558 | "version": "5.0.1", 1559 | "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", 1560 | "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", 1561 | "dev": true, 1562 | "requires": { 1563 | "is-number": "^7.0.0" 1564 | } 1565 | }, 1566 | "touch": { 1567 | "version": "3.1.0", 1568 | "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz", 1569 | "integrity": "sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==", 1570 | "dev": true, 1571 | "requires": { 1572 | "nopt": "~1.0.10" 1573 | } 1574 | }, 1575 | "tree-kill": { 1576 | "version": "1.2.2", 1577 | "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", 1578 | "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", 1579 | "dev": true 1580 | }, 1581 | "tslib": { 1582 | "version": "1.11.1", 1583 | "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.11.1.tgz", 1584 | "integrity": "sha512-aZW88SY8kQbU7gpV19lN24LtXh/yD4ZZg6qieAJDDg+YBsJcSmLGK9QpnUjAKVG/xefmvJGd1WUmfpT/g6AJGA==", 1585 | "dev": true 1586 | }, 1587 | "typescript": { 1588 | "version": "3.8.3", 1589 | "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.8.3.tgz", 1590 | "integrity": "sha512-MYlEfn5VrLNsgudQTVJeNaQFUAI7DkhnOjdpAp4T+ku1TfQClewlbSuTVHiA+8skNBgaf02TL/kLOvig4y3G8w==", 1591 | "dev": true 1592 | }, 1593 | "undefsafe": { 1594 | "version": "2.0.3", 1595 | "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.3.tgz", 1596 | "integrity": "sha512-nrXZwwXrD/T/JXeygJqdCO6NZZ1L66HrxM/Z7mIq2oPanoN0F1nLx3lwJMu6AwJY69hdixaFQOuoYsMjE5/C2A==", 1597 | "dev": true, 1598 | "requires": { 1599 | "debug": "^2.2.0" 1600 | }, 1601 | "dependencies": { 1602 | "debug": { 1603 | "version": "2.6.9", 1604 | "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", 1605 | "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", 1606 | "dev": true, 1607 | "requires": { 1608 | "ms": "2.0.0" 1609 | } 1610 | }, 1611 | "ms": { 1612 | "version": "2.0.0", 1613 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", 1614 | "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", 1615 | "dev": true 1616 | } 1617 | } 1618 | }, 1619 | "union": { 1620 | "version": "0.5.0", 1621 | "resolved": "https://registry.npmjs.org/union/-/union-0.5.0.tgz", 1622 | "integrity": "sha512-N6uOhuW6zO95P3Mel2I2zMsbsanvvtgn6jVqJv4vbVcz/JN0OkL9suomjQGmWtxJQXOCqUJvquc1sMeNz/IwlA==", 1623 | "dev": true, 1624 | "requires": { 1625 | "qs": "^6.4.0" 1626 | } 1627 | }, 1628 | "unique-string": { 1629 | "version": "1.0.0", 1630 | "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-1.0.0.tgz", 1631 | "integrity": "sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo=", 1632 | "dev": true, 1633 | "requires": { 1634 | "crypto-random-string": "^1.0.0" 1635 | } 1636 | }, 1637 | "unzip-response": { 1638 | "version": "2.0.1", 1639 | "resolved": "https://registry.npmjs.org/unzip-response/-/unzip-response-2.0.1.tgz", 1640 | "integrity": "sha1-0vD3N9FrBhXnKmk17QQhRXLVb5c=", 1641 | "dev": true 1642 | }, 1643 | "update-notifier": { 1644 | "version": "2.5.0", 1645 | "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-2.5.0.tgz", 1646 | "integrity": "sha512-gwMdhgJHGuj/+wHJJs9e6PcCszpxR1b236igrOkUofGhqJuG+amlIKwApH1IW1WWl7ovZxsX49lMBWLxSdm5Dw==", 1647 | "dev": true, 1648 | "requires": { 1649 | "boxen": "^1.2.1", 1650 | "chalk": "^2.0.1", 1651 | "configstore": "^3.0.0", 1652 | "import-lazy": "^2.1.0", 1653 | "is-ci": "^1.0.10", 1654 | "is-installed-globally": "^0.1.0", 1655 | "is-npm": "^1.0.0", 1656 | "latest-version": "^3.0.0", 1657 | "semver-diff": "^2.0.0", 1658 | "xdg-basedir": "^3.0.0" 1659 | } 1660 | }, 1661 | "url-join": { 1662 | "version": "2.0.5", 1663 | "resolved": "https://registry.npmjs.org/url-join/-/url-join-2.0.5.tgz", 1664 | "integrity": "sha1-WvIvGMBSoACkjXuCxenC4v7tpyg=", 1665 | "dev": true 1666 | }, 1667 | "url-parse-lax": { 1668 | "version": "1.0.0", 1669 | "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz", 1670 | "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=", 1671 | "dev": true, 1672 | "requires": { 1673 | "prepend-http": "^1.0.1" 1674 | } 1675 | }, 1676 | "validate-npm-package-license": { 1677 | "version": "3.0.4", 1678 | "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", 1679 | "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", 1680 | "dev": true, 1681 | "requires": { 1682 | "spdx-correct": "^3.0.0", 1683 | "spdx-expression-parse": "^3.0.0" 1684 | } 1685 | }, 1686 | "which": { 1687 | "version": "1.3.1", 1688 | "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", 1689 | "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", 1690 | "dev": true, 1691 | "requires": { 1692 | "isexe": "^2.0.0" 1693 | } 1694 | }, 1695 | "which-module": { 1696 | "version": "2.0.0", 1697 | "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", 1698 | "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", 1699 | "dev": true 1700 | }, 1701 | "widest-line": { 1702 | "version": "2.0.1", 1703 | "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-2.0.1.tgz", 1704 | "integrity": "sha512-Ba5m9/Fa4Xt9eb2ELXt77JxVDV8w7qQrH0zS/TWSJdLyAwQjWoOzpzj5lwVftDz6n/EOu3tNACS84v509qwnJA==", 1705 | "dev": true, 1706 | "requires": { 1707 | "string-width": "^2.1.1" 1708 | }, 1709 | "dependencies": { 1710 | "ansi-regex": { 1711 | "version": "3.0.0", 1712 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", 1713 | "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", 1714 | "dev": true 1715 | }, 1716 | "string-width": { 1717 | "version": "2.1.1", 1718 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", 1719 | "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", 1720 | "dev": true, 1721 | "requires": { 1722 | "is-fullwidth-code-point": "^2.0.0", 1723 | "strip-ansi": "^4.0.0" 1724 | } 1725 | }, 1726 | "strip-ansi": { 1727 | "version": "4.0.0", 1728 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", 1729 | "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", 1730 | "dev": true, 1731 | "requires": { 1732 | "ansi-regex": "^3.0.0" 1733 | } 1734 | } 1735 | } 1736 | }, 1737 | "wordwrap": { 1738 | "version": "0.0.3", 1739 | "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", 1740 | "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=", 1741 | "dev": true 1742 | }, 1743 | "wrap-ansi": { 1744 | "version": "5.1.0", 1745 | "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", 1746 | "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", 1747 | "dev": true, 1748 | "requires": { 1749 | "ansi-styles": "^3.2.0", 1750 | "string-width": "^3.0.0", 1751 | "strip-ansi": "^5.0.0" 1752 | } 1753 | }, 1754 | "write-file-atomic": { 1755 | "version": "2.4.3", 1756 | "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.3.tgz", 1757 | "integrity": "sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==", 1758 | "dev": true, 1759 | "requires": { 1760 | "graceful-fs": "^4.1.11", 1761 | "imurmurhash": "^0.1.4", 1762 | "signal-exit": "^3.0.2" 1763 | } 1764 | }, 1765 | "ws": { 1766 | "version": "7.2.1", 1767 | "resolved": "https://registry.npmjs.org/ws/-/ws-7.2.1.tgz", 1768 | "integrity": "sha512-sucePNSafamSKoOqoNfBd8V0StlkzJKL2ZAhGQinCfNQ+oacw+Pk7lcdAElecBF2VkLNZRiIb5Oi1Q5lVUVt2A==" 1769 | }, 1770 | "xdg-basedir": { 1771 | "version": "3.0.0", 1772 | "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-3.0.0.tgz", 1773 | "integrity": "sha1-SWsswQnsqNus/i3HK2A8F8WHCtQ=", 1774 | "dev": true 1775 | }, 1776 | "xmlhttprequest-ssl": { 1777 | "version": "1.5.5", 1778 | "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz", 1779 | "integrity": "sha1-wodrBhaKrcQOV9l+gRkayPQ5iz4=" 1780 | }, 1781 | "y18n": { 1782 | "version": "4.0.0", 1783 | "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", 1784 | "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==", 1785 | "dev": true 1786 | }, 1787 | "yallist": { 1788 | "version": "2.1.2", 1789 | "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", 1790 | "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", 1791 | "dev": true 1792 | }, 1793 | "yargs": { 1794 | "version": "13.3.0", 1795 | "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.0.tgz", 1796 | "integrity": "sha512-2eehun/8ALW8TLoIl7MVaRUrg+yCnenu8B4kBlRxj3GJGDKU1Og7sMXPNm1BYyM1DOJmTZ4YeN/Nwxv+8XJsUA==", 1797 | "dev": true, 1798 | "requires": { 1799 | "cliui": "^5.0.0", 1800 | "find-up": "^3.0.0", 1801 | "get-caller-file": "^2.0.1", 1802 | "require-directory": "^2.1.1", 1803 | "require-main-filename": "^2.0.0", 1804 | "set-blocking": "^2.0.0", 1805 | "string-width": "^3.0.0", 1806 | "which-module": "^2.0.0", 1807 | "y18n": "^4.0.0", 1808 | "yargs-parser": "^13.1.1" 1809 | } 1810 | }, 1811 | "yargs-parser": { 1812 | "version": "13.1.1", 1813 | "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.1.tgz", 1814 | "integrity": "sha512-oVAVsHz6uFrg3XQheFII8ESO2ssAf9luWuAd6Wexsu4F3OtIW0o8IribPXYrD4WC24LWtPrJlGy87y5udK+dxQ==", 1815 | "dev": true, 1816 | "requires": { 1817 | "camelcase": "^5.0.0", 1818 | "decamelize": "^1.2.0" 1819 | } 1820 | }, 1821 | "yeast": { 1822 | "version": "0.1.2", 1823 | "resolved": "https://registry.npmjs.org/yeast/-/yeast-0.1.2.tgz", 1824 | "integrity": "sha1-AI4G2AlDIMNy28L47XagymyKxBk=" 1825 | } 1826 | } 1827 | } 1828 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "docker-js-livereload", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "index.js", 6 | "scripts": { 7 | "build": "npx typescript", 8 | "build:watch": "npx typescript -w", 9 | "dev:front": "npx http-server -p $FRONT_PORT .", 10 | "live-reload": "npm run build && npx concurrently \"npm run build:watch\" \"npm run dev:back\" \"npm run dev:front\" ", 11 | "dev:back": "npx nodemon bin/Index.js" 12 | }, 13 | "keywords": [], 14 | "author": "erickwendel", 15 | "license": "ISC", 16 | "devDependencies": { 17 | "@types/node": "13.7.7", 18 | "@types/socket.io": "2.1.4", 19 | "concurrently": "5.1.0", 20 | "nodemon": "2.0.2", 21 | "typescript": "3.8.3", 22 | "http-server": "0.12.1" 23 | }, 24 | "dependencies": { 25 | "socket.io": "^2.3.0" 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /resources/fuck.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ErickWendel/livereload-docker-nodejs-typescript/849833388e04757d75764636d73a8fed4b9c34d8/resources/fuck.jpg -------------------------------------------------------------------------------- /resources/happy.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ErickWendel/livereload-docker-nodejs-typescript/849833388e04757d75764636d73a8fed4b9c34d8/resources/happy.jpg -------------------------------------------------------------------------------- /resources/sad.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ErickWendel/livereload-docker-nodejs-typescript/849833388e04757d75764636d73a8fed4b9c34d8/resources/sad.jpg -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "ES6", 4 | "module": "commonjs", 5 | "sourceMap": true, 6 | "outDir": "./bin", 7 | "strict": false, 8 | "esModuleInterop": true, 9 | "forceConsistentCasingInFileNames": true 10 | } 11 | } 12 | --------------------------------------------------------------------------------