0% found this document useful (0 votes)
45 views298 pages

Mykad

Uploaded by

Aaditya Khanna
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
45 views298 pages

Mykad

Uploaded by

Aaditya Khanna
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 298

(function(f) {

if (typeof exports === "object" && typeof module !== "undefined") {

module.exports = f()

} else if (typeof define === "function" && define.amd) {

define([], f)

} else {

var g;

if (typeof window !== "undefined") {

g = window

} else if (typeof global !== "undefined") {

g = global

} else if (typeof self !== "undefined") {

g = self

} else {

g = this

g.mykad = f()

})(function() {

var define, module, exports;

return (function() {

function r(e, n, t) {

function o(i, f) {

if (!n[i]) {

if (!e[i]) {
var c = "function" == typeof require && require;

if (!f && c) return c(i, !0);

if (u) return u(i, !0);

var a = new Error("Cannot find module '" + i + "'");

throw a.code = "MODULE_NOT_FOUND", a

var p = n[i] = {

exports: {}

};

e[i][0].call(p.exports, function(r) {

var n = e[i][1][r];

return o(n || r)

}, p, p.exports, r, e, n, t)

return n[i].exports

for (var u = "function" == typeof require && require, i = 0; i < t.length; i++) o(t[i]);

return o

return r

})()({

1: [function(require, module, exports) {

'use strict';

var REGION_SOUTHEAST_ASIA = 'SOUTHEAST_ASIA';


var REGION_BRITISH_ISLES = 'BRITISH_ISLES';

var REGION_SOVIET_REPUBLIC = 'SOVIET_REPUBLIC';

var REGION_EAST_ASIA = 'EAST_ASIA';

var REGION_SOUTH_ASIA = 'SOUTH_ASIA';

var REGION_AFRICA = 'AFRICA';

var REGION_SOUTH_AMERICA = 'SOUTH_AMERICA';

var REGION_CENTRAL_AMERICA = 'CENTRAL_AMERICA';

var REGION_NORTH_AMERICA = 'NORTH_AMERICA';

var REGION_OCEANIA = 'OCEANIA';

var REGION_MIDDLE_EAST = 'MIDDLE_EAST';

var REGION_EUROPE = 'EUROPE';

var REGION_MIDDLE_AMERICA = 'MIDDLE_AMERICA';

var REGION_MISCELLANEOUS = 'MISCELLANEOUS';

var stateCodePairs = {

'JHR': ['01', '21', '22', '24'],

'KDH': ['02', '25', '26', '27'],

'KTN': ['03', '28', '29'],

'MLK': ['04', '30'],

'NSN': ['05', '31', '59'],

'PHG': ['06', '32', '33'],

'PNG': ['07', '34', '35'],

'PRK': ['08', '36', '37', '38'],

'PLS': ['09', '40'],

'SGR': ['10', '41', '42', '43', '44'],


'TRG': ['11', '45', '46'],

'SBH': ['12', '47', '48', '49'],

'SWK': ['13', '50', '51', '52', '53'],

'KUL': ['14', '54', '55', '56', '57'],

'LBN': ['15', '58'],

'PJY': ['16'],

'UNKNOWN_STATE': ['82']

};

var countryCodePairs = {

'60': {

country: 'BN',

region: REGION_SOUTHEAST_ASIA

},

'61': {

country: 'ID',

region: REGION_SOUTHEAST_ASIA

},

'62': {

country: 'KH',

region: REGION_SOUTHEAST_ASIA

},

'63': {

country: 'LA',

region: REGION_SOUTHEAST_ASIA
},

'64': {

country: 'MM',

region: REGION_SOUTHEAST_ASIA

},

'65': {

country: 'PH',

region: REGION_SOUTHEAST_ASIA

},

'66': {

country: 'SG',

region: REGION_SOUTHEAST_ASIA

},

'67': {

country: 'TH',

region: REGION_SOUTHEAST_ASIA

},

'68': {

country: 'VN',

region: REGION_SOUTHEAST_ASIA

},

'71': {

country: 'FOREIGN_UNKNOWN',

region: null
},

'72': {

country: 'FOREIGN_UNKNOWN',

region: null

},

'74': {

country: 'CN',

region: REGION_EAST_ASIA

},

'75': {

country: 'IN',

region: REGION_SOUTH_ASIA

},

'76': {

country: 'PK',

region: REGION_SOUTH_ASIA

},

'77': {

country: 'SA',

region: REGION_MIDDLE_EAST

},

'78': {

country: 'LK',

region: REGION_SOUTH_ASIA
},

'79': {

country: 'BD',

region: REGION_SOUTH_ASIA

},

'83': {

country: 'AS|AU|CX|CC|CK|FJ|PF|GU|HM|MH|FM|NC|NZ|NU|NF|PG|TL|TK|UM|WF',

region: REGION_OCEANIA

},

'84': {

country: 'AI|AR|AW|BO|BR|CL|CO|EC|GF|GP|GY|PY|PE|GS|ST|UY|VE',

region: REGION_SOUTH_AMERICA

},

'85': {

country: 'DZ|AO|BW|BI|CM|CF|CG|CD|DG|EG|ER|ET|GA|GM|GN|KE|LR|MW|ML|MR|
YT|' + 'MA|MZ|NA|NE|NG|RW|RE|SN|SL|SO|SD|SZ|TZ|TG|TO|TN|UG|ME|ZR|ZM|ZW',

region: REGION_AFRICA

},

'86': {

country: 'AM|AT|BE|CY|DK|FO|FR|FI|DE|DD|GR|VA|IT|LU|' + 'MK|MT|MC|NL|NO|PT|


MD|SK|SI|ES|SE|CH|GG|JE|IM',

region: REGION_EUROPE

},

'87': {

country: 'GB|IE',
region: REGION_BRITISH_ISLES

},

'88': {

country: 'BH|IR|IQ|PS|JO|KW|OM|QA|YE|SY|TR|YE|YD|',

region: REGION_MIDDLE_EAST

},

'89': {

country: 'JP|KP|KR|TW',

region: REGION_EAST_ASIA

},

'90': {

country: 'BS|BB|BZ|CR|CU|DM|DO|SV|GD|GT|HT|HN|' + 'JM|MQ|MX|NI|PA|PR|KN|LC|


VC|TT|TC|VI',

region: REGION_MIDDLE_AMERICA

},

'91': {

country: 'CA|GL|AN|PM|US',

region: REGION_NORTH_AMERICA

},

'92': {

country: 'AL|BY|BA|BG|HR|CZ|CS|EE|GE|HU|LV|LT|ME|PL|XK|RO|RU|RS|UA',

region: REGION_SOVIET_REPUBLIC

},

'93': {

country: 'AF|AD|AQ|AG|AZ|BJ|BM|BT|IO|BF|CV|KY|KM|DY|GQ|TF|GI|GW|HK|' + 'IS|CI|


KZ|KI|KG|LS|LY|LI|MO|MG|MV|MU|MN|MS|NR|NP|MP|PW|PS|' + 'PN|SH|LC|VC|WS|SM|ST|SC|
SB|SJ|TJ|TM|TV|HV|UZ|VU|VA|VG|YU',
region: REGION_MISCELLANEOUS

},

'98': {

country: 'STATELESS',

region: null

},

'99': {

country: 'UNSPECIFIED',

region: null

};

function numisBetween(num, lower, upper) {

return (num - lower) * (num - upper) <= 0;

function codeToState(code) {

return Object.keys(stateCodePairs).find(function(key) {

return stateCodePairs[key].includes(code);

});

function isMalaysia(code) {

return numisBetween(code, 1, 16) || numisBetween(code, 21, 59) || code == 82;


}

function isForeign(code) {

return countryCodePairs[code] != undefined;

function parseMalaysia(code) {

return {

region: REGION_SOUTHEAST_ASIA,

country: 'MY',

state: codeToState(code)

};

function parseForeign(code) {

return Object.assign({

state: null

}, countryCodePairs[code]);

function parse(code) {

if (isMalaysia(code)) return parseMalaysia(code);

if (isForeign(code)) return parseForeign(code);

return null;
}

function isValid(code) {

return isMalaysia(code) || isForeign(code);

module.exports = {

parse: parse,

isValid: isValid

};

}, {}],

2: [function(require, module, exports) {

'use strict';

var birthplace = require('./birthplace');

var random = require('./random');

// Check if date is before disregarding year.

function dateIsBefore(before, max) {

var bNorm = new Date(0, before.getMonth(), before.getDate());

var mNorm = new Date(0, max.getMonth(), max.getDate());

return bNorm < mNorm;

}
function codeToDate(year, month, day) {

var today = new Date();

var birthDate = new Date(year, month - 1, day);

var age = today.getYear() - birthDate.getYear();

// Works for now. Update this in year 2099.

// For same year, checks if date has passed.

if (age > 100 || age == 100 && dateIsBefore(birthDate, today)) {

birthDate.setFullYear(birthDate.getFullYear() + 100);

// Check valid date.

return birthDate.getDate() == day && birthDate.getMonth() == month - 1 ? birthDate : NaN;

function codeToGender(code) {

return code % 2 === 0 ? 'female' : 'male';

function extractParts(icNum) {

var regex = /^(\d{2})(\d{2})(\d{2})-?(\d{2})-?(\d{3})(\d{1})$/;

var parts = icNum.match(regex);

if (!parts) {
throw new Error('Invalid MyKad number format');

return parts;

function isValid(icNum) {

var parts = void 0;

try {

parts = extractParts(icNum);

} catch (error) {

return false;

var birthDate = codeToDate(parts[1], parts[2], parts[3]);

return !isNaN(birthDate) && birthplace.isValid(parts[4]);

function parse(icNum, cb) {

var parts = void 0;

try {

parts = extractParts(icNum);

} catch (error) {
if (!cb) throw error;

return cb(error, null);

var parsedData = {

birthDate: codeToDate(parts[1], parts[2], parts[3]),

birthPlace: birthplace.parse(parts[4]),

gender: codeToGender(parts[6])

};

if (cb) {

return cb(null, parsedData);

return parsedData;

function format(icNum, cb) {

var parts = void 0;

try {

parts = extractParts(icNum);

} catch (error) {

if (!cb) throw error;

return cb(error, null);


}

var formatted = '' + parts[1] + parts[2] + parts[3] + '-' + parts[4] + '-' + parts[5] + parts[6];

if (cb) {

return cb(null, formatted);

return formatted;

function unformat(icNum, cb) {

if (!cb) {

try {

var formatted = format(icNum);

return formatted.replace(/-/g, '');

} catch (error) {

throw error;

format(icNum, function(err, formatted) {

if (err) {

return cb(err, null);

}
return cb(null, formatted.replace(/-/g, ''));

});

module.exports = {

isValid: isValid,

parse: parse,

format: format,

unformat: unformat,

generateRandom: random.generateRandom

};

}, {

"./birthplace": 1,

"./random": 3

}],

3: [function(require, module, exports) {

'use strict';

var birthplace = require('./birthplace');

function randomNumberBetween(min, max) {

return Math.floor(Math.random() * (max - min + 1)) + min;

}
function randomDate() {

var today = new Date();

var start = new Date();

start.setFullYear(start.getFullYear() - 99);

return new Date(start.getTime() + Math.random() * (today.getTime() - start.getTime()));

function twoDigitFormat(num) {

return ('0' + num).slice(-2);

function dateToCode(date) {

var code = '';

code += date.getFullYear().toString().substr(2, 2);

code += twoDigitFormat(date.getMonth() + 1);

code += twoDigitFormat(date.getDate());

return code;

function randomBirthplace() {

var randomCode = void 0;


do {

randomCode = twoDigitFormat(randomNumberBetween(1, 99));

} while (!birthplace.isValid(randomCode));

return randomCode;

function randomSpecialNumber() {

var code = '';

for (var i = 0; i < 4; i += 1) {

code += randomNumberBetween(0, 9);

return code;

function generateRandom() {

return dateToCode(randomDate()) + randomBirthplace() + randomSpecialNumber();

module.exports = {

generateRandom: generateRandom

};

}, {
"./birthplace": 1

}]

}, {}, [2])(2)

});

! function(n) {

"object" == typeof exports && "undefined" != typeof module ? module.exports = n() : "function" ==
typeof define && define.amd ? define([], n) : ("undefined" != typeof window ? window : "undefined" !=
typeof global ? global : "undefined" != typeof self ? self : this).mykad = n()

}(function() {

return function t(o, u, i) {

function c(r, n) {

if (!u[r]) {

if (!o[r]) {

var e = "function" == typeof require && require;

if (!n && e) return e(r, !0);

if (a) return a(r, !0);

throw (e = new Error("Cannot find module '" + r + "'")).code = "MODULE_NOT_FOUND", e

e = u[r] = {

exports: {}

}, o[r][0].call(e.exports, function(n) {

return c(o[r][1][n] || n)

}, e, e.exports, t, o, u, i)

return u[r].exports

}
for (var a = "function" == typeof require && require, n = 0; n < i.length; n++) c(i[n]);

return c

}({

1: [function(n, r, e) {

"use strict";

var t = "SOUTHEAST_ASIA",

o = "EAST_ASIA",

u = "SOUTH_ASIA",

i = "MIDDLE_EAST",

c={

JHR: ["01", "21", "22", "24"],

KDH: ["02", "25", "26", "27"],

KTN: ["03", "28", "29"],

MLK: ["04", "30"],

NSN: ["05", "31", "59"],

PHG: ["06", "32", "33"],

PNG: ["07", "34", "35"],

PRK: ["08", "36", "37", "38"],

PLS: ["09", "40"],

SGR: ["10", "41", "42", "43", "44"],

TRG: ["11", "45", "46"],

SBH: ["12", "47", "48", "49"],

SWK: ["13", "50", "51", "52", "53"],

KUL: ["14", "54", "55", "56", "57"],

LBN: ["15", "58"],


PJY: ["16"],

UNKNOWN_STATE: ["82"]

},

a={

60: {

country: "BN",

region: t

},

61: {

country: "ID",

region: t

},

62: {

country: "KH",

region: t

},

63: {

country: "LA",

region: t

},

64: {

country: "MM",

region: t

},

65: {
country: "PH",

region: t

},

66: {

country: "SG",

region: t

},

67: {

country: "TH",

region: t

},

68: {

country: "VN",

region: t

},

71: {

country: "FOREIGN_UNKNOWN",

region: null

},

72: {

country: "FOREIGN_UNKNOWN",

region: null

},

74: {

country: "CN",
region: o

},

75: {

country: "IN",

region: u

},

76: {

country: "PK",

region: u

},

77: {

country: "SA",

region: i

},

78: {

country: "LK",

region: u

},

79: {

country: "BD",

region: u

},

83: {

country: "AS|AU|CX|CC|CK|FJ|PF|GU|HM|MH|FM|NC|NZ|NU|NF|PG|TL|TK|UM|WF",

region: "OCEANIA"
},

84: {

country: "AI|AR|AW|BO|BR|CL|CO|EC|GF|GP|GY|PY|PE|GS|ST|UY|VE",

region: "SOUTH_AMERICA"

},

85: {

country: "DZ|AO|BW|BI|CM|CF|CG|CD|DG|EG|ER|ET|GA|GM|GN|KE|LR|MW|ML|
MR|YT|MA|MZ|NA|NE|NG|RW|RE|SN|SL|SO|SD|SZ|TZ|TG|TO|TN|UG|ME|ZR|ZM|ZW",

region: "AFRICA"

},

86: {

country: "AM|AT|BE|CY|DK|FO|FR|FI|DE|DD|GR|VA|IT|LU|MK|MT|MC|NL|NO|PT|
MD|SK|SI|ES|SE|CH|GG|JE|IM",

region: "EUROPE"

},

87: {

country: "GB|IE",

region: "BRITISH_ISLES"

},

88: {

country: "BH|IR|IQ|PS|JO|KW|OM|QA|YE|SY|TR|YE|YD|",

region: i

},

89: {

country: "JP|KP|KR|TW",

region: o
},

90: {

country: "BS|BB|BZ|CR|CU|DM|DO|SV|GD|GT|HT|HN|JM|MQ|MX|NI|PA|PR|KN|LC|
VC|TT|TC|VI",

region: "MIDDLE_AMERICA"

},

91: {

country: "CA|GL|AN|PM|US",

region: "NORTH_AMERICA"

},

92: {

country: "AL|BY|BA|BG|HR|CZ|CS|EE|GE|HU|LV|LT|ME|PL|XK|RO|RU|RS|UA",

region: "SOVIET_REPUBLIC"

},

93: {

country: "AF|AD|AQ|AG|AZ|BJ|BM|BT|IO|BF|CV|KY|KM|DY|GQ|TF|GI|GW|HK|IS|CI|
KZ|KI|KG|LS|LY|LI|MO|MG|MV|MU|MN|MS|NR|NP|MP|PW|PS|PN|SH|LC|VC|WS|SM|ST|SC|SB|
SJ|TJ|TM|TV|HV|UZ|VU|VA|VG|YU",

region: "MISCELLANEOUS"

},

98: {

country: "STATELESS",

region: null

},

99: {

country: "UNSPECIFIED",

region: null
}

};

function f(n, r, e) {

return (n - r) * (n - e) <= 0

function l(n) {

return f(n, 1, 16) || f(n, 21, 59) || 82 == n

function g(n) {

return null != a[n]

function S(n) {

return {

region: t,

country: "MY",

state: (r = n, Object.keys(c).find(function(n) {

return c[n].includes(r)

}))

};

var r

}
r.exports = {

parse: function(n) {

return l(n) ? S(n) : g(n) ? (n = n, Object.assign({

state: null

}, a[n])) : null

},

isValid: function(n) {

return l(n) || g(n)

}, {}],

2: [function(n, r, e) {

"use strict";

var o = n("./birthplace"),

n = n("./random");

function u(n, r, e) {

var t = new Date,

o = new Date(n, r - 1, e),

n = t.getYear() - o.getYear();

return (100 < n || 100 == n && (n = o, t = t, new Date(0, n.getMonth(), n.getDate()) < new
Date(0, t.getMonth(), t.getDate()))) && o.setFullYear(o.getFullYear() + 100), o.getDate() == e &&
o.getMonth() == r - 1 ? o : NaN

function i(n) {
n = n.match(/^(\d{2})(\d{2})(\d{2})-?(\d{2})-?(\d{3})(\d{1})$/);

if (!n) throw new Error("Invalid MyKad number format");

return n

function t(n, r) {

var e = void 0;

try {

e = i(n)

} catch (n) {

if (!r) throw n;

return r(n, null)

var t = "" + e[1] + e[2] + e[3] + "-" + e[4] + "-" + e[5] + e[6];

return r ? r(null, t) : t

r.exports = {

isValid: function(n) {

var r = void 0;

try {

r = i(n)

} catch (n) {

return !1

var e = u(r[1], r[2], r[3]);


return !isNaN(e) && o.isValid(r[4])

},

parse: function(n, r) {

var e = void 0;

try {

e = i(n)

} catch (n) {

if (!r) throw n;

return r(n, null)

var t = {

birthDate: u(e[1], e[2], e[3]),

birthPlace: o.parse(e[4]),

gender: e[6] % 2 == 0 ? "female" : "male"

};

return r ? r(null, t) : t

},

format: t,

unformat: function(n, e) {

if (!e) try {

return t(n).replace(/-/g, "")

} catch (n) {

throw n

t(n, function(n, r) {
return n ? e(n, null) : e(null, r.replace(/-/g, ""))

})

},

generateRandom: n.generateRandom

}, {

"./birthplace": 1,

"./random": 3

}],

3: [function(n, r, e) {

"use strict";

var t = n("./birthplace");

function o(n, r) {

return Math.floor(Math.random() * (r - n + 1)) + n

function u(n) {

return ("0" + n).slice(-2)

r.exports = {

generateRandom: function() {

return n = new Date, (r = new Date).setFullYear(r.getFullYear() - 99), n = new Date(r.getTime()


+ Math.random() * (n.getTime() - r.getTime())), r = "", r += n.getFullYear().toString().substr(2, 2), r +=
u(n.getMonth() + 1), (r += u(n.getDate())) + function() {

for (var n = void 0; n = u(o(1, 99)), !t.isValid(n););


return n

}() + function() {

for (var n = "", r = 0; r < 4; r += 1) n += o(0, 9);

return n

}();

var n, r

}, {

"./birthplace": 1

}]

}, {}, [2])(2)

});

const REGION_SOUTHEAST_ASIA = 'SOUTHEAST_ASIA';

const REGION_BRITISH_ISLES = 'BRITISH_ISLES';

const REGION_SOVIET_REPUBLIC = 'SOVIET_REPUBLIC';

const REGION_EAST_ASIA = 'EAST_ASIA';

const REGION_SOUTH_ASIA = 'SOUTH_ASIA';

const REGION_AFRICA = 'AFRICA';

const REGION_SOUTH_AMERICA = 'SOUTH_AMERICA';

const REGION_CENTRAL_AMERICA = 'CENTRAL_AMERICA';

const REGION_NORTH_AMERICA = 'NORTH_AMERICA';

const REGION_OCEANIA = 'OCEANIA';

const REGION_MIDDLE_EAST = 'MIDDLE_EAST';


const REGION_EUROPE = 'EUROPE';

const REGION_MIDDLE_AMERICA = 'MIDDLE_AMERICA';

const REGION_MISCELLANEOUS = 'MISCELLANEOUS';

const stateCodePairs = {

'JHR': ['01', '21', '22', '24'],

'KDH': ['02', '25', '26', '27'],

'KTN': ['03', '28', '29'],

'MLK': ['04', '30'],

'NSN': ['05', '31', '59'],

'PHG': ['06', '32', '33'],

'PNG': ['07', '34', '35'],

'PRK': ['08', '36', '37', '38'],

'PLS': ['09', '40'],

'SGR': ['10', '41', '42', '43', '44'],

'TRG': ['11', '45', '46'],

'SBH': ['12', '47', '48', '49'],

'SWK': ['13', '50', '51', '52', '53'],

'KUL': ['14', '54', '55', '56', '57'],

'LBN': ['15', '58'],

'PJY': ['16'],

'UNKNOWN_STATE': ['82'],

const countryCodePairs = {
'60': {

country: 'BN',

region: REGION_SOUTHEAST_ASIA

},

'61': {

country: 'ID',

region: REGION_SOUTHEAST_ASIA

},

'62': {

country: 'KH',

region: REGION_SOUTHEAST_ASIA

},

'63': {

country: 'LA',

region: REGION_SOUTHEAST_ASIA

},

'64': {

country: 'MM',

region: REGION_SOUTHEAST_ASIA

},

'65': {

country: 'PH',

region: REGION_SOUTHEAST_ASIA

},

'66': {
country: 'SG',

region: REGION_SOUTHEAST_ASIA

},

'67': {

country: 'TH',

region: REGION_SOUTHEAST_ASIA

},

'68': {

country: 'VN',

region: REGION_SOUTHEAST_ASIA

},

'71': {

country: 'FOREIGN_UNKNOWN',

region: null

},

'72': {

country: 'FOREIGN_UNKNOWN',

region: null

},

'74': {

country: 'CN',

region: REGION_EAST_ASIA

},
'75': {

country: 'IN',

region: REGION_SOUTH_ASIA

},

'76': {

country: 'PK',

region: REGION_SOUTH_ASIA

},

'77': {

country: 'SA',

region: REGION_MIDDLE_EAST

},

'78': {

country: 'LK',

region: REGION_SOUTH_ASIA

},

'79': {

country: 'BD',

region: REGION_SOUTH_ASIA

},

'83': {

country: 'AS|AU|CX|CC|CK|FJ|PF|GU|HM|MH|FM|NC|NZ|NU|NF|PG|TL|TK|UM|WF',

region: REGION_OCEANIA

},
'84': {

country: 'AI|AR|AW|BO|BR|CL|CO|EC|GF|GP|GY|PY|PE|GS|ST|UY|VE',

region: REGION_SOUTH_AMERICA

},

'85': {

country: 'DZ|AO|BW|BI|CM|CF|CG|CD|DG|EG|ER|ET|GA|GM|GN|KE|LR|MW|ML|MR|YT|' +

'MA|MZ|NA|NE|NG|RW|RE|SN|SL|SO|SD|SZ|TZ|TG|TO|TN|UG|ME|ZR|ZM|ZW',

region: REGION_AFRICA

},

'86': {

country: 'AM|AT|BE|CY|DK|FO|FR|FI|DE|DD|GR|VA|IT|LU|' +

'MK|MT|MC|NL|NO|PT|MD|SK|SI|ES|SE|CH|GG|JE|IM',

region: REGION_EUROPE

},

'87': {

country: 'GB|IE',

region: REGION_BRITISH_ISLES

},

'88': {

country: 'BH|IR|IQ|PS|JO|KW|OM|QA|YE|SY|TR|YE|YD|',

region: REGION_MIDDLE_EAST

},

'89': {

country: 'JP|KP|KR|TW',

region: REGION_EAST_ASIA
},

'90': {

country: 'BS|BB|BZ|CR|CU|DM|DO|SV|GD|GT|HT|HN|' +

'JM|MQ|MX|NI|PA|PR|KN|LC|VC|TT|TC|VI',

region: REGION_MIDDLE_AMERICA

},

'91': {

country: 'CA|GL|AN|PM|US',

region: REGION_NORTH_AMERICA

},

'92': {

country: 'AL|BY|BA|BG|HR|CZ|CS|EE|GE|HU|LV|LT|ME|PL|XK|RO|RU|RS|UA',

region: REGION_SOVIET_REPUBLIC

},

'93': {

country: 'AF|AD|AQ|AG|AZ|BJ|BM|BT|IO|BF|CV|KY|KM|DY|GQ|TF|GI|GW|HK|' +

'IS|CI|KZ|KI|KG|LS|LY|LI|MO|MG|MV|MU|MN|MS|NR|NP|MP|PW|PS|' +

'PN|SH|LC|VC|WS|SM|ST|SC|SB|SJ|TJ|TM|TV|HV|UZ|VU|VA|VG|YU',

region: REGION_MISCELLANEOUS

},

'98': {

country: 'STATELESS',

region: null

},
'99': {

country: 'UNSPECIFIED',

region: null

},

};

function numisBetween(num, lower, upper) {

return (num - lower) * (num - upper) <= 0

function codeToState(code) {

return Object.keys(stateCodePairs).find(

key => stateCodePairs[key].includes(code));

function isMalaysia(code) {

return (

numisBetween(code, 1, 16) ||

numisBetween(code, 21, 59) ||

code == 82

);

function isForeign(code) {

return countryCodePairs[code] != undefined;


}

function parseMalaysia(code) {

return {

region: REGION_SOUTHEAST_ASIA,

country: 'MY',

state: codeToState(code),

};

function parseForeign(code) {

return Object.assign({

state: null

},

countryCodePairs[code]

);

function parse(code) {

if (isMalaysia(code)) return parseMalaysia(code);

if (isForeign(code)) return parseForeign(code);

return null;

}
function isValid(code) {

return isMalaysia(code) || isForeign(code);

module.exports = {

parse,

isValid,

const birthplace = require('./birthplace');

const random = require('./random');

// Check if date is before disregarding year.

function dateIsBefore(before, max) {

const bNorm = new Date(0, before.getMonth(), before.getDate());

const mNorm = new Date(0, max.getMonth(), max.getDate());

return bNorm < mNorm;

function codeToDate(year, month, day) {

const today = new Date();

const birthDate = new Date(year, month - 1, day);

const age = today.getYear() - birthDate.getYear();


// Works for now. Update this in year 2099.

// For same year, checks if date has passed.

if (age > 100 || (age == 100 && dateIsBefore(birthDate, today))) {

birthDate.setFullYear(birthDate.getFullYear() + 100);

// Check valid date.

return (birthDate.getDate() == day && birthDate.getMonth() == month - 1) ?

birthDate :

NaN;

function codeToGender(code) {

return (code % 2 === 0) ?

'female' :

'male';

function extractParts(icNum) {

const regex = /^(\d{2})(\d{2})(\d{2})-?(\d{2})-?(\d{3})(\d{1})$/;

const parts = icNum.match(regex);

if (!parts) {

throw new Error('Invalid MyKad number format');

}
return parts;

function isValid(icNum) {

let parts;

try {

parts = extractParts(icNum);

} catch (error) {

return false;

const birthDate = codeToDate(parts[1], parts[2], parts[3]);

return !isNaN(birthDate) && birthplace.isValid(parts[4]);

function parse(icNum, cb) {

let parts;

try {

parts = extractParts(icNum);

} catch (error) {

if (!cb) throw error;

return cb(error, null);


}

const parsedData = {

birthDate: codeToDate(parts[1], parts[2], parts[3]),

birthPlace: birthplace.parse(parts[4]),

gender: codeToGender(parts[6])

};

if (cb) {

return cb(null, parsedData);

return parsedData;

function format(icNum, cb) {

let parts;

try {

parts = extractParts(icNum);

} catch (error) {

if (!cb) throw error;

return cb(error, null);

}
const formatted = `${parts[1]}${parts[2]}${parts[3]}-${parts[4]}-${parts[5]}${parts[6]}`;

if (cb) {

return cb(null, formatted);

return formatted;

function unformat(icNum, cb) {

if (!cb) {

try {

const formatted = format(icNum);

return formatted.replace(/-/g, '');

} catch (error) {

throw error;

format(icNum, (err, formatted) => {

if (err) {

return cb(err, null);

return cb(null, formatted.replace(/-/g, ''));


});

module.exports = {

isValid,

parse,

format,

unformat,

generateRandom: random.generateRandom,

const birthplace = require('./birthplace');

const random = require('./random');

// Check if date is before disregarding year.

function dateIsBefore(before, max) {

const bNorm = new Date(0, before.getMonth(), before.getDate());

const mNorm = new Date(0, max.getMonth(), max.getDate());

return bNorm < mNorm;

function codeToDate(year, month, day) {

const today = new Date();

const birthDate = new Date(year, month - 1, day);


const age = today.getYear() - birthDate.getYear();

// Works for now. Update this in year 2099.

// For same year, checks if date has passed.

if (age > 100 || (age == 100 && dateIsBefore(birthDate, today))) {

birthDate.setFullYear(birthDate.getFullYear() + 100);

// Check valid date.

return (birthDate.getDate() == day && birthDate.getMonth() == month - 1) ?

birthDate :

NaN;

function codeToGender(code) {

return (code % 2 === 0) ?

'female' :

'male';

function extractParts(icNum) {

const regex = /^(\d{2})(\d{2})(\d{2})-?(\d{2})-?(\d{3})(\d{1})$/;

const parts = icNum.match(regex);

if (!parts) {
throw new Error('Invalid MyKad number format');

return parts;

function isValid(icNum) {

let parts;

try {

parts = extractParts(icNum);

} catch (error) {

return false;

const birthDate = codeToDate(parts[1], parts[2], parts[3]);

return !isNaN(birthDate) && birthplace.isValid(parts[4]);

function parse(icNum, cb) {

let parts;

try {

parts = extractParts(icNum);

} catch (error) {
if (!cb) throw error;

return cb(error, null);

const parsedData = {

birthDate: codeToDate(parts[1], parts[2], parts[3]),

birthPlace: birthplace.parse(parts[4]),

gender: codeToGender(parts[6])

};

if (cb) {

return cb(null, parsedData);

return parsedData;

function format(icNum, cb) {

let parts;

try {

parts = extractParts(icNum);

} catch (error) {

if (!cb) throw error;

return cb(error, null);


}

const formatted = `${parts[1]}${parts[2]}${parts[3]}-${parts[4]}-${parts[5]}${parts[6]}`;

if (cb) {

return cb(null, formatted);

return formatted;

function unformat(icNum, cb) {

if (!cb) {

try {

const formatted = format(icNum);

return formatted.replace(/-/g, '');

} catch (error) {

throw error;

format(icNum, (err, formatted) => {

if (err) {

return cb(err, null);

}
return cb(null, formatted.replace(/-/g, ''));

});

module.exports = {

isValid,

parse,

format,

unformat,

generateRandom: random.generateRandom,

const birthplace = require('./birthplace');

function randomNumberBetween(min, max) {

return Math.floor(Math.random() * (max - min + 1)) + min;

function randomDate() {

const today = new Date();

const start = new Date();

start.setFullYear(start.getFullYear() - 99);

return new Date(


start.getTime() + Math.random() * (today.getTime() - start.getTime())

);

function twoDigitFormat(num) {

return ('0' + num).slice(-2);

function dateToCode(date) {

let code = '';

code += date.getFullYear().toString().substr(2, 2);

code += twoDigitFormat(date.getMonth() + 1)

code += twoDigitFormat(date.getDate())

return code;

function randomBirthplace() {

let randomCode;

do {

randomCode = twoDigitFormat(randomNumberBetween(1, 99));

} while (!birthplace.isValid(randomCode));
return randomCode;

function randomSpecialNumber() {

let code = '';

for (let i = 0; i < 4; i += 1) {

code += randomNumberBetween(0, 9);

return code;

function generateRandom() {

return dateToCode(randomDate()) +

randomBirthplace() +

randomSpecialNumber();

module.exports = {

generateRandom,

var chai = require('chai');

var expect = chai.expect;

const mykad = require('../dist/');


describe('MyKad', () => {

describe('#isValid()', () => {

it('should return true for valid unformatted MyKad number', () => {

expect(mykad.isValid('910401052331')).to.be.true;

expect(mykad.isValid('000401052331')).to.be.true;

});

it('should return true for valid formatted MyKad number', () => {

expect(mykad.isValid('910223-08-1274')).to.be.true;

expect(mykad.isValid('000223-08-1274')).to.be.true;

});

it('should return false for invalid input', () => {

expect(mykad.isValid('loooool')).to.be.false;

});

it('should return false for MyKad with too many numbers', () => {

expect(mykad.isValid('27812121293451')).to.be.false;

});

it('should return false for MyKad with too little numbers', () => {

expect(mykad.isValid('8705')).to.be.false;

});
it('should return false for MyKad with invalid date of birth', () => {

expect(mykad.isValid('110234013324')).to.be.false;

expect(mykad.isValid('110200013324')).to.be.false;

});

it('should return false for MyKad with invalid month of birth', () => {

expect(mykad.isValid('541324013324')).to.be.false;

expect(mykad.isValid('540024013324')).to.be.false;

});

it('should return false for MyKad with invalid month and date of birth', () => {

expect(mykad.isValid('541352013324')).to.be.false;

expect(mykad.isValid('540000013324')).to.be.false;

});

it('should return false for MyKad with invalid place of births', () => {

const invalidBirthPlaceCodes = [

'00', '17', '18', '19', '20', '69', '70',

'73', '80', '81', '94', '95', '96', '97',

];

invalidBirthPlaceCodes.forEach((code) => {

expect(mykad.isValid(`560714${code}3094`)).to.be.false;

})

});
});

describe('#parse()', () => {

it('should return correct data object for valid MyKad numbers', () => {

const numDataPairs = {

'460911021389': {

birthDate: new Date(1946, 8, 11),

birthPlace: {

region: 'SOUTHEAST_ASIA',

country: 'MY',

state: 'KDH'

},

gender: 'male',

},

'001103049627': {

birthDate: new Date(2000, 10, 3),

birthPlace: {

region: 'SOUTHEAST_ASIA',

country: 'MY',

state: 'MLK'

},

gender: 'male',

},

'880527637345': {

birthDate: new Date(1988, 4, 27),


birthPlace: {

region: 'SOUTHEAST_ASIA',

country: 'LA',

state: null

},

gender: 'male',

},

'440807724018': {

birthDate: new Date(1944, 7, 7),

birthPlace: {

region: null,

country: 'FOREIGN_UNKNOWN',

state: null

},

gender: 'female',

},

'921105789014': {

birthDate: new Date(1992, 10, 5),

birthPlace: {

region: 'SOUTH_ASIA',

country: 'LK',

state: null

},

gender: 'female',

},
'640101829913': {

birthDate: new Date(1964, 0, 1),

birthPlace: {

region: 'SOUTHEAST_ASIA',

country: 'MY',

state: 'UNKNOWN_STATE'

},

gender: 'male',

},

'850215902166': {

birthDate: new Date(1985, 1, 15),

birthPlace: {

region: 'MIDDLE_AMERICA',

country: 'BS|BB|BZ|CR|CU|DM|DO|SV|GD|GT|HT|HN|' +

'JM|MQ|MX|NI|PA|PR|KN|LC|VC|TT|TC|VI',

state: null

},

gender: 'female',

},

'880717932209': {

birthDate: new Date(1988, 6, 17),

birthPlace: {

region: 'MISCELLANEOUS',

country: 'AF|AD|AQ|AG|AZ|BJ|BM|BT|IO|BF|CV|KY|KM|DY|GQ|TF|GI|GW|HK|' +

'IS|CI|KZ|KI|KG|LS|LY|LI|MO|MG|MV|MU|MN|MS|NR|NP|MP|PW|PS|' +
'PN|SH|LC|VC|WS|SM|ST|SC|SB|SJ|TJ|TM|TV|HV|UZ|VU|VA|VG|YU',

state: null

},

gender: 'male',

},

'890405983319': {

birthDate: new Date(1989, 3, 5),

birthPlace: {

region: null,

country: 'STATELESS',

state: null

},

gender: 'male',

},

'931030990123': {

birthDate: new Date(1993, 9, 30),

birthPlace: {

region: null,

country: 'UNSPECIFIED',

state: null

},

gender: 'male',

},

Object.keys(numDataPairs).find(key => {
mykad.parse(key, (err, data) => {

expect(data).to.deep.equal(numDataPairs[key]);

});

});

});

it('should return correct data object for valid formatted MyKad number (async)', done => {

const icNum = '460911-02-1389';

mykad.parse(icNum, (err, data) => {

expect(data).to.deep.equal({

birthDate: new Date(1946, 8, 11),

birthPlace: {

region: 'SOUTHEAST_ASIA',

country: 'MY',

state: 'KDH'

},

gender: 'male',

});

done();

});

});

it('should return correct data object for valid formatted MyKad number (sync)', () => {

const icNum = '460911-02-1389';


const parsedData = mykad.parse(icNum);

expect(parsedData).to.deep.equal({

birthDate: new Date(1946, 8, 11),

birthPlace: {

region: 'SOUTHEAST_ASIA',

country: 'MY',

state: 'KDH'

},

gender: 'male',

});

});

it('should throw error for MyKad number with wrong format (async)', done => {

const icNum = '1910401052331';

mykad.parse(icNum, (err, data) => {

expect(err).to.be.an('error');

expect(data).to.be.null;

done();

});

});

it('should throw error for MyKad number with wrong format (sync)', () => {

const icNum = '1910401052331';

try {

mykad.parse(icNum);
} catch (error) {

expect(error).to.be.an('error');

});

it('should throw error for invalid input', done => {

const icNum = 'lololz';

mykad.parse(icNum, (err, data) => {

expect(err).to.be.an('error');

expect(data).to.be.null;

done();

})

});

});

describe('#format()', () => {

it('should return formatted MyKad number (async)', done => {

mykad.format('670822073459', (err, formatted) => {

expect(formatted).to.be.equal('670822-07-3459');

expect(err).to.be.null;

done();

});

});

it('should return formatted MyKad number (sync)', () => {


const formatted = mykad.format('670822073459');

expect(formatted).to.be.equal('670822-07-3459');

});

it('should throw error for invalid MyKad number (async)', done => {

mykad.format('67a642019435', (err, formatted) => {

expect(err).to.be.an('error');

expect(formatted).to.be.null;

done();

});

});

it('should throw error for invalid MyKad number (sync)', () => {

try {

const formatted = mykad.format('67a642019435');

} catch (error) {

expect(error).to.be.an('error');

});

});

describe('#unformat()', () => {

it('should return unformatted MyKad number (async)', done => {

mykad.unformat('450312-09-4387', (err, unformatted) => {

expect(unformatted).to.be.equal('450312094387');
done();

});

});

it('should do nothing for already unformatted MyKad number (async)', done => {

mykad.unformat('450312094387', (err, unformatted) => {

expect(unformatted).to.be.equal('450312094387');

done();

});

});

it('should return unformatted MyKad number (sync)', () => {

const unformatted = mykad.unformat('450312-09-4387');

expect(unformatted).to.be.equal('450312094387');

});

it('should do nothing for unformatted MyKad number (sync)', () => {

const unformatted = mykad.unformat('450312094387');

expect(unformatted).to.be.equal('450312094387');

});

it('should throw error for invalid MyKad number (async)', done => {

mykad.unformat('95303132094287', (err, formatted) => {

expect(err).to.be.an('error');

expect(formatted).to.be.null;
done();

});

});

it('should throw error for invalid MyKad number (sync)', () => {

try {

const unformatted = mykad.unformat('95303132094287');

expect(unformatted).to.be.equal('450312094387');

} catch (error) {

expect(error).to.be.an('error');

});

});

describe('#generateRandom()', () => {

it('should return valid randomized MyKad number', () => {

const randomNo = mykad.generateRandom();

expect(randomNo).to.have.lengthOf(12);

expect(mykad.isValid(randomNo)).to.be.true;

});

});

});

# Logs

logs
*

.log

npm - debug.log *

yarn - debug.log *

yarn - error.log *

# Runtime data

pids

.pid *

.seed *

.pid.lock

# Dependency directories

node_modules /

jspm_packages /

# Distribution files

dist /

src

test

browser

"version": "1.1.2",
"resolved": "https://registry.npmjs.org/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz",

"integrity": "sha512-
sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9
Q==",

"dev": true

},

"JSONStream": {

"version": "1.3.5",

"resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz",

"integrity": "sha512-
E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06
LLsqQ==",

"dev": true,

"requires": {

"jsonparse": "^1.2.0",

"through": ">=2.2.7 <3"

},

"acorn": {

"version": "7.4.1",

"resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz",

"integrity": "sha512-
nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMe
bQVh8A==",

"dev": true

},

"acorn-node": {

"version": "1.8.2",
"resolved": "https://registry.npmjs.org/acorn-node/-/acorn-node-1.8.2.tgz",

"integrity": "sha512-
8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==",

"dev": true,

"requires": {

"acorn": "^7.0.0",

"acorn-walk": "^7.0.0",

"xtend": "^4.0.2"

},

"acorn-walk": {

"version": "7.2.0",

"resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz",

"integrity": "sha512-
OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYa
mYrVA==",

"dev": true

},

"ansi-colors": {

"version": "4.1.1",

"resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz",

"integrity": "sha512-
JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AA
mA==",

"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": "sha1-VT3Lj5HjyImEXf26NMd3IbkLnXo=",

"dev": true,

"optional": true,

"requires": {

"micromatch": "^2.1.5",

"normalize-path": "^2.0.0"

},

"argparse": {

"version": "1.0.10",

"resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
"integrity": "sha512-
o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==
",

"dev": true,

"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,

"optional": 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": "sha1-NgSLv/TntH4TZkQxbJlmnqWukfE=",

"dev": true,

"optional": 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,

"optional": true

},

"array-filter": {

"version": "1.0.0",

"resolved": "https://registry.npmjs.org/array-filter/-/array-filter-1.0.0.tgz",

"integrity": "sha1-uveeYubvTCpMC4MSMtr/7CUfnYM=",

"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,

"optional": true

},

"asn1.js": {

"version": "5.4.1",

"resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz",

"integrity": "sha512-
+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA=
=",

"dev": true,
"requires": {

"bn.js": "^4.0.0",

"inherits": "^2.0.1",

"minimalistic-assert": "^1.0.0",

"safer-buffer": "^2.1.0"

},

"dependencies": {

"bn.js": {

"version": "4.11.9",

"resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz",

"integrity": "sha512-
E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8z
Qaw==",

"dev": true

},

"assert": {

"version": "1.5.0",

"resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz",

"integrity": "sha512-
EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAu
bA==",

"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": "sha1-5gtrDo8wG9l+U3UhW9pAbIURjAs=",

"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,

"optional": true

},

"async-each": {

"version": "1.0.3",

"resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz",

"integrity": "sha1-tyfb+H12UWAvBvTUrDh/R9kbDL8=",

"dev": true,

"optional": true

},

"atob": {

"version": "2.1.2",

"resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz",

"integrity": "sha1-bZUX654DDSQ2ZmZR6GvZ9vE1M8k=",

"dev": true,

"optional": true

},

"available-typed-arrays": {

"version": "1.0.2",

"resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.2.tgz",
"integrity": "sha512-
XWX3OX8Onv97LMk/ftVyBibpGwY5a8SmuxZPzeOxqmuEqUCOM9ZE+uIaD1VNJ5QnvU2UQusvmKbuM1F
R8QWGfQ==",

"dev": true,

"requires": {

"array-filter": "^1.0.0"

},

"babel-cli": {

"version": "6.26.0",

"resolved": "https://registry.npmjs.org/babel-cli/-/babel-cli-6.26.0.tgz",

"integrity": "sha1-UCq1SHTX24itALiHoGODzgPQAvE=",

"dev": true,

"requires": {

"babel-core": "^6.26.0",

"babel-polyfill": "^6.26.0",

"babel-register": "^6.26.0",

"babel-runtime": "^6.26.0",

"chokidar": "^1.6.1",

"commander": "^2.11.0",

"convert-source-map": "^1.5.0",

"fs-readdir-recursive": "^1.0.0",

"glob": "^7.1.2",

"lodash": "^4.17.4",

"output-file-sync": "^1.1.2",

"path-is-absolute": "^1.0.1",
"slash": "^1.0.0",

"source-map": "^0.5.6",

"v8flags": "^2.1.1"

},

"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.26.3",

"resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.3.tgz",

"integrity": "sha1-suLwnjQtDwyI4vAuBneUEl51wgc=",

"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-generator": {

"version": "6.26.1",

"resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz",

"integrity": "sha1-GERAjTuPDTWkBOp6wYDwh6YBvZA=",

"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"

},

"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"

},

"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"

},

"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"

},

"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"

},

"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"

},

"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"

},

"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"

},

"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"

},

"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"

},

"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"

},

"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"

},

"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"

},

"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"

}
},

"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"

},

"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"

},

"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"

},

"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"
}

},

"babel-plugin-transform-es2015-duplicate-keys": {

"version": "6.24.1",

"resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-
transform-es2015-duplicate-keys-6.24.1.tgz",

"integrity": "sha1-c+s9MQypaePvnskcU3QabxV2Qj4=",

"dev": true,

"requires": {

"babel-runtime": "^6.22.0",

"babel-types": "^6.24.1"

},

"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"

},

"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"

},

"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"

},

"babel-plugin-transform-es2015-modules-amd": {

"version": "6.24.1",

"resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-
transform-es2015-modules-amd-6.24.1.tgz",

"integrity": "sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ=",

"dev": true,

"requires": {

"babel-plugin-transform-es2015-modules-commonjs": "^6.24.1",
"babel-runtime": "^6.22.0",

"babel-template": "^6.24.1"

},

"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": "sha1-WKeThjqefKhwvcWogRF/+sJ9tvM=",

"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"

},

"babel-plugin-transform-es2015-modules-systemjs": {

"version": "6.24.1",

"resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-systemjs/-/babel-
plugin-transform-es2015-modules-systemjs-6.24.1.tgz",

"integrity": "sha1-/4mhQrkRmpBhlfXxBuzzBdlAfSM=",

"dev": true,

"requires": {

"babel-helper-hoist-variables": "^6.24.1",

"babel-runtime": "^6.22.0",
"babel-template": "^6.24.1"

},

"babel-plugin-transform-es2015-modules-umd": {

"version": "6.24.1",

"resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-
transform-es2015-modules-umd-6.24.1.tgz",

"integrity": "sha1-rJl+YoXNGO1hdq22B9YCNErThGg=",

"dev": true,

"requires": {

"babel-plugin-transform-es2015-modules-amd": "^6.24.1",

"babel-runtime": "^6.22.0",

"babel-template": "^6.24.1"

},

"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"

},
"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"

},

"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"

},
"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"

},

"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"

},

"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"

},

"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"

},

"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"

}
},

"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"

},

"babel-polyfill": {

"version": "6.26.0",

"resolved": "https://registry.npmjs.org/babel-polyfill/-/babel-polyfill-6.26.0.tgz",

"integrity": "sha1-N5k3q8Z9eJWXCtxiHyhM2WbPIVM=",
"dev": true,

"requires": {

"babel-runtime": "^6.26.0",

"core-js": "^2.5.0",

"regenerator-runtime": "^0.10.5"

},

"dependencies": {

"regenerator-runtime": {

"version": "0.10.5",

"resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz",

"integrity": "sha1-M2w+/BIgrc7dosn6tntaeVWjNlg=",

"dev": true

},

"babel-preset-es2015": {

"version": "6.24.1",

"resolved": "https://registry.npmjs.org/babel-preset-es2015/-/babel-preset-es2015-6.24.1.tgz",

"integrity": "sha1-1EBQ1rwsn+6nAqrzjXJ6AhBTiTk=",

"dev": true,

"requires": {

"babel-plugin-check-es2015-constants": "^6.22.0",

"babel-plugin-transform-es2015-arrow-functions": "^6.22.0",

"babel-plugin-transform-es2015-block-scoped-functions": "^6.22.0",

"babel-plugin-transform-es2015-block-scoping": "^6.24.1",
"babel-plugin-transform-es2015-classes": "^6.24.1",

"babel-plugin-transform-es2015-computed-properties": "^6.24.1",

"babel-plugin-transform-es2015-destructuring": "^6.22.0",

"babel-plugin-transform-es2015-duplicate-keys": "^6.24.1",

"babel-plugin-transform-es2015-for-of": "^6.22.0",

"babel-plugin-transform-es2015-function-name": "^6.24.1",

"babel-plugin-transform-es2015-literals": "^6.22.0",

"babel-plugin-transform-es2015-modules-amd": "^6.24.1",

"babel-plugin-transform-es2015-modules-commonjs": "^6.24.1",

"babel-plugin-transform-es2015-modules-systemjs": "^6.24.1",

"babel-plugin-transform-es2015-modules-umd": "^6.24.1",

"babel-plugin-transform-es2015-object-super": "^6.24.1",

"babel-plugin-transform-es2015-parameters": "^6.24.1",

"babel-plugin-transform-es2015-shorthand-properties": "^6.24.1",

"babel-plugin-transform-es2015-spread": "^6.22.0",

"babel-plugin-transform-es2015-sticky-regex": "^6.24.1",

"babel-plugin-transform-es2015-template-literals": "^6.22.0",

"babel-plugin-transform-es2015-typeof-symbol": "^6.22.0",

"babel-plugin-transform-es2015-unicode-regex": "^6.24.1",

"babel-plugin-transform-regenerator": "^6.24.1"

},

"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"

},

"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-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"

},

"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"
}

},

"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"

},

"babylon": {

"version": "6.18.0",

"resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz",

"integrity": "sha1-ry87iPpvXB5MY00aD46sT1WzleM=",

"dev": true

},

"balanced-match": {

"version": "1.0.0",

"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",

"integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",

"dev": true
},

"base": {

"version": "0.11.2",

"resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz",

"integrity": "sha1-e95c7RRbbVUakNuH+DxVi060io8=",

"dev": true,

"optional": 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,

"optional": 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": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=",

"dev": true,

"optional": 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": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=",

"dev": true,

"optional": 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": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=",

"dev": true,

"optional": 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,

"optional": true

},

"kind-of": {

"version": "6.0.2",

"resolved": "",

"dev": true,

"optional": 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+9yhb7BwAH
m36g==",

"dev": true

},

"binary-extensions": {

"version": "1.13.1",

"resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz",

"integrity": "sha1-WYr+VHVbKGilMw0q/51Ou1Mgm2U=",

"dev": true,

"optional": true

},

"bn.js": {

"version": "5.1.3",

"resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.1.3.tgz",

"integrity": "sha512-
GkTiFpjFtUzU9CbMeJ5iazkCzGL3jrhzerzZIuqLABjbwRaFt33I9tUdSNryIptM+RxDet6OKm2WnLXzW51KsQ=
=",

"dev": true

},

"brace-expansion": {

"version": "1.1.11",

"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",

"integrity": "sha1-PH/L9SnYcibz0vUrlm/1Jx60Qd0=",

"dev": true,
"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,

"optional": true,

"requires": {

"expand-range": "^1.8.1",

"preserve": "^0.2.0",

"repeat-element": "^1.1.2"

},

"brorand": {

"version": "1.1.0",

"resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz",

"integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=",

"dev": true

},

"browser-pack": {

"version": "6.1.0",
"resolved": "https://registry.npmjs.org/browser-pack/-/browser-pack-6.1.0.tgz",

"integrity": "sha512-
erYug8XoqzU3IfcU8fUgyHqyOXqIE4tUTTQ+7mqUjQlvnXkOO6OlT9c/ZoJVHYoAaqGxr09CN53G7XIsO4Kt
WA==",

"dev": true,

"requires": {

"JSONStream": "^1.0.3",

"combine-source-map": "~0.8.0",

"defined": "^1.0.0",

"safe-buffer": "^5.1.1",

"through2": "^2.0.0",

"umd": "^3.0.0"

},

"browser-resolve": {

"version": "2.0.0",

"resolved": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-2.0.0.tgz",

"integrity": "sha512-
7sWsQlYL2rGLy2IWm8WL8DCTJvYLc/qlOnsakDac87SOoCd16WLsaAMdCiAqsTNHIe+SXfaqyxyo6THoWqs
8WQ==",

"dev": true,

"requires": {

"resolve": "^1.17.0"

},

"browser-stdout": {

"version": "1.3.1",
"resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz",

"integrity": "sha512-
qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpg
w==",

"dev": true

},

"browserify": {

"version": "17.0.0",

"resolved": "https://registry.npmjs.org/browserify/-/browserify-17.0.0.tgz",

"integrity": "sha512-
SaHqzhku9v/j6XsQMRxPyBrSP3gnwmE27gLJYZgMT2GeK3J0+0toN+MnuNYDfHwVGQfLiMZ7KSNSIXHemy
905w==",

"dev": true,

"requires": {

"JSONStream": "^1.0.3",

"assert": "^1.4.0",

"browser-pack": "^6.0.1",

"browser-resolve": "^2.0.0",

"browserify-zlib": "~0.2.0",

"buffer": "~5.2.1",

"cached-path-relative": "^1.0.0",

"concat-stream": "^1.6.0",

"console-browserify": "^1.1.0",

"constants-browserify": "~1.0.0",

"crypto-browserify": "^3.0.0",

"defined": "^1.0.0",

"deps-sort": "^2.0.1",
"domain-browser": "^1.2.0",

"duplexer2": "~0.1.2",

"events": "^3.0.0",

"glob": "^7.1.0",

"has": "^1.0.0",

"htmlescape": "^1.1.0",

"https-browserify": "^1.0.0",

"inherits": "~2.0.1",

"insert-module-globals": "^7.2.1",

"labeled-stream-splicer": "^2.0.0",

"mkdirp-classic": "^0.5.2",

"module-deps": "^6.2.3",

"os-browserify": "~0.3.0",

"parents": "^1.0.1",

"path-browserify": "^1.0.0",

"process": "~0.11.0",

"punycode": "^1.3.2",

"querystring-es3": "~0.2.0",

"read-only-stream": "^2.0.0",

"readable-stream": "^2.0.2",

"resolve": "^1.1.4",

"shasum-object": "^1.0.0",

"shell-quote": "^1.6.1",

"stream-browserify": "^3.0.0",

"stream-http": "^3.0.0",
"string_decoder": "^1.1.1",

"subarg": "^1.0.0",

"syntax-error": "^1.1.1",

"through2": "^2.0.0",

"timers-browserify": "^1.0.1",

"tty-browserify": "0.0.1",

"url": "~0.11.0",

"util": "~0.12.0",

"vm-browserify": "^1.0.0",

"xtend": "^4.0.0"

},

"browserify-aes": {

"version": "1.2.0",

"resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz",

"integrity": "sha512-
+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5
hA==",

"dev": true,

"requires": {

"buffer-xor": "^1.0.3",

"cipher-base": "^1.0.0",

"create-hash": "^1.1.0",

"evp_bytestokey": "^1.0.3",

"inherits": "^2.0.1",

"safe-buffer": "^5.0.1"
}

},

"browserify-cipher": {

"version": "1.0.1",

"resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz",

"integrity": "sha512-
sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==
",

"dev": true,

"requires": {

"browserify-aes": "^1.0.4",

"browserify-des": "^1.0.0",

"evp_bytestokey": "^1.0.0"

},

"browserify-des": {

"version": "1.0.2",

"resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz",

"integrity": "sha512-
BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2Obuw
X5A==",

"dev": true,

"requires": {

"cipher-base": "^1.0.1",

"des.js": "^1.0.0",

"inherits": "^2.0.1",

"safe-buffer": "^5.1.2"
}

},

"browserify-rsa": {

"version": "4.0.1",

"resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz",

"integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=",

"dev": true,

"requires": {

"bn.js": "^4.1.0",

"randombytes": "^2.0.1"

},

"dependencies": {

"bn.js": {

"version": "4.11.9",

"resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz",

"integrity": "sha512-
E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8z
Qaw==",

"dev": true

},

"browserify-sign": {

"version": "4.2.1",

"resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz",
"integrity":
"sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+Q
HC2erPRNf8lmg==",

"dev": true,

"requires": {

"bn.js": "^5.1.1",

"browserify-rsa": "^4.0.1",

"create-hash": "^1.2.0",

"create-hmac": "^1.1.7",

"elliptic": "^6.5.3",

"inherits": "^2.0.4",

"parse-asn1": "^5.1.5",

"readable-stream": "^3.6.0",

"safe-buffer": "^5.2.0"

},

"dependencies": {

"readable-stream": {

"version": "3.6.0",

"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",

"integrity": "sha512-
BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA
==",

"dev": true,

"requires": {

"inherits": "^2.0.3",

"string_decoder": "^1.1.1",

"util-deprecate": "^1.0.1"
}

},

"safe-buffer": {

"version": "5.2.1",

"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",

"integrity": "sha512-
rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpu
YvmCXQ==",

"dev": true

},

"browserify-zlib": {

"version": "0.2.0",

"resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz",

"integrity": "sha512-
Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpC
FEiA==",

"dev": true,

"requires": {

"pako": "~1.0.5"

},

"buffer": {

"version": "5.2.1",

"resolved": "https://registry.npmjs.org/buffer/-/buffer-5.2.1.tgz",
"integrity": "sha512-
c+Ko0loDaFfuPWiL02ls9Xd3GO3cPVmUobQ6t3rXNUk304u6hGq+8N/kFi+QEIKhzK3uwolVhLzszmfLmMLn
qg==",

"dev": true,

"requires": {

"base64-js": "^1.0.2",

"ieee754": "^1.1.4"

},

"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+F5jusZsb0YQ
K2A==",

"dev": true

},

"buffer-xor": {

"version": "1.0.3",

"resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz",

"integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=",

"dev": true

},

"builtin-status-codes": {

"version": "3.0.0",

"resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz",

"integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=",
"dev": true

},

"cache-base": {

"version": "1.0.1",

"resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz",

"integrity": "sha1-Cn9GQWgxyLZi7jb+TnxZ129marI=",

"dev": true,

"optional": 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,
"optional": true

},

"cached-path-relative": {

"version": "1.0.2",

"resolved": "https://registry.npmjs.org/cached-path-relative/-/cached-path-relative-1.0.2.tgz",

"integrity": "sha512-
5r2GqsoEb4qMTTN9J+WzXfjov+hjxT+j3u5K+kIVNIwAd99DLCJE9pBIMP1qVeybV6JiijL385Oz0DcYxfbOIg==
",

"dev": true

},

"camelcase": {

"version": "5.3.1",

"resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",

"integrity": "sha512-
L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153
wJg==",

"dev": true

},

"chai": {

"version": "4.2.0",

"resolved": "https://registry.npmjs.org/chai/-/chai-4.2.0.tgz",

"integrity": "sha1-dgqnLPION5XoSxKHfODoNzeqKeU=",

"dev": true,

"requires": {

"assertion-error": "^1.1.0",
"check-error": "^1.0.2",

"deep-eql": "^3.0.1",

"get-func-name": "^2.0.0",

"pathval": "^1.1.0",

"type-detect": "^4.0.5"

},

"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"

},

"check-error": {

"version": "1.0.2",

"resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz",

"integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=",

"dev": true
},

"chokidar": {

"version": "1.7.0",

"resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz",

"integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=",

"dev": true,

"optional": 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"

},

"cipher-base": {

"version": "1.0.4",

"resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz",

"integrity": "sha512-
Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U
2Q==",

"dev": true,
"requires": {

"inherits": "^2.0.1",

"safe-buffer": "^5.0.1"

},

"class-utils": {

"version": "0.3.6",

"resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz",

"integrity": "sha1-+TNprouafOAv1B+q0MqDAzGQxGM=",

"dev": true,

"optional": 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,

"optional": 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,

"optional": true

},

"cliui": {

"version": "5.0.0",

"resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz",

"integrity": "sha512-
PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2q
nwXA==",

"dev": true,

"requires": {

"string-width": "^3.1.0",

"strip-ansi": "^5.2.0",

"wrap-ansi": "^5.1.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/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4r
ondg==",

"dev": true

},

"string-width": {

"version": "3.1.0",

"resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",

"integrity": "sha512-
vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1
w==",

"dev": true,

"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==",

"dev": true,

"requires": {
"ansi-regex": "^4.1.0"

},

"collection-visit": {

"version": "1.0.0",

"resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz",

"integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=",

"dev": true,

"optional": true,

"requires": {

"map-visit": "^1.0.0",

"object-visit": "^1.0.0"

},

"color-convert": {

"version": "2.0.1",

"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",

"integrity": "sha512-
RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaEl
KQ==",

"dev": true,

"requires": {

"color-name": "~1.1.4"

}
},

"color-name": {

"version": "1.1.4",

"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",

"integrity": "sha512-
dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXg
AsQA==",

"dev": true

},

"combine-source-map": {

"version": "0.8.0",

"resolved": "https://registry.npmjs.org/combine-source-map/-/combine-source-map-0.8.0.tgz",

"integrity": "sha1-pY0N8ELBhvz4IqjoAV9UUNLXmos=",

"dev": true,

"requires": {

"convert-source-map": "~1.1.0",

"inline-source-map": "~0.6.0",

"lodash.memoize": "~3.0.3",

"source-map": "~0.5.3"

},

"dependencies": {

"convert-source-map": {

"version": "1.1.3",

"resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.1.3.tgz",

"integrity": "sha1-SCnId+n+SbMWHzvzZziI4gRpmGA=",

"dev": true
}

},

"commander": {

"version": "2.20.3",

"resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",

"integrity": "sha1-/UhehMA+tIgcIHIrpIA16FMa6zM=",

"dev": true

},

"component-emitter": {

"version": "1.3.0",

"resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz",

"integrity": "sha1-FuQHD7qK4ptnnyIVhT7hgasuq8A=",

"dev": true,

"optional": true

},

"concat-map": {

"version": "0.0.1",

"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",

"integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",

"dev": true

},

"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.2.0",

"resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz",

"integrity": "sha512-
ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd5
2OTA==",

"dev": true

},

"constants-browserify": {

"version": "1.0.0",

"resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz",

"integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=",

"dev": true

},

"convert-source-map": {

"version": "1.7.0",
"resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz",

"integrity": "sha1-F6LLiC1/d9NJBYXizmxSRCSjpEI=",

"dev": true,

"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,

"optional": true

},

"core-js": {

"version": "2.6.10",

"resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.10.tgz",

"integrity": "sha1-iluDkfjMcBPacDQRzltYVwYwDX8=",

"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
},

"create-ecdh": {

"version": "4.0.4",

"resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz",

"integrity": "sha512-
mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0
A==",

"dev": true,

"requires": {

"bn.js": "^4.1.0",

"elliptic": "^6.5.3"

},

"dependencies": {

"bn.js": {

"version": "4.11.9",

"resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz",

"integrity": "sha512-
E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8z
Qaw==",

"dev": true

},

"create-hash": {

"version": "1.2.0",

"resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz",
"integrity": "sha512-
z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeC
g==",

"dev": true,

"requires": {

"cipher-base": "^1.0.1",

"inherits": "^2.0.1",

"md5.js": "^1.3.4",

"ripemd160": "^2.0.1",

"sha.js": "^2.4.0"

},

"create-hmac": {

"version": "1.1.7",

"resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz",

"integrity": "sha512-
MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg
==",

"dev": true,

"requires": {

"cipher-base": "^1.0.3",

"create-hash": "^1.1.0",

"inherits": "^2.0.1",

"ripemd160": "^2.0.0",

"safe-buffer": "^5.0.1",

"sha.js": "^2.4.8"

}
},

"crypto-browserify": {

"version": "3.12.0",

"resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz",

"integrity": "sha512-
fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg=
=",

"dev": true,

"requires": {

"browserify-cipher": "^1.0.0",

"browserify-sign": "^4.0.0",

"create-ecdh": "^4.0.0",

"create-hash": "^1.1.0",

"create-hmac": "^1.1.0",

"diffie-hellman": "^5.0.0",

"inherits": "^2.0.1",

"pbkdf2": "^3.0.3",

"public-encrypt": "^4.0.0",

"randombytes": "^2.0.0",

"randomfill": "^1.0.3"

},

"dash-ast": {

"version": "1.0.0",

"resolved": "https://registry.npmjs.org/dash-ast/-/dash-ast-1.0.0.tgz",
"integrity": "sha512-
Vy4dx7gquTeMcQR/hDkYLGUnwVil6vk4FOOct+djUnHOUWt+zJPJAaRIXaAFkPXtJjvlY7o3rfRu0/3hpnwoU
A==",

"dev": true

},

"debug": {

"version": "2.6.9",

"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",

"integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=",

"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=",

"dev": true

},

"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,

"optional": true
},

"deep-eql": {

"version": "3.0.1",

"resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz",

"integrity": "sha1-38lARACtHI/gI+faHfHBR8S0RN8=",

"dev": true,

"requires": {

"type-detect": "^4.0.0"

},

"define-properties": {

"version": "1.1.3",

"resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz",

"integrity": "sha512-
3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlX
Q==",

"dev": true,

"requires": {

"object-keys": "^1.0.12"

},

"define-property": {

"version": "2.0.2",

"resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz",

"integrity": "sha1-1Flono1lS6d+AqgX+HENcCyxbp0=",

"dev": true,
"optional": 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": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=",

"dev": true,

"optional": 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": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=",

"dev": true,

"optional": 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": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=",

"dev": true,

"optional": 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,

"optional": true

},

"kind-of": {

"version": "6.0.3",

"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",

"integrity": "sha512-
dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456
hw==",
"dev": true,

"optional": true

},

"defined": {

"version": "1.0.0",

"resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz",

"integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=",

"dev": true

},

"deps-sort": {

"version": "2.0.1",

"resolved": "https://registry.npmjs.org/deps-sort/-/deps-sort-2.0.1.tgz",

"integrity": "sha512-
1orqXQr5po+3KI6kQb9A4jnXT1PBwggGl2d7Sq2xsnOeI9GPcE/tGcF9UiSZtZBM7MukY4cAh7MemS6tZYipf
w==",

"dev": true,

"requires": {

"JSONStream": "^1.0.3",

"shasum-object": "^1.0.0",

"subarg": "^1.0.0",

"through2": "^2.0.0"

},

"des.js": {
"version": "1.0.1",

"resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz",

"integrity": "sha512-
Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUla
EA==",

"dev": true,

"requires": {

"inherits": "^2.0.1",

"minimalistic-assert": "^1.0.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": "5.2.0",

"resolved": "https://registry.npmjs.org/detective/-/detective-5.2.0.tgz",

"integrity": "sha512-
6SsIx+nUUbuK0EthKjv0zrdnajCCXVYGmbYYiYjFVpzcjwEs/JMDZ8tPRG29J/HhN56t3GJp2cGSWDRjjot8Pg=
=",

"dev": true,
"requires": {

"acorn-node": "^1.6.1",

"defined": "^1.0.0",

"minimist": "^1.1.1"

},

"dependencies": {

"minimist": {

"version": "1.2.5",

"resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",

"integrity": "sha512-
FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcg
IXLw==",

"dev": true

},

"diff": {

"version": "4.0.2",

"resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz",

"integrity": "sha512-
58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6u
DY7A==",

"dev": true

},

"diffie-hellman": {

"version": "5.0.3",

"resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz",
"integrity": "sha512-
kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsU
zg==",

"dev": true,

"requires": {

"bn.js": "^4.1.0",

"miller-rabin": "^4.0.0",

"randombytes": "^2.0.0"

},

"dependencies": {

"bn.js": {

"version": "4.11.9",

"resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz",

"integrity": "sha512-
E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8z
Qaw==",

"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+71FrxMl3E6lpKH7Ge3O
XA==",

"dev": true

},
"duplexer2": {

"version": "0.1.4",

"resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz",

"integrity": "sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=",

"dev": true,

"requires": {

"readable-stream": "^2.0.2"

},

"elliptic": {

"version": "6.5.3",

"resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.3.tgz",

"integrity": "sha512-
IMqzv5wNQf+E6aHeIqATs0tOLeOTwj1QKbRcS3jBbYkl5oLAserA8yJTT7/VyHUYG91PRmPyeQDObKLPpeS4
dw==",

"dev": true,

"requires": {

"bn.js": "^4.4.0",

"brorand": "^1.0.1",

"hash.js": "^1.0.0",

"hmac-drbg": "^1.0.0",

"inherits": "^2.0.1",

"minimalistic-assert": "^1.0.0",

"minimalistic-crypto-utils": "^1.0.0"

},

"dependencies": {
"bn.js": {

"version": "4.11.9",

"resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz",

"integrity": "sha512-
E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8z
Qaw==",

"dev": true

},

"emoji-regex": {

"version": "7.0.3",

"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz",

"integrity": "sha512-
CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTI
hItA==",

"dev": true

},

"es-abstract": {

"version": "1.17.7",

"resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.7.tgz",

"integrity": "sha512-
VBl/gnfcJ7OercKA9MVaegWsBHFjV492syMudcnQZvt/Dw8ezpcOHYZXa/J96O8vx+g4x65YKhxOwDUh63a
S5g==",

"dev": true,

"requires": {

"es-to-primitive": "^1.2.1",

"function-bind": "^1.1.1",
"has": "^1.0.3",

"has-symbols": "^1.0.1",

"is-callable": "^1.2.2",

"is-regex": "^1.1.1",

"object-inspect": "^1.8.0",

"object-keys": "^1.1.1",

"object.assign": "^4.1.1",

"string.prototype.trimend": "^1.0.1",

"string.prototype.trimstart": "^1.0.1"

},

"es-to-primitive": {

"version": "1.2.1",

"resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz",

"integrity": "sha512-
QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA=
=",

"dev": true,

"requires": {

"is-callable": "^1.1.4",

"is-date-object": "^1.0.1",

"is-symbol": "^1.0.2"

},

"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=",

"dev": true

},

"esprima": {

"version": "4.0.1",

"resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",

"integrity": "sha512-
eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsa
WU4A==",

"dev": true

},

"esutils": {

"version": "2.0.3",

"resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",

"integrity": "sha1-dNLrTeC42hKTcRkQ1Qd1ubcQ72Q=",

"dev": true

},

"events": {

"version": "3.2.0",

"resolved": "https://registry.npmjs.org/events/-/events-3.2.0.tgz",

"integrity":
"sha512-/46HWwbfCX2xTawVfkKLGxMifJYQBWMwY1mjywRtb4c9x8l5NP3KoJtnIOiL1hfdRkIuYhETxQlo6
2IF8tcnlg==",

"dev": true

},

"evp_bytestokey": {
"version": "1.0.3",

"resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz",

"integrity":
"sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEor
Qexp/aPQeA==",

"dev": true,

"requires": {

"md5.js": "^1.3.4",

"safe-buffer": "^5.1.1"

},

"expand-brackets": {

"version": "0.1.5",

"resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz",

"integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=",

"dev": true,

"optional": 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,
"optional": 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,

"optional": 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": "sha1-p0cPnkJnM9gb2B4RVSZOOjUHyrQ=",

"dev": true,

"optional": 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,

"optional": true,

"requires": {

"is-extglob": "^1.0.0"

},

"fast-safe-stringify": {

"version": "2.0.7",

"resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.0.7.tgz",

"integrity": "sha512-
Utm6CdzT+6xsDk2m8S6uL8VHxNwI6Jub+e9NYTcAms28T84pTa25GJQV9j0CY0N1rM8hK4x6grpF2BQf+2q
wVA==",

"dev": true

},

"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,
"optional": true

},

"fill-range": {

"version": "2.2.4",

"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.4.tgz",

"integrity": "sha1-6x53OrsFbc2N8r/favWbizqTZWU=",

"dev": true,

"optional": 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-up": {

"version": "5.0.0",

"resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz",

"integrity": "sha512-
78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng
==",

"dev": true,

"requires": {

"locate-path": "^6.0.0",

"path-exists": "^4.0.0"
}

},

"flat": {

"version": "5.0.2",

"resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz",

"integrity": "sha512-
b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpm
Izz3hQ==",

"dev": true

},

"for-in": {

"version": "1.0.2",

"resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz",

"integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=",

"dev": true,

"optional": 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,

"optional": true,

"requires": {

"for-in": "^1.0.1"

}
},

"foreach": {

"version": "2.0.5",

"resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz",

"integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=",

"dev": true

},

"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,

"optional": true,

"requires": {

"map-cache": "^0.2.2"

},

"fs-readdir-recursive": {

"version": "1.1.0",

"resolved": "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz",

"integrity": "sha1-4y/AMKLM7kSmtTcTCNpUvgs5fSc=",

"dev": true

},

"fs.realpath": {

"version": "1.0.0",
"resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",

"integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",

"dev": true

},

"fsevents": {

"version": "1.2.12",

"resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.12.tgz",

"integrity": "sha512-
Ggd/Ktt7E7I8pxZRbGIs7vwqAPscSESMrCSkx2FtWeqmheJgCo2R74fTsZFCifr0VTPwqRpPv17+6b8Zp7th0Q
==",

"dev": true,

"optional": true,

"requires": {

"node-pre-gyp": "*"

},

"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.4",

"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": "3.2.6",

"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.7",

"bundled": true,

"dev": true,

"optional": true,

"requires": {

"minipass": "^2.6.0"

},
"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.6",

"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.3",

"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.4",

"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": "1.2.5",

"bundled": true,

"dev": true,

"optional": true

},

"minipass": {

"version": "2.9.0",

"bundled": true,

"dev": true,

"optional": true,

"requires": {

"safe-buffer": "^5.1.2",

"yallist": "^3.0.0"

},

"minizlib": {

"version": "1.3.3",

"bundled": true,
"dev": true,

"optional": true,

"requires": {

"minipass": "^2.9.0"

},

"mkdirp": {

"version": "0.5.3",

"bundled": true,

"dev": true,

"optional": true,

"requires": {

"minimist": "^1.2.5"

},

"ms": {

"version": "2.1.2",

"bundled": true,

"dev": true,

"optional": true

},

"needle": {

"version": "2.3.3",

"bundled": true,

"dev": true,
"optional": true,

"requires": {

"debug": "^3.2.6",

"iconv-lite": "^0.4.4",

"sax": "^1.2.4"

},

"node-pre-gyp": {

"version": "0.14.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.4.2"

},
"nopt": {

"version": "4.0.3",

"bundled": true,

"dev": true,

"optional": true,

"requires": {

"abbrev": "1",

"osenv": "^0.1.4"

},

"npm-bundled": {

"version": "1.1.1",

"bundled": true,

"dev": true,

"optional": true,

"requires": {

"npm-normalize-package-bin": "^1.0.1"

},

"npm-normalize-package-bin": {

"version": "1.0.1",

"bundled": true,

"dev": true,

"optional": true

},
"npm-packlist": {

"version": "1.4.8",

"bundled": true,

"dev": true,

"optional": true,

"requires": {

"ignore-walk": "^3.0.1",

"npm-bundled": "^1.0.1",

"npm-normalize-package-bin": "^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.1",

"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"

},

"readable-stream": {

"version": "2.3.7",

"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.7.1",

"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.1",

"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.13",

"bundled": true,

"dev": true,

"optional": true,

"requires": {

"chownr": "^1.1.1",

"fs-minipass": "^1.2.5",

"minipass": "^2.8.6",

"minizlib": "^1.2.1",

"mkdirp": "^0.5.0",

"safe-buffer": "^5.1.2",

"yallist": "^3.0.3"

},
"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.1.1",

"bundled": true,

"dev": true,
"optional": true

},

"function-bind": {

"version": "1.1.1",

"resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",

"integrity": "sha512-
yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A
==",

"dev": true

},

"get-assigned-identifiers": {

"version": "1.2.0",

"resolved": "https://registry.npmjs.org/get-assigned-identifiers/-/get-assigned-identifiers-1.2.0.tgz",

"integrity": "sha512-
mBBwmeGTrxEMO4pMaaf/uUEFHnYtwr8FTe8Y/mer4rcV/bye0qGm6pw1bGZFGStxC5O76c5ZAVBGnqH
mOaJpdQ==",

"dev": true

},

"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/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2F
g==",

"dev": true

},
"get-func-name": {

"version": "2.0.0",

"resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz",

"integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=",

"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,

"optional": true

},

"glob": {

"version": "7.1.6",

"resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",

"integrity": "sha1-FB8zuBp8JJLhJVlDB0gMRmeSeKY=",

"dev": true,

"requires": {

"fs.realpath": "^1.0.0",

"inflight": "^1.0.4",

"inherits": "2",

"minimatch": "^3.0.4",

"once": "^1.3.0",

"path-is-absolute": "^1.0.0"
}

},

"glob-base": {

"version": "0.3.0",

"resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz",

"integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=",

"dev": true,

"optional": 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,

"optional": true,

"requires": {

"is-glob": "^2.0.0"

},

"globals": {

"version": "9.18.0",
"resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz",

"integrity": "sha1-qjiWs+abSH8X4x7SFD1pqOMMLYo=",

"dev": true

},

"graceful-fs": {

"version": "4.2.3",

"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz",

"integrity": "sha1-ShL/G2A3bvCYYsIJPt2Qgyi+hCM=",

"dev": true

},

"growl": {

"version": "1.10.5",

"resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz",

"integrity": "sha512-
qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oS
A==",

"dev": true

},

"has": {

"version": "1.0.3",

"resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",

"integrity": "sha512-
f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4z
w==",

"dev": true,

"requires": {

"function-bind": "^1.1.1"
}

},

"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": "4.0.0",

"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",

"integrity": "sha512-
EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlM
PQ==",

"dev": true

},

"has-symbols": {

"version": "1.0.1",

"resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz",

"integrity": "sha512-PLcsoqu+
+dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==",

"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,

"optional": 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,

"optional": 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,
"optional": 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,

"optional": 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,

"optional": 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,

"optional": true,

"requires": {

"is-buffer": "^1.1.5"

},

"hash-base": {

"version": "3.1.0",

"resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz",

"integrity": "sha512-
1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IV
A==",

"dev": true,

"requires": {

"inherits": "^2.0.4",

"readable-stream": "^3.6.0",

"safe-buffer": "^5.2.0"
},

"dependencies": {

"readable-stream": {

"version": "3.6.0",

"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",

"integrity": "sha512-
BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA
==",

"dev": true,

"requires": {

"inherits": "^2.0.3",

"string_decoder": "^1.1.1",

"util-deprecate": "^1.0.1"

},

"safe-buffer": {

"version": "5.2.1",

"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",

"integrity": "sha512-
rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpu
YvmCXQ==",

"dev": true

},

"hash.js": {

"version": "1.1.7",
"resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz",

"integrity": "sha512-
taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA=
=",

"dev": true,

"requires": {

"inherits": "^2.0.3",

"minimalistic-assert": "^1.0.1"

},

"he": {

"version": "1.2.0",

"resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz",

"integrity": "sha512-
F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JO
WNDKGw==",

"dev": true

},

"hmac-drbg": {

"version": "1.0.1",

"resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz",

"integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=",

"dev": true,

"requires": {

"hash.js": "^1.0.3",

"minimalistic-assert": "^1.0.0",

"minimalistic-crypto-utils": "^1.0.1"
}

},

"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"

},

"htmlescape": {

"version": "1.1.1",

"resolved": "https://registry.npmjs.org/htmlescape/-/htmlescape-1.1.1.tgz",

"integrity": "sha1-OgPtwiFLyjtmQko+eVk0lQnLA1E=",

"dev": true

},

"https-browserify": {

"version": "1.0.0",

"resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz",

"integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=",

"dev": true

},

"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

},

"inflight": {

"version": "1.0.6",

"resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",

"integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",

"dev": true,

"requires": {

"once": "^1.3.0",

"wrappy": "1"

},

"inherits": {

"version": "2.0.4",

"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",

"integrity": "sha1-D6LGT5MpF8NDOg3tVTY6rjdBa3w=",

"dev": true

},

"inline-source-map": {

"version": "0.6.2",

"resolved": "https://registry.npmjs.org/inline-source-map/-/inline-source-map-0.6.2.tgz",
"integrity": "sha1-+Tk0ccGKedFyT4Y/o4tYY3Ct4qU=",

"dev": true,

"requires": {

"source-map": "~0.5.3"

},

"insert-module-globals": {

"version": "7.2.1",

"resolved": "https://registry.npmjs.org/insert-module-globals/-/insert-module-globals-7.2.1.tgz",

"integrity": "sha512-
ufS5Qq9RZN+Bu899eA9QCAYThY+gGW7oRkmb0vC93Vlyu/CFGcH0OYPEjVkDXA5FEbTt1+VWzdoOD3Ny9
N+8tg==",

"dev": true,

"requires": {

"JSONStream": "^1.0.3",

"acorn-node": "^1.5.2",

"combine-source-map": "^0.8.0",

"concat-stream": "^1.6.1",

"is-buffer": "^1.1.0",

"path-is-absolute": "^1.0.1",

"process": "~0.11.0",

"through2": "^2.0.0",

"undeclared-identifiers": "^1.1.2",

"xtend": "^4.0.0"

},
"invariant": {

"version": "2.2.4",

"resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz",

"integrity": "sha1-YQ88ksk1nOHbYW5TgAjSP/NRWOY=",

"dev": true,

"requires": {

"loose-envify": "^1.0.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,

"optional": true,

"requires": {

"kind-of": "^3.0.2"

},

"is-arguments": {

"version": "1.0.4",

"resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.0.4.tgz",

"integrity": "sha512-
xPh0Rmt8NE65sNzvyUmWgI1tz3mKq74lGA0mL8LYZcoIzKOzDh6HmrYm3d18k60nHerC8A9Km8kYu87zfS
FnLA==",

"dev": true
},

"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,

"optional": 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": "sha1-76ouqdqg16suoTqXsritUf776L4=",

"dev": true

},

"is-callable": {

"version": "1.2.2",

"resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.2.tgz",

"integrity": "sha512-
dnMqspv5nU3LoewK2N/y7KLtxtakvTuaCsU9FU50/QDmdbHNy/4/JuRtMHqRU22o3q+W89YQndQEeCVw
K+3qrA==",

"dev": true

},

"is-core-module": {
"version": "2.0.0",

"resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.0.0.tgz",

"integrity": "sha512-
jq1AH6C8MuteOoBPwkxHafmByhL9j5q4OaPGdbuD+ZtQJVzH+i6E3BJDQcBA09k57i2Hh2yQbEG8yObZ0jd
lWw==",

"dev": true,

"requires": {

"has": "^1.0.3"

},

"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,

"optional": true,

"requires": {

"kind-of": "^3.0.2"

},

"is-date-object": {

"version": "1.0.2",

"resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz",

"integrity": "sha512-
USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk
0g==",

"dev": true
},

"is-descriptor": {

"version": "0.1.6",

"resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz",

"integrity": "sha1-Nm2CQN3kh8pRgjsaufB6EKeCUco=",

"dev": true,

"optional": 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": "sha1-cpyR4thXt6QZofmqZWhcTDP1hF0=",

"dev": true,

"optional": 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,

"optional": 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,

"optional": 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,

"optional": 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,

"optional": 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": "2.0.0",

"resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",

"integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",

"dev": true

},

"is-generator-function": {

"version": "1.0.7",

"resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.7.tgz",

"integrity": "sha512-
YZc5EwyO4f2kWCax7oegfuSr9mFz1ZvieNYBEjmukLxgXfBUbxAWGVF7GZf0zidYtoBl3WvC07YK0wT76a+Rt
w==",

"dev": true

},
"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,

"optional": true,

"requires": {

"is-extglob": "^1.0.0"

},

"is-negative-zero": {

"version": "2.0.0",

"resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.0.tgz",

"integrity": "sha1-lVOxIbD6wohp2p7UWeIMdUN4hGE=",

"dev": true

},

"is-number": {

"version": "2.1.0",

"resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz",

"integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=",

"dev": true,

"optional": true,

"requires": {

"kind-of": "^3.0.2"

}
},

"is-plain-obj": {

"version": "2.1.0",

"resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz",

"integrity":
"sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpe
mw+NfT1eA==",

"dev": true

},

"is-plain-object": {

"version": "2.0.4",

"resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz",

"integrity": "sha1-LBY7P6+xtgbZ0Xko8FwqHDjgdnc=",

"dev": true,

"optional": 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,

"optional": 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,

"optional": 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,

"optional": true

},

"is-regex": {

"version": "1.1.1",

"resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.1.tgz",

"integrity": "sha512-
1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LI
g==",

"dev": true,

"requires": {

"has-symbols": "^1.0.1"

}
},

"is-symbol": {

"version": "1.0.3",

"resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz",

"integrity": "sha512-
OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv
9faQ==",

"dev": true,

"requires": {

"has-symbols": "^1.0.1"

},

"is-typed-array": {

"version": "1.1.3",

"resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.3.tgz",

"integrity": "sha512-
BSYUBOK/HJibQ30wWkWold5txYwMUXQct9YHAQJr8fSwvZoiglcqB0pd7vEN23+Tsi9IUEjztdOSzl4qLVYGT
Q==",

"dev": true,

"requires": {

"available-typed-arrays": "^1.0.0",

"es-abstract": "^1.17.4",

"foreach": "^2.0.5",

"has-symbols": "^1.0.1"

},

"is-windows": {
"version": "1.0.2",

"resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz",

"integrity": "sha1-0YUOuXkezRjmGCzhKjDzlmNLsZ0=",

"dev": true,

"optional": 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=",

"dev": true

},

"isobject": {

"version": "2.1.0",

"resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz",

"integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=",

"dev": true,

"optional": true,

"requires": {
"isarray": "1.0.0"

},

"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.14.0",

"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz",

"integrity":
"sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPa
WR+OtY17A==",

"dev": true,

"requires": {

"argparse": "^1.0.7",

"esprima": "^4.0.0"

},

"jsesc": {

"version": "1.3.0",

"resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz",

"integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=",

"dev": true
},

"json5": {

"version": "0.5.1",

"resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz",

"integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=",

"dev": true

},

"jsonparse": {

"version": "1.3.1",

"resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz",

"integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=",

"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,

"optional": true,

"requires": {

"is-buffer": "^1.1.5"

},

"labeled-stream-splicer": {

"version": "2.0.2",
"resolved": "https://registry.npmjs.org/labeled-stream-splicer/-/labeled-stream-splicer-2.0.2.tgz",

"integrity": "sha512-
Ca4LSXFFZUjPScRaqOcFxneA0VpKZr4MMYCljyQr4LIewTLb3Y0IUTIsnBBsVubIeEfxeSZpSjSsRM8APEQaAw
==",

"dev": true,

"requires": {

"inherits": "^2.0.1",

"stream-splicer": "^2.0.0"

},

"locate-path": {

"version": "6.0.0",

"resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz",

"integrity": "sha512-
iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSD
VUw==",

"dev": true,

"requires": {

"p-locate": "^5.0.0"

},

"lodash": {

"version": "4.17.19",

"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz",

"integrity": "sha512-
JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96
DQ==",

"dev": true
},

"lodash.memoize": {

"version": "3.0.4",

"resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-3.0.4.tgz",

"integrity": "sha1-LcvSwofLwKVcxCMovQxzYVDVPj8=",

"dev": true

},

"log-symbols": {

"version": "4.0.0",

"resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.0.0.tgz",

"integrity": "sha512-
FN8JBzLx6CzeMrB0tg6pqlGU1wCrXW+ZXGH481kfsBqer0hToTIiHdjH4Mq8xJUbvATujKCvaREGWpGUionr
aA==",

"dev": true,

"requires": {

"chalk": "^4.0.0"

},

"dependencies": {

"ansi-styles": {

"version": "4.3.0",

"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",

"integrity": "sha512-
zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=
=",

"dev": true,

"requires": {

"color-convert": "^2.0.1"
}

},

"chalk": {

"version": "4.1.0",

"resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz",

"integrity": "sha512-
qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A
==",

"dev": true,

"requires": {

"ansi-styles": "^4.1.0",

"supports-color": "^7.1.0"

},

"supports-color": {

"version": "7.2.0",

"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",

"integrity":
"sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR
9+OvwRw==",

"dev": true,

"requires": {

"has-flag": "^4.0.0"

},
"loose-envify": {

"version": "1.4.0",

"resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",

"integrity": "sha1-ce5R+nvkyuwaY4OffmgtgTLTDK8=",

"dev": true,

"requires": {

"js-tokens": "^3.0.0 || ^4.0.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,

"optional": 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,

"optional": 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": "sha1-XdaUPJOFSCZwFtTjTwV1gwgMUUw=",

"dev": true,

"optional": true

},

"md5.js": {

"version": "1.3.5",

"resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz",

"integrity": "sha512-
xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==",

"dev": true,

"requires": {

"hash-base": "^3.0.0",

"inherits": "^2.0.1",

"safe-buffer": "^5.1.2"

},

"micromatch": {

"version": "2.3.11",

"resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz",

"integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=",

"dev": true,

"optional": 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"

},

"miller-rabin": {

"version": "4.0.1",

"resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz",

"integrity": "sha512-
115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jR
A==",

"dev": true,

"requires": {

"bn.js": "^4.0.0",

"brorand": "^1.0.1"
},

"dependencies": {

"bn.js": {

"version": "4.11.9",

"resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz",

"integrity": "sha512-
E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8z
Qaw==",

"dev": true

},

"minimalistic-assert": {

"version": "1.0.1",

"resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz",

"integrity": "sha512-
UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd0
0/A==",

"dev": true

},

"minimalistic-crypto-utils": {

"version": "1.0.1",

"resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz",

"integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=",

"dev": true

},

"minimatch": {
"version": "3.0.4",

"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",

"integrity": "sha1-UWbihkV/AzBgZL5Ul+jbsMPTIIM=",

"dev": true,

"requires": {

"brace-expansion": "^1.1.7"

},

"minimist": {

"version": "1.2.5",

"resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",

"integrity": "sha512-
FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcg
IXLw==",

"dev": true

},

"mixin-deep": {

"version": "1.3.2",

"resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz",

"integrity": "sha1-ESC0PcNZp4Xc5ltVuC4lfM9HlWY=",

"dev": true,

"optional": 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": "sha1-p0cPnkJnM9gb2B4RVSZOOjUHyrQ=",

"dev": true,

"optional": true,

"requires": {

"is-plain-object": "^2.0.4"

},

"mkdirp": {

"version": "0.5.5",

"resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz",

"integrity": "sha512-NKmAlESf6jMGym1+
+R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==",

"dev": true,

"requires": {

"minimist": "^1.2.5"

},

"mkdirp-classic": {

"version": "0.5.3",

"resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz",
"integrity": "sha512-
gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/
A==",

"dev": true

},

"mocha": {

"version": "8.2.0",

"resolved": "https://registry.npmjs.org/mocha/-/mocha-8.2.0.tgz",

"integrity": "sha512-
lEWEMq2LMfNJMKeuEwb5UELi+OgFDollXaytR5ggQcHpzG3NP/R7rvixAvF+9/lLsTWhWG+4yD2M70GsM0
6nxw==",

"dev": true,

"requires": {

"@ungap/promise-all-settled": "1.1.2",

"ansi-colors": "4.1.1",

"browser-stdout": "1.3.1",

"chokidar": "3.4.3",

"debug": "4.2.0",

"diff": "4.0.2",

"escape-string-regexp": "4.0.0",

"find-up": "5.0.0",

"glob": "7.1.6",

"growl": "1.10.5",

"he": "1.2.0",

"js-yaml": "3.14.0",

"log-symbols": "4.0.0",

"minimatch": "3.0.4",
"ms": "2.1.2",

"nanoid": "3.1.12",

"serialize-javascript": "5.0.1",

"strip-json-comments": "3.1.1",

"supports-color": "7.2.0",

"which": "2.0.2",

"wide-align": "1.1.3",

"workerpool": "6.0.2",

"yargs": "13.3.2",

"yargs-parser": "13.1.2",

"yargs-unparser": "2.0.0"

},

"dependencies": {

"anymatch": {

"version": "3.1.1",

"resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz",

"integrity": "sha512-
mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLk
tzjg==",

"dev": true,

"requires": {

"normalize-path": "^3.0.0",

"picomatch": "^2.0.4"

},

"binary-extensions": {
"version": "2.1.0",

"resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.1.0.tgz",

"integrity": "sha512-
1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZr
w0tQ==",

"dev": true

},

"braces": {

"version": "3.0.2",

"resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",

"integrity": "sha512-
b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha
0A==",

"dev": true,

"requires": {

"fill-range": "^7.0.1"

},

"chokidar": {

"version": "3.4.3",

"resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.4.3.tgz",

"integrity": "sha512-
DtM3g7juCXQxFVSNPNByEC2+NImtBuxQQvWlHunpJIS5Ocr0lG306cC7FCi7cEA0fzmybPUIl4txBIobk1gGO
Q==",

"dev": true,

"requires": {

"anymatch": "~3.1.1",

"braces": "~3.0.2",
"fsevents": "~2.1.2",

"glob-parent": "~5.1.0",

"is-binary-path": "~2.1.0",

"is-glob": "~4.0.1",

"normalize-path": "~3.0.0",

"readdirp": "~3.5.0"

},

"debug": {

"version": "4.2.0",

"resolved": "https://registry.npmjs.org/debug/-/debug-4.2.0.tgz",

"integrity": "sha512-
IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8s
g==",

"dev": true,

"requires": {

"ms": "2.1.2"

},

"escape-string-regexp": {

"version": "4.0.0",

"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",

"integrity": "sha512-
TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdg
A==",

"dev": true

},
"fill-range": {

"version": "7.0.1",

"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",

"integrity": "sha512-
qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2US
VpQ==",

"dev": true,

"requires": {

"to-regex-range": "^5.0.1"

},

"fsevents": {

"version": "2.1.3",

"resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz",

"integrity": "sha512-
Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5
pEjuQ==",

"dev": true,

"optional": true

},

"glob-parent": {

"version": "5.1.1",

"resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz",

"integrity": "sha512-
FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voR
YQ==",

"dev": true,

"requires": {
"is-glob": "^4.0.1"

},

"is-binary-path": {

"version": "2.1.0",

"resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",

"integrity": "sha512-
ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRG
Xw==",

"dev": true,

"requires": {

"binary-extensions": "^2.0.0"

},

"is-extglob": {

"version": "2.1.1",

"resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",

"integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=",

"dev": true

},

"is-glob": {

"version": "4.0.1",

"resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz",

"integrity": "sha512-
5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BU
g==",

"dev": true,
"requires": {

"is-extglob": "^2.1.1"

},

"is-number": {

"version": "7.0.0",

"resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",

"integrity": "sha512-
41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxx
ng==",

"dev": true

},

"ms": {

"version": "2.1.2",

"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",

"integrity": "sha512-
sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PE
aH2w==",

"dev": true

},

"normalize-path": {

"version": "3.0.0",

"resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",

"integrity": "sha512-
6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwc
wLA==",

"dev": true

},
"readdirp": {

"version": "3.5.0",

"resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz",

"integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0+
+njiyuDvc7OFY5T3ukvZ8qmFQ==",

"dev": true,

"requires": {

"picomatch": "^2.2.1"

},

"supports-color": {

"version": "7.2.0",

"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",

"integrity":
"sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR
9+OvwRw==",

"dev": true,

"requires": {

"has-flag": "^4.0.0"

},

"to-regex-range": {

"version": "5.0.1",

"resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",

"integrity": "sha512-
65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ=
=",
"dev": true,

"requires": {

"is-number": "^7.0.0"

},

"module-deps": {

"version": "6.2.3",

"resolved": "https://registry.npmjs.org/module-deps/-/module-deps-6.2.3.tgz",

"integrity": "sha512-
fg7OZaQBcL4/L+AK5f4iVqf9OMbCclXfy/znXRxTVhJSeW5AIlS9AwheYwDaXM3lVW7OBeaeUEY3gbaC6cLlS
A==",

"dev": true,

"requires": {

"JSONStream": "^1.0.3",

"browser-resolve": "^2.0.0",

"cached-path-relative": "^1.0.2",

"concat-stream": "~1.6.0",

"defined": "^1.0.0",

"detective": "^5.2.0",

"duplexer2": "^0.1.2",

"inherits": "^2.0.1",

"parents": "^1.0.0",

"readable-stream": "^2.0.2",

"resolve": "^1.4.0",
"stream-combiner2": "^1.1.1",

"subarg": "^1.0.0",

"through2": "^2.0.0",

"xtend": "^4.0.0"

},

"ms": {

"version": "2.0.0",

"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",

"integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",

"dev": true

},

"nanoid": {

"version": "3.1.12",

"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.12.tgz",

"integrity": "sha512-
1qstj9z5+x491jfiC4Nelk+f8XBad7LN20PmyWINJEMRSf3wcAjAWysw1qaA8z6NSKe2sjq1hRSDpBH5paCb6
A==",

"dev": true

},

"nanomatch": {

"version": "1.2.13",

"resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz",

"integrity": "sha1-uHqKpPwN6P5r6IiVs4mD/yZb0Rk=",

"dev": true,

"optional": 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,

"optional": 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,

"optional": true

},

"kind-of": {

"version": "6.0.3",

"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",

"integrity": "sha512-
dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456
hw==",

"dev": true,

"optional": true

},

"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,

"optional": 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

},

"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,

"optional": 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,

"optional": true,

"requires": {

"is-descriptor": "^0.1.0"

},

"object-inspect": {

"version": "1.8.0",

"resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.8.0.tgz",

"integrity": "sha512-
jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1g
A==",

"dev": true

},

"object-keys": {

"version": "1.1.1",

"resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",

"integrity": "sha512-
NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktIm
fhLA==",

"dev": true

},

"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,

"optional": 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,

"optional": true

},

"object.assign": {

"version": "4.1.1",

"resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.1.tgz",

"integrity": "sha512-
VT/cxmx5yaoHSOTSyrCygIDFco+RsibY2NM0a4RdEeY/4KgqezwFtK1yr3U67xYhqJSlASm2pKhLVzPj2lr4bA=
=",

"dev": true,

"requires": {

"define-properties": "^1.1.3",
"es-abstract": "^1.18.0-next.0",

"has-symbols": "^1.0.1",

"object-keys": "^1.1.1"

},

"dependencies": {

"es-abstract": {

"version": "1.18.0-next.1",

"resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0-next.1.tgz",

"integrity": "sha512-
I4UGspA0wpZXWENrdA0uHbnhte683t3qT/1VFH9aX2dA5PPSf6QW5HHXf5HImaqPmjXaVeVk4RGWnayl
mV7uAA==",

"dev": true,

"requires": {

"es-to-primitive": "^1.2.1",

"function-bind": "^1.1.1",

"has": "^1.0.3",

"has-symbols": "^1.0.1",

"is-callable": "^1.2.2",

"is-negative-zero": "^2.0.0",

"is-regex": "^1.1.1",

"object-inspect": "^1.8.0",

"object-keys": "^1.1.1",

"object.assign": "^4.1.1",

"string.prototype.trimend": "^1.0.1",

"string.prototype.trimstart": "^1.0.1"

}
}

},

"object.omit": {

"version": "2.0.1",

"resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz",

"integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=",

"dev": true,

"optional": 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,

"optional": 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,

"optional": true

},

"once": {

"version": "1.4.0",

"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",

"integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",

"dev": true,

"requires": {

"wrappy": "1"

},

"os-browserify": {

"version": "0.3.0",

"resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz",

"integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=",

"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=",

"dev": true

},

"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

},

"output-file-sync": {

"version": "1.1.2",

"resolved": "https://registry.npmjs.org/output-file-sync/-/output-file-sync-1.1.2.tgz",

"integrity": "sha1-0KM+7+YaIF+suQCS6CZZjVJFznY=",

"dev": true,

"requires": {

"graceful-fs": "^4.1.4",

"mkdirp": "^0.5.1",

"object-assign": "^4.1.0"

},

"p-limit": {

"version": "3.0.2",

"resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.0.2.tgz",
"integrity": "sha512-
iwqZSOoWIW+Ew4kAGUlN16J4M7OB3ysMLSZtnhmqx7njIHFPlxWBX8xo3lVTyFVq6mI/lL9qt2IsN1sHwaxJ
kg==",

"dev": true,

"requires": {

"p-try": "^2.0.0"

},

"p-locate": {

"version": "5.0.0",

"resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz",

"integrity": "sha512-LaNjtRWUBY+
+zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==",

"dev": true,

"requires": {

"p-limit": "^3.0.2"

},

"p-try": {

"version": "2.2.0",

"resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",

"integrity": "sha512-
R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw
6dQ==",

"dev": true

},

"pako": {
"version": "1.0.11",

"resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz",

"integrity": "sha512-
4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4t
aYw==",

"dev": true

},

"parents": {

"version": "1.0.1",

"resolved": "https://registry.npmjs.org/parents/-/parents-1.0.1.tgz",

"integrity": "sha1-/t1NK/GTp3dF/nHjcdc8MwfZx1E=",

"dev": true,

"requires": {

"path-platform": "~0.11.15"

},

"parse-asn1": {

"version": "5.1.6",

"resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz",

"integrity": "sha512-
RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstM
w==",

"dev": true,

"requires": {

"asn1.js": "^5.2.0",

"browserify-aes": "^1.0.0",

"evp_bytestokey": "^1.0.0",
"pbkdf2": "^3.0.3",

"safe-buffer": "^5.1.1"

},

"parse-glob": {

"version": "3.0.4",

"resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz",

"integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=",

"dev": true,

"optional": true,

"requires": {

"glob-base": "^0.3.0",

"is-dotfile": "^1.0.0",

"is-extglob": "^1.0.0",

"is-glob": "^2.0.0"

},

"pascalcase": {

"version": "0.1.1",

"resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz",

"integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=",

"dev": true,

"optional": true

},

"path-browserify": {
"version": "1.0.1",

"resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz",

"integrity": "sha512-
b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g=
=",

"dev": true

},

"path-exists": {

"version": "4.0.0",

"resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",

"integrity": "sha512-
ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4L
Wy7/w==",

"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=",

"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/xZJjzyxg3KBWO
zw==",

"dev": true
},

"path-platform": {

"version": "0.11.15",

"resolved": "https://registry.npmjs.org/path-platform/-/path-platform-0.11.15.tgz",

"integrity": "sha1-6GQhf3TDaFDwhSt43Hv31KVyG/I=",

"dev": true

},

"pathval": {

"version": "1.1.0",

"resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.0.tgz",

"integrity": "sha1-uULm1L3mUwBe9rcTYd74cn0GReA=",

"dev": true

},

"pbkdf2": {

"version": "3.1.1",

"resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.1.tgz",

"integrity": "sha512-
4Ejy1OPxi9f2tt1rRV7Go7zmfDQ+ZectEQz3VGUQhgq62HtIRPDyG/JtnwIxs6x3uNMwo2V7q1fMvKjb+Tnpq
g==",

"dev": true,

"requires": {

"create-hash": "^1.1.2",

"create-hmac": "^1.1.4",

"ripemd160": "^2.0.1",

"safe-buffer": "^5.0.1",

"sha.js": "^2.4.8"
}

},

"picomatch": {

"version": "2.2.2",

"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz",

"integrity": "sha512-
q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuW
g==",

"dev": true

},

"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,

"optional": true

},

"preserve": {

"version": "0.2.0",

"resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz",

"integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=",

"dev": true,

"optional": true

},

"private": {

"version": "0.1.8",
"resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz",

"integrity": "sha1-I4Hts2ifelPWUxkAYPz4ItLzaP8=",

"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": "sha1-eCDZsWEgzFXKmud5JoCufbptf+I=",

"dev": true

},

"public-encrypt": {

"version": "4.0.3",

"resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz",

"integrity": "sha512-
zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==
",

"dev": true,

"requires": {

"bn.js": "^4.1.0",

"browserify-rsa": "^4.0.0",
"create-hash": "^1.1.0",

"parse-asn1": "^5.0.0",

"randombytes": "^2.0.1",

"safe-buffer": "^5.1.2"

},

"dependencies": {

"bn.js": {

"version": "4.11.9",

"resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz",

"integrity": "sha512-
E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8z
Qaw==",

"dev": true

},

"punycode": {

"version": "1.4.1",

"resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",

"integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=",

"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": "sha1-t3bvxZN1mE42xTey9RofCv8Noe0=",

"dev": true,

"optional": 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": "sha1-ACbjf1RU1z41bf5lZGmYZ8an8P8=",

"dev": true,
"optional": true

},

"kind-of": {

"version": "6.0.3",

"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",

"integrity": "sha512-
dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456
hw==",

"dev": true,

"optional": true

},

"randombytes": {

"version": "2.1.0",

"resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz",

"integrity": "sha512-
vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68
amQ==",

"dev": true,

"requires": {

"safe-buffer": "^5.1.0"

},

"randomfill": {

"version": "1.0.4",

"resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz",
"integrity": "sha512-
87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBT
Lw==",

"dev": true,

"requires": {

"randombytes": "^2.0.5",

"safe-buffer": "^5.1.0"

},

"read-only-stream": {

"version": "2.0.0",

"resolved": "https://registry.npmjs.org/read-only-stream/-/read-only-stream-2.0.0.tgz",

"integrity": "sha1-JyT9aoET1zdkrCiNQ4YnDB2/F/A=",

"dev": true,

"requires": {

"readable-stream": "^2.0.2"

},

"readable-stream": {

"version": "2.3.6",

"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",

"integrity": "sha1-sRwn2IuP8fvgcGQ8+UsMea4bCq8=",

"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": "sha1-DodiKjMlqjPokihcr4tOhGUppSU=",

"dev": true,

"optional": 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,

"optional": 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,

"optional": true

},

"braces": {

"version": "2.3.2",

"resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz",

"integrity": "sha1-WXn9PxTNUxVl5fot8av/8d+u5yk=",

"dev": true,

"optional": 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,

"optional": 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,

"optional": 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,

"optional": 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,

"optional": 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,

"optional": 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,

"optional": 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,

"optional": 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,

"optional": 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+B0arnVG
3Hg==",

"dev": true,
"optional": 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": "sha1-cpyR4thXt6QZofmqZWhcTDP1hF0=",

"dev": true,

"optional": true

},

"extglob": {

"version": "2.0.4",

"resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz",

"integrity": "sha1-rQD+TcYSqSMuhxhxHcXLWrAoVUM=",

"dev": true,

"optional": 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,

"optional": 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,

"optional": 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,

"optional": 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,

"optional": 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": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=",

"dev": true,

"optional": 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": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=",

"dev": true,

"optional": 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": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=",

"dev": true,

"optional": 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,

"optional": 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,

"optional": 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,

"optional": true

},

"kind-of": {

"version": "6.0.3",

"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",

"integrity": "sha512-
dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456
hw==",

"dev": true,

"optional": true

},

"micromatch": {
"version": "3.1.10",

"resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz",

"integrity": "sha1-cIWbyVyYQJUvNZoGij/En57PrCM=",

"dev": true,

"optional": 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"

},

"regenerate": {

"version": "1.4.0",
"resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.0.tgz",

"integrity": "sha1-SoVuxLVuQHfFV1icroXnpMiGmhE=",

"dev": true

},

"regenerator-runtime": {

"version": "0.11.1",

"resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz",

"integrity": "sha1-vgWtf5v30i4Fb5cmzuUBf78Z4uk=",

"dev": true

},

"regenerator-transform": {

"version": "0.10.1",

"resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.10.1.tgz",

"integrity": "sha1-HkmWg3Ix2ot/PPQRTXG1aRoGgN0=",

"dev": true,

"requires": {

"babel-runtime": "^6.18.0",

"babel-types": "^6.19.0",

"private": "^0.1.6"

},

"regex-cache": {

"version": "0.4.4",

"resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz",

"integrity": "sha1-db3FiioUls7EihKDW8VMjVYjNt0=",
"dev": true,

"optional": 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": "sha1-H07OJ+ALC2XgJHpoEOaoXYOldSw=",

"dev": true,

"optional": 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

}
},

"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,

"optional": true

},

"repeat-element": {

"version": "1.1.3",

"resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz",

"integrity": "sha1-eC4NglwMWjuzlzH4Tv7mt0Lmsc4=",

"dev": true,

"optional": 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,

"optional": 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=",

"dev": true

},

"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+J3uCpfaiGF05e7B8W0iXbQH
mg==",

"dev": true

},

"resolve": {

"version": "1.18.1",

"resolved": "https://registry.npmjs.org/resolve/-/resolve-1.18.1.tgz",

"integrity": "sha512-
lDfCPaMKfOJXjy0dPayzPdF1phampNWr3qFCjAu+rw/qbQmr5jWH5xN2hwh9QKfw9E5v4hwV7A+jrCmL8y
jjqA==",

"dev": true,
"requires": {

"is-core-module": "^2.0.0",

"path-parse": "^1.0.6"

},

"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,

"optional": true

},

"ret": {

"version": "0.1.15",

"resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz",

"integrity": "sha1-uKSCXVvbH8P29Twrwz+BOIaBx7w=",

"dev": true,

"optional": true

},

"ripemd160": {

"version": "2.0.2",

"resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz",

"integrity": "sha512-
ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==
",

"dev": true,
"requires": {

"hash-base": "^3.0.0",

"inherits": "^2.0.1"

},

"safe-buffer": {

"version": "5.1.2",

"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",

"integrity": "sha1-mR7GnSluAxN0fVm9/St0XDX4go0=",

"dev": true

},

"safe-regex": {

"version": "1.1.0",

"resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz",

"integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=",

"dev": true,

"optional": 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

},

"serialize-javascript": {

"version": "5.0.1",

"resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-5.0.1.tgz",

"integrity": "sha512-
SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JS
PA==",

"dev": true,

"requires": {

"randombytes": "^2.1.0"

},

"set-blocking": {

"version": "2.0.0",

"resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",

"integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=",

"dev": true

},

"set-value": {

"version": "2.0.1",

"resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz",

"integrity": "sha1-oY1AUw5vB95CKMfe/kInr4ytAFs=",

"dev": true,
"optional": 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,

"optional": true,

"requires": {

"is-extendable": "^0.1.0"

},

"sha.js": {

"version": "2.4.11",

"resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz",

"integrity": "sha512-
QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0A
YqQ==",
"dev": true,

"requires": {

"inherits": "^2.0.1",

"safe-buffer": "^5.0.1"

},

"shasum-object": {

"version": "1.0.0",

"resolved": "https://registry.npmjs.org/shasum-object/-/shasum-object-1.0.0.tgz",

"integrity": "sha512-
Iqo5rp/3xVi6M4YheapzZhhGPVs0yZwHj7wvwQ1B9z8H6zk+FEnI7y3Teq7qwnekfEhu8WmG2z0z4iWZaxL
WVg==",

"dev": true,

"requires": {

"fast-safe-stringify": "^2.0.7"

},

"shell-quote": {

"version": "1.7.2",

"resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.2.tgz",

"integrity": "sha512-
mRz/m/JVscCrkMyPqHc/bczi3OQHkLTqXHEFu0zDhK/qfv3UcOA4SVmRCLmos4bhjr9ekVQubj/R7waKapm
iQg==",

"dev": true

},

"simple-concat": {

"version": "1.0.1",
"resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz",

"integrity": "sha512-
cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q=="
,

"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": "sha1-ZJIufFZbDhQgS6GqfWlkJ40lGC0=",

"dev": true,

"optional": 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,

"optional": 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,

"optional": 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": "sha1-bBdfhv8UvbByRWPo88GwIaKGhTs=",

"dev": true,

"optional": 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,

"optional": 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": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=",

"dev": true,

"optional": 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": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=",

"dev": true,

"optional": 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": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=",

"dev": true,

"optional": 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,

"optional": true

},

"kind-of": {

"version": "6.0.2",

"resolved": "",

"dev": true,

"optional": true

},

"snapdragon-util": {

"version": "3.0.1",

"resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz",

"integrity": "sha1-+VZHlIbyrNeXAGk/b3uAXkWrVuI=",

"dev": true,

"optional": true,
"requires": {

"kind-of": "^3.2.0"

},

"source-map": {

"version": "0.5.7",

"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",

"integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",

"dev": true

},

"source-map-resolve": {

"version": "0.5.2",

"resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz",

"integrity": "sha1-cuLMNAlVQ+Q7LGKyxMENSpBU8lk=",

"dev": true,

"optional": 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.4.18",

"resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz",

"integrity": "sha1-Aoam3ovkJkEzhZTpfM6nXwosWF8=",

"dev": true,

"requires": {

"source-map": "^0.5.6"

},

"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,

"optional": true

},

"split-string": {

"version": "3.1.0",

"resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz",

"integrity": "sha1-fLCd2jqGWFcFxks5pkZgOGguj+I=",

"dev": true,

"optional": 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=",

"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,

"optional": 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,

"optional": true,

"requires": {

"is-descriptor": "^0.1.0"
}

},

"stream-browserify": {

"version": "3.0.0",

"resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-3.0.0.tgz",

"integrity": "sha512-
H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA
==",

"dev": true,

"requires": {

"inherits": "~2.0.4",

"readable-stream": "^3.5.0"

},

"dependencies": {

"readable-stream": {

"version": "3.6.0",

"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",

"integrity": "sha512-
BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA
==",

"dev": true,

"requires": {

"inherits": "^2.0.3",

"string_decoder": "^1.1.1",

"util-deprecate": "^1.0.1"
}

},

"stream-combiner2": {

"version": "1.1.1",

"resolved": "https://registry.npmjs.org/stream-combiner2/-/stream-combiner2-1.1.1.tgz",

"integrity": "sha1-+02KFCDqNidk4hrUeAOXvry0HL4=",

"dev": true,

"requires": {

"duplexer2": "~0.1.0",

"readable-stream": "^2.0.2"

},

"stream-http": {

"version": "3.1.1",

"resolved": "https://registry.npmjs.org/stream-http/-/stream-http-3.1.1.tgz",

"integrity": "sha512-
S7OqaYu0EkFpgeGFb/NPOoPLxFko7TPqtEeFg5DXPB4v/KETHG0Ln6fRFrNezoelpaDKmycEmmZ81cC9DAw
gYg==",

"dev": true,

"requires": {

"builtin-status-codes": "^3.0.0",

"inherits": "^2.0.4",

"readable-stream": "^3.6.0",

"xtend": "^4.0.2"
},

"dependencies": {

"readable-stream": {

"version": "3.6.0",

"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",

"integrity": "sha512-
BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA
==",

"dev": true,

"requires": {

"inherits": "^2.0.3",

"string_decoder": "^1.1.1",

"util-deprecate": "^1.0.1"

},

"stream-splicer": {

"version": "2.0.1",

"resolved": "https://registry.npmjs.org/stream-splicer/-/stream-splicer-2.0.1.tgz",

"integrity": "sha512-
Xizh4/NPuYSyAXyT7g8IvdJ9HJpxIGL9PjyhtywCZvvP0OPIdqyrr4dMikeuvY8xahpdKEBlBTySe583totajg==",

"dev": true,

"requires": {

"inherits": "^2.0.1",

"readable-stream": "^2.0.2"

}
},

"string-width": {

"version": "2.1.1",

"resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",

"integrity": "sha512-
nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ug
kw==",

"dev": true,

"requires": {

"is-fullwidth-code-point": "^2.0.0",

"strip-ansi": "^4.0.0"

},

"dependencies": {

"ansi-regex": {

"version": "3.0.0",

"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",

"integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",

"dev": true

},

"strip-ansi": {

"version": "4.0.0",

"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",

"integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",

"dev": true,

"requires": {

"ansi-regex": "^3.0.0"
}

},

"string.prototype.trimend": {

"version": "1.0.2",

"resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-
1.0.2.tgz",

"integrity": "sha512-
8oAG/hi14Z4nOVP0z6mdiVZ/wqjDtWSLygMigTzAb+7aPEDTleeFf+WrF+alzecxIRkckkJVn+dTlwzJXORATw
==",

"dev": true,

"requires": {

"define-properties": "^1.1.3",

"es-abstract": "^1.18.0-next.1"

},

"dependencies": {

"es-abstract": {

"version": "1.18.0-next.1",

"resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0-next.1.tgz",

"integrity": "sha512-
I4UGspA0wpZXWENrdA0uHbnhte683t3qT/1VFH9aX2dA5PPSf6QW5HHXf5HImaqPmjXaVeVk4RGWnayl
mV7uAA==",

"dev": true,

"requires": {

"es-to-primitive": "^1.2.1",

"function-bind": "^1.1.1",
"has": "^1.0.3",

"has-symbols": "^1.0.1",

"is-callable": "^1.2.2",

"is-negative-zero": "^2.0.0",

"is-regex": "^1.1.1",

"object-inspect": "^1.8.0",

"object-keys": "^1.1.1",

"object.assign": "^4.1.1",

"string.prototype.trimend": "^1.0.1",

"string.prototype.trimstart": "^1.0.1"

},

"string.prototype.trimstart": {

"version": "1.0.2",

"resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-
1.0.2.tgz",

"integrity": "sha512-
7F6CdBTl5zyu30BJFdzSTlSlLPwODC23Od+iLoVH8X6+3fvDPPuBVVj9iaB1GOsSTSIgVfsfm27R2FGrAPznWg=
=",

"dev": true,

"requires": {

"define-properties": "^1.1.3",

"es-abstract": "^1.18.0-next.1"

},

"dependencies": {
"es-abstract": {

"version": "1.18.0-next.1",

"resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0-next.1.tgz",

"integrity": "sha512-
I4UGspA0wpZXWENrdA0uHbnhte683t3qT/1VFH9aX2dA5PPSf6QW5HHXf5HImaqPmjXaVeVk4RGWnayl
mV7uAA==",

"dev": true,

"requires": {

"es-to-primitive": "^1.2.1",

"function-bind": "^1.1.1",

"has": "^1.0.3",

"has-symbols": "^1.0.1",

"is-callable": "^1.2.2",

"is-negative-zero": "^2.0.0",

"is-regex": "^1.1.1",

"object-inspect": "^1.8.0",

"object-keys": "^1.1.1",

"object.assign": "^4.1.1",

"string.prototype.trimend": "^1.0.1",

"string.prototype.trimstart": "^1.0.1"

},

"string_decoder": {

"version": "1.1.1",
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",

"integrity": "sha1-nPFhG6YmhdcDCunkujQUnDrwP8g=",

"dev": true,

"requires": {

"safe-buffer": "~5.1.0"

},

"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-json-comments": {

"version": "3.1.1",

"resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",

"integrity": "sha512-
6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6l
Eig==",

"dev": true

},

"subarg": {

"version": "1.0.0",
"resolved": "https://registry.npmjs.org/subarg/-/subarg-1.0.0.tgz",

"integrity": "sha1-9izxdYHplrSPyWVpn1TAauJouNI=",

"dev": true,

"requires": {

"minimist": "^1.1.0"

},

"dependencies": {

"minimist": {

"version": "1.2.5",

"resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",

"integrity": "sha512-
FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcg
IXLw==",

"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

},

"syntax-error": {

"version": "1.4.0",

"resolved": "https://registry.npmjs.org/syntax-error/-/syntax-error-1.4.0.tgz",
"integrity": "sha512-
YPPlu67mdnHGTup2A8ff7BC2Pjq0e0Yp/IyTFN03zWO0RcK07uLcbi7C2KpGR2FvWbaB0+bfE27a+sBKebSo
7w==",

"dev": true,

"requires": {

"acorn-node": "^1.2.0"

},

"through": {

"version": "2.3.8",

"resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",

"integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=",

"dev": true

},

"through2": {

"version": "2.0.5",

"resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz",

"integrity":
"sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc
4YKni5rYSQ==",

"dev": true,

"requires": {

"readable-stream": "~2.3.6",

"xtend": "~4.0.1"

},

"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-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,

"optional": 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": "sha1-E8/dmzNlUvMLUfM6iuG0Knp1mc4=",

"dev": true,

"optional": 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,

"optional": 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,

"optional": true,

"requires": {

"kind-of": "^3.0.2"

},

"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

},

"tty-browserify": {

"version": "0.0.1",

"resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.1.tgz",

"integrity": "sha512-
C3TaO7K81YvjCgQH9Q1S3R3P3BtN3RIM8n+OvX4il1K1zgE8ZhI0op7kClgkxtutIE8hQrcrHBXvIheqKUUCxw
==",

"dev": true

},

"type-detect": {

"version": "4.0.8",
"resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz",

"integrity": "sha1-dkb7XxiHHPu3dJ5pvTmmOI63RQw=",

"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.11.3",

"resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.11.3.tgz",

"integrity":
"sha512-wDRziHG94mNj2n3R864CvYw/+pc9y/RNImiTyrrf8BzgWn75JgFSwYvXrtZQMnMnOp/4UTrf3iCSQ
xSStPiByA==",

"dev": true

},

"umd": {

"version": "3.0.3",

"resolved": "https://registry.npmjs.org/umd/-/umd-3.0.3.tgz",

"integrity": "sha512-
4IcGSufhFshvLNcMCV80UnQVlZ5pMOC8mvNPForqwA4+lzYQuetTESLDQkeLmihq8bRcnpbQa48Wb8Lh16
/xow==",

"dev": true

},

"undeclared-identifiers": {
"version": "1.1.3",

"resolved": "https://registry.npmjs.org/undeclared-identifiers/-/undeclared-identifiers-1.1.3.tgz",

"integrity": "sha512-
pJOW4nxjlmfwKApE4zvxLScM/njmwj/DiUBv7EabwE4O8kRUy+HIwxQtZLBPll/jx1LJyBcqNfB3/cpv9EZwOw
==",

"dev": true,

"requires": {

"acorn-node": "^1.3.0",

"dash-ast": "^1.0.0",

"get-assigned-identifiers": "^1.2.0",

"simple-concat": "^1.0.0",

"xtend": "^4.0.1"

},

"union-value": {

"version": "1.0.1",

"resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz",

"integrity": "sha1-C2/nuDWuzaYcbqTU8CwUIh4QmEc=",

"dev": true,

"optional": 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,

"optional": 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,

"optional": 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,

"optional": 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,

"optional": true

},

"isobject": {

"version": "3.0.1",

"resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",

"integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",

"dev": true,

"optional": true

}
}

},

"urix": {

"version": "0.1.0",

"resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz",

"integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=",

"dev": true,

"optional": true

},

"url": {

"version": "0.11.0",

"resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz",

"integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=",

"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": "sha1-1QyMrHmhn7wg8pEfVuuXP04QBw8=",

"dev": true,

"optional": 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.12.3",

"resolved": "https://registry.npmjs.org/util/-/util-0.12.3.tgz",

"integrity": "sha512-
I8XkoQwE+fPQEhy9v012V+TSdH2kp9ts29i20TaaDUXsg7x/onePbhFJUExBfv/2ay1ZOp/Vsm3nDlmnFGSAo
g==",

"dev": true,

"requires": {

"inherits": "^2.0.3",

"is-arguments": "^1.0.4",

"is-generator-function": "^1.0.7",
"is-typed-array": "^1.1.3",

"safe-buffer": "^5.1.2",

"which-typed-array": "^1.1.2"

},

"util-deprecate": {

"version": "1.0.2",

"resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",

"integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=",

"dev": true

},

"v8flags": {

"version": "2.1.1",

"resolved": "https://registry.npmjs.org/v8flags/-/v8flags-2.1.1.tgz",

"integrity": "sha1-qrGh+jDUX4jdMhFIh1rALAtV5bQ=",

"dev": true,

"requires": {

"user-home": "^1.1.1"

},

"vm-browserify": {

"version": "1.1.2",

"resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz",

"integrity": "sha512-
2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10L
Hkl0lAQ==",
"dev": true

},

"which": {

"version": "2.0.2",

"resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",

"integrity": "sha512-
BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNM
jibA==",

"dev": true,

"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=",

"dev": true

},

"which-typed-array": {

"version": "1.1.2",

"resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.2.tgz",

"integrity": "sha512-
KT6okrd1tE6JdZAy3o2VhMoYPh3+J6EMZLyrxBQsZflI1QCZIxMrIYLkosd8Twf+YfknVIHmYQPgJt238p8dnQ=
=",

"dev": true,

"requires": {
"available-typed-arrays": "^1.0.2",

"es-abstract": "^1.17.5",

"foreach": "^2.0.5",

"function-bind": "^1.1.1",

"has-symbols": "^1.0.1",

"is-typed-array": "^1.1.3"

},

"wide-align": {

"version": "1.1.3",

"resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz",

"integrity": "sha512-
QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i
51YigihA==",

"dev": true,

"requires": {

"string-width": "^1.0.2 || 2"

},

"workerpool": {

"version": "6.0.2",

"resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.0.2.tgz",

"integrity": "sha512-
DSNyvOpFKrNusaaUwk+ej6cBj1bmhLcBfj80elGk+ZIo5JSkq+unB1dLKEOcNfJDZgjGICfhQ0Q5TbP0PvF4+Q=
=",

"dev": true

},
"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
==",

"dev": true,

"requires": {

"ansi-styles": "^3.2.0",

"string-width": "^3.0.0",

"strip-ansi": "^5.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/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4r
ondg==",

"dev": true

},

"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+r5
qA==",

"dev": true,
"requires": {

"color-convert": "^1.9.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/IuDGALsNVb
Gg==",

"dev": true,

"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=",

"dev": true

},

"string-width": {

"version": "3.1.0",

"resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",

"integrity": "sha512-
vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1
w==",
"dev": true,

"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==",

"dev": true,

"requires": {

"ansi-regex": "^4.1.0"

},

"wrappy": {

"version": "1.0.2",

"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",

"integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",

"dev": true

},
"xtend": {

"version": "4.0.2",

"resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",

"integrity": "sha512-
LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTA
EQ==",

"dev": true

},

"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
==",

"dev": true

},

"yargs": {

"version": "13.3.2",

"resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz",

"integrity": "sha512-
AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpW
XUw==",

"dev": true,

"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.2"

},

"dependencies": {

"ansi-regex": {

"version": "4.1.0",

"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",

"integrity": "sha512-
1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4r
ondg==",

"dev": true

},

"find-up": {

"version": "3.0.0",

"resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",

"integrity": "sha512-
1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg
==",

"dev": true,

"requires": {

"locate-path": "^3.0.0"

},
"locate-path": {

"version": "3.0.0",

"resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",

"integrity": "sha512-
7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsre
c1G65A==",

"dev": true,

"requires": {

"p-locate": "^3.0.0",

"path-exists": "^3.0.0"

},

"p-limit": {

"version": "2.3.0",

"resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",

"integrity":
"sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfck
AIqEaVGUDxb6w==",

"dev": true,

"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/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulS
Q==",

"dev": true,

"requires": {

"p-limit": "^2.0.0"

},

"path-exists": {

"version": "3.0.0",

"resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",

"integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",

"dev": true

},

"string-width": {

"version": "3.1.0",

"resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",

"integrity": "sha512-
vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1
w==",

"dev": true,

"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==",

"dev": true,

"requires": {

"ansi-regex": "^4.1.0"

},

"yargs-parser": {

"version": "13.1.2",

"resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz",

"integrity": "sha512-
3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbz
g==",

"dev": true,

"requires": {

"camelcase": "^5.0.0",

"decamelize": "^1.2.0"

},

"yargs-unparser": {

"version": "2.0.0",
"resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz",

"integrity": "sha512-
7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzO
A==",

"dev": true,

"requires": {

"camelcase": "^6.0.0",

"decamelize": "^4.0.0",

"flat": "^5.0.2",

"is-plain-obj": "^2.1.0"

},

"dependencies": {

"camelcase": {

"version": "6.1.0",

"resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.1.0.tgz",

"integrity": "sha512-
WCMml9ivU60+8rEJgELlFp1gxFcEGxwYleE3bziHEDeqsqAWGHdimB7beBFGjLzVNgPGyDsfgXLQEYMpmIF
nVQ==",

"dev": true

},

"decamelize": {

"version": "4.0.0",

"resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz",

"integrity": "sha512-
9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ
==",

"dev": true

}
}

if (mykad.isValid(icNum)) {

// e.g.

// mykad.format(icNum);

// mykad.unformat(icNum);

// mykad.parse(icNum);

['male', 'female'] {

region: 'NORTH_AMERICA',

country: 'CA|GL|AN|PM|US',

state: null

['SOUTHEAST_ASIA', 'BRITISH_ISLES', 'SOVIET_REPUBLIC', 'EAST_ASIA', 'SOUTH_ASIA', 'AFRICA',


'SOUTH_AMERICA', 'CENTRAL_AMERICA', 'OCEANIA', 'MIDDLE_EAST', 'EUROPE', 'MIDDLE_AMERICA',
'MISCELLANEOUS']

['FOREIGN_UNKNOWN', 'STATELESS', 'UNSPECIFIED']

['JHR', 'KDH', 'KTN', 'MLK', 'NSN', 'PHG', 'PNG', 'PRK', 'PLS', 'SBH', 'SWK', 'SGR', 'TRG', 'KUL', 'LBN', 'PJY',
'UNKNOWN_STATE'] {

birthDate: new Date(1989, 6, 24),

birthPlace: {

region: 'SOUTHEAST_ASIA',

country: 'MY',

state: 'JHR'

},
gender: 'female'

}{

birthDate: new Date(1989, 6, 24),

birthPlace: {

region: 'SOUTHEAST_ASIA',

country: 'MY',

state: 'JHR'

},

gender: 'female'

mykad.parse('890724-01-2498', (err, data) => {

if (err) throw err;

console.log(data);

});

// Synchronous

try {

const data = mykad.parse('890724-01-2498');

console.log(data);

} catch (error) {

throw error;

}<

script src = "browser/mykad.min.js" > < /script>

if (mykad.isValid('560224108354')) {

console.log('Valid MyKad number');


}

if (mykad.isValid('560224-10-8354')) {

console.log('Also valid...');

// Not valid. Invalid date of birth and place of birth code.

mykad.isValid('561372-70-7953')

mykad.format('111013018934', (err, formatted) => {

if (err) throw error;

console.log(formatted); // 111013-01-8934

});

// Synchronous

try {

const formatted = mykad.format('111013018934');

console.log(formatted); // 111013-01-8934

} catch (error) {

throw error;

mykad.unformat('111013-01-8934', (err, unformatted) => {

if (err) throw error;

console.log(unformatted); // 111013018934

});
// Synchronous

try {

const unformatted = mykad.unformat('111013-01-8934');

console.log(unformatted); // 111013018934

} catch (error) {

throw error;

const randomIcNum = mykad.generateRandom();

console.log(randomIcNum);

// Asynchronous

mykad.parse('890724-01-2498', (err, data) => {

if (err) throw err;

console.log(data);

});

// Synchronous

try {

const data = mykad.parse('890724-01-2498');

console.log(data);

} catch (error) {

throw error;

}: {

birthDate: new Date(1989, 6, 24),

birthPlace: {

region: 'SOUTHEAST_ASIA',
country: 'MY',

state: 'JHR'

},

gender: 'female'

You might also like