Commit 2853a670de35286bb7b79cedc6d0f51fef2a4173

Authored by sumatek
1 parent 57d157f6
Exists in master

update log

app.config.json
... ... @@ -25,7 +25,7 @@
25 25 "file" : true
26 26 },
27 27 "detail" : {
28   - "time" : 15,
  28 + "time" : 2,
29 29 "size" : null,
30 30 "path" : "./logs/detail",
31 31 "console" : false,
... ...
app.js
... ... @@ -6,7 +6,7 @@ const utils = require('utils/utils');
6 6 var log = require('./utils/log');
7 7 var constants = require('./utils/constants');
8 8  
9   -var logg = require('commonlog-kb').init(conf.get("configlog"),app);
  9 +var logg = require('./utils/commonlog').init(conf.get("configlog"),app);
10 10  
11 11 utils.testUnit(1,2,3,4,5);
12 12 // console.log(conf.get('redis.host'));
... ...
package-lock.json
... ... @@ -4,117 +4,6 @@
4 4 "lockfileVersion": 1,
5 5 "requires": true,
6 6 "dependencies": {
7   - "@pm2/agent": {
8   - "version": "0.5.16",
9   - "resolved": "https://registry.npmjs.org/@pm2/agent/-/agent-0.5.16.tgz",
10   - "integrity": "sha512-8oDUY0N21LFULtr9G0/u4vyIRtG2UM9dvEmrDV6h3iqP/7ykqnJ9JnB3MOsMEL6+EsA0Mwf2A4QbHvItwO3mzQ==",
11   - "requires": {
12   - "async": "2.6.1",
13   - "eventemitter2": "5.0.1",
14   - "fclone": "1.0.11",
15   - "moment": "2.22.2",
16   - "nssocket": "0.6.0",
17   - "pm2-axon": "3.3.0",
18   - "pm2-axon-rpc": "0.5.1",
19   - "semver": "5.6.0",
20   - "ws": "5.2.2"
21   - }
22   - },
23   - "@pm2/agent-node": {
24   - "version": "1.0.6",
25   - "resolved": "https://registry.npmjs.org/@pm2/agent-node/-/agent-node-1.0.6.tgz",
26   - "integrity": "sha512-T6vJKFEJdsuH46YzIMcvCucP/e+zBm+3u8xWGtGFNVTCzAYlrmjKnPf0C+ZeXUHbKyMvEqrUTGgXYNW1JluEDQ==",
27   - "requires": {
28   - "debug": "3.2.6",
29   - "eventemitter2": "5.0.1",
30   - "ws": "6.1.0"
31   - },
32   - "dependencies": {
33   - "debug": {
34   - "version": "3.2.6",
35   - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz",
36   - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==",
37   - "requires": {
38   - "ms": "2.1.1"
39   - }
40   - },
41   - "ms": {
42   - "version": "2.1.1",
43   - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
44   - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg=="
45   - },
46   - "ws": {
47   - "version": "6.1.0",
48   - "resolved": "https://registry.npmjs.org/ws/-/ws-6.1.0.tgz",
49   - "integrity": "sha512-H3dGVdGvW2H8bnYpIDc3u3LH8Wue3Qh+Zto6aXXFzvESkTVT6rAfKR6tR/+coaUvxs8yHtmNV0uioBF62ZGSTg==",
50   - "requires": {
51   - "async-limiter": "1.0.0"
52   - }
53   - }
54   - }
55   - },
56   - "@pm2/io": {
57   - "version": "2.4.5",
58   - "resolved": "https://registry.npmjs.org/@pm2/io/-/io-2.4.5.tgz",
59   - "integrity": "sha512-+JPRL7T/5uoLzUnYV5SlrU1jWNOVfSRBeX386cx68EpotWRH0qS9HjGwh+DjBTeMRdvI9aVyhiBYqqRq8Lb6eg==",
60   - "requires": {
61   - "@pm2/agent-node": "1.0.6",
62   - "async": "2.6.1",
63   - "debug": "3.1.0",
64   - "deep-metrics": "0.0.2",
65   - "deepmerge": "2.1.1",
66   - "event-loop-inspector": "1.2.2",
67   - "json-stringify-safe": "5.0.1",
68   - "semver": "5.5.0",
69   - "signal-exit": "3.0.2",
70   - "tslib": "1.9.3",
71   - "vxx": "1.2.2"
72   - },
73   - "dependencies": {
74   - "debug": {
75   - "version": "3.1.0",
76   - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
77   - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
78   - "requires": {
79   - "ms": "2.0.0"
80   - }
81   - },
82   - "semver": {
83   - "version": "5.5.0",
84   - "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz",
85   - "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA=="
86   - }
87   - }
88   - },
89   - "@pm2/js-api": {
90   - "version": "0.5.27",
91   - "resolved": "https://registry.npmjs.org/@pm2/js-api/-/js-api-0.5.27.tgz",
92   - "integrity": "sha512-6XYvKCu3vAGUdRPVHtZQLXUs7GR4Xpj7guE55f5cK43WTsnsg2HHzKSo3lvNPm68cml5cFA7RrPJEmkyUXouLg==",
93   - "requires": {
94   - "async": "2.6.1",
95   - "axios": "0.16.2",
96   - "debug": "2.6.9",
97   - "eventemitter2": "4.1.2",
98   - "ws": "3.3.3"
99   - },
100   - "dependencies": {
101   - "eventemitter2": {
102   - "version": "4.1.2",
103   - "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-4.1.2.tgz",
104   - "integrity": "sha1-DhqEd6+CGm7zmVsxG/dMI6UkfxU="
105   - },
106   - "ws": {
107   - "version": "3.3.3",
108   - "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz",
109   - "integrity": "sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==",
110   - "requires": {
111   - "async-limiter": "1.0.0",
112   - "safe-buffer": "5.1.2",
113   - "ultron": "1.1.1"
114   - }
115   - }
116   - }
117   - },
118 7 "@sindresorhus/is": {
119 8 "version": "0.7.0",
120 9 "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.7.0.tgz",
... ... @@ -154,34 +43,6 @@
154 43 "json-schema-traverse": "0.3.1"
155 44 }
156 45 },
157   - "align-text": {
158   - "version": "0.1.4",
159   - "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz",
160   - "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=",
161   - "requires": {
162   - "kind-of": "3.2.2",
163   - "longest": "1.0.1",
164   - "repeat-string": "1.6.1"
165   - }
166   - },
167   - "amp": {
168   - "version": "0.3.1",
169   - "resolved": "https://registry.npmjs.org/amp/-/amp-0.3.1.tgz",
170   - "integrity": "sha1-at+NWKdPNh6CwfqNOJwHnhOfxH0="
171   - },
172   - "amp-message": {
173   - "version": "0.1.2",
174   - "resolved": "https://registry.npmjs.org/amp-message/-/amp-message-0.1.2.tgz",
175   - "integrity": "sha1-p48cmJlQh602GSpBKY5NtJ49/EU=",
176   - "requires": {
177   - "amp": "0.3.1"
178   - }
179   - },
180   - "ansi-escapes": {
181   - "version": "1.4.0",
182   - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-1.4.0.tgz",
183   - "integrity": "sha1-06ioOzGapneTZisT52HHkRQiMG4="
184   - },
185 46 "ansi-regex": {
186 47 "version": "2.1.1",
187 48 "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
... ... @@ -192,15 +53,6 @@
192 53 "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
193 54 "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4="
194 55 },
195   - "anymatch": {
196   - "version": "2.0.0",
197   - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz",
198   - "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==",
199   - "requires": {
200   - "micromatch": "3.1.10",
201   - "normalize-path": "2.1.1"
202   - }
203   - },
204 56 "app-module-path": {
205 57 "version": "2.2.0",
206 58 "resolved": "https://registry.npmjs.org/app-module-path/-/app-module-path-2.2.0.tgz",
... ... @@ -220,69 +72,11 @@
220 72 "readable-stream": "2.3.6"
221 73 }
222 74 },
223   - "argparse": {
224   - "version": "1.0.10",
225   - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
226   - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
227   - "requires": {
228   - "sprintf-js": "1.0.3"
229   - },
230   - "dependencies": {
231   - "sprintf-js": {
232   - "version": "1.0.3",
233   - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
234   - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw="
235   - }
236   - }
237   - },
238   - "arr-diff": {
239   - "version": "4.0.0",
240   - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz",
241   - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA="
242   - },
243   - "arr-flatten": {
244   - "version": "1.1.0",
245   - "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz",
246   - "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg=="
247   - },
248   - "arr-union": {
249   - "version": "3.1.0",
250   - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz",
251   - "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ="
252   - },
253 75 "array-flatten": {
254 76 "version": "1.1.1",
255 77 "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
256 78 "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI="
257 79 },
258   - "array-union": {
259   - "version": "1.0.2",
260   - "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz",
261   - "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=",
262   - "requires": {
263   - "array-uniq": "1.0.3"
264   - }
265   - },
266   - "array-uniq": {
267   - "version": "1.0.3",
268   - "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz",
269   - "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY="
270   - },
271   - "array-unique": {
272   - "version": "0.3.2",
273   - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz",
274   - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg="
275   - },
276   - "arrify": {
277   - "version": "1.0.1",
278   - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz",
279   - "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0="
280   - },
281   - "asap": {
282   - "version": "2.0.6",
283   - "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz",
284   - "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY="
285   - },
286 80 "asn1": {
287 81 "version": "0.2.4",
288 82 "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz",
... ... @@ -296,11 +90,6 @@
296 90 "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz",
297 91 "integrity": "sha1-104bh+ev/A24qttwIfP+SBAasjQ="
298 92 },
299   - "assign-symbols": {
300   - "version": "1.0.0",
301   - "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz",
302   - "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c="
303   - },
304 93 "async": {
305 94 "version": "2.6.1",
306 95 "resolved": "https://registry.npmjs.org/async/-/async-2.6.1.tgz",
... ... @@ -309,35 +98,11 @@
309 98 "lodash": "4.17.11"
310 99 }
311 100 },
312   - "async-each": {
313   - "version": "1.0.1",
314   - "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tgz",
315   - "integrity": "sha1-GdOGodntxufByF04iu28xW0zYC0="
316   - },
317   - "async-limiter": {
318   - "version": "1.0.0",
319   - "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.0.tgz",
320   - "integrity": "sha512-jp/uFnooOiO+L211eZOoSyzpOITMXx1rBITauYykG3BRYPu8h0UcxsPNB04RR5vo4Tyz3+ay17tR6JVf9qzYWg=="
321   - },
322   - "async-listener": {
323   - "version": "0.6.9",
324   - "resolved": "https://registry.npmjs.org/async-listener/-/async-listener-0.6.9.tgz",
325   - "integrity": "sha512-E7Z2/QMs0EPt/o9wpYO/J3hmMCDdr1aVDS3ttlur5D5JlZtxhfuOwi4e7S8zbYIxA5qOOYdxfqGj97XAfdNvkQ==",
326   - "requires": {
327   - "semver": "5.6.0",
328   - "shimmer": "1.2.0"
329   - }
330   - },
331 101 "asynckit": {
332 102 "version": "0.4.0",
333 103 "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
334 104 "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k="
335 105 },
336   - "atob": {
337   - "version": "2.1.2",
338   - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz",
339   - "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg=="
340   - },
341 106 "aws-sign2": {
342 107 "version": "0.6.0",
343 108 "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz",
... ... @@ -348,15 +113,6 @@
348 113 "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz",
349 114 "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ=="
350 115 },
351   - "axios": {
352   - "version": "0.16.2",
353   - "resolved": "https://registry.npmjs.org/axios/-/axios-0.16.2.tgz",
354   - "integrity": "sha1-uk+S8XFn37q0CYN4VFS5rBScPG0=",
355   - "requires": {
356   - "follow-redirects": "1.5.9",
357   - "is-buffer": "1.1.6"
358   - }
359   - },
360 116 "backoff": {
361 117 "version": "2.5.0",
362 118 "resolved": "https://registry.npmjs.org/backoff/-/backoff-2.5.0.tgz",
... ... @@ -370,69 +126,6 @@
370 126 "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
371 127 "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c="
372 128 },
373   - "base": {
374   - "version": "0.11.2",
375   - "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz",
376   - "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==",
377   - "requires": {
378   - "cache-base": "1.0.1",
379   - "class-utils": "0.3.6",
380   - "component-emitter": "1.2.1",
381   - "define-property": "1.0.0",
382   - "isobject": "3.0.1",
383   - "mixin-deep": "1.3.1",
384   - "pascalcase": "0.1.1"
385   - },
386   - "dependencies": {
387   - "define-property": {
388   - "version": "1.0.0",
389   - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
390   - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
391   - "requires": {
392   - "is-descriptor": "1.0.2"
393   - }
394   - },
395   - "is-accessor-descriptor": {
396   - "version": "1.0.0",
397   - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
398   - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
399   - "requires": {
400   - "kind-of": "6.0.2"
401   - }
402   - },
403   - "is-data-descriptor": {
404   - "version": "1.0.0",
405   - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
406   - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
407   - "requires": {
408   - "kind-of": "6.0.2"
409   - }
410   - },
411   - "is-descriptor": {
412   - "version": "1.0.2",
413   - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
414   - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
415   - "requires": {
416   - "is-accessor-descriptor": "1.0.0",
417   - "is-data-descriptor": "1.0.0",
418   - "kind-of": "6.0.2"
419   - }
420   - },
421   - "kind-of": {
422   - "version": "6.0.2",
423   - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
424   - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA=="
425   - }
426   - }
427   - },
428   - "basic-auth": {
429   - "version": "2.0.1",
430   - "resolved": "https://registry.npmjs.org/basic-auth/-/basic-auth-2.0.1.tgz",
431   - "integrity": "sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==",
432   - "requires": {
433   - "safe-buffer": "5.1.2"
434   - }
435   - },
436 129 "bcrypt-pbkdf": {
437 130 "version": "1.0.2",
438 131 "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz",
... ... @@ -441,11 +134,6 @@
441 134 "tweetnacl": "0.14.5"
442 135 }
443 136 },
444   - "binary-extensions": {
445   - "version": "1.12.0",
446   - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.12.0.tgz",
447   - "integrity": "sha512-DYWGk01lDcxeS/K9IHPGWfT8PsJmbXRtRd2Sx72Tnb8pcYZQFF1oSDb8hJtS1vhp212q1Rzi5dUf9+nq0o9UIg=="
448   - },
449 137 "bl": {
450 138 "version": "1.1.2",
451 139 "resolved": "http://registry.npmjs.org/bl/-/bl-1.1.2.tgz",
... ... @@ -479,16 +167,6 @@
479 167 }
480 168 }
481 169 },
482   - "blessed": {
483   - "version": "0.1.81",
484   - "resolved": "https://registry.npmjs.org/blessed/-/blessed-0.1.81.tgz",
485   - "integrity": "sha1-+WLWh+wsNpVwrnGvhDJW5tDKESk="
486   - },
487   - "bodec": {
488   - "version": "0.1.0",
489   - "resolved": "https://registry.npmjs.org/bodec/-/bodec-0.1.0.tgz",
490   - "integrity": "sha1-vIUVVUMPI8n3ZQp172TGqUw0GMw="
491   - },
492 170 "body-parser": {
493 171 "version": "1.18.3",
494 172 "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.18.3.tgz",
... ... @@ -523,33 +201,6 @@
523 201 "concat-map": "0.0.1"
524 202 }
525 203 },
526   - "braces": {
527   - "version": "2.3.2",
528   - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz",
529   - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==",
530   - "requires": {
531   - "arr-flatten": "1.1.0",
532   - "array-unique": "0.3.2",
533   - "extend-shallow": "2.0.1",
534   - "fill-range": "4.0.0",
535   - "isobject": "3.0.1",
536   - "repeat-element": "1.1.3",
537   - "snapdragon": "0.8.2",
538   - "snapdragon-node": "2.1.1",
539   - "split-string": "3.1.0",
540   - "to-regex": "3.0.2"
541   - },
542   - "dependencies": {
543   - "extend-shallow": {
544   - "version": "2.0.1",
545   - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
546   - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
547   - "requires": {
548   - "is-extendable": "0.1.1"
549   - }
550   - }
551   - }
552   - },
553 204 "browser-stdout": {
554 205 "version": "1.3.1",
555 206 "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz",
... ... @@ -560,16 +211,6 @@
560 211 "resolved": "https://registry.npmjs.org/bson/-/bson-1.1.0.tgz",
561 212 "integrity": "sha512-9Aeai9TacfNtWXOYarkFJRW2CWo+dRon+fuLZYJmvLV3+MiUp0bEI6IAZfXEIg7/Pl/7IWlLaDnhzTsD81etQA=="
562 213 },
563   - "buffer-from": {
564   - "version": "1.1.1",
565   - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz",
566   - "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A=="
567   - },
568   - "builtin-modules": {
569   - "version": "1.1.1",
570   - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz",
571   - "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8="
572   - },
573 214 "bunyan": {
574 215 "version": "1.8.12",
575 216 "resolved": "https://registry.npmjs.org/bunyan/-/bunyan-1.8.12.tgz",
... ... @@ -586,54 +227,11 @@
586 227 "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz",
587 228 "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg="
588 229 },
589   - "cache-base": {
590   - "version": "1.0.1",
591   - "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz",
592   - "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==",
593   - "requires": {
594   - "collection-visit": "1.0.0",
595   - "component-emitter": "1.2.1",
596   - "get-value": "2.0.6",
597   - "has-value": "1.0.0",
598   - "isobject": "3.0.1",
599   - "set-value": "2.0.0",
600   - "to-object-path": "0.3.0",
601   - "union-value": "1.0.0",
602   - "unset-value": "1.0.0"
603   - }
604   - },
605   - "caller-callsite": {
606   - "version": "3.0.0",
607   - "resolved": "https://registry.npmjs.org/caller-callsite/-/caller-callsite-3.0.0.tgz",
608   - "integrity": "sha512-/KKfFS+O210sONxwadGBiWa0SlKBOh0QcAkEpSExSw+3exLnZTOBCDsNobA+K72SZ7/U6OQfx3PXIWlJ02t0XQ==",
609   - "requires": {
610   - "callsites": "2.0.0"
611   - }
612   - },
613   - "callsites": {
614   - "version": "2.0.0",
615   - "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz",
616   - "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA="
617   - },
618   - "camelcase": {
619   - "version": "1.2.1",
620   - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz",
621   - "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk="
622   - },
623 230 "caseless": {
624 231 "version": "0.11.0",
625 232 "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz",
626 233 "integrity": "sha1-cVuW6phBWTzDMGeSP17GDr2k99c="
627 234 },
628   - "center-align": {
629   - "version": "0.1.3",
630   - "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz",
631   - "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=",
632   - "requires": {
633   - "align-text": "0.1.4",
634   - "lazy-cache": "1.0.4"
635   - }
636   - },
637 235 "chalk": {
638 236 "version": "1.1.3",
639 237 "resolved": "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
... ... @@ -646,11 +244,6 @@
646 244 "supports-color": "2.0.0"
647 245 }
648 246 },
649   - "charm": {
650   - "version": "0.1.2",
651   - "resolved": "https://registry.npmjs.org/charm/-/charm-0.1.2.tgz",
652   - "integrity": "sha1-BsIe7RobBq62dVPNxT4jJ0usIpY="
653   - },
654 247 "charmap": {
655 248 "version": "1.1.6",
656 249 "resolved": "https://registry.npmjs.org/charmap/-/charmap-1.1.6.tgz",
... ... @@ -659,26 +252,6 @@
659 252 "es6-object-assign": "1.1.0"
660 253 }
661 254 },
662   - "chokidar": {
663   - "version": "2.0.4",
664   - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.0.4.tgz",
665   - "integrity": "sha512-z9n7yt9rOvIJrMhvDtDictKrkFHeihkNl6uWMmZlmL6tJtX9Cs+87oK+teBx+JIgzvbX3yZHT3eF8vpbDxHJXQ==",
666   - "requires": {
667   - "anymatch": "2.0.0",
668   - "async-each": "1.0.1",
669   - "braces": "2.3.2",
670   - "fsevents": "1.2.4",
671   - "glob-parent": "3.1.0",
672   - "inherits": "2.0.3",
673   - "is-binary-path": "1.0.1",
674   - "is-glob": "4.0.0",
675   - "lodash.debounce": "4.0.8",
676   - "normalize-path": "2.1.1",
677   - "path-is-absolute": "1.0.1",
678   - "readdirp": "2.2.1",
679   - "upath": "1.1.0"
680   - }
681   - },
682 255 "chownr": {
683 256 "version": "1.1.1",
684 257 "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.1.tgz",
... ... @@ -689,132 +262,16 @@
689 262 "resolved": "https://registry.npmjs.org/circular-json/-/circular-json-0.5.7.tgz",
690 263 "integrity": "sha512-/pXoV1JA847qRKPrHbBK6YIBGFF8GOP4wzSgUOA7q0ew0vAv0iJswP+2/nZQ9uzA3Azi7eTrg9L2yzXc/7ZMIA=="
691 264 },
692   - "class-utils": {
693   - "version": "0.3.6",
694   - "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz",
695   - "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==",
696   - "requires": {
697   - "arr-union": "3.1.0",
698   - "define-property": "0.2.5",
699   - "isobject": "3.0.1",
700   - "static-extend": "0.1.2"
701   - },
702   - "dependencies": {
703   - "define-property": {
704   - "version": "0.2.5",
705   - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
706   - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
707   - "requires": {
708   - "is-descriptor": "0.1.6"
709   - }
710   - }
711   - }
712   - },
713   - "cli-cursor": {
714   - "version": "1.0.2",
715   - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-1.0.2.tgz",
716   - "integrity": "sha1-ZNo/fValRBLll5S9Ytw1KV6PKYc=",
717   - "requires": {
718   - "restore-cursor": "1.0.1"
719   - }
720   - },
721   - "cli-table-redemption": {
722   - "version": "1.0.1",
723   - "resolved": "https://registry.npmjs.org/cli-table-redemption/-/cli-table-redemption-1.0.1.tgz",
724   - "integrity": "sha512-SjVCciRyx01I4azo2K2rcc0NP/wOceXGzG1ZpYkEulbbIxDA/5YWv0oxG2HtQ4v8zPC6bgbRI7SbNaTZCxMNkg==",
725   - "requires": {
726   - "chalk": "1.1.3"
727   - }
728   - },
729   - "cli-width": {
730   - "version": "2.2.0",
731   - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz",
732   - "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk="
733   - },
734   - "cliui": {
735   - "version": "2.1.0",
736   - "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz",
737   - "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=",
738   - "requires": {
739   - "center-align": "0.1.3",
740   - "right-align": "0.1.3",
741   - "wordwrap": "0.0.2"
742   - }
743   - },
744 265 "co": {
745 266 "version": "4.6.0",
746 267 "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz",
747 268 "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ="
748 269 },
749   - "co-event": {
750   - "version": "0.1.0",
751   - "resolved": "https://registry.npmjs.org/co-event/-/co-event-0.1.0.tgz",
752   - "integrity": "sha1-+Zm2p8RYwwTetHICPbLAgtCS43U="
753   - },
754 270 "code-point-at": {
755 271 "version": "1.1.0",
756 272 "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz",
757 273 "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c="
758 274 },
759   - "collection-visit": {
760   - "version": "1.0.0",
761   - "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz",
762   - "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=",
763   - "requires": {
764   - "map-visit": "1.0.0",
765   - "object-visit": "1.0.1"
766   - }
767   - },
768   - "color": {
769   - "version": "3.0.0",
770   - "resolved": "https://registry.npmjs.org/color/-/color-3.0.0.tgz",
771   - "integrity": "sha512-jCpd5+s0s0t7p3pHQKpnJ0TpQKKdleP71LWcA0aqiljpiuAkOSUFN/dyH8ZwF0hRmFlrIuRhufds1QyEP9EB+w==",
772   - "requires": {
773   - "color-convert": "1.9.3",
774   - "color-string": "1.5.3"
775   - }
776   - },
777   - "color-convert": {
778   - "version": "1.9.3",
779   - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
780   - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
781   - "requires": {
782   - "color-name": "1.1.3"
783   - }
784   - },
785   - "color-name": {
786   - "version": "1.1.3",
787   - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
788   - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU="
789   - },
790   - "color-string": {
791   - "version": "1.5.3",
792   - "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.5.3.tgz",
793   - "integrity": "sha512-dC2C5qeWoYkxki5UAXapdjqO672AM4vZuPGRQfO8b5HKuKGBbKWpITyDYN7TOFKvRW7kOgAn3746clDBMDJyQw==",
794   - "requires": {
795   - "color-name": "1.1.3",
796   - "simple-swizzle": "0.2.2"
797   - }
798   - },
799   - "colornames": {
800   - "version": "1.1.1",
801   - "resolved": "https://registry.npmjs.org/colornames/-/colornames-1.1.1.tgz",
802   - "integrity": "sha1-+IiQMGhcfE/54qVZ9Qd+t2qBb5Y="
803   - },
804   - "colors": {
805   - "version": "1.3.2",
806   - "resolved": "https://registry.npmjs.org/colors/-/colors-1.3.2.tgz",
807   - "integrity": "sha512-rhP0JSBGYvpcNQj4s5AdShMeE5ahMop96cTeDl/v9qQQm2fYClE2QXZRi8wLzc+GmXSxdIqqbOIAhyObEXDbfQ=="
808   - },
809   - "colorspace": {
810   - "version": "1.1.1",
811   - "resolved": "https://registry.npmjs.org/colorspace/-/colorspace-1.1.1.tgz",
812   - "integrity": "sha512-pI3btWyiuz7Ken0BWh9Elzsmv2bM9AhA7psXib4anUXy/orfZ/E0MbQwhSOG/9L8hLlalqrU0UhOuqxW1YjmVw==",
813   - "requires": {
814   - "color": "3.0.0",
815   - "text-hex": "1.0.0"
816   - }
817   - },
818 275 "combined-stream": {
819 276 "version": "0.0.7",
820 277 "resolved": "http://registry.npmjs.org/combined-stream/-/combined-stream-0.0.7.tgz",
... ... @@ -840,27 +297,11 @@
840 297 "sqlite3": "4.0.2"
841 298 }
842 299 },
843   - "component-emitter": {
844   - "version": "1.2.1",
845   - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz",
846   - "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY="
847   - },
848 300 "concat-map": {
849 301 "version": "0.0.1",
850 302 "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
851 303 "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="
852 304 },
853   - "concat-stream": {
854   - "version": "1.6.2",
855   - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz",
856   - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==",
857   - "requires": {
858   - "buffer-from": "1.1.1",
859   - "inherits": "2.0.3",
860   - "readable-stream": "2.3.6",
861   - "typedarray": "0.0.6"
862   - }
863   - },
864 305 "connect-flash": {
865 306 "version": "0.1.1",
866 307 "resolved": "https://registry.npmjs.org/connect-flash/-/connect-flash-0.1.1.tgz",
... ... @@ -915,15 +356,6 @@
915 356 "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz",
916 357 "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA=="
917 358 },
918   - "continuation-local-storage": {
919   - "version": "3.2.1",
920   - "resolved": "https://registry.npmjs.org/continuation-local-storage/-/continuation-local-storage-3.2.1.tgz",
921   - "integrity": "sha512-jx44cconVqkCEEyLSKWwkvUXwO561jXMa3LPjTPsm5QR22PA0/mhe33FT4Xb5y74JDvt/Cq+5lm8S8rskLv9ZA==",
922   - "requires": {
923   - "async-listener": "0.6.9",
924   - "emitter-listener": "1.1.2"
925   - }
926   - },
927 359 "cookie": {
928 360 "version": "0.3.1",
929 361 "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz",
... ... @@ -943,11 +375,6 @@
943 375 "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
944 376 "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw="
945 377 },
946   - "copy-descriptor": {
947   - "version": "0.1.1",
948   - "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz",
949   - "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40="
950   - },
951 378 "core-util-is": {
952 379 "version": "1.0.2",
953 380 "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
... ... @@ -958,14 +385,6 @@
958 385 "resolved": "https://registry.npmjs.org/crc/-/crc-3.4.4.tgz",
959 386 "integrity": "sha1-naHpgOO9RPxck79as9ozeNheRms="
960 387 },
961   - "cron": {
962   - "version": "1.4.1",
963   - "resolved": "https://registry.npmjs.org/cron/-/cron-1.4.1.tgz",
964   - "integrity": "sha512-HlglwQUNh6bhgfoDR6aEzyHN2T4bc0XhxJxkNPp+Ry7lK7Noby94pHcngYf634+MtxplwZm8okFgNe+R9PGDjg==",
965   - "requires": {
966   - "moment-timezone": "0.5.21"
967   - }
968   - },
969 388 "cross-env": {
970 389 "version": "5.2.0",
971 390 "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-5.2.0.tgz",
... ... @@ -995,11 +414,6 @@
995 414 "boom": "2.10.1"
996 415 }
997 416 },
998   - "culvert": {
999   - "version": "0.1.2",
1000   - "resolved": "https://registry.npmjs.org/culvert/-/culvert-0.1.2.tgz",
1001   - "integrity": "sha1-lQL18BVKLVoioCPnn3HMk2+m728="
1002   - },
1003 417 "dashdash": {
1004 418 "version": "1.14.1",
1005 419 "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
... ... @@ -1038,99 +452,20 @@
1038 452 "ms": "2.0.0"
1039 453 }
1040 454 },
1041   - "decamelize": {
1042   - "version": "1.2.0",
1043   - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
1044   - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA="
1045   - },
1046   - "decode-uri-component": {
1047   - "version": "0.2.0",
1048   - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz",
1049   - "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU="
1050   - },
1051 455 "deep-extend": {
1052 456 "version": "0.6.0",
1053 457 "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz",
1054 458 "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA=="
1055 459 },
1056   - "deep-metrics": {
1057   - "version": "0.0.2",
1058   - "resolved": "https://registry.npmjs.org/deep-metrics/-/deep-metrics-0.0.2.tgz",
1059   - "integrity": "sha512-2b4DO8YcPWSHrZ7XW9YjjJajmflw2EhKUMmeriZmGYsC8XvCWIyztsEjCQ3f5kIQO+ItzBK7BqVjSWlFZQtONQ==",
1060   - "requires": {
1061   - "semver": "5.6.0"
1062   - }
  460 + "delayed-stream": {
  461 + "version": "0.0.5",
  462 + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-0.0.5.tgz",
  463 + "integrity": "sha1-1LH0OpPoKW3+AmlPRoC8N6MTxz8="
1063 464 },
1064   - "deepmerge": {
1065   - "version": "2.1.1",
1066   - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-2.1.1.tgz",
1067   - "integrity": "sha512-urQxA1smbLZ2cBbXbaYObM1dJ82aJ2H57A1C/Kklfh/ZN1bgH4G/n5KWhdNfOK11W98gqZfyYj7W4frJJRwA2w=="
1068   - },
1069   - "define-property": {
1070   - "version": "2.0.2",
1071   - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz",
1072   - "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==",
1073   - "requires": {
1074   - "is-descriptor": "1.0.2",
1075   - "isobject": "3.0.1"
1076   - },
1077   - "dependencies": {
1078   - "is-accessor-descriptor": {
1079   - "version": "1.0.0",
1080   - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
1081   - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
1082   - "requires": {
1083   - "kind-of": "6.0.2"
1084   - }
1085   - },
1086   - "is-data-descriptor": {
1087   - "version": "1.0.0",
1088   - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
1089   - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
1090   - "requires": {
1091   - "kind-of": "6.0.2"
1092   - }
1093   - },
1094   - "is-descriptor": {
1095   - "version": "1.0.2",
1096   - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
1097   - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
1098   - "requires": {
1099   - "is-accessor-descriptor": "1.0.0",
1100   - "is-data-descriptor": "1.0.0",
1101   - "kind-of": "6.0.2"
1102   - }
1103   - },
1104   - "kind-of": {
1105   - "version": "6.0.2",
1106   - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
1107   - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA=="
1108   - }
1109   - }
1110   - },
1111   - "del": {
1112   - "version": "2.2.2",
1113   - "resolved": "https://registry.npmjs.org/del/-/del-2.2.2.tgz",
1114   - "integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=",
1115   - "requires": {
1116   - "globby": "5.0.0",
1117   - "is-path-cwd": "1.0.0",
1118   - "is-path-in-cwd": "1.0.1",
1119   - "object-assign": "4.1.1",
1120   - "pify": "2.3.0",
1121   - "pinkie-promise": "2.0.1",
1122   - "rimraf": "2.4.5"
1123   - }
1124   - },
1125   - "delayed-stream": {
1126   - "version": "0.0.5",
1127   - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-0.0.5.tgz",
1128   - "integrity": "sha1-1LH0OpPoKW3+AmlPRoC8N6MTxz8="
1129   - },
1130   - "delegates": {
1131   - "version": "1.0.0",
1132   - "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz",
1133   - "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o="
  465 + "delegates": {
  466 + "version": "1.0.0",
  467 + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz",
  468 + "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o="
1134 469 },
1135 470 "depd": {
1136 471 "version": "1.1.2",
... ... @@ -1147,16 +482,6 @@
1147 482 "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz",
1148 483 "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups="
1149 484 },
1150   - "diagnostics": {
1151   - "version": "1.1.1",
1152   - "resolved": "https://registry.npmjs.org/diagnostics/-/diagnostics-1.1.1.tgz",
1153   - "integrity": "sha512-8wn1PmdunLJ9Tqbx+Fx/ZEuHfJf4NKSN2ZBj7SJC/OWRWha843+WsTjqMe1B5E3p28jqBlp+mJ2fPVxPyNgYKQ==",
1154   - "requires": {
1155   - "colorspace": "1.1.1",
1156   - "enabled": "1.0.2",
1157   - "kuler": "1.0.1"
1158   - }
1159   - },
1160 485 "diff": {
1161 486 "version": "3.5.0",
1162 487 "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz",
... ... @@ -1195,47 +520,11 @@
1195 520 "resolved": "https://registry.npmjs.org/ejs/-/ejs-2.6.1.tgz",
1196 521 "integrity": "sha512-0xy4A/twfrRCnkhfk8ErDi5DqdAsAqeGxht4xkCUrsvhhbQNs7E+4jV0CN7+NKIY0aHE72+XvqtBIXzD31ZbXQ=="
1197 522 },
1198   - "emitter-listener": {
1199   - "version": "1.1.2",
1200   - "resolved": "https://registry.npmjs.org/emitter-listener/-/emitter-listener-1.1.2.tgz",
1201   - "integrity": "sha512-Bt1sBAGFHY9DKY+4/2cV6izcKJUf5T7/gkdmkxzX/qv9CcGH8xSwVRW5mtX03SWJtRTWSOpzCuWN9rBFYZepZQ==",
1202   - "requires": {
1203   - "shimmer": "1.2.0"
1204   - }
1205   - },
1206   - "enabled": {
1207   - "version": "1.0.2",
1208   - "resolved": "https://registry.npmjs.org/enabled/-/enabled-1.0.2.tgz",
1209   - "integrity": "sha1-ll9lE9LC0cX0ZStkouM5ZGf8L5M=",
1210   - "requires": {
1211   - "env-variable": "0.0.5"
1212   - }
1213   - },
1214 523 "encodeurl": {
1215 524 "version": "1.0.2",
1216 525 "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
1217 526 "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k="
1218 527 },
1219   - "env-variable": {
1220   - "version": "0.0.5",
1221   - "resolved": "https://registry.npmjs.org/env-variable/-/env-variable-0.0.5.tgz",
1222   - "integrity": "sha512-zoB603vQReOFvTg5xMl9I1P2PnHsHQQKTEowsKKD7nseUfJq6UWzK+4YtlWUO1nhiQUxe6XMkk+JleSZD1NZFA=="
1223   - },
1224   - "error-ex": {
1225   - "version": "1.3.2",
1226   - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
1227   - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==",
1228   - "requires": {
1229   - "is-arrayish": "0.2.1"
1230   - },
1231   - "dependencies": {
1232   - "is-arrayish": {
1233   - "version": "0.2.1",
1234   - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
1235   - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0="
1236   - }
1237   - }
1238   - },
1239 528 "es6-object-assign": {
1240 529 "version": "1.1.0",
1241 530 "resolved": "https://registry.npmjs.org/es6-object-assign/-/es6-object-assign-1.1.0.tgz",
... ... @@ -1246,11 +535,6 @@
1246 535 "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
1247 536 "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg="
1248 537 },
1249   - "escape-regexp": {
1250   - "version": "0.0.1",
1251   - "resolved": "https://registry.npmjs.org/escape-regexp/-/escape-regexp-0.0.1.tgz",
1252   - "integrity": "sha1-9EvaEtRbvfnLf4Yu5+SCez3TIlQ="
1253   - },
1254 538 "escape-string-regexp": {
1255 539 "version": "1.0.5",
1256 540 "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
... ... @@ -1261,53 +545,6 @@
1261 545 "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
1262 546 "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc="
1263 547 },
1264   - "event-loop-inspector": {
1265   - "version": "1.2.2",
1266   - "resolved": "https://registry.npmjs.org/event-loop-inspector/-/event-loop-inspector-1.2.2.tgz",
1267   - "integrity": "sha512-v7OqIPmO0jqpmSH4Uc6IrY/H6lOidYzrXHE8vPHLDDOfV1Pw+yu+KEIE/AWnoFheWYlunZbxzKpZBAezVlrU9g=="
1268   - },
1269   - "eventemitter2": {
1270   - "version": "5.0.1",
1271   - "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-5.0.1.tgz",
1272   - "integrity": "sha1-YZegldX7a1folC9v1+qtY6CclFI="
1273   - },
1274   - "exit-hook": {
1275   - "version": "1.1.1",
1276   - "resolved": "https://registry.npmjs.org/exit-hook/-/exit-hook-1.1.1.tgz",
1277   - "integrity": "sha1-8FyiM7SMBdVP/wd2XfhQfpXAL/g="
1278   - },
1279   - "expand-brackets": {
1280   - "version": "2.1.4",
1281   - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz",
1282   - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=",
1283   - "requires": {
1284   - "debug": "2.6.9",
1285   - "define-property": "0.2.5",
1286   - "extend-shallow": "2.0.1",
1287   - "posix-character-classes": "0.1.1",
1288   - "regex-not": "1.0.2",
1289   - "snapdragon": "0.8.2",
1290   - "to-regex": "3.0.2"
1291   - },
1292   - "dependencies": {
1293   - "define-property": {
1294   - "version": "0.2.5",
1295   - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
1296   - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
1297   - "requires": {
1298   - "is-descriptor": "0.1.6"
1299   - }
1300   - },
1301   - "extend-shallow": {
1302   - "version": "2.0.1",
1303   - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
1304   - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
1305   - "requires": {
1306   - "is-extendable": "0.1.1"
1307   - }
1308   - }
1309   - }
1310   - },
1311 548 "express": {
1312 549 "version": "4.16.4",
1313 550 "resolved": "https://registry.npmjs.org/express/-/express-4.16.4.tgz",
... ... @@ -1400,743 +637,93 @@
1400 637 "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
1401 638 "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g=="
1402 639 },
1403   - "extend-shallow": {
1404   - "version": "3.0.2",
1405   - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz",
1406   - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=",
1407   - "requires": {
1408   - "assign-symbols": "1.0.0",
1409   - "is-extendable": "1.0.1"
1410   - },
1411   - "dependencies": {
1412   - "is-extendable": {
1413   - "version": "1.0.1",
1414   - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
1415   - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
1416   - "requires": {
1417   - "is-plain-object": "2.0.4"
1418   - }
1419   - }
1420   - }
1421   - },
1422   - "external-editor": {
1423   - "version": "1.1.1",
1424   - "resolved": "http://registry.npmjs.org/external-editor/-/external-editor-1.1.1.tgz",
1425   - "integrity": "sha1-Etew24UPf/fnCBuvQAVwAGDEYAs=",
1426   - "requires": {
1427   - "extend": "3.0.2",
1428   - "spawn-sync": "1.0.15",
1429   - "tmp": "0.0.29"
1430   - }
1431   - },
1432   - "extglob": {
1433   - "version": "2.0.4",
1434   - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz",
1435   - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==",
1436   - "requires": {
1437   - "array-unique": "0.3.2",
1438   - "define-property": "1.0.0",
1439   - "expand-brackets": "2.1.4",
1440   - "extend-shallow": "2.0.1",
1441   - "fragment-cache": "0.2.1",
1442   - "regex-not": "1.0.2",
1443   - "snapdragon": "0.8.2",
1444   - "to-regex": "3.0.2"
1445   - },
1446   - "dependencies": {
1447   - "define-property": {
1448   - "version": "1.0.0",
1449   - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
1450   - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
1451   - "requires": {
1452   - "is-descriptor": "1.0.2"
1453   - }
1454   - },
1455   - "extend-shallow": {
1456   - "version": "2.0.1",
1457   - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
1458   - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
1459   - "requires": {
1460   - "is-extendable": "0.1.1"
1461   - }
1462   - },
1463   - "is-accessor-descriptor": {
1464   - "version": "1.0.0",
1465   - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
1466   - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
1467   - "requires": {
1468   - "kind-of": "6.0.2"
1469   - }
1470   - },
1471   - "is-data-descriptor": {
1472   - "version": "1.0.0",
1473   - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
1474   - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
1475   - "requires": {
1476   - "kind-of": "6.0.2"
1477   - }
1478   - },
1479   - "is-descriptor": {
1480   - "version": "1.0.2",
1481   - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
1482   - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
1483   - "requires": {
1484   - "is-accessor-descriptor": "1.0.0",
1485   - "is-data-descriptor": "1.0.0",
1486   - "kind-of": "6.0.2"
1487   - }
1488   - },
1489   - "kind-of": {
1490   - "version": "6.0.2",
1491   - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
1492   - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA=="
1493   - }
1494   - }
1495   - },
1496 640 "extsprintf": {
1497 641 "version": "1.3.0",
1498 642 "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz",
1499 643 "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU="
1500   - },
1501   - "fast-deep-equal": {
1502   - "version": "1.1.0",
1503   - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz",
1504   - "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ="
1505   - },
1506   - "fast-json-stable-stringify": {
1507   - "version": "2.0.0",
1508   - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz",
1509   - "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I="
1510   - },
1511   - "fast-safe-stringify": {
1512   - "version": "2.0.6",
1513   - "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.0.6.tgz",
1514   - "integrity": "sha512-q8BZ89jjc+mz08rSxROs8VsrBBcn1SIw1kq9NjolL509tkABRk9io01RAjSaEv1Xb2uFLt8VtRiZbGp5H8iDtg=="
1515   - },
1516   - "fclone": {
1517   - "version": "1.0.11",
1518   - "resolved": "https://registry.npmjs.org/fclone/-/fclone-1.0.11.tgz",
1519   - "integrity": "sha1-EOhdo4v+p/xZk0HClu4ddyZu5kA="
1520   - },
1521   - "fecha": {
1522   - "version": "2.3.3",
1523   - "resolved": "https://registry.npmjs.org/fecha/-/fecha-2.3.3.tgz",
1524   - "integrity": "sha512-lUGBnIamTAwk4znq5BcqsDaxSmZ9nDVJaij6NvRt/Tg4R69gERA+otPKbS86ROw9nxVMw2/mp1fnaiWqbs6Sdg=="
1525   - },
1526   - "figures": {
1527   - "version": "1.7.0",
1528   - "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz",
1529   - "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=",
1530   - "requires": {
1531   - "escape-string-regexp": "1.0.5",
1532   - "object-assign": "4.1.1"
1533   - }
1534   - },
1535   - "fill-range": {
1536   - "version": "4.0.0",
1537   - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz",
1538   - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=",
1539   - "requires": {
1540   - "extend-shallow": "2.0.1",
1541   - "is-number": "3.0.0",
1542   - "repeat-string": "1.6.1",
1543   - "to-regex-range": "2.1.1"
1544   - },
1545   - "dependencies": {
1546   - "extend-shallow": {
1547   - "version": "2.0.1",
1548   - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
1549   - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
1550   - "requires": {
1551   - "is-extendable": "0.1.1"
1552   - }
1553   - }
1554   - }
1555   - },
1556   - "finalhandler": {
1557   - "version": "1.1.1",
1558   - "resolved": "http://registry.npmjs.org/finalhandler/-/finalhandler-1.1.1.tgz",
1559   - "integrity": "sha512-Y1GUDo39ez4aHAw7MysnUD5JzYX+WaIj8I57kO3aEPT1fFRL4sr7mjei97FgnwhAyyzRYmQZaTHb2+9uZ1dPtg==",
1560   - "requires": {
1561   - "debug": "2.6.9",
1562   - "encodeurl": "1.0.2",
1563   - "escape-html": "1.0.3",
1564   - "on-finished": "2.3.0",
1565   - "parseurl": "1.3.2",
1566   - "statuses": "1.4.0",
1567   - "unpipe": "1.0.0"
1568   - }
1569   - },
1570   - "find-up": {
1571   - "version": "1.1.2",
1572   - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz",
1573   - "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=",
1574   - "requires": {
1575   - "path-exists": "2.1.0",
1576   - "pinkie-promise": "2.0.1"
1577   - }
1578   - },
1579   - "follow-redirects": {
1580   - "version": "1.5.9",
1581   - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.9.tgz",
1582   - "integrity": "sha512-Bh65EZI/RU8nx0wbYF9shkFZlqLP+6WT/5FnA3cE/djNSuKNHJEinGGZgu/cQEkeeb2GdFOgenAmn8qaqYke2w==",
1583   - "requires": {
1584   - "debug": "3.1.0"
1585   - },
1586   - "dependencies": {
1587   - "debug": {
1588   - "version": "3.1.0",
1589   - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
1590   - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
1591   - "requires": {
1592   - "ms": "2.0.0"
1593   - }
1594   - }
1595   - }
1596   - },
1597   - "for-in": {
1598   - "version": "1.0.2",
1599   - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz",
1600   - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA="
1601   - },
1602   - "forever-agent": {
1603   - "version": "0.6.1",
1604   - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
1605   - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE="
1606   - },
1607   - "form-data": {
1608   - "version": "0.2.0",
1609   - "resolved": "https://registry.npmjs.org/form-data/-/form-data-0.2.0.tgz",
1610   - "integrity": "sha1-Jvi8JtpkQOKZy9z7aQNcT3em5GY=",
1611   - "requires": {
1612   - "async": "0.9.2",
1613   - "combined-stream": "0.0.7",
1614   - "mime-types": "2.0.14"
1615   - },
1616   - "dependencies": {
1617   - "async": {
1618   - "version": "0.9.2",
1619   - "resolved": "http://registry.npmjs.org/async/-/async-0.9.2.tgz",
1620   - "integrity": "sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0="
1621   - },
1622   - "mime-db": {
1623   - "version": "1.12.0",
1624   - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.12.0.tgz",
1625   - "integrity": "sha1-PQxjGA9FjrENMlqqN9fFiuMS6dc="
1626   - },
1627   - "mime-types": {
1628   - "version": "2.0.14",
1629   - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.0.14.tgz",
1630   - "integrity": "sha1-MQ4VnbI+B3+Lsit0jav6SVcUCqY=",
1631   - "requires": {
1632   - "mime-db": "1.12.0"
1633   - }
1634   - }
1635   - }
1636   - },
1637   - "forwarded": {
1638   - "version": "0.1.2",
1639   - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz",
1640   - "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ="
1641   - },
1642   - "fragment-cache": {
1643   - "version": "0.2.1",
1644   - "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz",
1645   - "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=",
1646   - "requires": {
1647   - "map-cache": "0.2.2"
1648   - }
1649   - },
1650   - "fresh": {
1651   - "version": "0.5.2",
1652   - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
1653   - "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac="
1654   - },
1655   - "fs-extra": {
1656   - "version": "4.0.3",
1657   - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.3.tgz",
1658   - "integrity": "sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg==",
1659   - "requires": {
1660   - "graceful-fs": "4.1.11",
1661   - "jsonfile": "4.0.0",
1662   - "universalify": "0.1.2"
1663   - }
1664   - },
1665   - "fs-minipass": {
1666   - "version": "1.2.5",
1667   - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.5.tgz",
1668   - "integrity": "sha512-JhBl0skXjUPCFH7x6x61gQxrKyXsxB5gcgePLZCwfyCGGsTISMoIeObbrvVeP6Xmyaudw4TT43qV2Gz+iyd2oQ==",
1669   - "requires": {
1670   - "minipass": "2.3.4"
1671   - }
1672   - },
1673   - "fs.realpath": {
1674   - "version": "1.0.0",
1675   - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
1676   - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8="
1677   - },
1678   - "fsevents": {
1679   - "version": "1.2.4",
1680   - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.4.tgz",
1681   - "integrity": "sha512-z8H8/diyk76B7q5wg+Ud0+CqzcAF3mBBI/bA5ne5zrRUUIvNkJY//D3BqyH571KuAC4Nr7Rw7CjWX4r0y9DvNg==",
1682   - "optional": true,
1683   - "requires": {
1684   - "nan": "2.11.1",
1685   - "node-pre-gyp": "0.10.0"
1686   - },
1687   - "dependencies": {
1688   - "abbrev": {
1689   - "version": "1.1.1",
1690   - "bundled": true,
1691   - "optional": true
1692   - },
1693   - "ansi-regex": {
1694   - "version": "2.1.1",
1695   - "bundled": true
1696   - },
1697   - "aproba": {
1698   - "version": "1.2.0",
1699   - "bundled": true,
1700   - "optional": true
1701   - },
1702   - "are-we-there-yet": {
1703   - "version": "1.1.4",
1704   - "bundled": true,
1705   - "optional": true,
1706   - "requires": {
1707   - "delegates": "1.0.0",
1708   - "readable-stream": "2.3.6"
1709   - }
1710   - },
1711   - "balanced-match": {
1712   - "version": "1.0.0",
1713   - "bundled": true
1714   - },
1715   - "brace-expansion": {
1716   - "version": "1.1.11",
1717   - "bundled": true,
1718   - "requires": {
1719   - "balanced-match": "1.0.0",
1720   - "concat-map": "0.0.1"
1721   - }
1722   - },
1723   - "chownr": {
1724   - "version": "1.0.1",
1725   - "bundled": true,
1726   - "optional": true
1727   - },
1728   - "code-point-at": {
1729   - "version": "1.1.0",
1730   - "bundled": true
1731   - },
1732   - "concat-map": {
1733   - "version": "0.0.1",
1734   - "bundled": true
1735   - },
1736   - "console-control-strings": {
1737   - "version": "1.1.0",
1738   - "bundled": true
1739   - },
1740   - "core-util-is": {
1741   - "version": "1.0.2",
1742   - "bundled": true,
1743   - "optional": true
1744   - },
1745   - "debug": {
1746   - "version": "2.6.9",
1747   - "bundled": true,
1748   - "optional": true,
1749   - "requires": {
1750   - "ms": "2.0.0"
1751   - }
1752   - },
1753   - "deep-extend": {
1754   - "version": "0.5.1",
1755   - "bundled": true,
1756   - "optional": true
1757   - },
1758   - "delegates": {
1759   - "version": "1.0.0",
1760   - "bundled": true,
1761   - "optional": true
1762   - },
1763   - "detect-libc": {
1764   - "version": "1.0.3",
1765   - "bundled": true,
1766   - "optional": true
1767   - },
1768   - "fs-minipass": {
1769   - "version": "1.2.5",
1770   - "bundled": true,
1771   - "optional": true,
1772   - "requires": {
1773   - "minipass": "2.2.4"
1774   - }
1775   - },
1776   - "fs.realpath": {
1777   - "version": "1.0.0",
1778   - "bundled": true,
1779   - "optional": true
1780   - },
1781   - "gauge": {
1782   - "version": "2.7.4",
1783   - "bundled": true,
1784   - "optional": true,
1785   - "requires": {
1786   - "aproba": "1.2.0",
1787   - "console-control-strings": "1.1.0",
1788   - "has-unicode": "2.0.1",
1789   - "object-assign": "4.1.1",
1790   - "signal-exit": "3.0.2",
1791   - "string-width": "1.0.2",
1792   - "strip-ansi": "3.0.1",
1793   - "wide-align": "1.1.2"
1794   - }
1795   - },
1796   - "glob": {
1797   - "version": "7.1.2",
1798   - "bundled": true,
1799   - "optional": true,
1800   - "requires": {
1801   - "fs.realpath": "1.0.0",
1802   - "inflight": "1.0.6",
1803   - "inherits": "2.0.3",
1804   - "minimatch": "3.0.4",
1805   - "once": "1.4.0",
1806   - "path-is-absolute": "1.0.1"
1807   - }
1808   - },
1809   - "has-unicode": {
1810   - "version": "2.0.1",
1811   - "bundled": true,
1812   - "optional": true
1813   - },
1814   - "iconv-lite": {
1815   - "version": "0.4.21",
1816   - "bundled": true,
1817   - "optional": true,
1818   - "requires": {
1819   - "safer-buffer": "2.1.2"
1820   - }
1821   - },
1822   - "ignore-walk": {
1823   - "version": "3.0.1",
1824   - "bundled": true,
1825   - "optional": true,
1826   - "requires": {
1827   - "minimatch": "3.0.4"
1828   - }
1829   - },
1830   - "inflight": {
1831   - "version": "1.0.6",
1832   - "bundled": true,
1833   - "optional": true,
1834   - "requires": {
1835   - "once": "1.4.0",
1836   - "wrappy": "1.0.2"
1837   - }
1838   - },
1839   - "inherits": {
1840   - "version": "2.0.3",
1841   - "bundled": true
1842   - },
1843   - "ini": {
1844   - "version": "1.3.5",
1845   - "bundled": true,
1846   - "optional": true
1847   - },
1848   - "is-fullwidth-code-point": {
1849   - "version": "1.0.0",
1850   - "bundled": true,
1851   - "requires": {
1852   - "number-is-nan": "1.0.1"
1853   - }
1854   - },
1855   - "isarray": {
1856   - "version": "1.0.0",
1857   - "bundled": true,
1858   - "optional": true
1859   - },
1860   - "minimatch": {
1861   - "version": "3.0.4",
1862   - "bundled": true,
1863   - "requires": {
1864   - "brace-expansion": "1.1.11"
1865   - }
1866   - },
1867   - "minimist": {
1868   - "version": "0.0.8",
1869   - "bundled": true
1870   - },
1871   - "minipass": {
1872   - "version": "2.2.4",
1873   - "bundled": true,
1874   - "requires": {
1875   - "safe-buffer": "5.1.1",
1876   - "yallist": "3.0.2"
1877   - }
1878   - },
1879   - "minizlib": {
1880   - "version": "1.1.0",
1881   - "bundled": true,
1882   - "optional": true,
1883   - "requires": {
1884   - "minipass": "2.2.4"
1885   - }
1886   - },
1887   - "mkdirp": {
1888   - "version": "0.5.1",
1889   - "bundled": true,
1890   - "requires": {
1891   - "minimist": "0.0.8"
1892   - }
1893   - },
1894   - "ms": {
1895   - "version": "2.0.0",
1896   - "bundled": true,
1897   - "optional": true
1898   - },
1899   - "needle": {
1900   - "version": "2.2.0",
1901   - "bundled": true,
1902   - "optional": true,
1903   - "requires": {
1904   - "debug": "2.6.9",
1905   - "iconv-lite": "0.4.21",
1906   - "sax": "1.2.4"
1907   - }
1908   - },
1909   - "node-pre-gyp": {
1910   - "version": "0.10.0",
1911   - "bundled": true,
1912   - "optional": true,
1913   - "requires": {
1914   - "detect-libc": "1.0.3",
1915   - "mkdirp": "0.5.1",
1916   - "needle": "2.2.0",
1917   - "nopt": "4.0.1",
1918   - "npm-packlist": "1.1.10",
1919   - "npmlog": "4.1.2",
1920   - "rc": "1.2.7",
1921   - "rimraf": "2.6.2",
1922   - "semver": "5.5.0",
1923   - "tar": "4.4.1"
1924   - }
1925   - },
1926   - "nopt": {
1927   - "version": "4.0.1",
1928   - "bundled": true,
1929   - "optional": true,
1930   - "requires": {
1931   - "abbrev": "1.1.1",
1932   - "osenv": "0.1.5"
1933   - }
1934   - },
1935   - "npm-bundled": {
1936   - "version": "1.0.3",
1937   - "bundled": true,
1938   - "optional": true
1939   - },
1940   - "npm-packlist": {
1941   - "version": "1.1.10",
1942   - "bundled": true,
1943   - "optional": true,
1944   - "requires": {
1945   - "ignore-walk": "3.0.1",
1946   - "npm-bundled": "1.0.3"
1947   - }
1948   - },
1949   - "npmlog": {
1950   - "version": "4.1.2",
1951   - "bundled": true,
1952   - "optional": true,
1953   - "requires": {
1954   - "are-we-there-yet": "1.1.4",
1955   - "console-control-strings": "1.1.0",
1956   - "gauge": "2.7.4",
1957   - "set-blocking": "2.0.0"
1958   - }
1959   - },
1960   - "number-is-nan": {
1961   - "version": "1.0.1",
1962   - "bundled": true
1963   - },
1964   - "object-assign": {
1965   - "version": "4.1.1",
1966   - "bundled": true,
1967   - "optional": true
1968   - },
1969   - "once": {
1970   - "version": "1.4.0",
1971   - "bundled": true,
1972   - "requires": {
1973   - "wrappy": "1.0.2"
1974   - }
1975   - },
1976   - "os-homedir": {
1977   - "version": "1.0.2",
1978   - "bundled": true,
1979   - "optional": true
1980   - },
1981   - "os-tmpdir": {
1982   - "version": "1.0.2",
1983   - "bundled": true,
1984   - "optional": true
1985   - },
1986   - "osenv": {
1987   - "version": "0.1.5",
1988   - "bundled": true,
1989   - "optional": true,
1990   - "requires": {
1991   - "os-homedir": "1.0.2",
1992   - "os-tmpdir": "1.0.2"
1993   - }
1994   - },
1995   - "path-is-absolute": {
1996   - "version": "1.0.1",
1997   - "bundled": true,
1998   - "optional": true
1999   - },
2000   - "process-nextick-args": {
2001   - "version": "2.0.0",
2002   - "bundled": true,
2003   - "optional": true
2004   - },
2005   - "rc": {
2006   - "version": "1.2.7",
2007   - "bundled": true,
2008   - "optional": true,
2009   - "requires": {
2010   - "deep-extend": "0.5.1",
2011   - "ini": "1.3.5",
2012   - "minimist": "1.2.0",
2013   - "strip-json-comments": "2.0.1"
2014   - },
2015   - "dependencies": {
2016   - "minimist": {
2017   - "version": "1.2.0",
2018   - "bundled": true,
2019   - "optional": true
2020   - }
2021   - }
2022   - },
2023   - "readable-stream": {
2024   - "version": "2.3.6",
2025   - "bundled": true,
2026   - "optional": true,
2027   - "requires": {
2028   - "core-util-is": "1.0.2",
2029   - "inherits": "2.0.3",
2030   - "isarray": "1.0.0",
2031   - "process-nextick-args": "2.0.0",
2032   - "safe-buffer": "5.1.1",
2033   - "string_decoder": "1.1.1",
2034   - "util-deprecate": "1.0.2"
2035   - }
2036   - },
2037   - "rimraf": {
2038   - "version": "2.6.2",
2039   - "bundled": true,
2040   - "optional": true,
2041   - "requires": {
2042   - "glob": "7.1.2"
2043   - }
2044   - },
2045   - "safe-buffer": {
2046   - "version": "5.1.1",
2047   - "bundled": true
2048   - },
2049   - "safer-buffer": {
2050   - "version": "2.1.2",
2051   - "bundled": true,
2052   - "optional": true
2053   - },
2054   - "sax": {
2055   - "version": "1.2.4",
2056   - "bundled": true,
2057   - "optional": true
2058   - },
2059   - "semver": {
2060   - "version": "5.5.0",
2061   - "bundled": true,
2062   - "optional": true
2063   - },
2064   - "set-blocking": {
2065   - "version": "2.0.0",
2066   - "bundled": true,
2067   - "optional": true
2068   - },
2069   - "signal-exit": {
2070   - "version": "3.0.2",
2071   - "bundled": true,
2072   - "optional": true
2073   - },
2074   - "string-width": {
2075   - "version": "1.0.2",
2076   - "bundled": true,
2077   - "requires": {
2078   - "code-point-at": "1.1.0",
2079   - "is-fullwidth-code-point": "1.0.0",
2080   - "strip-ansi": "3.0.1"
2081   - }
2082   - },
2083   - "string_decoder": {
2084   - "version": "1.1.1",
2085   - "bundled": true,
2086   - "optional": true,
2087   - "requires": {
2088   - "safe-buffer": "5.1.1"
2089   - }
2090   - },
2091   - "strip-ansi": {
2092   - "version": "3.0.1",
2093   - "bundled": true,
2094   - "requires": {
2095   - "ansi-regex": "2.1.1"
2096   - }
2097   - },
2098   - "strip-json-comments": {
2099   - "version": "2.0.1",
2100   - "bundled": true,
2101   - "optional": true
2102   - },
2103   - "tar": {
2104   - "version": "4.4.1",
2105   - "bundled": true,
2106   - "optional": true,
2107   - "requires": {
2108   - "chownr": "1.0.1",
2109   - "fs-minipass": "1.2.5",
2110   - "minipass": "2.2.4",
2111   - "minizlib": "1.1.0",
2112   - "mkdirp": "0.5.1",
2113   - "safe-buffer": "5.1.1",
2114   - "yallist": "3.0.2"
2115   - }
  644 + },
  645 + "fast-deep-equal": {
  646 + "version": "1.1.0",
  647 + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz",
  648 + "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ="
  649 + },
  650 + "fast-json-stable-stringify": {
  651 + "version": "2.0.0",
  652 + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz",
  653 + "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I="
  654 + },
  655 + "finalhandler": {
  656 + "version": "1.1.1",
  657 + "resolved": "http://registry.npmjs.org/finalhandler/-/finalhandler-1.1.1.tgz",
  658 + "integrity": "sha512-Y1GUDo39ez4aHAw7MysnUD5JzYX+WaIj8I57kO3aEPT1fFRL4sr7mjei97FgnwhAyyzRYmQZaTHb2+9uZ1dPtg==",
  659 + "requires": {
  660 + "debug": "2.6.9",
  661 + "encodeurl": "1.0.2",
  662 + "escape-html": "1.0.3",
  663 + "on-finished": "2.3.0",
  664 + "parseurl": "1.3.2",
  665 + "statuses": "1.4.0",
  666 + "unpipe": "1.0.0"
  667 + }
  668 + },
  669 + "forever-agent": {
  670 + "version": "0.6.1",
  671 + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
  672 + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE="
  673 + },
  674 + "form-data": {
  675 + "version": "0.2.0",
  676 + "resolved": "https://registry.npmjs.org/form-data/-/form-data-0.2.0.tgz",
  677 + "integrity": "sha1-Jvi8JtpkQOKZy9z7aQNcT3em5GY=",
  678 + "requires": {
  679 + "async": "0.9.2",
  680 + "combined-stream": "0.0.7",
  681 + "mime-types": "2.0.14"
  682 + },
  683 + "dependencies": {
  684 + "async": {
  685 + "version": "0.9.2",
  686 + "resolved": "http://registry.npmjs.org/async/-/async-0.9.2.tgz",
  687 + "integrity": "sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0="
2116 688 },
2117   - "util-deprecate": {
2118   - "version": "1.0.2",
2119   - "bundled": true,
2120   - "optional": true
  689 + "mime-db": {
  690 + "version": "1.12.0",
  691 + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.12.0.tgz",
  692 + "integrity": "sha1-PQxjGA9FjrENMlqqN9fFiuMS6dc="
2121 693 },
2122   - "wide-align": {
2123   - "version": "1.1.2",
2124   - "bundled": true,
2125   - "optional": true,
  694 + "mime-types": {
  695 + "version": "2.0.14",
  696 + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.0.14.tgz",
  697 + "integrity": "sha1-MQ4VnbI+B3+Lsit0jav6SVcUCqY=",
2126 698 "requires": {
2127   - "string-width": "1.0.2"
  699 + "mime-db": "1.12.0"
2128 700 }
2129   - },
2130   - "wrappy": {
2131   - "version": "1.0.2",
2132   - "bundled": true
2133   - },
2134   - "yallist": {
2135   - "version": "3.0.2",
2136   - "bundled": true
2137 701 }
2138 702 }
2139 703 },
  704 + "forwarded": {
  705 + "version": "0.1.2",
  706 + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz",
  707 + "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ="
  708 + },
  709 + "fresh": {
  710 + "version": "0.5.2",
  711 + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
  712 + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac="
  713 + },
  714 + "fs-minipass": {
  715 + "version": "1.2.5",
  716 + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.5.tgz",
  717 + "integrity": "sha512-JhBl0skXjUPCFH7x6x61gQxrKyXsxB5gcgePLZCwfyCGGsTISMoIeObbrvVeP6Xmyaudw4TT43qV2Gz+iyd2oQ==",
  718 + "requires": {
  719 + "minipass": "2.3.4"
  720 + }
  721 + },
  722 + "fs.realpath": {
  723 + "version": "1.0.0",
  724 + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
  725 + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8="
  726 + },
2140 727 "gauge": {
2141 728 "version": "2.7.4",
2142 729 "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz",
... ... @@ -2168,16 +755,6 @@
2168 755 "is-property": "1.0.2"
2169 756 }
2170 757 },
2171   - "get-caller-file": {
2172   - "version": "1.0.3",
2173   - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz",
2174   - "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w=="
2175   - },
2176   - "get-value": {
2177   - "version": "2.0.6",
2178   - "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz",
2179   - "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg="
2180   - },
2181 758 "getpass": {
2182 759 "version": "0.1.7",
2183 760 "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
... ... @@ -2193,21 +770,6 @@
2193 770 }
2194 771 }
2195 772 },
2196   - "git-node-fs": {
2197   - "version": "1.0.0",
2198   - "resolved": "https://registry.npmjs.org/git-node-fs/-/git-node-fs-1.0.0.tgz",
2199   - "integrity": "sha1-SbIV4kLr5Dqkx1Ybu6SZUhdSCA8="
2200   - },
2201   - "git-sha1": {
2202   - "version": "0.1.2",
2203   - "resolved": "https://registry.npmjs.org/git-sha1/-/git-sha1-0.1.2.tgz",
2204   - "integrity": "sha1-WZrBkrcYdYJeE6RF86bgURjC90U="
2205   - },
2206   - "gkt": {
2207   - "version": "https://tgz.pm2.io/gkt-1.0.0.tgz",
2208   - "integrity": "sha512-zr6QQnzLt3Ja0t0XI8gws2kn7zV2p0l/D3kreNvS6hFZhVU5g+uY/30l42jbgt0XGcNBEmBDGJR71J692V92tA==",
2209   - "optional": true
2210   - },
2211 773 "glob": {
2212 774 "version": "7.1.2",
2213 775 "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz",
... ... @@ -2221,43 +783,6 @@
2221 783 "path-is-absolute": "1.0.1"
2222 784 }
2223 785 },
2224   - "glob-parent": {
2225   - "version": "3.1.0",
2226   - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz",
2227   - "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=",
2228   - "requires": {
2229   - "is-glob": "3.1.0",
2230   - "path-dirname": "1.0.2"
2231   - },
2232   - "dependencies": {
2233   - "is-glob": {
2234   - "version": "3.1.0",
2235   - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz",
2236   - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=",
2237   - "requires": {
2238   - "is-extglob": "2.1.1"
2239   - }
2240   - }
2241   - }
2242   - },
2243   - "globby": {
2244   - "version": "5.0.0",
2245   - "resolved": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz",
2246   - "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=",
2247   - "requires": {
2248   - "array-union": "1.0.2",
2249   - "arrify": "1.0.1",
2250   - "glob": "7.1.2",
2251   - "object-assign": "4.1.1",
2252   - "pify": "2.3.0",
2253   - "pinkie-promise": "2.0.1"
2254   - }
2255   - },
2256   - "graceful-fs": {
2257   - "version": "4.1.11",
2258   - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
2259   - "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg="
2260   - },
2261 786 "growl": {
2262 787 "version": "1.10.5",
2263 788 "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz",
... ... @@ -2297,35 +822,6 @@
2297 822 "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz",
2298 823 "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk="
2299 824 },
2300   - "has-value": {
2301   - "version": "1.0.0",
2302   - "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz",
2303   - "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=",
2304   - "requires": {
2305   - "get-value": "2.0.6",
2306   - "has-values": "1.0.0",
2307   - "isobject": "3.0.1"
2308   - }
2309   - },
2310   - "has-values": {
2311   - "version": "1.0.0",
2312   - "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz",
2313   - "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=",
2314   - "requires": {
2315   - "is-number": "3.0.0",
2316   - "kind-of": "4.0.0"
2317   - },
2318   - "dependencies": {
2319   - "kind-of": {
2320   - "version": "4.0.0",
2321   - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz",
2322   - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=",
2323   - "requires": {
2324   - "is-buffer": "1.1.6"
2325   - }
2326   - }
2327   - }
2328   - },
2329 825 "hawk": {
2330 826 "version": "3.1.3",
2331 827 "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz",
... ... @@ -2355,11 +851,6 @@
2355 851 "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz",
2356 852 "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0="
2357 853 },
2358   - "hosted-git-info": {
2359   - "version": "2.7.1",
2360   - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.7.1.tgz",
2361   - "integrity": "sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w=="
2362   - },
2363 854 "http-errors": {
2364 855 "version": "1.6.3",
2365 856 "resolved": "http://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz",
... ... @@ -2432,128 +923,11 @@
2432 923 "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz",
2433 924 "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw=="
2434 925 },
2435   - "inquirer": {
2436   - "version": "1.2.3",
2437   - "resolved": "http://registry.npmjs.org/inquirer/-/inquirer-1.2.3.tgz",
2438   - "integrity": "sha1-TexvMvN+97sLLtPx0aXD9UUHSRg=",
2439   - "requires": {
2440   - "ansi-escapes": "1.4.0",
2441   - "chalk": "1.1.3",
2442   - "cli-cursor": "1.0.2",
2443   - "cli-width": "2.2.0",
2444   - "external-editor": "1.1.1",
2445   - "figures": "1.7.0",
2446   - "lodash": "4.17.11",
2447   - "mute-stream": "0.0.6",
2448   - "pinkie-promise": "2.0.1",
2449   - "run-async": "2.3.0",
2450   - "rx": "4.1.0",
2451   - "string-width": "1.0.2",
2452   - "strip-ansi": "3.0.1",
2453   - "through": "2.3.8"
2454   - },
2455   - "dependencies": {
2456   - "mute-stream": {
2457   - "version": "0.0.6",
2458   - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.6.tgz",
2459   - "integrity": "sha1-SJYrGeFp/R38JAs/HnMXYnu8R9s="
2460   - }
2461   - }
2462   - },
2463   - "interpret": {
2464   - "version": "1.1.0",
2465   - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.1.0.tgz",
2466   - "integrity": "sha1-ftGxQQxqDg94z5XTuEQMY/eLhhQ="
2467   - },
2468   - "invert-kv": {
2469   - "version": "1.0.0",
2470   - "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz",
2471   - "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY="
2472   - },
2473 926 "ipaddr.js": {
2474 927 "version": "1.8.0",
2475 928 "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.8.0.tgz",
2476 929 "integrity": "sha1-6qM9bd16zo9/b+DJygRA5wZzix4="
2477 930 },
2478   - "is": {
2479   - "version": "3.2.1",
2480   - "resolved": "https://registry.npmjs.org/is/-/is-3.2.1.tgz",
2481   - "integrity": "sha1-0Kwq1V63sL7JJqUmb2xmKqqD3KU="
2482   - },
2483   - "is-accessor-descriptor": {
2484   - "version": "0.1.6",
2485   - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz",
2486   - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=",
2487   - "requires": {
2488   - "kind-of": "3.2.2"
2489   - }
2490   - },
2491   - "is-admin": {
2492   - "version": "1.0.2",
2493   - "resolved": "https://registry.npmjs.org/is-admin/-/is-admin-1.0.2.tgz",
2494   - "integrity": "sha1-jIOSSlRxFnAuVqujIj6ZWxAuLOw="
2495   - },
2496   - "is-arrayish": {
2497   - "version": "0.3.2",
2498   - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz",
2499   - "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ=="
2500   - },
2501   - "is-binary-path": {
2502   - "version": "1.0.1",
2503   - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz",
2504   - "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=",
2505   - "requires": {
2506   - "binary-extensions": "1.12.0"
2507   - }
2508   - },
2509   - "is-buffer": {
2510   - "version": "1.1.6",
2511   - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
2512   - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w=="
2513   - },
2514   - "is-builtin-module": {
2515   - "version": "1.0.0",
2516   - "resolved": "http://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz",
2517   - "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=",
2518   - "requires": {
2519   - "builtin-modules": "1.1.1"
2520   - }
2521   - },
2522   - "is-data-descriptor": {
2523   - "version": "0.1.4",
2524   - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz",
2525   - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=",
2526   - "requires": {
2527   - "kind-of": "3.2.2"
2528   - }
2529   - },
2530   - "is-descriptor": {
2531   - "version": "0.1.6",
2532   - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz",
2533   - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==",
2534   - "requires": {
2535   - "is-accessor-descriptor": "0.1.6",
2536   - "is-data-descriptor": "0.1.4",
2537   - "kind-of": "5.1.0"
2538   - },
2539   - "dependencies": {
2540   - "kind-of": {
2541   - "version": "5.1.0",
2542   - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
2543   - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw=="
2544   - }
2545   - }
2546   - },
2547   - "is-extendable": {
2548   - "version": "0.1.1",
2549   - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
2550   - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik="
2551   - },
2552   - "is-extglob": {
2553   - "version": "2.1.1",
2554   - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
2555   - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI="
2556   - },
2557 931 "is-fullwidth-code-point": {
2558 932 "version": "1.0.0",
2559 933 "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
... ... @@ -2562,14 +936,6 @@
2562 936 "number-is-nan": "1.0.1"
2563 937 }
2564 938 },
2565   - "is-glob": {
2566   - "version": "4.0.0",
2567   - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.0.tgz",
2568   - "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=",
2569   - "requires": {
2570   - "is-extglob": "2.1.1"
2571   - }
2572   - },
2573 939 "is-my-ip-valid": {
2574 940 "version": "1.0.0",
2575 941 "resolved": "https://registry.npmjs.org/is-my-ip-valid/-/is-my-ip-valid-1.0.0.tgz",
... ... @@ -2587,68 +953,16 @@
2587 953 "xtend": "4.0.1"
2588 954 }
2589 955 },
2590   - "is-number": {
2591   - "version": "3.0.0",
2592   - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
2593   - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
2594   - "requires": {
2595   - "kind-of": "3.2.2"
2596   - }
2597   - },
2598   - "is-path-cwd": {
2599   - "version": "1.0.0",
2600   - "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz",
2601   - "integrity": "sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0="
2602   - },
2603   - "is-path-in-cwd": {
2604   - "version": "1.0.1",
2605   - "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz",
2606   - "integrity": "sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==",
2607   - "requires": {
2608   - "is-path-inside": "1.0.1"
2609   - }
2610   - },
2611   - "is-path-inside": {
2612   - "version": "1.0.1",
2613   - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz",
2614   - "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=",
2615   - "requires": {
2616   - "path-is-inside": "1.0.2"
2617   - }
2618   - },
2619   - "is-plain-object": {
2620   - "version": "2.0.4",
2621   - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz",
2622   - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==",
2623   - "requires": {
2624   - "isobject": "3.0.1"
2625   - }
2626   - },
2627   - "is-promise": {
2628   - "version": "2.1.0",
2629   - "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz",
2630   - "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o="
2631   - },
2632 956 "is-property": {
2633 957 "version": "1.0.2",
2634 958 "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz",
2635 959 "integrity": "sha1-V/4cTkhHTt1lsJkR8msc1Ald2oQ="
2636 960 },
2637   - "is-stream": {
2638   - "version": "1.1.0",
2639   - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
2640   - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ="
2641   - },
2642 961 "is-typedarray": {
2643 962 "version": "1.0.0",
2644 963 "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
2645 964 "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo="
2646 965 },
2647   - "is-utf8": {
2648   - "version": "0.2.1",
2649   - "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz",
2650   - "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI="
2651   - },
2652 966 "is-windows": {
2653 967 "version": "1.0.2",
2654 968 "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz",
... ... @@ -2664,27 +978,11 @@
2664 978 "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
2665 979 "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA="
2666 980 },
2667   - "isobject": {
2668   - "version": "3.0.1",
2669   - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
2670   - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8="
2671   - },
2672 981 "isstream": {
2673 982 "version": "0.1.2",
2674 983 "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
2675 984 "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo="
2676 985 },
2677   - "js-git": {
2678   - "version": "0.7.8",
2679   - "resolved": "https://registry.npmjs.org/js-git/-/js-git-0.7.8.tgz",
2680   - "integrity": "sha1-UvplWrYYd9bxB578ZTS1VPMeVEQ=",
2681   - "requires": {
2682   - "bodec": "0.1.0",
2683   - "culvert": "0.1.2",
2684   - "git-sha1": "0.1.2",
2685   - "pako": "0.2.9"
2686   - }
2687   - },
2688 986 "jsbn": {
2689 987 "version": "0.1.1",
2690 988 "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
... ... @@ -2710,14 +1008,6 @@
2710 1008 "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
2711 1009 "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus="
2712 1010 },
2713   - "jsonfile": {
2714   - "version": "4.0.0",
2715   - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
2716   - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=",
2717   - "requires": {
2718   - "graceful-fs": "4.1.11"
2719   - }
2720   - },
2721 1011 "jsonpointer": {
2722 1012 "version": "4.0.1",
2723 1013 "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-4.0.1.tgz",
... ... @@ -2741,40 +1031,6 @@
2741 1031 }
2742 1032 }
2743 1033 },
2744   - "kind-of": {
2745   - "version": "3.2.2",
2746   - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
2747   - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
2748   - "requires": {
2749   - "is-buffer": "1.1.6"
2750   - }
2751   - },
2752   - "kuler": {
2753   - "version": "1.0.1",
2754   - "resolved": "https://registry.npmjs.org/kuler/-/kuler-1.0.1.tgz",
2755   - "integrity": "sha512-J9nVUucG1p/skKul6DU3PUZrhs0LPulNaeUOox0IyXDi8S4CztTHs1gQphhuZmzXG7VOQSf6NJfKuzteQLv9gQ==",
2756   - "requires": {
2757   - "colornames": "1.1.1"
2758   - }
2759   - },
2760   - "lazy": {
2761   - "version": "1.0.11",
2762   - "resolved": "https://registry.npmjs.org/lazy/-/lazy-1.0.11.tgz",
2763   - "integrity": "sha1-2qBoIGKCVCwIgojpdcKXwa53tpA="
2764   - },
2765   - "lazy-cache": {
2766   - "version": "1.0.4",
2767   - "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz",
2768   - "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4="
2769   - },
2770   - "lcid": {
2771   - "version": "1.0.0",
2772   - "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz",
2773   - "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=",
2774   - "requires": {
2775   - "invert-kv": "1.0.0"
2776   - }
2777   - },
2778 1034 "ldap-filter": {
2779 1035 "version": "0.2.2",
2780 1036 "resolved": "https://registry.npmjs.org/ldap-filter/-/ldap-filter-0.2.2.tgz",
... ... @@ -2819,68 +1075,16 @@
2819 1075 }
2820 1076 }
2821 1077 },
2822   - "load-json-file": {
2823   - "version": "1.1.0",
2824   - "resolved": "http://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz",
2825   - "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=",
2826   - "requires": {
2827   - "graceful-fs": "4.1.11",
2828   - "parse-json": "2.2.0",
2829   - "pify": "2.3.0",
2830   - "pinkie-promise": "2.0.1",
2831   - "strip-bom": "2.0.0"
2832   - }
2833   - },
2834 1078 "lodash": {
2835 1079 "version": "4.17.11",
2836 1080 "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz",
2837 1081 "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg=="
2838 1082 },
2839   - "lodash.assign": {
2840   - "version": "4.2.0",
2841   - "resolved": "https://registry.npmjs.org/lodash.assign/-/lodash.assign-4.2.0.tgz",
2842   - "integrity": "sha1-DZnzzNem0mHRm9rrkkUAXShYCOc="
2843   - },
2844   - "lodash.debounce": {
2845   - "version": "4.0.8",
2846   - "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz",
2847   - "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168="
2848   - },
2849   - "lodash.findindex": {
2850   - "version": "4.6.0",
2851   - "resolved": "https://registry.npmjs.org/lodash.findindex/-/lodash.findindex-4.6.0.tgz",
2852   - "integrity": "sha1-oyRd7mH7m24GJLU1ElYku2nBEQY="
2853   - },
2854   - "lodash.foreach": {
2855   - "version": "4.5.0",
2856   - "resolved": "https://registry.npmjs.org/lodash.foreach/-/lodash.foreach-4.5.0.tgz",
2857   - "integrity": "sha1-Gmo16s5AEoDH8G3d7DUWWrJ+PlM="
2858   - },
2859   - "lodash.get": {
2860   - "version": "4.4.2",
2861   - "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz",
2862   - "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk="
2863   - },
2864   - "lodash.isequal": {
2865   - "version": "4.5.0",
2866   - "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz",
2867   - "integrity": "sha1-QVxEePK8wwEgwizhDtMib30+GOA="
2868   - },
2869 1083 "lodash.kebabcase": {
2870 1084 "version": "4.1.1",
2871 1085 "resolved": "https://registry.npmjs.org/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz",
2872 1086 "integrity": "sha1-hImxyw0p/4gZXM7KRI/21swpXDY="
2873 1087 },
2874   - "lodash.last": {
2875   - "version": "3.0.0",
2876   - "resolved": "https://registry.npmjs.org/lodash.last/-/lodash.last-3.0.0.tgz",
2877   - "integrity": "sha1-JC9mMRLdTG5jcoxgo8kJ0b2tvUw="
2878   - },
2879   - "lodash.merge": {
2880   - "version": "4.6.1",
2881   - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.1.tgz",
2882   - "integrity": "sha512-AOYza4+Hf5z1/0Hztxpm2/xiPZgi/cjMqdnKTUWTBSKchJlxXXuUSxCCl8rJlf4g6yww/j6mA8nC8Hw/EZWxKQ=="
2883   - },
2884 1088 "log4js": {
2885 1089 "version": "3.0.6",
2886 1090 "resolved": "https://registry.npmjs.org/log4js/-/log4js-3.0.6.tgz",
... ... @@ -2908,43 +1112,6 @@
2908 1112 }
2909 1113 }
2910 1114 },
2911   - "logform": {
2912   - "version": "1.10.0",
2913   - "resolved": "https://registry.npmjs.org/logform/-/logform-1.10.0.tgz",
2914   - "integrity": "sha512-em5ojIhU18fIMOw/333mD+ZLE2fis0EzXl1ZwHx4iQzmpQi6odNiY/t+ITNr33JZhT9/KEaH+UPIipr6a9EjWg==",
2915   - "requires": {
2916   - "colors": "1.3.2",
2917   - "fast-safe-stringify": "2.0.6",
2918   - "fecha": "2.3.3",
2919   - "ms": "2.1.1",
2920   - "triple-beam": "1.3.0"
2921   - },
2922   - "dependencies": {
2923   - "ms": {
2924   - "version": "2.1.1",
2925   - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
2926   - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg=="
2927   - }
2928   - }
2929   - },
2930   - "longest": {
2931   - "version": "1.0.1",
2932   - "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz",
2933   - "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc="
2934   - },
2935   - "map-cache": {
2936   - "version": "0.2.2",
2937   - "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz",
2938   - "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8="
2939   - },
2940   - "map-visit": {
2941   - "version": "1.0.0",
2942   - "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz",
2943   - "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=",
2944   - "requires": {
2945   - "object-visit": "1.0.1"
2946   - }
2947   - },
2948 1115 "media-typer": {
2949 1116 "version": "0.3.0",
2950 1117 "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
... ... @@ -2961,38 +1128,11 @@
2961 1128 "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
2962 1129 "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E="
2963 1130 },
2964   - "methods": {
2965   - "version": "1.1.2",
2966   - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
2967   - "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4="
2968   - },
2969   - "micromatch": {
2970   - "version": "3.1.10",
2971   - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz",
2972   - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==",
2973   - "requires": {
2974   - "arr-diff": "4.0.0",
2975   - "array-unique": "0.3.2",
2976   - "braces": "2.3.2",
2977   - "define-property": "2.0.2",
2978   - "extend-shallow": "3.0.2",
2979   - "extglob": "2.0.4",
2980   - "fragment-cache": "0.2.1",
2981   - "kind-of": "6.0.2",
2982   - "nanomatch": "1.2.13",
2983   - "object.pick": "1.3.0",
2984   - "regex-not": "1.0.2",
2985   - "snapdragon": "0.8.2",
2986   - "to-regex": "3.0.2"
2987   - },
2988   - "dependencies": {
2989   - "kind-of": {
2990   - "version": "6.0.2",
2991   - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
2992   - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA=="
2993   - }
2994   - }
2995   - },
  1131 + "methods": {
  1132 + "version": "1.1.2",
  1133 + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
  1134 + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4="
  1135 + },
