@plyaz/types 1.13.3 → 1.13.5

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 (55) hide show
  1. package/dist/api/client/types.d.ts +3 -3
  2. package/dist/api/config/types.d.ts +62 -5
  3. package/dist/api/debugger/enums.d.ts +12 -0
  4. package/dist/api/debugger/types.d.ts +1 -1
  5. package/dist/api/errors/types.d.ts +46 -238
  6. package/dist/api/events/factories/errors/types.d.ts +26 -27
  7. package/dist/api/index.cjs +1457 -669
  8. package/dist/api/index.cjs.map +1 -1
  9. package/dist/api/index.d.ts +5 -2
  10. package/dist/api/index.js +1385 -603
  11. package/dist/api/index.js.map +1 -1
  12. package/dist/db/DatabaseAdapter.d.ts +2 -2
  13. package/dist/db/DatabaseService.d.ts +3 -3
  14. package/dist/db/config.types.d.ts +1 -1
  15. package/dist/db/database.types.d.ts +2 -2
  16. package/dist/db/index.cjs.map +1 -1
  17. package/dist/db/index.d.ts +1 -1
  18. package/dist/db/index.js.map +1 -1
  19. package/dist/errors/codes.d.ts +253 -0
  20. package/dist/errors/enums.d.ts +199 -0
  21. package/dist/errors/index.cjs +1307 -0
  22. package/dist/errors/index.cjs.map +1 -1
  23. package/dist/errors/index.d.ts +1 -0
  24. package/dist/errors/index.js +1284 -1
  25. package/dist/errors/index.js.map +1 -1
  26. package/dist/errors/types.d.ts +630 -14
  27. package/dist/index.cjs +2182 -1218
  28. package/dist/index.cjs.map +1 -1
  29. package/dist/index.d.ts +43 -1
  30. package/dist/index.js +1849 -911
  31. package/dist/index.js.map +1 -1
  32. package/dist/notifications/enums.d.ts +140 -0
  33. package/dist/notifications/index.cjs +4353 -0
  34. package/dist/notifications/index.cjs.map +1 -0
  35. package/dist/notifications/index.js +145 -0
  36. package/dist/notifications/index.js.map +1 -0
  37. package/dist/notifications/schemas.d.ts +73 -0
  38. package/dist/notifications/types.d.ts +1937 -0
  39. package/dist/payments/base-error/enum.d.ts +79 -0
  40. package/dist/payments/base-error/index.d.ts +2 -0
  41. package/dist/payments/base-error/types.d.ts +180 -0
  42. package/dist/payments/currency/enums.d.ts +37 -0
  43. package/dist/payments/currency/index.d.ts +1 -37
  44. package/dist/payments/index.cjs +40 -40
  45. package/dist/payments/index.cjs.map +1 -1
  46. package/dist/payments/index.d.ts +2 -1
  47. package/dist/payments/index.js +40 -40
  48. package/dist/payments/index.js.map +1 -1
  49. package/dist/payments/transaction/types.d.ts +3 -3
  50. package/dist/store/index.d.ts +1 -1
  51. package/dist/store/types.d.ts +2 -3
  52. package/package.json +6 -1
  53. package/dist/api/errors/enum.d.ts +0 -214
  54. package/dist/api/errors/index.d.ts +0 -6
  55. /package/dist/db/{enhanced-config.types.d.ts → features-config.types.d.ts} +0 -0
@@ -1,3 +1,5 @@
1
+ import { HTTP_STATUS } from '@plyaz/config';
2
+
1
3
  // @plyaz package - Built with tsup
2
4
 
3
5
  // src/errors/enums.ts
@@ -60,10 +62,1291 @@ var ERROR_CATEGORY = {
60
62
  Strategy: "strategy",
61
63
  /** Regional-related error (e.g., region detection failure). */
62
64
  Regional: "regional",
65
+ /** Provider-related error (e.g., notification service provider failure). */
66
+ Provider: "provider",
67
+ /** Queue-related error (e.g., queue full or processing failed). */
68
+ Queue: "queue",
69
+ /** Webhook-related error (e.g., invalid signature or processing failure). */
70
+ Webhook: "webhook",
71
+ /** Template-related error (e.g., template not found or rendering failed). */
72
+ Template: "template",
73
+ /** Configuration-related error (e.g., invalid or missing configuration). */
74
+ Configuration: "configuration",
63
75
  /** Unknown or unclassified error. */
64
76
  Unknown: "unknown"
65
77
  };
