@houlak/plexo-sdk 0.1.15 → 0.1.17

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.
Files changed (32) hide show
  1. package/lib/handler/PlexoHandler.d.ts +5 -5
  2. package/lib/handler/PlexoHandler.js +27 -20
  3. package/lib/handler/services/evaluator.service.js +9 -9
  4. package/lib/lib/logger.lib.js +3 -3
  5. package/lib/sdk/PaymentGatewayClient.js +5 -6
  6. package/lib/sdk/PaymentGatewayMock.js +16 -16
  7. package/lib/sdk/enums/plexo-error-enum.d.ts +1 -0
  8. package/lib/sdk/enums/plexo-error-enum.js +1 -0
  9. package/lib/sdk/helpers/signature/signatureHelper.d.ts +0 -1
  10. package/lib/sdk/helpers/signature/signatureHelper.js +26 -53
  11. package/lib/sdk/mocks/mocks.js +47 -47
  12. package/lib/sdk/models/GenericSignedObject.d.ts +3 -3
  13. package/lib/sdk/models/GenericSignedObject.js +3 -3
  14. package/lib/sdk/models/GenericStateObject.d.ts +1 -1
  15. package/lib/sdk/models/GenericStateObject.js +3 -3
  16. package/lib/sdk/models/InstrumentCallback.d.ts +5 -5
  17. package/lib/sdk/models/InstrumentCallback.js +5 -5
  18. package/lib/sdk/models/InstrumentWithMetadata.d.ts +3 -3
  19. package/lib/sdk/models/InstrumentWithMetadata.js +3 -3
  20. package/lib/sdk/models/PaymentInstrument.d.ts +11 -11
  21. package/lib/sdk/models/StateObject.d.ts +2 -2
  22. package/lib/sdk/models/StateObject.js +2 -2
  23. package/lib/sdk/models/Transaction.d.ts +24 -24
  24. package/lib/sdk/models/Transaction.js +18 -18
  25. package/lib/sdk/models/TransactionCallback.d.ts +4 -4
  26. package/lib/sdk/models/TransactionCallback.js +3 -3
  27. package/lib/sdk/models/TransactionInfo.d.ts +9 -9
  28. package/lib/utils/case.util.d.ts +4 -0
  29. package/lib/utils/case.util.js +43 -0
  30. package/lib/utils/index.d.ts +1 -0
  31. package/lib/utils/index.js +5 -0
  32. package/package.json +1 -1
@@ -1,4 +1,4 @@
1
- import { Authorization, BaseServerResponse, CancelRequest, ClientSignedResponse, Commerce, CommerceIdRequest, CommerceIssuerIdRequest, CommerceRequest, DeleteInstrumentRequest, ExpressCheckoutRequest, InstrumentCallback, IssuerData, IssuerInfo, IssuerProcessor, PaymentRequest, ServerResponse, ServerSignedCallback, Session, Transaction, TransactionCallback } from '../sdk/index';
1
+ import { Authorization, BaseServerResponse, CancelRequest, ClientSignedResponse, Commerce, CommerceIdRequest, CommerceIssuerIdRequest, CommerceRequest, DeleteInstrumentRequest, ExpressCheckoutRequest, InstrumentCallback, IssuerData, IssuerInfo, IssuerProcessor, PaymentRequest, Session, Transaction, TransactionCallback } from '../sdk/index';
2
2
  import { BaseResponse } from './types/BaseResponse';
3
3
  export declare const PlexoHandler: {
4
4
  AddCommerce: (commerceRequest: CommerceRequest) => Promise<BaseResponse<Commerce>>;
@@ -14,8 +14,8 @@ export declare const PlexoHandler: {
14
14
  Cancel: (cancellation: CancelRequest) => Promise<BaseResponse<Transaction>>;
15
15
  ExpressCheckout: (expressCheckout: ExpressCheckoutRequest) => Promise<BaseResponse<Session>>;
16
16
  Purchase: (purchase: PaymentRequest) => Promise<BaseResponse<Transaction>>;
17
- UnwrapInstrumentCallback: (instrumentCallback: ServerSignedCallback<InstrumentCallback>) => Promise<BaseResponse<InstrumentCallback>>;
18
- UnwrapTransactionCallback: (transactionCallback: ServerSignedCallback<TransactionCallback>) => Promise<BaseResponse<TransactionCallback>>;
19
- SignInstrumentCallback: (instrumentCallback: ServerResponse<InstrumentCallback>) => Promise<BaseResponse<ClientSignedResponse>>;
20
- SignTransactionCallback: (transactionCallback: ServerResponse<TransactionCallback>) => Promise<BaseResponse<ClientSignedResponse>>;
17
+ UnwrapInstrumentCallback: (instrumentCallback: any) => Promise<BaseResponse<InstrumentCallback>>;
18
+ UnwrapTransactionCallback: (transactionCallback: any) => Promise<BaseResponse<TransactionCallback>>;
19
+ SignInstrumentCallback: (instrumentCallback: any) => Promise<BaseResponse<ClientSignedResponse>>;
20
+ SignTransactionCallback: (transactionCallback: any) => Promise<BaseResponse<ClientSignedResponse>>;
21
21
  };
@@ -41,6 +41,7 @@ var index_1 = require("../sdk/index");
41
41
  var evaluator_service_1 = require("./services/evaluator.service");
42
42
  var config_1 = require("../config/config");
43
43
  var PaymentGatewayMock_1 = require("../sdk/PaymentGatewayMock");
44
+ var utils_1 = require("../utils");
44
45
  var isTesting = config_1.config.env === 'TEST';
45
46
  var paymentGatewayClient = isTesting
46
47
  ? new PaymentGatewayMock_1.PaymentGatewayMock()
@@ -202,34 +203,38 @@ var Purchase = function (purchase) { return __awaiter(void 0, void 0, void 0, fu
202
203
  });
203
204
  }); };
204
205
  var UnwrapInstrumentCallback = function (instrumentCallback) { return __awaiter(void 0, void 0, void 0, function () {
205
- var instrumentCallbackResponse;
206
+ var instrumentCallbackCamelCase, instrumentCallbackResponse;
206
207
  return __generator(this, function (_a) {
207
- instrumentCallbackResponse = {
208
- response: instrumentCallback.Object.object,
209
- resultCode: index_1.ResultCodes.Ok,
210
- errorMessage: 'Success',
211
- };
212
- // await paymentGatewayClient.UnwrapInstrumentCallbackAsync(instrumentCallback)
213
- return [2 /*return*/, evaluator_service_1.Evaluator.genericEvaluator(instrumentCallback, instrumentCallbackResponse)];
208
+ switch (_a.label) {
209
+ case 0:
210
+ instrumentCallbackCamelCase = utils_1.caseUtils.toCamelKeys(instrumentCallback);
211
+ return [4 /*yield*/, paymentGatewayClient.UnwrapInstrumentCallbackAsync(instrumentCallbackCamelCase)];
212
+ case 1:
213
+ instrumentCallbackResponse = _a.sent();
214
+ return [2 /*return*/, evaluator_service_1.Evaluator.genericEvaluator(instrumentCallback, instrumentCallbackResponse)];
215
+ }
214
216
  });
215
217
  }); };
