Commit c0741a57433e2e4117670a7e38028ea9e04a3b12

Authored by Adhidarma Hadiwinoto
1 parent d987f76aa2
Exists in master

Completed

Showing 9 changed files with 4919 additions and 0 deletions Side-by-side Diff

... ... @@ -0,0 +1,17 @@
  1 +module.exports = {
  2 + "env": {
  3 + "commonjs": true,
  4 + "es6": true,
  5 + "node": true
  6 + },
  7 + "extends": "eslint:recommended",
  8 + "globals": {
  9 + "Atomics": "readonly",
  10 + "SharedArrayBuffer": "readonly"
  11 + },
  12 + "parserOptions": {
  13 + "ecmaVersion": 2018
  14 + },
  15 + "rules": {
  16 + }
  17 +};
0 18 \ No newline at end of file
... ... @@ -0,0 +1,5 @@
  1 +/node_modules/
  2 +/config.json
  3 +/tmp/
  4 +/logs/
  5 +pid.txt
... ... @@ -0,0 +1,9 @@
  1 +"use strict";
  2 +
  3 +process.chdir(__dirname);
  4 +
  5 +const fs = require('fs');
  6 +fs.writeFileSync('pid.txt', process.pid);
  7 +
  8 +require('./lib/transport');
  9 +require('./lib/handler-callback-server');
0 10 \ No newline at end of file
lib/handler-callback-server.js
... ... @@ -0,0 +1,54 @@
  1 +"use strict";
  2 +
  3 +/**
  4 + * Modul untuk menerima callback dari modem handler jika ada SMS masuk.
  5 + */
  6 +
  7 +
  8 +const express = require('express');
  9 +
  10 +const messagingService = require('komodo-center-messaging-client-lib');
  11 +
  12 +const config = require('komodo-sdk/config');
  13 +const logger = require('komodo-sdk/logger');
  14 +
  15 +const transport = require('./transport');
  16 +
  17 +const app = express();
  18 +messagingService.setTransport(transport);
  19 +
  20 +function apikeyChecker(req, res, next) {
  21 + res.locals.has_valid_apikey = req.params.apikey === config.handler_callback_server.apikey;
  22 + if (res.locals.has_valid_apikey) {
  23 + next();
  24 + }
  25 + else {
  26 + res.end('HANDLER-CALLBACK-SERVER: Invalid apikey');
  27 + }
  28 +}
  29 +
  30 +function onIncomingSms(req, res) {
  31 + res.end('OK');
  32 + const numberWithSuffix = req.query.number + (config.number_suffix || '');
  33 +
  34 + logger.info('HANDLER-CALLBACK-SERVER: Incoming SMS', { modem: req.query.modem, from: req.query.number, from_with_suffix: numberWithSuffix, msg: req.query.msg });
  35 + messagingService.onIncomingMessage({
  36 + me: req.query.modem,
  37 + partner: numberWithSuffix,
  38 + msg: req.query.msg
  39 + })
  40 +}
  41 +
  42 +app.use(function(req, res, next) {
  43 + logger.verbose('HANDLER-CALLBACK-SERVER: Incoming http request', { ip: req.ip, url: req.url });
  44 + next();
  45 +})
  46 +app.use('/apikey/:apikey', apikeyChecker);
  47 +app.get('/apikey/:apikey/on-sms', onIncomingSms);
  48 +app.get('/apikey/:apikey/inbox', onIncomingSms);
  49 +app.get('/apikey/:apikey/on-sms/inbox', onIncomingSms);
  50 +
  51 +const listenPort = config && config.handler_callback_server ? config.handler_callback_server.listen_port : null;
  52 +listenPort && app.listen(listenPort, () => {
  53 + logger.info('HTTP Handler Callback server listening on port ' + listenPort);
  54 +})
0 55 \ No newline at end of file
... ... @@ -0,0 +1,34 @@
  1 +"use strict";
  2 +
  3 +function getModemConfig(modemName, modemsConfig) {
  4 + if (!modemsConfig) return;
  5 + if (!modemName) return;
  6 + if (typeof modemName === 'string' && !modemName.trim()) return;
  7 +
  8 + return modemsConfig[modemName.trim()];
  9 +}
  10 +
  11 +function getModemUrl(modemName, modemsConfig) {
  12 + const modemConfig = getModemConfig(modemName, modemsConfig);
  13 + return modemConfig ? modemConfig.url : null;
  14 +}
  15 +
  16 +function getModemApikey(modemName, modemsConfig) {
  17 + const modemConfig = getModemConfig(modemName, modemsConfig);
  18 + return modemConfig ? modemConfig.apikey : null;
  19 +}
  20 +
  21 +function removeSuffixFromNumber(number, config) {
  22 + if (!config) {
  23 + config = {};
  24 + }
  25 +
  26 + const suffix = config && config.number_suffix ? config.number_suffix : '@.*';
  27 + const re = new RegExp(suffix + '$');
  28 + return number.replace(re, '');
  29 +}
  30 +
  31 +exports.getModemConfig = getModemConfig;
  32 +exports.getModemUrl = getModemUrl;
  33 +exports.getModemApikey = getModemApikey;
  34 +exports.removeSuffixFromNumber = removeSuffixFromNumber;
0 35 \ No newline at end of file
... ... @@ -0,0 +1,68 @@
  1 +"use strict";
  2 +
  3 +const request = require('request');
  4 +const uuidv4 = require('uuid/v4');
  5 +
  6 +const config = require('komodo-sdk/config');
  7 +const logger = require('komodo-sdk/logger');
  8 +
  9 +const modems = require('./modems');
  10 +
  11 +function send(partner, msg, origin) {
  12 + if (!partner) return;
  13 +
  14 + if (typeof msg !== 'string') {
  15 + logger.warn('Message to send is not a string, ignoring message');
  16 + return;
  17 + }
  18 +
  19 + msg = msg.trim();
  20 + if (!msg) return;
  21 +
  22 + if (msg.length > 160 && !config.do_not_trim_long_sms) {
  23 + logger.verbose('Message trim to 160 chars');
  24 + msg = msg.slice(0, 156) + ' ...';
  25 + }
  26 +
  27 + const handlerName = origin || config.default_modem;
  28 +
  29 + const modem = modems.getModemConfig(handlerName, config.modems);
  30 + if (!modem) {
  31 + logger.warn('Not knowing modem to use. Ignoring message', { partner: partner, msg: msg, origin: origin, handler_name: handlerName });
  32 + return;
  33 + }
  34 +
  35 + if (!modem.url || !modem.apikey) {
  36 + logger.warn('Invalid modem configuration', { config: modem, handler_name: handlerName });
  37 + return;
  38 + }
  39 +
  40 + const reqId = uuidv4();
  41 + const destinationNumber = modems.removeSuffixFromNumber(partner, config);
  42 +
  43 + const requestOptions = {
  44 + url: modem.url,
  45 + qs: {
  46 + msg: msg,
  47 + number: destinationNumber,
  48 + reqid: reqId,
  49 + apikey: modem.apikey
  50 + }
  51 + }
  52 +
  53 + logger.info('Sending message to modem handler', { req_id: reqId, partner: partner, destination_number: destinationNumber, msg: msg, handler_name: handlerName });
  54 + request(requestOptions, function(err, res, body) {
  55 + if (err) {
  56 + logger.warn('Error requesting to modem handler. ' + err.toString(), { req_id: reqId, handler_name: handlerName });
  57 +
  58 + }
  59 + else if (res.statusCode != 200) {
  60 + logger.warn('Modem handler not responding with HTTP status code 200.', { http_status_code: res.statusCode, req_id: reqId, handler_name: handlerName });
  61 + }
  62 + else {
  63 + logger.verbose('Message sent to handler', { req_id: reqId, handler_name: handlerName, response_body: body });
  64 + }
  65 + })
  66 +}
  67 +
  68 +exports.send = send;