2996 1136 "mime": {
2997 1137 "version": "1.4.1",
2998 1138 "resolved": "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz",
... ... @@ -3041,25 +1181,6 @@
3041 1181 "minipass": "2.3.4"
3042 1182 }
3043 1183 },
3044   - "mixin-deep": {
3045   - "version": "1.3.1",
3046   - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz",
3047   - "integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==",
3048   - "requires": {
3049   - "for-in": "1.0.2",
3050   - "is-extendable": "1.0.1"
3051   - },
3052   - "dependencies": {
3053   - "is-extendable": {
3054   - "version": "1.0.1",
3055   - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
3056   - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
3057   - "requires": {
3058   - "is-plain-object": "2.0.4"
3059   - }
3060   - }
3061   - }
3062   - },
3063 1184 "mkdirp": {
3064 1185 "version": "0.5.1",
3065 1186 "resolved": "http://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
... ... @@ -3114,14 +1235,6 @@
3114 1235 "resolved": "https://registry.npmjs.org/moment/-/moment-2.22.2.tgz",
3115 1236 "integrity": "sha1-PCV/mDn8DpP/UxSWMiOeuQeD/2Y="
3116 1237 },
3117   - "moment-timezone": {
3118   - "version": "0.5.21",
3119   - "resolved": "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.21.tgz",
3120   - "integrity": "sha512-j96bAh4otsgj3lKydm3K7kdtA3iKf2m6MY2iSYCzCm5a1zmHo1g+aK3068dDEeocLZQIS9kU8bsdQHLqEvgW0A==",
3121   - "requires": {
3122   - "moment": "2.22.2"
3123   - }
3124   - },
3125 1238 "mongodb": {
3126 1239 "version": "3.1.8",
3127 1240 "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-3.1.8.tgz",
... ... @@ -3142,28 +1255,11 @@
3142 1255 "saslprep": "1.0.2"
3143 1256 }
3144 1257 },
3145   - "morgan": {
3146   - "version": "1.9.1",
3147   - "resolved": "https://registry.npmjs.org/morgan/-/morgan-1.9.1.tgz",
3148   - "integrity": "sha512-HQStPIV4y3afTiCYVxirakhlCfGkI161c76kKFca7Fk1JusM//Qeo1ej2XaMniiNeaZklMVrh3vTtIzpzwbpmA==",
3149   - "requires": {
3150   - "basic-auth": "2.0.1",
3151   - "debug": "2.6.9",
3152   - "depd": "1.1.2",
3153   - "on-finished": "2.3.0",
3154   - "on-headers": "1.0.1"
3155   - }
3156   - },
3157 1258 "ms": {
3158 1259 "version": "2.0.0",
3159 1260 "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
3160 1261 "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
3161 1262 },
3162   - "mute-stream": {
3163   - "version": "0.0.7",
3164   - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz",
3165   - "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s="
3166   - },
3167 1263 "mv": {
3168 1264 "version": "2.1.1",
3169 1265 "resolved": "https://registry.npmjs.org/mv/-/mv-2.1.1.tgz",
... ... @@ -3181,31 +1277,6 @@
3181 1277 "integrity": "sha512-iji6k87OSXa0CcrLl9z+ZiYSuR2o+c0bGuNmXdrhTQTakxytAFsC56SArGYoiHlJlFoHSnvmhpceZJaXkVuOtA==",
3182 1278 "optional": true
3183 1279 },
3184   - "nanomatch": {
3185   - "version": "1.2.13",
3186   - "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz",
3187   - "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==",
3188   - "requires": {
3189   - "arr-diff": "4.0.0",
3190   - "array-unique": "0.3.2",
3191   - "define-property": "2.0.2",
3192   - "extend-shallow": "3.0.2",
3193   - "fragment-cache": "0.2.1",
3194   - "is-windows": "1.0.2",
3195   - "kind-of": "6.0.2",
3196   - "object.pick": "1.3.0",
3197   - "regex-not": "1.0.2",
3198   - "snapdragon": "0.8.2",
3199   - "to-regex": "3.0.2"
3200   - },
3201   - "dependencies": {
3202   - "kind-of": {
3203   - "version": "6.0.2",
3204   - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
3205   - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA=="
3206   - }
3207   - }
3208   - },
3209 1280 "ncp": {
3210 1281 "version": "2.0.0",
3211 1282 "resolved": "http://registry.npmjs.org/ncp/-/ncp-2.0.0.tgz",
... ... @@ -3274,23 +1345,6 @@
3274 1345 }
3275 1346 }
3276 1347 },
3277   - "node-windows": {
3278   - "version": "0.1.14",
3279   - "resolved": "https://registry.npmjs.org/node-windows/-/node-windows-0.1.14.tgz",
3280   - "integrity": "sha1-MbsFA9o7xjfyv6qLJmZAouktiR8=",
3281   - "requires": {
3282   - "optimist": "0.6.1",
3283   - "xml": "0.0.12"
3284   - }
3285   - },
3286   - "nodegit-promise": {
3287   - "version": "4.0.0",
3288   - "resolved": "https://registry.npmjs.org/nodegit-promise/-/nodegit-promise-4.0.0.tgz",
3289   - "integrity": "sha1-VyKxhPLfcycWEGSnkdLoQskWezQ=",
3290   - "requires": {
3291   - "asap": "2.0.6"
3292   - }
3293   - },
3294 1348 "nopt": {
3295 1349 "version": "4.0.1",
3296 1350 "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.1.tgz",
... ... @@ -3300,25 +1354,6 @@
3300 1354 "osenv": "0.1.5"
3301 1355 }
3302 1356 },
3303   - "normalize-package-data": {
3304   - "version": "2.4.0",
3305   - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz",
3306   - "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==",
3307   - "requires": {
3308   - "hosted-git-info": "2.7.1",
3309   - "is-builtin-module": "1.0.0",
3310   - "semver": "5.6.0",
3311   - "validate-npm-package-license": "3.0.4"
3312   - }
3313   - },
3314   - "normalize-path": {
3315   - "version": "2.1.1",
3316   - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz",
3317   - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=",
3318   - "requires": {
3319   - "remove-trailing-separator": "1.1.0"
3320   - }
3321   - },
3322 1357 "npm-bundled": {
3323 1358 "version": "1.0.5",
3324 1359 "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.0.5.tgz",
... ... @@ -3344,22 +1379,6 @@
3344 1379 "set-blocking": "2.0.0"
3345 1380 }
3346 1381 },
3347   - "nssocket": {
3348   - "version": "0.6.0",
3349   - "resolved": "https://registry.npmjs.org/nssocket/-/nssocket-0.6.0.tgz",
3350   - "integrity": "sha1-Wflvb/MhVm8zxw99vu7N/cBxVPo=",
3351   - "requires": {
3352   - "eventemitter2": "0.4.14",
3353   - "lazy": "1.0.11"
3354   - },
3355   - "dependencies": {
3356   - "eventemitter2": {
3357   - "version": "0.4.14",
3358   - "resolved": "http://registry.npmjs.org/eventemitter2/-/eventemitter2-0.4.14.tgz",
3359   - "integrity": "sha1-j2G3XN4BKy6esoTUVFWDtWQ7Yas="
3360   - }
3361   - }
3362   - },
3363 1382 "number-is-nan": {
3364 1383 "version": "1.0.1",
3365 1384 "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz",
... ... @@ -3375,42 +1394,6 @@
3375 1394 "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
3376 1395 "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM="
3377 1396 },
3378   - "object-copy": {
3379   - "version": "0.1.0",
3380   - "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz",
3381   - "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=",
3382   - "requires": {
3383   - "copy-descriptor": "0.1.1",
3384   - "define-property": "0.2.5",
3385   - "kind-of": "3.2.2"
3386   - },
3387   - "dependencies": {
3388   - "define-property": {
3389   - "version": "0.2.5",
3390   - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
3391   - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
3392   - "requires": {
3393   - "is-descriptor": "0.1.6"
3394   - }
3395   - }
3396   - }
3397   - },
3398   - "object-visit": {
3399   - "version": "1.0.1",
3400   - "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz",
3401   - "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=",
3402   - "requires": {
3403   - "isobject": "3.0.1"
3404   - }
3405   - },
3406   - "object.pick": {
3407   - "version": "1.3.0",
3408   - "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz",
3409   - "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=",
3410   - "requires": {
3411   - "isobject": "3.0.1"
3412   - }
3413   - },
3414 1397 "on-finished": {
3415 1398 "version": "2.3.0",
3416 1399 "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
... ... @@ -3432,43 +1415,11 @@
3432 1415 "wrappy": "1.0.2"
3433 1416 }
3434 1417 },
3435   - "one-time": {
3436   - "version": "0.0.4",
3437   - "resolved": "https://registry.npmjs.org/one-time/-/one-time-0.0.4.tgz",
3438   - "integrity": "sha1-+M33eISCb+Tf+T46nMN7HkSAdC4="
3439   - },
3440   - "onetime": {
3441   - "version": "1.1.0",
3442   - "resolved": "http://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz",
3443   - "integrity": "sha1-ofeDj4MUxRbwXs78vEzP4EtO14k="
3444   - },
3445   - "optimist": {
3446   - "version": "0.6.1",
3447   - "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz",
3448   - "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=",
3449   - "requires": {
3450   - "minimist": "0.0.8",
3451   - "wordwrap": "0.0.2"
3452   - }
3453   - },
3454 1418 "os-homedir": {
3455 1419 "version": "1.0.2",
3456 1420 "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz",
3457 1421 "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M="
3458 1422 },
3459   - "os-locale": {
3460   - "version": "1.4.0",
3461   - "resolved": "http://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz",
3462   - "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=",
3463   - "requires": {
3464   - "lcid": "1.0.0"
3465   - }
3466   - },
3467   - "os-shim": {
3468   - "version": "0.1.3",
3469   - "resolved": "https://registry.npmjs.org/os-shim/-/os-shim-0.1.3.tgz",
3470   - "integrity": "sha1-a2LDeRz3kJ6jXtRuF2WLtBfLORc="
3471   - },
3472 1423 "os-tmpdir": {
3473 1424 "version": "1.0.2",
3474 1425 "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
... ... @@ -3529,29 +1480,11 @@
3529 1480 "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz",
3530 1481 "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M="
3531 1482 },
3532   - "pako": {
3533   - "version": "0.2.9",
3534   - "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz",
3535   - "integrity": "sha1-8/dSL073gjSNqBYbrZ7P1Rv4OnU="
3536   - },
3537   - "parse-json": {
3538   - "version": "2.2.0",
3539   - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz",
3540   - "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=",
3541   - "requires": {
3542   - "error-ex": "1.3.2"
3543   - }
3544   - },
3545 1483 "parseurl": {
3546 1484 "version": "1.3.2",
3547 1485 "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.2.tgz",
3548 1486 "integrity": "sha1-/CidTtiZMRlGDBViUyYs3I3mW/M="
3549 1487 },
3550   - "pascalcase": {
3551   - "version": "0.1.1",
3552   - "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz",
3553   - "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ="
3554   - },
3555 1488 "passport": {
3556 1489 "version": "0.4.0",
3557 1490 "resolved": "https://registry.npmjs.org/passport/-/passport-0.4.0.tgz",
... ... @@ -3588,54 +1521,21 @@
3588 1521 "resolved": "https://registry.npmjs.org/passport-strategy/-/passport-strategy-1.0.0.tgz",
3589 1522 "integrity": "sha1-tVOaqPwiWj0a0XlHbd8ja0QPUuQ="
3590 1523 },
3591   - "path-dirname": {
3592   - "version": "1.0.2",
3593   - "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz",
3594   - "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA="
3595   - },
3596   - "path-exists": {
3597   - "version": "2.1.0",
3598   - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz",
3599   - "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=",
3600   - "requires": {
3601   - "pinkie-promise": "2.0.1"
3602   - }
3603   - },
3604 1524 "path-is-absolute": {
3605 1525 "version": "1.0.1",
3606 1526 "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
3607 1527 "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18="
3608 1528 },
3609   - "path-is-inside": {
3610   - "version": "1.0.2",
3611   - "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz",
3612   - "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM="
3613   - },
3614 1529 "path-key": {
3615 1530 "version": "2.0.1",
3616 1531 "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz",
3617 1532 "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A="
3618 1533 },
3619   - "path-parse": {
3620   - "version": "1.0.6",
3621   - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz",
3622   - "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw=="
3623   - },
3624 1534 "path-to-regexp": {
3625 1535 "version": "0.1.7",
3626 1536 "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
3627 1537 "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w="
3628 1538 },
3629   - "path-type": {
3630   - "version": "1.1.0",
3631   - "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz",
3632   - "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=",
3633   - "requires": {
3634   - "graceful-fs": "4.1.11",
3635   - "pify": "2.3.0",
3636   - "pinkie-promise": "2.0.1"
3637   - }
3638   - },
3639 1539 "pause": {
3640 1540 "version": "0.0.1",
3641 1541 "resolved": "https://registry.npmjs.org/pause/-/pause-0.0.1.tgz",
... ... @@ -3646,19 +1546,6 @@
3646 1546 "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
3647 1547 "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns="
3648 1548 },
3649   - "pidusage": {
3650   - "version": "2.0.17",
3651   - "resolved": "https://registry.npmjs.org/pidusage/-/pidusage-2.0.17.tgz",
3652   - "integrity": "sha512-N8X5v18rBmlBoArfS83vrnD0gIFyZkXEo7a5pAS2aT0i2OLVymFb2AzVg+v8l/QcXnE1JwZcaXR8daJcoJqtjw==",
3653   - "requires": {
3654   - "safe-buffer": "5.1.2"
3655   - }
3656   - },
3657   - "pify": {
3658   - "version": "2.3.0",
3659   - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
3660   - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw="
3661   - },
3662 1549 "pinkie": {
3663 1550 "version": "2.0.4",
3664 1551 "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz",
... ... @@ -3677,232 +1564,11 @@
3677 1564 "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-7.0.0.tgz",
3678 1565 "integrity": "sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow=="
3679 1566 },
3680   - "pm2": {
3681   - "version": "3.2.2",
3682   - "resolved": "https://registry.npmjs.org/pm2/-/pm2-3.2.2.tgz",
3683   - "integrity": "sha512-Un3S5hirVHy48Pqrxgrqt6deLWf2E9pVeKwFCG0zbldyq415D3QW69KG+p1Rc2S36nuW2QEHoQyoTNai7rJz5Q==",
3684   - "requires": {
3685   - "@pm2/agent": "0.5.16",
3686   - "@pm2/io": "2.4.5",
3687   - "@pm2/js-api": "0.5.27",
3688   - "async": "2.6.1",
3689   - "blessed": "0.1.81",
3690   - "chalk": "2.4.1",
3691   - "chokidar": "2.0.4",
3692   - "cli-table-redemption": "1.0.1",
3693   - "commander": "2.15.1",
3694   - "cron": "1.4.1",
3695   - "date-fns": "1.29.0",
3696   - "debug": "3.2.6",
3697   - "eventemitter2": "5.0.1",
3698   - "fclone": "1.0.11",
3699   - "gkt": "https://tgz.pm2.io/gkt-1.0.0.tgz",
3700   - "mkdirp": "0.5.1",
3701   - "moment": "2.22.2",
3702   - "needle": "2.2.4",
3703   - "nssocket": "0.6.0",
3704   - "pidusage": "2.0.17",
3705   - "pm2-axon": "3.3.0",
3706   - "pm2-axon-rpc": "0.5.1",
3707   - "pm2-deploy": "0.3.10",
3708   - "pm2-multimeter": "0.1.2",
3709   - "promptly": "2.2.0",
3710   - "semver": "5.6.0",
3711   - "shelljs": "0.8.2",
3712   - "source-map-support": "0.5.9",
3713   - "sprintf-js": "1.1.1",
3714   - "v8-compile-cache": "2.0.2",
3715   - "vizion": "2.0.2",
3716   - "yamljs": "0.3.0"
3717   - },
3718   - "dependencies": {
3719   - "ansi-styles": {
3720   - "version": "3.2.1",
3721   - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
3722   - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
3723   - "requires": {
3724   - "color-convert": "1.9.3"
3725   - }
3726   - },
3727   - "chalk": {
3728   - "version": "2.4.1",
3729   - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz",
3730   - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==",
3731   - "requires": {
3732   - "ansi-styles": "3.2.1",
3733   - "escape-string-regexp": "1.0.5",
3734   - "supports-color": "5.5.0"
3735   - }
3736   - },
3737   - "commander": {
3738   - "version": "2.15.1",
3739   - "resolved": "http://registry.npmjs.org/commander/-/commander-2.15.1.tgz",
3740   - "integrity": "sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag=="
3741   - },
3742   - "debug": {
3743   - "version": "3.2.6",
3744   - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz",
3745   - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==",
3746   - "requires": {
3747   - "ms": "2.1.1"
3748   - }
3749   - },
3750   - "ms": {
3751   - "version": "2.1.1",
3752   - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
3753   - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg=="
3754   - },
3755   - "supports-color": {
3756   - "version": "5.5.0",
3757   - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
3758   - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
3759   - "requires": {
3760   - "has-flag": "3.0.0"
3761   - }
3762   - }
3763   - }
3764   - },
3765   - "pm2-axon": {
3766   - "version": "3.3.0",
3767   - "resolved": "https://registry.npmjs.org/pm2-axon/-/pm2-axon-3.3.0.tgz",
3768   - "integrity": "sha512-dAFlFYRuFbFjX7oAk41zT+dx86EuaFX/TgOp5QpUKRKwxb946IM6ydnoH5sSTkdI2pHSVZ+3Am8n/l0ocr7jdQ==",
3769   - "requires": {
3770   - "amp": "0.3.1",
3771   - "amp-message": "0.1.2",
3772   - "debug": "3.2.6",
3773   - "escape-regexp": "0.0.1"
3774   - },
3775   - "dependencies": {
3776   - "debug": {
3777   - "version": "3.2.6",
3778   - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz",
3779   - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==",
3780   - "requires": {
3781   - "ms": "2.1.1"
3782   - }
3783   - },
3784   - "ms": {
3785   - "version": "2.1.1",
3786   - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
3787   - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg=="
3788   - }
3789   - }
3790   - },
3791   - "pm2-axon-rpc": {
3792   - "version": "0.5.1",
3793   - "resolved": "https://registry.npmjs.org/pm2-axon-rpc/-/pm2-axon-rpc-0.5.1.tgz",
3794   - "integrity": "sha512-hT8gN3/j05895QLXpwg+Ws8PjO4AVID6Uf9StWpud9HB2homjc1KKCcI0vg9BNOt56FmrqKDT1NQgheIz35+sA==",
3795   - "requires": {
3796   - "debug": "3.2.6"
3797   - },
3798   - "dependencies": {
3799   - "debug": {
3800   - "version": "3.2.6",
3801   - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz",
3802   - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==",
3803   - "requires": {
3804   - "ms": "2.1.1"
3805   - }
3806   - },
3807   - "ms": {
3808   - "version": "2.1.1",
3809   - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
3810   - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg=="
3811   - }
3812   - }
3813   - },
3814   - "pm2-deploy": {
3815   - "version": "0.3.10",
3816   - "resolved": "https://registry.npmjs.org/pm2-deploy/-/pm2-deploy-0.3.10.tgz",
3817   - "integrity": "sha512-WagPKsX+LDCe8wLCL5nzu8RQvVUQ5GlFdJRVYCL0ogFnHfYRym91qNU4PkNSWSq11pdvG8la7DTjdW6FWXc8lw==",
3818   - "requires": {
3819   - "async": "2.6.1",
3820   - "tv4": "1.3.0"
3821   - }
3822   - },
3823   - "pm2-multimeter": {
3824   - "version": "0.1.2",
3825   - "resolved": "https://registry.npmjs.org/pm2-multimeter/-/pm2-multimeter-0.1.2.tgz",
3826   - "integrity": "sha1-Gh5VFT1BoFU0zqI8/oYKuqDrSs4=",
3827   - "requires": {
3828   - "charm": "0.1.2"
3829   - }
3830   - },
3831   - "pm2-windows-service": {
3832   - "version": "0.2.1",
3833   - "resolved": "https://registry.npmjs.org/pm2-windows-service/-/pm2-windows-service-0.2.1.tgz",
3834   - "integrity": "sha512-qn3yeXnLZ3FrHoR8LMtBn9jMyf3LO6HEoUJbr3EnSrL8N4XIKr6gzSgxSQHPjk+90PjfIpt8EzbZwDXLpH7kCQ==",
3835   - "requires": {
3836   - "co": "4.6.0",
3837   - "co-event": "0.1.0",
3838   - "del": "2.2.2",
3839   - "fs-extra": "4.0.3",
3840   - "inquirer": "1.2.3",
3841   - "is-admin": "1.0.2",
3842   - "node-windows": "0.1.14",
3843   - "promisify-node": "0.3.0",
3844   - "shelljs": "0.7.8",
3845   - "yargs": "4.8.1"
3846   - },
3847   - "dependencies": {
3848   - "cliui": {
3849   - "version": "3.2.0",
3850   - "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz",
3851   - "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=",
3852   - "requires": {
3853   - "string-width": "1.0.2",
3854   - "strip-ansi": "3.0.1",
3855   - "wrap-ansi": "2.1.0"
3856   - }
3857   - },
3858   - "shelljs": {
3859   - "version": "0.7.8",
3860   - "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.7.8.tgz",
3861   - "integrity": "sha1-3svPh0sNHl+3LhSxZKloMEjprLM=",
3862   - "requires": {
3863   - "glob": "7.1.2",
3864   - "interpret": "1.1.0",
3865   - "rechoir": "0.6.2"
3866   - }
3867   - },
3868   - "window-size": {
3869   - "version": "0.2.0",
3870   - "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.2.0.tgz",
3871   - "integrity": "sha1-tDFbtCFKPXBY6+7okuE/ok2YsHU="
3872   - },
3873   - "yargs": {
3874   - "version": "4.8.1",
3875   - "resolved": "http://registry.npmjs.org/yargs/-/yargs-4.8.1.tgz",
3876   - "integrity": "sha1-wMQpJMpKqmsObaFznfshZDn53cA=",
3877   - "requires": {
3878   - "cliui": "3.2.0",
3879   - "decamelize": "1.2.0",
3880   - "get-caller-file": "1.0.3",
3881   - "lodash.assign": "4.2.0",
3882   - "os-locale": "1.4.0",
3883   - "read-pkg-up": "1.0.1",
3884   - "require-directory": "2.1.1",
3885   - "require-main-filename": "1.0.1",
3886   - "set-blocking": "2.0.0",
3887   - "string-width": "1.0.2",
3888   - "which-module": "1.0.0",
3889   - "window-size": "0.2.0",
3890   - "y18n": "3.2.1",
3891   - "yargs-parser": "2.4.1"
3892   - }
3893   - }
3894   - }
3895   - },
3896 1567 "pope": {
3897 1568 "version": "1.0.5",
3898 1569 "resolved": "https://registry.npmjs.org/pope/-/pope-1.0.5.tgz",
3899 1570 "integrity": "sha512-53FgeyiX79LOvZvviqFSLFT3otSRIpPv4uTDRscoWaJlr1LWCaTB+ouhvCouj08Ag28pM18FZv9Y2+wmimILAA=="
3900 1571 },
3901   - "posix-character-classes": {
3902   - "version": "0.1.1",
3903   - "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz",
3904   - "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs="
3905   - },
3906 1572 "precond": {
3907 1573 "version": "0.2.3",
3908 1574 "resolved": "https://registry.npmjs.org/precond/-/precond-0.2.3.tgz",
... ... @@ -3913,22 +1579,6 @@
3913 1579 "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz",
3914 1580 "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw=="
3915 1581 },
3916   - "promisify-node": {
3917   - "version": "0.3.0",
3918   - "resolved": "https://registry.npmjs.org/promisify-node/-/promisify-node-0.3.0.tgz",
3919   - "integrity": "sha1-tLVaz5D6p9K4uQyjlomQhsAwYM8=",
3920   - "requires": {
3921   - "nodegit-promise": "4.0.0"
3922   - }
3923   - },
3924   - "promptly": {
3925   - "version": "2.2.0",
3926   - "resolved": "https://registry.npmjs.org/promptly/-/promptly-2.2.0.tgz",
3927   - "integrity": "sha1-KhP6BjaIoqWYOxYf/wEIoH0m/HQ=",
3928   - "requires": {
3929   - "read": "1.0.7"
3930   - }
3931   - },
3932 1582 "proxy-addr": {
3933 1583 "version": "2.0.4",
3934 1584 "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.4.tgz",
... ... @@ -3997,33 +1647,6 @@
3997 1647 }
3998 1648 }
3999 1649 },
4000   - "read": {
4001   - "version": "1.0.7",
4002   - "resolved": "https://registry.npmjs.org/read/-/read-1.0.7.tgz",
4003   - "integrity": "sha1-s9oZvQUkMal2cdRKQmNK33ELQMQ=",
4004   - "requires": {
4005   - "mute-stream": "0.0.7"
4006   - }
4007   - },
4008   - "read-pkg": {
4009   - "version": "1.1.0",
4010   - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz",
4011   - "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=",
4012   - "requires": {
4013   - "load-json-file": "1.1.0",
4014   - "normalize-package-data": "2.4.0",
4015   - "path-type": "1.1.0"
4016   - }
4017   - },
4018   - "read-pkg-up": {
4019   - "version": "1.0.1",
4020   - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz",
4021   - "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=",
4022   - "requires": {
4023   - "find-up": "1.1.2",
4024   - "read-pkg": "1.1.0"
4025   - }
4026   - },
4027 1650 "read-text-file": {
4028 1651 "version": "1.1.0",
4029 1652 "resolved": "https://registry.npmjs.org/read-text-file/-/read-text-file-1.1.0.tgz",
... ... @@ -4047,24 +1670,6 @@
4047 1670 "util-deprecate": "1.0.2"
4048 1671 }
4049 1672 },
4050   - "readdirp": {
4051   - "version": "2.2.1",
4052   - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz",
4053   - "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==",
4054   - "requires": {
4055   - "graceful-fs": "4.1.11",
4056   - "micromatch": "3.1.10",
4057   - "readable-stream": "2.3.6"
4058   - }
4059   - },
4060   - "rechoir": {
4061   - "version": "0.6.2",
4062   - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz",
4063   - "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=",
4064   - "requires": {
4065   - "resolve": "1.8.1"
4066   - }
4067   - },
4068 1673 "redis": {
4069 1674 "version": "2.8.0",
4070 1675 "resolved": "https://registry.npmjs.org/redis/-/redis-2.8.0.tgz",
... ... @@ -4081,33 +1686,9 @@
4081 1686 "integrity": "sha512-cu8EF+MtkwI4DLIT0x9P8qNTLFhQD4jLfxLR0cCNkeGzs87FN6879JOJwNQR/1zD7aSYNbU0hgsV9zGY71Itvw=="
4082 1687 },
4083 1688 "redis-parser": {
4084   - "version": "2.6.0",
4085   - "resolved": "https://registry.npmjs.org/redis-parser/-/redis-parser-2.6.0.tgz",
4086   - "integrity": "sha1-Uu0J2srBCPGmMcB+m2mUHnoZUEs="
4087   - },
4088   - "regex-not": {
4089   - "version": "1.0.2",
4090   - "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz",
4091   - "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==",
4092   - "requires": {
4093   - "extend-shallow": "3.0.2",
4094   - "safe-regex": "1.1.0"
4095   - }
4096   - },
4097   - "remove-trailing-separator": {
4098   - "version": "1.1.0",
4099   - "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz",
4100   - "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8="
4101   - },
4102   - "repeat-element": {
4103   - "version": "1.1.3",
4104   - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz",
4105   - "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g=="
4106   - },
4107   - "repeat-string": {
4108   - "version": "1.6.1",
4109   - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz",
4110   - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc="
  1689 + "version": "2.6.0",
  1690 + "resolved": "https://registry.npmjs.org/redis-parser/-/redis-parser-2.6.0.tgz",
  1691 + "integrity": "sha1-Uu0J2srBCPGmMcB+m2mUHnoZUEs="
4111 1692 },
4112 1693 "request": {
4113 1694 "version": "2.74.0",
... ... @@ -4172,16 +1753,6 @@
4172 1753 }
4173 1754 }
4174 1755 },
4175   - "require-directory": {
4176   - "version": "2.1.1",
4177   - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
4178   - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I="
4179   - },
4180   - "require-main-filename": {
4181   - "version": "1.0.1",
4182   - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz",
4183   - "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE="
4184   - },
4185 1756 "require_optional": {
4186 1757 "version": "1.0.1",
4187 1758 "resolved": "https://registry.npmjs.org/require_optional/-/require_optional-1.0.1.tgz",
... ... @@ -4191,55 +1762,21 @@
4191 1762 "semver": "5.6.0"
4192 1763 }
4193 1764 },
4194   - "resolve": {
4195   - "version": "1.8.1",
4196   - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.8.1.tgz",
4197   - "integrity": "sha512-AicPrAC7Qu1JxPCZ9ZgCZlY35QgFnNqc+0LtbRNxnVw4TXvjQ72wnuL9JQcEBgXkI9JM8MsT9kaQoHcpCRJOYA==",
4198   - "requires": {
4199   - "path-parse": "1.0.6"
4200   - }
4201   - },
4202 1765 "resolve-from": {
4203 1766 "version": "2.0.0",
4204 1767 "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-2.0.0.tgz",
4205 1768 "integrity": "sha1-lICrIOlP+h2egKgEx+oUdhGWa1c="
4206 1769 },
4207   - "resolve-url": {
4208   - "version": "0.2.1",
4209   - "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz",
4210   - "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo="
4211   - },
4212   - "restore-cursor": {
4213   - "version": "1.0.1",
4214   - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz",
4215   - "integrity": "sha1-NGYfRohjJ/7SmRR5FSJS35LapUE=",
4216   - "requires": {
4217   - "exit-hook": "1.1.1",
4218   - "onetime": "1.1.0"
4219   - }
4220   - },
4221   - "ret": {
4222   - "version": "0.1.15",
4223   - "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz",
4224   - "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg=="
4225   - },
4226 1770 "rfdc": {
4227 1771 "version": "1.1.2",
4228 1772 "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.1.2.tgz",
4229 1773 "integrity": "sha512-92ktAgvZhBzYTIK0Mja9uen5q5J3NRVMoDkJL2VMwq6SXjVCgqvQeVP2XAaUY6HT+XpQYeLSjb3UoitBryKmdA=="
4230 1774 },
4231   - "right-align": {
4232   - "version": "0.1.3",
4233   - "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz",
4234   - "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=",
4235   - "requires": {
4236   - "align-text": "0.1.4"
4237   - }
4238   - },
4239 1775 "rimraf": {
4240 1776 "version": "2.4.5",
4241 1777 "resolved": "http://registry.npmjs.org/rimraf/-/rimraf-2.4.5.tgz",
4242 1778 "integrity": "sha1-7nEM5dk6j9uFb7Xqj/Di11k0sto=",
  1779 + "optional": true,
4243 1780 "requires": {
4244 1781 "glob": "6.0.4"
4245 1782 },
... ... @@ -4248,6 +1785,7 @@
4248 1785 "version": "6.0.4",
4249 1786 "resolved": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz",
4250 1787 "integrity": "sha1-DwiGD2oVUSey+t1PnOJLGqtuTSI=",
  1788 + "optional": true,
4251 1789 "requires": {
4252 1790 "inflight": "1.0.6",
4253 1791 "inherits": "2.0.3",
... ... @@ -4263,19 +1801,6 @@
4263 1801 "resolved": "https://registry.npmjs.org/rotating-file-stream/-/rotating-file-stream-1.3.9.tgz",
4264 1802 "integrity": "sha512-LQEN1lYP/fOvNsjJsfQUW93cXRxt5Yp0BHVxUhreZAjFRlQ4Hyv7Pt6MKuek8U2ZpKpA8dvKvjzyOapvsRK7Fg=="
4265 1803 },
4266   - "run-async": {
4267   - "version": "2.3.0",
4268   - "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz",
4269   - "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=",
4270   - "requires": {
4271   - "is-promise": "2.1.0"
4272   - }
4273   - },
4274   - "rx": {
4275   - "version": "4.1.0",
4276   - "resolved": "https://registry.npmjs.org/rx/-/rx-4.1.0.tgz",
4277   - "integrity": "sha1-pfE/957zt0D+MKqAP7CfmIBdR4I="
4278   - },
4279 1804 "safe-buffer": {
4280 1805 "version": "5.1.2",
4281 1806 "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
... ... @@ -4287,14 +1812,6 @@
4287 1812 "integrity": "sha512-gH8eh2nZudPQO6TytOvbxnuhYBOvDBBLW52tz5q6X58lJcd/tkmqFR+5Z9adS8aJtURSXWThWy/xJtJwixErvg==",
4288 1813 "optional": true
4289 1814 },
4290   - "safe-regex": {
4291   - "version": "1.1.0",
4292   - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz",
4293   - "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=",
4294   - "requires": {
4295   - "ret": "0.1.15"
4296   - }
4297   - },
4298 1815 "safer-buffer": {
4299 1816 "version": "2.1.2",
4300 1817 "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
... ... @@ -4355,27 +1872,6 @@
4355 1872 "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
4356 1873 "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc="
4357 1874 },
4358   - "set-value": {
4359   - "version": "2.0.0",
4360   - "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz",
4361   - "integrity": "sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==",
4362   - "requires": {
4363   - "extend-shallow": "2.0.1",
4364   - "is-extendable": "0.1.1",
4365   - "is-plain-object": "2.0.4",
4366   - "split-string": "3.1.0"
4367   - },
4368   - "dependencies": {
4369   - "extend-shallow": {
4370   - "version": "2.0.1",
4371   - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
4372   - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
4373   - "requires": {
4374   - "is-extendable": "0.1.1"
4375   - }
4376   - }
4377   - }
4378   - },
4379 1875 "setprototypeof": {
4380 1876 "version": "1.1.0",
4381 1877 "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz",
... ... @@ -4394,126 +1890,11 @@
4394 1890 "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz",
4395 1891 "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM="
4396 1892 },
4397   - "shelljs": {
4398   - "version": "0.8.2",
4399   - "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.2.tgz",
4400   - "integrity": "sha512-pRXeNrCA2Wd9itwhvLp5LZQvPJ0wU6bcjaTMywHHGX5XWhVN2nzSu7WV0q+oUY7mGK3mgSkDDzP3MgjqdyIgbQ==",
4401   - "requires": {
4402   - "glob": "7.1.2",
4403   - "interpret": "1.1.0",
4404   - "rechoir": "0.6.2"
4405   - }
4406   - },
4407   - "shimmer": {
4408   - "version": "1.2.0",
4409   - "resolved": "https://registry.npmjs.org/shimmer/-/shimmer-1.2.0.tgz",
4410   - "integrity": "sha512-xTCx2vohXC2EWWDqY/zb4+5Mu28D+HYNSOuFzsyRDRvI/e1ICb69afwaUwfjr+25ZXldbOLyp+iDUZHq8UnTag=="
4411   - },
4412 1893 "signal-exit": {
4413 1894 "version": "3.0.2",
4414 1895 "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz",
4415 1896 "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0="
4416 1897 },
4417   - "simple-swizzle": {
4418   - "version": "0.2.2",
4419   - "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz",
4420   - "integrity": "sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=",
4421   - "requires": {
4422   - "is-arrayish": "0.3.2"
4423   - }
4424   - },
4425   - "snapdragon": {
4426   - "version": "0.8.2",
4427   - "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz",
4428   - "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==",
4429   - "requires": {
4430   - "base": "0.11.2",
4431   - "debug": "2.6.9",
4432   - "define-property": "0.2.5",
4433   - "extend-shallow": "2.0.1",
4434   - "map-cache": "0.2.2",
4435   - "source-map": "0.5.7",
4436   - "source-map-resolve": "0.5.2",
4437   - "use": "3.1.1"
4438   - },
4439   - "dependencies": {
4440   - "define-property": {
4441   - "version": "0.2.5",
4442   - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
4443   - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
4444   - "requires": {
4445   - "is-descriptor": "0.1.6"
4446   - }
4447   - },
4448   - "extend-shallow": {
4449   - "version": "2.0.1",
4450   - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
4451   - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
4452   - "requires": {
4453   - "is-extendable": "0.1.1"
4454   - }
4455   - }
4456   - }
4457   - },
4458   - "snapdragon-node": {
4459   - "version": "2.1.1",
4460   - "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz",
4461   - "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==",
4462   - "requires": {
4463   - "define-property": "1.0.0",
4464   - "isobject": "3.0.1",
4465   - "snapdragon-util": "3.0.1"
4466   - },
4467   - "dependencies": {
4468   - "define-property": {
4469   - "version": "1.0.0",
4470   - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
4471   - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
4472   - "requires": {
4473   - "is-descriptor": "1.0.2"
4474   - }
4475   - },
4476   - "is-accessor-descriptor": {
4477   - "version": "1.0.0",
4478   - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
4479   - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
4480   - "requires": {
4481   - "kind-of": "6.0.2"
4482   - }
4483   - },
4484   - "is-data-descriptor": {
4485   - "version": "1.0.0",
4486   - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
4487   - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
4488   - "requires": {
4489   - "kind-of": "6.0.2"
4490   - }
4491   - },
4492   - "is-descriptor": {
4493   - "version": "1.0.2",
4494   - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
4495   - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
4496   - "requires": {
4497   - "is-accessor-descriptor": "1.0.0",
4498   - "is-data-descriptor": "1.0.0",
4499   - "kind-of": "6.0.2"
4500   - }
4501   - },
4502   - "kind-of": {
4503   - "version": "6.0.2",
4504   - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
4505   - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA=="
4506   - }
4507   - }
4508   - },
4509   - "snapdragon-util": {
4510   - "version": "3.0.1",
4511   - "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz",
4512   - "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==",
4513   - "requires": {
4514   - "kind-of": "3.2.2"
4515   - }
4516   - },
4517 1898 "sntp": {
4518 1899 "version": "1.0.9",
4519 1900 "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz",
... ... @@ -4522,44 +1903,6 @@
4522 1903 "hoek": "2.16.3"
4523 1904 }
4524 1905 },
4525   - "source-map": {
4526   - "version": "0.5.7",
4527   - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
4528   - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w="
4529   - },
4530   - "source-map-resolve": {
4531   - "version": "0.5.2",
4532   - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz",
4533   - "integrity": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==",
4534   - "requires": {
4535   - "atob": "2.1.2",
4536   - "decode-uri-component": "0.2.0",
4537   - "resolve-url": "0.2.1",
4538   - "source-map-url": "0.4.0",
4539   - "urix": "0.1.0"
4540   - }
4541   - },
4542   - "source-map-support": {
4543   - "version": "0.5.9",
4544   - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.9.tgz",
4545   - "integrity": "sha512-gR6Rw4MvUlYy83vP0vxoVNzM6t8MUXqNuRsuBmBHQDu1Fh6X015FrLdgoDKcNdkwGubozq0P4N0Q37UyFVr1EA==",
4546   - "requires": {
4547   - "buffer-from": "1.1.1",
4548   - "source-map": "0.6.1"
4549   - },
4550   - "dependencies": {
4551   - "source-map": {
4552   - "version": "0.6.1",
4553   - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
4554   - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
4555   - }
4556   - }
4557   - },
4558   - "source-map-url": {
4559   - "version": "0.4.0",
4560   - "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz",
4561   - "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM="
4562   - },
4563 1906 "sparse-bitfield": {
4564 1907 "version": "3.0.3",
4565 1908 "resolved": "https://registry.npmjs.org/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz",
... ... @@ -4569,56 +1912,6 @@
4569 1912 "memory-pager": "1.1.0"
4570 1913 }
4571 1914 },
4572   - "spawn-sync": {
4573   - "version": "1.0.15",
4574   - "resolved": "https://registry.npmjs.org/spawn-sync/-/spawn-sync-1.0.15.tgz",
4575   - "integrity": "sha1-sAeZVX63+wyDdsKdROih6mfldHY=",
4576   - "requires": {
4577   - "concat-stream": "1.6.2",
4578   - "os-shim": "0.1.3"
4579   - }
4580   - },
4581   - "spdx-correct": {
4582   - "version": "3.0.2",
4583   - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.0.2.tgz",
4584   - "integrity": "sha512-q9hedtzyXHr5S0A1vEPoK/7l8NpfkFYTq6iCY+Pno2ZbdZR6WexZFtqeVGkGxW3TEJMN914Z55EnAGMmenlIQQ==",
4585   - "requires": {
4586   - "spdx-expression-parse": "3.0.0",
4587   - "spdx-license-ids": "3.0.1"
4588   - }
4589   - },
4590   - "spdx-exceptions": {
4591   - "version": "2.2.0",
4592   - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz",
4593   - "integrity": "sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA=="
4594   - },
4595   - "spdx-expression-parse": {
4596   - "version": "3.0.0",
4597   - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz",
4598   - "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==",
4599   - "requires": {
4600   - "spdx-exceptions": "2.2.0",
4601   - "spdx-license-ids": "3.0.1"
4602   - }
4603   - },
4604   - "spdx-license-ids": {
4605   - "version": "3.0.1",
4606   - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.1.tgz",
4607   - "integrity": "sha512-TfOfPcYGBB5sDuPn3deByxPhmfegAhpDYKSOXZQN81Oyrrif8ZCodOLzK3AesELnCx03kikhyDwh0pfvvQvF8w=="
4608   - },
4609   - "split-string": {
4610   - "version": "3.1.0",
4611   - "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz",
4612   - "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==",
4613   - "requires": {
4614   - "extend-shallow": "3.0.2"
4615   - }
4616   - },
4617   - "sprintf-js": {
4618   - "version": "1.1.1",
4619   - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.1.tgz",
4620   - "integrity": "sha1-Nr54Mgr+WAH2zqPueLblqrlA6gw="
4621   - },
4622 1915 "sqlite3": {
4623 1916 "version": "4.0.2",
4624 1917 "resolved": "https://registry.npmjs.org/sqlite3/-/sqlite3-4.0.2.tgz",
... ... @@ -4658,23 +1951,13 @@
4658 1951 "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk="
4659 1952 },
4660 1953 "form-data": {
4661   - "version": "2.3.2",
4662   - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.2.tgz",
4663   - "integrity": "sha1-SXBJi+YEwgwAXU9cI67NIda0kJk=",
  1954 + "version": "2.3.3",
  1955 + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz",
  1956 + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==",
4664 1957 "requires": {
4665 1958 "asynckit": "0.4.0",
4666   - "combined-stream": "1.0.6",
  1959 + "combined-stream": "1.0.7",
4667 1960 "mime-types": "2.1.20"
4668   - },
4669   - "dependencies": {
4670   - "combined-stream": {
4671   - "version": "1.0.6",
4672   - "resolved": "http://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz",
4673   - "integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=",
4674   - "requires": {
4675   - "delayed-stream": "1.0.0"
4676   - }
4677   - }
4678 1961 }
4679 1962 },
4680 1963 "har-validator": {
... ... @@ -4717,7 +2000,7 @@
4717 2000 "combined-stream": "1.0.7",
4718 2001 "extend": "3.0.2",
4719 2002 "forever-agent": "0.6.1",
4720   - "form-data": "2.3.2",
  2003 + "form-data": "2.3.3",
4721 2004 "har-validator": "5.1.0",
4722 2005 "http-signature": "1.2.0",
4723 2006 "is-typedarray": "1.0.0",
... ... @@ -4775,30 +2058,6 @@
4775 2058 }
4776 2059 }
4777 2060 },
4778   - "stack-trace": {
4779   - "version": "0.0.10",
4780   - "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz",
4781   - "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA="
4782   - },
4783   - "static-extend": {
4784   - "version": "0.1.2",
4785   - "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz",
4786   - "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=",
4787   - "requires": {
4788   - "define-property": "0.2.5",
4789   - "object-copy": "0.1.0"
4790   - },
4791   - "dependencies": {
4792   - "define-property": {
4793   - "version": "0.2.5",
4794   - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
4795   - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
4796   - "requires": {
4797   - "is-descriptor": "0.1.6"
4798   - }
4799   - }
4800   - }
4801   - },
4802 2061 "statuses": {
4803 2062 "version": "1.4.0",
4804 2063 "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz",
... ... @@ -4861,14 +2120,6 @@
4861 2120 "ansi-regex": "2.1.1"
4862 2121 }
4863 2122 },
4864   - "strip-bom": {
4865   - "version": "2.0.0",
4866   - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz",
4867   - "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=",
4868   - "requires": {
4869   - "is-utf8": "0.2.1"
4870   - }
4871   - },
4872 2123 "strip-json-comments": {
4873 2124 "version": "2.0.1",
4874 2125 "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
... ... @@ -4893,52 +2144,6 @@
4893 2144 "yallist": "3.0.2"
4894 2145 }
4895 2146 },
4896   - "text-hex": {
4897   - "version": "1.0.0",
4898   - "resolved": "https://registry.npmjs.org/text-hex/-/text-hex-1.0.0.tgz",
4899   - "integrity": "sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg=="
4900   - },
4901   - "through": {
4902   - "version": "2.3.8",
4903   - "resolved": "http://registry.npmjs.org/through/-/through-2.3.8.tgz",
4904   - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU="
4905   - },
4906   - "tmp": {
4907   - "version": "0.0.29",
4908   - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.29.tgz",
4909   - "integrity": "sha1-8lEl/w3Z2jzLDC3Tce4SiLuRKMA=",
4910   - "requires": {
4911   - "os-tmpdir": "1.0.2"
4912   - }
4913   - },
4914   - "to-object-path": {
4915   - "version": "0.3.0",
4916   - "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz",
4917   - "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=",
4918   - "requires": {
4919   - "kind-of": "3.2.2"
4920   - }
4921   - },
4922   - "to-regex": {
4923   - "version": "3.0.2",
4924   - "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz",
4925   - "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==",
4926   - "requires": {
4927   - "define-property": "2.0.2",
4928   - "extend-shallow": "3.0.2",
4929   - "regex-not": "1.0.2",
4930   - "safe-regex": "1.1.0"
4931   - }
4932   - },
4933   - "to-regex-range": {
4934   - "version": "2.1.1",
4935   - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz",
4936   - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=",
4937   - "requires": {
4938   - "is-number": "3.0.0",
4939   - "repeat-string": "1.6.1"
4940   - }
4941   - },
4942 2147 "tough-cookie": {
4943 2148 "version": "2.3.4",
4944 2149 "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.4.tgz",
... ... @@ -4947,26 +2152,11 @@
4947 2152 "punycode": "1.4.1"
4948 2153 }
4949 2154 },
4950   - "triple-beam": {
4951   - "version": "1.3.0",
4952   - "resolved": "https://registry.npmjs.org/triple-beam/-/triple-beam-1.3.0.tgz",
4953   - "integrity": "sha512-XrHUvV5HpdLmIj4uVMxHggLbFSZYIn7HEWsqePZcI50pco+MPqJ50wMGY794X7AOOhxOBAjbkqfAbEe/QMp2Lw=="
4954   - },
4955   - "tslib": {
4956   - "version": "1.9.3",
4957   - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.3.tgz",
4958   - "integrity": "sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ=="
4959   - },
4960 2155 "tunnel-agent": {
4961 2156 "version": "0.4.3",
4962 2157 "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.3.tgz",
4963 2158 "integrity": "sha1-Y3PbdpCf5XDgjXNYM2Xtgop07us="
4964 2159 },
4965   - "tv4": {
4966   - "version": "1.3.0",
4967   - "resolved": "https://registry.npmjs.org/tv4/-/tv4-1.3.0.tgz",
4968   - "integrity": "sha1-0CDIRvrdUMhVq7JeuuzGj8EPeWM="
4969   - },
4970 2160 "tweetnacl": {
4971 2161 "version": "0.14.5",
4972 2162 "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
... ... @@ -4981,27 +2171,6 @@
4981 2171 "mime-types": "2.1.20"
4982 2172 }
4983 2173 },
4984   - "typedarray": {
4985   - "version": "0.0.6",
4986   - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
4987   - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c="
4988   - },
4989   - "uglify-js": {
4990   - "version": "2.8.29",
4991   - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz",
4992   - "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=",
4993   - "requires": {
4994   - "source-map": "0.5.7",
4995   - "uglify-to-browserify": "1.0.2",
4996   - "yargs": "3.10.0"
4997   - }
4998   - },
4999   - "uglify-to-browserify": {
5000   - "version": "1.0.2",
5001   - "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz",
5002   - "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=",
5003   - "optional": true
5004   - },
5005 2174 "uid-safe": {
5006 2175 "version": "2.1.5",
5007 2176 "resolved": "https://registry.npmjs.org/uid-safe/-/uid-safe-2.1.5.tgz",
... ... @@ -5010,43 +2179,6 @@
5010 2179 "random-bytes": "1.0.0"
5011 2180 }
5012 2181 },
5013   - "ultron": {
5014   - "version": "1.1.1",
5015   - "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.1.1.tgz",
5016   - "integrity": "sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og=="
5017   - },
5018   - "union-value": {
5019   - "version": "1.0.0",
5020   - "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz",
5021   - "integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=",
5022   - "requires": {
5023   - "arr-union": "3.1.0",
5024   - "get-value": "2.0.6",
5025   - "is-extendable": "0.1.1",
5026   - "set-value": "0.4.3"
5027   - },
5028   - "dependencies": {
5029   - "extend-shallow": {
5030   - "version": "2.0.1",
5031   - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
5032   - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
5033   - "requires": {
5034   - "is-extendable": "0.1.1"
5035   - }
5036   - },
5037   - "set-value": {
5038   - "version": "0.4.3",
5039   - "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz",
5040   - "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=",
5041   - "requires": {
5042   - "extend-shallow": "2.0.1",
5043   - "is-extendable": "0.1.1",
5044   - "is-plain-object": "2.0.4",
5045   - "to-object-path": "0.3.0"
5046   - }
5047   - }
5048   - }
5049   - },
5050 2182 "unirest": {
5051 2183 "version": "0.5.1",
5052 2184 "resolved": "https://registry.npmjs.org/unirest/-/unirest-0.5.1.tgz",
... ... @@ -5064,67 +2196,11 @@
5064 2196 }
5065 2197 }
5066 2198 },
5067   - "universalify": {
5068   - "version": "0.1.2",
5069   - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
5070   - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg=="
5071   - },
5072 2199 "unpipe": {
5073 2200 "version": "1.0.0",
5074 2201 "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
5075 2202 "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw="
5076 2203 },
5077   - "unset-value": {
5078   - "version": "1.0.0",
5079   - "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz",
5080   - "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=",
5081   - "requires": {
5082   - "has-value": "0.3.1",
5083   - "isobject": "3.0.1"
5084   - },
5085   - "dependencies": {
5086   - "has-value": {
5087   - "version": "0.3.1",
5088   - "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz",
5089   - "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=",
5090   - "requires": {
5091   - "get-value": "2.0.6",
5092   - "has-values": "0.1.4",
5093   - "isobject": "2.1.0"
5094   - },
5095   - "dependencies": {
5096   - "isobject": {
5097   - "version": "2.1.0",
5098   - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz",
5099   - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=",
5100   - "requires": {
5101   - "isarray": "1.0.0"
5102   - }
5103   - }
5104   - }
5105   - },
5106   - "has-values": {
5107   - "version": "0.1.4",
5108   - "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz",
5109   - "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E="
5110   - }
5111   - }
5112   - },
5113   - "upath": {
5114   - "version": "1.1.0",
5115   - "resolved": "https://registry.npmjs.org/upath/-/upath-1.1.0.tgz",
5116   - "integrity": "sha512-bzpH/oBhoS/QI/YtbkqCg6VEiPYjSZtrHQM6/QnJS6OL9pKUFLqb3aFh4Scvwm45+7iAgiMkLhSbaZxUqmrprw=="
5117   - },
5118   - "urix": {
5119   - "version": "0.1.0",
5120   - "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz",
5121   - "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI="
5122   - },
5123   - "use": {
5124   - "version": "3.1.1",
5125   - "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz",
5126   - "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ=="
5127   - },
5128 2204 "util-deprecate": {
5129 2205 "version": "1.0.2",
5130 2206 "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
... ... @@ -5140,20 +2216,6 @@
5140 2216 "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz",
5141 2217 "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA=="
5142 2218 },
5143   - "v8-compile-cache": {
5144   - "version": "2.0.2",
5145   - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.0.2.tgz",
5146   - "integrity": "sha512-1wFuMUIM16MDJRCrpbpuEPTUGmM5QMUg0cr3KFwra2XgOgFcPGDQHDh3CszSCD2Zewc/dh/pamNEW8CbfDebUw=="
5147   - },
5148   - "validate-npm-package-license": {
5149   - "version": "3.0.4",
5150   - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz",
5151   - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==",
5152   - "requires": {
5153   - "spdx-correct": "3.0.2",
5154   - "spdx-expression-parse": "3.0.0"
5155   - }
5156   - },
5157 2219 "vary": {
5158 2220 "version": "1.1.2",
5159 2221 "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
... ... @@ -5199,39 +2261,6 @@
5199 2261 }
5200 2262 }
5201 2263 },
5202   - "vizion": {
5203   - "version": "2.0.2",
5204   - "resolved": "https://registry.npmjs.org/vizion/-/vizion-2.0.2.tgz",
5205   - "integrity": "sha512-UGDB/UdC1iyPkwyQaI9AFMwKcluQyD4FleEXObrlu254MEf16MV8l+AZdpFErY/iVKZVWlQ+OgJlVVJIdeMUYg==",
5206   - "requires": {
5207   - "async": "2.6.1",
5208   - "git-node-fs": "1.0.0",
5209   - "ini": "1.3.5",
5210   - "js-git": "0.7.8",
5211   - "lodash.findindex": "4.6.0",
5212   - "lodash.foreach": "4.5.0",
5213   - "lodash.get": "4.4.2",
5214   - "lodash.last": "3.0.0"
5215   - }
5216   - },
5217   - "vxx": {
5218   - "version": "1.2.2",
5219   - "resolved": "https://registry.npmjs.org/vxx/-/vxx-1.2.2.tgz",
5220   - "integrity": "sha1-dB+1HG8R0zg9pvm5IBil17qAdhE=",
5221   - "requires": {
5222   - "continuation-local-storage": "3.2.1",
5223   - "debug": "2.6.9",
5224   - "extend": "3.0.2",
5225   - "is": "3.2.1",
5226   - "lodash.findindex": "4.6.0",
5227   - "lodash.isequal": "4.5.0",
5228   - "lodash.merge": "4.6.1",
5229   - "methods": "1.1.2",
5230   - "semver": "5.6.0",
5231   - "shimmer": "1.2.0",
5232   - "uuid": "3.3.2"
5233   - }
5234   - },
5235 2264 "which": {
5236 2265 "version": "1.3.1",
5237 2266 "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
... ... @@ -5240,11 +2269,6 @@
5240 2269 "isexe": "2.0.0"
5241 2270 }
5242 2271 },
5243   - "which-module": {
5244   - "version": "1.0.0",
5245   - "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz",
5246   - "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8="
5247   - },
5248 2272 "wide-align": {
5249 2273 "version": "1.1.3",
5250 2274 "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz",
... ... @@ -5253,76 +2277,11 @@
5253 2277 "string-width": "1.0.2"
5254 2278 }
5255 2279 },
5256   - "window-size": {
5257   - "version": "0.1.0",
5258   - "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz",
5259   - "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0="
5260   - },
5261   - "winston": {
5262   - "version": "3.1.0",
5263   - "resolved": "https://registry.npmjs.org/winston/-/winston-3.1.0.tgz",
5264   - "integrity": "sha512-FsQfEE+8YIEeuZEYhHDk5cILo1HOcWkGwvoidLrDgPog0r4bser1lEIOco2dN9zpDJ1M88hfDgZvxe5z4xNcwg==",
5265   - "requires": {
5266   - "async": "2.6.1",
5267   - "diagnostics": "1.1.1",
5268   - "is-stream": "1.1.0",
5269   - "logform": "1.10.0",
5270   - "one-time": "0.0.4",
5271   - "readable-stream": "2.3.6",
5272   - "stack-trace": "0.0.10",
5273   - "triple-beam": "1.3.0",
5274   - "winston-transport": "4.2.0"
5275   - }
5276   - },
5277   - "winston-express": {
5278   - "version": "0.1.1",
5279   - "resolved": "https://registry.npmjs.org/winston-express/-/winston-express-0.1.1.tgz",
5280   - "integrity": "sha1-LjVLbTlLZhWXTz7zpFDLUK0PnYE=",
5281   - "requires": {
5282   - "uglify-js": "2.8.29"
5283   - }
5284   - },
5285   - "winston-transport": {
5286   - "version": "4.2.0",
5287   - "resolved": "https://registry.npmjs.org/winston-transport/-/winston-transport-4.2.0.tgz",
5288   - "integrity": "sha512-0R1bvFqxSlK/ZKTH86nymOuKv/cT1PQBMuDdA7k7f0S9fM44dNH6bXnuxwXPrN8lefJgtZq08BKdyZ0DZIy/rg==",
5289   - "requires": {
5290   - "readable-stream": "2.3.6",
5291   - "triple-beam": "1.3.0"
5292   - }
5293   - },
5294   - "wordwrap": {
5295   - "version": "0.0.2",
5296   - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz",
5297   - "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8="
5298   - },
5299   - "wrap-ansi": {
5300   - "version": "2.1.0",
5301   - "resolved": "http://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz",
5302   - "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=",
5303   - "requires": {
5304   - "string-width": "1.0.2",
5305   - "strip-ansi": "3.0.1"
5306   - }
5307   - },
5308 2280 "wrappy": {
5309 2281 "version": "1.0.2",
5310 2282 "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
5311 2283 "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
5312 2284 },
5313   - "ws": {
5314   - "version": "5.2.2",
5315   - "resolved": "https://registry.npmjs.org/ws/-/ws-5.2.2.tgz",
5316   - "integrity": "sha512-jaHFD6PFv6UgoIVda6qZllptQsMlDEJkTQcybzzXDYM1XO9Y8em691FGMPmM46WGyLU4z9KMgQN+qrux/nhlHA==",
5317   - "requires": {
5318   - "async-limiter": "1.0.0"
5319   - }
5320   - },
5321   - "xml": {
5322   - "version": "0.0.12",
5323   - "resolved": "https://registry.npmjs.org/xml/-/xml-0.0.12.tgz",
5324   - "integrity": "sha1-8Is0cQmRK+AChXhfRvFa2OUKX2c="
5325   - },
5326 2285 "xml-crypto": {
5327 2286 "version": "0.10.1",
5328 2287 "resolved": "https://registry.npmjs.org/xml-crypto/-/xml-crypto-0.10.1.tgz",
... ... @@ -5385,51 +2344,10 @@
5385 2344 "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz",
5386 2345 "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68="
5387 2346 },
5388   - "y18n": {
5389   - "version": "3.2.1",
5390   - "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz",
5391   - "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE="
5392   - },
5393 2347 "yallist": {
5394 2348 "version": "3.0.2",
5395 2349 "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.2.tgz",
5396 2350 "integrity": "sha1-hFK0u36Dx8GI2AQcGoN8dz1ti7k="
5397   - },
5398   - "yamljs": {
5399   - "version": "0.3.0",
5400   - "resolved": "https://registry.npmjs.org/yamljs/-/yamljs-0.3.0.tgz",
5401   - "integrity": "sha512-C/FsVVhht4iPQYXOInoxUM/1ELSf9EsgKH34FofQOp6hwCPrW4vG4w5++TED3xRUo8gD7l0P1J1dLlDYzODsTQ==",
5402   - "requires": {
5403   - "argparse": "1.0.10",
5404   - "glob": "7.1.2"
5405   - }
5406   - },
5407   - "yargs": {
5408   - "version": "3.10.0",
5409   - "resolved": "http://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz",
5410   - "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=",
5411   - "requires": {
5412   - "camelcase": "1.2.1",
5413   - "cliui": "2.1.0",
5414   - "decamelize": "1.2.0",
5415   - "window-size": "0.1.0"
5416   - }
5417   - },
5418   - "yargs-parser": {
5419   - "version": "2.4.1",
5420   - "resolved": "http://registry.npmjs.org/yargs-parser/-/yargs-parser-2.4.1.tgz",
5421   - "integrity": "sha1-hVaN488VD/SfpRgl8DqMiA3cxcQ=",
5422   - "requires": {
5423   - "camelcase": "3.0.0",
5424   - "lodash.assign": "4.2.0"
5425   - },
5426   - "dependencies": {
5427   - "camelcase": {
5428   - "version": "3.0.0",
5429   - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz",
5430   - "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo="
5431   - }
5432   - }
5433 2351 }
5434 2352 }
5435 2353 }
... ...
package.json
... ... @@ -7,7 +7,8 @@
7 7 "test": "mocha unitTest",
8 8 "start": "npm run test && node app.js",
9 9 "gentest": "mocha unitTest && NODE_ENV=gentest node app.js",
10   - "pull" : "git pull && npm install && pm2 stop hospital && pm2 start node app.js --name=hospital "
  10 + "pullpm2": "git pull && npm install && pm2 stop hospital && pm2 start node app.js --name=hospital ",
  11 + "pull": "git pull && npm install && pm2 stop hospital && npm run start "
