@houlak/plexo-sdk 0.1.36 → 0.1.37

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,8 @@ 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
55
  return sort(cleanObject);
56
56
  };
57
57
  exports.canonizeJson = canonizeJson;
@@ -72,24 +72,27 @@ var sort = function (object) {
72
72
  };
73
73
  // TODO:
74
74
  // const parseDateToISO = (object: any) => {}
75
- var deleteObjectUndefined = function (object) {
75
+ var deleteObjectUndefined = function (object, keysToSkip) {
76
76
  if (Array.isArray(object)) {
77
77
  object = object
78
78
  .filter(function (item) { return item !== undefined || !item.length; })
79
79
  .map(function (item) {
80
80
  return (item && typeof item === 'object') || Array.isArray(item)
81
- ? deleteObjectUndefined(item)
81
+ ? deleteObjectUndefined(item, keysToSkip)
82
82
  : null;
83
83
  });
84
84
  return;
85
85
  }
86
86
  if (object && typeof object === 'object') {
87
87
  Object.keys(object).map(function (key) {
88
+ if (keysToSkip && keysToSkip.includes(key)) {
89
+ return;
90
+ }
88
91
  if (object[key] && typeof object[key] === 'object') {
89
92
  if (Object.entries(object[key]).length === 0) {
90
93
  delete object[key];
91
94
  }
92
- deleteObjectUndefined(object[key]);
95
+ deleteObjectUndefined(object[key], keysToSkip);
93
96
  }
94
97
  if ((!object[key] && object[key] !== 0 && typeof object[key] !== 'boolean') ||
95
98
  (!object[key].length && Array.isArray(object[key]))) {
@@ -97,7 +100,7 @@ var deleteObjectUndefined = function (object) {
97
100
  return;
98
101
  }
99
102
  if (Array.isArray(object[key]) && object[key].length) {
100
- deleteObjectUndefined(object[key]);
103
+ deleteObjectUndefined(object[key], keysToSkip);
101
104
  }
102
105
  });
103
106
  }
@@ -234,7 +237,7 @@ var getPlexoKey = function (fingerprint) { return __awaiter(void 0, void 0, void
234
237
  });
235
238
  }); };
236
239
  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;
240
+ var serverResponse, plexoResponse, err_1, certificate, key, canonizedObject, objectInPascalCase, objectSorted, objectBuffer, verifySignature;
238
241
  return __generator(this, function (_a) {
239
242
  switch (_a.label) {
240
243
  case 0:
@@ -245,7 +248,7 @@ var getPlexoSignature = function (fingerprint, response) { return __awaiter(void
245
248
  return [3 /*break*/, 3];
246
249
  case 2:
247
250
  err_1 = _a.sent();
248
- logger_lib_1.default.error({ err: err_1 }, 'Error getting plexo certificate');
251
+ logger_lib_1.default.error({ err: err_1 }, 'Error getting plexo public key');
249
252
  serverResponse = {
250
253
  response: response.object.object,
251
254
  resultCode: __1.ResultCodes.InvalidFingerprint,
@@ -257,11 +260,11 @@ var getPlexoSignature = function (fingerprint, response) { return __awaiter(void
257
260
  // ${plexoResponse.Object.Object.Response.Key}
258
261
  // -----END CERTIFICATE-----`)
259
262
  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' });
263
+ certificate = new crypto_1.X509Certificate(Buffer.from(plexoResponse.Object.Object.Response.Key, 'base64'));
264
+ key = certificate.publicKey.export({ format: 'pem', type: 'pkcs1' });
263
265
  logger_lib_1.default.info(key, 'Generated public key');
264
- canonizedObject = (0, exports.canonizeJson)(response.object);
266
+ canonizedObject = (0, exports.canonizeJson)(response.object, ['CreditLimits']);
267
+ logger_lib_1.default.info(canonizedObject, 'Objeto canonizado');
265
268
  objectInPascalCase = utils_1.caseUtils.toPascalKeys(canonizedObject);
266
269
  objectSorted = sort(objectInPascalCase);
267
270
  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.37",
4
4
  "description": "Node SDK for Plexo payment services",
5
5
  "main": "lib/index.js",
6
6
  "types": "lib/index.d.ts",