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

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 (193) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/build/data-2b32d8f3.mjs +634 -0
  3. package/build/data-70e6af8d.cjs +680 -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 +55 -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 +41 -0
  32. package/build/dts/models/kycValidations.d.ts +22 -0
  33. package/build/dts/models/legalPerson.d.ts +10 -0
  34. package/build/dts/models/loginToken.d.ts +7 -0
  35. package/build/dts/models/operator.d.ts +17 -0
  36. package/build/dts/models/operatorLogin.d.ts +7 -0
  37. package/build/dts/models/partner.d.ts +25 -0
  38. package/build/dts/models/postalCode.d.ts +14 -0
  39. package/build/dts/models/saving.d.ts +11 -0
  40. package/build/dts/models/serviceProvider.d.ts +10 -0
  41. package/build/dts/models/session.d.ts +14 -0
  42. package/build/dts/models/statement.d.ts +10 -0
  43. package/build/dts/models/transaction.d.ts +7 -0
  44. package/build/dts/models/transactionalProfile.d.ts +14 -0
  45. package/build/dts/models/transfer.d.ts +15 -0
  46. package/build/dts/models/user.d.ts +42 -0
  47. package/build/dts/models/userCredential.d.ts +10 -0
  48. package/build/dts/models/userLogin.d.ts +9 -0
  49. package/build/dts/models/userReport.d.ts +48 -0
  50. package/build/dts/models/userTosAgreement.d.ts +13 -0
  51. package/build/dts/models/verification.d.ts +12 -0
  52. package/build/dts/models/wallet.d.ts +8 -0
  53. package/build/dts/models/walletTransaction.d.ts +10 -0
  54. package/build/dts/models/whatsAppTransfer.d.ts +16 -0
  55. package/build/dts/requests/addressUpdateRequest.d.ts +17 -0
  56. package/build/dts/requests/alertRequest.d.ts +31 -0
  57. package/build/dts/requests/apiKeyRequest.d.ts +9 -0
  58. package/build/dts/requests/arpcRequest.d.ts +16 -0
  59. package/build/dts/requests/base.d.ts +2 -0
  60. package/build/dts/requests/cardActivationRequest.d.ts +11 -0
  61. package/build/dts/requests/cardRequest.d.ts +18 -0
  62. package/build/dts/requests/cardValidationRequest.d.ts +15 -0
  63. package/build/dts/requests/fileUploadRequest.d.ts +12 -0
  64. package/build/dts/requests/fraudFundsTransferRequest.d.ts +13 -0
  65. package/build/dts/requests/index.d.ts +28 -0
  66. package/build/dts/requests/kycValidationsRequest.d.ts +10 -0
  67. package/build/dts/requests/legalPersonRequest.d.ts +33 -0
  68. package/build/dts/requests/operatorLoginRequest.d.ts +9 -0
  69. package/build/dts/requests/operatorRequest.d.ts +24 -0
  70. package/build/dts/requests/partnerUserRequest.d.ts +100 -0
  71. package/build/dts/requests/reportGenerateRequest.d.ts +8 -0
  72. package/build/dts/requests/savingRequest.d.ts +11 -0
  73. package/build/dts/requests/sessionRequest.d.ts +12 -0
  74. package/build/dts/requests/tosUpdateRequest.d.ts +11 -0
  75. package/build/dts/requests/transferRequest.d.ts +12 -0
  76. package/build/dts/requests/transferUpdateRequest.d.ts +8 -0
  77. package/build/dts/requests/userCredentialRequest.d.ts +15 -0
  78. package/build/dts/requests/userLoginRequest.d.ts +8 -0
  79. package/build/dts/requests/userReportCreateRequest.d.ts +9 -0
  80. package/build/dts/requests/userReportUpdateRequest.d.ts +28 -0
  81. package/build/dts/requests/userRequest.d.ts +39 -0
  82. package/build/dts/requests/verificationRequest.d.ts +17 -0
  83. package/build/dts/requests/walletTransactionRequest.d.ts +9 -0
  84. package/build/dts/resources/accounts.d.ts +33 -0
  85. package/build/dts/resources/alerts.d.ts +54 -0
  86. package/build/dts/resources/apiKeys.d.ts +63 -0
  87. package/build/dts/resources/arpc.d.ts +18 -0
  88. package/build/dts/resources/balanceEntries.d.ts +37 -0
  89. package/build/dts/resources/base.d.ts +135 -0
  90. package/build/dts/resources/billPayments.d.ts +34 -0
  91. package/build/dts/resources/bridgeAccounts.d.ts +49 -0
  92. package/build/dts/resources/bridgeBankAccounts.d.ts +33 -0
  93. package/build/dts/resources/bridgeClabes.d.ts +27 -0
  94. package/build/dts/resources/bridgeTransactions.d.ts +36 -0
  95. package/build/dts/resources/cardActivations.d.ts +19 -0
  96. package/build/dts/resources/cardTransactions.d.ts +34 -0
  97. package/build/dts/resources/cardValidations.d.ts +19 -0
  98. package/build/dts/resources/cards.d.ts +63 -0
  99. package/build/dts/resources/commissions.d.ts +34 -0
  100. package/build/dts/resources/deposits.d.ts +34 -0
  101. package/build/dts/resources/files.d.ts +30 -0
  102. package/build/dts/resources/fraudFundsTransfers.d.ts +18 -0
  103. package/build/dts/resources/index.d.ts +39 -0
  104. package/build/dts/resources/kycValidations.d.ts +53 -0
  105. package/build/dts/resources/legalPersons.d.ts +54 -0
  106. package/build/dts/resources/loginTokens.d.ts +17 -0
  107. package/build/dts/resources/operatorLogins.d.ts +19 -0
  108. package/build/dts/resources/operators.d.ts +54 -0
  109. package/build/dts/resources/partners.d.ts +54 -0
  110. package/build/dts/resources/postalCodes.d.ts +24 -0
  111. package/build/dts/resources/reports.d.ts +8 -0
  112. package/build/dts/resources/savings.d.ts +62 -0
  113. package/build/dts/resources/serviceProviders.d.ts +32 -0
  114. package/build/dts/resources/sessions.d.ts +43 -0
  115. package/build/dts/resources/statements.d.ts +44 -0
  116. package/build/dts/resources/transfers.d.ts +64 -0
  117. package/build/dts/resources/userCredentials.d.ts +30 -0
  118. package/build/dts/resources/userLogins.d.ts +28 -0
  119. package/build/dts/resources/userReports.d.ts +54 -0
  120. package/build/dts/resources/users.d.ts +56 -0
  121. package/build/dts/resources/usersTosAgreements.d.ts +16 -0
  122. package/build/dts/resources/verifications.d.ts +31 -0
  123. package/build/dts/resources/walletTransactions.d.ts +48 -0
  124. package/build/dts/resources/whatsAppTransfers.d.ts +34 -0
  125. package/build/dts/types/enums.d.ts +590 -0
  126. package/build/dts/types/identities/address.d.ts +25 -0
  127. package/build/dts/types/identities/alertLog.d.ts +11 -0
  128. package/build/dts/types/identities/audit.d.ts +10 -0
  129. package/build/dts/types/identities/businessDetails.d.ts +9 -0
  130. package/build/dts/types/identities/externalAccount.d.ts +8 -0
  131. package/build/dts/types/identities/index.d.ts +17 -0
  132. package/build/dts/types/identities/kycFile.d.ts +14 -0
  133. package/build/dts/types/identities/legalRepresentatives.d.ts +12 -0
  134. package/build/dts/types/identities/license.d.ts +10 -0
  135. package/build/dts/types/identities/moralOperation.d.ts +8 -0
  136. package/build/dts/types/identities/physicalPerson.d.ts +12 -0
  137. package/build/dts/types/identities/shareholderMoral.d.ts +12 -0
  138. package/build/dts/types/identities/shareholderPhysical.d.ts +9 -0
  139. package/build/dts/types/identities/tosAgreements.d.ts +10 -0
  140. package/build/dts/types/identities/transactionalProfileServices.d.ts +10 -0
  141. package/build/dts/types/identities/verificationError.d.ts +10 -0
  142. package/build/dts/types/identities/vulnerableActivity.d.ts +10 -0
  143. package/build/dts/types/index.d.ts +3 -0
  144. package/build/dts/types/queries/accountQuery.d.ts +4 -0
  145. package/build/dts/types/queries/alertQuery.d.ts +12 -0
  146. package/build/dts/types/queries/apiKeyQuery.d.ts +4 -0
  147. package/build/dts/types/queries/balanceEntryQuery.d.ts +5 -0
  148. package/build/dts/types/queries/billPaymentQuery.d.ts +4 -0
  149. package/build/dts/types/queries/bridgeAccountQuery.d.ts +4 -0
  150. package/build/dts/types/queries/bridgeBankAccountQuery.d.ts +4 -0
  151. package/build/dts/types/queries/bridgeQuery.d.ts +7 -0
  152. package/build/dts/types/queries/bridgeTransactionQuery.d.ts +6 -0
  153. package/build/dts/types/queries/cardTransactionQuery.d.ts +4 -0
  154. package/build/dts/types/queries/cardsQuery.d.ts +4 -0
  155. package/build/dts/types/queries/depositQuery.d.ts +5 -0
  156. package/build/dts/types/queries/index.d.ts +27 -0
  157. package/build/dts/types/queries/operatorQuery.d.ts +4 -0
  158. package/build/dts/types/queries/partnerQuery.d.ts +4 -0
  159. package/build/dts/types/queries/postalCodeQuery.d.ts +4 -0
  160. package/build/dts/types/queries/queryParams.d.ts +15 -0
  161. package/build/dts/types/queries/statementQuery.d.ts +6 -0
  162. package/build/dts/types/queries/transactionQuery.d.ts +4 -0
  163. package/build/dts/types/queries/transferQuery.d.ts +7 -0
  164. package/build/dts/types/queries/userQuery.d.ts +11 -0
  165. package/build/dts/types/queries/userReportQuery.d.ts +4 -0
  166. package/build/dts/types/queries/walletQuery.d.ts +4 -0
  167. package/build/dts/types/queries/walletTransactionQuery.d.ts +4 -0
  168. package/build/errors/index.cjs +10 -0
  169. package/build/errors/index.mjs +10 -1
  170. package/build/index.cjs +1373 -2885
  171. package/build/index.mjs +1375 -2886
  172. package/build/jwt/index.cjs +11 -8
  173. package/build/jwt/index.mjs +11 -8
  174. package/build/requests/index.cjs +9 -22
  175. package/build/requests/index.mjs +2 -26
  176. package/build/types/index.cjs +20 -56
  177. package/build/types/index.mjs +9 -34
  178. package/build/umd/cuenca.umd.js +1 -1
  179. package/build/vulnerableActivity-17f0ce66.mjs +278 -0
  180. package/build/vulnerableActivity-3cb7b0ed.cjs +299 -0
  181. package/build/walletTransactionRequest-7f10c2a2.mjs +496 -0
  182. package/build/walletTransactionRequest-dd13c569.cjs +529 -0
  183. package/errors/index.d.ts +1 -0
  184. package/jwt/index.d.ts +1 -0
  185. package/package.json +26 -8
  186. package/requests/index.d.ts +1 -0
  187. package/types/index.d.ts +1 -0
  188. package/build/data-1fd00e5c.mjs +0 -1199
  189. package/build/data-72c37b60.cjs +0 -1240
  190. package/build/vulnerableActivity-7cc1734f.cjs +0 -867
  191. package/build/vulnerableActivity-bd344332.mjs +0 -831
  192. package/build/walletTransactionRequest-05d5305a.mjs +0 -1512
  193. package/build/walletTransactionRequest-c6a5c64d.cjs +0 -1539