11 12 },
12 13 "author": "Source Code",
13 14 "license": "ISC",
... ... @@ -34,6 +35,7 @@
34 35 "passport-saml": "^0.30.0",
35 36 "read-text-file": "^1.1.0",
36 37 "redis": "^2.8.0",
  38 + "sqlite3": "^4.0.2",
37 39 "unirest": "^0.5.1",
38 40 "uuid": "^3.3.2"
39 41 }
... ...
utils/commonlog.js 0 โ†’ 100644
... ... @@ -0,0 +1,673 @@
  1 +const fs = require('fs');
  2 +const os = require("os");
  3 +const path = require("path");
  4 +let rfs = require('rotating-file-stream');
  5 +const mkdirp = require('mkdirp');
  6 +const onHeaders = require('on-headers');
  7 +
  8 +const dateFMT = 'yyyymmdd HH:MM:ss.l';
  9 +const dateFMT_SQL = 'yyyy-mm-dd HH:MM:ss.l';
  10 +const fileFMT = 'yyyymmddHHMMss';
  11 +const dateFormat = require('dateformat');
  12 +const sqlite3 = require('sqlite3').verbose();
  13 +process.env.pm_id = process.env.pm_id | '0';
  14 +let db;
  15 +//const db = new sqlite3.Database( path.resolve(__dirname, `statDB/stat_${process.env.pm_id}.db`) );
  16 +const cron = require('node-cron');
  17 +// import cron from 'node-cron';
  18 +
  19 +let conf = {};
  20 +conf.projectName = 'PROJECT_NAME';
  21 +
  22 +conf.log = {};
  23 +conf.log.time = null; //min
  24 +conf.log.size = null; //maxsize per file, k
  25 +conf.log.path = './appLogPath/';
  26 +conf.log.level = 'debug'; //debug,info,warn,error
  27 +conf.log.console = false;
  28 +conf.log.file = true;
  29 +
  30 +conf.summary = {};
  31 +conf.summary.time = 15;
  32 +conf.summary.size = null;
  33 +conf.summary.path = './summaryPath/';
  34 +conf.summary.console = false;
  35 +conf.summary.file = true;
  36 +
  37 +conf.detail = {};
  38 +conf.detail.time = 15;
  39 +conf.detail.size = null;
  40 +conf.detail.path = './detailPath/';
  41 +conf.detail.console = false;
  42 +conf.detail.file = true;
  43 +
  44 +conf.stat = {};
  45 +conf.stat.time = 15;
  46 +conf.stat.size = 15;
  47 +conf.stat.path = './statPath/';
  48 +conf.stat.mode = 0; //0 == file, 1== :memory:
  49 +conf.stat.pathDB = undefined; //optional, folder path DB
  50 +conf.stat.statInterval = 15;
  51 +conf.stat.console = false;
  52 +conf.stat.file = true;
  53 +// conf.stat.process = [{
  54 +// name:'stat_name_1',
  55 +// threshold: 10
  56 +// },{
  57 +// name:'stat_name_2',
  58 +// threshold: 10
  59 +// }];
  60 +// conf.alarm = {};
  61 +// conf.alarm.time = 15;
  62 +// conf.alarm.size = 15;
  63 +// conf.alarm.path = './alarmPath/';
  64 +// conf.alarm.console = false;
  65 +// conf.alarm.file = true;
  66 +
  67 +let log = {
  68 + initLog: false
  69 +}
  70 +
  71 +
  72 +
  73 +function getLogFileName(date, index) {
  74 + return os.hostname() + '_'
  75 + + conf.projectName
  76 + + (date ? ('_' + dateFormat(date, fileFMT) + '.' + index) : '')
  77 + + '.log';
  78 +}
  79 +function getStatFileName(date, index) {
  80 + return os.hostname() + '_'
  81 + + conf.projectName
  82 + + (date ? ('_' + dateFormat(date, fileFMT) + '.' + index) : '')
  83 + + '.' + process.env.pm_id
  84 + + '.stat';
  85 +}
  86 +function getSummaryFileName(date, index) {
  87 + return os.hostname() + '_'
  88 + + conf.projectName
  89 + + (date ? ('_' + dateFormat(date, fileFMT) + '.' + index) : '')
  90 + + '.summary';
  91 +}
  92 +function getDetailFileName(date, index) {
  93 + return os.hostname() + '_'
  94 + + conf.projectName
  95 + + (date ? ('_' + dateFormat(date, fileFMT) + '.' + index) : '')
  96 + + '.detail';
  97 +}
  98 +function getConf(type) {
  99 + if (type === 'app') return conf['log'];
  100 + else if (type === 'stt') return conf['stat'];
  101 + else if (type === 'smr') return conf['summary'];
  102 + else if (type === 'dtl') return conf['detail'];
  103 +}
  104 +function generator(type) {
  105 + return (time, index) => {
  106 + if (type === 'app') return getLogFileName(time, index);
  107 + else if (type === 'stt') return getStatFileName(time, index);
  108 + else if (type === 'smr') return getSummaryFileName(time, index);
  109 + else if (type === 'dtl') return getDetailFileName(time, index);
  110 + }
  111 +}
  112 +function createOpts(conf) {
  113 + let o = {
  114 + path: conf.path
  115 + };
  116 + if (conf.size) o.size = conf.size + 'K';
  117 + if (conf.time) o.interval = conf.time + 'm';
  118 + return o;
  119 +}
  120 +function createStream(type) {
  121 + let conf = getConf(type);
  122 + let stream = rfs(generator(type), createOpts(conf));
  123 + return stream;
  124 +}
  125 +
  126 +var streamTask = {
  127 + app: [],
  128 + stt: [],
  129 + smr: [],
  130 + dtl: []
  131 +};
  132 +
  133 +function toStr(txt) {
  134 + // console.log(txt + 'txt instanceof Object ' + (txt instanceof Object));
  135 + // console.log(txt + 'txt instanceof Array ' + (txt instanceof Array));
  136 +
  137 + if ( txt instanceof Error ) {
  138 + return txt.message + ', ' + txt.stack;
  139 + } else if ( txt instanceof Object ) {
  140 + return JSON.stringify(txt);
  141 + } else {
  142 + return txt;
  143 + }
  144 +}
  145 +
  146 +
  147 +function printTxtOrError( _txt ){
  148 + if (_txt instanceof Error) {
  149 + return _txt;
  150 + }else{
  151 + return _txt;
  152 + }
  153 +}
  154 +
  155 +function processApplog(lvlAppLog, ..._txt) {
  156 + let session;
  157 + let rtxt = '';
  158 + if (_txt instanceof Array) {
  159 + if (_txt.length > 1) {
  160 + //index0 == session, index1 == text
  161 + session = _txt[0];
  162 + rtxt = toStr(_txt[1])
  163 + for (let i = 2; i < _txt.length; i++) {
  164 + rtxt += ' ' + toStr(_txt[i]);
  165 + }
  166 + } else {
  167 + session = '';
  168 + rtxt = _txt[0];
  169 + }
  170 + } else {
  171 +
  172 + session = '';
  173 + rtxt = toStr(_txt);
  174 + }
  175 + return `${getDateTimeLogFormat(new Date())}|${session}|${lvlAppLog}|${rtxt}`;
  176 +}
  177 +
  178 +
  179 +function write(type, txt) {
  180 + for (const stream of streamTask[type]) {
  181 + stream.write(txt + '\r\n');
  182 + }
  183 +}
  184 +
  185 +function getDateTimeLogFormat(currentDates) {
  186 + var years = currentDates.getFullYear();
  187 + var months = currentDates.getMonth() + 1;
  188 + var day = currentDates.getDate();
  189 + var hours = currentDates.getHours();
  190 + var minutes = currentDates.getMinutes();
  191 + var second = currentDates.getSeconds();
  192 + var millisecs = currentDates.getMilliseconds();
  193 + var monthFormatted = months < 10 ? "0" + months : months;
  194 + var dayFormatted = day < 10 ? "0" + day : day;
  195 + var hourFormatted = hours < 10 ? "0" + hours : hours;
  196 + var minFormatted = minutes < 10 ? "0" + minutes : minutes;
  197 + var secFormatted = second < 10 ? "0" + second : second;
  198 + var milliFormatted = null;
  199 +
  200 + if (millisecs < 10) {
  201 + milliFormatted = "00" + millisecs;
  202 + }
  203 + else if (millisecs < 100) {
  204 + milliFormatted = "0" + millisecs;
  205 + }
  206 + else {
  207 + milliFormatted = millisecs;
  208 + }
  209 + var detail = '' + years + monthFormatted + dayFormatted + ' ' + hourFormatted + ':' + minFormatted + ':' + secFormatted + '.' + milliFormatted + '|' + os.hostname() + '|' + conf.projectName;
  210 + return detail;
  211 +}
  212 +
  213 +
  214 +
  215 +
  216 +
  217 +function initDB() {
  218 + if (conf.stat.mode === 0) {
  219 + db = new sqlite3.cached.Database(':memory:');
  220 +
  221 + } else if (conf.stat.mode === 1) {
  222 + if (!conf.stat.pathDB) {
  223 + conf.stat.pathDB = path.resolve(__dirname, 'statDB');
  224 + }
  225 + if (!fs.existsSync(conf.stat.pathDB)) {
  226 + fs.mkdirSync(conf.stat.pathDB);
  227 + }
  228 + db = new sqlite3.cached.Database(`${conf.stat.pathDB}/stat_${process.env.pm_id}.db`);
  229 + }
  230 +
  231 + db.serialize(function () {
  232 + db.run("CREATE TABLE IF NOT EXISTS stat (stat_time TEXT, stat_name TEXT);");
  233 + });
  234 +}
  235 +
  236 +function initLog() {
  237 + if (conf.log) {
  238 + if (conf.log.file) {
  239 + if (!fs.existsSync(conf.log.path)) {
  240 + //fs.mkdirSync(conf.log.path);
  241 + mkdirp.sync(conf.log.path);
  242 + }
  243 + streamTask['app'].push(createStream('app'));
  244 + }
  245 + if (conf.log.console) streamTask['app'].push(process.stdout);
  246 + }
  247 + if (conf.stat) {
  248 + if (conf.log.file){
  249 + if (!fs.existsSync(conf.stat.path)) {
  250 + //fs.mkdirSync(conf.stat.path);
  251 + mkdirp.sync(conf.stat.path);
  252 + }
  253 + streamTask['stt'].push(createStream('stt'));
  254 + }
  255 + if (conf.log.console) streamTask['stt'].push(process.stdout);
  256 + }
  257 + if (conf.summary) {
  258 + if (conf.log.file){
  259 + if (!fs.existsSync(conf.summary.path)) {
  260 + // fs.mkdirSync(conf.summary.path);
  261 + mkdirp.sync(conf.summary.path);
  262 + }
  263 + streamTask['smr'].push(createStream('smr'));
  264 + }
  265 + if (conf.log.console) streamTask['smr'].push(process.stdout);
  266 + }
  267 + if (conf.detail) {
  268 + if (conf.log.file){
  269 + if (!fs.existsSync(conf.detail.path)) {
  270 + // fs.mkdirSync(conf.detail.path);
  271 + mkdirp.sync(conf.detail.path);
  272 + }
  273 + streamTask['dtl'].push(createStream('dtl'));
  274 + }
  275 + if (conf.log.console) streamTask['dtl'].push(process.stdout);
  276 + }
  277 +}
  278 +
  279 +function addStat(stat_name) {
  280 + db.serialize(function () {
  281 + //db.run("CREATE TABLE lorem (info TEXT, xx TEXT)");
  282 + /*var stmt = db.prepare("INSERT INTO lorem VALUES (?)");
  283 + for (var i = 0; i < 10; i++) {
  284 + stmt.run("Ipsum " + i);
  285 + }
  286 + stmt.finalize();
  287 +
  288 + db.run("INSERT INTO stat(stat_time, stat_name) VALUES (?)", ['xx',stat_name], function() {
  289 + console.log( 'x' );
  290 + getStat();
  291 + });*/
  292 +
  293 + /*db.run("INSERT INTO stat VALUES (?,?)", [dateFormat(new Date(), dateFMT_SQL), stat_name], function() {
  294 + getStat();
  295 + });*/
  296 +
  297 + db.run("INSERT INTO stat VALUES (?,?)", [dateFormat(new Date(), dateFMT_SQL), stat_name]);
  298 +
  299 + /*db.run("INSERT INTO stat VALUES (DATETIME('now'), '"+stat_name+"')", function() {
  300 + console.log( 'x' );
  301 + getStat();
  302 + });*/
  303 +
  304 +
  305 + });
  306 +
  307 +}
  308 +
  309 +
  310 +
  311 +//var prevStatDateRange;
  312 +function fushStat() {
  313 + var end = new Date();
  314 + end.setMilliseconds(0);
  315 +
  316 + //var start = new Date(end.getTime());
  317 + //start.setMinutes(end.getMinutes() - conf.log.statTime);
  318 +
  319 + var en = dateFormat(end, dateFMT_SQL);
  320 + //var st = dateFormat(prevStatDateRange, dateFMT_SQL);
  321 +
  322 + //prevStatDateRange = end; //assign for next loop
  323 + //console.log(st + '|' + en);
  324 + //var path = getStatFileName(end);
  325 +
  326 + db.serialize(function () {
  327 + //var stream = fs.createWriteStream(path, { 'flags': 'a' });
  328 + write('stt', en);
  329 +
  330 + db.each("SELECT stat_name, count(stat_name) as count FROM stat WHERE stat_time < ? group by stat_name order by stat_time", [en], function (err, row) {
  331 + if (err) {
  332 + console.log(err);
  333 + return;
  334 + }
  335 + //console.log(path+' '+ row.stat_name + ' ' + row.count );
  336 + write('stt', row.stat_name + ' ' + row.count);
  337 + });
  338 +
  339 + db.run("DELETE FROM stat WHERE stat_time < ?", [en]);
  340 +
  341 + /*db.each("SELECT stat_name, count(stat_name) as count FROM stat WHERE stat_time BETWEEN ? AND ? group by stat_name order by stat_name", [st, en], function (err, row) {
  342 + if (err) {
  343 + console.log(err);
  344 + return;
  345 + }
  346 + //console.log(path+' '+ row.stat_name + ' ' + row.count );
  347 + write(end, 'stt', row.stat_name + ' ' + row.count, false);
  348 + });
  349 +
  350 + db.run("DELETE FROM stat WHERE stat_time BETWEEN ? AND ?", [st, en]);*/
  351 +
  352 + });
  353 +}
  354 +
  355 +function getIntervalTime(type) {
  356 + if (type === 'app') {
  357 + return conf.log.time;
  358 + } else if (type === 'stt') {
  359 + return conf.stat.time;
  360 + } else if (type === 'smr') {
  361 + return conf.summary.time;
  362 + } else if (type === 'dtl') {
  363 + return conf.detail.time;
  364 + }
  365 + return null;
  366 +}
  367 +
  368 +
  369 +
  370 +log.stat = function (stat_name) {
  371 + addStat(stat_name);
  372 +}
  373 +
  374 +log.debug = function (..._log) {
  375 + if (conf.log.level > 0) return;
  376 + write('app', processApplog('debug', ..._log));
  377 +}
  378 +
  379 +log.info = function (..._log) {
  380 + if (conf.log.level > 1) return;
  381 + write('app', processApplog('info', ..._log));
  382 +}
  383 +log.warn = function (..._log) {
  384 + if (conf.log.level > 2) return;
  385 + write('app', processApplog('warn', ..._log));
  386 +}
  387 +log.error = function (..._log) {
  388 + if (conf.log.level > 3) return;
  389 + write('app', processApplog('error', ..._log));
  390 +}
  391 +
  392 +log.detail = function (detailLog) {
  393 + write('dtl', JSON.stringify(detailLog));
  394 +}
  395 +
  396 +
  397 +// log.detail = function (session, scenario, identity) {
  398 +// var startTimeDate = new Date();
  399 +// var inputTime;
  400 +// var outputTime;
  401 +
  402 +// var detailLog = {
  403 +// Session: session,
  404 +// InitInvoke: '', //only equinox platform
  405 +// Scenario: scenario,
  406 +// Identity: identity,
  407 +// InputTimeStamp: null,
  408 +// Input: [],
  409 +// OutputTimeStamp: null,
  410 +// Output: [],
  411 +// ProcessingTime: null,
  412 +// addInputRequest: function (node, cmd, rawData, data) {
  413 +// this.addInput(node, cmd, 'REQ', rawData, data);
  414 +// },
  415 +// addInputResponse: function (node, cmd, rawData, data, resTime) {
  416 +// this.addInput(node, cmd, 'RES', rawData, data, resTime);
  417 +// },
  418 +// addInputResponseTimeout: function (node, cmd) {
  419 +// this.addInput(node, cmd, 'RES_TIMEOUT');
  420 +// },
  421 +// addInputResponseError: function (node, cmd) {
  422 +// this.addInput(node, cmd, 'RES_ERROR');
  423 +// },
  424 +// addInput: function (node, cmd, type, rawData, data, resTime) {
  425 +// inputTime = new Date();
  426 +// if (typeof resTime === 'number') {
  427 +// resTime = resTime.toLocaleString() + ' ms';
  428 +// }
  429 +// var input = {
  430 +// Invoke: null,
  431 +// Event: node + '.' + cmd,
  432 +// Type: type,
  433 +// RawData: rawData,
  434 +// Data: data,
  435 +// ResTime: resTime
  436 +// };
  437 +// this.Input.push(input);
  438 +// },
  439 +
  440 +// addOutputRequest: function (node, cmd, rawData, data) {
  441 +// this.addOutput(node, cmd, 'REQ', rawData, data);
  442 +// },
  443 +// addOutputResponse: function (node, cmd, rawData, data) {
  444 +// this.addOutput(node, cmd, 'RES', rawData, data);
  445 +// },
  446 +// addOutputRequestRetry: function (node, cmd, rawData, data, total, maxCount) {
  447 +// this.addOutput(node, cmd, ('REQ_RETRY_' + total + '/' + maxCount), rawData, data);
  448 +// },
  449 +// addOutput: function (node, cmd, type, rawData, data) {
  450 +// outputTime = new Date();
  451 +// var input = {
  452 +// Invoke: null,
  453 +// Event: node + '.' + cmd,
  454 +// Type: type,
  455 +// RawData: rawData,
  456 +// Data: data
  457 +// };
  458 +
  459 +// this.Output.push(input);
  460 +// },
  461 +
  462 +// end: function () {
  463 +// let currentTime = new Date();
  464 +// detailLog.ProcessingTime = new Date().getTime() - startTimeDate.getTime();
  465 +// detailLog.InputTimeStamp = dateFormat(inputTime, dateFMT);
  466 +// detailLog.OutputTimeStamp = dateFormat(outputTime, dateFMT);;
  467 +
  468 +// write('dtl', JSON.stringify(detailLog));
  469 +// startTimeDate = currentTime;
  470 +// detailLog._clr();
  471 +// },
  472 +
  473 +// _clr: function (){
  474 +// detailLog.ProcessingTime = null;
  475 +// detailLog.InputTimeStamp = null;
  476 +// detailLog.OutputTimeStamp= null;
  477 +// detailLog.Input=[];
  478 +// detailLog.Output=[];
  479 +// }
  480 +// }
  481 +
  482 +// return detailLog;
  483 +// }
  484 +
  485 +log.summary = function (session, cmd, identity) {
  486 + var now = new Date();
  487 +
  488 + var summaryLog = {
  489 + requestTime: now,
  490 + session: session,
  491 + initInvoke: '', //only equinox platform
  492 + cmd: cmd,
  493 + identity: identity,
  494 + /*resultCode: null,
  495 + resultDescription: null,*/
  496 + blockDetail: [],
  497 +
  498 + addSuccessBlock: function (node, cmd, resultCode, resultDesc) {
  499 + //this.blockDetail.push('['+ node+'; '+cmd+'(1); ['+ resultCode+'; '+resultDesc+'(1)]]');
  500 + addBlock(this.blockDetail, node, cmd, resultCode, resultDesc);
  501 + },
  502 +
  503 + addErrorBlock: function (node, cmd, resultCode, resultDesc) {
  504 + //this.blockDetail.push('['+ node+'; '+cmd+'(1); ['+ resultCode+'; '+resultDesc+'(1)]]');
  505 + addBlock(this.blockDetail, node, cmd, resultCode, resultDesc);
  506 + },
  507 +
  508 + end: function (resultCode, resultDescription) {
  509 + var endTime = new Date();
  510 +
  511 + var blockDetailTxt = '[';
  512 + for (var j = 0; j < this.blockDetail.length; j++) {
  513 + var i = this.blockDetail[j];
  514 + var aa = i.node + '; ' + i.cmd + '(' + i.count + '); [';
  515 +
  516 + for (var k = 0; k < i.result.length; k++) {
  517 + var bb = i.result[k].resultCode + '; ' + i.result[k].resultDesc + '(' + i.result[k].count + ')';
  518 +
  519 + if (k === i.result.length - 1) {
  520 + aa += bb;
  521 + } else {
  522 + aa += (bb + ', ');
  523 + }
  524 + }
  525 +
  526 + if (j === this.blockDetail.length - 1) {
  527 + aa += ']';
  528 + } else {
  529 + aa += '], ';
  530 + }
  531 + blockDetailTxt += aa;
  532 + }
  533 + blockDetailTxt += ']';
  534 +
  535 +
  536 + var txt = dateFormat(this.requestTime, dateFMT) + '|';
  537 + txt += this.session + '|';
  538 + txt += this.initInvoke + '|'
  539 + txt += this.cmd + '|'
  540 + txt += this.identity + '|'
  541 + txt += resultCode + '|'
  542 + txt += resultDescription + '|'
  543 + txt += blockDetailTxt + '|'
  544 + txt += dateFormat(endTime, dateFMT) + '|'
  545 + txt += (endTime.getTime() - this.requestTime.getTime());
  546 +
  547 + write('smr', txt);
  548 + }
  549 + };
  550 + return summaryLog;
  551 +}
  552 +
  553 +function addBlock(store, node, cmd, resultCode, resultDesc) {
  554 + var found = null;
  555 +
  556 + for (var i = 0; i < store.length; i++) {
  557 + if (store[i].node === node && store[i].cmd === cmd) {
  558 + found = store[i];
  559 + store[i].count++;
  560 + break;
  561 + }
  562 + }
  563 +
  564 + if (!found) {
  565 + var result = {
  566 + resultCode: resultCode,
  567 + resultDesc: resultDesc,
  568 + count: 1
  569 + }
  570 +
  571 + var b = {
  572 + node: node,
  573 + cmd: cmd,
  574 + count: 1,
  575 + result: [result]
  576 + }
  577 + store.push(b);
  578 +
  579 + } else {
  580 + var foundResult = false;
  581 + for (var j = 0; j < found.result.length; j++) {
  582 + if (found.result[j].resultCode === resultCode &&
  583 + found.result[j].resultDesc === resultDesc) {
  584 +
  585 + found.result[j].count++;
  586 + foundResult = true;
  587 + break;
  588 + }
  589 + }
  590 +
  591 + if (!foundResult) {
  592 + var result = {
  593 + resultCode: resultCode,
  594 + resultDesc: resultDesc,
  595 + count: 1
  596 + }
  597 + found.result.push(result);
  598 + }
  599 + }
  600 +}
  601 +
  602 +log.init = function (_conf, express) {
  603 + log.initLog = true;
  604 + if (_conf) {
  605 + conf = _conf;
  606 + }
  607 +
  608 +
  609 +
  610 + if (conf.log) {
  611 + if (conf.log.level === 'debug') {
  612 + conf.log.level = 0;
  613 + } else if (conf.log.level === 'info') {
  614 + conf.log.level = 1;
  615 + } else if (conf.log.level === 'warn') {
  616 + conf.log.level = 2;
  617 + } else if (conf.log.level === 'error') {
  618 + conf.log.level = 3;
  619 + } else {
  620 + conf.log.level = 4;
  621 + }
  622 +
  623 + //enable only debug
  624 + if (express && conf.log.level === 0) {
  625 + express.use(function (req, res, next) {
  626 + req._reqTimeForLog = Date.now();
  627 + let sid;
  628 + if(typeof log.sessionID === 'function'){
  629 + sid = log.sessionID(req, res);
  630 + }
  631 +
  632 + let txtLogReq = 'INCOMING|__Method=' +req.method
  633 + + ' __URL=' + req.url
  634 + + ' __Headers=' + JSON.stringify(req.headers )
  635 + //+ ' __Params=' + JSON.stringify(req.params )
  636 + + ' __Body=' + JSON.stringify(req.body );
  637 +
  638 + if(sid){
  639 + log.debug(sid, txtLogReq);
  640 + }else{
  641 + log.debug(txtLogReq);
  642 + }
  643 +
  644 + onHeaders(res, ()=>{
  645 + let txtLogRes = 'OUTGOING|__Statuscode=' + res.statusCode
  646 + + ' __Headers=' + JSON.stringify(res._headers )
  647 + + ' __Body=' + JSON.stringify(res.body )
  648 + + ' __Restime=' + ( Date.now() - req._reqTimeForLog );
  649 +
  650 + if(sid){
  651 + log.debug(sid, txtLogRes);
  652 + }else{
  653 + log.debug(txtLogRes);
  654 + }
  655 + });
  656 + next();
  657 + });
  658 + }
  659 + }
  660 +
  661 + initLog();
  662 +
  663 + if (conf.stat) {
  664 + initDB();
  665 + cron.schedule('*/' + conf.stat.statInterval + ' * * * *', function () {
  666 + fushStat();
  667 + });
  668 + }
  669 + return log;
  670 +};
  671 +
  672 +module.exports = log;
  673 +// module.exports = commonLog();
