@eleva-io/erp-sdk 0.1.52 → 0.1.54

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 (153) hide show
  1. package/dist/cjs/modules/contacts/persons/api/index.d.ts +1 -0
  2. package/dist/cjs/modules/contacts/persons/api/index.d.ts.map +1 -1
  3. package/dist/cjs/modules/contacts/persons/api/index.js +1 -0
  4. package/dist/cjs/modules/contacts/persons/api/index.js.map +1 -1
  5. package/dist/cjs/modules/contacts/persons/api/payment-methods.d.ts +11 -0
  6. package/dist/cjs/modules/contacts/persons/api/payment-methods.d.ts.map +1 -0
  7. package/dist/cjs/modules/contacts/persons/api/payment-methods.js +27 -0
  8. package/dist/cjs/modules/contacts/persons/api/payment-methods.js.map +1 -0
  9. package/dist/cjs/modules/contacts/persons/api/persons.d.ts +2 -0
  10. package/dist/cjs/modules/contacts/persons/api/persons.d.ts.map +1 -1
  11. package/dist/cjs/modules/contacts/persons/api/persons.js +7 -0
  12. package/dist/cjs/modules/contacts/persons/api/persons.js.map +1 -1
  13. package/dist/cjs/modules/contacts/persons/types/index.d.ts +1 -0
  14. package/dist/cjs/modules/contacts/persons/types/index.d.ts.map +1 -1
  15. package/dist/cjs/modules/contacts/persons/types/index.js +1 -0
  16. package/dist/cjs/modules/contacts/persons/types/index.js.map +1 -1
  17. package/dist/cjs/modules/contacts/persons/types/payment-method.d.ts +13 -0
  18. package/dist/cjs/modules/contacts/persons/types/payment-method.d.ts.map +1 -0
  19. package/dist/cjs/modules/contacts/persons/types/payment-method.js +3 -0
  20. package/dist/cjs/modules/contacts/persons/types/payment-method.js.map +1 -0
  21. package/dist/cjs/modules/global/api.d.ts +2 -0
  22. package/dist/cjs/modules/global/api.d.ts.map +1 -1
  23. package/dist/cjs/modules/global/api.js +4 -0
  24. package/dist/cjs/modules/global/api.js.map +1 -1
  25. package/dist/cjs/modules/global/bank-account/api.d.ts +9 -0
  26. package/dist/cjs/modules/global/bank-account/api.d.ts.map +1 -0
  27. package/dist/cjs/modules/global/bank-account/api.js +16 -0
  28. package/dist/cjs/modules/global/bank-account/api.js.map +1 -0
  29. package/dist/cjs/modules/global/bank-account/index.d.ts +3 -0
  30. package/dist/cjs/modules/global/bank-account/index.d.ts.map +1 -0
  31. package/dist/cjs/modules/global/bank-account/index.js +19 -0
  32. package/dist/cjs/modules/global/bank-account/index.js.map +1 -0
  33. package/dist/cjs/modules/global/bank-account/types.d.ts +14 -0
  34. package/dist/cjs/modules/global/bank-account/types.d.ts.map +1 -0
  35. package/dist/cjs/modules/global/bank-account/types.js +10 -0
  36. package/dist/cjs/modules/global/bank-account/types.js.map +1 -0
  37. package/dist/cjs/modules/global/bank-account/validations/bank_account/aba.d.ts +22 -0
  38. package/dist/cjs/modules/global/bank-account/validations/bank_account/aba.d.ts.map +1 -0
  39. package/dist/cjs/modules/global/bank-account/validations/bank_account/aba.js +214 -0
  40. package/dist/cjs/modules/global/bank-account/validations/bank_account/aba.js.map +1 -0
  41. package/dist/cjs/modules/global/bank-account/validations/bank_account/clabe.d.ts +15 -0
  42. package/dist/cjs/modules/global/bank-account/validations/bank_account/clabe.d.ts.map +1 -0
  43. package/dist/cjs/modules/global/bank-account/validations/bank_account/clabe.js +66 -0
  44. package/dist/cjs/modules/global/bank-account/validations/bank_account/clabe.js.map +1 -0
  45. package/dist/cjs/modules/global/bank-account/validations/bank_account/iban.d.ts +5 -0
  46. package/dist/cjs/modules/global/bank-account/validations/bank_account/iban.d.ts.map +1 -0
  47. package/dist/cjs/modules/global/bank-account/validations/bank_account/iban.js +206 -0
  48. package/dist/cjs/modules/global/bank-account/validations/bank_account/iban.js.map +1 -0
  49. package/dist/cjs/modules/global/bank-account/validations/bank_account/swift.d.ts +16 -0
  50. package/dist/cjs/modules/global/bank-account/validations/bank_account/swift.d.ts.map +1 -0
  51. package/dist/cjs/modules/global/bank-account/validations/bank_account/swift.js +401 -0
  52. package/dist/cjs/modules/global/bank-account/validations/bank_account/swift.js.map +1 -0
  53. package/dist/cjs/modules/global/index.d.ts +1 -0
  54. package/dist/cjs/modules/global/index.d.ts.map +1 -1
  55. package/dist/cjs/modules/global/index.js +1 -0
  56. package/dist/cjs/modules/global/index.js.map +1 -1
  57. package/dist/cjs/modules/global/types.d.ts +11 -0
  58. package/dist/cjs/modules/global/types.d.ts.map +1 -1
  59. package/dist/cjs/modules/global/types.js +5 -1
  60. package/dist/cjs/modules/global/types.js.map +1 -1
  61. package/dist/cjs/modules/global/validations/payment_method.d.ts +3 -0
  62. package/dist/cjs/modules/global/validations/payment_method.d.ts.map +1 -0
  63. package/dist/cjs/modules/global/validations/payment_method.js +74 -0
  64. package/dist/cjs/modules/global/validations/payment_method.js.map +1 -0
  65. package/dist/cjs/modules/global/validations/payment_method.spec.d.ts +2 -0
  66. package/dist/cjs/modules/global/validations/payment_method.spec.d.ts.map +1 -0
  67. package/dist/cjs/modules/global/validations/payment_method.spec.js +127 -0
  68. package/dist/cjs/modules/global/validations/payment_method.spec.js.map +1 -0
  69. package/dist/cjs/utils/errors.d.ts +15 -0
  70. package/dist/cjs/utils/errors.d.ts.map +1 -0
  71. package/dist/cjs/utils/errors.js +21 -0
  72. package/dist/cjs/utils/errors.js.map +1 -0
  73. package/dist/cjs/utils/index.d.ts +1 -0
  74. package/dist/cjs/utils/index.d.ts.map +1 -1
  75. package/dist/cjs/utils/index.js +1 -0
  76. package/dist/cjs/utils/index.js.map +1 -1
  77. package/dist/esm/modules/contacts/persons/api/index.d.ts +1 -0
  78. package/dist/esm/modules/contacts/persons/api/index.d.ts.map +1 -1
  79. package/dist/esm/modules/contacts/persons/api/index.js +1 -0
  80. package/dist/esm/modules/contacts/persons/api/index.js.map +1 -1
  81. package/dist/esm/modules/contacts/persons/api/payment-methods.d.ts +11 -0
  82. package/dist/esm/modules/contacts/persons/api/payment-methods.d.ts.map +1 -0
  83. package/dist/esm/modules/contacts/persons/api/payment-methods.js +23 -0
  84. package/dist/esm/modules/contacts/persons/api/payment-methods.js.map +1 -0
  85. package/dist/esm/modules/contacts/persons/api/persons.d.ts +2 -0
  86. package/dist/esm/modules/contacts/persons/api/persons.d.ts.map +1 -1
  87. package/dist/esm/modules/contacts/persons/api/persons.js +7 -0
  88. package/dist/esm/modules/contacts/persons/api/persons.js.map +1 -1
  89. package/dist/esm/modules/contacts/persons/types/index.d.ts +1 -0
  90. package/dist/esm/modules/contacts/persons/types/index.d.ts.map +1 -1
  91. package/dist/esm/modules/contacts/persons/types/index.js +1 -0
  92. package/dist/esm/modules/contacts/persons/types/index.js.map +1 -1
  93. package/dist/esm/modules/contacts/persons/types/payment-method.d.ts +13 -0
  94. package/dist/esm/modules/contacts/persons/types/payment-method.d.ts.map +1 -0
  95. package/dist/esm/modules/contacts/persons/types/payment-method.js +2 -0
  96. package/dist/esm/modules/contacts/persons/types/payment-method.js.map +1 -0
  97. package/dist/esm/modules/global/api.d.ts +2 -0
  98. package/dist/esm/modules/global/api.d.ts.map +1 -1
  99. package/dist/esm/modules/global/api.js +4 -0
  100. package/dist/esm/modules/global/api.js.map +1 -1
  101. package/dist/esm/modules/global/bank-account/api.d.ts +9 -0
  102. package/dist/esm/modules/global/bank-account/api.d.ts.map +1 -0
  103. package/dist/esm/modules/global/bank-account/api.js +12 -0
  104. package/dist/esm/modules/global/bank-account/api.js.map +1 -0
  105. package/dist/esm/modules/global/bank-account/index.d.ts +3 -0
  106. package/dist/esm/modules/global/bank-account/index.d.ts.map +1 -0
  107. package/dist/esm/modules/global/bank-account/index.js +3 -0
  108. package/dist/esm/modules/global/bank-account/index.js.map +1 -0
  109. package/dist/esm/modules/global/bank-account/types.d.ts +14 -0
  110. package/dist/esm/modules/global/bank-account/types.d.ts.map +1 -0
  111. package/dist/esm/modules/global/bank-account/types.js +7 -0
  112. package/dist/esm/modules/global/bank-account/types.js.map +1 -0
  113. package/dist/esm/modules/global/bank-account/validations/bank_account/aba.d.ts +22 -0
  114. package/dist/esm/modules/global/bank-account/validations/bank_account/aba.d.ts.map +1 -0
  115. package/dist/esm/modules/global/bank-account/validations/bank_account/aba.js +204 -0
  116. package/dist/esm/modules/global/bank-account/validations/bank_account/aba.js.map +1 -0
  117. package/dist/esm/modules/global/bank-account/validations/bank_account/clabe.d.ts +15 -0
  118. package/dist/esm/modules/global/bank-account/validations/bank_account/clabe.d.ts.map +1 -0
  119. package/dist/esm/modules/global/bank-account/validations/bank_account/clabe.js +62 -0
  120. package/dist/esm/modules/global/bank-account/validations/bank_account/clabe.js.map +1 -0
  121. package/dist/esm/modules/global/bank-account/validations/bank_account/iban.d.ts +5 -0
  122. package/dist/esm/modules/global/bank-account/validations/bank_account/iban.d.ts.map +1 -0
  123. package/dist/esm/modules/global/bank-account/validations/bank_account/iban.js +201 -0
  124. package/dist/esm/modules/global/bank-account/validations/bank_account/iban.js.map +1 -0
  125. package/dist/esm/modules/global/bank-account/validations/bank_account/swift.d.ts +16 -0
  126. package/dist/esm/modules/global/bank-account/validations/bank_account/swift.d.ts.map +1 -0
  127. package/dist/esm/modules/global/bank-account/validations/bank_account/swift.js +393 -0
  128. package/dist/esm/modules/global/bank-account/validations/bank_account/swift.js.map +1 -0
  129. package/dist/esm/modules/global/index.d.ts +1 -0
  130. package/dist/esm/modules/global/index.d.ts.map +1 -1
  131. package/dist/esm/modules/global/index.js +1 -0
  132. package/dist/esm/modules/global/index.js.map +1 -1
  133. package/dist/esm/modules/global/types.d.ts +11 -0
  134. package/dist/esm/modules/global/types.d.ts.map +1 -1
  135. package/dist/esm/modules/global/types.js +4 -0
  136. package/dist/esm/modules/global/types.js.map +1 -1
  137. package/dist/esm/modules/global/validations/payment_method.d.ts +3 -0
  138. package/dist/esm/modules/global/validations/payment_method.d.ts.map +1 -0
  139. package/dist/esm/modules/global/validations/payment_method.js +71 -0
  140. package/dist/esm/modules/global/validations/payment_method.js.map +1 -0
  141. package/dist/esm/modules/global/validations/payment_method.spec.d.ts +2 -0
  142. package/dist/esm/modules/global/validations/payment_method.spec.d.ts.map +1 -0
  143. package/dist/esm/modules/global/validations/payment_method.spec.js +125 -0
  144. package/dist/esm/modules/global/validations/payment_method.spec.js.map +1 -0
  145. package/dist/esm/utils/errors.d.ts +15 -0
  146. package/dist/esm/utils/errors.d.ts.map +1 -0
  147. package/dist/esm/utils/errors.js +16 -0
  148. package/dist/esm/utils/errors.js.map +1 -0
  149. package/dist/esm/utils/index.d.ts +1 -0
  150. package/dist/esm/utils/index.d.ts.map +1 -1
  151. package/dist/esm/utils/index.js +1 -0
  152. package/dist/esm/utils/index.js.map +1 -1
  153. package/package.json +1 -1