78
+ var INTERNAL_STATUS_CODES = {
79
+ // Configuration errors (1001-1009)
80
+ INVALID_CONFIGURATION: 1001,
81
+ MISSING_CONFIGURATION: 1002,
82
+ CONFIGURATION_CONFLICT: 1003,
83
+ CONFIGURATION_TRACKING_FAILED: 1004,
84
+ DEBUG_TRACKING_FAILED: 1005,
85
+ // Resource errors (1010-1019)
86
+ RESOURCE_NOT_FOUND: 1010,
87
+ RESOURCE_ALREADY_EXISTS: 1011,
88
+ RESOURCE_UNAVAILABLE: 1012,
89
+ // Validation errors (1020-1029)
90
+ INVALID_PARAMETER: 1020,
91
+ MISSING_PARAMETER: 1021,
92
+ PARAMETER_OUT_OF_RANGE: 1022,
93
+ // Strategy/preset errors (1030-1039)
94
+ STRATEGY_NOT_FOUND: 1030,
95
+ PRESET_NOT_FOUND: 1031,
96
+ INVALID_STRATEGY: 1032,
97
+ // Request/Response errors (1035-1039)
98
+ REQUEST_FAILED: 1035,
99
+ // Internal system errors (1040-1049)
100
+ INITIALIZATION_FAILED: 1040,
101
+ OPERATION_FAILED: 1041,
102
+ STATE_CORRUPTION: 1042,
103
+ SERIALIZATION_FAILED: 1043,
104
+ DESERIALIZATION_FAILED: 1044,
105
+ CONFIGURATION_INVALID: 1045,
106
+ HEADER_PROCESSING_ERROR: 1046,
107
+ REGION_DETECTION_ERROR: 1047,
108
+ NETWORK_OVERRIDE_ERROR: 1048
109
+ };
110
+ var ERROR_CATEGORY_TO_EMITTER_KEY = {
111
+ [ERROR_CATEGORY.Network]: "network",
112
+ [ERROR_CATEGORY.Validation]: "validation",
113
+ [ERROR_CATEGORY.Authentication]: "authentication",
114
+ [ERROR_CATEGORY.Authorization]: "authorization",
115
+ [ERROR_CATEGORY.RateLimit]: "rateLimit",
116
+ [ERROR_CATEGORY.Server]: "server",
117
+ [ERROR_CATEGORY.Timeout]: "timeout",
118
+ [ERROR_CATEGORY.NotFound]: "notFound",
119
+ [ERROR_CATEGORY.Conflict]: "conflict",
120
+ [ERROR_CATEGORY.Client]: "client",
121
+ [ERROR_CATEGORY.ExternalService]: "externalService",
122
+ [ERROR_CATEGORY.Cache]: "cache",
123
+ [ERROR_CATEGORY.Headers]: "headers",
124
+ [ERROR_CATEGORY.Retry]: "retry",
125
+ [ERROR_CATEGORY.Blockchain]: "blockchain",
126
+ [ERROR_CATEGORY.Strategy]: "strategy",
127
+ [ERROR_CATEGORY.Regional]: "regional",
128
+ [ERROR_CATEGORY.Provider]: "provider",
129
+ [ERROR_CATEGORY.Queue]: "queue",
130
+ [ERROR_CATEGORY.Webhook]: "webhook",
131
+ [ERROR_CATEGORY.Template]: "template",
132
+ [ERROR_CATEGORY.Configuration]: "configuration",
133
+ [ERROR_CATEGORY.Unknown]: "unknown"
134
+ };
135
+ var COMMON_OPERATIONS = {
136
+ // Data operations
137
+ STORAGE: "storage",
138
+ RETRIEVAL: "retrieval",
139
+ INVALIDATION: "invalidation",
140
+ DELETION: "deletion",
141
+ // Processing operations
142
+ VALIDATION: "validation",
143
+ ENRICHMENT: "enrichment",
144
+ SERIALIZATION: "serialization",
145
+ DESERIALIZATION: "deserialization",
146
+ // API operations
147
+ REQUEST: "request",
148
+ RESPONSE: "response",
149
+ RETRY: "retry",
150
+ REVALIDATION: "revalidation",
151
+ POLLING: "polling",
152
+ // Configuration operations
153
+ INITIALIZATION: "initialization",
154
+ CONFIGURATION: "configuration",
155
+ PRESET_LOOKUP: "preset-lookup",
156
+ REGIONAL_DETECTION: "regional-detection",
157
+ // Strategy operations
158
+ STRATEGY_EXECUTION: "strategy-execution",
159
+ FALLBACK: "fallback",
160
+ // Event operations
161
+ SUBSCRIPTION: "subscription",
162
+ PUBLICATION: "publication",
163
+ EVENT_HANDLING: "event-handling",
164
+ // Debugging operations
165
+ DEBUG: "debug",
166
+ DEBUG_TRACKING: "debug-tracking",
167
+ TRACKING: "tracking",
168
+ MONITORING: "monitoring",
169
+ // Network operations
170
+ NETWORK_CHECK: "network-check",
171
+ ENDPOINT_BUILD: "endpoint-build",
172
+ CONTEXT_SETUP: "context-setup",
173
+ // Notification operations
174
+ SEND: "send",
175
+ RENDER: "render",
176
+ QUEUE: "queue",
177
+ PROCESS: "process"
178
+ };
179
+ var COMMON_FIELDS = {
180
+ // Storage fields
181
+ STORAGE: "storage",
182
+ CACHE: "cache",
183
+ // Configuration fields
184
+ CONFIG: "config",
185
+ PRESET_NAME: "presetName",
186
+ PRESET_ID: "presetId",
187
+ // HTTP fields
188
+ HEADERS: "headers",
189
+ URL: "url",
190
+ METHOD: "method",
191
+ // Strategy fields
192
+ STRATEGY: "strategy",
193
+ // Retry fields
194
+ RETRY_COUNT: "retryCount",
195
+ MAX_RETRIES: "maxRetries",
196
+ // Polling fields
197
+ POLLING_INTERVAL: "pollingInterval",
198
+ // Event fields
199
+ TOPIC: "topic",
200
+ CHANNEL: "channel",
201
+ // API fields
202
+ ENDPOINT: "endpoint",
203
+ CLIENT: "client",
204
+ // Network fields
205
+ NETWORK_TYPE: "networkType",
206
+ TIME_INTERVAL: "timeInterval",
207
+ // Notification fields
208
+ EMAIL: "email",
209
+ PHONE: "phoneNumber",
210
+ RECIPIENT: "recipient",
211
+ TEMPLATE: "template",
212
+ PROVIDER: "provider"
213
+ };
214
+ var COMMON_STORAGE_TYPES = {
215
+ PRIMARY: "primary",
216
+ FALLBACK: "fallback",
217
+ MEMORY: "memory",
218
+ SESSION: "session",
219
+ LOCAL: "local",
220
+ REDIS: "redis",
221
+ DATABASE: "database"
222
+ };
223
+ var ERROR_CODES = {
224
+ // ===== API Package Errors =====
225
+ // Client Configuration
226
+ CLIENT_INITIALIZATION_FAILED: "CLIENT_INITIALIZATION_FAILED",
227
+ CLIENT_INVALID_CONFIG: "CLIENT_INVALID_CONFIG",
228
+ CLIENT_MISSING_BASE_URL: "CLIENT_MISSING_BASE_URL",
229
+ CLIENT_CANCELLED: "CLIENT_CANCELLED",
230
+ CONFIG_VALIDATION_FAILED: "CONFIG_VALIDATION_FAILED",
231
+ HEADER_PROCESSING_FAILED: "HEADER_PROCESSING_FAILED",
232
+ NETWORK_OVERRIDE_FAILED: "NETWORK_OVERRIDE_FAILED",
233
+ // Request
234
+ REQUEST_TIMEOUT: "REQUEST_TIMEOUT",
235
+ REQUEST_ABORTED: "REQUEST_ABORTED",
236
+ REQUEST_INVALID_PARAMS: "REQUEST_INVALID_PARAMS",
237
+ REQUEST_PREPARATION_FAILED: "REQUEST_PREPARATION_FAILED",
238
+ // Response
239
+ RESPONSE_INVALID_FORMAT: "RESPONSE_INVALID_FORMAT",
240
+ RESPONSE_PARSING_FAILED: "RESPONSE_PARSING_FAILED",
241
+ // Authentication/Authorization
242
+ AUTH_UNAUTHORIZED: "AUTH_UNAUTHORIZED",
243
+ AUTH_FORBIDDEN: "AUTH_FORBIDDEN",
244
+ AUTH_TOKEN_EXPIRED: "AUTH_TOKEN_EXPIRED",
245
+ AUTH_INVALID_CREDENTIALS: "AUTH_INVALID_CREDENTIALS",
246
+ // Rate Limiting
247
+ RATE_LIMIT_EXCEEDED: "RATE_LIMIT_EXCEEDED",
248
+ // Resources
249
+ RESOURCE_NOT_FOUND: "RESOURCE_NOT_FOUND",
250
+ RESOURCE_CONFLICT: "RESOURCE_CONFLICT",
251
+ // Validation
252
+ API_VALIDATION_FAILED: "API_VALIDATION_FAILED",
253
+ API_INVALID_INPUT: "API_INVALID_INPUT",
254
+ VALIDATION_ERROR: "VALIDATION_ERROR",
255
+ REQUIRED_FIELD_MISSING: "REQUIRED_FIELD_MISSING",
256
+ INVALID_FORMAT: "INVALID_FORMAT",
257
+ VALIDATION_INVALID_FORMAT: "VALIDATION_INVALID_FORMAT",
258
+ STRING_TOO_SHORT: "STRING_TOO_SHORT",
259
+ STRING_TOO_LONG: "STRING_TOO_LONG",
260
+ // Network
261
+ NETWORK_ERROR: "NETWORK_ERROR",
262
+ CONNECTION_FAILED: "CONNECTION_FAILED",
263
+ NETWORK_CONNECTION_FAILED: "NETWORK_CONNECTION_FAILED",
264
+ NETWORK_OFFLINE: "NETWORK_OFFLINE",
265
+ NETWORK_DNS_FAILED: "NETWORK_DNS_FAILED",
266
+ NETWORK_TIMEOUT: "NETWORK_TIMEOUT",
267
+ NETWORK_PRESET_NOT_FOUND: "NETWORK_PRESET_NOT_FOUND",
268
+ NETWORK_CONFIGURATION_INVALID: "NETWORK_CONFIGURATION_INVALID",
269
+ // Server
270
+ SERVER_ERROR: "SERVER_ERROR",
271
+ INTERNAL_SERVER_ERROR: "INTERNAL_SERVER_ERROR",
272
+ SERVICE_UNAVAILABLE: "SERVICE_UNAVAILABLE",
273
+ // Cache
274
+ CACHE_READ_FAILED: "CACHE_READ_FAILED",
275
+ CACHE_WRITE_FAILED: "CACHE_WRITE_FAILED",
276
+ CACHE_INVALIDATION_FAILED: "CACHE_INVALIDATION_FAILED",
277
+ CACHE_STORAGE_FAILED: "CACHE_STORAGE_FAILED",
278
+ CACHE_RETRIEVAL_FAILED: "CACHE_RETRIEVAL_FAILED",
279
+ // Retry
280
+ RETRY_LIMIT_EXCEEDED: "RETRY_LIMIT_EXCEEDED",
281
+ RETRY_FAILED: "RETRY_FAILED",
282
+ RETRY_EXHAUSTED: "RETRY_EXHAUSTED",
283
+ RETRY_STRATEGY_INVALID: "RETRY_STRATEGY_INVALID",
284
+ // Strategy
285
+ STRATEGY_INVALID: "STRATEGY_INVALID",
286
+ STRATEGY_CONFLICT: "STRATEGY_CONFLICT",
287
+ STRATEGY_EXECUTION_FAILED: "STRATEGY_EXECUTION_FAILED",
288
+ // Headers
289
+ HEADERS_ENRICHMENT_FAILED: "HEADERS_ENRICHMENT_FAILED",
290
+ HEADERS_VALIDATION_FAILED: "HEADERS_VALIDATION_FAILED",
291
+ HEADERS_MERGE_CONFLICT: "HEADERS_MERGE_CONFLICT",
292
+ // Regional
293
+ REGION_DETECTION_FAILED: "REGION_DETECTION_FAILED",
294
+ REGIONAL_PRESET_NOT_FOUND: "REGIONAL_PRESET_NOT_FOUND",
295
+ // External Services
296
+ EXTERNAL_SERVICE_ERROR: "EXTERNAL_SERVICE_ERROR",
297
+ // Timeout (generic)
298
+ TIMEOUT: "TIMEOUT",
299
+ // Debugging
300
+ DEBUG_TRACKING_FAILED: "DEBUG_TRACKING_FAILED",
301
+ // Polling
302
+ POLLING_CANCELLED: "POLLING_CANCELLED",
303
+ POLLING_TIMEOUT: "POLLING_TIMEOUT",
304
+ POLLING_INVALID_CONFIG: "POLLING_INVALID_CONFIG",
305
+ // PubSub
306
+ PUBSUB_SUBSCRIPTION_FAILED: "PUBSUB_SUBSCRIPTION_FAILED",
307
+ PUBSUB_PUBLICATION_FAILED: "PUBSUB_PUBLICATION_FAILED",
308
+ PUBSUB_INVALID_TOPIC: "PUBSUB_INVALID_TOPIC",
309
+ PUBSUB_CHANNEL_ERROR: "PUBSUB_CHANNEL_ERROR",
310
+ // Revalidation
311
+ REVALIDATION_FAILED: "REVALIDATION_FAILED",
312
+ REVALIDATION_IN_PROGRESS: "REVALIDATION_IN_PROGRESS",
313
+ // Debugging
314
+ DEBUG_OVERRIDE_FAILED: "DEBUG_OVERRIDE_FAILED",
315
+ DEBUG_CONFLICT_DETECTED: "DEBUG_CONFLICT_DETECTED",
316
+ // Endpoint
317
+ ENDPOINT_BUILD_FAILED: "ENDPOINT_BUILD_FAILED",
318
+ ENDPOINT_NOT_FOUND: "ENDPOINT_NOT_FOUND",
319
+ ENDPOINT_INVALID_CONFIG: "ENDPOINT_INVALID_CONFIG",
320
+ // Event
321
+ EVENT_HANDLER_FAILED: "EVENT_HANDLER_FAILED",
322
+ EVENT_EMISSION_FAILED: "EVENT_EMISSION_FAILED",
323
+ MONITORING_FAILED: "MONITORING_FAILED",
324
+ // Context
325
+ CONTEXT_OPERATION_FAILED: "CONTEXT_OPERATION_FAILED",
326
+ // Generic
327
+ CLIENT_ERROR: "CLIENT_ERROR",
328
+ UNKNOWN_ERROR: "UNKNOWN_ERROR",
329
+ // ===== Notification Package Errors =====
330
+ // Provider
331
+ NOTIFICATION_PROVIDER_SEND_FAILED: "notification.provider.send.failed",
332
+ NOTIFICATION_PROVIDER_CONFIGURATION_INVALID: "notification.provider.configuration.invalid",
333
+ NOTIFICATION_PROVIDER_RATE_LIMIT: "notification.provider.rate.limit",
334
+ NOTIFICATION_PROVIDER_AUTH_FAILED: "notification.provider.auth.failed",
335
+ NOTIFICATION_PROVIDER_TIMEOUT: "notification.provider.timeout",
336
+ NOTIFICATION_PROVIDER_UNAVAILABLE: "notification.provider.unavailable",
337
+ NOTIFICATION_PROVIDER_FEATURE_NOT_SUPPORTED: "notification.provider.feature.not.supported",
338
+ NOTIFICATION_ALL_PROVIDERS_FAILED: "notification.all.providers.failed",
339
+ // Validation
340
+ NOTIFICATION_INVALID_INPUT: "notification.validation.input.invalid",
341
+ NOTIFICATION_INVALID_RECIPIENT: "notification.validation.recipient.invalid",
342
+ NOTIFICATION_INVALID_TEMPLATE: "notification.validation.template.invalid",
343
+ NOTIFICATION_INVALID_PAYLOAD: "notification.validation.payload.invalid",
344
+ NOTIFICATION_MISSING_REQUIRED_FIELD: "notification.validation.field.required",
345
+ NOTIFICATION_VALIDATION_FAILED: "notification.validation.failed",
346
+ // User Preferences
347
+ NOTIFICATION_USER_OPTED_OUT: "notification.user.opted.out",
348
+ // Queue
349
+ NOTIFICATION_QUEUE_FULL: "notification.queue.full",
350
+ NOTIFICATION_QUEUE_PROCESSING_FAILED: "notification.queue.processing.failed",
351
+ // Webhook
352
+ NOTIFICATION_WEBHOOK_SIGNATURE_INVALID: "notification.webhook.signature.invalid",
353
+ NOTIFICATION_WEBHOOK_VALIDATION_FAILED: "notification.webhook.validation.failed",
354
+ NOTIFICATION_WEBHOOK_PROCESSING_FAILED: "notification.webhook.processing.failed",
355
+ // Template
356
+ NOTIFICATION_TEMPLATE_NOT_FOUND: "notification.template.not.found",
357
+ NOTIFICATION_TEMPLATE_RENDER_FAILED: "notification.template.render.failed",
358
+ // General Notification
359
+ NOTIFICATION_UNKNOWN_ERROR: "notification.unknown.error",
360
+ NOTIFICATION_INITIALIZATION_FAILED: "notification.initialization.failed",
361
+ // ===== Errors Package Errors =====
362
+ ERROR_SYSTEM_NOT_INITIALIZED: "error.system.not.initialized",
363
+ EVENT_FACTORY_NOT_REGISTERED: "error.event.factory.not.registered"
364
+ };
365
+ var API_ERROR_CODES = {
366
+ CLIENT_INITIALIZATION_FAILED: ERROR_CODES.CLIENT_INITIALIZATION_FAILED,
367
+ CLIENT_INVALID_CONFIG: ERROR_CODES.CLIENT_INVALID_CONFIG,
368
+ CLIENT_MISSING_BASE_URL: ERROR_CODES.CLIENT_MISSING_BASE_URL,
369
+ CLIENT_CANCELLED: ERROR_CODES.CLIENT_CANCELLED,
370
+ CONFIG_VALIDATION_FAILED: ERROR_CODES.CONFIG_VALIDATION_FAILED,
371
+ HEADER_PROCESSING_FAILED: ERROR_CODES.HEADER_PROCESSING_FAILED,
372
+ NETWORK_OVERRIDE_FAILED: ERROR_CODES.NETWORK_OVERRIDE_FAILED,
373
+ REQUEST_TIMEOUT: ERROR_CODES.REQUEST_TIMEOUT,
374
+ REQUEST_ABORTED: ERROR_CODES.REQUEST_ABORTED,
375
+ REQUEST_INVALID_PARAMS: ERROR_CODES.REQUEST_INVALID_PARAMS,
376
+ REQUEST_PREPARATION_FAILED: ERROR_CODES.REQUEST_PREPARATION_FAILED,
377
+ RESPONSE_INVALID_FORMAT: ERROR_CODES.RESPONSE_INVALID_FORMAT,
378
+ RESPONSE_PARSING_FAILED: ERROR_CODES.RESPONSE_PARSING_FAILED,
379
+ AUTH_UNAUTHORIZED: ERROR_CODES.AUTH_UNAUTHORIZED,
380
+ AUTH_FORBIDDEN: ERROR_CODES.AUTH_FORBIDDEN,
381
+ AUTH_TOKEN_EXPIRED: ERROR_CODES.AUTH_TOKEN_EXPIRED,
382
+ AUTH_INVALID_CREDENTIALS: ERROR_CODES.AUTH_INVALID_CREDENTIALS,
383
+ RATE_LIMIT_EXCEEDED: ERROR_CODES.RATE_LIMIT_EXCEEDED,
384
+ RESOURCE_NOT_FOUND: ERROR_CODES.RESOURCE_NOT_FOUND,
385
+ RESOURCE_CONFLICT: ERROR_CODES.RESOURCE_CONFLICT,
386
+ VALIDATION_FAILED: ERROR_CODES.API_VALIDATION_FAILED,
387
+ INVALID_INPUT: ERROR_CODES.API_INVALID_INPUT,
388
+ VALIDATION_ERROR: ERROR_CODES.VALIDATION_ERROR,
389
+ REQUIRED_FIELD_MISSING: ERROR_CODES.REQUIRED_FIELD_MISSING,
390
+ INVALID_FORMAT: ERROR_CODES.INVALID_FORMAT,
391
+ VALIDATION_INVALID_FORMAT: ERROR_CODES.VALIDATION_INVALID_FORMAT,
392
+ STRING_TOO_SHORT: ERROR_CODES.STRING_TOO_SHORT,
393
+ STRING_TOO_LONG: ERROR_CODES.STRING_TOO_LONG,
394
+ NETWORK_ERROR: ERROR_CODES.NETWORK_ERROR,
395
+ CONNECTION_FAILED: ERROR_CODES.CONNECTION_FAILED,
396
+ NETWORK_CONNECTION_FAILED: ERROR_CODES.NETWORK_CONNECTION_FAILED,
397
+ NETWORK_OFFLINE: ERROR_CODES.NETWORK_OFFLINE,
398
+ NETWORK_DNS_FAILED: ERROR_CODES.NETWORK_DNS_FAILED,
399
+ NETWORK_TIMEOUT: ERROR_CODES.NETWORK_TIMEOUT,
400
+ NETWORK_CONFIGURATION_INVALID: ERROR_CODES.NETWORK_CONFIGURATION_INVALID,
401
+ SERVER_ERROR: ERROR_CODES.SERVER_ERROR,
402
+ INTERNAL_SERVER_ERROR: ERROR_CODES.INTERNAL_SERVER_ERROR,
403
+ SERVICE_UNAVAILABLE: ERROR_CODES.SERVICE_UNAVAILABLE,
404
+ CACHE_READ_FAILED: ERROR_CODES.CACHE_READ_FAILED,
405
+ CACHE_WRITE_FAILED: ERROR_CODES.CACHE_WRITE_FAILED,
406
+ CACHE_INVALIDATION_FAILED: ERROR_CODES.CACHE_INVALIDATION_FAILED,
407
+ CACHE_STORAGE_FAILED: ERROR_CODES.CACHE_STORAGE_FAILED,
408
+ CACHE_RETRIEVAL_FAILED: ERROR_CODES.CACHE_RETRIEVAL_FAILED,
409
+ RETRY_LIMIT_EXCEEDED: ERROR_CODES.RETRY_LIMIT_EXCEEDED,
410
+ RETRY_FAILED: ERROR_CODES.RETRY_FAILED,
411
+ RETRY_EXHAUSTED: ERROR_CODES.RETRY_EXHAUSTED,
412
+ RETRY_STRATEGY_INVALID: ERROR_CODES.RETRY_STRATEGY_INVALID,
413
+ STRATEGY_INVALID: ERROR_CODES.STRATEGY_INVALID,
414
+ STRATEGY_CONFLICT: ERROR_CODES.STRATEGY_CONFLICT,
415
+ STRATEGY_EXECUTION_FAILED: ERROR_CODES.STRATEGY_EXECUTION_FAILED,
416
+ HEADERS_ENRICHMENT_FAILED: ERROR_CODES.HEADERS_ENRICHMENT_FAILED,
417
+ HEADERS_VALIDATION_FAILED: ERROR_CODES.HEADERS_VALIDATION_FAILED,
418
+ HEADERS_MERGE_CONFLICT: ERROR_CODES.HEADERS_MERGE_CONFLICT,
419
+ REGION_DETECTION_FAILED: ERROR_CODES.REGION_DETECTION_FAILED,
420
+ REGIONAL_PRESET_NOT_FOUND: ERROR_CODES.REGIONAL_PRESET_NOT_FOUND,
421
+ EXTERNAL_SERVICE_ERROR: ERROR_CODES.EXTERNAL_SERVICE_ERROR,
422
+ NETWORK_PRESET_NOT_FOUND: ERROR_CODES.NETWORK_PRESET_NOT_FOUND,
423
+ TIMEOUT: ERROR_CODES.TIMEOUT,
424
+ DEBUG_TRACKING_FAILED: ERROR_CODES.DEBUG_TRACKING_FAILED,
425
+ DEBUG_OVERRIDE_FAILED: ERROR_CODES.DEBUG_OVERRIDE_FAILED,
426
+ DEBUG_CONFLICT_DETECTED: ERROR_CODES.DEBUG_CONFLICT_DETECTED,
427
+ POLLING_CANCELLED: ERROR_CODES.POLLING_CANCELLED,
428
+ POLLING_TIMEOUT: ERROR_CODES.POLLING_TIMEOUT,
429
+ POLLING_INVALID_CONFIG: ERROR_CODES.POLLING_INVALID_CONFIG,
430
+ PUBSUB_SUBSCRIPTION_FAILED: ERROR_CODES.PUBSUB_SUBSCRIPTION_FAILED,
431
+ PUBSUB_PUBLICATION_FAILED: ERROR_CODES.PUBSUB_PUBLICATION_FAILED,
432
+ PUBSUB_INVALID_TOPIC: ERROR_CODES.PUBSUB_INVALID_TOPIC,
433
+ PUBSUB_CHANNEL_ERROR: ERROR_CODES.PUBSUB_CHANNEL_ERROR,
434
+ REVALIDATION_FAILED: ERROR_CODES.REVALIDATION_FAILED,
435
+ REVALIDATION_IN_PROGRESS: ERROR_CODES.REVALIDATION_IN_PROGRESS,
436
+ ENDPOINT_BUILD_FAILED: ERROR_CODES.ENDPOINT_BUILD_FAILED,
437
+ ENDPOINT_NOT_FOUND: ERROR_CODES.ENDPOINT_NOT_FOUND,
438
+ ENDPOINT_INVALID_CONFIG: ERROR_CODES.ENDPOINT_INVALID_CONFIG,
439
+ EVENT_HANDLER_FAILED: ERROR_CODES.EVENT_HANDLER_FAILED,
440
+ EVENT_EMISSION_FAILED: ERROR_CODES.EVENT_EMISSION_FAILED,
441
+ MONITORING_FAILED: ERROR_CODES.MONITORING_FAILED,
442
+ CONTEXT_OPERATION_FAILED: ERROR_CODES.CONTEXT_OPERATION_FAILED,
443
+ CLIENT_ERROR: ERROR_CODES.CLIENT_ERROR,
444
+ UNKNOWN_ERROR: ERROR_CODES.UNKNOWN_ERROR
445
+ };
446
+ var NOTIFICATION_ERROR_CODES = {
447
+ PROVIDER_SEND_FAILED: ERROR_CODES.NOTIFICATION_PROVIDER_SEND_FAILED,
448
+ PROVIDER_CONFIGURATION_INVALID: ERROR_CODES.NOTIFICATION_PROVIDER_CONFIGURATION_INVALID,
449
+ PROVIDER_RATE_LIMIT: ERROR_CODES.NOTIFICATION_PROVIDER_RATE_LIMIT,
450
+ PROVIDER_AUTH_FAILED: ERROR_CODES.NOTIFICATION_PROVIDER_AUTH_FAILED,
451
+ PROVIDER_TIMEOUT: ERROR_CODES.NOTIFICATION_PROVIDER_TIMEOUT,
452
+ PROVIDER_UNAVAILABLE: ERROR_CODES.NOTIFICATION_PROVIDER_UNAVAILABLE,
453
+ PROVIDER_FEATURE_NOT_SUPPORTED: ERROR_CODES.NOTIFICATION_PROVIDER_FEATURE_NOT_SUPPORTED,
454
+ ALL_PROVIDERS_FAILED: ERROR_CODES.NOTIFICATION_ALL_PROVIDERS_FAILED,
455
+ INVALID_INPUT: ERROR_CODES.NOTIFICATION_INVALID_INPUT,
456
+ INVALID_RECIPIENT: ERROR_CODES.NOTIFICATION_INVALID_RECIPIENT,
457
+ INVALID_TEMPLATE: ERROR_CODES.NOTIFICATION_INVALID_TEMPLATE,
458
+ INVALID_PAYLOAD: ERROR_CODES.NOTIFICATION_INVALID_PAYLOAD,
459
+ MISSING_REQUIRED_FIELD: ERROR_CODES.NOTIFICATION_MISSING_REQUIRED_FIELD,
460
+ VALIDATION_FAILED: ERROR_CODES.NOTIFICATION_VALIDATION_FAILED,
461
+ USER_OPTED_OUT: ERROR_CODES.NOTIFICATION_USER_OPTED_OUT,
462
+ QUEUE_FULL: ERROR_CODES.NOTIFICATION_QUEUE_FULL,
463
+ QUEUE_PROCESSING_FAILED: ERROR_CODES.NOTIFICATION_QUEUE_PROCESSING_FAILED,
464
+ WEBHOOK_SIGNATURE_INVALID: ERROR_CODES.NOTIFICATION_WEBHOOK_SIGNATURE_INVALID,
465
+ WEBHOOK_VALIDATION_FAILED: ERROR_CODES.NOTIFICATION_WEBHOOK_VALIDATION_FAILED,
466
+ WEBHOOK_PROCESSING_FAILED: ERROR_CODES.NOTIFICATION_WEBHOOK_PROCESSING_FAILED,
467
+ TEMPLATE_NOT_FOUND: ERROR_CODES.NOTIFICATION_TEMPLATE_NOT_FOUND,
468
+ TEMPLATE_RENDER_FAILED: ERROR_CODES.NOTIFICATION_TEMPLATE_RENDER_FAILED,
469
+ UNKNOWN_ERROR: ERROR_CODES.NOTIFICATION_UNKNOWN_ERROR,
470
+ INITIALIZATION_FAILED: ERROR_CODES.NOTIFICATION_INITIALIZATION_FAILED
471
+ };
472
+ var ERROR_DEFINITIONS = {
473
+ // ===== API Package Error Definitions =====
474
+ // Authentication
475
+ [ERROR_CODES.AUTH_UNAUTHORIZED]: {
476
+ code: ERROR_CODES.AUTH_UNAUTHORIZED,
477
+ status: HTTP_STATUS.UNAUTHORIZED,
478
+ category: ERROR_CATEGORY.Authentication,
479
+ userMessage: "errors.auth.unauthorized",
480
+ severity: ERROR_SEVERITY.Medium,
481
+ retryable: false
482
+ },
483
+ [ERROR_CODES.AUTH_FORBIDDEN]: {
484
+ code: ERROR_CODES.AUTH_FORBIDDEN,
485
+ status: HTTP_STATUS.FORBIDDEN,
486
+ category: ERROR_CATEGORY.Authorization,
487
+ userMessage: "errors.auth.forbidden",
488
+ severity: ERROR_SEVERITY.Medium,
489
+ retryable: false
490
+ },
491
+ [ERROR_CODES.AUTH_TOKEN_EXPIRED]: {
492
+ code: ERROR_CODES.AUTH_TOKEN_EXPIRED,
493
+ status: HTTP_STATUS.UNAUTHORIZED,
494
+ category: ERROR_CATEGORY.Authentication,
495
+ userMessage: "errors.auth.token_expired",
496
+ severity: ERROR_SEVERITY.Medium,
497
+ retryable: false
498
+ },
499
+ [ERROR_CODES.AUTH_INVALID_CREDENTIALS]: {
500
+ code: ERROR_CODES.AUTH_INVALID_CREDENTIALS,
501
+ status: HTTP_STATUS.UNAUTHORIZED,
502
+ category: ERROR_CATEGORY.Authentication,
503
+ userMessage: "errors.auth.invalid_credentials",
504
+ severity: ERROR_SEVERITY.Medium,
505
+ retryable: false
506
+ },
507
+ // Rate Limiting
508
+ [ERROR_CODES.RATE_LIMIT_EXCEEDED]: {
509
+ code: ERROR_CODES.RATE_LIMIT_EXCEEDED,
510
+ status: HTTP_STATUS.TOO_MANY_REQUESTS,
511
+ category: ERROR_CATEGORY.RateLimit,
512
+ userMessage: "errors.rate_limit.exceeded",
513
+ severity: ERROR_SEVERITY.Medium,
514
+ retryable: true
515
+ },
516
+ // Resources
517
+ [ERROR_CODES.RESOURCE_NOT_FOUND]: {
518
+ code: ERROR_CODES.RESOURCE_NOT_FOUND,
519
+ status: HTTP_STATUS.NOT_FOUND,
520
+ category: ERROR_CATEGORY.NotFound,
521
+ userMessage: "errors.resource.not_found",
522
+ severity: ERROR_SEVERITY.Medium,
523
+ retryable: false
524
+ },
525
+ [ERROR_CODES.RESOURCE_CONFLICT]: {
526
+ code: ERROR_CODES.RESOURCE_CONFLICT,
527
+ status: HTTP_STATUS.CONFLICT,
528
+ category: ERROR_CATEGORY.Conflict,
529
+ userMessage: "errors.resource.conflict",
530
+ severity: ERROR_SEVERITY.Medium,
531
+ retryable: false
532
+ },
533
+ // Validation
534
+ [ERROR_CODES.API_VALIDATION_FAILED]: {
535
+ code: ERROR_CODES.API_VALIDATION_FAILED,
536
+ status: HTTP_STATUS.BAD_REQUEST,
537
+ category: ERROR_CATEGORY.Validation,
538
+ userMessage: "errors.validation.failed",
539
+ severity: ERROR_SEVERITY.Medium,
540
+ retryable: false
541
+ },
542
+ [ERROR_CODES.API_INVALID_INPUT]: {
543
+ code: ERROR_CODES.API_INVALID_INPUT,
544
+ status: HTTP_STATUS.BAD_REQUEST,
545
+ category: ERROR_CATEGORY.Validation,
546
+ userMessage: "errors.validation.invalid_input",
547
+ severity: ERROR_SEVERITY.Medium,
548
+ retryable: false
549
+ },
550
+ [ERROR_CODES.VALIDATION_ERROR]: {
551
+ code: ERROR_CODES.VALIDATION_ERROR,
552
+ status: HTTP_STATUS.BAD_REQUEST,
553
+ category: ERROR_CATEGORY.Validation,
554
+ userMessage: "errors.validation.error",
555
+ severity: ERROR_SEVERITY.Medium,
556
+ retryable: false
557
+ },
558
+ [ERROR_CODES.REQUIRED_FIELD_MISSING]: {
559
+ code: ERROR_CODES.REQUIRED_FIELD_MISSING,
560
+ status: HTTP_STATUS.BAD_REQUEST,
561
+ category: ERROR_CATEGORY.Validation,
562
+ userMessage: "errors.validation.required_field_missing",
563
+ severity: ERROR_SEVERITY.Medium,
564
+ retryable: false
565
+ },
566
+ [ERROR_CODES.INVALID_FORMAT]: {
567
+ code: ERROR_CODES.INVALID_FORMAT,
568
+ status: HTTP_STATUS.BAD_REQUEST,
569
+ category: ERROR_CATEGORY.Validation,
570
+ userMessage: "errors.validation.invalid_format",
571
+ severity: ERROR_SEVERITY.Medium,
572
+ retryable: false
573
+ },
574
+ [ERROR_CODES.VALIDATION_INVALID_FORMAT]: {
575
+ code: ERROR_CODES.VALIDATION_INVALID_FORMAT,
576
+ status: HTTP_STATUS.BAD_REQUEST,
577
+ category: ERROR_CATEGORY.Validation,
578
+ userMessage: "errors.validation.invalid_format",
579
+ severity: ERROR_SEVERITY.Medium,
580
+ retryable: false
581
+ },
582
+ [ERROR_CODES.STRING_TOO_SHORT]: {
583
+ code: ERROR_CODES.STRING_TOO_SHORT,
584
+ status: HTTP_STATUS.BAD_REQUEST,
585
+ category: ERROR_CATEGORY.Validation,
586
+ userMessage: "errors.validation.string_too_short",
587
+ severity: ERROR_SEVERITY.Medium,
588
+ retryable: false
589
+ },
590
+ [ERROR_CODES.STRING_TOO_LONG]: {
591
+ code: ERROR_CODES.STRING_TOO_LONG,
592
+ status: HTTP_STATUS.BAD_REQUEST,
593
+ category: ERROR_CATEGORY.Validation,
594
+ userMessage: "errors.validation.string_too_long",
595
+ severity: ERROR_SEVERITY.Medium,
596
+ retryable: false
597
+ },
598
+ // Network
599
+ [ERROR_CODES.NETWORK_ERROR]: {
600
+ code: ERROR_CODES.NETWORK_ERROR,
601
+ status: HTTP_STATUS.BAD_GATEWAY,
602
+ category: ERROR_CATEGORY.Network,
603
+ userMessage: "errors.network.error",
604
+ severity: ERROR_SEVERITY.High,
605
+ retryable: true
606
+ },
607
+ [ERROR_CODES.CONNECTION_FAILED]: {
608
+ code: ERROR_CODES.CONNECTION_FAILED,
609
+ status: 0,
610
+ category: ERROR_CATEGORY.Network,
611
+ userMessage: "errors.network.connection_failed",
612
+ severity: ERROR_SEVERITY.High,
613
+ retryable: true
614
+ },
615
+ [ERROR_CODES.NETWORK_CONNECTION_FAILED]: {
616
+ code: ERROR_CODES.NETWORK_CONNECTION_FAILED,
617
+ status: 0,
618
+ category: ERROR_CATEGORY.Network,
619
+ userMessage: "errors.network.connection_failed",
620
+ severity: ERROR_SEVERITY.High,
621
+ retryable: true
622
+ },
623
+ [ERROR_CODES.NETWORK_OFFLINE]: {
624
+ code: ERROR_CODES.NETWORK_OFFLINE,
625
+ status: 0,
626
+ category: ERROR_CATEGORY.Network,
627
+ userMessage: "errors.network.offline",
628
+ severity: ERROR_SEVERITY.High,
629
+ retryable: true
630
+ },
631
+ [ERROR_CODES.NETWORK_DNS_FAILED]: {
632
+ code: ERROR_CODES.NETWORK_DNS_FAILED,
633
+ status: 0,
634
+ category: ERROR_CATEGORY.Network,
635
+ userMessage: "errors.network.dns_failed",
636
+ severity: ERROR_SEVERITY.High,
637
+ retryable: true
638
+ },
639
+ [ERROR_CODES.NETWORK_TIMEOUT]: {
640
+ code: ERROR_CODES.NETWORK_TIMEOUT,
641
+ status: 0,
642
+ category: ERROR_CATEGORY.Network,
643
+ userMessage: "errors.network.timeout",
644
+ severity: ERROR_SEVERITY.High,
645
+ retryable: true
646
+ },
647
+ [ERROR_CODES.NETWORK_CONFIGURATION_INVALID]: {
648
+ code: ERROR_CODES.NETWORK_CONFIGURATION_INVALID,
649
+ status: HTTP_STATUS.INTERNAL_SERVER_ERROR,
650
+ category: ERROR_CATEGORY.Configuration,
651
+ userMessage: "errors.network.configuration_invalid",
652
+ severity: ERROR_SEVERITY.Critical,
653
+ retryable: true
654
+ },
655
+ [ERROR_CODES.NETWORK_PRESET_NOT_FOUND]: {
656
+ code: ERROR_CODES.NETWORK_PRESET_NOT_FOUND,
657
+ status: HTTP_STATUS.NOT_FOUND,
658
+ category: ERROR_CATEGORY.Configuration,
659
+ userMessage: "errors.network.preset_not_found",
660
+ severity: ERROR_SEVERITY.High,
661
+ retryable: true
662
+ },
663
+ // Server
664
+ [ERROR_CODES.SERVER_ERROR]: {
665
+ code: ERROR_CODES.SERVER_ERROR,
666
+ status: HTTP_STATUS.INTERNAL_SERVER_ERROR,
667
+ category: ERROR_CATEGORY.Server,
668
+ userMessage: "errors.server.error",
669
+ severity: ERROR_SEVERITY.High,
670
+ retryable: false
671
+ },
672
+ [ERROR_CODES.INTERNAL_SERVER_ERROR]: {
673
+ code: ERROR_CODES.INTERNAL_SERVER_ERROR,
674
+ status: HTTP_STATUS.INTERNAL_SERVER_ERROR,
675
+ category: ERROR_CATEGORY.Server,
676
+ userMessage: "errors.server.internal_error",
677
+ severity: ERROR_SEVERITY.High,
678
+ retryable: false
679
+ },
680
+ [ERROR_CODES.SERVICE_UNAVAILABLE]: {
681
+ code: ERROR_CODES.SERVICE_UNAVAILABLE,
682
+ status: HTTP_STATUS.SERVICE_UNAVAILABLE,
683
+ category: ERROR_CATEGORY.Server,
684
+ userMessage: "errors.server.service_unavailable",
685
+ severity: ERROR_SEVERITY.Medium,
686
+ retryable: true
687
+ },
688
+ // Cache
689
+ [ERROR_CODES.CACHE_READ_FAILED]: {
690
+ code: ERROR_CODES.CACHE_READ_FAILED,
691
+ status: HTTP_STATUS.INTERNAL_SERVER_ERROR,
692
+ category: ERROR_CATEGORY.Cache,
693
+ userMessage: "errors.cache.read_failed",
694
+ severity: ERROR_SEVERITY.Medium,
695
+ retryable: false
696
+ },
697
+ [ERROR_CODES.CACHE_WRITE_FAILED]: {
698
+ code: ERROR_CODES.CACHE_WRITE_FAILED,
699
+ status: HTTP_STATUS.INTERNAL_SERVER_ERROR,
700
+ category: ERROR_CATEGORY.Cache,
701
+ userMessage: "errors.cache.write_failed",
702
+ severity: ERROR_SEVERITY.Medium,
703
+ retryable: false
704
+ },
705
+ [ERROR_CODES.CACHE_INVALIDATION_FAILED]: {
706
+ code: ERROR_CODES.CACHE_INVALIDATION_FAILED,
707
+ status: HTTP_STATUS.INTERNAL_SERVER_ERROR,
708
+ category: ERROR_CATEGORY.Cache,
709
+ userMessage: "errors.cache.invalidation_failed",
710
+ severity: ERROR_SEVERITY.Medium,
711
+ retryable: false
712
+ },
713
+ [ERROR_CODES.CACHE_STORAGE_FAILED]: {
714
+ code: ERROR_CODES.CACHE_STORAGE_FAILED,
715
+ status: HTTP_STATUS.INTERNAL_SERVER_ERROR,
716
+ category: ERROR_CATEGORY.Cache,
717
+ userMessage: "errors.cache.storage_failed",
718
+ severity: ERROR_SEVERITY.Medium,
719
+ retryable: false
720
+ },
721
+ [ERROR_CODES.CACHE_RETRIEVAL_FAILED]: {
722
+ code: ERROR_CODES.CACHE_RETRIEVAL_FAILED,
723
+ status: HTTP_STATUS.INTERNAL_SERVER_ERROR,
724
+ category: ERROR_CATEGORY.Cache,
725
+ userMessage: "errors.cache.retrieval_failed",
726
+ severity: ERROR_SEVERITY.Medium,
727
+ retryable: false
728
+ },
729
+ // Retry
730
+ [ERROR_CODES.RETRY_LIMIT_EXCEEDED]: {
731
+ code: ERROR_CODES.RETRY_LIMIT_EXCEEDED,
732
+ status: HTTP_STATUS.SERVICE_UNAVAILABLE,
733
+ category: ERROR_CATEGORY.Retry,
734
+ userMessage: "errors.retry.limit_exceeded",
735
+ severity: ERROR_SEVERITY.Medium,
736
+ retryable: true
737
+ },
738
+ [ERROR_CODES.RETRY_FAILED]: {
739
+ code: ERROR_CODES.RETRY_FAILED,
740
+ status: HTTP_STATUS.INTERNAL_SERVER_ERROR,
741
+ category: ERROR_CATEGORY.Retry,
742
+ userMessage: "errors.retry.failed",
743
+ severity: ERROR_SEVERITY.Medium,
744
+ retryable: true
745
+ },
746
+ [ERROR_CODES.RETRY_EXHAUSTED]: {
747
+ code: ERROR_CODES.RETRY_EXHAUSTED,
748
+ status: HTTP_STATUS.SERVICE_UNAVAILABLE,
749
+ category: ERROR_CATEGORY.Retry,
750
+ userMessage: "errors.retry.exhausted",
751
+ severity: ERROR_SEVERITY.Medium,
752
+ retryable: true
753
+ },
754
+ [ERROR_CODES.RETRY_STRATEGY_INVALID]: {
755
+ code: ERROR_CODES.RETRY_STRATEGY_INVALID,
756
+ status: HTTP_STATUS.BAD_REQUEST,
757
+ category: ERROR_CATEGORY.Configuration,
758
+ userMessage: "errors.retry.strategy_invalid",
759
+ severity: ERROR_SEVERITY.Medium,
760
+ retryable: true
761
+ },
762
+ // Strategy
763
+ [ERROR_CODES.STRATEGY_INVALID]: {
764
+ code: ERROR_CODES.STRATEGY_INVALID,
765
+ status: HTTP_STATUS.BAD_REQUEST,
766
+ category: ERROR_CATEGORY.Configuration,
767
+ userMessage: "errors.strategy.invalid",
768
+ severity: ERROR_SEVERITY.Medium,
769
+ retryable: false
770
+ },
771
+ [ERROR_CODES.STRATEGY_CONFLICT]: {
772
+ code: ERROR_CODES.STRATEGY_CONFLICT,
773
+ status: HTTP_STATUS.CONFLICT,
774
+ category: ERROR_CATEGORY.Configuration,
775
+ userMessage: "errors.strategy.conflict",
776
+ severity: ERROR_SEVERITY.Medium,
777
+ retryable: false
778
+ },
779
+ [ERROR_CODES.STRATEGY_EXECUTION_FAILED]: {
780
+ code: ERROR_CODES.STRATEGY_EXECUTION_FAILED,
781
+ status: HTTP_STATUS.INTERNAL_SERVER_ERROR,
782
+ category: ERROR_CATEGORY.Configuration,
783
+ userMessage: "errors.strategy.execution_failed",
784
+ severity: ERROR_SEVERITY.Medium,
785
+ retryable: false
786
+ },
787
+ // Headers
788
+ [ERROR_CODES.HEADERS_ENRICHMENT_FAILED]: {
789
+ code: ERROR_CODES.HEADERS_ENRICHMENT_FAILED,
790
+ status: HTTP_STATUS.INTERNAL_SERVER_ERROR,
791
+ category: ERROR_CATEGORY.Headers,
792
+ userMessage: "errors.headers.enrichment_failed",
793
+ severity: ERROR_SEVERITY.Medium,
794
+ retryable: false
795
+ },
796
+ [ERROR_CODES.HEADERS_VALIDATION_FAILED]: {
797
+ code: ERROR_CODES.HEADERS_VALIDATION_FAILED,
798
+ status: HTTP_STATUS.BAD_REQUEST,
799
+ category: ERROR_CATEGORY.Headers,
800
+ userMessage: "errors.headers.validation_failed",
801
+ severity: ERROR_SEVERITY.Medium,
802
+ retryable: false
803
+ },
804
+ [ERROR_CODES.HEADERS_MERGE_CONFLICT]: {
805
+ code: ERROR_CODES.HEADERS_MERGE_CONFLICT,
806
+ status: HTTP_STATUS.CONFLICT,
807
+ category: ERROR_CATEGORY.Headers,
808
+ userMessage: "errors.headers.merge_conflict",
809
+ severity: ERROR_SEVERITY.Medium,
810
+ retryable: false
811
+ },
812
+ // Regional
813
+ [ERROR_CODES.REGION_DETECTION_FAILED]: {
814
+ code: ERROR_CODES.REGION_DETECTION_FAILED,
815
+ status: HTTP_STATUS.INTERNAL_SERVER_ERROR,
816
+ category: ERROR_CATEGORY.Network,
817
+ userMessage: "errors.regional.detection_failed",
818
+ severity: ERROR_SEVERITY.Medium,
819
+ retryable: false
820
+ },
821
+ [ERROR_CODES.REGIONAL_PRESET_NOT_FOUND]: {
822
+ code: ERROR_CODES.REGIONAL_PRESET_NOT_FOUND,
823
+ status: HTTP_STATUS.NOT_FOUND,
824
+ category: ERROR_CATEGORY.Configuration,
825
+ userMessage: "errors.regional.preset_not_found",
826
+ severity: ERROR_SEVERITY.Medium,
827
+ retryable: false
828
+ },
829
+ // External Services
830
+ [ERROR_CODES.EXTERNAL_SERVICE_ERROR]: {
831
+ code: ERROR_CODES.EXTERNAL_SERVICE_ERROR,
832
+ status: HTTP_STATUS.BAD_GATEWAY,
833
+ category: ERROR_CATEGORY.Server,
834
+ userMessage: "errors.external.service_error",
835
+ severity: ERROR_SEVERITY.Medium,
836
+ retryable: false
837
+ },
838
+ // Timeout
839
+ [ERROR_CODES.TIMEOUT]: {
840
+ code: ERROR_CODES.TIMEOUT,
841
+ status: HTTP_STATUS.REQUEST_TIMEOUT,
842
+ category: ERROR_CATEGORY.Timeout,
843
+ userMessage: "errors.timeout.generic",
844
+ severity: ERROR_SEVERITY.High,
845
+ retryable: true
846
+ },
847
+ // Debugging
848
+ [ERROR_CODES.DEBUG_TRACKING_FAILED]: {
849
+ code: ERROR_CODES.DEBUG_TRACKING_FAILED,
850
+ status: HTTP_STATUS.INTERNAL_SERVER_ERROR,
851
+ category: ERROR_CATEGORY.Client,
852
+ userMessage: "errors.debug.tracking_failed",
853
+ severity: ERROR_SEVERITY.Medium,
854
+ retryable: false
855
+ },
856
+ [ERROR_CODES.DEBUG_OVERRIDE_FAILED]: {
857
+ code: ERROR_CODES.DEBUG_OVERRIDE_FAILED,
858
+ status: HTTP_STATUS.INTERNAL_SERVER_ERROR,
859
+ category: ERROR_CATEGORY.Configuration,
860
+ userMessage: "errors.debug.override_failed",
861
+ severity: ERROR_SEVERITY.Medium,
862
+ retryable: false
863
+ },
864
+ [ERROR_CODES.DEBUG_CONFLICT_DETECTED]: {
865
+ code: ERROR_CODES.DEBUG_CONFLICT_DETECTED,
866
+ status: HTTP_STATUS.CONFLICT,
867
+ category: ERROR_CATEGORY.Configuration,
868
+ userMessage: "errors.debug.conflict_detected",
869
+ severity: ERROR_SEVERITY.Medium,
870
+ retryable: false
871
+ },
872
+ // Endpoint
873
+ [ERROR_CODES.ENDPOINT_BUILD_FAILED]: {
874
+ code: ERROR_CODES.ENDPOINT_BUILD_FAILED,
875
+ status: HTTP_STATUS.INTERNAL_SERVER_ERROR,
876
+ category: ERROR_CATEGORY.Configuration,
877
+ userMessage: "errors.endpoint.build_failed",
878
+ severity: ERROR_SEVERITY.Medium,
879
+ retryable: false
880
+ },
881
+ [ERROR_CODES.ENDPOINT_NOT_FOUND]: {
882
+ code: ERROR_CODES.ENDPOINT_NOT_FOUND,
883
+ status: HTTP_STATUS.NOT_FOUND,
884
+ category: ERROR_CATEGORY.NotFound,
885
+ userMessage: "errors.endpoint.not_found",
886
+ severity: ERROR_SEVERITY.Medium,
887
+ retryable: false
888
+ },
889
+ [ERROR_CODES.ENDPOINT_INVALID_CONFIG]: {
890
+ code: ERROR_CODES.ENDPOINT_INVALID_CONFIG,
891
+ status: HTTP_STATUS.BAD_REQUEST,
892
+ category: ERROR_CATEGORY.Configuration,
893
+ userMessage: "errors.endpoint.invalid_config",
894
+ severity: ERROR_SEVERITY.Critical,
895
+ retryable: false
896
+ },
897
+ // Event
898
+ [ERROR_CODES.EVENT_HANDLER_FAILED]: {
899
+ code: ERROR_CODES.EVENT_HANDLER_FAILED,
900
+ status: HTTP_STATUS.INTERNAL_SERVER_ERROR,
901
+ category: ERROR_CATEGORY.Client,
902
+ userMessage: "errors.event.handler_failed",
903
+ severity: ERROR_SEVERITY.Medium,
904
+ retryable: false
905
+ },
906
+ [ERROR_CODES.EVENT_EMISSION_FAILED]: {
907
+ code: ERROR_CODES.EVENT_EMISSION_FAILED,
908
+ status: HTTP_STATUS.INTERNAL_SERVER_ERROR,
909
+ category: ERROR_CATEGORY.Client,
910
+ userMessage: "errors.event.emission_failed",
911
+ severity: ERROR_SEVERITY.Medium,
912
+ retryable: false
913
+ },
914
+ [ERROR_CODES.MONITORING_FAILED]: {
915
+ code: ERROR_CODES.MONITORING_FAILED,
916
+ status: HTTP_STATUS.INTERNAL_SERVER_ERROR,
917
+ category: ERROR_CATEGORY.Client,
918
+ userMessage: "errors.monitoring.failed",
919
+ severity: ERROR_SEVERITY.Medium,
920
+ retryable: false
921
+ },
922
+ // Polling
923
+ [ERROR_CODES.POLLING_CANCELLED]: {
924
+ code: ERROR_CODES.POLLING_CANCELLED,
925
+ status: 0,
926
+ category: ERROR_CATEGORY.Client,
927
+ userMessage: "errors.polling.cancelled",
928
+ severity: ERROR_SEVERITY.Low,
929
+ retryable: false
930
+ },
931
+ [ERROR_CODES.POLLING_TIMEOUT]: {
932
+ code: ERROR_CODES.POLLING_TIMEOUT,
933
+ status: HTTP_STATUS.REQUEST_TIMEOUT,
934
+ category: ERROR_CATEGORY.Timeout,
935
+ userMessage: "errors.polling.timeout",
936
+ severity: ERROR_SEVERITY.High,
937
+ retryable: true
938
+ },
939
+ [ERROR_CODES.POLLING_INVALID_CONFIG]: {
940
+ code: ERROR_CODES.POLLING_INVALID_CONFIG,
941
+ status: HTTP_STATUS.BAD_REQUEST,
942
+ category: ERROR_CATEGORY.Configuration,
943
+ userMessage: "errors.polling.invalid_config",
944
+ severity: ERROR_SEVERITY.Critical,
945
+ retryable: false
946
+ },
947
+ // PubSub
948
+ [ERROR_CODES.PUBSUB_SUBSCRIPTION_FAILED]: {
949
+ code: ERROR_CODES.PUBSUB_SUBSCRIPTION_FAILED,
950
+ status: HTTP_STATUS.INTERNAL_SERVER_ERROR,
951
+ category: ERROR_CATEGORY.Client,
952
+ userMessage: "errors.pubsub.subscription_failed",
953
+ severity: ERROR_SEVERITY.Medium,
954
+ retryable: false
955
+ },
956
+ [ERROR_CODES.PUBSUB_PUBLICATION_FAILED]: {
957
+ code: ERROR_CODES.PUBSUB_PUBLICATION_FAILED,
958
+ status: HTTP_STATUS.INTERNAL_SERVER_ERROR,
959
+ category: ERROR_CATEGORY.Client,
960
+ userMessage: "errors.pubsub.publication_failed",
961
+ severity: ERROR_SEVERITY.Medium,
962
+ retryable: false
963
+ },
964
+ [ERROR_CODES.PUBSUB_INVALID_TOPIC]: {
965
+ code: ERROR_CODES.PUBSUB_INVALID_TOPIC,
966
+ status: HTTP_STATUS.BAD_REQUEST,
967
+ category: ERROR_CATEGORY.Validation,
968
+ userMessage: "errors.pubsub.invalid_topic",
969
+ severity: ERROR_SEVERITY.Medium,
970
+ retryable: false
971
+ },
972
+ [ERROR_CODES.PUBSUB_CHANNEL_ERROR]: {
973
+ code: ERROR_CODES.PUBSUB_CHANNEL_ERROR,
974
+ status: HTTP_STATUS.INTERNAL_SERVER_ERROR,
975
+ category: ERROR_CATEGORY.Client,
976
+ userMessage: "errors.pubsub.channel_error",
977
+ severity: ERROR_SEVERITY.Medium,
978
+ retryable: false
979
+ },
980
+ // Revalidation
981
+ [ERROR_CODES.REVALIDATION_FAILED]: {
982
+ code: ERROR_CODES.REVALIDATION_FAILED,
983
+ status: HTTP_STATUS.INTERNAL_SERVER_ERROR,
984
+ category: ERROR_CATEGORY.Cache,
985
+ userMessage: "errors.revalidation.failed",
986
+ severity: ERROR_SEVERITY.Medium,
987
+ retryable: false
988
+ },
989
+ [ERROR_CODES.REVALIDATION_IN_PROGRESS]: {
990
+ code: ERROR_CODES.REVALIDATION_IN_PROGRESS,
991
+ status: HTTP_STATUS.CONFLICT,
992
+ category: ERROR_CATEGORY.Cache,
993
+ userMessage: "errors.revalidation.in_progress",
994
+ severity: ERROR_SEVERITY.Medium,
995
+ retryable: false
996
+ },
997
+ // Context
998
+ [ERROR_CODES.CONTEXT_OPERATION_FAILED]: {
999
+ code: ERROR_CODES.CONTEXT_OPERATION_FAILED,
1000
+ status: HTTP_STATUS.INTERNAL_SERVER_ERROR,
1001
+ category: ERROR_CATEGORY.Client,
1002
+ userMessage: "errors.context.operation_failed",
1003
+ severity: ERROR_SEVERITY.Medium,
1004
+ retryable: false
1005
+ },
1006
+ // Request
1007
+ [ERROR_CODES.REQUEST_TIMEOUT]: {
1008
+ code: ERROR_CODES.REQUEST_TIMEOUT,
1009
+ status: HTTP_STATUS.REQUEST_TIMEOUT,
1010
+ category: ERROR_CATEGORY.Timeout,
1011
+ userMessage: "errors.request.timeout",
1012
+ severity: ERROR_SEVERITY.High,
1013
+ retryable: true
1014
+ },
1015
+ [ERROR_CODES.REQUEST_ABORTED]: {
1016
+ code: ERROR_CODES.REQUEST_ABORTED,
1017
+ status: 0,
1018
+ category: ERROR_CATEGORY.Client,
1019
+ userMessage: "errors.request.aborted",
1020
+ severity: ERROR_SEVERITY.Medium,
1021
+ retryable: true
1022
+ },
1023
+ [ERROR_CODES.REQUEST_INVALID_PARAMS]: {
1024
+ code: ERROR_CODES.REQUEST_INVALID_PARAMS,
1025
+ status: HTTP_STATUS.BAD_REQUEST,
1026
+ category: ERROR_CATEGORY.Validation,
1027
+ userMessage: "errors.request.invalid_params",
1028
+ severity: ERROR_SEVERITY.Medium,
1029
+ retryable: false
1030
+ },
1031
+ [ERROR_CODES.REQUEST_PREPARATION_FAILED]: {
1032
+ code: ERROR_CODES.REQUEST_PREPARATION_FAILED,
1033
+ status: HTTP_STATUS.INTERNAL_SERVER_ERROR,
1034
+ category: ERROR_CATEGORY.Client,
1035
+ userMessage: "errors.request.preparation_failed",
1036
+ severity: ERROR_SEVERITY.Medium,
1037
+ retryable: false
1038
+ },
1039
+ // Response
1040
+ [ERROR_CODES.RESPONSE_INVALID_FORMAT]: {
1041
+ code: ERROR_CODES.RESPONSE_INVALID_FORMAT,
1042
+ status: HTTP_STATUS.INTERNAL_SERVER_ERROR,
1043
+ category: ERROR_CATEGORY.Server,
1044
+ userMessage: "errors.response.invalid_format",
1045
+ severity: ERROR_SEVERITY.Medium,
1046
+ retryable: false
1047
+ },
1048
+ [ERROR_CODES.RESPONSE_PARSING_FAILED]: {
1049
+ code: ERROR_CODES.RESPONSE_PARSING_FAILED,
1050
+ status: HTTP_STATUS.INTERNAL_SERVER_ERROR,
1051
+ category: ERROR_CATEGORY.Server,
1052
+ userMessage: "errors.response.parsing_failed",
1053
+ severity: ERROR_SEVERITY.Medium,
1054
+ retryable: false
1055
+ },
1056
+ // Client
1057
+ [ERROR_CODES.CLIENT_ERROR]: {
1058
+ code: ERROR_CODES.CLIENT_ERROR,
1059
+ status: HTTP_STATUS.BAD_REQUEST,
1060
+ category: ERROR_CATEGORY.Client,
1061
+ userMessage: "errors.client.error",
1062
+ severity: ERROR_SEVERITY.Medium,
1063
+ retryable: false
1064
+ },
1065
+ [ERROR_CODES.CLIENT_INITIALIZATION_FAILED]: {
1066
+ code: ERROR_CODES.CLIENT_INITIALIZATION_FAILED,
1067
+ status: HTTP_STATUS.INTERNAL_SERVER_ERROR,
1068
+ category: ERROR_CATEGORY.Client,
1069
+ userMessage: "errors.client.initialization_failed",
1070
+ severity: ERROR_SEVERITY.Medium,
1071
+ retryable: false
1072
+ },
1073
+ [ERROR_CODES.CLIENT_INVALID_CONFIG]: {
1074
+ code: ERROR_CODES.CLIENT_INVALID_CONFIG,
1075
+ status: HTTP_STATUS.INTERNAL_SERVER_ERROR,
1076
+ category: ERROR_CATEGORY.Client,
1077
+ userMessage: "errors.client.invalid_config",
1078
+ severity: ERROR_SEVERITY.Critical,
1079
+ retryable: false
1080
+ },
1081
+ [ERROR_CODES.CLIENT_MISSING_BASE_URL]: {
1082
+ code: ERROR_CODES.CLIENT_MISSING_BASE_URL,
1083
+ status: HTTP_STATUS.INTERNAL_SERVER_ERROR,
1084
+ category: ERROR_CATEGORY.Configuration,
1085
+ userMessage: "errors.client.missing_base_url",
1086
+ severity: ERROR_SEVERITY.Critical,
1087
+ retryable: false
1088
+ },
1089
+ [ERROR_CODES.CLIENT_CANCELLED]: {
1090
+ code: ERROR_CODES.CLIENT_CANCELLED,
1091
+ status: 0,
1092
+ category: ERROR_CATEGORY.Client,
1093
+ userMessage: "errors.client.cancelled",
1094
+ severity: ERROR_SEVERITY.Low,
1095
+ retryable: true
1096
+ },
1097
+ // Configuration
1098
+ [ERROR_CODES.CONFIG_VALIDATION_FAILED]: {
1099
+ code: ERROR_CODES.CONFIG_VALIDATION_FAILED,
1100
+ status: HTTP_STATUS.INTERNAL_SERVER_ERROR,
1101
+ category: ERROR_CATEGORY.Configuration,
1102
+ userMessage: "errors.config.validation_failed",
1103
+ severity: ERROR_SEVERITY.Critical,
1104
+ retryable: false
1105
+ },
1106
+ [ERROR_CODES.HEADER_PROCESSING_FAILED]: {
1107
+ code: ERROR_CODES.HEADER_PROCESSING_FAILED,
1108
+ status: HTTP_STATUS.INTERNAL_SERVER_ERROR,
1109
+ category: ERROR_CATEGORY.Headers,
1110
+ userMessage: "errors.headers.processing_failed",
1111
+ severity: ERROR_SEVERITY.Medium,
1112
+ retryable: false
1113
+ },
1114
+ [ERROR_CODES.NETWORK_OVERRIDE_FAILED]: {
1115
+ code: ERROR_CODES.NETWORK_OVERRIDE_FAILED,
1116
+ status: HTTP_STATUS.INTERNAL_SERVER_ERROR,
1117
+ category: ERROR_CATEGORY.Network,
1118
+ userMessage: "errors.network.override_failed",
1119
+ severity: ERROR_SEVERITY.High,
1120
+ retryable: true
1121
+ },
1122
+ // Generic
1123
+ [ERROR_CODES.UNKNOWN_ERROR]: {
1124
+ code: ERROR_CODES.UNKNOWN_ERROR,
1125
+ status: HTTP_STATUS.INTERNAL_SERVER_ERROR,
1126
+ category: ERROR_CATEGORY.Unknown,
1127
+ userMessage: "errors.unknown",
1128
+ severity: ERROR_SEVERITY.Medium,
1129
+ retryable: false
1130
+ },
1131
+ // ===== Notification Package Error Definitions =====
1132
+ // Provider errors (retryable)
1133
+ [ERROR_CODES.NOTIFICATION_PROVIDER_SEND_FAILED]: {
1134
+ code: ERROR_CODES.NOTIFICATION_PROVIDER_SEND_FAILED,
1135
+ status: HTTP_STATUS.INTERNAL_SERVER_ERROR,
1136
+ category: ERROR_CATEGORY.Provider,
1137
+ severity: ERROR_SEVERITY.High,
1138
+ retryable: true,
1139
+ userMessage: "errors.notification.provider.send_failed"
1140
+ },
1141
+ [ERROR_CODES.NOTIFICATION_PROVIDER_CONFIGURATION_INVALID]: {
1142
+ code: ERROR_CODES.NOTIFICATION_PROVIDER_CONFIGURATION_INVALID,
1143
+ status: HTTP_STATUS.INTERNAL_SERVER_ERROR,
1144
+ category: ERROR_CATEGORY.Configuration,
1145
+ severity: ERROR_SEVERITY.Critical,
1146
+ retryable: false,
1147
+ userMessage: "errors.notification.provider.configuration_invalid"
1148
+ },
1149
+ [ERROR_CODES.NOTIFICATION_PROVIDER_RATE_LIMIT]: {
1150
+ code: ERROR_CODES.NOTIFICATION_PROVIDER_RATE_LIMIT,
1151
+ status: HTTP_STATUS.TOO_MANY_REQUESTS,
1152
+ category: ERROR_CATEGORY.RateLimit,
1153
+ severity: ERROR_SEVERITY.Medium,
1154
+ retryable: true,
1155
+ userMessage: "errors.notification.provider.rate_limit"
1156
+ },
1157
+ [ERROR_CODES.NOTIFICATION_PROVIDER_AUTH_FAILED]: {
1158
+ code: ERROR_CODES.NOTIFICATION_PROVIDER_AUTH_FAILED,
1159
+ status: HTTP_STATUS.UNAUTHORIZED,
1160
+ category: ERROR_CATEGORY.Provider,
1161
+ severity: ERROR_SEVERITY.Critical,
1162
+ retryable: false,
1163
+ userMessage: "errors.notification.provider.auth_failed"
1164
+ },
1165
+ [ERROR_CODES.NOTIFICATION_PROVIDER_TIMEOUT]: {
1166
+ code: ERROR_CODES.NOTIFICATION_PROVIDER_TIMEOUT,
1167
+ status: HTTP_STATUS.GATEWAY_TIMEOUT,
1168
+ category: ERROR_CATEGORY.Network,
1169
+ severity: ERROR_SEVERITY.Medium,
1170
+ retryable: true,
1171
+ userMessage: "errors.notification.provider.timeout"
1172
+ },
1173
+ [ERROR_CODES.NOTIFICATION_PROVIDER_UNAVAILABLE]: {
1174
+ code: ERROR_CODES.NOTIFICATION_PROVIDER_UNAVAILABLE,
1175
+ status: HTTP_STATUS.SERVICE_UNAVAILABLE,
1176
+ category: ERROR_CATEGORY.Provider,
1177
+ severity: ERROR_SEVERITY.High,
1178
+ retryable: true,
1179
+ userMessage: "errors.notification.provider.unavailable"
1180
+ },
1181
+ [ERROR_CODES.NOTIFICATION_PROVIDER_FEATURE_NOT_SUPPORTED]: {
1182
+ code: ERROR_CODES.NOTIFICATION_PROVIDER_FEATURE_NOT_SUPPORTED,
1183
+ status: HTTP_STATUS.NOT_IMPLEMENTED,
1184
+ category: ERROR_CATEGORY.Provider,
1185
+ severity: ERROR_SEVERITY.Low,
1186
+ retryable: false,
1187
+ userMessage: "errors.notification.provider.feature_not_supported"
1188
+ },
1189
+ [ERROR_CODES.NOTIFICATION_ALL_PROVIDERS_FAILED]: {
1190
+ code: ERROR_CODES.NOTIFICATION_ALL_PROVIDERS_FAILED,
1191
+ status: HTTP_STATUS.SERVICE_UNAVAILABLE,
1192
+ category: ERROR_CATEGORY.Provider,
1193
+ severity: ERROR_SEVERITY.Critical,
1194
+ retryable: false,
1195
+ userMessage: "errors.notification.all_providers_failed"
1196
+ },
1197
+ // Validation errors (non-retryable)
1198
+ [ERROR_CODES.NOTIFICATION_INVALID_INPUT]: {
1199
+ code: ERROR_CODES.NOTIFICATION_INVALID_INPUT,
1200
+ status: HTTP_STATUS.BAD_REQUEST,
1201
+ category: ERROR_CATEGORY.Validation,
1202
+ severity: ERROR_SEVERITY.Medium,
1203
+ retryable: false,
1204
+ userMessage: "errors.notification.validation.invalid_input"
1205
+ },
1206
+ [ERROR_CODES.NOTIFICATION_INVALID_RECIPIENT]: {
1207
+ code: ERROR_CODES.NOTIFICATION_INVALID_RECIPIENT,
1208
+ status: HTTP_STATUS.BAD_REQUEST,
1209
+ category: ERROR_CATEGORY.Validation,
1210
+ severity: ERROR_SEVERITY.Medium,
1211
+ retryable: false,
1212
+ userMessage: "errors.notification.validation.invalid_recipient"
1213
+ },
1214
+ [ERROR_CODES.NOTIFICATION_INVALID_TEMPLATE]: {
1215
+ code: ERROR_CODES.NOTIFICATION_INVALID_TEMPLATE,
1216
+ status: HTTP_STATUS.BAD_REQUEST,
1217
+ category: ERROR_CATEGORY.Template,
1218
+ severity: ERROR_SEVERITY.Medium,
1219
+ retryable: false,
1220
+ userMessage: "errors.notification.validation.invalid_template"
1221
+ },
1222
+ [ERROR_CODES.NOTIFICATION_INVALID_PAYLOAD]: {
1223
+ code: ERROR_CODES.NOTIFICATION_INVALID_PAYLOAD,
1224
+ status: HTTP_STATUS.BAD_REQUEST,
1225
+ category: ERROR_CATEGORY.Validation,
1226
+ severity: ERROR_SEVERITY.Medium,
1227
+ retryable: false,
1228
+ userMessage: "errors.notification.validation.invalid_payload"
1229
+ },
1230
+ [ERROR_CODES.NOTIFICATION_MISSING_REQUIRED_FIELD]: {
1231
+ code: ERROR_CODES.NOTIFICATION_MISSING_REQUIRED_FIELD,
1232
+ status: HTTP_STATUS.BAD_REQUEST,
1233
+ category: ERROR_CATEGORY.Validation,
1234
+ severity: ERROR_SEVERITY.Medium,
1235
+ retryable: false,
1236
+ userMessage: "errors.notification.validation.required_field_missing"
1237
+ },
1238
+ [ERROR_CODES.NOTIFICATION_VALIDATION_FAILED]: {
1239
+ code: ERROR_CODES.NOTIFICATION_VALIDATION_FAILED,
1240
+ status: HTTP_STATUS.BAD_REQUEST,
1241
+ category: ERROR_CATEGORY.Validation,
1242
+ severity: ERROR_SEVERITY.Medium,
1243
+ retryable: false,
1244
+ userMessage: "errors.notification.validation.failed"
1245
+ },
1246
+ // User Preferences
1247
+ [ERROR_CODES.NOTIFICATION_USER_OPTED_OUT]: {
1248
+ code: ERROR_CODES.NOTIFICATION_USER_OPTED_OUT,
1249
+ status: HTTP_STATUS.OK,
1250
+ category: ERROR_CATEGORY.Validation,
1251
+ severity: ERROR_SEVERITY.Low,
1252
+ retryable: false,
1253
+ userMessage: "errors.notification.user.opted_out"
1254
+ },
1255
+ // Queue errors (retryable)
1256
+ [ERROR_CODES.NOTIFICATION_QUEUE_FULL]: {
1257
+ code: ERROR_CODES.NOTIFICATION_QUEUE_FULL,
1258
+ status: HTTP_STATUS.SERVICE_UNAVAILABLE,
1259
+ category: ERROR_CATEGORY.Queue,
1260
+ severity: ERROR_SEVERITY.High,
1261
+ retryable: true,
1262
+ userMessage: "errors.notification.queue.full"
1263
+ },
1264
+ [ERROR_CODES.NOTIFICATION_QUEUE_PROCESSING_FAILED]: {
1265
+ code: ERROR_CODES.NOTIFICATION_QUEUE_PROCESSING_FAILED,
1266
+ status: HTTP_STATUS.INTERNAL_SERVER_ERROR,
1267
+ category: ERROR_CATEGORY.Queue,
1268
+ severity: ERROR_SEVERITY.High,
1269
+ retryable: true,
1270
+ userMessage: "errors.notification.queue.processing_failed"
1271
+ },
1272
+ // Webhook errors
1273
+ [ERROR_CODES.NOTIFICATION_WEBHOOK_SIGNATURE_INVALID]: {
1274
+ code: ERROR_CODES.NOTIFICATION_WEBHOOK_SIGNATURE_INVALID,
1275
+ status: HTTP_STATUS.UNAUTHORIZED,
1276
+ category: ERROR_CATEGORY.Webhook,
1277
+ severity: ERROR_SEVERITY.High,
1278
+ retryable: false,
1279
+ userMessage: "errors.notification.webhook.signature_invalid"
1280
+ },
1281
+ [ERROR_CODES.NOTIFICATION_WEBHOOK_VALIDATION_FAILED]: {
1282
+ code: ERROR_CODES.NOTIFICATION_WEBHOOK_VALIDATION_FAILED,
1283
+ status: HTTP_STATUS.BAD_REQUEST,
1284
+ category: ERROR_CATEGORY.Webhook,
1285
+ severity: ERROR_SEVERITY.Medium,
1286
+ retryable: false,
1287
+ userMessage: "errors.notification.webhook.validation_failed"
1288
+ },
1289
+ [ERROR_CODES.NOTIFICATION_WEBHOOK_PROCESSING_FAILED]: {
1290
+ code: ERROR_CODES.NOTIFICATION_WEBHOOK_PROCESSING_FAILED,
1291
+ status: HTTP_STATUS.INTERNAL_SERVER_ERROR,
1292
+ category: ERROR_CATEGORY.Webhook,
1293
+ severity: ERROR_SEVERITY.High,
1294
+ retryable: true,
1295
+ userMessage: "errors.notification.webhook.processing_failed"
1296
+ },
1297
+ // Template errors
1298
+ [ERROR_CODES.NOTIFICATION_TEMPLATE_NOT_FOUND]: {
1299
+ code: ERROR_CODES.NOTIFICATION_TEMPLATE_NOT_FOUND,
1300
+ status: HTTP_STATUS.NOT_FOUND,
1301
+ category: ERROR_CATEGORY.Template,
1302
+ severity: ERROR_SEVERITY.High,
1303
+ retryable: false,
1304
+ userMessage: "errors.notification.template.not_found"
1305
+ },
1306
+ [ERROR_CODES.NOTIFICATION_TEMPLATE_RENDER_FAILED]: {
1307
+ code: ERROR_CODES.NOTIFICATION_TEMPLATE_RENDER_FAILED,
1308
+ status: HTTP_STATUS.INTERNAL_SERVER_ERROR,
1309
+ category: ERROR_CATEGORY.Template,
1310
+ severity: ERROR_SEVERITY.High,
1311
+ retryable: false,
1312
+ userMessage: "errors.notification.template.render_failed"
1313
+ },
1314
+ // General notification errors
1315
+ [ERROR_CODES.NOTIFICATION_UNKNOWN_ERROR]: {
1316
+ code: ERROR_CODES.NOTIFICATION_UNKNOWN_ERROR,
1317
+ status: HTTP_STATUS.INTERNAL_SERVER_ERROR,
1318
+ category: ERROR_CATEGORY.Unknown,
1319
+ severity: ERROR_SEVERITY.Medium,
1320
+ retryable: false,
1321
+ userMessage: "errors.notification.unknown"
1322
+ },
1323
+ [ERROR_CODES.NOTIFICATION_INITIALIZATION_FAILED]: {
1324
+ code: ERROR_CODES.NOTIFICATION_INITIALIZATION_FAILED,
1325
+ status: HTTP_STATUS.INTERNAL_SERVER_ERROR,
1326
+ category: ERROR_CATEGORY.Configuration,
1327
+ severity: ERROR_SEVERITY.Critical,
1328
+ retryable: false,
1329
+ userMessage: "errors.notification.initialization_failed"
1330
+ },
1331
+ // ===== Errors Package Errors =====
1332
+ [ERROR_CODES.ERROR_SYSTEM_NOT_INITIALIZED]: {
1333
+ code: ERROR_CODES.ERROR_SYSTEM_NOT_INITIALIZED,
1334
+ status: HTTP_STATUS.INTERNAL_SERVER_ERROR,
1335
+ category: ERROR_CATEGORY.Configuration,
1336
+ severity: ERROR_SEVERITY.Critical,
1337
+ retryable: false,
1338
+ userMessage: "errors.system.not_initialized"
1339
+ },
1340
+ [ERROR_CODES.EVENT_FACTORY_NOT_REGISTERED]: {
1341
+ code: ERROR_CODES.EVENT_FACTORY_NOT_REGISTERED,
1342
+ status: HTTP_STATUS.INTERNAL_SERVER_ERROR,
1343
+ category: ERROR_CATEGORY.Configuration,
1344
+ severity: ERROR_SEVERITY.High,
1345
+ retryable: false,
1346
+ userMessage: "errors.event.factory.not_registered"
1347
+ }
1348
+ };
66
1349
 
67
- export { ERROR_CATEGORY, ERROR_SEVERITY, ERROR_TYPE };
1350
+ export { API_ERROR_CODES, COMMON_FIELDS, COMMON_OPERATIONS, COMMON_STORAGE_TYPES, ERROR_CATEGORY, ERROR_CATEGORY_TO_EMITTER_KEY, ERROR_CODES, ERROR_DEFINITIONS, ERROR_SEVERITY, ERROR_TYPE, INTERNAL_STATUS_CODES, NOTIFICATION_ERROR_CODES };
68
1351
  //# sourceMappingURL=index.js.map
69
1352
  //# sourceMappingURL=index.js.map