@cuenca-mx/cuenca-js 0.0.1-dev.3 → 0.0.1-dev.30
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 +157 -2
- package/build/base-80b9a673.cjs +28 -0
- package/build/base-c1f04b51.mjs +24 -0
- package/build/errors/{index.js → index.cjs} +0 -0
- package/build/{queries-f146b91b.js → identities-122c79fd.mjs} +49 -2
- package/build/{queries-b8f29837.js → identities-d9bd3846.cjs} +54 -4
- package/build/{index.js → index.cjs} +199 -117
- package/build/index.mjs +133 -17
- package/build/jwt/{index.js → index.cjs} +7 -2
- package/build/jwt/index.mjs +2 -1
- package/build/requests/{index.js → index.cjs} +5 -3
- package/build/requests/index.mjs +2 -2
- package/build/types/index.cjs +43 -0
- package/build/types/index.mjs +2 -2
- package/build/umd/cuenca.umd.js +1 -1
- package/build/{walletTransactionRequest-bbfb87bd.js → walletTransactionRequest-8b125547.mjs} +63 -16
- package/build/{walletTransactionRequest-b588cc52.js → walletTransactionRequest-bda66da3.cjs} +78 -29
- package/package.json +27 -4
- package/build/data-7d3d5fcc.js +0 -11
- package/build/data-c53f1052.js +0 -14
- package/build/types/index.js +0 -40
package/build/index.mjs
CHANGED
|
@@ -1,12 +1,23 @@
|
|
|
1
1
|
import axios from 'axios';
|
|
2
|
+
import Buffer from 'buffer';
|
|
2
3
|
import { CuencaResponseException, CuencaException, NoResultFound, MultipleResultsFound, InvalidPassword } from './errors/index.mjs';
|
|
3
|
-
export { CuencaException, CuencaResponseException, InvalidPassword, MalformedJwtToken, MultipleResultsFound, NoResultFound, ValidationError } from './errors/index.mjs';
|
|
4
4
|
import { Jwt } from './jwt/index.mjs';
|
|
5
|
-
|
|
6
|
-
import {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
5
|
+
import { P as Phase, F as FileFormat, E as EntryType, T as TransactionStatus, C as CardIssuer, a as CardStatus, b as CardType, c as CardFundingType, d as CardErrorType, e as CardTransactionType, f as CommissionType, D as DepositNetwork, S as SavingCategory, g as ServiceProviderCategory, h as TransferNetwork, U as UserStatus, i as TOSAgreements, W as WalletTransactionType, A as AccountQuery, j as ApiKeyQuery, B as BalanceEntryQuery, k as BillPaymentQuery, l as CardsQuery, m as CardTransactionQuery, Q as QueryParams, n as DepositQuery, o as WalletQuery, p as StatementQuery, q as TransferQuery, r as UserQuery, s as WalletTransactionQuery } from './identities-122c79fd.mjs';
|
|
6
|
+
import { d as dateToUTC, e as enumValueFromString } from './base-c1f04b51.mjs';
|
|
7
|
+
import { A as ApiKeyUpdateRequest, a as ArpcRequest, C as CardActivationRequest, b as CardRequest, c as CardUpdateRequest, d as CardValidationRequest, S as SavingRequest, T as TransferRequest, U as UserCredentialRequest, e as UserCredentialUpdateRequest, f as UserLoginRequest, g as UserUpdateRequest, W as WalletTransactionRequest } from './walletTransactionRequest-8b125547.mjs';
|
|
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.30";const description="Cuenca client for JS";const main="./build/index.cjs";const module="./build/index.mjs";const browser="./build/umd/cuenca.umd.js";const files=["build/**/*"];const exports={".":{"import":"./build/index.mjs",require:"./build/index.cjs"},"./errors":{"import":"./build/errors/index.mjs",require:"./build/errors/index.cjs"},"./jwt":{"import":"./build/jwt/index.mjs",require:"./build/jwt/index.cjs"},"./requests":{"import":"./build/requests/index.mjs",require:"./build/requests/index.cjs"},"./types":{"import":"./build/types/index.mjs",require:"./build/types/index.cjs"}};const packageManager="yarn@3.0.2";const type="module";const repository={type:"git",url:"https://github.com/cuenca-mx/cuenca-js.git",directory:"packages/cuenca-js"};const keywords=["cuenca"];const license="MIT";const bugs={url:"https://github.com/cuenca-mx/cuenca-js/issues"};const homepage="https://cuenca.com";const scripts={build:"rm -rf build/ && yarn rollup --config",test:"yarn node --experimental-vm-modules $(yarn bin jest)",publish:"yarn build && yarn npm publish"};const devDependencies={"@rollup/plugin-json":"^4.1.0","@rollup/plugin-node-resolve":"^13.1.1",jest:"^27.4.5",rollup:"^2.61.1","rollup-plugin-terser":"^7.0.2"};const dependencies={axios:"^0.24.0",buffer:"^6.0.3"};var pkg = {name:name,version:version,description:description,main:main,module:module,browser:browser,files:files,exports:exports,packageManager:packageManager,type:type,repository:repository,keywords:keywords,license:license,bugs:bugs,homepage:homepage,scripts:scripts,devDependencies:devDependencies,dependencies:dependencies};
|
|
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
|
|
|
@@ -114,11 +126,18 @@ class Client {
|
|
|
114
126
|
}) {
|
|
115
127
|
const headers = {
|
|
116
128
|
Authorization: this.authHeader,
|
|
117
|
-
'X-User-Agent': `cuenca-js/0.0.1`, // TODO: Change for client version
|
|
118
129
|
'Content-Type': 'application/json',
|
|
119
130
|
Accept: `application/${format.value}`,
|
|
120
131
|
};
|
|
121
132
|
|
|
133
|
+
if (runtimeEnv.isNode) {
|
|
134
|
+
headers['User-Agent'] = `cuenca-js/${pkg.version}`;
|
|
135
|
+
} else if (runtimeEnv.isBrowser) {
|
|
136
|
+
// Cannot set User-Agent header on browsers
|
|
137
|
+
// https://developer.mozilla.org/en-US/docs/Glossary/Forbidden_header_name
|
|
138
|
+
headers['X-User-Agent'] = `cuenca-js/${pkg.version}`;
|
|
139
|
+
}
|
|
140
|
+
|
|
122
141
|
if (this.jwtToken) {
|
|
123
142
|
if (this.jwtToken.isExpired) {
|
|
124
143
|
this.jwtToken = await Jwt.create(this);
|
|
@@ -293,7 +312,13 @@ class BillPayment extends Transaction {
|
|
|
293
312
|
status,
|
|
294
313
|
userId,
|
|
295
314
|
}) {
|
|
296
|
-
super({
|
|
315
|
+
super({
|
|
316
|
+
amount,
|
|
317
|
+
createdAt,
|
|
318
|
+
descriptor,
|
|
319
|
+
status,
|
|
320
|
+
userId,
|
|
321
|
+
});
|
|
297
322
|
this.accountNumber = accountNumber;
|
|
298
323
|
this.id = id;
|
|
299
324
|
this.providerUri = providerUri;
|
|
@@ -407,7 +432,13 @@ class CardTransaction extends Transaction {
|
|
|
407
432
|
type,
|
|
408
433
|
userId,
|
|
409
434
|
}) {
|
|
410
|
-
super({
|
|
435
|
+
super({
|
|
436
|
+
amount,
|
|
437
|
+
createdAt,
|
|
438
|
+
descriptor,
|
|
439
|
+
status,
|
|
440
|
+
userId,
|
|
441
|
+
});
|
|
411
442
|
this.cardErrorType = enumValueFromString(CardErrorType, cardErrorType);
|
|
412
443
|
this.cardLastFour = cardLastFour;
|
|
413
444
|
this.cardType = enumValueFromString(CardType, cardType);
|
|
@@ -504,7 +535,13 @@ class Commission extends Transaction {
|
|
|
504
535
|
type,
|
|
505
536
|
userId,
|
|
506
537
|
}) {
|
|
507
|
-
super({
|
|
538
|
+
super({
|
|
539
|
+
amount,
|
|
540
|
+
createdAt,
|
|
541
|
+
descriptor,
|
|
542
|
+
status,
|
|
543
|
+
userId,
|
|
544
|
+
});
|
|
508
545
|
this.relatedTransactionUri = relatedTransactionUri;
|
|
509
546
|
this.type = enumValueFromString(CommissionType, type);
|
|
510
547
|
}
|
|
@@ -533,7 +570,13 @@ class Deposit extends Transaction {
|
|
|
533
570
|
trackingKey,
|
|
534
571
|
userId,
|
|
535
572
|
}) {
|
|
536
|
-
super({
|
|
573
|
+
super({
|
|
574
|
+
amount,
|
|
575
|
+
createdAt,
|
|
576
|
+
descriptor,
|
|
577
|
+
status,
|
|
578
|
+
userId,
|
|
579
|
+
});
|
|
537
580
|
this.id = id;
|
|
538
581
|
this.network = enumValueFromString(DepositNetwork, network);
|
|
539
582
|
this.sourceUri = sourceUri;
|
|
@@ -586,7 +629,14 @@ class Saving extends Wallet {
|
|
|
586
629
|
userId,
|
|
587
630
|
updatedAt,
|
|
588
631
|
}) {
|
|
589
|
-
super({
|
|
632
|
+
super({
|
|
633
|
+
balance,
|
|
634
|
+
createdAt,
|
|
635
|
+
deactivatedAt,
|
|
636
|
+
id,
|
|
637
|
+
userId,
|
|
638
|
+
updatedAt,
|
|
639
|
+
});
|
|
590
640
|
this.category = enumValueFromString(SavingCategory, category);
|
|
591
641
|
this.goalAmount = goalAmount;
|
|
592
642
|
this.goalDate = dateToUTC(goalDate);
|
|
@@ -665,7 +715,13 @@ class Transfer extends Transaction {
|
|
|
665
715
|
updatedAt,
|
|
666
716
|
userId,
|
|
667
717
|
}) {
|
|
668
|
-
super({
|
|
718
|
+
super({
|
|
719
|
+
amount,
|
|
720
|
+
createdAt,
|
|
721
|
+
descriptor,
|
|
722
|
+
status,
|
|
723
|
+
userId,
|
|
724
|
+
});
|
|
669
725
|
this.accountNumber = accountNumber;
|
|
670
726
|
this.destinationUri = destinationUri;
|
|
671
727
|
this.id = id;
|
|
@@ -694,6 +750,40 @@ class Transfer extends Transaction {
|
|
|
694
750
|
});
|
|
695
751
|
}
|
|
696
752
|
|
|
753
|
+
class User {
|
|
754
|
+
constructor({
|
|
755
|
+
emailAddress,
|
|
756
|
+
phoneNumber,
|
|
757
|
+
status,
|
|
758
|
+
termsOfService,
|
|
759
|
+
verificationId,
|
|
760
|
+
}) {
|
|
761
|
+
this.emailAddress = emailAddress;
|
|
762
|
+
this.phoneNumber = phoneNumber;
|
|
763
|
+
this.status = enumValueFromString(UserStatus, status);
|
|
764
|
+
this.terms = termsOfService;
|
|
765
|
+
this.verificationId = verificationId;
|
|
766
|
+
}
|
|
767
|
+
|
|
768
|
+
get termsOfService() {
|
|
769
|
+
return this._termsOfService;
|
|
770
|
+
}
|
|
771
|
+
|
|
772
|
+
set terms(value) {
|
|
773
|
+
if (!value) return;
|
|
774
|
+
this._termsOfService = TOSAgreements.fromObject(value);
|
|
775
|
+
}
|
|
776
|
+
|
|
777
|
+
static fromObject = ({ ...obj }) =>
|
|
778
|
+
new User({
|
|
779
|
+
emailAddress: obj.email_address,
|
|
780
|
+
phoneNumber: obj.phone_number,
|
|
781
|
+
status: obj.status,
|
|
782
|
+
termsOfService: obj.terms_of_service,
|
|
783
|
+
verificationId: obj.verification_id,
|
|
784
|
+
});
|
|
785
|
+
}
|
|
786
|
+
|
|
697
787
|
class UserCredential {
|
|
698
788
|
constructor({ createdAt, id, isActive, updatedAt }) {
|
|
699
789
|
this.createdAt = dateToUTC(createdAt);
|
|
@@ -737,7 +827,13 @@ class WalletTransaction extends Transaction {
|
|
|
737
827
|
userId,
|
|
738
828
|
walletUri,
|
|
739
829
|
}) {
|
|
740
|
-
super({
|
|
830
|
+
super({
|
|
831
|
+
amount,
|
|
832
|
+
createdAt,
|
|
833
|
+
descriptor,
|
|
834
|
+
status,
|
|
835
|
+
userId,
|
|
836
|
+
});
|
|
741
837
|
this.id = id;
|
|
742
838
|
this.transactionType = enumValueFromString(
|
|
743
839
|
WalletTransactionType,
|
|
@@ -776,7 +872,13 @@ class WhatsAppTransfer extends Transaction {
|
|
|
776
872
|
updatedAt,
|
|
777
873
|
userId,
|
|
778
874
|
}) {
|
|
779
|
-
super({
|
|
875
|
+
super({
|
|
876
|
+
amount,
|
|
877
|
+
createdAt,
|
|
878
|
+
descriptor,
|
|
879
|
+
status,
|
|
880
|
+
userId,
|
|
881
|
+
});
|
|
780
882
|
this.claimUrl = claimUrl;
|
|
781
883
|
this.destinationUri = destinationUri;
|
|
782
884
|
this.id = id;
|
|
@@ -837,6 +939,7 @@ const getModelFromPath = (path, obj) => {
|
|
|
837
939
|
service_providers: () => ServiceProvider.fromObject(obj),
|
|
838
940
|
statements: () => Statement.fromObject(obj),
|
|
839
941
|
transfers: () => Transfer.fromObject(obj),
|
|
942
|
+
users: () => User.fromObject(obj),
|
|
840
943
|
user_credentials: () => UserCredential.fromObject(obj),
|
|
841
944
|
user_logins: () => UserLogin.fromObject(obj),
|
|
842
945
|
wallet_transactions: () => WalletTransaction.fromObject(obj),
|
|
@@ -1398,6 +1501,18 @@ class UserLoginResource extends mix(Resource).with(Creatable, Deactivable) {
|
|
|
1398
1501
|
}
|
|
1399
1502
|
}
|
|
1400
1503
|
|
|
1504
|
+
class UserResourse extends mix(Resource).with(Queryable, Updateable) {
|
|
1505
|
+
constructor(client) {
|
|
1506
|
+
super('users', UserQuery, client);
|
|
1507
|
+
}
|
|
1508
|
+
|
|
1509
|
+
async update({ termsOfService, userId = 'me', verificationId }) {
|
|
1510
|
+
const request = new UserUpdateRequest({ termsOfService, verificationId });
|
|
1511
|
+
const user = await this._update(userId, request.toCleanObject());
|
|
1512
|
+
return user;
|
|
1513
|
+
}
|
|
1514
|
+
}
|
|
1515
|
+
|
|
1401
1516
|
class WalletTransactionsResource extends mix(Resource).with(
|
|
1402
1517
|
Creatable,
|
|
1403
1518
|
Queryable,
|
|
@@ -1465,6 +1580,7 @@ class Cuenca {
|
|
|
1465
1580
|
this.serviceProviders = new ServiceProviderResource(client);
|
|
1466
1581
|
this.statements = new StatementResource(client);
|
|
1467
1582
|
this.transfers = new TransferResource(client);
|
|
1583
|
+
this.users = new UserResourse(client);
|
|
1468
1584
|
this.userCredentials = new UserCredentialResource(client);
|
|
1469
1585
|
this.userLogins = new UserLoginResource(client);
|
|
1470
1586
|
this.walletTransactions = new WalletTransactionsResource(client);
|
|
@@ -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,7 +25,7 @@ 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
31
|
throw new errors_index.MalformedJwtToken();
|
package/build/jwt/index.mjs
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import Buffer from 'buffer';
|
|
1
2
|
import { MalformedJwtToken } from '../errors/index.mjs';
|
|
2
3
|
|
|
3
4
|
class Jwt {
|
|
@@ -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();
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var walletTransactionRequest = require('../walletTransactionRequest-
|
|
6
|
-
require('../
|
|
7
|
-
require('../
|
|
5
|
+
var walletTransactionRequest = require('../walletTransactionRequest-bda66da3.cjs');
|
|
6
|
+
require('../base-80b9a673.cjs');
|
|
7
|
+
require('../errors/index.cjs');
|
|
8
8
|
|
|
9
9
|
|
|
10
10
|
|
|
@@ -15,8 +15,10 @@ exports.CardRequest = walletTransactionRequest.CardRequest;
|
|
|
15
15
|
exports.CardUpdateRequest = walletTransactionRequest.CardUpdateRequest;
|
|
16
16
|
exports.CardValidationRequest = walletTransactionRequest.CardValidationRequest;
|
|
17
17
|
exports.SavingRequest = walletTransactionRequest.SavingRequest;
|
|
18
|
+
exports.TosUpdateRequest = walletTransactionRequest.TosUpdateRequest;
|
|
18
19
|
exports.TransferRequest = walletTransactionRequest.TransferRequest;
|
|
19
20
|
exports.UserCredentialRequest = walletTransactionRequest.UserCredentialRequest;
|
|
20
21
|
exports.UserCredentialUpdateRequest = walletTransactionRequest.UserCredentialUpdateRequest;
|
|
21
22
|
exports.UserLoginRequest = walletTransactionRequest.UserLoginRequest;
|
|
23
|
+
exports.UserUpdateRequest = walletTransactionRequest.UserUpdateRequest;
|
|
22
24
|
exports.WalletTransactionRequest = walletTransactionRequest.WalletTransactionRequest;
|
package/build/requests/index.mjs
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export { A as ApiKeyUpdateRequest, a as ArpcRequest, C as CardActivationRequest, b as CardRequest, c as CardUpdateRequest, d as CardValidationRequest, S as SavingRequest, T as TransferRequest, U as UserCredentialRequest, e as UserCredentialUpdateRequest, f as UserLoginRequest, W as WalletTransactionRequest } from '../walletTransactionRequest-
|
|
1
|
+
export { A as ApiKeyUpdateRequest, a as ArpcRequest, C as CardActivationRequest, b as CardRequest, c as CardUpdateRequest, d as CardValidationRequest, S as SavingRequest, h as TosUpdateRequest, T as TransferRequest, U as UserCredentialRequest, e as UserCredentialUpdateRequest, f as UserLoginRequest, g as UserUpdateRequest, W as WalletTransactionRequest } from '../walletTransactionRequest-8b125547.mjs';
|
|
2
|
+
import '../base-c1f04b51.mjs';
|
|
2
3
|
import '../errors/index.mjs';
|
|
3
|
-
import '../data-7d3d5fcc.js';
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var identities = require('../identities-d9bd3846.cjs');
|
|
6
|
+
require('../errors/index.cjs');
|
|
7
|
+
require('../base-80b9a673.cjs');
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
exports.AccountQuery = identities.AccountQuery;
|
|
12
|
+
exports.ApiKeyQuery = identities.ApiKeyQuery;
|
|
13
|
+
exports.BalanceEntryQuery = identities.BalanceEntryQuery;
|
|
14
|
+
exports.BillPaymentQuery = identities.BillPaymentQuery;
|
|
15
|
+
exports.CardErrorType = identities.CardErrorType;
|
|
16
|
+
exports.CardFundingType = identities.CardFundingType;
|
|
17
|
+
exports.CardIssuer = identities.CardIssuer;
|
|
18
|
+
exports.CardStatus = identities.CardStatus;
|
|
19
|
+
exports.CardTransactionQuery = identities.CardTransactionQuery;
|
|
20
|
+
exports.CardTransactionType = identities.CardTransactionType;
|
|
21
|
+
exports.CardType = identities.CardType;
|
|
22
|
+
exports.CardsQuery = identities.CardsQuery;
|
|
23
|
+
exports.CommissionType = identities.CommissionType;
|
|
24
|
+
exports.DepositNetwork = identities.DepositNetwork;
|
|
25
|
+
exports.DepositQuery = identities.DepositQuery;
|
|
26
|
+
exports.EntryType = identities.EntryType;
|
|
27
|
+
exports.FileFormat = identities.FileFormat;
|
|
28
|
+
exports.PageSize = identities.PageSize;
|
|
29
|
+
exports.Phase = identities.Phase;
|
|
30
|
+
exports.QueryParams = identities.QueryParams;
|
|
31
|
+
exports.SavingCategory = identities.SavingCategory;
|
|
32
|
+
exports.ServiceProviderCategory = identities.ServiceProviderCategory;
|
|
33
|
+
exports.StatementQuery = identities.StatementQuery;
|
|
34
|
+
exports.TOSAgreements = identities.TOSAgreements;
|
|
35
|
+
exports.TrackDataMethod = identities.TrackDataMethod;
|
|
36
|
+
exports.TransactionStatus = identities.TransactionStatus;
|
|
37
|
+
exports.TransferNetwork = identities.TransferNetwork;
|
|
38
|
+
exports.TransferQuery = identities.TransferQuery;
|
|
39
|
+
exports.UserQuery = identities.UserQuery;
|
|
40
|
+
exports.UserStatus = identities.UserStatus;
|
|
41
|
+
exports.WalletQuery = identities.WalletQuery;
|
|
42
|
+
exports.WalletTransactionQuery = identities.WalletTransactionQuery;
|
|
43
|
+
exports.WalletTransactionType = identities.WalletTransactionType;
|
package/build/types/index.mjs
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export { A as AccountQuery,
|
|
1
|
+
export { A as AccountQuery, j as ApiKeyQuery, B as BalanceEntryQuery, k as BillPaymentQuery, d as CardErrorType, c as CardFundingType, C as CardIssuer, a as CardStatus, m as CardTransactionQuery, e as CardTransactionType, b as CardType, l as CardsQuery, f as CommissionType, D as DepositNetwork, n as DepositQuery, E as EntryType, F as FileFormat, u as PageSize, P as Phase, Q as QueryParams, S as SavingCategory, g as ServiceProviderCategory, p as StatementQuery, i as TOSAgreements, t as TrackDataMethod, T as TransactionStatus, h as TransferNetwork, q as TransferQuery, r as UserQuery, U as UserStatus, o as WalletQuery, s as WalletTransactionQuery, W as WalletTransactionType } from '../identities-122c79fd.mjs';
|
|
2
2
|
import '../errors/index.mjs';
|
|
3
|
-
import '../
|
|
3
|
+
import '../base-c1f04b51.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 v{constructor(t,e){this.expiresAt=t,this.token=e}get isExpired(){const t=new Date;return(this.expiresAt.valueOf()-t.valueOf())/6e4<=5}static getExpirationDate=t=>{let e;try{const[,s]=t.split(".");e=JSON.parse(a.default.Buffer.from(`${s}==`,"base64").toString())}catch(t){throw new u}const{exp:s}=e;return new Date(new Date(1e3*s).toUTCString())};static create=async t=>{const e=t;e.jwtToken=null;const s=e.deleteRequestHeader("X-Cuenca-Token"),{token:i}=await t.post("token",{});s.eject();const r=v.getExpirationDate(i);return new v(r,i)}}class b{static Blocked=new b("blocked");static Comunication=new b("comunication");static ContactlesAmountLimit=new b("contactles_amount_limit");static FraudDetection=new b("fraud_detection");static FraudDetectionUncertain=new b("fraud_detection_uncertain");static InsufficientFounds=new b("insufficient_founds");static InvalidPin=new b("invalid_pin");static Notification=new b("notification");static NotificationDeactivatedCard=new b("notification_deactivated_card");constructor(t){this.value=t}}class y{static Credit=new y("credit");static Debit=new y("debit");constructor(t){this.value=t}}class f{static Accendo=new f("accendo");static Cuenca=new f("cuenca");constructor(t){this.value=t}}class g{static Active=new g("active");static Blocked=new g("blocked");static Created=new g("created");static Deactivated=new g("deactivated");static Printing=new g("printing");constructor(t){this.value=t}}class O{static Auth=new O("auth");static Capture=new O("capture");static Chargeback=new O("chargeback");static Expiration=new O("expiration");static Refund=new O("refund");static Void=new O("void");constructor(t){this.value=t}}class j{static Physical=new j("physical");static Virtual=new j("virtual");constructor(t){this.value=t}}class A{static CardRequest=new A("card_request");static CashDeposit=new A("cash_deposit");static OutgoingSpei=new A("outgoing_spei");constructor(t){this.value=t}}class x{static Cash=new x("cash");static Internal=new x("internal");static Spei=new x("spei");constructor(t){this.value=t}}class I{static Credit=new I("credit");static Debit=new I("debit");constructor(t){this.value=t}}class k{static Pdf=new k("pdf");static Xml=new k("xml");static Json=new k("json");constructor(t){this.value=t}}class T{static Sandbox=new T("sandbox");static Stage=new T("stage");static Api=new T("api");constructor(t){this.value=t}}class U{static Cable=new U("cable");static CreditCard=new U("credit_card");static Electricity=new U("electricity");static Gas=new U("gas");static Internet=new U("internet");static LandlineTelephone=new U("landline_telephone");static MobileTelephonePostpaid=new U("mobile_telephone_postpaid");static MobileTelephonePrepaid=new U("mobile_telephone_prepaid");static SateliteTelevision=new U("satelite_television");static Water=new U("water");constructor(t){this.value=t}}class C{static General=new C("general");static Home=new C("home");static Vehicle=new C("vehicle");static Travel=new C("travel");static Clothing=new C("clothing");static Other=new C("other");static Medical=new C("medical");static Accident=new C("accident");static Education=new C("education");constructor(t){this.value=t}}class S{static NotSet=new S("not_set");static Terminal=new S("terminal");static Manual=new S("manual");static Unknown=new S("unknown");static Contactless=new S("contactless");static FallBack=new S("fall_back");static MagneticStripe=new S("magnetic_stripe");static RecurringCharge=new S("recurring_charge");constructor(t){this.value=t}}class N{static Created=new N("created");static Failed=new N("failed");static InReview=new N("in_review");static Submitted=new N("submitted");static Succeeded=new N("succeeded");constructor(t){this.value=t}}class ${static Internal=new $("internal");static Spei=new $("spei");constructor(t){this.value=t}}class K{static Active=new K("active");static Deactivated=new K("deactivated");static fraud=new K("fraud");static pld_blocked=new K("pld_blocked");constructor(t){this.value=t}}class E{static Deposit=new E("deposit");static Withdrawal=new E("withdrawal");constructor(t){this.value=t}}const P=t=>{if(!t)return null;const e=new Date(t);return new Date(e.getTime())},q=(t,e)=>Object.values(t).find((t=>t.value===e));class D{constructor({createdAfter:t,createdBefore:e,limit:s,pageSize:i,relatedTransaction:r,userId:a,count:n=!1}){this.createdAfter=t,this.createdBefore=e,this._lmt=s,this.relatedTransaction=r,this.userId=a,this.count=n,this.pageSize=i}get limit(){return this._limit}set _lmt(t){let e=null;t&&t>=0&&(e=t),this._limit=e}toObject(){return{created_after:this.createdAfter,created_before:this.createdBefore,limit:this.limit,related_transaction:this.relatedTransaction,user_id:this.userId,page_size:this.pageSize&&this.pageSize.size}}toParams(){const t={...this.toObject()};return this.count&&(t.count=1),Object.keys(t).forEach((e=>{null==t[e]&&delete t[e]})),t}toQueryString(){return new URLSearchParams(this.toParams()).toString()}}class M extends D{constructor({accountNumber:t,...e}){super(e),this.accountNumber=t}toObject(){return Object.assign(super.toObject(),{account_number:this.accountNumber})}}class B extends D{constructor({active:t,...e}){super(e),this.active=t}toObject(){return Object.assign(super.toObject(),{active:this.active})}}class V extends D{constructor({status:t,...e}){super(e),this.status=t}toObject(){return Object.assign(super.toObject(),{status:this.status})}}class R extends V{constructor({trackingKey:t,network:e,...s}){super(s),this.trackingKey=t,this.network=e}toObject(){return Object.assign(super.toObject(),{tracking_key:this.trackingKey,network:this.network})}}class Y extends V{constructor({accountNumber:t,idempotencyKey:e,trackingKey:s,network:i,...r}){super(r),this.accountNumber=t,this.idempotencyKey=e,this.trackingKey=s,this.network=i}toObject(){return Object.assign(super.toObject(),{account_number:this.accountNumber,idempotency_key:this.idempotencyKey,tracking_key:this.trackingKey,network:this.network})}}class H extends D{constructor({fundingInstrumentUri:t,count:e=!1,walletId:s="default",...i}){super(i),this.fundingInstrumentUri=t,this.count=e,this.walletId=s}toObject(){return Object.assign(super.toObject(),{wallet_id:this.walletId,funding_instrument_uri:this.fundingInstrumentUri,count:this.count})}}class L extends D{constructor({accountNumber:t,...e}){super(e),this.accountNumber=t}toObject(){return Object.assign(super.toObject(),{account_number:this.accountNumber})}}class F extends D{constructor({cardUri:t,...e}){super(e),this.cardUri=t}toObject(){return Object.assign(super.toObject(),{card_uri:this.cardUri})}}class z extends D{constructor({cardUri:t,count:e=!1,...s}){super(s),this.cardUri=t,this.count=e}toObject(){return Object.assign(super.toObject(),{card_uri:this.cardUri,count:this.count})}}class Q extends D{constructor({walletUri:t,...e}){super(e),this.walletUri=t}toObject(){return Object.assign(super.toObject(),{wallet_uri:this.walletUri})}}class X extends D{constructor({emailAddress:t,phoneNumber:e,status:s,...i}){super(i),this.emailAddress=t,this.phoneNumber=e,this.status=s}toObject(){return Object.assign(super.toObject(),{email_address:this.emailAddress,phone_number:this.phoneNumber,status:this.status})}}class J extends D{constructor({active:t,...e}){super(e),this.active=t}toObject(){return Object.assign(super.toObject(),{active:this.active})}}class W extends D{constructor({month:t,year:e,...s}){super(s),this.d={month:t,year:e}}get month(){return this._date.month}get year(){return this._date.year}set d({month:t,year:e}){const s=P(Date.now());s.setUTCDate(1);if(P(`${e}-${t}-01`).getTime()>=s.getTime())throw new p(`${e}-${t} is not a valid year-month pair`);this._date={month:t,year:e}}toObject(){return Object.assign(super.toObject(),{month:this.month,year:this.year})}}class G{toObject(){return{}}toCleanObject(){const t=this.toObject();return Object.keys(t).forEach((e=>{null==t[e]&&delete t[e]})),t}}class Z extends G{constructor({ip:t,location:e,version:s}){super(),this.ip=t,this.location=e,this.version=s}static fromObject=({ip:t,location:e,version:s})=>new Z({ip:t,location:e,version:s})}var tt="0.0.1-dev.30";class et{constructor({apiKey:t,apiSecret:e,phase:s=T.Sandbox}={}){this.phase=s,this.basicAuth={apiKey:t,apiSecret:e},this.jwtToken=null,this._session=r.default.create()}get session(){return this._session}get origin(){return`https://${this.phase.value}.cuenca.com`}get authHeader(){const{apiKey:t,apiSecret:e}=this.basicAuth;return t&&e?`Basic ${a.default.Buffer.from(`${t}:${e}`,"utf-8").toString("base64")}`:""}addHeadersToRequest(t){const e=this._session.interceptors.request.use((e=>{const s=e,{headers:{common:i}}=s;return Object.keys(t).forEach((e=>i[e]=t[e])),s}));return{interceptorId:e,eject:()=>this._session.interceptors.request.eject(e)}}deleteRequestHeader(t){const e=this._session.interceptors.request.use((e=>{const s=e,{headers:{common:i}}=s;return delete i[t],s}));return{interceptorId:e,eject:()=>this._session.interceptors.request.eject(e)}}addConfigToRequest(t){const e=this._session.interceptors.request.use((e=>{const s=e;return Object.keys(t).forEach((e=>s[e]=t[e])),s}));return{interceptorId:e,eject:()=>this._session.interceptors.request.eject(e)}}async configure({apiKey:t,apiSecret:e,loginToken:s,phase:i,useJwt:r=!1}){this.basicAuth={apiKey:t||this.basicAuth.apiKey,apiSecret:e||this.basicAuth.apiSecret},i&&(this.phase=i),r&&(this.jwtToken=await v.create(this)),s&&this.addHeadersToRequest({"X-Cuenca-LoginToken":s})}async get({endpoint:t,format:e,params:s}){return this.request({endpoint:t,format:e,params:s})}async post({endpoint:t,data:e}){return this.request({method:"POST",endpoint:t,data:e})}async patch({endpoint:t,data:e}){return this.request({method:"PATCH",endpoint:t,data:e})}async delete({endpoint:t,data:e}){return this.request({method:"DELETE",endpoint:t,data:e})}async request({endpoint:t,data:e=null,format:s=k.Json,method:i="GET",params:r=null}){const a={Authorization:this.authHeader,"Content-Type":"application/json",Accept:`application/${s.value}`};_?a["User-Agent"]=`cuenca-js/${tt}`:w&&(a["X-User-Agent"]=`cuenca-js/${tt}`),this.jwtToken&&(this.jwtToken.isExpired&&(this.jwtToken=await v.create(this)),a["X-Cuenca-Token"]=this.jwtToken.token);const o=this.addHeadersToRequest(a),d=e;d&&Object.keys(d).forEach((t=>{d[t]instanceof Date&&(d[t]=d[t].toISOString())}));const u=this.addConfigToRequest({method:i,params:r,data:d,url:t});let h;try{h=await this._session.request({baseURL:this.origin})}catch(t){throw t.response?new c(t.response.data,t.response.status):t.request?new n(`No response received: ${t.errno}: ${t.code}`):new n(t.message)}finally{o.eject(),u.eject()}return h.data}}class st{constructor({accountNumber:t,createdAt:e,id:s,institutionName:i,name:r,userId:a}){this.accountNumber=t,this.createdAt=P(e),this.id=s,this.institutionName=i,this.name=r,this.userId=a}static fromObject=({id:t,name:e,...s})=>new st({id:t,name:e,accountNumber:s.account_number,createdAt:s.created_at,institutionName:s.institution_name,userId:s.user_id})}class it{constructor({createdAt:t,deactivatedAt:e,id:s,secret:i,userId:r,updatedAt:a}){this.createdAt=P(t),this.deactivatedAt=P(e),this.id=s,this.secret=i,this.userId=r,this.updatedAt=P(a)}static fromObject=({id:t,secret:e,...s})=>new it({id:t,secret:e,createdAt:s.created_at,deactivatedAt:s.deactivated_at,userId:s.user_id,updatedAt:s.updated_at});get isActive(){const t=P(Date.now());return!this.deactivatedAt||this.deactivatedAt.getTime()>t.getTime()}}class rt{constructor({arpc:t,createdAt:e,cardUri:s,isValidArqc:i}){this.arpc=t,this.createdAt=P(e),this.cardUri=s,this.isValidArqc=i}static fromObject=({arpc:t,...e})=>new rt({arpc:t,createdAt:e.created_at,cardUri:e.card_uri,isValidArqc:e.is_valid_arqc})}class at{constructor({amount:t,createdAt:e,descriptor:s,entryType:i,fundingInstrumentUri:r,id:a,name:n,relatedTransactionUri:c,rollingBalance:o}){this.amount=t,this.createdAt=P(e),this.descriptor=s,this.entryType=q(I,i),this.fundingInstrumentUri=r,this.id=a,this.name=n,this.relatedTransactionUri=c,this.rollingBalance=o}static fromObject=({amount:t,descriptor:e,id:s,name:i,type:r,...a})=>new at({amount:t,descriptor:e,name:i,id:s,createdAt:a.created_at,entryType:r,fundingInstrumentUri:a.funding_instrument_uri,relatedTransactionUri:a.related_transaction_uri,rollingBalance:a.rolling_balance})}class nt{constructor({amount:t,createdAt:e,descriptor:s,status:i,userId:r}){this.amount=t,this.createdAt=P(e),this.descriptor=s,this.status=q(N,i),this.userId=r}}class ct extends nt{constructor({amount:t,accountNumber:e,createdAt:s,descriptor:i,id:r,providerUri:a,status:n,userId:c}){super({amount:t,createdAt:s,descriptor:i,status:n,userId:c}),this.accountNumber=e,this.id=r,this.providerUri=a}static fromObject=({amount:t,descriptor:e,id:s,status:i,...r})=>new ct({amount:t,descriptor:e,id:s,status:i,accountNumber:r.account_number,createdAt:r.created_at,providerUri:r.provider_uri,userId:r.user_id})}class ot{constructor({createdAt:t,cvv2:e,expMonth:s,expYear:i,fundingType:r,id:a,issuer:n,number:c,pin:o,status:d,type:u,updatedAt:h,userId:p}){this.createdAt=P(t),this.cvv2=e,this.expMonth=s,this.expYear=i,this.fundingType=q(y,r),this.id=a,this.issuer=q(f,n),this.number=c,this.pin=o,this.status=q(g,d),this.type=q(j,u),this.updatedAt=P(h),this.userId=p}static fromObject=({cvv2:t,id:e,issuer:s,number:i,pin:r,status:a,type:n,...c})=>new ot({cvv2:t,id:e,issuer:s,number:i,pin:r,status:a,type:n,createdAt:c.created_at,expMonth:c.exp_month,expYear:c.exp_year,fundingType:c.funding_type,updatedAt:c.updated_at,userId:c.user_id})}class dt{constructor({cardUri:t,createdAt:e,id:s,ipAddress:i,success:r,userId:a}){this.cardUri=t,this.createdAt=P(e),this.id=s,this.ipAddress=i,this.success=r,this.userId=a}static fromObject=({id:t,success:e,...s})=>new dt({id:t,success:e,cardUri:s.card_uri,createdAt:s.created_at,ipAddress:s.ip_address,userId:s.user_id})}class ut extends nt{constructor({amount:t,cardErrorType:e,cardLastFour:s,cardType:i,cardUri:r,createdAt:a,descriptor:n,metadata:c,network:o,relatedCardTransactionsUris:d,status:u,type:h,userId:p}){super({amount:t,createdAt:a,descriptor:n,status:u,userId:p}),this.cardErrorType=q(b,e),this.cardLastFour=s,this.cardType=q(j,i),this.cardUri=r,this.metadata=c,this.network=o,this.relatedCardTransactionsUris=d,this.type=q(O,h)}static fromObject=({amount:t,descriptor:e,metadata:s,network:i,status:r,type:a,...n})=>new ut({amount:t,descriptor:e,metadata:s,network:i,status:r,type:a,cardErrorType:n.error_type,cardLastFour:n.card_last4,cardType:n.card_type,cardUri:n.card_uri,createdAt:n.created_at,relatedCardTransactionsUris:n.related_card_transaction,userId:n.user_id})}class ht{constructor({cardStatus:t,cardType:e,cardUri:s,createdAt:i,isExpired:r,isPinAttemptsExceeded:a,isValidCvv:n,isValidCvv2:c,isValidExpDate:o,isValidIcvv:d,isValidPinBlock:u,userId:h}){this.cardStatus=q(g,t),this.cardType=q(j,e),this.cardUri=s,this.createdAt=P(i),this.isExpired=r,this.isPinAttemptsExceeded=a,this.isValidCvv=n,this.isValidCvv2=c,this.isValidExpDate=o,this.isValidIcvv=d,this.isValidPinBlock=u,this.userId=h}static fromObject=({...t})=>new ht({cardStatus:t.card_status,cardType:t.card_type,cardUri:t.card_uri,createdAt:t.created_at,isExpired:t.is_expired,isPinAttemptsExceeded:t.is_pin_attempts_exceeded,isValidCvv:t.is_valid_cvv,isValidCvv2:t.is_valid_cvv2,isValidExpDate:t.is_valid_exp_date,isValidIcvv:t.is_valid_icvv,isValidPinBlock:t.is_valid_pin_block,userId:t.user_id});get isActive(){return this.cardStatus===g.Active}}class pt extends nt{constructor({amount:t,createdAt:e,descriptor:s,relatedTransactionUri:i,status:r,type:a,userId:n}){super({amount:t,createdAt:e,descriptor:s,status:r,userId:n}),this.relatedTransactionUri=i,this.type=q(A,a)}static fromObject=({amount:t,descriptor:e,status:s,type:i,...r})=>new pt({amount:t,descriptor:e,status:s,type:i,createdAt:r.created_at,relatedTransactionUri:r.related_transaction_uri,userId:r.user_id})}class lt extends nt{constructor({amount:t,createdAt:e,descriptor:s,id:i,network:r,status:a,sourceUri:n,trackingKey:c,userId:o}){super({amount:t,createdAt:e,descriptor:s,status:a,userId:o}),this.id=i,this.network=q(x,r),this.sourceUri=n,this.trackingKey=c}static fromObject=({amount:t,descriptor:e,id:s,network:i,status:r,...a})=>new lt({amount:t,descriptor:e,id:s,network:i,status:r,createdAt:a.created_at,sourceUri:a.source_uri,trackingKey:a.tracking_key,userId:a.user_id})}class mt{constructor({id:t}){this.id=t}static fromObject=({id:t})=>new mt({id:t})}class wt extends class{constructor({balance:t,createdAt:e,deactivatedAt:s,id:i,userId:r,updatedAt:a}){this.balance=t,this.createdAt=P(e),this.deactivatedAt=P(s),this.id=i,this.userId=r,this.updatedAt=P(a)}}{constructor({balance:t,category:e,createdAt:s,deactivatedAt:i,goalAmount:r,goalDate:a,id:n,name:c,userId:o,updatedAt:d}){super({balance:t,createdAt:s,deactivatedAt:i,id:n,userId:o,updatedAt:d}),this.category=q(C,e),this.goalAmount=r,this.goalDate=P(a),this.name=c}static fromObject=({balance:t,category:e,id:s,name:i,...r})=>new wt({balance:t,category:e,id:s,name:i,createdAt:r.created_at,deactivatedAt:r.deactivated_at,goalAmount:r.goal_amount,goalDate:r.goal_date,userId:r.user_id,updatedAt:r.updated_at})}class _t{constructor({categories:t,id:e,name:s,providerKey:i}){var r;this.categories=null==(r=t)?[]:r.map((t=>q(U,t))),this.id=e,this.name=s,this.providerKey=i}static fromObject=({categories:t,id:e,name:s,...i})=>new _t({categories:t,id:e,name:s,providerKey:i.provider_key})}class vt{constructor({createdAt:t,id:e,month:s,year:i}){this.createdAt=P(t),this.id=e,this.month=s,this.year=i}static fromObject=({id:t,month:e,year:s,...i})=>new vt({id:t,month:e,year:s,createdAt:i.created_at})}class bt extends nt{constructor({accountNumber:t,amount:e,createdAt:s,descriptor:i,destinationUri:r,id:a,idempotencyKey:n,network:c,recipientName:o,status:d,trackingKey:u,updatedAt:h,userId:p}){super({amount:e,createdAt:s,descriptor:i,status:d,userId:p}),this.accountNumber=t,this.destinationUri=r,this.id=a,this.idempotencyKey=n,this.network=q($,c),this.recipientName=o,this.trackingKey=u,this.updatedAt=P(h)}static fromObject=({amount:t,descriptor:e,id:s,network:i,status:r,...a})=>new bt({amount:t,descriptor:e,id:s,network:i,status:r,accountNumber:a.account_number,createdAt:a.created_at,destinationUri:a.destination_uri,idempotencyKey:a.idempotency_key,recipientName:a.recipient_name,trackingKey:a.tracking_key,updatedAt:a.updated_at,userId:a.user_id})}class yt{constructor({emailAddress:t,phoneNumber:e,status:s,termsOfService:i,verificationId:r}){this.emailAddress=t,this.phoneNumber=e,this.status=q(K,s),this.terms=i,this.verificationId=r}get termsOfService(){return this._termsOfService}set terms(t){t&&(this._termsOfService=Z.fromObject(t))}static fromObject=({...t})=>new yt({emailAddress:t.email_address,phoneNumber:t.phone_number,status:t.status,termsOfService:t.terms_of_service,verificationId:t.verification_id})}class ft{constructor({createdAt:t,id:e,isActive:s,updatedAt:i}){this.createdAt=P(t),this.id=e,this.isActive=s,this.updatedAt=P(i)}static fromObject=({id:t,...e})=>new ft({id:t,createdAt:e.created_at,isActive:e.is_active,updatedAt:e.updated_at})}class gt{constructor({id:t,lastLoginAt:e,success:s}){this.id=t,this.lastLoginAt=P(e),this.success=s}static fromObject=({id:t,success:e,...s})=>new gt({id:t,success:e,lastLoginAt:s.last_login_at})}class Ot extends nt{constructor({amount:t,createdAt:e,descriptor:s,id:i,status:r,transactionType:a,userId:n,walletUri:c}){super({amount:t,createdAt:e,descriptor:s,status:r,userId:n}),this.id=i,this.transactionType=q(E,a),this.walletUri=c}static fromObject=({amount:t,descriptor:e,id:s,status:i,...r})=>new Ot({amount:t,descriptor:e,id:s,status:i,createdAt:r.created_at,transactionType:r.transaction_type,userId:r.user_id,walletUri:r.wallet_uri})}class jt extends nt{constructor({amount:t,claimUrl:e,createdAt:s,descriptor:i,destinationUri:r,expiresAt:a,id:n,network:c,phoneNumber:o,recipientName:d,status:u,trackingKey:h,updatedAt:p,userId:l}){super({amount:t,createdAt:s,descriptor:i,status:u,userId:l}),this.claimUrl=e,this.destinationUri=r,this.id=n,this.expiresAt=P(a),this.network=q($,c),this.phoneNumber=o,this.recipientName=d,this.trackingKey=h,this.updatedAt=P(p)}static fromObject=({amount:t,descriptor:e,id:s,network:i,status:r,...a})=>new jt({amount:t,descriptor:e,id:s,network:i,status:r,createdAt:a.created_at,claimUrl:a.claim_url,destinationUri:a.destination_uri,expiresAt:a.expires_at,phoneNumber:a.phone_number,recipientName:a.recipient_name,trackingKey:a.tracking_key,updatedAt:a.updated_at,userId:a.user_id})}class At{constructor(t){this.superclass=t}with(...t){return t.reduce(((t,e)=>e(t)),this.superclass)}}const xt=t=>new At(t),It=(t,e)=>({accounts:()=>st.fromObject(e),api_keys:()=>it.fromObject(e),arpc:()=>rt.fromObject(e),balance_entries:()=>at.fromObject(e),bill_payments:()=>ct.fromObject(e),cards:()=>ot.fromObject(e),card_activations:()=>dt.fromObject(e),card_transactions:()=>ut.fromObject(e),card_validations:()=>ht.fromObject(e),commissions:()=>pt.fromObject(e),deposits:()=>lt.fromObject(e),login_tokens:()=>mt.fromObject(e),savings:()=>wt.fromObject(e),service_providers:()=>_t.fromObject(e),statements:()=>vt.fromObject(e),transfers:()=>bt.fromObject(e),users:()=>yt.fromObject(e),user_credentials:()=>ft.fromObject(e),user_logins:()=>gt.fromObject(e),wallet_transactions:()=>Ot.fromObject(e),whatsapp_transfers:()=>jt.fromObject(e)}[t]()),kt=t=>{if(null===t||""===t)return null;const e=t.match("/(.*?)/");return null===e?null:e[0].replaceAll("/","")};class Tt{constructor(t,e,s){this.path=t,this.QueryParams=e,this.client=s}}const Ut=t=>class extends t{async retrieve(t){const e=await this.client.get({endpoint:`/${this.path}/${t}`});return It(this.path,e)}},Ct=t=>class extends t{async _create(t){const e=await this.client.post({endpoint:`/${this.path}`,data:t});return It(this.path,e)}},St=t=>class extends t{async _update(t,e){const s=await this.client.patch({endpoint:`/${this.path}/${t}`,data:e});return It(this.path,s)}},Nt=t=>class extends t{async _deactivate(t,e){const s=await this.client.delete({endpoint:`/${this.path}/${t}`,data:e});return It(this.path,s)}},$t=t=>class extends t{async _download(t,e){return await this.client.get({endpoint:`/${this.path}/${t}`,format:e})}},Kt=t=>class extends t{async one(t=new this.QueryParams({})){const{items:e}=await this.client.get({endpoint:`/${this.path}`,params:t.toParams()});if(!e||!e.length)throw new o;if(e.length>1)throw new d;const[s]=e;return It(this.path,s)}async first(t=new this.QueryParams({})){const{items:e}=await this.client.get({endpoint:`/${this.path}`,params:t.toParams()});if(!e||!e[0])return null;const[s]=e;return It(this.path,s)}async count(t=new this.QueryParams({})){t.count=!0;const{count:e}=await this.client.get({endpoint:`/${this.path}`,params:t.toParams()});return e||0}async*all(t=new this.QueryParams({})){let e=`/${this.path}?${t.toQueryString()}`;for(;e;){const t=await this.client.get({endpoint:e});if(t.items)for(const e of t.items){const t=It(this.path,e);yield t}e=t.next_page_uri}}};class Et extends(xt(Tt).with(Kt,Ut)){constructor(t){super("accounts",M,t)}}class Pt extends G{constructor(t,e){super(),this.userId=t,this.metadata=e}toObject(){return{user_id:this.userId,metadata:this.metadata}}}class qt extends G{constructor(t,e,s){super(),this.userId=t,this.issuer=e,this.fundingType=s}toObject(){return{user_id:this.userId,issuer:this.issuer,funding_type:this.fundingType}}}class Dt extends G{constructor(t,e){super(),this.status=t,this.pinBlock=e}toObject(){return{status:this.status,pin_block:this.pinBlock}}}class Mt extends G{constructor(t,e,s,i){super(),this.n=t,this.eM=e,this.eY=s,this.c2=i}get number(){return this._number}set n(t){if([!!t,16===t.length,/^\d{16}/.test(t)].some((t=>!t)))throw new p("Invalid number");this._number=t.trim()}get expMonth(){return this._expMonth}set eM(t){if([!!t,t>=1,t<=12].some((t=>!t)))throw new p("Invalid expiration month");this._expMonth=t}get expYear(){return this._expYear}set eY(t){if([!!t,t>=18,t<=99].some((t=>!t)))throw new p("Invalid expiration year");this._expYear=t}get cvv2(){return this._cvv2}set c2(t){if([!!t,3===t.length,/^\d{3}/.test(t)].some((t=>!t)))throw new p("Invalid cvv2");this._cvv2=t}toObject(){return{number:this.number,exp_month:this.expMonth,exp_year:this.expYear,cvv2:this.cvv2}}}class Bt extends G{constructor({cvv:t,cvv2:e,expMonth:s,expYear:i,icvv:r,number:a,pinBlock:n,pinAttemptsExceeded:c}){super(),this.c=t,this.c2=e,this.em=s,this.ey=i,this.ic=r,this.n=a,this.pinBloc=n,this.pinAttemptsExceeded=c}get cvv(){return this._cvv}set c(t){if(!t)return;if([3===t.length].some((t=>!t)))throw new p("Invalid cvv");this._cvv=t}get cvv2(){return this._cvv2}set c2(t){if(!t)return;if([3===t.length].some((t=>!t)))throw new p("Invalid cvv2");this._cvv2=t}get expMonth(){return this._expMonth}set em(t){if(!t)return;if([t>=1,t<=12].some((t=>!t)))throw new p("Invalid expiration month");this._expMonth=t}get expYear(){return this._expYear}set ey(t){if(!t)return;if([t>=18,t<=99].some((t=>!t)))throw new p("Invalid expiration year");this._expYear=t}get icvv(){return this._icvv}set ic(t){if(!t)return;if([3===t.length].some((t=>!t)))throw new p("Invalid icvv");this._icvv=t}get number(){return this._number}set n(t){if([!!t,16===t.length,/^\d{16}/.test(t)].some((t=>!t)))throw new p("Invalid number");this._number=t}toObject(){return{cvv:this.cvv,cvv2:this.cvv2,exp_month:this.expMonth,exp_year:this.expYear,icvv:this.icvv,number:this.number,pin_block:this.pinBloc,pin_attempts_exceeded:this.pinAttemptsExceeded}}}class Vt extends G{constructor(t,e,s,i){super(),this.category=t,this.name=i,this.goalAmount=e,this.validDate=s}get goalDate(){return this._goalDate}set validDate(t){if(t){if(P(t).getTime()<=P(Date.now()).getTime())throw new p("The goal_date always need to be higher than now");this._goalDate=t}}toObject(){return{category:this.category,goal_amount:this.goalAmount,goal_date:this.goalDate,name:this.name}}}class Rt extends G{constructor({ip:t,location:e,type:s,version:i}){super(),this.ipAddress=t,this.location=e,this.type=s,this.version=i}get ip(){return this._ip}set ipAddress(t){if(!t)throw new p("missing ip address");if(!t.split(".").every((t=>t>=0&&t<=255)))throw new p("Invalid ip address");this._ip=t}toObject(){return{ip:this.ip,location:this.location,type:this.type,version:this.version}}}class Yt extends G{constructor(t,e,s,i,r){super(),this.accountNumber=t,this.amount=e,this.descriptor=s,this.idempotencyKey=i,this.recipientName=r}toObject(){return{account_number:this.accountNumber,amount:this.amount,descriptor:this.descriptor,idempotency_key:this.idempotencyKey,recipient_name:this.recipientName}}}class Ht extends G{constructor(t){super(),this.pwd=t}get password(){return this._password}set pwd(t){if([!!t,6===t.length,/^\d{6}$/.test(t)].some((t=>!t)))throw new p("Invalid password");this._password=t}toObject(){return{password:this.password}}}class Lt extends G{constructor(t,e){super(),this.pwd=t,this.isActive=e,this.req={password:this.password,isActive:this.isActive}}get password(){return this._password}get request(){return this._request}set pwd(t){if(!t)return void(this._password=t);if([6===t.length,/^\d{6}$/.test(t)].some((t=>!t)))throw new p("Invalid password");this._password=t}set req(t){if(t.password&&null!=t.isActive)throw new p("Only one property can be updated at a time");this._request=t}toObject(){return{password:this.request.password,is_active:this.request.isActive}}}class Ft extends G{constructor(t,e="me"){super(),this.pwd=t,this.userId=e}get password(){return this._password}set pwd(t){if([!!t,6===t.length,/^\d{6}$/.test(t)].some((t=>!t)))throw new p("Invalid password");this._password=t}toObject(){return{password:this.password,user_id:this.userId}}}class zt extends G{constructor({termsOfService:t,verificationId:e}){super(),this.terms=t,this.verificationId=e}get termsOfService(){return this._termsOfService}set terms(t){t&&(this._termsOfService=new Rt(t).toObject())}toObject(){return{terms_of_service:this.termsOfService,verification_id:this.verificationId}}}class Qt extends G{constructor(t,e,s){super(),this.amount=t,this.transactionType=e,this.walletUri=s}toObject(){return{amount:this.amount,transaction_type:this.transactionType,wallet_uri:this.walletUri}}}class Xt extends(xt(Tt).with(Ct,Nt,Kt,Ut,St)){constructor(t){super("api_keys",B,t)}async create(){return await this._create()}async deactivate(t,e=0){return await this._deactivate(t,{minutes:e})}async update(t,e,s){const i=new Pt(s,e);return await this._update(t,i.toCleanObject())}}xt(Tt).with(Ct);class Jt extends(xt(Tt).with(Kt,Ut)){constructor(t){super("balance_entries",H,t)}async relatedTransaction(t){const e=kt(t);if(null==e)return null;const s=await this.client.get({endpoint:t});return It(`${e}`,s)}async fundingInstrument(t){const e=kt(t);if(null==e)return null;const s=await this.client.get({endpoint:t});return It(`${e}`,s)}}class Wt extends(xt(Tt).with(Kt,Ut)){constructor(t){super("bill_payments",L,t)}async serviceProvider(t){const e=kt(t);if(null==e)return null;const s=await this.client.get({endpoint:t});return It(`${e}`,s)}}class Gt extends(xt(Tt).with(Ct)){constructor(t){super("card_activations",Object,t)}async create({number:t,expMonth:e,expYear:s,cvv2:i}){const r=new Mt(t,e,s,i);return await this._create(r.toCleanObject())}async card(t){if(!t)return null;const e=await this.client.get({endpoint:t});return ot.fromObject(e)}}class Zt extends(xt(Tt).with(Ct,Nt,Kt,Ut,St)){constructor(t){super("cards",z,t)}async create(t,e,s){const i=new qt(t,e,s);return await this._create(i.toCleanObject())}async deactivate(t){return await this._deactivate(t)}async update(t,e,s){const i=new Dt(e,s);return await this._update(t,i.toCleanObject())}}class te extends(xt(Tt).with(Kt,Ut)){constructor(t){super("card_transactions",F,t)}async relatedCard(t){const e=kt(t);if(null==e)return null;const s=await this.client.get({endpoint:t});return It(`${e}`,s)}}class ee extends(xt(Tt).with(Ct)){constructor(t){super("card_validations",Object,t)}async create({cvv:t,cvv2:e,expMonth:s,expYear:i,icvv:r,number:a,pinBlock:n,pinAttemptsExceeded:c}){const o=new Bt({cvv:t,cvv2:e,expMonth:s,expYear:i,icvv:r,number:a,pinBlock:n,pinAttemptsExceeded:c});return await this._create(o.toCleanObject())}async card(t){if(!t)return null;const e=await this.client.get({endpoint:t});return ot.fromObject(e)}}class se extends(xt(Tt).with(Kt,Ut)){constructor(t){super("commissions",D,t)}async relatedTransaction(t){const e=kt(t);if(null==e)return null;const s=await this.client.get(t);return It(`${e}`,s)}}class ie extends(xt(Tt).with(Kt,Ut)){constructor(t){super("deposits",R,t)}async source(t){const e=await this.client.get({endpoint:t});return st.fromObject(e)}}class re extends(xt(Tt).with(Ct)){constructor(t){super("login_tokens",Object,t)}async create(){return await this._create()}}class ae extends(xt(Tt).with(Ct,Nt,Kt,Ut,St)){constructor(t){super("savings",J,t)}async create(t,e,s,i){const r=new Vt(t,e,s,i);return await this._create(r.toObject())}async deactivate(t){return await this._deactivate(t)}async update(t,e,s,i,r){const a=new Vt(e,s,i,r);return await this._update(t,a.toObject())}}class ne extends(xt(Tt).with(Kt,Ut)){constructor(t){super("service_providers",D,t)}}class ce extends(xt(Tt).with($t,Kt)){constructor(t){super("statements",W,t)}async pdf(t){return await this._download(t,k.Pdf)}async xml(t){return await this._download(t,k.Xml)}}class oe extends(xt(Tt).with(Ct,Kt,Ut)){constructor(t){super("transfers",Y,t)}async destination(t){const e=await this.client.get({endpoint:t});return st.fromObject(e)}async create({accountNumber:t,amount:e,descriptor:s,recipientName:i,idempotencyKey:r}){const a=r||this.constructor._genIdempotencyKey(t,e),n=new Yt(t,e,s,a,i);return await this._create(n.toCleanObject())}async createMany(t){if(!t||!Array.isArray(t)||!t.length)return{};const e={submitted:[],errors:[]};return await Promise.all(t.map((async({accountNumber:t,amount:s,descriptor:i,idempotencyKey:r,recipientName:a})=>{const n=new Yt(t,s,i,r||this.constructor._genIdempotencyKey(t,s),a);let c;try{c=await this._create(n.toCleanObject())}catch(t){return void e.errors.push({actualRequest:n,error:t})}e.submitted.push(c)}))),e}static _genIdempotencyKey(t,e){const[s]=P(Date.now()).toISOString().split("T");return`${s}:${t}:${e}`}}class de extends(xt(Tt).with(Ct,St)){constructor(t){super("user_credentials",Object,t)}async create(t){const e=new Ht(t);return await this._create(e.toObject())}async update({isActive:t,password:e,userId:s="me"}){const i=new Lt(e,t);return await this._update(s,i.toCleanObject())}}class ue extends(xt(Tt).with(Ct,Nt)){constructor(t){super("user_logins",Object,t),this.loginIdInHeaders=null}async create(t,e){const s=new Ft(t,e),i=await this._create(s.toObject());if(!i.success)throw new h;return this.loginIdInHeaders=this.client.addHeadersToRequest({"X-Cuenca-LoginId":i.id}),i}async logOut(t="me"){return await this._deactivate(t,{}),this.loginIdInHeaders&&this.loginIdInHeaders.eject(),!0}}class he extends(xt(Tt).with(Kt,St)){constructor(t){super("users",X,t)}async update({termsOfService:t,userId:e="me",verificationId:s}){const i=new zt({termsOfService:t,verificationId:s});return await this._update(e,i.toCleanObject())}}class pe extends(xt(Tt).with(Ct,Kt,Ut)){constructor(t){super("wallet_transactions",Q,t)}async create(t,e,s){const i=new Qt(t,e,s);return await this._create(i.toObject())}async realtedWallet(t){const e=kt(t);if(null==e)return null;const s=await this.client.get(t);return It(`${e}`,s)}}class le extends(xt(Tt).with(Kt,Ut)){constructor(t){super("whatsapp_transfers",D,t)}async accountDestination(t){const e=kt(t);if(null==e)return null;const s=await this.client.get(t);return It(`${e}`,s)}}t.Cuenca=class{constructor(t,e,s=T.Sandbox){this.client=new et({apiKey:t,apiSecret:e,phase:s}),this.withClient(this.client)}withClient(t){this.accounts=new Et(t),this.apiKeys=new Xt(t),this.balanceEntries=new Jt(t),this.billPayments=new Wt(t),this.cardActivations=new Gt(t),this.cards=new Zt(t),this.cardTransactions=new te(t),this.cardValidations=new ee(t),this.commissions=new se(t),this.deposits=new ie(t),this.loginTokens=new re(t),this.savings=new ae(t),this.serviceProviders=new ne(t),this.statements=new ce(t),this.transfers=new oe(t),this.users=new he(t),this.userCredentials=new de(t),this.userLogins=new ue(t),this.walletTransactions=new pe(t),this.whatsAppTransfers=new le(t)}}}));
|