@@ -0,0 +1,393 @@
1
+ import { ValidationError } from 'utils/errors';
2
+ // SWIFT/BIC validation patterns and functions
3
+ export const SWIFT_BIC_PATTERNS = {
4
+ // Standard SWIFT/BIC format (8 or 11 characters)
5
+ STANDARD: /^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$/,
6
+ // 8-character format (bank + country + location)
7
+ FORMAT_8: /^[A-Z]{6}[A-Z0-9]{2}$/,
8
+ // 11-character format (bank + country + location + branch)
9
+ FORMAT_11: /^[A-Z]{6}[A-Z0-9]{2}[A-Z0-9]{3}$/,
10
+ // Component patterns
11
+ BANK_CODE: /^[A-Z]{4}$/, // 4 letters - Bank identifier
12
+ COUNTRY_CODE: /^[A-Z]{2}$/, // 2 letters - ISO country code
13
+ LOCATION_CODE: /^[A-Z0-9]{2}$/, // 2 alphanumeric - Location code
14
+ BRANCH_CODE: /^[A-Z0-9]{3}$/, // 3 alphanumeric - Branch code (optional)
15
+ };
16
+ // ISO country codes for SWIFT validation
17
+ export const VALID_SWIFT_COUNTRIES = new Set([
18
+ 'AD',
19
+ 'AE',
20
+ 'AF',
21
+ 'AG',
22
+ 'AI',
23
+ 'AL',
24
+ 'AM',
25
+ 'AO',
26
+ 'AQ',
27
+ 'AR',
28
+ 'AS',
29
+ 'AT',
30
+ 'AU',
31
+ 'AW',
32
+ 'AX',
33
+ 'AZ',
34
+ 'BA',
35
+ 'BB',
36
+ 'BD',
37
+ 'BE',
38
+ 'BF',
39
+ 'BG',
40
+ 'BH',
41
+ 'BI',
42
+ 'BJ',
43
+ 'BL',
44
+ 'BM',
45
+ 'BN',
46
+ 'BO',
47
+ 'BQ',
48
+ 'BR',
49
+ 'BS',
50
+ 'BT',
51
+ 'BV',
52
+ 'BW',
53
+ 'BY',
54
+ 'BZ',
55
+ 'CA',
56
+ 'CC',
57
+ 'CD',
58
+ 'CF',
59
+ 'CG',
60
+ 'CH',
61
+ 'CI',
62
+ 'CK',
63
+ 'CL',
64
+ 'CM',
65
+ 'CN',
66
+ 'CO',
67
+ 'CR',
68
+ 'CU',
69
+ 'CV',
70
+ 'CW',
71
+ 'CX',
72
+ 'CY',
73
+ 'CZ',
74
+ 'DE',
75
+ 'DJ',
76
+ 'DK',
77
+ 'DM',
78
+ 'DO',
79
+ 'DZ',
80
+ 'EC',
81
+ 'EE',
82
+ 'EG',
83
+ 'EH',
84
+ 'ER',
85
+ 'ES',
86
+ 'ET',
87
+ 'FI',
88
+ 'FJ',
89
+ 'FK',
90
+ 'FM',
91
+ 'FO',
92
+ 'FR',
93
+ 'GA',
94
+ 'GB',
95
+ 'GD',
96
+ 'GE',
97
+ 'GF',
98
+ 'GG',
99
+ 'GH',
100
+ 'GI',
101
+ 'GL',
102
+ 'GM',
103
+ 'GN',
104
+ 'GP',
105
+ 'GQ',
106
+ 'GR',
107
+ 'GS',
108
+ 'GT',
109
+ 'GU',
110
+ 'GW',
111
+ 'GY',
112
+ 'HK',
113
+ 'HM',
114
+ 'HN',
115
+ 'HR',
116
+ 'HT',
117
+ 'HU',
118
+ 'ID',
119
+ 'IE',
120
+ 'IL',
121
+ 'IM',
122
+ 'IN',
123
+ 'IO',
124
+ 'IQ',
125
+ 'IR',
126
+ 'IS',
127
+ 'IT',
128
+ 'JE',
129
+ 'JM',
130
+ 'JO',
131
+ 'JP',
132
+ 'KE',
133
+ 'KG',
134
+ 'KH',
135
+ 'KI',
136
+ 'KM',
137
+ 'KN',
138
+ 'KP',
139
+ 'KR',
140
+ 'KW',
141
+ 'KY',
142
+ 'KZ',
143
+ 'LA',
144
+ 'LB',
145
+ 'LC',
146
+ 'LI',
147
+ 'LK',
148
+ 'LR',
149
+ 'LS',
150
+ 'LT',
151
+ 'LU',
152
+ 'LV',
153
+ 'LY',
154
+ 'MA',
155
+ 'MC',
156
+ 'MD',
157
+ 'ME',
158
+ 'MF',
159
+ 'MG',
160
+ 'MH',
161
+ 'MK',
162
+ 'ML',
163
+ 'MM',
164
+ 'MN',
165
+ 'MO',
166
+ 'MP',
167
+ 'MQ',
168
+ 'MR',
169
+ 'MS',
170
+ 'MT',
171
+ 'MU',
172
+ 'MV',
173
+ 'MW',
174
+ 'MX',
175
+ 'MY',
176
+ 'MZ',
177
+ 'NA',
178
+ 'NC',
179
+ 'NE',
180
+ 'NF',
181
+ 'NG',
182
+ 'NI',
183
+ 'NL',
184
+ 'NO',
185
+ 'NP',
186
+ 'NR',
187
+ 'NU',
188
+ 'NZ',
189
+ 'OM',
190
+ 'PA',
191
+ 'PE',
192
+ 'PF',
193
+ 'PG',
194
+ 'PH',
195
+ 'PK',
196
+ 'PL',
197
+ 'PM',
198
+ 'PN',
199
+ 'PR',
200
+ 'PS',
201
+ 'PT',
202
+ 'PW',
203
+ 'PY',
204
+ 'QA',
205
+ 'RE',
206
+ 'RO',
207
+ 'RS',
208
+ 'RU',
209
+ 'RW',
210
+ 'SA',
211
+ 'SB',
212
+ 'SC',
213
+ 'SD',
214
+ 'SE',
215
+ 'SG',
216
+ 'SH',
217
+ 'SI',
218
+ 'SJ',
219
+ 'SK',
220
+ 'SL',
221
+ 'SM',
222
+ 'SN',
223
+ 'SO',
224
+ 'SR',
225
+ 'SS',
226
+ 'ST',
227
+ 'SV',
228
+ 'SX',
229
+ 'SY',
230
+ 'SZ',
231
+ 'TC',
232
+ 'TD',
233
+ 'TF',
234
+ 'TG',
235
+ 'TH',
236
+ 'TJ',
237
+ 'TK',
238
+ 'TL',
239
+ 'TM',
240
+ 'TN',
241
+ 'TO',
242
+ 'TR',
243
+ 'TT',
244
+ 'TV',
245
+ 'TW',
246
+ 'TZ',
247
+ 'UA',
248
+ 'UG',
249
+ 'UM',
250
+ 'US',
251
+ 'UY',
252
+ 'UZ',
253
+ 'VA',
254
+ 'VC',
255
+ 'VE',
256
+ 'VG',
257
+ 'VI',
258
+ 'VN',
259
+ 'VU',
260
+ 'WF',
261
+ 'WS',
262
+ 'XK',
263
+ 'YE',
264
+ 'YT',
265
+ 'ZA',
266
+ 'ZM',
267
+ 'ZW',
268
+ ]);
269
+ export function isTestBic(swiftBic) {
270
+ const cleanSwift = swiftBic.replace(/\s/g, '').toUpperCase();
271
+ if (cleanSwift.length < 8)
272
+ return false;
273
+ return cleanSwift.substring(7, 8) === '0';
274
+ }
275
+ export function formatSwiftBic(swiftBic, withSpaces = false) {
276
+ const cleanSwift = swiftBic.replace(/\s/g, '').toUpperCase();
277
+ if (!withSpaces)
278
+ return cleanSwift;
279
+ if (cleanSwift.length === 8) {
280
+ return `${cleanSwift.substring(0, 4)} ${cleanSwift.substring(4, 6)} ${cleanSwift.substring(6, 8)}`;
281
+ }
282
+ else if (cleanSwift.length === 11) {
283
+ return `${cleanSwift.substring(0, 4)} ${cleanSwift.substring(4, 6)} ${cleanSwift.substring(6, 8)} ${cleanSwift.substring(8, 11)}`;
284
+ }
285
+ return cleanSwift;
286
+ }
287
+ export function getSwiftCountry(swiftBic) {
288
+ const cleanSwift = swiftBic.replace(/\s/g, '').toUpperCase();
289
+ if (cleanSwift.length < 6)
290
+ return null;
291
+ return cleanSwift.substring(4, 6);
292
+ }
293
+ export function getBankCode(swiftBic) {
294
+ const cleanSwift = swiftBic.replace(/\s/g, '').toUpperCase();
295
+ if (cleanSwift.length < 4)
296
+ return null;
297
+ return cleanSwift.substring(0, 4);
298
+ }
299
+ // Main validation function
300
+ export function validateCodeSwiftBic(swiftBic, path) {
301
+ if (!swiftBic || typeof swiftBic !== 'string') {
302
+ throw new ValidationError([
303
+ {
304
+ validation: path,
305
+ code: 'invalid_string',
306
+ message: 'SWIFT/BIC must be a string',
307
+ path: [path],
308
+ },
309
+ ]);
310
+ }
311
+ // Remove spaces and convert to uppercase
312
+ const cleanSwift = swiftBic.replace(/\s/g, '').toUpperCase();
313
+ // Check basic format
314
+ if (!SWIFT_BIC_PATTERNS.STANDARD.test(cleanSwift)) {
315
+ throw new ValidationError([
316
+ {
317
+ validation: path,
318
+ code: 'invalid_string',
319
+ message: 'Invalid SWIFT/BIC format. Must be 8 or 11 alphanumeric characters',
320
+ path: [path],
321
+ },
322
+ ]);
323
+ }
324
+ // Extract components
325
+ const bankCode = cleanSwift.substring(0, 4);
326
+ const countryCode = cleanSwift.substring(4, 6);
327
+ const locationCode = cleanSwift.substring(6, 8);
328
+ const branchCode = cleanSwift.length === 11 ? cleanSwift.substring(8, 11) : undefined;
329
+ // Validate individual components
330
+ if (!SWIFT_BIC_PATTERNS.BANK_CODE.test(bankCode)) {
331
+ throw new ValidationError([
332
+ {
333
+ validation: path,
334
+ code: 'invalid_string',
335
+ message: 'Invalid bank code. Must be 4 letters',
336
+ path: [path],
337
+ },
338
+ ]);
339
+ }
340
+ if (!SWIFT_BIC_PATTERNS.COUNTRY_CODE.test(countryCode)) {
341
+ throw new ValidationError([
342
+ {
343
+ validation: path,
344
+ code: 'invalid_string',
345
+ message: 'Invalid country code. Must be 2 letters',
346
+ path: [path],
347
+ },
348
+ ]);
349
+ }
350
+ if (!VALID_SWIFT_COUNTRIES.has(countryCode)) {
351
+ throw new ValidationError([
352
+ {
353
+ validation: path,
354
+ code: 'invalid_string',
355
+ message: `Invalid country code: ${countryCode}`,
356
+ path: [path],
357
+ },
358
+ ]);
359
+ }
360
+ if (!SWIFT_BIC_PATTERNS.LOCATION_CODE.test(locationCode)) {
361
+ throw new ValidationError([
362
+ {
363
+ validation: path,
364
+ code: 'invalid_string',
365
+ message: 'Invalid location code. Must be 2 alphanumeric characters',
366
+ path: [path],
367
+ },
368
+ ]);
369
+ }
370
+ if (branchCode && !SWIFT_BIC_PATTERNS.BRANCH_CODE.test(branchCode)) {
371
+ throw new ValidationError([
372
+ {
373
+ validation: path,
374
+ code: 'invalid_string',
375
+ message: 'Invalid branch code. Must be 3 alphanumeric characters',
376
+ path: [path],
377
+ },
378
+ ]);
379
+ }
380
+ // Check for test BIC (location code ending in 0)
381
+ const isTestBic = locationCode.endsWith('0');
382
+ if (isTestBic) {
383
+ throw new ValidationError([
384
+ {
385
+ validation: path,
386
+ code: 'invalid_string',
387
+ message: 'Invalid location code. Must be 2 alphanumeric characters',
388
+ path: [path],
389
+ },
390
+ ]);
391
+ }
392
+ }
393
+ //# sourceMappingURL=swift.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"swift.js","sourceRoot":"","sources":["../../../../../../../src/modules/global/bank-account/validations/bank_account/swift.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAE9C,8CAA8C;AAC9C,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,iDAAiD;IACjD,QAAQ,EAAE,qCAAqC;IAE/C,iDAAiD;IACjD,QAAQ,EAAE,uBAAuB;IAEjC,2DAA2D;IAC3D,SAAS,EAAE,kCAAkC;IAE7C,qBAAqB;IACrB,SAAS,EAAE,YAAY,EAAE,8BAA8B;IACvD,YAAY,EAAE,YAAY,EAAE,+BAA+B;IAC3D,aAAa,EAAE,eAAe,EAAE,iCAAiC;IACjE,WAAW,EAAE,eAAe,EAAE,0CAA0C;CACzE,CAAA;AAED,yCAAyC;AACzC,MAAM,CAAC,MAAM,qBAAqB,GAAG,IAAI,GAAG,CAAC;IAC3C,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI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"}
@@ -1,4 +1,5 @@
1
1
  export * from './search';