216
218
  var UnwrapTransactionCallback = function (transactionCallback) { return __awaiter(void 0, void 0, void 0, function () {
217
- var transactionCallbackResponse;
219
+ var transactionCallbackCamelCase, transactionCallbackResponse;
218
220
  return __generator(this, function (_a) {
219
- transactionCallbackResponse = {
220
- response: transactionCallback.Object.object,
221
- resultCode: index_1.ResultCodes.Ok,
222
- errorMessage: 'Success',
223
- };
224
- // await paymentGatewayClient.UnwrapTransactionCallbackAsync(transactionCallback)
225
- return [2 /*return*/, evaluator_service_1.Evaluator.genericEvaluator(transactionCallback, transactionCallbackResponse)];
221
+ switch (_a.label) {
222
+ case 0:
223
+ transactionCallbackCamelCase = utils_1.caseUtils.toCamelKeys(transactionCallback);
224
+ return [4 /*yield*/, paymentGatewayClient.UnwrapTransactionCallbackAsync(transactionCallbackCamelCase)];
225
+ case 1:
226
+ transactionCallbackResponse = _a.sent();
227
+ return [2 /*return*/, evaluator_service_1.Evaluator.genericEvaluator(transactionCallback, transactionCallbackResponse)];
228
+ }
226
229
  });
227
230
  }); };
