diff --git a/CHANGES b/CHANGES index 386a43d..39a3a2f 100644 --- a/CHANGES +++ b/CHANGES @@ -1,11 +1,12 @@ Change log ========== -2.2.1 (XXXX-XX-XX) +2.3.0 (XXXX-XX-XX) ------------------ - NAPI v7 -- The client parameter set to optional in RfcConnectionParameters interface +- The client parameter set to optional in RfcConnectionParameters interface 8e7bb8f +- setIniFileDirectory method added at addon level, to set the sapnwrfc.ini file directory 2.2.0 (2020-10-13) ------------------ diff --git a/doc/api.md b/doc/api.md index 4ab5df7..e6cac44 100644 --- a/doc/api.md +++ b/doc/api.md @@ -1,3 +1,5 @@ +- **[addon](#addon)** + - [setIniFileDirectory](#setinifiledirectory) - **[Client](#client)** - [Properties](#client-properties) - [Constructor](#client-constructor) @@ -15,6 +17,16 @@ - [Constructor](#throughput-constructor) - [API](#throughput-api) +## Addon + +### setIniFileDirectory + +Usage: [usage/addon](usage.md#addon) + +```ts +setIniFileDirectory(iniFileDirectory: string) +``` + ## Client Usage: [usage/client](usage.md#client) diff --git a/doc/usage.md b/doc/usage.md index b812f20..db0c2b4 100644 --- a/doc/usage.md +++ b/doc/usage.md @@ -4,7 +4,12 @@ - [Date/Time types](#datetime-types) - [UTCLONG](#utclong) - **[ABAP Function Module](#abap-function-module)** +- **[Addon](#addon)** + + - [setIniFileDirectory](#setinifiledirectory) + + - **[Client](#client)** - [Using `sapnwrfc.ini` file](api.md/#setIniPath) @@ -116,6 +121,19 @@ Using ABAP transaction SE37 in ABAP backend system, you can enter the input data To consume this function module from NodeJS, first the node-rfc client connection shall be instantiated, using ABAP backend system connection parameters. +## Addon + +API: [api/addon](api.md#addon) + +### setIniFileDirectory + +Sets the directory in which the NWRFC SDK shall search for the `sapnwrfc.ini` file, exposing the `RfcSetIniPath` NWRFC SDK method. The default is the current working directory of the process. After the directory is set, the NW RFC lib automatically loads the contents of the new `sapnwrfc.ini` file from that directory. The exception is thrown if `sapnwrfc.ini` not found in the new directory. + +```ts +const noderfc = require("node-rfc"); +noderfc.setIniFileDirectory("/some/folder"); +``` + ## Client API: [api/client](api.md#client) diff --git a/lib/index.d.ts b/lib/index.d.ts index a352ee1..cef9677 100644 --- a/lib/index.d.ts +++ b/lib/index.d.ts @@ -3,3 +3,4 @@ export * from "./wrapper/sapnwrfc-client"; export * from "./wrapper/sapnwrfc-pool"; export * from "./wrapper/sapnwrfc-throughput"; export * from "./wrapper/sapnwrfc-server"; +export declare function setIniFileDirectory(iniFileDirectory: string): void; diff --git a/lib/index.js b/lib/index.js index 08b60d2..9cc008c 100644 --- a/lib/index.js +++ b/lib/index.js @@ -10,9 +10,20 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) { for (var p in m) if (p !== "default" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p); }; Object.defineProperty(exports, "__esModule", { value: true }); +exports.setIniFileDirectory = void 0; __exportStar(require("./wrapper/noderfc-bindings"), exports); __exportStar(require("./wrapper/sapnwrfc-client"), exports); __exportStar(require("./wrapper/sapnwrfc-pool"), exports); __exportStar(require("./wrapper/sapnwrfc-throughput"), exports); __exportStar(require("./wrapper/sapnwrfc-server"), exports); +const noderfc_bindings_1 = require("./wrapper/noderfc-bindings"); +function setIniFileDirectory(iniFileDirectory) { + const path = require("path"); + const fullPath = path.join(iniFileDirectory, "sapnwrfc.ini"); + if (!require("fs").existsSync(fullPath)) { + throw new Error(`sapnwrfc.ini not found in: ${iniFileDirectory}`); + } + noderfc_bindings_1.noderfc_binding.setIniFileDirectory(iniFileDirectory); +} +exports.setIniFileDirectory = setIniFileDirectory; //# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/lib/index.js.map b/lib/index.js.map index 509c22a..28e87e2 100644 --- a/lib/index.js.map +++ b/lib/index.js.map @@ -1 +1 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/ts/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAMA,6DAA2C;AAC3C,4DAA0C;AAC1C,0DAAwC;AACxC,gEAA8C;AAC9C,4DAA0C"} \ No newline at end of file +{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/ts/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAMA,6DAA2C;AAC3C,4DAA0C;AAC1C,0DAAwC;AACxC,gEAA8C;AAC9C,4DAA0C;AAE1C,iEAA6D;AAE7D,SAAgB,mBAAmB,CAAC,gBAAwB;IACxD,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC7B,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,cAAc,CAAC,CAAC;IAC7D,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE;QACrC,MAAM,IAAI,KAAK,CAAC,8BAA8B,gBAAgB,EAAE,CAAC,CAAC;KACrE;IACD,kCAAe,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,CAAC;AAC1D,CAAC;AAPD,kDAOC"} \ No newline at end of file diff --git a/lib/wrapper/noderfc-bindings.d.ts b/lib/wrapper/noderfc-bindings.d.ts index d27d272..3d38865 100644 --- a/lib/wrapper/noderfc-bindings.d.ts +++ b/lib/wrapper/noderfc-bindings.d.ts @@ -24,9 +24,10 @@ export interface NWRfcBinding { Pool: RfcPoolBinding; Throughput: RfcThroughputBinding; Server: RfcServerBinding; - verbose(): this; bindingVersions: NodeRfcBindingVersions; environment: NodeRfcEnvironment; + setIniFileDirectory(iniFileDirectory: string): any | undefined; + verbose(): this; } declare let noderfc_binding: NWRfcBinding; declare const environment: { diff --git a/lib/wrapper/noderfc-bindings.js.map b/lib/wrapper/noderfc-bindings.js.map index 9725ec9..29a01cf 100644 --- a/lib/wrapper/noderfc-bindings.js.map +++ b/lib/wrapper/noderfc-bindings.js.map @@ -1 +1 @@ -{"version":3,"file":"noderfc-bindings.js","sourceRoot":"","sources":["../../src/ts/wrapper/noderfc-bindings.ts"],"names":[],"mappings":";;;;;;AAMA,4CAAoB;AACpB,MAAM,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AAyE3B,0BAAO;AAnEH,QAAA,SAAS,GAAG,uCAAuC,CAAC;AAsBjE,MAAM,CAAC,GAAG;IACN,QAAQ,EAAE;QACN,IAAI,EAAE,YAAE,CAAC,QAAQ,EAAE;QACnB,IAAI,EAAE,YAAE,CAAC,IAAI,EAAE;QACf,OAAO,EAAE,YAAE,CAAC,OAAO,EAAE;KACxB;IACD,GAAG,EAAE;QACD,aAAa,EAAE,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,EAAE;QAC9C,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,EAAE;KACrC;IACD,QAAQ,EAAE,OAAO,CAAC,QAAQ;CAC7B,CAAC;AAEF,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,KAAK,OAAO,EAAE;IAC7B,CAAC,CAAC,GAAG,CAAC,sBAAsB,CAAC,GAAG,KAAK,CAAC;IACtC,IAAI,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE;QAChC,MAAM,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;QAC3B,IAAI,CAAC,KAAK,SAAS,EAAE;YACjB,CAAC,CAAC,GAAG,CAAC,sBAAsB,CAAC;gBACzB,CAAC,CAAC,WAAW,EAAE,CAAC,OAAO,CACnB,GAAG,CAAC,CAAC,GAAG,CAAC,aAAa,QAAQ,CAAC,WAAW,EAAE,CAC/C,GAAG,CAAC,CAAC,CAAC;SACd;KACJ;CACJ;AAED,IAAI,eAA6B,CAAC;AAoBzB,0CAAe;AAlBxB,IAAI;IACA,0BAAA,eAAe,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAAC;CACpD;AAAC,OAAO,EAAE,EAAE;IACT,IAAI,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QAC1C,EAAE,CAAC,OAAO;YACN,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;gBACzD,CAAC,CAAC,iKAAiK;gBACnK,CAAC,CAAC,+BAA+B,OAAO,CAAC,QAAQ,EAAE,CAAC;IAChE,EAAE,CAAC,OAAO,IAAI,kBAAkB,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC;IAC/D,MAAM,EAAE,CAAC;CACZ;AAGD,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,EAAE;IACrC,OAAO,EAAE,eAAe,CAAC,eAAe;CAC3C,CAAC,CAAC;AAIM,kCAAW"} \ No newline at end of file +{"version":3,"file":"noderfc-bindings.js","sourceRoot":"","sources":["../../src/ts/wrapper/noderfc-bindings.ts"],"names":[],"mappings":";;;;;;AAMA,4CAAoB;AACpB,MAAM,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AA0E3B,0BAAO;AApEH,QAAA,SAAS,GAAG,uCAAuC,CAAC;AAuBjE,MAAM,CAAC,GAAG;IACN,QAAQ,EAAE;QACN,IAAI,EAAE,YAAE,CAAC,QAAQ,EAAE;QACnB,IAAI,EAAE,YAAE,CAAC,IAAI,EAAE;QACf,OAAO,EAAE,YAAE,CAAC,OAAO,EAAE;KACxB;IACD,GAAG,EAAE;QACD,aAAa,EAAE,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,EAAE;QAC9C,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,EAAE;KACrC;IACD,QAAQ,EAAE,OAAO,CAAC,QAAQ;CAC7B,CAAC;AAEF,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,KAAK,OAAO,EAAE;IAC7B,CAAC,CAAC,GAAG,CAAC,sBAAsB,CAAC,GAAG,KAAK,CAAC;IACtC,IAAI,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE;QAChC,MAAM,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;QAC3B,IAAI,CAAC,KAAK,SAAS,EAAE;YACjB,CAAC,CAAC,GAAG,CAAC,sBAAsB,CAAC;gBACzB,CAAC,CAAC,WAAW,EAAE,CAAC,OAAO,CACnB,GAAG,CAAC,CAAC,GAAG,CAAC,aAAa,QAAQ,CAAC,WAAW,EAAE,CAC/C,GAAG,CAAC,CAAC,CAAC;SACd;KACJ;CACJ;AAED,IAAI,eAA6B,CAAC;AAoBzB,0CAAe;AAlBxB,IAAI;IACA,0BAAA,eAAe,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAAC;CACpD;AAAC,OAAO,EAAE,EAAE;IACT,IAAI,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QAC1C,EAAE,CAAC,OAAO;YACN,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;gBACzD,CAAC,CAAC,iKAAiK;gBACnK,CAAC,CAAC,+BAA+B,OAAO,CAAC,QAAQ,EAAE,CAAC;IAChE,EAAE,CAAC,OAAO,IAAI,kBAAkB,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC;IAC/D,MAAM,EAAE,CAAC;CACZ;AAGD,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,EAAE;IACrC,OAAO,EAAE,eAAe,CAAC,eAAe;CAC3C,CAAC,CAAC;AAIM,kCAAW"} \ No newline at end of file diff --git a/lib/wrapper/sapnwrfc-client.d.ts b/lib/wrapper/sapnwrfc-client.d.ts index 9b16739..bef2779 100644 --- a/lib/wrapper/sapnwrfc-client.d.ts +++ b/lib/wrapper/sapnwrfc-client.d.ts @@ -22,7 +22,7 @@ export interface RfcConnectionParameters { trace?: EnumTrace; user?: string; passwd?: string; - client: string; + client?: string; lang?: string; mysapsso2?: string; getsso2?: string; @@ -104,7 +104,6 @@ export interface RfcClientBinding { close(callback: Function): void; resetServerContext(callback: Function): void; ping(callback: Function): void; - setIniPath(pathName: string): void; invoke(rfmName: string, rfmParams: RfcObject, callback: Function, callOptions?: object): void; release(oneClientBinding: [RfcClientBinding], callback: Function): void; } @@ -121,9 +120,8 @@ export declare class Client { get config(): Object; get _id(): string; get connectionInfo(): RfcConnectionInfo; - checkCallbackArg(method: string, callback?: Function): void; + static checkCallbackArg(method: string, callback?: Function): void; connect(callback?: Function): void | Promise; - setIniPath(pathName: string, callback?: Function): void | Promise; open(callback?: Function): void | Promise; ping(callback?: Function): void | Promise; close(callback?: Function): void | Promise; diff --git a/lib/wrapper/sapnwrfc-client.js b/lib/wrapper/sapnwrfc-client.js index 67cbdd4..98f50d1 100644 --- a/lib/wrapper/sapnwrfc-client.js +++ b/lib/wrapper/sapnwrfc-client.js @@ -70,34 +70,17 @@ class Client { get connectionInfo() { return this.__client.connectionInfo(); } - checkCallbackArg(method, callback) { + static checkCallbackArg(method, callback) { if (callback !== undefined && typeof callback !== "function") { throw new TypeError(`Client ${method}() argument, if provided, must be a Function. Received: ${typeof callback}`); } } connect(callback) { - this.checkCallbackArg("connect", callback); + Client.checkCallbackArg("connect", callback); return this.open(callback); } - setIniPath(pathName, callback) { - this.checkCallbackArg("setIniPath", callback); - const err = this.__client.setIniPath(pathName); - if (callback === undefined) { - return new Promise((resolve, reject) => { - if (err === undefined) { - resolve(); - } - else { - reject(err); - } - }); - } - else { - callback(err); - } - } open(callback) { - this.checkCallbackArg("open", callback); + Client.checkCallbackArg("open", callback); if (typeof callback === "function") { try { this.__client.open(callback); @@ -125,7 +108,7 @@ class Client { } } ping(callback) { - this.checkCallbackArg("ping", callback); + Client.checkCallbackArg("ping", callback); if (typeof callback === "function") { try { this.__client.ping(callback); @@ -153,7 +136,7 @@ class Client { } } close(callback) { - this.checkCallbackArg("close", callback); + Client.checkCallbackArg("close", callback); if (typeof callback === "function") { try { this.__client.close(callback); @@ -181,7 +164,7 @@ class Client { } } resetServerContext(callback) { - this.checkCallbackArg("resetServerContext", callback); + Client.checkCallbackArg("resetServerContext", callback); if (typeof callback === "function") { try { this.__client.resetServerContext(callback); @@ -209,7 +192,7 @@ class Client { } } release(callback) { - this.checkCallbackArg("release"); + Client.checkCallbackArg("release"); if (typeof callback === "function") { try { this.__client.release([this.__client], callback); diff --git a/lib/wrapper/sapnwrfc-client.js.map b/lib/wrapper/sapnwrfc-client.js.map index c8e1b75..79ee712 100644 --- a/lib/wrapper/sapnwrfc-client.js.map +++ b/lib/wrapper/sapnwrfc-client.js.map @@ -1 +1 @@ -{"version":3,"file":"sapnwrfc-client.js","sourceRoot":"","sources":["../../src/ts/wrapper/sapnwrfc-client.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"sapnwrfc-client.js","sourceRoot":"","sources":["../../src/ts/wrapper/sapnwrfc-client.ts"],"names":[],"mappings":";;;AAIA,yDAK4B;AAM5B,IAAK,UAMJ;AAND,WAAK,UAAU;IACX,0BAAY,CAAA;IACZ,6BAAe,CAAA;IACf,qCAAuB,CAAA;IACvB,kCAAoB,CAAA;IACpB,2BAAa,CAAA;AACjB,CAAC,EANI,UAAU,KAAV,UAAU,QAMd;AAED,IAAK,SAKJ;AALD,WAAK,SAAS;IACV,sBAAS,CAAA;IACT,wBAAW,CAAA;IACX,0BAAa,CAAA;IACb,uBAAU,CAAA;AACd,CAAC,EALI,SAAS,KAAT,SAAS,QAKb;AAkDD,IAAK,qBAKJ;AALD,WAAK,qBAAqB;IACtB,6EAAiB,CAAA;IACjB,6EAAiB,CAAA;IACjB,iFAAsC,CAAA;IACtC,6EAAgC,CAAA;AACpC,CAAC,EALI,qBAAqB,KAArB,qBAAqB,QAKzB;AA+ED,MAAa,MAAM;IAGf,YACI,IAAgD,EAChD,aAAgC;QAEhC,IAAI,IAAI,KAAK,SAAS,EAAE;YACpB,MAAM,IAAI,SAAS,CAAC,yCAAyC,CAAC,CAAC;SAClE;QACD,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,SAAS,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;YACxD,IAAI,CAAC,QAAQ,GAAqB,IAAI,CAAC;SAC1C;aAAM;YACH,IAAI,CAAC,QAAQ,GAAG,aAAa;gBACzB,CAAC,CAAC,IAAI,kCAAe,CAAC,MAAM,CACG,IAAI,EAC7B,aAAa,CAChB;gBACH,CAAC,CAAC,IAAI,kCAAe,CAAC,MAAM,CAA0B,IAAI,CAAC,CAAC;SACnE;IACL,CAAC;IAED,MAAM,KAAK,WAAW;QAClB,OAAO,8BAAW,CAAC;IACvB,CAAC;IAED,IAAI,WAAW;QACX,OAAO,8BAAW,CAAC;IACvB,CAAC;IAED,IAAI,OAAO;QACP,OAAO,IAAI,CAAC,QAAQ,CAAC;IACzB,CAAC;IAED,IAAI,EAAE;QACF,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;IAC7B,CAAC;IAED,IAAI,KAAK;QACL,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;IAChC,CAAC;IAED,IAAI,gBAAgB;QAChB,OAAO,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC;IAC3C,CAAC;IAED,IAAI,OAAO;QACP,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;IAClC,CAAC;IAED,IAAI,MAAM;QACN,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;IACjC,CAAC;IAED,IAAI,GAAG;QACH,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,YACvB,IAAI,CAAC,QAAQ,CAAC,iBAClB,IACI,IAAI,CAAC,QAAQ,CAAC,QAAQ;YAClB,CAAC,CAAC,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ;YACvC,CAAC,CAAC,KACV,EAAE,CAAC;IACP,CAAC;IAED,IAAI,cAAc;QACd,OAAO,IAAI,CAAC,QAAQ,CAAC,cAAc,EAAE,CAAC;IAC1C,CAAC;IAED,MAAM,CAAC,gBAAgB,CAAC,MAAc,EAAE,QAAmB;QACvD,IAAI,QAAQ,KAAK,SAAS,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE;YAC1D,MAAM,IAAI,SAAS,CACf,UAAU,MAAM,2DAA2D,OAAO,QAAQ,EAAE,CAC/F,CAAC;SACL;IACL,CAAC;IAGD,OAAO,CAAC,QAAmB;QACvB,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QAC7C,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC/B,CAAC;IAED,IAAI,CAAC,QAAmB;QACpB,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QAC1C,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE;YAChC,IAAI;gBACA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;aAChC;YAAC,OAAO,EAAE,EAAE;gBACT,QAAQ,CAAC,EAAE,CAAC,CAAC;aAChB;SACJ;aAAM;YACH,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBACnC,IAAI;oBACA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE;wBACvB,IAAI,GAAG,KAAK,SAAS,EAAE;4BACnB,MAAM,CAAC,GAAG,CAAC,CAAC;yBACf;6BAAM;4BACH,OAAO,CAAC,IAAI,CAAC,CAAC;yBACjB;oBACL,CAAC,CAAC,CAAC;iBACN;gBAAC,OAAO,EAAE,EAAE;oBACT,MAAM,CAAC,EAAE,CAAC,CAAC;iBACd;YACL,CAAC,CAAC,CAAC;SACN;IACL,CAAC;IAED,IAAI,CAAC,QAAmB;QACpB,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QAE1C,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE;YAChC,IAAI;gBACA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;aAChC;YAAC,OAAO,EAAE,EAAE;gBACT,QAAQ,CAAC,EAAE,CAAC,CAAC;aAChB;SACJ;aAAM;YACH,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBACnC,IAAI;oBACA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAQ,EAAE,GAAY,EAAE,EAAE;wBAC1C,IAAI,GAAG,KAAK,SAAS,EAAE;4BACnB,OAAO,CAAC,GAAG,CAAC,CAAC;yBAChB;6BAAM;4BACH,MAAM,CAAC,GAAG,CAAC,CAAC;yBACf;oBACL,CAAC,CAAC,CAAC;iBACN;gBAAC,OAAO,EAAE,EAAE;oBACT,MAAM,CAAC,EAAE,CAAC,CAAC;iBACd;YACL,CAAC,CAAC,CAAC;SACN;IACL,CAAC;IAED,KAAK,CAAC,QAAmB;QACrB,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QAE3C,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE;YAChC,IAAI;gBACA,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;aACjC;YAAC,OAAO,EAAE,EAAE;gBACT,QAAQ,CAAC,EAAE,CAAC,CAAC;aAChB;SACJ;aAAM;YACH,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBACnC,IAAI;oBACA,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;wBACxB,IAAI,GAAG,KAAK,SAAS,EAAE;4BACnB,OAAO,EAAE,CAAC;yBACb;6BAAM;4BACH,MAAM,CAAC,GAAG,CAAC,CAAC;yBACf;oBACL,CAAC,CAAC,CAAC;iBACN;gBAAC,OAAO,EAAE,EAAE;oBACT,MAAM,CAAC,EAAE,CAAC,CAAC;iBACd;YACL,CAAC,CAAC,CAAC;SACN;IACL,CAAC;IAED,kBAAkB,CAAC,QAAmB;QAClC,MAAM,CAAC,gBAAgB,CAAC,oBAAoB,EAAE,QAAQ,CAAC,CAAC;QAExD,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE;YAChC,IAAI;gBACA,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;aAC9C;YAAC,OAAO,EAAE,EAAE;gBACT,QAAQ,CAAC,EAAE,CAAC,CAAC;aAChB;SACJ;aAAM;YACH,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBACnC,IAAI;oBACA,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC,GAAG,EAAE,EAAE;wBACrC,IAAI,GAAG,KAAK,SAAS,EAAE;4BACnB,OAAO,EAAE,CAAC;yBACb;6BAAM;4BACH,MAAM,CAAC,GAAG,CAAC,CAAC;yBACf;oBACL,CAAC,CAAC,CAAC;iBACN;gBAAC,OAAO,EAAE,EAAE;oBACT,MAAM,CAAC,EAAE,CAAC,CAAC;iBACd;YACL,CAAC,CAAC,CAAC;SACN;IACL,CAAC;IAED,OAAO,CAAC,QAAmB;QACvB,MAAM,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;QAEnC,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE;YAChC,IAAI;gBACA,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC,CAAC;aACpD;YAAC,OAAO,EAAE,EAAE;gBACT,QAAQ,CAAC,EAAE,CAAC,CAAC;aAChB;SACJ;aAAM;YACH,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBACnC,IAAI;oBACA,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE;wBAC3C,IAAI,GAAG,KAAK,SAAS,EAAE;4BACnB,OAAO,EAAE,CAAC;yBACb;6BAAM;4BACH,MAAM,CAAC,GAAG,CAAC,CAAC;yBACf;oBACL,CAAC,CAAC,CAAC;iBACN;gBAAC,OAAO,EAAE,EAAE;oBACT,MAAM,CAAC,EAAE,CAAC,CAAC;iBACd;YACL,CAAC,CAAC,CAAC;SACN;IACL,CAAC;IAED,IAAI,CACA,OAAe,EACf,SAAoB,EACpB,cAAgC,EAAE;QAElC,OAAO,IAAI,OAAO,CACd,CACI,OAAkC,EAClC,MAAiC,EACnC,EAAE;YACA,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;gBACtB,MAAM,CACF,IAAI,SAAS,CACT,wEAAwE,CAC3E,CACJ,CAAC;aACL;YAED,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;gBAC7B,MAAM,CACF,IAAI,SAAS,CACT,gEAAgE,CACnE,CACJ,CAAC;aACL;YAED,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE;gBAC/B,MAAM,CACF,IAAI,SAAS,CACT,uEAAuE,CAC1E,CACJ,CAAC;aACL;YAED,IACI,WAAW,KAAK,SAAS;gBACzB,OAAO,WAAW,KAAK,QAAQ,EACjC;gBACE,MAAM,CACF,IAAI,SAAS,CAAC,yCAAyC,CAAC,CAC3D,CAAC;aACL;YAED,IAAI;gBACA,IAAI,CAAC,QAAQ,CAAC,MAAM,CAChB,OAAO,EACP,SAAS,EACT,CAAC,GAAQ,EAAE,GAAc,EAAE,EAAE;oBACzB,IAAI,GAAG,KAAK,SAAS,EAAE;wBACnB,MAAM,CAAC,GAAG,CAAC,CAAC;qBACf;yBAAM;wBACH,OAAO,CAAC,GAAG,CAAC,CAAC;qBAChB;gBACL,CAAC,EACD,WAAW,CACd,CAAC;aACL;YAAC,OAAO,EAAE,EAAE;gBACT,MAAM,CAAC,EAAE,CAAC,CAAC;aACd;QACL,CAAC,CACJ,CAAC;IACN,CAAC;IAED,MAAM,CACF,OAAe,EACf,SAAoB,EACpB,QAAkB,EAClB,WAA8B;QAE9B,IAAI;YACA,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE;gBAChC,MAAM,IAAI,SAAS,CAAC,oCAAoC,CAAC,CAAC;aAC7D;YAED,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;gBACtB,MAAM,IAAI,SAAS,CACf,oEAAoE,CACvE,CAAC;aACL;YAED,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;gBAC7B,MAAM,IAAI,SAAS,CACf,8EAA8E,CACjF,CAAC;aACL;YAED,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE;gBAC/B,MAAM,IAAI,SAAS,CACf,oFAAoF,CACvF,CAAC;aACL;YAED,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE;gBAC3D,MAAM,IAAI,SAAS,CAAC,yCAAyC,CAAC,CAAC;aAClE;YAED,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;SACnE;QAAC,OAAO,EAAE,EAAE;YACT,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE;gBAChC,MAAM,EAAE,CAAC;aACZ;iBAAM;gBACH,QAAQ,CAAC,EAAE,CAAC,CAAC;aAChB;SACJ;IACL,CAAC;CACJ;AA5TD,wBA4TC"} \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 76c29d7..90561fe 100644 --- a/package-lock.json +++ b/package-lock.json @@ -14,16 +14,16 @@ } }, "@babel/core": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.12.1.tgz", - "integrity": "sha512-6bGmltqzIJrinwRRdczQsMhruSi9Sqty9Te+/5hudn4Izx/JYRhW1QELpR+CIL0gC/c9A7WroH6FmkDGxmWx3w==", + "version": "7.12.3", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.12.3.tgz", + "integrity": "sha512-0qXcZYKZp3/6N2jKYVxZv0aNCsxTSVCiK72DTiTYZAu7sjg73W0/aynWjMbiGd87EQL4WyA8reiJVh92AVla9g==", "dev": true, "requires": { "@babel/code-frame": "^7.10.4", "@babel/generator": "^7.12.1", "@babel/helper-module-transforms": "^7.12.1", "@babel/helpers": "^7.12.1", - "@babel/parser": "^7.12.1", + "@babel/parser": "^7.12.3", "@babel/template": "^7.10.4", "@babel/traverse": "^7.12.1", "@babel/types": "^7.12.1", @@ -35,68 +35,15 @@ "resolve": "^1.3.2", "semver": "^5.4.1", "source-map": "^0.5.0" - }, - "dependencies": { - "@babel/generator": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.12.1.tgz", - "integrity": "sha512-DB+6rafIdc9o72Yc3/Ph5h+6hUjeOp66pF0naQBgUFFuPqzQwIlPTm3xZR7YNvduIMtkDIj2t21LSQwnbCrXvg==", - "dev": true, - "requires": { - "@babel/types": "^7.12.1", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" - } - }, - "@babel/parser": { - "version": "7.12.2", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.2.tgz", - "integrity": "sha512-LMN+SqTiZEonUw4hQA0A3zG8DnN0E1F4K107LbDDUnC+0chML1rvWgsHloC9weB4RmZweE0uhFq0eGX7Nr/PBQ==", - "dev": true - }, - "@babel/traverse": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.1.tgz", - "integrity": "sha512-MA3WPoRt1ZHo2ZmoGKNqi20YnPt0B1S0GTZEPhhd+hw2KGUzBlHuVunj6K4sNuK+reEvyiPwtp0cpaqLzJDmAw==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.10.4", - "@babel/generator": "^7.12.1", - "@babel/helper-function-name": "^7.10.4", - "@babel/helper-split-export-declaration": "^7.11.0", - "@babel/parser": "^7.12.1", - "@babel/types": "^7.12.1", - "debug": "^4.1.0", - "globals": "^11.1.0", - "lodash": "^4.17.19" - } - }, - "@babel/types": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.1.tgz", - "integrity": "sha512-BzSY3NJBKM4kyatSOWh3D/JJ2O3CVzBybHWxtgxnggaxEuaSTTDqeiSb/xk9lrkw2Tbqyivw5ZU4rT+EfznQsA==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.10.4", - "lodash": "^4.17.19", - "to-fast-properties": "^2.0.0" - } - }, - "lodash": { - "version": "4.17.20", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", - "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==", - "dev": true - } } }, "@babel/generator": { - "version": "7.11.6", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.11.6.tgz", - "integrity": "sha512-DWtQ1PV3r+cLbySoHrwn9RWEgKMBLLma4OBQloPRyDYvc5msJM9kvTLo1YnlJd1P/ZuKbdli3ijr5q3FvAF3uA==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.12.1.tgz", + "integrity": "sha512-DB+6rafIdc9o72Yc3/Ph5h+6hUjeOp66pF0naQBgUFFuPqzQwIlPTm3xZR7YNvduIMtkDIj2t21LSQwnbCrXvg==", "dev": true, "requires": { - "@babel/types": "^7.11.5", + "@babel/types": "^7.12.1", "jsesc": "^2.5.1", "source-map": "^0.5.0" } @@ -128,25 +75,6 @@ "dev": true, "requires": { "@babel/types": "^7.12.1" - }, - "dependencies": { - "@babel/types": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.1.tgz", - "integrity": "sha512-BzSY3NJBKM4kyatSOWh3D/JJ2O3CVzBybHWxtgxnggaxEuaSTTDqeiSb/xk9lrkw2Tbqyivw5ZU4rT+EfznQsA==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.10.4", - "lodash": "^4.17.19", - "to-fast-properties": "^2.0.0" - } - }, - "lodash": { - "version": "4.17.20", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", - "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==", - "dev": true - } } }, "@babel/helper-module-imports": { @@ -156,25 +84,6 @@ "dev": true, "requires": { "@babel/types": "^7.12.1" - }, - "dependencies": { - "@babel/types": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.1.tgz", - "integrity": "sha512-BzSY3NJBKM4kyatSOWh3D/JJ2O3CVzBybHWxtgxnggaxEuaSTTDqeiSb/xk9lrkw2Tbqyivw5ZU4rT+EfznQsA==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.10.4", - "lodash": "^4.17.19", - "to-fast-properties": "^2.0.0" - } - }, - "lodash": { - "version": "4.17.20", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", - "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==", - "dev": true - } } }, "@babel/helper-module-transforms": { @@ -192,59 +101,6 @@ "@babel/traverse": "^7.12.1", "@babel/types": "^7.12.1", "lodash": "^4.17.19" - }, - "dependencies": { - "@babel/generator": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.12.1.tgz", - "integrity": "sha512-DB+6rafIdc9o72Yc3/Ph5h+6hUjeOp66pF0naQBgUFFuPqzQwIlPTm3xZR7YNvduIMtkDIj2t21LSQwnbCrXvg==", - "dev": true, - "requires": { - "@babel/types": "^7.12.1", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" - } - }, - "@babel/parser": { - "version": "7.12.2", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.2.tgz", - "integrity": "sha512-LMN+SqTiZEonUw4hQA0A3zG8DnN0E1F4K107LbDDUnC+0chML1rvWgsHloC9weB4RmZweE0uhFq0eGX7Nr/PBQ==", - "dev": true - }, - "@babel/traverse": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.1.tgz", - "integrity": "sha512-MA3WPoRt1ZHo2ZmoGKNqi20YnPt0B1S0GTZEPhhd+hw2KGUzBlHuVunj6K4sNuK+reEvyiPwtp0cpaqLzJDmAw==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.10.4", - "@babel/generator": "^7.12.1", - "@babel/helper-function-name": "^7.10.4", - "@babel/helper-split-export-declaration": "^7.11.0", - "@babel/parser": "^7.12.1", - "@babel/types": "^7.12.1", - "debug": "^4.1.0", - "globals": "^11.1.0", - "lodash": "^4.17.19" - } - }, - "@babel/types": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.1.tgz", - "integrity": "sha512-BzSY3NJBKM4kyatSOWh3D/JJ2O3CVzBybHWxtgxnggaxEuaSTTDqeiSb/xk9lrkw2Tbqyivw5ZU4rT+EfznQsA==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.10.4", - "lodash": "^4.17.19", - "to-fast-properties": "^2.0.0" - } - }, - "lodash": { - "version": "4.17.20", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", - "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==", - "dev": true - } } }, "@babel/helper-optimise-call-expression": { @@ -272,59 +128,6 @@ "@babel/helper-optimise-call-expression": "^7.10.4", "@babel/traverse": "^7.12.1", "@babel/types": "^7.12.1" - }, - "dependencies": { - "@babel/generator": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.12.1.tgz", - "integrity": "sha512-DB+6rafIdc9o72Yc3/Ph5h+6hUjeOp66pF0naQBgUFFuPqzQwIlPTm3xZR7YNvduIMtkDIj2t21LSQwnbCrXvg==", - "dev": true, - "requires": { - "@babel/types": "^7.12.1", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" - } - }, - "@babel/parser": { - "version": "7.12.2", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.2.tgz", - "integrity": "sha512-LMN+SqTiZEonUw4hQA0A3zG8DnN0E1F4K107LbDDUnC+0chML1rvWgsHloC9weB4RmZweE0uhFq0eGX7Nr/PBQ==", - "dev": true - }, - "@babel/traverse": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.1.tgz", - "integrity": "sha512-MA3WPoRt1ZHo2ZmoGKNqi20YnPt0B1S0GTZEPhhd+hw2KGUzBlHuVunj6K4sNuK+reEvyiPwtp0cpaqLzJDmAw==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.10.4", - "@babel/generator": "^7.12.1", - "@babel/helper-function-name": "^7.10.4", - "@babel/helper-split-export-declaration": "^7.11.0", - "@babel/parser": "^7.12.1", - "@babel/types": "^7.12.1", - "debug": "^4.1.0", - "globals": "^11.1.0", - "lodash": "^4.17.19" - } - }, - "@babel/types": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.1.tgz", - "integrity": "sha512-BzSY3NJBKM4kyatSOWh3D/JJ2O3CVzBybHWxtgxnggaxEuaSTTDqeiSb/xk9lrkw2Tbqyivw5ZU4rT+EfznQsA==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.10.4", - "lodash": "^4.17.19", - "to-fast-properties": "^2.0.0" - } - }, - "lodash": { - "version": "4.17.20", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", - "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==", - "dev": true - } } }, "@babel/helper-simple-access": { @@ -334,25 +137,6 @@ "dev": true, "requires": { "@babel/types": "^7.12.1" - }, - "dependencies": { - "@babel/types": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.1.tgz", - "integrity": "sha512-BzSY3NJBKM4kyatSOWh3D/JJ2O3CVzBybHWxtgxnggaxEuaSTTDqeiSb/xk9lrkw2Tbqyivw5ZU4rT+EfznQsA==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.10.4", - "lodash": "^4.17.19", - "to-fast-properties": "^2.0.0" - } - }, - "lodash": { - "version": "4.17.20", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", - "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==", - "dev": true - } } }, "@babel/helper-split-export-declaration": { @@ -379,59 +163,6 @@ "@babel/template": "^7.10.4", "@babel/traverse": "^7.12.1", "@babel/types": "^7.12.1" - }, - "dependencies": { - "@babel/generator": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.12.1.tgz", - "integrity": "sha512-DB+6rafIdc9o72Yc3/Ph5h+6hUjeOp66pF0naQBgUFFuPqzQwIlPTm3xZR7YNvduIMtkDIj2t21LSQwnbCrXvg==", - "dev": true, - "requires": { - "@babel/types": "^7.12.1", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" - } - }, - "@babel/parser": { - "version": "7.12.2", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.2.tgz", - "integrity": "sha512-LMN+SqTiZEonUw4hQA0A3zG8DnN0E1F4K107LbDDUnC+0chML1rvWgsHloC9weB4RmZweE0uhFq0eGX7Nr/PBQ==", - "dev": true - }, - "@babel/traverse": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.1.tgz", - "integrity": "sha512-MA3WPoRt1ZHo2ZmoGKNqi20YnPt0B1S0GTZEPhhd+hw2KGUzBlHuVunj6K4sNuK+reEvyiPwtp0cpaqLzJDmAw==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.10.4", - "@babel/generator": "^7.12.1", - "@babel/helper-function-name": "^7.10.4", - "@babel/helper-split-export-declaration": "^7.11.0", - "@babel/parser": "^7.12.1", - "@babel/types": "^7.12.1", - "debug": "^4.1.0", - "globals": "^11.1.0", - "lodash": "^4.17.19" - } - }, - "@babel/types": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.1.tgz", - "integrity": "sha512-BzSY3NJBKM4kyatSOWh3D/JJ2O3CVzBybHWxtgxnggaxEuaSTTDqeiSb/xk9lrkw2Tbqyivw5ZU4rT+EfznQsA==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.10.4", - "lodash": "^4.17.19", - "to-fast-properties": "^2.0.0" - } - }, - "lodash": { - "version": "4.17.20", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", - "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==", - "dev": true - } } }, "@babel/highlight": { @@ -446,9 +177,9 @@ } }, "@babel/parser": { - "version": "7.11.5", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.11.5.tgz", - "integrity": "sha512-X9rD8qqm695vgmeaQ4fvz/o3+Wk4ZzQvSHkDBgpYKxpD4qTAUm88ZKtHkVqIOsYFFbIQ6wQYhC6q7pjqVK0E0Q==", + "version": "7.12.3", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.3.tgz", + "integrity": "sha512-kFsOS0IbsuhO5ojF8Hc8z/8vEIOkylVBrjiZUbLTE3XFe0Qi+uu6HjzQixkFaqr0ZPAMZcBVxEwmsnsLPZ2Xsw==", "dev": true }, "@babel/plugin-syntax-async-generators": { @@ -470,9 +201,9 @@ } }, "@babel/plugin-syntax-class-properties": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.10.4.tgz", - "integrity": "sha512-GCSBF7iUle6rNugfURwNmCGG3Z/2+opxAMLs1nND4bhEG5PuxTIggDBoeYYSujAlLtsupzOHYJQgPS3pivwXIA==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.1.tgz", + "integrity": "sha512-U40A76x5gTwmESz+qiqssqmeEsKvcSyvtgktrm0uzcARAmM9I1jR221f6Oq+GmHrcD+LvZDag1UTOTe2fL3TeA==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.10.4" @@ -562,47 +293,31 @@ } }, "@babel/traverse": { - "version": "7.11.5", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.11.5.tgz", - "integrity": "sha512-EjiPXt+r7LiCZXEfRpSJd+jUMnBd4/9OUv7Nx3+0u9+eimMwJmG0Q98lw4/289JCoxSE8OolDMNZaaF/JZ69WQ==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.1.tgz", + "integrity": "sha512-MA3WPoRt1ZHo2ZmoGKNqi20YnPt0B1S0GTZEPhhd+hw2KGUzBlHuVunj6K4sNuK+reEvyiPwtp0cpaqLzJDmAw==", "dev": true, "requires": { "@babel/code-frame": "^7.10.4", - "@babel/generator": "^7.11.5", + "@babel/generator": "^7.12.1", "@babel/helper-function-name": "^7.10.4", "@babel/helper-split-export-declaration": "^7.11.0", - "@babel/parser": "^7.11.5", - "@babel/types": "^7.11.5", + "@babel/parser": "^7.12.1", + "@babel/types": "^7.12.1", "debug": "^4.1.0", "globals": "^11.1.0", "lodash": "^4.17.19" - }, - "dependencies": { - "lodash": { - "version": "4.17.20", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", - "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==", - "dev": true - } } }, "@babel/types": { - "version": "7.11.5", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.11.5.tgz", - "integrity": "sha512-bvM7Qz6eKnJVFIn+1LPtjlBFPVN5jNDc1XmN15vWe7Q3DPBufWWsLiIvUu7xW87uTG6QoggpIDnUgLQvPheU+Q==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.1.tgz", + "integrity": "sha512-BzSY3NJBKM4kyatSOWh3D/JJ2O3CVzBybHWxtgxnggaxEuaSTTDqeiSb/xk9lrkw2Tbqyivw5ZU4rT+EfznQsA==", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.10.4", "lodash": "^4.17.19", "to-fast-properties": "^2.0.0" - }, - "dependencies": { - "lodash": { - "version": "4.17.20", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", - "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==", - "dev": true - } } }, "@bcoe/v8-coverage": { @@ -708,16 +423,16 @@ "dev": true }, "@jest/console": { - "version": "26.5.2", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-26.5.2.tgz", - "integrity": "sha512-lJELzKINpF1v74DXHbCRIkQ/+nUV1M+ntj+X1J8LxCgpmJZjfLmhFejiMSbjjD66fayxl5Z06tbs3HMyuik6rw==", + "version": "26.6.0", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-26.6.0.tgz", + "integrity": "sha512-ArGcZWAEYMWmWnc/QvxLDvFmGRPvmHeulhS7FUUAlUGR5vS/SqMfArsGaYmIFEThSotCMnEihwx1h62I1eg5lg==", "dev": true, "requires": { - "@jest/types": "^26.5.2", + "@jest/types": "^26.6.0", "@types/node": "*", "chalk": "^4.0.0", - "jest-message-util": "^26.5.2", - "jest-util": "^26.5.2", + "jest-message-util": "^26.6.0", + "jest-util": "^26.6.0", "slash": "^3.0.0" }, "dependencies": { @@ -773,34 +488,34 @@ } }, "@jest/core": { - "version": "26.5.3", - "resolved": "https://registry.npmjs.org/@jest/core/-/core-26.5.3.tgz", - "integrity": "sha512-CiU0UKFF1V7KzYTVEtFbFmGLdb2g4aTtY0WlyUfLgj/RtoTnJFhh50xKKr7OYkdmBUlGFSa2mD1TU3UZ6OLd4g==", + "version": "26.6.0", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-26.6.0.tgz", + "integrity": "sha512-7wbunxosnC5zXjxrEtTQSblFjRVOT8qz1eSytw8riEeWgegy3ct91NLPEP440CDuWrmW3cOLcEGxIf9q2u6O9Q==", "dev": true, "requires": { - "@jest/console": "^26.5.2", - "@jest/reporters": "^26.5.3", - "@jest/test-result": "^26.5.2", - "@jest/transform": "^26.5.2", - "@jest/types": "^26.5.2", + "@jest/console": "^26.6.0", + "@jest/reporters": "^26.6.0", + "@jest/test-result": "^26.6.0", + "@jest/transform": "^26.6.0", + "@jest/types": "^26.6.0", "@types/node": "*", "ansi-escapes": "^4.2.1", "chalk": "^4.0.0", "exit": "^0.1.2", "graceful-fs": "^4.2.4", - "jest-changed-files": "^26.5.2", - "jest-config": "^26.5.3", - "jest-haste-map": "^26.5.2", - "jest-message-util": "^26.5.2", + "jest-changed-files": "^26.6.0", + "jest-config": "^26.6.0", + "jest-haste-map": "^26.6.0", + "jest-message-util": "^26.6.0", "jest-regex-util": "^26.0.0", - "jest-resolve": "^26.5.2", - "jest-resolve-dependencies": "^26.5.3", - "jest-runner": "^26.5.3", - "jest-runtime": "^26.5.3", - "jest-snapshot": "^26.5.3", - "jest-util": "^26.5.2", - "jest-validate": "^26.5.3", - "jest-watcher": "^26.5.2", + "jest-resolve": "^26.6.0", + "jest-resolve-dependencies": "^26.6.0", + "jest-runner": "^26.6.0", + "jest-runtime": "^26.6.0", + "jest-snapshot": "^26.6.0", + "jest-util": "^26.6.0", + "jest-validate": "^26.6.0", + "jest-watcher": "^26.6.0", "micromatch": "^4.0.2", "p-each-series": "^2.1.0", "rimraf": "^3.0.0", @@ -884,53 +599,53 @@ } }, "@jest/environment": { - "version": "26.5.2", - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-26.5.2.tgz", - "integrity": "sha512-YjhCD/Zhkz0/1vdlS/QN6QmuUdDkpgBdK4SdiVg4Y19e29g4VQYN5Xg8+YuHjdoWGY7wJHMxc79uDTeTOy9Ngw==", + "version": "26.6.0", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-26.6.0.tgz", + "integrity": "sha512-l+5MSdiC4rUUrz8xPdj0TwHBwuoqMcAbFnsYDTn5FkenJl8b+lvC5NdJl1tVICGHWnx0fnjdd1luRZ7u3U4xyg==", "dev": true, "requires": { - "@jest/fake-timers": "^26.5.2", - "@jest/types": "^26.5.2", + "@jest/fake-timers": "^26.6.0", + "@jest/types": "^26.6.0", "@types/node": "*", - "jest-mock": "^26.5.2" + "jest-mock": "^26.6.0" } }, "@jest/fake-timers": { - "version": "26.5.2", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-26.5.2.tgz", - "integrity": "sha512-09Hn5Oraqt36V1akxQeWMVL0fR9c6PnEhpgLaYvREXZJAh2H2Y+QLCsl0g7uMoJeoWJAuz4tozk1prbR1Fc1sw==", + "version": "26.6.0", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-26.6.0.tgz", + "integrity": "sha512-7VQpjChrwlwvGNysS10lDBLOVLxMvMtpx0Xo6aIotzNVyojYk0NN0CR8R4T6h/eu7Zva/LB3P71jqwGdtADoag==", "dev": true, "requires": { - "@jest/types": "^26.5.2", + "@jest/types": "^26.6.0", "@sinonjs/fake-timers": "^6.0.1", "@types/node": "*", - "jest-message-util": "^26.5.2", - "jest-mock": "^26.5.2", - "jest-util": "^26.5.2" + "jest-message-util": "^26.6.0", + "jest-mock": "^26.6.0", + "jest-util": "^26.6.0" } }, "@jest/globals": { - "version": "26.5.3", - "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-26.5.3.tgz", - "integrity": "sha512-7QztI0JC2CuB+Wx1VdnOUNeIGm8+PIaqngYsZXQCkH2QV0GFqzAYc9BZfU0nuqA6cbYrWh5wkuMzyii3P7deug==", + "version": "26.6.0", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-26.6.0.tgz", + "integrity": "sha512-rs3a/a8Lq8FgTx11SxbqIU2bDjsFU2PApl2oK2oUVlo84RSF76afFm2nLojW93AGssr715GHUwhq5b6mpCI5BQ==", "dev": true, "requires": { - "@jest/environment": "^26.5.2", - "@jest/types": "^26.5.2", - "expect": "^26.5.3" + "@jest/environment": "^26.6.0", + "@jest/types": "^26.6.0", + "expect": "^26.6.0" } }, "@jest/reporters": { - "version": "26.5.3", - "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-26.5.3.tgz", - "integrity": "sha512-X+vR0CpfMQzYcYmMFKNY9n4jklcb14Kffffp7+H/MqitWnb0440bW2L76NGWKAa+bnXhNoZr+lCVtdtPmfJVOQ==", + "version": "26.6.0", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-26.6.0.tgz", + "integrity": "sha512-PXbvHhdci5Rj1VFloolgLb+0kkdtzswhG8MzVENKJRI3O1ndwr52G6E/2QupjwrRcYnApZOelFf4nNpf5+SDxA==", "dev": true, "requires": { "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "^26.5.2", - "@jest/test-result": "^26.5.2", - "@jest/transform": "^26.5.2", - "@jest/types": "^26.5.2", + "@jest/console": "^26.6.0", + "@jest/test-result": "^26.6.0", + "@jest/transform": "^26.6.0", + "@jest/types": "^26.6.0", "chalk": "^4.0.0", "collect-v8-coverage": "^1.0.0", "exit": "^0.1.2", @@ -941,9 +656,9 @@ "istanbul-lib-report": "^3.0.0", "istanbul-lib-source-maps": "^4.0.0", "istanbul-reports": "^3.0.2", - "jest-haste-map": "^26.5.2", - "jest-resolve": "^26.5.2", - "jest-util": "^26.5.2", + "jest-haste-map": "^26.6.0", + "jest-resolve": "^26.6.0", + "jest-util": "^26.6.0", "jest-worker": "^26.5.0", "node-notifier": "^8.0.0", "slash": "^3.0.0", @@ -1030,46 +745,46 @@ } }, "@jest/test-result": { - "version": "26.5.2", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-26.5.2.tgz", - "integrity": "sha512-E/Zp6LURJEGSCWpoMGmCFuuEI1OWuI3hmZwmULV0GsgJBh7u0rwqioxhRU95euUuviqBDN8ruX/vP/4bwYolXw==", + "version": "26.6.0", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-26.6.0.tgz", + "integrity": "sha512-LV6X1ry+sKjseQsIFz3e6XAZYxwidvmeJFnVF08fq98q08dF1mJYI0lDq/LmH/jas+R4s0pwnNGiz1hfC4ZUBw==", "dev": true, "requires": { - "@jest/console": "^26.5.2", - "@jest/types": "^26.5.2", + "@jest/console": "^26.6.0", + "@jest/types": "^26.6.0", "@types/istanbul-lib-coverage": "^2.0.0", "collect-v8-coverage": "^1.0.0" } }, "@jest/test-sequencer": { - "version": "26.5.3", - "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-26.5.3.tgz", - "integrity": "sha512-Wqzb7aQ13L3T47xHdpUqYMOpiqz6Dx2QDDghp5AV/eUDXR7JieY+E1s233TQlNyl+PqtqgjVokmyjzX/HA51BA==", + "version": "26.6.0", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-26.6.0.tgz", + "integrity": "sha512-rWPTMa+8rejvePZnJmnKkmKWh0qILFDPpN0qbSif+KNGvFxqqDGafMo4P2Y8+I9XWrZQBeXL9IxPL4ZzDgRlbw==", "dev": true, "requires": { - "@jest/test-result": "^26.5.2", + "@jest/test-result": "^26.6.0", "graceful-fs": "^4.2.4", - "jest-haste-map": "^26.5.2", - "jest-runner": "^26.5.3", - "jest-runtime": "^26.5.3" + "jest-haste-map": "^26.6.0", + "jest-runner": "^26.6.0", + "jest-runtime": "^26.6.0" } }, "@jest/transform": { - "version": "26.5.2", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-26.5.2.tgz", - "integrity": "sha512-AUNjvexh+APhhmS8S+KboPz+D3pCxPvEAGduffaAJYxIFxGi/ytZQkrqcKDUU0ERBAo5R7087fyOYr2oms1seg==", + "version": "26.6.0", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-26.6.0.tgz", + "integrity": "sha512-NUNA1NMCyVV9g5NIQF1jzW7QutQhB/HAocteCiUyH0VhmLXnGMTfPYQu1G6IjPk+k1SWdh2PD+Zs1vMqbavWzg==", "dev": true, "requires": { "@babel/core": "^7.1.0", - "@jest/types": "^26.5.2", + "@jest/types": "^26.6.0", "babel-plugin-istanbul": "^6.0.0", "chalk": "^4.0.0", "convert-source-map": "^1.4.0", "fast-json-stable-stringify": "^2.0.0", "graceful-fs": "^4.2.4", - "jest-haste-map": "^26.5.2", + "jest-haste-map": "^26.6.0", "jest-regex-util": "^26.0.0", - "jest-util": "^26.5.2", + "jest-util": "^26.6.0", "micromatch": "^4.0.2", "pirates": "^4.0.1", "slash": "^3.0.0", @@ -1135,9 +850,9 @@ } }, "@jest/types": { - "version": "26.5.2", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.5.2.tgz", - "integrity": "sha512-QDs5d0gYiyetI8q+2xWdkixVQMklReZr4ltw7GFDtb4fuJIBCE6mzj2LnitGqCuAlLap6wPyb8fpoHgwZz5fdg==", + "version": "26.6.0", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.0.tgz", + "integrity": "sha512-8pDeq/JVyAYw7jBGU83v8RMYAkdrRxLG3BGnAJuqaQAUd6GWBmND2uyl+awI88+hit48suLoLjNFtR+ZXxWaYg==", "dev": true, "requires": { "@types/istanbul-lib-coverage": "^2.0.0", @@ -1309,9 +1024,9 @@ "dev": true }, "@types/node": { - "version": "14.11.8", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.11.8.tgz", - "integrity": "sha512-KPcKqKm5UKDkaYPTuXSx8wEP7vE9GnuaXIZKijwRYcePpZFDVuy2a57LarFKiORbHOuTOOwYzxVxcUzsh2P2Pw==", + "version": "14.11.11", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.11.11.tgz", + "integrity": "sha512-UcaAZrL8uO5GNS+NLxkYg1RiOMgdLxCXGqs+TTupltXN8rTvUEKTOpqCV3tlcAIZJXzcBQajzmjdrvuPvnuMUw==", "dev": true }, "@types/normalize-package-data": { @@ -1321,9 +1036,9 @@ "dev": true }, "@types/prettier": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.1.2.tgz", - "integrity": "sha512-IiPhNnenzkqdSdQH3ifk9LoX7oQe61ZlDdDO4+MUv6FyWdPGDPr26gCPVs3oguZEMq//nFZZpwUZcVuNJsG+DQ==", + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.1.5.tgz", + "integrity": "sha512-UEyp8LwZ4Dg30kVU2Q3amHHyTn1jEdhCIE59ANed76GaT1Vp76DD3ZWSAxgCrw6wJ0TqeoBpqmfUHiUDPs//HQ==", "dev": true }, "@types/stack-utils": { @@ -1333,9 +1048,9 @@ "dev": true }, "@types/yargs": { - "version": "15.0.8", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.8.tgz", - "integrity": "sha512-b0BYzFUzBpOhPjpl1wtAHU994jBeKF4TKVlT7ssFv44T617XNcPdRoG4AzHLVshLzlrF7i3lTelH7UbuNYV58Q==", + "version": "15.0.9", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.9.tgz", + "integrity": "sha512-HmU8SeIRhZCWcnRskCs36Q1Q00KBV6Cqh/ora8WN1+22dY07AZdn6Gel8QZ3t26XYPImtcL8WV/eqjhVmMEw4g==", "dev": true, "requires": { "@types/yargs-parser": "*" @@ -1796,13 +1511,13 @@ "dev": true }, "babel-jest": { - "version": "26.5.2", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-26.5.2.tgz", - "integrity": "sha512-U3KvymF3SczA3vOL/cgiUFOznfMET+XDIXiWnoJV45siAp2pLMG8i2+/MGZlAC3f/F6Q40LR4M4qDrWZ9wkK8A==", + "version": "26.6.0", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-26.6.0.tgz", + "integrity": "sha512-JI66yILI7stzjHccAoQtRKcUwJrJb4oMIxLTirL3GdAjGpaUBQSjZDFi9LsPkN4gftsS4R2AThAJwOjJxadwbg==", "dev": true, "requires": { - "@jest/transform": "^26.5.2", - "@jest/types": "^26.5.2", + "@jest/transform": "^26.6.0", + "@jest/types": "^26.6.0", "@types/babel__core": "^7.1.7", "babel-plugin-istanbul": "^6.0.0", "babel-preset-jest": "^26.5.0", @@ -2936,9 +2651,9 @@ "dev": true }, "emittery": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.7.1.tgz", - "integrity": "sha512-d34LN4L6h18Bzz9xpoku2nPwKxCPlPMr3EEKTkoEBi+1/+b0lcRkRJ1UVyyZaKNeqGR3swcGl6s390DNO4YVgQ==", + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.7.2.tgz", + "integrity": "sha512-A8OG5SR/ij3SsJdWDJdkkSYUjQdCUx6APQXem0SaEePBSRg4eymGYwBkKo1Y6DU+af/Jn2dBQqDBvjnr9Vi8nQ==", "dev": true }, "emoji-regex": { @@ -3425,16 +3140,16 @@ "dev": true }, "expect": { - "version": "26.5.3", - "resolved": "https://registry.npmjs.org/expect/-/expect-26.5.3.tgz", - "integrity": "sha512-kkpOhGRWGOr+TEFUnYAjfGvv35bfP+OlPtqPIJpOCR9DVtv8QV+p8zG0Edqafh80fsjeE+7RBcVUq1xApnYglw==", + "version": "26.6.0", + "resolved": "https://registry.npmjs.org/expect/-/expect-26.6.0.tgz", + "integrity": "sha512-EzhbZ1tbwcaa5Ok39BI11flIMeIUSlg1QsnXOrleaMvltwHsvIQPBtL710l+ma+qDFLUgktCXK4YuQzmHdm7cg==", "dev": true, "requires": { - "@jest/types": "^26.5.2", + "@jest/types": "^26.6.0", "ansi-styles": "^4.0.0", "jest-get-type": "^26.3.0", - "jest-matcher-utils": "^26.5.2", - "jest-message-util": "^26.5.2", + "jest-matcher-utils": "^26.6.0", + "jest-message-util": "^26.6.0", "jest-regex-util": "^26.0.0" }, "dependencies": { @@ -4322,6 +4037,15 @@ "ci-info": "^2.0.0" } }, + "is-core-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.0.0.tgz", + "integrity": "sha512-jq1AH6C8MuteOoBPwkxHafmByhL9j5q4OaPGdbuD+ZtQJVzH+i6E3BJDQcBA09k57i2Hh2yQbEG8yObZ0jdlWw==", + "dev": true, + "requires": { + "has": "^1.0.3" + } + }, "is-data-descriptor": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", @@ -4634,14 +4358,14 @@ } }, "jest": { - "version": "26.5.3", - "resolved": "https://registry.npmjs.org/jest/-/jest-26.5.3.tgz", - "integrity": "sha512-uJi3FuVSLmkZrWvaDyaVTZGLL8WcfynbRnFXyAHuEtYiSZ+ijDDIMOw1ytmftK+y/+OdAtsG9QrtbF7WIBmOyA==", + "version": "26.6.0", + "resolved": "https://registry.npmjs.org/jest/-/jest-26.6.0.tgz", + "integrity": "sha512-jxTmrvuecVISvKFFhOkjsWRZV7sFqdSUAd1ajOKY+/QE/aLBVstsJ/dX8GczLzwiT6ZEwwmZqtCUHLHHQVzcfA==", "dev": true, "requires": { - "@jest/core": "^26.5.3", + "@jest/core": "^26.6.0", "import-local": "^3.0.2", - "jest-cli": "^26.5.3" + "jest-cli": "^26.6.0" }, "dependencies": { "ansi-regex": { @@ -4714,22 +4438,22 @@ "dev": true }, "jest-cli": { - "version": "26.5.3", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-26.5.3.tgz", - "integrity": "sha512-HkbSvtugpSXBf2660v9FrNVUgxvPkssN8CRGj9gPM8PLhnaa6zziFiCEKQAkQS4uRzseww45o0TR+l6KeRYV9A==", + "version": "26.6.0", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-26.6.0.tgz", + "integrity": "sha512-lJAMZGpmML+y3Kfln6L5DGRTfKGQ+n1JDM1RQstojSLUhe/EaXWR8vmcx70v4CyJKvFZs7c/0QDkPX5ra/aDew==", "dev": true, "requires": { - "@jest/core": "^26.5.3", - "@jest/test-result": "^26.5.2", - "@jest/types": "^26.5.2", + "@jest/core": "^26.6.0", + "@jest/test-result": "^26.6.0", + "@jest/types": "^26.6.0", "chalk": "^4.0.0", "exit": "^0.1.2", "graceful-fs": "^4.2.4", "import-local": "^3.0.2", "is-ci": "^2.0.0", - "jest-config": "^26.5.3", - "jest-util": "^26.5.2", - "jest-validate": "^26.5.3", + "jest-config": "^26.6.0", + "jest-util": "^26.6.0", + "jest-validate": "^26.6.0", "prompts": "^2.0.1", "yargs": "^15.4.1" } @@ -4802,12 +4526,12 @@ } }, "jest-changed-files": { - "version": "26.5.2", - "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-26.5.2.tgz", - "integrity": "sha512-qSmssmiIdvM5BWVtyK/nqVpN3spR5YyvkvPqz1x3BR1bwIxsWmU/MGwLoCrPNLbkG2ASAKfvmJpOduEApBPh2w==", + "version": "26.6.0", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-26.6.0.tgz", + "integrity": "sha512-k8PZzlp3cRWDe0fDc/pYs+c4w36+hiWXe1PpW/pW1UJmu1TNTAcQfZUrVYleij+uEqlY6z4mPv7Iff3kY0o5SQ==", "dev": true, "requires": { - "@jest/types": "^26.5.2", + "@jest/types": "^26.6.0", "execa": "^4.0.0", "throat": "^5.0.0" }, @@ -4862,29 +4586,29 @@ } }, "jest-config": { - "version": "26.5.3", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-26.5.3.tgz", - "integrity": "sha512-NVhZiIuN0GQM6b6as4CI5FSCyXKxdrx5ACMCcv/7Pf+TeCajJhJc+6dwgdAVPyerUFB9pRBIz3bE7clSrRge/w==", + "version": "26.6.0", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-26.6.0.tgz", + "integrity": "sha512-RCR1Kf7MGJ5waVCvrj/k3nCAJKquWZlzs8rkskzj0KlG392hNBOaYd5FQ4cCac08j6pwfIDOwNvMcy0/FqguJg==", "dev": true, "requires": { "@babel/core": "^7.1.0", - "@jest/test-sequencer": "^26.5.3", - "@jest/types": "^26.5.2", - "babel-jest": "^26.5.2", + "@jest/test-sequencer": "^26.6.0", + "@jest/types": "^26.6.0", + "babel-jest": "^26.6.0", "chalk": "^4.0.0", "deepmerge": "^4.2.2", "glob": "^7.1.1", "graceful-fs": "^4.2.4", - "jest-environment-jsdom": "^26.5.2", - "jest-environment-node": "^26.5.2", + "jest-environment-jsdom": "^26.6.0", + "jest-environment-node": "^26.6.0", "jest-get-type": "^26.3.0", - "jest-jasmine2": "^26.5.3", + "jest-jasmine2": "^26.6.0", "jest-regex-util": "^26.0.0", - "jest-resolve": "^26.5.2", - "jest-util": "^26.5.2", - "jest-validate": "^26.5.3", + "jest-resolve": "^26.6.0", + "jest-util": "^26.6.0", + "jest-validate": "^26.6.0", "micromatch": "^4.0.2", - "pretty-format": "^26.5.2" + "pretty-format": "^26.6.0" }, "dependencies": { "ansi-styles": { @@ -4939,15 +4663,15 @@ } }, "jest-diff": { - "version": "26.5.2", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-26.5.2.tgz", - "integrity": "sha512-HCSWDUGwsov5oTlGzrRM+UPJI/Dpqi9jzeV0fdRNi3Ch5bnoXhnyJMmVg2juv9081zLIy3HGPI5mcuGgXM2xRA==", + "version": "26.6.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-26.6.0.tgz", + "integrity": "sha512-IH09rKsdWY8YEY7ii2BHlSq59oXyF2pK3GoK+hOK9eD/x6009eNB5Jv1shLMKgxekodPzLlV7eZP1jPFQYds8w==", "dev": true, "requires": { "chalk": "^4.0.0", "diff-sequences": "^26.5.0", "jest-get-type": "^26.3.0", - "pretty-format": "^26.5.2" + "pretty-format": "^26.6.0" }, "dependencies": { "ansi-styles": { @@ -5011,16 +4735,16 @@ } }, "jest-each": { - "version": "26.5.2", - "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-26.5.2.tgz", - "integrity": "sha512-w7D9FNe0m2D3yZ0Drj9CLkyF/mGhmBSULMQTypzAKR746xXnjUrK8GUJdlLTWUF6dd0ks3MtvGP7/xNFr9Aphg==", + "version": "26.6.0", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-26.6.0.tgz", + "integrity": "sha512-7LzSNwNviYnm4FWK46itIE03NqD/8O8/7tVQ5rwTdTNrmPMQoQ1Z7hEFQ1uzRReluOFislpurpnQ0QsclSiDkA==", "dev": true, "requires": { - "@jest/types": "^26.5.2", + "@jest/types": "^26.6.0", "chalk": "^4.0.0", "jest-get-type": "^26.3.0", - "jest-util": "^26.5.2", - "pretty-format": "^26.5.2" + "jest-util": "^26.6.0", + "pretty-format": "^26.6.0" }, "dependencies": { "ansi-styles": { @@ -5075,32 +4799,32 @@ } }, "jest-environment-jsdom": { - "version": "26.5.2", - "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-26.5.2.tgz", - "integrity": "sha512-fWZPx0bluJaTQ36+PmRpvUtUlUFlGGBNyGX1SN3dLUHHMcQ4WseNEzcGGKOw4U5towXgxI4qDoI3vwR18H0RTw==", + "version": "26.6.0", + "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-26.6.0.tgz", + "integrity": "sha512-bXO9IG7a3YlyiHxwfKF+OWoTA+GIw4FrD+Y0pb6CC+nKs5JuSRZmR2ovEX6PWo6KY42ka3JoZOp3KEnXiFPPCg==", "dev": true, "requires": { - "@jest/environment": "^26.5.2", - "@jest/fake-timers": "^26.5.2", - "@jest/types": "^26.5.2", + "@jest/environment": "^26.6.0", + "@jest/fake-timers": "^26.6.0", + "@jest/types": "^26.6.0", "@types/node": "*", - "jest-mock": "^26.5.2", - "jest-util": "^26.5.2", + "jest-mock": "^26.6.0", + "jest-util": "^26.6.0", "jsdom": "^16.4.0" } }, "jest-environment-node": { - "version": "26.5.2", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-26.5.2.tgz", - "integrity": "sha512-YHjnDsf/GKFCYMGF1V+6HF7jhY1fcLfLNBDjhAOvFGvt6d8vXvNdJGVM7uTZ2VO/TuIyEFhPGaXMX5j3h7fsrA==", + "version": "26.6.0", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-26.6.0.tgz", + "integrity": "sha512-kWU6ZD1h6fs7sIl6ufuK0sXW/3d6WLaj48iow0NxhgU6eY89d9K+0MVmE0cRcVlh53yMyxTK6b+TnhLOnlGp/A==", "dev": true, "requires": { - "@jest/environment": "^26.5.2", - "@jest/fake-timers": "^26.5.2", - "@jest/types": "^26.5.2", + "@jest/environment": "^26.6.0", + "@jest/fake-timers": "^26.6.0", + "@jest/types": "^26.6.0", "@types/node": "*", - "jest-mock": "^26.5.2", - "jest-util": "^26.5.2" + "jest-mock": "^26.6.0", + "jest-util": "^26.6.0" } }, "jest-get-type": { @@ -5110,12 +4834,12 @@ "dev": true }, "jest-haste-map": { - "version": "26.5.2", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-26.5.2.tgz", - "integrity": "sha512-lJIAVJN3gtO3k4xy+7i2Xjtwh8CfPcH08WYjZpe9xzveDaqGw9fVNCpkYu6M525wKFVkLmyi7ku+DxCAP1lyMA==", + "version": "26.6.0", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-26.6.0.tgz", + "integrity": "sha512-RpNqAGMR58uG9E9vWITorX2/R7he/tSbHWldX5upt1ymEcmCaXczqXxjqI6xOtRR8Ev6ZEYDfgSA5Fy7WHUL5w==", "dev": true, "requires": { - "@jest/types": "^26.5.2", + "@jest/types": "^26.6.0", "@types/graceful-fs": "^4.1.2", "@types/node": "*", "anymatch": "^3.0.3", @@ -5124,7 +4848,7 @@ "graceful-fs": "^4.2.4", "jest-regex-util": "^26.0.0", "jest-serializer": "^26.5.0", - "jest-util": "^26.5.2", + "jest-util": "^26.6.0", "jest-worker": "^26.5.0", "micromatch": "^4.0.2", "sane": "^4.0.3", @@ -5132,28 +4856,28 @@ } }, "jest-jasmine2": { - "version": "26.5.3", - "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-26.5.3.tgz", - "integrity": "sha512-nFlZOpnGlNc7y/+UkkeHnvbOM+rLz4wB1AimgI9QhtnqSZte0wYjbAm8hf7TCwXlXgDwZxAXo6z0a2Wzn9FoOg==", + "version": "26.6.0", + "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-26.6.0.tgz", + "integrity": "sha512-2E3c+0A9y2OIK5caw5qlcm3b4doaf8FSfXKTX3xqKTUJoR4zXh0xvERBNWxZP9xMNXEi/2Z3LVsZpR2hROgixA==", "dev": true, "requires": { "@babel/traverse": "^7.1.0", - "@jest/environment": "^26.5.2", + "@jest/environment": "^26.6.0", "@jest/source-map": "^26.5.0", - "@jest/test-result": "^26.5.2", - "@jest/types": "^26.5.2", + "@jest/test-result": "^26.6.0", + "@jest/types": "^26.6.0", "@types/node": "*", "chalk": "^4.0.0", "co": "^4.6.0", - "expect": "^26.5.3", + "expect": "^26.6.0", "is-generator-fn": "^2.0.0", - "jest-each": "^26.5.2", - "jest-matcher-utils": "^26.5.2", - "jest-message-util": "^26.5.2", - "jest-runtime": "^26.5.3", - "jest-snapshot": "^26.5.3", - "jest-util": "^26.5.2", - "pretty-format": "^26.5.2", + "jest-each": "^26.6.0", + "jest-matcher-utils": "^26.6.0", + "jest-message-util": "^26.6.0", + "jest-runtime": "^26.6.0", + "jest-snapshot": "^26.6.0", + "jest-util": "^26.6.0", + "pretty-format": "^26.6.0", "throat": "^5.0.0" }, "dependencies": { @@ -5209,25 +4933,25 @@ } }, "jest-leak-detector": { - "version": "26.5.2", - "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-26.5.2.tgz", - "integrity": "sha512-h7ia3dLzBFItmYERaLPEtEKxy3YlcbcRSjj0XRNJgBEyODuu+3DM2o62kvIFvs3PsaYoIIv+e+nLRI61Dj1CNw==", + "version": "26.6.0", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-26.6.0.tgz", + "integrity": "sha512-3oMv34imWTl1/nwKnmE/DxYo3QqHnZeF3nO6UzldppkhW0Za7OY2DYyWiamqVzwdUrjhoQkY5g+aF6Oc3alYEQ==", "dev": true, "requires": { "jest-get-type": "^26.3.0", - "pretty-format": "^26.5.2" + "pretty-format": "^26.6.0" } }, "jest-matcher-utils": { - "version": "26.5.2", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-26.5.2.tgz", - "integrity": "sha512-W9GO9KBIC4gIArsNqDUKsLnhivaqf8MSs6ujO/JDcPIQrmY+aasewweXVET8KdrJ6ADQaUne5UzysvF/RR7JYA==", + "version": "26.6.0", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-26.6.0.tgz", + "integrity": "sha512-BUy/dQYb7ELGRazmK4ZVkbfPYCaNnrMtw1YljVhcKzWUxBM0xQ+bffrfnMLdRZp4wUUcT4ahaVnA3VWZtXWP9Q==", "dev": true, "requires": { "chalk": "^4.0.0", - "jest-diff": "^26.5.2", + "jest-diff": "^26.6.0", "jest-get-type": "^26.3.0", - "pretty-format": "^26.5.2" + "pretty-format": "^26.6.0" }, "dependencies": { "ansi-styles": { @@ -5282,13 +5006,13 @@ } }, "jest-message-util": { - "version": "26.5.2", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-26.5.2.tgz", - "integrity": "sha512-Ocp9UYZ5Jl15C5PNsoDiGEk14A4NG0zZKknpWdZGoMzJuGAkVt10e97tnEVMYpk7LnQHZOfuK2j/izLBMcuCZw==", + "version": "26.6.0", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-26.6.0.tgz", + "integrity": "sha512-WPAeS38Kza29f04I0iOIQrXeiebRXjmn6cFehzI7KKJOgT0NmqYAcLgjWnIAfKs5FBmEQgje1kXab0DaLKCl2w==", "dev": true, "requires": { "@babel/code-frame": "^7.0.0", - "@jest/types": "^26.5.2", + "@jest/types": "^26.6.0", "@types/stack-utils": "^2.0.0", "chalk": "^4.0.0", "graceful-fs": "^4.2.4", @@ -5349,12 +5073,12 @@ } }, "jest-mock": { - "version": "26.5.2", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-26.5.2.tgz", - "integrity": "sha512-9SiU4b5PtO51v0MtJwVRqeGEroH66Bnwtq4ARdNP7jNXbpT7+ByeWNAk4NeT/uHfNSVDXEXgQo1XRuwEqS6Rdw==", + "version": "26.6.0", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-26.6.0.tgz", + "integrity": "sha512-HsNmL8vVIn1rL1GWA21Drpy9Cl+7GImwbWz/0fkWHrUXVzuaG7rP0vwLtE+/n70Mt0U8nPkz8fxioi3SC0wqhw==", "dev": true, "requires": { - "@jest/types": "^26.5.2", + "@jest/types": "^26.6.0", "@types/node": "*" } }, @@ -5371,16 +5095,16 @@ "dev": true }, "jest-resolve": { - "version": "26.5.2", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-26.5.2.tgz", - "integrity": "sha512-XsPxojXGRA0CoDD7Vis59ucz2p3cQFU5C+19tz3tLEAlhYKkK77IL0cjYjikY9wXnOaBeEdm1rOgSJjbZWpcZg==", + "version": "26.6.0", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-26.6.0.tgz", + "integrity": "sha512-tRAz2bwraHufNp+CCmAD8ciyCpXCs1NQxB5EJAmtCFy6BN81loFEGWKzYu26Y62lAJJe4X4jg36Kf+NsQyiStQ==", "dev": true, "requires": { - "@jest/types": "^26.5.2", + "@jest/types": "^26.6.0", "chalk": "^4.0.0", "graceful-fs": "^4.2.4", "jest-pnp-resolver": "^1.2.2", - "jest-util": "^26.5.2", + "jest-util": "^26.6.0", "read-pkg-up": "^7.0.1", "resolve": "^1.17.0", "slash": "^3.0.0" @@ -5438,39 +5162,39 @@ } }, "jest-resolve-dependencies": { - "version": "26.5.3", - "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-26.5.3.tgz", - "integrity": "sha512-+KMDeke/BFK+mIQ2IYSyBz010h7zQaVt4Xie6cLqUGChorx66vVeQVv4ErNoMwInnyYHi1Ud73tDS01UbXbfLQ==", + "version": "26.6.0", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-26.6.0.tgz", + "integrity": "sha512-4di+XUT7LwJJ8b8qFEEDQssC5+aeVjLhvRICCaS4alh/EVS9JCT1armfJ3pnSS8t4o6659WbMmKVo82H4LuUVw==", "dev": true, "requires": { - "@jest/types": "^26.5.2", + "@jest/types": "^26.6.0", "jest-regex-util": "^26.0.0", - "jest-snapshot": "^26.5.3" + "jest-snapshot": "^26.6.0" } }, "jest-runner": { - "version": "26.5.3", - "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-26.5.3.tgz", - "integrity": "sha512-qproP0Pq7IIule+263W57k2+8kWCszVJTC9TJWGUz0xJBr+gNiniGXlG8rotd0XxwonD5UiJloYoSO5vbUr5FQ==", + "version": "26.6.0", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-26.6.0.tgz", + "integrity": "sha512-QpeN6pje8PQvFgT+wYOlzeycKd67qAvSw5FgYBiX2cTW+QTiObTzv/k09qRvT09rcCntFxUhy9VB1mgNGFLYIA==", "dev": true, "requires": { - "@jest/console": "^26.5.2", - "@jest/environment": "^26.5.2", - "@jest/test-result": "^26.5.2", - "@jest/types": "^26.5.2", + "@jest/console": "^26.6.0", + "@jest/environment": "^26.6.0", + "@jest/test-result": "^26.6.0", + "@jest/types": "^26.6.0", "@types/node": "*", "chalk": "^4.0.0", "emittery": "^0.7.1", "exit": "^0.1.2", "graceful-fs": "^4.2.4", - "jest-config": "^26.5.3", + "jest-config": "^26.6.0", "jest-docblock": "^26.0.0", - "jest-haste-map": "^26.5.2", - "jest-leak-detector": "^26.5.2", - "jest-message-util": "^26.5.2", - "jest-resolve": "^26.5.2", - "jest-runtime": "^26.5.3", - "jest-util": "^26.5.2", + "jest-haste-map": "^26.6.0", + "jest-leak-detector": "^26.6.0", + "jest-message-util": "^26.6.0", + "jest-resolve": "^26.6.0", + "jest-runtime": "^26.6.0", + "jest-util": "^26.6.0", "jest-worker": "^26.5.0", "source-map-support": "^0.5.6", "throat": "^5.0.0" @@ -5528,34 +5252,34 @@ } }, "jest-runtime": { - "version": "26.5.3", - "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-26.5.3.tgz", - "integrity": "sha512-IDjalmn2s/Tc4GvUwhPHZ0iaXCdMRq5p6taW9P8RpU+FpG01O3+H8z+p3rDCQ9mbyyyviDgxy/LHPLzrIOKBkQ==", + "version": "26.6.0", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-26.6.0.tgz", + "integrity": "sha512-JEz4YGnybFvtN4NLID6lsZf0bcd8jccwjWcG5TRE3fYVnxoX1egTthPjnC4btIwWJ6QaaHhtOQ/E3AGn8iClAw==", "dev": true, "requires": { - "@jest/console": "^26.5.2", - "@jest/environment": "^26.5.2", - "@jest/fake-timers": "^26.5.2", - "@jest/globals": "^26.5.3", + "@jest/console": "^26.6.0", + "@jest/environment": "^26.6.0", + "@jest/fake-timers": "^26.6.0", + "@jest/globals": "^26.6.0", "@jest/source-map": "^26.5.0", - "@jest/test-result": "^26.5.2", - "@jest/transform": "^26.5.2", - "@jest/types": "^26.5.2", + "@jest/test-result": "^26.6.0", + "@jest/transform": "^26.6.0", + "@jest/types": "^26.6.0", "@types/yargs": "^15.0.0", "chalk": "^4.0.0", "collect-v8-coverage": "^1.0.0", "exit": "^0.1.2", "glob": "^7.1.3", "graceful-fs": "^4.2.4", - "jest-config": "^26.5.3", - "jest-haste-map": "^26.5.2", - "jest-message-util": "^26.5.2", - "jest-mock": "^26.5.2", + "jest-config": "^26.6.0", + "jest-haste-map": "^26.6.0", + "jest-message-util": "^26.6.0", + "jest-mock": "^26.6.0", "jest-regex-util": "^26.0.0", - "jest-resolve": "^26.5.2", - "jest-snapshot": "^26.5.3", - "jest-util": "^26.5.2", - "jest-validate": "^26.5.3", + "jest-resolve": "^26.6.0", + "jest-snapshot": "^26.6.0", + "jest-util": "^26.6.0", + "jest-validate": "^26.6.0", "slash": "^3.0.0", "strip-bom": "^4.0.0", "yargs": "^15.4.1" @@ -5708,26 +5432,26 @@ } }, "jest-snapshot": { - "version": "26.5.3", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-26.5.3.tgz", - "integrity": "sha512-ZgAk0Wm0JJ75WS4lGaeRfa0zIgpL0KD595+XmtwlIEMe8j4FaYHyZhP1LNOO+8fXq7HJ3hll54+sFV9X4+CGVw==", + "version": "26.6.0", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-26.6.0.tgz", + "integrity": "sha512-mcqJZeIZqxomvBcsaiIbiEe2g7K1UxnUpTwjMoHb+DX4uFGnuZoZ6m28YOYRyCfZsdU9mmq73rNBnEH2atTR4Q==", "dev": true, "requires": { "@babel/types": "^7.0.0", - "@jest/types": "^26.5.2", + "@jest/types": "^26.6.0", "@types/babel__traverse": "^7.0.4", "@types/prettier": "^2.0.0", "chalk": "^4.0.0", - "expect": "^26.5.3", + "expect": "^26.6.0", "graceful-fs": "^4.2.4", - "jest-diff": "^26.5.2", + "jest-diff": "^26.6.0", "jest-get-type": "^26.3.0", - "jest-haste-map": "^26.5.2", - "jest-matcher-utils": "^26.5.2", - "jest-message-util": "^26.5.2", - "jest-resolve": "^26.5.2", + "jest-haste-map": "^26.6.0", + "jest-matcher-utils": "^26.6.0", + "jest-message-util": "^26.6.0", + "jest-resolve": "^26.6.0", "natural-compare": "^1.4.0", - "pretty-format": "^26.5.2", + "pretty-format": "^26.6.0", "semver": "^7.3.2" }, "dependencies": { @@ -5789,12 +5513,12 @@ } }, "jest-util": { - "version": "26.5.2", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-26.5.2.tgz", - "integrity": "sha512-WTL675bK+GSSAYgS8z9FWdCT2nccO1yTIplNLPlP0OD8tUk/H5IrWKMMRudIQQ0qp8bb4k+1Qa8CxGKq9qnYdg==", + "version": "26.6.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-26.6.0.tgz", + "integrity": "sha512-/cUGqcnKeZMjvTQLfJo65nBOEZ/k0RB/8usv2JpfYya05u0XvBmKkIH5o5c4nCh9DD61B1YQjMGGqh1Ha0aXdg==", "dev": true, "requires": { - "@jest/types": "^26.5.2", + "@jest/types": "^26.6.0", "@types/node": "*", "chalk": "^4.0.0", "graceful-fs": "^4.2.4", @@ -5854,17 +5578,17 @@ } }, "jest-validate": { - "version": "26.5.3", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-26.5.3.tgz", - "integrity": "sha512-LX07qKeAtY+lsU0o3IvfDdN5KH9OulEGOMN1sFo6PnEf5/qjS1LZIwNk9blcBeW94pQUI9dLN9FlDYDWI5tyaA==", + "version": "26.6.0", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-26.6.0.tgz", + "integrity": "sha512-FKHNqvh1Pgs4NWas56gsTPmjcIoGAAzSVUCK1+g8euzuCGbmdEr8LRTtOEFjd29uMZUk0PhzmzKGlHPe6j3UWw==", "dev": true, "requires": { - "@jest/types": "^26.5.2", + "@jest/types": "^26.6.0", "camelcase": "^6.0.0", "chalk": "^4.0.0", "jest-get-type": "^26.3.0", "leven": "^3.1.0", - "pretty-format": "^26.5.2" + "pretty-format": "^26.6.0" }, "dependencies": { "ansi-styles": { @@ -5925,17 +5649,17 @@ } }, "jest-watcher": { - "version": "26.5.2", - "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-26.5.2.tgz", - "integrity": "sha512-i3m1NtWzF+FXfJ3ljLBB/WQEp4uaNhX7QcQUWMokcifFTUQBDFyUMEwk0JkJ1kopHbx7Een3KX0Q7+9koGM/Pw==", + "version": "26.6.0", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-26.6.0.tgz", + "integrity": "sha512-gw5BvcgPi0PKpMlNWQjUet5C5A4JOYrT7gexdP6+DR/f7mRm7wE0o1GqwPwcTsTwo0/FNf9c/kIDXTRaSAYwlw==", "dev": true, "requires": { - "@jest/test-result": "^26.5.2", - "@jest/types": "^26.5.2", + "@jest/test-result": "^26.6.0", + "@jest/types": "^26.6.0", "@types/node": "*", "ansi-escapes": "^4.2.1", "chalk": "^4.0.0", - "jest-util": "^26.5.2", + "jest-util": "^26.6.0", "string-length": "^4.0.1" }, "dependencies": { @@ -7405,16 +7129,16 @@ } }, "prebuild-install": { - "version": "5.3.5", - "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-5.3.5.tgz", - "integrity": "sha512-YmMO7dph9CYKi5IR/BzjOJlRzpxGGVo1EsLSUZ0mt/Mq0HWZIHOKHHcHdT69yG54C9m6i45GpItwRHpk0Py7Uw==", + "version": "5.3.6", + "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-5.3.6.tgz", + "integrity": "sha512-s8Aai8++QQGi4sSbs/M1Qku62PFK49Jm1CbgXklGz4nmHveDq0wzJkg7Na5QbnO1uNH8K7iqx2EQ/mV0MZEmOg==", "dev": true, "requires": { "detect-libc": "^1.0.3", "expand-template": "^2.0.3", "github-from-package": "0.0.0", "minimist": "^1.2.3", - "mkdirp": "^0.5.1", + "mkdirp-classic": "^0.5.3", "napi-build-utils": "^1.0.1", "node-abi": "^2.7.0", "noop-logger": "^0.1.1", @@ -7510,12 +7234,12 @@ "dev": true }, "pretty-format": { - "version": "26.5.2", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.5.2.tgz", - "integrity": "sha512-VizyV669eqESlkOikKJI8Ryxl/kPpbdLwNdPs2GrbQs18MpySB5S0Yo0N7zkg2xTRiFq4CFw8ct5Vg4a0xP0og==", + "version": "26.6.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.6.0.tgz", + "integrity": "sha512-Uumr9URVB7bm6SbaByXtx+zGlS+0loDkFMHP0kHahMjmfCtmFY03iqd++5v3Ld6iB5TocVXlBN/T+DXMn9d4BA==", "dev": true, "requires": { - "@jest/types": "^26.5.2", + "@jest/types": "^26.6.0", "ansi-regex": "^5.0.0", "ansi-styles": "^4.0.0", "react-is": "^16.12.0" @@ -7770,14 +7494,6 @@ "dev": true, "requires": { "lodash": "^4.17.19" - }, - "dependencies": { - "lodash": { - "version": "4.17.20", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", - "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==", - "dev": true - } } }, "request-promise-native": { @@ -7804,11 +7520,12 @@ "dev": true }, "resolve": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz", - "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==", + "version": "1.18.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.18.1.tgz", + "integrity": "sha512-lDfCPaMKfOJXjy0dPayzPdF1phampNWr3qFCjAu+rw/qbQmr5jWH5xN2hwh9QKfw9E5v4hwV7A+jrCmL8yjjqA==", "dev": true, "requires": { + "is-core-module": "^2.0.0", "path-parse": "^1.0.6" } }, diff --git a/package.json b/package.json index 7008d3f..e46817c 100755 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "node-rfc", "description": "nodejs bindings for SAP NW RFC SDK", - "version": "2.2.0", + "version": "2.3.0", "homepage": "https://github.com/sap/node-rfc", "author": { "name": "Srdjan Boskovic", @@ -61,18 +61,18 @@ "main": "./lib/index.js", "types": "./lib/index.d.ts", "devDependencies": { - "@babel/core": "^7.12.1", + "@babel/core": "^7.12.3", "@types/bluebird": "^3.5.32", - "@types/node": "^14.11.8", + "@types/node": "^14.11.11", "@typescript-eslint/eslint-plugin": "^3.8.0", "@typescript-eslint/parser": "^3.8.0", "async": "^3.2.0", "cmake-js": "^6.1.0", "decimal.js": "^10.2.0", "eslint": "^7.11.0", - "jest": "^26.5.3", + "jest": "^26.6.0", "prebuild": "^10.0.1", - "prebuild-install": "^5.3.5", + "prebuild-install": "^5.3.6", "random-bytes": "^1.0.0", "typescript": "^3.9.7", "typings": "^2.1.1" diff --git a/src/Client.cc b/src/Client.cc index b8e4939..b9abf04 100644 --- a/src/Client.cc +++ b/src/Client.cc @@ -52,7 +52,7 @@ namespace node_rfc InstanceAccessor("_connectionHandle", &Client::ConnectionHandleGetter, nullptr), InstanceAccessor("_pool_id", &Client::PoolIdGetter, nullptr), InstanceAccessor("_config", &Client::ConfigGetter, nullptr), - InstanceMethod("setIniPath", &Client::SetIniPath), + //InstanceMethod("setIniPath", &Client::SetIniPath), InstanceMethod("connectionInfo", &Client::ConnectionInfo), InstanceMethod("open", &Client::Open), InstanceMethod("close", &Client::Close), @@ -120,30 +120,6 @@ namespace node_rfc return Napi::Number::New(info.Env(), pool->id); } - Napi::Value Client::SetIniPath(const Napi::CallbackInfo &info) - { - if (!info[0].IsString()) - { - std::ostringstream errmsg; - errmsg << "Client setIniPath() requires a full sapnwrfc.ini path, received "; - errmsg << info[0].As().Utf8Value() << "; see" << USAGE_URL; - Napi::TypeError::New(info.Env(), errmsg.str()).ThrowAsJavaScriptException(); - return info.Env().Undefined(); - } - - RFC_ERROR_INFO errorInfo; - SAP_UC *pathName = setString(info[0].As()); - RFC_RC rc = RfcSetIniPath(pathName, &errorInfo); - free(pathName); - - if (rc != RFC_OK || errorInfo.code != RFC_OK) - { - return rfcSdkError(&errorInfo); - } - - return info.Env().Undefined(); - } - Napi::Value Client::ConnectionInfo(const Napi::CallbackInfo &info) { if (connectionHandle == NULL) diff --git a/src/Client.h b/src/Client.h index e24a121..156ee31 100644 --- a/src/Client.h +++ b/src/Client.h @@ -45,7 +45,6 @@ namespace node_rfc ErrorPair connectionCheck(RFC_ERROR_INFO *errorInfo); Napi::Value getOperationError(bool conn_closed, std::string operation, ErrorPair connectionCheckError, RFC_ERROR_INFO *errorInfo, Napi::Env env); - Napi::Value SetIniPath(const Napi::CallbackInfo &info); Napi::Value ConnectionInfo(const Napi::CallbackInfo &info); Napi::Value Release(const Napi::CallbackInfo &info); Napi::Value Open(const Napi::CallbackInfo &info); diff --git a/src/addon.cc b/src/addon.cc index 6a35387..e88e5e5 100644 --- a/src/addon.cc +++ b/src/addon.cc @@ -30,9 +30,36 @@ namespace node_rfc return scope.Escape(version); } + Napi::Value SetIniFileDirectory(const Napi::CallbackInfo &info) + { + if (!info[0].IsString()) + { + std::ostringstream errmsg; + errmsg << "Client setIniPath() requires the directory in which to search for the sapnwrfc.ini file, received: "; + errmsg << info[0].As().Utf8Value() << "; see" << USAGE_URL; + Napi::TypeError::New(info.Env(), errmsg.str()).ThrowAsJavaScriptException(); + return info.Env().Undefined(); + } + + Napi::String iniFileDir = info[0].As(); + + RFC_ERROR_INFO errorInfo; + SAP_UC *pathName = setString(iniFileDir); + RFC_RC rc = RfcSetIniPath(pathName, &errorInfo); + free(pathName); + + if (rc != RFC_OK || errorInfo.code != RFC_OK) + { + return rfcSdkError(&errorInfo); + } + + return info.Env().Undefined(); + } + Napi::Object RegisterModule(Napi::Env env, Napi::Object exports) { exports.Set("bindingVersions", BindingVersions(env)); + exports.Set("setIniFileDirectory", Napi::Function::New(env, SetIniFileDirectory)); Pool::Init(env, exports); Client::Init(env, exports); diff --git a/src/noderfc.h b/src/noderfc.h index 9a6394e..73e7599 100644 --- a/src/noderfc.h +++ b/src/noderfc.h @@ -25,7 +25,7 @@ #define NODERFC_VERSION "Deactivate logging: LOG_RFC_CLIENT" #else // client binding version -#define NODERFC_VERSION "2.2.0" +#define NODERFC_VERSION "2.3.0" #endif template diff --git a/src/ts/index.ts b/src/ts/index.ts index a281828..6a81a9b 100644 --- a/src/ts/index.ts +++ b/src/ts/index.ts @@ -9,3 +9,14 @@ export * from "./wrapper/sapnwrfc-client"; export * from "./wrapper/sapnwrfc-pool"; export * from "./wrapper/sapnwrfc-throughput"; export * from "./wrapper/sapnwrfc-server"; + +import { noderfc_binding } from "./wrapper/noderfc-bindings"; + +export function setIniFileDirectory(iniFileDirectory: string) { + const path = require("path"); + const fullPath = path.join(iniFileDirectory, "sapnwrfc.ini"); + if (!require("fs").existsSync(fullPath)) { + throw new Error(`sapnwrfc.ini not found in: ${iniFileDirectory}`); + } + noderfc_binding.setIniFileDirectory(iniFileDirectory); +} diff --git a/src/ts/wrapper/noderfc-bindings.ts b/src/ts/wrapper/noderfc-bindings.ts index 9cb45d8..c55f175 100644 --- a/src/ts/wrapper/noderfc-bindings.ts +++ b/src/ts/wrapper/noderfc-bindings.ts @@ -27,9 +27,10 @@ export interface NWRfcBinding { Pool: RfcPoolBinding; Throughput: RfcThroughputBinding; Server: RfcServerBinding; - verbose(): this; bindingVersions: NodeRfcBindingVersions; environment: NodeRfcEnvironment; + setIniFileDirectory(iniFileDirectory: string): any | undefined; + verbose(): this; } // environment w/o SAP NWRFC SDK diff --git a/src/ts/wrapper/sapnwrfc-client.ts b/src/ts/wrapper/sapnwrfc-client.ts index dad95ff..1efdc1a 100644 --- a/src/ts/wrapper/sapnwrfc-client.ts +++ b/src/ts/wrapper/sapnwrfc-client.ts @@ -151,7 +151,6 @@ export interface RfcClientBinding { close(callback: Function): void; resetServerContext(callback: Function): void; ping(callback: Function): void; - setIniPath(pathName: string): void; invoke( rfmName: string, rfmParams: RfcObject, @@ -229,7 +228,7 @@ export class Client { return this.__client.connectionInfo(); } - checkCallbackArg(method: string, callback?: Function) { + static checkCallbackArg(method: string, callback?: Function) { if (callback !== undefined && typeof callback !== "function") { throw new TypeError( `Client ${method}() argument, if provided, must be a Function. Received: ${typeof callback}` @@ -239,28 +238,12 @@ export class Client { // for backwards compatibility only, to be deprecated connect(callback?: Function): void | Promise { - this.checkCallbackArg("connect", callback); + Client.checkCallbackArg("connect", callback); return this.open(callback); } - setIniPath(pathName: string, callback?: Function): void | Promise { - this.checkCallbackArg("setIniPath", callback); - const err = this.__client.setIniPath(pathName); - if (callback === undefined) { - return new Promise((resolve, reject) => { - if (err === undefined) { - resolve(); - } else { - reject(err); - } - }); - } else { - callback(err); - } - } - open(callback?: Function): void | Promise { - this.checkCallbackArg("open", callback); + Client.checkCallbackArg("open", callback); if (typeof callback === "function") { try { this.__client.open(callback); @@ -285,7 +268,7 @@ export class Client { } ping(callback?: Function): void | Promise { - this.checkCallbackArg("ping", callback); + Client.checkCallbackArg("ping", callback); if (typeof callback === "function") { try { @@ -311,7 +294,7 @@ export class Client { } close(callback?: Function): void | Promise { - this.checkCallbackArg("close", callback); + Client.checkCallbackArg("close", callback); if (typeof callback === "function") { try { @@ -337,7 +320,7 @@ export class Client { } resetServerContext(callback?: Function): void | Promise { - this.checkCallbackArg("resetServerContext", callback); + Client.checkCallbackArg("resetServerContext", callback); if (typeof callback === "function") { try { @@ -363,7 +346,7 @@ export class Client { } release(callback?: Function): void | Promise { - this.checkCallbackArg("release"); + Client.checkCallbackArg("release"); if (typeof callback === "function") { try { diff --git a/test/utils/setup.js b/test/utils/setup.js index 38400ca..d894d2b 100755 --- a/test/utils/setup.js +++ b/test/utils/setup.js @@ -13,6 +13,10 @@ const _Promise = _binding.Promise; const _UNICODETEST = "ทดสอบสร้างลูกค้าจากภายนอกครั้งที่".repeat(7); const os = require("os"); +const _INI_PATH = "/Users/d037732/src/NG-APPS/node-rfc/test"; + +_binding.setIniFileDirectory(_INI_PATH); + const _environment = { platform: { name: os.platform(), @@ -53,4 +57,5 @@ module.exports = { CONNECTIONS: _CONNECTIONS, direct_client: _direct_client, poolConfiguration: _poolConfiguration, + INI_PATH: _INI_PATH, };