@cuenca-mx/cuenca-js 1.2.2-dev0 → 2.0.0-dev0

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.
Files changed (183) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/build/data-91da6d58.mjs +625 -0
  3. package/build/data-ca00ac2d.cjs +669 -0
  4. package/build/dts/client/client.d.ts +86 -0
  5. package/build/dts/client/index.d.ts +1 -0
  6. package/build/dts/errors.d.ts +25 -0
  7. package/build/dts/helpers/case.d.ts +5 -0
  8. package/build/dts/helpers/data.d.ts +3 -0
  9. package/build/dts/helpers/env.d.ts +7 -0
  10. package/build/dts/index.d.ts +52 -0
  11. package/build/dts/jwt.d.ts +8 -0
  12. package/build/dts/models/account.d.ts +12 -0
  13. package/build/dts/models/alert.d.ts +32 -0
  14. package/build/dts/models/apiKey.d.ts +13 -0
  15. package/build/dts/models/arpc.d.ts +10 -0
  16. package/build/dts/models/balanceEntry.d.ts +15 -0
  17. package/build/dts/models/baseUser.d.ts +23 -0
  18. package/build/dts/models/billPayment.d.ts +10 -0
  19. package/build/dts/models/bridgeAccount.d.ts +27 -0
  20. package/build/dts/models/bridgeBankAccount.d.ts +16 -0
  21. package/build/dts/models/bridgeClabe.d.ts +12 -0
  22. package/build/dts/models/bridgeTransaction.d.ts +32 -0
  23. package/build/dts/models/card.d.ts +19 -0
  24. package/build/dts/models/cardActivation.d.ts +12 -0
  25. package/build/dts/models/cardTransaction.d.ts +15 -0
  26. package/build/dts/models/cardValidation.d.ts +19 -0
  27. package/build/dts/models/commission.d.ts +9 -0
  28. package/build/dts/models/deposit.d.ts +11 -0
  29. package/build/dts/models/file.d.ts +10 -0
  30. package/build/dts/models/fraudFundsTransfer.d.ts +9 -0
  31. package/build/dts/models/index.d.ts +38 -0
  32. package/build/dts/models/kycValidations.d.ts +22 -0
  33. package/build/dts/models/loginToken.d.ts +7 -0
  34. package/build/dts/models/partner.d.ts +25 -0
  35. package/build/dts/models/postalCode.d.ts +14 -0
  36. package/build/dts/models/saving.d.ts +11 -0
  37. package/build/dts/models/serviceProvider.d.ts +10 -0
  38. package/build/dts/models/session.d.ts +14 -0
  39. package/build/dts/models/statement.d.ts +10 -0
  40. package/build/dts/models/transaction.d.ts +7 -0
  41. package/build/dts/models/transactionalProfile.d.ts +14 -0
  42. package/build/dts/models/transfer.d.ts +15 -0
  43. package/build/dts/models/user.d.ts +42 -0
  44. package/build/dts/models/userCredential.d.ts +10 -0
  45. package/build/dts/models/userLogin.d.ts +9 -0
  46. package/build/dts/models/userReport.d.ts +48 -0
  47. package/build/dts/models/userTosAgreement.d.ts +13 -0
  48. package/build/dts/models/verification.d.ts +12 -0
  49. package/build/dts/models/wallet.d.ts +8 -0
  50. package/build/dts/models/walletTransaction.d.ts +10 -0
  51. package/build/dts/models/whatsAppTransfer.d.ts +16 -0
  52. package/build/dts/requests/addressUpdateRequest.d.ts +17 -0
  53. package/build/dts/requests/alertRequest.d.ts +31 -0
  54. package/build/dts/requests/apiKeyRequest.d.ts +9 -0
  55. package/build/dts/requests/arpcRequest.d.ts +16 -0
  56. package/build/dts/requests/base.d.ts +2 -0
  57. package/build/dts/requests/cardActivationRequest.d.ts +11 -0
  58. package/build/dts/requests/cardRequest.d.ts +18 -0
  59. package/build/dts/requests/cardValidationRequest.d.ts +15 -0
  60. package/build/dts/requests/fileUploadRequest.d.ts +12 -0
  61. package/build/dts/requests/fraudFundsTransferRequest.d.ts +13 -0
  62. package/build/dts/requests/index.d.ts +24 -0
  63. package/build/dts/requests/kycValidationsRequest.d.ts +10 -0
  64. package/build/dts/requests/partnerUserRequest.d.ts +100 -0
  65. package/build/dts/requests/reportGenerateRequest.d.ts +8 -0
  66. package/build/dts/requests/savingRequest.d.ts +11 -0
  67. package/build/dts/requests/sessionRequest.d.ts +12 -0
  68. package/build/dts/requests/tosUpdateRequest.d.ts +11 -0
  69. package/build/dts/requests/transferRequest.d.ts +12 -0
  70. package/build/dts/requests/transferUpdateRequest.d.ts +8 -0
  71. package/build/dts/requests/userCredentialRequest.d.ts +15 -0
  72. package/build/dts/requests/userLoginRequest.d.ts +8 -0
  73. package/build/dts/requests/userReportCreateRequest.d.ts +9 -0
  74. package/build/dts/requests/userReportUpdateRequest.d.ts +28 -0
  75. package/build/dts/requests/userRequest.d.ts +39 -0
  76. package/build/dts/requests/verificationRequest.d.ts +17 -0
  77. package/build/dts/requests/walletTransactionRequest.d.ts +9 -0
  78. package/build/dts/resources/accounts.d.ts +33 -0
  79. package/build/dts/resources/alerts.d.ts +54 -0
  80. package/build/dts/resources/apiKeys.d.ts +63 -0
  81. package/build/dts/resources/arpc.d.ts +18 -0
  82. package/build/dts/resources/balanceEntries.d.ts +37 -0
  83. package/build/dts/resources/base.d.ts +135 -0
  84. package/build/dts/resources/billPayments.d.ts +34 -0
  85. package/build/dts/resources/bridgeAccounts.d.ts +49 -0
  86. package/build/dts/resources/bridgeBankAccounts.d.ts +33 -0
  87. package/build/dts/resources/bridgeClabes.d.ts +27 -0
  88. package/build/dts/resources/bridgeTransactions.d.ts +36 -0
  89. package/build/dts/resources/cardActivations.d.ts +19 -0
  90. package/build/dts/resources/cardTransactions.d.ts +34 -0
  91. package/build/dts/resources/cardValidations.d.ts +19 -0
  92. package/build/dts/resources/cards.d.ts +63 -0
  93. package/build/dts/resources/commissions.d.ts +34 -0
  94. package/build/dts/resources/deposits.d.ts +34 -0
  95. package/build/dts/resources/files.d.ts +30 -0
  96. package/build/dts/resources/fraudFundsTransfers.d.ts +18 -0
  97. package/build/dts/resources/index.d.ts +36 -0
  98. package/build/dts/resources/kycValidations.d.ts +53 -0
  99. package/build/dts/resources/loginTokens.d.ts +17 -0
  100. package/build/dts/resources/partners.d.ts +54 -0
  101. package/build/dts/resources/postalCodes.d.ts +24 -0
  102. package/build/dts/resources/reports.d.ts +8 -0
  103. package/build/dts/resources/savings.d.ts +62 -0
  104. package/build/dts/resources/serviceProviders.d.ts +32 -0
  105. package/build/dts/resources/sessions.d.ts +43 -0
  106. package/build/dts/resources/statements.d.ts +44 -0
  107. package/build/dts/resources/transfers.d.ts +64 -0
  108. package/build/dts/resources/userCredentials.d.ts +30 -0
  109. package/build/dts/resources/userLogins.d.ts +28 -0
  110. package/build/dts/resources/userReports.d.ts +54 -0
  111. package/build/dts/resources/users.d.ts +56 -0
  112. package/build/dts/resources/usersTosAgreements.d.ts +16 -0
  113. package/build/dts/resources/verifications.d.ts +31 -0
  114. package/build/dts/resources/walletTransactions.d.ts +48 -0
  115. package/build/dts/resources/whatsAppTransfers.d.ts +34 -0
  116. package/build/dts/types/enums.d.ts +579 -0
  117. package/build/dts/types/identities/address.d.ts +25 -0
  118. package/build/dts/types/identities/alertLog.d.ts +11 -0
  119. package/build/dts/types/identities/audit.d.ts +10 -0
  120. package/build/dts/types/identities/businessDetails.d.ts +9 -0
  121. package/build/dts/types/identities/externalAccount.d.ts +8 -0
  122. package/build/dts/types/identities/index.d.ts +17 -0
  123. package/build/dts/types/identities/kycFile.d.ts +14 -0
  124. package/build/dts/types/identities/legalRepresentatives.d.ts +12 -0
  125. package/build/dts/types/identities/license.d.ts +10 -0
  126. package/build/dts/types/identities/moralOperation.d.ts +8 -0
  127. package/build/dts/types/identities/physicalPerson.d.ts +12 -0
  128. package/build/dts/types/identities/shareholderMoral.d.ts +12 -0
  129. package/build/dts/types/identities/shareholderPhysical.d.ts +9 -0
  130. package/build/dts/types/identities/tosAgreements.d.ts +10 -0
  131. package/build/dts/types/identities/transactionalProfileServices.d.ts +10 -0
  132. package/build/dts/types/identities/verificationError.d.ts +10 -0
  133. package/build/dts/types/identities/vulnerableActivity.d.ts +10 -0
  134. package/build/dts/types/index.d.ts +3 -0
  135. package/build/dts/types/queries/accountQuery.d.ts +4 -0
  136. package/build/dts/types/queries/alertQuery.d.ts +12 -0
  137. package/build/dts/types/queries/apiKeyQuery.d.ts +4 -0
  138. package/build/dts/types/queries/balanceEntryQuery.d.ts +5 -0
  139. package/build/dts/types/queries/billPaymentQuery.d.ts +4 -0
  140. package/build/dts/types/queries/bridgeAccountQuery.d.ts +4 -0
  141. package/build/dts/types/queries/bridgeBankAccountQuery.d.ts +4 -0
  142. package/build/dts/types/queries/bridgeQuery.d.ts +7 -0
  143. package/build/dts/types/queries/bridgeTransactionQuery.d.ts +6 -0
  144. package/build/dts/types/queries/cardTransactionQuery.d.ts +4 -0
  145. package/build/dts/types/queries/cardsQuery.d.ts +4 -0
  146. package/build/dts/types/queries/depositQuery.d.ts +5 -0
  147. package/build/dts/types/queries/index.d.ts +26 -0
  148. package/build/dts/types/queries/partnerQuery.d.ts +4 -0
  149. package/build/dts/types/queries/postalCodeQuery.d.ts +4 -0
  150. package/build/dts/types/queries/queryParams.d.ts +15 -0
  151. package/build/dts/types/queries/statementQuery.d.ts +6 -0
  152. package/build/dts/types/queries/transactionQuery.d.ts +4 -0
  153. package/build/dts/types/queries/transferQuery.d.ts +7 -0
  154. package/build/dts/types/queries/userQuery.d.ts +11 -0
  155. package/build/dts/types/queries/userReportQuery.d.ts +4 -0
  156. package/build/dts/types/queries/walletQuery.d.ts +4 -0
  157. package/build/dts/types/queries/walletTransactionQuery.d.ts +4 -0
  158. package/build/errors/index.cjs +10 -0
  159. package/build/errors/index.mjs +10 -1
  160. package/build/index.cjs +1305 -2894
  161. package/build/index.mjs +1307 -2895
  162. package/build/jwt/index.cjs +11 -8
  163. package/build/jwt/index.mjs +11 -8
  164. package/build/requests/index.cjs +4 -22
  165. package/build/requests/index.mjs +2 -26
  166. package/build/types/index.cjs +18 -56
  167. package/build/types/index.mjs +9 -34
  168. package/build/umd/cuenca.umd.js +1 -1
  169. package/build/vulnerableActivity-61dc2846.mjs +278 -0
  170. package/build/vulnerableActivity-d5aed4a7.cjs +299 -0
  171. package/build/walletTransactionRequest-aab46c5e.cjs +461 -0
  172. package/build/walletTransactionRequest-dc11fc69.mjs +433 -0
  173. package/errors/index.d.ts +1 -0
  174. package/jwt/index.d.ts +1 -0
  175. package/package.json +26 -8
  176. package/requests/index.d.ts +1 -0
  177. package/types/index.d.ts +1 -0
  178. package/build/data-1fd00e5c.mjs +0 -1199
  179. package/build/data-72c37b60.cjs +0 -1240
  180. package/build/vulnerableActivity-7cc1734f.cjs +0 -867
  181. package/build/vulnerableActivity-bd344332.mjs +0 -831
  182. package/build/walletTransactionRequest-05d5305a.mjs +0 -1512
  183. package/build/walletTransactionRequest-c6a5c64d.cjs +0 -1539
