@cuenca-mx/cuenca-js 0.0.1-dev.30 → 0.0.1-dev.31

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.
@@ -9,20 +9,5 @@ const dateToUTC = (date) => {
9
9
  const enumValueFromString = (enumValue, value) =>
10
10
  Object.values(enumValue).find((enumV) => enumV.value === value);
11
11
 
12
- class BaseRequest {
13
- toObject() {
14
- return {};
15
- }
16
-
17
- toCleanObject() {
18
- const obj = this.toObject();
19
- Object.keys(obj).forEach((k) => {
20
- if (obj[k] == null) delete obj[k];
21
- });
22
- return obj;
23
- }
24
- }
25
-
26
- exports.BaseRequest = BaseRequest;
27
12
  exports.dateToUTC = dateToUTC;
28
13
  exports.enumValueFromString = enumValueFromString;
@@ -0,0 +1,10 @@
1
+ const dateToUTC = (date) => {
2
+ if (!date) return null;
3
+ const dateObj = new Date(date);
4
+ return new Date(dateObj.getTime());
5
+ };
6
+
7
+ const enumValueFromString = (enumValue, value) =>
8
+ Object.values(enumValue).find((enumV) => enumV.value === value);
9
+
10
+ export { dateToUTC as d, enumValueFromString as e };
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  var errors_index = require('./errors/index.cjs');
4
- var base = require('./base-80b9a673.cjs');
4
+ var data = require('./data-9edbb2a0.cjs');
5
5
 
6
6
  class CardErrorType {
7
7
  static Blocked = new CardErrorType('blocked');
@@ -557,9 +557,9 @@ class StatementQuery extends QueryParams {
557
557
  }
558
558
 
559
559
  set d({ month, year }) {
560
- const now = base.dateToUTC(Date.now());
560
+ const now = data.dateToUTC(Date.now());
561
561
  now.setUTCDate(1);
562
- const date = base.dateToUTC(`${year}-${month}-01`);
562
+ const date = data.dateToUTC(`${year}-${month}-01`);
563
563
  if (date.getTime() >= now.getTime()) {
564
564
  throw new errors_index.ValidationError(
565
565
  `${year}-${month} is not a valid year-month pair`,
@@ -576,9 +576,8 @@ class StatementQuery extends QueryParams {
576
576
  }
577
577
  }
578
578
 
579
- class TOSAgreements extends base.BaseRequest {
579
+ class TOSAgreements {
580
580
  constructor({ ip, location, version }) {
581
- super();
582
581
  this.ip = ip;
583
582
  this.location = location;
584
583
  this.version = version;
@@ -1,5 +1,5 @@
1
1
  import { ValidationError } from './errors/index.mjs';
2
- import { d as dateToUTC, B as BaseRequest } from './base-c1f04b51.mjs';
2
+ import { d as dateToUTC } from './data-d5bcb7c8.mjs';
3
3
 
4
4
  class CardErrorType {
5
5
  static Blocked = new CardErrorType('blocked');
@@ -574,9 +574,8 @@ class StatementQuery extends QueryParams {
574
574
  }
575
575
  }
576
576
 
577
- class TOSAgreements extends BaseRequest {
577
+ class TOSAgreements {
578
578
  constructor({ ip, location, version }) {
579
- super();
580
579
  this.ip = ip;
581
580
  this.location = location;
582
581
  this.version = version;
package/build/index.cjs CHANGED
@@ -6,9 +6,9 @@ var axios = require('axios');
6
6
  var Buffer = require('buffer');
7
7
  var errors_index = require('./errors/index.cjs');
8
8
  var jwt_index = require('./jwt/index.cjs');
9
- var identities = require('./identities-d9bd3846.cjs');
10
- var base = require('./base-80b9a673.cjs');
11
- var walletTransactionRequest = require('./walletTransactionRequest-bda66da3.cjs');
9
+ var identities = require('./identities-31dcced0.cjs');
10
+ var data = require('./data-9edbb2a0.cjs');
11
+ var walletTransactionRequest = require('./walletTransactionRequest-572c455b.cjs');
12
12
 
13
13
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
14
14
 
@@ -26,7 +26,7 @@ const isNode =
26
26
 
27
27
  const runtimeEnv = { isBrowser, isNode };
28
28
 
29
- const name="@cuenca-mx/cuenca-js";const version="0.0.1-dev.30";const description="Cuenca client for JS";const main="./build/index.cjs";const module$1="./build/index.mjs";const browser="./build/umd/cuenca.umd.js";const files=["build/**/*"];const exports$1={".":{"import":"./build/index.mjs",require:"./build/index.cjs"},"./errors":{"import":"./build/errors/index.mjs",require:"./build/errors/index.cjs"},"./jwt":{"import":"./build/jwt/index.mjs",require:"./build/jwt/index.cjs"},"./requests":{"import":"./build/requests/index.mjs",require:"./build/requests/index.cjs"},"./types":{"import":"./build/types/index.mjs",require:"./build/types/index.cjs"}};const packageManager="yarn@3.0.2";const type="module";const repository={type:"git",url:"https://github.com/cuenca-mx/cuenca-js.git",directory:"packages/cuenca-js"};const keywords=["cuenca"];const license="MIT";const bugs={url:"https://github.com/cuenca-mx/cuenca-js/issues"};const homepage="https://cuenca.com";const scripts={build:"rm -rf build/ && yarn rollup --config",test:"yarn node --experimental-vm-modules $(yarn bin jest)",publish:"yarn build && yarn npm publish"};const devDependencies={"@rollup/plugin-json":"^4.1.0","@rollup/plugin-node-resolve":"^13.1.1",jest:"^27.4.5",rollup:"^2.61.1","rollup-plugin-terser":"^7.0.2"};const dependencies={axios:"^0.24.0",buffer:"^6.0.3"};var pkg = {name:name,version:version,description:description,main:main,module:module$1,browser:browser,files:files,exports:exports$1,packageManager:packageManager,type:type,repository:repository,keywords:keywords,license:license,bugs:bugs,homepage:homepage,scripts:scripts,devDependencies:devDependencies,dependencies:dependencies};
29
+ const name="@cuenca-mx/cuenca-js";const version="0.0.1-dev.31";const description="Cuenca client for JS";const main="./build/index.cjs";const module$1="./build/index.mjs";const browser="./build/umd/cuenca.umd.js";const files=["build/**/*"];const exports$1={".":{"import":"./build/index.mjs",require:"./build/index.cjs"},"./errors":{"import":"./build/errors/index.mjs",require:"./build/errors/index.cjs"},"./jwt":{"import":"./build/jwt/index.mjs",require:"./build/jwt/index.cjs"},"./requests":{"import":"./build/requests/index.mjs",require:"./build/requests/index.cjs"},"./types":{"import":"./build/types/index.mjs",require:"./build/types/index.cjs"}};const packageManager="yarn@3.0.2";const type="module";const repository={type:"git",url:"https://github.com/cuenca-mx/cuenca-js.git",directory:"packages/cuenca-js"};const keywords=["cuenca"];const license="MIT";const bugs={url:"https://github.com/cuenca-mx/cuenca-js/issues"};const homepage="https://cuenca.com";const scripts={build:"rm -rf build/ && yarn rollup --config",test:"yarn node --experimental-vm-modules $(yarn bin jest)",publish:"yarn build && yarn npm publish"};const devDependencies={"@rollup/plugin-json":"^4.1.0","@rollup/plugin-node-resolve":"^13.1.1",jest:"^27.4.5",rollup:"^2.61.1","rollup-plugin-terser":"^7.0.2"};const dependencies={axios:"^0.24.0",buffer:"^6.0.3"};var pkg = {name:name,version:version,description:description,main:main,module:module$1,browser:browser,files:files,exports:exports$1,packageManager:packageManager,type:type,repository:repository,keywords:keywords,license:license,bugs:bugs,homepage:homepage,scripts:scripts,devDependencies:devDependencies,dependencies:dependencies};
30
30
 
31
31
  class Client {
32
32
  constructor({ apiKey, apiSecret, phase = identities.Phase.Sandbox } = {}) {
@@ -95,7 +95,14 @@ class Client {
95
95
  };
96
96
  }
97
97
 
98
- async configure({ apiKey, apiSecret, loginToken, phase, useJwt = false }) {
98
+ async configure({
99
+ apiKey,
100
+ apiSecret,
101
+ loginToken,
102
+ phase,
103
+ sessionId,
104
+ useJwt = false,
105
+ }) {
99
106
  this.basicAuth = {
100
107
  apiKey: apiKey || this.basicAuth.apiKey,
101
108
  apiSecret: apiSecret || this.basicAuth.apiSecret,
@@ -108,6 +115,10 @@ class Client {
108
115
  if (loginToken) {
109
116
  this.addHeadersToRequest({ 'X-Cuenca-LoginToken': loginToken });
110
117
  }
118
+
119
+ if (sessionId) {
120
+ this.addHeadersToRequest({ 'X-Cuenca-SessionId': sessionId });
121
+ }
111
122
  }
112
123
 
113
124
  async get({ endpoint, format, params }) {
@@ -200,7 +211,7 @@ class Client {
200
211
  class Account {
201
212
  constructor({ accountNumber, createdAt, id, institutionName, name, userId }) {
202
213
  this.accountNumber = accountNumber;
203
- this.createdAt = base.dateToUTC(createdAt);
214
+ this.createdAt = data.dateToUTC(createdAt);
204
215
  this.id = id;
205
216
  this.institutionName = institutionName;
206
217
  this.name = name;
@@ -220,12 +231,12 @@ class Account {
220
231
 
221
232
  class ApiKey {
222
233
  constructor({ createdAt, deactivatedAt, id, secret, userId, updatedAt }) {
223
- this.createdAt = base.dateToUTC(createdAt);
224
- this.deactivatedAt = base.dateToUTC(deactivatedAt);
234
+ this.createdAt = data.dateToUTC(createdAt);
235
+ this.deactivatedAt = data.dateToUTC(deactivatedAt);
225
236
  this.id = id;
226
237
  this.secret = secret;
227
238
  this.userId = userId;
228
- this.updatedAt = base.dateToUTC(updatedAt);
239
+ this.updatedAt = data.dateToUTC(updatedAt);
229
240
  }
230
241
 
231
242
  static fromObject = ({ id, secret, ...obj }) =>
@@ -239,7 +250,7 @@ class ApiKey {
239
250
  });
240
251
 
241
252
  get isActive() {
242
- const todayUTC = base.dateToUTC(Date.now());
253
+ const todayUTC = data.dateToUTC(Date.now());
243
254
  return (
244
255
  !this.deactivatedAt || this.deactivatedAt.getTime() > todayUTC.getTime()
245
256
  );
@@ -249,7 +260,7 @@ class ApiKey {
249
260
  class Arpc {
250
261
  constructor({ arpc, createdAt, cardUri, isValidArqc }) {
251
262
  this.arpc = arpc;
252
- this.createdAt = base.dateToUTC(createdAt);
263
+ this.createdAt = data.dateToUTC(createdAt);
253
264
  this.cardUri = cardUri;
254
265
  this.isValidArqc = isValidArqc;
255
266
  }
@@ -276,9 +287,9 @@ class BalanceEntry {
276
287
  rollingBalance,
277
288
  }) {
278
289
  this.amount = amount;
279
- this.createdAt = base.dateToUTC(createdAt);
290
+ this.createdAt = data.dateToUTC(createdAt);
280
291
  this.descriptor = descriptor;
281
- this.entryType = base.enumValueFromString(identities.EntryType, entryType);
292
+ this.entryType = data.enumValueFromString(identities.EntryType, entryType);
282
293
  this.fundingInstrumentUri = fundingInstrumentUri;
283
294
  this.id = id;
284
295
  this.name = name;
@@ -303,9 +314,9 @@ class BalanceEntry {
303
314
  class Transaction {
304
315
  constructor({ amount, createdAt, descriptor, status, userId }) {
305
316
  this.amount = amount;
306
- this.createdAt = base.dateToUTC(createdAt);
317
+ this.createdAt = data.dateToUTC(createdAt);
307
318
  this.descriptor = descriptor;
308
- this.status = base.enumValueFromString(identities.TransactionStatus, status);
319
+ this.status = data.enumValueFromString(identities.TransactionStatus, status);
309
320
  this.userId = userId;
310
321
  }
311
322
  }
@@ -362,18 +373,18 @@ class Card {
362
373
  updatedAt,
363
374
  userId,
364
375
  }) {
365
- this.createdAt = base.dateToUTC(createdAt);
376
+ this.createdAt = data.dateToUTC(createdAt);
366
377
  this.cvv2 = cvv2;
367
378
  this.expMonth = expMonth;
368
379
  this.expYear = expYear;
369
- this.fundingType = base.enumValueFromString(identities.CardFundingType, fundingType);
380
+ this.fundingType = data.enumValueFromString(identities.CardFundingType, fundingType);
370
381
  this.id = id;
371
- this.issuer = base.enumValueFromString(identities.CardIssuer, issuer);
382
+ this.issuer = data.enumValueFromString(identities.CardIssuer, issuer);
372
383
  this.number = number;
373
384
  this.pin = pin;
374
- this.status = base.enumValueFromString(identities.CardStatus, status);
375
- this.type = base.enumValueFromString(identities.CardType, type);
376
- this.updatedAt = base.dateToUTC(updatedAt);
385
+ this.status = data.enumValueFromString(identities.CardStatus, status);
386
+ this.type = data.enumValueFromString(identities.CardType, type);
387
+ this.updatedAt = data.dateToUTC(updatedAt);
377
388
  this.userId = userId;
378
389
  }
379
390
 
@@ -407,7 +418,7 @@ class Card {
407
418
  class CardActivation {
408
419
  constructor({ cardUri, createdAt, id, ipAddress, success, userId }) {
409
420
  this.cardUri = cardUri;
410
- this.createdAt = base.dateToUTC(createdAt);
421
+ this.createdAt = data.dateToUTC(createdAt);
411
422
  this.id = id;
412
423
  this.ipAddress = ipAddress;
413
424
  this.success = success;
@@ -448,14 +459,14 @@ class CardTransaction extends Transaction {
448
459
  status,
449
460
  userId,
450
461
  });
451
- this.cardErrorType = base.enumValueFromString(identities.CardErrorType, cardErrorType);
462
+ this.cardErrorType = data.enumValueFromString(identities.CardErrorType, cardErrorType);
452
463
  this.cardLastFour = cardLastFour;
453
- this.cardType = base.enumValueFromString(identities.CardType, cardType);
464
+ this.cardType = data.enumValueFromString(identities.CardType, cardType);
454
465
  this.cardUri = cardUri;
455
466
  this.metadata = metadata;
456
467
  this.network = network;
457
468
  this.relatedCardTransactionsUris = relatedCardTransactionsUris;
458
- this.type = base.enumValueFromString(identities.CardTransactionType, type);
469
+ this.type = data.enumValueFromString(identities.CardTransactionType, type);
459
470
  }
460
471
 
461
472
  static fromObject = ({
@@ -499,10 +510,10 @@ class CardValidation {
499
510
  isValidPinBlock,
500
511
  userId,
501
512
  }) {
502
- this.cardStatus = base.enumValueFromString(identities.CardStatus, cardStatus);
503
- this.cardType = base.enumValueFromString(identities.CardType, cardType);
513
+ this.cardStatus = data.enumValueFromString(identities.CardStatus, cardStatus);
514
+ this.cardType = data.enumValueFromString(identities.CardType, cardType);
504
515
  this.cardUri = cardUri;
505
- this.createdAt = base.dateToUTC(createdAt);
516
+ this.createdAt = data.dateToUTC(createdAt);
506
517
  this.isExpired = isExpired;
507
518
  this.isPinAttemptsExceeded = isPinAttemptsExceeded;
508
519
  this.isValidCvv = isValidCvv;
@@ -552,7 +563,7 @@ class Commission extends Transaction {
552
563
  userId,
553
564
  });
554
565
  this.relatedTransactionUri = relatedTransactionUri;
555
- this.type = base.enumValueFromString(identities.CommissionType, type);
566
+ this.type = data.enumValueFromString(identities.CommissionType, type);
556
567
  }
557
568
 
558
569
  static fromObject = ({ amount, descriptor, status, type, ...obj }) =>
@@ -587,7 +598,7 @@ class Deposit extends Transaction {
587
598
  userId,
588
599
  });
589
600
  this.id = id;
590
- this.network = base.enumValueFromString(identities.DepositNetwork, network);
601
+ this.network = data.enumValueFromString(identities.DepositNetwork, network);
591
602
  this.sourceUri = sourceUri;
592
603
  this.trackingKey = trackingKey;
593
604
  }
@@ -617,11 +628,11 @@ class LoginToken {
617
628
  class Wallet {
618
629
  constructor({ balance, createdAt, deactivatedAt, id, userId, updatedAt }) {
619
630
  this.balance = balance;
620
- this.createdAt = base.dateToUTC(createdAt);
621
- this.deactivatedAt = base.dateToUTC(deactivatedAt);
631
+ this.createdAt = data.dateToUTC(createdAt);
632
+ this.deactivatedAt = data.dateToUTC(deactivatedAt);
622
633
  this.id = id;
623
634
  this.userId = userId;
624
- this.updatedAt = base.dateToUTC(updatedAt);
635
+ this.updatedAt = data.dateToUTC(updatedAt);
625
636
  }
626
637
  }
627
638
 
@@ -646,9 +657,9 @@ class Saving extends Wallet {
646
657
  userId,
647
658
  updatedAt,
648
659
  });
649
- this.category = base.enumValueFromString(identities.SavingCategory, category);
660
+ this.category = data.enumValueFromString(identities.SavingCategory, category);
650
661
  this.goalAmount = goalAmount;
651
- this.goalDate = base.dateToUTC(goalDate);
662
+ this.goalDate = data.dateToUTC(goalDate);
652
663
  this.name = name;
653
664
  }
654
665
 
@@ -670,7 +681,7 @@ class Saving extends Wallet {
670
681
  const categoriesFromString = (categoriesList) => {
671
682
  if (categoriesList == null) return [];
672
683
  return categoriesList.map((category) =>
673
- base.enumValueFromString(identities.ServiceProviderCategory, category),
684
+ data.enumValueFromString(identities.ServiceProviderCategory, category),
674
685
  );
675
686
  };
676
687
 
@@ -693,7 +704,7 @@ class ServiceProvider {
693
704
 
694
705
  class Statement {
695
706
  constructor({ createdAt, id, month, year }) {
696
- this.createdAt = base.dateToUTC(createdAt);
707
+ this.createdAt = data.dateToUTC(createdAt);
697
708
  this.id = id;
698
709
  this.month = month;
699
710
  this.year = year;
@@ -735,10 +746,10 @@ class Transfer extends Transaction {
735
746
  this.destinationUri = destinationUri;
736
747
  this.id = id;
737
748
  this.idempotencyKey = idempotencyKey;
738
- this.network = base.enumValueFromString(identities.TransferNetwork, network);
749
+ this.network = data.enumValueFromString(identities.TransferNetwork, network);
739
750
  this.recipientName = recipientName;
740
751
  this.trackingKey = trackingKey;
741
- this.updatedAt = base.dateToUTC(updatedAt);
752
+ this.updatedAt = data.dateToUTC(updatedAt);
742
753
  }
743
754
 
744
755
  static fromObject = ({ amount, descriptor, id, network, status, ...obj }) =>
@@ -762,14 +773,16 @@ class Transfer extends Transaction {
762
773
  class User {
763
774
  constructor({
764
775
  emailAddress,
776
+ level,
765
777
  phoneNumber,
766
778
  status,
767
779
  termsOfService,
768
780
  verificationId,
769
781
  }) {
770
782
  this.emailAddress = emailAddress;
783
+ this.level = level;
771
784
  this.phoneNumber = phoneNumber;
772
- this.status = base.enumValueFromString(identities.UserStatus, status);
785
+ this.status = data.enumValueFromString(identities.UserStatus, status);
773
786
  this.terms = termsOfService;
774
787
  this.verificationId = verificationId;
775
788
  }
@@ -783,11 +796,12 @@ class User {
783
796
  this._termsOfService = identities.TOSAgreements.fromObject(value);
784
797
  }
785
798
 
786
- static fromObject = ({ ...obj }) =>
799
+ static fromObject = ({ level,status, ...obj }) =>
787
800
  new User({
801
+ level,
802
+ status,
788
803
  emailAddress: obj.email_address,
789
804
  phoneNumber: obj.phone_number,
790
- status: obj.status,
791
805
  termsOfService: obj.terms_of_service,
792
806
  verificationId: obj.verification_id,
793
807
  });
@@ -795,10 +809,10 @@ class User {
795
809
 
796
810
  class UserCredential {
797
811
  constructor({ createdAt, id, isActive, updatedAt }) {
798
- this.createdAt = base.dateToUTC(createdAt);
812
+ this.createdAt = data.dateToUTC(createdAt);
799
813
  this.id = id;
800
814
  this.isActive = isActive;
801
- this.updatedAt = base.dateToUTC(updatedAt);
815
+ this.updatedAt = data.dateToUTC(updatedAt);
802
816
  }
803
817
 
804
818
  static fromObject = ({ id, ...obj }) =>
@@ -813,7 +827,7 @@ class UserCredential {
813
827
  class UserLogin {
814
828
  constructor({ id, lastLoginAt, success }) {
815
829
  this.id = id;
816
- this.lastLoginAt = base.dateToUTC(lastLoginAt);
830
+ this.lastLoginAt = data.dateToUTC(lastLoginAt);
817
831
  this.success = success;
818
832
  }
819
833
 
@@ -844,7 +858,7 @@ class WalletTransaction extends Transaction {
844
858
  userId,
845
859
  });
846
860
  this.id = id;
847
- this.transactionType = base.enumValueFromString(
861
+ this.transactionType = data.enumValueFromString(
848
862
  identities.WalletTransactionType,
849
863
  transactionType,
850
864
  );
@@ -891,12 +905,12 @@ class WhatsAppTransfer extends Transaction {
891
905
  this.claimUrl = claimUrl;
892
906
  this.destinationUri = destinationUri;
893
907
  this.id = id;
894
- this.expiresAt = base.dateToUTC(expiresAt);
895
- this.network = base.enumValueFromString(identities.TransferNetwork, network);
908
+ this.expiresAt = data.dateToUTC(expiresAt);
909
+ this.network = data.enumValueFromString(identities.TransferNetwork, network);
896
910
  this.phoneNumber = phoneNumber;
897
911
  this.recipientName = recipientName;
898
912
  this.trackingKey = trackingKey;
899
- this.updatedAt = base.dateToUTC(updatedAt);
913
+ this.updatedAt = data.dateToUTC(updatedAt);
900
914
  }
901
915
 
902
916
  static fromObject = ({ amount, descriptor, id, network, status, ...obj }) =>
@@ -1458,7 +1472,7 @@ class TransferResource extends mix(Resource).with(
1458
1472
  }
1459
1473
 
1460
1474
  static _genIdempotencyKey(accountNumber, amount) {
1461
- const [date] = base.dateToUTC(Date.now()).toISOString().split('T');
1475
+ const [date] = data.dateToUTC(Date.now()).toISOString().split('T');
1462
1476
  return `${date}:${accountNumber}:${amount}`;
1463
1477
  }
1464
1478
  }
@@ -1515,7 +1529,7 @@ class UserResourse extends mix(Resource).with(Queryable, Updateable) {
1515
1529
  super('users', identities.UserQuery, client);
1516
1530
  }
1517
1531
 
1518
- async update({ termsOfService, userId = 'me', verificationId }) {
1532
+ async update({ termsOfService, verificationId, userId = 'me' }) {
1519
1533
  const request = new walletTransactionRequest.UserUpdateRequest({ termsOfService, verificationId });
1520
1534
  const user = await this._update(userId, request.toCleanObject());
1521
1535
  return user;
@@ -1589,9 +1603,9 @@ class Cuenca {
1589
1603
  this.serviceProviders = new ServiceProviderResource(client);
1590
1604
  this.statements = new StatementResource(client);
1591
1605
  this.transfers = new TransferResource(client);
1592
- this.users = new UserResourse(client);
1593
1606
  this.userCredentials = new UserCredentialResource(client);
1594
1607
  this.userLogins = new UserLoginResource(client);
1608
+ this.users = new UserResourse(client);
1595
1609
  this.walletTransactions = new WalletTransactionsResource(client);
1596
1610
  this.whatsAppTransfers = new WhatsAppTransferResource(client);
1597
1611
  }
package/build/index.mjs CHANGED
@@ -2,9 +2,9 @@ import axios from 'axios';
2
2
  import Buffer from 'buffer';
3
3
  import { CuencaResponseException, CuencaException, NoResultFound, MultipleResultsFound, InvalidPassword } from './errors/index.mjs';
4
4
  import { Jwt } from './jwt/index.mjs';
5
- import { P as Phase, F as FileFormat, E as EntryType, T as TransactionStatus, C as CardIssuer, a as CardStatus, b as CardType, c as CardFundingType, d as CardErrorType, e as CardTransactionType, f as CommissionType, D as DepositNetwork, S as SavingCategory, g as ServiceProviderCategory, h as TransferNetwork, U as UserStatus, i as TOSAgreements, W as WalletTransactionType, A as AccountQuery, j as ApiKeyQuery, B as BalanceEntryQuery, k as BillPaymentQuery, l as CardsQuery, m as CardTransactionQuery, Q as QueryParams, n as DepositQuery, o as WalletQuery, p as StatementQuery, q as TransferQuery, r as UserQuery, s as WalletTransactionQuery } from './identities-122c79fd.mjs';
6
- import { d as dateToUTC, e as enumValueFromString } from './base-c1f04b51.mjs';
7
- import { A as ApiKeyUpdateRequest, a as ArpcRequest, C as CardActivationRequest, b as CardRequest, c as CardUpdateRequest, d as CardValidationRequest, S as SavingRequest, T as TransferRequest, U as UserCredentialRequest, e as UserCredentialUpdateRequest, f as UserLoginRequest, g as UserUpdateRequest, W as WalletTransactionRequest } from './walletTransactionRequest-8b125547.mjs';
5
+ import { P as Phase, F as FileFormat, E as EntryType, T as TransactionStatus, C as CardIssuer, a as CardStatus, b as CardType, c as CardFundingType, d as CardErrorType, e as CardTransactionType, f as CommissionType, D as DepositNetwork, S as SavingCategory, g as ServiceProviderCategory, h as TransferNetwork, U as UserStatus, i as TOSAgreements, W as WalletTransactionType, A as AccountQuery, j as ApiKeyQuery, B as BalanceEntryQuery, k as BillPaymentQuery, l as CardsQuery, m as CardTransactionQuery, Q as QueryParams, n as DepositQuery, o as WalletQuery, p as StatementQuery, q as TransferQuery, r as UserQuery, s as WalletTransactionQuery } from './identities-f6558f98.mjs';
6
+ import { d as dateToUTC, e as enumValueFromString } from './data-d5bcb7c8.mjs';
7
+ import { A as ApiKeyUpdateRequest, a as ArpcRequest, C as CardActivationRequest, b as CardRequest, c as CardUpdateRequest, d as CardValidationRequest, S as SavingRequest, T as TransferRequest, U as UserCredentialRequest, e as UserCredentialUpdateRequest, f as UserLoginRequest, g as UserUpdateRequest, W as WalletTransactionRequest } from './walletTransactionRequest-4e6b348f.mjs';
8
8
 
9
9
  /* global window */
10
10
 
@@ -17,7 +17,7 @@ const isNode =
17
17
 
18
18
  const runtimeEnv = { isBrowser, isNode };
19
19
 
20
- const name="@cuenca-mx/cuenca-js";const version="0.0.1-dev.30";const description="Cuenca client for JS";const main="./build/index.cjs";const module="./build/index.mjs";const browser="./build/umd/cuenca.umd.js";const files=["build/**/*"];const exports={".":{"import":"./build/index.mjs",require:"./build/index.cjs"},"./errors":{"import":"./build/errors/index.mjs",require:"./build/errors/index.cjs"},"./jwt":{"import":"./build/jwt/index.mjs",require:"./build/jwt/index.cjs"},"./requests":{"import":"./build/requests/index.mjs",require:"./build/requests/index.cjs"},"./types":{"import":"./build/types/index.mjs",require:"./build/types/index.cjs"}};const packageManager="yarn@3.0.2";const type="module";const repository={type:"git",url:"https://github.com/cuenca-mx/cuenca-js.git",directory:"packages/cuenca-js"};const keywords=["cuenca"];const license="MIT";const bugs={url:"https://github.com/cuenca-mx/cuenca-js/issues"};const homepage="https://cuenca.com";const scripts={build:"rm -rf build/ && yarn rollup --config",test:"yarn node --experimental-vm-modules $(yarn bin jest)",publish:"yarn build && yarn npm publish"};const devDependencies={"@rollup/plugin-json":"^4.1.0","@rollup/plugin-node-resolve":"^13.1.1",jest:"^27.4.5",rollup:"^2.61.1","rollup-plugin-terser":"^7.0.2"};const dependencies={axios:"^0.24.0",buffer:"^6.0.3"};var pkg = {name:name,version:version,description:description,main:main,module:module,browser:browser,files:files,exports:exports,packageManager:packageManager,type:type,repository:repository,keywords:keywords,license:license,bugs:bugs,homepage:homepage,scripts:scripts,devDependencies:devDependencies,dependencies:dependencies};
20
+ const name="@cuenca-mx/cuenca-js";const version="0.0.1-dev.31";const description="Cuenca client for JS";const main="./build/index.cjs";const module="./build/index.mjs";const browser="./build/umd/cuenca.umd.js";const files=["build/**/*"];const exports={".":{"import":"./build/index.mjs",require:"./build/index.cjs"},"./errors":{"import":"./build/errors/index.mjs",require:"./build/errors/index.cjs"},"./jwt":{"import":"./build/jwt/index.mjs",require:"./build/jwt/index.cjs"},"./requests":{"import":"./build/requests/index.mjs",require:"./build/requests/index.cjs"},"./types":{"import":"./build/types/index.mjs",require:"./build/types/index.cjs"}};const packageManager="yarn@3.0.2";const type="module";const repository={type:"git",url:"https://github.com/cuenca-mx/cuenca-js.git",directory:"packages/cuenca-js"};const keywords=["cuenca"];const license="MIT";const bugs={url:"https://github.com/cuenca-mx/cuenca-js/issues"};const homepage="https://cuenca.com";const scripts={build:"rm -rf build/ && yarn rollup --config",test:"yarn node --experimental-vm-modules $(yarn bin jest)",publish:"yarn build && yarn npm publish"};const devDependencies={"@rollup/plugin-json":"^4.1.0","@rollup/plugin-node-resolve":"^13.1.1",jest:"^27.4.5",rollup:"^2.61.1","rollup-plugin-terser":"^7.0.2"};const dependencies={axios:"^0.24.0",buffer:"^6.0.3"};var pkg = {name:name,version:version,description:description,main:main,module:module,browser:browser,files:files,exports:exports,packageManager:packageManager,type:type,repository:repository,keywords:keywords,license:license,bugs:bugs,homepage:homepage,scripts:scripts,devDependencies:devDependencies,dependencies:dependencies};
21
21
 
22
22
  class Client {
23
23
  constructor({ apiKey, apiSecret, phase = Phase.Sandbox } = {}) {
@@ -86,7 +86,14 @@ class Client {
86
86
  };
87
87
  }
88
88
 
89
- async configure({ apiKey, apiSecret, loginToken, phase, useJwt = false }) {
89
+ async configure({
90
+ apiKey,
91
+ apiSecret,
92
+ loginToken,
93
+ phase,
94
+ sessionId,
95
+ useJwt = false,
96
+ }) {
90
97
  this.basicAuth = {
91
98
  apiKey: apiKey || this.basicAuth.apiKey,
92
99
  apiSecret: apiSecret || this.basicAuth.apiSecret,
@@ -99,6 +106,10 @@ class Client {
99
106
  if (loginToken) {
100
107
  this.addHeadersToRequest({ 'X-Cuenca-LoginToken': loginToken });
101
108
  }
109
+
110
+ if (sessionId) {
111
+ this.addHeadersToRequest({ 'X-Cuenca-SessionId': sessionId });
112
+ }
102
113
  }
103
114
 
104
115
  async get({ endpoint, format, params }) {
@@ -753,12 +764,14 @@ class Transfer extends Transaction {
753
764
  class User {
754
765
  constructor({
755
766
  emailAddress,
767
+ level,
756
768
  phoneNumber,
757
769
  status,
758
770
  termsOfService,
759
771
  verificationId,
760
772
  }) {
761
773
  this.emailAddress = emailAddress;
774
+ this.level = level;
762
775
  this.phoneNumber = phoneNumber;
763
776
  this.status = enumValueFromString(UserStatus, status);
764
777
  this.terms = termsOfService;
@@ -774,11 +787,12 @@ class User {
774
787
  this._termsOfService = TOSAgreements.fromObject(value);
775
788
  }
776
789
 
777
- static fromObject = ({ ...obj }) =>
790
+ static fromObject = ({ level,status, ...obj }) =>
778
791
  new User({
792
+ level,
793
+ status,
779
794
  emailAddress: obj.email_address,
780
795
  phoneNumber: obj.phone_number,
781
- status: obj.status,
782
796
  termsOfService: obj.terms_of_service,
783
797
  verificationId: obj.verification_id,
784
798
  });
@@ -1506,7 +1520,7 @@ class UserResourse extends mix(Resource).with(Queryable, Updateable) {
1506
1520
  super('users', UserQuery, client);
1507
1521
  }
1508
1522
 
1509
- async update({ termsOfService, userId = 'me', verificationId }) {
1523
+ async update({ termsOfService, verificationId, userId = 'me' }) {
1510
1524
  const request = new UserUpdateRequest({ termsOfService, verificationId });
1511
1525
  const user = await this._update(userId, request.toCleanObject());
1512
1526
  return user;
@@ -1580,9 +1594,9 @@ class Cuenca {
1580
1594
  this.serviceProviders = new ServiceProviderResource(client);
1581
1595
  this.statements = new StatementResource(client);
1582
1596
  this.transfers = new TransferResource(client);
1583
- this.users = new UserResourse(client);
1584
1597
  this.userCredentials = new UserCredentialResource(client);
1585
1598
  this.userLogins = new UserLoginResource(client);
1599
+ this.users = new UserResourse(client);
1586
1600
  this.walletTransactions = new WalletTransactionsResource(client);
1587
1601
  this.whatsAppTransfers = new WhatsAppTransferResource(client);
1588
1602
  }
@@ -2,9 +2,9 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var walletTransactionRequest = require('../walletTransactionRequest-bda66da3.cjs');
6
- require('../base-80b9a673.cjs');
5
+ var walletTransactionRequest = require('../walletTransactionRequest-572c455b.cjs');
7
6
  require('../errors/index.cjs');
7
+ require('../data-9edbb2a0.cjs');
8
8
 
9
9
 
10
10
 
@@ -15,7 +15,6 @@ exports.CardRequest = walletTransactionRequest.CardRequest;
15
15
  exports.CardUpdateRequest = walletTransactionRequest.CardUpdateRequest;
16
16
  exports.CardValidationRequest = walletTransactionRequest.CardValidationRequest;
17
17
  exports.SavingRequest = walletTransactionRequest.SavingRequest;
18
- exports.TosUpdateRequest = walletTransactionRequest.TosUpdateRequest;
19
18
  exports.TransferRequest = walletTransactionRequest.TransferRequest;
20
19
  exports.UserCredentialRequest = walletTransactionRequest.UserCredentialRequest;
21
20
  exports.UserCredentialUpdateRequest = walletTransactionRequest.UserCredentialUpdateRequest;
@@ -1,3 +1,3 @@
1
- export { A as ApiKeyUpdateRequest, a as ArpcRequest, C as CardActivationRequest, b as CardRequest, c as CardUpdateRequest, d as CardValidationRequest, S as SavingRequest, h as TosUpdateRequest, T as TransferRequest, U as UserCredentialRequest, e as UserCredentialUpdateRequest, f as UserLoginRequest, g as UserUpdateRequest, W as WalletTransactionRequest } from '../walletTransactionRequest-8b125547.mjs';
2
- import '../base-c1f04b51.mjs';
1
+ export { A as ApiKeyUpdateRequest, a as ArpcRequest, C as CardActivationRequest, b as CardRequest, c as CardUpdateRequest, d as CardValidationRequest, S as SavingRequest, T as TransferRequest, U as UserCredentialRequest, e as UserCredentialUpdateRequest, f as UserLoginRequest, g as UserUpdateRequest, W as WalletTransactionRequest } from '../walletTransactionRequest-4e6b348f.mjs';
3
2
  import '../errors/index.mjs';
3
+ import '../data-d5bcb7c8.mjs';
@@ -2,9 +2,9 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var identities = require('../identities-d9bd3846.cjs');
5
+ var identities = require('../identities-31dcced0.cjs');
6
6
  require('../errors/index.cjs');
7
- require('../base-80b9a673.cjs');
7
+ require('../data-9edbb2a0.cjs');
8
8
 
9
9
 
10
10
 
@@ -1,3 +1,3 @@
1
- export { A as AccountQuery, j as ApiKeyQuery, B as BalanceEntryQuery, k as BillPaymentQuery, d as CardErrorType, c as CardFundingType, C as CardIssuer, a as CardStatus, m as CardTransactionQuery, e as CardTransactionType, b as CardType, l as CardsQuery, f as CommissionType, D as DepositNetwork, n as DepositQuery, E as EntryType, F as FileFormat, u as PageSize, P as Phase, Q as QueryParams, S as SavingCategory, g as ServiceProviderCategory, p as StatementQuery, i as TOSAgreements, t as TrackDataMethod, T as TransactionStatus, h as TransferNetwork, q as TransferQuery, r as UserQuery, U as UserStatus, o as WalletQuery, s as WalletTransactionQuery, W as WalletTransactionType } from '../identities-122c79fd.mjs';
1
+ export { A as AccountQuery, j as ApiKeyQuery, B as BalanceEntryQuery, k as BillPaymentQuery, d as CardErrorType, c as CardFundingType, C as CardIssuer, a as CardStatus, m as CardTransactionQuery, e as CardTransactionType, b as CardType, l as CardsQuery, f as CommissionType, D as DepositNetwork, n as DepositQuery, E as EntryType, F as FileFormat, u as PageSize, P as Phase, Q as QueryParams, S as SavingCategory, g as ServiceProviderCategory, p as StatementQuery, i as TOSAgreements, t as TrackDataMethod, T as TransactionStatus, h as TransferNetwork, q as TransferQuery, r as UserQuery, U as UserStatus, o as WalletQuery, s as WalletTransactionQuery, W as WalletTransactionType } from '../identities-f6558f98.mjs';
2
2
  import '../errors/index.mjs';
3
- import '../base-c1f04b51.mjs';
3
+ import '../data-d5bcb7c8.mjs';
@@ -1 +1 @@
1
- !function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("axios"),require("buffer")):"function"==typeof define&&define.amd?define(["exports","axios","buffer"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).cuenca={},t.axios,t.Buffer)}(this,(function(t,e,s){"use strict";function i(t){return t&&"object"==typeof t&&"default"in t?t:{default:t}}var r=i(e),a=i(s);class n extends Error{constructor(t){super(t),Object.setPrototypeOf(this,n.prototype)}}class c extends n{constructor(t,e){super(`Cuenca Response Error: ${e}`),this.name="CuencaResponseError",this.data=t,this.status=e,Object.setPrototypeOf(this,c.prototype)}}class o extends n{constructor(){super("No results were found"),this.name="NoResultFound",Object.setPrototypeOf(this,o.prototype)}}class d extends n{constructor(){super("One result was expected but multiple were found"),this.name="MultipleResultsFound",Object.setPrototypeOf(this,d.prototype)}}class u extends n{constructor(){super("An invalid JWT token was obtained during authentication"),this.name="MalformedJwtToken",Object.setPrototypeOf(this,u.prototype)}}class h extends n{constructor(){super("Invalid password"),this.name="InvalidPassword",Object.setPrototypeOf(this,h.prototype)}}class p extends Error{constructor(t){super(t),Object.setPrototypeOf(this,p.prototype)}}const l="undefined"!=typeof window&&void 0!==window.document,m="undefined"!=typeof process&&"[object process]"===Object.prototype.toString.call(process),w=l,_=m;class v{constructor(t,e){this.expiresAt=t,this.token=e}get isExpired(){const t=new Date;return(this.expiresAt.valueOf()-t.valueOf())/6e4<=5}static getExpirationDate=t=>{let e;try{const[,s]=t.split(".");e=JSON.parse(a.default.Buffer.from(`${s}==`,"base64").toString())}catch(t){throw new u}const{exp:s}=e;return new Date(new Date(1e3*s).toUTCString())};static create=async t=>{const e=t;e.jwtToken=null;const s=e.deleteRequestHeader("X-Cuenca-Token"),{token:i}=await t.post("token",{});s.eject();const r=v.getExpirationDate(i);return new v(r,i)}}class b{static Blocked=new b("blocked");static Comunication=new b("comunication");static ContactlesAmountLimit=new b("contactles_amount_limit");static FraudDetection=new b("fraud_detection");static FraudDetectionUncertain=new b("fraud_detection_uncertain");static InsufficientFounds=new b("insufficient_founds");static InvalidPin=new b("invalid_pin");static Notification=new b("notification");static NotificationDeactivatedCard=new b("notification_deactivated_card");constructor(t){this.value=t}}class y{static Credit=new y("credit");static Debit=new y("debit");constructor(t){this.value=t}}class f{static Accendo=new f("accendo");static Cuenca=new f("cuenca");constructor(t){this.value=t}}class g{static Active=new g("active");static Blocked=new g("blocked");static Created=new g("created");static Deactivated=new g("deactivated");static Printing=new g("printing");constructor(t){this.value=t}}class O{static Auth=new O("auth");static Capture=new O("capture");static Chargeback=new O("chargeback");static Expiration=new O("expiration");static Refund=new O("refund");static Void=new O("void");constructor(t){this.value=t}}class j{static Physical=new j("physical");static Virtual=new j("virtual");constructor(t){this.value=t}}class A{static CardRequest=new A("card_request");static CashDeposit=new A("cash_deposit");static OutgoingSpei=new A("outgoing_spei");constructor(t){this.value=t}}class x{static Cash=new x("cash");static Internal=new x("internal");static Spei=new x("spei");constructor(t){this.value=t}}class I{static Credit=new I("credit");static Debit=new I("debit");constructor(t){this.value=t}}class k{static Pdf=new k("pdf");static Xml=new k("xml");static Json=new k("json");constructor(t){this.value=t}}class T{static Sandbox=new T("sandbox");static Stage=new T("stage");static Api=new T("api");constructor(t){this.value=t}}class U{static Cable=new U("cable");static CreditCard=new U("credit_card");static Electricity=new U("electricity");static Gas=new U("gas");static Internet=new U("internet");static LandlineTelephone=new U("landline_telephone");static MobileTelephonePostpaid=new U("mobile_telephone_postpaid");static MobileTelephonePrepaid=new U("mobile_telephone_prepaid");static SateliteTelevision=new U("satelite_television");static Water=new U("water");constructor(t){this.value=t}}class C{static General=new C("general");static Home=new C("home");static Vehicle=new C("vehicle");static Travel=new C("travel");static Clothing=new C("clothing");static Other=new C("other");static Medical=new C("medical");static Accident=new C("accident");static Education=new C("education");constructor(t){this.value=t}}class S{static NotSet=new S("not_set");static Terminal=new S("terminal");static Manual=new S("manual");static Unknown=new S("unknown");static Contactless=new S("contactless");static FallBack=new S("fall_back");static MagneticStripe=new S("magnetic_stripe");static RecurringCharge=new S("recurring_charge");constructor(t){this.value=t}}class N{static Created=new N("created");static Failed=new N("failed");static InReview=new N("in_review");static Submitted=new N("submitted");static Succeeded=new N("succeeded");constructor(t){this.value=t}}class ${static Internal=new $("internal");static Spei=new $("spei");constructor(t){this.value=t}}class K{static Active=new K("active");static Deactivated=new K("deactivated");static fraud=new K("fraud");static pld_blocked=new K("pld_blocked");constructor(t){this.value=t}}class E{static Deposit=new E("deposit");static Withdrawal=new E("withdrawal");constructor(t){this.value=t}}const P=t=>{if(!t)return null;const e=new Date(t);return new Date(e.getTime())},q=(t,e)=>Object.values(t).find((t=>t.value===e));class D{constructor({createdAfter:t,createdBefore:e,limit:s,pageSize:i,relatedTransaction:r,userId:a,count:n=!1}){this.createdAfter=t,this.createdBefore=e,this._lmt=s,this.relatedTransaction=r,this.userId=a,this.count=n,this.pageSize=i}get limit(){return this._limit}set _lmt(t){let e=null;t&&t>=0&&(e=t),this._limit=e}toObject(){return{created_after:this.createdAfter,created_before:this.createdBefore,limit:this.limit,related_transaction:this.relatedTransaction,user_id:this.userId,page_size:this.pageSize&&this.pageSize.size}}toParams(){const t={...this.toObject()};return this.count&&(t.count=1),Object.keys(t).forEach((e=>{null==t[e]&&delete t[e]})),t}toQueryString(){return new URLSearchParams(this.toParams()).toString()}}class M extends D{constructor({accountNumber:t,...e}){super(e),this.accountNumber=t}toObject(){return Object.assign(super.toObject(),{account_number:this.accountNumber})}}class B extends D{constructor({active:t,...e}){super(e),this.active=t}toObject(){return Object.assign(super.toObject(),{active:this.active})}}class V extends D{constructor({status:t,...e}){super(e),this.status=t}toObject(){return Object.assign(super.toObject(),{status:this.status})}}class R extends V{constructor({trackingKey:t,network:e,...s}){super(s),this.trackingKey=t,this.network=e}toObject(){return Object.assign(super.toObject(),{tracking_key:this.trackingKey,network:this.network})}}class Y extends V{constructor({accountNumber:t,idempotencyKey:e,trackingKey:s,network:i,...r}){super(r),this.accountNumber=t,this.idempotencyKey=e,this.trackingKey=s,this.network=i}toObject(){return Object.assign(super.toObject(),{account_number:this.accountNumber,idempotency_key:this.idempotencyKey,tracking_key:this.trackingKey,network:this.network})}}class H extends D{constructor({fundingInstrumentUri:t,count:e=!1,walletId:s="default",...i}){super(i),this.fundingInstrumentUri=t,this.count=e,this.walletId=s}toObject(){return Object.assign(super.toObject(),{wallet_id:this.walletId,funding_instrument_uri:this.fundingInstrumentUri,count:this.count})}}class L extends D{constructor({accountNumber:t,...e}){super(e),this.accountNumber=t}toObject(){return Object.assign(super.toObject(),{account_number:this.accountNumber})}}class F extends D{constructor({cardUri:t,...e}){super(e),this.cardUri=t}toObject(){return Object.assign(super.toObject(),{card_uri:this.cardUri})}}class z extends D{constructor({cardUri:t,count:e=!1,...s}){super(s),this.cardUri=t,this.count=e}toObject(){return Object.assign(super.toObject(),{card_uri:this.cardUri,count:this.count})}}class Q extends D{constructor({walletUri:t,...e}){super(e),this.walletUri=t}toObject(){return Object.assign(super.toObject(),{wallet_uri:this.walletUri})}}class X extends D{constructor({emailAddress:t,phoneNumber:e,status:s,...i}){super(i),this.emailAddress=t,this.phoneNumber=e,this.status=s}toObject(){return Object.assign(super.toObject(),{email_address:this.emailAddress,phone_number:this.phoneNumber,status:this.status})}}class J extends D{constructor({active:t,...e}){super(e),this.active=t}toObject(){return Object.assign(super.toObject(),{active:this.active})}}class W extends D{constructor({month:t,year:e,...s}){super(s),this.d={month:t,year:e}}get month(){return this._date.month}get year(){return this._date.year}set d({month:t,year:e}){const s=P(Date.now());s.setUTCDate(1);if(P(`${e}-${t}-01`).getTime()>=s.getTime())throw new p(`${e}-${t} is not a valid year-month pair`);this._date={month:t,year:e}}toObject(){return Object.assign(super.toObject(),{month:this.month,year:this.year})}}class G{toObject(){return{}}toCleanObject(){const t=this.toObject();return Object.keys(t).forEach((e=>{null==t[e]&&delete t[e]})),t}}class Z extends G{constructor({ip:t,location:e,version:s}){super(),this.ip=t,this.location=e,this.version=s}static fromObject=({ip:t,location:e,version:s})=>new Z({ip:t,location:e,version:s})}var tt="0.0.1-dev.30";class et{constructor({apiKey:t,apiSecret:e,phase:s=T.Sandbox}={}){this.phase=s,this.basicAuth={apiKey:t,apiSecret:e},this.jwtToken=null,this._session=r.default.create()}get session(){return this._session}get origin(){return`https://${this.phase.value}.cuenca.com`}get authHeader(){const{apiKey:t,apiSecret:e}=this.basicAuth;return t&&e?`Basic ${a.default.Buffer.from(`${t}:${e}`,"utf-8").toString("base64")}`:""}addHeadersToRequest(t){const e=this._session.interceptors.request.use((e=>{const s=e,{headers:{common:i}}=s;return Object.keys(t).forEach((e=>i[e]=t[e])),s}));return{interceptorId:e,eject:()=>this._session.interceptors.request.eject(e)}}deleteRequestHeader(t){const e=this._session.interceptors.request.use((e=>{const s=e,{headers:{common:i}}=s;return delete i[t],s}));return{interceptorId:e,eject:()=>this._session.interceptors.request.eject(e)}}addConfigToRequest(t){const e=this._session.interceptors.request.use((e=>{const s=e;return Object.keys(t).forEach((e=>s[e]=t[e])),s}));return{interceptorId:e,eject:()=>this._session.interceptors.request.eject(e)}}async configure({apiKey:t,apiSecret:e,loginToken:s,phase:i,useJwt:r=!1}){this.basicAuth={apiKey:t||this.basicAuth.apiKey,apiSecret:e||this.basicAuth.apiSecret},i&&(this.phase=i),r&&(this.jwtToken=await v.create(this)),s&&this.addHeadersToRequest({"X-Cuenca-LoginToken":s})}async get({endpoint:t,format:e,params:s}){return this.request({endpoint:t,format:e,params:s})}async post({endpoint:t,data:e}){return this.request({method:"POST",endpoint:t,data:e})}async patch({endpoint:t,data:e}){return this.request({method:"PATCH",endpoint:t,data:e})}async delete({endpoint:t,data:e}){return this.request({method:"DELETE",endpoint:t,data:e})}async request({endpoint:t,data:e=null,format:s=k.Json,method:i="GET",params:r=null}){const a={Authorization:this.authHeader,"Content-Type":"application/json",Accept:`application/${s.value}`};_?a["User-Agent"]=`cuenca-js/${tt}`:w&&(a["X-User-Agent"]=`cuenca-js/${tt}`),this.jwtToken&&(this.jwtToken.isExpired&&(this.jwtToken=await v.create(this)),a["X-Cuenca-Token"]=this.jwtToken.token);const o=this.addHeadersToRequest(a),d=e;d&&Object.keys(d).forEach((t=>{d[t]instanceof Date&&(d[t]=d[t].toISOString())}));const u=this.addConfigToRequest({method:i,params:r,data:d,url:t});let h;try{h=await this._session.request({baseURL:this.origin})}catch(t){throw t.response?new c(t.response.data,t.response.status):t.request?new n(`No response received: ${t.errno}: ${t.code}`):new n(t.message)}finally{o.eject(),u.eject()}return h.data}}class st{constructor({accountNumber:t,createdAt:e,id:s,institutionName:i,name:r,userId:a}){this.accountNumber=t,this.createdAt=P(e),this.id=s,this.institutionName=i,this.name=r,this.userId=a}static fromObject=({id:t,name:e,...s})=>new st({id:t,name:e,accountNumber:s.account_number,createdAt:s.created_at,institutionName:s.institution_name,userId:s.user_id})}class it{constructor({createdAt:t,deactivatedAt:e,id:s,secret:i,userId:r,updatedAt:a}){this.createdAt=P(t),this.deactivatedAt=P(e),this.id=s,this.secret=i,this.userId=r,this.updatedAt=P(a)}static fromObject=({id:t,secret:e,...s})=>new it({id:t,secret:e,createdAt:s.created_at,deactivatedAt:s.deactivated_at,userId:s.user_id,updatedAt:s.updated_at});get isActive(){const t=P(Date.now());return!this.deactivatedAt||this.deactivatedAt.getTime()>t.getTime()}}class rt{constructor({arpc:t,createdAt:e,cardUri:s,isValidArqc:i}){this.arpc=t,this.createdAt=P(e),this.cardUri=s,this.isValidArqc=i}static fromObject=({arpc:t,...e})=>new rt({arpc:t,createdAt:e.created_at,cardUri:e.card_uri,isValidArqc:e.is_valid_arqc})}class at{constructor({amount:t,createdAt:e,descriptor:s,entryType:i,fundingInstrumentUri:r,id:a,name:n,relatedTransactionUri:c,rollingBalance:o}){this.amount=t,this.createdAt=P(e),this.descriptor=s,this.entryType=q(I,i),this.fundingInstrumentUri=r,this.id=a,this.name=n,this.relatedTransactionUri=c,this.rollingBalance=o}static fromObject=({amount:t,descriptor:e,id:s,name:i,type:r,...a})=>new at({amount:t,descriptor:e,name:i,id:s,createdAt:a.created_at,entryType:r,fundingInstrumentUri:a.funding_instrument_uri,relatedTransactionUri:a.related_transaction_uri,rollingBalance:a.rolling_balance})}class nt{constructor({amount:t,createdAt:e,descriptor:s,status:i,userId:r}){this.amount=t,this.createdAt=P(e),this.descriptor=s,this.status=q(N,i),this.userId=r}}class ct extends nt{constructor({amount:t,accountNumber:e,createdAt:s,descriptor:i,id:r,providerUri:a,status:n,userId:c}){super({amount:t,createdAt:s,descriptor:i,status:n,userId:c}),this.accountNumber=e,this.id=r,this.providerUri=a}static fromObject=({amount:t,descriptor:e,id:s,status:i,...r})=>new ct({amount:t,descriptor:e,id:s,status:i,accountNumber:r.account_number,createdAt:r.created_at,providerUri:r.provider_uri,userId:r.user_id})}class ot{constructor({createdAt:t,cvv2:e,expMonth:s,expYear:i,fundingType:r,id:a,issuer:n,number:c,pin:o,status:d,type:u,updatedAt:h,userId:p}){this.createdAt=P(t),this.cvv2=e,this.expMonth=s,this.expYear=i,this.fundingType=q(y,r),this.id=a,this.issuer=q(f,n),this.number=c,this.pin=o,this.status=q(g,d),this.type=q(j,u),this.updatedAt=P(h),this.userId=p}static fromObject=({cvv2:t,id:e,issuer:s,number:i,pin:r,status:a,type:n,...c})=>new ot({cvv2:t,id:e,issuer:s,number:i,pin:r,status:a,type:n,createdAt:c.created_at,expMonth:c.exp_month,expYear:c.exp_year,fundingType:c.funding_type,updatedAt:c.updated_at,userId:c.user_id})}class dt{constructor({cardUri:t,createdAt:e,id:s,ipAddress:i,success:r,userId:a}){this.cardUri=t,this.createdAt=P(e),this.id=s,this.ipAddress=i,this.success=r,this.userId=a}static fromObject=({id:t,success:e,...s})=>new dt({id:t,success:e,cardUri:s.card_uri,createdAt:s.created_at,ipAddress:s.ip_address,userId:s.user_id})}class ut extends nt{constructor({amount:t,cardErrorType:e,cardLastFour:s,cardType:i,cardUri:r,createdAt:a,descriptor:n,metadata:c,network:o,relatedCardTransactionsUris:d,status:u,type:h,userId:p}){super({amount:t,createdAt:a,descriptor:n,status:u,userId:p}),this.cardErrorType=q(b,e),this.cardLastFour=s,this.cardType=q(j,i),this.cardUri=r,this.metadata=c,this.network=o,this.relatedCardTransactionsUris=d,this.type=q(O,h)}static fromObject=({amount:t,descriptor:e,metadata:s,network:i,status:r,type:a,...n})=>new ut({amount:t,descriptor:e,metadata:s,network:i,status:r,type:a,cardErrorType:n.error_type,cardLastFour:n.card_last4,cardType:n.card_type,cardUri:n.card_uri,createdAt:n.created_at,relatedCardTransactionsUris:n.related_card_transaction,userId:n.user_id})}class ht{constructor({cardStatus:t,cardType:e,cardUri:s,createdAt:i,isExpired:r,isPinAttemptsExceeded:a,isValidCvv:n,isValidCvv2:c,isValidExpDate:o,isValidIcvv:d,isValidPinBlock:u,userId:h}){this.cardStatus=q(g,t),this.cardType=q(j,e),this.cardUri=s,this.createdAt=P(i),this.isExpired=r,this.isPinAttemptsExceeded=a,this.isValidCvv=n,this.isValidCvv2=c,this.isValidExpDate=o,this.isValidIcvv=d,this.isValidPinBlock=u,this.userId=h}static fromObject=({...t})=>new ht({cardStatus:t.card_status,cardType:t.card_type,cardUri:t.card_uri,createdAt:t.created_at,isExpired:t.is_expired,isPinAttemptsExceeded:t.is_pin_attempts_exceeded,isValidCvv:t.is_valid_cvv,isValidCvv2:t.is_valid_cvv2,isValidExpDate:t.is_valid_exp_date,isValidIcvv:t.is_valid_icvv,isValidPinBlock:t.is_valid_pin_block,userId:t.user_id});get isActive(){return this.cardStatus===g.Active}}class pt extends nt{constructor({amount:t,createdAt:e,descriptor:s,relatedTransactionUri:i,status:r,type:a,userId:n}){super({amount:t,createdAt:e,descriptor:s,status:r,userId:n}),this.relatedTransactionUri=i,this.type=q(A,a)}static fromObject=({amount:t,descriptor:e,status:s,type:i,...r})=>new pt({amount:t,descriptor:e,status:s,type:i,createdAt:r.created_at,relatedTransactionUri:r.related_transaction_uri,userId:r.user_id})}class lt extends nt{constructor({amount:t,createdAt:e,descriptor:s,id:i,network:r,status:a,sourceUri:n,trackingKey:c,userId:o}){super({amount:t,createdAt:e,descriptor:s,status:a,userId:o}),this.id=i,this.network=q(x,r),this.sourceUri=n,this.trackingKey=c}static fromObject=({amount:t,descriptor:e,id:s,network:i,status:r,...a})=>new lt({amount:t,descriptor:e,id:s,network:i,status:r,createdAt:a.created_at,sourceUri:a.source_uri,trackingKey:a.tracking_key,userId:a.user_id})}class mt{constructor({id:t}){this.id=t}static fromObject=({id:t})=>new mt({id:t})}class wt extends class{constructor({balance:t,createdAt:e,deactivatedAt:s,id:i,userId:r,updatedAt:a}){this.balance=t,this.createdAt=P(e),this.deactivatedAt=P(s),this.id=i,this.userId=r,this.updatedAt=P(a)}}{constructor({balance:t,category:e,createdAt:s,deactivatedAt:i,goalAmount:r,goalDate:a,id:n,name:c,userId:o,updatedAt:d}){super({balance:t,createdAt:s,deactivatedAt:i,id:n,userId:o,updatedAt:d}),this.category=q(C,e),this.goalAmount=r,this.goalDate=P(a),this.name=c}static fromObject=({balance:t,category:e,id:s,name:i,...r})=>new wt({balance:t,category:e,id:s,name:i,createdAt:r.created_at,deactivatedAt:r.deactivated_at,goalAmount:r.goal_amount,goalDate:r.goal_date,userId:r.user_id,updatedAt:r.updated_at})}class _t{constructor({categories:t,id:e,name:s,providerKey:i}){var r;this.categories=null==(r=t)?[]:r.map((t=>q(U,t))),this.id=e,this.name=s,this.providerKey=i}static fromObject=({categories:t,id:e,name:s,...i})=>new _t({categories:t,id:e,name:s,providerKey:i.provider_key})}class vt{constructor({createdAt:t,id:e,month:s,year:i}){this.createdAt=P(t),this.id=e,this.month=s,this.year=i}static fromObject=({id:t,month:e,year:s,...i})=>new vt({id:t,month:e,year:s,createdAt:i.created_at})}class bt extends nt{constructor({accountNumber:t,amount:e,createdAt:s,descriptor:i,destinationUri:r,id:a,idempotencyKey:n,network:c,recipientName:o,status:d,trackingKey:u,updatedAt:h,userId:p}){super({amount:e,createdAt:s,descriptor:i,status:d,userId:p}),this.accountNumber=t,this.destinationUri=r,this.id=a,this.idempotencyKey=n,this.network=q($,c),this.recipientName=o,this.trackingKey=u,this.updatedAt=P(h)}static fromObject=({amount:t,descriptor:e,id:s,network:i,status:r,...a})=>new bt({amount:t,descriptor:e,id:s,network:i,status:r,accountNumber:a.account_number,createdAt:a.created_at,destinationUri:a.destination_uri,idempotencyKey:a.idempotency_key,recipientName:a.recipient_name,trackingKey:a.tracking_key,updatedAt:a.updated_at,userId:a.user_id})}class yt{constructor({emailAddress:t,phoneNumber:e,status:s,termsOfService:i,verificationId:r}){this.emailAddress=t,this.phoneNumber=e,this.status=q(K,s),this.terms=i,this.verificationId=r}get termsOfService(){return this._termsOfService}set terms(t){t&&(this._termsOfService=Z.fromObject(t))}static fromObject=({...t})=>new yt({emailAddress:t.email_address,phoneNumber:t.phone_number,status:t.status,termsOfService:t.terms_of_service,verificationId:t.verification_id})}class ft{constructor({createdAt:t,id:e,isActive:s,updatedAt:i}){this.createdAt=P(t),this.id=e,this.isActive=s,this.updatedAt=P(i)}static fromObject=({id:t,...e})=>new ft({id:t,createdAt:e.created_at,isActive:e.is_active,updatedAt:e.updated_at})}class gt{constructor({id:t,lastLoginAt:e,success:s}){this.id=t,this.lastLoginAt=P(e),this.success=s}static fromObject=({id:t,success:e,...s})=>new gt({id:t,success:e,lastLoginAt:s.last_login_at})}class Ot extends nt{constructor({amount:t,createdAt:e,descriptor:s,id:i,status:r,transactionType:a,userId:n,walletUri:c}){super({amount:t,createdAt:e,descriptor:s,status:r,userId:n}),this.id=i,this.transactionType=q(E,a),this.walletUri=c}static fromObject=({amount:t,descriptor:e,id:s,status:i,...r})=>new Ot({amount:t,descriptor:e,id:s,status:i,createdAt:r.created_at,transactionType:r.transaction_type,userId:r.user_id,walletUri:r.wallet_uri})}class jt extends nt{constructor({amount:t,claimUrl:e,createdAt:s,descriptor:i,destinationUri:r,expiresAt:a,id:n,network:c,phoneNumber:o,recipientName:d,status:u,trackingKey:h,updatedAt:p,userId:l}){super({amount:t,createdAt:s,descriptor:i,status:u,userId:l}),this.claimUrl=e,this.destinationUri=r,this.id=n,this.expiresAt=P(a),this.network=q($,c),this.phoneNumber=o,this.recipientName=d,this.trackingKey=h,this.updatedAt=P(p)}static fromObject=({amount:t,descriptor:e,id:s,network:i,status:r,...a})=>new jt({amount:t,descriptor:e,id:s,network:i,status:r,createdAt:a.created_at,claimUrl:a.claim_url,destinationUri:a.destination_uri,expiresAt:a.expires_at,phoneNumber:a.phone_number,recipientName:a.recipient_name,trackingKey:a.tracking_key,updatedAt:a.updated_at,userId:a.user_id})}class At{constructor(t){this.superclass=t}with(...t){return t.reduce(((t,e)=>e(t)),this.superclass)}}const xt=t=>new At(t),It=(t,e)=>({accounts:()=>st.fromObject(e),api_keys:()=>it.fromObject(e),arpc:()=>rt.fromObject(e),balance_entries:()=>at.fromObject(e),bill_payments:()=>ct.fromObject(e),cards:()=>ot.fromObject(e),card_activations:()=>dt.fromObject(e),card_transactions:()=>ut.fromObject(e),card_validations:()=>ht.fromObject(e),commissions:()=>pt.fromObject(e),deposits:()=>lt.fromObject(e),login_tokens:()=>mt.fromObject(e),savings:()=>wt.fromObject(e),service_providers:()=>_t.fromObject(e),statements:()=>vt.fromObject(e),transfers:()=>bt.fromObject(e),users:()=>yt.fromObject(e),user_credentials:()=>ft.fromObject(e),user_logins:()=>gt.fromObject(e),wallet_transactions:()=>Ot.fromObject(e),whatsapp_transfers:()=>jt.fromObject(e)}[t]()),kt=t=>{if(null===t||""===t)return null;const e=t.match("/(.*?)/");return null===e?null:e[0].replaceAll("/","")};class Tt{constructor(t,e,s){this.path=t,this.QueryParams=e,this.client=s}}const Ut=t=>class extends t{async retrieve(t){const e=await this.client.get({endpoint:`/${this.path}/${t}`});return It(this.path,e)}},Ct=t=>class extends t{async _create(t){const e=await this.client.post({endpoint:`/${this.path}`,data:t});return It(this.path,e)}},St=t=>class extends t{async _update(t,e){const s=await this.client.patch({endpoint:`/${this.path}/${t}`,data:e});return It(this.path,s)}},Nt=t=>class extends t{async _deactivate(t,e){const s=await this.client.delete({endpoint:`/${this.path}/${t}`,data:e});return It(this.path,s)}},$t=t=>class extends t{async _download(t,e){return await this.client.get({endpoint:`/${this.path}/${t}`,format:e})}},Kt=t=>class extends t{async one(t=new this.QueryParams({})){const{items:e}=await this.client.get({endpoint:`/${this.path}`,params:t.toParams()});if(!e||!e.length)throw new o;if(e.length>1)throw new d;const[s]=e;return It(this.path,s)}async first(t=new this.QueryParams({})){const{items:e}=await this.client.get({endpoint:`/${this.path}`,params:t.toParams()});if(!e||!e[0])return null;const[s]=e;return It(this.path,s)}async count(t=new this.QueryParams({})){t.count=!0;const{count:e}=await this.client.get({endpoint:`/${this.path}`,params:t.toParams()});return e||0}async*all(t=new this.QueryParams({})){let e=`/${this.path}?${t.toQueryString()}`;for(;e;){const t=await this.client.get({endpoint:e});if(t.items)for(const e of t.items){const t=It(this.path,e);yield t}e=t.next_page_uri}}};class Et extends(xt(Tt).with(Kt,Ut)){constructor(t){super("accounts",M,t)}}class Pt extends G{constructor(t,e){super(),this.userId=t,this.metadata=e}toObject(){return{user_id:this.userId,metadata:this.metadata}}}class qt extends G{constructor(t,e,s){super(),this.userId=t,this.issuer=e,this.fundingType=s}toObject(){return{user_id:this.userId,issuer:this.issuer,funding_type:this.fundingType}}}class Dt extends G{constructor(t,e){super(),this.status=t,this.pinBlock=e}toObject(){return{status:this.status,pin_block:this.pinBlock}}}class Mt extends G{constructor(t,e,s,i){super(),this.n=t,this.eM=e,this.eY=s,this.c2=i}get number(){return this._number}set n(t){if([!!t,16===t.length,/^\d{16}/.test(t)].some((t=>!t)))throw new p("Invalid number");this._number=t.trim()}get expMonth(){return this._expMonth}set eM(t){if([!!t,t>=1,t<=12].some((t=>!t)))throw new p("Invalid expiration month");this._expMonth=t}get expYear(){return this._expYear}set eY(t){if([!!t,t>=18,t<=99].some((t=>!t)))throw new p("Invalid expiration year");this._expYear=t}get cvv2(){return this._cvv2}set c2(t){if([!!t,3===t.length,/^\d{3}/.test(t)].some((t=>!t)))throw new p("Invalid cvv2");this._cvv2=t}toObject(){return{number:this.number,exp_month:this.expMonth,exp_year:this.expYear,cvv2:this.cvv2}}}class Bt extends G{constructor({cvv:t,cvv2:e,expMonth:s,expYear:i,icvv:r,number:a,pinBlock:n,pinAttemptsExceeded:c}){super(),this.c=t,this.c2=e,this.em=s,this.ey=i,this.ic=r,this.n=a,this.pinBloc=n,this.pinAttemptsExceeded=c}get cvv(){return this._cvv}set c(t){if(!t)return;if([3===t.length].some((t=>!t)))throw new p("Invalid cvv");this._cvv=t}get cvv2(){return this._cvv2}set c2(t){if(!t)return;if([3===t.length].some((t=>!t)))throw new p("Invalid cvv2");this._cvv2=t}get expMonth(){return this._expMonth}set em(t){if(!t)return;if([t>=1,t<=12].some((t=>!t)))throw new p("Invalid expiration month");this._expMonth=t}get expYear(){return this._expYear}set ey(t){if(!t)return;if([t>=18,t<=99].some((t=>!t)))throw new p("Invalid expiration year");this._expYear=t}get icvv(){return this._icvv}set ic(t){if(!t)return;if([3===t.length].some((t=>!t)))throw new p("Invalid icvv");this._icvv=t}get number(){return this._number}set n(t){if([!!t,16===t.length,/^\d{16}/.test(t)].some((t=>!t)))throw new p("Invalid number");this._number=t}toObject(){return{cvv:this.cvv,cvv2:this.cvv2,exp_month:this.expMonth,exp_year:this.expYear,icvv:this.icvv,number:this.number,pin_block:this.pinBloc,pin_attempts_exceeded:this.pinAttemptsExceeded}}}class Vt extends G{constructor(t,e,s,i){super(),this.category=t,this.name=i,this.goalAmount=e,this.validDate=s}get goalDate(){return this._goalDate}set validDate(t){if(t){if(P(t).getTime()<=P(Date.now()).getTime())throw new p("The goal_date always need to be higher than now");this._goalDate=t}}toObject(){return{category:this.category,goal_amount:this.goalAmount,goal_date:this.goalDate,name:this.name}}}class Rt extends G{constructor({ip:t,location:e,type:s,version:i}){super(),this.ipAddress=t,this.location=e,this.type=s,this.version=i}get ip(){return this._ip}set ipAddress(t){if(!t)throw new p("missing ip address");if(!t.split(".").every((t=>t>=0&&t<=255)))throw new p("Invalid ip address");this._ip=t}toObject(){return{ip:this.ip,location:this.location,type:this.type,version:this.version}}}class Yt extends G{constructor(t,e,s,i,r){super(),this.accountNumber=t,this.amount=e,this.descriptor=s,this.idempotencyKey=i,this.recipientName=r}toObject(){return{account_number:this.accountNumber,amount:this.amount,descriptor:this.descriptor,idempotency_key:this.idempotencyKey,recipient_name:this.recipientName}}}class Ht extends G{constructor(t){super(),this.pwd=t}get password(){return this._password}set pwd(t){if([!!t,6===t.length,/^\d{6}$/.test(t)].some((t=>!t)))throw new p("Invalid password");this._password=t}toObject(){return{password:this.password}}}class Lt extends G{constructor(t,e){super(),this.pwd=t,this.isActive=e,this.req={password:this.password,isActive:this.isActive}}get password(){return this._password}get request(){return this._request}set pwd(t){if(!t)return void(this._password=t);if([6===t.length,/^\d{6}$/.test(t)].some((t=>!t)))throw new p("Invalid password");this._password=t}set req(t){if(t.password&&null!=t.isActive)throw new p("Only one property can be updated at a time");this._request=t}toObject(){return{password:this.request.password,is_active:this.request.isActive}}}class Ft extends G{constructor(t,e="me"){super(),this.pwd=t,this.userId=e}get password(){return this._password}set pwd(t){if([!!t,6===t.length,/^\d{6}$/.test(t)].some((t=>!t)))throw new p("Invalid password");this._password=t}toObject(){return{password:this.password,user_id:this.userId}}}class zt extends G{constructor({termsOfService:t,verificationId:e}){super(),this.terms=t,this.verificationId=e}get termsOfService(){return this._termsOfService}set terms(t){t&&(this._termsOfService=new Rt(t).toObject())}toObject(){return{terms_of_service:this.termsOfService,verification_id:this.verificationId}}}class Qt extends G{constructor(t,e,s){super(),this.amount=t,this.transactionType=e,this.walletUri=s}toObject(){return{amount:this.amount,transaction_type:this.transactionType,wallet_uri:this.walletUri}}}class Xt extends(xt(Tt).with(Ct,Nt,Kt,Ut,St)){constructor(t){super("api_keys",B,t)}async create(){return await this._create()}async deactivate(t,e=0){return await this._deactivate(t,{minutes:e})}async update(t,e,s){const i=new Pt(s,e);return await this._update(t,i.toCleanObject())}}xt(Tt).with(Ct);class Jt extends(xt(Tt).with(Kt,Ut)){constructor(t){super("balance_entries",H,t)}async relatedTransaction(t){const e=kt(t);if(null==e)return null;const s=await this.client.get({endpoint:t});return It(`${e}`,s)}async fundingInstrument(t){const e=kt(t);if(null==e)return null;const s=await this.client.get({endpoint:t});return It(`${e}`,s)}}class Wt extends(xt(Tt).with(Kt,Ut)){constructor(t){super("bill_payments",L,t)}async serviceProvider(t){const e=kt(t);if(null==e)return null;const s=await this.client.get({endpoint:t});return It(`${e}`,s)}}class Gt extends(xt(Tt).with(Ct)){constructor(t){super("card_activations",Object,t)}async create({number:t,expMonth:e,expYear:s,cvv2:i}){const r=new Mt(t,e,s,i);return await this._create(r.toCleanObject())}async card(t){if(!t)return null;const e=await this.client.get({endpoint:t});return ot.fromObject(e)}}class Zt extends(xt(Tt).with(Ct,Nt,Kt,Ut,St)){constructor(t){super("cards",z,t)}async create(t,e,s){const i=new qt(t,e,s);return await this._create(i.toCleanObject())}async deactivate(t){return await this._deactivate(t)}async update(t,e,s){const i=new Dt(e,s);return await this._update(t,i.toCleanObject())}}class te extends(xt(Tt).with(Kt,Ut)){constructor(t){super("card_transactions",F,t)}async relatedCard(t){const e=kt(t);if(null==e)return null;const s=await this.client.get({endpoint:t});return It(`${e}`,s)}}class ee extends(xt(Tt).with(Ct)){constructor(t){super("card_validations",Object,t)}async create({cvv:t,cvv2:e,expMonth:s,expYear:i,icvv:r,number:a,pinBlock:n,pinAttemptsExceeded:c}){const o=new Bt({cvv:t,cvv2:e,expMonth:s,expYear:i,icvv:r,number:a,pinBlock:n,pinAttemptsExceeded:c});return await this._create(o.toCleanObject())}async card(t){if(!t)return null;const e=await this.client.get({endpoint:t});return ot.fromObject(e)}}class se extends(xt(Tt).with(Kt,Ut)){constructor(t){super("commissions",D,t)}async relatedTransaction(t){const e=kt(t);if(null==e)return null;const s=await this.client.get(t);return It(`${e}`,s)}}class ie extends(xt(Tt).with(Kt,Ut)){constructor(t){super("deposits",R,t)}async source(t){const e=await this.client.get({endpoint:t});return st.fromObject(e)}}class re extends(xt(Tt).with(Ct)){constructor(t){super("login_tokens",Object,t)}async create(){return await this._create()}}class ae extends(xt(Tt).with(Ct,Nt,Kt,Ut,St)){constructor(t){super("savings",J,t)}async create(t,e,s,i){const r=new Vt(t,e,s,i);return await this._create(r.toObject())}async deactivate(t){return await this._deactivate(t)}async update(t,e,s,i,r){const a=new Vt(e,s,i,r);return await this._update(t,a.toObject())}}class ne extends(xt(Tt).with(Kt,Ut)){constructor(t){super("service_providers",D,t)}}class ce extends(xt(Tt).with($t,Kt)){constructor(t){super("statements",W,t)}async pdf(t){return await this._download(t,k.Pdf)}async xml(t){return await this._download(t,k.Xml)}}class oe extends(xt(Tt).with(Ct,Kt,Ut)){constructor(t){super("transfers",Y,t)}async destination(t){const e=await this.client.get({endpoint:t});return st.fromObject(e)}async create({accountNumber:t,amount:e,descriptor:s,recipientName:i,idempotencyKey:r}){const a=r||this.constructor._genIdempotencyKey(t,e),n=new Yt(t,e,s,a,i);return await this._create(n.toCleanObject())}async createMany(t){if(!t||!Array.isArray(t)||!t.length)return{};const e={submitted:[],errors:[]};return await Promise.all(t.map((async({accountNumber:t,amount:s,descriptor:i,idempotencyKey:r,recipientName:a})=>{const n=new Yt(t,s,i,r||this.constructor._genIdempotencyKey(t,s),a);let c;try{c=await this._create(n.toCleanObject())}catch(t){return void e.errors.push({actualRequest:n,error:t})}e.submitted.push(c)}))),e}static _genIdempotencyKey(t,e){const[s]=P(Date.now()).toISOString().split("T");return`${s}:${t}:${e}`}}class de extends(xt(Tt).with(Ct,St)){constructor(t){super("user_credentials",Object,t)}async create(t){const e=new Ht(t);return await this._create(e.toObject())}async update({isActive:t,password:e,userId:s="me"}){const i=new Lt(e,t);return await this._update(s,i.toCleanObject())}}class ue extends(xt(Tt).with(Ct,Nt)){constructor(t){super("user_logins",Object,t),this.loginIdInHeaders=null}async create(t,e){const s=new Ft(t,e),i=await this._create(s.toObject());if(!i.success)throw new h;return this.loginIdInHeaders=this.client.addHeadersToRequest({"X-Cuenca-LoginId":i.id}),i}async logOut(t="me"){return await this._deactivate(t,{}),this.loginIdInHeaders&&this.loginIdInHeaders.eject(),!0}}class he extends(xt(Tt).with(Kt,St)){constructor(t){super("users",X,t)}async update({termsOfService:t,userId:e="me",verificationId:s}){const i=new zt({termsOfService:t,verificationId:s});return await this._update(e,i.toCleanObject())}}class pe extends(xt(Tt).with(Ct,Kt,Ut)){constructor(t){super("wallet_transactions",Q,t)}async create(t,e,s){const i=new Qt(t,e,s);return await this._create(i.toObject())}async realtedWallet(t){const e=kt(t);if(null==e)return null;const s=await this.client.get(t);return It(`${e}`,s)}}class le extends(xt(Tt).with(Kt,Ut)){constructor(t){super("whatsapp_transfers",D,t)}async accountDestination(t){const e=kt(t);if(null==e)return null;const s=await this.client.get(t);return It(`${e}`,s)}}t.Cuenca=class{constructor(t,e,s=T.Sandbox){this.client=new et({apiKey:t,apiSecret:e,phase:s}),this.withClient(this.client)}withClient(t){this.accounts=new Et(t),this.apiKeys=new Xt(t),this.balanceEntries=new Jt(t),this.billPayments=new Wt(t),this.cardActivations=new Gt(t),this.cards=new Zt(t),this.cardTransactions=new te(t),this.cardValidations=new ee(t),this.commissions=new se(t),this.deposits=new ie(t),this.loginTokens=new re(t),this.savings=new ae(t),this.serviceProviders=new ne(t),this.statements=new ce(t),this.transfers=new oe(t),this.users=new he(t),this.userCredentials=new de(t),this.userLogins=new ue(t),this.walletTransactions=new pe(t),this.whatsAppTransfers=new le(t)}}}));
1
+ !function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("axios"),require("buffer")):"function"==typeof define&&define.amd?define(["exports","axios","buffer"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).cuenca={},t.axios,t.Buffer)}(this,(function(t,e,s){"use strict";function i(t){return t&&"object"==typeof t&&"default"in t?t:{default:t}}var r=i(e),a=i(s);class n extends Error{constructor(t){super(t),Object.setPrototypeOf(this,n.prototype)}}class c extends n{constructor(t,e){super(`Cuenca Response Error: ${e}`),this.name="CuencaResponseError",this.data=t,this.status=e,Object.setPrototypeOf(this,c.prototype)}}class o extends n{constructor(){super("No results were found"),this.name="NoResultFound",Object.setPrototypeOf(this,o.prototype)}}class d extends n{constructor(){super("One result was expected but multiple were found"),this.name="MultipleResultsFound",Object.setPrototypeOf(this,d.prototype)}}class u extends n{constructor(){super("An invalid JWT token was obtained during authentication"),this.name="MalformedJwtToken",Object.setPrototypeOf(this,u.prototype)}}class h extends n{constructor(){super("Invalid password"),this.name="InvalidPassword",Object.setPrototypeOf(this,h.prototype)}}class p extends Error{constructor(t){super(t),Object.setPrototypeOf(this,p.prototype)}}const l="undefined"!=typeof window&&void 0!==window.document,m="undefined"!=typeof process&&"[object process]"===Object.prototype.toString.call(process),w=l,_=m;class v{constructor(t,e){this.expiresAt=t,this.token=e}get isExpired(){const t=new Date;return(this.expiresAt.valueOf()-t.valueOf())/6e4<=5}static getExpirationDate=t=>{let e;try{const[,s]=t.split(".");e=JSON.parse(a.default.Buffer.from(`${s}==`,"base64").toString())}catch(t){throw new u}const{exp:s}=e;return new Date(new Date(1e3*s).toUTCString())};static create=async t=>{const e=t;e.jwtToken=null;const s=e.deleteRequestHeader("X-Cuenca-Token"),{token:i}=await t.post("token",{});s.eject();const r=v.getExpirationDate(i);return new v(r,i)}}class b{static Blocked=new b("blocked");static Comunication=new b("comunication");static ContactlesAmountLimit=new b("contactles_amount_limit");static FraudDetection=new b("fraud_detection");static FraudDetectionUncertain=new b("fraud_detection_uncertain");static InsufficientFounds=new b("insufficient_founds");static InvalidPin=new b("invalid_pin");static Notification=new b("notification");static NotificationDeactivatedCard=new b("notification_deactivated_card");constructor(t){this.value=t}}class y{static Credit=new y("credit");static Debit=new y("debit");constructor(t){this.value=t}}class f{static Accendo=new f("accendo");static Cuenca=new f("cuenca");constructor(t){this.value=t}}class g{static Active=new g("active");static Blocked=new g("blocked");static Created=new g("created");static Deactivated=new g("deactivated");static Printing=new g("printing");constructor(t){this.value=t}}class O{static Auth=new O("auth");static Capture=new O("capture");static Chargeback=new O("chargeback");static Expiration=new O("expiration");static Refund=new O("refund");static Void=new O("void");constructor(t){this.value=t}}class j{static Physical=new j("physical");static Virtual=new j("virtual");constructor(t){this.value=t}}class A{static CardRequest=new A("card_request");static CashDeposit=new A("cash_deposit");static OutgoingSpei=new A("outgoing_spei");constructor(t){this.value=t}}class x{static Cash=new x("cash");static Internal=new x("internal");static Spei=new x("spei");constructor(t){this.value=t}}class I{static Credit=new I("credit");static Debit=new I("debit");constructor(t){this.value=t}}class k{static Pdf=new k("pdf");static Xml=new k("xml");static Json=new k("json");constructor(t){this.value=t}}class T{static Sandbox=new T("sandbox");static Stage=new T("stage");static Api=new T("api");constructor(t){this.value=t}}class U{static Cable=new U("cable");static CreditCard=new U("credit_card");static Electricity=new U("electricity");static Gas=new U("gas");static Internet=new U("internet");static LandlineTelephone=new U("landline_telephone");static MobileTelephonePostpaid=new U("mobile_telephone_postpaid");static MobileTelephonePrepaid=new U("mobile_telephone_prepaid");static SateliteTelevision=new U("satelite_television");static Water=new U("water");constructor(t){this.value=t}}class C{static General=new C("general");static Home=new C("home");static Vehicle=new C("vehicle");static Travel=new C("travel");static Clothing=new C("clothing");static Other=new C("other");static Medical=new C("medical");static Accident=new C("accident");static Education=new C("education");constructor(t){this.value=t}}class S{static NotSet=new S("not_set");static Terminal=new S("terminal");static Manual=new S("manual");static Unknown=new S("unknown");static Contactless=new S("contactless");static FallBack=new S("fall_back");static MagneticStripe=new S("magnetic_stripe");static RecurringCharge=new S("recurring_charge");constructor(t){this.value=t}}class N{static Created=new N("created");static Failed=new N("failed");static InReview=new N("in_review");static Submitted=new N("submitted");static Succeeded=new N("succeeded");constructor(t){this.value=t}}class ${static Internal=new $("internal");static Spei=new $("spei");constructor(t){this.value=t}}class K{static Active=new K("active");static Deactivated=new K("deactivated");static fraud=new K("fraud");static pld_blocked=new K("pld_blocked");constructor(t){this.value=t}}class q{static Deposit=new q("deposit");static Withdrawal=new q("withdrawal");constructor(t){this.value=t}}const E=t=>{if(!t)return null;const e=new Date(t);return new Date(e.getTime())},P=(t,e)=>Object.values(t).find((t=>t.value===e));class D{constructor({createdAfter:t,createdBefore:e,limit:s,pageSize:i,relatedTransaction:r,userId:a,count:n=!1}){this.createdAfter=t,this.createdBefore=e,this._lmt=s,this.relatedTransaction=r,this.userId=a,this.count=n,this.pageSize=i}get limit(){return this._limit}set _lmt(t){let e=null;t&&t>=0&&(e=t),this._limit=e}toObject(){return{created_after:this.createdAfter,created_before:this.createdBefore,limit:this.limit,related_transaction:this.relatedTransaction,user_id:this.userId,page_size:this.pageSize&&this.pageSize.size}}toParams(){const t={...this.toObject()};return this.count&&(t.count=1),Object.keys(t).forEach((e=>{null==t[e]&&delete t[e]})),t}toQueryString(){return new URLSearchParams(this.toParams()).toString()}}class M extends D{constructor({accountNumber:t,...e}){super(e),this.accountNumber=t}toObject(){return Object.assign(super.toObject(),{account_number:this.accountNumber})}}class B extends D{constructor({active:t,...e}){super(e),this.active=t}toObject(){return Object.assign(super.toObject(),{active:this.active})}}class V extends D{constructor({status:t,...e}){super(e),this.status=t}toObject(){return Object.assign(super.toObject(),{status:this.status})}}class R extends V{constructor({trackingKey:t,network:e,...s}){super(s),this.trackingKey=t,this.network=e}toObject(){return Object.assign(super.toObject(),{tracking_key:this.trackingKey,network:this.network})}}class Y extends V{constructor({accountNumber:t,idempotencyKey:e,trackingKey:s,network:i,...r}){super(r),this.accountNumber=t,this.idempotencyKey=e,this.trackingKey=s,this.network=i}toObject(){return Object.assign(super.toObject(),{account_number:this.accountNumber,idempotency_key:this.idempotencyKey,tracking_key:this.trackingKey,network:this.network})}}class H extends D{constructor({fundingInstrumentUri:t,count:e=!1,walletId:s="default",...i}){super(i),this.fundingInstrumentUri=t,this.count=e,this.walletId=s}toObject(){return Object.assign(super.toObject(),{wallet_id:this.walletId,funding_instrument_uri:this.fundingInstrumentUri,count:this.count})}}class L extends D{constructor({accountNumber:t,...e}){super(e),this.accountNumber=t}toObject(){return Object.assign(super.toObject(),{account_number:this.accountNumber})}}class F extends D{constructor({cardUri:t,...e}){super(e),this.cardUri=t}toObject(){return Object.assign(super.toObject(),{card_uri:this.cardUri})}}class X extends D{constructor({cardUri:t,count:e=!1,...s}){super(s),this.cardUri=t,this.count=e}toObject(){return Object.assign(super.toObject(),{card_uri:this.cardUri,count:this.count})}}class z extends D{constructor({walletUri:t,...e}){super(e),this.walletUri=t}toObject(){return Object.assign(super.toObject(),{wallet_uri:this.walletUri})}}class Q extends D{constructor({emailAddress:t,phoneNumber:e,status:s,...i}){super(i),this.emailAddress=t,this.phoneNumber=e,this.status=s}toObject(){return Object.assign(super.toObject(),{email_address:this.emailAddress,phone_number:this.phoneNumber,status:this.status})}}class J extends D{constructor({active:t,...e}){super(e),this.active=t}toObject(){return Object.assign(super.toObject(),{active:this.active})}}class W extends D{constructor({month:t,year:e,...s}){super(s),this.d={month:t,year:e}}get month(){return this._date.month}get year(){return this._date.year}set d({month:t,year:e}){const s=E(Date.now());s.setUTCDate(1);if(E(`${e}-${t}-01`).getTime()>=s.getTime())throw new p(`${e}-${t} is not a valid year-month pair`);this._date={month:t,year:e}}toObject(){return Object.assign(super.toObject(),{month:this.month,year:this.year})}}class G{constructor({ip:t,location:e,version:s}){this.ip=t,this.location=e,this.version=s}static fromObject=({ip:t,location:e,version:s})=>new G({ip:t,location:e,version:s})}var Z="0.0.1-dev.31";class tt{constructor({apiKey:t,apiSecret:e,phase:s=T.Sandbox}={}){this.phase=s,this.basicAuth={apiKey:t,apiSecret:e},this.jwtToken=null,this._session=r.default.create()}get session(){return this._session}get origin(){return`https://${this.phase.value}.cuenca.com`}get authHeader(){const{apiKey:t,apiSecret:e}=this.basicAuth;return t&&e?`Basic ${a.default.Buffer.from(`${t}:${e}`,"utf-8").toString("base64")}`:""}addHeadersToRequest(t){const e=this._session.interceptors.request.use((e=>{const s=e,{headers:{common:i}}=s;return Object.keys(t).forEach((e=>i[e]=t[e])),s}));return{interceptorId:e,eject:()=>this._session.interceptors.request.eject(e)}}deleteRequestHeader(t){const e=this._session.interceptors.request.use((e=>{const s=e,{headers:{common:i}}=s;return delete i[t],s}));return{interceptorId:e,eject:()=>this._session.interceptors.request.eject(e)}}addConfigToRequest(t){const e=this._session.interceptors.request.use((e=>{const s=e;return Object.keys(t).forEach((e=>s[e]=t[e])),s}));return{interceptorId:e,eject:()=>this._session.interceptors.request.eject(e)}}async configure({apiKey:t,apiSecret:e,loginToken:s,phase:i,sessionId:r,useJwt:a=!1}){this.basicAuth={apiKey:t||this.basicAuth.apiKey,apiSecret:e||this.basicAuth.apiSecret},i&&(this.phase=i),a&&(this.jwtToken=await v.create(this)),s&&this.addHeadersToRequest({"X-Cuenca-LoginToken":s}),r&&this.addHeadersToRequest({"X-Cuenca-SessionId":r})}async get({endpoint:t,format:e,params:s}){return this.request({endpoint:t,format:e,params:s})}async post({endpoint:t,data:e}){return this.request({method:"POST",endpoint:t,data:e})}async patch({endpoint:t,data:e}){return this.request({method:"PATCH",endpoint:t,data:e})}async delete({endpoint:t,data:e}){return this.request({method:"DELETE",endpoint:t,data:e})}async request({endpoint:t,data:e=null,format:s=k.Json,method:i="GET",params:r=null}){const a={Authorization:this.authHeader,"Content-Type":"application/json",Accept:`application/${s.value}`};_?a["User-Agent"]=`cuenca-js/${Z}`:w&&(a["X-User-Agent"]=`cuenca-js/${Z}`),this.jwtToken&&(this.jwtToken.isExpired&&(this.jwtToken=await v.create(this)),a["X-Cuenca-Token"]=this.jwtToken.token);const o=this.addHeadersToRequest(a),d=e;d&&Object.keys(d).forEach((t=>{d[t]instanceof Date&&(d[t]=d[t].toISOString())}));const u=this.addConfigToRequest({method:i,params:r,data:d,url:t});let h;try{h=await this._session.request({baseURL:this.origin})}catch(t){throw t.response?new c(t.response.data,t.response.status):t.request?new n(`No response received: ${t.errno}: ${t.code}`):new n(t.message)}finally{o.eject(),u.eject()}return h.data}}class et{constructor({accountNumber:t,createdAt:e,id:s,institutionName:i,name:r,userId:a}){this.accountNumber=t,this.createdAt=E(e),this.id=s,this.institutionName=i,this.name=r,this.userId=a}static fromObject=({id:t,name:e,...s})=>new et({id:t,name:e,accountNumber:s.account_number,createdAt:s.created_at,institutionName:s.institution_name,userId:s.user_id})}class st{constructor({createdAt:t,deactivatedAt:e,id:s,secret:i,userId:r,updatedAt:a}){this.createdAt=E(t),this.deactivatedAt=E(e),this.id=s,this.secret=i,this.userId=r,this.updatedAt=E(a)}static fromObject=({id:t,secret:e,...s})=>new st({id:t,secret:e,createdAt:s.created_at,deactivatedAt:s.deactivated_at,userId:s.user_id,updatedAt:s.updated_at});get isActive(){const t=E(Date.now());return!this.deactivatedAt||this.deactivatedAt.getTime()>t.getTime()}}class it{constructor({arpc:t,createdAt:e,cardUri:s,isValidArqc:i}){this.arpc=t,this.createdAt=E(e),this.cardUri=s,this.isValidArqc=i}static fromObject=({arpc:t,...e})=>new it({arpc:t,createdAt:e.created_at,cardUri:e.card_uri,isValidArqc:e.is_valid_arqc})}class rt{constructor({amount:t,createdAt:e,descriptor:s,entryType:i,fundingInstrumentUri:r,id:a,name:n,relatedTransactionUri:c,rollingBalance:o}){this.amount=t,this.createdAt=E(e),this.descriptor=s,this.entryType=P(I,i),this.fundingInstrumentUri=r,this.id=a,this.name=n,this.relatedTransactionUri=c,this.rollingBalance=o}static fromObject=({amount:t,descriptor:e,id:s,name:i,type:r,...a})=>new rt({amount:t,descriptor:e,name:i,id:s,createdAt:a.created_at,entryType:r,fundingInstrumentUri:a.funding_instrument_uri,relatedTransactionUri:a.related_transaction_uri,rollingBalance:a.rolling_balance})}class at{constructor({amount:t,createdAt:e,descriptor:s,status:i,userId:r}){this.amount=t,this.createdAt=E(e),this.descriptor=s,this.status=P(N,i),this.userId=r}}class nt extends at{constructor({amount:t,accountNumber:e,createdAt:s,descriptor:i,id:r,providerUri:a,status:n,userId:c}){super({amount:t,createdAt:s,descriptor:i,status:n,userId:c}),this.accountNumber=e,this.id=r,this.providerUri=a}static fromObject=({amount:t,descriptor:e,id:s,status:i,...r})=>new nt({amount:t,descriptor:e,id:s,status:i,accountNumber:r.account_number,createdAt:r.created_at,providerUri:r.provider_uri,userId:r.user_id})}class ct{constructor({createdAt:t,cvv2:e,expMonth:s,expYear:i,fundingType:r,id:a,issuer:n,number:c,pin:o,status:d,type:u,updatedAt:h,userId:p}){this.createdAt=E(t),this.cvv2=e,this.expMonth=s,this.expYear=i,this.fundingType=P(y,r),this.id=a,this.issuer=P(f,n),this.number=c,this.pin=o,this.status=P(g,d),this.type=P(j,u),this.updatedAt=E(h),this.userId=p}static fromObject=({cvv2:t,id:e,issuer:s,number:i,pin:r,status:a,type:n,...c})=>new ct({cvv2:t,id:e,issuer:s,number:i,pin:r,status:a,type:n,createdAt:c.created_at,expMonth:c.exp_month,expYear:c.exp_year,fundingType:c.funding_type,updatedAt:c.updated_at,userId:c.user_id})}class ot{constructor({cardUri:t,createdAt:e,id:s,ipAddress:i,success:r,userId:a}){this.cardUri=t,this.createdAt=E(e),this.id=s,this.ipAddress=i,this.success=r,this.userId=a}static fromObject=({id:t,success:e,...s})=>new ot({id:t,success:e,cardUri:s.card_uri,createdAt:s.created_at,ipAddress:s.ip_address,userId:s.user_id})}class dt extends at{constructor({amount:t,cardErrorType:e,cardLastFour:s,cardType:i,cardUri:r,createdAt:a,descriptor:n,metadata:c,network:o,relatedCardTransactionsUris:d,status:u,type:h,userId:p}){super({amount:t,createdAt:a,descriptor:n,status:u,userId:p}),this.cardErrorType=P(b,e),this.cardLastFour=s,this.cardType=P(j,i),this.cardUri=r,this.metadata=c,this.network=o,this.relatedCardTransactionsUris=d,this.type=P(O,h)}static fromObject=({amount:t,descriptor:e,metadata:s,network:i,status:r,type:a,...n})=>new dt({amount:t,descriptor:e,metadata:s,network:i,status:r,type:a,cardErrorType:n.error_type,cardLastFour:n.card_last4,cardType:n.card_type,cardUri:n.card_uri,createdAt:n.created_at,relatedCardTransactionsUris:n.related_card_transaction,userId:n.user_id})}class ut{constructor({cardStatus:t,cardType:e,cardUri:s,createdAt:i,isExpired:r,isPinAttemptsExceeded:a,isValidCvv:n,isValidCvv2:c,isValidExpDate:o,isValidIcvv:d,isValidPinBlock:u,userId:h}){this.cardStatus=P(g,t),this.cardType=P(j,e),this.cardUri=s,this.createdAt=E(i),this.isExpired=r,this.isPinAttemptsExceeded=a,this.isValidCvv=n,this.isValidCvv2=c,this.isValidExpDate=o,this.isValidIcvv=d,this.isValidPinBlock=u,this.userId=h}static fromObject=({...t})=>new ut({cardStatus:t.card_status,cardType:t.card_type,cardUri:t.card_uri,createdAt:t.created_at,isExpired:t.is_expired,isPinAttemptsExceeded:t.is_pin_attempts_exceeded,isValidCvv:t.is_valid_cvv,isValidCvv2:t.is_valid_cvv2,isValidExpDate:t.is_valid_exp_date,isValidIcvv:t.is_valid_icvv,isValidPinBlock:t.is_valid_pin_block,userId:t.user_id});get isActive(){return this.cardStatus===g.Active}}class ht extends at{constructor({amount:t,createdAt:e,descriptor:s,relatedTransactionUri:i,status:r,type:a,userId:n}){super({amount:t,createdAt:e,descriptor:s,status:r,userId:n}),this.relatedTransactionUri=i,this.type=P(A,a)}static fromObject=({amount:t,descriptor:e,status:s,type:i,...r})=>new ht({amount:t,descriptor:e,status:s,type:i,createdAt:r.created_at,relatedTransactionUri:r.related_transaction_uri,userId:r.user_id})}class pt extends at{constructor({amount:t,createdAt:e,descriptor:s,id:i,network:r,status:a,sourceUri:n,trackingKey:c,userId:o}){super({amount:t,createdAt:e,descriptor:s,status:a,userId:o}),this.id=i,this.network=P(x,r),this.sourceUri=n,this.trackingKey=c}static fromObject=({amount:t,descriptor:e,id:s,network:i,status:r,...a})=>new pt({amount:t,descriptor:e,id:s,network:i,status:r,createdAt:a.created_at,sourceUri:a.source_uri,trackingKey:a.tracking_key,userId:a.user_id})}class lt{constructor({id:t}){this.id=t}static fromObject=({id:t})=>new lt({id:t})}class mt extends class{constructor({balance:t,createdAt:e,deactivatedAt:s,id:i,userId:r,updatedAt:a}){this.balance=t,this.createdAt=E(e),this.deactivatedAt=E(s),this.id=i,this.userId=r,this.updatedAt=E(a)}}{constructor({balance:t,category:e,createdAt:s,deactivatedAt:i,goalAmount:r,goalDate:a,id:n,name:c,userId:o,updatedAt:d}){super({balance:t,createdAt:s,deactivatedAt:i,id:n,userId:o,updatedAt:d}),this.category=P(C,e),this.goalAmount=r,this.goalDate=E(a),this.name=c}static fromObject=({balance:t,category:e,id:s,name:i,...r})=>new mt({balance:t,category:e,id:s,name:i,createdAt:r.created_at,deactivatedAt:r.deactivated_at,goalAmount:r.goal_amount,goalDate:r.goal_date,userId:r.user_id,updatedAt:r.updated_at})}class wt{constructor({categories:t,id:e,name:s,providerKey:i}){var r;this.categories=null==(r=t)?[]:r.map((t=>P(U,t))),this.id=e,this.name=s,this.providerKey=i}static fromObject=({categories:t,id:e,name:s,...i})=>new wt({categories:t,id:e,name:s,providerKey:i.provider_key})}class _t{constructor({createdAt:t,id:e,month:s,year:i}){this.createdAt=E(t),this.id=e,this.month=s,this.year=i}static fromObject=({id:t,month:e,year:s,...i})=>new _t({id:t,month:e,year:s,createdAt:i.created_at})}class vt extends at{constructor({accountNumber:t,amount:e,createdAt:s,descriptor:i,destinationUri:r,id:a,idempotencyKey:n,network:c,recipientName:o,status:d,trackingKey:u,updatedAt:h,userId:p}){super({amount:e,createdAt:s,descriptor:i,status:d,userId:p}),this.accountNumber=t,this.destinationUri=r,this.id=a,this.idempotencyKey=n,this.network=P($,c),this.recipientName=o,this.trackingKey=u,this.updatedAt=E(h)}static fromObject=({amount:t,descriptor:e,id:s,network:i,status:r,...a})=>new vt({amount:t,descriptor:e,id:s,network:i,status:r,accountNumber:a.account_number,createdAt:a.created_at,destinationUri:a.destination_uri,idempotencyKey:a.idempotency_key,recipientName:a.recipient_name,trackingKey:a.tracking_key,updatedAt:a.updated_at,userId:a.user_id})}class bt{constructor({emailAddress:t,level:e,phoneNumber:s,status:i,termsOfService:r,verificationId:a}){this.emailAddress=t,this.level=e,this.phoneNumber=s,this.status=P(K,i),this.terms=r,this.verificationId=a}get termsOfService(){return this._termsOfService}set terms(t){t&&(this._termsOfService=G.fromObject(t))}static fromObject=({level:t,status:e,...s})=>new bt({level:t,status:e,emailAddress:s.email_address,phoneNumber:s.phone_number,termsOfService:s.terms_of_service,verificationId:s.verification_id})}class yt{constructor({createdAt:t,id:e,isActive:s,updatedAt:i}){this.createdAt=E(t),this.id=e,this.isActive=s,this.updatedAt=E(i)}static fromObject=({id:t,...e})=>new yt({id:t,createdAt:e.created_at,isActive:e.is_active,updatedAt:e.updated_at})}class ft{constructor({id:t,lastLoginAt:e,success:s}){this.id=t,this.lastLoginAt=E(e),this.success=s}static fromObject=({id:t,success:e,...s})=>new ft({id:t,success:e,lastLoginAt:s.last_login_at})}class gt extends at{constructor({amount:t,createdAt:e,descriptor:s,id:i,status:r,transactionType:a,userId:n,walletUri:c}){super({amount:t,createdAt:e,descriptor:s,status:r,userId:n}),this.id=i,this.transactionType=P(q,a),this.walletUri=c}static fromObject=({amount:t,descriptor:e,id:s,status:i,...r})=>new gt({amount:t,descriptor:e,id:s,status:i,createdAt:r.created_at,transactionType:r.transaction_type,userId:r.user_id,walletUri:r.wallet_uri})}class Ot extends at{constructor({amount:t,claimUrl:e,createdAt:s,descriptor:i,destinationUri:r,expiresAt:a,id:n,network:c,phoneNumber:o,recipientName:d,status:u,trackingKey:h,updatedAt:p,userId:l}){super({amount:t,createdAt:s,descriptor:i,status:u,userId:l}),this.claimUrl=e,this.destinationUri=r,this.id=n,this.expiresAt=E(a),this.network=P($,c),this.phoneNumber=o,this.recipientName=d,this.trackingKey=h,this.updatedAt=E(p)}static fromObject=({amount:t,descriptor:e,id:s,network:i,status:r,...a})=>new Ot({amount:t,descriptor:e,id:s,network:i,status:r,createdAt:a.created_at,claimUrl:a.claim_url,destinationUri:a.destination_uri,expiresAt:a.expires_at,phoneNumber:a.phone_number,recipientName:a.recipient_name,trackingKey:a.tracking_key,updatedAt:a.updated_at,userId:a.user_id})}class jt{constructor(t){this.superclass=t}with(...t){return t.reduce(((t,e)=>e(t)),this.superclass)}}const At=t=>new jt(t),xt=(t,e)=>({accounts:()=>et.fromObject(e),api_keys:()=>st.fromObject(e),arpc:()=>it.fromObject(e),balance_entries:()=>rt.fromObject(e),bill_payments:()=>nt.fromObject(e),cards:()=>ct.fromObject(e),card_activations:()=>ot.fromObject(e),card_transactions:()=>dt.fromObject(e),card_validations:()=>ut.fromObject(e),commissions:()=>ht.fromObject(e),deposits:()=>pt.fromObject(e),login_tokens:()=>lt.fromObject(e),savings:()=>mt.fromObject(e),service_providers:()=>wt.fromObject(e),statements:()=>_t.fromObject(e),transfers:()=>vt.fromObject(e),users:()=>bt.fromObject(e),user_credentials:()=>yt.fromObject(e),user_logins:()=>ft.fromObject(e),wallet_transactions:()=>gt.fromObject(e),whatsapp_transfers:()=>Ot.fromObject(e)}[t]()),It=t=>{if(null===t||""===t)return null;const e=t.match("/(.*?)/");return null===e?null:e[0].replaceAll("/","")};class kt{constructor(t,e,s){this.path=t,this.QueryParams=e,this.client=s}}const Tt=t=>class extends t{async retrieve(t){const e=await this.client.get({endpoint:`/${this.path}/${t}`});return xt(this.path,e)}},Ut=t=>class extends t{async _create(t){const e=await this.client.post({endpoint:`/${this.path}`,data:t});return xt(this.path,e)}},Ct=t=>class extends t{async _update(t,e){const s=await this.client.patch({endpoint:`/${this.path}/${t}`,data:e});return xt(this.path,s)}},St=t=>class extends t{async _deactivate(t,e){const s=await this.client.delete({endpoint:`/${this.path}/${t}`,data:e});return xt(this.path,s)}},Nt=t=>class extends t{async _download(t,e){return await this.client.get({endpoint:`/${this.path}/${t}`,format:e})}},$t=t=>class extends t{async one(t=new this.QueryParams({})){const{items:e}=await this.client.get({endpoint:`/${this.path}`,params:t.toParams()});if(!e||!e.length)throw new o;if(e.length>1)throw new d;const[s]=e;return xt(this.path,s)}async first(t=new this.QueryParams({})){const{items:e}=await this.client.get({endpoint:`/${this.path}`,params:t.toParams()});if(!e||!e[0])return null;const[s]=e;return xt(this.path,s)}async count(t=new this.QueryParams({})){t.count=!0;const{count:e}=await this.client.get({endpoint:`/${this.path}`,params:t.toParams()});return e||0}async*all(t=new this.QueryParams({})){let e=`/${this.path}?${t.toQueryString()}`;for(;e;){const t=await this.client.get({endpoint:e});if(t.items)for(const e of t.items){const t=xt(this.path,e);yield t}e=t.next_page_uri}}};class Kt extends(At(kt).with($t,Tt)){constructor(t){super("accounts",M,t)}}class qt{toObject(){return{}}toCleanObject(){const t=this.toObject();return Object.keys(t).forEach((e=>{null==t[e]&&delete t[e]})),t}}class Et extends qt{constructor(t,e){super(),this.userId=t,this.metadata=e}toObject(){return{user_id:this.userId,metadata:this.metadata}}}class Pt extends qt{constructor(t,e,s){super(),this.userId=t,this.issuer=e,this.fundingType=s}toObject(){return{user_id:this.userId,issuer:this.issuer,funding_type:this.fundingType}}}class Dt extends qt{constructor(t,e){super(),this.status=t,this.pinBlock=e}toObject(){return{status:this.status,pin_block:this.pinBlock}}}class Mt extends qt{constructor(t,e,s,i){super(),this.n=t,this.eM=e,this.eY=s,this.c2=i}get number(){return this._number}set n(t){if([!!t,16===t.length,/^\d{16}/.test(t)].some((t=>!t)))throw new p("Invalid number");this._number=t.trim()}get expMonth(){return this._expMonth}set eM(t){if([!!t,t>=1,t<=12].some((t=>!t)))throw new p("Invalid expiration month");this._expMonth=t}get expYear(){return this._expYear}set eY(t){if([!!t,t>=18,t<=99].some((t=>!t)))throw new p("Invalid expiration year");this._expYear=t}get cvv2(){return this._cvv2}set c2(t){if([!!t,3===t.length,/^\d{3}/.test(t)].some((t=>!t)))throw new p("Invalid cvv2");this._cvv2=t}toObject(){return{number:this.number,exp_month:this.expMonth,exp_year:this.expYear,cvv2:this.cvv2}}}class Bt extends qt{constructor({cvv:t,cvv2:e,expMonth:s,expYear:i,icvv:r,number:a,pinBlock:n,pinAttemptsExceeded:c}){super(),this.c=t,this.c2=e,this.em=s,this.ey=i,this.ic=r,this.n=a,this.pinBloc=n,this.pinAttemptsExceeded=c}get cvv(){return this._cvv}set c(t){if(!t)return;if([3===t.length].some((t=>!t)))throw new p("Invalid cvv");this._cvv=t}get cvv2(){return this._cvv2}set c2(t){if(!t)return;if([3===t.length].some((t=>!t)))throw new p("Invalid cvv2");this._cvv2=t}get expMonth(){return this._expMonth}set em(t){if(!t)return;if([t>=1,t<=12].some((t=>!t)))throw new p("Invalid expiration month");this._expMonth=t}get expYear(){return this._expYear}set ey(t){if(!t)return;if([t>=18,t<=99].some((t=>!t)))throw new p("Invalid expiration year");this._expYear=t}get icvv(){return this._icvv}set ic(t){if(!t)return;if([3===t.length].some((t=>!t)))throw new p("Invalid icvv");this._icvv=t}get number(){return this._number}set n(t){if([!!t,16===t.length,/^\d{16}/.test(t)].some((t=>!t)))throw new p("Invalid number");this._number=t}toObject(){return{cvv:this.cvv,cvv2:this.cvv2,exp_month:this.expMonth,exp_year:this.expYear,icvv:this.icvv,number:this.number,pin_block:this.pinBloc,pin_attempts_exceeded:this.pinAttemptsExceeded}}}class Vt extends qt{constructor(t,e,s,i){super(),this.category=t,this.name=i,this.goalAmount=e,this.validDate=s}get goalDate(){return this._goalDate}set validDate(t){if(t){if(E(t).getTime()<=E(Date.now()).getTime())throw new p("The goal_date always need to be higher than now");this._goalDate=t}}toObject(){return{category:this.category,goal_amount:this.goalAmount,goal_date:this.goalDate,name:this.name}}}class Rt extends qt{constructor(t,e,s,i,r){super(),this.accountNumber=t,this.amount=e,this.descriptor=s,this.idempotencyKey=i,this.recipientName=r}toObject(){return{account_number:this.accountNumber,amount:this.amount,descriptor:this.descriptor,idempotency_key:this.idempotencyKey,recipient_name:this.recipientName}}}class Yt extends qt{constructor(t){super(),this.pwd=t}get password(){return this._password}set pwd(t){if([!!t,6===t.length,/^\d{6}$/.test(t)].some((t=>!t)))throw new p("Invalid password");this._password=t}toObject(){return{password:this.password}}}class Ht extends qt{constructor(t,e){super(),this.pwd=t,this.isActive=e,this.req={password:this.password,isActive:this.isActive}}get password(){return this._password}get request(){return this._request}set pwd(t){if(!t)return void(this._password=t);if([6===t.length,/^\d{6}$/.test(t)].some((t=>!t)))throw new p("Invalid password");this._password=t}set req(t){if(t.password&&null!=t.isActive)throw new p("Only one property can be updated at a time");this._request=t}toObject(){return{password:this.request.password,is_active:this.request.isActive}}}class Lt extends qt{constructor(t,e="me"){super(),this.pwd=t,this.userId=e}get password(){return this._password}set pwd(t){if([!!t,6===t.length,/^\d{6}$/.test(t)].some((t=>!t)))throw new p("Invalid password");this._password=t}toObject(){return{password:this.password,user_id:this.userId}}}class Ft extends qt{constructor({ip:t,location:e,type:s,version:i}){super(),this.ipAddress=t,this.location=e,this.type=s,this.version=i}get ip(){return this._ip}set ipAddress(t){if(!t)throw new p("missing ip address");if(!t.split(".").every((t=>t>=0&&t<=255)))throw new p("Invalid ip address");this._ip=t}toObject(){return{ip:this.ip,location:this.location,type:this.type,version:this.version}}}class Xt extends qt{constructor({termsOfService:t,verificationId:e}){super(),this.terms=t,this.verificationId=e}get termsOfService(){return this._termsOfService}set terms(t){t&&(this._termsOfService=new Ft(t).toObject())}toObject(){return{terms_of_service:this.termsOfService,verification_id:this.verificationId}}}class zt extends qt{constructor(t,e,s){super(),this.amount=t,this.transactionType=e,this.walletUri=s}toObject(){return{amount:this.amount,transaction_type:this.transactionType,wallet_uri:this.walletUri}}}class Qt extends(At(kt).with(Ut,St,$t,Tt,Ct)){constructor(t){super("api_keys",B,t)}async create(){return await this._create()}async deactivate(t,e=0){return await this._deactivate(t,{minutes:e})}async update(t,e,s){const i=new Et(s,e);return await this._update(t,i.toCleanObject())}}At(kt).with(Ut);class Jt extends(At(kt).with($t,Tt)){constructor(t){super("balance_entries",H,t)}async relatedTransaction(t){const e=It(t);if(null==e)return null;const s=await this.client.get({endpoint:t});return xt(`${e}`,s)}async fundingInstrument(t){const e=It(t);if(null==e)return null;const s=await this.client.get({endpoint:t});return xt(`${e}`,s)}}class Wt extends(At(kt).with($t,Tt)){constructor(t){super("bill_payments",L,t)}async serviceProvider(t){const e=It(t);if(null==e)return null;const s=await this.client.get({endpoint:t});return xt(`${e}`,s)}}class Gt extends(At(kt).with(Ut)){constructor(t){super("card_activations",Object,t)}async create({number:t,expMonth:e,expYear:s,cvv2:i}){const r=new Mt(t,e,s,i);return await this._create(r.toCleanObject())}async card(t){if(!t)return null;const e=await this.client.get({endpoint:t});return ct.fromObject(e)}}class Zt extends(At(kt).with(Ut,St,$t,Tt,Ct)){constructor(t){super("cards",X,t)}async create(t,e,s){const i=new Pt(t,e,s);return await this._create(i.toCleanObject())}async deactivate(t){return await this._deactivate(t)}async update(t,e,s){const i=new Dt(e,s);return await this._update(t,i.toCleanObject())}}class te extends(At(kt).with($t,Tt)){constructor(t){super("card_transactions",F,t)}async relatedCard(t){const e=It(t);if(null==e)return null;const s=await this.client.get({endpoint:t});return xt(`${e}`,s)}}class ee extends(At(kt).with(Ut)){constructor(t){super("card_validations",Object,t)}async create({cvv:t,cvv2:e,expMonth:s,expYear:i,icvv:r,number:a,pinBlock:n,pinAttemptsExceeded:c}){const o=new Bt({cvv:t,cvv2:e,expMonth:s,expYear:i,icvv:r,number:a,pinBlock:n,pinAttemptsExceeded:c});return await this._create(o.toCleanObject())}async card(t){if(!t)return null;const e=await this.client.get({endpoint:t});return ct.fromObject(e)}}class se extends(At(kt).with($t,Tt)){constructor(t){super("commissions",D,t)}async relatedTransaction(t){const e=It(t);if(null==e)return null;const s=await this.client.get(t);return xt(`${e}`,s)}}class ie extends(At(kt).with($t,Tt)){constructor(t){super("deposits",R,t)}async source(t){const e=await this.client.get({endpoint:t});return et.fromObject(e)}}class re extends(At(kt).with(Ut)){constructor(t){super("login_tokens",Object,t)}async create(){return await this._create()}}class ae extends(At(kt).with(Ut,St,$t,Tt,Ct)){constructor(t){super("savings",J,t)}async create(t,e,s,i){const r=new Vt(t,e,s,i);return await this._create(r.toObject())}async deactivate(t){return await this._deactivate(t)}async update(t,e,s,i,r){const a=new Vt(e,s,i,r);return await this._update(t,a.toObject())}}class ne extends(At(kt).with($t,Tt)){constructor(t){super("service_providers",D,t)}}class ce extends(At(kt).with(Nt,$t)){constructor(t){super("statements",W,t)}async pdf(t){return await this._download(t,k.Pdf)}async xml(t){return await this._download(t,k.Xml)}}class oe extends(At(kt).with(Ut,$t,Tt)){constructor(t){super("transfers",Y,t)}async destination(t){const e=await this.client.get({endpoint:t});return et.fromObject(e)}async create({accountNumber:t,amount:e,descriptor:s,recipientName:i,idempotencyKey:r}){const a=r||this.constructor._genIdempotencyKey(t,e),n=new Rt(t,e,s,a,i);return await this._create(n.toCleanObject())}async createMany(t){if(!t||!Array.isArray(t)||!t.length)return{};const e={submitted:[],errors:[]};return await Promise.all(t.map((async({accountNumber:t,amount:s,descriptor:i,idempotencyKey:r,recipientName:a})=>{const n=new Rt(t,s,i,r||this.constructor._genIdempotencyKey(t,s),a);let c;try{c=await this._create(n.toCleanObject())}catch(t){return void e.errors.push({actualRequest:n,error:t})}e.submitted.push(c)}))),e}static _genIdempotencyKey(t,e){const[s]=E(Date.now()).toISOString().split("T");return`${s}:${t}:${e}`}}class de extends(At(kt).with(Ut,Ct)){constructor(t){super("user_credentials",Object,t)}async create(t){const e=new Yt(t);return await this._create(e.toObject())}async update({isActive:t,password:e,userId:s="me"}){const i=new Ht(e,t);return await this._update(s,i.toCleanObject())}}class ue extends(At(kt).with(Ut,St)){constructor(t){super("user_logins",Object,t),this.loginIdInHeaders=null}async create(t,e){const s=new Lt(t,e),i=await this._create(s.toObject());if(!i.success)throw new h;return this.loginIdInHeaders=this.client.addHeadersToRequest({"X-Cuenca-LoginId":i.id}),i}async logOut(t="me"){return await this._deactivate(t,{}),this.loginIdInHeaders&&this.loginIdInHeaders.eject(),!0}}class he extends(At(kt).with($t,Ct)){constructor(t){super("users",Q,t)}async update({termsOfService:t,verificationId:e,userId:s="me"}){const i=new Xt({termsOfService:t,verificationId:e});return await this._update(s,i.toCleanObject())}}class pe extends(At(kt).with(Ut,$t,Tt)){constructor(t){super("wallet_transactions",z,t)}async create(t,e,s){const i=new zt(t,e,s);return await this._create(i.toObject())}async realtedWallet(t){const e=It(t);if(null==e)return null;const s=await this.client.get(t);return xt(`${e}`,s)}}class le extends(At(kt).with($t,Tt)){constructor(t){super("whatsapp_transfers",D,t)}async accountDestination(t){const e=It(t);if(null==e)return null;const s=await this.client.get(t);return xt(`${e}`,s)}}t.Cuenca=class{constructor(t,e,s=T.Sandbox){this.client=new tt({apiKey:t,apiSecret:e,phase:s}),this.withClient(this.client)}withClient(t){this.accounts=new Kt(t),this.apiKeys=new Qt(t),this.balanceEntries=new Jt(t),this.billPayments=new Wt(t),this.cardActivations=new Gt(t),this.cards=new Zt(t),this.cardTransactions=new te(t),this.cardValidations=new ee(t),this.commissions=new se(t),this.deposits=new ie(t),this.loginTokens=new re(t),this.savings=new ae(t),this.serviceProviders=new ne(t),this.statements=new ce(t),this.transfers=new oe(t),this.userCredentials=new de(t),this.userLogins=new ue(t),this.users=new he(t),this.walletTransactions=new pe(t),this.whatsAppTransfers=new le(t)}}}));
@@ -1,5 +1,19 @@
1
- import { B as BaseRequest, d as dateToUTC } from './base-c1f04b51.mjs';
2
1
  import { ValidationError } from './errors/index.mjs';
2
+ import { d as dateToUTC } from './data-d5bcb7c8.mjs';
3
+
4
+ class BaseRequest {
5
+ toObject() {
6
+ return {};
7
+ }
8
+
9
+ toCleanObject() {
10
+ const obj = this.toObject();
11
+ Object.keys(obj).forEach((k) => {
12
+ if (obj[k] == null) delete obj[k];
13
+ });
14
+ return obj;
15
+ }
16
+ }
3
17
 
4
18
  class ApiKeyUpdateRequest extends BaseRequest {
5
19
  constructor(userId, metadata) {
@@ -326,43 +340,6 @@ class SavingRequest extends BaseRequest {
326
340
  }
327
341
  }
328
342
 
329
- class TosUpdateRequest extends BaseRequest {
330
- constructor({ ip, location, type, version }) {
331
- super();
332
- this.ipAddress = ip;
333
- this.location = location;
334
- this.type = type;
335
- this.version = version;
336
- }
337
-
338
- get ip() {
339
- return this._ip;
340
- }
341
-
342
- set ipAddress(value) {
343
- if (!value) throw new ValidationError('missing ip address');
344
- const ipBlocks = value.split('.');
345
- if (
346
- ipBlocks.every((block) => {
347
- return block >= 0 && block <= 255;
348
- })
349
- ) {
350
- this._ip = value;
351
- } else {
352
- throw new ValidationError('Invalid ip address');
353
- }
354
- }
355
-
356
- toObject() {
357
- return {
358
- ip: this.ip,
359
- location: this.location,
360
- type: this.type,
361
- version: this.version,
362
- };
363
- }
364
- }
365
-
366
343
  class TransferRequest extends BaseRequest {
367
344
  constructor(
368
345
  accountNumber,
@@ -488,6 +465,42 @@ class UserLoginRequest extends BaseRequest {
488
465
  }
489
466
  }
490
467
 
468
+ class TosUpdateRequest extends BaseRequest {
469
+ constructor({ ip, location, type, version }) {
470
+ super();
471
+ this.ipAddress = ip;
472
+ this.location = location;
473
+ this.type = type;
474
+ this.version = version;
475
+ }
476
+
477
+ get ip() {
478
+ return this._ip;
479
+ }
480
+
481
+ set ipAddress(value) {
482
+ if (!value) throw new ValidationError('missing ip address');
483
+ const ipBlocks = value.split('.');
484
+ const blocks = ipBlocks.every((block) => {
485
+ return block >= 0 && block <= 255;
486
+ });
487
+ if (blocks) {
488
+ this._ip = value;
489
+ } else {
490
+ throw new ValidationError('Invalid ip address');
491
+ }
492
+ }
493
+
494
+ toObject() {
495
+ return {
496
+ ip: this.ip,
497
+ location: this.location,
498
+ type: this.type,
499
+ version: this.version,
500
+ };
501
+ }
502
+ }
503
+
491
504
  class UserUpdateRequest extends BaseRequest {
492
505
  constructor({ termsOfService, verificationId }) {
493
506
  super();
@@ -529,4 +542,4 @@ class WalletTransactionRequest extends BaseRequest {
529
542
  }
530
543
  }
531
544
 
532
- export { ApiKeyUpdateRequest as A, CardActivationRequest as C, SavingRequest as S, TransferRequest as T, UserCredentialRequest as U, WalletTransactionRequest as W, ArpcRequest as a, CardRequest as b, CardUpdateRequest as c, CardValidationRequest as d, UserCredentialUpdateRequest as e, UserLoginRequest as f, UserUpdateRequest as g, TosUpdateRequest as h };
545
+ export { ApiKeyUpdateRequest as A, CardActivationRequest as C, SavingRequest as S, TransferRequest as T, UserCredentialRequest as U, WalletTransactionRequest as W, ArpcRequest as a, CardRequest as b, CardUpdateRequest as c, CardValidationRequest as d, UserCredentialUpdateRequest as e, UserLoginRequest as f, UserUpdateRequest as g };
@@ -1,9 +1,23 @@
1
1
  'use strict';
2
2
 
3
- var base = require('./base-80b9a673.cjs');
4
3
  var errors_index = require('./errors/index.cjs');
4
+ var data = require('./data-9edbb2a0.cjs');
5
5
 
6
- class ApiKeyUpdateRequest extends base.BaseRequest {
6
+ class BaseRequest {
7
+ toObject() {
8
+ return {};
9
+ }
10
+
11
+ toCleanObject() {
12
+ const obj = this.toObject();
13
+ Object.keys(obj).forEach((k) => {
14
+ if (obj[k] == null) delete obj[k];
15
+ });
16
+ return obj;
17
+ }
18
+ }
19
+
20
+ class ApiKeyUpdateRequest extends BaseRequest {
7
21
  constructor(userId, metadata) {
8
22
  super();
9
23
  this.userId = userId;
@@ -18,7 +32,7 @@ class ApiKeyUpdateRequest extends base.BaseRequest {
18
32
  }
19
33
  }
20
34
 
21
- class ArpcRequest extends base.BaseRequest {
35
+ class ArpcRequest extends BaseRequest {
22
36
  constructor({
23
37
  arpcMethod,
24
38
  arqc,
@@ -83,7 +97,7 @@ class ArpcRequest extends base.BaseRequest {
83
97
  }
84
98
  }
85
99
 
86
- class CardRequest extends base.BaseRequest {
100
+ class CardRequest extends BaseRequest {
87
101
  constructor(userId, issuer, fundingType) {
88
102
  super();
89
103
  this.userId = userId;
@@ -100,7 +114,7 @@ class CardRequest extends base.BaseRequest {
100
114
  }
101
115
  }
102
116
 
103
- class CardUpdateRequest extends base.BaseRequest {
117
+ class CardUpdateRequest extends BaseRequest {
104
118
  constructor(status, pinBlock) {
105
119
  super();
106
120
  this.status = status;
@@ -115,7 +129,7 @@ class CardUpdateRequest extends base.BaseRequest {
115
129
  }
116
130
  }
117
131
 
118
- class CardActivationRequest extends base.BaseRequest {
132
+ class CardActivationRequest extends BaseRequest {
119
133
  constructor(number, expMonth, expYear, cvv2) {
120
134
  super();
121
135
  this.n = number;
@@ -182,7 +196,7 @@ class CardActivationRequest extends base.BaseRequest {
182
196
  }
183
197
  }
184
198
 
185
- class CardValidationRequest extends base.BaseRequest {
199
+ class CardValidationRequest extends BaseRequest {
186
200
  constructor({
187
201
  cvv,
188
202
  cvv2,
@@ -295,7 +309,7 @@ class CardValidationRequest extends base.BaseRequest {
295
309
  }
296
310
  }
297
311
 
298
- class SavingRequest extends base.BaseRequest {
312
+ class SavingRequest extends BaseRequest {
299
313
  constructor(category, goalAmount, goalDate, name) {
300
314
  super();
301
315
  this.category = category;
@@ -310,7 +324,7 @@ class SavingRequest extends base.BaseRequest {
310
324
 
311
325
  set validDate(value) {
312
326
  if (!value) return;
313
- if (base.dateToUTC(value).getTime() <= base.dateToUTC(Date.now()).getTime()) {
327
+ if (data.dateToUTC(value).getTime() <= data.dateToUTC(Date.now()).getTime()) {
314
328
  throw new errors_index.ValidationError(
315
329
  'The goal_date always need to be higher than now',
316
330
  );
@@ -328,44 +342,7 @@ class SavingRequest extends base.BaseRequest {
328
342
  }
329
343
  }
330
344
 
331
- class TosUpdateRequest extends base.BaseRequest {
332
- constructor({ ip, location, type, version }) {
333
- super();
334
- this.ipAddress = ip;
335
- this.location = location;
336
- this.type = type;
337
- this.version = version;
338
- }
339
-
340
- get ip() {
341
- return this._ip;
342
- }
343
-
344
- set ipAddress(value) {
345
- if (!value) throw new errors_index.ValidationError('missing ip address');
346
- const ipBlocks = value.split('.');
347
- if (
348
- ipBlocks.every((block) => {
349
- return block >= 0 && block <= 255;
350
- })
351
- ) {
352
- this._ip = value;
353
- } else {
354
- throw new errors_index.ValidationError('Invalid ip address');
355
- }
356
- }
357
-
358
- toObject() {
359
- return {
360
- ip: this.ip,
361
- location: this.location,
362
- type: this.type,
363
- version: this.version,
364
- };
365
- }
366
- }
367
-
368
- class TransferRequest extends base.BaseRequest {
345
+ class TransferRequest extends BaseRequest {
369
346
  constructor(
370
347
  accountNumber,
371
348
  amount,
@@ -392,7 +369,7 @@ class TransferRequest extends base.BaseRequest {
392
369
  }
393
370
  }
394
371
 
395
- class UserCredentialRequest extends base.BaseRequest {
372
+ class UserCredentialRequest extends BaseRequest {
396
373
  constructor(password) {
397
374
  super();
398
375
  this.pwd = password;
@@ -417,7 +394,7 @@ class UserCredentialRequest extends base.BaseRequest {
417
394
  }
418
395
  }
419
396
 
420
- class UserCredentialUpdateRequest extends base.BaseRequest {
397
+ class UserCredentialUpdateRequest extends BaseRequest {
421
398
  constructor(password, isActive) {
422
399
  super();
423
400
  this.pwd = password;
@@ -463,7 +440,7 @@ class UserCredentialUpdateRequest extends base.BaseRequest {
463
440
  }
464
441
  }
465
442
 
466
- class UserLoginRequest extends base.BaseRequest {
443
+ class UserLoginRequest extends BaseRequest {
467
444
  constructor(password, userId = 'me') {
468
445
  super();
469
446
  this.pwd = password;
@@ -490,7 +467,43 @@ class UserLoginRequest extends base.BaseRequest {
490
467
  }
491
468
  }
492
469
 
493
- class UserUpdateRequest extends base.BaseRequest {
470
+ class TosUpdateRequest extends BaseRequest {
471
+ constructor({ ip, location, type, version }) {
472
+ super();
473
+ this.ipAddress = ip;
474
+ this.location = location;
475
+ this.type = type;
476
+ this.version = version;
477
+ }
478
+
479
+ get ip() {
480
+ return this._ip;
481
+ }
482
+
483
+ set ipAddress(value) {
484
+ if (!value) throw new errors_index.ValidationError('missing ip address');
485
+ const ipBlocks = value.split('.');
486
+ const blocks = ipBlocks.every((block) => {
487
+ return block >= 0 && block <= 255;
488
+ });
489
+ if (blocks) {
490
+ this._ip = value;
491
+ } else {
492
+ throw new errors_index.ValidationError('Invalid ip address');
493
+ }
494
+ }
495
+
496
+ toObject() {
497
+ return {
498
+ ip: this.ip,
499
+ location: this.location,
500
+ type: this.type,
501
+ version: this.version,
502
+ };
503
+ }
504
+ }
505
+
506
+ class UserUpdateRequest extends BaseRequest {
494
507
  constructor({ termsOfService, verificationId }) {
495
508
  super();
496
509
  this.terms = termsOfService;
@@ -514,7 +527,7 @@ class UserUpdateRequest extends base.BaseRequest {
514
527
  }
515
528
  }
516
529
 
517
- class WalletTransactionRequest extends base.BaseRequest {
530
+ class WalletTransactionRequest extends BaseRequest {
518
531
  constructor(amount, transactionType, walletUri) {
519
532
  super();
520
533
  this.amount = amount;
@@ -538,7 +551,6 @@ exports.CardRequest = CardRequest;
538
551
  exports.CardUpdateRequest = CardUpdateRequest;
539
552
  exports.CardValidationRequest = CardValidationRequest;
540
553
  exports.SavingRequest = SavingRequest;
541
- exports.TosUpdateRequest = TosUpdateRequest;
542
554
  exports.TransferRequest = TransferRequest;
543
555
  exports.UserCredentialRequest = UserCredentialRequest;
544
556
  exports.UserCredentialUpdateRequest = UserCredentialUpdateRequest;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cuenca-mx/cuenca-js",
3
- "version": "0.0.1-dev.30",
3
+ "version": "0.0.1-dev.31",
4
4
  "description": "Cuenca client for JS",
5
5
  "main": "./build/index.cjs",
6
6
  "module": "./build/index.mjs",
@@ -1,24 +0,0 @@
1
- const dateToUTC = (date) => {
2
- if (!date) return null;
3
- const dateObj = new Date(date);
4
- return new Date(dateObj.getTime());
5
- };
6
-
7
- const enumValueFromString = (enumValue, value) =>
8
- Object.values(enumValue).find((enumV) => enumV.value === value);
9
-
10
- class BaseRequest {
11
- toObject() {
12
- return {};
13
- }
14
-
15
- toCleanObject() {
16
- const obj = this.toObject();
17
- Object.keys(obj).forEach((k) => {
18
- if (obj[k] == null) delete obj[k];
19
- });
20
- return obj;
21
- }
22
- }
23
-
24
- export { BaseRequest as B, dateToUTC as d, enumValueFromString as e };