@plyaz/types 1.13.3 → 1.13.4

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 +1437 -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 +1365 -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 +251 -0
  20. package/dist/errors/enums.d.ts +199 -0
  21. package/dist/errors/index.cjs +1287 -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 +1264 -1
  25. package/dist/errors/index.js.map +1 -1
  26. package/dist/errors/types.d.ts +630 -14
  27. package/dist/index.cjs +2161 -1217
  28. package/dist/index.cjs.map +1 -1
  29. package/dist/index.d.ts +43 -1
  30. package/dist/index.js +1829 -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,1271 @@ 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
+ };
362
+ var API_ERROR_CODES = {
363
+ CLIENT_INITIALIZATION_FAILED: ERROR_CODES.CLIENT_INITIALIZATION_FAILED,
364
+ CLIENT_INVALID_CONFIG: ERROR_CODES.CLIENT_INVALID_CONFIG,
365
+ CLIENT_MISSING_BASE_URL: ERROR_CODES.CLIENT_MISSING_BASE_URL,
366
+ CLIENT_CANCELLED: ERROR_CODES.CLIENT_CANCELLED,
367
+ CONFIG_VALIDATION_FAILED: ERROR_CODES.CONFIG_VALIDATION_FAILED,
368
+ HEADER_PROCESSING_FAILED: ERROR_CODES.HEADER_PROCESSING_FAILED,
369
+ NETWORK_OVERRIDE_FAILED: ERROR_CODES.NETWORK_OVERRIDE_FAILED,
370
+ REQUEST_TIMEOUT: ERROR_CODES.REQUEST_TIMEOUT,
371
+ REQUEST_ABORTED: ERROR_CODES.REQUEST_ABORTED,
372
+ REQUEST_INVALID_PARAMS: ERROR_CODES.REQUEST_INVALID_PARAMS,
373
+ REQUEST_PREPARATION_FAILED: ERROR_CODES.REQUEST_PREPARATION_FAILED,
374
+ RESPONSE_INVALID_FORMAT: ERROR_CODES.RESPONSE_INVALID_FORMAT,
375
+ RESPONSE_PARSING_FAILED: ERROR_CODES.RESPONSE_PARSING_FAILED,
376
+ AUTH_UNAUTHORIZED: ERROR_CODES.AUTH_UNAUTHORIZED,
377
+ AUTH_FORBIDDEN: ERROR_CODES.AUTH_FORBIDDEN,
378
+ AUTH_TOKEN_EXPIRED: ERROR_CODES.AUTH_TOKEN_EXPIRED,
379
+ AUTH_INVALID_CREDENTIALS: ERROR_CODES.AUTH_INVALID_CREDENTIALS,
380
+ RATE_LIMIT_EXCEEDED: ERROR_CODES.RATE_LIMIT_EXCEEDED,
381
+ RESOURCE_NOT_FOUND: ERROR_CODES.RESOURCE_NOT_FOUND,
382
+ RESOURCE_CONFLICT: ERROR_CODES.RESOURCE_CONFLICT,
383
+ VALIDATION_FAILED: ERROR_CODES.API_VALIDATION_FAILED,
384
+ INVALID_INPUT: ERROR_CODES.API_INVALID_INPUT,
385
+ VALIDATION_ERROR: ERROR_CODES.VALIDATION_ERROR,
386
+ REQUIRED_FIELD_MISSING: ERROR_CODES.REQUIRED_FIELD_MISSING,
387
+ INVALID_FORMAT: ERROR_CODES.INVALID_FORMAT,
388
+ VALIDATION_INVALID_FORMAT: ERROR_CODES.VALIDATION_INVALID_FORMAT,
389
+ STRING_TOO_SHORT: ERROR_CODES.STRING_TOO_SHORT,
390
+ STRING_TOO_LONG: ERROR_CODES.STRING_TOO_LONG,
391
+ NETWORK_ERROR: ERROR_CODES.NETWORK_ERROR,
392
+ CONNECTION_FAILED: ERROR_CODES.CONNECTION_FAILED,
393
+ NETWORK_CONNECTION_FAILED: ERROR_CODES.NETWORK_CONNECTION_FAILED,
394
+ NETWORK_OFFLINE: ERROR_CODES.NETWORK_OFFLINE,
395
+ NETWORK_DNS_FAILED: ERROR_CODES.NETWORK_DNS_FAILED,
396
+ NETWORK_TIMEOUT: ERROR_CODES.NETWORK_TIMEOUT,
397
+ NETWORK_CONFIGURATION_INVALID: ERROR_CODES.NETWORK_CONFIGURATION_INVALID,
398
+ SERVER_ERROR: ERROR_CODES.SERVER_ERROR,
399
+ INTERNAL_SERVER_ERROR: ERROR_CODES.INTERNAL_SERVER_ERROR,
400
+ SERVICE_UNAVAILABLE: ERROR_CODES.SERVICE_UNAVAILABLE,
401
+ CACHE_READ_FAILED: ERROR_CODES.CACHE_READ_FAILED,
402
+ CACHE_WRITE_FAILED: ERROR_CODES.CACHE_WRITE_FAILED,
403
+ CACHE_INVALIDATION_FAILED: ERROR_CODES.CACHE_INVALIDATION_FAILED,
404
+ CACHE_STORAGE_FAILED: ERROR_CODES.CACHE_STORAGE_FAILED,
405
+ CACHE_RETRIEVAL_FAILED: ERROR_CODES.CACHE_RETRIEVAL_FAILED,
406
+ RETRY_LIMIT_EXCEEDED: ERROR_CODES.RETRY_LIMIT_EXCEEDED,
407
+ RETRY_FAILED: ERROR_CODES.RETRY_FAILED,
408
+ RETRY_EXHAUSTED: ERROR_CODES.RETRY_EXHAUSTED,
409
+ RETRY_STRATEGY_INVALID: ERROR_CODES.RETRY_STRATEGY_INVALID,
410
+ STRATEGY_INVALID: ERROR_CODES.STRATEGY_INVALID,
411
+ STRATEGY_CONFLICT: ERROR_CODES.STRATEGY_CONFLICT,
412
+ STRATEGY_EXECUTION_FAILED: ERROR_CODES.STRATEGY_EXECUTION_FAILED,
413
+ HEADERS_ENRICHMENT_FAILED: ERROR_CODES.HEADERS_ENRICHMENT_FAILED,
414
+ HEADERS_VALIDATION_FAILED: ERROR_CODES.HEADERS_VALIDATION_FAILED,
415
+ HEADERS_MERGE_CONFLICT: ERROR_CODES.HEADERS_MERGE_CONFLICT,
416
+ REGION_DETECTION_FAILED: ERROR_CODES.REGION_DETECTION_FAILED,
417
+ REGIONAL_PRESET_NOT_FOUND: ERROR_CODES.REGIONAL_PRESET_NOT_FOUND,
418
+ EXTERNAL_SERVICE_ERROR: ERROR_CODES.EXTERNAL_SERVICE_ERROR,
419
+ NETWORK_PRESET_NOT_FOUND: ERROR_CODES.NETWORK_PRESET_NOT_FOUND,
420
+ TIMEOUT: ERROR_CODES.TIMEOUT,
421
+ DEBUG_TRACKING_FAILED: ERROR_CODES.DEBUG_TRACKING_FAILED,
422
+ DEBUG_OVERRIDE_FAILED: ERROR_CODES.DEBUG_OVERRIDE_FAILED,
423
+ DEBUG_CONFLICT_DETECTED: ERROR_CODES.DEBUG_CONFLICT_DETECTED,
424
+ POLLING_CANCELLED: ERROR_CODES.POLLING_CANCELLED,
425
+ POLLING_TIMEOUT: ERROR_CODES.POLLING_TIMEOUT,
426
+ POLLING_INVALID_CONFIG: ERROR_CODES.POLLING_INVALID_CONFIG,
427
+ PUBSUB_SUBSCRIPTION_FAILED: ERROR_CODES.PUBSUB_SUBSCRIPTION_FAILED,
428
+ PUBSUB_PUBLICATION_FAILED: ERROR_CODES.PUBSUB_PUBLICATION_FAILED,
429
+ PUBSUB_INVALID_TOPIC: ERROR_CODES.PUBSUB_INVALID_TOPIC,
430
+ PUBSUB_CHANNEL_ERROR: ERROR_CODES.PUBSUB_CHANNEL_ERROR,
431
+ REVALIDATION_FAILED: ERROR_CODES.REVALIDATION_FAILED,
432
+ REVALIDATION_IN_PROGRESS: ERROR_CODES.REVALIDATION_IN_PROGRESS,
433
+ ENDPOINT_BUILD_FAILED: ERROR_CODES.ENDPOINT_BUILD_FAILED,
434
+ ENDPOINT_NOT_FOUND: ERROR_CODES.ENDPOINT_NOT_FOUND,
435
+ ENDPOINT_INVALID_CONFIG: ERROR_CODES.ENDPOINT_INVALID_CONFIG,
436
+ EVENT_HANDLER_FAILED: ERROR_CODES.EVENT_HANDLER_FAILED,
437
+ EVENT_EMISSION_FAILED: ERROR_CODES.EVENT_EMISSION_FAILED,
438
+ MONITORING_FAILED: ERROR_CODES.MONITORING_FAILED,
439
+ CONTEXT_OPERATION_FAILED: ERROR_CODES.CONTEXT_OPERATION_FAILED,
440
+ CLIENT_ERROR: ERROR_CODES.CLIENT_ERROR,
441
+ UNKNOWN_ERROR: ERROR_CODES.UNKNOWN_ERROR
442
+ };
443
+ var NOTIFICATION_ERROR_CODES = {
444
+ PROVIDER_SEND_FAILED: ERROR_CODES.NOTIFICATION_PROVIDER_SEND_FAILED,
445
+ PROVIDER_CONFIGURATION_INVALID: ERROR_CODES.NOTIFICATION_PROVIDER_CONFIGURATION_INVALID,
446
+ PROVIDER_RATE_LIMIT: ERROR_CODES.NOTIFICATION_PROVIDER_RATE_LIMIT,
447
+ PROVIDER_AUTH_FAILED: ERROR_CODES.NOTIFICATION_PROVIDER_AUTH_FAILED,
448
+ PROVIDER_TIMEOUT: ERROR_CODES.NOTIFICATION_PROVIDER_TIMEOUT,
449
+ PROVIDER_UNAVAILABLE: ERROR_CODES.NOTIFICATION_PROVIDER_UNAVAILABLE,
450
+ PROVIDER_FEATURE_NOT_SUPPORTED: ERROR_CODES.NOTIFICATION_PROVIDER_FEATURE_NOT_SUPPORTED,
451
+ ALL_PROVIDERS_FAILED: ERROR_CODES.NOTIFICATION_ALL_PROVIDERS_FAILED,
452
+ INVALID_INPUT: ERROR_CODES.NOTIFICATION_INVALID_INPUT,
453
+ INVALID_RECIPIENT: ERROR_CODES.NOTIFICATION_INVALID_RECIPIENT,
454
+ INVALID_TEMPLATE: ERROR_CODES.NOTIFICATION_INVALID_TEMPLATE,
455
+ INVALID_PAYLOAD: ERROR_CODES.NOTIFICATION_INVALID_PAYLOAD,
456
+ MISSING_REQUIRED_FIELD: ERROR_CODES.NOTIFICATION_MISSING_REQUIRED_FIELD,
457
+ VALIDATION_FAILED: ERROR_CODES.NOTIFICATION_VALIDATION_FAILED,
458
+ USER_OPTED_OUT: ERROR_CODES.NOTIFICATION_USER_OPTED_OUT,
459
+ QUEUE_FULL: ERROR_CODES.NOTIFICATION_QUEUE_FULL,
460
+ QUEUE_PROCESSING_FAILED: ERROR_CODES.NOTIFICATION_QUEUE_PROCESSING_FAILED,
461
+ WEBHOOK_SIGNATURE_INVALID: ERROR_CODES.NOTIFICATION_WEBHOOK_SIGNATURE_INVALID,
462
+ WEBHOOK_VALIDATION_FAILED: ERROR_CODES.NOTIFICATION_WEBHOOK_VALIDATION_FAILED,
463
+ WEBHOOK_PROCESSING_FAILED: ERROR_CODES.NOTIFICATION_WEBHOOK_PROCESSING_FAILED,
464
+ TEMPLATE_NOT_FOUND: ERROR_CODES.NOTIFICATION_TEMPLATE_NOT_FOUND,
465
+ TEMPLATE_RENDER_FAILED: ERROR_CODES.NOTIFICATION_TEMPLATE_RENDER_FAILED,
466
+ UNKNOWN_ERROR: ERROR_CODES.NOTIFICATION_UNKNOWN_ERROR,
467
+ INITIALIZATION_FAILED: ERROR_CODES.NOTIFICATION_INITIALIZATION_FAILED
468
+ };
469
+ var ERROR_DEFINITIONS = {
470
+ // ===== API Package Error Definitions =====
471
+ // Authentication
472
+ [ERROR_CODES.AUTH_UNAUTHORIZED]: {
473
+ code: ERROR_CODES.AUTH_UNAUTHORIZED,
474
+ status: HTTP_STATUS.UNAUTHORIZED,
475
+ category: ERROR_CATEGORY.Authentication,
476
+ userMessage: "errors.auth.unauthorized",
477
+ severity: ERROR_SEVERITY.Medium,
478
+ retryable: false
479
+ },
480
+ [ERROR_CODES.AUTH_FORBIDDEN]: {
481
+ code: ERROR_CODES.AUTH_FORBIDDEN,
482
+ status: HTTP_STATUS.FORBIDDEN,
483
+ category: ERROR_CATEGORY.Authorization,
484
+ userMessage: "errors.auth.forbidden",
485
+ severity: ERROR_SEVERITY.Medium,
486
+ retryable: false
487
+ },
488
+ [ERROR_CODES.AUTH_TOKEN_EXPIRED]: {
489
+ code: ERROR_CODES.AUTH_TOKEN_EXPIRED,
490
+ status: HTTP_STATUS.UNAUTHORIZED,
491
+ category: ERROR_CATEGORY.Authentication,
492
+ userMessage: "errors.auth.token_expired",
493
+ severity: ERROR_SEVERITY.Medium,
494
+ retryable: false
495
+ },
496
+ [ERROR_CODES.AUTH_INVALID_CREDENTIALS]: {
497
+ code: ERROR_CODES.AUTH_INVALID_CREDENTIALS,
498
+ status: HTTP_STATUS.UNAUTHORIZED,
499
+ category: ERROR_CATEGORY.Authentication,
500
+ userMessage: "errors.auth.invalid_credentials",
501
+ severity: ERROR_SEVERITY.Medium,
502
+ retryable: false
503
+ },
504
+ // Rate Limiting
505
+ [ERROR_CODES.RATE_LIMIT_EXCEEDED]: {
506
+ code: ERROR_CODES.RATE_LIMIT_EXCEEDED,
507
+ status: HTTP_STATUS.TOO_MANY_REQUESTS,
508
+ category: ERROR_CATEGORY.RateLimit,
509
+ userMessage: "errors.rate_limit.exceeded",
510
+ severity: ERROR_SEVERITY.Medium,
511
+ retryable: true
512
+ },
513
+ // Resources
514
+ [ERROR_CODES.RESOURCE_NOT_FOUND]: {
515
+ code: ERROR_CODES.RESOURCE_NOT_FOUND,
516
+ status: HTTP_STATUS.NOT_FOUND,
517
+ category: ERROR_CATEGORY.NotFound,
518
+ userMessage: "errors.resource.not_found",
519
+ severity: ERROR_SEVERITY.Medium,
520
+ retryable: false
521
+ },
522
+ [ERROR_CODES.RESOURCE_CONFLICT]: {
523
+ code: ERROR_CODES.RESOURCE_CONFLICT,
524
+ status: HTTP_STATUS.CONFLICT,
525
+ category: ERROR_CATEGORY.Conflict,
526
+ userMessage: "errors.resource.conflict",
527
+ severity: ERROR_SEVERITY.Medium,
528
+ retryable: false
529
+ },
530
+ // Validation
531
+ [ERROR_CODES.API_VALIDATION_FAILED]: {
532
+ code: ERROR_CODES.API_VALIDATION_FAILED,
533
+ status: HTTP_STATUS.BAD_REQUEST,
534
+ category: ERROR_CATEGORY.Validation,
535
+ userMessage: "errors.validation.failed",
536
+ severity: ERROR_SEVERITY.Medium,
537
+ retryable: false
538
+ },
539
+ [ERROR_CODES.API_INVALID_INPUT]: {
540
+ code: ERROR_CODES.API_INVALID_INPUT,
541
+ status: HTTP_STATUS.BAD_REQUEST,
542
+ category: ERROR_CATEGORY.Validation,
543
+ userMessage: "errors.validation.invalid_input",
544
+ severity: ERROR_SEVERITY.Medium,
545
+ retryable: false
546
+ },
547
+ [ERROR_CODES.VALIDATION_ERROR]: {
548
+ code: ERROR_CODES.VALIDATION_ERROR,
549
+ status: HTTP_STATUS.BAD_REQUEST,
550
+ category: ERROR_CATEGORY.Validation,
551
+ userMessage: "errors.validation.error",
552
+ severity: ERROR_SEVERITY.Medium,
553
+ retryable: false
554
+ },
555
+ [ERROR_CODES.REQUIRED_FIELD_MISSING]: {
556
+ code: ERROR_CODES.REQUIRED_FIELD_MISSING,
557
+ status: HTTP_STATUS.BAD_REQUEST,
558
+ category: ERROR_CATEGORY.Validation,
559
+ userMessage: "errors.validation.required_field_missing",
560
+ severity: ERROR_SEVERITY.Medium,
561
+ retryable: false
562
+ },
563
+ [ERROR_CODES.INVALID_FORMAT]: {
564
+ code: ERROR_CODES.INVALID_FORMAT,
565
+ status: HTTP_STATUS.BAD_REQUEST,
566
+ category: ERROR_CATEGORY.Validation,
567
+ userMessage: "errors.validation.invalid_format",
568
+ severity: ERROR_SEVERITY.Medium,
569
+ retryable: false
570
+ },
571
+ [ERROR_CODES.VALIDATION_INVALID_FORMAT]: {
572
+ code: ERROR_CODES.VALIDATION_INVALID_FORMAT,
573
+ status: HTTP_STATUS.BAD_REQUEST,
574
+ category: ERROR_CATEGORY.Validation,
575
+ userMessage: "errors.validation.invalid_format",
576
+ severity: ERROR_SEVERITY.Medium,
577
+ retryable: false
578
+ },
579
+ [ERROR_CODES.STRING_TOO_SHORT]: {
580
+ code: ERROR_CODES.STRING_TOO_SHORT,
581
+ status: HTTP_STATUS.BAD_REQUEST,
582
+ category: ERROR_CATEGORY.Validation,
583
+ userMessage: "errors.validation.string_too_short",
584
+ severity: ERROR_SEVERITY.Medium,
585
+ retryable: false
586
+ },
587
+ [ERROR_CODES.STRING_TOO_LONG]: {
588
+ code: ERROR_CODES.STRING_TOO_LONG,
589
+ status: HTTP_STATUS.BAD_REQUEST,
590
+ category: ERROR_CATEGORY.Validation,
591
+ userMessage: "errors.validation.string_too_long",
592
+ severity: ERROR_SEVERITY.Medium,
593
+ retryable: false
594
+ },
595
+ // Network
596
+ [ERROR_CODES.NETWORK_ERROR]: {
597
+ code: ERROR_CODES.NETWORK_ERROR,
598
+ status: HTTP_STATUS.BAD_GATEWAY,
599
+ category: ERROR_CATEGORY.Network,
600
+ userMessage: "errors.network.error",
601
+ severity: ERROR_SEVERITY.High,
602
+ retryable: true
603
+ },
604
+ [ERROR_CODES.CONNECTION_FAILED]: {
605
+ code: ERROR_CODES.CONNECTION_FAILED,
606
+ status: 0,
607
+ category: ERROR_CATEGORY.Network,
608
+ userMessage: "errors.network.connection_failed",
609
+ severity: ERROR_SEVERITY.High,
610
+ retryable: true
611
+ },
612
+ [ERROR_CODES.NETWORK_CONNECTION_FAILED]: {
613
+ code: ERROR_CODES.NETWORK_CONNECTION_FAILED,
614
+ status: 0,
615
+ category: ERROR_CATEGORY.Network,
616
+ userMessage: "errors.network.connection_failed",
617
+ severity: ERROR_SEVERITY.High,
618
+ retryable: true
619
+ },
620
+ [ERROR_CODES.NETWORK_OFFLINE]: {
621
+ code: ERROR_CODES.NETWORK_OFFLINE,
622
+ status: 0,
623
+ category: ERROR_CATEGORY.Network,
624
+ userMessage: "errors.network.offline",
625
+ severity: ERROR_SEVERITY.High,
626
+ retryable: true
627
+ },
628
+ [ERROR_CODES.NETWORK_DNS_FAILED]: {
629
+ code: ERROR_CODES.NETWORK_DNS_FAILED,
630
+ status: 0,
631
+ category: ERROR_CATEGORY.Network,
632
+ userMessage: "errors.network.dns_failed",
633
+ severity: ERROR_SEVERITY.High,
634
+ retryable: true
635
+ },
636
+ [ERROR_CODES.NETWORK_TIMEOUT]: {
637
+ code: ERROR_CODES.NETWORK_TIMEOUT,
638
+ status: 0,
639
+ category: ERROR_CATEGORY.Network,
640
+ userMessage: "errors.network.timeout",
641
+ severity: ERROR_SEVERITY.High,
642
+ retryable: true
643
+ },
644
+ [ERROR_CODES.NETWORK_CONFIGURATION_INVALID]: {
645
+ code: ERROR_CODES.NETWORK_CONFIGURATION_INVALID,
646
+ status: HTTP_STATUS.INTERNAL_SERVER_ERROR,
647
+ category: ERROR_CATEGORY.Configuration,
648
+ userMessage: "errors.network.configuration_invalid",
649
+ severity: ERROR_SEVERITY.Critical,
650
+ retryable: true
651
+ },
652
+ [ERROR_CODES.NETWORK_PRESET_NOT_FOUND]: {
653
+ code: ERROR_CODES.NETWORK_PRESET_NOT_FOUND,
654
+ status: HTTP_STATUS.NOT_FOUND,
655
+ category: ERROR_CATEGORY.Configuration,
656
+ userMessage: "errors.network.preset_not_found",
657
+ severity: ERROR_SEVERITY.High,
658
+ retryable: true
659
+ },
660
+ // Server
661
+ [ERROR_CODES.SERVER_ERROR]: {
662
+ code: ERROR_CODES.SERVER_ERROR,
663
+ status: HTTP_STATUS.INTERNAL_SERVER_ERROR,
664
+ category: ERROR_CATEGORY.Server,
665
+ userMessage: "errors.server.error",
666
+ severity: ERROR_SEVERITY.High,
667
+ retryable: false
668
+ },
669
+ [ERROR_CODES.INTERNAL_SERVER_ERROR]: {
670
+ code: ERROR_CODES.INTERNAL_SERVER_ERROR,
671
+ status: HTTP_STATUS.INTERNAL_SERVER_ERROR,
672
+ category: ERROR_CATEGORY.Server,
673
+ userMessage: "errors.server.internal_error",
674
+ severity: ERROR_SEVERITY.High,
675
+ retryable: false
676
+ },
677
+ [ERROR_CODES.SERVICE_UNAVAILABLE]: {
678
+ code: ERROR_CODES.SERVICE_UNAVAILABLE,
679
+ status: HTTP_STATUS.SERVICE_UNAVAILABLE,
680
+ category: ERROR_CATEGORY.Server,
681
+ userMessage: "errors.server.service_unavailable",
682
+ severity: ERROR_SEVERITY.Medium,
683
+ retryable: true
684
+ },
685
+ // Cache
686
+ [ERROR_CODES.CACHE_READ_FAILED]: {
687
+ code: ERROR_CODES.CACHE_READ_FAILED,
688
+ status: HTTP_STATUS.INTERNAL_SERVER_ERROR,
689
+ category: ERROR_CATEGORY.Cache,
690
+ userMessage: "errors.cache.read_failed",
691
+ severity: ERROR_SEVERITY.Medium,
692
+ retryable: false
693
+ },
694
+ [ERROR_CODES.CACHE_WRITE_FAILED]: {
695
+ code: ERROR_CODES.CACHE_WRITE_FAILED,
696
+ status: HTTP_STATUS.INTERNAL_SERVER_ERROR,
697
+ category: ERROR_CATEGORY.Cache,
698
+ userMessage: "errors.cache.write_failed",
699
+ severity: ERROR_SEVERITY.Medium,
700
+ retryable: false
701
+ },
702
+ [ERROR_CODES.CACHE_INVALIDATION_FAILED]: {
703
+ code: ERROR_CODES.CACHE_INVALIDATION_FAILED,
704
+ status: HTTP_STATUS.INTERNAL_SERVER_ERROR,
705
+ category: ERROR_CATEGORY.Cache,
706
+ userMessage: "errors.cache.invalidation_failed",
707
+ severity: ERROR_SEVERITY.Medium,
708
+ retryable: false
709
+ },
710
+ [ERROR_CODES.CACHE_STORAGE_FAILED]: {
711
+ code: ERROR_CODES.CACHE_STORAGE_FAILED,
712
+ status: HTTP_STATUS.INTERNAL_SERVER_ERROR,
713
+ category: ERROR_CATEGORY.Cache,
714
+ userMessage: "errors.cache.storage_failed",
715
+ severity: ERROR_SEVERITY.Medium,
716
+ retryable: false
717
+ },
718
+ [ERROR_CODES.CACHE_RETRIEVAL_FAILED]: {
719
+ code: ERROR_CODES.CACHE_RETRIEVAL_FAILED,
720
+ status: HTTP_STATUS.INTERNAL_SERVER_ERROR,
721
+ category: ERROR_CATEGORY.Cache,
722
+ userMessage: "errors.cache.retrieval_failed",
723
+ severity: ERROR_SEVERITY.Medium,
724
+ retryable: false
725
+ },
726
+ // Retry
727
+ [ERROR_CODES.RETRY_LIMIT_EXCEEDED]: {
728
+ code: ERROR_CODES.RETRY_LIMIT_EXCEEDED,
729
+ status: HTTP_STATUS.SERVICE_UNAVAILABLE,
730
+ category: ERROR_CATEGORY.Retry,
731
+ userMessage: "errors.retry.limit_exceeded",
732
+ severity: ERROR_SEVERITY.Medium,
733
+ retryable: true
734
+ },
735
+ [ERROR_CODES.RETRY_FAILED]: {
736
+ code: ERROR_CODES.RETRY_FAILED,
737
+ status: HTTP_STATUS.INTERNAL_SERVER_ERROR,
738
+ category: ERROR_CATEGORY.Retry,
739
+ userMessage: "errors.retry.failed",
740
+ severity: ERROR_SEVERITY.Medium,
741
+ retryable: true
742
+ },
743
+ [ERROR_CODES.RETRY_EXHAUSTED]: {
744
+ code: ERROR_CODES.RETRY_EXHAUSTED,
745
+ status: HTTP_STATUS.SERVICE_UNAVAILABLE,
746
+ category: ERROR_CATEGORY.Retry,
747
+ userMessage: "errors.retry.exhausted",
748
+ severity: ERROR_SEVERITY.Medium,
749
+ retryable: true
750
+ },
751
+ [ERROR_CODES.RETRY_STRATEGY_INVALID]: {
752
+ code: ERROR_CODES.RETRY_STRATEGY_INVALID,
753
+ status: HTTP_STATUS.BAD_REQUEST,
754
+ category: ERROR_CATEGORY.Configuration,
755
+ userMessage: "errors.retry.strategy_invalid",
756
+ severity: ERROR_SEVERITY.Medium,
757
+ retryable: true
758
+ },
759
+ // Strategy
760
+ [ERROR_CODES.STRATEGY_INVALID]: {
761
+ code: ERROR_CODES.STRATEGY_INVALID,
762
+ status: HTTP_STATUS.BAD_REQUEST,
763
+ category: ERROR_CATEGORY.Configuration,
764
+ userMessage: "errors.strategy.invalid",
765
+ severity: ERROR_SEVERITY.Medium,
766
+ retryable: false
767
+ },
768
+ [ERROR_CODES.STRATEGY_CONFLICT]: {
769
+ code: ERROR_CODES.STRATEGY_CONFLICT,
770
+ status: HTTP_STATUS.CONFLICT,
771
+ category: ERROR_CATEGORY.Configuration,
772
+ userMessage: "errors.strategy.conflict",
773
+ severity: ERROR_SEVERITY.Medium,
774
+ retryable: false
775
+ },
776
+ [ERROR_CODES.STRATEGY_EXECUTION_FAILED]: {
777
+ code: ERROR_CODES.STRATEGY_EXECUTION_FAILED,
778
+ status: HTTP_STATUS.INTERNAL_SERVER_ERROR,
779
+ category: ERROR_CATEGORY.Configuration,
780
+ userMessage: "errors.strategy.execution_failed",
781
+ severity: ERROR_SEVERITY.Medium,
782
+ retryable: false
783
+ },
784
+ // Headers
785
+ [ERROR_CODES.HEADERS_ENRICHMENT_FAILED]: {
786
+ code: ERROR_CODES.HEADERS_ENRICHMENT_FAILED,
787
+ status: HTTP_STATUS.INTERNAL_SERVER_ERROR,
788
+ category: ERROR_CATEGORY.Headers,
789
+ userMessage: "errors.headers.enrichment_failed",
790
+ severity: ERROR_SEVERITY.Medium,
791
+ retryable: false
792
+ },
793
+ [ERROR_CODES.HEADERS_VALIDATION_FAILED]: {
794
+ code: ERROR_CODES.HEADERS_VALIDATION_FAILED,
795
+ status: HTTP_STATUS.BAD_REQUEST,
796
+ category: ERROR_CATEGORY.Headers,
797
+ userMessage: "errors.headers.validation_failed",
798
+ severity: ERROR_SEVERITY.Medium,
799
+ retryable: false
800
+ },
801
+ [ERROR_CODES.HEADERS_MERGE_CONFLICT]: {
802
+ code: ERROR_CODES.HEADERS_MERGE_CONFLICT,
803
+ status: HTTP_STATUS.CONFLICT,
804
+ category: ERROR_CATEGORY.Headers,
805
+ userMessage: "errors.headers.merge_conflict",
806
+ severity: ERROR_SEVERITY.Medium,
807
+ retryable: false
808
+ },
809
+ // Regional
810
+ [ERROR_CODES.REGION_DETECTION_FAILED]: {
811
+ code: ERROR_CODES.REGION_DETECTION_FAILED,
812
+ status: HTTP_STATUS.INTERNAL_SERVER_ERROR,
813
+ category: ERROR_CATEGORY.Network,
814
+ userMessage: "errors.regional.detection_failed",
815
+ severity: ERROR_SEVERITY.Medium,
816
+ retryable: false
817
+ },
818
+ [ERROR_CODES.REGIONAL_PRESET_NOT_FOUND]: {
819
+ code: ERROR_CODES.REGIONAL_PRESET_NOT_FOUND,
820
+ status: HTTP_STATUS.NOT_FOUND,
821
+ category: ERROR_CATEGORY.Configuration,
822
+ userMessage: "errors.regional.preset_not_found",
823
+ severity: ERROR_SEVERITY.Medium,
824
+ retryable: false
825
+ },
826
+ // External Services
827
+ [ERROR_CODES.EXTERNAL_SERVICE_ERROR]: {
828
+ code: ERROR_CODES.EXTERNAL_SERVICE_ERROR,
829
+ status: HTTP_STATUS.BAD_GATEWAY,
830
+ category: ERROR_CATEGORY.Server,
831
+ userMessage: "errors.external.service_error",
832
+ severity: ERROR_SEVERITY.Medium,
833
+ retryable: false
834
+ },
835
+ // Timeout
836
+ [ERROR_CODES.TIMEOUT]: {
837
+ code: ERROR_CODES.TIMEOUT,
838
+ status: HTTP_STATUS.REQUEST_TIMEOUT,
839
+ category: ERROR_CATEGORY.Timeout,
840
+ userMessage: "errors.timeout.generic",
841
+ severity: ERROR_SEVERITY.High,
842
+ retryable: true
843
+ },
844
+ // Debugging
845
+ [ERROR_CODES.DEBUG_TRACKING_FAILED]: {
846
+ code: ERROR_CODES.DEBUG_TRACKING_FAILED,
847
+ status: HTTP_STATUS.INTERNAL_SERVER_ERROR,
848
+ category: ERROR_CATEGORY.Client,
849
+ userMessage: "errors.debug.tracking_failed",
850
+ severity: ERROR_SEVERITY.Medium,
851
+ retryable: false
852
+ },
853
+ [ERROR_CODES.DEBUG_OVERRIDE_FAILED]: {
854
+ code: ERROR_CODES.DEBUG_OVERRIDE_FAILED,
855
+ status: HTTP_STATUS.INTERNAL_SERVER_ERROR,
856
+ category: ERROR_CATEGORY.Configuration,
857
+ userMessage: "errors.debug.override_failed",
858
+ severity: ERROR_SEVERITY.Medium,
859
+ retryable: false
860
+ },
861
+ [ERROR_CODES.DEBUG_CONFLICT_DETECTED]: {
862
+ code: ERROR_CODES.DEBUG_CONFLICT_DETECTED,
863
+ status: HTTP_STATUS.CONFLICT,
864
+ category: ERROR_CATEGORY.Configuration,
865
+ userMessage: "errors.debug.conflict_detected",
866
+ severity: ERROR_SEVERITY.Medium,
867
+ retryable: false
868
+ },
869
+ // Endpoint
870
+ [ERROR_CODES.ENDPOINT_BUILD_FAILED]: {
871
+ code: ERROR_CODES.ENDPOINT_BUILD_FAILED,
872
+ status: HTTP_STATUS.INTERNAL_SERVER_ERROR,
873
+ category: ERROR_CATEGORY.Configuration,
874
+ userMessage: "errors.endpoint.build_failed",
875
+ severity: ERROR_SEVERITY.Medium,
876
+ retryable: false
877
+ },
878
+ [ERROR_CODES.ENDPOINT_NOT_FOUND]: {
879
+ code: ERROR_CODES.ENDPOINT_NOT_FOUND,
880
+ status: HTTP_STATUS.NOT_FOUND,
881
+ category: ERROR_CATEGORY.NotFound,
882
+ userMessage: "errors.endpoint.not_found",
883
+ severity: ERROR_SEVERITY.Medium,
884
+ retryable: false
885
+ },
886
+ [ERROR_CODES.ENDPOINT_INVALID_CONFIG]: {
887
+ code: ERROR_CODES.ENDPOINT_INVALID_CONFIG,
888
+ status: HTTP_STATUS.BAD_REQUEST,
889
+ category: ERROR_CATEGORY.Configuration,
890
+ userMessage: "errors.endpoint.invalid_config",
891
+ severity: ERROR_SEVERITY.Critical,
892
+ retryable: false
893
+ },
894
+ // Event
895
+ [ERROR_CODES.EVENT_HANDLER_FAILED]: {
896
+ code: ERROR_CODES.EVENT_HANDLER_FAILED,
897
+ status: HTTP_STATUS.INTERNAL_SERVER_ERROR,
898
+ category: ERROR_CATEGORY.Client,
899
+ userMessage: "errors.event.handler_failed",
900
+ severity: ERROR_SEVERITY.Medium,
901
+ retryable: false
902
+ },
903
+ [ERROR_CODES.EVENT_EMISSION_FAILED]: {
904
+ code: ERROR_CODES.EVENT_EMISSION_FAILED,
905
+ status: HTTP_STATUS.INTERNAL_SERVER_ERROR,
906
+ category: ERROR_CATEGORY.Client,
907
+ userMessage: "errors.event.emission_failed",
908
+ severity: ERROR_SEVERITY.Medium,
909
+ retryable: false
910
+ },
911
+ [ERROR_CODES.MONITORING_FAILED]: {
912
+ code: ERROR_CODES.MONITORING_FAILED,
913
+ status: HTTP_STATUS.INTERNAL_SERVER_ERROR,
914
+ category: ERROR_CATEGORY.Client,
915
+ userMessage: "errors.monitoring.failed",
916
+ severity: ERROR_SEVERITY.Medium,
917
+ retryable: false
918
+ },
919
+ // Polling
920
+ [ERROR_CODES.POLLING_CANCELLED]: {
921
+ code: ERROR_CODES.POLLING_CANCELLED,
922
+ status: 0,
923
+ category: ERROR_CATEGORY.Client,
924
+ userMessage: "errors.polling.cancelled",
925
+ severity: ERROR_SEVERITY.Low,
926
+ retryable: false
927
+ },
928
+ [ERROR_CODES.POLLING_TIMEOUT]: {
929
+ code: ERROR_CODES.POLLING_TIMEOUT,
930
+ status: HTTP_STATUS.REQUEST_TIMEOUT,
931
+ category: ERROR_CATEGORY.Timeout,
932
+ userMessage: "errors.polling.timeout",
933
+ severity: ERROR_SEVERITY.High,
934
+ retryable: true
935
+ },
936
+ [ERROR_CODES.POLLING_INVALID_CONFIG]: {
937
+ code: ERROR_CODES.POLLING_INVALID_CONFIG,
938
+ status: HTTP_STATUS.BAD_REQUEST,
939
+ category: ERROR_CATEGORY.Configuration,
940
+ userMessage: "errors.polling.invalid_config",
941
+ severity: ERROR_SEVERITY.Critical,
942
+ retryable: false
943
+ },
944
+ // PubSub
945
+ [ERROR_CODES.PUBSUB_SUBSCRIPTION_FAILED]: {
946
+ code: ERROR_CODES.PUBSUB_SUBSCRIPTION_FAILED,
947
+ status: HTTP_STATUS.INTERNAL_SERVER_ERROR,
948
+ category: ERROR_CATEGORY.Client,
949
+ userMessage: "errors.pubsub.subscription_failed",
950
+ severity: ERROR_SEVERITY.Medium,
951
+ retryable: false
952
+ },
953
+ [ERROR_CODES.PUBSUB_PUBLICATION_FAILED]: {
954
+ code: ERROR_CODES.PUBSUB_PUBLICATION_FAILED,
955
+ status: HTTP_STATUS.INTERNAL_SERVER_ERROR,
956
+ category: ERROR_CATEGORY.Client,
957
+ userMessage: "errors.pubsub.publication_failed",
958
+ severity: ERROR_SEVERITY.Medium,
959
+ retryable: false
960
+ },
961
+ [ERROR_CODES.PUBSUB_INVALID_TOPIC]: {
962
+ code: ERROR_CODES.PUBSUB_INVALID_TOPIC,
963
+ status: HTTP_STATUS.BAD_REQUEST,
964
+ category: ERROR_CATEGORY.Validation,
965
+ userMessage: "errors.pubsub.invalid_topic",
966
+ severity: ERROR_SEVERITY.Medium,
967
+ retryable: false
968
+ },
969
+ [ERROR_CODES.PUBSUB_CHANNEL_ERROR]: {
970
+ code: ERROR_CODES.PUBSUB_CHANNEL_ERROR,
971
+ status: HTTP_STATUS.INTERNAL_SERVER_ERROR,
972
+ category: ERROR_CATEGORY.Client,
973
+ userMessage: "errors.pubsub.channel_error",
974
+ severity: ERROR_SEVERITY.Medium,
975
+ retryable: false
976
+ },
977
+ // Revalidation
978
+ [ERROR_CODES.REVALIDATION_FAILED]: {
979
+ code: ERROR_CODES.REVALIDATION_FAILED,
980
+ status: HTTP_STATUS.INTERNAL_SERVER_ERROR,
981
+ category: ERROR_CATEGORY.Cache,
982
+ userMessage: "errors.revalidation.failed",
983
+ severity: ERROR_SEVERITY.Medium,
984
+ retryable: false
985
+ },
986
+ [ERROR_CODES.REVALIDATION_IN_PROGRESS]: {
987
+ code: ERROR_CODES.REVALIDATION_IN_PROGRESS,
988
+ status: HTTP_STATUS.CONFLICT,
989
+ category: ERROR_CATEGORY.Cache,
990
+ userMessage: "errors.revalidation.in_progress",
991
+ severity: ERROR_SEVERITY.Medium,
992
+ retryable: false
993
+ },
994
+ // Context
995
+ [ERROR_CODES.CONTEXT_OPERATION_FAILED]: {
996
+ code: ERROR_CODES.CONTEXT_OPERATION_FAILED,
997
+ status: HTTP_STATUS.INTERNAL_SERVER_ERROR,
998
+ category: ERROR_CATEGORY.Client,
999
+ userMessage: "errors.context.operation_failed",
1000
+ severity: ERROR_SEVERITY.Medium,
1001
+ retryable: false
1002
+ },
1003
+ // Request
1004
+ [ERROR_CODES.REQUEST_TIMEOUT]: {
1005
+ code: ERROR_CODES.REQUEST_TIMEOUT,
1006
+ status: HTTP_STATUS.REQUEST_TIMEOUT,
1007
+ category: ERROR_CATEGORY.Timeout,
1008
+ userMessage: "errors.request.timeout",
1009
+ severity: ERROR_SEVERITY.High,
1010
+ retryable: true
1011
+ },
1012
+ [ERROR_CODES.REQUEST_ABORTED]: {
1013
+ code: ERROR_CODES.REQUEST_ABORTED,
1014
+ status: 0,
1015
+ category: ERROR_CATEGORY.Client,
1016
+ userMessage: "errors.request.aborted",
1017
+ severity: ERROR_SEVERITY.Medium,
1018
+ retryable: true
1019
+ },
1020
+ [ERROR_CODES.REQUEST_INVALID_PARAMS]: {
1021
+ code: ERROR_CODES.REQUEST_INVALID_PARAMS,
1022
+ status: HTTP_STATUS.BAD_REQUEST,
1023
+ category: ERROR_CATEGORY.Validation,
1024
+ userMessage: "errors.request.invalid_params",
1025
+ severity: ERROR_SEVERITY.Medium,
1026
+ retryable: false
1027
+ },
1028
+ [ERROR_CODES.REQUEST_PREPARATION_FAILED]: {
1029
+ code: ERROR_CODES.REQUEST_PREPARATION_FAILED,
1030
+ status: HTTP_STATUS.INTERNAL_SERVER_ERROR,
1031
+ category: ERROR_CATEGORY.Client,
1032
+ userMessage: "errors.request.preparation_failed",
1033
+ severity: ERROR_SEVERITY.Medium,
1034
+ retryable: false
1035
+ },
1036
+ // Response
1037
+ [ERROR_CODES.RESPONSE_INVALID_FORMAT]: {
1038
+ code: ERROR_CODES.RESPONSE_INVALID_FORMAT,
1039
+ status: HTTP_STATUS.INTERNAL_SERVER_ERROR,
1040
+ category: ERROR_CATEGORY.Server,
1041
+ userMessage: "errors.response.invalid_format",
1042
+ severity: ERROR_SEVERITY.Medium,
1043
+ retryable: false
1044
+ },
1045
+ [ERROR_CODES.RESPONSE_PARSING_FAILED]: {
1046
+ code: ERROR_CODES.RESPONSE_PARSING_FAILED,
1047
+ status: HTTP_STATUS.INTERNAL_SERVER_ERROR,
1048
+ category: ERROR_CATEGORY.Server,
1049
+ userMessage: "errors.response.parsing_failed",
1050
+ severity: ERROR_SEVERITY.Medium,
1051
+ retryable: false
1052
+ },
1053
+ // Client
1054
+ [ERROR_CODES.CLIENT_ERROR]: {
1055
+ code: ERROR_CODES.CLIENT_ERROR,
1056
+ status: HTTP_STATUS.BAD_REQUEST,
1057
+ category: ERROR_CATEGORY.Client,
1058
+ userMessage: "errors.client.error",
1059
+ severity: ERROR_SEVERITY.Medium,
1060
+ retryable: false
1061
+ },
1062
+ [ERROR_CODES.CLIENT_INITIALIZATION_FAILED]: {
1063
+ code: ERROR_CODES.CLIENT_INITIALIZATION_FAILED,
1064
+ status: HTTP_STATUS.INTERNAL_SERVER_ERROR,
1065
+ category: ERROR_CATEGORY.Client,
1066
+ userMessage: "errors.client.initialization_failed",
1067
+ severity: ERROR_SEVERITY.Medium,
1068
+ retryable: false
1069
+ },
1070
+ [ERROR_CODES.CLIENT_INVALID_CONFIG]: {
1071
+ code: ERROR_CODES.CLIENT_INVALID_CONFIG,
1072
+ status: HTTP_STATUS.INTERNAL_SERVER_ERROR,
1073
+ category: ERROR_CATEGORY.Client,
1074
+ userMessage: "errors.client.invalid_config",
1075
+ severity: ERROR_SEVERITY.Critical,
1076
+ retryable: false
1077
+ },
1078
+ [ERROR_CODES.CLIENT_MISSING_BASE_URL]: {
1079
+ code: ERROR_CODES.CLIENT_MISSING_BASE_URL,
1080
+ status: HTTP_STATUS.INTERNAL_SERVER_ERROR,
1081
+ category: ERROR_CATEGORY.Configuration,
1082
+ userMessage: "errors.client.missing_base_url",
1083
+ severity: ERROR_SEVERITY.Critical,
1084
+ retryable: false
1085
+ },
1086
+ [ERROR_CODES.CLIENT_CANCELLED]: {
1087
+ code: ERROR_CODES.CLIENT_CANCELLED,
1088
+ status: 0,
1089
+ category: ERROR_CATEGORY.Client,
1090
+ userMessage: "errors.client.cancelled",
1091
+ severity: ERROR_SEVERITY.Low,
1092
+ retryable: true
1093
+ },
1094
+ // Configuration
1095
+ [ERROR_CODES.CONFIG_VALIDATION_FAILED]: {
1096
+ code: ERROR_CODES.CONFIG_VALIDATION_FAILED,
1097
+ status: HTTP_STATUS.INTERNAL_SERVER_ERROR,
1098
+ category: ERROR_CATEGORY.Configuration,
1099
+ userMessage: "errors.config.validation_failed",
1100
+ severity: ERROR_SEVERITY.Critical,
1101
+ retryable: false
1102
+ },
1103
+ [ERROR_CODES.HEADER_PROCESSING_FAILED]: {
1104
+ code: ERROR_CODES.HEADER_PROCESSING_FAILED,
1105
+ status: HTTP_STATUS.INTERNAL_SERVER_ERROR,
1106
+ category: ERROR_CATEGORY.Headers,
1107
+ userMessage: "errors.headers.processing_failed",
1108
+ severity: ERROR_SEVERITY.Medium,
1109
+ retryable: false
1110
+ },
1111
+ [ERROR_CODES.NETWORK_OVERRIDE_FAILED]: {
1112
+ code: ERROR_CODES.NETWORK_OVERRIDE_FAILED,
1113
+ status: HTTP_STATUS.INTERNAL_SERVER_ERROR,
1114
+ category: ERROR_CATEGORY.Network,
1115
+ userMessage: "errors.network.override_failed",
1116
+ severity: ERROR_SEVERITY.High,
1117
+ retryable: true
1118
+ },
1119
+ // Generic
1120
+ [ERROR_CODES.UNKNOWN_ERROR]: {
1121
+ code: ERROR_CODES.UNKNOWN_ERROR,
1122
+ status: HTTP_STATUS.INTERNAL_SERVER_ERROR,
1123
+ category: ERROR_CATEGORY.Unknown,
1124
+ userMessage: "errors.unknown",
1125
+ severity: ERROR_SEVERITY.Medium,
1126
+ retryable: false
1127
+ },
1128
+ // ===== Notification Package Error Definitions =====
1129
+ // Provider errors (retryable)
1130
+ [ERROR_CODES.NOTIFICATION_PROVIDER_SEND_FAILED]: {
1131
+ code: ERROR_CODES.NOTIFICATION_PROVIDER_SEND_FAILED,
1132
+ status: HTTP_STATUS.INTERNAL_SERVER_ERROR,
1133
+ category: ERROR_CATEGORY.Provider,
1134
+ severity: ERROR_SEVERITY.High,
1135
+ retryable: true,
1136
+ userMessage: "errors.notification.provider.send_failed"
1137
+ },
1138
+ [ERROR_CODES.NOTIFICATION_PROVIDER_CONFIGURATION_INVALID]: {
1139
+ code: ERROR_CODES.NOTIFICATION_PROVIDER_CONFIGURATION_INVALID,
1140
+ status: HTTP_STATUS.INTERNAL_SERVER_ERROR,
1141
+ category: ERROR_CATEGORY.Configuration,
1142
+ severity: ERROR_SEVERITY.Critical,
1143
+ retryable: false,
1144
+ userMessage: "errors.notification.provider.configuration_invalid"
1145
+ },
1146
+ [ERROR_CODES.NOTIFICATION_PROVIDER_RATE_LIMIT]: {
1147
+ code: ERROR_CODES.NOTIFICATION_PROVIDER_RATE_LIMIT,
1148
+ status: HTTP_STATUS.TOO_MANY_REQUESTS,
1149
+ category: ERROR_CATEGORY.RateLimit,
1150
+ severity: ERROR_SEVERITY.Medium,
1151
+ retryable: true,
1152
+ userMessage: "errors.notification.provider.rate_limit"
1153
+ },
1154
+ [ERROR_CODES.NOTIFICATION_PROVIDER_AUTH_FAILED]: {
1155
+ code: ERROR_CODES.NOTIFICATION_PROVIDER_AUTH_FAILED,
1156
+ status: HTTP_STATUS.UNAUTHORIZED,
1157
+ category: ERROR_CATEGORY.Provider,
1158
+ severity: ERROR_SEVERITY.Critical,
1159
+ retryable: false,
1160
+ userMessage: "errors.notification.provider.auth_failed"
1161
+ },
1162
+ [ERROR_CODES.NOTIFICATION_PROVIDER_TIMEOUT]: {
1163
+ code: ERROR_CODES.NOTIFICATION_PROVIDER_TIMEOUT,
1164
+ status: HTTP_STATUS.GATEWAY_TIMEOUT,
1165
+ category: ERROR_CATEGORY.Network,
1166
+ severity: ERROR_SEVERITY.Medium,
1167
+ retryable: true,
1168
+ userMessage: "errors.notification.provider.timeout"
1169
+ },
1170
+ [ERROR_CODES.NOTIFICATION_PROVIDER_UNAVAILABLE]: {
1171
+ code: ERROR_CODES.NOTIFICATION_PROVIDER_UNAVAILABLE,
1172
+ status: HTTP_STATUS.SERVICE_UNAVAILABLE,
1173
+ category: ERROR_CATEGORY.Provider,
1174
+ severity: ERROR_SEVERITY.High,
1175
+ retryable: true,
1176
+ userMessage: "errors.notification.provider.unavailable"
1177
+ },
1178
+ [ERROR_CODES.NOTIFICATION_PROVIDER_FEATURE_NOT_SUPPORTED]: {
1179
+ code: ERROR_CODES.NOTIFICATION_PROVIDER_FEATURE_NOT_SUPPORTED,
1180
+ status: HTTP_STATUS.NOT_IMPLEMENTED,
1181
+ category: ERROR_CATEGORY.Provider,
1182
+ severity: ERROR_SEVERITY.Low,
1183
+ retryable: false,
1184
+ userMessage: "errors.notification.provider.feature_not_supported"
1185
+ },
1186
+ [ERROR_CODES.NOTIFICATION_ALL_PROVIDERS_FAILED]: {
1187
+ code: ERROR_CODES.NOTIFICATION_ALL_PROVIDERS_FAILED,
1188
+ status: HTTP_STATUS.SERVICE_UNAVAILABLE,
1189
+ category: ERROR_CATEGORY.Provider,
1190
+ severity: ERROR_SEVERITY.Critical,
1191
+ retryable: false,
1192
+ userMessage: "errors.notification.all_providers_failed"
1193
+ },
1194
+ // Validation errors (non-retryable)
1195
+ [ERROR_CODES.NOTIFICATION_INVALID_INPUT]: {
1196
+ code: ERROR_CODES.NOTIFICATION_INVALID_INPUT,
1197
+ status: HTTP_STATUS.BAD_REQUEST,
1198
+ category: ERROR_CATEGORY.Validation,
1199
+ severity: ERROR_SEVERITY.Medium,
1200
+ retryable: false,
1201
+ userMessage: "errors.notification.validation.invalid_input"
1202
+ },
1203
+ [ERROR_CODES.NOTIFICATION_INVALID_RECIPIENT]: {
1204
+ code: ERROR_CODES.NOTIFICATION_INVALID_RECIPIENT,
1205
+ status: HTTP_STATUS.BAD_REQUEST,
1206
+ category: ERROR_CATEGORY.Validation,
1207
+ severity: ERROR_SEVERITY.Medium,
1208
+ retryable: false,
1209
+ userMessage: "errors.notification.validation.invalid_recipient"
1210
+ },
1211
+ [ERROR_CODES.NOTIFICATION_INVALID_TEMPLATE]: {
1212
+ code: ERROR_CODES.NOTIFICATION_INVALID_TEMPLATE,
1213
+ status: HTTP_STATUS.BAD_REQUEST,
1214
+ category: ERROR_CATEGORY.Template,
1215
+ severity: ERROR_SEVERITY.Medium,
1216
+ retryable: false,
1217
+ userMessage: "errors.notification.validation.invalid_template"
1218
+ },
1219
+ [ERROR_CODES.NOTIFICATION_INVALID_PAYLOAD]: {
1220
+ code: ERROR_CODES.NOTIFICATION_INVALID_PAYLOAD,
1221
+ status: HTTP_STATUS.BAD_REQUEST,
1222
+ category: ERROR_CATEGORY.Validation,
1223
+ severity: ERROR_SEVERITY.Medium,
1224
+ retryable: false,
1225
+ userMessage: "errors.notification.validation.invalid_payload"
1226
+ },
1227
+ [ERROR_CODES.NOTIFICATION_MISSING_REQUIRED_FIELD]: {
1228
+ code: ERROR_CODES.NOTIFICATION_MISSING_REQUIRED_FIELD,
1229
+ status: HTTP_STATUS.BAD_REQUEST,
1230
+ category: ERROR_CATEGORY.Validation,
1231
+ severity: ERROR_SEVERITY.Medium,
1232
+ retryable: false,
1233
+ userMessage: "errors.notification.validation.required_field_missing"
1234
+ },
1235
+ [ERROR_CODES.NOTIFICATION_VALIDATION_FAILED]: {
1236
+ code: ERROR_CODES.NOTIFICATION_VALIDATION_FAILED,
1237
+ status: HTTP_STATUS.BAD_REQUEST,
1238
+ category: ERROR_CATEGORY.Validation,
1239
+ severity: ERROR_SEVERITY.Medium,
1240
+ retryable: false,
1241
+ userMessage: "errors.notification.validation.failed"
1242
+ },
1243
+ // User Preferences
1244
+ [ERROR_CODES.NOTIFICATION_USER_OPTED_OUT]: {
1245
+ code: ERROR_CODES.NOTIFICATION_USER_OPTED_OUT,
1246
+ status: HTTP_STATUS.OK,
1247
+ category: ERROR_CATEGORY.Validation,
1248
+ severity: ERROR_SEVERITY.Low,
1249
+ retryable: false,
1250
+ userMessage: "errors.notification.user.opted_out"
1251
+ },
1252
+ // Queue errors (retryable)
1253
+ [ERROR_CODES.NOTIFICATION_QUEUE_FULL]: {
1254
+ code: ERROR_CODES.NOTIFICATION_QUEUE_FULL,
1255
+ status: HTTP_STATUS.SERVICE_UNAVAILABLE,
1256
+ category: ERROR_CATEGORY.Queue,
1257
+ severity: ERROR_SEVERITY.High,
1258
+ retryable: true,
1259
+ userMessage: "errors.notification.queue.full"
1260
+ },
1261
+ [ERROR_CODES.NOTIFICATION_QUEUE_PROCESSING_FAILED]: {
1262
+ code: ERROR_CODES.NOTIFICATION_QUEUE_PROCESSING_FAILED,
1263
+ status: HTTP_STATUS.INTERNAL_SERVER_ERROR,
1264
+ category: ERROR_CATEGORY.Queue,
1265
+ severity: ERROR_SEVERITY.High,
1266
+ retryable: true,
1267
+ userMessage: "errors.notification.queue.processing_failed"
1268
+ },
1269
+ // Webhook errors
1270
+ [ERROR_CODES.NOTIFICATION_WEBHOOK_SIGNATURE_INVALID]: {
1271
+ code: ERROR_CODES.NOTIFICATION_WEBHOOK_SIGNATURE_INVALID,
1272
+ status: HTTP_STATUS.UNAUTHORIZED,
1273
+ category: ERROR_CATEGORY.Webhook,
1274
+ severity: ERROR_SEVERITY.High,
1275
+ retryable: false,
1276
+ userMessage: "errors.notification.webhook.signature_invalid"
1277
+ },
1278
+ [ERROR_CODES.NOTIFICATION_WEBHOOK_VALIDATION_FAILED]: {
1279
+ code: ERROR_CODES.NOTIFICATION_WEBHOOK_VALIDATION_FAILED,
1280
+ status: HTTP_STATUS.BAD_REQUEST,
1281
+ category: ERROR_CATEGORY.Webhook,
1282
+ severity: ERROR_SEVERITY.Medium,
1283
+ retryable: false,
1284
+ userMessage: "errors.notification.webhook.validation_failed"
1285
+ },
1286
+ [ERROR_CODES.NOTIFICATION_WEBHOOK_PROCESSING_FAILED]: {
1287
+ code: ERROR_CODES.NOTIFICATION_WEBHOOK_PROCESSING_FAILED,
1288
+ status: HTTP_STATUS.INTERNAL_SERVER_ERROR,
1289
+ category: ERROR_CATEGORY.Webhook,
1290
+ severity: ERROR_SEVERITY.High,
1291
+ retryable: true,
1292
+ userMessage: "errors.notification.webhook.processing_failed"
1293
+ },
1294
+ // Template errors
1295
+ [ERROR_CODES.NOTIFICATION_TEMPLATE_NOT_FOUND]: {
1296
+ code: ERROR_CODES.NOTIFICATION_TEMPLATE_NOT_FOUND,
1297
+ status: HTTP_STATUS.NOT_FOUND,
1298
+ category: ERROR_CATEGORY.Template,
1299
+ severity: ERROR_SEVERITY.High,
1300
+ retryable: false,
1301
+ userMessage: "errors.notification.template.not_found"
1302
+ },
1303
+ [ERROR_CODES.NOTIFICATION_TEMPLATE_RENDER_FAILED]: {
1304
+ code: ERROR_CODES.NOTIFICATION_TEMPLATE_RENDER_FAILED,
1305
+ status: HTTP_STATUS.INTERNAL_SERVER_ERROR,
1306
+ category: ERROR_CATEGORY.Template,
1307
+ severity: ERROR_SEVERITY.High,
1308
+ retryable: false,
1309
+ userMessage: "errors.notification.template.render_failed"
1310
+ },
1311
+ // General notification errors
1312
+ [ERROR_CODES.NOTIFICATION_UNKNOWN_ERROR]: {
1313
+ code: ERROR_CODES.NOTIFICATION_UNKNOWN_ERROR,
1314
+ status: HTTP_STATUS.INTERNAL_SERVER_ERROR,
1315
+ category: ERROR_CATEGORY.Unknown,
1316
+ severity: ERROR_SEVERITY.Medium,
1317
+ retryable: false,
1318
+ userMessage: "errors.notification.unknown"
1319
+ },
1320
+ [ERROR_CODES.NOTIFICATION_INITIALIZATION_FAILED]: {
1321
+ code: ERROR_CODES.NOTIFICATION_INITIALIZATION_FAILED,
1322
+ status: HTTP_STATUS.INTERNAL_SERVER_ERROR,
1323
+ category: ERROR_CATEGORY.Configuration,
1324
+ severity: ERROR_SEVERITY.Critical,
1325
+ retryable: false,
1326
+ userMessage: "errors.notification.initialization_failed"
1327
+ }
1328
+ };
66
1329
 
67
- export { ERROR_CATEGORY, ERROR_SEVERITY, ERROR_TYPE };
1330
+ 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
1331
  //# sourceMappingURL=index.js.map
69
1332
  //# sourceMappingURL=index.js.map