@plyaz/config 1.7.5 → 1.7.7
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/dist/db/index.cjs.map +1 -1
- package/dist/db/index.d.ts.map +1 -1
- package/dist/db/index.mjs.map +1 -1
- package/dist/http/constants.d.ts +1 -260
- package/dist/http/constants.d.ts.map +1 -1
- package/dist/index.cjs +3 -3
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.mjs +4 -4
- package/dist/index.mjs.map +1 -1
- package/dist/locale/currencies.d.ts +1 -101
- package/dist/locale/currencies.d.ts.map +1 -1
- package/dist/locale/index.cjs +2 -2
- package/dist/locale/index.cjs.map +1 -1
- package/dist/locale/index.mjs +2 -2
- package/dist/locale/index.mjs.map +1 -1
- package/dist/notifications/constants.d.ts +464 -0
- package/dist/notifications/constants.d.ts.map +1 -0
- package/dist/notifications/index.cjs +1 -1
- package/dist/notifications/index.d.ts +9 -0
- package/dist/notifications/index.d.ts.map +1 -0
- package/dist/notifications/index.mjs +1 -1
- package/dist/payments/index.cjs +1 -1
- package/dist/payments/index.cjs.map +1 -1
- package/dist/payments/index.mjs +2 -2
- package/dist/payments/index.mjs.map +1 -1
- package/dist/payments/providers/stripe/index.d.ts +0 -1
- package/dist/payments/providers/stripe/index.d.ts.map +1 -1
- package/dist/payments/validators.d.ts +1 -1
- package/package.json +2 -3
|
@@ -0,0 +1,464 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Notification Configuration Constants
|
|
3
|
+
*
|
|
4
|
+
* Default configuration values for the notifications system.
|
|
5
|
+
* These can be overridden at runtime through configuration objects.
|
|
6
|
+
*
|
|
7
|
+
* @module src/notifications/constants
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* Default notification category
|
|
11
|
+
* Safest default for compliance - transactional emails must always be sent
|
|
12
|
+
*/
|
|
13
|
+
export declare const DEFAULT_NOTIFICATION_CATEGORY: "transactional";
|
|
14
|
+
/**
|
|
15
|
+
* Retry Configuration
|
|
16
|
+
*/
|
|
17
|
+
export declare const RETRY_CONFIG: {
|
|
18
|
+
/**
|
|
19
|
+
* Default maximum number of retry attempts
|
|
20
|
+
* Used when no specific retry count is provided
|
|
21
|
+
*/
|
|
22
|
+
readonly DEFAULT_MAX_ATTEMPTS: 3;
|
|
23
|
+
/**
|
|
24
|
+
* Default initial delay between retries (milliseconds)
|
|
25
|
+
* Used for exponential backoff calculation
|
|
26
|
+
*/
|
|
27
|
+
readonly DEFAULT_INITIAL_DELAY_MS: 1000;
|
|
28
|
+
/**
|
|
29
|
+
* Maximum delay between retries (milliseconds)
|
|
30
|
+
* Prevents exponential backoff from growing too large
|
|
31
|
+
*/
|
|
32
|
+
readonly MAX_DELAY_MS: 30000;
|
|
33
|
+
/**
|
|
34
|
+
* Backoff multiplier for exponential backoff
|
|
35
|
+
* Each retry delay = previous delay * multiplier
|
|
36
|
+
*/
|
|
37
|
+
readonly BACKOFF_MULTIPLIER: 2;
|
|
38
|
+
};
|
|
39
|
+
/**
|
|
40
|
+
* Attachment Configuration
|
|
41
|
+
*/
|
|
42
|
+
export declare const ATTACHMENT_CONFIG: {
|
|
43
|
+
/**
|
|
44
|
+
* Default maximum number of attachments per notification
|
|
45
|
+
*/
|
|
46
|
+
readonly DEFAULT_MAX_ATTACHMENTS: 10;
|
|
47
|
+
/**
|
|
48
|
+
* Default maximum size per attachment (bytes)
|
|
49
|
+
* 25MB - Common limit across providers
|
|
50
|
+
*/
|
|
51
|
+
readonly DEFAULT_MAX_SIZE_PER_ATTACHMENT: number;
|
|
52
|
+
/**
|
|
53
|
+
* Default maximum total size of all attachments (bytes)
|
|
54
|
+
* 25MB - Ensures we don't exceed provider limits
|
|
55
|
+
*/
|
|
56
|
+
readonly DEFAULT_MAX_TOTAL_SIZE: number;
|
|
57
|
+
/**
|
|
58
|
+
* Maximum attachment size for SendGrid (bytes)
|
|
59
|
+
* 30MB per SendGrid documentation
|
|
60
|
+
*/
|
|
61
|
+
readonly SENDGRID_MAX_SIZE: number;
|
|
62
|
+
/**
|
|
63
|
+
* Maximum total attachment size for SendGrid (bytes)
|
|
64
|
+
* 30MB per SendGrid documentation
|
|
65
|
+
*/
|
|
66
|
+
readonly SENDGRID_MAX_TOTAL_SIZE: number;
|
|
67
|
+
/**
|
|
68
|
+
* Maximum attachment size for Infobip (bytes)
|
|
69
|
+
* 30MB - matching SendGrid for consistency
|
|
70
|
+
*/
|
|
71
|
+
readonly INFOBIP_MAX_SIZE: number;
|
|
72
|
+
/**
|
|
73
|
+
* Maximum total attachment size for Infobip (bytes)
|
|
74
|
+
* 30MB - matching SendGrid for consistency
|
|
75
|
+
*/
|
|
76
|
+
readonly INFOBIP_MAX_TOTAL_SIZE: number;
|
|
77
|
+
/**
|
|
78
|
+
* Default timeout for URL attachment fetching (milliseconds)
|
|
79
|
+
*/
|
|
80
|
+
readonly URL_FETCH_TIMEOUT_MS: 30000;
|
|
81
|
+
/**
|
|
82
|
+
* Maximum number of retry attempts for failed URL fetches
|
|
83
|
+
*/
|
|
84
|
+
readonly URL_FETCH_MAX_RETRIES: 3;
|
|
85
|
+
};
|
|
86
|
+
/**
|
|
87
|
+
* Circuit Breaker Configuration
|
|
88
|
+
*/
|
|
89
|
+
export declare const CIRCUIT_BREAKER_CONFIG: {
|
|
90
|
+
/**
|
|
91
|
+
* Default failure threshold before opening circuit
|
|
92
|
+
* Circuit opens after this many consecutive failures
|
|
93
|
+
*/
|
|
94
|
+
readonly DEFAULT_FAILURE_THRESHOLD: 5;
|
|
95
|
+
/**
|
|
96
|
+
* Default timeout before attempting half-open state (milliseconds)
|
|
97
|
+
* How long to wait before testing if provider has recovered
|
|
98
|
+
*/
|
|
99
|
+
readonly DEFAULT_TIMEOUT_MS: 60000;
|
|
100
|
+
/**
|
|
101
|
+
* Default success threshold in half-open state
|
|
102
|
+
* Number of successful requests needed to close circuit
|
|
103
|
+
*/
|
|
104
|
+
readonly DEFAULT_SUCCESS_THRESHOLD: 2;
|
|
105
|
+
};
|
|
106
|
+
/**
|
|
107
|
+
* Queue Configuration
|
|
108
|
+
*/
|
|
109
|
+
export declare const QUEUE_CONFIG: {
|
|
110
|
+
/**
|
|
111
|
+
* Default maximum queue size
|
|
112
|
+
*/
|
|
113
|
+
readonly DEFAULT_MAX_SIZE: 10000;
|
|
114
|
+
/**
|
|
115
|
+
* Default number of concurrent workers
|
|
116
|
+
*/
|
|
117
|
+
readonly DEFAULT_CONCURRENCY: 5;
|
|
118
|
+
/**
|
|
119
|
+
* Default queue processing interval (milliseconds)
|
|
120
|
+
*/
|
|
121
|
+
readonly DEFAULT_PROCESSING_INTERVAL_MS: 100;
|
|
122
|
+
};
|
|
123
|
+
/**
|
|
124
|
+
* Rate Limiting Configuration
|
|
125
|
+
*/
|
|
126
|
+
export declare const RATE_LIMIT_CONFIG: {
|
|
127
|
+
/**
|
|
128
|
+
* Default requests per second per provider
|
|
129
|
+
*/
|
|
130
|
+
readonly DEFAULT_REQUESTS_PER_SECOND: 10;
|
|
131
|
+
/**
|
|
132
|
+
* Default burst allowance
|
|
133
|
+
* Number of requests that can be sent in a burst
|
|
134
|
+
*/
|
|
135
|
+
readonly DEFAULT_BURST_ALLOWANCE: 20;
|
|
136
|
+
/**
|
|
137
|
+
* Default window size for rate limiting (milliseconds)
|
|
138
|
+
*/
|
|
139
|
+
readonly DEFAULT_WINDOW_MS: 1000;
|
|
140
|
+
};
|
|
141
|
+
/**
|
|
142
|
+
* Template Configuration
|
|
143
|
+
*/
|
|
144
|
+
export declare const TEMPLATE_CONFIG: {
|
|
145
|
+
/**
|
|
146
|
+
* Default locale for templates
|
|
147
|
+
*/
|
|
148
|
+
readonly DEFAULT_LOCALE: "en";
|
|
149
|
+
/**
|
|
150
|
+
* Fallback locale when requested locale not found
|
|
151
|
+
*/
|
|
152
|
+
readonly FALLBACK_LOCALE: "en";
|
|
153
|
+
/**
|
|
154
|
+
* Template cache TTL (milliseconds)
|
|
155
|
+
* How long to cache compiled templates
|
|
156
|
+
*/
|
|
157
|
+
readonly CACHE_TTL_MS: 300000;
|
|
158
|
+
/**
|
|
159
|
+
* Maximum template size (bytes)
|
|
160
|
+
*/
|
|
161
|
+
readonly MAX_TEMPLATE_SIZE: 1048576;
|
|
162
|
+
};
|
|
163
|
+
/**
|
|
164
|
+
* SMS Character Limits and Encoding
|
|
165
|
+
* Based on GSM-7 and UCS-2 encoding standards
|
|
166
|
+
*/
|
|
167
|
+
export declare const SMS_CONFIG: {
|
|
168
|
+
/**
|
|
169
|
+
* Single SMS message limit for GSM-7 encoding (standard characters)
|
|
170
|
+
* Includes: A-Z, a-z, 0-9, and basic punctuation
|
|
171
|
+
*/
|
|
172
|
+
readonly GSM7_SINGLE_MESSAGE_LIMIT: 160;
|
|
173
|
+
/**
|
|
174
|
+
* Multi-part SMS message segment limit for GSM-7 encoding
|
|
175
|
+
* Each segment in a concatenated message is limited to 153 characters (7 chars for UDH)
|
|
176
|
+
*/
|
|
177
|
+
readonly GSM7_MULTI_PART_SEGMENT_LIMIT: 153;
|
|
178
|
+
/**
|
|
179
|
+
* Single SMS message limit for UCS-2 encoding (unicode characters)
|
|
180
|
+
* Used when message contains emoji, non-Latin characters, etc.
|
|
181
|
+
*/
|
|
182
|
+
readonly UCS2_SINGLE_MESSAGE_LIMIT: 70;
|
|
183
|
+
/**
|
|
184
|
+
* Multi-part SMS message segment limit for UCS-2 encoding
|
|
185
|
+
* Each segment in a concatenated message is limited to 67 characters
|
|
186
|
+
*/
|
|
187
|
+
readonly UCS2_MULTI_PART_SEGMENT_LIMIT: 67;
|
|
188
|
+
/**
|
|
189
|
+
* Maximum number of SMS segments to allow
|
|
190
|
+
* Prevents accidentally sending very expensive multi-part messages
|
|
191
|
+
*/
|
|
192
|
+
readonly DEFAULT_MAX_SEGMENTS: 10;
|
|
193
|
+
/**
|
|
194
|
+
* Warning threshold (percentage of limit)
|
|
195
|
+
* Emit warning when message reaches this percentage of the limit
|
|
196
|
+
*/
|
|
197
|
+
readonly WARNING_THRESHOLD_PERCENTAGE: 90;
|
|
198
|
+
};
|
|
199
|
+
/**
|
|
200
|
+
* Notification Configuration
|
|
201
|
+
*/
|
|
202
|
+
export declare const NOTIFICATION_CONFIG: {
|
|
203
|
+
/**
|
|
204
|
+
* Default notification priority
|
|
205
|
+
*/
|
|
206
|
+
readonly DEFAULT_PRIORITY: "normal";
|
|
207
|
+
/**
|
|
208
|
+
* Maximum subject line length
|
|
209
|
+
*/
|
|
210
|
+
readonly MAX_SUBJECT_LENGTH: 255;
|
|
211
|
+
/**
|
|
212
|
+
* Maximum push notification title length
|
|
213
|
+
*/
|
|
214
|
+
readonly MAX_PUSH_TITLE_LENGTH: 100;
|
|
215
|
+
/**
|
|
216
|
+
* Maximum push notification body length
|
|
217
|
+
*/
|
|
218
|
+
readonly MAX_PUSH_BODY_LENGTH: 500;
|
|
219
|
+
};
|
|
220
|
+
/**
|
|
221
|
+
* Logging Configuration
|
|
222
|
+
*/
|
|
223
|
+
export declare const LOGGING_CONFIG: {
|
|
224
|
+
/**
|
|
225
|
+
* Default log level
|
|
226
|
+
*/
|
|
227
|
+
readonly DEFAULT_LEVEL: "info";
|
|
228
|
+
/**
|
|
229
|
+
* Maximum log message size (bytes)
|
|
230
|
+
* Prevents excessive log sizes
|
|
231
|
+
*/
|
|
232
|
+
readonly MAX_LOG_SIZE: 10000;
|
|
233
|
+
};
|
|
234
|
+
/**
|
|
235
|
+
* Health Check Configuration
|
|
236
|
+
*/
|
|
237
|
+
export declare const HEALTH_CHECK_CONFIG: {
|
|
238
|
+
/**
|
|
239
|
+
* Default health check interval (milliseconds)
|
|
240
|
+
*/
|
|
241
|
+
readonly DEFAULT_INTERVAL_MS: 30000;
|
|
242
|
+
/**
|
|
243
|
+
* Default health check timeout (milliseconds)
|
|
244
|
+
*/
|
|
245
|
+
readonly DEFAULT_TIMEOUT_MS: 5000;
|
|
246
|
+
/**
|
|
247
|
+
* Maximum acceptable latency (milliseconds)
|
|
248
|
+
* Health check fails if latency exceeds this
|
|
249
|
+
*/
|
|
250
|
+
readonly MAX_ACCEPTABLE_LATENCY_MS: 2000;
|
|
251
|
+
};
|
|
252
|
+
/**
|
|
253
|
+
* Export all configuration as a single object for convenience
|
|
254
|
+
*/
|
|
255
|
+
export declare const NOTIFICATION_PACKAGE_CONFIG: {
|
|
256
|
+
readonly RETRY: {
|
|
257
|
+
/**
|
|
258
|
+
* Default maximum number of retry attempts
|
|
259
|
+
* Used when no specific retry count is provided
|
|
260
|
+
*/
|
|
261
|
+
readonly DEFAULT_MAX_ATTEMPTS: 3;
|
|
262
|
+
/**
|
|
263
|
+
* Default initial delay between retries (milliseconds)
|
|
264
|
+
* Used for exponential backoff calculation
|
|
265
|
+
*/
|
|
266
|
+
readonly DEFAULT_INITIAL_DELAY_MS: 1000;
|
|
267
|
+
/**
|
|
268
|
+
* Maximum delay between retries (milliseconds)
|
|
269
|
+
* Prevents exponential backoff from growing too large
|
|
270
|
+
*/
|
|
271
|
+
readonly MAX_DELAY_MS: 30000;
|
|
272
|
+
/**
|
|
273
|
+
* Backoff multiplier for exponential backoff
|
|
274
|
+
* Each retry delay = previous delay * multiplier
|
|
275
|
+
*/
|
|
276
|
+
readonly BACKOFF_MULTIPLIER: 2;
|
|
277
|
+
};
|
|
278
|
+
readonly ATTACHMENT: {
|
|
279
|
+
/**
|
|
280
|
+
* Default maximum number of attachments per notification
|
|
281
|
+
*/
|
|
282
|
+
readonly DEFAULT_MAX_ATTACHMENTS: 10;
|
|
283
|
+
/**
|
|
284
|
+
* Default maximum size per attachment (bytes)
|
|
285
|
+
* 25MB - Common limit across providers
|
|
286
|
+
*/
|
|
287
|
+
readonly DEFAULT_MAX_SIZE_PER_ATTACHMENT: number;
|
|
288
|
+
/**
|
|
289
|
+
* Default maximum total size of all attachments (bytes)
|
|
290
|
+
* 25MB - Ensures we don't exceed provider limits
|
|
291
|
+
*/
|
|
292
|
+
readonly DEFAULT_MAX_TOTAL_SIZE: number;
|
|
293
|
+
/**
|
|
294
|
+
* Maximum attachment size for SendGrid (bytes)
|
|
295
|
+
* 30MB per SendGrid documentation
|
|
296
|
+
*/
|
|
297
|
+
readonly SENDGRID_MAX_SIZE: number;
|
|
298
|
+
/**
|
|
299
|
+
* Maximum total attachment size for SendGrid (bytes)
|
|
300
|
+
* 30MB per SendGrid documentation
|
|
301
|
+
*/
|
|
302
|
+
readonly SENDGRID_MAX_TOTAL_SIZE: number;
|
|
303
|
+
/**
|
|
304
|
+
* Maximum attachment size for Infobip (bytes)
|
|
305
|
+
* 30MB - matching SendGrid for consistency
|
|
306
|
+
*/
|
|
307
|
+
readonly INFOBIP_MAX_SIZE: number;
|
|
308
|
+
/**
|
|
309
|
+
* Maximum total attachment size for Infobip (bytes)
|
|
310
|
+
* 30MB - matching SendGrid for consistency
|
|
311
|
+
*/
|
|
312
|
+
readonly INFOBIP_MAX_TOTAL_SIZE: number;
|
|
313
|
+
/**
|
|
314
|
+
* Default timeout for URL attachment fetching (milliseconds)
|
|
315
|
+
*/
|
|
316
|
+
readonly URL_FETCH_TIMEOUT_MS: 30000;
|
|
317
|
+
/**
|
|
318
|
+
* Maximum number of retry attempts for failed URL fetches
|
|
319
|
+
*/
|
|
320
|
+
readonly URL_FETCH_MAX_RETRIES: 3;
|
|
321
|
+
};
|
|
322
|
+
readonly CIRCUIT_BREAKER: {
|
|
323
|
+
/**
|
|
324
|
+
* Default failure threshold before opening circuit
|
|
325
|
+
* Circuit opens after this many consecutive failures
|
|
326
|
+
*/
|
|
327
|
+
readonly DEFAULT_FAILURE_THRESHOLD: 5;
|
|
328
|
+
/**
|
|
329
|
+
* Default timeout before attempting half-open state (milliseconds)
|
|
330
|
+
* How long to wait before testing if provider has recovered
|
|
331
|
+
*/
|
|
332
|
+
readonly DEFAULT_TIMEOUT_MS: 60000;
|
|
333
|
+
/**
|
|
334
|
+
* Default success threshold in half-open state
|
|
335
|
+
* Number of successful requests needed to close circuit
|
|
336
|
+
*/
|
|
337
|
+
readonly DEFAULT_SUCCESS_THRESHOLD: 2;
|
|
338
|
+
};
|
|
339
|
+
readonly QUEUE: {
|
|
340
|
+
/**
|
|
341
|
+
* Default maximum queue size
|
|
342
|
+
*/
|
|
343
|
+
readonly DEFAULT_MAX_SIZE: 10000;
|
|
344
|
+
/**
|
|
345
|
+
* Default number of concurrent workers
|
|
346
|
+
*/
|
|
347
|
+
readonly DEFAULT_CONCURRENCY: 5;
|
|
348
|
+
/**
|
|
349
|
+
* Default queue processing interval (milliseconds)
|
|
350
|
+
*/
|
|
351
|
+
readonly DEFAULT_PROCESSING_INTERVAL_MS: 100;
|
|
352
|
+
};
|
|
353
|
+
readonly RATE_LIMIT: {
|
|
354
|
+
/**
|
|
355
|
+
* Default requests per second per provider
|
|
356
|
+
*/
|
|
357
|
+
readonly DEFAULT_REQUESTS_PER_SECOND: 10;
|
|
358
|
+
/**
|
|
359
|
+
* Default burst allowance
|
|
360
|
+
* Number of requests that can be sent in a burst
|
|
361
|
+
*/
|
|
362
|
+
readonly DEFAULT_BURST_ALLOWANCE: 20;
|
|
363
|
+
/**
|
|
364
|
+
* Default window size for rate limiting (milliseconds)
|
|
365
|
+
*/
|
|
366
|
+
readonly DEFAULT_WINDOW_MS: 1000;
|
|
367
|
+
};
|
|
368
|
+
readonly TEMPLATE: {
|
|
369
|
+
/**
|
|
370
|
+
* Default locale for templates
|
|
371
|
+
*/
|
|
372
|
+
readonly DEFAULT_LOCALE: "en";
|
|
373
|
+
/**
|
|
374
|
+
* Fallback locale when requested locale not found
|
|
375
|
+
*/
|
|
376
|
+
readonly FALLBACK_LOCALE: "en";
|
|
377
|
+
/**
|
|
378
|
+
* Template cache TTL (milliseconds)
|
|
379
|
+
* How long to cache compiled templates
|
|
380
|
+
*/
|
|
381
|
+
readonly CACHE_TTL_MS: 300000;
|
|
382
|
+
/**
|
|
383
|
+
* Maximum template size (bytes)
|
|
384
|
+
*/
|
|
385
|
+
readonly MAX_TEMPLATE_SIZE: 1048576;
|
|
386
|
+
};
|
|
387
|
+
readonly SMS: {
|
|
388
|
+
/**
|
|
389
|
+
* Single SMS message limit for GSM-7 encoding (standard characters)
|
|
390
|
+
* Includes: A-Z, a-z, 0-9, and basic punctuation
|
|
391
|
+
*/
|
|
392
|
+
readonly GSM7_SINGLE_MESSAGE_LIMIT: 160;
|
|
393
|
+
/**
|
|
394
|
+
* Multi-part SMS message segment limit for GSM-7 encoding
|
|
395
|
+
* Each segment in a concatenated message is limited to 153 characters (7 chars for UDH)
|
|
396
|
+
*/
|
|
397
|
+
readonly GSM7_MULTI_PART_SEGMENT_LIMIT: 153;
|
|
398
|
+
/**
|
|
399
|
+
* Single SMS message limit for UCS-2 encoding (unicode characters)
|
|
400
|
+
* Used when message contains emoji, non-Latin characters, etc.
|
|
401
|
+
*/
|
|
402
|
+
readonly UCS2_SINGLE_MESSAGE_LIMIT: 70;
|
|
403
|
+
/**
|
|
404
|
+
* Multi-part SMS message segment limit for UCS-2 encoding
|
|
405
|
+
* Each segment in a concatenated message is limited to 67 characters
|
|
406
|
+
*/
|
|
407
|
+
readonly UCS2_MULTI_PART_SEGMENT_LIMIT: 67;
|
|
408
|
+
/**
|
|
409
|
+
* Maximum number of SMS segments to allow
|
|
410
|
+
* Prevents accidentally sending very expensive multi-part messages
|
|
411
|
+
*/
|
|
412
|
+
readonly DEFAULT_MAX_SEGMENTS: 10;
|
|
413
|
+
/**
|
|
414
|
+
* Warning threshold (percentage of limit)
|
|
415
|
+
* Emit warning when message reaches this percentage of the limit
|
|
416
|
+
*/
|
|
417
|
+
readonly WARNING_THRESHOLD_PERCENTAGE: 90;
|
|
418
|
+
};
|
|
419
|
+
readonly NOTIFICATION: {
|
|
420
|
+
/**
|
|
421
|
+
* Default notification priority
|
|
422
|
+
*/
|
|
423
|
+
readonly DEFAULT_PRIORITY: "normal";
|
|
424
|
+
/**
|
|
425
|
+
* Maximum subject line length
|
|
426
|
+
*/
|
|
427
|
+
readonly MAX_SUBJECT_LENGTH: 255;
|
|
428
|
+
/**
|
|
429
|
+
* Maximum push notification title length
|
|
430
|
+
*/
|
|
431
|
+
readonly MAX_PUSH_TITLE_LENGTH: 100;
|
|
432
|
+
/**
|
|
433
|
+
* Maximum push notification body length
|
|
434
|
+
*/
|
|
435
|
+
readonly MAX_PUSH_BODY_LENGTH: 500;
|
|
436
|
+
};
|
|
437
|
+
readonly LOGGING: {
|
|
438
|
+
/**
|
|
439
|
+
* Default log level
|
|
440
|
+
*/
|
|
441
|
+
readonly DEFAULT_LEVEL: "info";
|
|
442
|
+
/**
|
|
443
|
+
* Maximum log message size (bytes)
|
|
444
|
+
* Prevents excessive log sizes
|
|
445
|
+
*/
|
|
446
|
+
readonly MAX_LOG_SIZE: 10000;
|
|
447
|
+
};
|
|
448
|
+
readonly HEALTH_CHECK: {
|
|
449
|
+
/**
|
|
450
|
+
* Default health check interval (milliseconds)
|
|
451
|
+
*/
|
|
452
|
+
readonly DEFAULT_INTERVAL_MS: 30000;
|
|
453
|
+
/**
|
|
454
|
+
* Default health check timeout (milliseconds)
|
|
455
|
+
*/
|
|
456
|
+
readonly DEFAULT_TIMEOUT_MS: 5000;
|
|
457
|
+
/**
|
|
458
|
+
* Maximum acceptable latency (milliseconds)
|
|
459
|
+
* Health check fails if latency exceeds this
|
|
460
|
+
*/
|
|
461
|
+
readonly MAX_ACCEPTABLE_LATENCY_MS: 2000;
|
|
462
|
+
};
|
|
463
|
+
};
|
|
464
|
+
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/notifications/constants.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAYH;;;GAGG;AACH,eAAO,MAAM,6BAA6B,iBAAwC,CAAC;AAEnF;;GAEG;AACH,eAAO,MAAM,YAAY;IACvB;;;OAGG;;IAGH;;;OAGG;;IAGH;;;OAGG;;IAGH;;;OAGG;;CAEK,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,iBAAiB;IAC5B;;OAEG;;IAGH;;;OAGG;;IAGH;;;OAGG;;IAGH;;;OAGG;;IAGH;;;OAGG;;IAGH;;;OAGG;;IAGH;;;OAGG;;IAGH;;OAEG;;IAGH;;OAEG;;CAEK,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,sBAAsB;IACjC;;;OAGG;;IAGH;;;OAGG;;IAGH;;;OAGG;;CAEK,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,YAAY;IACvB;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;CAEK,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,iBAAiB;IAC5B;;OAEG;;IAGH;;;OAGG;;IAGH;;OAEG;;CAEK,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,eAAe;IAC1B;;OAEG;;IAGH;;OAEG;;IAGH;;;OAGG;;IAGH;;OAEG;;CAEK,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,UAAU;IACrB;;;OAGG;;IAGH;;;OAGG;;IAGH;;;OAGG;;IAGH;;;OAGG;;IAGH;;;OAGG;;IAGH;;;OAGG;;CAEK,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,mBAAmB;IAC9B;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;CAEK,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,cAAc;IACzB;;OAEG;;IAGH;;;OAGG;;CAEK,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,mBAAmB;IAC9B;;OAEG;;IAGH;;OAEG;;IAGH;;;OAGG;;CAEK,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,2BAA2B;;QAtRtC;;;WAGG;;QAGH;;;WAGG;;QAGH;;;WAGG;;QAGH;;;WAGG;;;;QAQH;;WAEG;;QAGH;;;WAGG;;QAGH;;;WAGG;;QAGH;;;WAGG;;QAGH;;;WAGG;;QAGH;;;WAGG;;QAGH;;;WAGG;;QAGH;;WAEG;;QAGH;;WAEG;;;;QAQH;;;WAGG;;QAGH;;;WAGG;;QAGH;;;WAGG;;;;QAQH;;WAEG;;QAGH;;WAEG;;QAGH;;WAEG;;;;QAQH;;WAEG;;QAGH;;;WAGG;;QAGH;;WAEG;;;;QAQH;;WAEG;;QAGH;;WAEG;;QAGH;;;WAGG;;QAGH;;WAEG;;;;QASH;;;WAGG;;QAGH;;;WAGG;;QAGH;;;WAGG;;QAGH;;;WAGG;;QAGH;;;WAGG;;QAGH;;;WAGG;;;;QAQH;;WAEG;;QAGH;;WAEG;;QAGH;;WAEG;;QAGH;;WAEG;;;;QAQH;;WAEG;;QAGH;;;WAGG;;;;QAQH;;WAEG;;QAGH;;WAEG;;QAGH;;;WAGG;;;CAkBK,CAAC"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
'use strict';var types=require('@plyaz/types');// @plyaz package - Built with tsup
|
|
2
|
-
var E={BYTES_PER_MB:1048576};var T=25,_=30,
|
|
2
|
+
var E={BYTES_PER_MB:1048576};var T=25,_=30,s=types.NOTIFICATION_CATEGORIES.TRANSACTIONAL,I={DEFAULT_MAX_ATTEMPTS:3,DEFAULT_INITIAL_DELAY_MS:1e3,MAX_DELAY_MS:3e4,BACKOFF_MULTIPLIER:2},S={DEFAULT_MAX_ATTACHMENTS:10,DEFAULT_MAX_SIZE_PER_ATTACHMENT:T*E.BYTES_PER_MB,DEFAULT_MAX_TOTAL_SIZE:T*E.BYTES_PER_MB,SENDGRID_MAX_SIZE:_*E.BYTES_PER_MB,SENDGRID_MAX_TOTAL_SIZE:_*E.BYTES_PER_MB,INFOBIP_MAX_SIZE:_*E.BYTES_PER_MB,INFOBIP_MAX_TOTAL_SIZE:_*E.BYTES_PER_MB,URL_FETCH_TIMEOUT_MS:3e4,URL_FETCH_MAX_RETRIES:3},L={DEFAULT_FAILURE_THRESHOLD:5,DEFAULT_TIMEOUT_MS:6e4,DEFAULT_SUCCESS_THRESHOLD:2},N={DEFAULT_MAX_SIZE:1e4,DEFAULT_CONCURRENCY:5,DEFAULT_PROCESSING_INTERVAL_MS:100},R={DEFAULT_REQUESTS_PER_SECOND:10,DEFAULT_BURST_ALLOWANCE:20,DEFAULT_WINDOW_MS:1e3},M={DEFAULT_LOCALE:"en",FALLBACK_LOCALE:"en",CACHE_TTL_MS:3e5,MAX_TEMPLATE_SIZE:E.BYTES_PER_MB},C={GSM7_SINGLE_MESSAGE_LIMIT:160,GSM7_MULTI_PART_SEGMENT_LIMIT:153,UCS2_SINGLE_MESSAGE_LIMIT:70,UCS2_MULTI_PART_SEGMENT_LIMIT:67,DEFAULT_MAX_SEGMENTS:10,WARNING_THRESHOLD_PERCENTAGE:90},O={DEFAULT_PRIORITY:"normal",MAX_SUBJECT_LENGTH:255,MAX_PUSH_TITLE_LENGTH:100,MAX_PUSH_BODY_LENGTH:500},o={DEFAULT_LEVEL:"info",MAX_LOG_SIZE:1e4},t={DEFAULT_INTERVAL_MS:3e4,DEFAULT_TIMEOUT_MS:5e3,MAX_ACCEPTABLE_LATENCY_MS:2e3},P={RETRY:I,ATTACHMENT:S,CIRCUIT_BREAKER:L,QUEUE:N,RATE_LIMIT:R,TEMPLATE:M,SMS:C,NOTIFICATION:O,LOGGING:o,HEALTH_CHECK:t};exports.ATTACHMENT_CONFIG=S;exports.CIRCUIT_BREAKER_CONFIG=L;exports.DEFAULT_NOTIFICATION_CATEGORY=s;exports.HEALTH_CHECK_CONFIG=t;exports.LOGGING_CONFIG=o;exports.NOTIFICATION_CONFIG=O;exports.NOTIFICATION_PACKAGE_CONFIG=P;exports.QUEUE_CONFIG=N;exports.RATE_LIMIT_CONFIG=R;exports.RETRY_CONFIG=I;exports.SMS_CONFIG=C;exports.TEMPLATE_CONFIG=M;//# sourceMappingURL=index.cjs.map
|
|
3
3
|
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/notifications/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,cAAc,aAAa,CAAC"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import {NOTIFICATION_CATEGORIES}from'@plyaz/types';// @plyaz package - Built with tsup
|
|
2
|
-
var E={BYTES_PER_MB:1048576};var T=25,_=30,
|
|
2
|
+
var E={BYTES_PER_MB:1048576};var T=25,_=30,s=NOTIFICATION_CATEGORIES.TRANSACTIONAL,I={DEFAULT_MAX_ATTEMPTS:3,DEFAULT_INITIAL_DELAY_MS:1e3,MAX_DELAY_MS:3e4,BACKOFF_MULTIPLIER:2},S={DEFAULT_MAX_ATTACHMENTS:10,DEFAULT_MAX_SIZE_PER_ATTACHMENT:T*E.BYTES_PER_MB,DEFAULT_MAX_TOTAL_SIZE:T*E.BYTES_PER_MB,SENDGRID_MAX_SIZE:_*E.BYTES_PER_MB,SENDGRID_MAX_TOTAL_SIZE:_*E.BYTES_PER_MB,INFOBIP_MAX_SIZE:_*E.BYTES_PER_MB,INFOBIP_MAX_TOTAL_SIZE:_*E.BYTES_PER_MB,URL_FETCH_TIMEOUT_MS:3e4,URL_FETCH_MAX_RETRIES:3},L={DEFAULT_FAILURE_THRESHOLD:5,DEFAULT_TIMEOUT_MS:6e4,DEFAULT_SUCCESS_THRESHOLD:2},N={DEFAULT_MAX_SIZE:1e4,DEFAULT_CONCURRENCY:5,DEFAULT_PROCESSING_INTERVAL_MS:100},R={DEFAULT_REQUESTS_PER_SECOND:10,DEFAULT_BURST_ALLOWANCE:20,DEFAULT_WINDOW_MS:1e3},M={DEFAULT_LOCALE:"en",FALLBACK_LOCALE:"en",CACHE_TTL_MS:3e5,MAX_TEMPLATE_SIZE:E.BYTES_PER_MB},C={GSM7_SINGLE_MESSAGE_LIMIT:160,GSM7_MULTI_PART_SEGMENT_LIMIT:153,UCS2_SINGLE_MESSAGE_LIMIT:70,UCS2_MULTI_PART_SEGMENT_LIMIT:67,DEFAULT_MAX_SEGMENTS:10,WARNING_THRESHOLD_PERCENTAGE:90},O={DEFAULT_PRIORITY:"normal",MAX_SUBJECT_LENGTH:255,MAX_PUSH_TITLE_LENGTH:100,MAX_PUSH_BODY_LENGTH:500},o={DEFAULT_LEVEL:"info",MAX_LOG_SIZE:1e4},t={DEFAULT_INTERVAL_MS:3e4,DEFAULT_TIMEOUT_MS:5e3,MAX_ACCEPTABLE_LATENCY_MS:2e3},P={RETRY:I,ATTACHMENT:S,CIRCUIT_BREAKER:L,QUEUE:N,RATE_LIMIT:R,TEMPLATE:M,SMS:C,NOTIFICATION:O,LOGGING:o,HEALTH_CHECK:t};export{S as ATTACHMENT_CONFIG,L as CIRCUIT_BREAKER_CONFIG,s as DEFAULT_NOTIFICATION_CATEGORY,t as HEALTH_CHECK_CONFIG,o as LOGGING_CONFIG,O as NOTIFICATION_CONFIG,P as NOTIFICATION_PACKAGE_CONFIG,N as QUEUE_CONFIG,R as RATE_LIMIT_CONFIG,I as RETRY_CONFIG,C as SMS_CONFIG,M as TEMPLATE_CONFIG};//# sourceMappingURL=index.mjs.map
|
|
3
3
|
//# sourceMappingURL=index.mjs.map
|
package/dist/payments/index.cjs
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
'use strict';var types=require('@plyaz/types');// @plyaz package - Built with tsup
|
|
2
|
-
var T=Object.defineProperty;var o=(e,n)=>T(e,"name",{value:n,configurable:true});var l="sha256",O="unknown",D={AdapterInitFailed:"ADAPTER_INIT_FAILED",MissingProviderType:"MISSING_PROVIDER_TYPE",MissingEnvironment:"MISSING_ENVIRONMENT",MissingCredentials:"MISSING_CREDENTIALS",MissingWebhookUrl:"MISSING_WEBHOOK_URL",MissingUnregisterEndpoint:"MISSING_UNREGISTER_ENDPOINT",HmacComputationFailed:"HMAC_COMPUTATION_FAILED",AdapterShutdownError:"ADAPTER_SHUTDOWN_ERROR"},C={InitSuccess:"Adapter initialized successfully",InitFail:"Adapter initialization failed:",ShutdownStart:"Shutdown started",ShutdownComplete:"Shutdown completed",ShutdownError:"Error during shutdown:",NotInitialized:"Adapter is not initialized",HealthFail:"Health check failed: missing config/credentials",HealthError:"quickHealthCheck error:",WebhookNoopRegister:"(noop) register webhook at",WebhookNoopUnregister:"(noop) unregister webhook:",ReadinessError:"Error during readiness check:"},p={RETRYABLE_ERROR_RATIO:.5,USER_FACING_ERROR_RATIO:.3},y=["token","secret","signature"],L={MIN_SCORE:100},d={CRITICAL:"critical",ERROR:"error",WARN:"warn"},M={PROVIDER_RESTRICTION:"ProviderRestriction",GENERIC:"An unexpected error occurred while processing refund"},P={RAW_BODY:"[REDACTED_RAW_BODY]",SENSITIVE:"[REDACTED]"},U={PAYMENTS:"payments",VALIDATION:"validation",FRAUD:"fraud-detector",WEBHOOK_PROCESSOR:"webhook-processor",FRAUD_DETECTED_ERROR:"FraudDetectedError",ROUTER_STRATEGY:"RouterStrategy",PAYMENT_GATEWAY:"PaymentGateway",PAYMENT_PROCESSOR:"PaymentProcessor",CAPTURE_PROCESSOR:"CaptureProcessor",CANCEL_PROCESSOR:"CancelProcessor",STATUS_PROCESSOR:"StatusProcessor"},A={PAYMENTS_PACKAGE_ERROR:"PAYMENTS_PACKAGE_ERROR",VALIDATION_ERROR:"VALIDATION_ERROR",AUTH_ERROR:"AUTH_ERROR",PROVIDER_ERROR:"PROVIDER_ERROR",REFUND_AUTHORIZATION_ERROR:"REFUND_AUTHORIZATION_ERROR",REFUND_PROCESSING_ERROR:"REFUND_PROCESSING_ERROR",WEBHOOK_ERROR:"WEBHOOK_ERROR",FRAUD_DETECTED:"FRAUD_DETECTED"},c={GENERIC_SYSTEM_ERROR:"An unexpected error occurred while processing payment.",USER_FRIENDLY_SYSTEM_ERROR:"A payment system error occurred. Please try again later.",USER_FRIENDLY_ALT:"Payment error. Please try again.",SYSTEM:"An internal payment error occurred. Our team has been notified.",VALIDATION:"Some payment information is invalid. Please review your details.",AUTHENTICATION:"Your session has expired. Please log in again.",AUTHORIZATION:"You are not authorized to perform this payment action.",PROVIDER:"There was an issue communicating with the payment provider.",NETWORK:"Network error. Please try again later.",FRAUD:"Suspicious activity detected. Please contact support.",REFUND:"Refund could not be processed. Please try again later.",WEBHOOK:"Payment notification failed. We are investigating.",PROCESSING:"Payment is currently being processed. Please wait a moment.",COMPLIANCE:"This transaction violates compliance rules. Please contact support.",LIMITS:"The payment exceeds your transaction limit.",CONFIGURATION:"Payment configuration error. Please contact your administrator.",DEFAULT:"An unexpected error occurred while processing your payment.",INVALID_VALUE:"Invalid value provided",PROVIDER_GENERIC:"Provider error occurred",REFUND_NOT_ALLOWED:"Refund not allowed",REFUND_AUTHORIZATION:"Refund authorization failed",REFUND_PROCESSING:"Refund processing failed",STRIPE_GENERIC:"An unexpected error occurred while communicating with Stripe"},G={CONFIG_VERIFICATION:"Verify payment configuration settings.",CREDENTIALS_CHECK:"Check payment provider API credentials.",DEPLOYMENT_REVIEW:"Review recent deployment or configuration changes.",RETRY_OPERATION:"Retry the operation after a short delay."},H={[types.ERROR_SEVERITY.Low]:true,[types.ERROR_SEVERITY.Medium]:false,[types.ERROR_SEVERITY.High]:true,[types.ERROR_SEVERITY.Critical]:true},m={GENERIC:"There was an error processing your payment. Please try again.",RESOLUTION_STEPS:["Check the payment provider status.","Retry the operation if appropriate."],API_RESPONSE_GENERIC:"A processing error occurred."},Y={DEFAULT_MESSAGE:"An error occurred while processing the webhook.",DEFAULT_CATEGORY:types.PAYMENT_ERROR_CATEGORY.Webhook,DEFAULT_CODE:A.WEBHOOK_ERROR,DEFAULT_USER_MESSAGE:"An error occurred while handling the webhook.",DEFAULT_RESOLUTION_STEPS:["Verify webhook configuration and endpoint URL.","Check webhook payload and signature.","Ensure retry logic handles transient errors."]},F={RETRY_LOGIC:"Review retry logic — too many retryable errors.",CHECK_PROVIDER:"Check payment provider connectivity or credentials.",CRITICAL_ALERT:"Trigger alert — critical payment errors detected.",USER_FACING:"Improve user-facing error handling for better UX.",SYSTEM_STABLE:"System stable — continue monitoring."},f={RETRY:"Retry transaction after delay.",NOTIFY_USER:"Notify user and suggest contacting support.",LOG_ONLY:"Log and continue monitoring."},b={NOT_ALLOWED:"Refund not allowed",AUTHORIZATION:"Refund authorization failed",PROCESSING:"Refund processing failed",DEFAULT_API_MESSAGE:"An error occurred during the refund process.",DEFAULT_USER_MESSAGE:"Refund could not be processed. Please try again or contact support.",RESOLUTION_STEPS:["Verify refund eligibility.","Check transaction status and history.","Ensure sufficient balance for refunds.","Retry after resolving any issues."]},B={NOT_ALLOWED:"REFUND_NOT_ALLOWED",AUTHORIZATION:"REFUND_AUTHORIZATION_ERROR",PROCESSING:"REFUND_PROCESSING_ERROR",WEBHOOK_ERROR:"WEBHOOK_ERROR"},h={REQUIRED:"manager",CURRENT:"user"},x={API_MESSAGE:"A compliance error occurred.",USER_MESSAGE:"A compliance or regulatory restriction prevented this action.",KYC_REQUIRED:"KYC verification is required to proceed.",GEO_RESTRICTED:"This transaction is not permitted in your region.",RESOLUTION_STEPS:["Review regulatory and compliance requirements.","Ensure KYC/AML verification is completed.","Verify geographic and provider restrictions."]},K={PROVIDER_ERROR_PREFIX:"Provider {provider} error",STRIPE_GENERIC:"An unexpected error occurred while communicating with Stripe.",WEBHOOK_SANITIZE_FAIL:"Failed to sanitize webhook payload",UNKNOWN_REFUND_TYPE:"Unknown refund error type: {type}",REDACTION_FAIL:"Failed to sanitize object."},V={PROVIDER:"provider",EVENT:"event"},v={API_CONNECTION:"api_connection_error",RATE_LIMIT:"rate_limit_error",INVALID_REQUEST:"invalid_request_error",CARD_ERROR:"card_error",AUTHENTICATION:"authentication_error",CARD_DECLINED:"card_declined"},X={DEFAULT_API_MESSAGE:"An error occurred with the payment provider.",DEFAULT_USER_MESSAGE:"A payment provider error occurred. Please try again later.",RESOLUTION_STEPS:["Check the payment provider status and logs.","Verify network connectivity.","Retry the operation if safe to do so."]},Z={DEFAULT_API_MESSAGE:"A security error occurred while processing the payment.",DEFAULT_USER_MESSAGE:"A security issue was detected with the payment. Please contact support.",RESOLUTION_STEPS:["Verify fraud detection rules and thresholds.","Review flagged transactions.","Ensure user identity and payment method verification."],FRAUD_DETECTED:{CODE:"FRAUD_DETECTED",DEFAULT_COMPONENT:"fraud-detector",USER_MESSAGE:"This transaction appears to be suspicious and has been blocked for your safety.",RESOLUTION_STEPS:["Review fraud detection logs for triggered rules.","Verify customer identity and payment method legitimacy.","If false positive, adjust fraud rule thresholds.","Escalate to manual fraud review team if necessary."],RISK_THRESHOLDS:{HIGH:70,CRITICAL:90}}},k={DEFAULT_MESSAGE:c.VALIDATION,DEFAULT_CODE:A.VALIDATION_ERROR,DEFAULT_CATEGORY:types.PAYMENT_ERROR_CATEGORY.Validation,DEFAULT_USER_MESSAGE:"Invalid payment input. Please check your data.",DEFAULT_RESOLUTION_STEPS:["Review the input values and retry the operation."]};var w=1,J=0,$=10,Q=1e4,j=0,z=1,q=.9,ee={PRIORITY:1,URGENT:0,MAX_LISTENERS:10,HANDLER_TIMEOUT_MS:1e4,SUCCESS_THRESHOLD:1,PARTIAL_SUCCESS_THRESHOLD:.9,EVENT_COUNT:0},oe={EMITTER:"event-emitter",PAYMENT_GATEWAY:"payment-gateway",SUBSCRIPTION_MANAGER:"subscription-manager",PROVIDER_ADAPTER:"provider-adapter"},re={HANDLER_FAILED:"HANDLER_FAILED",HANDLER_CRASHED:"HANDLER_CRASHED",HANDLER_TIMEOUT:"HANDLER_TIMEOUT"},te={HANDLER_FAILED:"Handler execution failed",HANDLER_TIMEOUT:"Handler execution timed out"},ne={DEVELOPMENT:"development",PRODUCTION:"production",TEST:"test"},_=0,s=1,S=2,u=3,Ee={NONE:_,CAPTURING_PHASE:s,AT_TARGET:S,BUBBLING_PHASE:u},ie={PRIORITY:"priority",URGENT:"urgent",CATEGORY:"category",TAGS:"tags",SOURCE:"source"},ae={COMPONENT:"component",ENVIRONMENT:"environment"},Ae={ERROR:"error",INFO:"info",WARNING:"warning",CRITICAL:"critical"},Re=o(()=>[],"EmptyArray"),Te=o(()=>Date.now(),"CurrentTimestamp"),ce={FULFILLED:"fulfilled",REJECTED:"rejected"},_e={NORMALIZATION_FAILED:"Event normalization failed.",MAPPING_MISSING:"No mapping configuration found for provider.",MAPPING_RETRIEVE_FAILED:"Failed to retrieve provider mapping.",BUILD_NORMALIZED_DATA_FAILED:"Failed to build normalized payment data.",BUILD_UNIFIED_EVENT_FAILED:"Failed to build unified event.",EVENT_TYPE_MAPPING_FAILED:"Event type mapping failed.",STATUS_MAPPING_FAILED:"Status mapping failed.",PAYLOAD_EXTRACTION_FAILED:"Payload extraction failed.",requiredFileMissing:o(e=>`Required field "${e}" is missing.`,"requiredFileMissing")};var ue=1e3,Ne=6e4,ge=3,Ie={NO_PROVIDER:"NO_PROVIDER_SELECTED",PROVIDER_FAILURE:"PROVIDER_FAILURE",CIRCUIT_OPEN:"CIRCUIT_OPEN",UNKNOWN_ERROR:"UNKNOWN_ERROR"},le={USER_ACTION:"contact_support",SYSTEM_ACTION:"manual_review"},Oe={LOW:"low",MEDIUM:"medium",HIGH:"high"},De={FALLBACK_USED:"fallback_used"},Ce={AMOUNT:"request.amount",CURRENCY:"request.currency",USER_TYPE:"request.userType",REGION:"request.metadata.geoInfo.region"},N=(E=>(E.ASSIGNMENT="assignment",E.LOGICAL="logical",E.COMPARISON="comparison",E.ARITHMETIC="arithmetic",E.CONDITIONAL="conditional",E.CONCATENATE="concatenate",E))(N||{});var ye="2022-11-15",Le="v1.0.0",de=0,Me=.029,Pe=0,Ue=.01,Ge=100,He={CREDIT_CARD:30,BANK_TRANSFER:500,BOLETO_BANCARIO:200,SEPA_DIRECT_DEBIT:50,IDEAL_BANK:50},me={REDIRECT:10},Ye=1,Fe=100,fe=.9,be=80,Be=2,he=100,xe=1e3,Ke=0,Ve={REDIRECT:"redirect",WAIT:"wait",RETRY:"retry",CONTACT_SUPPORT:"contact_support"},ve={WEBHOOK_PENDING:"webhook_pending",MANUAL_REVIEW:"manual_review",AUTO_RETRY:"auto_retry"},Xe={PAYMENT_INTENT_CREATED:"payment_intent.created",PAYMENT_INTENT_PROCESSING:"payment_intent.processing",PAYMENT_INTENT_REQUIRES_ACTION:"payment_intent.requires_action",PAYMENT_INTENT_SUCCEEDED:"payment_intent.succeeded",PAYMENT_INTENT_FAILED:"payment_intent.payment_failed",PAYMENT_INTENT_CANCELED:"payment_intent.canceled",PAYMENT_INTENT_EXPIRED:"payment_intent.expired",PAYMENT_INTENT_AUTHORIZED:"payment_intent.authorized",PAYMENT_INTENT_CAPTURED:"payment_intent.captured",PAYMENT_INTENT_HELD:"payment_intent.held",PAYMENT_INTENT_RELEASED:"payment_intent.released",CHARGE_REFUND_CREATED:"charge.refund.created",REFUND_UPDATED:"refund.updated",CHARGE_REFUND_SUCCEEDED:"charge.refund.succeeded",CHARGE_REFUND_FAILED:"charge.refund.failed",CHARGE_REFUND_CANCELED:"charge.refund.canceled",CHARGE_DISPUTE_CREATED:"charge.dispute.created",CHARGE_DISPUTE_UPDATED:"charge.dispute.updated",CHARGE_DISPUTE_CLOSED:"charge.dispute.closed",CHARGEBACK_RECEIVED:"chargeback.received",CHARGEBACK_RESPONDED:"chargeback.responded",CHARGE_DISPUTE_WON:"charge.dispute.won",CHARGE_DISPUTE_LOST:"charge.dispute.lost",PAYMENT_METHOD_ATTACHED:"payment_method.attached",PAYMENT_METHOD_UPDATED:"payment_method.updated",PAYMENT_METHOD_DETACHED:"payment_method.detached",PAYMENT_METHOD_EXPIRED:"payment_method.expired",SUBSCRIPTION_CREATED:"customer.subscription.created",SUBSCRIPTION_UPDATED:"customer.subscription.updated",SUBSCRIPTION_DELETED:"customer.subscription.deleted",INVOICE_PAYMENT_SUCCEEDED:"invoice.payment_succeeded",INVOICE_PAYMENT_FAILED:"invoice.payment_failed"},Ze={MINIMUM_MINUTES:1,MAXIMUM_MINUTES:60,TYPICAL_MINUTES:10,FACTORS:["default estimate"]},ke={MINIMUM_DAYS:1,MAXIMUM_DAYS:7,TYPICAL_DAYS:3,AFFECTED_BY_HOLIDAYS:true},We={SUCCEEDED:"succeeded",PROCESSING:"processing",REQUIRES_ACTION:"requires_action",REQUIRES_CONFIRMATION:"requires_confirmation",REQUIRES_PAYMENT_METHOD:"requires_payment_method",CANCELED:"canceled",FAILED:"failed",DECLINED:"declined",EXPIRED:"expired",AUTHORIZED:"authorized",CAPTURED:"captured",HELD:"held",REFUNDED:"refunded",PARTIALLY_REFUNDED:"partially_refunded",DISPUTED:"disputed",CHARGEBACK:"chargeback",CHARGEBACK_RESOLVED:"chargeback_resolved"},we={TRANSACTION_ID:"data.object.id",AMOUNT:"data.object.amount",CURRENCY:"data.object.currency",STATUS:"data.object.status",PAYMENT_METHOD:"data.object.payment_method",METADATA:"data.object.metadata"},Je={INITIALIZE:"initialize",CREATE_PAYMENT:"createPayment",CAPTURE_PAYMENT:"capturePayment",CANCEL_PAYMENT:"cancelPayment",PROCESS_REFUND:"processRefund",GET_REFUND_STATUS:"getRefundStatus",GET_PAYMENT_STATUS:"getPaymentStatus",PROCESS_WEBHOOK:"processWebhook",VERIFY_WEBHOOK_SIGNATURE:"verifyWebhookSignature",CALCULATE_FEES:"calculateFees",GET_FEE_STRUCTURE:"getFeeStructure",GET_TRANSACTION:"getTransaction",WEBHOOK_PROCESS:"webhookProcess"},$e={MISSING_API_KEY:"Missing Stripe API key",UNKNOWN_EVENT:"unknown",MISSING_EVENT:"missing"};var t={REGISTRY:"ProviderRegistry",FACTORY:"ProviderFactory",FALLBACK:"FallbackHandler",AB_TESTING:"ABTesting"},eo={REGISTRY_GET_FACTORY:`${t.REGISTRY}.getFactory`,FACTORY_CREATE_ADAPTER:`${t.FACTORY}.createAdapter`,FACTORY_GET_CONFIG:`${t.FALLBACK}.getProviderConfig`,FACTORY_GET_OPTIMAL_ADAPTER:`${t.AB_TESTING}.getOptimalAdapter`},oo={providerAlreadyRegistered:o(e=>`[${t.REGISTRY}] Provider '${e}' is already registered. Overwriting.`,"providerAlreadyRegistered"),providerRegistered:o(e=>`[${t.FACTORY}] Registered provider: ${e}`,"providerRegistered"),providerNotRegistered:o(e=>`[${t.REGISTRY}] Provider '${e}' is not registered.`,"providerNotRegistered"),adapterInitFailed:o(e=>`[${t.FACTORY}] Failed to initialize adapter for ${e}`,"adapterInitFailed"),optimalAdapterFailed:o(e=>`[${t.FACTORY}] Failed to get optimal adapter for: ${e}`,"optimalAdapterFailed")};var R={USD:"USD",EUR:"EUR",GBP:"GBP",JPY:"JPY",CHF:"CHF",CAD:"CAD",AUD:"AUD",CNY:"CNY",INR:"INR",KRW:"KRW",SGD:"SGD",HKD:"HKD",TWD:"TWD",THB:"THB",IDR:"IDR",MYR:"MYR",PHP:"PHP",VND:"VND",BDT:"BDT",PKR:"PKR",LKR:"LKR",SEK:"SEK",NOK:"NOK",DKK:"DKK",PLN:"PLN",CZK:"CZK",HUF:"HUF",RON:"RON",BGN:"BGN",HRK:"HRK",RSD:"RSD",ISK:"ISK",BRL:"BRL",MXN:"MXN",ARS:"ARS",CLP:"CLP",COP:"COP",PEN:"PEN",UYU:"UYU",VES:"VES",BOB:"BOB",PYG:"PYG",CRC:"CRC",GTQ:"GTQ",HNL:"HNL",NIO:"NIO",PAB:"PAB",DOP:"DOP",JMD:"JMD",TTD:"TTD",BBD:"BBD",AED:"AED",SAR:"SAR",QAR:"QAR",KWD:"KWD",BHD:"BHD",OMR:"OMR",JOD:"JOD",ILS:"ILS",TRY:"TRY",IQD:"IQD",IRR:"IRR",LBP:"LBP",SYP:"SYP",ZAR:"ZAR",NGN:"NGN",EGP:"EGP",KES:"KES",GHS:"GHS",MAD:"MAD",TND:"TND",DZD:"DZD",ETB:"ETB",TZS:"TZS",UGX:"UGX",ZMW:"ZMW",BWP:"BWP",MUR:"MUR",NZD:"NZD",FJD:"FJD",PGK:"PGK",RUB:"RUB",UAH:"UAH",BYN:"BYN",KZT:"KZT",UZS:"UZS",AZN:"AZN",GEL:"GEL",AMD:"AMD",BTC:"BTC",ETH:"ETH",USDT:"USDT",USDC:"USDC"};var Lo=Object.values(R),Mo={AMOUNT:"Amount must be a positive number with valid currency format.",CORE_FIELDS:"Missing required core fields: amount, paymentMethod, userId, userType, productId, productType.",CURRENCY:"Unsupported or missing currency code.",METADATA:"Invalid metadata structure or missing required metadata fields.",RISK_ASSESSMENT:"Invalid or inconsistent risk assessment fields.",SCHEDULING:"Invalid scheduling configuration.",REFUND_TRANSACTION_ID:"Transaction ID is required.",REFUND_PROVIDER:"Provider is required.",REFUND_AMOUNT:"Refund amount must be positive."},Po={AMOUNT:"AmountValidator",CORE_FIELDS:"CoreFieldValidator",CURRENCY:"CurrencyValidator",METADATA:"MetadataValidator",RISK_ASSESSMENT:"RiskAssessmentValidator",SCHEDULING:"SchedulingValidator"},Uo=["amount","paymentMethod","userId","userType","productId","productType"],Go=["monthly","quarterly","yearly"],Ho=["low","medium","high"],mo=["daily","weekly","monthly","quarterly","yearly"],Yo=0,Fo=3;var r={core:"RouterStrategy",rules:"RuleEvaluator",config:"RoutingConfig",factory:"AdapterFactory",cache:"AdapterCache",provider:"ProviderSelector",region:"RegionResolver",compliance:"ComplianceChecker",abtest:"ABTestingModule",default:"DefaultProviderSelector"},bo={invalidProvider:o(()=>`[${r.core}] No valid provider found during routing.`,"invalidProvider"),providerSelected:o(e=>`[${r.provider}] Selected provider: ${e}`,"providerSelected"),fallbackToDefault:o(()=>`[${r.default}] Falling back to default provider.`,"fallbackToDefault"),adapterCached:o(e=>`[${r.cache}] Using cached adapter for ${e}`,"adapterCached"),adapterCreated:o(e=>`[${r.factory}] Created new adapter for ${e}`,"adapterCreated"),adapterCreationFailed:o(e=>`[${r.factory}] Failed to create adapter: ${String(e)}`,"adapterCreationFailed"),providerSelectionFailed:o(e=>`[${r.provider}] Provider selection failed: ${String(e)}`,"providerSelectionFailed"),invalidRuleExpression:o((e,n)=>`[${r.rules}] Custom rule '${e}' evaluation failed: ${String(n)}`,"invalidRuleExpression"),ruleFailed:o((e,n)=>`[${r.rules}] Rule '${e}' evaluation failed: ${String(n)}`,"ruleFailed"),invalidRoutingConfig:o(e=>`[${r.config}] Invalid routing configuration detected: ${String(e)}`,"invalidRoutingConfig"),missingRegionConfig:o(e=>`[${r.region}] Missing region configuration for '${e??"unknown"}'.`,"missingRegionConfig"),complianceCheckFailed:o((e,n)=>`[${r.compliance}] Compliance check failed for region '${e??"unknown"}': ${String(n)}`,"complianceCheckFailed")};var xo={validationFailedPrefix:"refund-validation-failed"},Ko={invalidInput:"Invalid provider or transaction ID",unknownError:"Unknown reconciliation error",descriptionFailed:"Reconciliation failed"},Vo={validationErrorPattern:/^\[(.*?)\]\s(.*)$/},vo={cancelProcessor:"Invalid input for cancellation",captureProcessor:"Invalid input for capture",statusProcessor:"Invalid input for payment status"};exports.ADAPTER_ERROR_CODE=D;exports.ADAPTER_LOG_MESSAGE=C;exports.AMOUNT_DECIMALS=Be;exports.AMOUNT_DIVISOR=he;exports.COMPLIANCE_ERROR_MESSAGES=x;exports.COMPONENTS=U;exports.CORE_FIELDS=Uo;exports.CURRENCY_CODE_LENGTH=Fo;exports.CUSTOM_RULE_FIELD=Ce;exports.CUSTOM_RULE_OPERATER=N;exports.CurrentTimestamp=Te;exports.DEFAULT_CIRCUIT_BREAKER_FAILURE_THRESHOLD=ge;exports.DEFAULT_CROSS_BORDER_RATE=Ue;exports.DEFAULT_ENVIRONMENT=O;exports.DEFAULT_EVENT_COUNT=j;exports.DEFAULT_HANDLER_TIMEOUT_MS=Q;exports.DEFAULT_HMAC_ALGORITHM=l;exports.DEFAULT_MAX_LISTENERS=$;exports.DEFAULT_PARTIAL_SUCCESS_THRESHOLD=q;exports.DEFAULT_PAYEMNT_PRIORITY=w;exports.DEFAULT_PLATFORM_RATE=Pe;exports.DEFAULT_PRIORITY=Ge;exports.DEFAULT_PROCESSING_RATE=Me;exports.DEFAULT_PROCESSING_TIME=Ze;exports.DEFAULT_REFUND_LEVELS=h;exports.DEFAULT_RETRY_DELAY_MS=ue;exports.DEFAULT_SETTLEMENT_TIME=ke;exports.DEFAULT_SUCCESS_THRESHOLD=z;exports.DEFAULT_URGENT=J;exports.EVENT_COMPONENT=oe;exports.EVENT_DEFAULTS=ee;exports.EVENT_ENVIRONMENT=ne;exports.EVENT_ERROR_CODE=re;exports.EVENT_ERROR_MESSAGE=te;exports.EVENT_META_KEY=ie;exports.EVENT_NORMALIZER_MESSAGES=_e;exports.EVENT_PHASE=Ee;exports.EVENT_RESULT_STATUS=Ae;exports.EVENT_SOURCE_FIELD=ae;exports.EmptyArray=Re;exports.FACTORY_MESSAGES=K;exports.FALLBACK_NEXT_STEPS=le;exports.FALLBACK_REASON=Ie;exports.FIXED_FEES=He;exports.LOG_LEVELS=d;exports.MAX_CIRCUIT_OPEN_MS=Ne;exports.MIN_POSITIVE_AMOUNT=Yo;exports.NEXT_STEP_EXPECTED_UPDATE_IN=me;exports.NEXT_STEP_SYSTEM_ACTION=ve;exports.NEXT_STEP_USER_ACTION=Ve;exports.PAYLOAD_KEYS=V;exports.PAYMENT_ALERT_SEVERITY=H;exports.PAYMENT_ERROR_CODES=A;exports.PAYMENT_ERROR_MESSAGES=c;exports.PAYMENT_OPERATION=Je;exports.PAYMENT_PROCESSOR_PATTERN=Vo;exports.PAYMENT_RESOLUTION_STEPS=G;exports.PHASE_AT_TARGET=S;exports.PHASE_BUBBLING=u;exports.PHASE_CAPTURING=s;exports.PHASE_NONE=_;exports.PROCESSING_ERROR_MESSAGES=m;exports.PROCESSOR_MESSAGES=vo;exports.PROVIDER_CONTEXT=t;exports.PROVIDER_ENDPOINTS=eo;exports.PROVIDER_ERROR_MESSAGES=X;exports.PROVIDER_MESSAGES=oo;exports.RECOMMENDATION_MESSAGES=F;exports.RECONCILIATION_MESSAGES=Ko;exports.RECOVERY_STEPS=f;exports.REDACTED=P;exports.REFUND_DEFAULT_REASONS=M;exports.REFUND_ERROR_CODES=B;exports.REFUND_ERROR_MESSAGES=b;exports.REFUND_MESSAGES=xo;exports.RISK_LEVEL=Oe;exports.RISK_SCORE=L;exports.ROUTER_CONTEXT=r;exports.SECURITY_ERROR_MESSAGES=Z;exports.SECURITY_FLAGS=De;exports.SENSITIVE_KEYS=y;exports.SETTLED_PROMISE_STATUS=ce;exports.STRIPE_API_VERSION=ye;exports.STRIPE_CONFIDENCE_HIGH=Ye;exports.STRIPE_CONFIDENCE_MEDIUM=fe;exports.STRIPE_DATA_PATHS=we;exports.STRIPE_ERROR_TYPES=v;exports.STRIPE_EVENT_TYPE=Xe;exports.STRIPE_MAPPING_VERSION=Le;exports.STRIPE_MESSAGES=$e;exports.STRIPE_PAYMENT_INTENT_STATUS=We;exports.STRIPE_PRIORITY_HIGH=Fe;exports.STRIPE_PRIORITY_MEDIUM=be;exports.SUPPORTED_CURRENCIES=Lo;exports.THRESHOLDS=p;exports.TIMESTAMP_FALLBACK=Ke;exports.UNIX_TIMESTAMP_MULTIPLIER=xe;exports.VALIDATION_CONSTANTS=k;exports.VALIDATION_MESSAGES=Mo;exports.VALIDATOR_NAMES=Po;exports.VALID_BILLING_CYCLES=Go;exports.VALID_RECURRENCE_FREQUENCIES=mo;exports.VALID_RISK_LEVELS=Ho;exports.WEBHOOK_CONSTANTS=Y;exports.ZERO_AMOUNT=de;exports.routerMessages=bo;//# sourceMappingURL=index.cjs.map
|
|
2
|
+
var c=Object.defineProperty;var o=(e,t)=>c(e,"name",{value:t,configurable:true});var l="sha256",O="unknown",C={AdapterInitFailed:"ADAPTER_INIT_FAILED",MissingProviderType:"MISSING_PROVIDER_TYPE",MissingEnvironment:"MISSING_ENVIRONMENT",MissingCredentials:"MISSING_CREDENTIALS",MissingWebhookUrl:"MISSING_WEBHOOK_URL",MissingUnregisterEndpoint:"MISSING_UNREGISTER_ENDPOINT",HmacComputationFailed:"HMAC_COMPUTATION_FAILED",AdapterShutdownError:"ADAPTER_SHUTDOWN_ERROR"},D={InitSuccess:"Adapter initialized successfully",InitFail:"Adapter initialization failed:",ShutdownStart:"Shutdown started",ShutdownComplete:"Shutdown completed",ShutdownError:"Error during shutdown:",NotInitialized:"Adapter is not initialized",HealthFail:"Health check failed: missing config/credentials",HealthError:"quickHealthCheck error:",WebhookNoopRegister:"(noop) register webhook at",WebhookNoopUnregister:"(noop) unregister webhook:",ReadinessError:"Error during readiness check:"},p={RETRYABLE_ERROR_RATIO:.5,USER_FACING_ERROR_RATIO:.3},y=["token","secret","signature"],d={MIN_SCORE:100},L={CRITICAL:"critical",ERROR:"error",WARN:"warn"},M={PROVIDER_RESTRICTION:"ProviderRestriction",GENERIC:"An unexpected error occurred while processing refund"},U={RAW_BODY:"[REDACTED_RAW_BODY]",SENSITIVE:"[REDACTED]"},P={PAYMENTS:"payments",VALIDATION:"validation",FRAUD:"fraud-detector",WEBHOOK_PROCESSOR:"webhook-processor",FRAUD_DETECTED_ERROR:"FraudDetectedError",ROUTER_STRATEGY:"RouterStrategy",PAYMENT_GATEWAY:"PaymentGateway",PAYMENT_PROCESSOR:"PaymentProcessor",CAPTURE_PROCESSOR:"CaptureProcessor",CANCEL_PROCESSOR:"CancelProcessor",STATUS_PROCESSOR:"StatusProcessor"},A={PAYMENTS_PACKAGE_ERROR:"PAYMENTS_PACKAGE_ERROR",VALIDATION_ERROR:"VALIDATION_ERROR",AUTH_ERROR:"AUTH_ERROR",PROVIDER_ERROR:"PROVIDER_ERROR",REFUND_AUTHORIZATION_ERROR:"REFUND_AUTHORIZATION_ERROR",REFUND_PROCESSING_ERROR:"REFUND_PROCESSING_ERROR",WEBHOOK_ERROR:"WEBHOOK_ERROR",FRAUD_DETECTED:"FRAUD_DETECTED"},T={GENERIC_SYSTEM_ERROR:"An unexpected error occurred while processing payment.",USER_FRIENDLY_SYSTEM_ERROR:"A payment system error occurred. Please try again later.",USER_FRIENDLY_ALT:"Payment error. Please try again.",SYSTEM:"An internal payment error occurred. Our team has been notified.",VALIDATION:"Some payment information is invalid. Please review your details.",AUTHENTICATION:"Your session has expired. Please log in again.",AUTHORIZATION:"You are not authorized to perform this payment action.",PROVIDER:"There was an issue communicating with the payment provider.",NETWORK:"Network error. Please try again later.",FRAUD:"Suspicious activity detected. Please contact support.",REFUND:"Refund could not be processed. Please try again later.",WEBHOOK:"Payment notification failed. We are investigating.",PROCESSING:"Payment is currently being processed. Please wait a moment.",COMPLIANCE:"This transaction violates compliance rules. Please contact support.",LIMITS:"The payment exceeds your transaction limit.",CONFIGURATION:"Payment configuration error. Please contact your administrator.",DEFAULT:"An unexpected error occurred while processing your payment.",INVALID_VALUE:"Invalid value provided",PROVIDER_GENERIC:"Provider error occurred",REFUND_NOT_ALLOWED:"Refund not allowed",REFUND_AUTHORIZATION:"Refund authorization failed",REFUND_PROCESSING:"Refund processing failed",STRIPE_GENERIC:"An unexpected error occurred while communicating with Stripe"},G={CONFIG_VERIFICATION:"Verify payment configuration settings.",CREDENTIALS_CHECK:"Check payment provider API credentials.",DEPLOYMENT_REVIEW:"Review recent deployment or configuration changes.",RETRY_OPERATION:"Retry the operation after a short delay."},m={[types.ERROR_SEVERITY.Low]:true,[types.ERROR_SEVERITY.Medium]:false,[types.ERROR_SEVERITY.High]:true,[types.ERROR_SEVERITY.Critical]:true},H={GENERIC:"There was an error processing your payment. Please try again.",RESOLUTION_STEPS:["Check the payment provider status.","Retry the operation if appropriate."],API_RESPONSE_GENERIC:"A processing error occurred."},F={DEFAULT_MESSAGE:"An error occurred while processing the webhook.",DEFAULT_CATEGORY:types.PAYMENT_ERROR_CATEGORY.Webhook,DEFAULT_CODE:A.WEBHOOK_ERROR,DEFAULT_USER_MESSAGE:"An error occurred while handling the webhook.",DEFAULT_RESOLUTION_STEPS:["Verify webhook configuration and endpoint URL.","Check webhook payload and signature.","Ensure retry logic handles transient errors."]},Y={RETRY_LOGIC:"Review retry logic — too many retryable errors.",CHECK_PROVIDER:"Check payment provider connectivity or credentials.",CRITICAL_ALERT:"Trigger alert — critical payment errors detected.",USER_FACING:"Improve user-facing error handling for better UX.",SYSTEM_STABLE:"System stable — continue monitoring."},f={RETRY:"Retry transaction after delay.",NOTIFY_USER:"Notify user and suggest contacting support.",LOG_ONLY:"Log and continue monitoring."},b={NOT_ALLOWED:"Refund not allowed",AUTHORIZATION:"Refund authorization failed",PROCESSING:"Refund processing failed",DEFAULT_API_MESSAGE:"An error occurred during the refund process.",DEFAULT_USER_MESSAGE:"Refund could not be processed. Please try again or contact support.",RESOLUTION_STEPS:["Verify refund eligibility.","Check transaction status and history.","Ensure sufficient balance for refunds.","Retry after resolving any issues."]},h={NOT_ALLOWED:"REFUND_NOT_ALLOWED",AUTHORIZATION:"REFUND_AUTHORIZATION_ERROR",PROCESSING:"REFUND_PROCESSING_ERROR",WEBHOOK_ERROR:"WEBHOOK_ERROR"},B={REQUIRED:"manager",CURRENT:"user"},x={API_MESSAGE:"A compliance error occurred.",USER_MESSAGE:"A compliance or regulatory restriction prevented this action.",KYC_REQUIRED:"KYC verification is required to proceed.",GEO_RESTRICTED:"This transaction is not permitted in your region.",RESOLUTION_STEPS:["Review regulatory and compliance requirements.","Ensure KYC/AML verification is completed.","Verify geographic and provider restrictions."]},K={PROVIDER_ERROR_PREFIX:"Provider {provider} error",STRIPE_GENERIC:"An unexpected error occurred while communicating with Stripe.",WEBHOOK_SANITIZE_FAIL:"Failed to sanitize webhook payload",UNKNOWN_REFUND_TYPE:"Unknown refund error type: {type}",REDACTION_FAIL:"Failed to sanitize object."},V={PROVIDER:"provider",EVENT:"event"},v={API_CONNECTION:"api_connection_error",RATE_LIMIT:"rate_limit_error",INVALID_REQUEST:"invalid_request_error",CARD_ERROR:"card_error",AUTHENTICATION:"authentication_error",CARD_DECLINED:"card_declined"},X={DEFAULT_API_MESSAGE:"An error occurred with the payment provider.",DEFAULT_USER_MESSAGE:"A payment provider error occurred. Please try again later.",RESOLUTION_STEPS:["Check the payment provider status and logs.","Verify network connectivity.","Retry the operation if safe to do so."]},k={DEFAULT_API_MESSAGE:"A security error occurred while processing the payment.",DEFAULT_USER_MESSAGE:"A security issue was detected with the payment. Please contact support.",RESOLUTION_STEPS:["Verify fraud detection rules and thresholds.","Review flagged transactions.","Ensure user identity and payment method verification."],FRAUD_DETECTED:{CODE:"FRAUD_DETECTED",DEFAULT_COMPONENT:"fraud-detector",USER_MESSAGE:"This transaction appears to be suspicious and has been blocked for your safety.",RESOLUTION_STEPS:["Review fraud detection logs for triggered rules.","Verify customer identity and payment method legitimacy.","If false positive, adjust fraud rule thresholds.","Escalate to manual fraud review team if necessary."],RISK_THRESHOLDS:{HIGH:70,CRITICAL:90}}},Z={DEFAULT_MESSAGE:T.VALIDATION,DEFAULT_CODE:A.VALIDATION_ERROR,DEFAULT_CATEGORY:types.PAYMENT_ERROR_CATEGORY.Validation,DEFAULT_USER_MESSAGE:"Invalid payment input. Please check your data.",DEFAULT_RESOLUTION_STEPS:["Review the input values and retry the operation."]};var w=1,J=0,$=10,j=1e4,z=0,q=1,Q=.9,ee={PRIORITY:1,URGENT:0,MAX_LISTENERS:10,HANDLER_TIMEOUT_MS:1e4,SUCCESS_THRESHOLD:1,PARTIAL_SUCCESS_THRESHOLD:.9,EVENT_COUNT:0},oe={EMITTER:"event-emitter",PAYMENT_GATEWAY:"payment-gateway",SUBSCRIPTION_MANAGER:"subscription-manager",PROVIDER_ADAPTER:"provider-adapter"},re={HANDLER_FAILED:"HANDLER_FAILED",HANDLER_CRASHED:"HANDLER_CRASHED",HANDLER_TIMEOUT:"HANDLER_TIMEOUT"},ne={HANDLER_FAILED:"Handler execution failed",HANDLER_TIMEOUT:"Handler execution timed out"},te={DEVELOPMENT:"development",PRODUCTION:"production",TEST:"test"},_=0,s=1,u=2,S=3,Ee={NONE:_,CAPTURING_PHASE:s,AT_TARGET:u,BUBBLING_PHASE:S},ie={PRIORITY:"priority",URGENT:"urgent",CATEGORY:"category",TAGS:"tags",SOURCE:"source"},ae={COMPONENT:"component",ENVIRONMENT:"environment"},Ae={ERROR:"error",INFO:"info",WARNING:"warning",CRITICAL:"critical"},Re=o(()=>[],"EmptyArray"),ce=o(()=>Date.now(),"CurrentTimestamp"),Te={FULFILLED:"fulfilled",REJECTED:"rejected"},_e={NORMALIZATION_FAILED:"Event normalization failed.",MAPPING_MISSING:"No mapping configuration found for provider.",MAPPING_RETRIEVE_FAILED:"Failed to retrieve provider mapping.",BUILD_NORMALIZED_DATA_FAILED:"Failed to build normalized payment data.",BUILD_UNIFIED_EVENT_FAILED:"Failed to build unified event.",EVENT_TYPE_MAPPING_FAILED:"Event type mapping failed.",STATUS_MAPPING_FAILED:"Status mapping failed.",PAYLOAD_EXTRACTION_FAILED:"Payload extraction failed.",requiredFileMissing:o(e=>`Required field "${e}" is missing.`,"requiredFileMissing")};var Se=1e3,Ne=6e4,ge=3,Ie={NO_PROVIDER:"NO_PROVIDER_SELECTED",PROVIDER_FAILURE:"PROVIDER_FAILURE",CIRCUIT_OPEN:"CIRCUIT_OPEN",UNKNOWN_ERROR:"UNKNOWN_ERROR"},le={USER_ACTION:"contact_support",SYSTEM_ACTION:"manual_review"},Oe={LOW:"low",MEDIUM:"medium",HIGH:"high"},Ce={FALLBACK_USED:"fallback_used"},De={AMOUNT:"request.amount",CURRENCY:"request.currency",USER_TYPE:"request.userType",REGION:"request.metadata.geoInfo.region"},N=(E=>(E.ASSIGNMENT="assignment",E.LOGICAL="logical",E.COMPARISON="comparison",E.ARITHMETIC="arithmetic",E.CONDITIONAL="conditional",E.CONCATENATE="concatenate",E))(N||{});var ye="2022-11-15",de="v1.0.0",Le=0,Me=.029,Ue=0,Pe=.01,Ge=100,me={CREDIT_CARD:30,BANK_TRANSFER:500,BOLETO_BANCARIO:200,SEPA_DIRECT_DEBIT:50,IDEAL_BANK:50},He={REDIRECT:10},Fe=1,Ye=100,fe=.9,be=80,he=2,Be=100,xe=1e3,Ke=0,Ve={REDIRECT:"redirect",WAIT:"wait",RETRY:"retry",CONTACT_SUPPORT:"contact_support"},ve={WEBHOOK_PENDING:"webhook_pending",MANUAL_REVIEW:"manual_review",AUTO_RETRY:"auto_retry"},Xe={PAYMENT_INTENT_CREATED:"payment_intent.created",PAYMENT_INTENT_PROCESSING:"payment_intent.processing",PAYMENT_INTENT_REQUIRES_ACTION:"payment_intent.requires_action",PAYMENT_INTENT_SUCCEEDED:"payment_intent.succeeded",PAYMENT_INTENT_FAILED:"payment_intent.payment_failed",PAYMENT_INTENT_CANCELED:"payment_intent.canceled",PAYMENT_INTENT_EXPIRED:"payment_intent.expired",PAYMENT_INTENT_AUTHORIZED:"payment_intent.authorized",PAYMENT_INTENT_CAPTURED:"payment_intent.captured",PAYMENT_INTENT_HELD:"payment_intent.held",PAYMENT_INTENT_RELEASED:"payment_intent.released",CHARGE_REFUND_CREATED:"charge.refund.created",REFUND_UPDATED:"refund.updated",CHARGE_REFUND_SUCCEEDED:"charge.refund.succeeded",CHARGE_REFUND_FAILED:"charge.refund.failed",CHARGE_REFUND_CANCELED:"charge.refund.canceled",CHARGE_DISPUTE_CREATED:"charge.dispute.created",CHARGE_DISPUTE_UPDATED:"charge.dispute.updated",CHARGE_DISPUTE_CLOSED:"charge.dispute.closed",CHARGEBACK_RECEIVED:"chargeback.received",CHARGEBACK_RESPONDED:"chargeback.responded",CHARGE_DISPUTE_WON:"charge.dispute.won",CHARGE_DISPUTE_LOST:"charge.dispute.lost",PAYMENT_METHOD_ATTACHED:"payment_method.attached",PAYMENT_METHOD_UPDATED:"payment_method.updated",PAYMENT_METHOD_DETACHED:"payment_method.detached",PAYMENT_METHOD_EXPIRED:"payment_method.expired",SUBSCRIPTION_CREATED:"customer.subscription.created",SUBSCRIPTION_UPDATED:"customer.subscription.updated",SUBSCRIPTION_DELETED:"customer.subscription.deleted",INVOICE_PAYMENT_SUCCEEDED:"invoice.payment_succeeded",INVOICE_PAYMENT_FAILED:"invoice.payment_failed"},ke={MINIMUM_MINUTES:1,MAXIMUM_MINUTES:60,TYPICAL_MINUTES:10,FACTORS:["default estimate"]},Ze={MINIMUM_DAYS:1,MAXIMUM_DAYS:7,TYPICAL_DAYS:3,AFFECTED_BY_HOLIDAYS:true},We={SUCCEEDED:"succeeded",PROCESSING:"processing",REQUIRES_ACTION:"requires_action",REQUIRES_CONFIRMATION:"requires_confirmation",REQUIRES_PAYMENT_METHOD:"requires_payment_method",CANCELED:"canceled",FAILED:"failed",DECLINED:"declined",EXPIRED:"expired",AUTHORIZED:"authorized",CAPTURED:"captured",HELD:"held",REFUNDED:"refunded",PARTIALLY_REFUNDED:"partially_refunded",DISPUTED:"disputed",CHARGEBACK:"chargeback",CHARGEBACK_RESOLVED:"chargeback_resolved"},we={TRANSACTION_ID:"data.object.id",AMOUNT:"data.object.amount",CURRENCY:"data.object.currency",STATUS:"data.object.status",PAYMENT_METHOD:"data.object.payment_method",METADATA:"data.object.metadata"},Je={INITIALIZE:"initialize",CREATE_PAYMENT:"createPayment",CAPTURE_PAYMENT:"capturePayment",CANCEL_PAYMENT:"cancelPayment",PROCESS_REFUND:"processRefund",GET_REFUND_STATUS:"getRefundStatus",GET_PAYMENT_STATUS:"getPaymentStatus",PROCESS_WEBHOOK:"processWebhook",VERIFY_WEBHOOK_SIGNATURE:"verifyWebhookSignature",CALCULATE_FEES:"calculateFees",GET_FEE_STRUCTURE:"getFeeStructure",GET_TRANSACTION:"getTransaction",WEBHOOK_PROCESS:"webhookProcess"},$e={MISSING_API_KEY:"Missing Stripe API key",UNKNOWN_EVENT:"unknown",MISSING_EVENT:"missing"};var n={REGISTRY:"ProviderRegistry",FACTORY:"ProviderFactory",FALLBACK:"FallbackHandler",AB_TESTING:"ABTesting"},Qe={REGISTRY_GET_FACTORY:`${n.REGISTRY}.getFactory`,FACTORY_CREATE_ADAPTER:`${n.FACTORY}.createAdapter`,FACTORY_GET_CONFIG:`${n.FALLBACK}.getProviderConfig`,FACTORY_GET_OPTIMAL_ADAPTER:`${n.AB_TESTING}.getOptimalAdapter`},eo={providerAlreadyRegistered:o(e=>`[${n.REGISTRY}] Provider '${e}' is already registered. Overwriting.`,"providerAlreadyRegistered"),providerRegistered:o(e=>`[${n.FACTORY}] Registered provider: ${e}`,"providerRegistered"),providerNotRegistered:o(e=>`[${n.REGISTRY}] Provider '${e}' is not registered.`,"providerNotRegistered"),adapterInitFailed:o(e=>`[${n.FACTORY}] Failed to initialize adapter for ${e}`,"adapterInitFailed"),optimalAdapterFailed:o(e=>`[${n.FACTORY}] Failed to get optimal adapter for: ${e}`,"optimalAdapterFailed")};var Lo=Object.values(types.CURRENCY_CODES),Mo={AMOUNT:"Amount must be a positive number with valid currency format.",CORE_FIELDS:"Missing required core fields: amount, paymentMethod, userId, userType, productId, productType.",CURRENCY:"Unsupported or missing currency code.",METADATA:"Invalid metadata structure or missing required metadata fields.",RISK_ASSESSMENT:"Invalid or inconsistent risk assessment fields.",SCHEDULING:"Invalid scheduling configuration.",REFUND_TRANSACTION_ID:"Transaction ID is required.",REFUND_PROVIDER:"Provider is required.",REFUND_AMOUNT:"Refund amount must be positive."},Uo={AMOUNT:"AmountValidator",CORE_FIELDS:"CoreFieldValidator",CURRENCY:"CurrencyValidator",METADATA:"MetadataValidator",RISK_ASSESSMENT:"RiskAssessmentValidator",SCHEDULING:"SchedulingValidator"},Po=["amount","paymentMethod","userId","userType","productId","productType"],Go=["monthly","quarterly","yearly"],mo=["low","medium","high"],Ho=["daily","weekly","monthly","quarterly","yearly"],Fo=0,Yo=3;var r={core:"RouterStrategy",rules:"RuleEvaluator",config:"RoutingConfig",factory:"AdapterFactory",cache:"AdapterCache",provider:"ProviderSelector",region:"RegionResolver",compliance:"ComplianceChecker",abtest:"ABTestingModule",default:"DefaultProviderSelector"},bo={invalidProvider:o(()=>`[${r.core}] No valid provider found during routing.`,"invalidProvider"),providerSelected:o(e=>`[${r.provider}] Selected provider: ${e}`,"providerSelected"),fallbackToDefault:o(()=>`[${r.default}] Falling back to default provider.`,"fallbackToDefault"),adapterCached:o(e=>`[${r.cache}] Using cached adapter for ${e}`,"adapterCached"),adapterCreated:o(e=>`[${r.factory}] Created new adapter for ${e}`,"adapterCreated"),adapterCreationFailed:o(e=>`[${r.factory}] Failed to create adapter: ${String(e)}`,"adapterCreationFailed"),providerSelectionFailed:o(e=>`[${r.provider}] Provider selection failed: ${String(e)}`,"providerSelectionFailed"),invalidRuleExpression:o((e,t)=>`[${r.rules}] Custom rule '${e}' evaluation failed: ${String(t)}`,"invalidRuleExpression"),ruleFailed:o((e,t)=>`[${r.rules}] Rule '${e}' evaluation failed: ${String(t)}`,"ruleFailed"),invalidRoutingConfig:o(e=>`[${r.config}] Invalid routing configuration detected: ${String(e)}`,"invalidRoutingConfig"),missingRegionConfig:o(e=>`[${r.region}] Missing region configuration for '${e??"unknown"}'.`,"missingRegionConfig"),complianceCheckFailed:o((e,t)=>`[${r.compliance}] Compliance check failed for region '${e??"unknown"}': ${String(t)}`,"complianceCheckFailed")};var xo={validationFailedPrefix:"refund-validation-failed"},Ko={invalidInput:"Invalid provider or transaction ID",unknownError:"Unknown reconciliation error",descriptionFailed:"Reconciliation failed"},Vo={validationErrorPattern:/^\[(.*?)\]\s(.*)$/},vo={cancelProcessor:"Invalid input for cancellation",captureProcessor:"Invalid input for capture",statusProcessor:"Invalid input for payment status"};exports.ADAPTER_ERROR_CODE=C;exports.ADAPTER_LOG_MESSAGE=D;exports.AMOUNT_DECIMALS=he;exports.AMOUNT_DIVISOR=Be;exports.COMPLIANCE_ERROR_MESSAGES=x;exports.COMPONENTS=P;exports.CORE_FIELDS=Po;exports.CURRENCY_CODE_LENGTH=Yo;exports.CUSTOM_RULE_FIELD=De;exports.CUSTOM_RULE_OPERATER=N;exports.CurrentTimestamp=ce;exports.DEFAULT_CIRCUIT_BREAKER_FAILURE_THRESHOLD=ge;exports.DEFAULT_CROSS_BORDER_RATE=Pe;exports.DEFAULT_ENVIRONMENT=O;exports.DEFAULT_EVENT_COUNT=z;exports.DEFAULT_HANDLER_TIMEOUT_MS=j;exports.DEFAULT_HMAC_ALGORITHM=l;exports.DEFAULT_MAX_LISTENERS=$;exports.DEFAULT_PARTIAL_SUCCESS_THRESHOLD=Q;exports.DEFAULT_PAYEMNT_PRIORITY=w;exports.DEFAULT_PLATFORM_RATE=Ue;exports.DEFAULT_PRIORITY=Ge;exports.DEFAULT_PROCESSING_RATE=Me;exports.DEFAULT_PROCESSING_TIME=ke;exports.DEFAULT_REFUND_LEVELS=B;exports.DEFAULT_RETRY_DELAY_MS=Se;exports.DEFAULT_SETTLEMENT_TIME=Ze;exports.DEFAULT_SUCCESS_THRESHOLD=q;exports.DEFAULT_URGENT=J;exports.EVENT_COMPONENT=oe;exports.EVENT_DEFAULTS=ee;exports.EVENT_ENVIRONMENT=te;exports.EVENT_ERROR_CODE=re;exports.EVENT_ERROR_MESSAGE=ne;exports.EVENT_META_KEY=ie;exports.EVENT_NORMALIZER_MESSAGES=_e;exports.EVENT_PHASE=Ee;exports.EVENT_RESULT_STATUS=Ae;exports.EVENT_SOURCE_FIELD=ae;exports.EmptyArray=Re;exports.FACTORY_MESSAGES=K;exports.FALLBACK_NEXT_STEPS=le;exports.FALLBACK_REASON=Ie;exports.FIXED_FEES=me;exports.LOG_LEVELS=L;exports.MAX_CIRCUIT_OPEN_MS=Ne;exports.MIN_POSITIVE_AMOUNT=Fo;exports.NEXT_STEP_EXPECTED_UPDATE_IN=He;exports.NEXT_STEP_SYSTEM_ACTION=ve;exports.NEXT_STEP_USER_ACTION=Ve;exports.PAYLOAD_KEYS=V;exports.PAYMENT_ALERT_SEVERITY=m;exports.PAYMENT_ERROR_CODES=A;exports.PAYMENT_ERROR_MESSAGES=T;exports.PAYMENT_OPERATION=Je;exports.PAYMENT_PROCESSOR_PATTERN=Vo;exports.PAYMENT_RESOLUTION_STEPS=G;exports.PHASE_AT_TARGET=u;exports.PHASE_BUBBLING=S;exports.PHASE_CAPTURING=s;exports.PHASE_NONE=_;exports.PROCESSING_ERROR_MESSAGES=H;exports.PROCESSOR_MESSAGES=vo;exports.PROVIDER_CONTEXT=n;exports.PROVIDER_ENDPOINTS=Qe;exports.PROVIDER_ERROR_MESSAGES=X;exports.PROVIDER_MESSAGES=eo;exports.RECOMMENDATION_MESSAGES=Y;exports.RECONCILIATION_MESSAGES=Ko;exports.RECOVERY_STEPS=f;exports.REDACTED=U;exports.REFUND_DEFAULT_REASONS=M;exports.REFUND_ERROR_CODES=h;exports.REFUND_ERROR_MESSAGES=b;exports.REFUND_MESSAGES=xo;exports.RISK_LEVEL=Oe;exports.RISK_SCORE=d;exports.ROUTER_CONTEXT=r;exports.SECURITY_ERROR_MESSAGES=k;exports.SECURITY_FLAGS=Ce;exports.SENSITIVE_KEYS=y;exports.SETTLED_PROMISE_STATUS=Te;exports.STRIPE_API_VERSION=ye;exports.STRIPE_CONFIDENCE_HIGH=Fe;exports.STRIPE_CONFIDENCE_MEDIUM=fe;exports.STRIPE_DATA_PATHS=we;exports.STRIPE_ERROR_TYPES=v;exports.STRIPE_EVENT_TYPE=Xe;exports.STRIPE_MAPPING_VERSION=de;exports.STRIPE_MESSAGES=$e;exports.STRIPE_PAYMENT_INTENT_STATUS=We;exports.STRIPE_PRIORITY_HIGH=Ye;exports.STRIPE_PRIORITY_MEDIUM=be;exports.SUPPORTED_CURRENCIES=Lo;exports.THRESHOLDS=p;exports.TIMESTAMP_FALLBACK=Ke;exports.UNIX_TIMESTAMP_MULTIPLIER=xe;exports.VALIDATION_CONSTANTS=Z;exports.VALIDATION_MESSAGES=Mo;exports.VALIDATOR_NAMES=Uo;exports.VALID_BILLING_CYCLES=Go;exports.VALID_RECURRENCE_FREQUENCIES=Ho;exports.VALID_RISK_LEVELS=mo;exports.WEBHOOK_CONSTANTS=F;exports.ZERO_AMOUNT=Le;exports.routerMessages=bo;//# sourceMappingURL=index.cjs.map
|
|
3
3
|
//# sourceMappingURL=index.cjs.map
|