... ...
utils/log.js
1   -const os = require("os");
2 1 var cfg = require('./config');
3 2 var utils = require('./utils');
4 3 var conf = cfg.get("configlog");
5 4 conf.projectName = cfg.get("appName");
6   -var logg = require('commonlog-kb');
  5 +var logg = require('./commonlog');
7 6 var constants = require('./constants');
  7 +var utils = require('./utils');
  8 +
8 9  
9   -var log4js = require('log4js');
10   -var appenders = {};
11   -appenders[conf.projectName] = { type: 'file', filename: conf.detail.path+"/"+os.hostname() + '_'+conf.projectName+'.detail' };
12   -log4js.configure({
13   - appenders: appenders ,
14   - categories: { default: { appenders: [conf.projectName], level: 'info' } }
15   - });
  10 +// var log4js = require('log4js');
  11 +// var appenders = {};
  12 +// appenders[conf.projectName] = { type: 'file', filename: conf.detail.path+"/"+os.hostname() + '_'+conf.projectName+'.detail' };
  13 +// log4js.configure({
  14 +// appenders: appenders ,
  15 +// categories: { default: { appenders: [conf.projectName], level: 'info' } }
  16 +// });
16 17  
17   -var logger4jDetail = log4js.getLogger(conf.projectName);
  18 +// var logger4jDetail = log4js.getLogger(conf.projectName);
