@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.
- package/CHANGELOG.md +19 -0
- package/build/data-91da6d58.mjs +625 -0
- package/build/data-ca00ac2d.cjs +669 -0
- package/build/dts/client/client.d.ts +86 -0
- package/build/dts/client/index.d.ts +1 -0
- package/build/dts/errors.d.ts +25 -0
- package/build/dts/helpers/case.d.ts +5 -0
- package/build/dts/helpers/data.d.ts +3 -0
- package/build/dts/helpers/env.d.ts +7 -0
- package/build/dts/index.d.ts +52 -0
- package/build/dts/jwt.d.ts +8 -0
- package/build/dts/models/account.d.ts +12 -0
- package/build/dts/models/alert.d.ts +32 -0
- package/build/dts/models/apiKey.d.ts +13 -0
- package/build/dts/models/arpc.d.ts +10 -0
- package/build/dts/models/balanceEntry.d.ts +15 -0
- package/build/dts/models/baseUser.d.ts +23 -0
- package/build/dts/models/billPayment.d.ts +10 -0
- package/build/dts/models/bridgeAccount.d.ts +27 -0
- package/build/dts/models/bridgeBankAccount.d.ts +16 -0
- package/build/dts/models/bridgeClabe.d.ts +12 -0
- package/build/dts/models/bridgeTransaction.d.ts +32 -0
- package/build/dts/models/card.d.ts +19 -0
- package/build/dts/models/cardActivation.d.ts +12 -0
- package/build/dts/models/cardTransaction.d.ts +15 -0
- package/build/dts/models/cardValidation.d.ts +19 -0
- package/build/dts/models/commission.d.ts +9 -0
- package/build/dts/models/deposit.d.ts +11 -0
- package/build/dts/models/file.d.ts +10 -0
- package/build/dts/models/fraudFundsTransfer.d.ts +9 -0
- package/build/dts/models/index.d.ts +38 -0
- package/build/dts/models/kycValidations.d.ts +22 -0
- package/build/dts/models/loginToken.d.ts +7 -0
- package/build/dts/models/partner.d.ts +25 -0
- package/build/dts/models/postalCode.d.ts +14 -0
- package/build/dts/models/saving.d.ts +11 -0
- package/build/dts/models/serviceProvider.d.ts +10 -0
- package/build/dts/models/session.d.ts +14 -0
- package/build/dts/models/statement.d.ts +10 -0
- package/build/dts/models/transaction.d.ts +7 -0
- package/build/dts/models/transactionalProfile.d.ts +14 -0
- package/build/dts/models/transfer.d.ts +15 -0
- package/build/dts/models/user.d.ts +42 -0
- package/build/dts/models/userCredential.d.ts +10 -0
- package/build/dts/models/userLogin.d.ts +9 -0
- package/build/dts/models/userReport.d.ts +48 -0
- package/build/dts/models/userTosAgreement.d.ts +13 -0
- package/build/dts/models/verification.d.ts +12 -0
- package/build/dts/models/wallet.d.ts +8 -0
- package/build/dts/models/walletTransaction.d.ts +10 -0
- package/build/dts/models/whatsAppTransfer.d.ts +16 -0
- package/build/dts/requests/addressUpdateRequest.d.ts +17 -0
- package/build/dts/requests/alertRequest.d.ts +31 -0
- package/build/dts/requests/apiKeyRequest.d.ts +9 -0
- package/build/dts/requests/arpcRequest.d.ts +16 -0
- package/build/dts/requests/base.d.ts +2 -0
- package/build/dts/requests/cardActivationRequest.d.ts +11 -0
- package/build/dts/requests/cardRequest.d.ts +18 -0
- package/build/dts/requests/cardValidationRequest.d.ts +15 -0
- package/build/dts/requests/fileUploadRequest.d.ts +12 -0
- package/build/dts/requests/fraudFundsTransferRequest.d.ts +13 -0
- package/build/dts/requests/index.d.ts +24 -0
- package/build/dts/requests/kycValidationsRequest.d.ts +10 -0
- package/build/dts/requests/partnerUserRequest.d.ts +100 -0
- package/build/dts/requests/reportGenerateRequest.d.ts +8 -0
- package/build/dts/requests/savingRequest.d.ts +11 -0
- package/build/dts/requests/sessionRequest.d.ts +12 -0
- package/build/dts/requests/tosUpdateRequest.d.ts +11 -0
- package/build/dts/requests/transferRequest.d.ts +12 -0
- package/build/dts/requests/transferUpdateRequest.d.ts +8 -0
- package/build/dts/requests/userCredentialRequest.d.ts +15 -0
- package/build/dts/requests/userLoginRequest.d.ts +8 -0
- package/build/dts/requests/userReportCreateRequest.d.ts +9 -0
- package/build/dts/requests/userReportUpdateRequest.d.ts +28 -0
- package/build/dts/requests/userRequest.d.ts +39 -0
- package/build/dts/requests/verificationRequest.d.ts +17 -0
- package/build/dts/requests/walletTransactionRequest.d.ts +9 -0
- package/build/dts/resources/accounts.d.ts +33 -0
- package/build/dts/resources/alerts.d.ts +54 -0
- package/build/dts/resources/apiKeys.d.ts +63 -0
- package/build/dts/resources/arpc.d.ts +18 -0
- package/build/dts/resources/balanceEntries.d.ts +37 -0
- package/build/dts/resources/base.d.ts +135 -0
- package/build/dts/resources/billPayments.d.ts +34 -0
- package/build/dts/resources/bridgeAccounts.d.ts +49 -0
- package/build/dts/resources/bridgeBankAccounts.d.ts +33 -0
- package/build/dts/resources/bridgeClabes.d.ts +27 -0
- package/build/dts/resources/bridgeTransactions.d.ts +36 -0
- package/build/dts/resources/cardActivations.d.ts +19 -0
- package/build/dts/resources/cardTransactions.d.ts +34 -0
- package/build/dts/resources/cardValidations.d.ts +19 -0
- package/build/dts/resources/cards.d.ts +63 -0
- package/build/dts/resources/commissions.d.ts +34 -0
- package/build/dts/resources/deposits.d.ts +34 -0
- package/build/dts/resources/files.d.ts +30 -0
- package/build/dts/resources/fraudFundsTransfers.d.ts +18 -0
- package/build/dts/resources/index.d.ts +36 -0
- package/build/dts/resources/kycValidations.d.ts +53 -0
- package/build/dts/resources/loginTokens.d.ts +17 -0
- package/build/dts/resources/partners.d.ts +54 -0
- package/build/dts/resources/postalCodes.d.ts +24 -0
- package/build/dts/resources/reports.d.ts +8 -0
- package/build/dts/resources/savings.d.ts +62 -0
- package/build/dts/resources/serviceProviders.d.ts +32 -0
- package/build/dts/resources/sessions.d.ts +43 -0
- package/build/dts/resources/statements.d.ts +44 -0
- package/build/dts/resources/transfers.d.ts +64 -0
- package/build/dts/resources/userCredentials.d.ts +30 -0
- package/build/dts/resources/userLogins.d.ts +28 -0
- package/build/dts/resources/userReports.d.ts +54 -0
- package/build/dts/resources/users.d.ts +56 -0
- package/build/dts/resources/usersTosAgreements.d.ts +16 -0
- package/build/dts/resources/verifications.d.ts +31 -0
- package/build/dts/resources/walletTransactions.d.ts +48 -0
- package/build/dts/resources/whatsAppTransfers.d.ts +34 -0
- package/build/dts/types/enums.d.ts +579 -0
- package/build/dts/types/identities/address.d.ts +25 -0
- package/build/dts/types/identities/alertLog.d.ts +11 -0
- package/build/dts/types/identities/audit.d.ts +10 -0
- package/build/dts/types/identities/businessDetails.d.ts +9 -0
- package/build/dts/types/identities/externalAccount.d.ts +8 -0
- package/build/dts/types/identities/index.d.ts +17 -0
- package/build/dts/types/identities/kycFile.d.ts +14 -0
- package/build/dts/types/identities/legalRepresentatives.d.ts +12 -0
- package/build/dts/types/identities/license.d.ts +10 -0
- package/build/dts/types/identities/moralOperation.d.ts +8 -0
- package/build/dts/types/identities/physicalPerson.d.ts +12 -0
- package/build/dts/types/identities/shareholderMoral.d.ts +12 -0
- package/build/dts/types/identities/shareholderPhysical.d.ts +9 -0
- package/build/dts/types/identities/tosAgreements.d.ts +10 -0
- package/build/dts/types/identities/transactionalProfileServices.d.ts +10 -0
- package/build/dts/types/identities/verificationError.d.ts +10 -0
- package/build/dts/types/identities/vulnerableActivity.d.ts +10 -0
- package/build/dts/types/index.d.ts +3 -0
- package/build/dts/types/queries/accountQuery.d.ts +4 -0
- package/build/dts/types/queries/alertQuery.d.ts +12 -0
- package/build/dts/types/queries/apiKeyQuery.d.ts +4 -0
- package/build/dts/types/queries/balanceEntryQuery.d.ts +5 -0
- package/build/dts/types/queries/billPaymentQuery.d.ts +4 -0
- package/build/dts/types/queries/bridgeAccountQuery.d.ts +4 -0
- package/build/dts/types/queries/bridgeBankAccountQuery.d.ts +4 -0
- package/build/dts/types/queries/bridgeQuery.d.ts +7 -0
- package/build/dts/types/queries/bridgeTransactionQuery.d.ts +6 -0
- package/build/dts/types/queries/cardTransactionQuery.d.ts +4 -0
- package/build/dts/types/queries/cardsQuery.d.ts +4 -0
- package/build/dts/types/queries/depositQuery.d.ts +5 -0
- package/build/dts/types/queries/index.d.ts +26 -0
- package/build/dts/types/queries/partnerQuery.d.ts +4 -0
- package/build/dts/types/queries/postalCodeQuery.d.ts +4 -0
- package/build/dts/types/queries/queryParams.d.ts +15 -0
- package/build/dts/types/queries/statementQuery.d.ts +6 -0
- package/build/dts/types/queries/transactionQuery.d.ts +4 -0
- package/build/dts/types/queries/transferQuery.d.ts +7 -0
- package/build/dts/types/queries/userQuery.d.ts +11 -0
- package/build/dts/types/queries/userReportQuery.d.ts +4 -0
- package/build/dts/types/queries/walletQuery.d.ts +4 -0
- package/build/dts/types/queries/walletTransactionQuery.d.ts +4 -0
- package/build/errors/index.cjs +10 -0
- package/build/errors/index.mjs +10 -1
- package/build/index.cjs +1305 -2894
- package/build/index.mjs +1307 -2895
- package/build/jwt/index.cjs +11 -8
- package/build/jwt/index.mjs +11 -8
- package/build/requests/index.cjs +4 -22
- package/build/requests/index.mjs +2 -26
- package/build/types/index.cjs +18 -56
- package/build/types/index.mjs +9 -34
- package/build/umd/cuenca.umd.js +1 -1
- package/build/vulnerableActivity-61dc2846.mjs +278 -0
- package/build/vulnerableActivity-d5aed4a7.cjs +299 -0
- package/build/walletTransactionRequest-aab46c5e.cjs +461 -0
- package/build/walletTransactionRequest-dc11fc69.mjs +433 -0
- package/errors/index.d.ts +1 -0
- package/jwt/index.d.ts +1 -0
- package/package.json +26 -8
- package/requests/index.d.ts +1 -0
- package/types/index.d.ts +1 -0
- package/build/data-1fd00e5c.mjs +0 -1199
- package/build/data-72c37b60.cjs +0 -1240
- package/build/vulnerableActivity-7cc1734f.cjs +0 -867
- package/build/vulnerableActivity-bd344332.mjs +0 -831
- package/build/walletTransactionRequest-05d5305a.mjs +0 -1512
- 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;
|