@pixelpay/sdk-core 2.1.0 → 2.1.3-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +22 -0
- package/lib/base/Helpers.d.ts +1 -1
- package/lib/base/Helpers.js +4 -3
- package/lib/base/Helpers.js.map +1 -1
- package/lib/base/RequestBehaviour.d.ts +18 -1
- package/lib/base/RequestBehaviour.js +22 -2
- package/lib/base/RequestBehaviour.js.map +1 -1
- package/lib/base/ServiceBehaviour.d.ts +21 -1
- package/lib/base/ServiceBehaviour.js +95 -28
- package/lib/base/ServiceBehaviour.js.map +1 -1
- package/lib/browser/index.js +3 -3
- package/lib/entities/TransactionResult.d.ts +12 -0
- package/lib/entities/TransactionResult.js +12 -0
- package/lib/entities/TransactionResult.js.map +1 -1
- package/lib/exceptions/FailedEncryptionException.d.ts +2 -0
- package/lib/exceptions/FailedEncryptionException.js +26 -0
- package/lib/exceptions/FailedEncryptionException.js.map +1 -0
- package/lib/index.d.ts +2 -0
- package/lib/index.js +2 -0
- package/lib/index.js.map +1 -1
- package/lib/libraries/CardinalManager.js +8 -8
- package/lib/requests/CardTokenization.d.ts +8 -1
- package/lib/requests/CardTokenization.js +34 -18
- package/lib/requests/CardTokenization.js.map +1 -1
- package/lib/requests/LookupTransaction.d.ts +18 -0
- package/lib/requests/LookupTransaction.js +46 -0
- package/lib/requests/LookupTransaction.js.map +1 -1
- package/lib/requests/PaymentTransaction.d.ts +8 -1
- package/lib/requests/PaymentTransaction.js +26 -13
- package/lib/requests/PaymentTransaction.js.map +1 -1
- package/lib/services/CardinalAuthentication.d.ts +4 -4
- package/lib/services/CardinalAuthentication.js +3 -3
- package/lib/version.d.ts +1 -1
- package/lib/version.js +1 -1
- package/lib/version.js.map +1 -1
- package/package.json +1 -1
- package/tests/Tokenization.test.ts +12 -8
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,28 @@ El formato se basa en [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
|
5
5
|
y este proyecto se adhiere a [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
6
6
|
Tipos de cambios: `Added`, `Changed`, `Deprecated`, `Removed`, `Fixed`, `Security`.
|
|
7
7
|
|
|
8
|
+
## [v2.1.3-beta.0] - 2023-08-16
|
|
9
|
+
### Added
|
|
10
|
+
- Se agregó campo de cuotas para autenticación con 3D Secure
|
|
11
|
+
|
|
12
|
+
## [v2.1.2] - 2023-08-16
|
|
13
|
+
### Added
|
|
14
|
+
- Se omiten los métodos de encriptación si la petición no lo requiere
|
|
15
|
+
|
|
16
|
+
### Changed
|
|
17
|
+
- En caso de fallos, se hacen reintentos para adquirir la llave pública del comercio
|
|
18
|
+
- En caso de fallos, se hacen reintentos para encriptar los datos de tarjeta
|
|
19
|
+
|
|
20
|
+
### Fixed
|
|
21
|
+
- Se corrigió caso donde reintentos de transacciones con una misma instancia de `RequestBehaviour` encripta datos múltiples veces
|
|
22
|
+
- Se corrigió encriptación para transacciones de 3D Secure
|
|
23
|
+
- Se arregló conflicto de encriptación al reutilizar instancias de `RequestBehaviour`
|
|
24
|
+
- Se arregló servicios de tokenización enviando fecha de expiración incorrecta si no se llenan los campos
|
|
25
|
+
|
|
26
|
+
## [v2.1.1] - 2023-08-09
|
|
27
|
+
### Changed
|
|
28
|
+
- Rollback temporal a v2.0.6
|
|
29
|
+
|
|
8
30
|
## [v2.1.0] - 2023-07-18
|
|
9
31
|
### Added
|
|
10
32
|
- Se agregó encriptación de datos de tarjeta.
|
package/lib/base/Helpers.d.ts
CHANGED
package/lib/base/Helpers.js
CHANGED
|
@@ -24,10 +24,11 @@ exports.default = {
|
|
|
24
24
|
* @param value
|
|
25
25
|
* @return
|
|
26
26
|
*/
|
|
27
|
-
objectToJson: function (value) {
|
|
27
|
+
objectToJson: function (value, ignore) {
|
|
28
|
+
if (ignore === void 0) { ignore = []; }
|
|
28
29
|
var filtered = __assign({}, value);
|
|
29
30
|
for (var propName in filtered) {
|
|
30
|
-
if (filtered[propName] === null || filtered[propName] === undefined) {
|
|
31
|
+
if (filtered[propName] === null || filtered[propName] === undefined || ignore.includes(propName)) {
|
|
31
32
|
delete filtered[propName];
|
|
32
33
|
}
|
|
33
34
|
}
|
|
@@ -106,7 +107,7 @@ exports.default = {
|
|
|
106
107
|
if (!message) {
|
|
107
108
|
return null;
|
|
108
109
|
}
|
|
109
|
-
if (
|
|
110
|
+
if (message.includes('|')) {
|
|
110
111
|
return message;
|
|
111
112
|
}
|
|
112
113
|
var nonce = tweetnacl_1.default.randomBytes(24);
|
package/lib/base/Helpers.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Helpers.js","sourceRoot":"","sources":["../../src/base/Helpers.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,wDAA6B;AAC7B,kEAAsC;AACtC,uCAAwC;AAExC,kBAAe;IACd;;;;;OAKG;IACH,YAAY,YAAC,KAAU;
|
|
1
|
+
{"version":3,"file":"Helpers.js","sourceRoot":"","sources":["../../src/base/Helpers.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import nacl from 'tweetnacl';
|
|
1
2
|
export default class RequestBehaviour {
|
|
2
3
|
/**
|
|
3
4
|
* Environment identifier (live|test|sandbox)
|
|
@@ -15,15 +16,31 @@ export default class RequestBehaviour {
|
|
|
15
16
|
* SDK version
|
|
16
17
|
*/
|
|
17
18
|
sdk_version: string;
|
|
19
|
+
/**
|
|
20
|
+
* For internal use to prevent encrypting same request instance twice
|
|
21
|
+
*/
|
|
22
|
+
protected sdk_key_pair: nacl.BoxKeyPair;
|
|
18
23
|
/**
|
|
19
24
|
* Initialize request
|
|
20
25
|
*/
|
|
21
26
|
constructor();
|
|
27
|
+
/**
|
|
28
|
+
* Get sdk_key_pair from current instance
|
|
29
|
+
*
|
|
30
|
+
* @return
|
|
31
|
+
*/
|
|
32
|
+
getSDKKeyPair(): nacl.BoxKeyPair | null;
|
|
33
|
+
/**
|
|
34
|
+
* Check if current request needs encryption, must be overriden by inherited classes.
|
|
35
|
+
*
|
|
36
|
+
* @return
|
|
37
|
+
*/
|
|
38
|
+
isEncryptable(): boolean;
|
|
22
39
|
/**
|
|
23
40
|
* Encrypt fields with sensitive data, must be overriden by inherited classes.
|
|
24
41
|
*
|
|
25
42
|
* @param publicKey
|
|
26
|
-
* @
|
|
43
|
+
* @return
|
|
27
44
|
*/
|
|
28
45
|
withEncryption(publicKey: string): string | null;
|
|
29
46
|
/**
|
|
@@ -26,6 +26,10 @@ var RequestBehaviour = /** @class */ (function () {
|
|
|
26
26
|
* SDK version
|
|
27
27
|
*/
|
|
28
28
|
this.sdk_version = null;
|
|
29
|
+
/**
|
|
30
|
+
* For internal use to prevent encrypting same request instance twice
|
|
31
|
+
*/
|
|
32
|
+
this.sdk_key_pair = null;
|
|
29
33
|
this.lang = Intl.DateTimeFormat().resolvedOptions().locale;
|
|
30
34
|
this.from = 'sdk-javascript';
|
|
31
35
|
this.sdk_version = version_1.default;
|
|
@@ -33,11 +37,27 @@ var RequestBehaviour = /** @class */ (function () {
|
|
|
33
37
|
this.lang = 'es';
|
|
34
38
|
}
|
|
35
39
|
}
|
|
40
|
+
/**
|
|
41
|
+
* Get sdk_key_pair from current instance
|
|
42
|
+
*
|
|
43
|
+
* @return
|
|
44
|
+
*/
|
|
45
|
+
RequestBehaviour.prototype.getSDKKeyPair = function () {
|
|
46
|
+
return this.sdk_key_pair;
|
|
47
|
+
};
|
|
48
|
+
/**
|
|
49
|
+
* Check if current request needs encryption, must be overriden by inherited classes.
|
|
50
|
+
*
|
|
51
|
+
* @return
|
|
52
|
+
*/
|
|
53
|
+
RequestBehaviour.prototype.isEncryptable = function () {
|
|
54
|
+
return false;
|
|
55
|
+
};
|
|
36
56
|
/**
|
|
37
57
|
* Encrypt fields with sensitive data, must be overriden by inherited classes.
|
|
38
58
|
*
|
|
39
59
|
* @param publicKey
|
|
40
|
-
* @
|
|
60
|
+
* @return
|
|
41
61
|
*/
|
|
42
62
|
RequestBehaviour.prototype.withEncryption = function (publicKey) {
|
|
43
63
|
return null;
|
|
@@ -48,7 +68,7 @@ var RequestBehaviour = /** @class */ (function () {
|
|
|
48
68
|
* @return
|
|
49
69
|
*/
|
|
50
70
|
RequestBehaviour.prototype.toJson = function () {
|
|
51
|
-
return Helpers_1.default.objectToJson(this);
|
|
71
|
+
return Helpers_1.default.objectToJson(this, ['sdk_key_pair']);
|
|
52
72
|
};
|
|
53
73
|
return RequestBehaviour;
|
|
54
74
|
}());
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RequestBehaviour.js","sourceRoot":"","sources":["../../src/base/RequestBehaviour.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"RequestBehaviour.js","sourceRoot":"","sources":["../../src/base/RequestBehaviour.ts"],"names":[],"mappings":";;;;;AACA,sDAAgC;AAChC,uDAAiC;AAEjC;IA0BC;;OAEG;IACH;QA5BA;;WAEG;QACH,QAAG,GAAW,IAAI,CAAC;QAEnB;;WAEG;QACH,SAAI,GAAW,IAAI,CAAC;QAEpB;;WAEG;QACH,SAAI,GAAW,IAAI,CAAC;QAEpB;;WAEG;QACH,gBAAW,GAAW,IAAI,CAAC;QAE3B;;WAEG;QACO,iBAAY,GAAoB,IAAI,CAAC;QAM9C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC,eAAe,EAAE,CAAC,MAAM,CAAC;QAC3D,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC;QAC7B,IAAI,CAAC,WAAW,GAAG,iBAAO,CAAC;QAE3B,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,EAAE;YAC3C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;SACjB;IACF,CAAC;IAED;;;;OAIG;IACH,wCAAa,GAAb;QACC,OAAO,IAAI,CAAC,YAAY,CAAC;IAC1B,CAAC;IAED;;;;OAIG;IACH,wCAAa,GAAb;QACC,OAAO,KAAK,CAAC;IACd,CAAC;IAED;;;;;OAKG;IACH,yCAAc,GAAd,UAAe,SAAiB;QAC/B,OAAO,IAAI,CAAC;IACb,CAAC;IAED;;;;OAIG;IACH,iCAAM,GAAN;QACC,OAAO,iBAAO,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC;IACrD,CAAC;IACF,uBAAC;AAAD,CAAC,AA3ED,IA2EC"}
|
|
@@ -9,7 +9,7 @@ export default class ServiceBehaviour {
|
|
|
9
9
|
/**
|
|
10
10
|
* Public key from pair generated by current instance.
|
|
11
11
|
*/
|
|
12
|
-
sdk_public_key
|
|
12
|
+
private sdk_public_key;
|
|
13
13
|
/**
|
|
14
14
|
* Initialize service
|
|
15
15
|
*/
|
|
@@ -43,6 +43,26 @@ export default class ServiceBehaviour {
|
|
|
43
43
|
* @param request
|
|
44
44
|
*/
|
|
45
45
|
private validateEncryption;
|
|
46
|
+
/**
|
|
47
|
+
* Resiliently fetch merchant public key, trying at least 3 times before failing
|
|
48
|
+
*
|
|
49
|
+
* @throws InvalidCredentialsException
|
|
50
|
+
*/
|
|
51
|
+
private validateMerchantPublicKey;
|
|
52
|
+
/**
|
|
53
|
+
* Resiliently generate keys and encrypt request, trying at least 3 times before failing
|
|
54
|
+
*
|
|
55
|
+
* @param request
|
|
56
|
+
* @throws FailedEncryptionException
|
|
57
|
+
*/
|
|
58
|
+
private validateSDKPublicKey;
|
|
59
|
+
/**
|
|
60
|
+
* Fetch merchant public key for encryption
|
|
61
|
+
*
|
|
62
|
+
* @return
|
|
63
|
+
* @throws InvalidCredentialsException
|
|
64
|
+
*/
|
|
65
|
+
private fetchMerchantPublicKey;
|
|
46
66
|
/**
|
|
47
67
|
* Get API route
|
|
48
68
|
*
|
|
@@ -41,6 +41,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
41
41
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
42
42
|
var axios_1 = __importDefault(require("axios"));
|
|
43
43
|
var InvalidCredentialsException_1 = __importDefault(require("../exceptions/InvalidCredentialsException"));
|
|
44
|
+
var FailedEncryptionException_1 = __importDefault(require("../exceptions/FailedEncryptionException"));
|
|
44
45
|
var RequestBehaviour_1 = __importDefault(require("./RequestBehaviour"));
|
|
45
46
|
var Response_1 = __importDefault(require("./Response"));
|
|
46
47
|
var ErrorResponse_1 = __importDefault(require("../responses/ErrorResponse"));
|
|
@@ -178,34 +179,100 @@ var ServiceBehaviour = /** @class */ (function () {
|
|
|
178
179
|
*/
|
|
179
180
|
ServiceBehaviour.prototype.validateEncryption = function (request) {
|
|
180
181
|
return __awaiter(this, void 0, void 0, function () {
|
|
181
|
-
var response, e_1;
|
|
182
182
|
return __generator(this, function (_a) {
|
|
183
183
|
switch (_a.label) {
|
|
184
184
|
case 0:
|
|
185
|
-
if (
|
|
186
|
-
|
|
185
|
+
if (!request.isEncryptable()) {
|
|
186
|
+
return [2 /*return*/];
|
|
187
|
+
}
|
|
188
|
+
return [4 /*yield*/, this.validateMerchantPublicKey()];
|
|
187
189
|
case 1:
|
|
188
|
-
_a.
|
|
189
|
-
|
|
190
|
+
_a.sent();
|
|
191
|
+
this.validateSDKPublicKey(request);
|
|
192
|
+
return [2 /*return*/];
|
|
193
|
+
}
|
|
194
|
+
});
|
|
195
|
+
});
|
|
196
|
+
};
|
|
197
|
+
/**
|
|
198
|
+
* Resiliently fetch merchant public key, trying at least 3 times before failing
|
|
199
|
+
*
|
|
200
|
+
* @throws InvalidCredentialsException
|
|
201
|
+
*/
|
|
202
|
+
ServiceBehaviour.prototype.validateMerchantPublicKey = function () {
|
|
203
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
204
|
+
var tries, _a;
|
|
205
|
+
return __generator(this, function (_b) {
|
|
206
|
+
switch (_b.label) {
|
|
207
|
+
case 0:
|
|
208
|
+
tries = 0;
|
|
209
|
+
_b.label = 1;
|
|
210
|
+
case 1:
|
|
211
|
+
if (!(!this.settings.public_key && tries < 3)) return [3 /*break*/, 3];
|
|
212
|
+
_a = this.settings;
|
|
213
|
+
return [4 /*yield*/, this.fetchMerchantPublicKey()];
|
|
190
214
|
case 2:
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
}
|
|
195
|
-
return [3 /*break*/, 4];
|
|
215
|
+
_a.public_key = _b.sent();
|
|
216
|
+
tries++;
|
|
217
|
+
return [3 /*break*/, 1];
|
|
196
218
|
case 3:
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
return [3 /*break*/, 4];
|
|
200
|
-
case 4:
|
|
201
|
-
if (this.settings.public_key) {
|
|
202
|
-
this.sdk_public_key = request.withEncryption(this.settings.public_key);
|
|
219
|
+
if (this.settings.public_key == null) {
|
|
220
|
+
throw new InvalidCredentialsException_1.default('Could not obtain necessary credentials for transaction.');
|
|
203
221
|
}
|
|
204
222
|
return [2 /*return*/];
|
|
205
223
|
}
|
|
206
224
|
});
|
|
207
225
|
});
|
|
208
226
|
};
|
|
227
|
+
/**
|
|
228
|
+
* Resiliently generate keys and encrypt request, trying at least 3 times before failing
|
|
229
|
+
*
|
|
230
|
+
* @param request
|
|
231
|
+
* @throws FailedEncryptionException
|
|
232
|
+
*/
|
|
233
|
+
ServiceBehaviour.prototype.validateSDKPublicKey = function (request) {
|
|
234
|
+
var tries = 0;
|
|
235
|
+
var lastError = null;
|
|
236
|
+
while (!this.sdk_public_key && tries < 3 || tries === 0) {
|
|
237
|
+
try {
|
|
238
|
+
this.sdk_public_key = request.withEncryption(this.settings.public_key);
|
|
239
|
+
}
|
|
240
|
+
catch (err) {
|
|
241
|
+
lastError = err;
|
|
242
|
+
}
|
|
243
|
+
finally {
|
|
244
|
+
tries++;
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
if (!this.sdk_public_key && lastError) {
|
|
248
|
+
throw lastError;
|
|
249
|
+
}
|
|
250
|
+
if (!this.sdk_public_key) {
|
|
251
|
+
throw new FailedEncryptionException_1.default('Could not process encryption, please try again.');
|
|
252
|
+
}
|
|
253
|
+
};
|
|
254
|
+
/**
|
|
255
|
+
* Fetch merchant public key for encryption
|
|
256
|
+
*
|
|
257
|
+
* @return
|
|
258
|
+
* @throws InvalidCredentialsException
|
|
259
|
+
*/
|
|
260
|
+
ServiceBehaviour.prototype.fetchMerchantPublicKey = function () {
|
|
261
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
262
|
+
var response;
|
|
263
|
+
return __generator(this, function (_a) {
|
|
264
|
+
switch (_a.label) {
|
|
265
|
+
case 0: return [4 /*yield*/, this.get(PUBLIC_KEY_PATH, new RequestBehaviour_1.default())];
|
|
266
|
+
case 1:
|
|
267
|
+
response = _a.sent();
|
|
268
|
+
if (response.success) {
|
|
269
|
+
return [2 /*return*/, response.getData('public_key')];
|
|
270
|
+
}
|
|
271
|
+
return [2 /*return*/, null];
|
|
272
|
+
}
|
|
273
|
+
});
|
|
274
|
+
});
|
|
275
|
+
};
|
|
209
276
|
/**
|
|
210
277
|
* Get API route
|
|
211
278
|
*
|
|
@@ -225,7 +292,7 @@ var ServiceBehaviour = /** @class */ (function () {
|
|
|
225
292
|
*/
|
|
226
293
|
ServiceBehaviour.prototype.post = function (url, body) {
|
|
227
294
|
return __awaiter(this, void 0, void 0, function () {
|
|
228
|
-
var response,
|
|
295
|
+
var response, e_1;
|
|
229
296
|
return __generator(this, function (_a) {
|
|
230
297
|
switch (_a.label) {
|
|
231
298
|
case 0:
|
|
@@ -238,8 +305,8 @@ var ServiceBehaviour = /** @class */ (function () {
|
|
|
238
305
|
response = _a.sent();
|
|
239
306
|
return [2 /*return*/, this.parseResponse(response.data, response.status)];
|
|
240
307
|
case 3:
|
|
241
|
-
|
|
242
|
-
return [2 /*return*/, this.exceptionResponse(
|
|
308
|
+
e_1 = _a.sent();
|
|
309
|
+
return [2 /*return*/, this.exceptionResponse(e_1)];
|
|
243
310
|
case 4: return [2 /*return*/];
|
|
244
311
|
}
|
|
245
312
|
});
|
|
@@ -255,7 +322,7 @@ var ServiceBehaviour = /** @class */ (function () {
|
|
|
255
322
|
*/
|
|
256
323
|
ServiceBehaviour.prototype.put = function (url, body) {
|
|
257
324
|
return __awaiter(this, void 0, void 0, function () {
|
|
258
|
-
var response,
|
|
325
|
+
var response, e_2;
|
|
259
326
|
return __generator(this, function (_a) {
|
|
260
327
|
switch (_a.label) {
|
|
261
328
|
case 0:
|
|
@@ -268,8 +335,8 @@ var ServiceBehaviour = /** @class */ (function () {
|
|
|
268
335
|
response = _a.sent();
|
|
269
336
|
return [2 /*return*/, this.parseResponse(response.data, response.status)];
|
|
270
337
|
case 3:
|
|
271
|
-
|
|
272
|
-
return [2 /*return*/, this.exceptionResponse(
|
|
338
|
+
e_2 = _a.sent();
|
|
339
|
+
return [2 /*return*/, this.exceptionResponse(e_2)];
|
|
273
340
|
case 4: return [2 /*return*/];
|
|
274
341
|
}
|
|
275
342
|
});
|
|
@@ -285,7 +352,7 @@ var ServiceBehaviour = /** @class */ (function () {
|
|
|
285
352
|
*/
|
|
286
353
|
ServiceBehaviour.prototype.delete = function (url, body) {
|
|
287
354
|
return __awaiter(this, void 0, void 0, function () {
|
|
288
|
-
var response,
|
|
355
|
+
var response, e_3;
|
|
289
356
|
return __generator(this, function (_a) {
|
|
290
357
|
switch (_a.label) {
|
|
291
358
|
case 0:
|
|
@@ -300,8 +367,8 @@ var ServiceBehaviour = /** @class */ (function () {
|
|
|
300
367
|
response = _a.sent();
|
|
301
368
|
return [2 /*return*/, this.parseResponse(response.data, response.status)];
|
|
302
369
|
case 3:
|
|
303
|
-
|
|
304
|
-
return [2 /*return*/, this.exceptionResponse(
|
|
370
|
+
e_3 = _a.sent();
|
|
371
|
+
return [2 /*return*/, this.exceptionResponse(e_3)];
|
|
305
372
|
case 4: return [2 /*return*/];
|
|
306
373
|
}
|
|
307
374
|
});
|
|
@@ -317,7 +384,7 @@ var ServiceBehaviour = /** @class */ (function () {
|
|
|
317
384
|
*/
|
|
318
385
|
ServiceBehaviour.prototype.get = function (url, body) {
|
|
319
386
|
return __awaiter(this, void 0, void 0, function () {
|
|
320
|
-
var response,
|
|
387
|
+
var response, e_4;
|
|
321
388
|
return __generator(this, function (_a) {
|
|
322
389
|
switch (_a.label) {
|
|
323
390
|
case 0:
|
|
@@ -334,8 +401,8 @@ var ServiceBehaviour = /** @class */ (function () {
|
|
|
334
401
|
response = _a.sent();
|
|
335
402
|
return [2 /*return*/, this.parseResponse(response.data, response.status)];
|
|
336
403
|
case 4:
|
|
337
|
-
|
|
338
|
-
return [2 /*return*/, this.exceptionResponse(
|
|
404
|
+
e_4 = _a.sent();
|
|
405
|
+
return [2 /*return*/, this.exceptionResponse(e_4)];
|
|
339
406
|
case 5: return [2 /*return*/];
|
|
340
407
|
}
|
|
341
408
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ServiceBehaviour.js","sourceRoot":"","sources":["../../src/base/ServiceBehaviour.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,gDAA6C;AAC7C,0GAAoF;
|
|
1
|
+
{"version":3,"file":"ServiceBehaviour.js","sourceRoot":"","sources":["../../src/base/ServiceBehaviour.ts"],"names":[],"mappings":"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"}
|