18 19 var logger = [];
19 20  
20 21 const mapLog = {};
... ... @@ -207,7 +208,8 @@ logger.detailRequestFE = function(req)
207 208 var method = req.method;
208 209 var url = req.headers.host+req.originalUrl;
209 210 var body = JSON.stringify(req.body);
210   - logger4jDetail.info(logPrefix(req)+protocal+" "+method+" "+url+" Request from FE - body: "+body);
  211 + // logger4jDetail.info(logPrefix(req)+protocal+" "+method+" "+url+" Request from FE - body: "+body);
  212 + logg.detail(logPrefix(req)+protocal+" "+method+" "+url+" Request from FE - body: "+body);
211 213  
212 214 }
213 215  
... ... @@ -217,17 +219,20 @@ logger.detailResponseFE = function(req)
217 219 var method = req.method;
218 220 var url = req.headers.host+req.originalUrl;
219 221 var body = JSON.stringify(req.body);
220   - logger4jDetail.info(logPrefix(req)+protocal+" "+method+" "+url+" Response to FE - body: "+body);
  222 + // logger4jDetail.info(logPrefix(req)+protocal+" "+method+" "+url+" Response to FE - body: "+body);
  223 + logg.detail(logPrefix(req)+protocal+" "+method+" "+url+" Response to FE - body: "+body);
