@cuenca-mx/cuenca-js 0.0.1-dev.17 → 0.0.1-dev.20

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -2,6 +2,160 @@
2
2
 
3
3
  `cuenca-js` is a Javascript library client to use Cuenca's services.
4
4
 
5
- ## Installation
6
5
 
7
- ## Documentation
6
+ ## 💻 Installation
7
+
8
+ Using `npm`:
9
+ ```bash
10
+ npm install --save @cuenca-mx/cuenca-js
11
+ ```
12
+
13
+ Using `yarn`:
14
+ ```bash
15
+ yarn add @cuenca-mx/cuenca-js
16
+ ```
17
+
18
+
19
+ ## 🚀 Getting Started
20
+
21
+ ### Configure the client
22
+
23
+ To start using the library, the client must be configured with your credentials. Some configurations can be changed to further improve the use of the library:
24
+
25
+ - Configuring the client on constructor
26
+ The credentials and environment can be set when instantiating the client:
27
+ ```js
28
+ import { Cuenca } from '@cuenca-mx/cuenca-js';
29
+ import { Phase } from '@cuenca-mx/cuenca-js/types';
30
+
31
+ const cuenca = new Cuenca(
32
+ 'SOME_API_KEY',
33
+ 'SOME_API_SECRET',
34
+ Phase.Stage,
35
+ );
36
+ ```
37
+
38
+ - Client's configuration
39
+ The configuration can be changed after creating it using the `configure` method:
40
+ ```js
41
+ import { Cuenca } from '@cuenca-mx/cuenca-js';
42
+ import { Phase } from '@cuenca-mx/cuenca-js/types';
43
+
44
+ const cuenca = new Client();
45
+ // The method will require await if `useJwt` is setted to `true`
46
+ // because a request is made to Cuenca to create the JWT.
47
+ await cuenca.client.configure({
48
+ apiKey: 'SOME_API_KEY',
49
+ apiSecret: 'SOME_API_SECRET',
50
+ loginToken: 'LOGIN_TOKEN',
51
+ phase: Phase.Api, // Production environment
52
+ useJwt: true,
53
+ });
54
+ ```
55
+
56
+ #### Client's configuration values
57
+
58
+ | Configuration Name | Description | Default Value |
59
+ | :---------- | :------------------ | :------: |
60
+ | apiKey | API Key credential | `undefined` |
61
+ | apiSecret | Secret for the API Key | `undefined` |
62
+ | phase | Used to change the environment for the client (production, stage or sandbox) | `Phase.Sandbox` |
63
+ | loginToken | Login Token, sets `X-Cuenca-LoginToken` on each request | `undefined` |
64
+ | sessionId | Session Id, sets `X-Cuenca-SessionId` on each request | `undefined` |
65
+ | useJwt | If `true`, it will create a JWT for authentification | `false` |
66
+
67
+ ### Login
68
+
69
+ After configuring the client, you should login to your user before performing requests on resources:
70
+
71
+ ```js
72
+ const login = await cuenca.userLogins.create('111111'); // Use 6 digit password to login
73
+ console.log(login); // UserLogin model { id: string, lastLoginAt: Date, success: bool }
74
+ ```
75
+
76
+ ### Use Resources
77
+
78
+ Different actions may be performed on each resource depending on which of the following classes they implement:
79
+
80
+ #### Action Classes
81
+ | Name | methods | Description
82
+ | :--- | -----: | ---------: |
83
+ | `Retrievable` | `.retrieve(id)` | Retrieves the resource's model given an ID |
84
+ | `Creatable` | Implementation varies* | Creates the resource from a given data |
85
+ | `Updateable` | Implementation varies* | Updates a resource given its ID and data |
86
+ | `Deactivable` | Implementation varies* | Deactivates the resource given its ID |
87
+ | `Downloadable` | `.pdf()`, `.xml()` | Returns the byte string of a document given its ID |
88
+ | `Queryable` | `.one()`, `.first()`, `.count()`, `.all()` | Perform different types of queries on resources |
89
+
90
+ * *Some resources may have a different implementation of some actions, for more detail check the source code (better documentation is a WIP).
91
+
92
+ #### Resources
93
+ | Name | Actions |
94
+ | :---- | ---------: |
95
+ | accounts | `Queryable`, `Retrievable` |
96
+ | apiKeys | `Creatable`, `Deactivable`, `Queryable`, `Retrievable`, `Updateable` |
97
+ | arpc | `Creatable` |
98
+ | accounts | `Queryable`, `Retrievable` |
99
+ | balanceEntries | `Queryable`, `Retrievable` |
100
+ | billPayments | `Queryable`, `Retrievable` |
101
+ | cardActivations | `Creatable` |
102
+ | cards | `Creatable`, `Deactivable`, `Queryable`, `Retrievable`, `Updateable` |
103
+ | cardTransactions | `Queryable`, `Retrievable` |
104
+ | cardValidations | `Creatable` |
105
+ | commissions | `Queryable`, `Retrievable` |
106
+ | deposits | `Queryable`, `Retrievable` |
107
+ | loginTokens | `Creatable` |
108
+ | savings | `Creatable`, `Deactivable`, `Queryable`, `Retrievable`, `Updateable` |
109
+ | serviceProviders | `Queryable`, `Retrievable` |
110
+ | statements | `Downloadable`, `Queryable` |
111
+ | transfers | `Creatable`, `Queryable`, `Retrievable` |
112
+ | userCredentials | `Creatable`, `Updateable` |
113
+ | userLogins | `Creatable`, `Deactivable` |
114
+ | walletTransactions | `Creatable`, `Queryable`, `Retrievable` |
115
+ | whatsAppTransfers | `Queryable`, `Retrievable` |
116
+
117
+ ### Example:
118
+ ```js
119
+ import { AccountQuery } from '@cuenca-mx/cuenca-js/types';
120
+
121
+ let account;
122
+ account = await cuenca.accounts.first(); // Returns the first value found on the query
123
+
124
+ try {
125
+ // Throws an error if no result was found or if more than one result were found.
126
+ account = await cuenca.accounts.one(
127
+ new AccountQuery({
128
+ accountNumber: 'SOME_ACCOUNT_NUMBER',
129
+ }),
130
+ );
131
+ } catch (error) {
132
+ console.log(error);
133
+ }
134
+ ```
135
+
136
+ ## 💡 Contribute
137
+
138
+ ### Found a bug?
139
+
140
+ Please submit an issue and how to replicate it.
141
+
142
+ ### Want to contribute?
143
+
144
+ Fork the repo and send your PR so we can review it! Any and all help is welcomed, just keep in mind:
145
+
146
+ #### Testing
147
+
148
+ Be sure to keep coverage at least 99%
149
+
150
+
151
+ ## Contact
152
+
153
+ dev@cuenca.com
154
+
155
+ ---
156
+ Developed and maintained with 💙 by [Cuenca](https://github.com/cuenca-mx)
157
+ <p align="center">
158
+ <a href="https://cuenca.com/">
159
+ <img alt="Cuenca Logo" src="https://user-images.githubusercontent.com/23020655/150851002-0de97274-117b-4da4-93b7-e89d7c699793.svg" width="200" />
160
+ </a>
161
+ </p>
@@ -6,9 +6,8 @@ const dateToUTC = (date) => {
6
6
  return new Date(dateObj.getTime());
7
7
  };
8
8
 
9
- const enumValueFromString = (enumValue, value) => {
10
- return Object.values(enumValue).find((enumV) => enumV.value === value);
11
- };
9
+ const enumValueFromString = (enumValue, value) =>
10
+ Object.values(enumValue).find((enumV) => enumV.value === value);
12
11
 
13
12
  exports.dateToUTC = dateToUTC;
14
13
  exports.enumValueFromString = enumValueFromString;
@@ -4,8 +4,7 @@ const dateToUTC = (date) => {
4
4
  return new Date(dateObj.getTime());
5
5
  };
6
6
 
7
- const enumValueFromString = (enumValue, value) => {
8
- return Object.values(enumValue).find((enumV) => enumV.value === value);
9
- };
7
+ const enumValueFromString = (enumValue, value) =>
8
+ Object.values(enumValue).find((enumV) => enumV.value === value);
10
9
 
11
10
  export { dateToUTC as d, enumValueFromString as e };
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 queries = require('./queries-35cba2f2.cjs');
10
- var data = require('./data-c83462d7.cjs');
11
- var walletTransactionRequest = require('./walletTransactionRequest-4542a70e.cjs');
9
+ var queries = require('./queries-0c03273e.cjs');
10
+ var data = require('./data-9edbb2a0.cjs');
11
+ var walletTransactionRequest = require('./walletTransactionRequest-f549e991.cjs');
12
12
 
13
13
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
14
14
 
@@ -26,88 +26,7 @@ const isNode =
26
26
 
27
27
  const runtimeEnv = { isBrowser, isNode };
28
28
 
29
- var name = "@cuenca-mx/cuenca-js";
30
- var version = "0.0.1-dev.17";
31
- var description = "Cuenca client for JS";
32
- var main = "./build/index.cjs";
33
- var module$1 = "./build/index.mjs";
34
- var browser = "./build/umd/cuenca.umd.js";
35
- var files = [
36
- "build/**/*"
37
- ];
38
- var exports$1 = {
39
- ".": {
40
- "import": "./build/index.mjs",
41
- require: "./build/index.cjs"
42
- },
43
- "./errors": {
44
- "import": "./build/errors/index.mjs",
45
- require: "./build/errors/index.cjs"
46
- },
47
- "./jwt": {
48
- "import": "./build/jwt/index.mjs",
49
- require: "./build/jwt/index.cjs"
50
- },
51
- "./requests": {
52
- "import": "./build/requests/index.mjs",
53
- require: "./build/requests/index.cjs"
54
- },
55
- "./types": {
56
- "import": "./build/types/index.mjs",
57
- require: "./build/types/index.cjs"
58
- }
59
- };
60
- var packageManager = "yarn@3.0.2";
61
- var type = "module";
62
- var repository = {
63
- type: "git",
64
- url: "https://github.com/cuenca-mx/cuenca-js.git",
65
- directory: "packages/cuenca-js"
66
- };
67
- var keywords = [
68
- "cuenca"
69
- ];
70
- var license = "MIT";
71
- var bugs = {
72
- url: "https://github.com/cuenca-mx/cuenca-js/issues"
73
- };
74
- var homepage = "https://cuenca.com";
75
- var scripts = {
76
- build: "rm -rf build/ && yarn rollup --config",
77
- test: "yarn node --experimental-vm-modules $(yarn bin jest)",
78
- publish: "yarn build && yarn npm publish"
79
- };
80
- var devDependencies = {
81
- "@rollup/plugin-json": "^4.1.0",
82
- "@rollup/plugin-node-resolve": "^13.1.1",
83
- jest: "^27.4.5",
84
- rollup: "^2.61.1",
85
- "rollup-plugin-terser": "^7.0.2"
86
- };
87
- var dependencies = {
88
- axios: "^0.24.0",
89
- buffer: "^6.0.3"
90
- };
91
- var pkg = {
92
- name: name,
93
- version: version,
94
- description: description,
95
- main: main,
96
- module: module$1,
97
- browser: browser,
98
- files: files,
99
- exports: exports$1,
100
- packageManager: packageManager,
101
- type: type,
102
- repository: repository,
103
- keywords: keywords,
104
- license: license,
105
- bugs: bugs,
106
- homepage: homepage,
107
- scripts: scripts,
108
- devDependencies: devDependencies,
109
- dependencies: dependencies
110
- };
29
+ const name="@cuenca-mx/cuenca-js";const version="0.0.1-dev.20";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};
111
30
 