0 69 \ No newline at end of file
Changes suppressed. Click to show
... ... @@ -0,0 +1,4649 @@
  1 +{
  2 + "name": "komodo-center-sms",
  3 + "version": "0.9.0",
  4 + "lockfileVersion": 1,
  5 + "requires": true,
  6 + "dependencies": {
  7 + "@babel/code-frame": {
  8 + "version": "7.5.5",
  9 + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.5.5.tgz",
  10 + "integrity": "sha512-27d4lZoomVyo51VegxI20xZPuSHusqbQag/ztrBC7wegWoQ1nLREPVSKSW8byhTlzTKyNE4ifaTA6lCp7JjpFw==",
  11 + "dev": true,
  12 + "requires": {
  13 + "@babel/highlight": "^7.0.0"
  14 + }
  15 + },
  16 + "@babel/highlight": {
  17 + "version": "7.5.0",
  18 + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.5.0.tgz",
  19 + "integrity": "sha512-7dV4eu9gBxoM0dAnj/BCFDW9LFU0zvTrkq0ugM7pnHEgguOEeOz1so2ZghEdzviYzQEED0r4EAgpsBChKy1TRQ==",
  20 + "dev": true,
  21 + "requires": {
  22 + "chalk": "^2.0.0",
  23 + "esutils": "^2.0.2",
  24 + "js-tokens": "^4.0.0"
  25 + }
  26 + },
  27 + "@cloudcmd/copy-file": {
  28 + "version": "1.1.1",
  29 + "resolved": "https://registry.npmjs.org/@cloudcmd/copy-file/-/copy-file-1.1.1.tgz",
  30 + "integrity": "sha512-t6pTJdsV0qhh9YX22/Npsv95GqVABc5GRInSK7JSSNIpPLq9TM+K7odYzcOuQRPZAD9OHxZfbYsB4WJOalzqng==",
  31 + "requires": {
  32 + "es6-promisify": "^6.0.0",
  33 + "pipe-io": "^3.0.0",
  34 + "wraptile": "^2.0.0",
  35 + "zames": "^2.0.0"
  36 + }
  37 + },
  38 + "a-sync-waterfall": {
  39 + "version": "1.0.1",
  40 + "resolved": "https://registry.npmjs.org/a-sync-waterfall/-/a-sync-waterfall-1.0.1.tgz",
  41 + "integrity": "sha512-RYTOHHdWipFUliRFMCS4X2Yn2X8M87V/OpSqWzKKOGhzqyUxzyVmhHDH9sAvG+ZuQf/TAOFsLCpMw09I1ufUnA=="
  42 + },
  43 + "accepts": {
  44 + "version": "1.3.7",
  45 + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz",
  46 + "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==",
  47 + "requires": {
  48 + "mime-types": "~2.1.24",
  49 + "negotiator": "0.6.2"
  50 + }
  51 + },
  52 + "acorn": {
  53 + "version": "6.2.1",
  54 + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.2.1.tgz",
  55 + "integrity": "sha512-JD0xT5FCRDNyjDda3Lrg/IxFscp9q4tiYtxE1/nOzlKCk7hIRuYjhq1kCNkbPjMRMZuFq20HNQn1I9k8Oj0E+Q==",
  56 + "dev": true
  57 + },
  58 + "acorn-jsx": {
  59 + "version": "5.0.1",
  60 + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.0.1.tgz",
  61 + "integrity": "sha512-HJ7CfNHrfJLlNTzIEUTj43LNWGkqpRLxm3YjAlcD0ACydk9XynzYsCBHxut+iqt+1aBXkx9UP/w/ZqMr13XIzg==",
  62 + "dev": true
  63 + },
  64 + "ajv": {
  65 + "version": "6.10.2",
  66 + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz",
  67 + "integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==",
  68 + "requires": {
  69 + "fast-deep-equal": "^2.0.1",
  70 + "fast-json-stable-stringify": "^2.0.0",
  71 + "json-schema-traverse": "^0.4.1",
  72 + "uri-js": "^4.2.2"
  73 + }
  74 + },
  75 + "ansi-colors": {
  76 + "version": "3.2.3",
  77 + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.3.tgz",
  78 + "integrity": "sha512-LEHHyuhlPY3TmuUYMh2oz89lTShfvgbmzaBcxve9t/9Wuy7Dwf4yoAKcND7KFT1HAQfqZ12qtc+DUrBMeKF9nw==",
  79 + "dev": true
  80 + },
  81 + "ansi-escapes": {
  82 + "version": "3.2.0",
  83 + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz",
  84 + "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==",
  85 + "dev": true
  86 + },
  87 + "ansi-regex": {
  88 + "version": "2.1.1",
  89 + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
  90 + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8="
  91 + },
  92 + "ansi-styles": {
  93 + "version": "3.2.1",
  94 + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
  95 + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
  96 + "dev": true,
  97 + "requires": {
  98 + "color-convert": "^1.9.0"
  99 + }
  100 + },
  101 + "anymatch": {
  102 + "version": "2.0.0",
  103 + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz",
  104 + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==",
  105 + "optional": true,
  106 + "requires": {
  107 + "micromatch": "^3.1.4",
  108 + "normalize-path": "^2.1.1"
  109 + },
  110 + "dependencies": {
  111 + "normalize-path": {
  112 + "version": "2.1.1",
  113 + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz",
  114 + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=",
  115 + "optional": true,
  116 + "requires": {
  117 + "remove-trailing-separator": "^1.0.1"
  118 + }
  119 + }
  120 + }
  121 + },
  122 + "argparse": {
  123 + "version": "1.0.10",
  124 + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
  125 + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
  126 + "dev": true,
  127 + "requires": {
  128 + "sprintf-js": "~1.0.2"
  129 + }
  130 + },
  131 + "arr-diff": {
  132 + "version": "4.0.0",
  133 + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz",
  134 + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=",
  135 + "optional": true
  136 + },
  137 + "arr-flatten": {
  138 + "version": "1.1.0",
  139 + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz",
  140 + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==",
  141 + "optional": true
  142 + },
  143 + "arr-union": {
  144 + "version": "3.1.0",
  145 + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz",
  146 + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ="
  147 + },
  148 + "array-flatten": {
  149 + "version": "1.1.1",
  150 + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
  151 + "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI="
  152 + },
  153 + "array-unique": {
  154 + "version": "0.3.2",
  155 + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz",
  156 + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg="
  157 + },
  158 + "asap": {
  159 + "version": "2.0.6",
  160 + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz",
  161 + "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY="
  162 + },
  163 + "asn1": {
  164 + "version": "0.2.4",
  165 + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz",
  166 + "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==",
  167 + "requires": {
  168 + "safer-buffer": "~2.1.0"
  169 + }
  170 + },
  171 + "assert-plus": {
  172 + "version": "1.0.0",
  173 + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
  174 + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU="
  175 + },
  176 + "assign-symbols": {
  177 + "version": "1.0.0",
  178 + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz",
  179 + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=",
  180 + "optional": true
  181 + },
  182 + "astral-regex": {
  183 + "version": "1.0.0",
  184 + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz",
  185 + "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==",
  186 + "dev": true
  187 + },
  188 + "async": {
  189 + "version": "1.0.0",
  190 + "resolved": "https://registry.npmjs.org/async/-/async-1.0.0.tgz",
  191 + "integrity": "sha1-+PwEyjoTeErenhZBr5hXjPvWR6k="
  192 + },
  193 + "async-each": {
  194 + "version": "1.0.3",
  195 + "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz",
  196 + "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==",
  197 + "optional": true
  198 + },
  199 + "asynckit": {
  200 + "version": "0.4.0",
  201 + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
  202 + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k="
  203 + },
  204 + "atob": {
  205 + "version": "2.1.2",
  206 + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz",
  207 + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==",
  208 + "optional": true
  209 + },
  210 + "aws-sign2": {
  211 + "version": "0.7.0",
  212 + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz",
  213 + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg="
  214 + },
  215 + "aws4": {
  216 + "version": "1.8.0",
  217 + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz",
  218 + "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ=="
  219 + },
  220 + "balanced-match": {
  221 + "version": "1.0.0",
  222 + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
  223 + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c="
  224 + },
  225 + "base": {
  226 + "version": "0.11.2",
  227 + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz",
  228 + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==",
  229 + "optional": true,
  230 + "requires": {
  231 + "cache-base": "^1.0.1",
  232 + "class-utils": "^0.3.5",
  233 + "component-emitter": "^1.2.1",
  234 + "define-property": "^1.0.0",
  235 + "isobject": "^3.0.1",
  236 + "mixin-deep": "^1.2.0",
  237 + "pascalcase": "^0.1.1"
  238 + },
  239 + "dependencies": {
  240 + "define-property": {
  241 + "version": "1.0.0",
  242 + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
  243 + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
  244 + "optional": true,
  245 + "requires": {
  246 + "is-descriptor": "^1.0.0"
  247 + }
  248 + },
  249 + "is-accessor-descriptor": {
  250 + "version": "1.0.0",
  251 + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
  252 + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
  253 + "optional": true,
  254 + "requires": {
  255 + "kind-of": "^6.0.0"
  256 + }
  257 + },
  258 + "is-data-descriptor": {
  259 + "version": "1.0.0",
  260 + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
  261 + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
  262 + "optional": true,
  263 + "requires": {
  264 + "kind-of": "^6.0.0"
  265 + }
  266 + },
  267 + "is-descriptor": {
  268 + "version": "1.0.2",
  269 + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
  270 + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
  271 + "optional": true,
  272 + "requires": {
  273 + "is-accessor-descriptor": "^1.0.0",
  274 + "is-data-descriptor": "^1.0.0",
  275 + "kind-of": "^6.0.2"
  276 + }
  277 + }
  278 + }
  279 + },
  280 + "basic-auth": {
  281 + "version": "2.0.1",
  282 + "resolved": "https://registry.npmjs.org/basic-auth/-/basic-auth-2.0.1.tgz",
  283 + "integrity": "sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==",
  284 + "requires": {
  285 + "safe-buffer": "5.1.2"
  286 + }
  287 + },
  288 + "bcrypt-pbkdf": {
  289 + "version": "1.0.2",
  290 + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz",
  291 + "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=",
  292 + "requires": {
  293 + "tweetnacl": "^0.14.3"
  294 + }
  295 + },
  296 + "binary-extensions": {
  297 + "version": "1.13.1",
  298 + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz",
  299 + "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==",
  300 + "optional": true
  301 + },
  302 + "body-parser": {
  303 + "version": "1.19.0",
  304 + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz",
  305 + "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==",
  306 + "requires": {
  307 + "bytes": "3.1.0",
  308 + "content-type": "~1.0.4",
  309 + "debug": "2.6.9",
  310 + "depd": "~1.1.2",
  311 + "http-errors": "1.7.2",
  312 + "iconv-lite": "0.4.24",
  313 + "on-finished": "~2.3.0",
  314 + "qs": "6.7.0",
  315 + "raw-body": "2.4.0",
  316 + "type-is": "~1.6.17"
  317 + }
  318 + },
  319 + "brace-expansion": {
  320 + "version": "1.1.11",
  321 + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
  322 + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
  323 + "requires": {
  324 + "balanced-match": "^1.0.0",
  325 + "concat-map": "0.0.1"
  326 + }
  327 + },
  328 + "braces": {
  329 + "version": "2.3.2",
  330 + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz",
  331 + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==",
  332 + "optional": true,
  333 + "requires": {
  334 + "arr-flatten": "^1.1.0",
  335 + "array-unique": "^0.3.2",
  336 + "extend-shallow": "^2.0.1",
  337 + "fill-range": "^4.0.0",
  338 + "isobject": "^3.0.1",
  339 + "repeat-element": "^1.1.2",
  340 + "snapdragon": "^0.8.1",
  341 + "snapdragon-node": "^2.0.1",
  342 + "split-string": "^3.0.2",
  343 + "to-regex": "^3.0.1"
  344 + },
  345 + "dependencies": {
  346 + "extend-shallow": {
  347 + "version": "2.0.1",
  348 + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
  349 + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
  350 + "optional": true,
  351 + "requires": {
  352 + "is-extendable": "^0.1.0"
  353 + }
  354 + }
  355 + }
  356 + },
  357 + "browser-stdout": {
  358 + "version": "1.3.1",
  359 + "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz",
  360 + "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==",
  361 + "dev": true
  362 + },
  363 + "bytes": {
  364 + "version": "3.1.0",
  365 + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz",
  366 + "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg=="
  367 + },
  368 + "bytewise": {
  369 + "version": "1.1.0",
  370 + "resolved": "https://registry.npmjs.org/bytewise/-/bytewise-1.1.0.tgz",
  371 + "integrity": "sha1-HRPL/3F65xWAlKqIGzXQgbOHJT4=",
  372 + "requires": {
  373 + "bytewise-core": "^1.2.2",
  374 + "typewise": "^1.0.3"
  375 + }
  376 + },
  377 + "bytewise-core": {
  378 + "version": "1.2.3",
  379 + "resolved": "https://registry.npmjs.org/bytewise-core/-/bytewise-core-1.2.3.tgz",
  380 + "integrity": "sha1-P7QQx+kVWOsasiqCg0V3qmvWHUI=",
  381 + "requires": {
  382 + "typewise-core": "^1.2"
  383 + }
  384 + },
  385 + "cache-base": {
  386 + "version": "1.0.1",
  387 + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz",
  388 + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==",
  389 + "optional": true,
  390 + "requires": {
  391 + "collection-visit": "^1.0.0",
  392 + "component-emitter": "^1.2.1",
  393 + "get-value": "^2.0.6",
  394 + "has-value": "^1.0.0",
  395 + "isobject": "^3.0.1",
  396 + "set-value": "^2.0.0",
  397 + "to-object-path": "^0.3.0",
  398 + "union-value": "^1.0.0",
  399 + "unset-value": "^1.0.0"
  400 + }
  401 + },
  402 + "callsites": {
  403 + "version": "3.1.0",
  404 + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
  405 + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
  406 + "dev": true
  407 + },
  408 + "camelcase": {
  409 + "version": "2.1.1",
  410 + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz",
  411 + "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8="
  412 + },
  413 + "caseless": {
  414 + "version": "0.12.0",
  415 + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
  416 + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw="
  417 + },
  418 + "chalk": {
  419 + "version": "2.4.2",
  420 + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
  421 + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
  422 + "dev": true,
  423 + "requires": {
  424 + "ansi-styles": "^3.2.1",
  425 + "escape-string-regexp": "^1.0.5",
  426 + "supports-color": "^5.3.0"
  427 + },
  428 + "dependencies": {
  429 + "supports-color": {
  430 + "version": "5.5.0",
  431 + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
  432 + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
  433 + "dev": true,
  434 + "requires": {
  435 + "has-flag": "^3.0.0"
  436 + }
  437 + }
  438 + }
  439 + },
  440 + "chardet": {
  441 + "version": "0.7.0",
  442 + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz",
  443 + "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==",
  444 + "dev": true
  445 + },
  446 + "charenc": {
  447 + "version": "0.0.2",
  448 + "resolved": "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz",
  449 + "integrity": "sha1-wKHS86cJLgN3S/qD8UwPxXkKhmc="
  450 + },
  451 + "chokidar": {
  452 + "version": "2.1.6",
  453 + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.6.tgz",
  454 + "integrity": "sha512-V2jUo67OKkc6ySiRpJrjlpJKl9kDuG+Xb8VgsGzb+aEouhgS1D0weyPU4lEzdAcsCAvrih2J2BqyXqHWvVLw5g==",
  455 + "optional": true,
  456 + "requires": {
  457 + "anymatch": "^2.0.0",
  458 + "async-each": "^1.0.1",
  459 + "braces": "^2.3.2",
  460 + "fsevents": "^1.2.7",
  461 + "glob-parent": "^3.1.0",
  462 + "inherits": "^2.0.3",
  463 + "is-binary-path": "^1.0.0",
  464 + "is-glob": "^4.0.0",
  465 + "normalize-path": "^3.0.0",
  466 + "path-is-absolute": "^1.0.0",
  467 + "readdirp": "^2.2.1",
  468 + "upath": "^1.1.1"
  469 + }
  470 + },
  471 + "circular-buffer": {
  472 + "version": "0.0.6",
  473 + "resolved": "https://registry.npmjs.org/circular-buffer/-/circular-buffer-0.0.6.tgz",
  474 + "integrity": "sha1-6c+iujGdNw3idDtgCMpTnN3r9TY="
  475 + },
  476 + "class-utils": {
  477 + "version": "0.3.6",
  478 + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz",
  479 + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==",
  480 + "optional": true,
  481 + "requires": {
  482 + "arr-union": "^3.1.0",
  483 + "define-property": "^0.2.5",
  484 + "isobject": "^3.0.0",
  485 + "static-extend": "^0.1.1"
  486 + },
  487 + "dependencies": {
  488 + "define-property": {
  489 + "version": "0.2.5",
  490 + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
  491 + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
  492 + "optional": true,
  493 + "requires": {
  494 + "is-descriptor": "^0.1.0"
  495 + }
  496 + }
  497 + }
  498 + },
  499 + "cli-cursor": {
  500 + "version": "2.1.0",
  501 + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz",
  502 + "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=",
  503 + "dev": true,
  504 + "requires": {
  505 + "restore-cursor": "^2.0.0"
  506 + }
  507 + },
  508 + "cli-width": {
  509 + "version": "2.2.0",
  510 + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz",
  511 + "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=",
  512 + "dev": true
  513 + },
  514 + "cliui": {
  515 + "version": "3.2.0",
  516 + "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz",
  517 + "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=",
  518 + "requires": {
  519 + "string-width": "^1.0.1",
  520 + "strip-ansi": "^3.0.1",
  521 + "wrap-ansi": "^2.0.0"
  522 + }
  523 + },
  524 + "code-point-at": {
  525 + "version": "1.1.0",
  526 + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz",
  527 + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c="
  528 + },
  529 + "collection-visit": {
  530 + "version": "1.0.0",
  531 + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz",
  532 + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=",
  533 + "optional": true,
  534 + "requires": {
  535 + "map-visit": "^1.0.0",
  536 + "object-visit": "^1.0.0"
  537 + }
  538 + },
  539 + "color-convert": {
  540 + "version": "1.9.3",
  541 + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
  542 + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
  543 + "dev": true,
  544 + "requires": {
  545 + "color-name": "1.1.3"
  546 + }
  547 + },
  548 + "color-name": {
  549 + "version": "1.1.3",
  550 + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
  551 + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
  552 + "dev": true
  553 + },
  554 + "colors": {
  555 + "version": "1.0.3",
  556 + "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz",
  557 + "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs="
  558 + },
  559 + "combined-stream": {
  560 + "version": "1.0.8",
  561 + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
  562 + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
  563 + "requires": {
  564 + "delayed-stream": "~1.0.0"
  565 + }
  566 + },
  567 + "commander": {
  568 + "version": "2.20.0",
  569 + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.0.tgz",
  570 + "integrity": "sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ=="
  571 + },
  572 + "component-emitter": {
  573 + "version": "1.3.0",
  574 + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz",
  575 + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==",
  576 + "optional": true
  577 + },
  578 + "concat-map": {
  579 + "version": "0.0.1",
  580 + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
  581 + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="
  582 + },
  583 + "content-disposition": {
  584 + "version": "0.5.3",
  585 + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz",
  586 + "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==",
  587 + "requires": {
  588 + "safe-buffer": "5.1.2"
  589 + }
  590 + },
  591 + "content-type": {
  592 + "version": "1.0.4",
  593 + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz",
  594 + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA=="
  595 + },
  596 + "cookie": {
  597 + "version": "0.4.0",
  598 + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz",
  599 + "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg=="
  600 + },
  601 + "cookie-signature": {
  602 + "version": "1.0.6",
  603 + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
  604 + "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw="
  605 + },
  606 + "copy-descriptor": {
  607 + "version": "0.1.1",
  608 + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz",
  609 + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=",
  610 + "optional": true
  611 + },
  612 + "core-util-is": {
  613 + "version": "1.0.2",
  614 + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
  615 + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac="
  616 + },
  617 + "cross-spawn": {
  618 + "version": "6.0.5",
  619 + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
  620 + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==",
  621 + "dev": true,
  622 + "requires": {
  623 + "nice-try": "^1.0.4",
  624 + "path-key": "^2.0.1",
  625 + "semver": "^5.5.0",
  626 + "shebang-command": "^1.2.0",
  627 + "which": "^1.2.9"
  628 + }
  629 + },
  630 + "crypt": {
  631 + "version": "0.0.2",
  632 + "resolved": "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz",
  633 + "integrity": "sha1-iNf/fsDfuG9xPch7u0LQRNPmxBs="
  634 + },
  635 + "currify": {
  636 + "version": "3.0.0",
  637 + "resolved": "https://registry.npmjs.org/currify/-/currify-3.0.0.tgz",
  638 + "integrity": "sha512-ecz0Dq3T2UwiLwhiYvEFhdM4yUvlCLRgVbvpt6oI8RteJzEztum1UbLbN6snQ5nfHqtMcnrxkd7N0LeAIErorw=="
  639 + },
  640 + "cycle": {
  641 + "version": "1.0.3",
  642 + "resolved": "https://registry.npmjs.org/cycle/-/cycle-1.0.3.tgz",
  643 + "integrity": "sha1-IegLK+hYD5i0aPN5QwZisEbDStI="
  644 + },
  645 + "dashdash": {
  646 + "version": "1.14.1",
  647 + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
  648 + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=",
  649 + "requires": {
  650 + "assert-plus": "^1.0.0"
  651 + }
  652 + },
  653 + "debug": {
  654 + "version": "2.6.9",
  655 + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
  656 + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
  657 + "requires": {
  658 + "ms": "2.0.0"
  659 + }
  660 + },
  661 + "decamelize": {
  662 + "version": "1.2.0",
  663 + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
  664 + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA="
  665 + },
  666 + "decode-uri-component": {
  667 + "version": "0.2.0",
  668 + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz",
  669 + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=",
  670 + "optional": true
  671 + },
  672 + "deep-is": {
  673 + "version": "0.1.3",
  674 + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz",
  675 + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=",
  676 + "dev": true
  677 + },
  678 + "define-properties": {
  679 + "version": "1.1.3",
  680 + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz",
  681 + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==",
  682 + "dev": true,
  683 + "requires": {
  684 + "object-keys": "^1.0.12"
  685 + }
  686 + },
  687 + "define-property": {
  688 + "version": "2.0.2",
  689 + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz",
  690 + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==",
  691 + "optional": true,
  692 + "requires": {
  693 + "is-descriptor": "^1.0.2",
  694 + "isobject": "^3.0.1"
  695 + },
  696 + "dependencies": {
  697 + "is-accessor-descriptor": {
  698 + "version": "1.0.0",
  699 + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
  700 + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
  701 + "optional": true,
  702 + "requires": {
  703 + "kind-of": "^6.0.0"
  704 + }
  705 + },
  706 + "is-data-descriptor": {
  707 + "version": "1.0.0",
  708 + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
  709 + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
  710 + "optional": true,
  711 + "requires": {
  712 + "kind-of": "^6.0.0"
  713 + }
  714 + },
  715 + "is-descriptor": {
  716 + "version": "1.0.2",
  717 + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
  718 + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
  719 + "optional": true,
  720 + "requires": {
  721 + "is-accessor-descriptor": "^1.0.0",
  722 + "is-data-descriptor": "^1.0.0",
  723 + "kind-of": "^6.0.2"
  724 + }
  725 + }
  726 + }
  727 + },
  728 + "delayed-stream": {
  729 + "version": "1.0.0",
  730 + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
  731 + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk="
  732 + },
  733 + "depd": {
  734 + "version": "1.1.2",
  735 + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
  736 + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak="
  737 + },
  738 + "destroy": {
  739 + "version": "1.0.4",
  740 + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz",
  741 + "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA="
  742 + },
  743 + "diff": {
  744 + "version": "3.5.0",
  745 + "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz",
  746 + "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==",
  747 + "dev": true
  748 + },
  749 + "doctrine": {
  750 + "version": "3.0.0",
  751 + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz",
  752 + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==",
  753 + "dev": true,
  754 + "requires": {
  755 + "esutils": "^2.0.2"
  756 + }
  757 + },
  758 + "dot-object": {
  759 + "version": "1.8.1",
  760 + "resolved": "https://registry.npmjs.org/dot-object/-/dot-object-1.8.1.tgz",
  761 + "integrity": "sha512-Tk/EzgutsRgX1agdapqO8GTLMVFC2wg2X3xJB76W+rEIlTplQksedM/MzYS+FmkE8llJ6nMR60mhhw9aaGGHGA==",
  762 + "requires": {
  763 + "commander": "^2.20.0",
  764 + "glob": "^7.1.4"
  765 + }
  766 + },
  767 + "double-ended-queue": {
  768 + "version": "2.1.0-0",
  769 + "resolved": "https://registry.npmjs.org/double-ended-queue/-/double-ended-queue-2.1.0-0.tgz",
  770 + "integrity": "sha1-ED01J/0xUo9AGIEwyEHv3XgmTlw="
  771 + },
  772 + "ecc-jsbn": {
  773 + "version": "0.1.2",
  774 + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz",
  775 + "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=",
  776 + "requires": {
  777 + "jsbn": "~0.1.0",
  778 + "safer-buffer": "^2.1.0"
  779 + }
  780 + },
  781 + "ee-first": {
  782 + "version": "1.1.1",
  783 + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
  784 + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0="
  785 + },
  786 + "emoji-regex": {
  787 + "version": "7.0.3",
  788 + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz",
  789 + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==",
  790 + "dev": true
  791 + },
  792 + "encodeurl": {
  793 + "version": "1.0.2",
  794 + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
  795 + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k="
  796 + },
  797 + "end-of-stream": {
  798 + "version": "1.4.1",
  799 + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz",
  800 + "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==",
  801 + "dev": true,
  802 + "requires": {
  803 + "once": "^1.4.0"
  804 + }
  805 + },
  806 + "es-abstract": {
  807 + "version": "1.13.0",
  808 + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.13.0.tgz",
  809 + "integrity": "sha512-vDZfg/ykNxQVwup/8E1BZhVzFfBxs9NqMzGcvIJrqg5k2/5Za2bWo40dK2J1pgLngZ7c+Shh8lwYtLGyrwPutg==",
  810 + "dev": true,
  811 + "requires": {
  812 + "es-to-primitive": "^1.2.0",
  813 + "function-bind": "^1.1.1",
  814 + "has": "^1.0.3",
  815 + "is-callable": "^1.1.4",
  816 + "is-regex": "^1.0.4",
  817 + "object-keys": "^1.0.12"
  818 + }
  819 + },
  820 + "es-to-primitive": {
  821 + "version": "1.2.0",
  822 + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.0.tgz",
  823 + "integrity": "sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg==",
  824 + "dev": true,
  825 + "requires": {
  826 + "is-callable": "^1.1.4",
  827 + "is-date-object": "^1.0.1",
  828 + "is-symbol": "^1.0.2"
  829 + }
  830 + },
  831 + "es6-promisify": {
  832 + "version": "6.0.1",
  833 + "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-6.0.1.tgz",
  834 + "integrity": "sha512-J3ZkwbEnnO+fGAKrjVpeUAnZshAdfZvbhQpqfIH9kSAspReRC4nJnu8ewm55b4y9ElyeuhCTzJD0XiH8Tsbhlw=="
  835 + },
  836 + "escape-html": {
  837 + "version": "1.0.3",
  838 + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
  839 + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg="
  840 + },
  841 + "escape-string-regexp": {
  842 + "version": "1.0.5",
  843 + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
  844 + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
  845 + "dev": true
  846 + },
  847 + "eslint": {
  848 + "version": "6.1.0",
  849 + "resolved": "https://registry.npmjs.org/eslint/-/eslint-6.1.0.tgz",
  850 + "integrity": "sha512-QhrbdRD7ofuV09IuE2ySWBz0FyXCq0rriLTZXZqaWSI79CVtHVRdkFuFTViiqzZhkCgfOh9USpriuGN2gIpZDQ==",
  851 + "dev": true,
  852 + "requires": {
  853 + "@babel/code-frame": "^7.0.0",
  854 + "ajv": "^6.10.0",
  855 + "chalk": "^2.1.0",
  856 + "cross-spawn": "^6.0.5",
  857 + "debug": "^4.0.1",
  858 + "doctrine": "^3.0.0",
  859 + "eslint-scope": "^5.0.0",
  860 + "eslint-utils": "^1.3.1",
  861 + "eslint-visitor-keys": "^1.0.0",
  862 + "espree": "^6.0.0",
  863 + "esquery": "^1.0.1",
  864 + "esutils": "^2.0.2",
  865 + "file-entry-cache": "^5.0.1",
  866 + "functional-red-black-tree": "^1.0.1",
  867 + "glob-parent": "^5.0.0",
  868 + "globals": "^11.7.0",
  869 + "ignore": "^4.0.6",
  870 + "import-fresh": "^3.0.0",
  871 + "imurmurhash": "^0.1.4",
  872 + "inquirer": "^6.4.1",
  873 + "is-glob": "^4.0.0",
  874 + "js-yaml": "^3.13.1",
  875 + "json-stable-stringify-without-jsonify": "^1.0.1",
  876 + "levn": "^0.3.0",
  877 + "lodash": "^4.17.14",
  878 + "minimatch": "^3.0.4",
  879 + "mkdirp": "^0.5.1",
  880 + "natural-compare": "^1.4.0",
  881 + "optionator": "^0.8.2",
  882 + "progress": "^2.0.0",
  883 + "regexpp": "^2.0.1",
  884 + "semver": "^6.1.2",
  885 + "strip-ansi": "^5.2.0",
  886 + "strip-json-comments": "^3.0.1",
  887 + "table": "^5.2.3",
  888 + "text-table": "^0.2.0",
  889 + "v8-compile-cache": "^2.0.3"
  890 + },
  891 + "dependencies": {
  892 + "ansi-regex": {
  893 + "version": "4.1.0",
  894 + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
  895 + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
  896 + "dev": true
  897 + },
  898 + "debug": {
  899 + "version": "4.1.1",
  900 + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
  901 + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
  902 + "dev": true,
  903 + "requires": {
  904 + "ms": "^2.1.1"
  905 + }
  906 + },
  907 + "glob-parent": {
  908 + "version": "5.0.0",
  909 + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.0.0.tgz",
  910 + "integrity": "sha512-Z2RwiujPRGluePM6j699ktJYxmPpJKCfpGA13jz2hmFZC7gKetzrWvg5KN3+OsIFmydGyZ1AVwERCq1w/ZZwRg==",
  911 + "dev": true,
  912 + "requires": {
  913 + "is-glob": "^4.0.1"
  914 + }
  915 + },
  916 + "ms": {
  917 + "version": "2.1.2",
  918 + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
  919 + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
  920 + "dev": true
  921 + },
  922 + "semver": {
  923 + "version": "6.3.0",
  924 + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
  925 + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
  926 + "dev": true
  927 + },
  928 + "strip-ansi": {
  929 + "version": "5.2.0",
  930 + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
  931 + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
  932 + "dev": true,
  933 + "requires": {
  934 + "ansi-regex": "^4.1.0"
  935 + }
  936 + },
  937 + "strip-json-comments": {
  938 + "version": "3.0.1",
  939 + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.0.1.tgz",
  940 + "integrity": "sha512-VTyMAUfdm047mwKl+u79WIdrZxtFtn+nBxHeb844XBQ9uMNTuTHdx2hc5RiAJYqwTj3wc/xe5HLSdJSkJ+WfZw==",
  941 + "dev": true
  942 + }
  943 + }
  944 + },
  945 + "eslint-scope": {
  946 + "version": "5.0.0",
  947 + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.0.0.tgz",
  948 + "integrity": "sha512-oYrhJW7S0bxAFDvWqzvMPRm6pcgcnWc4QnofCAqRTRfQC0JcwenzGglTtsLyIuuWFfkqDG9vz67cnttSd53djw==",
  949 + "dev": true,
  950 + "requires": {
  951 + "esrecurse": "^4.1.0",
  952 + "estraverse": "^4.1.1"
  953 + }
  954 + },
  955 + "eslint-utils": {
  956 + "version": "1.4.0",
  957 + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.4.0.tgz",
  958 + "integrity": "sha512-7ehnzPaP5IIEh1r1tkjuIrxqhNkzUJa9z3R92tLJdZIVdWaczEhr3EbhGtsMrVxi1KeR8qA7Off6SWc5WNQqyQ==",
  959 + "dev": true,
  960 + "requires": {
  961 + "eslint-visitor-keys": "^1.0.0"
  962 + }
  963 + },
  964 + "eslint-visitor-keys": {
  965 + "version": "1.0.0",
  966 + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz",
  967 + "integrity": "sha512-qzm/XxIbxm/FHyH341ZrbnMUpe+5Bocte9xkmFMzPMjRaZMcXww+MpBptFvtU+79L362nqiLhekCxCxDPaUMBQ==",
  968 + "dev": true
  969 + },
  970 + "espree": {
  971 + "version": "6.0.0",
  972 + "resolved": "https://registry.npmjs.org/espree/-/espree-6.0.0.tgz",
  973 + "integrity": "sha512-lJvCS6YbCn3ImT3yKkPe0+tJ+mH6ljhGNjHQH9mRtiO6gjhVAOhVXW1yjnwqGwTkK3bGbye+hb00nFNmu0l/1Q==",
  974 + "dev": true,
  975 + "requires": {
  976 + "acorn": "^6.0.7",
  977 + "acorn-jsx": "^5.0.0",
  978 + "eslint-visitor-keys": "^1.0.0"
  979 + }
  980 + },
  981 + "esprima": {
  982 + "version": "4.0.1",
  983 + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
  984 + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
  985 + "dev": true
  986 + },
  987 + "esquery": {
  988 + "version": "1.0.1",
  989 + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.0.1.tgz",
  990 + "integrity": "sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA==",
  991 + "dev": true,
  992 + "requires": {
  993 + "estraverse": "^4.0.0"
  994 + }
  995 + },
  996 + "esrecurse": {
  997 + "version": "4.2.1",
  998 + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz",
  999 + "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==",
  1000 + "dev": true,
  1001 + "requires": {
  1002 + "estraverse": "^4.1.0"
  1003 + }
  1004 + },
  1005 + "estraverse": {
  1006 + "version": "4.2.0",
  1007 + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz",
  1008 + "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=",
  1009 + "dev": true
  1010 + },
  1011 + "esutils": {
  1012 + "version": "2.0.2",
  1013 + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz",
  1014 + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=",
  1015 + "dev": true
  1016 + },
  1017 + "etag": {
  1018 + "version": "1.8.1",
  1019 + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
  1020 + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc="
  1021 + },
  1022 + "execa": {
  1023 + "version": "1.0.0",
  1024 + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz",
  1025 + "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==",
  1026 + "dev": true,
  1027 + "requires": {
  1028 + "cross-spawn": "^6.0.0",
  1029 + "get-stream": "^4.0.0",
  1030 + "is-stream": "^1.1.0",
  1031 + "npm-run-path": "^2.0.0",
  1032 + "p-finally": "^1.0.0",
  1033 + "signal-exit": "^3.0.0",
  1034 + "strip-eof": "^1.0.0"
  1035 + }
  1036 + },
  1037 + "expand-brackets": {
  1038 + "version": "2.1.4",
  1039 + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz",
  1040 + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=",
  1041 + "optional": true,
  1042 + "requires": {
  1043 + "debug": "^2.3.3",
  1044 + "define-property": "^0.2.5",
  1045 + "extend-shallow": "^2.0.1",
  1046 + "posix-character-classes": "^0.1.0",
  1047 + "regex-not": "^1.0.0",
  1048 + "snapdragon": "^0.8.1",
  1049 + "to-regex": "^3.0.1"
  1050 + },
  1051 + "dependencies": {
  1052 + "define-property": {
  1053 + "version": "0.2.5",
  1054 + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
  1055 + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
  1056 + "optional": true,
  1057 + "requires": {
  1058 + "is-descriptor": "^0.1.0"
  1059 + }
  1060 + },
  1061 + "extend-shallow": {
  1062 + "version": "2.0.1",
  1063 + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
  1064 + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
  1065 + "optional": true,
  1066 + "requires": {
  1067 + "is-extendable": "^0.1.0"
  1068 + }
  1069 + }
  1070 + }
  1071 + },
  1072 + "express": {
  1073 + "version": "4.17.1",
  1074 + "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz",
  1075 + "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==",
  1076 + "requires": {
  1077 + "accepts": "~1.3.7",
  1078 + "array-flatten": "1.1.1",
  1079 + "body-parser": "1.19.0",
  1080 + "content-disposition": "0.5.3",
  1081 + "content-type": "~1.0.4",
  1082 + "cookie": "0.4.0",
  1083 + "cookie-signature": "1.0.6",
  1084 + "debug": "2.6.9",
  1085 + "depd": "~1.1.2",
  1086 + "encodeurl": "~1.0.2",
  1087 + "escape-html": "~1.0.3",
  1088 + "etag": "~1.8.1",
  1089 + "finalhandler": "~1.1.2",
  1090 + "fresh": "0.5.2",
  1091 + "merge-descriptors": "1.0.1",
  1092 + "methods": "~1.1.2",
  1093 + "on-finished": "~2.3.0",
  1094 + "parseurl": "~1.3.3",
  1095 + "path-to-regexp": "0.1.7",
  1096 + "proxy-addr": "~2.0.5",
  1097 + "qs": "6.7.0",
  1098 + "range-parser": "~1.2.1",
  1099 + "safe-buffer": "5.1.2",
  1100 + "send": "0.17.1",
  1101 + "serve-static": "1.14.1",
  1102 + "setprototypeof": "1.1.1",
  1103 + "statuses": "~1.5.0",
  1104 + "type-is": "~1.6.18",
  1105 + "utils-merge": "1.0.1",
  1106 + "vary": "~1.1.2"
  1107 + }
  1108 + },
  1109 + "express-session": {
  1110 + "version": "1.16.2",
  1111 + "resolved": "https://registry.npmjs.org/express-session/-/express-session-1.16.2.tgz",
  1112 + "integrity": "sha512-oy0sRsdw6n93E9wpCNWKRnSsxYnSDX9Dnr9mhZgqUEEorzcq5nshGYSZ4ZReHFhKQ80WI5iVUUSPW7u3GaKauw==",
  1113 + "requires": {
  1114 + "cookie": "0.3.1",
  1115 + "cookie-signature": "1.0.6",
  1116 + "debug": "2.6.9",
  1117 + "depd": "~2.0.0",
  1118 + "on-headers": "~1.0.2",
  1119 + "parseurl": "~1.3.3",
  1120 + "safe-buffer": "5.1.2",
  1121 + "uid-safe": "~2.1.5"
  1122 + },
  1123 + "dependencies": {
  1124 + "cookie": {
  1125 + "version": "0.3.1",
  1126 + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz",
  1127 + "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s="
  1128 + },
  1129 + "depd": {
  1130 + "version": "2.0.0",
  1131 + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz",
  1132 + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw=="
  1133 + }
  1134 + }
  1135 + },
  1136 + "extend": {
  1137 + "version": "3.0.2",
  1138 + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
  1139 + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g=="
  1140 + },
  1141 + "extend-shallow": {
  1142 + "version": "3.0.2",
  1143 + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz",
  1144 + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=",
  1145 + "optional": true,
  1146 + "requires": {
  1147 + "assign-symbols": "^1.0.0",
  1148 + "is-extendable": "^1.0.1"
  1149 + },
  1150 + "dependencies": {
  1151 + "is-extendable": {
  1152 + "version": "1.0.1",
  1153 + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
  1154 + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
  1155 + "optional": true,
  1156 + "requires": {
  1157 + "is-plain-object": "^2.0.4"
  1158 + }
  1159 + }
  1160 + }
  1161 + },
  1162 + "external-editor": {
  1163 + "version": "3.1.0",
  1164 + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz",
  1165 + "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==",
  1166 + "dev": true,
  1167 + "requires": {
  1168 + "chardet": "^0.7.0",
  1169 + "iconv-lite": "^0.4.24",
  1170 + "tmp": "^0.0.33"
  1171 + }
  1172 + },
  1173 + "extglob": {
  1174 + "version": "2.0.4",
  1175 + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz",
  1176 + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==",
  1177 + "optional": true,
  1178 + "requires": {
  1179 + "array-unique": "^0.3.2",
  1180 + "define-property": "^1.0.0",
  1181 + "expand-brackets": "^2.1.4",
  1182 + "extend-shallow": "^2.0.1",
  1183 + "fragment-cache": "^0.2.1",
  1184 + "regex-not": "^1.0.0",
  1185 + "snapdragon": "^0.8.1",
  1186 + "to-regex": "^3.0.1"
  1187 + },
  1188 + "dependencies": {
  1189 + "define-property": {
  1190 + "version": "1.0.0",
  1191 + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
  1192 + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
  1193 + "optional": true,
  1194 + "requires": {
  1195 + "is-descriptor": "^1.0.0"
  1196 + }
  1197 + },
  1198 + "extend-shallow": {
  1199 + "version": "2.0.1",
  1200 + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
  1201 + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
  1202 + "optional": true,
  1203 + "requires": {
  1204 + "is-extendable": "^0.1.0"
  1205 + }
  1206 + },
  1207 + "is-accessor-descriptor": {
  1208 + "version": "1.0.0",
  1209 + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
  1210 + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
  1211 + "optional": true,
  1212 + "requires": {
  1213 + "kind-of": "^6.0.0"
  1214 + }
  1215 + },
  1216 + "is-data-descriptor": {
  1217 + "version": "1.0.0",
  1218 + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
  1219 + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
  1220 + "optional": true,
  1221 + "requires": {
  1222 + "kind-of": "^6.0.0"
  1223 + }
  1224 + },
  1225 + "is-descriptor": {
  1226 + "version": "1.0.2",
  1227 + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
  1228 + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
  1229 + "optional": true,
  1230 + "requires": {
  1231 + "is-accessor-descriptor": "^1.0.0",
  1232 + "is-data-descriptor": "^1.0.0",
  1233 + "kind-of": "^6.0.2"
  1234 + }
  1235 + }
  1236 + }
  1237 + },
  1238 + "extsprintf": {
  1239 + "version": "1.3.0",
  1240 + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz",
  1241 + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU="
  1242 + },
  1243 + "eyes": {
  1244 + "version": "0.1.8",
  1245 + "resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz",
  1246 + "integrity": "sha1-Ys8SAjTGg3hdkCNIqADvPgzCC8A="
  1247 + },
  1248 + "fast-deep-equal": {
  1249 + "version": "2.0.1",
  1250 + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz",
  1251 + "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk="
  1252 + },
  1253 + "fast-json-stable-stringify": {
  1254 + "version": "2.0.0",
  1255 + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz",
  1256 + "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I="
  1257 + },
  1258 + "fast-levenshtein": {
  1259 + "version": "2.0.6",
  1260 + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
  1261 + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=",
  1262 + "dev": true
  1263 + },
  1264 + "figures": {
  1265 + "version": "2.0.0",
  1266 + "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz",
  1267 + "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=",
  1268 + "dev": true,
  1269 + "requires": {
  1270 + "escape-string-regexp": "^1.0.5"
  1271 + }
  1272 + },
  1273 + "file-entry-cache": {
  1274 + "version": "5.0.1",
  1275 + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz",
  1276 + "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==",
  1277 + "dev": true,
  1278 + "requires": {
  1279 + "flat-cache": "^2.0.1"
  1280 + }
  1281 + },
  1282 + "fill-range": {
  1283 + "version": "4.0.0",
  1284 + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz",
  1285 + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=",
  1286 + "optional": true,
  1287 + "requires": {
  1288 + "extend-shallow": "^2.0.1",
  1289 + "is-number": "^3.0.0",
  1290 + "repeat-string": "^1.6.1",
  1291 + "to-regex-range": "^2.1.0"
  1292 + },
  1293 + "dependencies": {
  1294 + "extend-shallow": {
  1295 + "version": "2.0.1",
  1296 + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
  1297 + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
  1298 + "optional": true,
  1299 + "requires": {
  1300 + "is-extendable": "^0.1.0"
  1301 + }
  1302 + }
  1303 + }
  1304 + },
  1305 + "finalhandler": {
  1306 + "version": "1.1.2",
  1307 + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz",
  1308 + "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==",
  1309 + "requires": {
  1310 + "debug": "2.6.9",
  1311 + "encodeurl": "~1.0.2",
  1312 + "escape-html": "~1.0.3",
  1313 + "on-finished": "~2.3.0",
  1314 + "parseurl": "~1.3.3",
  1315 + "statuses": "~1.5.0",
  1316 + "unpipe": "~1.0.0"
  1317 + }
  1318 + },
  1319 + "find-up": {
  1320 + "version": "3.0.0",
  1321 + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
  1322 + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
  1323 + "dev": true,
  1324 + "requires": {
  1325 + "locate-path": "^3.0.0"
  1326 + }
  1327 + },
  1328 + "flat": {
  1329 + "version": "4.1.0",
  1330 + "resolved": "https://registry.npmjs.org/flat/-/flat-4.1.0.tgz",
  1331 + "integrity": "sha512-Px/TiLIznH7gEDlPXcUD4KnBusa6kR6ayRUVcnEAbreRIuhkqow/mun59BuRXwoYk7ZQOLW1ZM05ilIvK38hFw==",
  1332 + "dev": true,
  1333 + "requires": {
  1334 + "is-buffer": "~2.0.3"
  1335 + },
  1336 + "dependencies": {
  1337 + "is-buffer": {
  1338 + "version": "2.0.3",
  1339 + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.3.tgz",
  1340 + "integrity": "sha512-U15Q7MXTuZlrbymiz95PJpZxu8IlipAp4dtS3wOdgPXx3mqBnslrWU14kxfHB+Py/+2PVKSr37dMAgM2A4uArw==",
  1341 + "dev": true
  1342 + }
  1343 + }
  1344 + },
  1345 + "flat-cache": {
  1346 + "version": "2.0.1",
  1347 + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz",
  1348 + "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==",
  1349 + "dev": true,
  1350 + "requires": {
  1351 + "flatted": "^2.0.0",
  1352 + "rimraf": "2.6.3",
  1353 + "write": "1.0.3"
  1354 + }
  1355 + },
  1356 + "flatted": {
  1357 + "version": "2.0.1",
  1358 + "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.1.tgz",
  1359 + "integrity": "sha512-a1hQMktqW9Nmqr5aktAux3JMNqaucxGcjtjWnZLHX7yyPCmlSV3M54nGYbqT8K+0GhF3NBgmJCc3ma+WOgX8Jg==",
  1360 + "dev": true
  1361 + },
  1362 + "for-in": {
  1363 + "version": "1.0.2",
  1364 + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz",
  1365 + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=",
  1366 + "optional": true
  1367 + },
  1368 + "forever-agent": {
  1369 + "version": "0.6.1",
  1370 + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
  1371 + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE="
  1372 + },
  1373 + "form-data": {
  1374 + "version": "2.3.3",
  1375 + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz",
  1376 + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==",
  1377 + "requires": {
  1378 + "asynckit": "^0.4.0",
  1379 + "combined-stream": "^1.0.6",
  1380 + "mime-types": "^2.1.12"
  1381 + }
  1382 + },
  1383 + "forwarded": {
  1384 + "version": "0.1.2",
  1385 + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz",
  1386 + "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ="
  1387 + },
  1388 + "fragment-cache": {
  1389 + "version": "0.2.1",
  1390 + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz",
  1391 + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=",
  1392 + "optional": true,
  1393 + "requires": {
  1394 + "map-cache": "^0.2.2"
  1395 + }
  1396 + },
  1397 + "fresh": {
  1398 + "version": "0.5.2",
  1399 + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
  1400 + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac="
  1401 + },
  1402 + "fs-copy-file": {
  1403 + "version": "2.1.2",
  1404 + "resolved": "https://registry.npmjs.org/fs-copy-file/-/fs-copy-file-2.1.2.tgz",
  1405 + "integrity": "sha512-h5h3i58/mr86CSJvDLGV0ZEIUj4QfdfKt0NFX6AH4sRTRjs2/d5U1EQt5C9fUV6ZSi7MeSfZRW3LX9HttLXHeg==",
  1406 + "requires": {
  1407 + "@cloudcmd/copy-file": "^1.1.0"
  1408 + }
  1409 + },
  1410 + "fs.realpath": {
  1411 + "version": "1.0.0",
  1412 + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
  1413 + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8="
  1414 + },
  1415 + "fsevents": {
  1416 + "version": "1.2.9",
  1417 + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.9.tgz",
  1418 + "integrity": "sha512-oeyj2H3EjjonWcFjD5NvZNE9Rqe4UW+nQBU2HNeKw0koVLEFIhtyETyAakeAM3de7Z/SW5kcA+fZUait9EApnw==",
  1419 + "optional": true,
  1420 + "requires": {
  1421 + "nan": "^2.12.1",
  1422 + "node-pre-gyp": "^0.12.0"
  1423 + },
  1424 + "dependencies": {
  1425 + "abbrev": {
  1426 + "version": "1.1.1",
  1427 + "bundled": true,
  1428 + "optional": true
  1429 + },
  1430 + "ansi-regex": {
  1431 + "version": "2.1.1",
  1432 + "bundled": true,
  1433 + "optional": true
  1434 + },
  1435 + "aproba": {
  1436 + "version": "1.2.0",
  1437 + "bundled": true,
  1438 + "optional": true
  1439 + },
  1440 + "are-we-there-yet": {
  1441 + "version": "1.1.5",
  1442 + "bundled": true,
  1443 + "optional": true,
  1444 + "requires": {
  1445 + "delegates": "^1.0.0",
  1446 + "readable-stream": "^2.0.6"
  1447 + }
  1448 + },
  1449 + "balanced-match": {
  1450 + "version": "1.0.0",
  1451 + "bundled": true,
  1452 + "optional": true
  1453 + },
  1454 + "brace-expansion": {
  1455 + "version": "1.1.11",
  1456 + "bundled": true,
  1457 + "optional": true,
  1458 + "requires": {
  1459 + "balanced-match": "^1.0.0",
  1460 + "concat-map": "0.0.1"
  1461 + }
  1462 + },
  1463 + "chownr": {
  1464 + "version": "1.1.1",
  1465 + "bundled": true,
  1466 + "optional": true
  1467 + },
  1468 + "code-point-at": {
  1469 + "version": "1.1.0",
  1470 + "bundled": true,
  1471 + "optional": true
  1472 + },
  1473 + "concat-map": {
  1474 + "version": "0.0.1",
  1475 + "bundled": true,
  1476 + "optional": true
  1477 + },
  1478 + "console-control-strings": {
  1479 + "version": "1.1.0",
  1480 + "bundled": true,
  1481 + "optional": true
  1482 + },
  1483 + "core-util-is": {
  1484 + "version": "1.0.2",
  1485 + "bundled": true,
  1486 + "optional": true
  1487 + },
  1488 + "debug": {
  1489 + "version": "4.1.1",
  1490 + "bundled": true,
  1491 + "optional": true,
  1492 + "requires": {
  1493 + "ms": "^2.1.1"
  1494 + }
  1495 + },
  1496 + "deep-extend": {
  1497 + "version": "0.6.0",
  1498 + "bundled": true,
  1499 + "optional": true
  1500 + },
  1501 + "delegates": {
  1502 + "version": "1.0.0",
  1503 + "bundled": true,
  1504 + "optional": true
  1505 + },
  1506 + "detect-libc": {
  1507 + "version": "1.0.3",
  1508 + "bundled": true,
  1509 + "optional": true
  1510 + },
  1511 + "fs-minipass": {
  1512 + "version": "1.2.5",
  1513 + "bundled": true,
  1514 + "optional": true,
  1515 + "requires": {
  1516 + "minipass": "^2.2.1"
  1517 + }
  1518 + },
  1519 + "fs.realpath": {
  1520 + "version": "1.0.0",
  1521 + "bundled": true,
  1522 + "optional": true
  1523 + },
  1524 + "gauge": {
  1525 + "version": "2.7.4",
  1526 + "bundled": true,
  1527 + "optional": true,
  1528 + "requires": {
  1529 + "aproba": "^1.0.3",
  1530 + "console-control-strings": "^1.0.0",
  1531 + "has-unicode": "^2.0.0",
  1532 + "object-assign": "^4.1.0",
  1533 + "signal-exit": "^3.0.0",
  1534 + "string-width": "^1.0.1",
  1535 + "strip-ansi": "^3.0.1",
  1536 + "wide-align": "^1.1.0"
  1537 + }
  1538 + },
  1539 + "glob": {
  1540 + "version": "7.1.3",
  1541 + "bundled": true,
  1542 + "optional": true,
  1543 + "requires": {
  1544 + "fs.realpath": "^1.0.0",
  1545 + "inflight": "^1.0.4",
  1546 + "inherits": "2",
  1547 + "minimatch": "^3.0.4",
  1548 + "once": "^1.3.0",
  1549 + "path-is-absolute": "^1.0.0"
  1550 + }
  1551 + },
  1552 + "has-unicode": {
  1553 + "version": "2.0.1",
  1554 + "bundled": true,
  1555 + "optional": true
  1556 + },
  1557 + "iconv-lite": {
  1558 + "version": "0.4.24",
  1559 + "bundled": true,
  1560 + "optional": true,
  1561 + "requires": {
  1562 + "safer-buffer": ">= 2.1.2 < 3"
  1563 + }
  1564 + },
  1565 + "ignore-walk": {
  1566 + "version": "3.0.1",
  1567 + "bundled": true,
  1568 + "optional": true,
  1569 + "requires": {
  1570 + "minimatch": "^3.0.4"
  1571 + }
  1572 + },
  1573 + "inflight": {
  1574 + "version": "1.0.6",
  1575 + "bundled": true,
  1576 + "optional": true,
  1577 + "requires": {
  1578 + "once": "^1.3.0",
  1579 + "wrappy": "1"
  1580 + }
  1581 + },
  1582 + "inherits": {
  1583 + "version": "2.0.3",
  1584 + "bundled": true,
  1585 + "optional": true
  1586 + },
  1587 + "ini": {
  1588 + "version": "1.3.5",
  1589 + "bundled": true,
  1590 + "optional": true
  1591 + },
  1592 + "is-fullwidth-code-point": {
  1593 + "version": "1.0.0",
  1594 + "bundled": true,
  1595 + "optional": true,
  1596 + "requires": {
  1597 + "number-is-nan": "^1.0.0"
  1598 + }
  1599 + },
  1600 + "isarray": {
  1601 + "version": "1.0.0",
  1602 + "bundled": true,
  1603 + "optional": true
  1604 + },
  1605 + "minimatch": {
  1606 + "version": "3.0.4",
  1607 + "bundled": true,
  1608 + "optional": true,
  1609 + "requires": {
  1610 + "brace-expansion": "^1.1.7"
  1611 + }
  1612 + },
  1613 + "minimist": {
  1614 + "version": "0.0.8",
  1615 + "bundled": true,
  1616 + "optional": true
  1617 + },
  1618 + "minipass": {
  1619 + "version": "2.3.5",
  1620 + "bundled": true,
  1621 + "optional": true,
  1622 + "requires": {
  1623 + "safe-buffer": "^5.1.2",
  1624 + "yallist": "^3.0.0"
  1625 + }
  1626 + },
  1627 + "minizlib": {
  1628 + "version": "1.2.1",
  1629 + "bundled": true,
  1630 + "optional": true,
  1631 + "requires": {
  1632 + "minipass": "^2.2.1"
  1633 + }
  1634 + },
  1635 + "mkdirp": {
  1636 + "version": "0.5.1",
  1637 + "bundled": true,
  1638 + "optional": true,
  1639 + "requires": {
  1640 + "minimist": "0.0.8"
  1641 + }
  1642 + },
  1643 + "ms": {
  1644 + "version": "2.1.1",
  1645 + "bundled": true,
  1646 + "optional": true
  1647 + },
  1648 + "needle": {
  1649 + "version": "2.3.0",
  1650 + "bundled": true,
  1651 + "optional": true,
  1652 + "requires": {
  1653 + "debug": "^4.1.0",
  1654 + "iconv-lite": "^0.4.4",
  1655 + "sax": "^1.2.4"
  1656 + }
  1657 + },
  1658 + "node-pre-gyp": {
  1659 + "version": "0.12.0",
  1660 + "bundled": true,
  1661 + "optional": true,
  1662 + "requires": {
  1663 + "detect-libc": "^1.0.2",
  1664 + "mkdirp": "^0.5.1",
  1665 + "needle": "^2.2.1",
  1666 + "nopt": "^4.0.1",
  1667 + "npm-packlist": "^1.1.6",
  1668 + "npmlog": "^4.0.2",
  1669 + "rc": "^1.2.7",
  1670 + "rimraf": "^2.6.1",
  1671 + "semver": "^5.3.0",
  1672 + "tar": "^4"
  1673 + }
  1674 + },
  1675 + "nopt": {
  1676 + "version": "4.0.1",
  1677 + "bundled": true,
  1678 + "optional": true,
  1679 + "requires": {
  1680 + "abbrev": "1",
  1681 + "osenv": "^0.1.4"
  1682 + }
  1683 + },
  1684 + "npm-bundled": {
  1685 + "version": "1.0.6",
  1686 + "bundled": true,
  1687 + "optional": true
  1688 + },
  1689 + "npm-packlist": {
  1690 + "version": "1.4.1",
  1691 + "bundled": true,
  1692 + "optional": true,
  1693 + "requires": {
  1694 + "ignore-walk": "^3.0.1",
  1695 + "npm-bundled": "^1.0.1"
  1696 + }
  1697 + },
  1698 + "npmlog": {
  1699 + "version": "4.1.2",
  1700 + "bundled": true,
  1701 + "optional": true,
  1702 + "requires": {
  1703 + "are-we-there-yet": "~1.1.2",
  1704 + "console-control-strings": "~1.1.0",
  1705 + "gauge": "~2.7.3",
  1706 + "set-blocking": "~2.0.0"
  1707 + }
  1708 + },
  1709 + "number-is-nan": {
  1710 + "version": "1.0.1",
  1711 + "bundled": true,
  1712 + "optional": true
  1713 + },
  1714 + "object-assign": {
  1715 + "version": "4.1.1",
  1716 + "bundled": true,
  1717 + "optional": true
  1718 + },
  1719 + "once": {
  1720 + "version": "1.4.0",
  1721 + "bundled": true,
  1722 + "optional": true,
  1723 + "requires": {
  1724 + "wrappy": "1"
  1725 + }
  1726 + },
  1727 + "os-homedir": {
  1728 + "version": "1.0.2",
  1729 + "bundled": true,
  1730 + "optional": true
  1731 + },
  1732 + "os-tmpdir": {
  1733 + "version": "1.0.2",
  1734 + "bundled": true,
  1735 + "optional": true
  1736 + },
  1737 + "osenv": {
  1738 + "version": "0.1.5",
  1739 + "bundled": true,
  1740 + "optional": true,
  1741 + "requires": {
  1742 + "os-homedir": "^1.0.0",
  1743 + "os-tmpdir": "^1.0.0"
  1744 + }
  1745 + },
  1746 + "path-is-absolute": {
  1747 + "version": "1.0.1",
  1748 + "bundled": true,
  1749 + "optional": true
  1750 + },
  1751 + "process-nextick-args": {
  1752 + "version": "2.0.0",
  1753 + "bundled": true,
  1754 + "optional": true
  1755 + },
  1756 + "rc": {
  1757 + "version": "1.2.8",
  1758 + "bundled": true,
  1759 + "optional": true,
  1760 + "requires": {
  1761 + "deep-extend": "^0.6.0",
  1762 + "ini": "~1.3.0",
  1763 + "minimist": "^1.2.0",
  1764 + "strip-json-comments": "~2.0.1"
  1765 + },
  1766 + "dependencies": {
  1767 + "minimist": {
  1768 + "version": "1.2.0",
  1769 + "bundled": true,
  1770 + "optional": true
  1771 + }
  1772 + }
  1773 + },
  1774 + "readable-stream": {
  1775 + "version": "2.3.6",
  1776 + "bundled": true,
  1777 + "optional": true,
  1778 + "requires": {
  1779 + "core-util-is": "~1.0.0",
  1780 + "inherits": "~2.0.3",
  1781 + "isarray": "~1.0.0",
  1782 + "process-nextick-args": "~2.0.0",
  1783 + "safe-buffer": "~5.1.1",
  1784 + "string_decoder": "~1.1.1",
  1785 + "util-deprecate": "~1.0.1"
  1786 + }
  1787 + },
  1788 + "rimraf": {
  1789 + "version": "2.6.3",
  1790 + "bundled": true,
  1791 + "optional": true,
  1792 + "requires": {
  1793 + "glob": "^7.1.3"
  1794 + }
  1795 + },
  1796 + "safe-buffer": {
  1797 + "version": "5.1.2",
  1798 + "bundled": true,
  1799 + "optional": true
  1800 + },
  1801 + "safer-buffer": {
  1802 + "version": "2.1.2",
  1803 + "bundled": true,
  1804 + "optional": true
  1805 + },
  1806 + "sax": {
  1807 + "version": "1.2.4",
  1808 + "bundled": true,
  1809 + "optional": true
  1810 + },
  1811 + "semver": {
  1812 + "version": "5.7.0",
  1813 + "bundled": true,
  1814 + "optional": true
  1815 + },
  1816 + "set-blocking": {
  1817 + "version": "2.0.0",
  1818 + "bundled": true,
  1819 + "optional": true
  1820 + },
  1821 + "signal-exit": {
  1822 + "version": "3.0.2",
  1823 + "bundled": true,
  1824 + "optional": true
  1825 + },
  1826 + "string-width": {
  1827 + "version": "1.0.2",
  1828 + "bundled": true,
  1829 + "optional": true,
  1830 + "requires": {
  1831 + "code-point-at": "^1.0.0",
  1832 + "is-fullwidth-code-point": "^1.0.0",
  1833 + "strip-ansi": "^3.0.0"
  1834 + }
  1835 + },
  1836 + "string_decoder": {
  1837 + "version": "1.1.1",
  1838 + "bundled": true,
  1839 + "optional": true,
  1840 + "requires": {
  1841 + "safe-buffer": "~5.1.0"
  1842 + }
  1843 + },
  1844 + "strip-ansi": {
  1845 + "version": "3.0.1",
  1846 + "bundled": true,
  1847 + "optional": true,
  1848 + "requires": {
  1849 + "ansi-regex": "^2.0.0"
  1850 + }
  1851 + },
  1852 + "strip-json-comments": {
  1853 + "version": "2.0.1",
  1854 + "bundled": true,
  1855 + "optional": true
  1856 + },
  1857 + "tar": {
  1858 + "version": "4.4.8",
  1859 + "bundled": true,
  1860 + "optional": true,
  1861 + "requires": {
  1862 + "chownr": "^1.1.1",
  1863 + "fs-minipass": "^1.2.5",
  1864 + "minipass": "^2.3.4",
  1865 + "minizlib": "^1.1.1",
  1866 + "mkdirp": "^0.5.0",
  1867 + "safe-buffer": "^5.1.2",
  1868 + "yallist": "^3.0.2"
  1869 + }
  1870 + },
  1871 + "util-deprecate": {
  1872 + "version": "1.0.2",
  1873 + "bundled": true,
  1874 + "optional": true
  1875 + },
  1876 + "wide-align": {
  1877 + "version": "1.1.3",
  1878 + "bundled": true,
  1879 + "optional": true,
  1880 + "requires": {
  1881 + "string-width": "^1.0.2 || 2"
  1882 + }
  1883 + },
  1884 + "wrappy": {
  1885 + "version": "1.0.2",
  1886 + "bundled": true,
  1887 + "optional": true
  1888 + },
  1889 + "yallist": {
  1890 + "version": "3.0.3",
  1891 + "bundled": true,
  1892 + "optional": true
  1893 + }
  1894 + }
  1895 + },
  1896 + "function-bind": {
  1897 + "version": "1.1.1",
  1898 + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
  1899 + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
  1900 + "dev": true
  1901 + },
  1902 + "functional-red-black-tree": {
  1903 + "version": "1.0.1",
  1904 + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz",
  1905 + "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=",
  1906 + "dev": true
  1907 + },
  1908 + "get-caller-file": {
  1909 + "version": "2.0.5",
  1910 + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
  1911 + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
  1912 + "dev": true
  1913 + },
  1914 + "get-stream": {
  1915 + "version": "4.1.0",
  1916 + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz",
  1917 + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==",
  1918 + "dev": true,
  1919 + "requires": {
  1920 + "pump": "^3.0.0"
  1921 + }
  1922 + },
  1923 + "get-value": {
  1924 + "version": "2.0.6",
  1925 + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz",
  1926 + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg="
  1927 + },
  1928 + "getpass": {
  1929 + "version": "0.1.7",
  1930 + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
  1931 + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=",
  1932 + "requires": {
  1933 + "assert-plus": "^1.0.0"
  1934 + }
  1935 + },
  1936 + "glob": {
  1937 + "version": "7.1.4",
  1938 + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz",
  1939 + "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==",
  1940 + "requires": {
  1941 + "fs.realpath": "^1.0.0",
  1942 + "inflight": "^1.0.4",
  1943 + "inherits": "2",
  1944 + "minimatch": "^3.0.4",
  1945 + "once": "^1.3.0",
  1946 + "path-is-absolute": "^1.0.0"
  1947 + }
  1948 + },
  1949 + "glob-parent": {
  1950 + "version": "3.1.0",
  1951 + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz",
  1952 + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=",
  1953 + "optional": true,
  1954 + "requires": {
  1955 + "is-glob": "^3.1.0",
  1956 + "path-dirname": "^1.0.0"
  1957 + },
  1958 + "dependencies": {
  1959 + "is-glob": {
  1960 + "version": "3.1.0",
  1961 + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz",
  1962 + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=",
  1963 + "optional": true,
  1964 + "requires": {
  1965 + "is-extglob": "^2.1.0"
  1966 + }
  1967 + }
  1968 + }
  1969 + },
  1970 + "globals": {
  1971 + "version": "11.12.0",
  1972 + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz",
  1973 + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==",
  1974 + "dev": true
  1975 + },
  1976 + "graceful-fs": {
  1977 + "version": "4.2.0",
  1978 + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.0.tgz",
  1979 + "integrity": "sha512-jpSvDPV4Cq/bgtpndIWbI5hmYxhQGHPC4d4cqBPb4DLniCfhJokdXhwhaDuLBGLQdvvRum/UiX6ECVIPvDXqdg==",
  1980 + "optional": true
  1981 + },
  1982 + "growl": {
  1983 + "version": "1.10.5",
  1984 + "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz",
  1985 + "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==",
  1986 + "dev": true
  1987 + },
  1988 + "har-schema": {
  1989 + "version": "2.0.0",
  1990 + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz",
  1991 + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI="
  1992 + },
  1993 + "har-validator": {
  1994 + "version": "5.1.3",
  1995 + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz",
  1996 + "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==",
  1997 + "requires": {
  1998 + "ajv": "^6.5.5",
  1999 + "har-schema": "^2.0.0"
  2000 + }
  2001 + },
  2002 + "has": {
  2003 + "version": "1.0.3",
  2004 + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
  2005 + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
  2006 + "dev": true,
  2007 + "requires": {
  2008 + "function-bind": "^1.1.1"
  2009 + }
  2010 + },
  2011 + "has-flag": {
  2012 + "version": "3.0.0",
  2013 + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
  2014 + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
  2015 + "dev": true
  2016 + },
  2017 + "has-symbols": {
  2018 + "version": "1.0.0",
  2019 + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz",
  2020 + "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=",
  2021 + "dev": true
  2022 + },
  2023 + "has-value": {
  2024 + "version": "1.0.0",
  2025 + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz",
  2026 + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=",
  2027 + "optional": true,
  2028 + "requires": {
  2029 + "get-value": "^2.0.6",
  2030 + "has-values": "^1.0.0",
  2031 + "isobject": "^3.0.0"
  2032 + }
  2033 + },
  2034 + "has-values": {
  2035 + "version": "1.0.0",
  2036 + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz",
  2037 + "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=",
  2038 + "optional": true,
  2039 + "requires": {
  2040 + "is-number": "^3.0.0",
  2041 + "kind-of": "^4.0.0"
  2042 + },
  2043 + "dependencies": {
  2044 + "kind-of": {
  2045 + "version": "4.0.0",
  2046 + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz",
  2047 + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=",
  2048 + "optional": true,
  2049 + "requires": {
  2050 + "is-buffer": "^1.1.5"
  2051 + }
  2052 + }
  2053 + }
  2054 + },
  2055 + "he": {
  2056 + "version": "1.2.0",
  2057 + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz",
  2058 + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==",
  2059 + "dev": true
  2060 + },
  2061 + "http-errors": {
  2062 + "version": "1.7.2",
  2063 + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz",
  2064 + "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==",
  2065 + "requires": {
  2066 + "depd": "~1.1.2",
  2067 + "inherits": "2.0.3",
  2068 + "setprototypeof": "1.1.1",
  2069 + "statuses": ">= 1.5.0 < 2",
  2070 + "toidentifier": "1.0.0"
  2071 + }
  2072 + },
  2073 + "http-signature": {
  2074 + "version": "1.2.0",
  2075 + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
  2076 + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=",
  2077 + "requires": {
  2078 + "assert-plus": "^1.0.0",
  2079 + "jsprim": "^1.2.2",
  2080 + "sshpk": "^1.7.0"
  2081 + }
  2082 + },
  2083 + "iconv-lite": {
  2084 + "version": "0.4.24",
  2085 + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
  2086 + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
  2087 + "requires": {
  2088 + "safer-buffer": ">= 2.1.2 < 3"
  2089 + }
  2090 + },
  2091 + "ignore": {
  2092 + "version": "4.0.6",
  2093 + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz",
  2094 + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==",
  2095 + "dev": true
  2096 + },
  2097 + "import-fresh": {
  2098 + "version": "3.1.0",
  2099 + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.1.0.tgz",
  2100 + "integrity": "sha512-PpuksHKGt8rXfWEr9m9EHIpgyyaltBy8+eF6GJM0QCAxMgxCfucMF3mjecK2QsJr0amJW7gTqh5/wht0z2UhEQ==",
  2101 + "dev": true,
  2102 + "requires": {
  2103 + "parent-module": "^1.0.0",
  2104 + "resolve-from": "^4.0.0"
  2105 + }
  2106 + },
  2107 + "imurmurhash": {
  2108 + "version": "0.1.4",
  2109 + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
  2110 + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=",
  2111 + "dev": true
  2112 + },
  2113 + "inflight": {
  2114 + "version": "1.0.6",
  2115 + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
  2116 + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
  2117 + "requires": {
  2118 + "once": "^1.3.0",
  2119 + "wrappy": "1"
  2120 + }
  2121 + },
  2122 + "inherits": {
  2123 + "version": "2.0.3",
  2124 + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
  2125 + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="
  2126 + },
  2127 + "inquirer": {
  2128 + "version": "6.5.0",
  2129 + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.5.0.tgz",
  2130 + "integrity": "sha512-scfHejeG/lVZSpvCXpsB4j/wQNPM5JC8kiElOI0OUTwmc1RTpXr4H32/HOlQHcZiYl2z2VElwuCVDRG8vFmbnA==",
  2131 + "dev": true,
  2132 + "requires": {
  2133 + "ansi-escapes": "^3.2.0",
  2134 + "chalk": "^2.4.2",
  2135 + "cli-cursor": "^2.1.0",
  2136 + "cli-width": "^2.0.0",
  2137 + "external-editor": "^3.0.3",
  2138 + "figures": "^2.0.0",
  2139 + "lodash": "^4.17.12",
  2140 + "mute-stream": "0.0.7",
  2141 + "run-async": "^2.2.0",
  2142 + "rxjs": "^6.4.0",
  2143 + "string-width": "^2.1.0",
  2144 + "strip-ansi": "^5.1.0",
  2145 + "through": "^2.3.6"
  2146 + },
  2147 + "dependencies": {
  2148 + "ansi-regex": {
  2149 + "version": "3.0.0",
  2150 + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
  2151 + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
  2152 + "dev": true
  2153 + },
  2154 + "is-fullwidth-code-point": {
  2155 + "version": "2.0.0",
  2156 + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
  2157 + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
  2158 + "dev": true
  2159 + },
  2160 + "string-width": {
  2161 + "version": "2.1.1",
  2162 + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
  2163 + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
  2164 + "dev": true,
  2165 + "requires": {
  2166 + "is-fullwidth-code-point": "^2.0.0",
  2167 + "strip-ansi": "^4.0.0"
  2168 + },
  2169 + "dependencies": {
  2170 + "strip-ansi": {
  2171 + "version": "4.0.0",
  2172 + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
  2173 + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
  2174 + "dev": true,
  2175 + "requires": {
  2176 + "ansi-regex": "^3.0.0"
  2177 + }
  2178 + }
  2179 + }
  2180 + },
  2181 + "strip-ansi": {
  2182 + "version": "5.2.0",
  2183 + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
  2184 + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
  2185 + "dev": true,
  2186 + "requires": {
  2187 + "ansi-regex": "^4.1.0"
  2188 + },
  2189 + "dependencies": {
  2190 + "ansi-regex": {
  2191 + "version": "4.1.0",
  2192 + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
  2193 + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
  2194 + "dev": true
  2195 + }
  2196 + }
  2197 + }
  2198 + }
  2199 + },
  2200 + "invert-kv": {
  2201 + "version": "1.0.0",
  2202 + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz",
  2203 + "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY="
  2204 + },
  2205 + "ipaddr.js": {
  2206 + "version": "1.9.0",
  2207 + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.0.tgz",
  2208 + "integrity": "sha512-M4Sjn6N/+O6/IXSJseKqHoFc+5FdGJ22sXqnjTpdZweHK64MzEPAyQZyEU3R/KRv2GLoa7nNtg/C2Ev6m7z+eA=="
  2209 + },
  2210 + "is-accessor-descriptor": {
  2211 + "version": "0.1.6",
  2212 + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz",
  2213 + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=",
  2214 + "optional": true,
  2215 + "requires": {
  2216 + "kind-of": "^3.0.2"
  2217 + },
  2218 + "dependencies": {
  2219 + "kind-of": {
  2220 + "version": "3.2.2",
  2221 + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
  2222 + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
  2223 + "optional": true,
  2224 + "requires": {
  2225 + "is-buffer": "^1.1.5"
  2226 + }
  2227 + }
  2228 + }
  2229 + },
  2230 + "is-binary-path": {
  2231 + "version": "1.0.1",
  2232 + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz",
  2233 + "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=",
  2234 + "optional": true,
  2235 + "requires": {
  2236 + "binary-extensions": "^1.0.0"
  2237 + }
  2238 + },
  2239 + "is-buffer": {
  2240 + "version": "1.1.6",
  2241 + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
  2242 + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w=="
  2243 + },
  2244 + "is-callable": {
  2245 + "version": "1.1.4",
  2246 + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz",
  2247 + "integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==",
  2248 + "dev": true
  2249 + },
  2250 + "is-data-descriptor": {
  2251 + "version": "0.1.4",
  2252 + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz",
  2253 + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=",
  2254 + "optional": true,
  2255 + "requires": {
  2256 + "kind-of": "^3.0.2"
  2257 + },
  2258 + "dependencies": {
  2259 + "kind-of": {
  2260 + "version": "3.2.2",
  2261 + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
  2262 + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
  2263 + "optional": true,
  2264 + "requires": {
  2265 + "is-buffer": "^1.1.5"
  2266 + }
  2267 + }
  2268 + }
  2269 + },
  2270 + "is-date-object": {
  2271 + "version": "1.0.1",
  2272 + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz",
  2273 + "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=",
  2274 + "dev": true
  2275 + },
  2276 + "is-descriptor": {
  2277 + "version": "0.1.6",
  2278 + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz",
  2279 + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==",
  2280 + "optional": true,
  2281 + "requires": {
  2282 + "is-accessor-descriptor": "^0.1.6",
  2283 + "is-data-descriptor": "^0.1.4",
  2284 + "kind-of": "^5.0.0"
  2285 + },
  2286 + "dependencies": {
  2287 + "kind-of": {
  2288 + "version": "5.1.0",
  2289 + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
  2290 + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==",
  2291 + "optional": true
  2292 + }
  2293 + }
  2294 + },
  2295 + "is-extendable": {
  2296 + "version": "0.1.1",
  2297 + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
  2298 + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik="
  2299 + },
  2300 + "is-extglob": {
  2301 + "version": "2.1.1",
  2302 + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
  2303 + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI="
  2304 + },
  2305 + "is-fullwidth-code-point": {
  2306 + "version": "1.0.0",
  2307 + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
  2308 + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
  2309 + "requires": {
  2310 + "number-is-nan": "^1.0.0"
  2311 + }
  2312 + },
  2313 + "is-glob": {
  2314 + "version": "4.0.1",
  2315 + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz",
  2316 + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==",
  2317 + "requires": {
  2318 + "is-extglob": "^2.1.1"
  2319 + }
  2320 + },
  2321 + "is-number": {
  2322 + "version": "3.0.0",
  2323 + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
  2324 + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
  2325 + "optional": true,
  2326 + "requires": {
  2327 + "kind-of": "^3.0.2"
  2328 + },
  2329 + "dependencies": {
  2330 + "kind-of": {
  2331 + "version": "3.2.2",
  2332 + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
  2333 + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
  2334 + "optional": true,
  2335 + "requires": {
  2336 + "is-buffer": "^1.1.5"
  2337 + }
  2338 + }
  2339 + }
  2340 + },
  2341 + "is-plain-object": {
  2342 + "version": "2.0.4",
  2343 + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz",
  2344 + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==",
  2345 + "requires": {
  2346 + "isobject": "^3.0.1"
  2347 + }
  2348 + },
  2349 + "is-promise": {
  2350 + "version": "2.1.0",
  2351 + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz",
  2352 + "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=",
  2353 + "dev": true
  2354 + },
  2355 + "is-regex": {
  2356 + "version": "1.0.4",
  2357 + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz",
  2358 + "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=",
  2359 + "dev": true,
  2360 + "requires": {
  2361 + "has": "^1.0.1"
  2362 + }
  2363 + },
  2364 + "is-stream": {
  2365 + "version": "1.1.0",
  2366 + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
  2367 + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=",
  2368 + "dev": true
  2369 + },
  2370 + "is-symbol": {
  2371 + "version": "1.0.2",
  2372 + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.2.tgz",
  2373 + "integrity": "sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw==",
  2374 + "dev": true,
  2375 + "requires": {
  2376 + "has-symbols": "^1.0.0"
  2377 + }
  2378 + },
  2379 + "is-typedarray": {
  2380 + "version": "1.0.0",
  2381 + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
  2382 + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo="
  2383 + },
  2384 + "is-windows": {
  2385 + "version": "1.0.2",
  2386 + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz",
  2387 + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==",
  2388 + "optional": true
  2389 + },
  2390 + "isarray": {
  2391 + "version": "1.0.0",
  2392 + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
  2393 + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
  2394 + "optional": true
  2395 + },
  2396 + "isexe": {
  2397 + "version": "2.0.0",
  2398 + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
  2399 + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=",
  2400 + "dev": true
  2401 + },
  2402 + "isobject": {
  2403 + "version": "3.0.1",
  2404 + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
  2405 + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8="
  2406 + },
  2407 + "isstream": {
  2408 + "version": "0.1.2",
  2409 + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
  2410 + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo="
  2411 + },
  2412 + "js-tokens": {
  2413 + "version": "4.0.0",
  2414 + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
  2415 + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
  2416 + "dev": true
  2417 + },
  2418 + "js-yaml": {
  2419 + "version": "3.13.1",
  2420 + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz",
  2421 + "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==",
  2422 + "dev": true,
  2423 + "requires": {
  2424 + "argparse": "^1.0.7",
  2425 + "esprima": "^4.0.0"
  2426 + }
  2427 + },
  2428 + "jsbn": {
  2429 + "version": "0.1.1",
  2430 + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
  2431 + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM="
  2432 + },
  2433 + "json-query": {
  2434 + "version": "2.2.2",
  2435 + "resolved": "https://registry.npmjs.org/json-query/-/json-query-2.2.2.tgz",
  2436 + "integrity": "sha1-tlWLijeUzNIXkmqjgCQyS3e0irE="
  2437 + },
  2438 + "json-schema": {
  2439 + "version": "0.2.3",
  2440 + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz",
  2441 + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM="
  2442 + },
  2443 + "json-schema-traverse": {
  2444 + "version": "0.4.1",
  2445 + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
  2446 + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="
  2447 + },
  2448 + "json-stable-stringify-without-jsonify": {
  2449 + "version": "1.0.1",
  2450 + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
  2451 + "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=",
  2452 + "dev": true
  2453 + },
  2454 + "json-stringify-safe": {
  2455 + "version": "5.0.1",
  2456 + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
  2457 + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus="
  2458 + },
  2459 + "jsprim": {
  2460 + "version": "1.4.1",
  2461 + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz",
  2462 + "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=",
  2463 + "requires": {
  2464 + "assert-plus": "1.0.0",
  2465 + "extsprintf": "1.3.0",
  2466 + "json-schema": "0.2.3",
  2467 + "verror": "1.10.0"
  2468 + }
  2469 + },
  2470 + "kind-of": {
  2471 + "version": "6.0.2",
  2472 + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
  2473 + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==",
  2474 + "optional": true
  2475 + },
  2476 + "komodo-center-messaging-client-lib": {
  2477 + "version": "git+http://gitlab.kodesumber.com/komodo/komodo-center-messaging-client-lib.git#c11faf37ef0e96efd83ec0e5137a6af0c957f5e1",
  2478 + "from": "git+http://gitlab.kodesumber.com/komodo/komodo-center-messaging-client-lib.git",
  2479 + "requires": {
  2480 + "body-parser": "^1.19.0",
  2481 + "express": "^4.17.1",
  2482 + "komodo-sdk": "git+http://gitlab.kodesumber.com/komodo/komodo-sdk.git",
  2483 + "moment": "^2.24.0",
  2484 + "request": "^2.88.0"
  2485 + }
  2486 + },
  2487 + "komodo-sdk": {
  2488 + "version": "git+http://gitlab.kodesumber.com/komodo/komodo-sdk.git#15ff223aa1ce8d5c460fcb283fe9ff98745e4134",
  2489 + "from": "git+http://gitlab.kodesumber.com/komodo/komodo-sdk.git",
  2490 + "requires": {
  2491 + "array-unique": "^0.3.2",
  2492 + "basic-auth": "^2.0.0",
  2493 + "body-parser": "^1.18.2",
  2494 + "dot-object": "^1.7.0",
  2495 + "express": "^4.16.3",
  2496 + "express-session": "^1.15.6",
  2497 + "fs-copy-file": "^2.1.2",
  2498 + "json-query": "^2.2.2",
  2499 + "lru-cache": "^4.1.1",
  2500 + "macaddress": "^0.2.8",
  2501 + "moment": "^2.19.1",
  2502 + "node-machine-id": "^1.1.10",
  2503 + "node-natural-sort": "^0.8.6",
  2504 + "numeral": "^2.0.6",
  2505 + "nunjucks": "^3.0.1",
  2506 + "pkginfo": "^0.4.1",
  2507 + "redis": "^2.8.0",
  2508 + "request": "^2.81.0",
  2509 + "sha1": "^1.1.1",
  2510 + "simple-git": "^1.80.1",
  2511 + "sort-object": "^3.0.2",
  2512 + "strftime": "^0.10.0",
  2513 + "string-natural-compare": "^2.0.2",
  2514 + "uniqid": "^4.1.1",
  2515 + "uuid": "^3.1.0",
  2516 + "winston": "^2.3.1",
  2517 + "winston-circular-buffer": "^1.0.0",
  2518 + "winston-daily-rotate-file": "^1.4.6"
  2519 + }
  2520 + },
  2521 + "lcid": {
  2522 + "version": "1.0.0",
  2523 + "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz",
  2524 + "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=",
  2525 + "requires": {
  2526 + "invert-kv": "^1.0.0"
  2527 + }
  2528 + },
  2529 + "levn": {
  2530 + "version": "0.3.0",
  2531 + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz",
  2532 + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=",
  2533 + "dev": true,
  2534 + "requires": {
  2535 + "prelude-ls": "~1.1.2",
  2536 + "type-check": "~0.3.2"
  2537 + }
  2538 + },
  2539 + "locate-path": {
  2540 + "version": "3.0.0",
  2541 + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
  2542 + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
  2543 + "dev": true,
  2544 + "requires": {
  2545 + "p-locate": "^3.0.0",
  2546 + "path-exists": "^3.0.0"
  2547 + }
  2548 + },
  2549 + "lodash": {
  2550 + "version": "4.17.15",
  2551 + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz",
  2552 + "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==",
  2553 + "dev": true
  2554 + },
  2555 + "log-symbols": {
  2556 + "version": "2.2.0",
  2557 + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz",
  2558 + "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==",
  2559 + "dev": true,
  2560 + "requires": {
  2561 + "chalk": "^2.0.1"
  2562 + }
  2563 + },
  2564 + "lru-cache": {
  2565 + "version": "4.1.5",
  2566 + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz",
  2567 + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==",
  2568 + "requires": {
  2569 + "pseudomap": "^1.0.2",
  2570 + "yallist": "^2.1.2"
  2571 + }
  2572 + },
  2573 + "macaddress": {
  2574 + "version": "0.2.9",
  2575 + "resolved": "https://registry.npmjs.org/macaddress/-/macaddress-0.2.9.tgz",
  2576 + "integrity": "sha512-k4F1JUof6cQXxNFzx3thLby4oJzXTXQueAOOts944Vqizn+Rjc2QNFenT9FJSLU1CH3PmrHRSyZs2E+Cqw+P2w=="
  2577 + },
  2578 + "map-age-cleaner": {
  2579 + "version": "0.1.3",
  2580 + "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz",
  2581 + "integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==",
  2582 + "dev": true,
  2583 + "requires": {
  2584 + "p-defer": "^1.0.0"
  2585 + }
  2586 + },
  2587 + "map-cache": {
  2588 + "version": "0.2.2",
  2589 + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz",
  2590 + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=",
  2591 + "optional": true
  2592 + },
  2593 + "map-visit": {
  2594 + "version": "1.0.0",
  2595 + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz",
  2596 + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=",
  2597 + "optional": true,
  2598 + "requires": {
  2599 + "object-visit": "^1.0.0"
  2600 + }
  2601 + },
  2602 + "media-typer": {
  2603 + "version": "0.3.0",
  2604 + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
  2605 + "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g="
  2606 + },
  2607 + "mem": {
  2608 + "version": "4.3.0",
  2609 + "resolved": "https://registry.npmjs.org/mem/-/mem-4.3.0.tgz",
  2610 + "integrity": "sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w==",
  2611 + "dev": true,
  2612 + "requires": {
  2613 + "map-age-cleaner": "^0.1.1",
  2614 + "mimic-fn": "^2.0.0",
  2615 + "p-is-promise": "^2.0.0"
  2616 + }
  2617 + },
  2618 + "merge-descriptors": {
  2619 + "version": "1.0.1",
  2620 + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
  2621 + "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E="
  2622 + },
  2623 + "methods": {
  2624 + "version": "1.1.2",
  2625 + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
  2626 + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4="
  2627 + },
  2628 + "micromatch": {
  2629 + "version": "3.1.10",
  2630 + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz",
  2631 + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==",
  2632 + "optional": true,
  2633 + "requires": {
  2634 + "arr-diff": "^4.0.0",
  2635 + "array-unique": "^0.3.2",
  2636 + "braces": "^2.3.1",
  2637 + "define-property": "^2.0.2",
  2638 + "extend-shallow": "^3.0.2",
  2639 + "extglob": "^2.0.4",
  2640 + "fragment-cache": "^0.2.1",
  2641 + "kind-of": "^6.0.2",
  2642 + "nanomatch": "^1.2.9",
  2643 + "object.pick": "^1.3.0",
  2644 + "regex-not": "^1.0.0",
  2645 + "snapdragon": "^0.8.1",
  2646 + "to-regex": "^3.0.2"
  2647 + }
  2648 + },
  2649 + "mime": {
  2650 + "version": "1.6.0",
  2651 + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
  2652 + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg=="
  2653 + },
  2654 + "mime-db": {
  2655 + "version": "1.40.0",
  2656 + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz",
  2657 + "integrity": "sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA=="
  2658 + },
  2659 + "mime-types": {
  2660 + "version": "2.1.24",
  2661 + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz",
  2662 + "integrity": "sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==",
  2663 + "requires": {
  2664 + "mime-db": "1.40.0"
  2665 + }
  2666 + },
  2667 + "mimic-fn": {
  2668 + "version": "2.1.0",
  2669 + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
  2670 + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==",
  2671 + "dev": true
  2672 + },
  2673 + "minimatch": {
  2674 + "version": "3.0.4",
  2675 + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
  2676 + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
  2677 + "requires": {
  2678 + "brace-expansion": "^1.1.7"
  2679 + }
  2680 + },
  2681 + "minimist": {
  2682 + "version": "0.0.8",
  2683 + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
  2684 + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0="
  2685 + },
  2686 + "mixin-deep": {
  2687 + "version": "1.3.2",
  2688 + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz",
  2689 + "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==",
  2690 + "optional": true,
  2691 + "requires": {
  2692 + "for-in": "^1.0.2",
  2693 + "is-extendable": "^1.0.1"
  2694 + },
  2695 + "dependencies": {
  2696 + "is-extendable": {
  2697 + "version": "1.0.1",
  2698 + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
  2699 + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
  2700 + "optional": true,
  2701 + "requires": {
  2702 + "is-plain-object": "^2.0.4"
  2703 + }
  2704 + }
  2705 + }
  2706 + },
  2707 + "mkdirp": {
  2708 + "version": "0.5.1",
  2709 + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
  2710 + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
  2711 + "requires": {
  2712 + "minimist": "0.0.8"
  2713 + }
  2714 + },
  2715 + "mocha": {
  2716 + "version": "6.2.0",
  2717 + "resolved": "https://registry.npmjs.org/mocha/-/mocha-6.2.0.tgz",
  2718 + "integrity": "sha512-qwfFgY+7EKAAUAdv7VYMZQknI7YJSGesxHyhn6qD52DV8UcSZs5XwCifcZGMVIE4a5fbmhvbotxC0DLQ0oKohQ==",
  2719 + "dev": true,
  2720 + "requires": {
  2721 + "ansi-colors": "3.2.3",
  2722 + "browser-stdout": "1.3.1",
  2723 + "debug": "3.2.6",
  2724 + "diff": "3.5.0",
  2725 + "escape-string-regexp": "1.0.5",
  2726 + "find-up": "3.0.0",
  2727 + "glob": "7.1.3",
  2728 + "growl": "1.10.5",
  2729 + "he": "1.2.0",
  2730 + "js-yaml": "3.13.1",
  2731 + "log-symbols": "2.2.0",
  2732 + "minimatch": "3.0.4",
  2733 + "mkdirp": "0.5.1",
  2734 + "ms": "2.1.1",
  2735 + "node-environment-flags": "1.0.5",
  2736 + "object.assign": "4.1.0",
  2737 + "strip-json-comments": "2.0.1",
  2738 + "supports-color": "6.0.0",
  2739 + "which": "1.3.1",
  2740 + "wide-align": "1.1.3",
  2741 + "yargs": "13.2.2",
  2742 + "yargs-parser": "13.0.0",
  2743 + "yargs-unparser": "1.5.0"
  2744 + },
  2745 + "dependencies": {
  2746 + "ansi-regex": {
  2747 + "version": "3.0.0",
  2748 + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
  2749 + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
  2750 + "dev": true
  2751 + },
  2752 + "cliui": {
  2753 + "version": "4.1.0",
  2754 + "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz",
  2755 + "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==",
  2756 + "dev": true,
  2757 + "requires": {
  2758 + "string-width": "^2.1.1",
  2759 + "strip-ansi": "^4.0.0",
  2760 + "wrap-ansi": "^2.0.0"
  2761 + },
  2762 + "dependencies": {
  2763 + "string-width": {
  2764 + "version": "2.1.1",
  2765 + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
  2766 + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
  2767 + "dev": true,
  2768 + "requires": {
  2769 + "is-fullwidth-code-point": "^2.0.0",
  2770 + "strip-ansi": "^4.0.0"
  2771 + }
  2772 + }
  2773 + }
  2774 + },
  2775 + "debug": {
  2776 + "version": "3.2.6",
  2777 + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz",
  2778 + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==",
  2779 + "dev": true,
  2780 + "requires": {
  2781 + "ms": "^2.1.1"
  2782 + }
  2783 + },
  2784 + "glob": {
  2785 + "version": "7.1.3",
  2786 + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz",
  2787 + "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==",
  2788 + "dev": true,
  2789 + "requires": {
  2790 + "fs.realpath": "^1.0.0",
  2791 + "inflight": "^1.0.4",
  2792 + "inherits": "2",
  2793 + "minimatch": "^3.0.4",
  2794 + "once": "^1.3.0",
  2795 + "path-is-absolute": "^1.0.0"
  2796 + }
  2797 + },
  2798 + "invert-kv": {
  2799 + "version": "2.0.0",
  2800 + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz",
  2801 + "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==",
  2802 + "dev": true
  2803 + },
  2804 + "is-fullwidth-code-point": {
  2805 + "version": "2.0.0",
  2806 + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
  2807 + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
  2808 + "dev": true
  2809 + },
  2810 + "lcid": {
  2811 + "version": "2.0.0",
  2812 + "resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz",
  2813 + "integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==",
  2814 + "dev": true,
  2815 + "requires": {
  2816 + "invert-kv": "^2.0.0"
  2817 + }
  2818 + },
  2819 + "ms": {
  2820 + "version": "2.1.1",
  2821 + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
  2822 + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==",
  2823 + "dev": true
  2824 + },
  2825 + "os-locale": {
  2826 + "version": "3.1.0",
  2827 + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-3.1.0.tgz",
  2828 + "integrity": "sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q==",
  2829 + "dev": true,
  2830 + "requires": {
  2831 + "execa": "^1.0.0",
  2832 + "lcid": "^2.0.0",
  2833 + "mem": "^4.0.0"
  2834 + }
  2835 + },
  2836 + "string-width": {
  2837 + "version": "3.1.0",
  2838 + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
  2839 + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
  2840 + "dev": true,
  2841 + "requires": {
  2842 + "emoji-regex": "^7.0.1",
  2843 + "is-fullwidth-code-point": "^2.0.0",
  2844 + "strip-ansi": "^5.1.0"
  2845 + },
  2846 + "dependencies": {
  2847 + "ansi-regex": {
  2848 + "version": "4.1.0",
  2849 + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
  2850 + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
  2851 + "dev": true
  2852 + },
  2853 + "strip-ansi": {
  2854 + "version": "5.2.0",
  2855 + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
  2856 + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
  2857 + "dev": true,
  2858 + "requires": {
  2859 + "ansi-regex": "^4.1.0"
  2860 + }
  2861 + }
  2862 + }
  2863 + },
  2864 + "strip-ansi": {
  2865 + "version": "4.0.0",
  2866 + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
  2867 + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
  2868 + "dev": true,
  2869 + "requires": {
  2870 + "ansi-regex": "^3.0.0"
  2871 + }
  2872 + },
  2873 + "y18n": {
  2874 + "version": "4.0.0",
  2875 + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz",
  2876 + "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==",
  2877 + "dev": true
  2878 + },
  2879 + "yargs": {
  2880 + "version": "13.2.2",
  2881 + "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.2.2.tgz",
  2882 + "integrity": "sha512-WyEoxgyTD3w5XRpAQNYUB9ycVH/PQrToaTXdYXRdOXvEy1l19br+VJsc0vcO8PTGg5ro/l/GY7F/JMEBmI0BxA==",
  2883 + "dev": true,
  2884 + "requires": {
  2885 + "cliui": "^4.0.0",
  2886 + "find-up": "^3.0.0",
  2887 + "get-caller-file": "^2.0.1",
  2888 + "os-locale": "^3.1.0",
  2889 + "require-directory": "^2.1.1",
  2890 + "require-main-filename": "^2.0.0",
  2891 + "set-blocking": "^2.0.0",
  2892 + "string-width": "^3.0.0",
  2893 + "which-module": "^2.0.0",
  2894 + "y18n": "^4.0.0",
  2895 + "yargs-parser": "^13.0.0"
  2896 + }
  2897 + }
  2898 + }
  2899 + },
  2900 + "moment": {
  2901 + "version": "2.24.0",
  2902 + "resolved": "https://registry.npmjs.org/moment/-/moment-2.24.0.tgz",
  2903 + "integrity": "sha512-bV7f+6l2QigeBBZSM/6yTNq4P2fNpSWj/0e7jQcy87A8e7o2nAfP/34/2ky5Vw4B9S446EtIhodAzkFCcR4dQg=="
  2904 + },
  2905 + "ms": {
  2906 + "version": "2.0.0",
  2907 + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
  2908 + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
  2909 + },
  2910 + "mute-stream": {
  2911 + "version": "0.0.7",
  2912 + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz",
  2913 + "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=",
  2914 + "dev": true
  2915 + },
  2916 + "nan": {
  2917 + "version": "2.14.0",
  2918 + "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz",
  2919 + "integrity": "sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==",
  2920 + "optional": true
  2921 + },
  2922 + "nanomatch": {
  2923 + "version": "1.2.13",
  2924 + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz",
  2925 + "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==",
  2926 + "optional": true,
  2927 + "requires": {
  2928 + "arr-diff": "^4.0.0",
  2929 + "array-unique": "^0.3.2",
  2930 + "define-property": "^2.0.2",
  2931 + "extend-shallow": "^3.0.2",
  2932 + "fragment-cache": "^0.2.1",
  2933 + "is-windows": "^1.0.2",
  2934 + "kind-of": "^6.0.2",
  2935 + "object.pick": "^1.3.0",
  2936 + "regex-not": "^1.0.0",
  2937 + "snapdragon": "^0.8.1",
  2938 + "to-regex": "^3.0.1"
  2939 + }
  2940 + },
  2941 + "natural-compare": {
  2942 + "version": "1.4.0",
  2943 + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
  2944 + "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=",
  2945 + "dev": true
  2946 + },
  2947 + "negotiator": {
  2948 + "version": "0.6.2",
  2949 + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz",
  2950 + "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw=="
  2951 + },
  2952 + "nice-try": {
  2953 + "version": "1.0.5",
  2954 + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz",
  2955 + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==",
  2956 + "dev": true
  2957 + },
  2958 + "node-environment-flags": {
  2959 + "version": "1.0.5",
  2960 + "resolved": "https://registry.npmjs.org/node-environment-flags/-/node-environment-flags-1.0.5.tgz",
  2961 + "integrity": "sha512-VNYPRfGfmZLx0Ye20jWzHUjyTW/c+6Wq+iLhDzUI4XmhrDd9l/FozXV3F2xOaXjvp0co0+v1YSR3CMP6g+VvLQ==",
  2962 + "dev": true,
  2963 + "requires": {
  2964 + "object.getownpropertydescriptors": "^2.0.3",
  2965 + "semver": "^5.7.0"
  2966 + }
  2967 + },
  2968 + "node-machine-id": {
  2969 + "version": "1.1.12",
  2970 + "resolved": "https://registry.npmjs.org/node-machine-id/-/node-machine-id-1.1.12.tgz",
  2971 + "integrity": "sha512-QNABxbrPa3qEIfrE6GOJ7BYIuignnJw7iQ2YPbc3Nla1HzRJjXzZOiikfF8m7eAMfichLt3M4VgLOetqgDmgGQ=="
  2972 + },
  2973 + "node-natural-sort": {
  2974 + "version": "0.8.7",
  2975 + "resolved": "https://registry.npmjs.org/node-natural-sort/-/node-natural-sort-0.8.7.tgz",
  2976 + "integrity": "sha512-rMaLlHV5BlnRhIl6jUfgqdLY5U0NJkIxUdOsmpz3Txwh7js4+GwTiomhO8W4rp3SvX1zZ56mx13zfEWESr+qqA=="
  2977 + },
  2978 + "normalize-path": {
  2979 + "version": "3.0.0",
  2980 + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
  2981 + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
  2982 + "optional": true
  2983 + },
  2984 + "npm-run-path": {
  2985 + "version": "2.0.2",
  2986 + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz",
  2987 + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=",
  2988 + "dev": true,
  2989 + "requires": {
  2990 + "path-key": "^2.0.0"
  2991 + }
  2992 + },
  2993 + "number-is-nan": {
  2994 + "version": "1.0.1",
  2995 + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz",
  2996 + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0="
  2997 + },
  2998 + "numeral": {
  2999 + "version": "2.0.6",
  3000 + "resolved": "https://registry.npmjs.org/numeral/-/numeral-2.0.6.tgz",
  3001 + "integrity": "sha1-StCAk21EPCVhrtnyGX7//iX05QY="
  3002 + },
  3003 + "nunjucks": {
  3004 + "version": "3.2.0",
  3005 + "resolved": "https://registry.npmjs.org/nunjucks/-/nunjucks-3.2.0.tgz",
  3006 + "integrity": "sha512-YS/qEQ6N7qCnUdm6EoYRBfJUdWNT0PpKbbRnogV2XyXbBm2STIP1O6yrdZHgwMVK7fIYUx7i8+yatEixnXSB1w==",
  3007 + "requires": {
  3008 + "a-sync-waterfall": "^1.0.0",
  3009 + "asap": "^2.0.3",
  3010 + "chokidar": "^2.0.0",
  3011 + "yargs": "^3.32.0"
  3012 + }
  3013 + },
  3014 + "oauth-sign": {
  3015 + "version": "0.9.0",
  3016 + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz",
  3017 + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ=="
  3018 + },
  3019 + "object-copy": {
  3020 + "version": "0.1.0",
  3021 + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz",
  3022 + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=",
  3023 + "optional": true,
  3024 + "requires": {
  3025 + "copy-descriptor": "^0.1.0",
  3026 + "define-property": "^0.2.5",
  3027 + "kind-of": "^3.0.3"
  3028 + },
  3029 + "dependencies": {
  3030 + "define-property": {
  3031 + "version": "0.2.5",
  3032 + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
  3033 + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
  3034 + "optional": true,
  3035 + "requires": {
  3036 + "is-descriptor": "^0.1.0"
  3037 + }
  3038 + },
  3039 + "kind-of": {
  3040 + "version": "3.2.2",
  3041 + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
  3042 + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
  3043 + "optional": true,
  3044 + "requires": {
  3045 + "is-buffer": "^1.1.5"
  3046 + }
  3047 + }
  3048 + }
  3049 + },
  3050 + "object-keys": {
  3051 + "version": "1.1.1",
  3052 + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
  3053 + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
  3054 + "dev": true
  3055 + },
  3056 + "object-visit": {
  3057 + "version": "1.0.1",
  3058 + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz",
  3059 + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=",
  3060 + "optional": true,
  3061 + "requires": {
  3062 + "isobject": "^3.0.0"
  3063 + }
  3064 + },
  3065 + "object.assign": {
  3066 + "version": "4.1.0",
  3067 + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz",
  3068 + "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==",
  3069 + "dev": true,
  3070 + "requires": {
  3071 + "define-properties": "^1.1.2",
  3072 + "function-bind": "^1.1.1",
  3073 + "has-symbols": "^1.0.0",
  3074 + "object-keys": "^1.0.11"
  3075 + }
  3076 + },
  3077 + "object.getownpropertydescriptors": {
  3078 + "version": "2.0.3",
  3079 + "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz",
  3080 + "integrity": "sha1-h1jIRvW0B62rDyNuCYbxSwUcqhY=",
  3081 + "dev": true,
  3082 + "requires": {
  3083 + "define-properties": "^1.1.2",
  3084 + "es-abstract": "^1.5.1"
  3085 + }
  3086 + },
  3087 + "object.pick": {
  3088 + "version": "1.3.0",
  3089 + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz",
  3090 + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=",
  3091 + "optional": true,
  3092 + "requires": {
  3093 + "isobject": "^3.0.1"
  3094 + }
  3095 + },
  3096 + "on-finished": {
  3097 + "version": "2.3.0",
  3098 + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
  3099 + "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=",
  3100 + "requires": {
  3101 + "ee-first": "1.1.1"
  3102 + }
  3103 + },
  3104 + "on-headers": {
  3105 + "version": "1.0.2",
  3106 + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz",
  3107 + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA=="
  3108 + },
  3109 + "once": {
  3110 + "version": "1.4.0",
  3111 + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
  3112 + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
  3113 + "requires": {
  3114 + "wrappy": "1"
  3115 + }
  3116 + },
  3117 + "onetime": {
  3118 + "version": "2.0.1",
  3119 + "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz",
  3120 + "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=",
  3121 + "dev": true,
  3122 + "requires": {
  3123 + "mimic-fn": "^1.0.0"
  3124 + },
  3125 + "dependencies": {
  3126 + "mimic-fn": {
  3127 + "version": "1.2.0",
  3128 + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz",
  3129 + "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==",
  3130 + "dev": true
  3131 + }
  3132 + }
  3133 + },
  3134 + "optionator": {
  3135 + "version": "0.8.2",
  3136 + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz",
  3137 + "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=",
  3138 + "dev": true,
  3139 + "requires": {
  3140 + "deep-is": "~0.1.3",
  3141 + "fast-levenshtein": "~2.0.4",
  3142 + "levn": "~0.3.0",
  3143 + "prelude-ls": "~1.1.2",
  3144 + "type-check": "~0.3.2",
  3145 + "wordwrap": "~1.0.0"
  3146 + }
  3147 + },
  3148 + "os-locale": {
  3149 + "version": "1.4.0",
  3150 + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz",
  3151 + "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=",
  3152 + "requires": {
  3153 + "lcid": "^1.0.0"
  3154 + }
  3155 + },
  3156 + "os-tmpdir": {
  3157 + "version": "1.0.2",
  3158 + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
  3159 + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=",
  3160 + "dev": true
  3161 + },
  3162 + "p-defer": {
  3163 + "version": "1.0.0",
  3164 + "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz",
  3165 + "integrity": "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=",
  3166 + "dev": true
  3167 + },
  3168 + "p-finally": {
  3169 + "version": "1.0.0",
  3170 + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz",
  3171 + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=",
  3172 + "dev": true
  3173 + },
  3174 + "p-is-promise": {
  3175 + "version": "2.1.0",
  3176 + "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-2.1.0.tgz",
  3177 + "integrity": "sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg==",
  3178 + "dev": true
  3179 + },
  3180 + "p-limit": {
  3181 + "version": "2.2.0",
  3182 + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.0.tgz",
  3183 + "integrity": "sha512-pZbTJpoUsCzV48Mc9Nh51VbwO0X9cuPFE8gYwx9BTCt9SF8/b7Zljd2fVgOxhIF/HDTKgpVzs+GPhyKfjLLFRQ==",
  3184 + "dev": true,
  3185 + "requires": {
  3186 + "p-try": "^2.0.0"
  3187 + }
  3188 + },
  3189 + "p-locate": {
  3190 + "version": "3.0.0",
  3191 + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
  3192 + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
  3193 + "dev": true,
  3194 + "requires": {
  3195 + "p-limit": "^2.0.0"
  3196 + }
  3197 + },
  3198 + "p-try": {
  3199 + "version": "2.2.0",
  3200 + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
  3201 + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
  3202 + "dev": true
  3203 + },
  3204 + "parent-module": {
  3205 + "version": "1.0.1",
  3206 + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
  3207 + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
  3208 + "dev": true,
  3209 + "requires": {
  3210 + "callsites": "^3.0.0"
  3211 + }
  3212 + },
  3213 + "parseurl": {
  3214 + "version": "1.3.3",
  3215 + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
  3216 + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ=="
  3217 + },
  3218 + "pascalcase": {
  3219 + "version": "0.1.1",
  3220 + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz",
  3221 + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=",
  3222 + "optional": true
  3223 + },
  3224 + "path-dirname": {
  3225 + "version": "1.0.2",
  3226 + "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz",
  3227 + "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=",
  3228 + "optional": true
  3229 + },
  3230 + "path-exists": {
  3231 + "version": "3.0.0",
  3232 + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
  3233 + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",
  3234 + "dev": true
  3235 + },
  3236 + "path-is-absolute": {
  3237 + "version": "1.0.1",
  3238 + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
  3239 + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18="
  3240 + },
  3241 + "path-key": {
  3242 + "version": "2.0.1",
  3243 + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz",
  3244 + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=",
  3245 + "dev": true
  3246 + },
  3247 + "path-to-regexp": {
  3248 + "version": "0.1.7",
  3249 + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
  3250 + "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w="
  3251 + },
  3252 + "performance-now": {
  3253 + "version": "2.1.0",
  3254 + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
  3255 + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns="
  3256 + },
  3257 + "pipe-io": {
  3258 + "version": "3.0.11",
  3259 + "resolved": "https://registry.npmjs.org/pipe-io/-/pipe-io-3.0.11.tgz",
  3260 + "integrity": "sha512-Mj9M+vdptBRBqHOf52kIDVeKVb2gLHuuqQyTemBfaK8J+5tdQhIL4RFP3bQ15G7+2Ib/RCHBinnRW7TJz4VuaA=="
  3261 + },
  3262 + "pkginfo": {
  3263 + "version": "0.4.1",
  3264 + "resolved": "https://registry.npmjs.org/pkginfo/-/pkginfo-0.4.1.tgz",
  3265 + "integrity": "sha1-tUGO8EOd5UJfxJlQQtztFPsqhP8="
  3266 + },
  3267 + "posix-character-classes": {
  3268 + "version": "0.1.1",
  3269 + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz",
  3270 + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=",
  3271 + "optional": true
  3272 + },
  3273 + "prelude-ls": {
  3274 + "version": "1.1.2",
  3275 + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz",
  3276 + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=",
  3277 + "dev": true
  3278 + },
  3279 + "process-nextick-args": {
  3280 + "version": "2.0.1",
  3281 + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
  3282 + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==",
  3283 + "optional": true
  3284 + },
  3285 + "progress": {
  3286 + "version": "2.0.3",
  3287 + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz",
  3288 + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==",
  3289 + "dev": true
  3290 + },
  3291 + "proxy-addr": {
  3292 + "version": "2.0.5",
  3293 + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.5.tgz",
  3294 + "integrity": "sha512-t/7RxHXPH6cJtP0pRG6smSr9QJidhB+3kXu0KgXnbGYMgzEnUxRQ4/LDdfOwZEMyIh3/xHb8PX3t+lfL9z+YVQ==",
  3295 + "requires": {
  3296 + "forwarded": "~0.1.2",
  3297 + "ipaddr.js": "1.9.0"
  3298 + }
  3299 + },
  3300 + "pseudomap": {
  3301 + "version": "1.0.2",
  3302 + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz",
  3303 + "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM="
  3304 + },
  3305 + "psl": {
  3306 + "version": "1.2.0",
  3307 + "resolved": "https://registry.npmjs.org/psl/-/psl-1.2.0.tgz",
  3308 + "integrity": "sha512-GEn74ZffufCmkDDLNcl3uuyF/aSD6exEyh1v/ZSdAomB82t6G9hzJVRx0jBmLDW+VfZqks3aScmMw9DszwUalA=="
  3309 + },
  3310 + "pump": {
  3311 + "version": "3.0.0",
  3312 + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
  3313 + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
  3314 + "dev": true,
  3315 + "requires": {
  3316 + "end-of-stream": "^1.1.0",
  3317 + "once": "^1.3.1"
  3318 + }
  3319 + },
  3320 + "punycode": {
  3321 + "version": "2.1.1",
  3322 + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
  3323 + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A=="
  3324 + },
  3325 + "qs": {
  3326 + "version": "6.7.0",
  3327 + "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz",
  3328 + "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ=="
  3329 + },
  3330 + "random-bytes": {
  3331 + "version": "1.0.0",
  3332 + "resolved": "https://registry.npmjs.org/random-bytes/-/random-bytes-1.0.0.tgz",
  3333 + "integrity": "sha1-T2ih3Arli9P7lYSMMDJNt11kNgs="
  3334 + },
  3335 + "range-parser": {
  3336 + "version": "1.2.1",
  3337 + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
  3338 + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg=="
  3339 + },
  3340 + "raw-body": {
  3341 + "version": "2.4.0",
  3342 + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz",
  3343 + "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==",
  3344 + "requires": {
  3345 + "bytes": "3.1.0",
  3346 + "http-errors": "1.7.2",
  3347 + "iconv-lite": "0.4.24",
  3348 + "unpipe": "1.0.0"
  3349 + }
  3350 + },
  3351 + "readable-stream": {
  3352 + "version": "2.3.6",
  3353 + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
  3354 + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
  3355 + "optional": true,
  3356 + "requires": {
  3357 + "core-util-is": "~1.0.0",
  3358 + "inherits": "~2.0.3",
  3359 + "isarray": "~1.0.0",
  3360 + "process-nextick-args": "~2.0.0",
  3361 + "safe-buffer": "~5.1.1",
  3362 + "string_decoder": "~1.1.1",
  3363 + "util-deprecate": "~1.0.1"
  3364 + }
  3365 + },
  3366 + "readdirp": {
  3367 + "version": "2.2.1",
  3368 + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz",
  3369 + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==",
  3370 + "optional": true,
  3371 + "requires": {
  3372 + "graceful-fs": "^4.1.11",
  3373 + "micromatch": "^3.1.10",
  3374 + "readable-stream": "^2.0.2"
  3375 + }
  3376 + },
  3377 + "redis": {
  3378 + "version": "2.8.0",
  3379 + "resolved": "https://registry.npmjs.org/redis/-/redis-2.8.0.tgz",
  3380 + "integrity": "sha512-M1OkonEQwtRmZv4tEWF2VgpG0JWJ8Fv1PhlgT5+B+uNq2cA3Rt1Yt/ryoR+vQNOQcIEgdCdfH0jr3bDpihAw1A==",
  3381 + "requires": {
  3382 + "double-ended-queue": "^2.1.0-0",
  3383 + "redis-commands": "^1.2.0",
  3384 + "redis-parser": "^2.6.0"
  3385 + }
  3386 + },
  3387 + "redis-commands": {
  3388 + "version": "1.5.0",
  3389 + "resolved": "https://registry.npmjs.org/redis-commands/-/redis-commands-1.5.0.tgz",
  3390 + "integrity": "sha512-6KxamqpZ468MeQC3bkWmCB1fp56XL64D4Kf0zJSwDZbVLLm7KFkoIcHrgRvQ+sk8dnhySs7+yBg94yIkAK7aJg=="
  3391 + },
  3392 + "redis-parser": {
  3393 + "version": "2.6.0",
  3394 + "resolved": "https://registry.npmjs.org/redis-parser/-/redis-parser-2.6.0.tgz",
  3395 + "integrity": "sha1-Uu0J2srBCPGmMcB+m2mUHnoZUEs="
  3396 + },
  3397 + "regex-not": {
  3398 + "version": "1.0.2",
  3399 + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz",
  3400 + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==",
  3401 + "optional": true,
  3402 + "requires": {
  3403 + "extend-shallow": "^3.0.2",
  3404 + "safe-regex": "^1.1.0"
  3405 + }
  3406 + },
  3407 + "regexpp": {
  3408 + "version": "2.0.1",
  3409 + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz",
  3410 + "integrity": "sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==",
  3411 + "dev": true
  3412 + },
  3413 + "remove-trailing-separator": {
  3414 + "version": "1.1.0",
  3415 + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz",
  3416 + "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=",
  3417 + "optional": true
  3418 + },
  3419 + "repeat-element": {
  3420 + "version": "1.1.3",
  3421 + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz",
  3422 + "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==",
  3423 + "optional": true
  3424 + },
  3425 + "repeat-string": {
  3426 + "version": "1.6.1",
  3427 + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz",
  3428 + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=",
  3429 + "optional": true
  3430 + },
  3431 + "request": {
  3432 + "version": "2.88.0",
  3433 + "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz",
  3434 + "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==",
  3435 + "requires": {
  3436 + "aws-sign2": "~0.7.0",
  3437 + "aws4": "^1.8.0",
  3438 + "caseless": "~0.12.0",
  3439 + "combined-stream": "~1.0.6",
  3440 + "extend": "~3.0.2",
  3441 + "forever-agent": "~0.6.1",
  3442 + "form-data": "~2.3.2",
  3443 + "har-validator": "~5.1.0",
  3444 + "http-signature": "~1.2.0",
  3445 + "is-typedarray": "~1.0.0",
  3446 + "isstream": "~0.1.2",
  3447 + "json-stringify-safe": "~5.0.1",
  3448 + "mime-types": "~2.1.19",
  3449 + "oauth-sign": "~0.9.0",
  3450 + "performance-now": "^2.1.0",
  3451 + "qs": "~6.5.2",
  3452 + "safe-buffer": "^5.1.2",
  3453 + "tough-cookie": "~2.4.3",
  3454 + "tunnel-agent": "^0.6.0",
  3455 + "uuid": "^3.3.2"
  3456 + },
  3457 + "dependencies": {
  3458 + "qs": {
  3459 + "version": "6.5.2",
  3460 + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz",
  3461 + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA=="
  3462 + }
  3463 + }
  3464 + },
  3465 + "require-directory": {
  3466 + "version": "2.1.1",
  3467 + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
  3468 + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=",
  3469 + "dev": true
  3470 + },
  3471 + "require-main-filename": {
  3472 + "version": "2.0.0",
  3473 + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz",
  3474 + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==",
  3475 + "dev": true
  3476 + },
  3477 + "resolve-from": {
  3478 + "version": "4.0.0",
  3479 + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
  3480 + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
  3481 + "dev": true
  3482 + },
  3483 + "resolve-url": {
  3484 + "version": "0.2.1",
  3485 + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz",
  3486 + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=",
  3487 + "optional": true
  3488 + },
  3489 + "restore-cursor": {
  3490 + "version": "2.0.0",
  3491 + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz",
  3492 + "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=",
  3493 + "dev": true,
  3494 + "requires": {
  3495 + "onetime": "^2.0.0",
  3496 + "signal-exit": "^3.0.2"
  3497 + }
  3498 + },
  3499 + "ret": {
  3500 + "version": "0.1.15",
  3501 + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz",
  3502 + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==",
  3503 + "optional": true
  3504 + },
  3505 + "rimraf": {
  3506 + "version": "2.6.3",
  3507 + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz",
  3508 + "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==",
  3509 + "dev": true,
  3510 + "requires": {
  3511 + "glob": "^7.1.3"
  3512 + }
  3513 + },
  3514 + "run-async": {
  3515 + "version": "2.3.0",
  3516 + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz",
  3517 + "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=",
  3518 + "dev": true,
  3519 + "requires": {
  3520 + "is-promise": "^2.1.0"
  3521 + }
  3522 + },
  3523 + "rxjs": {
  3524 + "version": "6.5.2",
  3525 + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.2.tgz",
  3526 + "integrity": "sha512-HUb7j3kvb7p7eCUHE3FqjoDsC1xfZQ4AHFWfTKSpZ+sAhhz5X1WX0ZuUqWbzB2QhSLp3DoLUG+hMdEDKqWo2Zg==",
  3527 + "dev": true,
  3528 + "requires": {
  3529 + "tslib": "^1.9.0"
  3530 + }
  3531 + },
  3532 + "safe-buffer": {
  3533 + "version": "5.1.2",
  3534 + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
  3535 + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
  3536 + },
  3537 + "safe-regex": {
  3538 + "version": "1.1.0",
  3539 + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz",
  3540 + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=",
  3541 + "optional": true,
  3542 + "requires": {
  3543 + "ret": "~0.1.10"
  3544 + }
  3545 + },
  3546 + "safer-buffer": {
  3547 + "version": "2.1.2",
  3548 + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
  3549 + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
  3550 + },
  3551 + "semver": {
  3552 + "version": "5.7.0",
  3553 + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz",
  3554 + "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==",
  3555 + "dev": true
  3556 + },
  3557 + "send": {
  3558 + "version": "0.17.1",
  3559 + "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz",
  3560 + "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==",
  3561 + "requires": {
  3562 + "debug": "2.6.9",
  3563 + "depd": "~1.1.2",
  3564 + "destroy": "~1.0.4",
  3565 + "encodeurl": "~1.0.2",
  3566 + "escape-html": "~1.0.3",
  3567 + "etag": "~1.8.1",
  3568 + "fresh": "0.5.2",
  3569 + "http-errors": "~1.7.2",
  3570 + "mime": "1.6.0",
  3571 + "ms": "2.1.1",
  3572 + "on-finished": "~2.3.0",
  3573 + "range-parser": "~1.2.1",
  3574 + "statuses": "~1.5.0"
  3575 + },
  3576 + "dependencies": {
  3577 + "ms": {
  3578 + "version": "2.1.1",
  3579 + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
  3580 + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg=="
  3581 + }
  3582 + }
  3583 + },
  3584 + "serve-static": {
  3585 + "version": "1.14.1",
  3586 + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz",
  3587 + "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==",
  3588 + "requires": {
  3589 + "encodeurl": "~1.0.2",
  3590 + "escape-html": "~1.0.3",
  3591 + "parseurl": "~1.3.3",
  3592 + "send": "0.17.1"
  3593 + }
  3594 + },
  3595 + "set-blocking": {
  3596 + "version": "2.0.0",
  3597 + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
  3598 + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=",
  3599 + "dev": true
  3600 + },
  3601 + "set-value": {
  3602 + "version": "2.0.1",
  3603 + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz",
  3604 + "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==",
  3605 + "optional": true,
  3606 + "requires": {
  3607 + "extend-shallow": "^2.0.1",
  3608 + "is-extendable": "^0.1.1",
  3609 + "is-plain-object": "^2.0.3",
  3610 + "split-string": "^3.0.1"
  3611 + },
  3612 + "dependencies": {
  3613 + "extend-shallow": {
  3614 + "version": "2.0.1",
  3615 + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
  3616 + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
  3617 + "optional": true,
  3618 + "requires": {
  3619 + "is-extendable": "^0.1.0"
  3620 + }
  3621 + }
  3622 + }
  3623 + },
  3624 + "setprototypeof": {
  3625 + "version": "1.1.1",
  3626 + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz",
  3627 + "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw=="
  3628 + },
  3629 + "sha1": {
  3630 + "version": "1.1.1",
  3631 + "resolved": "https://registry.npmjs.org/sha1/-/sha1-1.1.1.tgz",
  3632 + "integrity": "sha1-rdqnqTFo85PxnrKxUJFhjicA+Eg=",
  3633 + "requires": {
  3634 + "charenc": ">= 0.0.1",
  3635 + "crypt": ">= 0.0.1"
  3636 + }
  3637 + },
  3638 + "shebang-command": {
  3639 + "version": "1.2.0",
  3640 + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
  3641 + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=",
  3642 + "dev": true,
  3643 + "requires": {
  3644 + "shebang-regex": "^1.0.0"
  3645 + }
  3646 + },
  3647 + "shebang-regex": {
  3648 + "version": "1.0.0",
  3649 + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz",
  3650 + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=",
  3651 + "dev": true
  3652 + },
  3653 + "should": {
  3654 + "version": "13.2.3",
  3655 + "resolved": "https://registry.npmjs.org/should/-/should-13.2.3.tgz",
  3656 + "integrity": "sha512-ggLesLtu2xp+ZxI+ysJTmNjh2U0TsC+rQ/pfED9bUZZ4DKefP27D+7YJVVTvKsmjLpIi9jAa7itwDGkDDmt1GQ==",
  3657 + "dev": true,
  3658 + "requires": {
  3659 + "should-equal": "^2.0.0",
  3660 + "should-format": "^3.0.3",
  3661 + "should-type": "^1.4.0",
  3662 + "should-type-adaptors": "^1.0.1",
  3663 + "should-util": "^1.0.0"
  3664 + }
  3665 + },
  3666 + "should-equal": {
  3667 + "version": "2.0.0",
  3668 + "resolved": "https://registry.npmjs.org/should-equal/-/should-equal-2.0.0.tgz",
  3669 + "integrity": "sha512-ZP36TMrK9euEuWQYBig9W55WPC7uo37qzAEmbjHz4gfyuXrEUgF8cUvQVO+w+d3OMfPvSRQJ22lSm8MQJ43LTA==",
  3670 + "dev": true,
  3671 + "requires": {
  3672 + "should-type": "^1.4.0"
  3673 + }
  3674 + },
  3675 + "should-format": {
  3676 + "version": "3.0.3",
  3677 + "resolved": "https://registry.npmjs.org/should-format/-/should-format-3.0.3.tgz",
  3678 + "integrity": "sha1-m/yPdPo5IFxT04w01xcwPidxJPE=",
  3679 + "dev": true,
  3680 + "requires": {
  3681 + "should-type": "^1.3.0",
  3682 + "should-type-adaptors": "^1.0.1"
  3683 + }
  3684 + },
  3685 + "should-type": {
  3686 + "version": "1.4.0",
  3687 + "resolved": "https://registry.npmjs.org/should-type/-/should-type-1.4.0.tgz",
  3688 + "integrity": "sha1-B1bYzoRt/QmEOmlHcZ36DUz/XPM=",
  3689 + "dev": true
  3690 + },
  3691 + "should-type-adaptors": {
  3692 + "version": "1.1.0",
  3693 + "resolved": "https://registry.npmjs.org/should-type-adaptors/-/should-type-adaptors-1.1.0.tgz",
  3694 + "integrity": "sha512-JA4hdoLnN+kebEp2Vs8eBe9g7uy0zbRo+RMcU0EsNy+R+k049Ki+N5tT5Jagst2g7EAja+euFuoXFCa8vIklfA==",
  3695 + "dev": true,
  3696 + "requires": {
  3697 + "should-type": "^1.3.0",
  3698 + "should-util": "^1.0.0"
  3699 + }
  3700 + },
  3701 + "should-util": {
  3702 + "version": "1.0.1",
  3703 + "resolved": "https://registry.npmjs.org/should-util/-/should-util-1.0.1.tgz",
  3704 + "integrity": "sha512-oXF8tfxx5cDk8r2kYqlkUJzZpDBqVY/II2WhvU0n9Y3XYvAYRmeaf1PvvIvTgPnv4KJ+ES5M0PyDq5Jp+Ygy2g==",
  3705 + "dev": true
  3706 + },
  3707 + "signal-exit": {
  3708 + "version": "3.0.2",
  3709 + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz",
  3710 + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=",
  3711 + "dev": true
  3712 + },
  3713 + "simple-git": {
  3714 + "version": "1.122.0",
  3715 + "resolved": "https://registry.npmjs.org/simple-git/-/simple-git-1.122.0.tgz",
  3716 + "integrity": "sha512-plTwhnkIHrw2TFMJbJH/mKwWGgFbj03V9wcfBKa4FsuvgJbpwdlSJnlvkIQWDV1CVLaf2Gl6zSNeRRnxBRhX1g==",
  3717 + "requires": {
  3718 + "debug": "^4.0.1"
  3719 + },
  3720 + "dependencies": {
  3721 + "debug": {
  3722 + "version": "4.1.1",
  3723 + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
  3724 + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
  3725 + "requires": {
  3726 + "ms": "^2.1.1"
  3727 + }
  3728 + },
  3729 + "ms": {
  3730 + "version": "2.1.2",
  3731 + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
  3732 + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
  3733 + }
  3734 + }
  3735 + },
  3736 + "slice-ansi": {
  3737 + "version": "2.1.0",
  3738 + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz",
  3739 + "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==",
  3740 + "dev": true,
  3741 + "requires": {
  3742 + "ansi-styles": "^3.2.0",
  3743 + "astral-regex": "^1.0.0",
  3744 + "is-fullwidth-code-point": "^2.0.0"
  3745 + },
  3746 + "dependencies": {
  3747 + "is-fullwidth-code-point": {
  3748 + "version": "2.0.0",
  3749 + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
  3750 + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
  3751 + "dev": true
  3752 + }
  3753 + }
  3754 + },
  3755 + "snapdragon": {
  3756 + "version": "0.8.2",
  3757 + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz",
  3758 + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==",
  3759 + "optional": true,
  3760 + "requires": {
  3761 + "base": "^0.11.1",
  3762 + "debug": "^2.2.0",
  3763 + "define-property": "^0.2.5",
  3764 + "extend-shallow": "^2.0.1",
  3765 + "map-cache": "^0.2.2",
  3766 + "source-map": "^0.5.6",
  3767 + "source-map-resolve": "^0.5.0",
  3768 + "use": "^3.1.0"
  3769 + },
  3770 + "dependencies": {
  3771 + "define-property": {
  3772 + "version": "0.2.5",
  3773 + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
  3774 + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
  3775 + "optional": true,
  3776 + "requires": {
  3777 + "is-descriptor": "^0.1.0"
  3778 + }
  3779 + },
  3780 + "extend-shallow": {
  3781 + "version": "2.0.1",
  3782 + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
  3783 + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
  3784 + "optional": true,
  3785 + "requires": {
  3786 + "is-extendable": "^0.1.0"
  3787 + }
  3788 + }
  3789 + }
  3790 + },
  3791 + "snapdragon-node": {
  3792 + "version": "2.1.1",
  3793 + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz",
  3794 + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==",
  3795 + "optional": true,
  3796 + "requires": {
  3797 + "define-property": "^1.0.0",
  3798 + "isobject": "^3.0.0",
  3799 + "snapdragon-util": "^3.0.1"
  3800 + },
  3801 + "dependencies": {
  3802 + "define-property": {
  3803 + "version": "1.0.0",
  3804 + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
  3805 + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
  3806 + "optional": true,
  3807 + "requires": {
  3808 + "is-descriptor": "^1.0.0"
  3809 + }
  3810 + },
  3811 + "is-accessor-descriptor": {
  3812 + "version": "1.0.0",
  3813 + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
  3814 + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
  3815 + "optional": true,
  3816 + "requires": {
  3817 + "kind-of": "^6.0.0"
  3818 + }
  3819 + },
  3820 + "is-data-descriptor": {
  3821 + "version": "1.0.0",
  3822 + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
  3823 + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
  3824 + "optional": true,
  3825 + "requires": {
  3826 + "kind-of": "^6.0.0"
  3827 + }
  3828 + },
  3829 + "is-descriptor": {
  3830 + "version": "1.0.2",
  3831 + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
  3832 + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
  3833 + "optional": true,
  3834 + "requires": {
  3835 + "is-accessor-descriptor": "^1.0.0",
  3836 + "is-data-descriptor": "^1.0.0",
  3837 + "kind-of": "^6.0.2"
  3838 + }
  3839 + }
  3840 + }
  3841 + },
  3842 + "snapdragon-util": {
  3843 + "version": "3.0.1",
  3844 + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz",
  3845 + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==",
  3846 + "optional": true,
  3847 + "requires": {
  3848 + "kind-of": "^3.2.0"
  3849 + },
  3850 + "dependencies": {
  3851 + "kind-of": {
  3852 + "version": "3.2.2",
  3853 + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
  3854 + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
  3855 + "optional": true,
  3856 + "requires": {
  3857 + "is-buffer": "^1.1.5"
  3858 + }
  3859 + }
  3860 + }
  3861 + },
  3862 + "sort-asc": {
  3863 + "version": "0.2.0",
  3864 + "resolved": "https://registry.npmjs.org/sort-asc/-/sort-asc-0.2.0.tgz",
  3865 + "integrity": "sha1-AKSelHvCXVEL/eLLuN/9qfUOsvw="
  3866 + },
  3867 + "sort-desc": {
  3868 + "version": "0.2.0",
  3869 + "resolved": "https://registry.npmjs.org/sort-desc/-/sort-desc-0.2.0.tgz",
  3870 + "integrity": "sha1-KAwb2vxld4h87brR7S5BwDeXZkY="
  3871 + },
  3872 + "sort-object": {
  3873 + "version": "3.0.2",
  3874 + "resolved": "https://registry.npmjs.org/sort-object/-/sort-object-3.0.2.tgz",
  3875 + "integrity": "sha1-2vK2k/YR990qIbgrgF5OrCMPdV4=",
  3876 + "requires": {
  3877 + "bytewise": "^1.1.0",
  3878 + "get-value": "^2.0.2",
  3879 + "is-extendable": "^0.1.1",
  3880 + "sort-asc": "^0.2.0",
  3881 + "sort-desc": "^0.2.0",
  3882 + "union-value": "^0.2.3"
  3883 + },
  3884 + "dependencies": {
  3885 + "extend-shallow": {
  3886 + "version": "2.0.1",
  3887 + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
  3888 + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
  3889 + "requires": {
  3890 + "is-extendable": "^0.1.0"
  3891 + }
  3892 + },
  3893 + "set-value": {
  3894 + "version": "0.4.3",
  3895 + "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz",
  3896 + "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=",
  3897 + "requires": {
  3898 + "extend-shallow": "^2.0.1",
  3899 + "is-extendable": "^0.1.1",
  3900 + "is-plain-object": "^2.0.1",
  3901 + "to-object-path": "^0.3.0"
  3902 + }
  3903 + },
  3904 + "union-value": {
  3905 + "version": "0.2.4",
  3906 + "resolved": "https://registry.npmjs.org/union-value/-/union-value-0.2.4.tgz",
  3907 + "integrity": "sha1-c3UVJ4ZnkFfns3qmdug0aPwCdPA=",
  3908 + "requires": {
  3909 + "arr-union": "^3.1.0",
  3910 + "get-value": "^2.0.6",
  3911 + "is-extendable": "^0.1.1",
  3912 + "set-value": "^0.4.3"
  3913 + }
  3914 + }
  3915 + }
  3916 + },
  3917 + "source-map": {
  3918 + "version": "0.5.7",
  3919 + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
  3920 + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
  3921 + "optional": true
  3922 + },
  3923 + "source-map-resolve": {
  3924 + "version": "0.5.2",
  3925 + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz",
  3926 + "integrity": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==",
  3927 + "optional": true,
  3928 + "requires": {
  3929 + "atob": "^2.1.1",
  3930 + "decode-uri-component": "^0.2.0",
  3931 + "resolve-url": "^0.2.1",
  3932 + "source-map-url": "^0.4.0",
  3933 + "urix": "^0.1.0"
  3934 + }
  3935 + },
  3936 + "source-map-url": {
  3937 + "version": "0.4.0",
  3938 + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz",
  3939 + "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=",
  3940 + "optional": true
  3941 + },
  3942 + "split-string": {
  3943 + "version": "3.1.0",
  3944 + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz",
  3945 + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==",
  3946 + "optional": true,
  3947 + "requires": {
  3948 + "extend-shallow": "^3.0.0"
  3949 + }
  3950 + },
  3951 + "sprintf-js": {
  3952 + "version": "1.0.3",
  3953 + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
  3954 + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=",
  3955 + "dev": true
  3956 + },
  3957 + "sshpk": {
  3958 + "version": "1.16.1",
  3959 + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz",
  3960 + "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==",
  3961 + "requires": {
  3962 + "asn1": "~0.2.3",
  3963 + "assert-plus": "^1.0.0",
  3964 + "bcrypt-pbkdf": "^1.0.0",
  3965 + "dashdash": "^1.12.0",
  3966 + "ecc-jsbn": "~0.1.1",
  3967 + "getpass": "^0.1.1",
  3968 + "jsbn": "~0.1.0",
  3969 + "safer-buffer": "^2.0.2",
  3970 + "tweetnacl": "~0.14.0"
  3971 + }
  3972 + },
  3973 + "stack-trace": {
  3974 + "version": "0.0.10",
  3975 + "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz",
  3976 + "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA="
  3977 + },
  3978 + "static-extend": {
  3979 + "version": "0.1.2",
  3980 + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz",
  3981 + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=",
  3982 + "optional": true,
  3983 + "requires": {
  3984 + "define-property": "^0.2.5",
  3985 + "object-copy": "^0.1.0"
  3986 + },
  3987 + "dependencies": {
  3988 + "define-property": {
  3989 + "version": "0.2.5",
  3990 + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
  3991 + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
  3992 + "optional": true,
  3993 + "requires": {
  3994 + "is-descriptor": "^0.1.0"
  3995 + }
  3996 + }
  3997 + }
  3998 + },
  3999 + "statuses": {
  4000 + "version": "1.5.0",
  4001 + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
  4002 + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow="
  4003 + },
  4004 + "strftime": {
  4005 + "version": "0.10.0",
  4006 + "resolved": "https://registry.npmjs.org/strftime/-/strftime-0.10.0.tgz",
  4007 + "integrity": "sha1-s/D6QZKVICpaKJ9ta+n0kJphcZM="
  4008 + },
  4009 + "string-natural-compare": {
  4010 + "version": "2.0.3",
  4011 + "resolved": "https://registry.npmjs.org/string-natural-compare/-/string-natural-compare-2.0.3.tgz",
  4012 + "integrity": "sha512-4Kcl12rNjc+6EKhY8QyDVuQTAlMWwRiNbsxnVwBUKFr7dYPQuXVrtNU4sEkjF9LHY0AY6uVbB3ktbkIH4LC+BQ=="
  4013 + },
  4014 + "string-width": {
  4015 + "version": "1.0.2",
  4016 + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
  4017 + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
  4018 + "requires": {
  4019 + "code-point-at": "^1.0.0",
  4020 + "is-fullwidth-code-point": "^1.0.0",
  4021 + "strip-ansi": "^3.0.0"
  4022 + }
  4023 + },
  4024 + "string_decoder": {
  4025 + "version": "1.1.1",
  4026 + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
  4027 + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
  4028 + "optional": true,
  4029 + "requires": {
  4030 + "safe-buffer": "~5.1.0"
  4031 + }
  4032 + },
  4033 + "strip-ansi": {
  4034 + "version": "3.0.1",
  4035 + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
  4036 + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
  4037 + "requires": {
  4038 + "ansi-regex": "^2.0.0"
  4039 + }
  4040 + },
  4041 + "strip-eof": {
  4042 + "version": "1.0.0",
  4043 + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz",
  4044 + "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=",
  4045 + "dev": true
  4046 + },
  4047 + "strip-json-comments": {
  4048 + "version": "2.0.1",
  4049 + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
  4050 + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=",
  4051 + "dev": true
  4052 + },
  4053 + "supports-color": {
  4054 + "version": "6.0.0",
  4055 + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.0.0.tgz",
  4056 + "integrity": "sha512-on9Kwidc1IUQo+bQdhi8+Tijpo0e1SS6RoGo2guUwn5vdaxw8RXOF9Vb2ws+ihWOmh4JnCJOvaziZWP1VABaLg==",
  4057 + "dev": true,
  4058 + "requires": {
  4059 + "has-flag": "^3.0.0"
  4060 + }
  4061 + },
  4062 + "table": {
  4063 + "version": "5.4.4",
  4064 + "resolved": "https://registry.npmjs.org/table/-/table-5.4.4.tgz",
  4065 + "integrity": "sha512-IIfEAUx5QlODLblLrGTTLJA7Tk0iLSGBvgY8essPRVNGHAzThujww1YqHLs6h3HfTg55h++RzLHH5Xw/rfv+mg==",
  4066 + "dev": true,
  4067 + "requires": {
  4068 + "ajv": "^6.10.2",
  4069 + "lodash": "^4.17.14",
  4070 + "slice-ansi": "^2.1.0",
  4071 + "string-width": "^3.0.0"
  4072 + },
  4073 + "dependencies": {
  4074 + "ansi-regex": {
  4075 + "version": "4.1.0",
  4076 + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
  4077 + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
  4078 + "dev": true
  4079 + },
  4080 + "is-fullwidth-code-point": {
  4081 + "version": "2.0.0",
  4082 + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
  4083 + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
  4084 + "dev": true
  4085 + },
  4086 + "string-width": {
  4087 + "version": "3.1.0",
  4088 + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
  4089 + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
  4090 + "dev": true,
  4091 + "requires": {
  4092 + "emoji-regex": "^7.0.1",
  4093 + "is-fullwidth-code-point": "^2.0.0",
  4094 + "strip-ansi": "^5.1.0"
  4095 + }
  4096 + },
  4097 + "strip-ansi": {
  4098 + "version": "5.2.0",
  4099 + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
  4100 + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
  4101 + "dev": true,
  4102 + "requires": {
  4103 + "ansi-regex": "^4.1.0"
  4104 + }
  4105 + }
  4106 + }
  4107 + },
  4108 + "text-table": {
  4109 + "version": "0.2.0",
  4110 + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
  4111 + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=",
  4112 + "dev": true
  4113 + },
  4114 + "through": {
  4115 + "version": "2.3.8",
  4116 + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
  4117 + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=",
  4118 + "dev": true
  4119 + },
  4120 + "tmp": {
  4121 + "version": "0.0.33",
  4122 + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
  4123 + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==",
  4124 + "dev": true,
  4125 + "requires": {
  4126 + "os-tmpdir": "~1.0.2"
  4127 + }
  4128 + },
  4129 + "to-object-path": {
  4130 + "version": "0.3.0",
  4131 + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz",
  4132 + "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=",
  4133 + "requires": {
  4134 + "kind-of": "^3.0.2"
  4135 + },
  4136 + "dependencies": {
  4137 + "kind-of": {
  4138 + "version": "3.2.2",
  4139 + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
  4140 + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
  4141 + "requires": {
  4142 + "is-buffer": "^1.1.5"
  4143 + }
  4144 + }
  4145 + }
  4146 + },
  4147 + "to-regex": {
  4148 + "version": "3.0.2",
  4149 + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz",
  4150 + "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==",
  4151 + "optional": true,
  4152 + "requires": {
  4153 + "define-property": "^2.0.2",
  4154 + "extend-shallow": "^3.0.2",
  4155 + "regex-not": "^1.0.2",
  4156 + "safe-regex": "^1.1.0"
  4157 + }
  4158 + },
  4159 + "to-regex-range": {
  4160 + "version": "2.1.1",
  4161 + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz",
  4162 + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=",
  4163 + "optional": true,
  4164 + "requires": {
  4165 + "is-number": "^3.0.0",
  4166 + "repeat-string": "^1.6.1"
  4167 + }
  4168 + },
  4169 + "toidentifier": {
  4170 + "version": "1.0.0",
  4171 + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz",
  4172 + "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw=="
  4173 + },
  4174 + "tough-cookie": {
  4175 + "version": "2.4.3",
  4176 + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz",
  4177 + "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==",
  4178 + "requires": {
  4179 + "psl": "^1.1.24",
  4180 + "punycode": "^1.4.1"
  4181 + },
  4182 + "dependencies": {
  4183 + "punycode": {
  4184 + "version": "1.4.1",
  4185 + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
  4186 + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4="
  4187 + }
  4188 + }
  4189 + },
  4190 + "tslib": {
  4191 + "version": "1.10.0",
  4192 + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz",
  4193 + "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==",
  4194 + "dev": true
  4195 + },
  4196 + "tunnel-agent": {
  4197 + "version": "0.6.0",
  4198 + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
  4199 + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=",
  4200 + "requires": {
  4201 + "safe-buffer": "^5.0.1"
  4202 + }
  4203 + },
  4204 + "tweetnacl": {
  4205 + "version": "0.14.5",
  4206 + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
  4207 + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q="
  4208 + },
  4209 + "type-check": {
  4210 + "version": "0.3.2",
  4211 + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz",
  4212 + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=",
  4213 + "dev": true,
  4214 + "requires": {
  4215 + "prelude-ls": "~1.1.2"
  4216 + }
  4217 + },
  4218 + "type-is": {
  4219 + "version": "1.6.18",
  4220 + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
  4221 + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
  4222 + "requires": {
  4223 + "media-typer": "0.3.0",
  4224 + "mime-types": "~2.1.24"
  4225 + }
  4226 + },
  4227 + "typewise": {
  4228 + "version": "1.0.3",
  4229 + "resolved": "https://registry.npmjs.org/typewise/-/typewise-1.0.3.tgz",
  4230 + "integrity": "sha1-EGeTZUCvl5N8xdz5kiSG6fooRlE=",
  4231 + "requires": {
  4232 + "typewise-core": "^1.2.0"
  4233 + }
  4234 + },
  4235 + "typewise-core": {
  4236 + "version": "1.2.0",
  4237 + "resolved": "https://registry.npmjs.org/typewise-core/-/typewise-core-1.2.0.tgz",
  4238 + "integrity": "sha1-l+uRgFx/VdL5QXSPpQ0xXZke8ZU="
  4239 + },
  4240 + "uid-safe": {
  4241 + "version": "2.1.5",
  4242 + "resolved": "https://registry.npmjs.org/uid-safe/-/uid-safe-2.1.5.tgz",
  4243 + "integrity": "sha512-KPHm4VL5dDXKz01UuEd88Df+KzynaohSL9fBh096KWAxSKZQDI2uBrVqtvRM4rwrIrRRKsdLNML/lnaaVSRioA==",
  4244 + "requires": {
  4245 + "random-bytes": "~1.0.0"
  4246 + }
  4247 + },
  4248 + "union-value": {
  4249 + "version": "1.0.1",
  4250 + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz",
  4251 + "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==",
  4252 + "optional": true,
  4253 + "requires": {
  4254 + "arr-union": "^3.1.0",
  4255 + "get-value": "^2.0.6",
  4256 + "is-extendable": "^0.1.1",
  4257 + "set-value": "^2.0.1"
  4258 + }
  4259 + },
  4260 + "uniqid": {
  4261 + "version": "4.1.1",
  4262 + "resolved": "https://registry.npmjs.org/uniqid/-/uniqid-4.1.1.tgz",
  4263 + "integrity": "sha1-iSIN32t1GuUrX3JISGNShZa7hME=",
  4264 + "requires": {
  4265 + "macaddress": "^0.2.8"
  4266 + }
  4267 + },
  4268 + "unpipe": {
  4269 + "version": "1.0.0",
  4270 + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
  4271 + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw="
  4272 + },
  4273 + "unset-value": {
  4274 + "version": "1.0.0",
  4275 + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz",
  4276 + "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=",
  4277 + "optional": true,
  4278 + "requires": {
  4279 + "has-value": "^0.3.1",
  4280 + "isobject": "^3.0.0"
  4281 + },
  4282 + "dependencies": {
  4283 + "has-value": {
  4284 + "version": "0.3.1",
  4285 + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz",
  4286 + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=",
  4287 + "optional": true,
  4288 + "requires": {
  4289 + "get-value": "^2.0.3",
  4290 + "has-values": "^0.1.4",
  4291 + "isobject": "^2.0.0"
  4292 + },
  4293 + "dependencies": {
  4294 + "isobject": {
  4295 + "version": "2.1.0",
  4296 + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz",
  4297 + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=",
  4298 + "optional": true,
  4299 + "requires": {
  4300 + "isarray": "1.0.0"
  4301 + }
  4302 + }
  4303 + }
  4304 + },
  4305 + "has-values": {
  4306 + "version": "0.1.4",
  4307 + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz",
  4308 + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=",
  4309 + "optional": true
  4310 + }
  4311 + }
  4312 + },
  4313 + "upath": {
  4314 + "version": "1.1.2",
  4315 + "resolved": "https://registry.npmjs.org/upath/-/upath-1.1.2.tgz",
  4316 + "integrity": "sha512-kXpym8nmDmlCBr7nKdIx8P2jNBa+pBpIUFRnKJ4dr8htyYGJFokkr2ZvERRtUN+9SY+JqXouNgUPtv6JQva/2Q==",
  4317 + "optional": true
  4318 + },
  4319 + "uri-js": {
  4320 + "version": "4.2.2",
  4321 + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz",
  4322 + "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==",
  4323 + "requires": {
  4324 + "punycode": "^2.1.0"
  4325 + }
  4326 + },
  4327 + "urix": {
  4328 + "version": "0.1.0",
  4329 + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz",
  4330 + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=",
  4331 + "optional": true
  4332 + },
  4333 + "use": {
  4334 + "version": "3.1.1",
  4335 + "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz",
  4336 + "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==",
  4337 + "optional": true
  4338 + },
  4339 + "util-deprecate": {
  4340 + "version": "1.0.2",
  4341 + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
  4342 + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=",
  4343 + "optional": true
  4344 + },
  4345 + "utils-merge": {
  4346 + "version": "1.0.1",
  4347 + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
  4348 + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM="
  4349 + },
  4350 + "uuid": {
  4351 + "version": "3.3.2",
  4352 + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz",
  4353 + "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA=="
  4354 + },
  4355 + "v8-compile-cache": {
  4356 + "version": "2.0.3",
  4357 + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.0.3.tgz",
  4358 + "integrity": "sha512-CNmdbwQMBjwr9Gsmohvm0pbL954tJrNzf6gWL3K+QMQf00PF7ERGrEiLgjuU3mKreLC2MeGhUsNV9ybTbLgd3w==",
  4359 + "dev": true
  4360 + },
  4361 + "vary": {
  4362 + "version": "1.1.2",
  4363 + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
  4364 + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw="
  4365 + },
  4366 + "verror": {
  4367 + "version": "1.10.0",
  4368 + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz",
  4369 + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=",
  4370 + "requires": {
  4371 + "assert-plus": "^1.0.0",
  4372 + "core-util-is": "1.0.2",
  4373 + "extsprintf": "^1.2.0"
  4374 + }
  4375 + },
  4376 + "which": {
  4377 + "version": "1.3.1",
  4378 + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
  4379 + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
  4380 + "dev": true,
  4381 + "requires": {
  4382 + "isexe": "^2.0.0"
  4383 + }
  4384 + },
  4385 + "which-module": {
  4386 + "version": "2.0.0",
  4387 + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz",
  4388 + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=",
  4389 + "dev": true
  4390 + },
  4391 + "wide-align": {
  4392 + "version": "1.1.3",
  4393 + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz",
  4394 + "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==",
  4395 + "dev": true,
  4396 + "requires": {
  4397 + "string-width": "^1.0.2 || 2"
  4398 + }
  4399 + },
  4400 + "window-size": {
  4401 + "version": "0.1.4",
  4402 + "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.4.tgz",
  4403 + "integrity": "sha1-+OGqHuWlPsW/FR/6CXQqatdpeHY="
  4404 + },
  4405 + "winston": {
  4406 + "version": "2.4.4",
  4407 + "resolved": "https://registry.npmjs.org/winston/-/winston-2.4.4.tgz",
  4408 + "integrity": "sha512-NBo2Pepn4hK4V01UfcWcDlmiVTs7VTB1h7bgnB0rgP146bYhMxX0ypCz3lBOfNxCO4Zuek7yeT+y/zM1OfMw4Q==",
  4409 + "requires": {
  4410 + "async": "~1.0.0",
  4411 + "colors": "1.0.x",
  4412 + "cycle": "1.0.x",
  4413 + "eyes": "0.1.x",
  4414 + "isstream": "0.1.x",
  4415 + "stack-trace": "0.0.x"
  4416 + }
  4417 + },
  4418 + "winston-circular-buffer": {
  4419 + "version": "1.0.0",
  4420 + "resolved": "https://registry.npmjs.org/winston-circular-buffer/-/winston-circular-buffer-1.0.0.tgz",
  4421 + "integrity": "sha1-6ZH3W5n/IFVR4O5HK3XSAdvT4ns=",
  4422 + "requires": {
  4423 + "circular-buffer": "0.0.6"
  4424 + }
  4425 + },
  4426 + "winston-daily-rotate-file": {
  4427 + "version": "1.7.2",
  4428 + "resolved": "https://registry.npmjs.org/winston-daily-rotate-file/-/winston-daily-rotate-file-1.7.2.tgz",
  4429 + "integrity": "sha1-ZQK/opeCT9mC2l5WR8dThXjS+aA=",
  4430 + "requires": {
  4431 + "mkdirp": "0.5.1"
  4432 + }
  4433 + },
  4434 + "wordwrap": {
  4435 + "version": "1.0.0",
  4436 + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz",
  4437 + "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=",
  4438 + "dev": true
  4439 + },
  4440 + "wrap-ansi": {
  4441 + "version": "2.1.0",
  4442 + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz",
  4443 + "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=",
  4444 + "requires": {
  4445 + "string-width": "^1.0.1",
  4446 + "strip-ansi": "^3.0.1"
  4447 + }
  4448 + },
  4449 + "wrappy": {
  4450 + "version": "1.0.2",
  4451 + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
  4452 + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
  4453 + },
  4454 + "wraptile": {
  4455 + "version": "2.0.0",
  4456 + "resolved": "https://registry.npmjs.org/wraptile/-/wraptile-2.0.0.tgz",
  4457 + "integrity": "sha512-Jzt4wTT0DJGucp4VewhbT6YutpOfBh6Ab4r5hKWTvFYsNTCxPi0U8wOsesDk1CQ+VcHyaP36BzCiKRJTROJiTQ=="
  4458 + },
  4459 + "write": {
  4460 + "version": "1.0.3",
  4461 + "resolved": "https://registry.npmjs.org/write/-/write-1.0.3.tgz",
  4462 + "integrity": "sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==",
  4463 + "dev": true,
  4464 + "requires": {
  4465 + "mkdirp": "^0.5.1"
  4466 + }
  4467 + },
  4468 + "y18n": {
  4469 + "version": "3.2.1",
  4470 + "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz",
  4471 + "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE="
  4472 + },
  4473 + "yallist": {
  4474 + "version": "2.1.2",
  4475 + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz",
  4476 + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI="
  4477 + },
  4478 + "yargs": {
  4479 + "version": "3.32.0",
  4480 + "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.32.0.tgz",
  4481 + "integrity": "sha1-AwiOnr+edWtpdRYR0qXvWRSCyZU=",
  4482 + "requires": {
  4483 + "camelcase": "^2.0.1",
  4484 + "cliui": "^3.0.3",
  4485 + "decamelize": "^1.1.1",
  4486 + "os-locale": "^1.4.0",
  4487 + "string-width": "^1.0.1",
  4488 + "window-size": "^0.1.4",
  4489 + "y18n": "^3.2.0"
  4490 + }
  4491 + },
  4492 + "yargs-parser": {
  4493 + "version": "13.0.0",
  4494 + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.0.0.tgz",
  4495 + "integrity": "sha512-w2LXjoL8oRdRQN+hOyppuXs+V/fVAYtpcrRxZuF7Kt/Oc+Jr2uAcVntaUTNT6w5ihoWfFDpNY8CPx1QskxZ/pw==",
  4496 + "dev": true,
  4497 + "requires": {
  4498 + "camelcase": "^5.0.0",
  4499 + "decamelize": "^1.2.0"
  4500 + },
  4501 + "dependencies": {
  4502 + "camelcase": {
  4503 + "version": "5.3.1",
  4504 + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
  4505 + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
  4506 + "dev": true
  4507 + }
  4508 + }
  4509 + },
  4510 + "yargs-unparser": {
  4511 + "version": "1.5.0",
  4512 + "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-1.5.0.tgz",
  4513 + "integrity": "sha512-HK25qidFTCVuj/D1VfNiEndpLIeJN78aqgR23nL3y4N0U/91cOAzqfHlF8n2BvoNDcZmJKin3ddNSvOxSr8flw==",
  4514 + "dev": true,
  4515 + "requires": {
  4516 + "flat": "^4.1.0",
  4517 + "lodash": "^4.17.11",
  4518 + "yargs": "^12.0.5"
  4519 + },
  4520 + "dependencies": {
  4521 + "ansi-regex": {
  4522 + "version": "3.0.0",
  4523 + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
  4524 + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
  4525 + "dev": true
  4526 + },
  4527 + "camelcase": {
  4528 + "version": "5.3.1",
  4529 + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
  4530 + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
  4531 + "dev": true
  4532 + },
  4533 + "cliui": {
  4534 + "version": "4.1.0",
  4535 + "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz",
  4536 + "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==",
  4537 + "dev": true,
  4538 + "requires": {
  4539 + "string-width": "^2.1.1",
  4540 + "strip-ansi": "^4.0.0",
  4541 + "wrap-ansi": "^2.0.0"
  4542 + }
  4543 + },
  4544 + "get-caller-file": {
  4545 + "version": "1.0.3",
  4546 + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz",
  4547 + "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==",
  4548 + "dev": true
  4549 + },
  4550 + "invert-kv": {
  4551 + "version": "2.0.0",
  4552 + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz",
  4553 + "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==",
  4554 + "dev": true
  4555 + },
  4556 + "is-fullwidth-code-point": {
  4557 + "version": "2.0.0",
  4558 + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
  4559 + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
  4560 + "dev": true
  4561 + },
  4562 + "lcid": {
  4563 + "version": "2.0.0",
  4564 + "resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz",
  4565 + "integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==",
  4566 + "dev": true,
  4567 + "requires": {
  4568 + "invert-kv": "^2.0.0"
  4569 + }
  4570 + },
  4571 + "os-locale": {
  4572 + "version": "3.1.0",
  4573 + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-3.1.0.tgz",
  4574 + "integrity": "sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q==",
  4575 + "dev": true,
  4576 + "requires": {
  4577 + "execa": "^1.0.0",
  4578 + "lcid": "^2.0.0",
  4579 + "mem": "^4.0.0"
  4580 + }
  4581 + },
  4582 + "require-main-filename": {
  4583 + "version": "1.0.1",
  4584 + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz",
  4585 + "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=",
  4586 + "dev": true
  4587 + },
  4588 + "string-width": {
  4589 + "version": "2.1.1",
  4590 + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
  4591 + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
  4592 + "dev": true,
  4593 + "requires": {
  4594 + "is-fullwidth-code-point": "^2.0.0",
  4595 + "strip-ansi": "^4.0.0"
  4596 + }
  4597 + },
  4598 + "strip-ansi": {
  4599 + "version": "4.0.0",
  4600 + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
  4601 + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
  4602 + "dev": true,
  4603 + "requires": {
  4604 + "ansi-regex": "^3.0.0"
  4605 + }
  4606 + },
  4607 + "yargs": {
  4608 + "version": "12.0.5",
  4609 + "resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.5.tgz",
  4610 + "integrity": "sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw==",
  4611 + "dev": true,
  4612 + "requires": {
  4613 + "cliui": "^4.0.0",
  4614 + "decamelize": "^1.2.0",
  4615 + "find-up": "^3.0.0",
  4616 + "get-caller-file": "^1.0.1",
  4617 + "os-locale": "^3.0.0",
  4618 + "require-directory": "^2.1.1",
  4619 + "require-main-filename": "^1.0.1",
  4620 + "set-blocking": "^2.0.0",
  4621 + "string-width": "^2.0.0",
  4622 + "which-module": "^2.0.0",
  4623 + "y18n": "^3.2.1 || ^4.0.0",
  4624 + "yargs-parser": "^11.1.1"
  4625 + }
  4626 + },
  4627 + "yargs-parser": {
  4628 + "version": "11.1.1",
  4629 + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-11.1.1.tgz",
  4630 + "integrity": "sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ==",
  4631 + "dev": true,
  4632 + "requires": {
  4633 + "camelcase": "^5.0.0",
  4634 + "decamelize": "^1.2.0"
  4635 + }
  4636 + }
  4637 + }
  4638 + },
  4639 + "zames": {
  4640 + "version": "2.0.1",
  4641 + "resolved": "https://registry.npmjs.org/zames/-/zames-2.0.1.tgz",
  4642 + "integrity": "sha512-gJJxR12zrhOBl96d/9PorsFAEU+xUOtxOwO2lUofj8a40ahx+nxjQftzD35/GdxLzlJ5vTWh4oG81TpmKh/+hw==",
  4643 + "requires": {
  4644 + "currify": "^3.0.0",
  4645 + "es6-promisify": "^6.0.0"
  4646 + }
  4647 + }
  4648 + }
  4649 +}