221 224 }
222 225  
223   -logger.detailSqlQuery = function(req,collection,data)
  226 +logger.detailSqlQuery = function(req,method,collection,data)
224 227 {
225   - logger4jDetail.info(logPrefix(req)+"BE Send Mongo Collection: \""+collection+"\" Query: "+JSON.stringify(data));
  228 + // logger4jDetail.info(logPrefix(req)+"BE Send Mongo Collection: \""+collection+"\" Query: "+JSON.stringify(data));
  229 + logg.detail(logPrefix(req)+"BE Send Mongo Collection: "+collection+" Method:"+utils.findCmdfromMethod(method)+" Query: "+JSON.stringify(data));
226 230 }
227 231  
228 232 logger.detailSqlResult = function(req,collection,data)
229 233 {
230   - logger4jDetail.info(logPrefix(req)+"BE Receive Mongo Collection: \""+collection+"\" Result: "+JSON.stringify(data));
  234 + // logger4jDetail.info(logPrefix(req)+"BE Receive Mongo Collection: \""+collection+"\" Result: "+JSON.stringify(data));
  235 + logg.detail(logPrefix(req)+"BE Receive Mongo Collection: \""+collection+"\" Result: "+JSON.stringify(data));
231 236  
232 237 }
233 238  
... ... @@ -238,7 +243,8 @@ logger.detailRequestBE = function(req,data)
238 243 var url = data.url;
239 244 var header = JSON.stringify(data.header);
240 245 var body = JSON.stringify(data.body);
241   - logger4jDetail.info(logPrefix(req)+"BE Send "+protocal+" "+method+" "+url+" request-header: "+header+" request-body:"+body);
  246 + // logger4jDetail.info(logPrefix(req)+"BE Send "+protocal+" "+method+" "+url+" request-header: "+header+" request-body:"+body);
  247 + logg.detail(logPrefix(req)+"BE Send "+protocal+" "+method+" "+url+" request-header: "+header+" request-body:"+body);