228
231
  var SignInstrumentCallback = function (instrumentCallback) { return __awaiter(void 0, void 0, void 0, function () {
229
- var signInstrumentCallbackResponse;
232
+ var instrumentCallbackCamelCase, signInstrumentCallbackResponse;
230
233
  return __generator(this, function (_a) {
231
234
  switch (_a.label) {
232
- case 0: return [4 /*yield*/, paymentGatewayClient.SignInstrumentCallback(instrumentCallback)];
235
+ case 0:
236
+ instrumentCallbackCamelCase = utils_1.caseUtils.toCamelKeys(instrumentCallback);
237
+ return [4 /*yield*/, paymentGatewayClient.SignInstrumentCallback(instrumentCallbackCamelCase)];
233
238
  case 1:
234
239
  signInstrumentCallbackResponse = _a.sent();
235
240
  return [2 /*return*/, evaluator_service_1.Evaluator.genericEvaluator(instrumentCallback, signInstrumentCallbackResponse)];
@@ -237,10 +242,12 @@ var SignInstrumentCallback = function (instrumentCallback) { return __awaiter(vo
237
242
  });
238
243
  }); };
239
244
  var SignTransactionCallback = function (transactionCallback) { return __awaiter(void 0, void 0, void 0, function () {
240
- var signTransactionCallbackResponse;
245
+ var transactionCallbackCamelCase, signTransactionCallbackResponse;
241
246
  return __generator(this, function (_a) {
242
247
  switch (_a.label) {
243
- case 0: return [4 /*yield*/, paymentGatewayClient.SignTransactionCallback(transactionCallback)];
248
+ case 0:
249
+ transactionCallbackCamelCase = utils_1.caseUtils.toCamelKeys(transactionCallback);
250
+ return [4 /*yield*/, paymentGatewayClient.SignTransactionCallback(transactionCallbackCamelCase)];
244
251
  case 1:
245
252
  signTransactionCallbackResponse = _a.sent();
246
253
  return [2 /*return*/, evaluator_service_1.Evaluator.genericEvaluator(transactionCallback, signTransactionCallbackResponse)];
@@ -44,20 +44,20 @@ var BaseResponse_1 = require("../types/BaseResponse");
44
44
  var getTransactionStatus = function (transaction, transactionType) {
45
45
  if (transactionType === index_1.TransactionType.Cancel) {
46
46
  return {
47
- status: index_1.TransactionResult[+transaction.Transactions.Cancel.Status],
48
- transactionResultText: transaction.Transactions.Cancel.TransactionResultText,
47
+ status: index_1.TransactionResult[+transaction.transactions.cancel.status],
48
+ transactionResultText: transaction.transactions.cancel.transactionResultText,
49
49
  };
50
50
  }
51
51
  if (transactionType === index_1.TransactionType.Reserve) {
52
52
  return {
53
- status: index_1.TransactionResult[+transaction.Transactions.Reserve.Status],
54
- transactionResultText: transaction.Transactions.Reserve.TransactionResultText,
53
+ status: index_1.TransactionResult[+transaction.transactions.reserve.status],
54
+ transactionResultText: transaction.transactions.reserve.transactionResultText,
55
55
  };
56
56
  }
57
57
  if (transactionType === index_1.TransactionType.Purchase) {
58
58
  return {
59
- status: index_1.TransactionResult[+transaction.Transactions.Purchase.Status],
60
- transactionResultText: transaction.Transactions.Purchase.TransactionResultText,
59
+ status: index_1.TransactionResult[+transaction.transactions.purchase.status],
60
+ transactionResultText: transaction.transactions.purchase.transactionResultText,
61
61
  };
62
62
  }
63
63
  };
@@ -105,14 +105,14 @@ var transactionEvaluator = function (request, response, transactionName, transac
105
105
  // wether or not we want to log successful transactions 🤔
106
106
  return new BaseResponse_1.BaseResponse(undefined, true, 'Success', response.response);
107
107
  }
108
- logger_lib_1.default.debug({
108
+ logger_lib_1.default.info({
109
109
  transactionName: transactionName,
110
110
  plexoOrTransactionError: plexoOrTransactionError,
111
111
  errorCode: errorCode,
112
112
  errorMessage: errorMessage,
113
113
  });
114
- logger_lib_1.default.debug({ request: request }, 'Request --> ');
115
- logger_lib_1.default.debug({ response: response }, 'Response --> ');
114
+ logger_lib_1.default.info({ request: request }, 'Request --> ');
115
+ logger_lib_1.default.info({ response: response }, 'Response --> ');
116
116
  return new BaseResponse_1.BaseResponse(errorCode, false, errorMessage, response.response);
117
117
  };
118
118
  exports.Evaluator = { genericEvaluator: genericEvaluator, transactionEvaluator: transactionEvaluator };
@@ -2,13 +2,13 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  var pino_1 = require("pino");
4
4
  var config_1 = require("../config/config");
5
- var transport = false;
5
+ var transport = null;
6
6
  if (['LOCAL', 'TEST'].includes(config_1.config.env)) {
7
7
  transport = {
8
8
  target: 'pino-pretty',
9
9
  options: {
10
- colorize: true
11
- }
10
+ colorize: true,
11
+ },
12
12
  };
13
13
  }
14
14
  var logger = (0, pino_1.default)({
@@ -52,6 +52,7 @@ var axios_1 = require("axios");
52
52
  var logger_lib_1 = require("../lib/logger.lib");
53
53
  var config_1 = require("../config/config");
54
54
  var signatureHelper_1 = require("./helpers/signature/signatureHelper");
55
+ var utils_1 = require("../utils");
55
56
  var client = axios_1.default.create({
56
57
  baseURL: config_1.config.plexoUrl,
57
58
  });
@@ -66,7 +67,7 @@ var requestToPlexo = function (endpoint, request) { return __awaiter(void 0, voi
66
67
  request: request,
67
68
  };
68
69
  stateObject = {
69
- Fingerprint: '',
70
+ fingerprint: '',
70
71
  utcUnixTimeExpiration: Date.parse(new Date().toString()),
71
72
  object: object,
72
73
  };
@@ -79,7 +80,7 @@ var requestToPlexo = function (endpoint, request) { return __awaiter(void 0, voi
79
80
  case 2:
80
81
  data = (_a.sent()).data;
81
82
  logger_lib_1.default.debug({ data: data });
82
- return [2 /*return*/, signatureHelper_1.SignatureHelper.toCamelKeys(data.Object.Object)];
83
+ return [2 /*return*/, utils_1.caseUtils.toCamelKeys(data.Object.Object)];
83
84
  case 3:
84
85
  err_1 = _a.sent();
85
86
  logger_lib_1.default.error({ err: err_1 });
@@ -326,7 +327,7 @@ var PaymentGatewayClient = /** @class */ (function () {
326
327
  var verify;
327
328
  return __generator(this, function (_a) {
328
329
  switch (_a.label) {
329
- case 0: return [4 /*yield*/, signatureHelper_1.SignatureHelper.getPlexoSignature(serverSignedInstrumentCallback.Object.Fingerprint, serverSignedInstrumentCallback)];
330
+ case 0: return [4 /*yield*/, signatureHelper_1.SignatureHelper.getPlexoSignature(serverSignedInstrumentCallback.object.fingerprint, serverSignedInstrumentCallback)];
330
331
  case 1:
331
332
  verify = _a.sent();
332
333
  return [2 /*return*/, verify];
@@ -339,9 +340,7 @@ var PaymentGatewayClient = /** @class */ (function () {
339
340
  var verify;
340
341
  return __generator(this, function (_a) {
341
342
  switch (_a.label) {
342
- case 0:
343
- logger_lib_1.default.debug("SERVER SIGNED CALLBACK --> ".concat(JSON.stringify(serverSignedTransactionCallback)));
344
- return [4 /*yield*/, signatureHelper_1.SignatureHelper.getPlexoSignature(serverSignedTransactionCallback.Object.Fingerprint, serverSignedTransactionCallback)];
343
+ case 0: return [4 /*yield*/, signatureHelper_1.SignatureHelper.getPlexoSignature(serverSignedTransactionCallback.object.fingerprint, serverSignedTransactionCallback)];
345
344
  case 1:
346
345
  verify = _a.sent();
347
346
  return [2 /*return*/, verify];
@@ -184,10 +184,10 @@ var PaymentGatewayMock = /** @class */ (function () {
184
184
  return __generator(this, function (_a) {
185
185
  return [2 /*return*/, {
186
186
  resultCode: IndexSDK_1.ResultCodes.Ok,
187
- response: __assign(__assign({}, mocks_1.mocks.transactionMock), { Transactions: {
188
- Purchase: mocks_1.mocks.transactionMock.Transactions.Purchase,
189
- Reserve: mocks_1.mocks.transactionMock.Transactions.Reserve,
190
- Cancel: __assign(__assign({}, mocks_1.mocks.transactionMock.Transactions.Cancel), { ClientReferenceId: cancel.clientReferenceId }),
187
+ response: __assign(__assign({}, mocks_1.mocks.transactionMock), { transactions: {
188
+ purchase: mocks_1.mocks.transactionMock.transactions.purchase,
189
+ reserve: mocks_1.mocks.transactionMock.transactions.reserve,
190
+ cancel: __assign(__assign({}, mocks_1.mocks.transactionMock.transactions.cancel), { clientReferenceId: cancel.clientReferenceId }),
191
191
  } }),
192
192
  }];
193
193
  });
@@ -198,7 +198,7 @@ var PaymentGatewayMock = /** @class */ (function () {
198
198
  return __generator(this, function (_a) {
199
199
  return [2 /*return*/, {
200
200
  resultCode: IndexSDK_1.ResultCodes.Ok,
201
- response: __assign(__assign({}, mocks_1.mocks.transactionMock), { PaymentCode: __assign(__assign({}, mocks_1.mocks.transactionMock.PaymentCode), { code: request.code }) }),
201
+ response: __assign(__assign({}, mocks_1.mocks.transactionMock), { paymentCode: __assign(__assign({}, mocks_1.mocks.transactionMock.paymentCode), { code: request.code }) }),
202
202
  }];
203
203
  });
204
204
  });
@@ -208,10 +208,10 @@ var PaymentGatewayMock = /** @class */ (function () {
208
208
  return __generator(this, function (_a) {
209
209
  return [2 /*return*/, {
210
210
  resultCode: IndexSDK_1.ResultCodes.Ok,
211
- response: __assign(__assign({}, mocks_1.mocks.transactionMock), { Amount: payment.financialInclusion.billedAmount, Transactions: {
212
- Purchase: mocks_1.mocks.transactionMock.Transactions.Purchase,
213
- Reserve: __assign(__assign({}, mocks_1.mocks.transactionMock.Transactions.Reserve), { ClientReferenceId: payment.clientReferenceId, ExpirationUTC: payment.expirationUTC }),
214
- Cancel: mocks_1.mocks.transactionMock.Transactions.Cancel,
211
+ response: __assign(__assign({}, mocks_1.mocks.transactionMock), { amount: payment.financialInclusion.billedAmount, transactions: {
212
+ purchase: mocks_1.mocks.transactionMock.transactions.purchase,
213
+ reserve: __assign(__assign({}, mocks_1.mocks.transactionMock.transactions.reserve), { clientReferenceId: payment.clientReferenceId, expirationUTC: payment.expirationUTC }),
214
+ cancel: mocks_1.mocks.transactionMock.transactions.cancel,
215
215
  } }),
216
216
  }];
217
217
  });
@@ -262,10 +262,10 @@ var PaymentGatewayMock = /** @class */ (function () {
262
262
  return __generator(this, function (_a) {
263
263
  return [2 /*return*/, {
264
264
  resultCode: IndexSDK_1.ResultCodes.Ok,
265
- response: __assign(__assign({}, mocks_1.mocks.transactionMock), { Amount: payment.financialInclusion.billedAmount, Currency: __assign(__assign({}, mocks_1.mocks.transactionMock.Currency), { currencyId: payment.currencyId }), Transactions: {
266
- Purchase: __assign(__assign({}, mocks_1.mocks.transactionMock.Transactions.Purchase), { ClientReferenceId: payment.clientReferenceId }),
267
- Reserve: mocks_1.mocks.transactionMock.Transactions.Reserve,
268
- Cancel: mocks_1.mocks.transactionMock.Transactions.Cancel,
265
+ response: __assign(__assign({}, mocks_1.mocks.transactionMock), { amount: payment.financialInclusion.billedAmount, currency: __assign(__assign({}, mocks_1.mocks.transactionMock.currency), { currencyId: payment.currencyId }), transactions: {
266
+ purchase: __assign(__assign({}, mocks_1.mocks.transactionMock.transactions.purchase), { clientReferenceId: payment.clientReferenceId }),
267
+ reserve: mocks_1.mocks.transactionMock.transactions.reserve,
268
+ cancel: mocks_1.mocks.transactionMock.transactions.cancel,
269
269
  } }),
270
270
  }];
271
271
  });
@@ -276,7 +276,7 @@ var PaymentGatewayMock = /** @class */ (function () {
276
276
  return __generator(this, function (_a) {
277
277
  return [2 /*return*/, {
278
278
  resultCode: IndexSDK_1.ResultCodes.Ok,
279
- response: __assign(__assign({}, mocks_1.mocks.paymentInstrumentMock), { Issuer: __assign(__assign({}, mocks_1.mocks.paymentInstrumentMock.Issuer), { issuerId: request.issuerId }) }),
279
+ response: __assign(__assign({}, mocks_1.mocks.paymentInstrumentMock), { issuer: __assign(__assign({}, mocks_1.mocks.paymentInstrumentMock.issuer), { issuerId: request.issuerId }) }),
280
280
  }];
281
281
  });
282
282
  });
@@ -296,7 +296,7 @@ var PaymentGatewayMock = /** @class */ (function () {
296
296
  return __generator(this, function (_a) {
297
297
  return [2 /*return*/, {
298
298
  resultCode: IndexSDK_1.ResultCodes.Ok,
299
- response: __assign(__assign({}, mocks_1.mocks.instrumentCallbackMock), serverSignedInstrumentCallback.Object),
299
+ response: __assign(__assign({}, mocks_1.mocks.instrumentCallbackMock), serverSignedInstrumentCallback.object),
300
300
  }];
301
301
  });
302
302
  });
@@ -306,7 +306,7 @@ var PaymentGatewayMock = /** @class */ (function () {
306
306
  return __generator(this, function (_a) {
307
307
  return [2 /*return*/, {
308
308
  resultCode: IndexSDK_1.ResultCodes.Ok,
309
- response: __assign(__assign({}, mocks_1.mocks.transactionCallbackMock), serverSignedTransactionCallback.Object),
309
+ response: __assign(__assign({}, mocks_1.mocks.transactionCallbackMock), serverSignedTransactionCallback.object),
310
310
  }];
311
311
  });
312
312
  });
@@ -1,4 +1,5 @@
1
1
  export declare enum PlexoErrorEnum {
2
+ CommerceAlreadyExits = 25,
2
3
  ExceptionHandlingTransaction = 1200,
3
4
  PlexoAuthorizationError = 1201,
4
5
  InstrumentNotFound = 1202,
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.PlexoErrorEnum = void 0;
4
4
  var PlexoErrorEnum;
5
5
  (function (PlexoErrorEnum) {
6
+ PlexoErrorEnum[PlexoErrorEnum["CommerceAlreadyExits"] = 25] = "CommerceAlreadyExits";
6
7
  PlexoErrorEnum[PlexoErrorEnum["ExceptionHandlingTransaction"] = 1200] = "ExceptionHandlingTransaction";
7
8
  PlexoErrorEnum[PlexoErrorEnum["PlexoAuthorizationError"] = 1201] = "PlexoAuthorizationError";
8
9
  PlexoErrorEnum[PlexoErrorEnum["InstrumentNotFound"] = 1202] = "InstrumentNotFound";
@@ -6,5 +6,4 @@ export declare const SignatureHelper: {
6
6
  getSignatureFromPlexo: <T extends object>(objectToSign: GenericStateObject<T>) => Promise<GenericSignedObject<T>>;
7
7
  getSignatureFromCallback: (response: ServerResponse<InstrumentCallback | TransactionCallback>) => Promise<ServerResponse<ClientSignedResponse>>;
8
8
  getPlexoSignature: <T_1 extends object>(fingerprint: string, response: GenericSignedObject<T_1>) => Promise<ServerResponse<T_1>>;
9
- toCamelKeys: <T_2 extends object>(object: T_2) => T_2;
10
9
  };
@@ -41,53 +41,20 @@ var axios_1 = require("axios");
41
41
  var fs = require("fs");
42
42
  var pem = require("pem");
43
43
  var crypto_1 = require("crypto");
44
- var js_convert_case_1 = require("js-convert-case");
45
44
  var util_1 = require("util");
46
45
  var logger_lib_1 = require("../../../lib/logger.lib");
47
46
  var config_1 = require("../../../config/config");
48
47
  var __1 = require("../..");
48
+ var utils_1 = require("../../../utils");
49
49
  var stringifyWithFloats_1 = require("./stringifyWithFloats");
50
50
  var client = axios_1.default.create({
51
51
  baseURL: config_1.config.plexoUrl,
52
52
  });
53
- var specialWords = [
54
- { word: 'UtcUnixTimeExpiration', substitute: 'UTCUnixTimeExpiration' },
55
- { word: 'VatAmount', substitute: 'VATAmount' },
56
- ];
57
53
  var canonizeJson = function (object) {
58
54
  var cleanObject = deleteObjectUndefined(object);
59
55
  return sort(cleanObject);
60
56
  };
61
57
  exports.canonizeJson = canonizeJson;
62
- var toCamelKeys = function (object) {
63
- var parsedObject = (0, js_convert_case_1.camelKeys)(object, { recursive: true, recursiveInArray: true });
64
- return parsedObject;
65
- };
66
- function substituteWordRecursively(theParsedObject, word, substitute) {
67
- var deleteObject = function (obj, key) {
68
- delete obj[key];
69
- };
70
- if (typeof theParsedObject === 'object') {
71
- Object.keys(theParsedObject).map(function (key) {
72
- if (key === word) {
73
- Object.defineProperty(theParsedObject, substitute, Object.getOwnPropertyDescriptor(theParsedObject, word) || '');
74
- deleteObject(theParsedObject, word);
75
- }
76
- if (typeof theParsedObject[key] === 'object') {
77
- substituteWordRecursively(theParsedObject[key], word, substitute);
78
- }
79
- });
80
- }
81
- }
82
- var toPascalKeys = function (object) {
83
- var parsedObject = (0, js_convert_case_1.pascalKeys)(object, { recursive: true, recursiveInArray: true });
84
- specialWords.forEach(function (specialWord) {
85
- if (JSON.stringify(parsedObject).includes(specialWord.word)) {
86
- substituteWordRecursively(parsedObject, specialWord.word, specialWord.substitute);
87
- }
88
- });
89
- return parsedObject;
90
- };
91
58
  var sort = function (object) {
92
59
  if (Array.isArray(object)) {
93
60
  var newArray_1 = [];
@@ -197,16 +164,16 @@ var getSignatureFromPlexo = function (objectToSign) { return __awaiter(void 0, v
197
164
  .map(function (line) { return line.trim(); })
198
165
  .join('');
199
166
  signedObject = {
200
- Object: objectToSign,
201
- Signature: '',
167
+ object: objectToSign,
168
+ signature: '',
202
169
  };
203
170
  thumbnail = getFingerprint(stringifiedCert, 'sha1', 'base64', 'hex').toUpperCase();
204
- objectToSign.Fingerprint = thumbnail;
171
+ objectToSign.fingerprint = thumbnail;
205
172
  canonizedObject = (0, exports.canonizeJson)(objectToSign);
206
- objectoToPascalKeys = toPascalKeys(canonizedObject);
173
+ objectoToPascalKeys = utils_1.caseUtils.toPascalKeys(canonizedObject);
207
174
  signKey = generateSignature(objectoToPascalKeys, privateKey);
208
- signedObject.Signature = signKey;
209
- signedObject.Object = canonizedObject;
175
+ signedObject.signature = signKey;
176
+ signedObject.object = canonizedObject;
210
177
  return [2 /*return*/, signedObject];
211
178
  }
212
179
  });
@@ -217,11 +184,11 @@ var getSignatureFromCallback = function (response) { return __awaiter(void 0, vo
217
184
  switch (_a.label) {
218
185
  case 0:
219
186
  object = {
220
- client: response.response.Client,
187
+ client: response.response.client,
221
188
  request: response,
222
189
  };
223
190
  stateObject = {
224
- Fingerprint: '',
191
+ fingerprint: '',
225
192
  utcUnixTimeExpiration: Date.parse(new Date().toString()),
226
193
  object: object,
227
194
  };
@@ -230,15 +197,15 @@ var getSignatureFromCallback = function (response) { return __awaiter(void 0, vo
230
197
  objectSignature = _a.sent();
231
198
  serverResponse = {
232
199
  response: {
233
- Object: {
200
+ object: {
234
201
  object: {
235
- client: objectSignature.Object.object.client,
202
+ client: objectSignature.object.object.client,
236
203
  resultCode: response.resultCode,
237
204
  },
238
- Fingerprint: objectSignature.Object.Fingerprint,
239
- utcUnixTimeExpiration: objectSignature.Object.utcUnixTimeExpiration,
205
+ fingerprint: objectSignature.object.fingerprint,
206
+ utcUnixTimeExpiration: objectSignature.object.utcUnixTimeExpiration,
240
207
  },
241
- Signature: objectSignature.Signature,
208
+ signature: objectSignature.signature,
242
209
  },
243
210
  resultCode: response.resultCode,
244
211
  errorMessage: response.errorMessage,
@@ -263,7 +230,7 @@ var getPlexoKey = function (fingerprint) { return __awaiter(void 0, void 0, void
263
230
  });
264
231
  }); };
265
232
  var getPlexoSignature = function (fingerprint, response) { return __awaiter(void 0, void 0, void 0, function () {
266
- var serverResponse, plexoResponse, err_1, key, objectBuffer, verifySignature;
233
+ var serverResponse, plexoResponse, err_1, key, objectInPascalCase, objectBuffer, verifySignature;
267
234
  return __generator(this, function (_a) {
268
235
  switch (_a.label) {
269
236
  case 0:
@@ -276,19 +243,26 @@ var getPlexoSignature = function (fingerprint, response) { return __awaiter(void
276
243
  err_1 = _a.sent();
277
244
  logger_lib_1.default.error({ err: err_1 }, 'Error getting plexo certificate');
278
245
  serverResponse = {
279
- response: response.Object.object,
246
+ response: response.object.object,
280
247
  resultCode: __1.ResultCodes.InvalidFingerprint,
281
248
  errorMessage: err_1,
282
249
  };
283
250
  return [2 /*return*/, serverResponse];
284
251
  case 3:
252
+ logger_lib_1.default.debug({
253
+ plexoResponse: plexoResponse
254
+ });
285
255
  key = "-----BEGIN CERTIFICATE-----\n".concat(plexoResponse.Object.Object.Response.Key, "\n-----END CERTIFICATE-----");
286
- objectBuffer = new util_1.TextEncoder().encode((0, stringifyWithFloats_1.stringifyAmountsWithFloats)(response.Object));
256
+ objectInPascalCase = utils_1.caseUtils.toPascalKeys((0, exports.canonizeJson)(response.object));
257
+ objectBuffer = new util_1.TextEncoder().encode((0, stringifyWithFloats_1.stringifyAmountsWithFloats)(objectInPascalCase));
287
258
  verifySignature = (0, crypto_1.createVerify)('SHA512')
288
259
  .update(objectBuffer)
289
- .verify(key, response.Signature, 'base64');
260
+ .verify(key, response.signature);
261
+ logger_lib_1.default.debug({
262
+ verifySignature: verifySignature,
263
+ });
290
264
  serverResponse = {
291
- response: response.Object.object,
265
+ response: response.object.object,
292
266
  resultCode: verifySignature ? __1.ResultCodes.Ok : __1.ResultCodes.InvalidSignature,
293
267
  errorMessage: verifySignature ? "Signature do not match" : 'Success',
294
268
  };
@@ -301,5 +275,4 @@ exports.SignatureHelper = {
301
275
  getSignatureFromPlexo: getSignatureFromPlexo,
302
276
  getSignatureFromCallback: getSignatureFromCallback,
303
277
  getPlexoSignature: getPlexoSignature,
304
- toCamelKeys: toCamelKeys,
305
278
  };
@@ -49,16 +49,16 @@ var issuerMock = {
49
49
  fields: [fieldMock],
50
50
  };
51
51
  var paymentInstrumentMock = {
52
- InstrumentToken: 'token',
53
- Name: 'mockedInstrument',
54
- Issuer: issuerMock,
55
- SupportedCurrencies: [currencyMock],
56
- Status: IndexSDK_1.CardStatus.Ok,
57
- InstrumentExpirationUTC: 1919276061,
58
- CreditLimits: [amountLimitMock],
59
- AdditionalRequirements: [timeLimitMock],
60
- InstrumentInformation: null,
61
- SessionCreationId: 'MockedId',
52
+ instrumentToken: 'token',
53
+ name: 'mockedInstrument',
54
+ issuer: issuerMock,
55
+ supportedCurrencies: [currencyMock],
56
+ status: IndexSDK_1.CardStatus.Ok,
57
+ instrumentExpirationUTC: 1919276061,
58
+ creditLimits: [amountLimitMock],
59
+ additionalRequirements: [timeLimitMock],
60
+ instrumentInformation: null,
61
+ sessionCreationId: 'MockedId',
62
62
  };
63
63
  var financialInclusionMock = {
64
64
  isApplied: true,
@@ -66,14 +66,14 @@ var financialInclusionMock = {
66
66
  lawNumber: IndexSDK_1.InclusionType.Law17934,
67
67
  };
68
68
  var transactionInfoMock = {
69
- ClientReferenceId: (0, crypto_1.randomUUID)(),
70
- ClientMetadata: 'metadata',
71
- Status: IndexSDK_1.TransactionResult.Ok,
72
- TransactionCode: 1900,
73
- TransactionResultText: 'OK',
74
- ExecutionDateUTC: 1919276061,
75
- Authorization: 'AuthorizationMock',
76
- Ticket: 'TicketMock',
69
+ clientReferenceId: (0, crypto_1.randomUUID)(),
70
+ clientMetadata: 'metadata',
71
+ status: IndexSDK_1.TransactionResult.Ok,
72
+ transactionCode: 1900,
73
+ transactionResultText: 'OK',
74
+ executionDateUTC: 1919276061,
75
+ authorization: 'AuthorizationMock',
76
+ ticket: 'TicketMock',
77
77
  };
78
78
  var commerceMock = {
79
79
  commerceId: 1891,
@@ -97,27 +97,27 @@ var sessionMock = {
97
97
  expirationUTC: 1919276061,
98
98
  };
99
99
  var transactionMock = {
100
- TransactionId: (0, crypto_1.randomUUID)(),
101
- Commerce: commerceMock,
102
- InstrumentToken: 'Token',
103
- InstrumentName: 'MasterMock',
104
- Issuer: issuerMock,
105
- Amount: 100,
106
- Installments: 1,
107
- Currency: currencyMock,
108
- IsAnonymous: true,
109
- CurrentState: IndexSDK_1.TransactionType.Purchase,
110
- InvoiceNumber: '1',
111
- FinancialInclusion: financialInclusionMock,
112
- Transactions: {
113
- Purchase: transactionInfoMock,
114
- Reserve: transactionInfoMock,
115
- Cancel: transactionInfoMock,
100
+ transactionId: (0, crypto_1.randomUUID)(),
101
+ commerce: commerceMock,
102
+ instrumentToken: 'Token',
103
+ instrumentName: 'MasterMock',
104
+ issuer: issuerMock,
105
+ amount: 100,
106
+ installments: 1,
107
+ currency: currencyMock,
108
+ isAnonymous: true,
109
+ currentState: IndexSDK_1.TransactionType.Purchase,
110
+ invoiceNumber: '1',
111
+ financialInclusion: financialInclusionMock,
112
+ transactions: {
113
+ purchase: transactionInfoMock,
114
+ reserve: transactionInfoMock,
115
+ cancel: transactionInfoMock,
116
116
  },
117
- FieldInformation: [],
118
- IsAsyncPayment: false,
119
- PaymentCode: paymentCodeMock,
120
- UtcUnixTimeExpiration: 1919276061,
117
+ fieldInformation: [],
118
+ isAsyncPayment: false,
119
+ paymentCode: paymentCodeMock,
120
+ utcUnixTimeExpiration: 1919276061,
121
121
  };
122
122
  var transactionCursorMock = {
123
123
  start: 0,
@@ -138,9 +138,9 @@ var issuerProcessorMock = {
138
138
  paymentProcessors: [paymentProcessorMock],
139
139
  };
140
140
  var clientSignedResponseMock = {
141
- Signature: 'signature',
142
- Object: {
143
- Fingerprint: 'fingerprint',
141
+ signature: 'signature',
142
+ object: {
143
+ fingerprint: 'fingerprint',
144
144
  utcUnixTimeExpiration: 1919276061,
145
145
  object: {
146
146
  client: 'PlexoMock',
@@ -148,13 +148,13 @@ var clientSignedResponseMock = {
148
148
  },
149
149
  },
150
150
  };
151
- var transactionCallbackMock = __assign(__assign({}, transactionMock), { Client: 'PlexoMock' });
151
+ var transactionCallbackMock = __assign(__assign({}, transactionMock), { client: 'PlexoMock' });
152
152
  var instrumentCallbackMock = {
153
- Action: IndexSDK_1.ActionType.RegisterInstrument,
154
- Client: 'PlexoMock',
155
- SessionId: (0, crypto_1.randomUUID)(),
156
- OptionalMetadata: 'metadata',
157
- PaymentInstrument: paymentInstrumentMock,
153
+ action: IndexSDK_1.ActionType.RegisterInstrument,
154
+ client: 'PlexoMock',
155
+ sessionId: (0, crypto_1.randomUUID)(),
156
+ optionalMetadata: 'metadata',
157
+ paymentInstrument: paymentInstrumentMock,
158
158
  };
159
159
  exports.mocks = {
160
160
  currencyMock: currencyMock,
@@ -1,6 +1,6 @@
1
1
  import { GenericStateObject } from './GenericStateObject';
2
2
  export declare class GenericSignedObject<T> {
3
- Object: GenericStateObject<T>;
4
- Signature: string;
5
- constructor(Object: GenericStateObject<T>, Signature: string);
3
+ object: GenericStateObject<T>;
4
+ signature: string;
5
+ constructor(object: GenericStateObject<T>, signature: string);
6
6
  }
@@ -2,9 +2,9 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.GenericSignedObject = void 0;
4
4
  var GenericSignedObject = /** @class */ (function () {
5
- function GenericSignedObject(Object, Signature) {
6
- this.Object = Object;
7
- this.Signature = Signature;
5
+ function GenericSignedObject(object, signature) {
6
+ this.object = object;
7
+ this.signature = signature;
8
8
  }
9
9
  return GenericSignedObject;
10
10
  }());
@@ -1,5 +1,5 @@
1
1
  import { StateObject } from './StateObject';
2
2
  export declare class GenericStateObject<T> extends StateObject {
3
3
  object: T;
4
- constructor(Object: T, Fingerprint: string, UTCUnixTimeExpiration: number);
4
+ constructor(object: T, fingerprint: string, utcUnixTimeExpiration: number);
5
5
  }
@@ -19,9 +19,9 @@ exports.GenericStateObject = void 0;
19
19
  var StateObject_1 = require("./StateObject");
20
20
  var GenericStateObject = /** @class */ (function (_super) {
21
21
  __extends(GenericStateObject, _super);
22
- function GenericStateObject(Object, Fingerprint, UTCUnixTimeExpiration) {
23
- var _this = _super.call(this, Fingerprint, UTCUnixTimeExpiration) || this;
24
- _this.object = Object;
22
+ function GenericStateObject(object, fingerprint, utcUnixTimeExpiration) {
23
+ var _this = _super.call(this, fingerprint, utcUnixTimeExpiration) || this;
24
+ _this.object = object;
25
25
  return _this;
26
26
  }
27
27
  return GenericStateObject;
@@ -1,9 +1,9 @@
1
- import { PaymentInstrument as PaymentInstrumentModel } from '..';
1
+ import { PaymentInstrument } from '..';
2
2
  import { ActionType } from './ActionType';
3
3
  import { InstrumentWithMetadata } from './InstrumentWithMetadata';
4
4
  export declare class InstrumentCallback extends InstrumentWithMetadata {
5
- SessionId: string;
6
- Client: string;
7
- Action: ActionType;
8
- constructor(SessionId: string, Client: string, Action: ActionType, PaymentInstrument: PaymentInstrumentModel, OptionalMetadata: string);
5
+ sessionId: string;
6
+ client: string;
7
+ action: ActionType;
8
+ constructor(sessionId: string, client: string, action: ActionType, paymentInstrument: PaymentInstrument, optionalMetadata: string);
9
9
  }
@@ -19,11 +19,11 @@ exports.InstrumentCallback = void 0;
19
19
  var InstrumentWithMetadata_1 = require("./InstrumentWithMetadata");
20
20
  var InstrumentCallback = /** @class */ (function (_super) {
21
21
  __extends(InstrumentCallback, _super);
22
- function InstrumentCallback(SessionId, Client, Action, PaymentInstrument, OptionalMetadata) {
23
- var _this = _super.call(this, PaymentInstrument, OptionalMetadata) || this;
24
- _this.SessionId = SessionId;
25
- _this.Client = Client;
26
- _this.Action = Action;
22
+ function InstrumentCallback(sessionId, client, action, paymentInstrument, optionalMetadata) {
23
+ var _this = _super.call(this, paymentInstrument, optionalMetadata) || this;
24
+ _this.sessionId = sessionId;
25
+ _this.client = client;
26
+ _this.action = action;
27
27
  return _this;
28
28
  }
29
29
  return InstrumentCallback;
@@ -1,6 +1,6 @@
1
1
  import { PaymentInstrument } from './PaymentInstrument';
2
2
  export declare class InstrumentWithMetadata {
3
- PaymentInstrument: PaymentInstrument;
4
- OptionalMetadata: string;
5
- constructor(InstrumentPayment: PaymentInstrument, OptionalMetadata: string);
3
+ paymentInstrument: PaymentInstrument;
4
+ optionalMetadata: string;
5
+ constructor(paymentInstrument: PaymentInstrument, optionalMetadata: string);
6
6
  }
@@ -2,9 +2,9 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.InstrumentWithMetadata = void 0;
4
4
  var InstrumentWithMetadata = /** @class */ (function () {
5
- function InstrumentWithMetadata(InstrumentPayment, OptionalMetadata) {
6
- this.PaymentInstrument = InstrumentPayment;
7
- this.OptionalMetadata = OptionalMetadata;
5
+ function InstrumentWithMetadata(paymentInstrument, optionalMetadata) {
6
+ this.paymentInstrument = paymentInstrument;
7
+ this.optionalMetadata = optionalMetadata;
8
8
  }
9
9
  return InstrumentWithMetadata;
10
10
  }());
@@ -4,15 +4,15 @@ import { Currency } from './Currency';
4
4
  import { IssuerInfo } from './IssuerInfo';
5
5
  import { TimeLimit } from './TimeLimit';
6
6
  export declare type PaymentInstrument = {
7
- InstrumentToken: string;
8
- Name: string;
9
- Issuer: IssuerInfo;
10
- SupportedCurrencies: Currency[];
11
- Status: CardStatus;
12
- InstrumentExpirationUTC: number;
13
- AnonInstrumentUsageTimeLimit?: number;
14
- CreditLimits: AmountLimit[];
15
- AdditionalRequirements: TimeLimit[];
16
- InstrumentInformation: any;
17
- SessionCreationId: string;
7
+ instrumentToken: string;
8
+ name: string;
9
+ issuer: IssuerInfo;
10
+ supportedCurrencies: Currency[];
11
+ status: CardStatus;
12
+ instrumentExpirationUTC: number;
13
+ anonInstrumentUsageTimeLimit?: number;
14
+ creditLimits: AmountLimit[];
15
+ additionalRequirements: TimeLimit[];
16
+ instrumentInformation: any;
17
+ sessionCreationId: string;
18
18
  };
@@ -1,5 +1,5 @@
1
1
  export declare class StateObject {
2
- Fingerprint: string;
2
+ fingerprint: string;
3
3
  utcUnixTimeExpiration: number;
4
- constructor(Fingerprint: string, utcUnixTimeExpiration: number);
4
+ constructor(fingerprint: string, utcUnixTimeExpiration: number);
5
5
  }
@@ -2,8 +2,8 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.StateObject = void 0;
4
4
  var StateObject = /** @class */ (function () {
5
- function StateObject(Fingerprint, utcUnixTimeExpiration) {
6
- this.Fingerprint = Fingerprint;
5
+ function StateObject(fingerprint, utcUnixTimeExpiration) {
6
+ this.fingerprint = fingerprint;
7
7
  this.utcUnixTimeExpiration = utcUnixTimeExpiration;
8
8
  }
9
9
  return StateObject;
@@ -1,31 +1,31 @@
1
- import { PaymentCode as PaymentCodeEnum } from './CodeAction';
2
- import { Commerce as CommerceModel } from './Commerce';
3
- import { Currency as CurrencyEnum } from './Currency';
1
+ import { PaymentCode } from './CodeAction';
2
+ import { Commerce } from './Commerce';
3
+ import { Currency } from './Currency';
4
4
  import { FinancialInclusionResult } from './FinancialInclusionResult';
5
5
  import { IssuerInfo } from './IssuerInfo';
6
6
  import { TransactionInfo } from './TransactionInfo';
7
7
  import { TransactionType } from './TransactionType';
8
8
  export declare class Transaction {
9
- TransactionId: string;
10
- Commerce: CommerceModel;
11
- InstrumentToken: string;
12
- InstrumentName: string;
13
- Issuer: IssuerInfo;
14
- Amount: number;
15
- Installments: number;
16
- Currency: CurrencyEnum;
17
- IsAnonymous: boolean;
18
- CurrentState: TransactionType;
19
- InvoiceNumber: string;
20
- FinancialInclusion: FinancialInclusionResult;
21
- Transactions: {
22
- Purchase: TransactionInfo;
23
- Cancel: TransactionInfo;
24
- Reserve: TransactionInfo;
9
+ transactionId: string;
10
+ commerce: Commerce;
11
+ instrumentToken: string;
12
+ instrumentName: string;
13
+ issuer: IssuerInfo;
14
+ amount: number;
15
+ installments: number;
16
+ currency: Currency;
17
+ isAnonymous: boolean;
18
+ currentState: TransactionType;
19
+ invoiceNumber: string;
20
+ financialInclusion: FinancialInclusionResult;
21
+ transactions: {
22
+ purchase: TransactionInfo;
23
+ cancel: TransactionInfo;
24
+ reserve: TransactionInfo;
25
25
  };
26
- FieldInformation: any;
27
- IsAsyncPayment: boolean;
28
- PaymentCode: PaymentCodeEnum;
29
- UtcUnixTimeExpiration: number;
30
- constructor(TransactionId: string, Commerce: CommerceModel, InstrumentToken: string, InstrumentName: string, Issuer: IssuerInfo, Amount: number, Installments: number, Currency: CurrencyEnum, IsAnonymous: boolean, CurrentState: TransactionType, InvoiceNumber: string, FinancialInclusion: FinancialInclusionResult, Transactions: any, FieldInformation: any, IsAsyncPayment: boolean, PaymentCode: PaymentCodeEnum, UtcUnixTimeExpiration: number);
26
+ fieldInformation: any;
27
+ isAsyncPayment: boolean;
28
+ paymentCode: PaymentCode;
29
+ utcUnixTimeExpiration: number;
30
+ constructor(transactionId: string, commerce: Commerce, instrumentToken: string, instrumentName: string, issuer: IssuerInfo, amount: number, installments: number, currency: Currency, isAnonymous: boolean, currentState: TransactionType, invoiceNumber: string, financialInclusion: FinancialInclusionResult, transactions: any, fieldInformation: any, isAsyncPayment: boolean, paymentCode: PaymentCode, utcUnixTimeExpiration: number);
31
31
  }
@@ -2,24 +2,24 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Transaction = void 0;
4
4
  var Transaction = /** @class */ (function () {
5
- function Transaction(TransactionId, Commerce, InstrumentToken, InstrumentName, Issuer, Amount, Installments, Currency, IsAnonymous, CurrentState, InvoiceNumber, FinancialInclusion, Transactions, FieldInformation, IsAsyncPayment, PaymentCode, UtcUnixTimeExpiration) {
6
- this.TransactionId = TransactionId;
7
- this.Commerce = Commerce;
8
- this.InstrumentToken = InstrumentToken;
9
- this.InstrumentName = InstrumentName;
10
- this.Issuer = Issuer;
11
- this.Amount = Amount;
12
- this.Installments = Installments;
13
- this.Currency = Currency;
14
- this.IsAnonymous = IsAnonymous;
15
- this.CurrentState = CurrentState;
16
- this.InvoiceNumber = InvoiceNumber;
17
- this.FinancialInclusion = FinancialInclusion;
18
- this.Transactions = Transactions;
19
- this.FieldInformation = FieldInformation;
20
- this.IsAsyncPayment = IsAsyncPayment;
21
- this.PaymentCode = PaymentCode;
22
- this.UtcUnixTimeExpiration = UtcUnixTimeExpiration;
5
+ function Transaction(transactionId, commerce, instrumentToken, instrumentName, issuer, amount, installments, currency, isAnonymous, currentState, invoiceNumber, financialInclusion, transactions, fieldInformation, isAsyncPayment, paymentCode, utcUnixTimeExpiration) {
6
+ this.transactionId = transactionId;
7
+ this.commerce = commerce;
8
+ this.instrumentToken = instrumentToken;
9
+ this.instrumentName = instrumentName;
10
+ this.issuer = issuer;
11
+ this.amount = amount;
12
+ this.installments = installments;
13
+ this.currency = currency;
14
+ this.isAnonymous = isAnonymous;
15
+ this.currentState = currentState;
16
+ this.invoiceNumber = invoiceNumber;
17
+ this.financialInclusion = financialInclusion;
18
+ this.transactions = transactions;
19
+ this.fieldInformation = fieldInformation;
20
+ this.isAsyncPayment = isAsyncPayment;
21
+ this.paymentCode = paymentCode;
22
+ this.utcUnixTimeExpiration = utcUnixTimeExpiration;
23
23
  }
24
24
  return Transaction;
25
25
  }());
@@ -1,7 +1,7 @@
1
- import { Commerce as CommerceModel, Currency as CurrencyModel, FinancialInclusionResult as FinancialInclusionResultModel, IssuerInfo as IssuerInfoModel, TransactionType as TransactionTypeModel } from '..';
2
- import { PaymentCode as PaymentCodeModel } from './CodeAction';
1
+ import { Commerce, Currency, FinancialInclusionResult, IssuerInfo, TransactionType } from '..';
2
+ import { PaymentCode } from './CodeAction';
3
3
  import { Transaction } from './Transaction';
4
4
  export declare class TransactionCallback extends Transaction {
5
- Client: string;
6
- constructor(Client: string, TransactionId: string, Commerce: CommerceModel, InstrumentToken: string, InstrumentName: string, Issuer: IssuerInfoModel, Amount: number, Installments: number, Currency: CurrencyModel, IsAnonymous: boolean, CurrentState: TransactionTypeModel, InvoiceNumber: string, FinancialInclusion: FinancialInclusionResultModel, Transactions: any, FieldInformation: any, IsAsyncPayment: boolean, PaymentCode: PaymentCodeModel, UTCUnixTimeExpiration: number);
5
+ client: string;
6
+ constructor(client: string, transactionId: string, commerce: Commerce, instrumentToken: string, instrumentName: string, issuer: IssuerInfo, amount: number, installments: number, currency: Currency, isAnonymous: boolean, currentState: TransactionType, invoiceNumber: string, financialInclusion: FinancialInclusionResult, transactions: any, fieldInformation: any, isAsyncPayment: boolean, paymentCode: PaymentCode, utcUnixTimeExpiration: number);
7
7
  }
@@ -19,9 +19,9 @@ exports.TransactionCallback = void 0;
19
19
  var Transaction_1 = require("./Transaction");
20
20
  var TransactionCallback = /** @class */ (function (_super) {
21
21
  __extends(TransactionCallback, _super);
22
- function TransactionCallback(Client, TransactionId, Commerce, InstrumentToken, InstrumentName, Issuer, Amount, Installments, Currency, IsAnonymous, CurrentState, InvoiceNumber, FinancialInclusion, Transactions, FieldInformation, IsAsyncPayment, PaymentCode, UTCUnixTimeExpiration) {
23
- var _this = _super.call(this, TransactionId, Commerce, InstrumentToken, InstrumentName, Issuer, Amount, Installments, Currency, IsAnonymous, CurrentState, InvoiceNumber, FinancialInclusion, Transactions, FieldInformation, IsAsyncPayment, PaymentCode, UTCUnixTimeExpiration) || this;
24
- _this.Client = Client;
22
+ function TransactionCallback(client, transactionId, commerce, instrumentToken, instrumentName, issuer, amount, installments, currency, isAnonymous, currentState, invoiceNumber, financialInclusion, transactions, fieldInformation, isAsyncPayment, paymentCode, utcUnixTimeExpiration) {
23
+ var _this = _super.call(this, transactionId, commerce, instrumentToken, instrumentName, issuer, amount, installments, currency, isAnonymous, currentState, invoiceNumber, financialInclusion, transactions, fieldInformation, isAsyncPayment, paymentCode, utcUnixTimeExpiration) || this;
24
+ _this.client = client;
25
25
  return _this;
26
26
  }
27
27
  return TransactionCallback;
@@ -1,12 +1,12 @@
1
1
  import { TransactionResult } from './TransactionResult';
2
2
  export declare type TransactionInfo = {
3
- ClientReferenceId: string;
4
- ClientMetadata: string;
5
- Status: TransactionResult;
6
- TransactionCode: number;
7
- TransactionResultText: string;
8
- ExecutionDateUTC: number;
9
- Authorization: string;
10
- Ticket: string;
11
- ExpirationUTC?: number;
3
+ clientReferenceId: string;
4
+ clientMetadata: string;
5
+ status: TransactionResult;
6
+ transactionCode: number;
7
+ transactionResultText: string;
8
+ executionDateUTC: number;
9
+ authorization: string;
10
+ ticket: string;
11
+ expirationUTC?: number;
12
12
  };
@@ -0,0 +1,4 @@
1
+ export declare const caseUtils: {
2
+ toCamelKeys: <T extends object>(object: T) => T;
3
+ toPascalKeys: <T_1 extends object>(object: T_1) => T_1;
4
+ };
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.caseUtils = void 0;
4
+ var js_convert_case_1 = require("js-convert-case");
5
+ var specialWords = [
6
+ { word: 'UtcUnixTimeExpiration', substitute: 'UTCUnixTimeExpiration' },
7
+ { word: 'UtcunixTimeExpiration', substitute: 'UTCUnixTimeExpiration' },
8
+ { word: 'VatAmount', substitute: 'VATAmount' },
9
+ { word: 'InstrumentExpirationUtc', substitute: 'InstrumentExpirationUTC' },
10
+ ];
11
+ var toCamelKeys = function (object) {
12
+ var parsedObject = (0, js_convert_case_1.camelKeys)(object, { recursive: true, recursiveInArray: true });
13
+ return parsedObject;
14
+ };
15
+ var substituteWordRecursively = function (theParsedObject, word, substitute) {
16
+ var deleteObject = function (obj, key) {
17
+ delete obj[key];
18
+ };
19
+ if (typeof theParsedObject === 'object') {
20
+ Object.keys(theParsedObject).map(function (key) {
21
+ if (key === word) {
22
+ Object.defineProperty(theParsedObject, substitute, Object.getOwnPropertyDescriptor(theParsedObject, word) || '');
23
+ deleteObject(theParsedObject, word);
24
+ }
25
+ if (typeof theParsedObject[key] === 'object') {
26
+ substituteWordRecursively(theParsedObject[key], word, substitute);
27
+ }
28
+ });
29
+ }
30
+ };
31
+ var toPascalKeys = function (object) {
32
+ var parsedObject = (0, js_convert_case_1.pascalKeys)(object, { recursive: true, recursiveInArray: true });
33
+ specialWords.forEach(function (specialWord) {
34
+ if (JSON.stringify(parsedObject).includes(specialWord.word)) {
35
+ substituteWordRecursively(parsedObject, specialWord.word, specialWord.substitute);
36
+ }
37
+ });
38
+ return parsedObject;
39
+ };
40
+ exports.caseUtils = {
41
+ toCamelKeys: toCamelKeys,
42
+ toPascalKeys: toPascalKeys,
43
+ };
@@ -0,0 +1 @@
1
+ export { caseUtils } from './case.util';
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.caseUtils = void 0;
4
+ var case_util_1 = require("./case.util");
5
+ Object.defineProperty(exports, "caseUtils", { enumerable: true, get: function () { return case_util_1.caseUtils; } });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@houlak/plexo-sdk",
3
- "version": "0.1.15",
3
+ "version": "0.1.17",
4
4
  "description": "Node SDK for Plexo payment services",
5
5
  "main": "lib/index.js",
6
6
  "types": "lib/index.d.ts",