78 |
82 |
83 |
84 |
85 |
86 |
87 | Row: {{row}}
88 | Column: {{column}}
89 |
90 | {{item}}
91 |
92 |
93 |
94 |
95 |
96 |
`
97 | })
98 | export class AppComponent {
99 | data$ = range(0, 100000).pipe(reduce((acc: number[], cur: number) => {
100 | acc.push(cur)
101 | return acc
102 | }, []))
103 |
104 | options$ = of({itemWidth: 202, itemHeight: 202, numAdditionalRows: 1})
105 | }
106 |
--------------------------------------------------------------------------------
/demo/src/app.module.ts:
--------------------------------------------------------------------------------
1 | import {NgModule} from '@angular/core'
2 | import {BrowserModule} from '@angular/platform-browser'
3 |
4 | import {VirtualScrollModule} from '../../src/api'
5 |
6 | import {AppComponent} from './app.component'
7 |
8 | @NgModule({
9 | bootstrap: [AppComponent],
10 | declarations: [AppComponent],
11 | imports: [
12 | BrowserModule,
13 |
14 | VirtualScrollModule
15 | ]
16 | })
17 | export class AppModule {}
18 |
--------------------------------------------------------------------------------
/demo/src/main-aot.ts:
--------------------------------------------------------------------------------
1 | import {enableProdMode} from '@angular/core'
2 | import {platformBrowser} from '@angular/platform-browser'
3 | import {AppModuleNgFactory} from '../../buildTmp/aot/demo/src/app.module.ngfactory'
4 |
5 | enableProdMode()
6 |
7 | platformBrowser().bootstrapModuleFactory(AppModuleNgFactory)
8 |
--------------------------------------------------------------------------------
/demo/src/main.ts:
--------------------------------------------------------------------------------
1 | import {platformBrowserDynamic} from '@angular/platform-browser-dynamic'
2 |
3 | import {AppModule} from './app.module'
4 |
5 | platformBrowserDynamic().bootstrapModule(AppModule)
6 |
--------------------------------------------------------------------------------
/demo/systemjs.config.js:
--------------------------------------------------------------------------------
1 | SystemJS.config({
2 | paths: {
3 | 'npm:': '../node_modules/',
4 | //'npm:': 'https://unpkg.com/'
5 | },
6 | map: {
7 | ts: 'npm:plugin-typescript/lib',
8 | typescript: 'npm:typescript',
9 |
10 | '@angular/common': 'npm:@angular/common/bundles/common.umd.js',
11 | '@angular/core': 'npm:@angular/core/bundles/core.umd.js',
12 | '@angular/compiler': 'npm:@angular/compiler/bundles/compiler.umd.js',
13 | '@angular/platform-browser': 'npm:@angular/platform-browser/bundles/platform-browser.umd.js',
14 | '@angular/platform-browser-dynamic': 'npm:@angular/platform-browser-dynamic/bundles/platform-browser-dynamic.umd.js',
15 |
16 | 'rxjs': 'npm:rxjs'
17 | },
18 | packages: {
19 | ts: {main: 'plugin.js'},
20 | typescript: {
21 | main: 'lib/typescript.js',
22 | meta: {
23 | 'lib/typescript.js': {
24 | 'exports': 'ts'
25 | }
26 | }
27 | },
28 | src: {
29 | main: 'main.ts',
30 | defaultExtension: 'ts',
31 | meta: {'*.ts': {loader:'ts'}}
32 | },
33 | '../../src': {
34 | defaultExtension: 'ts',
35 | meta: {'*.ts': {loader:'ts'}}
36 | },
37 | 'rxjs': {main: 'index.js', defaultExtension: 'js' },
38 | 'rxjs/operators': {main: 'index.js', defaultExtension: 'js' }
39 | },
40 | transpiler: 'ts',
41 | typescriptOptions: {
42 | "target": "es5",
43 | "module": "System",
44 | "moduleResolution": "node",
45 | "lib": ["es2015", "dom"],
46 | "noImplicitAny": true,
47 | "sourceMap": true,
48 | "declaration": true,
49 | "removeComments": false,
50 | "strictNullChecks": false,
51 | "experimentalDecorators": true,
52 | "emitDecoratorMetadata": true,
53 | "stripInternal": true,
54 | "alwaysStrict": true,
55 | "noUnusedParameters": false,
56 | "noImplicitReturns": true,
57 | "noFallthroughCasesInSwitch": true,
58 | "suppressImplicitAnyIndexErrors": true
59 | }
60 | })
61 |
--------------------------------------------------------------------------------
/package-lock.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "od-virtualscroll",
3 | "version": "1.0.2",
4 | "lockfileVersion": 1,
5 | "requires": true,
6 | "dependencies": {
7 | "@angular/common": {
8 | "version": "6.0.5",
9 | "resolved": "https://registry.npmjs.org/@angular/common/-/common-6.0.5.tgz",
10 | "integrity": "sha512-xL4Aq+uGQcmHYs90WSKsS9vBC1XO042hM5lSVz+zyYtYzYHdt/Qg1CIuR3zkP+8DG+mf1QZqbg5YtQx5XykmgA==",
11 | "dev": true,
12 | "requires": {
13 | "tslib": "^1.9.0"
14 | }
15 | },
16 | "@angular/compiler": {
17 | "version": "6.0.5",
18 | "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-6.0.5.tgz",
19 | "integrity": "sha512-Oe0VRCyKfHLatalRuXjCdgaY6hhiMXEL/ueknMJFC0+xA73mEchmLYXj64/1ed753cjnLOM2qbVVwqhc26tmEg==",
20 | "dev": true,
21 | "requires": {
22 | "tslib": "^1.9.0"
23 | }
24 | },
25 | "@angular/compiler-cli": {
26 | "version": "6.0.5",
27 | "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-6.0.5.tgz",
28 | "integrity": "sha512-onRlVLWo1mTdyxLMRtW4iPntTUglJl9T0hacRlscKKlAUT8jaSfqIyknCF3jEXJrTnfKdypen053U7g2ajifrA==",
29 | "dev": true,
30 | "requires": {
31 | "chokidar": "^1.4.2",
32 | "minimist": "^1.2.0",
33 | "reflect-metadata": "^0.1.2",
34 | "tsickle": "^0.29.0"
35 | }
36 | },
37 | "@angular/core": {
38 | "version": "6.0.5",
39 | "resolved": "https://registry.npmjs.org/@angular/core/-/core-6.0.5.tgz",
40 | "integrity": "sha512-yG4Qz5wHWgFYOCtX62F8MmJ1wZwZA1ALbyQC+WAZfi7Y8Asx8TShJ+3QKUDYwO1jj530pqNbfauDTCmPzzPvaQ==",
41 | "dev": true,
42 | "requires": {
43 | "tslib": "^1.9.0"
44 | }
45 | },
46 | "@angular/platform-browser": {
47 | "version": "6.0.5",
48 | "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-6.0.5.tgz",
49 | "integrity": "sha512-FSsA9C3cJa7S4SPUAhypKlTQf4uA4hiqx/h65v7frDiyRVHv22oWKX7aKmyyb9oP5FHN/TDeQiRn4m8XNqG6AQ==",
50 | "dev": true,
51 | "requires": {
52 | "tslib": "^1.9.0"
53 | }
54 | },
55 | "@angular/platform-browser-dynamic": {
56 | "version": "6.0.5",
57 | "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-6.0.5.tgz",
58 | "integrity": "sha512-TTSLOMVrgRXI29xmBWsnSp8187vbWnbj0YEehuyup2FmltUl+H5Vms7poWV9/6fI3RnW3Yg9Ziv3T5iKqsiADQ==",
59 | "dev": true,
60 | "requires": {
61 | "tslib": "^1.9.0"
62 | }
63 | },
64 | "@babel/code-frame": {
65 | "version": "7.0.0-beta.51",
66 | "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0-beta.51.tgz",
67 | "integrity": "sha1-vXHZsZKvl435FYKdOdQJRFZDmgw=",
68 | "dev": true,
69 | "requires": {
70 | "@babel/highlight": "7.0.0-beta.51"
71 | }
72 | },
73 | "@babel/highlight": {
74 | "version": "7.0.0-beta.51",
75 | "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0-beta.51.tgz",
76 | "integrity": "sha1-6IRK4loVlcz9QriWI7Q3bKBtIl0=",
77 | "dev": true,
78 | "requires": {
79 | "chalk": "^2.0.0",
80 | "esutils": "^2.0.2",
81 | "js-tokens": "^3.0.0"
82 | },
83 | "dependencies": {
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 | "chalk": {
94 | "version": "2.4.1",
95 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz",
96 | "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==",
97 | "dev": true,
98 | "requires": {
99 | "ansi-styles": "^3.2.1",
100 | "escape-string-regexp": "^1.0.5",
101 | "supports-color": "^5.3.0"
102 | }
103 | },
104 | "supports-color": {
105 | "version": "5.4.0",
106 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz",
107 | "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==",
108 | "dev": true,
109 | "requires": {
110 | "has-flag": "^3.0.0"
111 | }
112 | }
113 | }
114 | },
115 | "@types/estree": {
116 | "version": "0.0.39",
117 | "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz",
118 | "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==",
119 | "dev": true
120 | },
121 | "@types/node": {
122 | "version": "10.1.3",
123 | "resolved": "https://registry.npmjs.org/@types/node/-/node-10.1.3.tgz",
124 | "integrity": "sha512-GiCx7dRvta0hbxXoJFAUxz+CKX6bZSCKjM5slq2vPp/5zwK01T4ibYZkGr6EN4F2QmxDQR76/ZHg6q+7iFWCWw==",
125 | "dev": true
126 | },
127 | "accepts": {
128 | "version": "1.3.5",
129 | "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.5.tgz",
130 | "integrity": "sha1-63d99gEXI6OxTopywIBcjoZ0a9I=",
131 | "dev": true,
132 | "requires": {
133 | "mime-types": "~2.1.18",
134 | "negotiator": "0.6.1"
135 | }
136 | },
137 | "after": {
138 | "version": "0.8.2",
139 | "resolved": "https://registry.npmjs.org/after/-/after-0.8.2.tgz",
140 | "integrity": "sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8=",
141 | "dev": true
142 | },
143 | "align-text": {
144 | "version": "0.1.4",
145 | "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz",
146 | "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=",
147 | "dev": true,
148 | "requires": {
149 | "kind-of": "^3.0.2",
150 | "longest": "^1.0.1",
151 | "repeat-string": "^1.5.2"
152 | }
153 | },
154 | "ansi-align": {
155 | "version": "2.0.0",
156 | "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-2.0.0.tgz",
157 | "integrity": "sha1-w2rsy6VjuJzrVW82kPCx2eNUf38=",
158 | "dev": true,
159 | "requires": {
160 | "string-width": "^2.0.0"
161 | },
162 | "dependencies": {
163 | "ansi-regex": {
164 | "version": "3.0.0",
165 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
166 | "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
167 | "dev": true
168 | },
169 | "is-fullwidth-code-point": {
170 | "version": "2.0.0",
171 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
172 | "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
173 | "dev": true
174 | },
175 | "string-width": {
176 | "version": "2.1.1",
177 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
178 | "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
179 | "dev": true,
180 | "requires": {
181 | "is-fullwidth-code-point": "^2.0.0",
182 | "strip-ansi": "^4.0.0"
183 | }
184 | },
185 | "strip-ansi": {
186 | "version": "4.0.0",
187 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
188 | "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
189 | "dev": true,
190 | "requires": {
191 | "ansi-regex": "^3.0.0"
192 | }
193 | }
194 | }
195 | },
196 | "ansi-regex": {
197 | "version": "2.1.1",
198 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
199 | "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
200 | "dev": true
201 | },
202 | "ansi-styles": {
203 | "version": "2.2.1",
204 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
205 | "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
206 | "dev": true
207 | },
208 | "anymatch": {
209 | "version": "1.3.2",
210 | "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.2.tgz",
211 | "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==",
212 | "dev": true,
213 | "requires": {
214 | "micromatch": "^2.1.5",
215 | "normalize-path": "^2.0.0"
216 | }
217 | },
218 | "argparse": {
219 | "version": "1.0.10",
220 | "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
221 | "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
222 | "dev": true,
223 | "requires": {
224 | "sprintf-js": "~1.0.2"
225 | }
226 | },
227 | "arr-diff": {
228 | "version": "2.0.0",
229 | "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz",
230 | "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=",
231 | "dev": true,
232 | "requires": {
233 | "arr-flatten": "^1.0.1"
234 | }
235 | },
236 | "arr-flatten": {
237 | "version": "1.1.0",
238 | "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz",
239 | "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==",
240 | "dev": true
241 | },
242 | "array-filter": {
243 | "version": "0.0.1",
244 | "resolved": "https://registry.npmjs.org/array-filter/-/array-filter-0.0.1.tgz",
245 | "integrity": "sha1-fajPLiZijtcygDWB/SH2fKzS7uw=",
246 | "dev": true
247 | },
248 | "array-find-index": {
249 | "version": "1.0.2",
250 | "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz",
251 | "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=",
252 | "dev": true
253 | },
254 | "array-map": {
255 | "version": "0.0.0",
256 | "resolved": "https://registry.npmjs.org/array-map/-/array-map-0.0.0.tgz",
257 | "integrity": "sha1-iKK6tz0c97zVwbEYoAP2b2ZfpmI=",
258 | "dev": true
259 | },
260 | "array-reduce": {
261 | "version": "0.0.0",
262 | "resolved": "https://registry.npmjs.org/array-reduce/-/array-reduce-0.0.0.tgz",
263 | "integrity": "sha1-FziZ0//Rx9k4PkR5Ul2+J4yrXys=",
264 | "dev": true
265 | },
266 | "array-union": {
267 | "version": "1.0.2",
268 | "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz",
269 | "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=",
270 | "dev": true,
271 | "requires": {
272 | "array-uniq": "^1.0.1"
273 | }
274 | },
275 | "array-uniq": {
276 | "version": "1.0.3",
277 | "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz",
278 | "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=",
279 | "dev": true
280 | },
281 | "array-unique": {
282 | "version": "0.2.1",
283 | "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz",
284 | "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=",
285 | "dev": true
286 | },
287 | "arraybuffer.slice": {
288 | "version": "0.0.7",
289 | "resolved": "https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz",
290 | "integrity": "sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog==",
291 | "dev": true
292 | },
293 | "async": {
294 | "version": "1.5.2",
295 | "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz",
296 | "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=",
297 | "dev": true
298 | },
299 | "async-each": {
300 | "version": "1.0.1",
301 | "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tgz",
302 | "integrity": "sha1-GdOGodntxufByF04iu28xW0zYC0=",
303 | "dev": true
304 | },
305 | "async-each-series": {
306 | "version": "0.1.1",
307 | "resolved": "https://registry.npmjs.org/async-each-series/-/async-each-series-0.1.1.tgz",
308 | "integrity": "sha1-dhfBkXQB/Yykooqtzj266Yr+tDI=",
309 | "dev": true
310 | },
311 | "async-limiter": {
312 | "version": "1.0.0",
313 | "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.0.tgz",
314 | "integrity": "sha512-jp/uFnooOiO+L211eZOoSyzpOITMXx1rBITauYykG3BRYPu8h0UcxsPNB04RR5vo4Tyz3+ay17tR6JVf9qzYWg==",
315 | "dev": true
316 | },
317 | "axios": {
318 | "version": "0.17.1",
319 | "resolved": "https://registry.npmjs.org/axios/-/axios-0.17.1.tgz",
320 | "integrity": "sha1-LY4+XQvb1zJ/kbyBT1xXZg+Bgk0=",
321 | "dev": true,
322 | "requires": {
323 | "follow-redirects": "^1.2.5",
324 | "is-buffer": "^1.1.5"
325 | }
326 | },
327 | "babel-code-frame": {
328 | "version": "6.26.0",
329 | "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz",
330 | "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=",
331 | "dev": true,
332 | "requires": {
333 | "chalk": "^1.1.3",
334 | "esutils": "^2.0.2",
335 | "js-tokens": "^3.0.2"
336 | }
337 | },
338 | "babel-runtime": {
339 | "version": "6.26.0",
340 | "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
341 | "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
342 | "dev": true,
343 | "requires": {
344 | "core-js": "^2.4.0",
345 | "regenerator-runtime": "^0.11.0"
346 | }
347 | },
348 | "backo2": {
349 | "version": "1.0.2",
350 | "resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz",
351 | "integrity": "sha1-MasayLEpNjRj41s+u2n038+6eUc=",
352 | "dev": true
353 | },
354 | "balanced-match": {
355 | "version": "1.0.0",
356 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
357 | "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
358 | "dev": true
359 | },
360 | "base64-arraybuffer": {
361 | "version": "0.1.5",
362 | "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz",
363 | "integrity": "sha1-c5JncZI7Whl0etZmqlzUv5xunOg=",
364 | "dev": true
365 | },
366 | "base64id": {
367 | "version": "1.0.0",
368 | "resolved": "https://registry.npmjs.org/base64id/-/base64id-1.0.0.tgz",
369 | "integrity": "sha1-R2iMuZu2gE8OBtPnY7HDLlfY5rY=",
370 | "dev": true
371 | },
372 | "batch": {
373 | "version": "0.5.3",
374 | "resolved": "https://registry.npmjs.org/batch/-/batch-0.5.3.tgz",
375 | "integrity": "sha1-PzQU84AyF0O/wQQvmoP/HVgk1GQ=",
376 | "dev": true
377 | },
378 | "better-assert": {
379 | "version": "1.0.2",
380 | "resolved": "https://registry.npmjs.org/better-assert/-/better-assert-1.0.2.tgz",
381 | "integrity": "sha1-QIZrnhueC1W0gYlDEeaPr/rrxSI=",
382 | "dev": true,
383 | "requires": {
384 | "callsite": "1.0.0"
385 | }
386 | },
387 | "binary-extensions": {
388 | "version": "1.11.0",
389 | "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.11.0.tgz",
390 | "integrity": "sha1-RqoXUftqL5PuXmibsQh9SxTGwgU=",
391 | "dev": true
392 | },
393 | "blob": {
394 | "version": "0.0.4",
395 | "resolved": "https://registry.npmjs.org/blob/-/blob-0.0.4.tgz",
396 | "integrity": "sha1-vPEwUspURj8w+fx+lbmkdjCpSSE=",
397 | "dev": true
398 | },
399 | "boxen": {
400 | "version": "1.3.0",
401 | "resolved": "https://registry.npmjs.org/boxen/-/boxen-1.3.0.tgz",
402 | "integrity": "sha512-TNPjfTr432qx7yOjQyaXm3dSR0MH9vXp7eT1BFSl/C51g+EFnOR9hTg1IreahGBmDNCehscshe45f+C1TBZbLw==",
403 | "dev": true,
404 | "requires": {
405 | "ansi-align": "^2.0.0",
406 | "camelcase": "^4.0.0",
407 | "chalk": "^2.0.1",
408 | "cli-boxes": "^1.0.0",
409 | "string-width": "^2.0.0",
410 | "term-size": "^1.2.0",
411 | "widest-line": "^2.0.0"
412 | },
413 | "dependencies": {
414 | "ansi-regex": {
415 | "version": "3.0.0",
416 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
417 | "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
418 | "dev": true
419 | },
420 | "ansi-styles": {
421 | "version": "3.2.1",
422 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
423 | "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
424 | "dev": true,
425 | "requires": {
426 | "color-convert": "^1.9.0"
427 | }
428 | },
429 | "camelcase": {
430 | "version": "4.1.0",
431 | "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz",
432 | "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=",
433 | "dev": true
434 | },
435 | "chalk": {
436 | "version": "2.4.1",
437 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz",
438 | "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==",
439 | "dev": true,
440 | "requires": {
441 | "ansi-styles": "^3.2.1",
442 | "escape-string-regexp": "^1.0.5",
443 | "supports-color": "^5.3.0"
444 | }
445 | },
446 | "is-fullwidth-code-point": {
447 | "version": "2.0.0",
448 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
449 | "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
450 | "dev": true
451 | },
452 | "string-width": {
453 | "version": "2.1.1",
454 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
455 | "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
456 | "dev": true,
457 | "requires": {
458 | "is-fullwidth-code-point": "^2.0.0",
459 | "strip-ansi": "^4.0.0"
460 | }
461 | },
462 | "strip-ansi": {
463 | "version": "4.0.0",
464 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
465 | "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
466 | "dev": true,
467 | "requires": {
468 | "ansi-regex": "^3.0.0"
469 | }
470 | },
471 | "supports-color": {
472 | "version": "5.4.0",
473 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz",
474 | "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==",
475 | "dev": true,
476 | "requires": {
477 | "has-flag": "^3.0.0"
478 | }
479 | }
480 | }
481 | },
482 | "brace-expansion": {
483 | "version": "1.1.8",
484 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz",
485 | "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=",
486 | "dev": true,
487 | "requires": {
488 | "balanced-match": "^1.0.0",
489 | "concat-map": "0.0.1"
490 | }
491 | },
492 | "braces": {
493 | "version": "1.8.5",
494 | "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz",
495 | "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=",
496 | "dev": true,
497 | "requires": {
498 | "expand-range": "^1.8.1",
499 | "preserve": "^0.2.0",
500 | "repeat-element": "^1.1.2"
501 | }
502 | },
503 | "browser-sync": {
504 | "version": "2.24.4",
505 | "resolved": "https://registry.npmjs.org/browser-sync/-/browser-sync-2.24.4.tgz",
506 | "integrity": "sha512-qfXv8vQA/Dctub2v44v/vPuvfC4XNd6bn+W5vWZVuhuy6w91lPsdY6qhalT2s2PjnJ3FR6kWq5wkTQgN26eKzA==",
507 | "dev": true,
508 | "requires": {
509 | "browser-sync-ui": "v1.0.1",
510 | "bs-recipes": "1.3.4",
511 | "chokidar": "1.7.0",
512 | "connect": "3.5.0",
513 | "connect-history-api-fallback": "^1.5.0",
514 | "dev-ip": "^1.0.1",
515 | "easy-extender": "2.3.2",
516 | "eazy-logger": "3.0.2",
517 | "etag": "^1.8.1",
518 | "fresh": "^0.5.2",
519 | "fs-extra": "3.0.1",
520 | "http-proxy": "1.15.2",
521 | "immutable": "3.8.2",
522 | "localtunnel": "1.9.0",
523 | "micromatch": "2.3.11",
524 | "opn": "4.0.2",
525 | "portscanner": "2.1.1",
526 | "qs": "6.2.3",
527 | "raw-body": "^2.3.2",
528 | "resp-modifier": "6.0.2",
529 | "rx": "4.1.0",
530 | "serve-index": "1.8.0",
531 | "serve-static": "1.13.2",
532 | "server-destroy": "1.0.1",
533 | "socket.io": "2.0.4",
534 | "ua-parser-js": "0.7.17",
535 | "yargs": "6.4.0"
536 | }
537 | },
538 | "browser-sync-ui": {
539 | "version": "1.0.1",
540 | "resolved": "https://registry.npmjs.org/browser-sync-ui/-/browser-sync-ui-1.0.1.tgz",
541 | "integrity": "sha512-RIxmwVVcUFhRd1zxp7m2FfLnXHf59x4Gtj8HFwTA//3VgYI3AKkaQAuDL8KDJnE59XqCshxZa13JYuIWtZlKQg==",
542 | "dev": true,
543 | "requires": {
544 | "async-each-series": "0.1.1",
545 | "connect-history-api-fallback": "^1.1.0",
546 | "immutable": "^3.7.6",
547 | "server-destroy": "1.0.1",
548 | "socket.io-client": "2.0.4",
549 | "stream-throttle": "^0.1.3"
550 | }
551 | },
552 | "bs-recipes": {
553 | "version": "1.3.4",
554 | "resolved": "https://registry.npmjs.org/bs-recipes/-/bs-recipes-1.3.4.tgz",
555 | "integrity": "sha1-DS1NSKcYyMBEdp/cT4lZLci2lYU=",
556 | "dev": true
557 | },
558 | "btoa": {
559 | "version": "1.1.2",
560 | "resolved": "https://registry.npmjs.org/btoa/-/btoa-1.1.2.tgz",
561 | "integrity": "sha1-PkC4FmP4HS3WWWpMtxSo3BbPq+A=",
562 | "dev": true
563 | },
564 | "buffer-from": {
565 | "version": "1.1.0",
566 | "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.0.tgz",
567 | "integrity": "sha512-c5mRlguI/Pe2dSZmpER62rSCu0ryKmWddzRYsuXc50U2/g8jMOulc31VZMa4mYx31U5xsmSOpDCgH88Vl9cDGQ==",
568 | "dev": true
569 | },
570 | "builtin-modules": {
571 | "version": "1.1.1",
572 | "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz",
573 | "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=",
574 | "dev": true
575 | },
576 | "bytes": {
577 | "version": "3.0.0",
578 | "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz",
579 | "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=",
580 | "dev": true
581 | },
582 | "callsite": {
583 | "version": "1.0.0",
584 | "resolved": "https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz",
585 | "integrity": "sha1-KAOY5dZkvXQDi28JBRU+borxvCA=",
586 | "dev": true
587 | },
588 | "camelcase": {
589 | "version": "1.2.1",
590 | "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz",
591 | "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=",
592 | "dev": true
593 | },
594 | "camelcase-keys": {
595 | "version": "2.1.0",
596 | "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz",
597 | "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=",
598 | "dev": true,
599 | "requires": {
600 | "camelcase": "^2.0.0",
601 | "map-obj": "^1.0.0"
602 | },
603 | "dependencies": {
604 | "camelcase": {
605 | "version": "2.1.1",
606 | "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz",
607 | "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=",
608 | "dev": true
609 | }
610 | }
611 | },
612 | "capture-stack-trace": {
613 | "version": "1.0.0",
614 | "resolved": "https://registry.npmjs.org/capture-stack-trace/-/capture-stack-trace-1.0.0.tgz",
615 | "integrity": "sha1-Sm+gc5nCa7pH8LJJa00PtAjFVQ0=",
616 | "dev": true
617 | },
618 | "center-align": {
619 | "version": "0.1.3",
620 | "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz",
621 | "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=",
622 | "dev": true,
623 | "requires": {
624 | "align-text": "^0.1.3",
625 | "lazy-cache": "^1.0.3"
626 | }
627 | },
628 | "chalk": {
629 | "version": "1.1.3",
630 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
631 | "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
632 | "dev": true,
633 | "requires": {
634 | "ansi-styles": "^2.2.1",
635 | "escape-string-regexp": "^1.0.2",
636 | "has-ansi": "^2.0.0",
637 | "strip-ansi": "^3.0.0",
638 | "supports-color": "^2.0.0"
639 | }
640 | },
641 | "chokidar": {
642 | "version": "1.7.0",
643 | "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz",
644 | "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=",
645 | "dev": true,
646 | "requires": {
647 | "anymatch": "^1.3.0",
648 | "async-each": "^1.0.0",
649 | "fsevents": "^1.0.0",
650 | "glob-parent": "^2.0.0",
651 | "inherits": "^2.0.1",
652 | "is-binary-path": "^1.0.0",
653 | "is-glob": "^2.0.0",
654 | "path-is-absolute": "^1.0.0",
655 | "readdirp": "^2.0.0"
656 | }
657 | },
658 | "ci-info": {
659 | "version": "1.1.3",
660 | "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.1.3.tgz",
661 | "integrity": "sha512-SK/846h/Rcy8q9Z9CAwGBLfCJ6EkjJWdpelWDufQpqVDYq2Wnnv8zlSO6AMQap02jvhVruKKpEtQOufo3pFhLg==",
662 | "dev": true
663 | },
664 | "cli-boxes": {
665 | "version": "1.0.0",
666 | "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-1.0.0.tgz",
667 | "integrity": "sha1-T6kXw+WclKAEzWH47lCdplFocUM=",
668 | "dev": true
669 | },
670 | "cliui": {
671 | "version": "3.2.0",
672 | "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz",
673 | "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=",
674 | "dev": true,
675 | "requires": {
676 | "string-width": "^1.0.1",
677 | "strip-ansi": "^3.0.1",
678 | "wrap-ansi": "^2.0.0"
679 | }
680 | },
681 | "code-point-at": {
682 | "version": "1.1.0",
683 | "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz",
684 | "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=",
685 | "dev": true
686 | },
687 | "color-convert": {
688 | "version": "1.9.1",
689 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.1.tgz",
690 | "integrity": "sha512-mjGanIiwQJskCC18rPR6OmrZ6fm2Lc7PeGFYwCmy5J34wC6F1PzdGL6xeMfmgicfYcNLGuVFA3WzXtIDCQSZxQ==",
691 | "dev": true,
692 | "requires": {
693 | "color-name": "^1.1.1"
694 | }
695 | },
696 | "color-name": {
697 | "version": "1.1.3",
698 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
699 | "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
700 | "dev": true
701 | },
702 | "colors": {
703 | "version": "1.3.0",
704 | "resolved": "https://registry.npmjs.org/colors/-/colors-1.3.0.tgz",
705 | "integrity": "sha512-EDpX3a7wHMWFA7PUHWPHNWqOxIIRSJetuwl0AS5Oi/5FMV8kWm69RTlgm00GKjBO1xFHMtBbL49yRtMMdticBw==",
706 | "dev": true
707 | },
708 | "commander": {
709 | "version": "2.15.1",
710 | "resolved": "https://registry.npmjs.org/commander/-/commander-2.15.1.tgz",
711 | "integrity": "sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag==",
712 | "dev": true
713 | },
714 | "component-bind": {
715 | "version": "1.0.0",
716 | "resolved": "https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz",
717 | "integrity": "sha1-AMYIq33Nk4l8AAllGx06jh5zu9E=",
718 | "dev": true
719 | },
720 | "component-emitter": {
721 | "version": "1.2.1",
722 | "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz",
723 | "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=",
724 | "dev": true
725 | },
726 | "component-inherit": {
727 | "version": "0.0.3",
728 | "resolved": "https://registry.npmjs.org/component-inherit/-/component-inherit-0.0.3.tgz",
729 | "integrity": "sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM=",
730 | "dev": true
731 | },
732 | "concat-map": {
733 | "version": "0.0.1",
734 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
735 | "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
736 | "dev": true
737 | },
738 | "configstore": {
739 | "version": "3.1.2",
740 | "resolved": "https://registry.npmjs.org/configstore/-/configstore-3.1.2.tgz",
741 | "integrity": "sha512-vtv5HtGjcYUgFrXc6Kx747B83MRRVS5R1VTEQoXvuP+kMI+if6uywV0nDGoiydJRy4yk7h9od5Og0kxx4zUXmw==",
742 | "dev": true,
743 | "requires": {
744 | "dot-prop": "^4.1.0",
745 | "graceful-fs": "^4.1.2",
746 | "make-dir": "^1.0.0",
747 | "unique-string": "^1.0.0",
748 | "write-file-atomic": "^2.0.0",
749 | "xdg-basedir": "^3.0.0"
750 | }
751 | },
752 | "connect": {
753 | "version": "3.5.0",
754 | "resolved": "https://registry.npmjs.org/connect/-/connect-3.5.0.tgz",
755 | "integrity": "sha1-s1dSWgtMH1BZnNmD4dnv7qlncZg=",
756 | "dev": true,
757 | "requires": {
758 | "debug": "~2.2.0",
759 | "finalhandler": "0.5.0",
760 | "parseurl": "~1.3.1",
761 | "utils-merge": "1.0.0"
762 | },
763 | "dependencies": {
764 | "debug": {
765 | "version": "2.2.0",
766 | "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz",
767 | "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=",
768 | "dev": true,
769 | "requires": {
770 | "ms": "0.7.1"
771 | }
772 | },
773 | "ms": {
774 | "version": "0.7.1",
775 | "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz",
776 | "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=",
777 | "dev": true
778 | }
779 | }
780 | },
781 | "connect-history-api-fallback": {
782 | "version": "1.5.0",
783 | "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.5.0.tgz",
784 | "integrity": "sha1-sGhzk0vF40T+9hGhlqb6rgruAVo=",
785 | "dev": true
786 | },
787 | "convert-source-map": {
788 | "version": "1.5.1",
789 | "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.1.tgz",
790 | "integrity": "sha1-uCeAl7m8IpNl3lxiz1/K7YtVmeU=",
791 | "dev": true
792 | },
793 | "cookie": {
794 | "version": "0.3.1",
795 | "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz",
796 | "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=",
797 | "dev": true
798 | },
799 | "core-js": {
800 | "version": "2.5.7",
801 | "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.7.tgz",
802 | "integrity": "sha512-RszJCAxg/PP6uzXVXL6BsxSXx/B05oJAQ2vkJRjyjrEcNVycaqOmNb5OTxZPE3xa5gwZduqza6L9JOCenh/Ecw==",
803 | "dev": true
804 | },
805 | "core-util-is": {
806 | "version": "1.0.2",
807 | "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
808 | "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=",
809 | "dev": true
810 | },
811 | "cpx": {
812 | "version": "1.5.0",
813 | "resolved": "https://registry.npmjs.org/cpx/-/cpx-1.5.0.tgz",
814 | "integrity": "sha1-GFvgGFEdhycN7czCkxceN2VauI8=",
815 | "dev": true,
816 | "requires": {
817 | "babel-runtime": "^6.9.2",
818 | "chokidar": "^1.6.0",
819 | "duplexer": "^0.1.1",
820 | "glob": "^7.0.5",
821 | "glob2base": "^0.0.12",
822 | "minimatch": "^3.0.2",
823 | "mkdirp": "^0.5.1",
824 | "resolve": "^1.1.7",
825 | "safe-buffer": "^5.0.1",
826 | "shell-quote": "^1.6.1",
827 | "subarg": "^1.0.0"
828 | }
829 | },
830 | "create-error-class": {
831 | "version": "3.0.2",
832 | "resolved": "https://registry.npmjs.org/create-error-class/-/create-error-class-3.0.2.tgz",
833 | "integrity": "sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y=",
834 | "dev": true,
835 | "requires": {
836 | "capture-stack-trace": "^1.0.0"
837 | }
838 | },
839 | "cross-spawn": {
840 | "version": "5.1.0",
841 | "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz",
842 | "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=",
843 | "dev": true,
844 | "requires": {
845 | "lru-cache": "^4.0.1",
846 | "shebang-command": "^1.2.0",
847 | "which": "^1.2.9"
848 | }
849 | },
850 | "crypto-random-string": {
851 | "version": "1.0.0",
852 | "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-1.0.0.tgz",
853 | "integrity": "sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4=",
854 | "dev": true
855 | },
856 | "currently-unhandled": {
857 | "version": "0.4.1",
858 | "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz",
859 | "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=",
860 | "dev": true,
861 | "requires": {
862 | "array-find-index": "^1.0.1"
863 | }
864 | },
865 | "debug": {
866 | "version": "2.6.9",
867 | "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
868 | "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
869 | "dev": true,
870 | "requires": {
871 | "ms": "2.0.0"
872 | }
873 | },
874 | "decamelize": {
875 | "version": "1.2.0",
876 | "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
877 | "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=",
878 | "dev": true
879 | },
880 | "deep-assign": {
881 | "version": "2.0.0",
882 | "resolved": "https://registry.npmjs.org/deep-assign/-/deep-assign-2.0.0.tgz",
883 | "integrity": "sha1-6+BrHwfwja5ZdiDj3RYi83GhxXI=",
884 | "dev": true,
885 | "requires": {
886 | "is-obj": "^1.0.0"
887 | }
888 | },
889 | "deep-extend": {
890 | "version": "0.6.0",
891 | "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz",
892 | "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==",
893 | "dev": true
894 | },
895 | "del": {
896 | "version": "3.0.0",
897 | "resolved": "https://registry.npmjs.org/del/-/del-3.0.0.tgz",
898 | "integrity": "sha1-U+z2mf/LyzljdpGrE7rxYIGXZuU=",
899 | "dev": true,
900 | "requires": {
901 | "globby": "^6.1.0",
902 | "is-path-cwd": "^1.0.0",
903 | "is-path-in-cwd": "^1.0.0",
904 | "p-map": "^1.1.1",
905 | "pify": "^3.0.0",
906 | "rimraf": "^2.2.8"
907 | },
908 | "dependencies": {
909 | "pify": {
910 | "version": "3.0.0",
911 | "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
912 | "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=",
913 | "dev": true
914 | }
915 | }
916 | },
917 | "del-cli": {
918 | "version": "1.1.0",
919 | "resolved": "https://registry.npmjs.org/del-cli/-/del-cli-1.1.0.tgz",
920 | "integrity": "sha1-J1V9aaC335ncuqHjSgnmrGWR0sQ=",
921 | "dev": true,
922 | "requires": {
923 | "del": "^3.0.0",
924 | "meow": "^3.6.0",
925 | "update-notifier": "^2.1.0"
926 | }
927 | },
928 | "depd": {
929 | "version": "1.1.2",
930 | "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
931 | "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=",
932 | "dev": true
933 | },
934 | "destroy": {
935 | "version": "1.0.4",
936 | "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz",
937 | "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=",
938 | "dev": true
939 | },
940 | "dev-ip": {
941 | "version": "1.0.1",
942 | "resolved": "https://registry.npmjs.org/dev-ip/-/dev-ip-1.0.1.tgz",
943 | "integrity": "sha1-p2o+0YVb56ASu4rBbLgPPADcKPA=",
944 | "dev": true
945 | },
946 | "diff": {
947 | "version": "3.5.0",
948 | "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz",
949 | "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==",
950 | "dev": true
951 | },
952 | "docopt": {
953 | "version": "0.6.2",
954 | "resolved": "https://registry.npmjs.org/docopt/-/docopt-0.6.2.tgz",
955 | "integrity": "sha1-so6eIiDaXsSffqW7JKR3h0Be6xE=",
956 | "dev": true
957 | },
958 | "dot-prop": {
959 | "version": "4.2.0",
960 | "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.0.tgz",
961 | "integrity": "sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==",
962 | "dev": true,
963 | "requires": {
964 | "is-obj": "^1.0.0"
965 | }
966 | },
967 | "duplexer": {
968 | "version": "0.1.1",
969 | "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz",
970 | "integrity": "sha1-rOb/gIwc5mtX0ev5eXessCM0z8E=",
971 | "dev": true
972 | },
973 | "duplexer3": {
974 | "version": "0.1.4",
975 | "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz",
976 | "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=",
977 | "dev": true
978 | },
979 | "easy-extender": {
980 | "version": "2.3.2",
981 | "resolved": "https://registry.npmjs.org/easy-extender/-/easy-extender-2.3.2.tgz",
982 | "integrity": "sha1-PTJI/r4rFZYHMW2PnPSRwWZIIh0=",
983 | "dev": true,
984 | "requires": {
985 | "lodash": "^3.10.1"
986 | }
987 | },
988 | "eazy-logger": {
989 | "version": "3.0.2",
990 | "resolved": "https://registry.npmjs.org/eazy-logger/-/eazy-logger-3.0.2.tgz",
991 | "integrity": "sha1-oyWqXlPROiIliJsqxBE7K5Y29Pw=",
992 | "dev": true,
993 | "requires": {
994 | "tfunk": "^3.0.1"
995 | }
996 | },
997 | "ee-first": {
998 | "version": "1.1.1",
999 | "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
1000 | "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=",
1001 | "dev": true
1002 | },
1003 | "encodeurl": {
1004 | "version": "1.0.2",
1005 | "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
1006 | "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=",
1007 | "dev": true
1008 | },
1009 | "engine.io": {
1010 | "version": "3.1.5",
1011 | "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-3.1.5.tgz",
1012 | "integrity": "sha512-D06ivJkYxyRrcEe0bTpNnBQNgP9d3xog+qZlLbui8EsMr/DouQpf5o9FzJnWYHEYE0YsFHllUv2R1dkgYZXHcA==",
1013 | "dev": true,
1014 | "requires": {
1015 | "accepts": "~1.3.4",
1016 | "base64id": "1.0.0",
1017 | "cookie": "0.3.1",
1018 | "debug": "~3.1.0",
1019 | "engine.io-parser": "~2.1.0",
1020 | "uws": "~9.14.0",
1021 | "ws": "~3.3.1"
1022 | },
1023 | "dependencies": {
1024 | "debug": {
1025 | "version": "3.1.0",
1026 | "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
1027 | "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
1028 | "dev": true,
1029 | "requires": {
1030 | "ms": "2.0.0"
1031 | }
1032 | }
1033 | }
1034 | },
1035 | "engine.io-client": {
1036 | "version": "3.1.6",
1037 | "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.1.6.tgz",
1038 | "integrity": "sha512-hnuHsFluXnsKOndS4Hv6SvUrgdYx1pk2NqfaDMW+GWdgfU3+/V25Cj7I8a0x92idSpa5PIhJRKxPvp9mnoLsfg==",
1039 | "dev": true,
1040 | "requires": {
1041 | "component-emitter": "1.2.1",
1042 | "component-inherit": "0.0.3",
1043 | "debug": "~3.1.0",
1044 | "engine.io-parser": "~2.1.1",
1045 | "has-cors": "1.1.0",
1046 | "indexof": "0.0.1",
1047 | "parseqs": "0.0.5",
1048 | "parseuri": "0.0.5",
1049 | "ws": "~3.3.1",
1050 | "xmlhttprequest-ssl": "~1.5.4",
1051 | "yeast": "0.1.2"
1052 | },
1053 | "dependencies": {
1054 | "debug": {
1055 | "version": "3.1.0",
1056 | "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
1057 | "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
1058 | "dev": true,
1059 | "requires": {
1060 | "ms": "2.0.0"
1061 | }
1062 | }
1063 | }
1064 | },
1065 | "engine.io-parser": {
1066 | "version": "2.1.2",
1067 | "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-2.1.2.tgz",
1068 | "integrity": "sha512-dInLFzr80RijZ1rGpx1+56/uFoH7/7InhH3kZt+Ms6hT8tNx3NGW/WNSA/f8As1WkOfkuyb3tnRyuXGxusclMw==",
1069 | "dev": true,
1070 | "requires": {
1071 | "after": "0.8.2",
1072 | "arraybuffer.slice": "~0.0.7",
1073 | "base64-arraybuffer": "0.1.5",
1074 | "blob": "0.0.4",
1075 | "has-binary2": "~1.0.2"
1076 | }
1077 | },
1078 | "error-ex": {
1079 | "version": "1.3.1",
1080 | "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz",
1081 | "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=",
1082 | "dev": true,
1083 | "requires": {
1084 | "is-arrayish": "^0.2.1"
1085 | }
1086 | },
1087 | "escape-html": {
1088 | "version": "1.0.3",
1089 | "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
1090 | "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=",
1091 | "dev": true
1092 | },
1093 | "escape-string-regexp": {
1094 | "version": "1.0.5",
1095 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
1096 | "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
1097 | "dev": true
1098 | },
1099 | "esprima": {
1100 | "version": "4.0.0",
1101 | "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.0.tgz",
1102 | "integrity": "sha512-oftTcaMu/EGrEIu904mWteKIv8vMuOgGYo7EhVJJN00R/EED9DCua/xxHRdYnKtcECzVg7xOWhflvJMnqcFZjw==",
1103 | "dev": true
1104 | },
1105 | "estree-walker": {
1106 | "version": "0.5.2",
1107 | "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.5.2.tgz",
1108 | "integrity": "sha512-XpCnW/AE10ws/kDAs37cngSkvgIR8aN3G0MS85m7dUpuK2EREo9VJ00uvw6Dg/hXEpfsE1I1TvJOJr+Z+TL+ig==",
1109 | "dev": true
1110 | },
1111 | "esutils": {
1112 | "version": "2.0.2",
1113 | "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz",
1114 | "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=",
1115 | "dev": true
1116 | },
1117 | "etag": {
1118 | "version": "1.8.1",
1119 | "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
1120 | "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=",
1121 | "dev": true
1122 | },
1123 | "eventemitter3": {
1124 | "version": "1.2.0",
1125 | "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-1.2.0.tgz",
1126 | "integrity": "sha1-HIaZHYFq0eUEdQ5zh0Ik7PO+xQg=",
1127 | "dev": true
1128 | },
1129 | "execa": {
1130 | "version": "0.7.0",
1131 | "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz",
1132 | "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=",
1133 | "dev": true,
1134 | "requires": {
1135 | "cross-spawn": "^5.0.1",
1136 | "get-stream": "^3.0.0",
1137 | "is-stream": "^1.1.0",
1138 | "npm-run-path": "^2.0.0",
1139 | "p-finally": "^1.0.0",
1140 | "signal-exit": "^3.0.0",
1141 | "strip-eof": "^1.0.0"
1142 | }
1143 | },
1144 | "expand-brackets": {
1145 | "version": "0.1.5",
1146 | "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz",
1147 | "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=",
1148 | "dev": true,
1149 | "requires": {
1150 | "is-posix-bracket": "^0.1.0"
1151 | }
1152 | },
1153 | "expand-range": {
1154 | "version": "1.8.2",
1155 | "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz",
1156 | "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=",
1157 | "dev": true,
1158 | "requires": {
1159 | "fill-range": "^2.1.0"
1160 | }
1161 | },
1162 | "extglob": {
1163 | "version": "0.3.2",
1164 | "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz",
1165 | "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=",
1166 | "dev": true,
1167 | "requires": {
1168 | "is-extglob": "^1.0.0"
1169 | }
1170 | },
1171 | "filename-regex": {
1172 | "version": "2.0.1",
1173 | "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz",
1174 | "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=",
1175 | "dev": true
1176 | },
1177 | "filesize": {
1178 | "version": "3.6.1",
1179 | "resolved": "https://registry.npmjs.org/filesize/-/filesize-3.6.1.tgz",
1180 | "integrity": "sha512-7KjR1vv6qnicaPMi1iiTcI85CyYwRO/PSFCu6SvqL8jN2Wjt/NIYQTFtFs7fSDCYOstUkEWIQGFUg5YZQfjlcg==",
1181 | "dev": true
1182 | },
1183 | "fill-range": {
1184 | "version": "2.2.4",
1185 | "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.4.tgz",
1186 | "integrity": "sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==",
1187 | "dev": true,
1188 | "requires": {
1189 | "is-number": "^2.1.0",
1190 | "isobject": "^2.0.0",
1191 | "randomatic": "^3.0.0",
1192 | "repeat-element": "^1.1.2",
1193 | "repeat-string": "^1.5.2"
1194 | }
1195 | },
1196 | "finalhandler": {
1197 | "version": "0.5.0",
1198 | "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-0.5.0.tgz",
1199 | "integrity": "sha1-6VCKvs6bbbqHGmlCodeRG5GRGsc=",
1200 | "dev": true,
1201 | "requires": {
1202 | "debug": "~2.2.0",
1203 | "escape-html": "~1.0.3",
1204 | "on-finished": "~2.3.0",
1205 | "statuses": "~1.3.0",
1206 | "unpipe": "~1.0.0"
1207 | },
1208 | "dependencies": {
1209 | "debug": {
1210 | "version": "2.2.0",
1211 | "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz",
1212 | "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=",
1213 | "dev": true,
1214 | "requires": {
1215 | "ms": "0.7.1"
1216 | }
1217 | },
1218 | "ms": {
1219 | "version": "0.7.1",
1220 | "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz",
1221 | "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=",
1222 | "dev": true
1223 | }
1224 | }
1225 | },
1226 | "find-index": {
1227 | "version": "0.1.1",
1228 | "resolved": "https://registry.npmjs.org/find-index/-/find-index-0.1.1.tgz",
1229 | "integrity": "sha1-Z101iyyjiS15Whq0cjL4tuLg3eQ=",
1230 | "dev": true
1231 | },
1232 | "find-up": {
1233 | "version": "1.1.2",
1234 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz",
1235 | "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=",
1236 | "dev": true,
1237 | "requires": {
1238 | "path-exists": "^2.0.0",
1239 | "pinkie-promise": "^2.0.0"
1240 | }
1241 | },
1242 | "follow-redirects": {
1243 | "version": "1.5.0",
1244 | "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.0.tgz",
1245 | "integrity": "sha512-fdrt472/9qQ6Kgjvb935ig6vJCuofpBUD14f9Vb+SLlm7xIe4Qva5gey8EKtv8lp7ahE1wilg3xL1znpVGtZIA==",
1246 | "dev": true,
1247 | "requires": {
1248 | "debug": "^3.1.0"
1249 | },
1250 | "dependencies": {
1251 | "debug": {
1252 | "version": "3.1.0",
1253 | "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
1254 | "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
1255 | "dev": true,
1256 | "requires": {
1257 | "ms": "2.0.0"
1258 | }
1259 | }
1260 | }
1261 | },
1262 | "for-in": {
1263 | "version": "1.0.2",
1264 | "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz",
1265 | "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=",
1266 | "dev": true
1267 | },
1268 | "for-own": {
1269 | "version": "0.1.5",
1270 | "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz",
1271 | "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=",
1272 | "dev": true,
1273 | "requires": {
1274 | "for-in": "^1.0.1"
1275 | }
1276 | },
1277 | "fresh": {
1278 | "version": "0.5.2",
1279 | "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
1280 | "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=",
1281 | "dev": true
1282 | },
1283 | "fs-extra": {
1284 | "version": "3.0.1",
1285 | "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-3.0.1.tgz",
1286 | "integrity": "sha1-N5TzeMWLNC6n27sjCVEJxLO2IpE=",
1287 | "dev": true,
1288 | "requires": {
1289 | "graceful-fs": "^4.1.2",
1290 | "jsonfile": "^3.0.0",
1291 | "universalify": "^0.1.0"
1292 | }
1293 | },
1294 | "fs.realpath": {
1295 | "version": "1.0.0",
1296 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
1297 | "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
1298 | "dev": true
1299 | },
1300 | "fsevents": {
1301 | "version": "1.2.4",
1302 | "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.4.tgz",
1303 | "integrity": "sha512-z8H8/diyk76B7q5wg+Ud0+CqzcAF3mBBI/bA5ne5zrRUUIvNkJY//D3BqyH571KuAC4Nr7Rw7CjWX4r0y9DvNg==",
1304 | "dev": true,
1305 | "optional": true,
1306 | "requires": {
1307 | "nan": "^2.9.2",
1308 | "node-pre-gyp": "^0.10.0"
1309 | },
1310 | "dependencies": {
1311 | "abbrev": {
1312 | "version": "1.1.1",
1313 | "bundled": true,
1314 | "dev": true,
1315 | "optional": true
1316 | },
1317 | "ansi-regex": {
1318 | "version": "2.1.1",
1319 | "bundled": true,
1320 | "dev": true
1321 | },
1322 | "aproba": {
1323 | "version": "1.2.0",
1324 | "bundled": true,
1325 | "dev": true,
1326 | "optional": true
1327 | },
1328 | "are-we-there-yet": {
1329 | "version": "1.1.4",
1330 | "bundled": true,
1331 | "dev": true,
1332 | "optional": true,
1333 | "requires": {
1334 | "delegates": "^1.0.0",
1335 | "readable-stream": "^2.0.6"
1336 | }
1337 | },
1338 | "balanced-match": {
1339 | "version": "1.0.0",
1340 | "bundled": true,
1341 | "dev": true
1342 | },
1343 | "brace-expansion": {
1344 | "version": "1.1.11",
1345 | "bundled": true,
1346 | "dev": true,
1347 | "requires": {
1348 | "balanced-match": "^1.0.0",
1349 | "concat-map": "0.0.1"
1350 | }
1351 | },
1352 | "chownr": {
1353 | "version": "1.0.1",
1354 | "bundled": true,
1355 | "dev": true,
1356 | "optional": true
1357 | },
1358 | "code-point-at": {
1359 | "version": "1.1.0",
1360 | "bundled": true,
1361 | "dev": true
1362 | },
1363 | "concat-map": {
1364 | "version": "0.0.1",
1365 | "bundled": true,
1366 | "dev": true
1367 | },
1368 | "console-control-strings": {
1369 | "version": "1.1.0",
1370 | "bundled": true,
1371 | "dev": true
1372 | },
1373 | "core-util-is": {
1374 | "version": "1.0.2",
1375 | "bundled": true,
1376 | "dev": true,
1377 | "optional": true
1378 | },
1379 | "debug": {
1380 | "version": "2.6.9",
1381 | "bundled": true,
1382 | "dev": true,
1383 | "optional": true,
1384 | "requires": {
1385 | "ms": "2.0.0"
1386 | }
1387 | },
1388 | "deep-extend": {
1389 | "version": "0.5.1",
1390 | "bundled": true,
1391 | "dev": true,
1392 | "optional": true
1393 | },
1394 | "delegates": {
1395 | "version": "1.0.0",
1396 | "bundled": true,
1397 | "dev": true,
1398 | "optional": true
1399 | },
1400 | "detect-libc": {
1401 | "version": "1.0.3",
1402 | "bundled": true,
1403 | "dev": true,
1404 | "optional": true
1405 | },
1406 | "fs-minipass": {
1407 | "version": "1.2.5",
1408 | "bundled": true,
1409 | "dev": true,
1410 | "optional": true,
1411 | "requires": {
1412 | "minipass": "^2.2.1"
1413 | }
1414 | },
1415 | "fs.realpath": {
1416 | "version": "1.0.0",
1417 | "bundled": true,
1418 | "dev": true,
1419 | "optional": true
1420 | },
1421 | "gauge": {
1422 | "version": "2.7.4",
1423 | "bundled": true,
1424 | "dev": true,
1425 | "optional": true,
1426 | "requires": {
1427 | "aproba": "^1.0.3",
1428 | "console-control-strings": "^1.0.0",
1429 | "has-unicode": "^2.0.0",
1430 | "object-assign": "^4.1.0",
1431 | "signal-exit": "^3.0.0",
1432 | "string-width": "^1.0.1",
1433 | "strip-ansi": "^3.0.1",
1434 | "wide-align": "^1.1.0"
1435 | }
1436 | },
1437 | "glob": {
1438 | "version": "7.1.2",
1439 | "bundled": true,
1440 | "dev": true,
1441 | "optional": true,
1442 | "requires": {
1443 | "fs.realpath": "^1.0.0",
1444 | "inflight": "^1.0.4",
1445 | "inherits": "2",
1446 | "minimatch": "^3.0.4",
1447 | "once": "^1.3.0",
1448 | "path-is-absolute": "^1.0.0"
1449 | }
1450 | },
1451 | "has-unicode": {
1452 | "version": "2.0.1",
1453 | "bundled": true,
1454 | "dev": true,
1455 | "optional": true
1456 | },
1457 | "iconv-lite": {
1458 | "version": "0.4.21",
1459 | "bundled": true,
1460 | "dev": true,
1461 | "optional": true,
1462 | "requires": {
1463 | "safer-buffer": "^2.1.0"
1464 | }
1465 | },
1466 | "ignore-walk": {
1467 | "version": "3.0.1",
1468 | "bundled": true,
1469 | "dev": true,
1470 | "optional": true,
1471 | "requires": {
1472 | "minimatch": "^3.0.4"
1473 | }
1474 | },
1475 | "inflight": {
1476 | "version": "1.0.6",
1477 | "bundled": true,
1478 | "dev": true,
1479 | "optional": true,
1480 | "requires": {
1481 | "once": "^1.3.0",
1482 | "wrappy": "1"
1483 | }
1484 | },
1485 | "inherits": {
1486 | "version": "2.0.3",
1487 | "bundled": true,
1488 | "dev": true
1489 | },
1490 | "ini": {
1491 | "version": "1.3.5",
1492 | "bundled": true,
1493 | "dev": true,
1494 | "optional": true
1495 | },
1496 | "is-fullwidth-code-point": {
1497 | "version": "1.0.0",
1498 | "bundled": true,
1499 | "dev": true,
1500 | "requires": {
1501 | "number-is-nan": "^1.0.0"
1502 | }
1503 | },
1504 | "isarray": {
1505 | "version": "1.0.0",
1506 | "bundled": true,
1507 | "dev": true,
1508 | "optional": true
1509 | },
1510 | "minimatch": {
1511 | "version": "3.0.4",
1512 | "bundled": true,
1513 | "dev": true,
1514 | "requires": {
1515 | "brace-expansion": "^1.1.7"
1516 | }
1517 | },
1518 | "minimist": {
1519 | "version": "0.0.8",
1520 | "bundled": true,
1521 | "dev": true
1522 | },
1523 | "minipass": {
1524 | "version": "2.2.4",
1525 | "bundled": true,
1526 | "dev": true,
1527 | "requires": {
1528 | "safe-buffer": "^5.1.1",
1529 | "yallist": "^3.0.0"
1530 | }
1531 | },
1532 | "minizlib": {
1533 | "version": "1.1.0",
1534 | "bundled": true,
1535 | "dev": true,
1536 | "optional": true,
1537 | "requires": {
1538 | "minipass": "^2.2.1"
1539 | }
1540 | },
1541 | "mkdirp": {
1542 | "version": "0.5.1",
1543 | "bundled": true,
1544 | "dev": true,
1545 | "requires": {
1546 | "minimist": "0.0.8"
1547 | }
1548 | },
1549 | "ms": {
1550 | "version": "2.0.0",
1551 | "bundled": true,
1552 | "dev": true,
1553 | "optional": true
1554 | },
1555 | "needle": {
1556 | "version": "2.2.0",
1557 | "bundled": true,
1558 | "dev": true,
1559 | "optional": true,
1560 | "requires": {
1561 | "debug": "^2.1.2",
1562 | "iconv-lite": "^0.4.4",
1563 | "sax": "^1.2.4"
1564 | }
1565 | },
1566 | "node-pre-gyp": {
1567 | "version": "0.10.0",
1568 | "bundled": true,
1569 | "dev": true,
1570 | "optional": true,
1571 | "requires": {
1572 | "detect-libc": "^1.0.2",
1573 | "mkdirp": "^0.5.1",
1574 | "needle": "^2.2.0",
1575 | "nopt": "^4.0.1",
1576 | "npm-packlist": "^1.1.6",
1577 | "npmlog": "^4.0.2",
1578 | "rc": "^1.1.7",
1579 | "rimraf": "^2.6.1",
1580 | "semver": "^5.3.0",
1581 | "tar": "^4"
1582 | }
1583 | },
1584 | "nopt": {
1585 | "version": "4.0.1",
1586 | "bundled": true,
1587 | "dev": true,
1588 | "optional": true,
1589 | "requires": {
1590 | "abbrev": "1",
1591 | "osenv": "^0.1.4"
1592 | }
1593 | },
1594 | "npm-bundled": {
1595 | "version": "1.0.3",
1596 | "bundled": true,
1597 | "dev": true,
1598 | "optional": true
1599 | },
1600 | "npm-packlist": {
1601 | "version": "1.1.10",
1602 | "bundled": true,
1603 | "dev": true,
1604 | "optional": true,
1605 | "requires": {
1606 | "ignore-walk": "^3.0.1",
1607 | "npm-bundled": "^1.0.1"
1608 | }
1609 | },
1610 | "npmlog": {
1611 | "version": "4.1.2",
1612 | "bundled": true,
1613 | "dev": true,
1614 | "optional": true,
1615 | "requires": {
1616 | "are-we-there-yet": "~1.1.2",
1617 | "console-control-strings": "~1.1.0",
1618 | "gauge": "~2.7.3",
1619 | "set-blocking": "~2.0.0"
1620 | }
1621 | },
1622 | "number-is-nan": {
1623 | "version": "1.0.1",
1624 | "bundled": true,
1625 | "dev": true
1626 | },
1627 | "object-assign": {
1628 | "version": "4.1.1",
1629 | "bundled": true,
1630 | "dev": true,
1631 | "optional": true
1632 | },
1633 | "once": {
1634 | "version": "1.4.0",
1635 | "bundled": true,
1636 | "dev": true,
1637 | "requires": {
1638 | "wrappy": "1"
1639 | }
1640 | },
1641 | "os-homedir": {
1642 | "version": "1.0.2",
1643 | "bundled": true,
1644 | "dev": true,
1645 | "optional": true
1646 | },
1647 | "os-tmpdir": {
1648 | "version": "1.0.2",
1649 | "bundled": true,
1650 | "dev": true,
1651 | "optional": true
1652 | },
1653 | "osenv": {
1654 | "version": "0.1.5",
1655 | "bundled": true,
1656 | "dev": true,
1657 | "optional": true,
1658 | "requires": {
1659 | "os-homedir": "^1.0.0",
1660 | "os-tmpdir": "^1.0.0"
1661 | }
1662 | },
1663 | "path-is-absolute": {
1664 | "version": "1.0.1",
1665 | "bundled": true,
1666 | "dev": true,
1667 | "optional": true
1668 | },
1669 | "process-nextick-args": {
1670 | "version": "2.0.0",
1671 | "bundled": true,
1672 | "dev": true,
1673 | "optional": true
1674 | },
1675 | "rc": {
1676 | "version": "1.2.7",
1677 | "bundled": true,
1678 | "dev": true,
1679 | "optional": true,
1680 | "requires": {
1681 | "deep-extend": "^0.5.1",
1682 | "ini": "~1.3.0",
1683 | "minimist": "^1.2.0",
1684 | "strip-json-comments": "~2.0.1"
1685 | },
1686 | "dependencies": {
1687 | "minimist": {
1688 | "version": "1.2.0",
1689 | "bundled": true,
1690 | "dev": true,
1691 | "optional": true
1692 | }
1693 | }
1694 | },
1695 | "readable-stream": {
1696 | "version": "2.3.6",
1697 | "bundled": true,
1698 | "dev": true,
1699 | "optional": true,
1700 | "requires": {
1701 | "core-util-is": "~1.0.0",
1702 | "inherits": "~2.0.3",
1703 | "isarray": "~1.0.0",
1704 | "process-nextick-args": "~2.0.0",
1705 | "safe-buffer": "~5.1.1",
1706 | "string_decoder": "~1.1.1",
1707 | "util-deprecate": "~1.0.1"
1708 | }
1709 | },
1710 | "rimraf": {
1711 | "version": "2.6.2",
1712 | "bundled": true,
1713 | "dev": true,
1714 | "optional": true,
1715 | "requires": {
1716 | "glob": "^7.0.5"
1717 | }
1718 | },
1719 | "safe-buffer": {
1720 | "version": "5.1.1",
1721 | "bundled": true,
1722 | "dev": true
1723 | },
1724 | "safer-buffer": {
1725 | "version": "2.1.2",
1726 | "bundled": true,
1727 | "dev": true,
1728 | "optional": true
1729 | },
1730 | "sax": {
1731 | "version": "1.2.4",
1732 | "bundled": true,
1733 | "dev": true,
1734 | "optional": true
1735 | },
1736 | "semver": {
1737 | "version": "5.5.0",
1738 | "bundled": true,
1739 | "dev": true,
1740 | "optional": true
1741 | },
1742 | "set-blocking": {
1743 | "version": "2.0.0",
1744 | "bundled": true,
1745 | "dev": true,
1746 | "optional": true
1747 | },
1748 | "signal-exit": {
1749 | "version": "3.0.2",
1750 | "bundled": true,
1751 | "dev": true,
1752 | "optional": true
1753 | },
1754 | "string-width": {
1755 | "version": "1.0.2",
1756 | "bundled": true,
1757 | "dev": true,
1758 | "requires": {
1759 | "code-point-at": "^1.0.0",
1760 | "is-fullwidth-code-point": "^1.0.0",
1761 | "strip-ansi": "^3.0.0"
1762 | }
1763 | },
1764 | "string_decoder": {
1765 | "version": "1.1.1",
1766 | "bundled": true,
1767 | "dev": true,
1768 | "optional": true,
1769 | "requires": {
1770 | "safe-buffer": "~5.1.0"
1771 | }
1772 | },
1773 | "strip-ansi": {
1774 | "version": "3.0.1",
1775 | "bundled": true,
1776 | "dev": true,
1777 | "requires": {
1778 | "ansi-regex": "^2.0.0"
1779 | }
1780 | },
1781 | "strip-json-comments": {
1782 | "version": "2.0.1",
1783 | "bundled": true,
1784 | "dev": true,
1785 | "optional": true
1786 | },
1787 | "tar": {
1788 | "version": "4.4.1",
1789 | "bundled": true,
1790 | "dev": true,
1791 | "optional": true,
1792 | "requires": {
1793 | "chownr": "^1.0.1",
1794 | "fs-minipass": "^1.2.5",
1795 | "minipass": "^2.2.4",
1796 | "minizlib": "^1.1.0",
1797 | "mkdirp": "^0.5.0",
1798 | "safe-buffer": "^5.1.1",
1799 | "yallist": "^3.0.2"
1800 | }
1801 | },
1802 | "util-deprecate": {
1803 | "version": "1.0.2",
1804 | "bundled": true,
1805 | "dev": true,
1806 | "optional": true
1807 | },
1808 | "wide-align": {
1809 | "version": "1.1.2",
1810 | "bundled": true,
1811 | "dev": true,
1812 | "optional": true,
1813 | "requires": {
1814 | "string-width": "^1.0.2"
1815 | }
1816 | },
1817 | "wrappy": {
1818 | "version": "1.0.2",
1819 | "bundled": true,
1820 | "dev": true
1821 | },
1822 | "yallist": {
1823 | "version": "3.0.2",
1824 | "bundled": true,
1825 | "dev": true
1826 | }
1827 | }
1828 | },
1829 | "get-caller-file": {
1830 | "version": "1.0.2",
1831 | "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.2.tgz",
1832 | "integrity": "sha1-9wLmMSfn4jHBYKgMFVSstw1QR+U=",
1833 | "dev": true
1834 | },
1835 | "get-stdin": {
1836 | "version": "4.0.1",
1837 | "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz",
1838 | "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=",
1839 | "dev": true
1840 | },
1841 | "get-stream": {
1842 | "version": "3.0.0",
1843 | "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz",
1844 | "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=",
1845 | "dev": true
1846 | },
1847 | "glob": {
1848 | "version": "7.1.2",
1849 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz",
1850 | "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==",
1851 | "dev": true,
1852 | "requires": {
1853 | "fs.realpath": "^1.0.0",
1854 | "inflight": "^1.0.4",
1855 | "inherits": "2",
1856 | "minimatch": "^3.0.4",
1857 | "once": "^1.3.0",
1858 | "path-is-absolute": "^1.0.0"
1859 | }
1860 | },
1861 | "glob-base": {
1862 | "version": "0.3.0",
1863 | "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz",
1864 | "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=",
1865 | "dev": true,
1866 | "requires": {
1867 | "glob-parent": "^2.0.0",
1868 | "is-glob": "^2.0.0"
1869 | }
1870 | },
1871 | "glob-parent": {
1872 | "version": "2.0.0",
1873 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz",
1874 | "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=",
1875 | "dev": true,
1876 | "requires": {
1877 | "is-glob": "^2.0.0"
1878 | }
1879 | },
1880 | "glob2base": {
1881 | "version": "0.0.12",
1882 | "resolved": "https://registry.npmjs.org/glob2base/-/glob2base-0.0.12.tgz",
1883 | "integrity": "sha1-nUGbPijxLoOjYhZKJ3BVkiycDVY=",
1884 | "dev": true,
1885 | "requires": {
1886 | "find-index": "^0.1.1"
1887 | }
1888 | },
1889 | "global-dirs": {
1890 | "version": "0.1.1",
1891 | "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz",
1892 | "integrity": "sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU=",
1893 | "dev": true,
1894 | "requires": {
1895 | "ini": "^1.3.4"
1896 | }
1897 | },
1898 | "globby": {
1899 | "version": "6.1.0",
1900 | "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz",
1901 | "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=",
1902 | "dev": true,
1903 | "requires": {
1904 | "array-union": "^1.0.1",
1905 | "glob": "^7.0.3",
1906 | "object-assign": "^4.0.1",
1907 | "pify": "^2.0.0",
1908 | "pinkie-promise": "^2.0.0"
1909 | }
1910 | },
1911 | "got": {
1912 | "version": "6.7.1",
1913 | "resolved": "https://registry.npmjs.org/got/-/got-6.7.1.tgz",
1914 | "integrity": "sha1-JAzQV4WpoY5WHcG0S0HHY+8ejbA=",
1915 | "dev": true,
1916 | "requires": {
1917 | "create-error-class": "^3.0.0",
1918 | "duplexer3": "^0.1.4",
1919 | "get-stream": "^3.0.0",
1920 | "is-redirect": "^1.0.0",
1921 | "is-retry-allowed": "^1.0.0",
1922 | "is-stream": "^1.0.0",
1923 | "lowercase-keys": "^1.0.0",
1924 | "safe-buffer": "^5.0.1",
1925 | "timed-out": "^4.0.0",
1926 | "unzip-response": "^2.0.1",
1927 | "url-parse-lax": "^1.0.0"
1928 | }
1929 | },
1930 | "graceful-fs": {
1931 | "version": "4.1.11",
1932 | "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
1933 | "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=",
1934 | "dev": true
1935 | },
1936 | "gzip-size": {
1937 | "version": "3.0.0",
1938 | "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-3.0.0.tgz",
1939 | "integrity": "sha1-VGGI6b3DN/Zzdy+BZgRks4nc5SA=",
1940 | "dev": true,
1941 | "requires": {
1942 | "duplexer": "^0.1.1"
1943 | }
1944 | },
1945 | "has-ansi": {
1946 | "version": "2.0.0",
1947 | "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz",
1948 | "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=",
1949 | "dev": true,
1950 | "requires": {
1951 | "ansi-regex": "^2.0.0"
1952 | }
1953 | },
1954 | "has-binary2": {
1955 | "version": "1.0.3",
1956 | "resolved": "https://registry.npmjs.org/has-binary2/-/has-binary2-1.0.3.tgz",
1957 | "integrity": "sha512-G1LWKhDSvhGeAQ8mPVQlqNcOB2sJdwATtZKl2pDKKHfpf/rYj24lkinxf69blJbnsvtqqNU+L3SL50vzZhXOnw==",
1958 | "dev": true,
1959 | "requires": {
1960 | "isarray": "2.0.1"
1961 | },
1962 | "dependencies": {
1963 | "isarray": {
1964 | "version": "2.0.1",
1965 | "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz",
1966 | "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=",
1967 | "dev": true
1968 | }
1969 | }
1970 | },
1971 | "has-cors": {
1972 | "version": "1.1.0",
1973 | "resolved": "https://registry.npmjs.org/has-cors/-/has-cors-1.1.0.tgz",
1974 | "integrity": "sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk=",
1975 | "dev": true
1976 | },
1977 | "has-flag": {
1978 | "version": "3.0.0",
1979 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
1980 | "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
1981 | "dev": true
1982 | },
1983 | "hosted-git-info": {
1984 | "version": "2.5.0",
1985 | "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.5.0.tgz",
1986 | "integrity": "sha512-pNgbURSuab90KbTqvRPsseaTxOJCZBD0a7t+haSN33piP9cCM4l0CqdzAif2hUqm716UovKB2ROmiabGAKVXyg==",
1987 | "dev": true
1988 | },
1989 | "http-errors": {
1990 | "version": "1.6.3",
1991 | "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz",
1992 | "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=",
1993 | "dev": true,
1994 | "requires": {
1995 | "depd": "~1.1.2",
1996 | "inherits": "2.0.3",
1997 | "setprototypeof": "1.1.0",
1998 | "statuses": ">= 1.4.0 < 2"
1999 | },
2000 | "dependencies": {
2001 | "statuses": {
2002 | "version": "1.5.0",
2003 | "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
2004 | "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=",
2005 | "dev": true
2006 | }
2007 | }
2008 | },
2009 | "http-proxy": {
2010 | "version": "1.15.2",
2011 | "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.15.2.tgz",
2012 | "integrity": "sha1-ZC/cr/5S00SNK9o7AHnpQJBk2jE=",
2013 | "dev": true,
2014 | "requires": {
2015 | "eventemitter3": "1.x.x",
2016 | "requires-port": "1.x.x"
2017 | }
2018 | },
2019 | "iconv-lite": {
2020 | "version": "0.4.23",
2021 | "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.23.tgz",
2022 | "integrity": "sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==",
2023 | "dev": true,
2024 | "requires": {
2025 | "safer-buffer": ">= 2.1.2 < 3"
2026 | }
2027 | },
2028 | "immutable": {
2029 | "version": "3.8.2",
2030 | "resolved": "https://registry.npmjs.org/immutable/-/immutable-3.8.2.tgz",
2031 | "integrity": "sha1-wkOZUUVbs5kT2vKBN28VMOEErfM=",
2032 | "dev": true
2033 | },
2034 | "import-lazy": {
2035 | "version": "2.1.0",
2036 | "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz",
2037 | "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=",
2038 | "dev": true
2039 | },
2040 | "imurmurhash": {
2041 | "version": "0.1.4",
2042 | "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
2043 | "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=",
2044 | "dev": true
2045 | },
2046 | "indent-string": {
2047 | "version": "2.1.0",
2048 | "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz",
2049 | "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=",
2050 | "dev": true,
2051 | "requires": {
2052 | "repeating": "^2.0.0"
2053 | }
2054 | },
2055 | "indexof": {
2056 | "version": "0.0.1",
2057 | "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz",
2058 | "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=",
2059 | "dev": true
2060 | },
2061 | "inflight": {
2062 | "version": "1.0.6",
2063 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
2064 | "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
2065 | "dev": true,
2066 | "requires": {
2067 | "once": "^1.3.0",
2068 | "wrappy": "1"
2069 | }
2070 | },
2071 | "inherits": {
2072 | "version": "2.0.3",
2073 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
2074 | "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
2075 | "dev": true
2076 | },
2077 | "ini": {
2078 | "version": "1.3.5",
2079 | "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz",
2080 | "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==",
2081 | "dev": true
2082 | },
2083 | "invert-kv": {
2084 | "version": "1.0.0",
2085 | "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz",
2086 | "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=",
2087 | "dev": true
2088 | },
2089 | "is-arrayish": {
2090 | "version": "0.2.1",
2091 | "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
2092 | "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=",
2093 | "dev": true
2094 | },
2095 | "is-binary-path": {
2096 | "version": "1.0.1",
2097 | "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz",
2098 | "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=",
2099 | "dev": true,
2100 | "requires": {
2101 | "binary-extensions": "^1.0.0"
2102 | }
2103 | },
2104 | "is-buffer": {
2105 | "version": "1.1.6",
2106 | "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
2107 | "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==",
2108 | "dev": true
2109 | },
2110 | "is-builtin-module": {
2111 | "version": "1.0.0",
2112 | "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz",
2113 | "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=",
2114 | "dev": true,
2115 | "requires": {
2116 | "builtin-modules": "^1.0.0"
2117 | }
2118 | },
2119 | "is-ci": {
2120 | "version": "1.1.0",
2121 | "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-1.1.0.tgz",
2122 | "integrity": "sha512-c7TnwxLePuqIlxHgr7xtxzycJPegNHFuIrBkwbf8hc58//+Op1CqFkyS+xnIMkwn9UsJIwc174BIjkyBmSpjKg==",
2123 | "dev": true,
2124 | "requires": {
2125 | "ci-info": "^1.0.0"
2126 | }
2127 | },
2128 | "is-dotfile": {
2129 | "version": "1.0.3",
2130 | "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz",
2131 | "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=",
2132 | "dev": true
2133 | },
2134 | "is-equal-shallow": {
2135 | "version": "0.1.3",
2136 | "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz",
2137 | "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=",
2138 | "dev": true,
2139 | "requires": {
2140 | "is-primitive": "^2.0.0"
2141 | }
2142 | },
2143 | "is-extendable": {
2144 | "version": "0.1.1",
2145 | "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
2146 | "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=",
2147 | "dev": true
2148 | },
2149 | "is-extglob": {
2150 | "version": "1.0.0",
2151 | "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz",
2152 | "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=",
2153 | "dev": true
2154 | },
2155 | "is-finite": {
2156 | "version": "1.0.2",
2157 | "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz",
2158 | "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=",
2159 | "dev": true,
2160 | "requires": {
2161 | "number-is-nan": "^1.0.0"
2162 | }
2163 | },
2164 | "is-fullwidth-code-point": {
2165 | "version": "1.0.0",
2166 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
2167 | "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
2168 | "dev": true,
2169 | "requires": {
2170 | "number-is-nan": "^1.0.0"
2171 | }
2172 | },
2173 | "is-glob": {
2174 | "version": "2.0.1",
2175 | "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz",
2176 | "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=",
2177 | "dev": true,
2178 | "requires": {
2179 | "is-extglob": "^1.0.0"
2180 | }
2181 | },
2182 | "is-installed-globally": {
2183 | "version": "0.1.0",
2184 | "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.1.0.tgz",
2185 | "integrity": "sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA=",
2186 | "dev": true,
2187 | "requires": {
2188 | "global-dirs": "^0.1.0",
2189 | "is-path-inside": "^1.0.0"
2190 | }
2191 | },
2192 | "is-module": {
2193 | "version": "1.0.0",
2194 | "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz",
2195 | "integrity": "sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE=",
2196 | "dev": true
2197 | },
2198 | "is-npm": {
2199 | "version": "1.0.0",
2200 | "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-1.0.0.tgz",
2201 | "integrity": "sha1-8vtjpl5JBbQGyGBydloaTceTufQ=",
2202 | "dev": true
2203 | },
2204 | "is-number": {
2205 | "version": "2.1.0",
2206 | "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz",
2207 | "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=",
2208 | "dev": true,
2209 | "requires": {
2210 | "kind-of": "^3.0.2"
2211 | }
2212 | },
2213 | "is-number-like": {
2214 | "version": "1.0.8",
2215 | "resolved": "https://registry.npmjs.org/is-number-like/-/is-number-like-1.0.8.tgz",
2216 | "integrity": "sha512-6rZi3ezCyFcn5L71ywzz2bS5b2Igl1En3eTlZlvKjpz1n3IZLAYMbKYAIQgFmEu0GENg92ziU/faEOA/aixjbA==",
2217 | "dev": true,
2218 | "requires": {
2219 | "lodash.isfinite": "^3.3.2"
2220 | }
2221 | },
2222 | "is-obj": {
2223 | "version": "1.0.1",
2224 | "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz",
2225 | "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=",
2226 | "dev": true
2227 | },
2228 | "is-path-cwd": {
2229 | "version": "1.0.0",
2230 | "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz",
2231 | "integrity": "sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=",
2232 | "dev": true
2233 | },
2234 | "is-path-in-cwd": {
2235 | "version": "1.0.1",
2236 | "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz",
2237 | "integrity": "sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==",
2238 | "dev": true,
2239 | "requires": {
2240 | "is-path-inside": "^1.0.0"
2241 | }
2242 | },
2243 | "is-path-inside": {
2244 | "version": "1.0.1",
2245 | "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz",
2246 | "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=",
2247 | "dev": true,
2248 | "requires": {
2249 | "path-is-inside": "^1.0.1"
2250 | }
2251 | },
2252 | "is-posix-bracket": {
2253 | "version": "0.1.1",
2254 | "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz",
2255 | "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=",
2256 | "dev": true
2257 | },
2258 | "is-primitive": {
2259 | "version": "2.0.0",
2260 | "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz",
2261 | "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=",
2262 | "dev": true
2263 | },
2264 | "is-redirect": {
2265 | "version": "1.0.0",
2266 | "resolved": "https://registry.npmjs.org/is-redirect/-/is-redirect-1.0.0.tgz",
2267 | "integrity": "sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ=",
2268 | "dev": true
2269 | },
2270 | "is-retry-allowed": {
2271 | "version": "1.1.0",
2272 | "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz",
2273 | "integrity": "sha1-EaBgVotnM5REAz0BJaYaINVk+zQ=",
2274 | "dev": true
2275 | },
2276 | "is-stream": {
2277 | "version": "1.1.0",
2278 | "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
2279 | "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=",
2280 | "dev": true
2281 | },
2282 | "is-utf8": {
2283 | "version": "0.2.1",
2284 | "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz",
2285 | "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=",
2286 | "dev": true
2287 | },
2288 | "isarray": {
2289 | "version": "1.0.0",
2290 | "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
2291 | "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
2292 | "dev": true
2293 | },
2294 | "isexe": {
2295 | "version": "2.0.0",
2296 | "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
2297 | "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=",
2298 | "dev": true
2299 | },
2300 | "isobject": {
2301 | "version": "2.1.0",
2302 | "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz",
2303 | "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=",
2304 | "dev": true,
2305 | "requires": {
2306 | "isarray": "1.0.0"
2307 | }
2308 | },
2309 | "js-tokens": {
2310 | "version": "3.0.2",
2311 | "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz",
2312 | "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=",
2313 | "dev": true
2314 | },
2315 | "js-yaml": {
2316 | "version": "3.11.0",
2317 | "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.11.0.tgz",
2318 | "integrity": "sha512-saJstZWv7oNeOyBh3+Dx1qWzhW0+e6/8eDzo7p5rDFqxntSztloLtuKu+Ejhtq82jsilwOIZYsCz+lIjthg1Hw==",
2319 | "dev": true,
2320 | "requires": {
2321 | "argparse": "^1.0.7",
2322 | "esprima": "^4.0.0"
2323 | }
2324 | },
2325 | "jsonfile": {
2326 | "version": "3.0.1",
2327 | "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-3.0.1.tgz",
2328 | "integrity": "sha1-pezG9l9T9mLEQVx2daAzHQmS7GY=",
2329 | "dev": true,
2330 | "requires": {
2331 | "graceful-fs": "^4.1.6"
2332 | }
2333 | },
2334 | "jsonify": {
2335 | "version": "0.0.0",
2336 | "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz",
2337 | "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=",
2338 | "dev": true
2339 | },
2340 | "kind-of": {
2341 | "version": "3.2.2",
2342 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
2343 | "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
2344 | "dev": true,
2345 | "requires": {
2346 | "is-buffer": "^1.1.5"
2347 | }
2348 | },
2349 | "latest-version": {
2350 | "version": "3.1.0",
2351 | "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-3.1.0.tgz",
2352 | "integrity": "sha1-ogU4P+oyKzO1rjsYq+4NwvNW7hU=",
2353 | "dev": true,
2354 | "requires": {
2355 | "package-json": "^4.0.0"
2356 | }
2357 | },
2358 | "lazy-cache": {
2359 | "version": "1.0.4",
2360 | "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz",
2361 | "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=",
2362 | "dev": true
2363 | },
2364 | "lcid": {
2365 | "version": "1.0.0",
2366 | "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz",
2367 | "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=",
2368 | "dev": true,
2369 | "requires": {
2370 | "invert-kv": "^1.0.0"
2371 | }
2372 | },
2373 | "limiter": {
2374 | "version": "1.1.3",
2375 | "resolved": "https://registry.npmjs.org/limiter/-/limiter-1.1.3.tgz",
2376 | "integrity": "sha512-zrycnIMsLw/3ZxTbW7HCez56rcFGecWTx5OZNplzcXUUmJLmoYArC6qdJzmAN5BWiNXGcpjhF9RQ1HSv5zebEw==",
2377 | "dev": true
2378 | },
2379 | "load-json-file": {
2380 | "version": "1.1.0",
2381 | "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz",
2382 | "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=",
2383 | "dev": true,
2384 | "requires": {
2385 | "graceful-fs": "^4.1.2",
2386 | "parse-json": "^2.2.0",
2387 | "pify": "^2.0.0",
2388 | "pinkie-promise": "^2.0.0",
2389 | "strip-bom": "^2.0.0"
2390 | }
2391 | },
2392 | "localtunnel": {
2393 | "version": "1.9.0",
2394 | "resolved": "https://registry.npmjs.org/localtunnel/-/localtunnel-1.9.0.tgz",
2395 | "integrity": "sha512-wCIiIHJ8kKIcWkTQE3m1VRABvsH2ZuOkiOpZUofUCf6Q42v3VIZ+Q0YfX1Z4sYDRj0muiKL1bLvz1FeoxsPO0w==",
2396 | "dev": true,
2397 | "requires": {
2398 | "axios": "0.17.1",
2399 | "debug": "2.6.8",
2400 | "openurl": "1.1.1",
2401 | "yargs": "6.6.0"
2402 | },
2403 | "dependencies": {
2404 | "camelcase": {
2405 | "version": "3.0.0",
2406 | "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz",
2407 | "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=",
2408 | "dev": true
2409 | },
2410 | "debug": {
2411 | "version": "2.6.8",
2412 | "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.8.tgz",
2413 | "integrity": "sha1-5zFTHKLt4n0YgiJCfaF4IdaP9Pw=",
2414 | "dev": true,
2415 | "requires": {
2416 | "ms": "2.0.0"
2417 | }
2418 | },
2419 | "yargs": {
2420 | "version": "6.6.0",
2421 | "resolved": "https://registry.npmjs.org/yargs/-/yargs-6.6.0.tgz",
2422 | "integrity": "sha1-eC7CHvQDNF+DCoCMo9UTr1YGUgg=",
2423 | "dev": true,
2424 | "requires": {
2425 | "camelcase": "^3.0.0",
2426 | "cliui": "^3.2.0",
2427 | "decamelize": "^1.1.1",
2428 | "get-caller-file": "^1.0.1",
2429 | "os-locale": "^1.4.0",
2430 | "read-pkg-up": "^1.0.1",
2431 | "require-directory": "^2.1.1",
2432 | "require-main-filename": "^1.0.1",
2433 | "set-blocking": "^2.0.0",
2434 | "string-width": "^1.0.2",
2435 | "which-module": "^1.0.0",
2436 | "y18n": "^3.2.1",
2437 | "yargs-parser": "^4.2.0"
2438 | }
2439 | }
2440 | }
2441 | },
2442 | "lodash": {
2443 | "version": "3.10.1",
2444 | "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz",
2445 | "integrity": "sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y=",
2446 | "dev": true
2447 | },
2448 | "lodash.isfinite": {
2449 | "version": "3.3.2",
2450 | "resolved": "https://registry.npmjs.org/lodash.isfinite/-/lodash.isfinite-3.3.2.tgz",
2451 | "integrity": "sha1-+4m2WpqAKBgz8LdHizpRBPiY67M=",
2452 | "dev": true
2453 | },
2454 | "longest": {
2455 | "version": "1.0.1",
2456 | "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz",
2457 | "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=",
2458 | "dev": true
2459 | },
2460 | "loud-rejection": {
2461 | "version": "1.6.0",
2462 | "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz",
2463 | "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=",
2464 | "dev": true,
2465 | "requires": {
2466 | "currently-unhandled": "^0.4.1",
2467 | "signal-exit": "^3.0.0"
2468 | }
2469 | },
2470 | "lowercase-keys": {
2471 | "version": "1.0.1",
2472 | "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz",
2473 | "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==",
2474 | "dev": true
2475 | },
2476 | "lru-cache": {
2477 | "version": "4.1.3",
2478 | "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.3.tgz",
2479 | "integrity": "sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA==",
2480 | "dev": true,
2481 | "requires": {
2482 | "pseudomap": "^1.0.2",
2483 | "yallist": "^2.1.2"
2484 | }
2485 | },
2486 | "magic-string": {
2487 | "version": "0.22.5",
2488 | "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.22.5.tgz",
2489 | "integrity": "sha512-oreip9rJZkzvA8Qzk9HFs8fZGF/u7H/gtrE8EN6RjKJ9kh2HlC+yQ2QezifqTZfGyiuAV0dRv5a+y/8gBb1m9w==",
2490 | "dev": true,
2491 | "requires": {
2492 | "vlq": "^0.2.2"
2493 | }
2494 | },
2495 | "make-dir": {
2496 | "version": "1.3.0",
2497 | "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz",
2498 | "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==",
2499 | "dev": true,
2500 | "requires": {
2501 | "pify": "^3.0.0"
2502 | },
2503 | "dependencies": {
2504 | "pify": {
2505 | "version": "3.0.0",
2506 | "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
2507 | "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=",
2508 | "dev": true
2509 | }
2510 | }
2511 | },
2512 | "map-obj": {
2513 | "version": "1.0.1",
2514 | "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz",
2515 | "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=",
2516 | "dev": true
2517 | },
2518 | "math-random": {
2519 | "version": "1.0.1",
2520 | "resolved": "https://registry.npmjs.org/math-random/-/math-random-1.0.1.tgz",
2521 | "integrity": "sha1-izqsWIuKZuSXXjzepn97sylgH6w=",
2522 | "dev": true
2523 | },
2524 | "meow": {
2525 | "version": "3.7.0",
2526 | "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz",
2527 | "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=",
2528 | "dev": true,
2529 | "requires": {
2530 | "camelcase-keys": "^2.0.0",
2531 | "decamelize": "^1.1.2",
2532 | "loud-rejection": "^1.0.0",
2533 | "map-obj": "^1.0.1",
2534 | "minimist": "^1.1.3",
2535 | "normalize-package-data": "^2.3.4",
2536 | "object-assign": "^4.0.1",
2537 | "read-pkg-up": "^1.0.1",
2538 | "redent": "^1.0.0",
2539 | "trim-newlines": "^1.0.0"
2540 | }
2541 | },
2542 | "micromatch": {
2543 | "version": "2.3.11",
2544 | "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz",
2545 | "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=",
2546 | "dev": true,
2547 | "requires": {
2548 | "arr-diff": "^2.0.0",
2549 | "array-unique": "^0.2.1",
2550 | "braces": "^1.8.2",
2551 | "expand-brackets": "^0.1.4",
2552 | "extglob": "^0.3.1",
2553 | "filename-regex": "^2.0.0",
2554 | "is-extglob": "^1.0.0",
2555 | "is-glob": "^2.0.1",
2556 | "kind-of": "^3.0.2",
2557 | "normalize-path": "^2.0.1",
2558 | "object.omit": "^2.0.0",
2559 | "parse-glob": "^3.0.4",
2560 | "regex-cache": "^0.4.2"
2561 | }
2562 | },
2563 | "mime": {
2564 | "version": "1.4.1",
2565 | "resolved": "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz",
2566 | "integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==",
2567 | "dev": true
2568 | },
2569 | "mime-db": {
2570 | "version": "1.33.0",
2571 | "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.33.0.tgz",
2572 | "integrity": "sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==",
2573 | "dev": true
2574 | },
2575 | "mime-types": {
2576 | "version": "2.1.18",
2577 | "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.18.tgz",
2578 | "integrity": "sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==",
2579 | "dev": true,
2580 | "requires": {
2581 | "mime-db": "~1.33.0"
2582 | }
2583 | },
2584 | "minimatch": {
2585 | "version": "3.0.4",
2586 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
2587 | "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
2588 | "dev": true,
2589 | "requires": {
2590 | "brace-expansion": "^1.1.7"
2591 | }
2592 | },
2593 | "minimist": {
2594 | "version": "1.2.0",
2595 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
2596 | "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
2597 | "dev": true
2598 | },
2599 | "mkdirp": {
2600 | "version": "0.5.1",
2601 | "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
2602 | "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
2603 | "dev": true,
2604 | "requires": {
2605 | "minimist": "0.0.8"
2606 | },
2607 | "dependencies": {
2608 | "minimist": {
2609 | "version": "0.0.8",
2610 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
2611 | "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=",
2612 | "dev": true
2613 | }
2614 | }
2615 | },
2616 | "ms": {
2617 | "version": "2.0.0",
2618 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
2619 | "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
2620 | "dev": true
2621 | },
2622 | "nan": {
2623 | "version": "2.10.0",
2624 | "resolved": "https://registry.npmjs.org/nan/-/nan-2.10.0.tgz",
2625 | "integrity": "sha512-bAdJv7fBLhWC+/Bls0Oza+mvTaNQtP+1RyhhhvD95pgUJz6XM5IzgmxOkItJ9tkoCiplvAnXI1tNmmUD/eScyA==",
2626 | "dev": true,
2627 | "optional": true
2628 | },
2629 | "negotiator": {
2630 | "version": "0.6.1",
2631 | "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz",
2632 | "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=",
2633 | "dev": true
2634 | },
2635 | "normalize-package-data": {
2636 | "version": "2.4.0",
2637 | "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz",
2638 | "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==",
2639 | "dev": true,
2640 | "requires": {
2641 | "hosted-git-info": "^2.1.4",
2642 | "is-builtin-module": "^1.0.0",
2643 | "semver": "2 || 3 || 4 || 5",
2644 | "validate-npm-package-license": "^3.0.1"
2645 | }
2646 | },
2647 | "normalize-path": {
2648 | "version": "2.1.1",
2649 | "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz",
2650 | "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=",
2651 | "dev": true,
2652 | "requires": {
2653 | "remove-trailing-separator": "^1.0.1"
2654 | }
2655 | },
2656 | "npm-run-path": {
2657 | "version": "2.0.2",
2658 | "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz",
2659 | "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=",
2660 | "dev": true,
2661 | "requires": {
2662 | "path-key": "^2.0.0"
2663 | }
2664 | },
2665 | "number-is-nan": {
2666 | "version": "1.0.1",
2667 | "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz",
2668 | "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=",
2669 | "dev": true
2670 | },
2671 | "object-assign": {
2672 | "version": "4.1.1",
2673 | "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
2674 | "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
2675 | "dev": true
2676 | },
2677 | "object-component": {
2678 | "version": "0.0.3",
2679 | "resolved": "https://registry.npmjs.org/object-component/-/object-component-0.0.3.tgz",
2680 | "integrity": "sha1-8MaapQ78lbhmwYb0AKM3acsvEpE=",
2681 | "dev": true
2682 | },
2683 | "object-path": {
2684 | "version": "0.9.2",
2685 | "resolved": "https://registry.npmjs.org/object-path/-/object-path-0.9.2.tgz",
2686 | "integrity": "sha1-D9mnT8X60a45aLWGvaXGMr1sBaU=",
2687 | "dev": true
2688 | },
2689 | "object.omit": {
2690 | "version": "2.0.1",
2691 | "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz",
2692 | "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=",
2693 | "dev": true,
2694 | "requires": {
2695 | "for-own": "^0.1.4",
2696 | "is-extendable": "^0.1.1"
2697 | }
2698 | },
2699 | "on-finished": {
2700 | "version": "2.3.0",
2701 | "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
2702 | "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=",
2703 | "dev": true,
2704 | "requires": {
2705 | "ee-first": "1.1.1"
2706 | }
2707 | },
2708 | "once": {
2709 | "version": "1.4.0",
2710 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
2711 | "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
2712 | "dev": true,
2713 | "requires": {
2714 | "wrappy": "1"
2715 | }
2716 | },
2717 | "open": {
2718 | "version": "0.0.5",
2719 | "resolved": "https://registry.npmjs.org/open/-/open-0.0.5.tgz",
2720 | "integrity": "sha1-QsPhjslUZra/DcQvOilFw/DK2Pw=",
2721 | "dev": true
2722 | },
2723 | "openurl": {
2724 | "version": "1.1.1",
2725 | "resolved": "https://registry.npmjs.org/openurl/-/openurl-1.1.1.tgz",
2726 | "integrity": "sha1-OHW0sO96UsFW8NtB1GCduw+Us4c=",
2727 | "dev": true
2728 | },
2729 | "opn": {
2730 | "version": "4.0.2",
2731 | "resolved": "https://registry.npmjs.org/opn/-/opn-4.0.2.tgz",
2732 | "integrity": "sha1-erwi5kTf9jsKltWrfyeQwPAavJU=",
2733 | "dev": true,
2734 | "requires": {
2735 | "object-assign": "^4.0.1",
2736 | "pinkie-promise": "^2.0.0"
2737 | }
2738 | },
2739 | "os-locale": {
2740 | "version": "1.4.0",
2741 | "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz",
2742 | "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=",
2743 | "dev": true,
2744 | "requires": {
2745 | "lcid": "^1.0.0"
2746 | }
2747 | },
2748 | "os-tmpdir": {
2749 | "version": "1.0.2",
2750 | "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
2751 | "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=",
2752 | "dev": true
2753 | },
2754 | "p-finally": {
2755 | "version": "1.0.0",
2756 | "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz",
2757 | "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=",
2758 | "dev": true
2759 | },
2760 | "p-map": {
2761 | "version": "1.2.0",
2762 | "resolved": "https://registry.npmjs.org/p-map/-/p-map-1.2.0.tgz",
2763 | "integrity": "sha512-r6zKACMNhjPJMTl8KcFH4li//gkrXWfbD6feV8l6doRHlzljFWGJ2AP6iKaCJXyZmAUMOPtvbW7EXkbWO/pLEA==",
2764 | "dev": true
2765 | },
2766 | "package-json": {
2767 | "version": "4.0.1",
2768 | "resolved": "https://registry.npmjs.org/package-json/-/package-json-4.0.1.tgz",
2769 | "integrity": "sha1-iGmgQBJTZhxMTKPabCEh7VVfXu0=",
2770 | "dev": true,
2771 | "requires": {
2772 | "got": "^6.7.1",
2773 | "registry-auth-token": "^3.0.1",
2774 | "registry-url": "^3.0.3",
2775 | "semver": "^5.1.0"
2776 | }
2777 | },
2778 | "parse-glob": {
2779 | "version": "3.0.4",
2780 | "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz",
2781 | "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=",
2782 | "dev": true,
2783 | "requires": {
2784 | "glob-base": "^0.3.0",
2785 | "is-dotfile": "^1.0.0",
2786 | "is-extglob": "^1.0.0",
2787 | "is-glob": "^2.0.0"
2788 | }
2789 | },
2790 | "parse-json": {
2791 | "version": "2.2.0",
2792 | "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz",
2793 | "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=",
2794 | "dev": true,
2795 | "requires": {
2796 | "error-ex": "^1.2.0"
2797 | }
2798 | },
2799 | "parseqs": {
2800 | "version": "0.0.5",
2801 | "resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.5.tgz",
2802 | "integrity": "sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0=",
2803 | "dev": true,
2804 | "requires": {
2805 | "better-assert": "~1.0.0"
2806 | }
2807 | },
2808 | "parseuri": {
2809 | "version": "0.0.5",
2810 | "resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.5.tgz",
2811 | "integrity": "sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo=",
2812 | "dev": true,
2813 | "requires": {
2814 | "better-assert": "~1.0.0"
2815 | }
2816 | },
2817 | "parseurl": {
2818 | "version": "1.3.2",
2819 | "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.2.tgz",
2820 | "integrity": "sha1-/CidTtiZMRlGDBViUyYs3I3mW/M=",
2821 | "dev": true
2822 | },
2823 | "path-exists": {
2824 | "version": "2.1.0",
2825 | "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz",
2826 | "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=",
2827 | "dev": true,
2828 | "requires": {
2829 | "pinkie-promise": "^2.0.0"
2830 | }
2831 | },
2832 | "path-is-absolute": {
2833 | "version": "1.0.1",
2834 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
2835 | "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
2836 | "dev": true
2837 | },
2838 | "path-is-inside": {
2839 | "version": "1.0.2",
2840 | "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz",
2841 | "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=",
2842 | "dev": true
2843 | },
2844 | "path-key": {
2845 | "version": "2.0.1",
2846 | "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz",
2847 | "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=",
2848 | "dev": true
2849 | },
2850 | "path-parse": {
2851 | "version": "1.0.5",
2852 | "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz",
2853 | "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=",
2854 | "dev": true
2855 | },
2856 | "path-type": {
2857 | "version": "1.1.0",
2858 | "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz",
2859 | "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=",
2860 | "dev": true,
2861 | "requires": {
2862 | "graceful-fs": "^4.1.2",
2863 | "pify": "^2.0.0",
2864 | "pinkie-promise": "^2.0.0"
2865 | }
2866 | },
2867 | "pify": {
2868 | "version": "2.3.0",
2869 | "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
2870 | "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
2871 | "dev": true
2872 | },
2873 | "pinkie": {
2874 | "version": "2.0.4",
2875 | "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz",
2876 | "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=",
2877 | "dev": true
2878 | },
2879 | "pinkie-promise": {
2880 | "version": "2.0.1",
2881 | "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz",
2882 | "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=",
2883 | "dev": true,
2884 | "requires": {
2885 | "pinkie": "^2.0.0"
2886 | }
2887 | },
2888 | "plugin-typescript": {
2889 | "version": "8.0.0",
2890 | "resolved": "https://registry.npmjs.org/plugin-typescript/-/plugin-typescript-8.0.0.tgz",
2891 | "integrity": "sha512-9P25tRwjKgk1J1U1VMVJxHhL4OxouurN9otoQ2DJHDoZ8urxKS7G+e9rpiag3pbYpT7EcWqELEYAk/ssOOfQeg==",
2892 | "dev": true
2893 | },
2894 | "portscanner": {
2895 | "version": "2.1.1",
2896 | "resolved": "https://registry.npmjs.org/portscanner/-/portscanner-2.1.1.tgz",
2897 | "integrity": "sha1-6rtAnk3iSVD1oqUW01rnaTQ/u5Y=",
2898 | "dev": true,
2899 | "requires": {
2900 | "async": "1.5.2",
2901 | "is-number-like": "^1.0.3"
2902 | }
2903 | },
2904 | "prepend-http": {
2905 | "version": "1.0.4",
2906 | "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz",
2907 | "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=",
2908 | "dev": true
2909 | },
2910 | "preserve": {
2911 | "version": "0.2.0",
2912 | "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz",
2913 | "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=",
2914 | "dev": true
2915 | },
2916 | "process-nextick-args": {
2917 | "version": "1.0.7",
2918 | "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz",
2919 | "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=",
2920 | "dev": true
2921 | },
2922 | "pseudomap": {
2923 | "version": "1.0.2",
2924 | "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz",
2925 | "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=",
2926 | "dev": true
2927 | },
2928 | "qs": {
2929 | "version": "6.2.3",
2930 | "resolved": "https://registry.npmjs.org/qs/-/qs-6.2.3.tgz",
2931 | "integrity": "sha1-HPyyXBCpsrSDBT/zn138kjOQjP4=",
2932 | "dev": true
2933 | },
2934 | "randomatic": {
2935 | "version": "3.0.0",
2936 | "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.0.0.tgz",
2937 | "integrity": "sha512-VdxFOIEY3mNO5PtSRkkle/hPJDHvQhK21oa73K4yAc9qmp6N429gAyF1gZMOTMeS0/AYzaV/2Trcef+NaIonSA==",
2938 | "dev": true,
2939 | "requires": {
2940 | "is-number": "^4.0.0",
2941 | "kind-of": "^6.0.0",
2942 | "math-random": "^1.0.1"
2943 | },
2944 | "dependencies": {
2945 | "is-number": {
2946 | "version": "4.0.0",
2947 | "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz",
2948 | "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==",
2949 | "dev": true
2950 | },
2951 | "kind-of": {
2952 | "version": "6.0.2",
2953 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
2954 | "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==",
2955 | "dev": true
2956 | }
2957 | }
2958 | },
2959 | "range-parser": {
2960 | "version": "1.2.0",
2961 | "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz",
2962 | "integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4=",
2963 | "dev": true
2964 | },
2965 | "raw-body": {
2966 | "version": "2.3.3",
2967 | "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.3.3.tgz",
2968 | "integrity": "sha512-9esiElv1BrZoI3rCDuOuKCBRbuApGGaDPQfjSflGxdy4oyzqghxu6klEkkVIvBje+FF0BX9coEv8KqW6X/7njw==",
2969 | "dev": true,
2970 | "requires": {
2971 | "bytes": "3.0.0",
2972 | "http-errors": "1.6.3",
2973 | "iconv-lite": "0.4.23",
2974 | "unpipe": "1.0.0"
2975 | }
2976 | },
2977 | "rc": {
2978 | "version": "1.2.8",
2979 | "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz",
2980 | "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==",
2981 | "dev": true,
2982 | "requires": {
2983 | "deep-extend": "^0.6.0",
2984 | "ini": "~1.3.0",
2985 | "minimist": "^1.2.0",
2986 | "strip-json-comments": "~2.0.1"
2987 | }
2988 | },
2989 | "read-pkg": {
2990 | "version": "1.1.0",
2991 | "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz",
2992 | "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=",
2993 | "dev": true,
2994 | "requires": {
2995 | "load-json-file": "^1.0.0",
2996 | "normalize-package-data": "^2.3.2",
2997 | "path-type": "^1.0.0"
2998 | }
2999 | },
3000 | "read-pkg-up": {
3001 | "version": "1.0.1",
3002 | "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz",
3003 | "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=",
3004 | "dev": true,
3005 | "requires": {
3006 | "find-up": "^1.0.0",
3007 | "read-pkg": "^1.0.0"
3008 | }
3009 | },
3010 | "readable-stream": {
3011 | "version": "2.3.3",
3012 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz",
3013 | "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==",
3014 | "dev": true,
3015 | "requires": {
3016 | "core-util-is": "~1.0.0",
3017 | "inherits": "~2.0.3",
3018 | "isarray": "~1.0.0",
3019 | "process-nextick-args": "~1.0.6",
3020 | "safe-buffer": "~5.1.1",
3021 | "string_decoder": "~1.0.3",
3022 | "util-deprecate": "~1.0.1"
3023 | }
3024 | },
3025 | "readdirp": {
3026 | "version": "2.1.0",
3027 | "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.1.0.tgz",
3028 | "integrity": "sha1-TtCtBg3zBzMAxIRANz9y0cxkLXg=",
3029 | "dev": true,
3030 | "requires": {
3031 | "graceful-fs": "^4.1.2",
3032 | "minimatch": "^3.0.2",
3033 | "readable-stream": "^2.0.2",
3034 | "set-immediate-shim": "^1.0.1"
3035 | }
3036 | },
3037 | "redent": {
3038 | "version": "1.0.0",
3039 | "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz",
3040 | "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=",
3041 | "dev": true,
3042 | "requires": {
3043 | "indent-string": "^2.1.0",
3044 | "strip-indent": "^1.0.1"
3045 | }
3046 | },
3047 | "reflect-metadata": {
3048 | "version": "0.1.12",
3049 | "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.12.tgz",
3050 | "integrity": "sha512-n+IyV+nGz3+0q3/Yf1ra12KpCyi001bi4XFxSjbiWWjfqb52iTTtpGXmCCAOWWIAn9KEuFZKGqBERHmrtScZ3A==",
3051 | "dev": true
3052 | },
3053 | "regenerator-runtime": {
3054 | "version": "0.11.0",
3055 | "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.0.tgz",
3056 | "integrity": "sha512-/aA0kLeRb5N9K0d4fw7ooEbI+xDe+DKD499EQqygGqeS8N3xto15p09uY2xj7ixP81sNPXvRLnAQIqdVStgb1A==",
3057 | "dev": true
3058 | },
3059 | "regex-cache": {
3060 | "version": "0.4.4",
3061 | "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz",
3062 | "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==",
3063 | "dev": true,
3064 | "requires": {
3065 | "is-equal-shallow": "^0.1.3"
3066 | }
3067 | },
3068 | "registry-auth-token": {
3069 | "version": "3.3.2",
3070 | "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-3.3.2.tgz",
3071 | "integrity": "sha512-JL39c60XlzCVgNrO+qq68FoNb56w/m7JYvGR2jT5iR1xBrUA3Mfx5Twk5rqTThPmQKMWydGmq8oFtDlxfrmxnQ==",
3072 | "dev": true,
3073 | "requires": {
3074 | "rc": "^1.1.6",
3075 | "safe-buffer": "^5.0.1"
3076 | }
3077 | },
3078 | "registry-url": {
3079 | "version": "3.1.0",
3080 | "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-3.1.0.tgz",
3081 | "integrity": "sha1-PU74cPc93h138M+aOBQyRE4XSUI=",
3082 | "dev": true,
3083 | "requires": {
3084 | "rc": "^1.0.1"
3085 | }
3086 | },
3087 | "remove-trailing-separator": {
3088 | "version": "1.1.0",
3089 | "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz",
3090 | "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=",
3091 | "dev": true
3092 | },
3093 | "repeat-element": {
3094 | "version": "1.1.2",
3095 | "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz",
3096 | "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=",
3097 | "dev": true
3098 | },
3099 | "repeat-string": {
3100 | "version": "1.6.1",
3101 | "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz",
3102 | "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=",
3103 | "dev": true
3104 | },
3105 | "repeating": {
3106 | "version": "2.0.1",
3107 | "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz",
3108 | "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=",
3109 | "dev": true,
3110 | "requires": {
3111 | "is-finite": "^1.0.0"
3112 | }
3113 | },
3114 | "require-directory": {
3115 | "version": "2.1.1",
3116 | "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
3117 | "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=",
3118 | "dev": true
3119 | },
3120 | "require-main-filename": {
3121 | "version": "1.0.1",
3122 | "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz",
3123 | "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=",
3124 | "dev": true
3125 | },
3126 | "requires-port": {
3127 | "version": "1.0.0",
3128 | "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz",
3129 | "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=",
3130 | "dev": true
3131 | },
3132 | "resolve": {
3133 | "version": "1.5.0",
3134 | "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.5.0.tgz",
3135 | "integrity": "sha512-hgoSGrc3pjzAPHNBg+KnFcK2HwlHTs/YrAGUr6qgTVUZmXv1UEXXl0bZNBKMA9fud6lRYFdPGz0xXxycPzmmiw==",
3136 | "dev": true,
3137 | "requires": {
3138 | "path-parse": "^1.0.5"
3139 | }
3140 | },
3141 | "resp-modifier": {
3142 | "version": "6.0.2",
3143 | "resolved": "https://registry.npmjs.org/resp-modifier/-/resp-modifier-6.0.2.tgz",
3144 | "integrity": "sha1-sSTeXE+6/LpUH0j/pzlw9KpFa08=",
3145 | "dev": true,
3146 | "requires": {
3147 | "debug": "^2.2.0",
3148 | "minimatch": "^3.0.2"
3149 | }
3150 | },
3151 | "right-align": {
3152 | "version": "0.1.3",
3153 | "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz",
3154 | "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=",
3155 | "dev": true,
3156 | "requires": {
3157 | "align-text": "^0.1.1"
3158 | }
3159 | },
3160 | "rimraf": {
3161 | "version": "2.6.2",
3162 | "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz",
3163 | "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==",
3164 | "dev": true,
3165 | "requires": {
3166 | "glob": "^7.0.5"
3167 | }
3168 | },
3169 | "rollup": {
3170 | "version": "0.59.4",
3171 | "resolved": "https://registry.npmjs.org/rollup/-/rollup-0.59.4.tgz",
3172 | "integrity": "sha512-ISiMqq/aJa+57QxX2MRcvLESHdJ7wSavmr6U1euMr+6UgFe6KM+3QANrYy8LQofwhTC1I7BcAdlLnDiaODs1BA==",
3173 | "dev": true,
3174 | "requires": {
3175 | "@types/estree": "0.0.39",
3176 | "@types/node": "*"
3177 | }
3178 | },
3179 | "rollup-plugin-commonjs": {
3180 | "version": "9.1.3",
3181 | "resolved": "https://registry.npmjs.org/rollup-plugin-commonjs/-/rollup-plugin-commonjs-9.1.3.tgz",
3182 | "integrity": "sha512-g91ZZKZwTW7F7vL6jMee38I8coj/Q9GBdTmXXeFL7ldgC1Ky5WJvHgbKlAiXXTh762qvohhExwUgeQGFh9suGg==",
3183 | "dev": true,
3184 | "requires": {
3185 | "estree-walker": "^0.5.1",
3186 | "magic-string": "^0.22.4",
3187 | "resolve": "^1.5.0",
3188 | "rollup-pluginutils": "^2.0.1"
3189 | }
3190 | },
3191 | "rollup-plugin-filesize": {
3192 | "version": "2.0.0",
3193 | "resolved": "https://registry.npmjs.org/rollup-plugin-filesize/-/rollup-plugin-filesize-2.0.0.tgz",
3194 | "integrity": "sha512-ZFwmrHvfAXLyYLK9mgiFDCDg3wncX/Dx5XLA9KDBqVu+Gi3zH7hvpjho36QZyyAmYm8iEwv1KGOCMdCernzo7A==",
3195 | "dev": true,
3196 | "requires": {
3197 | "boxen": "^1.1.0",
3198 | "colors": "^1.1.2",
3199 | "deep-assign": "^2.0.0",
3200 | "filesize": "^3.5.6",
3201 | "gzip-size": "^3.0.0"
3202 | }
3203 | },
3204 | "rollup-plugin-node-resolve": {
3205 | "version": "3.3.0",
3206 | "resolved": "https://registry.npmjs.org/rollup-plugin-node-resolve/-/rollup-plugin-node-resolve-3.3.0.tgz",
3207 | "integrity": "sha512-9zHGr3oUJq6G+X0oRMYlzid9fXicBdiydhwGChdyeNRGPcN/majtegApRKHLR5drboUvEWU+QeUmGTyEZQs3WA==",
3208 | "dev": true,
3209 | "requires": {
3210 | "builtin-modules": "^2.0.0",
3211 | "is-module": "^1.0.0",
3212 | "resolve": "^1.1.6"
3213 | },
3214 | "dependencies": {
3215 | "builtin-modules": {
3216 | "version": "2.0.0",
3217 | "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-2.0.0.tgz",
3218 | "integrity": "sha512-3U5kUA5VPsRUA3nofm/BXX7GVHKfxz0hOBAPxXrIvHzlDRkQVqEn6yi8QJegxl4LzOHLdvb7XF5dVawa/VVYBg==",
3219 | "dev": true
3220 | }
3221 | }
3222 | },
3223 | "rollup-plugin-uglify": {
3224 | "version": "4.0.0",
3225 | "resolved": "https://registry.npmjs.org/rollup-plugin-uglify/-/rollup-plugin-uglify-4.0.0.tgz",
3226 | "integrity": "sha512-f6W31EQLzxSEYfN3x6/lyljHqXSoCjXKcTsnwz3evQvHgU1+qTzU2SE0SIG7tbAvaCewp2UaZ5x3k6nYsxOP9A==",
3227 | "dev": true,
3228 | "requires": {
3229 | "@babel/code-frame": "^7.0.0-beta.47",
3230 | "uglify-js": "^3.3.25"
3231 | },
3232 | "dependencies": {
3233 | "source-map": {
3234 | "version": "0.6.1",
3235 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
3236 | "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
3237 | "dev": true
3238 | },
3239 | "uglify-js": {
3240 | "version": "3.4.0",
3241 | "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.4.0.tgz",
3242 | "integrity": "sha512-Jcf5naPkX3rVPSQpRn9Vm6Rr572I1gTtR9LnqKgXjmOgfYQ/QS0V2WRStFR53Bdj520M66aCZqt9uzYXgtGrJQ==",
3243 | "dev": true,
3244 | "requires": {
3245 | "commander": "~2.15.0",
3246 | "source-map": "~0.6.1"
3247 | }
3248 | }
3249 | }
3250 | },
3251 | "rollup-pluginutils": {
3252 | "version": "2.3.0",
3253 | "resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.3.0.tgz",
3254 | "integrity": "sha512-xB6hsRsjdJdIYWEyYUJy/3ki5g69wrf0luHPGNK3ZSocV6HLNfio59l3dZ3TL4xUwEKgROhFi9jOCt6c5gfUWw==",
3255 | "dev": true,
3256 | "requires": {
3257 | "estree-walker": "^0.5.2",
3258 | "micromatch": "^2.3.11"
3259 | }
3260 | },
3261 | "rx": {
3262 | "version": "4.1.0",
3263 | "resolved": "https://registry.npmjs.org/rx/-/rx-4.1.0.tgz",
3264 | "integrity": "sha1-pfE/957zt0D+MKqAP7CfmIBdR4I=",
3265 | "dev": true
3266 | },
3267 | "rxjs": {
3268 | "version": "6.2.1",
3269 | "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.2.1.tgz",
3270 | "integrity": "sha512-OwMxHxmnmHTUpgO+V7dZChf3Tixf4ih95cmXjzzadULziVl/FKhHScGLj4goEw9weePVOH2Q0+GcCBUhKCZc/g==",
3271 | "dev": true,
3272 | "requires": {
3273 | "tslib": "^1.9.0"
3274 | }
3275 | },
3276 | "safe-buffer": {
3277 | "version": "5.1.1",
3278 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz",
3279 | "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==",
3280 | "dev": true
3281 | },
3282 | "safer-buffer": {
3283 | "version": "2.1.2",
3284 | "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
3285 | "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
3286 | "dev": true
3287 | },
3288 | "semver": {
3289 | "version": "5.4.1",
3290 | "resolved": "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz",
3291 | "integrity": "sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg==",
3292 | "dev": true
3293 | },
3294 | "semver-diff": {
3295 | "version": "2.1.0",
3296 | "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-2.1.0.tgz",
3297 | "integrity": "sha1-S7uEN8jTfksM8aaP1ybsbWRdbTY=",
3298 | "dev": true,
3299 | "requires": {
3300 | "semver": "^5.0.3"
3301 | }
3302 | },
3303 | "send": {
3304 | "version": "0.16.2",
3305 | "resolved": "https://registry.npmjs.org/send/-/send-0.16.2.tgz",
3306 | "integrity": "sha512-E64YFPUssFHEFBvpbbjr44NCLtI1AohxQ8ZSiJjQLskAdKuriYEP6VyGEsRDH8ScozGpkaX1BGvhanqCwkcEZw==",
3307 | "dev": true,
3308 | "requires": {
3309 | "debug": "2.6.9",
3310 | "depd": "~1.1.2",
3311 | "destroy": "~1.0.4",
3312 | "encodeurl": "~1.0.2",
3313 | "escape-html": "~1.0.3",
3314 | "etag": "~1.8.1",
3315 | "fresh": "0.5.2",
3316 | "http-errors": "~1.6.2",
3317 | "mime": "1.4.1",
3318 | "ms": "2.0.0",
3319 | "on-finished": "~2.3.0",
3320 | "range-parser": "~1.2.0",
3321 | "statuses": "~1.4.0"
3322 | },
3323 | "dependencies": {
3324 | "statuses": {
3325 | "version": "1.4.0",
3326 | "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz",
3327 | "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==",
3328 | "dev": true
3329 | }
3330 | }
3331 | },
3332 | "serve-index": {
3333 | "version": "1.8.0",
3334 | "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.8.0.tgz",
3335 | "integrity": "sha1-fF2WwT+xMRAfk8HFd0+FFqHnjTs=",
3336 | "dev": true,
3337 | "requires": {
3338 | "accepts": "~1.3.3",
3339 | "batch": "0.5.3",
3340 | "debug": "~2.2.0",
3341 | "escape-html": "~1.0.3",
3342 | "http-errors": "~1.5.0",
3343 | "mime-types": "~2.1.11",
3344 | "parseurl": "~1.3.1"
3345 | },
3346 | "dependencies": {
3347 | "debug": {
3348 | "version": "2.2.0",
3349 | "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz",
3350 | "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=",
3351 | "dev": true,
3352 | "requires": {
3353 | "ms": "0.7.1"
3354 | }
3355 | },
3356 | "http-errors": {
3357 | "version": "1.5.1",
3358 | "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.5.1.tgz",
3359 | "integrity": "sha1-eIwNLB3iyBuebowBhDtrl+uSB1A=",
3360 | "dev": true,
3361 | "requires": {
3362 | "inherits": "2.0.3",
3363 | "setprototypeof": "1.0.2",
3364 | "statuses": ">= 1.3.1 < 2"
3365 | }
3366 | },
3367 | "ms": {
3368 | "version": "0.7.1",
3369 | "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz",
3370 | "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=",
3371 | "dev": true
3372 | },
3373 | "setprototypeof": {
3374 | "version": "1.0.2",
3375 | "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.2.tgz",
3376 | "integrity": "sha1-gaVSFB7BBLiOic44MQOtXGZWTQg=",
3377 | "dev": true
3378 | }
3379 | }
3380 | },
3381 | "serve-static": {
3382 | "version": "1.13.2",
3383 | "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.13.2.tgz",
3384 | "integrity": "sha512-p/tdJrO4U387R9oMjb1oj7qSMaMfmOyd4j9hOFoxZe2baQszgHcSWjuya/CiT5kgZZKRudHNOA0pYXOl8rQ5nw==",
3385 | "dev": true,
3386 | "requires": {
3387 | "encodeurl": "~1.0.2",
3388 | "escape-html": "~1.0.3",
3389 | "parseurl": "~1.3.2",
3390 | "send": "0.16.2"
3391 | }
3392 | },
3393 | "server-destroy": {
3394 | "version": "1.0.1",
3395 | "resolved": "https://registry.npmjs.org/server-destroy/-/server-destroy-1.0.1.tgz",
3396 | "integrity": "sha1-8Tv5KOQrnD55OD5hzDmYtdFObN0=",
3397 | "dev": true
3398 | },
3399 | "set-blocking": {
3400 | "version": "2.0.0",
3401 | "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
3402 | "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=",
3403 | "dev": true
3404 | },
3405 | "set-immediate-shim": {
3406 | "version": "1.0.1",
3407 | "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz",
3408 | "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=",
3409 | "dev": true
3410 | },
3411 | "setprototypeof": {
3412 | "version": "1.1.0",
3413 | "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz",
3414 | "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==",
3415 | "dev": true
3416 | },
3417 | "shebang-command": {
3418 | "version": "1.2.0",
3419 | "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
3420 | "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=",
3421 | "dev": true,
3422 | "requires": {
3423 | "shebang-regex": "^1.0.0"
3424 | }
3425 | },
3426 | "shebang-regex": {
3427 | "version": "1.0.0",
3428 | "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz",
3429 | "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=",
3430 | "dev": true
3431 | },
3432 | "shell-quote": {
3433 | "version": "1.6.1",
3434 | "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.6.1.tgz",
3435 | "integrity": "sha1-9HgZSczkAmlxJ0MOo7PFR29IF2c=",
3436 | "dev": true,
3437 | "requires": {
3438 | "array-filter": "~0.0.0",
3439 | "array-map": "~0.0.0",
3440 | "array-reduce": "~0.0.0",
3441 | "jsonify": "~0.0.0"
3442 | }
3443 | },
3444 | "signal-exit": {
3445 | "version": "3.0.2",
3446 | "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz",
3447 | "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=",
3448 | "dev": true
3449 | },
3450 | "socket.io": {
3451 | "version": "2.0.4",
3452 | "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-2.0.4.tgz",
3453 | "integrity": "sha1-waRZDO/4fs8TxyZS8Eb3FrKeYBQ=",
3454 | "dev": true,
3455 | "requires": {
3456 | "debug": "~2.6.6",
3457 | "engine.io": "~3.1.0",
3458 | "socket.io-adapter": "~1.1.0",
3459 | "socket.io-client": "2.0.4",
3460 | "socket.io-parser": "~3.1.1"
3461 | }
3462 | },
3463 | "socket.io-adapter": {
3464 | "version": "1.1.1",
3465 | "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-1.1.1.tgz",
3466 | "integrity": "sha1-KoBeihTWNyEk3ZFZrUUC+MsH8Gs=",
3467 | "dev": true
3468 | },
3469 | "socket.io-client": {
3470 | "version": "2.0.4",
3471 | "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-2.0.4.tgz",
3472 | "integrity": "sha1-CRilUkBtxeVAs4Dc2Xr8SmQzL44=",
3473 | "dev": true,
3474 | "requires": {
3475 | "backo2": "1.0.2",
3476 | "base64-arraybuffer": "0.1.5",
3477 | "component-bind": "1.0.0",
3478 | "component-emitter": "1.2.1",
3479 | "debug": "~2.6.4",
3480 | "engine.io-client": "~3.1.0",
3481 | "has-cors": "1.1.0",
3482 | "indexof": "0.0.1",
3483 | "object-component": "0.0.3",
3484 | "parseqs": "0.0.5",
3485 | "parseuri": "0.0.5",
3486 | "socket.io-parser": "~3.1.1",
3487 | "to-array": "0.1.4"
3488 | }
3489 | },
3490 | "socket.io-parser": {
3491 | "version": "3.1.3",
3492 | "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.1.3.tgz",
3493 | "integrity": "sha512-g0a2HPqLguqAczs3dMECuA1RgoGFPyvDqcbaDEdCWY9g59kdUAz3YRmaJBNKXflrHNwB7Q12Gkf/0CZXfdHR7g==",
3494 | "dev": true,
3495 | "requires": {
3496 | "component-emitter": "1.2.1",
3497 | "debug": "~3.1.0",
3498 | "has-binary2": "~1.0.2",
3499 | "isarray": "2.0.1"
3500 | },
3501 | "dependencies": {
3502 | "debug": {
3503 | "version": "3.1.0",
3504 | "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
3505 | "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
3506 | "dev": true,
3507 | "requires": {
3508 | "ms": "2.0.0"
3509 | }
3510 | },
3511 | "isarray": {
3512 | "version": "2.0.1",
3513 | "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz",
3514 | "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=",
3515 | "dev": true
3516 | }
3517 | }
3518 | },
3519 | "source-map": {
3520 | "version": "0.5.7",
3521 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
3522 | "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
3523 | "dev": true
3524 | },
3525 | "source-map-explorer": {
3526 | "version": "1.5.0",
3527 | "resolved": "https://registry.npmjs.org/source-map-explorer/-/source-map-explorer-1.5.0.tgz",
3528 | "integrity": "sha512-skfca9IJvJKsI+J3sWFQ+hCqUDmZxhGgM20/L7PpNGRnQSVyXPYi7U0TDw0eNj5Yhtsm//psmNkxQmHuEJJ6FA==",
3529 | "dev": true,
3530 | "requires": {
3531 | "btoa": "^1.1.2",
3532 | "convert-source-map": "^1.1.1",
3533 | "docopt": "^0.6.2",
3534 | "glob": "^7.1.2",
3535 | "open": "0.0.5",
3536 | "source-map": "^0.5.1",
3537 | "temp": "^0.8.3",
3538 | "underscore": "^1.8.3"
3539 | },
3540 | "dependencies": {
3541 | "underscore": {
3542 | "version": "1.8.3",
3543 | "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.8.3.tgz",
3544 | "integrity": "sha1-Tz+1OxBuYJf8+ctBCfKl6b36UCI=",
3545 | "dev": true
3546 | }
3547 | }
3548 | },
3549 | "source-map-support": {
3550 | "version": "0.5.6",
3551 | "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.6.tgz",
3552 | "integrity": "sha512-N4KXEz7jcKqPf2b2vZF11lQIz9W5ZMuUcIOGj243lduidkf2fjkVKJS9vNxVWn3u/uxX38AcE8U9nnH9FPcq+g==",
3553 | "dev": true,
3554 | "requires": {
3555 | "buffer-from": "^1.0.0",
3556 | "source-map": "^0.6.0"
3557 | },
3558 | "dependencies": {
3559 | "source-map": {
3560 | "version": "0.6.1",
3561 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
3562 | "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
3563 | "dev": true
3564 | }
3565 | }
3566 | },
3567 | "spdx-correct": {
3568 | "version": "1.0.2",
3569 | "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz",
3570 | "integrity": "sha1-SzBz2TP/UfORLwOsVRlJikFQ20A=",
3571 | "dev": true,
3572 | "requires": {
3573 | "spdx-license-ids": "^1.0.2"
3574 | }
3575 | },
3576 | "spdx-expression-parse": {
3577 | "version": "1.0.4",
3578 | "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz",
3579 | "integrity": "sha1-m98vIOH0DtRH++JzJmGR/O1RYmw=",
3580 | "dev": true
3581 | },
3582 | "spdx-license-ids": {
3583 | "version": "1.2.2",
3584 | "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz",
3585 | "integrity": "sha1-yd96NCRZSt5r0RkA1ZZpbcBrrFc=",
3586 | "dev": true
3587 | },
3588 | "sprintf-js": {
3589 | "version": "1.0.3",
3590 | "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
3591 | "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=",
3592 | "dev": true
3593 | },
3594 | "statuses": {
3595 | "version": "1.3.1",
3596 | "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz",
3597 | "integrity": "sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4=",
3598 | "dev": true
3599 | },
3600 | "stream-throttle": {
3601 | "version": "0.1.3",
3602 | "resolved": "https://registry.npmjs.org/stream-throttle/-/stream-throttle-0.1.3.tgz",
3603 | "integrity": "sha1-rdV8jXzHOoFjDTHNVdOWHPr7qcM=",
3604 | "dev": true,
3605 | "requires": {
3606 | "commander": "^2.2.0",
3607 | "limiter": "^1.0.5"
3608 | }
3609 | },
3610 | "string-width": {
3611 | "version": "1.0.2",
3612 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
3613 | "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
3614 | "dev": true,
3615 | "requires": {
3616 | "code-point-at": "^1.0.0",
3617 | "is-fullwidth-code-point": "^1.0.0",
3618 | "strip-ansi": "^3.0.0"
3619 | }
3620 | },
3621 | "string_decoder": {
3622 | "version": "1.0.3",
3623 | "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz",
3624 | "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==",
3625 | "dev": true,
3626 | "requires": {
3627 | "safe-buffer": "~5.1.0"
3628 | }
3629 | },
3630 | "strip-ansi": {
3631 | "version": "3.0.1",
3632 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
3633 | "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
3634 | "dev": true,
3635 | "requires": {
3636 | "ansi-regex": "^2.0.0"
3637 | }
3638 | },
3639 | "strip-bom": {
3640 | "version": "2.0.0",
3641 | "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz",
3642 | "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=",
3643 | "dev": true,
3644 | "requires": {
3645 | "is-utf8": "^0.2.0"
3646 | }
3647 | },
3648 | "strip-eof": {
3649 | "version": "1.0.0",
3650 | "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz",
3651 | "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=",
3652 | "dev": true
3653 | },
3654 | "strip-indent": {
3655 | "version": "1.0.1",
3656 | "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz",
3657 | "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=",
3658 | "dev": true,
3659 | "requires": {
3660 | "get-stdin": "^4.0.1"
3661 | }
3662 | },
3663 | "strip-json-comments": {
3664 | "version": "2.0.1",
3665 | "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
3666 | "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=",
3667 | "dev": true
3668 | },
3669 | "subarg": {
3670 | "version": "1.0.0",
3671 | "resolved": "https://registry.npmjs.org/subarg/-/subarg-1.0.0.tgz",
3672 | "integrity": "sha1-9izxdYHplrSPyWVpn1TAauJouNI=",
3673 | "dev": true,
3674 | "requires": {
3675 | "minimist": "^1.1.0"
3676 | }
3677 | },
3678 | "supports-color": {
3679 | "version": "2.0.0",
3680 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
3681 | "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
3682 | "dev": true
3683 | },
3684 | "systemjs": {
3685 | "version": "0.21.4",
3686 | "resolved": "https://registry.npmjs.org/systemjs/-/systemjs-0.21.4.tgz",
3687 | "integrity": "sha512-l1O8boHjAIY5UG74Xk4B63LK9QbFxv/FkQa//GGGWaTeQoMhTsWnFrYwPWBScSF4xQFMO/+v9QB4i633h8Oytw==",
3688 | "dev": true
3689 | },
3690 | "temp": {
3691 | "version": "0.8.3",
3692 | "resolved": "https://registry.npmjs.org/temp/-/temp-0.8.3.tgz",
3693 | "integrity": "sha1-4Ma8TSa5AxJEEOT+2BEDAU38H1k=",
3694 | "dev": true,
3695 | "requires": {
3696 | "os-tmpdir": "^1.0.0",
3697 | "rimraf": "~2.2.6"
3698 | },
3699 | "dependencies": {
3700 | "rimraf": {
3701 | "version": "2.2.8",
3702 | "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz",
3703 | "integrity": "sha1-5Dm+Kq7jJzIZUnMPmaiSnk/FBYI=",
3704 | "dev": true
3705 | }
3706 | }
3707 | },
3708 | "term-size": {
3709 | "version": "1.2.0",
3710 | "resolved": "https://registry.npmjs.org/term-size/-/term-size-1.2.0.tgz",
3711 | "integrity": "sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk=",
3712 | "dev": true,
3713 | "requires": {
3714 | "execa": "^0.7.0"
3715 | }
3716 | },
3717 | "tfunk": {
3718 | "version": "3.1.0",
3719 | "resolved": "https://registry.npmjs.org/tfunk/-/tfunk-3.1.0.tgz",
3720 | "integrity": "sha1-OORBT8ZJd9h6/apy+sttKfgve1s=",
3721 | "dev": true,
3722 | "requires": {
3723 | "chalk": "^1.1.1",
3724 | "object-path": "^0.9.0"
3725 | }
3726 | },
3727 | "timed-out": {
3728 | "version": "4.0.1",
3729 | "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz",
3730 | "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=",
3731 | "dev": true
3732 | },
3733 | "to-array": {
3734 | "version": "0.1.4",
3735 | "resolved": "https://registry.npmjs.org/to-array/-/to-array-0.1.4.tgz",
3736 | "integrity": "sha1-F+bBH3PdTz10zaek/zI46a2b+JA=",
3737 | "dev": true
3738 | },
3739 | "trim-newlines": {
3740 | "version": "1.0.0",
3741 | "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz",
3742 | "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=",
3743 | "dev": true
3744 | },
3745 | "tsickle": {
3746 | "version": "0.29.0",
3747 | "resolved": "https://registry.npmjs.org/tsickle/-/tsickle-0.29.0.tgz",
3748 | "integrity": "sha512-JpID0Lv8/irRtPmqJJxb5fCwfZhjZeKmav9Zna7UjqVuJoSbI49Wue/c2PPybX1SbRrjl7bbI/JsCl0dSUJygA==",
3749 | "dev": true,
3750 | "requires": {
3751 | "minimist": "^1.2.0",
3752 | "mkdirp": "^0.5.1",
3753 | "source-map": "^0.6.0",
3754 | "source-map-support": "^0.5.0"
3755 | },
3756 | "dependencies": {
3757 | "source-map": {
3758 | "version": "0.6.1",
3759 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
3760 | "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
3761 | "dev": true
3762 | }
3763 | }
3764 | },
3765 | "tslib": {
3766 | "version": "1.9.1",
3767 | "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.1.tgz",
3768 | "integrity": "sha512-avfPS28HmGLLc2o4elcc2EIq2FcH++Yo5YxpBZi9Yw93BCTGFthI4HPE4Rpep6vSYQaK8e69PelM44tPj+RaQg==",
3769 | "dev": true
3770 | },
3771 | "tslint": {
3772 | "version": "5.10.0",
3773 | "resolved": "https://registry.npmjs.org/tslint/-/tslint-5.10.0.tgz",
3774 | "integrity": "sha1-EeJrzLiK+gLdDZlWyuPUVAtfVMM=",
3775 | "dev": true,
3776 | "requires": {
3777 | "babel-code-frame": "^6.22.0",
3778 | "builtin-modules": "^1.1.1",
3779 | "chalk": "^2.3.0",
3780 | "commander": "^2.12.1",
3781 | "diff": "^3.2.0",
3782 | "glob": "^7.1.1",
3783 | "js-yaml": "^3.7.0",
3784 | "minimatch": "^3.0.4",
3785 | "resolve": "^1.3.2",
3786 | "semver": "^5.3.0",
3787 | "tslib": "^1.8.0",
3788 | "tsutils": "^2.12.1"
3789 | },
3790 | "dependencies": {
3791 | "ansi-styles": {
3792 | "version": "3.2.1",
3793 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
3794 | "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
3795 | "dev": true,
3796 | "requires": {
3797 | "color-convert": "^1.9.0"
3798 | }
3799 | },
3800 | "chalk": {
3801 | "version": "2.4.1",
3802 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz",
3803 | "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==",
3804 | "dev": true,
3805 | "requires": {
3806 | "ansi-styles": "^3.2.1",
3807 | "escape-string-regexp": "^1.0.5",
3808 | "supports-color": "^5.3.0"
3809 | }
3810 | },
3811 | "supports-color": {
3812 | "version": "5.4.0",
3813 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz",
3814 | "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==",
3815 | "dev": true,
3816 | "requires": {
3817 | "has-flag": "^3.0.0"
3818 | }
3819 | }
3820 | }
3821 | },
3822 | "tsutils": {
3823 | "version": "2.27.1",
3824 | "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.27.1.tgz",
3825 | "integrity": "sha512-AE/7uzp32MmaHvNNFES85hhUDHFdFZp6OAiZcd6y4ZKKIg6orJTm8keYWBhIhrJQH3a4LzNKat7ZPXZt5aTf6w==",
3826 | "dev": true,
3827 | "requires": {
3828 | "tslib": "^1.8.1"
3829 | }
3830 | },
3831 | "typescript": {
3832 | "version": "2.7.2",
3833 | "resolved": "https://registry.npmjs.org/typescript/-/typescript-2.7.2.tgz",
3834 | "integrity": "sha512-p5TCYZDAO0m4G344hD+wx/LATebLWZNkkh2asWUFqSsD2OrDNhbAHuSjobrmsUmdzjJjEeZVU9g1h3O6vpstnw==",
3835 | "dev": true
3836 | },
3837 | "ua-parser-js": {
3838 | "version": "0.7.17",
3839 | "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.17.tgz",
3840 | "integrity": "sha512-uRdSdu1oA1rncCQL7sCj8vSyZkgtL7faaw9Tc9rZ3mGgraQ7+Pdx7w5mnOSF3gw9ZNG6oc+KXfkon3bKuROm0g==",
3841 | "dev": true
3842 | },
3843 | "uglify-js-harmony": {
3844 | "version": "2.7.7",
3845 | "resolved": "https://registry.npmjs.org/uglify-js-harmony/-/uglify-js-harmony-2.7.7.tgz",
3846 | "integrity": "sha1-akOZMhH6XaLx5YQW1h8ykyfu8zU=",
3847 | "dev": true,
3848 | "requires": {
3849 | "async": "~0.2.6",
3850 | "source-map": "~0.5.1",
3851 | "uglify-to-browserify": "~1.0.0",
3852 | "yargs": "~3.10.0"
3853 | },
3854 | "dependencies": {
3855 | "async": {
3856 | "version": "0.2.10",
3857 | "resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz",
3858 | "integrity": "sha1-trvgsGdLnXGXCMo43owjfLUmw9E=",
3859 | "dev": true
3860 | },
3861 | "cliui": {
3862 | "version": "2.1.0",
3863 | "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz",
3864 | "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=",
3865 | "dev": true,
3866 | "requires": {
3867 | "center-align": "^0.1.1",
3868 | "right-align": "^0.1.1",
3869 | "wordwrap": "0.0.2"
3870 | }
3871 | },
3872 | "window-size": {
3873 | "version": "0.1.0",
3874 | "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz",
3875 | "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=",
3876 | "dev": true
3877 | },
3878 | "yargs": {
3879 | "version": "3.10.0",
3880 | "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz",
3881 | "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=",
3882 | "dev": true,
3883 | "requires": {
3884 | "camelcase": "^1.0.2",
3885 | "cliui": "^2.1.0",
3886 | "decamelize": "^1.0.0",
3887 | "window-size": "0.1.0"
3888 | }
3889 | }
3890 | }
3891 | },
3892 | "uglify-to-browserify": {
3893 | "version": "1.0.2",
3894 | "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz",
3895 | "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=",
3896 | "dev": true
3897 | },
3898 | "ultron": {
3899 | "version": "1.1.1",
3900 | "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.1.1.tgz",
3901 | "integrity": "sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og==",
3902 | "dev": true
3903 | },
3904 | "unique-string": {
3905 | "version": "1.0.0",
3906 | "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-1.0.0.tgz",
3907 | "integrity": "sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo=",
3908 | "dev": true,
3909 | "requires": {
3910 | "crypto-random-string": "^1.0.0"
3911 | }
3912 | },
3913 | "universalify": {
3914 | "version": "0.1.1",
3915 | "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.1.tgz",
3916 | "integrity": "sha1-+nG63UQ3r0wUiEHjs7Fl+enlkLc=",
3917 | "dev": true
3918 | },
3919 | "unpipe": {
3920 | "version": "1.0.0",
3921 | "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
3922 | "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=",
3923 | "dev": true
3924 | },
3925 | "unzip-response": {
3926 | "version": "2.0.1",
3927 | "resolved": "https://registry.npmjs.org/unzip-response/-/unzip-response-2.0.1.tgz",
3928 | "integrity": "sha1-0vD3N9FrBhXnKmk17QQhRXLVb5c=",
3929 | "dev": true
3930 | },
3931 | "update-notifier": {
3932 | "version": "2.5.0",
3933 | "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-2.5.0.tgz",
3934 | "integrity": "sha512-gwMdhgJHGuj/+wHJJs9e6PcCszpxR1b236igrOkUofGhqJuG+amlIKwApH1IW1WWl7ovZxsX49lMBWLxSdm5Dw==",
3935 | "dev": true,
3936 | "requires": {
3937 | "boxen": "^1.2.1",
3938 | "chalk": "^2.0.1",
3939 | "configstore": "^3.0.0",
3940 | "import-lazy": "^2.1.0",
3941 | "is-ci": "^1.0.10",
3942 | "is-installed-globally": "^0.1.0",
3943 | "is-npm": "^1.0.0",
3944 | "latest-version": "^3.0.0",
3945 | "semver-diff": "^2.0.0",
3946 | "xdg-basedir": "^3.0.0"
3947 | },
3948 | "dependencies": {
3949 | "ansi-styles": {
3950 | "version": "3.2.1",
3951 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
3952 | "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
3953 | "dev": true,
3954 | "requires": {
3955 | "color-convert": "^1.9.0"
3956 | }
3957 | },
3958 | "chalk": {
3959 | "version": "2.4.1",
3960 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz",
3961 | "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==",
3962 | "dev": true,
3963 | "requires": {
3964 | "ansi-styles": "^3.2.1",
3965 | "escape-string-regexp": "^1.0.5",
3966 | "supports-color": "^5.3.0"
3967 | }
3968 | },
3969 | "supports-color": {
3970 | "version": "5.4.0",
3971 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz",
3972 | "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==",
3973 | "dev": true,
3974 | "requires": {
3975 | "has-flag": "^3.0.0"
3976 | }
3977 | }
3978 | }
3979 | },
3980 | "url-parse-lax": {
3981 | "version": "1.0.0",
3982 | "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz",
3983 | "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=",
3984 | "dev": true,
3985 | "requires": {
3986 | "prepend-http": "^1.0.1"
3987 | }
3988 | },
3989 | "util-deprecate": {
3990 | "version": "1.0.2",
3991 | "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
3992 | "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=",
3993 | "dev": true
3994 | },
3995 | "utils-merge": {
3996 | "version": "1.0.0",
3997 | "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.0.tgz",
3998 | "integrity": "sha1-ApT7kiu5N1FTVBxPcJYjHyh8ivg=",
3999 | "dev": true
4000 | },
4001 | "uws": {
4002 | "version": "9.14.0",
4003 | "resolved": "https://registry.npmjs.org/uws/-/uws-9.14.0.tgz",
4004 | "integrity": "sha512-HNMztPP5A1sKuVFmdZ6BPVpBQd5bUjNC8EFMFiICK+oho/OQsAJy5hnIx4btMHiOk8j04f/DbIlqnEZ9d72dqg==",
4005 | "dev": true,
4006 | "optional": true
4007 | },
4008 | "validate-npm-package-license": {
4009 | "version": "3.0.1",
4010 | "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz",
4011 | "integrity": "sha1-KAS6vnEq0zeUWaz74kdGqywwP7w=",
4012 | "dev": true,
4013 | "requires": {
4014 | "spdx-correct": "~1.0.0",
4015 | "spdx-expression-parse": "~1.0.0"
4016 | }
4017 | },
4018 | "vlq": {
4019 | "version": "0.2.3",
4020 | "resolved": "https://registry.npmjs.org/vlq/-/vlq-0.2.3.tgz",
4021 | "integrity": "sha512-DRibZL6DsNhIgYQ+wNdWDL2SL3bKPlVrRiBqV5yuMm++op8W4kGFtaQfCs4KEJn0wBZcHVHJ3eoywX8983k1ow==",
4022 | "dev": true
4023 | },
4024 | "which": {
4025 | "version": "1.3.1",
4026 | "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
4027 | "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
4028 | "dev": true,
4029 | "requires": {
4030 | "isexe": "^2.0.0"
4031 | }
4032 | },
4033 | "which-module": {
4034 | "version": "1.0.0",
4035 | "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz",
4036 | "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=",
4037 | "dev": true
4038 | },
4039 | "widest-line": {
4040 | "version": "2.0.0",
4041 | "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-2.0.0.tgz",
4042 | "integrity": "sha1-AUKk6KJD+IgsAjOqDgKBqnYVInM=",
4043 | "dev": true,
4044 | "requires": {
4045 | "string-width": "^2.1.1"
4046 | },
4047 | "dependencies": {
4048 | "ansi-regex": {
4049 | "version": "3.0.0",
4050 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
4051 | "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
4052 | "dev": true
4053 | },
4054 | "is-fullwidth-code-point": {
4055 | "version": "2.0.0",
4056 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
4057 | "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
4058 | "dev": true
4059 | },
4060 | "string-width": {
4061 | "version": "2.1.1",
4062 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
4063 | "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
4064 | "dev": true,
4065 | "requires": {
4066 | "is-fullwidth-code-point": "^2.0.0",
4067 | "strip-ansi": "^4.0.0"
4068 | }
4069 | },
4070 | "strip-ansi": {
4071 | "version": "4.0.0",
4072 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
4073 | "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
4074 | "dev": true,
4075 | "requires": {
4076 | "ansi-regex": "^3.0.0"
4077 | }
4078 | }
4079 | }
4080 | },
4081 | "window-size": {
4082 | "version": "0.2.0",
4083 | "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.2.0.tgz",
4084 | "integrity": "sha1-tDFbtCFKPXBY6+7okuE/ok2YsHU=",
4085 | "dev": true
4086 | },
4087 | "wordwrap": {
4088 | "version": "0.0.2",
4089 | "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz",
4090 | "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=",
4091 | "dev": true
4092 | },
4093 | "wrap-ansi": {
4094 | "version": "2.1.0",
4095 | "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz",
4096 | "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=",
4097 | "dev": true,
4098 | "requires": {
4099 | "string-width": "^1.0.1",
4100 | "strip-ansi": "^3.0.1"
4101 | }
4102 | },
4103 | "wrappy": {
4104 | "version": "1.0.2",
4105 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
4106 | "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
4107 | "dev": true
4108 | },
4109 | "write-file-atomic": {
4110 | "version": "2.3.0",
4111 | "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.3.0.tgz",
4112 | "integrity": "sha512-xuPeK4OdjWqtfi59ylvVL0Yn35SF3zgcAcv7rBPFHVaEapaDr4GdGgm3j7ckTwH9wHL7fGmgfAnb0+THrHb8tA==",
4113 | "dev": true,
4114 | "requires": {
4115 | "graceful-fs": "^4.1.11",
4116 | "imurmurhash": "^0.1.4",
4117 | "signal-exit": "^3.0.2"
4118 | }
4119 | },
4120 | "ws": {
4121 | "version": "3.3.3",
4122 | "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz",
4123 | "integrity": "sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==",
4124 | "dev": true,
4125 | "requires": {
4126 | "async-limiter": "~1.0.0",
4127 | "safe-buffer": "~5.1.0",
4128 | "ultron": "~1.1.0"
4129 | }
4130 | },
4131 | "xdg-basedir": {
4132 | "version": "3.0.0",
4133 | "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-3.0.0.tgz",
4134 | "integrity": "sha1-SWsswQnsqNus/i3HK2A8F8WHCtQ=",
4135 | "dev": true
4136 | },
4137 | "xmlhttprequest-ssl": {
4138 | "version": "1.5.5",
4139 | "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz",
4140 | "integrity": "sha1-wodrBhaKrcQOV9l+gRkayPQ5iz4=",
4141 | "dev": true
4142 | },
4143 | "y18n": {
4144 | "version": "3.2.1",
4145 | "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz",
4146 | "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=",
4147 | "dev": true
4148 | },
4149 | "yallist": {
4150 | "version": "2.1.2",
4151 | "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz",
4152 | "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=",
4153 | "dev": true
4154 | },
4155 | "yargs": {
4156 | "version": "6.4.0",
4157 | "resolved": "https://registry.npmjs.org/yargs/-/yargs-6.4.0.tgz",
4158 | "integrity": "sha1-gW4ahm1VmMzzTlWW3c4i2S2kkNQ=",
4159 | "dev": true,
4160 | "requires": {
4161 | "camelcase": "^3.0.0",
4162 | "cliui": "^3.2.0",
4163 | "decamelize": "^1.1.1",
4164 | "get-caller-file": "^1.0.1",
4165 | "os-locale": "^1.4.0",
4166 | "read-pkg-up": "^1.0.1",
4167 | "require-directory": "^2.1.1",
4168 | "require-main-filename": "^1.0.1",
4169 | "set-blocking": "^2.0.0",
4170 | "string-width": "^1.0.2",
4171 | "which-module": "^1.0.0",
4172 | "window-size": "^0.2.0",
4173 | "y18n": "^3.2.1",
4174 | "yargs-parser": "^4.1.0"
4175 | },
4176 | "dependencies": {
4177 | "camelcase": {
4178 | "version": "3.0.0",
4179 | "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz",
4180 | "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=",
4181 | "dev": true
4182 | }
4183 | }
4184 | },
4185 | "yargs-parser": {
4186 | "version": "4.2.1",
4187 | "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-4.2.1.tgz",
4188 | "integrity": "sha1-KczqwNxPA8bIe0qfIX3RjJ90hxw=",
4189 | "dev": true,
4190 | "requires": {
4191 | "camelcase": "^3.0.0"
4192 | },
4193 | "dependencies": {
4194 | "camelcase": {
4195 | "version": "3.0.0",
4196 | "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz",
4197 | "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=",
4198 | "dev": true
4199 | }
4200 | }
4201 | },
4202 | "yeast": {
4203 | "version": "0.1.2",
4204 | "resolved": "https://registry.npmjs.org/yeast/-/yeast-0.1.2.tgz",
4205 | "integrity": "sha1-AI4G2AlDIMNy28L47XagymyKxBk=",
4206 | "dev": true
4207 | },
4208 | "zone.js": {
4209 | "version": "0.8.26",
4210 | "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.8.26.tgz",
4211 | "integrity": "sha512-W9Nj+UmBJG251wkCacIkETgra4QgBo/vgoEkb4a2uoLzpQG7qF9nzwoLXWU5xj3Fg2mxGvEDh47mg24vXccYjA==",
4212 | "dev": true
4213 | }
4214 | }
4215 | }
4216 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "od-virtualscroll",
3 | "version": "1.1.0",
4 | "description": "Observable-based virtual scroll implementation in Angular",
5 | "homepage": "https://dinony.github.io/od-vsstatic/",
6 | "main": "dist/bundles/od-virtualscroll.umd.js",
7 | "typings": "dist/fesm15/od-virtualscroll.d.ts",
8 | "module": "dist/fesm5/od-virtualscroll.js",
9 | "es2015": "dist/fesm15/od-virtualscroll.js",
10 | "scripts": {
11 | "build:es5": "ngc -p config/tsconfig.es5.json && npm run build:fesm5",
12 | "build:fesm5": "rollup dist/es5/od-virtualscroll.js -o dist/fesm5/od-virtualscroll.js -f es && cpx 'dist/es5/*.d.ts' 'dist/fesm5' && cpx 'dist/es5/*.metadata.json' 'dist/fesm5'",
13 | "build:es2015": "ngc -p config/tsconfig.es2015.json && npm run build:fesm15",
14 | "build:fesm15": "rollup dist/es2015/od-virtualscroll.js -o dist/fesm15/od-virtualscroll.js -f es && cpx 'dist/es2015/*.d.ts' 'dist/fesm15' && cpx 'dist/es2015/*.metadata.json' 'dist/fesm15'",
15 | "build:bundle": "rollup -c config/rollup.config.js",
16 | "build": "npm run build:es5 && npm run build:es2015 && npm run build:bundle",
17 | "buildDemo:es2015": "cpx config/tsconfig-demo.es2015.json ./ && ngc -p tsconfig-demo.es2015.json && del-cli ./tsconfig-demo.es2015.json",
18 | "buildDemo:bundle": "rollup -c config/rollup-demo.config.js",
19 | "buildDemo": "npm run buildDemo:es2015 && npm run buildDemo:bundle && rimraf buildTmp",
20 | "buildAll": "npm run build && npm run buildDemo",
21 | "cleanAll": "rimraf dist && rimraf build && rimraf buildTmp",
22 | "serve": "node tools/browserSync.js",
23 | "tslint": "tslint -c tslint.json -p tsconfig.json -t stylish",
24 | "explore": "source-map-explorer build/build.gen.js"
25 | },
26 | "keywords": [
27 | "angular",
28 | "rxjs",
29 | "observable",
30 | "scroll",
31 | "scroll component",
32 | "scrolling",
33 | "virtual scroll",
34 | "virtual scrolling",
35 | "infinite scroll",
36 | "infinite scrolling",
37 | "efficient scroll",
38 | "efficient scrolling",
39 | "tiles",
40 | "tiling",
41 | "tile view"
42 | ],
43 | "repository": {
44 | "type": "git",
45 | "url": "https://github.com/dinony/od-virtualscroll.git"
46 | },
47 | "bugs": {
48 | "url": "https://github.com/dinony/od-virtualscroll/issues"
49 | },
50 | "author": "Onur Dogangönül
",
51 | "maintainers": [
52 | {
53 | "name": "Onur Dogangönül",
54 | "email": "contact@dinony.com"
55 | }
56 | ],
57 | "files": [
58 | "dist"
59 | ],
60 | "engines": {
61 | "node": ">= 6.10.3"
62 | },
63 | "license": "MIT",
64 | "peerDependencies": {
65 | "@angular/core": ">= 6",
66 | "@angular/common": ">= 6",
67 | "core-js": "^2.5.4",
68 | "rxjs": "^6.0.0",
69 | "zone.js": "^0.8.26"
70 | },
71 | "devDependencies": {
72 | "@angular/common": "^6.0.5",
73 | "@angular/compiler": "^6.0.5",
74 | "@angular/compiler-cli": "^6.0.5",
75 | "@angular/core": "^6.0.5",
76 | "@angular/platform-browser": "^6.0.5",
77 | "@angular/platform-browser-dynamic": "^6.0.5",
78 | "browser-sync": "^2.24.4",
79 | "core-js": "^2.5.4",
80 | "cpx": "^1.5.0",
81 | "del-cli": "^1.1.0",
82 | "plugin-typescript": "^8.0.0",
83 | "rimraf": "^2.6.1",
84 | "rollup": "^0.60.7",
85 | "rollup-plugin-commonjs": "^9.1.3",
86 | "rollup-plugin-filesize": "^2.0.0",
87 | "rollup-plugin-node-resolve": "^3.3.0",
88 | "rollup-plugin-uglify": "^4.0.0",
89 | "rxjs": "^6.2.1",
90 | "source-map-explorer": "^1.3.3",
91 | "systemjs": "^0.21.4",
92 | "tslint": "^5.10.0",
93 | "typescript": "~2.7.2",
94 | "uglify-js-harmony": "^2.7.5",
95 | "zone.js": "^0.8.26"
96 | }
97 | }
98 |
--------------------------------------------------------------------------------
/src/api.ts:
--------------------------------------------------------------------------------
1 | export {VirtualScrollModule} from './virtualScroll.module'
2 |
3 | // Re-export some types that consumers might need
4 | export {IVirtualScrollOptions, IVirtualScrollWindow} from './basic'
5 |
6 | export {ScrollObservableService} from './service'
7 |
8 | export {VirtualRowComponent} from './virtualRow.component'
9 |
10 | export {ScrollItem} from './scrollItem'
11 |
12 | export {
13 | ICmd, IRowRenderCmd, ItemRenderCmd,
14 | CreateRowCmd, RemoveRowCmd, ShiftRowCmd,
15 | CreateItemCmd, UpdateItemCmd, RemoveItemCmd,
16 | CmdOption
17 | } from './cmd'
18 |
19 | export {
20 | FocusItemCmd, FocusRowCmd, IUserCmd,
21 | SetScrollTopCmd, UserCmdOption
22 | } from './userCmd'
23 |
--------------------------------------------------------------------------------
/src/basic.ts:
--------------------------------------------------------------------------------
1 | export interface IVirtualScrollOptions {
2 | itemWidth?: number
3 | itemHeight: number
4 | numAdditionalRows?: number
5 | numLimitColumns?: number
6 | }
7 |
8 | export interface IVirtualScrollContainer {
9 | width: number
10 | height: number
11 | }
12 |
13 | export interface IVirtualScrollMeasurement {
14 | containerWidth: number
15 | containerHeight: number
16 | itemWidth?: number
17 | itemHeight: number
18 | numPossibleRows: number
19 | numPossibleColumns: number
20 | numPossibleItems: number
21 | }
22 |
23 | export interface IVirtualScrollWindow {
24 | dataTimestamp: number
25 | containerWidth: number
26 | containerHeight: number
27 | itemWidth?: number
28 | itemHeight: number
29 | numVirtualItems: number
30 | numVirtualRows: number
31 | virtualHeight: number
32 | numAdditionalRows: number
33 | scrollTop: number
34 | scrollPercentage: number
35 | numActualRows: number
36 | numActualColumns: number
37 | actualHeight: number
38 | numActualItems: number
39 | visibleStartRow: number
40 | visibleEndRow: number
41 | }
42 |
43 | export interface IVirtualScrollState {
44 | measurement: IVirtualScrollMeasurement|null
45 | scrollWindow: IVirtualScrollWindow|null
46 | rows: {}
47 | needsCheck: boolean
48 | }
49 |
--------------------------------------------------------------------------------
/src/cmd.ts:
--------------------------------------------------------------------------------
1 | /* tslint:disable:max-classes-per-file */
2 | import {IVirtualScrollWindow} from './basic'
3 |
4 | export enum CmdOption {
5 | Noop,
6 | CreateRow,
7 | ShiftRow,
8 | RemoveRow,
9 | CreateItem,
10 | UpdateItem,
11 | RemoveItem
12 | }
13 |
14 | export interface ICmd {
15 | cmdType: CmdOption
16 | }
17 |
18 | export interface IRowRenderCmd extends ICmd {
19 | virtualIndex: number
20 | actualIndex: number
21 | }
22 |
23 | export interface ItemRenderCmd extends IRowRenderCmd {
24 | columnIndex: number
25 | dataIndex: number
26 | }
27 |
28 | export class NoopCmd implements ICmd {
29 | cmdType = CmdOption.Noop
30 | }
31 |
32 | export class CreateRowCmd implements IRowRenderCmd {
33 | cmdType = CmdOption.CreateRow
34 | constructor(
35 | public virtualIndex: number,
36 | public actualIndex: number,
37 | public initShift: number) {}
38 | }
39 |
40 | export class RemoveRowCmd implements IRowRenderCmd {
41 | cmdType = CmdOption.RemoveRow
42 | constructor(
43 | public virtualIndex: number,
44 | public actualIndex: number) {}
45 | }
46 |
47 | export class ShiftRowCmd implements IRowRenderCmd {
48 | cmdType = CmdOption.ShiftRow
49 | constructor(
50 | public virtualIndex: number,
51 | public actualIndex: number,
52 | public shift: number) {}
53 | }
54 |
55 | export class CreateItemCmd implements ItemRenderCmd {
56 | cmdType = CmdOption.CreateItem
57 | constructor(
58 | public virtualIndex: number,
59 | public actualIndex: number,
60 | public columnIndex: number,
61 | public dataIndex: number) {}
62 | }
63 |
64 | export class UpdateItemCmd implements ItemRenderCmd {
65 | cmdType = CmdOption.UpdateItem
66 | constructor(
67 | public virtualIndex: number,
68 | public actualIndex: number,
69 | public columnIndex: number,
70 | public dataIndex: number) {}
71 | }
72 |
73 | export class RemoveItemCmd implements ItemRenderCmd {
74 | cmdType = CmdOption.RemoveItem
75 | constructor(
76 | public virtualIndex: number,
77 | public actualIndex: number,
78 | public columnIndex: number,
79 | public dataIndex: number) {}
80 | }
81 |
--------------------------------------------------------------------------------
/src/enumerate.ts:
--------------------------------------------------------------------------------
1 | export function forRowsIn(start: number, end: number, numActualRows: number, iteratee: (virtualRowIndex: number, actualRowIndex: number) => void) {
2 | for(let r = start; r <= end; r++) {
3 | iteratee(r, r % numActualRows)
4 | }
5 | }
6 |
7 | export function forColumnsIn(start: number, end: number, row: number, numColumns: number, numTotalItems: number, iteratee: (columnIndex: number, dataIndex: number) => void) {
8 | const getDataIndex = (c: number) => row * numColumns + c
9 |
10 | for(let c = start, dataIndx = getDataIndex(c); c <= end && dataIndx < numTotalItems; c++, dataIndx = getDataIndex(c)) {
11 | iteratee(c, dataIndx)
12 | }
13 | }
14 |
15 | export function forColumnsInWithPrev(start: number, end: number, row: number, numColumns: number, prevRow: number, numPrevColumns: number, iteratee: (columnIndex: number, dataIndex: number, prevDataIndex: number) => void) {
16 | for(let c = start; c <= end; c++) {
17 | iteratee(c, row * numColumns + c, prevRow * numPrevColumns + c)
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/src/measurement.ts:
--------------------------------------------------------------------------------
1 | import {IVirtualScrollContainer, IVirtualScrollMeasurement, IVirtualScrollOptions, IVirtualScrollWindow} from './basic'
2 |
3 | export function calcMeasure(rect: IVirtualScrollContainer, options: IVirtualScrollOptions): IVirtualScrollMeasurement {
4 | const numPossibleRows = Math.ceil(rect.height / options.itemHeight)
5 | const numPossibleColumns = options.itemWidth !== undefined ? Math.floor(rect.width / options.itemWidth) : 0
6 |
7 | return {
8 | containerHeight: rect.height,
9 | containerWidth: rect.width,
10 | itemHeight: options.itemHeight,
11 | itemWidth: options.itemWidth,
12 | numPossibleColumns,
13 | numPossibleItems: numPossibleRows * numPossibleColumns,
14 | numPossibleRows,
15 | }
16 | }
17 |
18 | const clamp = (min: number, max: number, value: number) => Math.min(max, Math.max(min, value))
19 |
20 | export function calcScrollWindow(scrollTop: number, measure: IVirtualScrollMeasurement, numItems: number, dataTimestamp: number, options: IVirtualScrollOptions): IVirtualScrollWindow {
21 | const numVirtualItems = numItems
22 |
23 | const requestedColumns = options.numLimitColumns !== undefined ? options.numLimitColumns : measure.numPossibleColumns
24 | const numActualColumns = Math.min(numVirtualItems, requestedColumns)
25 |
26 | const numVirtualRows = Math.ceil(numVirtualItems / Math.max(1, numActualColumns))
27 | const virtualHeight = numVirtualRows * measure.itemHeight
28 | const numAdditionalRows = options.numAdditionalRows !== undefined ? options.numAdditionalRows : 1
29 | const requestedRows = measure.numPossibleRows + numAdditionalRows
30 | const numActualRows = numActualColumns > 0 ? Math.min(requestedRows, numVirtualRows) : 0
31 |
32 | const actualHeight = numActualRows * measure.itemHeight
33 |
34 | const visibleEndRow = numActualColumns > 0 && numActualRows > 0 ? clamp(0, numVirtualRows - 1, Math.floor((scrollTop + actualHeight) / measure.itemHeight) - 1) : -1
35 |
36 | return {
37 | actualHeight,
38 | containerHeight: measure.containerHeight,
39 | containerWidth: measure.containerWidth,
40 | dataTimestamp,
41 | itemHeight: measure.itemHeight,
42 | itemWidth: measure.itemWidth,
43 | numActualColumns,
44 | numActualItems: Math.min(numActualRows * numActualColumns, numVirtualItems),
45 | numActualRows,
46 | numAdditionalRows,
47 | numVirtualItems,
48 | numVirtualRows,
49 | scrollPercentage: clamp(0, 100, scrollTop / (virtualHeight - measure.containerHeight)),
50 | scrollTop,
51 | virtualHeight,
52 | visibleEndRow,
53 | visibleStartRow: visibleEndRow !== -1 ? Math.max(0, visibleEndRow - numActualRows + 1) : -1
54 | }
55 | }
56 |
57 | export function getMaxIndex(scrollWin: IVirtualScrollWindow) {
58 | return scrollWin.visibleEndRow * scrollWin.numActualColumns + scrollWin.numActualColumns - 1
59 | }
60 |
--------------------------------------------------------------------------------
/src/scrollItem.ts:
--------------------------------------------------------------------------------
1 | export class ScrollItem {
2 | constructor(public $implicit: any, public row: number, public column: number) {}
3 | }
4 |
--------------------------------------------------------------------------------
/src/service.ts:
--------------------------------------------------------------------------------
1 | import {ComponentRef, EmbeddedViewRef, Injectable} from '@angular/core'
2 |
3 | import {Observable, ReplaySubject, Subject} from 'rxjs'
4 |
5 | import {IVirtualScrollWindow} from './basic'
6 |
7 | import {
8 | CreateItemCmd, CreateRowCmd, RemoveItemCmd,
9 | RemoveRowCmd, ShiftRowCmd, UpdateItemCmd
10 | } from './cmd'
11 |
12 | import {ScrollItem} from './scrollItem'
13 | import {VirtualRowComponent} from './virtualRow.component'
14 |
15 | @Injectable()
16 | export class ScrollObservableService {
17 | private _scrollWin = new ReplaySubject<[IVirtualScrollWindow]>(1)
18 | scrollWin$ = this._scrollWin.asObservable()
19 | emitScrollWin = (e: [IVirtualScrollWindow]) => this._scrollWin.next(e)
20 |
21 | private _createRow = new Subject<[CreateRowCmd, ComponentRef]>()
22 | createRow$ = this._createRow.asObservable()
23 | emitCreateRow = (e: [CreateRowCmd, ComponentRef]) => this._createRow.next(e)
24 |
25 | private _removeRow = new Subject<[RemoveRowCmd, ComponentRef]>()
26 | removeRow$ = this._removeRow.asObservable()
27 | emitRemoveRow = (e: [RemoveRowCmd, ComponentRef]) => this._removeRow.next(e)
28 |
29 | private _shiftRow = new Subject<[ShiftRowCmd, ComponentRef]>()
30 | shiftRow$ = this._shiftRow.asObservable()
31 | emitShiftRow = (e: [ShiftRowCmd, ComponentRef]) => this._shiftRow.next(e)
32 |
33 | private _createItem = new Subject<[CreateItemCmd, ScrollItem, EmbeddedViewRef]>()
34 | createItem$ = this._createItem.asObservable()
35 | emitCreateItem = (e: [CreateItemCmd, ScrollItem, EmbeddedViewRef]) => this._createItem.next(e)
36 |
37 | private _updateItem = new Subject<[UpdateItemCmd, ScrollItem, EmbeddedViewRef]>()
38 | updateItem$ = this._updateItem.asObservable()
39 | emitUpdateItem = (e: [UpdateItemCmd, ScrollItem, EmbeddedViewRef]) => this._updateItem.next(e)
40 |
41 | private _removeItem = new Subject<[RemoveItemCmd]>()
42 | removeItem$ = this._removeItem.asObservable()
43 | emitRemoveItem = (e: [RemoveItemCmd]) => this._removeItem.next(e)
44 | }
45 |
--------------------------------------------------------------------------------
/src/set.ts:
--------------------------------------------------------------------------------
1 | export function isEmpty(obj: {}) {
2 | return Object.keys(obj).length === 0
3 | }
4 |
5 | export function intersection(a: {}, b: {}) {
6 | const result = {}
7 | for(const key in a) {
8 | if(b[key] !== undefined) {
9 | result[key] = {left: a[key], right: b[key]}
10 | }
11 | }
12 | return result
13 | }
14 |
15 | export function difference(a: {}, b: {}) {
16 | const result = {}
17 | for(const key in a) {
18 | if(b[key] === undefined) {
19 | result[key] = a[key]
20 | }
21 | }
22 | return result
23 | }
24 |
--------------------------------------------------------------------------------
/src/userCmd.ts:
--------------------------------------------------------------------------------
1 | /* tslint:disable:max-classes-per-file */
2 | export enum UserCmdOption {
3 | SetScrollTop,
4 | FocusRow,
5 | FocusItem
6 | }
7 |
8 | export interface IUserCmd {
9 | cmdType: UserCmdOption
10 | }
11 |
12 | export class SetScrollTopCmd implements IUserCmd {
13 | cmdType = UserCmdOption.SetScrollTop
14 | constructor(public value: number) {}
15 | }
16 |
17 | export class FocusRowCmd implements IUserCmd {
18 | cmdType = UserCmdOption.FocusRow
19 | constructor(public rowIndex: number) {}
20 | }
21 |
22 | export class FocusItemCmd implements IUserCmd {
23 | cmdType = UserCmdOption.FocusItem
24 | constructor(public itemIndex: number) {}
25 | }
26 |
--------------------------------------------------------------------------------
/src/virtualRow.component.ts:
--------------------------------------------------------------------------------
1 | import {
2 | ChangeDetectionStrategy, ChangeDetectorRef, Component,
3 | EmbeddedViewRef, HostBinding, TemplateRef,
4 | ViewChild, ViewContainerRef
5 | } from '@angular/core'
6 |
7 | import {ScrollItem} from './scrollItem'
8 |
9 | @Component({
10 | changeDetection: ChangeDetectionStrategy.OnPush,
11 | selector: 'od-virtualrow',
12 | styles: [`:host { display: block; position: absolute }`],
13 | template: ``
14 | })
15 | export class VirtualRowComponent {
16 | @ViewChild('viewRef', {read: ViewContainerRef}) private _viewContainer: ViewContainerRef
17 | @HostBinding('style.transform') get getTransform() {
18 | return `translateY(${this._translateY}px)`
19 | }
20 |
21 | private _translateY = 0
22 |
23 | constructor(private _cdr: ChangeDetectorRef) {}
24 |
25 | addItem(template: TemplateRef, context: ScrollItem, index?: number): EmbeddedViewRef {
26 | this._cdr.markForCheck()
27 | return this._viewContainer.createEmbeddedView(template, context, index)
28 | }
29 |
30 | setTransform(translateY: number) {
31 | this._translateY = translateY
32 | }
33 |
34 | updateItem(column: number, context: ScrollItem): EmbeddedViewRef {
35 | this._cdr.markForCheck()
36 | const viewRef = this._viewContainer.get(column) as EmbeddedViewRef
37 | viewRef.context.$implicit = context
38 | return viewRef
39 | }
40 |
41 | removeItem(column: number): void {
42 | this._cdr.markForCheck()
43 | this._viewContainer.remove(column)
44 | }
45 |
46 | updateRow(row: number): void {
47 | for(let c = 0; c < this._viewContainer.length; c++) {
48 | const viewRef = this._viewContainer.get(c) as EmbeddedViewRef
49 | viewRef.context.row = row
50 | }
51 | this._cdr.markForCheck()
52 | }
53 | }
54 |
--------------------------------------------------------------------------------
/src/virtualScroll.component.ts:
--------------------------------------------------------------------------------
1 | import {
2 | ChangeDetectionStrategy, ChangeDetectorRef, Component,
3 | ComponentFactory, ComponentFactoryResolver, ContentChild,
4 | ElementRef, Input, NgZone, OnDestroy, OnInit,
5 | TemplateRef, ViewChild, ViewContainerRef
6 | } from '@angular/core'
7 |
8 | import {
9 | animationFrameScheduler as animationScheduler,
10 | combineLatest, concat, ConnectableObservable,
11 | empty, from, fromEvent, merge, Observable, of,
12 | Subject, Subscription
13 | } from 'rxjs'
14 |
15 | import {
16 | concatMap, debounceTime, distinctUntilChanged, filter,
17 | map, pairwise, partition, publish, scan, share, startWith,
18 | withLatestFrom
19 | } from 'rxjs/operators'
20 |
21 | import {IVirtualScrollOptions, IVirtualScrollState} from './basic'
22 | import {IVirtualScrollMeasurement, IVirtualScrollWindow} from './basic'
23 | import {
24 | CmdOption, CreateItemCmd, CreateRowCmd,
25 | ICmd, NoopCmd, RemoveItemCmd, RemoveRowCmd,
26 | ShiftRowCmd, UpdateItemCmd
27 | } from './cmd'
28 | import {forColumnsIn, forColumnsInWithPrev, forRowsIn} from './enumerate'
29 | import {calcMeasure, calcScrollWindow, getMaxIndex} from './measurement'
30 | import {ScrollItem} from './scrollItem'
31 | import {ScrollObservableService} from './service'
32 | import {difference, intersection, isEmpty} from './set'
33 | import {
34 | FocusItemCmd, FocusRowCmd, IUserCmd,
35 | SetScrollTopCmd, UserCmdOption
36 | } from './userCmd'
37 | import {VirtualRowComponent} from './virtualRow.component'
38 |
39 | @Component({
40 | changeDetection: ChangeDetectionStrategy.OnPush,
41 | selector: 'od-virtualscroll',
42 | styles: [`
43 | :host {
44 | display: block;
45 | height: 100%;
46 | overflow-y: scroll;
47 | }
48 |
49 | .od-scroll-container {
50 | position: relative;
51 | width: 100%;
52 | }
53 | `],
54 | template: `
55 |