diff --git a/.gitignore b/.gitignore index 123ae94..47e3daf 100755 --- a/.gitignore +++ b/.gitignore @@ -25,3 +25,4 @@ build/Release # Dependency directory # https://www.npmjs.org/doc/misc/npm-faq.html#should-i-check-my-node_modules-folder-into-git node_modules +.nyc_output/* diff --git a/README.md b/README.md index 450c0b5..600b19e 100755 --- a/README.md +++ b/README.md @@ -1,5 +1,7 @@ # NZ Bank Account Validator +## Important: latest changes please refer to: RWT and NRWT Certificates / 2020 / Version 1.0 + v0.0.4 - A small, zero dependency Javascript NZ bank account validation library that runs everywhere. It is based on the [documentation](https://web.archive.org/web/20181009211542/https://www.ird.govt.nz/resources/9/d/9d739cde-ad76-4c49-ae08-522c62d94dd6/rwt-nrwt-spec-2016.pdf) provided by the Inland Revenue Department. @@ -80,6 +82,8 @@ To run the tests locally: ```shell npm i npm run tests +npm run testCoverage +# check coverage ``` ## Authors diff --git a/examples/browser.html b/examples/browser.html index be5d007..39a9ec0 100644 --- a/examples/browser.html +++ b/examples/browser.html @@ -4,10 +4,10 @@ Browser example - + diff --git a/lib/NZ-Bank-Account-Validator.js b/lib/NZ-Bank-Account-Validator.js index f41bb1a..c4798e9 100644 --- a/lib/NZ-Bank-Account-Validator.js +++ b/lib/NZ-Bank-Account-Validator.js @@ -157,7 +157,10 @@ return /******/ (function(modules) { // webpackBootstrap base = partsObject.base; // VALIDATION - STEP 1 - // https://www.ird.govt.nz/resources/d/8/d8e49dce-1bda-4875-8acf-9ebf908c6e17/rwt-nrwt-spec-2014.pdf (PAGE 10) + /* + https://web.archive.org/web/20181009211542/https://www.ird.govt.nz/resources/9/d/9d739cde-ad76-4c49-ae08 + -522c62d94dd6/rwt-nrwt-spec-2016.pdf (PAGE 10) + */ var bankData = this.getBankData(id, branch); @@ -172,7 +175,10 @@ return /******/ (function(modules) { // webpackBootstrap } // VALIDATION - STEP 2 - // https://www.ird.govt.nz/resources/d/8/d8e49dce-1bda-4875-8acf-9ebf908c6e17/rwt-nrwt-spec-2014.pdf (PAGE 11) + /* + https://web.archive.org/web/20181009211542/https://www.ird.govt.nz/resources/9/d/9d739cde-ad76-4c49-ae08 + -522c62d94dd6/rwt-nrwt-spec-2016.pdf (PAGE 11) + */ var weighting = algorithm.weighting, modulo = algorithm.modulo, @@ -254,7 +260,9 @@ return /******/ (function(modules) { // webpackBootstrap '02': [[1, 999], [1200, 1299]], - '03': [[1, 999], [1300, 1399], [1500, 1599], [1700, 1799], [1900, 1999]], + '03': [[1, 999], [1300, 1399], [1500, 1599], [1700, 1799], [1900, 1999], [7350, 7399]], + + '04': [[2020, 2024]], '06': [[1, 999], [1400, 1499]], diff --git a/lib/NZ-Bank-Account-Validator.js.map b/lib/NZ-Bank-Account-Validator.js.map index 8ad6710..1df40ad 100644 --- a/lib/NZ-Bank-Account-Validator.js.map +++ b/lib/NZ-Bank-Account-Validator.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///webpack/bootstrap 5c6677441d91be0466e5","webpack:///./src/index.js","webpack:///./src/constants.js","webpack:///./src/utils.js"],"names":["getId","input","getPartsObject","id","getBranch","branch","getBase","base","getSuffix","suffix","isPartsObject","obj","inputsKeys","Object","keys","requiredKeys","filteredKeys","filter","includes","k","length","splitString","str","parts","split","slice","i","partsObjectValid","reduce","isValid","key","value","onlyNumbers","withinMaxLength","valueValid","validate","partsObject","bankData","getBankData","algorithm","getChecksum","weighting","modulo","specialCase","earlyExit","result","num","idx","multiplied","summed","summedTwice","final","paddedId","find","ranges","r","branches","parseInt","partConstants","partIndexes","partMaxLengths","bankChecksums","A","B","C","D","E","F","G","X","isString","x","isNumbersOnly","test","padLeft","token","Array","String","join","inRange","start","end","inRanges","bool","range","sumChars","int","acc","getPaddedAccountArray","partsObj","a","paddedValue","splitValues","concat"],"mappings":"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","file":"NZ-Bank-Account-Validator.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"NZ-Bank-Account-Validator\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"NZ-Bank-Account-Validator\"] = factory();\n\telse\n\t\troot[\"NZ-Bank-Account-Validator\"] = factory();\n})(this, function() {\nreturn \n\n\n/** WEBPACK FOOTER **\n ** webpack/universalModuleDefinition\n **/"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap 5c6677441d91be0466e5\n **/","import {\n partConstants,\n partIndexes,\n partMaxLengths,\n bankData,\n bankChecksums\n} from './constants';\n\nimport {\n isString,\n isNumbersOnly,\n padLeft,\n inRanges,\n sumChars,\n getPaddedAccountArray\n} from './utils';\n\nexport default {\n\n getId(input) {\n return this.getPartsObject(input).id;\n },\n getBranch(input) {\n return this.getPartsObject(input).branch;\n },\n getBase(input) {\n return this.getPartsObject(input).base;\n },\n getSuffix(input) {\n return this.getPartsObject(input).suffix;\n },\n\n isPartsObject(obj = {}) {\n if (typeof obj !== 'object') return false;\n const inputsKeys = Object.keys(obj);\n const requiredKeys = Object.keys(partConstants);\n const filteredKeys = requiredKeys.filter(k => inputsKeys.includes(k));\n\n return requiredKeys.length === filteredKeys.length;\n },\n\n splitString(str = '') {\n const parts = isString(str) ? str.split(/[^0-9]/) : [];\n\n // If the input string had no delimiters, and its length is\n // long enough, manually forge an array.\n if (parts.length === 1) {\n parts[0] = str.slice(0, 2);\n parts[1] = str.slice(2, 5);\n parts[2] = str.slice(5, 12);\n parts[3] = str.slice(12);\n }\n\n return parts.filter(i => i.length);\n },\n\n getPartsObject(input) {\n if (this.isPartsObject(input)) {\n return input;\n }\n\n if (!isString(input)) {\n return {};\n }\n\n const parts = this.splitString(input);\n\n return {\n id: parts[partIndexes.id],\n branch: parts[partIndexes.branch],\n base: parts[partIndexes.base],\n suffix: parts[partIndexes.suffix]\n };\n },\n\n partsObjectValid(obj = {}) {\n const keys = Object.keys(obj);\n\n if (keys.length !== 4) {\n return false;\n }\n\n return keys.reduce((isValid, key) => {\n const value = obj[key];\n const onlyNumbers = isNumbersOnly(value);\n const withinMaxLength = isString(value) && (value.length <= partMaxLengths[key]);\n const valueValid = onlyNumbers && withinMaxLength;\n\n return isValid && valueValid;\n }, true);\n },\n\n validate(input) {\n const partsObject = this.getPartsObject(input);\n\n if (!this.partsObjectValid(partsObject)) {\n return false;\n }\n\n const { id, branch, base } = partsObject;\n\n // VALIDATION - STEP 1\n // https://www.ird.govt.nz/resources/d/8/d8e49dce-1bda-4875-8acf-9ebf908c6e17/rwt-nrwt-spec-2014.pdf (PAGE 10)\n\n const bankData = this.getBankData(id, branch);\n\n if (!bankData) { return false; }\n\n const algorithm = this.getChecksum(bankData, base);\n\n if (!algorithm) { return false; }\n\n // VALIDATION - STEP 2\n // https://www.ird.govt.nz/resources/d/8/d8e49dce-1bda-4875-8acf-9ebf908c6e17/rwt-nrwt-spec-2014.pdf (PAGE 11)\n\n const { weighting, modulo, specialCase } = algorithm;\n const earlyExit = !specialCase;\n\n const result = getPaddedAccountArray(partsObject).reduce((result, num, idx) => {\n const multiplied = num * weighting[idx];\n\n if (earlyExit || multiplied < 10) {\n return result + multiplied;\n }\n\n const summed = sumChars(multiplied);\n const summedTwice = sumChars(summed);\n const final = summed < 10 ? summed : summedTwice;\n\n return result + final;\n }, 0);\n\n // Final modulo test\n return result % modulo === 0;\n },\n\n getBankData(id, branch) {\n const paddedId = padLeft(id, partMaxLengths.id);\n\n return bankData.find(r => {\n const ranges = r.branches[paddedId];\n\n return ranges && inRanges(branch, ranges);\n });\n },\n\n getChecksum(bankData, base) {\n let { key } = bankData;\n\n if (key === 'AB') {\n key = (parseInt(base, 10) < 990000) ? 'A' : 'B';\n }\n\n return bankChecksums[key];\n }\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/eslint-loader!./src/index.js\n **/","/*eslint-disable */\n\nconst partConstants = {\n id: 'id',\n branch: 'branch',\n base: 'base',\n suffix: 'suffix'\n};\n\nconst partIndexes = {\n [partConstants.id]: 0,\n [partConstants.branch]: 1,\n [partConstants.base]: 2,\n [partConstants.suffix]: 3\n};\n\nconst partMaxLengths = {\n [partConstants.id]: 2,\n [partConstants.branch]: 4,\n [partConstants.base]: 8,\n [partConstants.suffix]: 4\n};\n\nconst bankData = [\n {\n key: 'AB',\n branches: {\n\n '01': [\n [1, 999],\n [1100, 1199],\n [1800, 1899]\n ],\n\n '02': [\n [1, 999],\n [1200, 1299]\n ],\n\n '03': [\n [1, 999],\n [1300, 1399],\n [1500, 1599],\n [1700, 1799],\n [1900, 1999]\n ],\n\n '06': [\n [1, 999],\n [1400, 1499]\n ],\n\n '11': [\n [5000, 6499],\n [6600, 8999]\n ],\n\n '12': [\n [3000, 3299],\n [3400, 3499],\n [3600, 3699]\n ],\n\n '13': [\n [4900, 4999]\n ],\n\n '14': [\n [4700, 4799]\n ], \n\n '15': [\n [3900, 3999]\n ],\n\n '16': [\n [4400, 4499]\n ],\n\n '17': [\n [3300, 3399]\n ],\n\n '18': [\n [3500, 3599]\n ],\n\n '19': [\n [4600, 4649]\n ],\n\n '20': [\n [4100, 4199]\n ],\n\n '21': [\n [4800, 4899]\n ],\n\n '22': [\n [4000, 4049]\n ],\n\n '23': [\n [3700, 3799]\n ],\n\n '24': [\n [4300, 4349]\n ],\n\n '27': [\n [3800, 3849]\n ],\n\n '30': [\n [2900, 2949]\n ],\n\n '35': [\n [2400, 2499]\n ],\n\n '38': [\n [9000, 9499]\n ]\n }\n },\n\n {\n key: 'D',\n branches: {\n '08': [\n [6500, 6599]\n ]\n }\n },\n\n {\n key: 'E',\n branches: {\n '09': [\n [0, 0]\n ]\n }\n },\n\n {\n key: 'F',\n branches: {\n '25': [\n [2500, 2599]\n ],\n\n '33': [\n [6700, 6799]\n ]\n }\n },\n\n {\n key: 'G',\n branches: {\n '26': [\n [2600, 2699]\n ],\n\n '28': [\n [2100, 2149]\n ],\n\n '29': [\n [2150, 2299]\n ]\n }\n },\n\n {\n key: 'X',\n branches: {\n '31': [\n [2800, 2849]\n ]\n }\n }\n\n]; \n\nconst bankChecksums = {\n A: {\n weighting: [0,0, 6,3,7,9, 0,0,10,5,8,4,2,1, 0,0,0,0],\n modulo: 11\n },\n\n B: {\n weighting: [0,0, 0,0,0,0, 0,0,10,5,8,4,2,1, 0,0,0,0],\n modulo: 11\n },\n\n C: {\n weighting: [3, 7, 0,0,0,0, 9,1,10,5,3,4,2,1, 0,0,0,0],\n modulo: 11\n },\n\n D: {\n weighting: [0, 0, 0,0,0,0, 0,7,6,5,4,3,2,1, 0,0,0,0],\n modulo: 11\n },\n\n E: {\n weighting: [0, 0, 0,0,0,0, 0,0,0,0,5,4,3,2, 0,0,0,1],\n modulo: 11,\n specialCase: true\n },\n\n F: {\n weighting: [0, 0, 0,0,0,0, 0,1,7,3,1,7,3,1, 0,0,0,0],\n modulo: 10\n },\n\n G: {\n weighting: [0, 0, 0,0,0,0, 0,1,3,7,1,3,7,1, 0,3,7,1],\n modulo: 10,\n specialCase: true\n },\n\n X: {\n weighting: [0, 0, 0,0,0,0, 0,0,0,0,0,0,0,0, 0,0,0,0],\n modulo: 1\n },\n};\n\n/*eslint-enable */\n\nexport default {\n partConstants,\n partIndexes,\n partMaxLengths,\n bankData,\n bankChecksums\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/eslint-loader!./src/constants.js\n **/","import {\n partMaxLengths\n} from './constants';\n\nconst isString = x => x === x + '';\n\nconst isNumbersOnly = x => /^[0-9]+$/.test(x);\n\nconst padLeft = (input, length, token = '0') => Array(length - String(input).length + 1).join(token) + input;\n\nconst inRange = (start, value, end) => value >= start && value <= end;\n\nconst inRanges = (value, ranges = []) => {\n return ranges.reduce((bool, range) => {\n const [ start, end ] = range;\n\n return bool || inRange(start, value, end);\n }, false);\n};\n\nconst sumChars = int => {\n return (int + '').split('').reduce((acc, num) => {\n return acc + (num * 1);\n }, 0);\n};\n\nconst getPaddedAccountArray = (partsObj) => {\n return Object.keys(partsObj).reduce((a, k) => {\n const paddedValue = padLeft(partsObj[k], partMaxLengths[k]);\n const splitValues = paddedValue.split('');\n\n return a.concat(splitValues);\n }, []);\n};\n\nexport default {\n isString,\n isNumbersOnly,\n padLeft,\n inRange,\n inRanges,\n sumChars,\n getPaddedAccountArray\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/eslint-loader!./src/utils.js\n **/"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///webpack/bootstrap 8ce090bd9cc4c192d31f","webpack:///./src/index.js","webpack:///./src/constants.js","webpack:///./src/utils.js"],"names":["getId","input","getPartsObject","id","getBranch","branch","getBase","base","getSuffix","suffix","isPartsObject","obj","inputsKeys","Object","keys","requiredKeys","partConstants","filteredKeys","filter","includes","k","length","splitString","str","parts","split","slice","i","partIndexes","partsObjectValid","reduce","isValid","key","value","onlyNumbers","withinMaxLength","partMaxLengths","valueValid","validate","partsObject","bankData","getBankData","algorithm","getChecksum","weighting","modulo","specialCase","earlyExit","result","num","idx","multiplied","summed","summedTwice","final","paddedId","find","ranges","r","branches","parseInt","bankChecksums","A","B","C","D","E","F","G","X","isString","x","isNumbersOnly","test","padLeft","token","Array","String","join","inRange","start","end","inRanges","bool","range","sumChars","int","acc","getPaddedAccountArray","partsObj","a","paddedValue","splitValues","concat"],"mappings":"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","file":"NZ-Bank-Account-Validator.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"NZ-Bank-Account-Validator\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"NZ-Bank-Account-Validator\"] = factory();\n\telse\n\t\troot[\"NZ-Bank-Account-Validator\"] = factory();\n})(this, function() {\nreturn \n\n\n/** WEBPACK FOOTER **\n ** webpack/universalModuleDefinition\n **/"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap 8ce090bd9cc4c192d31f\n **/","import {\n partConstants,\n partIndexes,\n partMaxLengths,\n bankData,\n bankChecksums\n} from './constants';\n\nimport {\n isString,\n isNumbersOnly,\n padLeft,\n inRanges,\n sumChars,\n getPaddedAccountArray\n} from './utils';\n\nexport default {\n\n getId(input) {\n return this.getPartsObject(input).id;\n },\n getBranch(input) {\n return this.getPartsObject(input).branch;\n },\n getBase(input) {\n return this.getPartsObject(input).base;\n },\n getSuffix(input) {\n return this.getPartsObject(input).suffix;\n },\n\n isPartsObject(obj = {}) {\n if (typeof obj !== 'object') return false;\n const inputsKeys = Object.keys(obj);\n const requiredKeys = Object.keys(partConstants);\n const filteredKeys = requiredKeys.filter(k => inputsKeys.includes(k));\n\n return requiredKeys.length === filteredKeys.length;\n },\n\n splitString(str = '') {\n const parts = isString(str) ? str.split(/[^0-9]/) : [];\n\n // If the input string had no delimiters, and its length is\n // long enough, manually forge an array.\n if (parts.length === 1) {\n parts[0] = str.slice(0, 2);\n parts[1] = str.slice(2, 5);\n parts[2] = str.slice(5, 12);\n parts[3] = str.slice(12);\n }\n\n return parts.filter(i => i.length);\n },\n\n getPartsObject(input) {\n if (this.isPartsObject(input)) {\n return input;\n }\n\n if (!isString(input)) {\n return {};\n }\n\n const parts = this.splitString(input);\n\n return {\n id: parts[partIndexes.id],\n branch: parts[partIndexes.branch],\n base: parts[partIndexes.base],\n suffix: parts[partIndexes.suffix]\n };\n },\n\n partsObjectValid(obj = {}) {\n const keys = Object.keys(obj);\n\n if (keys.length !== 4) {\n return false;\n }\n\n return keys.reduce((isValid, key) => {\n const value = obj[key];\n const onlyNumbers = isNumbersOnly(value);\n const withinMaxLength = isString(value) && (value.length <= partMaxLengths[key]);\n const valueValid = onlyNumbers && withinMaxLength;\n\n return isValid && valueValid;\n }, true);\n },\n\n validate(input) {\n const partsObject = this.getPartsObject(input);\n\n if (!this.partsObjectValid(partsObject)) {\n return false;\n }\n\n const { id, branch, base } = partsObject;\n\n // VALIDATION - STEP 1\n /*\n https://web.archive.org/web/20181009211542/https://www.ird.govt.nz/resources/9/d/9d739cde-ad76-4c49-ae08\n -522c62d94dd6/rwt-nrwt-spec-2016.pdf (PAGE 10)\n */\n\n const bankData = this.getBankData(id, branch);\n\n if (!bankData) { return false; }\n\n const algorithm = this.getChecksum(bankData, base);\n\n if (!algorithm) { return false; }\n\n // VALIDATION - STEP 2\n /*\n https://web.archive.org/web/20181009211542/https://www.ird.govt.nz/resources/9/d/9d739cde-ad76-4c49-ae08\n -522c62d94dd6/rwt-nrwt-spec-2016.pdf (PAGE 11)\n */\n\n const { weighting, modulo, specialCase } = algorithm;\n const earlyExit = !specialCase;\n\n const result = getPaddedAccountArray(partsObject).reduce((result, num, idx) => {\n const multiplied = num * weighting[idx];\n\n if (earlyExit || multiplied < 10) {\n return result + multiplied;\n }\n\n const summed = sumChars(multiplied);\n const summedTwice = sumChars(summed);\n const final = summed < 10 ? summed : summedTwice;\n\n return result + final;\n }, 0);\n\n // Final modulo test\n return result % modulo === 0;\n },\n\n getBankData(id, branch) {\n const paddedId = padLeft(id, partMaxLengths.id);\n\n return bankData.find(r => {\n const ranges = r.branches[paddedId];\n\n return ranges && inRanges(branch, ranges);\n });\n },\n\n getChecksum(bankData, base) {\n let { key } = bankData;\n\n if (key === 'AB') {\n key = (parseInt(base, 10) < 990000) ? 'A' : 'B';\n }\n\n return bankChecksums[key];\n }\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/eslint-loader!./src/index.js\n **/","/*eslint-disable */\n\nconst partConstants = {\n id: 'id',\n branch: 'branch',\n base: 'base',\n suffix: 'suffix'\n};\n\nconst partIndexes = {\n [partConstants.id]: 0,\n [partConstants.branch]: 1,\n [partConstants.base]: 2,\n [partConstants.suffix]: 3\n};\n\nconst partMaxLengths = {\n [partConstants.id]: 2,\n [partConstants.branch]: 4,\n [partConstants.base]: 8,\n [partConstants.suffix]: 4\n};\n\nconst bankData = [\n {\n key: 'AB',\n branches: {\n\n '01': [\n [1, 999],\n [1100, 1199],\n [1800, 1899]\n ],\n\n '02': [\n [1, 999],\n [1200, 1299]\n ],\n\n '03': [\n [1, 999],\n [1300, 1399],\n [1500, 1599],\n [1700, 1799],\n [1900, 1999],\n [7350,7399]\n ],\n\n '04': [\n [2020,2024]\n ],\n\n '06': [\n [1, 999],\n [1400, 1499]\n ],\n\n '11': [\n [5000, 6499],\n [6600, 8999]\n ],\n\n '12': [\n [3000, 3299],\n [3400, 3499],\n [3600, 3699]\n ],\n\n '13': [\n [4900, 4999]\n ],\n\n '14': [\n [4700, 4799]\n ], \n\n '15': [\n [3900, 3999]\n ],\n\n '16': [\n [4400, 4499]\n ],\n\n '17': [\n [3300, 3399]\n ],\n\n '18': [\n [3500, 3599]\n ],\n\n '19': [\n [4600, 4649]\n ],\n\n '20': [\n [4100, 4199]\n ],\n\n '21': [\n [4800, 4899]\n ],\n\n '22': [\n [4000, 4049]\n ],\n\n '23': [\n [3700, 3799]\n ],\n\n '24': [\n [4300, 4349]\n ],\n\n '27': [\n [3800, 3849]\n ],\n\n '30': [\n [2900, 2949]\n ],\n\n '35': [\n [2400, 2499]\n ],\n\n '38': [\n [9000, 9499]\n ]\n }\n },\n\n {\n key: 'D',\n branches: {\n '08': [\n [6500, 6599]\n ]\n }\n },\n\n {\n key: 'E',\n branches: {\n '09': [\n [0, 0]\n ]\n }\n },\n\n {\n key: 'F',\n branches: {\n '25': [\n [2500, 2599]\n ],\n\n '33': [\n [6700, 6799]\n ]\n }\n },\n\n {\n key: 'G',\n branches: {\n '26': [\n [2600, 2699]\n ],\n\n '28': [\n [2100, 2149]\n ],\n\n '29': [\n [2150, 2299]\n ]\n }\n },\n\n {\n key: 'X',\n branches: {\n '31': [\n [2800, 2849]\n ]\n }\n }\n\n]; \n\nconst bankChecksums = {\n A: {\n weighting: [0,0, 6,3,7,9, 0,0,10,5,8,4,2,1, 0,0,0,0],\n modulo: 11\n },\n\n B: {\n weighting: [0,0, 0,0,0,0, 0,0,10,5,8,4,2,1, 0,0,0,0],\n modulo: 11\n },\n\n C: {\n weighting: [3, 7, 0,0,0,0, 9,1,10,5,3,4,2,1, 0,0,0,0],\n modulo: 11\n },\n\n D: {\n weighting: [0, 0, 0,0,0,0, 0,7,6,5,4,3,2,1, 0,0,0,0],\n modulo: 11\n },\n\n E: {\n weighting: [0, 0, 0,0,0,0, 0,0,0,0,5,4,3,2, 0,0,0,1],\n modulo: 11,\n specialCase: true\n },\n\n F: {\n weighting: [0, 0, 0,0,0,0, 0,1,7,3,1,7,3,1, 0,0,0,0],\n modulo: 10\n },\n\n G: {\n weighting: [0, 0, 0,0,0,0, 0,1,3,7,1,3,7,1, 0,3,7,1],\n modulo: 10,\n specialCase: true\n },\n\n X: {\n weighting: [0, 0, 0,0,0,0, 0,0,0,0,0,0,0,0, 0,0,0,0],\n modulo: 1\n },\n};\n\n/*eslint-enable */\n\nexport default {\n partConstants,\n partIndexes,\n partMaxLengths,\n bankData,\n bankChecksums\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/eslint-loader!./src/constants.js\n **/","import {\n partMaxLengths\n} from './constants';\n\nconst isString = x => x === x + '';\n\nconst isNumbersOnly = x => /^[0-9]+$/.test(x);\n\nconst padLeft = (input, length, token = '0') => Array(length - String(input).length + 1).join(token) + input;\n\nconst inRange = (start, value, end) => value >= start && value <= end;\n\nconst inRanges = (value, ranges = []) => {\n return ranges.reduce((bool, range) => {\n const [ start, end ] = range;\n\n return bool || inRange(start, value, end);\n }, false);\n};\n\nconst sumChars = int => {\n return (int + '').split('').reduce((acc, num) => {\n return acc + (num * 1);\n }, 0);\n};\n\nconst getPaddedAccountArray = (partsObj) => {\n return Object.keys(partsObj).reduce((a, k) => {\n const paddedValue = padLeft(partsObj[k], partMaxLengths[k]);\n const splitValues = paddedValue.split('');\n\n return a.concat(splitValues);\n }, []);\n};\n\nexport default {\n isString,\n isNumbersOnly,\n padLeft,\n inRange,\n inRanges,\n sumChars,\n getPaddedAccountArray\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/eslint-loader!./src/utils.js\n **/"],"sourceRoot":""} \ No newline at end of file diff --git a/lib/NZ-Bank-Account-Validator.min.js b/lib/NZ-Bank-Account-Validator.min.js index 90a312a..73e605c 100644 --- a/lib/NZ-Bank-Account-Validator.min.js +++ b/lib/NZ-Bank-Account-Validator.min.js @@ -1,2 +1,2 @@ -!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define("NZ-Bank-Account-Validator",[],e):"object"==typeof exports?exports["NZ-Bank-Account-Validator"]=e():t["NZ-Bank-Account-Validator"]=e()}(this,function(){return function(t){function e(r){if(n[r])return n[r].exports;var i=n[r]={exports:{},id:r,loaded:!1};return t[r].call(i.exports,i,i.exports,e),i.loaded=!0,i.exports}var n={};return e.m=t,e.c=n,e.p="",e(0)}([function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},i=n(1),a=n(2);e["default"]={getId:function(t){return this.getPartsObject(t).id},getBranch:function(t){return this.getPartsObject(t).branch},getBase:function(t){return this.getPartsObject(t).base},getSuffix:function(t){return this.getPartsObject(t).suffix},isPartsObject:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if("object"!==("undefined"==typeof t?"undefined":r(t)))return!1;var e=Object.keys(t),n=Object.keys(i.partConstants),a=n.filter(function(t){return e.includes(t)});return n.length===a.length},splitString:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",e=(0,a.isString)(t)?t.split(/[^0-9]/):[];return 1===e.length&&(e[0]=t.slice(0,2),e[1]=t.slice(2,5),e[2]=t.slice(5,12),e[3]=t.slice(12)),e.filter(function(t){return t.length})},getPartsObject:function(t){if(this.isPartsObject(t))return t;if(!(0,a.isString)(t))return{};var e=this.splitString(t);return{id:e[i.partIndexes.id],branch:e[i.partIndexes.branch],base:e[i.partIndexes.base],suffix:e[i.partIndexes.suffix]}},partsObjectValid:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=Object.keys(t);return 4===e.length&&e.reduce(function(e,n){var r=t[n],u=(0,a.isNumbersOnly)(r),o=(0,a.isString)(r)&&r.length<=i.partMaxLengths[n],s=u&&o;return e&&s},!0)},validate:function(t){var e=this.getPartsObject(t);if(!this.partsObjectValid(e))return!1;var n=e.id,r=e.branch,i=e.base,u=this.getBankData(n,r);if(!u)return!1;var o=this.getChecksum(u,i);if(!o)return!1;var s=o.weighting,c=o.modulo,f=o.specialCase,l=!f,d=(0,a.getPaddedAccountArray)(e).reduce(function(t,e,n){var r=e*s[n];if(l||r<10)return t+r;var i=(0,a.sumChars)(r),u=(0,a.sumChars)(i),o=i<10?i:u;return t+o},0);return d%c===0},getBankData:function(t,e){var n=(0,a.padLeft)(t,i.partMaxLengths.id);return i.bankData.find(function(t){var r=t.branches[n];return r&&(0,a.inRanges)(e,r)})},getChecksum:function(t,e){var n=t.key;return"AB"===n&&(n=parseInt(e,10)<99e4?"A":"B"),i.bankChecksums[n]}},t.exports=e["default"]},function(t,e){"use strict";function n(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}Object.defineProperty(e,"__esModule",{value:!0});var r,i,a={id:"id",branch:"branch",base:"base",suffix:"suffix"},u=(r={},n(r,a.id,0),n(r,a.branch,1),n(r,a.base,2),n(r,a.suffix,3),r),o=(i={},n(i,a.id,2),n(i,a.branch,4),n(i,a.base,8),n(i,a.suffix,4),i),s=[{key:"AB",branches:{"01":[[1,999],[1100,1199],[1800,1899]],"02":[[1,999],[1200,1299]],"03":[[1,999],[1300,1399],[1500,1599],[1700,1799],[1900,1999]],"06":[[1,999],[1400,1499]],11:[[5e3,6499],[6600,8999]],12:[[3e3,3299],[3400,3499],[3600,3699]],13:[[4900,4999]],14:[[4700,4799]],15:[[3900,3999]],16:[[4400,4499]],17:[[3300,3399]],18:[[3500,3599]],19:[[4600,4649]],20:[[4100,4199]],21:[[4800,4899]],22:[[4e3,4049]],23:[[3700,3799]],24:[[4300,4349]],27:[[3800,3849]],30:[[2900,2949]],35:[[2400,2499]],38:[[9e3,9499]]}},{key:"D",branches:{"08":[[6500,6599]]}},{key:"E",branches:{"09":[[0,0]]}},{key:"F",branches:{25:[[2500,2599]],33:[[6700,6799]]}},{key:"G",branches:{26:[[2600,2699]],28:[[2100,2149]],29:[[2150,2299]]}},{key:"X",branches:{31:[[2800,2849]]}}],c={A:{weighting:[0,0,6,3,7,9,0,0,10,5,8,4,2,1,0,0,0,0],modulo:11},B:{weighting:[0,0,0,0,0,0,0,0,10,5,8,4,2,1,0,0,0,0],modulo:11},C:{weighting:[3,7,0,0,0,0,9,1,10,5,3,4,2,1,0,0,0,0],modulo:11},D:{weighting:[0,0,0,0,0,0,0,7,6,5,4,3,2,1,0,0,0,0],modulo:11},E:{weighting:[0,0,0,0,0,0,0,0,0,0,5,4,3,2,0,0,0,1],modulo:11,specialCase:!0},F:{weighting:[0,0,0,0,0,0,0,1,7,3,1,7,3,1,0,0,0,0],modulo:10},G:{weighting:[0,0,0,0,0,0,0,1,3,7,1,3,7,1,0,3,7,1],modulo:10,specialCase:!0},X:{weighting:[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],modulo:1}};e["default"]={partConstants:a,partIndexes:u,partMaxLengths:o,bankData:s,bankChecksums:c},t.exports=e["default"]},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=function(){function t(t,e){var n=[],r=!0,i=!1,a=void 0;try{for(var u,o=t[Symbol.iterator]();!(r=(u=o.next()).done)&&(n.push(u.value),!e||n.length!==e);r=!0);}catch(s){i=!0,a=s}finally{try{!r&&o["return"]&&o["return"]()}finally{if(i)throw a}}return n}return function(e,n){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return t(e,n);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),i=n(1),a=function(t){return t===t+""},u=function(t){return/^[0-9]+$/.test(t)},o=function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"0";return Array(e-String(t).length+1).join(n)+t},s=function(t,e,n){return e>=t&&e<=n},c=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return e.reduce(function(e,n){var i=r(n,2),a=i[0],u=i[1];return e||s(a,t,u)},!1)},f=function(t){return(t+"").split("").reduce(function(t,e){return t+1*e},0)},l=function(t){return Object.keys(t).reduce(function(e,n){var r=o(t[n],i.partMaxLengths[n]),a=r.split("");return e.concat(a)},[])};e["default"]={isString:a,isNumbersOnly:u,padLeft:o,inRange:s,inRanges:c,sumChars:f,getPaddedAccountArray:l},t.exports=e["default"]}])}); +!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define("NZ-Bank-Account-Validator",[],e):"object"==typeof exports?exports["NZ-Bank-Account-Validator"]=e():t["NZ-Bank-Account-Validator"]=e()}(this,function(){return function(t){function e(r){if(n[r])return n[r].exports;var i=n[r]={exports:{},id:r,loaded:!1};return t[r].call(i.exports,i,i.exports,e),i.loaded=!0,i.exports}var n={};return e.m=t,e.c=n,e.p="",e(0)}([function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},i=n(1),a=n(2);e["default"]={getId:function(t){return this.getPartsObject(t).id},getBranch:function(t){return this.getPartsObject(t).branch},getBase:function(t){return this.getPartsObject(t).base},getSuffix:function(t){return this.getPartsObject(t).suffix},isPartsObject:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if("object"!==("undefined"==typeof t?"undefined":r(t)))return!1;var e=Object.keys(t),n=Object.keys(i.partConstants),a=n.filter(function(t){return e.includes(t)});return n.length===a.length},splitString:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",e=(0,a.isString)(t)?t.split(/[^0-9]/):[];return 1===e.length&&(e[0]=t.slice(0,2),e[1]=t.slice(2,5),e[2]=t.slice(5,12),e[3]=t.slice(12)),e.filter(function(t){return t.length})},getPartsObject:function(t){if(this.isPartsObject(t))return t;if(!(0,a.isString)(t))return{};var e=this.splitString(t);return{id:e[i.partIndexes.id],branch:e[i.partIndexes.branch],base:e[i.partIndexes.base],suffix:e[i.partIndexes.suffix]}},partsObjectValid:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=Object.keys(t);return 4===e.length&&e.reduce(function(e,n){var r=t[n],u=(0,a.isNumbersOnly)(r),o=(0,a.isString)(r)&&r.length<=i.partMaxLengths[n],s=u&&o;return e&&s},!0)},validate:function(t){var e=this.getPartsObject(t);if(!this.partsObjectValid(e))return!1;var n=e.id,r=e.branch,i=e.base,u=this.getBankData(n,r);if(!u)return!1;var o=this.getChecksum(u,i);if(!o)return!1;var s=o.weighting,c=o.modulo,f=o.specialCase,l=!f,d=(0,a.getPaddedAccountArray)(e).reduce(function(t,e,n){var r=e*s[n];if(l||r<10)return t+r;var i=(0,a.sumChars)(r),u=(0,a.sumChars)(i),o=i<10?i:u;return t+o},0);return d%c===0},getBankData:function(t,e){var n=(0,a.padLeft)(t,i.partMaxLengths.id);return i.bankData.find(function(t){var r=t.branches[n];return r&&(0,a.inRanges)(e,r)})},getChecksum:function(t,e){var n=t.key;return"AB"===n&&(n=parseInt(e,10)<99e4?"A":"B"),i.bankChecksums[n]}},t.exports=e["default"]},function(t,e){"use strict";function n(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}Object.defineProperty(e,"__esModule",{value:!0});var r,i,a={id:"id",branch:"branch",base:"base",suffix:"suffix"},u=(r={},n(r,a.id,0),n(r,a.branch,1),n(r,a.base,2),n(r,a.suffix,3),r),o=(i={},n(i,a.id,2),n(i,a.branch,4),n(i,a.base,8),n(i,a.suffix,4),i),s=[{key:"AB",branches:{"01":[[1,999],[1100,1199],[1800,1899]],"02":[[1,999],[1200,1299]],"03":[[1,999],[1300,1399],[1500,1599],[1700,1799],[1900,1999],[7350,7399]],"04":[[2020,2024]],"06":[[1,999],[1400,1499]],11:[[5e3,6499],[6600,8999]],12:[[3e3,3299],[3400,3499],[3600,3699]],13:[[4900,4999]],14:[[4700,4799]],15:[[3900,3999]],16:[[4400,4499]],17:[[3300,3399]],18:[[3500,3599]],19:[[4600,4649]],20:[[4100,4199]],21:[[4800,4899]],22:[[4e3,4049]],23:[[3700,3799]],24:[[4300,4349]],27:[[3800,3849]],30:[[2900,2949]],35:[[2400,2499]],38:[[9e3,9499]]}},{key:"D",branches:{"08":[[6500,6599]]}},{key:"E",branches:{"09":[[0,0]]}},{key:"F",branches:{25:[[2500,2599]],33:[[6700,6799]]}},{key:"G",branches:{26:[[2600,2699]],28:[[2100,2149]],29:[[2150,2299]]}},{key:"X",branches:{31:[[2800,2849]]}}],c={A:{weighting:[0,0,6,3,7,9,0,0,10,5,8,4,2,1,0,0,0,0],modulo:11},B:{weighting:[0,0,0,0,0,0,0,0,10,5,8,4,2,1,0,0,0,0],modulo:11},C:{weighting:[3,7,0,0,0,0,9,1,10,5,3,4,2,1,0,0,0,0],modulo:11},D:{weighting:[0,0,0,0,0,0,0,7,6,5,4,3,2,1,0,0,0,0],modulo:11},E:{weighting:[0,0,0,0,0,0,0,0,0,0,5,4,3,2,0,0,0,1],modulo:11,specialCase:!0},F:{weighting:[0,0,0,0,0,0,0,1,7,3,1,7,3,1,0,0,0,0],modulo:10},G:{weighting:[0,0,0,0,0,0,0,1,3,7,1,3,7,1,0,3,7,1],modulo:10,specialCase:!0},X:{weighting:[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],modulo:1}};e["default"]={partConstants:a,partIndexes:u,partMaxLengths:o,bankData:s,bankChecksums:c},t.exports=e["default"]},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=function(){function t(t,e){var n=[],r=!0,i=!1,a=void 0;try{for(var u,o=t[Symbol.iterator]();!(r=(u=o.next()).done)&&(n.push(u.value),!e||n.length!==e);r=!0);}catch(s){i=!0,a=s}finally{try{!r&&o["return"]&&o["return"]()}finally{if(i)throw a}}return n}return function(e,n){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return t(e,n);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),i=n(1),a=function(t){return t===t+""},u=function(t){return/^[0-9]+$/.test(t)},o=function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"0";return Array(e-String(t).length+1).join(n)+t},s=function(t,e,n){return e>=t&&e<=n},c=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return e.reduce(function(e,n){var i=r(n,2),a=i[0],u=i[1];return e||s(a,t,u)},!1)},f=function(t){return(t+"").split("").reduce(function(t,e){return t+1*e},0)},l=function(t){return Object.keys(t).reduce(function(e,n){var r=o(t[n],i.partMaxLengths[n]),a=r.split("");return e.concat(a)},[])};e["default"]={isString:a,isNumbersOnly:u,padLeft:o,inRange:s,inRanges:c,sumChars:f,getPaddedAccountArray:l},t.exports=e["default"]}])}); //# sourceMappingURL=NZ-Bank-Account-Validator.min.js.map \ No newline at end of file diff --git a/lib/NZ-Bank-Account-Validator.min.js.map b/lib/NZ-Bank-Account-Validator.min.js.map index 336c202..df79620 100644 --- a/lib/NZ-Bank-Account-Validator.min.js.map +++ b/lib/NZ-Bank-Account-Validator.min.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///NZ-Bank-Account-Validator.min.js","webpack:///webpack/bootstrap 265782f0dac41e5c16b8","webpack:///./src/index.js","webpack:///./src/constants.js","webpack:///./src/utils.js"],"names":["root","factory","exports","module","define","amd","this","modules","__webpack_require__","moduleId","installedModules","id","loaded","call","m","c","p","Object","defineProperty","value","_typeof","Symbol","iterator","obj","constructor","prototype","_constants","_utils","getId","input","getPartsObject","getBranch","branch","getBase","base","getSuffix","suffix","isPartsObject","arguments","length","undefined","inputsKeys","keys","requiredKeys","partConstants","filteredKeys","filter","k","includes","splitString","str","parts","isString","split","slice","i","partIndexes","partsObjectValid","reduce","isValid","key","onlyNumbers","isNumbersOnly","withinMaxLength","partMaxLengths","valueValid","validate","partsObject","bankData","getBankData","algorithm","getChecksum","weighting","modulo","specialCase","earlyExit","result","getPaddedAccountArray","num","idx","multiplied","summed","sumChars","summedTwice","final","paddedId","padLeft","find","r","ranges","branches","inRanges","parseInt","bankChecksums","_defineProperty","enumerable","configurable","writable","_partIndexes","_partMaxLengths","01","02","03","06","11","12","13","14","15","16","17","18","19","20","21","22","23","24","27","30","35","38","08","09","25","33","26","28","29","31","A","B","C","D","E","F","G","X","_slicedToArray","sliceIterator","arr","_arr","_n","_d","_e","_s","_i","next","done","push","err","Array","isArray","TypeError","x","test","token","String","join","inRange","start","end","bool","range","_range","int","acc","partsObj","a","paddedValue","splitValues","concat"],"mappings":"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","file":"NZ-Bank-Account-Validator.min.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"NZ-Bank-Account-Validator\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"NZ-Bank-Account-Validator\"] = factory();\n\telse\n\t\troot[\"NZ-Bank-Account-Validator\"] = factory();\n})(this, function() {\nreturn \n\n\n/** WEBPACK FOOTER **\n ** webpack/universalModuleDefinition\n **/","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"NZ-Bank-Account-Validator\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"NZ-Bank-Account-Validator\"] = factory();\n\telse\n\t\troot[\"NZ-Bank-Account-Validator\"] = factory();\n})(this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\t\n\tvar _constants = __webpack_require__(1);\n\t\n\tvar _utils = __webpack_require__(2);\n\t\n\texports.default = {\n\t getId: function getId(input) {\n\t return this.getPartsObject(input).id;\n\t },\n\t getBranch: function getBranch(input) {\n\t return this.getPartsObject(input).branch;\n\t },\n\t getBase: function getBase(input) {\n\t return this.getPartsObject(input).base;\n\t },\n\t getSuffix: function getSuffix(input) {\n\t return this.getPartsObject(input).suffix;\n\t },\n\t isPartsObject: function isPartsObject() {\n\t var obj = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\t\n\t if ((typeof obj === 'undefined' ? 'undefined' : _typeof(obj)) !== 'object') return false;\n\t var inputsKeys = Object.keys(obj);\n\t var requiredKeys = Object.keys(_constants.partConstants);\n\t var filteredKeys = requiredKeys.filter(function (k) {\n\t return inputsKeys.includes(k);\n\t });\n\t\n\t return requiredKeys.length === filteredKeys.length;\n\t },\n\t splitString: function splitString() {\n\t var str = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n\t\n\t var parts = (0, _utils.isString)(str) ? str.split(/[^0-9]/) : [];\n\t\n\t // If the input string had no delimiters, and its length is\n\t // long enough, manually forge an array.\n\t if (parts.length === 1) {\n\t parts[0] = str.slice(0, 2);\n\t parts[1] = str.slice(2, 5);\n\t parts[2] = str.slice(5, 12);\n\t parts[3] = str.slice(12);\n\t }\n\t\n\t return parts.filter(function (i) {\n\t return i.length;\n\t });\n\t },\n\t getPartsObject: function getPartsObject(input) {\n\t if (this.isPartsObject(input)) {\n\t return input;\n\t }\n\t\n\t if (!(0, _utils.isString)(input)) {\n\t return {};\n\t }\n\t\n\t var parts = this.splitString(input);\n\t\n\t return {\n\t id: parts[_constants.partIndexes.id],\n\t branch: parts[_constants.partIndexes.branch],\n\t base: parts[_constants.partIndexes.base],\n\t suffix: parts[_constants.partIndexes.suffix]\n\t };\n\t },\n\t partsObjectValid: function partsObjectValid() {\n\t var obj = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\t\n\t var keys = Object.keys(obj);\n\t\n\t if (keys.length !== 4) {\n\t return false;\n\t }\n\t\n\t return keys.reduce(function (isValid, key) {\n\t var value = obj[key];\n\t var onlyNumbers = (0, _utils.isNumbersOnly)(value);\n\t var withinMaxLength = (0, _utils.isString)(value) && value.length <= _constants.partMaxLengths[key];\n\t var valueValid = onlyNumbers && withinMaxLength;\n\t\n\t return isValid && valueValid;\n\t }, true);\n\t },\n\t validate: function validate(input) {\n\t var partsObject = this.getPartsObject(input);\n\t\n\t if (!this.partsObjectValid(partsObject)) {\n\t return false;\n\t }\n\t\n\t var id = partsObject.id,\n\t branch = partsObject.branch,\n\t base = partsObject.base;\n\t\n\t // VALIDATION - STEP 1\n\t /*\n\t https://web.archive.org/web/20181009211542/https://www.ird.govt.nz/resources/9/d/9d739cde-ad76-4c49-ae08\n\t -522c62d94dd6/rwt-nrwt-spec-2016.pdf (PAGE 10)\n\t */\n\t\n\t var bankData = this.getBankData(id, branch);\n\t\n\t if (!bankData) {\n\t return false;\n\t }\n\t\n\t var algorithm = this.getChecksum(bankData, base);\n\t\n\t if (!algorithm) {\n\t return false;\n\t }\n\t\n\t // VALIDATION - STEP 2\n\t /*\n\t https://web.archive.org/web/20181009211542/https://www.ird.govt.nz/resources/9/d/9d739cde-ad76-4c49-ae08\n\t -522c62d94dd6/rwt-nrwt-spec-2016.pdf (PAGE 11)\n\t */\n\t\n\t var weighting = algorithm.weighting,\n\t modulo = algorithm.modulo,\n\t specialCase = algorithm.specialCase;\n\t\n\t var earlyExit = !specialCase;\n\t\n\t var result = (0, _utils.getPaddedAccountArray)(partsObject).reduce(function (result, num, idx) {\n\t var multiplied = num * weighting[idx];\n\t\n\t if (earlyExit || multiplied < 10) {\n\t return result + multiplied;\n\t }\n\t\n\t var summed = (0, _utils.sumChars)(multiplied);\n\t var summedTwice = (0, _utils.sumChars)(summed);\n\t var final = summed < 10 ? summed : summedTwice;\n\t\n\t return result + final;\n\t }, 0);\n\t\n\t // Final modulo test\n\t return result % modulo === 0;\n\t },\n\t getBankData: function getBankData(id, branch) {\n\t var paddedId = (0, _utils.padLeft)(id, _constants.partMaxLengths.id);\n\t\n\t return _constants.bankData.find(function (r) {\n\t var ranges = r.branches[paddedId];\n\t\n\t return ranges && (0, _utils.inRanges)(branch, ranges);\n\t });\n\t },\n\t getChecksum: function getChecksum(bankData, base) {\n\t var key = bankData.key;\n\t\n\t\n\t if (key === 'AB') {\n\t key = parseInt(base, 10) < 990000 ? 'A' : 'B';\n\t }\n\t\n\t return _constants.bankChecksums[key];\n\t }\n\t};\n\tmodule.exports = exports['default'];\n\n/***/ },\n/* 1 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _partIndexes, _partMaxLengths;\n\t\n\tfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\t\n\t/*eslint-disable */\n\t\n\tvar partConstants = {\n\t id: 'id',\n\t branch: 'branch',\n\t base: 'base',\n\t suffix: 'suffix'\n\t};\n\t\n\tvar partIndexes = (_partIndexes = {}, _defineProperty(_partIndexes, partConstants.id, 0), _defineProperty(_partIndexes, partConstants.branch, 1), _defineProperty(_partIndexes, partConstants.base, 2), _defineProperty(_partIndexes, partConstants.suffix, 3), _partIndexes);\n\t\n\tvar partMaxLengths = (_partMaxLengths = {}, _defineProperty(_partMaxLengths, partConstants.id, 2), _defineProperty(_partMaxLengths, partConstants.branch, 4), _defineProperty(_partMaxLengths, partConstants.base, 8), _defineProperty(_partMaxLengths, partConstants.suffix, 4), _partMaxLengths);\n\t\n\tvar bankData = [{\n\t key: 'AB',\n\t branches: {\n\t\n\t '01': [[1, 999], [1100, 1199], [1800, 1899]],\n\t\n\t '02': [[1, 999], [1200, 1299]],\n\t\n\t '03': [[1, 999], [1300, 1399], [1500, 1599], [1700, 1799], [1900, 1999]],\n\t\n\t '06': [[1, 999], [1400, 1499]],\n\t\n\t '11': [[5000, 6499], [6600, 8999]],\n\t\n\t '12': [[3000, 3299], [3400, 3499], [3600, 3699]],\n\t\n\t '13': [[4900, 4999]],\n\t\n\t '14': [[4700, 4799]],\n\t\n\t '15': [[3900, 3999]],\n\t\n\t '16': [[4400, 4499]],\n\t\n\t '17': [[3300, 3399]],\n\t\n\t '18': [[3500, 3599]],\n\t\n\t '19': [[4600, 4649]],\n\t\n\t '20': [[4100, 4199]],\n\t\n\t '21': [[4800, 4899]],\n\t\n\t '22': [[4000, 4049]],\n\t\n\t '23': [[3700, 3799]],\n\t\n\t '24': [[4300, 4349]],\n\t\n\t '27': [[3800, 3849]],\n\t\n\t '30': [[2900, 2949]],\n\t\n\t '35': [[2400, 2499]],\n\t\n\t '38': [[9000, 9499]]\n\t }\n\t}, {\n\t key: 'D',\n\t branches: {\n\t '08': [[6500, 6599]]\n\t }\n\t}, {\n\t key: 'E',\n\t branches: {\n\t '09': [[0, 0]]\n\t }\n\t}, {\n\t key: 'F',\n\t branches: {\n\t '25': [[2500, 2599]],\n\t\n\t '33': [[6700, 6799]]\n\t }\n\t}, {\n\t key: 'G',\n\t branches: {\n\t '26': [[2600, 2699]],\n\t\n\t '28': [[2100, 2149]],\n\t\n\t '29': [[2150, 2299]]\n\t }\n\t}, {\n\t key: 'X',\n\t branches: {\n\t '31': [[2800, 2849]]\n\t }\n\t}];\n\t\n\tvar bankChecksums = {\n\t A: {\n\t weighting: [0, 0, 6, 3, 7, 9, 0, 0, 10, 5, 8, 4, 2, 1, 0, 0, 0, 0],\n\t modulo: 11\n\t },\n\t\n\t B: {\n\t weighting: [0, 0, 0, 0, 0, 0, 0, 0, 10, 5, 8, 4, 2, 1, 0, 0, 0, 0],\n\t modulo: 11\n\t },\n\t\n\t C: {\n\t weighting: [3, 7, 0, 0, 0, 0, 9, 1, 10, 5, 3, 4, 2, 1, 0, 0, 0, 0],\n\t modulo: 11\n\t },\n\t\n\t D: {\n\t weighting: [0, 0, 0, 0, 0, 0, 0, 7, 6, 5, 4, 3, 2, 1, 0, 0, 0, 0],\n\t modulo: 11\n\t },\n\t\n\t E: {\n\t weighting: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 4, 3, 2, 0, 0, 0, 1],\n\t modulo: 11,\n\t specialCase: true\n\t },\n\t\n\t F: {\n\t weighting: [0, 0, 0, 0, 0, 0, 0, 1, 7, 3, 1, 7, 3, 1, 0, 0, 0, 0],\n\t modulo: 10\n\t },\n\t\n\t G: {\n\t weighting: [0, 0, 0, 0, 0, 0, 0, 1, 3, 7, 1, 3, 7, 1, 0, 3, 7, 1],\n\t modulo: 10,\n\t specialCase: true\n\t },\n\t\n\t X: {\n\t weighting: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],\n\t modulo: 1\n\t }\n\t};\n\t\n\t/*eslint-enable */\n\t\n\texports.default = {\n\t partConstants: partConstants,\n\t partIndexes: partIndexes,\n\t partMaxLengths: partMaxLengths,\n\t bankData: bankData,\n\t bankChecksums: bankChecksums\n\t};\n\tmodule.exports = exports['default'];\n\n/***/ },\n/* 2 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\t\n\tvar _constants = __webpack_require__(1);\n\t\n\tvar isString = function isString(x) {\n\t return x === x + '';\n\t};\n\t\n\tvar isNumbersOnly = function isNumbersOnly(x) {\n\t return (/^[0-9]+$/.test(x)\n\t );\n\t};\n\t\n\tvar padLeft = function padLeft(input, length) {\n\t var token = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '0';\n\t return Array(length - String(input).length + 1).join(token) + input;\n\t};\n\t\n\tvar inRange = function inRange(start, value, end) {\n\t return value >= start && value <= end;\n\t};\n\t\n\tvar inRanges = function inRanges(value) {\n\t var ranges = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n\t\n\t return ranges.reduce(function (bool, range) {\n\t var _range = _slicedToArray(range, 2),\n\t start = _range[0],\n\t end = _range[1];\n\t\n\t return bool || inRange(start, value, end);\n\t }, false);\n\t};\n\t\n\tvar sumChars = function sumChars(int) {\n\t return (int + '').split('').reduce(function (acc, num) {\n\t return acc + num * 1;\n\t }, 0);\n\t};\n\t\n\tvar getPaddedAccountArray = function getPaddedAccountArray(partsObj) {\n\t return Object.keys(partsObj).reduce(function (a, k) {\n\t var paddedValue = padLeft(partsObj[k], _constants.partMaxLengths[k]);\n\t var splitValues = paddedValue.split('');\n\t\n\t return a.concat(splitValues);\n\t }, []);\n\t};\n\t\n\texports.default = {\n\t isString: isString,\n\t isNumbersOnly: isNumbersOnly,\n\t padLeft: padLeft,\n\t inRange: inRange,\n\t inRanges: inRanges,\n\t sumChars: sumChars,\n\t getPaddedAccountArray: getPaddedAccountArray\n\t};\n\tmodule.exports = exports['default'];\n\n/***/ }\n/******/ ])\n});\n;\n\n\n/** WEBPACK FOOTER **\n ** NZ-Bank-Account-Validator.min.js\n **/"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap 265782f0dac41e5c16b8\n **/","import {\n partConstants,\n partIndexes,\n partMaxLengths,\n bankData,\n bankChecksums\n} from './constants';\n\nimport {\n isString,\n isNumbersOnly,\n padLeft,\n inRanges,\n sumChars,\n getPaddedAccountArray\n} from './utils';\n\nexport default {\n\n getId(input) {\n return this.getPartsObject(input).id;\n },\n getBranch(input) {\n return this.getPartsObject(input).branch;\n },\n getBase(input) {\n return this.getPartsObject(input).base;\n },\n getSuffix(input) {\n return this.getPartsObject(input).suffix;\n },\n\n isPartsObject(obj = {}) {\n if (typeof obj !== 'object') return false;\n const inputsKeys = Object.keys(obj);\n const requiredKeys = Object.keys(partConstants);\n const filteredKeys = requiredKeys.filter(k => inputsKeys.includes(k));\n\n return requiredKeys.length === filteredKeys.length;\n },\n\n splitString(str = '') {\n const parts = isString(str) ? str.split(/[^0-9]/) : [];\n\n // If the input string had no delimiters, and its length is\n // long enough, manually forge an array.\n if (parts.length === 1) {\n parts[0] = str.slice(0, 2);\n parts[1] = str.slice(2, 5);\n parts[2] = str.slice(5, 12);\n parts[3] = str.slice(12);\n }\n\n return parts.filter(i => i.length);\n },\n\n getPartsObject(input) {\n if (this.isPartsObject(input)) {\n return input;\n }\n\n if (!isString(input)) {\n return {};\n }\n\n const parts = this.splitString(input);\n\n return {\n id: parts[partIndexes.id],\n branch: parts[partIndexes.branch],\n base: parts[partIndexes.base],\n suffix: parts[partIndexes.suffix]\n };\n },\n\n partsObjectValid(obj = {}) {\n const keys = Object.keys(obj);\n\n if (keys.length !== 4) {\n return false;\n }\n\n return keys.reduce((isValid, key) => {\n const value = obj[key];\n const onlyNumbers = isNumbersOnly(value);\n const withinMaxLength = isString(value) && (value.length <= partMaxLengths[key]);\n const valueValid = onlyNumbers && withinMaxLength;\n\n return isValid && valueValid;\n }, true);\n },\n\n validate(input) {\n const partsObject = this.getPartsObject(input);\n\n if (!this.partsObjectValid(partsObject)) {\n return false;\n }\n\n const { id, branch, base } = partsObject;\n\n // VALIDATION - STEP 1\n /*\n https://web.archive.org/web/20181009211542/https://www.ird.govt.nz/resources/9/d/9d739cde-ad76-4c49-ae08\n -522c62d94dd6/rwt-nrwt-spec-2016.pdf (PAGE 10)\n */\n\n const bankData = this.getBankData(id, branch);\n\n if (!bankData) { return false; }\n\n const algorithm = this.getChecksum(bankData, base);\n\n if (!algorithm) { return false; }\n\n // VALIDATION - STEP 2\n /*\n https://web.archive.org/web/20181009211542/https://www.ird.govt.nz/resources/9/d/9d739cde-ad76-4c49-ae08\n -522c62d94dd6/rwt-nrwt-spec-2016.pdf (PAGE 11)\n */\n\n const { weighting, modulo, specialCase } = algorithm;\n const earlyExit = !specialCase;\n\n const result = getPaddedAccountArray(partsObject).reduce((result, num, idx) => {\n const multiplied = num * weighting[idx];\n\n if (earlyExit || multiplied < 10) {\n return result + multiplied;\n }\n\n const summed = sumChars(multiplied);\n const summedTwice = sumChars(summed);\n const final = summed < 10 ? summed : summedTwice;\n\n return result + final;\n }, 0);\n\n // Final modulo test\n return result % modulo === 0;\n },\n\n getBankData(id, branch) {\n const paddedId = padLeft(id, partMaxLengths.id);\n\n return bankData.find(r => {\n const ranges = r.branches[paddedId];\n\n return ranges && inRanges(branch, ranges);\n });\n },\n\n getChecksum(bankData, base) {\n let { key } = bankData;\n\n if (key === 'AB') {\n key = (parseInt(base, 10) < 990000) ? 'A' : 'B';\n }\n\n return bankChecksums[key];\n }\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/eslint-loader!./src/index.js\n **/","/*eslint-disable */\n\nconst partConstants = {\n id: 'id',\n branch: 'branch',\n base: 'base',\n suffix: 'suffix'\n};\n\nconst partIndexes = {\n [partConstants.id]: 0,\n [partConstants.branch]: 1,\n [partConstants.base]: 2,\n [partConstants.suffix]: 3\n};\n\nconst partMaxLengths = {\n [partConstants.id]: 2,\n [partConstants.branch]: 4,\n [partConstants.base]: 8,\n [partConstants.suffix]: 4\n};\n\nconst bankData = [\n {\n key: 'AB',\n branches: {\n\n '01': [\n [1, 999],\n [1100, 1199],\n [1800, 1899]\n ],\n\n '02': [\n [1, 999],\n [1200, 1299]\n ],\n\n '03': [\n [1, 999],\n [1300, 1399],\n [1500, 1599],\n [1700, 1799],\n [1900, 1999]\n ],\n\n '06': [\n [1, 999],\n [1400, 1499]\n ],\n\n '11': [\n [5000, 6499],\n [6600, 8999]\n ],\n\n '12': [\n [3000, 3299],\n [3400, 3499],\n [3600, 3699]\n ],\n\n '13': [\n [4900, 4999]\n ],\n\n '14': [\n [4700, 4799]\n ], \n\n '15': [\n [3900, 3999]\n ],\n\n '16': [\n [4400, 4499]\n ],\n\n '17': [\n [3300, 3399]\n ],\n\n '18': [\n [3500, 3599]\n ],\n\n '19': [\n [4600, 4649]\n ],\n\n '20': [\n [4100, 4199]\n ],\n\n '21': [\n [4800, 4899]\n ],\n\n '22': [\n [4000, 4049]\n ],\n\n '23': [\n [3700, 3799]\n ],\n\n '24': [\n [4300, 4349]\n ],\n\n '27': [\n [3800, 3849]\n ],\n\n '30': [\n [2900, 2949]\n ],\n\n '35': [\n [2400, 2499]\n ],\n\n '38': [\n [9000, 9499]\n ]\n }\n },\n\n {\n key: 'D',\n branches: {\n '08': [\n [6500, 6599]\n ]\n }\n },\n\n {\n key: 'E',\n branches: {\n '09': [\n [0, 0]\n ]\n }\n },\n\n {\n key: 'F',\n branches: {\n '25': [\n [2500, 2599]\n ],\n\n '33': [\n [6700, 6799]\n ]\n }\n },\n\n {\n key: 'G',\n branches: {\n '26': [\n [2600, 2699]\n ],\n\n '28': [\n [2100, 2149]\n ],\n\n '29': [\n [2150, 2299]\n ]\n }\n },\n\n {\n key: 'X',\n branches: {\n '31': [\n [2800, 2849]\n ]\n }\n }\n\n]; \n\nconst bankChecksums = {\n A: {\n weighting: [0,0, 6,3,7,9, 0,0,10,5,8,4,2,1, 0,0,0,0],\n modulo: 11\n },\n\n B: {\n weighting: [0,0, 0,0,0,0, 0,0,10,5,8,4,2,1, 0,0,0,0],\n modulo: 11\n },\n\n C: {\n weighting: [3, 7, 0,0,0,0, 9,1,10,5,3,4,2,1, 0,0,0,0],\n modulo: 11\n },\n\n D: {\n weighting: [0, 0, 0,0,0,0, 0,7,6,5,4,3,2,1, 0,0,0,0],\n modulo: 11\n },\n\n E: {\n weighting: [0, 0, 0,0,0,0, 0,0,0,0,5,4,3,2, 0,0,0,1],\n modulo: 11,\n specialCase: true\n },\n\n F: {\n weighting: [0, 0, 0,0,0,0, 0,1,7,3,1,7,3,1, 0,0,0,0],\n modulo: 10\n },\n\n G: {\n weighting: [0, 0, 0,0,0,0, 0,1,3,7,1,3,7,1, 0,3,7,1],\n modulo: 10,\n specialCase: true\n },\n\n X: {\n weighting: [0, 0, 0,0,0,0, 0,0,0,0,0,0,0,0, 0,0,0,0],\n modulo: 1\n },\n};\n\n/*eslint-enable */\n\nexport default {\n partConstants,\n partIndexes,\n partMaxLengths,\n bankData,\n bankChecksums\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/eslint-loader!./src/constants.js\n **/","import {\n partMaxLengths\n} from './constants';\n\nconst isString = x => x === x + '';\n\nconst isNumbersOnly = x => /^[0-9]+$/.test(x);\n\nconst padLeft = (input, length, token = '0') => Array(length - String(input).length + 1).join(token) + input;\n\nconst inRange = (start, value, end) => value >= start && value <= end;\n\nconst inRanges = (value, ranges = []) => {\n return ranges.reduce((bool, range) => {\n const [ start, end ] = range;\n\n return bool || inRange(start, value, end);\n }, false);\n};\n\nconst sumChars = int => {\n return (int + '').split('').reduce((acc, num) => {\n return acc + (num * 1);\n }, 0);\n};\n\nconst getPaddedAccountArray = (partsObj) => {\n return Object.keys(partsObj).reduce((a, k) => {\n const paddedValue = padLeft(partsObj[k], partMaxLengths[k]);\n const splitValues = paddedValue.split('');\n\n return a.concat(splitValues);\n }, []);\n};\n\nexport default {\n isString,\n isNumbersOnly,\n padLeft,\n inRange,\n inRanges,\n sumChars,\n getPaddedAccountArray\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/eslint-loader!./src/utils.js\n **/"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///NZ-Bank-Account-Validator.min.js","webpack:///webpack/bootstrap c9cb4e0e6ca520f97069","webpack:///./src/index.js","webpack:///./src/constants.js","webpack:///./src/utils.js"],"names":["root","factory","exports","module","define","amd","this","modules","__webpack_require__","moduleId","installedModules","id","loaded","call","m","c","p","Object","defineProperty","value","_typeof","Symbol","iterator","obj","constructor","prototype","_constants","_utils","getId","input","getPartsObject","getBranch","branch","getBase","base","getSuffix","suffix","isPartsObject","arguments","length","undefined","inputsKeys","keys","requiredKeys","partConstants","filteredKeys","filter","k","includes","splitString","str","parts","isString","split","slice","i","partIndexes","partsObjectValid","reduce","isValid","key","onlyNumbers","isNumbersOnly","withinMaxLength","partMaxLengths","valueValid","validate","partsObject","bankData","getBankData","algorithm","getChecksum","weighting","modulo","specialCase","earlyExit","result","getPaddedAccountArray","num","idx","multiplied","summed","sumChars","summedTwice","final","paddedId","padLeft","find","r","ranges","branches","inRanges","parseInt","bankChecksums","_defineProperty","enumerable","configurable","writable","_partIndexes","_partMaxLengths","01","02","03","04","06","11","12","13","14","15","16","17","18","19","20","21","22","23","24","27","30","35","38","08","09","25","33","26","28","29","31","A","B","C","D","E","F","G","X","_slicedToArray","sliceIterator","arr","_arr","_n","_d","_e","_s","_i","next","done","push","err","Array","isArray","TypeError","x","test","token","String","join","inRange","start","end","bool","range","_range","int","acc","partsObj","a","paddedValue","splitValues","concat"],"mappings":"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","file":"NZ-Bank-Account-Validator.min.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"NZ-Bank-Account-Validator\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"NZ-Bank-Account-Validator\"] = factory();\n\telse\n\t\troot[\"NZ-Bank-Account-Validator\"] = factory();\n})(this, function() {\nreturn \n\n\n/** WEBPACK FOOTER **\n ** webpack/universalModuleDefinition\n **/","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"NZ-Bank-Account-Validator\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"NZ-Bank-Account-Validator\"] = factory();\n\telse\n\t\troot[\"NZ-Bank-Account-Validator\"] = factory();\n})(this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\t\n\tvar _constants = __webpack_require__(1);\n\t\n\tvar _utils = __webpack_require__(2);\n\t\n\texports.default = {\n\t getId: function getId(input) {\n\t return this.getPartsObject(input).id;\n\t },\n\t getBranch: function getBranch(input) {\n\t return this.getPartsObject(input).branch;\n\t },\n\t getBase: function getBase(input) {\n\t return this.getPartsObject(input).base;\n\t },\n\t getSuffix: function getSuffix(input) {\n\t return this.getPartsObject(input).suffix;\n\t },\n\t isPartsObject: function isPartsObject() {\n\t var obj = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\t\n\t if ((typeof obj === 'undefined' ? 'undefined' : _typeof(obj)) !== 'object') return false;\n\t var inputsKeys = Object.keys(obj);\n\t var requiredKeys = Object.keys(_constants.partConstants);\n\t var filteredKeys = requiredKeys.filter(function (k) {\n\t return inputsKeys.includes(k);\n\t });\n\t\n\t return requiredKeys.length === filteredKeys.length;\n\t },\n\t splitString: function splitString() {\n\t var str = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n\t\n\t var parts = (0, _utils.isString)(str) ? str.split(/[^0-9]/) : [];\n\t\n\t // If the input string had no delimiters, and its length is\n\t // long enough, manually forge an array.\n\t if (parts.length === 1) {\n\t parts[0] = str.slice(0, 2);\n\t parts[1] = str.slice(2, 5);\n\t parts[2] = str.slice(5, 12);\n\t parts[3] = str.slice(12);\n\t }\n\t\n\t return parts.filter(function (i) {\n\t return i.length;\n\t });\n\t },\n\t getPartsObject: function getPartsObject(input) {\n\t if (this.isPartsObject(input)) {\n\t return input;\n\t }\n\t\n\t if (!(0, _utils.isString)(input)) {\n\t return {};\n\t }\n\t\n\t var parts = this.splitString(input);\n\t\n\t return {\n\t id: parts[_constants.partIndexes.id],\n\t branch: parts[_constants.partIndexes.branch],\n\t base: parts[_constants.partIndexes.base],\n\t suffix: parts[_constants.partIndexes.suffix]\n\t };\n\t },\n\t partsObjectValid: function partsObjectValid() {\n\t var obj = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\t\n\t var keys = Object.keys(obj);\n\t\n\t if (keys.length !== 4) {\n\t return false;\n\t }\n\t\n\t return keys.reduce(function (isValid, key) {\n\t var value = obj[key];\n\t var onlyNumbers = (0, _utils.isNumbersOnly)(value);\n\t var withinMaxLength = (0, _utils.isString)(value) && value.length <= _constants.partMaxLengths[key];\n\t var valueValid = onlyNumbers && withinMaxLength;\n\t\n\t return isValid && valueValid;\n\t }, true);\n\t },\n\t validate: function validate(input) {\n\t var partsObject = this.getPartsObject(input);\n\t\n\t if (!this.partsObjectValid(partsObject)) {\n\t return false;\n\t }\n\t\n\t var id = partsObject.id,\n\t branch = partsObject.branch,\n\t base = partsObject.base;\n\t\n\t // VALIDATION - STEP 1\n\t /*\n\t https://web.archive.org/web/20181009211542/https://www.ird.govt.nz/resources/9/d/9d739cde-ad76-4c49-ae08\n\t -522c62d94dd6/rwt-nrwt-spec-2016.pdf (PAGE 10)\n\t */\n\t\n\t var bankData = this.getBankData(id, branch);\n\t\n\t if (!bankData) {\n\t return false;\n\t }\n\t\n\t var algorithm = this.getChecksum(bankData, base);\n\t\n\t if (!algorithm) {\n\t return false;\n\t }\n\t\n\t // VALIDATION - STEP 2\n\t /*\n\t https://web.archive.org/web/20181009211542/https://www.ird.govt.nz/resources/9/d/9d739cde-ad76-4c49-ae08\n\t -522c62d94dd6/rwt-nrwt-spec-2016.pdf (PAGE 11)\n\t */\n\t\n\t var weighting = algorithm.weighting,\n\t modulo = algorithm.modulo,\n\t specialCase = algorithm.specialCase;\n\t\n\t var earlyExit = !specialCase;\n\t\n\t var result = (0, _utils.getPaddedAccountArray)(partsObject).reduce(function (result, num, idx) {\n\t var multiplied = num * weighting[idx];\n\t\n\t if (earlyExit || multiplied < 10) {\n\t return result + multiplied;\n\t }\n\t\n\t var summed = (0, _utils.sumChars)(multiplied);\n\t var summedTwice = (0, _utils.sumChars)(summed);\n\t var final = summed < 10 ? summed : summedTwice;\n\t\n\t return result + final;\n\t }, 0);\n\t\n\t // Final modulo test\n\t return result % modulo === 0;\n\t },\n\t getBankData: function getBankData(id, branch) {\n\t var paddedId = (0, _utils.padLeft)(id, _constants.partMaxLengths.id);\n\t\n\t return _constants.bankData.find(function (r) {\n\t var ranges = r.branches[paddedId];\n\t\n\t return ranges && (0, _utils.inRanges)(branch, ranges);\n\t });\n\t },\n\t getChecksum: function getChecksum(bankData, base) {\n\t var key = bankData.key;\n\t\n\t\n\t if (key === 'AB') {\n\t key = parseInt(base, 10) < 990000 ? 'A' : 'B';\n\t }\n\t\n\t return _constants.bankChecksums[key];\n\t }\n\t};\n\tmodule.exports = exports['default'];\n\n/***/ },\n/* 1 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _partIndexes, _partMaxLengths;\n\t\n\tfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\t\n\t/*eslint-disable */\n\t\n\tvar partConstants = {\n\t id: 'id',\n\t branch: 'branch',\n\t base: 'base',\n\t suffix: 'suffix'\n\t};\n\t\n\tvar partIndexes = (_partIndexes = {}, _defineProperty(_partIndexes, partConstants.id, 0), _defineProperty(_partIndexes, partConstants.branch, 1), _defineProperty(_partIndexes, partConstants.base, 2), _defineProperty(_partIndexes, partConstants.suffix, 3), _partIndexes);\n\t\n\tvar partMaxLengths = (_partMaxLengths = {}, _defineProperty(_partMaxLengths, partConstants.id, 2), _defineProperty(_partMaxLengths, partConstants.branch, 4), _defineProperty(_partMaxLengths, partConstants.base, 8), _defineProperty(_partMaxLengths, partConstants.suffix, 4), _partMaxLengths);\n\t\n\tvar bankData = [{\n\t key: 'AB',\n\t branches: {\n\t\n\t '01': [[1, 999], [1100, 1199], [1800, 1899]],\n\t\n\t '02': [[1, 999], [1200, 1299]],\n\t\n\t '03': [[1, 999], [1300, 1399], [1500, 1599], [1700, 1799], [1900, 1999], [7350, 7399]],\n\t\n\t '04': [[2020, 2024]],\n\t\n\t '06': [[1, 999], [1400, 1499]],\n\t\n\t '11': [[5000, 6499], [6600, 8999]],\n\t\n\t '12': [[3000, 3299], [3400, 3499], [3600, 3699]],\n\t\n\t '13': [[4900, 4999]],\n\t\n\t '14': [[4700, 4799]],\n\t\n\t '15': [[3900, 3999]],\n\t\n\t '16': [[4400, 4499]],\n\t\n\t '17': [[3300, 3399]],\n\t\n\t '18': [[3500, 3599]],\n\t\n\t '19': [[4600, 4649]],\n\t\n\t '20': [[4100, 4199]],\n\t\n\t '21': [[4800, 4899]],\n\t\n\t '22': [[4000, 4049]],\n\t\n\t '23': [[3700, 3799]],\n\t\n\t '24': [[4300, 4349]],\n\t\n\t '27': [[3800, 3849]],\n\t\n\t '30': [[2900, 2949]],\n\t\n\t '35': [[2400, 2499]],\n\t\n\t '38': [[9000, 9499]]\n\t }\n\t}, {\n\t key: 'D',\n\t branches: {\n\t '08': [[6500, 6599]]\n\t }\n\t}, {\n\t key: 'E',\n\t branches: {\n\t '09': [[0, 0]]\n\t }\n\t}, {\n\t key: 'F',\n\t branches: {\n\t '25': [[2500, 2599]],\n\t\n\t '33': [[6700, 6799]]\n\t }\n\t}, {\n\t key: 'G',\n\t branches: {\n\t '26': [[2600, 2699]],\n\t\n\t '28': [[2100, 2149]],\n\t\n\t '29': [[2150, 2299]]\n\t }\n\t}, {\n\t key: 'X',\n\t branches: {\n\t '31': [[2800, 2849]]\n\t }\n\t}];\n\t\n\tvar bankChecksums = {\n\t A: {\n\t weighting: [0, 0, 6, 3, 7, 9, 0, 0, 10, 5, 8, 4, 2, 1, 0, 0, 0, 0],\n\t modulo: 11\n\t },\n\t\n\t B: {\n\t weighting: [0, 0, 0, 0, 0, 0, 0, 0, 10, 5, 8, 4, 2, 1, 0, 0, 0, 0],\n\t modulo: 11\n\t },\n\t\n\t C: {\n\t weighting: [3, 7, 0, 0, 0, 0, 9, 1, 10, 5, 3, 4, 2, 1, 0, 0, 0, 0],\n\t modulo: 11\n\t },\n\t\n\t D: {\n\t weighting: [0, 0, 0, 0, 0, 0, 0, 7, 6, 5, 4, 3, 2, 1, 0, 0, 0, 0],\n\t modulo: 11\n\t },\n\t\n\t E: {\n\t weighting: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 4, 3, 2, 0, 0, 0, 1],\n\t modulo: 11,\n\t specialCase: true\n\t },\n\t\n\t F: {\n\t weighting: [0, 0, 0, 0, 0, 0, 0, 1, 7, 3, 1, 7, 3, 1, 0, 0, 0, 0],\n\t modulo: 10\n\t },\n\t\n\t G: {\n\t weighting: [0, 0, 0, 0, 0, 0, 0, 1, 3, 7, 1, 3, 7, 1, 0, 3, 7, 1],\n\t modulo: 10,\n\t specialCase: true\n\t },\n\t\n\t X: {\n\t weighting: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],\n\t modulo: 1\n\t }\n\t};\n\t\n\t/*eslint-enable */\n\t\n\texports.default = {\n\t partConstants: partConstants,\n\t partIndexes: partIndexes,\n\t partMaxLengths: partMaxLengths,\n\t bankData: bankData,\n\t bankChecksums: bankChecksums\n\t};\n\tmodule.exports = exports['default'];\n\n/***/ },\n/* 2 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\t\n\tvar _constants = __webpack_require__(1);\n\t\n\tvar isString = function isString(x) {\n\t return x === x + '';\n\t};\n\t\n\tvar isNumbersOnly = function isNumbersOnly(x) {\n\t return (/^[0-9]+$/.test(x)\n\t );\n\t};\n\t\n\tvar padLeft = function padLeft(input, length) {\n\t var token = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '0';\n\t return Array(length - String(input).length + 1).join(token) + input;\n\t};\n\t\n\tvar inRange = function inRange(start, value, end) {\n\t return value >= start && value <= end;\n\t};\n\t\n\tvar inRanges = function inRanges(value) {\n\t var ranges = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n\t\n\t return ranges.reduce(function (bool, range) {\n\t var _range = _slicedToArray(range, 2),\n\t start = _range[0],\n\t end = _range[1];\n\t\n\t return bool || inRange(start, value, end);\n\t }, false);\n\t};\n\t\n\tvar sumChars = function sumChars(int) {\n\t return (int + '').split('').reduce(function (acc, num) {\n\t return acc + num * 1;\n\t }, 0);\n\t};\n\t\n\tvar getPaddedAccountArray = function getPaddedAccountArray(partsObj) {\n\t return Object.keys(partsObj).reduce(function (a, k) {\n\t var paddedValue = padLeft(partsObj[k], _constants.partMaxLengths[k]);\n\t var splitValues = paddedValue.split('');\n\t\n\t return a.concat(splitValues);\n\t }, []);\n\t};\n\t\n\texports.default = {\n\t isString: isString,\n\t isNumbersOnly: isNumbersOnly,\n\t padLeft: padLeft,\n\t inRange: inRange,\n\t inRanges: inRanges,\n\t sumChars: sumChars,\n\t getPaddedAccountArray: getPaddedAccountArray\n\t};\n\tmodule.exports = exports['default'];\n\n/***/ }\n/******/ ])\n});\n;\n\n\n/** WEBPACK FOOTER **\n ** NZ-Bank-Account-Validator.min.js\n **/"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap c9cb4e0e6ca520f97069\n **/","import {\n partConstants,\n partIndexes,\n partMaxLengths,\n bankData,\n bankChecksums\n} from './constants';\n\nimport {\n isString,\n isNumbersOnly,\n padLeft,\n inRanges,\n sumChars,\n getPaddedAccountArray\n} from './utils';\n\nexport default {\n\n getId(input) {\n return this.getPartsObject(input).id;\n },\n getBranch(input) {\n return this.getPartsObject(input).branch;\n },\n getBase(input) {\n return this.getPartsObject(input).base;\n },\n getSuffix(input) {\n return this.getPartsObject(input).suffix;\n },\n\n isPartsObject(obj = {}) {\n if (typeof obj !== 'object') return false;\n const inputsKeys = Object.keys(obj);\n const requiredKeys = Object.keys(partConstants);\n const filteredKeys = requiredKeys.filter(k => inputsKeys.includes(k));\n\n return requiredKeys.length === filteredKeys.length;\n },\n\n splitString(str = '') {\n const parts = isString(str) ? str.split(/[^0-9]/) : [];\n\n // If the input string had no delimiters, and its length is\n // long enough, manually forge an array.\n if (parts.length === 1) {\n parts[0] = str.slice(0, 2);\n parts[1] = str.slice(2, 5);\n parts[2] = str.slice(5, 12);\n parts[3] = str.slice(12);\n }\n\n return parts.filter(i => i.length);\n },\n\n getPartsObject(input) {\n if (this.isPartsObject(input)) {\n return input;\n }\n\n if (!isString(input)) {\n return {};\n }\n\n const parts = this.splitString(input);\n\n return {\n id: parts[partIndexes.id],\n branch: parts[partIndexes.branch],\n base: parts[partIndexes.base],\n suffix: parts[partIndexes.suffix]\n };\n },\n\n partsObjectValid(obj = {}) {\n const keys = Object.keys(obj);\n\n if (keys.length !== 4) {\n return false;\n }\n\n return keys.reduce((isValid, key) => {\n const value = obj[key];\n const onlyNumbers = isNumbersOnly(value);\n const withinMaxLength = isString(value) && (value.length <= partMaxLengths[key]);\n const valueValid = onlyNumbers && withinMaxLength;\n\n return isValid && valueValid;\n }, true);\n },\n\n validate(input) {\n const partsObject = this.getPartsObject(input);\n\n if (!this.partsObjectValid(partsObject)) {\n return false;\n }\n\n const { id, branch, base } = partsObject;\n\n // VALIDATION - STEP 1\n /*\n https://web.archive.org/web/20181009211542/https://www.ird.govt.nz/resources/9/d/9d739cde-ad76-4c49-ae08\n -522c62d94dd6/rwt-nrwt-spec-2016.pdf (PAGE 10)\n */\n\n const bankData = this.getBankData(id, branch);\n\n if (!bankData) { return false; }\n\n const algorithm = this.getChecksum(bankData, base);\n\n if (!algorithm) { return false; }\n\n // VALIDATION - STEP 2\n /*\n https://web.archive.org/web/20181009211542/https://www.ird.govt.nz/resources/9/d/9d739cde-ad76-4c49-ae08\n -522c62d94dd6/rwt-nrwt-spec-2016.pdf (PAGE 11)\n */\n\n const { weighting, modulo, specialCase } = algorithm;\n const earlyExit = !specialCase;\n\n const result = getPaddedAccountArray(partsObject).reduce((result, num, idx) => {\n const multiplied = num * weighting[idx];\n\n if (earlyExit || multiplied < 10) {\n return result + multiplied;\n }\n\n const summed = sumChars(multiplied);\n const summedTwice = sumChars(summed);\n const final = summed < 10 ? summed : summedTwice;\n\n return result + final;\n }, 0);\n\n // Final modulo test\n return result % modulo === 0;\n },\n\n getBankData(id, branch) {\n const paddedId = padLeft(id, partMaxLengths.id);\n\n return bankData.find(r => {\n const ranges = r.branches[paddedId];\n\n return ranges && inRanges(branch, ranges);\n });\n },\n\n getChecksum(bankData, base) {\n let { key } = bankData;\n\n if (key === 'AB') {\n key = (parseInt(base, 10) < 990000) ? 'A' : 'B';\n }\n\n return bankChecksums[key];\n }\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/eslint-loader!./src/index.js\n **/","/*eslint-disable */\n\nconst partConstants = {\n id: 'id',\n branch: 'branch',\n base: 'base',\n suffix: 'suffix'\n};\n\nconst partIndexes = {\n [partConstants.id]: 0,\n [partConstants.branch]: 1,\n [partConstants.base]: 2,\n [partConstants.suffix]: 3\n};\n\nconst partMaxLengths = {\n [partConstants.id]: 2,\n [partConstants.branch]: 4,\n [partConstants.base]: 8,\n [partConstants.suffix]: 4\n};\n\nconst bankData = [\n {\n key: 'AB',\n branches: {\n\n '01': [\n [1, 999],\n [1100, 1199],\n [1800, 1899]\n ],\n\n '02': [\n [1, 999],\n [1200, 1299]\n ],\n\n '03': [\n [1, 999],\n [1300, 1399],\n [1500, 1599],\n [1700, 1799],\n [1900, 1999],\n [7350,7399]\n ],\n\n '04': [\n [2020,2024]\n ],\n\n '06': [\n [1, 999],\n [1400, 1499]\n ],\n\n '11': [\n [5000, 6499],\n [6600, 8999]\n ],\n\n '12': [\n [3000, 3299],\n [3400, 3499],\n [3600, 3699]\n ],\n\n '13': [\n [4900, 4999]\n ],\n\n '14': [\n [4700, 4799]\n ], \n\n '15': [\n [3900, 3999]\n ],\n\n '16': [\n [4400, 4499]\n ],\n\n '17': [\n [3300, 3399]\n ],\n\n '18': [\n [3500, 3599]\n ],\n\n '19': [\n [4600, 4649]\n ],\n\n '20': [\n [4100, 4199]\n ],\n\n '21': [\n [4800, 4899]\n ],\n\n '22': [\n [4000, 4049]\n ],\n\n '23': [\n [3700, 3799]\n ],\n\n '24': [\n [4300, 4349]\n ],\n\n '27': [\n [3800, 3849]\n ],\n\n '30': [\n [2900, 2949]\n ],\n\n '35': [\n [2400, 2499]\n ],\n\n '38': [\n [9000, 9499]\n ]\n }\n },\n\n {\n key: 'D',\n branches: {\n '08': [\n [6500, 6599]\n ]\n }\n },\n\n {\n key: 'E',\n branches: {\n '09': [\n [0, 0]\n ]\n }\n },\n\n {\n key: 'F',\n branches: {\n '25': [\n [2500, 2599]\n ],\n\n '33': [\n [6700, 6799]\n ]\n }\n },\n\n {\n key: 'G',\n branches: {\n '26': [\n [2600, 2699]\n ],\n\n '28': [\n [2100, 2149]\n ],\n\n '29': [\n [2150, 2299]\n ]\n }\n },\n\n {\n key: 'X',\n branches: {\n '31': [\n [2800, 2849]\n ]\n }\n }\n\n]; \n\nconst bankChecksums = {\n A: {\n weighting: [0,0, 6,3,7,9, 0,0,10,5,8,4,2,1, 0,0,0,0],\n modulo: 11\n },\n\n B: {\n weighting: [0,0, 0,0,0,0, 0,0,10,5,8,4,2,1, 0,0,0,0],\n modulo: 11\n },\n\n C: {\n weighting: [3, 7, 0,0,0,0, 9,1,10,5,3,4,2,1, 0,0,0,0],\n modulo: 11\n },\n\n D: {\n weighting: [0, 0, 0,0,0,0, 0,7,6,5,4,3,2,1, 0,0,0,0],\n modulo: 11\n },\n\n E: {\n weighting: [0, 0, 0,0,0,0, 0,0,0,0,5,4,3,2, 0,0,0,1],\n modulo: 11,\n specialCase: true\n },\n\n F: {\n weighting: [0, 0, 0,0,0,0, 0,1,7,3,1,7,3,1, 0,0,0,0],\n modulo: 10\n },\n\n G: {\n weighting: [0, 0, 0,0,0,0, 0,1,3,7,1,3,7,1, 0,3,7,1],\n modulo: 10,\n specialCase: true\n },\n\n X: {\n weighting: [0, 0, 0,0,0,0, 0,0,0,0,0,0,0,0, 0,0,0,0],\n modulo: 1\n },\n};\n\n/*eslint-enable */\n\nexport default {\n partConstants,\n partIndexes,\n partMaxLengths,\n bankData,\n bankChecksums\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/eslint-loader!./src/constants.js\n **/","import {\n partMaxLengths\n} from './constants';\n\nconst isString = x => x === x + '';\n\nconst isNumbersOnly = x => /^[0-9]+$/.test(x);\n\nconst padLeft = (input, length, token = '0') => Array(length - String(input).length + 1).join(token) + input;\n\nconst inRange = (start, value, end) => value >= start && value <= end;\n\nconst inRanges = (value, ranges = []) => {\n return ranges.reduce((bool, range) => {\n const [ start, end ] = range;\n\n return bool || inRange(start, value, end);\n }, false);\n};\n\nconst sumChars = int => {\n return (int + '').split('').reduce((acc, num) => {\n return acc + (num * 1);\n }, 0);\n};\n\nconst getPaddedAccountArray = (partsObj) => {\n return Object.keys(partsObj).reduce((a, k) => {\n const paddedValue = padLeft(partsObj[k], partMaxLengths[k]);\n const splitValues = paddedValue.split('');\n\n return a.concat(splitValues);\n }, []);\n};\n\nexport default {\n isString,\n isNumbersOnly,\n padLeft,\n inRange,\n inRanges,\n sumChars,\n getPaddedAccountArray\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/eslint-loader!./src/utils.js\n **/"],"sourceRoot":""} \ No newline at end of file diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..8319a42 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,6691 @@ +{ + "name": "nz-bank-account-validator", + "version": "0.0.4", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "@babel/code-frame": { + "version": "7.5.5", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.5.5.tgz", + "integrity": "sha512-27d4lZoomVyo51VegxI20xZPuSHusqbQag/ztrBC7wegWoQ1nLREPVSKSW8byhTlzTKyNE4ifaTA6lCp7JjpFw==", + "requires": { + "@babel/highlight": "^7.0.0" + } + }, + "@babel/generator": { + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.6.2.tgz", + "integrity": "sha512-j8iHaIW4gGPnViaIHI7e9t/Hl8qLjERI6DcV9kEpAIDJsAOrcnXqRS7t+QbhL76pwbtqP+QCQLL0z1CyVmtjjQ==", + "requires": { + "@babel/types": "^7.6.0", + "jsesc": "^2.5.1", + "lodash": "^4.17.13", + "source-map": "^0.5.0" + }, + "dependencies": { + "jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==" + }, + "lodash": { + "version": "4.17.15", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", + "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==" + } + } + }, + "@babel/helper-function-name": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz", + "integrity": "sha512-A95XEoCpb3TO+KZzJ4S/5uW5fNe26DjBGqf1o9ucyLyCmi1dXq/B3c8iaWTfBk3VvetUxl16e8tIrd5teOCfGw==", + "requires": { + "@babel/helper-get-function-arity": "^7.0.0", + "@babel/template": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz", + "integrity": "sha512-r2DbJeg4svYvt3HOS74U4eWKsUAMRH01Z1ds1zx8KNTPtpTL5JAsdFv8BNyOpVqdFhHkkRDIg5B4AsxmkjAlmQ==", + "requires": { + "@babel/types": "^7.0.0" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.4.4.tgz", + "integrity": "sha512-Ro/XkzLf3JFITkW6b+hNxzZ1n5OQ80NvIUdmHspih1XAhtN3vPTuUFT4eQnela+2MaZ5ulH+iyP513KJrxbN7Q==", + "requires": { + "@babel/types": "^7.4.4" + } + }, + "@babel/highlight": { + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.5.0.tgz", + "integrity": "sha512-7dV4eu9gBxoM0dAnj/BCFDW9LFU0zvTrkq0ugM7pnHEgguOEeOz1so2ZghEdzviYzQEED0r4EAgpsBChKy1TRQ==", + "requires": { + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^4.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "@babel/parser": { + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.6.2.tgz", + "integrity": "sha512-mdFqWrSPCmikBoaBYMuBulzTIKuXVPtEISFbRRVNwMWpCms/hmE2kRq0bblUHaNRKrjRlmVbx1sDHmjmRgD2Xg==" + }, + "@babel/template": { + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.6.0.tgz", + "integrity": "sha512-5AEH2EXD8euCk446b7edmgFdub/qfH1SN6Nii3+fyXP807QRx9Q73A2N5hNwRRslC2H9sNzaFhsPubkS4L8oNQ==", + "requires": { + "@babel/code-frame": "^7.0.0", + "@babel/parser": "^7.6.0", + "@babel/types": "^7.6.0" + } + }, + "@babel/traverse": { + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.6.2.tgz", + "integrity": "sha512-8fRE76xNwNttVEF2TwxJDGBLWthUkHWSldmfuBzVRmEDWOtu4XdINTgN7TDWzuLg4bbeIMLvfMFD9we5YcWkRQ==", + "requires": { + "@babel/code-frame": "^7.5.5", + "@babel/generator": "^7.6.2", + "@babel/helper-function-name": "^7.1.0", + "@babel/helper-split-export-declaration": "^7.4.4", + "@babel/parser": "^7.6.2", + "@babel/types": "^7.6.0", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.13" + }, + "dependencies": { + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "requires": { + "ms": "^2.1.1" + } + }, + "globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==" + }, + "lodash": { + "version": "4.17.15", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", + "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==" + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } + } + }, + "@babel/types": { + "version": "7.6.1", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.6.1.tgz", + "integrity": "sha512-X7gdiuaCmA0uRjCmRtYJNAVCc/q+5xSgsfKJHqMN4iNLILX39677fJE1O40arPMh0TTtS9ItH67yre6c7k6t0g==", + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + }, + "dependencies": { + "lodash": { + "version": "4.17.15", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", + "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==" + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=" + } + } + }, + "Base64": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/Base64/-/Base64-0.2.1.tgz", + "integrity": "sha1-ujpCMHCOGGcFBl5mur3Uw1z2ACg=", + "dev": true + }, + "acorn": { + "version": "5.7.3", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.3.tgz", + "integrity": "sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw==", + "dev": true + }, + "acorn-to-esprima": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/acorn-to-esprima/-/acorn-to-esprima-2.0.8.tgz", + "integrity": "sha1-AD8MZC65ITL0F9NwjxStqCrfLrE=", + "dev": true + }, + "align-text": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", + "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", + "dev": true, + "requires": { + "kind-of": "^3.0.2", + "longest": "^1.0.1", + "repeat-string": "^1.5.2" + } + }, + "alter": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/alter/-/alter-0.2.0.tgz", + "integrity": "sha1-x1iICGF1cgNKrmJICvJrHU0cs80=", + "dev": true, + "requires": { + "stable": "~0.1.3" + } + }, + "amdefine": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", + "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=", + "dev": true + }, + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "anymatch": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.2.tgz", + "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==", + "dev": true, + "requires": { + "micromatch": "^2.1.5", + "normalize-path": "^2.0.0" + } + }, + "append-transform": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-1.0.0.tgz", + "integrity": "sha512-P009oYkeHyU742iSZJzZZywj4QRJdnTWffaKuJQLablCZ1uz6/cW4yaRgcDaoQ+uwOxxnt0gRUcwfsNP2ri0gw==", + "requires": { + "default-require-extensions": "^2.0.0" + } + }, + "archy": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", + "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=" + }, + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "arr-diff": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", + "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", + "dev": true, + "requires": { + "arr-flatten": "^1.0.1" + } + }, + "arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", + "dev": true + }, + "arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", + "dev": true + }, + "array-unique": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", + "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", + "dev": true + }, + "assert": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz", + "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==", + "dev": true, + "requires": { + "object-assign": "^4.1.1", + "util": "0.10.3" + }, + "dependencies": { + "inherits": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", + "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", + "dev": true + }, + "util": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", + "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", + "dev": true, + "requires": { + "inherits": "2.0.1" + } + } + } + }, + "assertion-error": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", + "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", + "dev": true + }, + "assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", + "dev": true + }, + "ast-traverse": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/ast-traverse/-/ast-traverse-0.1.1.tgz", + "integrity": "sha1-ac8rg4bxnc2hux4F1o/jWdiJfeY=", + "dev": true + }, + "ast-types": { + "version": "0.9.6", + "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.9.6.tgz", + "integrity": "sha1-ECyenpAF0+fjgpvwxPok7oYu6bk=", + "dev": true + }, + "async": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", + "dev": true + }, + "async-each": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz", + "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==", + "dev": true + }, + "atob": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", + "dev": true + }, + "babel": { + "version": "6.3.13", + "resolved": "https://registry.npmjs.org/babel/-/babel-6.3.13.tgz", + "integrity": "sha1-mjZs6TyyT2IHFMFRRCJcCu0345o=", + "dev": true + }, + "babel-code-frame": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", + "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", + "dev": true, + "requires": { + "chalk": "^1.1.3", + "esutils": "^2.0.2", + "js-tokens": "^3.0.2" + } + }, + "babel-core": { + "version": "6.1.18", + "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.1.18.tgz", + "integrity": "sha1-l2zdqfwuE1PkFRMbzhRn9+JDhuc=", + "dev": true, + "requires": { + "babel-code-frame": "^6.1.18", + "babel-generator": "^6.1.18", + "babel-helpers": "^6.1.18", + "babel-messages": "^6.1.18", + "babel-register": "^6.1.18", + "babel-runtime": "^5.0.0", + "babel-template": "^6.1.18", + "babel-traverse": "^6.1.18", + "babel-types": "^6.1.18", + "babylon": "^6.1.18", + "convert-source-map": "^1.1.0", + "debug": "^2.1.1", + "esutils": "^2.0.0", + "home-or-tmp": "^1.0.0", + "json5": "^0.4.0", + "lodash": "^3.10.0", + "minimatch": "^2.0.3", + "path-exists": "^1.0.0", + "path-is-absolute": "^1.0.0", + "private": "^0.1.6", + "regenerator": "0.8.35", + "shebang-regex": "^1.0.0", + "slash": "^1.0.0", + "source-map": "^0.5.0", + "source-map-support": "^0.2.10" + } + }, + "babel-eslint": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/babel-eslint/-/babel-eslint-5.0.0.tgz", + "integrity": "sha1-R8/tiIAJD/34Vp+oKtq1dX6lUS8=", + "dev": true, + "requires": { + "acorn-to-esprima": "^2.0.4", + "babel-traverse": "^6.0.20", + "babel-types": "^6.0.19", + "babylon": "^6.0.18", + "lodash.assign": "^3.2.0", + "lodash.pick": "^3.1.0" + } + }, + "babel-generator": { + "version": "6.26.1", + "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", + "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", + "dev": true, + "requires": { + "babel-messages": "^6.23.0", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "detect-indent": "^4.0.0", + "jsesc": "^1.3.0", + "lodash": "^4.17.4", + "source-map": "^0.5.7", + "trim-right": "^1.0.1" + }, + "dependencies": { + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dev": true, + "requires": { + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" + } + }, + "lodash": { + "version": "4.17.15", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", + "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==", + "dev": true + } + } + }, + "babel-helper-call-delegate": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz", + "integrity": "sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340=", + "dev": true, + "requires": { + "babel-helper-hoist-variables": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + }, + "dependencies": { + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dev": true, + "requires": { + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" + } + } + } + }, + "babel-helper-define-map": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz", + "integrity": "sha1-pfVtq0GiX5fstJjH66ypgZ+Vvl8=", + "dev": true, + "requires": { + "babel-helper-function-name": "^6.24.1", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "lodash": "^4.17.4" + }, + "dependencies": { + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dev": true, + "requires": { + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" + } + }, + "lodash": { + "version": "4.17.15", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", + "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==", + "dev": true + } + } + }, + "babel-helper-function-name": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz", + "integrity": "sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=", + "dev": true, + "requires": { + "babel-helper-get-function-arity": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + }, + "dependencies": { + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dev": true, + "requires": { + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" + } + } + } + }, + "babel-helper-get-function-arity": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz", + "integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + }, + "dependencies": { + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dev": true, + "requires": { + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" + } + } + } + }, + "babel-helper-hoist-variables": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz", + "integrity": "sha1-HssnaJydJVE+rbyZFKc/VAi+enY=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + }, + "dependencies": { + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dev": true, + "requires": { + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" + } + } + } + }, + "babel-helper-optimise-call-expression": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz", + "integrity": "sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + }, + "dependencies": { + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dev": true, + "requires": { + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" + } + } + } + }, + "babel-helper-regex": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz", + "integrity": "sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI=", + "dev": true, + "requires": { + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "lodash": "^4.17.4" + }, + "dependencies": { + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dev": true, + "requires": { + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" + } + }, + "lodash": { + "version": "4.17.15", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", + "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==", + "dev": true + } + } + }, + "babel-helper-replace-supers": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz", + "integrity": "sha1-v22/5Dk40XNpohPKiov3S2qQqxo=", + "dev": true, + "requires": { + "babel-helper-optimise-call-expression": "^6.24.1", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + }, + "dependencies": { + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dev": true, + "requires": { + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" + } + } + } + }, + "babel-helpers": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz", + "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" + }, + "dependencies": { + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dev": true, + "requires": { + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" + } + } + } + }, + "babel-loader": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-6.1.0.tgz", + "integrity": "sha1-HcaY979/OXXDeVqNX8WiRsgghrc=", + "dev": true, + "requires": { + "loader-utils": "^0.2.11", + "object-assign": "^4.0.1" + } + }, + "babel-messages": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", + "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0" + }, + "dependencies": { + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dev": true, + "requires": { + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" + } + } + } + }, + "babel-plugin-add-module-exports": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/babel-plugin-add-module-exports/-/babel-plugin-add-module-exports-0.1.2.tgz", + "integrity": "sha1-TTiQAMndPJiLPtIwBOuV4ntC3lk=", + "dev": true, + "requires": { + "babel-template": "^6.0.16", + "lodash": "^3.10.1" + } + }, + "babel-plugin-check-es2015-constants": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz", + "integrity": "sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0" + }, + "dependencies": { + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dev": true, + "requires": { + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" + } + } + } + }, + "babel-plugin-transform-es2015-arrow-functions": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz", + "integrity": "sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0" + }, + "dependencies": { + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dev": true, + "requires": { + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" + } + } + } + }, + "babel-plugin-transform-es2015-block-scoped-functions": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz", + "integrity": "sha1-u8UbSflk1wy42OC5ToICRs46YUE=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0" + }, + "dependencies": { + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dev": true, + "requires": { + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" + } + } + } + }, + "babel-plugin-transform-es2015-block-scoping": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz", + "integrity": "sha1-1w9SmcEwjQXBL0Y4E7CgnnOxiV8=", + "dev": true, + "requires": { + "babel-runtime": "^6.26.0", + "babel-template": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "lodash": "^4.17.4" + }, + "dependencies": { + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dev": true, + "requires": { + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" + } + }, + "lodash": { + "version": "4.17.15", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", + "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==", + "dev": true + } + } + }, + "babel-plugin-transform-es2015-classes": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz", + "integrity": "sha1-WkxYpQyclGHlZLSyo7+ryXolhNs=", + "dev": true, + "requires": { + "babel-helper-define-map": "^6.24.1", + "babel-helper-function-name": "^6.24.1", + "babel-helper-optimise-call-expression": "^6.24.1", + "babel-helper-replace-supers": "^6.24.1", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + }, + "dependencies": { + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dev": true, + "requires": { + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" + } + } + } + }, + "babel-plugin-transform-es2015-computed-properties": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz", + "integrity": "sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" + }, + "dependencies": { + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dev": true, + "requires": { + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" + } + } + } + }, + "babel-plugin-transform-es2015-destructuring": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz", + "integrity": "sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0" + }, + "dependencies": { + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dev": true, + "requires": { + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" + } + } + } + }, + "babel-plugin-transform-es2015-for-of": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz", + "integrity": "sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0" + }, + "dependencies": { + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dev": true, + "requires": { + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" + } + } + } + }, + "babel-plugin-transform-es2015-function-name": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz", + "integrity": "sha1-g0yJhTvDaxrw86TF26qU/Y6sqos=", + "dev": true, + "requires": { + "babel-helper-function-name": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + }, + "dependencies": { + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dev": true, + "requires": { + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" + } + } + } + }, + "babel-plugin-transform-es2015-literals": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz", + "integrity": "sha1-T1SgLWzWbPkVKAAZox0xklN3yi4=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0" + }, + "dependencies": { + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dev": true, + "requires": { + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" + } + } + } + }, + "babel-plugin-transform-es2015-modules-commonjs": { + "version": "6.26.2", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz", + "integrity": "sha512-CV9ROOHEdrjcwhIaJNBGMBCodN+1cfkwtM1SbUHmvyy35KGT7fohbpOxkE2uLz1o6odKK2Ck/tz47z+VqQfi9Q==", + "dev": true, + "requires": { + "babel-plugin-transform-strict-mode": "^6.24.1", + "babel-runtime": "^6.26.0", + "babel-template": "^6.26.0", + "babel-types": "^6.26.0" + }, + "dependencies": { + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dev": true, + "requires": { + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" + } + } + } + }, + "babel-plugin-transform-es2015-object-super": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz", + "integrity": "sha1-JM72muIcuDp/hgPa0CH1cusnj40=", + "dev": true, + "requires": { + "babel-helper-replace-supers": "^6.24.1", + "babel-runtime": "^6.22.0" + }, + "dependencies": { + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dev": true, + "requires": { + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" + } + } + } + }, + "babel-plugin-transform-es2015-parameters": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz", + "integrity": "sha1-V6w1GrScrxSpfNE7CfZv3wpiXys=", + "dev": true, + "requires": { + "babel-helper-call-delegate": "^6.24.1", + "babel-helper-get-function-arity": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + }, + "dependencies": { + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dev": true, + "requires": { + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" + } + } + } + }, + "babel-plugin-transform-es2015-shorthand-properties": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz", + "integrity": "sha1-JPh11nIch2YbvZmkYi5R8U3jiqA=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + }, + "dependencies": { + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dev": true, + "requires": { + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" + } + } + } + }, + "babel-plugin-transform-es2015-spread": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz", + "integrity": "sha1-1taKmfia7cRTbIGlQujdnxdG+NE=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0" + }, + "dependencies": { + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dev": true, + "requires": { + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" + } + } + } + }, + "babel-plugin-transform-es2015-sticky-regex": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz", + "integrity": "sha1-AMHNsaynERLN8M9hJsLta0V8zbw=", + "dev": true, + "requires": { + "babel-helper-regex": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + }, + "dependencies": { + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dev": true, + "requires": { + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" + } + } + } + }, + "babel-plugin-transform-es2015-template-literals": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz", + "integrity": "sha1-qEs0UPfp+PH2g51taH2oS7EjbY0=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0" + }, + "dependencies": { + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dev": true, + "requires": { + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" + } + } + } + }, + "babel-plugin-transform-es2015-typeof-symbol": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz", + "integrity": "sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0" + }, + "dependencies": { + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dev": true, + "requires": { + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" + } + } + } + }, + "babel-plugin-transform-es2015-unicode-regex": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz", + "integrity": "sha1-04sS9C6nMj9yk4fxinxa4frrNek=", + "dev": true, + "requires": { + "babel-helper-regex": "^6.24.1", + "babel-runtime": "^6.22.0", + "regexpu-core": "^2.0.0" + }, + "dependencies": { + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dev": true, + "requires": { + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" + } + } + } + }, + "babel-plugin-transform-regenerator": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz", + "integrity": "sha1-4HA2lvveJ/Cj78rPi03KL3s6jy8=", + "dev": true, + "requires": { + "regenerator-transform": "^0.10.0" + } + }, + "babel-plugin-transform-strict-mode": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz", + "integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + }, + "dependencies": { + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dev": true, + "requires": { + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" + } + } + } + }, + "babel-preset-es2015": { + "version": "6.3.13", + "resolved": "https://registry.npmjs.org/babel-preset-es2015/-/babel-preset-es2015-6.3.13.tgz", + "integrity": "sha1-l9zn7ykuGMubK3VF2AxZPCjZUX8=", + "dev": true, + "requires": { + "babel-plugin-check-es2015-constants": "^6.3.13", + "babel-plugin-transform-es2015-arrow-functions": "^6.3.13", + "babel-plugin-transform-es2015-block-scoped-functions": "^6.3.13", + "babel-plugin-transform-es2015-block-scoping": "^6.3.13", + "babel-plugin-transform-es2015-classes": "^6.3.13", + "babel-plugin-transform-es2015-computed-properties": "^6.3.13", + "babel-plugin-transform-es2015-destructuring": "^6.3.13", + "babel-plugin-transform-es2015-for-of": "^6.3.13", + "babel-plugin-transform-es2015-function-name": "^6.3.13", + "babel-plugin-transform-es2015-literals": "^6.3.13", + "babel-plugin-transform-es2015-modules-commonjs": "^6.3.13", + "babel-plugin-transform-es2015-object-super": "^6.3.13", + "babel-plugin-transform-es2015-parameters": "^6.3.13", + "babel-plugin-transform-es2015-shorthand-properties": "^6.3.13", + "babel-plugin-transform-es2015-spread": "^6.3.13", + "babel-plugin-transform-es2015-sticky-regex": "^6.3.13", + "babel-plugin-transform-es2015-template-literals": "^6.3.13", + "babel-plugin-transform-es2015-typeof-symbol": "^6.3.13", + "babel-plugin-transform-es2015-unicode-regex": "^6.3.13", + "babel-plugin-transform-regenerator": "^6.3.13" + } + }, + "babel-register": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz", + "integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=", + "dev": true, + "requires": { + "babel-core": "^6.26.0", + "babel-runtime": "^6.26.0", + "core-js": "^2.5.0", + "home-or-tmp": "^2.0.0", + "lodash": "^4.17.4", + "mkdirp": "^0.5.1", + "source-map-support": "^0.4.15" + }, + "dependencies": { + "babel-core": { + "version": "6.26.3", + "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.3.tgz", + "integrity": "sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA==", + "dev": true, + "requires": { + "babel-code-frame": "^6.26.0", + "babel-generator": "^6.26.0", + "babel-helpers": "^6.24.1", + "babel-messages": "^6.23.0", + "babel-register": "^6.26.0", + "babel-runtime": "^6.26.0", + "babel-template": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "convert-source-map": "^1.5.1", + "debug": "^2.6.9", + "json5": "^0.5.1", + "lodash": "^4.17.4", + "minimatch": "^3.0.4", + "path-is-absolute": "^1.0.1", + "private": "^0.1.8", + "slash": "^1.0.0", + "source-map": "^0.5.7" + } + }, + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dev": true, + "requires": { + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" + } + }, + "home-or-tmp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz", + "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=", + "dev": true, + "requires": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.1" + } + }, + "json5": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", + "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", + "dev": true + }, + "lodash": { + "version": "4.17.15", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", + "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==", + "dev": true + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "source-map-support": { + "version": "0.4.18", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", + "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", + "dev": true, + "requires": { + "source-map": "^0.5.6" + } + } + } + }, + "babel-runtime": { + "version": "5.8.38", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz", + "integrity": "sha1-HAsC62MxL18If/IEUIJ7QlydTBk=", + "dev": true, + "requires": { + "core-js": "^1.0.0" + }, + "dependencies": { + "core-js": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-1.2.7.tgz", + "integrity": "sha1-ZSKUwUZR2yj6k70tX/KYOk8IxjY=", + "dev": true + } + } + }, + "babel-template": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", + "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", + "dev": true, + "requires": { + "babel-runtime": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "lodash": "^4.17.4" + }, + "dependencies": { + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dev": true, + "requires": { + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" + } + }, + "lodash": { + "version": "4.17.15", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", + "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==", + "dev": true + } + } + }, + "babel-traverse": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", + "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", + "dev": true, + "requires": { + "babel-code-frame": "^6.26.0", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "debug": "^2.6.8", + "globals": "^9.18.0", + "invariant": "^2.2.2", + "lodash": "^4.17.4" + }, + "dependencies": { + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dev": true, + "requires": { + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" + } + }, + "lodash": { + "version": "4.17.15", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", + "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==", + "dev": true + } + } + }, + "babel-types": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", + "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", + "dev": true, + "requires": { + "babel-runtime": "^6.26.0", + "esutils": "^2.0.2", + "lodash": "^4.17.4", + "to-fast-properties": "^1.0.3" + }, + "dependencies": { + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dev": true, + "requires": { + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" + } + }, + "lodash": { + "version": "4.17.15", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", + "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==", + "dev": true + } + } + }, + "babylon": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", + "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", + "dev": true + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" + }, + "base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "dev": true, + "requires": { + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true + } + } + }, + "base64-js": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz", + "integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==", + "dev": true + }, + "big.js": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz", + "integrity": "sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==", + "dev": true + }, + "binary-extensions": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", + "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", + "dev": true + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", + "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", + "dev": true, + "requires": { + "expand-range": "^1.8.1", + "preserve": "^0.2.0", + "repeat-element": "^1.1.2" + } + }, + "breakable": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/breakable/-/breakable-1.0.0.tgz", + "integrity": "sha1-eEp5eRWjjq0nutRWtVcstLuqeME=", + "dev": true + }, + "browserify-zlib": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.1.4.tgz", + "integrity": "sha1-uzX4pRn2AOD6a4SFJByXnQFB+y0=", + "dev": true, + "requires": { + "pako": "~0.2.0" + } + }, + "buffer": { + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz", + "integrity": "sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg=", + "dev": true, + "requires": { + "base64-js": "^1.0.2", + "ieee754": "^1.1.4", + "isarray": "^1.0.0" + } + }, + "buffer-from": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", + "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", + "dev": true + }, + "cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "dev": true, + "requires": { + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" + }, + "dependencies": { + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + } + } + }, + "caching-transform": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/caching-transform/-/caching-transform-3.0.2.tgz", + "integrity": "sha512-Mtgcv3lh3U0zRii/6qVgQODdPA4G3zhG+jtbCWj39RXuUFTMzH0vcdMtaJS1jPowd+It2Pqr6y3NJMQqOqCE2w==", + "requires": { + "hasha": "^3.0.0", + "make-dir": "^2.0.0", + "package-hash": "^3.0.0", + "write-file-atomic": "^2.4.2" + } + }, + "camelcase": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", + "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=", + "dev": true + }, + "center-align": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", + "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", + "dev": true, + "requires": { + "align-text": "^0.1.3", + "lazy-cache": "^1.0.3" + } + }, + "chai": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/chai/-/chai-3.4.1.tgz", + "integrity": "sha1-Mwri+BkSTCYYIDb6XkOojqThvYU=", + "dev": true, + "requires": { + "assertion-error": "^1.0.1", + "deep-eql": "^0.1.3", + "type-detect": "^1.0.0" + } + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "chokidar": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz", + "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=", + "dev": true, + "requires": { + "anymatch": "^1.3.0", + "async-each": "^1.0.0", + "fsevents": "^1.0.0", + "glob-parent": "^2.0.0", + "inherits": "^2.0.1", + "is-binary-path": "^1.0.0", + "is-glob": "^2.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.0.0" + } + }, + "circular-json": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/circular-json/-/circular-json-0.3.3.tgz", + "integrity": "sha512-UZK3NBx2Mca+b5LsG7bY183pHWt5Y1xts4P3Pz7ENTwGVnJOUWbRb3ocjvX7hx9tq/yTAdclXm9sZ38gNuem4A==", + "dev": true + }, + "class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "dev": true, + "requires": { + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + } + } + }, + "cli-width": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-1.1.1.tgz", + "integrity": "sha1-pNKT72frt7iNSk1CwMzwDE0eNm0=", + "dev": true + }, + "cliui": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", + "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", + "dev": true, + "requires": { + "center-align": "^0.1.1", + "right-align": "^0.1.1", + "wordwrap": "0.0.2" + } + }, + "clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=", + "dev": true + }, + "code-point-at": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", + "dev": true + }, + "collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "dev": true, + "requires": { + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + }, + "commander": { + "version": "2.20.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.0.tgz", + "integrity": "sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ==" + }, + "commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=" + }, + "commoner": { + "version": "0.10.8", + "resolved": "https://registry.npmjs.org/commoner/-/commoner-0.10.8.tgz", + "integrity": "sha1-NPw2cs0kOT6LtH5wyqApOBH08sU=", + "dev": true, + "requires": { + "commander": "^2.5.0", + "detective": "^4.3.1", + "glob": "^5.0.15", + "graceful-fs": "^4.1.2", + "iconv-lite": "^0.4.5", + "mkdirp": "^0.5.0", + "private": "^0.1.6", + "q": "^1.1.2", + "recast": "^0.11.17" + }, + "dependencies": { + "esprima": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", + "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=", + "dev": true + }, + "recast": { + "version": "0.11.23", + "resolved": "https://registry.npmjs.org/recast/-/recast-0.11.23.tgz", + "integrity": "sha1-RR/TAEqx5N+bTktmN2sqIZEkYtM=", + "dev": true, + "requires": { + "ast-types": "0.9.6", + "esprima": "~3.1.0", + "private": "~0.1.5", + "source-map": "~0.5.0" + } + } + } + }, + "component-emitter": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + }, + "concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "console-browserify": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz", + "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=", + "dev": true, + "requires": { + "date-now": "^0.1.4" + } + }, + "constants-browserify": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-0.0.1.tgz", + "integrity": "sha1-kld9tSe6bEzwpFaNhLwDH0QeIfI=", + "dev": true + }, + "convert-source-map": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.6.0.tgz", + "integrity": "sha512-eFu7XigvxdZ1ETfbgPBohgyQ/Z++C0eEhTor0qRwBw9unw+L0/6V8wkSuGgzdThkiS5lSpdptOQPD8Ak40a+7A==", + "requires": { + "safe-buffer": "~5.1.1" + } + }, + "copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", + "dev": true + }, + "core-js": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.9.tgz", + "integrity": "sha512-HOpZf6eXmnl7la+cUdMnLvUxKNqLUzJvgIziQ0DiF3JwSImNphIqdGqzj6hIKyX04MmV0poclQ7+wjWvxQyR2A==", + "dev": true + }, + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", + "dev": true + }, + "cp-file": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/cp-file/-/cp-file-6.2.0.tgz", + "integrity": "sha512-fmvV4caBnofhPe8kOcitBwSn2f39QLjnAnGq3gO9dfd75mUytzKNZB1hde6QHunW2Rt+OwuBOMc3i1tNElbszA==", + "requires": { + "graceful-fs": "^4.1.2", + "make-dir": "^2.0.0", + "nested-error-stacks": "^2.0.0", + "pify": "^4.0.1", + "safe-buffer": "^5.0.1" + } + }, + "cross-spawn": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-4.0.2.tgz", + "integrity": "sha1-e5JHYhwjrf3ThWAEqCPL45dCTUE=", + "requires": { + "lru-cache": "^4.0.1", + "which": "^1.2.9" + }, + "dependencies": { + "lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + } + } + }, + "crypto-browserify": { + "version": "3.2.8", + "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.2.8.tgz", + "integrity": "sha1-ubEdvm2WUd2IKgHmzEZ99xjs8Yk=", + "dev": true, + "requires": { + "pbkdf2-compat": "2.0.1", + "ripemd160": "0.2.0", + "sha.js": "2.2.6" + } + }, + "d": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", + "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", + "dev": true, + "requires": { + "es5-ext": "^0.10.50", + "type": "^1.0.1" + } + }, + "date-now": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz", + "integrity": "sha1-6vQ5/U1ISK105cx9vvIAZyueNFs=", + "dev": true + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" + }, + "decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", + "dev": true + }, + "deep-eql": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-0.1.3.tgz", + "integrity": "sha1-71WKyrjeJSBs1xOQbXTlaTDrafI=", + "dev": true, + "requires": { + "type-detect": "0.1.1" + }, + "dependencies": { + "type-detect": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-0.1.1.tgz", + "integrity": "sha1-C6XsKohWQORw6k6FBZcZANrFiCI=", + "dev": true + } + } + }, + "deep-is": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", + "dev": true + }, + "default-require-extensions": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-2.0.0.tgz", + "integrity": "sha1-9fj7sYp9bVCyH2QfZJ67Uiz+JPc=", + "requires": { + "strip-bom": "^3.0.0" + } + }, + "define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "dev": true, + "requires": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + }, + "dependencies": { + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true + } + } + }, + "defined": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", + "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=", + "dev": true + }, + "defs": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/defs/-/defs-1.1.1.tgz", + "integrity": "sha1-siYJ8sehG6ej2xFoBcE5scr/qdI=", + "dev": true, + "requires": { + "alter": "~0.2.0", + "ast-traverse": "~0.1.1", + "breakable": "~1.0.0", + "esprima-fb": "~15001.1001.0-dev-harmony-fb", + "simple-fmt": "~0.1.0", + "simple-is": "~0.2.0", + "stringmap": "~0.2.2", + "stringset": "~0.2.1", + "tryor": "~0.1.2", + "yargs": "~3.27.0" + }, + "dependencies": { + "esprima-fb": { + "version": "15001.1001.0-dev-harmony-fb", + "resolved": "https://registry.npmjs.org/esprima-fb/-/esprima-fb-15001.1001.0-dev-harmony-fb.tgz", + "integrity": "sha1-Q761fsJujPI3092LM+QlM1d/Jlk=", + "dev": true + }, + "yargs": { + "version": "3.27.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.27.0.tgz", + "integrity": "sha1-ISBUaTFuk5Ex1Z8toMbX+YIh6kA=", + "dev": true, + "requires": { + "camelcase": "^1.2.1", + "cliui": "^2.1.0", + "decamelize": "^1.0.0", + "os-locale": "^1.4.0", + "window-size": "^0.1.2", + "y18n": "^3.2.0" + } + } + } + }, + "detect-indent": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", + "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", + "dev": true, + "requires": { + "repeating": "^2.0.0" + } + }, + "detective": { + "version": "4.7.1", + "resolved": "https://registry.npmjs.org/detective/-/detective-4.7.1.tgz", + "integrity": "sha512-H6PmeeUcZloWtdt4DAkFyzFL94arpHr3NOwwmVILFiy+9Qd4JTxxXrzfyGk/lmct2qVGBwTSwSXagqu2BxmWig==", + "dev": true, + "requires": { + "acorn": "^5.2.1", + "defined": "^1.0.0" + } + }, + "diff": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-1.4.0.tgz", + "integrity": "sha1-fyjS657nsVqX79ic5j3P2qPMur8=", + "dev": true + }, + "doctrine": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-0.7.2.tgz", + "integrity": "sha1-fLhgNZujvpDgQLJrcpzkv6ZUxSM=", + "dev": true, + "requires": { + "esutils": "^1.1.6", + "isarray": "0.0.1" + }, + "dependencies": { + "esutils": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-1.1.6.tgz", + "integrity": "sha1-wBzKqa5LiXxtDD4hCuUvPHqEQ3U=", + "dev": true + }, + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + } + } + }, + "domain-browser": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", + "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==", + "dev": true + }, + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==" + }, + "emojis-list": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", + "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=", + "dev": true + }, + "enhanced-resolve": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-0.9.1.tgz", + "integrity": "sha1-TW5omzcl+GCQknzMhs2fFjW4ni4=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "memory-fs": "^0.2.0", + "tapable": "^0.1.8" + }, + "dependencies": { + "memory-fs": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.2.0.tgz", + "integrity": "sha1-8rslNovBIeORwlIN6Slpyu4KApA=", + "dev": true + } + } + }, + "errno": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz", + "integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==", + "dev": true, + "requires": { + "prr": "~1.0.1" + } + }, + "error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "requires": { + "is-arrayish": "^0.2.1" + } + }, + "es5-ext": { + "version": "0.10.51", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.51.tgz", + "integrity": "sha512-oRpWzM2WcLHVKpnrcyB7OW8j/s67Ba04JCm0WnNv3RiABSvs7mrQlutB8DBv793gKcp0XENR8Il8WxGTlZ73gQ==", + "dev": true, + "requires": { + "es6-iterator": "~2.0.3", + "es6-symbol": "~3.1.1", + "next-tick": "^1.0.0" + } + }, + "es6-error": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz", + "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==" + }, + "es6-iterator": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", + "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", + "dev": true, + "requires": { + "d": "1", + "es5-ext": "^0.10.35", + "es6-symbol": "^3.1.1" + } + }, + "es6-map": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/es6-map/-/es6-map-0.1.5.tgz", + "integrity": "sha1-kTbgUD3MBqMBaQ8LsU/042TpSfA=", + "dev": true, + "requires": { + "d": "1", + "es5-ext": "~0.10.14", + "es6-iterator": "~2.0.1", + "es6-set": "~0.1.5", + "es6-symbol": "~3.1.1", + "event-emitter": "~0.3.5" + } + }, + "es6-set": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/es6-set/-/es6-set-0.1.5.tgz", + "integrity": "sha1-0rPsXU2ADO2BjbU40ol02wpzzLE=", + "dev": true, + "requires": { + "d": "1", + "es5-ext": "~0.10.14", + "es6-iterator": "~2.0.1", + "es6-symbol": "3.1.1", + "event-emitter": "~0.3.5" + }, + "dependencies": { + "es6-symbol": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz", + "integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=", + "dev": true, + "requires": { + "d": "1", + "es5-ext": "~0.10.14" + } + } + } + }, + "es6-symbol": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.2.tgz", + "integrity": "sha512-/ZypxQsArlv+KHpGvng52/Iz8by3EQPxhmbuz8yFG89N/caTFBSbcXONDw0aMjy827gQg26XAjP4uXFvnfINmQ==", + "dev": true, + "requires": { + "d": "^1.0.1", + "es5-ext": "^0.10.51" + } + }, + "es6-weak-map": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.3.tgz", + "integrity": "sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==", + "dev": true, + "requires": { + "d": "1", + "es5-ext": "^0.10.46", + "es6-iterator": "^2.0.3", + "es6-symbol": "^3.1.1" + } + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" + }, + "escope": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/escope/-/escope-3.6.0.tgz", + "integrity": "sha1-4Bl16BJ4GhY6ba392AOY3GTIicM=", + "dev": true, + "requires": { + "es6-map": "^0.1.3", + "es6-weak-map": "^2.0.1", + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" + } + }, + "eslint": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-1.7.2.tgz", + "integrity": "sha1-a+WJ27KStLN6GLafXMWjLpT/8OI=", + "dev": true, + "requires": { + "chalk": "^1.0.0", + "concat-stream": "^1.4.6", + "debug": "^2.1.1", + "doctrine": "^0.7.0", + "escape-string-regexp": "^1.0.2", + "escope": "^3.2.0", + "espree": "^2.2.4", + "estraverse": "^4.1.0", + "estraverse-fb": "^1.3.1", + "esutils": "^2.0.2", + "file-entry-cache": "^1.1.1", + "glob": "^5.0.14", + "globals": "^8.11.0", + "handlebars": "^4.0.0", + "inquirer": "^0.9.0", + "is-my-json-valid": "^2.10.0", + "is-resolvable": "^1.0.0", + "js-yaml": "^3.2.5", + "json-stable-stringify": "^1.0.0", + "lodash.clonedeep": "^3.0.1", + "lodash.merge": "^3.3.2", + "lodash.omit": "^3.1.0", + "minimatch": "^2.0.1", + "mkdirp": "^0.5.0", + "object-assign": "^2.0.0", + "optionator": "^0.5.0", + "path-is-absolute": "^1.0.0", + "path-is-inside": "^1.0.1", + "shelljs": "^0.3.0", + "strip-json-comments": "~1.0.1", + "text-table": "~0.2.0", + "to-double-quotes": "^1.0.1", + "to-single-quotes": "^1.0.3", + "user-home": "^1.0.0", + "xml-escape": "~1.0.0" + }, + "dependencies": { + "espree": { + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/espree/-/espree-2.2.5.tgz", + "integrity": "sha1-32kbkxCIlAKuspzAZnCMVmkLhUs=", + "dev": true + }, + "globals": { + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-8.18.0.tgz", + "integrity": "sha1-k9SmK9ysOM+vr8R9awNHaMsP/LQ=", + "dev": true + }, + "object-assign": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-2.1.1.tgz", + "integrity": "sha1-Q8NuXVaf+OSBbE76i+AtJpZ8GKo=", + "dev": true + } + } + }, + "eslint-loader": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/eslint-loader/-/eslint-loader-1.1.0.tgz", + "integrity": "sha1-A06WHp9ZbwQMpAS10ml/T2J/NNA=", + "dev": true, + "requires": { + "loader-utils": "^0.2.7", + "object-assign": "^3.0.0" + }, + "dependencies": { + "object-assign": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-3.0.0.tgz", + "integrity": "sha1-m+3VygiXlJvKR+f/QIBi1Un1h/I=", + "dev": true + } + } + }, + "esprima-fb": { + "version": "15001.1.0-dev-harmony-fb", + "resolved": "https://registry.npmjs.org/esprima-fb/-/esprima-fb-15001.1.0-dev-harmony-fb.tgz", + "integrity": "sha1-MKlHMDxrjV6VW+4rmbHSMyBqaQE=", + "dev": true + }, + "esrecurse": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz", + "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", + "dev": true, + "requires": { + "estraverse": "^4.1.0" + } + }, + "estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true + }, + "estraverse-fb": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/estraverse-fb/-/estraverse-fb-1.3.2.tgz", + "integrity": "sha1-0yOky15awzHOoDNBOpJT4WQ+B8Q=", + "dev": true + }, + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==" + }, + "event-emitter": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", + "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=", + "dev": true, + "requires": { + "d": "1", + "es5-ext": "~0.10.14" + } + }, + "events": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/events/-/events-1.1.1.tgz", + "integrity": "sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ=", + "dev": true + }, + "expand-brackets": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", + "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", + "dev": true, + "requires": { + "is-posix-bracket": "^0.1.0" + } + }, + "expand-range": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", + "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", + "dev": true, + "requires": { + "fill-range": "^2.1.0" + } + }, + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "extglob": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", + "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", + "dev": true, + "requires": { + "is-extglob": "^1.0.0" + } + }, + "fast-levenshtein": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-1.0.7.tgz", + "integrity": "sha1-AXjc3uAjuSkFGTrwlZ6KdjnP3Lk=", + "dev": true + }, + "figures": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", + "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.5", + "object-assign": "^4.1.0" + } + }, + "file-entry-cache": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-1.3.1.tgz", + "integrity": "sha1-RMYepgeuS+nBQC9B9EJwy/4zT/g=", + "dev": true, + "requires": { + "flat-cache": "^1.2.1", + "object-assign": "^4.0.1" + } + }, + "filename-regex": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", + "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=", + "dev": true + }, + "fill-range": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.4.tgz", + "integrity": "sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==", + "dev": true, + "requires": { + "is-number": "^2.1.0", + "isobject": "^2.0.0", + "randomatic": "^3.0.0", + "repeat-element": "^1.1.2", + "repeat-string": "^1.5.2" + } + }, + "find-cache-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", + "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", + "requires": { + "commondir": "^1.0.1", + "make-dir": "^2.0.0", + "pkg-dir": "^3.0.0" + } + }, + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "requires": { + "locate-path": "^3.0.0" + } + }, + "flat-cache": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.3.4.tgz", + "integrity": "sha512-VwyB3Lkgacfik2vhqR4uv2rvebqmDvFu4jlN/C1RzWoJEo8I7z4Q404oiqYCkq41mni8EzQnm95emU9seckwtg==", + "dev": true, + "requires": { + "circular-json": "^0.3.1", + "graceful-fs": "^4.1.2", + "rimraf": "~2.6.2", + "write": "^0.2.1" + } + }, + "for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "dev": true + }, + "for-own": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", + "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", + "dev": true, + "requires": { + "for-in": "^1.0.1" + } + }, + "foreground-child": { + "version": "1.5.6", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-1.5.6.tgz", + "integrity": "sha1-T9ca0t/elnibmApcCilZN8svXOk=", + "requires": { + "cross-spawn": "^4", + "signal-exit": "^3.0.0" + } + }, + "fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "dev": true, + "requires": { + "map-cache": "^0.2.2" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + }, + "fsevents": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.9.tgz", + "integrity": "sha512-oeyj2H3EjjonWcFjD5NvZNE9Rqe4UW+nQBU2HNeKw0koVLEFIhtyETyAakeAM3de7Z/SW5kcA+fZUait9EApnw==", + "dev": true, + "optional": true, + "requires": { + "nan": "^2.12.1", + "node-pre-gyp": "^0.12.0" + }, + "dependencies": { + "abbrev": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "ansi-regex": { + "version": "2.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "aproba": { + "version": "1.2.0", + "bundled": true, + "dev": true, + "optional": true + }, + "are-we-there-yet": { + "version": "1.1.5", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" + } + }, + "balanced-match": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "brace-expansion": { + "version": "1.1.11", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "chownr": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "code-point-at": { + "version": "1.1.0", + "bundled": true, + "dev": true, + "optional": true + }, + "concat-map": { + "version": "0.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "console-control-strings": { + "version": "1.1.0", + "bundled": true, + "dev": true, + "optional": true + }, + "core-util-is": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "debug": { + "version": "4.1.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "ms": "^2.1.1" + } + }, + "deep-extend": { + "version": "0.6.0", + "bundled": true, + "dev": true, + "optional": true + }, + "delegates": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "detect-libc": { + "version": "1.0.3", + "bundled": true, + "dev": true, + "optional": true + }, + "fs-minipass": { + "version": "1.2.5", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minipass": "^2.2.1" + } + }, + "fs.realpath": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "gauge": { + "version": "2.7.4", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" + } + }, + "glob": { + "version": "7.1.3", + "bundled": true, + "dev": true, + "optional": 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" + } + }, + "has-unicode": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "iconv-lite": { + "version": "0.4.24", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "ignore-walk": { + "version": "3.0.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minimatch": "^3.0.4" + } + }, + "inflight": { + "version": "1.0.6", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.3", + "bundled": true, + "dev": true, + "optional": true + }, + "ini": { + "version": "1.3.5", + "bundled": true, + "dev": true, + "optional": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "isarray": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "minimatch": { + "version": "3.0.4", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "0.0.8", + "bundled": true, + "dev": true, + "optional": true + }, + "minipass": { + "version": "2.3.5", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" + } + }, + "minizlib": { + "version": "1.2.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minipass": "^2.2.1" + } + }, + "mkdirp": { + "version": "0.5.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minimist": "0.0.8" + } + }, + "ms": { + "version": "2.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "needle": { + "version": "2.3.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "debug": "^4.1.0", + "iconv-lite": "^0.4.4", + "sax": "^1.2.4" + } + }, + "node-pre-gyp": { + "version": "0.12.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "detect-libc": "^1.0.2", + "mkdirp": "^0.5.1", + "needle": "^2.2.1", + "nopt": "^4.0.1", + "npm-packlist": "^1.1.6", + "npmlog": "^4.0.2", + "rc": "^1.2.7", + "rimraf": "^2.6.1", + "semver": "^5.3.0", + "tar": "^4" + } + }, + "nopt": { + "version": "4.0.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "abbrev": "1", + "osenv": "^0.1.4" + } + }, + "npm-bundled": { + "version": "1.0.6", + "bundled": true, + "dev": true, + "optional": true + }, + "npm-packlist": { + "version": "1.4.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "ignore-walk": "^3.0.1", + "npm-bundled": "^1.0.1" + } + }, + "npmlog": { + "version": "4.1.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" + } + }, + "number-is-nan": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "object-assign": { + "version": "4.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "once": { + "version": "1.4.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "wrappy": "1" + } + }, + "os-homedir": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "os-tmpdir": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "osenv": { + "version": "0.1.5", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, + "path-is-absolute": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "process-nextick-args": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "rc": { + "version": "1.2.8", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "bundled": true, + "dev": true, + "optional": true + } + } + }, + "readable-stream": { + "version": "2.3.6", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "rimraf": { + "version": "2.6.3", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "glob": "^7.1.3" + } + }, + "safe-buffer": { + "version": "5.1.2", + "bundled": true, + "dev": true, + "optional": true + }, + "safer-buffer": { + "version": "2.1.2", + "bundled": true, + "dev": true, + "optional": true + }, + "sax": { + "version": "1.2.4", + "bundled": true, + "dev": true, + "optional": true + }, + "semver": { + "version": "5.7.0", + "bundled": true, + "dev": true, + "optional": true + }, + "set-blocking": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "signal-exit": { + "version": "3.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "string-width": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "string_decoder": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "strip-json-comments": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "tar": { + "version": "4.4.8", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "chownr": "^1.1.1", + "fs-minipass": "^1.2.5", + "minipass": "^2.3.4", + "minizlib": "^1.1.1", + "mkdirp": "^0.5.0", + "safe-buffer": "^5.1.2", + "yallist": "^3.0.2" + } + }, + "util-deprecate": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "wide-align": { + "version": "1.1.3", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "string-width": "^1.0.2 || 2" + } + }, + "wrappy": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "yallist": { + "version": "3.0.3", + "bundled": true, + "dev": true, + "optional": true + } + } + }, + "generate-function": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.3.1.tgz", + "integrity": "sha512-eeB5GfMNeevm/GRYq20ShmsaGcmI81kIX2K9XQx5miC8KdHaC6Jm0qQ8ZNeGOi7wYB8OsdxKs+Y2oVuTFuVwKQ==", + "dev": true, + "requires": { + "is-property": "^1.0.2" + } + }, + "generate-object-property": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz", + "integrity": "sha1-nA4cQDCM6AT0eDYYuTf6iPmdUNA=", + "dev": true, + "requires": { + "is-property": "^1.0.0" + } + }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" + }, + "get-stdin": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-3.0.2.tgz", + "integrity": "sha1-wc7SS5A5s43thb3xYeV3E7bdSr4=", + "dev": true + }, + "get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", + "dev": true + }, + "glob": { + "version": "5.0.15", + "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz", + "integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=", + "dev": true, + "requires": { + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "2 || 3", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-base": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", + "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", + "dev": true, + "requires": { + "glob-parent": "^2.0.0", + "is-glob": "^2.0.0" + } + }, + "glob-parent": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", + "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", + "dev": true, + "requires": { + "is-glob": "^2.0.0" + } + }, + "globals": { + "version": "9.18.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", + "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", + "dev": true + }, + "graceful-fs": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.2.tgz", + "integrity": "sha512-IItsdsea19BoLC7ELy13q1iJFNmd7ofZH5+X/pJr90/nRoPEX0DJo1dHDbgtYWOhJhcCgMDTOw84RZ72q6lB+Q==" + }, + "growl": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/growl/-/growl-1.8.1.tgz", + "integrity": "sha1-Sy3sjZB+k9szZiTc7AGDUC+MlCg=", + "dev": true + }, + "handlebars": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.3.2.tgz", + "integrity": "sha512-LuccMnDrKB72bbClEIucoBNAIMpqmWvIGSKNEngDcYFT6hlCq7ZoCWc26ZT9mr6tfWTJeTswSldoI5LOeezzDQ==", + "requires": { + "neo-async": "^2.6.0", + "optimist": "^0.6.1", + "source-map": "^0.6.1", + "uglify-js": "^3.1.4" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + } + } + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "dev": true + }, + "has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "dev": true, + "requires": { + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" + }, + "dependencies": { + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + } + } + }, + "has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "kind-of": "^4.0.0" + }, + "dependencies": { + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "hasha": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/hasha/-/hasha-3.0.0.tgz", + "integrity": "sha1-UqMvq4Vp1BymmmH/GiFPjrfIvTk=", + "requires": { + "is-stream": "^1.0.1" + } + }, + "home-or-tmp": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-1.0.0.tgz", + "integrity": "sha1-S58eQIAMPlDGwn94FnavzOcfOYU=", + "dev": true, + "requires": { + "os-tmpdir": "^1.0.1", + "user-home": "^1.1.1" + } + }, + "hosted-git-info": { + "version": "2.8.4", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.4.tgz", + "integrity": "sha512-pzXIvANXEFrc5oFFXRMkbLPQ2rXRoDERwDLyrcUxGhaZhgP54BBSl9Oheh7Vv0T090cszWBxPjkQQ5Sq1PbBRQ==" + }, + "http-browserify": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/http-browserify/-/http-browserify-1.7.0.tgz", + "integrity": "sha1-M3la3nLfiKz7/TZ3PO/tp2RzWyA=", + "dev": true, + "requires": { + "Base64": "~0.2.0", + "inherits": "~2.0.1" + } + }, + "https-browserify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-0.0.0.tgz", + "integrity": "sha1-s//f5zSyo9Sp79WOhlTJH86G6v0=", + "dev": true + }, + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "ieee754": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz", + "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==", + "dev": true + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=" + }, + "indexof": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", + "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "inquirer": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-0.9.0.tgz", + "integrity": "sha1-c2bjijMeYZBJWKzlstpKml9jZ5g=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0", + "chalk": "^1.0.0", + "cli-width": "^1.0.1", + "figures": "^1.3.5", + "lodash": "^3.3.1", + "readline2": "^0.1.1", + "run-async": "^0.1.0", + "rx-lite": "^2.5.2", + "strip-ansi": "^3.0.0", + "through": "^2.3.6" + } + }, + "interpret": { + "version": "0.6.6", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-0.6.6.tgz", + "integrity": "sha1-/s16GOfOXKar+5U+H4YhOknxYls=", + "dev": true + }, + "invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "dev": true, + "requires": { + "loose-envify": "^1.0.0" + } + }, + "invert-kv": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", + "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=", + "dev": true + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + } + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" + }, + "is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "dev": true, + "requires": { + "binary-extensions": "^1.0.0" + } + }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "is-dotfile": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz", + "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=", + "dev": true + }, + "is-equal-shallow": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", + "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", + "dev": true, + "requires": { + "is-primitive": "^2.0.0" + } + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "dev": true + }, + "is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", + "dev": true + }, + "is-finite": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", + "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", + "dev": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "dev": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", + "dev": true, + "requires": { + "is-extglob": "^1.0.0" + } + }, + "is-my-ip-valid": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-my-ip-valid/-/is-my-ip-valid-1.0.0.tgz", + "integrity": "sha512-gmh/eWXROncUzRnIa1Ubrt5b8ep/MGSnfAUI3aRp+sqTCs1tv1Isl8d8F6JmkN3dXKc3ehZMrtiPN9eL03NuaQ==", + "dev": true + }, + "is-my-json-valid": { + "version": "2.20.0", + "resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.20.0.tgz", + "integrity": "sha512-XTHBZSIIxNsIsZXg7XB5l8z/OBFosl1Wao4tXLpeC7eKU4Vm/kdop2azkPqULwnfGQjmeDIyey9g7afMMtdWAA==", + "dev": true, + "requires": { + "generate-function": "^2.0.0", + "generate-object-property": "^1.1.0", + "is-my-ip-valid": "^1.0.0", + "jsonpointer": "^4.0.0", + "xtend": "^4.0.0" + } + }, + "is-number": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", + "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + } + }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "requires": { + "isobject": "^3.0.1" + }, + "dependencies": { + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + } + } + }, + "is-posix-bracket": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz", + "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=", + "dev": true + }, + "is-primitive": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz", + "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=", + "dev": true + }, + "is-property": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz", + "integrity": "sha1-V/4cTkhHTt1lsJkR8msc1Ald2oQ=", + "dev": true + }, + "is-resolvable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz", + "integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==", + "dev": true + }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" + }, + "is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "dev": true + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" + }, + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "dev": true, + "requires": { + "isarray": "1.0.0" + } + }, + "istanbul-lib-coverage": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.5.tgz", + "integrity": "sha512-8aXznuEPCJvGnMSRft4udDRDtb1V3pkQkMMI5LI+6HuQz5oQ4J2UFn1H82raA3qJtyOLkkwVqICBQkjnGtn5mA==" + }, + "istanbul-lib-hook": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-2.0.7.tgz", + "integrity": "sha512-vrRztU9VRRFDyC+aklfLoeXyNdTfga2EI3udDGn4cZ6fpSXpHLV9X6CHvfoMCPtggg8zvDDmC4b9xfu0z6/llA==", + "requires": { + "append-transform": "^1.0.0" + } + }, + "istanbul-lib-instrument": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-3.3.0.tgz", + "integrity": "sha512-5nnIN4vo5xQZHdXno/YDXJ0G+I3dAm4XgzfSVTPLQpj/zAV2dV6Juy0yaf10/zrJOJeHoN3fraFe+XRq2bFVZA==", + "requires": { + "@babel/generator": "^7.4.0", + "@babel/parser": "^7.4.3", + "@babel/template": "^7.4.0", + "@babel/traverse": "^7.4.3", + "@babel/types": "^7.4.0", + "istanbul-lib-coverage": "^2.0.5", + "semver": "^6.0.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + } + } + }, + "istanbul-lib-report": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-2.0.8.tgz", + "integrity": "sha512-fHBeG573EIihhAblwgxrSenp0Dby6tJMFR/HvlerBsrCTD5bkUuoNtn3gVh29ZCS824cGGBPn7Sg7cNk+2xUsQ==", + "requires": { + "istanbul-lib-coverage": "^2.0.5", + "make-dir": "^2.1.0", + "supports-color": "^6.1.0" + }, + "dependencies": { + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "istanbul-lib-source-maps": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-3.0.6.tgz", + "integrity": "sha512-R47KzMtDJH6X4/YW9XTx+jrLnZnscW4VpNN+1PViSYTejLVPWv7oov+Duf8YQSPyVRUvueQqz1TcsC6mooZTXw==", + "requires": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^2.0.5", + "make-dir": "^2.1.0", + "rimraf": "^2.6.3", + "source-map": "^0.6.1" + }, + "dependencies": { + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + } + } + }, + "istanbul-reports": { + "version": "2.2.6", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-2.2.6.tgz", + "integrity": "sha512-SKi4rnMyLBKe0Jy2uUdx28h8oG7ph2PPuQPvIAh31d+Ci+lSiEu4C+h3oBPuJ9+mPKhOyW0M8gY4U5NM1WLeXA==", + "requires": { + "handlebars": "^4.1.2" + } + }, + "jade": { + "version": "0.26.3", + "resolved": "https://registry.npmjs.org/jade/-/jade-0.26.3.tgz", + "integrity": "sha1-jxDXl32NefL2/4YqgbBRPMslaGw=", + "dev": true, + "requires": { + "commander": "0.6.1", + "mkdirp": "0.3.0" + }, + "dependencies": { + "commander": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-0.6.1.tgz", + "integrity": "sha1-+mihT2qUXVTbvlDYzbMyDp47GgY=", + "dev": true + }, + "mkdirp": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.0.tgz", + "integrity": "sha1-G79asbqCevI1dRQ0kEJkVfSB/h4=", + "dev": true + } + } + }, + "js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", + "dev": true + }, + "js-yaml": { + "version": "3.13.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", + "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "dependencies": { + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" + } + } + }, + "jsesc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", + "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=", + "dev": true + }, + "json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==" + }, + "json-stable-stringify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", + "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", + "dev": true, + "requires": { + "jsonify": "~0.0.0" + } + }, + "json5": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/json5/-/json5-0.4.0.tgz", + "integrity": "sha1-BUNS5MTIDIbAkjh31EneF2pzLI0=", + "dev": true + }, + "jsonify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", + "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=", + "dev": true + }, + "jsonpointer": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-4.0.1.tgz", + "integrity": "sha1-T9kss04OnbPInIYi7PUfm5eMbLk=", + "dev": true + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + }, + "lazy-cache": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", + "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=", + "dev": true + }, + "lcid": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", + "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", + "dev": true, + "requires": { + "invert-kv": "^1.0.0" + } + }, + "levn": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.2.5.tgz", + "integrity": "sha1-uo0znQykphDjo/FFucr0iAcVUFQ=", + "dev": true, + "requires": { + "prelude-ls": "~1.1.0", + "type-check": "~0.3.1" + } + }, + "load-json-file": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", + "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", + "requires": { + "graceful-fs": "^4.1.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0", + "strip-bom": "^3.0.0" + }, + "dependencies": { + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" + } + } + }, + "loader-utils": { + "version": "0.2.17", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.17.tgz", + "integrity": "sha1-+G5jdNQyBabmxg6RlvF8Apm/s0g=", + "dev": true, + "requires": { + "big.js": "^3.1.3", + "emojis-list": "^2.0.0", + "json5": "^0.5.0", + "object-assign": "^4.0.1" + }, + "dependencies": { + "json5": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", + "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", + "dev": true + } + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + }, + "dependencies": { + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" + } + } + }, + "lodash": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz", + "integrity": "sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y=", + "dev": true + }, + "lodash._arraycopy": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lodash._arraycopy/-/lodash._arraycopy-3.0.0.tgz", + "integrity": "sha1-due3wfH7klRzdIeKVi7Qaj5Q9uE=", + "dev": true + }, + "lodash._arrayeach": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lodash._arrayeach/-/lodash._arrayeach-3.0.0.tgz", + "integrity": "sha1-urFWsqkNPxu9XGU0AzSeXlkz754=", + "dev": true + }, + "lodash._arraymap": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lodash._arraymap/-/lodash._arraymap-3.0.0.tgz", + "integrity": "sha1-Go/Q9MDfS2HeoHbXF83Jfwo8PmY=", + "dev": true + }, + "lodash._baseassign": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/lodash._baseassign/-/lodash._baseassign-3.2.0.tgz", + "integrity": "sha1-jDigmVAPIVrQnlnxci/QxSv+Ck4=", + "dev": true, + "requires": { + "lodash._basecopy": "^3.0.0", + "lodash.keys": "^3.0.0" + } + }, + "lodash._baseclone": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/lodash._baseclone/-/lodash._baseclone-3.3.0.tgz", + "integrity": "sha1-MDUZv2OT/n5C802LYw73eU41Qrc=", + "dev": true, + "requires": { + "lodash._arraycopy": "^3.0.0", + "lodash._arrayeach": "^3.0.0", + "lodash._baseassign": "^3.0.0", + "lodash._basefor": "^3.0.0", + "lodash.isarray": "^3.0.0", + "lodash.keys": "^3.0.0" + } + }, + "lodash._basecopy": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz", + "integrity": "sha1-jaDmqHbPNEwK2KVIghEd08XHyjY=", + "dev": true + }, + "lodash._basedifference": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash._basedifference/-/lodash._basedifference-3.0.3.tgz", + "integrity": "sha1-8sIEKWwqeOArOJCBtu3KyTPPYpw=", + "dev": true, + "requires": { + "lodash._baseindexof": "^3.0.0", + "lodash._cacheindexof": "^3.0.0", + "lodash._createcache": "^3.0.0" + } + }, + "lodash._baseflatten": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/lodash._baseflatten/-/lodash._baseflatten-3.1.4.tgz", + "integrity": "sha1-B3D/gBMa9uNPO1EXlqe6UhTmX/c=", + "dev": true, + "requires": { + "lodash.isarguments": "^3.0.0", + "lodash.isarray": "^3.0.0" + } + }, + "lodash._basefor": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash._basefor/-/lodash._basefor-3.0.3.tgz", + "integrity": "sha1-dVC06SGO8J+tJDQ7YSAhx5tMIMI=", + "dev": true + }, + "lodash._baseindexof": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/lodash._baseindexof/-/lodash._baseindexof-3.1.0.tgz", + "integrity": "sha1-/lK1OhxnYeQmGNZU5KJXie1hgiw=", + "dev": true + }, + "lodash._bindcallback": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/lodash._bindcallback/-/lodash._bindcallback-3.0.1.tgz", + "integrity": "sha1-5THCdkTPi1epnhftlbNcdIeJOS4=", + "dev": true + }, + "lodash._cacheindexof": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/lodash._cacheindexof/-/lodash._cacheindexof-3.0.2.tgz", + "integrity": "sha1-PcaayCSY0u5ePOVgkbr9Ktx73pI=", + "dev": true + }, + "lodash._createassigner": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/lodash._createassigner/-/lodash._createassigner-3.1.1.tgz", + "integrity": "sha1-g4pbri/aymOsIt7o4Z+k5taXCxE=", + "dev": true, + "requires": { + "lodash._bindcallback": "^3.0.0", + "lodash._isiterateecall": "^3.0.0", + "lodash.restparam": "^3.0.0" + } + }, + "lodash._createcache": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/lodash._createcache/-/lodash._createcache-3.1.2.tgz", + "integrity": "sha1-VtagZAF2JeeevKa4AY4XRAvc8JM=", + "dev": true, + "requires": { + "lodash._getnative": "^3.0.0" + } + }, + "lodash._getnative": { + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/lodash._getnative/-/lodash._getnative-3.9.1.tgz", + "integrity": "sha1-VwvH3t5G1hzc3mh9ZdPuy6o6r/U=", + "dev": true + }, + "lodash._isiterateecall": { + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz", + "integrity": "sha1-UgOte6Ql+uhCRg5pbbnPPmqsBXw=", + "dev": true + }, + "lodash._pickbyarray": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/lodash._pickbyarray/-/lodash._pickbyarray-3.0.2.tgz", + "integrity": "sha1-H4mNlgfrVgsOFnOEt3x8bRCKpMU=", + "dev": true + }, + "lodash._pickbycallback": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lodash._pickbycallback/-/lodash._pickbycallback-3.0.0.tgz", + "integrity": "sha1-/2G5oBens699MObFPeKK+hm4dQo=", + "dev": true, + "requires": { + "lodash._basefor": "^3.0.0", + "lodash.keysin": "^3.0.0" + } + }, + "lodash.assign": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/lodash.assign/-/lodash.assign-3.2.0.tgz", + "integrity": "sha1-POnwI0tLIiPilrj6CsH+6OvKZPo=", + "dev": true, + "requires": { + "lodash._baseassign": "^3.0.0", + "lodash._createassigner": "^3.0.0", + "lodash.keys": "^3.0.0" + } + }, + "lodash.clonedeep": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-3.0.2.tgz", + "integrity": "sha1-oKHkDYKl6on/WxR7hETtY9koJ9s=", + "dev": true, + "requires": { + "lodash._baseclone": "^3.0.0", + "lodash._bindcallback": "^3.0.0" + } + }, + "lodash.flattendeep": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz", + "integrity": "sha1-+wMJF/hqMTTlvJvsDWngAT3f7bI=" + }, + "lodash.isarguments": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz", + "integrity": "sha1-L1c9hcaiQon/AGY7SRwdM4/zRYo=", + "dev": true + }, + "lodash.isarray": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/lodash.isarray/-/lodash.isarray-3.0.4.tgz", + "integrity": "sha1-eeTriMNqgSKvhvhEqpvNhRtfu1U=", + "dev": true + }, + "lodash.isplainobject": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-3.2.0.tgz", + "integrity": "sha1-moI4rhayAEMpYM1zRlEtASP79MU=", + "dev": true, + "requires": { + "lodash._basefor": "^3.0.0", + "lodash.isarguments": "^3.0.0", + "lodash.keysin": "^3.0.0" + } + }, + "lodash.istypedarray": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/lodash.istypedarray/-/lodash.istypedarray-3.0.6.tgz", + "integrity": "sha1-yaR3SYYHUB2OhJTSg7h8OSgc72I=", + "dev": true + }, + "lodash.keys": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz", + "integrity": "sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo=", + "dev": true, + "requires": { + "lodash._getnative": "^3.0.0", + "lodash.isarguments": "^3.0.0", + "lodash.isarray": "^3.0.0" + } + }, + "lodash.keysin": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/lodash.keysin/-/lodash.keysin-3.0.8.tgz", + "integrity": "sha1-IsRJPrvtsUJ5YqVLRFssinZ/tH8=", + "dev": true, + "requires": { + "lodash.isarguments": "^3.0.0", + "lodash.isarray": "^3.0.0" + } + }, + "lodash.merge": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-3.3.2.tgz", + "integrity": "sha1-DZDZPtY3sYeEN7s+IWASYNev6ZQ=", + "dev": true, + "requires": { + "lodash._arraycopy": "^3.0.0", + "lodash._arrayeach": "^3.0.0", + "lodash._createassigner": "^3.0.0", + "lodash._getnative": "^3.0.0", + "lodash.isarguments": "^3.0.0", + "lodash.isarray": "^3.0.0", + "lodash.isplainobject": "^3.0.0", + "lodash.istypedarray": "^3.0.0", + "lodash.keys": "^3.0.0", + "lodash.keysin": "^3.0.0", + "lodash.toplainobject": "^3.0.0" + } + }, + "lodash.omit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/lodash.omit/-/lodash.omit-3.1.0.tgz", + "integrity": "sha1-iX/jguZBPZrJfGH3jtHgV6AK+fM=", + "dev": true, + "requires": { + "lodash._arraymap": "^3.0.0", + "lodash._basedifference": "^3.0.0", + "lodash._baseflatten": "^3.0.0", + "lodash._bindcallback": "^3.0.0", + "lodash._pickbyarray": "^3.0.0", + "lodash._pickbycallback": "^3.0.0", + "lodash.keysin": "^3.0.0", + "lodash.restparam": "^3.0.0" + } + }, + "lodash.pick": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/lodash.pick/-/lodash.pick-3.1.0.tgz", + "integrity": "sha1-8lKoVbIEa2G805BLJvdr0u/GVVA=", + "dev": true, + "requires": { + "lodash._baseflatten": "^3.0.0", + "lodash._bindcallback": "^3.0.0", + "lodash._pickbyarray": "^3.0.0", + "lodash._pickbycallback": "^3.0.0", + "lodash.restparam": "^3.0.0" + } + }, + "lodash.restparam": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/lodash.restparam/-/lodash.restparam-3.6.1.tgz", + "integrity": "sha1-k2pOMJ7zMKdkXtQUWYbIWuWyCAU=", + "dev": true + }, + "lodash.toplainobject": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lodash.toplainobject/-/lodash.toplainobject-3.0.0.tgz", + "integrity": "sha1-KHkK2ULSk9eKpmOgfs9/UsoEGY0=", + "dev": true, + "requires": { + "lodash._basecopy": "^3.0.0", + "lodash.keysin": "^3.0.0" + } + }, + "longest": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", + "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=", + "dev": true + }, + "loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dev": true, + "requires": { + "js-tokens": "^3.0.0 || ^4.0.0" + } + }, + "lru-cache": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.3.tgz", + "integrity": "sha1-bUUk6LlV+V1PW1iFHOId1y+06VI=", + "dev": true + }, + "make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "requires": { + "pify": "^4.0.1", + "semver": "^5.6.0" + } + }, + "map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", + "dev": true + }, + "map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "dev": true, + "requires": { + "object-visit": "^1.0.0" + } + }, + "math-random": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/math-random/-/math-random-1.0.4.tgz", + "integrity": "sha512-rUxjysqif/BZQH2yhd5Aaq7vXMSx9NdEsQcyA07uEzIvxgI7zIr33gGsh+RU0/XjmQpCW7RsVof1vlkvQVCK5A==", + "dev": true + }, + "memory-fs": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.3.0.tgz", + "integrity": "sha1-e8xrYp46Q+hx1+Kaymrop/FcuyA=", + "dev": true, + "requires": { + "errno": "^0.1.3", + "readable-stream": "^2.0.1" + } + }, + "merge-source-map": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.1.0.tgz", + "integrity": "sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw==", + "requires": { + "source-map": "^0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + } + } + }, + "micromatch": { + "version": "2.3.11", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", + "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", + "dev": true, + "requires": { + "arr-diff": "^2.0.0", + "array-unique": "^0.2.1", + "braces": "^1.8.2", + "expand-brackets": "^0.1.4", + "extglob": "^0.3.1", + "filename-regex": "^2.0.0", + "is-extglob": "^1.0.0", + "is-glob": "^2.0.1", + "kind-of": "^3.0.2", + "normalize-path": "^2.0.1", + "object.omit": "^2.0.0", + "parse-glob": "^3.0.4", + "regex-cache": "^0.4.2" + } + }, + "minimatch": { + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-2.0.10.tgz", + "integrity": "sha1-jQh8OcazjAAbl/ynzm0OHoCvusc=", + "dev": true, + "requires": { + "brace-expansion": "^1.0.0" + } + }, + "minimist": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" + }, + "mixin-deep": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", + "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", + "dev": true, + "requires": { + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "mkdirp": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "requires": { + "minimist": "0.0.8" + } + }, + "mocha": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-2.3.4.tgz", + "integrity": "sha1-himm+wRPLSJapLgaKuLQAWmesmY=", + "dev": true, + "requires": { + "commander": "2.3.0", + "debug": "2.2.0", + "diff": "1.4.0", + "escape-string-regexp": "1.0.2", + "glob": "3.2.3", + "growl": "1.8.1", + "jade": "0.26.3", + "mkdirp": "0.5.0", + "supports-color": "1.2.0" + }, + "dependencies": { + "commander": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.3.0.tgz", + "integrity": "sha1-/UMOiJgy7DU7ms0d4hfBHLPu+HM=", + "dev": true + }, + "debug": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", + "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=", + "dev": true, + "requires": { + "ms": "0.7.1" + } + }, + "escape-string-regexp": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.2.tgz", + "integrity": "sha1-Tbwv5nTnGUnK8/smlc5/LcHZqNE=", + "dev": true + }, + "glob": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-3.2.3.tgz", + "integrity": "sha1-4xPusknHr/qlxHUoaw4RW1mDlGc=", + "dev": true, + "requires": { + "graceful-fs": "~2.0.0", + "inherits": "2", + "minimatch": "~0.2.11" + } + }, + "graceful-fs": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-2.0.3.tgz", + "integrity": "sha1-fNLNsiiko/Nule+mzBQt59GhNtA=", + "dev": true + }, + "minimatch": { + "version": "0.2.14", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz", + "integrity": "sha1-x054BXT2PG+aCQ6Q775u9TpqdWo=", + "dev": true, + "requires": { + "lru-cache": "2", + "sigmund": "~1.0.0" + } + }, + "mkdirp": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.0.tgz", + "integrity": "sha1-HXMHam35hs2TROFecfzAWkyavxI=", + "dev": true, + "requires": { + "minimist": "0.0.8" + } + }, + "ms": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", + "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=", + "dev": true + }, + "supports-color": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-1.2.0.tgz", + "integrity": "sha1-/x7R5hFp0Gs88tWI4YixjYhH4X4=", + "dev": true + } + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "mute-stream": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.4.tgz", + "integrity": "sha1-qSGZYKbV1dBGWXruUSUsZlX3F34=", + "dev": true + }, + "nan": { + "version": "2.14.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz", + "integrity": "sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==", + "dev": true, + "optional": true + }, + "nanomatch": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", + "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "dev": true + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "dev": true + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true + } + } + }, + "neo-async": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.1.tgz", + "integrity": "sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw==" + }, + "nested-error-stacks": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/nested-error-stacks/-/nested-error-stacks-2.1.0.tgz", + "integrity": "sha512-AO81vsIO1k1sM4Zrd6Hu7regmJN1NSiAja10gc4bX3F0wd+9rQmcuHQaHVQCYIEC8iFXnE+mavh23GOt7wBgug==" + }, + "next-tick": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz", + "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=", + "dev": true + }, + "node-libs-browser": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-0.6.0.tgz", + "integrity": "sha1-JEgG1E0xngSLyGB7XMTq+aKdLjw=", + "dev": true, + "requires": { + "assert": "^1.1.1", + "browserify-zlib": "~0.1.4", + "buffer": "^4.9.0", + "console-browserify": "^1.1.0", + "constants-browserify": "0.0.1", + "crypto-browserify": "~3.2.6", + "domain-browser": "^1.1.1", + "events": "^1.0.0", + "http-browserify": "^1.3.2", + "https-browserify": "0.0.0", + "os-browserify": "~0.1.2", + "path-browserify": "0.0.0", + "process": "^0.11.0", + "punycode": "^1.2.4", + "querystring-es3": "~0.2.0", + "readable-stream": "^1.1.13", + "stream-browserify": "^1.0.0", + "string_decoder": "~0.10.25", + "timers-browserify": "^1.0.1", + "tty-browserify": "0.0.0", + "url": "~0.10.1", + "util": "~0.10.3", + "vm-browserify": "0.0.4" + }, + "dependencies": { + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + }, + "readable-stream": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "dev": true + } + } + }, + "normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "requires": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "requires": { + "remove-trailing-separator": "^1.0.1" + } + }, + "number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "dev": true + }, + "nyc": { + "version": "14.1.1", + "resolved": "https://registry.npmjs.org/nyc/-/nyc-14.1.1.tgz", + "integrity": "sha512-OI0vm6ZGUnoGZv/tLdZ2esSVzDwUC88SNs+6JoSOMVxA+gKMB8Tk7jBwgemLx4O40lhhvZCVw1C+OYLOBOPXWw==", + "requires": { + "archy": "^1.0.0", + "caching-transform": "^3.0.2", + "convert-source-map": "^1.6.0", + "cp-file": "^6.2.0", + "find-cache-dir": "^2.1.0", + "find-up": "^3.0.0", + "foreground-child": "^1.5.6", + "glob": "^7.1.3", + "istanbul-lib-coverage": "^2.0.5", + "istanbul-lib-hook": "^2.0.7", + "istanbul-lib-instrument": "^3.3.0", + "istanbul-lib-report": "^2.0.8", + "istanbul-lib-source-maps": "^3.0.6", + "istanbul-reports": "^2.2.4", + "js-yaml": "^3.13.1", + "make-dir": "^2.1.0", + "merge-source-map": "^1.1.0", + "resolve-from": "^4.0.0", + "rimraf": "^2.6.3", + "signal-exit": "^3.0.2", + "spawn-wrap": "^1.4.2", + "test-exclude": "^5.2.3", + "uuid": "^3.3.2", + "yargs": "^13.2.2", + "yargs-parser": "^13.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "cliui": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", + "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", + "requires": { + "string-width": "^3.1.0", + "strip-ansi": "^5.2.0", + "wrap-ansi": "^5.1.0" + } + }, + "glob": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz", + "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==", + "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" + } + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "requires": { + "ansi-regex": "^4.1.0" + } + }, + "wrap-ansi": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", + "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", + "requires": { + "ansi-styles": "^3.2.0", + "string-width": "^3.0.0", + "strip-ansi": "^5.0.0" + } + }, + "y18n": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", + "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==" + }, + "yargs": { + "version": "13.3.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.0.tgz", + "integrity": "sha512-2eehun/8ALW8TLoIl7MVaRUrg+yCnenu8B4kBlRxj3GJGDKU1Og7sMXPNm1BYyM1DOJmTZ4YeN/Nwxv+8XJsUA==", + "requires": { + "cliui": "^5.0.0", + "find-up": "^3.0.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^3.0.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^13.1.1" + } + } + } + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true + }, + "object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "dev": true, + "requires": { + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + } + } + }, + "object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "dev": true, + "requires": { + "isobject": "^3.0.0" + }, + "dependencies": { + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + } + } + }, + "object.omit": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", + "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", + "dev": true, + "requires": { + "for-own": "^0.1.4", + "is-extendable": "^0.1.1" + } + }, + "object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "dev": true, + "requires": { + "isobject": "^3.0.1" + }, + "dependencies": { + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + } + } + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "requires": { + "wrappy": "1" + } + }, + "optimist": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", + "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", + "requires": { + "minimist": "~0.0.1", + "wordwrap": "~0.0.2" + } + }, + "optionator": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.5.0.tgz", + "integrity": "sha1-t1qJlaLUF98ltuTjhi9QqohlE2g=", + "dev": true, + "requires": { + "deep-is": "~0.1.2", + "fast-levenshtein": "~1.0.0", + "levn": "~0.2.5", + "prelude-ls": "~1.1.1", + "type-check": "~0.3.1", + "wordwrap": "~0.0.2" + } + }, + "os-browserify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.1.2.tgz", + "integrity": "sha1-ScoCk+CxlZCl9d4Qx/JlphfY/lQ=", + "dev": true + }, + "os-homedir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=" + }, + "os-locale": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", + "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", + "dev": true, + "requires": { + "lcid": "^1.0.0" + } + }, + "os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", + "dev": true + }, + "p-limit": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.1.tgz", + "integrity": "sha512-85Tk+90UCVWvbDavCLKPOLC9vvY8OwEX/RtKF+/1OADJMVlFfEHOiMTPVyxg7mk/dKa+ipdHm0OUkTvCpMTuwg==", + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "requires": { + "p-limit": "^2.0.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" + }, + "package-hash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/package-hash/-/package-hash-3.0.0.tgz", + "integrity": "sha512-lOtmukMDVvtkL84rJHI7dpTYq+0rli8N2wlnqUcBuDWCfVhRUfOmnR9SsoHFMLpACvEV60dX7rd0rFaYDZI+FA==", + "requires": { + "graceful-fs": "^4.1.15", + "hasha": "^3.0.0", + "lodash.flattendeep": "^4.4.0", + "release-zalgo": "^1.0.0" + } + }, + "pako": { + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz", + "integrity": "sha1-8/dSL073gjSNqBYbrZ7P1Rv4OnU=", + "dev": true + }, + "parse-glob": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", + "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", + "dev": true, + "requires": { + "glob-base": "^0.3.0", + "is-dotfile": "^1.0.0", + "is-extglob": "^1.0.0", + "is-glob": "^2.0.0" + } + }, + "parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "requires": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + } + }, + "pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", + "dev": true + }, + "path-browserify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.0.tgz", + "integrity": "sha1-oLhwcpquIUAFt9UDLsLLuw+0RRo=", + "dev": true + }, + "path-exists": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-1.0.0.tgz", + "integrity": "sha1-1aiZjrce83p0w06w2eum6HjuoIE=", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" + }, + "path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", + "dev": true + }, + "path-parse": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", + "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==" + }, + "path-type": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", + "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", + "requires": { + "pify": "^3.0.0" + }, + "dependencies": { + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" + } + } + }, + "pbkdf2-compat": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pbkdf2-compat/-/pbkdf2-compat-2.0.1.tgz", + "integrity": "sha1-tuDI+plJTZTgURV1gCpZpcFC8og=", + "dev": true + }, + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==" + }, + "pkg-dir": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", + "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", + "requires": { + "find-up": "^3.0.0" + } + }, + "posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", + "dev": true + }, + "prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", + "dev": true + }, + "preserve": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", + "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=", + "dev": true + }, + "private": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", + "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==", + "dev": true + }, + "process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", + "dev": true + }, + "process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true + }, + "prr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", + "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", + "dev": true + }, + "pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=" + }, + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", + "dev": true + }, + "q": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", + "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=", + "dev": true + }, + "querystring": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", + "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", + "dev": true + }, + "querystring-es3": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", + "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", + "dev": true + }, + "randomatic": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.1.1.tgz", + "integrity": "sha512-TuDE5KxZ0J461RVjrJZCJc+J+zCkTb1MbH9AQUq68sMhOMcy9jLcb3BrZKgp9q9Ncltdg4QVqWrH02W2EFFVYw==", + "dev": true, + "requires": { + "is-number": "^4.0.0", + "kind-of": "^6.0.0", + "math-random": "^1.0.1" + }, + "dependencies": { + "is-number": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", + "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", + "dev": true + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true + } + } + }, + "read-pkg": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", + "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", + "requires": { + "load-json-file": "^4.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^3.0.0" + } + }, + "read-pkg-up": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-4.0.0.tgz", + "integrity": "sha512-6etQSH7nJGsK0RbG/2TeDzZFa8shjQ1um+SwQQ5cwKy0dhSXdOncEhb1CPpvQG4h7FyOV6EB6YlV0yJvZQNAkA==", + "requires": { + "find-up": "^3.0.0", + "read-pkg": "^3.0.0" + } + }, + "readable-stream": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + }, + "dependencies": { + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "dev": true + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "dev": true + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "dev": true, + "requires": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + } + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dev": true, + "requires": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + } + } + } + }, + "readline2": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/readline2/-/readline2-0.1.1.tgz", + "integrity": "sha1-mUQ7pug7gw7zBRv9fcJBqCco1Wg=", + "dev": true, + "requires": { + "mute-stream": "0.0.4", + "strip-ansi": "^2.0.1" + }, + "dependencies": { + "ansi-regex": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-1.1.1.tgz", + "integrity": "sha1-QchHGUZGN15qGl0Qw8oFTvn8mA0=", + "dev": true + }, + "strip-ansi": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-2.0.1.tgz", + "integrity": "sha1-32LBqpTtLxFOHQ8h/R1QSCt5pg4=", + "dev": true, + "requires": { + "ansi-regex": "^1.0.0" + } + } + } + }, + "recast": { + "version": "0.10.24", + "resolved": "https://registry.npmjs.org/recast/-/recast-0.10.24.tgz", + "integrity": "sha1-7DR4EjIqyJWuGxLjBrZ/CE8CJ3o=", + "dev": true, + "requires": { + "ast-types": "0.8.5", + "esprima-fb": "~15001.1.0-dev-harmony-fb", + "private": "~0.1.5", + "source-map": "~0.4.1" + }, + "dependencies": { + "ast-types": { + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.8.5.tgz", + "integrity": "sha1-WhJzMMxeyXrFMpLj3PGhSptugD8=", + "dev": true + }, + "source-map": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", + "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", + "dev": true, + "requires": { + "amdefine": ">=0.0.4" + } + } + } + }, + "regenerate": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.0.tgz", + "integrity": "sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg==", + "dev": true + }, + "regenerator": { + "version": "0.8.35", + "resolved": "https://registry.npmjs.org/regenerator/-/regenerator-0.8.35.tgz", + "integrity": "sha1-0LyuslGlCQG0FqfGvPUhXSbGgds=", + "dev": true, + "requires": { + "commoner": "~0.10.0", + "defs": "~1.1.0", + "esprima-fb": "~15001.1.0-dev-harmony-fb", + "private": "~0.1.5", + "recast": "0.10.24", + "through": "~2.3.6" + } + }, + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", + "dev": true + }, + "regenerator-transform": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.10.1.tgz", + "integrity": "sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q==", + "dev": true, + "requires": { + "babel-runtime": "^6.18.0", + "babel-types": "^6.19.0", + "private": "^0.1.6" + }, + "dependencies": { + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dev": true, + "requires": { + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" + } + } + } + }, + "regex-cache": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz", + "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", + "dev": true, + "requires": { + "is-equal-shallow": "^0.1.3" + } + }, + "regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "dev": true, + "requires": { + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" + } + }, + "regexpu-core": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz", + "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=", + "dev": true, + "requires": { + "regenerate": "^1.2.1", + "regjsgen": "^0.2.0", + "regjsparser": "^0.1.4" + } + }, + "regjsgen": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz", + "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=", + "dev": true + }, + "regjsparser": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz", + "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", + "dev": true, + "requires": { + "jsesc": "~0.5.0" + }, + "dependencies": { + "jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", + "dev": true + } + } + }, + "release-zalgo": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/release-zalgo/-/release-zalgo-1.0.0.tgz", + "integrity": "sha1-CXALflB0Mpc5Mw5TXFqQ+2eFFzA=", + "requires": { + "es6-error": "^4.0.1" + } + }, + "remove-trailing-separator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", + "dev": true + }, + "repeat-element": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", + "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==", + "dev": true + }, + "repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", + "dev": true + }, + "repeating": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", + "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", + "dev": true, + "requires": { + "is-finite": "^1.0.0" + } + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" + }, + "require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==" + }, + "resolve": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.12.0.tgz", + "integrity": "sha512-B/dOmuoAik5bKcD6s6nXDCjzUKnaDvdkRyAk6rsmsKLipWj4797iothd7jmmUhWTfinVMU+wc56rYKsit2Qy4w==", + "requires": { + "path-parse": "^1.0.6" + } + }, + "resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==" + }, + "resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", + "dev": true + }, + "ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", + "dev": true + }, + "right-align": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", + "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=", + "dev": true, + "requires": { + "align-text": "^0.1.1" + } + }, + "rimraf": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", + "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", + "requires": { + "glob": "^7.1.3" + }, + "dependencies": { + "glob": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz", + "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==", + "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" + } + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "requires": { + "brace-expansion": "^1.1.7" + } + } + } + }, + "ripemd160": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-0.2.0.tgz", + "integrity": "sha1-K/GYveFnys+lHAqSjoS2i74XH84=", + "dev": true + }, + "run-async": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-0.1.0.tgz", + "integrity": "sha1-yK1KXhEGYeQCp9IbUw4AnyX444k=", + "dev": true, + "requires": { + "once": "^1.3.0" + } + }, + "rx-lite": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-2.5.2.tgz", + "integrity": "sha1-X+9C1Nbna6tRmdIXEyfbcJ5Y5jQ=", + "dev": true + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "dev": true, + "requires": { + "ret": "~0.1.10" + } + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + }, + "set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" + }, + "set-value": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", + "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "sha.js": { + "version": "2.2.6", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.2.6.tgz", + "integrity": "sha1-F93t3F9yL7ZlAWWIlUYZd4ZzFbo=", + "dev": true + }, + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "dev": true + }, + "shelljs": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.3.0.tgz", + "integrity": "sha1-NZbmMHp4FUT1kfN9phg2DzHbV7E=", + "dev": true + }, + "sigmund": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz", + "integrity": "sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA=", + "dev": true + }, + "signal-exit": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=" + }, + "simple-fmt": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/simple-fmt/-/simple-fmt-0.1.0.tgz", + "integrity": "sha1-GRv1ZqWeZTBILLJatTtKjchcOms=", + "dev": true + }, + "simple-is": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/simple-is/-/simple-is-0.2.0.tgz", + "integrity": "sha1-Krt1qt453rXMgVzhDmGRFkhQuvA=", + "dev": true + }, + "slash": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", + "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", + "dev": true + }, + "snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "dev": true, + "requires": { + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "dev": true, + "requires": { + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true + } + } + }, + "snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "dev": true, + "requires": { + "kind-of": "^3.2.0" + } + }, + "source-list-map": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-0.1.8.tgz", + "integrity": "sha1-xVCyq1Qn9rPyH1r+rYjE9Vh7IQY=", + "dev": true + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" + }, + "source-map-resolve": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz", + "integrity": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==", + "dev": true, + "requires": { + "atob": "^2.1.1", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" + } + }, + "source-map-support": { + "version": "0.2.10", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.2.10.tgz", + "integrity": "sha1-6lo5AKHByyUJagrozFwrSxDe09w=", + "dev": true, + "requires": { + "source-map": "0.1.32" + }, + "dependencies": { + "source-map": { + "version": "0.1.32", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.32.tgz", + "integrity": "sha1-yLbBZ3l7pHQKjqMyUhYv8IWRsmY=", + "dev": true, + "requires": { + "amdefine": ">=0.0.4" + } + } + } + }, + "source-map-url": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", + "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", + "dev": true + }, + "spawn-wrap": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/spawn-wrap/-/spawn-wrap-1.4.3.tgz", + "integrity": "sha512-IgB8md0QW/+tWqcavuFgKYR/qIRvJkRLPJDFaoXtLLUaVcCDK0+HeFTkmQHj3eprcYhc+gOl0aEA1w7qZlYezw==", + "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" + } + }, + "spdx-correct": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz", + "integrity": "sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q==", + "requires": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-exceptions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz", + "integrity": "sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA==" + }, + "spdx-expression-parse": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", + "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", + "requires": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-license-ids": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz", + "integrity": "sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q==" + }, + "split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "dev": true, + "requires": { + "extend-shallow": "^3.0.0" + } + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" + }, + "stable": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", + "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==", + "dev": true + }, + "static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "dev": true, + "requires": { + "define-property": "^0.2.5", + "object-copy": "^0.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + } + } + }, + "stream-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-1.0.0.tgz", + "integrity": "sha1-v5tKv7QrJ011FHnkTg/yZWtvEZM=", + "dev": true, + "requires": { + "inherits": "~2.0.1", + "readable-stream": "^1.0.27-1" + }, + "dependencies": { + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + }, + "readable-stream": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "dev": true + } + } + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "stringmap": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/stringmap/-/stringmap-0.2.2.tgz", + "integrity": "sha1-VWwTeyWPlCuHdvWy71gqoGnX0bE=", + "dev": true + }, + "stringset": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/stringset/-/stringset-0.2.1.tgz", + "integrity": "sha1-7yWcTjSTRDd/zRyRPdLoSMnAQrU=", + "dev": true + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=" + }, + "strip-json-comments": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-1.0.4.tgz", + "integrity": "sha1-HhX7ysl9Pumb8tc7TGVrCCu6+5E=", + "dev": true + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + }, + "tapable": { + "version": "0.1.10", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-0.1.10.tgz", + "integrity": "sha1-KcNXB8K3DlDQdIK10gLo7URtr9Q=", + "dev": true + }, + "test-exclude": { + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-5.2.3.tgz", + "integrity": "sha512-M+oxtseCFO3EDtAaGH7iiej3CBkzXqFMbzqYAACdzKui4eZA+pq3tZEwChvOdNfa7xxy8BfbmgJSIr43cC/+2g==", + "requires": { + "glob": "^7.1.3", + "minimatch": "^3.0.4", + "read-pkg-up": "^4.0.0", + "require-main-filename": "^2.0.0" + }, + "dependencies": { + "glob": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz", + "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==", + "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" + } + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "requires": { + "brace-expansion": "^1.1.7" + } + } + } + }, + "text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", + "dev": true + }, + "through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", + "dev": true + }, + "timers-browserify": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-1.4.2.tgz", + "integrity": "sha1-ycWLV1voQHN1y14kYtrO50NZ9B0=", + "dev": true, + "requires": { + "process": "~0.11.0" + } + }, + "to-double-quotes": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/to-double-quotes/-/to-double-quotes-1.0.2.tgz", + "integrity": "sha1-u27TbHhjTD1k/YelGtWGDcWU7f0=", + "dev": true, + "requires": { + "get-stdin": "^3.0.0" + } + }, + "to-fast-properties": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", + "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", + "dev": true + }, + "to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + } + }, + "to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "dev": true, + "requires": { + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + }, + "dependencies": { + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + } + } + } + }, + "to-single-quotes": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/to-single-quotes/-/to-single-quotes-1.0.4.tgz", + "integrity": "sha1-LuqBma8myhFx9TV8WeGS1WXuUxM=", + "dev": true, + "requires": { + "get-stdin": "^3.0.0" + } + }, + "trim-right": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", + "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", + "dev": true + }, + "tryor": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/tryor/-/tryor-0.1.2.tgz", + "integrity": "sha1-gUXkynyv9ArN48z5Rui4u3W0Fys=", + "dev": true + }, + "tty-browserify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", + "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=", + "dev": true + }, + "type": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", + "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==", + "dev": true + }, + "type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "dev": true, + "requires": { + "prelude-ls": "~1.1.2" + } + }, + "type-detect": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-1.0.0.tgz", + "integrity": "sha1-diIXzAbbJY7EiQihKY6LlRIejqI=", + "dev": true + }, + "typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", + "dev": true + }, + "uglify-js": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.6.0.tgz", + "integrity": "sha512-W+jrUHJr3DXKhrsS7NUVxn3zqMOFn0hL/Ei6v0anCIMoKC93TjcflTagwIHLW7SfMFfiQuktQyFVCFHGUE0+yg==", + "optional": true, + "requires": { + "commander": "~2.20.0", + "source-map": "~0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "optional": true + } + } + }, + "uglify-to-browserify": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz", + "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=", + "dev": true + }, + "union-value": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", + "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", + "dev": true, + "requires": { + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^2.0.1" + } + }, + "unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "dev": true, + "requires": { + "has-value": "^0.3.1", + "isobject": "^3.0.0" + }, + "dependencies": { + "has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "dev": true, + "requires": { + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" + }, + "dependencies": { + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "dev": true, + "requires": { + "isarray": "1.0.0" + } + } + } + }, + "has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", + "dev": true + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + } + } + }, + "urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", + "dev": true + }, + "url": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/url/-/url-0.10.3.tgz", + "integrity": "sha1-Ah5NnHcF8hu/N9A861h2dAJ3TGQ=", + "dev": true, + "requires": { + "punycode": "1.3.2", + "querystring": "0.2.0" + }, + "dependencies": { + "punycode": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", + "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", + "dev": true + } + } + }, + "use": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", + "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", + "dev": true + }, + "user-home": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/user-home/-/user-home-1.1.1.tgz", + "integrity": "sha1-K1viOjK2Onyd640PKNSFcko98ZA=", + "dev": true + }, + "util": { + "version": "0.10.4", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.4.tgz", + "integrity": "sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==", + "dev": true, + "requires": { + "inherits": "2.0.3" + }, + "dependencies": { + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + } + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "dev": true + }, + "uuid": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.3.tgz", + "integrity": "sha512-pW0No1RGHgzlpHJO1nsVrHKpOEIxkGg1xB+v0ZmdNH5OAeAwzAVrCnI2/6Mtx+Uys6iaylxa+D3g4j63IKKjSQ==" + }, + "validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "requires": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "vm-browserify": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz", + "integrity": "sha1-XX6kW7755Kb/ZflUOOCofDV9WnM=", + "dev": true, + "requires": { + "indexof": "0.0.1" + } + }, + "watchpack": { + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-0.2.9.tgz", + "integrity": "sha1-Yuqkq15bo1/fwBgnVibjwPXj+ws=", + "dev": true, + "requires": { + "async": "^0.9.0", + "chokidar": "^1.0.0", + "graceful-fs": "^4.1.2" + }, + "dependencies": { + "async": { + "version": "0.9.2", + "resolved": "https://registry.npmjs.org/async/-/async-0.9.2.tgz", + "integrity": "sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0=", + "dev": true + } + } + }, + "webpack": { + "version": "1.12.9", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-1.12.9.tgz", + "integrity": "sha1-KgMdZhiYOcxcvyxo+AVm2i4U/04=", + "dev": true, + "requires": { + "async": "^1.3.0", + "clone": "^1.0.2", + "enhanced-resolve": "~0.9.0", + "esprima": "^2.5.0", + "interpret": "^0.6.4", + "loader-utils": "^0.2.11", + "memory-fs": "~0.3.0", + "mkdirp": "~0.5.0", + "node-libs-browser": ">= 0.4.0 <=0.6.0", + "optimist": "~0.6.0", + "supports-color": "^3.1.0", + "tapable": "~0.1.8", + "uglify-js": "~2.6.0", + "watchpack": "^0.2.1", + "webpack-core": "~0.6.0" + }, + "dependencies": { + "esprima": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz", + "integrity": "sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE=", + "dev": true + }, + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "dev": true, + "requires": { + "has-flag": "^1.0.0" + } + }, + "uglify-js": { + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.6.4.tgz", + "integrity": "sha1-ZeovswWck5RpLxX+2HwrNsFrmt8=", + "dev": true, + "requires": { + "async": "~0.2.6", + "source-map": "~0.5.1", + "uglify-to-browserify": "~1.0.0", + "yargs": "~3.10.0" + }, + "dependencies": { + "async": { + "version": "0.2.10", + "resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz", + "integrity": "sha1-trvgsGdLnXGXCMo43owjfLUmw9E=", + "dev": true + } + } + }, + "window-size": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", + "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=", + "dev": true + }, + "yargs": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", + "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", + "dev": true, + "requires": { + "camelcase": "^1.0.2", + "cliui": "^2.1.0", + "decamelize": "^1.0.0", + "window-size": "0.1.0" + } + } + } + }, + "webpack-core": { + "version": "0.6.9", + "resolved": "https://registry.npmjs.org/webpack-core/-/webpack-core-0.6.9.tgz", + "integrity": "sha1-/FcViMhVjad76e+23r3Fo7FyvcI=", + "dev": true, + "requires": { + "source-list-map": "~0.1.7", + "source-map": "~0.4.1" + }, + "dependencies": { + "source-map": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", + "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", + "dev": true, + "requires": { + "amdefine": ">=0.0.4" + } + } + } + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "requires": { + "isexe": "^2.0.0" + } + }, + "which-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" + }, + "window-size": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.4.tgz", + "integrity": "sha1-+OGqHuWlPsW/FR/6CXQqatdpeHY=", + "dev": true + }, + "wordwrap": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", + "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=" + }, + "wrap-ansi": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", + "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", + "dev": true, + "requires": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + }, + "write": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/write/-/write-0.2.1.tgz", + "integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=", + "dev": true, + "requires": { + "mkdirp": "^0.5.1" + } + }, + "write-file-atomic": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.3.tgz", + "integrity": "sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==", + "requires": { + "graceful-fs": "^4.1.11", + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.2" + } + }, + "xml-escape": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/xml-escape/-/xml-escape-1.0.0.tgz", + "integrity": "sha1-AJY9aXsq3wwYXE4E5zF0upsojrI=", + "dev": true + }, + "xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "dev": true + }, + "y18n": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", + "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=", + "dev": true + }, + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=" + }, + "yargs": { + "version": "3.32.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.32.0.tgz", + "integrity": "sha1-AwiOnr+edWtpdRYR0qXvWRSCyZU=", + "dev": true, + "requires": { + "camelcase": "^2.0.1", + "cliui": "^3.0.3", + "decamelize": "^1.1.1", + "os-locale": "^1.4.0", + "string-width": "^1.0.1", + "window-size": "^0.1.4", + "y18n": "^3.2.0" + }, + "dependencies": { + "camelcase": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", + "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=", + "dev": true + }, + "cliui": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", + "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", + "dev": true, + "requires": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wrap-ansi": "^2.0.0" + } + } + } + }, + "yargs-parser": { + "version": "13.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.1.tgz", + "integrity": "sha512-oVAVsHz6uFrg3XQheFII8ESO2ssAf9luWuAd6Wexsu4F3OtIW0o8IribPXYrD4WC24LWtPrJlGy87y5udK+dxQ==", + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + }, + "dependencies": { + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" + } + } + } + } +} diff --git a/package.json b/package.json index f961e0a..cbee7ae 100644 --- a/package.json +++ b/package.json @@ -6,7 +6,8 @@ "scripts": { "build": "webpack --mode=build", "dev": "webpack --progress --colors --watch --mode=dev", - "test": "mocha --compilers js:babel-core/register --colors -w ./test/*.spec.js" + "test": "mocha --compilers js:babel-core/register --colors ./test/*.spec.js", + "testCoverage": "nyc --reporter=lcov --reporter=text-summary --reporter=html npm run test && open coverage/index.html" }, "devDependencies": { "babel": "6.3.13", @@ -33,5 +34,8 @@ "NZ" ], "author": "Josh Hollinshead", - "license": "MIT" -} + "license": "MIT", + "dependencies": { + "nyc": "^14.1.1" + } +} \ No newline at end of file diff --git a/src/constants.js b/src/constants.js index ead33a3..7a1076e 100644 --- a/src/constants.js +++ b/src/constants.js @@ -42,7 +42,12 @@ const bankData = [ [1300, 1399], [1500, 1599], [1700, 1799], - [1900, 1999] + [1900, 1999], + [7350,7399] + ], + + '04': [ + [2020,2024] ], '06': [ diff --git a/src/index.js b/src/index.js index b445611..e009bfc 100755 --- a/src/index.js +++ b/src/index.js @@ -110,6 +110,8 @@ export default { if (!bankData) { return false; } const algorithm = this.getChecksum(bankData, base); + // console.info("algorithm",algorithm) + // console.info("bankData",bankData) if (!algorithm) { return false; } diff --git a/test/library.spec.js b/test/library.spec.js index 6ec2688..4ab12a2 100755 --- a/test/library.spec.js +++ b/test/library.spec.js @@ -64,10 +64,11 @@ const validateTests = [ ['Algorithm G test', 'validate', ['26-2600-0320871-032'], true], ['Random test 1', 'validate', ['12-3140-0171323-50'], true], ['Random test 2', 'validate', ['12-3141-325080-00'], true], - + ['Algorithm B test as new rule', 'validate', ['04-2020-1000000-00'], true], + ['Algorithm A test as new rule', 'validate', ['03-7351-110000-00'], true], // Failure tests - ['String missing branch, base and suffix', 'validate', ['02','01'], false], + ['String missing branch, base and suffix', 'validate', ['02', '01'], false], ['String missing base and suffix', 'validate', ['01-902'], false], ['String missing suffix', 'validate', ['01-902-0068389'], false], @@ -77,7 +78,9 @@ const validateTests = [ ['Object missing suffix', 'validate', [{ id: '01', branch: '902', base: '0068389' }], false], ['Number instead of string or object', 'validate', [12345678], false], - ['Invalid random test', 'validate', ['01-9999-12312311-111'], false] + ['Invalid random test', 'validate', ['01-9999-12312311-111'], false], + ['Algorithm A test as new rule invlidate', 'validate', ['03-7351-950000-00'], false] + ]; const groupedTests = [ @@ -90,12 +93,10 @@ const groupedTests = [ ]; groupedTests.forEach(([groupLabel, tests]) => { - - describe(groupLabel, function () { - - tests.forEach(([label, fn, inputs, outcome]) => { - it(`${label}. Expect function '${fn}' with inputs ${JSON.stringify(inputs)} to equal ${JSON.stringify(outcome)}`, () => { - expect(Library[fn](...inputs)).to.be.deep.equal(outcome); + describe(groupLabel, function () { + tests.forEach(([label, fn, inputs, outcome]) => { + it(`${label}. Expect function '${fn}' with inputs ${JSON.stringify(inputs)} to equal ${JSON.stringify(outcome)}`, () => { + expect(Library[fn](...inputs)).to.be.deep.equal(outcome); }); });