@@ -0,0 +1,529 @@
1
+ 'use strict';
2
+
3
+ var data = require('./data-70e6af8d.cjs');
4
+ var errors_index = require('./errors/index.cjs');
5
+
6
+ // Strips null/undefined-valued keys from a wire object. Replaces the old
7
+ // `BaseRequest.toCleanObject`: requests are plain interfaces plus functions
8
+ // now (see docs/adr/0001-contrato-v2.md, decision 9's sibling change for
9
+ // #63), so there's no class hierarchy left to hang this off of.
10
+ function cleanObject(obj) {
11
+ const result = {};
12
+ Object.keys(obj).forEach((key) => {
13
+ if (obj[key] != null)
14
+ result[key] = obj[key];
15
+ });
16
+ return result;
17
+ }
18
+
19
+ const AddressUpdateRequest = {
20
+ toObject: (req = {}) => data.snakeize(req),
21
+ toCleanObject: (req = {}) => cleanObject(AddressUpdateRequest.toObject(req)),
22
+ };
23
+
24
+ const AlertUpdateRequest = {
25
+ toObject: (req = {}) => data.snakeize(req),
26
+ toCleanObject: (req = {}) => cleanObject(AlertUpdateRequest.toObject(req)),
27
+ };
28
+
29
+ const ApiKeyUpdateRequest = {
30
+ toObject: (req) => data.snakeize(req),
31
+ toCleanObject: (req) => cleanObject(ApiKeyUpdateRequest.toObject(req)),
32
+ };
33
+
34
+ function validate$4(req) {
35
+ if (req.number) {
36
+ const valid = req.number.length === 16 && /^\d{16}/.test(req.number);
37
+ if (!valid)
38
+ throw new errors_index.ValidationError('Invalid number');
39
+ }
40
+ if (req.arpcMethod) {
41
+ if (req.arpcMethod.length !== 1) {
42
+ throw new errors_index.ValidationError('Invalid method');
43
+ }
44
+ }
45
+ }
46
+ const ArpcRequest = {
47
+ toObject: (req = {}) => {
48
+ validate$4(req);
49
+ return data.snakeize(req);
50
+ },
51
+ toCleanObject: (req = {}) => cleanObject(ArpcRequest.toObject(req)),
52
+ };
53
+
54
+ function validate$3({ number, expMonth, expYear, cvv2, }) {
55
+ if (!number || number.length !== 16 || !/^\d{16}/.test(number)) {
56
+ throw new errors_index.ValidationError('Invalid number');
57
+ }
58
+ if (!expMonth || expMonth < 1 || expMonth > 12) {
59
+ throw new errors_index.ValidationError('Invalid expiration month');
60
+ }
61
+ if (!expYear || expYear < 18 || expYear > 99) {
62
+ throw new errors_index.ValidationError('Invalid expiration year');
63
+ }
64
+ if (!cvv2 || cvv2.length !== 3 || !/^\d{3}/.test(cvv2)) {
65
+ throw new errors_index.ValidationError('Invalid cvv2');
66
+ }
67
+ }
68
+ const CardActivationRequest = {
69
+ toObject: (req) => {
70
+ validate$3(req);
71
+ return {
72
+ number: req.number.trim(),
73
+ exp_month: req.expMonth,
74
+ exp_year: req.expYear,
75
+ cvv2: req.cvv2,
76
+ };
77
+ },
78
+ toCleanObject: (req) => cleanObject(CardActivationRequest.toObject(req)),
79
+ };
80
+
81
+ const CardRequest = {
82
+ toObject: (req) => data.snakeize(req),
83
+ toCleanObject: (req) => cleanObject(CardRequest.toObject(req)),
84
+ };
85
+ const CardUpdateRequest = {
86
+ toObject: (req) => data.snakeize(req),
87
+ toCleanObject: (req) => cleanObject(CardUpdateRequest.toObject(req)),
88
+ };
89
+
90
+ function validate$2(req) {
91
+ if (req.cvv && req.cvv.length !== 3) {
92
+ throw new errors_index.ValidationError('Invalid cvv');
93
+ }
94
+ if (req.cvv2 && req.cvv2.length !== 3) {
95
+ throw new errors_index.ValidationError('Invalid cvv2');
96
+ }
97
+ if (req.expMonth && (req.expMonth < 1 || req.expMonth > 12)) {
98
+ throw new errors_index.ValidationError('Invalid expiration month');
99
+ }
100
+ if (req.expYear && (req.expYear < 18 || req.expYear > 99)) {
101
+ throw new errors_index.ValidationError('Invalid expiration year');
102
+ }
103
+ if (req.icvv && req.icvv.length !== 3) {
104
+ throw new errors_index.ValidationError('Invalid icvv');
105
+ }
106
+ const { number } = req;
107
+ if (!number || number.length !== 16 || !/^\d{16}/.test(number)) {
108
+ throw new errors_index.ValidationError('Invalid number');
109
+ }
110
+ }
111
+ const CardValidationRequest = {
112
+ toObject: (req) => {
113
+ validate$2(req);
114
+ return data.snakeize(req);
115
+ },
116
+ toCleanObject: (req) => cleanObject(CardValidationRequest.toObject(req)),
117
+ };
118
+
119
+ const FileUploadRequest = {
120
+ toObject: (req) => ({
121
+ extension: req.extension,
122
+ file: req.file,
123
+ is_back: req.isBack ?? false,
124
+ type: req.type,
125
+ user_id: req.userId ?? 'me',
126
+ }),
127
+ toCleanObject: (req) => cleanObject(FileUploadRequest.toObject(req)),
128
+ };
129
+
130
+ const FraudFundsTransferRequest = {
131
+ toObject: (req) => data.snakeize(req),
132
+ toCleanObject: (req) => cleanObject(FraudFundsTransferRequest.toObject(req)),
133
+ };
134
+
135
+ const KYCValidationsRequest = {
136
+ toObject: (req) => ({
137
+ force: req.force,
138
+ [req.isBridge ? 'account_id' : 'user_id']: req.userId,
139
+ }),
140
+ toCleanObject: (req) => cleanObject(KYCValidationsRequest.toObject(req)),
141
+ };
142
+
143
+ const legalRepresentativeToObject$1 = (req) => cleanObject({
144
+ names: req.names,
145
+ first_surname: req.firstSurname,
146
+ second_surname: req.secondSurname,
147
+ curp: req.curp,
148
+ rfc: req.rfc,
149
+ job: req.job,
150
+ phone_number: req.phoneNumber,
151
+ email_address: req.emailAddress,
152
+ address: req.address
153
+ ? AddressUpdateRequest.toCleanObject(req.address)
154
+ : undefined,
155
+ });
156
+ const LegalPersonRequest = {
157
+ toObject: (req) => ({
158
+ legal_name: req.legalName,
159
+ rfc: req.rfc,
160
+ address: AddressUpdateRequest.toCleanObject(req.address),
161
+ legal_representatives: req.legalRepresentatives.map(legalRepresentativeToObject$1),
162
+ }),
163
+ toCleanObject: (req) => cleanObject(LegalPersonRequest.toObject(req)),
164
+ };
165
+ const LegalPersonUpdateRequest = {
166
+ toObject: (req = {}) => ({
167
+ legal_name: req.legalName,
168
+ rfc: req.rfc,
169
+ address: req.address
170
+ ? AddressUpdateRequest.toCleanObject(req.address)
171
+ : undefined,
172
+ legal_representatives: req.legalRepresentatives?.map(legalRepresentativeToObject$1),
173
+ }),
174
+ toCleanObject: (req = {}) => cleanObject(LegalPersonUpdateRequest.toObject(req)),
175
+ };
176
+
177
+ const OperatorRequest = {
178
+ toObject: (req) => ({
179
+ name: req.name,
180
+ email: req.email,
181
+ phone: req.phone,
182
+ company_user_id: req.companyUserId,
183
+ role: req.role,
184
+ status: req.status,
185
+ }),
186
+ toCleanObject: (req) => cleanObject(OperatorRequest.toObject(req)),
187
+ };
188
+ const OperatorUpdateRequest = {
189
+ toObject: (req = {}) => ({
190
+ name: req.name,
191
+ phone: req.phone,
192
+ role: req.role,
193
+ status: req.status,
194
+ }),
195
+ toCleanObject: (req = {}) => cleanObject(OperatorUpdateRequest.toObject(req)),
196
+ };
197
+
198
+ const OperatorLoginRequest = {
199
+ toObject: (req) => ({
200
+ email: req.email,
201
+ password: req.password,
202
+ }),
203
+ toCleanObject: (req) => cleanObject(OperatorLoginRequest.toObject(req)),
204
+ };
205
+
206
+ const servicesToObject = (req) => req ? data.snakeize(req) : undefined;
207
+ const transactionalProfileToObject = (req) => {
208
+ if (!req)
209
+ return undefined;
210
+ return {
211
+ currency: req.currency,
212
+ monthly_amount: req.monthlyAmount,
213
+ recipients_num: req.recipientsNum,
214
+ payers_num: req.payersNum,
215
+ deposits: servicesToObject(req.deposits),
216
+ withdrawal: servicesToObject(req.withdrawal),
217
+ };
218
+ };
219
+ const businessDetailsToObject = (req) => req ? data.snakeize(req) : undefined;
220
+ const shareholderPhysicalToObject = (req) => data.snakeize(req);
221
+ const legalRepresentativeToObject = (req) => ({
222
+ ...shareholderPhysicalToObject(req),
223
+ job: req.job,
224
+ phone_number: req.phoneNumber,
225
+ email_address: req.emailAddress,
226
+ address: req.address
227
+ ? AddressUpdateRequest.toCleanObject(req.address)
228
+ : undefined,
229
+ });
230
+ const shareholderMoralToObject = (req) => ({
231
+ name: req.name,
232
+ percentage: req.percentage,
233
+ shareholders: req.shareholders?.map(shareholderPhysicalToObject),
234
+ legal_representatives: req.legalRepresentatives?.map(legalRepresentativeToObject),
235
+ });
236
+ const vulnerableActivityToObject = (req) => req ? data.snakeize(req) : undefined;
237
+ const licenseToObject = (req) => req ? data.snakeize(req) : undefined;
238
+ const auditToObject = (req) => req ? data.snakeize(req) : undefined;
239
+ const PartnerUserRequest = {
240
+ toObject: (req = {}) => ({
241
+ address: req.address
242
+ ? AddressUpdateRequest.toCleanObject(req.address)
243
+ : undefined,
244
+ audit: auditToObject(req.audit),
245
+ business_details: businessDetailsToObject(req.businessDetails),
246
+ business_name: req.businessName,
247
+ clabe: req.clabe,
248
+ created_at: req.createdAt,
249
+ documentation_url: req.documentationUrl,
250
+ email_address: req.emailAddress,
251
+ external_account: req.externalAccount
252
+ ? { account: req.externalAccount.account, bank: req.externalAccount.bank }
253
+ : undefined,
254
+ folio: req.folio,
255
+ id: req.id,
256
+ incorporation_date: req.incorporationDate,
257
+ legal_name: req.legalName,
258
+ legal_representatives: req.legalRepresentatives?.map(legalRepresentativeToObject),
259
+ level: req.level,
260
+ license: licenseToObject(req.license),
261
+ meta: req.meta,
262
+ nationality: req.nationality,
263
+ phone_number: req.phoneNumber,
264
+ platform_id: req.platformId,
265
+ required_level: req.requiredLevel,
266
+ rfc: req.rfc,
267
+ shareholders: req.shareholders?.map(shareholderMoralToObject),
268
+ status: req.status,
269
+ transactional_profile: transactionalProfileToObject(req.transactionalProfile),
270
+ updated_at: req.updatedAt,
271
+ user_id: req.userId,
272
+ user_type: req.userType,
273
+ vulnerable_activity: vulnerableActivityToObject(req.vulnerableActivity),
274
+ web_site: req.webSite,
275
+ }),
276
+ toCleanObject: (req = {}) => cleanObject(PartnerUserRequest.toObject(req)),
277
+ };
278
+
279
+ const ReportGenerateRequest = {
280
+ toObject: (req = {}) => data.snakeize(req),
281
+ toCleanObject: (req = {}) => cleanObject(ReportGenerateRequest.toObject(req)),
282
+ };
283
+
284
+ function validate$1({ goalDate }) {
285
+ if (!goalDate)
286
+ return;
287
+ // Both calls receive a truthy input (`goalDate`, `Date.now()`), so
288
+ // `dateToUTC` — which only returns `null` for a falsy input — always
289
+ // returns a `Date` here.
290
+ const utcGoalDate = data.dateToUTC(goalDate);
291
+ const utcNow = data.dateToUTC(Date.now());
292
+ if (utcGoalDate.getTime() <= utcNow.getTime()) {
293
+ throw new errors_index.ValidationError('The goal_date always need to be higher than now');
294
+ }
295
+ }
296
+ const SavingRequest = {
297
+ toObject: (req = {}) => {
298
+ validate$1(req);
299
+ return {
300
+ category: req.category,
301
+ goal_amount: req.goalAmount,
302
+ goal_date: req.goalDate,
303
+ name: req.name,
304
+ };
305
+ },
306
+ toCleanObject: (req = {}) => cleanObject(SavingRequest.toObject(req)),
307
+ };
308
+
309
+ const SessionRequest = {
310
+ toObject: (req) => ({
311
+ failure_url: req.failureUrl,
312
+ success_url: req.successUrl,
313
+ type: req.type,
314
+ [req.isBridge ? 'account_id' : 'user_id']: req.userId,
315
+ }),
316
+ toCleanObject: (req) => cleanObject(SessionRequest.toObject(req)),
317
+ };
318
+
319
+ function validateIp(ip) {
320
+ if (!ip)
321
+ throw new errors_index.ValidationError('missing ip address');
322
+ const blocks = ip
323
+ .split('.')
324
+ .every((block) => Number(block) >= 0 && Number(block) <= 255);
325
+ if (!blocks)
326
+ throw new errors_index.ValidationError('Invalid ip address');
327
+ }
328
+ const TosUpdateRequest = {
329
+ toObject: (req) => {
330
+ validateIp(req.ip);
331
+ return {
332
+ ip: req.ip,
333
+ location: req.location,
334
+ type: req.type,
335
+ version: req.version,
336
+ };
337
+ },
338
+ toCleanObject: (req) => cleanObject(TosUpdateRequest.toObject(req)),
339
+ };
340
+
341
+ const TransferRequest = {
342
+ toObject: (req) => data.snakeize(req),
343
+ toCleanObject: (req) => cleanObject(TransferRequest.toObject(req)),
344
+ };
345
+
346
+ const VALID_STATUSES = ['succeeded', 'failed'];
347
+ function validate({ status }) {
348
+ if (!status || !VALID_STATUSES.includes(status)) {
349
+ throw new Error(`Invalid status: "${status}". Must be one of: ${VALID_STATUSES.join(', ')}`);
350
+ }
351
+ }
352
+ const TransferUpdateRequest = {
353
+ toObject: (req = {}) => {
354
+ validate(req);
355
+ return { status: req.status };
356
+ },
357
+ toCleanObject: (req = {}) => cleanObject(TransferUpdateRequest.toObject(req)),
358
+ };
359
+
360
+ function validatePassword(password) {
361
+ if (!password || password.length < 6) {
362
+ throw new errors_index.ValidationError('Invalid password');
363
+ }
364
+ }
365
+ const UserCredentialRequest = {
366
+ toObject: (req) => {
367
+ validatePassword(req.password);
368
+ return { password: req.password };
369
+ },
370
+ };
371
+ function validateUpdate(req) {
372
+ if (req.password)
373
+ validatePassword(req.password);
374
+ if (req.password && req.isActive != null) {
375
+ throw new errors_index.ValidationError('Only one property can be updated at a time');
376
+ }
377
+ }
378
+ const UserCredentialUpdateRequest = {
379
+ toObject: (req) => {
380
+ validateUpdate(req);
381
+ return {
382
+ password: req.password,
383
+ is_active: req.isActive,
384
+ };
385
+ },
386
+ // Mirrors the old class override: a `null` password (used to explicitly
387
+ // clear/reset it) survives the null-strip that every other field gets.
388
+ toCleanObject: (req) => {
389
+ const obj = UserCredentialUpdateRequest.toObject(req);
390
+ const result = {};
391
+ Object.keys(obj).forEach((key) => {
392
+ if (key === 'password' && obj[key] === null) {
393
+ result[key] = null;
394
+ return;
395
+ }
396
+ if (obj[key] != null)
397
+ result[key] = obj[key];
398
+ });
399
+ return result;
400
+ },
401
+ };
402
+
403
+ const UserLoginRequest = {
404
+ toObject: (req) => ({
405
+ password: req.password,
406
+ user_id: req.userId ?? 'me',
407
+ }),
408
+ };
409
+
410
+ const UserReportCreateRequest = {
411
+ toObject: (req = {}) => data.snakeize(req),
412
+ toCleanObject: (req = {}) => cleanObject(UserReportCreateRequest.toObject(req)),
413
+ };
414
+
415
+ const UserReportUpdateRequest = {
416
+ toObject: (req = {}) => data.snakeize(req),
417
+ toCleanObject: (req = {}) => cleanObject(UserReportUpdateRequest.toObject(req)),
418
+ };
419
+
420
+ const kycFileToCleanObject = (req) => req ? cleanObject(data.snakeize(req)) : undefined;
421
+ const UserUpdateRequest = {
422
+ toObject: (req = {}) => ({
423
+ address: req.address
424
+ ? AddressUpdateRequest.toCleanObject(req.address)
425
+ : undefined,
426
+ blacklist_validation_status: req.blacklistValidationStatus,
427
+ country_of_birth: req.countryOfBirth,
428
+ curp_document_uri: req.curpDocumentUri,
429
+ email_address: req.emailAddress,
430
+ fiscal_regime_code: req.fiscalRegimeCode,
431
+ govt_id: kycFileToCleanObject(req.govtId),
432
+ is_dormant: req.isDormant,
433
+ is_fraud: req.isFraud,
434
+ is_pld_blocked: req.isPldBlocked,
435
+ is_security_mode: req.isSecurityMode,
436
+ phone_number: req.phoneNumber,
437
+ profession: req.profession,
438
+ proof_of_life: kycFileToCleanObject(req.proofOfLife),
439
+ proof_of_address: kycFileToCleanObject(req.proofOfAddress),
440
+ requiredLevel: req.requiredLevel,
441
+ rfc: req.rfc,
442
+ status: req.status,
443
+ terms_of_service: req.termsOfService
444
+ ? TosUpdateRequest.toObject(req.termsOfService)
445
+ : undefined,
446
+ verification_id: req.verificationId,
447
+ user_type: req.userType,
448
+ }),
449
+ toCleanObject: (req = {}) => cleanObject(UserUpdateRequest.toObject(req)),
450
+ };
451
+
452
+ function validateEmail(email) {
453
+ 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);
454
+ }
455
+ function validatePhone(phone) {
456
+ return /^\+?[0-9]{10,15}$/.test(phone);
457
+ }
458
+ // Only `Email`/`Phone` recipients are validated and carried through — any
459
+ // other `type` drops `recipient` entirely, mirroring the original setter
460
+ // (which never assigned `_recipient` outside those two cases).
461
+ function resolveRecipient(req) {
462
+ if (!req.recipient)
463
+ return undefined;
464
+ switch (req.type) {
465
+ case data.VerificationType.Email:
466
+ if (!validateEmail(req.recipient)) {
467
+ throw new errors_index.ValidationError('Invalid email address');
468
+ }
469
+ return req.recipient;
470
+ case data.VerificationType.Phone:
471
+ if (!validatePhone(req.recipient)) {
472
+ throw new errors_index.ValidationError('Invalid Phone Number');
473
+ }
474
+ return req.recipient;
475
+ default:
476
+ return undefined;
477
+ }
478
+ }
479
+ const VerificationRequest = {
480
+ toObject: (req = {}) => ({
481
+ platform_id: req.platformId,
482
+ recipient: resolveRecipient(req),
483
+ type: req.type,
484
+ }),
485
+ toCleanObject: (req = {}) => cleanObject(VerificationRequest.toObject(req)),
486
+ };
487
+ const VerificationAttemptRequest = {
488
+ toObject: (req = {}) => ({
489
+ code: req.code,
490
+ }),
491
+ toCleanObject: (req = {}) => cleanObject(VerificationAttemptRequest.toObject(req)),
492
+ };
493
+
494
+ const WalletTransactionRequest = {
495
+ toObject: (req) => data.snakeize(req),
496
+ };
497
+
498
+ exports.AddressUpdateRequest = AddressUpdateRequest;
499
+ exports.AlertUpdateRequest = AlertUpdateRequest;
500
+ exports.ApiKeyUpdateRequest = ApiKeyUpdateRequest;
501
+ exports.ArpcRequest = ArpcRequest;
502
+ exports.CardActivationRequest = CardActivationRequest;
503
+ exports.CardRequest = CardRequest;
504
+ exports.CardUpdateRequest = CardUpdateRequest;
505
+ exports.CardValidationRequest = CardValidationRequest;
506
+ exports.FileUploadRequest = FileUploadRequest;
507
+ exports.FraudFundsTransferRequest = FraudFundsTransferRequest;
508
+ exports.KYCValidationsRequest = KYCValidationsRequest;
509
+ exports.LegalPersonRequest = LegalPersonRequest;
510
+ exports.LegalPersonUpdateRequest = LegalPersonUpdateRequest;
511
+ exports.OperatorLoginRequest = OperatorLoginRequest;
512
+ exports.OperatorRequest = OperatorRequest;
513
+ exports.OperatorUpdateRequest = OperatorUpdateRequest;
514
+ exports.PartnerUserRequest = PartnerUserRequest;
515
+ exports.ReportGenerateRequest = ReportGenerateRequest;
516
+ exports.SavingRequest = SavingRequest;
517
+ exports.SessionRequest = SessionRequest;
518
+ exports.TosUpdateRequest = TosUpdateRequest;
519
+ exports.TransferRequest = TransferRequest;
520
+ exports.TransferUpdateRequest = TransferUpdateRequest;
521
+ exports.UserCredentialRequest = UserCredentialRequest;
522
+ exports.UserCredentialUpdateRequest = UserCredentialUpdateRequest;
523
+ exports.UserLoginRequest = UserLoginRequest;
524
+ exports.UserReportCreateRequest = UserReportCreateRequest;
525
+ exports.UserReportUpdateRequest = UserReportUpdateRequest;
526
+ exports.UserUpdateRequest = UserUpdateRequest;
527
+ exports.VerificationAttemptRequest = VerificationAttemptRequest;
528
+ exports.VerificationRequest = VerificationRequest;
529
+ exports.WalletTransactionRequest = WalletTransactionRequest;
@@ -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",
3
+ "version": "2.0.0-dev1",
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';