@pixelpay/sdk-core 2.1.3-beta.0 → 2.2.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 +4 -0
- package/lib/base/Helpers.d.ts +1 -17
- package/lib/base/Helpers.js +2 -39
- package/lib/base/Helpers.js.map +1 -1
- package/lib/base/RequestBehaviour.d.ts +0 -24
- package/lib/base/RequestBehaviour.js +1 -30
- package/lib/base/RequestBehaviour.js.map +1 -1
- package/lib/base/ServiceBehaviour.d.ts +0 -30
- package/lib/base/ServiceBehaviour.js +18 -139
- package/lib/base/ServiceBehaviour.js.map +1 -1
- package/lib/browser/index.js +3 -3
- package/lib/index.d.ts +0 -2
- package/lib/index.js +0 -2
- package/lib/index.js.map +1 -1
- package/lib/models/Settings.d.ts +0 -4
- package/lib/models/Settings.js +0 -4
- package/lib/models/Settings.js.map +1 -1
- package/lib/requests/CardTokenization.d.ts +0 -14
- package/lib/requests/CardTokenization.js +0 -40
- package/lib/requests/CardTokenization.js.map +1 -1
- package/lib/requests/LookupTransaction.d.ts +0 -14
- package/lib/requests/LookupTransaction.js +0 -38
- package/lib/requests/LookupTransaction.js.map +1 -1
- package/lib/requests/PaymentTransaction.d.ts +0 -14
- package/lib/requests/PaymentTransaction.js +0 -38
- package/lib/requests/PaymentTransaction.js.map +1 -1
- package/lib/version.d.ts +1 -1
- package/lib/version.js +1 -1
- package/lib/version.js.map +1 -1
- package/package.json +2 -4
- package/lib/exceptions/FailedEncryptionException.d.ts +0 -2
- package/lib/exceptions/FailedEncryptionException.js +0 -26
- package/lib/exceptions/FailedEncryptionException.js.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,10 @@ 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.2.0] - 2023-09-21
|
|
9
|
+
### Removed
|
|
10
|
+
- Se eliminó lógica de encriptación
|
|
11
|
+
|
|
8
12
|
## [v2.1.3-beta.0] - 2023-08-16
|
|
9
13
|
### Added
|
|
10
14
|
- Se agregó campo de cuotas para autenticación con 3D Secure
|
package/lib/base/Helpers.d.ts
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import nacl from 'tweetnacl';
|
|
2
1
|
declare const _default: {
|
|
3
2
|
/**
|
|
4
3
|
* Serialize object to JSON string without empties
|
|
@@ -6,7 +5,7 @@ declare const _default: {
|
|
|
6
5
|
* @param value
|
|
7
6
|
* @return
|
|
8
7
|
*/
|
|
9
|
-
objectToJson(value: any
|
|
8
|
+
objectToJson(value: any): string;
|
|
10
9
|
/**
|
|
11
10
|
* Helper to hash object by algorithm
|
|
12
11
|
*
|
|
@@ -36,21 +35,6 @@ declare const _default: {
|
|
|
36
35
|
* @return
|
|
37
36
|
*/
|
|
38
37
|
parseAmount(amount: number | null | undefined): string | null;
|
|
39
|
-
/**
|
|
40
|
-
* Generate encryption key pair
|
|
41
|
-
*
|
|
42
|
-
* @return
|
|
43
|
-
*/
|
|
44
|
-
getKeyPair(): nacl.BoxKeyPair;
|
|
45
|
-
/**
|
|
46
|
-
* Encrypt message, returns encrypted value concatenated with base64 nonce.
|
|
47
|
-
*
|
|
48
|
-
* @param message
|
|
49
|
-
* @param publicKey
|
|
50
|
-
* @param keyPair
|
|
51
|
-
* @return
|
|
52
|
-
*/
|
|
53
|
-
encrypt(message: string | null, publicKey: string | null, keyPair: nacl.BoxKeyPair): string | null;
|
|
54
38
|
/**
|
|
55
39
|
* Verify if environment is a Browser
|
|
56
40
|
*/
|
package/lib/base/Helpers.js
CHANGED
|
@@ -10,12 +10,7 @@ var __assign = (this && this.__assign) || function () {
|
|
|
10
10
|
};
|
|
11
11
|
return __assign.apply(this, arguments);
|
|
12
12
|
};
|
|
13
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
14
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
15
|
-
};
|
|
16
13
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
var tweetnacl_1 = __importDefault(require("tweetnacl"));
|
|
18
|
-
var tweetnacl_util_1 = __importDefault(require("tweetnacl-util"));
|
|
19
14
|
var crypto_js_1 = require("crypto-js");
|
|
20
15
|
exports.default = {
|
|
21
16
|
/**
|
|
@@ -24,11 +19,10 @@ exports.default = {
|
|
|
24
19
|
* @param value
|
|
25
20
|
* @return
|
|
26
21
|
*/
|
|
27
|
-
objectToJson: function (value
|
|
28
|
-
if (ignore === void 0) { ignore = []; }
|
|
22
|
+
objectToJson: function (value) {
|
|
29
23
|
var filtered = __assign({}, value);
|
|
30
24
|
for (var propName in filtered) {
|
|
31
|
-
if (filtered[propName] === null || filtered[propName] === undefined
|
|
25
|
+
if (filtered[propName] === null || filtered[propName] === undefined) {
|
|
32
26
|
delete filtered[propName];
|
|
33
27
|
}
|
|
34
28
|
}
|
|
@@ -87,37 +81,6 @@ exports.default = {
|
|
|
87
81
|
}
|
|
88
82
|
return null;
|
|
89
83
|
},
|
|
90
|
-
/**
|
|
91
|
-
* Generate encryption key pair
|
|
92
|
-
*
|
|
93
|
-
* @return
|
|
94
|
-
*/
|
|
95
|
-
getKeyPair: function () {
|
|
96
|
-
return tweetnacl_1.default.box.keyPair();
|
|
97
|
-
},
|
|
98
|
-
/**
|
|
99
|
-
* Encrypt message, returns encrypted value concatenated with base64 nonce.
|
|
100
|
-
*
|
|
101
|
-
* @param message
|
|
102
|
-
* @param publicKey
|
|
103
|
-
* @param keyPair
|
|
104
|
-
* @return
|
|
105
|
-
*/
|
|
106
|
-
encrypt: function (message, publicKey, keyPair) {
|
|
107
|
-
if (!message) {
|
|
108
|
-
return null;
|
|
109
|
-
}
|
|
110
|
-
if (message.includes('|')) {
|
|
111
|
-
return message;
|
|
112
|
-
}
|
|
113
|
-
var nonce = tweetnacl_1.default.randomBytes(24);
|
|
114
|
-
var merchantPublicKey = tweetnacl_util_1.default.decodeBase64(publicKey);
|
|
115
|
-
var sharedKey = tweetnacl_1.default.box.before(merchantPublicKey, keyPair.secretKey);
|
|
116
|
-
var box = tweetnacl_1.default.box.after(tweetnacl_util_1.default.decodeUTF8(message), nonce, sharedKey);
|
|
117
|
-
var boxb64 = tweetnacl_util_1.default.encodeBase64(box);
|
|
118
|
-
var nonceb64 = tweetnacl_util_1.default.encodeBase64(nonce);
|
|
119
|
-
return "".concat(boxb64, "|").concat(nonceb64);
|
|
120
|
-
},
|
|
121
84
|
/**
|
|
122
85
|
* Verify if environment is a Browser
|
|
123
86
|
*/
|
package/lib/base/Helpers.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Helpers.js","sourceRoot":"","sources":["../../src/base/Helpers.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Helpers.js","sourceRoot":"","sources":["../../src/base/Helpers.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import nacl from 'tweetnacl';
|
|
2
1
|
export default class RequestBehaviour {
|
|
3
2
|
/**
|
|
4
3
|
* Environment identifier (live|test|sandbox)
|
|
@@ -16,33 +15,10 @@ export default class RequestBehaviour {
|
|
|
16
15
|
* SDK version
|
|
17
16
|
*/
|
|
18
17
|
sdk_version: string;
|
|
19
|
-
/**
|
|
20
|
-
* For internal use to prevent encrypting same request instance twice
|
|
21
|
-
*/
|
|
22
|
-
protected sdk_key_pair: nacl.BoxKeyPair;
|
|
23
18
|
/**
|
|
24
19
|
* Initialize request
|
|
25
20
|
*/
|
|
26
21
|
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;
|
|
39
|
-
/**
|
|
40
|
-
* Encrypt fields with sensitive data, must be overriden by inherited classes.
|
|
41
|
-
*
|
|
42
|
-
* @param publicKey
|
|
43
|
-
* @return
|
|
44
|
-
*/
|
|
45
|
-
withEncryption(publicKey: string): string | null;
|
|
46
22
|
/**
|
|
47
23
|
* Serialize object to JSON string
|
|
48
24
|
*
|
|
@@ -26,10 +26,6 @@ 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;
|
|
33
29
|
this.lang = Intl.DateTimeFormat().resolvedOptions().locale;
|
|
34
30
|
this.from = 'sdk-javascript';
|
|
35
31
|
this.sdk_version = version_1.default;
|
|
@@ -37,38 +33,13 @@ var RequestBehaviour = /** @class */ (function () {
|
|
|
37
33
|
this.lang = 'es';
|
|
38
34
|
}
|
|
39
35
|
}
|
|
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
|
-
};
|
|
56
|
-
/**
|
|
57
|
-
* Encrypt fields with sensitive data, must be overriden by inherited classes.
|
|
58
|
-
*
|
|
59
|
-
* @param publicKey
|
|
60
|
-
* @return
|
|
61
|
-
*/
|
|
62
|
-
RequestBehaviour.prototype.withEncryption = function (publicKey) {
|
|
63
|
-
return null;
|
|
64
|
-
};
|
|
65
36
|
/**
|
|
66
37
|
* Serialize object to JSON string
|
|
67
38
|
*
|
|
68
39
|
* @return
|
|
69
40
|
*/
|
|
70
41
|
RequestBehaviour.prototype.toJson = function () {
|
|
71
|
-
return Helpers_1.default.objectToJson(this
|
|
42
|
+
return Helpers_1.default.objectToJson(this);
|
|
72
43
|
};
|
|
73
44
|
return RequestBehaviour;
|
|
74
45
|
}());
|
|
@@ -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":";;;;;AAAA,sDAAgC;AAChC,uDAAiC;AAEjC;IAqBC;;OAEG;IACH;QAvBA;;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;QAM1B,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,iCAAM,GAAN;QACC,OAAO,iBAAO,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC;IACF,uBAAC;AAAD,CAAC,AA1CD,IA0CC"}
|
|
@@ -6,10 +6,6 @@ export default class ServiceBehaviour {
|
|
|
6
6
|
* Settings service model
|
|
7
7
|
*/
|
|
8
8
|
settings: Settings;
|
|
9
|
-
/**
|
|
10
|
-
* Public key from pair generated by current instance.
|
|
11
|
-
*/
|
|
12
|
-
private sdk_public_key;
|
|
13
9
|
/**
|
|
14
10
|
* Initialize service
|
|
15
11
|
*/
|
|
@@ -37,32 +33,6 @@ export default class ServiceBehaviour {
|
|
|
37
33
|
* @returns
|
|
38
34
|
*/
|
|
39
35
|
private exceptionResponse;
|
|
40
|
-
/**
|
|
41
|
-
* Verify and set request encryption values
|
|
42
|
-
*
|
|
43
|
-
* @param request
|
|
44
|
-
*/
|
|
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;
|
|
66
36
|
/**
|
|
67
37
|
* Get API route
|
|
68
38
|
*
|
|
@@ -41,8 +41,6 @@ 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"));
|
|
45
|
-
var RequestBehaviour_1 = __importDefault(require("./RequestBehaviour"));
|
|
46
44
|
var Response_1 = __importDefault(require("./Response"));
|
|
47
45
|
var ErrorResponse_1 = __importDefault(require("../responses/ErrorResponse"));
|
|
48
46
|
var FailureResponse_1 = __importDefault(require("../responses/FailureResponse"));
|
|
@@ -58,7 +56,6 @@ var TimeoutResponse_1 = __importDefault(require("../responses/TimeoutResponse"))
|
|
|
58
56
|
axios_1.default.defaults.validateStatus = function () {
|
|
59
57
|
return true;
|
|
60
58
|
};
|
|
61
|
-
var PUBLIC_KEY_PATH = 'api/v2/merchant/public_key';
|
|
62
59
|
var ServiceBehaviour = /** @class */ (function () {
|
|
63
60
|
/**
|
|
64
61
|
* Initialize service
|
|
@@ -92,9 +89,6 @@ var ServiceBehaviour = /** @class */ (function () {
|
|
|
92
89
|
if (this.settings.auth_user) {
|
|
93
90
|
headers['x-auth-user'] = this.settings.auth_user;
|
|
94
91
|
}
|
|
95
|
-
if (this.sdk_public_key) {
|
|
96
|
-
headers['x-auth-secure'] = this.sdk_public_key;
|
|
97
|
-
}
|
|
98
92
|
return axios_1.default.create({
|
|
99
93
|
baseURL: this.settings.endpoint,
|
|
100
94
|
timeout: 1000 * 60,
|
|
@@ -172,107 +166,6 @@ var ServiceBehaviour = /** @class */ (function () {
|
|
|
172
166
|
response.message = e.message;
|
|
173
167
|
return response;
|
|
174
168
|
};
|
|
175
|
-
/**
|
|
176
|
-
* Verify and set request encryption values
|
|
177
|
-
*
|
|
178
|
-
* @param request
|
|
179
|
-
*/
|
|
180
|
-
ServiceBehaviour.prototype.validateEncryption = function (request) {
|
|
181
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
182
|
-
return __generator(this, function (_a) {
|
|
183
|
-
switch (_a.label) {
|
|
184
|
-
case 0:
|
|
185
|
-
if (!request.isEncryptable()) {
|
|
186
|
-
return [2 /*return*/];
|
|
187
|
-
}
|
|
188
|
-
return [4 /*yield*/, this.validateMerchantPublicKey()];
|
|
189
|
-
case 1:
|
|
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()];
|
|
214
|
-
case 2:
|
|
215
|
-
_a.public_key = _b.sent();
|
|
216
|
-
tries++;
|
|
217
|
-
return [3 /*break*/, 1];
|
|
218
|
-
case 3:
|
|
219
|
-
if (this.settings.public_key == null) {
|
|
220
|
-
throw new InvalidCredentialsException_1.default('Could not obtain necessary credentials for transaction.');
|
|
221
|
-
}
|
|
222
|
-
return [2 /*return*/];
|
|
223
|
-
}
|
|
224
|
-
});
|
|
225
|
-
});
|
|
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
|
-
};
|
|
276
169
|
/**
|
|
277
170
|
* Get API route
|
|
278
171
|
*
|
|
@@ -296,18 +189,15 @@ var ServiceBehaviour = /** @class */ (function () {
|
|
|
296
189
|
return __generator(this, function (_a) {
|
|
297
190
|
switch (_a.label) {
|
|
298
191
|
case 0:
|
|
299
|
-
_a.trys.push([0,
|
|
300
|
-
return [4 /*yield*/, this.validateEncryption(body)];
|
|
301
|
-
case 1:
|
|
302
|
-
_a.sent();
|
|
192
|
+
_a.trys.push([0, 2, , 3]);
|
|
303
193
|
return [4 /*yield*/, this.buildRequest(url, body).post(url, JSON.parse(body.toJson()))];
|
|
304
|
-
case
|
|
194
|
+
case 1:
|
|
305
195
|
response = _a.sent();
|
|
306
196
|
return [2 /*return*/, this.parseResponse(response.data, response.status)];
|
|
307
|
-
case
|
|
197
|
+
case 2:
|
|
308
198
|
e_1 = _a.sent();
|
|
309
199
|
return [2 /*return*/, this.exceptionResponse(e_1)];
|
|
310
|
-
case
|
|
200
|
+
case 3: return [2 /*return*/];
|
|
311
201
|
}
|
|
312
202
|
});
|
|
313
203
|
});
|
|
@@ -326,18 +216,15 @@ var ServiceBehaviour = /** @class */ (function () {
|
|
|
326
216
|
return __generator(this, function (_a) {
|
|
327
217
|
switch (_a.label) {
|
|
328
218
|
case 0:
|
|
329
|
-
_a.trys.push([0,
|
|
330
|
-
return [4 /*yield*/, this.validateEncryption(body)];
|
|
331
|
-
case 1:
|
|
332
|
-
_a.sent();
|
|
219
|
+
_a.trys.push([0, 2, , 3]);
|
|
333
220
|
return [4 /*yield*/, this.buildRequest(url, body).put(url, JSON.parse(body.toJson()))];
|
|
334
|
-
case
|
|
221
|
+
case 1:
|
|
335
222
|
response = _a.sent();
|
|
336
223
|
return [2 /*return*/, this.parseResponse(response.data, response.status)];
|
|
337
|
-
case
|
|
224
|
+
case 2:
|
|
338
225
|
e_2 = _a.sent();
|
|
339
226
|
return [2 /*return*/, this.exceptionResponse(e_2)];
|
|
340
|
-
case
|
|
227
|
+
case 3: return [2 /*return*/];
|
|
341
228
|
}
|
|
342
229
|
});
|
|
343
230
|
});
|
|
@@ -356,20 +243,17 @@ var ServiceBehaviour = /** @class */ (function () {
|
|
|
356
243
|
return __generator(this, function (_a) {
|
|
357
244
|
switch (_a.label) {
|
|
358
245
|
case 0:
|
|
359
|
-
_a.trys.push([0,
|
|
360
|
-
return [4 /*yield*/, this.validateEncryption(body)];
|
|
361
|
-
case 1:
|
|
362
|
-
_a.sent();
|
|
246
|
+
_a.trys.push([0, 2, , 3]);
|
|
363
247
|
return [4 /*yield*/, this.buildRequest(url, body).delete(url, {
|
|
364
248
|
params: JSON.parse(body.toJson()),
|
|
365
249
|
})];
|
|
366
|
-
case
|
|
250
|
+
case 1:
|
|
367
251
|
response = _a.sent();
|
|
368
252
|
return [2 /*return*/, this.parseResponse(response.data, response.status)];
|
|
369
|
-
case
|
|
253
|
+
case 2:
|
|
370
254
|
e_3 = _a.sent();
|
|
371
255
|
return [2 /*return*/, this.exceptionResponse(e_3)];
|
|
372
|
-
case
|
|
256
|
+
case 3: return [2 /*return*/];
|
|
373
257
|
}
|
|
374
258
|
});
|
|
375
259
|
});
|
|
@@ -388,22 +272,17 @@ var ServiceBehaviour = /** @class */ (function () {
|
|
|
388
272
|
return __generator(this, function (_a) {
|
|
389
273
|
switch (_a.label) {
|
|
390
274
|
case 0:
|
|
391
|
-
_a.trys.push([0,
|
|
392
|
-
|
|
393
|
-
|
|
275
|
+
_a.trys.push([0, 2, , 3]);
|
|
276
|
+
return [4 /*yield*/, this.buildRequest(url, body).get(url, {
|
|
277
|
+
params: JSON.parse(body.toJson()),
|
|
278
|
+
})];
|
|
394
279
|
case 1:
|
|
395
|
-
_a.sent();
|
|
396
|
-
_a.label = 2;
|
|
397
|
-
case 2: return [4 /*yield*/, this.buildRequest(url, body).get(url, {
|
|
398
|
-
params: JSON.parse(body.toJson()),
|
|
399
|
-
})];
|
|
400
|
-
case 3:
|
|
401
280
|
response = _a.sent();
|
|
402
281
|
return [2 /*return*/, this.parseResponse(response.data, response.status)];
|
|
403
|
-
case
|
|
282
|
+
case 2:
|
|
404
283
|
e_4 = _a.sent();
|
|
405
284
|
return [2 /*return*/, this.exceptionResponse(e_4)];
|
|
406
|
-
case
|
|
285
|
+
case 3: return [2 /*return*/];
|
|
407
286
|
}
|
|
408
287
|
});
|
|
409
288
|
});
|
|
@@ -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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,gDAA6C;AAC7C,0GAAoF;AAIpF,wDAAkC;AAClC,6EAAuD;AACvD,iFAA2D;AAC3D,uFAAiE;AACjE,+FAAyE;AACzE,mFAA6D;AAC7D,mFAA6D;AAC7D,iFAA2D;AAC3D,iGAA2E;AAC3E,+FAAyE;AACzE,iFAA2D;AAE3D,iFAA2D;AAE3D,eAAK,CAAC,QAAQ,CAAC,cAAc,GAAG;IAC/B,OAAO,IAAI,CAAC;AACb,CAAC,CAAC;AAEF;IAMC;;OAEG;IACH,0BAAY,QAAkB;QAC7B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC1B,CAAC;IAED;;;;;;OAMG;IACK,uCAAY,GAApB,UAAqB,GAAW,EAAE,WAA6B;QAC9D,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE;YACxD,MAAM,IAAI,qCAA2B,CAAC,uDAAuD,CAAC,CAAC;SAC/F;QAED,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,IAAI,IAAI,EAAE;YACtC,WAAW,CAAC,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC;SAC5C;QAED,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,IAAI,EAAE;YAC/B,WAAW,CAAC,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;SACtC;QAED,IAAM,OAAO,GAAG;YACf,QAAQ,EAAE,kBAAkB;YAC5B,cAAc,EAAE,kBAAkB;YAClC,YAAY,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ;YACpC,aAAa,EAAE,IAAI,CAAC,QAAQ,CAAC,SAAS;SACtC,CAAC;QAEF,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE;YAC5B,OAAO,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC;SACjD;QAED,OAAO,eAAK,CAAC,MAAM,CAAC;YACnB,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ;YAC/B,OAAO,EAAE,IAAI,GAAG,EAAE;YAClB,OAAO,SAAA;SACP,CAAC,CAAC;IACJ,CAAC;IAED;;;;;;OAMG;IACH,wCAAa,GAAb,UAAc,IAAS,EAAE,MAAc;QACtC,IAAI,GAAG,GAAG,IAAI,kBAAQ,EAAE,CAAC;QAEzB,QAAQ,MAAM,EAAE;YACf,KAAK,GAAG;gBAAE,GAAG,GAAG,IAAI,yBAAe,EAAE,CAAC;gBAAC,MAAM;YAE7C,KAAK,GAAG;gBAAE,GAAG,GAAG,IAAI,yBAAe,EAAE,CAAC;gBAAC,MAAM;YAE7C,KAAK,GAAG;gBAAE,GAAG,GAAG,IAAI,uBAAa,EAAE,CAAC;gBAAC,MAAM;YAE3C,KAAK,GAAG,CAAC;YACT,KAAK,GAAG;gBAAE,GAAG,GAAG,IAAI,0BAAgB,EAAE,CAAC;gBAAC,MAAM;YAE9C,KAAK,GAAG;gBAAE,GAAG,GAAG,IAAI,iCAAuB,EAAE,CAAC;gBAAC,MAAM;YAErD,KAAK,GAAG,CAAC;YACT,KAAK,GAAG,CAAC;YACT,KAAK,GAAG;gBAAE,GAAG,GAAG,IAAI,0BAAgB,EAAE,CAAC;gBAAC,MAAM;YAE9C,KAAK,GAAG;gBAAE,GAAG,GAAG,IAAI,yBAAe,EAAE,CAAC;gBAAC,MAAM;YAE7C,KAAK,GAAG,CAAC;YACT,KAAK,GAAG;gBAAE,GAAG,GAAG,IAAI,gCAAsB,EAAE,CAAC;gBAAC,MAAM;YAEpD,KAAK,GAAG;gBAAE,GAAG,GAAG,IAAI,4BAAkB,EAAE,CAAC;gBAAC,MAAM;YAEhD,KAAK,GAAG;gBAAE,GAAG,GAAG,IAAI,yBAAe,EAAE,CAAC;gBAAC,MAAM;YAE7C;gBACC,IAAI,MAAM,GAAG,GAAG,EAAE;oBACjB,GAAG,GAAG,IAAI,gCAAsB,EAAE,CAAC;iBACnC;gBACD,MAAM;SACP;QAED,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC;QACpB,GAAG,CAAC,MAAM,GAAG,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,MAAM,KAAI,IAAI,CAAC;QAClC,GAAG,CAAC,OAAO,GAAG,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,OAAO,KAAI,KAAK,CAAC;QACrC,GAAG,CAAC,OAAO,GAAG,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,OAAO,KAAI,IAAI,CAAC;QACpC,GAAG,CAAC,IAAI,GAAG,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,IAAI,KAAI,IAAI,CAAC;QAC9B,GAAG,CAAC,MAAM,GAAG,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,MAAM,KAAI,IAAI,CAAC;QAElC,OAAO,GAAG,CAAC;IACZ,CAAC;IAED;;;;;OAKG;IACK,4CAAiB,GAAzB,UAA0B,CAAQ;QACjC,IAAM,QAAQ,GAAG,IAAI,yBAAe,EAAE,CAAC;QACvC,QAAQ,CAAC,MAAM,GAAG,GAAG,CAAC;QACtB,QAAQ,CAAC,OAAO,GAAG,KAAK,CAAC;QACzB,QAAQ,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC;QAE7B,OAAO,QAAQ,CAAC;IACjB,CAAC;IAED;;;;;OAKG;IACO,mCAAQ,GAAlB,UAAmB,KAAa;QAC/B,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,GAAG,GAAG,GAAG,KAAK,CAAC;IAC7C,CAAC;IAED;;;;;;;OAOG;IACa,+BAAI,GAApB,UAAqB,GAAW,EAAE,IAAsB;;;;;;;wBAErC,qBAAM,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,EAAA;;wBAAlF,QAAQ,GAAG,SAAuE;wBAExF,sBAAO,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,EAAC;;;wBAE1D,sBAAO,IAAI,CAAC,iBAAiB,CAAC,GAAC,CAAC,EAAC;;;;;KAElC;IAED;;;;;;;OAOG;IACa,8BAAG,GAAnB,UAAoB,GAAW,EAAE,IAAsB;;;;;;;wBAEpC,qBAAM,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,EAAA;;wBAAjF,QAAQ,GAAG,SAAsE;wBAEvF,sBAAO,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,EAAC;;;wBAE1D,sBAAO,IAAI,CAAC,iBAAiB,CAAC,GAAC,CAAC,EAAC;;;;;KAElC;IAED;;;;;;;OAOG;IACa,iCAAM,GAAtB,UAAuB,GAAW,EAAE,IAAsB;;;;;;;wBAEvC,qBAAM,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE;gCAC/D,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;6BACjC,CAAC,EAAA;;wBAFI,QAAQ,GAAG,SAEf;wBAEF,sBAAO,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,EAAC;;;wBAE1D,sBAAO,IAAI,CAAC,iBAAiB,CAAC,GAAC,CAAC,EAAC;;;;;KAElC;IAED;;;;;;;OAOG;IACa,8BAAG,GAAnB,UAAoB,GAAW,EAAE,IAAsB;;;;;;;wBAEpC,qBAAM,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE;gCAC5D,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;6BACjC,CAAC,EAAA;;wBAFI,QAAQ,GAAG,SAEf;wBAEF,sBAAO,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,EAAC;;;wBAE1D,sBAAO,IAAI,CAAC,iBAAiB,CAAC,GAAC,CAAC,EAAC;;;;;KAElC;IACF,uBAAC;AAAD,CAAC,AA3MD,IA2MC"}
|