112
31
  class Client {
113
32
  constructor({ apiKey, apiSecret, phase = queries.Phase.Sandbox } = {}) {
@@ -176,7 +95,7 @@ class Client {
176
95
  };
177
96
  }
178
97
 
179
- async configure({ apiKey, apiSecret, loginToken, phase, useJwt = false }) {
98
+ async configure({ apiKey, apiSecret, loginToken, phase, sessionId,useJwt = false }) {
180
99
  this.basicAuth = {
181
100
  apiKey: apiKey || this.basicAuth.apiKey,
182
101
  apiSecret: apiSecret || this.basicAuth.apiSecret,
@@ -189,6 +108,10 @@ class Client {
189
108
  if (loginToken) {
190
109
  this.addHeadersToRequest({ 'X-Cuenca-LoginToken': loginToken });
191
110
  }
111
+
112
+ if (sessionId) {
113
+ this.addHeadersToRequest({ 'X-Cuenca-SessionId': sessionId });
114
+ }
192
115
  }
193
116
 
194
117
  async get({ endpoint, format, params }) {
@@ -402,7 +325,13 @@ class BillPayment extends Transaction {
402
325
  status,
403
326
  userId,
404
327
  }) {
405
- super({ amount, createdAt, descriptor, status, userId });
328
+ super({
329
+ amount,
330
+ createdAt,
331
+ descriptor,
332
+ status,
333
+ userId,
334
+ });
406
335
  this.accountNumber = accountNumber;
407
336
  this.id = id;
408
337
  this.providerUri = providerUri;
@@ -516,7 +445,13 @@ class CardTransaction extends Transaction {
516
445
  type,
517
446
  userId,
518
447
  }) {
519
- super({ amount, createdAt, descriptor, status, userId });
448
+ super({
449
+ amount,
450
+ createdAt,
451
+ descriptor,
452
+ status,
453
+ userId,
454
+ });
520
455
  this.cardErrorType = data.enumValueFromString(queries.CardErrorType, cardErrorType);
521
456
  this.cardLastFour = cardLastFour;
522
457
  this.cardType = data.enumValueFromString(queries.CardType, cardType);
@@ -613,7 +548,13 @@ class Commission extends Transaction {
613
548
  type,
614
549
  userId,
615
550
  }) {
616
- super({ amount, createdAt, descriptor, status, userId });
551
+ super({
552
+ amount,
553
+ createdAt,
554
+ descriptor,
555
+ status,
556
+ userId,
557
+ });
617
558
  this.relatedTransactionUri = relatedTransactionUri;
618
559
  this.type = data.enumValueFromString(queries.CommissionType, type);
619
560
  }
@@ -642,7 +583,13 @@ class Deposit extends Transaction {
642
583
  trackingKey,
643
584
  userId,
644
585
  }) {
645
- super({ amount, createdAt, descriptor, status, userId });
586
+ super({
587
+ amount,
588
+ createdAt,
589
+ descriptor,
590
+ status,
591
+ userId,
592
+ });
646
593
  this.id = id;
647
594
  this.network = data.enumValueFromString(queries.DepositNetwork, network);
648
595
  this.sourceUri = sourceUri;
@@ -695,7 +642,14 @@ class Saving extends Wallet {
695
642
  userId,
696
643
  updatedAt,
697
644
  }) {
698
- super({ balance, createdAt, deactivatedAt, id, userId, updatedAt });
645
+ super({
646
+ balance,
647
+ createdAt,
648
+ deactivatedAt,
649
+ id,
650
+ userId,
651
+ updatedAt,
652
+ });
699
653
  this.category = data.enumValueFromString(queries.SavingCategory, category);
700
654
  this.goalAmount = goalAmount;
701
655
  this.goalDate = data.dateToUTC(goalDate);
@@ -774,7 +728,13 @@ class Transfer extends Transaction {
774
728
  updatedAt,
775
729
  userId,
776
730
  }) {
777
- super({ amount, createdAt, descriptor, status, userId });
731
+ super({
732
+ amount,
733
+ createdAt,
734
+ descriptor,
735
+ status,
736
+ userId,
737
+ });
778
738
  this.accountNumber = accountNumber;
779
739
  this.destinationUri = destinationUri;
780
740
  this.id = id;
@@ -846,7 +806,13 @@ class WalletTransaction extends Transaction {
846
806
  userId,
847
807
  walletUri,
848
808
  }) {
849
- super({ amount, createdAt, descriptor, status, userId });
809
+ super({
810
+ amount,
811
+ createdAt,
812
+ descriptor,
813
+ status,
814
+ userId,
815
+ });
850
816
  this.id = id;
851
817
  this.transactionType = data.enumValueFromString(
852
818
  queries.WalletTransactionType,
@@ -885,7 +851,13 @@ class WhatsAppTransfer extends Transaction {
885
851
  updatedAt,
886
852
  userId,
887
853
  }) {
888
- super({ amount, createdAt, descriptor, status, userId });
854
+ super({
855
+ amount,
856
+ createdAt,
857
+ descriptor,
858
+ status,
859
+ userId,
860
+ });
889
861
  this.claimUrl = claimUrl;
890
862
  this.destinationUri = destinationUri;
891
863
  this.id = id;
@@ -1581,42 +1553,4 @@ class Cuenca {
1581
1553
  }
1582
1554
  }
1583
1555
 
1584
- exports.CuencaException = errors_index.CuencaException;
1585
- exports.CuencaResponseException = errors_index.CuencaResponseException;
1586
- exports.InvalidPassword = errors_index.InvalidPassword;
1587
- exports.MalformedJwtToken = errors_index.MalformedJwtToken;
1588
- exports.MultipleResultsFound = errors_index.MultipleResultsFound;
1589
- exports.NoResultFound = errors_index.NoResultFound;
1590
- exports.ValidationError = errors_index.ValidationError;
1591
- exports.Jwt = jwt_index.Jwt;
1592
- exports.AccountQuery = queries.AccountQuery;
1593
- exports.ApiKeyQuery = queries.ApiKeyQuery;
1594
- exports.BalanceEntryQuery = queries.BalanceEntryQuery;
1595
- exports.BillPaymentQuery = queries.BillPaymentQuery;
1596
- exports.CardErrorType = queries.CardErrorType;
1597
- exports.CardFundingType = queries.CardFundingType;
1598
- exports.CardIssuer = queries.CardIssuer;
1599
- exports.CardStatus = queries.CardStatus;
1600
- exports.CardTransactionQuery = queries.CardTransactionQuery;
1601
- exports.CardTransactionType = queries.CardTransactionType;
1602
- exports.CardType = queries.CardType;
1603
- exports.CardsQuery = queries.CardsQuery;
1604
- exports.CommissionType = queries.CommissionType;
1605
- exports.DepositNetwork = queries.DepositNetwork;
1606
- exports.DepositQuery = queries.DepositQuery;
1607
- exports.EntryType = queries.EntryType;
1608
- exports.FileFormat = queries.FileFormat;
1609
- exports.PageSize = queries.PageSize;
1610
- exports.Phase = queries.Phase;
1611
- exports.QueryParams = queries.QueryParams;
1612
- exports.SavingCategory = queries.SavingCategory;
1613
- exports.ServiceProviderCategory = queries.ServiceProviderCategory;
1614
- exports.StatementQuery = queries.StatementQuery;
1615
- exports.TrackDataMethod = queries.TrackDataMethod;
1616
- exports.TransactionStatus = queries.TransactionStatus;
1617
- exports.TransferNetwork = queries.TransferNetwork;
1618
- exports.TransferQuery = queries.TransferQuery;
1619
- exports.WalletQuery = queries.WalletQuery;
1620
- exports.WalletTransactionQuery = queries.WalletTransactionQuery;
1621
- exports.WalletTransactionType = queries.WalletTransactionType;
1622
1556
  exports.Cuenca = Cuenca;
package/build/index.mjs CHANGED
@@ -1,13 +1,10 @@
1
1
  import axios from 'axios';
2
2
  import Buffer from 'buffer';
3
3
  import { CuencaResponseException, CuencaException, NoResultFound, MultipleResultsFound, InvalidPassword } from './errors/index.mjs';
4
- export { CuencaException, CuencaResponseException, InvalidPassword, MalformedJwtToken, MultipleResultsFound, NoResultFound, ValidationError } from './errors/index.mjs';
5
4
  import { Jwt } from './jwt/index.mjs';
6
- export { Jwt } from './jwt/index.mjs';
7
- 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, W as WalletTransactionType, A as AccountQuery, i as ApiKeyQuery, B as BalanceEntryQuery, j as BillPaymentQuery, k as CardsQuery, l as CardTransactionQuery, Q as QueryParams, m as DepositQuery, n as WalletQuery, o as StatementQuery, p as TransferQuery, q as WalletTransactionQuery } from './queries-b9cd3fd7.mjs';
8
- export { A as AccountQuery, i as ApiKeyQuery, B as BalanceEntryQuery, j as BillPaymentQuery, d as CardErrorType, c as CardFundingType, C as CardIssuer, a as CardStatus, l as CardTransactionQuery, e as CardTransactionType, b as CardType, k as CardsQuery, f as CommissionType, D as DepositNetwork, m as DepositQuery, E as EntryType, F as FileFormat, s as PageSize, P as Phase, Q as QueryParams, S as SavingCategory, g as ServiceProviderCategory, o as StatementQuery, r as TrackDataMethod, T as TransactionStatus, h as TransferNetwork, p as TransferQuery, n as WalletQuery, q as WalletTransactionQuery, W as WalletTransactionType } from './queries-b9cd3fd7.mjs';
9
- import { d as dateToUTC, e as enumValueFromString } from './data-c1851484.mjs';
10
- 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, W as WalletTransactionRequest } from './walletTransactionRequest-281c0a96.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, W as WalletTransactionType, A as AccountQuery, i as ApiKeyQuery, B as BalanceEntryQuery, j as BillPaymentQuery, k as CardsQuery, l as CardTransactionQuery, Q as QueryParams, m as DepositQuery, n as WalletQuery, o as StatementQuery, p as TransferQuery, q as WalletTransactionQuery } from './queries-c73144c4.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, W as WalletTransactionRequest } from './walletTransactionRequest-60d3cf69.mjs';
11
8
 
12
9
  /* global window */
13
10
 
@@ -20,88 +17,7 @@ const isNode =
20
17
 
21
18
  const runtimeEnv = { isBrowser, isNode };
22
19
 
23
- var name = "@cuenca-mx/cuenca-js";
24
- var version = "0.0.1-dev.17";
25
- var description = "Cuenca client for JS";
26
- var main = "./build/index.cjs";
27
- var module = "./build/index.mjs";
28
- var browser = "./build/umd/cuenca.umd.js";
29
- var files = [
30
- "build/**/*"
31
- ];
32
- var exports = {
33
- ".": {
34
- "import": "./build/index.mjs",
35
- require: "./build/index.cjs"
36
- },
37
- "./errors": {
38
- "import": "./build/errors/index.mjs",
39
- require: "./build/errors/index.cjs"
40
- },
41
- "./jwt": {
42
- "import": "./build/jwt/index.mjs",
43
- require: "./build/jwt/index.cjs"
44
- },
45
- "./requests": {
46
- "import": "./build/requests/index.mjs",
47
- require: "./build/requests/index.cjs"
48
- },
49
- "./types": {
50
- "import": "./build/types/index.mjs",
51
- require: "./build/types/index.cjs"
52
- }
53
- };
54
- var packageManager = "yarn@3.0.2";
55
- var type = "module";
56
- var repository = {
57
- type: "git",
58
- url: "https://github.com/cuenca-mx/cuenca-js.git",
59
- directory: "packages/cuenca-js"
60
- };
61
- var keywords = [
62
- "cuenca"
63
- ];
64
- var license = "MIT";
65
- var bugs = {
66
- url: "https://github.com/cuenca-mx/cuenca-js/issues"
67
- };
68
- var homepage = "https://cuenca.com";
69
- var scripts = {
70
- build: "rm -rf build/ && yarn rollup --config",
71
- test: "yarn node --experimental-vm-modules $(yarn bin jest)",
72
- publish: "yarn build && yarn npm publish"
73
- };
74
- var devDependencies = {
75
- "@rollup/plugin-json": "^4.1.0",
76
- "@rollup/plugin-node-resolve": "^13.1.1",
77
- jest: "^27.4.5",
78
- rollup: "^2.61.1",
79
- "rollup-plugin-terser": "^7.0.2"
80
- };
81
- var dependencies = {
82
- axios: "^0.24.0",
83
- buffer: "^6.0.3"
84
- };
85
- var pkg = {
86
- name: name,
87
- version: version,
88
- description: description,
89
- main: main,
90
- module: module,
91
- browser: browser,
92
- files: files,
93
- exports: exports,
94
- packageManager: packageManager,
95
- type: type,
96
- repository: repository,
97
- keywords: keywords,
98
- license: license,
99
- bugs: bugs,
100
- homepage: homepage,
101
- scripts: scripts,
102
- devDependencies: devDependencies,
103
- dependencies: dependencies
104
- };
20
+ const name="@cuenca-mx/cuenca-js";const version="0.0.1-dev.20";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};
105
21
 
