@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,461 @@
1
+ 'use strict';
2
+
3
+ var data = require('./data-ca00ac2d.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 servicesToObject = (req) => req ? data.snakeize(req) : undefined;
144
+ const transactionalProfileToObject = (req) => {
145
+ if (!req)
146
+ return undefined;
147
+ return {
148
+ currency: req.currency,
149
+ monthly_amount: req.monthlyAmount,
150
+ recipients_num: req.recipientsNum,
151
+ payers_num: req.payersNum,
152
+ deposits: servicesToObject(req.deposits),
153
+ withdrawal: servicesToObject(req.withdrawal),
154
+ };
155
+ };
156
+ const businessDetailsToObject = (req) => req ? data.snakeize(req) : undefined;
157
+ const shareholderPhysicalToObject = (req) => data.snakeize(req);
158
+ const legalRepresentativeToObject = (req) => ({
159
+ ...shareholderPhysicalToObject(req),
160
+ job: req.job,
161
+ phone_number: req.phoneNumber,
162
+ email_address: req.emailAddress,
163
+ address: req.address
164
+ ? AddressUpdateRequest.toCleanObject(req.address)
165
+ : undefined,
166
+ });
167
+ const shareholderMoralToObject = (req) => ({
168
+ name: req.name,
169
+ percentage: req.percentage,
170
+ shareholders: req.shareholders?.map(shareholderPhysicalToObject),
171
+ legal_representatives: req.legalRepresentatives?.map(legalRepresentativeToObject),
172
+ });
173
+ const vulnerableActivityToObject = (req) => req ? data.snakeize(req) : undefined;
174
+ const licenseToObject = (req) => req ? data.snakeize(req) : undefined;
175
+ const auditToObject = (req) => req ? data.snakeize(req) : undefined;
176
+ const PartnerUserRequest = {
177
+ toObject: (req = {}) => ({
178
+ address: req.address
179
+ ? AddressUpdateRequest.toCleanObject(req.address)
180
+ : undefined,
181
+ audit: auditToObject(req.audit),
182
+ business_details: businessDetailsToObject(req.businessDetails),
183
+ business_name: req.businessName,
184
+ clabe: req.clabe,
185
+ created_at: req.createdAt,
186
+ documentation_url: req.documentationUrl,
187
+ email_address: req.emailAddress,
188
+ external_account: req.externalAccount
189
+ ? { account: req.externalAccount.account, bank: req.externalAccount.bank }
190
+ : undefined,
191
+ folio: req.folio,
192
+ id: req.id,
193
+ incorporation_date: req.incorporationDate,
194
+ legal_name: req.legalName,
195
+ legal_representatives: req.legalRepresentatives?.map(legalRepresentativeToObject),
196
+ level: req.level,
197
+ license: licenseToObject(req.license),
198
+ meta: req.meta,
199
+ nationality: req.nationality,
200
+ phone_number: req.phoneNumber,
201
+ platform_id: req.platformId,
202
+ required_level: req.requiredLevel,
203
+ rfc: req.rfc,
204
+ shareholders: req.shareholders?.map(shareholderMoralToObject),
205
+ status: req.status,
206
+ transactional_profile: transactionalProfileToObject(req.transactionalProfile),
207
+ updated_at: req.updatedAt,
208
+ user_id: req.userId,
209
+ user_type: req.userType,
210
+ vulnerable_activity: vulnerableActivityToObject(req.vulnerableActivity),
211
+ web_site: req.webSite,
212
+ }),
213
+ toCleanObject: (req = {}) => cleanObject(PartnerUserRequest.toObject(req)),
214
+ };
215
+
216
+ const ReportGenerateRequest = {
217
+ toObject: (req = {}) => data.snakeize(req),
218
+ toCleanObject: (req = {}) => cleanObject(ReportGenerateRequest.toObject(req)),
219
+ };
220
+
221
+ function validate$1({ goalDate }) {
222
+ if (!goalDate)
223
+ return;
224
+ // Both calls receive a truthy input (`goalDate`, `Date.now()`), so
225
+ // `dateToUTC` — which only returns `null` for a falsy input — always
226
+ // returns a `Date` here.
227
+ const utcGoalDate = data.dateToUTC(goalDate);
228
+ const utcNow = data.dateToUTC(Date.now());
229
+ if (utcGoalDate.getTime() <= utcNow.getTime()) {
230
+ throw new errors_index.ValidationError('The goal_date always need to be higher than now');
231
+ }
232
+ }
233
+ const SavingRequest = {
234
+ toObject: (req = {}) => {
235
+ validate$1(req);
236
+ return {
237
+ category: req.category,
238
+ goal_amount: req.goalAmount,
239
+ goal_date: req.goalDate,
240
+ name: req.name,
241
+ };
242
+ },
243
+ toCleanObject: (req = {}) => cleanObject(SavingRequest.toObject(req)),
244
+ };
245
+
246
+ const SessionRequest = {
247
+ toObject: (req) => ({
248
+ failure_url: req.failureUrl,
249
+ success_url: req.successUrl,
250
+ type: req.type,
251
+ [req.isBridge ? 'account_id' : 'user_id']: req.userId,
252
+ }),
253
+ toCleanObject: (req) => cleanObject(SessionRequest.toObject(req)),
254
+ };
255
+
256
+ function validateIp(ip) {
257
+ if (!ip)
258
+ throw new errors_index.ValidationError('missing ip address');
259
+ const blocks = ip
260
+ .split('.')
261
+ .every((block) => Number(block) >= 0 && Number(block) <= 255);
262
+ if (!blocks)
263
+ throw new errors_index.ValidationError('Invalid ip address');
264
+ }
265
+ const TosUpdateRequest = {
266
+ toObject: (req) => {
267
+ validateIp(req.ip);
268
+ return {
269
+ ip: req.ip,
270
+ location: req.location,
271
+ type: req.type,
272
+ version: req.version,
273
+ };
274
+ },
275
+ toCleanObject: (req) => cleanObject(TosUpdateRequest.toObject(req)),
276
+ };
277
+
278
+ const TransferRequest = {
279
+ toObject: (req) => data.snakeize(req),
280
+ toCleanObject: (req) => cleanObject(TransferRequest.toObject(req)),
281
+ };
282
+
283
+ const VALID_STATUSES = ['succeeded', 'failed'];
284
+ function validate({ status }) {
285
+ if (!status || !VALID_STATUSES.includes(status)) {
286
+ throw new Error(`Invalid status: "${status}". Must be one of: ${VALID_STATUSES.join(', ')}`);
287
+ }
288
+ }
289
+ const TransferUpdateRequest = {
290
+ toObject: (req = {}) => {
291
+ validate(req);
292
+ return { status: req.status };
293
+ },
294
+ toCleanObject: (req = {}) => cleanObject(TransferUpdateRequest.toObject(req)),
295
+ };
296
+
297
+ function validatePassword(password) {
298
+ if (!password || password.length < 6) {
299
+ throw new errors_index.ValidationError('Invalid password');
300
+ }
301
+ }
302
+ const UserCredentialRequest = {
303
+ toObject: (req) => {
304
+ validatePassword(req.password);
305
+ return { password: req.password };
306
+ },
307
+ };
308
+ function validateUpdate(req) {
309
+ if (req.password)
310
+ validatePassword(req.password);
311
+ if (req.password && req.isActive != null) {
312
+ throw new errors_index.ValidationError('Only one property can be updated at a time');
313
+ }
314
+ }
315
+ const UserCredentialUpdateRequest = {
316
+ toObject: (req) => {
317
+ validateUpdate(req);
318
+ return {
319
+ password: req.password,
320
+ is_active: req.isActive,
321
+ };
322
+ },
323
+ // Mirrors the old class override: a `null` password (used to explicitly
324
+ // clear/reset it) survives the null-strip that every other field gets.
325
+ toCleanObject: (req) => {
326
+ const obj = UserCredentialUpdateRequest.toObject(req);
327
+ const result = {};
328
+ Object.keys(obj).forEach((key) => {
329
+ if (key === 'password' && obj[key] === null) {
330
+ result[key] = null;
331
+ return;
332
+ }
333
+ if (obj[key] != null)
334
+ result[key] = obj[key];
335
+ });
336
+ return result;
337
+ },
338
+ };
339
+
340
+ const UserLoginRequest = {
341
+ toObject: (req) => ({
342
+ password: req.password,
343
+ user_id: req.userId ?? 'me',
344
+ }),
345
+ };
346
+
347
+ const UserReportCreateRequest = {
348
+ toObject: (req = {}) => data.snakeize(req),
349
+ toCleanObject: (req = {}) => cleanObject(UserReportCreateRequest.toObject(req)),
350
+ };
351
+
352
+ const UserReportUpdateRequest = {
353
+ toObject: (req = {}) => data.snakeize(req),
354
+ toCleanObject: (req = {}) => cleanObject(UserReportUpdateRequest.toObject(req)),
355
+ };
356
+
357
+ const kycFileToCleanObject = (req) => req ? cleanObject(data.snakeize(req)) : undefined;
358
+ const UserUpdateRequest = {
359
+ toObject: (req = {}) => ({
360
+ address: req.address
361
+ ? AddressUpdateRequest.toCleanObject(req.address)
362
+ : undefined,
363
+ blacklist_validation_status: req.blacklistValidationStatus,
364
+ country_of_birth: req.countryOfBirth,
365
+ curp_document_uri: req.curpDocumentUri,
366
+ email_address: req.emailAddress,
367
+ fiscal_regime_code: req.fiscalRegimeCode,
368
+ govt_id: kycFileToCleanObject(req.govtId),
369
+ is_dormant: req.isDormant,
370
+ is_fraud: req.isFraud,
371
+ is_pld_blocked: req.isPldBlocked,
372
+ is_security_mode: req.isSecurityMode,
373
+ phone_number: req.phoneNumber,
374
+ profession: req.profession,
375
+ proof_of_life: kycFileToCleanObject(req.proofOfLife),
376
+ proof_of_address: kycFileToCleanObject(req.proofOfAddress),
377
+ requiredLevel: req.requiredLevel,
378
+ rfc: req.rfc,
379
+ status: req.status,
380
+ terms_of_service: req.termsOfService
381
+ ? TosUpdateRequest.toObject(req.termsOfService)
382
+ : undefined,
383
+ verification_id: req.verificationId,
384
+ user_type: req.userType,
385
+ }),
386
+ toCleanObject: (req = {}) => cleanObject(UserUpdateRequest.toObject(req)),
387
+ };
388
+
389
+ function validateEmail(email) {
390
+ 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);
391
+ }
392
+ function validatePhone(phone) {
393
+ return /^\+?[0-9]{10,15}$/.test(phone);
394
+ }
395
+ // Only `Email`/`Phone` recipients are validated and carried through — any
396
+ // other `type` drops `recipient` entirely, mirroring the original setter
397
+ // (which never assigned `_recipient` outside those two cases).
398
+ function resolveRecipient(req) {
399
+ if (!req.recipient)
400
+ return undefined;
401
+ switch (req.type) {
402
+ case data.VerificationType.Email:
403
+ if (!validateEmail(req.recipient)) {
404
+ throw new errors_index.ValidationError('Invalid email address');
405
+ }
406
+ return req.recipient;
407
+ case data.VerificationType.Phone:
408
+ if (!validatePhone(req.recipient)) {
409
+ throw new errors_index.ValidationError('Invalid Phone Number');
410
+ }
411
+ return req.recipient;
412
+ default:
413
+ return undefined;
414
+ }
415
+ }
416
+ const VerificationRequest = {
417
+ toObject: (req = {}) => ({
418
+ platform_id: req.platformId,
419
+ recipient: resolveRecipient(req),
420
+ type: req.type,
421
+ }),
422
+ toCleanObject: (req = {}) => cleanObject(VerificationRequest.toObject(req)),
423
+ };
424
+ const VerificationAttemptRequest = {
425
+ toObject: (req = {}) => ({
426
+ code: req.code,
427
+ }),
428
+ toCleanObject: (req = {}) => cleanObject(VerificationAttemptRequest.toObject(req)),
429
+ };
430
+
431
+ const WalletTransactionRequest = {
432
+ toObject: (req) => data.snakeize(req),
433
+ };
434
+
435
+ exports.AddressUpdateRequest = AddressUpdateRequest;
436
+ exports.AlertUpdateRequest = AlertUpdateRequest;
437
+ exports.ApiKeyUpdateRequest = ApiKeyUpdateRequest;
438
+ exports.ArpcRequest = ArpcRequest;
439
+ exports.CardActivationRequest = CardActivationRequest;
440
+ exports.CardRequest = CardRequest;
441
+ exports.CardUpdateRequest = CardUpdateRequest;
442
+ exports.CardValidationRequest = CardValidationRequest;
443
+ exports.FileUploadRequest = FileUploadRequest;
444
+ exports.FraudFundsTransferRequest = FraudFundsTransferRequest;
445
+ exports.KYCValidationsRequest = KYCValidationsRequest;
446
+ exports.PartnerUserRequest = PartnerUserRequest;
447
+ exports.ReportGenerateRequest = ReportGenerateRequest;
448
+ exports.SavingRequest = SavingRequest;
449
+ exports.SessionRequest = SessionRequest;
450
+ exports.TosUpdateRequest = TosUpdateRequest;
451
+ exports.TransferRequest = TransferRequest;
452
+ exports.TransferUpdateRequest = TransferUpdateRequest;
453
+ exports.UserCredentialRequest = UserCredentialRequest;
454
+ exports.UserCredentialUpdateRequest = UserCredentialUpdateRequest;
455
+ exports.UserLoginRequest = UserLoginRequest;
456
+ exports.UserReportCreateRequest = UserReportCreateRequest;
457
+ exports.UserReportUpdateRequest = UserReportUpdateRequest;
458
+ exports.UserUpdateRequest = UserUpdateRequest;
459
+ exports.VerificationAttemptRequest = VerificationAttemptRequest;
460
+ exports.VerificationRequest = VerificationRequest;
461
+ exports.WalletTransactionRequest = WalletTransactionRequest;