@@ -0,0 +1,433 @@
1
+ import { s as snakeize, d as dateToUTC, V as VerificationType } from './data-91da6d58.mjs';
2
+ import { ValidationError } from './errors/index.mjs';
3
+
4
+ // Strips null/undefined-valued keys from a wire object. Replaces the old
5
+ // `BaseRequest.toCleanObject`: requests are plain interfaces plus functions
6
+ // now (see docs/adr/0001-contrato-v2.md, decision 9's sibling change for
7
+ // #63), so there's no class hierarchy left to hang this off of.
8
+ function cleanObject(obj) {
9
+ const result = {};
10
+ Object.keys(obj).forEach((key) => {
11
+ if (obj[key] != null)
12
+ result[key] = obj[key];
13
+ });
14
+ return result;
15
+ }
16
+
17
+ const AddressUpdateRequest = {
18
+ toObject: (req = {}) => snakeize(req),
19
+ toCleanObject: (req = {}) => cleanObject(AddressUpdateRequest.toObject(req)),
20
+ };
21
+
22
+ const AlertUpdateRequest = {
23
+ toObject: (req = {}) => snakeize(req),
24
+ toCleanObject: (req = {}) => cleanObject(AlertUpdateRequest.toObject(req)),
25
+ };
26
+
27
+ const ApiKeyUpdateRequest = {
28
+ toObject: (req) => snakeize(req),
29
+ toCleanObject: (req) => cleanObject(ApiKeyUpdateRequest.toObject(req)),
30
+ };
31
+
32
+ function validate$4(req) {
33
+ if (req.number) {
34
+ const valid = req.number.length === 16 && /^\d{16}/.test(req.number);
35
+ if (!valid)
36
+ throw new ValidationError('Invalid number');
37
+ }
38
+ if (req.arpcMethod) {
39
+ if (req.arpcMethod.length !== 1) {
40
+ throw new ValidationError('Invalid method');
41
+ }
42
+ }
43
+ }
44
+ const ArpcRequest = {
45
+ toObject: (req = {}) => {
46
+ validate$4(req);
47
+ return snakeize(req);
48
+ },
49
+ toCleanObject: (req = {}) => cleanObject(ArpcRequest.toObject(req)),
50
+ };
51
+
52
+ function validate$3({ number, expMonth, expYear, cvv2, }) {
53
+ if (!number || number.length !== 16 || !/^\d{16}/.test(number)) {
54
+ throw new ValidationError('Invalid number');
55
+ }
56
+ if (!expMonth || expMonth < 1 || expMonth > 12) {
57
+ throw new ValidationError('Invalid expiration month');
58
+ }
59
+ if (!expYear || expYear < 18 || expYear > 99) {
60
+ throw new ValidationError('Invalid expiration year');
61
+ }
62
+ if (!cvv2 || cvv2.length !== 3 || !/^\d{3}/.test(cvv2)) {
63
+ throw new ValidationError('Invalid cvv2');
64
+ }
65
+ }
66
+ const CardActivationRequest = {
67
+ toObject: (req) => {
68
+ validate$3(req);
69
+ return {
70
+ number: req.number.trim(),
71
+ exp_month: req.expMonth,
72
+ exp_year: req.expYear,
73
+ cvv2: req.cvv2,
74
+ };
75
+ },
76
+ toCleanObject: (req) => cleanObject(CardActivationRequest.toObject(req)),
77
+ };
78
+
79
+ const CardRequest = {
80
+ toObject: (req) => snakeize(req),
81
+ toCleanObject: (req) => cleanObject(CardRequest.toObject(req)),
82
+ };
83
+ const CardUpdateRequest = {
84
+ toObject: (req) => snakeize(req),
85
+ toCleanObject: (req) => cleanObject(CardUpdateRequest.toObject(req)),
86
+ };
87
+
88
+ function validate$2(req) {
89
+ if (req.cvv && req.cvv.length !== 3) {
90
+ throw new ValidationError('Invalid cvv');
91
+ }
92
+ if (req.cvv2 && req.cvv2.length !== 3) {
93
+ throw new ValidationError('Invalid cvv2');
94
+ }
95
+ if (req.expMonth && (req.expMonth < 1 || req.expMonth > 12)) {
96
+ throw new ValidationError('Invalid expiration month');
97
+ }
98
+ if (req.expYear && (req.expYear < 18 || req.expYear > 99)) {
99
+ throw new ValidationError('Invalid expiration year');
100
+ }
101
+ if (req.icvv && req.icvv.length !== 3) {
102
+ throw new ValidationError('Invalid icvv');
103
+ }
104
+ const { number } = req;
105
+ if (!number || number.length !== 16 || !/^\d{16}/.test(number)) {
106
+ throw new ValidationError('Invalid number');
107
+ }
108
+ }
109
+ const CardValidationRequest = {
110
+ toObject: (req) => {
111
+ validate$2(req);
112
+ return snakeize(req);
113
+ },
114
+ toCleanObject: (req) => cleanObject(CardValidationRequest.toObject(req)),
115
+ };
116
+
117
+ const FileUploadRequest = {
118
+ toObject: (req) => ({
119
+ extension: req.extension,
120
+ file: req.file,
121
+ is_back: req.isBack ?? false,
122
+ type: req.type,
123
+ user_id: req.userId ?? 'me',
124
+ }),
125
+ toCleanObject: (req) => cleanObject(FileUploadRequest.toObject(req)),
126
+ };
127
+
128
+ const FraudFundsTransferRequest = {
129
+ toObject: (req) => snakeize(req),
130
+ toCleanObject: (req) => cleanObject(FraudFundsTransferRequest.toObject(req)),
131
+ };
132
+
133
+ const KYCValidationsRequest = {
134
+ toObject: (req) => ({
135
+ force: req.force,
136
+ [req.isBridge ? 'account_id' : 'user_id']: req.userId,
137
+ }),
138
+ toCleanObject: (req) => cleanObject(KYCValidationsRequest.toObject(req)),
139
+ };
140
+
141
+ const servicesToObject = (req) => req ? snakeize(req) : undefined;
142
+ const transactionalProfileToObject = (req) => {
143
+ if (!req)
144
+ return undefined;
145
+ return {
146
+ currency: req.currency,
147
+ monthly_amount: req.monthlyAmount,
148
+ recipients_num: req.recipientsNum,
149
+ payers_num: req.payersNum,
150
+ deposits: servicesToObject(req.deposits),
151
+ withdrawal: servicesToObject(req.withdrawal),
152
+ };
153
+ };
154
+ const businessDetailsToObject = (req) => req ? snakeize(req) : undefined;
155
+ const shareholderPhysicalToObject = (req) => snakeize(req);
156
+ const legalRepresentativeToObject = (req) => ({
157
+ ...shareholderPhysicalToObject(req),
158
+ job: req.job,
159
+ phone_number: req.phoneNumber,
160
+ email_address: req.emailAddress,
161
+ address: req.address
162
+ ? AddressUpdateRequest.toCleanObject(req.address)
163
+ : undefined,
164
+ });
165
+ const shareholderMoralToObject = (req) => ({
166
+ name: req.name,
167
+ percentage: req.percentage,
168
+ shareholders: req.shareholders?.map(shareholderPhysicalToObject),
169
+ legal_representatives: req.legalRepresentatives?.map(legalRepresentativeToObject),
170
+ });
171
+ const vulnerableActivityToObject = (req) => req ? snakeize(req) : undefined;
172
+ const licenseToObject = (req) => req ? snakeize(req) : undefined;
173
+ const auditToObject = (req) => req ? snakeize(req) : undefined;
174
+ const PartnerUserRequest = {
175
+ toObject: (req = {}) => ({
176
+ address: req.address
177
+ ? AddressUpdateRequest.toCleanObject(req.address)
178
+ : undefined,
179
+ audit: auditToObject(req.audit),
180
+ business_details: businessDetailsToObject(req.businessDetails),
181
+ business_name: req.businessName,
182
+ clabe: req.clabe,
183
+ created_at: req.createdAt,
184
+ documentation_url: req.documentationUrl,
185
+ email_address: req.emailAddress,
186
+ external_account: req.externalAccount
187
+ ? { account: req.externalAccount.account, bank: req.externalAccount.bank }
188
+ : undefined,
189
+ folio: req.folio,
190
+ id: req.id,
191
+ incorporation_date: req.incorporationDate,
192
+ legal_name: req.legalName,
193
+ legal_representatives: req.legalRepresentatives?.map(legalRepresentativeToObject),
194
+ level: req.level,
195
+ license: licenseToObject(req.license),
196
+ meta: req.meta,
197
+ nationality: req.nationality,
198
+ phone_number: req.phoneNumber,
199
+ platform_id: req.platformId,
200
+ required_level: req.requiredLevel,
201
+ rfc: req.rfc,
202
+ shareholders: req.shareholders?.map(shareholderMoralToObject),
203
+ status: req.status,
204
+ transactional_profile: transactionalProfileToObject(req.transactionalProfile),
205
+ updated_at: req.updatedAt,
206
+ user_id: req.userId,
207
+ user_type: req.userType,
208
+ vulnerable_activity: vulnerableActivityToObject(req.vulnerableActivity),
209
+ web_site: req.webSite,
210
+ }),
211
+ toCleanObject: (req = {}) => cleanObject(PartnerUserRequest.toObject(req)),
212
+ };
213
+
214
+ const ReportGenerateRequest = {
215
+ toObject: (req = {}) => snakeize(req),
216
+ toCleanObject: (req = {}) => cleanObject(ReportGenerateRequest.toObject(req)),
217
+ };
218
+
219
+ function validate$1({ goalDate }) {
220
+ if (!goalDate)
221
+ return;
222
+ // Both calls receive a truthy input (`goalDate`, `Date.now()`), so
223
+ // `dateToUTC` — which only returns `null` for a falsy input — always
224
+ // returns a `Date` here.
225
+ const utcGoalDate = dateToUTC(goalDate);
226
+ const utcNow = dateToUTC(Date.now());
227
+ if (utcGoalDate.getTime() <= utcNow.getTime()) {
228
+ throw new ValidationError('The goal_date always need to be higher than now');
229
+ }
230
+ }
231
+ const SavingRequest = {
232
+ toObject: (req = {}) => {
233
+ validate$1(req);
234
+ return {
235
+ category: req.category,
236
+ goal_amount: req.goalAmount,
237
+ goal_date: req.goalDate,
238
+ name: req.name,
239
+ };
240
+ },
241
+ toCleanObject: (req = {}) => cleanObject(SavingRequest.toObject(req)),
242
+ };
243
+
244
+ const SessionRequest = {
245
+ toObject: (req) => ({
246
+ failure_url: req.failureUrl,
247
+ success_url: req.successUrl,
248
+ type: req.type,
249
+ [req.isBridge ? 'account_id' : 'user_id']: req.userId,
250
+ }),
251
+ toCleanObject: (req) => cleanObject(SessionRequest.toObject(req)),
252
+ };
253
+
254
+ function validateIp(ip) {
255
+ if (!ip)
256
+ throw new ValidationError('missing ip address');
257
+ const blocks = ip
258
+ .split('.')
259
+ .every((block) => Number(block) >= 0 && Number(block) <= 255);
260
+ if (!blocks)
261
+ throw new ValidationError('Invalid ip address');
262
+ }
263
+ const TosUpdateRequest = {
264
+ toObject: (req) => {
265
+ validateIp(req.ip);
266
+ return {
267
+ ip: req.ip,
268
+ location: req.location,
269
+ type: req.type,
270
+ version: req.version,
271
+ };
272
+ },
273
+ toCleanObject: (req) => cleanObject(TosUpdateRequest.toObject(req)),
274
+ };
275
+
276
+ const TransferRequest = {
277
+ toObject: (req) => snakeize(req),
278
+ toCleanObject: (req) => cleanObject(TransferRequest.toObject(req)),
279
+ };
280
+
281
+ const VALID_STATUSES = ['succeeded', 'failed'];
282
+ function validate({ status }) {
283
+ if (!status || !VALID_STATUSES.includes(status)) {
284
+ throw new Error(`Invalid status: "${status}". Must be one of: ${VALID_STATUSES.join(', ')}`);
285
+ }
286
+ }
287
+ const TransferUpdateRequest = {
288
+ toObject: (req = {}) => {
289
+ validate(req);
290
+ return { status: req.status };
291
+ },
292
+ toCleanObject: (req = {}) => cleanObject(TransferUpdateRequest.toObject(req)),
293
+ };
294
+
295
+ function validatePassword(password) {
296
+ if (!password || password.length < 6) {
297
+ throw new ValidationError('Invalid password');
298
+ }
299
+ }
300
+ const UserCredentialRequest = {
301
+ toObject: (req) => {
302
+ validatePassword(req.password);
303
+ return { password: req.password };
304
+ },
305
+ };
306
+ function validateUpdate(req) {
307
+ if (req.password)
308
+ validatePassword(req.password);
309
+ if (req.password && req.isActive != null) {
310
+ throw new ValidationError('Only one property can be updated at a time');
311
+ }
312
+ }
313
+ const UserCredentialUpdateRequest = {
314
+ toObject: (req) => {
315
+ validateUpdate(req);
316
+ return {
317
+ password: req.password,
318
+ is_active: req.isActive,
319
+ };
320
+ },
321
+ // Mirrors the old class override: a `null` password (used to explicitly
322
+ // clear/reset it) survives the null-strip that every other field gets.
323
+ toCleanObject: (req) => {
324
+ const obj = UserCredentialUpdateRequest.toObject(req);
325
+ const result = {};
326
+ Object.keys(obj).forEach((key) => {
327
+ if (key === 'password' && obj[key] === null) {
328
+ result[key] = null;
329
+ return;
330
+ }
331
+ if (obj[key] != null)
332
+ result[key] = obj[key];
333
+ });
334
+ return result;
335
+ },
336
+ };
337
+
338
+ const UserLoginRequest = {
339
+ toObject: (req) => ({
340
+ password: req.password,
341
+ user_id: req.userId ?? 'me',
342
+ }),
343
+ };
344
+
345
+ const UserReportCreateRequest = {
346
+ toObject: (req = {}) => snakeize(req),
347
+ toCleanObject: (req = {}) => cleanObject(UserReportCreateRequest.toObject(req)),
348
+ };
349
+
350
+ const UserReportUpdateRequest = {
351
+ toObject: (req = {}) => snakeize(req),
352
+ toCleanObject: (req = {}) => cleanObject(UserReportUpdateRequest.toObject(req)),
353
+ };
354
+
355
+ const kycFileToCleanObject = (req) => req ? cleanObject(snakeize(req)) : undefined;
356
+ const UserUpdateRequest = {
357
+ toObject: (req = {}) => ({
358
+ address: req.address
359
+ ? AddressUpdateRequest.toCleanObject(req.address)
360
+ : undefined,
361
+ blacklist_validation_status: req.blacklistValidationStatus,
362
+ country_of_birth: req.countryOfBirth,
363
+ curp_document_uri: req.curpDocumentUri,
364
+ email_address: req.emailAddress,
365
+ fiscal_regime_code: req.fiscalRegimeCode,
366
+ govt_id: kycFileToCleanObject(req.govtId),
367
+ is_dormant: req.isDormant,
368
+ is_fraud: req.isFraud,
369
+ is_pld_blocked: req.isPldBlocked,
370
+ is_security_mode: req.isSecurityMode,
371
+ phone_number: req.phoneNumber,
372
+ profession: req.profession,
373
+ proof_of_life: kycFileToCleanObject(req.proofOfLife),
374
+ proof_of_address: kycFileToCleanObject(req.proofOfAddress),
375
+ requiredLevel: req.requiredLevel,
376
+ rfc: req.rfc,
377
+ status: req.status,
378
+ terms_of_service: req.termsOfService
379
+ ? TosUpdateRequest.toObject(req.termsOfService)
380
+ : undefined,
381
+ verification_id: req.verificationId,
382
+ user_type: req.userType,
383
+ }),
384
+ toCleanObject: (req = {}) => cleanObject(UserUpdateRequest.toObject(req)),
385
+ };
386
+
387
+ function validateEmail(email) {
388
+ return /^(([^<>()[\]\\.,;:\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,}))$/.test(email);
389
+ }
390
+ function validatePhone(phone) {
391
+ return /^\+?[0-9]{10,15}$/.test(phone);
392
+ }
393
+ // Only `Email`/`Phone` recipients are validated and carried through — any
394
+ // other `type` drops `recipient` entirely, mirroring the original setter
395
+ // (which never assigned `_recipient` outside those two cases).
396
+ function resolveRecipient(req) {
397
+ if (!req.recipient)
398
+ return undefined;
399
+ switch (req.type) {
400
+ case VerificationType.Email:
401
+ if (!validateEmail(req.recipient)) {
402
+ throw new ValidationError('Invalid email address');
403
+ }
404
+ return req.recipient;
405
+ case VerificationType.Phone:
406
+ if (!validatePhone(req.recipient)) {
407
+ throw new ValidationError('Invalid Phone Number');
408
+ }
409
+ return req.recipient;
410
+ default:
411
+ return undefined;
412
+ }
413
+ }
414
+ const VerificationRequest = {
415
+ toObject: (req = {}) => ({
416
+ platform_id: req.platformId,
417
+ recipient: resolveRecipient(req),
418
+ type: req.type,
419
+ }),
420
+ toCleanObject: (req = {}) => cleanObject(VerificationRequest.toObject(req)),
421
+ };
422
+ const VerificationAttemptRequest = {
423
+ toObject: (req = {}) => ({
424
+ code: req.code,
425
+ }),
426
+ toCleanObject: (req = {}) => cleanObject(VerificationAttemptRequest.toObject(req)),
427
+ };
428
+
429
+ const WalletTransactionRequest = {
430
+ toObject: (req) => snakeize(req),
431
+ };
432
+
433
+ export { AlertUpdateRequest as A, CardActivationRequest as C, FileUploadRequest as F, KYCValidationsRequest as K, PartnerUserRequest as P, ReportGenerateRequest as R, SavingRequest as S, TransferRequest as T, UserUpdateRequest as U, VerificationRequest as V, WalletTransactionRequest as W, ApiKeyUpdateRequest as a, ArpcRequest as b, CardRequest as c, CardUpdateRequest as d, CardValidationRequest as e, FraudFundsTransferRequest as f, SessionRequest as g, TransferUpdateRequest as h, UserCredentialRequest as i, UserCredentialUpdateRequest as j, UserLoginRequest as k, UserReportCreateRequest as l, UserReportUpdateRequest as m, VerificationAttemptRequest as n, AddressUpdateRequest as o, TosUpdateRequest as p };
@@ -0,0 +1 @@
1
+ export * from '../build/dts/errors';
package/jwt/index.d.ts ADDED
@@ -0,0 +1 @@
1
+ export * from '../build/dts/jwt';
package/package.json CHANGED
@@ -1,36 +1,47 @@
1
1
  {
2
2
  "name": "@cuenca-mx/cuenca-js",
3
- "version": "1.2.2-dev0",
3
+ "version": "2.0.0-dev0",
4
4
  "description": "Cuenca client for JS",
5
5
  "main": "./build/index.cjs",
6
6
  "module": "./build/index.mjs",
7
7
  "browser": "./build/umd/cuenca.umd.js",
8
+ "types": "./build/dts/index.d.ts",
9
+ "sideEffects": false,
8
10
  "files": [
9
- "build/**/*"
11
+ "build/**/*",
12
+ "errors/**/*",
13
+ "jwt/**/*",
14
+ "requests/**/*",
15
+ "types/**/*"
10
16
  ],
11
17
  "exports": {
12
18
  ".": {
19
+ "types": "./build/dts/index.d.ts",
13
20
  "import": "./build/index.mjs",
14
21
  "require": "./build/index.cjs"
15
22
  },
16
23
  "./errors": {
24
+ "types": "./build/dts/errors.d.ts",
17
25
  "import": "./build/errors/index.mjs",
18
26
  "require": "./build/errors/index.cjs"
19
27
  },
20
28
  "./jwt": {
29
+ "types": "./build/dts/jwt.d.ts",
21
30
  "import": "./build/jwt/index.mjs",
22
31
  "require": "./build/jwt/index.cjs"
23
32
  },
24
33
  "./requests": {
34
+ "types": "./build/dts/requests/index.d.ts",
25
35
  "import": "./build/requests/index.mjs",
26
36
  "require": "./build/requests/index.cjs"
27
37
  },
28
38
  "./types": {
39
+ "types": "./build/dts/types/index.d.ts",
29
40
  "import": "./build/types/index.mjs",
30
41
  "require": "./build/types/index.cjs"
31
42
  }
32
43
  },
33
- "packageManager": "yarn@3.0.2",
44
+ "packageManager": "yarn@3.2.0",
34
45
  "type": "module",
35
46
  "repository": {
36
47
  "type": "git",
@@ -45,9 +56,12 @@
45
56
  "url": "https://github.com/cuenca-mx/cuenca-js/issues"
46
57
  },
47
58
  "homepage": "https://cuenca.com",
59
+ "engines": {
60
+ "node": ">=20"
61
+ },
48
62
  "scripts": {
49
- "build": "rm -rf build/ && yarn rollup --config",
50
- "test": "yarn node --experimental-vm-modules $(yarn bin jest)",
63
+ "build": "rm -rf build/ tsconfig.tsbuildinfo && yarn rollup --config && yarn tsc -p tsconfig.json && yarn tsc-alias -p tsconfig.json --outDir build/dts",
64
+ "test": "vitest run --coverage",
51
65
  "publish": "yarn build && yarn npm publish",
52
66
  "dev": "rm -rf build/ && yarn rollup --config && yarn node ../example.cjs",
53
67
  "example": "yarn node ../example.cjs"
@@ -55,12 +69,16 @@
55
69
  "devDependencies": {
56
70
  "@rollup/plugin-json": "^4.1.0",
57
71
  "@rollup/plugin-node-resolve": "^13.1.1",
58
- "jest": "^27.4.5",
72
+ "@rollup/plugin-typescript": "^11.1.6",
73
+ "@vitest/coverage-v8": "^1.6.0",
59
74
  "rollup": "^2.61.1",
60
- "rollup-plugin-terser": "^7.0.2"
75
+ "rollup-plugin-terser": "^7.0.2",
76
+ "tsc-alias": "^1.8.10",
77
+ "typescript": "^4.9.5",
78
+ "vite-tsconfig-paths": "^4.3.2",
79
+ "vitest": "^1.6.0"
61
80
  },
62
81
  "dependencies": {
63
- "axios": "^0.24.0",
64
82
  "buffer": "^6.0.3"
65
83
  }
66
84
  }
@@ -0,0 +1 @@
1
+ export * from '../build/dts/requests';
@@ -0,0 +1 @@
1
+ export * from '../build/dts/types';