├── .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 |
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 |
--------------------------------------------------------------------------------