@cuenca-mx/cuenca-js 0.0.5-dev.5 → 0.0.5-dev.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,5 +1,5 @@
1
1
  import { ValidationError } from './errors/index.mjs';
2
- import { d as dateToUTC, e as enumValueFromString, K as KYCFileType, l as KYCStatus } from './data-86ddd935.mjs';
2
+ import { d as dateToUTC, e as enumValueFromString, l as KYCStatus, K as KYCFileType } from './data-86ddd935.mjs';
3
3
 
4
4
  class PageSize {
5
5
  constructor(size) {
package/build/index.cjs CHANGED
@@ -8,7 +8,8 @@ var errors_index = require('./errors/index.cjs');
8
8
  var jwt_index = require('./jwt/index.cjs');
9
9
  var data = require('./data-d25afb50.cjs');
10
10
  var identities = require('./identities-b472f1c7.cjs');
11
- var walletTransactionRequest = require('./walletTransactionRequest-720f296f.cjs');
11
+ var walletTransactionRequest = require('./walletTransactionRequest-ee4e5af1.cjs');
12
+ require('module');
12
13
 
13
14
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
14
15
 
@@ -26,7 +27,7 @@ const isNode =
26
27
 
27
28
  const runtimeEnv = { isBrowser, isNode };
28
29
 
29
- const name="@cuenca-mx/cuenca-js";const version="0.0.5-dev.5";const description="Cuenca client for JS";const main="./build/index.cjs";const module$1="./build/index.mjs";const browser="./build/umd/cuenca.umd.js";const files=["build/**/*"];const exports$1={".":{"import":"./build/index.mjs",require:"./build/index.cjs"},"./errors":{"import":"./build/errors/index.mjs",require:"./build/errors/index.cjs"},"./jwt":{"import":"./build/jwt/index.mjs",require:"./build/jwt/index.cjs"},"./requests":{"import":"./build/requests/index.mjs",require:"./build/requests/index.cjs"},"./types":{"import":"./build/types/index.mjs",require:"./build/types/index.cjs"}};const packageManager="yarn@3.0.2";const type="module";const repository={type:"git",url:"https://github.com/cuenca-mx/cuenca-js.git",directory:"packages/cuenca-js"};const keywords=["cuenca"];const license="MIT";const bugs={url:"https://github.com/cuenca-mx/cuenca-js/issues"};const homepage="https://cuenca.com";const scripts={build:"rm -rf build/ && yarn rollup --config",test:"yarn node --experimental-vm-modules $(yarn bin jest)",publish:"yarn build && yarn npm publish"};const devDependencies={"@rollup/plugin-json":"^4.1.0","@rollup/plugin-node-resolve":"^13.1.1",jest:"^27.4.5",rollup:"^2.61.1","rollup-plugin-terser":"^7.0.2"};const dependencies={axios:"^0.24.0",buffer:"^6.0.3"};var pkg = {name:name,version:version,description:description,main:main,module:module$1,browser:browser,files:files,exports:exports$1,packageManager:packageManager,type:type,repository:repository,keywords:keywords,license:license,bugs:bugs,homepage:homepage,scripts:scripts,devDependencies:devDependencies,dependencies:dependencies};
30
+ const name="@cuenca-mx/cuenca-js";const version="0.0.5-dev.7";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","form-data":"^4.0.0"};var pkg = {name:name,version:version,description:description,main:main,module:module$1,browser:browser,files:files,exports:exports$1,packageManager:packageManager,type:type,repository:repository,keywords:keywords,license:license,bugs:bugs,homepage:homepage,scripts:scripts,devDependencies:devDependencies,dependencies:dependencies};
30
31
 
31
32
  class Client {
32
33
  constructor({
@@ -133,8 +134,8 @@ class Client {
133
134
  return this.request({ endpoint, format, params });
134
135
  }
135
136
 
136
- async post({ endpoint, data }) {
137
- return this.request({ method: 'POST', endpoint, data });
137
+ async post({ endpoint, data, multipart }) {
138
+ return this.request({ method: 'POST', endpoint, data, multipart });
138
139
  }
139
140
 
140
141
  async patch({ endpoint, data }) {
@@ -150,13 +151,18 @@ class Client {
150
151
  data: data$1 = null,
151
152
  format = data.FileFormat.Json,
152
153
  method = 'GET',
154
+ multipart = false,
153
155
  params = null,
154
156
  }) {
155
- const headers = {
156
- 'Content-Type': 'application/json',
157
- Accept: `${format.value}`,
158
- };
159
-
157
+ let headers;
158
+ if (multipart) {
159
+ headers = data$1.getHeaders();
160
+ } else {
161
+ headers = {
162
+ 'Content-Type': 'application/json',
163
+ Accept: `application/${format.value}`,
164
+ };
165
+ }
160
166
  if (this.authHeader) {
161
167
  headers.Authorization = this.authHeader;
162
168
  }
@@ -175,7 +181,6 @@ class Client {
175
181
  }
176
182
  headers['X-Cuenca-Token'] = this.jwtToken.token;
177
183
  }
178
-
179
184
  const headersInterceptor = this.addHeadersToRequest(headers);
180
185
 
181
186
  const modifiedData = data$1;
@@ -628,6 +633,35 @@ class Deposit extends Transaction {
628
633
  });
629
634
  }
630
635
 
636
+ class File {
637
+ constructor({ extension, type, url, userId }) {
638
+ this.extension = extension;
639
+ this.type = data.enumValueFromString(data.KYCFileType, type);
640
+ this.url = url;
641
+ this.userId = userId;
642
+ }
643
+
644
+ static fromObject = ({ extension, type, url, ...obj }) =>
645
+ new File({ extension, type, url, userId: obj.user_id });
646
+ }
647
+
648
+ class KYCValidations {
649
+ constructor({ platformId, attemps, verificationId, filesUri }) {
650
+ this.attemps = attemps;
651
+ this.filesUri = filesUri;
652
+ this.platformId = platformId;
653
+ this.verificationId = verificationId;
654
+ }
655
+
656
+ static fromObject = ({ attemps, ...obj }) =>
657
+ new KYCValidations({
658
+ attemps,
659
+ filesUri: obj.files_uri,
660
+ platformId: obj.platform_id,
661
+ verificationId: obj.verification_id,
662
+ });
663
+ }
664
+
631
665
  class LoginToken {
632
666
  constructor({ id }) {
633
667
  this.id = id;
@@ -1100,6 +1134,8 @@ const getModelFromPath = (path, obj) => {
1100
1134
  card_validations: () => CardValidation.fromObject(obj),
1101
1135
  commissions: () => Commission.fromObject(obj),
1102
1136
  deposits: () => Deposit.fromObject(obj),
1137
+ files: () => File.fromObject(obj),
1138
+ kyc_validations: () => KYCValidations.fromObject(obj),
1103
1139
  login_tokens: () => LoginToken.fromObject(obj),
1104
1140
  savings: () => Saving.fromObject(obj),
1105
1141
  service_providers: () => ServiceProvider.fromObject(obj),
@@ -1165,6 +1201,19 @@ const Updateable = (SuperClass) =>
1165
1201
  }
1166
1202
  };
1167
1203
 
1204
+ const Uploadable = (SuperClass) =>
1205
+ class Uploadable extends SuperClass {
1206
+ async _upload(data) {
1207
+ const response = await this.client.post({
1208
+ endpoint: `/${this.path}`,
1209
+ data,
1210
+ multipart: true,
1211
+ });
1212
+ const model = getModelFromPath(this.path, response);
1213
+ return model;
1214
+ }
1215
+ };
1216
+
1168
1217
  const Deactivable = (SuperClass) =>
1169
1218
  class Deactivable extends SuperClass {
1170
1219
  async _deactivate(id, data) {
@@ -1481,7 +1530,7 @@ class DepositResource extends mix(Resource).with(Queryable, Retrievable) {
1481
1530
  }
1482
1531
  }
1483
1532
 
1484
- class FileResource extends mix(Resource).with(Downlodable) {
1533
+ class FileResource extends mix(Resource).with(Downlodable, Uploadable) {
1485
1534
  constructor(client) {
1486
1535
  super('files', Object, client);
1487
1536
  }
@@ -1490,6 +1539,28 @@ class FileResource extends mix(Resource).with(Downlodable) {
1490
1539
  const byteString = await this._download(id, data.FileFormat.Any);
1491
1540
  return byteString;
1492
1541
  }
1542
+
1543
+ async upload({ ...req }) {
1544
+ const request = new walletTransactionRequest.UploadRequest(req);
1545
+ const fileUpload = await this._upload(request.toFormData());
1546
+ return fileUpload;
1547
+ }
1548
+ }
1549
+
1550
+ class KYCValidationsResource extends mix(Resource).with(
1551
+ Creatable,
1552
+ Retrievable,
1553
+ Queryable,
1554
+ ) {
1555
+ constructor(client) {
1556
+ super('kyc_validations', Object, client);
1557
+ }
1558
+
1559
+ async create(userId = 'me') {
1560
+ const request = new walletTransactionRequest.KYCValidationsRequest(userId);
1561
+ const kycValidation = await this._create(request.toObject());
1562
+ return kycValidation;
1563
+ }
1493
1564
  }
1494
1565
 
1495
1566
  class LoginTokenResource extends mix(Resource).with(Creatable) {
@@ -1785,6 +1856,7 @@ class Cuenca {
1785
1856
  this.commissions = new CommissionResource(client);
1786
1857
  this.deposits = new DepositResource(client);
1787
1858
  this.files = new FileResource(client);
1859
+ this.kycValidations = new KYCValidationsResource(client);
1788
1860
  this.loginTokens = new LoginTokenResource(client);
1789
1861
  this.savings = new SavingResource(client);
1790
1862
  this.serviceProviders = new ServiceProviderResource(client);
package/build/index.mjs CHANGED
@@ -2,9 +2,10 @@ import axios from 'axios';
2
2
  import Buffer from 'buffer';
3
3
  import { CuencaResponseException, CuencaException, NoResultFound, MultipleResultsFound, InvalidPassword } from './errors/index.mjs';
4
4
  import { Jwt } from './jwt/index.mjs';
5
- import { P as Phase, F as FileFormat, d as dateToUTC, e as enumValueFromString, E as EntryType, T as TransactionStatus, C as CardFundingType, a as CardIssuer, b as CardStatus, c as CardType, f as CardErrorType, g as CardTransactionType, h as CommissionType, D as DepositNetwork, S as SavingCategory, i as ServiceProviderCategory, j as TransferNetwork, V as VerificationStatus, U as UserStatus, k as VerificationType, W as WalletTransactionType } from './data-86ddd935.mjs';
5
+ import { P as Phase, F as FileFormat, d as dateToUTC, e as enumValueFromString, E as EntryType, T as TransactionStatus, C as CardFundingType, a as CardIssuer, b as CardStatus, c as CardType, f as CardErrorType, g as CardTransactionType, h as CommissionType, D as DepositNetwork, K as KYCFileType, S as SavingCategory, i as ServiceProviderCategory, j as TransferNetwork, V as VerificationStatus, U as UserStatus, k as VerificationType, W as WalletTransactionType } from './data-86ddd935.mjs';
6
6
  import { A as Address, K as KYCFile, T as TOSAgreements, a as AccountQuery, b as ApiKeyQuery, B as BalanceEntryQuery, c as BillPaymentQuery, C as CardsQuery, d as CardTransactionQuery, Q as QueryParams, D as DepositQuery, W as WalletQuery, S as StatementQuery, e as TransferQuery, U as UserQuery, f as WalletTransactionQuery } from './identities-f01f7ffa.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, V as VerificationRequest, h as VerificationAttemptRequest, W as WalletTransactionRequest } from './walletTransactionRequest-fa24c85c.mjs';
7
+ import { A as ApiKeyUpdateRequest, a as ArpcRequest, C as CardActivationRequest, b as CardRequest, c as CardUpdateRequest, d as CardValidationRequest, U as UploadRequest, K as KYCValidationsRequest, S as SavingRequest, T as TransferRequest, e as UserCredentialRequest, f as UserCredentialUpdateRequest, g as UserLoginRequest, h as UserUpdateRequest, V as VerificationRequest, i as VerificationAttemptRequest, W as WalletTransactionRequest } from './walletTransactionRequest-180eb9ea.mjs';
8
+ import 'module';
8
9
 
9
10
  /* global window */
10
11
 
@@ -17,7 +18,7 @@ const isNode =
17
18
 
18
19
  const runtimeEnv = { isBrowser, isNode };
19
20
 
20
- const name="@cuenca-mx/cuenca-js";const version="0.0.5-dev.5";const description="Cuenca client for JS";const main="./build/index.cjs";const module="./build/index.mjs";const browser="./build/umd/cuenca.umd.js";const files=["build/**/*"];const exports={".":{"import":"./build/index.mjs",require:"./build/index.cjs"},"./errors":{"import":"./build/errors/index.mjs",require:"./build/errors/index.cjs"},"./jwt":{"import":"./build/jwt/index.mjs",require:"./build/jwt/index.cjs"},"./requests":{"import":"./build/requests/index.mjs",require:"./build/requests/index.cjs"},"./types":{"import":"./build/types/index.mjs",require:"./build/types/index.cjs"}};const packageManager="yarn@3.0.2";const type="module";const repository={type:"git",url:"https://github.com/cuenca-mx/cuenca-js.git",directory:"packages/cuenca-js"};const keywords=["cuenca"];const license="MIT";const bugs={url:"https://github.com/cuenca-mx/cuenca-js/issues"};const homepage="https://cuenca.com";const scripts={build:"rm -rf build/ && yarn rollup --config",test:"yarn node --experimental-vm-modules $(yarn bin jest)",publish:"yarn build && yarn npm publish"};const devDependencies={"@rollup/plugin-json":"^4.1.0","@rollup/plugin-node-resolve":"^13.1.1",jest:"^27.4.5",rollup:"^2.61.1","rollup-plugin-terser":"^7.0.2"};const dependencies={axios:"^0.24.0",buffer:"^6.0.3"};var pkg = {name:name,version:version,description:description,main:main,module:module,browser:browser,files:files,exports:exports,packageManager:packageManager,type:type,repository:repository,keywords:keywords,license:license,bugs:bugs,homepage:homepage,scripts:scripts,devDependencies:devDependencies,dependencies:dependencies};
21
+ const name="@cuenca-mx/cuenca-js";const version="0.0.5-dev.7";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","form-data":"^4.0.0"};var pkg = {name:name,version:version,description:description,main:main,module:module,browser:browser,files:files,exports:exports,packageManager:packageManager,type:type,repository:repository,keywords:keywords,license:license,bugs:bugs,homepage:homepage,scripts:scripts,devDependencies:devDependencies,dependencies:dependencies};
21
22
 
22
23
  class Client {
23
24
  constructor({
@@ -124,8 +125,8 @@ class Client {
124
125
  return this.request({ endpoint, format, params });
125
126
  }
126
127
 
127
- async post({ endpoint, data }) {
128
- return this.request({ method: 'POST', endpoint, data });
128
+ async post({ endpoint, data, multipart }) {
129
+ return this.request({ method: 'POST', endpoint, data, multipart });
129
130
  }
130
131
 
131
132
  async patch({ endpoint, data }) {
@@ -141,13 +142,18 @@ class Client {
141
142
  data = null,
142
143
  format = FileFormat.Json,
143
144
  method = 'GET',
145
+ multipart = false,
144
146
  params = null,
145
147
  }) {
146
- const headers = {
147
- 'Content-Type': 'application/json',
148
- Accept: `${format.value}`,
149
- };
150
-
148
+ let headers;
149
+ if (multipart) {
150
+ headers = data.getHeaders();
151
+ } else {
152
+ headers = {
153
+ 'Content-Type': 'application/json',
154
+ Accept: `application/${format.value}`,
155
+ };
156
+ }
151
157
  if (this.authHeader) {
152
158
  headers.Authorization = this.authHeader;
153
159
  }
@@ -166,7 +172,6 @@ class Client {
166
172
  }
167
173
  headers['X-Cuenca-Token'] = this.jwtToken.token;
168
174
  }
169
-
170
175
  const headersInterceptor = this.addHeadersToRequest(headers);
171
176
 
172
177
  const modifiedData = data;
@@ -619,6 +624,35 @@ class Deposit extends Transaction {
619
624
  });
620
625
  }
621
626
 
627
+ class File {
628
+ constructor({ extension, type, url, userId }) {
629
+ this.extension = extension;
630
+ this.type = enumValueFromString(KYCFileType, type);
631
+ this.url = url;
632
+ this.userId = userId;
633
+ }
634
+
635
+ static fromObject = ({ extension, type, url, ...obj }) =>
636
+ new File({ extension, type, url, userId: obj.user_id });
637
+ }
638
+
639
+ class KYCValidations {
640
+ constructor({ platformId, attemps, verificationId, filesUri }) {
641
+ this.attemps = attemps;
642
+ this.filesUri = filesUri;
643
+ this.platformId = platformId;
644
+ this.verificationId = verificationId;
645
+ }
646
+
647
+ static fromObject = ({ attemps, ...obj }) =>
648
+ new KYCValidations({
649
+ attemps,
650
+ filesUri: obj.files_uri,
651
+ platformId: obj.platform_id,
652
+ verificationId: obj.verification_id,
653
+ });
654
+ }
655
+
622
656
  class LoginToken {
623
657
  constructor({ id }) {
624
658
  this.id = id;
@@ -1091,6 +1125,8 @@ const getModelFromPath = (path, obj) => {
1091
1125
  card_validations: () => CardValidation.fromObject(obj),
1092
1126
  commissions: () => Commission.fromObject(obj),
1093
1127
  deposits: () => Deposit.fromObject(obj),
1128
+ files: () => File.fromObject(obj),
1129
+ kyc_validations: () => KYCValidations.fromObject(obj),
1094
1130
  login_tokens: () => LoginToken.fromObject(obj),
1095
1131
  savings: () => Saving.fromObject(obj),
1096
1132
  service_providers: () => ServiceProvider.fromObject(obj),
@@ -1156,6 +1192,19 @@ const Updateable = (SuperClass) =>
1156
1192
  }
1157
1193
  };
1158
1194
 
1195
+ const Uploadable = (SuperClass) =>
1196
+ class Uploadable extends SuperClass {
1197
+ async _upload(data) {
1198
+ const response = await this.client.post({
1199
+ endpoint: `/${this.path}`,
1200
+ data,
1201
+ multipart: true,
1202
+ });
1203
+ const model = getModelFromPath(this.path, response);
1204
+ return model;
1205
+ }
1206
+ };
1207
+
1159
1208
  const Deactivable = (SuperClass) =>
1160
1209
  class Deactivable extends SuperClass {
1161
1210
  async _deactivate(id, data) {
@@ -1472,7 +1521,7 @@ class DepositResource extends mix(Resource).with(Queryable, Retrievable) {
1472
1521
  }
1473
1522
  }
1474
1523
 
1475
- class FileResource extends mix(Resource).with(Downlodable) {
1524
+ class FileResource extends mix(Resource).with(Downlodable, Uploadable) {
1476
1525
  constructor(client) {
1477
1526
  super('files', Object, client);
1478
1527
  }
@@ -1481,6 +1530,28 @@ class FileResource extends mix(Resource).with(Downlodable) {
1481
1530
  const byteString = await this._download(id, FileFormat.Any);
1482
1531
  return byteString;
1483
1532
  }
1533
+
1534
+ async upload({ ...req }) {
1535
+ const request = new UploadRequest(req);
1536
+ const fileUpload = await this._upload(request.toFormData());
1537
+ return fileUpload;
1538
+ }
1539
+ }
1540
+
1541
+ class KYCValidationsResource extends mix(Resource).with(
1542
+ Creatable,
1543
+ Retrievable,
1544
+ Queryable,
1545
+ ) {
1546
+ constructor(client) {
1547
+ super('kyc_validations', Object, client);
1548
+ }
1549
+
1550
+ async create(userId = 'me') {
1551
+ const request = new KYCValidationsRequest(userId);
1552
+ const kycValidation = await this._create(request.toObject());
1553
+ return kycValidation;
1554
+ }
1484
1555
  }
1485
1556
 
1486
1557
  class LoginTokenResource extends mix(Resource).with(Creatable) {
@@ -1776,6 +1847,7 @@ class Cuenca {
1776
1847
  this.commissions = new CommissionResource(client);
1777
1848
  this.deposits = new DepositResource(client);
1778
1849
  this.files = new FileResource(client);
1850
+ this.kycValidations = new KYCValidationsResource(client);
1779
1851
  this.loginTokens = new LoginTokenResource(client);
1780
1852
  this.savings = new SavingResource(client);
1781
1853
  this.serviceProviders = new ServiceProviderResource(client);
@@ -2,9 +2,11 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var walletTransactionRequest = require('../walletTransactionRequest-720f296f.cjs');
5
+ var walletTransactionRequest = require('../walletTransactionRequest-ee4e5af1.cjs');
6
6
  require('../errors/index.cjs');
7
7
  require('../data-d25afb50.cjs');
8
+ require('buffer');
9
+ require('module');
8
10
 
9
11
 
10
12
 
@@ -14,6 +16,8 @@ exports.CardActivationRequest = walletTransactionRequest.CardActivationRequest;
14
16
  exports.CardRequest = walletTransactionRequest.CardRequest;
15
17
  exports.CardUpdateRequest = walletTransactionRequest.CardUpdateRequest;
16
18
  exports.CardValidationRequest = walletTransactionRequest.CardValidationRequest;
19
+ exports.FileUploadRequest = walletTransactionRequest.UploadRequest;
20
+ exports.KYCValidationsRequeest = walletTransactionRequest.KYCValidationsRequest;
17
21
  exports.SavingRequest = walletTransactionRequest.SavingRequest;
18
22
  exports.TransferRequest = walletTransactionRequest.TransferRequest;
19
23
  exports.UserCredentialRequest = walletTransactionRequest.UserCredentialRequest;
@@ -1,3 +1,5 @@
1
- export { A as ApiKeyUpdateRequest, a as ArpcRequest, C as CardActivationRequest, b as CardRequest, c as CardUpdateRequest, d as CardValidationRequest, S as SavingRequest, T as TransferRequest, U as UserCredentialRequest, e as UserCredentialUpdateRequest, f as UserLoginRequest, g as UserUpdateRequest, h as VerificationAttemptRequest, V as VerificationRequest, W as WalletTransactionRequest } from '../walletTransactionRequest-fa24c85c.mjs';
1
+ export { A as ApiKeyUpdateRequest, a as ArpcRequest, C as CardActivationRequest, b as CardRequest, c as CardUpdateRequest, d as CardValidationRequest, U as FileUploadRequest, K as KYCValidationsRequeest, S as SavingRequest, T as TransferRequest, e as UserCredentialRequest, f as UserCredentialUpdateRequest, g as UserLoginRequest, h as UserUpdateRequest, i as VerificationAttemptRequest, V as VerificationRequest, W as WalletTransactionRequest } from '../walletTransactionRequest-180eb9ea.mjs';
2
2
  import '../errors/index.mjs';
3
3
  import '../data-86ddd935.mjs';
4
+ import 'buffer';
5
+ import 'module';
@@ -1 +1 @@
1
- !function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("axios"),require("buffer")):"function"==typeof define&&define.amd?define(["exports","axios","buffer"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).cuenca={},t.axios,t.Buffer)}(this,(function(t,e,s){"use strict";function i(t){return t&&"object"==typeof t&&"default"in t?t:{default:t}}var r=i(e),a=i(s);class n extends Error{constructor(t){super(t),Object.setPrototypeOf(this,n.prototype)}}class c extends n{constructor(t,e){super(`Cuenca Response Error: ${e}`),this.name="CuencaResponseError",this.data=t,this.status=e,Object.setPrototypeOf(this,c.prototype)}}class o extends n{constructor(){super("No results were found"),this.name="NoResultFound",Object.setPrototypeOf(this,o.prototype)}}class d extends n{constructor(){super("One result was expected but multiple were found"),this.name="MultipleResultsFound",Object.setPrototypeOf(this,d.prototype)}}class u extends n{constructor(){super("An invalid JWT token was obtained during authentication"),this.name="MalformedJwtToken",Object.setPrototypeOf(this,u.prototype)}}class h extends n{constructor(){super("Invalid password"),this.name="InvalidPassword",Object.setPrototypeOf(this,h.prototype)}}class p extends Error{constructor(t){super(t),Object.setPrototypeOf(this,p.prototype)}}const l="undefined"!=typeof window&&void 0!==window.document,m="undefined"!=typeof process&&"[object process]"===Object.prototype.toString.call(process),w=l,_=m;class f{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=f.getExpirationDate(i);return new f(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 v{static Credit=new v("credit");static Debit=new v("debit");constructor(t){this.value=t}}class y{static Accendo=new y("accendo");static Cuenca=new y("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 A{static Physical=new A("physical");static Virtual=new A("virtual");constructor(t){this.value=t}}class j{static CardRequest=new j("card_request");static CashDeposit=new j("cash_deposit");static OutgoingSpei=new j("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("application/pdf");static Xml=new k("application/xml");static Json=new k("application/json");static Any=new k("*/*");constructor(t){this.value=t}}class T{static Ine=new T("ine");static Passport=new T("passport");static Residency=new T("residency");static MatriculaConsular=new T("matricula_consular");static ProofOfLiveness=new T("proof_of_liveness");static ProofOfAddress=new T("proof_of_address");constructor(t){this.value=t}}class N{static UploadAgain=new N("upload_again");static ReviewNeeded=new N("review_needed");static Submitted=new N("submitted");static Succeeded=new N("succeeded");constructor(t){this.value=t}}class C{static Sandbox=new C("sandbox");static Stage=new C("stage");static Api=new C("api");constructor(t){this.value=t}}class S{static Cable=new S("cable");static CreditCard=new S("credit_card");static Electricity=new S("electricity");static Gas=new S("gas");static Internet=new S("internet");static LandlineTelephone=new S("landline_telephone");static MobileTelephonePostpaid=new S("mobile_telephone_postpaid");static MobileTelephonePrepaid=new S("mobile_telephone_prepaid");static SateliteTelevision=new S("satelite_television");static Water=new S("water");constructor(t){this.value=t}}class U{static General=new U("general");static Home=new U("home");static Vehicle=new U("vehicle");static Travel=new U("travel");static Clothing=new U("clothing");static Other=new U("other");static Medical=new U("medical");static Accident=new U("accident");static Education=new U("education");constructor(t){this.value=t}}class P{static NotSet=new P("not_set");static Terminal=new P("terminal");static Manual=new P("manual");static Unknown=new P("unknown");static Contactless=new P("contactless");static FallBack=new P("fall_back");static MagneticStripe=new P("magnetic_stripe");static RecurringCharge=new P("recurring_charge");constructor(t){this.value=t}}class q{static Created=new q("created");static Failed=new q("failed");static InReview=new q("in_review");static Submitted=new q("submitted");static Succeeded=new q("succeeded");constructor(t){this.value=t}}class ${static Internal=new $("internal");static Spei=new $("spei");constructor(t){this.value=t}}class E{static Active=new E("active");static Deactivated=new E("deactivated");static Fraud=new E("fraud");static PldBlocked=new E("pld_blocked");constructor(t){this.value=t}}class K{static Created=new K("created");static NotVerified=new K("not_verified");static Rejected=new K("rejected");static ReviewNeeded=new K("review_needed");static UploadAgain=new K("upload_again");static Submitted=new K("submitted");static Succeeded=new K("succeeded");constructor(t){this.value=t}}class B{static Phone=new B("phone");static Email=new B("email");constructor(t){this.value=t}}class D{static Deposit=new D("deposit");static Withdrawal=new D("withdrawal");constructor(t){this.value=t}}const M=t=>{if(!t)return null;const e=new Date(t);return new Date(e.getTime())},L=(t,e)=>Object.values(t).find((t=>t.value===e));class V{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 R extends V{constructor({accountNumber:t,...e}){super(e),this.accountNumber=t}toObject(){return Object.assign(super.toObject(),{account_number:this.accountNumber})}}class Y extends V{constructor({active:t,...e}){super(e),this.active=t}toObject(){return Object.assign(super.toObject(),{active:this.active})}}class H extends V{constructor({status:t,...e}){super(e),this.status=t}toObject(){return Object.assign(super.toObject(),{status:this.status})}}class F extends H{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 z extends H{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 X extends V{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 Q extends V{constructor({accountNumber:t,...e}){super(e),this.accountNumber=t}toObject(){return Object.assign(super.toObject(),{account_number:this.accountNumber})}}class J extends V{constructor({cardUri:t,...e}){super(e),this.cardUri=t}toObject(){return Object.assign(super.toObject(),{card_uri:this.cardUri})}}class W extends V{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 G extends V{constructor({walletUri:t,...e}){super(e),this.walletUri=t}toObject(){return Object.assign(super.toObject(),{wallet_uri:this.walletUri})}}class Z extends V{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 tt extends V{constructor({active:t,...e}){super(e),this.active=t}toObject(){return Object.assign(super.toObject(),{active:this.active})}}class et extends V{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=M(Date.now());s.setUTCDate(1);if(M(`${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 st{constructor({ip:t,location:e,type:s,version:i}){this.ip=t,this.location=e,this.type=s,this.version=i}static fromObject=({ip:t,location:e,type:s,version:i})=>new st({ip:t,location:e,type:s,version:i})}class it{constructor({code:t,error:e,identifier:s,message:i}){this.code=t,this.error=e,this.identifier=s,this.message=i}static fromObject=({code:t,error:e,identifier:s,message:i})=>new it({code:t,error:e,identifier:s,message:i})}class rt{constructor({data:t,errors:e,isMx:s,status:i,type:r,uriBack:a,uriFront:n}){this.data=t,this.isMx=s,this.status=L(N,i),this.type=L(T,r),this.uriBack=a,this.uriFront=n,e&&e.length>0&&(this.errors=e.map((t=>it.fromObject(t))))}static fromObject=({data:t,errors:e,status:s,type:i,...r})=>new rt({data:t,errors:e,status:s,type:i,isMx:r.is_mx,uriBack:r.uri_back,uriFront:r.uri_front})}class at{constructor({city:t,country:e,createdAt:s,extNumber:i,fullName:r,intNumber:a,postalCode:n,state:c,street:o}){this.city=t,this.country=e,this.createdAt=M(s),this.extNumber=i,this.fullName=r,this.intNumber=a,this.postalCode=n,this.state=c,this.street=o}static fromObject=({city:t,country:e,state:s,street:i,...r})=>new at({city:t,country:e,state:s,street:i,createdAt:r.created_at,extNumber:r.ext_number,fullName:r.full_name,intNumber:r.int_number,postalCode:r.postal_code})}var nt="0.0.5-dev.5";class ct{constructor({apiKey:t,apiSecret:e,language:s="en",phase:i=C.Sandbox}={}){this.phase=i,this.basicAuth={apiKey:t,apiSecret:e},this.jwtToken=null,this._session=r.default.create({headers:{"Accept-Language":s},timeout:45e3})}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 f.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={"Content-Type":"application/json",Accept:`${s.value}`};this.authHeader&&(a.Authorization=this.authHeader),_?a["User-Agent"]=`cuenca-js/${nt}`:w&&(a["X-User-Agent"]=`cuenca-js/${nt}`),this.jwtToken&&(this.jwtToken.isExpired&&(this.jwtToken=await f.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 ot{constructor({accountNumber:t,createdAt:e,id:s,institutionName:i,name:r,userId:a}){this.accountNumber=t,this.createdAt=M(e),this.id=s,this.institutionName=i,this.name=r,this.userId=a}static fromObject=({id:t,name:e,...s})=>new ot({id:t,name:e,accountNumber:s.account_number,createdAt:s.created_at,institutionName:s.institution_name,userId:s.user_id})}class dt{constructor({createdAt:t,deactivatedAt:e,id:s,secret:i,userId:r,updatedAt:a}){this.createdAt=M(t),this.deactivatedAt=M(e),this.id=s,this.secret=i,this.userId=r,this.updatedAt=M(a)}static fromObject=({id:t,secret:e,...s})=>new dt({id:t,secret:e,createdAt:s.created_at,deactivatedAt:s.deactivated_at,userId:s.user_id,updatedAt:s.updated_at});get isActive(){const t=M(Date.now());return!this.deactivatedAt||this.deactivatedAt.getTime()>t.getTime()}}class ut{constructor({arpc:t,createdAt:e,cardUri:s,isValidArqc:i}){this.arpc=t,this.createdAt=M(e),this.cardUri=s,this.isValidArqc=i}static fromObject=({arpc:t,...e})=>new ut({arpc:t,createdAt:e.created_at,cardUri:e.card_uri,isValidArqc:e.is_valid_arqc})}class ht{constructor({amount:t,createdAt:e,descriptor:s,entryType:i,fundingInstrumentUri:r,id:a,name:n,relatedTransactionUri:c,rollingBalance:o}){this.amount=t,this.createdAt=M(e),this.descriptor=s,this.entryType=L(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 ht({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 pt{constructor({amount:t,createdAt:e,descriptor:s,status:i,userId:r}){this.amount=t,this.createdAt=M(e),this.descriptor=s,this.status=L(q,i),this.userId=r}}class lt extends pt{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 lt({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 mt{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=M(t),this.cvv2=e,this.expMonth=s,this.expYear=i,this.fundingType=L(v,r),this.id=a,this.issuer=L(y,n),this.number=c,this.pin=o,this.status=L(g,d),this.type=L(A,u),this.updatedAt=M(h),this.userId=p}static fromObject=({cvv2:t,id:e,issuer:s,number:i,pin:r,status:a,type:n,...c})=>new mt({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 wt{constructor({cardUri:t,createdAt:e,id:s,ipAddress:i,success:r,userId:a}){this.cardUri=t,this.createdAt=M(e),this.id=s,this.ipAddress=i,this.success=r,this.userId=a}static fromObject=({id:t,success:e,...s})=>new wt({id:t,success:e,cardUri:s.card_uri,createdAt:s.created_at,ipAddress:s.ip_address,userId:s.user_id})}class _t extends pt{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=L(b,e),this.cardLastFour=s,this.cardType=L(A,i),this.cardUri=r,this.metadata=c,this.network=o,this.relatedCardTransactionsUris=d,this.type=L(O,h)}static fromObject=({amount:t,descriptor:e,metadata:s,network:i,status:r,type:a,...n})=>new _t({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 ft{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=L(g,t),this.cardType=L(A,e),this.cardUri=s,this.createdAt=M(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 ft({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 bt extends pt{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=L(j,a)}static fromObject=({amount:t,descriptor:e,status:s,type:i,...r})=>new bt({amount:t,descriptor:e,status:s,type:i,createdAt:r.created_at,relatedTransactionUri:r.related_transaction_uri,userId:r.user_id})}class vt extends pt{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=L(x,r),this.sourceUri=n,this.trackingKey=c}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,sourceUri:a.source_uri,trackingKey:a.tracking_key,userId:a.user_id})}class yt{constructor({id:t}){this.id=t}static fromObject=({id:t})=>new yt({id:t})}class gt extends class{constructor({balance:t,createdAt:e,deactivatedAt:s,id:i,userId:r,updatedAt:a}){this.balance=t,this.createdAt=M(e),this.deactivatedAt=M(s),this.id=i,this.userId=r,this.updatedAt=M(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=L(U,e),this.goalAmount=r,this.goalDate=M(a),this.name=c}static fromObject=({balance:t,category:e,id:s,name:i,...r})=>new gt({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 Ot{constructor({categories:t,id:e,name:s,providerKey:i}){var r;this.categories=null==(r=t)?[]:r.map((t=>L(S,t))),this.id=e,this.name=s,this.providerKey=i}static fromObject=({categories:t,id:e,name:s,...i})=>new Ot({categories:t,id:e,name:s,providerKey:i.provider_key})}class At{constructor({createdAt:t,id:e,month:s,year:i}){this.createdAt=M(t),this.id=e,this.month=s,this.year=i}static fromObject=({id:t,month:e,year:s,...i})=>new At({id:t,month:e,year:s,createdAt:i.created_at})}class jt extends pt{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=L($,c),this.recipientName=o,this.trackingKey=u,this.updatedAt=M(h)}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,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 xt{constructor({address:t,blacklistValidationStatus:e,clabe:s,countryOfBirth:i,createdAt:r,curp:a,dateOfBirth:n,emailAddress:c,firstSurname:o,gender:d,govtId:u,id:h,level:p,names:l,nationality:m,phoneNumber:w,proofOfAddress:_,proofOfLife:f,requiredLevel:b,rfc:v,secondSurname:y,stateOfBirth:g,status:O,termsOfService:A,updatedAt:j,verificationId:x}){this.add=t,this.blacklistValidationStatus=L(K,e),this.clabe=s,this.countryOfBirth=i,this.createdAt=M(r),this.curp=a,this.dateOfBirth=n,this.emailAddress=c,this.firstSurname=o,this.gender=d,this.govstIds=u,this.id=h,this.level=p,this.names=l,this.nationality=m,this.phoneNumber=w,this.addressProofs=_,this.lifeProofs=f,this.requiredLevel=b,this.rfc=v,this.secondSurname=y,this.stateOfBirth=g,this.status=L(E,O),this.terms=A,this.updatedAt=M(j),this.verificationId=x}get address(){return this._address}set add(t){t&&(this._address=at.fromObject(t))}get proofOfAddress(){return this._proofOfAddress}set addressProofs(t){t&&(this._proofOfAddress=rt.fromObject(t))}get proofOfLife(){return this._proofOfLife}set lifeProofs(t){t&&(this._proofOfLife=rt.fromObject(t))}get govtId(){return this._govtId}set govstIds(t){t&&(this._govtId=rt.fromObject(t))}get termsOfService(){return this._termsOfService}set terms(t){t&&(this._termsOfService=st.fromObject(t))}static fromObject=({address:t,clabe:e,curp:s,gender:i,id:r,level:a,names:n,nationality:c,rfc:o,status:d,...u})=>new xt({address:t,clabe:e,curp:s,gender:i,id:r,level:a,names:n,nationality:c,rfc:o,status:d,blacklistValidationStatus:u.blacklist_validation_status,countryOfBirth:u.country_of_birth,createdAt:u.created_at,dateOfBirth:u.date_of_birth,emailAddress:u.email_address,firstSurname:u.first_surname,govtId:u.govt_id,phoneNumber:u.phone_number,proofOfAddress:u.proof_of_address,proofOfLife:u.proof_of_life,requiredLevel:u.required_level,secondSurname:u.second_surname,stateOfBirth:u.state_of_birth,termsOfService:u.terms_of_service,updatedAt:u.updated_at,verificationId:u.verification_id})}class It{constructor({createdAt:t,id:e,isActive:s,updatedAt:i}){this.createdAt=M(t),this.id=e,this.isActive=s,this.updatedAt=M(i)}static fromObject=({id:t,...e})=>new It({id:t,createdAt:e.created_at,isActive:e.is_active,updatedAt:e.updated_at})}class kt{constructor({id:t,lastLoginAt:e,success:s}){this.id=t,this.lastLoginAt=M(e),this.success=s}static fromObject=({id:t,success:e,...s})=>new kt({id:t,success:e,lastLoginAt:s.last_login_at})}class Tt{constructor({createdAt:t,id:e,platformId:s,recipient:i,type:r,updatedAt:a}){this.createdAt=M(t),this.id=e,this.platformId=s,this.recipient=i,this.type=L(B,r),this.updatedAt=M(a)}static fromObject=({id:t,recipient:e,type:s,...i})=>new Tt({id:t,recipient:e,type:s,createdAt:i.created_at,platformId:i.platform_id,updatedAt:i.updated_at})}class Nt extends pt{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=L(D,a),this.walletUri=c}static fromObject=({amount:t,descriptor:e,id:s,status:i,...r})=>new Nt({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 Ct extends pt{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=M(a),this.network=L($,c),this.phoneNumber=o,this.recipientName=d,this.trackingKey=h,this.updatedAt=M(p)}static fromObject=({amount:t,descriptor:e,id:s,network:i,status:r,...a})=>new Ct({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 St{constructor(t){this.superclass=t}with(...t){return t.reduce(((t,e)=>e(t)),this.superclass)}}const Ut=t=>new St(t),Pt=(t,e)=>({accounts:()=>ot.fromObject(e),api_keys:()=>dt.fromObject(e),arpc:()=>ut.fromObject(e),balance_entries:()=>ht.fromObject(e),bill_payments:()=>lt.fromObject(e),cards:()=>mt.fromObject(e),card_activations:()=>wt.fromObject(e),card_transactions:()=>_t.fromObject(e),card_validations:()=>ft.fromObject(e),commissions:()=>bt.fromObject(e),deposits:()=>vt.fromObject(e),login_tokens:()=>yt.fromObject(e),savings:()=>gt.fromObject(e),service_providers:()=>Ot.fromObject(e),statements:()=>At.fromObject(e),transfers:()=>jt.fromObject(e),users:()=>xt.fromObject(e),user_credentials:()=>It.fromObject(e),user_logins:()=>kt.fromObject(e),verifications:()=>Tt.fromObject(e),wallet_transactions:()=>Nt.fromObject(e),whatsapp_transfers:()=>Ct.fromObject(e)}[t]()),qt=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 Et=t=>class extends t{async retrieve(t){const e=await this.client.get({endpoint:`/${this.path}/${t}`});return Pt(this.path,e)}},Kt=t=>class extends t{async _create(t){const e=await this.client.post({endpoint:`/${this.path}`,data:t});return Pt(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 Pt(this.path,s)}},Dt=t=>class extends t{async _deactivate(t,e){const s=await this.client.delete({endpoint:`/${this.path}/${t}`,data:e});return Pt(this.path,s)}},Mt=t=>class extends t{async _download(t,e){const s=this.client.addConfigToRequest({responseType:"stream"}),i=await this.client.get({endpoint:`/${this.path}/${t}`,format:e});return s.eject(),i}},Lt=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 Pt(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 Pt(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=Pt(this.path,e);yield t}e=t.next_page_uri}}};class Vt extends(Ut($t).with(Lt,Et)){constructor(t){super("accounts",R,t)}}class Rt{toObject(){return{}}toCleanObject(){const t=this.toObject();return Object.keys(t).forEach((e=>{null==t[e]&&delete t[e]})),t}}class Yt extends Rt{constructor(t,e){super(),this.userId=t,this.metadata=e}toObject(){return{user_id:this.userId,metadata:this.metadata}}}class Ht extends Rt{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 Ft extends Rt{constructor(t,e){super(),this.status=t,this.pinBlock=e}toObject(){return{status:this.status,pin_block:this.pinBlock}}}class zt extends Rt{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 Xt extends Rt{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 Qt extends Rt{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(M(t).getTime()<=M(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 Jt extends Rt{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 Wt extends Rt{constructor(t){super(),this.pwd=t}get password(){return this._password}set pwd(t){if([!!t,t.length>=6].some((t=>!t)))throw new p("Invalid password");this._password=t}toObject(){return{password:this.password}}}class Gt extends Rt{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([t.length>=6].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 Zt extends Rt{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 te extends Rt{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 ee extends Rt{constructor({city:t,country:e,extNumber:s,intNumber:i,postalCode:r,state:a,street:n}={}){super(),this.city=t,this.country=e,this.extNumber=s,this.intNumber=i,this.postalCode=r,this.state=a,this.street=n}toObject(){return{city:this.city,country:this.country,ext_number:this.extNumber,int_number:this.intNumber,postal_code:this.postalCode,state:this.state,street:this.street}}}class se extends Rt{constructor({address:t,profession:e,requiredLevel:s,termsOfService:i,verificationId:r}){super(),this.adrs=t,this.profession=e,this.requiredLevel=s,this.terms=i,this.verificationId=r}get termsOfService(){return this._termsOfService}set terms(t){t&&(this._termsOfService=new te(t).toObject())}get address(){return this._address}set adrs(t){t&&(this._address=new ee(t).toCleanObject())}toObject(){return{address:this.address,profession:this.profession,requiredLevel:this.requiredLevel,terms_of_service:this.termsOfService,verification_id:this.verificationId}}}class ie extends Rt{constructor({platformId:t,recipient:e,type:s}){super(),this.platformId=t,this.type=s,this.recipients=e}get recipient(){return this._recipient}set recipients(t){switch(L(B,this.type)){case B.Email:if(!t.match(/^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/))throw new p("Invalid email address");this._recipient=t;break;case B.Phone:if(!t.match(/^\+?[0-9]{10,15}$/))throw new p("Invalid Phone Number");this._recipient=t}}toObject(){return{platform_id:this.platformId,recipient:this.recipient,type:this.type}}}class re extends Rt{constructor({code:t}){super(),this.code=t}toObject(){return{code:this.code}}}class ae extends Rt{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 ne extends(Ut($t).with(Kt,Dt,Lt,Et,Bt)){constructor(t){super("api_keys",Y,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 Yt(s,e);return await this._update(t,i.toCleanObject())}}Ut($t).with(Kt);class ce extends(Ut($t).with(Lt,Et)){constructor(t){super("balance_entries",X,t)}async relatedTransaction(t){const e=qt(t);if(null==e)return null;const s=await this.client.get({endpoint:t});return Pt(`${e}`,s)}async fundingInstrument(t){const e=qt(t);if(null==e)return null;const s=await this.client.get({endpoint:t});return Pt(`${e}`,s)}}class oe extends(Ut($t).with(Lt,Et)){constructor(t){super("bill_payments",Q,t)}async serviceProvider(t){const e=qt(t);if(null==e)return null;const s=await this.client.get({endpoint:t});return Pt(`${e}`,s)}}class de extends(Ut($t).with(Kt)){constructor(t){super("card_activations",Object,t)}async create({number:t,expMonth:e,expYear:s,cvv2:i}){const r=new zt(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 mt.fromObject(e)}}class ue extends(Ut($t).with(Kt,Dt,Lt,Et,Bt)){constructor(t){super("cards",W,t)}async create(t,e,s){const i=new Ht(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 Ft(e,s);return await this._update(t,i.toCleanObject())}}class he extends(Ut($t).with(Lt,Et)){constructor(t){super("card_transactions",J,t)}async relatedCard(t){const e=qt(t);if(null==e)return null;const s=await this.client.get({endpoint:t});return Pt(`${e}`,s)}}class pe extends(Ut($t).with(Kt)){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 Xt({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 mt.fromObject(e)}}class le extends(Ut($t).with(Lt,Et)){constructor(t){super("commissions",V,t)}async relatedTransaction(t){const e=qt(t);if(null==e)return null;const s=await this.client.get(t);return Pt(`${e}`,s)}}class me extends(Ut($t).with(Lt,Et)){constructor(t){super("deposits",F,t)}async source(t){const e=await this.client.get({endpoint:t});return ot.fromObject(e)}}class we extends(Ut($t).with(Mt)){constructor(t){super("files",Object,t)}async download(t){return await this._download(t,k.Any)}}class _e extends(Ut($t).with(Kt)){constructor(t){super("login_tokens",Object,t)}async create(){return await this._create()}}class fe extends(Ut($t).with(Kt,Dt,Lt,Et,Bt)){constructor(t){super("savings",tt,t)}async create(t,e,s,i){const r=new Qt(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 Qt(e,s,i,r);return await this._update(t,a.toObject())}}class be extends(Ut($t).with(Lt,Et)){constructor(t){super("service_providers",V,t)}}class ve extends(Ut($t).with(Mt,Lt)){constructor(t){super("statements",et,t)}async pdf(t){return await this._download(t,k.Pdf)}async xml(t){return await this._download(t,k.Xml)}}class ye extends(Ut($t).with(Kt,Lt,Et)){constructor(t){super("transfers",z,t)}async destination(t){const e=await this.client.get({endpoint:t});return ot.fromObject(e)}async create({accountNumber:t,amount:e,descriptor:s,recipientName:i,idempotencyKey:r}){const a=r||this.constructor._genIdempotencyKey(t,e),n=new Jt(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 Jt(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]=M(Date.now()).toISOString().split("T");return`${s}:${t}:${e}`}}class ge extends(Ut($t).with(Kt,Bt)){constructor(t){super("user_credentials",Object,t)}async create(t){const e=new Wt(t);return await this._create(e.toObject())}async update({isActive:t,password:e,userId:s="me"}){const i=new Gt(e,t);return await this._update(s,i.toCleanObject())}}class Oe extends(Ut($t).with(Kt,Dt)){constructor(t){super("user_logins",Object,t),this.loginIdInHeaders=null}async create(t,e){const s=new Zt(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(Ut($t).with(Lt,Bt,Et)){constructor(t){super("users",Z,t)}async update({userId:t="me",...e}){const s=new se(e);return await this._update(t,s.toCleanObject())}}class je extends(Ut($t).with(Kt,Bt)){constructor(t){super("verifications",Object,t)}async create({platformId:t,recipient:e,type:s}){const i=new ie({platformId:t,recipient:e,type:s});return await this._create(i.toObject())}async update({code:t,id:e}){const s=new re({code:t});return await this._update(e,s.toObject())}}class xe extends(Ut($t).with(Kt,Lt,Et)){constructor(t){super("wallet_transactions",G,t)}async create(t,e,s){const i=new ae(t,e,s);return await this._create(i.toObject())}async realtedWallet(t){const e=qt(t);if(null==e)return null;const s=await this.client.get(t);return Pt(`${e}`,s)}}class Ie extends(Ut($t).with(Lt,Et)){constructor(t){super("whatsapp_transfers",V,t)}async accountDestination(t){const e=qt(t);if(null==e)return null;const s=await this.client.get(t);return Pt(`${e}`,s)}}t.Cuenca=class{constructor({apiKey:t,apiSecret:e,language:s="en",phase:i=C.Sandbox}={}){this.client=new ct({apiKey:t,apiSecret:e,language:s,phase:i}),this.withClient(this.client)}withClient(t){this.accounts=new Vt(t),this.apiKeys=new ne(t),this.balanceEntries=new ce(t),this.billPayments=new oe(t),this.cardActivations=new de(t),this.cards=new ue(t),this.cardTransactions=new he(t),this.cardValidations=new pe(t),this.commissions=new le(t),this.deposits=new me(t),this.files=new we(t),this.loginTokens=new _e(t),this.savings=new fe(t),this.serviceProviders=new be(t),this.statements=new ve(t),this.transfers=new ye(t),this.userCredentials=new ge(t),this.userLogins=new Oe(t),this.users=new Ae(t),this.verifications=new je(t),this.walletTransactions=new xe(t),this.whatsAppTransfers=new Ie(t)}}}));
1
+ !function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("axios"),require("buffer"),require("module")):"function"==typeof define&&define.amd?define(["exports","axios","buffer","module"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).cuenca={},t.axios,t.Buffer,t.module$1)}(this,(function(t,e,s,i){"use strict";function r(t){return t&&"object"==typeof t&&"default"in t?t:{default:t}}var a=r(e),n=r(s);class c extends Error{constructor(t){super(t),Object.setPrototypeOf(this,c.prototype)}}class o extends c{constructor(t,e){super(`Cuenca Response Error: ${e}`),this.name="CuencaResponseError",this.data=t,this.status=e,Object.setPrototypeOf(this,o.prototype)}}class d extends c{constructor(){super("No results were found"),this.name="NoResultFound",Object.setPrototypeOf(this,d.prototype)}}class u extends c{constructor(){super("One result was expected but multiple were found"),this.name="MultipleResultsFound",Object.setPrototypeOf(this,u.prototype)}}class h extends c{constructor(){super("An invalid JWT token was obtained during authentication"),this.name="MalformedJwtToken",Object.setPrototypeOf(this,h.prototype)}}class p extends c{constructor(){super("Invalid password"),this.name="InvalidPassword",Object.setPrototypeOf(this,p.prototype)}}class l extends Error{constructor(t){super(t),Object.setPrototypeOf(this,l.prototype)}}const m="undefined"!=typeof window&&void 0!==window.document,w="undefined"!=typeof process&&"[object process]"===Object.prototype.toString.call(process),f=m,_=w;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(n.default.Buffer.from(`${s}==`,"base64").toString())}catch(t){throw new h}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 O{static Active=new O("active");static Blocked=new O("blocked");static Created=new O("created");static Deactivated=new O("deactivated");static Printing=new O("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 I{static Cash=new I("cash");static Internal=new I("internal");static Spei=new I("spei");constructor(t){this.value=t}}class k{static Credit=new k("credit");static Debit=new k("debit");constructor(t){this.value=t}}class T{static Pdf=new T("application/pdf");static Xml=new T("application/xml");static Json=new T("application/json");static Any=new T("*/*");constructor(t){this.value=t}}class C{static Ine=new C("ine");static Passport=new C("passport");static Residency=new C("residency");static MatriculaConsular=new C("matricula_consular");static ProofOfLiveness=new C("proof_of_liveness");static ProofOfAddress=new C("proof_of_address");constructor(t){this.value=t}}class N{static UploadAgain=new N("upload_again");static ReviewNeeded=new N("review_needed");static Submitted=new N("submitted");static Succeeded=new N("succeeded");constructor(t){this.value=t}}class U{static Sandbox=new U("sandbox");static Stage=new U("stage");static Api=new U("api");constructor(t){this.value=t}}class S{static Cable=new S("cable");static CreditCard=new S("credit_card");static Electricity=new S("electricity");static Gas=new S("gas");static Internet=new S("internet");static LandlineTelephone=new S("landline_telephone");static MobileTelephonePostpaid=new S("mobile_telephone_postpaid");static MobileTelephonePrepaid=new S("mobile_telephone_prepaid");static SateliteTelevision=new S("satelite_television");static Water=new S("water");constructor(t){this.value=t}}class q{static General=new q("general");static Home=new q("home");static Vehicle=new q("vehicle");static Travel=new q("travel");static Clothing=new q("clothing");static Other=new q("other");static Medical=new q("medical");static Accident=new q("accident");static Education=new q("education");constructor(t){this.value=t}}class P{static NotSet=new P("not_set");static Terminal=new P("terminal");static Manual=new P("manual");static Unknown=new P("unknown");static Contactless=new P("contactless");static FallBack=new P("fall_back");static MagneticStripe=new P("magnetic_stripe");static RecurringCharge=new P("recurring_charge");constructor(t){this.value=t}}class ${static Created=new $("created");static Failed=new $("failed");static InReview=new $("in_review");static Submitted=new $("submitted");static Succeeded=new $("succeeded");constructor(t){this.value=t}}class B{static Internal=new B("internal");static Spei=new B("spei");constructor(t){this.value=t}}class D{static Active=new D("active");static Deactivated=new D("deactivated");static Fraud=new D("fraud");static PldBlocked=new D("pld_blocked");constructor(t){this.value=t}}class E{static Created=new E("created");static NotVerified=new E("not_verified");static Rejected=new E("rejected");static ReviewNeeded=new E("review_needed");static UploadAgain=new E("upload_again");static Submitted=new E("submitted");static Succeeded=new E("succeeded");constructor(t){this.value=t}}class K{static Phone=new K("phone");static Email=new K("email");constructor(t){this.value=t}}class M{static Deposit=new M("deposit");static Withdrawal=new M("withdrawal");constructor(t){this.value=t}}const L=t=>{if(!t)return null;const e=new Date(t);return new Date(e.getTime())},R=(t,e)=>Object.values(t).find((t=>t.value===e));class V{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 F extends V{constructor({accountNumber:t,...e}){super(e),this.accountNumber=t}toObject(){return Object.assign(super.toObject(),{account_number:this.accountNumber})}}class H extends V{constructor({active:t,...e}){super(e),this.active=t}toObject(){return Object.assign(super.toObject(),{active:this.active})}}class Y extends V{constructor({status:t,...e}){super(e),this.status=t}toObject(){return Object.assign(super.toObject(),{status:this.status})}}class z extends Y{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 X extends Y{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 Q extends V{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 J extends V{constructor({accountNumber:t,...e}){super(e),this.accountNumber=t}toObject(){return Object.assign(super.toObject(),{account_number:this.accountNumber})}}class W extends V{constructor({cardUri:t,...e}){super(e),this.cardUri=t}toObject(){return Object.assign(super.toObject(),{card_uri:this.cardUri})}}class G extends V{constructor({cardUri:t,count:e=!1,...s}){super(s),this.cardUri=t,this.count=e}toObject(){return Object.assign(super.toObject(),{card_uri:this.cardUri,count:this.count})}}class Z extends V{constructor({walletUri:t,...e}){super(e),this.walletUri=t}toObject(){return Object.assign(super.toObject(),{wallet_uri:this.walletUri})}}class tt extends V{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 et extends V{constructor({active:t,...e}){super(e),this.active=t}toObject(){return Object.assign(super.toObject(),{active:this.active})}}class st extends V{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=L(Date.now());s.setUTCDate(1);if(L(`${e}-${t}-01`).getTime()>=s.getTime())throw new l(`${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 it{constructor({ip:t,location:e,type:s,version:i}){this.ip=t,this.location=e,this.type=s,this.version=i}static fromObject=({ip:t,location:e,type:s,version:i})=>new it({ip:t,location:e,type:s,version:i})}class rt{constructor({code:t,error:e,identifier:s,message:i}){this.code=t,this.error=e,this.identifier=s,this.message=i}static fromObject=({code:t,error:e,identifier:s,message:i})=>new rt({code:t,error:e,identifier:s,message:i})}class at{constructor({data:t,errors:e,isMx:s,status:i,type:r,uriBack:a,uriFront:n}){this.data=t,this.isMx=s,this.status=R(N,i),this.type=R(C,r),this.uriBack=a,this.uriFront=n,e&&e.length>0&&(this.errors=e.map((t=>rt.fromObject(t))))}static fromObject=({data:t,errors:e,status:s,type:i,...r})=>new at({data:t,errors:e,status:s,type:i,isMx:r.is_mx,uriBack:r.uri_back,uriFront:r.uri_front})}class nt{constructor({city:t,country:e,createdAt:s,extNumber:i,fullName:r,intNumber:a,postalCode:n,state:c,street:o}){this.city=t,this.country=e,this.createdAt=L(s),this.extNumber=i,this.fullName=r,this.intNumber=a,this.postalCode=n,this.state=c,this.street=o}static fromObject=({city:t,country:e,state:s,street:i,...r})=>new nt({city:t,country:e,state:s,street:i,createdAt:r.created_at,extNumber:r.ext_number,fullName:r.full_name,intNumber:r.int_number,postalCode:r.postal_code})}var ct="0.0.5-dev.7";class ot{constructor({apiKey:t,apiSecret:e,language:s="en",phase:i=U.Sandbox}={}){this.phase=i,this.basicAuth={apiKey:t,apiSecret:e},this.jwtToken=null,this._session=a.default.create({headers:{"Accept-Language":s},timeout:45e3})}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 ${n.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,multipart:s}){return this.request({method:"POST",endpoint:t,data:e,multipart:s})}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=T.Json,method:i="GET",multipart:r=!1,params:a=null}){let n;n=r?e.getHeaders():{"Content-Type":"application/json",Accept:`application/${s.value}`},this.authHeader&&(n.Authorization=this.authHeader),_?n["User-Agent"]=`cuenca-js/${ct}`:f&&(n["X-User-Agent"]=`cuenca-js/${ct}`),this.jwtToken&&(this.jwtToken.isExpired&&(this.jwtToken=await b.create(this)),n["X-Cuenca-Token"]=this.jwtToken.token);const d=this.addHeadersToRequest(n),u=e;u&&Object.keys(u).forEach((t=>{u[t]instanceof Date&&(u[t]=u[t].toISOString())}));const h=this.addConfigToRequest({method:i,params:a,data:u,url:t});let p;try{p=await this._session.request({baseURL:this.origin})}catch(t){throw t.response?new o(t.response.data,t.response.status):t.request?new c(`No response received: ${t.errno}: ${t.code}`):new c(t.message)}finally{d.eject(),h.eject()}return p.data}}class dt{constructor({accountNumber:t,createdAt:e,id:s,institutionName:i,name:r,userId:a}){this.accountNumber=t,this.createdAt=L(e),this.id=s,this.institutionName=i,this.name=r,this.userId=a}static fromObject=({id:t,name:e,...s})=>new dt({id:t,name:e,accountNumber:s.account_number,createdAt:s.created_at,institutionName:s.institution_name,userId:s.user_id})}class ut{constructor({createdAt:t,deactivatedAt:e,id:s,secret:i,userId:r,updatedAt:a}){this.createdAt=L(t),this.deactivatedAt=L(e),this.id=s,this.secret=i,this.userId=r,this.updatedAt=L(a)}static fromObject=({id:t,secret:e,...s})=>new ut({id:t,secret:e,createdAt:s.created_at,deactivatedAt:s.deactivated_at,userId:s.user_id,updatedAt:s.updated_at});get isActive(){const t=L(Date.now());return!this.deactivatedAt||this.deactivatedAt.getTime()>t.getTime()}}class ht{constructor({arpc:t,createdAt:e,cardUri:s,isValidArqc:i}){this.arpc=t,this.createdAt=L(e),this.cardUri=s,this.isValidArqc=i}static fromObject=({arpc:t,...e})=>new ht({arpc:t,createdAt:e.created_at,cardUri:e.card_uri,isValidArqc:e.is_valid_arqc})}class pt{constructor({amount:t,createdAt:e,descriptor:s,entryType:i,fundingInstrumentUri:r,id:a,name:n,relatedTransactionUri:c,rollingBalance:o}){this.amount=t,this.createdAt=L(e),this.descriptor=s,this.entryType=R(k,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 pt({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 lt{constructor({amount:t,createdAt:e,descriptor:s,status:i,userId:r}){this.amount=t,this.createdAt=L(e),this.descriptor=s,this.status=R($,i),this.userId=r}}class mt extends lt{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 mt({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 wt{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=L(t),this.cvv2=e,this.expMonth=s,this.expYear=i,this.fundingType=R(y,r),this.id=a,this.issuer=R(g,n),this.number=c,this.pin=o,this.status=R(O,d),this.type=R(A,u),this.updatedAt=L(h),this.userId=p}static fromObject=({cvv2:t,id:e,issuer:s,number:i,pin:r,status:a,type:n,...c})=>new wt({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 ft{constructor({cardUri:t,createdAt:e,id:s,ipAddress:i,success:r,userId:a}){this.cardUri=t,this.createdAt=L(e),this.id=s,this.ipAddress=i,this.success=r,this.userId=a}static fromObject=({id:t,success:e,...s})=>new ft({id:t,success:e,cardUri:s.card_uri,createdAt:s.created_at,ipAddress:s.ip_address,userId:s.user_id})}class _t extends lt{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=R(v,e),this.cardLastFour=s,this.cardType=R(A,i),this.cardUri=r,this.metadata=c,this.network=o,this.relatedCardTransactionsUris=d,this.type=R(j,h)}static fromObject=({amount:t,descriptor:e,metadata:s,network:i,status:r,type:a,...n})=>new _t({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 bt{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=R(O,t),this.cardType=R(A,e),this.cardUri=s,this.createdAt=L(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 bt({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===O.Active}}class vt extends lt{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=R(x,a)}static fromObject=({amount:t,descriptor:e,status:s,type:i,...r})=>new vt({amount:t,descriptor:e,status:s,type:i,createdAt:r.created_at,relatedTransactionUri:r.related_transaction_uri,userId:r.user_id})}class yt extends lt{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=R(I,r),this.sourceUri=n,this.trackingKey=c}static fromObject=({amount:t,descriptor:e,id:s,network:i,status:r,...a})=>new yt({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 gt{constructor({extension:t,type:e,url:s,userId:i}){this.extension=t,this.type=R(C,e),this.url=s,this.userId=i}static fromObject=({extension:t,type:e,url:s,...i})=>new gt({extension:t,type:e,url:s,userId:i.user_id})}class Ot{constructor({platformId:t,attemps:e,verificationId:s,filesUri:i}){this.attemps=e,this.filesUri=i,this.platformId=t,this.verificationId=s}static fromObject=({attemps:t,...e})=>new Ot({attemps:t,filesUri:e.files_uri,platformId:e.platform_id,verificationId:e.verification_id})}class jt{constructor({id:t}){this.id=t}static fromObject=({id:t})=>new jt({id:t})}class At{constructor({balance:t,createdAt:e,deactivatedAt:s,id:i,userId:r,updatedAt:a}){this.balance=t,this.createdAt=L(e),this.deactivatedAt=L(s),this.id=i,this.userId=r,this.updatedAt=L(a)}}class xt extends At{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=R(q,e),this.goalAmount=r,this.goalDate=L(a),this.name=c}static fromObject=({balance:t,category:e,id:s,name:i,...r})=>new xt({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 It{constructor({categories:t,id:e,name:s,providerKey:i}){var r;this.categories=null==(r=t)?[]:r.map((t=>R(S,t))),this.id=e,this.name=s,this.providerKey=i}static fromObject=({categories:t,id:e,name:s,...i})=>new It({categories:t,id:e,name:s,providerKey:i.provider_key})}class kt{constructor({createdAt:t,id:e,month:s,year:i}){this.createdAt=L(t),this.id=e,this.month=s,this.year=i}static fromObject=({id:t,month:e,year:s,...i})=>new kt({id:t,month:e,year:s,createdAt:i.created_at})}class Tt extends lt{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=R(B,c),this.recipientName=o,this.trackingKey=u,this.updatedAt=L(h)}static fromObject=({amount:t,descriptor:e,id:s,network:i,status:r,...a})=>new Tt({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 Ct{constructor({address:t,blacklistValidationStatus:e,clabe:s,countryOfBirth:i,createdAt:r,curp:a,dateOfBirth:n,emailAddress:c,firstSurname:o,gender:d,govtId:u,id:h,level:p,names:l,nationality:m,phoneNumber:w,proofOfAddress:f,proofOfLife:_,requiredLevel:b,rfc:v,secondSurname:y,stateOfBirth:g,status:O,termsOfService:j,updatedAt:A,verificationId:x}){this.add=t,this.blacklistValidationStatus=R(E,e),this.clabe=s,this.countryOfBirth=i,this.createdAt=L(r),this.curp=a,this.dateOfBirth=n,this.emailAddress=c,this.firstSurname=o,this.gender=d,this.govstIds=u,this.id=h,this.level=p,this.names=l,this.nationality=m,this.phoneNumber=w,this.addressProofs=f,this.lifeProofs=_,this.requiredLevel=b,this.rfc=v,this.secondSurname=y,this.stateOfBirth=g,this.status=R(D,O),this.terms=j,this.updatedAt=L(A),this.verificationId=x}get address(){return this._address}set add(t){t&&(this._address=nt.fromObject(t))}get proofOfAddress(){return this._proofOfAddress}set addressProofs(t){t&&(this._proofOfAddress=at.fromObject(t))}get proofOfLife(){return this._proofOfLife}set lifeProofs(t){t&&(this._proofOfLife=at.fromObject(t))}get govtId(){return this._govtId}set govstIds(t){t&&(this._govtId=at.fromObject(t))}get termsOfService(){return this._termsOfService}set terms(t){t&&(this._termsOfService=it.fromObject(t))}static fromObject=({address:t,clabe:e,curp:s,gender:i,id:r,level:a,names:n,nationality:c,rfc:o,status:d,...u})=>new Ct({address:t,clabe:e,curp:s,gender:i,id:r,level:a,names:n,nationality:c,rfc:o,status:d,blacklistValidationStatus:u.blacklist_validation_status,countryOfBirth:u.country_of_birth,createdAt:u.created_at,dateOfBirth:u.date_of_birth,emailAddress:u.email_address,firstSurname:u.first_surname,govtId:u.govt_id,phoneNumber:u.phone_number,proofOfAddress:u.proof_of_address,proofOfLife:u.proof_of_life,requiredLevel:u.required_level,secondSurname:u.second_surname,stateOfBirth:u.state_of_birth,termsOfService:u.terms_of_service,updatedAt:u.updated_at,verificationId:u.verification_id})}class Nt{constructor({createdAt:t,id:e,isActive:s,updatedAt:i}){this.createdAt=L(t),this.id=e,this.isActive=s,this.updatedAt=L(i)}static fromObject=({id:t,...e})=>new Nt({id:t,createdAt:e.created_at,isActive:e.is_active,updatedAt:e.updated_at})}class Ut{constructor({id:t,lastLoginAt:e,success:s}){this.id=t,this.lastLoginAt=L(e),this.success=s}static fromObject=({id:t,success:e,...s})=>new Ut({id:t,success:e,lastLoginAt:s.last_login_at})}class St{constructor({createdAt:t,id:e,platformId:s,recipient:i,type:r,updatedAt:a}){this.createdAt=L(t),this.id=e,this.platformId=s,this.recipient=i,this.type=R(K,r),this.updatedAt=L(a)}static fromObject=({id:t,recipient:e,type:s,...i})=>new St({id:t,recipient:e,type:s,createdAt:i.created_at,platformId:i.platform_id,updatedAt:i.updated_at})}class qt extends lt{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=R(M,a),this.walletUri=c}static fromObject=({amount:t,descriptor:e,id:s,status:i,...r})=>new qt({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 Pt extends lt{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=L(a),this.network=R(B,c),this.phoneNumber=o,this.recipientName=d,this.trackingKey=h,this.updatedAt=L(p)}static fromObject=({amount:t,descriptor:e,id:s,network:i,status:r,...a})=>new Pt({amount:t,descriptor:e,id:s,network:i,status:r,createdAt:a.created_at,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 $t{constructor(t){this.superclass=t}with(...t){return t.reduce(((t,e)=>e(t)),this.superclass)}}const Bt=t=>new $t(t),Dt=(t,e)=>({accounts:()=>dt.fromObject(e),api_keys:()=>ut.fromObject(e),arpc:()=>ht.fromObject(e),balance_entries:()=>pt.fromObject(e),bill_payments:()=>mt.fromObject(e),cards:()=>wt.fromObject(e),card_activations:()=>ft.fromObject(e),card_transactions:()=>_t.fromObject(e),card_validations:()=>bt.fromObject(e),commissions:()=>vt.fromObject(e),deposits:()=>yt.fromObject(e),files:()=>gt.fromObject(e),kyc_validations:()=>Ot.fromObject(e),login_tokens:()=>jt.fromObject(e),savings:()=>xt.fromObject(e),service_providers:()=>It.fromObject(e),statements:()=>kt.fromObject(e),transfers:()=>Tt.fromObject(e),users:()=>Ct.fromObject(e),user_credentials:()=>Nt.fromObject(e),user_logins:()=>Ut.fromObject(e),verifications:()=>St.fromObject(e),wallet_transactions:()=>qt.fromObject(e),whatsapp_transfers:()=>Pt.fromObject(e)}[t]()),Et=t=>{if(null===t||""===t)return null;const e=t.match("/(.*?)/");return null===e?null:e[0].replaceAll("/","")};class Kt{constructor(t,e,s){this.path=t,this.QueryParams=e,this.client=s}}const Mt=t=>class extends t{async retrieve(t){const e=await this.client.get({endpoint:`/${this.path}/${t}`});return Dt(this.path,e)}},Lt=t=>class extends t{async _create(t){const e=await this.client.post({endpoint:`/${this.path}`,data:t});return Dt(this.path,e)}},Rt=t=>class extends t{async _update(t,e){const s=await this.client.patch({endpoint:`/${this.path}/${t}`,data:e});return Dt(this.path,s)}},Vt=t=>class extends t{async _upload(t){const e=await this.client.post({endpoint:`/${this.path}`,data:t,multipart:!0});return Dt(this.path,e)}},Ft=t=>class extends t{async _deactivate(t,e){const s=await this.client.delete({endpoint:`/${this.path}/${t}`,data:e});return Dt(this.path,s)}},Ht=t=>class extends t{async _download(t,e){const s=this.client.addConfigToRequest({responseType:"stream"}),i=await this.client.get({endpoint:`/${this.path}/${t}`,format:e});return s.eject(),i}},Yt=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 d;if(e.length>1)throw new u;const[s]=e;return Dt(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 Dt(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=Dt(this.path,e);yield t}e=t.next_page_uri}}};class zt extends(Bt(Kt).with(Yt,Mt)){constructor(t){super("accounts",F,t)}}class Xt{toObject(){return{}}toCleanObject(){const t=this.toObject();return Object.keys(t).forEach((e=>{null==t[e]&&delete t[e]})),t}}class Qt extends Xt{constructor(t,e){super(),this.userId=t,this.metadata=e}toObject(){return{user_id:this.userId,metadata:this.metadata}}}class Jt extends Xt{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 Wt extends Xt{constructor(t,e){super(),this.status=t,this.pinBlock=e}toObject(){return{status:this.status,pin_block:this.pinBlock}}}class Gt extends Xt{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 l("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 l("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 l("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 l("Invalid cvv2");this._cvv2=t}toObject(){return{number:this.number,exp_month:this.expMonth,exp_year:this.expYear,cvv2:this.cvv2}}}class Zt extends Xt{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 l("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 l("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 l("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 l("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 l("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 l("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 te extends Xt{constructor(t){super(),this.userId=t}toObject(){return{user_id:this.userId}}}class ee extends Xt{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(L(t).getTime()<=L(Date.now()).getTime())throw new l("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}}}const se=i.createRequire("undefined"==typeof document&&"undefined"==typeof location?new(require("url").URL)("file:"+__filename).href:"undefined"==typeof document?location.href:document.currentScript&&document.currentScript.src||new URL("cuenca.umd.js",document.baseURI).href)("form-data");class ie extends Xt{constructor({isBack:t=!1,file:e,extension:s,type:i,userId:r="me"}){super(),this.extension=s,this.file=e,this.isBack=t,this.type=i,this.userId=r}toObject(){return{extension:this.extension,file:this.file,is_back:this.isBack,type:this.type,user_id:this.userId}}toFormData(){const t=n.default.Buffer.from(this.file,"utf-8").toString("base64"),e=new se;return e.append("extension",this.extension),e.append("file",t),e.append("type",this.type),e.append("user_id",this.userId),e}}class re extends Xt{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 ae extends Xt{constructor(t){super(),this.pwd=t}get password(){return this._password}set pwd(t){if([!!t,t.length>=6].some((t=>!t)))throw new l("Invalid password");this._password=t}toObject(){return{password:this.password}}}class ne extends Xt{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([t.length>=6].some((t=>!t)))throw new l("Invalid password");this._password=t}set req(t){if(t.password&&null!=t.isActive)throw new l("Only one property can be updated at a time");this._request=t}toObject(){return{password:this.request.password,is_active:this.request.isActive}}}class ce extends Xt{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 l("Invalid password");this._password=t}toObject(){return{password:this.password,user_id:this.userId}}}class oe extends Xt{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 l("missing ip address");if(!t.split(".").every((t=>t>=0&&t<=255)))throw new l("Invalid ip address");this._ip=t}toObject(){return{ip:this.ip,location:this.location,type:this.type,version:this.version}}}class de extends Xt{constructor({city:t,country:e,extNumber:s,intNumber:i,postalCode:r,state:a,street:n}={}){super(),this.city=t,this.country=e,this.extNumber=s,this.intNumber=i,this.postalCode=r,this.state=a,this.street=n}toObject(){return{city:this.city,country:this.country,ext_number:this.extNumber,int_number:this.intNumber,postal_code:this.postalCode,state:this.state,street:this.street}}}class ue extends Xt{constructor({data:t,isMx:e,status:s,type:i,uriBack:r,uriFront:a}){super(),this.data=t,this.isMx=e,this.status=s,this.type=i,this.uriBack=r,this.uriFront=a}toObject(){return{data:this.data,is_mx:this.isMx,status:this.status,type:this.type,uri_back:this.uriBack,uri_front:this.uriFront}}}class he extends Xt{constructor({address:t,govtId:e,profession:s,proofOfAddress:i,proofOfLife:r,requiredLevel:a,termsOfService:n,verificationId:c}){super(),this.adrs=t,this.govstIds=e,this.profession=s,this.addressProofs=i,this.lifeProofs=r,this.requiredLevel=a,this.terms=n,this.verificationId=c}get termsOfService(){return this._termsOfService}set terms(t){t&&(this._termsOfService=new oe(t).toObject())}get address(){return this._address}set adrs(t){t&&(this._address=new de(t).toCleanObject())}get proofOfLife(){return this._proofOfLife}set lifeProofs(t){t&&(this._proofOfLife=new ue(t).toCleanObject())}get proofOfAddress(){return this._proofOfAddress}set addressProofs(t){t&&(this._proofOfAddress=new ue(t).toCleanObject())}get govtId(){return this._govtId}set govstIds(t){t&&(this._govtId=new ue(t).toCleanObject())}toObject(){return{address:this.address,profession:this.profession,requiredLevel:this.requiredLevel,terms_of_service:this.termsOfService,verification_id:this.verificationId,proof_of_life:this.proofOfLife,proof_of_address:this.proofOfAddress,govt_id:this.govtId}}}class pe extends Xt{constructor({platformId:t,recipient:e,type:s}){super(),this.platformId=t,this.type=s,this.recipients=e}get recipient(){return this._recipient}set recipients(t){switch(R(K,this.type)){case K.Email:if(!t.match(/^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/))throw new l("Invalid email address");this._recipient=t;break;case K.Phone:if(!t.match(/^\+?[0-9]{10,15}$/))throw new l("Invalid Phone Number");this._recipient=t}}toObject(){return{platform_id:this.platformId,recipient:this.recipient,type:this.type}}}class le extends Xt{constructor({code:t}){super(),this.code=t}toObject(){return{code:this.code}}}class me extends Xt{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 we extends(Bt(Kt).with(Lt,Ft,Yt,Mt,Rt)){constructor(t){super("api_keys",H,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 Qt(s,e);return await this._update(t,i.toCleanObject())}}class fe extends(Bt(Kt).with(Lt)){constructor(t){super("arpc",Object,t)}async create({number:t,arqc:e,arpcMethod:s,transactionData:i,responseCode:r,transactionCounter:a,panSequence:n,uniqueNumber:c,trackDataMethod:o}){const d=new ArpcRequest({number:t,arqc:e,arpcMethod:s,transactionData:i,responseCode:r,transactionCounter:a,panSequence:n,uniqueNumber:c,trackDataMethod:o});return await this._create(d.toObject())}}class _e extends(Bt(Kt).with(Yt,Mt)){constructor(t){super("balance_entries",Q,t)}async relatedTransaction(t){const e=Et(t);if(null==e)return null;const s=await this.client.get({endpoint:t});return Dt(`${e}`,s)}async fundingInstrument(t){const e=Et(t);if(null==e)return null;const s=await this.client.get({endpoint:t});return Dt(`${e}`,s)}}class be extends(Bt(Kt).with(Yt,Mt)){constructor(t){super("bill_payments",J,t)}async serviceProvider(t){const e=Et(t);if(null==e)return null;const s=await this.client.get({endpoint:t});return Dt(`${e}`,s)}}class ve extends(Bt(Kt).with(Lt)){constructor(t){super("card_activations",Object,t)}async create({number:t,expMonth:e,expYear:s,cvv2:i}){const r=new Gt(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 wt.fromObject(e)}}class ye extends(Bt(Kt).with(Lt,Ft,Yt,Mt,Rt)){constructor(t){super("cards",G,t)}async create(t,e,s){const i=new Jt(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 Wt(e,s);return await this._update(t,i.toCleanObject())}}class ge extends(Bt(Kt).with(Yt,Mt)){constructor(t){super("card_transactions",W,t)}async relatedCard(t){const e=Et(t);if(null==e)return null;const s=await this.client.get({endpoint:t});return Dt(`${e}`,s)}}class Oe extends(Bt(Kt).with(Lt)){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 Zt({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 wt.fromObject(e)}}class je extends(Bt(Kt).with(Yt,Mt)){constructor(t){super("commissions",V,t)}async relatedTransaction(t){const e=Et(t);if(null==e)return null;const s=await this.client.get(t);return Dt(`${e}`,s)}}class Ae extends(Bt(Kt).with(Yt,Mt)){constructor(t){super("deposits",z,t)}async source(t){const e=await this.client.get({endpoint:t});return dt.fromObject(e)}}class xe extends(Bt(Kt).with(Ht,Vt)){constructor(t){super("files",Object,t)}async download(t){return await this._download(t,T.Any)}async upload({...t}){const e=new ie(t);return await this._upload(e.toFormData())}}class Ie extends(Bt(Kt).with(Lt,Mt,Yt)){constructor(t){super("kyc_validations",Object,t)}async create(t="me"){const e=new te(t);return await this._create(e.toObject())}}class ke extends(Bt(Kt).with(Lt)){constructor(t){super("login_tokens",Object,t)}async create(){return await this._create()}}class Te extends(Bt(Kt).with(Lt,Ft,Yt,Mt,Rt)){constructor(t){super("savings",et,t)}async create(t,e,s,i){const r=new ee(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 ee(e,s,i,r);return await this._update(t,a.toObject())}}class Ce extends(Bt(Kt).with(Yt,Mt)){constructor(t){super("service_providers",V,t)}}class Ne extends(Bt(Kt).with(Ht,Yt)){constructor(t){super("statements",st,t)}async pdf(t){return await this._download(t,T.Pdf)}async xml(t){return await this._download(t,T.Xml)}}class Ue extends(Bt(Kt).with(Lt,Yt,Mt)){constructor(t){super("transfers",X,t)}async destination(t){const e=await this.client.get({endpoint:t});return dt.fromObject(e)}async create({accountNumber:t,amount:e,descriptor:s,recipientName:i,idempotencyKey:r}){const a=r||this.constructor._genIdempotencyKey(t,e),n=new re(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 re(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]=L(Date.now()).toISOString().split("T");return`${s}:${t}:${e}`}}class Se extends(Bt(Kt).with(Lt,Rt)){constructor(t){super("user_credentials",Object,t)}async create(t){const e=new ae(t);return await this._create(e.toObject())}async update({isActive:t,password:e,userId:s="me"}){const i=new ne(e,t);return await this._update(s,i.toCleanObject())}}class qe extends(Bt(Kt).with(Lt,Ft)){constructor(t){super("user_logins",Object,t),this.loginIdInHeaders=null}async create(t,e){const s=new ce(t,e),i=await this._create(s.toObject());if(!i.success)throw new p;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 Pe extends(Bt(Kt).with(Yt,Rt,Mt)){constructor(t){super("users",tt,t)}async update({userId:t="me",...e}){const s=new he(e);return await this._update(t,s.toCleanObject())}}class $e extends(Bt(Kt).with(Lt,Rt)){constructor(t){super("verifications",Object,t)}async create({platformId:t,recipient:e,type:s}){const i=new pe({platformId:t,recipient:e,type:s});return await this._create(i.toObject())}async update({code:t,id:e}){const s=new le({code:t});return await this._update(e,s.toObject())}}class Be extends(Bt(Kt).with(Lt,Yt,Mt)){constructor(t){super("wallet_transactions",Z,t)}async create(t,e,s){const i=new me(t,e,s);return await this._create(i.toObject())}async realtedWallet(t){const e=Et(t);if(null==e)return null;const s=await this.client.get(t);return Dt(`${e}`,s)}}class De extends(Bt(Kt).with(Yt,Mt)){constructor(t){super("whatsapp_transfers",V,t)}async accountDestination(t){const e=Et(t);if(null==e)return null;const s=await this.client.get(t);return Dt(`${e}`,s)}}t.Cuenca=class{constructor({apiKey:t,apiSecret:e,language:s="en",phase:i=U.Sandbox}={}){this.client=new ot({apiKey:t,apiSecret:e,language:s,phase:i}),this.withClient(this.client)}withClient(t){this.accounts=new zt(t),this.apiKeys=new we(t),this.balanceEntries=new _e(t),this.billPayments=new be(t),this.cardActivations=new ve(t),this.cards=new ye(t),this.cardTransactions=new ge(t),this.cardValidations=new Oe(t),this.commissions=new je(t),this.deposits=new Ae(t),this.files=new xe(t),this.kycValidations=new Ie(t),this.loginTokens=new ke(t),this.savings=new Te(t),this.serviceProviders=new Ce(t),this.statements=new Ne(t),this.transfers=new Ue(t),this.userCredentials=new Se(t),this.userLogins=new qe(t),this.users=new Pe(t),this.verifications=new $e(t),this.walletTransactions=new Be(t),this.whatsAppTransfers=new De(t)}}}));
@@ -1,5 +1,7 @@
1
1
  import { ValidationError } from './errors/index.mjs';
2
2
  import { d as dateToUTC, e as enumValueFromString, k as VerificationType } from './data-86ddd935.mjs';
3
+ import Buffer from 'buffer';
4
+ import { createRequire } from 'module';
3
5
 
4
6
  class BaseRequest {
5
7
  toObject() {
@@ -307,6 +309,19 @@ class CardValidationRequest extends BaseRequest {
307
309
  }
308
310
  }
309
311
 
312
+ class KYCValidationsRequest extends BaseRequest {
313
+ constructor(userId) {
314
+ super();
315
+ this.userId = userId;
316
+ }
317
+
318
+ toObject() {
319
+ return {
320
+ user_id: this.userId,
321
+ };
322
+ }
323
+ }
324
+
310
325
  class SavingRequest extends BaseRequest {
311
326
  constructor(category, goalAmount, goalDate, name) {
312
327
  super();
@@ -340,6 +355,42 @@ class SavingRequest extends BaseRequest {
340
355
  }
341
356
  }
342
357
 
358
+ const requires = createRequire(import.meta.url);
359
+ const FormData = requires('form-data');
360
+
361
+ class UploadRequest extends BaseRequest {
362
+ constructor({ isBack = false, file, extension, type, userId = 'me' }) {
363
+ super();
364
+ this.extension = extension;
365
+ this.file = file;
366
+ this.isBack = isBack;
367
+ this.type = type;
368
+ this.userId = userId;
369
+ }
370
+
371
+ toObject() {
372
+ return {
373
+ extension: this.extension,
374
+ file: this.file,
375
+ is_back: this.isBack,
376
+ type: this.type,
377
+ user_id: this.userId,
378
+ };
379
+ }
380
+
381
+ toFormData() {
382
+ const fileBase64 = Buffer.Buffer.from(this.file, 'utf-8').toString(
383
+ 'base64',
384
+ );
385
+ const form = new FormData();
386
+ form.append('extension', this.extension);
387
+ form.append('file', fileBase64);
388
+ form.append('type', this.type);
389
+ form.append('user_id', this.userId);
390
+ return form;
391
+ }
392
+ }
393
+
343
394
  class TransferRequest extends BaseRequest {
344
395
  constructor(
345
396
  accountNumber,
@@ -534,17 +585,46 @@ class AddressUpdateRequest extends BaseRequest {
534
585
  }
535
586
  }
536
587
 
588
+ class KycFileRequest extends BaseRequest {
589
+ constructor({ data, isMx, status, type, uriBack, uriFront }) {
590
+ super();
591
+ this.data = data;
592
+ this.isMx = isMx;
593
+ this.status = status;
594
+ this.type = type;
595
+ this.uriBack = uriBack;
596
+ this.uriFront = uriFront;
597
+ }
598
+
599
+ toObject() {
600
+ return {
601
+ data: this.data,
602
+ is_mx: this.isMx,
603
+ status: this.status,
604
+ type: this.type,
605
+ uri_back: this.uriBack,
606
+ uri_front: this.uriFront,
607
+ };
608
+ }
609
+ }
610
+
537
611
  class UserUpdateRequest extends BaseRequest {
538
612
  constructor({
539
613
  address,
614
+ govtId,
540
615
  profession,
616
+ proofOfAddress,
617
+ proofOfLife,
541
618
  requiredLevel,
542
619
  termsOfService,
543
620
  verificationId,
544
621
  }) {
545
622
  super();
546
623
  this.adrs = address;
624
+ this.govstIds = govtId;
547
625
  this.profession = profession;
626
+ this.addressProofs = proofOfAddress;
627
+ this.lifeProofs = proofOfLife;
548
628
  this.requiredLevel = requiredLevel;
549
629
  this.terms = termsOfService;
550
630
  this.verificationId = verificationId;
@@ -568,6 +648,33 @@ class UserUpdateRequest extends BaseRequest {
568
648
  this._address = new AddressUpdateRequest(value).toCleanObject();
569
649
  }
570
650
 
651
+ get proofOfLife() {
652
+ return this._proofOfLife;
653
+ }
654
+
655
+ set lifeProofs(value) {
656
+ if (!value) return;
657
+ this._proofOfLife = new KycFileRequest(value).toCleanObject();
658
+ }
659
+
660
+ get proofOfAddress() {
661
+ return this._proofOfAddress;
662
+ }
663
+
664
+ set addressProofs(value) {
665
+ if (!value) return;
666
+ this._proofOfAddress = new KycFileRequest(value).toCleanObject();
667
+ }
668
+
669
+ get govtId() {
670
+ return this._govtId;
671
+ }
672
+
673
+ set govstIds(value) {
674
+ if (!value) return;
675
+ this._govtId = new KycFileRequest(value).toCleanObject();
676
+ }
677
+
571
678
  toObject() {
572
679
  return {
573
680
  address: this.address,
@@ -575,6 +682,9 @@ class UserUpdateRequest extends BaseRequest {
575
682
  requiredLevel: this.requiredLevel,
576
683
  terms_of_service: this.termsOfService,
577
684
  verification_id: this.verificationId,
685
+ proof_of_life: this.proofOfLife,
686
+ proof_of_address: this.proofOfAddress,
687
+ govt_id: this.govtId,
578
688
  };
579
689
  }
580
690
  }
@@ -659,4 +769,4 @@ class WalletTransactionRequest extends BaseRequest {
659
769
  }
660
770
  }
661
771
 
662
- export { ApiKeyUpdateRequest as A, CardActivationRequest as C, SavingRequest as S, TransferRequest as T, UserCredentialRequest as U, VerificationRequest as V, WalletTransactionRequest as W, ArpcRequest as a, CardRequest as b, CardUpdateRequest as c, CardValidationRequest as d, UserCredentialUpdateRequest as e, UserLoginRequest as f, UserUpdateRequest as g, VerificationAttemptRequest as h };
772
+ export { ApiKeyUpdateRequest as A, CardActivationRequest as C, KYCValidationsRequest as K, SavingRequest as S, TransferRequest as T, UploadRequest as U, VerificationRequest as V, WalletTransactionRequest as W, ArpcRequest as a, CardRequest as b, CardUpdateRequest as c, CardValidationRequest as d, UserCredentialRequest as e, UserCredentialUpdateRequest as f, UserLoginRequest as g, UserUpdateRequest as h, VerificationAttemptRequest as i };
@@ -2,6 +2,12 @@
2
2
 
3
3
  var errors_index = require('./errors/index.cjs');
4
4
  var data = require('./data-d25afb50.cjs');
5
+ var Buffer = require('buffer');
6
+ var module$1 = require('module');
7
+
8
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
9
+
10
+ var Buffer__default = /*#__PURE__*/_interopDefaultLegacy(Buffer);
5
11
 
6
12
  class BaseRequest {
7
13
  toObject() {
@@ -309,6 +315,19 @@ class CardValidationRequest extends BaseRequest {
309
315
  }
310
316
  }
311
317
 
318
+ class KYCValidationsRequest extends BaseRequest {
319
+ constructor(userId) {
320
+ super();
321
+ this.userId = userId;
322
+ }
323
+
324
+ toObject() {
325
+ return {
326
+ user_id: this.userId,
327
+ };
328
+ }
329
+ }
330
+
312
331
  class SavingRequest extends BaseRequest {
313
332
  constructor(category, goalAmount, goalDate, name) {
314
333
  super();
@@ -342,6 +361,42 @@ class SavingRequest extends BaseRequest {
342
361
  }
343
362
  }
344
363
 
364
+ const requires = module$1.createRequire((typeof document === 'undefined' ? new (require('u' + 'rl').URL)('file:' + __filename).href : (document.currentScript && document.currentScript.src || new URL('walletTransactionRequest-ee4e5af1.cjs', document.baseURI).href)));
365
+ const FormData = requires('form-data');
366
+
367
+ class UploadRequest extends BaseRequest {
368
+ constructor({ isBack = false, file, extension, type, userId = 'me' }) {
369
+ super();
370
+ this.extension = extension;
371
+ this.file = file;
372
+ this.isBack = isBack;
373
+ this.type = type;
374
+ this.userId = userId;
375
+ }
376
+
377
+ toObject() {
378
+ return {
379
+ extension: this.extension,
380
+ file: this.file,
381
+ is_back: this.isBack,
382
+ type: this.type,
383
+ user_id: this.userId,
384
+ };
385
+ }
386
+
387
+ toFormData() {
388
+ const fileBase64 = Buffer__default["default"].Buffer.from(this.file, 'utf-8').toString(
389
+ 'base64',
390
+ );
391
+ const form = new FormData();
392
+ form.append('extension', this.extension);
393
+ form.append('file', fileBase64);
394
+ form.append('type', this.type);
395
+ form.append('user_id', this.userId);
396
+ return form;
397
+ }
398
+ }
399
+
345
400
  class TransferRequest extends BaseRequest {
346
401
  constructor(
347
402
  accountNumber,
@@ -536,17 +591,46 @@ class AddressUpdateRequest extends BaseRequest {
536
591
  }
537
592
  }
538
593
 
594
+ class KycFileRequest extends BaseRequest {
595
+ constructor({ data, isMx, status, type, uriBack, uriFront }) {
596
+ super();
597
+ this.data = data;
598
+ this.isMx = isMx;
599
+ this.status = status;
600
+ this.type = type;
601
+ this.uriBack = uriBack;
602
+ this.uriFront = uriFront;
603
+ }
604
+
605
+ toObject() {
606
+ return {
607
+ data: this.data,
608
+ is_mx: this.isMx,
609
+ status: this.status,
610
+ type: this.type,
611
+ uri_back: this.uriBack,
612
+ uri_front: this.uriFront,
613
+ };
614
+ }
615
+ }
616
+
539
617
  class UserUpdateRequest extends BaseRequest {
540
618
  constructor({
541
619
  address,
620
+ govtId,
542
621
  profession,
622
+ proofOfAddress,
623
+ proofOfLife,
543
624
  requiredLevel,
544
625
  termsOfService,
545
626
  verificationId,
546
627
  }) {
547
628
  super();
548
629
  this.adrs = address;
630
+ this.govstIds = govtId;
549
631
  this.profession = profession;
632
+ this.addressProofs = proofOfAddress;
633
+ this.lifeProofs = proofOfLife;
550
634
  this.requiredLevel = requiredLevel;
551
635
  this.terms = termsOfService;
552
636
  this.verificationId = verificationId;
@@ -570,6 +654,33 @@ class UserUpdateRequest extends BaseRequest {
570
654
  this._address = new AddressUpdateRequest(value).toCleanObject();
571
655
  }
572
656
 
657
+ get proofOfLife() {
658
+ return this._proofOfLife;
659
+ }
660
+
661
+ set lifeProofs(value) {
662
+ if (!value) return;
663
+ this._proofOfLife = new KycFileRequest(value).toCleanObject();
664
+ }
665
+
666
+ get proofOfAddress() {
667
+ return this._proofOfAddress;
668
+ }
669
+
670
+ set addressProofs(value) {
671
+ if (!value) return;
672
+ this._proofOfAddress = new KycFileRequest(value).toCleanObject();
673
+ }
674
+
675
+ get govtId() {
676
+ return this._govtId;
677
+ }
678
+
679
+ set govstIds(value) {
680
+ if (!value) return;
681
+ this._govtId = new KycFileRequest(value).toCleanObject();
682
+ }
683
+
573
684
  toObject() {
574
685
  return {
575
686
  address: this.address,
@@ -577,6 +688,9 @@ class UserUpdateRequest extends BaseRequest {
577
688
  requiredLevel: this.requiredLevel,
578
689
  terms_of_service: this.termsOfService,
579
690
  verification_id: this.verificationId,
691
+ proof_of_life: this.proofOfLife,
692
+ proof_of_address: this.proofOfAddress,
693
+ govt_id: this.govtId,
580
694
  };
581
695
  }
582
696
  }
@@ -667,8 +781,10 @@ exports.CardActivationRequest = CardActivationRequest;
667
781
  exports.CardRequest = CardRequest;
668
782
  exports.CardUpdateRequest = CardUpdateRequest;
669
783
  exports.CardValidationRequest = CardValidationRequest;
784
+ exports.KYCValidationsRequest = KYCValidationsRequest;
670
785
  exports.SavingRequest = SavingRequest;
671
786
  exports.TransferRequest = TransferRequest;
787
+ exports.UploadRequest = UploadRequest;
672
788
  exports.UserCredentialRequest = UserCredentialRequest;
673
789
  exports.UserCredentialUpdateRequest = UserCredentialUpdateRequest;
674
790
  exports.UserLoginRequest = UserLoginRequest;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cuenca-mx/cuenca-js",
3
- "version": "0.0.5-dev.5",
3
+ "version": "0.0.5-dev.7",
4
4
  "description": "Cuenca client for JS",
5
5
  "main": "./build/index.cjs",
6
6
  "module": "./build/index.mjs",
@@ -59,6 +59,7 @@
59
59
  },
60
60
  "dependencies": {
61
61
  "axios": "^0.24.0",
62
- "buffer": "^6.0.3"
62
+ "buffer": "^6.0.3",
63
+ "form-data": "^4.0.0"
63
64
  }
64
65
  }