@plyaz/types 1.27.4 → 1.27.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/auth/index.cjs +19 -0
- package/dist/auth/index.cjs.map +1 -1
- package/dist/auth/index.d.ts +1 -1
- package/dist/auth/index.js +19 -1
- package/dist/auth/index.js.map +1 -1
- package/dist/index.cjs +19 -0
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +19 -1
- package/dist/index.js.map +1 -1
- package/dist/payments/provider/payment-provider/types.d.ts +4 -0
- package/package.json +1 -1
package/dist/auth/index.js.map
CHANGED
|
@@ -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"],"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","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"]}
|
|
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"]}
|