From 8076444261dbad6a9b5c99bf0c17daffe8df39f4 Mon Sep 17 00:00:00 2001 From: Kirill Date: Tue, 28 Jan 2020 13:05:56 +0200 Subject: [PATCH 1/2] update sailor to 2.6.1 replace logger with embedded add docker build type --- .eslintrc.js | 167 +--- CHANGELOG.md | 6 + component.json | 1 + lib/actions/attachmentToJson.js | 100 +-- lib/actions/jsonToXml.js | 60 +- lib/actions/parse.js | 84 +- lib/actions/xmlToJson.js | 16 +- lib/xml2Json.js | 51 +- package-lock.json | 1311 ++++++++++++++++--------------- package.json | 45 +- spec/attachment2xml.spec.js | 258 +++--- spec/json2xml.spec.js | 61 +- spec/xml2json.spec.js | 57 +- 13 files changed, 1067 insertions(+), 1150 deletions(-) diff --git a/.eslintrc.js b/.eslintrc.js index 0cf0f5d..346d9e4 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -1,162 +1,7 @@ -'use strict'; - -const OFF = 'off'; -const ERROR = 'error'; -const WARN = 'warn'; -const ALWAYS = 'always'; -const NEVER = 'never'; - module.exports = { - 'parserOptions': { - ecmaVersion: 2017 - }, - 'env': { - es6: true, - node: true, - mocha: true - }, - 'plugins': [ - 'mocha' - ], - 'extends': 'airbnb-base', - 'rules': { - 'indent': [ - ERROR, - 4, - { - SwitchCase: 1 - } - ], - 'linebreak-style': ERROR, - 'quotes': [ - WARN, - 'single', - { - avoidEscape: true, - allowTemplateLiterals: true - } - ], - 'semi': [ - ERROR, - ALWAYS - ], - 'func-names': ERROR, - 'no-empty': ERROR, - 'no-empty-function': ERROR, - 'brace-style': [ - ERROR, - '1tbs', - { allowSingleLine: true } - ], - 'no-multiple-empty-lines': ERROR, - 'no-multi-spaces': ERROR, - 'one-var': [ - ERROR, - NEVER - ], - 'quote-props': [ - WARN, - 'consistent-as-needed' - ], - 'key-spacing': ERROR, - 'space-unary-ops': [ - ERROR, - { - words: true, - nonwords: false - } - ], - 'no-spaced-func': ERROR, - 'space-before-function-paren': [ - ERROR, - { - anonymous: ALWAYS, - named: NEVER - } - ], - 'arrow-body-style': [ - WARN, - 'as-needed' - ], - 'array-bracket-spacing': ERROR, - 'space-in-parens': ERROR, - 'comma-dangle': ERROR, - 'no-trailing-spaces': ERROR, - 'yoda': ERROR, - 'max-len': [ - ERROR, - 120 - ], - 'camelcase': [ - ERROR, - { - properties: 'never' - } - ], - 'new-cap': [ - WARN, - { - capIsNewExceptions: ['Q'] - } - ], - 'comma-style': ERROR, - 'curly': ERROR, - 'object-curly-spacing': [ - WARN, - ALWAYS - ], - 'object-curly-newline': [ - ERROR, - { - ObjectExpression: { - minProperties: 1 - }, - ObjectPattern: { - multiline: true, - minProperties: 5 - } - } - ], - 'object-property-newline': ERROR, - 'template-curly-spacing': ERROR, - 'dot-notation': ERROR, - 'dot-location': [ - ERROR, - 'property' - ], - 'func-style': [ - ERROR, - 'declaration', - { - allowArrowFunctions: true - } - ], - 'eol-last': ERROR, - 'space-infix-ops': ERROR, - 'keyword-spacing': ERROR, - 'space-before-blocks': ERROR, - 'no-invalid-this': ERROR, - 'consistent-this': ERROR, - 'no-this-before-super': ERROR, - 'no-unreachable': ERROR, - 'no-sparse-arrays': ERROR, - 'array-callback-return': ERROR, - 'strict': [ - WARN, - 'global' - ], - 'eqeqeq': ERROR, - 'no-use-before-define': WARN, - 'no-undef': ERROR, - 'no-unused-vars': WARN, - 'no-mixed-spaces-and-tabs': ERROR, - 'operator-linebreak': [ - ERROR, - 'before' - ], - 'no-console': [ - OFF - ], - "mocha/no-exclusive-tests": "error" - } -}; \ No newline at end of file + 'extends': 'airbnb-base', + 'env': { + 'mocha': true, + 'node': true, + } +}; diff --git a/CHANGELOG.md b/CHANGELOG.md index 302ae14..22ef234 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,9 @@ +## 1.2.0 (January 27, 2020) + +* Update sailor version to 2.6.1 +* Refactor console.log to built in sailor logger +* Change build type to docker + ## 1.1.1 (September 25, 2019) * Upload attachments with component commons library diff --git a/component.json b/component.json index 1600db1..d342f33 100644 --- a/component.json +++ b/component.json @@ -1,6 +1,7 @@ { "title": "XML", "description": "Component to work with XML files", + "buildType": "docker", "actions": { "xmlToJson": { "title": "XML to JSON", diff --git a/lib/actions/attachmentToJson.js b/lib/actions/attachmentToJson.js index f0ffd3b..69b6655 100644 --- a/lib/actions/attachmentToJson.js +++ b/lib/actions/attachmentToJson.js @@ -1,3 +1,4 @@ +/* eslint-disable no-await-in-loop */ const sizeof = require('object-sizeof'); const { AttachmentProcessor } = require('@elastic.io/component-commons-library'); const { messages } = require('elasticio-node'); @@ -6,69 +7,70 @@ const xml2Json = require('../xml2Json.js'); const MAX_FILE_SIZE = 5242880; // 5 MiB -function checkFileName(fileName, pattern) { - if (fileName === undefined) { - return false; - } +function checkFileName(self, fileName, pattern) { + if (fileName === undefined) { + return false; + } - if (!pattern.test(fileName)) { - console.log('%s does not match pattern: \'%s\'', fileName, pattern); - return false; - } + if (!pattern.test(fileName)) { + self.logger.debug('%s does not match pattern: \'%s\'', fileName, pattern); + return false; + } - if (fileName.split('.').pop() !== 'xml') { - console.log('%s is not .xml file: ', fileName); - return false; - } + if (fileName.split('.').pop() !== 'xml') { + self.logger.debug('%s is not .xml file: ', fileName); + return false; + } - return true; + return true; } module.exports.process = async function processAction(msg, cfg) { - const { attachments } = msg; - const pattern = new RegExp(cfg !== undefined ? cfg.pattern || '(.xml)' : '(.xml)'); - let foundXML = false; + const self = this; + const { attachments } = msg; + const pattern = new RegExp(cfg !== undefined ? cfg.pattern || '(.xml)' : '(.xml)'); + let foundXML = false; - console.log('Attachment to XML started'); - console.log('Found %s attachments', Object.keys(attachments || {}).length); + self.logger.info('Attachment to XML started'); + self.logger.info('Found %s attachments', Object.keys(attachments || {}).length); - // eslint-disable-next-line no-restricted-syntax - for (const key of Object.keys(attachments)) { - const attachment = attachments[key]; - const fileName = key; - let fileSize = attachment.size; // get file size based attachment object may not be define or be accurate - console.log('Processing attachment=%s', fileName); + // eslint-disable-next-line no-restricted-syntax + for (const key of Object.keys(attachments)) { + const attachment = attachments[key]; + const fileName = key; + // get file size based attachment object may not be define or be accurate + let fileSize = attachment.size; + self.logger.info('Processing attachment=%s', fileName); - if (checkFileName(fileName, pattern)) { - if (fileSize === undefined || fileSize < MAX_FILE_SIZE) { - // eslint-disable-next-line no-await-in-loop - const response = await new AttachmentProcessor().getAttachment(attachment.url, 'arraybuffer'); + if (checkFileName(self, fileName, pattern)) { + if (fileSize === undefined || fileSize < MAX_FILE_SIZE) { + // eslint-disable-next-line no-await-in-loop + const response = await new AttachmentProcessor().getAttachment(attachment.url, 'arraybuffer'); - if (response.status >= 400) { - throw new Error(`Error in making request to ${attachment.url} + if (response.status >= 400) { + throw new Error(`Error in making request to ${attachment.url} Status code: ${response.status}, Body: ${Buffer.from(response.data, 'binary').toString('base64')}`); - } + } - const responseBodyString = Buffer.from(response.data, 'binary').toString('utf-8'); - fileSize = sizeof(responseBodyString); + const responseBodyString = Buffer.from(response.data, 'binary').toString('utf-8'); + fileSize = sizeof(responseBodyString); - if (fileSize < MAX_FILE_SIZE) { - // eslint-disable-next-line no-await-in-loop - const returnMsg = await xml2Json.process(responseBodyString); - this.emit('data', messages.newMessageWithBody(returnMsg.body)); - foundXML = true; - } else { - throw new Error(`Attachment ${key} is too large to be processed my XML component.` - + ` File limit is: ${MAX_FILE_SIZE} byte, file given was: ${fileSize} byte.`); - } - } else { - throw new Error(`Attachment ${key} is too large to be processed my XML component.` - + ` File limit is: ${MAX_FILE_SIZE} byte, file given was: ${fileSize} byte.`); - } + if (fileSize < MAX_FILE_SIZE) { + const returnMsg = await xml2Json.process(this, responseBodyString); + foundXML = true; + await self.emit('data', messages.newMessageWithBody(returnMsg.body)); + } else { + throw new Error(`Attachment ${key} is too large to be processed my XML component.` + + ` File limit is: ${MAX_FILE_SIZE} byte, file given was: ${fileSize} byte.`); } + } else { + throw new Error(`Attachment ${key} is too large to be processed my XML component.` + + ` File limit is: ${MAX_FILE_SIZE} byte, file given was: ${fileSize} byte.`); + } } - if (!foundXML) { - console.log(`No XML files that match the pattern found with in attachments. Pattern: ${pattern}`); - } + } + if (!foundXML) { + self.logger.info(`No XML files that match the pattern found with in attachments. Pattern: ${pattern}`); + } }; diff --git a/lib/actions/jsonToXml.js b/lib/actions/jsonToXml.js index afe68c1..07ad506 100644 --- a/lib/actions/jsonToXml.js +++ b/lib/actions/jsonToXml.js @@ -20,19 +20,19 @@ const propNameIsInvalid = (key) => /^\d/.test(key); * @param {String} key */ function validateJsonPropNames(value, key) { - if (propNameIsInvalid(key)) { - const message = 'Can\'t create XML element from prop that starts with digit.' - + 'See XML naming rules https://www.w3schools.com/xml/xml_elements.asp'; - throw new Error(`${ERROR}: ${key}. ${message}`); - } + if (propNameIsInvalid(key)) { + const message = 'Can\'t create XML element from prop that starts with digit.' + + 'See XML naming rules https://www.w3schools.com/xml/xml_elements.asp'; + throw new Error(`${ERROR}: ${key}. ${message}`); + } - if (!_.isPlainObject(value)) { - return; - } + if (!_.isPlainObject(value)) { + return; + } - Object.keys(value).forEach((prop) => { - validateJsonPropNames(value[prop], prop); - }); + Object.keys(value).forEach((prop) => { + validateJsonPropNames(value[prop], prop); + }); } /** @@ -42,28 +42,28 @@ function validateJsonPropNames(value, key) { * @param cfg configuration that is account information and configuration field values */ function processAction(msg, cfg) { - console.log('Action started, message=%j cfg=%j', msg, cfg); - const options = { - trim: false, - normalize: false, - explicitArray: false, - normalizeTags: false, - attrkey: '_attr', - tagNameProcessors: [ - (name) => name.replace(':', '-'), - ], - }; - const builder = new xml2js.Builder(options); + this.logger.debug('Action started, message=%j cfg=%j', msg, cfg); + const options = { + trim: false, + normalize: false, + explicitArray: false, + normalizeTags: false, + attrkey: '_attr', + tagNameProcessors: [ + (name) => name.replace(':', '-'), + ], + }; + const builder = new xml2js.Builder(options); - const jsonToTransform = msg.body; + const jsonToTransform = msg.body; - validateJsonPropNames(jsonToTransform); + validateJsonPropNames(jsonToTransform); - const result = builder.buildObject(jsonToTransform); - console.log('Successfully converted body to XML result=%s', result); - return eioUtils.newMessageWithBody({ - xmlString: result, - }); + const result = builder.buildObject(jsonToTransform); + this.logger.debug('Successfully converted body to XML result=%s', result); + return eioUtils.newMessageWithBody({ + xmlString: result, + }); } module.exports.process = processAction; diff --git a/lib/actions/parse.js b/lib/actions/parse.js index e043919..9f54d30 100644 --- a/lib/actions/parse.js +++ b/lib/actions/parse.js @@ -17,52 +17,52 @@ let unmarshaller; * @param cfg configuration that is account information and configuration field values */ module.exports.process = function processAction(msg, cfg) { - co(function* gen() { - console.log('Action started cfg=%j', cfg); - // We need to make sure we execute initialization only once - yield lock.acquireAsync(); - try { - if (!unmarshaller) { - console.log('Mappings are not yet initialized, let us do that now'); - const cmd = `java -jar node_modules/jsonix/lib/jsonix-schema-compiler-full.jar \ + co(function* gen() { + this.logger.debug('Action started cfg=%j', cfg); + // We need to make sure we execute initialization only once + yield lock.acquireAsync(); + try { + if (!unmarshaller) { + this.logger.info('Mappings are not yet initialized, let us do that now'); + const cmd = `java -jar node_modules/jsonix/lib/jsonix-schema-compiler-full.jar \ -d mappings \ -p index \ -generateJsonSchema \ -compact \ -logLevel DEBUG \ "${cfg.schemaUri}"`; - console.log('Starting JAVA process cmd=%s', cmd); - const out = yield exec(cmd); - console.log('%s\nGeneration completed', out); - console.log('Loading mappings from ./mappings/index.js'); - // eslint-disable-next-line global-require, import/no-unresolved - const mappings = require('../../mappings'); - console.log('Constructing Jsonix context'); - const context = new Jsonix.Context([mappings.index]); - unmarshaller = context.createUnmarshaller(); - console.log('Initialization successfully completed'); - } - } finally { - // Release the lock - lock.release(); - } - console.log('Trying to find input data'); - if (msg.body.xml && typeof msg.body.xml === 'string') { - console.log('Found input data in incoming message length of XML is length=%s', msg.body.xml.length); - const result = unmarshaller.unmarshalString(msg.body.xml); - console.log('Parsed XML to JSON json=%j', result); - this.emit('data', messages.newMessageWithBody(result)); - } else if (msg.attachments && Object.keys(msg.attachments).length > 0) { - console.log('Found attachments in the message keys=%s', Object.keys(msg.attachments)); - this.emit('data', msg); - } else { - console.log('No data XML payload found in the incoming message or it\'s attachments, ' - + 'no processing will be done msg=%j', msg); - } - this.emit('end'); - }.bind(this)).catch((err) => { - console.log('Error occurred', err.stack || err); - this.emit('error', err); - this.emit('end'); - }); + this.logger.debug('Starting JAVA process cmd=%s', cmd); + const out = yield exec(cmd); + this.logger.debug('%s\nGeneration completed', out); + this.logger.debug('Loading mappings from ./mappings/index.js'); + // eslint-disable-next-line global-require, import/no-unresolved + const mappings = require('../../mappings'); + this.logger.debug('Constructing Jsonix context'); + const context = new Jsonix.Context([mappings.index]); + unmarshaller = context.createUnmarshaller(); + this.logger.info('Initialization successfully completed'); + } + } finally { + // Release the lock + lock.release(); + } + this.logger.info('Trying to find input data'); + if (msg.body.xml && typeof msg.body.xml === 'string') { + this.logger.info('Found input data in incoming message length of XML is length=%s', msg.body.xml.length); + const result = unmarshaller.unmarshalString(msg.body.xml); + this.logger.debug('Parsed XML to JSON json=%j', result); + this.emit('data', messages.newMessageWithBody(result)); + } else if (msg.attachments && Object.keys(msg.attachments).length > 0) { + this.logger.info('Found attachments in the message keys=%s', Object.keys(msg.attachments)); + this.emit('data', msg); + } else { + this.logger.debug('No data XML payload found in the incoming message or it\'s attachments, ' + + 'no processing will be done msg=%j', msg); + } + this.emit('end'); + }.bind(this)).catch((err) => { + this.logger.info('Error occurred', err.stack || err); + this.emit('error', err); + this.emit('end'); + }); }; diff --git a/lib/actions/xmlToJson.js b/lib/actions/xmlToJson.js index f417e82..a40897d 100644 --- a/lib/actions/xmlToJson.js +++ b/lib/actions/xmlToJson.js @@ -8,12 +8,12 @@ const xml2Json = require('../xml2Json.js'); * @param cfg configuration that is account information and configuration field values */ module.exports.process = function processAction(msg, cfg) { - console.log('Action started, message=%j cfg=%j', msg, cfg); - if (!msg.body || !msg.body.xmlString) { - this.emit('error', 'Missing XML String as input'); - this.emit('end'); - return; - } - // eslint-disable-next-line consistent-return - return xml2Json.process(msg.body.xmlString); + this.logger.debug('Action started, message=%j cfg=%j', msg, cfg); + if (!msg.body || !msg.body.xmlString) { + this.emit('error', 'Missing XML String as input'); + this.emit('end'); + return; + } + // eslint-disable-next-line consistent-return + return xml2Json.process(this, msg.body.xmlString); }; diff --git a/lib/xml2Json.js b/lib/xml2Json.js index 695ac5e..2ac1e43 100644 --- a/lib/xml2Json.js +++ b/lib/xml2Json.js @@ -2,29 +2,34 @@ const { messages } = require('elasticio-node'); const xml2js = require('xml2js'); const invalidXmlMessage = 'Given XML is not valid or the file can not be read. ' - + 'See XML naming rules https://www.w3schools.com/xml/xml_elements.asp'; + + 'See XML naming rules https://www.w3schools.com/xml/xml_elements.asp'; -module.exports.process = function xml2Json(xmlString) { - const parser = new xml2js.Parser({ - trim: false, - normalize: false, - explicitArray: false, - normalizeTags: false, - attrkey: '_attr', - tagNameProcessors: [ - (name) => name.replace(':', '-'), - ], - }); +module.exports.process = async function xml2Json(self, xmlString) { + const parser = new xml2js.Parser({ + trim: false, + normalize: false, + explicitArray: false, + normalizeTags: false, + attrkey: '_attr', + tagNameProcessors: [ + (name) => name.replace(':', '-'), + ], + }); - return new Promise((resolve, reject) => { - parser.parseString(xmlString, (err, data) => { - if (err) { - console.log('Error occurred', err.stack || err); - reject(new Error(invalidXmlMessage)); - } else { - console.log('Successfully converted XML to JSON.'); - resolve(messages.newMessageWithBody(data)); - } - }); - }); + // eslint-disable-next-line func-names,no-shadow + const returnFunc = function (self) { + return new Promise(((resolve, reject) => { + parser.parseString(xmlString, (err, data) => { + if (err) { + self.logger.info('Error occurred', err.stack || err); + reject(new Error(invalidXmlMessage)); + } else { + self.logger.info('Successfully converted XML to JSON'); + resolve(messages.newMessageWithBody(data)); + } + }); + })); + }; + + return returnFunc(self); }; diff --git a/package-lock.json b/package-lock.json index 3e326b0..ecdc94d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,7 +10,7 @@ "integrity": "sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA==", "dev": true, "requires": { - "@babel/highlight": "^7.0.0" + "@babel/highlight": "7.0.0" } }, "@babel/generator": { @@ -19,11 +19,11 @@ "integrity": "sha512-ZoCZGcfIJFJuZBqxcY9OjC1KW2lWK64qrX1o4UYL3yshVhwKFYgzpWZ0vvtGMNJdTlvkw0W+HR1VnYN8q3QPFQ==", "dev": true, "requires": { - "@babel/types": "^7.1.3", - "jsesc": "^2.5.1", - "lodash": "^4.17.10", - "source-map": "^0.5.0", - "trim-right": "^1.0.1" + "@babel/types": "7.1.3", + "jsesc": "2.5.1", + "lodash": "4.17.11", + "source-map": "0.5.7", + "trim-right": "1.0.1" } }, "@babel/helper-function-name": { @@ -32,9 +32,9 @@ "integrity": "sha512-A95XEoCpb3TO+KZzJ4S/5uW5fNe26DjBGqf1o9ucyLyCmi1dXq/B3c8iaWTfBk3VvetUxl16e8tIrd5teOCfGw==", "dev": true, "requires": { - "@babel/helper-get-function-arity": "^7.0.0", - "@babel/template": "^7.1.0", - "@babel/types": "^7.0.0" + "@babel/helper-get-function-arity": "7.0.0", + "@babel/template": "7.1.2", + "@babel/types": "7.1.3" } }, "@babel/helper-get-function-arity": { @@ -43,7 +43,7 @@ "integrity": "sha512-r2DbJeg4svYvt3HOS74U4eWKsUAMRH01Z1ds1zx8KNTPtpTL5JAsdFv8BNyOpVqdFhHkkRDIg5B4AsxmkjAlmQ==", "dev": true, "requires": { - "@babel/types": "^7.0.0" + "@babel/types": "7.1.3" } }, "@babel/helper-split-export-declaration": { @@ -52,7 +52,7 @@ "integrity": "sha512-MXkOJqva62dfC0w85mEf/LucPPS/1+04nmmRMPEBUB++hiiThQ2zPtX/mEWQ3mtzCEjIJvPY8nuwxXtQeQwUag==", "dev": true, "requires": { - "@babel/types": "^7.0.0" + "@babel/types": "7.1.3" } }, "@babel/highlight": { @@ -61,9 +61,9 @@ "integrity": "sha512-UFMC4ZeFC48Tpvj7C8UgLvtkaUuovQX+5xNWrsIoMG8o2z+XFKjKaN9iVmS84dPwVN00W4wPmqvYoZF3EGAsfw==", "dev": true, "requires": { - "chalk": "^2.0.0", - "esutils": "^2.0.2", - "js-tokens": "^4.0.0" + "chalk": "2.4.1", + "esutils": "2.0.2", + "js-tokens": "4.0.0" }, "dependencies": { "ansi-styles": { @@ -72,7 +72,7 @@ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { - "color-convert": "^1.9.0" + "color-convert": "1.9.3" } }, "chalk": { @@ -81,9 +81,9 @@ "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", "dev": true, "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" + "ansi-styles": "3.2.1", + "escape-string-regexp": "1.0.5", + "supports-color": "5.5.0" } }, "has-flag": { @@ -98,7 +98,7 @@ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, "requires": { - "has-flag": "^3.0.0" + "has-flag": "3.0.0" } } } @@ -115,9 +115,9 @@ "integrity": "sha512-SY1MmplssORfFiLDcOETrW7fCLl+PavlwMh92rrGcikQaRq4iWPVH0MpwPpY3etVMx6RnDjXtr6VZYr/IbP/Ag==", "dev": true, "requires": { - "@babel/code-frame": "^7.0.0", - "@babel/parser": "^7.1.2", - "@babel/types": "^7.1.2" + "@babel/code-frame": "7.0.0", + "@babel/parser": "7.1.3", + "@babel/types": "7.1.3" } }, "@babel/traverse": { @@ -126,15 +126,15 @@ "integrity": "sha512-my9mdrAIGdDiSVBuMjpn/oXYpva0/EZwWL3sm3Wcy/AVWO2eXnsoZruOT9jOGNRXU8KbCIu5zsKnXcAJ6PcV6Q==", "dev": true, "requires": { - "@babel/code-frame": "^7.0.0", - "@babel/generator": "^7.1.3", - "@babel/helper-function-name": "^7.1.0", - "@babel/helper-split-export-declaration": "^7.0.0", - "@babel/parser": "^7.1.3", - "@babel/types": "^7.1.3", - "debug": "^3.1.0", - "globals": "^11.1.0", - "lodash": "^4.17.10" + "@babel/code-frame": "7.0.0", + "@babel/generator": "7.1.3", + "@babel/helper-function-name": "7.1.0", + "@babel/helper-split-export-declaration": "7.0.0", + "@babel/parser": "7.1.3", + "@babel/types": "7.1.3", + "debug": "3.2.6", + "globals": "11.8.0", + "lodash": "4.17.11" }, "dependencies": { "debug": { @@ -143,7 +143,7 @@ "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", "dev": true, "requires": { - "ms": "^2.1.1" + "ms": "2.1.1" } }, "globals": { @@ -166,44 +166,47 @@ "integrity": "sha512-RpPOVfK+yatXyn8n4PB1NW6k9qjinrXrRR8ugBN8fD6hCy5RXI6PSbVqpOJBO9oSaY7Nom4ohj35feb0UR9hSA==", "dev": true, "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.10", - "to-fast-properties": "^2.0.0" + "esutils": "2.0.2", + "lodash": "4.17.11", + "to-fast-properties": "2.0.0" } }, "@elastic.io/component-commons-library": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/@elastic.io/component-commons-library/-/component-commons-library-0.0.3.tgz", - "integrity": "sha512-ZmGUFvIvm4qvngoscBJry+isWv0G+NUiEmYrnqKcwW9YokOBI/7ESnTyynXG7qI5cPV4ohxhLhb6WDBwLnJ3RQ==", + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/@elastic.io/component-commons-library/-/component-commons-library-0.0.7.tgz", + "integrity": "sha512-35g3FXoNrZ4a0uUL0vIahbuSPrqv1lzZ9OQF1lYrP7dMFxuJRr+1L9TqpBnmyoqrXSjbrcyszq7FCBnv7WtYcA==", "requires": { + "@elastic.io/jsonata-moment": "1.1.4", "@types/node": "8.10.51", "axios": "0.18.1", "bunyan": "1.8.12", "bunyan-format": "0.2.1", "bunyan-serializers": "0.0.2", + "elasticio-node": "0.0.9", "elasticio-rest-node": "1.2.3", "remove-leading-slash": "1.0.1", "remove-trailing-slash": "0.1.0", "request": "2.88.0", "typescript": "3.4.4" - }, - "dependencies": { - "elasticio-rest-node": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/elasticio-rest-node/-/elasticio-rest-node-1.2.3.tgz", - "integrity": "sha512-9OBmI/gKnIXOq8RJFO1VHHyaVn8oImSHdGE7EAZy9A6N7yBU0Y9qbtv6sA/VK7+NQprkFLvTxH3lHyy+BCgqkg==", - "requires": { - "lodash": "^3.10.1", - "natives": "^1.1.6", - "q": "^1.4.1", - "requestretry": "^3.1.0" - } - }, - "lodash": { - "version": "3.10.1", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz", - "integrity": "sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y=" - } + } + }, + "@elastic.io/component-logger": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/@elastic.io/component-logger/-/component-logger-0.0.1.tgz", + "integrity": "sha512-H+xdlkjoHsikPkdTGB7mskkzGY36i8zj0F6IXkGjdz98Hz7HzO0iE5ORNGgTw6naFgDhAe7lmKEnDjre3ENUkQ==", + "dev": true, + "requires": { + "bunyan": "1.8.12", + "bunyan-format": "0.2.1", + "bunyan-serializers": "0.0.2" + } + }, + "@elastic.io/jsonata-moment": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@elastic.io/jsonata-moment/-/jsonata-moment-1.1.4.tgz", + "integrity": "sha512-4naVyc7boHVBKgRi10Fu6cbNgb870PLJftpVaGUDbNGBqKiRYLI3fTx1YXLWegUSlWA2QsJoUqtFqymWZWQrFw==", + "requires": { + "jsonata": "1.7.0" } }, "@types/node": { @@ -233,10 +236,10 @@ "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", "requires": { - "co": "^4.6.0", - "fast-deep-equal": "^1.0.0", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.3.0" + "co": "4.6.0", + "fast-deep-equal": "1.0.0", + "fast-json-stable-stringify": "2.0.0", + "json-schema-traverse": "0.3.1" } }, "amdefine": { @@ -249,10 +252,10 @@ "resolved": "https://registry.npmjs.org/amqplib/-/amqplib-0.5.1.tgz", "integrity": "sha1-fMz+ur5WwumE6noiQ/fO/m+/xs8=", "requires": { - "bitsyntax": "~0.0.4", - "bluebird": "^3.4.6", + "bitsyntax": "0.0.4", + "bluebird": "3.5.3", "buffer-more-ints": "0.0.2", - "readable-stream": "1.x >=1.1.9" + "readable-stream": "1.1.14" } }, "ansi-escapes": { @@ -273,7 +276,7 @@ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { - "color-convert": "^1.9.0" + "color-convert": "1.9.3" } }, "ansicolors": { @@ -292,7 +295,7 @@ "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "dev": true, "requires": { - "sprintf-js": "~1.0.2" + "sprintf-js": "1.0.3" } }, "array-includes": { @@ -301,8 +304,8 @@ "integrity": "sha1-GEtI9i2S10UrsxsyMWXH+L0CJm0=", "dev": true, "requires": { - "define-properties": "^1.1.2", - "es-abstract": "^1.7.0" + "define-properties": "1.1.3", + "es-abstract": "1.14.2" } }, "asn1": { @@ -310,7 +313,7 @@ "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", "requires": { - "safer-buffer": "~2.1.0" + "safer-buffer": "2.1.2" } }, "assert-plus": { @@ -351,7 +354,7 @@ "integrity": "sha512-0BfJq4NSfQXd+SkFdrvFbG7addhYSBA2mQwISr46pD6E5iqkWg02RAs8vyTT/j0RTnoYmeXauBuSv1qKwR179g==", "requires": { "follow-redirects": "1.5.10", - "is-buffer": "^2.0.2" + "is-buffer": "2.0.4" } }, "balanced-match": { @@ -369,7 +372,7 @@ "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", "requires": { - "tweetnacl": "^0.14.3" + "tweetnacl": "0.14.5" } }, "bitsyntax": { @@ -390,7 +393,7 @@ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz", "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=", "requires": { - "balanced-match": "^1.0.0", + "balanced-match": "1.0.0", "concat-map": "0.0.1" } }, @@ -405,8 +408,8 @@ "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.2.1.tgz", "integrity": "sha512-c+Ko0loDaFfuPWiL02ls9Xd3GO3cPVmUobQ6t3rXNUk304u6hGq+8N/kFi+QEIKhzK3uwolVhLzszmfLmMLnqg==", "requires": { - "base64-js": "^1.0.2", - "ieee754": "^1.1.4" + "base64-js": "1.3.0", + "ieee754": "1.1.12" } }, "buffer-more-ints": { @@ -419,10 +422,10 @@ "resolved": "https://registry.npmjs.org/bunyan/-/bunyan-1.8.12.tgz", "integrity": "sha1-8VDw9nSKvdcq6uhPBEA74u8RN5c=", "requires": { - "dtrace-provider": "~0.8", - "moment": "^2.10.6", - "mv": "~2", - "safe-json-stringify": "~1" + "dtrace-provider": "0.8.8", + "moment": "2.24.0", + "mv": "2.1.1", + "safe-json-stringify": "1.2.0" } }, "bunyan-format": { @@ -430,19 +433,9 @@ "resolved": "https://registry.npmjs.org/bunyan-format/-/bunyan-format-0.2.1.tgz", "integrity": "sha1-pLOw2ABwqGUnlBcmnj8A/wL7y0c=", "requires": { - "ansicolors": "~0.2.1", - "ansistyles": "~0.1.1", - "xtend": "~2.1.1" - }, - "dependencies": { - "xtend": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-2.1.2.tgz", - "integrity": "sha1-bv7MKk2tjmlixJAbM3znuoe10os=", - "requires": { - "object-keys": "~0.4.0" - } - } + "ansicolors": "0.2.1", + "ansistyles": "0.1.3", + "xtend": "2.1.2" } }, "bunyan-serializers": { @@ -467,12 +460,12 @@ "integrity": "sha512-XQU3bhBukrOsQCuwZndwGcCVQHyZi53fQ6Ys1Fym7E4olpIqqZZhhoFJoaKVvV17lWQoXYwgWN2nF5crA8J2jw==", "dev": true, "requires": { - "assertion-error": "^1.1.0", - "check-error": "^1.0.2", - "deep-eql": "^3.0.1", - "get-func-name": "^2.0.0", - "pathval": "^1.1.0", - "type-detect": "^4.0.5" + "assertion-error": "1.1.0", + "check-error": "1.0.2", + "deep-eql": "3.0.1", + "get-func-name": "2.0.0", + "pathval": "1.1.0", + "type-detect": "4.0.8" } }, "chalk": { @@ -481,9 +474,9 @@ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" + "ansi-styles": "3.2.1", + "escape-string-regexp": "1.0.5", + "supports-color": "5.5.0" } }, "chardet": { @@ -504,7 +497,7 @@ "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", "dev": true, "requires": { - "restore-cursor": "^2.0.0" + "restore-cursor": "2.0.0" } }, "cli-width": { @@ -578,11 +571,11 @@ "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", "dev": true, "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" + "nice-try": "1.0.5", + "path-key": "2.0.1", + "semver": "5.5.1", + "shebang-command": "1.2.0", + "which": "1.3.1" } }, "dashdash": { @@ -590,7 +583,7 @@ "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", "requires": { - "assert-plus": "^1.0.0" + "assert-plus": "1.0.0" } }, "debug": { @@ -599,7 +592,7 @@ "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", "dev": true, "requires": { - "ms": "^2.1.1" + "ms": "2.1.2" } }, "deep-assign": { @@ -608,7 +601,7 @@ "integrity": "sha1-sJJ0O+hCfcYh6gBnzex+cN0Z83s=", "dev": true, "requires": { - "is-obj": "^1.0.0" + "is-obj": "1.0.1" } }, "deep-eql": { @@ -617,7 +610,7 @@ "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==", "dev": true, "requires": { - "type-detect": "^4.0.0" + "type-detect": "4.0.8" } }, "deep-equal": { @@ -638,7 +631,7 @@ "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", "dev": true, "requires": { - "object-keys": "^1.0.12" + "object-keys": "1.1.1" }, "dependencies": { "object-keys": { @@ -666,16 +659,16 @@ "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", "dev": true, "requires": { - "esutils": "^2.0.2" + "esutils": "2.0.2" } }, "dtrace-provider": { - "version": "0.8.7", - "resolved": "https://registry.npmjs.org/dtrace-provider/-/dtrace-provider-0.8.7.tgz", - "integrity": "sha1-3JObTT4GIM/gwc2APQ0tftBP/QQ=", + "version": "0.8.8", + "resolved": "https://registry.npmjs.org/dtrace-provider/-/dtrace-provider-0.8.8.tgz", + "integrity": "sha512-b7Z7cNtHPhH9EJhNNbbeqTcXB8LGFFZhq1PGgEvpeHlzd36bhbdTWoE/Ba/YguqpBSlAPKnARWhVlhunCMwfxg==", "optional": true, "requires": { - "nan": "^2.10.0" + "nan": "2.14.0" } }, "ecc-jsbn": { @@ -683,8 +676,8 @@ "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", "requires": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" + "jsbn": "0.1.1", + "safer-buffer": "2.1.2" } }, "elasticio-node": { @@ -694,9 +687,9 @@ "requires": { "accounting": "0.4.1", "crc": "3.4.4", - "moment": "^2.22.1", + "moment": "2.22.2", "q": "1.4.1", - "request": "^2.85.0", + "request": "2.88.0", "stream-counter": "1.0.0", "uuid": "3.0.1" }, @@ -709,13 +702,14 @@ } }, "elasticio-rest-node": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/elasticio-rest-node/-/elasticio-rest-node-1.2.0.tgz", - "integrity": "sha512-AoUPcFu880tA5QyDYwM0MhO/t57YzdkZtqqQ42Rl9hrKsqRfut1KMtbrCDU8AMtrzSb/1+IpD5dmCa8WE3aLrQ==", + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/elasticio-rest-node/-/elasticio-rest-node-1.2.3.tgz", + "integrity": "sha512-9OBmI/gKnIXOq8RJFO1VHHyaVn8oImSHdGE7EAZy9A6N7yBU0Y9qbtv6sA/VK7+NQprkFLvTxH3lHyy+BCgqkg==", "requires": { - "lodash": "^3.10.1", - "q": "^1.4.1", - "request": "^2.63.0" + "lodash": "3.10.1", + "natives": "1.1.6", + "q": "1.4.1", + "requestretry": "3.1.0" }, "dependencies": { "lodash": { @@ -726,21 +720,36 @@ } }, "elasticio-sailor-nodejs": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/elasticio-sailor-nodejs/-/elasticio-sailor-nodejs-2.3.0.tgz", - "integrity": "sha512-d6FgeYtTpA6LE+qyJGOFZpFPDPuLhSerZWIwcwuMCyYYzsy/Qw2AKpCjL7yUd8Me+/XddcDAKkl9h+bYR+F6Ig==", + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/elasticio-sailor-nodejs/-/elasticio-sailor-nodejs-2.6.1.tgz", + "integrity": "sha512-Jh4ODVtKgcJSQpf7t16L7ojxhb+f03Znf6toCrwf6fVQKn/yBs/TkJUhHZqB14vafIllVeL/yBs7vnCEke8Jjg==", "requires": { "amqplib": "0.5.1", - "bunyan": "^1.8.10", + "bunyan": "1.8.10", "co": "4.6.0", "debug": "3.1.0", - "elasticio-rest-node": "1.2.0", + "elasticio-rest-node": "1.2.3", + "event-to-promise": "0.8.0", "lodash": "4.17.4", + "p-throttle": "2.1.0", "q": "1.4.1", - "request-promise-native": "^1.0.3", + "request-promise-native": "1.0.5", + "requestretry": "3.1.0", + "self-addressed": "0.3.0", "uuid": "3.0.1" }, "dependencies": { + "bunyan": { + "version": "1.8.10", + "resolved": "https://registry.npmjs.org/bunyan/-/bunyan-1.8.10.tgz", + "integrity": "sha1-IB/t0mxwgLYy9BYHL1OpC5pSmBw=", + "requires": { + "dtrace-provider": "0.8.8", + "moment": "2.24.0", + "mv": "2.1.1", + "safe-json-stringify": "1.2.0" + } + }, "debug": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", @@ -773,7 +782,7 @@ "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", "dev": true, "requires": { - "is-arrayish": "^0.2.1" + "is-arrayish": "0.2.1" } }, "es-abstract": { @@ -782,16 +791,16 @@ "integrity": "sha512-DgoQmbpFNOofkjJtKwr87Ma5EW4Dc8fWhD0R+ndq7Oc456ivUfGOOP6oAZTTKl5/CcNMP+EN+e3/iUzgE0veZg==", "dev": true, "requires": { - "es-to-primitive": "^1.2.0", - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.0", - "is-callable": "^1.1.4", - "is-regex": "^1.0.4", - "object-inspect": "^1.6.0", - "object-keys": "^1.1.1", - "string.prototype.trimleft": "^2.0.0", - "string.prototype.trimright": "^2.0.0" + "es-to-primitive": "1.2.0", + "function-bind": "1.1.1", + "has": "1.0.3", + "has-symbols": "1.0.0", + "is-callable": "1.1.4", + "is-regex": "1.0.4", + "object-inspect": "1.6.0", + "object-keys": "1.1.1", + "string.prototype.trimleft": "2.1.0", + "string.prototype.trimright": "2.1.0" }, "dependencies": { "object-keys": { @@ -808,11 +817,16 @@ "integrity": "sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg==", "dev": true, "requires": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" + "is-callable": "1.1.4", + "is-date-object": "1.0.1", + "is-symbol": "1.0.2" } }, + "es6-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-2.0.1.tgz", + "integrity": "sha1-zMSWPmefDKn7GHx3e55YPTx1c8I=" + }, "escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", @@ -825,43 +839,43 @@ "integrity": "sha512-WTVEzK3lSFoXUovDHEbkJqCVPEPwbhCq4trDktNI6ygs7aO41d4cDT0JFAT5MivzZeVLWlg7vHL+bgrQv/t3vA==", "dev": true, "requires": { - "@babel/code-frame": "^7.0.0", - "ajv": "^6.10.0", - "chalk": "^2.1.0", - "cross-spawn": "^6.0.5", - "debug": "^4.0.1", - "doctrine": "^3.0.0", - "eslint-scope": "^5.0.0", - "eslint-utils": "^1.4.2", - "eslint-visitor-keys": "^1.1.0", - "espree": "^6.1.1", - "esquery": "^1.0.1", - "esutils": "^2.0.2", - "file-entry-cache": "^5.0.1", - "functional-red-black-tree": "^1.0.1", - "glob-parent": "^5.0.0", - "globals": "^11.7.0", - "ignore": "^4.0.6", - "import-fresh": "^3.0.0", - "imurmurhash": "^0.1.4", - "inquirer": "^6.4.1", - "is-glob": "^4.0.0", - "js-yaml": "^3.13.1", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.3.0", - "lodash": "^4.17.14", - "minimatch": "^3.0.4", - "mkdirp": "^0.5.1", - "natural-compare": "^1.4.0", - "optionator": "^0.8.2", - "progress": "^2.0.0", - "regexpp": "^2.0.1", - "semver": "^6.1.2", - "strip-ansi": "^5.2.0", - "strip-json-comments": "^3.0.1", - "table": "^5.2.3", - "text-table": "^0.2.0", - "v8-compile-cache": "^2.0.3" + "@babel/code-frame": "7.0.0", + "ajv": "6.10.2", + "chalk": "2.4.2", + "cross-spawn": "6.0.5", + "debug": "4.1.1", + "doctrine": "3.0.0", + "eslint-scope": "5.0.0", + "eslint-utils": "1.4.2", + "eslint-visitor-keys": "1.1.0", + "espree": "6.1.1", + "esquery": "1.0.1", + "esutils": "2.0.2", + "file-entry-cache": "5.0.1", + "functional-red-black-tree": "1.0.1", + "glob-parent": "5.1.0", + "globals": "11.12.0", + "ignore": "4.0.6", + "import-fresh": "3.1.0", + "imurmurhash": "0.1.4", + "inquirer": "6.5.2", + "is-glob": "4.0.1", + "js-yaml": "3.13.1", + "json-stable-stringify-without-jsonify": "1.0.1", + "levn": "0.3.0", + "lodash": "4.17.15", + "minimatch": "3.0.4", + "mkdirp": "0.5.1", + "natural-compare": "1.4.0", + "optionator": "0.8.2", + "progress": "2.0.3", + "regexpp": "2.0.1", + "semver": "6.3.0", + "strip-ansi": "5.2.0", + "strip-json-comments": "3.0.1", + "table": "5.4.6", + "text-table": "0.2.0", + "v8-compile-cache": "2.1.0" }, "dependencies": { "ajv": { @@ -870,10 +884,10 @@ "integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==", "dev": true, "requires": { - "fast-deep-equal": "^2.0.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" + "fast-deep-equal": "2.0.1", + "fast-json-stable-stringify": "2.0.0", + "json-schema-traverse": "0.4.1", + "uri-js": "4.2.2" } }, "fast-deep-equal": { @@ -908,9 +922,9 @@ "integrity": "sha512-2IDHobw97upExLmsebhtfoD3NAKhV4H0CJWP3Uprd/uk+cHuWYOczPVxQ8PxLFUAw7o3Th1RAU8u1DoUpr+cMA==", "dev": true, "requires": { - "confusing-browser-globals": "^1.0.7", - "object.assign": "^4.1.0", - "object.entries": "^1.1.0" + "confusing-browser-globals": "1.0.9", + "object.assign": "4.1.0", + "object.entries": "1.1.0" } }, "eslint-config-xo": { @@ -919,7 +933,7 @@ "integrity": "sha1-GxVB7sgYyQ9J/OgK0jcZxtH6uXM=", "dev": true, "requires": { - "deep-assign": "^1.0.0" + "deep-assign": "1.0.0" } }, "eslint-config-xo-space": { @@ -928,7 +942,7 @@ "integrity": "sha1-L0Fb7/pp4eMxUdloqas/C8SAGv0=", "dev": true, "requires": { - "eslint-config-xo": "^0.10.1" + "eslint-config-xo": "0.10.1" } }, "eslint-import-resolver-node": { @@ -937,8 +951,8 @@ "integrity": "sha512-sfmTqJfPSizWu4aymbPr4Iidp5yKm8yDkHp+Ir3YiTHiiDfxh69mOUsmiqW6RZ9zRXFaF64GtYmN7e+8GHBv6Q==", "dev": true, "requires": { - "debug": "^2.6.9", - "resolve": "^1.5.0" + "debug": "2.6.9", + "resolve": "1.12.0" }, "dependencies": { "debug": { @@ -964,8 +978,8 @@ "integrity": "sha512-H6DOj+ejw7Tesdgbfs4jeS4YMFrT8uI8xwd1gtQqXssaR0EQ26L+2O/w6wkYFy2MymON0fTwHmXBvvfLNZVZEw==", "dev": true, "requires": { - "debug": "^2.6.8", - "pkg-dir": "^2.0.0" + "debug": "2.6.9", + "pkg-dir": "2.0.0" }, "dependencies": { "debug": { @@ -991,17 +1005,17 @@ "integrity": "sha512-5ohpsHAiUBRNaBWAF08izwUGlbrJoJJ+W9/TBwsGoR1MnlgfwMIKrFeSjWbt6moabiXW9xNvtFz+97KHRfI4HQ==", "dev": true, "requires": { - "array-includes": "^3.0.3", - "contains-path": "^0.1.0", - "debug": "^2.6.9", + "array-includes": "3.0.3", + "contains-path": "0.1.0", + "debug": "2.6.9", "doctrine": "1.5.0", - "eslint-import-resolver-node": "^0.3.2", - "eslint-module-utils": "^2.4.0", - "has": "^1.0.3", - "minimatch": "^3.0.4", - "object.values": "^1.1.0", - "read-pkg-up": "^2.0.0", - "resolve": "^1.11.0" + "eslint-import-resolver-node": "0.3.2", + "eslint-module-utils": "2.4.1", + "has": "1.0.3", + "minimatch": "3.0.4", + "object.values": "1.1.0", + "read-pkg-up": "2.0.0", + "resolve": "1.12.0" }, "dependencies": { "debug": { @@ -1019,8 +1033,8 @@ "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=", "dev": true, "requires": { - "esutils": "^2.0.2", - "isarray": "^1.0.0" + "esutils": "2.0.2", + "isarray": "1.0.0" } }, "isarray": { @@ -1043,7 +1057,7 @@ "integrity": "sha512-hxWtYHvLA0p/PKymRfDYh9Mxt5dYkg2Goy1vZDarTEEYfELP9ksga7kKG1NUKSQy27C8Qjc7YrSWTLUhOEOksA==", "dev": true, "requires": { - "ramda": "^0.25.0" + "ramda": "0.25.0" } }, "eslint-scope": { @@ -1052,8 +1066,8 @@ "integrity": "sha512-oYrhJW7S0bxAFDvWqzvMPRm6pcgcnWc4QnofCAqRTRfQC0JcwenzGglTtsLyIuuWFfkqDG9vz67cnttSd53djw==", "dev": true, "requires": { - "esrecurse": "^4.1.0", - "estraverse": "^4.1.1" + "esrecurse": "4.2.1", + "estraverse": "4.3.0" } }, "eslint-utils": { @@ -1062,7 +1076,7 @@ "integrity": "sha512-eAZS2sEUMlIeCjBeubdj45dmBHQwPHWyBcT1VSYB7o9x9WRRqKxyUoiXlRjyAwzN7YEzHJlYg0NmzDRWx6GP4Q==", "dev": true, "requires": { - "eslint-visitor-keys": "^1.0.0" + "eslint-visitor-keys": "1.1.0" } }, "eslint-visitor-keys": { @@ -1077,9 +1091,9 @@ "integrity": "sha512-EYbr8XZUhWbYCqQRW0duU5LxzL5bETN6AjKBGy1302qqzPaCH10QbRg3Wvco79Z8x9WbiE8HYB4e75xl6qUYvQ==", "dev": true, "requires": { - "acorn": "^7.0.0", - "acorn-jsx": "^5.0.2", - "eslint-visitor-keys": "^1.1.0" + "acorn": "7.1.0", + "acorn-jsx": "5.0.2", + "eslint-visitor-keys": "1.1.0" } }, "esprima": { @@ -1094,7 +1108,7 @@ "integrity": "sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA==", "dev": true, "requires": { - "estraverse": "^4.0.0" + "estraverse": "4.3.0" } }, "esrecurse": { @@ -1103,7 +1117,7 @@ "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", "dev": true, "requires": { - "estraverse": "^4.1.0" + "estraverse": "4.3.0" } }, "estraverse": { @@ -1118,6 +1132,11 @@ "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", "dev": true }, + "event-to-promise": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/event-to-promise/-/event-to-promise-0.8.0.tgz", + "integrity": "sha1-S4TxF3K28l93Uvx02XFTGsb1tiY=" + }, "extend": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", @@ -1129,9 +1148,9 @@ "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", "dev": true, "requires": { - "chardet": "^0.7.0", - "iconv-lite": "^0.4.24", - "tmp": "^0.0.33" + "chardet": "0.7.0", + "iconv-lite": "0.4.24", + "tmp": "0.0.33" } }, "extsprintf": { @@ -1161,7 +1180,7 @@ "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", "dev": true, "requires": { - "escape-string-regexp": "^1.0.5" + "escape-string-regexp": "1.0.5" } }, "file-entry-cache": { @@ -1170,7 +1189,7 @@ "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==", "dev": true, "requires": { - "flat-cache": "^2.0.1" + "flat-cache": "2.0.1" } }, "find-up": { @@ -1179,7 +1198,7 @@ "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", "dev": true, "requires": { - "locate-path": "^2.0.0" + "locate-path": "2.0.0" } }, "flat-cache": { @@ -1188,7 +1207,7 @@ "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==", "dev": true, "requires": { - "flatted": "^2.0.0", + "flatted": "2.0.1", "rimraf": "2.6.3", "write": "1.0.3" } @@ -1204,7 +1223,7 @@ "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.10.tgz", "integrity": "sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ==", "requires": { - "debug": "=3.1.0" + "debug": "3.1.0" }, "dependencies": { "debug": { @@ -1233,7 +1252,7 @@ "integrity": "sha1-XtPM1jZVEJc4NGXZlhmRAOhhYek=", "dev": true, "requires": { - "samsam": "~1.1" + "samsam": "1.1.2" } }, "fs.realpath": { @@ -1265,7 +1284,7 @@ "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", "requires": { - "assert-plus": "^1.0.0" + "assert-plus": "1.0.0" } }, "glob": { @@ -1274,12 +1293,12 @@ "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", "dev": true, "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "fs.realpath": "1.0.0", + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" } }, "glob-parent": { @@ -1288,7 +1307,7 @@ "integrity": "sha512-qjtRgnIVmOfnKUE3NJAQEdk+lKrxfw8t5ke7SXtfMTHcjsBfOfWXCQfdb30zfDoZQ2IRSIiidmjtbHZPZ++Ihw==", "dev": true, "requires": { - "is-glob": "^4.0.1" + "is-glob": "4.0.1" } }, "globals": { @@ -1320,7 +1339,7 @@ "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", "dev": true, "requires": { - "function-bind": "^1.1.1" + "function-bind": "1.1.1" } }, "has-flag": { @@ -1352,9 +1371,9 @@ "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", "requires": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" + "assert-plus": "1.0.0", + "jsprim": "1.4.1", + "sshpk": "1.15.2" } }, "iconv-lite": { @@ -1363,7 +1382,7 @@ "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", "dev": true, "requires": { - "safer-buffer": ">= 2.1.2 < 3" + "safer-buffer": "2.1.2" } }, "ieee754": { @@ -1383,8 +1402,8 @@ "integrity": "sha512-PpuksHKGt8rXfWEr9m9EHIpgyyaltBy8+eF6GJM0QCAxMgxCfucMF3mjecK2QsJr0amJW7gTqh5/wht0z2UhEQ==", "dev": true, "requires": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" + "parent-module": "1.0.1", + "resolve-from": "4.0.0" } }, "imurmurhash": { @@ -1398,8 +1417,8 @@ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "requires": { - "once": "^1.3.0", - "wrappy": "1" + "once": "1.4.0", + "wrappy": "1.0.2" } }, "inherits": { @@ -1413,19 +1432,19 @@ "integrity": "sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ==", "dev": true, "requires": { - "ansi-escapes": "^3.2.0", - "chalk": "^2.4.2", - "cli-cursor": "^2.1.0", - "cli-width": "^2.0.0", - "external-editor": "^3.0.3", - "figures": "^2.0.0", - "lodash": "^4.17.12", + "ansi-escapes": "3.2.0", + "chalk": "2.4.2", + "cli-cursor": "2.1.0", + "cli-width": "2.2.0", + "external-editor": "3.1.0", + "figures": "2.0.0", + "lodash": "4.17.15", "mute-stream": "0.0.7", - "run-async": "^2.2.0", - "rxjs": "^6.4.0", - "string-width": "^2.1.0", - "strip-ansi": "^5.1.0", - "through": "^2.3.6" + "run-async": "2.3.0", + "rxjs": "6.5.3", + "string-width": "2.1.1", + "strip-ansi": "5.2.0", + "through": "2.3.8" }, "dependencies": { "lodash": { @@ -1443,9 +1462,9 @@ "dev": true }, "is-buffer": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.3.tgz", - "integrity": "sha512-U15Q7MXTuZlrbymiz95PJpZxu8IlipAp4dtS3wOdgPXx3mqBnslrWU14kxfHB+Py/+2PVKSr37dMAgM2A4uArw==" + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.4.tgz", + "integrity": "sha512-Kq1rokWXOPXWuaMAqZiJW4XxsmD9zGx9q4aePabbn3qCRGedtH7Cm+zV8WETitMfu1wdh+Rvd6w5egwSngUX2A==" }, "is-callable": { "version": "1.1.4", @@ -1477,7 +1496,7 @@ "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", "dev": true, "requires": { - "is-extglob": "^2.1.1" + "is-extglob": "2.1.1" } }, "is-obj": { @@ -1498,7 +1517,7 @@ "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", "dev": true, "requires": { - "has": "^1.0.1" + "has": "1.0.3" } }, "is-symbol": { @@ -1507,7 +1526,7 @@ "integrity": "sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw==", "dev": true, "requires": { - "has-symbols": "^1.0.0" + "has-symbols": "1.0.0" } }, "is-typedarray": { @@ -1543,13 +1562,13 @@ "integrity": "sha512-eQY9vN9elYjdgN9Iv6NS/00bptm02EBBk70lRMaVjeA6QYocQgenVrSgC28TJurdnZa80AGO3ASdFN+w/njGiQ==", "dev": true, "requires": { - "@babel/generator": "^7.0.0", - "@babel/parser": "^7.0.0", - "@babel/template": "^7.0.0", - "@babel/traverse": "^7.0.0", - "@babel/types": "^7.0.0", - "istanbul-lib-coverage": "^2.0.1", - "semver": "^5.5.0" + "@babel/generator": "7.1.3", + "@babel/parser": "7.1.3", + "@babel/template": "7.1.2", + "@babel/traverse": "7.1.4", + "@babel/types": "7.1.3", + "istanbul-lib-coverage": "2.0.1", + "semver": "5.5.1" } }, "js-tokens": { @@ -1564,8 +1583,8 @@ "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", "dev": true, "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" + "argparse": "1.0.10", + "esprima": "4.0.1" } }, "jsbn": { @@ -1600,14 +1619,19 @@ "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" }, + "jsonata": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/jsonata/-/jsonata-1.7.0.tgz", + "integrity": "sha512-W1qxnGXtbaboFFA8DMLL2GZgiWoeFuMo0Yf3J23o03omzIuW9a9hgowgfUChQq8bfMfh/zmQJpwn/gQirn46ew==" + }, "jsonix": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/jsonix/-/jsonix-2.4.1.tgz", "integrity": "sha1-fKkUqFo2nyezDxPMDBWiJYuJSzM=", "requires": { - "amdefine": "0.x.x", - "xmldom": ">=0.1.21", - "xmlhttprequest": "1.x.x" + "amdefine": "0.1.1", + "xmldom": "0.1.27", + "xmlhttprequest": "1.8.0" } }, "jsonix-schema-compiler": { @@ -1632,8 +1656,8 @@ "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", "dev": true, "requires": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" + "prelude-ls": "1.1.2", + "type-check": "0.3.2" } }, "load-json-file": { @@ -1642,10 +1666,10 @@ "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", "dev": true, "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "strip-bom": "^3.0.0" + "graceful-fs": "4.2.2", + "parse-json": "2.2.0", + "pify": "2.3.0", + "strip-bom": "3.0.0" } }, "locate-path": { @@ -1654,8 +1678,8 @@ "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", "dev": true, "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" + "p-locate": "2.0.0", + "path-exists": "3.0.0" } }, "lodash": { @@ -1680,7 +1704,7 @@ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "requires": { - "brace-expansion": "^1.1.7" + "brace-expansion": "1.1.8" } }, "minimist": { @@ -1736,15 +1760,15 @@ "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", "dev": true, "requires": { - "has-flag": "^3.0.0" + "has-flag": "3.0.0" } } } }, "moment": { - "version": "2.22.2", - "resolved": "https://registry.npmjs.org/moment/-/moment-2.22.2.tgz", - "integrity": "sha1-PCV/mDn8DpP/UxSWMiOeuQeD/2Y=", + "version": "2.24.0", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.24.0.tgz", + "integrity": "sha512-bV7f+6l2QigeBBZSM/6yTNq4P2fNpSWj/0e7jQcy87A8e7o2nAfP/34/2ky5Vw4B9S446EtIhodAzkFCcR4dQg==", "optional": true }, "ms": { @@ -1765,9 +1789,9 @@ "integrity": "sha1-rmzg1vbV4KT32JN5jQPB6pVZtqI=", "optional": true, "requires": { - "mkdirp": "~0.5.1", - "ncp": "~2.0.0", - "rimraf": "~2.4.0" + "mkdirp": "0.5.1", + "ncp": "2.0.0", + "rimraf": "2.4.5" }, "dependencies": { "glob": { @@ -1776,11 +1800,11 @@ "integrity": "sha1-DwiGD2oVUSey+t1PnOJLGqtuTSI=", "optional": true, "requires": { - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "2 || 3", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" } }, "rimraf": { @@ -1789,15 +1813,15 @@ "integrity": "sha1-7nEM5dk6j9uFb7Xqj/Di11k0sto=", "optional": true, "requires": { - "glob": "^6.0.1" + "glob": "6.0.4" } } } }, "nan": { - "version": "2.11.1", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.11.1.tgz", - "integrity": "sha512-iji6k87OSXa0CcrLl9z+ZiYSuR2o+c0bGuNmXdrhTQTakxytAFsC56SArGYoiHlJlFoHSnvmhpceZJaXkVuOtA==", + "version": "2.14.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz", + "integrity": "sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==", "optional": true }, "natives": { @@ -1829,15 +1853,15 @@ "integrity": "sha512-uWrdlRzG28SXM5yqYsUHfYBRqljF8P6aTRDh6Y5kTgs/Q4GB59QWlpiegmDHQouvmX/rDyKkC/nk+k4nA+QPNw==", "dev": true, "requires": { - "chai": "^4.1.2", - "debug": "^4.1.0", - "deep-equal": "^1.0.0", - "json-stringify-safe": "^5.0.1", - "lodash": "^4.17.5", - "mkdirp": "^0.5.0", - "propagate": "^1.0.0", - "qs": "^6.5.1", - "semver": "^5.5.0" + "chai": "4.2.0", + "debug": "4.1.0", + "deep-equal": "1.0.1", + "json-stringify-safe": "5.0.1", + "lodash": "4.17.11", + "mkdirp": "0.5.1", + "propagate": "1.0.0", + "qs": "6.5.2", + "semver": "5.5.1" }, "dependencies": { "debug": { @@ -1846,7 +1870,7 @@ "integrity": "sha512-heNPJUJIqC+xB6ayLAMHaIrmN9HKa7aQO8MGqKpvCA+uJYVcvR6l5kgdrhRuwPFHU7P5/A1w0BjByPHwpfTDKg==", "dev": true, "requires": { - "ms": "^2.1.1" + "ms": "2.1.1" } }, "ms": { @@ -1863,10 +1887,10 @@ "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", "dev": true, "requires": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" + "hosted-git-info": "2.8.4", + "resolve": "1.12.0", + "semver": "5.5.1", + "validate-npm-package-license": "3.0.4" } }, "nyc": { @@ -1875,31 +1899,31 @@ "integrity": "sha512-3GyY6TpQ58z9Frpv4GMExE1SV2tAgYqC7HSy2omEhNiCT3mhT9NyiOvIE8zkbuJVFzmvvNTnE4h/7/wQae7xLg==", "dev": true, "requires": { - "archy": "^1.0.0", - "arrify": "^1.0.1", - "caching-transform": "^2.0.0", - "convert-source-map": "^1.6.0", - "debug-log": "^1.0.1", - "find-cache-dir": "^2.0.0", - "find-up": "^3.0.0", - "foreground-child": "^1.5.6", - "glob": "^7.1.3", - "istanbul-lib-coverage": "^2.0.1", - "istanbul-lib-hook": "^2.0.1", - "istanbul-lib-instrument": "^3.0.0", - "istanbul-lib-report": "^2.0.2", - "istanbul-lib-source-maps": "^2.0.1", - "istanbul-reports": "^2.0.1", - "make-dir": "^1.3.0", - "merge-source-map": "^1.1.0", - "resolve-from": "^4.0.0", - "rimraf": "^2.6.2", - "signal-exit": "^3.0.2", - "spawn-wrap": "^1.4.2", - "test-exclude": "^5.0.0", - "uuid": "^3.3.2", + "archy": "1.0.0", + "arrify": "1.0.1", + "caching-transform": "2.0.0", + "convert-source-map": "1.6.0", + "debug-log": "1.0.1", + "find-cache-dir": "2.0.0", + "find-up": "3.0.0", + "foreground-child": "1.5.6", + "glob": "7.1.3", + "istanbul-lib-coverage": "2.0.1", + "istanbul-lib-hook": "2.0.1", + "istanbul-lib-instrument": "3.0.0", + "istanbul-lib-report": "2.0.2", + "istanbul-lib-source-maps": "2.0.1", + "istanbul-reports": "2.0.1", + "make-dir": "1.3.0", + "merge-source-map": "1.1.0", + "resolve-from": "4.0.0", + "rimraf": "2.6.2", + "signal-exit": "3.0.2", + "spawn-wrap": "1.4.2", + "test-exclude": "5.0.0", + "uuid": "3.3.2", "yargs": "11.1.0", - "yargs-parser": "^9.0.2" + "yargs-parser": "9.0.2" }, "dependencies": { "align-text": { @@ -1908,9 +1932,9 @@ "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", "dev": true, "requires": { - "kind-of": "^3.0.2", - "longest": "^1.0.1", - "repeat-string": "^1.5.2" + "kind-of": "3.2.2", + "longest": "1.0.1", + "repeat-string": "1.6.1" } }, "amdefine": { @@ -1931,7 +1955,7 @@ "integrity": "sha512-P009oYkeHyU742iSZJzZZywj4QRJdnTWffaKuJQLablCZ1uz6/cW4yaRgcDaoQ+uwOxxnt0gRUcwfsNP2ri0gw==", "dev": true, "requires": { - "default-require-extensions": "^2.0.0" + "default-require-extensions": "2.0.0" } }, "archy": { @@ -1964,7 +1988,7 @@ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, "requires": { - "balanced-match": "^1.0.0", + "balanced-match": "1.0.0", "concat-map": "0.0.1" } }, @@ -1980,10 +2004,10 @@ "integrity": "sha512-tTfemGmFWe7KZ3KN6VsSgQZbd9Bgo7A40wlp4PTsJJvFu4YAnEC5YnfdiKq6Vh2i9XJLnA9n8OXD46orVpnPMw==", "dev": true, "requires": { - "make-dir": "^1.0.0", - "md5-hex": "^2.0.0", - "package-hash": "^2.0.0", - "write-file-atomic": "^2.0.0" + "make-dir": "1.3.0", + "md5-hex": "2.0.0", + "package-hash": "2.0.0", + "write-file-atomic": "2.3.0" } }, "camelcase": { @@ -2000,8 +2024,8 @@ "dev": true, "optional": true, "requires": { - "align-text": "^0.1.3", - "lazy-cache": "^1.0.3" + "align-text": "0.1.4", + "lazy-cache": "1.0.4" } }, "cliui": { @@ -2011,8 +2035,8 @@ "dev": true, "optional": true, "requires": { - "center-align": "^0.1.1", - "right-align": "^0.1.1", + "center-align": "0.1.3", + "right-align": "0.1.3", "wordwrap": "0.0.2" }, "dependencies": { @@ -2049,7 +2073,7 @@ "integrity": "sha512-eFu7XigvxdZ1ETfbgPBohgyQ/Z++C0eEhTor0qRwBw9unw+L0/6V8wkSuGgzdThkiS5lSpdptOQPD8Ak40a+7A==", "dev": true, "requires": { - "safe-buffer": "~5.1.1" + "safe-buffer": "5.1.2" } }, "cross-spawn": { @@ -2058,8 +2082,8 @@ "integrity": "sha1-e5JHYhwjrf3ThWAEqCPL45dCTUE=", "dev": true, "requires": { - "lru-cache": "^4.0.1", - "which": "^1.2.9" + "lru-cache": "4.1.3", + "which": "1.3.1" } }, "debug": { @@ -2089,7 +2113,7 @@ "integrity": "sha1-9fj7sYp9bVCyH2QfZJ67Uiz+JPc=", "dev": true, "requires": { - "strip-bom": "^3.0.0" + "strip-bom": "3.0.0" } }, "error-ex": { @@ -2098,7 +2122,7 @@ "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", "dev": true, "requires": { - "is-arrayish": "^0.2.1" + "is-arrayish": "0.2.1" } }, "es6-error": { @@ -2113,13 +2137,13 @@ "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", "dev": true, "requires": { - "cross-spawn": "^5.0.1", - "get-stream": "^3.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" + "cross-spawn": "5.1.0", + "get-stream": "3.0.0", + "is-stream": "1.1.0", + "npm-run-path": "2.0.2", + "p-finally": "1.0.0", + "signal-exit": "3.0.2", + "strip-eof": "1.0.0" }, "dependencies": { "cross-spawn": { @@ -2128,9 +2152,9 @@ "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", "dev": true, "requires": { - "lru-cache": "^4.0.1", - "shebang-command": "^1.2.0", - "which": "^1.2.9" + "lru-cache": "4.1.3", + "shebang-command": "1.2.0", + "which": "1.3.1" } } } @@ -2141,9 +2165,9 @@ "integrity": "sha512-LDUY6V1Xs5eFskUVYtIwatojt6+9xC9Chnlk/jYOOvn3FAFfSaWddxahDGyNHh0b2dMXa6YW2m0tk8TdVaXHlA==", "dev": true, "requires": { - "commondir": "^1.0.1", - "make-dir": "^1.0.0", - "pkg-dir": "^3.0.0" + "commondir": "1.0.1", + "make-dir": "1.3.0", + "pkg-dir": "3.0.0" } }, "find-up": { @@ -2152,7 +2176,7 @@ "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", "dev": true, "requires": { - "locate-path": "^3.0.0" + "locate-path": "3.0.0" } }, "foreground-child": { @@ -2161,8 +2185,8 @@ "integrity": "sha1-T9ca0t/elnibmApcCilZN8svXOk=", "dev": true, "requires": { - "cross-spawn": "^4", - "signal-exit": "^3.0.0" + "cross-spawn": "4.0.2", + "signal-exit": "3.0.2" } }, "fs.realpath": { @@ -2189,12 +2213,12 @@ "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", "dev": true, "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "fs.realpath": "1.0.0", + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" } }, "graceful-fs": { @@ -2209,10 +2233,10 @@ "integrity": "sha1-Ywo13+ApS8KB7a5v/F0yn8eYLcw=", "dev": true, "requires": { - "async": "^1.4.0", - "optimist": "^0.6.1", - "source-map": "^0.4.4", - "uglify-js": "^2.6" + "async": "1.5.2", + "optimist": "0.6.1", + "source-map": "0.4.4", + "uglify-js": "2.8.29" }, "dependencies": { "source-map": { @@ -2221,7 +2245,7 @@ "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", "dev": true, "requires": { - "amdefine": ">=0.0.4" + "amdefine": "1.0.1" } } } @@ -2250,8 +2274,8 @@ "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "dev": true, "requires": { - "once": "^1.3.0", - "wrappy": "1" + "once": "1.4.0", + "wrappy": "1.0.2" } }, "inherits": { @@ -2284,7 +2308,7 @@ "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", "dev": true, "requires": { - "builtin-modules": "^1.0.0" + "builtin-modules": "1.1.1" } }, "is-fullwidth-code-point": { @@ -2317,7 +2341,7 @@ "integrity": "sha512-ufiZoiJ8CxY577JJWEeFuxXZoMqiKpq/RqZtOAYuQLvlkbJWscq9n3gc4xrCGH9n4pW0qnTxOz1oyMmVtk8E1w==", "dev": true, "requires": { - "append-transform": "^1.0.0" + "append-transform": "1.0.0" } }, "istanbul-lib-report": { @@ -2326,9 +2350,9 @@ "integrity": "sha512-rJ8uR3peeIrwAxoDEbK4dJ7cqqtxBisZKCuwkMtMv0xYzaAnsAi3AHrHPAAtNXzG/bcCgZZ3OJVqm1DTi9ap2Q==", "dev": true, "requires": { - "istanbul-lib-coverage": "^2.0.1", - "make-dir": "^1.3.0", - "supports-color": "^5.4.0" + "istanbul-lib-coverage": "2.0.1", + "make-dir": "1.3.0", + "supports-color": "5.4.0" } }, "istanbul-lib-source-maps": { @@ -2337,11 +2361,11 @@ "integrity": "sha512-30l40ySg+gvBLcxTrLzR4Z2XTRj3HgRCA/p2rnbs/3OiTaoj054gAbuP5DcLOtwqmy4XW8qXBHzrmP2/bQ9i3A==", "dev": true, "requires": { - "debug": "^3.1.0", - "istanbul-lib-coverage": "^2.0.1", - "make-dir": "^1.3.0", - "rimraf": "^2.6.2", - "source-map": "^0.6.1" + "debug": "3.1.0", + "istanbul-lib-coverage": "2.0.1", + "make-dir": "1.3.0", + "rimraf": "2.6.2", + "source-map": "0.6.1" }, "dependencies": { "source-map": { @@ -2358,7 +2382,7 @@ "integrity": "sha512-CT0QgMBJqs6NJLF678ZHcquUAZIoBIUNzdJrRJfpkI9OnzG6MkUfHxbJC3ln981dMswC7/B1mfX3LNkhgJxsuw==", "dev": true, "requires": { - "handlebars": "^4.0.11" + "handlebars": "4.0.11" } }, "json-parse-better-errors": { @@ -2373,7 +2397,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } }, "lazy-cache": { @@ -2389,7 +2413,7 @@ "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", "dev": true, "requires": { - "invert-kv": "^1.0.0" + "invert-kv": "1.0.0" } }, "load-json-file": { @@ -2398,10 +2422,10 @@ "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", "dev": true, "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^4.0.0", - "pify": "^3.0.0", - "strip-bom": "^3.0.0" + "graceful-fs": "4.1.11", + "parse-json": "4.0.0", + "pify": "3.0.0", + "strip-bom": "3.0.0" } }, "locate-path": { @@ -2410,8 +2434,8 @@ "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", "dev": true, "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" + "p-locate": "3.0.0", + "path-exists": "3.0.0" } }, "lodash.flattendeep": { @@ -2432,8 +2456,8 @@ "integrity": "sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA==", "dev": true, "requires": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" + "pseudomap": "1.0.2", + "yallist": "2.1.2" } }, "make-dir": { @@ -2442,7 +2466,7 @@ "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", "dev": true, "requires": { - "pify": "^3.0.0" + "pify": "3.0.0" } }, "md5-hex": { @@ -2451,7 +2475,7 @@ "integrity": "sha1-0FiOnxx0lUSS7NJKwKxs6ZfZLjM=", "dev": true, "requires": { - "md5-o-matic": "^0.1.1" + "md5-o-matic": "0.1.1" } }, "md5-o-matic": { @@ -2466,7 +2490,7 @@ "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", "dev": true, "requires": { - "mimic-fn": "^1.0.0" + "mimic-fn": "1.2.0" } }, "merge-source-map": { @@ -2475,7 +2499,7 @@ "integrity": "sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw==", "dev": true, "requires": { - "source-map": "^0.6.1" + "source-map": "0.6.1" }, "dependencies": { "source-map": { @@ -2498,7 +2522,7 @@ "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "dev": true, "requires": { - "brace-expansion": "^1.1.7" + "brace-expansion": "1.1.11" } }, "minimist": { @@ -2536,10 +2560,10 @@ "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", "dev": true, "requires": { - "hosted-git-info": "^2.1.4", - "is-builtin-module": "^1.0.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" + "hosted-git-info": "2.7.1", + "is-builtin-module": "1.0.0", + "semver": "5.5.0", + "validate-npm-package-license": "3.0.3" } }, "npm-run-path": { @@ -2548,7 +2572,7 @@ "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", "dev": true, "requires": { - "path-key": "^2.0.0" + "path-key": "2.0.1" } }, "number-is-nan": { @@ -2563,7 +2587,7 @@ "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "dev": true, "requires": { - "wrappy": "1" + "wrappy": "1.0.2" } }, "optimist": { @@ -2572,8 +2596,8 @@ "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", "dev": true, "requires": { - "minimist": "~0.0.1", - "wordwrap": "~0.0.2" + "minimist": "0.0.10", + "wordwrap": "0.0.3" } }, "os-homedir": { @@ -2588,9 +2612,9 @@ "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", "dev": true, "requires": { - "execa": "^0.7.0", - "lcid": "^1.0.0", - "mem": "^1.1.0" + "execa": "0.7.0", + "lcid": "1.0.0", + "mem": "1.1.0" } }, "p-finally": { @@ -2605,7 +2629,7 @@ "integrity": "sha512-fl5s52lI5ahKCernzzIyAP0QAZbGIovtVHGwpcu1Jr/EpzLVDI2myISHwGqK7m8uQFugVWSrbxH7XnhGtvEc+A==", "dev": true, "requires": { - "p-try": "^2.0.0" + "p-try": "2.0.0" } }, "p-locate": { @@ -2614,7 +2638,7 @@ "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", "dev": true, "requires": { - "p-limit": "^2.0.0" + "p-limit": "2.0.0" } }, "p-try": { @@ -2629,10 +2653,10 @@ "integrity": "sha1-eK4ybIngWk2BO2hgGXevBcANKg0=", "dev": true, "requires": { - "graceful-fs": "^4.1.11", - "lodash.flattendeep": "^4.4.0", - "md5-hex": "^2.0.0", - "release-zalgo": "^1.0.0" + "graceful-fs": "4.1.11", + "lodash.flattendeep": "4.4.0", + "md5-hex": "2.0.0", + "release-zalgo": "1.0.0" } }, "parse-json": { @@ -2641,8 +2665,8 @@ "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", "dev": true, "requires": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" + "error-ex": "1.3.2", + "json-parse-better-errors": "1.0.2" } }, "path-exists": { @@ -2669,7 +2693,7 @@ "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", "dev": true, "requires": { - "pify": "^3.0.0" + "pify": "3.0.0" } }, "pify": { @@ -2684,7 +2708,7 @@ "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", "dev": true, "requires": { - "find-up": "^3.0.0" + "find-up": "3.0.0" } }, "pseudomap": { @@ -2699,9 +2723,9 @@ "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", "dev": true, "requires": { - "load-json-file": "^4.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^3.0.0" + "load-json-file": "4.0.0", + "normalize-package-data": "2.4.0", + "path-type": "3.0.0" } }, "read-pkg-up": { @@ -2710,8 +2734,8 @@ "integrity": "sha512-6etQSH7nJGsK0RbG/2TeDzZFa8shjQ1um+SwQQ5cwKy0dhSXdOncEhb1CPpvQG4h7FyOV6EB6YlV0yJvZQNAkA==", "dev": true, "requires": { - "find-up": "^3.0.0", - "read-pkg": "^3.0.0" + "find-up": "3.0.0", + "read-pkg": "3.0.0" } }, "release-zalgo": { @@ -2720,7 +2744,7 @@ "integrity": "sha1-CXALflB0Mpc5Mw5TXFqQ+2eFFzA=", "dev": true, "requires": { - "es6-error": "^4.0.1" + "es6-error": "4.1.1" } }, "repeat-string": { @@ -2754,7 +2778,7 @@ "dev": true, "optional": true, "requires": { - "align-text": "^0.1.1" + "align-text": "0.1.4" } }, "rimraf": { @@ -2763,7 +2787,7 @@ "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", "dev": true, "requires": { - "glob": "^7.0.5" + "glob": "7.1.3" } }, "safe-buffer": { @@ -2790,7 +2814,7 @@ "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", "dev": true, "requires": { - "shebang-regex": "^1.0.0" + "shebang-regex": "1.0.0" } }, "shebang-regex": { @@ -2818,12 +2842,12 @@ "integrity": "sha512-vMwR3OmmDhnxCVxM8M+xO/FtIp6Ju/mNaDfCMMW7FDcLRTPFWUswec4LXJHTJE2hwTI9O0YBfygu4DalFl7Ylg==", "dev": true, "requires": { - "foreground-child": "^1.5.6", - "mkdirp": "^0.5.0", - "os-homedir": "^1.0.1", - "rimraf": "^2.6.2", - "signal-exit": "^3.0.2", - "which": "^1.3.0" + "foreground-child": "1.5.6", + "mkdirp": "0.5.1", + "os-homedir": "1.0.2", + "rimraf": "2.6.2", + "signal-exit": "3.0.2", + "which": "1.3.1" } }, "spdx-correct": { @@ -2832,8 +2856,8 @@ "integrity": "sha512-N19o9z5cEyc8yQQPukRCZ9EUmb4HUpnrmaL/fxS2pBo2jbfcFRVuFZ/oFC+vZz0MNNk0h80iMn5/S6qGZOL5+g==", "dev": true, "requires": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" + "spdx-expression-parse": "3.0.0", + "spdx-license-ids": "3.0.0" } }, "spdx-exceptions": { @@ -2848,8 +2872,8 @@ "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", "dev": true, "requires": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" + "spdx-exceptions": "2.1.0", + "spdx-license-ids": "3.0.0" } }, "spdx-license-ids": { @@ -2864,8 +2888,8 @@ "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", "dev": true, "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" + "is-fullwidth-code-point": "2.0.0", + "strip-ansi": "4.0.0" } }, "strip-ansi": { @@ -2874,7 +2898,7 @@ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "dev": true, "requires": { - "ansi-regex": "^3.0.0" + "ansi-regex": "3.0.0" } }, "strip-bom": { @@ -2895,7 +2919,7 @@ "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", "dev": true, "requires": { - "has-flag": "^3.0.0" + "has-flag": "3.0.0" } }, "test-exclude": { @@ -2904,10 +2928,10 @@ "integrity": "sha512-bO3Lj5+qFa9YLfYW2ZcXMOV1pmQvw+KS/DpjqhyX6Y6UZ8zstpZJ+mA2ERkXfpOqhxsJlQiLeVXD3Smsrs6oLw==", "dev": true, "requires": { - "arrify": "^1.0.1", - "minimatch": "^3.0.4", - "read-pkg-up": "^4.0.0", - "require-main-filename": "^1.0.1" + "arrify": "1.0.1", + "minimatch": "3.0.4", + "read-pkg-up": "4.0.0", + "require-main-filename": "1.0.1" } }, "uglify-js": { @@ -2917,9 +2941,9 @@ "dev": true, "optional": true, "requires": { - "source-map": "~0.5.1", - "uglify-to-browserify": "~1.0.0", - "yargs": "~3.10.0" + "source-map": "0.5.7", + "uglify-to-browserify": "1.0.2", + "yargs": "3.10.0" }, "dependencies": { "yargs": { @@ -2929,9 +2953,9 @@ "dev": true, "optional": true, "requires": { - "camelcase": "^1.0.2", - "cliui": "^2.1.0", - "decamelize": "^1.0.0", + "camelcase": "1.2.1", + "cliui": "2.1.0", + "decamelize": "1.2.0", "window-size": "0.1.0" } } @@ -2956,8 +2980,8 @@ "integrity": "sha512-63ZOUnL4SIXj4L0NixR3L1lcjO38crAbgrTpl28t8jjrfuiOBL5Iygm+60qPs/KsZGzPNg6Smnc/oY16QTjF0g==", "dev": true, "requires": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" + "spdx-correct": "3.0.0", + "spdx-expression-parse": "3.0.0" } }, "which": { @@ -2966,7 +2990,7 @@ "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", "dev": true, "requires": { - "isexe": "^2.0.0" + "isexe": "2.0.0" } }, "which-module": { @@ -2994,8 +3018,8 @@ "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", "dev": true, "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1" + "string-width": "1.0.2", + "strip-ansi": "3.0.1" }, "dependencies": { "ansi-regex": { @@ -3010,7 +3034,7 @@ "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", "dev": true, "requires": { - "number-is-nan": "^1.0.0" + "number-is-nan": "1.0.1" } }, "string-width": { @@ -3019,9 +3043,9 @@ "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "dev": true, "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" } }, "strip-ansi": { @@ -3030,7 +3054,7 @@ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { - "ansi-regex": "^2.0.0" + "ansi-regex": "2.1.1" } } } @@ -3047,9 +3071,9 @@ "integrity": "sha512-xuPeK4OdjWqtfi59ylvVL0Yn35SF3zgcAcv7rBPFHVaEapaDr4GdGgm3j7ckTwH9wHL7fGmgfAnb0+THrHb8tA==", "dev": true, "requires": { - "graceful-fs": "^4.1.11", - "imurmurhash": "^0.1.4", - "signal-exit": "^3.0.2" + "graceful-fs": "4.1.11", + "imurmurhash": "0.1.4", + "signal-exit": "3.0.2" } }, "y18n": { @@ -3070,18 +3094,18 @@ "integrity": "sha512-NwW69J42EsCSanF8kyn5upxvjp5ds+t3+udGBeTbFnERA+lF541DDpMawzo4z6W/QrzNM18D+BPMiOBibnFV5A==", "dev": true, "requires": { - "cliui": "^4.0.0", - "decamelize": "^1.1.1", - "find-up": "^2.1.0", - "get-caller-file": "^1.0.1", - "os-locale": "^2.0.0", - "require-directory": "^2.1.1", - "require-main-filename": "^1.0.1", - "set-blocking": "^2.0.0", - "string-width": "^2.0.0", - "which-module": "^2.0.0", - "y18n": "^3.2.1", - "yargs-parser": "^9.0.2" + "cliui": "4.1.0", + "decamelize": "1.2.0", + "find-up": "2.1.0", + "get-caller-file": "1.0.3", + "os-locale": "2.1.0", + "require-directory": "2.1.1", + "require-main-filename": "1.0.1", + "set-blocking": "2.0.0", + "string-width": "2.1.1", + "which-module": "2.0.0", + "y18n": "3.2.1", + "yargs-parser": "9.0.2" }, "dependencies": { "cliui": { @@ -3090,9 +3114,9 @@ "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", "dev": true, "requires": { - "string-width": "^2.1.1", - "strip-ansi": "^4.0.0", - "wrap-ansi": "^2.0.0" + "string-width": "2.1.1", + "strip-ansi": "4.0.0", + "wrap-ansi": "2.1.0" } }, "find-up": { @@ -3101,7 +3125,7 @@ "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", "dev": true, "requires": { - "locate-path": "^2.0.0" + "locate-path": "2.0.0" } }, "locate-path": { @@ -3110,8 +3134,8 @@ "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", "dev": true, "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" + "p-locate": "2.0.0", + "path-exists": "3.0.0" } }, "p-limit": { @@ -3120,7 +3144,7 @@ "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", "dev": true, "requires": { - "p-try": "^1.0.0" + "p-try": "1.0.0" } }, "p-locate": { @@ -3129,7 +3153,7 @@ "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", "dev": true, "requires": { - "p-limit": "^1.1.0" + "p-limit": "1.3.0" } }, "p-try": { @@ -3146,7 +3170,7 @@ "integrity": "sha1-nM9qQ0YP5O1Aqbto9I1DuKaMwHc=", "dev": true, "requires": { - "camelcase": "^4.1.0" + "camelcase": "4.1.0" }, "dependencies": { "camelcase": { @@ -3175,7 +3199,7 @@ "resolved": "https://registry.npmjs.org/object-sizeof/-/object-sizeof-1.3.0.tgz", "integrity": "sha512-MFtGoPYsyNATBn8kSugxLyhst7ID4D2/nYDrPdo4kDS+AAE4cHFvDMjQPB5jhO5fm5c56CnyEzrLQgN0OxVtsw==", "requires": { - "buffer": "^5.0.6" + "buffer": "5.2.1" } }, "object.assign": { @@ -3184,10 +3208,10 @@ "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", "dev": true, "requires": { - "define-properties": "^1.1.2", - "function-bind": "^1.1.1", - "has-symbols": "^1.0.0", - "object-keys": "^1.0.11" + "define-properties": "1.1.3", + "function-bind": "1.1.1", + "has-symbols": "1.0.0", + "object-keys": "1.1.1" }, "dependencies": { "object-keys": { @@ -3204,10 +3228,10 @@ "integrity": "sha512-l+H6EQ8qzGRxbkHOd5I/aHRhHDKoQXQ8g0BYt4uSweQU1/J6dZUOyWh9a2Vky35YCKjzmgxOzta2hH6kf9HuXA==", "dev": true, "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.12.0", - "function-bind": "^1.1.1", - "has": "^1.0.3" + "define-properties": "1.1.3", + "es-abstract": "1.14.2", + "function-bind": "1.1.1", + "has": "1.0.3" } }, "object.values": { @@ -3216,10 +3240,10 @@ "integrity": "sha512-8mf0nKLAoFX6VlNVdhGj31SVYpaNFtUnuoOXWyFEstsWRgU837AK+JYM0iAxwkSzGRbwn8cbFmgbyxj1j4VbXg==", "dev": true, "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.12.0", - "function-bind": "^1.1.1", - "has": "^1.0.3" + "define-properties": "1.1.3", + "es-abstract": "1.14.2", + "function-bind": "1.1.1", + "has": "1.0.3" } }, "once": { @@ -3227,7 +3251,7 @@ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "requires": { - "wrappy": "1" + "wrappy": "1.0.2" } }, "onetime": { @@ -3236,7 +3260,7 @@ "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", "dev": true, "requires": { - "mimic-fn": "^1.0.0" + "mimic-fn": "1.2.0" } }, "optionator": { @@ -3245,12 +3269,12 @@ "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", "dev": true, "requires": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.4", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "wordwrap": "~1.0.0" + "deep-is": "0.1.3", + "fast-levenshtein": "2.0.6", + "levn": "0.3.0", + "prelude-ls": "1.1.2", + "type-check": "0.3.2", + "wordwrap": "1.0.0" } }, "os-tmpdir": { @@ -3265,7 +3289,7 @@ "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", "dev": true, "requires": { - "p-try": "^1.0.0" + "p-try": "1.0.0" } }, "p-locate": { @@ -3274,9 +3298,14 @@ "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", "dev": true, "requires": { - "p-limit": "^1.1.0" + "p-limit": "1.3.0" } }, + "p-throttle": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-throttle/-/p-throttle-2.1.0.tgz", + "integrity": "sha512-DvChtxq2k1PfiK4uZXKA4IvRyuq/gP55tb6MQyMLGfYJifCjJY5lDMb94IQHZss/K/tmZx3fAsSC1IqP0e1OnA==" + }, "p-try": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", @@ -3289,7 +3318,7 @@ "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", "dev": true, "requires": { - "callsites": "^3.0.0" + "callsites": "3.1.0" } }, "parse-json": { @@ -3298,7 +3327,7 @@ "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", "dev": true, "requires": { - "error-ex": "^1.2.0" + "error-ex": "1.3.2" } }, "path-exists": { @@ -3330,7 +3359,7 @@ "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", "dev": true, "requires": { - "pify": "^2.0.0" + "pify": "2.3.0" } }, "pathval": { @@ -3356,7 +3385,7 @@ "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", "dev": true, "requires": { - "find-up": "^2.1.0" + "find-up": "2.1.0" } }, "prelude-ls": { @@ -3376,7 +3405,7 @@ "resolved": "https://registry.npmjs.org/promised-exec/-/promised-exec-1.0.1.tgz", "integrity": "sha1-UKEVhXmKyzuG+2E+EDYTMzowlQo=", "requires": { - "q": "^1.1.2" + "q": "1.5.1" }, "dependencies": { "q": { @@ -3425,9 +3454,9 @@ "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", "dev": true, "requires": { - "load-json-file": "^2.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^2.0.0" + "load-json-file": "2.0.0", + "normalize-package-data": "2.5.0", + "path-type": "2.0.0" } }, "read-pkg-up": { @@ -3436,8 +3465,8 @@ "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", "dev": true, "requires": { - "find-up": "^2.0.0", - "read-pkg": "^2.0.0" + "find-up": "2.1.0", + "read-pkg": "2.0.0" } }, "readable-stream": { @@ -3445,10 +3474,10 @@ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", + "core-util-is": "1.0.2", + "inherits": "2.0.3", "isarray": "0.0.1", - "string_decoder": "~0.10.x" + "string_decoder": "0.10.31" } }, "regexpp": { @@ -3472,26 +3501,26 @@ "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz", "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==", "requires": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.0", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.4.3", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" + "aws-sign2": "0.7.0", + "aws4": "1.8.0", + "caseless": "0.12.0", + "combined-stream": "1.0.7", + "extend": "3.0.2", + "forever-agent": "0.6.1", + "form-data": "2.3.2", + "har-validator": "5.1.0", + "http-signature": "1.2.0", + "is-typedarray": "1.0.0", + "isstream": "0.1.2", + "json-stringify-safe": "5.0.1", + "mime-types": "2.1.20", + "oauth-sign": "0.9.0", + "performance-now": "2.1.0", + "qs": "6.5.2", + "safe-buffer": "5.1.2", + "tough-cookie": "2.4.3", + "tunnel-agent": "0.6.0", + "uuid": "3.3.2" }, "dependencies": { "aws4": { @@ -3504,7 +3533,7 @@ "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.7.tgz", "integrity": "sha512-brWl9y6vOB1xYPZcpZde3N9zDByXTosAeMDo4p1wzo6UMOX4vumB+TP1RZ76sfE6Md68Q0NJSrE/gbezd4Ul+w==", "requires": { - "delayed-stream": "~1.0.0" + "delayed-stream": "1.0.0" } }, "extend": { @@ -3517,9 +3546,9 @@ "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.2.tgz", "integrity": "sha1-SXBJi+YEwgwAXU9cI67NIda0kJk=", "requires": { - "asynckit": "^0.4.0", + "asynckit": "0.4.0", "combined-stream": "1.0.6", - "mime-types": "^2.1.12" + "mime-types": "2.1.20" }, "dependencies": { "combined-stream": { @@ -3527,7 +3556,7 @@ "resolved": "http://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz", "integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=", "requires": { - "delayed-stream": "~1.0.0" + "delayed-stream": "1.0.0" } } } @@ -3537,8 +3566,8 @@ "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.0.tgz", "integrity": "sha512-+qnmNjI4OfH2ipQ9VQOw23bBd/ibtfbVdK2fYbY4acTDqKTW/YDp9McimZdDbG8iV9fZizUqQMD5xvriB146TA==", "requires": { - "ajv": "^5.3.0", - "har-schema": "^2.0.0" + "ajv": "5.5.2", + "har-schema": "2.0.0" } }, "mime-db": { @@ -3551,7 +3580,7 @@ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.20.tgz", "integrity": "sha512-HrkrPaP9vGuWbLK1B1FfgAkbqNjIuy4eHlIYnFi7kamZyLLrGlo2mpcx0bBmNpKqBtYtAfGbodDddIgddSJC2A==", "requires": { - "mime-db": "~1.36.0" + "mime-db": "1.36.0" } }, "oauth-sign": { @@ -3574,8 +3603,8 @@ "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz", "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==", "requires": { - "psl": "^1.1.24", - "punycode": "^1.4.1" + "psl": "1.1.29", + "punycode": "1.4.1" } }, "uuid": { @@ -3590,10 +3619,10 @@ "resolved": "https://registry.npmjs.org/request-promise/-/request-promise-4.2.2.tgz", "integrity": "sha1-0epG1lSm7k+O5qT+oQGMIpEZBLQ=", "requires": { - "bluebird": "^3.5.0", + "bluebird": "3.5.3", "request-promise-core": "1.1.1", - "stealthy-require": "^1.1.0", - "tough-cookie": ">=2.3.3" + "stealthy-require": "1.1.1", + "tough-cookie": "2.3.3" } }, "request-promise-core": { @@ -3601,7 +3630,7 @@ "resolved": "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.1.tgz", "integrity": "sha1-Pu4AssWqgyOc+wTFcA2jb4HNCLY=", "requires": { - "lodash": "^4.13.1" + "lodash": "4.17.11" }, "dependencies": { "lodash": { @@ -3617,8 +3646,8 @@ "integrity": "sha1-UoF3D2jgyXGeUWP9P6tIIhX0/aU=", "requires": { "request-promise-core": "1.1.1", - "stealthy-require": "^1.1.0", - "tough-cookie": ">=2.3.3" + "stealthy-require": "1.1.1", + "tough-cookie": "2.3.3" } }, "requestretry": { @@ -3626,9 +3655,9 @@ "resolved": "https://registry.npmjs.org/requestretry/-/requestretry-3.1.0.tgz", "integrity": "sha512-DkvCPK6qvwxIuVA5TRCvi626WHC2rWjF/n7SCQvVHAr2JX9i1/cmIpSEZlmHAo+c1bj9rjaKoZ9IsKwCpTkoXA==", "requires": { - "extend": "^3.0.2", - "lodash": "^4.17.10", - "when": "^3.7.7" + "extend": "3.0.2", + "lodash": "4.17.11", + "when": "3.7.8" } }, "resolve": { @@ -3637,7 +3666,7 @@ "integrity": "sha512-B/dOmuoAik5bKcD6s6nXDCjzUKnaDvdkRyAk6rsmsKLipWj4797iothd7jmmUhWTfinVMU+wc56rYKsit2Qy4w==", "dev": true, "requires": { - "path-parse": "^1.0.6" + "path-parse": "1.0.6" } }, "resolve-from": { @@ -3652,8 +3681,8 @@ "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", "dev": true, "requires": { - "onetime": "^2.0.0", - "signal-exit": "^3.0.2" + "onetime": "2.0.1", + "signal-exit": "3.0.2" } }, "rimraf": { @@ -3662,7 +3691,7 @@ "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", "dev": true, "requires": { - "glob": "^7.1.3" + "glob": "7.1.4" }, "dependencies": { "glob": { @@ -3671,12 +3700,12 @@ "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==", "dev": true, "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "fs.realpath": "1.0.0", + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" } } } @@ -3687,7 +3716,7 @@ "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", "dev": true, "requires": { - "is-promise": "^2.1.0" + "is-promise": "2.1.0" } }, "rxjs": { @@ -3696,7 +3725,7 @@ "integrity": "sha512-wuYsAYYFdWTAnAaPoKGNhfpWwKZbJW+HgAJ+mImp+Epl7BG8oNWBCTyRM8gba9k4lk8BgWdoYm21Mo/RYhhbgA==", "dev": true, "requires": { - "tslib": "^1.9.0" + "tslib": "1.10.0" } }, "safe-buffer": { @@ -3726,6 +3755,14 @@ "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" }, + "self-addressed": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/self-addressed/-/self-addressed-0.3.0.tgz", + "integrity": "sha1-AitQYD5zh9poVmG8OW8pp/hxXgs=", + "requires": { + "es6-promise": "2.0.1" + } + }, "semver": { "version": "5.5.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.1.tgz", @@ -3738,7 +3775,7 @@ "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", "dev": true, "requires": { - "shebang-regex": "^1.0.0" + "shebang-regex": "1.0.0" } }, "shebang-regex": { @@ -3762,7 +3799,7 @@ "formatio": "1.1.1", "lolex": "1.3.2", "samsam": "1.1.2", - "util": ">=0.10.3 <1" + "util": "0.11.0" } }, "slice-ansi": { @@ -3771,9 +3808,9 @@ "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", "dev": true, "requires": { - "ansi-styles": "^3.2.0", - "astral-regex": "^1.0.0", - "is-fullwidth-code-point": "^2.0.0" + "ansi-styles": "3.2.1", + "astral-regex": "1.0.0", + "is-fullwidth-code-point": "2.0.0" } }, "source-map": { @@ -3788,8 +3825,8 @@ "integrity": "sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q==", "dev": true, "requires": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" + "spdx-expression-parse": "3.0.0", + "spdx-license-ids": "3.0.5" } }, "spdx-exceptions": { @@ -3804,8 +3841,8 @@ "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", "dev": true, "requires": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" + "spdx-exceptions": "2.2.0", + "spdx-license-ids": "3.0.5" } }, "spdx-license-ids": { @@ -3825,15 +3862,15 @@ "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.15.2.tgz", "integrity": "sha512-Ra/OXQtuh0/enyl4ETZAfTaeksa6BXks5ZcjpSUNrjBr0DvrJKX+1fsKDPpT9TBXgHAFsa4510aNVgI8g/+SzA==", "requires": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" + "asn1": "0.2.4", + "assert-plus": "1.0.0", + "bcrypt-pbkdf": "1.0.2", + "dashdash": "1.14.1", + "ecc-jsbn": "0.1.2", + "getpass": "0.1.7", + "jsbn": "0.1.1", + "safer-buffer": "2.1.2", + "tweetnacl": "0.14.5" } }, "stealthy-require": { @@ -3858,8 +3895,8 @@ "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", "dev": true, "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" + "is-fullwidth-code-point": "2.0.0", + "strip-ansi": "4.0.0" }, "dependencies": { "strip-ansi": { @@ -3868,7 +3905,7 @@ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "dev": true, "requires": { - "ansi-regex": "^3.0.0" + "ansi-regex": "3.0.0" } } } @@ -3879,8 +3916,8 @@ "integrity": "sha512-FJ6b7EgdKxxbDxc79cOlok6Afd++TTs5szo+zJTUyow3ycrRfJVE2pq3vcN53XexvKZu/DJMDfeI/qMiZTrjTw==", "dev": true, "requires": { - "define-properties": "^1.1.3", - "function-bind": "^1.1.1" + "define-properties": "1.1.3", + "function-bind": "1.1.1" } }, "string.prototype.trimright": { @@ -3889,8 +3926,8 @@ "integrity": "sha512-fXZTSV55dNBwv16uw+hh5jkghxSnc5oHq+5K/gXgizHwAvMetdAJlHqqoFC1FSDVPYWLkAKl2cxpUT41sV7nSg==", "dev": true, "requires": { - "define-properties": "^1.1.3", - "function-bind": "^1.1.1" + "define-properties": "1.1.3", + "function-bind": "1.1.1" } }, "string_decoder": { @@ -3904,7 +3941,7 @@ "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", "dev": true, "requires": { - "ansi-regex": "^4.1.0" + "ansi-regex": "4.1.0" }, "dependencies": { "ansi-regex": { @@ -3933,7 +3970,7 @@ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, "requires": { - "has-flag": "^3.0.0" + "has-flag": "3.0.0" } }, "table": { @@ -3942,10 +3979,10 @@ "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==", "dev": true, "requires": { - "ajv": "^6.10.2", - "lodash": "^4.17.14", - "slice-ansi": "^2.1.0", - "string-width": "^3.0.0" + "ajv": "6.10.2", + "lodash": "4.17.15", + "slice-ansi": "2.1.0", + "string-width": "3.1.0" }, "dependencies": { "ajv": { @@ -3954,10 +3991,10 @@ "integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==", "dev": true, "requires": { - "fast-deep-equal": "^2.0.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" + "fast-deep-equal": "2.0.1", + "fast-json-stable-stringify": "2.0.0", + "json-schema-traverse": "0.4.1", + "uri-js": "4.2.2" } }, "fast-deep-equal": { @@ -3984,9 +4021,9 @@ "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", "dev": true, "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" + "emoji-regex": "7.0.3", + "is-fullwidth-code-point": "2.0.0", + "strip-ansi": "5.2.0" } } } @@ -4009,7 +4046,7 @@ "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", "dev": true, "requires": { - "os-tmpdir": "~1.0.2" + "os-tmpdir": "1.0.2" } }, "to-fast-properties": { @@ -4023,7 +4060,7 @@ "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.3.tgz", "integrity": "sha1-C2GKVWW23qkL80JdBNVe3EdadWE=", "requires": { - "punycode": "^1.4.1" + "punycode": "1.4.1" } }, "trim-right": { @@ -4043,7 +4080,7 @@ "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", "requires": { - "safe-buffer": "^5.0.1" + "safe-buffer": "5.1.1" } }, "tweetnacl": { @@ -4057,7 +4094,7 @@ "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", "dev": true, "requires": { - "prelude-ls": "~1.1.2" + "prelude-ls": "1.1.2" } }, "type-detect": { @@ -4077,7 +4114,7 @@ "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", "dev": true, "requires": { - "punycode": "^2.1.0" + "punycode": "2.1.1" }, "dependencies": { "punycode": { @@ -4114,8 +4151,8 @@ "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", "dev": true, "requires": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" + "spdx-correct": "3.1.0", + "spdx-expression-parse": "3.0.0" } }, "verror": { @@ -4123,9 +4160,9 @@ "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", "requires": { - "assert-plus": "^1.0.0", + "assert-plus": "1.0.0", "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" + "extsprintf": "1.3.0" } }, "when": { @@ -4139,7 +4176,7 @@ "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", "dev": true, "requires": { - "isexe": "^2.0.0" + "isexe": "2.0.0" } }, "wordwrap": { @@ -4159,7 +4196,7 @@ "integrity": "sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==", "dev": true, "requires": { - "mkdirp": "^0.5.1" + "mkdirp": "0.5.1" } }, "xml2js": { @@ -4167,8 +4204,8 @@ "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.19.tgz", "integrity": "sha512-esZnJZJOiJR9wWKMyuvSE1y6Dq5LCuJanqhxslH2bxM6duahNZ+HMpCLhBQGZkbX6xRf8x1Y2eJlgt2q3qo49Q==", "requires": { - "sax": ">=0.6.0", - "xmlbuilder": "~9.0.1" + "sax": "1.2.4", + "xmlbuilder": "9.0.4" } }, "xmlbuilder": { @@ -4185,6 +4222,14 @@ "version": "1.8.0", "resolved": "https://registry.npmjs.org/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz", "integrity": "sha1-Z/4HXFwk/vOfnWX197f+dRcZaPw=" + }, + "xtend": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-2.1.2.tgz", + "integrity": "sha1-bv7MKk2tjmlixJAbM3znuoe10os=", + "requires": { + "object-keys": "0.4.0" + } } } } diff --git a/package.json b/package.json index 976bf7a..9d82e30 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "xml", - "version": "1.1.1", + "version": "1.2.0", "description": "Integration component to work with XML fiels", "homepage": "http://www.elastic.io", "author": { @@ -24,34 +24,35 @@ "test": "NODE_ENV=test mocha --recursive spec" }, "dependencies": { - "@elastic.io/component-commons-library": "0.0.3", - "await-lock": "^1.1.3", - "bluebird": "^3.5.3", - "co": "^4.6.0", + "@elastic.io/component-commons-library": "0.0.7", + "await-lock": "1.1.3", + "bluebird": "3.5.3", + "co": "4.6.0", "elasticio-node": "0.0.9", - "elasticio-sailor-nodejs": "^2.3.0", - "jsonix": "^2.4.1", - "jsonix-schema-compiler": "^2.3.9", - "lodash": "^4.17.11", - "object-sizeof": "^1.3.0", - "promised-exec": "^1.0.1", - "request": "^2.88.0", - "request-promise": "^4.1.1", - "xml2js": "^0.4.17" + "elasticio-sailor-nodejs": "2.6.1", + "jsonix": "2.4.1", + "jsonix-schema-compiler": "2.3.9", + "lodash": "4.17.11", + "object-sizeof": "1.3.0", + "promised-exec": "1.0.1", + "request": "2.88.0", + "request-promise": "4.2.2", + "xml2js": "0.4.19" }, "devDependencies": { - "chai": "^4.2.0", + "chai": "4.2.0", "code-quality-js": "2.0.2", "eslint": "6.4.0", "eslint-config-airbnb-base": "14.0.0", - "eslint-config-xo-space": "^0.10.0", + "eslint-config-xo-space": "0.10.0", "eslint-plugin-import": "2.18.2", - "eslint-plugin-mocha": "^4.12.1", - "mocha": "^5.2.0", - "nock": "^10.0.2", - "nyc": "^13.1.0", - "sinon": "^1.17.7", - "stream-string": "^2.0.1" + "eslint-plugin-mocha": "4.12.1", + "mocha": "5.2.0", + "nock": "10.0.2", + "nyc": "13.1.0", + "sinon": "1.17.7", + "stream-string": "2.0.1", + "@elastic.io/component-logger": "0.0.1" }, "eslintConfig": { "extends": "xo-space", diff --git a/spec/attachment2xml.spec.js b/spec/attachment2xml.spec.js index 1896ec1..1673681 100644 --- a/spec/attachment2xml.spec.js +++ b/spec/attachment2xml.spec.js @@ -6,147 +6,141 @@ const nock = require('nock'); require('chai').should(); // expect is assertion styles used my elastic.io const sinon = require('sinon'); +const logger = require('@elastic.io/component-logger')(); + const json = require('./data/po.json'); const attachmentToJson = require('../lib/actions/attachmentToJson'); -function produceString(output) { - let string = ''; - for (let i = 0; i < output.length; i += 1) { - console.log(output[i].args[1].body); - if (i !== 0) { - string += ',\n'; - } - string += JSON.stringify(output[i].args[1].body); +function produceString(log, output) { + let string = ''; + for (let i = 0; i < output.length; i += 1) { + log.info(output[i].args[1].body); + if (i !== 0) { + string += ',\n'; } - return string; + string += JSON.stringify(output[i].args[1].body); + } + return string; } // eslint-disable-next-line func-names describe('should convert XML attachment 2 JSON', function () { // eslint-disable-next-line no-invalid-this - this.timeout(60000); + this.timeout(60000); + + const mockSever = 'http://test.env.mock'; + let cfg = { + pattern: '(.xml)', + }; + let self; + + before(() => { + nock(mockSever) + .get('/') + .replyWithFile(200, 'spec/data/po.xml'); + }); + + beforeEach(() => { + self = { + emit: sinon.spy(), + logger, + }; + + cfg = { + pattern: '(.xml)', + }; + }); + - const mockSever = 'http://test.env.mock'; - let cfg = { - pattern: '(.xml)', + it('FileName undefined ', async () => { + await attachmentToJson.process.bind(self)({ + attachments: { + undefined: { + url: mockSever, + }, + }, + }, cfg); + expect(self.emit.getCalls()).to.deep.eql([]); + }); + + + it('FileName does not match pattern ', async () => { + cfg = { + pattern: '(test.xml)', + }; + await attachmentToJson.process.bind(self)({ + attachments: { + 'po.xml': { + url: mockSever, + }, + }, + }, cfg); + expect(self.emit.getCalls()).to.deep.eql([]); + }); + + + it('fileName is not .xml ', async () => { + cfg = { + pattern: '', }; - let emit; - - before(() => { - nock(mockSever) - .get('/') - .replyWithFile(200, 'spec/data/po.xml'); - }); - - beforeEach(() => { - emit = sinon.spy(); - cfg = { - pattern: '(.xml)', - }; - }); - - - it('FileName undefined ', async () => { - await attachmentToJson.process.bind({ - emit, - })({ - attachments: { - undefined: { - url: mockSever, - }, - }, - }, cfg); - expect(emit.getCalls()).to.deep.eql([]); - }); - - - it('FileName dose not match pattern ', async () => { - cfg = { - pattern: '(test.xml)', - }; - await attachmentToJson.process.bind({ - emit, - })({ - attachments: { - 'po.xml': { - url: mockSever, - }, - }, - }, cfg); - expect(emit.getCalls()).to.deep.eql([]); - }); - - - it('fileName is not .xml ', async () => { - cfg = { - pattern: '', - }; - await attachmentToJson.process.bind({ - emit, - })({ - attachments: { - 'po.txt': { - url: mockSever, - }, - }, - }, cfg); - expect(emit.getCalls()).to.deep.eql([]); - }); - - it('XML too large', async () => { - let error; - try { - await attachmentToJson.process.bind({ - emit, - })({ - attachments: { - 'po.xml': { - url: mockSever, - size: '5242881', - }, - }, - }, cfg); - } catch (e) { - error = e; - } - expect(error.message).to.include('File limit is: 5242880 byte, file given was: 5242881 byte.'); - }); - - it('Response Error', async () => { - let error; - const failURL = 'http://steward.marathon.mesos:8091/files/1cfc3a71-d7a7-44e6-a15e-ae18860d537c'; - - try { - await attachmentToJson.process.bind({ - emit, - })({ - attachments: { - 'po.xml': { - url: failURL, - }, - }, - }, cfg); - } catch (e) { - error = e; - } - // eslint-disable-next-line no-unused-expressions - expect(error.message).to.exist; - }); - - - it('Convert attachment to JSON', async () => { - await attachmentToJson.process.bind({ - emit, - })({ - attachments: { - 'po.xml': { - url: mockSever, - }, - }, - }, cfg); - - const results = produceString(emit.getCalls()); - console.log('XML attachment 2 JSON results: %j ', results); - expect(JSON.parse(results)).to.deep.equal(json); - }); + await attachmentToJson.process.bind(self)({ + attachments: { + 'po.txt': { + url: mockSever, + }, + }, + }, cfg); + expect(self.emit.getCalls()).to.deep.eql([]); + }); + + it('XML too large', async () => { + let error; + try { + await attachmentToJson.process.bind(self)({ + attachments: { + 'po.xml': { + url: mockSever, + size: '5242881', + }, + }, + }, cfg); + } catch (e) { + error = e; + } + expect(error.message).to.include('File limit is: 5242880 byte, file given was: 5242881 byte.'); + }); + + it('Response Error', async () => { + let error; + const failURL = 'http://steward.marathon.mesos:8091/files/1cfc3a71-d7a7-44e6-a15e-ae18860d537c'; + + try { + await attachmentToJson.process.bind(self)({ + attachments: { + 'po.xml': { + url: failURL, + }, + }, + }, cfg); + } catch (e) { + error = e; + } + // eslint-disable-next-line no-unused-expressions + expect(error.message).to.exist; + }); + + + it('Convert attachment to JSON', async () => { + await attachmentToJson.process.bind(self)({ + attachments: { + 'po.xml': { + url: mockSever, + }, + }, + }, cfg); + + const results = produceString(self.logger, self.emit.getCalls()); + self.logger.info('XML attachment 2 JSON results: %j ', results); + expect(JSON.parse(results)).to.deep.equal(json); + }); }); diff --git a/spec/json2xml.spec.js b/spec/json2xml.spec.js index 2e72a38..a68c7cc 100644 --- a/spec/json2xml.spec.js +++ b/spec/json2xml.spec.js @@ -1,37 +1,46 @@ /* eslint-env node, jasmine */ const { expect } = require('chai'); const fs = require('fs'); +const logger = require('@elastic.io/component-logger')(); const jsonToXml = require('../lib/actions/jsonToXml'); describe('JSON 2 XML converter', () => { - it('should convert JSON to XML 1', () => { - const xml = fs.readFileSync('./spec/data/po.xml', 'utf-8').trim(); - // eslint-disable-next-line global-require - const json = require('./data/po.json'); - const message = { - body: json, - }; - const { xmlString } = (jsonToXml.process(message, {})).body; - expect(xmlString).to.deep.equal(xml); - }); + let self; - it('should convert JSON to XML 2', () => { - const json = { - archs: { - arm: true, - amd64: true, - 386: true, - }, - }; + beforeEach(() => { + self = { + logger, + }; + }); - const message = { - body: json, - }; + it('should convert JSON to XML 1', () => { + const xml = fs.readFileSync('./spec/data/po.xml', 'utf-8').trim(); + // eslint-disable-next-line global-require + const json = require('./data/po.json'); + const message = { + body: json, + }; + const { xmlString } = (jsonToXml.process.bind(self)(message, {})).body; + expect(xmlString).to.deep.equal(xml); + }); - const messageText = 'Can\'t create XML element from prop that starts with digit.' - + 'See XML naming rules https://www.w3schools.com/xml/xml_elements.asp'; + it('should convert JSON to XML 2', () => { + const json = { + archs: { + arm: true, + amd64: true, + 386: true, + }, + }; - expect(jsonToXml.process.bind(null, message, {})) - .to.throw(Error, `Prop name is invalid for XML tag: 386. ${messageText}`); - }); + const message = { + body: json, + }; + + const messageText = 'Can\'t create XML element from prop that starts with digit.' + + 'See XML naming rules https://www.w3schools.com/xml/xml_elements.asp'; + + expect(jsonToXml.process.bind(self, message, {})) + .to.throw(Error, `Prop name is invalid for XML tag: 386. ${messageText}`); + }); }); diff --git a/spec/xml2json.spec.js b/spec/xml2json.spec.js index f93ff1b..270c870 100644 --- a/spec/xml2json.spec.js +++ b/spec/xml2json.spec.js @@ -1,36 +1,45 @@ /* eslint-env node, jasmine */ const { expect } = require('chai'); const fs = require('fs'); +const logger = require('@elastic.io/component-logger')(); const xmlToJson = require('../lib/actions/xmlToJson'); describe('XML 2 JSON parser', () => { - it('should convert XML to JSON', async () => { - const xml = fs.readFileSync('./spec/data/po.xml', 'utf-8'); - // eslint-disable-next-line global-require - const result = require('./data/po.json'); + let self; - const message = { - body: { - xmlString: xml, - }, - }; - const { body } = await xmlToJson.process(message, {}); - expect(body).to.deep.equal(result); - }); + beforeEach(() => { + self = { + logger, + }; + }); + + it('should convert XML to JSON', async () => { + const xml = fs.readFileSync('./spec/data/po.xml', 'utf-8'); + // eslint-disable-next-line global-require + const result = require('./data/po.json'); + + const message = { + body: { + xmlString: xml, + }, + }; + const { body } = await xmlToJson.process.bind(self)(message, {}); + expect(body).to.deep.equal(result); + }); - it('should fail due to an invalid JSON', async () => { - const xml = fs.readFileSync('./spec/data/invalidXml.xml', 'utf-8'); + it('should fail due to an invalid JSON', async () => { + const xml = fs.readFileSync('./spec/data/invalidXml.xml', 'utf-8'); - const message = { - body: { - xmlString: xml, - }, - }; - const messageText = 'Given XML is not valid or the file can not be read. ' - + 'See XML naming rules https://www.w3schools.com/xml/xml_elements.asp'; + const message = { + body: { + xmlString: xml, + }, + }; + const messageText = 'Given XML is not valid or the file can not be read. ' + + 'See XML naming rules https://www.w3schools.com/xml/xml_elements.asp'; - await xmlToJson.process(message, {}).catch((error) => { - expect(error.message).to.equal(messageText); - }); + await xmlToJson.process.bind(self)(message, {}).catch((error) => { + expect(error.message).to.equal(messageText); }); + }); }); From c2d42136f5c32b4a131393ff03a2705c1fbef491 Mon Sep 17 00:00:00 2001 From: Kirill Levitskiy <40201204+kirill-levitskiy@users.noreply.github.com> Date: Thu, 30 Jan 2020 10:14:36 +0200 Subject: [PATCH 2/2] Update CHANGELOG.md Update release date --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 22ef234..6e033af 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,4 @@ -## 1.2.0 (January 27, 2020) +## 1.2.0 (January 30, 2020) * Update sailor version to 2.6.1 * Refactor console.log to built in sailor logger