@houlak/plexo-sdk 0.1.36 → 0.1.38

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.
@@ -1,6 +1,6 @@
1
1
  import { ClientSignedResponse, GenericSignedObject, GenericStateObject, InstrumentCallback, ServerResponse, TransactionCallback } from '../..';
2
2
  import { Certificate } from '../../types/signatureHelper.type';
3
- export declare const canonizeJson: <T>(object: T) => T;
3
+ export declare const canonizeJson: <T>(object: T, keysToSkip?: string[]) => T;
4
4
  export declare const SignatureHelper: {
5
5
  getCertificate: () => Promise<Certificate>;
6
6
  getSignatureFromPlexo: <T extends object>(objectToSign: GenericStateObject<T>) => Promise<GenericSignedObject<T>>;
@@ -50,8 +50,9 @@ var stringifyWithFloats_1 = require("./stringifyWithFloats");
50
50
  var client = axios_1.default.create({
51
51
  baseURL: config_1.config.plexoUrl,
52
52
  });
53
- var canonizeJson = function (object) {
54
- var cleanObject = deleteObjectUndefined(object);
53
+ var canonizeJson = function (object, keysToSkip) {
54
+ var cleanObject = deleteObjectUndefined(object, keysToSkip);
55
+ logger_lib_1.default.info(cleanObject, 'Clean object');
55
56
  return sort(cleanObject);
56
57
  };
57
58
  exports.canonizeJson = canonizeJson;
@@ -72,24 +73,27 @@ var sort = function (object) {
72
73
  };
73
74
  // TODO:
74
75
  // const parseDateToISO = (object: any) => {}
75
- var deleteObjectUndefined = function (object) {
76
+ var deleteObjectUndefined = function (object, keysToSkip) {
76
77
  if (Array.isArray(object)) {
77
78
  object = object
78
79
  .filter(function (item) { return item !== undefined || !item.length; })
79
80
  .map(function (item) {
80
81
  return (item && typeof item === 'object') || Array.isArray(item)
81
- ? deleteObjectUndefined(item)
82
+ ? deleteObjectUndefined(item, keysToSkip)
82
83
  : null;
83
84
  });
84
85
  return;
85
86
  }
86
87
  if (object && typeof object === 'object') {
87
88
  Object.keys(object).map(function (key) {
89
+ if (keysToSkip === null || keysToSkip === void 0 ? void 0 : keysToSkip.includes(key)) {
90
+ return;
91
+ }
88
92
  if (object[key] && typeof object[key] === 'object') {
89
93
  if (Object.entries(object[key]).length === 0) {
90
94
  delete object[key];
91
95
  }
92
- deleteObjectUndefined(object[key]);
96
+ deleteObjectUndefined(object[key], keysToSkip);
93
97
  }
94
98
  if ((!object[key] && object[key] !== 0 && typeof object[key] !== 'boolean') ||
95
99
  (!object[key].length && Array.isArray(object[key]))) {
@@ -97,7 +101,7 @@ var deleteObjectUndefined = function (object) {
97
101
  return;
98
102
  }
99
103
  if (Array.isArray(object[key]) && object[key].length) {
100
- deleteObjectUndefined(object[key]);
104
+ deleteObjectUndefined(object[key], keysToSkip);
101
105
  }
102
106
  });
103
107
  }
@@ -234,7 +238,7 @@ var getPlexoKey = function (fingerprint) { return __awaiter(void 0, void 0, void
234
238
  });
235
239
  }); };
236
240
  var getPlexoSignature = function (fingerprint, response) { return __awaiter(void 0, void 0, void 0, function () {
237
- var serverResponse, plexoResponse, err_1, tempKey, certificate, key, canonizedObject, objectInPascalCase, objectSorted, objectBuffer, verifySignature;
241
+ var serverResponse, plexoResponse, err_1, certificate, key, canonizedObject, objectInPascalCase, objectSorted, objectBuffer, verifySignature;
238
242
  return __generator(this, function (_a) {
239
243
  switch (_a.label) {
240
244
  case 0:
@@ -245,7 +249,7 @@ var getPlexoSignature = function (fingerprint, response) { return __awaiter(void
245
249
  return [3 /*break*/, 3];
246
250
  case 2:
247
251
  err_1 = _a.sent();
248
- logger_lib_1.default.error({ err: err_1 }, 'Error getting plexo certificate');
252
+ logger_lib_1.default.error({ err: err_1 }, 'Error getting plexo public key');
249
253
  serverResponse = {
250
254
  response: response.object.object,
251
255
  resultCode: __1.ResultCodes.InvalidFingerprint,
@@ -257,11 +261,12 @@ var getPlexoSignature = function (fingerprint, response) { return __awaiter(void
257
261
  // ${plexoResponse.Object.Object.Response.Key}
258
262
  // -----END CERTIFICATE-----`)
259
263
  logger_lib_1.default.info(plexoResponse.Object.Object.Response.Key, 'plexo');
260
- tempKey = "-----BEGIN CERTIFICATE-----\n".concat(plexoResponse.Object.Object.Response.Key, "\n-----END CERTIFICATE-----");
261
- certificate = new crypto_1.X509Certificate(tempKey);
262
- key = certificate.publicKey.export({ type: 'spki', format: 'pem' });
264
+ certificate = new crypto_1.X509Certificate(Buffer.from(plexoResponse.Object.Object.Response.Key, 'base64'));
265
+ key = certificate.publicKey.export({ format: 'pem', type: 'pkcs1' });
263
266
  logger_lib_1.default.info(key, 'Generated public key');
264
- canonizedObject = (0, exports.canonizeJson)(response.object);
267
+ logger_lib_1.default.info(response.object, 'Raw object');
268
+ canonizedObject = (0, exports.canonizeJson)(response.object, ['CreditLimits']);
269
+ logger_lib_1.default.info(canonizedObject, 'Objeto canonizado');
265
270
  objectInPascalCase = utils_1.caseUtils.toPascalKeys(canonizedObject);
266
271
  objectSorted = sort(objectInPascalCase);
267
272
  objectBuffer = Buffer.from(JSON.stringify(objectSorted));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@houlak/plexo-sdk",
3
- "version": "0.1.36",
3
+ "version": "0.1.38",
4
4
  "description": "Node SDK for Plexo payment services",
5
5
  "main": "lib/index.js",
6
6
  "types": "lib/index.d.ts",