@plyaz/types 1.27.5 → 1.27.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/errors/enums.ts","../../src/http/constants.ts","../../src/errors/codes.ts","../../src/auth/enums.ts","../../src/auth/schemas.ts","../../src/auth/types.ts"],"names":["AUTH_PROVIDER_TYPE","AUTH_PROVIDER","USER_ROLE_STATUS","TOKEN_TYPE"],"mappings":";;;;;AAgDO,IAAM,cAAA,GAAiB;AAAA;AAAA,EAE5B,GAAA,EAAK,KAAA;AAAA;AAAA,EAGL,MAAA,EAAQ,QAAA;AAAA;AAAA,EAGR,IAAA,EAAM,MAIR,CAAA;AAcO,IAAM,cAAA,GAAiB;AAAA,EAchB;AAAA,EAGZ,cAAA,EAAgB,gBAAA;AAAA;AAAA,EAGhB,aAAA,EAAe,eAkFjB,CAAA;;;ACpKO,IAAM,WAAA,GAAc;AAAA,EAsHZ;AAAA;AAAA;AAAA,EAKb,YAAA,EAAc,GAAA;AAAA,EAKI;AAAA;AAAA;AAAA,EAKlB,SAAA,EAAW,GAAA;AAAA,EAqFW;AAAA;AAAA;AAAA,EAKtB,MAAA,EAAQ,GA4FV,CAAA;;;ACrTO,IAAM,WAAA,GAAc;AAAA,EAwsBK;AAAA,EAI9B,mBAAA,EAAqB,0BAAA;AAAA,EACrB,aAAA,EAAe,oBAAA;AAAA,EACf,aAAA,EAAe,oBAAA;AAAA,EACf,aAAA,EAAe,oBAAA;AAAA,EACf,eAAA,EAAiB,sBAAA;AAAA,EACjB,YAAA,EAAc,mBAAA;AAAA,EACd,WAAA,EAAa,kBAAA;AAAA,EACb,wBAAA,EAA0B,+BAAA;AAAA,EAC1B,aAAA,EAAe,oBAAA;AAAA,EACf,wBAAA,EAA0B,+BAAA;AAAA,EAC1B,aAAA,EAAe,oBAAA;AAAA,EACf,kBAAA,EAAoB,yBAAA;AAAA,EACpB,cAAA,EAAgB,qBAAA;AAAA,EAChB,iBAAA,EAAmB;AACrB,CAAA;;;ACztBO,IAAM,SAAA,GAAY;AAAA;AAAA,EAEvB,OAAA,EAAS,SAAA;AAAA;AAAA,EAGT,KAAA,EAAO,OAAA;AAAA;AAAA,EAGP,KAAA,EAAO,OAAA;AAAA;AAAA,EAGP,IAAA,EAAM,MAAA;AAAA;AAAA,EAGN,GAAA,EAAK,KAAA;AAAA;AAAA,EAGL,KAAA,EAAO,OAAA;AAAA;AAAA,EAGP,UAAA,EAAY;AACd;AAcO,IAAM,WAAA,GAAc;AAAA;AAAA,EAEzB,MAAA,EAAQ,QAAA;AAAA;AAAA,EAGR,QAAA,EAAU,UAAA;AAAA;AAAA,EAGV,OAAA,EAAS,SAAA;AAAA;AAAA,EAGT,SAAA,EAAW,WAAA;AAAA;AAAA,EAGX,MAAA,EAAQ;AACV;AAYO,IAAK,kBAAA,qBAAAA,mBAAAA,KAAL;AAEL,EAAAA,oBAAA,eAAA,CAAA,GAAgB,gBAAA;AAEhB,EAAAA,oBAAA,YAAA,CAAA,GAAa,aAAA;AAJH,EAAA,OAAAA,mBAAAA;AAAA,CAAA,EAAA,kBAAA,IAAA,EAAA;AAaL,IAAK,aAAA,qBAAAC,cAAAA,KAAL;AAEL,EAAAA,eAAA,OAAA,CAAA,GAAQ,OAAA;AAER,EAAAA,eAAA,OAAA,CAAA,GAAQ,OAAA;AAER,EAAAA,eAAA,QAAA,CAAA,GAAS,QAAA;AAET,EAAAA,eAAA,UAAA,CAAA,GAAW,UAAA;AAEX,EAAAA,eAAA,OAAA,CAAA,GAAQ,OAAA;AAER,EAAAA,eAAA,MAAA,CAAA,GAAO,MAAA;AAZG,EAAA,OAAAA,cAAAA;AAAA,CAAA,EAAA,aAAA,IAAA,EAAA;AAyBL,IAAK,gBAAA,qBAAAC,iBAAAA,KAAL;AAEL,EAAAA,kBAAA,QAAA,CAAA,GAAS,QAAA;AAET,EAAAA,kBAAA,UAAA,CAAA,GAAW,UAAA;AAEX,EAAAA,kBAAA,WAAA,CAAA,GAAY,WAAA;AANF,EAAA,OAAAA,iBAAAA;AAAA,CAAA,EAAA,gBAAA,IAAA,EAAA;AAeL,IAAK,UAAA,qBAAAC,WAAAA,KAAL;AAEL,EAAAA,YAAA,QAAA,CAAA,GAAS,QAAA;AAET,EAAAA,YAAA,KAAA,CAAA,GAAM,KAAA;AAJI,EAAA,OAAAA,WAAAA;AAAA,CAAA,EAAA,UAAA,IAAA,EAAA;AAOL,IAAM,sBAAA,GAAyB;AAAA,EACpC,CAAC,WAAA,CAAY,mBAAmB,GAAG;AAAA,IACjC,MAAM,WAAA,CAAY,mBAAA;AAAA,IAClB,QAAQ,WAAA,CAAY,YAAA;AAAA,IACpB,UAAU,cAAA,CAAe,cAAA;AAAA,IACzB,WAAA,EAAa,iCAAA;AAAA,IACb,UAAU,cAAA,CAAe,MAAA;AAAA,IACzB,SAAA,EAAW;AAAA,GACb;AAAA,EACA,CAAC,WAAA,CAAY,aAAa,GAAG;AAAA,IAC3B,MAAM,WAAA,CAAY,aAAA;AAAA,IAClB,QAAQ,WAAA,CAAY,YAAA;AAAA,IACpB,UAAU,cAAA,CAAe,cAAA;AAAA,IACzB,WAAA,EAAa,2BAAA;AAAA,IACb,UAAU,cAAA,CAAe,MAAA;AAAA,IACzB,SAAA,EAAW;AAAA,GACb;AAAA,EACA,CAAC,WAAA,CAAY,aAAa,GAAG;AAAA,IAC3B,MAAM,WAAA,CAAY,aAAA;AAAA,IAClB,QAAQ,WAAA,CAAY,YAAA;AAAA,IACpB,UAAU,cAAA,CAAe,cAAA;AAAA,IACzB,WAAA,EAAa,2BAAA;AAAA,IACb,UAAU,cAAA,CAAe,IAAA;AAAA,IACzB,SAAA,EAAW;AAAA,GACb;AAAA,EACA,CAAC,WAAA,CAAY,aAAa,GAAG;AAAA,IAC3B,MAAM,WAAA,CAAY,aAAA;AAAA,IAClB,QAAQ,WAAA,CAAY,YAAA;AAAA,IACpB,UAAU,cAAA,CAAe,cAAA;AAAA,IACzB,WAAA,EAAa,2BAAA;AAAA,IACb,UAAU,cAAA,CAAe,MAAA;AAAA,IACzB,SAAA,EAAW;AAAA,GACb;AAAA,EACA,CAAC,WAAA,CAAY,eAAe,GAAG;AAAA,IAC7B,MAAM,WAAA,CAAY,eAAA;AAAA,IAClB,QAAQ,WAAA,CAAY,YAAA;AAAA,IACpB,UAAU,cAAA,CAAe,cAAA;AAAA,IACzB,WAAA,EAAa,6BAAA;AAAA,IACb,UAAU,cAAA,CAAe,MAAA;AAAA,IACzB,SAAA,EAAW;AAAA,GACb;AAAA,EACA,CAAC,WAAA,CAAY,YAAY,GAAG;AAAA,IAC1B,MAAM,WAAA,CAAY,YAAA;AAAA,IAClB,QAAQ,WAAA,CAAY,SAAA;AAAA,IACpB,UAAU,cAAA,CAAe,aAAA;AAAA,IACzB,WAAA,EAAa,0BAAA;AAAA,IACb,UAAU,cAAA,CAAe,GAAA;AAAA,IACzB,SAAA,EAAW;AAAA,GACb;AAAA,EACA,CAAC,WAAA,CAAY,WAAW,GAAG;AAAA,IACzB,MAAM,WAAA,CAAY,WAAA;AAAA,IAClB,QAAQ,WAAA,CAAY,YAAA;AAAA,IACpB,UAAU,cAAA,CAAe,cAAA;AAAA,IACzB,WAAA,EAAa,yBAAA;AAAA,IACb,UAAU,cAAA,CAAe,MAAA;AAAA,IACzB,SAAA,EAAW;AAAA,GACb;AAAA,EACA,CAAC,WAAA,CAAY,wBAAwB,GAAG;AAAA,IACtC,MAAM,WAAA,CAAY,wBAAA;AAAA,IAClB,QAAQ,WAAA,CAAY,SAAA;AAAA,IACpB,UAAU,cAAA,CAAe,aAAA;AAAA,IACzB,WAAA,EAAa,sCAAA;AAAA,IACb,UAAU,cAAA,CAAe,MAAA;AAAA,IACzB,SAAA,EAAW;AAAA,GACb;AAAA,EACA,CAAC,WAAA,CAAY,aAAa,GAAG;AAAA,IAC3B,MAAM,WAAA,CAAY,aAAA;AAAA,IAClB,QAAQ,WAAA,CAAY,SAAA;AAAA,IACpB,UAAU,cAAA,CAAe,aAAA;AAAA,IACzB,WAAA,EAAa,2BAAA;AAAA,IACb,UAAU,cAAA,CAAe,MAAA;AAAA,IACzB,SAAA,EAAW;AAAA,GACb;AAAA,EACA,CAAC,WAAA,CAAY,wBAAwB,GAAG;AAAA,IACtC,MAAM,WAAA,CAAY,wBAAA;AAAA,IAClB,QAAQ,WAAA,CAAY,YAAA;AAAA,IACpB,UAAU,cAAA,CAAe,cAAA;AAAA,IACzB,WAAA,EAAa,sCAAA;AAAA,IACb,UAAU,cAAA,CAAe,IAAA;AAAA,IACzB,SAAA,EAAW;AAAA,GACb;AAAA,EACA,CAAC,WAAA,CAAY,aAAa,GAAG;AAAA,IAC3B,MAAM,WAAA,CAAY,aAAA;AAAA,IAClB,QAAQ,WAAA,CAAY,YAAA;AAAA,IACpB,UAAU,cAAA,CAAe,cAAA;AAAA,IACzB,WAAA,EAAa,2BAAA;AAAA,IACb,UAAU,cAAA,CAAe,MAAA;AAAA,IACzB,SAAA,EAAW;AAAA,GACb;AAAA,EACA,CAAC,WAAA,CAAY,kBAAkB,GAAG;AAAA,IAChC,MAAM,WAAA,CAAY,kBAAA;AAAA,IAClB,QAAQ,WAAA,CAAY,YAAA;AAAA,IACpB,UAAU,cAAA,CAAe,cAAA;AAAA,IACzB,WAAA,EAAa,gCAAA;AAAA,IACb,UAAU,cAAA,CAAe,IAAA;AAAA,IACzB,SAAA,EAAW;AAAA,GACb;AAAA,EACA,CAAC,WAAA,CAAY,cAAc,GAAG;AAAA,IAC5B,MAAM,WAAA,CAAY,cAAA;AAAA,IAClB,QAAQ,WAAA,CAAY,MAAA;AAAA,IACpB,UAAU,cAAA,CAAe,aAAA;AAAA,IACzB,WAAA,EAAa,4BAAA;AAAA,IACb,UAAU,cAAA,CAAe,IAAA;AAAA,IACzB,SAAA,EAAW;AAAA,GACb;AAAA,EACA,CAAC,WAAA,CAAY,iBAAiB,GAAG;AAAA,IAC/B,MAAM,WAAA,CAAY,iBAAA;AAAA,IAClB,QAAQ,WAAA,CAAY,SAAA;AAAA,IACpB,UAAU,cAAA,CAAe,aAAA;AAAA,IACzB,WAAA,EAAa,+BAAA;AAAA,IACb,UAAU,cAAA,CAAe,IAAA;AAAA,IACzB,SAAA,EAAW;AAAA;AAEf;ACzPA,IAAM,gBAAA,GAAmB,CAAA;AAMlB,IAAM,mBAAA,GAAsB,EAAE,MAAA,CAAO;AAAA,EAC1C,IAAA,EAAM,CAAA,CAAE,MAAA,CAAO,EAAE,KAAA,EAAO,4BAA4B,CAAA,CAAE,GAAA,CAAI,CAAA,EAAG,yBAAyB,CAAA;AAAA,EACtF,OAAO,CAAA,CAAE,KAAA,CAAM,EAAE,KAAA,EAAO,4BAA4B;AACtD,CAAC;AAWM,IAAM,gBAAA,GAAmB,EAAE,MAAA,CAAO;AAAA,EACvC,IAAA,EAAM,CAAA,CAAE,MAAA,CAAO,EAAE,KAAA,EAAO,4BAA4B,CAAA,CAAE,GAAA,CAAI,CAAA,EAAG,yBAAyB,CAAA;AAAA,EACtF,OAAO,CAAA,CAAE,KAAA,CAAM,EAAE,KAAA,EAAO,4BAA4B,CAAA;AAAA,EACpD,QAAA,EAAU,CAAA,CACP,MAAA,CAAO,EAAE,KAAA,EAAO,4BAA4B,CAAA,CAC5C,GAAA,CAAI,gBAAA,EAAkB,8BAA8B;AACzD,CAAC;;;ACguBM,IAAM,gBAAA,GAAmB;AAAA,EAC9B,mBAAA,EAAqB,0BAAA;AAAA,EACrB,aAAA,EAAe,oBAAA;AAAA,EACf,aAAA,EAAe,oBAAA;AAAA,EACf,aAAA,EAAe,oBAAA;AAAA,EACf,eAAA,EAAiB,sBAAA;AAAA,EACjB,YAAA,EAAc,mBAAA;AAAA,EACd,WAAA,EAAa,kBAAA;AAAA,EACb,wBAAA,EAA0B,+BAAA;AAAA,EAC1B,aAAA,EAAe,oBAAA;AAAA,EACf,wBAAA,EAA0B,+BAAA;AAAA,EAC1B,aAAA,EAAe,oBAAA;AAAA,EACf,kBAAA,EAAoB,yBAAA;AAAA,EACpB,cAAA,EAAgB,qBAAA;AAAA,EAChB,iBAAA,EAAmB;AACrB","file":"index.js","sourcesContent":["/**\n * Enum representing standardized error types used across the application.\n * @description These error types help classify different categories of errors such as validation issues and system-level failures.\n *\n * @example\n * ```typescript\n * import { ERROR_TYPE } from '@plyaz/types';\n *\n * const errorType = ERROR_TYPE.ValidationError; // 'validation.error'\n *\n * // Error handling example\n * if (error.type === ERROR_TYPE.RateLimitExceeded) {\n * // Handle rate limiting\n * }\n * ```\n */\nexport const ERROR_TYPE = {\n /** A general validation error (e.g., form or input errors). */\n ValidationError: 'validation.error',\n\n /** Error related to schema validation, such as JSON schema or API payload checks. */\n SchemaValidationError: 'validation.schema.error',\n\n /** Unhandled or unexpected system error. */\n InternalError: 'system.internal.error',\n\n /** System dependency is currently unavailable (e.g., database or external API). */\n ServiceUnavailable: 'system.service.unavailable',\n\n /** The request took too long and timed out. */\n TimeoutError: 'system.timeout',\n\n /** Too many requests made in a short period of time. */\n RateLimitExceeded: 'system.rate.limit.exceeded',\n} as const;\n\n/**\n * Enum representing the severity level of an error.\n * @description This allows categorization of errors by their potential impact on the system or user.\n *\n * @example\n * ```typescript\n * import { ERROR_SEVERITY } from '@plyaz/types';\n *\n * const severity = ERROR_SEVERITY.Critical; // 'critical'\n * const shouldAlert = severity === ERROR_SEVERITY.High || severity === ERROR_SEVERITY.Critical;\n * ```\n */\nexport const ERROR_SEVERITY = {\n /** Low severity - does not impact functionality significantly. */\n Low: 'low',\n\n /** Medium severity - minor disruption or warning. */\n Medium: 'medium',\n\n /** High severity - major issue requiring attention. */\n High: 'high',\n\n /** Critical severity - blocking or crashing issue. */\n Critical: 'critical',\n} as const;\n\n/**\n * Enum representing the category or origin of an error.\n * @description Useful for filtering or logging errors based on their source or nature.\n *\n * @example\n * ```typescript\n * import { ERROR_CATEGORY } from '@plyaz/types';\n *\n * const category = ERROR_CATEGORY.Blockchain; // 'blockchain'\n * const isClientError = category === ERROR_CATEGORY.Client;\n * ```\n */\nexport const ERROR_CATEGORY = {\n /** Client-side error (e.g., invalid request). */\n Client: 'client',\n\n /** Server-side error (e.g., logic failure or exception). */\n Server: 'server',\n\n /** Network-related error (e.g., unreachable endpoint). */\n Network: 'network',\n\n /** Blockchain-related error (e.g., transaction failure, gas limit). */\n Blockchain: 'blockchain',\n\n /** Validation-specific error (e.g., failed constraints or field errors). */\n Validation: 'validation',\n\n /** Authentication-related error (e.g., invalid credentials, expired token). */\n Authentication: 'authentication',\n\n /** Authorization-related error (e.g., insufficient permissions). */\n Authorization: 'authorization',\n\n /** Resource not found error. */\n NotFound: 'not.found',\n\n /** Rate limiting error (too many requests). */\n RateLimit: 'rate.limit',\n\n /** External service error (e.g., third-party API failure). */\n ExternalService: 'external.service',\n\n /** Timeout error (request exceeded time limit). */\n Timeout: 'timeout',\n\n /** Conflict error (e.g., resource state conflict). */\n Conflict: 'conflict',\n\n /** Cache-related error. */\n Cache: 'cache',\n\n /** Headers-related error (e.g., missing or invalid headers). */\n Headers: 'headers',\n\n /** Retry-related error (e.g., max retries exceeded). */\n Retry: 'retry',\n\n /** Strategy-related error (e.g., invalid retry or caching strategy). */\n Strategy: 'strategy',\n\n /** Regional-related error (e.g., region detection failure). */\n Regional: 'regional',\n\n /** Provider-related error (e.g., notification service provider failure). */\n Provider: 'provider',\n\n /** Queue-related error (e.g., queue full or processing failed). */\n Queue: 'queue',\n\n /** Webhook-related error (e.g., invalid signature or processing failure). */\n Webhook: 'webhook',\n\n /** Template-related error (e.g., template not found or rendering failed). */\n Template: 'template',\n\n /** Configuration-related error (e.g., invalid or missing configuration). */\n Configuration: 'configuration',\n\n /** Payment processing-related error (e.g., capture or settlement failure). */\n Processing: 'processing',\n\n /** Fraud detection or prevention failure. */\n Fraud: 'fraud',\n\n /** Compliance-related error (e.g., AML/KYC validation failure). */\n Compliance: 'compliance',\n\n /** Limits or quota-related error (e.g., exceeded transaction limit). */\n Limits: 'limits',\n\n /** System-level error (unexpected internal issue). */\n System: 'system',\n\n /** Refund-related error (e.g., duplicate or failed refund). */\n Refund: 'refund',\n\n /** Security-related error (e.g., encryption or signature failure). */\n Security: 'security',\n\n /** File operation error (e.g., upload, download, delete failure). */\n FileOperation: 'file.operation',\n\n /** Plugin-related error (e.g., plugin initialization or execution failure). */\n Plugin: 'plugin',\n\n /** Quota or storage limit error (e.g., exceeded storage quota). */\n Quota: 'quota',\n\n /** Database-related error (e.g., query failure, connection error). */\n Database: 'database',\n\n /** Unknown or unclassified error. */\n Unknown: 'unknown',\n} as const;\n\n/**\n * Internal package status codes (non-HTTP)\n * Used for internal configuration and validation errors that aren't HTTP-related\n * These are in the 1xxx range to distinguish from HTTP status codes (which are typically 100-599)\n *\n * @example\n * ```typescript\n * import { INTERNAL_STATUS_CODES } from '@plyaz/types';\n *\n * const statusCode = INTERNAL_STATUS_CODES.INVALID_CONFIGURATION; // 1001\n * if (error.statusCode >= 1000 && error.statusCode < 2000) {\n * // Handle internal package error\n * }\n * ```\n */\nexport const INTERNAL_STATUS_CODES = {\n // Configuration errors (1001-1009)\n INVALID_CONFIGURATION: 1001,\n MISSING_CONFIGURATION: 1002,\n CONFIGURATION_CONFLICT: 1003,\n CONFIGURATION_TRACKING_FAILED: 1004,\n DEBUG_TRACKING_FAILED: 1005,\n\n // Resource errors (1010-1019)\n RESOURCE_NOT_FOUND: 1010,\n RESOURCE_ALREADY_EXISTS: 1011,\n RESOURCE_UNAVAILABLE: 1012,\n\n // Validation errors (1020-1029)\n INVALID_PARAMETER: 1020,\n MISSING_PARAMETER: 1021,\n PARAMETER_OUT_OF_RANGE: 1022,\n\n // Strategy/preset errors (1030-1039)\n STRATEGY_NOT_FOUND: 1030,\n PRESET_NOT_FOUND: 1031,\n INVALID_STRATEGY: 1032,\n\n // Request/Response errors (1035-1039)\n REQUEST_FAILED: 1035,\n\n // Internal system errors (1040-1049)\n INITIALIZATION_FAILED: 1040,\n OPERATION_FAILED: 1041,\n STATE_CORRUPTION: 1042,\n SERIALIZATION_FAILED: 1043,\n DESERIALIZATION_FAILED: 1044,\n CONFIGURATION_INVALID: 1045,\n HEADER_PROCESSING_ERROR: 1046,\n REGION_DETECTION_ERROR: 1047,\n NETWORK_OVERRIDE_ERROR: 1048,\n} as const;\n\n/**\n * Mapping of error category values to camelCase emitter keys\n * Used by event systems to route errors to appropriate handlers\n *\n * @example\n * ```typescript\n * import { ERROR_CATEGORY, ERROR_CATEGORY_TO_EMITTER_KEY } from '@plyaz/types';\n *\n * const category = ERROR_CATEGORY.RateLimit; // 'rate.limit'\n * const emitterKey = ERROR_CATEGORY_TO_EMITTER_KEY[category]; // 'rateLimit'\n *\n * // Use in event emitter\n * eventEmitter.emit(`error:${emitterKey}`, error);\n * ```\n */\nexport const ERROR_CATEGORY_TO_EMITTER_KEY = {\n [ERROR_CATEGORY.Network]: 'network',\n [ERROR_CATEGORY.Validation]: 'validation',\n [ERROR_CATEGORY.Authentication]: 'authentication',\n [ERROR_CATEGORY.Authorization]: 'authorization',\n [ERROR_CATEGORY.RateLimit]: 'rateLimit',\n [ERROR_CATEGORY.Server]: 'server',\n [ERROR_CATEGORY.Timeout]: 'timeout',\n [ERROR_CATEGORY.NotFound]: 'notFound',\n [ERROR_CATEGORY.Conflict]: 'conflict',\n [ERROR_CATEGORY.Client]: 'client',\n [ERROR_CATEGORY.ExternalService]: 'externalService',\n [ERROR_CATEGORY.Cache]: 'cache',\n [ERROR_CATEGORY.Headers]: 'headers',\n [ERROR_CATEGORY.Retry]: 'retry',\n [ERROR_CATEGORY.Blockchain]: 'blockchain',\n [ERROR_CATEGORY.Strategy]: 'strategy',\n [ERROR_CATEGORY.Regional]: 'regional',\n [ERROR_CATEGORY.Provider]: 'provider',\n [ERROR_CATEGORY.Queue]: 'queue',\n [ERROR_CATEGORY.Webhook]: 'webhook',\n [ERROR_CATEGORY.Template]: 'template',\n [ERROR_CATEGORY.Configuration]: 'configuration',\n [ERROR_CATEGORY.Processing]: 'processing',\n [ERROR_CATEGORY.Fraud]: 'fraud',\n [ERROR_CATEGORY.Compliance]: 'compliance',\n [ERROR_CATEGORY.Limits]: 'limits',\n [ERROR_CATEGORY.System]: 'system',\n [ERROR_CATEGORY.Refund]: 'refund',\n [ERROR_CATEGORY.Security]: 'security',\n [ERROR_CATEGORY.FileOperation]: 'fileOperation',\n [ERROR_CATEGORY.Plugin]: 'plugin',\n [ERROR_CATEGORY.Quota]: 'quota',\n [ERROR_CATEGORY.Database]: 'database',\n [ERROR_CATEGORY.Unknown]: 'unknown',\n} as const satisfies Record<(typeof ERROR_CATEGORY)[keyof typeof ERROR_CATEGORY], string>;\n\n/**\n * Common operation names used in error context\n * These are optional helpers - you can use any freeform string in context.operation\n *\n * @example\n * ```typescript\n * import { COMMON_OPERATIONS } from '@plyaz/types';\n *\n * const context = { operation: COMMON_OPERATIONS.STORAGE };\n * // Or just use a string:\n * const context2 = { operation: 'custom-operation' };\n * ```\n */\nexport const COMMON_OPERATIONS = {\n // Data operations\n STORAGE: 'storage',\n RETRIEVAL: 'retrieval',\n INVALIDATION: 'invalidation',\n DELETION: 'deletion',\n\n // Processing operations\n VALIDATION: 'validation',\n ENRICHMENT: 'enrichment',\n SERIALIZATION: 'serialization',\n DESERIALIZATION: 'deserialization',\n\n // API operations\n REQUEST: 'request',\n RESPONSE: 'response',\n RETRY: 'retry',\n REVALIDATION: 'revalidation',\n POLLING: 'polling',\n\n // Configuration operations\n INITIALIZATION: 'initialization',\n CONFIGURATION: 'configuration',\n PRESET_LOOKUP: 'preset-lookup',\n REGIONAL_DETECTION: 'regional-detection',\n\n // Strategy operations\n STRATEGY_EXECUTION: 'strategy-execution',\n FALLBACK: 'fallback',\n\n // Event operations\n SUBSCRIPTION: 'subscription',\n PUBLICATION: 'publication',\n EVENT_HANDLING: 'event-handling',\n\n // Debugging operations\n DEBUG: 'debug',\n DEBUG_TRACKING: 'debug-tracking',\n TRACKING: 'tracking',\n MONITORING: 'monitoring',\n\n // Network operations\n NETWORK_CHECK: 'network-check',\n ENDPOINT_BUILD: 'endpoint-build',\n CONTEXT_SETUP: 'context-setup',\n\n // Notification operations\n SEND: 'send',\n RENDER: 'render',\n QUEUE: 'queue',\n PROCESS: 'process',\n} as const;\n\n/**\n * Common field names used in error context\n * These are optional helpers - you can use any freeform string in context.field\n *\n * @example\n * ```typescript\n * import { COMMON_FIELDS } from '@plyaz/types';\n *\n * const context = { field: COMMON_FIELDS.EMAIL };\n * // Or just use a string:\n * const context2 = { field: 'customField' };\n * ```\n */\nexport const COMMON_FIELDS = {\n // Storage fields\n STORAGE: 'storage',\n CACHE: 'cache',\n\n // Configuration fields\n CONFIG: 'config',\n PRESET_NAME: 'presetName',\n PRESET_ID: 'presetId',\n\n // HTTP fields\n HEADERS: 'headers',\n URL: 'url',\n METHOD: 'method',\n\n // Strategy fields\n STRATEGY: 'strategy',\n\n // Retry fields\n RETRY_COUNT: 'retryCount',\n MAX_RETRIES: 'maxRetries',\n\n // Polling fields\n POLLING_INTERVAL: 'pollingInterval',\n\n // Event fields\n TOPIC: 'topic',\n CHANNEL: 'channel',\n\n // API fields\n ENDPOINT: 'endpoint',\n CLIENT: 'client',\n\n // Network fields\n NETWORK_TYPE: 'networkType',\n TIME_INTERVAL: 'timeInterval',\n\n // Notification fields\n EMAIL: 'email',\n PHONE: 'phoneNumber',\n RECIPIENT: 'recipient',\n TEMPLATE: 'template',\n PROVIDER: 'provider',\n} as const;\n\n/**\n * Common storage type names\n * These are optional helpers - you can use any freeform string in context.storageType\n *\n * @example\n * ```typescript\n * import { COMMON_STORAGE_TYPES } from '@plyaz/types';\n *\n * const context = { storageType: COMMON_STORAGE_TYPES.REDIS };\n * // Or just use a string:\n * const context2 = { storageType: 'custom-storage' };\n * ```\n */\nexport const COMMON_STORAGE_TYPES = {\n PRIMARY: 'primary',\n FALLBACK: 'fallback',\n MEMORY: 'memory',\n SESSION: 'session',\n LOCAL: 'local',\n REDIS: 'redis',\n DATABASE: 'database',\n} as const;\n\n/**\n * Namespaces for categorizing error exceptions classes in different packages and category based exceptions\n */\nexport const ERROR_EXCEPTIONS_NAMESPACES = {\n BASE: 'base',\n API: 'api',\n AUTH: 'auth',\n NOTIFICATIONS: 'notifications',\n STORAGE: 'storage',\n DB: 'db',\n VALIDATION: 'validation',\n GENERIC: 'generic',\n PAYMENTS: 'payments',\n ERRORS: 'errors',\n LOGGER: 'logger',\n TYPES: 'types',\n CONFIG: 'config',\n UTILS: 'utils',\n EVENTS: 'events',\n TRANSLATIONS: 'translations',\n UI: 'ui',\n TESTING: 'testing',\n CORE: 'core',\n STORE: 'store',\n WEB3: 'web3',\n MONITORING: 'monitoring',\n HOOKS: 'hooks',\n COMMON: 'common',\n COMPLIANCE: 'compliance',\n PAYMENT_WEBHOOKS: 'payment-webhook',\n};\n","/**\n * HTTP Status Code Constants\n *\n * Common HTTP status codes used throughout the application.\n * Based on RFC 9110 (HTTP Semantics) and common usage patterns.\n *\n * @module http/constants\n */\n\n/**\n * Standard HTTP status codes\n */\nexport const HTTP_STATUS = {\n // 1xx Informational\n /**\n * 100 Continue - The initial part of a request has been received\n */\n CONTINUE: 100,\n\n /**\n * 101 Switching Protocols - The server is switching protocols\n */\n SWITCHING_PROTOCOLS: 101,\n\n /**\n * 102 Processing - The server has received and is processing the request\n */\n PROCESSING: 102,\n\n /**\n * 103 Early Hints - Used to return some response headers before final HTTP message\n */\n EARLY_HINTS: 103,\n\n // 2xx Success\n /**\n * 200 OK - The request succeeded\n */\n OK: 200,\n\n /**\n * 201 Created - The request succeeded and a new resource was created\n */\n CREATED: 201,\n\n /**\n * 202 Accepted - The request has been received but not yet acted upon\n */\n ACCEPTED: 202,\n\n /**\n * 203 Non-Authoritative Information - The returned metadata is not from the origin server\n */\n NON_AUTHORITATIVE_INFORMATION: 203,\n\n /**\n * 204 No Content - There is no content to send for this request\n */\n NO_CONTENT: 204,\n\n /**\n * 205 Reset Content - Tells the user agent to reset the document\n */\n RESET_CONTENT: 205,\n\n /**\n * 206 Partial Content - The server is delivering only part of the resource\n */\n PARTIAL_CONTENT: 206,\n\n /**\n * 207 Multi-Status - Conveys information about multiple resources\n */\n MULTI_STATUS: 207,\n\n /**\n * 208 Already Reported - The members of a DAV binding have already been enumerated\n */\n ALREADY_REPORTED: 208,\n\n /**\n * 226 IM Used - The server has fulfilled a request for the resource\n */\n IM_USED: 226,\n\n // 3xx Redirection\n /**\n * 300 Multiple Choices - Multiple options for the resource are available\n */\n MULTIPLE_CHOICES: 300,\n\n /**\n * 301 Moved Permanently - The URL of the requested resource has been changed permanently\n */\n MOVED_PERMANENTLY: 301,\n\n /**\n * 302 Found - The resource resides temporarily under a different URI\n */\n FOUND: 302,\n\n /**\n * 303 See Other - Direct the client to get the resource at another URI\n */\n SEE_OTHER: 303,\n\n /**\n * 304 Not Modified - The cached version is still valid\n */\n NOT_MODIFIED: 304,\n\n /**\n * 305 Use Proxy - Defined in a previous version of the HTTP specification\n */\n USE_PROXY: 305,\n\n /**\n * 307 Temporary Redirect - The request should be repeated with another URI\n */\n TEMPORARY_REDIRECT: 307,\n\n /**\n * 308 Permanent Redirect - The resource is permanently located at another URI\n */\n PERMANENT_REDIRECT: 308,\n\n // 4xx Client Errors\n /**\n * 400 Bad Request - The server cannot process the request due to client error\n */\n BAD_REQUEST: 400,\n\n /**\n * 401 Unauthorized - Authentication is required and has failed or not been provided\n */\n UNAUTHORIZED: 401,\n\n /**\n * 402 Payment Required - Reserved for future use\n */\n PAYMENT_REQUIRED: 402,\n\n /**\n * 403 Forbidden - The server understood the request but refuses to authorize it\n */\n FORBIDDEN: 403,\n\n /**\n * 404 Not Found - The server cannot find the requested resource\n */\n NOT_FOUND: 404,\n\n /**\n * 405 Method Not Allowed - The request method is not supported for the requested resource\n */\n METHOD_NOT_ALLOWED: 405,\n\n /**\n * 406 Not Acceptable - The requested resource is not available in a format acceptable to the client\n */\n NOT_ACCEPTABLE: 406,\n\n /**\n * 407 Proxy Authentication Required - The client must authenticate itself with the proxy\n */\n PROXY_AUTHENTICATION_REQUIRED: 407,\n\n /**\n * 408 Request Timeout - The server timed out waiting for the request\n */\n REQUEST_TIMEOUT: 408,\n\n /**\n * 409 Conflict - The request conflicts with the current state of the server\n */\n CONFLICT: 409,\n\n /**\n * 410 Gone - The requested resource is no longer available and will not be available again\n */\n GONE: 410,\n\n /**\n * 411 Length Required - The request did not specify the length of its content\n */\n LENGTH_REQUIRED: 411,\n\n /**\n * 412 Precondition Failed - The server does not meet one of the preconditions\n */\n PRECONDITION_FAILED: 412,\n\n /**\n * 413 Payload Too Large - The request is larger than the server is willing to process\n */\n PAYLOAD_TOO_LARGE: 413,\n\n /**\n * 414 URI Too Long - The URI provided was too long for the server to process\n */\n URI_TOO_LONG: 414,\n\n /**\n * 415 Unsupported Media Type - The request entity has a media type not supported by the server\n */\n UNSUPPORTED_MEDIA_TYPE: 415,\n\n /**\n * 416 Range Not Satisfiable - The client has asked for a portion of the file that the server cannot supply\n */\n RANGE_NOT_SATISFIABLE: 416,\n\n /**\n * 417 Expectation Failed - The server cannot meet the requirements of the Expect request-header field\n */\n EXPECTATION_FAILED: 417,\n\n /**\n * 418 I'm a teapot - The server refuses to brew coffee because it is a teapot\n */\n IM_A_TEAPOT: 418,\n\n /**\n * 421 Misdirected Request - The request was directed at a server that is not able to produce a response\n */\n MISDIRECTED_REQUEST: 421,\n\n /**\n * 422 Unprocessable Entity - The request was well-formed but was unable to be followed due to semantic errors\n */\n UNPROCESSABLE_ENTITY: 422,\n\n /**\n * 423 Locked - The resource that is being accessed is locked\n */\n LOCKED: 423,\n\n /**\n * 424 Failed Dependency - The request failed due to failure of a previous request\n */\n FAILED_DEPENDENCY: 424,\n\n /**\n * 425 Too Early - The server is unwilling to risk processing a request that might be replayed\n */\n TOO_EARLY: 425,\n\n /**\n * 426 Upgrade Required - The client should switch to a different protocol\n */\n UPGRADE_REQUIRED: 426,\n\n /**\n * 428 Precondition Required - The origin server requires the request to be conditional\n */\n PRECONDITION_REQUIRED: 428,\n\n /**\n * 429 Too Many Requests - The user has sent too many requests in a given amount of time\n */\n TOO_MANY_REQUESTS: 429,\n\n /**\n * 431 Request Header Fields Too Large - The server is unwilling to process the request because its header fields are too large\n */\n REQUEST_HEADER_FIELDS_TOO_LARGE: 431,\n\n /**\n * 451 Unavailable For Legal Reasons - The user requested a resource that cannot legally be provided\n */\n UNAVAILABLE_FOR_LEGAL_REASONS: 451,\n\n // 5xx Server Errors\n /**\n * 500 Internal Server Error - The server encountered an unexpected condition\n */\n INTERNAL_SERVER_ERROR: 500,\n\n /**\n * 501 Not Implemented - The server does not support the functionality required to fulfill the request\n */\n NOT_IMPLEMENTED: 501,\n\n /**\n * 502 Bad Gateway - The server received an invalid response from the upstream server\n */\n BAD_GATEWAY: 502,\n\n /**\n * 503 Service Unavailable - The server is not ready to handle the request\n */\n SERVICE_UNAVAILABLE: 503,\n\n /**\n * 504 Gateway Timeout - The server did not get a response in time from the upstream server\n */\n GATEWAY_TIMEOUT: 504,\n\n /**\n * 505 HTTP Version Not Supported - The HTTP version used in the request is not supported by the server\n */\n HTTP_VERSION_NOT_SUPPORTED: 505,\n\n /**\n * 506 Variant Also Negotiates - The server has an internal configuration error\n */\n VARIANT_ALSO_NEGOTIATES: 506,\n\n /**\n * 507 Insufficient Storage - The server is unable to store the representation needed to complete the request\n */\n INSUFFICIENT_STORAGE: 507,\n\n /**\n * 508 Loop Detected - The server detected an infinite loop while processing the request\n */\n LOOP_DETECTED: 508,\n\n /**\n * 510 Not Extended - Further extensions to the request are required for the server to fulfill it\n */\n NOT_EXTENDED: 510,\n\n /**\n * 511 Network Authentication Required - The client needs to authenticate to gain network access\n */\n NETWORK_AUTHENTICATION_REQUIRED: 511,\n} as const;\n\n/**\n * Type for HTTP status codes\n */\nexport type HttpStatusCode = (typeof HTTP_STATUS)[keyof typeof HTTP_STATUS];\n","/**\n * Unified Error Codes and Definitions\n * Centralized source of truth for ALL error handling across @plyaz packages\n *\n * This file is the single source of truth for:\n * - All error codes\n * - All error definitions\n * - Error code to definition mappings\n */\n\nimport { HTTP_STATUS } from '../http/constants';\nimport { ERROR_CATEGORY, ERROR_SEVERITY } from './enums';\nimport type { ErrorDefinitions } from './types';\n\n/**\n * All Error Codes\n * Combined error codes from all @plyaz packages\n */\nexport const ERROR_CODES = {\n // ===== Generic/Common Errors =====\n // These are package-agnostic error codes that can be used across all packages\n NOT_IMPLEMENTED: 'not.implemented',\n PROVIDER_NOT_IMPLEMENTED: 'provider.not.implemented',\n FEATURE_NOT_SUPPORTED: 'feature.not.supported',\n\n // ===== API Package Errors =====\n // Client Configuration\n CLIENT_INITIALIZATION_FAILED: 'CLIENT_INITIALIZATION_FAILED',\n CLIENT_INVALID_CONFIG: 'CLIENT_INVALID_CONFIG',\n CLIENT_MISSING_BASE_URL: 'CLIENT_MISSING_BASE_URL',\n CLIENT_CANCELLED: 'CLIENT_CANCELLED',\n CONFIG_VALIDATION_FAILED: 'CONFIG_VALIDATION_FAILED',\n HEADER_PROCESSING_FAILED: 'HEADER_PROCESSING_FAILED',\n NETWORK_OVERRIDE_FAILED: 'NETWORK_OVERRIDE_FAILED',\n\n // Request\n REQUEST_TIMEOUT: 'REQUEST_TIMEOUT',\n REQUEST_ABORTED: 'REQUEST_ABORTED',\n REQUEST_INVALID_PARAMS: 'REQUEST_INVALID_PARAMS',\n REQUEST_PREPARATION_FAILED: 'REQUEST_PREPARATION_FAILED',\n\n // Response\n RESPONSE_INVALID_FORMAT: 'RESPONSE_INVALID_FORMAT',\n RESPONSE_PARSING_FAILED: 'RESPONSE_PARSING_FAILED',\n\n // Authentication/Authorization\n AUTH_UNAUTHORIZED: 'AUTH_UNAUTHORIZED',\n AUTH_FORBIDDEN: 'AUTH_FORBIDDEN',\n\n // Rate Limiting\n RATE_LIMIT_EXCEEDED: 'RATE_LIMIT_EXCEEDED',\n\n // Resources\n RESOURCE_NOT_FOUND: 'RESOURCE_NOT_FOUND',\n RESOURCE_CONFLICT: 'RESOURCE_CONFLICT',\n\n // Validation\n API_VALIDATION_FAILED: 'API_VALIDATION_FAILED',\n API_INVALID_INPUT: 'API_INVALID_INPUT',\n VALIDATION_ERROR: 'VALIDATION_ERROR',\n REQUIRED_FIELD_MISSING: 'REQUIRED_FIELD_MISSING',\n INVALID_FORMAT: 'INVALID_FORMAT',\n VALIDATION_INVALID_FORMAT: 'VALIDATION_INVALID_FORMAT',\n STRING_TOO_SHORT: 'STRING_TOO_SHORT',\n STRING_TOO_LONG: 'STRING_TOO_LONG',\n\n // Network\n NETWORK_ERROR: 'NETWORK_ERROR',\n CONNECTION_FAILED: 'CONNECTION_FAILED',\n NETWORK_CONNECTION_FAILED: 'NETWORK_CONNECTION_FAILED',\n NETWORK_OFFLINE: 'NETWORK_OFFLINE',\n NETWORK_DNS_FAILED: 'NETWORK_DNS_FAILED',\n NETWORK_TIMEOUT: 'NETWORK_TIMEOUT',\n NETWORK_PRESET_NOT_FOUND: 'NETWORK_PRESET_NOT_FOUND',\n NETWORK_CONFIGURATION_INVALID: 'NETWORK_CONFIGURATION_INVALID',\n\n // Server\n SERVER_ERROR: 'SERVER_ERROR',\n INTERNAL_SERVER_ERROR: 'INTERNAL_SERVER_ERROR',\n SERVICE_UNAVAILABLE: 'SERVICE_UNAVAILABLE',\n\n // Cache\n CACHE_READ_FAILED: 'CACHE_READ_FAILED',\n CACHE_WRITE_FAILED: 'CACHE_WRITE_FAILED',\n CACHE_INVALIDATION_FAILED: 'CACHE_INVALIDATION_FAILED',\n CACHE_STORAGE_FAILED: 'CACHE_STORAGE_FAILED',\n CACHE_RETRIEVAL_FAILED: 'CACHE_RETRIEVAL_FAILED',\n\n // Retry\n RETRY_LIMIT_EXCEEDED: 'RETRY_LIMIT_EXCEEDED',\n RETRY_FAILED: 'RETRY_FAILED',\n RETRY_EXHAUSTED: 'RETRY_EXHAUSTED',\n RETRY_STRATEGY_INVALID: 'RETRY_STRATEGY_INVALID',\n\n // Strategy\n STRATEGY_INVALID: 'STRATEGY_INVALID',\n STRATEGY_CONFLICT: 'STRATEGY_CONFLICT',\n STRATEGY_EXECUTION_FAILED: 'STRATEGY_EXECUTION_FAILED',\n\n // Headers\n HEADERS_ENRICHMENT_FAILED: 'HEADERS_ENRICHMENT_FAILED',\n HEADERS_VALIDATION_FAILED: 'HEADERS_VALIDATION_FAILED',\n HEADERS_MERGE_CONFLICT: 'HEADERS_MERGE_CONFLICT',\n\n // Regional\n REGION_DETECTION_FAILED: 'REGION_DETECTION_FAILED',\n REGIONAL_PRESET_NOT_FOUND: 'REGIONAL_PRESET_NOT_FOUND',\n\n // External Services\n EXTERNAL_SERVICE_ERROR: 'EXTERNAL_SERVICE_ERROR',\n\n // Timeout (generic)\n TIMEOUT: 'TIMEOUT',\n\n // Debugging\n DEBUG_TRACKING_FAILED: 'DEBUG_TRACKING_FAILED',\n\n // Polling\n POLLING_CANCELLED: 'POLLING_CANCELLED',\n POLLING_TIMEOUT: 'POLLING_TIMEOUT',\n POLLING_INVALID_CONFIG: 'POLLING_INVALID_CONFIG',\n\n // PubSub\n PUBSUB_SUBSCRIPTION_FAILED: 'PUBSUB_SUBSCRIPTION_FAILED',\n PUBSUB_PUBLICATION_FAILED: 'PUBSUB_PUBLICATION_FAILED',\n PUBSUB_INVALID_TOPIC: 'PUBSUB_INVALID_TOPIC',\n PUBSUB_CHANNEL_ERROR: 'PUBSUB_CHANNEL_ERROR',\n\n // Revalidation\n REVALIDATION_FAILED: 'REVALIDATION_FAILED',\n REVALIDATION_IN_PROGRESS: 'REVALIDATION_IN_PROGRESS',\n\n // Debugging\n DEBUG_OVERRIDE_FAILED: 'DEBUG_OVERRIDE_FAILED',\n DEBUG_CONFLICT_DETECTED: 'DEBUG_CONFLICT_DETECTED',\n\n // Endpoint\n ENDPOINT_BUILD_FAILED: 'ENDPOINT_BUILD_FAILED',\n ENDPOINT_NOT_FOUND: 'ENDPOINT_NOT_FOUND',\n ENDPOINT_INVALID_CONFIG: 'ENDPOINT_INVALID_CONFIG',\n\n // Event\n EVENT_HANDLER_FAILED: 'EVENT_HANDLER_FAILED',\n EVENT_EMISSION_FAILED: 'EVENT_EMISSION_FAILED',\n MONITORING_FAILED: 'MONITORING_FAILED',\n\n // Context\n CONTEXT_OPERATION_FAILED: 'CONTEXT_OPERATION_FAILED',\n\n // Generic\n CLIENT_ERROR: 'CLIENT_ERROR',\n UNKNOWN_ERROR: 'UNKNOWN_ERROR',\n\n // ===== Notification Package Errors =====\n // Provider\n NOTIFICATION_PROVIDER_SEND_FAILED: 'notification.provider.send.failed',\n NOTIFICATION_PROVIDER_CONFIGURATION_INVALID: 'notification.provider.configuration.invalid',\n NOTIFICATION_PROVIDER_RATE_LIMIT: 'notification.provider.rate.limit',\n NOTIFICATION_PROVIDER_AUTH_FAILED: 'notification.provider.auth.failed',\n NOTIFICATION_PROVIDER_TIMEOUT: 'notification.provider.timeout',\n NOTIFICATION_PROVIDER_UNAVAILABLE: 'notification.provider.unavailable',\n NOTIFICATION_PROVIDER_FEATURE_NOT_SUPPORTED: 'notification.provider.feature.not.supported',\n NOTIFICATION_ALL_PROVIDERS_FAILED: 'notification.all.providers.failed',\n\n // Validation\n NOTIFICATION_INVALID_INPUT: 'notification.validation.input.invalid',\n NOTIFICATION_INVALID_RECIPIENT: 'notification.validation.recipient.invalid',\n NOTIFICATION_INVALID_TEMPLATE: 'notification.validation.template.invalid',\n NOTIFICATION_INVALID_PAYLOAD: 'notification.validation.payload.invalid',\n NOTIFICATION_MISSING_REQUIRED_FIELD: 'notification.validation.field.required',\n NOTIFICATION_VALIDATION_FAILED: 'notification.validation.failed',\n\n // User Preferences\n NOTIFICATION_USER_OPTED_OUT: 'notification.user.opted.out',\n\n // Queue\n NOTIFICATION_QUEUE_FULL: 'notification.queue.full',\n NOTIFICATION_QUEUE_PROCESSING_FAILED: 'notification.queue.processing.failed',\n\n // Webhook\n NOTIFICATION_WEBHOOK_SIGNATURE_INVALID: 'notification.webhook.signature.invalid',\n NOTIFICATION_WEBHOOK_VALIDATION_FAILED: 'notification.webhook.validation.failed',\n NOTIFICATION_WEBHOOK_PROCESSING_FAILED: 'notification.webhook.processing.failed',\n\n // Template\n NOTIFICATION_TEMPLATE_NOT_FOUND: 'notification.template.not.found',\n NOTIFICATION_TEMPLATE_RENDER_FAILED: 'notification.template.render.failed',\n\n // General Notification\n NOTIFICATION_UNKNOWN_ERROR: 'notification.unknown.error',\n NOTIFICATION_INITIALIZATION_FAILED: 'notification.initialization.failed',\n\n // ===== Storage Package Errors =====\n // General\n STORAGE_UNKNOWN_ERROR: 'storage.unknown.error',\n STORAGE_INITIALIZATION_FAILED: 'storage.initialization.failed',\n\n // Adapter\n STORAGE_ADAPTER_NOT_FOUND: 'storage.adapter.not.found',\n STORAGE_ADAPTER_INITIALIZATION_FAILED: 'storage.adapter.initialization.failed',\n STORAGE_ADAPTER_CONFIGURATION_INVALID: 'storage.adapter.configuration.invalid',\n STORAGE_ADAPTER_ALREADY_REGISTERED: 'storage.adapter.already.registered',\n STORAGE_ADAPTER_CONNECTION_FAILED: 'storage.adapter.connection.failed',\n STORAGE_ADAPTER_AUTHENTICATION_FAILED: 'storage.adapter.authentication.failed',\n STORAGE_ADAPTER_OPERATION_FAILED: 'storage.adapter.operation.failed',\n STORAGE_ADAPTER_HEALTH_CHECK_FAILED: 'storage.adapter.health.check.failed',\n STORAGE_ADAPTER_UNAVAILABLE: 'storage.adapter.unavailable',\n STORAGE_ADAPTER_TIMEOUT: 'storage.adapter.timeout',\n STORAGE_ADAPTER_RATE_LIMIT: 'storage.adapter.rate.limit',\n STORAGE_ADAPTER_QUOTA_EXCEEDED: 'storage.adapter.quota.exceeded',\n STORAGE_ADAPTER_UNSUPPORTED_OPERATION: 'storage.adapter.unsupported.operation',\n STORAGE_ADAPTER_FEATURE_NOT_SUPPORTED: 'storage.adapter.feature.not.supported',\n STORAGE_NO_HEALTHY_ADAPTERS: 'storage.no.healthy.adapters',\n STORAGE_ALL_ADAPTERS_FAILED: 'storage.all.adapters.failed',\n\n // File Validation\n STORAGE_FILE_TOO_LARGE: 'storage.file.too.large',\n STORAGE_FILE_TOO_SMALL: 'storage.file.too.small',\n STORAGE_FILE_SIZE_INVALID: 'storage.file.size.invalid',\n STORAGE_FILE_TYPE_NOT_ALLOWED: 'storage.file.type.not.allowed',\n STORAGE_INVALID_MIME_TYPE: 'storage.invalid.mime.type',\n STORAGE_INVALID_FILE_EXTENSION: 'storage.invalid.file.extension',\n STORAGE_FILE_EXTENSION_INVALID: 'storage.file.extension.invalid',\n STORAGE_FILE_EXTENSION_MISMATCH: 'storage.file.extension.mismatch',\n STORAGE_EXECUTABLE_NOT_ALLOWED: 'storage.executable.not.allowed',\n STORAGE_VALIDATION_FAILED: 'storage.validation.failed',\n STORAGE_INVALID_FILE_CONTENT: 'storage.invalid.file.content',\n\n // Security\n STORAGE_SECURITY_VIRUS_DETECTED: 'storage.security.virus.detected',\n STORAGE_SECURITY_SCAN_FAILED: 'storage.security.scan.failed',\n STORAGE_SECURITY_ACCESS_DENIED: 'storage.security.access.denied',\n STORAGE_SECURITY_ENCRYPTION_FAILED: 'storage.security.encryption.failed',\n\n // File Operations\n STORAGE_FILE_UPLOAD_FAILED: 'storage.file.upload.failed',\n STORAGE_FILE_DOWNLOAD_FAILED: 'storage.file.download.failed',\n STORAGE_FILE_DELETE_FAILED: 'storage.file.delete.failed',\n STORAGE_FILE_UPDATE_FAILED: 'storage.file.update.failed',\n STORAGE_FILE_NOT_FOUND: 'storage.file.not.found',\n STORAGE_FILE_ALREADY_EXISTS: 'storage.file.already.exists',\n STORAGE_FILE_MOVE_FAILED: 'storage.file.move.failed',\n STORAGE_FILE_COPY_FAILED: 'storage.file.copy.failed',\n STORAGE_FILE_READ_FAILED: 'storage.file.read.failed',\n STORAGE_FILE_WRITE_FAILED: 'storage.file.write.failed',\n STORAGE_FILE_CORRUPTED: 'storage.file.corrupted',\n STORAGE_INVALID_OPERATION: 'storage.invalid.operation',\n\n // Metadata\n STORAGE_METADATA_EXTRACTION_FAILED: 'storage.metadata.extraction.failed',\n STORAGE_METADATA_INVALID: 'storage.metadata.invalid',\n STORAGE_METADATA_UPDATE_FAILED: 'storage.metadata.update.failed',\n\n // Media Processing\n STORAGE_MEDIA_PROCESSING_FAILED: 'storage.media.processing.failed',\n STORAGE_MEDIA_RESIZE_FAILED: 'storage.media.resize.failed',\n STORAGE_MEDIA_FORMAT_UNSUPPORTED: 'storage.media.format.unsupported',\n STORAGE_MEDIA_TRANSCODE_FAILED: 'storage.media.transcode.failed',\n STORAGE_MEDIA_THUMBNAIL_FAILED: 'storage.media.thumbnail.failed',\n STORAGE_MEDIA_INVALID_DIMENSIONS: 'storage.media.invalid.dimensions',\n\n // Template & PDF\n STORAGE_TEMPLATE_NOT_FOUND: 'storage.template.not.found',\n STORAGE_TEMPLATE_RENDER_FAILED: 'storage.template.render.failed',\n STORAGE_PDF_GENERATION_FAILED: 'storage.pdf.generation.failed',\n STORAGE_PDF_RENDERING_TIMEOUT: 'storage.pdf.rendering.timeout',\n\n // Queue\n STORAGE_QUEUE_FULL: 'storage.queue.full',\n STORAGE_QUEUE_PROCESSING_FAILED: 'storage.queue.processing.failed',\n STORAGE_QUEUE_ITEM_NOT_FOUND: 'storage.queue.item.not.found',\n\n // Compliance\n STORAGE_COMPLIANCE_VIOLATION: 'storage.compliance.violation',\n STORAGE_COMPLIANCE_RETENTION_VIOLATION: 'storage.compliance.retention.violation',\n STORAGE_COMPLIANCE_RETENTION_EXPIRED: 'storage.compliance.retention.expired',\n STORAGE_COMPLIANCE_IMMUTABLE_FILE: 'storage.compliance.immutable.file',\n STORAGE_COMPLIANCE_POLICY_NOT_FOUND: 'storage.compliance.policy.not.found',\n STORAGE_COMPLIANCE_SOFT_DELETE_REQUIRED: 'storage.compliance.soft.delete.required',\n STORAGE_COMPLIANCE_GRACE_PERIOD_ACTIVE: 'storage.compliance.grace.period.active',\n STORAGE_COMPLIANCE_DEFERRED_DELETION: 'storage.compliance.deferred.deletion',\n STORAGE_COMPLIANCE_PATTERN_PROTECTED: 'storage.compliance.pattern.protected',\n\n // Share Links\n STORAGE_SHARE_LINK_NOT_FOUND: 'storage.share.link.not.found',\n STORAGE_SHARE_LINK_EXPIRED: 'storage.share.link.expired',\n STORAGE_SHARE_LINK_MAX_DOWNLOADS: 'storage.share.link.max.downloads',\n STORAGE_SHARE_LINK_INVALID_PASSWORD: 'storage.share.link.invalid.password',\n\n // Plugin\n STORAGE_PLUGIN_NOT_FOUND: 'storage.plugin.not.found',\n STORAGE_PLUGIN_INITIALIZATION_FAILED: 'storage.plugin.initialization.failed',\n STORAGE_PLUGIN_EXECUTION_FAILED: 'storage.plugin.execution.failed',\n\n // VirusTotal Provider (Plugin)\n STORAGE_VIRUSTOTAL_BAD_REQUEST: 'storage.virustotal.bad_request',\n STORAGE_VIRUSTOTAL_AUTHENTICATION_REQUIRED: 'storage.virustotal.authentication_required',\n STORAGE_VIRUSTOTAL_WRONG_CREDENTIALS: 'storage.virustotal.wrong_credentials',\n STORAGE_VIRUSTOTAL_FILE_TOO_LARGE: 'storage.virustotal.file_too_large',\n STORAGE_VIRUSTOTAL_QUOTA_EXCEEDED: 'storage.virustotal.quota_exceeded',\n STORAGE_VIRUSTOTAL_ANALYSIS_NOT_FOUND: 'storage.virustotal.analysis_not_found',\n STORAGE_VIRUSTOTAL_SCAN_TIMEOUT: 'storage.virustotal.scan_timeout',\n STORAGE_VIRUSTOTAL_SCAN_FAILED: 'storage.virustotal.scan_failed',\n\n // CDN Provider Errors (Third-party services - cross-package)\n // Cloudflare CDN\n CLOUDFLARE_AUTHENTICATION_FAILED: 'cloudflare.authentication.failed',\n CLOUDFLARE_ZONE_NOT_FOUND: 'cloudflare.zone.not.found',\n CLOUDFLARE_PURGE_FAILED: 'cloudflare.purge.failed',\n CLOUDFLARE_RATE_LIMIT_EXCEEDED: 'cloudflare.rate.limit.exceeded',\n CLOUDFLARE_INVALID_URL: 'cloudflare.invalid.url',\n CLOUDFLARE_API_ERROR: 'cloudflare.api.error',\n\n // AWS CloudFront CDN\n CLOUDFRONT_AUTHENTICATION_FAILED: 'cloudfront.authentication.failed',\n CLOUDFRONT_DISTRIBUTION_NOT_FOUND: 'cloudfront.distribution.not.found',\n CLOUDFRONT_INVALIDATION_FAILED: 'cloudfront.invalidation.failed',\n CLOUDFRONT_QUOTA_EXCEEDED: 'cloudfront.quota.exceeded',\n CLOUDFRONT_INVALID_PATH: 'cloudfront.invalid.path',\n CLOUDFRONT_API_ERROR: 'cloudfront.api.error',\n\n // Fastly CDN\n FASTLY_AUTHENTICATION_FAILED: 'fastly.authentication.failed',\n FASTLY_SERVICE_NOT_FOUND: 'fastly.service.not.found',\n FASTLY_PURGE_FAILED: 'fastly.purge.failed',\n FASTLY_RATE_LIMIT_EXCEEDED: 'fastly.rate.limit.exceeded',\n FASTLY_INVALID_URL: 'fastly.invalid.url',\n FASTLY_API_ERROR: 'fastly.api.error',\n\n // Generic CDN Errors\n CDN_INVALIDATION_FAILED: 'cdn.invalidation.failed',\n CDN_CONFIGURATION_INVALID: 'cdn.configuration.invalid',\n CDN_PROVIDER_NOT_FOUND: 'cdn.provider.not.found',\n\n // Webhook Errors\n STORAGE_WEBHOOK_SIGNATURE_INVALID: 'storage.webhook.signature.invalid',\n STORAGE_WEBHOOK_PAYLOAD_INVALID: 'storage.webhook.payload.invalid',\n STORAGE_WEBHOOK_PROCESSING_FAILED: 'storage.webhook.processing.failed',\n STORAGE_WEBHOOK_TIMEOUT: 'storage.webhook.timeout',\n STORAGE_WEBHOOK_ADAPTER_NOT_FOUND: 'storage.webhook.adapter.not.found',\n STORAGE_WEBHOOK_DUPLICATE_DETECTED: 'storage.webhook.duplicate.detected',\n STORAGE_WEBHOOK_IDEMPOTENCY_ERROR: 'storage.webhook.idempotency.error',\n STORAGE_WEBHOOK_RATE_LIMIT_EXCEEDED: 'storage.webhook.rate.limit.exceeded',\n\n // Presigned URLs\n STORAGE_PRESIGNED_URL_GENERATION_FAILED: 'storage.presigned.url.generation.failed',\n STORAGE_PRESIGNED_URL_EXPIRED: 'storage.presigned.url.expired',\n STORAGE_PRESIGNED_URL_INVALID: 'storage.presigned.url.invalid',\n\n // Chunked Upload\n STORAGE_CHUNKED_UPLOAD_INIT_FAILED: 'storage.chunked.upload.init.failed',\n STORAGE_CHUNKED_UPLOAD_PART_FAILED: 'storage.chunked.upload.part.failed',\n STORAGE_CHUNKED_UPLOAD_COMPLETE_FAILED: 'storage.chunked.upload.complete.failed',\n STORAGE_CHUNKED_UPLOAD_ABORT_FAILED: 'storage.chunked.upload.abort.failed',\n STORAGE_CHUNKED_UPLOAD_NOT_FOUND: 'storage.chunked.upload.not.found',\n\n // CORS\n STORAGE_CORS_CONFIGURATION_INVALID: 'storage.cors.configuration.invalid',\n STORAGE_CORS_ORIGIN_NOT_ALLOWED: 'storage.cors.origin.not.allowed',\n\n // TTL\n STORAGE_TTL_EXPIRED: 'storage.ttl.expired',\n STORAGE_TTL_CLEANUP_FAILED: 'storage.ttl.cleanup.failed',\n\n // Audit\n STORAGE_AUDIT_LOG_FAILED: 'storage.audit.log.failed',\n\n // Timeout & Network\n STORAGE_TIMEOUT: 'storage.timeout',\n STORAGE_NETWORK_ERROR: 'storage.network.error',\n STORAGE_CONNECTION_LOST: 'storage.connection.lost',\n\n // Permission & Quota\n STORAGE_PERMISSION_DENIED: 'storage.permission.denied',\n STORAGE_QUOTA_EXCEEDED: 'storage.quota.exceeded',\n STORAGE_INSUFFICIENT_SPACE: 'storage.insufficient.space',\n\n // Feature Implementation\n STORAGE_FEATURE_NOT_IMPLEMENTED: 'storage.feature.not.implemented',\n\n // ===== Core Package Errors =====\n // Feature Flags\n CORE_FEATURE_FLAG_NOT_FOUND: 'core.feature_flag.not_found',\n CORE_FEATURE_FLAG_INVALID_CONFIG: 'core.feature_flag.invalid_config',\n CORE_FEATURE_FLAG_EVALUATION_FAILED: 'core.feature_flag.evaluation_failed',\n CORE_FEATURE_FLAG_PROVIDER_ERROR: 'core.feature_flag.provider_error',\n CORE_FEATURE_FLAG_CACHE_ERROR: 'core.feature_flag.cache_error',\n CORE_FEATURE_FLAG_CONTEXT_INVALID: 'core.feature_flag.context_invalid',\n CORE_FEATURE_FLAG_RULE_INVALID: 'core.feature_flag.rule_invalid',\n CORE_FEATURE_FLAG_TOGGLE_FAILED: 'core.feature_flag.toggle_failed',\n\n // Cache\n CORE_CACHE_INITIALIZATION_FAILED: 'core.cache.initialization_failed',\n CORE_CACHE_STRATEGY_NOT_FOUND: 'core.cache.strategy_not_found',\n CORE_CACHE_OPERATION_FAILED: 'core.cache.operation_failed',\n CORE_CACHE_INVALIDATION_FAILED: 'core.cache.invalidation_failed',\n CORE_CACHE_SERIALIZATION_FAILED: 'core.cache.serialization_failed',\n\n // API Client\n CORE_API_CLIENT_INITIALIZATION_FAILED: 'core.api_client.initialization_failed',\n CORE_API_CLIENT_REQUEST_FAILED: 'core.api_client.request_failed',\n CORE_API_CLIENT_TIMEOUT: 'core.api_client.timeout',\n CORE_API_CLIENT_INVALID_RESPONSE: 'core.api_client.invalid_response',\n CORE_API_CLIENT_AUTHENTICATION_FAILED: 'core.api_client.authentication_failed',\n\n // Database Service\n CORE_DATABASE_SERVICE_INITIALIZATION_FAILED: 'core.database_service.initialization_failed',\n CORE_DATABASE_SERVICE_CONNECTION_FAILED: 'core.database_service.connection_failed',\n CORE_DATABASE_SERVICE_QUERY_FAILED: 'core.database_service.query_failed',\n CORE_DATABASE_SERVICE_TRANSACTION_FAILED: 'core.database_service.transaction_failed',\n\n // Validation\n CORE_VALIDATION_FAILED: 'core.validation.failed',\n CORE_VALIDATION_SCHEMA_INVALID: 'core.validation.schema_invalid',\n CORE_VALIDATION_REQUIRED_FIELD_MISSING: 'core.validation.required_field_missing',\n\n // Hash Utilities\n CORE_HASH_GENERATION_FAILED: 'core.hash.generation_failed',\n CORE_HASH_VERIFICATION_FAILED: 'core.hash.verification_failed',\n\n // Engine\n CORE_ENGINE_INITIALIZATION_FAILED: 'core.engine.initialization_failed',\n CORE_ENGINE_EXECUTION_FAILED: 'core.engine.execution_failed',\n CORE_ENGINE_CONFIGURATION_INVALID: 'core.engine.configuration_invalid',\n\n // Provider\n CORE_PROVIDER_NOT_FOUND: 'core.provider.not_found',\n CORE_PROVIDER_INITIALIZATION_FAILED: 'core.provider.initialization_failed',\n CORE_PROVIDER_OPERATION_FAILED: 'core.provider.operation_failed',\n\n // Context\n CORE_CONTEXT_INVALID: 'core.context.invalid',\n CORE_CONTEXT_MISSING_REQUIRED_DATA: 'core.context.missing_required_data',\n\n // General Core\n CORE_INITIALIZATION_FAILED: 'core.initialization_failed',\n CORE_CONFIGURATION_INVALID: 'core.configuration_invalid',\n CORE_OPERATION_FAILED: 'core.operation_failed',\n CORE_UNKNOWN_ERROR: 'core.unknown_error',\n\n // ===== Errors Package Errors =====\n ERROR_SYSTEM_NOT_INITIALIZED: 'error.system.not.initialized',\n EVENT_FACTORY_NOT_REGISTERED: 'error.event.factory.not.registered',\n DATABASE_ERROR: 'error.database',\n\n // Global Error Handler\n UNCAUGHT_EXCEPTION: 'error.uncaught.exception',\n UNHANDLED_REJECTION: 'error.unhandled.rejection',\n RUNTIME_ERROR: 'error.runtime',\n\n // ===== Database Errors =====\n // Connection & Configuration\n DB_ACCESS_DENIED: 'db.access_denied',\n DB_CONFIG_REQUIRED: 'db.config_required',\n DB_CONNECT_FAILED: 'db.connect_failed',\n DB_DISCONNECT_FAILED: 'db.disconnect_failed',\n DB_INIT_FAILED: 'db.init_failed',\n\n // Query & Execution\n DB_QUERY_FAILED: 'db.query_failed',\n DB_BUILD_WHERE_FAILED: 'db.build_where_failed',\n DB_INVALID_SQL: 'db.invalid_sql',\n DB_TRANSACTION_FAILED: 'db.transaction_failed',\n DB_UNSUPPORTED_OPERATOR: 'db.unsupported_operator',\n\n // CRUD Operations\n DB_CREATE_FAILED: 'db.create_failed',\n DB_CREATION_FAILED: 'db.creation_failed',\n DB_FETCH_FAILED: 'db.fetch_failed',\n DB_FIND_FAILED: 'db.find_failed',\n DB_FIND_MANY_FAILED: 'db.find_many_failed',\n DB_FIND_BY_ID_FAILED: 'db.find_by_id_failed',\n DB_UPDATE_FAILED: 'db.update_failed',\n DB_UPDATE_NO_CHANGES: 'db.update_no_changes',\n DB_DELETE_FAILED: 'db.delete_failed',\n DB_INSERT_FAILED: 'db.insert_failed',\n DB_RECORD_NOT_FOUND: 'db.record_not_found',\n DB_EXISTS_FAILED: 'db.exists_failed',\n\n // Schema & Columns\n DB_COLUMN_NOT_EXISTS: 'db.column_not_exists',\n DB_TABLE_NOT_REGISTERED: 'db.table_not_registered',\n DB_TABLE_REGISTRATION_FAILED: 'db.table_registration_failed',\n DB_ID_COLUMN_NOT_REGISTERED: 'db.id_column_not_registered',\n DB_INVALID_COLUMN: 'db.invalid_column',\n DB_INVALID_TABLE_NAME: 'db.invalid_table_name',\n DB_GET_ID_COLUMN_FAILED: 'db.get_id_column_failed',\n DB_GET_TABLE_FAILED: 'db.get_table_failed',\n\n // Validation & Parameters\n DB_INVALID_PARAMETERS: 'db.invalid_parameters',\n DB_INVALID_PARAMS: 'db.invalid_params',\n DB_INVALID_FILTER: 'db.invalid_filter',\n DB_INVALID_ID: 'db.invalid_id',\n DB_INVALID_ENTITY: 'db.invalid_entity',\n DB_INVALID_UPDATE_PARAMS: 'db.invalid_update_params',\n DB_INVALID_FIELD_NAME: 'db.invalid_field_name',\n DB_INVALID_RESULT: 'db.invalid_result',\n DB_NO_UPDATE_FIELDS: 'db.no_update_fields',\n\n // Count & Data\n DB_COUNT_FAILED: 'db.count_failed',\n DB_COUNT_NO_RESULTS: 'db.count_no_results',\n DB_NO_DATA: 'db.no_data',\n\n // Multi-tenant Context\n DB_NO_TENANT_CONTEXT: 'db.no_tenant_context',\n DB_NO_TENANT_ID: 'db.no_tenant_id',\n DB_TENANT_VALIDATION_FAILED: 'db.tenant_validation_failed',\n\n // Backup & Restore\n DB_BACKUP_CLEANUP_FAILED: 'db.backup_cleanup_failed',\n DB_BACKUP_FILE_NOT_FOUND: 'db.backup_file_not_found',\n DB_LIST_BACKUPS_FAILED: 'db.list_backups_failed',\n DB_INVALID_BACKUP_INFO: 'db.invalid_backup_info',\n DB_RESTORE_FAILED: 'db.restore_failed',\n\n // Cache Operations\n DB_CACHE_DELETE_FAILED: 'db.cache_delete_failed',\n DB_CACHE_HEALTH_CHECK_FAILED: 'db.cache_health_check_failed',\n DB_CACHE_INVALIDATE_FAILED: 'db.cache_invalidate_failed',\n DB_CACHE_SET_FAILED: 'db.cache_set_failed',\n DB_CACHE_GET_FAILED: 'db.cache_get_failed',\n\n // File & Storage\n DB_INVALID_FILEPATH: 'db.invalid_filepath',\n DB_S3_DELETE_FAILED: 'db.s3_delete_failed',\n DB_S3_DOWNLOAD_FAILED: 'db.s3_download_failed',\n DB_S3_NOT_CONFIGURED: 'db.s3_not_configured',\n DB_S3_UPLOAD_FAILED: 'db.s3_upload_failed',\n\n // Misc\n DB_SCHEDULE_SETUP_FAILED: 'db.schedule_setup_failed',\n DB_DECRYPTION_FAILED: 'db.decryption_failed',\n DB_INVALID_SHELL_ARG: 'db.invalid_shell_arg',\n DB_INVALID_BETWEEN_OPERATOR: 'db.invalid_between_operator',\n DB_INVALID_IN_OPERATOR: 'db.invalid_in_operator',\n DB_INVALID_COUNT: 'db.invalid_count',\n\n // Connection & Network\n DB_CONNECTION_FAILED: 'db.connection_failed',\n DB_CONNECTION_ERROR: 'db.connection_error',\n DB_TIMEOUT: 'db.timeout',\n\n // Constraints & Integrity\n DB_CONSTRAINT_VIOLATION: 'db.constraint_violation',\n DB_DEADLOCK: 'db.deadlock',\n DB_DUPLICATE_ENTRY: 'db.duplicate_entry',\n\n // Entity Operations\n DB_ENTITY_NOT_FOUND: 'db.entity_not_found',\n\n // Migration & Schema\n DB_MIGRATION_FAILED: 'db.migration_failed',\n\n // Multi-Write Operations\n DB_MULTI_WRITE_FAILED: 'db.multi_write_failed',\n\n // General\n DB_UNKNOWN_ERROR: 'db.unknown_error',\n\n // ===== Payments Package Errors =====\n\n PAYMENT_TIMEOUT: 'payment.timeout',\n PAYMENT_NETWORK_ERROR: 'payment.network.error',\n\n // Refund\n PAYMENT_REFUND_FAILED: 'payment.refund.failed',\n PAYMENT_REFUND_NOT_FOUND: 'payment.refund.not.found',\n PAYMENT_REFUND_ALREADY_PROCESSED: 'payment.refund.already.processed',\n PAYMENT_REFUND_AMOUNT_INVALID: 'payment.refund.amount.invalid',\n PAYMENT_REFUND_VALIDATION_FAILED: 'payment.refund.validation.failed',\n PAYMENT_REFUND_TIMEOUT: 'payment.refund.timeout',\n PAYMENT_REFUND_NOT_ALLOWED: 'payment.refund.not.allowed',\n PAYMENT_REFUND_AUTHORIZATION_FAILED: 'payment.refund.authorization.failed',\n PAYMENT_REFUND_PROCESSING_FAILED: 'payment.refund.processing.failed',\n\n // Provider\n PAYMENT_PROVIDER_ERROR: 'payment.provider.error',\n PAYMENT_PROVIDER_UNAVAILABLE: 'payment.provider.unavailable',\n PAYMENT_PROVIDER_CONFIGURATION_INVALID: 'payment.provider.configuration.invalid',\n PAYMENT_PROVIDER_RESPONSE_INVALID: 'payment.provider.response.invalid',\n PAYMENT_PROVIDER_TIMEOUT: 'payment.provider.timeout',\n PAYMENT_PROVIDER_AUTH_FAILED: 'payment.provider.auth.failed',\n PAYMENT_PROVIDER_RATE_LIMIT: 'payment.provider.rate.limit', // for HTTP 429\n PAYMENT_PROVIDER_UNKNOWN: 'payment.provider.unknown',\n PAYMENT_CUSTOMER_CREATION_FAILED: 'payment.customer.creation.failed',\n\n // Payment method errors\n PAYMENT_METHOD_SAVE_FAILED: 'payment.method.save.failed',\n PAYMENT_METHOD_DELETE_FAILED: 'payment.method.delete.failed',\n\n // Subscription errors\n PAYMENT_SUBSCRIPTION_CREATE_FAILED: 'payment.subscription.create.failed',\n PAYMENT_SUBSCRIPTION_CANCEL_FAILED: 'payment.subscription.cancel.failed',\n\n // Payout errors\n PAYMENT_PAYOUT_FAILED: 'payment.payout.failed',\n\n // Transaction history errors\n PAYMENT_TRANSACTION_HISTORY_FETCH_FAILED: 'payment.transaction.history.fetch.failed',\n\n // Compliance\n PAYMENT_COMPLIANCE_VIOLATION: 'payment.compliance.violation',\n PAYMENT_COMPLIANCE_CHECK_FAILED: 'payment.compliance.check.failed',\n PAYMENT_COMPLIANCE_LIMIT_EXCEEDED: 'payment.compliance.limit.exceeded',\n PAYMENT_COMPLIANCE_POLICY_MISSING: 'payment.compliance.policy.missing',\n PAYMENT_COMPLIANCE_KYC_REQUIRED: 'payment.compliance.kyc.required',\n PAYMENT_COMPLIANCE_GEOGRAPHIC_RESTRICTION: 'payment.compliance.geographic.restriction',\n PAYMENT_COMPLIANCE_AML_CHECK_FAILED: 'payment.compliance.aml.check.failed',\n PAYMENT_COMPLIANCE_PSD2_STRONG_AUTH_REQUIRED: 'payment.compliance.psd2.strong.auth.required',\n PAYMENT_COMPLIANCE_GDPR_DATA_ACCESS: 'payment.compliance.gdpr.data.access',\n PAYMENT_COMPLIANCE_PCI_COMPLIANCE: 'payment.compliance.pci.compliance',\n PAYMENT_COMPLIANCE_LOCAL_BANKING_RESTRICTION: 'payment.compliance.local.banking.restriction',\n\n // Processing\n PAYMENT_PROCESSING_FAILED: 'payment.processing.failed',\n PAYMENT_PROCESSING_TIMEOUT: 'payment.processing.timeout',\n PAYMENT_PROCESSING_GATEWAY_ERROR: 'payment.processing.gateway.error',\n PAYMENT_PROCESSING_DUPLICATE: 'payment.processing.duplicate',\n PAYMENT_PROCESSING_UNEXPECTED_STATE: 'payment.processing.unexpected.state',\n\n // Security\n PAYMENT_SECURITY_VIOLATION: 'payment.security.violation',\n PAYMENT_SECURITY_SIGNATURE_INVALID: 'payment.security.signature.invalid',\n PAYMENT_SECURITY_ENCRYPTION_FAILED: 'payment.security.encryption.failed',\n PAYMENT_SECURITY_FRAUD_DETECTED: 'payment.security.fraud.detected',\n PAYMENT_SECURITY_TOKEN_INVALID: 'payment.security.token.invalid',\n PAYMENT_SECURITY_VELOCITY_LIMIT_EXCEEDED: 'payment.security.velocity.limit.exceeded',\n\n // Validation\n PAYMENT_VALIDATION_FAILED: 'payment.validation.failed',\n PAYMENT_VALIDATION_AMOUNT_INVALID: 'payment.validation.amount.invalid',\n PAYMENT_VALIDATION_CURRENCY_UNSUPPORTED: 'payment.validation.currency.unsupported',\n PAYMENT_VALIDATION_METADATA_INVALID: 'payment.validation.metadata.invalid',\n PAYMENT_VALIDATION_MISSING_REQUIRED_FIELD: 'payment.validation.field.required',\n\n // Webhook\n PAYMENT_WEBHOOK_SIGNATURE_INVALID: 'payment.webhook.signature.invalid',\n PAYMENT_WEBHOOK_PROCESSING_FAILED: 'payment.webhook.processing.failed',\n PAYMENT_WEBHOOK_VALIDATION_FAILED: 'payment.webhook.validation.failed',\n PAYMENT_WEBHOOK_EVENT_TYPE_UNSUPPORTED: 'payment.webhook.event.type.unsupported',\n PAYMENT_WEBHOOK_HANDLER_NOT_FOUND: 'payment.webhook.handler.not.found',\n\n // ===== Payment Adapter & Core Errors =====\n PAYMENT_ADAPTER_INIT_FAILED: 'payment.adapter.init.failed',\n PAYMENT_ADAPTER_SHUTDOWN_ERROR: 'payment.adapter.shutdown.error',\n PAYMENT_ADAPTER_HMAC_COMPUTATION_FAILED: 'payment.adapter.hmac.computation.failed',\n PAYMENT_ADAPTER_MISSING_PROVIDER: 'payment.adapter.missing.provider',\n PAYMENT_ADAPTER_MISSING_ENVIRONMENT: 'payment.adapter.missing.environment',\n PAYMENT_ADAPTER_MISSING_CREDENTIALS: 'payment.adapter.missing.credentials',\n PAYMENT_ADAPTER_MISSING_WEBHOOK_URL: 'payment.adapter.missing.webhook.url',\n PAYMENT_ADAPTER_MISSING_UNREGISTER_ENDPOINT: 'payment.adapter.missing.unregister.endpoint',\n PAYMENT_ADAPTER_UNSUPPORTED_OPERATION: 'payment.adapter.unsupported.operation',\n PAYMENT_ADAPTER_RESPONSE_MAPPING_FAILED: 'payment.adapter.response.mapping.failed',\n\n // Idempotency & State Management\n PAYMENT_IDEMPOTENCY_VIOLATION: 'payment.idempotency.violation',\n PAYMENT_IDEMPOTENCY_KEY_MISSING: 'payment.idempotency.key.missing',\n PAYMENT_IDEMPOTENCY_STORE_ERROR: 'payment.idempotency.store.error',\n\n // Routing & Strategy\n PAYMENT_ROUTING_FAILED: 'payment.routing.failed',\n PAYMENT_ROUTING_CONFIGURATION_INVALID: 'payment.routing.configuration.invalid',\n PAYMENT_ROUTING_PROVIDER_UNAVAILABLE: 'payment.routing.provider.unavailable',\n PAYMENT_ROUTING_RETRY_EXCEEDED: 'payment.routing.retry.exceeded',\n\n // General Payment Framework Errors\n PAYMENT_SYSTEM_NOT_INITIALIZED: 'payment.system.not.initialized',\n PAYMENT_CONTEXT_OPERATION_FAILED: 'payment.context.operation.failed',\n PAYMENT_INTERNAL_ERROR: 'payment.internal.error',\n PAYMENT_UNKNOWN_ERROR: 'payment.unknown.error',\n\n /**\n * Thrown when an event could not be emitted due to internal state or creation errors.\n * Typically non-retryable, indicates a logic or validation fault.\n */\n PAYMENT_EVENT_EMIT_FAILED: 'PAYMENT_EVENT_EMIT_FAILED',\n PAYMENT_EVENT_INVALID_TYPE: 'PAYMENT_EVENT_INVALID_TYPE',\n PAYMENT_EVENT_CREATION_FAILED: 'PAYMENT_EVENT_CREATION_FAILED',\n PAYMENT_EVENT_HANDLER_TIMEOUT: 'PAYMENT_EVENT_HANDLER_TIMEOUT',\n PAYMENT_EVENT_HANDLER_INVALID_RESULT: 'PAYMENT_EVENT_HANDLER_INVALID_RESULT',\n PAYMENT_EVENT_LIFECYCLE_FAILURE: 'PAYMENT_EVENT_LIFECYCLE_FAILURE',\n\n // Unsupported feature errors (Payment Gateway)\n SAVE_PAYMENT_METHOD_UNSUPPORTED: 'payment.method.save.unsupported',\n DELETE_PAYMENT_METHOD_UNSUPPORTED: 'payment.method.delete.unsupported',\n GET_USER_PAYMENT_METHODS_UNSUPPORTED: 'payment.method.get.unsupported',\n CREATE_SUBSCRIPTION_UNSUPPORTED: 'payment.subscription.create.unsupported',\n CANCEL_SUBSCRIPTION_UNSUPPORTED: 'payment.subscription.cancel.unsupported',\n PROCESS_PAYOUT_UNSUPPORTED: 'payment.payout.unsupported',\n GET_TRANSACTION_HISTORY_UNSUPPORTED: 'payment.transaction.history.unsupported',\n\n WITHDRAWAL_UNSUPPORTED: 'payment.withdrawal.unsupported',\n WITHDRAWAL_CREATE_UNSUPPORTED: 'payment.withdrawal.create.unsupported',\n WITHDRAWAL_PROCESS_UNSUPPORTED: 'payment.withdrawal.process.unsupported',\n WITHDRAWAL_STATUS_FETCH_UNSUPPORTED: 'payment.withdrawal.status.fetch.unsupported',\n WITHDRAWAL_CANCEL_UNSUPPORTED: 'payment.withdrawal.cancel.unsupported',\n\n WITHDRAWAL_INSUFFICIENT_BALANCE: 'payment.withdrawal.insufficient.balance',\n WITHDRAWAL_INVALID_ACCOUNT: 'payment.withdrawal.invalid.account',\n WITHDRAWAL_KYC_REQUIRED: 'payment.withdrawal.kyc.required',\n WITHDRAWAL_LIMIT_EXCEEDED: 'payment.withdrawal.limit.exceeded',\n WITHDRAWAL_PROVIDER_ERROR: 'payment.withdrawal.provider.error',\n WITHDRAWAL_FAILED: 'payment.withdrawal.failed',\n WITHDRAWAL_TIMEOUT: 'payment.withdrawal.timeout',\n\n // Product\n PRODUCT_CREATE_UNSUPPORTED: 'payment.product.create.unsupported',\n PRODUCT_UPDATE_UNSUPPORTED: 'payment.product.update.unsupported',\n PRODUCT_FETCH_UNSUPPORTED: 'payment.product.fetch.unsupported',\n PRODUCT_DEACTIVATE_UNSUPPORTED: 'payment.product.deactivate.unsupported',\n\n PRODUCT_NOT_FOUND: 'payment.product.not_found',\n PRODUCT_INVALID_DATA: 'payment.product.invalid.data',\n PRODUCT_PROVIDER_ERROR: 'payment.product.provider.error',\n PRODUCT_ALREADY_INACTIVE: 'payment.product.already.inactive',\n PRODUCT_SYNC_FAILED: 'payment.product.sync.failed',\n\n // Pricing\n PRICING_CREATE_UNSUPPORTED: 'payment.pricing.create.unsupported',\n PRICING_UPDATE_UNSUPPORTED: 'payment.pricing.update.unsupported',\n PRICING_DEACTIVATE_UNSUPPORTED: 'payment.pricing.deactivate.unsupported',\n\n PRICING_NOT_FOUND: 'payment.pricing.not_found',\n PRICING_INVALID_AMOUNT: 'payment.pricing.invalid.amount',\n PRICING_INVALID_CURRENCY: 'payment.pricing.invalid.currency',\n PRICING_PROVIDER_ERROR: 'payment.pricing.provider.error',\n PRICING_ALREADY_INACTIVE: 'payment.pricing.already.inactive',\n PRICING_SYNC_FAILED: 'payment.pricing.sync.failed',\n PRICING_REQUIRES_NEW_VERSION: 'payment.pricing.requires.new.version',\n\n // Authentication\n\n INVALID_CREDENTIALS: 'AUTH_INVALID_CREDENTIALS',\n TOKEN_EXPIRED: 'AUTH_TOKEN_EXPIRED',\n TOKEN_INVALID: 'AUTH_TOKEN_INVALID',\n TOKEN_REVOKED: 'AUTH_TOKEN_REVOKED',\n SESSION_EXPIRED: 'AUTH_SESSION_EXPIRED',\n MFA_REQUIRED: 'AUTH_MFA_REQUIRED',\n MFA_INVALID: 'AUTH_MFA_INVALID',\n INSUFFICIENT_PERMISSIONS: 'AUTH_INSUFFICIENT_PERMISSIONS',\n ROLE_REQUIRED: 'AUTH_ROLE_REQUIRED',\n WALLET_SIGNATURE_INVALID: 'AUTH_WALLET_SIGNATURE_INVALID',\n NONCE_EXPIRED: 'AUTH_NONCE_EXPIRED',\n NONCE_ALREADY_USED: 'AUTH_NONCE_ALREADY_USED',\n ACCOUNT_LOCKED: 'AUTH_ACCOUNT_LOCKED',\n ACCOUNT_SUSPENDED: 'AUTH_ACCOUNT_SUSPENDED',\n} as const;\n\n/**\n * Type for all error code values\n */\nexport type ErrorCodeValue = (typeof ERROR_CODES)[keyof typeof ERROR_CODES];\n\n// ===== Package-Specific Error Code Subsets =====\n// These are convenience exports for backwards compatibility and easier imports\n\n/**\n * API-specific error codes\n * Subset of ERROR_CODES for @plyaz/api package\n */\nexport const API_ERROR_CODES = {\n CLIENT_INITIALIZATION_FAILED: ERROR_CODES.CLIENT_INITIALIZATION_FAILED,\n CLIENT_INVALID_CONFIG: ERROR_CODES.CLIENT_INVALID_CONFIG,\n CLIENT_MISSING_BASE_URL: ERROR_CODES.CLIENT_MISSING_BASE_URL,\n CLIENT_CANCELLED: ERROR_CODES.CLIENT_CANCELLED,\n CONFIG_VALIDATION_FAILED: ERROR_CODES.CONFIG_VALIDATION_FAILED,\n HEADER_PROCESSING_FAILED: ERROR_CODES.HEADER_PROCESSING_FAILED,\n NETWORK_OVERRIDE_FAILED: ERROR_CODES.NETWORK_OVERRIDE_FAILED,\n REQUEST_TIMEOUT: ERROR_CODES.REQUEST_TIMEOUT,\n REQUEST_ABORTED: ERROR_CODES.REQUEST_ABORTED,\n REQUEST_INVALID_PARAMS: ERROR_CODES.REQUEST_INVALID_PARAMS,\n REQUEST_PREPARATION_FAILED: ERROR_CODES.REQUEST_PREPARATION_FAILED,\n RESPONSE_INVALID_FORMAT: ERROR_CODES.RESPONSE_INVALID_FORMAT,\n RESPONSE_PARSING_FAILED: ERROR_CODES.RESPONSE_PARSING_FAILED,\n AUTH_UNAUTHORIZED: ERROR_CODES.AUTH_UNAUTHORIZED,\n AUTH_FORBIDDEN: ERROR_CODES.AUTH_FORBIDDEN,\n AUTH_TOKEN_EXPIRED: ERROR_CODES.TOKEN_EXPIRED,\n AUTH_INVALID_CREDENTIALS: ERROR_CODES.INVALID_CREDENTIALS,\n RATE_LIMIT_EXCEEDED: ERROR_CODES.RATE_LIMIT_EXCEEDED,\n RESOURCE_NOT_FOUND: ERROR_CODES.RESOURCE_NOT_FOUND,\n RESOURCE_CONFLICT: ERROR_CODES.RESOURCE_CONFLICT,\n VALIDATION_FAILED: ERROR_CODES.API_VALIDATION_FAILED,\n INVALID_INPUT: ERROR_CODES.API_INVALID_INPUT,\n VALIDATION_ERROR: ERROR_CODES.VALIDATION_ERROR,\n REQUIRED_FIELD_MISSING: ERROR_CODES.REQUIRED_FIELD_MISSING,\n INVALID_FORMAT: ERROR_CODES.INVALID_FORMAT,\n VALIDATION_INVALID_FORMAT: ERROR_CODES.VALIDATION_INVALID_FORMAT,\n STRING_TOO_SHORT: ERROR_CODES.STRING_TOO_SHORT,\n STRING_TOO_LONG: ERROR_CODES.STRING_TOO_LONG,\n NETWORK_ERROR: ERROR_CODES.NETWORK_ERROR,\n CONNECTION_FAILED: ERROR_CODES.CONNECTION_FAILED,\n NETWORK_CONNECTION_FAILED: ERROR_CODES.NETWORK_CONNECTION_FAILED,\n NETWORK_OFFLINE: ERROR_CODES.NETWORK_OFFLINE,\n NETWORK_DNS_FAILED: ERROR_CODES.NETWORK_DNS_FAILED,\n NETWORK_TIMEOUT: ERROR_CODES.NETWORK_TIMEOUT,\n NETWORK_CONFIGURATION_INVALID: ERROR_CODES.NETWORK_CONFIGURATION_INVALID,\n SERVER_ERROR: ERROR_CODES.SERVER_ERROR,\n INTERNAL_SERVER_ERROR: ERROR_CODES.INTERNAL_SERVER_ERROR,\n SERVICE_UNAVAILABLE: ERROR_CODES.SERVICE_UNAVAILABLE,\n CACHE_READ_FAILED: ERROR_CODES.CACHE_READ_FAILED,\n CACHE_WRITE_FAILED: ERROR_CODES.CACHE_WRITE_FAILED,\n CACHE_INVALIDATION_FAILED: ERROR_CODES.CACHE_INVALIDATION_FAILED,\n CACHE_STORAGE_FAILED: ERROR_CODES.CACHE_STORAGE_FAILED,\n CACHE_RETRIEVAL_FAILED: ERROR_CODES.CACHE_RETRIEVAL_FAILED,\n RETRY_LIMIT_EXCEEDED: ERROR_CODES.RETRY_LIMIT_EXCEEDED,\n RETRY_FAILED: ERROR_CODES.RETRY_FAILED,\n RETRY_EXHAUSTED: ERROR_CODES.RETRY_EXHAUSTED,\n RETRY_STRATEGY_INVALID: ERROR_CODES.RETRY_STRATEGY_INVALID,\n STRATEGY_INVALID: ERROR_CODES.STRATEGY_INVALID,\n STRATEGY_CONFLICT: ERROR_CODES.STRATEGY_CONFLICT,\n STRATEGY_EXECUTION_FAILED: ERROR_CODES.STRATEGY_EXECUTION_FAILED,\n HEADERS_ENRICHMENT_FAILED: ERROR_CODES.HEADERS_ENRICHMENT_FAILED,\n HEADERS_VALIDATION_FAILED: ERROR_CODES.HEADERS_VALIDATION_FAILED,\n HEADERS_MERGE_CONFLICT: ERROR_CODES.HEADERS_MERGE_CONFLICT,\n REGION_DETECTION_FAILED: ERROR_CODES.REGION_DETECTION_FAILED,\n REGIONAL_PRESET_NOT_FOUND: ERROR_CODES.REGIONAL_PRESET_NOT_FOUND,\n EXTERNAL_SERVICE_ERROR: ERROR_CODES.EXTERNAL_SERVICE_ERROR,\n NETWORK_PRESET_NOT_FOUND: ERROR_CODES.NETWORK_PRESET_NOT_FOUND,\n TIMEOUT: ERROR_CODES.TIMEOUT,\n DEBUG_TRACKING_FAILED: ERROR_CODES.DEBUG_TRACKING_FAILED,\n DEBUG_OVERRIDE_FAILED: ERROR_CODES.DEBUG_OVERRIDE_FAILED,\n DEBUG_CONFLICT_DETECTED: ERROR_CODES.DEBUG_CONFLICT_DETECTED,\n POLLING_CANCELLED: ERROR_CODES.POLLING_CANCELLED,\n POLLING_TIMEOUT: ERROR_CODES.POLLING_TIMEOUT,\n POLLING_INVALID_CONFIG: ERROR_CODES.POLLING_INVALID_CONFIG,\n PUBSUB_SUBSCRIPTION_FAILED: ERROR_CODES.PUBSUB_SUBSCRIPTION_FAILED,\n PUBSUB_PUBLICATION_FAILED: ERROR_CODES.PUBSUB_PUBLICATION_FAILED,\n PUBSUB_INVALID_TOPIC: ERROR_CODES.PUBSUB_INVALID_TOPIC,\n PUBSUB_CHANNEL_ERROR: ERROR_CODES.PUBSUB_CHANNEL_ERROR,\n REVALIDATION_FAILED: ERROR_CODES.REVALIDATION_FAILED,\n REVALIDATION_IN_PROGRESS: ERROR_CODES.REVALIDATION_IN_PROGRESS,\n ENDPOINT_BUILD_FAILED: ERROR_CODES.ENDPOINT_BUILD_FAILED,\n ENDPOINT_NOT_FOUND: ERROR_CODES.ENDPOINT_NOT_FOUND,\n ENDPOINT_INVALID_CONFIG: ERROR_CODES.ENDPOINT_INVALID_CONFIG,\n EVENT_HANDLER_FAILED: ERROR_CODES.EVENT_HANDLER_FAILED,\n EVENT_EMISSION_FAILED: ERROR_CODES.EVENT_EMISSION_FAILED,\n MONITORING_FAILED: ERROR_CODES.MONITORING_FAILED,\n CONTEXT_OPERATION_FAILED: ERROR_CODES.CONTEXT_OPERATION_FAILED,\n CLIENT_ERROR: ERROR_CODES.CLIENT_ERROR,\n UNKNOWN_ERROR: ERROR_CODES.UNKNOWN_ERROR,\n\n // CDN Provider Errors (Third-party services)\n // Cloudflare\n CLOUDFLARE_AUTHENTICATION_FAILED: ERROR_CODES.CLOUDFLARE_AUTHENTICATION_FAILED,\n CLOUDFLARE_ZONE_NOT_FOUND: ERROR_CODES.CLOUDFLARE_ZONE_NOT_FOUND,\n CLOUDFLARE_PURGE_FAILED: ERROR_CODES.CLOUDFLARE_PURGE_FAILED,\n CLOUDFLARE_RATE_LIMIT_EXCEEDED: ERROR_CODES.CLOUDFLARE_RATE_LIMIT_EXCEEDED,\n CLOUDFLARE_INVALID_URL: ERROR_CODES.CLOUDFLARE_INVALID_URL,\n CLOUDFLARE_API_ERROR: ERROR_CODES.CLOUDFLARE_API_ERROR,\n\n // CloudFront\n CLOUDFRONT_AUTHENTICATION_FAILED: ERROR_CODES.CLOUDFRONT_AUTHENTICATION_FAILED,\n CLOUDFRONT_DISTRIBUTION_NOT_FOUND: ERROR_CODES.CLOUDFRONT_DISTRIBUTION_NOT_FOUND,\n CLOUDFRONT_INVALIDATION_FAILED: ERROR_CODES.CLOUDFRONT_INVALIDATION_FAILED,\n CLOUDFRONT_QUOTA_EXCEEDED: ERROR_CODES.CLOUDFRONT_QUOTA_EXCEEDED,\n CLOUDFRONT_INVALID_PATH: ERROR_CODES.CLOUDFRONT_INVALID_PATH,\n CLOUDFRONT_API_ERROR: ERROR_CODES.CLOUDFRONT_API_ERROR,\n\n // Fastly\n FASTLY_AUTHENTICATION_FAILED: ERROR_CODES.FASTLY_AUTHENTICATION_FAILED,\n FASTLY_SERVICE_NOT_FOUND: ERROR_CODES.FASTLY_SERVICE_NOT_FOUND,\n FASTLY_PURGE_FAILED: ERROR_CODES.FASTLY_PURGE_FAILED,\n FASTLY_RATE_LIMIT_EXCEEDED: ERROR_CODES.FASTLY_RATE_LIMIT_EXCEEDED,\n FASTLY_INVALID_URL: ERROR_CODES.FASTLY_INVALID_URL,\n FASTLY_API_ERROR: ERROR_CODES.FASTLY_API_ERROR,\n\n // Generic CDN\n CDN_INVALIDATION_FAILED: ERROR_CODES.CDN_INVALIDATION_FAILED,\n CDN_CONFIGURATION_INVALID: ERROR_CODES.CDN_CONFIGURATION_INVALID,\n CDN_PROVIDER_NOT_FOUND: ERROR_CODES.CDN_PROVIDER_NOT_FOUND,\n} as const;\n\n/**\n * Notification-specific error codes\n * Subset of ERROR_CODES for @plyaz/notifications package\n */\nexport const NOTIFICATION_ERROR_CODES = {\n PROVIDER_SEND_FAILED: ERROR_CODES.NOTIFICATION_PROVIDER_SEND_FAILED,\n PROVIDER_CONFIGURATION_INVALID: ERROR_CODES.NOTIFICATION_PROVIDER_CONFIGURATION_INVALID,\n PROVIDER_RATE_LIMIT: ERROR_CODES.NOTIFICATION_PROVIDER_RATE_LIMIT,\n PROVIDER_AUTH_FAILED: ERROR_CODES.NOTIFICATION_PROVIDER_AUTH_FAILED,\n PROVIDER_TIMEOUT: ERROR_CODES.NOTIFICATION_PROVIDER_TIMEOUT,\n PROVIDER_UNAVAILABLE: ERROR_CODES.NOTIFICATION_PROVIDER_UNAVAILABLE,\n PROVIDER_FEATURE_NOT_SUPPORTED: ERROR_CODES.NOTIFICATION_PROVIDER_FEATURE_NOT_SUPPORTED,\n ALL_PROVIDERS_FAILED: ERROR_CODES.NOTIFICATION_ALL_PROVIDERS_FAILED,\n INVALID_INPUT: ERROR_CODES.NOTIFICATION_INVALID_INPUT,\n INVALID_RECIPIENT: ERROR_CODES.NOTIFICATION_INVALID_RECIPIENT,\n INVALID_TEMPLATE: ERROR_CODES.NOTIFICATION_INVALID_TEMPLATE,\n INVALID_PAYLOAD: ERROR_CODES.NOTIFICATION_INVALID_PAYLOAD,\n MISSING_REQUIRED_FIELD: ERROR_CODES.NOTIFICATION_MISSING_REQUIRED_FIELD,\n VALIDATION_FAILED: ERROR_CODES.NOTIFICATION_VALIDATION_FAILED,\n USER_OPTED_OUT: ERROR_CODES.NOTIFICATION_USER_OPTED_OUT,\n QUEUE_FULL: ERROR_CODES.NOTIFICATION_QUEUE_FULL,\n QUEUE_PROCESSING_FAILED: ERROR_CODES.NOTIFICATION_QUEUE_PROCESSING_FAILED,\n WEBHOOK_SIGNATURE_INVALID: ERROR_CODES.NOTIFICATION_WEBHOOK_SIGNATURE_INVALID,\n WEBHOOK_VALIDATION_FAILED: ERROR_CODES.NOTIFICATION_WEBHOOK_VALIDATION_FAILED,\n WEBHOOK_PROCESSING_FAILED: ERROR_CODES.NOTIFICATION_WEBHOOK_PROCESSING_FAILED,\n TEMPLATE_NOT_FOUND: ERROR_CODES.NOTIFICATION_TEMPLATE_NOT_FOUND,\n TEMPLATE_RENDER_FAILED: ERROR_CODES.NOTIFICATION_TEMPLATE_RENDER_FAILED,\n UNKNOWN_ERROR: ERROR_CODES.NOTIFICATION_UNKNOWN_ERROR,\n INITIALIZATION_FAILED: ERROR_CODES.NOTIFICATION_INITIALIZATION_FAILED,\n} as const;\n\n/**\n * Storage-specific error codes\n * Subset of ERROR_CODES for @plyaz/storage package\n */\nexport const STORAGE_ERROR_CODES = {\n // General\n UNKNOWN_ERROR: ERROR_CODES.STORAGE_UNKNOWN_ERROR,\n INITIALIZATION_FAILED: ERROR_CODES.STORAGE_INITIALIZATION_FAILED,\n\n // Adapter\n ADAPTER_NOT_FOUND: ERROR_CODES.STORAGE_ADAPTER_NOT_FOUND,\n ADAPTER_INITIALIZATION_FAILED: ERROR_CODES.STORAGE_ADAPTER_INITIALIZATION_FAILED,\n ADAPTER_CONFIGURATION_INVALID: ERROR_CODES.STORAGE_ADAPTER_CONFIGURATION_INVALID,\n ADAPTER_ALREADY_REGISTERED: ERROR_CODES.STORAGE_ADAPTER_ALREADY_REGISTERED,\n ADAPTER_CONNECTION_FAILED: ERROR_CODES.STORAGE_ADAPTER_CONNECTION_FAILED,\n ADAPTER_AUTHENTICATION_FAILED: ERROR_CODES.STORAGE_ADAPTER_AUTHENTICATION_FAILED,\n ADAPTER_OPERATION_FAILED: ERROR_CODES.STORAGE_ADAPTER_OPERATION_FAILED,\n ADAPTER_HEALTH_CHECK_FAILED: ERROR_CODES.STORAGE_ADAPTER_HEALTH_CHECK_FAILED,\n ADAPTER_UNAVAILABLE: ERROR_CODES.STORAGE_ADAPTER_UNAVAILABLE,\n ADAPTER_TIMEOUT: ERROR_CODES.STORAGE_ADAPTER_TIMEOUT,\n ADAPTER_RATE_LIMIT: ERROR_CODES.STORAGE_ADAPTER_RATE_LIMIT,\n ADAPTER_QUOTA_EXCEEDED: ERROR_CODES.STORAGE_ADAPTER_QUOTA_EXCEEDED,\n ADAPTER_UNSUPPORTED_OPERATION: ERROR_CODES.STORAGE_ADAPTER_UNSUPPORTED_OPERATION,\n ADAPTER_FEATURE_NOT_SUPPORTED: ERROR_CODES.STORAGE_ADAPTER_FEATURE_NOT_SUPPORTED,\n NO_HEALTHY_ADAPTERS: ERROR_CODES.STORAGE_NO_HEALTHY_ADAPTERS,\n ALL_ADAPTERS_FAILED: ERROR_CODES.STORAGE_ALL_ADAPTERS_FAILED,\n\n // File Validation\n FILE_TOO_LARGE: ERROR_CODES.STORAGE_FILE_TOO_LARGE,\n FILE_TOO_SMALL: ERROR_CODES.STORAGE_FILE_TOO_SMALL,\n FILE_SIZE_INVALID: ERROR_CODES.STORAGE_FILE_SIZE_INVALID,\n FILE_TYPE_NOT_ALLOWED: ERROR_CODES.STORAGE_FILE_TYPE_NOT_ALLOWED,\n INVALID_MIME_TYPE: ERROR_CODES.STORAGE_INVALID_MIME_TYPE,\n INVALID_FILE_EXTENSION: ERROR_CODES.STORAGE_INVALID_FILE_EXTENSION,\n FILE_EXTENSION_INVALID: ERROR_CODES.STORAGE_FILE_EXTENSION_INVALID,\n FILE_EXTENSION_MISMATCH: ERROR_CODES.STORAGE_FILE_EXTENSION_MISMATCH,\n EXECUTABLE_NOT_ALLOWED: ERROR_CODES.STORAGE_EXECUTABLE_NOT_ALLOWED,\n VALIDATION_FAILED: ERROR_CODES.STORAGE_VALIDATION_FAILED,\n INVALID_FILE_CONTENT: ERROR_CODES.STORAGE_INVALID_FILE_CONTENT,\n\n // Security\n SECURITY_VIRUS_DETECTED: ERROR_CODES.STORAGE_SECURITY_VIRUS_DETECTED,\n SECURITY_SCAN_FAILED: ERROR_CODES.STORAGE_SECURITY_SCAN_FAILED,\n SECURITY_ACCESS_DENIED: ERROR_CODES.STORAGE_SECURITY_ACCESS_DENIED,\n SECURITY_ENCRYPTION_FAILED: ERROR_CODES.STORAGE_SECURITY_ENCRYPTION_FAILED,\n\n // File Operations\n FILE_UPLOAD_FAILED: ERROR_CODES.STORAGE_FILE_UPLOAD_FAILED,\n FILE_DOWNLOAD_FAILED: ERROR_CODES.STORAGE_FILE_DOWNLOAD_FAILED,\n FILE_DELETE_FAILED: ERROR_CODES.STORAGE_FILE_DELETE_FAILED,\n STORAGE_FILE_UPDATE_FAILED: ERROR_CODES.STORAGE_FILE_UPDATE_FAILED,\n FILE_NOT_FOUND: ERROR_CODES.STORAGE_FILE_NOT_FOUND,\n FILE_ALREADY_EXISTS: ERROR_CODES.STORAGE_FILE_ALREADY_EXISTS,\n FILE_MOVE_FAILED: ERROR_CODES.STORAGE_FILE_MOVE_FAILED,\n FILE_COPY_FAILED: ERROR_CODES.STORAGE_FILE_COPY_FAILED,\n FILE_READ_FAILED: ERROR_CODES.STORAGE_FILE_READ_FAILED,\n FILE_WRITE_FAILED: ERROR_CODES.STORAGE_FILE_WRITE_FAILED,\n FILE_CORRUPTED: ERROR_CODES.STORAGE_FILE_CORRUPTED,\n INVALID_OPERATION: ERROR_CODES.STORAGE_INVALID_OPERATION,\n\n // Metadata\n METADATA_EXTRACTION_FAILED: ERROR_CODES.STORAGE_METADATA_EXTRACTION_FAILED,\n METADATA_INVALID: ERROR_CODES.STORAGE_METADATA_INVALID,\n METADATA_UPDATE_FAILED: ERROR_CODES.STORAGE_METADATA_UPDATE_FAILED,\n\n // Media Processing\n MEDIA_PROCESSING_FAILED: ERROR_CODES.STORAGE_MEDIA_PROCESSING_FAILED,\n MEDIA_RESIZE_FAILED: ERROR_CODES.STORAGE_MEDIA_RESIZE_FAILED,\n MEDIA_FORMAT_UNSUPPORTED: ERROR_CODES.STORAGE_MEDIA_FORMAT_UNSUPPORTED,\n MEDIA_TRANSCODE_FAILED: ERROR_CODES.STORAGE_MEDIA_TRANSCODE_FAILED,\n MEDIA_THUMBNAIL_FAILED: ERROR_CODES.STORAGE_MEDIA_THUMBNAIL_FAILED,\n MEDIA_INVALID_DIMENSIONS: ERROR_CODES.STORAGE_MEDIA_INVALID_DIMENSIONS,\n\n // Template & PDF\n TEMPLATE_NOT_FOUND: ERROR_CODES.STORAGE_TEMPLATE_NOT_FOUND,\n TEMPLATE_RENDER_FAILED: ERROR_CODES.STORAGE_TEMPLATE_RENDER_FAILED,\n PDF_GENERATION_FAILED: ERROR_CODES.STORAGE_PDF_GENERATION_FAILED,\n PDF_RENDERING_TIMEOUT: ERROR_CODES.STORAGE_PDF_RENDERING_TIMEOUT,\n\n // Queue\n QUEUE_FULL: ERROR_CODES.STORAGE_QUEUE_FULL,\n QUEUE_PROCESSING_FAILED: ERROR_CODES.STORAGE_QUEUE_PROCESSING_FAILED,\n QUEUE_ITEM_NOT_FOUND: ERROR_CODES.STORAGE_QUEUE_ITEM_NOT_FOUND,\n\n // Compliance\n COMPLIANCE_VIOLATION: ERROR_CODES.STORAGE_COMPLIANCE_VIOLATION,\n COMPLIANCE_RETENTION_VIOLATION: ERROR_CODES.STORAGE_COMPLIANCE_RETENTION_VIOLATION,\n COMPLIANCE_RETENTION_EXPIRED: ERROR_CODES.STORAGE_COMPLIANCE_RETENTION_EXPIRED,\n COMPLIANCE_IMMUTABLE_FILE: ERROR_CODES.STORAGE_COMPLIANCE_IMMUTABLE_FILE,\n COMPLIANCE_POLICY_NOT_FOUND: ERROR_CODES.STORAGE_COMPLIANCE_POLICY_NOT_FOUND,\n COMPLIANCE_SOFT_DELETE_REQUIRED: ERROR_CODES.STORAGE_COMPLIANCE_SOFT_DELETE_REQUIRED,\n COMPLIANCE_GRACE_PERIOD_ACTIVE: ERROR_CODES.STORAGE_COMPLIANCE_GRACE_PERIOD_ACTIVE,\n COMPLIANCE_DEFERRED_DELETION: ERROR_CODES.STORAGE_COMPLIANCE_DEFERRED_DELETION,\n COMPLIANCE_PATTERN_PROTECTED: ERROR_CODES.STORAGE_COMPLIANCE_PATTERN_PROTECTED,\n\n // Share Links\n SHARE_LINK_NOT_FOUND: ERROR_CODES.STORAGE_SHARE_LINK_NOT_FOUND,\n SHARE_LINK_EXPIRED: ERROR_CODES.STORAGE_SHARE_LINK_EXPIRED,\n SHARE_LINK_MAX_DOWNLOADS: ERROR_CODES.STORAGE_SHARE_LINK_MAX_DOWNLOADS,\n SHARE_LINK_INVALID_PASSWORD: ERROR_CODES.STORAGE_SHARE_LINK_INVALID_PASSWORD,\n\n // Plugin\n PLUGIN_NOT_FOUND: ERROR_CODES.STORAGE_PLUGIN_NOT_FOUND,\n PLUGIN_INITIALIZATION_FAILED: ERROR_CODES.STORAGE_PLUGIN_INITIALIZATION_FAILED,\n PLUGIN_EXECUTION_FAILED: ERROR_CODES.STORAGE_PLUGIN_EXECUTION_FAILED,\n\n // VirusTotal Provider (Plugin)\n VIRUSTOTAL_BAD_REQUEST: ERROR_CODES.STORAGE_VIRUSTOTAL_BAD_REQUEST,\n VIRUSTOTAL_AUTHENTICATION_REQUIRED: ERROR_CODES.STORAGE_VIRUSTOTAL_AUTHENTICATION_REQUIRED,\n VIRUSTOTAL_WRONG_CREDENTIALS: ERROR_CODES.STORAGE_VIRUSTOTAL_WRONG_CREDENTIALS,\n VIRUSTOTAL_FILE_TOO_LARGE: ERROR_CODES.STORAGE_VIRUSTOTAL_FILE_TOO_LARGE,\n VIRUSTOTAL_QUOTA_EXCEEDED: ERROR_CODES.STORAGE_VIRUSTOTAL_QUOTA_EXCEEDED,\n VIRUSTOTAL_ANALYSIS_NOT_FOUND: ERROR_CODES.STORAGE_VIRUSTOTAL_ANALYSIS_NOT_FOUND,\n VIRUSTOTAL_SCAN_TIMEOUT: ERROR_CODES.STORAGE_VIRUSTOTAL_SCAN_TIMEOUT,\n VIRUSTOTAL_SCAN_FAILED: ERROR_CODES.STORAGE_VIRUSTOTAL_SCAN_FAILED,\n\n // CDN Providers (Plugins) - Reference cross-package CDN errors\n // Cloudflare CDN\n CLOUDFLARE_AUTHENTICATION_FAILED: ERROR_CODES.CLOUDFLARE_AUTHENTICATION_FAILED,\n CLOUDFLARE_ZONE_NOT_FOUND: ERROR_CODES.CLOUDFLARE_ZONE_NOT_FOUND,\n CLOUDFLARE_PURGE_FAILED: ERROR_CODES.CLOUDFLARE_PURGE_FAILED,\n CLOUDFLARE_RATE_LIMIT_EXCEEDED: ERROR_CODES.CLOUDFLARE_RATE_LIMIT_EXCEEDED,\n CLOUDFLARE_INVALID_URL: ERROR_CODES.CLOUDFLARE_INVALID_URL,\n CLOUDFLARE_API_ERROR: ERROR_CODES.CLOUDFLARE_API_ERROR,\n\n // AWS CloudFront CDN\n CLOUDFRONT_AUTHENTICATION_FAILED: ERROR_CODES.CLOUDFRONT_AUTHENTICATION_FAILED,\n CLOUDFRONT_DISTRIBUTION_NOT_FOUND: ERROR_CODES.CLOUDFRONT_DISTRIBUTION_NOT_FOUND,\n CLOUDFRONT_INVALIDATION_FAILED: ERROR_CODES.CLOUDFRONT_INVALIDATION_FAILED,\n CLOUDFRONT_QUOTA_EXCEEDED: ERROR_CODES.CLOUDFRONT_QUOTA_EXCEEDED,\n CLOUDFRONT_INVALID_PATH: ERROR_CODES.CLOUDFRONT_INVALID_PATH,\n CLOUDFRONT_API_ERROR: ERROR_CODES.CLOUDFRONT_API_ERROR,\n\n // Fastly CDN\n FASTLY_AUTHENTICATION_FAILED: ERROR_CODES.FASTLY_AUTHENTICATION_FAILED,\n FASTLY_SERVICE_NOT_FOUND: ERROR_CODES.FASTLY_SERVICE_NOT_FOUND,\n FASTLY_PURGE_FAILED: ERROR_CODES.FASTLY_PURGE_FAILED,\n FASTLY_RATE_LIMIT_EXCEEDED: ERROR_CODES.FASTLY_RATE_LIMIT_EXCEEDED,\n FASTLY_INVALID_URL: ERROR_CODES.FASTLY_INVALID_URL,\n FASTLY_API_ERROR: ERROR_CODES.FASTLY_API_ERROR,\n\n // Generic CDN Errors\n CDN_INVALIDATION_FAILED: ERROR_CODES.CDN_INVALIDATION_FAILED,\n CDN_CONFIGURATION_INVALID: ERROR_CODES.CDN_CONFIGURATION_INVALID,\n CDN_PROVIDER_NOT_FOUND: ERROR_CODES.CDN_PROVIDER_NOT_FOUND,\n\n // Presigned URLs\n PRESIGNED_URL_GENERATION_FAILED: ERROR_CODES.STORAGE_PRESIGNED_URL_GENERATION_FAILED,\n PRESIGNED_URL_EXPIRED: ERROR_CODES.STORAGE_PRESIGNED_URL_EXPIRED,\n PRESIGNED_URL_INVALID: ERROR_CODES.STORAGE_PRESIGNED_URL_INVALID,\n\n // Chunked Upload\n CHUNKED_UPLOAD_INIT_FAILED: ERROR_CODES.STORAGE_CHUNKED_UPLOAD_INIT_FAILED,\n CHUNKED_UPLOAD_PART_FAILED: ERROR_CODES.STORAGE_CHUNKED_UPLOAD_PART_FAILED,\n CHUNKED_UPLOAD_COMPLETE_FAILED: ERROR_CODES.STORAGE_CHUNKED_UPLOAD_COMPLETE_FAILED,\n CHUNKED_UPLOAD_ABORT_FAILED: ERROR_CODES.STORAGE_CHUNKED_UPLOAD_ABORT_FAILED,\n CHUNKED_UPLOAD_NOT_FOUND: ERROR_CODES.STORAGE_CHUNKED_UPLOAD_NOT_FOUND,\n\n // CORS\n CORS_CONFIGURATION_INVALID: ERROR_CODES.STORAGE_CORS_CONFIGURATION_INVALID,\n CORS_ORIGIN_NOT_ALLOWED: ERROR_CODES.STORAGE_CORS_ORIGIN_NOT_ALLOWED,\n\n // TTL\n TTL_EXPIRED: ERROR_CODES.STORAGE_TTL_EXPIRED,\n TTL_CLEANUP_FAILED: ERROR_CODES.STORAGE_TTL_CLEANUP_FAILED,\n\n // Audit\n AUDIT_LOG_FAILED: ERROR_CODES.STORAGE_AUDIT_LOG_FAILED,\n\n // Webhook\n WEBHOOK_SIGNATURE_INVALID: ERROR_CODES.STORAGE_WEBHOOK_SIGNATURE_INVALID,\n WEBHOOK_PAYLOAD_INVALID: ERROR_CODES.STORAGE_WEBHOOK_PAYLOAD_INVALID,\n WEBHOOK_PROCESSING_FAILED: ERROR_CODES.STORAGE_WEBHOOK_PROCESSING_FAILED,\n WEBHOOK_TIMEOUT: ERROR_CODES.STORAGE_WEBHOOK_TIMEOUT,\n WEBHOOK_ADAPTER_NOT_FOUND: ERROR_CODES.STORAGE_WEBHOOK_ADAPTER_NOT_FOUND,\n WEBHOOK_DUPLICATE_DETECTED: ERROR_CODES.STORAGE_WEBHOOK_DUPLICATE_DETECTED,\n WEBHOOK_IDEMPOTENCY_ERROR: ERROR_CODES.STORAGE_WEBHOOK_IDEMPOTENCY_ERROR,\n WEBHOOK_RATE_LIMIT_EXCEEDED: ERROR_CODES.STORAGE_WEBHOOK_RATE_LIMIT_EXCEEDED,\n\n // Timeout & Network\n TIMEOUT: ERROR_CODES.STORAGE_TIMEOUT,\n NETWORK_ERROR: ERROR_CODES.STORAGE_NETWORK_ERROR,\n CONNECTION_LOST: ERROR_CODES.STORAGE_CONNECTION_LOST,\n\n // Permission & Quota\n PERMISSION_DENIED: ERROR_CODES.STORAGE_PERMISSION_DENIED,\n QUOTA_EXCEEDED: ERROR_CODES.STORAGE_QUOTA_EXCEEDED,\n INSUFFICIENT_SPACE: ERROR_CODES.STORAGE_INSUFFICIENT_SPACE,\n\n // Feature Implementation\n FEATURE_NOT_IMPLEMENTED: ERROR_CODES.STORAGE_FEATURE_NOT_IMPLEMENTED,\n} as const;\n\n/**\n * Core-specific error codes\n * Subset of ERROR_CODES for @plyaz/core package\n */\nexport const CORE_ERROR_CODES = {\n // Feature Flags\n FEATURE_FLAG_NOT_FOUND: ERROR_CODES.CORE_FEATURE_FLAG_NOT_FOUND,\n FEATURE_FLAG_INVALID_CONFIG: ERROR_CODES.CORE_FEATURE_FLAG_INVALID_CONFIG,\n FEATURE_FLAG_EVALUATION_FAILED: ERROR_CODES.CORE_FEATURE_FLAG_EVALUATION_FAILED,\n FEATURE_FLAG_PROVIDER_ERROR: ERROR_CODES.CORE_FEATURE_FLAG_PROVIDER_ERROR,\n FEATURE_FLAG_CACHE_ERROR: ERROR_CODES.CORE_FEATURE_FLAG_CACHE_ERROR,\n FEATURE_FLAG_CONTEXT_INVALID: ERROR_CODES.CORE_FEATURE_FLAG_CONTEXT_INVALID,\n FEATURE_FLAG_RULE_INVALID: ERROR_CODES.CORE_FEATURE_FLAG_RULE_INVALID,\n FEATURE_FLAG_TOGGLE_FAILED: ERROR_CODES.CORE_FEATURE_FLAG_TOGGLE_FAILED,\n\n // Cache\n CACHE_INITIALIZATION_FAILED: ERROR_CODES.CORE_CACHE_INITIALIZATION_FAILED,\n CACHE_STRATEGY_NOT_FOUND: ERROR_CODES.CORE_CACHE_STRATEGY_NOT_FOUND,\n CACHE_OPERATION_FAILED: ERROR_CODES.CORE_CACHE_OPERATION_FAILED,\n CACHE_INVALIDATION_FAILED: ERROR_CODES.CORE_CACHE_INVALIDATION_FAILED,\n CACHE_SERIALIZATION_FAILED: ERROR_CODES.CORE_CACHE_SERIALIZATION_FAILED,\n\n // API Client\n API_CLIENT_INITIALIZATION_FAILED: ERROR_CODES.CORE_API_CLIENT_INITIALIZATION_FAILED,\n API_CLIENT_REQUEST_FAILED: ERROR_CODES.CORE_API_CLIENT_REQUEST_FAILED,\n API_CLIENT_TIMEOUT: ERROR_CODES.CORE_API_CLIENT_TIMEOUT,\n API_CLIENT_INVALID_RESPONSE: ERROR_CODES.CORE_API_CLIENT_INVALID_RESPONSE,\n API_CLIENT_AUTHENTICATION_FAILED: ERROR_CODES.CORE_API_CLIENT_AUTHENTICATION_FAILED,\n\n // Database Service\n DATABASE_SERVICE_INITIALIZATION_FAILED: ERROR_CODES.CORE_DATABASE_SERVICE_INITIALIZATION_FAILED,\n DATABASE_SERVICE_CONNECTION_FAILED: ERROR_CODES.CORE_DATABASE_SERVICE_CONNECTION_FAILED,\n DATABASE_SERVICE_QUERY_FAILED: ERROR_CODES.CORE_DATABASE_SERVICE_QUERY_FAILED,\n DATABASE_SERVICE_TRANSACTION_FAILED: ERROR_CODES.CORE_DATABASE_SERVICE_TRANSACTION_FAILED,\n\n // Validation\n VALIDATION_FAILED: ERROR_CODES.CORE_VALIDATION_FAILED,\n VALIDATION_SCHEMA_INVALID: ERROR_CODES.CORE_VALIDATION_SCHEMA_INVALID,\n VALIDATION_REQUIRED_FIELD_MISSING: ERROR_CODES.CORE_VALIDATION_REQUIRED_FIELD_MISSING,\n\n // Hash Utilities\n HASH_GENERATION_FAILED: ERROR_CODES.CORE_HASH_GENERATION_FAILED,\n HASH_VERIFICATION_FAILED: ERROR_CODES.CORE_HASH_VERIFICATION_FAILED,\n\n // Engine\n ENGINE_INITIALIZATION_FAILED: ERROR_CODES.CORE_ENGINE_INITIALIZATION_FAILED,\n ENGINE_EXECUTION_FAILED: ERROR_CODES.CORE_ENGINE_EXECUTION_FAILED,\n ENGINE_CONFIGURATION_INVALID: ERROR_CODES.CORE_ENGINE_CONFIGURATION_INVALID,\n\n // Provider\n PROVIDER_NOT_FOUND: ERROR_CODES.CORE_PROVIDER_NOT_FOUND,\n PROVIDER_INITIALIZATION_FAILED: ERROR_CODES.CORE_PROVIDER_INITIALIZATION_FAILED,\n PROVIDER_OPERATION_FAILED: ERROR_CODES.CORE_PROVIDER_OPERATION_FAILED,\n\n // Context\n CONTEXT_INVALID: ERROR_CODES.CORE_CONTEXT_INVALID,\n CONTEXT_MISSING_REQUIRED_DATA: ERROR_CODES.CORE_CONTEXT_MISSING_REQUIRED_DATA,\n\n // General Core\n INITIALIZATION_FAILED: ERROR_CODES.CORE_INITIALIZATION_FAILED,\n CONFIGURATION_INVALID: ERROR_CODES.CORE_CONFIGURATION_INVALID,\n OPERATION_FAILED: ERROR_CODES.CORE_OPERATION_FAILED,\n UNKNOWN_ERROR: ERROR_CODES.CORE_UNKNOWN_ERROR,\n\n // Common/Generic Errors (used across core package)\n CLIENT_INITIALIZATION_FAILED: ERROR_CODES.CLIENT_INITIALIZATION_FAILED,\n CLIENT_INVALID_CONFIG: ERROR_CODES.CLIENT_INVALID_CONFIG,\n CONTEXT_OPERATION_FAILED: ERROR_CODES.CONTEXT_OPERATION_FAILED,\n FEATURE_NOT_SUPPORTED: ERROR_CODES.FEATURE_NOT_SUPPORTED,\n VALIDATION_ERROR: ERROR_CODES.VALIDATION_ERROR,\n NETWORK_ERROR: ERROR_CODES.NETWORK_ERROR,\n RESOURCE_NOT_FOUND: ERROR_CODES.RESOURCE_NOT_FOUND,\n DB_CONNECTION_FAILED: ERROR_CODES.DB_CONNECTION_FAILED,\n DB_DUPLICATE_ENTRY: ERROR_CODES.DB_DUPLICATE_ENTRY,\n PROVIDER_NOT_IMPLEMENTED: ERROR_CODES.PROVIDER_NOT_IMPLEMENTED,\n STORAGE_FILE_WRITE_FAILED: ERROR_CODES.STORAGE_FILE_WRITE_FAILED,\n} as const;\n\n/**\n * PAYMENT-specific error codes\n * Subset of ERROR_CODES for @plyaz/payments package\n */\nexport const PAYMENT_ERROR_CODES = {\n // Timeout & Network\n PAYMENT_TIMEOUT: ERROR_CODES.PAYMENT_TIMEOUT,\n PAYMENT_NETWORK_ERROR: ERROR_CODES.PAYMENT_NETWORK_ERROR,\n\n // Refund\n PAYMENT_REFUND_FAILED: ERROR_CODES.PAYMENT_REFUND_FAILED,\n PAYMENT_REFUND_NOT_FOUND: ERROR_CODES.PAYMENT_REFUND_NOT_FOUND,\n PAYMENT_REFUND_ALREADY_PROCESSED: ERROR_CODES.PAYMENT_REFUND_ALREADY_PROCESSED,\n PAYMENT_REFUND_AMOUNT_INVALID: ERROR_CODES.PAYMENT_REFUND_AMOUNT_INVALID,\n PAYMENT_REFUND_VALIDATION_FAILED: ERROR_CODES.PAYMENT_REFUND_VALIDATION_FAILED,\n PAYMENT_REFUND_TIMEOUT: ERROR_CODES.PAYMENT_REFUND_TIMEOUT,\n PAYMENT_REFUND_NOT_ALLOWED: ERROR_CODES.PAYMENT_REFUND_NOT_ALLOWED,\n PAYMENT_REFUND_AUTHORIZATION_FAILED: ERROR_CODES.PAYMENT_REFUND_AUTHORIZATION_FAILED,\n PAYMENT_REFUND_PROCESSING_FAILED: ERROR_CODES.PAYMENT_REFUND_PROCESSING_FAILED,\n\n // Provider\n PAYMENT_PROVIDER_ERROR: ERROR_CODES.PAYMENT_PROVIDER_ERROR,\n PAYMENT_PROVIDER_UNAVAILABLE: ERROR_CODES.PAYMENT_PROVIDER_UNAVAILABLE,\n PAYMENT_PROVIDER_CONFIGURATION_INVALID: ERROR_CODES.PAYMENT_PROVIDER_CONFIGURATION_INVALID,\n PAYMENT_PROVIDER_RESPONSE_INVALID: ERROR_CODES.PAYMENT_PROVIDER_RESPONSE_INVALID,\n PAYMENT_PROVIDER_TIMEOUT: ERROR_CODES.PAYMENT_PROVIDER_TIMEOUT,\n PAYMENT_PROVIDER_AUTH_FAILED: ERROR_CODES.PAYMENT_PROVIDER_AUTH_FAILED,\n PAYMENT_PROVIDER_RATE_LIMIT: ERROR_CODES.PAYMENT_PROVIDER_RATE_LIMIT,\n PAYMENT_PROVIDER_UNKNOWN: ERROR_CODES.PAYMENT_PROVIDER_UNKNOWN,\n PAYMENT_CUSTOMER_CREATION_FAILED: ERROR_CODES.PAYMENT_CUSTOMER_CREATION_FAILED,\n\n // Payment method\n PAYMENT_METHOD_SAVE_FAILED: ERROR_CODES.PAYMENT_METHOD_SAVE_FAILED,\n PAYMENT_METHOD_DELETE_FAILED: ERROR_CODES.PAYMENT_METHOD_DELETE_FAILED,\n\n // Subscription\n PAYMENT_SUBSCRIPTION_CREATE_FAILED: ERROR_CODES.PAYMENT_SUBSCRIPTION_CREATE_FAILED,\n PAYMENT_SUBSCRIPTION_CANCEL_FAILED: ERROR_CODES.PAYMENT_SUBSCRIPTION_CANCEL_FAILED,\n\n // Payout\n PAYMENT_PAYOUT_FAILED: ERROR_CODES.PAYMENT_PAYOUT_FAILED,\n\n // Transaction history\n PAYMENT_TRANSACTION_HISTORY_FETCH_FAILED: ERROR_CODES.PAYMENT_TRANSACTION_HISTORY_FETCH_FAILED,\n\n // Compliance\n PAYMENT_COMPLIANCE_VIOLATION: ERROR_CODES.PAYMENT_COMPLIANCE_VIOLATION,\n PAYMENT_COMPLIANCE_CHECK_FAILED: ERROR_CODES.PAYMENT_COMPLIANCE_CHECK_FAILED,\n PAYMENT_COMPLIANCE_LIMIT_EXCEEDED: ERROR_CODES.PAYMENT_COMPLIANCE_LIMIT_EXCEEDED,\n PAYMENT_COMPLIANCE_POLICY_MISSING: ERROR_CODES.PAYMENT_COMPLIANCE_POLICY_MISSING,\n PAYMENT_COMPLIANCE_KYC_REQUIRED: ERROR_CODES.PAYMENT_COMPLIANCE_KYC_REQUIRED,\n PAYMENT_COMPLIANCE_GEOGRAPHIC_RESTRICTION: ERROR_CODES.PAYMENT_COMPLIANCE_GEOGRAPHIC_RESTRICTION,\n\n // Processing\n PAYMENT_PROCESSING_FAILED: ERROR_CODES.PAYMENT_PROCESSING_FAILED,\n PAYMENT_PROCESSING_TIMEOUT: ERROR_CODES.PAYMENT_PROCESSING_TIMEOUT,\n PAYMENT_PROCESSING_GATEWAY_ERROR: ERROR_CODES.PAYMENT_PROCESSING_GATEWAY_ERROR,\n PAYMENT_PROCESSING_DUPLICATE: ERROR_CODES.PAYMENT_PROCESSING_DUPLICATE,\n PAYMENT_PROCESSING_UNEXPECTED_STATE: ERROR_CODES.PAYMENT_PROCESSING_UNEXPECTED_STATE,\n\n // Security\n PAYMENT_SECURITY_VIOLATION: ERROR_CODES.PAYMENT_SECURITY_VIOLATION,\n PAYMENT_SECURITY_SIGNATURE_INVALID: ERROR_CODES.PAYMENT_SECURITY_SIGNATURE_INVALID,\n PAYMENT_SECURITY_ENCRYPTION_FAILED: ERROR_CODES.PAYMENT_SECURITY_ENCRYPTION_FAILED,\n PAYMENT_SECURITY_FRAUD_DETECTED: ERROR_CODES.PAYMENT_SECURITY_FRAUD_DETECTED,\n PAYMENT_SECURITY_TOKEN_INVALID: ERROR_CODES.PAYMENT_SECURITY_TOKEN_INVALID,\n PAYMENT_SECURITY_VELOCITY_LIMIT_EXCEEDED: ERROR_CODES.PAYMENT_SECURITY_VELOCITY_LIMIT_EXCEEDED,\n\n // Validation\n PAYMENT_VALIDATION_FAILED: ERROR_CODES.PAYMENT_VALIDATION_FAILED,\n PAYMENT_VALIDATION_AMOUNT_INVALID: ERROR_CODES.PAYMENT_VALIDATION_AMOUNT_INVALID,\n PAYMENT_VALIDATION_CURRENCY_UNSUPPORTED: ERROR_CODES.PAYMENT_VALIDATION_CURRENCY_UNSUPPORTED,\n PAYMENT_VALIDATION_METADATA_INVALID: ERROR_CODES.PAYMENT_VALIDATION_METADATA_INVALID,\n PAYMENT_VALIDATION_MISSING_REQUIRED_FIELD: ERROR_CODES.PAYMENT_VALIDATION_MISSING_REQUIRED_FIELD,\n\n // Webhook\n PAYMENT_WEBHOOK_SIGNATURE_INVALID: ERROR_CODES.PAYMENT_WEBHOOK_SIGNATURE_INVALID,\n PAYMENT_WEBHOOK_PROCESSING_FAILED: ERROR_CODES.PAYMENT_WEBHOOK_PROCESSING_FAILED,\n PAYMENT_WEBHOOK_VALIDATION_FAILED: ERROR_CODES.PAYMENT_WEBHOOK_VALIDATION_FAILED,\n PAYMENT_WEBHOOK_EVENT_TYPE_UNSUPPORTED: ERROR_CODES.PAYMENT_WEBHOOK_EVENT_TYPE_UNSUPPORTED,\n PAYMENT_WEBHOOK_HANDLER_NOT_FOUND: ERROR_CODES.PAYMENT_WEBHOOK_HANDLER_NOT_FOUND,\n\n // Adapter & Core\n PAYMENT_ADAPTER_INIT_FAILED: ERROR_CODES.PAYMENT_ADAPTER_INIT_FAILED,\n PAYMENT_ADAPTER_SHUTDOWN_ERROR: ERROR_CODES.PAYMENT_ADAPTER_SHUTDOWN_ERROR,\n PAYMENT_ADAPTER_HMAC_COMPUTATION_FAILED: ERROR_CODES.PAYMENT_ADAPTER_HMAC_COMPUTATION_FAILED,\n PAYMENT_ADAPTER_MISSING_PROVIDER: ERROR_CODES.PAYMENT_ADAPTER_MISSING_PROVIDER,\n PAYMENT_ADAPTER_MISSING_ENVIRONMENT: ERROR_CODES.PAYMENT_ADAPTER_MISSING_ENVIRONMENT,\n PAYMENT_ADAPTER_MISSING_CREDENTIALS: ERROR_CODES.PAYMENT_ADAPTER_MISSING_CREDENTIALS,\n PAYMENT_ADAPTER_MISSING_WEBHOOK_URL: ERROR_CODES.PAYMENT_ADAPTER_MISSING_WEBHOOK_URL,\n PAYMENT_ADAPTER_MISSING_UNREGISTER_ENDPOINT:\n ERROR_CODES.PAYMENT_ADAPTER_MISSING_UNREGISTER_ENDPOINT,\n PAYMENT_ADAPTER_UNSUPPORTED_OPERATION: ERROR_CODES.PAYMENT_ADAPTER_UNSUPPORTED_OPERATION,\n PAYMENT_ADAPTER_RESPONSE_MAPPING_FAILED: ERROR_CODES.PAYMENT_ADAPTER_RESPONSE_MAPPING_FAILED,\n\n // Unsupported Operations\n SAVE_PAYMENT_METHOD_UNSUPPORTED: ERROR_CODES.SAVE_PAYMENT_METHOD_UNSUPPORTED,\n DELETE_PAYMENT_METHOD_UNSUPPORTED: ERROR_CODES.DELETE_PAYMENT_METHOD_UNSUPPORTED,\n GET_USER_PAYMENT_METHODS_UNSUPPORTED: ERROR_CODES.GET_USER_PAYMENT_METHODS_UNSUPPORTED,\n CREATE_SUBSCRIPTION_UNSUPPORTED: ERROR_CODES.CREATE_SUBSCRIPTION_UNSUPPORTED,\n CANCEL_SUBSCRIPTION_UNSUPPORTED: ERROR_CODES.CANCEL_SUBSCRIPTION_UNSUPPORTED,\n PROCESS_PAYOUT_UNSUPPORTED: ERROR_CODES.PROCESS_PAYOUT_UNSUPPORTED,\n GET_TRANSACTION_HISTORY_UNSUPPORTED: ERROR_CODES.GET_TRANSACTION_HISTORY_UNSUPPORTED,\n\n // Idempotency\n PAYMENT_IDEMPOTENCY_VIOLATION: ERROR_CODES.PAYMENT_IDEMPOTENCY_VIOLATION,\n PAYMENT_IDEMPOTENCY_KEY_MISSING: ERROR_CODES.PAYMENT_IDEMPOTENCY_KEY_MISSING,\n PAYMENT_IDEMPOTENCY_STORE_ERROR: ERROR_CODES.PAYMENT_IDEMPOTENCY_STORE_ERROR,\n\n // Routing\n PAYMENT_ROUTING_FAILED: ERROR_CODES.PAYMENT_ROUTING_FAILED,\n PAYMENT_ROUTING_CONFIGURATION_INVALID: ERROR_CODES.PAYMENT_ROUTING_CONFIGURATION_INVALID,\n PAYMENT_ROUTING_PROVIDER_UNAVAILABLE: ERROR_CODES.PAYMENT_ROUTING_PROVIDER_UNAVAILABLE,\n PAYMENT_ROUTING_RETRY_EXCEEDED: ERROR_CODES.PAYMENT_ROUTING_RETRY_EXCEEDED,\n\n // General\n PAYMENT_SYSTEM_NOT_INITIALIZED: ERROR_CODES.PAYMENT_SYSTEM_NOT_INITIALIZED,\n PAYMENT_CONTEXT_OPERATION_FAILED: ERROR_CODES.PAYMENT_CONTEXT_OPERATION_FAILED,\n PAYMENT_INTERNAL_ERROR: ERROR_CODES.PAYMENT_INTERNAL_ERROR,\n PAYMENT_UNKNOWN_ERROR: ERROR_CODES.PAYMENT_UNKNOWN_ERROR,\n\n // Event\n PAYMENT_EVENT_EMIT_FAILED: ERROR_CODES.PAYMENT_EVENT_EMIT_FAILED,\n PAYMENT_EVENT_INVALID_TYPE: ERROR_CODES.PAYMENT_EVENT_INVALID_TYPE,\n PAYMENT_EVENT_CREATION_FAILED: ERROR_CODES.PAYMENT_EVENT_CREATION_FAILED,\n PAYMENT_EVENT_HANDLER_TIMEOUT: ERROR_CODES.PAYMENT_EVENT_HANDLER_TIMEOUT,\n PAYMENT_EVENT_HANDLER_INVALID_RESULT: ERROR_CODES.PAYMENT_EVENT_HANDLER_INVALID_RESULT,\n PAYMENT_EVENT_LIFECYCLE_FAILURE: ERROR_CODES.PAYMENT_EVENT_LIFECYCLE_FAILURE,\n\n // Withdrawal\n PAYMENT_WITHDRAWAL_UNSUPPORTED: ERROR_CODES.WITHDRAWAL_UNSUPPORTED,\n PAYMENT_WITHDRAWAL_CREATE_UNSUPPORTED: ERROR_CODES.WITHDRAWAL_CREATE_UNSUPPORTED,\n PAYMENT_WITHDRAWAL_PROCESS_UNSUPPORTED: ERROR_CODES.WITHDRAWAL_PROCESS_UNSUPPORTED,\n PAYMENT_WITHDRAWAL_STATUS_FETCH_UNSUPPORTED: ERROR_CODES.WITHDRAWAL_STATUS_FETCH_UNSUPPORTED,\n PAYMENT_WITHDRAWAL_CANCEL_UNSUPPORTED: ERROR_CODES.WITHDRAWAL_CANCEL_UNSUPPORTED,\n\n PAYMENT_WITHDRAWAL_INSUFFICIENT_BALANCE: ERROR_CODES.WITHDRAWAL_INSUFFICIENT_BALANCE,\n PAYMENT_WITHDRAWAL_INVALID_ACCOUNT: ERROR_CODES.WITHDRAWAL_INVALID_ACCOUNT,\n PAYMENT_WITHDRAWAL_KYC_REQUIRED: ERROR_CODES.WITHDRAWAL_KYC_REQUIRED,\n PAYMENT_WITHDRAWAL_LIMIT_EXCEEDED: ERROR_CODES.WITHDRAWAL_LIMIT_EXCEEDED,\n PAYMENT_WITHDRAWAL_PROVIDER_ERROR: ERROR_CODES.WITHDRAWAL_PROVIDER_ERROR,\n PAYMENT_WITHDRAWAL_FAILED: ERROR_CODES.WITHDRAWAL_FAILED,\n PAYMENT_WITHDRAWAL_TIMEOUT: ERROR_CODES.WITHDRAWAL_TIMEOUT,\n\n // Product\n PAYMENT_PRODUCT_CREATE_UNSUPPORTED: ERROR_CODES.PRODUCT_CREATE_UNSUPPORTED,\n PAYMENT_PRODUCT_UPDATE_UNSUPPORTED: ERROR_CODES.PRODUCT_UPDATE_UNSUPPORTED,\n PAYMENT_PRODUCT_FETCH_UNSUPPORTED: ERROR_CODES.PRODUCT_FETCH_UNSUPPORTED,\n PAYMENT_PRODUCT_DEACTIVATE_UNSUPPORTED: ERROR_CODES.PRODUCT_DEACTIVATE_UNSUPPORTED,\n\n PAYMENT_PRODUCT_NOT_FOUND: ERROR_CODES.PRODUCT_NOT_FOUND,\n PAYMENT_PRODUCT_INVALID_DATA: ERROR_CODES.PRODUCT_INVALID_DATA,\n PAYMENT_PRODUCT_PROVIDER_ERROR: ERROR_CODES.PRODUCT_PROVIDER_ERROR,\n PAYMENT_PRODUCT_ALREADY_INACTIVE: ERROR_CODES.PRODUCT_ALREADY_INACTIVE,\n PAYMENT_PRODUCT_SYNC_FAILED: ERROR_CODES.PRODUCT_SYNC_FAILED,\n\n // Pricing\n PAYMENT_PRICING_CREATE_UNSUPPORTED: ERROR_CODES.PRICING_CREATE_UNSUPPORTED,\n PAYMENT_PRICING_UPDATE_UNSUPPORTED: ERROR_CODES.PRICING_UPDATE_UNSUPPORTED,\n PAYMENT_PRICING_DEACTIVATE_UNSUPPORTED: ERROR_CODES.PRICING_DEACTIVATE_UNSUPPORTED,\n\n PAYMENT_PRICING_NOT_FOUND: ERROR_CODES.PRICING_NOT_FOUND,\n PAYMENT_PRICING_INVALID_AMOUNT: ERROR_CODES.PRICING_INVALID_AMOUNT,\n PAYMENT_PRICING_INVALID_CURRENCY: ERROR_CODES.PRICING_INVALID_CURRENCY,\n PAYMENT_PRICING_PROVIDER_ERROR: ERROR_CODES.PRICING_PROVIDER_ERROR,\n PAYMENT_PRICING_ALREADY_INACTIVE: ERROR_CODES.PRICING_ALREADY_INACTIVE,\n PAYMENT_PRICING_SYNC_FAILED: ERROR_CODES.PRICING_SYNC_FAILED,\n PAYMENT_PRICING_REQUIRES_NEW_VERSION: ERROR_CODES.PRICING_REQUIRES_NEW_VERSION,\n} as const;\n\n/** Database-specific error codes\n * Subset of ERROR_CODES for database operations\n */\nexport const DATABASE_ERROR_CODES = {\n ACCESS_DENIED: ERROR_CODES.DB_ACCESS_DENIED,\n CONFIG_REQUIRED: ERROR_CODES.DB_CONFIG_REQUIRED,\n CONNECT_FAILED: ERROR_CODES.DB_CONNECT_FAILED,\n DISCONNECT_FAILED: ERROR_CODES.DB_DISCONNECT_FAILED,\n INIT_FAILED: ERROR_CODES.DB_INIT_FAILED,\n QUERY_FAILED: ERROR_CODES.DB_QUERY_FAILED,\n BUILD_WHERE_FAILED: ERROR_CODES.DB_BUILD_WHERE_FAILED,\n INVALID_SQL: ERROR_CODES.DB_INVALID_SQL,\n TRANSACTION_FAILED: ERROR_CODES.DB_TRANSACTION_FAILED,\n UNSUPPORTED_OPERATOR: ERROR_CODES.DB_UNSUPPORTED_OPERATOR,\n CREATE_FAILED: ERROR_CODES.DB_CREATE_FAILED,\n CREATION_FAILED: ERROR_CODES.DB_CREATION_FAILED,\n FETCH_FAILED: ERROR_CODES.DB_FETCH_FAILED,\n FIND_FAILED: ERROR_CODES.DB_FIND_FAILED,\n FIND_MANY_FAILED: ERROR_CODES.DB_FIND_MANY_FAILED,\n FIND_BY_ID_FAILED: ERROR_CODES.DB_FIND_BY_ID_FAILED,\n UPDATE_FAILED: ERROR_CODES.DB_UPDATE_FAILED,\n UPDATE_NO_CHANGES: ERROR_CODES.DB_UPDATE_NO_CHANGES,\n DELETE_FAILED: ERROR_CODES.DB_DELETE_FAILED,\n INSERT_FAILED: ERROR_CODES.DB_INSERT_FAILED,\n RECORD_NOT_FOUND: ERROR_CODES.DB_RECORD_NOT_FOUND,\n EXISTS_FAILED: ERROR_CODES.DB_EXISTS_FAILED,\n COLUMN_NOT_EXISTS: ERROR_CODES.DB_COLUMN_NOT_EXISTS,\n TABLE_NOT_REGISTERED: ERROR_CODES.DB_TABLE_NOT_REGISTERED,\n TABLE_REGISTRATION_FAILED: ERROR_CODES.DB_TABLE_REGISTRATION_FAILED,\n ID_COLUMN_NOT_REGISTERED: ERROR_CODES.DB_ID_COLUMN_NOT_REGISTERED,\n INVALID_COLUMN: ERROR_CODES.DB_INVALID_COLUMN,\n INVALID_TABLE_NAME: ERROR_CODES.DB_INVALID_TABLE_NAME,\n GET_ID_COLUMN_FAILED: ERROR_CODES.DB_GET_ID_COLUMN_FAILED,\n GET_TABLE_FAILED: ERROR_CODES.DB_GET_TABLE_FAILED,\n INVALID_PARAMETERS: ERROR_CODES.DB_INVALID_PARAMETERS,\n INVALID_PARAMS: ERROR_CODES.DB_INVALID_PARAMS,\n INVALID_FILTER: ERROR_CODES.DB_INVALID_FILTER,\n INVALID_ID: ERROR_CODES.DB_INVALID_ID,\n INVALID_ENTITY: ERROR_CODES.DB_INVALID_ENTITY,\n INVALID_UPDATE_PARAMS: ERROR_CODES.DB_INVALID_UPDATE_PARAMS,\n INVALID_FIELD_NAME: ERROR_CODES.DB_INVALID_FIELD_NAME,\n INVALID_RESULT: ERROR_CODES.DB_INVALID_RESULT,\n NO_UPDATE_FIELDS: ERROR_CODES.DB_NO_UPDATE_FIELDS,\n COUNT_FAILED: ERROR_CODES.DB_COUNT_FAILED,\n COUNT_NO_RESULTS: ERROR_CODES.DB_COUNT_NO_RESULTS,\n NO_DATA: ERROR_CODES.DB_NO_DATA,\n NO_TENANT_CONTEXT: ERROR_CODES.DB_NO_TENANT_CONTEXT,\n NO_TENANT_ID: ERROR_CODES.DB_NO_TENANT_ID,\n TENANT_VALIDATION_FAILED: ERROR_CODES.DB_TENANT_VALIDATION_FAILED,\n BACKUP_CLEANUP_FAILED: ERROR_CODES.DB_BACKUP_CLEANUP_FAILED,\n BACKUP_FILE_NOT_FOUND: ERROR_CODES.DB_BACKUP_FILE_NOT_FOUND,\n LIST_BACKUPS_FAILED: ERROR_CODES.DB_LIST_BACKUPS_FAILED,\n INVALID_BACKUP_INFO: ERROR_CODES.DB_INVALID_BACKUP_INFO,\n RESTORE_FAILED: ERROR_CODES.DB_RESTORE_FAILED,\n CACHE_DELETE_FAILED: ERROR_CODES.DB_CACHE_DELETE_FAILED,\n CACHE_HEALTH_CHECK_FAILED: ERROR_CODES.DB_CACHE_HEALTH_CHECK_FAILED,\n CACHE_INVALIDATE_FAILED: ERROR_CODES.DB_CACHE_INVALIDATE_FAILED,\n CACHE_SET_FAILED: ERROR_CODES.DB_CACHE_SET_FAILED,\n CACHE_GET_FAILED: ERROR_CODES.DB_CACHE_GET_FAILED,\n INVALID_FILEPATH: ERROR_CODES.DB_INVALID_FILEPATH,\n S3_DELETE_FAILED: ERROR_CODES.DB_S3_DELETE_FAILED,\n S3_DOWNLOAD_FAILED: ERROR_CODES.DB_S3_DOWNLOAD_FAILED,\n S3_NOT_CONFIGURED: ERROR_CODES.DB_S3_NOT_CONFIGURED,\n S3_UPLOAD_FAILED: ERROR_CODES.DB_S3_UPLOAD_FAILED,\n SCHEDULE_SETUP_FAILED: ERROR_CODES.DB_SCHEDULE_SETUP_FAILED,\n DECRYPTION_FAILED: ERROR_CODES.DB_DECRYPTION_FAILED,\n INVALID_SHELL_ARG: ERROR_CODES.DB_INVALID_SHELL_ARG,\n INVALID_BETWEEN_OPERATOR: ERROR_CODES.DB_INVALID_BETWEEN_OPERATOR,\n INVALID_IN_OPERATOR: ERROR_CODES.DB_INVALID_IN_OPERATOR,\n INVALID_COUNT: ERROR_CODES.DB_INVALID_COUNT,\n CONNECTION_FAILED: ERROR_CODES.DB_CONNECTION_FAILED,\n CONNECTION_ERROR: ERROR_CODES.DB_CONNECTION_ERROR,\n CONSTRAINT_VIOLATION: ERROR_CODES.DB_CONSTRAINT_VIOLATION,\n TIMEOUT: ERROR_CODES.DB_TIMEOUT,\n DEADLOCK: ERROR_CODES.DB_DEADLOCK,\n ENTITY_NOT_FOUND: ERROR_CODES.DB_ENTITY_NOT_FOUND,\n DUPLICATE_ENTRY: ERROR_CODES.DB_DUPLICATE_ENTRY,\n MIGRATION_FAILED: ERROR_CODES.DB_MIGRATION_FAILED,\n MULTI_WRITE_FAILED: ERROR_CODES.DB_MULTI_WRITE_FAILED,\n NOT_FOUND: ERROR_CODES.DB_RECORD_NOT_FOUND,\n UNKNOWN_ERROR: ERROR_CODES.DB_UNKNOWN_ERROR,\n} as const;\n\nexport type ApiErrorCodeValue =\n | (typeof API_ERROR_CODES)[keyof typeof API_ERROR_CODES]\n | `HTTP_${number}`;\nexport type NotificationErrorCodeValue =\n (typeof NOTIFICATION_ERROR_CODES)[keyof typeof NOTIFICATION_ERROR_CODES];\n\nexport type StorageErrorCode = (typeof STORAGE_ERROR_CODES)[keyof typeof STORAGE_ERROR_CODES];\n\nexport type DatabaseErrorCodeValue =\n (typeof DATABASE_ERROR_CODES)[keyof typeof DATABASE_ERROR_CODES];\n\nexport type CoreErrorCodeValue = (typeof CORE_ERROR_CODES)[keyof typeof CORE_ERROR_CODES];\n\nexport type PaymentErrorCodeValue = (typeof PAYMENT_ERROR_CODES)[keyof typeof PAYMENT_ERROR_CODES];\n\n/**\n * Unified ERROR_DEFINITIONS\n * Single source of truth for ALL error definitions across all @plyaz packages\n *\n * Combines:\n * - API error definitions (basic: code, status, category, fieldsLeft)\n * - Notification error definitions (extended: includes severity, retryable, userMessage)\n *\n * All packages can access ANY error definition for cross-package error handling\n */\nexport const ERROR_DEFINITIONS: ErrorDefinitions = {\n // ===== Generic/Common Error Definitions =====\n [ERROR_CODES.NOT_IMPLEMENTED]: {\n code: ERROR_CODES.NOT_IMPLEMENTED,\n status: HTTP_STATUS.NOT_IMPLEMENTED,\n category: ERROR_CATEGORY.System,\n userMessage: 'errors.not_implemented',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.PROVIDER_NOT_IMPLEMENTED]: {\n code: ERROR_CODES.PROVIDER_NOT_IMPLEMENTED,\n status: HTTP_STATUS.NOT_IMPLEMENTED,\n category: ERROR_CATEGORY.System,\n userMessage: 'errors.provider.not_implemented',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.FEATURE_NOT_SUPPORTED]: {\n code: ERROR_CODES.FEATURE_NOT_SUPPORTED,\n status: HTTP_STATUS.NOT_IMPLEMENTED,\n category: ERROR_CATEGORY.System,\n userMessage: 'errors.feature.not_supported',\n severity: ERROR_SEVERITY.Low,\n retryable: false,\n },\n\n // ===== API Package Error Definitions =====\n // Authentication\n [ERROR_CODES.AUTH_UNAUTHORIZED]: {\n code: ERROR_CODES.AUTH_UNAUTHORIZED,\n status: HTTP_STATUS.UNAUTHORIZED,\n category: ERROR_CATEGORY.Authentication,\n userMessage: 'errors.auth.unauthorized',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.AUTH_FORBIDDEN]: {\n code: ERROR_CODES.AUTH_FORBIDDEN,\n status: HTTP_STATUS.FORBIDDEN,\n category: ERROR_CATEGORY.Authorization,\n userMessage: 'errors.auth.forbidden',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n // Rate Limiting\n [ERROR_CODES.RATE_LIMIT_EXCEEDED]: {\n code: ERROR_CODES.RATE_LIMIT_EXCEEDED,\n status: HTTP_STATUS.TOO_MANY_REQUESTS,\n category: ERROR_CATEGORY.RateLimit,\n userMessage: 'errors.rate_limit.exceeded',\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n },\n\n // Resources\n [ERROR_CODES.RESOURCE_NOT_FOUND]: {\n code: ERROR_CODES.RESOURCE_NOT_FOUND,\n status: HTTP_STATUS.NOT_FOUND,\n category: ERROR_CATEGORY.NotFound,\n userMessage: 'errors.resource.not_found',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.RESOURCE_CONFLICT]: {\n code: ERROR_CODES.RESOURCE_CONFLICT,\n status: HTTP_STATUS.CONFLICT,\n category: ERROR_CATEGORY.Conflict,\n userMessage: 'errors.resource.conflict',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n // Validation\n [ERROR_CODES.API_VALIDATION_FAILED]: {\n code: ERROR_CODES.API_VALIDATION_FAILED,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'errors.validation.failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.API_INVALID_INPUT]: {\n code: ERROR_CODES.API_INVALID_INPUT,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'errors.validation.invalid_input',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.VALIDATION_ERROR]: {\n code: ERROR_CODES.VALIDATION_ERROR,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'errors.validation.error',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.REQUIRED_FIELD_MISSING]: {\n code: ERROR_CODES.REQUIRED_FIELD_MISSING,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'errors.validation.required_field_missing',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.INVALID_FORMAT]: {\n code: ERROR_CODES.INVALID_FORMAT,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'errors.validation.invalid_format',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.VALIDATION_INVALID_FORMAT]: {\n code: ERROR_CODES.VALIDATION_INVALID_FORMAT,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'errors.validation.invalid_format',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.STRING_TOO_SHORT]: {\n code: ERROR_CODES.STRING_TOO_SHORT,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'errors.validation.string_too_short',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.STRING_TOO_LONG]: {\n code: ERROR_CODES.STRING_TOO_LONG,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'errors.validation.string_too_long',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n // Network\n [ERROR_CODES.NETWORK_ERROR]: {\n code: ERROR_CODES.NETWORK_ERROR,\n status: HTTP_STATUS.BAD_GATEWAY,\n category: ERROR_CATEGORY.Network,\n userMessage: 'errors.network.error',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n [ERROR_CODES.CONNECTION_FAILED]: {\n code: ERROR_CODES.CONNECTION_FAILED,\n status: 0,\n category: ERROR_CATEGORY.Network,\n userMessage: 'errors.network.connection_failed',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n [ERROR_CODES.NETWORK_CONNECTION_FAILED]: {\n code: ERROR_CODES.NETWORK_CONNECTION_FAILED,\n status: 0,\n category: ERROR_CATEGORY.Network,\n userMessage: 'errors.network.connection_failed',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n [ERROR_CODES.NETWORK_OFFLINE]: {\n code: ERROR_CODES.NETWORK_OFFLINE,\n status: 0,\n category: ERROR_CATEGORY.Network,\n userMessage: 'errors.network.offline',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n [ERROR_CODES.NETWORK_DNS_FAILED]: {\n code: ERROR_CODES.NETWORK_DNS_FAILED,\n status: 0,\n category: ERROR_CATEGORY.Network,\n userMessage: 'errors.network.dns_failed',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n [ERROR_CODES.NETWORK_TIMEOUT]: {\n code: ERROR_CODES.NETWORK_TIMEOUT,\n status: 0,\n category: ERROR_CATEGORY.Network,\n userMessage: 'errors.network.timeout',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n [ERROR_CODES.NETWORK_CONFIGURATION_INVALID]: {\n code: ERROR_CODES.NETWORK_CONFIGURATION_INVALID,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Configuration,\n userMessage: 'errors.network.configuration_invalid',\n severity: ERROR_SEVERITY.Critical,\n retryable: true,\n },\n [ERROR_CODES.NETWORK_PRESET_NOT_FOUND]: {\n code: ERROR_CODES.NETWORK_PRESET_NOT_FOUND,\n status: HTTP_STATUS.NOT_FOUND,\n category: ERROR_CATEGORY.Configuration,\n userMessage: 'errors.network.preset_not_found',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n\n // Server\n [ERROR_CODES.SERVER_ERROR]: {\n code: ERROR_CODES.SERVER_ERROR,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Server,\n userMessage: 'errors.server.error',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n [ERROR_CODES.INTERNAL_SERVER_ERROR]: {\n code: ERROR_CODES.INTERNAL_SERVER_ERROR,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Server,\n userMessage: 'errors.server.internal_error',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n [ERROR_CODES.SERVICE_UNAVAILABLE]: {\n code: ERROR_CODES.SERVICE_UNAVAILABLE,\n status: HTTP_STATUS.SERVICE_UNAVAILABLE,\n category: ERROR_CATEGORY.Server,\n userMessage: 'errors.server.service_unavailable',\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n },\n\n // Cache\n [ERROR_CODES.CACHE_READ_FAILED]: {\n code: ERROR_CODES.CACHE_READ_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Cache,\n userMessage: 'errors.cache.read_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.CACHE_WRITE_FAILED]: {\n code: ERROR_CODES.CACHE_WRITE_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Cache,\n userMessage: 'errors.cache.write_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.CACHE_INVALIDATION_FAILED]: {\n code: ERROR_CODES.CACHE_INVALIDATION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Cache,\n userMessage: 'errors.cache.invalidation_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.CACHE_STORAGE_FAILED]: {\n code: ERROR_CODES.CACHE_STORAGE_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Cache,\n userMessage: 'errors.cache.storage_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.CACHE_RETRIEVAL_FAILED]: {\n code: ERROR_CODES.CACHE_RETRIEVAL_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Cache,\n userMessage: 'errors.cache.retrieval_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n // Retry\n [ERROR_CODES.RETRY_LIMIT_EXCEEDED]: {\n code: ERROR_CODES.RETRY_LIMIT_EXCEEDED,\n status: HTTP_STATUS.SERVICE_UNAVAILABLE,\n category: ERROR_CATEGORY.Retry,\n userMessage: 'errors.retry.limit_exceeded',\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n },\n [ERROR_CODES.RETRY_FAILED]: {\n code: ERROR_CODES.RETRY_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Retry,\n userMessage: 'errors.retry.failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n },\n [ERROR_CODES.RETRY_EXHAUSTED]: {\n code: ERROR_CODES.RETRY_EXHAUSTED,\n status: HTTP_STATUS.SERVICE_UNAVAILABLE,\n category: ERROR_CATEGORY.Retry,\n userMessage: 'errors.retry.exhausted',\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n },\n [ERROR_CODES.RETRY_STRATEGY_INVALID]: {\n code: ERROR_CODES.RETRY_STRATEGY_INVALID,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Configuration,\n userMessage: 'errors.retry.strategy_invalid',\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n },\n\n // Strategy\n [ERROR_CODES.STRATEGY_INVALID]: {\n code: ERROR_CODES.STRATEGY_INVALID,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Configuration,\n userMessage: 'errors.strategy.invalid',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.STRATEGY_CONFLICT]: {\n code: ERROR_CODES.STRATEGY_CONFLICT,\n status: HTTP_STATUS.CONFLICT,\n category: ERROR_CATEGORY.Configuration,\n userMessage: 'errors.strategy.conflict',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.STRATEGY_EXECUTION_FAILED]: {\n code: ERROR_CODES.STRATEGY_EXECUTION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Configuration,\n userMessage: 'errors.strategy.execution_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n // Headers\n [ERROR_CODES.HEADERS_ENRICHMENT_FAILED]: {\n code: ERROR_CODES.HEADERS_ENRICHMENT_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Headers,\n userMessage: 'errors.headers.enrichment_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.HEADERS_VALIDATION_FAILED]: {\n code: ERROR_CODES.HEADERS_VALIDATION_FAILED,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Headers,\n userMessage: 'errors.headers.validation_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.HEADERS_MERGE_CONFLICT]: {\n code: ERROR_CODES.HEADERS_MERGE_CONFLICT,\n status: HTTP_STATUS.CONFLICT,\n category: ERROR_CATEGORY.Headers,\n userMessage: 'errors.headers.merge_conflict',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n // Regional\n [ERROR_CODES.REGION_DETECTION_FAILED]: {\n code: ERROR_CODES.REGION_DETECTION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Network,\n userMessage: 'errors.regional.detection_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.REGIONAL_PRESET_NOT_FOUND]: {\n code: ERROR_CODES.REGIONAL_PRESET_NOT_FOUND,\n status: HTTP_STATUS.NOT_FOUND,\n category: ERROR_CATEGORY.Configuration,\n userMessage: 'errors.regional.preset_not_found',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n // External Services\n [ERROR_CODES.EXTERNAL_SERVICE_ERROR]: {\n code: ERROR_CODES.EXTERNAL_SERVICE_ERROR,\n status: HTTP_STATUS.BAD_GATEWAY,\n category: ERROR_CATEGORY.Server,\n userMessage: 'errors.external.service_error',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n // Timeout\n [ERROR_CODES.TIMEOUT]: {\n code: ERROR_CODES.TIMEOUT,\n status: HTTP_STATUS.REQUEST_TIMEOUT,\n category: ERROR_CATEGORY.Timeout,\n userMessage: 'errors.timeout.generic',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n\n // Debugging\n [ERROR_CODES.DEBUG_TRACKING_FAILED]: {\n code: ERROR_CODES.DEBUG_TRACKING_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Client,\n userMessage: 'errors.debug.tracking_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.DEBUG_OVERRIDE_FAILED]: {\n code: ERROR_CODES.DEBUG_OVERRIDE_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Configuration,\n userMessage: 'errors.debug.override_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.DEBUG_CONFLICT_DETECTED]: {\n code: ERROR_CODES.DEBUG_CONFLICT_DETECTED,\n status: HTTP_STATUS.CONFLICT,\n category: ERROR_CATEGORY.Configuration,\n userMessage: 'errors.debug.conflict_detected',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n // Endpoint\n [ERROR_CODES.ENDPOINT_BUILD_FAILED]: {\n code: ERROR_CODES.ENDPOINT_BUILD_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Configuration,\n userMessage: 'errors.endpoint.build_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.ENDPOINT_NOT_FOUND]: {\n code: ERROR_CODES.ENDPOINT_NOT_FOUND,\n status: HTTP_STATUS.NOT_FOUND,\n category: ERROR_CATEGORY.NotFound,\n userMessage: 'errors.endpoint.not_found',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.ENDPOINT_INVALID_CONFIG]: {\n code: ERROR_CODES.ENDPOINT_INVALID_CONFIG,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Configuration,\n userMessage: 'errors.endpoint.invalid_config',\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n },\n\n // Event\n [ERROR_CODES.EVENT_HANDLER_FAILED]: {\n code: ERROR_CODES.EVENT_HANDLER_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Client,\n userMessage: 'errors.event.handler_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.EVENT_EMISSION_FAILED]: {\n code: ERROR_CODES.EVENT_EMISSION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Client,\n userMessage: 'errors.event.emission_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.MONITORING_FAILED]: {\n code: ERROR_CODES.MONITORING_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Client,\n userMessage: 'errors.monitoring.failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n // Polling\n [ERROR_CODES.POLLING_CANCELLED]: {\n code: ERROR_CODES.POLLING_CANCELLED,\n status: 0,\n category: ERROR_CATEGORY.Client,\n userMessage: 'errors.polling.cancelled',\n severity: ERROR_SEVERITY.Low,\n retryable: false,\n },\n [ERROR_CODES.POLLING_TIMEOUT]: {\n code: ERROR_CODES.POLLING_TIMEOUT,\n status: HTTP_STATUS.REQUEST_TIMEOUT,\n category: ERROR_CATEGORY.Timeout,\n userMessage: 'errors.polling.timeout',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n [ERROR_CODES.POLLING_INVALID_CONFIG]: {\n code: ERROR_CODES.POLLING_INVALID_CONFIG,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Configuration,\n userMessage: 'errors.polling.invalid_config',\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n },\n\n // PubSub\n [ERROR_CODES.PUBSUB_SUBSCRIPTION_FAILED]: {\n code: ERROR_CODES.PUBSUB_SUBSCRIPTION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Client,\n userMessage: 'errors.pubsub.subscription_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.PUBSUB_PUBLICATION_FAILED]: {\n code: ERROR_CODES.PUBSUB_PUBLICATION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Client,\n userMessage: 'errors.pubsub.publication_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.PUBSUB_INVALID_TOPIC]: {\n code: ERROR_CODES.PUBSUB_INVALID_TOPIC,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'errors.pubsub.invalid_topic',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.PUBSUB_CHANNEL_ERROR]: {\n code: ERROR_CODES.PUBSUB_CHANNEL_ERROR,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Client,\n userMessage: 'errors.pubsub.channel_error',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n // Revalidation\n [ERROR_CODES.REVALIDATION_FAILED]: {\n code: ERROR_CODES.REVALIDATION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Cache,\n userMessage: 'errors.revalidation.failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.REVALIDATION_IN_PROGRESS]: {\n code: ERROR_CODES.REVALIDATION_IN_PROGRESS,\n status: HTTP_STATUS.CONFLICT,\n category: ERROR_CATEGORY.Cache,\n userMessage: 'errors.revalidation.in_progress',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n // Context\n [ERROR_CODES.CONTEXT_OPERATION_FAILED]: {\n code: ERROR_CODES.CONTEXT_OPERATION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Client,\n userMessage: 'errors.context.operation_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n // Request\n [ERROR_CODES.REQUEST_TIMEOUT]: {\n code: ERROR_CODES.REQUEST_TIMEOUT,\n status: HTTP_STATUS.REQUEST_TIMEOUT,\n category: ERROR_CATEGORY.Timeout,\n userMessage: 'errors.request.timeout',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n [ERROR_CODES.REQUEST_ABORTED]: {\n code: ERROR_CODES.REQUEST_ABORTED,\n status: 0,\n category: ERROR_CATEGORY.Client,\n userMessage: 'errors.request.aborted',\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n },\n [ERROR_CODES.REQUEST_INVALID_PARAMS]: {\n code: ERROR_CODES.REQUEST_INVALID_PARAMS,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'errors.request.invalid_params',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.REQUEST_PREPARATION_FAILED]: {\n code: ERROR_CODES.REQUEST_PREPARATION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Client,\n userMessage: 'errors.request.preparation_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n // Response\n [ERROR_CODES.RESPONSE_INVALID_FORMAT]: {\n code: ERROR_CODES.RESPONSE_INVALID_FORMAT,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Server,\n userMessage: 'errors.response.invalid_format',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.RESPONSE_PARSING_FAILED]: {\n code: ERROR_CODES.RESPONSE_PARSING_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Server,\n userMessage: 'errors.response.parsing_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n // Client\n [ERROR_CODES.CLIENT_ERROR]: {\n code: ERROR_CODES.CLIENT_ERROR,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Client,\n userMessage: 'errors.client.error',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.CLIENT_INITIALIZATION_FAILED]: {\n code: ERROR_CODES.CLIENT_INITIALIZATION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Client,\n userMessage: 'errors.client.initialization_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.CLIENT_INVALID_CONFIG]: {\n code: ERROR_CODES.CLIENT_INVALID_CONFIG,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Client,\n userMessage: 'errors.client.invalid_config',\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n },\n [ERROR_CODES.CLIENT_MISSING_BASE_URL]: {\n code: ERROR_CODES.CLIENT_MISSING_BASE_URL,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Configuration,\n userMessage: 'errors.client.missing_base_url',\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n },\n [ERROR_CODES.CLIENT_CANCELLED]: {\n code: ERROR_CODES.CLIENT_CANCELLED,\n status: 0,\n category: ERROR_CATEGORY.Client,\n userMessage: 'errors.client.cancelled',\n severity: ERROR_SEVERITY.Low,\n retryable: true,\n },\n\n // Configuration\n [ERROR_CODES.CONFIG_VALIDATION_FAILED]: {\n code: ERROR_CODES.CONFIG_VALIDATION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Configuration,\n userMessage: 'errors.config.validation_failed',\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n },\n [ERROR_CODES.HEADER_PROCESSING_FAILED]: {\n code: ERROR_CODES.HEADER_PROCESSING_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Headers,\n userMessage: 'errors.headers.processing_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.NETWORK_OVERRIDE_FAILED]: {\n code: ERROR_CODES.NETWORK_OVERRIDE_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Network,\n userMessage: 'errors.network.override_failed',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n\n // Generic\n [ERROR_CODES.UNKNOWN_ERROR]: {\n code: ERROR_CODES.UNKNOWN_ERROR,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Unknown,\n userMessage: 'errors.unknown',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n // ===== Notification Package Error Definitions =====\n // Provider errors (retryable)\n [ERROR_CODES.NOTIFICATION_PROVIDER_SEND_FAILED]: {\n code: ERROR_CODES.NOTIFICATION_PROVIDER_SEND_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Provider,\n severity: ERROR_SEVERITY.High,\n retryable: true,\n userMessage: 'errors.notification.provider.send_failed',\n },\n [ERROR_CODES.NOTIFICATION_PROVIDER_CONFIGURATION_INVALID]: {\n code: ERROR_CODES.NOTIFICATION_PROVIDER_CONFIGURATION_INVALID,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Configuration,\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n userMessage: 'errors.notification.provider.configuration_invalid',\n },\n [ERROR_CODES.NOTIFICATION_PROVIDER_RATE_LIMIT]: {\n code: ERROR_CODES.NOTIFICATION_PROVIDER_RATE_LIMIT,\n status: HTTP_STATUS.TOO_MANY_REQUESTS,\n category: ERROR_CATEGORY.RateLimit,\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n userMessage: 'errors.notification.provider.rate_limit',\n },\n [ERROR_CODES.NOTIFICATION_PROVIDER_AUTH_FAILED]: {\n code: ERROR_CODES.NOTIFICATION_PROVIDER_AUTH_FAILED,\n status: HTTP_STATUS.UNAUTHORIZED,\n category: ERROR_CATEGORY.Provider,\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n userMessage: 'errors.notification.provider.auth_failed',\n },\n [ERROR_CODES.NOTIFICATION_PROVIDER_TIMEOUT]: {\n code: ERROR_CODES.NOTIFICATION_PROVIDER_TIMEOUT,\n status: HTTP_STATUS.GATEWAY_TIMEOUT,\n category: ERROR_CATEGORY.Network,\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n userMessage: 'errors.notification.provider.timeout',\n },\n [ERROR_CODES.NOTIFICATION_PROVIDER_UNAVAILABLE]: {\n code: ERROR_CODES.NOTIFICATION_PROVIDER_UNAVAILABLE,\n status: HTTP_STATUS.SERVICE_UNAVAILABLE,\n category: ERROR_CATEGORY.Provider,\n severity: ERROR_SEVERITY.High,\n retryable: true,\n userMessage: 'errors.notification.provider.unavailable',\n },\n [ERROR_CODES.NOTIFICATION_PROVIDER_FEATURE_NOT_SUPPORTED]: {\n code: ERROR_CODES.NOTIFICATION_PROVIDER_FEATURE_NOT_SUPPORTED,\n status: HTTP_STATUS.NOT_IMPLEMENTED,\n category: ERROR_CATEGORY.Provider,\n severity: ERROR_SEVERITY.Low,\n retryable: false,\n userMessage: 'errors.notification.provider.feature_not_supported',\n },\n [ERROR_CODES.NOTIFICATION_ALL_PROVIDERS_FAILED]: {\n code: ERROR_CODES.NOTIFICATION_ALL_PROVIDERS_FAILED,\n status: HTTP_STATUS.SERVICE_UNAVAILABLE,\n category: ERROR_CATEGORY.Provider,\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n userMessage: 'errors.notification.all_providers_failed',\n },\n\n // Validation errors (non-retryable)\n [ERROR_CODES.NOTIFICATION_INVALID_INPUT]: {\n code: ERROR_CODES.NOTIFICATION_INVALID_INPUT,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n userMessage: 'errors.notification.validation.invalid_input',\n },\n [ERROR_CODES.NOTIFICATION_INVALID_RECIPIENT]: {\n code: ERROR_CODES.NOTIFICATION_INVALID_RECIPIENT,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n userMessage: 'errors.notification.validation.invalid_recipient',\n },\n [ERROR_CODES.NOTIFICATION_INVALID_TEMPLATE]: {\n code: ERROR_CODES.NOTIFICATION_INVALID_TEMPLATE,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Template,\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n userMessage: 'errors.notification.validation.invalid_template',\n },\n [ERROR_CODES.NOTIFICATION_INVALID_PAYLOAD]: {\n code: ERROR_CODES.NOTIFICATION_INVALID_PAYLOAD,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n userMessage: 'errors.notification.validation.invalid_payload',\n },\n [ERROR_CODES.NOTIFICATION_MISSING_REQUIRED_FIELD]: {\n code: ERROR_CODES.NOTIFICATION_MISSING_REQUIRED_FIELD,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n userMessage: 'errors.notification.validation.required_field_missing',\n },\n [ERROR_CODES.NOTIFICATION_VALIDATION_FAILED]: {\n code: ERROR_CODES.NOTIFICATION_VALIDATION_FAILED,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n userMessage: 'errors.notification.validation.failed',\n },\n\n // User Preferences\n [ERROR_CODES.NOTIFICATION_USER_OPTED_OUT]: {\n code: ERROR_CODES.NOTIFICATION_USER_OPTED_OUT,\n status: HTTP_STATUS.OK,\n category: ERROR_CATEGORY.Validation,\n severity: ERROR_SEVERITY.Low,\n retryable: false,\n userMessage: 'errors.notification.user.opted_out',\n },\n\n // Queue errors (retryable)\n [ERROR_CODES.NOTIFICATION_QUEUE_FULL]: {\n code: ERROR_CODES.NOTIFICATION_QUEUE_FULL,\n status: HTTP_STATUS.SERVICE_UNAVAILABLE,\n category: ERROR_CATEGORY.Queue,\n severity: ERROR_SEVERITY.High,\n retryable: true,\n userMessage: 'errors.notification.queue.full',\n },\n [ERROR_CODES.NOTIFICATION_QUEUE_PROCESSING_FAILED]: {\n code: ERROR_CODES.NOTIFICATION_QUEUE_PROCESSING_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Queue,\n severity: ERROR_SEVERITY.High,\n retryable: true,\n userMessage: 'errors.notification.queue.processing_failed',\n },\n\n // Webhook errors\n [ERROR_CODES.NOTIFICATION_WEBHOOK_SIGNATURE_INVALID]: {\n code: ERROR_CODES.NOTIFICATION_WEBHOOK_SIGNATURE_INVALID,\n status: HTTP_STATUS.UNAUTHORIZED,\n category: ERROR_CATEGORY.Webhook,\n severity: ERROR_SEVERITY.High,\n retryable: false,\n userMessage: 'errors.notification.webhook.signature_invalid',\n },\n [ERROR_CODES.NOTIFICATION_WEBHOOK_VALIDATION_FAILED]: {\n code: ERROR_CODES.NOTIFICATION_WEBHOOK_VALIDATION_FAILED,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Webhook,\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n userMessage: 'errors.notification.webhook.validation_failed',\n },\n [ERROR_CODES.NOTIFICATION_WEBHOOK_PROCESSING_FAILED]: {\n code: ERROR_CODES.NOTIFICATION_WEBHOOK_PROCESSING_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Webhook,\n severity: ERROR_SEVERITY.High,\n retryable: true,\n userMessage: 'errors.notification.webhook.processing_failed',\n },\n\n // Template errors\n [ERROR_CODES.NOTIFICATION_TEMPLATE_NOT_FOUND]: {\n code: ERROR_CODES.NOTIFICATION_TEMPLATE_NOT_FOUND,\n status: HTTP_STATUS.NOT_FOUND,\n category: ERROR_CATEGORY.Template,\n severity: ERROR_SEVERITY.High,\n retryable: false,\n userMessage: 'errors.notification.template.not_found',\n },\n [ERROR_CODES.NOTIFICATION_TEMPLATE_RENDER_FAILED]: {\n code: ERROR_CODES.NOTIFICATION_TEMPLATE_RENDER_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Template,\n severity: ERROR_SEVERITY.High,\n retryable: false,\n userMessage: 'errors.notification.template.render_failed',\n },\n\n // General notification errors\n [ERROR_CODES.NOTIFICATION_UNKNOWN_ERROR]: {\n code: ERROR_CODES.NOTIFICATION_UNKNOWN_ERROR,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Unknown,\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n userMessage: 'errors.notification.unknown',\n },\n [ERROR_CODES.NOTIFICATION_INITIALIZATION_FAILED]: {\n code: ERROR_CODES.NOTIFICATION_INITIALIZATION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Configuration,\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n userMessage: 'errors.notification.initialization_failed',\n },\n\n // ===== Storage Package Error Definitions =====\n\n // General\n [ERROR_CODES.STORAGE_UNKNOWN_ERROR]: {\n code: ERROR_CODES.STORAGE_UNKNOWN_ERROR,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Unknown,\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n userMessage: 'errors.storage.unknown',\n },\n [ERROR_CODES.STORAGE_INITIALIZATION_FAILED]: {\n code: ERROR_CODES.STORAGE_INITIALIZATION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Configuration,\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n userMessage: 'errors.storage.initialization_failed',\n },\n\n // Adapter errors\n [ERROR_CODES.STORAGE_ADAPTER_NOT_FOUND]: {\n code: ERROR_CODES.STORAGE_ADAPTER_NOT_FOUND,\n status: HTTP_STATUS.NOT_FOUND,\n category: ERROR_CATEGORY.Configuration,\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n userMessage: 'errors.storage.adapter.not_found',\n },\n [ERROR_CODES.STORAGE_ADAPTER_INITIALIZATION_FAILED]: {\n code: ERROR_CODES.STORAGE_ADAPTER_INITIALIZATION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.ExternalService,\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n userMessage: 'errors.storage.adapter.initialization_failed',\n },\n [ERROR_CODES.STORAGE_ADAPTER_CONFIGURATION_INVALID]: {\n code: ERROR_CODES.STORAGE_ADAPTER_CONFIGURATION_INVALID,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Configuration,\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n userMessage: 'errors.storage.adapter.configuration_invalid',\n },\n [ERROR_CODES.STORAGE_ADAPTER_ALREADY_REGISTERED]: {\n code: ERROR_CODES.STORAGE_ADAPTER_ALREADY_REGISTERED,\n status: HTTP_STATUS.CONFLICT,\n category: ERROR_CATEGORY.Configuration,\n severity: ERROR_SEVERITY.High,\n retryable: false,\n userMessage: 'errors.storage.adapter.already_registered',\n },\n [ERROR_CODES.STORAGE_ADAPTER_CONNECTION_FAILED]: {\n code: ERROR_CODES.STORAGE_ADAPTER_CONNECTION_FAILED,\n status: HTTP_STATUS.SERVICE_UNAVAILABLE,\n category: ERROR_CATEGORY.Network,\n severity: ERROR_SEVERITY.High,\n retryable: true,\n userMessage: 'errors.storage.adapter.connection_failed',\n },\n [ERROR_CODES.STORAGE_ADAPTER_AUTHENTICATION_FAILED]: {\n code: ERROR_CODES.STORAGE_ADAPTER_AUTHENTICATION_FAILED,\n status: HTTP_STATUS.UNAUTHORIZED,\n category: ERROR_CATEGORY.Authentication,\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n userMessage: 'errors.storage.adapter.authentication_failed',\n },\n [ERROR_CODES.STORAGE_ADAPTER_OPERATION_FAILED]: {\n code: ERROR_CODES.STORAGE_ADAPTER_OPERATION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.ExternalService,\n severity: ERROR_SEVERITY.High,\n retryable: true,\n userMessage: 'errors.storage.adapter.operation_failed',\n },\n [ERROR_CODES.STORAGE_ADAPTER_HEALTH_CHECK_FAILED]: {\n code: ERROR_CODES.STORAGE_ADAPTER_HEALTH_CHECK_FAILED,\n status: HTTP_STATUS.SERVICE_UNAVAILABLE,\n category: ERROR_CATEGORY.ExternalService,\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n userMessage: 'errors.storage.adapter.health_check_failed',\n },\n [ERROR_CODES.STORAGE_ADAPTER_UNAVAILABLE]: {\n code: ERROR_CODES.STORAGE_ADAPTER_UNAVAILABLE,\n status: HTTP_STATUS.SERVICE_UNAVAILABLE,\n category: ERROR_CATEGORY.ExternalService,\n severity: ERROR_SEVERITY.High,\n retryable: true,\n userMessage: 'errors.storage.adapter.unavailable',\n },\n [ERROR_CODES.STORAGE_ADAPTER_TIMEOUT]: {\n code: ERROR_CODES.STORAGE_ADAPTER_TIMEOUT,\n status: HTTP_STATUS.GATEWAY_TIMEOUT,\n category: ERROR_CATEGORY.Timeout,\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n userMessage: 'errors.storage.adapter.timeout',\n },\n [ERROR_CODES.STORAGE_ADAPTER_RATE_LIMIT]: {\n code: ERROR_CODES.STORAGE_ADAPTER_RATE_LIMIT,\n status: HTTP_STATUS.TOO_MANY_REQUESTS,\n category: ERROR_CATEGORY.RateLimit,\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n userMessage: 'errors.storage.adapter.rate_limit',\n },\n [ERROR_CODES.STORAGE_ADAPTER_QUOTA_EXCEEDED]: {\n code: ERROR_CODES.STORAGE_ADAPTER_QUOTA_EXCEEDED,\n status: HTTP_STATUS.INSUFFICIENT_STORAGE,\n category: ERROR_CATEGORY.Quota,\n severity: ERROR_SEVERITY.High,\n retryable: false,\n userMessage: 'errors.storage.adapter.quota_exceeded',\n },\n [ERROR_CODES.STORAGE_ADAPTER_UNSUPPORTED_OPERATION]: {\n code: ERROR_CODES.STORAGE_ADAPTER_UNSUPPORTED_OPERATION,\n status: HTTP_STATUS.NOT_IMPLEMENTED,\n category: ERROR_CATEGORY.ExternalService,\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n userMessage: 'errors.storage.adapter.unsupported_operation',\n },\n [ERROR_CODES.STORAGE_ADAPTER_FEATURE_NOT_SUPPORTED]: {\n code: ERROR_CODES.STORAGE_ADAPTER_FEATURE_NOT_SUPPORTED,\n status: HTTP_STATUS.NOT_IMPLEMENTED,\n category: ERROR_CATEGORY.ExternalService,\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n userMessage: 'errors.storage.adapter.feature_not_supported',\n },\n [ERROR_CODES.STORAGE_NO_HEALTHY_ADAPTERS]: {\n code: ERROR_CODES.STORAGE_NO_HEALTHY_ADAPTERS,\n status: HTTP_STATUS.SERVICE_UNAVAILABLE,\n category: ERROR_CATEGORY.ExternalService,\n severity: ERROR_SEVERITY.Critical,\n retryable: true,\n userMessage: 'errors.storage.no_healthy_adapters',\n },\n [ERROR_CODES.STORAGE_ALL_ADAPTERS_FAILED]: {\n code: ERROR_CODES.STORAGE_ALL_ADAPTERS_FAILED,\n status: HTTP_STATUS.SERVICE_UNAVAILABLE,\n category: ERROR_CATEGORY.ExternalService,\n severity: ERROR_SEVERITY.Critical,\n retryable: true,\n userMessage: 'errors.storage.all_adapters_failed',\n },\n\n // File Validation\n [ERROR_CODES.STORAGE_FILE_TOO_LARGE]: {\n code: ERROR_CODES.STORAGE_FILE_TOO_LARGE,\n status: HTTP_STATUS.PAYLOAD_TOO_LARGE,\n category: ERROR_CATEGORY.Validation,\n severity: ERROR_SEVERITY.Low,\n retryable: false,\n userMessage: 'errors.storage.file.too_large',\n },\n [ERROR_CODES.STORAGE_FILE_TOO_SMALL]: {\n code: ERROR_CODES.STORAGE_FILE_TOO_SMALL,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n severity: ERROR_SEVERITY.Low,\n retryable: false,\n userMessage: 'errors.storage.file.too_small',\n },\n [ERROR_CODES.STORAGE_FILE_SIZE_INVALID]: {\n code: ERROR_CODES.STORAGE_FILE_SIZE_INVALID,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n severity: ERROR_SEVERITY.Low,\n retryable: false,\n userMessage: 'errors.storage.file.size.invalid',\n },\n [ERROR_CODES.STORAGE_FILE_TYPE_NOT_ALLOWED]: {\n code: ERROR_CODES.STORAGE_FILE_TYPE_NOT_ALLOWED,\n status: HTTP_STATUS.UNSUPPORTED_MEDIA_TYPE,\n category: ERROR_CATEGORY.Security,\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n userMessage: 'errors.storage.file.type.not_allowed',\n },\n [ERROR_CODES.STORAGE_INVALID_MIME_TYPE]: {\n code: ERROR_CODES.STORAGE_INVALID_MIME_TYPE,\n status: HTTP_STATUS.UNSUPPORTED_MEDIA_TYPE,\n category: ERROR_CATEGORY.Validation,\n severity: ERROR_SEVERITY.Low,\n retryable: false,\n userMessage: 'errors.storage.mime_type.invalid',\n },\n [ERROR_CODES.STORAGE_INVALID_FILE_EXTENSION]: {\n code: ERROR_CODES.STORAGE_INVALID_FILE_EXTENSION,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n severity: ERROR_SEVERITY.Low,\n retryable: false,\n userMessage: 'errors.storage.extension.invalid',\n },\n [ERROR_CODES.STORAGE_FILE_EXTENSION_INVALID]: {\n code: ERROR_CODES.STORAGE_FILE_EXTENSION_INVALID,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n severity: ERROR_SEVERITY.Low,\n retryable: false,\n userMessage: 'errors.storage.file.extension.invalid',\n },\n [ERROR_CODES.STORAGE_FILE_EXTENSION_MISMATCH]: {\n code: ERROR_CODES.STORAGE_FILE_EXTENSION_MISMATCH,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n userMessage: 'errors.storage.file.extension.mismatch',\n },\n [ERROR_CODES.STORAGE_EXECUTABLE_NOT_ALLOWED]: {\n code: ERROR_CODES.STORAGE_EXECUTABLE_NOT_ALLOWED,\n status: HTTP_STATUS.FORBIDDEN,\n category: ERROR_CATEGORY.Security,\n severity: ERROR_SEVERITY.High,\n retryable: false,\n userMessage: 'errors.storage.executable_not_allowed',\n },\n [ERROR_CODES.STORAGE_VALIDATION_FAILED]: {\n code: ERROR_CODES.STORAGE_VALIDATION_FAILED,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n severity: ERROR_SEVERITY.Low,\n retryable: false,\n userMessage: 'errors.storage.validation.failed',\n },\n [ERROR_CODES.STORAGE_INVALID_FILE_CONTENT]: {\n code: ERROR_CODES.STORAGE_INVALID_FILE_CONTENT,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n userMessage: 'errors.storage.validation.invalid_file_content',\n },\n\n // Security\n [ERROR_CODES.STORAGE_SECURITY_VIRUS_DETECTED]: {\n code: ERROR_CODES.STORAGE_SECURITY_VIRUS_DETECTED,\n status: HTTP_STATUS.FORBIDDEN,\n category: ERROR_CATEGORY.Security,\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n userMessage: 'errors.storage.security.virus_detected',\n },\n [ERROR_CODES.STORAGE_SECURITY_SCAN_FAILED]: {\n code: ERROR_CODES.STORAGE_SECURITY_SCAN_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Security,\n severity: ERROR_SEVERITY.High,\n retryable: true,\n userMessage: 'errors.storage.security.scan_failed',\n },\n [ERROR_CODES.STORAGE_SECURITY_ACCESS_DENIED]: {\n code: ERROR_CODES.STORAGE_SECURITY_ACCESS_DENIED,\n status: HTTP_STATUS.FORBIDDEN,\n category: ERROR_CATEGORY.Authorization,\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n userMessage: 'errors.storage.security.access_denied',\n },\n [ERROR_CODES.STORAGE_SECURITY_ENCRYPTION_FAILED]: {\n code: ERROR_CODES.STORAGE_SECURITY_ENCRYPTION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Security,\n severity: ERROR_SEVERITY.High,\n retryable: true,\n userMessage: 'errors.storage.security.encryption_failed',\n },\n\n // File Operations\n [ERROR_CODES.STORAGE_FILE_UPLOAD_FAILED]: {\n code: ERROR_CODES.STORAGE_FILE_UPLOAD_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.FileOperation,\n severity: ERROR_SEVERITY.High,\n retryable: true,\n userMessage: 'errors.storage.file.upload_failed',\n },\n [ERROR_CODES.STORAGE_FILE_DOWNLOAD_FAILED]: {\n code: ERROR_CODES.STORAGE_FILE_DOWNLOAD_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.FileOperation,\n severity: ERROR_SEVERITY.High,\n retryable: true,\n userMessage: 'errors.storage.file.download_failed',\n },\n [ERROR_CODES.STORAGE_FILE_DELETE_FAILED]: {\n code: ERROR_CODES.STORAGE_FILE_DELETE_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.FileOperation,\n severity: ERROR_SEVERITY.High,\n retryable: true,\n userMessage: 'errors.storage.file.delete_failed',\n },\n [ERROR_CODES.STORAGE_FILE_UPDATE_FAILED]: {\n code: ERROR_CODES.STORAGE_FILE_UPDATE_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.FileOperation,\n severity: ERROR_SEVERITY.High,\n retryable: true,\n userMessage: 'errors.storage.file.update_failed',\n },\n [ERROR_CODES.STORAGE_FILE_NOT_FOUND]: {\n code: ERROR_CODES.STORAGE_FILE_NOT_FOUND,\n status: HTTP_STATUS.NOT_FOUND,\n category: ERROR_CATEGORY.NotFound,\n severity: ERROR_SEVERITY.Low,\n retryable: false,\n userMessage: 'errors.storage.file.not_found',\n },\n [ERROR_CODES.STORAGE_FILE_ALREADY_EXISTS]: {\n code: ERROR_CODES.STORAGE_FILE_ALREADY_EXISTS,\n status: HTTP_STATUS.CONFLICT,\n category: ERROR_CATEGORY.Conflict,\n severity: ERROR_SEVERITY.Low,\n retryable: false,\n userMessage: 'errors.storage.file.already_exists',\n },\n [ERROR_CODES.STORAGE_FILE_MOVE_FAILED]: {\n code: ERROR_CODES.STORAGE_FILE_MOVE_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.FileOperation,\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n userMessage: 'errors.storage.file.move_failed',\n },\n [ERROR_CODES.STORAGE_FILE_COPY_FAILED]: {\n code: ERROR_CODES.STORAGE_FILE_COPY_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.FileOperation,\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n userMessage: 'errors.storage.file.copy_failed',\n },\n [ERROR_CODES.STORAGE_FILE_READ_FAILED]: {\n code: ERROR_CODES.STORAGE_FILE_READ_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.FileOperation,\n severity: ERROR_SEVERITY.High,\n retryable: true,\n userMessage: 'errors.storage.file.read_failed',\n },\n [ERROR_CODES.STORAGE_FILE_WRITE_FAILED]: {\n code: ERROR_CODES.STORAGE_FILE_WRITE_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.FileOperation,\n severity: ERROR_SEVERITY.High,\n retryable: true,\n userMessage: 'errors.storage.file.write_failed',\n },\n [ERROR_CODES.STORAGE_FILE_CORRUPTED]: {\n code: ERROR_CODES.STORAGE_FILE_CORRUPTED,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n userMessage: 'errors.storage.file.corrupted',\n },\n [ERROR_CODES.STORAGE_INVALID_OPERATION]: {\n code: ERROR_CODES.STORAGE_INVALID_OPERATION,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n severity: ERROR_SEVERITY.Low,\n retryable: false,\n userMessage: 'errors.storage.invalid_operation',\n },\n\n // Metadata\n [ERROR_CODES.STORAGE_METADATA_EXTRACTION_FAILED]: {\n code: ERROR_CODES.STORAGE_METADATA_EXTRACTION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Processing,\n severity: ERROR_SEVERITY.Low,\n retryable: true,\n userMessage: 'errors.storage.metadata.extraction_failed',\n },\n [ERROR_CODES.STORAGE_METADATA_INVALID]: {\n code: ERROR_CODES.STORAGE_METADATA_INVALID,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n severity: ERROR_SEVERITY.Low,\n retryable: false,\n userMessage: 'errors.storage.metadata.invalid',\n },\n [ERROR_CODES.STORAGE_METADATA_UPDATE_FAILED]: {\n code: ERROR_CODES.STORAGE_METADATA_UPDATE_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Processing,\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n userMessage: 'errors.storage.metadata.update_failed',\n },\n\n // Media Processing\n [ERROR_CODES.STORAGE_MEDIA_PROCESSING_FAILED]: {\n code: ERROR_CODES.STORAGE_MEDIA_PROCESSING_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Processing,\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n userMessage: 'errors.storage.media.processing_failed',\n },\n [ERROR_CODES.STORAGE_MEDIA_RESIZE_FAILED]: {\n code: ERROR_CODES.STORAGE_MEDIA_RESIZE_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Processing,\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n userMessage: 'errors.storage.media.resize_failed',\n },\n [ERROR_CODES.STORAGE_MEDIA_FORMAT_UNSUPPORTED]: {\n code: ERROR_CODES.STORAGE_MEDIA_FORMAT_UNSUPPORTED,\n status: HTTP_STATUS.UNSUPPORTED_MEDIA_TYPE,\n category: ERROR_CATEGORY.Validation,\n severity: ERROR_SEVERITY.Low,\n retryable: false,\n userMessage: 'errors.storage.media.format_unsupported',\n },\n [ERROR_CODES.STORAGE_MEDIA_TRANSCODE_FAILED]: {\n code: ERROR_CODES.STORAGE_MEDIA_TRANSCODE_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Processing,\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n userMessage: 'errors.storage.media.transcode_failed',\n },\n [ERROR_CODES.STORAGE_MEDIA_THUMBNAIL_FAILED]: {\n code: ERROR_CODES.STORAGE_MEDIA_THUMBNAIL_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Processing,\n severity: ERROR_SEVERITY.Low,\n retryable: true,\n userMessage: 'errors.storage.media.thumbnail_failed',\n },\n [ERROR_CODES.STORAGE_MEDIA_INVALID_DIMENSIONS]: {\n code: ERROR_CODES.STORAGE_MEDIA_INVALID_DIMENSIONS,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n severity: ERROR_SEVERITY.Low,\n retryable: false,\n userMessage: 'errors.storage.media.invalid_dimensions',\n },\n\n // Template & PDF\n [ERROR_CODES.STORAGE_TEMPLATE_NOT_FOUND]: {\n code: ERROR_CODES.STORAGE_TEMPLATE_NOT_FOUND,\n status: HTTP_STATUS.NOT_FOUND,\n category: ERROR_CATEGORY.NotFound,\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n userMessage: 'errors.storage.template.not_found',\n },\n [ERROR_CODES.STORAGE_TEMPLATE_RENDER_FAILED]: {\n code: ERROR_CODES.STORAGE_TEMPLATE_RENDER_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Template,\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n userMessage: 'errors.storage.template.render_failed',\n },\n [ERROR_CODES.STORAGE_PDF_GENERATION_FAILED]: {\n code: ERROR_CODES.STORAGE_PDF_GENERATION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Processing,\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n userMessage: 'errors.storage.pdf.generation_failed',\n },\n [ERROR_CODES.STORAGE_PDF_RENDERING_TIMEOUT]: {\n code: ERROR_CODES.STORAGE_PDF_RENDERING_TIMEOUT,\n status: HTTP_STATUS.GATEWAY_TIMEOUT,\n category: ERROR_CATEGORY.Timeout,\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n userMessage: 'errors.storage.pdf.rendering_timeout',\n },\n\n // Queue\n [ERROR_CODES.STORAGE_QUEUE_FULL]: {\n code: ERROR_CODES.STORAGE_QUEUE_FULL,\n status: HTTP_STATUS.SERVICE_UNAVAILABLE,\n category: ERROR_CATEGORY.Queue,\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n userMessage: 'errors.storage.queue.full',\n },\n [ERROR_CODES.STORAGE_QUEUE_PROCESSING_FAILED]: {\n code: ERROR_CODES.STORAGE_QUEUE_PROCESSING_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Queue,\n severity: ERROR_SEVERITY.High,\n retryable: true,\n userMessage: 'errors.storage.queue.processing_failed',\n },\n [ERROR_CODES.STORAGE_QUEUE_ITEM_NOT_FOUND]: {\n code: ERROR_CODES.STORAGE_QUEUE_ITEM_NOT_FOUND,\n status: HTTP_STATUS.NOT_FOUND,\n category: ERROR_CATEGORY.NotFound,\n severity: ERROR_SEVERITY.Low,\n retryable: false,\n userMessage: 'errors.storage.queue.item_not_found',\n },\n\n // Compliance\n [ERROR_CODES.STORAGE_COMPLIANCE_VIOLATION]: {\n code: ERROR_CODES.STORAGE_COMPLIANCE_VIOLATION,\n status: HTTP_STATUS.FORBIDDEN,\n category: ERROR_CATEGORY.Compliance,\n severity: ERROR_SEVERITY.High,\n retryable: false,\n userMessage: 'errors.storage.compliance.violation',\n },\n [ERROR_CODES.STORAGE_COMPLIANCE_RETENTION_EXPIRED]: {\n code: ERROR_CODES.STORAGE_COMPLIANCE_RETENTION_EXPIRED,\n status: HTTP_STATUS.GONE,\n category: ERROR_CATEGORY.Compliance,\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n userMessage: 'errors.storage.compliance.retention_expired',\n },\n [ERROR_CODES.STORAGE_COMPLIANCE_IMMUTABLE_FILE]: {\n code: ERROR_CODES.STORAGE_COMPLIANCE_IMMUTABLE_FILE,\n status: HTTP_STATUS.FORBIDDEN,\n category: ERROR_CATEGORY.Compliance,\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n userMessage: 'errors.storage.compliance.immutable_file',\n },\n [ERROR_CODES.STORAGE_COMPLIANCE_POLICY_NOT_FOUND]: {\n code: ERROR_CODES.STORAGE_COMPLIANCE_POLICY_NOT_FOUND,\n status: HTTP_STATUS.NOT_FOUND,\n category: ERROR_CATEGORY.Configuration,\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n userMessage: 'errors.storage.compliance.policy_not_found',\n },\n [ERROR_CODES.STORAGE_COMPLIANCE_RETENTION_VIOLATION]: {\n code: ERROR_CODES.STORAGE_COMPLIANCE_RETENTION_VIOLATION,\n status: HTTP_STATUS.FORBIDDEN,\n category: ERROR_CATEGORY.Compliance,\n severity: ERROR_SEVERITY.High,\n retryable: false,\n userMessage: 'errors.storage.compliance.retention_violation',\n },\n [ERROR_CODES.STORAGE_COMPLIANCE_SOFT_DELETE_REQUIRED]: {\n code: ERROR_CODES.STORAGE_COMPLIANCE_SOFT_DELETE_REQUIRED,\n status: HTTP_STATUS.FORBIDDEN,\n category: ERROR_CATEGORY.Compliance,\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n userMessage: 'errors.storage.compliance.soft_delete_required',\n },\n [ERROR_CODES.STORAGE_COMPLIANCE_GRACE_PERIOD_ACTIVE]: {\n code: ERROR_CODES.STORAGE_COMPLIANCE_GRACE_PERIOD_ACTIVE,\n status: HTTP_STATUS.CONFLICT,\n category: ERROR_CATEGORY.Compliance,\n severity: ERROR_SEVERITY.Low,\n retryable: false,\n userMessage: 'errors.storage.compliance.grace_period_active',\n },\n [ERROR_CODES.STORAGE_COMPLIANCE_DEFERRED_DELETION]: {\n code: ERROR_CODES.STORAGE_COMPLIANCE_DEFERRED_DELETION,\n status: HTTP_STATUS.ACCEPTED,\n category: ERROR_CATEGORY.Compliance,\n severity: ERROR_SEVERITY.Low,\n retryable: false,\n userMessage: 'errors.storage.compliance.deferred_deletion',\n },\n [ERROR_CODES.STORAGE_COMPLIANCE_PATTERN_PROTECTED]: {\n code: ERROR_CODES.STORAGE_COMPLIANCE_PATTERN_PROTECTED,\n status: HTTP_STATUS.FORBIDDEN,\n category: ERROR_CATEGORY.Compliance,\n severity: ERROR_SEVERITY.High,\n retryable: false,\n userMessage: 'errors.storage.compliance.pattern_protected',\n },\n\n // Share Links\n [ERROR_CODES.STORAGE_SHARE_LINK_NOT_FOUND]: {\n code: ERROR_CODES.STORAGE_SHARE_LINK_NOT_FOUND,\n status: HTTP_STATUS.NOT_FOUND,\n category: ERROR_CATEGORY.NotFound,\n severity: ERROR_SEVERITY.Low,\n retryable: false,\n userMessage: 'errors.storage.share_link.not_found',\n },\n [ERROR_CODES.STORAGE_SHARE_LINK_EXPIRED]: {\n code: ERROR_CODES.STORAGE_SHARE_LINK_EXPIRED,\n status: HTTP_STATUS.GONE,\n category: ERROR_CATEGORY.Validation,\n severity: ERROR_SEVERITY.Low,\n retryable: false,\n userMessage: 'errors.storage.share_link.expired',\n },\n [ERROR_CODES.STORAGE_SHARE_LINK_MAX_DOWNLOADS]: {\n code: ERROR_CODES.STORAGE_SHARE_LINK_MAX_DOWNLOADS,\n status: HTTP_STATUS.FORBIDDEN,\n category: ERROR_CATEGORY.Limits,\n severity: ERROR_SEVERITY.Low,\n retryable: false,\n userMessage: 'errors.storage.share_link.max_downloads',\n },\n [ERROR_CODES.STORAGE_SHARE_LINK_INVALID_PASSWORD]: {\n code: ERROR_CODES.STORAGE_SHARE_LINK_INVALID_PASSWORD,\n status: HTTP_STATUS.UNAUTHORIZED,\n category: ERROR_CATEGORY.Authentication,\n severity: ERROR_SEVERITY.Low,\n retryable: false,\n userMessage: 'errors.storage.share_link.invalid_password',\n },\n\n // Plugin\n [ERROR_CODES.STORAGE_PLUGIN_NOT_FOUND]: {\n code: ERROR_CODES.STORAGE_PLUGIN_NOT_FOUND,\n status: HTTP_STATUS.NOT_FOUND,\n category: ERROR_CATEGORY.Plugin,\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n userMessage: 'errors.storage.plugin.not_found',\n },\n [ERROR_CODES.STORAGE_PLUGIN_INITIALIZATION_FAILED]: {\n code: ERROR_CODES.STORAGE_PLUGIN_INITIALIZATION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Plugin,\n severity: ERROR_SEVERITY.High,\n retryable: false,\n userMessage: 'errors.storage.plugin.initialization_failed',\n },\n [ERROR_CODES.STORAGE_PLUGIN_EXECUTION_FAILED]: {\n code: ERROR_CODES.STORAGE_PLUGIN_EXECUTION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Plugin,\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n userMessage: 'errors.storage.plugin.execution_failed',\n },\n\n // VirusTotal Provider (Plugin)\n [ERROR_CODES.STORAGE_VIRUSTOTAL_BAD_REQUEST]: {\n code: ERROR_CODES.STORAGE_VIRUSTOTAL_BAD_REQUEST,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n severity: ERROR_SEVERITY.Low,\n retryable: false,\n userMessage: 'errors.storage.virustotal.bad_request',\n },\n [ERROR_CODES.STORAGE_VIRUSTOTAL_AUTHENTICATION_REQUIRED]: {\n code: ERROR_CODES.STORAGE_VIRUSTOTAL_AUTHENTICATION_REQUIRED,\n status: HTTP_STATUS.UNAUTHORIZED,\n category: ERROR_CATEGORY.Authentication,\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n userMessage: 'errors.storage.virustotal.authentication_required',\n },\n [ERROR_CODES.STORAGE_VIRUSTOTAL_WRONG_CREDENTIALS]: {\n code: ERROR_CODES.STORAGE_VIRUSTOTAL_WRONG_CREDENTIALS,\n status: HTTP_STATUS.UNAUTHORIZED,\n category: ERROR_CATEGORY.Authentication,\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n userMessage: 'errors.storage.virustotal.wrong_credentials',\n },\n [ERROR_CODES.STORAGE_VIRUSTOTAL_FILE_TOO_LARGE]: {\n code: ERROR_CODES.STORAGE_VIRUSTOTAL_FILE_TOO_LARGE,\n status: HTTP_STATUS.PAYLOAD_TOO_LARGE,\n category: ERROR_CATEGORY.Validation,\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n userMessage: 'errors.storage.virustotal.file_too_large',\n },\n [ERROR_CODES.STORAGE_VIRUSTOTAL_QUOTA_EXCEEDED]: {\n code: ERROR_CODES.STORAGE_VIRUSTOTAL_QUOTA_EXCEEDED,\n status: HTTP_STATUS.TOO_MANY_REQUESTS,\n category: ERROR_CATEGORY.Quota,\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n userMessage: 'errors.storage.virustotal.quota_exceeded',\n },\n [ERROR_CODES.STORAGE_VIRUSTOTAL_ANALYSIS_NOT_FOUND]: {\n code: ERROR_CODES.STORAGE_VIRUSTOTAL_ANALYSIS_NOT_FOUND,\n status: HTTP_STATUS.NOT_FOUND,\n category: ERROR_CATEGORY.NotFound,\n severity: ERROR_SEVERITY.Low,\n retryable: false,\n userMessage: 'errors.storage.virustotal.analysis_not_found',\n },\n [ERROR_CODES.STORAGE_VIRUSTOTAL_SCAN_TIMEOUT]: {\n code: ERROR_CODES.STORAGE_VIRUSTOTAL_SCAN_TIMEOUT,\n status: HTTP_STATUS.GATEWAY_TIMEOUT,\n category: ERROR_CATEGORY.Timeout,\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n userMessage: 'errors.storage.virustotal.scan_timeout',\n },\n [ERROR_CODES.STORAGE_VIRUSTOTAL_SCAN_FAILED]: {\n code: ERROR_CODES.STORAGE_VIRUSTOTAL_SCAN_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Plugin,\n severity: ERROR_SEVERITY.High,\n retryable: true,\n userMessage: 'errors.storage.virustotal.scan_failed',\n },\n\n // CDN Providers (Plugins)\n // Cloudflare\n [ERROR_CODES.CLOUDFLARE_AUTHENTICATION_FAILED]: {\n code: ERROR_CODES.CLOUDFLARE_AUTHENTICATION_FAILED,\n status: HTTP_STATUS.UNAUTHORIZED,\n category: ERROR_CATEGORY.Authentication,\n severity: ERROR_SEVERITY.High,\n retryable: false,\n userMessage: 'errors.cloudflare.authentication.failed',\n },\n [ERROR_CODES.CLOUDFLARE_ZONE_NOT_FOUND]: {\n code: ERROR_CODES.CLOUDFLARE_ZONE_NOT_FOUND,\n status: HTTP_STATUS.NOT_FOUND,\n category: ERROR_CATEGORY.NotFound,\n severity: ERROR_SEVERITY.High,\n retryable: false,\n userMessage: 'errors.cloudflare.zone.not.found',\n },\n [ERROR_CODES.CLOUDFLARE_PURGE_FAILED]: {\n code: ERROR_CODES.CLOUDFLARE_PURGE_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Plugin,\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n userMessage: 'errors.cloudflare.purge.failed',\n },\n [ERROR_CODES.CLOUDFLARE_RATE_LIMIT_EXCEEDED]: {\n code: ERROR_CODES.CLOUDFLARE_RATE_LIMIT_EXCEEDED,\n status: HTTP_STATUS.TOO_MANY_REQUESTS,\n category: ERROR_CATEGORY.RateLimit,\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n userMessage: 'errors.cloudflare.rate.limit.exceeded',\n },\n [ERROR_CODES.CLOUDFLARE_INVALID_URL]: {\n code: ERROR_CODES.CLOUDFLARE_INVALID_URL,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n severity: ERROR_SEVERITY.Low,\n retryable: false,\n userMessage: 'errors.cloudflare.invalid.url',\n },\n [ERROR_CODES.CLOUDFLARE_API_ERROR]: {\n code: ERROR_CODES.CLOUDFLARE_API_ERROR,\n status: HTTP_STATUS.BAD_GATEWAY,\n category: ERROR_CATEGORY.ExternalService,\n severity: ERROR_SEVERITY.High,\n retryable: true,\n userMessage: 'errors.cloudflare.api.error',\n },\n\n // CloudFront\n [ERROR_CODES.CLOUDFRONT_AUTHENTICATION_FAILED]: {\n code: ERROR_CODES.CLOUDFRONT_AUTHENTICATION_FAILED,\n status: HTTP_STATUS.UNAUTHORIZED,\n category: ERROR_CATEGORY.Authentication,\n severity: ERROR_SEVERITY.High,\n retryable: false,\n userMessage: 'errors.cloudfront.authentication.failed',\n },\n [ERROR_CODES.CLOUDFRONT_DISTRIBUTION_NOT_FOUND]: {\n code: ERROR_CODES.CLOUDFRONT_DISTRIBUTION_NOT_FOUND,\n status: HTTP_STATUS.NOT_FOUND,\n category: ERROR_CATEGORY.NotFound,\n severity: ERROR_SEVERITY.High,\n retryable: false,\n userMessage: 'errors.cloudfront.distribution.not.found',\n },\n [ERROR_CODES.CLOUDFRONT_INVALIDATION_FAILED]: {\n code: ERROR_CODES.CLOUDFRONT_INVALIDATION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Plugin,\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n userMessage: 'errors.cloudfront.invalidation.failed',\n },\n [ERROR_CODES.CLOUDFRONT_QUOTA_EXCEEDED]: {\n code: ERROR_CODES.CLOUDFRONT_QUOTA_EXCEEDED,\n status: HTTP_STATUS.TOO_MANY_REQUESTS,\n category: ERROR_CATEGORY.Quota,\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n userMessage: 'errors.cloudfront.quota.exceeded',\n },\n [ERROR_CODES.CLOUDFRONT_INVALID_PATH]: {\n code: ERROR_CODES.CLOUDFRONT_INVALID_PATH,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n severity: ERROR_SEVERITY.Low,\n retryable: false,\n userMessage: 'errors.cloudfront.invalid.path',\n },\n [ERROR_CODES.CLOUDFRONT_API_ERROR]: {\n code: ERROR_CODES.CLOUDFRONT_API_ERROR,\n status: HTTP_STATUS.BAD_GATEWAY,\n category: ERROR_CATEGORY.ExternalService,\n severity: ERROR_SEVERITY.High,\n retryable: true,\n userMessage: 'errors.cloudfront.api.error',\n },\n\n // Fastly\n [ERROR_CODES.FASTLY_AUTHENTICATION_FAILED]: {\n code: ERROR_CODES.FASTLY_AUTHENTICATION_FAILED,\n status: HTTP_STATUS.UNAUTHORIZED,\n category: ERROR_CATEGORY.Authentication,\n severity: ERROR_SEVERITY.High,\n retryable: false,\n userMessage: 'errors.fastly.authentication.failed',\n },\n [ERROR_CODES.FASTLY_SERVICE_NOT_FOUND]: {\n code: ERROR_CODES.FASTLY_SERVICE_NOT_FOUND,\n status: HTTP_STATUS.NOT_FOUND,\n category: ERROR_CATEGORY.NotFound,\n severity: ERROR_SEVERITY.High,\n retryable: false,\n userMessage: 'errors.fastly.service.not.found',\n },\n [ERROR_CODES.FASTLY_PURGE_FAILED]: {\n code: ERROR_CODES.FASTLY_PURGE_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Plugin,\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n userMessage: 'errors.fastly.purge.failed',\n },\n [ERROR_CODES.FASTLY_RATE_LIMIT_EXCEEDED]: {\n code: ERROR_CODES.FASTLY_RATE_LIMIT_EXCEEDED,\n status: HTTP_STATUS.TOO_MANY_REQUESTS,\n category: ERROR_CATEGORY.RateLimit,\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n userMessage: 'errors.fastly.rate.limit.exceeded',\n },\n [ERROR_CODES.FASTLY_INVALID_URL]: {\n code: ERROR_CODES.FASTLY_INVALID_URL,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n severity: ERROR_SEVERITY.Low,\n retryable: false,\n userMessage: 'errors.fastly.invalid.url',\n },\n [ERROR_CODES.FASTLY_API_ERROR]: {\n code: ERROR_CODES.FASTLY_API_ERROR,\n status: HTTP_STATUS.BAD_GATEWAY,\n category: ERROR_CATEGORY.ExternalService,\n severity: ERROR_SEVERITY.High,\n retryable: true,\n userMessage: 'errors.fastly.api.error',\n },\n\n // Generic CDN\n [ERROR_CODES.CDN_INVALIDATION_FAILED]: {\n code: ERROR_CODES.CDN_INVALIDATION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Plugin,\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n userMessage: 'errors.cdn.invalidation.failed',\n },\n [ERROR_CODES.CDN_CONFIGURATION_INVALID]: {\n code: ERROR_CODES.CDN_CONFIGURATION_INVALID,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Configuration,\n severity: ERROR_SEVERITY.High,\n retryable: false,\n userMessage: 'errors.cdn.configuration.invalid',\n },\n [ERROR_CODES.CDN_PROVIDER_NOT_FOUND]: {\n code: ERROR_CODES.CDN_PROVIDER_NOT_FOUND,\n status: HTTP_STATUS.NOT_FOUND,\n category: ERROR_CATEGORY.NotFound,\n severity: ERROR_SEVERITY.High,\n retryable: false,\n userMessage: 'errors.cdn.provider.not.found',\n },\n\n // Webhook Errors\n [ERROR_CODES.STORAGE_WEBHOOK_SIGNATURE_INVALID]: {\n code: ERROR_CODES.STORAGE_WEBHOOK_SIGNATURE_INVALID,\n status: HTTP_STATUS.UNAUTHORIZED,\n category: ERROR_CATEGORY.Security,\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n userMessage: 'errors.storage.webhook.signature_invalid',\n },\n [ERROR_CODES.STORAGE_WEBHOOK_PAYLOAD_INVALID]: {\n code: ERROR_CODES.STORAGE_WEBHOOK_PAYLOAD_INVALID,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n userMessage: 'errors.storage.webhook.payload_invalid',\n },\n [ERROR_CODES.STORAGE_WEBHOOK_PROCESSING_FAILED]: {\n code: ERROR_CODES.STORAGE_WEBHOOK_PROCESSING_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Processing,\n severity: ERROR_SEVERITY.High,\n retryable: true,\n userMessage: 'errors.storage.webhook.processing_failed',\n },\n [ERROR_CODES.STORAGE_WEBHOOK_TIMEOUT]: {\n code: ERROR_CODES.STORAGE_WEBHOOK_TIMEOUT,\n status: HTTP_STATUS.GATEWAY_TIMEOUT,\n category: ERROR_CATEGORY.Timeout,\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n userMessage: 'errors.storage.webhook.timeout',\n },\n [ERROR_CODES.STORAGE_WEBHOOK_ADAPTER_NOT_FOUND]: {\n code: ERROR_CODES.STORAGE_WEBHOOK_ADAPTER_NOT_FOUND,\n status: HTTP_STATUS.NOT_FOUND,\n category: ERROR_CATEGORY.NotFound,\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n userMessage: 'errors.storage.webhook.adapter_not_found',\n },\n [ERROR_CODES.STORAGE_WEBHOOK_DUPLICATE_DETECTED]: {\n code: ERROR_CODES.STORAGE_WEBHOOK_DUPLICATE_DETECTED,\n status: HTTP_STATUS.OK,\n category: ERROR_CATEGORY.Processing,\n severity: ERROR_SEVERITY.Low,\n retryable: false,\n userMessage: 'errors.storage.webhook.duplicate_detected',\n },\n [ERROR_CODES.STORAGE_WEBHOOK_IDEMPOTENCY_ERROR]: {\n code: ERROR_CODES.STORAGE_WEBHOOK_IDEMPOTENCY_ERROR,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Processing,\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n userMessage: 'errors.storage.webhook.idempotency_error',\n },\n [ERROR_CODES.STORAGE_WEBHOOK_RATE_LIMIT_EXCEEDED]: {\n code: ERROR_CODES.STORAGE_WEBHOOK_RATE_LIMIT_EXCEEDED,\n status: HTTP_STATUS.TOO_MANY_REQUESTS,\n category: ERROR_CATEGORY.RateLimit,\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n userMessage: 'errors.storage.webhook.rate_limit_exceeded',\n },\n\n // Presigned URLs\n [ERROR_CODES.STORAGE_PRESIGNED_URL_GENERATION_FAILED]: {\n code: ERROR_CODES.STORAGE_PRESIGNED_URL_GENERATION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.ExternalService,\n severity: ERROR_SEVERITY.High,\n retryable: true,\n userMessage: 'errors.storage.presigned_url.generation_failed',\n },\n [ERROR_CODES.STORAGE_PRESIGNED_URL_EXPIRED]: {\n code: ERROR_CODES.STORAGE_PRESIGNED_URL_EXPIRED,\n status: HTTP_STATUS.GONE,\n category: ERROR_CATEGORY.Validation,\n severity: ERROR_SEVERITY.Low,\n retryable: false,\n userMessage: 'errors.storage.presigned_url.expired',\n },\n [ERROR_CODES.STORAGE_PRESIGNED_URL_INVALID]: {\n code: ERROR_CODES.STORAGE_PRESIGNED_URL_INVALID,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n severity: ERROR_SEVERITY.Low,\n retryable: false,\n userMessage: 'errors.storage.presigned_url.invalid',\n },\n\n // Chunked Upload\n [ERROR_CODES.STORAGE_CHUNKED_UPLOAD_INIT_FAILED]: {\n code: ERROR_CODES.STORAGE_CHUNKED_UPLOAD_INIT_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.FileOperation,\n severity: ERROR_SEVERITY.High,\n retryable: true,\n userMessage: 'errors.storage.chunked_upload.init_failed',\n },\n [ERROR_CODES.STORAGE_CHUNKED_UPLOAD_PART_FAILED]: {\n code: ERROR_CODES.STORAGE_CHUNKED_UPLOAD_PART_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.FileOperation,\n severity: ERROR_SEVERITY.High,\n retryable: true,\n userMessage: 'errors.storage.chunked_upload.part_failed',\n },\n [ERROR_CODES.STORAGE_CHUNKED_UPLOAD_COMPLETE_FAILED]: {\n code: ERROR_CODES.STORAGE_CHUNKED_UPLOAD_COMPLETE_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.FileOperation,\n severity: ERROR_SEVERITY.High,\n retryable: true,\n userMessage: 'errors.storage.chunked_upload.complete_failed',\n },\n [ERROR_CODES.STORAGE_CHUNKED_UPLOAD_ABORT_FAILED]: {\n code: ERROR_CODES.STORAGE_CHUNKED_UPLOAD_ABORT_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.FileOperation,\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n userMessage: 'errors.storage.chunked_upload.abort_failed',\n },\n [ERROR_CODES.STORAGE_CHUNKED_UPLOAD_NOT_FOUND]: {\n code: ERROR_CODES.STORAGE_CHUNKED_UPLOAD_NOT_FOUND,\n status: HTTP_STATUS.NOT_FOUND,\n category: ERROR_CATEGORY.NotFound,\n severity: ERROR_SEVERITY.Low,\n retryable: false,\n userMessage: 'errors.storage.chunked_upload.not_found',\n },\n\n // CORS\n [ERROR_CODES.STORAGE_CORS_CONFIGURATION_INVALID]: {\n code: ERROR_CODES.STORAGE_CORS_CONFIGURATION_INVALID,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Configuration,\n severity: ERROR_SEVERITY.High,\n retryable: false,\n userMessage: 'errors.storage.cors.configuration_invalid',\n },\n [ERROR_CODES.STORAGE_CORS_ORIGIN_NOT_ALLOWED]: {\n code: ERROR_CODES.STORAGE_CORS_ORIGIN_NOT_ALLOWED,\n status: HTTP_STATUS.FORBIDDEN,\n category: ERROR_CATEGORY.Authorization,\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n userMessage: 'errors.storage.cors.origin_not_allowed',\n },\n\n // TTL\n [ERROR_CODES.STORAGE_TTL_EXPIRED]: {\n code: ERROR_CODES.STORAGE_TTL_EXPIRED,\n status: HTTP_STATUS.GONE,\n category: ERROR_CATEGORY.Validation,\n severity: ERROR_SEVERITY.Low,\n retryable: false,\n userMessage: 'errors.storage.ttl.expired',\n },\n [ERROR_CODES.STORAGE_TTL_CLEANUP_FAILED]: {\n code: ERROR_CODES.STORAGE_TTL_CLEANUP_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Processing,\n severity: ERROR_SEVERITY.Low,\n retryable: true,\n userMessage: 'errors.storage.ttl.cleanup_failed',\n },\n\n // Audit\n [ERROR_CODES.STORAGE_AUDIT_LOG_FAILED]: {\n code: ERROR_CODES.STORAGE_AUDIT_LOG_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.System,\n severity: ERROR_SEVERITY.Low,\n retryable: false,\n userMessage: 'errors.storage.audit.log_failed',\n },\n\n // Timeout & Network\n [ERROR_CODES.STORAGE_TIMEOUT]: {\n code: ERROR_CODES.STORAGE_TIMEOUT,\n status: HTTP_STATUS.GATEWAY_TIMEOUT,\n category: ERROR_CATEGORY.Timeout,\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n userMessage: 'errors.storage.timeout',\n },\n [ERROR_CODES.STORAGE_NETWORK_ERROR]: {\n code: ERROR_CODES.STORAGE_NETWORK_ERROR,\n status: HTTP_STATUS.SERVICE_UNAVAILABLE,\n category: ERROR_CATEGORY.Network,\n severity: ERROR_SEVERITY.High,\n retryable: true,\n userMessage: 'errors.storage.network_error',\n },\n [ERROR_CODES.STORAGE_CONNECTION_LOST]: {\n code: ERROR_CODES.STORAGE_CONNECTION_LOST,\n status: HTTP_STATUS.SERVICE_UNAVAILABLE,\n category: ERROR_CATEGORY.Network,\n severity: ERROR_SEVERITY.High,\n retryable: true,\n userMessage: 'errors.storage.connection_lost',\n },\n\n // Permission & Quota\n [ERROR_CODES.STORAGE_PERMISSION_DENIED]: {\n code: ERROR_CODES.STORAGE_PERMISSION_DENIED,\n status: HTTP_STATUS.FORBIDDEN,\n category: ERROR_CATEGORY.Authorization,\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n userMessage: 'errors.storage.permission_denied',\n },\n [ERROR_CODES.STORAGE_QUOTA_EXCEEDED]: {\n code: ERROR_CODES.STORAGE_QUOTA_EXCEEDED,\n status: HTTP_STATUS.INSUFFICIENT_STORAGE,\n category: ERROR_CATEGORY.Quota,\n severity: ERROR_SEVERITY.High,\n retryable: false,\n userMessage: 'errors.storage.quota_exceeded',\n },\n [ERROR_CODES.STORAGE_INSUFFICIENT_SPACE]: {\n code: ERROR_CODES.STORAGE_INSUFFICIENT_SPACE,\n status: HTTP_STATUS.INSUFFICIENT_STORAGE,\n category: ERROR_CATEGORY.Quota,\n severity: ERROR_SEVERITY.High,\n retryable: false,\n userMessage: 'errors.storage.insufficient_space',\n },\n [ERROR_CODES.STORAGE_FEATURE_NOT_IMPLEMENTED]: {\n code: ERROR_CODES.STORAGE_FEATURE_NOT_IMPLEMENTED,\n status: HTTP_STATUS.NOT_IMPLEMENTED,\n category: ERROR_CATEGORY.Server,\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n userMessage: 'errors.storage.feature.not_implemented',\n },\n\n // ===== Core Package Error Definitions =====\n // Feature Flags\n [ERROR_CODES.CORE_FEATURE_FLAG_NOT_FOUND]: {\n code: ERROR_CODES.CORE_FEATURE_FLAG_NOT_FOUND,\n status: HTTP_STATUS.NOT_FOUND,\n category: ERROR_CATEGORY.NotFound,\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n userMessage: 'errors.core.feature_flag.not_found',\n },\n [ERROR_CODES.CORE_FEATURE_FLAG_INVALID_CONFIG]: {\n code: ERROR_CODES.CORE_FEATURE_FLAG_INVALID_CONFIG,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Configuration,\n severity: ERROR_SEVERITY.High,\n retryable: false,\n userMessage: 'errors.core.feature_flag.invalid_config',\n },\n [ERROR_CODES.CORE_FEATURE_FLAG_EVALUATION_FAILED]: {\n code: ERROR_CODES.CORE_FEATURE_FLAG_EVALUATION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Processing,\n severity: ERROR_SEVERITY.High,\n retryable: true,\n userMessage: 'errors.core.feature_flag.evaluation_failed',\n },\n [ERROR_CODES.CORE_FEATURE_FLAG_PROVIDER_ERROR]: {\n code: ERROR_CODES.CORE_FEATURE_FLAG_PROVIDER_ERROR,\n status: HTTP_STATUS.BAD_GATEWAY,\n category: ERROR_CATEGORY.Provider,\n severity: ERROR_SEVERITY.High,\n retryable: true,\n userMessage: 'errors.core.feature_flag.provider_error',\n },\n [ERROR_CODES.CORE_FEATURE_FLAG_CACHE_ERROR]: {\n code: ERROR_CODES.CORE_FEATURE_FLAG_CACHE_ERROR,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Cache,\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n userMessage: 'errors.core.feature_flag.cache_error',\n },\n [ERROR_CODES.CORE_FEATURE_FLAG_CONTEXT_INVALID]: {\n code: ERROR_CODES.CORE_FEATURE_FLAG_CONTEXT_INVALID,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n userMessage: 'errors.core.feature_flag.context_invalid',\n },\n [ERROR_CODES.CORE_FEATURE_FLAG_RULE_INVALID]: {\n code: ERROR_CODES.CORE_FEATURE_FLAG_RULE_INVALID,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n userMessage: 'errors.core.feature_flag.rule_invalid',\n },\n [ERROR_CODES.CORE_FEATURE_FLAG_TOGGLE_FAILED]: {\n code: ERROR_CODES.CORE_FEATURE_FLAG_TOGGLE_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Processing,\n severity: ERROR_SEVERITY.High,\n retryable: true,\n userMessage: 'errors.core.feature_flag.toggle_failed',\n },\n\n // Cache\n [ERROR_CODES.CORE_CACHE_INITIALIZATION_FAILED]: {\n code: ERROR_CODES.CORE_CACHE_INITIALIZATION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Configuration,\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n userMessage: 'errors.core.cache.initialization_failed',\n },\n [ERROR_CODES.CORE_CACHE_STRATEGY_NOT_FOUND]: {\n code: ERROR_CODES.CORE_CACHE_STRATEGY_NOT_FOUND,\n status: HTTP_STATUS.NOT_FOUND,\n category: ERROR_CATEGORY.Configuration,\n severity: ERROR_SEVERITY.High,\n retryable: false,\n userMessage: 'errors.core.cache.strategy_not_found',\n },\n [ERROR_CODES.CORE_CACHE_OPERATION_FAILED]: {\n code: ERROR_CODES.CORE_CACHE_OPERATION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Cache,\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n userMessage: 'errors.core.cache.operation_failed',\n },\n [ERROR_CODES.CORE_CACHE_INVALIDATION_FAILED]: {\n code: ERROR_CODES.CORE_CACHE_INVALIDATION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Cache,\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n userMessage: 'errors.core.cache.invalidation_failed',\n },\n [ERROR_CODES.CORE_CACHE_SERIALIZATION_FAILED]: {\n code: ERROR_CODES.CORE_CACHE_SERIALIZATION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Processing,\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n userMessage: 'errors.core.cache.serialization_failed',\n },\n\n // API Client\n [ERROR_CODES.CORE_API_CLIENT_INITIALIZATION_FAILED]: {\n code: ERROR_CODES.CORE_API_CLIENT_INITIALIZATION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Configuration,\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n userMessage: 'errors.core.api_client.initialization_failed',\n },\n [ERROR_CODES.CORE_API_CLIENT_REQUEST_FAILED]: {\n code: ERROR_CODES.CORE_API_CLIENT_REQUEST_FAILED,\n status: HTTP_STATUS.BAD_GATEWAY,\n category: ERROR_CATEGORY.Network,\n severity: ERROR_SEVERITY.High,\n retryable: true,\n userMessage: 'errors.core.api_client.request_failed',\n },\n [ERROR_CODES.CORE_API_CLIENT_TIMEOUT]: {\n code: ERROR_CODES.CORE_API_CLIENT_TIMEOUT,\n status: HTTP_STATUS.GATEWAY_TIMEOUT,\n category: ERROR_CATEGORY.Timeout,\n severity: ERROR_SEVERITY.High,\n retryable: true,\n userMessage: 'errors.core.api_client.timeout',\n },\n [ERROR_CODES.CORE_API_CLIENT_INVALID_RESPONSE]: {\n code: ERROR_CODES.CORE_API_CLIENT_INVALID_RESPONSE,\n status: HTTP_STATUS.BAD_GATEWAY,\n category: ERROR_CATEGORY.Server,\n severity: ERROR_SEVERITY.High,\n retryable: false,\n userMessage: 'errors.core.api_client.invalid_response',\n },\n [ERROR_CODES.CORE_API_CLIENT_AUTHENTICATION_FAILED]: {\n code: ERROR_CODES.CORE_API_CLIENT_AUTHENTICATION_FAILED,\n status: HTTP_STATUS.UNAUTHORIZED,\n category: ERROR_CATEGORY.Authentication,\n severity: ERROR_SEVERITY.High,\n retryable: false,\n userMessage: 'errors.core.api_client.authentication_failed',\n },\n\n // Database Service\n [ERROR_CODES.CORE_DATABASE_SERVICE_INITIALIZATION_FAILED]: {\n code: ERROR_CODES.CORE_DATABASE_SERVICE_INITIALIZATION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Configuration,\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n userMessage: 'errors.core.database_service.initialization_failed',\n },\n [ERROR_CODES.CORE_DATABASE_SERVICE_CONNECTION_FAILED]: {\n code: ERROR_CODES.CORE_DATABASE_SERVICE_CONNECTION_FAILED,\n status: HTTP_STATUS.SERVICE_UNAVAILABLE,\n category: ERROR_CATEGORY.Network,\n severity: ERROR_SEVERITY.High,\n retryable: true,\n userMessage: 'errors.core.database_service.connection_failed',\n },\n [ERROR_CODES.CORE_DATABASE_SERVICE_QUERY_FAILED]: {\n code: ERROR_CODES.CORE_DATABASE_SERVICE_QUERY_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Server,\n severity: ERROR_SEVERITY.High,\n retryable: false,\n userMessage: 'errors.core.database_service.query_failed',\n },\n [ERROR_CODES.CORE_DATABASE_SERVICE_TRANSACTION_FAILED]: {\n code: ERROR_CODES.CORE_DATABASE_SERVICE_TRANSACTION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Server,\n severity: ERROR_SEVERITY.High,\n retryable: true,\n userMessage: 'errors.core.database_service.transaction_failed',\n },\n\n // Validation\n [ERROR_CODES.CORE_VALIDATION_FAILED]: {\n code: ERROR_CODES.CORE_VALIDATION_FAILED,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n userMessage: 'errors.core.validation.failed',\n },\n [ERROR_CODES.CORE_VALIDATION_SCHEMA_INVALID]: {\n code: ERROR_CODES.CORE_VALIDATION_SCHEMA_INVALID,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n severity: ERROR_SEVERITY.High,\n retryable: false,\n userMessage: 'errors.core.validation.schema_invalid',\n },\n [ERROR_CODES.CORE_VALIDATION_REQUIRED_FIELD_MISSING]: {\n code: ERROR_CODES.CORE_VALIDATION_REQUIRED_FIELD_MISSING,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n userMessage: 'errors.core.validation.required_field_missing',\n },\n\n // Hash Utilities\n [ERROR_CODES.CORE_HASH_GENERATION_FAILED]: {\n code: ERROR_CODES.CORE_HASH_GENERATION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Processing,\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n userMessage: 'errors.core.hash.generation_failed',\n },\n [ERROR_CODES.CORE_HASH_VERIFICATION_FAILED]: {\n code: ERROR_CODES.CORE_HASH_VERIFICATION_FAILED,\n status: HTTP_STATUS.UNAUTHORIZED,\n category: ERROR_CATEGORY.Authentication,\n severity: ERROR_SEVERITY.High,\n retryable: false,\n userMessage: 'errors.core.hash.verification_failed',\n },\n\n // Engine\n [ERROR_CODES.CORE_ENGINE_INITIALIZATION_FAILED]: {\n code: ERROR_CODES.CORE_ENGINE_INITIALIZATION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Configuration,\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n userMessage: 'errors.core.engine.initialization_failed',\n },\n [ERROR_CODES.CORE_ENGINE_EXECUTION_FAILED]: {\n code: ERROR_CODES.CORE_ENGINE_EXECUTION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Processing,\n severity: ERROR_SEVERITY.High,\n retryable: true,\n userMessage: 'errors.core.engine.execution_failed',\n },\n [ERROR_CODES.CORE_ENGINE_CONFIGURATION_INVALID]: {\n code: ERROR_CODES.CORE_ENGINE_CONFIGURATION_INVALID,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Configuration,\n severity: ERROR_SEVERITY.High,\n retryable: false,\n userMessage: 'errors.core.engine.configuration_invalid',\n },\n\n // Provider\n [ERROR_CODES.CORE_PROVIDER_NOT_FOUND]: {\n code: ERROR_CODES.CORE_PROVIDER_NOT_FOUND,\n status: HTTP_STATUS.NOT_FOUND,\n category: ERROR_CATEGORY.NotFound,\n severity: ERROR_SEVERITY.High,\n retryable: false,\n userMessage: 'errors.core.provider.not_found',\n },\n [ERROR_CODES.CORE_PROVIDER_INITIALIZATION_FAILED]: {\n code: ERROR_CODES.CORE_PROVIDER_INITIALIZATION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Configuration,\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n userMessage: 'errors.core.provider.initialization_failed',\n },\n [ERROR_CODES.CORE_PROVIDER_OPERATION_FAILED]: {\n code: ERROR_CODES.CORE_PROVIDER_OPERATION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Provider,\n severity: ERROR_SEVERITY.High,\n retryable: true,\n userMessage: 'errors.core.provider.operation_failed',\n },\n\n // Context\n [ERROR_CODES.CORE_CONTEXT_INVALID]: {\n code: ERROR_CODES.CORE_CONTEXT_INVALID,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n userMessage: 'errors.core.context.invalid',\n },\n [ERROR_CODES.CORE_CONTEXT_MISSING_REQUIRED_DATA]: {\n code: ERROR_CODES.CORE_CONTEXT_MISSING_REQUIRED_DATA,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n userMessage: 'errors.core.context.missing_required_data',\n },\n\n // General Core\n [ERROR_CODES.CORE_INITIALIZATION_FAILED]: {\n code: ERROR_CODES.CORE_INITIALIZATION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Configuration,\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n userMessage: 'errors.core.initialization_failed',\n },\n [ERROR_CODES.CORE_CONFIGURATION_INVALID]: {\n code: ERROR_CODES.CORE_CONFIGURATION_INVALID,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Configuration,\n severity: ERROR_SEVERITY.High,\n retryable: false,\n userMessage: 'errors.core.configuration_invalid',\n },\n [ERROR_CODES.CORE_OPERATION_FAILED]: {\n code: ERROR_CODES.CORE_OPERATION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Processing,\n severity: ERROR_SEVERITY.High,\n retryable: true,\n userMessage: 'errors.core.operation_failed',\n },\n [ERROR_CODES.CORE_UNKNOWN_ERROR]: {\n code: ERROR_CODES.CORE_UNKNOWN_ERROR,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Unknown,\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n userMessage: 'errors.core.unknown_error',\n },\n\n // ===== Errors Package Errors =====\n [ERROR_CODES.ERROR_SYSTEM_NOT_INITIALIZED]: {\n code: ERROR_CODES.ERROR_SYSTEM_NOT_INITIALIZED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Configuration,\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n userMessage: 'errors.system.not_initialized',\n },\n [ERROR_CODES.EVENT_FACTORY_NOT_REGISTERED]: {\n code: ERROR_CODES.EVENT_FACTORY_NOT_REGISTERED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Configuration,\n severity: ERROR_SEVERITY.High,\n retryable: false,\n userMessage: 'errors.event.factory.not_registered',\n },\n [ERROR_CODES.DATABASE_ERROR]: {\n code: ERROR_CODES.DATABASE_ERROR,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Server,\n severity: ERROR_SEVERITY.High,\n retryable: false,\n userMessage: 'errors.database',\n },\n\n // Global Error Handler\n [ERROR_CODES.UNCAUGHT_EXCEPTION]: {\n code: ERROR_CODES.UNCAUGHT_EXCEPTION,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.System,\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n userMessage: 'errors.uncaught.exception',\n },\n [ERROR_CODES.UNHANDLED_REJECTION]: {\n code: ERROR_CODES.UNHANDLED_REJECTION,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.System,\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n userMessage: 'errors.unhandled.rejection',\n },\n [ERROR_CODES.RUNTIME_ERROR]: {\n code: ERROR_CODES.RUNTIME_ERROR,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.System,\n severity: ERROR_SEVERITY.High,\n retryable: false,\n userMessage: 'errors.runtime',\n },\n\n // ===== Database Error Definitions =====\n // Connection & Configuration\n [ERROR_CODES.DB_ACCESS_DENIED]: {\n code: ERROR_CODES.DB_ACCESS_DENIED,\n status: HTTP_STATUS.FORBIDDEN,\n category: ERROR_CATEGORY.Authentication,\n userMessage: 'db.connection.access_denied',\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n },\n [ERROR_CODES.DB_CONFIG_REQUIRED]: {\n code: ERROR_CODES.DB_CONFIG_REQUIRED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Configuration,\n userMessage: 'db.connection.config_required',\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n },\n [ERROR_CODES.DB_CONNECT_FAILED]: {\n code: ERROR_CODES.DB_CONNECT_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Server,\n userMessage: 'db.connection.connect_failed',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n [ERROR_CODES.DB_DISCONNECT_FAILED]: {\n code: ERROR_CODES.DB_DISCONNECT_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Server,\n userMessage: 'db.connection.disconnect_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.DB_INIT_FAILED]: {\n code: ERROR_CODES.DB_INIT_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Server,\n userMessage: 'db.connection.init_failed',\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n },\n\n // Query & Execution\n [ERROR_CODES.DB_QUERY_FAILED]: {\n code: ERROR_CODES.DB_QUERY_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Server,\n userMessage: 'db.query.failed',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n [ERROR_CODES.DB_BUILD_WHERE_FAILED]: {\n code: ERROR_CODES.DB_BUILD_WHERE_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Server,\n userMessage: 'db.query.build_where_failed',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n [ERROR_CODES.DB_INVALID_SQL]: {\n code: ERROR_CODES.DB_INVALID_SQL,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'db.query.invalid_sql',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.DB_TRANSACTION_FAILED]: {\n code: ERROR_CODES.DB_TRANSACTION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Server,\n userMessage: 'db.query.transaction_failed',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n [ERROR_CODES.DB_UNSUPPORTED_OPERATOR]: {\n code: ERROR_CODES.DB_UNSUPPORTED_OPERATOR,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'db.query.unsupported_operator',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n // CRUD Operations\n [ERROR_CODES.DB_CREATE_FAILED]: {\n code: ERROR_CODES.DB_CREATE_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Server,\n userMessage: 'db.crud.create_failed',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n [ERROR_CODES.DB_CREATION_FAILED]: {\n code: ERROR_CODES.DB_CREATION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Server,\n userMessage: 'db.crud.create_failed',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n [ERROR_CODES.DB_FETCH_FAILED]: {\n code: ERROR_CODES.DB_FETCH_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Server,\n userMessage: 'db.crud.fetch_failed',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n [ERROR_CODES.DB_FIND_FAILED]: {\n code: ERROR_CODES.DB_FIND_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Server,\n userMessage: 'db.crud.find_failed',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n [ERROR_CODES.DB_FIND_MANY_FAILED]: {\n code: ERROR_CODES.DB_FIND_MANY_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Server,\n userMessage: 'db.crud.find_many_failed',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n [ERROR_CODES.DB_FIND_BY_ID_FAILED]: {\n code: ERROR_CODES.DB_FIND_BY_ID_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Server,\n userMessage: 'db.crud.find_by_id_failed',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n [ERROR_CODES.DB_UPDATE_FAILED]: {\n code: ERROR_CODES.DB_UPDATE_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Server,\n userMessage: 'db.crud.update_failed',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n [ERROR_CODES.DB_UPDATE_NO_CHANGES]: {\n code: ERROR_CODES.DB_UPDATE_NO_CHANGES,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'db.crud.update_no_changes',\n severity: ERROR_SEVERITY.Low,\n retryable: false,\n },\n [ERROR_CODES.DB_DELETE_FAILED]: {\n code: ERROR_CODES.DB_DELETE_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Server,\n userMessage: 'db.crud.delete_failed',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n [ERROR_CODES.DB_INSERT_FAILED]: {\n code: ERROR_CODES.DB_INSERT_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Server,\n userMessage: 'db.crud.insert_failed',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n [ERROR_CODES.DB_RECORD_NOT_FOUND]: {\n code: ERROR_CODES.DB_RECORD_NOT_FOUND,\n status: HTTP_STATUS.NOT_FOUND,\n category: ERROR_CATEGORY.NotFound,\n userMessage: 'db.crud.record_not_found',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.DB_EXISTS_FAILED]: {\n code: ERROR_CODES.DB_EXISTS_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Server,\n userMessage: 'db.crud.exists_failed',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n\n // Schema & Columns\n [ERROR_CODES.DB_COLUMN_NOT_EXISTS]: {\n code: ERROR_CODES.DB_COLUMN_NOT_EXISTS,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'db.schema.column_not_exists',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.DB_TABLE_NOT_REGISTERED]: {\n code: ERROR_CODES.DB_TABLE_NOT_REGISTERED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Server,\n userMessage: 'db.schema.table_not_registered',\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n },\n [ERROR_CODES.DB_TABLE_REGISTRATION_FAILED]: {\n code: ERROR_CODES.DB_TABLE_REGISTRATION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Server,\n userMessage: 'db.schema.table_registration_failed',\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n },\n [ERROR_CODES.DB_ID_COLUMN_NOT_REGISTERED]: {\n code: ERROR_CODES.DB_ID_COLUMN_NOT_REGISTERED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Server,\n userMessage: 'db.schema.id_column_not_registered',\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n },\n [ERROR_CODES.DB_INVALID_COLUMN]: {\n code: ERROR_CODES.DB_INVALID_COLUMN,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'db.schema.invalid_column',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.DB_INVALID_TABLE_NAME]: {\n code: ERROR_CODES.DB_INVALID_TABLE_NAME,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'db.schema.invalid_table_name',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.DB_GET_ID_COLUMN_FAILED]: {\n code: ERROR_CODES.DB_GET_ID_COLUMN_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Server,\n userMessage: 'db.schema.get_id_column_failed',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n [ERROR_CODES.DB_GET_TABLE_FAILED]: {\n code: ERROR_CODES.DB_GET_TABLE_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Server,\n userMessage: 'db.schema.get_table_failed',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n\n // Validation & Parameters\n [ERROR_CODES.DB_INVALID_PARAMETERS]: {\n code: ERROR_CODES.DB_INVALID_PARAMETERS,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'db.validation.invalid_parameters',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.DB_INVALID_PARAMS]: {\n code: ERROR_CODES.DB_INVALID_PARAMS,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'db.validation.invalid_parameters',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.DB_INVALID_FILTER]: {\n code: ERROR_CODES.DB_INVALID_FILTER,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'db.validation.invalid_filter',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.DB_INVALID_ID]: {\n code: ERROR_CODES.DB_INVALID_ID,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'db.validation.invalid_id',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.DB_INVALID_ENTITY]: {\n code: ERROR_CODES.DB_INVALID_ENTITY,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'db.validation.invalid_entity',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.DB_INVALID_UPDATE_PARAMS]: {\n code: ERROR_CODES.DB_INVALID_UPDATE_PARAMS,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'db.validation.invalid_update_params',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.DB_INVALID_FIELD_NAME]: {\n code: ERROR_CODES.DB_INVALID_FIELD_NAME,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'db.validation.invalid_field_name',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.DB_INVALID_RESULT]: {\n code: ERROR_CODES.DB_INVALID_RESULT,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Server,\n userMessage: 'db.validation.invalid_result',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n [ERROR_CODES.DB_NO_UPDATE_FIELDS]: {\n code: ERROR_CODES.DB_NO_UPDATE_FIELDS,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'db.validation.no_update_fields',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n // Count & Data\n [ERROR_CODES.DB_COUNT_FAILED]: {\n code: ERROR_CODES.DB_COUNT_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Server,\n userMessage: 'db.count.failed',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n [ERROR_CODES.DB_COUNT_NO_RESULTS]: {\n code: ERROR_CODES.DB_COUNT_NO_RESULTS,\n status: HTTP_STATUS.NOT_FOUND,\n category: ERROR_CATEGORY.NotFound,\n userMessage: 'db.count.no_results',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.DB_NO_DATA]: {\n code: ERROR_CODES.DB_NO_DATA,\n status: HTTP_STATUS.NOT_FOUND,\n category: ERROR_CATEGORY.NotFound,\n userMessage: 'db.count.no_results',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n // Multi-tenant Context\n [ERROR_CODES.DB_NO_TENANT_CONTEXT]: {\n code: ERROR_CODES.DB_NO_TENANT_CONTEXT,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Server,\n userMessage: 'db.tenant.no_context',\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n },\n [ERROR_CODES.DB_NO_TENANT_ID]: {\n code: ERROR_CODES.DB_NO_TENANT_ID,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Server,\n userMessage: 'db.tenant.no_tenant_id',\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n },\n [ERROR_CODES.DB_TENANT_VALIDATION_FAILED]: {\n code: ERROR_CODES.DB_TENANT_VALIDATION_FAILED,\n status: HTTP_STATUS.FORBIDDEN,\n category: ERROR_CATEGORY.Authorization,\n userMessage: 'db.tenant.validation_failed',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n\n // Backup & Restore\n [ERROR_CODES.DB_BACKUP_CLEANUP_FAILED]: {\n code: ERROR_CODES.DB_BACKUP_CLEANUP_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Server,\n userMessage: 'db.backup.cleanup_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.DB_BACKUP_FILE_NOT_FOUND]: {\n code: ERROR_CODES.DB_BACKUP_FILE_NOT_FOUND,\n status: HTTP_STATUS.NOT_FOUND,\n category: ERROR_CATEGORY.NotFound,\n userMessage: 'db.backup.file_not_found',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.DB_LIST_BACKUPS_FAILED]: {\n code: ERROR_CODES.DB_LIST_BACKUPS_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Server,\n userMessage: 'db.backup.list_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.DB_INVALID_BACKUP_INFO]: {\n code: ERROR_CODES.DB_INVALID_BACKUP_INFO,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'db.backup.invalid_info',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.DB_RESTORE_FAILED]: {\n code: ERROR_CODES.DB_RESTORE_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Server,\n userMessage: 'db.backup.restore_failed',\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n },\n\n // Cache Operations\n [ERROR_CODES.DB_CACHE_DELETE_FAILED]: {\n code: ERROR_CODES.DB_CACHE_DELETE_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Cache,\n userMessage: 'db.cache.delete_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n },\n [ERROR_CODES.DB_CACHE_HEALTH_CHECK_FAILED]: {\n code: ERROR_CODES.DB_CACHE_HEALTH_CHECK_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Cache,\n userMessage: 'db.cache.health_check_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n },\n [ERROR_CODES.DB_CACHE_INVALIDATE_FAILED]: {\n code: ERROR_CODES.DB_CACHE_INVALIDATE_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Cache,\n userMessage: 'db.cache.invalidate_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n },\n [ERROR_CODES.DB_CACHE_SET_FAILED]: {\n code: ERROR_CODES.DB_CACHE_SET_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Cache,\n userMessage: 'db.cache.set_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n },\n [ERROR_CODES.DB_CACHE_GET_FAILED]: {\n code: ERROR_CODES.DB_CACHE_GET_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Cache,\n userMessage: 'db.cache.get_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n },\n\n // File & Storage\n [ERROR_CODES.DB_INVALID_FILEPATH]: {\n code: ERROR_CODES.DB_INVALID_FILEPATH,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'db.file.invalid_filepath',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.DB_S3_DELETE_FAILED]: {\n code: ERROR_CODES.DB_S3_DELETE_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Server,\n userMessage: 'db.file.s3_delete_failed',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n [ERROR_CODES.DB_S3_DOWNLOAD_FAILED]: {\n code: ERROR_CODES.DB_S3_DOWNLOAD_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Server,\n userMessage: 'db.file.s3_download_failed',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n [ERROR_CODES.DB_S3_NOT_CONFIGURED]: {\n code: ERROR_CODES.DB_S3_NOT_CONFIGURED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Configuration,\n userMessage: 'db.file.s3_not_configured',\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n },\n [ERROR_CODES.DB_S3_UPLOAD_FAILED]: {\n code: ERROR_CODES.DB_S3_UPLOAD_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Server,\n userMessage: 'db.file.s3_upload_failed',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n\n [ERROR_CODES.PAYMENT_TIMEOUT]: {\n code: ERROR_CODES.PAYMENT_TIMEOUT,\n status: HTTP_STATUS.REQUEST_TIMEOUT,\n category: ERROR_CATEGORY.Timeout,\n userMessage: 'errors.payment.timeout',\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n },\n\n [ERROR_CODES.PAYMENT_NETWORK_ERROR]: {\n code: ERROR_CODES.PAYMENT_NETWORK_ERROR,\n status: HTTP_STATUS.NETWORK_AUTHENTICATION_REQUIRED,\n category: ERROR_CATEGORY.Network,\n userMessage: 'errors.payment.network_error',\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n },\n\n // Misc\n [ERROR_CODES.DB_SCHEDULE_SETUP_FAILED]: {\n code: ERROR_CODES.DB_SCHEDULE_SETUP_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Server,\n userMessage: 'db.misc.schedule_setup_failed',\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n },\n [ERROR_CODES.DB_DECRYPTION_FAILED]: {\n code: ERROR_CODES.DB_DECRYPTION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Server,\n userMessage: 'db.misc.decryption_failed',\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n },\n [ERROR_CODES.DB_INVALID_SHELL_ARG]: {\n code: ERROR_CODES.DB_INVALID_SHELL_ARG,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'db.misc.invalid_shell_arg',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.DB_INVALID_BETWEEN_OPERATOR]: {\n code: ERROR_CODES.DB_INVALID_BETWEEN_OPERATOR,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'db.misc.invalid_between_operator',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.DB_INVALID_IN_OPERATOR]: {\n code: ERROR_CODES.DB_INVALID_IN_OPERATOR,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'db.misc.invalid_in_operator',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.DB_INVALID_COUNT]: {\n code: ERROR_CODES.DB_INVALID_COUNT,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'db.misc.invalid_count',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n // ===== Payments Package Error Definitions =====\n // ===== Refund Errors =====\n [ERROR_CODES.PAYMENT_REFUND_FAILED]: {\n code: ERROR_CODES.PAYMENT_REFUND_FAILED,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Refund,\n userMessage: 'errors.payment.refund.failed',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n [ERROR_CODES.PAYMENT_REFUND_NOT_FOUND]: {\n code: ERROR_CODES.PAYMENT_REFUND_NOT_FOUND,\n status: HTTP_STATUS.NOT_FOUND,\n category: ERROR_CATEGORY.Refund,\n userMessage: 'errors.payment.refund.not_found',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.PAYMENT_REFUND_ALREADY_PROCESSED]: {\n code: ERROR_CODES.PAYMENT_REFUND_ALREADY_PROCESSED,\n status: HTTP_STATUS.CONFLICT,\n category: ERROR_CATEGORY.Refund,\n userMessage: 'errors.payment.refund.already_processed',\n severity: ERROR_SEVERITY.Low,\n retryable: false,\n },\n [ERROR_CODES.PAYMENT_REFUND_AMOUNT_INVALID]: {\n code: ERROR_CODES.PAYMENT_REFUND_AMOUNT_INVALID,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'errors.payment.refund.amount_invalid',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.PAYMENT_REFUND_VALIDATION_FAILED]: {\n code: ERROR_CODES.PAYMENT_REFUND_VALIDATION_FAILED,\n status: HTTP_STATUS.UNPROCESSABLE_ENTITY,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'errors.payment.refund.validation_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.PAYMENT_REFUND_TIMEOUT]: {\n code: ERROR_CODES.PAYMENT_REFUND_TIMEOUT,\n status: HTTP_STATUS.REQUEST_TIMEOUT,\n category: ERROR_CATEGORY.Timeout,\n userMessage: 'errors.payment.refund.timeout',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n [ERROR_CODES.PAYMENT_REFUND_NOT_ALLOWED]: {\n code: ERROR_CODES.PAYMENT_REFUND_NOT_ALLOWED,\n status: HTTP_STATUS.FORBIDDEN,\n category: ERROR_CATEGORY.Refund,\n userMessage: 'errors.payment.refund.not_allowed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.PAYMENT_REFUND_AUTHORIZATION_FAILED]: {\n code: ERROR_CODES.PAYMENT_REFUND_AUTHORIZATION_FAILED,\n status: HTTP_STATUS.UNAUTHORIZED,\n category: ERROR_CATEGORY.Authorization,\n userMessage: 'errors.payment.refund.authorization_failed',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n\n [ERROR_CODES.PAYMENT_REFUND_PROCESSING_FAILED]: {\n code: ERROR_CODES.PAYMENT_REFUND_PROCESSING_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Refund,\n userMessage: 'errors.payment.refund.processing_failed',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n\n // ===== Provider Errors =====\n [ERROR_CODES.PAYMENT_PROVIDER_ERROR]: {\n code: ERROR_CODES.PAYMENT_PROVIDER_ERROR,\n status: HTTP_STATUS.BAD_GATEWAY,\n category: ERROR_CATEGORY.Provider,\n userMessage: 'errors.payment.provider.generic',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n [ERROR_CODES.PAYMENT_PROVIDER_UNAVAILABLE]: {\n code: ERROR_CODES.PAYMENT_PROVIDER_UNAVAILABLE,\n status: HTTP_STATUS.SERVICE_UNAVAILABLE,\n category: ERROR_CATEGORY.Provider,\n userMessage: 'errors.payment.provider.unavailable',\n severity: ERROR_SEVERITY.Critical,\n retryable: true,\n },\n [ERROR_CODES.PAYMENT_PROVIDER_CONFIGURATION_INVALID]: {\n code: ERROR_CODES.PAYMENT_PROVIDER_CONFIGURATION_INVALID,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Configuration,\n userMessage: 'errors.payment.provider.invalid_config',\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n },\n [ERROR_CODES.PAYMENT_PROVIDER_RESPONSE_INVALID]: {\n code: ERROR_CODES.PAYMENT_PROVIDER_RESPONSE_INVALID,\n status: HTTP_STATUS.BAD_GATEWAY,\n category: ERROR_CATEGORY.Provider,\n userMessage: 'errors.payment.provider.invalid_response',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n [ERROR_CODES.PAYMENT_PROVIDER_TIMEOUT]: {\n code: ERROR_CODES.PAYMENT_PROVIDER_TIMEOUT,\n status: HTTP_STATUS.GATEWAY_TIMEOUT,\n category: ERROR_CATEGORY.Timeout,\n userMessage: 'errors.payment.provider.timeout',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n [ERROR_CODES.PAYMENT_PROVIDER_AUTH_FAILED]: {\n code: ERROR_CODES.PAYMENT_PROVIDER_AUTH_FAILED,\n status: HTTP_STATUS.UNAUTHORIZED,\n category: ERROR_CATEGORY.Authentication,\n userMessage: 'errors.payment.provider.auth_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n // ===== Compliance Errors =====\n [ERROR_CODES.PAYMENT_COMPLIANCE_VIOLATION]: {\n code: ERROR_CODES.PAYMENT_COMPLIANCE_VIOLATION,\n status: HTTP_STATUS.FORBIDDEN,\n category: ERROR_CATEGORY.Compliance,\n userMessage: 'errors.payment.compliance.violation',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n [ERROR_CODES.PAYMENT_COMPLIANCE_CHECK_FAILED]: {\n code: ERROR_CODES.PAYMENT_COMPLIANCE_CHECK_FAILED,\n status: HTTP_STATUS.UNPROCESSABLE_ENTITY,\n category: ERROR_CATEGORY.Compliance,\n userMessage: 'errors.payment.compliance.check_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.PAYMENT_COMPLIANCE_LIMIT_EXCEEDED]: {\n code: ERROR_CODES.PAYMENT_COMPLIANCE_LIMIT_EXCEEDED,\n status: HTTP_STATUS.TOO_MANY_REQUESTS,\n category: ERROR_CATEGORY.Limits,\n userMessage: 'errors.payment.compliance.limit_exceeded',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.PAYMENT_COMPLIANCE_POLICY_MISSING]: {\n code: ERROR_CODES.PAYMENT_COMPLIANCE_POLICY_MISSING,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Configuration,\n userMessage: 'errors.payment.compliance.policy_missing',\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n },\n [ERROR_CODES.PAYMENT_COMPLIANCE_KYC_REQUIRED]: {\n code: ERROR_CODES.PAYMENT_COMPLIANCE_KYC_REQUIRED,\n status: HTTP_STATUS.FORBIDDEN,\n category: ERROR_CATEGORY.Compliance,\n userMessage: 'errors.payment.compliance.kyc_required',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.PAYMENT_COMPLIANCE_GEOGRAPHIC_RESTRICTION]: {\n code: ERROR_CODES.PAYMENT_COMPLIANCE_GEOGRAPHIC_RESTRICTION,\n status: HTTP_STATUS.FORBIDDEN,\n category: ERROR_CATEGORY.Compliance,\n userMessage: 'errors.payment.compliance.geographic_restriction',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n // ===== Security Errors =====\n [ERROR_CODES.PAYMENT_SECURITY_VIOLATION]: {\n code: ERROR_CODES.PAYMENT_SECURITY_VIOLATION,\n status: HTTP_STATUS.FORBIDDEN,\n category: ERROR_CATEGORY.Security,\n userMessage: 'errors.payment.security.violation',\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n },\n [ERROR_CODES.PAYMENT_SECURITY_SIGNATURE_INVALID]: {\n code: ERROR_CODES.PAYMENT_SECURITY_SIGNATURE_INVALID,\n status: HTTP_STATUS.UNAUTHORIZED,\n category: ERROR_CATEGORY.Security,\n userMessage: 'errors.payment.security.invalid_signature',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n [ERROR_CODES.PAYMENT_SECURITY_ENCRYPTION_FAILED]: {\n code: ERROR_CODES.PAYMENT_SECURITY_ENCRYPTION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Security,\n userMessage: 'errors.payment.security.encryption_failed',\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n },\n [ERROR_CODES.PAYMENT_SECURITY_FRAUD_DETECTED]: {\n code: ERROR_CODES.PAYMENT_SECURITY_FRAUD_DETECTED,\n status: HTTP_STATUS.FORBIDDEN,\n category: ERROR_CATEGORY.Fraud,\n userMessage: 'errors.payment.security.fraud_detected',\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n },\n [ERROR_CODES.PAYMENT_SECURITY_TOKEN_INVALID]: {\n code: ERROR_CODES.PAYMENT_SECURITY_TOKEN_INVALID,\n status: HTTP_STATUS.UNAUTHORIZED,\n category: ERROR_CATEGORY.Authentication,\n userMessage: 'errors.payment.security.token_invalid',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.PAYMENT_SECURITY_VELOCITY_LIMIT_EXCEEDED]: {\n code: ERROR_CODES.PAYMENT_SECURITY_VELOCITY_LIMIT_EXCEEDED,\n status: HTTP_STATUS.FORBIDDEN,\n category: ERROR_CATEGORY.Security,\n severity: ERROR_SEVERITY.Medium,\n userMessage: 'errors.payment.security.velocity_limit_exceed',\n retryable: false,\n },\n\n // ===== Validation Errors =====\n [ERROR_CODES.PAYMENT_VALIDATION_FAILED]: {\n code: ERROR_CODES.PAYMENT_VALIDATION_FAILED,\n status: HTTP_STATUS.UNPROCESSABLE_ENTITY,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'errors.payment.validation.failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.PAYMENT_VALIDATION_AMOUNT_INVALID]: {\n code: ERROR_CODES.PAYMENT_VALIDATION_AMOUNT_INVALID,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'errors.payment.validation.amount_invalid',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.PAYMENT_VALIDATION_CURRENCY_UNSUPPORTED]: {\n code: ERROR_CODES.PAYMENT_VALIDATION_CURRENCY_UNSUPPORTED,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'errors.payment.validation.currency_unsupported',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.PAYMENT_VALIDATION_METADATA_INVALID]: {\n code: ERROR_CODES.PAYMENT_VALIDATION_METADATA_INVALID,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'errors.payment.validation.metadata_invalid',\n severity: ERROR_SEVERITY.Low,\n retryable: false,\n },\n [ERROR_CODES.PAYMENT_VALIDATION_MISSING_REQUIRED_FIELD]: {\n code: ERROR_CODES.PAYMENT_VALIDATION_MISSING_REQUIRED_FIELD,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'errors.payment.validation.required_field_missing',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n // ===== Webhook Errors =====\n [ERROR_CODES.PAYMENT_WEBHOOK_SIGNATURE_INVALID]: {\n code: ERROR_CODES.PAYMENT_WEBHOOK_SIGNATURE_INVALID,\n status: HTTP_STATUS.UNAUTHORIZED,\n category: ERROR_CATEGORY.Webhook,\n userMessage: 'errors.payment.webhook.signature_invalid',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n [ERROR_CODES.PAYMENT_WEBHOOK_PROCESSING_FAILED]: {\n code: ERROR_CODES.PAYMENT_WEBHOOK_PROCESSING_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Webhook,\n userMessage: 'errors.payment.webhook.processing_failed',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n [ERROR_CODES.PAYMENT_WEBHOOK_VALIDATION_FAILED]: {\n code: ERROR_CODES.PAYMENT_WEBHOOK_VALIDATION_FAILED,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'errors.payment.webhook.validation_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.PAYMENT_WEBHOOK_EVENT_TYPE_UNSUPPORTED]: {\n code: ERROR_CODES.PAYMENT_WEBHOOK_EVENT_TYPE_UNSUPPORTED,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Webhook,\n userMessage: 'errors.payment.webhook.unsupported_event_type',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.PAYMENT_WEBHOOK_HANDLER_NOT_FOUND]: {\n code: ERROR_CODES.PAYMENT_WEBHOOK_HANDLER_NOT_FOUND,\n status: HTTP_STATUS.NOT_FOUND,\n category: ERROR_CATEGORY.Webhook,\n userMessage: 'errors.payment.webhook.handler_not_found',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n // ===== Payment Adapter & Core Errors =====\n [ERROR_CODES.PAYMENT_ADAPTER_INIT_FAILED]: {\n code: ERROR_CODES.PAYMENT_ADAPTER_INIT_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Provider,\n userMessage: 'errors.payment.adapter.init_failed',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n\n [ERROR_CODES.PAYMENT_ADAPTER_SHUTDOWN_ERROR]: {\n code: ERROR_CODES.PAYMENT_ADAPTER_SHUTDOWN_ERROR,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Provider,\n userMessage: 'errors.payment.adapter.shutdown_error',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.PAYMENT_ADAPTER_HMAC_COMPUTATION_FAILED]: {\n code: ERROR_CODES.PAYMENT_ADAPTER_HMAC_COMPUTATION_FAILED,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Security,\n userMessage: 'errors.payment.adapter.hmac_computation_failed',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n\n [ERROR_CODES.PAYMENT_ADAPTER_MISSING_PROVIDER]: {\n code: ERROR_CODES.PAYMENT_ADAPTER_MISSING_PROVIDER,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Configuration,\n userMessage: 'errors.payment.adapter.missing_provider',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.PAYMENT_ADAPTER_MISSING_ENVIRONMENT]: {\n code: ERROR_CODES.PAYMENT_ADAPTER_MISSING_ENVIRONMENT,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Configuration,\n userMessage: 'errors.payment.adapter.missing_environment',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.PAYMENT_ADAPTER_MISSING_CREDENTIALS]: {\n code: ERROR_CODES.PAYMENT_ADAPTER_MISSING_CREDENTIALS,\n status: HTTP_STATUS.UNAUTHORIZED,\n category: ERROR_CATEGORY.Authentication,\n userMessage: 'errors.payment.adapter.missing_credentials',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.PAYMENT_ADAPTER_MISSING_WEBHOOK_URL]: {\n code: ERROR_CODES.PAYMENT_ADAPTER_MISSING_WEBHOOK_URL,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Configuration,\n userMessage: 'errors.payment.adapter.missing_webhook_url',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.PAYMENT_ADAPTER_MISSING_UNREGISTER_ENDPOINT]: {\n code: ERROR_CODES.PAYMENT_ADAPTER_MISSING_UNREGISTER_ENDPOINT,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Configuration,\n userMessage: 'errors.payment.adapter.missing_unregister_endpoint',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.PAYMENT_ADAPTER_UNSUPPORTED_OPERATION]: {\n code: ERROR_CODES.PAYMENT_ADAPTER_UNSUPPORTED_OPERATION,\n status: HTTP_STATUS.NOT_IMPLEMENTED,\n category: ERROR_CATEGORY.Provider,\n userMessage: 'errors.payment.adapter.unsupported_operation',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.PAYMENT_ADAPTER_RESPONSE_MAPPING_FAILED]: {\n code: ERROR_CODES.PAYMENT_ADAPTER_RESPONSE_MAPPING_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Provider,\n userMessage: 'errors.payment.adapter.response_mapping_failed',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n\n // ===== Idempotency & State Management =====\n [ERROR_CODES.PAYMENT_IDEMPOTENCY_VIOLATION]: {\n code: ERROR_CODES.PAYMENT_IDEMPOTENCY_VIOLATION,\n status: HTTP_STATUS.CONFLICT,\n category: ERROR_CATEGORY.Processing,\n userMessage: 'errors.payment.idempotency.violation',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.PAYMENT_IDEMPOTENCY_KEY_MISSING]: {\n code: ERROR_CODES.PAYMENT_IDEMPOTENCY_KEY_MISSING,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'errors.payment.idempotency.key_missing',\n severity: ERROR_SEVERITY.Low,\n retryable: false,\n },\n\n [ERROR_CODES.PAYMENT_IDEMPOTENCY_STORE_ERROR]: {\n code: ERROR_CODES.PAYMENT_IDEMPOTENCY_STORE_ERROR,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Cache,\n userMessage: 'errors.payment.idempotency.store_error',\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n },\n\n // ===== Routing & Strategy =====\n [ERROR_CODES.PAYMENT_ROUTING_FAILED]: {\n code: ERROR_CODES.PAYMENT_ROUTING_FAILED,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Strategy,\n userMessage: 'errors.payment.routing.failed',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n\n [ERROR_CODES.PAYMENT_ROUTING_CONFIGURATION_INVALID]: {\n code: ERROR_CODES.PAYMENT_ROUTING_CONFIGURATION_INVALID,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Configuration,\n userMessage: 'errors.payment.routing.configuration_invalid',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.PAYMENT_ROUTING_PROVIDER_UNAVAILABLE]: {\n code: ERROR_CODES.PAYMENT_ROUTING_PROVIDER_UNAVAILABLE,\n status: HTTP_STATUS.SERVICE_UNAVAILABLE,\n category: ERROR_CATEGORY.Provider,\n userMessage: 'errors.payment.routing.provider_unavailable',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n // Connection & Network\n [ERROR_CODES.DB_CONNECTION_FAILED]: {\n code: ERROR_CODES.DB_CONNECTION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Network,\n userMessage: 'db.connection.failed',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n [ERROR_CODES.DB_CONNECTION_ERROR]: {\n code: ERROR_CODES.DB_CONNECTION_ERROR,\n status: HTTP_STATUS.SERVICE_UNAVAILABLE,\n category: ERROR_CATEGORY.Network,\n userMessage: 'db.connection.error',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n [ERROR_CODES.DB_MULTI_WRITE_FAILED]: {\n code: ERROR_CODES.DB_MULTI_WRITE_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Database,\n userMessage: 'db.multi_write.failed',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n [ERROR_CODES.DB_TIMEOUT]: {\n code: ERROR_CODES.DB_TIMEOUT,\n status: HTTP_STATUS.REQUEST_TIMEOUT,\n category: ERROR_CATEGORY.Timeout,\n userMessage: 'db.connection.timeout',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n\n // Constraints & Integrity\n [ERROR_CODES.DB_CONSTRAINT_VIOLATION]: {\n code: ERROR_CODES.DB_CONSTRAINT_VIOLATION,\n status: HTTP_STATUS.CONFLICT,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'db.constraint.violation',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.DB_DEADLOCK]: {\n code: ERROR_CODES.DB_DEADLOCK,\n status: HTTP_STATUS.CONFLICT,\n category: ERROR_CATEGORY.Server,\n userMessage: 'db.constraint.deadlock',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n [ERROR_CODES.DB_DUPLICATE_ENTRY]: {\n code: ERROR_CODES.DB_DUPLICATE_ENTRY,\n status: HTTP_STATUS.CONFLICT,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'db.constraint.duplicate_entry',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n // Entity Operations\n [ERROR_CODES.DB_ENTITY_NOT_FOUND]: {\n code: ERROR_CODES.DB_ENTITY_NOT_FOUND,\n status: HTTP_STATUS.NOT_FOUND,\n category: ERROR_CATEGORY.NotFound,\n userMessage: 'db.entity.not_found',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n // Migration & Schema\n [ERROR_CODES.DB_MIGRATION_FAILED]: {\n code: ERROR_CODES.DB_MIGRATION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Server,\n userMessage: 'db.migration.failed',\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n },\n\n // General\n [ERROR_CODES.DB_UNKNOWN_ERROR]: {\n code: ERROR_CODES.DB_UNKNOWN_ERROR,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Unknown,\n userMessage: 'db.unknown_error',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.PAYMENT_ROUTING_RETRY_EXCEEDED]: {\n code: ERROR_CODES.PAYMENT_ROUTING_RETRY_EXCEEDED,\n status: HTTP_STATUS.TOO_MANY_REQUESTS,\n category: ERROR_CATEGORY.Retry,\n userMessage: 'errors.payment.routing.retry_exceeded',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.PAYMENT_SYSTEM_NOT_INITIALIZED]: {\n code: ERROR_CODES.PAYMENT_SYSTEM_NOT_INITIALIZED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.System,\n userMessage: 'errors.payment.system.not_initialized',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n\n [ERROR_CODES.PAYMENT_CONTEXT_OPERATION_FAILED]: {\n code: ERROR_CODES.PAYMENT_CONTEXT_OPERATION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.System,\n userMessage: 'errors.payment.context.operation_failed',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n\n [ERROR_CODES.PAYMENT_INTERNAL_ERROR]: {\n code: ERROR_CODES.PAYMENT_INTERNAL_ERROR,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.System,\n userMessage: 'errors.payment.internal_error',\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n },\n\n [ERROR_CODES.PAYMENT_UNKNOWN_ERROR]: {\n code: ERROR_CODES.PAYMENT_UNKNOWN_ERROR,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Unknown,\n userMessage: 'errors.payment.unknown_error',\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n },\n\n // ===== Event Lifecycle Errors =====\n [ERROR_CODES.PAYMENT_EVENT_EMIT_FAILED]: {\n code: ERROR_CODES.PAYMENT_EVENT_EMIT_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Processing,\n userMessage: 'errors.payment.event.emit_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.PAYMENT_EVENT_INVALID_TYPE]: {\n code: ERROR_CODES.PAYMENT_EVENT_INVALID_TYPE,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'errors.payment.event.invalid_type',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.PAYMENT_EVENT_CREATION_FAILED]: {\n code: ERROR_CODES.PAYMENT_EVENT_CREATION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.System,\n userMessage: 'errors.payment.event.creation_failed',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n\n [ERROR_CODES.PAYMENT_EVENT_HANDLER_TIMEOUT]: {\n code: ERROR_CODES.PAYMENT_EVENT_HANDLER_TIMEOUT,\n status: HTTP_STATUS.GATEWAY_TIMEOUT,\n category: ERROR_CATEGORY.Timeout,\n userMessage: 'errors.payment.event.handler_timeout',\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n },\n\n [ERROR_CODES.PAYMENT_EVENT_HANDLER_INVALID_RESULT]: {\n code: ERROR_CODES.PAYMENT_EVENT_HANDLER_INVALID_RESULT,\n status: HTTP_STATUS.UNPROCESSABLE_ENTITY,\n category: ERROR_CATEGORY.Processing,\n userMessage: 'errors.payment.event.handler_invalid_result',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.PAYMENT_EVENT_LIFECYCLE_FAILURE]: {\n code: ERROR_CODES.PAYMENT_EVENT_LIFECYCLE_FAILURE,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Processing,\n userMessage: 'errors.payment.event.lifecycle_failure',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n [ERROR_CODES.PAYMENT_COMPLIANCE_AML_CHECK_FAILED]: {\n code: ERROR_CODES.PAYMENT_COMPLIANCE_AML_CHECK_FAILED,\n status: HTTP_STATUS.FORBIDDEN,\n category: ERROR_CATEGORY.Compliance,\n userMessage: 'errors.payment.compliance.aml_check_failed',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n\n [ERROR_CODES.PAYMENT_COMPLIANCE_PSD2_STRONG_AUTH_REQUIRED]: {\n code: ERROR_CODES.PAYMENT_COMPLIANCE_PSD2_STRONG_AUTH_REQUIRED,\n status: HTTP_STATUS.UNAUTHORIZED,\n category: ERROR_CATEGORY.Authentication,\n userMessage: 'errors.payment.compliance.psd2_strong_auth_required',\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n },\n\n [ERROR_CODES.PAYMENT_COMPLIANCE_GDPR_DATA_ACCESS]: {\n code: ERROR_CODES.PAYMENT_COMPLIANCE_GDPR_DATA_ACCESS,\n status: HTTP_STATUS.UNAVAILABLE_FOR_LEGAL_REASONS,\n category: ERROR_CATEGORY.Compliance,\n userMessage: 'errors.payment.compliance.gdpr_data_access',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.PAYMENT_COMPLIANCE_PCI_COMPLIANCE]: {\n code: ERROR_CODES.PAYMENT_COMPLIANCE_PCI_COMPLIANCE,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Security,\n userMessage: 'errors.payment.compliance.pci_compliance',\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n },\n\n [ERROR_CODES.PAYMENT_COMPLIANCE_LOCAL_BANKING_RESTRICTION]: {\n code: ERROR_CODES.PAYMENT_COMPLIANCE_LOCAL_BANKING_RESTRICTION,\n status: HTTP_STATUS.FORBIDDEN,\n category: ERROR_CATEGORY.Regional,\n userMessage: 'errors.payment.compliance.local_banking_restriction',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n // === Processing Errors ===\n\n [ERROR_CODES.PAYMENT_PROCESSING_FAILED]: {\n code: ERROR_CODES.PAYMENT_PROCESSING_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Processing,\n userMessage: 'errors.payment.processing.failed',\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n },\n\n [ERROR_CODES.PAYMENT_PROCESSING_TIMEOUT]: {\n code: ERROR_CODES.PAYMENT_PROCESSING_TIMEOUT,\n status: HTTP_STATUS.GATEWAY_TIMEOUT,\n category: ERROR_CATEGORY.Timeout,\n userMessage: 'errors.payment.processing.timeout',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n\n [ERROR_CODES.PAYMENT_PROCESSING_GATEWAY_ERROR]: {\n code: ERROR_CODES.PAYMENT_PROCESSING_GATEWAY_ERROR,\n status: HTTP_STATUS.BAD_GATEWAY,\n category: ERROR_CATEGORY.Provider,\n userMessage: 'errors.payment.processing.gateway_error',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n\n [ERROR_CODES.PAYMENT_PROCESSING_DUPLICATE]: {\n code: ERROR_CODES.PAYMENT_PROCESSING_DUPLICATE,\n status: HTTP_STATUS.CONFLICT,\n category: ERROR_CATEGORY.Processing,\n userMessage: 'errors.payment.processing.duplicate',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.PAYMENT_PROCESSING_UNEXPECTED_STATE]: {\n code: ERROR_CODES.PAYMENT_PROCESSING_UNEXPECTED_STATE,\n status: HTTP_STATUS.UNPROCESSABLE_ENTITY,\n category: ERROR_CATEGORY.System,\n userMessage: 'errors.payment.processing.unexpected_state',\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n },\n\n [ERROR_CODES.PAYMENT_PROVIDER_RATE_LIMIT]: {\n code: ERROR_CODES.PAYMENT_PROVIDER_RATE_LIMIT,\n status: HTTP_STATUS.TOO_MANY_REQUESTS,\n category: ERROR_CATEGORY.RateLimit,\n userMessage: 'errors.payment.provider.rate_limit',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n\n [ERROR_CODES.PAYMENT_PROVIDER_UNKNOWN]: {\n code: ERROR_CODES.PAYMENT_PROVIDER_UNKNOWN,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Provider,\n userMessage: 'errors.payment.provider.unknown',\n severity: ERROR_SEVERITY.Critical,\n retryable: true,\n },\n\n [ERROR_CODES.PAYMENT_CUSTOMER_CREATION_FAILED]: {\n code: ERROR_CODES.PAYMENT_CUSTOMER_CREATION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Processing,\n userMessage: 'errors.payment.customer.creation_failed',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n\n [ERROR_CODES.PAYMENT_METHOD_SAVE_FAILED]: {\n code: ERROR_CODES.PAYMENT_METHOD_SAVE_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Processing,\n userMessage: 'errors.payment.method.save_failed',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n\n [ERROR_CODES.PAYMENT_METHOD_DELETE_FAILED]: {\n code: ERROR_CODES.PAYMENT_METHOD_DELETE_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Processing,\n userMessage: 'errors.payment.method.delete_failed',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n\n [ERROR_CODES.PAYMENT_SUBSCRIPTION_CREATE_FAILED]: {\n code: ERROR_CODES.PAYMENT_SUBSCRIPTION_CREATE_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Processing,\n userMessage: 'errors.payment.subscription.create_failed',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n\n [ERROR_CODES.PAYMENT_SUBSCRIPTION_CANCEL_FAILED]: {\n code: ERROR_CODES.PAYMENT_SUBSCRIPTION_CANCEL_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Processing,\n userMessage: 'errors.payment.subscription.cancel_failed',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n\n [ERROR_CODES.PAYMENT_PAYOUT_FAILED]: {\n code: ERROR_CODES.PAYMENT_PAYOUT_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Processing,\n userMessage: 'errors.payment.payout.failed',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n\n [ERROR_CODES.PAYMENT_TRANSACTION_HISTORY_FETCH_FAILED]: {\n code: ERROR_CODES.PAYMENT_TRANSACTION_HISTORY_FETCH_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Processing,\n userMessage: 'errors.payment.transaction.history.fetch_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n },\n // ===== Unsupported Operations =====\n [ERROR_CODES.SAVE_PAYMENT_METHOD_UNSUPPORTED]: {\n code: ERROR_CODES.SAVE_PAYMENT_METHOD_UNSUPPORTED,\n status: HTTP_STATUS.NOT_IMPLEMENTED,\n category: ERROR_CATEGORY.Provider,\n userMessage: 'errors.payment.method.save_unsupported',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.DELETE_PAYMENT_METHOD_UNSUPPORTED]: {\n code: ERROR_CODES.DELETE_PAYMENT_METHOD_UNSUPPORTED,\n status: HTTP_STATUS.NOT_IMPLEMENTED,\n category: ERROR_CATEGORY.Provider,\n userMessage: 'errors.payment.method.delete_unsupported',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.GET_USER_PAYMENT_METHODS_UNSUPPORTED]: {\n code: ERROR_CODES.GET_USER_PAYMENT_METHODS_UNSUPPORTED,\n status: HTTP_STATUS.NOT_IMPLEMENTED,\n category: ERROR_CATEGORY.Provider,\n userMessage: 'errors.payment.method.get_user_methods_unsupported',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.CREATE_SUBSCRIPTION_UNSUPPORTED]: {\n code: ERROR_CODES.CREATE_SUBSCRIPTION_UNSUPPORTED,\n status: HTTP_STATUS.NOT_IMPLEMENTED,\n category: ERROR_CATEGORY.Provider,\n userMessage: 'errors.payment.subscription.create_unsupported',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.CANCEL_SUBSCRIPTION_UNSUPPORTED]: {\n code: ERROR_CODES.CANCEL_SUBSCRIPTION_UNSUPPORTED,\n status: HTTP_STATUS.NOT_IMPLEMENTED,\n category: ERROR_CATEGORY.Provider,\n userMessage: 'errors.payment.subscription.cancel_unsupported',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.PROCESS_PAYOUT_UNSUPPORTED]: {\n code: ERROR_CODES.PROCESS_PAYOUT_UNSUPPORTED,\n status: HTTP_STATUS.NOT_IMPLEMENTED,\n category: ERROR_CATEGORY.Provider,\n userMessage: 'errors.payment.payout.unsupported',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.GET_TRANSACTION_HISTORY_UNSUPPORTED]: {\n code: ERROR_CODES.GET_TRANSACTION_HISTORY_UNSUPPORTED,\n status: HTTP_STATUS.NOT_IMPLEMENTED,\n category: ERROR_CATEGORY.Provider,\n userMessage: 'errors.payment.transaction.history_unsupported',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n // Withdrawal Errors\n [ERROR_CODES.WITHDRAWAL_UNSUPPORTED]: {\n code: ERROR_CODES.WITHDRAWAL_UNSUPPORTED,\n status: HTTP_STATUS.NOT_IMPLEMENTED,\n category: ERROR_CATEGORY.Provider,\n userMessage: 'errors.payment.withdrawal.unsupported',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.WITHDRAWAL_CREATE_UNSUPPORTED]: {\n code: ERROR_CODES.WITHDRAWAL_CREATE_UNSUPPORTED,\n status: HTTP_STATUS.NOT_IMPLEMENTED,\n category: ERROR_CATEGORY.Provider,\n userMessage: 'errors.payment.withdrawal.create_unsupported',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.WITHDRAWAL_PROCESS_UNSUPPORTED]: {\n code: ERROR_CODES.WITHDRAWAL_PROCESS_UNSUPPORTED,\n status: HTTP_STATUS.NOT_IMPLEMENTED,\n category: ERROR_CATEGORY.Provider,\n userMessage: 'errors.payment.withdrawal.process_unsupported',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.WITHDRAWAL_STATUS_FETCH_UNSUPPORTED]: {\n code: ERROR_CODES.WITHDRAWAL_STATUS_FETCH_UNSUPPORTED,\n status: HTTP_STATUS.NOT_IMPLEMENTED,\n category: ERROR_CATEGORY.Provider,\n userMessage: 'errors.payment.withdrawal.status_fetch_unsupported',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.WITHDRAWAL_CANCEL_UNSUPPORTED]: {\n code: ERROR_CODES.WITHDRAWAL_CANCEL_UNSUPPORTED,\n status: HTTP_STATUS.NOT_IMPLEMENTED,\n category: ERROR_CATEGORY.Provider,\n userMessage: 'errors.payment.withdrawal.cancel_unsupported',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.WITHDRAWAL_INSUFFICIENT_BALANCE]: {\n code: ERROR_CODES.WITHDRAWAL_INSUFFICIENT_BALANCE,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Limits,\n userMessage: 'errors.payment.withdrawal.insufficient_balance',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.WITHDRAWAL_INVALID_ACCOUNT]: {\n code: ERROR_CODES.WITHDRAWAL_INVALID_ACCOUNT,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'errors.payment.withdrawal.invalid_account',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.WITHDRAWAL_KYC_REQUIRED]: {\n code: ERROR_CODES.WITHDRAWAL_KYC_REQUIRED,\n status: HTTP_STATUS.FORBIDDEN,\n category: ERROR_CATEGORY.Compliance,\n userMessage: 'errors.payment.withdrawal.kyc_required',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.WITHDRAWAL_LIMIT_EXCEEDED]: {\n code: ERROR_CODES.WITHDRAWAL_LIMIT_EXCEEDED,\n status: HTTP_STATUS.FORBIDDEN,\n category: ERROR_CATEGORY.Limits,\n userMessage: 'errors.payment.withdrawal.limit_exceeded',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.WITHDRAWAL_PROVIDER_ERROR]: {\n code: ERROR_CODES.WITHDRAWAL_PROVIDER_ERROR,\n status: HTTP_STATUS.BAD_GATEWAY,\n category: ERROR_CATEGORY.Provider,\n userMessage: 'errors.payment.withdrawal.provider_error',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n\n [ERROR_CODES.WITHDRAWAL_FAILED]: {\n code: ERROR_CODES.WITHDRAWAL_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Provider,\n userMessage: 'errors.payment.withdrawal.failed',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n\n [ERROR_CODES.WITHDRAWAL_TIMEOUT]: {\n code: ERROR_CODES.WITHDRAWAL_TIMEOUT,\n status: HTTP_STATUS.GATEWAY_TIMEOUT,\n category: ERROR_CATEGORY.Timeout,\n userMessage: 'errors.payment.withdrawal.timeout',\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n },\n\n // Product Errors\n [ERROR_CODES.PRODUCT_CREATE_UNSUPPORTED]: {\n code: ERROR_CODES.PRODUCT_CREATE_UNSUPPORTED,\n status: HTTP_STATUS.NOT_IMPLEMENTED,\n category: ERROR_CATEGORY.Provider,\n userMessage: 'errors.payment.product.create_unsupported',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.PRODUCT_UPDATE_UNSUPPORTED]: {\n code: ERROR_CODES.PRODUCT_UPDATE_UNSUPPORTED,\n status: HTTP_STATUS.NOT_IMPLEMENTED,\n category: ERROR_CATEGORY.Provider,\n userMessage: 'errors.payment.product.update_unsupported',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.PRODUCT_FETCH_UNSUPPORTED]: {\n code: ERROR_CODES.PRODUCT_FETCH_UNSUPPORTED,\n status: HTTP_STATUS.NOT_IMPLEMENTED,\n category: ERROR_CATEGORY.Provider,\n userMessage: 'errors.payment.product.fetch_unsupported',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.PRODUCT_DEACTIVATE_UNSUPPORTED]: {\n code: ERROR_CODES.PRODUCT_DEACTIVATE_UNSUPPORTED,\n status: HTTP_STATUS.NOT_IMPLEMENTED,\n category: ERROR_CATEGORY.Provider,\n userMessage: 'errors.payment.product.deactivate_unsupported',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.PRODUCT_NOT_FOUND]: {\n code: ERROR_CODES.PRODUCT_NOT_FOUND,\n status: HTTP_STATUS.NOT_FOUND,\n category: ERROR_CATEGORY.NotFound,\n userMessage: 'errors.payment.product.not_found',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.PRODUCT_INVALID_DATA]: {\n code: ERROR_CODES.PRODUCT_INVALID_DATA,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'errors.payment.product.invalid_data',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.PRODUCT_PROVIDER_ERROR]: {\n code: ERROR_CODES.PRODUCT_PROVIDER_ERROR,\n status: HTTP_STATUS.BAD_GATEWAY,\n category: ERROR_CATEGORY.Provider,\n userMessage: 'errors.payment.product.provider_error',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n\n [ERROR_CODES.PRODUCT_ALREADY_INACTIVE]: {\n code: ERROR_CODES.PRODUCT_ALREADY_INACTIVE,\n status: HTTP_STATUS.CONFLICT,\n category: ERROR_CATEGORY.Conflict,\n userMessage: 'errors.payment.product.already_inactive',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.PRODUCT_SYNC_FAILED]: {\n code: ERROR_CODES.PRODUCT_SYNC_FAILED,\n status: HTTP_STATUS.BAD_GATEWAY,\n category: ERROR_CATEGORY.Provider,\n userMessage: 'errors.payment.product.sync_failed',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n\n // Pricing Errors\n [ERROR_CODES.PRICING_CREATE_UNSUPPORTED]: {\n code: ERROR_CODES.PRICING_CREATE_UNSUPPORTED,\n status: HTTP_STATUS.NOT_IMPLEMENTED,\n category: ERROR_CATEGORY.Provider,\n userMessage: 'errors.payment.pricing.create_unsupported',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.PRICING_UPDATE_UNSUPPORTED]: {\n code: ERROR_CODES.PRICING_UPDATE_UNSUPPORTED,\n status: HTTP_STATUS.NOT_IMPLEMENTED,\n category: ERROR_CATEGORY.Provider,\n userMessage: 'errors.payment.pricing.update_unsupported',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.PRICING_DEACTIVATE_UNSUPPORTED]: {\n code: ERROR_CODES.PRICING_DEACTIVATE_UNSUPPORTED,\n status: HTTP_STATUS.NOT_IMPLEMENTED,\n category: ERROR_CATEGORY.Provider,\n userMessage: 'errors.payment.pricing.deactivate_unsupported',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.PRICING_NOT_FOUND]: {\n code: ERROR_CODES.PRICING_NOT_FOUND,\n status: HTTP_STATUS.NOT_FOUND,\n category: ERROR_CATEGORY.NotFound,\n userMessage: 'errors.payment.pricing.not_found',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.PRICING_INVALID_AMOUNT]: {\n code: ERROR_CODES.PRICING_INVALID_AMOUNT,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'errors.payment.pricing.invalid_amount',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.PRICING_INVALID_CURRENCY]: {\n code: ERROR_CODES.PRICING_INVALID_CURRENCY,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'errors.payment.pricing.invalid_currency',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.PRICING_PROVIDER_ERROR]: {\n code: ERROR_CODES.PRICING_PROVIDER_ERROR,\n status: HTTP_STATUS.BAD_GATEWAY,\n category: ERROR_CATEGORY.Provider,\n userMessage: 'errors.payment.pricing.provider_error',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n\n [ERROR_CODES.PRICING_ALREADY_INACTIVE]: {\n code: ERROR_CODES.PRICING_ALREADY_INACTIVE,\n status: HTTP_STATUS.CONFLICT,\n category: ERROR_CATEGORY.Conflict,\n userMessage: 'errors.payment.pricing.already_inactive',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.PRICING_SYNC_FAILED]: {\n code: ERROR_CODES.PRICING_SYNC_FAILED,\n status: HTTP_STATUS.BAD_GATEWAY,\n category: ERROR_CATEGORY.Provider,\n userMessage: 'errors.payment.pricing.sync_failed',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n\n [ERROR_CODES.PRICING_REQUIRES_NEW_VERSION]: {\n code: ERROR_CODES.PRICING_REQUIRES_NEW_VERSION,\n status: HTTP_STATUS.CONFLICT,\n category: ERROR_CATEGORY.Conflict,\n userMessage: 'errors.payment.pricing.requires_new_version',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.INVALID_CREDENTIALS]: {\n code: ERROR_CODES.INVALID_CREDENTIALS,\n status: HTTP_STATUS.UNAUTHORIZED,\n category: ERROR_CATEGORY.Authentication,\n userMessage: 'errors.auth.invalid_credentials',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.TOKEN_EXPIRED]: {\n code: ERROR_CODES.TOKEN_EXPIRED,\n status: HTTP_STATUS.UNAUTHORIZED,\n category: ERROR_CATEGORY.Authentication,\n userMessage: 'errors.auth.token_expired',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.TOKEN_INVALID]: {\n code: ERROR_CODES.TOKEN_INVALID,\n status: HTTP_STATUS.UNAUTHORIZED,\n category: ERROR_CATEGORY.Authentication,\n userMessage: 'errors.auth.token_invalid',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n [ERROR_CODES.TOKEN_REVOKED]: {\n code: ERROR_CODES.TOKEN_REVOKED,\n status: HTTP_STATUS.UNAUTHORIZED,\n category: ERROR_CATEGORY.Authentication,\n userMessage: 'errors.auth.token_revoked',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.SESSION_EXPIRED]: {\n code: ERROR_CODES.SESSION_EXPIRED,\n status: HTTP_STATUS.UNAUTHORIZED,\n category: ERROR_CATEGORY.Authentication,\n userMessage: 'errors.auth.session_expired',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.MFA_REQUIRED]: {\n code: ERROR_CODES.MFA_REQUIRED,\n status: HTTP_STATUS.FORBIDDEN,\n category: ERROR_CATEGORY.Authorization,\n userMessage: 'errors.auth.mfa_required',\n severity: ERROR_SEVERITY.Low,\n retryable: false,\n },\n [ERROR_CODES.MFA_INVALID]: {\n code: ERROR_CODES.MFA_INVALID,\n status: HTTP_STATUS.UNAUTHORIZED,\n category: ERROR_CATEGORY.Authentication,\n userMessage: 'errors.auth.mfa_invalid',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.INSUFFICIENT_PERMISSIONS]: {\n code: ERROR_CODES.INSUFFICIENT_PERMISSIONS,\n status: HTTP_STATUS.FORBIDDEN,\n category: ERROR_CATEGORY.Authorization,\n userMessage: 'errors.auth.insufficient_permissions',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.ROLE_REQUIRED]: {\n code: ERROR_CODES.ROLE_REQUIRED,\n status: HTTP_STATUS.FORBIDDEN,\n category: ERROR_CATEGORY.Authorization,\n userMessage: 'errors.auth.role_required',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.WALLET_SIGNATURE_INVALID]: {\n code: ERROR_CODES.WALLET_SIGNATURE_INVALID,\n status: HTTP_STATUS.UNAUTHORIZED,\n category: ERROR_CATEGORY.Authentication,\n userMessage: 'errors.auth.wallet_signature_invalid',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n [ERROR_CODES.NONCE_EXPIRED]: {\n code: ERROR_CODES.NONCE_EXPIRED,\n status: HTTP_STATUS.UNAUTHORIZED,\n category: ERROR_CATEGORY.Authentication,\n userMessage: 'errors.auth.nonce_expired',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.NONCE_ALREADY_USED]: {\n code: ERROR_CODES.NONCE_ALREADY_USED,\n status: HTTP_STATUS.UNAUTHORIZED,\n category: ERROR_CATEGORY.Authentication,\n userMessage: 'errors.auth.nonce_already_used',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n [ERROR_CODES.ACCOUNT_LOCKED]: {\n code: ERROR_CODES.ACCOUNT_LOCKED,\n status: HTTP_STATUS.LOCKED,\n category: ERROR_CATEGORY.Authorization,\n userMessage: 'errors.auth.account_locked',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n [ERROR_CODES.ACCOUNT_SUSPENDED]: {\n code: ERROR_CODES.ACCOUNT_SUSPENDED,\n status: HTTP_STATUS.FORBIDDEN,\n category: ERROR_CATEGORY.Authorization,\n userMessage: 'errors.auth.account_suspended',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n};\n","// ============================================\n// USER DEFINITION ENUMS\n// ============================================\n\nimport { ERROR_CATEGORY, ERROR_CODES, ERROR_SEVERITY } from '../errors';\nimport { HTTP_STATUS } from '../http/constants';\n\n/**\n * Enum representing the different roles a user can have within the system.\n * @description Roles are used to determine access levels, permissions, and user-specific experiences.\n *\n * @example\n * ```typescript\n * import { USER_ROLE } from '@plyaz/types';\n *\n * const userRole = USER_ROLE.Athlete; // 'athlete'\n * const isAdmin = userRole === USER_ROLE.Admin || userRole === USER_ROLE.SuperAdmin;\n * ```\n */\nexport const USER_ROLE = {\n /** A user who is an athlete and participates in sports activities. */\n Athlete: 'athlete',\n\n /** A user who scouts and discovers talent. */\n Scout: 'scout',\n\n /** A user who acts as an agent representing athletes or clubs. */\n Agent: 'agent',\n\n /** A user representing a sports club or organization. */\n Club: 'club',\n\n /** A fan or supporter of athletes or clubs. */\n Fan: 'fan',\n\n /** A system administrator with access to management tools. */\n Admin: 'admin',\n\n /** A super admin with the highest level of access and control. */\n SuperAdmin: 'super.admin',\n} as const;\n\n/**\n * Enum representing the current status of a user account.\n * @description Statuses are used to determine login availability, visibility, and user flow.\n *\n * @example\n * ```typescript\n * import { USER_STATUS } from '@plyaz/types';\n *\n * const isAccessible = status === USER_STATUS.Active;\n * const needsReview = status === USER_STATUS.Pending;\n * ```\n */\nexport const USER_STATUS = {\n /** Active user with full access. */\n Active: 'active',\n\n /** Inactive user, typically not currently using the platform. */\n Inactive: 'inactive',\n\n /** User account is awaiting approval or completion of setup. */\n Pending: 'pending',\n\n /** User has been temporarily suspended due to policy violations or manual review. */\n Suspended: 'suspended',\n\n /** User has been permanently banned from the platform. */\n Banned: 'banned',\n} as const;\n\n// ============================================\n// AUTHENTICATION PROVIDER ENUMS\n// ============================================\n\n/**\n * Enum representing the primary authentication provider technology stack.\n * @description Defines the system used to manage user identities and issue tokens.\n *\n * @enum {string}\n */\nexport enum AUTH_PROVIDER_TYPE {\n /** Uses Clerk for external authentication and Supabase for internal RLS/DB sync. */\n ClerkSupabase = 'CLERK_SUPABASE',\n /** Uses an internal database for managing credentials (typically for B2B/Backoffice). */\n InternalDb = 'INTERNAL_DB',\n}\n\n/**\n * Authentication provider types.\n * @description Defines the specific login method or external identity provider used by the user.\n *\n * @enum {string}\n */\nexport enum AUTH_PROVIDER {\n /** Email/password authentication. */\n EMAIL = 'EMAIL',\n /** Clerk authentication. */\n CLERK = 'CLERK',\n /** Google OAuth. */\n GOOGLE = 'GOOGLE',\n /** Facebook OAuth. */\n FACEBOOK = 'FACEBOOK',\n /** Apple Sign In. */\n APPLE = 'APPLE',\n /** Web3 wallet authentication (e.g., MetaMask). */\n WEB3 = 'WEB3',\n}\n\n// ============================================\n// ROLE & TOKEN ENUMS\n// ============================================\n\n/**\n * User role assignment status.\n * @description Defines the state of a user's relationship with a specific role.\n *\n * @enum {string}\n */\nexport enum USER_ROLE_STATUS {\n /** Role is active and grants associated permissions. */\n ACTIVE = 'ACTIVE',\n /** Role is inactive (temporarily disabled or superseded by a primary role). */\n INACTIVE = 'INACTIVE',\n /** Role is suspended (often due to user policy violation, preventing role-specific access). */\n SUSPENDED = 'SUSPENDED',\n}\n\n/**\n * Token type for authentication.\n * @description Defines the schema or standard used by the authentication token.\n *\n * @enum {string}\n */\nexport enum TOKEN_TYPE {\n /** Bearer token standard, commonly used for OAuth 2.0. */\n BEARER = 'Bearer',\n /** JSON Web Token standard. */\n JWT = 'JWT',\n}\n\nexport const AUTH_ERROR_DEFINITIONS = {\n [ERROR_CODES.INVALID_CREDENTIALS]: {\n code: ERROR_CODES.INVALID_CREDENTIALS,\n status: HTTP_STATUS.UNAUTHORIZED,\n category: ERROR_CATEGORY.Authentication,\n userMessage: 'errors.auth.invalid_credentials',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.TOKEN_EXPIRED]: {\n code: ERROR_CODES.TOKEN_EXPIRED,\n status: HTTP_STATUS.UNAUTHORIZED,\n category: ERROR_CATEGORY.Authentication,\n userMessage: 'errors.auth.token_expired',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.TOKEN_INVALID]: {\n code: ERROR_CODES.TOKEN_INVALID,\n status: HTTP_STATUS.UNAUTHORIZED,\n category: ERROR_CATEGORY.Authentication,\n userMessage: 'errors.auth.token_invalid',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n [ERROR_CODES.TOKEN_REVOKED]: {\n code: ERROR_CODES.TOKEN_REVOKED,\n status: HTTP_STATUS.UNAUTHORIZED,\n category: ERROR_CATEGORY.Authentication,\n userMessage: 'errors.auth.token_revoked',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.SESSION_EXPIRED]: {\n code: ERROR_CODES.SESSION_EXPIRED,\n status: HTTP_STATUS.UNAUTHORIZED,\n category: ERROR_CATEGORY.Authentication,\n userMessage: 'errors.auth.session_expired',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.MFA_REQUIRED]: {\n code: ERROR_CODES.MFA_REQUIRED,\n status: HTTP_STATUS.FORBIDDEN,\n category: ERROR_CATEGORY.Authorization,\n userMessage: 'errors.auth.mfa_required',\n severity: ERROR_SEVERITY.Low,\n retryable: false,\n },\n [ERROR_CODES.MFA_INVALID]: {\n code: ERROR_CODES.MFA_INVALID,\n status: HTTP_STATUS.UNAUTHORIZED,\n category: ERROR_CATEGORY.Authentication,\n userMessage: 'errors.auth.mfa_invalid',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.INSUFFICIENT_PERMISSIONS]: {\n code: ERROR_CODES.INSUFFICIENT_PERMISSIONS,\n status: HTTP_STATUS.FORBIDDEN,\n category: ERROR_CATEGORY.Authorization,\n userMessage: 'errors.auth.insufficient_permissions',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.ROLE_REQUIRED]: {\n code: ERROR_CODES.ROLE_REQUIRED,\n status: HTTP_STATUS.FORBIDDEN,\n category: ERROR_CATEGORY.Authorization,\n userMessage: 'errors.auth.role_required',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.WALLET_SIGNATURE_INVALID]: {\n code: ERROR_CODES.WALLET_SIGNATURE_INVALID,\n status: HTTP_STATUS.UNAUTHORIZED,\n category: ERROR_CATEGORY.Authentication,\n userMessage: 'errors.auth.wallet_signature_invalid',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n [ERROR_CODES.NONCE_EXPIRED]: {\n code: ERROR_CODES.NONCE_EXPIRED,\n status: HTTP_STATUS.UNAUTHORIZED,\n category: ERROR_CATEGORY.Authentication,\n userMessage: 'errors.auth.nonce_expired',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.NONCE_ALREADY_USED]: {\n code: ERROR_CODES.NONCE_ALREADY_USED,\n status: HTTP_STATUS.UNAUTHORIZED,\n category: ERROR_CATEGORY.Authentication,\n userMessage: 'errors.auth.nonce_already_used',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n [ERROR_CODES.ACCOUNT_LOCKED]: {\n code: ERROR_CODES.ACCOUNT_LOCKED,\n status: HTTP_STATUS.LOCKED,\n category: ERROR_CATEGORY.Authorization,\n userMessage: 'errors.auth.account_locked',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n [ERROR_CODES.ACCOUNT_SUSPENDED]: {\n code: ERROR_CODES.ACCOUNT_SUSPENDED,\n status: HTTP_STATUS.FORBIDDEN,\n category: ERROR_CATEGORY.Authorization,\n userMessage: 'errors.auth.account_suspended',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n} as const;\n","import { z } from 'zod';\n\n/**\n * Password minimum character length\n */\nconst DEFAULT_PASSWORD = 8;\n\n/**\n * Contact Us Form Schema\n * Validates contact form submissions\n */\nexport const ContactUsFormSchema = z.object({\n name: z.string({ error: 'errors.form.missingField' }).min(1, 'errors.form.nameMissing'),\n email: z.email({ error: 'errors.form.emailInvalid' }),\n});\n\n/**\n * Contact Us Form Type\n */\nexport type ContactUsForm = z.infer<typeof ContactUsFormSchema>;\n\n/**\n * Signup Form Schema\n * Validates user registration form submissions\n */\nexport const SignupFormSchema = z.object({\n name: z.string({ error: 'errors.form.missingField' }).min(1, 'errors.form.nameMissing'),\n email: z.email({ error: 'errors.form.emailInvalid' }),\n password: z\n .string({ error: 'errors.form.missingField' })\n .min(DEFAULT_PASSWORD, 'errors.form.passwordTooShort'),\n});\n\n/**\n * Signup Form Type\n */\nexport type SignupForm = z.infer<typeof SignupFormSchema>;\n","import type { WithExpiration, WithAuthTokens } from '../common/types';\nimport type { BaseErrorContext } from '../errors';\nimport type { AUTH_ERROR_DEFINITIONS, USER_ROLE_STATUS } from './enums';\n\n// ============================================\n// AUTHENTICATION TYPES\n// ============================================\n\n/**\n * AuthToken Interface.\n * @description Represents an authentication token set returned after a successful login or refresh.\n * @interface AuthToken\n */\nexport interface AuthToken extends WithExpiration, WithAuthTokens {\n /**\n * Token type, typically \"Bearer\" for OAuth2-style tokens.\n */\n readonly tokenType: 'Bearer';\n}\n\n/**\n * AuthCredentials.\n * @description Represents the credentials used for traditional email/password authentication.\n * This is used for providers that handle this type of login directly.\n */\nexport type AuthCredentials = {\n /** The user's email address. */\n email: string;\n /** The user's password (optional, used in traditional login flows). */\n password?: string;\n /**\n * One-Time Password (OTP) or magic link token.\n * This could be extended with other credential types as needed.\n */\n otp?: string;\n};\n\n/**\n * UserContext.\n * @description A standardized representation of a user's context.\n * This ensures that regardless of the underlying authentication provider (Clerk, Supabase, etc.),\n * your application's internal code can interact with a consistent user object.\n */\nexport type UserContext = {\n /** A unique identifier for the user (e.g., a UUID from Supabase). */\n id: string;\n /** The user's primary email address. */\n email: string;\n /** Timestamp when the user was created. */\n createdAt: Date;\n // You can extend this with additional user profile information\n // that is consistent across all providers, such as:\n // name?: string;\n // profileImageUrl?: string;\n};\n\n// ============================================\n// SERVICE PROVIDER CONTRACTS\n// ============================================\n\n/**\n * @fileoverview Defines the contract for all authentication service providers\n * responsible for handling the synchronization between an external identity\n * source (like Clerk, Auth0, etc.) and the internal database user structure.\n *\n * Any provider implementing this interface must handle user lookup, creation,\n * and issuance of the necessary internal tokens (like the Supabase RLS JWT).\n *\n * @interface AuthServiceProvider\n */\nexport interface AuthServiceProvider {\n /**\n * Synchronizes an external user's identity with the internal application database.\n *\n * This is typically called immediately after a successful authentication with\n * an external provider to ensure the user exists in the local database,\n * update their metadata, and issue an internal authorization token (e.g., RLS JWT).\n *\n * @param clerkJwt The JWT received from the external provider (e.g., Clerk).\n * @param externalId The unique identifier from the external authentication provider (e.g., Clerk's 'sub').\n * @param email The user's primary email address from the external provider.\n * @returns A Promise resolving to an object containing the internal UserContext and the provider-specific RLS JWT.\n */\n syncUserFromExternalToken(\n clerkJwt: string,\n externalId: string,\n email: string\n ): Promise<{ user: UserContext; supabaseRlsToken: string }>;\n\n /**\n * Retrieves a user's context from the internal database using their internal ID.\n *\n * This method is generally used by trusted backend services and must bypass RLS.\n *\n * @param userId The internal database UUID of the user.\n * @returns A Promise resolving to the user's basic context (`UserContext`) or `null` if not found.\n */\n getUserById(userId: string): Promise<UserContext | null>;\n}\n\n// ============================================\n// USER TYPES\n// ============================================\n\n/**\n * B2C User Info (public schema).\n * @description Represents platform users: fans, athletes, clubs, scouts, agents.\n * * @interface UserInfo\n * @property {string} id - Unique user identifier (UUID).\n * @property {string} email - User email address (unique).\n * @property {string} [clerkUserId] - Clerk provider user ID.\n * @property {string} authProvider - Authentication provider used.\n * @property {string} [firstName] - User first name.\n * @property {string} [lastName] - User last name.\n * @property {string} displayName - Display name (required).\n * @property {string} [avatarUrl] - Avatar image URL.\n * @property {string} [phoneNumber] - Phone number.\n * @property {boolean} isActive - Account active status.\n * @property {boolean} isVerified - Email verification status.\n * @property {Date} createdAt - Account creation timestamp.\n * @property {Date} updatedAt - Last update timestamp.\n * @property {Date} [lastLoginAt] - Last login timestamp.\n */\nexport interface UserInfo {\n id: string;\n email: string;\n clerkUserId?: string;\n authProvider: string;\n firstName?: string;\n lastName?: string;\n displayName: string;\n avatarUrl?: string;\n phoneNumber?: string;\n isActive: boolean;\n isVerified: boolean;\n createdAt: Date;\n updatedAt: Date;\n lastLoginAt?: Date;\n}\n\n/**\n * B2B User (backoffice schema).\n * @description Represents internal staff: admins, moderators, support, finance, compliance.\n * * @interface BackofficeUser\n * @property {string} id - Unique user identifier (UUID).\n * @property {string} email - User email address (unique).\n * @property {string} passwordHash - Hashed password.\n * @property {string} [clerkUserId] - Clerk provider user ID.\n * @property {string} authProvider - Authentication provider used.\n * @property {string} [firstName] - User first name.\n * @property {string} [lastName] - User last name.\n * @property {string} displayName - Display name (required).\n * @property {string} [avatarUrl] - Avatar image URL.\n * @property {string} [phoneNumber] - Phone number.\n * @property {boolean} isActive - Account active status.\n * @property {boolean} isVerified - Email verification status.\n * @property {boolean} isSuspended - Account suspension status.\n * @property {string} [suspensionReason] - Reason for suspension.\n * @property {Date} [suspendedAt] - Suspension timestamp.\n * @property {Date} createdAt - Account creation timestamp.\n * @property {Date} updatedAt - Last update timestamp.\n * @property {Date} [lastLoginAt] - Last login timestamp.\n */\nexport interface BackofficeUser {\n id: string;\n email: string;\n passwordHash: string;\n clerkUserId?: string;\n authProvider: string;\n firstName?: string;\n lastName?: string;\n displayName: string;\n avatarUrl?: string;\n phoneNumber?: string;\n isActive: boolean;\n isVerified: boolean;\n isSuspended: boolean;\n suspensionReason?: string;\n suspendedAt?: Date;\n createdAt: Date;\n updatedAt: Date;\n lastLoginAt?: Date;\n}\n\n// ============================================\n// SESSION TYPES\n// ============================================\n\n/**\n * B2C Session (public schema).\n * @description Tracks authenticated user sessions with device and activity info.\n * * @interface Session\n * @property {string} id - Unique session identifier.\n * @property {string} userId - ID of the user owning the session.\n * @property {string} provider - Authentication provider used.\n * @property {string} [providerSessionId] - External provider's session ID (if applicable).\n * @property {Date} expiresAt - Session expiration timestamp.\n * @property {Date} createdAt - Session creation timestamp.\n * @property {Date} lastActivityAt - Last activity timestamp for the session.\n * @property {string} [ipAddress] - IP address used when the session was created/last used.\n * @property {string} [userAgent] - User agent string of the client.\n * @property {Record<string, unknown>} [metadata] - Arbitrary metadata related to the session.\n */\nexport interface Session {\n id: string;\n userId: string;\n provider: string;\n providerSessionId?: string;\n expiresAt: Date;\n createdAt: Date;\n lastActivityAt: Date;\n ipAddress?: string;\n userAgent?: string;\n metadata?: Record<string, unknown>;\n}\n\n/**\n * B2B Session (backoffice schema).\n * @description Tracks authenticated backoffice user sessions.\n * * @interface BackofficeSession\n * @property {string} id - Unique session identifier.\n * @property {string} backofficeUserId - ID of the backoffice user owning the session.\n * @property {string} provider - Authentication provider used.\n * @property {string} [providerSessionId] - External provider's session ID (if applicable).\n * @property {Date} expiresAt - Session expiration timestamp.\n * @property {Date} createdAt - Session creation timestamp.\n * @property {Date} lastActivityAt - Last activity timestamp for the session.\n * @property {string} [ipAddress] - IP address used when the session was created/last used.\n * @property {string} [userAgent] - User agent string of the client.\n * @property {Record<string, unknown>} [metadata] - Arbitrary metadata related to the session.\n */\nexport interface BackofficeSession {\n id: string;\n backofficeUserId: string;\n provider: string;\n providerSessionId?: string;\n expiresAt: Date;\n createdAt: Date;\n lastActivityAt: Date;\n ipAddress?: string;\n userAgent?: string;\n metadata?: Record<string, unknown>;\n}\n\n// ============================================\n// CONNECTED ACCOUNT TYPES\n// ============================================\n\n/**\n * Connected Account (provider linking).\n * @description Links external OAuth/Web3 provider accounts to users.\n * Supports OAuth providers (Clerk, Google, etc.) and Web3 wallets.\n * * @interface ConnectedAccount\n * @property {string} id - Unique connected account identifier.\n * @property {string} userId - ID of the internal user account.\n * @property {string} providerType - Category of the provider (e.g., 'oauth', 'web3').\n * @property {string} provider - Specific provider name (e.g., 'google', 'metamask').\n * @property {string} providerAccountId - Unique ID from the external provider.\n * @property {string} [walletAddress] - Wallet address for Web3 accounts.\n * @property {string} [accessTokenEncrypted] - Encrypted access token for the provider.\n * @property {boolean} isPrimary - Flag indicating if this is the user's primary login account.\n * @property {Date} linkedAt - Timestamp when the account was linked.\n */\nexport interface ConnectedAccount {\n id: string;\n userId: string;\n providerType: string;\n provider: string;\n providerAccountId: string;\n providerEmail?: string;\n providerUsername?: string;\n providerDisplayName?: string;\n providerAvatarUrl?: string;\n providerProfileUrl?: string;\n providerMetadata?: Record<string, unknown>;\n walletAddress?: string;\n chainId?: string;\n accessTokenEncrypted?: string;\n refreshTokenEncrypted?: string;\n tokenExpiresAt?: Date;\n tokenScope?: string;\n isPrimary: boolean;\n isVerified: boolean;\n isActive: boolean;\n linkedAt: Date;\n linkedIpAddress?: string;\n linkedUserAgent?: string;\n lastUsedAt?: Date;\n lastUsedIpAddress?: string;\n createdAt: Date;\n updatedAt: Date;\n}\n\n// ============================================\n// AUTH TOKENS\n// ============================================\n\n/**\n * Authentication tokens returned after successful login.\n * * @interface AuthTokens\n * @property {string} accessToken - The main access token (JWT or similar).\n * @property {string} [refreshToken] - Token used to refresh the access token.\n * @property {number} expiresIn - Access token expiration time in seconds.\n * @property {string} tokenType - Type of the token, usually 'Bearer'.\n */\nexport interface AuthTokens {\n accessToken: string;\n refreshToken?: string;\n expiresIn: number;\n tokenType: string;\n}\n\n// ============================================\n// RBAC TYPES\n// ============================================\n\n/**\n * B2C Role (public schema).\n * @description Defines user roles: FAN, ATHLETE, SCOUT, AGENT, CLUB, DEVELOPER, ADMIN.\n * * @interface Role\n * @property {string} id - Unique role identifier.\n * @property {string} code - Machine-readable role code (e.g., 'ATHLETE').\n * @property {string} name - Human-readable role name.\n * @property {number} hierarchy - Numeric value for role hierarchy/priority.\n * @property {boolean} isSystem - True if the role is system-defined and cannot be deleted.\n */\nexport interface Role {\n id: string;\n code: string;\n name: string;\n description?: string;\n hierarchy: number;\n canCreateCampaigns?: boolean;\n canContribute?: boolean;\n requiresKyc?: boolean;\n isActive: boolean;\n isSystem: boolean;\n metadata?: Record<string, unknown>;\n createdAt: Date;\n updatedAt: Date;\n}\n\n/**\n * B2B Role (backoffice schema).\n * @description Defines staff roles: SUPER_ADMIN, ADMIN, MODERATOR, FINANCE, COMPLIANCE, SUPPORT.\n * * @interface BackofficeRole\n * @property {string} id - Unique role identifier.\n * @property {string} code - Machine-readable role code (e.g., 'SUPER_ADMIN').\n * @property {string} name - Human-readable role name.\n * @property {number} hierarchy - Numeric value for role hierarchy/priority.\n * @property {boolean} canManageUsers - Permission to manage user accounts.\n * @property {boolean} canViewAllData - Permission to view all data regardless of ownership.\n */\nexport interface BackofficeRole {\n id: string;\n code: string;\n name: string;\n description?: string;\n hierarchy: number;\n canApproveCampaigns: boolean;\n canApproveKyc: boolean;\n canApprovePayouts: boolean;\n canManageUsers: boolean;\n canManageRoles: boolean;\n canViewAllData: boolean;\n isActive: boolean;\n isSystem: boolean;\n metadata?: Record<string, unknown>;\n createdAt: Date;\n updatedAt: Date;\n}\n\n/**\n * Permission (backoffice only).\n * @description Fine-grained permissions for backoffice users.\n * * @interface Permission\n * @property {string} id - Unique permission identifier.\n * @property {string} code - Machine-readable permission code (e.g., 'USER_READ').\n * @property {string} resource - The resource the permission applies to (e.g., 'USER', 'CAMPAIGN').\n * @property {string} action - The action the permission allows (e.g., 'READ', 'DELETE').\n */\nexport interface Permission {\n id: string;\n code: string;\n name: string;\n description?: string;\n resource: string;\n action: string;\n isActive: boolean;\n isSystem: boolean;\n metadata?: Record<string, unknown>;\n createdAt: Date;\n updatedAt: Date;\n}\n\n/**\n * Role-Permission mapping (backoffice only).\n * @description Links permissions to roles.\n * * @interface RolePermission\n * @property {string} id - Unique mapping identifier.\n * @property {string} roleId - ID of the role.\n * @property {string} permissionId - ID of the permission granted.\n * @property {Date} grantedAt - Timestamp when the permission was assigned to the role.\n */\nexport interface RolePermission {\n id: string;\n roleId: string;\n role: string;\n permissionId: string;\n grantedAt: Date;\n grantedBy?: string;\n}\n\n/**\n * User-Permission mapping (backoffice only).\n * @description Grants/revokes specific permissions to users, overriding role permissions.\n * * @interface UserPermission\n * @property {string} id - Unique mapping identifier.\n * @property {string} backofficeUserId - ID of the backoffice user.\n * @property {string} permissionId - ID of the permission.\n * @property {boolean} isGranted - True to grant, false to explicitly revoke.\n */\nexport interface UserPermission {\n id: string;\n backofficeUserId: string;\n permissionId: string;\n isGranted: boolean;\n expiresAt?: Date;\n grantedAt: Date;\n grantedBy?: string;\n reason?: string;\n}\n\n/**\n * B2C User-Role assignment.\n * @description Links users to roles with status tracking.\n * * @interface UserRole\n * @property {string} userId - ID of the B2C user.\n * @property {string} roleId - ID of the role assigned.\n * @property {boolean} isPrimary - True if this is the user's main, active role.\n * @property {USER_ROLE_STATUS} status - Current status of the role assignment (e.g., ACTIVE, PENDING).\n */\nexport interface UserRole {\n id: string;\n userId: string;\n roleId: string;\n role: string;\n isPrimary: boolean;\n status: USER_ROLE_STATUS;\n assignedBy?: string;\n assignedReason?: string;\n expiresAt?: Date;\n createdAt: Date;\n updatedAt: Date;\n}\n\n/**\n * B2B User-Role assignment.\n * @description Links backoffice users to roles.\n * * @interface BackofficeUserRole\n * @property {string} backofficeUserId - ID of the backoffice user.\n * @property {string} roleId - ID of the role assigned.\n * @property {boolean} isPrimary - True if this is the user's main, active role.\n * @property {USER_ROLE_STATUS} status - Current status of the role assignment.\n */\nexport interface BackofficeUserRole {\n id: string;\n backofficeUserId: string;\n roleId: string;\n role: string;\n isPrimary: boolean;\n status: USER_ROLE_STATUS;\n assignedBy?: string;\n assignedReason?: string;\n expiresAt?: Date;\n createdAt: Date;\n updatedAt: Date;\n}\n\n// ============================================\n// AUTH PROVIDER ADAPTER INTERFACE\n// ============================================\n\n/**\n * Authentication provider adapter interface.\n * @description Defines contract for provider-agnostic authentication interactions.\n * * @interface AuthProviderAdapter\n * @property {string} name - The name of the authentication provider (e.g., 'clerk', 'auth0').\n */\nexport interface AuthProviderAdapter {\n name: string;\n\n /**\n * Verifies an external authentication token (e.g., a JWT).\n * @param token The token to verify.\n * @returns A Promise resolving to the verified token result.\n */\n verifyToken(token: string): Promise<VerifiedToken>;\n\n /**\n * Retrieves user profile information from the external provider using a token.\n * @param token The access token.\n * @returns A Promise resolving to the provider's user information.\n */\n getUserInfo(token: string): Promise<ProviderUserInfo>;\n\n /**\n * Refreshes an expired access token using a refresh token (optional method).\n * @param refreshToken The token used for refreshing.\n * @returns A Promise resolving to a new set of authentication tokens.\n */\n refreshToken?(refreshToken: string): Promise<AuthTokens>;\n\n /**\n * Invalidates a token on the provider's side (e.g., logout, optional method).\n * @param token The token to revoke.\n * @returns A Promise that resolves when the token is successfully revoked.\n */\n revokeToken?(token: string): Promise<void>;\n}\n\n/**\n * Verified token result.\n * @description Data returned after successful token verification.\n * * @interface VerifiedToken\n * @property {string} userId - The user's ID from the external provider.\n * @property {string} provider - The name of the provider.\n * @property {string} providerAccountId - The provider's unique account ID.\n */\nexport interface VerifiedToken {\n userId: string;\n provider: string;\n providerAccountId: string;\n email?: string;\n expiresAt?: Date;\n metadata?: Record<string, unknown>;\n}\n\n/**\n * Provider user information.\n * @description User profile data fetched from an external provider.\n * * @interface ProviderUserInfo\n * @property {string} providerAccountId - Unique ID from the external provider.\n * @property {string} [email] - The user's email address from the provider.\n */\nexport interface ProviderUserInfo {\n providerAccountId: string;\n email?: string;\n displayName?: string;\n firstName?: string;\n lastName?: string;\n avatarUrl?: string;\n phoneNumber?: string;\n metadata?: Record<string, unknown>;\n}\n\n// ============================================\n// REPOSITORY INTERFACES\n// ============================================\n\n/**\n * User repository interface.\n * @description Defines data access methods for B2C user management.\n * * @interface UserRepositoryInterface\n */\nexport interface UserRepositoryInterface {\n /** Find a user by their internal ID. */\n findById(id: string): Promise<UserInfo | null>;\n /** Find a user by their primary email address. */\n findByEmail(email: string): Promise<UserInfo | null>;\n /** Find a user linked to a specific external provider account. */\n findByProviderAccount(provider: string, providerAccountId: string): Promise<UserInfo | null>;\n /** Create a new user record. */\n create(data: CreateUserData): Promise<UserInfo>;\n /** Update an existing user record. */\n update(id: string, data: UpdateUserData): Promise<UserInfo>;\n /** Delete a user record. */\n delete(id: string): Promise<void>;\n}\n\n/**\n * Session repository interface.\n * @description Defines data access methods for B2C session management.\n * * @interface SessionRepositoryInterface\n */\nexport interface SessionRepositoryInterface {\n /** Create a new session record. */\n create(data: CreateSessionData): Promise<Session>;\n /** Find a session by its ID. */\n findById(id: string): Promise<Session | null>;\n /** Find all active sessions for a given user ID. */\n findByUserId(userId: string): Promise<Session[]>;\n /** Validate if a session ID is current and not expired. */\n validate(sessionId: string): Promise<Session | null>;\n /** Invalidate (log out) a specific session. */\n invalidate(sessionId: string): Promise<void>;\n /** Invalidate (log out) all sessions for a user. */\n invalidateAllForUser(userId: string): Promise<void>;\n /** Update the last activity timestamp for a session. */\n updateActivity(sessionId: string): Promise<void>;\n}\n\n/**\n * Connected account repository interface.\n * @description Defines data access methods for provider account linking.\n * * @interface ConnectedAccountRepositoryInterface\n */\nexport interface ConnectedAccountRepositoryInterface {\n /** Create a new connected account link. */\n create(data: CreateConnectedAccountData): Promise<ConnectedAccount>;\n /** Find a connected account by its internal ID. */\n findById(id: string): Promise<ConnectedAccount | null>;\n /** Find all connected accounts linked to a user. */\n findByUserId(userId: string): Promise<ConnectedAccount[]>;\n /** Find a connected account by provider and account ID. */\n findByProvider(provider: string, providerAccountId: string): Promise<ConnectedAccount | null>;\n /** Update an existing connected account record. */\n update(id: string, data: UpdateConnectedAccountData): Promise<ConnectedAccount>;\n /** Delete a connected account link. */\n delete(id: string): Promise<void>;\n}\n\n// ============================================\n// DATA TRANSFER OBJECTS (DTOs)\n// ============================================\n\n/**\n * DTO for creating B2C users.\n * @interface CreateUserData\n */\nexport interface CreateUserData {\n email: string;\n clerkUserId?: string;\n authProvider?: string;\n firstName?: string;\n lastName?: string;\n displayName: string;\n avatarUrl?: string;\n phoneNumber?: string;\n isVerified?: boolean;\n}\n\n/**\n * DTO for creating B2B users.\n * @interface CreateBackofficeUserData\n */\nexport interface CreateBackofficeUserData {\n email: string;\n passwordHash: string;\n clerkUserId?: string;\n authProvider?: string;\n firstName?: string;\n lastName?: string;\n displayName: string;\n avatarUrl?: string;\n phoneNumber?: string;\n isVerified?: boolean;\n}\n\n/**\n * DTO for updating B2C users.\n * @interface UpdateUserData\n */\nexport interface UpdateUserData {\n email?: string;\n clerkUserId?: string;\n authProvider?: string;\n firstName?: string;\n lastName?: string;\n displayName?: string;\n avatarUrl?: string;\n phoneNumber?: string;\n isActive?: boolean;\n isVerified?: boolean;\n lastLoginAt?: Date;\n}\n\n/**\n * DTO for updating B2B users.\n * @interface UpdateBackofficeUserData\n */\nexport interface UpdateBackofficeUserData {\n email?: string;\n passwordHash?: string;\n clerkUserId?: string;\n authProvider?: string;\n firstName?: string;\n lastName?: string;\n displayName?: string;\n avatarUrl?: string;\n phoneNumber?: string;\n isActive?: boolean;\n isVerified?: boolean;\n isSuspended?: boolean;\n suspensionReason?: string;\n suspendedAt?: Date;\n lastLoginAt?: Date;\n}\n\n/**\n * DTO for creating sessions.\n * @interface CreateSessionData\n */\nexport interface CreateSessionData {\n userId: string;\n provider: string;\n providerSessionId?: string;\n expiresAt: Date;\n ipAddress?: string;\n userAgent?: string;\n metadata?: Record<string, unknown>;\n}\n\n/**\n * DTO for creating connected accounts.\n * @interface CreateConnectedAccountData\n */\nexport interface CreateConnectedAccountData {\n userId: string;\n providerType: string;\n provider: string;\n providerAccountId: string;\n providerEmail?: string;\n providerUsername?: string;\n providerDisplayName?: string;\n providerAvatarUrl?: string;\n providerProfileUrl?: string;\n providerMetadata?: Record<string, unknown>;\n walletAddress?: string;\n chainId?: string;\n accessTokenEncrypted?: string;\n refreshTokenEncrypted?: string;\n tokenExpiresAt?: Date;\n tokenScope?: string;\n isPrimary?: boolean;\n isVerified?: boolean;\n isActive?: boolean;\n linkedIpAddress?: string;\n linkedUserAgent?: string;\n}\n\n/**\n * DTO for updating connected accounts.\n * @interface UpdateConnectedAccountData\n */\nexport interface UpdateConnectedAccountData {\n providerEmail?: string;\n providerUsername?: string;\n providerDisplayName?: string;\n providerAvatarUrl?: string;\n providerProfileUrl?: string;\n providerMetadata?: Record<string, unknown>;\n accessTokenEncrypted?: string;\n refreshTokenEncrypted?: string;\n tokenExpiresAt?: Date;\n tokenScope?: string;\n isPrimary?: boolean;\n isVerified?: boolean;\n isActive?: boolean;\n lastUsedAt?: Date;\n lastUsedIpAddress?: string;\n}\n\n/**\n * Enumeration of specific authentication error codes.\n * Using const assertions allows for type-safe lookups.\n */\nexport const AUTH_ERROR_CODES = {\n INVALID_CREDENTIALS: 'AUTH_INVALID_CREDENTIALS',\n TOKEN_EXPIRED: 'AUTH_TOKEN_EXPIRED',\n TOKEN_INVALID: 'AUTH_TOKEN_INVALID',\n TOKEN_REVOKED: 'AUTH_TOKEN_REVOKED',\n SESSION_EXPIRED: 'AUTH_SESSION_EXPIRED',\n MFA_REQUIRED: 'AUTH_MFA_REQUIRED',\n MFA_INVALID: 'AUTH_MFA_INVALID',\n INSUFFICIENT_PERMISSIONS: 'AUTH_INSUFFICIENT_PERMISSIONS',\n ROLE_REQUIRED: 'AUTH_ROLE_REQUIRED',\n WALLET_SIGNATURE_INVALID: 'AUTH_WALLET_SIGNATURE_INVALID',\n NONCE_EXPIRED: 'AUTH_NONCE_EXPIRED',\n NONCE_ALREADY_USED: 'AUTH_NONCE_ALREADY_USED',\n ACCOUNT_LOCKED: 'AUTH_ACCOUNT_LOCKED',\n ACCOUNT_SUSPENDED: 'AUTH_ACCOUNT_SUSPENDED',\n} as const;\n\n/**\n * Type for possible values of AUTH_ERROR_CODES.\n * This allows you to use any of the values from the AUTH_ERROR_CODES object.\n */\nexport type AuthErrorCodeValue = (typeof AUTH_ERROR_CODES)[keyof typeof AUTH_ERROR_CODES];\n\n/**\n * Options for constructing an AuthError.\n * This interface defines the optional properties you can pass\n * when creating a new AuthError instance.\n */\nexport interface AuthErrorOptions {\n /** The original error that caused this error */\n cause?: Error;\n /** Optional context providing extra error details */\n context?: BaseErrorContext;\n /** Additional metadata for the error (for debugging, logging) */\n metadata?: Record<string, unknown>;\n /** A specific correlation ID to use for this error instance */\n correlationId?: string;\n /** Override the default HTTP status code from the definition */\n statusCode?: number;\n\n // === Internationalization & Message Details ===\n\n /** The locale for the error message (e.g., 'en-US'). Defaults to a system-wide locale. */\n locale?: string;\n /** Parameters for string interpolation in the final error message. */\n params?: Record<string, string | number>;\n /** Additional structured details about the error, not for end-user display. */\n details?: Record<string, unknown>;\n}\n\n/**\n * Detailed definitions for each authentication error.\n * This object provides default metadata for each error code, including\n * the HTTP status code, a default message, and other useful properties.\n */\n\n/**\n * Type for a single error definition object.\n */\nexport type AuthErrorDefinition = (typeof AUTH_ERROR_DEFINITIONS)[AuthErrorCodeValue];\n"]}
1
+ {"version":3,"sources":["../../src/errors/enums.ts","../../src/http/constants.ts","../../src/errors/codes.ts","../../src/auth/enums.ts","../../src/auth/schemas.ts","../../src/auth/types.ts","../../src/auth/auth-events.ts"],"names":["AUTH_PROVIDER_TYPE","AUTH_PROVIDER","USER_ROLE_STATUS","TOKEN_TYPE"],"mappings":";;;;;AAgDO,IAAM,cAAA,GAAiB;AAAA;AAAA,EAE5B,GAAA,EAAK,KAAA;AAAA;AAAA,EAGL,MAAA,EAAQ,QAAA;AAAA;AAAA,EAGR,IAAA,EAAM,MAIR,CAAA;AAcO,IAAM,cAAA,GAAiB;AAAA,EAchB;AAAA,EAGZ,cAAA,EAAgB,gBAAA;AAAA;AAAA,EAGhB,aAAA,EAAe,eAkFjB,CAAA;;;ACpKO,IAAM,WAAA,GAAc;AAAA,EAsHZ;AAAA;AAAA;AAAA,EAKb,YAAA,EAAc,GAAA;AAAA,EAKI;AAAA;AAAA;AAAA,EAKlB,SAAA,EAAW,GAAA;AAAA,EAqFW;AAAA;AAAA;AAAA,EAKtB,MAAA,EAAQ,GA4FV,CAAA;;;ACrTO,IAAM,WAAA,GAAc;AAAA,EAwsBK;AAAA,EAI9B,mBAAA,EAAqB,0BAAA;AAAA,EACrB,aAAA,EAAe,oBAAA;AAAA,EACf,aAAA,EAAe,oBAAA;AAAA,EACf,aAAA,EAAe,oBAAA;AAAA,EACf,eAAA,EAAiB,sBAAA;AAAA,EACjB,YAAA,EAAc,mBAAA;AAAA,EACd,WAAA,EAAa,kBAAA;AAAA,EACb,wBAAA,EAA0B,+BAAA;AAAA,EAC1B,aAAA,EAAe,oBAAA;AAAA,EACf,wBAAA,EAA0B,+BAAA;AAAA,EAC1B,aAAA,EAAe,oBAAA;AAAA,EACf,kBAAA,EAAoB,yBAAA;AAAA,EACpB,cAAA,EAAgB,qBAAA;AAAA,EAChB,iBAAA,EAAmB;AACrB,CAAA;;;ACztBO,IAAM,SAAA,GAAY;AAAA;AAAA,EAEvB,OAAA,EAAS,SAAA;AAAA;AAAA,EAGT,KAAA,EAAO,OAAA;AAAA;AAAA,EAGP,KAAA,EAAO,OAAA;AAAA;AAAA,EAGP,IAAA,EAAM,MAAA;AAAA;AAAA,EAGN,GAAA,EAAK,KAAA;AAAA;AAAA,EAGL,KAAA,EAAO,OAAA;AAAA;AAAA,EAGP,UAAA,EAAY;AACd;AAcO,IAAM,WAAA,GAAc;AAAA;AAAA,EAEzB,MAAA,EAAQ,QAAA;AAAA;AAAA,EAGR,QAAA,EAAU,UAAA;AAAA;AAAA,EAGV,OAAA,EAAS,SAAA;AAAA;AAAA,EAGT,SAAA,EAAW,WAAA;AAAA;AAAA,EAGX,MAAA,EAAQ;AACV;AAYO,IAAK,kBAAA,qBAAAA,mBAAAA,KAAL;AAEL,EAAAA,oBAAA,eAAA,CAAA,GAAgB,gBAAA;AAEhB,EAAAA,oBAAA,YAAA,CAAA,GAAa,aAAA;AAJH,EAAA,OAAAA,mBAAAA;AAAA,CAAA,EAAA,kBAAA,IAAA,EAAA;AAaL,IAAK,aAAA,qBAAAC,cAAAA,KAAL;AAEL,EAAAA,eAAA,OAAA,CAAA,GAAQ,OAAA;AAER,EAAAA,eAAA,OAAA,CAAA,GAAQ,OAAA;AAER,EAAAA,eAAA,QAAA,CAAA,GAAS,QAAA;AAET,EAAAA,eAAA,UAAA,CAAA,GAAW,UAAA;AAEX,EAAAA,eAAA,OAAA,CAAA,GAAQ,OAAA;AAER,EAAAA,eAAA,MAAA,CAAA,GAAO,MAAA;AAZG,EAAA,OAAAA,cAAAA;AAAA,CAAA,EAAA,aAAA,IAAA,EAAA;AAyBL,IAAK,gBAAA,qBAAAC,iBAAAA,KAAL;AAEL,EAAAA,kBAAA,QAAA,CAAA,GAAS,QAAA;AAET,EAAAA,kBAAA,UAAA,CAAA,GAAW,UAAA;AAEX,EAAAA,kBAAA,WAAA,CAAA,GAAY,WAAA;AANF,EAAA,OAAAA,iBAAAA;AAAA,CAAA,EAAA,gBAAA,IAAA,EAAA;AAeL,IAAK,UAAA,qBAAAC,WAAAA,KAAL;AAEL,EAAAA,YAAA,QAAA,CAAA,GAAS,QAAA;AAET,EAAAA,YAAA,KAAA,CAAA,GAAM,KAAA;AAJI,EAAA,OAAAA,WAAAA;AAAA,CAAA,EAAA,UAAA,IAAA,EAAA;AAOL,IAAM,sBAAA,GAAyB;AAAA,EACpC,CAAC,WAAA,CAAY,mBAAmB,GAAG;AAAA,IACjC,MAAM,WAAA,CAAY,mBAAA;AAAA,IAClB,QAAQ,WAAA,CAAY,YAAA;AAAA,IACpB,UAAU,cAAA,CAAe,cAAA;AAAA,IACzB,WAAA,EAAa,iCAAA;AAAA,IACb,UAAU,cAAA,CAAe,MAAA;AAAA,IACzB,SAAA,EAAW;AAAA,GACb;AAAA,EACA,CAAC,WAAA,CAAY,aAAa,GAAG;AAAA,IAC3B,MAAM,WAAA,CAAY,aAAA;AAAA,IAClB,QAAQ,WAAA,CAAY,YAAA;AAAA,IACpB,UAAU,cAAA,CAAe,cAAA;AAAA,IACzB,WAAA,EAAa,2BAAA;AAAA,IACb,UAAU,cAAA,CAAe,MAAA;AAAA,IACzB,SAAA,EAAW;AAAA,GACb;AAAA,EACA,CAAC,WAAA,CAAY,aAAa,GAAG;AAAA,IAC3B,MAAM,WAAA,CAAY,aAAA;AAAA,IAClB,QAAQ,WAAA,CAAY,YAAA;AAAA,IACpB,UAAU,cAAA,CAAe,cAAA;AAAA,IACzB,WAAA,EAAa,2BAAA;AAAA,IACb,UAAU,cAAA,CAAe,IAAA;AAAA,IACzB,SAAA,EAAW;AAAA,GACb;AAAA,EACA,CAAC,WAAA,CAAY,aAAa,GAAG;AAAA,IAC3B,MAAM,WAAA,CAAY,aAAA;AAAA,IAClB,QAAQ,WAAA,CAAY,YAAA;AAAA,IACpB,UAAU,cAAA,CAAe,cAAA;AAAA,IACzB,WAAA,EAAa,2BAAA;AAAA,IACb,UAAU,cAAA,CAAe,MAAA;AAAA,IACzB,SAAA,EAAW;AAAA,GACb;AAAA,EACA,CAAC,WAAA,CAAY,eAAe,GAAG;AAAA,IAC7B,MAAM,WAAA,CAAY,eAAA;AAAA,IAClB,QAAQ,WAAA,CAAY,YAAA;AAAA,IACpB,UAAU,cAAA,CAAe,cAAA;AAAA,IACzB,WAAA,EAAa,6BAAA;AAAA,IACb,UAAU,cAAA,CAAe,MAAA;AAAA,IACzB,SAAA,EAAW;AAAA,GACb;AAAA,EACA,CAAC,WAAA,CAAY,YAAY,GAAG;AAAA,IAC1B,MAAM,WAAA,CAAY,YAAA;AAAA,IAClB,QAAQ,WAAA,CAAY,SAAA;AAAA,IACpB,UAAU,cAAA,CAAe,aAAA;AAAA,IACzB,WAAA,EAAa,0BAAA;AAAA,IACb,UAAU,cAAA,CAAe,GAAA;AAAA,IACzB,SAAA,EAAW;AAAA,GACb;AAAA,EACA,CAAC,WAAA,CAAY,WAAW,GAAG;AAAA,IACzB,MAAM,WAAA,CAAY,WAAA;AAAA,IAClB,QAAQ,WAAA,CAAY,YAAA;AAAA,IACpB,UAAU,cAAA,CAAe,cAAA;AAAA,IACzB,WAAA,EAAa,yBAAA;AAAA,IACb,UAAU,cAAA,CAAe,MAAA;AAAA,IACzB,SAAA,EAAW;AAAA,GACb;AAAA,EACA,CAAC,WAAA,CAAY,wBAAwB,GAAG;AAAA,IACtC,MAAM,WAAA,CAAY,wBAAA;AAAA,IAClB,QAAQ,WAAA,CAAY,SAAA;AAAA,IACpB,UAAU,cAAA,CAAe,aAAA;AAAA,IACzB,WAAA,EAAa,sCAAA;AAAA,IACb,UAAU,cAAA,CAAe,MAAA;AAAA,IACzB,SAAA,EAAW;AAAA,GACb;AAAA,EACA,CAAC,WAAA,CAAY,aAAa,GAAG;AAAA,IAC3B,MAAM,WAAA,CAAY,aAAA;AAAA,IAClB,QAAQ,WAAA,CAAY,SAAA;AAAA,IACpB,UAAU,cAAA,CAAe,aAAA;AAAA,IACzB,WAAA,EAAa,2BAAA;AAAA,IACb,UAAU,cAAA,CAAe,MAAA;AAAA,IACzB,SAAA,EAAW;AAAA,GACb;AAAA,EACA,CAAC,WAAA,CAAY,wBAAwB,GAAG;AAAA,IACtC,MAAM,WAAA,CAAY,wBAAA;AAAA,IAClB,QAAQ,WAAA,CAAY,YAAA;AAAA,IACpB,UAAU,cAAA,CAAe,cAAA;AAAA,IACzB,WAAA,EAAa,sCAAA;AAAA,IACb,UAAU,cAAA,CAAe,IAAA;AAAA,IACzB,SAAA,EAAW;AAAA,GACb;AAAA,EACA,CAAC,WAAA,CAAY,aAAa,GAAG;AAAA,IAC3B,MAAM,WAAA,CAAY,aAAA;AAAA,IAClB,QAAQ,WAAA,CAAY,YAAA;AAAA,IACpB,UAAU,cAAA,CAAe,cAAA;AAAA,IACzB,WAAA,EAAa,2BAAA;AAAA,IACb,UAAU,cAAA,CAAe,MAAA;AAAA,IACzB,SAAA,EAAW;AAAA,GACb;AAAA,EACA,CAAC,WAAA,CAAY,kBAAkB,GAAG;AAAA,IAChC,MAAM,WAAA,CAAY,kBAAA;AAAA,IAClB,QAAQ,WAAA,CAAY,YAAA;AAAA,IACpB,UAAU,cAAA,CAAe,cAAA;AAAA,IACzB,WAAA,EAAa,gCAAA;AAAA,IACb,UAAU,cAAA,CAAe,IAAA;AAAA,IACzB,SAAA,EAAW;AAAA,GACb;AAAA,EACA,CAAC,WAAA,CAAY,cAAc,GAAG;AAAA,IAC5B,MAAM,WAAA,CAAY,cAAA;AAAA,IAClB,QAAQ,WAAA,CAAY,MAAA;AAAA,IACpB,UAAU,cAAA,CAAe,aAAA;AAAA,IACzB,WAAA,EAAa,4BAAA;AAAA,IACb,UAAU,cAAA,CAAe,IAAA;AAAA,IACzB,SAAA,EAAW;AAAA,GACb;AAAA,EACA,CAAC,WAAA,CAAY,iBAAiB,GAAG;AAAA,IAC/B,MAAM,WAAA,CAAY,iBAAA;AAAA,IAClB,QAAQ,WAAA,CAAY,SAAA;AAAA,IACpB,UAAU,cAAA,CAAe,aAAA;AAAA,IACzB,WAAA,EAAa,+BAAA;AAAA,IACb,UAAU,cAAA,CAAe,IAAA;AAAA,IACzB,SAAA,EAAW;AAAA;AAEf;ACzPA,IAAM,gBAAA,GAAmB,CAAA;AAMlB,IAAM,mBAAA,GAAsB,EAAE,MAAA,CAAO;AAAA,EAC1C,IAAA,EAAM,CAAA,CAAE,MAAA,CAAO,EAAE,KAAA,EAAO,4BAA4B,CAAA,CAAE,GAAA,CAAI,CAAA,EAAG,yBAAyB,CAAA;AAAA,EACtF,OAAO,CAAA,CAAE,KAAA,CAAM,EAAE,KAAA,EAAO,4BAA4B;AACtD,CAAC;AAWM,IAAM,gBAAA,GAAmB,EAAE,MAAA,CAAO;AAAA,EACvC,IAAA,EAAM,CAAA,CAAE,MAAA,CAAO,EAAE,KAAA,EAAO,4BAA4B,CAAA,CAAE,GAAA,CAAI,CAAA,EAAG,yBAAyB,CAAA;AAAA,EACtF,OAAO,CAAA,CAAE,KAAA,CAAM,EAAE,KAAA,EAAO,4BAA4B,CAAA;AAAA,EACpD,QAAA,EAAU,CAAA,CACP,MAAA,CAAO,EAAE,KAAA,EAAO,4BAA4B,CAAA,CAC5C,GAAA,CAAI,gBAAA,EAAkB,8BAA8B;AACzD,CAAC;;;ACguBM,IAAM,gBAAA,GAAmB;AAAA,EAC9B,mBAAA,EAAqB,0BAAA;AAAA,EACrB,aAAA,EAAe,oBAAA;AAAA,EACf,aAAA,EAAe,oBAAA;AAAA,EACf,aAAA,EAAe,oBAAA;AAAA,EACf,eAAA,EAAiB,sBAAA;AAAA,EACjB,YAAA,EAAc,mBAAA;AAAA,EACd,WAAA,EAAa,kBAAA;AAAA,EACb,wBAAA,EAA0B,+BAAA;AAAA,EAC1B,aAAA,EAAe,oBAAA;AAAA,EACf,wBAAA,EAA0B,+BAAA;AAAA,EAC1B,aAAA,EAAe,oBAAA;AAAA,EACf,kBAAA,EAAoB,yBAAA;AAAA,EACpB,cAAA,EAAgB,qBAAA;AAAA,EAChB,iBAAA,EAAmB;AACrB;AAkFO,IAAM,yBAAA,GAA2D;AAAA,EACtE,CAAC,gBAAA,CAAiB,mBAAmB,GAAG,GAAA;AAAA,EACxC,CAAC,gBAAA,CAAiB,aAAa,GAAG,GAAA;AAAA,EAClC,CAAC,gBAAA,CAAiB,aAAa,GAAG,GAAA;AAAA,EAClC,CAAC,gBAAA,CAAiB,aAAa,GAAG,GAAA;AAAA,EAClC,CAAC,gBAAA,CAAiB,eAAe,GAAG,GAAA;AAAA,EACpC,CAAC,gBAAA,CAAiB,YAAY,GAAG,GAAA;AAAA,EACjC,CAAC,gBAAA,CAAiB,WAAW,GAAG,GAAA;AAAA,EAChC,CAAC,gBAAA,CAAiB,wBAAwB,GAAG,GAAA;AAAA,EAC7C,CAAC,gBAAA,CAAiB,aAAa,GAAG,GAAA;AAAA,EAClC,CAAC,gBAAA,CAAiB,wBAAwB,GAAG,GAAA;AAAA,EAC7C,CAAC,gBAAA,CAAiB,aAAa,GAAG,GAAA;AAAA,EAClC,CAAC,gBAAA,CAAiB,kBAAkB,GAAG,GAAA;AAAA,EACvC,CAAC,gBAAA,CAAiB,cAAc,GAAG,GAAA;AAAA,EACnC,CAAC,gBAAA,CAAiB,iBAAiB,GAAG;AAExC;AAKO,IAAM,uBAAA,GAAyD;AAAA,EACpE,CAAC,gBAAA,CAAiB,mBAAmB,GAAG,iCAAA;AAAA,EACxC,CAAC,gBAAA,CAAiB,aAAa,GAAG,2BAAA;AAAA,EAClC,CAAC,gBAAA,CAAiB,aAAa,GAAG,2BAAA;AAAA,EAClC,CAAC,gBAAA,CAAiB,aAAa,GAAG,2BAAA;AAAA,EAClC,CAAC,gBAAA,CAAiB,eAAe,GAAG,6BAAA;AAAA,EACpC,CAAC,gBAAA,CAAiB,YAAY,GAAG,0BAAA;AAAA,EACjC,CAAC,gBAAA,CAAiB,WAAW,GAAG,yBAAA;AAAA,EAChC,CAAC,gBAAA,CAAiB,wBAAwB,GAAG,sCAAA;AAAA,EAC7C,CAAC,gBAAA,CAAiB,aAAa,GAAG,2BAAA;AAAA,EAClC,CAAC,gBAAA,CAAiB,wBAAwB,GAAG,sCAAA;AAAA,EAC7C,CAAC,gBAAA,CAAiB,aAAa,GAAG,2BAAA;AAAA,EAClC,CAAC,gBAAA,CAAiB,kBAAkB,GAAG,gCAAA;AAAA,EACvC,CAAC,gBAAA,CAAiB,cAAc,GAAG,4BAAA;AAAA,EACnC,CAAC,gBAAA,CAAiB,iBAAiB,GAAG;AACxC;;;AC12BO,IAAM,WAAA,GAAc;AAAA;AAAA,EAEzB,kBAAA,EAAoB,yBAAA;AAAA;AAAA,EAGpB,cAAA,EAAgB,qBAAA;AAAA;AAAA,EAGhB,eAAA,EAAiB,sBAAA;AAAA;AAAA,EAGjB,qBAAA,EAAuB,4BAAA;AAAA;AAAA,EAGvB,eAAA,EAAiB,sBAAA;AAAA;AAAA,EAGjB,eAAA,EAAiB,sBAAA;AAAA;AAAA,EAGjB,iBAAA,EAAmB,wBAAA;AAAA;AAAA,EAGnB,mBAAA,EAAqB,0BAAA;AAAA;AAAA,EAGrB,cAAA,EAAgB,qBAAA;AAAA;AAAA,EAGhB,gBAAA,EAAkB,uBAAA;AAAA;AAAA,EAGlB,aAAA,EAAe,yBAAA;AAAA;AAAA,EAGf,YAAA,EAAc,wBAAA;AAAA;AAAA,EAGd,wBAAA,EAA0B,gCAAA;AAAA;AAAA,EAG1B,gBAAA,EAAkB,uBAAA;AAAA;AAAA,EAGlB,wBAAA,EAA0B;AAC5B","file":"index.js","sourcesContent":["/**\n * Enum representing standardized error types used across the application.\n * @description These error types help classify different categories of errors such as validation issues and system-level failures.\n *\n * @example\n * ```typescript\n * import { ERROR_TYPE } from '@plyaz/types';\n *\n * const errorType = ERROR_TYPE.ValidationError; // 'validation.error'\n *\n * // Error handling example\n * if (error.type === ERROR_TYPE.RateLimitExceeded) {\n * // Handle rate limiting\n * }\n * ```\n */\nexport const ERROR_TYPE = {\n /** A general validation error (e.g., form or input errors). */\n ValidationError: 'validation.error',\n\n /** Error related to schema validation, such as JSON schema or API payload checks. */\n SchemaValidationError: 'validation.schema.error',\n\n /** Unhandled or unexpected system error. */\n InternalError: 'system.internal.error',\n\n /** System dependency is currently unavailable (e.g., database or external API). */\n ServiceUnavailable: 'system.service.unavailable',\n\n /** The request took too long and timed out. */\n TimeoutError: 'system.timeout',\n\n /** Too many requests made in a short period of time. */\n RateLimitExceeded: 'system.rate.limit.exceeded',\n} as const;\n\n/**\n * Enum representing the severity level of an error.\n * @description This allows categorization of errors by their potential impact on the system or user.\n *\n * @example\n * ```typescript\n * import { ERROR_SEVERITY } from '@plyaz/types';\n *\n * const severity = ERROR_SEVERITY.Critical; // 'critical'\n * const shouldAlert = severity === ERROR_SEVERITY.High || severity === ERROR_SEVERITY.Critical;\n * ```\n */\nexport const ERROR_SEVERITY = {\n /** Low severity - does not impact functionality significantly. */\n Low: 'low',\n\n /** Medium severity - minor disruption or warning. */\n Medium: 'medium',\n\n /** High severity - major issue requiring attention. */\n High: 'high',\n\n /** Critical severity - blocking or crashing issue. */\n Critical: 'critical',\n} as const;\n\n/**\n * Enum representing the category or origin of an error.\n * @description Useful for filtering or logging errors based on their source or nature.\n *\n * @example\n * ```typescript\n * import { ERROR_CATEGORY } from '@plyaz/types';\n *\n * const category = ERROR_CATEGORY.Blockchain; // 'blockchain'\n * const isClientError = category === ERROR_CATEGORY.Client;\n * ```\n */\nexport const ERROR_CATEGORY = {\n /** Client-side error (e.g., invalid request). */\n Client: 'client',\n\n /** Server-side error (e.g., logic failure or exception). */\n Server: 'server',\n\n /** Network-related error (e.g., unreachable endpoint). */\n Network: 'network',\n\n /** Blockchain-related error (e.g., transaction failure, gas limit). */\n Blockchain: 'blockchain',\n\n /** Validation-specific error (e.g., failed constraints or field errors). */\n Validation: 'validation',\n\n /** Authentication-related error (e.g., invalid credentials, expired token). */\n Authentication: 'authentication',\n\n /** Authorization-related error (e.g., insufficient permissions). */\n Authorization: 'authorization',\n\n /** Resource not found error. */\n NotFound: 'not.found',\n\n /** Rate limiting error (too many requests). */\n RateLimit: 'rate.limit',\n\n /** External service error (e.g., third-party API failure). */\n ExternalService: 'external.service',\n\n /** Timeout error (request exceeded time limit). */\n Timeout: 'timeout',\n\n /** Conflict error (e.g., resource state conflict). */\n Conflict: 'conflict',\n\n /** Cache-related error. */\n Cache: 'cache',\n\n /** Headers-related error (e.g., missing or invalid headers). */\n Headers: 'headers',\n\n /** Retry-related error (e.g., max retries exceeded). */\n Retry: 'retry',\n\n /** Strategy-related error (e.g., invalid retry or caching strategy). */\n Strategy: 'strategy',\n\n /** Regional-related error (e.g., region detection failure). */\n Regional: 'regional',\n\n /** Provider-related error (e.g., notification service provider failure). */\n Provider: 'provider',\n\n /** Queue-related error (e.g., queue full or processing failed). */\n Queue: 'queue',\n\n /** Webhook-related error (e.g., invalid signature or processing failure). */\n Webhook: 'webhook',\n\n /** Template-related error (e.g., template not found or rendering failed). */\n Template: 'template',\n\n /** Configuration-related error (e.g., invalid or missing configuration). */\n Configuration: 'configuration',\n\n /** Payment processing-related error (e.g., capture or settlement failure). */\n Processing: 'processing',\n\n /** Fraud detection or prevention failure. */\n Fraud: 'fraud',\n\n /** Compliance-related error (e.g., AML/KYC validation failure). */\n Compliance: 'compliance',\n\n /** Limits or quota-related error (e.g., exceeded transaction limit). */\n Limits: 'limits',\n\n /** System-level error (unexpected internal issue). */\n System: 'system',\n\n /** Refund-related error (e.g., duplicate or failed refund). */\n Refund: 'refund',\n\n /** Security-related error (e.g., encryption or signature failure). */\n Security: 'security',\n\n /** File operation error (e.g., upload, download, delete failure). */\n FileOperation: 'file.operation',\n\n /** Plugin-related error (e.g., plugin initialization or execution failure). */\n Plugin: 'plugin',\n\n /** Quota or storage limit error (e.g., exceeded storage quota). */\n Quota: 'quota',\n\n /** Database-related error (e.g., query failure, connection error). */\n Database: 'database',\n\n /** Unknown or unclassified error. */\n Unknown: 'unknown',\n} as const;\n\n/**\n * Internal package status codes (non-HTTP)\n * Used for internal configuration and validation errors that aren't HTTP-related\n * These are in the 1xxx range to distinguish from HTTP status codes (which are typically 100-599)\n *\n * @example\n * ```typescript\n * import { INTERNAL_STATUS_CODES } from '@plyaz/types';\n *\n * const statusCode = INTERNAL_STATUS_CODES.INVALID_CONFIGURATION; // 1001\n * if (error.statusCode >= 1000 && error.statusCode < 2000) {\n * // Handle internal package error\n * }\n * ```\n */\nexport const INTERNAL_STATUS_CODES = {\n // Configuration errors (1001-1009)\n INVALID_CONFIGURATION: 1001,\n MISSING_CONFIGURATION: 1002,\n CONFIGURATION_CONFLICT: 1003,\n CONFIGURATION_TRACKING_FAILED: 1004,\n DEBUG_TRACKING_FAILED: 1005,\n\n // Resource errors (1010-1019)\n RESOURCE_NOT_FOUND: 1010,\n RESOURCE_ALREADY_EXISTS: 1011,\n RESOURCE_UNAVAILABLE: 1012,\n\n // Validation errors (1020-1029)\n INVALID_PARAMETER: 1020,\n MISSING_PARAMETER: 1021,\n PARAMETER_OUT_OF_RANGE: 1022,\n\n // Strategy/preset errors (1030-1039)\n STRATEGY_NOT_FOUND: 1030,\n PRESET_NOT_FOUND: 1031,\n INVALID_STRATEGY: 1032,\n\n // Request/Response errors (1035-1039)\n REQUEST_FAILED: 1035,\n\n // Internal system errors (1040-1049)\n INITIALIZATION_FAILED: 1040,\n OPERATION_FAILED: 1041,\n STATE_CORRUPTION: 1042,\n SERIALIZATION_FAILED: 1043,\n DESERIALIZATION_FAILED: 1044,\n CONFIGURATION_INVALID: 1045,\n HEADER_PROCESSING_ERROR: 1046,\n REGION_DETECTION_ERROR: 1047,\n NETWORK_OVERRIDE_ERROR: 1048,\n} as const;\n\n/**\n * Mapping of error category values to camelCase emitter keys\n * Used by event systems to route errors to appropriate handlers\n *\n * @example\n * ```typescript\n * import { ERROR_CATEGORY, ERROR_CATEGORY_TO_EMITTER_KEY } from '@plyaz/types';\n *\n * const category = ERROR_CATEGORY.RateLimit; // 'rate.limit'\n * const emitterKey = ERROR_CATEGORY_TO_EMITTER_KEY[category]; // 'rateLimit'\n *\n * // Use in event emitter\n * eventEmitter.emit(`error:${emitterKey}`, error);\n * ```\n */\nexport const ERROR_CATEGORY_TO_EMITTER_KEY = {\n [ERROR_CATEGORY.Network]: 'network',\n [ERROR_CATEGORY.Validation]: 'validation',\n [ERROR_CATEGORY.Authentication]: 'authentication',\n [ERROR_CATEGORY.Authorization]: 'authorization',\n [ERROR_CATEGORY.RateLimit]: 'rateLimit',\n [ERROR_CATEGORY.Server]: 'server',\n [ERROR_CATEGORY.Timeout]: 'timeout',\n [ERROR_CATEGORY.NotFound]: 'notFound',\n [ERROR_CATEGORY.Conflict]: 'conflict',\n [ERROR_CATEGORY.Client]: 'client',\n [ERROR_CATEGORY.ExternalService]: 'externalService',\n [ERROR_CATEGORY.Cache]: 'cache',\n [ERROR_CATEGORY.Headers]: 'headers',\n [ERROR_CATEGORY.Retry]: 'retry',\n [ERROR_CATEGORY.Blockchain]: 'blockchain',\n [ERROR_CATEGORY.Strategy]: 'strategy',\n [ERROR_CATEGORY.Regional]: 'regional',\n [ERROR_CATEGORY.Provider]: 'provider',\n [ERROR_CATEGORY.Queue]: 'queue',\n [ERROR_CATEGORY.Webhook]: 'webhook',\n [ERROR_CATEGORY.Template]: 'template',\n [ERROR_CATEGORY.Configuration]: 'configuration',\n [ERROR_CATEGORY.Processing]: 'processing',\n [ERROR_CATEGORY.Fraud]: 'fraud',\n [ERROR_CATEGORY.Compliance]: 'compliance',\n [ERROR_CATEGORY.Limits]: 'limits',\n [ERROR_CATEGORY.System]: 'system',\n [ERROR_CATEGORY.Refund]: 'refund',\n [ERROR_CATEGORY.Security]: 'security',\n [ERROR_CATEGORY.FileOperation]: 'fileOperation',\n [ERROR_CATEGORY.Plugin]: 'plugin',\n [ERROR_CATEGORY.Quota]: 'quota',\n [ERROR_CATEGORY.Database]: 'database',\n [ERROR_CATEGORY.Unknown]: 'unknown',\n} as const satisfies Record<(typeof ERROR_CATEGORY)[keyof typeof ERROR_CATEGORY], string>;\n\n/**\n * Common operation names used in error context\n * These are optional helpers - you can use any freeform string in context.operation\n *\n * @example\n * ```typescript\n * import { COMMON_OPERATIONS } from '@plyaz/types';\n *\n * const context = { operation: COMMON_OPERATIONS.STORAGE };\n * // Or just use a string:\n * const context2 = { operation: 'custom-operation' };\n * ```\n */\nexport const COMMON_OPERATIONS = {\n // Data operations\n STORAGE: 'storage',\n RETRIEVAL: 'retrieval',\n INVALIDATION: 'invalidation',\n DELETION: 'deletion',\n\n // Processing operations\n VALIDATION: 'validation',\n ENRICHMENT: 'enrichment',\n SERIALIZATION: 'serialization',\n DESERIALIZATION: 'deserialization',\n\n // API operations\n REQUEST: 'request',\n RESPONSE: 'response',\n RETRY: 'retry',\n REVALIDATION: 'revalidation',\n POLLING: 'polling',\n\n // Configuration operations\n INITIALIZATION: 'initialization',\n CONFIGURATION: 'configuration',\n PRESET_LOOKUP: 'preset-lookup',\n REGIONAL_DETECTION: 'regional-detection',\n\n // Strategy operations\n STRATEGY_EXECUTION: 'strategy-execution',\n FALLBACK: 'fallback',\n\n // Event operations\n SUBSCRIPTION: 'subscription',\n PUBLICATION: 'publication',\n EVENT_HANDLING: 'event-handling',\n\n // Debugging operations\n DEBUG: 'debug',\n DEBUG_TRACKING: 'debug-tracking',\n TRACKING: 'tracking',\n MONITORING: 'monitoring',\n\n // Network operations\n NETWORK_CHECK: 'network-check',\n ENDPOINT_BUILD: 'endpoint-build',\n CONTEXT_SETUP: 'context-setup',\n\n // Notification operations\n SEND: 'send',\n RENDER: 'render',\n QUEUE: 'queue',\n PROCESS: 'process',\n} as const;\n\n/**\n * Common field names used in error context\n * These are optional helpers - you can use any freeform string in context.field\n *\n * @example\n * ```typescript\n * import { COMMON_FIELDS } from '@plyaz/types';\n *\n * const context = { field: COMMON_FIELDS.EMAIL };\n * // Or just use a string:\n * const context2 = { field: 'customField' };\n * ```\n */\nexport const COMMON_FIELDS = {\n // Storage fields\n STORAGE: 'storage',\n CACHE: 'cache',\n\n // Configuration fields\n CONFIG: 'config',\n PRESET_NAME: 'presetName',\n PRESET_ID: 'presetId',\n\n // HTTP fields\n HEADERS: 'headers',\n URL: 'url',\n METHOD: 'method',\n\n // Strategy fields\n STRATEGY: 'strategy',\n\n // Retry fields\n RETRY_COUNT: 'retryCount',\n MAX_RETRIES: 'maxRetries',\n\n // Polling fields\n POLLING_INTERVAL: 'pollingInterval',\n\n // Event fields\n TOPIC: 'topic',\n CHANNEL: 'channel',\n\n // API fields\n ENDPOINT: 'endpoint',\n CLIENT: 'client',\n\n // Network fields\n NETWORK_TYPE: 'networkType',\n TIME_INTERVAL: 'timeInterval',\n\n // Notification fields\n EMAIL: 'email',\n PHONE: 'phoneNumber',\n RECIPIENT: 'recipient',\n TEMPLATE: 'template',\n PROVIDER: 'provider',\n} as const;\n\n/**\n * Common storage type names\n * These are optional helpers - you can use any freeform string in context.storageType\n *\n * @example\n * ```typescript\n * import { COMMON_STORAGE_TYPES } from '@plyaz/types';\n *\n * const context = { storageType: COMMON_STORAGE_TYPES.REDIS };\n * // Or just use a string:\n * const context2 = { storageType: 'custom-storage' };\n * ```\n */\nexport const COMMON_STORAGE_TYPES = {\n PRIMARY: 'primary',\n FALLBACK: 'fallback',\n MEMORY: 'memory',\n SESSION: 'session',\n LOCAL: 'local',\n REDIS: 'redis',\n DATABASE: 'database',\n} as const;\n\n/**\n * Namespaces for categorizing error exceptions classes in different packages and category based exceptions\n */\nexport const ERROR_EXCEPTIONS_NAMESPACES = {\n BASE: 'base',\n API: 'api',\n AUTH: 'auth',\n NOTIFICATIONS: 'notifications',\n STORAGE: 'storage',\n DB: 'db',\n VALIDATION: 'validation',\n GENERIC: 'generic',\n PAYMENTS: 'payments',\n ERRORS: 'errors',\n LOGGER: 'logger',\n TYPES: 'types',\n CONFIG: 'config',\n UTILS: 'utils',\n EVENTS: 'events',\n TRANSLATIONS: 'translations',\n UI: 'ui',\n TESTING: 'testing',\n CORE: 'core',\n STORE: 'store',\n WEB3: 'web3',\n MONITORING: 'monitoring',\n HOOKS: 'hooks',\n COMMON: 'common',\n COMPLIANCE: 'compliance',\n PAYMENT_WEBHOOKS: 'payment-webhook',\n};\n","/**\n * HTTP Status Code Constants\n *\n * Common HTTP status codes used throughout the application.\n * Based on RFC 9110 (HTTP Semantics) and common usage patterns.\n *\n * @module http/constants\n */\n\n/**\n * Standard HTTP status codes\n */\nexport const HTTP_STATUS = {\n // 1xx Informational\n /**\n * 100 Continue - The initial part of a request has been received\n */\n CONTINUE: 100,\n\n /**\n * 101 Switching Protocols - The server is switching protocols\n */\n SWITCHING_PROTOCOLS: 101,\n\n /**\n * 102 Processing - The server has received and is processing the request\n */\n PROCESSING: 102,\n\n /**\n * 103 Early Hints - Used to return some response headers before final HTTP message\n */\n EARLY_HINTS: 103,\n\n // 2xx Success\n /**\n * 200 OK - The request succeeded\n */\n OK: 200,\n\n /**\n * 201 Created - The request succeeded and a new resource was created\n */\n CREATED: 201,\n\n /**\n * 202 Accepted - The request has been received but not yet acted upon\n */\n ACCEPTED: 202,\n\n /**\n * 203 Non-Authoritative Information - The returned metadata is not from the origin server\n */\n NON_AUTHORITATIVE_INFORMATION: 203,\n\n /**\n * 204 No Content - There is no content to send for this request\n */\n NO_CONTENT: 204,\n\n /**\n * 205 Reset Content - Tells the user agent to reset the document\n */\n RESET_CONTENT: 205,\n\n /**\n * 206 Partial Content - The server is delivering only part of the resource\n */\n PARTIAL_CONTENT: 206,\n\n /**\n * 207 Multi-Status - Conveys information about multiple resources\n */\n MULTI_STATUS: 207,\n\n /**\n * 208 Already Reported - The members of a DAV binding have already been enumerated\n */\n ALREADY_REPORTED: 208,\n\n /**\n * 226 IM Used - The server has fulfilled a request for the resource\n */\n IM_USED: 226,\n\n // 3xx Redirection\n /**\n * 300 Multiple Choices - Multiple options for the resource are available\n */\n MULTIPLE_CHOICES: 300,\n\n /**\n * 301 Moved Permanently - The URL of the requested resource has been changed permanently\n */\n MOVED_PERMANENTLY: 301,\n\n /**\n * 302 Found - The resource resides temporarily under a different URI\n */\n FOUND: 302,\n\n /**\n * 303 See Other - Direct the client to get the resource at another URI\n */\n SEE_OTHER: 303,\n\n /**\n * 304 Not Modified - The cached version is still valid\n */\n NOT_MODIFIED: 304,\n\n /**\n * 305 Use Proxy - Defined in a previous version of the HTTP specification\n */\n USE_PROXY: 305,\n\n /**\n * 307 Temporary Redirect - The request should be repeated with another URI\n */\n TEMPORARY_REDIRECT: 307,\n\n /**\n * 308 Permanent Redirect - The resource is permanently located at another URI\n */\n PERMANENT_REDIRECT: 308,\n\n // 4xx Client Errors\n /**\n * 400 Bad Request - The server cannot process the request due to client error\n */\n BAD_REQUEST: 400,\n\n /**\n * 401 Unauthorized - Authentication is required and has failed or not been provided\n */\n UNAUTHORIZED: 401,\n\n /**\n * 402 Payment Required - Reserved for future use\n */\n PAYMENT_REQUIRED: 402,\n\n /**\n * 403 Forbidden - The server understood the request but refuses to authorize it\n */\n FORBIDDEN: 403,\n\n /**\n * 404 Not Found - The server cannot find the requested resource\n */\n NOT_FOUND: 404,\n\n /**\n * 405 Method Not Allowed - The request method is not supported for the requested resource\n */\n METHOD_NOT_ALLOWED: 405,\n\n /**\n * 406 Not Acceptable - The requested resource is not available in a format acceptable to the client\n */\n NOT_ACCEPTABLE: 406,\n\n /**\n * 407 Proxy Authentication Required - The client must authenticate itself with the proxy\n */\n PROXY_AUTHENTICATION_REQUIRED: 407,\n\n /**\n * 408 Request Timeout - The server timed out waiting for the request\n */\n REQUEST_TIMEOUT: 408,\n\n /**\n * 409 Conflict - The request conflicts with the current state of the server\n */\n CONFLICT: 409,\n\n /**\n * 410 Gone - The requested resource is no longer available and will not be available again\n */\n GONE: 410,\n\n /**\n * 411 Length Required - The request did not specify the length of its content\n */\n LENGTH_REQUIRED: 411,\n\n /**\n * 412 Precondition Failed - The server does not meet one of the preconditions\n */\n PRECONDITION_FAILED: 412,\n\n /**\n * 413 Payload Too Large - The request is larger than the server is willing to process\n */\n PAYLOAD_TOO_LARGE: 413,\n\n /**\n * 414 URI Too Long - The URI provided was too long for the server to process\n */\n URI_TOO_LONG: 414,\n\n /**\n * 415 Unsupported Media Type - The request entity has a media type not supported by the server\n */\n UNSUPPORTED_MEDIA_TYPE: 415,\n\n /**\n * 416 Range Not Satisfiable - The client has asked for a portion of the file that the server cannot supply\n */\n RANGE_NOT_SATISFIABLE: 416,\n\n /**\n * 417 Expectation Failed - The server cannot meet the requirements of the Expect request-header field\n */\n EXPECTATION_FAILED: 417,\n\n /**\n * 418 I'm a teapot - The server refuses to brew coffee because it is a teapot\n */\n IM_A_TEAPOT: 418,\n\n /**\n * 421 Misdirected Request - The request was directed at a server that is not able to produce a response\n */\n MISDIRECTED_REQUEST: 421,\n\n /**\n * 422 Unprocessable Entity - The request was well-formed but was unable to be followed due to semantic errors\n */\n UNPROCESSABLE_ENTITY: 422,\n\n /**\n * 423 Locked - The resource that is being accessed is locked\n */\n LOCKED: 423,\n\n /**\n * 424 Failed Dependency - The request failed due to failure of a previous request\n */\n FAILED_DEPENDENCY: 424,\n\n /**\n * 425 Too Early - The server is unwilling to risk processing a request that might be replayed\n */\n TOO_EARLY: 425,\n\n /**\n * 426 Upgrade Required - The client should switch to a different protocol\n */\n UPGRADE_REQUIRED: 426,\n\n /**\n * 428 Precondition Required - The origin server requires the request to be conditional\n */\n PRECONDITION_REQUIRED: 428,\n\n /**\n * 429 Too Many Requests - The user has sent too many requests in a given amount of time\n */\n TOO_MANY_REQUESTS: 429,\n\n /**\n * 431 Request Header Fields Too Large - The server is unwilling to process the request because its header fields are too large\n */\n REQUEST_HEADER_FIELDS_TOO_LARGE: 431,\n\n /**\n * 451 Unavailable For Legal Reasons - The user requested a resource that cannot legally be provided\n */\n UNAVAILABLE_FOR_LEGAL_REASONS: 451,\n\n // 5xx Server Errors\n /**\n * 500 Internal Server Error - The server encountered an unexpected condition\n */\n INTERNAL_SERVER_ERROR: 500,\n\n /**\n * 501 Not Implemented - The server does not support the functionality required to fulfill the request\n */\n NOT_IMPLEMENTED: 501,\n\n /**\n * 502 Bad Gateway - The server received an invalid response from the upstream server\n */\n BAD_GATEWAY: 502,\n\n /**\n * 503 Service Unavailable - The server is not ready to handle the request\n */\n SERVICE_UNAVAILABLE: 503,\n\n /**\n * 504 Gateway Timeout - The server did not get a response in time from the upstream server\n */\n GATEWAY_TIMEOUT: 504,\n\n /**\n * 505 HTTP Version Not Supported - The HTTP version used in the request is not supported by the server\n */\n HTTP_VERSION_NOT_SUPPORTED: 505,\n\n /**\n * 506 Variant Also Negotiates - The server has an internal configuration error\n */\n VARIANT_ALSO_NEGOTIATES: 506,\n\n /**\n * 507 Insufficient Storage - The server is unable to store the representation needed to complete the request\n */\n INSUFFICIENT_STORAGE: 507,\n\n /**\n * 508 Loop Detected - The server detected an infinite loop while processing the request\n */\n LOOP_DETECTED: 508,\n\n /**\n * 510 Not Extended - Further extensions to the request are required for the server to fulfill it\n */\n NOT_EXTENDED: 510,\n\n /**\n * 511 Network Authentication Required - The client needs to authenticate to gain network access\n */\n NETWORK_AUTHENTICATION_REQUIRED: 511,\n} as const;\n\n/**\n * Type for HTTP status codes\n */\nexport type HttpStatusCode = (typeof HTTP_STATUS)[keyof typeof HTTP_STATUS];\n","/**\n * Unified Error Codes and Definitions\n * Centralized source of truth for ALL error handling across @plyaz packages\n *\n * This file is the single source of truth for:\n * - All error codes\n * - All error definitions\n * - Error code to definition mappings\n */\n\nimport { HTTP_STATUS } from '../http/constants';\nimport { ERROR_CATEGORY, ERROR_SEVERITY } from './enums';\nimport type { ErrorDefinitions } from './types';\n\n/**\n * All Error Codes\n * Combined error codes from all @plyaz packages\n */\nexport const ERROR_CODES = {\n // ===== Generic/Common Errors =====\n // These are package-agnostic error codes that can be used across all packages\n NOT_IMPLEMENTED: 'not.implemented',\n PROVIDER_NOT_IMPLEMENTED: 'provider.not.implemented',\n FEATURE_NOT_SUPPORTED: 'feature.not.supported',\n\n // ===== API Package Errors =====\n // Client Configuration\n CLIENT_INITIALIZATION_FAILED: 'CLIENT_INITIALIZATION_FAILED',\n CLIENT_INVALID_CONFIG: 'CLIENT_INVALID_CONFIG',\n CLIENT_MISSING_BASE_URL: 'CLIENT_MISSING_BASE_URL',\n CLIENT_CANCELLED: 'CLIENT_CANCELLED',\n CONFIG_VALIDATION_FAILED: 'CONFIG_VALIDATION_FAILED',\n HEADER_PROCESSING_FAILED: 'HEADER_PROCESSING_FAILED',\n NETWORK_OVERRIDE_FAILED: 'NETWORK_OVERRIDE_FAILED',\n\n // Request\n REQUEST_TIMEOUT: 'REQUEST_TIMEOUT',\n REQUEST_ABORTED: 'REQUEST_ABORTED',\n REQUEST_INVALID_PARAMS: 'REQUEST_INVALID_PARAMS',\n REQUEST_PREPARATION_FAILED: 'REQUEST_PREPARATION_FAILED',\n\n // Response\n RESPONSE_INVALID_FORMAT: 'RESPONSE_INVALID_FORMAT',\n RESPONSE_PARSING_FAILED: 'RESPONSE_PARSING_FAILED',\n\n // Authentication/Authorization\n AUTH_UNAUTHORIZED: 'AUTH_UNAUTHORIZED',\n AUTH_FORBIDDEN: 'AUTH_FORBIDDEN',\n\n // Rate Limiting\n RATE_LIMIT_EXCEEDED: 'RATE_LIMIT_EXCEEDED',\n\n // Resources\n RESOURCE_NOT_FOUND: 'RESOURCE_NOT_FOUND',\n RESOURCE_CONFLICT: 'RESOURCE_CONFLICT',\n\n // Validation\n API_VALIDATION_FAILED: 'API_VALIDATION_FAILED',\n API_INVALID_INPUT: 'API_INVALID_INPUT',\n VALIDATION_ERROR: 'VALIDATION_ERROR',\n REQUIRED_FIELD_MISSING: 'REQUIRED_FIELD_MISSING',\n INVALID_FORMAT: 'INVALID_FORMAT',\n VALIDATION_INVALID_FORMAT: 'VALIDATION_INVALID_FORMAT',\n STRING_TOO_SHORT: 'STRING_TOO_SHORT',\n STRING_TOO_LONG: 'STRING_TOO_LONG',\n\n // Network\n NETWORK_ERROR: 'NETWORK_ERROR',\n CONNECTION_FAILED: 'CONNECTION_FAILED',\n NETWORK_CONNECTION_FAILED: 'NETWORK_CONNECTION_FAILED',\n NETWORK_OFFLINE: 'NETWORK_OFFLINE',\n NETWORK_DNS_FAILED: 'NETWORK_DNS_FAILED',\n NETWORK_TIMEOUT: 'NETWORK_TIMEOUT',\n NETWORK_PRESET_NOT_FOUND: 'NETWORK_PRESET_NOT_FOUND',\n NETWORK_CONFIGURATION_INVALID: 'NETWORK_CONFIGURATION_INVALID',\n\n // Server\n SERVER_ERROR: 'SERVER_ERROR',\n INTERNAL_SERVER_ERROR: 'INTERNAL_SERVER_ERROR',\n SERVICE_UNAVAILABLE: 'SERVICE_UNAVAILABLE',\n\n // Cache\n CACHE_READ_FAILED: 'CACHE_READ_FAILED',\n CACHE_WRITE_FAILED: 'CACHE_WRITE_FAILED',\n CACHE_INVALIDATION_FAILED: 'CACHE_INVALIDATION_FAILED',\n CACHE_STORAGE_FAILED: 'CACHE_STORAGE_FAILED',\n CACHE_RETRIEVAL_FAILED: 'CACHE_RETRIEVAL_FAILED',\n\n // Retry\n RETRY_LIMIT_EXCEEDED: 'RETRY_LIMIT_EXCEEDED',\n RETRY_FAILED: 'RETRY_FAILED',\n RETRY_EXHAUSTED: 'RETRY_EXHAUSTED',\n RETRY_STRATEGY_INVALID: 'RETRY_STRATEGY_INVALID',\n\n // Strategy\n STRATEGY_INVALID: 'STRATEGY_INVALID',\n STRATEGY_CONFLICT: 'STRATEGY_CONFLICT',\n STRATEGY_EXECUTION_FAILED: 'STRATEGY_EXECUTION_FAILED',\n\n // Headers\n HEADERS_ENRICHMENT_FAILED: 'HEADERS_ENRICHMENT_FAILED',\n HEADERS_VALIDATION_FAILED: 'HEADERS_VALIDATION_FAILED',\n HEADERS_MERGE_CONFLICT: 'HEADERS_MERGE_CONFLICT',\n\n // Regional\n REGION_DETECTION_FAILED: 'REGION_DETECTION_FAILED',\n REGIONAL_PRESET_NOT_FOUND: 'REGIONAL_PRESET_NOT_FOUND',\n\n // External Services\n EXTERNAL_SERVICE_ERROR: 'EXTERNAL_SERVICE_ERROR',\n\n // Timeout (generic)\n TIMEOUT: 'TIMEOUT',\n\n // Debugging\n DEBUG_TRACKING_FAILED: 'DEBUG_TRACKING_FAILED',\n\n // Polling\n POLLING_CANCELLED: 'POLLING_CANCELLED',\n POLLING_TIMEOUT: 'POLLING_TIMEOUT',\n POLLING_INVALID_CONFIG: 'POLLING_INVALID_CONFIG',\n\n // PubSub\n PUBSUB_SUBSCRIPTION_FAILED: 'PUBSUB_SUBSCRIPTION_FAILED',\n PUBSUB_PUBLICATION_FAILED: 'PUBSUB_PUBLICATION_FAILED',\n PUBSUB_INVALID_TOPIC: 'PUBSUB_INVALID_TOPIC',\n PUBSUB_CHANNEL_ERROR: 'PUBSUB_CHANNEL_ERROR',\n\n // Revalidation\n REVALIDATION_FAILED: 'REVALIDATION_FAILED',\n REVALIDATION_IN_PROGRESS: 'REVALIDATION_IN_PROGRESS',\n\n // Debugging\n DEBUG_OVERRIDE_FAILED: 'DEBUG_OVERRIDE_FAILED',\n DEBUG_CONFLICT_DETECTED: 'DEBUG_CONFLICT_DETECTED',\n\n // Endpoint\n ENDPOINT_BUILD_FAILED: 'ENDPOINT_BUILD_FAILED',\n ENDPOINT_NOT_FOUND: 'ENDPOINT_NOT_FOUND',\n ENDPOINT_INVALID_CONFIG: 'ENDPOINT_INVALID_CONFIG',\n\n // Event\n EVENT_HANDLER_FAILED: 'EVENT_HANDLER_FAILED',\n EVENT_EMISSION_FAILED: 'EVENT_EMISSION_FAILED',\n MONITORING_FAILED: 'MONITORING_FAILED',\n\n // Context\n CONTEXT_OPERATION_FAILED: 'CONTEXT_OPERATION_FAILED',\n\n // Generic\n CLIENT_ERROR: 'CLIENT_ERROR',\n UNKNOWN_ERROR: 'UNKNOWN_ERROR',\n\n // ===== Notification Package Errors =====\n // Provider\n NOTIFICATION_PROVIDER_SEND_FAILED: 'notification.provider.send.failed',\n NOTIFICATION_PROVIDER_CONFIGURATION_INVALID: 'notification.provider.configuration.invalid',\n NOTIFICATION_PROVIDER_RATE_LIMIT: 'notification.provider.rate.limit',\n NOTIFICATION_PROVIDER_AUTH_FAILED: 'notification.provider.auth.failed',\n NOTIFICATION_PROVIDER_TIMEOUT: 'notification.provider.timeout',\n NOTIFICATION_PROVIDER_UNAVAILABLE: 'notification.provider.unavailable',\n NOTIFICATION_PROVIDER_FEATURE_NOT_SUPPORTED: 'notification.provider.feature.not.supported',\n NOTIFICATION_ALL_PROVIDERS_FAILED: 'notification.all.providers.failed',\n\n // Validation\n NOTIFICATION_INVALID_INPUT: 'notification.validation.input.invalid',\n NOTIFICATION_INVALID_RECIPIENT: 'notification.validation.recipient.invalid',\n NOTIFICATION_INVALID_TEMPLATE: 'notification.validation.template.invalid',\n NOTIFICATION_INVALID_PAYLOAD: 'notification.validation.payload.invalid',\n NOTIFICATION_MISSING_REQUIRED_FIELD: 'notification.validation.field.required',\n NOTIFICATION_VALIDATION_FAILED: 'notification.validation.failed',\n\n // User Preferences\n NOTIFICATION_USER_OPTED_OUT: 'notification.user.opted.out',\n\n // Queue\n NOTIFICATION_QUEUE_FULL: 'notification.queue.full',\n NOTIFICATION_QUEUE_PROCESSING_FAILED: 'notification.queue.processing.failed',\n\n // Webhook\n NOTIFICATION_WEBHOOK_SIGNATURE_INVALID: 'notification.webhook.signature.invalid',\n NOTIFICATION_WEBHOOK_VALIDATION_FAILED: 'notification.webhook.validation.failed',\n NOTIFICATION_WEBHOOK_PROCESSING_FAILED: 'notification.webhook.processing.failed',\n\n // Template\n NOTIFICATION_TEMPLATE_NOT_FOUND: 'notification.template.not.found',\n NOTIFICATION_TEMPLATE_RENDER_FAILED: 'notification.template.render.failed',\n\n // General Notification\n NOTIFICATION_UNKNOWN_ERROR: 'notification.unknown.error',\n NOTIFICATION_INITIALIZATION_FAILED: 'notification.initialization.failed',\n\n // ===== Storage Package Errors =====\n // General\n STORAGE_UNKNOWN_ERROR: 'storage.unknown.error',\n STORAGE_INITIALIZATION_FAILED: 'storage.initialization.failed',\n\n // Adapter\n STORAGE_ADAPTER_NOT_FOUND: 'storage.adapter.not.found',\n STORAGE_ADAPTER_INITIALIZATION_FAILED: 'storage.adapter.initialization.failed',\n STORAGE_ADAPTER_CONFIGURATION_INVALID: 'storage.adapter.configuration.invalid',\n STORAGE_ADAPTER_ALREADY_REGISTERED: 'storage.adapter.already.registered',\n STORAGE_ADAPTER_CONNECTION_FAILED: 'storage.adapter.connection.failed',\n STORAGE_ADAPTER_AUTHENTICATION_FAILED: 'storage.adapter.authentication.failed',\n STORAGE_ADAPTER_OPERATION_FAILED: 'storage.adapter.operation.failed',\n STORAGE_ADAPTER_HEALTH_CHECK_FAILED: 'storage.adapter.health.check.failed',\n STORAGE_ADAPTER_UNAVAILABLE: 'storage.adapter.unavailable',\n STORAGE_ADAPTER_TIMEOUT: 'storage.adapter.timeout',\n STORAGE_ADAPTER_RATE_LIMIT: 'storage.adapter.rate.limit',\n STORAGE_ADAPTER_QUOTA_EXCEEDED: 'storage.adapter.quota.exceeded',\n STORAGE_ADAPTER_UNSUPPORTED_OPERATION: 'storage.adapter.unsupported.operation',\n STORAGE_ADAPTER_FEATURE_NOT_SUPPORTED: 'storage.adapter.feature.not.supported',\n STORAGE_NO_HEALTHY_ADAPTERS: 'storage.no.healthy.adapters',\n STORAGE_ALL_ADAPTERS_FAILED: 'storage.all.adapters.failed',\n\n // File Validation\n STORAGE_FILE_TOO_LARGE: 'storage.file.too.large',\n STORAGE_FILE_TOO_SMALL: 'storage.file.too.small',\n STORAGE_FILE_SIZE_INVALID: 'storage.file.size.invalid',\n STORAGE_FILE_TYPE_NOT_ALLOWED: 'storage.file.type.not.allowed',\n STORAGE_INVALID_MIME_TYPE: 'storage.invalid.mime.type',\n STORAGE_INVALID_FILE_EXTENSION: 'storage.invalid.file.extension',\n STORAGE_FILE_EXTENSION_INVALID: 'storage.file.extension.invalid',\n STORAGE_FILE_EXTENSION_MISMATCH: 'storage.file.extension.mismatch',\n STORAGE_EXECUTABLE_NOT_ALLOWED: 'storage.executable.not.allowed',\n STORAGE_VALIDATION_FAILED: 'storage.validation.failed',\n STORAGE_INVALID_FILE_CONTENT: 'storage.invalid.file.content',\n\n // Security\n STORAGE_SECURITY_VIRUS_DETECTED: 'storage.security.virus.detected',\n STORAGE_SECURITY_SCAN_FAILED: 'storage.security.scan.failed',\n STORAGE_SECURITY_ACCESS_DENIED: 'storage.security.access.denied',\n STORAGE_SECURITY_ENCRYPTION_FAILED: 'storage.security.encryption.failed',\n\n // File Operations\n STORAGE_FILE_UPLOAD_FAILED: 'storage.file.upload.failed',\n STORAGE_FILE_DOWNLOAD_FAILED: 'storage.file.download.failed',\n STORAGE_FILE_DELETE_FAILED: 'storage.file.delete.failed',\n STORAGE_FILE_UPDATE_FAILED: 'storage.file.update.failed',\n STORAGE_FILE_NOT_FOUND: 'storage.file.not.found',\n STORAGE_FILE_ALREADY_EXISTS: 'storage.file.already.exists',\n STORAGE_FILE_MOVE_FAILED: 'storage.file.move.failed',\n STORAGE_FILE_COPY_FAILED: 'storage.file.copy.failed',\n STORAGE_FILE_READ_FAILED: 'storage.file.read.failed',\n STORAGE_FILE_WRITE_FAILED: 'storage.file.write.failed',\n STORAGE_FILE_CORRUPTED: 'storage.file.corrupted',\n STORAGE_INVALID_OPERATION: 'storage.invalid.operation',\n\n // Metadata\n STORAGE_METADATA_EXTRACTION_FAILED: 'storage.metadata.extraction.failed',\n STORAGE_METADATA_INVALID: 'storage.metadata.invalid',\n STORAGE_METADATA_UPDATE_FAILED: 'storage.metadata.update.failed',\n\n // Media Processing\n STORAGE_MEDIA_PROCESSING_FAILED: 'storage.media.processing.failed',\n STORAGE_MEDIA_RESIZE_FAILED: 'storage.media.resize.failed',\n STORAGE_MEDIA_FORMAT_UNSUPPORTED: 'storage.media.format.unsupported',\n STORAGE_MEDIA_TRANSCODE_FAILED: 'storage.media.transcode.failed',\n STORAGE_MEDIA_THUMBNAIL_FAILED: 'storage.media.thumbnail.failed',\n STORAGE_MEDIA_INVALID_DIMENSIONS: 'storage.media.invalid.dimensions',\n\n // Template & PDF\n STORAGE_TEMPLATE_NOT_FOUND: 'storage.template.not.found',\n STORAGE_TEMPLATE_RENDER_FAILED: 'storage.template.render.failed',\n STORAGE_PDF_GENERATION_FAILED: 'storage.pdf.generation.failed',\n STORAGE_PDF_RENDERING_TIMEOUT: 'storage.pdf.rendering.timeout',\n\n // Queue\n STORAGE_QUEUE_FULL: 'storage.queue.full',\n STORAGE_QUEUE_PROCESSING_FAILED: 'storage.queue.processing.failed',\n STORAGE_QUEUE_ITEM_NOT_FOUND: 'storage.queue.item.not.found',\n\n // Compliance\n STORAGE_COMPLIANCE_VIOLATION: 'storage.compliance.violation',\n STORAGE_COMPLIANCE_RETENTION_VIOLATION: 'storage.compliance.retention.violation',\n STORAGE_COMPLIANCE_RETENTION_EXPIRED: 'storage.compliance.retention.expired',\n STORAGE_COMPLIANCE_IMMUTABLE_FILE: 'storage.compliance.immutable.file',\n STORAGE_COMPLIANCE_POLICY_NOT_FOUND: 'storage.compliance.policy.not.found',\n STORAGE_COMPLIANCE_SOFT_DELETE_REQUIRED: 'storage.compliance.soft.delete.required',\n STORAGE_COMPLIANCE_GRACE_PERIOD_ACTIVE: 'storage.compliance.grace.period.active',\n STORAGE_COMPLIANCE_DEFERRED_DELETION: 'storage.compliance.deferred.deletion',\n STORAGE_COMPLIANCE_PATTERN_PROTECTED: 'storage.compliance.pattern.protected',\n\n // Share Links\n STORAGE_SHARE_LINK_NOT_FOUND: 'storage.share.link.not.found',\n STORAGE_SHARE_LINK_EXPIRED: 'storage.share.link.expired',\n STORAGE_SHARE_LINK_MAX_DOWNLOADS: 'storage.share.link.max.downloads',\n STORAGE_SHARE_LINK_INVALID_PASSWORD: 'storage.share.link.invalid.password',\n\n // Plugin\n STORAGE_PLUGIN_NOT_FOUND: 'storage.plugin.not.found',\n STORAGE_PLUGIN_INITIALIZATION_FAILED: 'storage.plugin.initialization.failed',\n STORAGE_PLUGIN_EXECUTION_FAILED: 'storage.plugin.execution.failed',\n\n // VirusTotal Provider (Plugin)\n STORAGE_VIRUSTOTAL_BAD_REQUEST: 'storage.virustotal.bad_request',\n STORAGE_VIRUSTOTAL_AUTHENTICATION_REQUIRED: 'storage.virustotal.authentication_required',\n STORAGE_VIRUSTOTAL_WRONG_CREDENTIALS: 'storage.virustotal.wrong_credentials',\n STORAGE_VIRUSTOTAL_FILE_TOO_LARGE: 'storage.virustotal.file_too_large',\n STORAGE_VIRUSTOTAL_QUOTA_EXCEEDED: 'storage.virustotal.quota_exceeded',\n STORAGE_VIRUSTOTAL_ANALYSIS_NOT_FOUND: 'storage.virustotal.analysis_not_found',\n STORAGE_VIRUSTOTAL_SCAN_TIMEOUT: 'storage.virustotal.scan_timeout',\n STORAGE_VIRUSTOTAL_SCAN_FAILED: 'storage.virustotal.scan_failed',\n\n // CDN Provider Errors (Third-party services - cross-package)\n // Cloudflare CDN\n CLOUDFLARE_AUTHENTICATION_FAILED: 'cloudflare.authentication.failed',\n CLOUDFLARE_ZONE_NOT_FOUND: 'cloudflare.zone.not.found',\n CLOUDFLARE_PURGE_FAILED: 'cloudflare.purge.failed',\n CLOUDFLARE_RATE_LIMIT_EXCEEDED: 'cloudflare.rate.limit.exceeded',\n CLOUDFLARE_INVALID_URL: 'cloudflare.invalid.url',\n CLOUDFLARE_API_ERROR: 'cloudflare.api.error',\n\n // AWS CloudFront CDN\n CLOUDFRONT_AUTHENTICATION_FAILED: 'cloudfront.authentication.failed',\n CLOUDFRONT_DISTRIBUTION_NOT_FOUND: 'cloudfront.distribution.not.found',\n CLOUDFRONT_INVALIDATION_FAILED: 'cloudfront.invalidation.failed',\n CLOUDFRONT_QUOTA_EXCEEDED: 'cloudfront.quota.exceeded',\n CLOUDFRONT_INVALID_PATH: 'cloudfront.invalid.path',\n CLOUDFRONT_API_ERROR: 'cloudfront.api.error',\n\n // Fastly CDN\n FASTLY_AUTHENTICATION_FAILED: 'fastly.authentication.failed',\n FASTLY_SERVICE_NOT_FOUND: 'fastly.service.not.found',\n FASTLY_PURGE_FAILED: 'fastly.purge.failed',\n FASTLY_RATE_LIMIT_EXCEEDED: 'fastly.rate.limit.exceeded',\n FASTLY_INVALID_URL: 'fastly.invalid.url',\n FASTLY_API_ERROR: 'fastly.api.error',\n\n // Generic CDN Errors\n CDN_INVALIDATION_FAILED: 'cdn.invalidation.failed',\n CDN_CONFIGURATION_INVALID: 'cdn.configuration.invalid',\n CDN_PROVIDER_NOT_FOUND: 'cdn.provider.not.found',\n\n // Webhook Errors\n STORAGE_WEBHOOK_SIGNATURE_INVALID: 'storage.webhook.signature.invalid',\n STORAGE_WEBHOOK_PAYLOAD_INVALID: 'storage.webhook.payload.invalid',\n STORAGE_WEBHOOK_PROCESSING_FAILED: 'storage.webhook.processing.failed',\n STORAGE_WEBHOOK_TIMEOUT: 'storage.webhook.timeout',\n STORAGE_WEBHOOK_ADAPTER_NOT_FOUND: 'storage.webhook.adapter.not.found',\n STORAGE_WEBHOOK_DUPLICATE_DETECTED: 'storage.webhook.duplicate.detected',\n STORAGE_WEBHOOK_IDEMPOTENCY_ERROR: 'storage.webhook.idempotency.error',\n STORAGE_WEBHOOK_RATE_LIMIT_EXCEEDED: 'storage.webhook.rate.limit.exceeded',\n\n // Presigned URLs\n STORAGE_PRESIGNED_URL_GENERATION_FAILED: 'storage.presigned.url.generation.failed',\n STORAGE_PRESIGNED_URL_EXPIRED: 'storage.presigned.url.expired',\n STORAGE_PRESIGNED_URL_INVALID: 'storage.presigned.url.invalid',\n\n // Chunked Upload\n STORAGE_CHUNKED_UPLOAD_INIT_FAILED: 'storage.chunked.upload.init.failed',\n STORAGE_CHUNKED_UPLOAD_PART_FAILED: 'storage.chunked.upload.part.failed',\n STORAGE_CHUNKED_UPLOAD_COMPLETE_FAILED: 'storage.chunked.upload.complete.failed',\n STORAGE_CHUNKED_UPLOAD_ABORT_FAILED: 'storage.chunked.upload.abort.failed',\n STORAGE_CHUNKED_UPLOAD_NOT_FOUND: 'storage.chunked.upload.not.found',\n\n // CORS\n STORAGE_CORS_CONFIGURATION_INVALID: 'storage.cors.configuration.invalid',\n STORAGE_CORS_ORIGIN_NOT_ALLOWED: 'storage.cors.origin.not.allowed',\n\n // TTL\n STORAGE_TTL_EXPIRED: 'storage.ttl.expired',\n STORAGE_TTL_CLEANUP_FAILED: 'storage.ttl.cleanup.failed',\n\n // Audit\n STORAGE_AUDIT_LOG_FAILED: 'storage.audit.log.failed',\n\n // Timeout & Network\n STORAGE_TIMEOUT: 'storage.timeout',\n STORAGE_NETWORK_ERROR: 'storage.network.error',\n STORAGE_CONNECTION_LOST: 'storage.connection.lost',\n\n // Permission & Quota\n STORAGE_PERMISSION_DENIED: 'storage.permission.denied',\n STORAGE_QUOTA_EXCEEDED: 'storage.quota.exceeded',\n STORAGE_INSUFFICIENT_SPACE: 'storage.insufficient.space',\n\n // Feature Implementation\n STORAGE_FEATURE_NOT_IMPLEMENTED: 'storage.feature.not.implemented',\n\n // ===== Core Package Errors =====\n // Feature Flags\n CORE_FEATURE_FLAG_NOT_FOUND: 'core.feature_flag.not_found',\n CORE_FEATURE_FLAG_INVALID_CONFIG: 'core.feature_flag.invalid_config',\n CORE_FEATURE_FLAG_EVALUATION_FAILED: 'core.feature_flag.evaluation_failed',\n CORE_FEATURE_FLAG_PROVIDER_ERROR: 'core.feature_flag.provider_error',\n CORE_FEATURE_FLAG_CACHE_ERROR: 'core.feature_flag.cache_error',\n CORE_FEATURE_FLAG_CONTEXT_INVALID: 'core.feature_flag.context_invalid',\n CORE_FEATURE_FLAG_RULE_INVALID: 'core.feature_flag.rule_invalid',\n CORE_FEATURE_FLAG_TOGGLE_FAILED: 'core.feature_flag.toggle_failed',\n\n // Cache\n CORE_CACHE_INITIALIZATION_FAILED: 'core.cache.initialization_failed',\n CORE_CACHE_STRATEGY_NOT_FOUND: 'core.cache.strategy_not_found',\n CORE_CACHE_OPERATION_FAILED: 'core.cache.operation_failed',\n CORE_CACHE_INVALIDATION_FAILED: 'core.cache.invalidation_failed',\n CORE_CACHE_SERIALIZATION_FAILED: 'core.cache.serialization_failed',\n\n // API Client\n CORE_API_CLIENT_INITIALIZATION_FAILED: 'core.api_client.initialization_failed',\n CORE_API_CLIENT_REQUEST_FAILED: 'core.api_client.request_failed',\n CORE_API_CLIENT_TIMEOUT: 'core.api_client.timeout',\n CORE_API_CLIENT_INVALID_RESPONSE: 'core.api_client.invalid_response',\n CORE_API_CLIENT_AUTHENTICATION_FAILED: 'core.api_client.authentication_failed',\n\n // Database Service\n CORE_DATABASE_SERVICE_INITIALIZATION_FAILED: 'core.database_service.initialization_failed',\n CORE_DATABASE_SERVICE_CONNECTION_FAILED: 'core.database_service.connection_failed',\n CORE_DATABASE_SERVICE_QUERY_FAILED: 'core.database_service.query_failed',\n CORE_DATABASE_SERVICE_TRANSACTION_FAILED: 'core.database_service.transaction_failed',\n\n // Validation\n CORE_VALIDATION_FAILED: 'core.validation.failed',\n CORE_VALIDATION_SCHEMA_INVALID: 'core.validation.schema_invalid',\n CORE_VALIDATION_REQUIRED_FIELD_MISSING: 'core.validation.required_field_missing',\n\n // Hash Utilities\n CORE_HASH_GENERATION_FAILED: 'core.hash.generation_failed',\n CORE_HASH_VERIFICATION_FAILED: 'core.hash.verification_failed',\n\n // Engine\n CORE_ENGINE_INITIALIZATION_FAILED: 'core.engine.initialization_failed',\n CORE_ENGINE_EXECUTION_FAILED: 'core.engine.execution_failed',\n CORE_ENGINE_CONFIGURATION_INVALID: 'core.engine.configuration_invalid',\n\n // Provider\n CORE_PROVIDER_NOT_FOUND: 'core.provider.not_found',\n CORE_PROVIDER_INITIALIZATION_FAILED: 'core.provider.initialization_failed',\n CORE_PROVIDER_OPERATION_FAILED: 'core.provider.operation_failed',\n\n // Context\n CORE_CONTEXT_INVALID: 'core.context.invalid',\n CORE_CONTEXT_MISSING_REQUIRED_DATA: 'core.context.missing_required_data',\n\n // General Core\n CORE_INITIALIZATION_FAILED: 'core.initialization_failed',\n CORE_CONFIGURATION_INVALID: 'core.configuration_invalid',\n CORE_OPERATION_FAILED: 'core.operation_failed',\n CORE_UNKNOWN_ERROR: 'core.unknown_error',\n\n // ===== Errors Package Errors =====\n ERROR_SYSTEM_NOT_INITIALIZED: 'error.system.not.initialized',\n EVENT_FACTORY_NOT_REGISTERED: 'error.event.factory.not.registered',\n DATABASE_ERROR: 'error.database',\n\n // Global Error Handler\n UNCAUGHT_EXCEPTION: 'error.uncaught.exception',\n UNHANDLED_REJECTION: 'error.unhandled.rejection',\n RUNTIME_ERROR: 'error.runtime',\n\n // ===== Database Errors =====\n // Connection & Configuration\n DB_ACCESS_DENIED: 'db.access_denied',\n DB_CONFIG_REQUIRED: 'db.config_required',\n DB_CONNECT_FAILED: 'db.connect_failed',\n DB_DISCONNECT_FAILED: 'db.disconnect_failed',\n DB_INIT_FAILED: 'db.init_failed',\n\n // Query & Execution\n DB_QUERY_FAILED: 'db.query_failed',\n DB_BUILD_WHERE_FAILED: 'db.build_where_failed',\n DB_INVALID_SQL: 'db.invalid_sql',\n DB_TRANSACTION_FAILED: 'db.transaction_failed',\n DB_UNSUPPORTED_OPERATOR: 'db.unsupported_operator',\n\n // CRUD Operations\n DB_CREATE_FAILED: 'db.create_failed',\n DB_CREATION_FAILED: 'db.creation_failed',\n DB_FETCH_FAILED: 'db.fetch_failed',\n DB_FIND_FAILED: 'db.find_failed',\n DB_FIND_MANY_FAILED: 'db.find_many_failed',\n DB_FIND_BY_ID_FAILED: 'db.find_by_id_failed',\n DB_UPDATE_FAILED: 'db.update_failed',\n DB_UPDATE_NO_CHANGES: 'db.update_no_changes',\n DB_DELETE_FAILED: 'db.delete_failed',\n DB_INSERT_FAILED: 'db.insert_failed',\n DB_RECORD_NOT_FOUND: 'db.record_not_found',\n DB_EXISTS_FAILED: 'db.exists_failed',\n\n // Schema & Columns\n DB_COLUMN_NOT_EXISTS: 'db.column_not_exists',\n DB_TABLE_NOT_REGISTERED: 'db.table_not_registered',\n DB_TABLE_REGISTRATION_FAILED: 'db.table_registration_failed',\n DB_ID_COLUMN_NOT_REGISTERED: 'db.id_column_not_registered',\n DB_INVALID_COLUMN: 'db.invalid_column',\n DB_INVALID_TABLE_NAME: 'db.invalid_table_name',\n DB_GET_ID_COLUMN_FAILED: 'db.get_id_column_failed',\n DB_GET_TABLE_FAILED: 'db.get_table_failed',\n\n // Validation & Parameters\n DB_INVALID_PARAMETERS: 'db.invalid_parameters',\n DB_INVALID_PARAMS: 'db.invalid_params',\n DB_INVALID_FILTER: 'db.invalid_filter',\n DB_INVALID_ID: 'db.invalid_id',\n DB_INVALID_ENTITY: 'db.invalid_entity',\n DB_INVALID_UPDATE_PARAMS: 'db.invalid_update_params',\n DB_INVALID_FIELD_NAME: 'db.invalid_field_name',\n DB_INVALID_RESULT: 'db.invalid_result',\n DB_NO_UPDATE_FIELDS: 'db.no_update_fields',\n\n // Count & Data\n DB_COUNT_FAILED: 'db.count_failed',\n DB_COUNT_NO_RESULTS: 'db.count_no_results',\n DB_NO_DATA: 'db.no_data',\n\n // Multi-tenant Context\n DB_NO_TENANT_CONTEXT: 'db.no_tenant_context',\n DB_NO_TENANT_ID: 'db.no_tenant_id',\n DB_TENANT_VALIDATION_FAILED: 'db.tenant_validation_failed',\n\n // Backup & Restore\n DB_BACKUP_CLEANUP_FAILED: 'db.backup_cleanup_failed',\n DB_BACKUP_FILE_NOT_FOUND: 'db.backup_file_not_found',\n DB_LIST_BACKUPS_FAILED: 'db.list_backups_failed',\n DB_INVALID_BACKUP_INFO: 'db.invalid_backup_info',\n DB_RESTORE_FAILED: 'db.restore_failed',\n\n // Cache Operations\n DB_CACHE_DELETE_FAILED: 'db.cache_delete_failed',\n DB_CACHE_HEALTH_CHECK_FAILED: 'db.cache_health_check_failed',\n DB_CACHE_INVALIDATE_FAILED: 'db.cache_invalidate_failed',\n DB_CACHE_SET_FAILED: 'db.cache_set_failed',\n DB_CACHE_GET_FAILED: 'db.cache_get_failed',\n\n // File & Storage\n DB_INVALID_FILEPATH: 'db.invalid_filepath',\n DB_S3_DELETE_FAILED: 'db.s3_delete_failed',\n DB_S3_DOWNLOAD_FAILED: 'db.s3_download_failed',\n DB_S3_NOT_CONFIGURED: 'db.s3_not_configured',\n DB_S3_UPLOAD_FAILED: 'db.s3_upload_failed',\n\n // Misc\n DB_SCHEDULE_SETUP_FAILED: 'db.schedule_setup_failed',\n DB_DECRYPTION_FAILED: 'db.decryption_failed',\n DB_INVALID_SHELL_ARG: 'db.invalid_shell_arg',\n DB_INVALID_BETWEEN_OPERATOR: 'db.invalid_between_operator',\n DB_INVALID_IN_OPERATOR: 'db.invalid_in_operator',\n DB_INVALID_COUNT: 'db.invalid_count',\n\n // Connection & Network\n DB_CONNECTION_FAILED: 'db.connection_failed',\n DB_CONNECTION_ERROR: 'db.connection_error',\n DB_TIMEOUT: 'db.timeout',\n\n // Constraints & Integrity\n DB_CONSTRAINT_VIOLATION: 'db.constraint_violation',\n DB_DEADLOCK: 'db.deadlock',\n DB_DUPLICATE_ENTRY: 'db.duplicate_entry',\n\n // Entity Operations\n DB_ENTITY_NOT_FOUND: 'db.entity_not_found',\n\n // Migration & Schema\n DB_MIGRATION_FAILED: 'db.migration_failed',\n\n // Multi-Write Operations\n DB_MULTI_WRITE_FAILED: 'db.multi_write_failed',\n\n // General\n DB_UNKNOWN_ERROR: 'db.unknown_error',\n\n // ===== Payments Package Errors =====\n\n PAYMENT_TIMEOUT: 'payment.timeout',\n PAYMENT_NETWORK_ERROR: 'payment.network.error',\n\n // Refund\n PAYMENT_REFUND_FAILED: 'payment.refund.failed',\n PAYMENT_REFUND_NOT_FOUND: 'payment.refund.not.found',\n PAYMENT_REFUND_ALREADY_PROCESSED: 'payment.refund.already.processed',\n PAYMENT_REFUND_AMOUNT_INVALID: 'payment.refund.amount.invalid',\n PAYMENT_REFUND_VALIDATION_FAILED: 'payment.refund.validation.failed',\n PAYMENT_REFUND_TIMEOUT: 'payment.refund.timeout',\n PAYMENT_REFUND_NOT_ALLOWED: 'payment.refund.not.allowed',\n PAYMENT_REFUND_AUTHORIZATION_FAILED: 'payment.refund.authorization.failed',\n PAYMENT_REFUND_PROCESSING_FAILED: 'payment.refund.processing.failed',\n\n // Provider\n PAYMENT_PROVIDER_ERROR: 'payment.provider.error',\n PAYMENT_PROVIDER_UNAVAILABLE: 'payment.provider.unavailable',\n PAYMENT_PROVIDER_CONFIGURATION_INVALID: 'payment.provider.configuration.invalid',\n PAYMENT_PROVIDER_RESPONSE_INVALID: 'payment.provider.response.invalid',\n PAYMENT_PROVIDER_TIMEOUT: 'payment.provider.timeout',\n PAYMENT_PROVIDER_AUTH_FAILED: 'payment.provider.auth.failed',\n PAYMENT_PROVIDER_RATE_LIMIT: 'payment.provider.rate.limit', // for HTTP 429\n PAYMENT_PROVIDER_UNKNOWN: 'payment.provider.unknown',\n PAYMENT_CUSTOMER_CREATION_FAILED: 'payment.customer.creation.failed',\n\n // Payment method errors\n PAYMENT_METHOD_SAVE_FAILED: 'payment.method.save.failed',\n PAYMENT_METHOD_DELETE_FAILED: 'payment.method.delete.failed',\n\n // Subscription errors\n PAYMENT_SUBSCRIPTION_CREATE_FAILED: 'payment.subscription.create.failed',\n PAYMENT_SUBSCRIPTION_CANCEL_FAILED: 'payment.subscription.cancel.failed',\n\n // Payout errors\n PAYMENT_PAYOUT_FAILED: 'payment.payout.failed',\n\n // Transaction history errors\n PAYMENT_TRANSACTION_HISTORY_FETCH_FAILED: 'payment.transaction.history.fetch.failed',\n\n // Compliance\n PAYMENT_COMPLIANCE_VIOLATION: 'payment.compliance.violation',\n PAYMENT_COMPLIANCE_CHECK_FAILED: 'payment.compliance.check.failed',\n PAYMENT_COMPLIANCE_LIMIT_EXCEEDED: 'payment.compliance.limit.exceeded',\n PAYMENT_COMPLIANCE_POLICY_MISSING: 'payment.compliance.policy.missing',\n PAYMENT_COMPLIANCE_KYC_REQUIRED: 'payment.compliance.kyc.required',\n PAYMENT_COMPLIANCE_GEOGRAPHIC_RESTRICTION: 'payment.compliance.geographic.restriction',\n PAYMENT_COMPLIANCE_AML_CHECK_FAILED: 'payment.compliance.aml.check.failed',\n PAYMENT_COMPLIANCE_PSD2_STRONG_AUTH_REQUIRED: 'payment.compliance.psd2.strong.auth.required',\n PAYMENT_COMPLIANCE_GDPR_DATA_ACCESS: 'payment.compliance.gdpr.data.access',\n PAYMENT_COMPLIANCE_PCI_COMPLIANCE: 'payment.compliance.pci.compliance',\n PAYMENT_COMPLIANCE_LOCAL_BANKING_RESTRICTION: 'payment.compliance.local.banking.restriction',\n\n // Processing\n PAYMENT_PROCESSING_FAILED: 'payment.processing.failed',\n PAYMENT_PROCESSING_TIMEOUT: 'payment.processing.timeout',\n PAYMENT_PROCESSING_GATEWAY_ERROR: 'payment.processing.gateway.error',\n PAYMENT_PROCESSING_DUPLICATE: 'payment.processing.duplicate',\n PAYMENT_PROCESSING_UNEXPECTED_STATE: 'payment.processing.unexpected.state',\n\n // Security\n PAYMENT_SECURITY_VIOLATION: 'payment.security.violation',\n PAYMENT_SECURITY_SIGNATURE_INVALID: 'payment.security.signature.invalid',\n PAYMENT_SECURITY_ENCRYPTION_FAILED: 'payment.security.encryption.failed',\n PAYMENT_SECURITY_FRAUD_DETECTED: 'payment.security.fraud.detected',\n PAYMENT_SECURITY_TOKEN_INVALID: 'payment.security.token.invalid',\n PAYMENT_SECURITY_VELOCITY_LIMIT_EXCEEDED: 'payment.security.velocity.limit.exceeded',\n\n // Validation\n PAYMENT_VALIDATION_FAILED: 'payment.validation.failed',\n PAYMENT_VALIDATION_AMOUNT_INVALID: 'payment.validation.amount.invalid',\n PAYMENT_VALIDATION_CURRENCY_UNSUPPORTED: 'payment.validation.currency.unsupported',\n PAYMENT_VALIDATION_METADATA_INVALID: 'payment.validation.metadata.invalid',\n PAYMENT_VALIDATION_MISSING_REQUIRED_FIELD: 'payment.validation.field.required',\n\n // Webhook\n PAYMENT_WEBHOOK_SIGNATURE_INVALID: 'payment.webhook.signature.invalid',\n PAYMENT_WEBHOOK_PROCESSING_FAILED: 'payment.webhook.processing.failed',\n PAYMENT_WEBHOOK_VALIDATION_FAILED: 'payment.webhook.validation.failed',\n PAYMENT_WEBHOOK_EVENT_TYPE_UNSUPPORTED: 'payment.webhook.event.type.unsupported',\n PAYMENT_WEBHOOK_HANDLER_NOT_FOUND: 'payment.webhook.handler.not.found',\n\n // ===== Payment Adapter & Core Errors =====\n PAYMENT_ADAPTER_INIT_FAILED: 'payment.adapter.init.failed',\n PAYMENT_ADAPTER_SHUTDOWN_ERROR: 'payment.adapter.shutdown.error',\n PAYMENT_ADAPTER_HMAC_COMPUTATION_FAILED: 'payment.adapter.hmac.computation.failed',\n PAYMENT_ADAPTER_MISSING_PROVIDER: 'payment.adapter.missing.provider',\n PAYMENT_ADAPTER_MISSING_ENVIRONMENT: 'payment.adapter.missing.environment',\n PAYMENT_ADAPTER_MISSING_CREDENTIALS: 'payment.adapter.missing.credentials',\n PAYMENT_ADAPTER_MISSING_WEBHOOK_URL: 'payment.adapter.missing.webhook.url',\n PAYMENT_ADAPTER_MISSING_UNREGISTER_ENDPOINT: 'payment.adapter.missing.unregister.endpoint',\n PAYMENT_ADAPTER_UNSUPPORTED_OPERATION: 'payment.adapter.unsupported.operation',\n PAYMENT_ADAPTER_RESPONSE_MAPPING_FAILED: 'payment.adapter.response.mapping.failed',\n\n // Idempotency & State Management\n PAYMENT_IDEMPOTENCY_VIOLATION: 'payment.idempotency.violation',\n PAYMENT_IDEMPOTENCY_KEY_MISSING: 'payment.idempotency.key.missing',\n PAYMENT_IDEMPOTENCY_STORE_ERROR: 'payment.idempotency.store.error',\n\n // Routing & Strategy\n PAYMENT_ROUTING_FAILED: 'payment.routing.failed',\n PAYMENT_ROUTING_CONFIGURATION_INVALID: 'payment.routing.configuration.invalid',\n PAYMENT_ROUTING_PROVIDER_UNAVAILABLE: 'payment.routing.provider.unavailable',\n PAYMENT_ROUTING_RETRY_EXCEEDED: 'payment.routing.retry.exceeded',\n\n // General Payment Framework Errors\n PAYMENT_SYSTEM_NOT_INITIALIZED: 'payment.system.not.initialized',\n PAYMENT_CONTEXT_OPERATION_FAILED: 'payment.context.operation.failed',\n PAYMENT_INTERNAL_ERROR: 'payment.internal.error',\n PAYMENT_UNKNOWN_ERROR: 'payment.unknown.error',\n\n /**\n * Thrown when an event could not be emitted due to internal state or creation errors.\n * Typically non-retryable, indicates a logic or validation fault.\n */\n PAYMENT_EVENT_EMIT_FAILED: 'PAYMENT_EVENT_EMIT_FAILED',\n PAYMENT_EVENT_INVALID_TYPE: 'PAYMENT_EVENT_INVALID_TYPE',\n PAYMENT_EVENT_CREATION_FAILED: 'PAYMENT_EVENT_CREATION_FAILED',\n PAYMENT_EVENT_HANDLER_TIMEOUT: 'PAYMENT_EVENT_HANDLER_TIMEOUT',\n PAYMENT_EVENT_HANDLER_INVALID_RESULT: 'PAYMENT_EVENT_HANDLER_INVALID_RESULT',\n PAYMENT_EVENT_LIFECYCLE_FAILURE: 'PAYMENT_EVENT_LIFECYCLE_FAILURE',\n\n // Unsupported feature errors (Payment Gateway)\n SAVE_PAYMENT_METHOD_UNSUPPORTED: 'payment.method.save.unsupported',\n DELETE_PAYMENT_METHOD_UNSUPPORTED: 'payment.method.delete.unsupported',\n GET_USER_PAYMENT_METHODS_UNSUPPORTED: 'payment.method.get.unsupported',\n CREATE_SUBSCRIPTION_UNSUPPORTED: 'payment.subscription.create.unsupported',\n CANCEL_SUBSCRIPTION_UNSUPPORTED: 'payment.subscription.cancel.unsupported',\n PROCESS_PAYOUT_UNSUPPORTED: 'payment.payout.unsupported',\n GET_TRANSACTION_HISTORY_UNSUPPORTED: 'payment.transaction.history.unsupported',\n\n WITHDRAWAL_UNSUPPORTED: 'payment.withdrawal.unsupported',\n WITHDRAWAL_CREATE_UNSUPPORTED: 'payment.withdrawal.create.unsupported',\n WITHDRAWAL_PROCESS_UNSUPPORTED: 'payment.withdrawal.process.unsupported',\n WITHDRAWAL_STATUS_FETCH_UNSUPPORTED: 'payment.withdrawal.status.fetch.unsupported',\n WITHDRAWAL_CANCEL_UNSUPPORTED: 'payment.withdrawal.cancel.unsupported',\n\n WITHDRAWAL_INSUFFICIENT_BALANCE: 'payment.withdrawal.insufficient.balance',\n WITHDRAWAL_INVALID_ACCOUNT: 'payment.withdrawal.invalid.account',\n WITHDRAWAL_KYC_REQUIRED: 'payment.withdrawal.kyc.required',\n WITHDRAWAL_LIMIT_EXCEEDED: 'payment.withdrawal.limit.exceeded',\n WITHDRAWAL_PROVIDER_ERROR: 'payment.withdrawal.provider.error',\n WITHDRAWAL_FAILED: 'payment.withdrawal.failed',\n WITHDRAWAL_TIMEOUT: 'payment.withdrawal.timeout',\n\n // Product\n PRODUCT_CREATE_UNSUPPORTED: 'payment.product.create.unsupported',\n PRODUCT_UPDATE_UNSUPPORTED: 'payment.product.update.unsupported',\n PRODUCT_FETCH_UNSUPPORTED: 'payment.product.fetch.unsupported',\n PRODUCT_DEACTIVATE_UNSUPPORTED: 'payment.product.deactivate.unsupported',\n\n PRODUCT_NOT_FOUND: 'payment.product.not_found',\n PRODUCT_INVALID_DATA: 'payment.product.invalid.data',\n PRODUCT_PROVIDER_ERROR: 'payment.product.provider.error',\n PRODUCT_ALREADY_INACTIVE: 'payment.product.already.inactive',\n PRODUCT_SYNC_FAILED: 'payment.product.sync.failed',\n\n // Pricing\n PRICING_CREATE_UNSUPPORTED: 'payment.pricing.create.unsupported',\n PRICING_UPDATE_UNSUPPORTED: 'payment.pricing.update.unsupported',\n PRICING_DEACTIVATE_UNSUPPORTED: 'payment.pricing.deactivate.unsupported',\n\n PRICING_NOT_FOUND: 'payment.pricing.not_found',\n PRICING_INVALID_AMOUNT: 'payment.pricing.invalid.amount',\n PRICING_INVALID_CURRENCY: 'payment.pricing.invalid.currency',\n PRICING_PROVIDER_ERROR: 'payment.pricing.provider.error',\n PRICING_ALREADY_INACTIVE: 'payment.pricing.already.inactive',\n PRICING_SYNC_FAILED: 'payment.pricing.sync.failed',\n PRICING_REQUIRES_NEW_VERSION: 'payment.pricing.requires.new.version',\n\n // Authentication\n\n INVALID_CREDENTIALS: 'AUTH_INVALID_CREDENTIALS',\n TOKEN_EXPIRED: 'AUTH_TOKEN_EXPIRED',\n TOKEN_INVALID: 'AUTH_TOKEN_INVALID',\n TOKEN_REVOKED: 'AUTH_TOKEN_REVOKED',\n SESSION_EXPIRED: 'AUTH_SESSION_EXPIRED',\n MFA_REQUIRED: 'AUTH_MFA_REQUIRED',\n MFA_INVALID: 'AUTH_MFA_INVALID',\n INSUFFICIENT_PERMISSIONS: 'AUTH_INSUFFICIENT_PERMISSIONS',\n ROLE_REQUIRED: 'AUTH_ROLE_REQUIRED',\n WALLET_SIGNATURE_INVALID: 'AUTH_WALLET_SIGNATURE_INVALID',\n NONCE_EXPIRED: 'AUTH_NONCE_EXPIRED',\n NONCE_ALREADY_USED: 'AUTH_NONCE_ALREADY_USED',\n ACCOUNT_LOCKED: 'AUTH_ACCOUNT_LOCKED',\n ACCOUNT_SUSPENDED: 'AUTH_ACCOUNT_SUSPENDED',\n} as const;\n\n/**\n * Type for all error code values\n */\nexport type ErrorCodeValue = (typeof ERROR_CODES)[keyof typeof ERROR_CODES];\n\n// ===== Package-Specific Error Code Subsets =====\n// These are convenience exports for backwards compatibility and easier imports\n\n/**\n * API-specific error codes\n * Subset of ERROR_CODES for @plyaz/api package\n */\nexport const API_ERROR_CODES = {\n CLIENT_INITIALIZATION_FAILED: ERROR_CODES.CLIENT_INITIALIZATION_FAILED,\n CLIENT_INVALID_CONFIG: ERROR_CODES.CLIENT_INVALID_CONFIG,\n CLIENT_MISSING_BASE_URL: ERROR_CODES.CLIENT_MISSING_BASE_URL,\n CLIENT_CANCELLED: ERROR_CODES.CLIENT_CANCELLED,\n CONFIG_VALIDATION_FAILED: ERROR_CODES.CONFIG_VALIDATION_FAILED,\n HEADER_PROCESSING_FAILED: ERROR_CODES.HEADER_PROCESSING_FAILED,\n NETWORK_OVERRIDE_FAILED: ERROR_CODES.NETWORK_OVERRIDE_FAILED,\n REQUEST_TIMEOUT: ERROR_CODES.REQUEST_TIMEOUT,\n REQUEST_ABORTED: ERROR_CODES.REQUEST_ABORTED,\n REQUEST_INVALID_PARAMS: ERROR_CODES.REQUEST_INVALID_PARAMS,\n REQUEST_PREPARATION_FAILED: ERROR_CODES.REQUEST_PREPARATION_FAILED,\n RESPONSE_INVALID_FORMAT: ERROR_CODES.RESPONSE_INVALID_FORMAT,\n RESPONSE_PARSING_FAILED: ERROR_CODES.RESPONSE_PARSING_FAILED,\n AUTH_UNAUTHORIZED: ERROR_CODES.AUTH_UNAUTHORIZED,\n AUTH_FORBIDDEN: ERROR_CODES.AUTH_FORBIDDEN,\n AUTH_TOKEN_EXPIRED: ERROR_CODES.TOKEN_EXPIRED,\n AUTH_INVALID_CREDENTIALS: ERROR_CODES.INVALID_CREDENTIALS,\n RATE_LIMIT_EXCEEDED: ERROR_CODES.RATE_LIMIT_EXCEEDED,\n RESOURCE_NOT_FOUND: ERROR_CODES.RESOURCE_NOT_FOUND,\n RESOURCE_CONFLICT: ERROR_CODES.RESOURCE_CONFLICT,\n VALIDATION_FAILED: ERROR_CODES.API_VALIDATION_FAILED,\n INVALID_INPUT: ERROR_CODES.API_INVALID_INPUT,\n VALIDATION_ERROR: ERROR_CODES.VALIDATION_ERROR,\n REQUIRED_FIELD_MISSING: ERROR_CODES.REQUIRED_FIELD_MISSING,\n INVALID_FORMAT: ERROR_CODES.INVALID_FORMAT,\n VALIDATION_INVALID_FORMAT: ERROR_CODES.VALIDATION_INVALID_FORMAT,\n STRING_TOO_SHORT: ERROR_CODES.STRING_TOO_SHORT,\n STRING_TOO_LONG: ERROR_CODES.STRING_TOO_LONG,\n NETWORK_ERROR: ERROR_CODES.NETWORK_ERROR,\n CONNECTION_FAILED: ERROR_CODES.CONNECTION_FAILED,\n NETWORK_CONNECTION_FAILED: ERROR_CODES.NETWORK_CONNECTION_FAILED,\n NETWORK_OFFLINE: ERROR_CODES.NETWORK_OFFLINE,\n NETWORK_DNS_FAILED: ERROR_CODES.NETWORK_DNS_FAILED,\n NETWORK_TIMEOUT: ERROR_CODES.NETWORK_TIMEOUT,\n NETWORK_CONFIGURATION_INVALID: ERROR_CODES.NETWORK_CONFIGURATION_INVALID,\n SERVER_ERROR: ERROR_CODES.SERVER_ERROR,\n INTERNAL_SERVER_ERROR: ERROR_CODES.INTERNAL_SERVER_ERROR,\n SERVICE_UNAVAILABLE: ERROR_CODES.SERVICE_UNAVAILABLE,\n CACHE_READ_FAILED: ERROR_CODES.CACHE_READ_FAILED,\n CACHE_WRITE_FAILED: ERROR_CODES.CACHE_WRITE_FAILED,\n CACHE_INVALIDATION_FAILED: ERROR_CODES.CACHE_INVALIDATION_FAILED,\n CACHE_STORAGE_FAILED: ERROR_CODES.CACHE_STORAGE_FAILED,\n CACHE_RETRIEVAL_FAILED: ERROR_CODES.CACHE_RETRIEVAL_FAILED,\n RETRY_LIMIT_EXCEEDED: ERROR_CODES.RETRY_LIMIT_EXCEEDED,\n RETRY_FAILED: ERROR_CODES.RETRY_FAILED,\n RETRY_EXHAUSTED: ERROR_CODES.RETRY_EXHAUSTED,\n RETRY_STRATEGY_INVALID: ERROR_CODES.RETRY_STRATEGY_INVALID,\n STRATEGY_INVALID: ERROR_CODES.STRATEGY_INVALID,\n STRATEGY_CONFLICT: ERROR_CODES.STRATEGY_CONFLICT,\n STRATEGY_EXECUTION_FAILED: ERROR_CODES.STRATEGY_EXECUTION_FAILED,\n HEADERS_ENRICHMENT_FAILED: ERROR_CODES.HEADERS_ENRICHMENT_FAILED,\n HEADERS_VALIDATION_FAILED: ERROR_CODES.HEADERS_VALIDATION_FAILED,\n HEADERS_MERGE_CONFLICT: ERROR_CODES.HEADERS_MERGE_CONFLICT,\n REGION_DETECTION_FAILED: ERROR_CODES.REGION_DETECTION_FAILED,\n REGIONAL_PRESET_NOT_FOUND: ERROR_CODES.REGIONAL_PRESET_NOT_FOUND,\n EXTERNAL_SERVICE_ERROR: ERROR_CODES.EXTERNAL_SERVICE_ERROR,\n NETWORK_PRESET_NOT_FOUND: ERROR_CODES.NETWORK_PRESET_NOT_FOUND,\n TIMEOUT: ERROR_CODES.TIMEOUT,\n DEBUG_TRACKING_FAILED: ERROR_CODES.DEBUG_TRACKING_FAILED,\n DEBUG_OVERRIDE_FAILED: ERROR_CODES.DEBUG_OVERRIDE_FAILED,\n DEBUG_CONFLICT_DETECTED: ERROR_CODES.DEBUG_CONFLICT_DETECTED,\n POLLING_CANCELLED: ERROR_CODES.POLLING_CANCELLED,\n POLLING_TIMEOUT: ERROR_CODES.POLLING_TIMEOUT,\n POLLING_INVALID_CONFIG: ERROR_CODES.POLLING_INVALID_CONFIG,\n PUBSUB_SUBSCRIPTION_FAILED: ERROR_CODES.PUBSUB_SUBSCRIPTION_FAILED,\n PUBSUB_PUBLICATION_FAILED: ERROR_CODES.PUBSUB_PUBLICATION_FAILED,\n PUBSUB_INVALID_TOPIC: ERROR_CODES.PUBSUB_INVALID_TOPIC,\n PUBSUB_CHANNEL_ERROR: ERROR_CODES.PUBSUB_CHANNEL_ERROR,\n REVALIDATION_FAILED: ERROR_CODES.REVALIDATION_FAILED,\n REVALIDATION_IN_PROGRESS: ERROR_CODES.REVALIDATION_IN_PROGRESS,\n ENDPOINT_BUILD_FAILED: ERROR_CODES.ENDPOINT_BUILD_FAILED,\n ENDPOINT_NOT_FOUND: ERROR_CODES.ENDPOINT_NOT_FOUND,\n ENDPOINT_INVALID_CONFIG: ERROR_CODES.ENDPOINT_INVALID_CONFIG,\n EVENT_HANDLER_FAILED: ERROR_CODES.EVENT_HANDLER_FAILED,\n EVENT_EMISSION_FAILED: ERROR_CODES.EVENT_EMISSION_FAILED,\n MONITORING_FAILED: ERROR_CODES.MONITORING_FAILED,\n CONTEXT_OPERATION_FAILED: ERROR_CODES.CONTEXT_OPERATION_FAILED,\n CLIENT_ERROR: ERROR_CODES.CLIENT_ERROR,\n UNKNOWN_ERROR: ERROR_CODES.UNKNOWN_ERROR,\n\n // CDN Provider Errors (Third-party services)\n // Cloudflare\n CLOUDFLARE_AUTHENTICATION_FAILED: ERROR_CODES.CLOUDFLARE_AUTHENTICATION_FAILED,\n CLOUDFLARE_ZONE_NOT_FOUND: ERROR_CODES.CLOUDFLARE_ZONE_NOT_FOUND,\n CLOUDFLARE_PURGE_FAILED: ERROR_CODES.CLOUDFLARE_PURGE_FAILED,\n CLOUDFLARE_RATE_LIMIT_EXCEEDED: ERROR_CODES.CLOUDFLARE_RATE_LIMIT_EXCEEDED,\n CLOUDFLARE_INVALID_URL: ERROR_CODES.CLOUDFLARE_INVALID_URL,\n CLOUDFLARE_API_ERROR: ERROR_CODES.CLOUDFLARE_API_ERROR,\n\n // CloudFront\n CLOUDFRONT_AUTHENTICATION_FAILED: ERROR_CODES.CLOUDFRONT_AUTHENTICATION_FAILED,\n CLOUDFRONT_DISTRIBUTION_NOT_FOUND: ERROR_CODES.CLOUDFRONT_DISTRIBUTION_NOT_FOUND,\n CLOUDFRONT_INVALIDATION_FAILED: ERROR_CODES.CLOUDFRONT_INVALIDATION_FAILED,\n CLOUDFRONT_QUOTA_EXCEEDED: ERROR_CODES.CLOUDFRONT_QUOTA_EXCEEDED,\n CLOUDFRONT_INVALID_PATH: ERROR_CODES.CLOUDFRONT_INVALID_PATH,\n CLOUDFRONT_API_ERROR: ERROR_CODES.CLOUDFRONT_API_ERROR,\n\n // Fastly\n FASTLY_AUTHENTICATION_FAILED: ERROR_CODES.FASTLY_AUTHENTICATION_FAILED,\n FASTLY_SERVICE_NOT_FOUND: ERROR_CODES.FASTLY_SERVICE_NOT_FOUND,\n FASTLY_PURGE_FAILED: ERROR_CODES.FASTLY_PURGE_FAILED,\n FASTLY_RATE_LIMIT_EXCEEDED: ERROR_CODES.FASTLY_RATE_LIMIT_EXCEEDED,\n FASTLY_INVALID_URL: ERROR_CODES.FASTLY_INVALID_URL,\n FASTLY_API_ERROR: ERROR_CODES.FASTLY_API_ERROR,\n\n // Generic CDN\n CDN_INVALIDATION_FAILED: ERROR_CODES.CDN_INVALIDATION_FAILED,\n CDN_CONFIGURATION_INVALID: ERROR_CODES.CDN_CONFIGURATION_INVALID,\n CDN_PROVIDER_NOT_FOUND: ERROR_CODES.CDN_PROVIDER_NOT_FOUND,\n} as const;\n\n/**\n * Notification-specific error codes\n * Subset of ERROR_CODES for @plyaz/notifications package\n */\nexport const NOTIFICATION_ERROR_CODES = {\n PROVIDER_SEND_FAILED: ERROR_CODES.NOTIFICATION_PROVIDER_SEND_FAILED,\n PROVIDER_CONFIGURATION_INVALID: ERROR_CODES.NOTIFICATION_PROVIDER_CONFIGURATION_INVALID,\n PROVIDER_RATE_LIMIT: ERROR_CODES.NOTIFICATION_PROVIDER_RATE_LIMIT,\n PROVIDER_AUTH_FAILED: ERROR_CODES.NOTIFICATION_PROVIDER_AUTH_FAILED,\n PROVIDER_TIMEOUT: ERROR_CODES.NOTIFICATION_PROVIDER_TIMEOUT,\n PROVIDER_UNAVAILABLE: ERROR_CODES.NOTIFICATION_PROVIDER_UNAVAILABLE,\n PROVIDER_FEATURE_NOT_SUPPORTED: ERROR_CODES.NOTIFICATION_PROVIDER_FEATURE_NOT_SUPPORTED,\n ALL_PROVIDERS_FAILED: ERROR_CODES.NOTIFICATION_ALL_PROVIDERS_FAILED,\n INVALID_INPUT: ERROR_CODES.NOTIFICATION_INVALID_INPUT,\n INVALID_RECIPIENT: ERROR_CODES.NOTIFICATION_INVALID_RECIPIENT,\n INVALID_TEMPLATE: ERROR_CODES.NOTIFICATION_INVALID_TEMPLATE,\n INVALID_PAYLOAD: ERROR_CODES.NOTIFICATION_INVALID_PAYLOAD,\n MISSING_REQUIRED_FIELD: ERROR_CODES.NOTIFICATION_MISSING_REQUIRED_FIELD,\n VALIDATION_FAILED: ERROR_CODES.NOTIFICATION_VALIDATION_FAILED,\n USER_OPTED_OUT: ERROR_CODES.NOTIFICATION_USER_OPTED_OUT,\n QUEUE_FULL: ERROR_CODES.NOTIFICATION_QUEUE_FULL,\n QUEUE_PROCESSING_FAILED: ERROR_CODES.NOTIFICATION_QUEUE_PROCESSING_FAILED,\n WEBHOOK_SIGNATURE_INVALID: ERROR_CODES.NOTIFICATION_WEBHOOK_SIGNATURE_INVALID,\n WEBHOOK_VALIDATION_FAILED: ERROR_CODES.NOTIFICATION_WEBHOOK_VALIDATION_FAILED,\n WEBHOOK_PROCESSING_FAILED: ERROR_CODES.NOTIFICATION_WEBHOOK_PROCESSING_FAILED,\n TEMPLATE_NOT_FOUND: ERROR_CODES.NOTIFICATION_TEMPLATE_NOT_FOUND,\n TEMPLATE_RENDER_FAILED: ERROR_CODES.NOTIFICATION_TEMPLATE_RENDER_FAILED,\n UNKNOWN_ERROR: ERROR_CODES.NOTIFICATION_UNKNOWN_ERROR,\n INITIALIZATION_FAILED: ERROR_CODES.NOTIFICATION_INITIALIZATION_FAILED,\n} as const;\n\n/**\n * Storage-specific error codes\n * Subset of ERROR_CODES for @plyaz/storage package\n */\nexport const STORAGE_ERROR_CODES = {\n // General\n UNKNOWN_ERROR: ERROR_CODES.STORAGE_UNKNOWN_ERROR,\n INITIALIZATION_FAILED: ERROR_CODES.STORAGE_INITIALIZATION_FAILED,\n\n // Adapter\n ADAPTER_NOT_FOUND: ERROR_CODES.STORAGE_ADAPTER_NOT_FOUND,\n ADAPTER_INITIALIZATION_FAILED: ERROR_CODES.STORAGE_ADAPTER_INITIALIZATION_FAILED,\n ADAPTER_CONFIGURATION_INVALID: ERROR_CODES.STORAGE_ADAPTER_CONFIGURATION_INVALID,\n ADAPTER_ALREADY_REGISTERED: ERROR_CODES.STORAGE_ADAPTER_ALREADY_REGISTERED,\n ADAPTER_CONNECTION_FAILED: ERROR_CODES.STORAGE_ADAPTER_CONNECTION_FAILED,\n ADAPTER_AUTHENTICATION_FAILED: ERROR_CODES.STORAGE_ADAPTER_AUTHENTICATION_FAILED,\n ADAPTER_OPERATION_FAILED: ERROR_CODES.STORAGE_ADAPTER_OPERATION_FAILED,\n ADAPTER_HEALTH_CHECK_FAILED: ERROR_CODES.STORAGE_ADAPTER_HEALTH_CHECK_FAILED,\n ADAPTER_UNAVAILABLE: ERROR_CODES.STORAGE_ADAPTER_UNAVAILABLE,\n ADAPTER_TIMEOUT: ERROR_CODES.STORAGE_ADAPTER_TIMEOUT,\n ADAPTER_RATE_LIMIT: ERROR_CODES.STORAGE_ADAPTER_RATE_LIMIT,\n ADAPTER_QUOTA_EXCEEDED: ERROR_CODES.STORAGE_ADAPTER_QUOTA_EXCEEDED,\n ADAPTER_UNSUPPORTED_OPERATION: ERROR_CODES.STORAGE_ADAPTER_UNSUPPORTED_OPERATION,\n ADAPTER_FEATURE_NOT_SUPPORTED: ERROR_CODES.STORAGE_ADAPTER_FEATURE_NOT_SUPPORTED,\n NO_HEALTHY_ADAPTERS: ERROR_CODES.STORAGE_NO_HEALTHY_ADAPTERS,\n ALL_ADAPTERS_FAILED: ERROR_CODES.STORAGE_ALL_ADAPTERS_FAILED,\n\n // File Validation\n FILE_TOO_LARGE: ERROR_CODES.STORAGE_FILE_TOO_LARGE,\n FILE_TOO_SMALL: ERROR_CODES.STORAGE_FILE_TOO_SMALL,\n FILE_SIZE_INVALID: ERROR_CODES.STORAGE_FILE_SIZE_INVALID,\n FILE_TYPE_NOT_ALLOWED: ERROR_CODES.STORAGE_FILE_TYPE_NOT_ALLOWED,\n INVALID_MIME_TYPE: ERROR_CODES.STORAGE_INVALID_MIME_TYPE,\n INVALID_FILE_EXTENSION: ERROR_CODES.STORAGE_INVALID_FILE_EXTENSION,\n FILE_EXTENSION_INVALID: ERROR_CODES.STORAGE_FILE_EXTENSION_INVALID,\n FILE_EXTENSION_MISMATCH: ERROR_CODES.STORAGE_FILE_EXTENSION_MISMATCH,\n EXECUTABLE_NOT_ALLOWED: ERROR_CODES.STORAGE_EXECUTABLE_NOT_ALLOWED,\n VALIDATION_FAILED: ERROR_CODES.STORAGE_VALIDATION_FAILED,\n INVALID_FILE_CONTENT: ERROR_CODES.STORAGE_INVALID_FILE_CONTENT,\n\n // Security\n SECURITY_VIRUS_DETECTED: ERROR_CODES.STORAGE_SECURITY_VIRUS_DETECTED,\n SECURITY_SCAN_FAILED: ERROR_CODES.STORAGE_SECURITY_SCAN_FAILED,\n SECURITY_ACCESS_DENIED: ERROR_CODES.STORAGE_SECURITY_ACCESS_DENIED,\n SECURITY_ENCRYPTION_FAILED: ERROR_CODES.STORAGE_SECURITY_ENCRYPTION_FAILED,\n\n // File Operations\n FILE_UPLOAD_FAILED: ERROR_CODES.STORAGE_FILE_UPLOAD_FAILED,\n FILE_DOWNLOAD_FAILED: ERROR_CODES.STORAGE_FILE_DOWNLOAD_FAILED,\n FILE_DELETE_FAILED: ERROR_CODES.STORAGE_FILE_DELETE_FAILED,\n STORAGE_FILE_UPDATE_FAILED: ERROR_CODES.STORAGE_FILE_UPDATE_FAILED,\n FILE_NOT_FOUND: ERROR_CODES.STORAGE_FILE_NOT_FOUND,\n FILE_ALREADY_EXISTS: ERROR_CODES.STORAGE_FILE_ALREADY_EXISTS,\n FILE_MOVE_FAILED: ERROR_CODES.STORAGE_FILE_MOVE_FAILED,\n FILE_COPY_FAILED: ERROR_CODES.STORAGE_FILE_COPY_FAILED,\n FILE_READ_FAILED: ERROR_CODES.STORAGE_FILE_READ_FAILED,\n FILE_WRITE_FAILED: ERROR_CODES.STORAGE_FILE_WRITE_FAILED,\n FILE_CORRUPTED: ERROR_CODES.STORAGE_FILE_CORRUPTED,\n INVALID_OPERATION: ERROR_CODES.STORAGE_INVALID_OPERATION,\n\n // Metadata\n METADATA_EXTRACTION_FAILED: ERROR_CODES.STORAGE_METADATA_EXTRACTION_FAILED,\n METADATA_INVALID: ERROR_CODES.STORAGE_METADATA_INVALID,\n METADATA_UPDATE_FAILED: ERROR_CODES.STORAGE_METADATA_UPDATE_FAILED,\n\n // Media Processing\n MEDIA_PROCESSING_FAILED: ERROR_CODES.STORAGE_MEDIA_PROCESSING_FAILED,\n MEDIA_RESIZE_FAILED: ERROR_CODES.STORAGE_MEDIA_RESIZE_FAILED,\n MEDIA_FORMAT_UNSUPPORTED: ERROR_CODES.STORAGE_MEDIA_FORMAT_UNSUPPORTED,\n MEDIA_TRANSCODE_FAILED: ERROR_CODES.STORAGE_MEDIA_TRANSCODE_FAILED,\n MEDIA_THUMBNAIL_FAILED: ERROR_CODES.STORAGE_MEDIA_THUMBNAIL_FAILED,\n MEDIA_INVALID_DIMENSIONS: ERROR_CODES.STORAGE_MEDIA_INVALID_DIMENSIONS,\n\n // Template & PDF\n TEMPLATE_NOT_FOUND: ERROR_CODES.STORAGE_TEMPLATE_NOT_FOUND,\n TEMPLATE_RENDER_FAILED: ERROR_CODES.STORAGE_TEMPLATE_RENDER_FAILED,\n PDF_GENERATION_FAILED: ERROR_CODES.STORAGE_PDF_GENERATION_FAILED,\n PDF_RENDERING_TIMEOUT: ERROR_CODES.STORAGE_PDF_RENDERING_TIMEOUT,\n\n // Queue\n QUEUE_FULL: ERROR_CODES.STORAGE_QUEUE_FULL,\n QUEUE_PROCESSING_FAILED: ERROR_CODES.STORAGE_QUEUE_PROCESSING_FAILED,\n QUEUE_ITEM_NOT_FOUND: ERROR_CODES.STORAGE_QUEUE_ITEM_NOT_FOUND,\n\n // Compliance\n COMPLIANCE_VIOLATION: ERROR_CODES.STORAGE_COMPLIANCE_VIOLATION,\n COMPLIANCE_RETENTION_VIOLATION: ERROR_CODES.STORAGE_COMPLIANCE_RETENTION_VIOLATION,\n COMPLIANCE_RETENTION_EXPIRED: ERROR_CODES.STORAGE_COMPLIANCE_RETENTION_EXPIRED,\n COMPLIANCE_IMMUTABLE_FILE: ERROR_CODES.STORAGE_COMPLIANCE_IMMUTABLE_FILE,\n COMPLIANCE_POLICY_NOT_FOUND: ERROR_CODES.STORAGE_COMPLIANCE_POLICY_NOT_FOUND,\n COMPLIANCE_SOFT_DELETE_REQUIRED: ERROR_CODES.STORAGE_COMPLIANCE_SOFT_DELETE_REQUIRED,\n COMPLIANCE_GRACE_PERIOD_ACTIVE: ERROR_CODES.STORAGE_COMPLIANCE_GRACE_PERIOD_ACTIVE,\n COMPLIANCE_DEFERRED_DELETION: ERROR_CODES.STORAGE_COMPLIANCE_DEFERRED_DELETION,\n COMPLIANCE_PATTERN_PROTECTED: ERROR_CODES.STORAGE_COMPLIANCE_PATTERN_PROTECTED,\n\n // Share Links\n SHARE_LINK_NOT_FOUND: ERROR_CODES.STORAGE_SHARE_LINK_NOT_FOUND,\n SHARE_LINK_EXPIRED: ERROR_CODES.STORAGE_SHARE_LINK_EXPIRED,\n SHARE_LINK_MAX_DOWNLOADS: ERROR_CODES.STORAGE_SHARE_LINK_MAX_DOWNLOADS,\n SHARE_LINK_INVALID_PASSWORD: ERROR_CODES.STORAGE_SHARE_LINK_INVALID_PASSWORD,\n\n // Plugin\n PLUGIN_NOT_FOUND: ERROR_CODES.STORAGE_PLUGIN_NOT_FOUND,\n PLUGIN_INITIALIZATION_FAILED: ERROR_CODES.STORAGE_PLUGIN_INITIALIZATION_FAILED,\n PLUGIN_EXECUTION_FAILED: ERROR_CODES.STORAGE_PLUGIN_EXECUTION_FAILED,\n\n // VirusTotal Provider (Plugin)\n VIRUSTOTAL_BAD_REQUEST: ERROR_CODES.STORAGE_VIRUSTOTAL_BAD_REQUEST,\n VIRUSTOTAL_AUTHENTICATION_REQUIRED: ERROR_CODES.STORAGE_VIRUSTOTAL_AUTHENTICATION_REQUIRED,\n VIRUSTOTAL_WRONG_CREDENTIALS: ERROR_CODES.STORAGE_VIRUSTOTAL_WRONG_CREDENTIALS,\n VIRUSTOTAL_FILE_TOO_LARGE: ERROR_CODES.STORAGE_VIRUSTOTAL_FILE_TOO_LARGE,\n VIRUSTOTAL_QUOTA_EXCEEDED: ERROR_CODES.STORAGE_VIRUSTOTAL_QUOTA_EXCEEDED,\n VIRUSTOTAL_ANALYSIS_NOT_FOUND: ERROR_CODES.STORAGE_VIRUSTOTAL_ANALYSIS_NOT_FOUND,\n VIRUSTOTAL_SCAN_TIMEOUT: ERROR_CODES.STORAGE_VIRUSTOTAL_SCAN_TIMEOUT,\n VIRUSTOTAL_SCAN_FAILED: ERROR_CODES.STORAGE_VIRUSTOTAL_SCAN_FAILED,\n\n // CDN Providers (Plugins) - Reference cross-package CDN errors\n // Cloudflare CDN\n CLOUDFLARE_AUTHENTICATION_FAILED: ERROR_CODES.CLOUDFLARE_AUTHENTICATION_FAILED,\n CLOUDFLARE_ZONE_NOT_FOUND: ERROR_CODES.CLOUDFLARE_ZONE_NOT_FOUND,\n CLOUDFLARE_PURGE_FAILED: ERROR_CODES.CLOUDFLARE_PURGE_FAILED,\n CLOUDFLARE_RATE_LIMIT_EXCEEDED: ERROR_CODES.CLOUDFLARE_RATE_LIMIT_EXCEEDED,\n CLOUDFLARE_INVALID_URL: ERROR_CODES.CLOUDFLARE_INVALID_URL,\n CLOUDFLARE_API_ERROR: ERROR_CODES.CLOUDFLARE_API_ERROR,\n\n // AWS CloudFront CDN\n CLOUDFRONT_AUTHENTICATION_FAILED: ERROR_CODES.CLOUDFRONT_AUTHENTICATION_FAILED,\n CLOUDFRONT_DISTRIBUTION_NOT_FOUND: ERROR_CODES.CLOUDFRONT_DISTRIBUTION_NOT_FOUND,\n CLOUDFRONT_INVALIDATION_FAILED: ERROR_CODES.CLOUDFRONT_INVALIDATION_FAILED,\n CLOUDFRONT_QUOTA_EXCEEDED: ERROR_CODES.CLOUDFRONT_QUOTA_EXCEEDED,\n CLOUDFRONT_INVALID_PATH: ERROR_CODES.CLOUDFRONT_INVALID_PATH,\n CLOUDFRONT_API_ERROR: ERROR_CODES.CLOUDFRONT_API_ERROR,\n\n // Fastly CDN\n FASTLY_AUTHENTICATION_FAILED: ERROR_CODES.FASTLY_AUTHENTICATION_FAILED,\n FASTLY_SERVICE_NOT_FOUND: ERROR_CODES.FASTLY_SERVICE_NOT_FOUND,\n FASTLY_PURGE_FAILED: ERROR_CODES.FASTLY_PURGE_FAILED,\n FASTLY_RATE_LIMIT_EXCEEDED: ERROR_CODES.FASTLY_RATE_LIMIT_EXCEEDED,\n FASTLY_INVALID_URL: ERROR_CODES.FASTLY_INVALID_URL,\n FASTLY_API_ERROR: ERROR_CODES.FASTLY_API_ERROR,\n\n // Generic CDN Errors\n CDN_INVALIDATION_FAILED: ERROR_CODES.CDN_INVALIDATION_FAILED,\n CDN_CONFIGURATION_INVALID: ERROR_CODES.CDN_CONFIGURATION_INVALID,\n CDN_PROVIDER_NOT_FOUND: ERROR_CODES.CDN_PROVIDER_NOT_FOUND,\n\n // Presigned URLs\n PRESIGNED_URL_GENERATION_FAILED: ERROR_CODES.STORAGE_PRESIGNED_URL_GENERATION_FAILED,\n PRESIGNED_URL_EXPIRED: ERROR_CODES.STORAGE_PRESIGNED_URL_EXPIRED,\n PRESIGNED_URL_INVALID: ERROR_CODES.STORAGE_PRESIGNED_URL_INVALID,\n\n // Chunked Upload\n CHUNKED_UPLOAD_INIT_FAILED: ERROR_CODES.STORAGE_CHUNKED_UPLOAD_INIT_FAILED,\n CHUNKED_UPLOAD_PART_FAILED: ERROR_CODES.STORAGE_CHUNKED_UPLOAD_PART_FAILED,\n CHUNKED_UPLOAD_COMPLETE_FAILED: ERROR_CODES.STORAGE_CHUNKED_UPLOAD_COMPLETE_FAILED,\n CHUNKED_UPLOAD_ABORT_FAILED: ERROR_CODES.STORAGE_CHUNKED_UPLOAD_ABORT_FAILED,\n CHUNKED_UPLOAD_NOT_FOUND: ERROR_CODES.STORAGE_CHUNKED_UPLOAD_NOT_FOUND,\n\n // CORS\n CORS_CONFIGURATION_INVALID: ERROR_CODES.STORAGE_CORS_CONFIGURATION_INVALID,\n CORS_ORIGIN_NOT_ALLOWED: ERROR_CODES.STORAGE_CORS_ORIGIN_NOT_ALLOWED,\n\n // TTL\n TTL_EXPIRED: ERROR_CODES.STORAGE_TTL_EXPIRED,\n TTL_CLEANUP_FAILED: ERROR_CODES.STORAGE_TTL_CLEANUP_FAILED,\n\n // Audit\n AUDIT_LOG_FAILED: ERROR_CODES.STORAGE_AUDIT_LOG_FAILED,\n\n // Webhook\n WEBHOOK_SIGNATURE_INVALID: ERROR_CODES.STORAGE_WEBHOOK_SIGNATURE_INVALID,\n WEBHOOK_PAYLOAD_INVALID: ERROR_CODES.STORAGE_WEBHOOK_PAYLOAD_INVALID,\n WEBHOOK_PROCESSING_FAILED: ERROR_CODES.STORAGE_WEBHOOK_PROCESSING_FAILED,\n WEBHOOK_TIMEOUT: ERROR_CODES.STORAGE_WEBHOOK_TIMEOUT,\n WEBHOOK_ADAPTER_NOT_FOUND: ERROR_CODES.STORAGE_WEBHOOK_ADAPTER_NOT_FOUND,\n WEBHOOK_DUPLICATE_DETECTED: ERROR_CODES.STORAGE_WEBHOOK_DUPLICATE_DETECTED,\n WEBHOOK_IDEMPOTENCY_ERROR: ERROR_CODES.STORAGE_WEBHOOK_IDEMPOTENCY_ERROR,\n WEBHOOK_RATE_LIMIT_EXCEEDED: ERROR_CODES.STORAGE_WEBHOOK_RATE_LIMIT_EXCEEDED,\n\n // Timeout & Network\n TIMEOUT: ERROR_CODES.STORAGE_TIMEOUT,\n NETWORK_ERROR: ERROR_CODES.STORAGE_NETWORK_ERROR,\n CONNECTION_LOST: ERROR_CODES.STORAGE_CONNECTION_LOST,\n\n // Permission & Quota\n PERMISSION_DENIED: ERROR_CODES.STORAGE_PERMISSION_DENIED,\n QUOTA_EXCEEDED: ERROR_CODES.STORAGE_QUOTA_EXCEEDED,\n INSUFFICIENT_SPACE: ERROR_CODES.STORAGE_INSUFFICIENT_SPACE,\n\n // Feature Implementation\n FEATURE_NOT_IMPLEMENTED: ERROR_CODES.STORAGE_FEATURE_NOT_IMPLEMENTED,\n} as const;\n\n/**\n * Core-specific error codes\n * Subset of ERROR_CODES for @plyaz/core package\n */\nexport const CORE_ERROR_CODES = {\n // Feature Flags\n FEATURE_FLAG_NOT_FOUND: ERROR_CODES.CORE_FEATURE_FLAG_NOT_FOUND,\n FEATURE_FLAG_INVALID_CONFIG: ERROR_CODES.CORE_FEATURE_FLAG_INVALID_CONFIG,\n FEATURE_FLAG_EVALUATION_FAILED: ERROR_CODES.CORE_FEATURE_FLAG_EVALUATION_FAILED,\n FEATURE_FLAG_PROVIDER_ERROR: ERROR_CODES.CORE_FEATURE_FLAG_PROVIDER_ERROR,\n FEATURE_FLAG_CACHE_ERROR: ERROR_CODES.CORE_FEATURE_FLAG_CACHE_ERROR,\n FEATURE_FLAG_CONTEXT_INVALID: ERROR_CODES.CORE_FEATURE_FLAG_CONTEXT_INVALID,\n FEATURE_FLAG_RULE_INVALID: ERROR_CODES.CORE_FEATURE_FLAG_RULE_INVALID,\n FEATURE_FLAG_TOGGLE_FAILED: ERROR_CODES.CORE_FEATURE_FLAG_TOGGLE_FAILED,\n\n // Cache\n CACHE_INITIALIZATION_FAILED: ERROR_CODES.CORE_CACHE_INITIALIZATION_FAILED,\n CACHE_STRATEGY_NOT_FOUND: ERROR_CODES.CORE_CACHE_STRATEGY_NOT_FOUND,\n CACHE_OPERATION_FAILED: ERROR_CODES.CORE_CACHE_OPERATION_FAILED,\n CACHE_INVALIDATION_FAILED: ERROR_CODES.CORE_CACHE_INVALIDATION_FAILED,\n CACHE_SERIALIZATION_FAILED: ERROR_CODES.CORE_CACHE_SERIALIZATION_FAILED,\n\n // API Client\n API_CLIENT_INITIALIZATION_FAILED: ERROR_CODES.CORE_API_CLIENT_INITIALIZATION_FAILED,\n API_CLIENT_REQUEST_FAILED: ERROR_CODES.CORE_API_CLIENT_REQUEST_FAILED,\n API_CLIENT_TIMEOUT: ERROR_CODES.CORE_API_CLIENT_TIMEOUT,\n API_CLIENT_INVALID_RESPONSE: ERROR_CODES.CORE_API_CLIENT_INVALID_RESPONSE,\n API_CLIENT_AUTHENTICATION_FAILED: ERROR_CODES.CORE_API_CLIENT_AUTHENTICATION_FAILED,\n\n // Database Service\n DATABASE_SERVICE_INITIALIZATION_FAILED: ERROR_CODES.CORE_DATABASE_SERVICE_INITIALIZATION_FAILED,\n DATABASE_SERVICE_CONNECTION_FAILED: ERROR_CODES.CORE_DATABASE_SERVICE_CONNECTION_FAILED,\n DATABASE_SERVICE_QUERY_FAILED: ERROR_CODES.CORE_DATABASE_SERVICE_QUERY_FAILED,\n DATABASE_SERVICE_TRANSACTION_FAILED: ERROR_CODES.CORE_DATABASE_SERVICE_TRANSACTION_FAILED,\n\n // Validation\n VALIDATION_FAILED: ERROR_CODES.CORE_VALIDATION_FAILED,\n VALIDATION_SCHEMA_INVALID: ERROR_CODES.CORE_VALIDATION_SCHEMA_INVALID,\n VALIDATION_REQUIRED_FIELD_MISSING: ERROR_CODES.CORE_VALIDATION_REQUIRED_FIELD_MISSING,\n\n // Hash Utilities\n HASH_GENERATION_FAILED: ERROR_CODES.CORE_HASH_GENERATION_FAILED,\n HASH_VERIFICATION_FAILED: ERROR_CODES.CORE_HASH_VERIFICATION_FAILED,\n\n // Engine\n ENGINE_INITIALIZATION_FAILED: ERROR_CODES.CORE_ENGINE_INITIALIZATION_FAILED,\n ENGINE_EXECUTION_FAILED: ERROR_CODES.CORE_ENGINE_EXECUTION_FAILED,\n ENGINE_CONFIGURATION_INVALID: ERROR_CODES.CORE_ENGINE_CONFIGURATION_INVALID,\n\n // Provider\n PROVIDER_NOT_FOUND: ERROR_CODES.CORE_PROVIDER_NOT_FOUND,\n PROVIDER_INITIALIZATION_FAILED: ERROR_CODES.CORE_PROVIDER_INITIALIZATION_FAILED,\n PROVIDER_OPERATION_FAILED: ERROR_CODES.CORE_PROVIDER_OPERATION_FAILED,\n\n // Context\n CONTEXT_INVALID: ERROR_CODES.CORE_CONTEXT_INVALID,\n CONTEXT_MISSING_REQUIRED_DATA: ERROR_CODES.CORE_CONTEXT_MISSING_REQUIRED_DATA,\n\n // General Core\n INITIALIZATION_FAILED: ERROR_CODES.CORE_INITIALIZATION_FAILED,\n CONFIGURATION_INVALID: ERROR_CODES.CORE_CONFIGURATION_INVALID,\n OPERATION_FAILED: ERROR_CODES.CORE_OPERATION_FAILED,\n UNKNOWN_ERROR: ERROR_CODES.CORE_UNKNOWN_ERROR,\n\n // Common/Generic Errors (used across core package)\n CLIENT_INITIALIZATION_FAILED: ERROR_CODES.CLIENT_INITIALIZATION_FAILED,\n CLIENT_INVALID_CONFIG: ERROR_CODES.CLIENT_INVALID_CONFIG,\n CONTEXT_OPERATION_FAILED: ERROR_CODES.CONTEXT_OPERATION_FAILED,\n FEATURE_NOT_SUPPORTED: ERROR_CODES.FEATURE_NOT_SUPPORTED,\n VALIDATION_ERROR: ERROR_CODES.VALIDATION_ERROR,\n NETWORK_ERROR: ERROR_CODES.NETWORK_ERROR,\n RESOURCE_NOT_FOUND: ERROR_CODES.RESOURCE_NOT_FOUND,\n DB_CONNECTION_FAILED: ERROR_CODES.DB_CONNECTION_FAILED,\n DB_DUPLICATE_ENTRY: ERROR_CODES.DB_DUPLICATE_ENTRY,\n PROVIDER_NOT_IMPLEMENTED: ERROR_CODES.PROVIDER_NOT_IMPLEMENTED,\n STORAGE_FILE_WRITE_FAILED: ERROR_CODES.STORAGE_FILE_WRITE_FAILED,\n} as const;\n\n/**\n * PAYMENT-specific error codes\n * Subset of ERROR_CODES for @plyaz/payments package\n */\nexport const PAYMENT_ERROR_CODES = {\n // Timeout & Network\n PAYMENT_TIMEOUT: ERROR_CODES.PAYMENT_TIMEOUT,\n PAYMENT_NETWORK_ERROR: ERROR_CODES.PAYMENT_NETWORK_ERROR,\n\n // Refund\n PAYMENT_REFUND_FAILED: ERROR_CODES.PAYMENT_REFUND_FAILED,\n PAYMENT_REFUND_NOT_FOUND: ERROR_CODES.PAYMENT_REFUND_NOT_FOUND,\n PAYMENT_REFUND_ALREADY_PROCESSED: ERROR_CODES.PAYMENT_REFUND_ALREADY_PROCESSED,\n PAYMENT_REFUND_AMOUNT_INVALID: ERROR_CODES.PAYMENT_REFUND_AMOUNT_INVALID,\n PAYMENT_REFUND_VALIDATION_FAILED: ERROR_CODES.PAYMENT_REFUND_VALIDATION_FAILED,\n PAYMENT_REFUND_TIMEOUT: ERROR_CODES.PAYMENT_REFUND_TIMEOUT,\n PAYMENT_REFUND_NOT_ALLOWED: ERROR_CODES.PAYMENT_REFUND_NOT_ALLOWED,\n PAYMENT_REFUND_AUTHORIZATION_FAILED: ERROR_CODES.PAYMENT_REFUND_AUTHORIZATION_FAILED,\n PAYMENT_REFUND_PROCESSING_FAILED: ERROR_CODES.PAYMENT_REFUND_PROCESSING_FAILED,\n\n // Provider\n PAYMENT_PROVIDER_ERROR: ERROR_CODES.PAYMENT_PROVIDER_ERROR,\n PAYMENT_PROVIDER_UNAVAILABLE: ERROR_CODES.PAYMENT_PROVIDER_UNAVAILABLE,\n PAYMENT_PROVIDER_CONFIGURATION_INVALID: ERROR_CODES.PAYMENT_PROVIDER_CONFIGURATION_INVALID,\n PAYMENT_PROVIDER_RESPONSE_INVALID: ERROR_CODES.PAYMENT_PROVIDER_RESPONSE_INVALID,\n PAYMENT_PROVIDER_TIMEOUT: ERROR_CODES.PAYMENT_PROVIDER_TIMEOUT,\n PAYMENT_PROVIDER_AUTH_FAILED: ERROR_CODES.PAYMENT_PROVIDER_AUTH_FAILED,\n PAYMENT_PROVIDER_RATE_LIMIT: ERROR_CODES.PAYMENT_PROVIDER_RATE_LIMIT,\n PAYMENT_PROVIDER_UNKNOWN: ERROR_CODES.PAYMENT_PROVIDER_UNKNOWN,\n PAYMENT_CUSTOMER_CREATION_FAILED: ERROR_CODES.PAYMENT_CUSTOMER_CREATION_FAILED,\n\n // Payment method\n PAYMENT_METHOD_SAVE_FAILED: ERROR_CODES.PAYMENT_METHOD_SAVE_FAILED,\n PAYMENT_METHOD_DELETE_FAILED: ERROR_CODES.PAYMENT_METHOD_DELETE_FAILED,\n\n // Subscription\n PAYMENT_SUBSCRIPTION_CREATE_FAILED: ERROR_CODES.PAYMENT_SUBSCRIPTION_CREATE_FAILED,\n PAYMENT_SUBSCRIPTION_CANCEL_FAILED: ERROR_CODES.PAYMENT_SUBSCRIPTION_CANCEL_FAILED,\n\n // Payout\n PAYMENT_PAYOUT_FAILED: ERROR_CODES.PAYMENT_PAYOUT_FAILED,\n\n // Transaction history\n PAYMENT_TRANSACTION_HISTORY_FETCH_FAILED: ERROR_CODES.PAYMENT_TRANSACTION_HISTORY_FETCH_FAILED,\n\n // Compliance\n PAYMENT_COMPLIANCE_VIOLATION: ERROR_CODES.PAYMENT_COMPLIANCE_VIOLATION,\n PAYMENT_COMPLIANCE_CHECK_FAILED: ERROR_CODES.PAYMENT_COMPLIANCE_CHECK_FAILED,\n PAYMENT_COMPLIANCE_LIMIT_EXCEEDED: ERROR_CODES.PAYMENT_COMPLIANCE_LIMIT_EXCEEDED,\n PAYMENT_COMPLIANCE_POLICY_MISSING: ERROR_CODES.PAYMENT_COMPLIANCE_POLICY_MISSING,\n PAYMENT_COMPLIANCE_KYC_REQUIRED: ERROR_CODES.PAYMENT_COMPLIANCE_KYC_REQUIRED,\n PAYMENT_COMPLIANCE_GEOGRAPHIC_RESTRICTION: ERROR_CODES.PAYMENT_COMPLIANCE_GEOGRAPHIC_RESTRICTION,\n\n // Processing\n PAYMENT_PROCESSING_FAILED: ERROR_CODES.PAYMENT_PROCESSING_FAILED,\n PAYMENT_PROCESSING_TIMEOUT: ERROR_CODES.PAYMENT_PROCESSING_TIMEOUT,\n PAYMENT_PROCESSING_GATEWAY_ERROR: ERROR_CODES.PAYMENT_PROCESSING_GATEWAY_ERROR,\n PAYMENT_PROCESSING_DUPLICATE: ERROR_CODES.PAYMENT_PROCESSING_DUPLICATE,\n PAYMENT_PROCESSING_UNEXPECTED_STATE: ERROR_CODES.PAYMENT_PROCESSING_UNEXPECTED_STATE,\n\n // Security\n PAYMENT_SECURITY_VIOLATION: ERROR_CODES.PAYMENT_SECURITY_VIOLATION,\n PAYMENT_SECURITY_SIGNATURE_INVALID: ERROR_CODES.PAYMENT_SECURITY_SIGNATURE_INVALID,\n PAYMENT_SECURITY_ENCRYPTION_FAILED: ERROR_CODES.PAYMENT_SECURITY_ENCRYPTION_FAILED,\n PAYMENT_SECURITY_FRAUD_DETECTED: ERROR_CODES.PAYMENT_SECURITY_FRAUD_DETECTED,\n PAYMENT_SECURITY_TOKEN_INVALID: ERROR_CODES.PAYMENT_SECURITY_TOKEN_INVALID,\n PAYMENT_SECURITY_VELOCITY_LIMIT_EXCEEDED: ERROR_CODES.PAYMENT_SECURITY_VELOCITY_LIMIT_EXCEEDED,\n\n // Validation\n PAYMENT_VALIDATION_FAILED: ERROR_CODES.PAYMENT_VALIDATION_FAILED,\n PAYMENT_VALIDATION_AMOUNT_INVALID: ERROR_CODES.PAYMENT_VALIDATION_AMOUNT_INVALID,\n PAYMENT_VALIDATION_CURRENCY_UNSUPPORTED: ERROR_CODES.PAYMENT_VALIDATION_CURRENCY_UNSUPPORTED,\n PAYMENT_VALIDATION_METADATA_INVALID: ERROR_CODES.PAYMENT_VALIDATION_METADATA_INVALID,\n PAYMENT_VALIDATION_MISSING_REQUIRED_FIELD: ERROR_CODES.PAYMENT_VALIDATION_MISSING_REQUIRED_FIELD,\n\n // Webhook\n PAYMENT_WEBHOOK_SIGNATURE_INVALID: ERROR_CODES.PAYMENT_WEBHOOK_SIGNATURE_INVALID,\n PAYMENT_WEBHOOK_PROCESSING_FAILED: ERROR_CODES.PAYMENT_WEBHOOK_PROCESSING_FAILED,\n PAYMENT_WEBHOOK_VALIDATION_FAILED: ERROR_CODES.PAYMENT_WEBHOOK_VALIDATION_FAILED,\n PAYMENT_WEBHOOK_EVENT_TYPE_UNSUPPORTED: ERROR_CODES.PAYMENT_WEBHOOK_EVENT_TYPE_UNSUPPORTED,\n PAYMENT_WEBHOOK_HANDLER_NOT_FOUND: ERROR_CODES.PAYMENT_WEBHOOK_HANDLER_NOT_FOUND,\n\n // Adapter & Core\n PAYMENT_ADAPTER_INIT_FAILED: ERROR_CODES.PAYMENT_ADAPTER_INIT_FAILED,\n PAYMENT_ADAPTER_SHUTDOWN_ERROR: ERROR_CODES.PAYMENT_ADAPTER_SHUTDOWN_ERROR,\n PAYMENT_ADAPTER_HMAC_COMPUTATION_FAILED: ERROR_CODES.PAYMENT_ADAPTER_HMAC_COMPUTATION_FAILED,\n PAYMENT_ADAPTER_MISSING_PROVIDER: ERROR_CODES.PAYMENT_ADAPTER_MISSING_PROVIDER,\n PAYMENT_ADAPTER_MISSING_ENVIRONMENT: ERROR_CODES.PAYMENT_ADAPTER_MISSING_ENVIRONMENT,\n PAYMENT_ADAPTER_MISSING_CREDENTIALS: ERROR_CODES.PAYMENT_ADAPTER_MISSING_CREDENTIALS,\n PAYMENT_ADAPTER_MISSING_WEBHOOK_URL: ERROR_CODES.PAYMENT_ADAPTER_MISSING_WEBHOOK_URL,\n PAYMENT_ADAPTER_MISSING_UNREGISTER_ENDPOINT:\n ERROR_CODES.PAYMENT_ADAPTER_MISSING_UNREGISTER_ENDPOINT,\n PAYMENT_ADAPTER_UNSUPPORTED_OPERATION: ERROR_CODES.PAYMENT_ADAPTER_UNSUPPORTED_OPERATION,\n PAYMENT_ADAPTER_RESPONSE_MAPPING_FAILED: ERROR_CODES.PAYMENT_ADAPTER_RESPONSE_MAPPING_FAILED,\n\n // Unsupported Operations\n SAVE_PAYMENT_METHOD_UNSUPPORTED: ERROR_CODES.SAVE_PAYMENT_METHOD_UNSUPPORTED,\n DELETE_PAYMENT_METHOD_UNSUPPORTED: ERROR_CODES.DELETE_PAYMENT_METHOD_UNSUPPORTED,\n GET_USER_PAYMENT_METHODS_UNSUPPORTED: ERROR_CODES.GET_USER_PAYMENT_METHODS_UNSUPPORTED,\n CREATE_SUBSCRIPTION_UNSUPPORTED: ERROR_CODES.CREATE_SUBSCRIPTION_UNSUPPORTED,\n CANCEL_SUBSCRIPTION_UNSUPPORTED: ERROR_CODES.CANCEL_SUBSCRIPTION_UNSUPPORTED,\n PROCESS_PAYOUT_UNSUPPORTED: ERROR_CODES.PROCESS_PAYOUT_UNSUPPORTED,\n GET_TRANSACTION_HISTORY_UNSUPPORTED: ERROR_CODES.GET_TRANSACTION_HISTORY_UNSUPPORTED,\n\n // Idempotency\n PAYMENT_IDEMPOTENCY_VIOLATION: ERROR_CODES.PAYMENT_IDEMPOTENCY_VIOLATION,\n PAYMENT_IDEMPOTENCY_KEY_MISSING: ERROR_CODES.PAYMENT_IDEMPOTENCY_KEY_MISSING,\n PAYMENT_IDEMPOTENCY_STORE_ERROR: ERROR_CODES.PAYMENT_IDEMPOTENCY_STORE_ERROR,\n\n // Routing\n PAYMENT_ROUTING_FAILED: ERROR_CODES.PAYMENT_ROUTING_FAILED,\n PAYMENT_ROUTING_CONFIGURATION_INVALID: ERROR_CODES.PAYMENT_ROUTING_CONFIGURATION_INVALID,\n PAYMENT_ROUTING_PROVIDER_UNAVAILABLE: ERROR_CODES.PAYMENT_ROUTING_PROVIDER_UNAVAILABLE,\n PAYMENT_ROUTING_RETRY_EXCEEDED: ERROR_CODES.PAYMENT_ROUTING_RETRY_EXCEEDED,\n\n // General\n PAYMENT_SYSTEM_NOT_INITIALIZED: ERROR_CODES.PAYMENT_SYSTEM_NOT_INITIALIZED,\n PAYMENT_CONTEXT_OPERATION_FAILED: ERROR_CODES.PAYMENT_CONTEXT_OPERATION_FAILED,\n PAYMENT_INTERNAL_ERROR: ERROR_CODES.PAYMENT_INTERNAL_ERROR,\n PAYMENT_UNKNOWN_ERROR: ERROR_CODES.PAYMENT_UNKNOWN_ERROR,\n\n // Event\n PAYMENT_EVENT_EMIT_FAILED: ERROR_CODES.PAYMENT_EVENT_EMIT_FAILED,\n PAYMENT_EVENT_INVALID_TYPE: ERROR_CODES.PAYMENT_EVENT_INVALID_TYPE,\n PAYMENT_EVENT_CREATION_FAILED: ERROR_CODES.PAYMENT_EVENT_CREATION_FAILED,\n PAYMENT_EVENT_HANDLER_TIMEOUT: ERROR_CODES.PAYMENT_EVENT_HANDLER_TIMEOUT,\n PAYMENT_EVENT_HANDLER_INVALID_RESULT: ERROR_CODES.PAYMENT_EVENT_HANDLER_INVALID_RESULT,\n PAYMENT_EVENT_LIFECYCLE_FAILURE: ERROR_CODES.PAYMENT_EVENT_LIFECYCLE_FAILURE,\n\n // Withdrawal\n PAYMENT_WITHDRAWAL_UNSUPPORTED: ERROR_CODES.WITHDRAWAL_UNSUPPORTED,\n PAYMENT_WITHDRAWAL_CREATE_UNSUPPORTED: ERROR_CODES.WITHDRAWAL_CREATE_UNSUPPORTED,\n PAYMENT_WITHDRAWAL_PROCESS_UNSUPPORTED: ERROR_CODES.WITHDRAWAL_PROCESS_UNSUPPORTED,\n PAYMENT_WITHDRAWAL_STATUS_FETCH_UNSUPPORTED: ERROR_CODES.WITHDRAWAL_STATUS_FETCH_UNSUPPORTED,\n PAYMENT_WITHDRAWAL_CANCEL_UNSUPPORTED: ERROR_CODES.WITHDRAWAL_CANCEL_UNSUPPORTED,\n\n PAYMENT_WITHDRAWAL_INSUFFICIENT_BALANCE: ERROR_CODES.WITHDRAWAL_INSUFFICIENT_BALANCE,\n PAYMENT_WITHDRAWAL_INVALID_ACCOUNT: ERROR_CODES.WITHDRAWAL_INVALID_ACCOUNT,\n PAYMENT_WITHDRAWAL_KYC_REQUIRED: ERROR_CODES.WITHDRAWAL_KYC_REQUIRED,\n PAYMENT_WITHDRAWAL_LIMIT_EXCEEDED: ERROR_CODES.WITHDRAWAL_LIMIT_EXCEEDED,\n PAYMENT_WITHDRAWAL_PROVIDER_ERROR: ERROR_CODES.WITHDRAWAL_PROVIDER_ERROR,\n PAYMENT_WITHDRAWAL_FAILED: ERROR_CODES.WITHDRAWAL_FAILED,\n PAYMENT_WITHDRAWAL_TIMEOUT: ERROR_CODES.WITHDRAWAL_TIMEOUT,\n\n // Product\n PAYMENT_PRODUCT_CREATE_UNSUPPORTED: ERROR_CODES.PRODUCT_CREATE_UNSUPPORTED,\n PAYMENT_PRODUCT_UPDATE_UNSUPPORTED: ERROR_CODES.PRODUCT_UPDATE_UNSUPPORTED,\n PAYMENT_PRODUCT_FETCH_UNSUPPORTED: ERROR_CODES.PRODUCT_FETCH_UNSUPPORTED,\n PAYMENT_PRODUCT_DEACTIVATE_UNSUPPORTED: ERROR_CODES.PRODUCT_DEACTIVATE_UNSUPPORTED,\n\n PAYMENT_PRODUCT_NOT_FOUND: ERROR_CODES.PRODUCT_NOT_FOUND,\n PAYMENT_PRODUCT_INVALID_DATA: ERROR_CODES.PRODUCT_INVALID_DATA,\n PAYMENT_PRODUCT_PROVIDER_ERROR: ERROR_CODES.PRODUCT_PROVIDER_ERROR,\n PAYMENT_PRODUCT_ALREADY_INACTIVE: ERROR_CODES.PRODUCT_ALREADY_INACTIVE,\n PAYMENT_PRODUCT_SYNC_FAILED: ERROR_CODES.PRODUCT_SYNC_FAILED,\n\n // Pricing\n PAYMENT_PRICING_CREATE_UNSUPPORTED: ERROR_CODES.PRICING_CREATE_UNSUPPORTED,\n PAYMENT_PRICING_UPDATE_UNSUPPORTED: ERROR_CODES.PRICING_UPDATE_UNSUPPORTED,\n PAYMENT_PRICING_DEACTIVATE_UNSUPPORTED: ERROR_CODES.PRICING_DEACTIVATE_UNSUPPORTED,\n\n PAYMENT_PRICING_NOT_FOUND: ERROR_CODES.PRICING_NOT_FOUND,\n PAYMENT_PRICING_INVALID_AMOUNT: ERROR_CODES.PRICING_INVALID_AMOUNT,\n PAYMENT_PRICING_INVALID_CURRENCY: ERROR_CODES.PRICING_INVALID_CURRENCY,\n PAYMENT_PRICING_PROVIDER_ERROR: ERROR_CODES.PRICING_PROVIDER_ERROR,\n PAYMENT_PRICING_ALREADY_INACTIVE: ERROR_CODES.PRICING_ALREADY_INACTIVE,\n PAYMENT_PRICING_SYNC_FAILED: ERROR_CODES.PRICING_SYNC_FAILED,\n PAYMENT_PRICING_REQUIRES_NEW_VERSION: ERROR_CODES.PRICING_REQUIRES_NEW_VERSION,\n} as const;\n\n/** Database-specific error codes\n * Subset of ERROR_CODES for database operations\n */\nexport const DATABASE_ERROR_CODES = {\n ACCESS_DENIED: ERROR_CODES.DB_ACCESS_DENIED,\n CONFIG_REQUIRED: ERROR_CODES.DB_CONFIG_REQUIRED,\n CONNECT_FAILED: ERROR_CODES.DB_CONNECT_FAILED,\n DISCONNECT_FAILED: ERROR_CODES.DB_DISCONNECT_FAILED,\n INIT_FAILED: ERROR_CODES.DB_INIT_FAILED,\n QUERY_FAILED: ERROR_CODES.DB_QUERY_FAILED,\n BUILD_WHERE_FAILED: ERROR_CODES.DB_BUILD_WHERE_FAILED,\n INVALID_SQL: ERROR_CODES.DB_INVALID_SQL,\n TRANSACTION_FAILED: ERROR_CODES.DB_TRANSACTION_FAILED,\n UNSUPPORTED_OPERATOR: ERROR_CODES.DB_UNSUPPORTED_OPERATOR,\n CREATE_FAILED: ERROR_CODES.DB_CREATE_FAILED,\n CREATION_FAILED: ERROR_CODES.DB_CREATION_FAILED,\n FETCH_FAILED: ERROR_CODES.DB_FETCH_FAILED,\n FIND_FAILED: ERROR_CODES.DB_FIND_FAILED,\n FIND_MANY_FAILED: ERROR_CODES.DB_FIND_MANY_FAILED,\n FIND_BY_ID_FAILED: ERROR_CODES.DB_FIND_BY_ID_FAILED,\n UPDATE_FAILED: ERROR_CODES.DB_UPDATE_FAILED,\n UPDATE_NO_CHANGES: ERROR_CODES.DB_UPDATE_NO_CHANGES,\n DELETE_FAILED: ERROR_CODES.DB_DELETE_FAILED,\n INSERT_FAILED: ERROR_CODES.DB_INSERT_FAILED,\n RECORD_NOT_FOUND: ERROR_CODES.DB_RECORD_NOT_FOUND,\n EXISTS_FAILED: ERROR_CODES.DB_EXISTS_FAILED,\n COLUMN_NOT_EXISTS: ERROR_CODES.DB_COLUMN_NOT_EXISTS,\n TABLE_NOT_REGISTERED: ERROR_CODES.DB_TABLE_NOT_REGISTERED,\n TABLE_REGISTRATION_FAILED: ERROR_CODES.DB_TABLE_REGISTRATION_FAILED,\n ID_COLUMN_NOT_REGISTERED: ERROR_CODES.DB_ID_COLUMN_NOT_REGISTERED,\n INVALID_COLUMN: ERROR_CODES.DB_INVALID_COLUMN,\n INVALID_TABLE_NAME: ERROR_CODES.DB_INVALID_TABLE_NAME,\n GET_ID_COLUMN_FAILED: ERROR_CODES.DB_GET_ID_COLUMN_FAILED,\n GET_TABLE_FAILED: ERROR_CODES.DB_GET_TABLE_FAILED,\n INVALID_PARAMETERS: ERROR_CODES.DB_INVALID_PARAMETERS,\n INVALID_PARAMS: ERROR_CODES.DB_INVALID_PARAMS,\n INVALID_FILTER: ERROR_CODES.DB_INVALID_FILTER,\n INVALID_ID: ERROR_CODES.DB_INVALID_ID,\n INVALID_ENTITY: ERROR_CODES.DB_INVALID_ENTITY,\n INVALID_UPDATE_PARAMS: ERROR_CODES.DB_INVALID_UPDATE_PARAMS,\n INVALID_FIELD_NAME: ERROR_CODES.DB_INVALID_FIELD_NAME,\n INVALID_RESULT: ERROR_CODES.DB_INVALID_RESULT,\n NO_UPDATE_FIELDS: ERROR_CODES.DB_NO_UPDATE_FIELDS,\n COUNT_FAILED: ERROR_CODES.DB_COUNT_FAILED,\n COUNT_NO_RESULTS: ERROR_CODES.DB_COUNT_NO_RESULTS,\n NO_DATA: ERROR_CODES.DB_NO_DATA,\n NO_TENANT_CONTEXT: ERROR_CODES.DB_NO_TENANT_CONTEXT,\n NO_TENANT_ID: ERROR_CODES.DB_NO_TENANT_ID,\n TENANT_VALIDATION_FAILED: ERROR_CODES.DB_TENANT_VALIDATION_FAILED,\n BACKUP_CLEANUP_FAILED: ERROR_CODES.DB_BACKUP_CLEANUP_FAILED,\n BACKUP_FILE_NOT_FOUND: ERROR_CODES.DB_BACKUP_FILE_NOT_FOUND,\n LIST_BACKUPS_FAILED: ERROR_CODES.DB_LIST_BACKUPS_FAILED,\n INVALID_BACKUP_INFO: ERROR_CODES.DB_INVALID_BACKUP_INFO,\n RESTORE_FAILED: ERROR_CODES.DB_RESTORE_FAILED,\n CACHE_DELETE_FAILED: ERROR_CODES.DB_CACHE_DELETE_FAILED,\n CACHE_HEALTH_CHECK_FAILED: ERROR_CODES.DB_CACHE_HEALTH_CHECK_FAILED,\n CACHE_INVALIDATE_FAILED: ERROR_CODES.DB_CACHE_INVALIDATE_FAILED,\n CACHE_SET_FAILED: ERROR_CODES.DB_CACHE_SET_FAILED,\n CACHE_GET_FAILED: ERROR_CODES.DB_CACHE_GET_FAILED,\n INVALID_FILEPATH: ERROR_CODES.DB_INVALID_FILEPATH,\n S3_DELETE_FAILED: ERROR_CODES.DB_S3_DELETE_FAILED,\n S3_DOWNLOAD_FAILED: ERROR_CODES.DB_S3_DOWNLOAD_FAILED,\n S3_NOT_CONFIGURED: ERROR_CODES.DB_S3_NOT_CONFIGURED,\n S3_UPLOAD_FAILED: ERROR_CODES.DB_S3_UPLOAD_FAILED,\n SCHEDULE_SETUP_FAILED: ERROR_CODES.DB_SCHEDULE_SETUP_FAILED,\n DECRYPTION_FAILED: ERROR_CODES.DB_DECRYPTION_FAILED,\n INVALID_SHELL_ARG: ERROR_CODES.DB_INVALID_SHELL_ARG,\n INVALID_BETWEEN_OPERATOR: ERROR_CODES.DB_INVALID_BETWEEN_OPERATOR,\n INVALID_IN_OPERATOR: ERROR_CODES.DB_INVALID_IN_OPERATOR,\n INVALID_COUNT: ERROR_CODES.DB_INVALID_COUNT,\n CONNECTION_FAILED: ERROR_CODES.DB_CONNECTION_FAILED,\n CONNECTION_ERROR: ERROR_CODES.DB_CONNECTION_ERROR,\n CONSTRAINT_VIOLATION: ERROR_CODES.DB_CONSTRAINT_VIOLATION,\n TIMEOUT: ERROR_CODES.DB_TIMEOUT,\n DEADLOCK: ERROR_CODES.DB_DEADLOCK,\n ENTITY_NOT_FOUND: ERROR_CODES.DB_ENTITY_NOT_FOUND,\n DUPLICATE_ENTRY: ERROR_CODES.DB_DUPLICATE_ENTRY,\n MIGRATION_FAILED: ERROR_CODES.DB_MIGRATION_FAILED,\n MULTI_WRITE_FAILED: ERROR_CODES.DB_MULTI_WRITE_FAILED,\n NOT_FOUND: ERROR_CODES.DB_RECORD_NOT_FOUND,\n UNKNOWN_ERROR: ERROR_CODES.DB_UNKNOWN_ERROR,\n} as const;\n\nexport type ApiErrorCodeValue =\n | (typeof API_ERROR_CODES)[keyof typeof API_ERROR_CODES]\n | `HTTP_${number}`;\nexport type NotificationErrorCodeValue =\n (typeof NOTIFICATION_ERROR_CODES)[keyof typeof NOTIFICATION_ERROR_CODES];\n\nexport type StorageErrorCode = (typeof STORAGE_ERROR_CODES)[keyof typeof STORAGE_ERROR_CODES];\n\nexport type DatabaseErrorCodeValue =\n (typeof DATABASE_ERROR_CODES)[keyof typeof DATABASE_ERROR_CODES];\n\nexport type CoreErrorCodeValue = (typeof CORE_ERROR_CODES)[keyof typeof CORE_ERROR_CODES];\n\nexport type PaymentErrorCodeValue = (typeof PAYMENT_ERROR_CODES)[keyof typeof PAYMENT_ERROR_CODES];\n\n/**\n * Unified ERROR_DEFINITIONS\n * Single source of truth for ALL error definitions across all @plyaz packages\n *\n * Combines:\n * - API error definitions (basic: code, status, category, fieldsLeft)\n * - Notification error definitions (extended: includes severity, retryable, userMessage)\n *\n * All packages can access ANY error definition for cross-package error handling\n */\nexport const ERROR_DEFINITIONS: ErrorDefinitions = {\n // ===== Generic/Common Error Definitions =====\n [ERROR_CODES.NOT_IMPLEMENTED]: {\n code: ERROR_CODES.NOT_IMPLEMENTED,\n status: HTTP_STATUS.NOT_IMPLEMENTED,\n category: ERROR_CATEGORY.System,\n userMessage: 'errors.not_implemented',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.PROVIDER_NOT_IMPLEMENTED]: {\n code: ERROR_CODES.PROVIDER_NOT_IMPLEMENTED,\n status: HTTP_STATUS.NOT_IMPLEMENTED,\n category: ERROR_CATEGORY.System,\n userMessage: 'errors.provider.not_implemented',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.FEATURE_NOT_SUPPORTED]: {\n code: ERROR_CODES.FEATURE_NOT_SUPPORTED,\n status: HTTP_STATUS.NOT_IMPLEMENTED,\n category: ERROR_CATEGORY.System,\n userMessage: 'errors.feature.not_supported',\n severity: ERROR_SEVERITY.Low,\n retryable: false,\n },\n\n // ===== API Package Error Definitions =====\n // Authentication\n [ERROR_CODES.AUTH_UNAUTHORIZED]: {\n code: ERROR_CODES.AUTH_UNAUTHORIZED,\n status: HTTP_STATUS.UNAUTHORIZED,\n category: ERROR_CATEGORY.Authentication,\n userMessage: 'errors.auth.unauthorized',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.AUTH_FORBIDDEN]: {\n code: ERROR_CODES.AUTH_FORBIDDEN,\n status: HTTP_STATUS.FORBIDDEN,\n category: ERROR_CATEGORY.Authorization,\n userMessage: 'errors.auth.forbidden',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n // Rate Limiting\n [ERROR_CODES.RATE_LIMIT_EXCEEDED]: {\n code: ERROR_CODES.RATE_LIMIT_EXCEEDED,\n status: HTTP_STATUS.TOO_MANY_REQUESTS,\n category: ERROR_CATEGORY.RateLimit,\n userMessage: 'errors.rate_limit.exceeded',\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n },\n\n // Resources\n [ERROR_CODES.RESOURCE_NOT_FOUND]: {\n code: ERROR_CODES.RESOURCE_NOT_FOUND,\n status: HTTP_STATUS.NOT_FOUND,\n category: ERROR_CATEGORY.NotFound,\n userMessage: 'errors.resource.not_found',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.RESOURCE_CONFLICT]: {\n code: ERROR_CODES.RESOURCE_CONFLICT,\n status: HTTP_STATUS.CONFLICT,\n category: ERROR_CATEGORY.Conflict,\n userMessage: 'errors.resource.conflict',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n // Validation\n [ERROR_CODES.API_VALIDATION_FAILED]: {\n code: ERROR_CODES.API_VALIDATION_FAILED,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'errors.validation.failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.API_INVALID_INPUT]: {\n code: ERROR_CODES.API_INVALID_INPUT,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'errors.validation.invalid_input',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.VALIDATION_ERROR]: {\n code: ERROR_CODES.VALIDATION_ERROR,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'errors.validation.error',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.REQUIRED_FIELD_MISSING]: {\n code: ERROR_CODES.REQUIRED_FIELD_MISSING,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'errors.validation.required_field_missing',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.INVALID_FORMAT]: {\n code: ERROR_CODES.INVALID_FORMAT,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'errors.validation.invalid_format',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.VALIDATION_INVALID_FORMAT]: {\n code: ERROR_CODES.VALIDATION_INVALID_FORMAT,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'errors.validation.invalid_format',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.STRING_TOO_SHORT]: {\n code: ERROR_CODES.STRING_TOO_SHORT,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'errors.validation.string_too_short',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.STRING_TOO_LONG]: {\n code: ERROR_CODES.STRING_TOO_LONG,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'errors.validation.string_too_long',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n // Network\n [ERROR_CODES.NETWORK_ERROR]: {\n code: ERROR_CODES.NETWORK_ERROR,\n status: HTTP_STATUS.BAD_GATEWAY,\n category: ERROR_CATEGORY.Network,\n userMessage: 'errors.network.error',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n [ERROR_CODES.CONNECTION_FAILED]: {\n code: ERROR_CODES.CONNECTION_FAILED,\n status: 0,\n category: ERROR_CATEGORY.Network,\n userMessage: 'errors.network.connection_failed',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n [ERROR_CODES.NETWORK_CONNECTION_FAILED]: {\n code: ERROR_CODES.NETWORK_CONNECTION_FAILED,\n status: 0,\n category: ERROR_CATEGORY.Network,\n userMessage: 'errors.network.connection_failed',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n [ERROR_CODES.NETWORK_OFFLINE]: {\n code: ERROR_CODES.NETWORK_OFFLINE,\n status: 0,\n category: ERROR_CATEGORY.Network,\n userMessage: 'errors.network.offline',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n [ERROR_CODES.NETWORK_DNS_FAILED]: {\n code: ERROR_CODES.NETWORK_DNS_FAILED,\n status: 0,\n category: ERROR_CATEGORY.Network,\n userMessage: 'errors.network.dns_failed',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n [ERROR_CODES.NETWORK_TIMEOUT]: {\n code: ERROR_CODES.NETWORK_TIMEOUT,\n status: 0,\n category: ERROR_CATEGORY.Network,\n userMessage: 'errors.network.timeout',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n [ERROR_CODES.NETWORK_CONFIGURATION_INVALID]: {\n code: ERROR_CODES.NETWORK_CONFIGURATION_INVALID,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Configuration,\n userMessage: 'errors.network.configuration_invalid',\n severity: ERROR_SEVERITY.Critical,\n retryable: true,\n },\n [ERROR_CODES.NETWORK_PRESET_NOT_FOUND]: {\n code: ERROR_CODES.NETWORK_PRESET_NOT_FOUND,\n status: HTTP_STATUS.NOT_FOUND,\n category: ERROR_CATEGORY.Configuration,\n userMessage: 'errors.network.preset_not_found',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n\n // Server\n [ERROR_CODES.SERVER_ERROR]: {\n code: ERROR_CODES.SERVER_ERROR,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Server,\n userMessage: 'errors.server.error',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n [ERROR_CODES.INTERNAL_SERVER_ERROR]: {\n code: ERROR_CODES.INTERNAL_SERVER_ERROR,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Server,\n userMessage: 'errors.server.internal_error',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n [ERROR_CODES.SERVICE_UNAVAILABLE]: {\n code: ERROR_CODES.SERVICE_UNAVAILABLE,\n status: HTTP_STATUS.SERVICE_UNAVAILABLE,\n category: ERROR_CATEGORY.Server,\n userMessage: 'errors.server.service_unavailable',\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n },\n\n // Cache\n [ERROR_CODES.CACHE_READ_FAILED]: {\n code: ERROR_CODES.CACHE_READ_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Cache,\n userMessage: 'errors.cache.read_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.CACHE_WRITE_FAILED]: {\n code: ERROR_CODES.CACHE_WRITE_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Cache,\n userMessage: 'errors.cache.write_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.CACHE_INVALIDATION_FAILED]: {\n code: ERROR_CODES.CACHE_INVALIDATION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Cache,\n userMessage: 'errors.cache.invalidation_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.CACHE_STORAGE_FAILED]: {\n code: ERROR_CODES.CACHE_STORAGE_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Cache,\n userMessage: 'errors.cache.storage_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.CACHE_RETRIEVAL_FAILED]: {\n code: ERROR_CODES.CACHE_RETRIEVAL_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Cache,\n userMessage: 'errors.cache.retrieval_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n // Retry\n [ERROR_CODES.RETRY_LIMIT_EXCEEDED]: {\n code: ERROR_CODES.RETRY_LIMIT_EXCEEDED,\n status: HTTP_STATUS.SERVICE_UNAVAILABLE,\n category: ERROR_CATEGORY.Retry,\n userMessage: 'errors.retry.limit_exceeded',\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n },\n [ERROR_CODES.RETRY_FAILED]: {\n code: ERROR_CODES.RETRY_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Retry,\n userMessage: 'errors.retry.failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n },\n [ERROR_CODES.RETRY_EXHAUSTED]: {\n code: ERROR_CODES.RETRY_EXHAUSTED,\n status: HTTP_STATUS.SERVICE_UNAVAILABLE,\n category: ERROR_CATEGORY.Retry,\n userMessage: 'errors.retry.exhausted',\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n },\n [ERROR_CODES.RETRY_STRATEGY_INVALID]: {\n code: ERROR_CODES.RETRY_STRATEGY_INVALID,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Configuration,\n userMessage: 'errors.retry.strategy_invalid',\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n },\n\n // Strategy\n [ERROR_CODES.STRATEGY_INVALID]: {\n code: ERROR_CODES.STRATEGY_INVALID,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Configuration,\n userMessage: 'errors.strategy.invalid',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.STRATEGY_CONFLICT]: {\n code: ERROR_CODES.STRATEGY_CONFLICT,\n status: HTTP_STATUS.CONFLICT,\n category: ERROR_CATEGORY.Configuration,\n userMessage: 'errors.strategy.conflict',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.STRATEGY_EXECUTION_FAILED]: {\n code: ERROR_CODES.STRATEGY_EXECUTION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Configuration,\n userMessage: 'errors.strategy.execution_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n // Headers\n [ERROR_CODES.HEADERS_ENRICHMENT_FAILED]: {\n code: ERROR_CODES.HEADERS_ENRICHMENT_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Headers,\n userMessage: 'errors.headers.enrichment_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.HEADERS_VALIDATION_FAILED]: {\n code: ERROR_CODES.HEADERS_VALIDATION_FAILED,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Headers,\n userMessage: 'errors.headers.validation_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.HEADERS_MERGE_CONFLICT]: {\n code: ERROR_CODES.HEADERS_MERGE_CONFLICT,\n status: HTTP_STATUS.CONFLICT,\n category: ERROR_CATEGORY.Headers,\n userMessage: 'errors.headers.merge_conflict',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n // Regional\n [ERROR_CODES.REGION_DETECTION_FAILED]: {\n code: ERROR_CODES.REGION_DETECTION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Network,\n userMessage: 'errors.regional.detection_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.REGIONAL_PRESET_NOT_FOUND]: {\n code: ERROR_CODES.REGIONAL_PRESET_NOT_FOUND,\n status: HTTP_STATUS.NOT_FOUND,\n category: ERROR_CATEGORY.Configuration,\n userMessage: 'errors.regional.preset_not_found',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n // External Services\n [ERROR_CODES.EXTERNAL_SERVICE_ERROR]: {\n code: ERROR_CODES.EXTERNAL_SERVICE_ERROR,\n status: HTTP_STATUS.BAD_GATEWAY,\n category: ERROR_CATEGORY.Server,\n userMessage: 'errors.external.service_error',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n // Timeout\n [ERROR_CODES.TIMEOUT]: {\n code: ERROR_CODES.TIMEOUT,\n status: HTTP_STATUS.REQUEST_TIMEOUT,\n category: ERROR_CATEGORY.Timeout,\n userMessage: 'errors.timeout.generic',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n\n // Debugging\n [ERROR_CODES.DEBUG_TRACKING_FAILED]: {\n code: ERROR_CODES.DEBUG_TRACKING_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Client,\n userMessage: 'errors.debug.tracking_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.DEBUG_OVERRIDE_FAILED]: {\n code: ERROR_CODES.DEBUG_OVERRIDE_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Configuration,\n userMessage: 'errors.debug.override_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.DEBUG_CONFLICT_DETECTED]: {\n code: ERROR_CODES.DEBUG_CONFLICT_DETECTED,\n status: HTTP_STATUS.CONFLICT,\n category: ERROR_CATEGORY.Configuration,\n userMessage: 'errors.debug.conflict_detected',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n // Endpoint\n [ERROR_CODES.ENDPOINT_BUILD_FAILED]: {\n code: ERROR_CODES.ENDPOINT_BUILD_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Configuration,\n userMessage: 'errors.endpoint.build_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.ENDPOINT_NOT_FOUND]: {\n code: ERROR_CODES.ENDPOINT_NOT_FOUND,\n status: HTTP_STATUS.NOT_FOUND,\n category: ERROR_CATEGORY.NotFound,\n userMessage: 'errors.endpoint.not_found',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.ENDPOINT_INVALID_CONFIG]: {\n code: ERROR_CODES.ENDPOINT_INVALID_CONFIG,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Configuration,\n userMessage: 'errors.endpoint.invalid_config',\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n },\n\n // Event\n [ERROR_CODES.EVENT_HANDLER_FAILED]: {\n code: ERROR_CODES.EVENT_HANDLER_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Client,\n userMessage: 'errors.event.handler_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.EVENT_EMISSION_FAILED]: {\n code: ERROR_CODES.EVENT_EMISSION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Client,\n userMessage: 'errors.event.emission_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.MONITORING_FAILED]: {\n code: ERROR_CODES.MONITORING_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Client,\n userMessage: 'errors.monitoring.failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n // Polling\n [ERROR_CODES.POLLING_CANCELLED]: {\n code: ERROR_CODES.POLLING_CANCELLED,\n status: 0,\n category: ERROR_CATEGORY.Client,\n userMessage: 'errors.polling.cancelled',\n severity: ERROR_SEVERITY.Low,\n retryable: false,\n },\n [ERROR_CODES.POLLING_TIMEOUT]: {\n code: ERROR_CODES.POLLING_TIMEOUT,\n status: HTTP_STATUS.REQUEST_TIMEOUT,\n category: ERROR_CATEGORY.Timeout,\n userMessage: 'errors.polling.timeout',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n [ERROR_CODES.POLLING_INVALID_CONFIG]: {\n code: ERROR_CODES.POLLING_INVALID_CONFIG,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Configuration,\n userMessage: 'errors.polling.invalid_config',\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n },\n\n // PubSub\n [ERROR_CODES.PUBSUB_SUBSCRIPTION_FAILED]: {\n code: ERROR_CODES.PUBSUB_SUBSCRIPTION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Client,\n userMessage: 'errors.pubsub.subscription_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.PUBSUB_PUBLICATION_FAILED]: {\n code: ERROR_CODES.PUBSUB_PUBLICATION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Client,\n userMessage: 'errors.pubsub.publication_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.PUBSUB_INVALID_TOPIC]: {\n code: ERROR_CODES.PUBSUB_INVALID_TOPIC,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'errors.pubsub.invalid_topic',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.PUBSUB_CHANNEL_ERROR]: {\n code: ERROR_CODES.PUBSUB_CHANNEL_ERROR,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Client,\n userMessage: 'errors.pubsub.channel_error',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n // Revalidation\n [ERROR_CODES.REVALIDATION_FAILED]: {\n code: ERROR_CODES.REVALIDATION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Cache,\n userMessage: 'errors.revalidation.failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.REVALIDATION_IN_PROGRESS]: {\n code: ERROR_CODES.REVALIDATION_IN_PROGRESS,\n status: HTTP_STATUS.CONFLICT,\n category: ERROR_CATEGORY.Cache,\n userMessage: 'errors.revalidation.in_progress',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n // Context\n [ERROR_CODES.CONTEXT_OPERATION_FAILED]: {\n code: ERROR_CODES.CONTEXT_OPERATION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Client,\n userMessage: 'errors.context.operation_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n // Request\n [ERROR_CODES.REQUEST_TIMEOUT]: {\n code: ERROR_CODES.REQUEST_TIMEOUT,\n status: HTTP_STATUS.REQUEST_TIMEOUT,\n category: ERROR_CATEGORY.Timeout,\n userMessage: 'errors.request.timeout',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n [ERROR_CODES.REQUEST_ABORTED]: {\n code: ERROR_CODES.REQUEST_ABORTED,\n status: 0,\n category: ERROR_CATEGORY.Client,\n userMessage: 'errors.request.aborted',\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n },\n [ERROR_CODES.REQUEST_INVALID_PARAMS]: {\n code: ERROR_CODES.REQUEST_INVALID_PARAMS,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'errors.request.invalid_params',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.REQUEST_PREPARATION_FAILED]: {\n code: ERROR_CODES.REQUEST_PREPARATION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Client,\n userMessage: 'errors.request.preparation_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n // Response\n [ERROR_CODES.RESPONSE_INVALID_FORMAT]: {\n code: ERROR_CODES.RESPONSE_INVALID_FORMAT,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Server,\n userMessage: 'errors.response.invalid_format',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.RESPONSE_PARSING_FAILED]: {\n code: ERROR_CODES.RESPONSE_PARSING_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Server,\n userMessage: 'errors.response.parsing_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n // Client\n [ERROR_CODES.CLIENT_ERROR]: {\n code: ERROR_CODES.CLIENT_ERROR,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Client,\n userMessage: 'errors.client.error',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.CLIENT_INITIALIZATION_FAILED]: {\n code: ERROR_CODES.CLIENT_INITIALIZATION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Client,\n userMessage: 'errors.client.initialization_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.CLIENT_INVALID_CONFIG]: {\n code: ERROR_CODES.CLIENT_INVALID_CONFIG,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Client,\n userMessage: 'errors.client.invalid_config',\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n },\n [ERROR_CODES.CLIENT_MISSING_BASE_URL]: {\n code: ERROR_CODES.CLIENT_MISSING_BASE_URL,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Configuration,\n userMessage: 'errors.client.missing_base_url',\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n },\n [ERROR_CODES.CLIENT_CANCELLED]: {\n code: ERROR_CODES.CLIENT_CANCELLED,\n status: 0,\n category: ERROR_CATEGORY.Client,\n userMessage: 'errors.client.cancelled',\n severity: ERROR_SEVERITY.Low,\n retryable: true,\n },\n\n // Configuration\n [ERROR_CODES.CONFIG_VALIDATION_FAILED]: {\n code: ERROR_CODES.CONFIG_VALIDATION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Configuration,\n userMessage: 'errors.config.validation_failed',\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n },\n [ERROR_CODES.HEADER_PROCESSING_FAILED]: {\n code: ERROR_CODES.HEADER_PROCESSING_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Headers,\n userMessage: 'errors.headers.processing_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.NETWORK_OVERRIDE_FAILED]: {\n code: ERROR_CODES.NETWORK_OVERRIDE_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Network,\n userMessage: 'errors.network.override_failed',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n\n // Generic\n [ERROR_CODES.UNKNOWN_ERROR]: {\n code: ERROR_CODES.UNKNOWN_ERROR,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Unknown,\n userMessage: 'errors.unknown',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n // ===== Notification Package Error Definitions =====\n // Provider errors (retryable)\n [ERROR_CODES.NOTIFICATION_PROVIDER_SEND_FAILED]: {\n code: ERROR_CODES.NOTIFICATION_PROVIDER_SEND_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Provider,\n severity: ERROR_SEVERITY.High,\n retryable: true,\n userMessage: 'errors.notification.provider.send_failed',\n },\n [ERROR_CODES.NOTIFICATION_PROVIDER_CONFIGURATION_INVALID]: {\n code: ERROR_CODES.NOTIFICATION_PROVIDER_CONFIGURATION_INVALID,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Configuration,\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n userMessage: 'errors.notification.provider.configuration_invalid',\n },\n [ERROR_CODES.NOTIFICATION_PROVIDER_RATE_LIMIT]: {\n code: ERROR_CODES.NOTIFICATION_PROVIDER_RATE_LIMIT,\n status: HTTP_STATUS.TOO_MANY_REQUESTS,\n category: ERROR_CATEGORY.RateLimit,\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n userMessage: 'errors.notification.provider.rate_limit',\n },\n [ERROR_CODES.NOTIFICATION_PROVIDER_AUTH_FAILED]: {\n code: ERROR_CODES.NOTIFICATION_PROVIDER_AUTH_FAILED,\n status: HTTP_STATUS.UNAUTHORIZED,\n category: ERROR_CATEGORY.Provider,\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n userMessage: 'errors.notification.provider.auth_failed',\n },\n [ERROR_CODES.NOTIFICATION_PROVIDER_TIMEOUT]: {\n code: ERROR_CODES.NOTIFICATION_PROVIDER_TIMEOUT,\n status: HTTP_STATUS.GATEWAY_TIMEOUT,\n category: ERROR_CATEGORY.Network,\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n userMessage: 'errors.notification.provider.timeout',\n },\n [ERROR_CODES.NOTIFICATION_PROVIDER_UNAVAILABLE]: {\n code: ERROR_CODES.NOTIFICATION_PROVIDER_UNAVAILABLE,\n status: HTTP_STATUS.SERVICE_UNAVAILABLE,\n category: ERROR_CATEGORY.Provider,\n severity: ERROR_SEVERITY.High,\n retryable: true,\n userMessage: 'errors.notification.provider.unavailable',\n },\n [ERROR_CODES.NOTIFICATION_PROVIDER_FEATURE_NOT_SUPPORTED]: {\n code: ERROR_CODES.NOTIFICATION_PROVIDER_FEATURE_NOT_SUPPORTED,\n status: HTTP_STATUS.NOT_IMPLEMENTED,\n category: ERROR_CATEGORY.Provider,\n severity: ERROR_SEVERITY.Low,\n retryable: false,\n userMessage: 'errors.notification.provider.feature_not_supported',\n },\n [ERROR_CODES.NOTIFICATION_ALL_PROVIDERS_FAILED]: {\n code: ERROR_CODES.NOTIFICATION_ALL_PROVIDERS_FAILED,\n status: HTTP_STATUS.SERVICE_UNAVAILABLE,\n category: ERROR_CATEGORY.Provider,\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n userMessage: 'errors.notification.all_providers_failed',\n },\n\n // Validation errors (non-retryable)\n [ERROR_CODES.NOTIFICATION_INVALID_INPUT]: {\n code: ERROR_CODES.NOTIFICATION_INVALID_INPUT,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n userMessage: 'errors.notification.validation.invalid_input',\n },\n [ERROR_CODES.NOTIFICATION_INVALID_RECIPIENT]: {\n code: ERROR_CODES.NOTIFICATION_INVALID_RECIPIENT,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n userMessage: 'errors.notification.validation.invalid_recipient',\n },\n [ERROR_CODES.NOTIFICATION_INVALID_TEMPLATE]: {\n code: ERROR_CODES.NOTIFICATION_INVALID_TEMPLATE,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Template,\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n userMessage: 'errors.notification.validation.invalid_template',\n },\n [ERROR_CODES.NOTIFICATION_INVALID_PAYLOAD]: {\n code: ERROR_CODES.NOTIFICATION_INVALID_PAYLOAD,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n userMessage: 'errors.notification.validation.invalid_payload',\n },\n [ERROR_CODES.NOTIFICATION_MISSING_REQUIRED_FIELD]: {\n code: ERROR_CODES.NOTIFICATION_MISSING_REQUIRED_FIELD,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n userMessage: 'errors.notification.validation.required_field_missing',\n },\n [ERROR_CODES.NOTIFICATION_VALIDATION_FAILED]: {\n code: ERROR_CODES.NOTIFICATION_VALIDATION_FAILED,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n userMessage: 'errors.notification.validation.failed',\n },\n\n // User Preferences\n [ERROR_CODES.NOTIFICATION_USER_OPTED_OUT]: {\n code: ERROR_CODES.NOTIFICATION_USER_OPTED_OUT,\n status: HTTP_STATUS.OK,\n category: ERROR_CATEGORY.Validation,\n severity: ERROR_SEVERITY.Low,\n retryable: false,\n userMessage: 'errors.notification.user.opted_out',\n },\n\n // Queue errors (retryable)\n [ERROR_CODES.NOTIFICATION_QUEUE_FULL]: {\n code: ERROR_CODES.NOTIFICATION_QUEUE_FULL,\n status: HTTP_STATUS.SERVICE_UNAVAILABLE,\n category: ERROR_CATEGORY.Queue,\n severity: ERROR_SEVERITY.High,\n retryable: true,\n userMessage: 'errors.notification.queue.full',\n },\n [ERROR_CODES.NOTIFICATION_QUEUE_PROCESSING_FAILED]: {\n code: ERROR_CODES.NOTIFICATION_QUEUE_PROCESSING_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Queue,\n severity: ERROR_SEVERITY.High,\n retryable: true,\n userMessage: 'errors.notification.queue.processing_failed',\n },\n\n // Webhook errors\n [ERROR_CODES.NOTIFICATION_WEBHOOK_SIGNATURE_INVALID]: {\n code: ERROR_CODES.NOTIFICATION_WEBHOOK_SIGNATURE_INVALID,\n status: HTTP_STATUS.UNAUTHORIZED,\n category: ERROR_CATEGORY.Webhook,\n severity: ERROR_SEVERITY.High,\n retryable: false,\n userMessage: 'errors.notification.webhook.signature_invalid',\n },\n [ERROR_CODES.NOTIFICATION_WEBHOOK_VALIDATION_FAILED]: {\n code: ERROR_CODES.NOTIFICATION_WEBHOOK_VALIDATION_FAILED,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Webhook,\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n userMessage: 'errors.notification.webhook.validation_failed',\n },\n [ERROR_CODES.NOTIFICATION_WEBHOOK_PROCESSING_FAILED]: {\n code: ERROR_CODES.NOTIFICATION_WEBHOOK_PROCESSING_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Webhook,\n severity: ERROR_SEVERITY.High,\n retryable: true,\n userMessage: 'errors.notification.webhook.processing_failed',\n },\n\n // Template errors\n [ERROR_CODES.NOTIFICATION_TEMPLATE_NOT_FOUND]: {\n code: ERROR_CODES.NOTIFICATION_TEMPLATE_NOT_FOUND,\n status: HTTP_STATUS.NOT_FOUND,\n category: ERROR_CATEGORY.Template,\n severity: ERROR_SEVERITY.High,\n retryable: false,\n userMessage: 'errors.notification.template.not_found',\n },\n [ERROR_CODES.NOTIFICATION_TEMPLATE_RENDER_FAILED]: {\n code: ERROR_CODES.NOTIFICATION_TEMPLATE_RENDER_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Template,\n severity: ERROR_SEVERITY.High,\n retryable: false,\n userMessage: 'errors.notification.template.render_failed',\n },\n\n // General notification errors\n [ERROR_CODES.NOTIFICATION_UNKNOWN_ERROR]: {\n code: ERROR_CODES.NOTIFICATION_UNKNOWN_ERROR,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Unknown,\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n userMessage: 'errors.notification.unknown',\n },\n [ERROR_CODES.NOTIFICATION_INITIALIZATION_FAILED]: {\n code: ERROR_CODES.NOTIFICATION_INITIALIZATION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Configuration,\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n userMessage: 'errors.notification.initialization_failed',\n },\n\n // ===== Storage Package Error Definitions =====\n\n // General\n [ERROR_CODES.STORAGE_UNKNOWN_ERROR]: {\n code: ERROR_CODES.STORAGE_UNKNOWN_ERROR,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Unknown,\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n userMessage: 'errors.storage.unknown',\n },\n [ERROR_CODES.STORAGE_INITIALIZATION_FAILED]: {\n code: ERROR_CODES.STORAGE_INITIALIZATION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Configuration,\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n userMessage: 'errors.storage.initialization_failed',\n },\n\n // Adapter errors\n [ERROR_CODES.STORAGE_ADAPTER_NOT_FOUND]: {\n code: ERROR_CODES.STORAGE_ADAPTER_NOT_FOUND,\n status: HTTP_STATUS.NOT_FOUND,\n category: ERROR_CATEGORY.Configuration,\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n userMessage: 'errors.storage.adapter.not_found',\n },\n [ERROR_CODES.STORAGE_ADAPTER_INITIALIZATION_FAILED]: {\n code: ERROR_CODES.STORAGE_ADAPTER_INITIALIZATION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.ExternalService,\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n userMessage: 'errors.storage.adapter.initialization_failed',\n },\n [ERROR_CODES.STORAGE_ADAPTER_CONFIGURATION_INVALID]: {\n code: ERROR_CODES.STORAGE_ADAPTER_CONFIGURATION_INVALID,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Configuration,\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n userMessage: 'errors.storage.adapter.configuration_invalid',\n },\n [ERROR_CODES.STORAGE_ADAPTER_ALREADY_REGISTERED]: {\n code: ERROR_CODES.STORAGE_ADAPTER_ALREADY_REGISTERED,\n status: HTTP_STATUS.CONFLICT,\n category: ERROR_CATEGORY.Configuration,\n severity: ERROR_SEVERITY.High,\n retryable: false,\n userMessage: 'errors.storage.adapter.already_registered',\n },\n [ERROR_CODES.STORAGE_ADAPTER_CONNECTION_FAILED]: {\n code: ERROR_CODES.STORAGE_ADAPTER_CONNECTION_FAILED,\n status: HTTP_STATUS.SERVICE_UNAVAILABLE,\n category: ERROR_CATEGORY.Network,\n severity: ERROR_SEVERITY.High,\n retryable: true,\n userMessage: 'errors.storage.adapter.connection_failed',\n },\n [ERROR_CODES.STORAGE_ADAPTER_AUTHENTICATION_FAILED]: {\n code: ERROR_CODES.STORAGE_ADAPTER_AUTHENTICATION_FAILED,\n status: HTTP_STATUS.UNAUTHORIZED,\n category: ERROR_CATEGORY.Authentication,\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n userMessage: 'errors.storage.adapter.authentication_failed',\n },\n [ERROR_CODES.STORAGE_ADAPTER_OPERATION_FAILED]: {\n code: ERROR_CODES.STORAGE_ADAPTER_OPERATION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.ExternalService,\n severity: ERROR_SEVERITY.High,\n retryable: true,\n userMessage: 'errors.storage.adapter.operation_failed',\n },\n [ERROR_CODES.STORAGE_ADAPTER_HEALTH_CHECK_FAILED]: {\n code: ERROR_CODES.STORAGE_ADAPTER_HEALTH_CHECK_FAILED,\n status: HTTP_STATUS.SERVICE_UNAVAILABLE,\n category: ERROR_CATEGORY.ExternalService,\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n userMessage: 'errors.storage.adapter.health_check_failed',\n },\n [ERROR_CODES.STORAGE_ADAPTER_UNAVAILABLE]: {\n code: ERROR_CODES.STORAGE_ADAPTER_UNAVAILABLE,\n status: HTTP_STATUS.SERVICE_UNAVAILABLE,\n category: ERROR_CATEGORY.ExternalService,\n severity: ERROR_SEVERITY.High,\n retryable: true,\n userMessage: 'errors.storage.adapter.unavailable',\n },\n [ERROR_CODES.STORAGE_ADAPTER_TIMEOUT]: {\n code: ERROR_CODES.STORAGE_ADAPTER_TIMEOUT,\n status: HTTP_STATUS.GATEWAY_TIMEOUT,\n category: ERROR_CATEGORY.Timeout,\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n userMessage: 'errors.storage.adapter.timeout',\n },\n [ERROR_CODES.STORAGE_ADAPTER_RATE_LIMIT]: {\n code: ERROR_CODES.STORAGE_ADAPTER_RATE_LIMIT,\n status: HTTP_STATUS.TOO_MANY_REQUESTS,\n category: ERROR_CATEGORY.RateLimit,\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n userMessage: 'errors.storage.adapter.rate_limit',\n },\n [ERROR_CODES.STORAGE_ADAPTER_QUOTA_EXCEEDED]: {\n code: ERROR_CODES.STORAGE_ADAPTER_QUOTA_EXCEEDED,\n status: HTTP_STATUS.INSUFFICIENT_STORAGE,\n category: ERROR_CATEGORY.Quota,\n severity: ERROR_SEVERITY.High,\n retryable: false,\n userMessage: 'errors.storage.adapter.quota_exceeded',\n },\n [ERROR_CODES.STORAGE_ADAPTER_UNSUPPORTED_OPERATION]: {\n code: ERROR_CODES.STORAGE_ADAPTER_UNSUPPORTED_OPERATION,\n status: HTTP_STATUS.NOT_IMPLEMENTED,\n category: ERROR_CATEGORY.ExternalService,\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n userMessage: 'errors.storage.adapter.unsupported_operation',\n },\n [ERROR_CODES.STORAGE_ADAPTER_FEATURE_NOT_SUPPORTED]: {\n code: ERROR_CODES.STORAGE_ADAPTER_FEATURE_NOT_SUPPORTED,\n status: HTTP_STATUS.NOT_IMPLEMENTED,\n category: ERROR_CATEGORY.ExternalService,\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n userMessage: 'errors.storage.adapter.feature_not_supported',\n },\n [ERROR_CODES.STORAGE_NO_HEALTHY_ADAPTERS]: {\n code: ERROR_CODES.STORAGE_NO_HEALTHY_ADAPTERS,\n status: HTTP_STATUS.SERVICE_UNAVAILABLE,\n category: ERROR_CATEGORY.ExternalService,\n severity: ERROR_SEVERITY.Critical,\n retryable: true,\n userMessage: 'errors.storage.no_healthy_adapters',\n },\n [ERROR_CODES.STORAGE_ALL_ADAPTERS_FAILED]: {\n code: ERROR_CODES.STORAGE_ALL_ADAPTERS_FAILED,\n status: HTTP_STATUS.SERVICE_UNAVAILABLE,\n category: ERROR_CATEGORY.ExternalService,\n severity: ERROR_SEVERITY.Critical,\n retryable: true,\n userMessage: 'errors.storage.all_adapters_failed',\n },\n\n // File Validation\n [ERROR_CODES.STORAGE_FILE_TOO_LARGE]: {\n code: ERROR_CODES.STORAGE_FILE_TOO_LARGE,\n status: HTTP_STATUS.PAYLOAD_TOO_LARGE,\n category: ERROR_CATEGORY.Validation,\n severity: ERROR_SEVERITY.Low,\n retryable: false,\n userMessage: 'errors.storage.file.too_large',\n },\n [ERROR_CODES.STORAGE_FILE_TOO_SMALL]: {\n code: ERROR_CODES.STORAGE_FILE_TOO_SMALL,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n severity: ERROR_SEVERITY.Low,\n retryable: false,\n userMessage: 'errors.storage.file.too_small',\n },\n [ERROR_CODES.STORAGE_FILE_SIZE_INVALID]: {\n code: ERROR_CODES.STORAGE_FILE_SIZE_INVALID,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n severity: ERROR_SEVERITY.Low,\n retryable: false,\n userMessage: 'errors.storage.file.size.invalid',\n },\n [ERROR_CODES.STORAGE_FILE_TYPE_NOT_ALLOWED]: {\n code: ERROR_CODES.STORAGE_FILE_TYPE_NOT_ALLOWED,\n status: HTTP_STATUS.UNSUPPORTED_MEDIA_TYPE,\n category: ERROR_CATEGORY.Security,\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n userMessage: 'errors.storage.file.type.not_allowed',\n },\n [ERROR_CODES.STORAGE_INVALID_MIME_TYPE]: {\n code: ERROR_CODES.STORAGE_INVALID_MIME_TYPE,\n status: HTTP_STATUS.UNSUPPORTED_MEDIA_TYPE,\n category: ERROR_CATEGORY.Validation,\n severity: ERROR_SEVERITY.Low,\n retryable: false,\n userMessage: 'errors.storage.mime_type.invalid',\n },\n [ERROR_CODES.STORAGE_INVALID_FILE_EXTENSION]: {\n code: ERROR_CODES.STORAGE_INVALID_FILE_EXTENSION,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n severity: ERROR_SEVERITY.Low,\n retryable: false,\n userMessage: 'errors.storage.extension.invalid',\n },\n [ERROR_CODES.STORAGE_FILE_EXTENSION_INVALID]: {\n code: ERROR_CODES.STORAGE_FILE_EXTENSION_INVALID,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n severity: ERROR_SEVERITY.Low,\n retryable: false,\n userMessage: 'errors.storage.file.extension.invalid',\n },\n [ERROR_CODES.STORAGE_FILE_EXTENSION_MISMATCH]: {\n code: ERROR_CODES.STORAGE_FILE_EXTENSION_MISMATCH,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n userMessage: 'errors.storage.file.extension.mismatch',\n },\n [ERROR_CODES.STORAGE_EXECUTABLE_NOT_ALLOWED]: {\n code: ERROR_CODES.STORAGE_EXECUTABLE_NOT_ALLOWED,\n status: HTTP_STATUS.FORBIDDEN,\n category: ERROR_CATEGORY.Security,\n severity: ERROR_SEVERITY.High,\n retryable: false,\n userMessage: 'errors.storage.executable_not_allowed',\n },\n [ERROR_CODES.STORAGE_VALIDATION_FAILED]: {\n code: ERROR_CODES.STORAGE_VALIDATION_FAILED,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n severity: ERROR_SEVERITY.Low,\n retryable: false,\n userMessage: 'errors.storage.validation.failed',\n },\n [ERROR_CODES.STORAGE_INVALID_FILE_CONTENT]: {\n code: ERROR_CODES.STORAGE_INVALID_FILE_CONTENT,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n userMessage: 'errors.storage.validation.invalid_file_content',\n },\n\n // Security\n [ERROR_CODES.STORAGE_SECURITY_VIRUS_DETECTED]: {\n code: ERROR_CODES.STORAGE_SECURITY_VIRUS_DETECTED,\n status: HTTP_STATUS.FORBIDDEN,\n category: ERROR_CATEGORY.Security,\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n userMessage: 'errors.storage.security.virus_detected',\n },\n [ERROR_CODES.STORAGE_SECURITY_SCAN_FAILED]: {\n code: ERROR_CODES.STORAGE_SECURITY_SCAN_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Security,\n severity: ERROR_SEVERITY.High,\n retryable: true,\n userMessage: 'errors.storage.security.scan_failed',\n },\n [ERROR_CODES.STORAGE_SECURITY_ACCESS_DENIED]: {\n code: ERROR_CODES.STORAGE_SECURITY_ACCESS_DENIED,\n status: HTTP_STATUS.FORBIDDEN,\n category: ERROR_CATEGORY.Authorization,\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n userMessage: 'errors.storage.security.access_denied',\n },\n [ERROR_CODES.STORAGE_SECURITY_ENCRYPTION_FAILED]: {\n code: ERROR_CODES.STORAGE_SECURITY_ENCRYPTION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Security,\n severity: ERROR_SEVERITY.High,\n retryable: true,\n userMessage: 'errors.storage.security.encryption_failed',\n },\n\n // File Operations\n [ERROR_CODES.STORAGE_FILE_UPLOAD_FAILED]: {\n code: ERROR_CODES.STORAGE_FILE_UPLOAD_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.FileOperation,\n severity: ERROR_SEVERITY.High,\n retryable: true,\n userMessage: 'errors.storage.file.upload_failed',\n },\n [ERROR_CODES.STORAGE_FILE_DOWNLOAD_FAILED]: {\n code: ERROR_CODES.STORAGE_FILE_DOWNLOAD_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.FileOperation,\n severity: ERROR_SEVERITY.High,\n retryable: true,\n userMessage: 'errors.storage.file.download_failed',\n },\n [ERROR_CODES.STORAGE_FILE_DELETE_FAILED]: {\n code: ERROR_CODES.STORAGE_FILE_DELETE_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.FileOperation,\n severity: ERROR_SEVERITY.High,\n retryable: true,\n userMessage: 'errors.storage.file.delete_failed',\n },\n [ERROR_CODES.STORAGE_FILE_UPDATE_FAILED]: {\n code: ERROR_CODES.STORAGE_FILE_UPDATE_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.FileOperation,\n severity: ERROR_SEVERITY.High,\n retryable: true,\n userMessage: 'errors.storage.file.update_failed',\n },\n [ERROR_CODES.STORAGE_FILE_NOT_FOUND]: {\n code: ERROR_CODES.STORAGE_FILE_NOT_FOUND,\n status: HTTP_STATUS.NOT_FOUND,\n category: ERROR_CATEGORY.NotFound,\n severity: ERROR_SEVERITY.Low,\n retryable: false,\n userMessage: 'errors.storage.file.not_found',\n },\n [ERROR_CODES.STORAGE_FILE_ALREADY_EXISTS]: {\n code: ERROR_CODES.STORAGE_FILE_ALREADY_EXISTS,\n status: HTTP_STATUS.CONFLICT,\n category: ERROR_CATEGORY.Conflict,\n severity: ERROR_SEVERITY.Low,\n retryable: false,\n userMessage: 'errors.storage.file.already_exists',\n },\n [ERROR_CODES.STORAGE_FILE_MOVE_FAILED]: {\n code: ERROR_CODES.STORAGE_FILE_MOVE_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.FileOperation,\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n userMessage: 'errors.storage.file.move_failed',\n },\n [ERROR_CODES.STORAGE_FILE_COPY_FAILED]: {\n code: ERROR_CODES.STORAGE_FILE_COPY_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.FileOperation,\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n userMessage: 'errors.storage.file.copy_failed',\n },\n [ERROR_CODES.STORAGE_FILE_READ_FAILED]: {\n code: ERROR_CODES.STORAGE_FILE_READ_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.FileOperation,\n severity: ERROR_SEVERITY.High,\n retryable: true,\n userMessage: 'errors.storage.file.read_failed',\n },\n [ERROR_CODES.STORAGE_FILE_WRITE_FAILED]: {\n code: ERROR_CODES.STORAGE_FILE_WRITE_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.FileOperation,\n severity: ERROR_SEVERITY.High,\n retryable: true,\n userMessage: 'errors.storage.file.write_failed',\n },\n [ERROR_CODES.STORAGE_FILE_CORRUPTED]: {\n code: ERROR_CODES.STORAGE_FILE_CORRUPTED,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n userMessage: 'errors.storage.file.corrupted',\n },\n [ERROR_CODES.STORAGE_INVALID_OPERATION]: {\n code: ERROR_CODES.STORAGE_INVALID_OPERATION,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n severity: ERROR_SEVERITY.Low,\n retryable: false,\n userMessage: 'errors.storage.invalid_operation',\n },\n\n // Metadata\n [ERROR_CODES.STORAGE_METADATA_EXTRACTION_FAILED]: {\n code: ERROR_CODES.STORAGE_METADATA_EXTRACTION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Processing,\n severity: ERROR_SEVERITY.Low,\n retryable: true,\n userMessage: 'errors.storage.metadata.extraction_failed',\n },\n [ERROR_CODES.STORAGE_METADATA_INVALID]: {\n code: ERROR_CODES.STORAGE_METADATA_INVALID,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n severity: ERROR_SEVERITY.Low,\n retryable: false,\n userMessage: 'errors.storage.metadata.invalid',\n },\n [ERROR_CODES.STORAGE_METADATA_UPDATE_FAILED]: {\n code: ERROR_CODES.STORAGE_METADATA_UPDATE_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Processing,\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n userMessage: 'errors.storage.metadata.update_failed',\n },\n\n // Media Processing\n [ERROR_CODES.STORAGE_MEDIA_PROCESSING_FAILED]: {\n code: ERROR_CODES.STORAGE_MEDIA_PROCESSING_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Processing,\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n userMessage: 'errors.storage.media.processing_failed',\n },\n [ERROR_CODES.STORAGE_MEDIA_RESIZE_FAILED]: {\n code: ERROR_CODES.STORAGE_MEDIA_RESIZE_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Processing,\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n userMessage: 'errors.storage.media.resize_failed',\n },\n [ERROR_CODES.STORAGE_MEDIA_FORMAT_UNSUPPORTED]: {\n code: ERROR_CODES.STORAGE_MEDIA_FORMAT_UNSUPPORTED,\n status: HTTP_STATUS.UNSUPPORTED_MEDIA_TYPE,\n category: ERROR_CATEGORY.Validation,\n severity: ERROR_SEVERITY.Low,\n retryable: false,\n userMessage: 'errors.storage.media.format_unsupported',\n },\n [ERROR_CODES.STORAGE_MEDIA_TRANSCODE_FAILED]: {\n code: ERROR_CODES.STORAGE_MEDIA_TRANSCODE_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Processing,\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n userMessage: 'errors.storage.media.transcode_failed',\n },\n [ERROR_CODES.STORAGE_MEDIA_THUMBNAIL_FAILED]: {\n code: ERROR_CODES.STORAGE_MEDIA_THUMBNAIL_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Processing,\n severity: ERROR_SEVERITY.Low,\n retryable: true,\n userMessage: 'errors.storage.media.thumbnail_failed',\n },\n [ERROR_CODES.STORAGE_MEDIA_INVALID_DIMENSIONS]: {\n code: ERROR_CODES.STORAGE_MEDIA_INVALID_DIMENSIONS,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n severity: ERROR_SEVERITY.Low,\n retryable: false,\n userMessage: 'errors.storage.media.invalid_dimensions',\n },\n\n // Template & PDF\n [ERROR_CODES.STORAGE_TEMPLATE_NOT_FOUND]: {\n code: ERROR_CODES.STORAGE_TEMPLATE_NOT_FOUND,\n status: HTTP_STATUS.NOT_FOUND,\n category: ERROR_CATEGORY.NotFound,\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n userMessage: 'errors.storage.template.not_found',\n },\n [ERROR_CODES.STORAGE_TEMPLATE_RENDER_FAILED]: {\n code: ERROR_CODES.STORAGE_TEMPLATE_RENDER_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Template,\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n userMessage: 'errors.storage.template.render_failed',\n },\n [ERROR_CODES.STORAGE_PDF_GENERATION_FAILED]: {\n code: ERROR_CODES.STORAGE_PDF_GENERATION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Processing,\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n userMessage: 'errors.storage.pdf.generation_failed',\n },\n [ERROR_CODES.STORAGE_PDF_RENDERING_TIMEOUT]: {\n code: ERROR_CODES.STORAGE_PDF_RENDERING_TIMEOUT,\n status: HTTP_STATUS.GATEWAY_TIMEOUT,\n category: ERROR_CATEGORY.Timeout,\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n userMessage: 'errors.storage.pdf.rendering_timeout',\n },\n\n // Queue\n [ERROR_CODES.STORAGE_QUEUE_FULL]: {\n code: ERROR_CODES.STORAGE_QUEUE_FULL,\n status: HTTP_STATUS.SERVICE_UNAVAILABLE,\n category: ERROR_CATEGORY.Queue,\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n userMessage: 'errors.storage.queue.full',\n },\n [ERROR_CODES.STORAGE_QUEUE_PROCESSING_FAILED]: {\n code: ERROR_CODES.STORAGE_QUEUE_PROCESSING_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Queue,\n severity: ERROR_SEVERITY.High,\n retryable: true,\n userMessage: 'errors.storage.queue.processing_failed',\n },\n [ERROR_CODES.STORAGE_QUEUE_ITEM_NOT_FOUND]: {\n code: ERROR_CODES.STORAGE_QUEUE_ITEM_NOT_FOUND,\n status: HTTP_STATUS.NOT_FOUND,\n category: ERROR_CATEGORY.NotFound,\n severity: ERROR_SEVERITY.Low,\n retryable: false,\n userMessage: 'errors.storage.queue.item_not_found',\n },\n\n // Compliance\n [ERROR_CODES.STORAGE_COMPLIANCE_VIOLATION]: {\n code: ERROR_CODES.STORAGE_COMPLIANCE_VIOLATION,\n status: HTTP_STATUS.FORBIDDEN,\n category: ERROR_CATEGORY.Compliance,\n severity: ERROR_SEVERITY.High,\n retryable: false,\n userMessage: 'errors.storage.compliance.violation',\n },\n [ERROR_CODES.STORAGE_COMPLIANCE_RETENTION_EXPIRED]: {\n code: ERROR_CODES.STORAGE_COMPLIANCE_RETENTION_EXPIRED,\n status: HTTP_STATUS.GONE,\n category: ERROR_CATEGORY.Compliance,\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n userMessage: 'errors.storage.compliance.retention_expired',\n },\n [ERROR_CODES.STORAGE_COMPLIANCE_IMMUTABLE_FILE]: {\n code: ERROR_CODES.STORAGE_COMPLIANCE_IMMUTABLE_FILE,\n status: HTTP_STATUS.FORBIDDEN,\n category: ERROR_CATEGORY.Compliance,\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n userMessage: 'errors.storage.compliance.immutable_file',\n },\n [ERROR_CODES.STORAGE_COMPLIANCE_POLICY_NOT_FOUND]: {\n code: ERROR_CODES.STORAGE_COMPLIANCE_POLICY_NOT_FOUND,\n status: HTTP_STATUS.NOT_FOUND,\n category: ERROR_CATEGORY.Configuration,\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n userMessage: 'errors.storage.compliance.policy_not_found',\n },\n [ERROR_CODES.STORAGE_COMPLIANCE_RETENTION_VIOLATION]: {\n code: ERROR_CODES.STORAGE_COMPLIANCE_RETENTION_VIOLATION,\n status: HTTP_STATUS.FORBIDDEN,\n category: ERROR_CATEGORY.Compliance,\n severity: ERROR_SEVERITY.High,\n retryable: false,\n userMessage: 'errors.storage.compliance.retention_violation',\n },\n [ERROR_CODES.STORAGE_COMPLIANCE_SOFT_DELETE_REQUIRED]: {\n code: ERROR_CODES.STORAGE_COMPLIANCE_SOFT_DELETE_REQUIRED,\n status: HTTP_STATUS.FORBIDDEN,\n category: ERROR_CATEGORY.Compliance,\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n userMessage: 'errors.storage.compliance.soft_delete_required',\n },\n [ERROR_CODES.STORAGE_COMPLIANCE_GRACE_PERIOD_ACTIVE]: {\n code: ERROR_CODES.STORAGE_COMPLIANCE_GRACE_PERIOD_ACTIVE,\n status: HTTP_STATUS.CONFLICT,\n category: ERROR_CATEGORY.Compliance,\n severity: ERROR_SEVERITY.Low,\n retryable: false,\n userMessage: 'errors.storage.compliance.grace_period_active',\n },\n [ERROR_CODES.STORAGE_COMPLIANCE_DEFERRED_DELETION]: {\n code: ERROR_CODES.STORAGE_COMPLIANCE_DEFERRED_DELETION,\n status: HTTP_STATUS.ACCEPTED,\n category: ERROR_CATEGORY.Compliance,\n severity: ERROR_SEVERITY.Low,\n retryable: false,\n userMessage: 'errors.storage.compliance.deferred_deletion',\n },\n [ERROR_CODES.STORAGE_COMPLIANCE_PATTERN_PROTECTED]: {\n code: ERROR_CODES.STORAGE_COMPLIANCE_PATTERN_PROTECTED,\n status: HTTP_STATUS.FORBIDDEN,\n category: ERROR_CATEGORY.Compliance,\n severity: ERROR_SEVERITY.High,\n retryable: false,\n userMessage: 'errors.storage.compliance.pattern_protected',\n },\n\n // Share Links\n [ERROR_CODES.STORAGE_SHARE_LINK_NOT_FOUND]: {\n code: ERROR_CODES.STORAGE_SHARE_LINK_NOT_FOUND,\n status: HTTP_STATUS.NOT_FOUND,\n category: ERROR_CATEGORY.NotFound,\n severity: ERROR_SEVERITY.Low,\n retryable: false,\n userMessage: 'errors.storage.share_link.not_found',\n },\n [ERROR_CODES.STORAGE_SHARE_LINK_EXPIRED]: {\n code: ERROR_CODES.STORAGE_SHARE_LINK_EXPIRED,\n status: HTTP_STATUS.GONE,\n category: ERROR_CATEGORY.Validation,\n severity: ERROR_SEVERITY.Low,\n retryable: false,\n userMessage: 'errors.storage.share_link.expired',\n },\n [ERROR_CODES.STORAGE_SHARE_LINK_MAX_DOWNLOADS]: {\n code: ERROR_CODES.STORAGE_SHARE_LINK_MAX_DOWNLOADS,\n status: HTTP_STATUS.FORBIDDEN,\n category: ERROR_CATEGORY.Limits,\n severity: ERROR_SEVERITY.Low,\n retryable: false,\n userMessage: 'errors.storage.share_link.max_downloads',\n },\n [ERROR_CODES.STORAGE_SHARE_LINK_INVALID_PASSWORD]: {\n code: ERROR_CODES.STORAGE_SHARE_LINK_INVALID_PASSWORD,\n status: HTTP_STATUS.UNAUTHORIZED,\n category: ERROR_CATEGORY.Authentication,\n severity: ERROR_SEVERITY.Low,\n retryable: false,\n userMessage: 'errors.storage.share_link.invalid_password',\n },\n\n // Plugin\n [ERROR_CODES.STORAGE_PLUGIN_NOT_FOUND]: {\n code: ERROR_CODES.STORAGE_PLUGIN_NOT_FOUND,\n status: HTTP_STATUS.NOT_FOUND,\n category: ERROR_CATEGORY.Plugin,\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n userMessage: 'errors.storage.plugin.not_found',\n },\n [ERROR_CODES.STORAGE_PLUGIN_INITIALIZATION_FAILED]: {\n code: ERROR_CODES.STORAGE_PLUGIN_INITIALIZATION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Plugin,\n severity: ERROR_SEVERITY.High,\n retryable: false,\n userMessage: 'errors.storage.plugin.initialization_failed',\n },\n [ERROR_CODES.STORAGE_PLUGIN_EXECUTION_FAILED]: {\n code: ERROR_CODES.STORAGE_PLUGIN_EXECUTION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Plugin,\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n userMessage: 'errors.storage.plugin.execution_failed',\n },\n\n // VirusTotal Provider (Plugin)\n [ERROR_CODES.STORAGE_VIRUSTOTAL_BAD_REQUEST]: {\n code: ERROR_CODES.STORAGE_VIRUSTOTAL_BAD_REQUEST,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n severity: ERROR_SEVERITY.Low,\n retryable: false,\n userMessage: 'errors.storage.virustotal.bad_request',\n },\n [ERROR_CODES.STORAGE_VIRUSTOTAL_AUTHENTICATION_REQUIRED]: {\n code: ERROR_CODES.STORAGE_VIRUSTOTAL_AUTHENTICATION_REQUIRED,\n status: HTTP_STATUS.UNAUTHORIZED,\n category: ERROR_CATEGORY.Authentication,\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n userMessage: 'errors.storage.virustotal.authentication_required',\n },\n [ERROR_CODES.STORAGE_VIRUSTOTAL_WRONG_CREDENTIALS]: {\n code: ERROR_CODES.STORAGE_VIRUSTOTAL_WRONG_CREDENTIALS,\n status: HTTP_STATUS.UNAUTHORIZED,\n category: ERROR_CATEGORY.Authentication,\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n userMessage: 'errors.storage.virustotal.wrong_credentials',\n },\n [ERROR_CODES.STORAGE_VIRUSTOTAL_FILE_TOO_LARGE]: {\n code: ERROR_CODES.STORAGE_VIRUSTOTAL_FILE_TOO_LARGE,\n status: HTTP_STATUS.PAYLOAD_TOO_LARGE,\n category: ERROR_CATEGORY.Validation,\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n userMessage: 'errors.storage.virustotal.file_too_large',\n },\n [ERROR_CODES.STORAGE_VIRUSTOTAL_QUOTA_EXCEEDED]: {\n code: ERROR_CODES.STORAGE_VIRUSTOTAL_QUOTA_EXCEEDED,\n status: HTTP_STATUS.TOO_MANY_REQUESTS,\n category: ERROR_CATEGORY.Quota,\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n userMessage: 'errors.storage.virustotal.quota_exceeded',\n },\n [ERROR_CODES.STORAGE_VIRUSTOTAL_ANALYSIS_NOT_FOUND]: {\n code: ERROR_CODES.STORAGE_VIRUSTOTAL_ANALYSIS_NOT_FOUND,\n status: HTTP_STATUS.NOT_FOUND,\n category: ERROR_CATEGORY.NotFound,\n severity: ERROR_SEVERITY.Low,\n retryable: false,\n userMessage: 'errors.storage.virustotal.analysis_not_found',\n },\n [ERROR_CODES.STORAGE_VIRUSTOTAL_SCAN_TIMEOUT]: {\n code: ERROR_CODES.STORAGE_VIRUSTOTAL_SCAN_TIMEOUT,\n status: HTTP_STATUS.GATEWAY_TIMEOUT,\n category: ERROR_CATEGORY.Timeout,\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n userMessage: 'errors.storage.virustotal.scan_timeout',\n },\n [ERROR_CODES.STORAGE_VIRUSTOTAL_SCAN_FAILED]: {\n code: ERROR_CODES.STORAGE_VIRUSTOTAL_SCAN_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Plugin,\n severity: ERROR_SEVERITY.High,\n retryable: true,\n userMessage: 'errors.storage.virustotal.scan_failed',\n },\n\n // CDN Providers (Plugins)\n // Cloudflare\n [ERROR_CODES.CLOUDFLARE_AUTHENTICATION_FAILED]: {\n code: ERROR_CODES.CLOUDFLARE_AUTHENTICATION_FAILED,\n status: HTTP_STATUS.UNAUTHORIZED,\n category: ERROR_CATEGORY.Authentication,\n severity: ERROR_SEVERITY.High,\n retryable: false,\n userMessage: 'errors.cloudflare.authentication.failed',\n },\n [ERROR_CODES.CLOUDFLARE_ZONE_NOT_FOUND]: {\n code: ERROR_CODES.CLOUDFLARE_ZONE_NOT_FOUND,\n status: HTTP_STATUS.NOT_FOUND,\n category: ERROR_CATEGORY.NotFound,\n severity: ERROR_SEVERITY.High,\n retryable: false,\n userMessage: 'errors.cloudflare.zone.not.found',\n },\n [ERROR_CODES.CLOUDFLARE_PURGE_FAILED]: {\n code: ERROR_CODES.CLOUDFLARE_PURGE_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Plugin,\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n userMessage: 'errors.cloudflare.purge.failed',\n },\n [ERROR_CODES.CLOUDFLARE_RATE_LIMIT_EXCEEDED]: {\n code: ERROR_CODES.CLOUDFLARE_RATE_LIMIT_EXCEEDED,\n status: HTTP_STATUS.TOO_MANY_REQUESTS,\n category: ERROR_CATEGORY.RateLimit,\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n userMessage: 'errors.cloudflare.rate.limit.exceeded',\n },\n [ERROR_CODES.CLOUDFLARE_INVALID_URL]: {\n code: ERROR_CODES.CLOUDFLARE_INVALID_URL,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n severity: ERROR_SEVERITY.Low,\n retryable: false,\n userMessage: 'errors.cloudflare.invalid.url',\n },\n [ERROR_CODES.CLOUDFLARE_API_ERROR]: {\n code: ERROR_CODES.CLOUDFLARE_API_ERROR,\n status: HTTP_STATUS.BAD_GATEWAY,\n category: ERROR_CATEGORY.ExternalService,\n severity: ERROR_SEVERITY.High,\n retryable: true,\n userMessage: 'errors.cloudflare.api.error',\n },\n\n // CloudFront\n [ERROR_CODES.CLOUDFRONT_AUTHENTICATION_FAILED]: {\n code: ERROR_CODES.CLOUDFRONT_AUTHENTICATION_FAILED,\n status: HTTP_STATUS.UNAUTHORIZED,\n category: ERROR_CATEGORY.Authentication,\n severity: ERROR_SEVERITY.High,\n retryable: false,\n userMessage: 'errors.cloudfront.authentication.failed',\n },\n [ERROR_CODES.CLOUDFRONT_DISTRIBUTION_NOT_FOUND]: {\n code: ERROR_CODES.CLOUDFRONT_DISTRIBUTION_NOT_FOUND,\n status: HTTP_STATUS.NOT_FOUND,\n category: ERROR_CATEGORY.NotFound,\n severity: ERROR_SEVERITY.High,\n retryable: false,\n userMessage: 'errors.cloudfront.distribution.not.found',\n },\n [ERROR_CODES.CLOUDFRONT_INVALIDATION_FAILED]: {\n code: ERROR_CODES.CLOUDFRONT_INVALIDATION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Plugin,\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n userMessage: 'errors.cloudfront.invalidation.failed',\n },\n [ERROR_CODES.CLOUDFRONT_QUOTA_EXCEEDED]: {\n code: ERROR_CODES.CLOUDFRONT_QUOTA_EXCEEDED,\n status: HTTP_STATUS.TOO_MANY_REQUESTS,\n category: ERROR_CATEGORY.Quota,\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n userMessage: 'errors.cloudfront.quota.exceeded',\n },\n [ERROR_CODES.CLOUDFRONT_INVALID_PATH]: {\n code: ERROR_CODES.CLOUDFRONT_INVALID_PATH,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n severity: ERROR_SEVERITY.Low,\n retryable: false,\n userMessage: 'errors.cloudfront.invalid.path',\n },\n [ERROR_CODES.CLOUDFRONT_API_ERROR]: {\n code: ERROR_CODES.CLOUDFRONT_API_ERROR,\n status: HTTP_STATUS.BAD_GATEWAY,\n category: ERROR_CATEGORY.ExternalService,\n severity: ERROR_SEVERITY.High,\n retryable: true,\n userMessage: 'errors.cloudfront.api.error',\n },\n\n // Fastly\n [ERROR_CODES.FASTLY_AUTHENTICATION_FAILED]: {\n code: ERROR_CODES.FASTLY_AUTHENTICATION_FAILED,\n status: HTTP_STATUS.UNAUTHORIZED,\n category: ERROR_CATEGORY.Authentication,\n severity: ERROR_SEVERITY.High,\n retryable: false,\n userMessage: 'errors.fastly.authentication.failed',\n },\n [ERROR_CODES.FASTLY_SERVICE_NOT_FOUND]: {\n code: ERROR_CODES.FASTLY_SERVICE_NOT_FOUND,\n status: HTTP_STATUS.NOT_FOUND,\n category: ERROR_CATEGORY.NotFound,\n severity: ERROR_SEVERITY.High,\n retryable: false,\n userMessage: 'errors.fastly.service.not.found',\n },\n [ERROR_CODES.FASTLY_PURGE_FAILED]: {\n code: ERROR_CODES.FASTLY_PURGE_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Plugin,\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n userMessage: 'errors.fastly.purge.failed',\n },\n [ERROR_CODES.FASTLY_RATE_LIMIT_EXCEEDED]: {\n code: ERROR_CODES.FASTLY_RATE_LIMIT_EXCEEDED,\n status: HTTP_STATUS.TOO_MANY_REQUESTS,\n category: ERROR_CATEGORY.RateLimit,\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n userMessage: 'errors.fastly.rate.limit.exceeded',\n },\n [ERROR_CODES.FASTLY_INVALID_URL]: {\n code: ERROR_CODES.FASTLY_INVALID_URL,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n severity: ERROR_SEVERITY.Low,\n retryable: false,\n userMessage: 'errors.fastly.invalid.url',\n },\n [ERROR_CODES.FASTLY_API_ERROR]: {\n code: ERROR_CODES.FASTLY_API_ERROR,\n status: HTTP_STATUS.BAD_GATEWAY,\n category: ERROR_CATEGORY.ExternalService,\n severity: ERROR_SEVERITY.High,\n retryable: true,\n userMessage: 'errors.fastly.api.error',\n },\n\n // Generic CDN\n [ERROR_CODES.CDN_INVALIDATION_FAILED]: {\n code: ERROR_CODES.CDN_INVALIDATION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Plugin,\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n userMessage: 'errors.cdn.invalidation.failed',\n },\n [ERROR_CODES.CDN_CONFIGURATION_INVALID]: {\n code: ERROR_CODES.CDN_CONFIGURATION_INVALID,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Configuration,\n severity: ERROR_SEVERITY.High,\n retryable: false,\n userMessage: 'errors.cdn.configuration.invalid',\n },\n [ERROR_CODES.CDN_PROVIDER_NOT_FOUND]: {\n code: ERROR_CODES.CDN_PROVIDER_NOT_FOUND,\n status: HTTP_STATUS.NOT_FOUND,\n category: ERROR_CATEGORY.NotFound,\n severity: ERROR_SEVERITY.High,\n retryable: false,\n userMessage: 'errors.cdn.provider.not.found',\n },\n\n // Webhook Errors\n [ERROR_CODES.STORAGE_WEBHOOK_SIGNATURE_INVALID]: {\n code: ERROR_CODES.STORAGE_WEBHOOK_SIGNATURE_INVALID,\n status: HTTP_STATUS.UNAUTHORIZED,\n category: ERROR_CATEGORY.Security,\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n userMessage: 'errors.storage.webhook.signature_invalid',\n },\n [ERROR_CODES.STORAGE_WEBHOOK_PAYLOAD_INVALID]: {\n code: ERROR_CODES.STORAGE_WEBHOOK_PAYLOAD_INVALID,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n userMessage: 'errors.storage.webhook.payload_invalid',\n },\n [ERROR_CODES.STORAGE_WEBHOOK_PROCESSING_FAILED]: {\n code: ERROR_CODES.STORAGE_WEBHOOK_PROCESSING_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Processing,\n severity: ERROR_SEVERITY.High,\n retryable: true,\n userMessage: 'errors.storage.webhook.processing_failed',\n },\n [ERROR_CODES.STORAGE_WEBHOOK_TIMEOUT]: {\n code: ERROR_CODES.STORAGE_WEBHOOK_TIMEOUT,\n status: HTTP_STATUS.GATEWAY_TIMEOUT,\n category: ERROR_CATEGORY.Timeout,\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n userMessage: 'errors.storage.webhook.timeout',\n },\n [ERROR_CODES.STORAGE_WEBHOOK_ADAPTER_NOT_FOUND]: {\n code: ERROR_CODES.STORAGE_WEBHOOK_ADAPTER_NOT_FOUND,\n status: HTTP_STATUS.NOT_FOUND,\n category: ERROR_CATEGORY.NotFound,\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n userMessage: 'errors.storage.webhook.adapter_not_found',\n },\n [ERROR_CODES.STORAGE_WEBHOOK_DUPLICATE_DETECTED]: {\n code: ERROR_CODES.STORAGE_WEBHOOK_DUPLICATE_DETECTED,\n status: HTTP_STATUS.OK,\n category: ERROR_CATEGORY.Processing,\n severity: ERROR_SEVERITY.Low,\n retryable: false,\n userMessage: 'errors.storage.webhook.duplicate_detected',\n },\n [ERROR_CODES.STORAGE_WEBHOOK_IDEMPOTENCY_ERROR]: {\n code: ERROR_CODES.STORAGE_WEBHOOK_IDEMPOTENCY_ERROR,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Processing,\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n userMessage: 'errors.storage.webhook.idempotency_error',\n },\n [ERROR_CODES.STORAGE_WEBHOOK_RATE_LIMIT_EXCEEDED]: {\n code: ERROR_CODES.STORAGE_WEBHOOK_RATE_LIMIT_EXCEEDED,\n status: HTTP_STATUS.TOO_MANY_REQUESTS,\n category: ERROR_CATEGORY.RateLimit,\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n userMessage: 'errors.storage.webhook.rate_limit_exceeded',\n },\n\n // Presigned URLs\n [ERROR_CODES.STORAGE_PRESIGNED_URL_GENERATION_FAILED]: {\n code: ERROR_CODES.STORAGE_PRESIGNED_URL_GENERATION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.ExternalService,\n severity: ERROR_SEVERITY.High,\n retryable: true,\n userMessage: 'errors.storage.presigned_url.generation_failed',\n },\n [ERROR_CODES.STORAGE_PRESIGNED_URL_EXPIRED]: {\n code: ERROR_CODES.STORAGE_PRESIGNED_URL_EXPIRED,\n status: HTTP_STATUS.GONE,\n category: ERROR_CATEGORY.Validation,\n severity: ERROR_SEVERITY.Low,\n retryable: false,\n userMessage: 'errors.storage.presigned_url.expired',\n },\n [ERROR_CODES.STORAGE_PRESIGNED_URL_INVALID]: {\n code: ERROR_CODES.STORAGE_PRESIGNED_URL_INVALID,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n severity: ERROR_SEVERITY.Low,\n retryable: false,\n userMessage: 'errors.storage.presigned_url.invalid',\n },\n\n // Chunked Upload\n [ERROR_CODES.STORAGE_CHUNKED_UPLOAD_INIT_FAILED]: {\n code: ERROR_CODES.STORAGE_CHUNKED_UPLOAD_INIT_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.FileOperation,\n severity: ERROR_SEVERITY.High,\n retryable: true,\n userMessage: 'errors.storage.chunked_upload.init_failed',\n },\n [ERROR_CODES.STORAGE_CHUNKED_UPLOAD_PART_FAILED]: {\n code: ERROR_CODES.STORAGE_CHUNKED_UPLOAD_PART_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.FileOperation,\n severity: ERROR_SEVERITY.High,\n retryable: true,\n userMessage: 'errors.storage.chunked_upload.part_failed',\n },\n [ERROR_CODES.STORAGE_CHUNKED_UPLOAD_COMPLETE_FAILED]: {\n code: ERROR_CODES.STORAGE_CHUNKED_UPLOAD_COMPLETE_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.FileOperation,\n severity: ERROR_SEVERITY.High,\n retryable: true,\n userMessage: 'errors.storage.chunked_upload.complete_failed',\n },\n [ERROR_CODES.STORAGE_CHUNKED_UPLOAD_ABORT_FAILED]: {\n code: ERROR_CODES.STORAGE_CHUNKED_UPLOAD_ABORT_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.FileOperation,\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n userMessage: 'errors.storage.chunked_upload.abort_failed',\n },\n [ERROR_CODES.STORAGE_CHUNKED_UPLOAD_NOT_FOUND]: {\n code: ERROR_CODES.STORAGE_CHUNKED_UPLOAD_NOT_FOUND,\n status: HTTP_STATUS.NOT_FOUND,\n category: ERROR_CATEGORY.NotFound,\n severity: ERROR_SEVERITY.Low,\n retryable: false,\n userMessage: 'errors.storage.chunked_upload.not_found',\n },\n\n // CORS\n [ERROR_CODES.STORAGE_CORS_CONFIGURATION_INVALID]: {\n code: ERROR_CODES.STORAGE_CORS_CONFIGURATION_INVALID,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Configuration,\n severity: ERROR_SEVERITY.High,\n retryable: false,\n userMessage: 'errors.storage.cors.configuration_invalid',\n },\n [ERROR_CODES.STORAGE_CORS_ORIGIN_NOT_ALLOWED]: {\n code: ERROR_CODES.STORAGE_CORS_ORIGIN_NOT_ALLOWED,\n status: HTTP_STATUS.FORBIDDEN,\n category: ERROR_CATEGORY.Authorization,\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n userMessage: 'errors.storage.cors.origin_not_allowed',\n },\n\n // TTL\n [ERROR_CODES.STORAGE_TTL_EXPIRED]: {\n code: ERROR_CODES.STORAGE_TTL_EXPIRED,\n status: HTTP_STATUS.GONE,\n category: ERROR_CATEGORY.Validation,\n severity: ERROR_SEVERITY.Low,\n retryable: false,\n userMessage: 'errors.storage.ttl.expired',\n },\n [ERROR_CODES.STORAGE_TTL_CLEANUP_FAILED]: {\n code: ERROR_CODES.STORAGE_TTL_CLEANUP_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Processing,\n severity: ERROR_SEVERITY.Low,\n retryable: true,\n userMessage: 'errors.storage.ttl.cleanup_failed',\n },\n\n // Audit\n [ERROR_CODES.STORAGE_AUDIT_LOG_FAILED]: {\n code: ERROR_CODES.STORAGE_AUDIT_LOG_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.System,\n severity: ERROR_SEVERITY.Low,\n retryable: false,\n userMessage: 'errors.storage.audit.log_failed',\n },\n\n // Timeout & Network\n [ERROR_CODES.STORAGE_TIMEOUT]: {\n code: ERROR_CODES.STORAGE_TIMEOUT,\n status: HTTP_STATUS.GATEWAY_TIMEOUT,\n category: ERROR_CATEGORY.Timeout,\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n userMessage: 'errors.storage.timeout',\n },\n [ERROR_CODES.STORAGE_NETWORK_ERROR]: {\n code: ERROR_CODES.STORAGE_NETWORK_ERROR,\n status: HTTP_STATUS.SERVICE_UNAVAILABLE,\n category: ERROR_CATEGORY.Network,\n severity: ERROR_SEVERITY.High,\n retryable: true,\n userMessage: 'errors.storage.network_error',\n },\n [ERROR_CODES.STORAGE_CONNECTION_LOST]: {\n code: ERROR_CODES.STORAGE_CONNECTION_LOST,\n status: HTTP_STATUS.SERVICE_UNAVAILABLE,\n category: ERROR_CATEGORY.Network,\n severity: ERROR_SEVERITY.High,\n retryable: true,\n userMessage: 'errors.storage.connection_lost',\n },\n\n // Permission & Quota\n [ERROR_CODES.STORAGE_PERMISSION_DENIED]: {\n code: ERROR_CODES.STORAGE_PERMISSION_DENIED,\n status: HTTP_STATUS.FORBIDDEN,\n category: ERROR_CATEGORY.Authorization,\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n userMessage: 'errors.storage.permission_denied',\n },\n [ERROR_CODES.STORAGE_QUOTA_EXCEEDED]: {\n code: ERROR_CODES.STORAGE_QUOTA_EXCEEDED,\n status: HTTP_STATUS.INSUFFICIENT_STORAGE,\n category: ERROR_CATEGORY.Quota,\n severity: ERROR_SEVERITY.High,\n retryable: false,\n userMessage: 'errors.storage.quota_exceeded',\n },\n [ERROR_CODES.STORAGE_INSUFFICIENT_SPACE]: {\n code: ERROR_CODES.STORAGE_INSUFFICIENT_SPACE,\n status: HTTP_STATUS.INSUFFICIENT_STORAGE,\n category: ERROR_CATEGORY.Quota,\n severity: ERROR_SEVERITY.High,\n retryable: false,\n userMessage: 'errors.storage.insufficient_space',\n },\n [ERROR_CODES.STORAGE_FEATURE_NOT_IMPLEMENTED]: {\n code: ERROR_CODES.STORAGE_FEATURE_NOT_IMPLEMENTED,\n status: HTTP_STATUS.NOT_IMPLEMENTED,\n category: ERROR_CATEGORY.Server,\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n userMessage: 'errors.storage.feature.not_implemented',\n },\n\n // ===== Core Package Error Definitions =====\n // Feature Flags\n [ERROR_CODES.CORE_FEATURE_FLAG_NOT_FOUND]: {\n code: ERROR_CODES.CORE_FEATURE_FLAG_NOT_FOUND,\n status: HTTP_STATUS.NOT_FOUND,\n category: ERROR_CATEGORY.NotFound,\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n userMessage: 'errors.core.feature_flag.not_found',\n },\n [ERROR_CODES.CORE_FEATURE_FLAG_INVALID_CONFIG]: {\n code: ERROR_CODES.CORE_FEATURE_FLAG_INVALID_CONFIG,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Configuration,\n severity: ERROR_SEVERITY.High,\n retryable: false,\n userMessage: 'errors.core.feature_flag.invalid_config',\n },\n [ERROR_CODES.CORE_FEATURE_FLAG_EVALUATION_FAILED]: {\n code: ERROR_CODES.CORE_FEATURE_FLAG_EVALUATION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Processing,\n severity: ERROR_SEVERITY.High,\n retryable: true,\n userMessage: 'errors.core.feature_flag.evaluation_failed',\n },\n [ERROR_CODES.CORE_FEATURE_FLAG_PROVIDER_ERROR]: {\n code: ERROR_CODES.CORE_FEATURE_FLAG_PROVIDER_ERROR,\n status: HTTP_STATUS.BAD_GATEWAY,\n category: ERROR_CATEGORY.Provider,\n severity: ERROR_SEVERITY.High,\n retryable: true,\n userMessage: 'errors.core.feature_flag.provider_error',\n },\n [ERROR_CODES.CORE_FEATURE_FLAG_CACHE_ERROR]: {\n code: ERROR_CODES.CORE_FEATURE_FLAG_CACHE_ERROR,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Cache,\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n userMessage: 'errors.core.feature_flag.cache_error',\n },\n [ERROR_CODES.CORE_FEATURE_FLAG_CONTEXT_INVALID]: {\n code: ERROR_CODES.CORE_FEATURE_FLAG_CONTEXT_INVALID,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n userMessage: 'errors.core.feature_flag.context_invalid',\n },\n [ERROR_CODES.CORE_FEATURE_FLAG_RULE_INVALID]: {\n code: ERROR_CODES.CORE_FEATURE_FLAG_RULE_INVALID,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n userMessage: 'errors.core.feature_flag.rule_invalid',\n },\n [ERROR_CODES.CORE_FEATURE_FLAG_TOGGLE_FAILED]: {\n code: ERROR_CODES.CORE_FEATURE_FLAG_TOGGLE_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Processing,\n severity: ERROR_SEVERITY.High,\n retryable: true,\n userMessage: 'errors.core.feature_flag.toggle_failed',\n },\n\n // Cache\n [ERROR_CODES.CORE_CACHE_INITIALIZATION_FAILED]: {\n code: ERROR_CODES.CORE_CACHE_INITIALIZATION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Configuration,\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n userMessage: 'errors.core.cache.initialization_failed',\n },\n [ERROR_CODES.CORE_CACHE_STRATEGY_NOT_FOUND]: {\n code: ERROR_CODES.CORE_CACHE_STRATEGY_NOT_FOUND,\n status: HTTP_STATUS.NOT_FOUND,\n category: ERROR_CATEGORY.Configuration,\n severity: ERROR_SEVERITY.High,\n retryable: false,\n userMessage: 'errors.core.cache.strategy_not_found',\n },\n [ERROR_CODES.CORE_CACHE_OPERATION_FAILED]: {\n code: ERROR_CODES.CORE_CACHE_OPERATION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Cache,\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n userMessage: 'errors.core.cache.operation_failed',\n },\n [ERROR_CODES.CORE_CACHE_INVALIDATION_FAILED]: {\n code: ERROR_CODES.CORE_CACHE_INVALIDATION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Cache,\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n userMessage: 'errors.core.cache.invalidation_failed',\n },\n [ERROR_CODES.CORE_CACHE_SERIALIZATION_FAILED]: {\n code: ERROR_CODES.CORE_CACHE_SERIALIZATION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Processing,\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n userMessage: 'errors.core.cache.serialization_failed',\n },\n\n // API Client\n [ERROR_CODES.CORE_API_CLIENT_INITIALIZATION_FAILED]: {\n code: ERROR_CODES.CORE_API_CLIENT_INITIALIZATION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Configuration,\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n userMessage: 'errors.core.api_client.initialization_failed',\n },\n [ERROR_CODES.CORE_API_CLIENT_REQUEST_FAILED]: {\n code: ERROR_CODES.CORE_API_CLIENT_REQUEST_FAILED,\n status: HTTP_STATUS.BAD_GATEWAY,\n category: ERROR_CATEGORY.Network,\n severity: ERROR_SEVERITY.High,\n retryable: true,\n userMessage: 'errors.core.api_client.request_failed',\n },\n [ERROR_CODES.CORE_API_CLIENT_TIMEOUT]: {\n code: ERROR_CODES.CORE_API_CLIENT_TIMEOUT,\n status: HTTP_STATUS.GATEWAY_TIMEOUT,\n category: ERROR_CATEGORY.Timeout,\n severity: ERROR_SEVERITY.High,\n retryable: true,\n userMessage: 'errors.core.api_client.timeout',\n },\n [ERROR_CODES.CORE_API_CLIENT_INVALID_RESPONSE]: {\n code: ERROR_CODES.CORE_API_CLIENT_INVALID_RESPONSE,\n status: HTTP_STATUS.BAD_GATEWAY,\n category: ERROR_CATEGORY.Server,\n severity: ERROR_SEVERITY.High,\n retryable: false,\n userMessage: 'errors.core.api_client.invalid_response',\n },\n [ERROR_CODES.CORE_API_CLIENT_AUTHENTICATION_FAILED]: {\n code: ERROR_CODES.CORE_API_CLIENT_AUTHENTICATION_FAILED,\n status: HTTP_STATUS.UNAUTHORIZED,\n category: ERROR_CATEGORY.Authentication,\n severity: ERROR_SEVERITY.High,\n retryable: false,\n userMessage: 'errors.core.api_client.authentication_failed',\n },\n\n // Database Service\n [ERROR_CODES.CORE_DATABASE_SERVICE_INITIALIZATION_FAILED]: {\n code: ERROR_CODES.CORE_DATABASE_SERVICE_INITIALIZATION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Configuration,\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n userMessage: 'errors.core.database_service.initialization_failed',\n },\n [ERROR_CODES.CORE_DATABASE_SERVICE_CONNECTION_FAILED]: {\n code: ERROR_CODES.CORE_DATABASE_SERVICE_CONNECTION_FAILED,\n status: HTTP_STATUS.SERVICE_UNAVAILABLE,\n category: ERROR_CATEGORY.Network,\n severity: ERROR_SEVERITY.High,\n retryable: true,\n userMessage: 'errors.core.database_service.connection_failed',\n },\n [ERROR_CODES.CORE_DATABASE_SERVICE_QUERY_FAILED]: {\n code: ERROR_CODES.CORE_DATABASE_SERVICE_QUERY_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Server,\n severity: ERROR_SEVERITY.High,\n retryable: false,\n userMessage: 'errors.core.database_service.query_failed',\n },\n [ERROR_CODES.CORE_DATABASE_SERVICE_TRANSACTION_FAILED]: {\n code: ERROR_CODES.CORE_DATABASE_SERVICE_TRANSACTION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Server,\n severity: ERROR_SEVERITY.High,\n retryable: true,\n userMessage: 'errors.core.database_service.transaction_failed',\n },\n\n // Validation\n [ERROR_CODES.CORE_VALIDATION_FAILED]: {\n code: ERROR_CODES.CORE_VALIDATION_FAILED,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n userMessage: 'errors.core.validation.failed',\n },\n [ERROR_CODES.CORE_VALIDATION_SCHEMA_INVALID]: {\n code: ERROR_CODES.CORE_VALIDATION_SCHEMA_INVALID,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n severity: ERROR_SEVERITY.High,\n retryable: false,\n userMessage: 'errors.core.validation.schema_invalid',\n },\n [ERROR_CODES.CORE_VALIDATION_REQUIRED_FIELD_MISSING]: {\n code: ERROR_CODES.CORE_VALIDATION_REQUIRED_FIELD_MISSING,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n userMessage: 'errors.core.validation.required_field_missing',\n },\n\n // Hash Utilities\n [ERROR_CODES.CORE_HASH_GENERATION_FAILED]: {\n code: ERROR_CODES.CORE_HASH_GENERATION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Processing,\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n userMessage: 'errors.core.hash.generation_failed',\n },\n [ERROR_CODES.CORE_HASH_VERIFICATION_FAILED]: {\n code: ERROR_CODES.CORE_HASH_VERIFICATION_FAILED,\n status: HTTP_STATUS.UNAUTHORIZED,\n category: ERROR_CATEGORY.Authentication,\n severity: ERROR_SEVERITY.High,\n retryable: false,\n userMessage: 'errors.core.hash.verification_failed',\n },\n\n // Engine\n [ERROR_CODES.CORE_ENGINE_INITIALIZATION_FAILED]: {\n code: ERROR_CODES.CORE_ENGINE_INITIALIZATION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Configuration,\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n userMessage: 'errors.core.engine.initialization_failed',\n },\n [ERROR_CODES.CORE_ENGINE_EXECUTION_FAILED]: {\n code: ERROR_CODES.CORE_ENGINE_EXECUTION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Processing,\n severity: ERROR_SEVERITY.High,\n retryable: true,\n userMessage: 'errors.core.engine.execution_failed',\n },\n [ERROR_CODES.CORE_ENGINE_CONFIGURATION_INVALID]: {\n code: ERROR_CODES.CORE_ENGINE_CONFIGURATION_INVALID,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Configuration,\n severity: ERROR_SEVERITY.High,\n retryable: false,\n userMessage: 'errors.core.engine.configuration_invalid',\n },\n\n // Provider\n [ERROR_CODES.CORE_PROVIDER_NOT_FOUND]: {\n code: ERROR_CODES.CORE_PROVIDER_NOT_FOUND,\n status: HTTP_STATUS.NOT_FOUND,\n category: ERROR_CATEGORY.NotFound,\n severity: ERROR_SEVERITY.High,\n retryable: false,\n userMessage: 'errors.core.provider.not_found',\n },\n [ERROR_CODES.CORE_PROVIDER_INITIALIZATION_FAILED]: {\n code: ERROR_CODES.CORE_PROVIDER_INITIALIZATION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Configuration,\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n userMessage: 'errors.core.provider.initialization_failed',\n },\n [ERROR_CODES.CORE_PROVIDER_OPERATION_FAILED]: {\n code: ERROR_CODES.CORE_PROVIDER_OPERATION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Provider,\n severity: ERROR_SEVERITY.High,\n retryable: true,\n userMessage: 'errors.core.provider.operation_failed',\n },\n\n // Context\n [ERROR_CODES.CORE_CONTEXT_INVALID]: {\n code: ERROR_CODES.CORE_CONTEXT_INVALID,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n userMessage: 'errors.core.context.invalid',\n },\n [ERROR_CODES.CORE_CONTEXT_MISSING_REQUIRED_DATA]: {\n code: ERROR_CODES.CORE_CONTEXT_MISSING_REQUIRED_DATA,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n userMessage: 'errors.core.context.missing_required_data',\n },\n\n // General Core\n [ERROR_CODES.CORE_INITIALIZATION_FAILED]: {\n code: ERROR_CODES.CORE_INITIALIZATION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Configuration,\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n userMessage: 'errors.core.initialization_failed',\n },\n [ERROR_CODES.CORE_CONFIGURATION_INVALID]: {\n code: ERROR_CODES.CORE_CONFIGURATION_INVALID,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Configuration,\n severity: ERROR_SEVERITY.High,\n retryable: false,\n userMessage: 'errors.core.configuration_invalid',\n },\n [ERROR_CODES.CORE_OPERATION_FAILED]: {\n code: ERROR_CODES.CORE_OPERATION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Processing,\n severity: ERROR_SEVERITY.High,\n retryable: true,\n userMessage: 'errors.core.operation_failed',\n },\n [ERROR_CODES.CORE_UNKNOWN_ERROR]: {\n code: ERROR_CODES.CORE_UNKNOWN_ERROR,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Unknown,\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n userMessage: 'errors.core.unknown_error',\n },\n\n // ===== Errors Package Errors =====\n [ERROR_CODES.ERROR_SYSTEM_NOT_INITIALIZED]: {\n code: ERROR_CODES.ERROR_SYSTEM_NOT_INITIALIZED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Configuration,\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n userMessage: 'errors.system.not_initialized',\n },\n [ERROR_CODES.EVENT_FACTORY_NOT_REGISTERED]: {\n code: ERROR_CODES.EVENT_FACTORY_NOT_REGISTERED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Configuration,\n severity: ERROR_SEVERITY.High,\n retryable: false,\n userMessage: 'errors.event.factory.not_registered',\n },\n [ERROR_CODES.DATABASE_ERROR]: {\n code: ERROR_CODES.DATABASE_ERROR,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Server,\n severity: ERROR_SEVERITY.High,\n retryable: false,\n userMessage: 'errors.database',\n },\n\n // Global Error Handler\n [ERROR_CODES.UNCAUGHT_EXCEPTION]: {\n code: ERROR_CODES.UNCAUGHT_EXCEPTION,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.System,\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n userMessage: 'errors.uncaught.exception',\n },\n [ERROR_CODES.UNHANDLED_REJECTION]: {\n code: ERROR_CODES.UNHANDLED_REJECTION,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.System,\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n userMessage: 'errors.unhandled.rejection',\n },\n [ERROR_CODES.RUNTIME_ERROR]: {\n code: ERROR_CODES.RUNTIME_ERROR,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.System,\n severity: ERROR_SEVERITY.High,\n retryable: false,\n userMessage: 'errors.runtime',\n },\n\n // ===== Database Error Definitions =====\n // Connection & Configuration\n [ERROR_CODES.DB_ACCESS_DENIED]: {\n code: ERROR_CODES.DB_ACCESS_DENIED,\n status: HTTP_STATUS.FORBIDDEN,\n category: ERROR_CATEGORY.Authentication,\n userMessage: 'db.connection.access_denied',\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n },\n [ERROR_CODES.DB_CONFIG_REQUIRED]: {\n code: ERROR_CODES.DB_CONFIG_REQUIRED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Configuration,\n userMessage: 'db.connection.config_required',\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n },\n [ERROR_CODES.DB_CONNECT_FAILED]: {\n code: ERROR_CODES.DB_CONNECT_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Server,\n userMessage: 'db.connection.connect_failed',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n [ERROR_CODES.DB_DISCONNECT_FAILED]: {\n code: ERROR_CODES.DB_DISCONNECT_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Server,\n userMessage: 'db.connection.disconnect_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.DB_INIT_FAILED]: {\n code: ERROR_CODES.DB_INIT_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Server,\n userMessage: 'db.connection.init_failed',\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n },\n\n // Query & Execution\n [ERROR_CODES.DB_QUERY_FAILED]: {\n code: ERROR_CODES.DB_QUERY_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Server,\n userMessage: 'db.query.failed',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n [ERROR_CODES.DB_BUILD_WHERE_FAILED]: {\n code: ERROR_CODES.DB_BUILD_WHERE_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Server,\n userMessage: 'db.query.build_where_failed',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n [ERROR_CODES.DB_INVALID_SQL]: {\n code: ERROR_CODES.DB_INVALID_SQL,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'db.query.invalid_sql',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.DB_TRANSACTION_FAILED]: {\n code: ERROR_CODES.DB_TRANSACTION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Server,\n userMessage: 'db.query.transaction_failed',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n [ERROR_CODES.DB_UNSUPPORTED_OPERATOR]: {\n code: ERROR_CODES.DB_UNSUPPORTED_OPERATOR,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'db.query.unsupported_operator',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n // CRUD Operations\n [ERROR_CODES.DB_CREATE_FAILED]: {\n code: ERROR_CODES.DB_CREATE_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Server,\n userMessage: 'db.crud.create_failed',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n [ERROR_CODES.DB_CREATION_FAILED]: {\n code: ERROR_CODES.DB_CREATION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Server,\n userMessage: 'db.crud.create_failed',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n [ERROR_CODES.DB_FETCH_FAILED]: {\n code: ERROR_CODES.DB_FETCH_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Server,\n userMessage: 'db.crud.fetch_failed',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n [ERROR_CODES.DB_FIND_FAILED]: {\n code: ERROR_CODES.DB_FIND_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Server,\n userMessage: 'db.crud.find_failed',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n [ERROR_CODES.DB_FIND_MANY_FAILED]: {\n code: ERROR_CODES.DB_FIND_MANY_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Server,\n userMessage: 'db.crud.find_many_failed',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n [ERROR_CODES.DB_FIND_BY_ID_FAILED]: {\n code: ERROR_CODES.DB_FIND_BY_ID_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Server,\n userMessage: 'db.crud.find_by_id_failed',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n [ERROR_CODES.DB_UPDATE_FAILED]: {\n code: ERROR_CODES.DB_UPDATE_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Server,\n userMessage: 'db.crud.update_failed',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n [ERROR_CODES.DB_UPDATE_NO_CHANGES]: {\n code: ERROR_CODES.DB_UPDATE_NO_CHANGES,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'db.crud.update_no_changes',\n severity: ERROR_SEVERITY.Low,\n retryable: false,\n },\n [ERROR_CODES.DB_DELETE_FAILED]: {\n code: ERROR_CODES.DB_DELETE_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Server,\n userMessage: 'db.crud.delete_failed',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n [ERROR_CODES.DB_INSERT_FAILED]: {\n code: ERROR_CODES.DB_INSERT_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Server,\n userMessage: 'db.crud.insert_failed',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n [ERROR_CODES.DB_RECORD_NOT_FOUND]: {\n code: ERROR_CODES.DB_RECORD_NOT_FOUND,\n status: HTTP_STATUS.NOT_FOUND,\n category: ERROR_CATEGORY.NotFound,\n userMessage: 'db.crud.record_not_found',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.DB_EXISTS_FAILED]: {\n code: ERROR_CODES.DB_EXISTS_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Server,\n userMessage: 'db.crud.exists_failed',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n\n // Schema & Columns\n [ERROR_CODES.DB_COLUMN_NOT_EXISTS]: {\n code: ERROR_CODES.DB_COLUMN_NOT_EXISTS,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'db.schema.column_not_exists',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.DB_TABLE_NOT_REGISTERED]: {\n code: ERROR_CODES.DB_TABLE_NOT_REGISTERED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Server,\n userMessage: 'db.schema.table_not_registered',\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n },\n [ERROR_CODES.DB_TABLE_REGISTRATION_FAILED]: {\n code: ERROR_CODES.DB_TABLE_REGISTRATION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Server,\n userMessage: 'db.schema.table_registration_failed',\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n },\n [ERROR_CODES.DB_ID_COLUMN_NOT_REGISTERED]: {\n code: ERROR_CODES.DB_ID_COLUMN_NOT_REGISTERED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Server,\n userMessage: 'db.schema.id_column_not_registered',\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n },\n [ERROR_CODES.DB_INVALID_COLUMN]: {\n code: ERROR_CODES.DB_INVALID_COLUMN,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'db.schema.invalid_column',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.DB_INVALID_TABLE_NAME]: {\n code: ERROR_CODES.DB_INVALID_TABLE_NAME,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'db.schema.invalid_table_name',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.DB_GET_ID_COLUMN_FAILED]: {\n code: ERROR_CODES.DB_GET_ID_COLUMN_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Server,\n userMessage: 'db.schema.get_id_column_failed',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n [ERROR_CODES.DB_GET_TABLE_FAILED]: {\n code: ERROR_CODES.DB_GET_TABLE_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Server,\n userMessage: 'db.schema.get_table_failed',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n\n // Validation & Parameters\n [ERROR_CODES.DB_INVALID_PARAMETERS]: {\n code: ERROR_CODES.DB_INVALID_PARAMETERS,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'db.validation.invalid_parameters',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.DB_INVALID_PARAMS]: {\n code: ERROR_CODES.DB_INVALID_PARAMS,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'db.validation.invalid_parameters',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.DB_INVALID_FILTER]: {\n code: ERROR_CODES.DB_INVALID_FILTER,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'db.validation.invalid_filter',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.DB_INVALID_ID]: {\n code: ERROR_CODES.DB_INVALID_ID,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'db.validation.invalid_id',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.DB_INVALID_ENTITY]: {\n code: ERROR_CODES.DB_INVALID_ENTITY,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'db.validation.invalid_entity',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.DB_INVALID_UPDATE_PARAMS]: {\n code: ERROR_CODES.DB_INVALID_UPDATE_PARAMS,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'db.validation.invalid_update_params',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.DB_INVALID_FIELD_NAME]: {\n code: ERROR_CODES.DB_INVALID_FIELD_NAME,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'db.validation.invalid_field_name',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.DB_INVALID_RESULT]: {\n code: ERROR_CODES.DB_INVALID_RESULT,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Server,\n userMessage: 'db.validation.invalid_result',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n [ERROR_CODES.DB_NO_UPDATE_FIELDS]: {\n code: ERROR_CODES.DB_NO_UPDATE_FIELDS,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'db.validation.no_update_fields',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n // Count & Data\n [ERROR_CODES.DB_COUNT_FAILED]: {\n code: ERROR_CODES.DB_COUNT_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Server,\n userMessage: 'db.count.failed',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n [ERROR_CODES.DB_COUNT_NO_RESULTS]: {\n code: ERROR_CODES.DB_COUNT_NO_RESULTS,\n status: HTTP_STATUS.NOT_FOUND,\n category: ERROR_CATEGORY.NotFound,\n userMessage: 'db.count.no_results',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.DB_NO_DATA]: {\n code: ERROR_CODES.DB_NO_DATA,\n status: HTTP_STATUS.NOT_FOUND,\n category: ERROR_CATEGORY.NotFound,\n userMessage: 'db.count.no_results',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n // Multi-tenant Context\n [ERROR_CODES.DB_NO_TENANT_CONTEXT]: {\n code: ERROR_CODES.DB_NO_TENANT_CONTEXT,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Server,\n userMessage: 'db.tenant.no_context',\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n },\n [ERROR_CODES.DB_NO_TENANT_ID]: {\n code: ERROR_CODES.DB_NO_TENANT_ID,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Server,\n userMessage: 'db.tenant.no_tenant_id',\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n },\n [ERROR_CODES.DB_TENANT_VALIDATION_FAILED]: {\n code: ERROR_CODES.DB_TENANT_VALIDATION_FAILED,\n status: HTTP_STATUS.FORBIDDEN,\n category: ERROR_CATEGORY.Authorization,\n userMessage: 'db.tenant.validation_failed',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n\n // Backup & Restore\n [ERROR_CODES.DB_BACKUP_CLEANUP_FAILED]: {\n code: ERROR_CODES.DB_BACKUP_CLEANUP_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Server,\n userMessage: 'db.backup.cleanup_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.DB_BACKUP_FILE_NOT_FOUND]: {\n code: ERROR_CODES.DB_BACKUP_FILE_NOT_FOUND,\n status: HTTP_STATUS.NOT_FOUND,\n category: ERROR_CATEGORY.NotFound,\n userMessage: 'db.backup.file_not_found',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.DB_LIST_BACKUPS_FAILED]: {\n code: ERROR_CODES.DB_LIST_BACKUPS_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Server,\n userMessage: 'db.backup.list_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.DB_INVALID_BACKUP_INFO]: {\n code: ERROR_CODES.DB_INVALID_BACKUP_INFO,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'db.backup.invalid_info',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.DB_RESTORE_FAILED]: {\n code: ERROR_CODES.DB_RESTORE_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Server,\n userMessage: 'db.backup.restore_failed',\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n },\n\n // Cache Operations\n [ERROR_CODES.DB_CACHE_DELETE_FAILED]: {\n code: ERROR_CODES.DB_CACHE_DELETE_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Cache,\n userMessage: 'db.cache.delete_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n },\n [ERROR_CODES.DB_CACHE_HEALTH_CHECK_FAILED]: {\n code: ERROR_CODES.DB_CACHE_HEALTH_CHECK_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Cache,\n userMessage: 'db.cache.health_check_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n },\n [ERROR_CODES.DB_CACHE_INVALIDATE_FAILED]: {\n code: ERROR_CODES.DB_CACHE_INVALIDATE_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Cache,\n userMessage: 'db.cache.invalidate_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n },\n [ERROR_CODES.DB_CACHE_SET_FAILED]: {\n code: ERROR_CODES.DB_CACHE_SET_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Cache,\n userMessage: 'db.cache.set_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n },\n [ERROR_CODES.DB_CACHE_GET_FAILED]: {\n code: ERROR_CODES.DB_CACHE_GET_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Cache,\n userMessage: 'db.cache.get_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n },\n\n // File & Storage\n [ERROR_CODES.DB_INVALID_FILEPATH]: {\n code: ERROR_CODES.DB_INVALID_FILEPATH,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'db.file.invalid_filepath',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.DB_S3_DELETE_FAILED]: {\n code: ERROR_CODES.DB_S3_DELETE_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Server,\n userMessage: 'db.file.s3_delete_failed',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n [ERROR_CODES.DB_S3_DOWNLOAD_FAILED]: {\n code: ERROR_CODES.DB_S3_DOWNLOAD_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Server,\n userMessage: 'db.file.s3_download_failed',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n [ERROR_CODES.DB_S3_NOT_CONFIGURED]: {\n code: ERROR_CODES.DB_S3_NOT_CONFIGURED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Configuration,\n userMessage: 'db.file.s3_not_configured',\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n },\n [ERROR_CODES.DB_S3_UPLOAD_FAILED]: {\n code: ERROR_CODES.DB_S3_UPLOAD_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Server,\n userMessage: 'db.file.s3_upload_failed',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n\n [ERROR_CODES.PAYMENT_TIMEOUT]: {\n code: ERROR_CODES.PAYMENT_TIMEOUT,\n status: HTTP_STATUS.REQUEST_TIMEOUT,\n category: ERROR_CATEGORY.Timeout,\n userMessage: 'errors.payment.timeout',\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n },\n\n [ERROR_CODES.PAYMENT_NETWORK_ERROR]: {\n code: ERROR_CODES.PAYMENT_NETWORK_ERROR,\n status: HTTP_STATUS.NETWORK_AUTHENTICATION_REQUIRED,\n category: ERROR_CATEGORY.Network,\n userMessage: 'errors.payment.network_error',\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n },\n\n // Misc\n [ERROR_CODES.DB_SCHEDULE_SETUP_FAILED]: {\n code: ERROR_CODES.DB_SCHEDULE_SETUP_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Server,\n userMessage: 'db.misc.schedule_setup_failed',\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n },\n [ERROR_CODES.DB_DECRYPTION_FAILED]: {\n code: ERROR_CODES.DB_DECRYPTION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Server,\n userMessage: 'db.misc.decryption_failed',\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n },\n [ERROR_CODES.DB_INVALID_SHELL_ARG]: {\n code: ERROR_CODES.DB_INVALID_SHELL_ARG,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'db.misc.invalid_shell_arg',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.DB_INVALID_BETWEEN_OPERATOR]: {\n code: ERROR_CODES.DB_INVALID_BETWEEN_OPERATOR,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'db.misc.invalid_between_operator',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.DB_INVALID_IN_OPERATOR]: {\n code: ERROR_CODES.DB_INVALID_IN_OPERATOR,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'db.misc.invalid_in_operator',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.DB_INVALID_COUNT]: {\n code: ERROR_CODES.DB_INVALID_COUNT,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'db.misc.invalid_count',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n // ===== Payments Package Error Definitions =====\n // ===== Refund Errors =====\n [ERROR_CODES.PAYMENT_REFUND_FAILED]: {\n code: ERROR_CODES.PAYMENT_REFUND_FAILED,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Refund,\n userMessage: 'errors.payment.refund.failed',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n [ERROR_CODES.PAYMENT_REFUND_NOT_FOUND]: {\n code: ERROR_CODES.PAYMENT_REFUND_NOT_FOUND,\n status: HTTP_STATUS.NOT_FOUND,\n category: ERROR_CATEGORY.Refund,\n userMessage: 'errors.payment.refund.not_found',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.PAYMENT_REFUND_ALREADY_PROCESSED]: {\n code: ERROR_CODES.PAYMENT_REFUND_ALREADY_PROCESSED,\n status: HTTP_STATUS.CONFLICT,\n category: ERROR_CATEGORY.Refund,\n userMessage: 'errors.payment.refund.already_processed',\n severity: ERROR_SEVERITY.Low,\n retryable: false,\n },\n [ERROR_CODES.PAYMENT_REFUND_AMOUNT_INVALID]: {\n code: ERROR_CODES.PAYMENT_REFUND_AMOUNT_INVALID,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'errors.payment.refund.amount_invalid',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.PAYMENT_REFUND_VALIDATION_FAILED]: {\n code: ERROR_CODES.PAYMENT_REFUND_VALIDATION_FAILED,\n status: HTTP_STATUS.UNPROCESSABLE_ENTITY,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'errors.payment.refund.validation_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.PAYMENT_REFUND_TIMEOUT]: {\n code: ERROR_CODES.PAYMENT_REFUND_TIMEOUT,\n status: HTTP_STATUS.REQUEST_TIMEOUT,\n category: ERROR_CATEGORY.Timeout,\n userMessage: 'errors.payment.refund.timeout',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n [ERROR_CODES.PAYMENT_REFUND_NOT_ALLOWED]: {\n code: ERROR_CODES.PAYMENT_REFUND_NOT_ALLOWED,\n status: HTTP_STATUS.FORBIDDEN,\n category: ERROR_CATEGORY.Refund,\n userMessage: 'errors.payment.refund.not_allowed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.PAYMENT_REFUND_AUTHORIZATION_FAILED]: {\n code: ERROR_CODES.PAYMENT_REFUND_AUTHORIZATION_FAILED,\n status: HTTP_STATUS.UNAUTHORIZED,\n category: ERROR_CATEGORY.Authorization,\n userMessage: 'errors.payment.refund.authorization_failed',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n\n [ERROR_CODES.PAYMENT_REFUND_PROCESSING_FAILED]: {\n code: ERROR_CODES.PAYMENT_REFUND_PROCESSING_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Refund,\n userMessage: 'errors.payment.refund.processing_failed',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n\n // ===== Provider Errors =====\n [ERROR_CODES.PAYMENT_PROVIDER_ERROR]: {\n code: ERROR_CODES.PAYMENT_PROVIDER_ERROR,\n status: HTTP_STATUS.BAD_GATEWAY,\n category: ERROR_CATEGORY.Provider,\n userMessage: 'errors.payment.provider.generic',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n [ERROR_CODES.PAYMENT_PROVIDER_UNAVAILABLE]: {\n code: ERROR_CODES.PAYMENT_PROVIDER_UNAVAILABLE,\n status: HTTP_STATUS.SERVICE_UNAVAILABLE,\n category: ERROR_CATEGORY.Provider,\n userMessage: 'errors.payment.provider.unavailable',\n severity: ERROR_SEVERITY.Critical,\n retryable: true,\n },\n [ERROR_CODES.PAYMENT_PROVIDER_CONFIGURATION_INVALID]: {\n code: ERROR_CODES.PAYMENT_PROVIDER_CONFIGURATION_INVALID,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Configuration,\n userMessage: 'errors.payment.provider.invalid_config',\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n },\n [ERROR_CODES.PAYMENT_PROVIDER_RESPONSE_INVALID]: {\n code: ERROR_CODES.PAYMENT_PROVIDER_RESPONSE_INVALID,\n status: HTTP_STATUS.BAD_GATEWAY,\n category: ERROR_CATEGORY.Provider,\n userMessage: 'errors.payment.provider.invalid_response',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n [ERROR_CODES.PAYMENT_PROVIDER_TIMEOUT]: {\n code: ERROR_CODES.PAYMENT_PROVIDER_TIMEOUT,\n status: HTTP_STATUS.GATEWAY_TIMEOUT,\n category: ERROR_CATEGORY.Timeout,\n userMessage: 'errors.payment.provider.timeout',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n [ERROR_CODES.PAYMENT_PROVIDER_AUTH_FAILED]: {\n code: ERROR_CODES.PAYMENT_PROVIDER_AUTH_FAILED,\n status: HTTP_STATUS.UNAUTHORIZED,\n category: ERROR_CATEGORY.Authentication,\n userMessage: 'errors.payment.provider.auth_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n // ===== Compliance Errors =====\n [ERROR_CODES.PAYMENT_COMPLIANCE_VIOLATION]: {\n code: ERROR_CODES.PAYMENT_COMPLIANCE_VIOLATION,\n status: HTTP_STATUS.FORBIDDEN,\n category: ERROR_CATEGORY.Compliance,\n userMessage: 'errors.payment.compliance.violation',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n [ERROR_CODES.PAYMENT_COMPLIANCE_CHECK_FAILED]: {\n code: ERROR_CODES.PAYMENT_COMPLIANCE_CHECK_FAILED,\n status: HTTP_STATUS.UNPROCESSABLE_ENTITY,\n category: ERROR_CATEGORY.Compliance,\n userMessage: 'errors.payment.compliance.check_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.PAYMENT_COMPLIANCE_LIMIT_EXCEEDED]: {\n code: ERROR_CODES.PAYMENT_COMPLIANCE_LIMIT_EXCEEDED,\n status: HTTP_STATUS.TOO_MANY_REQUESTS,\n category: ERROR_CATEGORY.Limits,\n userMessage: 'errors.payment.compliance.limit_exceeded',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.PAYMENT_COMPLIANCE_POLICY_MISSING]: {\n code: ERROR_CODES.PAYMENT_COMPLIANCE_POLICY_MISSING,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Configuration,\n userMessage: 'errors.payment.compliance.policy_missing',\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n },\n [ERROR_CODES.PAYMENT_COMPLIANCE_KYC_REQUIRED]: {\n code: ERROR_CODES.PAYMENT_COMPLIANCE_KYC_REQUIRED,\n status: HTTP_STATUS.FORBIDDEN,\n category: ERROR_CATEGORY.Compliance,\n userMessage: 'errors.payment.compliance.kyc_required',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.PAYMENT_COMPLIANCE_GEOGRAPHIC_RESTRICTION]: {\n code: ERROR_CODES.PAYMENT_COMPLIANCE_GEOGRAPHIC_RESTRICTION,\n status: HTTP_STATUS.FORBIDDEN,\n category: ERROR_CATEGORY.Compliance,\n userMessage: 'errors.payment.compliance.geographic_restriction',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n // ===== Security Errors =====\n [ERROR_CODES.PAYMENT_SECURITY_VIOLATION]: {\n code: ERROR_CODES.PAYMENT_SECURITY_VIOLATION,\n status: HTTP_STATUS.FORBIDDEN,\n category: ERROR_CATEGORY.Security,\n userMessage: 'errors.payment.security.violation',\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n },\n [ERROR_CODES.PAYMENT_SECURITY_SIGNATURE_INVALID]: {\n code: ERROR_CODES.PAYMENT_SECURITY_SIGNATURE_INVALID,\n status: HTTP_STATUS.UNAUTHORIZED,\n category: ERROR_CATEGORY.Security,\n userMessage: 'errors.payment.security.invalid_signature',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n [ERROR_CODES.PAYMENT_SECURITY_ENCRYPTION_FAILED]: {\n code: ERROR_CODES.PAYMENT_SECURITY_ENCRYPTION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Security,\n userMessage: 'errors.payment.security.encryption_failed',\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n },\n [ERROR_CODES.PAYMENT_SECURITY_FRAUD_DETECTED]: {\n code: ERROR_CODES.PAYMENT_SECURITY_FRAUD_DETECTED,\n status: HTTP_STATUS.FORBIDDEN,\n category: ERROR_CATEGORY.Fraud,\n userMessage: 'errors.payment.security.fraud_detected',\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n },\n [ERROR_CODES.PAYMENT_SECURITY_TOKEN_INVALID]: {\n code: ERROR_CODES.PAYMENT_SECURITY_TOKEN_INVALID,\n status: HTTP_STATUS.UNAUTHORIZED,\n category: ERROR_CATEGORY.Authentication,\n userMessage: 'errors.payment.security.token_invalid',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.PAYMENT_SECURITY_VELOCITY_LIMIT_EXCEEDED]: {\n code: ERROR_CODES.PAYMENT_SECURITY_VELOCITY_LIMIT_EXCEEDED,\n status: HTTP_STATUS.FORBIDDEN,\n category: ERROR_CATEGORY.Security,\n severity: ERROR_SEVERITY.Medium,\n userMessage: 'errors.payment.security.velocity_limit_exceed',\n retryable: false,\n },\n\n // ===== Validation Errors =====\n [ERROR_CODES.PAYMENT_VALIDATION_FAILED]: {\n code: ERROR_CODES.PAYMENT_VALIDATION_FAILED,\n status: HTTP_STATUS.UNPROCESSABLE_ENTITY,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'errors.payment.validation.failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.PAYMENT_VALIDATION_AMOUNT_INVALID]: {\n code: ERROR_CODES.PAYMENT_VALIDATION_AMOUNT_INVALID,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'errors.payment.validation.amount_invalid',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.PAYMENT_VALIDATION_CURRENCY_UNSUPPORTED]: {\n code: ERROR_CODES.PAYMENT_VALIDATION_CURRENCY_UNSUPPORTED,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'errors.payment.validation.currency_unsupported',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.PAYMENT_VALIDATION_METADATA_INVALID]: {\n code: ERROR_CODES.PAYMENT_VALIDATION_METADATA_INVALID,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'errors.payment.validation.metadata_invalid',\n severity: ERROR_SEVERITY.Low,\n retryable: false,\n },\n [ERROR_CODES.PAYMENT_VALIDATION_MISSING_REQUIRED_FIELD]: {\n code: ERROR_CODES.PAYMENT_VALIDATION_MISSING_REQUIRED_FIELD,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'errors.payment.validation.required_field_missing',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n // ===== Webhook Errors =====\n [ERROR_CODES.PAYMENT_WEBHOOK_SIGNATURE_INVALID]: {\n code: ERROR_CODES.PAYMENT_WEBHOOK_SIGNATURE_INVALID,\n status: HTTP_STATUS.UNAUTHORIZED,\n category: ERROR_CATEGORY.Webhook,\n userMessage: 'errors.payment.webhook.signature_invalid',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n [ERROR_CODES.PAYMENT_WEBHOOK_PROCESSING_FAILED]: {\n code: ERROR_CODES.PAYMENT_WEBHOOK_PROCESSING_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Webhook,\n userMessage: 'errors.payment.webhook.processing_failed',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n [ERROR_CODES.PAYMENT_WEBHOOK_VALIDATION_FAILED]: {\n code: ERROR_CODES.PAYMENT_WEBHOOK_VALIDATION_FAILED,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'errors.payment.webhook.validation_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.PAYMENT_WEBHOOK_EVENT_TYPE_UNSUPPORTED]: {\n code: ERROR_CODES.PAYMENT_WEBHOOK_EVENT_TYPE_UNSUPPORTED,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Webhook,\n userMessage: 'errors.payment.webhook.unsupported_event_type',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.PAYMENT_WEBHOOK_HANDLER_NOT_FOUND]: {\n code: ERROR_CODES.PAYMENT_WEBHOOK_HANDLER_NOT_FOUND,\n status: HTTP_STATUS.NOT_FOUND,\n category: ERROR_CATEGORY.Webhook,\n userMessage: 'errors.payment.webhook.handler_not_found',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n // ===== Payment Adapter & Core Errors =====\n [ERROR_CODES.PAYMENT_ADAPTER_INIT_FAILED]: {\n code: ERROR_CODES.PAYMENT_ADAPTER_INIT_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Provider,\n userMessage: 'errors.payment.adapter.init_failed',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n\n [ERROR_CODES.PAYMENT_ADAPTER_SHUTDOWN_ERROR]: {\n code: ERROR_CODES.PAYMENT_ADAPTER_SHUTDOWN_ERROR,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Provider,\n userMessage: 'errors.payment.adapter.shutdown_error',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.PAYMENT_ADAPTER_HMAC_COMPUTATION_FAILED]: {\n code: ERROR_CODES.PAYMENT_ADAPTER_HMAC_COMPUTATION_FAILED,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Security,\n userMessage: 'errors.payment.adapter.hmac_computation_failed',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n\n [ERROR_CODES.PAYMENT_ADAPTER_MISSING_PROVIDER]: {\n code: ERROR_CODES.PAYMENT_ADAPTER_MISSING_PROVIDER,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Configuration,\n userMessage: 'errors.payment.adapter.missing_provider',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.PAYMENT_ADAPTER_MISSING_ENVIRONMENT]: {\n code: ERROR_CODES.PAYMENT_ADAPTER_MISSING_ENVIRONMENT,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Configuration,\n userMessage: 'errors.payment.adapter.missing_environment',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.PAYMENT_ADAPTER_MISSING_CREDENTIALS]: {\n code: ERROR_CODES.PAYMENT_ADAPTER_MISSING_CREDENTIALS,\n status: HTTP_STATUS.UNAUTHORIZED,\n category: ERROR_CATEGORY.Authentication,\n userMessage: 'errors.payment.adapter.missing_credentials',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.PAYMENT_ADAPTER_MISSING_WEBHOOK_URL]: {\n code: ERROR_CODES.PAYMENT_ADAPTER_MISSING_WEBHOOK_URL,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Configuration,\n userMessage: 'errors.payment.adapter.missing_webhook_url',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.PAYMENT_ADAPTER_MISSING_UNREGISTER_ENDPOINT]: {\n code: ERROR_CODES.PAYMENT_ADAPTER_MISSING_UNREGISTER_ENDPOINT,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Configuration,\n userMessage: 'errors.payment.adapter.missing_unregister_endpoint',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.PAYMENT_ADAPTER_UNSUPPORTED_OPERATION]: {\n code: ERROR_CODES.PAYMENT_ADAPTER_UNSUPPORTED_OPERATION,\n status: HTTP_STATUS.NOT_IMPLEMENTED,\n category: ERROR_CATEGORY.Provider,\n userMessage: 'errors.payment.adapter.unsupported_operation',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.PAYMENT_ADAPTER_RESPONSE_MAPPING_FAILED]: {\n code: ERROR_CODES.PAYMENT_ADAPTER_RESPONSE_MAPPING_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Provider,\n userMessage: 'errors.payment.adapter.response_mapping_failed',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n\n // ===== Idempotency & State Management =====\n [ERROR_CODES.PAYMENT_IDEMPOTENCY_VIOLATION]: {\n code: ERROR_CODES.PAYMENT_IDEMPOTENCY_VIOLATION,\n status: HTTP_STATUS.CONFLICT,\n category: ERROR_CATEGORY.Processing,\n userMessage: 'errors.payment.idempotency.violation',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.PAYMENT_IDEMPOTENCY_KEY_MISSING]: {\n code: ERROR_CODES.PAYMENT_IDEMPOTENCY_KEY_MISSING,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'errors.payment.idempotency.key_missing',\n severity: ERROR_SEVERITY.Low,\n retryable: false,\n },\n\n [ERROR_CODES.PAYMENT_IDEMPOTENCY_STORE_ERROR]: {\n code: ERROR_CODES.PAYMENT_IDEMPOTENCY_STORE_ERROR,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Cache,\n userMessage: 'errors.payment.idempotency.store_error',\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n },\n\n // ===== Routing & Strategy =====\n [ERROR_CODES.PAYMENT_ROUTING_FAILED]: {\n code: ERROR_CODES.PAYMENT_ROUTING_FAILED,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Strategy,\n userMessage: 'errors.payment.routing.failed',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n\n [ERROR_CODES.PAYMENT_ROUTING_CONFIGURATION_INVALID]: {\n code: ERROR_CODES.PAYMENT_ROUTING_CONFIGURATION_INVALID,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Configuration,\n userMessage: 'errors.payment.routing.configuration_invalid',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.PAYMENT_ROUTING_PROVIDER_UNAVAILABLE]: {\n code: ERROR_CODES.PAYMENT_ROUTING_PROVIDER_UNAVAILABLE,\n status: HTTP_STATUS.SERVICE_UNAVAILABLE,\n category: ERROR_CATEGORY.Provider,\n userMessage: 'errors.payment.routing.provider_unavailable',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n // Connection & Network\n [ERROR_CODES.DB_CONNECTION_FAILED]: {\n code: ERROR_CODES.DB_CONNECTION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Network,\n userMessage: 'db.connection.failed',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n [ERROR_CODES.DB_CONNECTION_ERROR]: {\n code: ERROR_CODES.DB_CONNECTION_ERROR,\n status: HTTP_STATUS.SERVICE_UNAVAILABLE,\n category: ERROR_CATEGORY.Network,\n userMessage: 'db.connection.error',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n [ERROR_CODES.DB_MULTI_WRITE_FAILED]: {\n code: ERROR_CODES.DB_MULTI_WRITE_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Database,\n userMessage: 'db.multi_write.failed',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n [ERROR_CODES.DB_TIMEOUT]: {\n code: ERROR_CODES.DB_TIMEOUT,\n status: HTTP_STATUS.REQUEST_TIMEOUT,\n category: ERROR_CATEGORY.Timeout,\n userMessage: 'db.connection.timeout',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n\n // Constraints & Integrity\n [ERROR_CODES.DB_CONSTRAINT_VIOLATION]: {\n code: ERROR_CODES.DB_CONSTRAINT_VIOLATION,\n status: HTTP_STATUS.CONFLICT,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'db.constraint.violation',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.DB_DEADLOCK]: {\n code: ERROR_CODES.DB_DEADLOCK,\n status: HTTP_STATUS.CONFLICT,\n category: ERROR_CATEGORY.Server,\n userMessage: 'db.constraint.deadlock',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n [ERROR_CODES.DB_DUPLICATE_ENTRY]: {\n code: ERROR_CODES.DB_DUPLICATE_ENTRY,\n status: HTTP_STATUS.CONFLICT,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'db.constraint.duplicate_entry',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n // Entity Operations\n [ERROR_CODES.DB_ENTITY_NOT_FOUND]: {\n code: ERROR_CODES.DB_ENTITY_NOT_FOUND,\n status: HTTP_STATUS.NOT_FOUND,\n category: ERROR_CATEGORY.NotFound,\n userMessage: 'db.entity.not_found',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n // Migration & Schema\n [ERROR_CODES.DB_MIGRATION_FAILED]: {\n code: ERROR_CODES.DB_MIGRATION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Server,\n userMessage: 'db.migration.failed',\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n },\n\n // General\n [ERROR_CODES.DB_UNKNOWN_ERROR]: {\n code: ERROR_CODES.DB_UNKNOWN_ERROR,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Unknown,\n userMessage: 'db.unknown_error',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.PAYMENT_ROUTING_RETRY_EXCEEDED]: {\n code: ERROR_CODES.PAYMENT_ROUTING_RETRY_EXCEEDED,\n status: HTTP_STATUS.TOO_MANY_REQUESTS,\n category: ERROR_CATEGORY.Retry,\n userMessage: 'errors.payment.routing.retry_exceeded',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.PAYMENT_SYSTEM_NOT_INITIALIZED]: {\n code: ERROR_CODES.PAYMENT_SYSTEM_NOT_INITIALIZED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.System,\n userMessage: 'errors.payment.system.not_initialized',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n\n [ERROR_CODES.PAYMENT_CONTEXT_OPERATION_FAILED]: {\n code: ERROR_CODES.PAYMENT_CONTEXT_OPERATION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.System,\n userMessage: 'errors.payment.context.operation_failed',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n\n [ERROR_CODES.PAYMENT_INTERNAL_ERROR]: {\n code: ERROR_CODES.PAYMENT_INTERNAL_ERROR,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.System,\n userMessage: 'errors.payment.internal_error',\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n },\n\n [ERROR_CODES.PAYMENT_UNKNOWN_ERROR]: {\n code: ERROR_CODES.PAYMENT_UNKNOWN_ERROR,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Unknown,\n userMessage: 'errors.payment.unknown_error',\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n },\n\n // ===== Event Lifecycle Errors =====\n [ERROR_CODES.PAYMENT_EVENT_EMIT_FAILED]: {\n code: ERROR_CODES.PAYMENT_EVENT_EMIT_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Processing,\n userMessage: 'errors.payment.event.emit_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.PAYMENT_EVENT_INVALID_TYPE]: {\n code: ERROR_CODES.PAYMENT_EVENT_INVALID_TYPE,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'errors.payment.event.invalid_type',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.PAYMENT_EVENT_CREATION_FAILED]: {\n code: ERROR_CODES.PAYMENT_EVENT_CREATION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.System,\n userMessage: 'errors.payment.event.creation_failed',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n\n [ERROR_CODES.PAYMENT_EVENT_HANDLER_TIMEOUT]: {\n code: ERROR_CODES.PAYMENT_EVENT_HANDLER_TIMEOUT,\n status: HTTP_STATUS.GATEWAY_TIMEOUT,\n category: ERROR_CATEGORY.Timeout,\n userMessage: 'errors.payment.event.handler_timeout',\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n },\n\n [ERROR_CODES.PAYMENT_EVENT_HANDLER_INVALID_RESULT]: {\n code: ERROR_CODES.PAYMENT_EVENT_HANDLER_INVALID_RESULT,\n status: HTTP_STATUS.UNPROCESSABLE_ENTITY,\n category: ERROR_CATEGORY.Processing,\n userMessage: 'errors.payment.event.handler_invalid_result',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.PAYMENT_EVENT_LIFECYCLE_FAILURE]: {\n code: ERROR_CODES.PAYMENT_EVENT_LIFECYCLE_FAILURE,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Processing,\n userMessage: 'errors.payment.event.lifecycle_failure',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n [ERROR_CODES.PAYMENT_COMPLIANCE_AML_CHECK_FAILED]: {\n code: ERROR_CODES.PAYMENT_COMPLIANCE_AML_CHECK_FAILED,\n status: HTTP_STATUS.FORBIDDEN,\n category: ERROR_CATEGORY.Compliance,\n userMessage: 'errors.payment.compliance.aml_check_failed',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n\n [ERROR_CODES.PAYMENT_COMPLIANCE_PSD2_STRONG_AUTH_REQUIRED]: {\n code: ERROR_CODES.PAYMENT_COMPLIANCE_PSD2_STRONG_AUTH_REQUIRED,\n status: HTTP_STATUS.UNAUTHORIZED,\n category: ERROR_CATEGORY.Authentication,\n userMessage: 'errors.payment.compliance.psd2_strong_auth_required',\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n },\n\n [ERROR_CODES.PAYMENT_COMPLIANCE_GDPR_DATA_ACCESS]: {\n code: ERROR_CODES.PAYMENT_COMPLIANCE_GDPR_DATA_ACCESS,\n status: HTTP_STATUS.UNAVAILABLE_FOR_LEGAL_REASONS,\n category: ERROR_CATEGORY.Compliance,\n userMessage: 'errors.payment.compliance.gdpr_data_access',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.PAYMENT_COMPLIANCE_PCI_COMPLIANCE]: {\n code: ERROR_CODES.PAYMENT_COMPLIANCE_PCI_COMPLIANCE,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Security,\n userMessage: 'errors.payment.compliance.pci_compliance',\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n },\n\n [ERROR_CODES.PAYMENT_COMPLIANCE_LOCAL_BANKING_RESTRICTION]: {\n code: ERROR_CODES.PAYMENT_COMPLIANCE_LOCAL_BANKING_RESTRICTION,\n status: HTTP_STATUS.FORBIDDEN,\n category: ERROR_CATEGORY.Regional,\n userMessage: 'errors.payment.compliance.local_banking_restriction',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n // === Processing Errors ===\n\n [ERROR_CODES.PAYMENT_PROCESSING_FAILED]: {\n code: ERROR_CODES.PAYMENT_PROCESSING_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Processing,\n userMessage: 'errors.payment.processing.failed',\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n },\n\n [ERROR_CODES.PAYMENT_PROCESSING_TIMEOUT]: {\n code: ERROR_CODES.PAYMENT_PROCESSING_TIMEOUT,\n status: HTTP_STATUS.GATEWAY_TIMEOUT,\n category: ERROR_CATEGORY.Timeout,\n userMessage: 'errors.payment.processing.timeout',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n\n [ERROR_CODES.PAYMENT_PROCESSING_GATEWAY_ERROR]: {\n code: ERROR_CODES.PAYMENT_PROCESSING_GATEWAY_ERROR,\n status: HTTP_STATUS.BAD_GATEWAY,\n category: ERROR_CATEGORY.Provider,\n userMessage: 'errors.payment.processing.gateway_error',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n\n [ERROR_CODES.PAYMENT_PROCESSING_DUPLICATE]: {\n code: ERROR_CODES.PAYMENT_PROCESSING_DUPLICATE,\n status: HTTP_STATUS.CONFLICT,\n category: ERROR_CATEGORY.Processing,\n userMessage: 'errors.payment.processing.duplicate',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.PAYMENT_PROCESSING_UNEXPECTED_STATE]: {\n code: ERROR_CODES.PAYMENT_PROCESSING_UNEXPECTED_STATE,\n status: HTTP_STATUS.UNPROCESSABLE_ENTITY,\n category: ERROR_CATEGORY.System,\n userMessage: 'errors.payment.processing.unexpected_state',\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n },\n\n [ERROR_CODES.PAYMENT_PROVIDER_RATE_LIMIT]: {\n code: ERROR_CODES.PAYMENT_PROVIDER_RATE_LIMIT,\n status: HTTP_STATUS.TOO_MANY_REQUESTS,\n category: ERROR_CATEGORY.RateLimit,\n userMessage: 'errors.payment.provider.rate_limit',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n\n [ERROR_CODES.PAYMENT_PROVIDER_UNKNOWN]: {\n code: ERROR_CODES.PAYMENT_PROVIDER_UNKNOWN,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Provider,\n userMessage: 'errors.payment.provider.unknown',\n severity: ERROR_SEVERITY.Critical,\n retryable: true,\n },\n\n [ERROR_CODES.PAYMENT_CUSTOMER_CREATION_FAILED]: {\n code: ERROR_CODES.PAYMENT_CUSTOMER_CREATION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Processing,\n userMessage: 'errors.payment.customer.creation_failed',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n\n [ERROR_CODES.PAYMENT_METHOD_SAVE_FAILED]: {\n code: ERROR_CODES.PAYMENT_METHOD_SAVE_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Processing,\n userMessage: 'errors.payment.method.save_failed',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n\n [ERROR_CODES.PAYMENT_METHOD_DELETE_FAILED]: {\n code: ERROR_CODES.PAYMENT_METHOD_DELETE_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Processing,\n userMessage: 'errors.payment.method.delete_failed',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n\n [ERROR_CODES.PAYMENT_SUBSCRIPTION_CREATE_FAILED]: {\n code: ERROR_CODES.PAYMENT_SUBSCRIPTION_CREATE_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Processing,\n userMessage: 'errors.payment.subscription.create_failed',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n\n [ERROR_CODES.PAYMENT_SUBSCRIPTION_CANCEL_FAILED]: {\n code: ERROR_CODES.PAYMENT_SUBSCRIPTION_CANCEL_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Processing,\n userMessage: 'errors.payment.subscription.cancel_failed',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n\n [ERROR_CODES.PAYMENT_PAYOUT_FAILED]: {\n code: ERROR_CODES.PAYMENT_PAYOUT_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Processing,\n userMessage: 'errors.payment.payout.failed',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n\n [ERROR_CODES.PAYMENT_TRANSACTION_HISTORY_FETCH_FAILED]: {\n code: ERROR_CODES.PAYMENT_TRANSACTION_HISTORY_FETCH_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Processing,\n userMessage: 'errors.payment.transaction.history.fetch_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n },\n // ===== Unsupported Operations =====\n [ERROR_CODES.SAVE_PAYMENT_METHOD_UNSUPPORTED]: {\n code: ERROR_CODES.SAVE_PAYMENT_METHOD_UNSUPPORTED,\n status: HTTP_STATUS.NOT_IMPLEMENTED,\n category: ERROR_CATEGORY.Provider,\n userMessage: 'errors.payment.method.save_unsupported',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.DELETE_PAYMENT_METHOD_UNSUPPORTED]: {\n code: ERROR_CODES.DELETE_PAYMENT_METHOD_UNSUPPORTED,\n status: HTTP_STATUS.NOT_IMPLEMENTED,\n category: ERROR_CATEGORY.Provider,\n userMessage: 'errors.payment.method.delete_unsupported',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.GET_USER_PAYMENT_METHODS_UNSUPPORTED]: {\n code: ERROR_CODES.GET_USER_PAYMENT_METHODS_UNSUPPORTED,\n status: HTTP_STATUS.NOT_IMPLEMENTED,\n category: ERROR_CATEGORY.Provider,\n userMessage: 'errors.payment.method.get_user_methods_unsupported',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.CREATE_SUBSCRIPTION_UNSUPPORTED]: {\n code: ERROR_CODES.CREATE_SUBSCRIPTION_UNSUPPORTED,\n status: HTTP_STATUS.NOT_IMPLEMENTED,\n category: ERROR_CATEGORY.Provider,\n userMessage: 'errors.payment.subscription.create_unsupported',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.CANCEL_SUBSCRIPTION_UNSUPPORTED]: {\n code: ERROR_CODES.CANCEL_SUBSCRIPTION_UNSUPPORTED,\n status: HTTP_STATUS.NOT_IMPLEMENTED,\n category: ERROR_CATEGORY.Provider,\n userMessage: 'errors.payment.subscription.cancel_unsupported',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.PROCESS_PAYOUT_UNSUPPORTED]: {\n code: ERROR_CODES.PROCESS_PAYOUT_UNSUPPORTED,\n status: HTTP_STATUS.NOT_IMPLEMENTED,\n category: ERROR_CATEGORY.Provider,\n userMessage: 'errors.payment.payout.unsupported',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.GET_TRANSACTION_HISTORY_UNSUPPORTED]: {\n code: ERROR_CODES.GET_TRANSACTION_HISTORY_UNSUPPORTED,\n status: HTTP_STATUS.NOT_IMPLEMENTED,\n category: ERROR_CATEGORY.Provider,\n userMessage: 'errors.payment.transaction.history_unsupported',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n // Withdrawal Errors\n [ERROR_CODES.WITHDRAWAL_UNSUPPORTED]: {\n code: ERROR_CODES.WITHDRAWAL_UNSUPPORTED,\n status: HTTP_STATUS.NOT_IMPLEMENTED,\n category: ERROR_CATEGORY.Provider,\n userMessage: 'errors.payment.withdrawal.unsupported',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.WITHDRAWAL_CREATE_UNSUPPORTED]: {\n code: ERROR_CODES.WITHDRAWAL_CREATE_UNSUPPORTED,\n status: HTTP_STATUS.NOT_IMPLEMENTED,\n category: ERROR_CATEGORY.Provider,\n userMessage: 'errors.payment.withdrawal.create_unsupported',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.WITHDRAWAL_PROCESS_UNSUPPORTED]: {\n code: ERROR_CODES.WITHDRAWAL_PROCESS_UNSUPPORTED,\n status: HTTP_STATUS.NOT_IMPLEMENTED,\n category: ERROR_CATEGORY.Provider,\n userMessage: 'errors.payment.withdrawal.process_unsupported',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.WITHDRAWAL_STATUS_FETCH_UNSUPPORTED]: {\n code: ERROR_CODES.WITHDRAWAL_STATUS_FETCH_UNSUPPORTED,\n status: HTTP_STATUS.NOT_IMPLEMENTED,\n category: ERROR_CATEGORY.Provider,\n userMessage: 'errors.payment.withdrawal.status_fetch_unsupported',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.WITHDRAWAL_CANCEL_UNSUPPORTED]: {\n code: ERROR_CODES.WITHDRAWAL_CANCEL_UNSUPPORTED,\n status: HTTP_STATUS.NOT_IMPLEMENTED,\n category: ERROR_CATEGORY.Provider,\n userMessage: 'errors.payment.withdrawal.cancel_unsupported',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.WITHDRAWAL_INSUFFICIENT_BALANCE]: {\n code: ERROR_CODES.WITHDRAWAL_INSUFFICIENT_BALANCE,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Limits,\n userMessage: 'errors.payment.withdrawal.insufficient_balance',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.WITHDRAWAL_INVALID_ACCOUNT]: {\n code: ERROR_CODES.WITHDRAWAL_INVALID_ACCOUNT,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'errors.payment.withdrawal.invalid_account',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.WITHDRAWAL_KYC_REQUIRED]: {\n code: ERROR_CODES.WITHDRAWAL_KYC_REQUIRED,\n status: HTTP_STATUS.FORBIDDEN,\n category: ERROR_CATEGORY.Compliance,\n userMessage: 'errors.payment.withdrawal.kyc_required',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.WITHDRAWAL_LIMIT_EXCEEDED]: {\n code: ERROR_CODES.WITHDRAWAL_LIMIT_EXCEEDED,\n status: HTTP_STATUS.FORBIDDEN,\n category: ERROR_CATEGORY.Limits,\n userMessage: 'errors.payment.withdrawal.limit_exceeded',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.WITHDRAWAL_PROVIDER_ERROR]: {\n code: ERROR_CODES.WITHDRAWAL_PROVIDER_ERROR,\n status: HTTP_STATUS.BAD_GATEWAY,\n category: ERROR_CATEGORY.Provider,\n userMessage: 'errors.payment.withdrawal.provider_error',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n\n [ERROR_CODES.WITHDRAWAL_FAILED]: {\n code: ERROR_CODES.WITHDRAWAL_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Provider,\n userMessage: 'errors.payment.withdrawal.failed',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n\n [ERROR_CODES.WITHDRAWAL_TIMEOUT]: {\n code: ERROR_CODES.WITHDRAWAL_TIMEOUT,\n status: HTTP_STATUS.GATEWAY_TIMEOUT,\n category: ERROR_CATEGORY.Timeout,\n userMessage: 'errors.payment.withdrawal.timeout',\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n },\n\n // Product Errors\n [ERROR_CODES.PRODUCT_CREATE_UNSUPPORTED]: {\n code: ERROR_CODES.PRODUCT_CREATE_UNSUPPORTED,\n status: HTTP_STATUS.NOT_IMPLEMENTED,\n category: ERROR_CATEGORY.Provider,\n userMessage: 'errors.payment.product.create_unsupported',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.PRODUCT_UPDATE_UNSUPPORTED]: {\n code: ERROR_CODES.PRODUCT_UPDATE_UNSUPPORTED,\n status: HTTP_STATUS.NOT_IMPLEMENTED,\n category: ERROR_CATEGORY.Provider,\n userMessage: 'errors.payment.product.update_unsupported',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.PRODUCT_FETCH_UNSUPPORTED]: {\n code: ERROR_CODES.PRODUCT_FETCH_UNSUPPORTED,\n status: HTTP_STATUS.NOT_IMPLEMENTED,\n category: ERROR_CATEGORY.Provider,\n userMessage: 'errors.payment.product.fetch_unsupported',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.PRODUCT_DEACTIVATE_UNSUPPORTED]: {\n code: ERROR_CODES.PRODUCT_DEACTIVATE_UNSUPPORTED,\n status: HTTP_STATUS.NOT_IMPLEMENTED,\n category: ERROR_CATEGORY.Provider,\n userMessage: 'errors.payment.product.deactivate_unsupported',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.PRODUCT_NOT_FOUND]: {\n code: ERROR_CODES.PRODUCT_NOT_FOUND,\n status: HTTP_STATUS.NOT_FOUND,\n category: ERROR_CATEGORY.NotFound,\n userMessage: 'errors.payment.product.not_found',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.PRODUCT_INVALID_DATA]: {\n code: ERROR_CODES.PRODUCT_INVALID_DATA,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'errors.payment.product.invalid_data',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.PRODUCT_PROVIDER_ERROR]: {\n code: ERROR_CODES.PRODUCT_PROVIDER_ERROR,\n status: HTTP_STATUS.BAD_GATEWAY,\n category: ERROR_CATEGORY.Provider,\n userMessage: 'errors.payment.product.provider_error',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n\n [ERROR_CODES.PRODUCT_ALREADY_INACTIVE]: {\n code: ERROR_CODES.PRODUCT_ALREADY_INACTIVE,\n status: HTTP_STATUS.CONFLICT,\n category: ERROR_CATEGORY.Conflict,\n userMessage: 'errors.payment.product.already_inactive',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.PRODUCT_SYNC_FAILED]: {\n code: ERROR_CODES.PRODUCT_SYNC_FAILED,\n status: HTTP_STATUS.BAD_GATEWAY,\n category: ERROR_CATEGORY.Provider,\n userMessage: 'errors.payment.product.sync_failed',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n\n // Pricing Errors\n [ERROR_CODES.PRICING_CREATE_UNSUPPORTED]: {\n code: ERROR_CODES.PRICING_CREATE_UNSUPPORTED,\n status: HTTP_STATUS.NOT_IMPLEMENTED,\n category: ERROR_CATEGORY.Provider,\n userMessage: 'errors.payment.pricing.create_unsupported',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.PRICING_UPDATE_UNSUPPORTED]: {\n code: ERROR_CODES.PRICING_UPDATE_UNSUPPORTED,\n status: HTTP_STATUS.NOT_IMPLEMENTED,\n category: ERROR_CATEGORY.Provider,\n userMessage: 'errors.payment.pricing.update_unsupported',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.PRICING_DEACTIVATE_UNSUPPORTED]: {\n code: ERROR_CODES.PRICING_DEACTIVATE_UNSUPPORTED,\n status: HTTP_STATUS.NOT_IMPLEMENTED,\n category: ERROR_CATEGORY.Provider,\n userMessage: 'errors.payment.pricing.deactivate_unsupported',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.PRICING_NOT_FOUND]: {\n code: ERROR_CODES.PRICING_NOT_FOUND,\n status: HTTP_STATUS.NOT_FOUND,\n category: ERROR_CATEGORY.NotFound,\n userMessage: 'errors.payment.pricing.not_found',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.PRICING_INVALID_AMOUNT]: {\n code: ERROR_CODES.PRICING_INVALID_AMOUNT,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'errors.payment.pricing.invalid_amount',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.PRICING_INVALID_CURRENCY]: {\n code: ERROR_CODES.PRICING_INVALID_CURRENCY,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'errors.payment.pricing.invalid_currency',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.PRICING_PROVIDER_ERROR]: {\n code: ERROR_CODES.PRICING_PROVIDER_ERROR,\n status: HTTP_STATUS.BAD_GATEWAY,\n category: ERROR_CATEGORY.Provider,\n userMessage: 'errors.payment.pricing.provider_error',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n\n [ERROR_CODES.PRICING_ALREADY_INACTIVE]: {\n code: ERROR_CODES.PRICING_ALREADY_INACTIVE,\n status: HTTP_STATUS.CONFLICT,\n category: ERROR_CATEGORY.Conflict,\n userMessage: 'errors.payment.pricing.already_inactive',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.PRICING_SYNC_FAILED]: {\n code: ERROR_CODES.PRICING_SYNC_FAILED,\n status: HTTP_STATUS.BAD_GATEWAY,\n category: ERROR_CATEGORY.Provider,\n userMessage: 'errors.payment.pricing.sync_failed',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n\n [ERROR_CODES.PRICING_REQUIRES_NEW_VERSION]: {\n code: ERROR_CODES.PRICING_REQUIRES_NEW_VERSION,\n status: HTTP_STATUS.CONFLICT,\n category: ERROR_CATEGORY.Conflict,\n userMessage: 'errors.payment.pricing.requires_new_version',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.INVALID_CREDENTIALS]: {\n code: ERROR_CODES.INVALID_CREDENTIALS,\n status: HTTP_STATUS.UNAUTHORIZED,\n category: ERROR_CATEGORY.Authentication,\n userMessage: 'errors.auth.invalid_credentials',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.TOKEN_EXPIRED]: {\n code: ERROR_CODES.TOKEN_EXPIRED,\n status: HTTP_STATUS.UNAUTHORIZED,\n category: ERROR_CATEGORY.Authentication,\n userMessage: 'errors.auth.token_expired',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.TOKEN_INVALID]: {\n code: ERROR_CODES.TOKEN_INVALID,\n status: HTTP_STATUS.UNAUTHORIZED,\n category: ERROR_CATEGORY.Authentication,\n userMessage: 'errors.auth.token_invalid',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n [ERROR_CODES.TOKEN_REVOKED]: {\n code: ERROR_CODES.TOKEN_REVOKED,\n status: HTTP_STATUS.UNAUTHORIZED,\n category: ERROR_CATEGORY.Authentication,\n userMessage: 'errors.auth.token_revoked',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.SESSION_EXPIRED]: {\n code: ERROR_CODES.SESSION_EXPIRED,\n status: HTTP_STATUS.UNAUTHORIZED,\n category: ERROR_CATEGORY.Authentication,\n userMessage: 'errors.auth.session_expired',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.MFA_REQUIRED]: {\n code: ERROR_CODES.MFA_REQUIRED,\n status: HTTP_STATUS.FORBIDDEN,\n category: ERROR_CATEGORY.Authorization,\n userMessage: 'errors.auth.mfa_required',\n severity: ERROR_SEVERITY.Low,\n retryable: false,\n },\n [ERROR_CODES.MFA_INVALID]: {\n code: ERROR_CODES.MFA_INVALID,\n status: HTTP_STATUS.UNAUTHORIZED,\n category: ERROR_CATEGORY.Authentication,\n userMessage: 'errors.auth.mfa_invalid',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.INSUFFICIENT_PERMISSIONS]: {\n code: ERROR_CODES.INSUFFICIENT_PERMISSIONS,\n status: HTTP_STATUS.FORBIDDEN,\n category: ERROR_CATEGORY.Authorization,\n userMessage: 'errors.auth.insufficient_permissions',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.ROLE_REQUIRED]: {\n code: ERROR_CODES.ROLE_REQUIRED,\n status: HTTP_STATUS.FORBIDDEN,\n category: ERROR_CATEGORY.Authorization,\n userMessage: 'errors.auth.role_required',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.WALLET_SIGNATURE_INVALID]: {\n code: ERROR_CODES.WALLET_SIGNATURE_INVALID,\n status: HTTP_STATUS.UNAUTHORIZED,\n category: ERROR_CATEGORY.Authentication,\n userMessage: 'errors.auth.wallet_signature_invalid',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n [ERROR_CODES.NONCE_EXPIRED]: {\n code: ERROR_CODES.NONCE_EXPIRED,\n status: HTTP_STATUS.UNAUTHORIZED,\n category: ERROR_CATEGORY.Authentication,\n userMessage: 'errors.auth.nonce_expired',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.NONCE_ALREADY_USED]: {\n code: ERROR_CODES.NONCE_ALREADY_USED,\n status: HTTP_STATUS.UNAUTHORIZED,\n category: ERROR_CATEGORY.Authentication,\n userMessage: 'errors.auth.nonce_already_used',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n [ERROR_CODES.ACCOUNT_LOCKED]: {\n code: ERROR_CODES.ACCOUNT_LOCKED,\n status: HTTP_STATUS.LOCKED,\n category: ERROR_CATEGORY.Authorization,\n userMessage: 'errors.auth.account_locked',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n [ERROR_CODES.ACCOUNT_SUSPENDED]: {\n code: ERROR_CODES.ACCOUNT_SUSPENDED,\n status: HTTP_STATUS.FORBIDDEN,\n category: ERROR_CATEGORY.Authorization,\n userMessage: 'errors.auth.account_suspended',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n};\n","// ============================================\n// USER DEFINITION ENUMS\n// ============================================\n\nimport { ERROR_CATEGORY, ERROR_CODES, ERROR_SEVERITY } from '../errors';\nimport { HTTP_STATUS } from '../http/constants';\n\n/**\n * Enum representing the different roles a user can have within the system.\n * @description Roles are used to determine access levels, permissions, and user-specific experiences.\n *\n * @example\n * ```typescript\n * import { USER_ROLE } from '@plyaz/types';\n *\n * const userRole = USER_ROLE.Athlete; // 'athlete'\n * const isAdmin = userRole === USER_ROLE.Admin || userRole === USER_ROLE.SuperAdmin;\n * ```\n */\nexport const USER_ROLE = {\n /** A user who is an athlete and participates in sports activities. */\n Athlete: 'athlete',\n\n /** A user who scouts and discovers talent. */\n Scout: 'scout',\n\n /** A user who acts as an agent representing athletes or clubs. */\n Agent: 'agent',\n\n /** A user representing a sports club or organization. */\n Club: 'club',\n\n /** A fan or supporter of athletes or clubs. */\n Fan: 'fan',\n\n /** A system administrator with access to management tools. */\n Admin: 'admin',\n\n /** A super admin with the highest level of access and control. */\n SuperAdmin: 'super.admin',\n} as const;\n\n/**\n * Enum representing the current status of a user account.\n * @description Statuses are used to determine login availability, visibility, and user flow.\n *\n * @example\n * ```typescript\n * import { USER_STATUS } from '@plyaz/types';\n *\n * const isAccessible = status === USER_STATUS.Active;\n * const needsReview = status === USER_STATUS.Pending;\n * ```\n */\nexport const USER_STATUS = {\n /** Active user with full access. */\n Active: 'active',\n\n /** Inactive user, typically not currently using the platform. */\n Inactive: 'inactive',\n\n /** User account is awaiting approval or completion of setup. */\n Pending: 'pending',\n\n /** User has been temporarily suspended due to policy violations or manual review. */\n Suspended: 'suspended',\n\n /** User has been permanently banned from the platform. */\n Banned: 'banned',\n} as const;\n\n// ============================================\n// AUTHENTICATION PROVIDER ENUMS\n// ============================================\n\n/**\n * Enum representing the primary authentication provider technology stack.\n * @description Defines the system used to manage user identities and issue tokens.\n *\n * @enum {string}\n */\nexport enum AUTH_PROVIDER_TYPE {\n /** Uses Clerk for external authentication and Supabase for internal RLS/DB sync. */\n ClerkSupabase = 'CLERK_SUPABASE',\n /** Uses an internal database for managing credentials (typically for B2B/Backoffice). */\n InternalDb = 'INTERNAL_DB',\n}\n\n/**\n * Authentication provider types.\n * @description Defines the specific login method or external identity provider used by the user.\n *\n * @enum {string}\n */\nexport enum AUTH_PROVIDER {\n /** Email/password authentication. */\n EMAIL = 'EMAIL',\n /** Clerk authentication. */\n CLERK = 'CLERK',\n /** Google OAuth. */\n GOOGLE = 'GOOGLE',\n /** Facebook OAuth. */\n FACEBOOK = 'FACEBOOK',\n /** Apple Sign In. */\n APPLE = 'APPLE',\n /** Web3 wallet authentication (e.g., MetaMask). */\n WEB3 = 'WEB3',\n}\n\n// ============================================\n// ROLE & TOKEN ENUMS\n// ============================================\n\n/**\n * User role assignment status.\n * @description Defines the state of a user's relationship with a specific role.\n *\n * @enum {string}\n */\nexport enum USER_ROLE_STATUS {\n /** Role is active and grants associated permissions. */\n ACTIVE = 'ACTIVE',\n /** Role is inactive (temporarily disabled or superseded by a primary role). */\n INACTIVE = 'INACTIVE',\n /** Role is suspended (often due to user policy violation, preventing role-specific access). */\n SUSPENDED = 'SUSPENDED',\n}\n\n/**\n * Token type for authentication.\n * @description Defines the schema or standard used by the authentication token.\n *\n * @enum {string}\n */\nexport enum TOKEN_TYPE {\n /** Bearer token standard, commonly used for OAuth 2.0. */\n BEARER = 'Bearer',\n /** JSON Web Token standard. */\n JWT = 'JWT',\n}\n\nexport const AUTH_ERROR_DEFINITIONS = {\n [ERROR_CODES.INVALID_CREDENTIALS]: {\n code: ERROR_CODES.INVALID_CREDENTIALS,\n status: HTTP_STATUS.UNAUTHORIZED,\n category: ERROR_CATEGORY.Authentication,\n userMessage: 'errors.auth.invalid_credentials',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.TOKEN_EXPIRED]: {\n code: ERROR_CODES.TOKEN_EXPIRED,\n status: HTTP_STATUS.UNAUTHORIZED,\n category: ERROR_CATEGORY.Authentication,\n userMessage: 'errors.auth.token_expired',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.TOKEN_INVALID]: {\n code: ERROR_CODES.TOKEN_INVALID,\n status: HTTP_STATUS.UNAUTHORIZED,\n category: ERROR_CATEGORY.Authentication,\n userMessage: 'errors.auth.token_invalid',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n [ERROR_CODES.TOKEN_REVOKED]: {\n code: ERROR_CODES.TOKEN_REVOKED,\n status: HTTP_STATUS.UNAUTHORIZED,\n category: ERROR_CATEGORY.Authentication,\n userMessage: 'errors.auth.token_revoked',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.SESSION_EXPIRED]: {\n code: ERROR_CODES.SESSION_EXPIRED,\n status: HTTP_STATUS.UNAUTHORIZED,\n category: ERROR_CATEGORY.Authentication,\n userMessage: 'errors.auth.session_expired',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.MFA_REQUIRED]: {\n code: ERROR_CODES.MFA_REQUIRED,\n status: HTTP_STATUS.FORBIDDEN,\n category: ERROR_CATEGORY.Authorization,\n userMessage: 'errors.auth.mfa_required',\n severity: ERROR_SEVERITY.Low,\n retryable: false,\n },\n [ERROR_CODES.MFA_INVALID]: {\n code: ERROR_CODES.MFA_INVALID,\n status: HTTP_STATUS.UNAUTHORIZED,\n category: ERROR_CATEGORY.Authentication,\n userMessage: 'errors.auth.mfa_invalid',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.INSUFFICIENT_PERMISSIONS]: {\n code: ERROR_CODES.INSUFFICIENT_PERMISSIONS,\n status: HTTP_STATUS.FORBIDDEN,\n category: ERROR_CATEGORY.Authorization,\n userMessage: 'errors.auth.insufficient_permissions',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.ROLE_REQUIRED]: {\n code: ERROR_CODES.ROLE_REQUIRED,\n status: HTTP_STATUS.FORBIDDEN,\n category: ERROR_CATEGORY.Authorization,\n userMessage: 'errors.auth.role_required',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.WALLET_SIGNATURE_INVALID]: {\n code: ERROR_CODES.WALLET_SIGNATURE_INVALID,\n status: HTTP_STATUS.UNAUTHORIZED,\n category: ERROR_CATEGORY.Authentication,\n userMessage: 'errors.auth.wallet_signature_invalid',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n [ERROR_CODES.NONCE_EXPIRED]: {\n code: ERROR_CODES.NONCE_EXPIRED,\n status: HTTP_STATUS.UNAUTHORIZED,\n category: ERROR_CATEGORY.Authentication,\n userMessage: 'errors.auth.nonce_expired',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.NONCE_ALREADY_USED]: {\n code: ERROR_CODES.NONCE_ALREADY_USED,\n status: HTTP_STATUS.UNAUTHORIZED,\n category: ERROR_CATEGORY.Authentication,\n userMessage: 'errors.auth.nonce_already_used',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n [ERROR_CODES.ACCOUNT_LOCKED]: {\n code: ERROR_CODES.ACCOUNT_LOCKED,\n status: HTTP_STATUS.LOCKED,\n category: ERROR_CATEGORY.Authorization,\n userMessage: 'errors.auth.account_locked',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n [ERROR_CODES.ACCOUNT_SUSPENDED]: {\n code: ERROR_CODES.ACCOUNT_SUSPENDED,\n status: HTTP_STATUS.FORBIDDEN,\n category: ERROR_CATEGORY.Authorization,\n userMessage: 'errors.auth.account_suspended',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n} as const;\n","import { z } from 'zod';\n\n/**\n * Password minimum character length\n */\nconst DEFAULT_PASSWORD = 8;\n\n/**\n * Contact Us Form Schema\n * Validates contact form submissions\n */\nexport const ContactUsFormSchema = z.object({\n name: z.string({ error: 'errors.form.missingField' }).min(1, 'errors.form.nameMissing'),\n email: z.email({ error: 'errors.form.emailInvalid' }),\n});\n\n/**\n * Contact Us Form Type\n */\nexport type ContactUsForm = z.infer<typeof ContactUsFormSchema>;\n\n/**\n * Signup Form Schema\n * Validates user registration form submissions\n */\nexport const SignupFormSchema = z.object({\n name: z.string({ error: 'errors.form.missingField' }).min(1, 'errors.form.nameMissing'),\n email: z.email({ error: 'errors.form.emailInvalid' }),\n password: z\n .string({ error: 'errors.form.missingField' })\n .min(DEFAULT_PASSWORD, 'errors.form.passwordTooShort'),\n});\n\n/**\n * Signup Form Type\n */\nexport type SignupForm = z.infer<typeof SignupFormSchema>;\n","import type { WithExpiration, WithAuthTokens } from '../common/types';\nimport type { BaseErrorContext } from '../errors';\nimport type { AUTH_ERROR_DEFINITIONS, USER_ROLE_STATUS } from './enums';\n\n// ============================================\n// AUTHENTICATION TYPES\n// ============================================\n\n/**\n * AuthToken Interface.\n * @description Represents an authentication token set returned after a successful login or refresh.\n * @interface AuthToken\n */\nexport interface AuthToken extends WithExpiration, WithAuthTokens {\n /**\n * Token type, typically \"Bearer\" for OAuth2-style tokens.\n */\n readonly tokenType: 'Bearer';\n}\n\n/**\n * AuthCredentials.\n * @description Represents the credentials used for traditional email/password authentication.\n * This is used for providers that handle this type of login directly.\n */\nexport type AuthCredentials = {\n /** The user's email address. */\n email: string;\n /** The user's password (optional, used in traditional login flows). */\n password?: string;\n /**\n * One-Time Password (OTP) or magic link token.\n * This could be extended with other credential types as needed.\n */\n otp?: string;\n};\n\n/**\n * UserContext.\n * @description A standardized representation of a user's context.\n * This ensures that regardless of the underlying authentication provider (Clerk, Supabase, etc.),\n * your application's internal code can interact with a consistent user object.\n */\nexport type UserContext = {\n /** A unique identifier for the user (e.g., a UUID from Supabase). */\n id: string;\n /** The user's primary email address. */\n email: string;\n /** Timestamp when the user was created. */\n createdAt: Date;\n // You can extend this with additional user profile information\n // that is consistent across all providers, such as:\n // name?: string;\n // profileImageUrl?: string;\n};\n\n// ============================================\n// SERVICE PROVIDER CONTRACTS\n// ============================================\n\n/**\n * @fileoverview Defines the contract for all authentication service providers\n * responsible for handling the synchronization between an external identity\n * source (like Clerk, Auth0, etc.) and the internal database user structure.\n *\n * Any provider implementing this interface must handle user lookup, creation,\n * and issuance of the necessary internal tokens (like the Supabase RLS JWT).\n *\n * @interface AuthServiceProvider\n */\nexport interface AuthServiceProvider {\n /**\n * Synchronizes an external user's identity with the internal application database.\n *\n * This is typically called immediately after a successful authentication with\n * an external provider to ensure the user exists in the local database,\n * update their metadata, and issue an internal authorization token (e.g., RLS JWT).\n *\n * @param clerkJwt The JWT received from the external provider (e.g., Clerk).\n * @param externalId The unique identifier from the external authentication provider (e.g., Clerk's 'sub').\n * @param email The user's primary email address from the external provider.\n * @returns A Promise resolving to an object containing the internal UserContext and the provider-specific RLS JWT.\n */\n syncUserFromExternalToken(\n clerkJwt: string,\n externalId: string,\n email: string\n ): Promise<{ user: UserContext; supabaseRlsToken: string }>;\n\n /**\n * Retrieves a user's context from the internal database using their internal ID.\n *\n * This method is generally used by trusted backend services and must bypass RLS.\n *\n * @param userId The internal database UUID of the user.\n * @returns A Promise resolving to the user's basic context (`UserContext`) or `null` if not found.\n */\n getUserById(userId: string): Promise<UserContext | null>;\n}\n\n// ============================================\n// USER TYPES\n// ============================================\n\n/**\n * B2C User Info (public schema).\n * @description Represents platform users: fans, athletes, clubs, scouts, agents.\n * * @interface UserInfo\n * @property {string} id - Unique user identifier (UUID).\n * @property {string} email - User email address (unique).\n * @property {string} [clerkUserId] - Clerk provider user ID.\n * @property {string} authProvider - Authentication provider used.\n * @property {string} [firstName] - User first name.\n * @property {string} [lastName] - User last name.\n * @property {string} displayName - Display name (required).\n * @property {string} [avatarUrl] - Avatar image URL.\n * @property {string} [phoneNumber] - Phone number.\n * @property {boolean} isActive - Account active status.\n * @property {boolean} isVerified - Email verification status.\n * @property {Date} createdAt - Account creation timestamp.\n * @property {Date} updatedAt - Last update timestamp.\n * @property {Date} [lastLoginAt] - Last login timestamp.\n */\nexport interface UserInfo {\n id: string;\n email: string;\n clerkUserId?: string;\n authProvider: string;\n firstName?: string;\n lastName?: string;\n displayName: string;\n avatarUrl?: string;\n phoneNumber?: string;\n isActive: boolean;\n isVerified: boolean;\n createdAt: Date;\n updatedAt: Date;\n lastLoginAt?: Date;\n}\n\n/**\n * B2B User (backoffice schema).\n * @description Represents internal staff: admins, moderators, support, finance, compliance.\n * * @interface BackofficeUser\n * @property {string} id - Unique user identifier (UUID).\n * @property {string} email - User email address (unique).\n * @property {string} passwordHash - Hashed password.\n * @property {string} [clerkUserId] - Clerk provider user ID.\n * @property {string} authProvider - Authentication provider used.\n * @property {string} [firstName] - User first name.\n * @property {string} [lastName] - User last name.\n * @property {string} displayName - Display name (required).\n * @property {string} [avatarUrl] - Avatar image URL.\n * @property {string} [phoneNumber] - Phone number.\n * @property {boolean} isActive - Account active status.\n * @property {boolean} isVerified - Email verification status.\n * @property {boolean} isSuspended - Account suspension status.\n * @property {string} [suspensionReason] - Reason for suspension.\n * @property {Date} [suspendedAt] - Suspension timestamp.\n * @property {Date} createdAt - Account creation timestamp.\n * @property {Date} updatedAt - Last update timestamp.\n * @property {Date} [lastLoginAt] - Last login timestamp.\n */\nexport interface BackofficeUser {\n id: string;\n email: string;\n passwordHash: string;\n clerkUserId?: string;\n authProvider: string;\n firstName?: string;\n lastName?: string;\n displayName: string;\n avatarUrl?: string;\n phoneNumber?: string;\n isActive: boolean;\n isVerified: boolean;\n isSuspended: boolean;\n suspensionReason?: string;\n suspendedAt?: Date;\n createdAt: Date;\n updatedAt: Date;\n lastLoginAt?: Date;\n}\n\n// ============================================\n// SESSION TYPES\n// ============================================\n\n/**\n * B2C Session (public schema).\n * @description Tracks authenticated user sessions with device and activity info.\n * * @interface Session\n * @property {string} id - Unique session identifier.\n * @property {string} userId - ID of the user owning the session.\n * @property {string} provider - Authentication provider used.\n * @property {string} [providerSessionId] - External provider's session ID (if applicable).\n * @property {Date} expiresAt - Session expiration timestamp.\n * @property {Date} createdAt - Session creation timestamp.\n * @property {Date} lastActivityAt - Last activity timestamp for the session.\n * @property {string} [ipAddress] - IP address used when the session was created/last used.\n * @property {string} [userAgent] - User agent string of the client.\n * @property {Record<string, unknown>} [metadata] - Arbitrary metadata related to the session.\n */\nexport interface Session {\n id: string;\n userId: string;\n provider: string;\n providerSessionId?: string;\n expiresAt: Date;\n createdAt: Date;\n lastActivityAt: Date;\n ipAddress?: string;\n userAgent?: string;\n metadata?: Record<string, unknown>;\n}\n\n/**\n * B2B Session (backoffice schema).\n * @description Tracks authenticated backoffice user sessions.\n * * @interface BackofficeSession\n * @property {string} id - Unique session identifier.\n * @property {string} backofficeUserId - ID of the backoffice user owning the session.\n * @property {string} provider - Authentication provider used.\n * @property {string} [providerSessionId] - External provider's session ID (if applicable).\n * @property {Date} expiresAt - Session expiration timestamp.\n * @property {Date} createdAt - Session creation timestamp.\n * @property {Date} lastActivityAt - Last activity timestamp for the session.\n * @property {string} [ipAddress] - IP address used when the session was created/last used.\n * @property {string} [userAgent] - User agent string of the client.\n * @property {Record<string, unknown>} [metadata] - Arbitrary metadata related to the session.\n */\nexport interface BackofficeSession {\n id: string;\n backofficeUserId: string;\n provider: string;\n providerSessionId?: string;\n expiresAt: Date;\n createdAt: Date;\n lastActivityAt: Date;\n ipAddress?: string;\n userAgent?: string;\n metadata?: Record<string, unknown>;\n}\n\n// ============================================\n// CONNECTED ACCOUNT TYPES\n// ============================================\n\n/**\n * Connected Account (provider linking).\n * @description Links external OAuth/Web3 provider accounts to users.\n * Supports OAuth providers (Clerk, Google, etc.) and Web3 wallets.\n * * @interface ConnectedAccount\n * @property {string} id - Unique connected account identifier.\n * @property {string} userId - ID of the internal user account.\n * @property {string} providerType - Category of the provider (e.g., 'oauth', 'web3').\n * @property {string} provider - Specific provider name (e.g., 'google', 'metamask').\n * @property {string} providerAccountId - Unique ID from the external provider.\n * @property {string} [walletAddress] - Wallet address for Web3 accounts.\n * @property {string} [accessTokenEncrypted] - Encrypted access token for the provider.\n * @property {boolean} isPrimary - Flag indicating if this is the user's primary login account.\n * @property {Date} linkedAt - Timestamp when the account was linked.\n */\nexport interface ConnectedAccount {\n id: string;\n userId: string;\n providerType: string;\n provider: string;\n providerAccountId: string;\n providerEmail?: string;\n providerUsername?: string;\n providerDisplayName?: string;\n providerAvatarUrl?: string;\n providerProfileUrl?: string;\n providerMetadata?: Record<string, unknown>;\n walletAddress?: string;\n chainId?: string;\n accessTokenEncrypted?: string;\n refreshTokenEncrypted?: string;\n tokenExpiresAt?: Date;\n tokenScope?: string;\n isPrimary: boolean;\n isVerified: boolean;\n isActive: boolean;\n linkedAt: Date;\n linkedIpAddress?: string;\n linkedUserAgent?: string;\n lastUsedAt?: Date;\n lastUsedIpAddress?: string;\n createdAt: Date;\n updatedAt: Date;\n}\n\n// ============================================\n// AUTH TOKENS\n// ============================================\n\n/**\n * Authentication tokens returned after successful login.\n * * @interface AuthTokens\n * @property {string} accessToken - The main access token (JWT or similar).\n * @property {string} [refreshToken] - Token used to refresh the access token.\n * @property {number} expiresIn - Access token expiration time in seconds.\n * @property {string} tokenType - Type of the token, usually 'Bearer'.\n */\nexport interface AuthTokens {\n accessToken: string;\n refreshToken?: string;\n expiresIn: number;\n tokenType: string;\n}\n\n// ============================================\n// RBAC TYPES\n// ============================================\n\n/**\n * B2C Role (public schema).\n * @description Defines user roles: FAN, ATHLETE, SCOUT, AGENT, CLUB, DEVELOPER, ADMIN.\n * * @interface Role\n * @property {string} id - Unique role identifier.\n * @property {string} code - Machine-readable role code (e.g., 'ATHLETE').\n * @property {string} name - Human-readable role name.\n * @property {number} hierarchy - Numeric value for role hierarchy/priority.\n * @property {boolean} isSystem - True if the role is system-defined and cannot be deleted.\n */\nexport interface Role {\n id: string;\n code: string;\n name: string;\n description?: string;\n hierarchy: number;\n canCreateCampaigns?: boolean;\n canContribute?: boolean;\n requiresKyc?: boolean;\n isActive: boolean;\n isSystem: boolean;\n metadata?: Record<string, unknown>;\n createdAt: Date;\n updatedAt: Date;\n}\n\n/**\n * B2B Role (backoffice schema).\n * @description Defines staff roles: SUPER_ADMIN, ADMIN, MODERATOR, FINANCE, COMPLIANCE, SUPPORT.\n * * @interface BackofficeRole\n * @property {string} id - Unique role identifier.\n * @property {string} code - Machine-readable role code (e.g., 'SUPER_ADMIN').\n * @property {string} name - Human-readable role name.\n * @property {number} hierarchy - Numeric value for role hierarchy/priority.\n * @property {boolean} canManageUsers - Permission to manage user accounts.\n * @property {boolean} canViewAllData - Permission to view all data regardless of ownership.\n */\nexport interface BackofficeRole {\n id: string;\n code: string;\n name: string;\n description?: string;\n hierarchy: number;\n canApproveCampaigns: boolean;\n canApproveKyc: boolean;\n canApprovePayouts: boolean;\n canManageUsers: boolean;\n canManageRoles: boolean;\n canViewAllData: boolean;\n isActive: boolean;\n isSystem: boolean;\n metadata?: Record<string, unknown>;\n createdAt: Date;\n updatedAt: Date;\n}\n\n/**\n * Permission (backoffice only).\n * @description Fine-grained permissions for backoffice users.\n * * @interface Permission\n * @property {string} id - Unique permission identifier.\n * @property {string} code - Machine-readable permission code (e.g., 'USER_READ').\n * @property {string} resource - The resource the permission applies to (e.g., 'USER', 'CAMPAIGN').\n * @property {string} action - The action the permission allows (e.g., 'READ', 'DELETE').\n */\nexport interface Permission {\n id: string;\n code: string;\n name: string;\n description?: string;\n resource: string;\n action: string;\n isActive: boolean;\n isSystem: boolean;\n metadata?: Record<string, unknown>;\n createdAt: Date;\n updatedAt: Date;\n}\n\n/**\n * Role-Permission mapping (backoffice only).\n * @description Links permissions to roles.\n * * @interface RolePermission\n * @property {string} id - Unique mapping identifier.\n * @property {string} roleId - ID of the role.\n * @property {string} permissionId - ID of the permission granted.\n * @property {Date} grantedAt - Timestamp when the permission was assigned to the role.\n */\nexport interface RolePermission {\n id: string;\n roleId: string;\n role: string;\n permissionId: string;\n grantedAt: Date;\n grantedBy?: string;\n}\n\n/**\n * User-Permission mapping (backoffice only).\n * @description Grants/revokes specific permissions to users, overriding role permissions.\n * * @interface UserPermission\n * @property {string} id - Unique mapping identifier.\n * @property {string} backofficeUserId - ID of the backoffice user.\n * @property {string} permissionId - ID of the permission.\n * @property {boolean} isGranted - True to grant, false to explicitly revoke.\n */\nexport interface UserPermission {\n id: string;\n backofficeUserId: string;\n permissionId: string;\n isGranted: boolean;\n expiresAt?: Date;\n grantedAt: Date;\n grantedBy?: string;\n reason?: string;\n}\n\n/**\n * B2C User-Role assignment.\n * @description Links users to roles with status tracking.\n * * @interface UserRole\n * @property {string} userId - ID of the B2C user.\n * @property {string} roleId - ID of the role assigned.\n * @property {boolean} isPrimary - True if this is the user's main, active role.\n * @property {USER_ROLE_STATUS} status - Current status of the role assignment (e.g., ACTIVE, PENDING).\n */\nexport interface UserRole {\n id: string;\n userId: string;\n roleId: string;\n role: string;\n isPrimary: boolean;\n status: USER_ROLE_STATUS;\n assignedBy?: string;\n assignedReason?: string;\n expiresAt?: Date;\n createdAt: Date;\n updatedAt: Date;\n}\n\n/**\n * B2B User-Role assignment.\n * @description Links backoffice users to roles.\n * * @interface BackofficeUserRole\n * @property {string} backofficeUserId - ID of the backoffice user.\n * @property {string} roleId - ID of the role assigned.\n * @property {boolean} isPrimary - True if this is the user's main, active role.\n * @property {USER_ROLE_STATUS} status - Current status of the role assignment.\n */\nexport interface BackofficeUserRole {\n id: string;\n backofficeUserId: string;\n roleId: string;\n role: string;\n isPrimary: boolean;\n status: USER_ROLE_STATUS;\n assignedBy?: string;\n assignedReason?: string;\n expiresAt?: Date;\n createdAt: Date;\n updatedAt: Date;\n}\n\n// ============================================\n// AUTH PROVIDER ADAPTER INTERFACE\n// ============================================\n\n/**\n * Authentication provider adapter interface.\n * @description Defines contract for provider-agnostic authentication interactions.\n * * @interface AuthProviderAdapter\n * @property {string} name - The name of the authentication provider (e.g., 'clerk', 'auth0').\n */\nexport interface AuthProviderAdapter {\n name: string;\n\n /**\n * Verifies an external authentication token (e.g., a JWT).\n * @param token The token to verify.\n * @returns A Promise resolving to the verified token result.\n */\n verifyToken(token: string): Promise<VerifiedToken>;\n\n /**\n * Retrieves user profile information from the external provider using a token.\n * @param token The access token.\n * @returns A Promise resolving to the provider's user information.\n */\n getUserInfo(token: string): Promise<ProviderUserInfo>;\n\n /**\n * Refreshes an expired access token using a refresh token (optional method).\n * @param refreshToken The token used for refreshing.\n * @returns A Promise resolving to a new set of authentication tokens.\n */\n refreshToken?(refreshToken: string): Promise<AuthTokens>;\n\n /**\n * Invalidates a token on the provider's side (e.g., logout, optional method).\n * @param token The token to revoke.\n * @returns A Promise that resolves when the token is successfully revoked.\n */\n revokeToken?(token: string): Promise<void>;\n}\n\n/**\n * Verified token result.\n * @description Data returned after successful token verification.\n * * @interface VerifiedToken\n * @property {string} userId - The user's ID from the external provider.\n * @property {string} provider - The name of the provider.\n * @property {string} providerAccountId - The provider's unique account ID.\n */\nexport interface VerifiedToken {\n userId: string;\n provider: string;\n providerAccountId: string;\n email?: string;\n expiresAt?: Date;\n metadata?: Record<string, unknown>;\n}\n\n/**\n * Provider user information.\n * @description User profile data fetched from an external provider.\n * * @interface ProviderUserInfo\n * @property {string} providerAccountId - Unique ID from the external provider.\n * @property {string} [email] - The user's email address from the provider.\n */\nexport interface ProviderUserInfo {\n providerAccountId: string;\n email?: string;\n displayName?: string;\n firstName?: string;\n lastName?: string;\n avatarUrl?: string;\n phoneNumber?: string;\n metadata?: Record<string, unknown>;\n}\n\n// ============================================\n// REPOSITORY INTERFACES\n// ============================================\n\n/**\n * User repository interface.\n * @description Defines data access methods for B2C user management.\n * * @interface UserRepositoryInterface\n */\nexport interface UserRepositoryInterface {\n /** Find a user by their internal ID. */\n findById(id: string): Promise<UserInfo | null>;\n /** Find a user by their primary email address. */\n findByEmail(email: string): Promise<UserInfo | null>;\n /** Find a user linked to a specific external provider account. */\n findByProviderAccount(provider: string, providerAccountId: string): Promise<UserInfo | null>;\n /** Create a new user record. */\n create(data: CreateUserData): Promise<UserInfo>;\n /** Update an existing user record. */\n update(id: string, data: UpdateUserData): Promise<UserInfo>;\n /** Delete a user record. */\n delete(id: string): Promise<void>;\n}\n\n/**\n * Session repository interface.\n * @description Defines data access methods for B2C session management.\n * * @interface SessionRepositoryInterface\n */\nexport interface SessionRepositoryInterface {\n /** Create a new session record. */\n create(data: CreateSessionData): Promise<Session>;\n /** Find a session by its ID. */\n findById(id: string): Promise<Session | null>;\n /** Find all active sessions for a given user ID. */\n findByUserId(userId: string): Promise<Session[]>;\n /** Validate if a session ID is current and not expired. */\n validate(sessionId: string): Promise<Session | null>;\n /** Invalidate (log out) a specific session. */\n invalidate(sessionId: string): Promise<void>;\n /** Invalidate (log out) all sessions for a user. */\n invalidateAllForUser(userId: string): Promise<void>;\n /** Update the last activity timestamp for a session. */\n updateActivity(sessionId: string): Promise<void>;\n}\n\n/**\n * Connected account repository interface.\n * @description Defines data access methods for provider account linking.\n * * @interface ConnectedAccountRepositoryInterface\n */\nexport interface ConnectedAccountRepositoryInterface {\n /** Create a new connected account link. */\n create(data: CreateConnectedAccountData): Promise<ConnectedAccount>;\n /** Find a connected account by its internal ID. */\n findById(id: string): Promise<ConnectedAccount | null>;\n /** Find all connected accounts linked to a user. */\n findByUserId(userId: string): Promise<ConnectedAccount[]>;\n /** Find a connected account by provider and account ID. */\n findByProvider(provider: string, providerAccountId: string): Promise<ConnectedAccount | null>;\n /** Update an existing connected account record. */\n update(id: string, data: UpdateConnectedAccountData): Promise<ConnectedAccount>;\n /** Delete a connected account link. */\n delete(id: string): Promise<void>;\n}\n\n// ============================================\n// DATA TRANSFER OBJECTS (DTOs)\n// ============================================\n\n/**\n * DTO for creating B2C users.\n * @interface CreateUserData\n */\nexport interface CreateUserData {\n email: string;\n clerkUserId?: string;\n authProvider?: string;\n firstName?: string;\n lastName?: string;\n displayName: string;\n avatarUrl?: string;\n phoneNumber?: string;\n isVerified?: boolean;\n}\n\n/**\n * DTO for creating B2B users.\n * @interface CreateBackofficeUserData\n */\nexport interface CreateBackofficeUserData {\n email: string;\n passwordHash: string;\n clerkUserId?: string;\n authProvider?: string;\n firstName?: string;\n lastName?: string;\n displayName: string;\n avatarUrl?: string;\n phoneNumber?: string;\n isVerified?: boolean;\n}\n\n/**\n * DTO for updating B2C users.\n * @interface UpdateUserData\n */\nexport interface UpdateUserData {\n email?: string;\n clerkUserId?: string;\n authProvider?: string;\n firstName?: string;\n lastName?: string;\n displayName?: string;\n avatarUrl?: string;\n phoneNumber?: string;\n isActive?: boolean;\n isVerified?: boolean;\n lastLoginAt?: Date;\n}\n\n/**\n * DTO for updating B2B users.\n * @interface UpdateBackofficeUserData\n */\nexport interface UpdateBackofficeUserData {\n email?: string;\n passwordHash?: string;\n clerkUserId?: string;\n authProvider?: string;\n firstName?: string;\n lastName?: string;\n displayName?: string;\n avatarUrl?: string;\n phoneNumber?: string;\n isActive?: boolean;\n isVerified?: boolean;\n isSuspended?: boolean;\n suspensionReason?: string;\n suspendedAt?: Date;\n lastLoginAt?: Date;\n}\n\n/**\n * DTO for creating sessions.\n * @interface CreateSessionData\n */\nexport interface CreateSessionData {\n userId: string;\n provider: string;\n providerSessionId?: string;\n expiresAt: Date;\n ipAddress?: string;\n userAgent?: string;\n metadata?: Record<string, unknown>;\n}\n\n/**\n * DTO for creating connected accounts.\n * @interface CreateConnectedAccountData\n */\nexport interface CreateConnectedAccountData {\n userId: string;\n providerType: string;\n provider: string;\n providerAccountId: string;\n providerEmail?: string;\n providerUsername?: string;\n providerDisplayName?: string;\n providerAvatarUrl?: string;\n providerProfileUrl?: string;\n providerMetadata?: Record<string, unknown>;\n walletAddress?: string;\n chainId?: string;\n accessTokenEncrypted?: string;\n refreshTokenEncrypted?: string;\n tokenExpiresAt?: Date;\n tokenScope?: string;\n isPrimary?: boolean;\n isVerified?: boolean;\n isActive?: boolean;\n linkedIpAddress?: string;\n linkedUserAgent?: string;\n}\n\n/**\n * DTO for updating connected accounts.\n * @interface UpdateConnectedAccountData\n */\nexport interface UpdateConnectedAccountData {\n providerEmail?: string;\n providerUsername?: string;\n providerDisplayName?: string;\n providerAvatarUrl?: string;\n providerProfileUrl?: string;\n providerMetadata?: Record<string, unknown>;\n accessTokenEncrypted?: string;\n refreshTokenEncrypted?: string;\n tokenExpiresAt?: Date;\n tokenScope?: string;\n isPrimary?: boolean;\n isVerified?: boolean;\n isActive?: boolean;\n lastUsedAt?: Date;\n lastUsedIpAddress?: string;\n}\n\n/**\n * Enumeration of specific authentication error codes.\n * Using const assertions allows for type-safe lookups.\n */\nexport const AUTH_ERROR_CODES = {\n INVALID_CREDENTIALS: 'AUTH_INVALID_CREDENTIALS',\n TOKEN_EXPIRED: 'AUTH_TOKEN_EXPIRED',\n TOKEN_INVALID: 'AUTH_TOKEN_INVALID',\n TOKEN_REVOKED: 'AUTH_TOKEN_REVOKED',\n SESSION_EXPIRED: 'AUTH_SESSION_EXPIRED',\n MFA_REQUIRED: 'AUTH_MFA_REQUIRED',\n MFA_INVALID: 'AUTH_MFA_INVALID',\n INSUFFICIENT_PERMISSIONS: 'AUTH_INSUFFICIENT_PERMISSIONS',\n ROLE_REQUIRED: 'AUTH_ROLE_REQUIRED',\n WALLET_SIGNATURE_INVALID: 'AUTH_WALLET_SIGNATURE_INVALID',\n NONCE_EXPIRED: 'AUTH_NONCE_EXPIRED',\n NONCE_ALREADY_USED: 'AUTH_NONCE_ALREADY_USED',\n ACCOUNT_LOCKED: 'AUTH_ACCOUNT_LOCKED',\n ACCOUNT_SUSPENDED: 'AUTH_ACCOUNT_SUSPENDED',\n} as const;\n\n/**\n * Type for possible values of AUTH_ERROR_CODES.\n * This allows you to use any of the values from the AUTH_ERROR_CODES object.\n */\nexport type AuthErrorCodeValue = (typeof AUTH_ERROR_CODES)[keyof typeof AUTH_ERROR_CODES];\n\n/**\n * Options for constructing an AuthError.\n * This interface defines the optional properties you can pass\n * when creating a new AuthError instance.\n */\nexport interface AuthErrorOptions {\n /** The original error that caused this error */\n cause?: Error;\n /** Optional context providing extra error details */\n context?: BaseErrorContext;\n /** Additional metadata for the error (for debugging, logging) */\n metadata?: Record<string, unknown>;\n /** A specific correlation ID to use for this error instance */\n correlationId?: string;\n /** Override the default HTTP status code from the definition */\n statusCode?: number;\n\n // === Internationalization & Message Details ===\n\n /** The locale for the error message (e.g., 'en-US'). Defaults to a system-wide locale. */\n locale?: string;\n /** Parameters for string interpolation in the final error message. */\n params?: Record<string, string | number>;\n /** Additional structured details about the error, not for end-user display. */\n details?: Record<string, unknown>;\n}\n\n/**\n * Detailed definitions for each authentication error.\n * This object provides default metadata for each error code, including\n * the HTTP status code, a default message, and other useful properties.\n */\n\n/**\n * Type for a single error definition object.\n */\nexport type AuthErrorDefinition = (typeof AUTH_ERROR_DEFINITIONS)[AuthErrorCodeValue];\n\n/**\n * @fileoverview Authentication error codes for @plyaz/auth\n * @module @plyaz/auth/constants/auth-error-codes\n * \n * @description\n * Standardized error codes for authentication system failures.\n * These codes provide consistent error identification across the entire\n * auth system, enabling proper error handling, logging, and user feedback.\n * Used by error classes, services, and frontend components.\n * \n * @example\n * ```typescript\n * import { AUTH_ERROR_CODES } from '@plyaz/auth';\n * \n * throw new InvalidCredentialsError(AUTH_ERROR_CODES.INVALID_CREDENTIALS);\n * \n * if (error.code === AUTH_ERROR_CODES.TOKEN_EXPIRED) {\n * // Handle token expiration\n * }\n * ```\n */\n\n/**\n * Authentication error codes\n * Standardized error identifiers for consistent error handling\n */\n\n/**\n * Type for authentication error codes\n */\nexport type AuthErrorCode = typeof AUTH_ERROR_CODES[keyof typeof AUTH_ERROR_CODES];\n\n/**\n * Error code to HTTP status mapping\n * Maps error codes to appropriate HTTP status codes\n */\nexport const ERROR_CODE_TO_HTTP_STATUS: Record<AuthErrorCode, number> = {\n [AUTH_ERROR_CODES.INVALID_CREDENTIALS]: 401,\n [AUTH_ERROR_CODES.TOKEN_EXPIRED]: 401,\n [AUTH_ERROR_CODES.TOKEN_INVALID]: 401,\n [AUTH_ERROR_CODES.TOKEN_REVOKED]: 401,\n [AUTH_ERROR_CODES.SESSION_EXPIRED]: 401,\n [AUTH_ERROR_CODES.MFA_REQUIRED]: 401,\n [AUTH_ERROR_CODES.MFA_INVALID]: 401,\n [AUTH_ERROR_CODES.INSUFFICIENT_PERMISSIONS]: 403,\n [AUTH_ERROR_CODES.ROLE_REQUIRED]: 403,\n [AUTH_ERROR_CODES.WALLET_SIGNATURE_INVALID]: 401,\n [AUTH_ERROR_CODES.NONCE_EXPIRED]: 401,\n [AUTH_ERROR_CODES.NONCE_ALREADY_USED]: 401,\n [AUTH_ERROR_CODES.ACCOUNT_LOCKED]: 423,\n [AUTH_ERROR_CODES.ACCOUNT_SUSPENDED]: 423,\n\n};\n\n/**\n * Error code descriptions for logging and debugging\n */\nexport const ERROR_CODE_DESCRIPTIONS: Record<AuthErrorCode, string> = {\n [AUTH_ERROR_CODES.INVALID_CREDENTIALS]: 'errors.auth.invalid_credentials',\n [AUTH_ERROR_CODES.TOKEN_EXPIRED]: 'errors.auth.token_expired',\n [AUTH_ERROR_CODES.TOKEN_INVALID]: 'errors.auth.token_invalid',\n [AUTH_ERROR_CODES.TOKEN_REVOKED]: 'errors.auth.token_revoked',\n [AUTH_ERROR_CODES.SESSION_EXPIRED]: 'errors.auth.session_expired',\n [AUTH_ERROR_CODES.MFA_REQUIRED]: 'errors.auth.mfa_required',\n [AUTH_ERROR_CODES.MFA_INVALID]: 'errors.auth.mfa_invalid',\n [AUTH_ERROR_CODES.INSUFFICIENT_PERMISSIONS]: 'errors.auth.insufficient_permissions',\n [AUTH_ERROR_CODES.ROLE_REQUIRED]: 'errors.auth.role_required',\n [AUTH_ERROR_CODES.WALLET_SIGNATURE_INVALID]: 'errors.auth.wallet_signature_invalid',\n [AUTH_ERROR_CODES.NONCE_EXPIRED]: 'errors.auth.nonce_expired',\n [AUTH_ERROR_CODES.NONCE_ALREADY_USED]: 'errors.auth.nonce_already_used',\n [AUTH_ERROR_CODES.ACCOUNT_LOCKED]: 'errors.auth.account_locked',\n [AUTH_ERROR_CODES.ACCOUNT_SUSPENDED]: 'errors.auth.account_suspended',\n};","/**\n * @fileoverview Authentication event constants for @plyaz/auth\n * @module @plyaz/auth/constants/auth-events\n * \n * @description\n * Defines standardized event names for authentication system events.\n * These events are published via @plyaz/events for audit logging and \n * cross-component communication. Used by repositories, services, and \n * frontend stores for reactive state management.\n * \n * @example\n * ```typescript\n * import { AUTH_EVENTS } from '@plyaz/auth';\n * \n * // Publish event\n * eventManager.publish(AUTH_EVENTS.USER_AUTHENTICATED, { userId, provider });\n * \n * // Subscribe to event\n * eventManager.subscribe(AUTH_EVENTS.SESSION_EXPIRED, handleSessionExpiry);\n * ```\n */\n\n/**\n * Authentication event type constants\n * Used for event publishing and subscription throughout the auth system\n */\nexport const AUTH_EVENTS = {\n /** User successfully authenticated */\n USER_AUTHENTICATED: 'auth.user.authenticated',\n \n /** User signed up (new account created) */\n USER_SIGNED_UP: 'auth.user.signed_up',\n \n /** User logged out */\n USER_LOGGED_OUT: 'auth.user.logged_out',\n \n /** Authentication attempt failed */\n AUTHENTICATION_FAILED: 'auth.authentication.failed',\n \n /** Session created */\n SESSION_CREATED: 'auth.session.created',\n \n /** Session expired */\n SESSION_EXPIRED: 'auth.session.expired',\n \n /** Session refreshed */\n SESSION_REFRESHED: 'auth.session.refreshed',\n \n /** Session invalidated (logout) */\n SESSION_INVALIDATED: 'auth.session.invalidated',\n \n /** Account linked to user */\n ACCOUNT_LINKED: 'auth.account.linked',\n \n /** Account unlinked from user */\n ACCOUNT_UNLINKED: 'auth.account.unlinked',\n \n /** Role assigned to user */\n ROLE_ASSIGNED: 'auth.rbac.role_assigned',\n \n /** Role revoked from user */\n ROLE_REVOKED: 'auth.rbac.role_revoked',\n \n /** Suspicious login attempt detected */\n SUSPICIOUS_LOGIN_ATTEMPT: 'auth.security.suspicious_login',\n \n /** Password changed */\n PASSWORD_CHANGED: 'auth.password.changed',\n \n /** Password reset requested */\n PASSWORD_RESET_REQUESTED: 'auth.password.reset_requested'\n} as const;\n\n/**\n * Type for authentication event names\n */\nexport type AuthEventTypes = typeof AUTH_EVENTS[keyof typeof AUTH_EVENTS];\n\n/**\n * Authentication event payload interfaces\n */\nexport interface AuthEventPayload {\n /** Base event data */\n timestamp: Date;\n /** IP address of the request */\n ipAddress?: string;\n /** User agent string */\n userAgent?: string;\n /** Additional metadata */\n metadata?: Record<string, unknown>;\n}\n\nexport interface UserAuthenticatedPayload extends AuthEventPayload {\n userId: string;\n provider: string;\n sessionId: string;\n}\n\nexport interface UserSignedUpPayload extends AuthEventPayload {\n userId: string;\n provider: string;\n email: string;\n}\n\nexport interface UserLoggedOutPayload extends AuthEventPayload {\n userId: string;\n sessionId: string;\n}\n\nexport interface AuthenticationFailedPayload extends AuthEventPayload {\n provider: string;\n reason: string;\n email?: string;\n}\n\nexport interface SessionEventPayload extends AuthEventPayload {\n userId: string;\n sessionId: string;\n}\n\nexport interface AccountLinkedPayload extends AuthEventPayload {\n userId: string;\n provider: string;\n accountId: string;\n}\n\nexport interface RoleEventPayload extends AuthEventPayload {\n userId: string;\n role: string;\n assignedBy?: string;\n}"]}