@cuenca-mx/cuenca-js 0.0.1-dev.2 → 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 +156 -2
- package/build/{cjs/data-c53f1052.js → data-9edbb2a0.cjs} +2 -3
- package/build/{esm/data-7d3d5fcc.js → data-d5bcb7c8.mjs} +2 -3
- package/build/{cjs/errors.js → errors/index.cjs} +0 -0
- package/build/{esm/errors.js → errors/index.mjs} +0 -0
- package/build/{cjs/index.js → index.cjs} +101 -63
- package/build/{esm/index.js → index.mjs} +92 -20
- package/build/{cjs/jwt.js → jwt/index.cjs} +8 -3
- package/build/{esm/jwt.js → jwt/index.mjs} +3 -2
- package/build/{cjs/queries-08df635b.js → queries-0c03273e.cjs} +3 -3
- package/build/{esm/queries-716c6be4.js → queries-c73144c4.mjs} +2 -2
- package/build/{cjs/requests.js → requests/index.cjs} +3 -3
- package/build/{esm/requests.js → requests/index.mjs} +3 -3
- package/build/{cjs/types.js → types/index.cjs} +3 -3
- package/build/{esm/types.js → types/index.mjs} +3 -3
- package/build/umd/cuenca.umd.js +1 -1
- package/build/{esm/walletTransactionRequest-18aad4dc.js → walletTransactionRequest-60d3cf69.mjs} +2 -2
- package/build/{cjs/walletTransactionRequest-82837ee6.js → walletTransactionRequest-f549e991.cjs} +19 -19
- package/package.json +28 -5
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
|
-
##
|
|
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
|
-
|
|
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
|
-
|
|
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 };
|
|
File without changes
|
|
File without changes
|
|
@@ -3,15 +3,30 @@
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
5
|
var axios = require('axios');
|
|
6
|
-
var
|
|
7
|
-
var
|
|
8
|
-
var
|
|
9
|
-
var
|
|
10
|
-
var
|
|
6
|
+
var Buffer = require('buffer');
|
|
7
|
+
var errors_index = require('./errors/index.cjs');
|
|
8
|
+
var jwt_index = require('./jwt/index.cjs');
|
|
9
|
+
var queries = require('./queries-0c03273e.cjs');
|
|
10
|
+
var data = require('./data-9edbb2a0.cjs');
|
|
11
|
+
var walletTransactionRequest = require('./walletTransactionRequest-f549e991.cjs');
|
|
11
12
|
|
|
12
13
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
13
14
|
|
|
14
15
|
var axios__default = /*#__PURE__*/_interopDefaultLegacy(axios);
|
|
16
|
+
var Buffer__default = /*#__PURE__*/_interopDefaultLegacy(Buffer);
|
|
17
|
+
|
|
18
|
+
/* global window */
|
|
19
|
+
|
|
20
|
+
const isBrowser =
|
|
21
|
+
typeof window !== 'undefined' && typeof window.document !== 'undefined';
|
|
22
|
+
|
|
23
|
+
const isNode =
|
|
24
|
+
typeof process !== 'undefined' &&
|
|
25
|
+
Object.prototype.toString.call(process) === '[object process]';
|
|
26
|
+
|
|
27
|
+
const runtimeEnv = { isBrowser, isNode };
|
|
28
|
+
|
|
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};
|
|
15
30
|
|
|
16
31
|
class Client {
|
|
17
32
|
constructor({ apiKey, apiSecret, phase = queries.Phase.Sandbox } = {}) {
|
|
@@ -32,8 +47,9 @@ class Client {
|
|
|
32
47
|
get authHeader() {
|
|
33
48
|
const { apiKey, apiSecret } = this.basicAuth;
|
|
34
49
|
if (!apiKey || !apiSecret) return '';
|
|
35
|
-
return `Basic ${Buffer.from(
|
|
36
|
-
|
|
50
|
+
return `Basic ${Buffer__default["default"].Buffer.from(
|
|
51
|
+
`${apiKey}:${apiSecret}`,
|
|
52
|
+
'utf-8',
|
|
37
53
|
).toString('base64')}`;
|
|
38
54
|
}
|
|
39
55
|
|
|
@@ -79,7 +95,7 @@ class Client {
|
|
|
79
95
|
};
|
|
80
96
|
}
|
|
81
97
|
|
|
82
|
-
async configure({ apiKey, apiSecret, loginToken, phase, useJwt = false }) {
|
|
98
|
+
async configure({ apiKey, apiSecret, loginToken, phase, sessionId,useJwt = false }) {
|
|
83
99
|
this.basicAuth = {
|
|
84
100
|
apiKey: apiKey || this.basicAuth.apiKey,
|
|
85
101
|
apiSecret: apiSecret || this.basicAuth.apiSecret,
|
|
@@ -87,11 +103,15 @@ class Client {
|
|
|
87
103
|
|
|
88
104
|
if (phase) this.phase = phase;
|
|
89
105
|
|
|
90
|
-
if (useJwt) this.jwtToken = await
|
|
106
|
+
if (useJwt) this.jwtToken = await jwt_index.Jwt.create(this);
|
|
91
107
|
|
|
92
108
|
if (loginToken) {
|
|
93
109
|
this.addHeadersToRequest({ 'X-Cuenca-LoginToken': loginToken });
|
|
94
110
|
}
|
|
111
|
+
|
|
112
|
+
if (sessionId) {
|
|
113
|
+
this.addHeadersToRequest({ 'X-Cuenca-SessionId': sessionId });
|
|
114
|
+
}
|
|
95
115
|
}
|
|
96
116
|
|
|
97
117
|
async get({ endpoint, format, params }) {
|
|
@@ -119,14 +139,21 @@ class Client {
|
|
|
119
139
|
}) {
|
|
120
140
|
const headers = {
|
|
121
141
|
Authorization: this.authHeader,
|
|
122
|
-
'X-User-Agent': `cuenca-js/0.0.1`, // TODO: Change for client version
|
|
123
142
|
'Content-Type': 'application/json',
|
|
124
143
|
Accept: `application/${format.value}`,
|
|
125
144
|
};
|
|
126
145
|
|
|
146
|
+
if (runtimeEnv.isNode) {
|
|
147
|
+
headers['User-Agent'] = `cuenca-js/${pkg.version}`;
|
|
148
|
+
} else if (runtimeEnv.isBrowser) {
|
|
149
|
+
// Cannot set User-Agent header on browsers
|
|
150
|
+
// https://developer.mozilla.org/en-US/docs/Glossary/Forbidden_header_name
|
|
151
|
+
headers['X-User-Agent'] = `cuenca-js/${pkg.version}`;
|
|
152
|
+
}
|
|
153
|
+
|
|
127
154
|
if (this.jwtToken) {
|
|
128
155
|
if (this.jwtToken.isExpired) {
|
|
129
|
-
this.jwtToken = await
|
|
156
|
+
this.jwtToken = await jwt_index.Jwt.create(this);
|
|
130
157
|
}
|
|
131
158
|
headers['X-Cuenca-Token'] = this.jwtToken.token;
|
|
132
159
|
}
|
|
@@ -154,16 +181,16 @@ class Client {
|
|
|
154
181
|
response = await this._session.request({ baseURL: this.origin });
|
|
155
182
|
} catch (error) {
|
|
156
183
|
if (error.response) {
|
|
157
|
-
throw new
|
|
184
|
+
throw new errors_index.CuencaResponseException(
|
|
158
185
|
error.response.data,
|
|
159
186
|
error.response.status,
|
|
160
187
|
);
|
|
161
188
|
} else if (error.request) {
|
|
162
|
-
throw new
|
|
189
|
+
throw new errors_index.CuencaException(
|
|
163
190
|
`No response received: ${error.errno}: ${error.code}`,
|
|
164
191
|
);
|
|
165
192
|
} else {
|
|
166
|
-
throw new
|
|
193
|
+
throw new errors_index.CuencaException(error.message);
|
|
167
194
|
}
|
|
168
195
|
} finally {
|
|
169
196
|
headersInterceptor.eject();
|
|
@@ -298,7 +325,13 @@ class BillPayment extends Transaction {
|
|
|
298
325
|
status,
|
|
299
326
|
userId,
|
|
300
327
|
}) {
|
|
301
|
-
super({
|
|
328
|
+
super({
|
|
329
|
+
amount,
|
|
330
|
+
createdAt,
|
|
331
|
+
descriptor,
|
|
332
|
+
status,
|
|
333
|
+
userId,
|
|
334
|
+
});
|
|
302
335
|
this.accountNumber = accountNumber;
|
|
303
336
|
this.id = id;
|
|
304
337
|
this.providerUri = providerUri;
|
|
@@ -412,7 +445,13 @@ class CardTransaction extends Transaction {
|
|
|
412
445
|
type,
|
|
413
446
|
userId,
|
|
414
447
|
}) {
|
|
415
|
-
super({
|
|
448
|
+
super({
|
|
449
|
+
amount,
|
|
450
|
+
createdAt,
|
|
451
|
+
descriptor,
|
|
452
|
+
status,
|
|
453
|
+
userId,
|
|
454
|
+
});
|
|
416
455
|
this.cardErrorType = data.enumValueFromString(queries.CardErrorType, cardErrorType);
|
|
417
456
|
this.cardLastFour = cardLastFour;
|
|
418
457
|
this.cardType = data.enumValueFromString(queries.CardType, cardType);
|
|
@@ -509,7 +548,13 @@ class Commission extends Transaction {
|
|
|
509
548
|
type,
|
|
510
549
|
userId,
|
|
511
550
|
}) {
|
|
512
|
-
super({
|
|
551
|
+
super({
|
|
552
|
+
amount,
|
|
553
|
+
createdAt,
|
|
554
|
+
descriptor,
|
|
555
|
+
status,
|
|
556
|
+
userId,
|
|
557
|
+
});
|
|
513
558
|
this.relatedTransactionUri = relatedTransactionUri;
|
|
514
559
|
this.type = data.enumValueFromString(queries.CommissionType, type);
|
|
515
560
|
}
|
|
@@ -538,7 +583,13 @@ class Deposit extends Transaction {
|
|
|
538
583
|
trackingKey,
|
|
539
584
|
userId,
|
|
540
585
|
}) {
|
|
541
|
-
super({
|
|
586
|
+
super({
|
|
587
|
+
amount,
|
|
588
|
+
createdAt,
|
|
589
|
+
descriptor,
|
|
590
|
+
status,
|
|
591
|
+
userId,
|
|
592
|
+
});
|
|
542
593
|
this.id = id;
|
|
543
594
|
this.network = data.enumValueFromString(queries.DepositNetwork, network);
|
|
544
595
|
this.sourceUri = sourceUri;
|
|
@@ -591,7 +642,14 @@ class Saving extends Wallet {
|
|
|
591
642
|
userId,
|
|
592
643
|
updatedAt,
|
|
593
644
|
}) {
|
|
594
|
-
super({
|
|
645
|
+
super({
|
|
646
|
+
balance,
|
|
647
|
+
createdAt,
|
|
648
|
+
deactivatedAt,
|
|
649
|
+
id,
|
|
650
|
+
userId,
|
|
651
|
+
updatedAt,
|
|
652
|
+
});
|
|
595
653
|
this.category = data.enumValueFromString(queries.SavingCategory, category);
|
|
596
654
|
this.goalAmount = goalAmount;
|
|
597
655
|
this.goalDate = data.dateToUTC(goalDate);
|
|
@@ -670,7 +728,13 @@ class Transfer extends Transaction {
|
|
|
670
728
|
updatedAt,
|
|
671
729
|
userId,
|
|
672
730
|
}) {
|
|
673
|
-
super({
|
|
731
|
+
super({
|
|
732
|
+
amount,
|
|
733
|
+
createdAt,
|
|
734
|
+
descriptor,
|
|
735
|
+
status,
|
|
736
|
+
userId,
|
|
737
|
+
});
|
|
674
738
|
this.accountNumber = accountNumber;
|
|
675
739
|
this.destinationUri = destinationUri;
|
|
676
740
|
this.id = id;
|
|
@@ -742,7 +806,13 @@ class WalletTransaction extends Transaction {
|
|
|
742
806
|
userId,
|
|
743
807
|
walletUri,
|
|
744
808
|
}) {
|
|
745
|
-
super({
|
|
809
|
+
super({
|
|
810
|
+
amount,
|
|
811
|
+
createdAt,
|
|
812
|
+
descriptor,
|
|
813
|
+
status,
|
|
814
|
+
userId,
|
|
815
|
+
});
|
|
746
816
|
this.id = id;
|
|
747
817
|
this.transactionType = data.enumValueFromString(
|
|
748
818
|
queries.WalletTransactionType,
|
|
@@ -781,7 +851,13 @@ class WhatsAppTransfer extends Transaction {
|
|
|
781
851
|
updatedAt,
|
|
782
852
|
userId,
|
|
783
853
|
}) {
|
|
784
|
-
super({
|
|
854
|
+
super({
|
|
855
|
+
amount,
|
|
856
|
+
createdAt,
|
|
857
|
+
descriptor,
|
|
858
|
+
status,
|
|
859
|
+
userId,
|
|
860
|
+
});
|
|
785
861
|
this.claimUrl = claimUrl;
|
|
786
862
|
this.destinationUri = destinationUri;
|
|
787
863
|
this.id = id;
|
|
@@ -931,8 +1007,8 @@ const Queryable = (SuperClass) =>
|
|
|
931
1007
|
params: queryParams.toParams(),
|
|
932
1008
|
});
|
|
933
1009
|
|
|
934
|
-
if (!items || !items.length) throw new
|
|
935
|
-
if (items.length > 1) throw new
|
|
1010
|
+
if (!items || !items.length) throw new errors_index.NoResultFound();
|
|
1011
|
+
if (items.length > 1) throw new errors_index.MultipleResultsFound();
|
|
936
1012
|
|
|
937
1013
|
const [item] = items;
|
|
938
1014
|
const model = getModelFromPath(this.path, item);
|
|
@@ -1383,7 +1459,7 @@ class UserLoginResource extends mix(Resource).with(Creatable, Deactivable) {
|
|
|
1383
1459
|
async create(password, userId) {
|
|
1384
1460
|
const request = new walletTransactionRequest.UserLoginRequest(password, userId);
|
|
1385
1461
|
const userLogin = await this._create(request.toObject());
|
|
1386
|
-
if (!userLogin.success) throw new
|
|
1462
|
+
if (!userLogin.success) throw new errors_index.InvalidPassword();
|
|
1387
1463
|
|
|
1388
1464
|
// Set login id to headers
|
|
1389
1465
|
this.loginIdInHeaders = this.client.addHeadersToRequest({
|
|
@@ -1477,42 +1553,4 @@ class Cuenca {
|
|
|
1477
1553
|
}
|
|
1478
1554
|
}
|
|
1479
1555
|
|
|
1480
|
-
exports.CuencaException = errors.CuencaException;
|
|
1481
|
-
exports.CuencaResponseException = errors.CuencaResponseException;
|
|
1482
|
-
exports.InvalidPassword = errors.InvalidPassword;
|
|
1483
|
-
exports.MalformedJwtToken = errors.MalformedJwtToken;
|
|
1484
|
-
exports.MultipleResultsFound = errors.MultipleResultsFound;
|
|
1485
|
-
exports.NoResultFound = errors.NoResultFound;
|
|
1486
|
-
exports.ValidationError = errors.ValidationError;
|
|
1487
|
-
exports.Jwt = jwt.Jwt;
|
|
1488
|
-
exports.AccountQuery = queries.AccountQuery;
|
|
1489
|
-
exports.ApiKeyQuery = queries.ApiKeyQuery;
|
|
1490
|
-
exports.BalanceEntryQuery = queries.BalanceEntryQuery;
|
|
1491
|
-
exports.BillPaymentQuery = queries.BillPaymentQuery;
|
|
1492
|
-
exports.CardErrorType = queries.CardErrorType;
|
|
1493
|
-
exports.CardFundingType = queries.CardFundingType;
|
|
1494
|
-
exports.CardIssuer = queries.CardIssuer;
|
|
1495
|
-
exports.CardStatus = queries.CardStatus;
|
|
1496
|
-
exports.CardTransactionQuery = queries.CardTransactionQuery;
|
|
1497
|
-
exports.CardTransactionType = queries.CardTransactionType;
|
|
1498
|
-
exports.CardType = queries.CardType;
|
|
1499
|
-
exports.CardsQuery = queries.CardsQuery;
|
|
1500
|
-
exports.CommissionType = queries.CommissionType;
|
|
1501
|
-
exports.DepositNetwork = queries.DepositNetwork;
|
|
1502
|
-
exports.DepositQuery = queries.DepositQuery;
|
|
1503
|
-
exports.EntryType = queries.EntryType;
|
|
1504
|
-
exports.FileFormat = queries.FileFormat;
|
|
1505
|
-
exports.PageSize = queries.PageSize;
|
|
1506
|
-
exports.Phase = queries.Phase;
|
|
1507
|
-
exports.QueryParams = queries.QueryParams;
|
|
1508
|
-
exports.SavingCategory = queries.SavingCategory;
|
|
1509
|
-
exports.ServiceProviderCategory = queries.ServiceProviderCategory;
|
|
1510
|
-
exports.StatementQuery = queries.StatementQuery;
|
|
1511
|
-
exports.TrackDataMethod = queries.TrackDataMethod;
|
|
1512
|
-
exports.TransactionStatus = queries.TransactionStatus;
|
|
1513
|
-
exports.TransferNetwork = queries.TransferNetwork;
|
|
1514
|
-
exports.TransferQuery = queries.TransferQuery;
|
|
1515
|
-
exports.WalletQuery = queries.WalletQuery;
|
|
1516
|
-
exports.WalletTransactionQuery = queries.WalletTransactionQuery;
|
|
1517
|
-
exports.WalletTransactionType = queries.WalletTransactionType;
|
|
1518
1556
|
exports.Cuenca = Cuenca;
|
|
@@ -1,12 +1,23 @@
|
|
|
1
1
|
import axios from 'axios';
|
|
2
|
-
import
|
|
3
|
-
|
|
4
|
-
import { Jwt } from './jwt.
|
|
5
|
-
|
|
6
|
-
import {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
2
|
+
import Buffer from 'buffer';
|
|
3
|
+
import { CuencaResponseException, CuencaException, NoResultFound, MultipleResultsFound, InvalidPassword } from './errors/index.mjs';
|
|
4
|
+
import { Jwt } from './jwt/index.mjs';
|
|
5
|
+
import { P as Phase, F as FileFormat, E as EntryType, T as TransactionStatus, C as CardIssuer, a as CardStatus, b as CardType, c as CardFundingType, d as CardErrorType, e as CardTransactionType, f as CommissionType, D as DepositNetwork, S as SavingCategory, g as ServiceProviderCategory, h as TransferNetwork, 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';
|
|
8
|
+
|
|
9
|
+
/* global window */
|
|
10
|
+
|
|
11
|
+
const isBrowser =
|
|
12
|
+
typeof window !== 'undefined' && typeof window.document !== 'undefined';
|
|
13
|
+
|
|
14
|
+
const isNode =
|
|
15
|
+
typeof process !== 'undefined' &&
|
|
16
|
+
Object.prototype.toString.call(process) === '[object process]';
|
|
17
|
+
|
|
18
|
+
const runtimeEnv = { isBrowser, isNode };
|
|
19
|
+
|
|
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};
|
|
10
21
|
|
|
11
22
|
class Client {
|
|
12
23
|
constructor({ apiKey, apiSecret, phase = Phase.Sandbox } = {}) {
|
|
@@ -27,8 +38,9 @@ class Client {
|
|
|
27
38
|
get authHeader() {
|
|
28
39
|
const { apiKey, apiSecret } = this.basicAuth;
|
|
29
40
|
if (!apiKey || !apiSecret) return '';
|
|
30
|
-
return `Basic ${Buffer.from(
|
|
31
|
-
|
|
41
|
+
return `Basic ${Buffer.Buffer.from(
|
|
42
|
+
`${apiKey}:${apiSecret}`,
|
|
43
|
+
'utf-8',
|
|
32
44
|
).toString('base64')}`;
|
|
33
45
|
}
|
|
34
46
|
|
|
@@ -74,7 +86,7 @@ class Client {
|
|
|
74
86
|
};
|
|
75
87
|
}
|
|
76
88
|
|
|
77
|
-
async configure({ apiKey, apiSecret, loginToken, phase, useJwt = false }) {
|
|
89
|
+
async configure({ apiKey, apiSecret, loginToken, phase, sessionId,useJwt = false }) {
|
|
78
90
|
this.basicAuth = {
|
|
79
91
|
apiKey: apiKey || this.basicAuth.apiKey,
|
|
80
92
|
apiSecret: apiSecret || this.basicAuth.apiSecret,
|
|
@@ -87,6 +99,10 @@ class Client {
|
|
|
87
99
|
if (loginToken) {
|
|
88
100
|
this.addHeadersToRequest({ 'X-Cuenca-LoginToken': loginToken });
|
|
89
101
|
}
|
|
102
|
+
|
|
103
|
+
if (sessionId) {
|
|
104
|
+
this.addHeadersToRequest({ 'X-Cuenca-SessionId': sessionId });
|
|
105
|
+
}
|
|
90
106
|
}
|
|
91
107
|
|
|
92
108
|
async get({ endpoint, format, params }) {
|
|
@@ -114,11 +130,18 @@ class Client {
|
|
|
114
130
|
}) {
|
|
115
131
|
const headers = {
|
|
116
132
|
Authorization: this.authHeader,
|
|
117
|
-
'X-User-Agent': `cuenca-js/0.0.1`, // TODO: Change for client version
|
|
118
133
|
'Content-Type': 'application/json',
|
|
119
134
|
Accept: `application/${format.value}`,
|
|
120
135
|
};
|
|
121
136
|
|
|
137
|
+
if (runtimeEnv.isNode) {
|
|
138
|
+
headers['User-Agent'] = `cuenca-js/${pkg.version}`;
|
|
139
|
+
} else if (runtimeEnv.isBrowser) {
|
|
140
|
+
// Cannot set User-Agent header on browsers
|
|
141
|
+
// https://developer.mozilla.org/en-US/docs/Glossary/Forbidden_header_name
|
|
142
|
+
headers['X-User-Agent'] = `cuenca-js/${pkg.version}`;
|
|
143
|
+
}
|
|
144
|
+
|
|
122
145
|
if (this.jwtToken) {
|
|
123
146
|
if (this.jwtToken.isExpired) {
|
|
124
147
|
this.jwtToken = await Jwt.create(this);
|
|
@@ -293,7 +316,13 @@ class BillPayment extends Transaction {
|
|
|
293
316
|
status,
|
|
294
317
|
userId,
|
|
295
318
|
}) {
|
|
296
|
-
super({
|
|
319
|
+
super({
|
|
320
|
+
amount,
|
|
321
|
+
createdAt,
|
|
322
|
+
descriptor,
|
|
323
|
+
status,
|
|
324
|
+
userId,
|
|
325
|
+
});
|
|
297
326
|
this.accountNumber = accountNumber;
|
|
298
327
|
this.id = id;
|
|
299
328
|
this.providerUri = providerUri;
|
|
@@ -407,7 +436,13 @@ class CardTransaction extends Transaction {
|
|
|
407
436
|
type,
|
|
408
437
|
userId,
|
|
409
438
|
}) {
|
|
410
|
-
super({
|
|
439
|
+
super({
|
|
440
|
+
amount,
|
|
441
|
+
createdAt,
|
|
442
|
+
descriptor,
|
|
443
|
+
status,
|
|
444
|
+
userId,
|
|
445
|
+
});
|
|
411
446
|
this.cardErrorType = enumValueFromString(CardErrorType, cardErrorType);
|
|
412
447
|
this.cardLastFour = cardLastFour;
|
|
413
448
|
this.cardType = enumValueFromString(CardType, cardType);
|
|
@@ -504,7 +539,13 @@ class Commission extends Transaction {
|
|
|
504
539
|
type,
|
|
505
540
|
userId,
|
|
506
541
|
}) {
|
|
507
|
-
super({
|
|
542
|
+
super({
|
|
543
|
+
amount,
|
|
544
|
+
createdAt,
|
|
545
|
+
descriptor,
|
|
546
|
+
status,
|
|
547
|
+
userId,
|
|
548
|
+
});
|
|
508
549
|
this.relatedTransactionUri = relatedTransactionUri;
|
|
509
550
|
this.type = enumValueFromString(CommissionType, type);
|
|
510
551
|
}
|
|
@@ -533,7 +574,13 @@ class Deposit extends Transaction {
|
|
|
533
574
|
trackingKey,
|
|
534
575
|
userId,
|
|
535
576
|
}) {
|
|
536
|
-
super({
|
|
577
|
+
super({
|
|
578
|
+
amount,
|
|
579
|
+
createdAt,
|
|
580
|
+
descriptor,
|
|
581
|
+
status,
|
|
582
|
+
userId,
|
|
583
|
+
});
|
|
537
584
|
this.id = id;
|
|
538
585
|
this.network = enumValueFromString(DepositNetwork, network);
|
|
539
586
|
this.sourceUri = sourceUri;
|
|
@@ -586,7 +633,14 @@ class Saving extends Wallet {
|
|
|
586
633
|
userId,
|
|
587
634
|
updatedAt,
|
|
588
635
|
}) {
|
|
589
|
-
super({
|
|
636
|
+
super({
|
|
637
|
+
balance,
|
|
638
|
+
createdAt,
|
|
639
|
+
deactivatedAt,
|
|
640
|
+
id,
|
|
641
|
+
userId,
|
|
642
|
+
updatedAt,
|
|
643
|
+
});
|
|
590
644
|
this.category = enumValueFromString(SavingCategory, category);
|
|
591
645
|
this.goalAmount = goalAmount;
|
|
592
646
|
this.goalDate = dateToUTC(goalDate);
|
|
@@ -665,7 +719,13 @@ class Transfer extends Transaction {
|
|
|
665
719
|
updatedAt,
|
|
666
720
|
userId,
|
|
667
721
|
}) {
|
|
668
|
-
super({
|
|
722
|
+
super({
|
|
723
|
+
amount,
|
|
724
|
+
createdAt,
|
|
725
|
+
descriptor,
|
|
726
|
+
status,
|
|
727
|
+
userId,
|
|
728
|
+
});
|
|
669
729
|
this.accountNumber = accountNumber;
|
|
670
730
|
this.destinationUri = destinationUri;
|
|
671
731
|
this.id = id;
|
|
@@ -737,7 +797,13 @@ class WalletTransaction extends Transaction {
|
|
|
737
797
|
userId,
|
|
738
798
|
walletUri,
|
|
739
799
|
}) {
|
|
740
|
-
super({
|
|
800
|
+
super({
|
|
801
|
+
amount,
|
|
802
|
+
createdAt,
|
|
803
|
+
descriptor,
|
|
804
|
+
status,
|
|
805
|
+
userId,
|
|
806
|
+
});
|
|
741
807
|
this.id = id;
|
|
742
808
|
this.transactionType = enumValueFromString(
|
|
743
809
|
WalletTransactionType,
|
|
@@ -776,7 +842,13 @@ class WhatsAppTransfer extends Transaction {
|
|
|
776
842
|
updatedAt,
|
|
777
843
|
userId,
|
|
778
844
|
}) {
|
|
779
|
-
super({
|
|
845
|
+
super({
|
|
846
|
+
amount,
|
|
847
|
+
createdAt,
|
|
848
|
+
descriptor,
|
|
849
|
+
status,
|
|
850
|
+
userId,
|
|
851
|
+
});
|
|
780
852
|
this.claimUrl = claimUrl;
|
|
781
853
|
this.destinationUri = destinationUri;
|
|
782
854
|
this.id = id;
|
|
@@ -2,7 +2,12 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var
|
|
5
|
+
var Buffer = require('buffer');
|
|
6
|
+
var errors_index = require('../errors/index.cjs');
|
|
7
|
+
|
|
8
|
+
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
9
|
+
|
|
10
|
+
var Buffer__default = /*#__PURE__*/_interopDefaultLegacy(Buffer);
|
|
6
11
|
|
|
7
12
|
class Jwt {
|
|
8
13
|
constructor(expiresAt, token) {
|
|
@@ -20,10 +25,10 @@ class Jwt {
|
|
|
20
25
|
try {
|
|
21
26
|
const [, payloadEncoded] = token.split('.');
|
|
22
27
|
payload = JSON.parse(
|
|
23
|
-
Buffer.from(`${payloadEncoded}==`, 'base64').toString(),
|
|
28
|
+
Buffer__default["default"].Buffer.from(`${payloadEncoded}==`, 'base64').toString(),
|
|
24
29
|
);
|
|
25
30
|
} catch (error) {
|
|
26
|
-
throw new
|
|
31
|
+
throw new errors_index.MalformedJwtToken();
|
|
27
32
|
}
|
|
28
33
|
|
|
29
34
|
const { exp } = payload;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import
|
|
1
|
+
import Buffer from 'buffer';
|
|
2
|
+
import { MalformedJwtToken } from '../errors/index.mjs';
|
|
2
3
|
|
|
3
4
|
class Jwt {
|
|
4
5
|
constructor(expiresAt, token) {
|
|
@@ -16,7 +17,7 @@ class Jwt {
|
|
|
16
17
|
try {
|
|
17
18
|
const [, payloadEncoded] = token.split('.');
|
|
18
19
|
payload = JSON.parse(
|
|
19
|
-
Buffer.from(`${payloadEncoded}==`, 'base64').toString(),
|
|
20
|
+
Buffer.Buffer.from(`${payloadEncoded}==`, 'base64').toString(),
|
|
20
21
|
);
|
|
21
22
|
} catch (error) {
|
|
22
23
|
throw new MalformedJwtToken();
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
4
|
-
var data = require('./data-
|
|
3
|
+
var errors_index = require('./errors/index.cjs');
|
|
4
|
+
var data = require('./data-9edbb2a0.cjs');
|
|
5
5
|
|
|
6
6
|
class CardErrorType {
|
|
7
7
|
static Blocked = new CardErrorType('blocked');
|
|
@@ -530,7 +530,7 @@ class StatementQuery extends QueryParams {
|
|
|
530
530
|
now.setUTCDate(1);
|
|
531
531
|
const date = data.dateToUTC(`${year}-${month}-01`);
|
|
532
532
|
if (date.getTime() >= now.getTime()) {
|
|
533
|
-
throw new
|
|
533
|
+
throw new errors_index.ValidationError(
|
|
534
534
|
`${year}-${month} is not a valid year-month pair`,
|
|
535
535
|
);
|
|
536
536
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { ValidationError } from './errors.
|
|
2
|
-
import { d as dateToUTC } from './data-
|
|
1
|
+
import { ValidationError } from './errors/index.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('
|
|
6
|
-
require('
|
|
7
|
-
require('
|
|
5
|
+
var walletTransactionRequest = require('../walletTransactionRequest-f549e991.cjs');
|
|
6
|
+
require('../errors/index.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 '
|
|
2
|
-
import '
|
|
3
|
-
import '
|
|
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
|
+
import '../errors/index.mjs';
|
|
3
|
+
import '../data-d5bcb7c8.mjs';
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var queries = require('
|
|
6
|
-
require('
|
|
7
|
-
require('
|
|
5
|
+
var queries = require('../queries-0c03273e.cjs');
|
|
6
|
+
require('../errors/index.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 '
|
|
2
|
-
import '
|
|
3
|
-
import '
|
|
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
|
+
import '../errors/index.mjs';
|
|
3
|
+
import '../data-d5bcb7c8.mjs';
|
package/build/umd/cuenca.umd.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("axios")):"function"==typeof define&&define.amd?define(["exports","axios"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).cuenca={},t.axios)}(this,(function(t,e){"use strict";function s(t){return t&&"object"==typeof t&&"default"in t?t:{default:t}}var r=s(e);class i extends Error{constructor(t){super(t),Object.setPrototypeOf(this,i.prototype)}}class a extends i{constructor(t,e){super(`Cuenca Response Error: ${e}`),this.name="CuencaResponseError",this.data=t,this.status=e,Object.setPrototypeOf(this,a.prototype)}}class n extends i{constructor(){super("No results were found"),this.name="NoResultFound",Object.setPrototypeOf(this,n.prototype)}}class c extends i{constructor(){super("One result was expected but multiple were found"),this.name="MultipleResultsFound",Object.setPrototypeOf(this,c.prototype)}}class o extends i{constructor(){super("An invalid JWT token was obtained during authentication"),this.name="MalformedJwtToken",Object.setPrototypeOf(this,o.prototype)}}class d extends i{constructor(){super("Invalid password"),this.name="InvalidPassword",Object.setPrototypeOf(this,d.prototype)}}class u extends Error{constructor(t){super(t),Object.setPrototypeOf(this,u.prototype)}}class h{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(Buffer.from(`${s}==`,"base64").toString())}catch(t){throw new o}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=h.getExpirationDate(r);return new h(i,r)}}class p{static Blocked=new p("blocked");static Comunication=new p("comunication");static ContactlesAmountLimit=new p("contactles_amount_limit");static FraudDetection=new p("fraud_detection");static FraudDetectionUncertain=new p("fraud_detection_uncertain");static InsufficientFounds=new p("insufficient_founds");static InvalidPin=new p("invalid_pin");static Notification=new p("notification");static NotificationDeactivatedCard=new p("notification_deactivated_card");constructor(t){this.value=t}}class l{static Credit=new l("credit");static Debit=new l("debit");constructor(t){this.value=t}}class m{static Accendo=new m("accendo");static Cuenca=new m("cuenca");constructor(t){this.value=t}}class w{static Active=new w("active");static Blocked=new w("blocked");static Created=new w("created");static Deactivated=new w("deactivated");static Printing=new w("printing");constructor(t){this.value=t}}class _{static Auth=new _("auth");static Capture=new _("capture");static Chargeback=new _("chargeback");static Expiration=new _("expiration");static Refund=new _("refund");static Void=new _("void");constructor(t){this.value=t}}class y{static Physical=new y("physical");static Virtual=new y("virtual");constructor(t){this.value=t}}class v{static CardRequest=new v("card_request");static CashDeposit=new v("cash_deposit");static OutgoingSpei=new v("outgoing_spei");constructor(t){this.value=t}}class b{static Cash=new b("cash");static Internal=new b("internal");static Spei=new b("spei");constructor(t){this.value=t}}class g{static Credit=new g("credit");static Debit=new g("debit");constructor(t){this.value=t}}class f{static Pdf=new f("pdf");static Xml=new f("xml");static Json=new f("json");constructor(t){this.value=t}}class x{static Sandbox=new x("sandbox");static Stage=new x("stage");static Api=new x("api");constructor(t){this.value=t}}class A{static Cable=new A("cable");static CreditCard=new A("credit_card");static Electricity=new A("electricity");static Gas=new A("gas");static Internet=new A("internet");static LandlineTelephone=new A("landline_telephone");static MobileTelephonePostpaid=new A("mobile_telephone_postpaid");static MobileTelephonePrepaid=new A("mobile_telephone_prepaid");static SateliteTelevision=new A("satelite_television");static Water=new A("water");constructor(t){this.value=t}}class j{static General=new j("general");static Home=new j("home");static Vehicle=new j("vehicle");static Travel=new j("travel");static Clothing=new j("clothing");static Other=new j("other");static Medical=new j("medical");static Accident=new j("accident");static Education=new j("education");constructor(t){this.value=t}}class O{static NotSet=new O("not_set");static Terminal=new O("terminal");static Manual=new O("manual");static Unknown=new O("unknown");static Contactless=new O("contactless");static FallBack=new O("fall_back");static MagneticStripe=new O("magnetic_stripe");static RecurringCharge=new O("recurring_charge");constructor(t){this.value=t}}class I{static Created=new I("created");static Failed=new I("failed");static InReview=new I("in_review");static Submitted=new I("submitted");static Succeeded=new I("succeeded");constructor(t){this.value=t}}class k{static Internal=new k("internal");static Spei=new k("spei");constructor(t){this.value=t}}class T{static Deposit=new T("deposit");static Withdrawal=new T("withdrawal");constructor(t){this.value=t}}const C=t=>{if(!t)return null;const e=new Date(t);return new Date(e.getTime())},U=(t,e)=>Object.values(t).find((t=>t.value===e));class S{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 N extends S{constructor({accountNumber:t,...e}){super(e),this.accountNumber=t}toObject(){return Object.assign(super.toObject(),{account_number:this.accountNumber})}}class E extends S{constructor({active:t,...e}){super(e),this.active=t}toObject(){return Object.assign(super.toObject(),{active:this.active})}}class P extends S{constructor({status:t,...e}){super(e),this.status=t}toObject(){return Object.assign(super.toObject(),{status:this.status})}}class K extends P{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 $ extends P{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 D extends S{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 q extends S{constructor({accountNumber:t,...e}){super(e),this.accountNumber=t}toObject(){return Object.assign(super.toObject(),{account_number:this.accountNumber})}}class M extends S{constructor({cardUri:t,...e}){super(e),this.cardUri=t}toObject(){return Object.assign(super.toObject(),{card_uri:this.cardUri})}}class B extends S{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 V extends S{constructor({walletUri:t,...e}){super(e),this.walletUri=t}toObject(){return Object.assign(super.toObject(),{wallet_uri:this.walletUri})}}class R extends S{constructor({active:t,...e}){super(e),this.active=t}toObject(){return Object.assign(super.toObject(),{active:this.active})}}class Q extends S{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=C(Date.now());s.setUTCDate(1);if(C(`${e}-${t}-01`).getTime()>=s.getTime())throw new u(`${e}-${t} is not a valid year-month pair`);this._date={month:t,year:e}}toObject(){return Object.assign(super.toObject(),{month:this.month,year:this.year})}}class Y{constructor({apiKey:t,apiSecret:e,phase:s=x.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 ${Buffer.from(Buffer.from(`${t}:${e}`).toString("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 h.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=f.Json,method:r="GET",params:n=null}){const c={Authorization:this.authHeader,"X-User-Agent":"cuenca-js/0.0.1","Content-Type":"application/json",Accept:`application/${s.value}`};this.jwtToken&&(this.jwtToken.isExpired&&(this.jwtToken=await h.create(this)),c["X-Cuenca-Token"]=this.jwtToken.token);const o=this.addHeadersToRequest(c),d=e;d&&Object.keys(d).forEach((t=>{d[t]instanceof Date&&(d[t]=d[t].toISOString())}));const u=this.addConfigToRequest({method:r,params:n,data:d,url:t});let p;try{p=await this._session.request({baseURL:this.origin})}catch(t){throw t.response?new a(t.response.data,t.response.status):t.request?new i(`No response received: ${t.errno}: ${t.code}`):new i(t.message)}finally{o.eject(),u.eject()}return p.data}}class F{constructor({accountNumber:t,createdAt:e,id:s,institutionName:r,name:i,userId:a}){this.accountNumber=t,this.createdAt=C(e),this.id=s,this.institutionName=r,this.name=i,this.userId=a}static fromObject=({id:t,name:e,...s})=>new F({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=C(t),this.deactivatedAt=C(e),this.id=s,this.secret=r,this.userId=i,this.updatedAt=C(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=C(Date.now());return!this.deactivatedAt||this.deactivatedAt.getTime()>t.getTime()}}class H{constructor({arpc:t,createdAt:e,cardUri:s,isValidArqc:r}){this.arpc=t,this.createdAt=C(e),this.cardUri=s,this.isValidArqc=r}static fromObject=({arpc:t,...e})=>new H({arpc:t,createdAt:e.created_at,cardUri:e.card_uri,isValidArqc:e.is_valid_arqc})}class L{constructor({amount:t,createdAt:e,descriptor:s,entryType:r,fundingInstrumentUri:i,id:a,name:n,relatedTransactionUri:c,rollingBalance:o}){this.amount=t,this.createdAt=C(e),this.descriptor=s,this.entryType=U(g,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 L({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 J{constructor({amount:t,createdAt:e,descriptor:s,status:r,userId:i}){this.amount=t,this.createdAt=C(e),this.descriptor=s,this.status=U(I,r),this.userId=i}}class W extends J{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 W({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 X{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=C(t),this.cvv2=e,this.expMonth=s,this.expYear=r,this.fundingType=U(l,i),this.id=a,this.issuer=U(m,n),this.number=c,this.pin=o,this.status=U(w,d),this.type=U(y,u),this.updatedAt=C(h),this.userId=p}static fromObject=({cvv2:t,id:e,issuer:s,number:r,pin:i,status:a,type:n,...c})=>new X({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 G{constructor({cardUri:t,createdAt:e,id:s,ipAddress:r,success:i,userId:a}){this.cardUri=t,this.createdAt=C(e),this.id=s,this.ipAddress=r,this.success=i,this.userId=a}static fromObject=({id:t,success:e,...s})=>new G({id:t,success:e,cardUri:s.card_uri,createdAt:s.created_at,ipAddress:s.ip_address,userId:s.user_id})}class Z extends J{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:l}){super({amount:t,createdAt:a,descriptor:n,status:u,userId:l}),this.cardErrorType=U(p,e),this.cardLastFour=s,this.cardType=U(y,r),this.cardUri=i,this.metadata=c,this.network=o,this.relatedCardTransactionsUris=d,this.type=U(_,h)}static fromObject=({amount:t,descriptor:e,metadata:s,network:r,status:i,type:a,...n})=>new Z({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 tt{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=U(w,t),this.cardType=U(y,e),this.cardUri=s,this.createdAt=C(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 tt({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===w.Active}}class et extends J{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=U(v,a)}static fromObject=({amount:t,descriptor:e,status:s,type:r,...i})=>new et({amount:t,descriptor:e,status:s,type:r,createdAt:i.created_at,relatedTransactionUri:i.related_transaction_uri,userId:i.user_id})}class st extends J{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=U(b,i),this.sourceUri=n,this.trackingKey=c}static fromObject=({amount:t,descriptor:e,id:s,network:r,status:i,...a})=>new st({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 rt{constructor({id:t}){this.id=t}static fromObject=({id:t})=>new rt({id:t})}class it extends class{constructor({balance:t,createdAt:e,deactivatedAt:s,id:r,userId:i,updatedAt:a}){this.balance=t,this.createdAt=C(e),this.deactivatedAt=C(s),this.id=r,this.userId=i,this.updatedAt=C(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=U(j,e),this.goalAmount=i,this.goalDate=C(a),this.name=c}static fromObject=({balance:t,category:e,id:s,name:r,...i})=>new it({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 at{constructor({categories:t,id:e,name:s,providerKey:r}){var i;this.categories=null==(i=t)?[]:i.map((t=>U(A,t))),this.id=e,this.name=s,this.providerKey=r}static fromObject=({categories:t,id:e,name:s,...r})=>new at({categories:t,id:e,name:s,providerKey:r.provider_key})}class nt{constructor({createdAt:t,id:e,month:s,year:r}){this.createdAt=C(t),this.id=e,this.month=s,this.year=r}static fromObject=({id:t,month:e,year:s,...r})=>new nt({id:t,month:e,year:s,createdAt:r.created_at})}class ct extends J{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=U(k,c),this.recipientName=o,this.trackingKey=u,this.updatedAt=C(h)}static fromObject=({amount:t,descriptor:e,id:s,network:r,status:i,...a})=>new ct({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 ot{constructor({createdAt:t,id:e,isActive:s,updatedAt:r}){this.createdAt=C(t),this.id=e,this.isActive=s,this.updatedAt=C(r)}static fromObject=({id:t,...e})=>new ot({id:t,createdAt:e.created_at,isActive:e.is_active,updatedAt:e.updated_at})}class dt{constructor({id:t,lastLoginAt:e,success:s}){this.id=t,this.lastLoginAt=C(e),this.success=s}static fromObject=({id:t,success:e,...s})=>new dt({id:t,success:e,lastLoginAt:s.last_login_at})}class ut extends J{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=U(T,a),this.walletUri=c}static fromObject=({amount:t,descriptor:e,id:s,status:r,...i})=>new ut({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 ht extends J{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=C(a),this.network=U(k,c),this.phoneNumber=o,this.recipientName=d,this.trackingKey=h,this.updatedAt=C(p)}static fromObject=({amount:t,descriptor:e,id:s,network:r,status:i,...a})=>new ht({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 pt{constructor(t){this.superclass=t}with(...t){return t.reduce(((t,e)=>e(t)),this.superclass)}}const lt=t=>new pt(t),mt=(t,e)=>({accounts:()=>F.fromObject(e),api_keys:()=>z.fromObject(e),arpc:()=>H.fromObject(e),balance_entries:()=>L.fromObject(e),bill_payments:()=>W.fromObject(e),cards:()=>X.fromObject(e),card_activations:()=>G.fromObject(e),card_transactions:()=>Z.fromObject(e),card_validations:()=>tt.fromObject(e),commissions:()=>et.fromObject(e),deposits:()=>st.fromObject(e),login_tokens:()=>rt.fromObject(e),savings:()=>it.fromObject(e),service_providers:()=>at.fromObject(e),statements:()=>nt.fromObject(e),transfers:()=>ct.fromObject(e),user_credentials:()=>ot.fromObject(e),user_logins:()=>dt.fromObject(e),wallet_transactions:()=>ut.fromObject(e),whatsapp_transfers:()=>ht.fromObject(e)}[t]()),wt=t=>{if(null===t||""===t)return null;const e=t.match("/(.*?)/");return null===e?null:e[0].replaceAll("/","")};class _t{constructor(t,e,s){this.path=t,this.QueryParams=e,this.client=s}}const yt=t=>class extends t{async retrieve(t){const e=await this.client.get({endpoint:`/${this.path}/${t}`});return mt(this.path,e)}},vt=t=>class extends t{async _create(t){const e=await this.client.post({endpoint:`/${this.path}`,data:t});return mt(this.path,e)}},bt=t=>class extends t{async _update(t,e){const s=await this.client.patch({endpoint:`/${this.path}/${t}`,data:e});return mt(this.path,s)}},gt=t=>class extends t{async _deactivate(t,e){const s=await this.client.delete({endpoint:`/${this.path}/${t}`,data:e});return mt(this.path,s)}},ft=t=>class extends t{async _download(t,e){return await this.client.get({endpoint:`/${this.path}/${t}`,format:e})}},xt=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 n;if(e.length>1)throw new c;const[s]=e;return mt(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 mt(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=mt(this.path,e);yield t}e=t.next_page_uri}}};class At extends(lt(_t).with(xt,yt)){constructor(t){super("accounts",N,t)}}class jt{toObject(){return{}}toCleanObject(){const t=this.toObject();return Object.keys(t).forEach((e=>{null==t[e]&&delete t[e]})),t}}class Ot extends jt{constructor(t,e){super(),this.userId=t,this.metadata=e}toObject(){return{user_id:this.userId,metadata:this.metadata}}}class It extends jt{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 jt{constructor(t,e){super(),this.status=t,this.pinBlock=e}toObject(){return{status:this.status,pin_block:this.pinBlock}}}class Tt extends jt{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 u("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 u("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 u("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 u("Invalid cvv2");this._cvv2=t}toObject(){return{number:this.number,exp_month:this.expMonth,exp_year:this.expYear,cvv2:this.cvv2}}}class Ct extends jt{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 u("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 u("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 u("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 u("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 u("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 u("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 Ut extends jt{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(C(t).getTime()<=C(Date.now()).getTime())throw new u("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 St extends jt{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 Nt extends jt{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 u("Invalid password");this._password=t}toObject(){return{password:this.password}}}class Et extends jt{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 u("Invalid password");this._password=t}set req(t){if(t.password&&null!=t.isActive)throw new u("Only one property can be updated at a time");this._request=t}toObject(){return{password:this.request.password,is_active:this.request.isActive}}}class Pt extends jt{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 u("Invalid password");this._password=t}toObject(){return{password:this.password,user_id:this.userId}}}class Kt extends jt{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 $t extends(lt(_t).with(vt,gt,xt,yt,bt)){constructor(t){super("api_keys",E,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 Ot(s,e);return await this._update(t,r.toCleanObject())}}lt(_t).with(vt);class Dt extends(lt(_t).with(xt,yt)){constructor(t){super("balance_entries",D,t)}async relatedTransaction(t){const e=wt(t);if(null==e)return null;const s=await this.client.get({endpoint:t});return mt(`${e}`,s)}async fundingInstrument(t){const e=wt(t);if(null==e)return null;const s=await this.client.get({endpoint:t});return mt(`${e}`,s)}}class qt extends(lt(_t).with(xt,yt)){constructor(t){super("bill_payments",q,t)}async serviceProvider(t){const e=wt(t);if(null==e)return null;const s=await this.client.get({endpoint:t});return mt(`${e}`,s)}}class Mt extends(lt(_t).with(vt)){constructor(t){super("card_activations",Object,t)}async create({number:t,expMonth:e,expYear:s,cvv2:r}){const i=new Tt(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 X.fromObject(e)}}class Bt extends(lt(_t).with(vt,gt,xt,yt,bt)){constructor(t){super("cards",B,t)}async create(t,e,s){const r=new It(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 kt(e,s);return await this._update(t,r.toCleanObject())}}class Vt extends(lt(_t).with(xt,yt)){constructor(t){super("card_transactions",M,t)}async relatedCard(t){const e=wt(t);if(null==e)return null;const s=await this.client.get({endpoint:t});return mt(`${e}`,s)}}class Rt extends(lt(_t).with(vt)){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 Ct({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 X.fromObject(e)}}class Qt extends(lt(_t).with(xt,yt)){constructor(t){super("commissions",S,t)}async relatedTransaction(t){const e=wt(t);if(null==e)return null;const s=await this.client.get(t);return mt(`${e}`,s)}}class Yt extends(lt(_t).with(xt,yt)){constructor(t){super("deposits",K,t)}async source(t){const e=await this.client.get({endpoint:t});return F.fromObject(e)}}class Ft extends(lt(_t).with(vt)){constructor(t){super("login_tokens",Object,t)}async create(){return await this._create()}}class zt extends(lt(_t).with(vt,gt,xt,yt,bt)){constructor(t){super("savings",R,t)}async create(t,e,s,r){const i=new Ut(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 Ut(e,s,r,i);return await this._update(t,a.toObject())}}class Ht extends(lt(_t).with(xt,yt)){constructor(t){super("service_providers",S,t)}}class Lt extends(lt(_t).with(ft,xt)){constructor(t){super("statements",Q,t)}async pdf(t){return await this._download(t,f.Pdf)}async xml(t){return await this._download(t,f.Xml)}}class Jt extends(lt(_t).with(vt,xt,yt)){constructor(t){super("transfers",$,t)}async destination(t){const e=await this.client.get({endpoint:t});return F.fromObject(e)}async create({accountNumber:t,amount:e,descriptor:s,recipientName:r,idempotencyKey:i}){const a=i||this.constructor._genIdempotencyKey(t,e),n=new St(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 St(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]=C(Date.now()).toISOString().split("T");return`${s}:${t}:${e}`}}class Wt extends(lt(_t).with(vt,bt)){constructor(t){super("user_credentials",Object,t)}async create(t){const e=new Nt(t);return await this._create(e.toObject())}async update({isActive:t,password:e,userId:s="me"}){const r=new Et(e,t);return await this._update(s,r.toCleanObject())}}class Xt extends(lt(_t).with(vt,gt)){constructor(t){super("user_logins",Object,t),this.loginIdInHeaders=null}async create(t,e){const s=new Pt(t,e),r=await this._create(s.toObject());if(!r.success)throw new d;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 Gt extends(lt(_t).with(vt,xt,yt)){constructor(t){super("wallet_transactions",V,t)}async create(t,e,s){const r=new Kt(t,e,s);return await this._create(r.toObject())}async realtedWallet(t){const e=wt(t);if(null==e)return null;const s=await this.client.get(t);return mt(`${e}`,s)}}class Zt extends(lt(_t).with(xt,yt)){constructor(t){super("whatsapp_transfers",S,t)}async accountDestination(t){const e=wt(t);if(null==e)return null;const s=await this.client.get(t);return mt(`${e}`,s)}}t.AccountQuery=N,t.ApiKeyQuery=E,t.BalanceEntryQuery=D,t.BillPaymentQuery=q,t.CardErrorType=p,t.CardFundingType=l,t.CardIssuer=m,t.CardStatus=w,t.CardTransactionQuery=M,t.CardTransactionType=_,t.CardType=y,t.CardsQuery=B,t.CommissionType=v,t.Cuenca=class{constructor(t,e,s=x.Sandbox){this.client=new Y({apiKey:t,apiSecret:e,phase:s}),this.withClient(this.client)}withClient(t){this.accounts=new At(t),this.apiKeys=new $t(t),this.balanceEntries=new Dt(t),this.billPayments=new qt(t),this.cardActivations=new Mt(t),this.cards=new Bt(t),this.cardTransactions=new Vt(t),this.cardValidations=new Rt(t),this.commissions=new Qt(t),this.deposits=new Yt(t),this.loginTokens=new Ft(t),this.savings=new zt(t),this.serviceProviders=new Ht(t),this.statements=new Lt(t),this.transfers=new Jt(t),this.userCredentials=new Wt(t),this.userLogins=new Xt(t),this.walletTransactions=new Gt(t),this.whatsAppTransfers=new Zt(t)}},t.CuencaException=i,t.CuencaResponseException=a,t.DepositNetwork=b,t.DepositQuery=K,t.EntryType=g,t.FileFormat=f,t.InvalidPassword=d,t.Jwt=h,t.MalformedJwtToken=o,t.MultipleResultsFound=c,t.NoResultFound=n,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=x,t.QueryParams=S,t.SavingCategory=j,t.ServiceProviderCategory=A,t.StatementQuery=Q,t.TrackDataMethod=O,t.TransactionStatus=I,t.TransferNetwork=k,t.TransferQuery=$,t.ValidationError=u,t.WalletQuery=R,t.WalletTransactionQuery=V,t.WalletTransactionType=T}));
|
|
1
|
+
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("axios"),require("buffer")):"function"==typeof define&&define.amd?define(["exports","axios","buffer"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).cuenca={},t.axios,t.Buffer)}(this,(function(t,e,s){"use strict";function i(t){return t&&"object"==typeof t&&"default"in t?t:{default:t}}var r=i(e),a=i(s);class n extends Error{constructor(t){super(t),Object.setPrototypeOf(this,n.prototype)}}class c extends n{constructor(t,e){super(`Cuenca Response Error: ${e}`),this.name="CuencaResponseError",this.data=t,this.status=e,Object.setPrototypeOf(this,c.prototype)}}class o extends n{constructor(){super("No results were found"),this.name="NoResultFound",Object.setPrototypeOf(this,o.prototype)}}class d extends n{constructor(){super("One result was expected but multiple were found"),this.name="MultipleResultsFound",Object.setPrototypeOf(this,d.prototype)}}class u extends n{constructor(){super("An invalid JWT token was obtained during authentication"),this.name="MalformedJwtToken",Object.setPrototypeOf(this,u.prototype)}}class h extends n{constructor(){super("Invalid password"),this.name="InvalidPassword",Object.setPrototypeOf(this,h.prototype)}}class p extends Error{constructor(t){super(t),Object.setPrototypeOf(this,p.prototype)}}const l="undefined"!=typeof window&&void 0!==window.document,m="undefined"!=typeof process&&"[object process]"===Object.prototype.toString.call(process),w=l,_=m;class 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)}}}));
|
package/build/{cjs/walletTransactionRequest-82837ee6.js → walletTransactionRequest-f549e991.cjs}
RENAMED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
4
|
-
var data = require('./data-
|
|
3
|
+
var errors_index = require('./errors/index.cjs');
|
|
4
|
+
var data = require('./data-9edbb2a0.cjs');
|
|
5
5
|
|
|
6
6
|
class BaseRequest {
|
|
7
7
|
toObject() {
|
|
@@ -64,7 +64,7 @@ class ArpcRequest extends BaseRequest {
|
|
|
64
64
|
if (!value) return;
|
|
65
65
|
const validations = [!!value, value.length === 16, /^\d{16}/.test(value)];
|
|
66
66
|
if (validations.some((x) => !x)) {
|
|
67
|
-
throw new
|
|
67
|
+
throw new errors_index.ValidationError('Invalid number');
|
|
68
68
|
}
|
|
69
69
|
this._number = value;
|
|
70
70
|
}
|
|
@@ -77,7 +77,7 @@ class ArpcRequest extends BaseRequest {
|
|
|
77
77
|
if (!value) return;
|
|
78
78
|
const validations = [value.length === 1];
|
|
79
79
|
if (validations.some((x) => !x)) {
|
|
80
|
-
throw new
|
|
80
|
+
throw new errors_index.ValidationError('Invalid method');
|
|
81
81
|
}
|
|
82
82
|
this._arpcMethod = value;
|
|
83
83
|
}
|
|
@@ -145,7 +145,7 @@ class CardActivationRequest extends BaseRequest {
|
|
|
145
145
|
set n(value) {
|
|
146
146
|
const validations = [!!value, value.length === 16, /^\d{16}/.test(value)];
|
|
147
147
|
if (validations.some((x) => !x)) {
|
|
148
|
-
throw new
|
|
148
|
+
throw new errors_index.ValidationError('Invalid number');
|
|
149
149
|
}
|
|
150
150
|
this._number = value.trim();
|
|
151
151
|
}
|
|
@@ -157,7 +157,7 @@ class CardActivationRequest extends BaseRequest {
|
|
|
157
157
|
set eM(value) {
|
|
158
158
|
const validations = [!!value, value >= 1, value <= 12];
|
|
159
159
|
if (validations.some((x) => !x)) {
|
|
160
|
-
throw new
|
|
160
|
+
throw new errors_index.ValidationError('Invalid expiration month');
|
|
161
161
|
}
|
|
162
162
|
this._expMonth = value;
|
|
163
163
|
}
|
|
@@ -169,7 +169,7 @@ class CardActivationRequest extends BaseRequest {
|
|
|
169
169
|
set eY(value) {
|
|
170
170
|
const validations = [!!value, value >= 18, value <= 99];
|
|
171
171
|
if (validations.some((x) => !x)) {
|
|
172
|
-
throw new
|
|
172
|
+
throw new errors_index.ValidationError('Invalid expiration year');
|
|
173
173
|
}
|
|
174
174
|
this._expYear = value;
|
|
175
175
|
}
|
|
@@ -181,7 +181,7 @@ class CardActivationRequest extends BaseRequest {
|
|
|
181
181
|
set c2(value) {
|
|
182
182
|
const validations = [!!value, value.length === 3, /^\d{3}/.test(value)];
|
|
183
183
|
if (validations.some((x) => !x)) {
|
|
184
|
-
throw new
|
|
184
|
+
throw new errors_index.ValidationError('Invalid cvv2');
|
|
185
185
|
}
|
|
186
186
|
this._cvv2 = value;
|
|
187
187
|
}
|
|
@@ -226,7 +226,7 @@ class CardValidationRequest extends BaseRequest {
|
|
|
226
226
|
if (!value) return;
|
|
227
227
|
const validations = [value.length === 3];
|
|
228
228
|
if (validations.some((x) => !x)) {
|
|
229
|
-
throw new
|
|
229
|
+
throw new errors_index.ValidationError('Invalid cvv');
|
|
230
230
|
}
|
|
231
231
|
this._cvv = value;
|
|
232
232
|
}
|
|
@@ -239,7 +239,7 @@ class CardValidationRequest extends BaseRequest {
|
|
|
239
239
|
if (!value) return;
|
|
240
240
|
const validations = [value.length === 3];
|
|
241
241
|
if (validations.some((x) => !x)) {
|
|
242
|
-
throw new
|
|
242
|
+
throw new errors_index.ValidationError('Invalid cvv2');
|
|
243
243
|
}
|
|
244
244
|
this._cvv2 = value;
|
|
245
245
|
}
|
|
@@ -252,7 +252,7 @@ class CardValidationRequest extends BaseRequest {
|
|
|
252
252
|
if (!value) return;
|
|
253
253
|
const validations = [value >= 1, value <= 12];
|
|
254
254
|
if (validations.some((x) => !x)) {
|
|
255
|
-
throw new
|
|
255
|
+
throw new errors_index.ValidationError('Invalid expiration month');
|
|
256
256
|
}
|
|
257
257
|
this._expMonth = value;
|
|
258
258
|
}
|
|
@@ -265,7 +265,7 @@ class CardValidationRequest extends BaseRequest {
|
|
|
265
265
|
if (!value) return;
|
|
266
266
|
const validations = [value >= 18, value <= 99];
|
|
267
267
|
if (validations.some((x) => !x)) {
|
|
268
|
-
throw new
|
|
268
|
+
throw new errors_index.ValidationError('Invalid expiration year');
|
|
269
269
|
}
|
|
270
270
|
this._expYear = value;
|
|
271
271
|
}
|
|
@@ -278,7 +278,7 @@ class CardValidationRequest extends BaseRequest {
|
|
|
278
278
|
if (!value) return;
|
|
279
279
|
const validations = [value.length === 3];
|
|
280
280
|
if (validations.some((x) => !x)) {
|
|
281
|
-
throw new
|
|
281
|
+
throw new errors_index.ValidationError('Invalid icvv');
|
|
282
282
|
}
|
|
283
283
|
this._icvv = value;
|
|
284
284
|
}
|
|
@@ -290,7 +290,7 @@ class CardValidationRequest extends BaseRequest {
|
|
|
290
290
|
set n(value) {
|
|
291
291
|
const validations = [!!value, value.length === 16, /^\d{16}/.test(value)];
|
|
292
292
|
if (validations.some((x) => !x)) {
|
|
293
|
-
throw new
|
|
293
|
+
throw new errors_index.ValidationError('Invalid number');
|
|
294
294
|
}
|
|
295
295
|
this._number = value;
|
|
296
296
|
}
|
|
@@ -325,7 +325,7 @@ class SavingRequest extends BaseRequest {
|
|
|
325
325
|
set validDate(value) {
|
|
326
326
|
if (!value) return;
|
|
327
327
|
if (data.dateToUTC(value).getTime() <= data.dateToUTC(Date.now()).getTime()) {
|
|
328
|
-
throw new
|
|
328
|
+
throw new errors_index.ValidationError(
|
|
329
329
|
'The goal_date always need to be higher than now',
|
|
330
330
|
);
|
|
331
331
|
}
|
|
@@ -382,7 +382,7 @@ class UserCredentialRequest extends BaseRequest {
|
|
|
382
382
|
set pwd(value) {
|
|
383
383
|
const validations = [!!value, value.length === 6, /^\d{6}$/.test(value)];
|
|
384
384
|
if (validations.some((x) => !x)) {
|
|
385
|
-
throw new
|
|
385
|
+
throw new errors_index.ValidationError('Invalid password');
|
|
386
386
|
}
|
|
387
387
|
this._password = value;
|
|
388
388
|
}
|
|
@@ -420,14 +420,14 @@ class UserCredentialUpdateRequest extends BaseRequest {
|
|
|
420
420
|
}
|
|
421
421
|
const validations = [value.length === 6, /^\d{6}$/.test(value)];
|
|
422
422
|
if (validations.some((x) => !x)) {
|
|
423
|
-
throw new
|
|
423
|
+
throw new errors_index.ValidationError('Invalid password');
|
|
424
424
|
}
|
|
425
425
|
this._password = value;
|
|
426
426
|
}
|
|
427
427
|
|
|
428
428
|
set req(value) {
|
|
429
429
|
if (value.password && value.isActive != null) {
|
|
430
|
-
throw new
|
|
430
|
+
throw new errors_index.ValidationError('Only one property can be updated at a time');
|
|
431
431
|
}
|
|
432
432
|
this._request = value;
|
|
433
433
|
}
|
|
@@ -454,7 +454,7 @@ class UserLoginRequest extends BaseRequest {
|
|
|
454
454
|
set pwd(value) {
|
|
455
455
|
const validations = [!!value, value.length === 6, /^\d{6}$/.test(value)];
|
|
456
456
|
if (validations.some((x) => !x)) {
|
|
457
|
-
throw new
|
|
457
|
+
throw new errors_index.ValidationError('Invalid password');
|
|
458
458
|
}
|
|
459
459
|
this._password = value;
|
|
460
460
|
}
|
package/package.json
CHANGED
|
@@ -1,13 +1,35 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cuenca-mx/cuenca-js",
|
|
3
|
-
"version": "0.0.1-dev.
|
|
3
|
+
"version": "0.0.1-dev.20",
|
|
4
4
|
"description": "Cuenca client for JS",
|
|
5
|
-
"main": "./build/
|
|
6
|
-
"module": "./build/
|
|
5
|
+
"main": "./build/index.cjs",
|
|
6
|
+
"module": "./build/index.mjs",
|
|
7
7
|
"browser": "./build/umd/cuenca.umd.js",
|
|
8
8
|
"files": [
|
|
9
9
|
"build/**/*"
|
|
10
10
|
],
|
|
11
|
+
"exports": {
|
|
12
|
+
".": {
|
|
13
|
+
"import": "./build/index.mjs",
|
|
14
|
+
"require": "./build/index.cjs"
|
|
15
|
+
},
|
|
16
|
+
"./errors": {
|
|
17
|
+
"import": "./build/errors/index.mjs",
|
|
18
|
+
"require": "./build/errors/index.cjs"
|
|
19
|
+
},
|
|
20
|
+
"./jwt": {
|
|
21
|
+
"import": "./build/jwt/index.mjs",
|
|
22
|
+
"require": "./build/jwt/index.cjs"
|
|
23
|
+
},
|
|
24
|
+
"./requests": {
|
|
25
|
+
"import": "./build/requests/index.mjs",
|
|
26
|
+
"require": "./build/requests/index.cjs"
|
|
27
|
+
},
|
|
28
|
+
"./types": {
|
|
29
|
+
"import": "./build/types/index.mjs",
|
|
30
|
+
"require": "./build/types/index.cjs"
|
|
31
|
+
}
|
|
32
|
+
},
|
|
11
33
|
"packageManager": "yarn@3.0.2",
|
|
12
34
|
"type": "module",
|
|
13
35
|
"repository": {
|
|
@@ -29,13 +51,14 @@
|
|
|
29
51
|
"publish": "yarn build && yarn npm publish"
|
|
30
52
|
},
|
|
31
53
|
"devDependencies": {
|
|
32
|
-
"@rollup/plugin-
|
|
54
|
+
"@rollup/plugin-json": "^4.1.0",
|
|
33
55
|
"@rollup/plugin-node-resolve": "^13.1.1",
|
|
34
56
|
"jest": "^27.4.5",
|
|
35
57
|
"rollup": "^2.61.1",
|
|
36
58
|
"rollup-plugin-terser": "^7.0.2"
|
|
37
59
|
},
|
|
38
60
|
"dependencies": {
|
|
39
|
-
"axios": "^0.24.0"
|
|
61
|
+
"axios": "^0.24.0",
|
|
62
|
+
"buffer": "^6.0.3"
|
|
40
63
|
}
|
|
41
64
|
}
|