... ... @@ -0,0 +1,33 @@
  1 +{
  2 + "name": "komodo-center-sms",
  3 + "version": "0.9.0",
  4 + "description": "SMS center for Komodo",
  5 + "main": "index.js",
  6 + "scripts": {
  7 + "test": "mocha"
  8 + },
  9 + "repository": {
  10 + "type": "git",
  11 + "url": "http://gitlab.kodesumber.com/komodo/komodo-center-sms.git"
  12 + },
  13 + "keywords": [
  14 + "komodo",
  15 + "tektrans",
  16 + "ppob",
  17 + "sms"
  18 + ],
  19 + "author": "Adhidarma Hadiwinoto <me@adhisimon.org>",
  20 + "license": "ISC",
  21 + "dependencies": {
  22 + "express": "^4.17.1",
  23 + "komodo-center-messaging-client-lib": "git+http://gitlab.kodesumber.com/komodo/komodo-center-messaging-client-lib.git",
  24 + "komodo-sdk": "git+http://gitlab.kodesumber.com/komodo/komodo-sdk.git",
  25 + "request": "^2.88.0",
  26 + "uuid": "^3.3.2"
  27 + },
  28 + "devDependencies": {
  29 + "eslint": "^6.1.0",
  30 + "mocha": "^6.2.0",
  31 + "should": "^13.2.3"
  32 + }
  33 +}