2
+ export * from './bank-account';
2
3
  export * from './types';
3
4
  export * from './api';
4
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/modules/global/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAA;AACxB,cAAc,SAAS,CAAA;AACvB,cAAc,OAAO,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/modules/global/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAA;AACxB,cAAc,gBAAgB,CAAA;AAC9B,cAAc,SAAS,CAAA;AACvB,cAAc,OAAO,CAAA"}
@@ -1,4 +1,5 @@
1
1
  export * from './search';
2
+ export * from './bank-account';
2
3
  export * from './types';
3
4
  export * from './api';
4
5
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/modules/global/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAA;AACxB,cAAc,SAAS,CAAA;AACvB,cAAc,OAAO,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/modules/global/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAA;AACxB,cAAc,gBAAgB,CAAA;AAC9B,cAAc,SAAS,CAAA;AACvB,cAAc,OAAO,CAAA"}
@@ -1,3 +1,4 @@
1
+ import { GlobalBankAccountType } from './bank-account/types';
1
2
  export interface GlobalCountry {
2
3
  id: number;
3
4
  code: string;
@@ -17,4 +18,14 @@ export interface GlobalEconomicActivity {
17
18
  id: number;
18
19
  key: string;
19
20
  }
21
+ export declare enum GlobalPaymentMethodType {
22
+ bankAccount = "bank-account"
23
+ }
24
+ export interface GlobalPaymentMethodMetadata {
25
+ type: GlobalBankAccountType;
26
+ country: GlobalCountry;
27
+ accountNumber: string;
28
+ swiftBic: string;
29
+ routingNumber?: string;
30
+ }
20
31
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/modules/global/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;CACb;AAED,oBAAY,cAAc;IACxB,GAAG,QAAQ;IACX,GAAG,QAAQ;IACX,GAAG,QAAQ;CACZ;AAED,MAAM,WAAW,sBAAsB;IACrC,EAAE,EAAE,MAAM,CAAA;IACV,GAAG,EAAE,MAAM,CAAA;CACZ"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/modules/global/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAA;AAE5D,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;CACb;AAED,oBAAY,cAAc;IACxB,GAAG,QAAQ;IACX,GAAG,QAAQ;IACX,GAAG,QAAQ;CACZ;AAED,MAAM,WAAW,sBAAsB;IACrC,EAAE,EAAE,MAAM,CAAA;IACV,GAAG,EAAE,MAAM,CAAA;CACZ;AAED,oBAAY,uBAAuB;IACjC,WAAW,iBAAiB;CAC7B;AAED,MAAM,WAAW,2BAA2B;IAC1C,IAAI,EAAE,qBAAqB,CAAA;IAC3B,OAAO,EAAE,aAAa,CAAA;IACtB,aAAa,EAAE,MAAM,CAAA;IACrB,QAAQ,EAAE,MAAM,CAAA;IAChB,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB"}
@@ -4,4 +4,8 @@ export var GlobalCurrency;
4
4
  GlobalCurrency["USD"] = "USD";