242 248 }
243 249  
244 250 logger.detailResponseBE = function(req,data)
... ... @@ -248,7 +254,8 @@ logger.detailResponseBE = function(req,data)
248 254 var url = data.url;
249 255 var header = JSON.stringify(data.header);
250 256 var body = JSON.stringify(data.body);
251   - logger4jDetail.info(logPrefix(req)+"BE Receive "+protocal+" "+method+" "+url+" response-header: "+header+" response-body:"+body);
  257 + // logger4jDetail.info(logPrefix(req)+"BE Receive "+protocal+" "+method+" "+url+" response-header: "+header+" response-body:"+body);
  258 + logg.detail(logPrefix(req)+"BE Receive "+protocal+" "+method+" "+url+" response-header: "+header+" response-body:"+body);
252 259 }
253 260  
254 261 function logPrefix(req)
... ...
utils/mongoDB.js
... ... @@ -23,15 +23,15 @@ function mongoReq(req,url,database,method, query, collection){
23 23 var nodeName = "MongoDB";
24 24 var funStats = {
25 25 detailSqlQuery : function(query){
26   - log.detailSqlQuery(req,collection,query);
27   - stat.sendQuery(collection);
  26 + log.detailSqlQuery(req,method,collection,query);
  27 + stat.sendQuery(method,collection);
28 28 },
29 29 detailSqlResult : function(result, err){
30 30 log.detailSqlResult(req,collection,result || err);
31 31 if(result)
32   - stat.receiveQuery(collection);
  32 + stat.receiveQuery(method,collection);
33 33 else
34   - stat.receiveBadQuery(collection);
  34 + stat.receiveBadQuery(method,collection);
35 35 },
36 36 addSuccessSummary : function(result){log.addSuccessSummary(req,nodeName,collection,result);},
37 37 addErrorSummary : function(result){log.addErrorSummary(req,nodeName,collection,result);}
... ...
utils/stats.js
1 1 var config = require('./config');
2 2 var log = require('./log.js');
  3 +var utils = require('./utils');
  4 +
3 5  
4 6 var nodeName = config.get("appName");
5 7 var stat = [];
... ... @@ -19,16 +21,16 @@ stat.sendResponse = function (method,cmd,result){
19 21 };
20 22  
21 23 //node and mongo
22   -stat.sendQuery = function (collection){
23   - writeStats(nodeName+" Send QUERY "+collection+" Request");
  24 +stat.sendQuery = function (method,collection){
  25 + writeStats(nodeName+" Send "+utils.findCmdfromMethod(method)+" "+collection+" Request");
24 26 };
25 27  
26   -stat.receiveBadQuery = function (collection){
27   - writeStats(nodeName+" Receive Bad QUERY "+collection+" Response");
  28 +stat.receiveBadQuery = function (method,collection){
  29 + writeStats(nodeName+" Receive Bad "+utils.findCmdfromMethod(method)+" "+collection+" Response");
28 30 };
29 31  
30   -stat.receiveQuery = function (collection){
31   - writeStats(nodeName+" Receive QUERY "+collection+" Response");
  32 +stat.receiveQuery = function (method,collection){
  33 + writeStats(nodeName+" Receive "+utils.findCmdfromMethod(method)+" "+collection+" Response");
32 34 };
33 35  
34 36 //unknow
... ... @@ -45,4 +47,5 @@ function writeStats(string) {
45 47 log.stat(string);
46 48 }
47 49  
  50 +
48 51 module.exports = stat;
49 52 \ No newline at end of file
... ...
utils/utils.js
1 1  
2 2 var parseFilter = require('ldapjs').parseFilter;
3 3 const fs = require('fs');
  4 +var constants = require('./constants');
4 5 var fileTempUnitTest = './unitTest/testCase.txt';
5 6 var utils = {};
6 7  
... ... @@ -82,6 +83,26 @@ utils.undefinedToNull = function(data){
82 83 return data;
83 84 }
84 85  
  86 +utils.findCmdfromMethod = function (method)
  87 +{
  88 + var cmd = "";
  89 + switch (method) {
  90 + case constants.METHOD.GET:
  91 + cmd = 'QUERY';
  92 + break;
  93 + case constants.METHOD.POST:
  94 + cmd = "INSERT"
  95 + break;
  96 + case constants.METHOD.PUT:
  97 + cmd = 'UPDATE';
  98 + break;
  99 + case constants.METHOD.DELETE:
  100 + cmd = 'DELETE';
  101 + break;
  102 + }
  103 + return cmd;
  104 +}
  105 +
85 106 utils.testUnit = function(a,b,c,d,e)
86 107 {
87 108 var returnData = a+b+c+d+e;
... ... @@ -203,6 +224,8 @@ function findValueInBracket(data)
203 224  
204 225 }
205 226  
  227 +
  228 +
206 229 getQuery = async function(data,query){
207 230  
208 231 if(!query)
... ... @@ -262,7 +285,9 @@ getQuery = async function(data,query){
262 285 // query += " "+data.type.toUpperCase()+" "
263 286 }
264 287 return query;
265   -}
  288 +}
  289 +
  290 +
266 291  
267 292 if(process.env.NODE_ENV == 'gentest')
268 293 fs.unlinkSync(fileTempUnitTest);
... ...