... ... @@ -0,0 +1,50 @@
  1 +"use strict";
  2 +
  3 +/* global describe it */
  4 +
  5 +const should = require('should');
  6 +
  7 +const modems = require('../lib/modems');
  8 +
  9 +describe('#modems', function() {
  10 +
  11 + describe('#getModemUrl', function() {
  12 +
  13 + const modemsConfig = {
  14 + SMS0: {
  15 + url: "http://localhost:8888/"
  16 + }
  17 + }
  18 +
  19 + it('should return correct url', function() {
  20 + modems.getModemUrl('SMS0', modemsConfig).should.equal('http://localhost:8888/');
  21 + })
  22 +
  23 + it ('should handle missing modems', function() {
  24 + should.not.exists(modems.getModemUrl('SMS0', null));
  25 + should.not.exists(modems.getModemUrl('SMS0', {}));
  26 + should.not.exists(modems.getModemUrl('SMS1', modemsConfig));
  27 + })
  28 + })
  29 +
  30 + describe('#removeSuffixFromNumber', function() {
  31 + const config = {
  32 + number_suffix: '@phonenumber'
  33 + }
  34 +
  35 + it('should return correct number', function() {
  36 + modems.removeSuffixFromNumber('08181234@phonenumber', config).should.equal('08181234');
  37 + })
  38 +
  39 + it ('should return correct number without suffix in the number', function() {
  40 + modems.removeSuffixFromNumber('08181234', config).should.equal('08181234');
  41 + })
  42 +
  43 + it ('should return correct number without suffix in config', function() {
  44 + modems.removeSuffixFromNumber('08181234', null).should.equal('08181234');
  45 + modems.removeSuffixFromNumber('08181234', {}).should.equal('08181234');
  46 + modems.removeSuffixFromNumber('08181234@phonenumber', {}).should.equal('08181234');
  47 + })
  48 + })
  49 +
  50 +})
0 51 \ No newline at end of file