5
5
  GlobalCurrency["MXN"] = "MXN";
6
6
  })(GlobalCurrency || (GlobalCurrency = {}));
7
+ export var GlobalPaymentMethodType;
8
+ (function (GlobalPaymentMethodType) {
9
+ GlobalPaymentMethodType["bankAccount"] = "bank-account";
10
+ })(GlobalPaymentMethodType || (GlobalPaymentMethodType = {}));
7
11
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/modules/global/types.ts"],"names":[],"mappings":"AAYA,MAAM,CAAN,IAAY,cAIX;AAJD,WAAY,cAAc;IACxB,6BAAW,CAAA;IACX,6BAAW,CAAA;IACX,6BAAW,CAAA;AACb,CAAC,EAJW,cAAc,KAAd,cAAc,QAIzB"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/modules/global/types.ts"],"names":[],"mappings":"AAcA,MAAM,CAAN,IAAY,cAIX;AAJD,WAAY,cAAc;IACxB,6BAAW,CAAA;IACX,6BAAW,CAAA;IACX,6BAAW,CAAA;AACb,CAAC,EAJW,cAAc,KAAd,cAAc,QAIzB;AAOD,MAAM,CAAN,IAAY,uBAEX;AAFD,WAAY,uBAAuB;IACjC,uDAA4B,CAAA;AAC9B,CAAC,EAFW,uBAAuB,KAAvB,uBAAuB,QAElC"}
@@ -0,0 +1,3 @@
1
+ import { GlobalPaymentMethodMetadata } from '../types';
2
+ export declare function validatePaymentMethod(req: GlobalPaymentMethodMetadata): Promise<void | never>;
3
+ //# sourceMappingURL=payment_method.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"payment_method.d.ts","sourceRoot":"","sources":["../../../../../src/modules/global/validations/payment_method.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,2BAA2B,EAAE,MAAM,UAAU,CAAA;AAItD,wBAAsB,qBAAqB,CAAC,GAAG,EAAE,2BAA2B,GAAG,OAAO,CAAC,IAAI,GAAG,KAAK,CAAC,CAqEnG"}
@@ -0,0 +1,71 @@
1
+ import { getSwiftCountry } from '../bank-account/validations/bank_account/swift';
2
+ import { validateAccountNumberABA } from '../bank-account/validations/bank_account/aba';
3
+ import { validateRoutingNumberABA } from '../bank-account/validations/bank_account/aba';
4
+ import { validateAccountNumberCLABE } from '../bank-account/validations/bank_account/clabe';
5
+ import { validateAccountNumberIBAN } from '../bank-account/validations/bank_account/iban';
6
+ import { getIBANCountryCode } from '../bank-account/validations/bank_account/iban';
7
+ import { IBAN_COUNTRY_CODES } from '../bank-account/validations/bank_account/iban';
8
+ import { validateCodeSwiftBic } from '../bank-account/validations/bank_account/swift';
9
+ import { GlobalBankAccountType } from '../bank-account/types';
10
+ import { ValidationError } from 'utils/errors';
11
+ export async function validatePaymentMethod(req) {
12
+ const swiftCountryCode = getSwiftCountry(req.swiftBic);
13
+ switch (req.type) {
14
+ case GlobalBankAccountType.ABA: {
15
+ if (!req.routingNumber) {
16
+ throw new ValidationError([
17
+ {
18
+ validation: 'routingNumber',
19
+ code: 'invalid_string',
20
+ message: 'Routing number is required for ABA bank accounts',
21
+ path: ['routingNumber'],
22
+ },
23
+ ]);
24
+ }
25
+ validateAccountNumberABA(req.accountNumber, 'accountNumber');
26
+ validateRoutingNumberABA(req.routingNumber, 'routingNumber');
27
+ if (swiftCountryCode !== 'US') {
28
+ throw new ValidationError([
29
+ {
30
+ validation: 'swiftBic',
31
+ code: 'invalid_string',
32
+ message: 'Invalid Swift BIC for ABA bank accounts',
33
+ path: ['swiftBic'],
34
+ },
35
+ ]);
36
+ }
37
+ break;
38
+ }
39
+ case GlobalBankAccountType.CLABE: {
40
+ validateAccountNumberCLABE(req.accountNumber, 'accountNumber');
41
+ if (swiftCountryCode !== 'MX') {
42
+ throw new ValidationError([
43
+ {
44
+ validation: 'swiftBic',
45
+ code: 'invalid_string',
46
+ message: 'Invalid Swift BIC for CLABE bank accounts',
47
+ path: ['swiftBic'],
48
+ },
49
+ ]);
50
+ }
51
+ break;
52
+ }
53
+ case GlobalBankAccountType.IBAN: {
54
+ validateAccountNumberIBAN(req.accountNumber, 'accountNumber');
55
+ const ibanCountryCode = getIBANCountryCode(req.accountNumber);
56
+ if (!swiftCountryCode || !IBAN_COUNTRY_CODES.includes(swiftCountryCode) || swiftCountryCode !== ibanCountryCode) {
57
+ throw new ValidationError([
58
+ {
59
+ validation: 'swiftBic',
60
+ code: 'invalid_string',
61
+ message: 'Invalid Swift BIC for IBAN bank accounts',
62
+ path: ['swiftBic'],
63
+ },
64
+ ]);
65
+ }
66
+ break;
67
+ }
68
+ }
69
+ validateCodeSwiftBic(req.swiftBic, 'swiftBic');
70
+ }
71
+ //# sourceMappingURL=payment_method.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"payment_method.js","sourceRoot":"","sources":["../../../../../src/modules/global/validations/payment_method.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,gDAAgD,CAAA;AAChF,OAAO,EAAE,wBAAwB,EAAE,MAAM,8CAA8C,CAAA;AACvF,OAAO,EAAE,wBAAwB,EAAE,MAAM,8CAA8C,CAAA;AACvF,OAAO,EAAE,0BAA0B,EAAE,MAAM,gDAAgD,CAAA;AAC3F,OAAO,EAAE,yBAAyB,EAAE,MAAM,+CAA+C,CAAA;AACzF,OAAO,EAAE,kBAAkB,EAAE,MAAM,+CAA+C,CAAA;AAClF,OAAO,EAAE,kBAAkB,EAAE,MAAM,+CAA+C,CAAA;AAClF,OAAO,EAAE,oBAAoB,EAAE,MAAM,gDAAgD,CAAA;AAErF,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAA;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAE9C,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,GAAgC;IAC1E,MAAM,gBAAgB,GAAG,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;IAEtD,QAAQ,GAAG,CAAC,IAAI,EAAE,CAAC;QACjB,KAAK,qBAAqB,CAAC,GAAG,CAAC,CAAC,CAAC;YAC/B,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;gBACvB,MAAM,IAAI,eAAe,CAAC;oBACxB;wBACE,UAAU,EAAE,eAAe;wBAC3B,IAAI,EAAE,gBAAgB;wBACtB,OAAO,EAAE,kDAAkD;wBAC3D,IAAI,EAAE,CAAC,eAAe,CAAC;qBACxB;iBACF,CAAC,CAAA;YACJ,CAAC;YAED,wBAAwB,CAAC,GAAG,CAAC,aAAa,EAAE,eAAe,CAAC,CAAA;YAC5D,wBAAwB,CAAC,GAAG,CAAC,aAAa,EAAE,eAAe,CAAC,CAAA;YAE5D,IAAI,gBAAgB,KAAK,IAAI,EAAE,CAAC;gBAC9B,MAAM,IAAI,eAAe,CAAC;oBACxB;wBACE,UAAU,EAAE,UAAU;wBACtB,IAAI,EAAE,gBAAgB;wBACtB,OAAO,EAAE,yCAAyC;wBAClD,IAAI,EAAE,CAAC,UAAU,CAAC;qBACnB;iBACF,CAAC,CAAA;YACJ,CAAC;YAED,MAAK;QACP,CAAC;QACD,KAAK,qBAAqB,CAAC,KAAK,CAAC,CAAC,CAAC;YACjC,0BAA0B,CAAC,GAAG,CAAC,aAAa,EAAE,eAAe,CAAC,CAAA;YAE9D,IAAI,gBAAgB,KAAK,IAAI,EAAE,CAAC;gBAC9B,MAAM,IAAI,eAAe,CAAC;oBACxB;wBACE,UAAU,EAAE,UAAU;wBACtB,IAAI,EAAE,gBAAgB;wBACtB,OAAO,EAAE,2CAA2C;wBACpD,IAAI,EAAE,CAAC,UAAU,CAAC;qBACnB;iBACF,CAAC,CAAA;YACJ,CAAC;YAED,MAAK;QACP,CAAC;QACD,KAAK,qBAAqB,CAAC,IAAI,CAAC,CAAC,CAAC;YAChC,yBAAyB,CAAC,GAAG,CAAC,aAAa,EAAE,eAAe,CAAC,CAAA;YAE7D,MAAM,eAAe,GAAG,kBAAkB,CAAC,GAAG,CAAC,aAAa,CAAC,CAAA;YAE7D,IAAI,CAAC,gBAAgB,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI,gBAAgB,KAAK,eAAe,EAAE,CAAC;gBAChH,MAAM,IAAI,eAAe,CAAC;oBACxB;wBACE,UAAU,EAAE,UAAU;wBACtB,IAAI,EAAE,gBAAgB;wBACtB,OAAO,EAAE,0CAA0C;wBACnD,IAAI,EAAE,CAAC,UAAU,CAAC;qBACnB;iBACF,CAAC,CAAA;YACJ,CAAC;YAED,MAAK;QACP,CAAC;IACH,CAAC;IAED,oBAAoB,CAAC,GAAG,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAA;AAChD,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=payment_method.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"payment_method.spec.d.ts","sourceRoot":"","sources":["../../../../../src/modules/global/validations/payment_method.spec.ts"],"names":[],"mappings":""}