106
22
  class Client {
107
23
  constructor({ apiKey, apiSecret, phase = Phase.Sandbox } = {}) {
@@ -170,7 +86,7 @@ class Client {
170
86
  };
171
87
  }
172
88
 
173
- async configure({ apiKey, apiSecret, loginToken, phase, useJwt = false }) {
89
+ async configure({ apiKey, apiSecret, loginToken, phase, sessionId,useJwt = false }) {
174
90
  this.basicAuth = {
175
91
  apiKey: apiKey || this.basicAuth.apiKey,
176
92
  apiSecret: apiSecret || this.basicAuth.apiSecret,
@@ -183,6 +99,10 @@ class Client {
183
99
  if (loginToken) {
184
100
  this.addHeadersToRequest({ 'X-Cuenca-LoginToken': loginToken });
185
101
  }
102
+
103
+ if (sessionId) {
104
+ this.addHeadersToRequest({ 'X-Cuenca-SessionId': sessionId });
105
+ }
186
106
  }
187
107
 
188
108
  async get({ endpoint, format, params }) {
@@ -396,7 +316,13 @@ class BillPayment extends Transaction {
396
316
  status,
397
317
  userId,
398
318
  }) {
399
- super({ amount, createdAt, descriptor, status, userId });
319
+ super({
320
+ amount,
321
+ createdAt,
322
+ descriptor,
323
+ status,
324
+ userId,
325
+ });
400
326
  this.accountNumber = accountNumber;
401
327
  this.id = id;
402
328
  this.providerUri = providerUri;
@@ -510,7 +436,13 @@ class CardTransaction extends Transaction {
510
436
  type,
511
437
  userId,
512
438
  }) {
513
- super({ amount, createdAt, descriptor, status, userId });
439
+ super({
440
+ amount,
441
+ createdAt,
442
+ descriptor,
443
+ status,
444
+ userId,
445
+ });
514
446
  this.cardErrorType = enumValueFromString(CardErrorType, cardErrorType);
515
447
  this.cardLastFour = cardLastFour;
516
448
  this.cardType = enumValueFromString(CardType, cardType);
@@ -607,7 +539,13 @@ class Commission extends Transaction {
607
539
  type,
608
540
  userId,
609
541
  }) {
610
- super({ amount, createdAt, descriptor, status, userId });
542
+ super({
543
+ amount,
544
+ createdAt,
545
+ descriptor,
546
+ status,
547
+ userId,
548
+ });
611
549
  this.relatedTransactionUri = relatedTransactionUri;
612
550
  this.type = enumValueFromString(CommissionType, type);
613
551
  }
@@ -636,7 +574,13 @@ class Deposit extends Transaction {
636
574
  trackingKey,
637
575
  userId,
638
576
  }) {
639
- super({ amount, createdAt, descriptor, status, userId });
577
+ super({
578
+ amount,
579
+ createdAt,
580
+ descriptor,
581
+ status,
582
+ userId,
583
+ });
640
584
  this.id = id;
641
585
  this.network = enumValueFromString(DepositNetwork, network);
642
586
  this.sourceUri = sourceUri;
@@ -689,7 +633,14 @@ class Saving extends Wallet {
689
633
  userId,
690
634
  updatedAt,
691
635
  }) {
692
- super({ balance, createdAt, deactivatedAt, id, userId, updatedAt });
636
+ super({
637
+ balance,
638
+ createdAt,
639
+ deactivatedAt,
640
+ id,
641
+ userId,
642
+ updatedAt,
643
+ });
693
644
  this.category = enumValueFromString(SavingCategory, category);
694
645
  this.goalAmount = goalAmount;
695
646
  this.goalDate = dateToUTC(goalDate);
@@ -768,7 +719,13 @@ class Transfer extends Transaction {
768
719
  updatedAt,
769
720
  userId,
770
721
  }) {
771
- super({ amount, createdAt, descriptor, status, userId });
722
+ super({
723
+ amount,
724
+ createdAt,
725
+ descriptor,
726
+ status,
727
+ userId,
728
+ });
772
729
  this.accountNumber = accountNumber;
773
730
  this.destinationUri = destinationUri;
774
731
  this.id = id;
@@ -840,7 +797,13 @@ class WalletTransaction extends Transaction {
840
797
  userId,
841
798
  walletUri,
842
799
  }) {
843
- super({ amount, createdAt, descriptor, status, userId });
800
+ super({
801
+ amount,
802
+ createdAt,
803
+ descriptor,
804
+ status,
805
+ userId,
806
+ });
844
807
  this.id = id;
845
808
  this.transactionType = enumValueFromString(
846
809
  WalletTransactionType,
@@ -879,7 +842,13 @@ class WhatsAppTransfer extends Transaction {
879
842
  updatedAt,
880
843
  userId,
881
844
  }) {
882
- super({ amount, createdAt, descriptor, status, userId });
845
+ super({
846
+ amount,
847
+ createdAt,
848
+ descriptor,
849
+ status,
850
+ userId,
851
+ });
883
852
  this.claimUrl = claimUrl;
884
853
  this.destinationUri = destinationUri;
885
854
  this.id = id;
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  var errors_index = require('./errors/index.cjs');
4
- var data = require('./data-c83462d7.cjs');
4
+ var data = require('./data-9edbb2a0.cjs');
5
5
 
6
6
  class CardErrorType {
7
7
  static Blocked = new CardErrorType('blocked');
@@ -1,5 +1,5 @@
1
1
  import { ValidationError } from './errors/index.mjs';
2
- import { d as dateToUTC } from './data-c1851484.mjs';
2
+ import { d as dateToUTC } from './data-d5bcb7c8.mjs';
3
3
 
4
4
  class CardErrorType {
5
5
  static Blocked = new CardErrorType('blocked');
@@ -2,9 +2,9 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var walletTransactionRequest = require('../walletTransactionRequest-4542a70e.cjs');
5
+ var walletTransactionRequest = require('../walletTransactionRequest-f549e991.cjs');
6
6
  require('../errors/index.cjs');
7
- require('../data-c83462d7.cjs');
7
+ require('../data-9edbb2a0.cjs');
8
8
 
9
9
 
10
10
 
@@ -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, T as TransferRequest, U as UserCredentialRequest, e as UserCredentialUpdateRequest, f as UserLoginRequest, W as WalletTransactionRequest } from '../walletTransactionRequest-281c0a96.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, W as WalletTransactionRequest } from '../walletTransactionRequest-60d3cf69.mjs';
2
2
  import '../errors/index.mjs';
3
- import '../data-c1851484.mjs';
3
+ import '../data-d5bcb7c8.mjs';
@@ -2,9 +2,9 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var queries = require('../queries-35cba2f2.cjs');
5
+ var queries = require('../queries-0c03273e.cjs');
6
6
  require('../errors/index.cjs');
7
- require('../data-c83462d7.cjs');
7
+ require('../data-9edbb2a0.cjs');
8
8
 
9
9
 
10
10
 
@@ -1,3 +1,3 @@
1
- export { A as AccountQuery, i as ApiKeyQuery, B as BalanceEntryQuery, j as BillPaymentQuery, d as CardErrorType, c as CardFundingType, C as CardIssuer, a as CardStatus, l as CardTransactionQuery, e as CardTransactionType, b as CardType, k as CardsQuery, f as CommissionType, D as DepositNetwork, m as DepositQuery, E as EntryType, F as FileFormat, s as PageSize, P as Phase, Q as QueryParams, S as SavingCategory, g as ServiceProviderCategory, o as StatementQuery, r as TrackDataMethod, T as TransactionStatus, h as TransferNetwork, p as TransferQuery, n as WalletQuery, q as WalletTransactionQuery, W as WalletTransactionType } from '../queries-b9cd3fd7.mjs';
1
+ export { A as AccountQuery, i as ApiKeyQuery, B as BalanceEntryQuery, j as BillPaymentQuery, d as CardErrorType, c as CardFundingType, C as CardIssuer, a as CardStatus, l as CardTransactionQuery, e as CardTransactionType, b as CardType, k as CardsQuery, f as CommissionType, D as DepositNetwork, m as DepositQuery, E as EntryType, F as FileFormat, s as PageSize, P as Phase, Q as QueryParams, S as SavingCategory, g as ServiceProviderCategory, o as StatementQuery, r as TrackDataMethod, T as TransactionStatus, h as TransferNetwork, p as TransferQuery, n as WalletQuery, q as WalletTransactionQuery, W as WalletTransactionType } from '../queries-c73144c4.mjs';
2
2
  import '../errors/index.mjs';
3
- import '../data-c1851484.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 r(t){return t&&"object"==typeof t&&"default"in t?t:{default:t}}var i=r(e),a=r(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 y{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:r}=await t.post("token",{});s.eject();const i=y.getExpirationDate(r);return new y(i,r)}}class v{static Blocked=new v("blocked");static Comunication=new v("comunication");static ContactlesAmountLimit=new v("contactles_amount_limit");static FraudDetection=new v("fraud_detection");static FraudDetectionUncertain=new v("fraud_detection_uncertain");static InsufficientFounds=new v("insufficient_founds");static InvalidPin=new v("invalid_pin");static Notification=new v("notification");static NotificationDeactivatedCard=new v("notification_deactivated_card");constructor(t){this.value=t}}class b{static Credit=new b("credit");static Debit=new b("debit");constructor(t){this.value=t}}class g{static Accendo=new g("accendo");static Cuenca=new g("cuenca");constructor(t){this.value=t}}class f{static Active=new f("active");static Blocked=new f("blocked");static Created=new f("created");static Deactivated=new f("deactivated");static Printing=new f("printing");constructor(t){this.value=t}}class x{static Auth=new x("auth");static Capture=new x("capture");static Chargeback=new x("chargeback");static Expiration=new x("expiration");static Refund=new x("refund");static Void=new x("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 O{static Cash=new O("cash");static Internal=new O("internal");static Spei=new O("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 C{static Cable=new C("cable");static CreditCard=new C("credit_card");static Electricity=new C("electricity");static Gas=new C("gas");static Internet=new C("internet");static LandlineTelephone=new C("landline_telephone");static MobileTelephonePostpaid=new C("mobile_telephone_postpaid");static MobileTelephonePrepaid=new C("mobile_telephone_prepaid");static SateliteTelevision=new C("satelite_television");static Water=new C("water");constructor(t){this.value=t}}class U{static General=new U("general");static Home=new U("home");static Vehicle=new U("vehicle");static Travel=new U("travel");static Clothing=new U("clothing");static Other=new U("other");static Medical=new U("medical");static Accident=new U("accident");static Education=new U("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 E{static Internal=new E("internal");static Spei=new E("spei");constructor(t){this.value=t}}class P{static Deposit=new P("deposit");static Withdrawal=new P("withdrawal");constructor(t){this.value=t}}const $=t=>{if(!t)return null;const e=new Date(t);return new Date(e.getTime())},K=(t,e)=>Object.values(t).find((t=>t.value===e));class D{constructor({createdAfter:t,createdBefore:e,limit:s,pageSize:r,relatedTransaction:i,userId:a,count:n=!1}){this.createdAfter=t,this.createdBefore=e,this._lmt=s,this.relatedTransaction=i,this.userId=a,this.count=n,this.pageSize=r}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 q extends D{constructor({accountNumber:t,...e}){super(e),this.accountNumber=t}toObject(){return Object.assign(super.toObject(),{account_number:this.accountNumber})}}class M extends D{constructor({active:t,...e}){super(e),this.active=t}toObject(){return Object.assign(super.toObject(),{active:this.active})}}class B extends D{constructor({status:t,...e}){super(e),this.status=t}toObject(){return Object.assign(super.toObject(),{status:this.status})}}class V extends B{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 R extends B{constructor({accountNumber:t,idempotencyKey:e,trackingKey:s,network:r,...i}){super(i),this.accountNumber=t,this.idempotencyKey=e,this.trackingKey=s,this.network=r}toObject(){return Object.assign(super.toObject(),{account_number:this.accountNumber,idempotency_key:this.idempotencyKey,tracking_key:this.trackingKey,network:this.network})}}class Q extends D{constructor({fundingInstrumentUri:t,count:e=!1,walletId:s="default",...r}){super(r),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 Y 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 H extends D{constructor({walletUri:t,...e}){super(e),this.walletUri=t}toObject(){return Object.assign(super.toObject(),{wallet_uri:this.walletUri})}}class L extends D{constructor({active:t,...e}){super(e),this.active=t}toObject(){return Object.assign(super.toObject(),{active:this.active})}}class J 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=$(Date.now());s.setUTCDate(1);if($(`${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})}}var W="0.0.1-dev.17";class X{constructor({apiKey:t,apiSecret:e,phase:s=T.Sandbox}={}){this.phase=s,this.basicAuth={apiKey:t,apiSecret:e},this.jwtToken=null,this._session=i.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:r}}=s;return Object.keys(t).forEach((e=>r[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:r}}=s;return delete r[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:r,useJwt:i=!1}){this.basicAuth={apiKey:t||this.basicAuth.apiKey,apiSecret:e||this.basicAuth.apiSecret},r&&(this.phase=r),i&&(this.jwtToken=await y.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:r="GET",params:i=null}){const a={Authorization:this.authHeader,"Content-Type":"application/json",Accept:`application/${s.value}`};_?a["User-Agent"]=`cuenca-js/${W}`:w&&(a["X-User-Agent"]=`cuenca-js/${W}`),this.jwtToken&&(this.jwtToken.isExpired&&(this.jwtToken=await y.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:r,params:i,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 G{constructor({accountNumber:t,createdAt:e,id:s,institutionName:r,name:i,userId:a}){this.accountNumber=t,this.createdAt=$(e),this.id=s,this.institutionName=r,this.name=i,this.userId=a}static fromObject=({id:t,name:e,...s})=>new G({id:t,name:e,accountNumber:s.account_number,createdAt:s.created_at,institutionName:s.institution_name,userId:s.user_id})}class Z{constructor({createdAt:t,deactivatedAt:e,id:s,secret:r,userId:i,updatedAt:a}){this.createdAt=$(t),this.deactivatedAt=$(e),this.id=s,this.secret=r,this.userId=i,this.updatedAt=$(a)}static fromObject=({id:t,secret:e,...s})=>new Z({id:t,secret:e,createdAt:s.created_at,deactivatedAt:s.deactivated_at,userId:s.user_id,updatedAt:s.updated_at});get isActive(){const t=$(Date.now());return!this.deactivatedAt||this.deactivatedAt.getTime()>t.getTime()}}class tt{constructor({arpc:t,createdAt:e,cardUri:s,isValidArqc:r}){this.arpc=t,this.createdAt=$(e),this.cardUri=s,this.isValidArqc=r}static fromObject=({arpc:t,...e})=>new tt({arpc:t,createdAt:e.created_at,cardUri:e.card_uri,isValidArqc:e.is_valid_arqc})}class et{constructor({amount:t,createdAt:e,descriptor:s,entryType:r,fundingInstrumentUri:i,id:a,name:n,relatedTransactionUri:c,rollingBalance:o}){this.amount=t,this.createdAt=$(e),this.descriptor=s,this.entryType=K(I,r),this.fundingInstrumentUri=i,this.id=a,this.name=n,this.relatedTransactionUri=c,this.rollingBalance=o}static fromObject=({amount:t,descriptor:e,id:s,name:r,type:i,...a})=>new et({amount:t,descriptor:e,name:r,id:s,createdAt:a.created_at,entryType:i,fundingInstrumentUri:a.funding_instrument_uri,relatedTransactionUri:a.related_transaction_uri,rollingBalance:a.rolling_balance})}class st{constructor({amount:t,createdAt:e,descriptor:s,status:r,userId:i}){this.amount=t,this.createdAt=$(e),this.descriptor=s,this.status=K(N,r),this.userId=i}}class rt extends st{constructor({amount:t,accountNumber:e,createdAt:s,descriptor:r,id:i,providerUri:a,status:n,userId:c}){super({amount:t,createdAt:s,descriptor:r,status:n,userId:c}),this.accountNumber=e,this.id=i,this.providerUri=a}static fromObject=({amount:t,descriptor:e,id:s,status:r,...i})=>new rt({amount:t,descriptor:e,id:s,status:r,accountNumber:i.account_number,createdAt:i.created_at,providerUri:i.provider_uri,userId:i.user_id})}class it{constructor({createdAt:t,cvv2:e,expMonth:s,expYear:r,fundingType:i,id:a,issuer:n,number:c,pin:o,status:d,type:u,updatedAt:h,userId:p}){this.createdAt=$(t),this.cvv2=e,this.expMonth=s,this.expYear=r,this.fundingType=K(b,i),this.id=a,this.issuer=K(g,n),this.number=c,this.pin=o,this.status=K(f,d),this.type=K(j,u),this.updatedAt=$(h),this.userId=p}static fromObject=({cvv2:t,id:e,issuer:s,number:r,pin:i,status:a,type:n,...c})=>new it({cvv2:t,id:e,issuer:s,number:r,pin:i,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 at{constructor({cardUri:t,createdAt:e,id:s,ipAddress:r,success:i,userId:a}){this.cardUri=t,this.createdAt=$(e),this.id=s,this.ipAddress=r,this.success=i,this.userId=a}static fromObject=({id:t,success:e,...s})=>new at({id:t,success:e,cardUri:s.card_uri,createdAt:s.created_at,ipAddress:s.ip_address,userId:s.user_id})}class nt extends st{constructor({amount:t,cardErrorType:e,cardLastFour:s,cardType:r,cardUri:i,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=K(v,e),this.cardLastFour=s,this.cardType=K(j,r),this.cardUri=i,this.metadata=c,this.network=o,this.relatedCardTransactionsUris=d,this.type=K(x,h)}static fromObject=({amount:t,descriptor:e,metadata:s,network:r,status:i,type:a,...n})=>new nt({amount:t,descriptor:e,metadata:s,network:r,status:i,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 ct{constructor({cardStatus:t,cardType:e,cardUri:s,createdAt:r,isExpired:i,isPinAttemptsExceeded:a,isValidCvv:n,isValidCvv2:c,isValidExpDate:o,isValidIcvv:d,isValidPinBlock:u,userId:h}){this.cardStatus=K(f,t),this.cardType=K(j,e),this.cardUri=s,this.createdAt=$(r),this.isExpired=i,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 ct({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===f.Active}}class ot extends st{constructor({amount:t,createdAt:e,descriptor:s,relatedTransactionUri:r,status:i,type:a,userId:n}){super({amount:t,createdAt:e,descriptor:s,status:i,userId:n}),this.relatedTransactionUri=r,this.type=K(A,a)}static fromObject=({amount:t,descriptor:e,status:s,type:r,...i})=>new ot({amount:t,descriptor:e,status:s,type:r,createdAt:i.created_at,relatedTransactionUri:i.related_transaction_uri,userId:i.user_id})}class dt extends st{constructor({amount:t,createdAt:e,descriptor:s,id:r,network:i,status:a,sourceUri:n,trackingKey:c,userId:o}){super({amount:t,createdAt:e,descriptor:s,status:a,userId:o}),this.id=r,this.network=K(O,i),this.sourceUri=n,this.trackingKey=c}static fromObject=({amount:t,descriptor:e,id:s,network:r,status:i,...a})=>new dt({amount:t,descriptor:e,id:s,network:r,status:i,createdAt:a.created_at,sourceUri:a.source_uri,trackingKey:a.tracking_key,userId:a.user_id})}class ut{constructor({id:t}){this.id=t}static fromObject=({id:t})=>new ut({id:t})}class ht extends class{constructor({balance:t,createdAt:e,deactivatedAt:s,id:r,userId:i,updatedAt:a}){this.balance=t,this.createdAt=$(e),this.deactivatedAt=$(s),this.id=r,this.userId=i,this.updatedAt=$(a)}}{constructor({balance:t,category:e,createdAt:s,deactivatedAt:r,goalAmount:i,goalDate:a,id:n,name:c,userId:o,updatedAt:d}){super({balance:t,createdAt:s,deactivatedAt:r,id:n,userId:o,updatedAt:d}),this.category=K(U,e),this.goalAmount=i,this.goalDate=$(a),this.name=c}static fromObject=({balance:t,category:e,id:s,name:r,...i})=>new ht({balance:t,category:e,id:s,name:r,createdAt:i.created_at,deactivatedAt:i.deactivated_at,goalAmount:i.goal_amount,goalDate:i.goal_date,userId:i.user_id,updatedAt:i.updated_at})}class pt{constructor({categories:t,id:e,name:s,providerKey:r}){var i;this.categories=null==(i=t)?[]:i.map((t=>K(C,t))),this.id=e,this.name=s,this.providerKey=r}static fromObject=({categories:t,id:e,name:s,...r})=>new pt({categories:t,id:e,name:s,providerKey:r.provider_key})}class lt{constructor({createdAt:t,id:e,month:s,year:r}){this.createdAt=$(t),this.id=e,this.month=s,this.year=r}static fromObject=({id:t,month:e,year:s,...r})=>new lt({id:t,month:e,year:s,createdAt:r.created_at})}class mt extends st{constructor({accountNumber:t,amount:e,createdAt:s,descriptor:r,destinationUri:i,id:a,idempotencyKey:n,network:c,recipientName:o,status:d,trackingKey:u,updatedAt:h,userId:p}){super({amount:e,createdAt:s,descriptor:r,status:d,userId:p}),this.accountNumber=t,this.destinationUri=i,this.id=a,this.idempotencyKey=n,this.network=K(E,c),this.recipientName=o,this.trackingKey=u,this.updatedAt=$(h)}static fromObject=({amount:t,descriptor:e,id:s,network:r,status:i,...a})=>new mt({amount:t,descriptor:e,id:s,network:r,status:i,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 wt{constructor({createdAt:t,id:e,isActive:s,updatedAt:r}){this.createdAt=$(t),this.id=e,this.isActive=s,this.updatedAt=$(r)}static fromObject=({id:t,...e})=>new wt({id:t,createdAt:e.created_at,isActive:e.is_active,updatedAt:e.updated_at})}class _t{constructor({id:t,lastLoginAt:e,success:s}){this.id=t,this.lastLoginAt=$(e),this.success=s}static fromObject=({id:t,success:e,...s})=>new _t({id:t,success:e,lastLoginAt:s.last_login_at})}class yt extends st{constructor({amount:t,createdAt:e,descriptor:s,id:r,status:i,transactionType:a,userId:n,walletUri:c}){super({amount:t,createdAt:e,descriptor:s,status:i,userId:n}),this.id=r,this.transactionType=K(P,a),this.walletUri=c}static fromObject=({amount:t,descriptor:e,id:s,status:r,...i})=>new yt({amount:t,descriptor:e,id:s,status:r,createdAt:i.created_at,transactionType:i.transaction_type,userId:i.user_id,walletUri:i.wallet_uri})}class vt extends st{constructor({amount:t,claimUrl:e,createdAt:s,descriptor:r,destinationUri:i,expiresAt:a,id:n,network:c,phoneNumber:o,recipientName:d,status:u,trackingKey:h,updatedAt:p,userId:l}){super({amount:t,createdAt:s,descriptor:r,status:u,userId:l}),this.claimUrl=e,this.destinationUri=i,this.id=n,this.expiresAt=$(a),this.network=K(E,c),this.phoneNumber=o,this.recipientName=d,this.trackingKey=h,this.updatedAt=$(p)}static fromObject=({amount:t,descriptor:e,id:s,network:r,status:i,...a})=>new vt({amount:t,descriptor:e,id:s,network:r,status:i,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 bt{constructor(t){this.superclass=t}with(...t){return t.reduce(((t,e)=>e(t)),this.superclass)}}const gt=t=>new bt(t),ft=(t,e)=>({accounts:()=>G.fromObject(e),api_keys:()=>Z.fromObject(e),arpc:()=>tt.fromObject(e),balance_entries:()=>et.fromObject(e),bill_payments:()=>rt.fromObject(e),cards:()=>it.fromObject(e),card_activations:()=>at.fromObject(e),card_transactions:()=>nt.fromObject(e),card_validations:()=>ct.fromObject(e),commissions:()=>ot.fromObject(e),deposits:()=>dt.fromObject(e),login_tokens:()=>ut.fromObject(e),savings:()=>ht.fromObject(e),service_providers:()=>pt.fromObject(e),statements:()=>lt.fromObject(e),transfers:()=>mt.fromObject(e),user_credentials:()=>wt.fromObject(e),user_logins:()=>_t.fromObject(e),wallet_transactions:()=>yt.fromObject(e),whatsapp_transfers:()=>vt.fromObject(e)}[t]()),xt=t=>{if(null===t||""===t)return null;const e=t.match("/(.*?)/");return null===e?null:e[0].replaceAll("/","")};class jt{constructor(t,e,s){this.path=t,this.QueryParams=e,this.client=s}}const At=t=>class extends t{async retrieve(t){const e=await this.client.get({endpoint:`/${this.path}/${t}`});return ft(this.path,e)}},Ot=t=>class extends t{async _create(t){const e=await this.client.post({endpoint:`/${this.path}`,data:t});return ft(this.path,e)}},It=t=>class extends t{async _update(t,e){const s=await this.client.patch({endpoint:`/${this.path}/${t}`,data:e});return ft(this.path,s)}},kt=t=>class extends t{async _deactivate(t,e){const s=await this.client.delete({endpoint:`/${this.path}/${t}`,data:e});return ft(this.path,s)}},Tt=t=>class extends t{async _download(t,e){return await this.client.get({endpoint:`/${this.path}/${t}`,format:e})}},Ct=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 ft(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 ft(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=ft(this.path,e);yield t}e=t.next_page_uri}}};class Ut extends(gt(jt).with(Ct,At)){constructor(t){super("accounts",q,t)}}class St{toObject(){return{}}toCleanObject(){const t=this.toObject();return Object.keys(t).forEach((e=>{null==t[e]&&delete t[e]})),t}}class Nt extends St{constructor(t,e){super(),this.userId=t,this.metadata=e}toObject(){return{user_id:this.userId,metadata:this.metadata}}}class Et extends St{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 Pt extends St{constructor(t,e){super(),this.status=t,this.pinBlock=e}toObject(){return{status:this.status,pin_block:this.pinBlock}}}class $t extends St{constructor(t,e,s,r){super(),this.n=t,this.eM=e,this.eY=s,this.c2=r}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 Kt extends St{constructor({cvv:t,cvv2:e,expMonth:s,expYear:r,icvv:i,number:a,pinBlock:n,pinAttemptsExceeded:c}){super(),this.c=t,this.c2=e,this.em=s,this.ey=r,this.ic=i,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 Dt extends St{constructor(t,e,s,r){super(),this.category=t,this.name=r,this.goalAmount=e,this.validDate=s}get goalDate(){return this._goalDate}set validDate(t){if(t){if($(t).getTime()<=$(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 qt extends St{constructor(t,e,s,r,i){super(),this.accountNumber=t,this.amount=e,this.descriptor=s,this.idempotencyKey=r,this.recipientName=i}toObject(){return{account_number:this.accountNumber,amount:this.amount,descriptor:this.descriptor,idempotency_key:this.idempotencyKey,recipient_name:this.recipientName}}}class Mt extends St{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 Bt extends St{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 Vt extends St{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 Rt extends St{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(gt(jt).with(Ot,kt,Ct,At,It)){constructor(t){super("api_keys",M,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 r=new Nt(s,e);return await this._update(t,r.toCleanObject())}}gt(jt).with(Ot);class Yt extends(gt(jt).with(Ct,At)){constructor(t){super("balance_entries",Q,t)}async relatedTransaction(t){const e=xt(t);if(null==e)return null;const s=await this.client.get({endpoint:t});return ft(`${e}`,s)}async fundingInstrument(t){const e=xt(t);if(null==e)return null;const s=await this.client.get({endpoint:t});return ft(`${e}`,s)}}class Ft extends(gt(jt).with(Ct,At)){constructor(t){super("bill_payments",Y,t)}async serviceProvider(t){const e=xt(t);if(null==e)return null;const s=await this.client.get({endpoint:t});return ft(`${e}`,s)}}class zt extends(gt(jt).with(Ot)){constructor(t){super("card_activations",Object,t)}async create({number:t,expMonth:e,expYear:s,cvv2:r}){const i=new $t(t,e,s,r);return await this._create(i.toCleanObject())}async card(t){if(!t)return null;const e=await this.client.get({endpoint:t});return it.fromObject(e)}}class Ht extends(gt(jt).with(Ot,kt,Ct,At,It)){constructor(t){super("cards",z,t)}async create(t,e,s){const r=new Et(t,e,s);return await this._create(r.toCleanObject())}async deactivate(t){return await this._deactivate(t)}async update(t,e,s){const r=new Pt(e,s);return await this._update(t,r.toCleanObject())}}class Lt extends(gt(jt).with(Ct,At)){constructor(t){super("card_transactions",F,t)}async relatedCard(t){const e=xt(t);if(null==e)return null;const s=await this.client.get({endpoint:t});return ft(`${e}`,s)}}class Jt extends(gt(jt).with(Ot)){constructor(t){super("card_validations",Object,t)}async create({cvv:t,cvv2:e,expMonth:s,expYear:r,icvv:i,number:a,pinBlock:n,pinAttemptsExceeded:c}){const o=new Kt({cvv:t,cvv2:e,expMonth:s,expYear:r,icvv:i,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 it.fromObject(e)}}class Wt extends(gt(jt).with(Ct,At)){constructor(t){super("commissions",D,t)}async relatedTransaction(t){const e=xt(t);if(null==e)return null;const s=await this.client.get(t);return ft(`${e}`,s)}}class Xt extends(gt(jt).with(Ct,At)){constructor(t){super("deposits",V,t)}async source(t){const e=await this.client.get({endpoint:t});return G.fromObject(e)}}class Gt extends(gt(jt).with(Ot)){constructor(t){super("login_tokens",Object,t)}async create(){return await this._create()}}class Zt extends(gt(jt).with(Ot,kt,Ct,At,It)){constructor(t){super("savings",L,t)}async create(t,e,s,r){const i=new Dt(t,e,s,r);return await this._create(i.toObject())}async deactivate(t){return await this._deactivate(t)}async update(t,e,s,r,i){const a=new Dt(e,s,r,i);return await this._update(t,a.toObject())}}class te extends(gt(jt).with(Ct,At)){constructor(t){super("service_providers",D,t)}}class ee extends(gt(jt).with(Tt,Ct)){constructor(t){super("statements",J,t)}async pdf(t){return await this._download(t,k.Pdf)}async xml(t){return await this._download(t,k.Xml)}}class se extends(gt(jt).with(Ot,Ct,At)){constructor(t){super("transfers",R,t)}async destination(t){const e=await this.client.get({endpoint:t});return G.fromObject(e)}async create({accountNumber:t,amount:e,descriptor:s,recipientName:r,idempotencyKey:i}){const a=i||this.constructor._genIdempotencyKey(t,e),n=new qt(t,e,s,a,r);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:r,idempotencyKey:i,recipientName:a})=>{const n=new qt(t,s,r,i||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]=$(Date.now()).toISOString().split("T");return`${s}:${t}:${e}`}}class re extends(gt(jt).with(Ot,It)){constructor(t){super("user_credentials",Object,t)}async create(t){const e=new Mt(t);return await this._create(e.toObject())}async update({isActive:t,password:e,userId:s="me"}){const r=new Bt(e,t);return await this._update(s,r.toCleanObject())}}class ie extends(gt(jt).with(Ot,kt)){constructor(t){super("user_logins",Object,t),this.loginIdInHeaders=null}async create(t,e){const s=new Vt(t,e),r=await this._create(s.toObject());if(!r.success)throw new h;return this.loginIdInHeaders=this.client.addHeadersToRequest({"X-Cuenca-LoginId":r.id}),r}async logOut(t="me"){return await this._deactivate(t,{}),this.loginIdInHeaders&&this.loginIdInHeaders.eject(),!0}}class ae extends(gt(jt).with(Ot,Ct,At)){constructor(t){super("wallet_transactions",H,t)}async create(t,e,s){const r=new Rt(t,e,s);return await this._create(r.toObject())}async realtedWallet(t){const e=xt(t);if(null==e)return null;const s=await this.client.get(t);return ft(`${e}`,s)}}class ne extends(gt(jt).with(Ct,At)){constructor(t){super("whatsapp_transfers",D,t)}async accountDestination(t){const e=xt(t);if(null==e)return null;const s=await this.client.get(t);return ft(`${e}`,s)}}t.AccountQuery=q,t.ApiKeyQuery=M,t.BalanceEntryQuery=Q,t.BillPaymentQuery=Y,t.CardErrorType=v,t.CardFundingType=b,t.CardIssuer=g,t.CardStatus=f,t.CardTransactionQuery=F,t.CardTransactionType=x,t.CardType=j,t.CardsQuery=z,t.CommissionType=A,t.Cuenca=class{constructor(t,e,s=T.Sandbox){this.client=new X({apiKey:t,apiSecret:e,phase:s}),this.withClient(this.client)}withClient(t){this.accounts=new Ut(t),this.apiKeys=new Qt(t),this.balanceEntries=new Yt(t),this.billPayments=new Ft(t),this.cardActivations=new zt(t),this.cards=new Ht(t),this.cardTransactions=new Lt(t),this.cardValidations=new Jt(t),this.commissions=new Wt(t),this.deposits=new Xt(t),this.loginTokens=new Gt(t),this.savings=new Zt(t),this.serviceProviders=new te(t),this.statements=new ee(t),this.transfers=new se(t),this.userCredentials=new re(t),this.userLogins=new ie(t),this.walletTransactions=new ae(t),this.whatsAppTransfers=new ne(t)}},t.CuencaException=n,t.CuencaResponseException=c,t.DepositNetwork=O,t.DepositQuery=V,t.EntryType=I,t.FileFormat=k,t.InvalidPassword=h,t.Jwt=y,t.MalformedJwtToken=u,t.MultipleResultsFound=d,t.NoResultFound=o,t.PageSize=class{constructor(t){this.maxSize=100,this._ps=t}get size(){return this._pageSize}set _ps(t){let e=this.maxSize;t&&t>0&&t<=this.maxSize&&(e=t),this._pageSize=e}},t.Phase=T,t.QueryParams=D,t.SavingCategory=U,t.ServiceProviderCategory=C,t.StatementQuery=J,t.TrackDataMethod=S,t.TransactionStatus=N,t.TransferNetwork=E,t.TransferQuery=R,t.ValidationError=p,t.WalletQuery=L,t.WalletTransactionQuery=H,t.WalletTransactionType=P}));
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 b{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=b.getExpirationDate(i);return new b(r,i)}}class v{static Blocked=new v("blocked");static Comunication=new v("comunication");static ContactlesAmountLimit=new v("contactles_amount_limit");static FraudDetection=new v("fraud_detection");static FraudDetectionUncertain=new v("fraud_detection_uncertain");static InsufficientFounds=new v("insufficient_founds");static InvalidPin=new v("invalid_pin");static Notification=new v("notification");static NotificationDeactivatedCard=new v("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 g{static Accendo=new g("accendo");static Cuenca=new g("cuenca");constructor(t){this.value=t}}class f{static Active=new f("active");static Blocked=new f("blocked");static Created=new f("created");static Deactivated=new f("deactivated");static Printing=new f("printing");constructor(t){this.value=t}}class j{static Auth=new j("auth");static Capture=new j("capture");static Chargeback=new j("chargeback");static Expiration=new j("expiration");static Refund=new j("refund");static Void=new j("void");constructor(t){this.value=t}}class A{static Physical=new A("physical");static Virtual=new A("virtual");constructor(t){this.value=t}}class x{static CardRequest=new x("card_request");static CashDeposit=new x("cash_deposit");static OutgoingSpei=new x("outgoing_spei");constructor(t){this.value=t}}class O{static Cash=new O("cash");static Internal=new O("internal");static Spei=new O("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 N{static NotSet=new N("not_set");static Terminal=new N("terminal");static Manual=new N("manual");static Unknown=new N("unknown");static Contactless=new N("contactless");static FallBack=new N("fall_back");static MagneticStripe=new N("magnetic_stripe");static RecurringCharge=new N("recurring_charge");constructor(t){this.value=t}}class S{static Created=new S("created");static Failed=new S("failed");static InReview=new S("in_review");static Submitted=new S("submitted");static Succeeded=new S("succeeded");constructor(t){this.value=t}}class ${static Internal=new $("internal");static Spei=new $("spei");constructor(t){this.value=t}}class K{static Deposit=new K("deposit");static Withdrawal=new K("withdrawal");constructor(t){this.value=t}}const q=t=>{if(!t)return null;const e=new Date(t);return new Date(e.getTime())},E=(t,e)=>Object.values(t).find((t=>t.value===e));class P{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 D extends P{constructor({accountNumber:t,...e}){super(e),this.accountNumber=t}toObject(){return Object.assign(super.toObject(),{account_number:this.accountNumber})}}class M extends P{constructor({active:t,...e}){super(e),this.active=t}toObject(){return Object.assign(super.toObject(),{active:this.active})}}class B extends P{constructor({status:t,...e}){super(e),this.status=t}toObject(){return Object.assign(super.toObject(),{status:this.status})}}class V extends B{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 R extends B{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 Y extends P{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 H extends P{constructor({accountNumber:t,...e}){super(e),this.accountNumber=t}toObject(){return Object.assign(super.toObject(),{account_number:this.accountNumber})}}class L extends P{constructor({cardUri:t,...e}){super(e),this.cardUri=t}toObject(){return Object.assign(super.toObject(),{card_uri:this.cardUri})}}class F extends P{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 X extends P{constructor({walletUri:t,...e}){super(e),this.walletUri=t}toObject(){return Object.assign(super.toObject(),{wallet_uri:this.walletUri})}}class z extends P{constructor({active:t,...e}){super(e),this.active=t}toObject(){return Object.assign(super.toObject(),{active:this.active})}}class Q extends P{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=q(Date.now());s.setUTCDate(1);if(q(`${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})}}var J="0.0.1-dev.20";class W{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 b.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/${J}`:w&&(a["X-User-Agent"]=`cuenca-js/${J}`),this.jwtToken&&(this.jwtToken.isExpired&&(this.jwtToken=await b.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 G{constructor({accountNumber:t,createdAt:e,id:s,institutionName:i,name:r,userId:a}){this.accountNumber=t,this.createdAt=q(e),this.id=s,this.institutionName=i,this.name=r,this.userId=a}static fromObject=({id:t,name:e,...s})=>new G({id:t,name:e,accountNumber:s.account_number,createdAt:s.created_at,institutionName:s.institution_name,userId:s.user_id})}class Z{constructor({createdAt:t,deactivatedAt:e,id:s,secret:i,userId:r,updatedAt:a}){this.createdAt=q(t),this.deactivatedAt=q(e),this.id=s,this.secret=i,this.userId=r,this.updatedAt=q(a)}static fromObject=({id:t,secret:e,...s})=>new Z({id:t,secret:e,createdAt:s.created_at,deactivatedAt:s.deactivated_at,userId:s.user_id,updatedAt:s.updated_at});get isActive(){const t=q(Date.now());return!this.deactivatedAt||this.deactivatedAt.getTime()>t.getTime()}}class tt{constructor({arpc:t,createdAt:e,cardUri:s,isValidArqc:i}){this.arpc=t,this.createdAt=q(e),this.cardUri=s,this.isValidArqc=i}static fromObject=({arpc:t,...e})=>new tt({arpc:t,createdAt:e.created_at,cardUri:e.card_uri,isValidArqc:e.is_valid_arqc})}class et{constructor({amount:t,createdAt:e,descriptor:s,entryType:i,fundingInstrumentUri:r,id:a,name:n,relatedTransactionUri:c,rollingBalance:o}){this.amount=t,this.createdAt=q(e),this.descriptor=s,this.entryType=E(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 et({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 st{constructor({amount:t,createdAt:e,descriptor:s,status:i,userId:r}){this.amount=t,this.createdAt=q(e),this.descriptor=s,this.status=E(S,i),this.userId=r}}class it extends st{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 it({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 rt{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=q(t),this.cvv2=e,this.expMonth=s,this.expYear=i,this.fundingType=E(y,r),this.id=a,this.issuer=E(g,n),this.number=c,this.pin=o,this.status=E(f,d),this.type=E(A,u),this.updatedAt=q(h),this.userId=p}static fromObject=({cvv2:t,id:e,issuer:s,number:i,pin:r,status:a,type:n,...c})=>new rt({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 at{constructor({cardUri:t,createdAt:e,id:s,ipAddress:i,success:r,userId:a}){this.cardUri=t,this.createdAt=q(e),this.id=s,this.ipAddress=i,this.success=r,this.userId=a}static fromObject=({id:t,success:e,...s})=>new at({id:t,success:e,cardUri:s.card_uri,createdAt:s.created_at,ipAddress:s.ip_address,userId:s.user_id})}class nt extends st{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=E(v,e),this.cardLastFour=s,this.cardType=E(A,i),this.cardUri=r,this.metadata=c,this.network=o,this.relatedCardTransactionsUris=d,this.type=E(j,h)}static fromObject=({amount:t,descriptor:e,metadata:s,network:i,status:r,type:a,...n})=>new nt({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 ct{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=E(f,t),this.cardType=E(A,e),this.cardUri=s,this.createdAt=q(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 ct({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===f.Active}}class ot extends st{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=E(x,a)}static fromObject=({amount:t,descriptor:e,status:s,type:i,...r})=>new ot({amount:t,descriptor:e,status:s,type:i,createdAt:r.created_at,relatedTransactionUri:r.related_transaction_uri,userId:r.user_id})}class dt extends st{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=E(O,r),this.sourceUri=n,this.trackingKey=c}static fromObject=({amount:t,descriptor:e,id:s,network:i,status:r,...a})=>new dt({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 ut{constructor({id:t}){this.id=t}static fromObject=({id:t})=>new ut({id:t})}class ht extends class{constructor({balance:t,createdAt:e,deactivatedAt:s,id:i,userId:r,updatedAt:a}){this.balance=t,this.createdAt=q(e),this.deactivatedAt=q(s),this.id=i,this.userId=r,this.updatedAt=q(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=E(C,e),this.goalAmount=r,this.goalDate=q(a),this.name=c}static fromObject=({balance:t,category:e,id:s,name:i,...r})=>new ht({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 pt{constructor({categories:t,id:e,name:s,providerKey:i}){var r;this.categories=null==(r=t)?[]:r.map((t=>E(U,t))),this.id=e,this.name=s,this.providerKey=i}static fromObject=({categories:t,id:e,name:s,...i})=>new pt({categories:t,id:e,name:s,providerKey:i.provider_key})}class lt{constructor({createdAt:t,id:e,month:s,year:i}){this.createdAt=q(t),this.id=e,this.month=s,this.year=i}static fromObject=({id:t,month:e,year:s,...i})=>new lt({id:t,month:e,year:s,createdAt:i.created_at})}class mt extends st{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=E($,c),this.recipientName=o,this.trackingKey=u,this.updatedAt=q(h)}static fromObject=({amount:t,descriptor:e,id:s,network:i,status:r,...a})=>new mt({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 wt{constructor({createdAt:t,id:e,isActive:s,updatedAt:i}){this.createdAt=q(t),this.id=e,this.isActive=s,this.updatedAt=q(i)}static fromObject=({id:t,...e})=>new wt({id:t,createdAt:e.created_at,isActive:e.is_active,updatedAt:e.updated_at})}class _t{constructor({id:t,lastLoginAt:e,success:s}){this.id=t,this.lastLoginAt=q(e),this.success=s}static fromObject=({id:t,success:e,...s})=>new _t({id:t,success:e,lastLoginAt:s.last_login_at})}class bt extends st{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=E(K,a),this.walletUri=c}static fromObject=({amount:t,descriptor:e,id:s,status:i,...r})=>new bt({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 vt extends st{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=q(a),this.network=E($,c),this.phoneNumber=o,this.recipientName=d,this.trackingKey=h,this.updatedAt=q(p)}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,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 yt{constructor(t){this.superclass=t}with(...t){return t.reduce(((t,e)=>e(t)),this.superclass)}}const gt=t=>new yt(t),ft=(t,e)=>({accounts:()=>G.fromObject(e),api_keys:()=>Z.fromObject(e),arpc:()=>tt.fromObject(e),balance_entries:()=>et.fromObject(e),bill_payments:()=>it.fromObject(e),cards:()=>rt.fromObject(e),card_activations:()=>at.fromObject(e),card_transactions:()=>nt.fromObject(e),card_validations:()=>ct.fromObject(e),commissions:()=>ot.fromObject(e),deposits:()=>dt.fromObject(e),login_tokens:()=>ut.fromObject(e),savings:()=>ht.fromObject(e),service_providers:()=>pt.fromObject(e),statements:()=>lt.fromObject(e),transfers:()=>mt.fromObject(e),user_credentials:()=>wt.fromObject(e),user_logins:()=>_t.fromObject(e),wallet_transactions:()=>bt.fromObject(e),whatsapp_transfers:()=>vt.fromObject(e)}[t]()),jt=t=>{if(null===t||""===t)return null;const e=t.match("/(.*?)/");return null===e?null:e[0].replaceAll("/","")};class At{constructor(t,e,s){this.path=t,this.QueryParams=e,this.client=s}}const xt=t=>class extends t{async retrieve(t){const e=await this.client.get({endpoint:`/${this.path}/${t}`});return ft(this.path,e)}},Ot=t=>class extends t{async _create(t){const e=await this.client.post({endpoint:`/${this.path}`,data:t});return ft(this.path,e)}},It=t=>class extends t{async _update(t,e){const s=await this.client.patch({endpoint:`/${this.path}/${t}`,data:e});return ft(this.path,s)}},kt=t=>class extends t{async _deactivate(t,e){const s=await this.client.delete({endpoint:`/${this.path}/${t}`,data:e});return ft(this.path,s)}},Tt=t=>class extends t{async _download(t,e){return await this.client.get({endpoint:`/${this.path}/${t}`,format:e})}},Ut=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 ft(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 ft(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=ft(this.path,e);yield t}e=t.next_page_uri}}};class Ct extends(gt(At).with(Ut,xt)){constructor(t){super("accounts",D,t)}}class Nt{toObject(){return{}}toCleanObject(){const t=this.toObject();return Object.keys(t).forEach((e=>{null==t[e]&&delete t[e]})),t}}class St extends Nt{constructor(t,e){super(),this.userId=t,this.metadata=e}toObject(){return{user_id:this.userId,metadata:this.metadata}}}class $t extends Nt{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 Kt extends Nt{constructor(t,e){super(),this.status=t,this.pinBlock=e}toObject(){return{status:this.status,pin_block:this.pinBlock}}}class qt extends Nt{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 Et extends Nt{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 Pt extends Nt{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(q(t).getTime()<=q(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 Dt extends Nt{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 Mt extends Nt{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 Bt extends Nt{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 Vt extends Nt{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 Rt extends Nt{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 Yt extends(gt(At).with(Ot,kt,Ut,xt,It)){constructor(t){super("api_keys",M,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 St(s,e);return await this._update(t,i.toCleanObject())}}gt(At).with(Ot);class Ht extends(gt(At).with(Ut,xt)){constructor(t){super("balance_entries",Y,t)}async relatedTransaction(t){const e=jt(t);if(null==e)return null;const s=await this.client.get({endpoint:t});return ft(`${e}`,s)}async fundingInstrument(t){const e=jt(t);if(null==e)return null;const s=await this.client.get({endpoint:t});return ft(`${e}`,s)}}class Lt extends(gt(At).with(Ut,xt)){constructor(t){super("bill_payments",H,t)}async serviceProvider(t){const e=jt(t);if(null==e)return null;const s=await this.client.get({endpoint:t});return ft(`${e}`,s)}}class Ft extends(gt(At).with(Ot)){constructor(t){super("card_activations",Object,t)}async create({number:t,expMonth:e,expYear:s,cvv2:i}){const r=new qt(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 rt.fromObject(e)}}class Xt extends(gt(At).with(Ot,kt,Ut,xt,It)){constructor(t){super("cards",F,t)}async create(t,e,s){const i=new $t(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 Kt(e,s);return await this._update(t,i.toCleanObject())}}class zt extends(gt(At).with(Ut,xt)){constructor(t){super("card_transactions",L,t)}async relatedCard(t){const e=jt(t);if(null==e)return null;const s=await this.client.get({endpoint:t});return ft(`${e}`,s)}}class Qt extends(gt(At).with(Ot)){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 Et({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 rt.fromObject(e)}}class Jt extends(gt(At).with(Ut,xt)){constructor(t){super("commissions",P,t)}async relatedTransaction(t){const e=jt(t);if(null==e)return null;const s=await this.client.get(t);return ft(`${e}`,s)}}class Wt extends(gt(At).with(Ut,xt)){constructor(t){super("deposits",V,t)}async source(t){const e=await this.client.get({endpoint:t});return G.fromObject(e)}}class Gt extends(gt(At).with(Ot)){constructor(t){super("login_tokens",Object,t)}async create(){return await this._create()}}class Zt extends(gt(At).with(Ot,kt,Ut,xt,It)){constructor(t){super("savings",z,t)}async create(t,e,s,i){const r=new Pt(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 Pt(e,s,i,r);return await this._update(t,a.toObject())}}class te extends(gt(At).with(Ut,xt)){constructor(t){super("service_providers",P,t)}}class ee extends(gt(At).with(Tt,Ut)){constructor(t){super("statements",Q,t)}async pdf(t){return await this._download(t,k.Pdf)}async xml(t){return await this._download(t,k.Xml)}}class se extends(gt(At).with(Ot,Ut,xt)){constructor(t){super("transfers",R,t)}async destination(t){const e=await this.client.get({endpoint:t});return G.fromObject(e)}async create({accountNumber:t,amount:e,descriptor:s,recipientName:i,idempotencyKey:r}){const a=r||this.constructor._genIdempotencyKey(t,e),n=new Dt(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 Dt(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]=q(Date.now()).toISOString().split("T");return`${s}:${t}:${e}`}}class ie extends(gt(At).with(Ot,It)){constructor(t){super("user_credentials",Object,t)}async create(t){const e=new Mt(t);return await this._create(e.toObject())}async update({isActive:t,password:e,userId:s="me"}){const i=new Bt(e,t);return await this._update(s,i.toCleanObject())}}class re extends(gt(At).with(Ot,kt)){constructor(t){super("user_logins",Object,t),this.loginIdInHeaders=null}async create(t,e){const s=new Vt(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 ae extends(gt(At).with(Ot,Ut,xt)){constructor(t){super("wallet_transactions",X,t)}async create(t,e,s){const i=new Rt(t,e,s);return await this._create(i.toObject())}async realtedWallet(t){const e=jt(t);if(null==e)return null;const s=await this.client.get(t);return ft(`${e}`,s)}}class ne extends(gt(At).with(Ut,xt)){constructor(t){super("whatsapp_transfers",P,t)}async accountDestination(t){const e=jt(t);if(null==e)return null;const s=await this.client.get(t);return ft(`${e}`,s)}}t.Cuenca=class{constructor(t,e,s=T.Sandbox){this.client=new W({apiKey:t,apiSecret:e,phase:s}),this.withClient(this.client)}withClient(t){this.accounts=new Ct(t),this.apiKeys=new Yt(t),this.balanceEntries=new Ht(t),this.billPayments=new Lt(t),this.cardActivations=new Ft(t),this.cards=new Xt(t),this.cardTransactions=new zt(t),this.cardValidations=new Qt(t),this.commissions=new Jt(t),this.deposits=new Wt(t),this.loginTokens=new Gt(t),this.savings=new Zt(t),this.serviceProviders=new te(t),this.statements=new ee(t),this.transfers=new se(t),this.userCredentials=new ie(t),this.userLogins=new re(t),this.walletTransactions=new ae(t),this.whatsAppTransfers=new ne(t)}}}));
@@ -1,5 +1,5 @@
1
1
  import { ValidationError } from './errors/index.mjs';
2
- import { d as dateToUTC } from './data-c1851484.mjs';
2
+ import { d as dateToUTC } from './data-d5bcb7c8.mjs';
3
3
 
4
4
  class BaseRequest {
5
5
  toObject() {
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  var errors_index = require('./errors/index.cjs');
4
- var data = require('./data-c83462d7.cjs');
4
+ var data = require('./data-9edbb2a0.cjs');
5
5
 
6
6
  class BaseRequest {
7
7
  toObject() {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cuenca-mx/cuenca-js",
3
- "version": "0.0.1-dev.17",
3
+ "version": "0.0.1-dev.20",
4
4
  "description": "Cuenca client for JS",
5
5
  "main": "./build/index.cjs",
6
6
  "module": "./build/index.mjs",