From 24cc435e25a1f9310ee14f763516396883533d1c Mon Sep 17 00:00:00 2001 From: Konstantin Burkalev Date: Fri, 1 Nov 2019 20:58:35 +0200 Subject: [PATCH] Built 5.0.1 version --- dist/constants.js | 2 +- dist/constants.js.map | 2 +- dist/msgpacksrlzrbrowser.js | 9 + dist/msgpacksrlzrbrowser.js.map | 1 + dist/serializers/JsonSerializer.js.map | 2 +- dist/serializers/MsgpackSerializer.js.map | 2 +- dist/utils.js.map | 2 +- dist/wampy.js | 6 +- dist/wampy.js.map | 2 +- package-lock.json | 7468 +++++++++++++++++++++ package.json | 2 +- 11 files changed, 7487 insertions(+), 11 deletions(-) create mode 100644 dist/msgpacksrlzrbrowser.js create mode 100644 dist/msgpacksrlzrbrowser.js.map create mode 100644 package-lock.json diff --git a/dist/constants.js b/dist/constants.js index 33d644e..76383f4 100644 --- a/dist/constants.js +++ b/dist/constants.js @@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); -var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol ? "symbol" : typeof obj; }; +var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; var WAMP_MSG_SPEC = exports.WAMP_MSG_SPEC = { HELLO: 1, diff --git a/dist/constants.js.map b/dist/constants.js.map index dbccf71..7762f8e 100644 --- a/dist/constants.js.map +++ b/dist/constants.js.map @@ -1 +1 @@ -{"version":3,"sources":["../src/constants.js"],"names":[],"mappings":";;;;;;;;AAAO,IAAM,wCAAgB;AACzB,WAAO,CADkB;AAEzB,aAAS,CAFgB;AAGzB,WAAO,CAHkB;AAIzB,eAAW,CAJc;AAKzB,kBAAc,CALW;AAMzB,aAAS,CANgB;AAOzB,WAAO,CAPkB;AAQzB,aAAS,EARgB;AASzB,eAAW,EATc;AAUzB,eAAW,EAVc;AAWzB,gBAAY,EAXa;AAYzB,iBAAa,EAZY;AAazB,kBAAc,EAbW;AAczB,WAAO,EAdkB;AAezB,UAAM,EAfmB;AAgBzB,YAAQ,EAhBiB;AAiBzB,YAAQ,EAjBiB;AAkBzB,cAAU,EAlBe;AAmBzB,gBAAY,EAnBa;AAoBzB,gBAAY,EApBa;AAqBzB,kBAAc,EArBW;AAsBzB,gBAAY,EAtBa;AAuBzB,eAAW,EAvBc;AAwBzB,WAAO;AAxBkB,CAAtB;;AA2BA,IAAM,0CAAiB;AAC1B,aAAS;AACL,cAAM,CADD;AAEL,qBAAa;AAFR,KADiB;AAK1B,eAAW;AACP,cAAM,CADC;AAEP,qBAAa;AAFN,KALe;AAS1B,eAAW;AACP,cAAM,CADC;AAEP,qBAAa;AAFN,KATe;AAa1B,sBAAkB;AACd,cAAM,CADQ;AAEd,qBAAa;AAFC,KAbQ;AAiB1B,mBAAe;AACX,cAAM,CADK;AAEX,qBAAa;AAFF,KAjBW;AAqB1B,2BAAuB;AACnB,cAAM,CADa;AAEnB,qBAAa;AAFM,KArBG;AAyB1B,eAAW;AACP,cAAM,EADC;AAEP,qBAAa;AAFN,KAzBe;AA6B1B,4BAAwB;AACpB,cAAM,EADc;AAEpB,qBAAa;AAFO,KA7BE;AAiC1B,yBAAqB;AACjB,cAAM,EADW;AAEjB,qBAAa;AAFI,KAjCK;AAqC1B,8BAA0B;AACtB,cAAM,EADgB;AAEtB,qBAAa;AAFS,KArCA;AAyC1B,0BAAsB;AAClB,cAAM,EADY;AAElB,qBAAa;AAFK,KAzCI;AA6C1B,cAAU;AACN,cAAM,EADA;AAEN,qBAAa;AAFP,KA7CgB;AAiD1B,kBAAc;AACV,cAAM,EADI;AAEV,qBAAa;AAFH,KAjDY;AAqD1B,qBAAiB;AACb,cAAM,EADO;AAEb,qBAAa;AAFA,KArDS;AAyD1B,mBAAe;AACX,cAAM,EADK;AAEX,qBAAa;AAFF;AAzDW,CAAvB;;AA+DA,IAAM,sDAAuB,CAAC,MAAD,EAAS,aAAT,CAA7B;;AAEA,IAAM,0BAAU,QAAO,OAAP,yCAAO,OAAP,OAAmB,QAAnB,IAA+B,OAAO,SAAP,CAAiB,QAAjB,CAA0B,IAA1B,CAA+B,OAA/B,MAA4C,kBAA3F","file":"constants.js","sourcesContent":["export const WAMP_MSG_SPEC = {\n HELLO: 1,\n WELCOME: 2,\n ABORT: 3,\n CHALLENGE: 4,\n AUTHENTICATE: 5,\n GOODBYE: 6,\n ERROR: 8,\n PUBLISH: 16,\n PUBLISHED: 17,\n SUBSCRIBE: 32,\n SUBSCRIBED: 33,\n UNSUBSCRIBE: 34,\n UNSUBSCRIBED: 35,\n EVENT: 36,\n CALL: 48,\n CANCEL: 49,\n RESULT: 50,\n REGISTER: 64,\n REGISTERED: 65,\n UNREGISTER: 66,\n UNREGISTERED: 67,\n INVOCATION: 68,\n INTERRUPT: 69,\n YIELD: 70\n};\n\nexport const WAMP_ERROR_MSG = {\n SUCCESS: {\n code: 0,\n description: 'Success!'\n },\n URI_ERROR: {\n code: 1,\n description: 'Topic URI doesn\\'t meet requirements!'\n },\n NO_BROKER: {\n code: 2,\n description: 'Server doesn\\'t provide broker role!'\n },\n NO_CALLBACK_SPEC: {\n code: 3,\n description: 'No required callback function specified!'\n },\n INVALID_PARAM: {\n code: 4,\n description: 'Invalid parameter(s) specified!'\n },\n NON_EXIST_UNSUBSCRIBE: {\n code: 7,\n description: 'Trying to unsubscribe from non existent subscription!'\n },\n NO_DEALER: {\n code: 12,\n description: 'Server doesn\\'t provide dealer role!'\n },\n RPC_ALREADY_REGISTERED: {\n code: 15,\n description: 'RPC already registered!'\n },\n NON_EXIST_RPC_UNREG: {\n code: 17,\n description: 'Received rpc unregistration for non existent rpc!'\n },\n NON_EXIST_RPC_INVOCATION: {\n code: 19,\n description: 'Received invocation for non existent rpc!'\n },\n NON_EXIST_RPC_REQ_ID: {\n code: 20,\n description: 'No RPC calls in action with specified request ID!'\n },\n NO_REALM: {\n code: 21,\n description: 'No realm specified!'\n },\n NO_WS_OR_URL: {\n code: 22,\n description: 'No websocket provided or URL specified is incorrect!'\n },\n NO_CRA_CB_OR_ID: {\n code: 23,\n description: 'No onChallenge callback or authid was provided for authentication!'\n },\n CRA_EXCEPTION: {\n code: 24,\n description: 'Exception raised during CRA challenge processing'\n }\n};\n\nexport const ALLOWED_BINARY_TYPES = ['blob', 'arraybuffer'];\n\nexport const isNode = (typeof process === 'object' && Object.prototype.toString.call(process) === '[object process]');\n"]} \ No newline at end of file +{"version":3,"sources":["../src/constants.js"],"names":["WAMP_MSG_SPEC","HELLO","WELCOME","ABORT","CHALLENGE","AUTHENTICATE","GOODBYE","ERROR","PUBLISH","PUBLISHED","SUBSCRIBE","SUBSCRIBED","UNSUBSCRIBE","UNSUBSCRIBED","EVENT","CALL","CANCEL","RESULT","REGISTER","REGISTERED","UNREGISTER","UNREGISTERED","INVOCATION","INTERRUPT","YIELD","WAMP_ERROR_MSG","SUCCESS","code","description","URI_ERROR","NO_BROKER","NO_CALLBACK_SPEC","INVALID_PARAM","NON_EXIST_UNSUBSCRIBE","NO_DEALER","RPC_ALREADY_REGISTERED","NON_EXIST_RPC_UNREG","NON_EXIST_RPC_INVOCATION","NON_EXIST_RPC_REQ_ID","NO_REALM","NO_WS_OR_URL","NO_CRA_CB_OR_ID","CRA_EXCEPTION","ALLOWED_BINARY_TYPES","isNode","process","Object","prototype","toString","call"],"mappings":";;;;;;;;AAAO,IAAMA,wCAAgB;AACzBC,WAAO,CADkB;AAEzBC,aAAS,CAFgB;AAGzBC,WAAO,CAHkB;AAIzBC,eAAW,CAJc;AAKzBC,kBAAc,CALW;AAMzBC,aAAS,CANgB;AAOzBC,WAAO,CAPkB;AAQzBC,aAAS,EARgB;AASzBC,eAAW,EATc;AAUzBC,eAAW,EAVc;AAWzBC,gBAAY,EAXa;AAYzBC,iBAAa,EAZY;AAazBC,kBAAc,EAbW;AAczBC,WAAO,EAdkB;AAezBC,UAAM,EAfmB;AAgBzBC,YAAQ,EAhBiB;AAiBzBC,YAAQ,EAjBiB;AAkBzBC,cAAU,EAlBe;AAmBzBC,gBAAY,EAnBa;AAoBzBC,gBAAY,EApBa;AAqBzBC,kBAAc,EArBW;AAsBzBC,gBAAY,EAtBa;AAuBzBC,eAAW,EAvBc;AAwBzBC,WAAO;AAxBkB,CAAtB;;AA2BA,IAAMC,0CAAiB;AAC1BC,aAAS;AACLC,cAAM,CADD;AAELC,qBAAa;AAFR,KADiB;AAK1BC,eAAW;AACPF,cAAM,CADC;AAEPC,qBAAa;AAFN,KALe;AAS1BE,eAAW;AACPH,cAAM,CADC;AAEPC,qBAAa;AAFN,KATe;AAa1BG,sBAAkB;AACdJ,cAAM,CADQ;AAEdC,qBAAa;AAFC,KAbQ;AAiB1BI,mBAAe;AACXL,cAAM,CADK;AAEXC,qBAAa;AAFF,KAjBW;AAqB1BK,2BAAuB;AACnBN,cAAM,CADa;AAEnBC,qBAAa;AAFM,KArBG;AAyB1BM,eAAW;AACPP,cAAM,EADC;AAEPC,qBAAa;AAFN,KAzBe;AA6B1BO,4BAAwB;AACpBR,cAAM,EADc;AAEpBC,qBAAa;AAFO,KA7BE;AAiC1BQ,yBAAqB;AACjBT,cAAM,EADW;AAEjBC,qBAAa;AAFI,KAjCK;AAqC1BS,8BAA0B;AACtBV,cAAM,EADgB;AAEtBC,qBAAa;AAFS,KArCA;AAyC1BU,0BAAsB;AAClBX,cAAM,EADY;AAElBC,qBAAa;AAFK,KAzCI;AA6C1BW,cAAU;AACNZ,cAAM,EADA;AAENC,qBAAa;AAFP,KA7CgB;AAiD1BY,kBAAc;AACVb,cAAM,EADI;AAEVC,qBAAa;AAFH,KAjDY;AAqD1Ba,qBAAiB;AACbd,cAAM,EADO;AAEbC,qBAAa;AAFA,KArDS;AAyD1Bc,mBAAe;AACXf,cAAM,EADK;AAEXC,qBAAa;AAFF;AAzDW,CAAvB;;AA+DA,IAAMe,sDAAuB,CAAC,MAAD,EAAS,aAAT,CAA7B;;AAEA,IAAMC,0BAAU,QAAOC,OAAP,yCAAOA,OAAP,OAAmB,QAAnB,IAA+BC,OAAOC,SAAP,CAAiBC,QAAjB,CAA0BC,IAA1B,CAA+BJ,OAA/B,MAA4C,kBAA3F","file":"constants.js","sourcesContent":["export const WAMP_MSG_SPEC = {\n HELLO: 1,\n WELCOME: 2,\n ABORT: 3,\n CHALLENGE: 4,\n AUTHENTICATE: 5,\n GOODBYE: 6,\n ERROR: 8,\n PUBLISH: 16,\n PUBLISHED: 17,\n SUBSCRIBE: 32,\n SUBSCRIBED: 33,\n UNSUBSCRIBE: 34,\n UNSUBSCRIBED: 35,\n EVENT: 36,\n CALL: 48,\n CANCEL: 49,\n RESULT: 50,\n REGISTER: 64,\n REGISTERED: 65,\n UNREGISTER: 66,\n UNREGISTERED: 67,\n INVOCATION: 68,\n INTERRUPT: 69,\n YIELD: 70\n};\n\nexport const WAMP_ERROR_MSG = {\n SUCCESS: {\n code: 0,\n description: 'Success!'\n },\n URI_ERROR: {\n code: 1,\n description: 'Topic URI doesn\\'t meet requirements!'\n },\n NO_BROKER: {\n code: 2,\n description: 'Server doesn\\'t provide broker role!'\n },\n NO_CALLBACK_SPEC: {\n code: 3,\n description: 'No required callback function specified!'\n },\n INVALID_PARAM: {\n code: 4,\n description: 'Invalid parameter(s) specified!'\n },\n NON_EXIST_UNSUBSCRIBE: {\n code: 7,\n description: 'Trying to unsubscribe from non existent subscription!'\n },\n NO_DEALER: {\n code: 12,\n description: 'Server doesn\\'t provide dealer role!'\n },\n RPC_ALREADY_REGISTERED: {\n code: 15,\n description: 'RPC already registered!'\n },\n NON_EXIST_RPC_UNREG: {\n code: 17,\n description: 'Received rpc unregistration for non existent rpc!'\n },\n NON_EXIST_RPC_INVOCATION: {\n code: 19,\n description: 'Received invocation for non existent rpc!'\n },\n NON_EXIST_RPC_REQ_ID: {\n code: 20,\n description: 'No RPC calls in action with specified request ID!'\n },\n NO_REALM: {\n code: 21,\n description: 'No realm specified!'\n },\n NO_WS_OR_URL: {\n code: 22,\n description: 'No websocket provided or URL specified is incorrect!'\n },\n NO_CRA_CB_OR_ID: {\n code: 23,\n description: 'No onChallenge callback or authid was provided for authentication!'\n },\n CRA_EXCEPTION: {\n code: 24,\n description: 'Exception raised during CRA challenge processing'\n }\n};\n\nexport const ALLOWED_BINARY_TYPES = ['blob', 'arraybuffer'];\n\nexport const isNode = (typeof process === 'object' && Object.prototype.toString.call(process) === '[object process]');\n"]} \ No newline at end of file diff --git a/dist/msgpacksrlzrbrowser.js b/dist/msgpacksrlzrbrowser.js new file mode 100644 index 0000000..bc0ca31 --- /dev/null +++ b/dist/msgpacksrlzrbrowser.js @@ -0,0 +1,9 @@ +'use strict'; + +var _MsgpackSerializer = require('./serializers/MsgpackSerializer'); + +window.MsgpackSerializer = _MsgpackSerializer.MsgpackSerializer; /** + * Wrapper for browser usage of MsgpackSerializer + * Set window global variable + **/ +//# sourceMappingURL=msgpacksrlzrbrowser.js.map diff --git a/dist/msgpacksrlzrbrowser.js.map b/dist/msgpacksrlzrbrowser.js.map new file mode 100644 index 0000000..e432087 --- /dev/null +++ b/dist/msgpacksrlzrbrowser.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../src/msgpacksrlzrbrowser.js"],"names":["window","MsgpackSerializer"],"mappings":";;AAIA;;AACAA,OAAOC,iBAAP,GAA2BA,oCAA3B,C,CALA","file":"msgpacksrlzrbrowser.js","sourcesContent":["/**\n * Wrapper for browser usage of MsgpackSerializer\n * Set window global variable\n **/\nimport { MsgpackSerializer } from './serializers/MsgpackSerializer';\nwindow.MsgpackSerializer = MsgpackSerializer;\n"]} \ No newline at end of file diff --git a/dist/serializers/JsonSerializer.js.map b/dist/serializers/JsonSerializer.js.map index 78b4edf..0d7dc52 100644 --- a/dist/serializers/JsonSerializer.js.map +++ b/dist/serializers/JsonSerializer.js.map @@ -1 +1 @@ -{"version":3,"sources":["../../src/serializers/JsonSerializer.js"],"names":[],"mappings":";;;;;;;;;;IAAa,c,WAAA,c;AAET,8BAAe;AAAA;;AACX,aAAK,QAAL,GAAgB,MAAhB;AACA,aAAK,UAAL,GAAkB,MAAlB;AACH;;;;+BAEO,I,EAAM;AACV,mBAAO,KAAK,SAAL,CAAe,IAAf,CAAP;AACH;;;+BAEO,I,EAAM;AACV,mBAAO,KAAK,KAAL,CAAW,IAAX,CAAP;AACH","file":"JsonSerializer.js","sourcesContent":["export class JsonSerializer {\n\n constructor () {\n this.protocol = 'json';\n this.binaryType = 'blob';\n }\n\n encode (data) {\n return JSON.stringify(data);\n }\n\n decode (data) {\n return JSON.parse(data);\n }\n}\n"]} \ No newline at end of file +{"version":3,"sources":["../../src/serializers/JsonSerializer.js"],"names":["JsonSerializer","protocol","binaryType","data","JSON","stringify","parse"],"mappings":";;;;;;;;;;IAAaA,c,WAAAA,c;AAET,8BAAe;AAAA;;AACX,aAAKC,QAAL,GAAgB,MAAhB;AACA,aAAKC,UAAL,GAAkB,MAAlB;AACH;;;;+BAEOC,I,EAAM;AACV,mBAAOC,KAAKC,SAAL,CAAeF,IAAf,CAAP;AACH;;;+BAEOA,I,EAAM;AACV,mBAAOC,KAAKE,KAAL,CAAWH,IAAX,CAAP;AACH","file":"JsonSerializer.js","sourcesContent":["export class JsonSerializer {\n\n constructor () {\n this.protocol = 'json';\n this.binaryType = 'blob';\n }\n\n encode (data) {\n return JSON.stringify(data);\n }\n\n decode (data) {\n return JSON.parse(data);\n }\n}\n"]} \ No newline at end of file diff --git a/dist/serializers/MsgpackSerializer.js.map b/dist/serializers/MsgpackSerializer.js.map index f12d290..90e9bef 100644 --- a/dist/serializers/MsgpackSerializer.js.map +++ b/dist/serializers/MsgpackSerializer.js.map @@ -1 +1 @@ -{"version":3,"sources":["../../src/serializers/MsgpackSerializer.js"],"names":[],"mappings":";;;;;;;;;AAAA;;;;;;;;AAEA,IAAM,UAAU,wBAAhB;;IAEa,iB,WAAA,iB;AACT,iCAAe;AAAA;;AACX,aAAK,QAAL,GAAgB,SAAhB;AACA,aAAK,UAAL,GAAkB,aAAlB;AACH;;;;+BAEO,I,EAAM;AACV,mBAAO,QAAQ,MAAR,CAAe,IAAf,CAAP;AACH;;;+BAEO,I,EAAM;AACV,mBAAO,QAAQ,MAAR,CAAe,IAAI,UAAJ,CAAe,IAAf,CAAf,CAAP;AACH","file":"MsgpackSerializer.js","sourcesContent":["import msgpack5 from 'msgpack5';\n\nconst msgpack = msgpack5();\n\nexport class MsgpackSerializer {\n constructor () {\n this.protocol = 'msgpack';\n this.binaryType = 'arraybuffer';\n }\n\n encode (data) {\n return msgpack.encode(data);\n }\n\n decode (data) {\n return msgpack.decode(new Uint8Array(data));\n }\n}\n"]} \ No newline at end of file +{"version":3,"sources":["../../src/serializers/MsgpackSerializer.js"],"names":["msgpack","MsgpackSerializer","protocol","binaryType","data","encode","decode","Uint8Array"],"mappings":";;;;;;;;;AAAA;;;;;;;;AAEA,IAAMA,UAAU,wBAAhB;;IAEaC,iB,WAAAA,iB;AACT,iCAAe;AAAA;;AACX,aAAKC,QAAL,GAAgB,SAAhB;AACA,aAAKC,UAAL,GAAkB,aAAlB;AACH;;;;+BAEOC,I,EAAM;AACV,mBAAOJ,QAAQK,MAAR,CAAeD,IAAf,CAAP;AACH;;;+BAEOA,I,EAAM;AACV,mBAAOJ,QAAQM,MAAR,CAAe,IAAIC,UAAJ,CAAeH,IAAf,CAAf,CAAP;AACH","file":"MsgpackSerializer.js","sourcesContent":["import msgpack5 from 'msgpack5';\n\nconst msgpack = msgpack5();\n\nexport class MsgpackSerializer {\n constructor () {\n this.protocol = 'msgpack';\n this.binaryType = 'arraybuffer';\n }\n\n encode (data) {\n return msgpack.encode(data);\n }\n\n decode (data) {\n return msgpack.decode(new Uint8Array(data));\n }\n}\n"]} \ No newline at end of file diff --git a/dist/utils.js.map b/dist/utils.js.map index 7072d9c..af57a07 100644 --- a/dist/utils.js.map +++ b/dist/utils.js.map @@ -1 +1 @@ -{"version":3,"sources":["../src/utils.js"],"names":[],"mappings":";;;;;QA8BgB,Y,GAAA,Y;QAsBA,mB,GAAA,mB;;AApDhB;;AAEA,SAAS,mBAAT,CAA8B,GAA9B,EAAmC;AAC/B,QAAI,eAAJ;QAAY,aAAZ;;AAEA,QAAI,eAAe,IAAf,CAAoB,GAApB,CAAJ,EAA8B;;AAC1B,eAAO,GAAP;AACH;;AAED,aAAS,OAAO,QAAP,CAAgB,QAAhB,KAA6B,QAA7B,GAAwC,QAAxC,GAAmD,OAA5D;;AAEA,QAAI,CAAC,GAAL,EAAU;AACN,eAAO,OAAO,QAAP,CAAgB,IAAhB,KAAyB,EAAzB,GAA8B,MAAM,OAAO,QAAP,CAAgB,IAApD,GAA2D,EAAlE;AACA,eAAO,SAAS,OAAO,QAAP,CAAgB,QAAzB,GAAoC,IAApC,GAA2C,KAAlD;AACH,KAHD,MAGO,IAAI,IAAI,CAAJ,MAAW,GAAf,EAAoB;;AACvB,eAAO,OAAO,QAAP,CAAgB,IAAhB,KAAyB,EAAzB,GAA8B,MAAM,OAAO,QAAP,CAAgB,IAApD,GAA2D,EAAlE;AACA,eAAO,SAAS,OAAO,QAAP,CAAgB,QAAzB,GAAoC,IAApC,GAA2C,GAAlD;AACH,KAHM,MAGA;;AACH,eAAO,SAAS,GAAhB;AACH;AACJ;;AAED,SAAS,gBAAT,CAA2B,GAA3B,EAAgC;AAC5B,QAAI,eAAe,IAAf,CAAoB,GAApB,CAAJ,EAA8B;;AAC1B,eAAO,GAAP;AACH,KAFD,MAEO;AACH,eAAO,IAAP;AACH;AACJ;;AAEM,SAAS,YAAT,CAAuB,GAAvB,EAA4B,SAA5B,EAAuC,EAAvC,EAA2C;AAC9C,QAAM,YAAY,oBAAS,iBAAiB,GAAjB,CAAT,GAAiC,oBAAoB,GAApB,CAAnD;;AAEA,QAAI,CAAC,SAAL,EAAgB;AACZ,eAAO,IAAP;AACH;;AAED,QAAI,EAAJ,EAAQ;;AACJ,eAAO,IAAI,EAAJ,CAAO,SAAP,EAAkB,SAAlB,CAAP;AACH,KAFD,MAEO,uBAAY;;AACf,eAAO,IAAP;AACH,KAFM,MAEA,IAAI,eAAe,MAAnB,EAA2B;;AAE9B,eAAO,IAAI,OAAO,SAAX,CAAqB,SAArB,EAAgC,SAAhC,CAAP;AACH,KAHM,MAGA,IAAI,kBAAkB,MAAtB,EAA8B;;AAEjC,eAAO,IAAI,OAAO,YAAX,CAAwB,SAAxB,EAAmC,SAAnC,CAAP;AACH;;AAED,WAAO,IAAP;AACH;;AAEM,SAAS,mBAAT,CAA8B,IAA9B,EAAoC;AACvC,WAAO,gCAAqB,OAArB,CAA6B,IAA7B,MAAuC,CAAC,CAA/C;AACH","file":"utils.js","sourcesContent":["import { isNode, ALLOWED_BINARY_TYPES } from './constants';\n\nfunction getServerUrlBrowser (url) {\n let scheme, port;\n\n if (/^ws(s)?:\\/\\//.test(url)) { // ws scheme is specified\n return url;\n }\n\n scheme = window.location.protocol === 'https:' ? 'wss://' : 'ws://';\n\n if (!url) {\n port = window.location.port !== '' ? ':' + window.location.port : '';\n return scheme + window.location.hostname + port + '/ws';\n } else if (url[0] === '/') { // just path on current server\n port = window.location.port !== '' ? ':' + window.location.port : '';\n return scheme + window.location.hostname + port + url;\n } else { // domain\n return scheme + url;\n }\n}\n\nfunction getServerUrlNode (url) {\n if (/^ws(s)?:\\/\\//.test(url)) { // ws scheme is specified\n return url;\n } else {\n return null;\n }\n}\n\nexport function getWebSocket (url, protocols, ws) {\n const parsedUrl = isNode ? getServerUrlNode(url) : getServerUrlBrowser(url);\n\n if (!parsedUrl) {\n return null;\n }\n\n if (ws) { // User provided webSocket class\n return new ws(parsedUrl, protocols);\n } else if (isNode) { // we're in node, but no webSocket provided\n return null;\n } else if ('WebSocket' in window) {\n // Chrome, MSIE, newer Firefox\n return new window.WebSocket(parsedUrl, protocols);\n } else if ('MozWebSocket' in window) {\n // older versions of Firefox\n return new window.MozWebSocket(parsedUrl, protocols);\n }\n\n return null;\n}\n\nexport function isBinaryTypeAllowed (type) {\n return ALLOWED_BINARY_TYPES.indexOf(type) !== -1;\n}\n"]} \ No newline at end of file +{"version":3,"sources":["../src/utils.js"],"names":["getWebSocket","isBinaryTypeAllowed","getServerUrlBrowser","url","scheme","port","test","window","location","protocol","hostname","getServerUrlNode","protocols","ws","parsedUrl","isNode","WebSocket","MozWebSocket","type","ALLOWED_BINARY_TYPES","indexOf"],"mappings":";;;;;QA8BgBA,Y,GAAAA,Y;QAsBAC,mB,GAAAA,mB;;AApDhB;;AAEA,SAASC,mBAAT,CAA8BC,GAA9B,EAAmC;AAC/B,QAAIC,eAAJ;AAAA,QAAYC,aAAZ;;AAEA,QAAI,eAAeC,IAAf,CAAoBH,GAApB,CAAJ,EAA8B;AAAI;AAC9B,eAAOA,GAAP;AACH;;AAEDC,aAASG,OAAOC,QAAP,CAAgBC,QAAhB,KAA6B,QAA7B,GAAwC,QAAxC,GAAmD,OAA5D;;AAEA,QAAI,CAACN,GAAL,EAAU;AACNE,eAAOE,OAAOC,QAAP,CAAgBH,IAAhB,KAAyB,EAAzB,GAA8B,MAAME,OAAOC,QAAP,CAAgBH,IAApD,GAA2D,EAAlE;AACA,eAAOD,SAASG,OAAOC,QAAP,CAAgBE,QAAzB,GAAoCL,IAApC,GAA2C,KAAlD;AACH,KAHD,MAGO,IAAIF,IAAI,CAAJ,MAAW,GAAf,EAAoB;AAAK;AAC5BE,eAAOE,OAAOC,QAAP,CAAgBH,IAAhB,KAAyB,EAAzB,GAA8B,MAAME,OAAOC,QAAP,CAAgBH,IAApD,GAA2D,EAAlE;AACA,eAAOD,SAASG,OAAOC,QAAP,CAAgBE,QAAzB,GAAoCL,IAApC,GAA2CF,GAAlD;AACH,KAHM,MAGA;AAAK;AACR,eAAOC,SAASD,GAAhB;AACH;AACJ;;AAED,SAASQ,gBAAT,CAA2BR,GAA3B,EAAgC;AAC5B,QAAI,eAAeG,IAAf,CAAoBH,GAApB,CAAJ,EAA8B;AAAI;AAC9B,eAAOA,GAAP;AACH,KAFD,MAEO;AACH,eAAO,IAAP;AACH;AACJ;;AAEM,SAASH,YAAT,CAAuBG,GAAvB,EAA4BS,SAA5B,EAAuCC,EAAvC,EAA2C;AAC9C,QAAMC,YAAYC,oBAASJ,iBAAiBR,GAAjB,CAAT,GAAiCD,oBAAoBC,GAApB,CAAnD;;AAEA,QAAI,CAACW,SAAL,EAAgB;AACZ,eAAO,IAAP;AACH;;AAED,QAAID,EAAJ,EAAQ;AAAI;AACR,eAAO,IAAIA,EAAJ,CAAOC,SAAP,EAAkBF,SAAlB,CAAP;AACH,KAFD,MAEO,IAAIG,iBAAJ,EAAY;AAAK;AACpB,eAAO,IAAP;AACH,KAFM,MAEA,IAAI,eAAeR,MAAnB,EAA2B;AAC9B;AACA,eAAO,IAAIA,OAAOS,SAAX,CAAqBF,SAArB,EAAgCF,SAAhC,CAAP;AACH,KAHM,MAGA,IAAI,kBAAkBL,MAAtB,EAA8B;AACjC;AACA,eAAO,IAAIA,OAAOU,YAAX,CAAwBH,SAAxB,EAAmCF,SAAnC,CAAP;AACH;;AAED,WAAO,IAAP;AACH;;AAEM,SAASX,mBAAT,CAA8BiB,IAA9B,EAAoC;AACvC,WAAOC,gCAAqBC,OAArB,CAA6BF,IAA7B,MAAuC,CAAC,CAA/C;AACH","file":"utils.js","sourcesContent":["import { isNode, ALLOWED_BINARY_TYPES } from './constants';\n\nfunction getServerUrlBrowser (url) {\n let scheme, port;\n\n if (/^ws(s)?:\\/\\//.test(url)) { // ws scheme is specified\n return url;\n }\n\n scheme = window.location.protocol === 'https:' ? 'wss://' : 'ws://';\n\n if (!url) {\n port = window.location.port !== '' ? ':' + window.location.port : '';\n return scheme + window.location.hostname + port + '/ws';\n } else if (url[0] === '/') { // just path on current server\n port = window.location.port !== '' ? ':' + window.location.port : '';\n return scheme + window.location.hostname + port + url;\n } else { // domain\n return scheme + url;\n }\n}\n\nfunction getServerUrlNode (url) {\n if (/^ws(s)?:\\/\\//.test(url)) { // ws scheme is specified\n return url;\n } else {\n return null;\n }\n}\n\nexport function getWebSocket (url, protocols, ws) {\n const parsedUrl = isNode ? getServerUrlNode(url) : getServerUrlBrowser(url);\n\n if (!parsedUrl) {\n return null;\n }\n\n if (ws) { // User provided webSocket class\n return new ws(parsedUrl, protocols);\n } else if (isNode) { // we're in node, but no webSocket provided\n return null;\n } else if ('WebSocket' in window) {\n // Chrome, MSIE, newer Firefox\n return new window.WebSocket(parsedUrl, protocols);\n } else if ('MozWebSocket' in window) {\n // older versions of Firefox\n return new window.MozWebSocket(parsedUrl, protocols);\n }\n\n return null;\n}\n\nexport function isBinaryTypeAllowed (type) {\n return ALLOWED_BINARY_TYPES.indexOf(type) !== -1;\n}\n"]} \ No newline at end of file diff --git a/dist/wampy.js b/dist/wampy.js index 8774793..bc26002 100644 --- a/dist/wampy.js +++ b/dist/wampy.js @@ -32,7 +32,6 @@ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Cons /** * WAMP Client Class */ - var Wampy = function () { /** @@ -40,7 +39,6 @@ var Wampy = function () { * @param {string} url * @param {Object} options */ - function Wampy(url, options) { _classCallCheck(this, Wampy); @@ -49,7 +47,7 @@ var Wampy = function () { * @type {string} * @private */ - this.version = 'v5.0.1'; + this.version = 'v5.0.2'; /** * WS Url @@ -581,7 +579,7 @@ var Wampy = function () { throw new Error('Binary type is not allowed: ' + type); } - this._ws.binatyType = type; + this._ws.binaryType = type; // WAMP SPEC: [HELLO, Realm|uri, Details|dict] // Sending directly 'cause it's a hello msg and no sessionId check is needed diff --git a/dist/wampy.js.map b/dist/wampy.js.map index 219847d..658a592 100644 --- a/dist/wampy.js.map +++ b/dist/wampy.js.map @@ -1 +1 @@ -{"version":3,"sources":["../src/wampy.js"],"names":[],"mappings":"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","file":"wampy.js","sourcesContent":["/**\n * Project: wampy.js\n *\n * https://github.com/KSDaemon/wampy.js\n *\n * A lightweight client-side implementation of\n * WAMP (The WebSocket Application Messaging Protocol v2)\n * http://wamp.ws\n *\n * Provides asynchronous RPC/PubSub over WebSocket.\n *\n * Copyright 2014 KSDaemon. Licensed under the MIT License.\n * See @license text at http://www.opensource.org/licenses/mit-license.php\n *\n */\n\nimport { WAMP_MSG_SPEC, WAMP_ERROR_MSG, isNode } from './constants';\nimport { getWebSocket, isBinaryTypeAllowed } from './utils';\nimport { JsonSerializer } from './serializers/JsonSerializer';\n\n/**\n * WAMP Client Class\n */\nclass Wampy {\n\n /**\n * Wampy constructor\n * @param {string} url\n * @param {Object} options\n */\n constructor (url, options) {\n\n /**\n * Wampy version\n * @type {string}\n * @private\n */\n this.version = 'v5.0.1';\n\n /**\n * WS Url\n * @type {string}\n * @private\n */\n this._url = (typeof url === 'string') ? url : null;\n\n /**\n * WS protocols\n * @type {Array}\n * @private\n */\n this._protocols = ['wamp.2.json'];\n\n /**\n * WAMP features, supported by Wampy\n * @type {object}\n * @private\n */\n this._wamp_features = {\n agent: 'Wampy.js ' + this.version,\n roles: {\n publisher: {\n features: {\n subscriber_blackwhite_listing: true,\n publisher_exclusion: true,\n publisher_identification: true\n }\n },\n subscriber: {},\n caller: {\n features: {\n caller_identification: true,\n progressive_call_results: true,\n call_canceling: true,\n call_timeout: true\n }\n },\n callee: {\n features: {\n caller_identification: true\n }\n }\n }\n };\n\n /**\n * Internal cache for object lifetime\n * @type {Object}\n * @private\n */\n this._cache = {\n /**\n * WAMP Session ID\n * @type {string}\n */\n sessionId: null,\n\n /**\n * WAMP Session scope requests ID\n * @type {int}\n */\n reqId: 0,\n\n /**\n * Server WAMP roles and features\n */\n server_wamp_features: { roles: {} },\n\n /**\n * Are we in state of saying goodbye\n * @type {boolean}\n */\n isSayingGoodbye: false,\n\n /**\n * Status of last operation\n */\n opStatus: { code: 0, description: 'Success!', reqId: 0 },\n\n /**\n * Timer for reconnection\n * @type {null}\n */\n timer: null,\n\n /**\n * Reconnection attempts\n * @type {number}\n */\n reconnectingAttempts: 0\n };\n\n /**\n * WebSocket object\n * @type {Object}\n * @private\n */\n this._ws = null;\n\n /**\n * Internal queue for websocket requests, for case of disconnect\n * @type {Array}\n * @private\n */\n this._wsQueue = [];\n\n /**\n * Internal queue for wamp requests\n * @type {object}\n * @private\n */\n this._requests = {};\n\n /**\n * Stored RPC\n * @type {object}\n * @private\n */\n this._calls = {};\n\n /**\n * Stored Pub/Sub\n * @type {object}\n * @private\n */\n this._subscriptions = {};\n\n /**\n * Stored Pub/Sub topics\n * @type {Array}\n * @private\n */\n this._subsTopics = new Set();\n\n /**\n * Stored RPC Registrations\n * @type {object}\n * @private\n */\n this._rpcRegs = {};\n\n /**\n * Stored RPC names\n * @type {Array}\n * @private\n */\n this._rpcNames = new Set();\n\n /**\n * Options hash-table\n * @type {Object}\n * @private\n */\n this._options = {\n /**\n * Logging\n * @type {boolean}\n */\n debug: false,\n\n /**\n * Reconnecting flag\n * @type {boolean}\n */\n autoReconnect: true,\n\n /**\n * Reconnecting interval (in ms)\n * @type {number}\n */\n reconnectInterval: 2 * 1000,\n\n /**\n * Maximum reconnection retries\n * @type {number}\n */\n maxRetries: 25,\n\n /**\n * WAMP Realm to join\n * @type {string}\n */\n realm: null,\n\n /**\n * Custom attributes to send to router on hello\n * @type {object}\n */\n helloCustomDetails: null,\n\n /**\n * Authentication id to use in challenge\n * @type {string}\n */\n authid: null,\n\n /**\n * Supported authentication methods\n * @type {array}\n */\n authmethods: [],\n\n /**\n * onChallenge callback\n * @type {function}\n */\n onChallenge: null,\n\n /**\n * onConnect callback\n * @type {function}\n */\n onConnect: null,\n\n /**\n * onClose callback\n * @type {function}\n */\n onClose: null,\n\n /**\n * onError callback\n * @type {function}\n */\n onError: null,\n\n /**\n * onReconnect callback\n * @type {function}\n */\n onReconnect: null,\n\n /**\n * onReconnectSuccess callback\n * @type {function}\n */\n onReconnectSuccess: null,\n\n /**\n * User provided WebSocket class\n * @type {function}\n */\n ws: null,\n\n /**\n * User provided msgpack class\n * @type {object}\n */\n serializer: new JsonSerializer()\n };\n\n if (this._isPlainObject(options)) {\n this._options = this._merge(this._options, options);\n } else if (this._isPlainObject(url)) {\n this._options = this._merge(this._options, url);\n }\n\n this.connect();\n }\n\n /* Internal utils methods */\n /**\n * Internal logger\n * @private\n */\n _log () {\n if (this._options.debug) {\n console.log(arguments);\n }\n }\n\n /**\n * Get the new unique request id\n * @returns {number}\n * @private\n */\n _getReqId () {\n return ++this._cache.reqId;\n }\n\n /**\n * Merge argument objects into one\n * @returns {Object}\n * @private\n */\n _merge () {\n const obj = {}, l = arguments.length;\n let i, attr;\n\n for (i = 0; i < l; i++) {\n for (attr in arguments[i]) {\n obj[attr] = arguments[i][attr];\n }\n }\n\n return obj;\n }\n\n /**\n * Check if value is array\n * @param obj\n * @returns {boolean}\n * @private\n */\n _isArray (obj) {\n return (!!obj) && (Array.isArray(obj));\n }\n\n /**\n * Check if value is object literal\n * @param obj\n * @returns {boolean}\n * @private\n */\n _isPlainObject (obj) {\n return (!!obj) && (obj.constructor === Object);\n }\n\n /**\n * Fix websocket protocols based on options\n * @private\n */\n _setWsProtocols () {\n if (!(this._options.serializer instanceof JsonSerializer)) {\n this._protocols.unshift('wamp.2.' + this._options.serializer.protocol);\n }\n }\n\n /**\n * Prerequisite checks for any wampy api call\n * @param {string} topicURI\n * @param {string} role\n * @param {object} callbacks\n * @returns {boolean}\n * @private\n */\n _preReqChecks (topicURI, role, callbacks) {\n let flag = true;\n\n if (this._cache.sessionId && !this._cache.server_wamp_features.roles[role]) {\n this._cache.opStatus = WAMP_ERROR_MSG['NO_' + role.toUpperCase()];\n flag = false;\n }\n\n if (topicURI && !this._validateURI(topicURI)) {\n this._cache.opStatus = WAMP_ERROR_MSG.URI_ERROR;\n flag = false;\n }\n\n if (flag) {\n return true;\n }\n\n if (this._isPlainObject(callbacks) && callbacks.onError) {\n callbacks.onError(this._cache.opStatus.description);\n }\n\n return false;\n }\n\n /**\n * Validate uri\n * @param {string} uri\n * @returns {boolean}\n * @private\n */\n _validateURI (uri) {\n const re = /^([0-9a-zA-Z_]{2,}\\.)*([0-9a-zA-Z_]{2,})$/;\n return !(!re.test(uri) || uri.indexOf('wamp') === 0);\n }\n\n /**\n * Encode WAMP message\n * @param {Array} msg\n * @returns {*}\n * @private\n */\n _encode (msg) {\n try {\n return this._options.serializer.encode(msg);\n } catch (e) {\n throw new Error('[wampy] encoding exception!');\n }\n }\n\n /**\n * Decode WAMP message\n * @param msg\n * @returns {array}\n * @private\n */\n _decode (msg) {\n try {\n return this._options.serializer.decode(msg);\n } catch (e) {\n throw new Error('[wampy] decoding exception!');\n }\n }\n\n /**\n * Send encoded message to server\n * @param {Array} msg\n * @private\n */\n _send (msg) {\n if (msg) {\n this._wsQueue.push(this._encode(msg));\n }\n\n if (this._ws && this._ws.readyState === 1 && this._cache.sessionId) {\n while (this._wsQueue.length) {\n this._ws.send(this._wsQueue.shift());\n }\n }\n }\n\n /**\n * Reset internal state and cache\n * @private\n */\n _resetState () {\n this._wsQueue = [];\n this._subscriptions = {};\n this._subsTopics = new Set();\n this._requests = {};\n this._calls = {};\n this._rpcRegs = {};\n this._rpcNames = new Set();\n\n // Just keep attrs that are have to be present\n this._cache = {\n reqId: 0,\n reconnectingAttempts: 0\n };\n }\n\n /**\n * Initialize internal websocket callbacks\n * @private\n */\n _initWsCallbacks () {\n if (this._ws) {\n this._ws.onopen = () => {\n this._wsOnOpen();\n };\n this._ws.onclose = event => {\n this._wsOnClose(event);\n };\n this._ws.onmessage = event => {\n this._wsOnMessage(event);\n };\n this._ws.onerror = error => {\n this._wsOnError(error);\n };\n }\n }\n\n /**\n * Internal websocket on open callback\n * @private\n */\n _wsOnOpen () {\n const options = this._merge(this._options.helloCustomDetails, this._wamp_features);\n\n if (this._options.authid) {\n options.authmethods = this._options._authmethods;\n options.authid = this._options.authid;\n }\n\n this._log('[wampy] websocket connected');\n\n if (this._ws.protocol && this._options.serializer.protocol !== this._ws.protocol.split('.')[2]) {\n // Server have chosen not our preferred protocol, so let's switch back to json\n this._options.serializer = new JsonSerializer();\n }\n\n const type = this._options.serializer.binaryType;\n\n if (!isBinaryTypeAllowed(type)) {\n throw new Error('Binary type is not allowed: ' + type);\n }\n\n this._ws.binatyType = type;\n\n // WAMP SPEC: [HELLO, Realm|uri, Details|dict]\n // Sending directly 'cause it's a hello msg and no sessionId check is needed\n this._ws.send(this._encode([WAMP_MSG_SPEC.HELLO, this._options.realm, options]));\n }\n\n /**\n * Internal websocket on close callback\n * @param {object} event\n * @private\n */\n _wsOnClose (event) {\n const root = isNode ? global : window;\n this._log('[wampy] websocket disconnected. Info: ', event);\n\n // Automatic reconnection\n if ((this._cache.sessionId || this._cache.reconnectingAttempts) &&\n this._options.autoReconnect && this._cache.reconnectingAttempts < this._options.maxRetries && !this._cache.isSayingGoodbye) {\n this._cache.sessionId = null;\n this._cache.timer = root.setTimeout(\n () => {\n this._wsReconnect();\n },\n this._options.reconnectInterval\n );\n } else {\n // No reconnection needed or reached max retries count\n if (this._options.onClose) {\n this._options.onClose();\n }\n\n this._resetState();\n this._ws = null;\n }\n }\n\n /**\n * Internal websocket on event callback\n * @param {object} event\n * @private\n */\n _wsOnMessage (event) {\n let data, id, i, msg, p;\n\n this._log('[wampy] websocket message received', event.data);\n\n data = this._decode(event.data);\n\n switch (data[0]) {\n case WAMP_MSG_SPEC.WELCOME:\n // WAMP SPEC: [WELCOME, Session|id, Details|dict]\n\n this._cache.sessionId = data[1];\n this._cache.server_wamp_features = data[2];\n\n if (this._cache.reconnectingAttempts) {\n // There was reconnection\n\n this._cache.reconnectingAttempts = 0;\n\n if (this._options.onReconnectSuccess) {\n this._options.onReconnectSuccess();\n }\n\n // Let's renew all previous state\n this._renewSubscriptions();\n this._renewRegistrations();\n\n } else {\n // Firing onConnect event on real connection to WAMP server\n if (this._options.onConnect) {\n this._options.onConnect();\n }\n }\n\n // Send local queue if there is something out there\n this._send();\n\n break;\n case WAMP_MSG_SPEC.ABORT:\n // WAMP SPEC: [ABORT, Details|dict, Reason|uri]\n if (this._options.onError) {\n this._options.onError(data[1].message ? data[1].message : data[2]);\n }\n this._ws.close();\n break;\n case WAMP_MSG_SPEC.CHALLENGE:\n // WAMP SPEC: [CHALLENGE, AuthMethod|string, Extra|dict]\n\n if (this._options.authid && typeof this._options.onChallenge === 'function') {\n\n p = new Promise((resolve, reject) => {\n resolve(this._options.onChallenge(data[1], data[2]));\n });\n\n p.then((key) => {\n\n // Sending directly 'cause it's a challenge msg and no sessionId check is needed\n this._ws.send(this._encode([WAMP_MSG_SPEC.AUTHENTICATE, key, {}]));\n\n }).catch(e => {\n this._ws.send(this._encode([\n WAMP_MSG_SPEC.ABORT,\n { message: 'Exception in onChallenge handler raised!' },\n 'wamp.error.cannot_authenticate'\n ]));\n if (this._options.onError) {\n this._options.onError(WAMP_ERROR_MSG.CRA_EXCEPTION.description);\n }\n this._ws.close();\n this._cache.opStatus = WAMP_ERROR_MSG.CRA_EXCEPTION;\n });\n\n } else {\n\n this._ws.send(this._encode([\n WAMP_MSG_SPEC.ABORT,\n { message: WAMP_ERROR_MSG.NO_CRA_CB_OR_ID.description },\n 'wamp.error.cannot_authenticate'\n ]));\n if (this._options.onError) {\n this._options.onError(WAMP_ERROR_MSG.NO_CRA_CB_OR_ID.description);\n }\n this._ws.close();\n this._cache.opStatus = WAMP_ERROR_MSG.NO_CRA_CB_OR_ID;\n\n }\n break;\n case WAMP_MSG_SPEC.GOODBYE:\n // WAMP SPEC: [GOODBYE, Details|dict, Reason|uri]\n if (!this._cache.isSayingGoodbye) { // get goodbye, initiated by server\n this._cache.isSayingGoodbye = true;\n this._send([WAMP_MSG_SPEC.GOODBYE, {}, 'wamp.error.goodbye_and_out']);\n }\n this._cache.sessionId = null;\n this._ws.close();\n break;\n case WAMP_MSG_SPEC.ERROR:\n // WAMP SPEC: [ERROR, REQUEST.Type|int, REQUEST.Request|id, Details|dict,\n // Error|uri, (Arguments|list, ArgumentsKw|dict)]\n switch (data[1]) {\n case WAMP_MSG_SPEC.SUBSCRIBE:\n case WAMP_MSG_SPEC.UNSUBSCRIBE:\n case WAMP_MSG_SPEC.PUBLISH:\n case WAMP_MSG_SPEC.REGISTER:\n case WAMP_MSG_SPEC.UNREGISTER:\n\n this._requests[data[2]] && this._requests[data[2]].callbacks.onError &&\n this._requests[data[2]].callbacks.onError(data[4], data[3], data[5], data[6]);\n delete this._requests[data[2]];\n\n break;\n case WAMP_MSG_SPEC.INVOCATION:\n break;\n case WAMP_MSG_SPEC.CALL:\n\n // WAMP SPEC: [ERROR, CALL, CALL.Request|id, Details|dict,\n // Error|uri, Arguments|list, ArgumentsKw|dict]\n this._calls[data[2]] && this._calls[data[2]].onError &&\n this._calls[data[2]].onError(data[4], data[3], data[5], data[6]);\n delete this._calls[data[2]];\n\n break;\n default:\n this._log('[wampy] Received non-compliant WAMP ERROR message');\n break;\n }\n break;\n case WAMP_MSG_SPEC.SUBSCRIBED:\n // WAMP SPEC: [SUBSCRIBED, SUBSCRIBE.Request|id, Subscription|id]\n if (this._requests[data[1]]) {\n this._subscriptions[this._requests[data[1]].topic] = this._subscriptions[data[2]] = {\n id: data[2],\n callbacks: [this._requests[data[1]].callbacks.onEvent]\n };\n\n this._subsTopics.add(this._requests[data[1]].topic);\n\n if (this._requests[data[1]].callbacks.onSuccess) {\n this._requests[data[1]].callbacks.onSuccess();\n }\n\n delete this._requests[data[1]];\n\n }\n break;\n case WAMP_MSG_SPEC.UNSUBSCRIBED:\n // WAMP SPEC: [UNSUBSCRIBED, UNSUBSCRIBE.Request|id]\n if (this._requests[data[1]]) {\n id = this._subscriptions[this._requests[data[1]].topic].id;\n delete this._subscriptions[this._requests[data[1]].topic];\n delete this._subscriptions[id];\n\n if (this._subsTopics.has(this._requests[data[1]].topic)) {\n this._subsTopics.delete(this._requests[data[1]].topic);\n }\n\n if (this._requests[data[1]].callbacks.onSuccess) {\n this._requests[data[1]].callbacks.onSuccess();\n }\n\n delete this._requests[data[1]];\n }\n break;\n case WAMP_MSG_SPEC.PUBLISHED:\n // WAMP SPEC: [PUBLISHED, PUBLISH.Request|id, Publication|id]\n if (this._requests[data[1]]) {\n if (this._requests[data[1]].callbacks && this._requests[data[1]].callbacks.onSuccess) {\n this._requests[data[1]].callbacks.onSuccess();\n }\n\n delete this._requests[data[1]];\n\n }\n break;\n case WAMP_MSG_SPEC.EVENT:\n if (this._subscriptions[data[1]]) {\n\n // WAMP SPEC: [EVENT, SUBSCRIBED.Subscription|id, PUBLISHED.Publication|id,\n // Details|dict, PUBLISH.Arguments|list, PUBLISH.ArgumentKw|dict]\n\n i = this._subscriptions[data[1]].callbacks.length;\n while (i--) {\n this._subscriptions[data[1]].callbacks[i](data[4], data[5]);\n }\n\n }\n break;\n case WAMP_MSG_SPEC.RESULT:\n if (this._calls[data[1]]) {\n\n // WAMP SPEC: [RESULT, CALL.Request|id, Details|dict,\n // YIELD.Arguments|list, YIELD.ArgumentsKw|dict]\n\n this._calls[data[1]].onSuccess(data[3], data[4]);\n if (!(data[2].progress && data[2].progress === true)) {\n // We receive final result (progressive or not)\n delete this._calls[data[1]];\n }\n\n }\n break;\n // case WAMP_MSG_SPEC.REGISTER:\n // // WAMP SPEC:\n // break;\n case WAMP_MSG_SPEC.REGISTERED:\n // WAMP SPEC: [REGISTERED, REGISTER.Request|id, Registration|id]\n if (this._requests[data[1]]) {\n this._rpcRegs[this._requests[data[1]].topic] = this._rpcRegs[data[2]] = {\n id: data[2],\n callbacks: [this._requests[data[1]].callbacks.rpc]\n };\n\n this._rpcNames.add(this._requests[data[1]].topic);\n\n if (this._requests[data[1]].callbacks && this._requests[data[1]].callbacks.onSuccess) {\n this._requests[data[1]].callbacks.onSuccess();\n }\n\n delete this._requests[data[1]];\n\n }\n break;\n // case WAMP_MSG_SPEC.UNREGISTER:\n // // WAMP SPEC:\n // break;\n case WAMP_MSG_SPEC.UNREGISTERED:\n // WAMP SPEC: [UNREGISTERED, UNREGISTER.Request|id]\n if (this._requests[data[1]]) {\n id = this._rpcRegs[this._requests[data[1]].topic].id;\n delete this._rpcRegs[this._requests[data[1]].topic];\n delete this._rpcRegs[id];\n\n if (this._rpcNames.has(this._requests[data[1]].topic)) {\n this._rpcNames.delete(this._requests[data[1]].topic);\n }\n\n if (this._requests[data[1]].callbacks && this._requests[data[1]].callbacks.onSuccess) {\n this._requests[data[1]].callbacks.onSuccess();\n }\n\n delete this._requests[data[1]];\n }\n break;\n case WAMP_MSG_SPEC.INVOCATION:\n if (this._rpcRegs[data[2]]) {\n\n // WAMP SPEC: [INVOCATION, Request|id, REGISTERED.Registration|id,\n // Details|dict, CALL.Arguments|list, CALL.ArgumentsKw|dict]\n\n p = new Promise((resolve, reject) => {\n resolve(this._rpcRegs[data[2]].callbacks[0](data[4], data[5], data[3]));\n });\n\n p.then((results) => {\n // WAMP SPEC: [YIELD, INVOCATION.Request|id, Options|dict, (Arguments|list, ArgumentsKw|dict)]\n msg = [WAMP_MSG_SPEC.YIELD, data[1], {}];\n if (this._isArray(results)) {\n // Options\n if (this._isPlainObject(results[0])) {\n msg[2] = results[0];\n }\n\n if (this._isArray(results[1])) {\n msg.push(results[1]);\n } else if (typeof (results[1]) !== 'undefined') {\n msg.push([results[1]]);\n }\n\n if (this._isPlainObject(results[2])) {\n if (msg.length === 3) {\n msg.push([]);\n }\n msg.push(results[2]);\n }\n } else {\n msg = [WAMP_MSG_SPEC.YIELD, data[1], {}];\n }\n this._send(msg);\n\n }).catch(e => {\n let msg = [WAMP_MSG_SPEC.ERROR, WAMP_MSG_SPEC.INVOCATION,\n data[1], e.details || {}, e.uri || 'wamp.error.invocation_exception'];\n\n if (e.argsList && this._isArray(e.argsList)) {\n msg.push(e.argsList);\n }\n\n if (e.argsDict && this._isPlainObject(e.argsDict)) {\n if (msg.length === 5) {\n msg.push([]);\n }\n msg.push(e.argsDict);\n }\n this._send(msg);\n });\n\n } else {\n // WAMP SPEC: [ERROR, INVOCATION, INVOCATION.Request|id, Details|dict, Error|uri]\n this._send([WAMP_MSG_SPEC.ERROR, WAMP_MSG_SPEC.INVOCATION,\n data[1], {}, 'wamp.error.no_such_procedure']);\n this._cache.opStatus = WAMP_ERROR_MSG.NON_EXIST_RPC_INVOCATION;\n }\n\n break;\n // case WAMP_MSG_SPEC.INTERRUPT:\n // // WAMP SPEC:\n // break;\n // case WAMP_MSG_SPEC.YIELD:\n // // WAMP SPEC:\n // break;\n default:\n this._log('[wampy] Received non-compliant WAMP message');\n break;\n }\n }\n\n /**\n * Internal websocket on error callback\n * @param {object} error\n * @private\n */\n _wsOnError (error) {\n this._log('[wampy] websocket error');\n\n if (this._options.onError) {\n this._options.onError(error);\n }\n }\n\n /**\n * Reconnect to server in case of websocket error\n * @private\n */\n _wsReconnect () {\n this._log('[wampy] websocket reconnecting...');\n\n if (this._options.onReconnect) {\n this._options.onReconnect();\n }\n\n this._cache.reconnectingAttempts++;\n this._ws = getWebSocket(this._url, this._protocols, this._options.ws);\n this._initWsCallbacks();\n }\n\n /**\n * Resubscribe to topics in case of communication error\n * @private\n */\n _renewSubscriptions () {\n let i;\n const subs = this._subscriptions,\n st = this._subsTopics;\n\n this._subscriptions = {};\n this._subsTopics = new Set();\n\n for (let topic of st) {\n i = subs[topic].callbacks.length;\n while (i--) {\n this.subscribe(topic, subs[topic].callbacks[i]);\n }\n }\n }\n\n /**\n * Reregister RPCs in case of communication error\n * @private\n */\n _renewRegistrations () {\n const rpcs = this._rpcRegs,\n rn = this._rpcNames;\n\n this._rpcRegs = {};\n this._rpcNames = new Set();\n\n for (let rpcName of rn) {\n this.register(rpcName, { rpc: rpcs[rpcName].callbacks[0] });\n }\n }\n\n /* Wampy public API */\n\n /**\n * Get or set Wampy options\n *\n * To get options - call without parameters\n * To set options - pass hash-table with options values\n *\n * @param {object} opts\n * @returns {*}\n */\n options (opts) {\n if (typeof (opts) === 'undefined') {\n return this._options;\n } else if (this._isPlainObject(opts)) {\n this._options = this._merge(this._options, opts);\n return this;\n }\n }\n\n /**\n * Get the status of last operation\n *\n * @returns {object} with 2 fields: code, description\n * code: 0 - if operation was successful\n * code > 0 - if error occurred\n * description contains details about error\n * reqId: last send request ID\n */\n getOpStatus () {\n return this._cache.opStatus;\n }\n\n /**\n * Get the WAMP Session ID\n *\n * @returns {string} Session ID\n */\n getSessionId () {\n return this._cache.sessionId;\n }\n\n /**\n * Connect to server\n * @param {string} url New url (optional)\n * @returns {Wampy}\n */\n connect (url) {\n if (url) {\n this._url = url;\n }\n\n if (this._options.realm) {\n\n const authp = (this._options.authid ? 1 : 0) +\n ((this._isArray(this._options.authmethods) && this._options.authmethods.length) ? 1 : 0) +\n (typeof this._options.onChallenge === 'function' ? 1 : 0);\n\n if (authp > 0 && authp < 3) {\n this._cache.opStatus = WAMP_ERROR_MSG.NO_CRA_CB_OR_ID;\n return this;\n }\n\n this._setWsProtocols();\n this._ws = getWebSocket(this._url, this._protocols, this._options.ws);\n if (!this._ws) {\n this._cache.opStatus = WAMP_ERROR_MSG.NO_WS_OR_URL;\n return this;\n }\n this._initWsCallbacks();\n\n } else {\n this._cache.opStatus = WAMP_ERROR_MSG.NO_REALM;\n }\n\n return this;\n }\n\n /**\n * Disconnect from server\n * @returns {Wampy}\n */\n disconnect () {\n if (this._cache.sessionId) {\n // need to send goodbye message to server\n this._cache.isSayingGoodbye = true;\n this._send([WAMP_MSG_SPEC.GOODBYE, {}, 'wamp.error.system_shutdown']);\n } else if (this._ws) {\n this._ws.close();\n }\n\n this._cache.opStatus = WAMP_ERROR_MSG.SUCCESS;\n\n return this;\n }\n\n /**\n * Abort WAMP session establishment\n *\n * @returns {Wampy}\n */\n abort () {\n\n if (!this._cache.sessionId && this._ws.readyState === 1) {\n this._send([WAMP_MSG_SPEC.ABORT, {}, 'wamp.error.abort']);\n this._cache.sessionId = null;\n }\n\n this._ws.close();\n this._cache.opStatus = WAMP_ERROR_MSG.SUCCESS;\n\n return this;\n }\n\n /**\n * Subscribe to a topic on a broker\n *\n * @param {string} topicURI\n * @param {function|object} callbacks - if it is a function - it will be treated as published event callback\n * or it can be hash table of callbacks:\n * { onSuccess: will be called when subscribe would be confirmed\n * onError: will be called if subscribe would be aborted\n * onEvent: will be called on receiving published event }\n *\n * @returns {Wampy}\n */\n subscribe (topicURI, callbacks) {\n let reqId;\n\n if (!this._preReqChecks(topicURI, 'broker', callbacks)) {\n return this;\n }\n\n if (typeof callbacks === 'function') {\n callbacks = { onEvent: callbacks };\n } else if (!this._isPlainObject(callbacks) || typeof (callbacks.onEvent) === 'undefined') {\n this._cache.opStatus = WAMP_ERROR_MSG.NO_CALLBACK_SPEC;\n\n if (this._isPlainObject(callbacks) && callbacks.onError) {\n callbacks.onError(this._cache.opStatus.description);\n }\n\n return this;\n }\n\n if (!this._subscriptions[topicURI] || !this._subscriptions[topicURI].callbacks.length) {\n // no such subscription or processing unsubscribing\n\n reqId = this._getReqId();\n\n this._requests[reqId] = {\n topic: topicURI,\n callbacks: callbacks\n };\n\n // WAMP SPEC: [SUBSCRIBE, Request|id, Options|dict, Topic|uri]\n this._send([WAMP_MSG_SPEC.SUBSCRIBE, reqId, {}, topicURI]);\n\n } else { // already have subscription to this topic\n // There is no such callback yet\n if (this._subscriptions[topicURI].callbacks.indexOf(callbacks.onEvent) < 0) {\n this._subscriptions[topicURI].callbacks.push(callbacks.onEvent);\n }\n\n if (callbacks.onSuccess) {\n callbacks.onSuccess();\n }\n }\n\n this._cache.opStatus = WAMP_ERROR_MSG.SUCCESS;\n this._cache.opStatus.reqId = reqId;\n return this;\n }\n\n /**\n * Unsubscribe from topic\n * @param {string} topicURI\n * @param {function|object} callbacks - if it is a function - it will be treated as\n * published event callback to remove or it can be hash table of callbacks:\n * { onSuccess: will be called when unsubscribe would be confirmed\n * onError: will be called if unsubscribe would be aborted\n * onEvent: published event callback to remove }\n * @returns {Wampy}\n */\n unsubscribe (topicURI, callbacks) {\n let reqId, i = -1;\n\n if (!this._preReqChecks(null, 'broker', callbacks)) {\n return this;\n }\n\n if (this._subscriptions[topicURI]) {\n\n reqId = this._getReqId();\n\n if (typeof (callbacks) === 'undefined') {\n this._subscriptions[topicURI].callbacks = [];\n callbacks = {};\n } else if (typeof callbacks === 'function') {\n i = this._subscriptions[topicURI].callbacks.indexOf(callbacks);\n callbacks = {};\n } else if (callbacks.onEvent && typeof callbacks.onEvent === 'function') {\n i = this._subscriptions[topicURI].callbacks.indexOf(callbacks.onEvent);\n } else {\n this._subscriptions[topicURI].callbacks = [];\n }\n\n if (i >= 0) {\n this._subscriptions[topicURI].callbacks.splice(i, 1);\n }\n\n if (this._subscriptions[topicURI].callbacks.length) {\n // There are another callbacks for this topic\n this._cache.opStatus = WAMP_ERROR_MSG.SUCCESS;\n return this;\n }\n\n this._requests[reqId] = {\n topic: topicURI,\n callbacks: callbacks\n };\n\n // WAMP_SPEC: [UNSUBSCRIBE, Request|id, SUBSCRIBED.Subscription|id]\n this._send([WAMP_MSG_SPEC.UNSUBSCRIBE, reqId, this._subscriptions[topicURI].id]);\n\n } else {\n this._cache.opStatus = WAMP_ERROR_MSG.NON_EXIST_UNSUBSCRIBE;\n\n if (this._isPlainObject(callbacks) && callbacks.onError) {\n callbacks.onError(this._cache.opStatus.description);\n }\n\n return this;\n }\n\n this._cache.opStatus = WAMP_ERROR_MSG.SUCCESS;\n this._cache.opStatus.reqId = reqId;\n return this;\n }\n\n /**\n * Publish a event to topic\n * @param {string} topicURI\n * @param {string|number|Array|object} payload - optional parameter.\n * @param {object} callbacks - optional hash table of callbacks:\n * { onSuccess: will be called when publishing would be confirmed\n * onError: will be called if publishing would be aborted }\n * @param {object} advancedOptions - optional parameter. Must include any or all of the options:\n * { exclude: integer|array WAMP session id(s) that won't receive a published event,\n * even though they may be subscribed\n * exclude_authid: string|array Authentication id(s) that won't receive\n * a published event, even though they may be subscribed\n * exclude_authrole: string|array Authentication role(s) that won't receive\n * a published event, even though they may be subscribed\n * eligible: integer|array WAMP session id(s) that are allowed\n * to receive a published event\n * eligible_authid: string|array Authentication id(s) that are allowed\n * to receive a published event\n * eligible_authrole: string|array Authentication role(s) that are allowed\n * to receive a published event\n * exclude_me: bool flag of receiving publishing event by initiator\n * disclose_me: bool flag of disclosure of publisher identity (its WAMP session ID)\n * to receivers of a published event }\n * @returns {Wampy}\n */\n publish (topicURI, payload, callbacks, advancedOptions) {\n let reqId, msg, err = false;\n const options = {};\n\n if (!this._preReqChecks(topicURI, 'broker', callbacks)) {\n return this;\n }\n\n if (this._isPlainObject(callbacks)) {\n options.acknowledge = true;\n }\n\n if (typeof (advancedOptions) !== 'undefined') {\n\n if (this._isPlainObject(advancedOptions)) {\n if (advancedOptions.exclude) {\n if (this._isArray(advancedOptions.exclude) && advancedOptions.exclude.length) {\n options.exclude = advancedOptions.exclude;\n } else if (typeof advancedOptions.exclude === 'number') {\n options.exclude = [advancedOptions.exclude];\n } else {\n err = true;\n }\n }\n\n if (advancedOptions.exclude_authid) {\n if (this._isArray(advancedOptions.exclude_authid) && advancedOptions.exclude_authid.length) {\n options.exclude_authid = advancedOptions.exclude_authid;\n } else if (typeof advancedOptions.exclude_authid === 'string') {\n options.exclude_authid = [advancedOptions.exclude_authid];\n } else {\n err = true;\n }\n }\n\n if (advancedOptions.exclude_authrole) {\n if (this._isArray(advancedOptions.exclude_authrole) && advancedOptions.exclude_authrole.length) {\n options.exclude_authrole = advancedOptions.exclude_authrole;\n } else if (typeof advancedOptions.exclude_authrole === 'string') {\n options.exclude_authrole = [advancedOptions.exclude_authrole];\n } else {\n err = true;\n }\n }\n\n if (advancedOptions.eligible) {\n if (this._isArray(advancedOptions.eligible) && advancedOptions.eligible.length) {\n options.eligible = advancedOptions.eligible;\n } else if (typeof advancedOptions.eligible === 'number') {\n options.eligible = [advancedOptions.eligible];\n } else {\n err = true;\n }\n }\n\n if (advancedOptions.eligible_authid) {\n if (this._isArray(advancedOptions.eligible_authid) && advancedOptions.eligible_authid.length) {\n options.eligible_authid = advancedOptions.eligible_authid;\n } else if (typeof advancedOptions.eligible_authid === 'string') {\n options.eligible_authid = [advancedOptions.eligible_authid];\n } else {\n err = true;\n }\n }\n\n if (advancedOptions.eligible_authrole) {\n if (this._isArray(advancedOptions.eligible_authrole) && advancedOptions.eligible_authrole.length) {\n options.eligible_authrole = advancedOptions.eligible_authrole;\n } else if (typeof advancedOptions.eligible_authrole === 'string') {\n options.eligible_authrole = [advancedOptions.eligible_authrole];\n } else {\n err = true;\n }\n }\n\n if (advancedOptions.hasOwnProperty('exclude_me')) {\n options.exclude_me = advancedOptions.exclude_me !== false;\n }\n\n if (advancedOptions.hasOwnProperty('disclose_me')) {\n options.disclose_me = advancedOptions.disclose_me === true;\n }\n\n } else {\n err = true;\n }\n\n if (err) {\n this._cache.opStatus = WAMP_ERROR_MSG.INVALID_PARAM;\n\n if (this._isPlainObject(callbacks) && callbacks.onError) {\n callbacks.onError(this._cache.opStatus.description);\n }\n\n return this;\n }\n }\n\n reqId = this._getReqId();\n\n switch (arguments.length) {\n case 1:\n // WAMP_SPEC: [PUBLISH, Request|id, Options|dict, Topic|uri]\n msg = [WAMP_MSG_SPEC.PUBLISH, reqId, options, topicURI];\n break;\n case 2:\n // WAMP_SPEC: [PUBLISH, Request|id, Options|dict, Topic|uri, Arguments|list (, ArgumentsKw|dict)]\n if (this._isArray(payload)) {\n msg = [WAMP_MSG_SPEC.PUBLISH, reqId, options, topicURI, payload];\n } else if (this._isPlainObject(payload)) {\n msg = [WAMP_MSG_SPEC.PUBLISH, reqId, options, topicURI, [], payload];\n } else { // assume it's a single value\n msg = [WAMP_MSG_SPEC.PUBLISH, reqId, options, topicURI, [payload]];\n }\n break;\n default:\n this._requests[reqId] = {\n topic: topicURI,\n callbacks: callbacks\n };\n\n // WAMP_SPEC: [PUBLISH, Request|id, Options|dict, Topic|uri, Arguments|list (, ArgumentsKw|dict)]\n if (this._isArray(payload)) {\n msg = [WAMP_MSG_SPEC.PUBLISH, reqId, options, topicURI, payload];\n } else if (this._isPlainObject(payload)) {\n msg = [WAMP_MSG_SPEC.PUBLISH, reqId, options, topicURI, [], payload];\n } else { // assume it's a single value\n msg = [WAMP_MSG_SPEC.PUBLISH, reqId, options, topicURI, [payload]];\n }\n break;\n }\n\n this._send(msg);\n this._cache.opStatus = WAMP_ERROR_MSG.SUCCESS;\n this._cache.opStatus.reqId = reqId;\n return this;\n }\n\n /**\n * Remote Procedure Call\n * @param {string} topicURI\n * @param {string|number|Array|object} payload - can be either a value of any type or null\n * @param {function|object} callbacks - if it is a function - it will be treated as result callback function\n * or it can be hash table of callbacks:\n * { onSuccess: will be called with result on successful call\n * onError: will be called if invocation would be aborted }\n * @param {object} advancedOptions - optional parameter. Must include any or all of the options:\n * { disclose_me: bool flag of disclosure of Caller identity (WAMP session ID)\n * to endpoints of a routed call\n * receive_progress: bool flag for receiving progressive results. In this case\n * onSuccess function will be called every time on receiving result\n * timeout: integer timeout (in ms) for the call to finish }\n * @returns {Wampy}\n */\n call (topicURI, payload, callbacks, advancedOptions) {\n let reqId, msg, err = false;\n const options = {};\n\n if (!this._preReqChecks(topicURI, 'dealer', callbacks)) {\n return this;\n }\n\n if (typeof callbacks === 'function') {\n callbacks = { onSuccess: callbacks };\n } else if (!this._isPlainObject(callbacks) || typeof (callbacks.onSuccess) === 'undefined') {\n this._cache.opStatus = WAMP_ERROR_MSG.NO_CALLBACK_SPEC;\n\n if (this._isPlainObject(callbacks) && callbacks.onError) {\n callbacks.onError(this._cache.opStatus.description);\n }\n\n return this;\n }\n\n if (typeof (advancedOptions) !== 'undefined') {\n\n if (this._isPlainObject(advancedOptions)) {\n if (advancedOptions.hasOwnProperty('disclose_me')) {\n options.disclose_me = advancedOptions.disclose_me === true;\n }\n\n if (advancedOptions.hasOwnProperty('receive_progress')) {\n options.receive_progress = advancedOptions.receive_progress === true;\n }\n\n if (advancedOptions.hasOwnProperty('timeout')) {\n if (typeof advancedOptions.timeout === 'number') {\n options.timeout = advancedOptions.timeout;\n } else {\n err = true;\n }\n }\n\n } else {\n err = true;\n }\n\n if (err) {\n this._cache.opStatus = WAMP_ERROR_MSG.INVALID_PARAM;\n\n if (this._isPlainObject(callbacks) && callbacks.onError) {\n callbacks.onError(this._cache.opStatus.description);\n }\n\n return this;\n }\n }\n\n do {\n reqId = this._getReqId();\n } while (reqId in this._calls);\n\n this._calls[reqId] = callbacks;\n\n // WAMP SPEC: [CALL, Request|id, Options|dict, Procedure|uri, (Arguments|list, ArgumentsKw|dict)]\n if (payload === null) {\n msg = [WAMP_MSG_SPEC.CALL, reqId, options, topicURI];\n } else {\n if (this._isArray(payload)) {\n msg = [WAMP_MSG_SPEC.CALL, reqId, options, topicURI, payload];\n } else if (this._isPlainObject(payload)) {\n msg = [WAMP_MSG_SPEC.CALL, reqId, options, topicURI, [], payload];\n } else { // assume it's a single value\n msg = [WAMP_MSG_SPEC.CALL, reqId, options, topicURI, [payload]];\n }\n }\n\n this._send(msg);\n this._cache.opStatus = WAMP_ERROR_MSG.SUCCESS;\n this._cache.opStatus.reqId = reqId;\n return this;\n }\n\n /**\n * RPC invocation cancelling\n *\n * @param {int} reqId RPC call request ID\n * @param {function|object} callbacks - if it is a function - it will be called if successfully\n * sent canceling message or it can be hash table of callbacks:\n * { onSuccess: will be called if successfully sent canceling message\n * onError: will be called if some error occurred }\n * @param {object} advancedOptions - optional parameter. Must include any or all of the options:\n * { mode: string|one of the possible modes:\n * \"skip\" | \"kill\" | \"killnowait\". Skip is default.\n * }\n *\n * @returns {Wampy}\n */\n cancel (reqId, callbacks, advancedOptions) {\n const options = { mode: 'skip' };\n\n if (!this._preReqChecks(null, 'dealer', callbacks)) {\n return this;\n }\n\n if (!reqId || !this._calls[reqId]) {\n this._cache.opStatus = WAMP_ERROR_MSG.NON_EXIST_RPC_REQ_ID;\n\n if (this._isPlainObject(callbacks) && callbacks.onError) {\n callbacks.onError(this._cache.opStatus.description);\n }\n\n return this;\n }\n\n if ((typeof (advancedOptions) !== 'undefined') &&\n (this._isPlainObject(advancedOptions)) &&\n (advancedOptions.hasOwnProperty('mode'))) {\n\n options.mode = /skip|kill|killnowait/.test(advancedOptions.mode) ? advancedOptions.mode : 'skip';\n }\n\n // WAMP SPEC: [CANCEL, CALL.Request|id, Options|dict]\n this._send([WAMP_MSG_SPEC.CANCEL, reqId, options]);\n this._cache.opStatus = WAMP_ERROR_MSG.SUCCESS;\n this._cache.opStatus.reqId = reqId;\n\n callbacks.onSuccess && callbacks.onSuccess();\n\n return this;\n }\n\n /**\n * RPC registration for invocation\n * @param {string} topicURI\n * @param {function|object} callbacks - if it is a function - it will be treated as rpc itself\n * or it can be hash table of callbacks:\n * { rpc: registered procedure\n * onSuccess: will be called on successful registration\n * onError: will be called if registration would be aborted }\n * @returns {Wampy}\n */\n register (topicURI, callbacks) {\n let reqId;\n\n if (!this._preReqChecks(topicURI, 'dealer', callbacks)) {\n return this;\n }\n\n if (typeof callbacks === 'function') {\n callbacks = { rpc: callbacks };\n } else if (!this._isPlainObject(callbacks) || typeof (callbacks.rpc) === 'undefined') {\n this._cache.opStatus = WAMP_ERROR_MSG.NO_CALLBACK_SPEC;\n\n if (this._isPlainObject(callbacks) && callbacks.onError) {\n callbacks.onError(this._cache.opStatus.description);\n }\n\n return this;\n }\n\n if (!this._rpcRegs[topicURI] || !this._rpcRegs[topicURI].callbacks.length) {\n // no such registration or processing unregistering\n\n reqId = this._getReqId();\n\n this._requests[reqId] = {\n topic: topicURI,\n callbacks: callbacks\n };\n\n // WAMP SPEC: [REGISTER, Request|id, Options|dict, Procedure|uri]\n this._send([WAMP_MSG_SPEC.REGISTER, reqId, {}, topicURI]);\n this._cache.opStatus = WAMP_ERROR_MSG.SUCCESS;\n this._cache.opStatus.reqId = reqId;\n } else { // already have registration with such topicURI\n this._cache.opStatus = WAMP_ERROR_MSG.RPC_ALREADY_REGISTERED;\n\n if (this._isPlainObject(callbacks) && callbacks.onError) {\n callbacks.onError(this._cache.opStatus.description);\n }\n\n }\n\n return this;\n\n }\n\n /**\n * RPC unregistration for invocation\n * @param {string} topicURI\n * @param {function|object} callbacks - if it is a function, it will be called on successful unregistration\n * or it can be hash table of callbacks:\n * { onSuccess: will be called on successful unregistration\n * onError: will be called if unregistration would be aborted }\n * @returns {Wampy}\n */\n unregister (topicURI, callbacks) {\n let reqId;\n\n if (!this._preReqChecks(topicURI, 'dealer', callbacks)) {\n return this;\n }\n\n if (typeof callbacks === 'function') {\n callbacks = { onSuccess: callbacks };\n }\n\n if (this._rpcRegs[topicURI]) { // there is such registration\n\n reqId = this._getReqId();\n\n this._requests[reqId] = {\n topic: topicURI,\n callbacks: callbacks\n };\n\n // WAMP SPEC: [UNREGISTER, Request|id, REGISTERED.Registration|id]\n this._send([WAMP_MSG_SPEC.UNREGISTER, reqId, this._rpcRegs[topicURI].id]);\n this._cache.opStatus = WAMP_ERROR_MSG.SUCCESS;\n this._cache.opStatus.reqId = reqId;\n } else { // there is no registration with such topicURI\n this._cache.opStatus = WAMP_ERROR_MSG.NON_EXIST_RPC_UNREG;\n\n if (this._isPlainObject(callbacks) && callbacks.onError) {\n callbacks.onError(this._cache.opStatus.description);\n }\n\n }\n\n return this;\n }\n}\n\nexport default Wampy;\nexport { Wampy };\n"]} \ No newline at end of file +{"version":3,"sources":["../src/wampy.js"],"names":["Wampy","url","options","version","_url","_protocols","_wamp_features","agent","roles","publisher","features","subscriber_blackwhite_listing","publisher_exclusion","publisher_identification","subscriber","caller","caller_identification","progressive_call_results","call_canceling","call_timeout","callee","_cache","sessionId","reqId","server_wamp_features","isSayingGoodbye","opStatus","code","description","timer","reconnectingAttempts","_ws","_wsQueue","_requests","_calls","_subscriptions","_subsTopics","Set","_rpcRegs","_rpcNames","_options","debug","autoReconnect","reconnectInterval","maxRetries","realm","helloCustomDetails","authid","authmethods","onChallenge","onConnect","onClose","onError","onReconnect","onReconnectSuccess","ws","serializer","JsonSerializer","_isPlainObject","_merge","connect","console","log","arguments","obj","l","length","i","attr","Array","isArray","constructor","Object","unshift","protocol","topicURI","role","callbacks","flag","WAMP_ERROR_MSG","toUpperCase","_validateURI","URI_ERROR","uri","re","test","indexOf","msg","encode","e","Error","decode","push","_encode","readyState","send","shift","onopen","_wsOnOpen","onclose","_wsOnClose","event","onmessage","_wsOnMessage","onerror","_wsOnError","error","_authmethods","_log","split","type","binaryType","WAMP_MSG_SPEC","HELLO","root","isNode","global","window","setTimeout","_wsReconnect","_resetState","data","id","p","_decode","WELCOME","_renewSubscriptions","_renewRegistrations","_send","ABORT","message","close","CHALLENGE","Promise","resolve","reject","then","key","AUTHENTICATE","catch","CRA_EXCEPTION","NO_CRA_CB_OR_ID","GOODBYE","ERROR","SUBSCRIBE","UNSUBSCRIBE","PUBLISH","REGISTER","UNREGISTER","INVOCATION","CALL","SUBSCRIBED","topic","onEvent","add","onSuccess","UNSUBSCRIBED","has","delete","PUBLISHED","EVENT","RESULT","progress","REGISTERED","rpc","UNREGISTERED","results","YIELD","_isArray","details","argsList","argsDict","NON_EXIST_RPC_INVOCATION","_initWsCallbacks","subs","st","subscribe","rpcs","rn","rpcName","register","opts","authp","_setWsProtocols","NO_WS_OR_URL","NO_REALM","SUCCESS","_preReqChecks","NO_CALLBACK_SPEC","_getReqId","splice","NON_EXIST_UNSUBSCRIBE","payload","advancedOptions","err","acknowledge","exclude","exclude_authid","exclude_authrole","eligible","eligible_authid","eligible_authrole","hasOwnProperty","exclude_me","disclose_me","INVALID_PARAM","receive_progress","timeout","mode","NON_EXIST_RPC_REQ_ID","CANCEL","RPC_ALREADY_REGISTERED","NON_EXIST_RPC_UNREG"],"mappings":"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","file":"wampy.js","sourcesContent":["/**\n * Project: wampy.js\n *\n * https://github.com/KSDaemon/wampy.js\n *\n * A lightweight client-side implementation of\n * WAMP (The WebSocket Application Messaging Protocol v2)\n * http://wamp.ws\n *\n * Provides asynchronous RPC/PubSub over WebSocket.\n *\n * Copyright 2014 KSDaemon. Licensed under the MIT License.\n * See @license text at http://www.opensource.org/licenses/mit-license.php\n *\n */\n\nimport { WAMP_MSG_SPEC, WAMP_ERROR_MSG, isNode } from './constants';\nimport { getWebSocket, isBinaryTypeAllowed } from './utils';\nimport { JsonSerializer } from './serializers/JsonSerializer';\n\n/**\n * WAMP Client Class\n */\nclass Wampy {\n\n /**\n * Wampy constructor\n * @param {string} url\n * @param {Object} options\n */\n constructor (url, options) {\n\n /**\n * Wampy version\n * @type {string}\n * @private\n */\n this.version = 'v5.0.2';\n\n /**\n * WS Url\n * @type {string}\n * @private\n */\n this._url = (typeof url === 'string') ? url : null;\n\n /**\n * WS protocols\n * @type {Array}\n * @private\n */\n this._protocols = ['wamp.2.json'];\n\n /**\n * WAMP features, supported by Wampy\n * @type {object}\n * @private\n */\n this._wamp_features = {\n agent: 'Wampy.js ' + this.version,\n roles: {\n publisher: {\n features: {\n subscriber_blackwhite_listing: true,\n publisher_exclusion: true,\n publisher_identification: true\n }\n },\n subscriber: {},\n caller: {\n features: {\n caller_identification: true,\n progressive_call_results: true,\n call_canceling: true,\n call_timeout: true\n }\n },\n callee: {\n features: {\n caller_identification: true\n }\n }\n }\n };\n\n /**\n * Internal cache for object lifetime\n * @type {Object}\n * @private\n */\n this._cache = {\n /**\n * WAMP Session ID\n * @type {string}\n */\n sessionId: null,\n\n /**\n * WAMP Session scope requests ID\n * @type {int}\n */\n reqId: 0,\n\n /**\n * Server WAMP roles and features\n */\n server_wamp_features: { roles: {} },\n\n /**\n * Are we in state of saying goodbye\n * @type {boolean}\n */\n isSayingGoodbye: false,\n\n /**\n * Status of last operation\n */\n opStatus: { code: 0, description: 'Success!', reqId: 0 },\n\n /**\n * Timer for reconnection\n * @type {null}\n */\n timer: null,\n\n /**\n * Reconnection attempts\n * @type {number}\n */\n reconnectingAttempts: 0\n };\n\n /**\n * WebSocket object\n * @type {Object}\n * @private\n */\n this._ws = null;\n\n /**\n * Internal queue for websocket requests, for case of disconnect\n * @type {Array}\n * @private\n */\n this._wsQueue = [];\n\n /**\n * Internal queue for wamp requests\n * @type {object}\n * @private\n */\n this._requests = {};\n\n /**\n * Stored RPC\n * @type {object}\n * @private\n */\n this._calls = {};\n\n /**\n * Stored Pub/Sub\n * @type {object}\n * @private\n */\n this._subscriptions = {};\n\n /**\n * Stored Pub/Sub topics\n * @type {Array}\n * @private\n */\n this._subsTopics = new Set();\n\n /**\n * Stored RPC Registrations\n * @type {object}\n * @private\n */\n this._rpcRegs = {};\n\n /**\n * Stored RPC names\n * @type {Array}\n * @private\n */\n this._rpcNames = new Set();\n\n /**\n * Options hash-table\n * @type {Object}\n * @private\n */\n this._options = {\n /**\n * Logging\n * @type {boolean}\n */\n debug: false,\n\n /**\n * Reconnecting flag\n * @type {boolean}\n */\n autoReconnect: true,\n\n /**\n * Reconnecting interval (in ms)\n * @type {number}\n */\n reconnectInterval: 2 * 1000,\n\n /**\n * Maximum reconnection retries\n * @type {number}\n */\n maxRetries: 25,\n\n /**\n * WAMP Realm to join\n * @type {string}\n */\n realm: null,\n\n /**\n * Custom attributes to send to router on hello\n * @type {object}\n */\n helloCustomDetails: null,\n\n /**\n * Authentication id to use in challenge\n * @type {string}\n */\n authid: null,\n\n /**\n * Supported authentication methods\n * @type {array}\n */\n authmethods: [],\n\n /**\n * onChallenge callback\n * @type {function}\n */\n onChallenge: null,\n\n /**\n * onConnect callback\n * @type {function}\n */\n onConnect: null,\n\n /**\n * onClose callback\n * @type {function}\n */\n onClose: null,\n\n /**\n * onError callback\n * @type {function}\n */\n onError: null,\n\n /**\n * onReconnect callback\n * @type {function}\n */\n onReconnect: null,\n\n /**\n * onReconnectSuccess callback\n * @type {function}\n */\n onReconnectSuccess: null,\n\n /**\n * User provided WebSocket class\n * @type {function}\n */\n ws: null,\n\n /**\n * User provided msgpack class\n * @type {object}\n */\n serializer: new JsonSerializer()\n };\n\n if (this._isPlainObject(options)) {\n this._options = this._merge(this._options, options);\n } else if (this._isPlainObject(url)) {\n this._options = this._merge(this._options, url);\n }\n\n this.connect();\n }\n\n /* Internal utils methods */\n /**\n * Internal logger\n * @private\n */\n _log () {\n if (this._options.debug) {\n console.log(arguments);\n }\n }\n\n /**\n * Get the new unique request id\n * @returns {number}\n * @private\n */\n _getReqId () {\n return ++this._cache.reqId;\n }\n\n /**\n * Merge argument objects into one\n * @returns {Object}\n * @private\n */\n _merge () {\n const obj = {}, l = arguments.length;\n let i, attr;\n\n for (i = 0; i < l; i++) {\n for (attr in arguments[i]) {\n obj[attr] = arguments[i][attr];\n }\n }\n\n return obj;\n }\n\n /**\n * Check if value is array\n * @param obj\n * @returns {boolean}\n * @private\n */\n _isArray (obj) {\n return (!!obj) && (Array.isArray(obj));\n }\n\n /**\n * Check if value is object literal\n * @param obj\n * @returns {boolean}\n * @private\n */\n _isPlainObject (obj) {\n return (!!obj) && (obj.constructor === Object);\n }\n\n /**\n * Fix websocket protocols based on options\n * @private\n */\n _setWsProtocols () {\n if (!(this._options.serializer instanceof JsonSerializer)) {\n this._protocols.unshift('wamp.2.' + this._options.serializer.protocol);\n }\n }\n\n /**\n * Prerequisite checks for any wampy api call\n * @param {string} topicURI\n * @param {string} role\n * @param {object} callbacks\n * @returns {boolean}\n * @private\n */\n _preReqChecks (topicURI, role, callbacks) {\n let flag = true;\n\n if (this._cache.sessionId && !this._cache.server_wamp_features.roles[role]) {\n this._cache.opStatus = WAMP_ERROR_MSG['NO_' + role.toUpperCase()];\n flag = false;\n }\n\n if (topicURI && !this._validateURI(topicURI)) {\n this._cache.opStatus = WAMP_ERROR_MSG.URI_ERROR;\n flag = false;\n }\n\n if (flag) {\n return true;\n }\n\n if (this._isPlainObject(callbacks) && callbacks.onError) {\n callbacks.onError(this._cache.opStatus.description);\n }\n\n return false;\n }\n\n /**\n * Validate uri\n * @param {string} uri\n * @returns {boolean}\n * @private\n */\n _validateURI (uri) {\n const re = /^([0-9a-zA-Z_]{2,}\\.)*([0-9a-zA-Z_]{2,})$/;\n return !(!re.test(uri) || uri.indexOf('wamp') === 0);\n }\n\n /**\n * Encode WAMP message\n * @param {Array} msg\n * @returns {*}\n * @private\n */\n _encode (msg) {\n try {\n return this._options.serializer.encode(msg);\n } catch (e) {\n throw new Error('[wampy] encoding exception!');\n }\n }\n\n /**\n * Decode WAMP message\n * @param msg\n * @returns {array}\n * @private\n */\n _decode (msg) {\n try {\n return this._options.serializer.decode(msg);\n } catch (e) {\n throw new Error('[wampy] decoding exception!');\n }\n }\n\n /**\n * Send encoded message to server\n * @param {Array} msg\n * @private\n */\n _send (msg) {\n if (msg) {\n this._wsQueue.push(this._encode(msg));\n }\n\n if (this._ws && this._ws.readyState === 1 && this._cache.sessionId) {\n while (this._wsQueue.length) {\n this._ws.send(this._wsQueue.shift());\n }\n }\n }\n\n /**\n * Reset internal state and cache\n * @private\n */\n _resetState () {\n this._wsQueue = [];\n this._subscriptions = {};\n this._subsTopics = new Set();\n this._requests = {};\n this._calls = {};\n this._rpcRegs = {};\n this._rpcNames = new Set();\n\n // Just keep attrs that are have to be present\n this._cache = {\n reqId: 0,\n reconnectingAttempts: 0\n };\n }\n\n /**\n * Initialize internal websocket callbacks\n * @private\n */\n _initWsCallbacks () {\n if (this._ws) {\n this._ws.onopen = () => {\n this._wsOnOpen();\n };\n this._ws.onclose = event => {\n this._wsOnClose(event);\n };\n this._ws.onmessage = event => {\n this._wsOnMessage(event);\n };\n this._ws.onerror = error => {\n this._wsOnError(error);\n };\n }\n }\n\n /**\n * Internal websocket on open callback\n * @private\n */\n _wsOnOpen () {\n const options = this._merge(this._options.helloCustomDetails, this._wamp_features);\n\n if (this._options.authid) {\n options.authmethods = this._options._authmethods;\n options.authid = this._options.authid;\n }\n\n this._log('[wampy] websocket connected');\n\n if (this._ws.protocol && this._options.serializer.protocol !== this._ws.protocol.split('.')[2]) {\n // Server have chosen not our preferred protocol, so let's switch back to json\n this._options.serializer = new JsonSerializer();\n }\n\n const type = this._options.serializer.binaryType;\n\n if (!isBinaryTypeAllowed(type)) {\n throw new Error('Binary type is not allowed: ' + type);\n }\n\n this._ws.binaryType = type;\n\n // WAMP SPEC: [HELLO, Realm|uri, Details|dict]\n // Sending directly 'cause it's a hello msg and no sessionId check is needed\n this._ws.send(this._encode([WAMP_MSG_SPEC.HELLO, this._options.realm, options]));\n }\n\n /**\n * Internal websocket on close callback\n * @param {object} event\n * @private\n */\n _wsOnClose (event) {\n const root = isNode ? global : window;\n this._log('[wampy] websocket disconnected. Info: ', event);\n\n // Automatic reconnection\n if ((this._cache.sessionId || this._cache.reconnectingAttempts) &&\n this._options.autoReconnect && this._cache.reconnectingAttempts < this._options.maxRetries && !this._cache.isSayingGoodbye) {\n this._cache.sessionId = null;\n this._cache.timer = root.setTimeout(\n () => {\n this._wsReconnect();\n },\n this._options.reconnectInterval\n );\n } else {\n // No reconnection needed or reached max retries count\n if (this._options.onClose) {\n this._options.onClose();\n }\n\n this._resetState();\n this._ws = null;\n }\n }\n\n /**\n * Internal websocket on event callback\n * @param {object} event\n * @private\n */\n _wsOnMessage (event) {\n let data, id, i, msg, p;\n\n this._log('[wampy] websocket message received', event.data);\n\n data = this._decode(event.data);\n\n switch (data[0]) {\n case WAMP_MSG_SPEC.WELCOME:\n // WAMP SPEC: [WELCOME, Session|id, Details|dict]\n\n this._cache.sessionId = data[1];\n this._cache.server_wamp_features = data[2];\n\n if (this._cache.reconnectingAttempts) {\n // There was reconnection\n\n this._cache.reconnectingAttempts = 0;\n\n if (this._options.onReconnectSuccess) {\n this._options.onReconnectSuccess();\n }\n\n // Let's renew all previous state\n this._renewSubscriptions();\n this._renewRegistrations();\n\n } else {\n // Firing onConnect event on real connection to WAMP server\n if (this._options.onConnect) {\n this._options.onConnect();\n }\n }\n\n // Send local queue if there is something out there\n this._send();\n\n break;\n case WAMP_MSG_SPEC.ABORT:\n // WAMP SPEC: [ABORT, Details|dict, Reason|uri]\n if (this._options.onError) {\n this._options.onError(data[1].message ? data[1].message : data[2]);\n }\n this._ws.close();\n break;\n case WAMP_MSG_SPEC.CHALLENGE:\n // WAMP SPEC: [CHALLENGE, AuthMethod|string, Extra|dict]\n\n if (this._options.authid && typeof this._options.onChallenge === 'function') {\n\n p = new Promise((resolve, reject) => {\n resolve(this._options.onChallenge(data[1], data[2]));\n });\n\n p.then((key) => {\n\n // Sending directly 'cause it's a challenge msg and no sessionId check is needed\n this._ws.send(this._encode([WAMP_MSG_SPEC.AUTHENTICATE, key, {}]));\n\n }).catch(e => {\n this._ws.send(this._encode([\n WAMP_MSG_SPEC.ABORT,\n { message: 'Exception in onChallenge handler raised!' },\n 'wamp.error.cannot_authenticate'\n ]));\n if (this._options.onError) {\n this._options.onError(WAMP_ERROR_MSG.CRA_EXCEPTION.description);\n }\n this._ws.close();\n this._cache.opStatus = WAMP_ERROR_MSG.CRA_EXCEPTION;\n });\n\n } else {\n\n this._ws.send(this._encode([\n WAMP_MSG_SPEC.ABORT,\n { message: WAMP_ERROR_MSG.NO_CRA_CB_OR_ID.description },\n 'wamp.error.cannot_authenticate'\n ]));\n if (this._options.onError) {\n this._options.onError(WAMP_ERROR_MSG.NO_CRA_CB_OR_ID.description);\n }\n this._ws.close();\n this._cache.opStatus = WAMP_ERROR_MSG.NO_CRA_CB_OR_ID;\n\n }\n break;\n case WAMP_MSG_SPEC.GOODBYE:\n // WAMP SPEC: [GOODBYE, Details|dict, Reason|uri]\n if (!this._cache.isSayingGoodbye) { // get goodbye, initiated by server\n this._cache.isSayingGoodbye = true;\n this._send([WAMP_MSG_SPEC.GOODBYE, {}, 'wamp.error.goodbye_and_out']);\n }\n this._cache.sessionId = null;\n this._ws.close();\n break;\n case WAMP_MSG_SPEC.ERROR:\n // WAMP SPEC: [ERROR, REQUEST.Type|int, REQUEST.Request|id, Details|dict,\n // Error|uri, (Arguments|list, ArgumentsKw|dict)]\n switch (data[1]) {\n case WAMP_MSG_SPEC.SUBSCRIBE:\n case WAMP_MSG_SPEC.UNSUBSCRIBE:\n case WAMP_MSG_SPEC.PUBLISH:\n case WAMP_MSG_SPEC.REGISTER:\n case WAMP_MSG_SPEC.UNREGISTER:\n\n this._requests[data[2]] && this._requests[data[2]].callbacks.onError &&\n this._requests[data[2]].callbacks.onError(data[4], data[3], data[5], data[6]);\n delete this._requests[data[2]];\n\n break;\n case WAMP_MSG_SPEC.INVOCATION:\n break;\n case WAMP_MSG_SPEC.CALL:\n\n // WAMP SPEC: [ERROR, CALL, CALL.Request|id, Details|dict,\n // Error|uri, Arguments|list, ArgumentsKw|dict]\n this._calls[data[2]] && this._calls[data[2]].onError &&\n this._calls[data[2]].onError(data[4], data[3], data[5], data[6]);\n delete this._calls[data[2]];\n\n break;\n default:\n this._log('[wampy] Received non-compliant WAMP ERROR message');\n break;\n }\n break;\n case WAMP_MSG_SPEC.SUBSCRIBED:\n // WAMP SPEC: [SUBSCRIBED, SUBSCRIBE.Request|id, Subscription|id]\n if (this._requests[data[1]]) {\n this._subscriptions[this._requests[data[1]].topic] = this._subscriptions[data[2]] = {\n id: data[2],\n callbacks: [this._requests[data[1]].callbacks.onEvent]\n };\n\n this._subsTopics.add(this._requests[data[1]].topic);\n\n if (this._requests[data[1]].callbacks.onSuccess) {\n this._requests[data[1]].callbacks.onSuccess();\n }\n\n delete this._requests[data[1]];\n\n }\n break;\n case WAMP_MSG_SPEC.UNSUBSCRIBED:\n // WAMP SPEC: [UNSUBSCRIBED, UNSUBSCRIBE.Request|id]\n if (this._requests[data[1]]) {\n id = this._subscriptions[this._requests[data[1]].topic].id;\n delete this._subscriptions[this._requests[data[1]].topic];\n delete this._subscriptions[id];\n\n if (this._subsTopics.has(this._requests[data[1]].topic)) {\n this._subsTopics.delete(this._requests[data[1]].topic);\n }\n\n if (this._requests[data[1]].callbacks.onSuccess) {\n this._requests[data[1]].callbacks.onSuccess();\n }\n\n delete this._requests[data[1]];\n }\n break;\n case WAMP_MSG_SPEC.PUBLISHED:\n // WAMP SPEC: [PUBLISHED, PUBLISH.Request|id, Publication|id]\n if (this._requests[data[1]]) {\n if (this._requests[data[1]].callbacks && this._requests[data[1]].callbacks.onSuccess) {\n this._requests[data[1]].callbacks.onSuccess();\n }\n\n delete this._requests[data[1]];\n\n }\n break;\n case WAMP_MSG_SPEC.EVENT:\n if (this._subscriptions[data[1]]) {\n\n // WAMP SPEC: [EVENT, SUBSCRIBED.Subscription|id, PUBLISHED.Publication|id,\n // Details|dict, PUBLISH.Arguments|list, PUBLISH.ArgumentKw|dict]\n\n i = this._subscriptions[data[1]].callbacks.length;\n while (i--) {\n this._subscriptions[data[1]].callbacks[i](data[4], data[5]);\n }\n\n }\n break;\n case WAMP_MSG_SPEC.RESULT:\n if (this._calls[data[1]]) {\n\n // WAMP SPEC: [RESULT, CALL.Request|id, Details|dict,\n // YIELD.Arguments|list, YIELD.ArgumentsKw|dict]\n\n this._calls[data[1]].onSuccess(data[3], data[4]);\n if (!(data[2].progress && data[2].progress === true)) {\n // We receive final result (progressive or not)\n delete this._calls[data[1]];\n }\n\n }\n break;\n // case WAMP_MSG_SPEC.REGISTER:\n // // WAMP SPEC:\n // break;\n case WAMP_MSG_SPEC.REGISTERED:\n // WAMP SPEC: [REGISTERED, REGISTER.Request|id, Registration|id]\n if (this._requests[data[1]]) {\n this._rpcRegs[this._requests[data[1]].topic] = this._rpcRegs[data[2]] = {\n id: data[2],\n callbacks: [this._requests[data[1]].callbacks.rpc]\n };\n\n this._rpcNames.add(this._requests[data[1]].topic);\n\n if (this._requests[data[1]].callbacks && this._requests[data[1]].callbacks.onSuccess) {\n this._requests[data[1]].callbacks.onSuccess();\n }\n\n delete this._requests[data[1]];\n\n }\n break;\n // case WAMP_MSG_SPEC.UNREGISTER:\n // // WAMP SPEC:\n // break;\n case WAMP_MSG_SPEC.UNREGISTERED:\n // WAMP SPEC: [UNREGISTERED, UNREGISTER.Request|id]\n if (this._requests[data[1]]) {\n id = this._rpcRegs[this._requests[data[1]].topic].id;\n delete this._rpcRegs[this._requests[data[1]].topic];\n delete this._rpcRegs[id];\n\n if (this._rpcNames.has(this._requests[data[1]].topic)) {\n this._rpcNames.delete(this._requests[data[1]].topic);\n }\n\n if (this._requests[data[1]].callbacks && this._requests[data[1]].callbacks.onSuccess) {\n this._requests[data[1]].callbacks.onSuccess();\n }\n\n delete this._requests[data[1]];\n }\n break;\n case WAMP_MSG_SPEC.INVOCATION:\n if (this._rpcRegs[data[2]]) {\n\n // WAMP SPEC: [INVOCATION, Request|id, REGISTERED.Registration|id,\n // Details|dict, CALL.Arguments|list, CALL.ArgumentsKw|dict]\n\n p = new Promise((resolve, reject) => {\n resolve(this._rpcRegs[data[2]].callbacks[0](data[4], data[5], data[3]));\n });\n\n p.then((results) => {\n // WAMP SPEC: [YIELD, INVOCATION.Request|id, Options|dict, (Arguments|list, ArgumentsKw|dict)]\n msg = [WAMP_MSG_SPEC.YIELD, data[1], {}];\n if (this._isArray(results)) {\n // Options\n if (this._isPlainObject(results[0])) {\n msg[2] = results[0];\n }\n\n if (this._isArray(results[1])) {\n msg.push(results[1]);\n } else if (typeof (results[1]) !== 'undefined') {\n msg.push([results[1]]);\n }\n\n if (this._isPlainObject(results[2])) {\n if (msg.length === 3) {\n msg.push([]);\n }\n msg.push(results[2]);\n }\n } else {\n msg = [WAMP_MSG_SPEC.YIELD, data[1], {}];\n }\n this._send(msg);\n\n }).catch(e => {\n let msg = [WAMP_MSG_SPEC.ERROR, WAMP_MSG_SPEC.INVOCATION,\n data[1], e.details || {}, e.uri || 'wamp.error.invocation_exception'];\n\n if (e.argsList && this._isArray(e.argsList)) {\n msg.push(e.argsList);\n }\n\n if (e.argsDict && this._isPlainObject(e.argsDict)) {\n if (msg.length === 5) {\n msg.push([]);\n }\n msg.push(e.argsDict);\n }\n this._send(msg);\n });\n\n } else {\n // WAMP SPEC: [ERROR, INVOCATION, INVOCATION.Request|id, Details|dict, Error|uri]\n this._send([WAMP_MSG_SPEC.ERROR, WAMP_MSG_SPEC.INVOCATION,\n data[1], {}, 'wamp.error.no_such_procedure']);\n this._cache.opStatus = WAMP_ERROR_MSG.NON_EXIST_RPC_INVOCATION;\n }\n\n break;\n // case WAMP_MSG_SPEC.INTERRUPT:\n // // WAMP SPEC:\n // break;\n // case WAMP_MSG_SPEC.YIELD:\n // // WAMP SPEC:\n // break;\n default:\n this._log('[wampy] Received non-compliant WAMP message');\n break;\n }\n }\n\n /**\n * Internal websocket on error callback\n * @param {object} error\n * @private\n */\n _wsOnError (error) {\n this._log('[wampy] websocket error');\n\n if (this._options.onError) {\n this._options.onError(error);\n }\n }\n\n /**\n * Reconnect to server in case of websocket error\n * @private\n */\n _wsReconnect () {\n this._log('[wampy] websocket reconnecting...');\n\n if (this._options.onReconnect) {\n this._options.onReconnect();\n }\n\n this._cache.reconnectingAttempts++;\n this._ws = getWebSocket(this._url, this._protocols, this._options.ws);\n this._initWsCallbacks();\n }\n\n /**\n * Resubscribe to topics in case of communication error\n * @private\n */\n _renewSubscriptions () {\n let i;\n const subs = this._subscriptions,\n st = this._subsTopics;\n\n this._subscriptions = {};\n this._subsTopics = new Set();\n\n for (let topic of st) {\n i = subs[topic].callbacks.length;\n while (i--) {\n this.subscribe(topic, subs[topic].callbacks[i]);\n }\n }\n }\n\n /**\n * Reregister RPCs in case of communication error\n * @private\n */\n _renewRegistrations () {\n const rpcs = this._rpcRegs,\n rn = this._rpcNames;\n\n this._rpcRegs = {};\n this._rpcNames = new Set();\n\n for (let rpcName of rn) {\n this.register(rpcName, { rpc: rpcs[rpcName].callbacks[0] });\n }\n }\n\n /* Wampy public API */\n\n /**\n * Get or set Wampy options\n *\n * To get options - call without parameters\n * To set options - pass hash-table with options values\n *\n * @param {object} opts\n * @returns {*}\n */\n options (opts) {\n if (typeof (opts) === 'undefined') {\n return this._options;\n } else if (this._isPlainObject(opts)) {\n this._options = this._merge(this._options, opts);\n return this;\n }\n }\n\n /**\n * Get the status of last operation\n *\n * @returns {object} with 2 fields: code, description\n * code: 0 - if operation was successful\n * code > 0 - if error occurred\n * description contains details about error\n * reqId: last send request ID\n */\n getOpStatus () {\n return this._cache.opStatus;\n }\n\n /**\n * Get the WAMP Session ID\n *\n * @returns {string} Session ID\n */\n getSessionId () {\n return this._cache.sessionId;\n }\n\n /**\n * Connect to server\n * @param {string} url New url (optional)\n * @returns {Wampy}\n */\n connect (url) {\n if (url) {\n this._url = url;\n }\n\n if (this._options.realm) {\n\n const authp = (this._options.authid ? 1 : 0) +\n ((this._isArray(this._options.authmethods) && this._options.authmethods.length) ? 1 : 0) +\n (typeof this._options.onChallenge === 'function' ? 1 : 0);\n\n if (authp > 0 && authp < 3) {\n this._cache.opStatus = WAMP_ERROR_MSG.NO_CRA_CB_OR_ID;\n return this;\n }\n\n this._setWsProtocols();\n this._ws = getWebSocket(this._url, this._protocols, this._options.ws);\n if (!this._ws) {\n this._cache.opStatus = WAMP_ERROR_MSG.NO_WS_OR_URL;\n return this;\n }\n this._initWsCallbacks();\n\n } else {\n this._cache.opStatus = WAMP_ERROR_MSG.NO_REALM;\n }\n\n return this;\n }\n\n /**\n * Disconnect from server\n * @returns {Wampy}\n */\n disconnect () {\n if (this._cache.sessionId) {\n // need to send goodbye message to server\n this._cache.isSayingGoodbye = true;\n this._send([WAMP_MSG_SPEC.GOODBYE, {}, 'wamp.error.system_shutdown']);\n } else if (this._ws) {\n this._ws.close();\n }\n\n this._cache.opStatus = WAMP_ERROR_MSG.SUCCESS;\n\n return this;\n }\n\n /**\n * Abort WAMP session establishment\n *\n * @returns {Wampy}\n */\n abort () {\n\n if (!this._cache.sessionId && this._ws.readyState === 1) {\n this._send([WAMP_MSG_SPEC.ABORT, {}, 'wamp.error.abort']);\n this._cache.sessionId = null;\n }\n\n this._ws.close();\n this._cache.opStatus = WAMP_ERROR_MSG.SUCCESS;\n\n return this;\n }\n\n /**\n * Subscribe to a topic on a broker\n *\n * @param {string} topicURI\n * @param {function|object} callbacks - if it is a function - it will be treated as published event callback\n * or it can be hash table of callbacks:\n * { onSuccess: will be called when subscribe would be confirmed\n * onError: will be called if subscribe would be aborted\n * onEvent: will be called on receiving published event }\n *\n * @returns {Wampy}\n */\n subscribe (topicURI, callbacks) {\n let reqId;\n\n if (!this._preReqChecks(topicURI, 'broker', callbacks)) {\n return this;\n }\n\n if (typeof callbacks === 'function') {\n callbacks = { onEvent: callbacks };\n } else if (!this._isPlainObject(callbacks) || typeof (callbacks.onEvent) === 'undefined') {\n this._cache.opStatus = WAMP_ERROR_MSG.NO_CALLBACK_SPEC;\n\n if (this._isPlainObject(callbacks) && callbacks.onError) {\n callbacks.onError(this._cache.opStatus.description);\n }\n\n return this;\n }\n\n if (!this._subscriptions[topicURI] || !this._subscriptions[topicURI].callbacks.length) {\n // no such subscription or processing unsubscribing\n\n reqId = this._getReqId();\n\n this._requests[reqId] = {\n topic: topicURI,\n callbacks: callbacks\n };\n\n // WAMP SPEC: [SUBSCRIBE, Request|id, Options|dict, Topic|uri]\n this._send([WAMP_MSG_SPEC.SUBSCRIBE, reqId, {}, topicURI]);\n\n } else { // already have subscription to this topic\n // There is no such callback yet\n if (this._subscriptions[topicURI].callbacks.indexOf(callbacks.onEvent) < 0) {\n this._subscriptions[topicURI].callbacks.push(callbacks.onEvent);\n }\n\n if (callbacks.onSuccess) {\n callbacks.onSuccess();\n }\n }\n\n this._cache.opStatus = WAMP_ERROR_MSG.SUCCESS;\n this._cache.opStatus.reqId = reqId;\n return this;\n }\n\n /**\n * Unsubscribe from topic\n * @param {string} topicURI\n * @param {function|object} callbacks - if it is a function - it will be treated as\n * published event callback to remove or it can be hash table of callbacks:\n * { onSuccess: will be called when unsubscribe would be confirmed\n * onError: will be called if unsubscribe would be aborted\n * onEvent: published event callback to remove }\n * @returns {Wampy}\n */\n unsubscribe (topicURI, callbacks) {\n let reqId, i = -1;\n\n if (!this._preReqChecks(null, 'broker', callbacks)) {\n return this;\n }\n\n if (this._subscriptions[topicURI]) {\n\n reqId = this._getReqId();\n\n if (typeof (callbacks) === 'undefined') {\n this._subscriptions[topicURI].callbacks = [];\n callbacks = {};\n } else if (typeof callbacks === 'function') {\n i = this._subscriptions[topicURI].callbacks.indexOf(callbacks);\n callbacks = {};\n } else if (callbacks.onEvent && typeof callbacks.onEvent === 'function') {\n i = this._subscriptions[topicURI].callbacks.indexOf(callbacks.onEvent);\n } else {\n this._subscriptions[topicURI].callbacks = [];\n }\n\n if (i >= 0) {\n this._subscriptions[topicURI].callbacks.splice(i, 1);\n }\n\n if (this._subscriptions[topicURI].callbacks.length) {\n // There are another callbacks for this topic\n this._cache.opStatus = WAMP_ERROR_MSG.SUCCESS;\n return this;\n }\n\n this._requests[reqId] = {\n topic: topicURI,\n callbacks: callbacks\n };\n\n // WAMP_SPEC: [UNSUBSCRIBE, Request|id, SUBSCRIBED.Subscription|id]\n this._send([WAMP_MSG_SPEC.UNSUBSCRIBE, reqId, this._subscriptions[topicURI].id]);\n\n } else {\n this._cache.opStatus = WAMP_ERROR_MSG.NON_EXIST_UNSUBSCRIBE;\n\n if (this._isPlainObject(callbacks) && callbacks.onError) {\n callbacks.onError(this._cache.opStatus.description);\n }\n\n return this;\n }\n\n this._cache.opStatus = WAMP_ERROR_MSG.SUCCESS;\n this._cache.opStatus.reqId = reqId;\n return this;\n }\n\n /**\n * Publish a event to topic\n * @param {string} topicURI\n * @param {string|number|Array|object} payload - optional parameter.\n * @param {object} callbacks - optional hash table of callbacks:\n * { onSuccess: will be called when publishing would be confirmed\n * onError: will be called if publishing would be aborted }\n * @param {object} advancedOptions - optional parameter. Must include any or all of the options:\n * { exclude: integer|array WAMP session id(s) that won't receive a published event,\n * even though they may be subscribed\n * exclude_authid: string|array Authentication id(s) that won't receive\n * a published event, even though they may be subscribed\n * exclude_authrole: string|array Authentication role(s) that won't receive\n * a published event, even though they may be subscribed\n * eligible: integer|array WAMP session id(s) that are allowed\n * to receive a published event\n * eligible_authid: string|array Authentication id(s) that are allowed\n * to receive a published event\n * eligible_authrole: string|array Authentication role(s) that are allowed\n * to receive a published event\n * exclude_me: bool flag of receiving publishing event by initiator\n * disclose_me: bool flag of disclosure of publisher identity (its WAMP session ID)\n * to receivers of a published event }\n * @returns {Wampy}\n */\n publish (topicURI, payload, callbacks, advancedOptions) {\n let reqId, msg, err = false;\n const options = {};\n\n if (!this._preReqChecks(topicURI, 'broker', callbacks)) {\n return this;\n }\n\n if (this._isPlainObject(callbacks)) {\n options.acknowledge = true;\n }\n\n if (typeof (advancedOptions) !== 'undefined') {\n\n if (this._isPlainObject(advancedOptions)) {\n if (advancedOptions.exclude) {\n if (this._isArray(advancedOptions.exclude) && advancedOptions.exclude.length) {\n options.exclude = advancedOptions.exclude;\n } else if (typeof advancedOptions.exclude === 'number') {\n options.exclude = [advancedOptions.exclude];\n } else {\n err = true;\n }\n }\n\n if (advancedOptions.exclude_authid) {\n if (this._isArray(advancedOptions.exclude_authid) && advancedOptions.exclude_authid.length) {\n options.exclude_authid = advancedOptions.exclude_authid;\n } else if (typeof advancedOptions.exclude_authid === 'string') {\n options.exclude_authid = [advancedOptions.exclude_authid];\n } else {\n err = true;\n }\n }\n\n if (advancedOptions.exclude_authrole) {\n if (this._isArray(advancedOptions.exclude_authrole) && advancedOptions.exclude_authrole.length) {\n options.exclude_authrole = advancedOptions.exclude_authrole;\n } else if (typeof advancedOptions.exclude_authrole === 'string') {\n options.exclude_authrole = [advancedOptions.exclude_authrole];\n } else {\n err = true;\n }\n }\n\n if (advancedOptions.eligible) {\n if (this._isArray(advancedOptions.eligible) && advancedOptions.eligible.length) {\n options.eligible = advancedOptions.eligible;\n } else if (typeof advancedOptions.eligible === 'number') {\n options.eligible = [advancedOptions.eligible];\n } else {\n err = true;\n }\n }\n\n if (advancedOptions.eligible_authid) {\n if (this._isArray(advancedOptions.eligible_authid) && advancedOptions.eligible_authid.length) {\n options.eligible_authid = advancedOptions.eligible_authid;\n } else if (typeof advancedOptions.eligible_authid === 'string') {\n options.eligible_authid = [advancedOptions.eligible_authid];\n } else {\n err = true;\n }\n }\n\n if (advancedOptions.eligible_authrole) {\n if (this._isArray(advancedOptions.eligible_authrole) && advancedOptions.eligible_authrole.length) {\n options.eligible_authrole = advancedOptions.eligible_authrole;\n } else if (typeof advancedOptions.eligible_authrole === 'string') {\n options.eligible_authrole = [advancedOptions.eligible_authrole];\n } else {\n err = true;\n }\n }\n\n if (advancedOptions.hasOwnProperty('exclude_me')) {\n options.exclude_me = advancedOptions.exclude_me !== false;\n }\n\n if (advancedOptions.hasOwnProperty('disclose_me')) {\n options.disclose_me = advancedOptions.disclose_me === true;\n }\n\n } else {\n err = true;\n }\n\n if (err) {\n this._cache.opStatus = WAMP_ERROR_MSG.INVALID_PARAM;\n\n if (this._isPlainObject(callbacks) && callbacks.onError) {\n callbacks.onError(this._cache.opStatus.description);\n }\n\n return this;\n }\n }\n\n reqId = this._getReqId();\n\n switch (arguments.length) {\n case 1:\n // WAMP_SPEC: [PUBLISH, Request|id, Options|dict, Topic|uri]\n msg = [WAMP_MSG_SPEC.PUBLISH, reqId, options, topicURI];\n break;\n case 2:\n // WAMP_SPEC: [PUBLISH, Request|id, Options|dict, Topic|uri, Arguments|list (, ArgumentsKw|dict)]\n if (this._isArray(payload)) {\n msg = [WAMP_MSG_SPEC.PUBLISH, reqId, options, topicURI, payload];\n } else if (this._isPlainObject(payload)) {\n msg = [WAMP_MSG_SPEC.PUBLISH, reqId, options, topicURI, [], payload];\n } else { // assume it's a single value\n msg = [WAMP_MSG_SPEC.PUBLISH, reqId, options, topicURI, [payload]];\n }\n break;\n default:\n this._requests[reqId] = {\n topic: topicURI,\n callbacks: callbacks\n };\n\n // WAMP_SPEC: [PUBLISH, Request|id, Options|dict, Topic|uri, Arguments|list (, ArgumentsKw|dict)]\n if (this._isArray(payload)) {\n msg = [WAMP_MSG_SPEC.PUBLISH, reqId, options, topicURI, payload];\n } else if (this._isPlainObject(payload)) {\n msg = [WAMP_MSG_SPEC.PUBLISH, reqId, options, topicURI, [], payload];\n } else { // assume it's a single value\n msg = [WAMP_MSG_SPEC.PUBLISH, reqId, options, topicURI, [payload]];\n }\n break;\n }\n\n this._send(msg);\n this._cache.opStatus = WAMP_ERROR_MSG.SUCCESS;\n this._cache.opStatus.reqId = reqId;\n return this;\n }\n\n /**\n * Remote Procedure Call\n * @param {string} topicURI\n * @param {string|number|Array|object} payload - can be either a value of any type or null\n * @param {function|object} callbacks - if it is a function - it will be treated as result callback function\n * or it can be hash table of callbacks:\n * { onSuccess: will be called with result on successful call\n * onError: will be called if invocation would be aborted }\n * @param {object} advancedOptions - optional parameter. Must include any or all of the options:\n * { disclose_me: bool flag of disclosure of Caller identity (WAMP session ID)\n * to endpoints of a routed call\n * receive_progress: bool flag for receiving progressive results. In this case\n * onSuccess function will be called every time on receiving result\n * timeout: integer timeout (in ms) for the call to finish }\n * @returns {Wampy}\n */\n call (topicURI, payload, callbacks, advancedOptions) {\n let reqId, msg, err = false;\n const options = {};\n\n if (!this._preReqChecks(topicURI, 'dealer', callbacks)) {\n return this;\n }\n\n if (typeof callbacks === 'function') {\n callbacks = { onSuccess: callbacks };\n } else if (!this._isPlainObject(callbacks) || typeof (callbacks.onSuccess) === 'undefined') {\n this._cache.opStatus = WAMP_ERROR_MSG.NO_CALLBACK_SPEC;\n\n if (this._isPlainObject(callbacks) && callbacks.onError) {\n callbacks.onError(this._cache.opStatus.description);\n }\n\n return this;\n }\n\n if (typeof (advancedOptions) !== 'undefined') {\n\n if (this._isPlainObject(advancedOptions)) {\n if (advancedOptions.hasOwnProperty('disclose_me')) {\n options.disclose_me = advancedOptions.disclose_me === true;\n }\n\n if (advancedOptions.hasOwnProperty('receive_progress')) {\n options.receive_progress = advancedOptions.receive_progress === true;\n }\n\n if (advancedOptions.hasOwnProperty('timeout')) {\n if (typeof advancedOptions.timeout === 'number') {\n options.timeout = advancedOptions.timeout;\n } else {\n err = true;\n }\n }\n\n } else {\n err = true;\n }\n\n if (err) {\n this._cache.opStatus = WAMP_ERROR_MSG.INVALID_PARAM;\n\n if (this._isPlainObject(callbacks) && callbacks.onError) {\n callbacks.onError(this._cache.opStatus.description);\n }\n\n return this;\n }\n }\n\n do {\n reqId = this._getReqId();\n } while (reqId in this._calls);\n\n this._calls[reqId] = callbacks;\n\n // WAMP SPEC: [CALL, Request|id, Options|dict, Procedure|uri, (Arguments|list, ArgumentsKw|dict)]\n if (payload === null) {\n msg = [WAMP_MSG_SPEC.CALL, reqId, options, topicURI];\n } else {\n if (this._isArray(payload)) {\n msg = [WAMP_MSG_SPEC.CALL, reqId, options, topicURI, payload];\n } else if (this._isPlainObject(payload)) {\n msg = [WAMP_MSG_SPEC.CALL, reqId, options, topicURI, [], payload];\n } else { // assume it's a single value\n msg = [WAMP_MSG_SPEC.CALL, reqId, options, topicURI, [payload]];\n }\n }\n\n this._send(msg);\n this._cache.opStatus = WAMP_ERROR_MSG.SUCCESS;\n this._cache.opStatus.reqId = reqId;\n return this;\n }\n\n /**\n * RPC invocation cancelling\n *\n * @param {int} reqId RPC call request ID\n * @param {function|object} callbacks - if it is a function - it will be called if successfully\n * sent canceling message or it can be hash table of callbacks:\n * { onSuccess: will be called if successfully sent canceling message\n * onError: will be called if some error occurred }\n * @param {object} advancedOptions - optional parameter. Must include any or all of the options:\n * { mode: string|one of the possible modes:\n * \"skip\" | \"kill\" | \"killnowait\". Skip is default.\n * }\n *\n * @returns {Wampy}\n */\n cancel (reqId, callbacks, advancedOptions) {\n const options = { mode: 'skip' };\n\n if (!this._preReqChecks(null, 'dealer', callbacks)) {\n return this;\n }\n\n if (!reqId || !this._calls[reqId]) {\n this._cache.opStatus = WAMP_ERROR_MSG.NON_EXIST_RPC_REQ_ID;\n\n if (this._isPlainObject(callbacks) && callbacks.onError) {\n callbacks.onError(this._cache.opStatus.description);\n }\n\n return this;\n }\n\n if ((typeof (advancedOptions) !== 'undefined') &&\n (this._isPlainObject(advancedOptions)) &&\n (advancedOptions.hasOwnProperty('mode'))) {\n\n options.mode = /skip|kill|killnowait/.test(advancedOptions.mode) ? advancedOptions.mode : 'skip';\n }\n\n // WAMP SPEC: [CANCEL, CALL.Request|id, Options|dict]\n this._send([WAMP_MSG_SPEC.CANCEL, reqId, options]);\n this._cache.opStatus = WAMP_ERROR_MSG.SUCCESS;\n this._cache.opStatus.reqId = reqId;\n\n callbacks.onSuccess && callbacks.onSuccess();\n\n return this;\n }\n\n /**\n * RPC registration for invocation\n * @param {string} topicURI\n * @param {function|object} callbacks - if it is a function - it will be treated as rpc itself\n * or it can be hash table of callbacks:\n * { rpc: registered procedure\n * onSuccess: will be called on successful registration\n * onError: will be called if registration would be aborted }\n * @returns {Wampy}\n */\n register (topicURI, callbacks) {\n let reqId;\n\n if (!this._preReqChecks(topicURI, 'dealer', callbacks)) {\n return this;\n }\n\n if (typeof callbacks === 'function') {\n callbacks = { rpc: callbacks };\n } else if (!this._isPlainObject(callbacks) || typeof (callbacks.rpc) === 'undefined') {\n this._cache.opStatus = WAMP_ERROR_MSG.NO_CALLBACK_SPEC;\n\n if (this._isPlainObject(callbacks) && callbacks.onError) {\n callbacks.onError(this._cache.opStatus.description);\n }\n\n return this;\n }\n\n if (!this._rpcRegs[topicURI] || !this._rpcRegs[topicURI].callbacks.length) {\n // no such registration or processing unregistering\n\n reqId = this._getReqId();\n\n this._requests[reqId] = {\n topic: topicURI,\n callbacks: callbacks\n };\n\n // WAMP SPEC: [REGISTER, Request|id, Options|dict, Procedure|uri]\n this._send([WAMP_MSG_SPEC.REGISTER, reqId, {}, topicURI]);\n this._cache.opStatus = WAMP_ERROR_MSG.SUCCESS;\n this._cache.opStatus.reqId = reqId;\n } else { // already have registration with such topicURI\n this._cache.opStatus = WAMP_ERROR_MSG.RPC_ALREADY_REGISTERED;\n\n if (this._isPlainObject(callbacks) && callbacks.onError) {\n callbacks.onError(this._cache.opStatus.description);\n }\n\n }\n\n return this;\n\n }\n\n /**\n * RPC unregistration for invocation\n * @param {string} topicURI\n * @param {function|object} callbacks - if it is a function, it will be called on successful unregistration\n * or it can be hash table of callbacks:\n * { onSuccess: will be called on successful unregistration\n * onError: will be called if unregistration would be aborted }\n * @returns {Wampy}\n */\n unregister (topicURI, callbacks) {\n let reqId;\n\n if (!this._preReqChecks(topicURI, 'dealer', callbacks)) {\n return this;\n }\n\n if (typeof callbacks === 'function') {\n callbacks = { onSuccess: callbacks };\n }\n\n if (this._rpcRegs[topicURI]) { // there is such registration\n\n reqId = this._getReqId();\n\n this._requests[reqId] = {\n topic: topicURI,\n callbacks: callbacks\n };\n\n // WAMP SPEC: [UNREGISTER, Request|id, REGISTERED.Registration|id]\n this._send([WAMP_MSG_SPEC.UNREGISTER, reqId, this._rpcRegs[topicURI].id]);\n this._cache.opStatus = WAMP_ERROR_MSG.SUCCESS;\n this._cache.opStatus.reqId = reqId;\n } else { // there is no registration with such topicURI\n this._cache.opStatus = WAMP_ERROR_MSG.NON_EXIST_RPC_UNREG;\n\n if (this._isPlainObject(callbacks) && callbacks.onError) {\n callbacks.onError(this._cache.opStatus.description);\n }\n\n }\n\n return this;\n }\n}\n\nexport default Wampy;\nexport { Wampy };\n"]} \ No newline at end of file diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..2a8ffad --- /dev/null +++ b/package-lock.json @@ -0,0 +1,7468 @@ +{ + "name": "wampy", + "version": "5.0.2", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "JSONStream": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", + "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", + "dev": true, + "requires": { + "jsonparse": "^1.2.0", + "through": ">=2.2.7 <3" + } + }, + "abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", + "dev": true + }, + "acorn": { + "version": "5.7.3", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.3.tgz", + "integrity": "sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw==", + "dev": true + }, + "acorn-dynamic-import": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-2.0.2.tgz", + "integrity": "sha1-x1K9IQvvZ5UBtsbLf8hPj0cVjMQ=", + "dev": true, + "requires": { + "acorn": "^4.0.3" + }, + "dependencies": { + "acorn": { + "version": "4.0.13", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz", + "integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c=", + "dev": true + } + } + }, + "acorn-jsx": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-3.0.1.tgz", + "integrity": "sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s=", + "dev": true, + "requires": { + "acorn": "^3.0.4" + }, + "dependencies": { + "acorn": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz", + "integrity": "sha1-ReN/s56No/JbruP/U2niu18iAXo=", + "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" + }, + "dependencies": { + "acorn": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.1.0.tgz", + "integrity": "sha512-kL5CuoXA/dgxlBbVrflsflzQ3PAas7RYZB52NOm/6839iVYJgKMJ3cQJD+t2i5+qFa8h3MDpEOJiS64E8JLnSQ==", + "dev": true + } + } + }, + "acorn-walk": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.0.0.tgz", + "integrity": "sha512-7Bv1We7ZGuU79zZbb6rRqcpxo3OY+zrdtloZWoyD8fmGX+FeXRjE+iuGkZjSXLVovLzrsvMGMy0EkwA0E0umxg==", + "dev": true + }, + "ajv": { + "version": "4.11.8", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz", + "integrity": "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=", + "dev": true, + "requires": { + "co": "^4.6.0", + "json-stable-stringify": "^1.0.1" + } + }, + "ajv-keywords": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-1.5.1.tgz", + "integrity": "sha1-MU3QpLM2j609/NxU7eYXG4htrzw=", + "dev": true + }, + "align-text": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", + "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", + "dev": true, + "requires": { + "kind-of": "^3.0.2", + "longest": "^1.0.1", + "repeat-string": "^1.5.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "ansi-escapes": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-1.4.0.tgz", + "integrity": "sha1-06ioOzGapneTZisT52HHkRQiMG4=", + "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": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "dev": true, + "requires": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + } + }, + "append-transform": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-0.4.0.tgz", + "integrity": "sha1-126/jKlNJ24keja61EpLdKthGZE=", + "dev": true, + "requires": { + "default-require-extensions": "^1.0.0" + } + }, + "aproba": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", + "dev": true, + "optional": true + }, + "archiver": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/archiver/-/archiver-1.3.0.tgz", + "integrity": "sha1-TyGU1tj5nfP1MeaIHxTxXVX6ryI=", + "dev": true, + "requires": { + "archiver-utils": "^1.3.0", + "async": "^2.0.0", + "buffer-crc32": "^0.2.1", + "glob": "^7.0.0", + "lodash": "^4.8.0", + "readable-stream": "^2.0.0", + "tar-stream": "^1.5.0", + "walkdir": "^0.0.11", + "zip-stream": "^1.1.0" + }, + "dependencies": { + "async": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", + "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", + "dev": true, + "requires": { + "lodash": "^4.17.14" + } + } + } + }, + "archiver-utils": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-1.3.0.tgz", + "integrity": "sha1-5QtMCccL89aA4y/xt5lOn52JUXQ=", + "dev": true, + "requires": { + "glob": "^7.0.0", + "graceful-fs": "^4.1.0", + "lazystream": "^1.0.0", + "lodash": "^4.8.0", + "normalize-path": "^2.0.0", + "readable-stream": "^2.0.0" + } + }, + "are-we-there-yet": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz", + "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==", + "dev": true, + "optional": true, + "requires": { + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" + } + }, + "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": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "dev": true + }, + "arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", + "dev": true + }, + "arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", + "dev": true + }, + "array-differ": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-1.0.0.tgz", + "integrity": "sha1-7/UuN1gknTO+QCuLuOVkuytdQDE=", + "dev": true + }, + "array-find-index": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", + "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=", + "dev": true + }, + "array-union": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", + "dev": true, + "requires": { + "array-uniq": "^1.0.1" + } + }, + "array-uniq": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", + "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", + "dev": true + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "dev": true + }, + "arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", + "dev": true + }, + "asn1": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", + "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", + "dev": true, + "requires": { + "safer-buffer": "~2.1.0" + } + }, + "asn1.js": { + "version": "4.10.1", + "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz", + "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==", + "dev": true, + "requires": { + "bn.js": "^4.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, + "assert": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz", + "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==", + "dev": true, + "requires": { + "object-assign": "^4.1.1", + "util": "0.10.3" + }, + "dependencies": { + "inherits": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", + "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", + "dev": true + }, + "util": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", + "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", + "dev": true, + "requires": { + "inherits": "2.0.1" + } + } + } + }, + "assert-plus": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz", + "integrity": "sha1-104bh+ev/A24qttwIfP+SBAasjQ=", + "dev": true + }, + "assertion-error": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", + "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", + "dev": true + }, + "assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", + "dev": true + }, + "async": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", + "dev": true + }, + "async-each": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz", + "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==", + "dev": true + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", + "dev": true + }, + "atob": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", + "dev": true + }, + "aws-sign2": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz", + "integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8=", + "dev": true + }, + "aws4": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz", + "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==", + "dev": true + }, + "babel-code-frame": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", + "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", + "dev": true, + "requires": { + "chalk": "^1.1.3", + "esutils": "^2.0.2", + "js-tokens": "^3.0.2" + } + }, + "babel-core": { + "version": "6.26.3", + "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.3.tgz", + "integrity": "sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA==", + "dev": true, + "requires": { + "babel-code-frame": "^6.26.0", + "babel-generator": "^6.26.0", + "babel-helpers": "^6.24.1", + "babel-messages": "^6.23.0", + "babel-register": "^6.26.0", + "babel-runtime": "^6.26.0", + "babel-template": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "convert-source-map": "^1.5.1", + "debug": "^2.6.9", + "json5": "^0.5.1", + "lodash": "^4.17.4", + "minimatch": "^3.0.4", + "path-is-absolute": "^1.0.1", + "private": "^0.1.8", + "slash": "^1.0.0", + "source-map": "^0.5.7" + } + }, + "babel-generator": { + "version": "6.26.1", + "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", + "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", + "dev": true, + "requires": { + "babel-messages": "^6.23.0", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "detect-indent": "^4.0.0", + "jsesc": "^1.3.0", + "lodash": "^4.17.4", + "source-map": "^0.5.7", + "trim-right": "^1.0.1" + }, + "dependencies": { + "jsesc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", + "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=", + "dev": true + } + } + }, + "babel-helper-call-delegate": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz", + "integrity": "sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340=", + "dev": true, + "requires": { + "babel-helper-hoist-variables": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "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": "sha512-CV9ROOHEdrjcwhIaJNBGMBCodN+1cfkwtM1SbUHmvyy35KGT7fohbpOxkE2uLz1o6odKK2Ck/tz47z+VqQfi9Q==", + "dev": true, + "requires": { + "babel-plugin-transform-strict-mode": "^6.24.1", + "babel-runtime": "^6.26.0", + "babel-template": "^6.26.0", + "babel-types": "^6.26.0" + } + }, + "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-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" + } + }, + "babelify": { + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/babelify/-/babelify-7.3.0.tgz", + "integrity": "sha1-qlau3nBn/XvVSWZu4W3ChQh+iOU=", + "dev": true, + "requires": { + "babel-core": "^6.0.14", + "object-assign": "^4.0.0" + } + }, + "babylon": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", + "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", + "dev": true + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "dev": true + }, + "base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "dev": true, + "requires": { + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "base64-js": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz", + "integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==", + "dev": true + }, + "bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", + "dev": true, + "requires": { + "tweetnacl": "^0.14.3" + } + }, + "big.js": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz", + "integrity": "sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==", + "dev": true + }, + "binary-extensions": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", + "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", + "dev": true + }, + "bl": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/bl/-/bl-1.2.2.tgz", + "integrity": "sha512-e8tQYnZodmebYDWGH7KMRvtzKXaJHx3BbilrgZCfvyLUYdKpK1t5PSPmpkny/SgiTSCnjfLW7v5rlONXVFkQEA==", + "requires": { + "readable-stream": "^2.3.5", + "safe-buffer": "^5.1.1" + } + }, + "bn.js": { + "version": "4.11.8", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", + "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==", + "dev": true + }, + "boom": { + "version": "2.10.1", + "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", + "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=", + "dev": true, + "requires": { + "hoek": "2.x.x" + } + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "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/ZoJVHYoAaqGxr09CN53G7XIsO4KtWA==", + "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": "1.11.3", + "resolved": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-1.11.3.tgz", + "integrity": "sha512-exDi1BYWB/6raKHmDTCicQfTkqwN5fioMFV4j8BsfMU4R2DK/QfZfK7kOVkmWCNANf0snkBzqGqAJBao9gZMdQ==", + "dev": true, + "requires": { + "resolve": "1.1.7" + }, + "dependencies": { + "resolve": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", + "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=", + "dev": true + } + } + }, + "browser-stdout": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.0.tgz", + "integrity": "sha1-81HTKWnTL6XXpVZxVCY9korjvR8=", + "dev": true + }, + "browserify": { + "version": "16.5.0", + "resolved": "https://registry.npmjs.org/browserify/-/browserify-16.5.0.tgz", + "integrity": "sha512-6bfI3cl76YLAnCZ75AGu/XPOsqUhRyc0F/olGIJeCxtfxF2HvPKEcmjU9M8oAPxl4uBY1U7Nry33Q6koV3f2iw==", + "dev": true, + "requires": { + "JSONStream": "^1.0.3", + "assert": "^1.4.0", + "browser-pack": "^6.0.1", + "browser-resolve": "^1.11.0", + "browserify-zlib": "~0.2.0", + "buffer": "^5.0.2", + "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.0", + "domain-browser": "^1.2.0", + "duplexer2": "~0.1.2", + "events": "^2.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.0.0", + "labeled-stream-splicer": "^2.0.0", + "mkdirp": "^0.5.0", + "module-deps": "^6.0.0", + "os-browserify": "~0.3.0", + "parents": "^1.0.1", + "path-browserify": "~0.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": "^1.0.0", + "shell-quote": "^1.6.1", + "stream-browserify": "^2.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.10.1", + "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/uzk5zSOI3H52CYnjCfb5hA==", + "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-cache-api": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/browserify-cache-api/-/browserify-cache-api-3.0.1.tgz", + "integrity": "sha1-liR+hT8Gj9bg1FzHPwuyzZd47wI=", + "dev": true, + "requires": { + "async": "^1.5.2", + "through2": "^2.0.0", + "xtend": "^4.0.0" + } + }, + "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+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", + "dev": true, + "requires": { + "cipher-base": "^1.0.1", + "des.js": "^1.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "browserify-incremental": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/browserify-incremental/-/browserify-incremental-3.1.1.tgz", + "integrity": "sha1-BxPLdYckemMqnwjPG9FpuHi2Koo=", + "dev": true, + "requires": { + "JSONStream": "^0.10.0", + "browserify-cache-api": "^3.0.0", + "through2": "^2.0.0", + "xtend": "^4.0.0" + }, + "dependencies": { + "JSONStream": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-0.10.0.tgz", + "integrity": "sha1-dDSdDYlSK3HzDwoD/5vSDKbxKsA=", + "dev": true, + "requires": { + "jsonparse": "0.0.5", + "through": ">=2.2.7 <3" + } + }, + "jsonparse": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-0.0.5.tgz", + "integrity": "sha1-MwVCrT8KZUZlt3jz6y2an6UHrGQ=", + "dev": true + } + } + }, + "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" + } + }, + "browserify-sign": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.4.tgz", + "integrity": "sha1-qk62jl17ZYuqa/alfmMMvXqT0pg=", + "dev": true, + "requires": { + "bn.js": "^4.1.1", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.2", + "elliptic": "^6.0.0", + "inherits": "^2.0.1", + "parse-asn1": "^5.0.0" + } + }, + "browserify-zlib": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", + "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", + "dev": true, + "requires": { + "pako": "~1.0.5" + } + }, + "buffer": { + "version": "5.4.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.4.3.tgz", + "integrity": "sha512-zvj65TkFeIt3i6aj5bIvJDzjjQQGs4o/sNoezg1F1kYap9Nu2jcUdpwzRSJTHMMzG0H7bZkn4rNQpImhuxWX2A==", + "dev": true, + "requires": { + "base64-js": "^1.0.2", + "ieee754": "^1.1.4" + } + }, + "buffer-alloc": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz", + "integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==", + "dev": true, + "requires": { + "buffer-alloc-unsafe": "^1.1.0", + "buffer-fill": "^1.0.0" + } + }, + "buffer-alloc-unsafe": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz", + "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==", + "dev": true + }, + "buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=", + "dev": true + }, + "buffer-fill": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz", + "integrity": "sha1-+PeLdniYiO858gXNY39o5wISKyw=", + "dev": true + }, + "buffer-from": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", + "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", + "dev": true + }, + "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": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "dev": true, + "requires": { + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" + } + }, + "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 + }, + "caller-path": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz", + "integrity": "sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=", + "dev": true, + "requires": { + "callsites": "^0.2.0" + } + }, + "callsites": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-0.2.0.tgz", + "integrity": "sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo=", + "dev": true + }, + "camelcase": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", + "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=", + "dev": true + }, + "camelcase-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", + "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", + "dev": true, + "requires": { + "camelcase": "^2.0.0", + "map-obj": "^1.0.0" + } + }, + "caseless": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz", + "integrity": "sha1-cVuW6phBWTzDMGeSP17GDr2k99c=", + "dev": true + }, + "center-align": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", + "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", + "dev": true, + "requires": { + "align-text": "^0.1.3", + "lazy-cache": "^1.0.3" + } + }, + "chai": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/chai/-/chai-3.5.0.tgz", + "integrity": "sha1-TQJjewZ/6Vi9v906QOxW/vc3Mkc=", + "dev": true, + "requires": { + "assertion-error": "^1.0.1", + "deep-eql": "^0.1.3", + "type-detect": "^1.0.0" + } + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "chokidar": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", + "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", + "dev": true, + "requires": { + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "fsevents": "^1.2.7", + "glob-parent": "^3.1.0", + "inherits": "^2.0.3", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^3.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.2.1", + "upath": "^1.1.1" + }, + "dependencies": { + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true + } + } + }, + "chownr": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.3.tgz", + "integrity": "sha512-i70fVHhmV3DtTl6nqvZOnIjbY0Pe4kAUjwHj8z0zAdgBtYrJyYwLKCCuRBQ5ppkyL0AkN7HKRnETdmdp1zqNXw==", + "dev": true, + "optional": true + }, + "cipher-base": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", + "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "circular-json": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/circular-json/-/circular-json-0.3.3.tgz", + "integrity": "sha512-UZK3NBx2Mca+b5LsG7bY183pHWt5Y1xts4P3Pz7ENTwGVnJOUWbRb3ocjvX7hx9tq/yTAdclXm9sZ38gNuem4A==", + "dev": true + }, + "class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "dev": true, + "requires": { + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + } + } + }, + "cli-cursor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-1.0.2.tgz", + "integrity": "sha1-ZNo/fValRBLll5S9Ytw1KV6PKYc=", + "dev": true, + "requires": { + "restore-cursor": "^1.0.1" + } + }, + "cli-width": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz", + "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=", + "dev": true + }, + "cliui": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", + "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", + "dev": true, + "requires": { + "center-align": "^0.1.1", + "right-align": "^0.1.1", + "wordwrap": "0.0.2" + }, + "dependencies": { + "wordwrap": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", + "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=", + "dev": true + } + } + }, + "co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", + "dev": true + }, + "code-point-at": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", + "dev": true + }, + "coffeescript": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/coffeescript/-/coffeescript-1.10.0.tgz", + "integrity": "sha1-56qDAZF+9iGzXYo580jc3R234z4=", + "dev": true + }, + "collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "dev": true, + "requires": { + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "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 + }, + "colors": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz", + "integrity": "sha1-FopHAXVran9RoSzgyXv6KMCE7WM=", + "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 + } + } + }, + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dev": true, + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "component-emitter": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", + "dev": true + }, + "compress-commons": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-1.2.2.tgz", + "integrity": "sha1-UkqfEJA/OoEzibAiXSfEi7dRiQ8=", + "dev": true, + "requires": { + "buffer-crc32": "^0.2.1", + "crc32-stream": "^2.0.0", + "normalize-path": "^2.0.0", + "readable-stream": "^2.0.0" + } + }, + "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/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==", + "dev": true + }, + "console-control-strings": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", + "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", + "dev": true, + "optional": 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.6.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.6.0.tgz", + "integrity": "sha512-eFu7XigvxdZ1ETfbgPBohgyQ/Z++C0eEhTor0qRwBw9unw+L0/6V8wkSuGgzdThkiS5lSpdptOQPD8Ak40a+7A==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.1" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + } + } + }, + "copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", + "dev": true + }, + "core-js": { + "version": "2.6.10", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.10.tgz", + "integrity": "sha512-I39t74+4t+zau64EN1fE5v2W31Adtc/REhzWN+gWRRXg6WH5qAsZm62DHpQ1+Yhe4047T55jvzz7MUqF/dBBlA==", + "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=" + }, + "coveralls": { + "version": "2.13.3", + "resolved": "https://registry.npmjs.org/coveralls/-/coveralls-2.13.3.tgz", + "integrity": "sha512-iiAmn+l1XqRwNLXhW8Rs5qHZRFMYp9ZIPjEOVRpC/c4so6Y/f4/lFi0FfR5B9cCqgyhkJ5cZmbvcVRfP8MHchw==", + "dev": true, + "requires": { + "js-yaml": "3.6.1", + "lcov-parse": "0.0.10", + "log-driver": "1.2.5", + "minimist": "1.2.0", + "request": "2.79.0" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true + } + } + }, + "crc": { + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/crc/-/crc-3.8.0.tgz", + "integrity": "sha512-iX3mfgcTMIq3ZKLIsVFAbv7+Mc10kxabAGQb8HvjA1o3T1PIYprbakQ65d3I+2HGHt6nSKkM9PYjgoJO2KcFBQ==", + "dev": true, + "requires": { + "buffer": "^5.1.0" + } + }, + "crc32-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/crc32-stream/-/crc32-stream-2.0.0.tgz", + "integrity": "sha1-483TtN8xaN10494/u8t7KX/pCPQ=", + "dev": true, + "requires": { + "crc": "^3.4.4", + "readable-stream": "^2.0.0" + } + }, + "create-ecdh": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.3.tgz", + "integrity": "sha512-GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw==", + "dev": true, + "requires": { + "bn.js": "^4.1.0", + "elliptic": "^6.0.0" + } + }, + "create-hash": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", + "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", + "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" + } + }, + "cryptiles": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", + "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=", + "dev": true, + "requires": { + "boom": "2.x.x" + } + }, + "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" + } + }, + "currently-unhandled": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", + "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", + "dev": true, + "requires": { + "array-find-index": "^1.0.1" + } + }, + "d": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", + "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", + "dev": true, + "requires": { + "es5-ext": "^0.10.50", + "type": "^1.0.1" + } + }, + "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/3hpnwoUA==", + "dev": true + }, + "dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true + } + } + }, + "dateformat": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-1.0.12.tgz", + "integrity": "sha1-nxJLZ1lMk3/3BpMuSmQsyo27/uk=", + "dev": true, + "requires": { + "get-stdin": "^4.0.1", + "meow": "^3.3.0" + } + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "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 + }, + "decompress-response": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-4.2.1.tgz", + "integrity": "sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw==", + "dev": true, + "optional": true, + "requires": { + "mimic-response": "^2.0.0" + } + }, + "deep-eql": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-0.1.3.tgz", + "integrity": "sha1-71WKyrjeJSBs1xOQbXTlaTDrafI=", + "dev": true, + "requires": { + "type-detect": "0.1.1" + }, + "dependencies": { + "type-detect": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-0.1.1.tgz", + "integrity": "sha1-C6XsKohWQORw6k6FBZcZANrFiCI=", + "dev": true + } + } + }, + "deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "dev": true, + "optional": true + }, + "deep-is": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", + "dev": true + }, + "default-require-extensions": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-1.0.0.tgz", + "integrity": "sha1-836hXT4T/9m0N9M+GnW1+5eHTLg=", + "dev": true, + "requires": { + "strip-bom": "^2.0.0" + }, + "dependencies": { + "strip-bom": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", + "dev": true, + "requires": { + "is-utf8": "^0.2.0" + } + } + } + }, + "define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "dev": true, + "requires": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + }, + "dependencies": { + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "defined": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", + "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=", + "dev": true + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "dev": true + }, + "delegates": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", + "dev": true, + "optional": true + }, + "deps-sort": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/deps-sort/-/deps-sort-2.0.1.tgz", + "integrity": "sha512-1orqXQr5po+3KI6kQb9A4jnXT1PBwggGl2d7Sq2xsnOeI9GPcE/tGcF9UiSZtZBM7MukY4cAh7MemS6tZYipfw==", + "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.0", + "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.0.tgz", + "integrity": "sha1-wHTS4qpqipoH29YfmhXCzYPsjsw=", + "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" + } + }, + "detect-libc": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", + "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=", + "dev": true, + "optional": true + }, + "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.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true + } + } + }, + "diff": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-3.2.0.tgz", + "integrity": "sha1-yc45Okt8vQsFinJck98pkCeGj/k=", + "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+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", + "dev": true, + "requires": { + "bn.js": "^4.1.0", + "miller-rabin": "^4.0.0", + "randombytes": "^2.0.0" + } + }, + "doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "requires": { + "esutils": "^2.0.2" + } + }, + "domain-browser": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", + "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==", + "dev": true + }, + "duplexer": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz", + "integrity": "sha1-rOb/gIwc5mtX0ev5eXessCM0z8E=", + "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" + } + }, + "ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", + "dev": true, + "requires": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "elliptic": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.1.tgz", + "integrity": "sha512-xvJINNLbTeWQjrl6X+7eQCrIy/YPv5XCpKW6kB5mKvtnGILoLDcySuwomfdzt0BMdLNVnuRNTuzKNHj0bva1Cg==", + "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" + } + }, + "emojis-list": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", + "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=", + "dev": true + }, + "end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "requires": { + "once": "^1.4.0" + } + }, + "enhanced-resolve": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-3.4.1.tgz", + "integrity": "sha1-BCHjOf1xQZs9oT0Smzl5BAIwR24=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "memory-fs": "^0.4.0", + "object-assign": "^4.0.1", + "tapable": "^0.2.7" + } + }, + "errno": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz", + "integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==", + "dev": true, + "requires": { + "prr": "~1.0.1" + } + }, + "error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "requires": { + "is-arrayish": "^0.2.1" + } + }, + "es5-ext": { + "version": "0.10.52", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.52.tgz", + "integrity": "sha512-bWCbE9fbpYQY4CU6hJbJ1vSz70EClMlDgJ7BmwI+zEJhxrwjesZRPglGJlsZhu0334U3hI+gaspwksH9IGD6ag==", + "dev": true, + "requires": { + "es6-iterator": "~2.0.3", + "es6-symbol": "~3.1.2", + "next-tick": "~1.0.0" + } + }, + "es6-iterator": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", + "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", + "dev": true, + "requires": { + "d": "1", + "es5-ext": "^0.10.35", + "es6-symbol": "^3.1.1" + } + }, + "es6-map": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/es6-map/-/es6-map-0.1.5.tgz", + "integrity": "sha1-kTbgUD3MBqMBaQ8LsU/042TpSfA=", + "dev": true, + "requires": { + "d": "1", + "es5-ext": "~0.10.14", + "es6-iterator": "~2.0.1", + "es6-set": "~0.1.5", + "es6-symbol": "~3.1.1", + "event-emitter": "~0.3.5" + } + }, + "es6-set": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/es6-set/-/es6-set-0.1.5.tgz", + "integrity": "sha1-0rPsXU2ADO2BjbU40ol02wpzzLE=", + "dev": true, + "requires": { + "d": "1", + "es5-ext": "~0.10.14", + "es6-iterator": "~2.0.1", + "es6-symbol": "3.1.1", + "event-emitter": "~0.3.5" + }, + "dependencies": { + "es6-symbol": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz", + "integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=", + "dev": true, + "requires": { + "d": "1", + "es5-ext": "~0.10.14" + } + } + } + }, + "es6-symbol": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz", + "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==", + "dev": true, + "requires": { + "d": "^1.0.1", + "ext": "^1.1.2" + } + }, + "es6-weak-map": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.3.tgz", + "integrity": "sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==", + "dev": true, + "requires": { + "d": "1", + "es5-ext": "^0.10.46", + "es6-iterator": "^2.0.3", + "es6-symbol": "^3.1.1" + } + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "escope": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/escope/-/escope-3.6.0.tgz", + "integrity": "sha1-4Bl16BJ4GhY6ba392AOY3GTIicM=", + "dev": true, + "requires": { + "es6-map": "^0.1.3", + "es6-weak-map": "^2.0.1", + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" + } + }, + "eslint": { + "version": "3.19.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-3.19.0.tgz", + "integrity": "sha1-yPxiAcf0DdCJQbh8CFdnOGpnmsw=", + "dev": true, + "requires": { + "babel-code-frame": "^6.16.0", + "chalk": "^1.1.3", + "concat-stream": "^1.5.2", + "debug": "^2.1.1", + "doctrine": "^2.0.0", + "escope": "^3.6.0", + "espree": "^3.4.0", + "esquery": "^1.0.0", + "estraverse": "^4.2.0", + "esutils": "^2.0.2", + "file-entry-cache": "^2.0.0", + "glob": "^7.0.3", + "globals": "^9.14.0", + "ignore": "^3.2.0", + "imurmurhash": "^0.1.4", + "inquirer": "^0.12.0", + "is-my-json-valid": "^2.10.0", + "is-resolvable": "^1.0.0", + "js-yaml": "^3.5.1", + "json-stable-stringify": "^1.0.0", + "levn": "^0.3.0", + "lodash": "^4.0.0", + "mkdirp": "^0.5.0", + "natural-compare": "^1.4.0", + "optionator": "^0.8.2", + "path-is-inside": "^1.0.1", + "pluralize": "^1.2.1", + "progress": "^1.1.8", + "require-uncached": "^1.0.2", + "shelljs": "^0.7.5", + "strip-bom": "^3.0.0", + "strip-json-comments": "~2.0.1", + "table": "^3.7.8", + "text-table": "~0.2.0", + "user-home": "^2.0.0" + } + }, + "espree": { + "version": "3.5.4", + "resolved": "https://registry.npmjs.org/espree/-/espree-3.5.4.tgz", + "integrity": "sha512-yAcIQxtmMiB/jL32dzEp2enBeidsB7xWPLNiw3IIkpVds1P+h7qF9YwJq1yUNzp2OKXgAprs4F61ih66UsoD1A==", + "dev": true, + "requires": { + "acorn": "^5.5.0", + "acorn-jsx": "^3.0.0" + } + }, + "esprima": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz", + "integrity": "sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE=", + "dev": true + }, + "esquery": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.0.1.tgz", + "integrity": "sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA==", + "dev": true, + "requires": { + "estraverse": "^4.0.0" + } + }, + "esrecurse": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz", + "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", + "dev": true, + "requires": { + "estraverse": "^4.1.0" + } + }, + "estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true + }, + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true + }, + "event-emitter": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", + "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=", + "dev": true, + "requires": { + "d": "1", + "es5-ext": "~0.10.14" + } + }, + "eventemitter2": { + "version": "0.4.14", + "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-0.4.14.tgz", + "integrity": "sha1-j2G3XN4BKy6esoTUVFWDtWQ7Yas=", + "dev": true + }, + "events": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/events/-/events-2.1.0.tgz", + "integrity": "sha512-3Zmiobend8P9DjmKAty0Era4jV8oJ0yGYe2nJJAxgymF9+N8F2m0hhZiMoWtcfepExzNKZumFU3ksdQbInGWCg==", + "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/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", + "dev": true, + "requires": { + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" + } + }, + "exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", + "dev": true + }, + "exit-hook": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/exit-hook/-/exit-hook-1.1.1.tgz", + "integrity": "sha1-8FyiM7SMBdVP/wd2XfhQfpXAL/g=", + "dev": true + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "dev": true, + "requires": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "expand-template": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz", + "integrity": "sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==", + "dev": true, + "optional": true + }, + "ext": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/ext/-/ext-1.1.2.tgz", + "integrity": "sha512-/KLjJdTNyDepCihrk4HQt57nAE1IRCEo5jUt+WgWGCr1oARhibDvmI2DMcSNWood1T9AUWwq+jaV1wvRqaXfnA==", + "dev": true, + "requires": { + "type": "^2.0.0" + }, + "dependencies": { + "type": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/type/-/type-2.0.0.tgz", + "integrity": "sha512-KBt58xCHry4Cejnc2ISQAF7QY+ORngsWfxezO68+12hKV6lQY8P/psIkcbjeHWn7MqcgciWJyCCevFMJdIXpow==", + "dev": true + } + } + }, + "extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "dev": true + }, + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dev": true, + "requires": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", + "dev": true + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "dev": true + }, + "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+2qwVA==", + "dev": true + }, + "figures": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", + "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.5", + "object-assign": "^4.1.0" + } + }, + "file-entry-cache": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-2.0.0.tgz", + "integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=", + "dev": true, + "requires": { + "flat-cache": "^1.2.1", + "object-assign": "^4.0.1" + } + }, + "file-sync-cmp": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/file-sync-cmp/-/file-sync-cmp-0.1.1.tgz", + "integrity": "sha1-peeo/7+kk7Q7kju9TKiaU7Y7YSs=", + "dev": true + }, + "fileset": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/fileset/-/fileset-2.0.3.tgz", + "integrity": "sha1-jnVIqW08wjJ+5eZ0FocjozO7oqA=", + "dev": true, + "requires": { + "glob": "^7.0.3", + "minimatch": "^3.0.3" + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "find-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "dev": true, + "requires": { + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "findup-sync": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-0.3.0.tgz", + "integrity": "sha1-N5MKpdgWt3fANEXhlmzGeQpMCxY=", + "dev": true, + "requires": { + "glob": "~5.0.0" + }, + "dependencies": { + "glob": { + "version": "5.0.15", + "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz", + "integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=", + "dev": true, + "requires": { + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "2 || 3", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + } + } + }, + "flat-cache": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.3.4.tgz", + "integrity": "sha512-VwyB3Lkgacfik2vhqR4uv2rvebqmDvFu4jlN/C1RzWoJEo8I7z4Q404oiqYCkq41mni8EzQnm95emU9seckwtg==", + "dev": true, + "requires": { + "circular-json": "^0.3.1", + "graceful-fs": "^4.1.2", + "rimraf": "~2.6.2", + "write": "^0.2.1" + } + }, + "for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "dev": true + }, + "forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", + "dev": true + }, + "form-data": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz", + "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=", + "dev": true, + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.5", + "mime-types": "^2.1.12" + } + }, + "fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "dev": true, + "requires": { + "map-cache": "^0.2.2" + } + }, + "fs-constants": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", + "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", + "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.9", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.9.tgz", + "integrity": "sha512-oeyj2H3EjjonWcFjD5NvZNE9Rqe4UW+nQBU2HNeKw0koVLEFIhtyETyAakeAM3de7Z/SW5kcA+fZUait9EApnw==", + "dev": true, + "optional": true, + "requires": { + "nan": "^2.12.1", + "node-pre-gyp": "^0.12.0" + }, + "dependencies": { + "abbrev": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "ansi-regex": { + "version": "2.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "aproba": { + "version": "1.2.0", + "bundled": true, + "dev": true, + "optional": true + }, + "are-we-there-yet": { + "version": "1.1.5", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" + } + }, + "balanced-match": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "brace-expansion": { + "version": "1.1.11", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "chownr": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "code-point-at": { + "version": "1.1.0", + "bundled": true, + "dev": true, + "optional": true + }, + "concat-map": { + "version": "0.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "console-control-strings": { + "version": "1.1.0", + "bundled": true, + "dev": true, + "optional": true + }, + "core-util-is": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "debug": { + "version": "4.1.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "ms": "^2.1.1" + } + }, + "deep-extend": { + "version": "0.6.0", + "bundled": true, + "dev": true, + "optional": true + }, + "delegates": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "detect-libc": { + "version": "1.0.3", + "bundled": true, + "dev": true, + "optional": true + }, + "fs-minipass": { + "version": "1.2.5", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minipass": "^2.2.1" + } + }, + "fs.realpath": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "gauge": { + "version": "2.7.4", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" + } + }, + "glob": { + "version": "7.1.3", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "has-unicode": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "iconv-lite": { + "version": "0.4.24", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "ignore-walk": { + "version": "3.0.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minimatch": "^3.0.4" + } + }, + "inflight": { + "version": "1.0.6", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.3", + "bundled": true, + "dev": true, + "optional": true + }, + "ini": { + "version": "1.3.5", + "bundled": true, + "dev": true, + "optional": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "isarray": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "minimatch": { + "version": "3.0.4", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "0.0.8", + "bundled": true, + "dev": true, + "optional": true + }, + "minipass": { + "version": "2.3.5", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" + } + }, + "minizlib": { + "version": "1.2.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minipass": "^2.2.1" + } + }, + "mkdirp": { + "version": "0.5.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minimist": "0.0.8" + } + }, + "ms": { + "version": "2.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "needle": { + "version": "2.3.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "debug": "^4.1.0", + "iconv-lite": "^0.4.4", + "sax": "^1.2.4" + } + }, + "node-pre-gyp": { + "version": "0.12.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "detect-libc": "^1.0.2", + "mkdirp": "^0.5.1", + "needle": "^2.2.1", + "nopt": "^4.0.1", + "npm-packlist": "^1.1.6", + "npmlog": "^4.0.2", + "rc": "^1.2.7", + "rimraf": "^2.6.1", + "semver": "^5.3.0", + "tar": "^4" + } + }, + "nopt": { + "version": "4.0.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "abbrev": "1", + "osenv": "^0.1.4" + } + }, + "npm-bundled": { + "version": "1.0.6", + "bundled": true, + "dev": true, + "optional": true + }, + "npm-packlist": { + "version": "1.4.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "ignore-walk": "^3.0.1", + "npm-bundled": "^1.0.1" + } + }, + "npmlog": { + "version": "4.1.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" + } + }, + "number-is-nan": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "object-assign": { + "version": "4.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "once": { + "version": "1.4.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "wrappy": "1" + } + }, + "os-homedir": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "os-tmpdir": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "osenv": { + "version": "0.1.5", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, + "path-is-absolute": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "process-nextick-args": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "rc": { + "version": "1.2.8", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "bundled": true, + "dev": true, + "optional": true + } + } + }, + "readable-stream": { + "version": "2.3.6", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "rimraf": { + "version": "2.6.3", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "glob": "^7.1.3" + } + }, + "safe-buffer": { + "version": "5.1.2", + "bundled": true, + "dev": true, + "optional": true + }, + "safer-buffer": { + "version": "2.1.2", + "bundled": true, + "dev": true, + "optional": true + }, + "sax": { + "version": "1.2.4", + "bundled": true, + "dev": true, + "optional": true + }, + "semver": { + "version": "5.7.0", + "bundled": true, + "dev": true, + "optional": true + }, + "set-blocking": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "signal-exit": { + "version": "3.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "string-width": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "string_decoder": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "strip-json-comments": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "tar": { + "version": "4.4.8", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "chownr": "^1.1.1", + "fs-minipass": "^1.2.5", + "minipass": "^2.3.4", + "minizlib": "^1.1.1", + "mkdirp": "^0.5.0", + "safe-buffer": "^5.1.2", + "yallist": "^3.0.2" + } + }, + "util-deprecate": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "wide-align": { + "version": "1.1.3", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "string-width": "^1.0.2 || 2" + } + }, + "wrappy": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "yallist": { + "version": "3.0.3", + "bundled": true, + "dev": true, + "optional": true + } + } + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "gauge": { + "version": "2.7.4", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", + "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", + "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" + } + }, + "generate-function": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.3.1.tgz", + "integrity": "sha512-eeB5GfMNeevm/GRYq20ShmsaGcmI81kIX2K9XQx5miC8KdHaC6Jm0qQ8ZNeGOi7wYB8OsdxKs+Y2oVuTFuVwKQ==", + "dev": true, + "requires": { + "is-property": "^1.0.2" + } + }, + "generate-object-property": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz", + "integrity": "sha1-nA4cQDCM6AT0eDYYuTf6iPmdUNA=", + "dev": true, + "requires": { + "is-property": "^1.0.0" + } + }, + "get-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/bye0qGm6pw1bGZFGStxC5O76c5ZAVBGnqHmOaJpdQ==", + "dev": true + }, + "get-caller-file": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", + "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==", + "dev": true + }, + "get-stdin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", + "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=", + "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 + }, + "getobject": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/getobject/-/getobject-0.1.0.tgz", + "integrity": "sha1-BHpEl4n6Fg0Bj1SG7ZEyC27HiFw=", + "dev": true + }, + "getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true + } + } + }, + "github-from-package": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz", + "integrity": "sha1-l/tdlr/eiXMxPyDoKI75oWf6ZM4=", + "dev": true, + "optional": true + }, + "glob": { + "version": "7.1.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.5.tgz", + "integrity": "sha512-J9dlskqUXK1OeTOYBEn5s8aMukWMwWfs+rPTn/jn50Ux4MNXVhubL1wu/j2t+H4NVI+cXEcCaYellqaPVGXNqQ==", + "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-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true, + "requires": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "requires": { + "is-extglob": "^2.1.0" + } + } + } + }, + "globals": { + "version": "9.18.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", + "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", + "dev": true + }, + "graceful-fs": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz", + "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==", + "dev": true + }, + "graceful-readlink": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz", + "integrity": "sha1-TK+tdrxi8C+gObL5Tpo906ORpyU=", + "dev": true + }, + "growl": { + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/growl/-/growl-1.9.2.tgz", + "integrity": "sha1-Dqd0NxXbjY3ixe3hd14bRayFwC8=", + "dev": true + }, + "grunt": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/grunt/-/grunt-1.0.4.tgz", + "integrity": "sha512-PYsMOrOC+MsdGEkFVwMaMyc6Ob7pKmq+deg1Sjr+vvMWp35sztfwKE7qoN51V+UEtHsyNuMcGdgMLFkBHvMxHQ==", + "dev": true, + "requires": { + "coffeescript": "~1.10.0", + "dateformat": "~1.0.12", + "eventemitter2": "~0.4.13", + "exit": "~0.1.1", + "findup-sync": "~0.3.0", + "glob": "~7.0.0", + "grunt-cli": "~1.2.0", + "grunt-known-options": "~1.1.0", + "grunt-legacy-log": "~2.0.0", + "grunt-legacy-util": "~1.1.1", + "iconv-lite": "~0.4.13", + "js-yaml": "~3.13.0", + "minimatch": "~3.0.2", + "mkdirp": "~0.5.1", + "nopt": "~3.0.6", + "path-is-absolute": "~1.0.0", + "rimraf": "~2.6.2" + }, + "dependencies": { + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true + }, + "glob": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.0.6.tgz", + "integrity": "sha1-IRuvr0nlJbjNkyYNFKsTYVKz9Xo=", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.2", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "grunt-cli": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/grunt-cli/-/grunt-cli-1.2.0.tgz", + "integrity": "sha1-VisRnrsGndtGSs4oRVAb6Xs1tqg=", + "dev": true, + "requires": { + "findup-sync": "~0.3.0", + "grunt-known-options": "~1.1.0", + "nopt": "~3.0.6", + "resolve": "~1.1.0" + } + }, + "js-yaml": { + "version": "3.13.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", + "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "resolve": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", + "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=", + "dev": true + } + } + }, + "grunt-babel": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/grunt-babel/-/grunt-babel-6.0.0.tgz", + "integrity": "sha1-N4GJtIfeEWjExKn8iN1gBbNd+WA=", + "dev": true, + "requires": { + "babel-core": "^6.0.12" + } + }, + "grunt-browserify": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/grunt-browserify/-/grunt-browserify-5.3.0.tgz", + "integrity": "sha1-R/2M+LrFj+LeaDr9xX9/OoDKeS0=", + "dev": true, + "requires": { + "async": "^2.5.0", + "browserify": "^16.0.0", + "browserify-incremental": "^3.1.1", + "glob": "^7.1.2", + "lodash": "^4.17.4", + "resolve": "^1.1.6", + "watchify": "^3.6.1" + }, + "dependencies": { + "async": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", + "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", + "dev": true, + "requires": { + "lodash": "^4.17.14" + } + } + } + }, + "grunt-contrib-clean": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/grunt-contrib-clean/-/grunt-contrib-clean-1.1.0.tgz", + "integrity": "sha1-Vkq/LQN4qYOhW54/MO51tzjEBjg=", + "dev": true, + "requires": { + "async": "^1.5.2", + "rimraf": "^2.5.1" + } + }, + "grunt-contrib-compress": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/grunt-contrib-compress/-/grunt-contrib-compress-1.6.0.tgz", + "integrity": "sha512-wIFuvk+/Ny4E+OgEfJYFZgoH7KcU/nnNFbYasB7gRvrcRyW6vmTp3Pj8a4rFSR3tbFMjrGvTUszdO6fgLajgZQ==", + "dev": true, + "requires": { + "archiver": "^1.3.0", + "chalk": "^1.1.1", + "iltorb": "^2.4.3", + "lodash": "^4.7.0", + "pretty-bytes": "^4.0.2", + "stream-buffers": "^2.1.0" + } + }, + "grunt-contrib-concat": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/grunt-contrib-concat/-/grunt-contrib-concat-1.0.1.tgz", + "integrity": "sha1-YVCYYwhOhx1+ht5IwBUlntl3Rb0=", + "dev": true, + "requires": { + "chalk": "^1.0.0", + "source-map": "^0.5.3" + } + }, + "grunt-contrib-copy": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/grunt-contrib-copy/-/grunt-contrib-copy-1.0.0.tgz", + "integrity": "sha1-cGDGWB6QS4qw0A8HbgqPbj58NXM=", + "dev": true, + "requires": { + "chalk": "^1.1.1", + "file-sync-cmp": "^0.1.0" + } + }, + "grunt-contrib-uglify": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/grunt-contrib-uglify/-/grunt-contrib-uglify-3.4.0.tgz", + "integrity": "sha512-UXsTpeP0pytpTYlmll3RDndsRXfdwmrf1tI/AtD/PrArQAzGmKMvj83aVt3D8egWlE6KqPjsJBLCCvfC52LI/A==", + "dev": true, + "requires": { + "chalk": "^1.0.0", + "maxmin": "^2.1.0", + "uglify-js": "~3.4.0", + "uri-path": "^1.0.0" + } + }, + "grunt-known-options": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/grunt-known-options/-/grunt-known-options-1.1.1.tgz", + "integrity": "sha512-cHwsLqoighpu7TuYj5RonnEuxGVFnztcUqTqp5rXFGYL4OuPFofwC4Ycg7n9fYwvK6F5WbYgeVOwph9Crs2fsQ==", + "dev": true + }, + "grunt-legacy-log": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/grunt-legacy-log/-/grunt-legacy-log-2.0.0.tgz", + "integrity": "sha512-1m3+5QvDYfR1ltr8hjiaiNjddxGdQWcH0rw1iKKiQnF0+xtgTazirSTGu68RchPyh1OBng1bBUjLmX8q9NpoCw==", + "dev": true, + "requires": { + "colors": "~1.1.2", + "grunt-legacy-log-utils": "~2.0.0", + "hooker": "~0.2.3", + "lodash": "~4.17.5" + } + }, + "grunt-legacy-log-utils": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/grunt-legacy-log-utils/-/grunt-legacy-log-utils-2.0.1.tgz", + "integrity": "sha512-o7uHyO/J+i2tXG8r2bZNlVk20vlIFJ9IEYyHMCQGfWYru8Jv3wTqKZzvV30YW9rWEjq0eP3cflQ1qWojIe9VFA==", + "dev": true, + "requires": { + "chalk": "~2.4.1", + "lodash": "~4.17.10" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "grunt-legacy-util": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/grunt-legacy-util/-/grunt-legacy-util-1.1.1.tgz", + "integrity": "sha512-9zyA29w/fBe6BIfjGENndwoe1Uy31BIXxTH3s8mga0Z5Bz2Sp4UCjkeyv2tI449ymkx3x26B+46FV4fXEddl5A==", + "dev": true, + "requires": { + "async": "~1.5.2", + "exit": "~0.1.1", + "getobject": "~0.1.0", + "hooker": "~0.2.3", + "lodash": "~4.17.10", + "underscore.string": "~3.3.4", + "which": "~1.3.0" + } + }, + "gzip-size": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-3.0.0.tgz", + "integrity": "sha1-VGGI6b3DN/Zzdy+BZgRks4nc5SA=", + "dev": true, + "requires": { + "duplexer": "^0.1.1" + } + }, + "handlebars": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.5.1.tgz", + "integrity": "sha512-C29UoFzHe9yM61lOsIlCE5/mQVGrnIOrOq7maQl76L7tYPCgC1og0Ajt6uWnX4ZTxBPnjw+CUvawphwCfJgUnA==", + "dev": true, + "requires": { + "neo-async": "^2.6.0", + "optimist": "^0.6.1", + "source-map": "^0.6.1", + "uglify-js": "^3.1.4" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "har-validator": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-2.0.6.tgz", + "integrity": "sha1-zcvAgYgmWtEZtqWnyKtw7s+10n0=", + "dev": true, + "requires": { + "chalk": "^1.1.1", + "commander": "^2.9.0", + "is-my-json-valid": "^2.12.4", + "pinkie-promise": "^2.0.0" + } + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "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": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "has-unicode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", + "dev": true, + "optional": true + }, + "has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "dev": true, + "requires": { + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" + } + }, + "has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "kind-of": "^4.0.0" + }, + "dependencies": { + "kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "hash-base": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz", + "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "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" + } + }, + "hawk": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", + "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=", + "dev": true, + "requires": { + "boom": "2.x.x", + "cryptiles": "2.x.x", + "hoek": "2.x.x", + "sntp": "1.x.x" + } + }, + "he": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/he/-/he-1.1.1.tgz", + "integrity": "sha1-k0EP0hsAlzUVH4howvJx80J+I/0=", + "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" + } + }, + "hoek": { + "version": "2.16.3", + "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz", + "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=", + "dev": true + }, + "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" + } + }, + "hooker": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/hooker/-/hooker-0.2.3.tgz", + "integrity": "sha1-uDT3I8xKJCqmWWNFnfbZhMXT2Vk=", + "dev": true + }, + "hosted-git-info": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.5.tgz", + "integrity": "sha512-kssjab8CvdXfcXMXVcvsXum4Hwdq9XGtRD3TteMEvEbq0LXyiNQr6AprqKqfeaDXze7SxWvRxdpwE6ku7ikLkg==", + "dev": true + }, + "htmlescape": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/htmlescape/-/htmlescape-1.1.1.tgz", + "integrity": "sha1-OgPtwiFLyjtmQko+eVk0lQnLA1E=", + "dev": true + }, + "http-signature": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz", + "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=", + "dev": true, + "requires": { + "assert-plus": "^0.2.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + } + }, + "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 + }, + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "ieee754": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz", + "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==", + "dev": true + }, + "ignore": { + "version": "3.3.10", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz", + "integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==", + "dev": true + }, + "iltorb": { + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/iltorb/-/iltorb-2.4.4.tgz", + "integrity": "sha512-7Qk6O7TK3rSWVRVRkPehcNTSN+P2i7MsG9pWmw6iVw/W6NcoNj0rFKOuBDM6fbZV6NNGuUW3JBRem6Ozn4KXhg==", + "dev": true, + "optional": true, + "requires": { + "detect-libc": "^1.0.3", + "nan": "^2.14.0", + "npmlog": "^4.1.2", + "prebuild-install": "^5.3.2", + "which-pm-runs": "^1.0.0" + } + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "dev": true + }, + "indent-string": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", + "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", + "dev": true, + "requires": { + "repeating": "^2.0.0" + } + }, + "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": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "ini": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", + "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", + "dev": true, + "optional": 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" + } + }, + "inquirer": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-0.12.0.tgz", + "integrity": "sha1-HvK/1jUE3wvHV4X/+MLEHfEvB34=", + "dev": true, + "requires": { + "ansi-escapes": "^1.1.0", + "ansi-regex": "^2.0.0", + "chalk": "^1.0.0", + "cli-cursor": "^1.0.1", + "cli-width": "^2.0.0", + "figures": "^1.3.5", + "lodash": "^4.3.0", + "readline2": "^1.0.1", + "run-async": "^0.1.0", + "rx-lite": "^3.1.2", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.0", + "through": "^2.3.6" + } + }, + "insert-module-globals": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/insert-module-globals/-/insert-module-globals-7.2.0.tgz", + "integrity": "sha512-VE6NlW+WGn2/AeOMd496AHFYmE7eLKkUY6Ty31k4og5vmA3Fjuwe9v6ifH6Xx/Hz27QvdoMoviw1/pqWRB09Sw==", + "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" + } + }, + "interpret": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.2.0.tgz", + "integrity": "sha512-mT34yGKMNceBQUoVn7iCDKDntA7SC6gycMAWzGx1z/CMCTV7b2AAtXlo3nRyHZ1FelRkQbQjprHSYGwzLtkVbw==", + "dev": true + }, + "invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "dev": true, + "requires": { + "loose-envify": "^1.0.0" + } + }, + "invert-kv": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", + "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=", + "dev": true + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "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, + "requires": { + "binary-extensions": "^1.0.0" + } + }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "dev": true + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true + }, + "is-finite": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", + "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", + "dev": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "dev": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "is-glob": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-my-ip-valid": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-my-ip-valid/-/is-my-ip-valid-1.0.0.tgz", + "integrity": "sha512-gmh/eWXROncUzRnIa1Ubrt5b8ep/MGSnfAUI3aRp+sqTCs1tv1Isl8d8F6JmkN3dXKc3ehZMrtiPN9eL03NuaQ==", + "dev": true + }, + "is-my-json-valid": { + "version": "2.20.0", + "resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.20.0.tgz", + "integrity": "sha512-XTHBZSIIxNsIsZXg7XB5l8z/OBFosl1Wao4tXLpeC7eKU4Vm/kdop2azkPqULwnfGQjmeDIyey9g7afMMtdWAA==", + "dev": true, + "requires": { + "generate-function": "^2.0.0", + "generate-object-property": "^1.1.0", + "is-my-ip-valid": "^1.0.0", + "jsonpointer": "^4.0.0", + "xtend": "^4.0.0" + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + }, + "is-property": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz", + "integrity": "sha1-V/4cTkhHTt1lsJkR8msc1Ald2oQ=", + "dev": true + }, + "is-resolvable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz", + "integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==", + "dev": true + }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" + }, + "is-utf8": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", + "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", + "dev": true + }, + "is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "dev": true + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "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": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "dev": true + }, + "istanbul": { + "version": "1.1.0-alpha.1", + "resolved": "https://registry.npmjs.org/istanbul/-/istanbul-1.1.0-alpha.1.tgz", + "integrity": "sha1-eBeVZWAYohdMX2DzZ+5dNhy1e3c=", + "dev": true, + "requires": { + "abbrev": "1.0.x", + "async": "1.x", + "istanbul-api": "^1.1.0-alpha", + "js-yaml": "3.x", + "mkdirp": "0.5.x", + "nopt": "3.x", + "which": "^1.1.1", + "wordwrap": "^1.0.0" + }, + "dependencies": { + "abbrev": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.0.9.tgz", + "integrity": "sha1-kbR5JYinc4wl813W9jdSovh3YTU=", + "dev": true + } + } + }, + "istanbul-api": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/istanbul-api/-/istanbul-api-1.3.7.tgz", + "integrity": "sha512-4/ApBnMVeEPG3EkSzcw25wDe4N66wxwn+KKn6b47vyek8Xb3NBAcg4xfuQbS7BqcZuTX4wxfD5lVagdggR3gyA==", + "dev": true, + "requires": { + "async": "^2.1.4", + "fileset": "^2.0.2", + "istanbul-lib-coverage": "^1.2.1", + "istanbul-lib-hook": "^1.2.2", + "istanbul-lib-instrument": "^1.10.2", + "istanbul-lib-report": "^1.1.5", + "istanbul-lib-source-maps": "^1.2.6", + "istanbul-reports": "^1.5.1", + "js-yaml": "^3.7.0", + "mkdirp": "^0.5.1", + "once": "^1.4.0" + }, + "dependencies": { + "async": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", + "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", + "dev": true, + "requires": { + "lodash": "^4.17.14" + } + }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true + }, + "js-yaml": { + "version": "3.13.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", + "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + } + } + }, + "istanbul-lib-coverage": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-1.2.1.tgz", + "integrity": "sha512-PzITeunAgyGbtY1ibVIUiV679EFChHjoMNRibEIobvmrCRaIgwLxNucOSimtNWUhEib/oO7QY2imD75JVgCJWQ==", + "dev": true + }, + "istanbul-lib-hook": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-1.2.2.tgz", + "integrity": "sha512-/Jmq7Y1VeHnZEQ3TL10VHyb564mn6VrQXHchON9Jf/AEcmQ3ZIiyD1BVzNOKTZf/G3gE+kiGK6SmpF9y3qGPLw==", + "dev": true, + "requires": { + "append-transform": "^0.4.0" + } + }, + "istanbul-lib-instrument": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-1.10.2.tgz", + "integrity": "sha512-aWHxfxDqvh/ZlxR8BBaEPVSWDPUkGD63VjGQn3jcw8jCp7sHEMKcrj4xfJn/ABzdMEHiQNyvDQhqm5o8+SQg7A==", + "dev": true, + "requires": { + "babel-generator": "^6.18.0", + "babel-template": "^6.16.0", + "babel-traverse": "^6.18.0", + "babel-types": "^6.18.0", + "babylon": "^6.18.0", + "istanbul-lib-coverage": "^1.2.1", + "semver": "^5.3.0" + } + }, + "istanbul-lib-report": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-1.1.5.tgz", + "integrity": "sha512-UsYfRMoi6QO/doUshYNqcKJqVmFe9w51GZz8BS3WB0lYxAllQYklka2wP9+dGZeHYaWIdcXUx8JGdbqaoXRXzw==", + "dev": true, + "requires": { + "istanbul-lib-coverage": "^1.2.1", + "mkdirp": "^0.5.1", + "path-parse": "^1.0.5", + "supports-color": "^3.1.2" + }, + "dependencies": { + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "dev": true + }, + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "dev": true, + "requires": { + "has-flag": "^1.0.0" + } + } + } + }, + "istanbul-lib-source-maps": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.6.tgz", + "integrity": "sha512-TtbsY5GIHgbMsMiRw35YBHGpZ1DVFEO19vxxeiDMYaeOFOCzfnYVxvl6pOUIZR4dtPhAGpSMup8OyF8ubsaqEg==", + "dev": true, + "requires": { + "debug": "^3.1.0", + "istanbul-lib-coverage": "^1.2.1", + "mkdirp": "^0.5.1", + "rimraf": "^2.6.1", + "source-map": "^0.5.3" + }, + "dependencies": { + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } + } + }, + "istanbul-reports": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-1.5.1.tgz", + "integrity": "sha512-+cfoZ0UXzWjhAdzosCPP3AN8vvef8XDkWtTfgaN+7L3YTpNYITnCaEkceo5SEYy644VkHka/P1FvkWvrG/rrJw==", + "dev": true, + "requires": { + "handlebars": "^4.0.3" + } + }, + "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.6.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.6.1.tgz", + "integrity": "sha1-bl/mfYsgXOTSL60Ft3geja3MSzA=", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^2.6.0" + } + }, + "jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", + "dev": true + }, + "jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", + "dev": true + }, + "json-loader": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/json-loader/-/json-loader-0.5.7.tgz", + "integrity": "sha512-QLPs8Dj7lnf3e3QYS1zkCo+4ZwqOiF9d/nZnYozTISxXWCfNs9yuky5rJw4/W34s7POaNlbZmQGaB5NiXCbP4w==", + "dev": true + }, + "json-schema": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", + "dev": true + }, + "json-stable-stringify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", + "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", + "dev": true, + "requires": { + "jsonify": "~0.0.0" + } + }, + "json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", + "dev": true + }, + "json3": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/json3/-/json3-3.3.2.tgz", + "integrity": "sha1-PAQ0dD35Pi9cQq7nsZvLSDV19OE=", + "dev": true + }, + "json5": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", + "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", + "dev": true + }, + "jsonify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", + "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=", + "dev": true + }, + "jsonparse": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", + "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=", + "dev": true + }, + "jsonpointer": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-4.0.1.tgz", + "integrity": "sha1-T9kss04OnbPInIYi7PUfm5eMbLk=", + "dev": true + }, + "jsprim": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", + "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "dev": true, + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.2.3", + "verror": "1.10.0" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true + } + } + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true + }, + "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" + } + }, + "lazy-cache": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", + "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=", + "dev": true + }, + "lazystream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.0.tgz", + "integrity": "sha1-9plf4PggOS9hOWvolGJAe7dxaOQ=", + "dev": true, + "requires": { + "readable-stream": "^2.0.5" + } + }, + "lcid": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", + "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", + "dev": true, + "requires": { + "invert-kv": "^1.0.0" + } + }, + "lcov-parse": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/lcov-parse/-/lcov-parse-0.0.10.tgz", + "integrity": "sha1-GwuP+ayceIklBYK3C3ExXZ2m2aM=", + "dev": true + }, + "levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "dev": true, + "requires": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + } + }, + "load-grunt-tasks": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/load-grunt-tasks/-/load-grunt-tasks-3.5.2.tgz", + "integrity": "sha1-ByhWEYD9IP+KaSdQWFL8WKrqDIg=", + "dev": true, + "requires": { + "arrify": "^1.0.0", + "multimatch": "^2.0.0", + "pkg-up": "^1.0.0", + "resolve-pkg": "^0.1.0" + } + }, + "load-json-file": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", + "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "strip-bom": "^2.0.0" + }, + "dependencies": { + "strip-bom": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", + "dev": true, + "requires": { + "is-utf8": "^0.2.0" + } + } + } + }, + "loader-runner": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz", + "integrity": "sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==", + "dev": true + }, + "loader-utils": { + "version": "0.2.17", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.17.tgz", + "integrity": "sha1-+G5jdNQyBabmxg6RlvF8Apm/s0g=", + "dev": true, + "requires": { + "big.js": "^3.1.3", + "emojis-list": "^2.0.0", + "json5": "^0.5.0", + "object-assign": "^4.0.1" + } + }, + "lodash": { + "version": "4.17.15", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", + "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==", + "dev": true + }, + "lodash._baseassign": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/lodash._baseassign/-/lodash._baseassign-3.2.0.tgz", + "integrity": "sha1-jDigmVAPIVrQnlnxci/QxSv+Ck4=", + "dev": true, + "requires": { + "lodash._basecopy": "^3.0.0", + "lodash.keys": "^3.0.0" + } + }, + "lodash._basecopy": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz", + "integrity": "sha1-jaDmqHbPNEwK2KVIghEd08XHyjY=", + "dev": true + }, + "lodash._basecreate": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash._basecreate/-/lodash._basecreate-3.0.3.tgz", + "integrity": "sha1-G8ZhYU2qf8MRt9A78WgGoCE8+CE=", + "dev": true + }, + "lodash._getnative": { + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/lodash._getnative/-/lodash._getnative-3.9.1.tgz", + "integrity": "sha1-VwvH3t5G1hzc3mh9ZdPuy6o6r/U=", + "dev": true + }, + "lodash._isiterateecall": { + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz", + "integrity": "sha1-UgOte6Ql+uhCRg5pbbnPPmqsBXw=", + "dev": true + }, + "lodash.create": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/lodash.create/-/lodash.create-3.1.1.tgz", + "integrity": "sha1-1/KEnw29p+BGgruM1yqwIkYd6+c=", + "dev": true, + "requires": { + "lodash._baseassign": "^3.0.0", + "lodash._basecreate": "^3.0.0", + "lodash._isiterateecall": "^3.0.0" + } + }, + "lodash.isarguments": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz", + "integrity": "sha1-L1c9hcaiQon/AGY7SRwdM4/zRYo=", + "dev": true + }, + "lodash.isarray": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/lodash.isarray/-/lodash.isarray-3.0.4.tgz", + "integrity": "sha1-eeTriMNqgSKvhvhEqpvNhRtfu1U=", + "dev": true + }, + "lodash.keys": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz", + "integrity": "sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo=", + "dev": true, + "requires": { + "lodash._getnative": "^3.0.0", + "lodash.isarguments": "^3.0.0", + "lodash.isarray": "^3.0.0" + } + }, + "lodash.memoize": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-3.0.4.tgz", + "integrity": "sha1-LcvSwofLwKVcxCMovQxzYVDVPj8=", + "dev": true + }, + "log-driver": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/log-driver/-/log-driver-1.2.5.tgz", + "integrity": "sha1-euTsJXMC/XkNVXyxDJcQDYV7AFY=", + "dev": true + }, + "longest": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", + "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=", + "dev": true + }, + "loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dev": true, + "requires": { + "js-tokens": "^3.0.0 || ^4.0.0" + } + }, + "loud-rejection": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", + "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", + "dev": true, + "requires": { + "currently-unhandled": "^0.4.1", + "signal-exit": "^3.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 + }, + "map-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", + "dev": true + }, + "map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "dev": true, + "requires": { + "object-visit": "^1.0.0" + } + }, + "maxmin": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/maxmin/-/maxmin-2.1.0.tgz", + "integrity": "sha1-TTsiCQPZXu5+t6x/qGTnLcCaMWY=", + "dev": true, + "requires": { + "chalk": "^1.0.0", + "figures": "^1.0.1", + "gzip-size": "^3.0.0", + "pretty-bytes": "^3.0.0" + }, + "dependencies": { + "pretty-bytes": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-3.0.1.tgz", + "integrity": "sha1-J9AAjXeAY6C0gRuzXHnxvV1fvM8=", + "dev": true, + "requires": { + "number-is-nan": "^1.0.0" + } + } + } + }, + "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" + } + }, + "memory-fs": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", + "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", + "dev": true, + "requires": { + "errno": "^0.1.3", + "readable-stream": "^2.0.1" + } + }, + "meow": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", + "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", + "dev": true, + "requires": { + "camelcase-keys": "^2.0.0", + "decamelize": "^1.1.2", + "loud-rejection": "^1.0.0", + "map-obj": "^1.0.1", + "minimist": "^1.1.3", + "normalize-package-data": "^2.3.4", + "object-assign": "^4.0.1", + "read-pkg-up": "^1.0.1", + "redent": "^1.0.0", + "trim-newlines": "^1.0.0" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true + } + } + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + } + }, + "miller-rabin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", + "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", + "dev": true, + "requires": { + "bn.js": "^4.0.0", + "brorand": "^1.0.1" + } + }, + "mime-db": { + "version": "1.40.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz", + "integrity": "sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA==", + "dev": true + }, + "mime-types": { + "version": "2.1.24", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz", + "integrity": "sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==", + "dev": true, + "requires": { + "mime-db": "1.40.0" + } + }, + "mimic-response": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-2.0.0.tgz", + "integrity": "sha512-8ilDoEapqA4uQ3TwS0jakGONKXVJqpy+RpM+3b7pLdOjghCrEiGp9SRkFbUHAmZW9vdnrENWHjaweIoTIJExSQ==", + "dev": true, + "optional": 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/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/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": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", + "dev": true + }, + "mixin-deep": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", + "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", + "dev": true, + "requires": { + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "mkdirp": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "dev": true, + "requires": { + "minimist": "0.0.8" + } + }, + "mocha": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-3.5.3.tgz", + "integrity": "sha512-/6na001MJWEtYxHOV1WLfsmR4YIynkUEhBwzsb+fk2qmQ3iqsi258l/Q2MWHJMImAcNpZ8DEdYAK72NHoIQ9Eg==", + "dev": true, + "requires": { + "browser-stdout": "1.3.0", + "commander": "2.9.0", + "debug": "2.6.8", + "diff": "3.2.0", + "escape-string-regexp": "1.0.5", + "glob": "7.1.1", + "growl": "1.9.2", + "he": "1.1.1", + "json3": "3.3.2", + "lodash.create": "3.1.1", + "mkdirp": "0.5.1", + "supports-color": "3.1.2" + }, + "dependencies": { + "commander": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz", + "integrity": "sha1-nJkJQXbhIkDLItbFFGCYQA/g99Q=", + "dev": true, + "requires": { + "graceful-readlink": ">= 1.0.0" + } + }, + "debug": { + "version": "2.6.8", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.8.tgz", + "integrity": "sha1-5zFTHKLt4n0YgiJCfaF4IdaP9Pw=", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "glob": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.1.tgz", + "integrity": "sha1-gFIR3wT6rxxjo2ADBs31reULLsg=", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.2", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "dev": true + }, + "supports-color": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.1.2.tgz", + "integrity": "sha1-cqJiiU2dQIuVbKBf83su2KbiotU=", + "dev": true, + "requires": { + "has-flag": "^1.0.0" + } + } + } + }, + "mocha-lcov-reporter": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/mocha-lcov-reporter/-/mocha-lcov-reporter-1.3.0.tgz", + "integrity": "sha1-Rpve9PivyaEWBW8HnfYYLQr7A4Q=", + "dev": true + }, + "module-deps": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/module-deps/-/module-deps-6.2.1.tgz", + "integrity": "sha512-UnEn6Ah36Tu4jFiBbJVUtt0h+iXqxpLqDvPS8nllbw5RZFmNJ1+Mz5BjYnM9ieH80zyxHkARGLnMIHlPK5bu6A==", + "dev": true, + "requires": { + "JSONStream": "^1.0.3", + "browser-resolve": "^1.7.0", + "cached-path-relative": "^1.0.2", + "concat-stream": "~1.6.0", + "defined": "^1.0.0", + "detective": "^5.0.2", + "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=" + }, + "msgpack5": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/msgpack5/-/msgpack5-3.6.0.tgz", + "integrity": "sha512-6HuCZHA57WtNUzrKIvjJ8OMxigzveJ6D5i13y6TsgGu3X3zxABpuBvChpppOoGdB9SyWZcmqUs1fwUV/PpSQ7Q==", + "requires": { + "bl": "^1.2.1", + "inherits": "^2.0.3", + "readable-stream": "^2.3.3", + "safe-buffer": "^5.1.1" + } + }, + "multimatch": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/multimatch/-/multimatch-2.1.0.tgz", + "integrity": "sha1-nHkGoi+0wCkZ4vX3UWG0zb1LKis=", + "dev": true, + "requires": { + "array-differ": "^1.0.0", + "array-union": "^1.0.1", + "arrify": "^1.0.0", + "minimatch": "^3.0.0" + } + }, + "mute-stream": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.5.tgz", + "integrity": "sha1-j7+rsKmKJT0xhDMfno3rc3L6xsA=", + "dev": true + }, + "nan": { + "version": "2.14.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz", + "integrity": "sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==" + }, + "nanomatch": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", + "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + } + }, + "napi-build-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.1.tgz", + "integrity": "sha512-boQj1WFgQH3v4clhu3mTNfP+vOBxorDlE8EKiMjUlLG3C4qAESnn9AxIOkFgTR2c9LtzNjPrjS60cT27ZKBhaA==", + "dev": true, + "optional": true + }, + "natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", + "dev": true + }, + "neo-async": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.1.tgz", + "integrity": "sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw==", + "dev": true + }, + "next-tick": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz", + "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=", + "dev": true + }, + "node-abi": { + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-2.12.0.tgz", + "integrity": "sha512-VhPBXCIcvmo/5K8HPmnWJyyhvgKxnHTUMXR/XwGHV68+wrgkzST4UmQrY/XszSWA5dtnXpNp528zkcyJ/pzVcw==", + "dev": true, + "optional": true, + "requires": { + "semver": "^5.4.1" + } + }, + "node-libs-browser": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz", + "integrity": "sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==", + "dev": true, + "requires": { + "assert": "^1.1.1", + "browserify-zlib": "^0.2.0", + "buffer": "^4.3.0", + "console-browserify": "^1.1.0", + "constants-browserify": "^1.0.0", + "crypto-browserify": "^3.11.0", + "domain-browser": "^1.1.1", + "events": "^3.0.0", + "https-browserify": "^1.0.0", + "os-browserify": "^0.3.0", + "path-browserify": "0.0.1", + "process": "^0.11.10", + "punycode": "^1.2.4", + "querystring-es3": "^0.2.0", + "readable-stream": "^2.3.3", + "stream-browserify": "^2.0.1", + "stream-http": "^2.7.2", + "string_decoder": "^1.0.0", + "timers-browserify": "^2.0.4", + "tty-browserify": "0.0.0", + "url": "^0.11.0", + "util": "^0.11.0", + "vm-browserify": "^1.0.1" + }, + "dependencies": { + "buffer": { + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz", + "integrity": "sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg=", + "dev": true, + "requires": { + "base64-js": "^1.0.2", + "ieee754": "^1.1.4", + "isarray": "^1.0.0" + } + }, + "events": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.0.0.tgz", + "integrity": "sha512-Dc381HFWJzEOhQ+d8pkNon++bk9h6cdAoAj4iE6Q4y6xgTzySWXlKn05/TVNpjnfRqi/X0EpJEJohPjNI3zpVA==", + "dev": true + }, + "stream-http": { + "version": "2.8.3", + "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz", + "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", + "dev": true, + "requires": { + "builtin-status-codes": "^3.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.3.6", + "to-arraybuffer": "^1.0.0", + "xtend": "^4.0.0" + } + }, + "timers-browserify": { + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.11.tgz", + "integrity": "sha512-60aV6sgJ5YEbzUdn9c8kYGIqOubPoUdqQCul3SBAsRCZ40s6Y5cMcrW4dt3/k/EsbLVJNl9n6Vz3fTc+k2GeKQ==", + "dev": true, + "requires": { + "setimmediate": "^1.0.4" + } + }, + "tty-browserify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", + "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=", + "dev": true + }, + "util": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz", + "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==", + "dev": true, + "requires": { + "inherits": "2.0.3" + }, + "dependencies": { + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + } + } + } + } + }, + "noop-logger": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/noop-logger/-/noop-logger-0.1.1.tgz", + "integrity": "sha1-lKKxYzxPExdVMAfYlm/Q6EG2pMI=", + "dev": true, + "optional": true + }, + "nopt": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", + "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", + "dev": true, + "requires": { + "abbrev": "1" + } + }, + "normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "requires": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "requires": { + "remove-trailing-separator": "^1.0.1" + } + }, + "npmlog": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", + "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", + "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", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "dev": true + }, + "oauth-sign": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", + "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=", + "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, + "requires": { + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "dev": true, + "requires": { + "isobject": "^3.0.0" + } + }, + "object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "onetime": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz", + "integrity": "sha1-ofeDj4MUxRbwXs78vEzP4EtO14k=", + "dev": true + }, + "optimist": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", + "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", + "dev": true, + "requires": { + "minimist": "~0.0.1", + "wordwrap": "~0.0.2" + }, + "dependencies": { + "wordwrap": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", + "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=", + "dev": true + } + } + }, + "optionator": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", + "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", + "dev": true, + "requires": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.4", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "wordwrap": "~1.0.0" + } + }, + "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-locale": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", + "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", + "dev": true, + "requires": { + "lcid": "^1.0.0" + } + }, + "os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", + "dev": true + }, + "outpipe": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/outpipe/-/outpipe-1.1.1.tgz", + "integrity": "sha1-UM+GFjZeh+Ax4ppeyTOaPaRyX6I=", + "dev": true, + "requires": { + "shell-quote": "^1.4.2" + } + }, + "pako": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.10.tgz", + "integrity": "sha512-0DTvPVU3ed8+HNXOu5Bs+o//Mbdj9VNQMUOe9oKCwh8l0GNwpTDMKCWbRjgtD291AWnkAgkqA/LOnQS8AmS1tw==", + "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.5", + "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.5.tgz", + "integrity": "sha512-jkMYn1dcJqF6d5CpU689bq7w/b5ALS9ROVSpQDPrZsqqesUJii9qutvoT5ltGedNXMO2e16YUWIghG9KxaViTQ==", + "dev": true, + "requires": { + "asn1.js": "^4.0.0", + "browserify-aes": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.0", + "pbkdf2": "^3.0.3", + "safe-buffer": "^5.1.1" + } + }, + "parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "dev": true, + "requires": { + "error-ex": "^1.2.0" + } + }, + "pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", + "dev": true + }, + "path-browserify": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz", + "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==", + "dev": true + }, + "path-dirname": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", + "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", + "dev": true + }, + "path-exists": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", + "dev": true, + "requires": { + "pinkie-promise": "^2.0.0" + } + }, + "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-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", + "dev": true + }, + "path-parse": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", + "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", + "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 + }, + "path-type": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", + "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "pbkdf2": { + "version": "3.0.17", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.17.tgz", + "integrity": "sha512-U/il5MsrZp7mGg3mSQfn742na2T+1/vHDCG5/iTI3X9MKUuYUZVLQhyRsg06mCgDBTd57TxzgZt7P+fYfjRLtA==", + "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" + } + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + }, + "pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", + "dev": true + }, + "pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "dev": true, + "requires": { + "pinkie": "^2.0.0" + } + }, + "pkg-up": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-1.0.0.tgz", + "integrity": "sha1-Pgj7RhUlxEIWJKM7n35tCvWwWiY=", + "dev": true, + "requires": { + "find-up": "^1.0.0" + } + }, + "pluralize": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-1.2.1.tgz", + "integrity": "sha1-0aIUg/0iu0HlihL6NCGCMUCJfEU=", + "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 + }, + "prebuild-install": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-5.3.2.tgz", + "integrity": "sha512-INDfXzTPnhT+WYQemqnAXlP7SvfiFMopMozSgXCZ+RDLb279gKfIuLk4o7PgEawLp3WrMgIYGBpkxpraROHsSA==", + "dev": true, + "optional": true, + "requires": { + "detect-libc": "^1.0.3", + "expand-template": "^2.0.3", + "github-from-package": "0.0.0", + "minimist": "^1.2.0", + "mkdirp": "^0.5.1", + "napi-build-utils": "^1.0.1", + "node-abi": "^2.7.0", + "noop-logger": "^0.1.1", + "npmlog": "^4.0.1", + "pump": "^3.0.0", + "rc": "^1.2.7", + "simple-get": "^3.0.3", + "tar-fs": "^2.0.0", + "tunnel-agent": "^0.6.0", + "which-pm-runs": "^1.0.0" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true, + "optional": true + }, + "tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "dev": true, + "optional": true, + "requires": { + "safe-buffer": "^5.0.1" + } + } + } + }, + "prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", + "dev": true + }, + "pretty-bytes": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-4.0.2.tgz", + "integrity": "sha1-sr+C5zUNZcbDOqlaqlpPYyf2HNk=", + "dev": true + }, + "private": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", + "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==", + "dev": true + }, + "process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", + "dev": true + }, + "process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + }, + "progress": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/progress/-/progress-1.1.8.tgz", + "integrity": "sha1-4mDHj2Fhzdmw5WzD4Khd4Xx6V74=", + "dev": true + }, + "prr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", + "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", + "dev": true + }, + "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" + } + }, + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, + "optional": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", + "dev": true + }, + "qs": { + "version": "6.3.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.3.2.tgz", + "integrity": "sha1-51vV9uJoEioqDgvaYwslUMFmUCw=", + "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 + }, + "randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "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/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", + "dev": true, + "requires": { + "randombytes": "^2.0.5", + "safe-buffer": "^5.1.0" + } + }, + "rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "dev": true, + "optional": true, + "requires": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true, + "optional": true + } + } + }, + "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" + } + }, + "read-pkg": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", + "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", + "dev": true, + "requires": { + "load-json-file": "^1.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^1.0.0" + } + }, + "read-pkg-up": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", + "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", + "dev": true, + "requires": { + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" + } + }, + "readable-stream": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "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" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + } + } + }, + "readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + } + }, + "readline2": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/readline2/-/readline2-1.0.1.tgz", + "integrity": "sha1-QQWWCP/BVHV7cV2ZidGZ/783LjU=", + "dev": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "mute-stream": "0.0.5" + } + }, + "rechoir": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", + "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", + "dev": true, + "requires": { + "resolve": "^1.1.6" + } + }, + "redent": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", + "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", + "dev": true, + "requires": { + "indent-string": "^2.1.0", + "strip-indent": "^1.0.1" + } + }, + "regenerate": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.0.tgz", + "integrity": "sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg==", + "dev": true + }, + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", + "dev": true + }, + "regenerator-transform": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.10.1.tgz", + "integrity": "sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q==", + "dev": true, + "requires": { + "babel-runtime": "^6.18.0", + "babel-types": "^6.19.0", + "private": "^0.1.6" + } + }, + "regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "dev": true, + "requires": { + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" + } + }, + "regexpu-core": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz", + "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=", + "dev": true, + "requires": { + "regenerate": "^1.2.1", + "regjsgen": "^0.2.0", + "regjsparser": "^0.1.4" + } + }, + "regjsgen": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz", + "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=", + "dev": true + }, + "regjsparser": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz", + "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", + "dev": true, + "requires": { + "jsesc": "~0.5.0" + } + }, + "remove-trailing-separator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", + "dev": true + }, + "repeat-element": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", + "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==", + "dev": true + }, + "repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", + "dev": true + }, + "repeating": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", + "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", + "dev": true, + "requires": { + "is-finite": "^1.0.0" + } + }, + "request": { + "version": "2.79.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.79.0.tgz", + "integrity": "sha1-Tf5b9r6LjNw3/Pk+BLZVd3InEN4=", + "dev": true, + "requires": { + "aws-sign2": "~0.6.0", + "aws4": "^1.2.1", + "caseless": "~0.11.0", + "combined-stream": "~1.0.5", + "extend": "~3.0.0", + "forever-agent": "~0.6.1", + "form-data": "~2.1.1", + "har-validator": "~2.0.6", + "hawk": "~3.1.3", + "http-signature": "~1.1.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.7", + "oauth-sign": "~0.8.1", + "qs": "~6.3.0", + "stringstream": "~0.0.4", + "tough-cookie": "~2.3.0", + "tunnel-agent": "~0.4.1", + "uuid": "^3.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": "1.0.1", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", + "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", + "dev": true + }, + "require-uncached": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/require-uncached/-/require-uncached-1.0.3.tgz", + "integrity": "sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=", + "dev": true, + "requires": { + "caller-path": "^0.1.0", + "resolve-from": "^1.0.0" + } + }, + "resolve": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.12.0.tgz", + "integrity": "sha512-B/dOmuoAik5bKcD6s6nXDCjzUKnaDvdkRyAk6rsmsKLipWj4797iothd7jmmUhWTfinVMU+wc56rYKsit2Qy4w==", + "dev": true, + "requires": { + "path-parse": "^1.0.6" + } + }, + "resolve-from": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-1.0.1.tgz", + "integrity": "sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY=", + "dev": true + }, + "resolve-pkg": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/resolve-pkg/-/resolve-pkg-0.1.0.tgz", + "integrity": "sha1-AsyZNBDik2livZcWahsHfalyVTE=", + "dev": true, + "requires": { + "resolve-from": "^2.0.0" + }, + "dependencies": { + "resolve-from": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-2.0.0.tgz", + "integrity": "sha1-lICrIOlP+h2egKgEx+oUdhGWa1c=", + "dev": true + } + } + }, + "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 + }, + "restore-cursor": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz", + "integrity": "sha1-NGYfRohjJ/7SmRR5FSJS35LapUE=", + "dev": true, + "requires": { + "exit-hook": "^1.0.0", + "onetime": "^1.0.0" + } + }, + "ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", + "dev": true + }, + "right-align": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", + "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=", + "dev": true, + "requires": { + "align-text": "^0.1.1" + } + }, + "rimraf": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", + "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "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" + } + }, + "run-async": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-0.1.0.tgz", + "integrity": "sha1-yK1KXhEGYeQCp9IbUw4AnyX444k=", + "dev": true, + "requires": { + "once": "^1.3.0" + } + }, + "rx-lite": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-3.1.2.tgz", + "integrity": "sha1-Gc5QLKVyZl87ZHsQk5+X/RYV8QI=", + "dev": true + }, + "safe-buffer": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.0.tgz", + "integrity": "sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==" + }, + "safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "dev": true, + "requires": { + "ret": "~0.1.10" + } + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + }, + "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": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=", + "dev": true + }, + "sha.js": { + "version": "2.4.11", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", + "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "shasum": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/shasum/-/shasum-1.0.2.tgz", + "integrity": "sha1-5wEjENj0F/TetXEhUOVni4euVl8=", + "dev": true, + "requires": { + "json-stable-stringify": "~0.0.0", + "sha.js": "~2.4.4" + }, + "dependencies": { + "json-stable-stringify": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-0.0.1.tgz", + "integrity": "sha1-YRwj6BTbN1Un34URk9tZ3Sryf0U=", + "dev": true, + "requires": { + "jsonify": "~0.0.0" + } + } + } + }, + "shasum-object": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shasum-object/-/shasum-object-1.0.0.tgz", + "integrity": "sha512-Iqo5rp/3xVi6M4YheapzZhhGPVs0yZwHj7wvwQ1B9z8H6zk+FEnI7y3Teq7qwnekfEhu8WmG2z0z4iWZaxLWVg==", + "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/R7waKapmiQg==", + "dev": true + }, + "shelljs": { + "version": "0.7.8", + "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.7.8.tgz", + "integrity": "sha1-3svPh0sNHl+3LhSxZKloMEjprLM=", + "dev": true, + "requires": { + "glob": "^7.0.0", + "interpret": "^1.0.0", + "rechoir": "^0.6.2" + } + }, + "signal-exit": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", + "dev": true + }, + "simple-concat": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.0.tgz", + "integrity": "sha1-c0TLuLbib7J9ZrL8hvn21Zl1IcY=", + "dev": true + }, + "simple-get": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-3.1.0.tgz", + "integrity": "sha512-bCR6cP+aTdScaQCnQKbPKtJOKDp/hj9EDLJo3Nw4y1QksqaovlW/bnptB6/c1e+qmNIDHRK+oXFDdEqBT8WzUA==", + "dev": true, + "optional": true, + "requires": { + "decompress-response": "^4.2.0", + "once": "^1.3.1", + "simple-concat": "^1.0.0" + } + }, + "slash": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", + "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", + "dev": true + }, + "slice-ansi": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-0.0.4.tgz", + "integrity": "sha1-7b+JA/ZvfOL46v1s7tZeJkyDGzU=", + "dev": true + }, + "snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "dev": true, + "requires": { + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "dev": true, + "requires": { + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "dev": true, + "requires": { + "kind-of": "^3.2.0" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "sntp": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz", + "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=", + "dev": true, + "requires": { + "hoek": "2.x.x" + } + }, + "source-list-map": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", + "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==", + "dev": true + }, + "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": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==", + "dev": true, + "requires": { + "atob": "^2.1.1", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" + } + }, + "source-map-support": { + "version": "0.4.18", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", + "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", + "dev": true, + "requires": { + "source-map": "^0.5.6" + } + }, + "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 + }, + "spdx-correct": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz", + "integrity": "sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q==", + "dev": true, + "requires": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-exceptions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz", + "integrity": "sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA==", + "dev": true + }, + "spdx-expression-parse": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", + "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", + "dev": true, + "requires": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-license-ids": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz", + "integrity": "sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q==", + "dev": true + }, + "split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "dev": true, + "requires": { + "extend-shallow": "^3.0.0" + } + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "dev": true + }, + "sshpk": { + "version": "1.16.1", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", + "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", + "dev": true, + "requires": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true + } + } + }, + "static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "dev": true, + "requires": { + "define-property": "^0.2.5", + "object-copy": "^0.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + } + } + }, + "stream-browserify": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz", + "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==", + "dev": true, + "requires": { + "inherits": "~2.0.1", + "readable-stream": "^2.0.2" + } + }, + "stream-buffers": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/stream-buffers/-/stream-buffers-2.2.0.tgz", + "integrity": "sha1-kdX1Ew0c75bc+n9yaUUYh0HQnuQ=", + "dev": true + }, + "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.0", + "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-3.1.0.tgz", + "integrity": "sha512-cuB6RgO7BqC4FBYzmnvhob5Do3wIdIsXAgGycHJnW+981gHqoYcYz9lqjJrk8WXRddbwPuqPYRl+bag6mYv4lw==", + "dev": true, + "requires": { + "builtin-status-codes": "^3.0.0", + "inherits": "^2.0.1", + "readable-stream": "^3.0.6", + "xtend": "^4.0.0" + }, + "dependencies": { + "readable-stream": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.4.0.tgz", + "integrity": "sha512-jItXPLmrSR8jmTRmRWJXCnGJsfy85mB3Wd/uINMXA65yrnFo0cPClFIUWzo2najVNSl+mx7/4W8ttlLWJe99pQ==", + "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": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + } + } + }, + "stringstream": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.6.tgz", + "integrity": "sha512-87GEBAkegbBcweToUrdzf3eLhWNg06FJTebl4BVJz/JgWy8CvEr9dRtX5qWphiynMSQlxxi+QqN0z5T32SLlhA==", + "dev": true + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "dev": true + }, + "strip-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", + "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", + "dev": true, + "requires": { + "get-stdin": "^4.0.1" + } + }, + "strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", + "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.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "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+sBKebSo7w==", + "dev": true, + "requires": { + "acorn-node": "^1.2.0" + } + }, + "table": { + "version": "3.8.3", + "resolved": "https://registry.npmjs.org/table/-/table-3.8.3.tgz", + "integrity": "sha1-K7xULw/amGGnVdOUf+/Ys/UThV8=", + "dev": true, + "requires": { + "ajv": "^4.7.0", + "ajv-keywords": "^1.0.0", + "chalk": "^1.1.1", + "lodash": "^4.0.0", + "slice-ansi": "0.0.4", + "string-width": "^2.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 + }, + "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 + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + } + }, + "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" + } + } + } + }, + "tapable": { + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-0.2.9.tgz", + "integrity": "sha512-2wsvQ+4GwBvLPLWsNfLCDYGsW6xb7aeC6utq2Qh0PFwgEy7K7dsma9Jsmb2zSQj7GvYAyUGSntLtsv++GmgL1A==", + "dev": true + }, + "tar-fs": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.0.0.tgz", + "integrity": "sha512-vaY0obB6Om/fso8a8vakQBzwholQ7v5+uy+tF3Ozvxv1KNezmVQAiWtcNmMHFSFPqL3dJA8ha6gdtFbfX9mcxA==", + "dev": true, + "optional": true, + "requires": { + "chownr": "^1.1.1", + "mkdirp": "^0.5.1", + "pump": "^3.0.0", + "tar-stream": "^2.0.0" + }, + "dependencies": { + "bl": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-3.0.0.tgz", + "integrity": "sha512-EUAyP5UHU5hxF8BPT0LKW8gjYLhq1DQIcneOX/pL/m2Alo+OYDQAJlHq+yseMP50Os2nHXOSic6Ss3vSQeyf4A==", + "dev": true, + "optional": true, + "requires": { + "readable-stream": "^3.0.1" + } + }, + "readable-stream": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.4.0.tgz", + "integrity": "sha512-jItXPLmrSR8jmTRmRWJXCnGJsfy85mB3Wd/uINMXA65yrnFo0cPClFIUWzo2najVNSl+mx7/4W8ttlLWJe99pQ==", + "dev": true, + "optional": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "tar-stream": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.1.0.tgz", + "integrity": "sha512-+DAn4Nb4+gz6WZigRzKEZl1QuJVOLtAwwF+WUxy1fJ6X63CaGaUAxJRD2KEn1OMfcbCjySTYpNC6WmfQoIEOdw==", + "dev": true, + "optional": true, + "requires": { + "bl": "^3.0.0", + "end-of-stream": "^1.4.1", + "fs-constants": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^3.1.1" + } + } + } + }, + "tar-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-1.6.2.tgz", + "integrity": "sha512-rzS0heiNf8Xn7/mpdSVVSMAWAoy9bfb1WOTYC78Z0UQKeKa/CWS8FOq0lKGNa8DWKAn9gxjCvMLYc5PGXYlK2A==", + "dev": true, + "requires": { + "bl": "^1.0.0", + "buffer-alloc": "^1.2.0", + "end-of-stream": "^1.0.0", + "fs-constants": "^1.0.0", + "readable-stream": "^2.3.0", + "to-buffer": "^1.1.1", + "xtend": "^4.0.0" + } + }, + "text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", + "dev": true + }, + "through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", + "dev": true + }, + "through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "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-arraybuffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", + "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=", + "dev": true + }, + "to-buffer": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/to-buffer/-/to-buffer-1.1.1.tgz", + "integrity": "sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg==", + "dev": true + }, + "to-fast-properties": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", + "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", + "dev": true + }, + "to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "dev": true, + "requires": { + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + }, + "tough-cookie": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.4.tgz", + "integrity": "sha512-TZ6TTfI5NtZnuyy/Kecv+CnoROnyXn2DN97LontgQpCwsX2XyLYCC0ENhYkehSOwAp8rTQKc/NUIF7BkQ5rKLA==", + "dev": true, + "requires": { + "punycode": "^1.4.1" + } + }, + "trim-newlines": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", + "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=", + "dev": true + }, + "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 + }, + "tunnel-agent": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.3.tgz", + "integrity": "sha1-Y3PbdpCf5XDgjXNYM2Xtgop07us=", + "dev": true + }, + "tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", + "dev": true + }, + "type": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", + "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==", + "dev": true + }, + "type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "dev": true, + "requires": { + "prelude-ls": "~1.1.2" + } + }, + "type-detect": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-1.0.0.tgz", + "integrity": "sha1-diIXzAbbJY7EiQihKY6LlRIejqI=", + "dev": true + }, + "typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", + "dev": true + }, + "typedarray-to-buffer": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "requires": { + "is-typedarray": "^1.0.0" + } + }, + "uglify-js": { + "version": "3.4.10", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.4.10.tgz", + "integrity": "sha512-Y2VsbPVs0FIshJztycsO2SfPk7/KAF/T72qzv9u5EpQ4kB2hQoHlhNQTsNyy6ul7lQtqJN/AoWeS23OzEiEFxw==", + "dev": true, + "requires": { + "commander": "~2.19.0", + "source-map": "~0.6.1" + }, + "dependencies": { + "commander": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.19.0.tgz", + "integrity": "sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg==", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "uglify-to-browserify": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz", + "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=", + "dev": true, + "optional": 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" + } + }, + "underscore.string": { + "version": "3.3.5", + "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-3.3.5.tgz", + "integrity": "sha512-g+dpmgn+XBneLmXXo+sGlW5xQEt4ErkS3mgeN2GFbremYeMBSJKr9Wf2KJplQVaiPY/f7FN6atosWYNm9ovrYg==", + "dev": true, + "requires": { + "sprintf-js": "^1.0.3", + "util-deprecate": "^1.0.2" + } + }, + "union-value": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", + "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", + "dev": true, + "requires": { + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^2.0.1" + } + }, + "unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "dev": true, + "requires": { + "has-value": "^0.3.1", + "isobject": "^3.0.0" + }, + "dependencies": { + "has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "dev": true, + "requires": { + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" + }, + "dependencies": { + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "dev": true, + "requires": { + "isarray": "1.0.0" + } + } + } + }, + "has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", + "dev": true + } + } + }, + "upath": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", + "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", + "dev": true + }, + "uri-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/uri-path/-/uri-path-1.0.0.tgz", + "integrity": "sha1-l0fwGDWJM8Md4PzP2C0TjmcmLjI=", + "dev": true + }, + "urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", + "dev": true + }, + "url": { + "version": "0.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": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", + "dev": true + }, + "user-home": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/user-home/-/user-home-2.0.0.tgz", + "integrity": "sha1-nHC/2Babwdy/SGBODwS4tJzenp8=", + "dev": true, + "requires": { + "os-homedir": "^1.0.0" + } + }, + "util": { + "version": "0.10.4", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.4.tgz", + "integrity": "sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==", + "dev": true, + "requires": { + "inherits": "2.0.3" + }, + "dependencies": { + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + } + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + }, + "uuid": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.3.tgz", + "integrity": "sha512-pW0No1RGHgzlpHJO1nsVrHKpOEIxkGg1xB+v0ZmdNH5OAeAwzAVrCnI2/6Mtx+Uys6iaylxa+D3g4j63IKKjSQ==", + "dev": true + }, + "validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "requires": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true + } + } + }, + "vm-browserify": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.0.tgz", + "integrity": "sha512-iq+S7vZJE60yejDYM0ek6zg308+UZsdtPExWP9VZoCFCz1zkJoXFnAX7aZfd/ZwrkidzdUZL0C/ryW+JwAiIGw==", + "dev": true + }, + "walkdir": { + "version": "0.0.11", + "resolved": "https://registry.npmjs.org/walkdir/-/walkdir-0.0.11.tgz", + "integrity": "sha1-oW0CXrkxvQO1LzCMrtD0D86+lTI=", + "dev": true + }, + "watchify": { + "version": "3.11.1", + "resolved": "https://registry.npmjs.org/watchify/-/watchify-3.11.1.tgz", + "integrity": "sha512-WwnUClyFNRMB2NIiHgJU9RQPQNqVeFk7OmZaWf5dC5EnNa0Mgr7imBydbaJ7tGTuPM2hz1Cb4uiBvK9NVxMfog==", + "dev": true, + "requires": { + "anymatch": "^2.0.0", + "browserify": "^16.1.0", + "chokidar": "^2.1.1", + "defined": "^1.0.0", + "outpipe": "^1.1.0", + "through2": "^2.0.0", + "xtend": "^4.0.0" + } + }, + "watchpack": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.6.0.tgz", + "integrity": "sha512-i6dHe3EyLjMmDlU1/bGQpEw25XSjkJULPuAVKCbNRefQVq48yXKUpwg538F7AZTf9kyr57zj++pQFltUa5H7yA==", + "dev": true, + "requires": { + "chokidar": "^2.0.2", + "graceful-fs": "^4.1.2", + "neo-async": "^2.5.0" + } + }, + "webpack": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-2.7.0.tgz", + "integrity": "sha512-MjAA0ZqO1ba7ZQJRnoCdbM56mmFpipOPUv/vQpwwfSI42p5PVDdoiuK2AL2FwFUVgT859Jr43bFZXRg/LNsqvg==", + "dev": true, + "requires": { + "acorn": "^5.0.0", + "acorn-dynamic-import": "^2.0.0", + "ajv": "^4.7.0", + "ajv-keywords": "^1.1.1", + "async": "^2.1.2", + "enhanced-resolve": "^3.3.0", + "interpret": "^1.0.0", + "json-loader": "^0.5.4", + "json5": "^0.5.1", + "loader-runner": "^2.3.0", + "loader-utils": "^0.2.16", + "memory-fs": "~0.4.1", + "mkdirp": "~0.5.0", + "node-libs-browser": "^2.0.0", + "source-map": "^0.5.3", + "supports-color": "^3.1.0", + "tapable": "~0.2.5", + "uglify-js": "^2.8.27", + "watchpack": "^1.3.1", + "webpack-sources": "^1.0.1", + "yargs": "^6.0.0" + }, + "dependencies": { + "async": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", + "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", + "dev": true, + "requires": { + "lodash": "^4.17.14" + } + }, + "camelcase": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", + "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=", + "dev": true + }, + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "dev": true + }, + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "dev": true, + "requires": { + "has-flag": "^1.0.0" + } + }, + "uglify-js": { + "version": "2.8.29", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", + "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=", + "dev": true, + "requires": { + "source-map": "~0.5.1", + "uglify-to-browserify": "~1.0.0", + "yargs": "~3.10.0" + }, + "dependencies": { + "yargs": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", + "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", + "dev": true, + "requires": { + "camelcase": "^1.0.2", + "cliui": "^2.1.0", + "decamelize": "^1.0.0", + "window-size": "0.1.0" + } + } + } + } + } + }, + "webpack-sources": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", + "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", + "dev": true, + "requires": { + "source-list-map": "^2.0.0", + "source-map": "~0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "websocket": { + "version": "1.0.30", + "resolved": "https://registry.npmjs.org/websocket/-/websocket-1.0.30.tgz", + "integrity": "sha512-aO6klgaTdSMkhfl5VVJzD5fm+Srhh5jLYbS15+OiI1sN6h/RU/XW6WN9J1uVIpUKNmsTvT3Hs35XAFjn9NMfOw==", + "requires": { + "debug": "^2.2.0", + "nan": "^2.14.0", + "typedarray-to-buffer": "^3.1.5", + "yaeti": "^0.0.6" + } + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "which-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz", + "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=", + "dev": true + }, + "which-pm-runs": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/which-pm-runs/-/which-pm-runs-1.0.0.tgz", + "integrity": "sha1-Zws6+8VS4LVd9rd4DKdGFfI60cs=", + "dev": true, + "optional": true + }, + "wide-align": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", + "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", + "dev": true, + "optional": true, + "requires": { + "string-width": "^1.0.2 || 2" + } + }, + "window-size": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", + "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=", + "dev": true + }, + "wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", + "dev": true + }, + "wrap-ansi": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", + "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", + "dev": true, + "requires": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + }, + "write": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/write/-/write-0.2.1.tgz", + "integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=", + "dev": true, + "requires": { + "mkdirp": "^0.5.1" + } + }, + "xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "dev": true + }, + "y18n": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", + "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=", + "dev": true + }, + "yaeti": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/yaeti/-/yaeti-0.0.6.tgz", + "integrity": "sha1-8m9ITXJoTPQr7ft2lwqhYI+/lXc=" + }, + "yargs": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-6.6.0.tgz", + "integrity": "sha1-eC7CHvQDNF+DCoCMo9UTr1YGUgg=", + "dev": true, + "requires": { + "camelcase": "^3.0.0", + "cliui": "^3.2.0", + "decamelize": "^1.1.1", + "get-caller-file": "^1.0.1", + "os-locale": "^1.4.0", + "read-pkg-up": "^1.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^1.0.2", + "which-module": "^1.0.0", + "y18n": "^3.2.1", + "yargs-parser": "^4.2.0" + }, + "dependencies": { + "camelcase": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", + "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=", + "dev": true + }, + "cliui": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", + "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", + "dev": true, + "requires": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wrap-ansi": "^2.0.0" + } + } + } + }, + "yargs-parser": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-4.2.1.tgz", + "integrity": "sha1-KczqwNxPA8bIe0qfIX3RjJ90hxw=", + "dev": true, + "requires": { + "camelcase": "^3.0.0" + }, + "dependencies": { + "camelcase": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", + "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=", + "dev": true + } + } + }, + "zip-stream": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/zip-stream/-/zip-stream-1.2.0.tgz", + "integrity": "sha1-qLxF9MG0lpnGuQGYuqyqzbzUugQ=", + "dev": true, + "requires": { + "archiver-utils": "^1.3.0", + "compress-commons": "^1.2.0", + "lodash": "^4.8.0", + "readable-stream": "^2.0.0" + } + } + } +} diff --git a/package.json b/package.json index 027cb0b..8fa113d 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "wampy", - "version": "5.0.1", + "version": "5.0.2", "description": "Simple WAMP (WebSocket Application Messaging Protocol) Javascript implementation", "author": "Konstantin Burkalev (http://ksdaemon.ru)", "devDependencies": {