@plyaz/types 1.27.6 → 1.27.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/errors/enums.ts","../src/http/constants.ts","../src/errors/codes.ts","../src/auth/enums.ts","../src/auth/schemas.ts","../src/auth/types.ts","../src/core/modules.ts","../src/core/tables/enum.ts","../src/core/featureFlag/enums.ts","../src/core/featureFlag/constants.ts","../src/core/events/enums.ts","../src/core/services/keys.ts","../src/events/enums.ts","../src/locale/types.ts","../src/web3/enums.ts","../src/features/cache/types.ts","../src/user/enums.ts","../src/user/schemas.ts","../src/campaign/enums.ts","../src/campaign/schemas.ts","../src/logger/enums.ts","../src/payments/events/enums.ts","../src/payments/events/unified-event/enums.ts","../src/payments/provider/provider-capability/enums.ts","../src/payments/request/enums.ts","../src/payments/gateways/provider/plans/enums.ts","../src/payments/gateways/provider/fee/enum.ts","../src/payments/gateways/routings/enums.ts","../src/payments/base-error/enum.ts","../src/payments/idempotency/enum.ts","../src/payments/kyc/enum.ts","../src/notifications/enums.ts","../src/notifications/schemas.ts","../src/notifications/webhooks.schemas.ts","../src/utils/enums.ts","../src/observability/types.ts","../src/api/events/enum.ts","../src/api/queue/enums.ts","../src/api/headers/enum.ts","../src/api/network/enums.ts","../src/api/debugger/enums.ts","../src/api/client/enum.ts","../src/api/regional/enum.ts","../src/api/pubsub/enum.ts","../src/db/dbEnums.ts","../src/db/dbConstant.ts","../src/storage/enums.ts","../src/storage/event-handler-mapping.ts","../src/storage/schemas.ts"],"names":["AUTH_PROVIDER_TYPE","AUTH_PROVIDER","USER_ROLE_STATUS","TOKEN_TYPE","z","TABLES","SORT_DIRECTION","FEATURE_FLAG_TABLE","FEATURE_FLAG_FIELD","FEATURE_FLAG_RULE_FIELD","FEATURE_FLAG_PROVIDERS","NODE_ENVIRONMENTS","DATABASE_FIELDS","SYSTEM_USERS","EVALUATION_REASONS","FEATURE_FLAG_TYPES","BASIC_PROFILE_ERRORS","ATHLETE_PROFILE_ERRORS","CREATE_CAMPAIGN_ERRORS","PAYMENT_EVENT_TYPE","PAYMENT_EVENT_CATEGORY","PAYMENT_EVENT_ERROR_CATEGORY","EVENT_PROCESSING_STATUS","PAYMENT_PROVIDER_TYPE","PAYMENT_METHOD","PAYMENT_STATUS","TRANSACTION_TYPE","USER_TYPE","PRODUCT_TYPE","REQUIREDACTIONTYPE","PROVIDER_PRODUCT_STATUS","FEE_TYPE","FEE_CONTEXT","COST_OPTIMIZATION_STRATEGY","FAIL_OVER_STRATEGY","REGULATORY_FRAMEWORK","LOAD_BALANCING_STRATEGY","PERFORMANCE_METRIC_TYPE","ROUTING_STRATEGY","ROUTER_RULE_NAME","REFUND_ERROR_TYPES","REFUND_NOT_ALLOWED_REASON","SECURITY_THREAT_TYPE","WEBHOOK_VERIFICATION_REASON","IDEMPOTENCY_STATUS","KYC_STATUS","KYC_TIER","KYC_PROVIDER","ONBOARD_STATUS","ONBOARD_LINK_TYPE","KYC_ENTITY_TYPE","SIGNATURE_METHOD","WEBHOOK_EVENT_TYPE","WEBHOOK_ENCRYPTION_METHOD","CORRELATION_TYPE","NETWORK_QUALITY","ADAPTERS","DATABASE_EVENT_TYPE","REPLICA_STRATEGY","DB_POOL_EVENTS","ALERT_SEVERITY","ALERT_SOURCE","AUDIT_OPERATION","EXTENSION_SOURCE","ADAPTER_TYPES","FILE_CATEGORY","ENTITY_TYPE","STORAGE_ADAPTER_TYPE","FILE_ACCESS_LEVEL","UPLOAD_STATUS","STORAGE_EVENT_TYPE","RETRY_STRATEGY","PATH_GENERATION_STRATEGY","FILE_VALIDATION_ERROR","TEMPLATE_OUTPUT_FORMAT","DOCUMENT_TYPE","MEDIA_ENTITY","STORAGE_VISIBILITY","STORAGE_ENVIRONMENT","BUSINESS_MODEL","ORGANIZATION_TIER","BUCKET_PURPOSE","PATH_STRATEGY","MEDIA_VARIANT_TYPE","STORAGE_QUEUE_PRIORITY","STORAGE_DEVICE_TYPE","STORAGE_VARIANT_NAME","ADAPTER_HEALTH_STATUS","STORAGE_RENDERER_TYPE","OUTPUT_FORMAT","STORAGE_JURISDICTION","STORAGE_REGULATORY_FRAMEWORK","STORAGE_PLUGIN_TYPE","STORAGE_WEBHOOK_EVENT_TYPE","STORAGE_OPERATION","STORAGE_SIGNATURE_METHOD","TEMPLATE_VARIABLE_TYPE","TEMPLATE_DOCUMENT_TYPE","STORAGE_PROCESSING_STATUS","TEMPLATE_VARIABLE_TYPE_SCHEMA","TEMPLATE_DOCUMENT_TYPE_SCHEMA"],"mappings":"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A,EAE5B,GAAA,EAAK,KAAA;AAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA;AAAA;AAAA,EAGL,GAAA,EAAK,KAAA;AAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA;AAAA;AAAA,EAGL,GAAA,EAAK,KAAA;AAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA;AAAA;AAAA,EAGL,GAAA,EAAK,KAAA;AAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA;AAAA;AAAA,EAGL,GAAA,EAAK,KAAA;AAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA;AAAA;AAAA,EAGL,GAAA,EAAK,KAAA;AAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA;AAAA;AAAA,EAGL,GAAA,EAAK,KAAA;AAAA;AA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","file":"index.cjs","sourcesContent":["/**\n * Enum representing standardized error types used across the application.\n * @description These error types help classify different categories of errors such as validation issues and system-level failures.\n *\n * @example\n * ```typescript\n * import { ERROR_TYPE } from '@plyaz/types';\n *\n * const errorType = ERROR_TYPE.ValidationError; // 'validation.error'\n *\n * // Error handling example\n * if (error.type === ERROR_TYPE.RateLimitExceeded) {\n * // Handle rate limiting\n * }\n * ```\n */\nexport const ERROR_TYPE = {\n /** A general validation error (e.g., form or input errors). */\n ValidationError: 'validation.error',\n\n /** Error related to schema validation, such as JSON schema or API payload checks. */\n SchemaValidationError: 'validation.schema.error',\n\n /** Unhandled or unexpected system error. */\n InternalError: 'system.internal.error',\n\n /** System dependency is currently unavailable (e.g., database or external API). */\n ServiceUnavailable: 'system.service.unavailable',\n\n /** The request took too long and timed out. */\n TimeoutError: 'system.timeout',\n\n /** Too many requests made in a short period of time. */\n RateLimitExceeded: 'system.rate.limit.exceeded',\n} as const;\n\n/**\n * Enum representing the severity level of an error.\n * @description This allows categorization of errors by their potential impact on the system or user.\n *\n * @example\n * ```typescript\n * import { ERROR_SEVERITY } from '@plyaz/types';\n *\n * const severity = ERROR_SEVERITY.Critical; // 'critical'\n * const shouldAlert = severity === ERROR_SEVERITY.High || severity === ERROR_SEVERITY.Critical;\n * ```\n */\nexport const ERROR_SEVERITY = {\n /** Low severity - does not impact functionality significantly. */\n Low: 'low',\n\n /** Medium severity - minor disruption or warning. */\n Medium: 'medium',\n\n /** High severity - major issue requiring attention. */\n High: 'high',\n\n /** Critical severity - blocking or crashing issue. */\n Critical: 'critical',\n} as const;\n\n/**\n * Enum representing the category or origin of an error.\n * @description Useful for filtering or logging errors based on their source or nature.\n *\n * @example\n * ```typescript\n * import { ERROR_CATEGORY } from '@plyaz/types';\n *\n * const category = ERROR_CATEGORY.Blockchain; // 'blockchain'\n * const isClientError = category === ERROR_CATEGORY.Client;\n * ```\n */\nexport const ERROR_CATEGORY = {\n /** Client-side error (e.g., invalid request). */\n Client: 'client',\n\n /** Server-side error (e.g., logic failure or exception). */\n Server: 'server',\n\n /** Network-related error (e.g., unreachable endpoint). */\n Network: 'network',\n\n /** Blockchain-related error (e.g., transaction failure, gas limit). */\n Blockchain: 'blockchain',\n\n /** Validation-specific error (e.g., failed constraints or field errors). */\n Validation: 'validation',\n\n /** Authentication-related error (e.g., invalid credentials, expired token). */\n Authentication: 'authentication',\n\n /** Authorization-related error (e.g., insufficient permissions). */\n Authorization: 'authorization',\n\n /** Resource not found error. */\n NotFound: 'not.found',\n\n /** Rate limiting error (too many requests). */\n RateLimit: 'rate.limit',\n\n /** External service error (e.g., third-party API failure). */\n ExternalService: 'external.service',\n\n /** Timeout error (request exceeded time limit). */\n Timeout: 'timeout',\n\n /** Conflict error (e.g., resource state conflict). */\n Conflict: 'conflict',\n\n /** Cache-related error. */\n Cache: 'cache',\n\n /** Headers-related error (e.g., missing or invalid headers). */\n Headers: 'headers',\n\n /** Retry-related error (e.g., max retries exceeded). */\n Retry: 'retry',\n\n /** Strategy-related error (e.g., invalid retry or caching strategy). */\n Strategy: 'strategy',\n\n /** Regional-related error (e.g., region detection failure). */\n Regional: 'regional',\n\n /** Provider-related error (e.g., notification service provider failure). */\n Provider: 'provider',\n\n /** Queue-related error (e.g., queue full or processing failed). */\n Queue: 'queue',\n\n /** Webhook-related error (e.g., invalid signature or processing failure). */\n Webhook: 'webhook',\n\n /** Template-related error (e.g., template not found or rendering failed). */\n Template: 'template',\n\n /** Configuration-related error (e.g., invalid or missing configuration). */\n Configuration: 'configuration',\n\n /** Payment processing-related error (e.g., capture or settlement failure). */\n Processing: 'processing',\n\n /** Fraud detection or prevention failure. */\n Fraud: 'fraud',\n\n /** Compliance-related error (e.g., AML/KYC validation failure). */\n Compliance: 'compliance',\n\n /** Limits or quota-related error (e.g., exceeded transaction limit). */\n Limits: 'limits',\n\n /** System-level error (unexpected internal issue). */\n System: 'system',\n\n /** Refund-related error (e.g., duplicate or failed refund). */\n Refund: 'refund',\n\n /** Security-related error (e.g., encryption or signature failure). */\n Security: 'security',\n\n /** File operation error (e.g., upload, download, delete failure). */\n FileOperation: 'file.operation',\n\n /** Plugin-related error (e.g., plugin initialization or execution failure). */\n Plugin: 'plugin',\n\n /** Quota or storage limit error (e.g., exceeded storage quota). */\n Quota: 'quota',\n\n /** Database-related error (e.g., query failure, connection error). */\n Database: 'database',\n\n /** Unknown or unclassified error. */\n Unknown: 'unknown',\n} as const;\n\n/**\n * Internal package status codes (non-HTTP)\n * Used for internal configuration and validation errors that aren't HTTP-related\n * These are in the 1xxx range to distinguish from HTTP status codes (which are typically 100-599)\n *\n * @example\n * ```typescript\n * import { INTERNAL_STATUS_CODES } from '@plyaz/types';\n *\n * const statusCode = INTERNAL_STATUS_CODES.INVALID_CONFIGURATION; // 1001\n * if (error.statusCode >= 1000 && error.statusCode < 2000) {\n * // Handle internal package error\n * }\n * ```\n */\nexport const INTERNAL_STATUS_CODES = {\n // Configuration errors (1001-1009)\n INVALID_CONFIGURATION: 1001,\n MISSING_CONFIGURATION: 1002,\n CONFIGURATION_CONFLICT: 1003,\n CONFIGURATION_TRACKING_FAILED: 1004,\n DEBUG_TRACKING_FAILED: 1005,\n\n // Resource errors (1010-1019)\n RESOURCE_NOT_FOUND: 1010,\n RESOURCE_ALREADY_EXISTS: 1011,\n RESOURCE_UNAVAILABLE: 1012,\n\n // Validation errors (1020-1029)\n INVALID_PARAMETER: 1020,\n MISSING_PARAMETER: 1021,\n PARAMETER_OUT_OF_RANGE: 1022,\n\n // Strategy/preset errors (1030-1039)\n STRATEGY_NOT_FOUND: 1030,\n PRESET_NOT_FOUND: 1031,\n INVALID_STRATEGY: 1032,\n\n // Request/Response errors (1035-1039)\n REQUEST_FAILED: 1035,\n\n // Internal system errors (1040-1049)\n INITIALIZATION_FAILED: 1040,\n OPERATION_FAILED: 1041,\n STATE_CORRUPTION: 1042,\n SERIALIZATION_FAILED: 1043,\n DESERIALIZATION_FAILED: 1044,\n CONFIGURATION_INVALID: 1045,\n HEADER_PROCESSING_ERROR: 1046,\n REGION_DETECTION_ERROR: 1047,\n NETWORK_OVERRIDE_ERROR: 1048,\n} as const;\n\n/**\n * Mapping of error category values to camelCase emitter keys\n * Used by event systems to route errors to appropriate handlers\n *\n * @example\n * ```typescript\n * import { ERROR_CATEGORY, ERROR_CATEGORY_TO_EMITTER_KEY } from '@plyaz/types';\n *\n * const category = ERROR_CATEGORY.RateLimit; // 'rate.limit'\n * const emitterKey = ERROR_CATEGORY_TO_EMITTER_KEY[category]; // 'rateLimit'\n *\n * // Use in event emitter\n * eventEmitter.emit(`error:${emitterKey}`, error);\n * ```\n */\nexport const ERROR_CATEGORY_TO_EMITTER_KEY = {\n [ERROR_CATEGORY.Network]: 'network',\n [ERROR_CATEGORY.Validation]: 'validation',\n [ERROR_CATEGORY.Authentication]: 'authentication',\n [ERROR_CATEGORY.Authorization]: 'authorization',\n [ERROR_CATEGORY.RateLimit]: 'rateLimit',\n [ERROR_CATEGORY.Server]: 'server',\n [ERROR_CATEGORY.Timeout]: 'timeout',\n [ERROR_CATEGORY.NotFound]: 'notFound',\n [ERROR_CATEGORY.Conflict]: 'conflict',\n [ERROR_CATEGORY.Client]: 'client',\n [ERROR_CATEGORY.ExternalService]: 'externalService',\n [ERROR_CATEGORY.Cache]: 'cache',\n [ERROR_CATEGORY.Headers]: 'headers',\n [ERROR_CATEGORY.Retry]: 'retry',\n [ERROR_CATEGORY.Blockchain]: 'blockchain',\n [ERROR_CATEGORY.Strategy]: 'strategy',\n [ERROR_CATEGORY.Regional]: 'regional',\n [ERROR_CATEGORY.Provider]: 'provider',\n [ERROR_CATEGORY.Queue]: 'queue',\n [ERROR_CATEGORY.Webhook]: 'webhook',\n [ERROR_CATEGORY.Template]: 'template',\n [ERROR_CATEGORY.Configuration]: 'configuration',\n [ERROR_CATEGORY.Processing]: 'processing',\n [ERROR_CATEGORY.Fraud]: 'fraud',\n [ERROR_CATEGORY.Compliance]: 'compliance',\n [ERROR_CATEGORY.Limits]: 'limits',\n [ERROR_CATEGORY.System]: 'system',\n [ERROR_CATEGORY.Refund]: 'refund',\n [ERROR_CATEGORY.Security]: 'security',\n [ERROR_CATEGORY.FileOperation]: 'fileOperation',\n [ERROR_CATEGORY.Plugin]: 'plugin',\n [ERROR_CATEGORY.Quota]: 'quota',\n [ERROR_CATEGORY.Database]: 'database',\n [ERROR_CATEGORY.Unknown]: 'unknown',\n} as const satisfies Record<(typeof ERROR_CATEGORY)[keyof typeof ERROR_CATEGORY], string>;\n\n/**\n * Common operation names used in error context\n * These are optional helpers - you can use any freeform string in context.operation\n *\n * @example\n * ```typescript\n * import { COMMON_OPERATIONS } from '@plyaz/types';\n *\n * const context = { operation: COMMON_OPERATIONS.STORAGE };\n * // Or just use a string:\n * const context2 = { operation: 'custom-operation' };\n * ```\n */\nexport const COMMON_OPERATIONS = {\n // Data operations\n STORAGE: 'storage',\n RETRIEVAL: 'retrieval',\n INVALIDATION: 'invalidation',\n DELETION: 'deletion',\n\n // Processing operations\n VALIDATION: 'validation',\n ENRICHMENT: 'enrichment',\n SERIALIZATION: 'serialization',\n DESERIALIZATION: 'deserialization',\n\n // API operations\n REQUEST: 'request',\n RESPONSE: 'response',\n RETRY: 'retry',\n REVALIDATION: 'revalidation',\n POLLING: 'polling',\n\n // Configuration operations\n INITIALIZATION: 'initialization',\n CONFIGURATION: 'configuration',\n PRESET_LOOKUP: 'preset-lookup',\n REGIONAL_DETECTION: 'regional-detection',\n\n // Strategy operations\n STRATEGY_EXECUTION: 'strategy-execution',\n FALLBACK: 'fallback',\n\n // Event operations\n SUBSCRIPTION: 'subscription',\n PUBLICATION: 'publication',\n EVENT_HANDLING: 'event-handling',\n\n // Debugging operations\n DEBUG: 'debug',\n DEBUG_TRACKING: 'debug-tracking',\n TRACKING: 'tracking',\n MONITORING: 'monitoring',\n\n // Network operations\n NETWORK_CHECK: 'network-check',\n ENDPOINT_BUILD: 'endpoint-build',\n CONTEXT_SETUP: 'context-setup',\n\n // Notification operations\n SEND: 'send',\n RENDER: 'render',\n QUEUE: 'queue',\n PROCESS: 'process',\n} as const;\n\n/**\n * Common field names used in error context\n * These are optional helpers - you can use any freeform string in context.field\n *\n * @example\n * ```typescript\n * import { COMMON_FIELDS } from '@plyaz/types';\n *\n * const context = { field: COMMON_FIELDS.EMAIL };\n * // Or just use a string:\n * const context2 = { field: 'customField' };\n * ```\n */\nexport const COMMON_FIELDS = {\n // Storage fields\n STORAGE: 'storage',\n CACHE: 'cache',\n\n // Configuration fields\n CONFIG: 'config',\n PRESET_NAME: 'presetName',\n PRESET_ID: 'presetId',\n\n // HTTP fields\n HEADERS: 'headers',\n URL: 'url',\n METHOD: 'method',\n\n // Strategy fields\n STRATEGY: 'strategy',\n\n // Retry fields\n RETRY_COUNT: 'retryCount',\n MAX_RETRIES: 'maxRetries',\n\n // Polling fields\n POLLING_INTERVAL: 'pollingInterval',\n\n // Event fields\n TOPIC: 'topic',\n CHANNEL: 'channel',\n\n // API fields\n ENDPOINT: 'endpoint',\n CLIENT: 'client',\n\n // Network fields\n NETWORK_TYPE: 'networkType',\n TIME_INTERVAL: 'timeInterval',\n\n // Notification fields\n EMAIL: 'email',\n PHONE: 'phoneNumber',\n RECIPIENT: 'recipient',\n TEMPLATE: 'template',\n PROVIDER: 'provider',\n} as const;\n\n/**\n * Common storage type names\n * These are optional helpers - you can use any freeform string in context.storageType\n *\n * @example\n * ```typescript\n * import { COMMON_STORAGE_TYPES } from '@plyaz/types';\n *\n * const context = { storageType: COMMON_STORAGE_TYPES.REDIS };\n * // Or just use a string:\n * const context2 = { storageType: 'custom-storage' };\n * ```\n */\nexport const COMMON_STORAGE_TYPES = {\n PRIMARY: 'primary',\n FALLBACK: 'fallback',\n MEMORY: 'memory',\n SESSION: 'session',\n LOCAL: 'local',\n REDIS: 'redis',\n DATABASE: 'database',\n} as const;\n\n/**\n * Namespaces for categorizing error exceptions classes in different packages and category based exceptions\n */\nexport const ERROR_EXCEPTIONS_NAMESPACES = {\n BASE: 'base',\n API: 'api',\n AUTH: 'auth',\n NOTIFICATIONS: 'notifications',\n STORAGE: 'storage',\n DB: 'db',\n VALIDATION: 'validation',\n GENERIC: 'generic',\n PAYMENTS: 'payments',\n ERRORS: 'errors',\n LOGGER: 'logger',\n TYPES: 'types',\n CONFIG: 'config',\n UTILS: 'utils',\n EVENTS: 'events',\n TRANSLATIONS: 'translations',\n UI: 'ui',\n TESTING: 'testing',\n CORE: 'core',\n STORE: 'store',\n WEB3: 'web3',\n MONITORING: 'monitoring',\n HOOKS: 'hooks',\n COMMON: 'common',\n COMPLIANCE: 'compliance',\n PAYMENT_WEBHOOKS: 'payment-webhook',\n};\n","/**\n * HTTP Status Code Constants\n *\n * Common HTTP status codes used throughout the application.\n * Based on RFC 9110 (HTTP Semantics) and common usage patterns.\n *\n * @module http/constants\n */\n\n/**\n * Standard HTTP status codes\n */\nexport const HTTP_STATUS = {\n // 1xx Informational\n /**\n * 100 Continue - The initial part of a request has been received\n */\n CONTINUE: 100,\n\n /**\n * 101 Switching Protocols - The server is switching protocols\n */\n SWITCHING_PROTOCOLS: 101,\n\n /**\n * 102 Processing - The server has received and is processing the request\n */\n PROCESSING: 102,\n\n /**\n * 103 Early Hints - Used to return some response headers before final HTTP message\n */\n EARLY_HINTS: 103,\n\n // 2xx Success\n /**\n * 200 OK - The request succeeded\n */\n OK: 200,\n\n /**\n * 201 Created - The request succeeded and a new resource was created\n */\n CREATED: 201,\n\n /**\n * 202 Accepted - The request has been received but not yet acted upon\n */\n ACCEPTED: 202,\n\n /**\n * 203 Non-Authoritative Information - The returned metadata is not from the origin server\n */\n NON_AUTHORITATIVE_INFORMATION: 203,\n\n /**\n * 204 No Content - There is no content to send for this request\n */\n NO_CONTENT: 204,\n\n /**\n * 205 Reset Content - Tells the user agent to reset the document\n */\n RESET_CONTENT: 205,\n\n /**\n * 206 Partial Content - The server is delivering only part of the resource\n */\n PARTIAL_CONTENT: 206,\n\n /**\n * 207 Multi-Status - Conveys information about multiple resources\n */\n MULTI_STATUS: 207,\n\n /**\n * 208 Already Reported - The members of a DAV binding have already been enumerated\n */\n ALREADY_REPORTED: 208,\n\n /**\n * 226 IM Used - The server has fulfilled a request for the resource\n */\n IM_USED: 226,\n\n // 3xx Redirection\n /**\n * 300 Multiple Choices - Multiple options for the resource are available\n */\n MULTIPLE_CHOICES: 300,\n\n /**\n * 301 Moved Permanently - The URL of the requested resource has been changed permanently\n */\n MOVED_PERMANENTLY: 301,\n\n /**\n * 302 Found - The resource resides temporarily under a different URI\n */\n FOUND: 302,\n\n /**\n * 303 See Other - Direct the client to get the resource at another URI\n */\n SEE_OTHER: 303,\n\n /**\n * 304 Not Modified - The cached version is still valid\n */\n NOT_MODIFIED: 304,\n\n /**\n * 305 Use Proxy - Defined in a previous version of the HTTP specification\n */\n USE_PROXY: 305,\n\n /**\n * 307 Temporary Redirect - The request should be repeated with another URI\n */\n TEMPORARY_REDIRECT: 307,\n\n /**\n * 308 Permanent Redirect - The resource is permanently located at another URI\n */\n PERMANENT_REDIRECT: 308,\n\n // 4xx Client Errors\n /**\n * 400 Bad Request - The server cannot process the request due to client error\n */\n BAD_REQUEST: 400,\n\n /**\n * 401 Unauthorized - Authentication is required and has failed or not been provided\n */\n UNAUTHORIZED: 401,\n\n /**\n * 402 Payment Required - Reserved for future use\n */\n PAYMENT_REQUIRED: 402,\n\n /**\n * 403 Forbidden - The server understood the request but refuses to authorize it\n */\n FORBIDDEN: 403,\n\n /**\n * 404 Not Found - The server cannot find the requested resource\n */\n NOT_FOUND: 404,\n\n /**\n * 405 Method Not Allowed - The request method is not supported for the requested resource\n */\n METHOD_NOT_ALLOWED: 405,\n\n /**\n * 406 Not Acceptable - The requested resource is not available in a format acceptable to the client\n */\n NOT_ACCEPTABLE: 406,\n\n /**\n * 407 Proxy Authentication Required - The client must authenticate itself with the proxy\n */\n PROXY_AUTHENTICATION_REQUIRED: 407,\n\n /**\n * 408 Request Timeout - The server timed out waiting for the request\n */\n REQUEST_TIMEOUT: 408,\n\n /**\n * 409 Conflict - The request conflicts with the current state of the server\n */\n CONFLICT: 409,\n\n /**\n * 410 Gone - The requested resource is no longer available and will not be available again\n */\n GONE: 410,\n\n /**\n * 411 Length Required - The request did not specify the length of its content\n */\n LENGTH_REQUIRED: 411,\n\n /**\n * 412 Precondition Failed - The server does not meet one of the preconditions\n */\n PRECONDITION_FAILED: 412,\n\n /**\n * 413 Payload Too Large - The request is larger than the server is willing to process\n */\n PAYLOAD_TOO_LARGE: 413,\n\n /**\n * 414 URI Too Long - The URI provided was too long for the server to process\n */\n URI_TOO_LONG: 414,\n\n /**\n * 415 Unsupported Media Type - The request entity has a media type not supported by the server\n */\n UNSUPPORTED_MEDIA_TYPE: 415,\n\n /**\n * 416 Range Not Satisfiable - The client has asked for a portion of the file that the server cannot supply\n */\n RANGE_NOT_SATISFIABLE: 416,\n\n /**\n * 417 Expectation Failed - The server cannot meet the requirements of the Expect request-header field\n */\n EXPECTATION_FAILED: 417,\n\n /**\n * 418 I'm a teapot - The server refuses to brew coffee because it is a teapot\n */\n IM_A_TEAPOT: 418,\n\n /**\n * 421 Misdirected Request - The request was directed at a server that is not able to produce a response\n */\n MISDIRECTED_REQUEST: 421,\n\n /**\n * 422 Unprocessable Entity - The request was well-formed but was unable to be followed due to semantic errors\n */\n UNPROCESSABLE_ENTITY: 422,\n\n /**\n * 423 Locked - The resource that is being accessed is locked\n */\n LOCKED: 423,\n\n /**\n * 424 Failed Dependency - The request failed due to failure of a previous request\n */\n FAILED_DEPENDENCY: 424,\n\n /**\n * 425 Too Early - The server is unwilling to risk processing a request that might be replayed\n */\n TOO_EARLY: 425,\n\n /**\n * 426 Upgrade Required - The client should switch to a different protocol\n */\n UPGRADE_REQUIRED: 426,\n\n /**\n * 428 Precondition Required - The origin server requires the request to be conditional\n */\n PRECONDITION_REQUIRED: 428,\n\n /**\n * 429 Too Many Requests - The user has sent too many requests in a given amount of time\n */\n TOO_MANY_REQUESTS: 429,\n\n /**\n * 431 Request Header Fields Too Large - The server is unwilling to process the request because its header fields are too large\n */\n REQUEST_HEADER_FIELDS_TOO_LARGE: 431,\n\n /**\n * 451 Unavailable For Legal Reasons - The user requested a resource that cannot legally be provided\n */\n UNAVAILABLE_FOR_LEGAL_REASONS: 451,\n\n // 5xx Server Errors\n /**\n * 500 Internal Server Error - The server encountered an unexpected condition\n */\n INTERNAL_SERVER_ERROR: 500,\n\n /**\n * 501 Not Implemented - The server does not support the functionality required to fulfill the request\n */\n NOT_IMPLEMENTED: 501,\n\n /**\n * 502 Bad Gateway - The server received an invalid response from the upstream server\n */\n BAD_GATEWAY: 502,\n\n /**\n * 503 Service Unavailable - The server is not ready to handle the request\n */\n SERVICE_UNAVAILABLE: 503,\n\n /**\n * 504 Gateway Timeout - The server did not get a response in time from the upstream server\n */\n GATEWAY_TIMEOUT: 504,\n\n /**\n * 505 HTTP Version Not Supported - The HTTP version used in the request is not supported by the server\n */\n HTTP_VERSION_NOT_SUPPORTED: 505,\n\n /**\n * 506 Variant Also Negotiates - The server has an internal configuration error\n */\n VARIANT_ALSO_NEGOTIATES: 506,\n\n /**\n * 507 Insufficient Storage - The server is unable to store the representation needed to complete the request\n */\n INSUFFICIENT_STORAGE: 507,\n\n /**\n * 508 Loop Detected - The server detected an infinite loop while processing the request\n */\n LOOP_DETECTED: 508,\n\n /**\n * 510 Not Extended - Further extensions to the request are required for the server to fulfill it\n */\n NOT_EXTENDED: 510,\n\n /**\n * 511 Network Authentication Required - The client needs to authenticate to gain network access\n */\n NETWORK_AUTHENTICATION_REQUIRED: 511,\n} as const;\n\n/**\n * Type for HTTP status codes\n */\nexport type HttpStatusCode = (typeof HTTP_STATUS)[keyof typeof HTTP_STATUS];\n","/**\n * Unified Error Codes and Definitions\n * Centralized source of truth for ALL error handling across @plyaz packages\n *\n * This file is the single source of truth for:\n * - All error codes\n * - All error definitions\n * - Error code to definition mappings\n */\n\nimport { HTTP_STATUS } from '../http/constants';\nimport { ERROR_CATEGORY, ERROR_SEVERITY } from './enums';\nimport type { ErrorDefinitions } from './types';\n\n/**\n * All Error Codes\n * Combined error codes from all @plyaz packages\n */\nexport const ERROR_CODES = {\n // ===== Generic/Common Errors =====\n // These are package-agnostic error codes that can be used across all packages\n NOT_IMPLEMENTED: 'not.implemented',\n PROVIDER_NOT_IMPLEMENTED: 'provider.not.implemented',\n FEATURE_NOT_SUPPORTED: 'feature.not.supported',\n\n // ===== API Package Errors =====\n // Client Configuration\n CLIENT_INITIALIZATION_FAILED: 'CLIENT_INITIALIZATION_FAILED',\n CLIENT_INVALID_CONFIG: 'CLIENT_INVALID_CONFIG',\n CLIENT_MISSING_BASE_URL: 'CLIENT_MISSING_BASE_URL',\n CLIENT_CANCELLED: 'CLIENT_CANCELLED',\n CONFIG_VALIDATION_FAILED: 'CONFIG_VALIDATION_FAILED',\n HEADER_PROCESSING_FAILED: 'HEADER_PROCESSING_FAILED',\n NETWORK_OVERRIDE_FAILED: 'NETWORK_OVERRIDE_FAILED',\n\n // Request\n REQUEST_TIMEOUT: 'REQUEST_TIMEOUT',\n REQUEST_ABORTED: 'REQUEST_ABORTED',\n REQUEST_INVALID_PARAMS: 'REQUEST_INVALID_PARAMS',\n REQUEST_PREPARATION_FAILED: 'REQUEST_PREPARATION_FAILED',\n\n // Response\n RESPONSE_INVALID_FORMAT: 'RESPONSE_INVALID_FORMAT',\n RESPONSE_PARSING_FAILED: 'RESPONSE_PARSING_FAILED',\n\n // Authentication/Authorization\n AUTH_UNAUTHORIZED: 'AUTH_UNAUTHORIZED',\n AUTH_FORBIDDEN: 'AUTH_FORBIDDEN',\n\n // Rate Limiting\n RATE_LIMIT_EXCEEDED: 'RATE_LIMIT_EXCEEDED',\n\n // Resources\n RESOURCE_NOT_FOUND: 'RESOURCE_NOT_FOUND',\n RESOURCE_CONFLICT: 'RESOURCE_CONFLICT',\n\n // Validation\n API_VALIDATION_FAILED: 'API_VALIDATION_FAILED',\n API_INVALID_INPUT: 'API_INVALID_INPUT',\n VALIDATION_ERROR: 'VALIDATION_ERROR',\n REQUIRED_FIELD_MISSING: 'REQUIRED_FIELD_MISSING',\n INVALID_FORMAT: 'INVALID_FORMAT',\n VALIDATION_INVALID_FORMAT: 'VALIDATION_INVALID_FORMAT',\n STRING_TOO_SHORT: 'STRING_TOO_SHORT',\n STRING_TOO_LONG: 'STRING_TOO_LONG',\n\n // Network\n NETWORK_ERROR: 'NETWORK_ERROR',\n CONNECTION_FAILED: 'CONNECTION_FAILED',\n NETWORK_CONNECTION_FAILED: 'NETWORK_CONNECTION_FAILED',\n NETWORK_OFFLINE: 'NETWORK_OFFLINE',\n NETWORK_DNS_FAILED: 'NETWORK_DNS_FAILED',\n NETWORK_TIMEOUT: 'NETWORK_TIMEOUT',\n NETWORK_PRESET_NOT_FOUND: 'NETWORK_PRESET_NOT_FOUND',\n NETWORK_CONFIGURATION_INVALID: 'NETWORK_CONFIGURATION_INVALID',\n\n // Server\n SERVER_ERROR: 'SERVER_ERROR',\n INTERNAL_SERVER_ERROR: 'INTERNAL_SERVER_ERROR',\n SERVICE_UNAVAILABLE: 'SERVICE_UNAVAILABLE',\n\n // Cache\n CACHE_READ_FAILED: 'CACHE_READ_FAILED',\n CACHE_WRITE_FAILED: 'CACHE_WRITE_FAILED',\n CACHE_INVALIDATION_FAILED: 'CACHE_INVALIDATION_FAILED',\n CACHE_STORAGE_FAILED: 'CACHE_STORAGE_FAILED',\n CACHE_RETRIEVAL_FAILED: 'CACHE_RETRIEVAL_FAILED',\n\n // Retry\n RETRY_LIMIT_EXCEEDED: 'RETRY_LIMIT_EXCEEDED',\n RETRY_FAILED: 'RETRY_FAILED',\n RETRY_EXHAUSTED: 'RETRY_EXHAUSTED',\n RETRY_STRATEGY_INVALID: 'RETRY_STRATEGY_INVALID',\n\n // Strategy\n STRATEGY_INVALID: 'STRATEGY_INVALID',\n STRATEGY_CONFLICT: 'STRATEGY_CONFLICT',\n STRATEGY_EXECUTION_FAILED: 'STRATEGY_EXECUTION_FAILED',\n\n // Headers\n HEADERS_ENRICHMENT_FAILED: 'HEADERS_ENRICHMENT_FAILED',\n HEADERS_VALIDATION_FAILED: 'HEADERS_VALIDATION_FAILED',\n HEADERS_MERGE_CONFLICT: 'HEADERS_MERGE_CONFLICT',\n\n // Regional\n REGION_DETECTION_FAILED: 'REGION_DETECTION_FAILED',\n REGIONAL_PRESET_NOT_FOUND: 'REGIONAL_PRESET_NOT_FOUND',\n\n // External Services\n EXTERNAL_SERVICE_ERROR: 'EXTERNAL_SERVICE_ERROR',\n\n // Timeout (generic)\n TIMEOUT: 'TIMEOUT',\n\n // Debugging\n DEBUG_TRACKING_FAILED: 'DEBUG_TRACKING_FAILED',\n\n // Polling\n POLLING_CANCELLED: 'POLLING_CANCELLED',\n POLLING_TIMEOUT: 'POLLING_TIMEOUT',\n POLLING_INVALID_CONFIG: 'POLLING_INVALID_CONFIG',\n\n // PubSub\n PUBSUB_SUBSCRIPTION_FAILED: 'PUBSUB_SUBSCRIPTION_FAILED',\n PUBSUB_PUBLICATION_FAILED: 'PUBSUB_PUBLICATION_FAILED',\n PUBSUB_INVALID_TOPIC: 'PUBSUB_INVALID_TOPIC',\n PUBSUB_CHANNEL_ERROR: 'PUBSUB_CHANNEL_ERROR',\n\n // Revalidation\n REVALIDATION_FAILED: 'REVALIDATION_FAILED',\n REVALIDATION_IN_PROGRESS: 'REVALIDATION_IN_PROGRESS',\n\n // Debugging\n DEBUG_OVERRIDE_FAILED: 'DEBUG_OVERRIDE_FAILED',\n DEBUG_CONFLICT_DETECTED: 'DEBUG_CONFLICT_DETECTED',\n\n // Endpoint\n ENDPOINT_BUILD_FAILED: 'ENDPOINT_BUILD_FAILED',\n ENDPOINT_NOT_FOUND: 'ENDPOINT_NOT_FOUND',\n ENDPOINT_INVALID_CONFIG: 'ENDPOINT_INVALID_CONFIG',\n\n // Event\n EVENT_HANDLER_FAILED: 'EVENT_HANDLER_FAILED',\n EVENT_EMISSION_FAILED: 'EVENT_EMISSION_FAILED',\n MONITORING_FAILED: 'MONITORING_FAILED',\n\n // Context\n CONTEXT_OPERATION_FAILED: 'CONTEXT_OPERATION_FAILED',\n\n // Generic\n CLIENT_ERROR: 'CLIENT_ERROR',\n UNKNOWN_ERROR: 'UNKNOWN_ERROR',\n\n // ===== Notification Package Errors =====\n // Provider\n NOTIFICATION_PROVIDER_SEND_FAILED: 'notification.provider.send.failed',\n NOTIFICATION_PROVIDER_CONFIGURATION_INVALID: 'notification.provider.configuration.invalid',\n NOTIFICATION_PROVIDER_RATE_LIMIT: 'notification.provider.rate.limit',\n NOTIFICATION_PROVIDER_AUTH_FAILED: 'notification.provider.auth.failed',\n NOTIFICATION_PROVIDER_TIMEOUT: 'notification.provider.timeout',\n NOTIFICATION_PROVIDER_UNAVAILABLE: 'notification.provider.unavailable',\n NOTIFICATION_PROVIDER_FEATURE_NOT_SUPPORTED: 'notification.provider.feature.not.supported',\n NOTIFICATION_ALL_PROVIDERS_FAILED: 'notification.all.providers.failed',\n\n // Validation\n NOTIFICATION_INVALID_INPUT: 'notification.validation.input.invalid',\n NOTIFICATION_INVALID_RECIPIENT: 'notification.validation.recipient.invalid',\n NOTIFICATION_INVALID_TEMPLATE: 'notification.validation.template.invalid',\n NOTIFICATION_INVALID_PAYLOAD: 'notification.validation.payload.invalid',\n NOTIFICATION_MISSING_REQUIRED_FIELD: 'notification.validation.field.required',\n NOTIFICATION_VALIDATION_FAILED: 'notification.validation.failed',\n\n // User Preferences\n NOTIFICATION_USER_OPTED_OUT: 'notification.user.opted.out',\n\n // Queue\n NOTIFICATION_QUEUE_FULL: 'notification.queue.full',\n NOTIFICATION_QUEUE_PROCESSING_FAILED: 'notification.queue.processing.failed',\n\n // Webhook\n NOTIFICATION_WEBHOOK_SIGNATURE_INVALID: 'notification.webhook.signature.invalid',\n NOTIFICATION_WEBHOOK_VALIDATION_FAILED: 'notification.webhook.validation.failed',\n NOTIFICATION_WEBHOOK_PROCESSING_FAILED: 'notification.webhook.processing.failed',\n\n // Template\n NOTIFICATION_TEMPLATE_NOT_FOUND: 'notification.template.not.found',\n NOTIFICATION_TEMPLATE_RENDER_FAILED: 'notification.template.render.failed',\n\n // General Notification\n NOTIFICATION_UNKNOWN_ERROR: 'notification.unknown.error',\n NOTIFICATION_INITIALIZATION_FAILED: 'notification.initialization.failed',\n\n // ===== Storage Package Errors =====\n // General\n STORAGE_UNKNOWN_ERROR: 'storage.unknown.error',\n STORAGE_INITIALIZATION_FAILED: 'storage.initialization.failed',\n\n // Adapter\n STORAGE_ADAPTER_NOT_FOUND: 'storage.adapter.not.found',\n STORAGE_ADAPTER_INITIALIZATION_FAILED: 'storage.adapter.initialization.failed',\n STORAGE_ADAPTER_CONFIGURATION_INVALID: 'storage.adapter.configuration.invalid',\n STORAGE_ADAPTER_ALREADY_REGISTERED: 'storage.adapter.already.registered',\n STORAGE_ADAPTER_CONNECTION_FAILED: 'storage.adapter.connection.failed',\n STORAGE_ADAPTER_AUTHENTICATION_FAILED: 'storage.adapter.authentication.failed',\n STORAGE_ADAPTER_OPERATION_FAILED: 'storage.adapter.operation.failed',\n STORAGE_ADAPTER_HEALTH_CHECK_FAILED: 'storage.adapter.health.check.failed',\n STORAGE_ADAPTER_UNAVAILABLE: 'storage.adapter.unavailable',\n STORAGE_ADAPTER_TIMEOUT: 'storage.adapter.timeout',\n STORAGE_ADAPTER_RATE_LIMIT: 'storage.adapter.rate.limit',\n STORAGE_ADAPTER_QUOTA_EXCEEDED: 'storage.adapter.quota.exceeded',\n STORAGE_ADAPTER_UNSUPPORTED_OPERATION: 'storage.adapter.unsupported.operation',\n STORAGE_ADAPTER_FEATURE_NOT_SUPPORTED: 'storage.adapter.feature.not.supported',\n STORAGE_NO_HEALTHY_ADAPTERS: 'storage.no.healthy.adapters',\n STORAGE_ALL_ADAPTERS_FAILED: 'storage.all.adapters.failed',\n\n // File Validation\n STORAGE_FILE_TOO_LARGE: 'storage.file.too.large',\n STORAGE_FILE_TOO_SMALL: 'storage.file.too.small',\n STORAGE_FILE_SIZE_INVALID: 'storage.file.size.invalid',\n STORAGE_FILE_TYPE_NOT_ALLOWED: 'storage.file.type.not.allowed',\n STORAGE_INVALID_MIME_TYPE: 'storage.invalid.mime.type',\n STORAGE_INVALID_FILE_EXTENSION: 'storage.invalid.file.extension',\n STORAGE_FILE_EXTENSION_INVALID: 'storage.file.extension.invalid',\n STORAGE_FILE_EXTENSION_MISMATCH: 'storage.file.extension.mismatch',\n STORAGE_EXECUTABLE_NOT_ALLOWED: 'storage.executable.not.allowed',\n STORAGE_VALIDATION_FAILED: 'storage.validation.failed',\n STORAGE_INVALID_FILE_CONTENT: 'storage.invalid.file.content',\n\n // Security\n STORAGE_SECURITY_VIRUS_DETECTED: 'storage.security.virus.detected',\n STORAGE_SECURITY_SCAN_FAILED: 'storage.security.scan.failed',\n STORAGE_SECURITY_ACCESS_DENIED: 'storage.security.access.denied',\n STORAGE_SECURITY_ENCRYPTION_FAILED: 'storage.security.encryption.failed',\n\n // File Operations\n STORAGE_FILE_UPLOAD_FAILED: 'storage.file.upload.failed',\n STORAGE_FILE_DOWNLOAD_FAILED: 'storage.file.download.failed',\n STORAGE_FILE_DELETE_FAILED: 'storage.file.delete.failed',\n STORAGE_FILE_UPDATE_FAILED: 'storage.file.update.failed',\n STORAGE_FILE_NOT_FOUND: 'storage.file.not.found',\n STORAGE_FILE_ALREADY_EXISTS: 'storage.file.already.exists',\n STORAGE_FILE_MOVE_FAILED: 'storage.file.move.failed',\n STORAGE_FILE_COPY_FAILED: 'storage.file.copy.failed',\n STORAGE_FILE_READ_FAILED: 'storage.file.read.failed',\n STORAGE_FILE_WRITE_FAILED: 'storage.file.write.failed',\n STORAGE_FILE_CORRUPTED: 'storage.file.corrupted',\n STORAGE_INVALID_OPERATION: 'storage.invalid.operation',\n\n // Metadata\n STORAGE_METADATA_EXTRACTION_FAILED: 'storage.metadata.extraction.failed',\n STORAGE_METADATA_INVALID: 'storage.metadata.invalid',\n STORAGE_METADATA_UPDATE_FAILED: 'storage.metadata.update.failed',\n\n // Media Processing\n STORAGE_MEDIA_PROCESSING_FAILED: 'storage.media.processing.failed',\n STORAGE_MEDIA_RESIZE_FAILED: 'storage.media.resize.failed',\n STORAGE_MEDIA_FORMAT_UNSUPPORTED: 'storage.media.format.unsupported',\n STORAGE_MEDIA_TRANSCODE_FAILED: 'storage.media.transcode.failed',\n STORAGE_MEDIA_THUMBNAIL_FAILED: 'storage.media.thumbnail.failed',\n STORAGE_MEDIA_INVALID_DIMENSIONS: 'storage.media.invalid.dimensions',\n\n // Template & PDF\n STORAGE_TEMPLATE_NOT_FOUND: 'storage.template.not.found',\n STORAGE_TEMPLATE_RENDER_FAILED: 'storage.template.render.failed',\n STORAGE_PDF_GENERATION_FAILED: 'storage.pdf.generation.failed',\n STORAGE_PDF_RENDERING_TIMEOUT: 'storage.pdf.rendering.timeout',\n\n // Queue\n STORAGE_QUEUE_FULL: 'storage.queue.full',\n STORAGE_QUEUE_PROCESSING_FAILED: 'storage.queue.processing.failed',\n STORAGE_QUEUE_ITEM_NOT_FOUND: 'storage.queue.item.not.found',\n\n // Compliance\n STORAGE_COMPLIANCE_VIOLATION: 'storage.compliance.violation',\n STORAGE_COMPLIANCE_RETENTION_VIOLATION: 'storage.compliance.retention.violation',\n STORAGE_COMPLIANCE_RETENTION_EXPIRED: 'storage.compliance.retention.expired',\n STORAGE_COMPLIANCE_IMMUTABLE_FILE: 'storage.compliance.immutable.file',\n STORAGE_COMPLIANCE_POLICY_NOT_FOUND: 'storage.compliance.policy.not.found',\n STORAGE_COMPLIANCE_SOFT_DELETE_REQUIRED: 'storage.compliance.soft.delete.required',\n STORAGE_COMPLIANCE_GRACE_PERIOD_ACTIVE: 'storage.compliance.grace.period.active',\n STORAGE_COMPLIANCE_DEFERRED_DELETION: 'storage.compliance.deferred.deletion',\n STORAGE_COMPLIANCE_PATTERN_PROTECTED: 'storage.compliance.pattern.protected',\n\n // Share Links\n STORAGE_SHARE_LINK_NOT_FOUND: 'storage.share.link.not.found',\n STORAGE_SHARE_LINK_EXPIRED: 'storage.share.link.expired',\n STORAGE_SHARE_LINK_MAX_DOWNLOADS: 'storage.share.link.max.downloads',\n STORAGE_SHARE_LINK_INVALID_PASSWORD: 'storage.share.link.invalid.password',\n\n // Plugin\n STORAGE_PLUGIN_NOT_FOUND: 'storage.plugin.not.found',\n STORAGE_PLUGIN_INITIALIZATION_FAILED: 'storage.plugin.initialization.failed',\n STORAGE_PLUGIN_EXECUTION_FAILED: 'storage.plugin.execution.failed',\n\n // VirusTotal Provider (Plugin)\n STORAGE_VIRUSTOTAL_BAD_REQUEST: 'storage.virustotal.bad_request',\n STORAGE_VIRUSTOTAL_AUTHENTICATION_REQUIRED: 'storage.virustotal.authentication_required',\n STORAGE_VIRUSTOTAL_WRONG_CREDENTIALS: 'storage.virustotal.wrong_credentials',\n STORAGE_VIRUSTOTAL_FILE_TOO_LARGE: 'storage.virustotal.file_too_large',\n STORAGE_VIRUSTOTAL_QUOTA_EXCEEDED: 'storage.virustotal.quota_exceeded',\n STORAGE_VIRUSTOTAL_ANALYSIS_NOT_FOUND: 'storage.virustotal.analysis_not_found',\n STORAGE_VIRUSTOTAL_SCAN_TIMEOUT: 'storage.virustotal.scan_timeout',\n STORAGE_VIRUSTOTAL_SCAN_FAILED: 'storage.virustotal.scan_failed',\n\n // CDN Provider Errors (Third-party services - cross-package)\n // Cloudflare CDN\n CLOUDFLARE_AUTHENTICATION_FAILED: 'cloudflare.authentication.failed',\n CLOUDFLARE_ZONE_NOT_FOUND: 'cloudflare.zone.not.found',\n CLOUDFLARE_PURGE_FAILED: 'cloudflare.purge.failed',\n CLOUDFLARE_RATE_LIMIT_EXCEEDED: 'cloudflare.rate.limit.exceeded',\n CLOUDFLARE_INVALID_URL: 'cloudflare.invalid.url',\n CLOUDFLARE_API_ERROR: 'cloudflare.api.error',\n\n // AWS CloudFront CDN\n CLOUDFRONT_AUTHENTICATION_FAILED: 'cloudfront.authentication.failed',\n CLOUDFRONT_DISTRIBUTION_NOT_FOUND: 'cloudfront.distribution.not.found',\n CLOUDFRONT_INVALIDATION_FAILED: 'cloudfront.invalidation.failed',\n CLOUDFRONT_QUOTA_EXCEEDED: 'cloudfront.quota.exceeded',\n CLOUDFRONT_INVALID_PATH: 'cloudfront.invalid.path',\n CLOUDFRONT_API_ERROR: 'cloudfront.api.error',\n\n // Fastly CDN\n FASTLY_AUTHENTICATION_FAILED: 'fastly.authentication.failed',\n FASTLY_SERVICE_NOT_FOUND: 'fastly.service.not.found',\n FASTLY_PURGE_FAILED: 'fastly.purge.failed',\n FASTLY_RATE_LIMIT_EXCEEDED: 'fastly.rate.limit.exceeded',\n FASTLY_INVALID_URL: 'fastly.invalid.url',\n FASTLY_API_ERROR: 'fastly.api.error',\n\n // Generic CDN Errors\n CDN_INVALIDATION_FAILED: 'cdn.invalidation.failed',\n CDN_CONFIGURATION_INVALID: 'cdn.configuration.invalid',\n CDN_PROVIDER_NOT_FOUND: 'cdn.provider.not.found',\n\n // Webhook Errors\n STORAGE_WEBHOOK_SIGNATURE_INVALID: 'storage.webhook.signature.invalid',\n STORAGE_WEBHOOK_PAYLOAD_INVALID: 'storage.webhook.payload.invalid',\n STORAGE_WEBHOOK_PROCESSING_FAILED: 'storage.webhook.processing.failed',\n STORAGE_WEBHOOK_TIMEOUT: 'storage.webhook.timeout',\n STORAGE_WEBHOOK_ADAPTER_NOT_FOUND: 'storage.webhook.adapter.not.found',\n STORAGE_WEBHOOK_DUPLICATE_DETECTED: 'storage.webhook.duplicate.detected',\n STORAGE_WEBHOOK_IDEMPOTENCY_ERROR: 'storage.webhook.idempotency.error',\n STORAGE_WEBHOOK_RATE_LIMIT_EXCEEDED: 'storage.webhook.rate.limit.exceeded',\n\n // Presigned URLs\n STORAGE_PRESIGNED_URL_GENERATION_FAILED: 'storage.presigned.url.generation.failed',\n STORAGE_PRESIGNED_URL_EXPIRED: 'storage.presigned.url.expired',\n STORAGE_PRESIGNED_URL_INVALID: 'storage.presigned.url.invalid',\n\n // Chunked Upload\n STORAGE_CHUNKED_UPLOAD_INIT_FAILED: 'storage.chunked.upload.init.failed',\n STORAGE_CHUNKED_UPLOAD_PART_FAILED: 'storage.chunked.upload.part.failed',\n STORAGE_CHUNKED_UPLOAD_COMPLETE_FAILED: 'storage.chunked.upload.complete.failed',\n STORAGE_CHUNKED_UPLOAD_ABORT_FAILED: 'storage.chunked.upload.abort.failed',\n STORAGE_CHUNKED_UPLOAD_NOT_FOUND: 'storage.chunked.upload.not.found',\n\n // CORS\n STORAGE_CORS_CONFIGURATION_INVALID: 'storage.cors.configuration.invalid',\n STORAGE_CORS_ORIGIN_NOT_ALLOWED: 'storage.cors.origin.not.allowed',\n\n // TTL\n STORAGE_TTL_EXPIRED: 'storage.ttl.expired',\n STORAGE_TTL_CLEANUP_FAILED: 'storage.ttl.cleanup.failed',\n\n // Audit\n STORAGE_AUDIT_LOG_FAILED: 'storage.audit.log.failed',\n\n // Timeout & Network\n STORAGE_TIMEOUT: 'storage.timeout',\n STORAGE_NETWORK_ERROR: 'storage.network.error',\n STORAGE_CONNECTION_LOST: 'storage.connection.lost',\n\n // Permission & Quota\n STORAGE_PERMISSION_DENIED: 'storage.permission.denied',\n STORAGE_QUOTA_EXCEEDED: 'storage.quota.exceeded',\n STORAGE_INSUFFICIENT_SPACE: 'storage.insufficient.space',\n\n // Feature Implementation\n STORAGE_FEATURE_NOT_IMPLEMENTED: 'storage.feature.not.implemented',\n\n // ===== Core Package Errors =====\n // Feature Flags\n CORE_FEATURE_FLAG_NOT_FOUND: 'core.feature_flag.not_found',\n CORE_FEATURE_FLAG_INVALID_CONFIG: 'core.feature_flag.invalid_config',\n CORE_FEATURE_FLAG_EVALUATION_FAILED: 'core.feature_flag.evaluation_failed',\n CORE_FEATURE_FLAG_PROVIDER_ERROR: 'core.feature_flag.provider_error',\n CORE_FEATURE_FLAG_CACHE_ERROR: 'core.feature_flag.cache_error',\n CORE_FEATURE_FLAG_CONTEXT_INVALID: 'core.feature_flag.context_invalid',\n CORE_FEATURE_FLAG_RULE_INVALID: 'core.feature_flag.rule_invalid',\n CORE_FEATURE_FLAG_TOGGLE_FAILED: 'core.feature_flag.toggle_failed',\n\n // Cache\n CORE_CACHE_INITIALIZATION_FAILED: 'core.cache.initialization_failed',\n CORE_CACHE_STRATEGY_NOT_FOUND: 'core.cache.strategy_not_found',\n CORE_CACHE_OPERATION_FAILED: 'core.cache.operation_failed',\n CORE_CACHE_INVALIDATION_FAILED: 'core.cache.invalidation_failed',\n CORE_CACHE_SERIALIZATION_FAILED: 'core.cache.serialization_failed',\n\n // API Client\n CORE_API_CLIENT_INITIALIZATION_FAILED: 'core.api_client.initialization_failed',\n CORE_API_CLIENT_REQUEST_FAILED: 'core.api_client.request_failed',\n CORE_API_CLIENT_TIMEOUT: 'core.api_client.timeout',\n CORE_API_CLIENT_INVALID_RESPONSE: 'core.api_client.invalid_response',\n CORE_API_CLIENT_AUTHENTICATION_FAILED: 'core.api_client.authentication_failed',\n\n // Database Service\n CORE_DATABASE_SERVICE_INITIALIZATION_FAILED: 'core.database_service.initialization_failed',\n CORE_DATABASE_SERVICE_CONNECTION_FAILED: 'core.database_service.connection_failed',\n CORE_DATABASE_SERVICE_QUERY_FAILED: 'core.database_service.query_failed',\n CORE_DATABASE_SERVICE_TRANSACTION_FAILED: 'core.database_service.transaction_failed',\n\n // Validation\n CORE_VALIDATION_FAILED: 'core.validation.failed',\n CORE_VALIDATION_SCHEMA_INVALID: 'core.validation.schema_invalid',\n CORE_VALIDATION_REQUIRED_FIELD_MISSING: 'core.validation.required_field_missing',\n\n // Hash Utilities\n CORE_HASH_GENERATION_FAILED: 'core.hash.generation_failed',\n CORE_HASH_VERIFICATION_FAILED: 'core.hash.verification_failed',\n\n // Engine\n CORE_ENGINE_INITIALIZATION_FAILED: 'core.engine.initialization_failed',\n CORE_ENGINE_EXECUTION_FAILED: 'core.engine.execution_failed',\n CORE_ENGINE_CONFIGURATION_INVALID: 'core.engine.configuration_invalid',\n\n // Provider\n CORE_PROVIDER_NOT_FOUND: 'core.provider.not_found',\n CORE_PROVIDER_INITIALIZATION_FAILED: 'core.provider.initialization_failed',\n CORE_PROVIDER_OPERATION_FAILED: 'core.provider.operation_failed',\n\n // Context\n CORE_CONTEXT_INVALID: 'core.context.invalid',\n CORE_CONTEXT_MISSING_REQUIRED_DATA: 'core.context.missing_required_data',\n\n // General Core\n CORE_INITIALIZATION_FAILED: 'core.initialization_failed',\n CORE_CONFIGURATION_INVALID: 'core.configuration_invalid',\n CORE_OPERATION_FAILED: 'core.operation_failed',\n CORE_UNKNOWN_ERROR: 'core.unknown_error',\n\n // ===== Errors Package Errors =====\n ERROR_SYSTEM_NOT_INITIALIZED: 'error.system.not.initialized',\n EVENT_FACTORY_NOT_REGISTERED: 'error.event.factory.not.registered',\n DATABASE_ERROR: 'error.database',\n\n // Global Error Handler\n UNCAUGHT_EXCEPTION: 'error.uncaught.exception',\n UNHANDLED_REJECTION: 'error.unhandled.rejection',\n RUNTIME_ERROR: 'error.runtime',\n\n // ===== Database Errors =====\n // Connection & Configuration\n DB_ACCESS_DENIED: 'db.access_denied',\n DB_CONFIG_REQUIRED: 'db.config_required',\n DB_CONNECT_FAILED: 'db.connect_failed',\n DB_DISCONNECT_FAILED: 'db.disconnect_failed',\n DB_INIT_FAILED: 'db.init_failed',\n\n // Query & Execution\n DB_QUERY_FAILED: 'db.query_failed',\n DB_BUILD_WHERE_FAILED: 'db.build_where_failed',\n DB_INVALID_SQL: 'db.invalid_sql',\n DB_TRANSACTION_FAILED: 'db.transaction_failed',\n DB_UNSUPPORTED_OPERATOR: 'db.unsupported_operator',\n\n // CRUD Operations\n DB_CREATE_FAILED: 'db.create_failed',\n DB_CREATION_FAILED: 'db.creation_failed',\n DB_FETCH_FAILED: 'db.fetch_failed',\n DB_FIND_FAILED: 'db.find_failed',\n DB_FIND_MANY_FAILED: 'db.find_many_failed',\n DB_FIND_BY_ID_FAILED: 'db.find_by_id_failed',\n DB_UPDATE_FAILED: 'db.update_failed',\n DB_UPDATE_NO_CHANGES: 'db.update_no_changes',\n DB_DELETE_FAILED: 'db.delete_failed',\n DB_INSERT_FAILED: 'db.insert_failed',\n DB_RECORD_NOT_FOUND: 'db.record_not_found',\n DB_EXISTS_FAILED: 'db.exists_failed',\n\n // Schema & Columns\n DB_COLUMN_NOT_EXISTS: 'db.column_not_exists',\n DB_TABLE_NOT_REGISTERED: 'db.table_not_registered',\n DB_TABLE_REGISTRATION_FAILED: 'db.table_registration_failed',\n DB_ID_COLUMN_NOT_REGISTERED: 'db.id_column_not_registered',\n DB_INVALID_COLUMN: 'db.invalid_column',\n DB_INVALID_TABLE_NAME: 'db.invalid_table_name',\n DB_GET_ID_COLUMN_FAILED: 'db.get_id_column_failed',\n DB_GET_TABLE_FAILED: 'db.get_table_failed',\n\n // Validation & Parameters\n DB_INVALID_PARAMETERS: 'db.invalid_parameters',\n DB_INVALID_PARAMS: 'db.invalid_params',\n DB_INVALID_FILTER: 'db.invalid_filter',\n DB_INVALID_ID: 'db.invalid_id',\n DB_INVALID_ENTITY: 'db.invalid_entity',\n DB_INVALID_UPDATE_PARAMS: 'db.invalid_update_params',\n DB_INVALID_FIELD_NAME: 'db.invalid_field_name',\n DB_INVALID_RESULT: 'db.invalid_result',\n DB_NO_UPDATE_FIELDS: 'db.no_update_fields',\n\n // Count & Data\n DB_COUNT_FAILED: 'db.count_failed',\n DB_COUNT_NO_RESULTS: 'db.count_no_results',\n DB_NO_DATA: 'db.no_data',\n\n // Multi-tenant Context\n DB_NO_TENANT_CONTEXT: 'db.no_tenant_context',\n DB_NO_TENANT_ID: 'db.no_tenant_id',\n DB_TENANT_VALIDATION_FAILED: 'db.tenant_validation_failed',\n\n // Backup & Restore\n DB_BACKUP_CLEANUP_FAILED: 'db.backup_cleanup_failed',\n DB_BACKUP_FILE_NOT_FOUND: 'db.backup_file_not_found',\n DB_LIST_BACKUPS_FAILED: 'db.list_backups_failed',\n DB_INVALID_BACKUP_INFO: 'db.invalid_backup_info',\n DB_RESTORE_FAILED: 'db.restore_failed',\n\n // Cache Operations\n DB_CACHE_DELETE_FAILED: 'db.cache_delete_failed',\n DB_CACHE_HEALTH_CHECK_FAILED: 'db.cache_health_check_failed',\n DB_CACHE_INVALIDATE_FAILED: 'db.cache_invalidate_failed',\n DB_CACHE_SET_FAILED: 'db.cache_set_failed',\n DB_CACHE_GET_FAILED: 'db.cache_get_failed',\n\n // File & Storage\n DB_INVALID_FILEPATH: 'db.invalid_filepath',\n DB_S3_DELETE_FAILED: 'db.s3_delete_failed',\n DB_S3_DOWNLOAD_FAILED: 'db.s3_download_failed',\n DB_S3_NOT_CONFIGURED: 'db.s3_not_configured',\n DB_S3_UPLOAD_FAILED: 'db.s3_upload_failed',\n\n // Misc\n DB_SCHEDULE_SETUP_FAILED: 'db.schedule_setup_failed',\n DB_DECRYPTION_FAILED: 'db.decryption_failed',\n DB_INVALID_SHELL_ARG: 'db.invalid_shell_arg',\n DB_INVALID_BETWEEN_OPERATOR: 'db.invalid_between_operator',\n DB_INVALID_IN_OPERATOR: 'db.invalid_in_operator',\n DB_INVALID_COUNT: 'db.invalid_count',\n\n // Connection & Network\n DB_CONNECTION_FAILED: 'db.connection_failed',\n DB_CONNECTION_ERROR: 'db.connection_error',\n DB_TIMEOUT: 'db.timeout',\n\n // Constraints & Integrity\n DB_CONSTRAINT_VIOLATION: 'db.constraint_violation',\n DB_DEADLOCK: 'db.deadlock',\n DB_DUPLICATE_ENTRY: 'db.duplicate_entry',\n\n // Entity Operations\n DB_ENTITY_NOT_FOUND: 'db.entity_not_found',\n\n // Migration & Schema\n DB_MIGRATION_FAILED: 'db.migration_failed',\n\n // Multi-Write Operations\n DB_MULTI_WRITE_FAILED: 'db.multi_write_failed',\n\n // General\n DB_UNKNOWN_ERROR: 'db.unknown_error',\n\n // ===== Payments Package Errors =====\n\n PAYMENT_TIMEOUT: 'payment.timeout',\n PAYMENT_NETWORK_ERROR: 'payment.network.error',\n\n // Refund\n PAYMENT_REFUND_FAILED: 'payment.refund.failed',\n PAYMENT_REFUND_NOT_FOUND: 'payment.refund.not.found',\n PAYMENT_REFUND_ALREADY_PROCESSED: 'payment.refund.already.processed',\n PAYMENT_REFUND_AMOUNT_INVALID: 'payment.refund.amount.invalid',\n PAYMENT_REFUND_VALIDATION_FAILED: 'payment.refund.validation.failed',\n PAYMENT_REFUND_TIMEOUT: 'payment.refund.timeout',\n PAYMENT_REFUND_NOT_ALLOWED: 'payment.refund.not.allowed',\n PAYMENT_REFUND_AUTHORIZATION_FAILED: 'payment.refund.authorization.failed',\n PAYMENT_REFUND_PROCESSING_FAILED: 'payment.refund.processing.failed',\n\n // Provider\n PAYMENT_PROVIDER_ERROR: 'payment.provider.error',\n PAYMENT_PROVIDER_UNAVAILABLE: 'payment.provider.unavailable',\n PAYMENT_PROVIDER_CONFIGURATION_INVALID: 'payment.provider.configuration.invalid',\n PAYMENT_PROVIDER_RESPONSE_INVALID: 'payment.provider.response.invalid',\n PAYMENT_PROVIDER_TIMEOUT: 'payment.provider.timeout',\n PAYMENT_PROVIDER_AUTH_FAILED: 'payment.provider.auth.failed',\n PAYMENT_PROVIDER_RATE_LIMIT: 'payment.provider.rate.limit', // for HTTP 429\n PAYMENT_PROVIDER_UNKNOWN: 'payment.provider.unknown',\n PAYMENT_CUSTOMER_CREATION_FAILED: 'payment.customer.creation.failed',\n\n // Payment method errors\n PAYMENT_METHOD_SAVE_FAILED: 'payment.method.save.failed',\n PAYMENT_METHOD_DELETE_FAILED: 'payment.method.delete.failed',\n\n // Subscription errors\n PAYMENT_SUBSCRIPTION_CREATE_FAILED: 'payment.subscription.create.failed',\n PAYMENT_SUBSCRIPTION_CANCEL_FAILED: 'payment.subscription.cancel.failed',\n\n // Payout errors\n PAYMENT_PAYOUT_FAILED: 'payment.payout.failed',\n\n // Transaction history errors\n PAYMENT_TRANSACTION_HISTORY_FETCH_FAILED: 'payment.transaction.history.fetch.failed',\n\n // Compliance\n PAYMENT_COMPLIANCE_VIOLATION: 'payment.compliance.violation',\n PAYMENT_COMPLIANCE_CHECK_FAILED: 'payment.compliance.check.failed',\n PAYMENT_COMPLIANCE_LIMIT_EXCEEDED: 'payment.compliance.limit.exceeded',\n PAYMENT_COMPLIANCE_POLICY_MISSING: 'payment.compliance.policy.missing',\n PAYMENT_COMPLIANCE_KYC_REQUIRED: 'payment.compliance.kyc.required',\n PAYMENT_COMPLIANCE_GEOGRAPHIC_RESTRICTION: 'payment.compliance.geographic.restriction',\n PAYMENT_COMPLIANCE_AML_CHECK_FAILED: 'payment.compliance.aml.check.failed',\n PAYMENT_COMPLIANCE_PSD2_STRONG_AUTH_REQUIRED: 'payment.compliance.psd2.strong.auth.required',\n PAYMENT_COMPLIANCE_GDPR_DATA_ACCESS: 'payment.compliance.gdpr.data.access',\n PAYMENT_COMPLIANCE_PCI_COMPLIANCE: 'payment.compliance.pci.compliance',\n PAYMENT_COMPLIANCE_LOCAL_BANKING_RESTRICTION: 'payment.compliance.local.banking.restriction',\n\n // Processing\n PAYMENT_PROCESSING_FAILED: 'payment.processing.failed',\n PAYMENT_PROCESSING_TIMEOUT: 'payment.processing.timeout',\n PAYMENT_PROCESSING_GATEWAY_ERROR: 'payment.processing.gateway.error',\n PAYMENT_PROCESSING_DUPLICATE: 'payment.processing.duplicate',\n PAYMENT_PROCESSING_UNEXPECTED_STATE: 'payment.processing.unexpected.state',\n\n // Security\n PAYMENT_SECURITY_VIOLATION: 'payment.security.violation',\n PAYMENT_SECURITY_SIGNATURE_INVALID: 'payment.security.signature.invalid',\n PAYMENT_SECURITY_ENCRYPTION_FAILED: 'payment.security.encryption.failed',\n PAYMENT_SECURITY_FRAUD_DETECTED: 'payment.security.fraud.detected',\n PAYMENT_SECURITY_TOKEN_INVALID: 'payment.security.token.invalid',\n PAYMENT_SECURITY_VELOCITY_LIMIT_EXCEEDED: 'payment.security.velocity.limit.exceeded',\n\n // Validation\n PAYMENT_VALIDATION_FAILED: 'payment.validation.failed',\n PAYMENT_VALIDATION_AMOUNT_INVALID: 'payment.validation.amount.invalid',\n PAYMENT_VALIDATION_CURRENCY_UNSUPPORTED: 'payment.validation.currency.unsupported',\n PAYMENT_VALIDATION_METADATA_INVALID: 'payment.validation.metadata.invalid',\n PAYMENT_VALIDATION_MISSING_REQUIRED_FIELD: 'payment.validation.field.required',\n\n // Webhook\n PAYMENT_WEBHOOK_SIGNATURE_INVALID: 'payment.webhook.signature.invalid',\n PAYMENT_WEBHOOK_PROCESSING_FAILED: 'payment.webhook.processing.failed',\n PAYMENT_WEBHOOK_VALIDATION_FAILED: 'payment.webhook.validation.failed',\n PAYMENT_WEBHOOK_EVENT_TYPE_UNSUPPORTED: 'payment.webhook.event.type.unsupported',\n PAYMENT_WEBHOOK_HANDLER_NOT_FOUND: 'payment.webhook.handler.not.found',\n\n // ===== Payment Adapter & Core Errors =====\n PAYMENT_ADAPTER_INIT_FAILED: 'payment.adapter.init.failed',\n PAYMENT_ADAPTER_SHUTDOWN_ERROR: 'payment.adapter.shutdown.error',\n PAYMENT_ADAPTER_HMAC_COMPUTATION_FAILED: 'payment.adapter.hmac.computation.failed',\n PAYMENT_ADAPTER_MISSING_PROVIDER: 'payment.adapter.missing.provider',\n PAYMENT_ADAPTER_MISSING_ENVIRONMENT: 'payment.adapter.missing.environment',\n PAYMENT_ADAPTER_MISSING_CREDENTIALS: 'payment.adapter.missing.credentials',\n PAYMENT_ADAPTER_MISSING_WEBHOOK_URL: 'payment.adapter.missing.webhook.url',\n PAYMENT_ADAPTER_MISSING_UNREGISTER_ENDPOINT: 'payment.adapter.missing.unregister.endpoint',\n PAYMENT_ADAPTER_UNSUPPORTED_OPERATION: 'payment.adapter.unsupported.operation',\n PAYMENT_ADAPTER_RESPONSE_MAPPING_FAILED: 'payment.adapter.response.mapping.failed',\n\n // Idempotency & State Management\n PAYMENT_IDEMPOTENCY_VIOLATION: 'payment.idempotency.violation',\n PAYMENT_IDEMPOTENCY_KEY_MISSING: 'payment.idempotency.key.missing',\n PAYMENT_IDEMPOTENCY_STORE_ERROR: 'payment.idempotency.store.error',\n\n // Routing & Strategy\n PAYMENT_ROUTING_FAILED: 'payment.routing.failed',\n PAYMENT_ROUTING_CONFIGURATION_INVALID: 'payment.routing.configuration.invalid',\n PAYMENT_ROUTING_PROVIDER_UNAVAILABLE: 'payment.routing.provider.unavailable',\n PAYMENT_ROUTING_RETRY_EXCEEDED: 'payment.routing.retry.exceeded',\n\n // General Payment Framework Errors\n PAYMENT_SYSTEM_NOT_INITIALIZED: 'payment.system.not.initialized',\n PAYMENT_CONTEXT_OPERATION_FAILED: 'payment.context.operation.failed',\n PAYMENT_INTERNAL_ERROR: 'payment.internal.error',\n PAYMENT_UNKNOWN_ERROR: 'payment.unknown.error',\n\n /**\n * Thrown when an event could not be emitted due to internal state or creation errors.\n * Typically non-retryable, indicates a logic or validation fault.\n */\n PAYMENT_EVENT_EMIT_FAILED: 'PAYMENT_EVENT_EMIT_FAILED',\n PAYMENT_EVENT_INVALID_TYPE: 'PAYMENT_EVENT_INVALID_TYPE',\n PAYMENT_EVENT_CREATION_FAILED: 'PAYMENT_EVENT_CREATION_FAILED',\n PAYMENT_EVENT_HANDLER_TIMEOUT: 'PAYMENT_EVENT_HANDLER_TIMEOUT',\n PAYMENT_EVENT_HANDLER_INVALID_RESULT: 'PAYMENT_EVENT_HANDLER_INVALID_RESULT',\n PAYMENT_EVENT_LIFECYCLE_FAILURE: 'PAYMENT_EVENT_LIFECYCLE_FAILURE',\n\n // Unsupported feature errors (Payment Gateway)\n SAVE_PAYMENT_METHOD_UNSUPPORTED: 'payment.method.save.unsupported',\n DELETE_PAYMENT_METHOD_UNSUPPORTED: 'payment.method.delete.unsupported',\n GET_USER_PAYMENT_METHODS_UNSUPPORTED: 'payment.method.get.unsupported',\n CREATE_SUBSCRIPTION_UNSUPPORTED: 'payment.subscription.create.unsupported',\n CANCEL_SUBSCRIPTION_UNSUPPORTED: 'payment.subscription.cancel.unsupported',\n PROCESS_PAYOUT_UNSUPPORTED: 'payment.payout.unsupported',\n GET_TRANSACTION_HISTORY_UNSUPPORTED: 'payment.transaction.history.unsupported',\n\n WITHDRAWAL_UNSUPPORTED: 'payment.withdrawal.unsupported',\n WITHDRAWAL_CREATE_UNSUPPORTED: 'payment.withdrawal.create.unsupported',\n WITHDRAWAL_PROCESS_UNSUPPORTED: 'payment.withdrawal.process.unsupported',\n WITHDRAWAL_STATUS_FETCH_UNSUPPORTED: 'payment.withdrawal.status.fetch.unsupported',\n WITHDRAWAL_CANCEL_UNSUPPORTED: 'payment.withdrawal.cancel.unsupported',\n\n WITHDRAWAL_INSUFFICIENT_BALANCE: 'payment.withdrawal.insufficient.balance',\n WITHDRAWAL_INVALID_ACCOUNT: 'payment.withdrawal.invalid.account',\n WITHDRAWAL_KYC_REQUIRED: 'payment.withdrawal.kyc.required',\n WITHDRAWAL_LIMIT_EXCEEDED: 'payment.withdrawal.limit.exceeded',\n WITHDRAWAL_PROVIDER_ERROR: 'payment.withdrawal.provider.error',\n WITHDRAWAL_FAILED: 'payment.withdrawal.failed',\n WITHDRAWAL_TIMEOUT: 'payment.withdrawal.timeout',\n\n // Product\n PRODUCT_CREATE_UNSUPPORTED: 'payment.product.create.unsupported',\n PRODUCT_UPDATE_UNSUPPORTED: 'payment.product.update.unsupported',\n PRODUCT_FETCH_UNSUPPORTED: 'payment.product.fetch.unsupported',\n PRODUCT_DEACTIVATE_UNSUPPORTED: 'payment.product.deactivate.unsupported',\n\n PRODUCT_NOT_FOUND: 'payment.product.not_found',\n PRODUCT_INVALID_DATA: 'payment.product.invalid.data',\n PRODUCT_PROVIDER_ERROR: 'payment.product.provider.error',\n PRODUCT_ALREADY_INACTIVE: 'payment.product.already.inactive',\n PRODUCT_SYNC_FAILED: 'payment.product.sync.failed',\n\n // Pricing\n PRICING_CREATE_UNSUPPORTED: 'payment.pricing.create.unsupported',\n PRICING_UPDATE_UNSUPPORTED: 'payment.pricing.update.unsupported',\n PRICING_DEACTIVATE_UNSUPPORTED: 'payment.pricing.deactivate.unsupported',\n\n PRICING_NOT_FOUND: 'payment.pricing.not_found',\n PRICING_INVALID_AMOUNT: 'payment.pricing.invalid.amount',\n PRICING_INVALID_CURRENCY: 'payment.pricing.invalid.currency',\n PRICING_PROVIDER_ERROR: 'payment.pricing.provider.error',\n PRICING_ALREADY_INACTIVE: 'payment.pricing.already.inactive',\n PRICING_SYNC_FAILED: 'payment.pricing.sync.failed',\n PRICING_REQUIRES_NEW_VERSION: 'payment.pricing.requires.new.version',\n\n // Authentication\n\n INVALID_CREDENTIALS: 'AUTH_INVALID_CREDENTIALS',\n TOKEN_EXPIRED: 'AUTH_TOKEN_EXPIRED',\n TOKEN_INVALID: 'AUTH_TOKEN_INVALID',\n TOKEN_REVOKED: 'AUTH_TOKEN_REVOKED',\n SESSION_EXPIRED: 'AUTH_SESSION_EXPIRED',\n MFA_REQUIRED: 'AUTH_MFA_REQUIRED',\n MFA_INVALID: 'AUTH_MFA_INVALID',\n INSUFFICIENT_PERMISSIONS: 'AUTH_INSUFFICIENT_PERMISSIONS',\n ROLE_REQUIRED: 'AUTH_ROLE_REQUIRED',\n WALLET_SIGNATURE_INVALID: 'AUTH_WALLET_SIGNATURE_INVALID',\n NONCE_EXPIRED: 'AUTH_NONCE_EXPIRED',\n NONCE_ALREADY_USED: 'AUTH_NONCE_ALREADY_USED',\n ACCOUNT_LOCKED: 'AUTH_ACCOUNT_LOCKED',\n ACCOUNT_SUSPENDED: 'AUTH_ACCOUNT_SUSPENDED',\n} as const;\n\n/**\n * Type for all error code values\n */\nexport type ErrorCodeValue = (typeof ERROR_CODES)[keyof typeof ERROR_CODES];\n\n// ===== Package-Specific Error Code Subsets =====\n// These are convenience exports for backwards compatibility and easier imports\n\n/**\n * API-specific error codes\n * Subset of ERROR_CODES for @plyaz/api package\n */\nexport const API_ERROR_CODES = {\n CLIENT_INITIALIZATION_FAILED: ERROR_CODES.CLIENT_INITIALIZATION_FAILED,\n CLIENT_INVALID_CONFIG: ERROR_CODES.CLIENT_INVALID_CONFIG,\n CLIENT_MISSING_BASE_URL: ERROR_CODES.CLIENT_MISSING_BASE_URL,\n CLIENT_CANCELLED: ERROR_CODES.CLIENT_CANCELLED,\n CONFIG_VALIDATION_FAILED: ERROR_CODES.CONFIG_VALIDATION_FAILED,\n HEADER_PROCESSING_FAILED: ERROR_CODES.HEADER_PROCESSING_FAILED,\n NETWORK_OVERRIDE_FAILED: ERROR_CODES.NETWORK_OVERRIDE_FAILED,\n REQUEST_TIMEOUT: ERROR_CODES.REQUEST_TIMEOUT,\n REQUEST_ABORTED: ERROR_CODES.REQUEST_ABORTED,\n REQUEST_INVALID_PARAMS: ERROR_CODES.REQUEST_INVALID_PARAMS,\n REQUEST_PREPARATION_FAILED: ERROR_CODES.REQUEST_PREPARATION_FAILED,\n RESPONSE_INVALID_FORMAT: ERROR_CODES.RESPONSE_INVALID_FORMAT,\n RESPONSE_PARSING_FAILED: ERROR_CODES.RESPONSE_PARSING_FAILED,\n AUTH_UNAUTHORIZED: ERROR_CODES.AUTH_UNAUTHORIZED,\n AUTH_FORBIDDEN: ERROR_CODES.AUTH_FORBIDDEN,\n AUTH_TOKEN_EXPIRED: ERROR_CODES.TOKEN_EXPIRED,\n AUTH_INVALID_CREDENTIALS: ERROR_CODES.INVALID_CREDENTIALS,\n RATE_LIMIT_EXCEEDED: ERROR_CODES.RATE_LIMIT_EXCEEDED,\n RESOURCE_NOT_FOUND: ERROR_CODES.RESOURCE_NOT_FOUND,\n RESOURCE_CONFLICT: ERROR_CODES.RESOURCE_CONFLICT,\n VALIDATION_FAILED: ERROR_CODES.API_VALIDATION_FAILED,\n INVALID_INPUT: ERROR_CODES.API_INVALID_INPUT,\n VALIDATION_ERROR: ERROR_CODES.VALIDATION_ERROR,\n REQUIRED_FIELD_MISSING: ERROR_CODES.REQUIRED_FIELD_MISSING,\n INVALID_FORMAT: ERROR_CODES.INVALID_FORMAT,\n VALIDATION_INVALID_FORMAT: ERROR_CODES.VALIDATION_INVALID_FORMAT,\n STRING_TOO_SHORT: ERROR_CODES.STRING_TOO_SHORT,\n STRING_TOO_LONG: ERROR_CODES.STRING_TOO_LONG,\n NETWORK_ERROR: ERROR_CODES.NETWORK_ERROR,\n CONNECTION_FAILED: ERROR_CODES.CONNECTION_FAILED,\n NETWORK_CONNECTION_FAILED: ERROR_CODES.NETWORK_CONNECTION_FAILED,\n NETWORK_OFFLINE: ERROR_CODES.NETWORK_OFFLINE,\n NETWORK_DNS_FAILED: ERROR_CODES.NETWORK_DNS_FAILED,\n NETWORK_TIMEOUT: ERROR_CODES.NETWORK_TIMEOUT,\n NETWORK_CONFIGURATION_INVALID: ERROR_CODES.NETWORK_CONFIGURATION_INVALID,\n SERVER_ERROR: ERROR_CODES.SERVER_ERROR,\n INTERNAL_SERVER_ERROR: ERROR_CODES.INTERNAL_SERVER_ERROR,\n SERVICE_UNAVAILABLE: ERROR_CODES.SERVICE_UNAVAILABLE,\n CACHE_READ_FAILED: ERROR_CODES.CACHE_READ_FAILED,\n CACHE_WRITE_FAILED: ERROR_CODES.CACHE_WRITE_FAILED,\n CACHE_INVALIDATION_FAILED: ERROR_CODES.CACHE_INVALIDATION_FAILED,\n CACHE_STORAGE_FAILED: ERROR_CODES.CACHE_STORAGE_FAILED,\n CACHE_RETRIEVAL_FAILED: ERROR_CODES.CACHE_RETRIEVAL_FAILED,\n RETRY_LIMIT_EXCEEDED: ERROR_CODES.RETRY_LIMIT_EXCEEDED,\n RETRY_FAILED: ERROR_CODES.RETRY_FAILED,\n RETRY_EXHAUSTED: ERROR_CODES.RETRY_EXHAUSTED,\n RETRY_STRATEGY_INVALID: ERROR_CODES.RETRY_STRATEGY_INVALID,\n STRATEGY_INVALID: ERROR_CODES.STRATEGY_INVALID,\n STRATEGY_CONFLICT: ERROR_CODES.STRATEGY_CONFLICT,\n STRATEGY_EXECUTION_FAILED: ERROR_CODES.STRATEGY_EXECUTION_FAILED,\n HEADERS_ENRICHMENT_FAILED: ERROR_CODES.HEADERS_ENRICHMENT_FAILED,\n HEADERS_VALIDATION_FAILED: ERROR_CODES.HEADERS_VALIDATION_FAILED,\n HEADERS_MERGE_CONFLICT: ERROR_CODES.HEADERS_MERGE_CONFLICT,\n REGION_DETECTION_FAILED: ERROR_CODES.REGION_DETECTION_FAILED,\n REGIONAL_PRESET_NOT_FOUND: ERROR_CODES.REGIONAL_PRESET_NOT_FOUND,\n EXTERNAL_SERVICE_ERROR: ERROR_CODES.EXTERNAL_SERVICE_ERROR,\n NETWORK_PRESET_NOT_FOUND: ERROR_CODES.NETWORK_PRESET_NOT_FOUND,\n TIMEOUT: ERROR_CODES.TIMEOUT,\n DEBUG_TRACKING_FAILED: ERROR_CODES.DEBUG_TRACKING_FAILED,\n DEBUG_OVERRIDE_FAILED: ERROR_CODES.DEBUG_OVERRIDE_FAILED,\n DEBUG_CONFLICT_DETECTED: ERROR_CODES.DEBUG_CONFLICT_DETECTED,\n POLLING_CANCELLED: ERROR_CODES.POLLING_CANCELLED,\n POLLING_TIMEOUT: ERROR_CODES.POLLING_TIMEOUT,\n POLLING_INVALID_CONFIG: ERROR_CODES.POLLING_INVALID_CONFIG,\n PUBSUB_SUBSCRIPTION_FAILED: ERROR_CODES.PUBSUB_SUBSCRIPTION_FAILED,\n PUBSUB_PUBLICATION_FAILED: ERROR_CODES.PUBSUB_PUBLICATION_FAILED,\n PUBSUB_INVALID_TOPIC: ERROR_CODES.PUBSUB_INVALID_TOPIC,\n PUBSUB_CHANNEL_ERROR: ERROR_CODES.PUBSUB_CHANNEL_ERROR,\n REVALIDATION_FAILED: ERROR_CODES.REVALIDATION_FAILED,\n REVALIDATION_IN_PROGRESS: ERROR_CODES.REVALIDATION_IN_PROGRESS,\n ENDPOINT_BUILD_FAILED: ERROR_CODES.ENDPOINT_BUILD_FAILED,\n ENDPOINT_NOT_FOUND: ERROR_CODES.ENDPOINT_NOT_FOUND,\n ENDPOINT_INVALID_CONFIG: ERROR_CODES.ENDPOINT_INVALID_CONFIG,\n EVENT_HANDLER_FAILED: ERROR_CODES.EVENT_HANDLER_FAILED,\n EVENT_EMISSION_FAILED: ERROR_CODES.EVENT_EMISSION_FAILED,\n MONITORING_FAILED: ERROR_CODES.MONITORING_FAILED,\n CONTEXT_OPERATION_FAILED: ERROR_CODES.CONTEXT_OPERATION_FAILED,\n CLIENT_ERROR: ERROR_CODES.CLIENT_ERROR,\n UNKNOWN_ERROR: ERROR_CODES.UNKNOWN_ERROR,\n\n // CDN Provider Errors (Third-party services)\n // Cloudflare\n CLOUDFLARE_AUTHENTICATION_FAILED: ERROR_CODES.CLOUDFLARE_AUTHENTICATION_FAILED,\n CLOUDFLARE_ZONE_NOT_FOUND: ERROR_CODES.CLOUDFLARE_ZONE_NOT_FOUND,\n CLOUDFLARE_PURGE_FAILED: ERROR_CODES.CLOUDFLARE_PURGE_FAILED,\n CLOUDFLARE_RATE_LIMIT_EXCEEDED: ERROR_CODES.CLOUDFLARE_RATE_LIMIT_EXCEEDED,\n CLOUDFLARE_INVALID_URL: ERROR_CODES.CLOUDFLARE_INVALID_URL,\n CLOUDFLARE_API_ERROR: ERROR_CODES.CLOUDFLARE_API_ERROR,\n\n // CloudFront\n CLOUDFRONT_AUTHENTICATION_FAILED: ERROR_CODES.CLOUDFRONT_AUTHENTICATION_FAILED,\n CLOUDFRONT_DISTRIBUTION_NOT_FOUND: ERROR_CODES.CLOUDFRONT_DISTRIBUTION_NOT_FOUND,\n CLOUDFRONT_INVALIDATION_FAILED: ERROR_CODES.CLOUDFRONT_INVALIDATION_FAILED,\n CLOUDFRONT_QUOTA_EXCEEDED: ERROR_CODES.CLOUDFRONT_QUOTA_EXCEEDED,\n CLOUDFRONT_INVALID_PATH: ERROR_CODES.CLOUDFRONT_INVALID_PATH,\n CLOUDFRONT_API_ERROR: ERROR_CODES.CLOUDFRONT_API_ERROR,\n\n // Fastly\n FASTLY_AUTHENTICATION_FAILED: ERROR_CODES.FASTLY_AUTHENTICATION_FAILED,\n FASTLY_SERVICE_NOT_FOUND: ERROR_CODES.FASTLY_SERVICE_NOT_FOUND,\n FASTLY_PURGE_FAILED: ERROR_CODES.FASTLY_PURGE_FAILED,\n FASTLY_RATE_LIMIT_EXCEEDED: ERROR_CODES.FASTLY_RATE_LIMIT_EXCEEDED,\n FASTLY_INVALID_URL: ERROR_CODES.FASTLY_INVALID_URL,\n FASTLY_API_ERROR: ERROR_CODES.FASTLY_API_ERROR,\n\n // Generic CDN\n CDN_INVALIDATION_FAILED: ERROR_CODES.CDN_INVALIDATION_FAILED,\n CDN_CONFIGURATION_INVALID: ERROR_CODES.CDN_CONFIGURATION_INVALID,\n CDN_PROVIDER_NOT_FOUND: ERROR_CODES.CDN_PROVIDER_NOT_FOUND,\n} as const;\n\n/**\n * Notification-specific error codes\n * Subset of ERROR_CODES for @plyaz/notifications package\n */\nexport const NOTIFICATION_ERROR_CODES = {\n PROVIDER_SEND_FAILED: ERROR_CODES.NOTIFICATION_PROVIDER_SEND_FAILED,\n PROVIDER_CONFIGURATION_INVALID: ERROR_CODES.NOTIFICATION_PROVIDER_CONFIGURATION_INVALID,\n PROVIDER_RATE_LIMIT: ERROR_CODES.NOTIFICATION_PROVIDER_RATE_LIMIT,\n PROVIDER_AUTH_FAILED: ERROR_CODES.NOTIFICATION_PROVIDER_AUTH_FAILED,\n PROVIDER_TIMEOUT: ERROR_CODES.NOTIFICATION_PROVIDER_TIMEOUT,\n PROVIDER_UNAVAILABLE: ERROR_CODES.NOTIFICATION_PROVIDER_UNAVAILABLE,\n PROVIDER_FEATURE_NOT_SUPPORTED: ERROR_CODES.NOTIFICATION_PROVIDER_FEATURE_NOT_SUPPORTED,\n ALL_PROVIDERS_FAILED: ERROR_CODES.NOTIFICATION_ALL_PROVIDERS_FAILED,\n INVALID_INPUT: ERROR_CODES.NOTIFICATION_INVALID_INPUT,\n INVALID_RECIPIENT: ERROR_CODES.NOTIFICATION_INVALID_RECIPIENT,\n INVALID_TEMPLATE: ERROR_CODES.NOTIFICATION_INVALID_TEMPLATE,\n INVALID_PAYLOAD: ERROR_CODES.NOTIFICATION_INVALID_PAYLOAD,\n MISSING_REQUIRED_FIELD: ERROR_CODES.NOTIFICATION_MISSING_REQUIRED_FIELD,\n VALIDATION_FAILED: ERROR_CODES.NOTIFICATION_VALIDATION_FAILED,\n USER_OPTED_OUT: ERROR_CODES.NOTIFICATION_USER_OPTED_OUT,\n QUEUE_FULL: ERROR_CODES.NOTIFICATION_QUEUE_FULL,\n QUEUE_PROCESSING_FAILED: ERROR_CODES.NOTIFICATION_QUEUE_PROCESSING_FAILED,\n WEBHOOK_SIGNATURE_INVALID: ERROR_CODES.NOTIFICATION_WEBHOOK_SIGNATURE_INVALID,\n WEBHOOK_VALIDATION_FAILED: ERROR_CODES.NOTIFICATION_WEBHOOK_VALIDATION_FAILED,\n WEBHOOK_PROCESSING_FAILED: ERROR_CODES.NOTIFICATION_WEBHOOK_PROCESSING_FAILED,\n TEMPLATE_NOT_FOUND: ERROR_CODES.NOTIFICATION_TEMPLATE_NOT_FOUND,\n TEMPLATE_RENDER_FAILED: ERROR_CODES.NOTIFICATION_TEMPLATE_RENDER_FAILED,\n UNKNOWN_ERROR: ERROR_CODES.NOTIFICATION_UNKNOWN_ERROR,\n INITIALIZATION_FAILED: ERROR_CODES.NOTIFICATION_INITIALIZATION_FAILED,\n} as const;\n\n/**\n * Storage-specific error codes\n * Subset of ERROR_CODES for @plyaz/storage package\n */\nexport const STORAGE_ERROR_CODES = {\n // General\n UNKNOWN_ERROR: ERROR_CODES.STORAGE_UNKNOWN_ERROR,\n INITIALIZATION_FAILED: ERROR_CODES.STORAGE_INITIALIZATION_FAILED,\n\n // Adapter\n ADAPTER_NOT_FOUND: ERROR_CODES.STORAGE_ADAPTER_NOT_FOUND,\n ADAPTER_INITIALIZATION_FAILED: ERROR_CODES.STORAGE_ADAPTER_INITIALIZATION_FAILED,\n ADAPTER_CONFIGURATION_INVALID: ERROR_CODES.STORAGE_ADAPTER_CONFIGURATION_INVALID,\n ADAPTER_ALREADY_REGISTERED: ERROR_CODES.STORAGE_ADAPTER_ALREADY_REGISTERED,\n ADAPTER_CONNECTION_FAILED: ERROR_CODES.STORAGE_ADAPTER_CONNECTION_FAILED,\n ADAPTER_AUTHENTICATION_FAILED: ERROR_CODES.STORAGE_ADAPTER_AUTHENTICATION_FAILED,\n ADAPTER_OPERATION_FAILED: ERROR_CODES.STORAGE_ADAPTER_OPERATION_FAILED,\n ADAPTER_HEALTH_CHECK_FAILED: ERROR_CODES.STORAGE_ADAPTER_HEALTH_CHECK_FAILED,\n ADAPTER_UNAVAILABLE: ERROR_CODES.STORAGE_ADAPTER_UNAVAILABLE,\n ADAPTER_TIMEOUT: ERROR_CODES.STORAGE_ADAPTER_TIMEOUT,\n ADAPTER_RATE_LIMIT: ERROR_CODES.STORAGE_ADAPTER_RATE_LIMIT,\n ADAPTER_QUOTA_EXCEEDED: ERROR_CODES.STORAGE_ADAPTER_QUOTA_EXCEEDED,\n ADAPTER_UNSUPPORTED_OPERATION: ERROR_CODES.STORAGE_ADAPTER_UNSUPPORTED_OPERATION,\n ADAPTER_FEATURE_NOT_SUPPORTED: ERROR_CODES.STORAGE_ADAPTER_FEATURE_NOT_SUPPORTED,\n NO_HEALTHY_ADAPTERS: ERROR_CODES.STORAGE_NO_HEALTHY_ADAPTERS,\n ALL_ADAPTERS_FAILED: ERROR_CODES.STORAGE_ALL_ADAPTERS_FAILED,\n\n // File Validation\n FILE_TOO_LARGE: ERROR_CODES.STORAGE_FILE_TOO_LARGE,\n FILE_TOO_SMALL: ERROR_CODES.STORAGE_FILE_TOO_SMALL,\n FILE_SIZE_INVALID: ERROR_CODES.STORAGE_FILE_SIZE_INVALID,\n FILE_TYPE_NOT_ALLOWED: ERROR_CODES.STORAGE_FILE_TYPE_NOT_ALLOWED,\n INVALID_MIME_TYPE: ERROR_CODES.STORAGE_INVALID_MIME_TYPE,\n INVALID_FILE_EXTENSION: ERROR_CODES.STORAGE_INVALID_FILE_EXTENSION,\n FILE_EXTENSION_INVALID: ERROR_CODES.STORAGE_FILE_EXTENSION_INVALID,\n FILE_EXTENSION_MISMATCH: ERROR_CODES.STORAGE_FILE_EXTENSION_MISMATCH,\n EXECUTABLE_NOT_ALLOWED: ERROR_CODES.STORAGE_EXECUTABLE_NOT_ALLOWED,\n VALIDATION_FAILED: ERROR_CODES.STORAGE_VALIDATION_FAILED,\n INVALID_FILE_CONTENT: ERROR_CODES.STORAGE_INVALID_FILE_CONTENT,\n\n // Security\n SECURITY_VIRUS_DETECTED: ERROR_CODES.STORAGE_SECURITY_VIRUS_DETECTED,\n SECURITY_SCAN_FAILED: ERROR_CODES.STORAGE_SECURITY_SCAN_FAILED,\n SECURITY_ACCESS_DENIED: ERROR_CODES.STORAGE_SECURITY_ACCESS_DENIED,\n SECURITY_ENCRYPTION_FAILED: ERROR_CODES.STORAGE_SECURITY_ENCRYPTION_FAILED,\n\n // File Operations\n FILE_UPLOAD_FAILED: ERROR_CODES.STORAGE_FILE_UPLOAD_FAILED,\n FILE_DOWNLOAD_FAILED: ERROR_CODES.STORAGE_FILE_DOWNLOAD_FAILED,\n FILE_DELETE_FAILED: ERROR_CODES.STORAGE_FILE_DELETE_FAILED,\n STORAGE_FILE_UPDATE_FAILED: ERROR_CODES.STORAGE_FILE_UPDATE_FAILED,\n FILE_NOT_FOUND: ERROR_CODES.STORAGE_FILE_NOT_FOUND,\n FILE_ALREADY_EXISTS: ERROR_CODES.STORAGE_FILE_ALREADY_EXISTS,\n FILE_MOVE_FAILED: ERROR_CODES.STORAGE_FILE_MOVE_FAILED,\n FILE_COPY_FAILED: ERROR_CODES.STORAGE_FILE_COPY_FAILED,\n FILE_READ_FAILED: ERROR_CODES.STORAGE_FILE_READ_FAILED,\n FILE_WRITE_FAILED: ERROR_CODES.STORAGE_FILE_WRITE_FAILED,\n FILE_CORRUPTED: ERROR_CODES.STORAGE_FILE_CORRUPTED,\n INVALID_OPERATION: ERROR_CODES.STORAGE_INVALID_OPERATION,\n\n // Metadata\n METADATA_EXTRACTION_FAILED: ERROR_CODES.STORAGE_METADATA_EXTRACTION_FAILED,\n METADATA_INVALID: ERROR_CODES.STORAGE_METADATA_INVALID,\n METADATA_UPDATE_FAILED: ERROR_CODES.STORAGE_METADATA_UPDATE_FAILED,\n\n // Media Processing\n MEDIA_PROCESSING_FAILED: ERROR_CODES.STORAGE_MEDIA_PROCESSING_FAILED,\n MEDIA_RESIZE_FAILED: ERROR_CODES.STORAGE_MEDIA_RESIZE_FAILED,\n MEDIA_FORMAT_UNSUPPORTED: ERROR_CODES.STORAGE_MEDIA_FORMAT_UNSUPPORTED,\n MEDIA_TRANSCODE_FAILED: ERROR_CODES.STORAGE_MEDIA_TRANSCODE_FAILED,\n MEDIA_THUMBNAIL_FAILED: ERROR_CODES.STORAGE_MEDIA_THUMBNAIL_FAILED,\n MEDIA_INVALID_DIMENSIONS: ERROR_CODES.STORAGE_MEDIA_INVALID_DIMENSIONS,\n\n // Template & PDF\n TEMPLATE_NOT_FOUND: ERROR_CODES.STORAGE_TEMPLATE_NOT_FOUND,\n TEMPLATE_RENDER_FAILED: ERROR_CODES.STORAGE_TEMPLATE_RENDER_FAILED,\n PDF_GENERATION_FAILED: ERROR_CODES.STORAGE_PDF_GENERATION_FAILED,\n PDF_RENDERING_TIMEOUT: ERROR_CODES.STORAGE_PDF_RENDERING_TIMEOUT,\n\n // Queue\n QUEUE_FULL: ERROR_CODES.STORAGE_QUEUE_FULL,\n QUEUE_PROCESSING_FAILED: ERROR_CODES.STORAGE_QUEUE_PROCESSING_FAILED,\n QUEUE_ITEM_NOT_FOUND: ERROR_CODES.STORAGE_QUEUE_ITEM_NOT_FOUND,\n\n // Compliance\n COMPLIANCE_VIOLATION: ERROR_CODES.STORAGE_COMPLIANCE_VIOLATION,\n COMPLIANCE_RETENTION_VIOLATION: ERROR_CODES.STORAGE_COMPLIANCE_RETENTION_VIOLATION,\n COMPLIANCE_RETENTION_EXPIRED: ERROR_CODES.STORAGE_COMPLIANCE_RETENTION_EXPIRED,\n COMPLIANCE_IMMUTABLE_FILE: ERROR_CODES.STORAGE_COMPLIANCE_IMMUTABLE_FILE,\n COMPLIANCE_POLICY_NOT_FOUND: ERROR_CODES.STORAGE_COMPLIANCE_POLICY_NOT_FOUND,\n COMPLIANCE_SOFT_DELETE_REQUIRED: ERROR_CODES.STORAGE_COMPLIANCE_SOFT_DELETE_REQUIRED,\n COMPLIANCE_GRACE_PERIOD_ACTIVE: ERROR_CODES.STORAGE_COMPLIANCE_GRACE_PERIOD_ACTIVE,\n COMPLIANCE_DEFERRED_DELETION: ERROR_CODES.STORAGE_COMPLIANCE_DEFERRED_DELETION,\n COMPLIANCE_PATTERN_PROTECTED: ERROR_CODES.STORAGE_COMPLIANCE_PATTERN_PROTECTED,\n\n // Share Links\n SHARE_LINK_NOT_FOUND: ERROR_CODES.STORAGE_SHARE_LINK_NOT_FOUND,\n SHARE_LINK_EXPIRED: ERROR_CODES.STORAGE_SHARE_LINK_EXPIRED,\n SHARE_LINK_MAX_DOWNLOADS: ERROR_CODES.STORAGE_SHARE_LINK_MAX_DOWNLOADS,\n SHARE_LINK_INVALID_PASSWORD: ERROR_CODES.STORAGE_SHARE_LINK_INVALID_PASSWORD,\n\n // Plugin\n PLUGIN_NOT_FOUND: ERROR_CODES.STORAGE_PLUGIN_NOT_FOUND,\n PLUGIN_INITIALIZATION_FAILED: ERROR_CODES.STORAGE_PLUGIN_INITIALIZATION_FAILED,\n PLUGIN_EXECUTION_FAILED: ERROR_CODES.STORAGE_PLUGIN_EXECUTION_FAILED,\n\n // VirusTotal Provider (Plugin)\n VIRUSTOTAL_BAD_REQUEST: ERROR_CODES.STORAGE_VIRUSTOTAL_BAD_REQUEST,\n VIRUSTOTAL_AUTHENTICATION_REQUIRED: ERROR_CODES.STORAGE_VIRUSTOTAL_AUTHENTICATION_REQUIRED,\n VIRUSTOTAL_WRONG_CREDENTIALS: ERROR_CODES.STORAGE_VIRUSTOTAL_WRONG_CREDENTIALS,\n VIRUSTOTAL_FILE_TOO_LARGE: ERROR_CODES.STORAGE_VIRUSTOTAL_FILE_TOO_LARGE,\n VIRUSTOTAL_QUOTA_EXCEEDED: ERROR_CODES.STORAGE_VIRUSTOTAL_QUOTA_EXCEEDED,\n VIRUSTOTAL_ANALYSIS_NOT_FOUND: ERROR_CODES.STORAGE_VIRUSTOTAL_ANALYSIS_NOT_FOUND,\n VIRUSTOTAL_SCAN_TIMEOUT: ERROR_CODES.STORAGE_VIRUSTOTAL_SCAN_TIMEOUT,\n VIRUSTOTAL_SCAN_FAILED: ERROR_CODES.STORAGE_VIRUSTOTAL_SCAN_FAILED,\n\n // CDN Providers (Plugins) - Reference cross-package CDN errors\n // Cloudflare CDN\n CLOUDFLARE_AUTHENTICATION_FAILED: ERROR_CODES.CLOUDFLARE_AUTHENTICATION_FAILED,\n CLOUDFLARE_ZONE_NOT_FOUND: ERROR_CODES.CLOUDFLARE_ZONE_NOT_FOUND,\n CLOUDFLARE_PURGE_FAILED: ERROR_CODES.CLOUDFLARE_PURGE_FAILED,\n CLOUDFLARE_RATE_LIMIT_EXCEEDED: ERROR_CODES.CLOUDFLARE_RATE_LIMIT_EXCEEDED,\n CLOUDFLARE_INVALID_URL: ERROR_CODES.CLOUDFLARE_INVALID_URL,\n CLOUDFLARE_API_ERROR: ERROR_CODES.CLOUDFLARE_API_ERROR,\n\n // AWS CloudFront CDN\n CLOUDFRONT_AUTHENTICATION_FAILED: ERROR_CODES.CLOUDFRONT_AUTHENTICATION_FAILED,\n CLOUDFRONT_DISTRIBUTION_NOT_FOUND: ERROR_CODES.CLOUDFRONT_DISTRIBUTION_NOT_FOUND,\n CLOUDFRONT_INVALIDATION_FAILED: ERROR_CODES.CLOUDFRONT_INVALIDATION_FAILED,\n CLOUDFRONT_QUOTA_EXCEEDED: ERROR_CODES.CLOUDFRONT_QUOTA_EXCEEDED,\n CLOUDFRONT_INVALID_PATH: ERROR_CODES.CLOUDFRONT_INVALID_PATH,\n CLOUDFRONT_API_ERROR: ERROR_CODES.CLOUDFRONT_API_ERROR,\n\n // Fastly CDN\n FASTLY_AUTHENTICATION_FAILED: ERROR_CODES.FASTLY_AUTHENTICATION_FAILED,\n FASTLY_SERVICE_NOT_FOUND: ERROR_CODES.FASTLY_SERVICE_NOT_FOUND,\n FASTLY_PURGE_FAILED: ERROR_CODES.FASTLY_PURGE_FAILED,\n FASTLY_RATE_LIMIT_EXCEEDED: ERROR_CODES.FASTLY_RATE_LIMIT_EXCEEDED,\n FASTLY_INVALID_URL: ERROR_CODES.FASTLY_INVALID_URL,\n FASTLY_API_ERROR: ERROR_CODES.FASTLY_API_ERROR,\n\n // Generic CDN Errors\n CDN_INVALIDATION_FAILED: ERROR_CODES.CDN_INVALIDATION_FAILED,\n CDN_CONFIGURATION_INVALID: ERROR_CODES.CDN_CONFIGURATION_INVALID,\n CDN_PROVIDER_NOT_FOUND: ERROR_CODES.CDN_PROVIDER_NOT_FOUND,\n\n // Presigned URLs\n PRESIGNED_URL_GENERATION_FAILED: ERROR_CODES.STORAGE_PRESIGNED_URL_GENERATION_FAILED,\n PRESIGNED_URL_EXPIRED: ERROR_CODES.STORAGE_PRESIGNED_URL_EXPIRED,\n PRESIGNED_URL_INVALID: ERROR_CODES.STORAGE_PRESIGNED_URL_INVALID,\n\n // Chunked Upload\n CHUNKED_UPLOAD_INIT_FAILED: ERROR_CODES.STORAGE_CHUNKED_UPLOAD_INIT_FAILED,\n CHUNKED_UPLOAD_PART_FAILED: ERROR_CODES.STORAGE_CHUNKED_UPLOAD_PART_FAILED,\n CHUNKED_UPLOAD_COMPLETE_FAILED: ERROR_CODES.STORAGE_CHUNKED_UPLOAD_COMPLETE_FAILED,\n CHUNKED_UPLOAD_ABORT_FAILED: ERROR_CODES.STORAGE_CHUNKED_UPLOAD_ABORT_FAILED,\n CHUNKED_UPLOAD_NOT_FOUND: ERROR_CODES.STORAGE_CHUNKED_UPLOAD_NOT_FOUND,\n\n // CORS\n CORS_CONFIGURATION_INVALID: ERROR_CODES.STORAGE_CORS_CONFIGURATION_INVALID,\n CORS_ORIGIN_NOT_ALLOWED: ERROR_CODES.STORAGE_CORS_ORIGIN_NOT_ALLOWED,\n\n // TTL\n TTL_EXPIRED: ERROR_CODES.STORAGE_TTL_EXPIRED,\n TTL_CLEANUP_FAILED: ERROR_CODES.STORAGE_TTL_CLEANUP_FAILED,\n\n // Audit\n AUDIT_LOG_FAILED: ERROR_CODES.STORAGE_AUDIT_LOG_FAILED,\n\n // Webhook\n WEBHOOK_SIGNATURE_INVALID: ERROR_CODES.STORAGE_WEBHOOK_SIGNATURE_INVALID,\n WEBHOOK_PAYLOAD_INVALID: ERROR_CODES.STORAGE_WEBHOOK_PAYLOAD_INVALID,\n WEBHOOK_PROCESSING_FAILED: ERROR_CODES.STORAGE_WEBHOOK_PROCESSING_FAILED,\n WEBHOOK_TIMEOUT: ERROR_CODES.STORAGE_WEBHOOK_TIMEOUT,\n WEBHOOK_ADAPTER_NOT_FOUND: ERROR_CODES.STORAGE_WEBHOOK_ADAPTER_NOT_FOUND,\n WEBHOOK_DUPLICATE_DETECTED: ERROR_CODES.STORAGE_WEBHOOK_DUPLICATE_DETECTED,\n WEBHOOK_IDEMPOTENCY_ERROR: ERROR_CODES.STORAGE_WEBHOOK_IDEMPOTENCY_ERROR,\n WEBHOOK_RATE_LIMIT_EXCEEDED: ERROR_CODES.STORAGE_WEBHOOK_RATE_LIMIT_EXCEEDED,\n\n // Timeout & Network\n TIMEOUT: ERROR_CODES.STORAGE_TIMEOUT,\n NETWORK_ERROR: ERROR_CODES.STORAGE_NETWORK_ERROR,\n CONNECTION_LOST: ERROR_CODES.STORAGE_CONNECTION_LOST,\n\n // Permission & Quota\n PERMISSION_DENIED: ERROR_CODES.STORAGE_PERMISSION_DENIED,\n QUOTA_EXCEEDED: ERROR_CODES.STORAGE_QUOTA_EXCEEDED,\n INSUFFICIENT_SPACE: ERROR_CODES.STORAGE_INSUFFICIENT_SPACE,\n\n // Feature Implementation\n FEATURE_NOT_IMPLEMENTED: ERROR_CODES.STORAGE_FEATURE_NOT_IMPLEMENTED,\n} as const;\n\n/**\n * Core-specific error codes\n * Subset of ERROR_CODES for @plyaz/core package\n */\nexport const CORE_ERROR_CODES = {\n // Feature Flags\n FEATURE_FLAG_NOT_FOUND: ERROR_CODES.CORE_FEATURE_FLAG_NOT_FOUND,\n FEATURE_FLAG_INVALID_CONFIG: ERROR_CODES.CORE_FEATURE_FLAG_INVALID_CONFIG,\n FEATURE_FLAG_EVALUATION_FAILED: ERROR_CODES.CORE_FEATURE_FLAG_EVALUATION_FAILED,\n FEATURE_FLAG_PROVIDER_ERROR: ERROR_CODES.CORE_FEATURE_FLAG_PROVIDER_ERROR,\n FEATURE_FLAG_CACHE_ERROR: ERROR_CODES.CORE_FEATURE_FLAG_CACHE_ERROR,\n FEATURE_FLAG_CONTEXT_INVALID: ERROR_CODES.CORE_FEATURE_FLAG_CONTEXT_INVALID,\n FEATURE_FLAG_RULE_INVALID: ERROR_CODES.CORE_FEATURE_FLAG_RULE_INVALID,\n FEATURE_FLAG_TOGGLE_FAILED: ERROR_CODES.CORE_FEATURE_FLAG_TOGGLE_FAILED,\n\n // Cache\n CACHE_INITIALIZATION_FAILED: ERROR_CODES.CORE_CACHE_INITIALIZATION_FAILED,\n CACHE_STRATEGY_NOT_FOUND: ERROR_CODES.CORE_CACHE_STRATEGY_NOT_FOUND,\n CACHE_OPERATION_FAILED: ERROR_CODES.CORE_CACHE_OPERATION_FAILED,\n CACHE_INVALIDATION_FAILED: ERROR_CODES.CORE_CACHE_INVALIDATION_FAILED,\n CACHE_SERIALIZATION_FAILED: ERROR_CODES.CORE_CACHE_SERIALIZATION_FAILED,\n\n // API Client\n API_CLIENT_INITIALIZATION_FAILED: ERROR_CODES.CORE_API_CLIENT_INITIALIZATION_FAILED,\n API_CLIENT_REQUEST_FAILED: ERROR_CODES.CORE_API_CLIENT_REQUEST_FAILED,\n API_CLIENT_TIMEOUT: ERROR_CODES.CORE_API_CLIENT_TIMEOUT,\n API_CLIENT_INVALID_RESPONSE: ERROR_CODES.CORE_API_CLIENT_INVALID_RESPONSE,\n API_CLIENT_AUTHENTICATION_FAILED: ERROR_CODES.CORE_API_CLIENT_AUTHENTICATION_FAILED,\n\n // Database Service\n DATABASE_SERVICE_INITIALIZATION_FAILED: ERROR_CODES.CORE_DATABASE_SERVICE_INITIALIZATION_FAILED,\n DATABASE_SERVICE_CONNECTION_FAILED: ERROR_CODES.CORE_DATABASE_SERVICE_CONNECTION_FAILED,\n DATABASE_SERVICE_QUERY_FAILED: ERROR_CODES.CORE_DATABASE_SERVICE_QUERY_FAILED,\n DATABASE_SERVICE_TRANSACTION_FAILED: ERROR_CODES.CORE_DATABASE_SERVICE_TRANSACTION_FAILED,\n\n // Validation\n VALIDATION_FAILED: ERROR_CODES.CORE_VALIDATION_FAILED,\n VALIDATION_SCHEMA_INVALID: ERROR_CODES.CORE_VALIDATION_SCHEMA_INVALID,\n VALIDATION_REQUIRED_FIELD_MISSING: ERROR_CODES.CORE_VALIDATION_REQUIRED_FIELD_MISSING,\n\n // Hash Utilities\n HASH_GENERATION_FAILED: ERROR_CODES.CORE_HASH_GENERATION_FAILED,\n HASH_VERIFICATION_FAILED: ERROR_CODES.CORE_HASH_VERIFICATION_FAILED,\n\n // Engine\n ENGINE_INITIALIZATION_FAILED: ERROR_CODES.CORE_ENGINE_INITIALIZATION_FAILED,\n ENGINE_EXECUTION_FAILED: ERROR_CODES.CORE_ENGINE_EXECUTION_FAILED,\n ENGINE_CONFIGURATION_INVALID: ERROR_CODES.CORE_ENGINE_CONFIGURATION_INVALID,\n\n // Provider\n PROVIDER_NOT_FOUND: ERROR_CODES.CORE_PROVIDER_NOT_FOUND,\n PROVIDER_INITIALIZATION_FAILED: ERROR_CODES.CORE_PROVIDER_INITIALIZATION_FAILED,\n PROVIDER_OPERATION_FAILED: ERROR_CODES.CORE_PROVIDER_OPERATION_FAILED,\n\n // Context\n CONTEXT_INVALID: ERROR_CODES.CORE_CONTEXT_INVALID,\n CONTEXT_MISSING_REQUIRED_DATA: ERROR_CODES.CORE_CONTEXT_MISSING_REQUIRED_DATA,\n\n // General Core\n INITIALIZATION_FAILED: ERROR_CODES.CORE_INITIALIZATION_FAILED,\n CONFIGURATION_INVALID: ERROR_CODES.CORE_CONFIGURATION_INVALID,\n OPERATION_FAILED: ERROR_CODES.CORE_OPERATION_FAILED,\n UNKNOWN_ERROR: ERROR_CODES.CORE_UNKNOWN_ERROR,\n\n // Common/Generic Errors (used across core package)\n CLIENT_INITIALIZATION_FAILED: ERROR_CODES.CLIENT_INITIALIZATION_FAILED,\n CLIENT_INVALID_CONFIG: ERROR_CODES.CLIENT_INVALID_CONFIG,\n CONTEXT_OPERATION_FAILED: ERROR_CODES.CONTEXT_OPERATION_FAILED,\n FEATURE_NOT_SUPPORTED: ERROR_CODES.FEATURE_NOT_SUPPORTED,\n VALIDATION_ERROR: ERROR_CODES.VALIDATION_ERROR,\n NETWORK_ERROR: ERROR_CODES.NETWORK_ERROR,\n RESOURCE_NOT_FOUND: ERROR_CODES.RESOURCE_NOT_FOUND,\n DB_CONNECTION_FAILED: ERROR_CODES.DB_CONNECTION_FAILED,\n DB_DUPLICATE_ENTRY: ERROR_CODES.DB_DUPLICATE_ENTRY,\n PROVIDER_NOT_IMPLEMENTED: ERROR_CODES.PROVIDER_NOT_IMPLEMENTED,\n STORAGE_FILE_WRITE_FAILED: ERROR_CODES.STORAGE_FILE_WRITE_FAILED,\n} as const;\n\n/**\n * PAYMENT-specific error codes\n * Subset of ERROR_CODES for @plyaz/payments package\n */\nexport const PAYMENT_ERROR_CODES = {\n // Timeout & Network\n PAYMENT_TIMEOUT: ERROR_CODES.PAYMENT_TIMEOUT,\n PAYMENT_NETWORK_ERROR: ERROR_CODES.PAYMENT_NETWORK_ERROR,\n\n // Refund\n PAYMENT_REFUND_FAILED: ERROR_CODES.PAYMENT_REFUND_FAILED,\n PAYMENT_REFUND_NOT_FOUND: ERROR_CODES.PAYMENT_REFUND_NOT_FOUND,\n PAYMENT_REFUND_ALREADY_PROCESSED: ERROR_CODES.PAYMENT_REFUND_ALREADY_PROCESSED,\n PAYMENT_REFUND_AMOUNT_INVALID: ERROR_CODES.PAYMENT_REFUND_AMOUNT_INVALID,\n PAYMENT_REFUND_VALIDATION_FAILED: ERROR_CODES.PAYMENT_REFUND_VALIDATION_FAILED,\n PAYMENT_REFUND_TIMEOUT: ERROR_CODES.PAYMENT_REFUND_TIMEOUT,\n PAYMENT_REFUND_NOT_ALLOWED: ERROR_CODES.PAYMENT_REFUND_NOT_ALLOWED,\n PAYMENT_REFUND_AUTHORIZATION_FAILED: ERROR_CODES.PAYMENT_REFUND_AUTHORIZATION_FAILED,\n PAYMENT_REFUND_PROCESSING_FAILED: ERROR_CODES.PAYMENT_REFUND_PROCESSING_FAILED,\n\n // Provider\n PAYMENT_PROVIDER_ERROR: ERROR_CODES.PAYMENT_PROVIDER_ERROR,\n PAYMENT_PROVIDER_UNAVAILABLE: ERROR_CODES.PAYMENT_PROVIDER_UNAVAILABLE,\n PAYMENT_PROVIDER_CONFIGURATION_INVALID: ERROR_CODES.PAYMENT_PROVIDER_CONFIGURATION_INVALID,\n PAYMENT_PROVIDER_RESPONSE_INVALID: ERROR_CODES.PAYMENT_PROVIDER_RESPONSE_INVALID,\n PAYMENT_PROVIDER_TIMEOUT: ERROR_CODES.PAYMENT_PROVIDER_TIMEOUT,\n PAYMENT_PROVIDER_AUTH_FAILED: ERROR_CODES.PAYMENT_PROVIDER_AUTH_FAILED,\n PAYMENT_PROVIDER_RATE_LIMIT: ERROR_CODES.PAYMENT_PROVIDER_RATE_LIMIT,\n PAYMENT_PROVIDER_UNKNOWN: ERROR_CODES.PAYMENT_PROVIDER_UNKNOWN,\n PAYMENT_CUSTOMER_CREATION_FAILED: ERROR_CODES.PAYMENT_CUSTOMER_CREATION_FAILED,\n\n // Payment method\n PAYMENT_METHOD_SAVE_FAILED: ERROR_CODES.PAYMENT_METHOD_SAVE_FAILED,\n PAYMENT_METHOD_DELETE_FAILED: ERROR_CODES.PAYMENT_METHOD_DELETE_FAILED,\n\n // Subscription\n PAYMENT_SUBSCRIPTION_CREATE_FAILED: ERROR_CODES.PAYMENT_SUBSCRIPTION_CREATE_FAILED,\n PAYMENT_SUBSCRIPTION_CANCEL_FAILED: ERROR_CODES.PAYMENT_SUBSCRIPTION_CANCEL_FAILED,\n\n // Payout\n PAYMENT_PAYOUT_FAILED: ERROR_CODES.PAYMENT_PAYOUT_FAILED,\n\n // Transaction history\n PAYMENT_TRANSACTION_HISTORY_FETCH_FAILED: ERROR_CODES.PAYMENT_TRANSACTION_HISTORY_FETCH_FAILED,\n\n // Compliance\n PAYMENT_COMPLIANCE_VIOLATION: ERROR_CODES.PAYMENT_COMPLIANCE_VIOLATION,\n PAYMENT_COMPLIANCE_CHECK_FAILED: ERROR_CODES.PAYMENT_COMPLIANCE_CHECK_FAILED,\n PAYMENT_COMPLIANCE_LIMIT_EXCEEDED: ERROR_CODES.PAYMENT_COMPLIANCE_LIMIT_EXCEEDED,\n PAYMENT_COMPLIANCE_POLICY_MISSING: ERROR_CODES.PAYMENT_COMPLIANCE_POLICY_MISSING,\n PAYMENT_COMPLIANCE_KYC_REQUIRED: ERROR_CODES.PAYMENT_COMPLIANCE_KYC_REQUIRED,\n PAYMENT_COMPLIANCE_GEOGRAPHIC_RESTRICTION: ERROR_CODES.PAYMENT_COMPLIANCE_GEOGRAPHIC_RESTRICTION,\n\n // Processing\n PAYMENT_PROCESSING_FAILED: ERROR_CODES.PAYMENT_PROCESSING_FAILED,\n PAYMENT_PROCESSING_TIMEOUT: ERROR_CODES.PAYMENT_PROCESSING_TIMEOUT,\n PAYMENT_PROCESSING_GATEWAY_ERROR: ERROR_CODES.PAYMENT_PROCESSING_GATEWAY_ERROR,\n PAYMENT_PROCESSING_DUPLICATE: ERROR_CODES.PAYMENT_PROCESSING_DUPLICATE,\n PAYMENT_PROCESSING_UNEXPECTED_STATE: ERROR_CODES.PAYMENT_PROCESSING_UNEXPECTED_STATE,\n\n // Security\n PAYMENT_SECURITY_VIOLATION: ERROR_CODES.PAYMENT_SECURITY_VIOLATION,\n PAYMENT_SECURITY_SIGNATURE_INVALID: ERROR_CODES.PAYMENT_SECURITY_SIGNATURE_INVALID,\n PAYMENT_SECURITY_ENCRYPTION_FAILED: ERROR_CODES.PAYMENT_SECURITY_ENCRYPTION_FAILED,\n PAYMENT_SECURITY_FRAUD_DETECTED: ERROR_CODES.PAYMENT_SECURITY_FRAUD_DETECTED,\n PAYMENT_SECURITY_TOKEN_INVALID: ERROR_CODES.PAYMENT_SECURITY_TOKEN_INVALID,\n PAYMENT_SECURITY_VELOCITY_LIMIT_EXCEEDED: ERROR_CODES.PAYMENT_SECURITY_VELOCITY_LIMIT_EXCEEDED,\n\n // Validation\n PAYMENT_VALIDATION_FAILED: ERROR_CODES.PAYMENT_VALIDATION_FAILED,\n PAYMENT_VALIDATION_AMOUNT_INVALID: ERROR_CODES.PAYMENT_VALIDATION_AMOUNT_INVALID,\n PAYMENT_VALIDATION_CURRENCY_UNSUPPORTED: ERROR_CODES.PAYMENT_VALIDATION_CURRENCY_UNSUPPORTED,\n PAYMENT_VALIDATION_METADATA_INVALID: ERROR_CODES.PAYMENT_VALIDATION_METADATA_INVALID,\n PAYMENT_VALIDATION_MISSING_REQUIRED_FIELD: ERROR_CODES.PAYMENT_VALIDATION_MISSING_REQUIRED_FIELD,\n\n // Webhook\n PAYMENT_WEBHOOK_SIGNATURE_INVALID: ERROR_CODES.PAYMENT_WEBHOOK_SIGNATURE_INVALID,\n PAYMENT_WEBHOOK_PROCESSING_FAILED: ERROR_CODES.PAYMENT_WEBHOOK_PROCESSING_FAILED,\n PAYMENT_WEBHOOK_VALIDATION_FAILED: ERROR_CODES.PAYMENT_WEBHOOK_VALIDATION_FAILED,\n PAYMENT_WEBHOOK_EVENT_TYPE_UNSUPPORTED: ERROR_CODES.PAYMENT_WEBHOOK_EVENT_TYPE_UNSUPPORTED,\n PAYMENT_WEBHOOK_HANDLER_NOT_FOUND: ERROR_CODES.PAYMENT_WEBHOOK_HANDLER_NOT_FOUND,\n\n // Adapter & Core\n PAYMENT_ADAPTER_INIT_FAILED: ERROR_CODES.PAYMENT_ADAPTER_INIT_FAILED,\n PAYMENT_ADAPTER_SHUTDOWN_ERROR: ERROR_CODES.PAYMENT_ADAPTER_SHUTDOWN_ERROR,\n PAYMENT_ADAPTER_HMAC_COMPUTATION_FAILED: ERROR_CODES.PAYMENT_ADAPTER_HMAC_COMPUTATION_FAILED,\n PAYMENT_ADAPTER_MISSING_PROVIDER: ERROR_CODES.PAYMENT_ADAPTER_MISSING_PROVIDER,\n PAYMENT_ADAPTER_MISSING_ENVIRONMENT: ERROR_CODES.PAYMENT_ADAPTER_MISSING_ENVIRONMENT,\n PAYMENT_ADAPTER_MISSING_CREDENTIALS: ERROR_CODES.PAYMENT_ADAPTER_MISSING_CREDENTIALS,\n PAYMENT_ADAPTER_MISSING_WEBHOOK_URL: ERROR_CODES.PAYMENT_ADAPTER_MISSING_WEBHOOK_URL,\n PAYMENT_ADAPTER_MISSING_UNREGISTER_ENDPOINT:\n ERROR_CODES.PAYMENT_ADAPTER_MISSING_UNREGISTER_ENDPOINT,\n PAYMENT_ADAPTER_UNSUPPORTED_OPERATION: ERROR_CODES.PAYMENT_ADAPTER_UNSUPPORTED_OPERATION,\n PAYMENT_ADAPTER_RESPONSE_MAPPING_FAILED: ERROR_CODES.PAYMENT_ADAPTER_RESPONSE_MAPPING_FAILED,\n\n // Unsupported Operations\n SAVE_PAYMENT_METHOD_UNSUPPORTED: ERROR_CODES.SAVE_PAYMENT_METHOD_UNSUPPORTED,\n DELETE_PAYMENT_METHOD_UNSUPPORTED: ERROR_CODES.DELETE_PAYMENT_METHOD_UNSUPPORTED,\n GET_USER_PAYMENT_METHODS_UNSUPPORTED: ERROR_CODES.GET_USER_PAYMENT_METHODS_UNSUPPORTED,\n CREATE_SUBSCRIPTION_UNSUPPORTED: ERROR_CODES.CREATE_SUBSCRIPTION_UNSUPPORTED,\n CANCEL_SUBSCRIPTION_UNSUPPORTED: ERROR_CODES.CANCEL_SUBSCRIPTION_UNSUPPORTED,\n PROCESS_PAYOUT_UNSUPPORTED: ERROR_CODES.PROCESS_PAYOUT_UNSUPPORTED,\n GET_TRANSACTION_HISTORY_UNSUPPORTED: ERROR_CODES.GET_TRANSACTION_HISTORY_UNSUPPORTED,\n\n // Idempotency\n PAYMENT_IDEMPOTENCY_VIOLATION: ERROR_CODES.PAYMENT_IDEMPOTENCY_VIOLATION,\n PAYMENT_IDEMPOTENCY_KEY_MISSING: ERROR_CODES.PAYMENT_IDEMPOTENCY_KEY_MISSING,\n PAYMENT_IDEMPOTENCY_STORE_ERROR: ERROR_CODES.PAYMENT_IDEMPOTENCY_STORE_ERROR,\n\n // Routing\n PAYMENT_ROUTING_FAILED: ERROR_CODES.PAYMENT_ROUTING_FAILED,\n PAYMENT_ROUTING_CONFIGURATION_INVALID: ERROR_CODES.PAYMENT_ROUTING_CONFIGURATION_INVALID,\n PAYMENT_ROUTING_PROVIDER_UNAVAILABLE: ERROR_CODES.PAYMENT_ROUTING_PROVIDER_UNAVAILABLE,\n PAYMENT_ROUTING_RETRY_EXCEEDED: ERROR_CODES.PAYMENT_ROUTING_RETRY_EXCEEDED,\n\n // General\n PAYMENT_SYSTEM_NOT_INITIALIZED: ERROR_CODES.PAYMENT_SYSTEM_NOT_INITIALIZED,\n PAYMENT_CONTEXT_OPERATION_FAILED: ERROR_CODES.PAYMENT_CONTEXT_OPERATION_FAILED,\n PAYMENT_INTERNAL_ERROR: ERROR_CODES.PAYMENT_INTERNAL_ERROR,\n PAYMENT_UNKNOWN_ERROR: ERROR_CODES.PAYMENT_UNKNOWN_ERROR,\n\n // Event\n PAYMENT_EVENT_EMIT_FAILED: ERROR_CODES.PAYMENT_EVENT_EMIT_FAILED,\n PAYMENT_EVENT_INVALID_TYPE: ERROR_CODES.PAYMENT_EVENT_INVALID_TYPE,\n PAYMENT_EVENT_CREATION_FAILED: ERROR_CODES.PAYMENT_EVENT_CREATION_FAILED,\n PAYMENT_EVENT_HANDLER_TIMEOUT: ERROR_CODES.PAYMENT_EVENT_HANDLER_TIMEOUT,\n PAYMENT_EVENT_HANDLER_INVALID_RESULT: ERROR_CODES.PAYMENT_EVENT_HANDLER_INVALID_RESULT,\n PAYMENT_EVENT_LIFECYCLE_FAILURE: ERROR_CODES.PAYMENT_EVENT_LIFECYCLE_FAILURE,\n\n // Withdrawal\n PAYMENT_WITHDRAWAL_UNSUPPORTED: ERROR_CODES.WITHDRAWAL_UNSUPPORTED,\n PAYMENT_WITHDRAWAL_CREATE_UNSUPPORTED: ERROR_CODES.WITHDRAWAL_CREATE_UNSUPPORTED,\n PAYMENT_WITHDRAWAL_PROCESS_UNSUPPORTED: ERROR_CODES.WITHDRAWAL_PROCESS_UNSUPPORTED,\n PAYMENT_WITHDRAWAL_STATUS_FETCH_UNSUPPORTED: ERROR_CODES.WITHDRAWAL_STATUS_FETCH_UNSUPPORTED,\n PAYMENT_WITHDRAWAL_CANCEL_UNSUPPORTED: ERROR_CODES.WITHDRAWAL_CANCEL_UNSUPPORTED,\n\n PAYMENT_WITHDRAWAL_INSUFFICIENT_BALANCE: ERROR_CODES.WITHDRAWAL_INSUFFICIENT_BALANCE,\n PAYMENT_WITHDRAWAL_INVALID_ACCOUNT: ERROR_CODES.WITHDRAWAL_INVALID_ACCOUNT,\n PAYMENT_WITHDRAWAL_KYC_REQUIRED: ERROR_CODES.WITHDRAWAL_KYC_REQUIRED,\n PAYMENT_WITHDRAWAL_LIMIT_EXCEEDED: ERROR_CODES.WITHDRAWAL_LIMIT_EXCEEDED,\n PAYMENT_WITHDRAWAL_PROVIDER_ERROR: ERROR_CODES.WITHDRAWAL_PROVIDER_ERROR,\n PAYMENT_WITHDRAWAL_FAILED: ERROR_CODES.WITHDRAWAL_FAILED,\n PAYMENT_WITHDRAWAL_TIMEOUT: ERROR_CODES.WITHDRAWAL_TIMEOUT,\n\n // Product\n PAYMENT_PRODUCT_CREATE_UNSUPPORTED: ERROR_CODES.PRODUCT_CREATE_UNSUPPORTED,\n PAYMENT_PRODUCT_UPDATE_UNSUPPORTED: ERROR_CODES.PRODUCT_UPDATE_UNSUPPORTED,\n PAYMENT_PRODUCT_FETCH_UNSUPPORTED: ERROR_CODES.PRODUCT_FETCH_UNSUPPORTED,\n PAYMENT_PRODUCT_DEACTIVATE_UNSUPPORTED: ERROR_CODES.PRODUCT_DEACTIVATE_UNSUPPORTED,\n\n PAYMENT_PRODUCT_NOT_FOUND: ERROR_CODES.PRODUCT_NOT_FOUND,\n PAYMENT_PRODUCT_INVALID_DATA: ERROR_CODES.PRODUCT_INVALID_DATA,\n PAYMENT_PRODUCT_PROVIDER_ERROR: ERROR_CODES.PRODUCT_PROVIDER_ERROR,\n PAYMENT_PRODUCT_ALREADY_INACTIVE: ERROR_CODES.PRODUCT_ALREADY_INACTIVE,\n PAYMENT_PRODUCT_SYNC_FAILED: ERROR_CODES.PRODUCT_SYNC_FAILED,\n\n // Pricing\n PAYMENT_PRICING_CREATE_UNSUPPORTED: ERROR_CODES.PRICING_CREATE_UNSUPPORTED,\n PAYMENT_PRICING_UPDATE_UNSUPPORTED: ERROR_CODES.PRICING_UPDATE_UNSUPPORTED,\n PAYMENT_PRICING_DEACTIVATE_UNSUPPORTED: ERROR_CODES.PRICING_DEACTIVATE_UNSUPPORTED,\n\n PAYMENT_PRICING_NOT_FOUND: ERROR_CODES.PRICING_NOT_FOUND,\n PAYMENT_PRICING_INVALID_AMOUNT: ERROR_CODES.PRICING_INVALID_AMOUNT,\n PAYMENT_PRICING_INVALID_CURRENCY: ERROR_CODES.PRICING_INVALID_CURRENCY,\n PAYMENT_PRICING_PROVIDER_ERROR: ERROR_CODES.PRICING_PROVIDER_ERROR,\n PAYMENT_PRICING_ALREADY_INACTIVE: ERROR_CODES.PRICING_ALREADY_INACTIVE,\n PAYMENT_PRICING_SYNC_FAILED: ERROR_CODES.PRICING_SYNC_FAILED,\n PAYMENT_PRICING_REQUIRES_NEW_VERSION: ERROR_CODES.PRICING_REQUIRES_NEW_VERSION,\n} as const;\n\n/** Database-specific error codes\n * Subset of ERROR_CODES for database operations\n */\nexport const DATABASE_ERROR_CODES = {\n ACCESS_DENIED: ERROR_CODES.DB_ACCESS_DENIED,\n CONFIG_REQUIRED: ERROR_CODES.DB_CONFIG_REQUIRED,\n CONNECT_FAILED: ERROR_CODES.DB_CONNECT_FAILED,\n DISCONNECT_FAILED: ERROR_CODES.DB_DISCONNECT_FAILED,\n INIT_FAILED: ERROR_CODES.DB_INIT_FAILED,\n QUERY_FAILED: ERROR_CODES.DB_QUERY_FAILED,\n BUILD_WHERE_FAILED: ERROR_CODES.DB_BUILD_WHERE_FAILED,\n INVALID_SQL: ERROR_CODES.DB_INVALID_SQL,\n TRANSACTION_FAILED: ERROR_CODES.DB_TRANSACTION_FAILED,\n UNSUPPORTED_OPERATOR: ERROR_CODES.DB_UNSUPPORTED_OPERATOR,\n CREATE_FAILED: ERROR_CODES.DB_CREATE_FAILED,\n CREATION_FAILED: ERROR_CODES.DB_CREATION_FAILED,\n FETCH_FAILED: ERROR_CODES.DB_FETCH_FAILED,\n FIND_FAILED: ERROR_CODES.DB_FIND_FAILED,\n FIND_MANY_FAILED: ERROR_CODES.DB_FIND_MANY_FAILED,\n FIND_BY_ID_FAILED: ERROR_CODES.DB_FIND_BY_ID_FAILED,\n UPDATE_FAILED: ERROR_CODES.DB_UPDATE_FAILED,\n UPDATE_NO_CHANGES: ERROR_CODES.DB_UPDATE_NO_CHANGES,\n DELETE_FAILED: ERROR_CODES.DB_DELETE_FAILED,\n INSERT_FAILED: ERROR_CODES.DB_INSERT_FAILED,\n RECORD_NOT_FOUND: ERROR_CODES.DB_RECORD_NOT_FOUND,\n EXISTS_FAILED: ERROR_CODES.DB_EXISTS_FAILED,\n COLUMN_NOT_EXISTS: ERROR_CODES.DB_COLUMN_NOT_EXISTS,\n TABLE_NOT_REGISTERED: ERROR_CODES.DB_TABLE_NOT_REGISTERED,\n TABLE_REGISTRATION_FAILED: ERROR_CODES.DB_TABLE_REGISTRATION_FAILED,\n ID_COLUMN_NOT_REGISTERED: ERROR_CODES.DB_ID_COLUMN_NOT_REGISTERED,\n INVALID_COLUMN: ERROR_CODES.DB_INVALID_COLUMN,\n INVALID_TABLE_NAME: ERROR_CODES.DB_INVALID_TABLE_NAME,\n GET_ID_COLUMN_FAILED: ERROR_CODES.DB_GET_ID_COLUMN_FAILED,\n GET_TABLE_FAILED: ERROR_CODES.DB_GET_TABLE_FAILED,\n INVALID_PARAMETERS: ERROR_CODES.DB_INVALID_PARAMETERS,\n INVALID_PARAMS: ERROR_CODES.DB_INVALID_PARAMS,\n INVALID_FILTER: ERROR_CODES.DB_INVALID_FILTER,\n INVALID_ID: ERROR_CODES.DB_INVALID_ID,\n INVALID_ENTITY: ERROR_CODES.DB_INVALID_ENTITY,\n INVALID_UPDATE_PARAMS: ERROR_CODES.DB_INVALID_UPDATE_PARAMS,\n INVALID_FIELD_NAME: ERROR_CODES.DB_INVALID_FIELD_NAME,\n INVALID_RESULT: ERROR_CODES.DB_INVALID_RESULT,\n NO_UPDATE_FIELDS: ERROR_CODES.DB_NO_UPDATE_FIELDS,\n COUNT_FAILED: ERROR_CODES.DB_COUNT_FAILED,\n COUNT_NO_RESULTS: ERROR_CODES.DB_COUNT_NO_RESULTS,\n NO_DATA: ERROR_CODES.DB_NO_DATA,\n NO_TENANT_CONTEXT: ERROR_CODES.DB_NO_TENANT_CONTEXT,\n NO_TENANT_ID: ERROR_CODES.DB_NO_TENANT_ID,\n TENANT_VALIDATION_FAILED: ERROR_CODES.DB_TENANT_VALIDATION_FAILED,\n BACKUP_CLEANUP_FAILED: ERROR_CODES.DB_BACKUP_CLEANUP_FAILED,\n BACKUP_FILE_NOT_FOUND: ERROR_CODES.DB_BACKUP_FILE_NOT_FOUND,\n LIST_BACKUPS_FAILED: ERROR_CODES.DB_LIST_BACKUPS_FAILED,\n INVALID_BACKUP_INFO: ERROR_CODES.DB_INVALID_BACKUP_INFO,\n RESTORE_FAILED: ERROR_CODES.DB_RESTORE_FAILED,\n CACHE_DELETE_FAILED: ERROR_CODES.DB_CACHE_DELETE_FAILED,\n CACHE_HEALTH_CHECK_FAILED: ERROR_CODES.DB_CACHE_HEALTH_CHECK_FAILED,\n CACHE_INVALIDATE_FAILED: ERROR_CODES.DB_CACHE_INVALIDATE_FAILED,\n CACHE_SET_FAILED: ERROR_CODES.DB_CACHE_SET_FAILED,\n CACHE_GET_FAILED: ERROR_CODES.DB_CACHE_GET_FAILED,\n INVALID_FILEPATH: ERROR_CODES.DB_INVALID_FILEPATH,\n S3_DELETE_FAILED: ERROR_CODES.DB_S3_DELETE_FAILED,\n S3_DOWNLOAD_FAILED: ERROR_CODES.DB_S3_DOWNLOAD_FAILED,\n S3_NOT_CONFIGURED: ERROR_CODES.DB_S3_NOT_CONFIGURED,\n S3_UPLOAD_FAILED: ERROR_CODES.DB_S3_UPLOAD_FAILED,\n SCHEDULE_SETUP_FAILED: ERROR_CODES.DB_SCHEDULE_SETUP_FAILED,\n DECRYPTION_FAILED: ERROR_CODES.DB_DECRYPTION_FAILED,\n INVALID_SHELL_ARG: ERROR_CODES.DB_INVALID_SHELL_ARG,\n INVALID_BETWEEN_OPERATOR: ERROR_CODES.DB_INVALID_BETWEEN_OPERATOR,\n INVALID_IN_OPERATOR: ERROR_CODES.DB_INVALID_IN_OPERATOR,\n INVALID_COUNT: ERROR_CODES.DB_INVALID_COUNT,\n CONNECTION_FAILED: ERROR_CODES.DB_CONNECTION_FAILED,\n CONNECTION_ERROR: ERROR_CODES.DB_CONNECTION_ERROR,\n CONSTRAINT_VIOLATION: ERROR_CODES.DB_CONSTRAINT_VIOLATION,\n TIMEOUT: ERROR_CODES.DB_TIMEOUT,\n DEADLOCK: ERROR_CODES.DB_DEADLOCK,\n ENTITY_NOT_FOUND: ERROR_CODES.DB_ENTITY_NOT_FOUND,\n DUPLICATE_ENTRY: ERROR_CODES.DB_DUPLICATE_ENTRY,\n MIGRATION_FAILED: ERROR_CODES.DB_MIGRATION_FAILED,\n MULTI_WRITE_FAILED: ERROR_CODES.DB_MULTI_WRITE_FAILED,\n NOT_FOUND: ERROR_CODES.DB_RECORD_NOT_FOUND,\n UNKNOWN_ERROR: ERROR_CODES.DB_UNKNOWN_ERROR,\n} as const;\n\nexport type ApiErrorCodeValue =\n | (typeof API_ERROR_CODES)[keyof typeof API_ERROR_CODES]\n | `HTTP_${number}`;\nexport type NotificationErrorCodeValue =\n (typeof NOTIFICATION_ERROR_CODES)[keyof typeof NOTIFICATION_ERROR_CODES];\n\nexport type StorageErrorCode = (typeof STORAGE_ERROR_CODES)[keyof typeof STORAGE_ERROR_CODES];\n\nexport type DatabaseErrorCodeValue =\n (typeof DATABASE_ERROR_CODES)[keyof typeof DATABASE_ERROR_CODES];\n\nexport type CoreErrorCodeValue = (typeof CORE_ERROR_CODES)[keyof typeof CORE_ERROR_CODES];\n\nexport type PaymentErrorCodeValue = (typeof PAYMENT_ERROR_CODES)[keyof typeof PAYMENT_ERROR_CODES];\n\n/**\n * Unified ERROR_DEFINITIONS\n * Single source of truth for ALL error definitions across all @plyaz packages\n *\n * Combines:\n * - API error definitions (basic: code, status, category, fieldsLeft)\n * - Notification error definitions (extended: includes severity, retryable, userMessage)\n *\n * All packages can access ANY error definition for cross-package error handling\n */\nexport const ERROR_DEFINITIONS: ErrorDefinitions = {\n // ===== Generic/Common Error Definitions =====\n [ERROR_CODES.NOT_IMPLEMENTED]: {\n code: ERROR_CODES.NOT_IMPLEMENTED,\n status: HTTP_STATUS.NOT_IMPLEMENTED,\n category: ERROR_CATEGORY.System,\n userMessage: 'errors.not_implemented',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.PROVIDER_NOT_IMPLEMENTED]: {\n code: ERROR_CODES.PROVIDER_NOT_IMPLEMENTED,\n status: HTTP_STATUS.NOT_IMPLEMENTED,\n category: ERROR_CATEGORY.System,\n userMessage: 'errors.provider.not_implemented',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.FEATURE_NOT_SUPPORTED]: {\n code: ERROR_CODES.FEATURE_NOT_SUPPORTED,\n status: HTTP_STATUS.NOT_IMPLEMENTED,\n category: ERROR_CATEGORY.System,\n userMessage: 'errors.feature.not_supported',\n severity: ERROR_SEVERITY.Low,\n retryable: false,\n },\n\n // ===== API Package Error Definitions =====\n // Authentication\n [ERROR_CODES.AUTH_UNAUTHORIZED]: {\n code: ERROR_CODES.AUTH_UNAUTHORIZED,\n status: HTTP_STATUS.UNAUTHORIZED,\n category: ERROR_CATEGORY.Authentication,\n userMessage: 'errors.auth.unauthorized',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.AUTH_FORBIDDEN]: {\n code: ERROR_CODES.AUTH_FORBIDDEN,\n status: HTTP_STATUS.FORBIDDEN,\n category: ERROR_CATEGORY.Authorization,\n userMessage: 'errors.auth.forbidden',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n // Rate Limiting\n [ERROR_CODES.RATE_LIMIT_EXCEEDED]: {\n code: ERROR_CODES.RATE_LIMIT_EXCEEDED,\n status: HTTP_STATUS.TOO_MANY_REQUESTS,\n category: ERROR_CATEGORY.RateLimit,\n userMessage: 'errors.rate_limit.exceeded',\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n },\n\n // Resources\n [ERROR_CODES.RESOURCE_NOT_FOUND]: {\n code: ERROR_CODES.RESOURCE_NOT_FOUND,\n status: HTTP_STATUS.NOT_FOUND,\n category: ERROR_CATEGORY.NotFound,\n userMessage: 'errors.resource.not_found',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.RESOURCE_CONFLICT]: {\n code: ERROR_CODES.RESOURCE_CONFLICT,\n status: HTTP_STATUS.CONFLICT,\n category: ERROR_CATEGORY.Conflict,\n userMessage: 'errors.resource.conflict',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n // Validation\n [ERROR_CODES.API_VALIDATION_FAILED]: {\n code: ERROR_CODES.API_VALIDATION_FAILED,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'errors.validation.failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.API_INVALID_INPUT]: {\n code: ERROR_CODES.API_INVALID_INPUT,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'errors.validation.invalid_input',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.VALIDATION_ERROR]: {\n code: ERROR_CODES.VALIDATION_ERROR,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'errors.validation.error',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.REQUIRED_FIELD_MISSING]: {\n code: ERROR_CODES.REQUIRED_FIELD_MISSING,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'errors.validation.required_field_missing',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.INVALID_FORMAT]: {\n code: ERROR_CODES.INVALID_FORMAT,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'errors.validation.invalid_format',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.VALIDATION_INVALID_FORMAT]: {\n code: ERROR_CODES.VALIDATION_INVALID_FORMAT,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'errors.validation.invalid_format',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.STRING_TOO_SHORT]: {\n code: ERROR_CODES.STRING_TOO_SHORT,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'errors.validation.string_too_short',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.STRING_TOO_LONG]: {\n code: ERROR_CODES.STRING_TOO_LONG,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'errors.validation.string_too_long',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n // Network\n [ERROR_CODES.NETWORK_ERROR]: {\n code: ERROR_CODES.NETWORK_ERROR,\n status: HTTP_STATUS.BAD_GATEWAY,\n category: ERROR_CATEGORY.Network,\n userMessage: 'errors.network.error',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n [ERROR_CODES.CONNECTION_FAILED]: {\n code: ERROR_CODES.CONNECTION_FAILED,\n status: 0,\n category: ERROR_CATEGORY.Network,\n userMessage: 'errors.network.connection_failed',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n [ERROR_CODES.NETWORK_CONNECTION_FAILED]: {\n code: ERROR_CODES.NETWORK_CONNECTION_FAILED,\n status: 0,\n category: ERROR_CATEGORY.Network,\n userMessage: 'errors.network.connection_failed',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n [ERROR_CODES.NETWORK_OFFLINE]: {\n code: ERROR_CODES.NETWORK_OFFLINE,\n status: 0,\n category: ERROR_CATEGORY.Network,\n userMessage: 'errors.network.offline',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n [ERROR_CODES.NETWORK_DNS_FAILED]: {\n code: ERROR_CODES.NETWORK_DNS_FAILED,\n status: 0,\n category: ERROR_CATEGORY.Network,\n userMessage: 'errors.network.dns_failed',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n [ERROR_CODES.NETWORK_TIMEOUT]: {\n code: ERROR_CODES.NETWORK_TIMEOUT,\n status: 0,\n category: ERROR_CATEGORY.Network,\n userMessage: 'errors.network.timeout',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n [ERROR_CODES.NETWORK_CONFIGURATION_INVALID]: {\n code: ERROR_CODES.NETWORK_CONFIGURATION_INVALID,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Configuration,\n userMessage: 'errors.network.configuration_invalid',\n severity: ERROR_SEVERITY.Critical,\n retryable: true,\n },\n [ERROR_CODES.NETWORK_PRESET_NOT_FOUND]: {\n code: ERROR_CODES.NETWORK_PRESET_NOT_FOUND,\n status: HTTP_STATUS.NOT_FOUND,\n category: ERROR_CATEGORY.Configuration,\n userMessage: 'errors.network.preset_not_found',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n\n // Server\n [ERROR_CODES.SERVER_ERROR]: {\n code: ERROR_CODES.SERVER_ERROR,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Server,\n userMessage: 'errors.server.error',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n [ERROR_CODES.INTERNAL_SERVER_ERROR]: {\n code: ERROR_CODES.INTERNAL_SERVER_ERROR,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Server,\n userMessage: 'errors.server.internal_error',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n [ERROR_CODES.SERVICE_UNAVAILABLE]: {\n code: ERROR_CODES.SERVICE_UNAVAILABLE,\n status: HTTP_STATUS.SERVICE_UNAVAILABLE,\n category: ERROR_CATEGORY.Server,\n userMessage: 'errors.server.service_unavailable',\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n },\n\n // Cache\n [ERROR_CODES.CACHE_READ_FAILED]: {\n code: ERROR_CODES.CACHE_READ_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Cache,\n userMessage: 'errors.cache.read_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.CACHE_WRITE_FAILED]: {\n code: ERROR_CODES.CACHE_WRITE_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Cache,\n userMessage: 'errors.cache.write_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.CACHE_INVALIDATION_FAILED]: {\n code: ERROR_CODES.CACHE_INVALIDATION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Cache,\n userMessage: 'errors.cache.invalidation_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.CACHE_STORAGE_FAILED]: {\n code: ERROR_CODES.CACHE_STORAGE_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Cache,\n userMessage: 'errors.cache.storage_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.CACHE_RETRIEVAL_FAILED]: {\n code: ERROR_CODES.CACHE_RETRIEVAL_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Cache,\n userMessage: 'errors.cache.retrieval_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n // Retry\n [ERROR_CODES.RETRY_LIMIT_EXCEEDED]: {\n code: ERROR_CODES.RETRY_LIMIT_EXCEEDED,\n status: HTTP_STATUS.SERVICE_UNAVAILABLE,\n category: ERROR_CATEGORY.Retry,\n userMessage: 'errors.retry.limit_exceeded',\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n },\n [ERROR_CODES.RETRY_FAILED]: {\n code: ERROR_CODES.RETRY_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Retry,\n userMessage: 'errors.retry.failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n },\n [ERROR_CODES.RETRY_EXHAUSTED]: {\n code: ERROR_CODES.RETRY_EXHAUSTED,\n status: HTTP_STATUS.SERVICE_UNAVAILABLE,\n category: ERROR_CATEGORY.Retry,\n userMessage: 'errors.retry.exhausted',\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n },\n [ERROR_CODES.RETRY_STRATEGY_INVALID]: {\n code: ERROR_CODES.RETRY_STRATEGY_INVALID,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Configuration,\n userMessage: 'errors.retry.strategy_invalid',\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n },\n\n // Strategy\n [ERROR_CODES.STRATEGY_INVALID]: {\n code: ERROR_CODES.STRATEGY_INVALID,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Configuration,\n userMessage: 'errors.strategy.invalid',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.STRATEGY_CONFLICT]: {\n code: ERROR_CODES.STRATEGY_CONFLICT,\n status: HTTP_STATUS.CONFLICT,\n category: ERROR_CATEGORY.Configuration,\n userMessage: 'errors.strategy.conflict',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.STRATEGY_EXECUTION_FAILED]: {\n code: ERROR_CODES.STRATEGY_EXECUTION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Configuration,\n userMessage: 'errors.strategy.execution_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n // Headers\n [ERROR_CODES.HEADERS_ENRICHMENT_FAILED]: {\n code: ERROR_CODES.HEADERS_ENRICHMENT_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Headers,\n userMessage: 'errors.headers.enrichment_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.HEADERS_VALIDATION_FAILED]: {\n code: ERROR_CODES.HEADERS_VALIDATION_FAILED,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Headers,\n userMessage: 'errors.headers.validation_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.HEADERS_MERGE_CONFLICT]: {\n code: ERROR_CODES.HEADERS_MERGE_CONFLICT,\n status: HTTP_STATUS.CONFLICT,\n category: ERROR_CATEGORY.Headers,\n userMessage: 'errors.headers.merge_conflict',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n // Regional\n [ERROR_CODES.REGION_DETECTION_FAILED]: {\n code: ERROR_CODES.REGION_DETECTION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Network,\n userMessage: 'errors.regional.detection_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.REGIONAL_PRESET_NOT_FOUND]: {\n code: ERROR_CODES.REGIONAL_PRESET_NOT_FOUND,\n status: HTTP_STATUS.NOT_FOUND,\n category: ERROR_CATEGORY.Configuration,\n userMessage: 'errors.regional.preset_not_found',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n // External Services\n [ERROR_CODES.EXTERNAL_SERVICE_ERROR]: {\n code: ERROR_CODES.EXTERNAL_SERVICE_ERROR,\n status: HTTP_STATUS.BAD_GATEWAY,\n category: ERROR_CATEGORY.Server,\n userMessage: 'errors.external.service_error',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n // Timeout\n [ERROR_CODES.TIMEOUT]: {\n code: ERROR_CODES.TIMEOUT,\n status: HTTP_STATUS.REQUEST_TIMEOUT,\n category: ERROR_CATEGORY.Timeout,\n userMessage: 'errors.timeout.generic',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n\n // Debugging\n [ERROR_CODES.DEBUG_TRACKING_FAILED]: {\n code: ERROR_CODES.DEBUG_TRACKING_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Client,\n userMessage: 'errors.debug.tracking_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.DEBUG_OVERRIDE_FAILED]: {\n code: ERROR_CODES.DEBUG_OVERRIDE_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Configuration,\n userMessage: 'errors.debug.override_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.DEBUG_CONFLICT_DETECTED]: {\n code: ERROR_CODES.DEBUG_CONFLICT_DETECTED,\n status: HTTP_STATUS.CONFLICT,\n category: ERROR_CATEGORY.Configuration,\n userMessage: 'errors.debug.conflict_detected',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n // Endpoint\n [ERROR_CODES.ENDPOINT_BUILD_FAILED]: {\n code: ERROR_CODES.ENDPOINT_BUILD_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Configuration,\n userMessage: 'errors.endpoint.build_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.ENDPOINT_NOT_FOUND]: {\n code: ERROR_CODES.ENDPOINT_NOT_FOUND,\n status: HTTP_STATUS.NOT_FOUND,\n category: ERROR_CATEGORY.NotFound,\n userMessage: 'errors.endpoint.not_found',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.ENDPOINT_INVALID_CONFIG]: {\n code: ERROR_CODES.ENDPOINT_INVALID_CONFIG,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Configuration,\n userMessage: 'errors.endpoint.invalid_config',\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n },\n\n // Event\n [ERROR_CODES.EVENT_HANDLER_FAILED]: {\n code: ERROR_CODES.EVENT_HANDLER_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Client,\n userMessage: 'errors.event.handler_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.EVENT_EMISSION_FAILED]: {\n code: ERROR_CODES.EVENT_EMISSION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Client,\n userMessage: 'errors.event.emission_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.MONITORING_FAILED]: {\n code: ERROR_CODES.MONITORING_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Client,\n userMessage: 'errors.monitoring.failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n // Polling\n [ERROR_CODES.POLLING_CANCELLED]: {\n code: ERROR_CODES.POLLING_CANCELLED,\n status: 0,\n category: ERROR_CATEGORY.Client,\n userMessage: 'errors.polling.cancelled',\n severity: ERROR_SEVERITY.Low,\n retryable: false,\n },\n [ERROR_CODES.POLLING_TIMEOUT]: {\n code: ERROR_CODES.POLLING_TIMEOUT,\n status: HTTP_STATUS.REQUEST_TIMEOUT,\n category: ERROR_CATEGORY.Timeout,\n userMessage: 'errors.polling.timeout',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n [ERROR_CODES.POLLING_INVALID_CONFIG]: {\n code: ERROR_CODES.POLLING_INVALID_CONFIG,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Configuration,\n userMessage: 'errors.polling.invalid_config',\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n },\n\n // PubSub\n [ERROR_CODES.PUBSUB_SUBSCRIPTION_FAILED]: {\n code: ERROR_CODES.PUBSUB_SUBSCRIPTION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Client,\n userMessage: 'errors.pubsub.subscription_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.PUBSUB_PUBLICATION_FAILED]: {\n code: ERROR_CODES.PUBSUB_PUBLICATION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Client,\n userMessage: 'errors.pubsub.publication_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.PUBSUB_INVALID_TOPIC]: {\n code: ERROR_CODES.PUBSUB_INVALID_TOPIC,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'errors.pubsub.invalid_topic',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.PUBSUB_CHANNEL_ERROR]: {\n code: ERROR_CODES.PUBSUB_CHANNEL_ERROR,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Client,\n userMessage: 'errors.pubsub.channel_error',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n // Revalidation\n [ERROR_CODES.REVALIDATION_FAILED]: {\n code: ERROR_CODES.REVALIDATION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Cache,\n userMessage: 'errors.revalidation.failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.REVALIDATION_IN_PROGRESS]: {\n code: ERROR_CODES.REVALIDATION_IN_PROGRESS,\n status: HTTP_STATUS.CONFLICT,\n category: ERROR_CATEGORY.Cache,\n userMessage: 'errors.revalidation.in_progress',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n // Context\n [ERROR_CODES.CONTEXT_OPERATION_FAILED]: {\n code: ERROR_CODES.CONTEXT_OPERATION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Client,\n userMessage: 'errors.context.operation_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n // Request\n [ERROR_CODES.REQUEST_TIMEOUT]: {\n code: ERROR_CODES.REQUEST_TIMEOUT,\n status: HTTP_STATUS.REQUEST_TIMEOUT,\n category: ERROR_CATEGORY.Timeout,\n userMessage: 'errors.request.timeout',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n [ERROR_CODES.REQUEST_ABORTED]: {\n code: ERROR_CODES.REQUEST_ABORTED,\n status: 0,\n category: ERROR_CATEGORY.Client,\n userMessage: 'errors.request.aborted',\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n },\n [ERROR_CODES.REQUEST_INVALID_PARAMS]: {\n code: ERROR_CODES.REQUEST_INVALID_PARAMS,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'errors.request.invalid_params',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.REQUEST_PREPARATION_FAILED]: {\n code: ERROR_CODES.REQUEST_PREPARATION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Client,\n userMessage: 'errors.request.preparation_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n // Response\n [ERROR_CODES.RESPONSE_INVALID_FORMAT]: {\n code: ERROR_CODES.RESPONSE_INVALID_FORMAT,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Server,\n userMessage: 'errors.response.invalid_format',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.RESPONSE_PARSING_FAILED]: {\n code: ERROR_CODES.RESPONSE_PARSING_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Server,\n userMessage: 'errors.response.parsing_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n // Client\n [ERROR_CODES.CLIENT_ERROR]: {\n code: ERROR_CODES.CLIENT_ERROR,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Client,\n userMessage: 'errors.client.error',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.CLIENT_INITIALIZATION_FAILED]: {\n code: ERROR_CODES.CLIENT_INITIALIZATION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Client,\n userMessage: 'errors.client.initialization_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.CLIENT_INVALID_CONFIG]: {\n code: ERROR_CODES.CLIENT_INVALID_CONFIG,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Client,\n userMessage: 'errors.client.invalid_config',\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n },\n [ERROR_CODES.CLIENT_MISSING_BASE_URL]: {\n code: ERROR_CODES.CLIENT_MISSING_BASE_URL,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Configuration,\n userMessage: 'errors.client.missing_base_url',\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n },\n [ERROR_CODES.CLIENT_CANCELLED]: {\n code: ERROR_CODES.CLIENT_CANCELLED,\n status: 0,\n category: ERROR_CATEGORY.Client,\n userMessage: 'errors.client.cancelled',\n severity: ERROR_SEVERITY.Low,\n retryable: true,\n },\n\n // Configuration\n [ERROR_CODES.CONFIG_VALIDATION_FAILED]: {\n code: ERROR_CODES.CONFIG_VALIDATION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Configuration,\n userMessage: 'errors.config.validation_failed',\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n },\n [ERROR_CODES.HEADER_PROCESSING_FAILED]: {\n code: ERROR_CODES.HEADER_PROCESSING_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Headers,\n userMessage: 'errors.headers.processing_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.NETWORK_OVERRIDE_FAILED]: {\n code: ERROR_CODES.NETWORK_OVERRIDE_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Network,\n userMessage: 'errors.network.override_failed',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n\n // Generic\n [ERROR_CODES.UNKNOWN_ERROR]: {\n code: ERROR_CODES.UNKNOWN_ERROR,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Unknown,\n userMessage: 'errors.unknown',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n // ===== Notification Package Error Definitions =====\n // Provider errors (retryable)\n [ERROR_CODES.NOTIFICATION_PROVIDER_SEND_FAILED]: {\n code: ERROR_CODES.NOTIFICATION_PROVIDER_SEND_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Provider,\n severity: ERROR_SEVERITY.High,\n retryable: true,\n userMessage: 'errors.notification.provider.send_failed',\n },\n [ERROR_CODES.NOTIFICATION_PROVIDER_CONFIGURATION_INVALID]: {\n code: ERROR_CODES.NOTIFICATION_PROVIDER_CONFIGURATION_INVALID,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Configuration,\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n userMessage: 'errors.notification.provider.configuration_invalid',\n },\n [ERROR_CODES.NOTIFICATION_PROVIDER_RATE_LIMIT]: {\n code: ERROR_CODES.NOTIFICATION_PROVIDER_RATE_LIMIT,\n status: HTTP_STATUS.TOO_MANY_REQUESTS,\n category: ERROR_CATEGORY.RateLimit,\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n userMessage: 'errors.notification.provider.rate_limit',\n },\n [ERROR_CODES.NOTIFICATION_PROVIDER_AUTH_FAILED]: {\n code: ERROR_CODES.NOTIFICATION_PROVIDER_AUTH_FAILED,\n status: HTTP_STATUS.UNAUTHORIZED,\n category: ERROR_CATEGORY.Provider,\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n userMessage: 'errors.notification.provider.auth_failed',\n },\n [ERROR_CODES.NOTIFICATION_PROVIDER_TIMEOUT]: {\n code: ERROR_CODES.NOTIFICATION_PROVIDER_TIMEOUT,\n status: HTTP_STATUS.GATEWAY_TIMEOUT,\n category: ERROR_CATEGORY.Network,\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n userMessage: 'errors.notification.provider.timeout',\n },\n [ERROR_CODES.NOTIFICATION_PROVIDER_UNAVAILABLE]: {\n code: ERROR_CODES.NOTIFICATION_PROVIDER_UNAVAILABLE,\n status: HTTP_STATUS.SERVICE_UNAVAILABLE,\n category: ERROR_CATEGORY.Provider,\n severity: ERROR_SEVERITY.High,\n retryable: true,\n userMessage: 'errors.notification.provider.unavailable',\n },\n [ERROR_CODES.NOTIFICATION_PROVIDER_FEATURE_NOT_SUPPORTED]: {\n code: ERROR_CODES.NOTIFICATION_PROVIDER_FEATURE_NOT_SUPPORTED,\n status: HTTP_STATUS.NOT_IMPLEMENTED,\n category: ERROR_CATEGORY.Provider,\n severity: ERROR_SEVERITY.Low,\n retryable: false,\n userMessage: 'errors.notification.provider.feature_not_supported',\n },\n [ERROR_CODES.NOTIFICATION_ALL_PROVIDERS_FAILED]: {\n code: ERROR_CODES.NOTIFICATION_ALL_PROVIDERS_FAILED,\n status: HTTP_STATUS.SERVICE_UNAVAILABLE,\n category: ERROR_CATEGORY.Provider,\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n userMessage: 'errors.notification.all_providers_failed',\n },\n\n // Validation errors (non-retryable)\n [ERROR_CODES.NOTIFICATION_INVALID_INPUT]: {\n code: ERROR_CODES.NOTIFICATION_INVALID_INPUT,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n userMessage: 'errors.notification.validation.invalid_input',\n },\n [ERROR_CODES.NOTIFICATION_INVALID_RECIPIENT]: {\n code: ERROR_CODES.NOTIFICATION_INVALID_RECIPIENT,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n userMessage: 'errors.notification.validation.invalid_recipient',\n },\n [ERROR_CODES.NOTIFICATION_INVALID_TEMPLATE]: {\n code: ERROR_CODES.NOTIFICATION_INVALID_TEMPLATE,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Template,\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n userMessage: 'errors.notification.validation.invalid_template',\n },\n [ERROR_CODES.NOTIFICATION_INVALID_PAYLOAD]: {\n code: ERROR_CODES.NOTIFICATION_INVALID_PAYLOAD,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n userMessage: 'errors.notification.validation.invalid_payload',\n },\n [ERROR_CODES.NOTIFICATION_MISSING_REQUIRED_FIELD]: {\n code: ERROR_CODES.NOTIFICATION_MISSING_REQUIRED_FIELD,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n userMessage: 'errors.notification.validation.required_field_missing',\n },\n [ERROR_CODES.NOTIFICATION_VALIDATION_FAILED]: {\n code: ERROR_CODES.NOTIFICATION_VALIDATION_FAILED,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n userMessage: 'errors.notification.validation.failed',\n },\n\n // User Preferences\n [ERROR_CODES.NOTIFICATION_USER_OPTED_OUT]: {\n code: ERROR_CODES.NOTIFICATION_USER_OPTED_OUT,\n status: HTTP_STATUS.OK,\n category: ERROR_CATEGORY.Validation,\n severity: ERROR_SEVERITY.Low,\n retryable: false,\n userMessage: 'errors.notification.user.opted_out',\n },\n\n // Queue errors (retryable)\n [ERROR_CODES.NOTIFICATION_QUEUE_FULL]: {\n code: ERROR_CODES.NOTIFICATION_QUEUE_FULL,\n status: HTTP_STATUS.SERVICE_UNAVAILABLE,\n category: ERROR_CATEGORY.Queue,\n severity: ERROR_SEVERITY.High,\n retryable: true,\n userMessage: 'errors.notification.queue.full',\n },\n [ERROR_CODES.NOTIFICATION_QUEUE_PROCESSING_FAILED]: {\n code: ERROR_CODES.NOTIFICATION_QUEUE_PROCESSING_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Queue,\n severity: ERROR_SEVERITY.High,\n retryable: true,\n userMessage: 'errors.notification.queue.processing_failed',\n },\n\n // Webhook errors\n [ERROR_CODES.NOTIFICATION_WEBHOOK_SIGNATURE_INVALID]: {\n code: ERROR_CODES.NOTIFICATION_WEBHOOK_SIGNATURE_INVALID,\n status: HTTP_STATUS.UNAUTHORIZED,\n category: ERROR_CATEGORY.Webhook,\n severity: ERROR_SEVERITY.High,\n retryable: false,\n userMessage: 'errors.notification.webhook.signature_invalid',\n },\n [ERROR_CODES.NOTIFICATION_WEBHOOK_VALIDATION_FAILED]: {\n code: ERROR_CODES.NOTIFICATION_WEBHOOK_VALIDATION_FAILED,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Webhook,\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n userMessage: 'errors.notification.webhook.validation_failed',\n },\n [ERROR_CODES.NOTIFICATION_WEBHOOK_PROCESSING_FAILED]: {\n code: ERROR_CODES.NOTIFICATION_WEBHOOK_PROCESSING_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Webhook,\n severity: ERROR_SEVERITY.High,\n retryable: true,\n userMessage: 'errors.notification.webhook.processing_failed',\n },\n\n // Template errors\n [ERROR_CODES.NOTIFICATION_TEMPLATE_NOT_FOUND]: {\n code: ERROR_CODES.NOTIFICATION_TEMPLATE_NOT_FOUND,\n status: HTTP_STATUS.NOT_FOUND,\n category: ERROR_CATEGORY.Template,\n severity: ERROR_SEVERITY.High,\n retryable: false,\n userMessage: 'errors.notification.template.not_found',\n },\n [ERROR_CODES.NOTIFICATION_TEMPLATE_RENDER_FAILED]: {\n code: ERROR_CODES.NOTIFICATION_TEMPLATE_RENDER_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Template,\n severity: ERROR_SEVERITY.High,\n retryable: false,\n userMessage: 'errors.notification.template.render_failed',\n },\n\n // General notification errors\n [ERROR_CODES.NOTIFICATION_UNKNOWN_ERROR]: {\n code: ERROR_CODES.NOTIFICATION_UNKNOWN_ERROR,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Unknown,\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n userMessage: 'errors.notification.unknown',\n },\n [ERROR_CODES.NOTIFICATION_INITIALIZATION_FAILED]: {\n code: ERROR_CODES.NOTIFICATION_INITIALIZATION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Configuration,\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n userMessage: 'errors.notification.initialization_failed',\n },\n\n // ===== Storage Package Error Definitions =====\n\n // General\n [ERROR_CODES.STORAGE_UNKNOWN_ERROR]: {\n code: ERROR_CODES.STORAGE_UNKNOWN_ERROR,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Unknown,\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n userMessage: 'errors.storage.unknown',\n },\n [ERROR_CODES.STORAGE_INITIALIZATION_FAILED]: {\n code: ERROR_CODES.STORAGE_INITIALIZATION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Configuration,\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n userMessage: 'errors.storage.initialization_failed',\n },\n\n // Adapter errors\n [ERROR_CODES.STORAGE_ADAPTER_NOT_FOUND]: {\n code: ERROR_CODES.STORAGE_ADAPTER_NOT_FOUND,\n status: HTTP_STATUS.NOT_FOUND,\n category: ERROR_CATEGORY.Configuration,\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n userMessage: 'errors.storage.adapter.not_found',\n },\n [ERROR_CODES.STORAGE_ADAPTER_INITIALIZATION_FAILED]: {\n code: ERROR_CODES.STORAGE_ADAPTER_INITIALIZATION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.ExternalService,\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n userMessage: 'errors.storage.adapter.initialization_failed',\n },\n [ERROR_CODES.STORAGE_ADAPTER_CONFIGURATION_INVALID]: {\n code: ERROR_CODES.STORAGE_ADAPTER_CONFIGURATION_INVALID,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Configuration,\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n userMessage: 'errors.storage.adapter.configuration_invalid',\n },\n [ERROR_CODES.STORAGE_ADAPTER_ALREADY_REGISTERED]: {\n code: ERROR_CODES.STORAGE_ADAPTER_ALREADY_REGISTERED,\n status: HTTP_STATUS.CONFLICT,\n category: ERROR_CATEGORY.Configuration,\n severity: ERROR_SEVERITY.High,\n retryable: false,\n userMessage: 'errors.storage.adapter.already_registered',\n },\n [ERROR_CODES.STORAGE_ADAPTER_CONNECTION_FAILED]: {\n code: ERROR_CODES.STORAGE_ADAPTER_CONNECTION_FAILED,\n status: HTTP_STATUS.SERVICE_UNAVAILABLE,\n category: ERROR_CATEGORY.Network,\n severity: ERROR_SEVERITY.High,\n retryable: true,\n userMessage: 'errors.storage.adapter.connection_failed',\n },\n [ERROR_CODES.STORAGE_ADAPTER_AUTHENTICATION_FAILED]: {\n code: ERROR_CODES.STORAGE_ADAPTER_AUTHENTICATION_FAILED,\n status: HTTP_STATUS.UNAUTHORIZED,\n category: ERROR_CATEGORY.Authentication,\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n userMessage: 'errors.storage.adapter.authentication_failed',\n },\n [ERROR_CODES.STORAGE_ADAPTER_OPERATION_FAILED]: {\n code: ERROR_CODES.STORAGE_ADAPTER_OPERATION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.ExternalService,\n severity: ERROR_SEVERITY.High,\n retryable: true,\n userMessage: 'errors.storage.adapter.operation_failed',\n },\n [ERROR_CODES.STORAGE_ADAPTER_HEALTH_CHECK_FAILED]: {\n code: ERROR_CODES.STORAGE_ADAPTER_HEALTH_CHECK_FAILED,\n status: HTTP_STATUS.SERVICE_UNAVAILABLE,\n category: ERROR_CATEGORY.ExternalService,\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n userMessage: 'errors.storage.adapter.health_check_failed',\n },\n [ERROR_CODES.STORAGE_ADAPTER_UNAVAILABLE]: {\n code: ERROR_CODES.STORAGE_ADAPTER_UNAVAILABLE,\n status: HTTP_STATUS.SERVICE_UNAVAILABLE,\n category: ERROR_CATEGORY.ExternalService,\n severity: ERROR_SEVERITY.High,\n retryable: true,\n userMessage: 'errors.storage.adapter.unavailable',\n },\n [ERROR_CODES.STORAGE_ADAPTER_TIMEOUT]: {\n code: ERROR_CODES.STORAGE_ADAPTER_TIMEOUT,\n status: HTTP_STATUS.GATEWAY_TIMEOUT,\n category: ERROR_CATEGORY.Timeout,\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n userMessage: 'errors.storage.adapter.timeout',\n },\n [ERROR_CODES.STORAGE_ADAPTER_RATE_LIMIT]: {\n code: ERROR_CODES.STORAGE_ADAPTER_RATE_LIMIT,\n status: HTTP_STATUS.TOO_MANY_REQUESTS,\n category: ERROR_CATEGORY.RateLimit,\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n userMessage: 'errors.storage.adapter.rate_limit',\n },\n [ERROR_CODES.STORAGE_ADAPTER_QUOTA_EXCEEDED]: {\n code: ERROR_CODES.STORAGE_ADAPTER_QUOTA_EXCEEDED,\n status: HTTP_STATUS.INSUFFICIENT_STORAGE,\n category: ERROR_CATEGORY.Quota,\n severity: ERROR_SEVERITY.High,\n retryable: false,\n userMessage: 'errors.storage.adapter.quota_exceeded',\n },\n [ERROR_CODES.STORAGE_ADAPTER_UNSUPPORTED_OPERATION]: {\n code: ERROR_CODES.STORAGE_ADAPTER_UNSUPPORTED_OPERATION,\n status: HTTP_STATUS.NOT_IMPLEMENTED,\n category: ERROR_CATEGORY.ExternalService,\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n userMessage: 'errors.storage.adapter.unsupported_operation',\n },\n [ERROR_CODES.STORAGE_ADAPTER_FEATURE_NOT_SUPPORTED]: {\n code: ERROR_CODES.STORAGE_ADAPTER_FEATURE_NOT_SUPPORTED,\n status: HTTP_STATUS.NOT_IMPLEMENTED,\n category: ERROR_CATEGORY.ExternalService,\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n userMessage: 'errors.storage.adapter.feature_not_supported',\n },\n [ERROR_CODES.STORAGE_NO_HEALTHY_ADAPTERS]: {\n code: ERROR_CODES.STORAGE_NO_HEALTHY_ADAPTERS,\n status: HTTP_STATUS.SERVICE_UNAVAILABLE,\n category: ERROR_CATEGORY.ExternalService,\n severity: ERROR_SEVERITY.Critical,\n retryable: true,\n userMessage: 'errors.storage.no_healthy_adapters',\n },\n [ERROR_CODES.STORAGE_ALL_ADAPTERS_FAILED]: {\n code: ERROR_CODES.STORAGE_ALL_ADAPTERS_FAILED,\n status: HTTP_STATUS.SERVICE_UNAVAILABLE,\n category: ERROR_CATEGORY.ExternalService,\n severity: ERROR_SEVERITY.Critical,\n retryable: true,\n userMessage: 'errors.storage.all_adapters_failed',\n },\n\n // File Validation\n [ERROR_CODES.STORAGE_FILE_TOO_LARGE]: {\n code: ERROR_CODES.STORAGE_FILE_TOO_LARGE,\n status: HTTP_STATUS.PAYLOAD_TOO_LARGE,\n category: ERROR_CATEGORY.Validation,\n severity: ERROR_SEVERITY.Low,\n retryable: false,\n userMessage: 'errors.storage.file.too_large',\n },\n [ERROR_CODES.STORAGE_FILE_TOO_SMALL]: {\n code: ERROR_CODES.STORAGE_FILE_TOO_SMALL,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n severity: ERROR_SEVERITY.Low,\n retryable: false,\n userMessage: 'errors.storage.file.too_small',\n },\n [ERROR_CODES.STORAGE_FILE_SIZE_INVALID]: {\n code: ERROR_CODES.STORAGE_FILE_SIZE_INVALID,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n severity: ERROR_SEVERITY.Low,\n retryable: false,\n userMessage: 'errors.storage.file.size.invalid',\n },\n [ERROR_CODES.STORAGE_FILE_TYPE_NOT_ALLOWED]: {\n code: ERROR_CODES.STORAGE_FILE_TYPE_NOT_ALLOWED,\n status: HTTP_STATUS.UNSUPPORTED_MEDIA_TYPE,\n category: ERROR_CATEGORY.Security,\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n userMessage: 'errors.storage.file.type.not_allowed',\n },\n [ERROR_CODES.STORAGE_INVALID_MIME_TYPE]: {\n code: ERROR_CODES.STORAGE_INVALID_MIME_TYPE,\n status: HTTP_STATUS.UNSUPPORTED_MEDIA_TYPE,\n category: ERROR_CATEGORY.Validation,\n severity: ERROR_SEVERITY.Low,\n retryable: false,\n userMessage: 'errors.storage.mime_type.invalid',\n },\n [ERROR_CODES.STORAGE_INVALID_FILE_EXTENSION]: {\n code: ERROR_CODES.STORAGE_INVALID_FILE_EXTENSION,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n severity: ERROR_SEVERITY.Low,\n retryable: false,\n userMessage: 'errors.storage.extension.invalid',\n },\n [ERROR_CODES.STORAGE_FILE_EXTENSION_INVALID]: {\n code: ERROR_CODES.STORAGE_FILE_EXTENSION_INVALID,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n severity: ERROR_SEVERITY.Low,\n retryable: false,\n userMessage: 'errors.storage.file.extension.invalid',\n },\n [ERROR_CODES.STORAGE_FILE_EXTENSION_MISMATCH]: {\n code: ERROR_CODES.STORAGE_FILE_EXTENSION_MISMATCH,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n userMessage: 'errors.storage.file.extension.mismatch',\n },\n [ERROR_CODES.STORAGE_EXECUTABLE_NOT_ALLOWED]: {\n code: ERROR_CODES.STORAGE_EXECUTABLE_NOT_ALLOWED,\n status: HTTP_STATUS.FORBIDDEN,\n category: ERROR_CATEGORY.Security,\n severity: ERROR_SEVERITY.High,\n retryable: false,\n userMessage: 'errors.storage.executable_not_allowed',\n },\n [ERROR_CODES.STORAGE_VALIDATION_FAILED]: {\n code: ERROR_CODES.STORAGE_VALIDATION_FAILED,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n severity: ERROR_SEVERITY.Low,\n retryable: false,\n userMessage: 'errors.storage.validation.failed',\n },\n [ERROR_CODES.STORAGE_INVALID_FILE_CONTENT]: {\n code: ERROR_CODES.STORAGE_INVALID_FILE_CONTENT,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n userMessage: 'errors.storage.validation.invalid_file_content',\n },\n\n // Security\n [ERROR_CODES.STORAGE_SECURITY_VIRUS_DETECTED]: {\n code: ERROR_CODES.STORAGE_SECURITY_VIRUS_DETECTED,\n status: HTTP_STATUS.FORBIDDEN,\n category: ERROR_CATEGORY.Security,\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n userMessage: 'errors.storage.security.virus_detected',\n },\n [ERROR_CODES.STORAGE_SECURITY_SCAN_FAILED]: {\n code: ERROR_CODES.STORAGE_SECURITY_SCAN_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Security,\n severity: ERROR_SEVERITY.High,\n retryable: true,\n userMessage: 'errors.storage.security.scan_failed',\n },\n [ERROR_CODES.STORAGE_SECURITY_ACCESS_DENIED]: {\n code: ERROR_CODES.STORAGE_SECURITY_ACCESS_DENIED,\n status: HTTP_STATUS.FORBIDDEN,\n category: ERROR_CATEGORY.Authorization,\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n userMessage: 'errors.storage.security.access_denied',\n },\n [ERROR_CODES.STORAGE_SECURITY_ENCRYPTION_FAILED]: {\n code: ERROR_CODES.STORAGE_SECURITY_ENCRYPTION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Security,\n severity: ERROR_SEVERITY.High,\n retryable: true,\n userMessage: 'errors.storage.security.encryption_failed',\n },\n\n // File Operations\n [ERROR_CODES.STORAGE_FILE_UPLOAD_FAILED]: {\n code: ERROR_CODES.STORAGE_FILE_UPLOAD_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.FileOperation,\n severity: ERROR_SEVERITY.High,\n retryable: true,\n userMessage: 'errors.storage.file.upload_failed',\n },\n [ERROR_CODES.STORAGE_FILE_DOWNLOAD_FAILED]: {\n code: ERROR_CODES.STORAGE_FILE_DOWNLOAD_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.FileOperation,\n severity: ERROR_SEVERITY.High,\n retryable: true,\n userMessage: 'errors.storage.file.download_failed',\n },\n [ERROR_CODES.STORAGE_FILE_DELETE_FAILED]: {\n code: ERROR_CODES.STORAGE_FILE_DELETE_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.FileOperation,\n severity: ERROR_SEVERITY.High,\n retryable: true,\n userMessage: 'errors.storage.file.delete_failed',\n },\n [ERROR_CODES.STORAGE_FILE_UPDATE_FAILED]: {\n code: ERROR_CODES.STORAGE_FILE_UPDATE_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.FileOperation,\n severity: ERROR_SEVERITY.High,\n retryable: true,\n userMessage: 'errors.storage.file.update_failed',\n },\n [ERROR_CODES.STORAGE_FILE_NOT_FOUND]: {\n code: ERROR_CODES.STORAGE_FILE_NOT_FOUND,\n status: HTTP_STATUS.NOT_FOUND,\n category: ERROR_CATEGORY.NotFound,\n severity: ERROR_SEVERITY.Low,\n retryable: false,\n userMessage: 'errors.storage.file.not_found',\n },\n [ERROR_CODES.STORAGE_FILE_ALREADY_EXISTS]: {\n code: ERROR_CODES.STORAGE_FILE_ALREADY_EXISTS,\n status: HTTP_STATUS.CONFLICT,\n category: ERROR_CATEGORY.Conflict,\n severity: ERROR_SEVERITY.Low,\n retryable: false,\n userMessage: 'errors.storage.file.already_exists',\n },\n [ERROR_CODES.STORAGE_FILE_MOVE_FAILED]: {\n code: ERROR_CODES.STORAGE_FILE_MOVE_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.FileOperation,\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n userMessage: 'errors.storage.file.move_failed',\n },\n [ERROR_CODES.STORAGE_FILE_COPY_FAILED]: {\n code: ERROR_CODES.STORAGE_FILE_COPY_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.FileOperation,\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n userMessage: 'errors.storage.file.copy_failed',\n },\n [ERROR_CODES.STORAGE_FILE_READ_FAILED]: {\n code: ERROR_CODES.STORAGE_FILE_READ_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.FileOperation,\n severity: ERROR_SEVERITY.High,\n retryable: true,\n userMessage: 'errors.storage.file.read_failed',\n },\n [ERROR_CODES.STORAGE_FILE_WRITE_FAILED]: {\n code: ERROR_CODES.STORAGE_FILE_WRITE_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.FileOperation,\n severity: ERROR_SEVERITY.High,\n retryable: true,\n userMessage: 'errors.storage.file.write_failed',\n },\n [ERROR_CODES.STORAGE_FILE_CORRUPTED]: {\n code: ERROR_CODES.STORAGE_FILE_CORRUPTED,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n userMessage: 'errors.storage.file.corrupted',\n },\n [ERROR_CODES.STORAGE_INVALID_OPERATION]: {\n code: ERROR_CODES.STORAGE_INVALID_OPERATION,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n severity: ERROR_SEVERITY.Low,\n retryable: false,\n userMessage: 'errors.storage.invalid_operation',\n },\n\n // Metadata\n [ERROR_CODES.STORAGE_METADATA_EXTRACTION_FAILED]: {\n code: ERROR_CODES.STORAGE_METADATA_EXTRACTION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Processing,\n severity: ERROR_SEVERITY.Low,\n retryable: true,\n userMessage: 'errors.storage.metadata.extraction_failed',\n },\n [ERROR_CODES.STORAGE_METADATA_INVALID]: {\n code: ERROR_CODES.STORAGE_METADATA_INVALID,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n severity: ERROR_SEVERITY.Low,\n retryable: false,\n userMessage: 'errors.storage.metadata.invalid',\n },\n [ERROR_CODES.STORAGE_METADATA_UPDATE_FAILED]: {\n code: ERROR_CODES.STORAGE_METADATA_UPDATE_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Processing,\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n userMessage: 'errors.storage.metadata.update_failed',\n },\n\n // Media Processing\n [ERROR_CODES.STORAGE_MEDIA_PROCESSING_FAILED]: {\n code: ERROR_CODES.STORAGE_MEDIA_PROCESSING_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Processing,\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n userMessage: 'errors.storage.media.processing_failed',\n },\n [ERROR_CODES.STORAGE_MEDIA_RESIZE_FAILED]: {\n code: ERROR_CODES.STORAGE_MEDIA_RESIZE_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Processing,\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n userMessage: 'errors.storage.media.resize_failed',\n },\n [ERROR_CODES.STORAGE_MEDIA_FORMAT_UNSUPPORTED]: {\n code: ERROR_CODES.STORAGE_MEDIA_FORMAT_UNSUPPORTED,\n status: HTTP_STATUS.UNSUPPORTED_MEDIA_TYPE,\n category: ERROR_CATEGORY.Validation,\n severity: ERROR_SEVERITY.Low,\n retryable: false,\n userMessage: 'errors.storage.media.format_unsupported',\n },\n [ERROR_CODES.STORAGE_MEDIA_TRANSCODE_FAILED]: {\n code: ERROR_CODES.STORAGE_MEDIA_TRANSCODE_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Processing,\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n userMessage: 'errors.storage.media.transcode_failed',\n },\n [ERROR_CODES.STORAGE_MEDIA_THUMBNAIL_FAILED]: {\n code: ERROR_CODES.STORAGE_MEDIA_THUMBNAIL_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Processing,\n severity: ERROR_SEVERITY.Low,\n retryable: true,\n userMessage: 'errors.storage.media.thumbnail_failed',\n },\n [ERROR_CODES.STORAGE_MEDIA_INVALID_DIMENSIONS]: {\n code: ERROR_CODES.STORAGE_MEDIA_INVALID_DIMENSIONS,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n severity: ERROR_SEVERITY.Low,\n retryable: false,\n userMessage: 'errors.storage.media.invalid_dimensions',\n },\n\n // Template & PDF\n [ERROR_CODES.STORAGE_TEMPLATE_NOT_FOUND]: {\n code: ERROR_CODES.STORAGE_TEMPLATE_NOT_FOUND,\n status: HTTP_STATUS.NOT_FOUND,\n category: ERROR_CATEGORY.NotFound,\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n userMessage: 'errors.storage.template.not_found',\n },\n [ERROR_CODES.STORAGE_TEMPLATE_RENDER_FAILED]: {\n code: ERROR_CODES.STORAGE_TEMPLATE_RENDER_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Template,\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n userMessage: 'errors.storage.template.render_failed',\n },\n [ERROR_CODES.STORAGE_PDF_GENERATION_FAILED]: {\n code: ERROR_CODES.STORAGE_PDF_GENERATION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Processing,\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n userMessage: 'errors.storage.pdf.generation_failed',\n },\n [ERROR_CODES.STORAGE_PDF_RENDERING_TIMEOUT]: {\n code: ERROR_CODES.STORAGE_PDF_RENDERING_TIMEOUT,\n status: HTTP_STATUS.GATEWAY_TIMEOUT,\n category: ERROR_CATEGORY.Timeout,\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n userMessage: 'errors.storage.pdf.rendering_timeout',\n },\n\n // Queue\n [ERROR_CODES.STORAGE_QUEUE_FULL]: {\n code: ERROR_CODES.STORAGE_QUEUE_FULL,\n status: HTTP_STATUS.SERVICE_UNAVAILABLE,\n category: ERROR_CATEGORY.Queue,\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n userMessage: 'errors.storage.queue.full',\n },\n [ERROR_CODES.STORAGE_QUEUE_PROCESSING_FAILED]: {\n code: ERROR_CODES.STORAGE_QUEUE_PROCESSING_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Queue,\n severity: ERROR_SEVERITY.High,\n retryable: true,\n userMessage: 'errors.storage.queue.processing_failed',\n },\n [ERROR_CODES.STORAGE_QUEUE_ITEM_NOT_FOUND]: {\n code: ERROR_CODES.STORAGE_QUEUE_ITEM_NOT_FOUND,\n status: HTTP_STATUS.NOT_FOUND,\n category: ERROR_CATEGORY.NotFound,\n severity: ERROR_SEVERITY.Low,\n retryable: false,\n userMessage: 'errors.storage.queue.item_not_found',\n },\n\n // Compliance\n [ERROR_CODES.STORAGE_COMPLIANCE_VIOLATION]: {\n code: ERROR_CODES.STORAGE_COMPLIANCE_VIOLATION,\n status: HTTP_STATUS.FORBIDDEN,\n category: ERROR_CATEGORY.Compliance,\n severity: ERROR_SEVERITY.High,\n retryable: false,\n userMessage: 'errors.storage.compliance.violation',\n },\n [ERROR_CODES.STORAGE_COMPLIANCE_RETENTION_EXPIRED]: {\n code: ERROR_CODES.STORAGE_COMPLIANCE_RETENTION_EXPIRED,\n status: HTTP_STATUS.GONE,\n category: ERROR_CATEGORY.Compliance,\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n userMessage: 'errors.storage.compliance.retention_expired',\n },\n [ERROR_CODES.STORAGE_COMPLIANCE_IMMUTABLE_FILE]: {\n code: ERROR_CODES.STORAGE_COMPLIANCE_IMMUTABLE_FILE,\n status: HTTP_STATUS.FORBIDDEN,\n category: ERROR_CATEGORY.Compliance,\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n userMessage: 'errors.storage.compliance.immutable_file',\n },\n [ERROR_CODES.STORAGE_COMPLIANCE_POLICY_NOT_FOUND]: {\n code: ERROR_CODES.STORAGE_COMPLIANCE_POLICY_NOT_FOUND,\n status: HTTP_STATUS.NOT_FOUND,\n category: ERROR_CATEGORY.Configuration,\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n userMessage: 'errors.storage.compliance.policy_not_found',\n },\n [ERROR_CODES.STORAGE_COMPLIANCE_RETENTION_VIOLATION]: {\n code: ERROR_CODES.STORAGE_COMPLIANCE_RETENTION_VIOLATION,\n status: HTTP_STATUS.FORBIDDEN,\n category: ERROR_CATEGORY.Compliance,\n severity: ERROR_SEVERITY.High,\n retryable: false,\n userMessage: 'errors.storage.compliance.retention_violation',\n },\n [ERROR_CODES.STORAGE_COMPLIANCE_SOFT_DELETE_REQUIRED]: {\n code: ERROR_CODES.STORAGE_COMPLIANCE_SOFT_DELETE_REQUIRED,\n status: HTTP_STATUS.FORBIDDEN,\n category: ERROR_CATEGORY.Compliance,\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n userMessage: 'errors.storage.compliance.soft_delete_required',\n },\n [ERROR_CODES.STORAGE_COMPLIANCE_GRACE_PERIOD_ACTIVE]: {\n code: ERROR_CODES.STORAGE_COMPLIANCE_GRACE_PERIOD_ACTIVE,\n status: HTTP_STATUS.CONFLICT,\n category: ERROR_CATEGORY.Compliance,\n severity: ERROR_SEVERITY.Low,\n retryable: false,\n userMessage: 'errors.storage.compliance.grace_period_active',\n },\n [ERROR_CODES.STORAGE_COMPLIANCE_DEFERRED_DELETION]: {\n code: ERROR_CODES.STORAGE_COMPLIANCE_DEFERRED_DELETION,\n status: HTTP_STATUS.ACCEPTED,\n category: ERROR_CATEGORY.Compliance,\n severity: ERROR_SEVERITY.Low,\n retryable: false,\n userMessage: 'errors.storage.compliance.deferred_deletion',\n },\n [ERROR_CODES.STORAGE_COMPLIANCE_PATTERN_PROTECTED]: {\n code: ERROR_CODES.STORAGE_COMPLIANCE_PATTERN_PROTECTED,\n status: HTTP_STATUS.FORBIDDEN,\n category: ERROR_CATEGORY.Compliance,\n severity: ERROR_SEVERITY.High,\n retryable: false,\n userMessage: 'errors.storage.compliance.pattern_protected',\n },\n\n // Share Links\n [ERROR_CODES.STORAGE_SHARE_LINK_NOT_FOUND]: {\n code: ERROR_CODES.STORAGE_SHARE_LINK_NOT_FOUND,\n status: HTTP_STATUS.NOT_FOUND,\n category: ERROR_CATEGORY.NotFound,\n severity: ERROR_SEVERITY.Low,\n retryable: false,\n userMessage: 'errors.storage.share_link.not_found',\n },\n [ERROR_CODES.STORAGE_SHARE_LINK_EXPIRED]: {\n code: ERROR_CODES.STORAGE_SHARE_LINK_EXPIRED,\n status: HTTP_STATUS.GONE,\n category: ERROR_CATEGORY.Validation,\n severity: ERROR_SEVERITY.Low,\n retryable: false,\n userMessage: 'errors.storage.share_link.expired',\n },\n [ERROR_CODES.STORAGE_SHARE_LINK_MAX_DOWNLOADS]: {\n code: ERROR_CODES.STORAGE_SHARE_LINK_MAX_DOWNLOADS,\n status: HTTP_STATUS.FORBIDDEN,\n category: ERROR_CATEGORY.Limits,\n severity: ERROR_SEVERITY.Low,\n retryable: false,\n userMessage: 'errors.storage.share_link.max_downloads',\n },\n [ERROR_CODES.STORAGE_SHARE_LINK_INVALID_PASSWORD]: {\n code: ERROR_CODES.STORAGE_SHARE_LINK_INVALID_PASSWORD,\n status: HTTP_STATUS.UNAUTHORIZED,\n category: ERROR_CATEGORY.Authentication,\n severity: ERROR_SEVERITY.Low,\n retryable: false,\n userMessage: 'errors.storage.share_link.invalid_password',\n },\n\n // Plugin\n [ERROR_CODES.STORAGE_PLUGIN_NOT_FOUND]: {\n code: ERROR_CODES.STORAGE_PLUGIN_NOT_FOUND,\n status: HTTP_STATUS.NOT_FOUND,\n category: ERROR_CATEGORY.Plugin,\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n userMessage: 'errors.storage.plugin.not_found',\n },\n [ERROR_CODES.STORAGE_PLUGIN_INITIALIZATION_FAILED]: {\n code: ERROR_CODES.STORAGE_PLUGIN_INITIALIZATION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Plugin,\n severity: ERROR_SEVERITY.High,\n retryable: false,\n userMessage: 'errors.storage.plugin.initialization_failed',\n },\n [ERROR_CODES.STORAGE_PLUGIN_EXECUTION_FAILED]: {\n code: ERROR_CODES.STORAGE_PLUGIN_EXECUTION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Plugin,\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n userMessage: 'errors.storage.plugin.execution_failed',\n },\n\n // VirusTotal Provider (Plugin)\n [ERROR_CODES.STORAGE_VIRUSTOTAL_BAD_REQUEST]: {\n code: ERROR_CODES.STORAGE_VIRUSTOTAL_BAD_REQUEST,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n severity: ERROR_SEVERITY.Low,\n retryable: false,\n userMessage: 'errors.storage.virustotal.bad_request',\n },\n [ERROR_CODES.STORAGE_VIRUSTOTAL_AUTHENTICATION_REQUIRED]: {\n code: ERROR_CODES.STORAGE_VIRUSTOTAL_AUTHENTICATION_REQUIRED,\n status: HTTP_STATUS.UNAUTHORIZED,\n category: ERROR_CATEGORY.Authentication,\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n userMessage: 'errors.storage.virustotal.authentication_required',\n },\n [ERROR_CODES.STORAGE_VIRUSTOTAL_WRONG_CREDENTIALS]: {\n code: ERROR_CODES.STORAGE_VIRUSTOTAL_WRONG_CREDENTIALS,\n status: HTTP_STATUS.UNAUTHORIZED,\n category: ERROR_CATEGORY.Authentication,\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n userMessage: 'errors.storage.virustotal.wrong_credentials',\n },\n [ERROR_CODES.STORAGE_VIRUSTOTAL_FILE_TOO_LARGE]: {\n code: ERROR_CODES.STORAGE_VIRUSTOTAL_FILE_TOO_LARGE,\n status: HTTP_STATUS.PAYLOAD_TOO_LARGE,\n category: ERROR_CATEGORY.Validation,\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n userMessage: 'errors.storage.virustotal.file_too_large',\n },\n [ERROR_CODES.STORAGE_VIRUSTOTAL_QUOTA_EXCEEDED]: {\n code: ERROR_CODES.STORAGE_VIRUSTOTAL_QUOTA_EXCEEDED,\n status: HTTP_STATUS.TOO_MANY_REQUESTS,\n category: ERROR_CATEGORY.Quota,\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n userMessage: 'errors.storage.virustotal.quota_exceeded',\n },\n [ERROR_CODES.STORAGE_VIRUSTOTAL_ANALYSIS_NOT_FOUND]: {\n code: ERROR_CODES.STORAGE_VIRUSTOTAL_ANALYSIS_NOT_FOUND,\n status: HTTP_STATUS.NOT_FOUND,\n category: ERROR_CATEGORY.NotFound,\n severity: ERROR_SEVERITY.Low,\n retryable: false,\n userMessage: 'errors.storage.virustotal.analysis_not_found',\n },\n [ERROR_CODES.STORAGE_VIRUSTOTAL_SCAN_TIMEOUT]: {\n code: ERROR_CODES.STORAGE_VIRUSTOTAL_SCAN_TIMEOUT,\n status: HTTP_STATUS.GATEWAY_TIMEOUT,\n category: ERROR_CATEGORY.Timeout,\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n userMessage: 'errors.storage.virustotal.scan_timeout',\n },\n [ERROR_CODES.STORAGE_VIRUSTOTAL_SCAN_FAILED]: {\n code: ERROR_CODES.STORAGE_VIRUSTOTAL_SCAN_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Plugin,\n severity: ERROR_SEVERITY.High,\n retryable: true,\n userMessage: 'errors.storage.virustotal.scan_failed',\n },\n\n // CDN Providers (Plugins)\n // Cloudflare\n [ERROR_CODES.CLOUDFLARE_AUTHENTICATION_FAILED]: {\n code: ERROR_CODES.CLOUDFLARE_AUTHENTICATION_FAILED,\n status: HTTP_STATUS.UNAUTHORIZED,\n category: ERROR_CATEGORY.Authentication,\n severity: ERROR_SEVERITY.High,\n retryable: false,\n userMessage: 'errors.cloudflare.authentication.failed',\n },\n [ERROR_CODES.CLOUDFLARE_ZONE_NOT_FOUND]: {\n code: ERROR_CODES.CLOUDFLARE_ZONE_NOT_FOUND,\n status: HTTP_STATUS.NOT_FOUND,\n category: ERROR_CATEGORY.NotFound,\n severity: ERROR_SEVERITY.High,\n retryable: false,\n userMessage: 'errors.cloudflare.zone.not.found',\n },\n [ERROR_CODES.CLOUDFLARE_PURGE_FAILED]: {\n code: ERROR_CODES.CLOUDFLARE_PURGE_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Plugin,\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n userMessage: 'errors.cloudflare.purge.failed',\n },\n [ERROR_CODES.CLOUDFLARE_RATE_LIMIT_EXCEEDED]: {\n code: ERROR_CODES.CLOUDFLARE_RATE_LIMIT_EXCEEDED,\n status: HTTP_STATUS.TOO_MANY_REQUESTS,\n category: ERROR_CATEGORY.RateLimit,\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n userMessage: 'errors.cloudflare.rate.limit.exceeded',\n },\n [ERROR_CODES.CLOUDFLARE_INVALID_URL]: {\n code: ERROR_CODES.CLOUDFLARE_INVALID_URL,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n severity: ERROR_SEVERITY.Low,\n retryable: false,\n userMessage: 'errors.cloudflare.invalid.url',\n },\n [ERROR_CODES.CLOUDFLARE_API_ERROR]: {\n code: ERROR_CODES.CLOUDFLARE_API_ERROR,\n status: HTTP_STATUS.BAD_GATEWAY,\n category: ERROR_CATEGORY.ExternalService,\n severity: ERROR_SEVERITY.High,\n retryable: true,\n userMessage: 'errors.cloudflare.api.error',\n },\n\n // CloudFront\n [ERROR_CODES.CLOUDFRONT_AUTHENTICATION_FAILED]: {\n code: ERROR_CODES.CLOUDFRONT_AUTHENTICATION_FAILED,\n status: HTTP_STATUS.UNAUTHORIZED,\n category: ERROR_CATEGORY.Authentication,\n severity: ERROR_SEVERITY.High,\n retryable: false,\n userMessage: 'errors.cloudfront.authentication.failed',\n },\n [ERROR_CODES.CLOUDFRONT_DISTRIBUTION_NOT_FOUND]: {\n code: ERROR_CODES.CLOUDFRONT_DISTRIBUTION_NOT_FOUND,\n status: HTTP_STATUS.NOT_FOUND,\n category: ERROR_CATEGORY.NotFound,\n severity: ERROR_SEVERITY.High,\n retryable: false,\n userMessage: 'errors.cloudfront.distribution.not.found',\n },\n [ERROR_CODES.CLOUDFRONT_INVALIDATION_FAILED]: {\n code: ERROR_CODES.CLOUDFRONT_INVALIDATION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Plugin,\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n userMessage: 'errors.cloudfront.invalidation.failed',\n },\n [ERROR_CODES.CLOUDFRONT_QUOTA_EXCEEDED]: {\n code: ERROR_CODES.CLOUDFRONT_QUOTA_EXCEEDED,\n status: HTTP_STATUS.TOO_MANY_REQUESTS,\n category: ERROR_CATEGORY.Quota,\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n userMessage: 'errors.cloudfront.quota.exceeded',\n },\n [ERROR_CODES.CLOUDFRONT_INVALID_PATH]: {\n code: ERROR_CODES.CLOUDFRONT_INVALID_PATH,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n severity: ERROR_SEVERITY.Low,\n retryable: false,\n userMessage: 'errors.cloudfront.invalid.path',\n },\n [ERROR_CODES.CLOUDFRONT_API_ERROR]: {\n code: ERROR_CODES.CLOUDFRONT_API_ERROR,\n status: HTTP_STATUS.BAD_GATEWAY,\n category: ERROR_CATEGORY.ExternalService,\n severity: ERROR_SEVERITY.High,\n retryable: true,\n userMessage: 'errors.cloudfront.api.error',\n },\n\n // Fastly\n [ERROR_CODES.FASTLY_AUTHENTICATION_FAILED]: {\n code: ERROR_CODES.FASTLY_AUTHENTICATION_FAILED,\n status: HTTP_STATUS.UNAUTHORIZED,\n category: ERROR_CATEGORY.Authentication,\n severity: ERROR_SEVERITY.High,\n retryable: false,\n userMessage: 'errors.fastly.authentication.failed',\n },\n [ERROR_CODES.FASTLY_SERVICE_NOT_FOUND]: {\n code: ERROR_CODES.FASTLY_SERVICE_NOT_FOUND,\n status: HTTP_STATUS.NOT_FOUND,\n category: ERROR_CATEGORY.NotFound,\n severity: ERROR_SEVERITY.High,\n retryable: false,\n userMessage: 'errors.fastly.service.not.found',\n },\n [ERROR_CODES.FASTLY_PURGE_FAILED]: {\n code: ERROR_CODES.FASTLY_PURGE_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Plugin,\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n userMessage: 'errors.fastly.purge.failed',\n },\n [ERROR_CODES.FASTLY_RATE_LIMIT_EXCEEDED]: {\n code: ERROR_CODES.FASTLY_RATE_LIMIT_EXCEEDED,\n status: HTTP_STATUS.TOO_MANY_REQUESTS,\n category: ERROR_CATEGORY.RateLimit,\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n userMessage: 'errors.fastly.rate.limit.exceeded',\n },\n [ERROR_CODES.FASTLY_INVALID_URL]: {\n code: ERROR_CODES.FASTLY_INVALID_URL,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n severity: ERROR_SEVERITY.Low,\n retryable: false,\n userMessage: 'errors.fastly.invalid.url',\n },\n [ERROR_CODES.FASTLY_API_ERROR]: {\n code: ERROR_CODES.FASTLY_API_ERROR,\n status: HTTP_STATUS.BAD_GATEWAY,\n category: ERROR_CATEGORY.ExternalService,\n severity: ERROR_SEVERITY.High,\n retryable: true,\n userMessage: 'errors.fastly.api.error',\n },\n\n // Generic CDN\n [ERROR_CODES.CDN_INVALIDATION_FAILED]: {\n code: ERROR_CODES.CDN_INVALIDATION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Plugin,\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n userMessage: 'errors.cdn.invalidation.failed',\n },\n [ERROR_CODES.CDN_CONFIGURATION_INVALID]: {\n code: ERROR_CODES.CDN_CONFIGURATION_INVALID,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Configuration,\n severity: ERROR_SEVERITY.High,\n retryable: false,\n userMessage: 'errors.cdn.configuration.invalid',\n },\n [ERROR_CODES.CDN_PROVIDER_NOT_FOUND]: {\n code: ERROR_CODES.CDN_PROVIDER_NOT_FOUND,\n status: HTTP_STATUS.NOT_FOUND,\n category: ERROR_CATEGORY.NotFound,\n severity: ERROR_SEVERITY.High,\n retryable: false,\n userMessage: 'errors.cdn.provider.not.found',\n },\n\n // Webhook Errors\n [ERROR_CODES.STORAGE_WEBHOOK_SIGNATURE_INVALID]: {\n code: ERROR_CODES.STORAGE_WEBHOOK_SIGNATURE_INVALID,\n status: HTTP_STATUS.UNAUTHORIZED,\n category: ERROR_CATEGORY.Security,\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n userMessage: 'errors.storage.webhook.signature_invalid',\n },\n [ERROR_CODES.STORAGE_WEBHOOK_PAYLOAD_INVALID]: {\n code: ERROR_CODES.STORAGE_WEBHOOK_PAYLOAD_INVALID,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n userMessage: 'errors.storage.webhook.payload_invalid',\n },\n [ERROR_CODES.STORAGE_WEBHOOK_PROCESSING_FAILED]: {\n code: ERROR_CODES.STORAGE_WEBHOOK_PROCESSING_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Processing,\n severity: ERROR_SEVERITY.High,\n retryable: true,\n userMessage: 'errors.storage.webhook.processing_failed',\n },\n [ERROR_CODES.STORAGE_WEBHOOK_TIMEOUT]: {\n code: ERROR_CODES.STORAGE_WEBHOOK_TIMEOUT,\n status: HTTP_STATUS.GATEWAY_TIMEOUT,\n category: ERROR_CATEGORY.Timeout,\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n userMessage: 'errors.storage.webhook.timeout',\n },\n [ERROR_CODES.STORAGE_WEBHOOK_ADAPTER_NOT_FOUND]: {\n code: ERROR_CODES.STORAGE_WEBHOOK_ADAPTER_NOT_FOUND,\n status: HTTP_STATUS.NOT_FOUND,\n category: ERROR_CATEGORY.NotFound,\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n userMessage: 'errors.storage.webhook.adapter_not_found',\n },\n [ERROR_CODES.STORAGE_WEBHOOK_DUPLICATE_DETECTED]: {\n code: ERROR_CODES.STORAGE_WEBHOOK_DUPLICATE_DETECTED,\n status: HTTP_STATUS.OK,\n category: ERROR_CATEGORY.Processing,\n severity: ERROR_SEVERITY.Low,\n retryable: false,\n userMessage: 'errors.storage.webhook.duplicate_detected',\n },\n [ERROR_CODES.STORAGE_WEBHOOK_IDEMPOTENCY_ERROR]: {\n code: ERROR_CODES.STORAGE_WEBHOOK_IDEMPOTENCY_ERROR,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Processing,\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n userMessage: 'errors.storage.webhook.idempotency_error',\n },\n [ERROR_CODES.STORAGE_WEBHOOK_RATE_LIMIT_EXCEEDED]: {\n code: ERROR_CODES.STORAGE_WEBHOOK_RATE_LIMIT_EXCEEDED,\n status: HTTP_STATUS.TOO_MANY_REQUESTS,\n category: ERROR_CATEGORY.RateLimit,\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n userMessage: 'errors.storage.webhook.rate_limit_exceeded',\n },\n\n // Presigned URLs\n [ERROR_CODES.STORAGE_PRESIGNED_URL_GENERATION_FAILED]: {\n code: ERROR_CODES.STORAGE_PRESIGNED_URL_GENERATION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.ExternalService,\n severity: ERROR_SEVERITY.High,\n retryable: true,\n userMessage: 'errors.storage.presigned_url.generation_failed',\n },\n [ERROR_CODES.STORAGE_PRESIGNED_URL_EXPIRED]: {\n code: ERROR_CODES.STORAGE_PRESIGNED_URL_EXPIRED,\n status: HTTP_STATUS.GONE,\n category: ERROR_CATEGORY.Validation,\n severity: ERROR_SEVERITY.Low,\n retryable: false,\n userMessage: 'errors.storage.presigned_url.expired',\n },\n [ERROR_CODES.STORAGE_PRESIGNED_URL_INVALID]: {\n code: ERROR_CODES.STORAGE_PRESIGNED_URL_INVALID,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n severity: ERROR_SEVERITY.Low,\n retryable: false,\n userMessage: 'errors.storage.presigned_url.invalid',\n },\n\n // Chunked Upload\n [ERROR_CODES.STORAGE_CHUNKED_UPLOAD_INIT_FAILED]: {\n code: ERROR_CODES.STORAGE_CHUNKED_UPLOAD_INIT_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.FileOperation,\n severity: ERROR_SEVERITY.High,\n retryable: true,\n userMessage: 'errors.storage.chunked_upload.init_failed',\n },\n [ERROR_CODES.STORAGE_CHUNKED_UPLOAD_PART_FAILED]: {\n code: ERROR_CODES.STORAGE_CHUNKED_UPLOAD_PART_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.FileOperation,\n severity: ERROR_SEVERITY.High,\n retryable: true,\n userMessage: 'errors.storage.chunked_upload.part_failed',\n },\n [ERROR_CODES.STORAGE_CHUNKED_UPLOAD_COMPLETE_FAILED]: {\n code: ERROR_CODES.STORAGE_CHUNKED_UPLOAD_COMPLETE_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.FileOperation,\n severity: ERROR_SEVERITY.High,\n retryable: true,\n userMessage: 'errors.storage.chunked_upload.complete_failed',\n },\n [ERROR_CODES.STORAGE_CHUNKED_UPLOAD_ABORT_FAILED]: {\n code: ERROR_CODES.STORAGE_CHUNKED_UPLOAD_ABORT_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.FileOperation,\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n userMessage: 'errors.storage.chunked_upload.abort_failed',\n },\n [ERROR_CODES.STORAGE_CHUNKED_UPLOAD_NOT_FOUND]: {\n code: ERROR_CODES.STORAGE_CHUNKED_UPLOAD_NOT_FOUND,\n status: HTTP_STATUS.NOT_FOUND,\n category: ERROR_CATEGORY.NotFound,\n severity: ERROR_SEVERITY.Low,\n retryable: false,\n userMessage: 'errors.storage.chunked_upload.not_found',\n },\n\n // CORS\n [ERROR_CODES.STORAGE_CORS_CONFIGURATION_INVALID]: {\n code: ERROR_CODES.STORAGE_CORS_CONFIGURATION_INVALID,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Configuration,\n severity: ERROR_SEVERITY.High,\n retryable: false,\n userMessage: 'errors.storage.cors.configuration_invalid',\n },\n [ERROR_CODES.STORAGE_CORS_ORIGIN_NOT_ALLOWED]: {\n code: ERROR_CODES.STORAGE_CORS_ORIGIN_NOT_ALLOWED,\n status: HTTP_STATUS.FORBIDDEN,\n category: ERROR_CATEGORY.Authorization,\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n userMessage: 'errors.storage.cors.origin_not_allowed',\n },\n\n // TTL\n [ERROR_CODES.STORAGE_TTL_EXPIRED]: {\n code: ERROR_CODES.STORAGE_TTL_EXPIRED,\n status: HTTP_STATUS.GONE,\n category: ERROR_CATEGORY.Validation,\n severity: ERROR_SEVERITY.Low,\n retryable: false,\n userMessage: 'errors.storage.ttl.expired',\n },\n [ERROR_CODES.STORAGE_TTL_CLEANUP_FAILED]: {\n code: ERROR_CODES.STORAGE_TTL_CLEANUP_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Processing,\n severity: ERROR_SEVERITY.Low,\n retryable: true,\n userMessage: 'errors.storage.ttl.cleanup_failed',\n },\n\n // Audit\n [ERROR_CODES.STORAGE_AUDIT_LOG_FAILED]: {\n code: ERROR_CODES.STORAGE_AUDIT_LOG_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.System,\n severity: ERROR_SEVERITY.Low,\n retryable: false,\n userMessage: 'errors.storage.audit.log_failed',\n },\n\n // Timeout & Network\n [ERROR_CODES.STORAGE_TIMEOUT]: {\n code: ERROR_CODES.STORAGE_TIMEOUT,\n status: HTTP_STATUS.GATEWAY_TIMEOUT,\n category: ERROR_CATEGORY.Timeout,\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n userMessage: 'errors.storage.timeout',\n },\n [ERROR_CODES.STORAGE_NETWORK_ERROR]: {\n code: ERROR_CODES.STORAGE_NETWORK_ERROR,\n status: HTTP_STATUS.SERVICE_UNAVAILABLE,\n category: ERROR_CATEGORY.Network,\n severity: ERROR_SEVERITY.High,\n retryable: true,\n userMessage: 'errors.storage.network_error',\n },\n [ERROR_CODES.STORAGE_CONNECTION_LOST]: {\n code: ERROR_CODES.STORAGE_CONNECTION_LOST,\n status: HTTP_STATUS.SERVICE_UNAVAILABLE,\n category: ERROR_CATEGORY.Network,\n severity: ERROR_SEVERITY.High,\n retryable: true,\n userMessage: 'errors.storage.connection_lost',\n },\n\n // Permission & Quota\n [ERROR_CODES.STORAGE_PERMISSION_DENIED]: {\n code: ERROR_CODES.STORAGE_PERMISSION_DENIED,\n status: HTTP_STATUS.FORBIDDEN,\n category: ERROR_CATEGORY.Authorization,\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n userMessage: 'errors.storage.permission_denied',\n },\n [ERROR_CODES.STORAGE_QUOTA_EXCEEDED]: {\n code: ERROR_CODES.STORAGE_QUOTA_EXCEEDED,\n status: HTTP_STATUS.INSUFFICIENT_STORAGE,\n category: ERROR_CATEGORY.Quota,\n severity: ERROR_SEVERITY.High,\n retryable: false,\n userMessage: 'errors.storage.quota_exceeded',\n },\n [ERROR_CODES.STORAGE_INSUFFICIENT_SPACE]: {\n code: ERROR_CODES.STORAGE_INSUFFICIENT_SPACE,\n status: HTTP_STATUS.INSUFFICIENT_STORAGE,\n category: ERROR_CATEGORY.Quota,\n severity: ERROR_SEVERITY.High,\n retryable: false,\n userMessage: 'errors.storage.insufficient_space',\n },\n [ERROR_CODES.STORAGE_FEATURE_NOT_IMPLEMENTED]: {\n code: ERROR_CODES.STORAGE_FEATURE_NOT_IMPLEMENTED,\n status: HTTP_STATUS.NOT_IMPLEMENTED,\n category: ERROR_CATEGORY.Server,\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n userMessage: 'errors.storage.feature.not_implemented',\n },\n\n // ===== Core Package Error Definitions =====\n // Feature Flags\n [ERROR_CODES.CORE_FEATURE_FLAG_NOT_FOUND]: {\n code: ERROR_CODES.CORE_FEATURE_FLAG_NOT_FOUND,\n status: HTTP_STATUS.NOT_FOUND,\n category: ERROR_CATEGORY.NotFound,\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n userMessage: 'errors.core.feature_flag.not_found',\n },\n [ERROR_CODES.CORE_FEATURE_FLAG_INVALID_CONFIG]: {\n code: ERROR_CODES.CORE_FEATURE_FLAG_INVALID_CONFIG,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Configuration,\n severity: ERROR_SEVERITY.High,\n retryable: false,\n userMessage: 'errors.core.feature_flag.invalid_config',\n },\n [ERROR_CODES.CORE_FEATURE_FLAG_EVALUATION_FAILED]: {\n code: ERROR_CODES.CORE_FEATURE_FLAG_EVALUATION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Processing,\n severity: ERROR_SEVERITY.High,\n retryable: true,\n userMessage: 'errors.core.feature_flag.evaluation_failed',\n },\n [ERROR_CODES.CORE_FEATURE_FLAG_PROVIDER_ERROR]: {\n code: ERROR_CODES.CORE_FEATURE_FLAG_PROVIDER_ERROR,\n status: HTTP_STATUS.BAD_GATEWAY,\n category: ERROR_CATEGORY.Provider,\n severity: ERROR_SEVERITY.High,\n retryable: true,\n userMessage: 'errors.core.feature_flag.provider_error',\n },\n [ERROR_CODES.CORE_FEATURE_FLAG_CACHE_ERROR]: {\n code: ERROR_CODES.CORE_FEATURE_FLAG_CACHE_ERROR,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Cache,\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n userMessage: 'errors.core.feature_flag.cache_error',\n },\n [ERROR_CODES.CORE_FEATURE_FLAG_CONTEXT_INVALID]: {\n code: ERROR_CODES.CORE_FEATURE_FLAG_CONTEXT_INVALID,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n userMessage: 'errors.core.feature_flag.context_invalid',\n },\n [ERROR_CODES.CORE_FEATURE_FLAG_RULE_INVALID]: {\n code: ERROR_CODES.CORE_FEATURE_FLAG_RULE_INVALID,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n userMessage: 'errors.core.feature_flag.rule_invalid',\n },\n [ERROR_CODES.CORE_FEATURE_FLAG_TOGGLE_FAILED]: {\n code: ERROR_CODES.CORE_FEATURE_FLAG_TOGGLE_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Processing,\n severity: ERROR_SEVERITY.High,\n retryable: true,\n userMessage: 'errors.core.feature_flag.toggle_failed',\n },\n\n // Cache\n [ERROR_CODES.CORE_CACHE_INITIALIZATION_FAILED]: {\n code: ERROR_CODES.CORE_CACHE_INITIALIZATION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Configuration,\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n userMessage: 'errors.core.cache.initialization_failed',\n },\n [ERROR_CODES.CORE_CACHE_STRATEGY_NOT_FOUND]: {\n code: ERROR_CODES.CORE_CACHE_STRATEGY_NOT_FOUND,\n status: HTTP_STATUS.NOT_FOUND,\n category: ERROR_CATEGORY.Configuration,\n severity: ERROR_SEVERITY.High,\n retryable: false,\n userMessage: 'errors.core.cache.strategy_not_found',\n },\n [ERROR_CODES.CORE_CACHE_OPERATION_FAILED]: {\n code: ERROR_CODES.CORE_CACHE_OPERATION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Cache,\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n userMessage: 'errors.core.cache.operation_failed',\n },\n [ERROR_CODES.CORE_CACHE_INVALIDATION_FAILED]: {\n code: ERROR_CODES.CORE_CACHE_INVALIDATION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Cache,\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n userMessage: 'errors.core.cache.invalidation_failed',\n },\n [ERROR_CODES.CORE_CACHE_SERIALIZATION_FAILED]: {\n code: ERROR_CODES.CORE_CACHE_SERIALIZATION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Processing,\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n userMessage: 'errors.core.cache.serialization_failed',\n },\n\n // API Client\n [ERROR_CODES.CORE_API_CLIENT_INITIALIZATION_FAILED]: {\n code: ERROR_CODES.CORE_API_CLIENT_INITIALIZATION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Configuration,\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n userMessage: 'errors.core.api_client.initialization_failed',\n },\n [ERROR_CODES.CORE_API_CLIENT_REQUEST_FAILED]: {\n code: ERROR_CODES.CORE_API_CLIENT_REQUEST_FAILED,\n status: HTTP_STATUS.BAD_GATEWAY,\n category: ERROR_CATEGORY.Network,\n severity: ERROR_SEVERITY.High,\n retryable: true,\n userMessage: 'errors.core.api_client.request_failed',\n },\n [ERROR_CODES.CORE_API_CLIENT_TIMEOUT]: {\n code: ERROR_CODES.CORE_API_CLIENT_TIMEOUT,\n status: HTTP_STATUS.GATEWAY_TIMEOUT,\n category: ERROR_CATEGORY.Timeout,\n severity: ERROR_SEVERITY.High,\n retryable: true,\n userMessage: 'errors.core.api_client.timeout',\n },\n [ERROR_CODES.CORE_API_CLIENT_INVALID_RESPONSE]: {\n code: ERROR_CODES.CORE_API_CLIENT_INVALID_RESPONSE,\n status: HTTP_STATUS.BAD_GATEWAY,\n category: ERROR_CATEGORY.Server,\n severity: ERROR_SEVERITY.High,\n retryable: false,\n userMessage: 'errors.core.api_client.invalid_response',\n },\n [ERROR_CODES.CORE_API_CLIENT_AUTHENTICATION_FAILED]: {\n code: ERROR_CODES.CORE_API_CLIENT_AUTHENTICATION_FAILED,\n status: HTTP_STATUS.UNAUTHORIZED,\n category: ERROR_CATEGORY.Authentication,\n severity: ERROR_SEVERITY.High,\n retryable: false,\n userMessage: 'errors.core.api_client.authentication_failed',\n },\n\n // Database Service\n [ERROR_CODES.CORE_DATABASE_SERVICE_INITIALIZATION_FAILED]: {\n code: ERROR_CODES.CORE_DATABASE_SERVICE_INITIALIZATION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Configuration,\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n userMessage: 'errors.core.database_service.initialization_failed',\n },\n [ERROR_CODES.CORE_DATABASE_SERVICE_CONNECTION_FAILED]: {\n code: ERROR_CODES.CORE_DATABASE_SERVICE_CONNECTION_FAILED,\n status: HTTP_STATUS.SERVICE_UNAVAILABLE,\n category: ERROR_CATEGORY.Network,\n severity: ERROR_SEVERITY.High,\n retryable: true,\n userMessage: 'errors.core.database_service.connection_failed',\n },\n [ERROR_CODES.CORE_DATABASE_SERVICE_QUERY_FAILED]: {\n code: ERROR_CODES.CORE_DATABASE_SERVICE_QUERY_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Server,\n severity: ERROR_SEVERITY.High,\n retryable: false,\n userMessage: 'errors.core.database_service.query_failed',\n },\n [ERROR_CODES.CORE_DATABASE_SERVICE_TRANSACTION_FAILED]: {\n code: ERROR_CODES.CORE_DATABASE_SERVICE_TRANSACTION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Server,\n severity: ERROR_SEVERITY.High,\n retryable: true,\n userMessage: 'errors.core.database_service.transaction_failed',\n },\n\n // Validation\n [ERROR_CODES.CORE_VALIDATION_FAILED]: {\n code: ERROR_CODES.CORE_VALIDATION_FAILED,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n userMessage: 'errors.core.validation.failed',\n },\n [ERROR_CODES.CORE_VALIDATION_SCHEMA_INVALID]: {\n code: ERROR_CODES.CORE_VALIDATION_SCHEMA_INVALID,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n severity: ERROR_SEVERITY.High,\n retryable: false,\n userMessage: 'errors.core.validation.schema_invalid',\n },\n [ERROR_CODES.CORE_VALIDATION_REQUIRED_FIELD_MISSING]: {\n code: ERROR_CODES.CORE_VALIDATION_REQUIRED_FIELD_MISSING,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n userMessage: 'errors.core.validation.required_field_missing',\n },\n\n // Hash Utilities\n [ERROR_CODES.CORE_HASH_GENERATION_FAILED]: {\n code: ERROR_CODES.CORE_HASH_GENERATION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Processing,\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n userMessage: 'errors.core.hash.generation_failed',\n },\n [ERROR_CODES.CORE_HASH_VERIFICATION_FAILED]: {\n code: ERROR_CODES.CORE_HASH_VERIFICATION_FAILED,\n status: HTTP_STATUS.UNAUTHORIZED,\n category: ERROR_CATEGORY.Authentication,\n severity: ERROR_SEVERITY.High,\n retryable: false,\n userMessage: 'errors.core.hash.verification_failed',\n },\n\n // Engine\n [ERROR_CODES.CORE_ENGINE_INITIALIZATION_FAILED]: {\n code: ERROR_CODES.CORE_ENGINE_INITIALIZATION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Configuration,\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n userMessage: 'errors.core.engine.initialization_failed',\n },\n [ERROR_CODES.CORE_ENGINE_EXECUTION_FAILED]: {\n code: ERROR_CODES.CORE_ENGINE_EXECUTION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Processing,\n severity: ERROR_SEVERITY.High,\n retryable: true,\n userMessage: 'errors.core.engine.execution_failed',\n },\n [ERROR_CODES.CORE_ENGINE_CONFIGURATION_INVALID]: {\n code: ERROR_CODES.CORE_ENGINE_CONFIGURATION_INVALID,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Configuration,\n severity: ERROR_SEVERITY.High,\n retryable: false,\n userMessage: 'errors.core.engine.configuration_invalid',\n },\n\n // Provider\n [ERROR_CODES.CORE_PROVIDER_NOT_FOUND]: {\n code: ERROR_CODES.CORE_PROVIDER_NOT_FOUND,\n status: HTTP_STATUS.NOT_FOUND,\n category: ERROR_CATEGORY.NotFound,\n severity: ERROR_SEVERITY.High,\n retryable: false,\n userMessage: 'errors.core.provider.not_found',\n },\n [ERROR_CODES.CORE_PROVIDER_INITIALIZATION_FAILED]: {\n code: ERROR_CODES.CORE_PROVIDER_INITIALIZATION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Configuration,\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n userMessage: 'errors.core.provider.initialization_failed',\n },\n [ERROR_CODES.CORE_PROVIDER_OPERATION_FAILED]: {\n code: ERROR_CODES.CORE_PROVIDER_OPERATION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Provider,\n severity: ERROR_SEVERITY.High,\n retryable: true,\n userMessage: 'errors.core.provider.operation_failed',\n },\n\n // Context\n [ERROR_CODES.CORE_CONTEXT_INVALID]: {\n code: ERROR_CODES.CORE_CONTEXT_INVALID,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n userMessage: 'errors.core.context.invalid',\n },\n [ERROR_CODES.CORE_CONTEXT_MISSING_REQUIRED_DATA]: {\n code: ERROR_CODES.CORE_CONTEXT_MISSING_REQUIRED_DATA,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n userMessage: 'errors.core.context.missing_required_data',\n },\n\n // General Core\n [ERROR_CODES.CORE_INITIALIZATION_FAILED]: {\n code: ERROR_CODES.CORE_INITIALIZATION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Configuration,\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n userMessage: 'errors.core.initialization_failed',\n },\n [ERROR_CODES.CORE_CONFIGURATION_INVALID]: {\n code: ERROR_CODES.CORE_CONFIGURATION_INVALID,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Configuration,\n severity: ERROR_SEVERITY.High,\n retryable: false,\n userMessage: 'errors.core.configuration_invalid',\n },\n [ERROR_CODES.CORE_OPERATION_FAILED]: {\n code: ERROR_CODES.CORE_OPERATION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Processing,\n severity: ERROR_SEVERITY.High,\n retryable: true,\n userMessage: 'errors.core.operation_failed',\n },\n [ERROR_CODES.CORE_UNKNOWN_ERROR]: {\n code: ERROR_CODES.CORE_UNKNOWN_ERROR,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Unknown,\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n userMessage: 'errors.core.unknown_error',\n },\n\n // ===== Errors Package Errors =====\n [ERROR_CODES.ERROR_SYSTEM_NOT_INITIALIZED]: {\n code: ERROR_CODES.ERROR_SYSTEM_NOT_INITIALIZED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Configuration,\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n userMessage: 'errors.system.not_initialized',\n },\n [ERROR_CODES.EVENT_FACTORY_NOT_REGISTERED]: {\n code: ERROR_CODES.EVENT_FACTORY_NOT_REGISTERED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Configuration,\n severity: ERROR_SEVERITY.High,\n retryable: false,\n userMessage: 'errors.event.factory.not_registered',\n },\n [ERROR_CODES.DATABASE_ERROR]: {\n code: ERROR_CODES.DATABASE_ERROR,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Server,\n severity: ERROR_SEVERITY.High,\n retryable: false,\n userMessage: 'errors.database',\n },\n\n // Global Error Handler\n [ERROR_CODES.UNCAUGHT_EXCEPTION]: {\n code: ERROR_CODES.UNCAUGHT_EXCEPTION,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.System,\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n userMessage: 'errors.uncaught.exception',\n },\n [ERROR_CODES.UNHANDLED_REJECTION]: {\n code: ERROR_CODES.UNHANDLED_REJECTION,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.System,\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n userMessage: 'errors.unhandled.rejection',\n },\n [ERROR_CODES.RUNTIME_ERROR]: {\n code: ERROR_CODES.RUNTIME_ERROR,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.System,\n severity: ERROR_SEVERITY.High,\n retryable: false,\n userMessage: 'errors.runtime',\n },\n\n // ===== Database Error Definitions =====\n // Connection & Configuration\n [ERROR_CODES.DB_ACCESS_DENIED]: {\n code: ERROR_CODES.DB_ACCESS_DENIED,\n status: HTTP_STATUS.FORBIDDEN,\n category: ERROR_CATEGORY.Authentication,\n userMessage: 'db.connection.access_denied',\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n },\n [ERROR_CODES.DB_CONFIG_REQUIRED]: {\n code: ERROR_CODES.DB_CONFIG_REQUIRED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Configuration,\n userMessage: 'db.connection.config_required',\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n },\n [ERROR_CODES.DB_CONNECT_FAILED]: {\n code: ERROR_CODES.DB_CONNECT_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Server,\n userMessage: 'db.connection.connect_failed',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n [ERROR_CODES.DB_DISCONNECT_FAILED]: {\n code: ERROR_CODES.DB_DISCONNECT_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Server,\n userMessage: 'db.connection.disconnect_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.DB_INIT_FAILED]: {\n code: ERROR_CODES.DB_INIT_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Server,\n userMessage: 'db.connection.init_failed',\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n },\n\n // Query & Execution\n [ERROR_CODES.DB_QUERY_FAILED]: {\n code: ERROR_CODES.DB_QUERY_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Server,\n userMessage: 'db.query.failed',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n [ERROR_CODES.DB_BUILD_WHERE_FAILED]: {\n code: ERROR_CODES.DB_BUILD_WHERE_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Server,\n userMessage: 'db.query.build_where_failed',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n [ERROR_CODES.DB_INVALID_SQL]: {\n code: ERROR_CODES.DB_INVALID_SQL,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'db.query.invalid_sql',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.DB_TRANSACTION_FAILED]: {\n code: ERROR_CODES.DB_TRANSACTION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Server,\n userMessage: 'db.query.transaction_failed',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n [ERROR_CODES.DB_UNSUPPORTED_OPERATOR]: {\n code: ERROR_CODES.DB_UNSUPPORTED_OPERATOR,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'db.query.unsupported_operator',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n // CRUD Operations\n [ERROR_CODES.DB_CREATE_FAILED]: {\n code: ERROR_CODES.DB_CREATE_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Server,\n userMessage: 'db.crud.create_failed',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n [ERROR_CODES.DB_CREATION_FAILED]: {\n code: ERROR_CODES.DB_CREATION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Server,\n userMessage: 'db.crud.create_failed',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n [ERROR_CODES.DB_FETCH_FAILED]: {\n code: ERROR_CODES.DB_FETCH_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Server,\n userMessage: 'db.crud.fetch_failed',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n [ERROR_CODES.DB_FIND_FAILED]: {\n code: ERROR_CODES.DB_FIND_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Server,\n userMessage: 'db.crud.find_failed',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n [ERROR_CODES.DB_FIND_MANY_FAILED]: {\n code: ERROR_CODES.DB_FIND_MANY_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Server,\n userMessage: 'db.crud.find_many_failed',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n [ERROR_CODES.DB_FIND_BY_ID_FAILED]: {\n code: ERROR_CODES.DB_FIND_BY_ID_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Server,\n userMessage: 'db.crud.find_by_id_failed',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n [ERROR_CODES.DB_UPDATE_FAILED]: {\n code: ERROR_CODES.DB_UPDATE_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Server,\n userMessage: 'db.crud.update_failed',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n [ERROR_CODES.DB_UPDATE_NO_CHANGES]: {\n code: ERROR_CODES.DB_UPDATE_NO_CHANGES,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'db.crud.update_no_changes',\n severity: ERROR_SEVERITY.Low,\n retryable: false,\n },\n [ERROR_CODES.DB_DELETE_FAILED]: {\n code: ERROR_CODES.DB_DELETE_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Server,\n userMessage: 'db.crud.delete_failed',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n [ERROR_CODES.DB_INSERT_FAILED]: {\n code: ERROR_CODES.DB_INSERT_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Server,\n userMessage: 'db.crud.insert_failed',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n [ERROR_CODES.DB_RECORD_NOT_FOUND]: {\n code: ERROR_CODES.DB_RECORD_NOT_FOUND,\n status: HTTP_STATUS.NOT_FOUND,\n category: ERROR_CATEGORY.NotFound,\n userMessage: 'db.crud.record_not_found',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.DB_EXISTS_FAILED]: {\n code: ERROR_CODES.DB_EXISTS_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Server,\n userMessage: 'db.crud.exists_failed',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n\n // Schema & Columns\n [ERROR_CODES.DB_COLUMN_NOT_EXISTS]: {\n code: ERROR_CODES.DB_COLUMN_NOT_EXISTS,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'db.schema.column_not_exists',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.DB_TABLE_NOT_REGISTERED]: {\n code: ERROR_CODES.DB_TABLE_NOT_REGISTERED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Server,\n userMessage: 'db.schema.table_not_registered',\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n },\n [ERROR_CODES.DB_TABLE_REGISTRATION_FAILED]: {\n code: ERROR_CODES.DB_TABLE_REGISTRATION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Server,\n userMessage: 'db.schema.table_registration_failed',\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n },\n [ERROR_CODES.DB_ID_COLUMN_NOT_REGISTERED]: {\n code: ERROR_CODES.DB_ID_COLUMN_NOT_REGISTERED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Server,\n userMessage: 'db.schema.id_column_not_registered',\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n },\n [ERROR_CODES.DB_INVALID_COLUMN]: {\n code: ERROR_CODES.DB_INVALID_COLUMN,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'db.schema.invalid_column',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.DB_INVALID_TABLE_NAME]: {\n code: ERROR_CODES.DB_INVALID_TABLE_NAME,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'db.schema.invalid_table_name',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.DB_GET_ID_COLUMN_FAILED]: {\n code: ERROR_CODES.DB_GET_ID_COLUMN_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Server,\n userMessage: 'db.schema.get_id_column_failed',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n [ERROR_CODES.DB_GET_TABLE_FAILED]: {\n code: ERROR_CODES.DB_GET_TABLE_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Server,\n userMessage: 'db.schema.get_table_failed',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n\n // Validation & Parameters\n [ERROR_CODES.DB_INVALID_PARAMETERS]: {\n code: ERROR_CODES.DB_INVALID_PARAMETERS,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'db.validation.invalid_parameters',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.DB_INVALID_PARAMS]: {\n code: ERROR_CODES.DB_INVALID_PARAMS,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'db.validation.invalid_parameters',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.DB_INVALID_FILTER]: {\n code: ERROR_CODES.DB_INVALID_FILTER,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'db.validation.invalid_filter',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.DB_INVALID_ID]: {\n code: ERROR_CODES.DB_INVALID_ID,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'db.validation.invalid_id',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.DB_INVALID_ENTITY]: {\n code: ERROR_CODES.DB_INVALID_ENTITY,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'db.validation.invalid_entity',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.DB_INVALID_UPDATE_PARAMS]: {\n code: ERROR_CODES.DB_INVALID_UPDATE_PARAMS,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'db.validation.invalid_update_params',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.DB_INVALID_FIELD_NAME]: {\n code: ERROR_CODES.DB_INVALID_FIELD_NAME,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'db.validation.invalid_field_name',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.DB_INVALID_RESULT]: {\n code: ERROR_CODES.DB_INVALID_RESULT,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Server,\n userMessage: 'db.validation.invalid_result',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n [ERROR_CODES.DB_NO_UPDATE_FIELDS]: {\n code: ERROR_CODES.DB_NO_UPDATE_FIELDS,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'db.validation.no_update_fields',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n // Count & Data\n [ERROR_CODES.DB_COUNT_FAILED]: {\n code: ERROR_CODES.DB_COUNT_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Server,\n userMessage: 'db.count.failed',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n [ERROR_CODES.DB_COUNT_NO_RESULTS]: {\n code: ERROR_CODES.DB_COUNT_NO_RESULTS,\n status: HTTP_STATUS.NOT_FOUND,\n category: ERROR_CATEGORY.NotFound,\n userMessage: 'db.count.no_results',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.DB_NO_DATA]: {\n code: ERROR_CODES.DB_NO_DATA,\n status: HTTP_STATUS.NOT_FOUND,\n category: ERROR_CATEGORY.NotFound,\n userMessage: 'db.count.no_results',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n // Multi-tenant Context\n [ERROR_CODES.DB_NO_TENANT_CONTEXT]: {\n code: ERROR_CODES.DB_NO_TENANT_CONTEXT,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Server,\n userMessage: 'db.tenant.no_context',\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n },\n [ERROR_CODES.DB_NO_TENANT_ID]: {\n code: ERROR_CODES.DB_NO_TENANT_ID,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Server,\n userMessage: 'db.tenant.no_tenant_id',\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n },\n [ERROR_CODES.DB_TENANT_VALIDATION_FAILED]: {\n code: ERROR_CODES.DB_TENANT_VALIDATION_FAILED,\n status: HTTP_STATUS.FORBIDDEN,\n category: ERROR_CATEGORY.Authorization,\n userMessage: 'db.tenant.validation_failed',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n\n // Backup & Restore\n [ERROR_CODES.DB_BACKUP_CLEANUP_FAILED]: {\n code: ERROR_CODES.DB_BACKUP_CLEANUP_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Server,\n userMessage: 'db.backup.cleanup_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.DB_BACKUP_FILE_NOT_FOUND]: {\n code: ERROR_CODES.DB_BACKUP_FILE_NOT_FOUND,\n status: HTTP_STATUS.NOT_FOUND,\n category: ERROR_CATEGORY.NotFound,\n userMessage: 'db.backup.file_not_found',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.DB_LIST_BACKUPS_FAILED]: {\n code: ERROR_CODES.DB_LIST_BACKUPS_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Server,\n userMessage: 'db.backup.list_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.DB_INVALID_BACKUP_INFO]: {\n code: ERROR_CODES.DB_INVALID_BACKUP_INFO,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'db.backup.invalid_info',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.DB_RESTORE_FAILED]: {\n code: ERROR_CODES.DB_RESTORE_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Server,\n userMessage: 'db.backup.restore_failed',\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n },\n\n // Cache Operations\n [ERROR_CODES.DB_CACHE_DELETE_FAILED]: {\n code: ERROR_CODES.DB_CACHE_DELETE_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Cache,\n userMessage: 'db.cache.delete_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n },\n [ERROR_CODES.DB_CACHE_HEALTH_CHECK_FAILED]: {\n code: ERROR_CODES.DB_CACHE_HEALTH_CHECK_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Cache,\n userMessage: 'db.cache.health_check_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n },\n [ERROR_CODES.DB_CACHE_INVALIDATE_FAILED]: {\n code: ERROR_CODES.DB_CACHE_INVALIDATE_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Cache,\n userMessage: 'db.cache.invalidate_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n },\n [ERROR_CODES.DB_CACHE_SET_FAILED]: {\n code: ERROR_CODES.DB_CACHE_SET_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Cache,\n userMessage: 'db.cache.set_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n },\n [ERROR_CODES.DB_CACHE_GET_FAILED]: {\n code: ERROR_CODES.DB_CACHE_GET_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Cache,\n userMessage: 'db.cache.get_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n },\n\n // File & Storage\n [ERROR_CODES.DB_INVALID_FILEPATH]: {\n code: ERROR_CODES.DB_INVALID_FILEPATH,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'db.file.invalid_filepath',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.DB_S3_DELETE_FAILED]: {\n code: ERROR_CODES.DB_S3_DELETE_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Server,\n userMessage: 'db.file.s3_delete_failed',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n [ERROR_CODES.DB_S3_DOWNLOAD_FAILED]: {\n code: ERROR_CODES.DB_S3_DOWNLOAD_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Server,\n userMessage: 'db.file.s3_download_failed',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n [ERROR_CODES.DB_S3_NOT_CONFIGURED]: {\n code: ERROR_CODES.DB_S3_NOT_CONFIGURED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Configuration,\n userMessage: 'db.file.s3_not_configured',\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n },\n [ERROR_CODES.DB_S3_UPLOAD_FAILED]: {\n code: ERROR_CODES.DB_S3_UPLOAD_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Server,\n userMessage: 'db.file.s3_upload_failed',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n\n [ERROR_CODES.PAYMENT_TIMEOUT]: {\n code: ERROR_CODES.PAYMENT_TIMEOUT,\n status: HTTP_STATUS.REQUEST_TIMEOUT,\n category: ERROR_CATEGORY.Timeout,\n userMessage: 'errors.payment.timeout',\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n },\n\n [ERROR_CODES.PAYMENT_NETWORK_ERROR]: {\n code: ERROR_CODES.PAYMENT_NETWORK_ERROR,\n status: HTTP_STATUS.NETWORK_AUTHENTICATION_REQUIRED,\n category: ERROR_CATEGORY.Network,\n userMessage: 'errors.payment.network_error',\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n },\n\n // Misc\n [ERROR_CODES.DB_SCHEDULE_SETUP_FAILED]: {\n code: ERROR_CODES.DB_SCHEDULE_SETUP_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Server,\n userMessage: 'db.misc.schedule_setup_failed',\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n },\n [ERROR_CODES.DB_DECRYPTION_FAILED]: {\n code: ERROR_CODES.DB_DECRYPTION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Server,\n userMessage: 'db.misc.decryption_failed',\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n },\n [ERROR_CODES.DB_INVALID_SHELL_ARG]: {\n code: ERROR_CODES.DB_INVALID_SHELL_ARG,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'db.misc.invalid_shell_arg',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.DB_INVALID_BETWEEN_OPERATOR]: {\n code: ERROR_CODES.DB_INVALID_BETWEEN_OPERATOR,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'db.misc.invalid_between_operator',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.DB_INVALID_IN_OPERATOR]: {\n code: ERROR_CODES.DB_INVALID_IN_OPERATOR,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'db.misc.invalid_in_operator',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.DB_INVALID_COUNT]: {\n code: ERROR_CODES.DB_INVALID_COUNT,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'db.misc.invalid_count',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n // ===== Payments Package Error Definitions =====\n // ===== Refund Errors =====\n [ERROR_CODES.PAYMENT_REFUND_FAILED]: {\n code: ERROR_CODES.PAYMENT_REFUND_FAILED,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Refund,\n userMessage: 'errors.payment.refund.failed',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n [ERROR_CODES.PAYMENT_REFUND_NOT_FOUND]: {\n code: ERROR_CODES.PAYMENT_REFUND_NOT_FOUND,\n status: HTTP_STATUS.NOT_FOUND,\n category: ERROR_CATEGORY.Refund,\n userMessage: 'errors.payment.refund.not_found',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.PAYMENT_REFUND_ALREADY_PROCESSED]: {\n code: ERROR_CODES.PAYMENT_REFUND_ALREADY_PROCESSED,\n status: HTTP_STATUS.CONFLICT,\n category: ERROR_CATEGORY.Refund,\n userMessage: 'errors.payment.refund.already_processed',\n severity: ERROR_SEVERITY.Low,\n retryable: false,\n },\n [ERROR_CODES.PAYMENT_REFUND_AMOUNT_INVALID]: {\n code: ERROR_CODES.PAYMENT_REFUND_AMOUNT_INVALID,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'errors.payment.refund.amount_invalid',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.PAYMENT_REFUND_VALIDATION_FAILED]: {\n code: ERROR_CODES.PAYMENT_REFUND_VALIDATION_FAILED,\n status: HTTP_STATUS.UNPROCESSABLE_ENTITY,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'errors.payment.refund.validation_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.PAYMENT_REFUND_TIMEOUT]: {\n code: ERROR_CODES.PAYMENT_REFUND_TIMEOUT,\n status: HTTP_STATUS.REQUEST_TIMEOUT,\n category: ERROR_CATEGORY.Timeout,\n userMessage: 'errors.payment.refund.timeout',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n [ERROR_CODES.PAYMENT_REFUND_NOT_ALLOWED]: {\n code: ERROR_CODES.PAYMENT_REFUND_NOT_ALLOWED,\n status: HTTP_STATUS.FORBIDDEN,\n category: ERROR_CATEGORY.Refund,\n userMessage: 'errors.payment.refund.not_allowed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.PAYMENT_REFUND_AUTHORIZATION_FAILED]: {\n code: ERROR_CODES.PAYMENT_REFUND_AUTHORIZATION_FAILED,\n status: HTTP_STATUS.UNAUTHORIZED,\n category: ERROR_CATEGORY.Authorization,\n userMessage: 'errors.payment.refund.authorization_failed',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n\n [ERROR_CODES.PAYMENT_REFUND_PROCESSING_FAILED]: {\n code: ERROR_CODES.PAYMENT_REFUND_PROCESSING_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Refund,\n userMessage: 'errors.payment.refund.processing_failed',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n\n // ===== Provider Errors =====\n [ERROR_CODES.PAYMENT_PROVIDER_ERROR]: {\n code: ERROR_CODES.PAYMENT_PROVIDER_ERROR,\n status: HTTP_STATUS.BAD_GATEWAY,\n category: ERROR_CATEGORY.Provider,\n userMessage: 'errors.payment.provider.generic',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n [ERROR_CODES.PAYMENT_PROVIDER_UNAVAILABLE]: {\n code: ERROR_CODES.PAYMENT_PROVIDER_UNAVAILABLE,\n status: HTTP_STATUS.SERVICE_UNAVAILABLE,\n category: ERROR_CATEGORY.Provider,\n userMessage: 'errors.payment.provider.unavailable',\n severity: ERROR_SEVERITY.Critical,\n retryable: true,\n },\n [ERROR_CODES.PAYMENT_PROVIDER_CONFIGURATION_INVALID]: {\n code: ERROR_CODES.PAYMENT_PROVIDER_CONFIGURATION_INVALID,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Configuration,\n userMessage: 'errors.payment.provider.invalid_config',\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n },\n [ERROR_CODES.PAYMENT_PROVIDER_RESPONSE_INVALID]: {\n code: ERROR_CODES.PAYMENT_PROVIDER_RESPONSE_INVALID,\n status: HTTP_STATUS.BAD_GATEWAY,\n category: ERROR_CATEGORY.Provider,\n userMessage: 'errors.payment.provider.invalid_response',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n [ERROR_CODES.PAYMENT_PROVIDER_TIMEOUT]: {\n code: ERROR_CODES.PAYMENT_PROVIDER_TIMEOUT,\n status: HTTP_STATUS.GATEWAY_TIMEOUT,\n category: ERROR_CATEGORY.Timeout,\n userMessage: 'errors.payment.provider.timeout',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n [ERROR_CODES.PAYMENT_PROVIDER_AUTH_FAILED]: {\n code: ERROR_CODES.PAYMENT_PROVIDER_AUTH_FAILED,\n status: HTTP_STATUS.UNAUTHORIZED,\n category: ERROR_CATEGORY.Authentication,\n userMessage: 'errors.payment.provider.auth_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n // ===== Compliance Errors =====\n [ERROR_CODES.PAYMENT_COMPLIANCE_VIOLATION]: {\n code: ERROR_CODES.PAYMENT_COMPLIANCE_VIOLATION,\n status: HTTP_STATUS.FORBIDDEN,\n category: ERROR_CATEGORY.Compliance,\n userMessage: 'errors.payment.compliance.violation',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n [ERROR_CODES.PAYMENT_COMPLIANCE_CHECK_FAILED]: {\n code: ERROR_CODES.PAYMENT_COMPLIANCE_CHECK_FAILED,\n status: HTTP_STATUS.UNPROCESSABLE_ENTITY,\n category: ERROR_CATEGORY.Compliance,\n userMessage: 'errors.payment.compliance.check_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.PAYMENT_COMPLIANCE_LIMIT_EXCEEDED]: {\n code: ERROR_CODES.PAYMENT_COMPLIANCE_LIMIT_EXCEEDED,\n status: HTTP_STATUS.TOO_MANY_REQUESTS,\n category: ERROR_CATEGORY.Limits,\n userMessage: 'errors.payment.compliance.limit_exceeded',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.PAYMENT_COMPLIANCE_POLICY_MISSING]: {\n code: ERROR_CODES.PAYMENT_COMPLIANCE_POLICY_MISSING,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Configuration,\n userMessage: 'errors.payment.compliance.policy_missing',\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n },\n [ERROR_CODES.PAYMENT_COMPLIANCE_KYC_REQUIRED]: {\n code: ERROR_CODES.PAYMENT_COMPLIANCE_KYC_REQUIRED,\n status: HTTP_STATUS.FORBIDDEN,\n category: ERROR_CATEGORY.Compliance,\n userMessage: 'errors.payment.compliance.kyc_required',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.PAYMENT_COMPLIANCE_GEOGRAPHIC_RESTRICTION]: {\n code: ERROR_CODES.PAYMENT_COMPLIANCE_GEOGRAPHIC_RESTRICTION,\n status: HTTP_STATUS.FORBIDDEN,\n category: ERROR_CATEGORY.Compliance,\n userMessage: 'errors.payment.compliance.geographic_restriction',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n // ===== Security Errors =====\n [ERROR_CODES.PAYMENT_SECURITY_VIOLATION]: {\n code: ERROR_CODES.PAYMENT_SECURITY_VIOLATION,\n status: HTTP_STATUS.FORBIDDEN,\n category: ERROR_CATEGORY.Security,\n userMessage: 'errors.payment.security.violation',\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n },\n [ERROR_CODES.PAYMENT_SECURITY_SIGNATURE_INVALID]: {\n code: ERROR_CODES.PAYMENT_SECURITY_SIGNATURE_INVALID,\n status: HTTP_STATUS.UNAUTHORIZED,\n category: ERROR_CATEGORY.Security,\n userMessage: 'errors.payment.security.invalid_signature',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n [ERROR_CODES.PAYMENT_SECURITY_ENCRYPTION_FAILED]: {\n code: ERROR_CODES.PAYMENT_SECURITY_ENCRYPTION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Security,\n userMessage: 'errors.payment.security.encryption_failed',\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n },\n [ERROR_CODES.PAYMENT_SECURITY_FRAUD_DETECTED]: {\n code: ERROR_CODES.PAYMENT_SECURITY_FRAUD_DETECTED,\n status: HTTP_STATUS.FORBIDDEN,\n category: ERROR_CATEGORY.Fraud,\n userMessage: 'errors.payment.security.fraud_detected',\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n },\n [ERROR_CODES.PAYMENT_SECURITY_TOKEN_INVALID]: {\n code: ERROR_CODES.PAYMENT_SECURITY_TOKEN_INVALID,\n status: HTTP_STATUS.UNAUTHORIZED,\n category: ERROR_CATEGORY.Authentication,\n userMessage: 'errors.payment.security.token_invalid',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.PAYMENT_SECURITY_VELOCITY_LIMIT_EXCEEDED]: {\n code: ERROR_CODES.PAYMENT_SECURITY_VELOCITY_LIMIT_EXCEEDED,\n status: HTTP_STATUS.FORBIDDEN,\n category: ERROR_CATEGORY.Security,\n severity: ERROR_SEVERITY.Medium,\n userMessage: 'errors.payment.security.velocity_limit_exceed',\n retryable: false,\n },\n\n // ===== Validation Errors =====\n [ERROR_CODES.PAYMENT_VALIDATION_FAILED]: {\n code: ERROR_CODES.PAYMENT_VALIDATION_FAILED,\n status: HTTP_STATUS.UNPROCESSABLE_ENTITY,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'errors.payment.validation.failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.PAYMENT_VALIDATION_AMOUNT_INVALID]: {\n code: ERROR_CODES.PAYMENT_VALIDATION_AMOUNT_INVALID,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'errors.payment.validation.amount_invalid',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.PAYMENT_VALIDATION_CURRENCY_UNSUPPORTED]: {\n code: ERROR_CODES.PAYMENT_VALIDATION_CURRENCY_UNSUPPORTED,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'errors.payment.validation.currency_unsupported',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.PAYMENT_VALIDATION_METADATA_INVALID]: {\n code: ERROR_CODES.PAYMENT_VALIDATION_METADATA_INVALID,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'errors.payment.validation.metadata_invalid',\n severity: ERROR_SEVERITY.Low,\n retryable: false,\n },\n [ERROR_CODES.PAYMENT_VALIDATION_MISSING_REQUIRED_FIELD]: {\n code: ERROR_CODES.PAYMENT_VALIDATION_MISSING_REQUIRED_FIELD,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'errors.payment.validation.required_field_missing',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n // ===== Webhook Errors =====\n [ERROR_CODES.PAYMENT_WEBHOOK_SIGNATURE_INVALID]: {\n code: ERROR_CODES.PAYMENT_WEBHOOK_SIGNATURE_INVALID,\n status: HTTP_STATUS.UNAUTHORIZED,\n category: ERROR_CATEGORY.Webhook,\n userMessage: 'errors.payment.webhook.signature_invalid',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n [ERROR_CODES.PAYMENT_WEBHOOK_PROCESSING_FAILED]: {\n code: ERROR_CODES.PAYMENT_WEBHOOK_PROCESSING_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Webhook,\n userMessage: 'errors.payment.webhook.processing_failed',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n [ERROR_CODES.PAYMENT_WEBHOOK_VALIDATION_FAILED]: {\n code: ERROR_CODES.PAYMENT_WEBHOOK_VALIDATION_FAILED,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'errors.payment.webhook.validation_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.PAYMENT_WEBHOOK_EVENT_TYPE_UNSUPPORTED]: {\n code: ERROR_CODES.PAYMENT_WEBHOOK_EVENT_TYPE_UNSUPPORTED,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Webhook,\n userMessage: 'errors.payment.webhook.unsupported_event_type',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.PAYMENT_WEBHOOK_HANDLER_NOT_FOUND]: {\n code: ERROR_CODES.PAYMENT_WEBHOOK_HANDLER_NOT_FOUND,\n status: HTTP_STATUS.NOT_FOUND,\n category: ERROR_CATEGORY.Webhook,\n userMessage: 'errors.payment.webhook.handler_not_found',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n // ===== Payment Adapter & Core Errors =====\n [ERROR_CODES.PAYMENT_ADAPTER_INIT_FAILED]: {\n code: ERROR_CODES.PAYMENT_ADAPTER_INIT_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Provider,\n userMessage: 'errors.payment.adapter.init_failed',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n\n [ERROR_CODES.PAYMENT_ADAPTER_SHUTDOWN_ERROR]: {\n code: ERROR_CODES.PAYMENT_ADAPTER_SHUTDOWN_ERROR,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Provider,\n userMessage: 'errors.payment.adapter.shutdown_error',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.PAYMENT_ADAPTER_HMAC_COMPUTATION_FAILED]: {\n code: ERROR_CODES.PAYMENT_ADAPTER_HMAC_COMPUTATION_FAILED,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Security,\n userMessage: 'errors.payment.adapter.hmac_computation_failed',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n\n [ERROR_CODES.PAYMENT_ADAPTER_MISSING_PROVIDER]: {\n code: ERROR_CODES.PAYMENT_ADAPTER_MISSING_PROVIDER,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Configuration,\n userMessage: 'errors.payment.adapter.missing_provider',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.PAYMENT_ADAPTER_MISSING_ENVIRONMENT]: {\n code: ERROR_CODES.PAYMENT_ADAPTER_MISSING_ENVIRONMENT,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Configuration,\n userMessage: 'errors.payment.adapter.missing_environment',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.PAYMENT_ADAPTER_MISSING_CREDENTIALS]: {\n code: ERROR_CODES.PAYMENT_ADAPTER_MISSING_CREDENTIALS,\n status: HTTP_STATUS.UNAUTHORIZED,\n category: ERROR_CATEGORY.Authentication,\n userMessage: 'errors.payment.adapter.missing_credentials',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.PAYMENT_ADAPTER_MISSING_WEBHOOK_URL]: {\n code: ERROR_CODES.PAYMENT_ADAPTER_MISSING_WEBHOOK_URL,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Configuration,\n userMessage: 'errors.payment.adapter.missing_webhook_url',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.PAYMENT_ADAPTER_MISSING_UNREGISTER_ENDPOINT]: {\n code: ERROR_CODES.PAYMENT_ADAPTER_MISSING_UNREGISTER_ENDPOINT,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Configuration,\n userMessage: 'errors.payment.adapter.missing_unregister_endpoint',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.PAYMENT_ADAPTER_UNSUPPORTED_OPERATION]: {\n code: ERROR_CODES.PAYMENT_ADAPTER_UNSUPPORTED_OPERATION,\n status: HTTP_STATUS.NOT_IMPLEMENTED,\n category: ERROR_CATEGORY.Provider,\n userMessage: 'errors.payment.adapter.unsupported_operation',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.PAYMENT_ADAPTER_RESPONSE_MAPPING_FAILED]: {\n code: ERROR_CODES.PAYMENT_ADAPTER_RESPONSE_MAPPING_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Provider,\n userMessage: 'errors.payment.adapter.response_mapping_failed',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n\n // ===== Idempotency & State Management =====\n [ERROR_CODES.PAYMENT_IDEMPOTENCY_VIOLATION]: {\n code: ERROR_CODES.PAYMENT_IDEMPOTENCY_VIOLATION,\n status: HTTP_STATUS.CONFLICT,\n category: ERROR_CATEGORY.Processing,\n userMessage: 'errors.payment.idempotency.violation',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.PAYMENT_IDEMPOTENCY_KEY_MISSING]: {\n code: ERROR_CODES.PAYMENT_IDEMPOTENCY_KEY_MISSING,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'errors.payment.idempotency.key_missing',\n severity: ERROR_SEVERITY.Low,\n retryable: false,\n },\n\n [ERROR_CODES.PAYMENT_IDEMPOTENCY_STORE_ERROR]: {\n code: ERROR_CODES.PAYMENT_IDEMPOTENCY_STORE_ERROR,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Cache,\n userMessage: 'errors.payment.idempotency.store_error',\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n },\n\n // ===== Routing & Strategy =====\n [ERROR_CODES.PAYMENT_ROUTING_FAILED]: {\n code: ERROR_CODES.PAYMENT_ROUTING_FAILED,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Strategy,\n userMessage: 'errors.payment.routing.failed',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n\n [ERROR_CODES.PAYMENT_ROUTING_CONFIGURATION_INVALID]: {\n code: ERROR_CODES.PAYMENT_ROUTING_CONFIGURATION_INVALID,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Configuration,\n userMessage: 'errors.payment.routing.configuration_invalid',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.PAYMENT_ROUTING_PROVIDER_UNAVAILABLE]: {\n code: ERROR_CODES.PAYMENT_ROUTING_PROVIDER_UNAVAILABLE,\n status: HTTP_STATUS.SERVICE_UNAVAILABLE,\n category: ERROR_CATEGORY.Provider,\n userMessage: 'errors.payment.routing.provider_unavailable',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n // Connection & Network\n [ERROR_CODES.DB_CONNECTION_FAILED]: {\n code: ERROR_CODES.DB_CONNECTION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Network,\n userMessage: 'db.connection.failed',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n [ERROR_CODES.DB_CONNECTION_ERROR]: {\n code: ERROR_CODES.DB_CONNECTION_ERROR,\n status: HTTP_STATUS.SERVICE_UNAVAILABLE,\n category: ERROR_CATEGORY.Network,\n userMessage: 'db.connection.error',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n [ERROR_CODES.DB_MULTI_WRITE_FAILED]: {\n code: ERROR_CODES.DB_MULTI_WRITE_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Database,\n userMessage: 'db.multi_write.failed',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n [ERROR_CODES.DB_TIMEOUT]: {\n code: ERROR_CODES.DB_TIMEOUT,\n status: HTTP_STATUS.REQUEST_TIMEOUT,\n category: ERROR_CATEGORY.Timeout,\n userMessage: 'db.connection.timeout',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n\n // Constraints & Integrity\n [ERROR_CODES.DB_CONSTRAINT_VIOLATION]: {\n code: ERROR_CODES.DB_CONSTRAINT_VIOLATION,\n status: HTTP_STATUS.CONFLICT,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'db.constraint.violation',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.DB_DEADLOCK]: {\n code: ERROR_CODES.DB_DEADLOCK,\n status: HTTP_STATUS.CONFLICT,\n category: ERROR_CATEGORY.Server,\n userMessage: 'db.constraint.deadlock',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n [ERROR_CODES.DB_DUPLICATE_ENTRY]: {\n code: ERROR_CODES.DB_DUPLICATE_ENTRY,\n status: HTTP_STATUS.CONFLICT,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'db.constraint.duplicate_entry',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n // Entity Operations\n [ERROR_CODES.DB_ENTITY_NOT_FOUND]: {\n code: ERROR_CODES.DB_ENTITY_NOT_FOUND,\n status: HTTP_STATUS.NOT_FOUND,\n category: ERROR_CATEGORY.NotFound,\n userMessage: 'db.entity.not_found',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n // Migration & Schema\n [ERROR_CODES.DB_MIGRATION_FAILED]: {\n code: ERROR_CODES.DB_MIGRATION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Server,\n userMessage: 'db.migration.failed',\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n },\n\n // General\n [ERROR_CODES.DB_UNKNOWN_ERROR]: {\n code: ERROR_CODES.DB_UNKNOWN_ERROR,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Unknown,\n userMessage: 'db.unknown_error',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.PAYMENT_ROUTING_RETRY_EXCEEDED]: {\n code: ERROR_CODES.PAYMENT_ROUTING_RETRY_EXCEEDED,\n status: HTTP_STATUS.TOO_MANY_REQUESTS,\n category: ERROR_CATEGORY.Retry,\n userMessage: 'errors.payment.routing.retry_exceeded',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.PAYMENT_SYSTEM_NOT_INITIALIZED]: {\n code: ERROR_CODES.PAYMENT_SYSTEM_NOT_INITIALIZED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.System,\n userMessage: 'errors.payment.system.not_initialized',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n\n [ERROR_CODES.PAYMENT_CONTEXT_OPERATION_FAILED]: {\n code: ERROR_CODES.PAYMENT_CONTEXT_OPERATION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.System,\n userMessage: 'errors.payment.context.operation_failed',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n\n [ERROR_CODES.PAYMENT_INTERNAL_ERROR]: {\n code: ERROR_CODES.PAYMENT_INTERNAL_ERROR,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.System,\n userMessage: 'errors.payment.internal_error',\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n },\n\n [ERROR_CODES.PAYMENT_UNKNOWN_ERROR]: {\n code: ERROR_CODES.PAYMENT_UNKNOWN_ERROR,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Unknown,\n userMessage: 'errors.payment.unknown_error',\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n },\n\n // ===== Event Lifecycle Errors =====\n [ERROR_CODES.PAYMENT_EVENT_EMIT_FAILED]: {\n code: ERROR_CODES.PAYMENT_EVENT_EMIT_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Processing,\n userMessage: 'errors.payment.event.emit_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.PAYMENT_EVENT_INVALID_TYPE]: {\n code: ERROR_CODES.PAYMENT_EVENT_INVALID_TYPE,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'errors.payment.event.invalid_type',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.PAYMENT_EVENT_CREATION_FAILED]: {\n code: ERROR_CODES.PAYMENT_EVENT_CREATION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.System,\n userMessage: 'errors.payment.event.creation_failed',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n\n [ERROR_CODES.PAYMENT_EVENT_HANDLER_TIMEOUT]: {\n code: ERROR_CODES.PAYMENT_EVENT_HANDLER_TIMEOUT,\n status: HTTP_STATUS.GATEWAY_TIMEOUT,\n category: ERROR_CATEGORY.Timeout,\n userMessage: 'errors.payment.event.handler_timeout',\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n },\n\n [ERROR_CODES.PAYMENT_EVENT_HANDLER_INVALID_RESULT]: {\n code: ERROR_CODES.PAYMENT_EVENT_HANDLER_INVALID_RESULT,\n status: HTTP_STATUS.UNPROCESSABLE_ENTITY,\n category: ERROR_CATEGORY.Processing,\n userMessage: 'errors.payment.event.handler_invalid_result',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.PAYMENT_EVENT_LIFECYCLE_FAILURE]: {\n code: ERROR_CODES.PAYMENT_EVENT_LIFECYCLE_FAILURE,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Processing,\n userMessage: 'errors.payment.event.lifecycle_failure',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n [ERROR_CODES.PAYMENT_COMPLIANCE_AML_CHECK_FAILED]: {\n code: ERROR_CODES.PAYMENT_COMPLIANCE_AML_CHECK_FAILED,\n status: HTTP_STATUS.FORBIDDEN,\n category: ERROR_CATEGORY.Compliance,\n userMessage: 'errors.payment.compliance.aml_check_failed',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n\n [ERROR_CODES.PAYMENT_COMPLIANCE_PSD2_STRONG_AUTH_REQUIRED]: {\n code: ERROR_CODES.PAYMENT_COMPLIANCE_PSD2_STRONG_AUTH_REQUIRED,\n status: HTTP_STATUS.UNAUTHORIZED,\n category: ERROR_CATEGORY.Authentication,\n userMessage: 'errors.payment.compliance.psd2_strong_auth_required',\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n },\n\n [ERROR_CODES.PAYMENT_COMPLIANCE_GDPR_DATA_ACCESS]: {\n code: ERROR_CODES.PAYMENT_COMPLIANCE_GDPR_DATA_ACCESS,\n status: HTTP_STATUS.UNAVAILABLE_FOR_LEGAL_REASONS,\n category: ERROR_CATEGORY.Compliance,\n userMessage: 'errors.payment.compliance.gdpr_data_access',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.PAYMENT_COMPLIANCE_PCI_COMPLIANCE]: {\n code: ERROR_CODES.PAYMENT_COMPLIANCE_PCI_COMPLIANCE,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Security,\n userMessage: 'errors.payment.compliance.pci_compliance',\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n },\n\n [ERROR_CODES.PAYMENT_COMPLIANCE_LOCAL_BANKING_RESTRICTION]: {\n code: ERROR_CODES.PAYMENT_COMPLIANCE_LOCAL_BANKING_RESTRICTION,\n status: HTTP_STATUS.FORBIDDEN,\n category: ERROR_CATEGORY.Regional,\n userMessage: 'errors.payment.compliance.local_banking_restriction',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n // === Processing Errors ===\n\n [ERROR_CODES.PAYMENT_PROCESSING_FAILED]: {\n code: ERROR_CODES.PAYMENT_PROCESSING_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Processing,\n userMessage: 'errors.payment.processing.failed',\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n },\n\n [ERROR_CODES.PAYMENT_PROCESSING_TIMEOUT]: {\n code: ERROR_CODES.PAYMENT_PROCESSING_TIMEOUT,\n status: HTTP_STATUS.GATEWAY_TIMEOUT,\n category: ERROR_CATEGORY.Timeout,\n userMessage: 'errors.payment.processing.timeout',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n\n [ERROR_CODES.PAYMENT_PROCESSING_GATEWAY_ERROR]: {\n code: ERROR_CODES.PAYMENT_PROCESSING_GATEWAY_ERROR,\n status: HTTP_STATUS.BAD_GATEWAY,\n category: ERROR_CATEGORY.Provider,\n userMessage: 'errors.payment.processing.gateway_error',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n\n [ERROR_CODES.PAYMENT_PROCESSING_DUPLICATE]: {\n code: ERROR_CODES.PAYMENT_PROCESSING_DUPLICATE,\n status: HTTP_STATUS.CONFLICT,\n category: ERROR_CATEGORY.Processing,\n userMessage: 'errors.payment.processing.duplicate',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.PAYMENT_PROCESSING_UNEXPECTED_STATE]: {\n code: ERROR_CODES.PAYMENT_PROCESSING_UNEXPECTED_STATE,\n status: HTTP_STATUS.UNPROCESSABLE_ENTITY,\n category: ERROR_CATEGORY.System,\n userMessage: 'errors.payment.processing.unexpected_state',\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n },\n\n [ERROR_CODES.PAYMENT_PROVIDER_RATE_LIMIT]: {\n code: ERROR_CODES.PAYMENT_PROVIDER_RATE_LIMIT,\n status: HTTP_STATUS.TOO_MANY_REQUESTS,\n category: ERROR_CATEGORY.RateLimit,\n userMessage: 'errors.payment.provider.rate_limit',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n\n [ERROR_CODES.PAYMENT_PROVIDER_UNKNOWN]: {\n code: ERROR_CODES.PAYMENT_PROVIDER_UNKNOWN,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Provider,\n userMessage: 'errors.payment.provider.unknown',\n severity: ERROR_SEVERITY.Critical,\n retryable: true,\n },\n\n [ERROR_CODES.PAYMENT_CUSTOMER_CREATION_FAILED]: {\n code: ERROR_CODES.PAYMENT_CUSTOMER_CREATION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Processing,\n userMessage: 'errors.payment.customer.creation_failed',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n\n [ERROR_CODES.PAYMENT_METHOD_SAVE_FAILED]: {\n code: ERROR_CODES.PAYMENT_METHOD_SAVE_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Processing,\n userMessage: 'errors.payment.method.save_failed',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n\n [ERROR_CODES.PAYMENT_METHOD_DELETE_FAILED]: {\n code: ERROR_CODES.PAYMENT_METHOD_DELETE_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Processing,\n userMessage: 'errors.payment.method.delete_failed',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n\n [ERROR_CODES.PAYMENT_SUBSCRIPTION_CREATE_FAILED]: {\n code: ERROR_CODES.PAYMENT_SUBSCRIPTION_CREATE_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Processing,\n userMessage: 'errors.payment.subscription.create_failed',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n\n [ERROR_CODES.PAYMENT_SUBSCRIPTION_CANCEL_FAILED]: {\n code: ERROR_CODES.PAYMENT_SUBSCRIPTION_CANCEL_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Processing,\n userMessage: 'errors.payment.subscription.cancel_failed',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n\n [ERROR_CODES.PAYMENT_PAYOUT_FAILED]: {\n code: ERROR_CODES.PAYMENT_PAYOUT_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Processing,\n userMessage: 'errors.payment.payout.failed',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n\n [ERROR_CODES.PAYMENT_TRANSACTION_HISTORY_FETCH_FAILED]: {\n code: ERROR_CODES.PAYMENT_TRANSACTION_HISTORY_FETCH_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Processing,\n userMessage: 'errors.payment.transaction.history.fetch_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n },\n // ===== Unsupported Operations =====\n [ERROR_CODES.SAVE_PAYMENT_METHOD_UNSUPPORTED]: {\n code: ERROR_CODES.SAVE_PAYMENT_METHOD_UNSUPPORTED,\n status: HTTP_STATUS.NOT_IMPLEMENTED,\n category: ERROR_CATEGORY.Provider,\n userMessage: 'errors.payment.method.save_unsupported',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.DELETE_PAYMENT_METHOD_UNSUPPORTED]: {\n code: ERROR_CODES.DELETE_PAYMENT_METHOD_UNSUPPORTED,\n status: HTTP_STATUS.NOT_IMPLEMENTED,\n category: ERROR_CATEGORY.Provider,\n userMessage: 'errors.payment.method.delete_unsupported',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.GET_USER_PAYMENT_METHODS_UNSUPPORTED]: {\n code: ERROR_CODES.GET_USER_PAYMENT_METHODS_UNSUPPORTED,\n status: HTTP_STATUS.NOT_IMPLEMENTED,\n category: ERROR_CATEGORY.Provider,\n userMessage: 'errors.payment.method.get_user_methods_unsupported',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.CREATE_SUBSCRIPTION_UNSUPPORTED]: {\n code: ERROR_CODES.CREATE_SUBSCRIPTION_UNSUPPORTED,\n status: HTTP_STATUS.NOT_IMPLEMENTED,\n category: ERROR_CATEGORY.Provider,\n userMessage: 'errors.payment.subscription.create_unsupported',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.CANCEL_SUBSCRIPTION_UNSUPPORTED]: {\n code: ERROR_CODES.CANCEL_SUBSCRIPTION_UNSUPPORTED,\n status: HTTP_STATUS.NOT_IMPLEMENTED,\n category: ERROR_CATEGORY.Provider,\n userMessage: 'errors.payment.subscription.cancel_unsupported',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.PROCESS_PAYOUT_UNSUPPORTED]: {\n code: ERROR_CODES.PROCESS_PAYOUT_UNSUPPORTED,\n status: HTTP_STATUS.NOT_IMPLEMENTED,\n category: ERROR_CATEGORY.Provider,\n userMessage: 'errors.payment.payout.unsupported',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.GET_TRANSACTION_HISTORY_UNSUPPORTED]: {\n code: ERROR_CODES.GET_TRANSACTION_HISTORY_UNSUPPORTED,\n status: HTTP_STATUS.NOT_IMPLEMENTED,\n category: ERROR_CATEGORY.Provider,\n userMessage: 'errors.payment.transaction.history_unsupported',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n // Withdrawal Errors\n [ERROR_CODES.WITHDRAWAL_UNSUPPORTED]: {\n code: ERROR_CODES.WITHDRAWAL_UNSUPPORTED,\n status: HTTP_STATUS.NOT_IMPLEMENTED,\n category: ERROR_CATEGORY.Provider,\n userMessage: 'errors.payment.withdrawal.unsupported',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.WITHDRAWAL_CREATE_UNSUPPORTED]: {\n code: ERROR_CODES.WITHDRAWAL_CREATE_UNSUPPORTED,\n status: HTTP_STATUS.NOT_IMPLEMENTED,\n category: ERROR_CATEGORY.Provider,\n userMessage: 'errors.payment.withdrawal.create_unsupported',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.WITHDRAWAL_PROCESS_UNSUPPORTED]: {\n code: ERROR_CODES.WITHDRAWAL_PROCESS_UNSUPPORTED,\n status: HTTP_STATUS.NOT_IMPLEMENTED,\n category: ERROR_CATEGORY.Provider,\n userMessage: 'errors.payment.withdrawal.process_unsupported',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.WITHDRAWAL_STATUS_FETCH_UNSUPPORTED]: {\n code: ERROR_CODES.WITHDRAWAL_STATUS_FETCH_UNSUPPORTED,\n status: HTTP_STATUS.NOT_IMPLEMENTED,\n category: ERROR_CATEGORY.Provider,\n userMessage: 'errors.payment.withdrawal.status_fetch_unsupported',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.WITHDRAWAL_CANCEL_UNSUPPORTED]: {\n code: ERROR_CODES.WITHDRAWAL_CANCEL_UNSUPPORTED,\n status: HTTP_STATUS.NOT_IMPLEMENTED,\n category: ERROR_CATEGORY.Provider,\n userMessage: 'errors.payment.withdrawal.cancel_unsupported',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.WITHDRAWAL_INSUFFICIENT_BALANCE]: {\n code: ERROR_CODES.WITHDRAWAL_INSUFFICIENT_BALANCE,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Limits,\n userMessage: 'errors.payment.withdrawal.insufficient_balance',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.WITHDRAWAL_INVALID_ACCOUNT]: {\n code: ERROR_CODES.WITHDRAWAL_INVALID_ACCOUNT,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'errors.payment.withdrawal.invalid_account',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.WITHDRAWAL_KYC_REQUIRED]: {\n code: ERROR_CODES.WITHDRAWAL_KYC_REQUIRED,\n status: HTTP_STATUS.FORBIDDEN,\n category: ERROR_CATEGORY.Compliance,\n userMessage: 'errors.payment.withdrawal.kyc_required',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.WITHDRAWAL_LIMIT_EXCEEDED]: {\n code: ERROR_CODES.WITHDRAWAL_LIMIT_EXCEEDED,\n status: HTTP_STATUS.FORBIDDEN,\n category: ERROR_CATEGORY.Limits,\n userMessage: 'errors.payment.withdrawal.limit_exceeded',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.WITHDRAWAL_PROVIDER_ERROR]: {\n code: ERROR_CODES.WITHDRAWAL_PROVIDER_ERROR,\n status: HTTP_STATUS.BAD_GATEWAY,\n category: ERROR_CATEGORY.Provider,\n userMessage: 'errors.payment.withdrawal.provider_error',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n\n [ERROR_CODES.WITHDRAWAL_FAILED]: {\n code: ERROR_CODES.WITHDRAWAL_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Provider,\n userMessage: 'errors.payment.withdrawal.failed',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n\n [ERROR_CODES.WITHDRAWAL_TIMEOUT]: {\n code: ERROR_CODES.WITHDRAWAL_TIMEOUT,\n status: HTTP_STATUS.GATEWAY_TIMEOUT,\n category: ERROR_CATEGORY.Timeout,\n userMessage: 'errors.payment.withdrawal.timeout',\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n },\n\n // Product Errors\n [ERROR_CODES.PRODUCT_CREATE_UNSUPPORTED]: {\n code: ERROR_CODES.PRODUCT_CREATE_UNSUPPORTED,\n status: HTTP_STATUS.NOT_IMPLEMENTED,\n category: ERROR_CATEGORY.Provider,\n userMessage: 'errors.payment.product.create_unsupported',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.PRODUCT_UPDATE_UNSUPPORTED]: {\n code: ERROR_CODES.PRODUCT_UPDATE_UNSUPPORTED,\n status: HTTP_STATUS.NOT_IMPLEMENTED,\n category: ERROR_CATEGORY.Provider,\n userMessage: 'errors.payment.product.update_unsupported',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.PRODUCT_FETCH_UNSUPPORTED]: {\n code: ERROR_CODES.PRODUCT_FETCH_UNSUPPORTED,\n status: HTTP_STATUS.NOT_IMPLEMENTED,\n category: ERROR_CATEGORY.Provider,\n userMessage: 'errors.payment.product.fetch_unsupported',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.PRODUCT_DEACTIVATE_UNSUPPORTED]: {\n code: ERROR_CODES.PRODUCT_DEACTIVATE_UNSUPPORTED,\n status: HTTP_STATUS.NOT_IMPLEMENTED,\n category: ERROR_CATEGORY.Provider,\n userMessage: 'errors.payment.product.deactivate_unsupported',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.PRODUCT_NOT_FOUND]: {\n code: ERROR_CODES.PRODUCT_NOT_FOUND,\n status: HTTP_STATUS.NOT_FOUND,\n category: ERROR_CATEGORY.NotFound,\n userMessage: 'errors.payment.product.not_found',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.PRODUCT_INVALID_DATA]: {\n code: ERROR_CODES.PRODUCT_INVALID_DATA,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'errors.payment.product.invalid_data',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.PRODUCT_PROVIDER_ERROR]: {\n code: ERROR_CODES.PRODUCT_PROVIDER_ERROR,\n status: HTTP_STATUS.BAD_GATEWAY,\n category: ERROR_CATEGORY.Provider,\n userMessage: 'errors.payment.product.provider_error',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n\n [ERROR_CODES.PRODUCT_ALREADY_INACTIVE]: {\n code: ERROR_CODES.PRODUCT_ALREADY_INACTIVE,\n status: HTTP_STATUS.CONFLICT,\n category: ERROR_CATEGORY.Conflict,\n userMessage: 'errors.payment.product.already_inactive',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.PRODUCT_SYNC_FAILED]: {\n code: ERROR_CODES.PRODUCT_SYNC_FAILED,\n status: HTTP_STATUS.BAD_GATEWAY,\n category: ERROR_CATEGORY.Provider,\n userMessage: 'errors.payment.product.sync_failed',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n\n // Pricing Errors\n [ERROR_CODES.PRICING_CREATE_UNSUPPORTED]: {\n code: ERROR_CODES.PRICING_CREATE_UNSUPPORTED,\n status: HTTP_STATUS.NOT_IMPLEMENTED,\n category: ERROR_CATEGORY.Provider,\n userMessage: 'errors.payment.pricing.create_unsupported',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.PRICING_UPDATE_UNSUPPORTED]: {\n code: ERROR_CODES.PRICING_UPDATE_UNSUPPORTED,\n status: HTTP_STATUS.NOT_IMPLEMENTED,\n category: ERROR_CATEGORY.Provider,\n userMessage: 'errors.payment.pricing.update_unsupported',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.PRICING_DEACTIVATE_UNSUPPORTED]: {\n code: ERROR_CODES.PRICING_DEACTIVATE_UNSUPPORTED,\n status: HTTP_STATUS.NOT_IMPLEMENTED,\n category: ERROR_CATEGORY.Provider,\n userMessage: 'errors.payment.pricing.deactivate_unsupported',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.PRICING_NOT_FOUND]: {\n code: ERROR_CODES.PRICING_NOT_FOUND,\n status: HTTP_STATUS.NOT_FOUND,\n category: ERROR_CATEGORY.NotFound,\n userMessage: 'errors.payment.pricing.not_found',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.PRICING_INVALID_AMOUNT]: {\n code: ERROR_CODES.PRICING_INVALID_AMOUNT,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'errors.payment.pricing.invalid_amount',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.PRICING_INVALID_CURRENCY]: {\n code: ERROR_CODES.PRICING_INVALID_CURRENCY,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'errors.payment.pricing.invalid_currency',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.PRICING_PROVIDER_ERROR]: {\n code: ERROR_CODES.PRICING_PROVIDER_ERROR,\n status: HTTP_STATUS.BAD_GATEWAY,\n category: ERROR_CATEGORY.Provider,\n userMessage: 'errors.payment.pricing.provider_error',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n\n [ERROR_CODES.PRICING_ALREADY_INACTIVE]: {\n code: ERROR_CODES.PRICING_ALREADY_INACTIVE,\n status: HTTP_STATUS.CONFLICT,\n category: ERROR_CATEGORY.Conflict,\n userMessage: 'errors.payment.pricing.already_inactive',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.PRICING_SYNC_FAILED]: {\n code: ERROR_CODES.PRICING_SYNC_FAILED,\n status: HTTP_STATUS.BAD_GATEWAY,\n category: ERROR_CATEGORY.Provider,\n userMessage: 'errors.payment.pricing.sync_failed',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n\n [ERROR_CODES.PRICING_REQUIRES_NEW_VERSION]: {\n code: ERROR_CODES.PRICING_REQUIRES_NEW_VERSION,\n status: HTTP_STATUS.CONFLICT,\n category: ERROR_CATEGORY.Conflict,\n userMessage: 'errors.payment.pricing.requires_new_version',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.INVALID_CREDENTIALS]: {\n code: ERROR_CODES.INVALID_CREDENTIALS,\n status: HTTP_STATUS.UNAUTHORIZED,\n category: ERROR_CATEGORY.Authentication,\n userMessage: 'errors.auth.invalid_credentials',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.TOKEN_EXPIRED]: {\n code: ERROR_CODES.TOKEN_EXPIRED,\n status: HTTP_STATUS.UNAUTHORIZED,\n category: ERROR_CATEGORY.Authentication,\n userMessage: 'errors.auth.token_expired',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.TOKEN_INVALID]: {\n code: ERROR_CODES.TOKEN_INVALID,\n status: HTTP_STATUS.UNAUTHORIZED,\n category: ERROR_CATEGORY.Authentication,\n userMessage: 'errors.auth.token_invalid',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n [ERROR_CODES.TOKEN_REVOKED]: {\n code: ERROR_CODES.TOKEN_REVOKED,\n status: HTTP_STATUS.UNAUTHORIZED,\n category: ERROR_CATEGORY.Authentication,\n userMessage: 'errors.auth.token_revoked',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.SESSION_EXPIRED]: {\n code: ERROR_CODES.SESSION_EXPIRED,\n status: HTTP_STATUS.UNAUTHORIZED,\n category: ERROR_CATEGORY.Authentication,\n userMessage: 'errors.auth.session_expired',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.MFA_REQUIRED]: {\n code: ERROR_CODES.MFA_REQUIRED,\n status: HTTP_STATUS.FORBIDDEN,\n category: ERROR_CATEGORY.Authorization,\n userMessage: 'errors.auth.mfa_required',\n severity: ERROR_SEVERITY.Low,\n retryable: false,\n },\n [ERROR_CODES.MFA_INVALID]: {\n code: ERROR_CODES.MFA_INVALID,\n status: HTTP_STATUS.UNAUTHORIZED,\n category: ERROR_CATEGORY.Authentication,\n userMessage: 'errors.auth.mfa_invalid',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.INSUFFICIENT_PERMISSIONS]: {\n code: ERROR_CODES.INSUFFICIENT_PERMISSIONS,\n status: HTTP_STATUS.FORBIDDEN,\n category: ERROR_CATEGORY.Authorization,\n userMessage: 'errors.auth.insufficient_permissions',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.ROLE_REQUIRED]: {\n code: ERROR_CODES.ROLE_REQUIRED,\n status: HTTP_STATUS.FORBIDDEN,\n category: ERROR_CATEGORY.Authorization,\n userMessage: 'errors.auth.role_required',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.WALLET_SIGNATURE_INVALID]: {\n code: ERROR_CODES.WALLET_SIGNATURE_INVALID,\n status: HTTP_STATUS.UNAUTHORIZED,\n category: ERROR_CATEGORY.Authentication,\n userMessage: 'errors.auth.wallet_signature_invalid',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n [ERROR_CODES.NONCE_EXPIRED]: {\n code: ERROR_CODES.NONCE_EXPIRED,\n status: HTTP_STATUS.UNAUTHORIZED,\n category: ERROR_CATEGORY.Authentication,\n userMessage: 'errors.auth.nonce_expired',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.NONCE_ALREADY_USED]: {\n code: ERROR_CODES.NONCE_ALREADY_USED,\n status: HTTP_STATUS.UNAUTHORIZED,\n category: ERROR_CATEGORY.Authentication,\n userMessage: 'errors.auth.nonce_already_used',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n [ERROR_CODES.ACCOUNT_LOCKED]: {\n code: ERROR_CODES.ACCOUNT_LOCKED,\n status: HTTP_STATUS.LOCKED,\n category: ERROR_CATEGORY.Authorization,\n userMessage: 'errors.auth.account_locked',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n [ERROR_CODES.ACCOUNT_SUSPENDED]: {\n code: ERROR_CODES.ACCOUNT_SUSPENDED,\n status: HTTP_STATUS.FORBIDDEN,\n category: ERROR_CATEGORY.Authorization,\n userMessage: 'errors.auth.account_suspended',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n};\n","// ============================================\n// USER DEFINITION ENUMS\n// ============================================\n\nimport { ERROR_CATEGORY, ERROR_CODES, ERROR_SEVERITY } from '../errors';\nimport { HTTP_STATUS } from '../http/constants';\n\n/**\n * Enum representing the different roles a user can have within the system.\n * @description Roles are used to determine access levels, permissions, and user-specific experiences.\n *\n * @example\n * ```typescript\n * import { USER_ROLE } from '@plyaz/types';\n *\n * const userRole = USER_ROLE.Athlete; // 'athlete'\n * const isAdmin = userRole === USER_ROLE.Admin || userRole === USER_ROLE.SuperAdmin;\n * ```\n */\nexport const USER_ROLE = {\n /** A user who is an athlete and participates in sports activities. */\n Athlete: 'athlete',\n\n /** A user who scouts and discovers talent. */\n Scout: 'scout',\n\n /** A user who acts as an agent representing athletes or clubs. */\n Agent: 'agent',\n\n /** A user representing a sports club or organization. */\n Club: 'club',\n\n /** A fan or supporter of athletes or clubs. */\n Fan: 'fan',\n\n /** A system administrator with access to management tools. */\n Admin: 'admin',\n\n /** A super admin with the highest level of access and control. */\n SuperAdmin: 'super.admin',\n} as const;\n\n/**\n * Enum representing the current status of a user account.\n * @description Statuses are used to determine login availability, visibility, and user flow.\n *\n * @example\n * ```typescript\n * import { USER_STATUS } from '@plyaz/types';\n *\n * const isAccessible = status === USER_STATUS.Active;\n * const needsReview = status === USER_STATUS.Pending;\n * ```\n */\nexport const USER_STATUS = {\n /** Active user with full access. */\n Active: 'active',\n\n /** Inactive user, typically not currently using the platform. */\n Inactive: 'inactive',\n\n /** User account is awaiting approval or completion of setup. */\n Pending: 'pending',\n\n /** User has been temporarily suspended due to policy violations or manual review. */\n Suspended: 'suspended',\n\n /** User has been permanently banned from the platform. */\n Banned: 'banned',\n} as const;\n\n// ============================================\n// AUTHENTICATION PROVIDER ENUMS\n// ============================================\n\n/**\n * Enum representing the primary authentication provider technology stack.\n * @description Defines the system used to manage user identities and issue tokens.\n *\n * @enum {string}\n */\nexport enum AUTH_PROVIDER_TYPE {\n /** Uses Clerk for external authentication and Supabase for internal RLS/DB sync. */\n ClerkSupabase = 'CLERK_SUPABASE',\n /** Uses an internal database for managing credentials (typically for B2B/Backoffice). */\n InternalDb = 'INTERNAL_DB',\n}\n\n/**\n * Authentication provider types.\n * @description Defines the specific login method or external identity provider used by the user.\n *\n * @enum {string}\n */\nexport enum AUTH_PROVIDER {\n /** Email/password authentication. */\n EMAIL = 'EMAIL',\n /** Clerk authentication. */\n CLERK = 'CLERK',\n /** Google OAuth. */\n GOOGLE = 'GOOGLE',\n /** Facebook OAuth. */\n FACEBOOK = 'FACEBOOK',\n /** Apple Sign In. */\n APPLE = 'APPLE',\n /** Web3 wallet authentication (e.g., MetaMask). */\n WEB3 = 'WEB3',\n}\n\n// ============================================\n// ROLE & TOKEN ENUMS\n// ============================================\n\n/**\n * User role assignment status.\n * @description Defines the state of a user's relationship with a specific role.\n *\n * @enum {string}\n */\nexport enum USER_ROLE_STATUS {\n /** Role is active and grants associated permissions. */\n ACTIVE = 'ACTIVE',\n /** Role is inactive (temporarily disabled or superseded by a primary role). */\n INACTIVE = 'INACTIVE',\n /** Role is suspended (often due to user policy violation, preventing role-specific access). */\n SUSPENDED = 'SUSPENDED',\n}\n\n/**\n * Token type for authentication.\n * @description Defines the schema or standard used by the authentication token.\n *\n * @enum {string}\n */\nexport enum TOKEN_TYPE {\n /** Bearer token standard, commonly used for OAuth 2.0. */\n BEARER = 'Bearer',\n /** JSON Web Token standard. */\n JWT = 'JWT',\n}\n\nexport const AUTH_ERROR_DEFINITIONS = {\n [ERROR_CODES.INVALID_CREDENTIALS]: {\n code: ERROR_CODES.INVALID_CREDENTIALS,\n status: HTTP_STATUS.UNAUTHORIZED,\n category: ERROR_CATEGORY.Authentication,\n userMessage: 'errors.auth.invalid_credentials',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.TOKEN_EXPIRED]: {\n code: ERROR_CODES.TOKEN_EXPIRED,\n status: HTTP_STATUS.UNAUTHORIZED,\n category: ERROR_CATEGORY.Authentication,\n userMessage: 'errors.auth.token_expired',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.TOKEN_INVALID]: {\n code: ERROR_CODES.TOKEN_INVALID,\n status: HTTP_STATUS.UNAUTHORIZED,\n category: ERROR_CATEGORY.Authentication,\n userMessage: 'errors.auth.token_invalid',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n [ERROR_CODES.TOKEN_REVOKED]: {\n code: ERROR_CODES.TOKEN_REVOKED,\n status: HTTP_STATUS.UNAUTHORIZED,\n category: ERROR_CATEGORY.Authentication,\n userMessage: 'errors.auth.token_revoked',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.SESSION_EXPIRED]: {\n code: ERROR_CODES.SESSION_EXPIRED,\n status: HTTP_STATUS.UNAUTHORIZED,\n category: ERROR_CATEGORY.Authentication,\n userMessage: 'errors.auth.session_expired',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.MFA_REQUIRED]: {\n code: ERROR_CODES.MFA_REQUIRED,\n status: HTTP_STATUS.FORBIDDEN,\n category: ERROR_CATEGORY.Authorization,\n userMessage: 'errors.auth.mfa_required',\n severity: ERROR_SEVERITY.Low,\n retryable: false,\n },\n [ERROR_CODES.MFA_INVALID]: {\n code: ERROR_CODES.MFA_INVALID,\n status: HTTP_STATUS.UNAUTHORIZED,\n category: ERROR_CATEGORY.Authentication,\n userMessage: 'errors.auth.mfa_invalid',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.INSUFFICIENT_PERMISSIONS]: {\n code: ERROR_CODES.INSUFFICIENT_PERMISSIONS,\n status: HTTP_STATUS.FORBIDDEN,\n category: ERROR_CATEGORY.Authorization,\n userMessage: 'errors.auth.insufficient_permissions',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.ROLE_REQUIRED]: {\n code: ERROR_CODES.ROLE_REQUIRED,\n status: HTTP_STATUS.FORBIDDEN,\n category: ERROR_CATEGORY.Authorization,\n userMessage: 'errors.auth.role_required',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.WALLET_SIGNATURE_INVALID]: {\n code: ERROR_CODES.WALLET_SIGNATURE_INVALID,\n status: HTTP_STATUS.UNAUTHORIZED,\n category: ERROR_CATEGORY.Authentication,\n userMessage: 'errors.auth.wallet_signature_invalid',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n [ERROR_CODES.NONCE_EXPIRED]: {\n code: ERROR_CODES.NONCE_EXPIRED,\n status: HTTP_STATUS.UNAUTHORIZED,\n category: ERROR_CATEGORY.Authentication,\n userMessage: 'errors.auth.nonce_expired',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.NONCE_ALREADY_USED]: {\n code: ERROR_CODES.NONCE_ALREADY_USED,\n status: HTTP_STATUS.UNAUTHORIZED,\n category: ERROR_CATEGORY.Authentication,\n userMessage: 'errors.auth.nonce_already_used',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n [ERROR_CODES.ACCOUNT_LOCKED]: {\n code: ERROR_CODES.ACCOUNT_LOCKED,\n status: HTTP_STATUS.LOCKED,\n category: ERROR_CATEGORY.Authorization,\n userMessage: 'errors.auth.account_locked',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n [ERROR_CODES.ACCOUNT_SUSPENDED]: {\n code: ERROR_CODES.ACCOUNT_SUSPENDED,\n status: HTTP_STATUS.FORBIDDEN,\n category: ERROR_CATEGORY.Authorization,\n userMessage: 'errors.auth.account_suspended',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n} as const;\n","import { z } from 'zod';\n\n/**\n * Password minimum character length\n */\nconst DEFAULT_PASSWORD = 8;\n\n/**\n * Contact Us Form Schema\n * Validates contact form submissions\n */\nexport const ContactUsFormSchema = z.object({\n name: z.string({ error: 'errors.form.missingField' }).min(1, 'errors.form.nameMissing'),\n email: z.email({ error: 'errors.form.emailInvalid' }),\n});\n\n/**\n * Contact Us Form Type\n */\nexport type ContactUsForm = z.infer<typeof ContactUsFormSchema>;\n\n/**\n * Signup Form Schema\n * Validates user registration form submissions\n */\nexport const SignupFormSchema = z.object({\n name: z.string({ error: 'errors.form.missingField' }).min(1, 'errors.form.nameMissing'),\n email: z.email({ error: 'errors.form.emailInvalid' }),\n password: z\n .string({ error: 'errors.form.missingField' })\n .min(DEFAULT_PASSWORD, 'errors.form.passwordTooShort'),\n});\n\n/**\n * Signup Form Type\n */\nexport type SignupForm = z.infer<typeof SignupFormSchema>;\n","import type { WithExpiration, WithAuthTokens } from '../common/types';\nimport type { BaseErrorContext } from '../errors';\nimport type { AUTH_ERROR_DEFINITIONS, USER_ROLE_STATUS } from './enums';\n\n// ============================================\n// AUTHENTICATION TYPES\n// ============================================\n\n/**\n * AuthToken Interface.\n * @description Represents an authentication token set returned after a successful login or refresh.\n * @interface AuthToken\n */\nexport interface AuthToken extends WithExpiration, WithAuthTokens {\n /**\n * Token type, typically \"Bearer\" for OAuth2-style tokens.\n */\n readonly tokenType: 'Bearer';\n}\n\n/**\n * AuthCredentials.\n * @description Represents the credentials used for traditional email/password authentication.\n * This is used for providers that handle this type of login directly.\n */\nexport type AuthCredentials = {\n /** The user's email address. */\n email: string;\n /** The user's password (optional, used in traditional login flows). */\n password?: string;\n /**\n * One-Time Password (OTP) or magic link token.\n * This could be extended with other credential types as needed.\n */\n otp?: string;\n};\n\n/**\n * UserContext.\n * @description A standardized representation of a user's context.\n * This ensures that regardless of the underlying authentication provider (Clerk, Supabase, etc.),\n * your application's internal code can interact with a consistent user object.\n */\nexport type UserContext = {\n /** A unique identifier for the user (e.g., a UUID from Supabase). */\n id: string;\n /** The user's primary email address. */\n email: string;\n /** Timestamp when the user was created. */\n createdAt: Date;\n // You can extend this with additional user profile information\n // that is consistent across all providers, such as:\n // name?: string;\n // profileImageUrl?: string;\n};\n\n// ============================================\n// SERVICE PROVIDER CONTRACTS\n// ============================================\n\n/**\n * @fileoverview Defines the contract for all authentication service providers\n * responsible for handling the synchronization between an external identity\n * source (like Clerk, Auth0, etc.) and the internal database user structure.\n *\n * Any provider implementing this interface must handle user lookup, creation,\n * and issuance of the necessary internal tokens (like the Supabase RLS JWT).\n *\n * @interface AuthServiceProvider\n */\nexport interface AuthServiceProvider {\n /**\n * Synchronizes an external user's identity with the internal application database.\n *\n * This is typically called immediately after a successful authentication with\n * an external provider to ensure the user exists in the local database,\n * update their metadata, and issue an internal authorization token (e.g., RLS JWT).\n *\n * @param clerkJwt The JWT received from the external provider (e.g., Clerk).\n * @param externalId The unique identifier from the external authentication provider (e.g., Clerk's 'sub').\n * @param email The user's primary email address from the external provider.\n * @returns A Promise resolving to an object containing the internal UserContext and the provider-specific RLS JWT.\n */\n syncUserFromExternalToken(\n clerkJwt: string,\n externalId: string,\n email: string\n ): Promise<{ user: UserContext; supabaseRlsToken: string }>;\n\n /**\n * Retrieves a user's context from the internal database using their internal ID.\n *\n * This method is generally used by trusted backend services and must bypass RLS.\n *\n * @param userId The internal database UUID of the user.\n * @returns A Promise resolving to the user's basic context (`UserContext`) or `null` if not found.\n */\n getUserById(userId: string): Promise<UserContext | null>;\n}\n\n// ============================================\n// USER TYPES\n// ============================================\n\n/**\n * B2C User Info (public schema).\n * @description Represents platform users: fans, athletes, clubs, scouts, agents.\n * * @interface UserInfo\n * @property {string} id - Unique user identifier (UUID).\n * @property {string} email - User email address (unique).\n * @property {string} [clerkUserId] - Clerk provider user ID.\n * @property {string} authProvider - Authentication provider used.\n * @property {string} [firstName] - User first name.\n * @property {string} [lastName] - User last name.\n * @property {string} displayName - Display name (required).\n * @property {string} [avatarUrl] - Avatar image URL.\n * @property {string} [phoneNumber] - Phone number.\n * @property {boolean} isActive - Account active status.\n * @property {boolean} isVerified - Email verification status.\n * @property {Date} createdAt - Account creation timestamp.\n * @property {Date} updatedAt - Last update timestamp.\n * @property {Date} [lastLoginAt] - Last login timestamp.\n */\nexport interface UserInfo {\n id: string;\n email: string;\n clerkUserId?: string;\n authProvider: string;\n firstName?: string;\n lastName?: string;\n displayName: string;\n avatarUrl?: string;\n phoneNumber?: string;\n isActive: boolean;\n isVerified: boolean;\n createdAt: Date;\n updatedAt: Date;\n lastLoginAt?: Date;\n}\n\n/**\n * B2B User (backoffice schema).\n * @description Represents internal staff: admins, moderators, support, finance, compliance.\n * * @interface BackofficeUser\n * @property {string} id - Unique user identifier (UUID).\n * @property {string} email - User email address (unique).\n * @property {string} passwordHash - Hashed password.\n * @property {string} [clerkUserId] - Clerk provider user ID.\n * @property {string} authProvider - Authentication provider used.\n * @property {string} [firstName] - User first name.\n * @property {string} [lastName] - User last name.\n * @property {string} displayName - Display name (required).\n * @property {string} [avatarUrl] - Avatar image URL.\n * @property {string} [phoneNumber] - Phone number.\n * @property {boolean} isActive - Account active status.\n * @property {boolean} isVerified - Email verification status.\n * @property {boolean} isSuspended - Account suspension status.\n * @property {string} [suspensionReason] - Reason for suspension.\n * @property {Date} [suspendedAt] - Suspension timestamp.\n * @property {Date} createdAt - Account creation timestamp.\n * @property {Date} updatedAt - Last update timestamp.\n * @property {Date} [lastLoginAt] - Last login timestamp.\n */\nexport interface BackofficeUser {\n id: string;\n email: string;\n passwordHash: string;\n clerkUserId?: string;\n authProvider: string;\n firstName?: string;\n lastName?: string;\n displayName: string;\n avatarUrl?: string;\n phoneNumber?: string;\n isActive: boolean;\n isVerified: boolean;\n isSuspended: boolean;\n suspensionReason?: string;\n suspendedAt?: Date;\n createdAt: Date;\n updatedAt: Date;\n lastLoginAt?: Date;\n}\n\n// ============================================\n// SESSION TYPES\n// ============================================\n\n/**\n * B2C Session (public schema).\n * @description Tracks authenticated user sessions with device and activity info.\n * * @interface Session\n * @property {string} id - Unique session identifier.\n * @property {string} userId - ID of the user owning the session.\n * @property {string} provider - Authentication provider used.\n * @property {string} [providerSessionId] - External provider's session ID (if applicable).\n * @property {Date} expiresAt - Session expiration timestamp.\n * @property {Date} createdAt - Session creation timestamp.\n * @property {Date} lastActivityAt - Last activity timestamp for the session.\n * @property {string} [ipAddress] - IP address used when the session was created/last used.\n * @property {string} [userAgent] - User agent string of the client.\n * @property {Record<string, unknown>} [metadata] - Arbitrary metadata related to the session.\n */\nexport interface Session {\n id: string;\n userId: string;\n provider: string;\n providerSessionId?: string;\n expiresAt: Date;\n createdAt: Date;\n lastActivityAt: Date;\n ipAddress?: string;\n userAgent?: string;\n metadata?: Record<string, unknown>;\n}\n\n/**\n * B2B Session (backoffice schema).\n * @description Tracks authenticated backoffice user sessions.\n * * @interface BackofficeSession\n * @property {string} id - Unique session identifier.\n * @property {string} backofficeUserId - ID of the backoffice user owning the session.\n * @property {string} provider - Authentication provider used.\n * @property {string} [providerSessionId] - External provider's session ID (if applicable).\n * @property {Date} expiresAt - Session expiration timestamp.\n * @property {Date} createdAt - Session creation timestamp.\n * @property {Date} lastActivityAt - Last activity timestamp for the session.\n * @property {string} [ipAddress] - IP address used when the session was created/last used.\n * @property {string} [userAgent] - User agent string of the client.\n * @property {Record<string, unknown>} [metadata] - Arbitrary metadata related to the session.\n */\nexport interface BackofficeSession {\n id: string;\n backofficeUserId: string;\n provider: string;\n providerSessionId?: string;\n expiresAt: Date;\n createdAt: Date;\n lastActivityAt: Date;\n ipAddress?: string;\n userAgent?: string;\n metadata?: Record<string, unknown>;\n}\n\n// ============================================\n// CONNECTED ACCOUNT TYPES\n// ============================================\n\n/**\n * Connected Account (provider linking).\n * @description Links external OAuth/Web3 provider accounts to users.\n * Supports OAuth providers (Clerk, Google, etc.) and Web3 wallets.\n * * @interface ConnectedAccount\n * @property {string} id - Unique connected account identifier.\n * @property {string} userId - ID of the internal user account.\n * @property {string} providerType - Category of the provider (e.g., 'oauth', 'web3').\n * @property {string} provider - Specific provider name (e.g., 'google', 'metamask').\n * @property {string} providerAccountId - Unique ID from the external provider.\n * @property {string} [walletAddress] - Wallet address for Web3 accounts.\n * @property {string} [accessTokenEncrypted] - Encrypted access token for the provider.\n * @property {boolean} isPrimary - Flag indicating if this is the user's primary login account.\n * @property {Date} linkedAt - Timestamp when the account was linked.\n */\nexport interface ConnectedAccount {\n id: string;\n userId: string;\n providerType: string;\n provider: string;\n providerAccountId: string;\n providerEmail?: string;\n providerUsername?: string;\n providerDisplayName?: string;\n providerAvatarUrl?: string;\n providerProfileUrl?: string;\n providerMetadata?: Record<string, unknown>;\n walletAddress?: string;\n chainId?: string;\n accessTokenEncrypted?: string;\n refreshTokenEncrypted?: string;\n tokenExpiresAt?: Date;\n tokenScope?: string;\n isPrimary: boolean;\n isVerified: boolean;\n isActive: boolean;\n linkedAt: Date;\n linkedIpAddress?: string;\n linkedUserAgent?: string;\n lastUsedAt?: Date;\n lastUsedIpAddress?: string;\n createdAt: Date;\n updatedAt: Date;\n}\n\n// ============================================\n// AUTH TOKENS\n// ============================================\n\n/**\n * Authentication tokens returned after successful login.\n * * @interface AuthTokens\n * @property {string} accessToken - The main access token (JWT or similar).\n * @property {string} [refreshToken] - Token used to refresh the access token.\n * @property {number} expiresIn - Access token expiration time in seconds.\n * @property {string} tokenType - Type of the token, usually 'Bearer'.\n */\nexport interface AuthTokens {\n accessToken: string;\n refreshToken?: string;\n expiresIn: number;\n tokenType: string;\n}\n\n// ============================================\n// RBAC TYPES\n// ============================================\n\n/**\n * B2C Role (public schema).\n * @description Defines user roles: FAN, ATHLETE, SCOUT, AGENT, CLUB, DEVELOPER, ADMIN.\n * * @interface Role\n * @property {string} id - Unique role identifier.\n * @property {string} code - Machine-readable role code (e.g., 'ATHLETE').\n * @property {string} name - Human-readable role name.\n * @property {number} hierarchy - Numeric value for role hierarchy/priority.\n * @property {boolean} isSystem - True if the role is system-defined and cannot be deleted.\n */\nexport interface Role {\n id: string;\n code: string;\n name: string;\n description?: string;\n hierarchy: number;\n canCreateCampaigns?: boolean;\n canContribute?: boolean;\n requiresKyc?: boolean;\n isActive: boolean;\n isSystem: boolean;\n metadata?: Record<string, unknown>;\n createdAt: Date;\n updatedAt: Date;\n}\n\n/**\n * B2B Role (backoffice schema).\n * @description Defines staff roles: SUPER_ADMIN, ADMIN, MODERATOR, FINANCE, COMPLIANCE, SUPPORT.\n * * @interface BackofficeRole\n * @property {string} id - Unique role identifier.\n * @property {string} code - Machine-readable role code (e.g., 'SUPER_ADMIN').\n * @property {string} name - Human-readable role name.\n * @property {number} hierarchy - Numeric value for role hierarchy/priority.\n * @property {boolean} canManageUsers - Permission to manage user accounts.\n * @property {boolean} canViewAllData - Permission to view all data regardless of ownership.\n */\nexport interface BackofficeRole {\n id: string;\n code: string;\n name: string;\n description?: string;\n hierarchy: number;\n canApproveCampaigns: boolean;\n canApproveKyc: boolean;\n canApprovePayouts: boolean;\n canManageUsers: boolean;\n canManageRoles: boolean;\n canViewAllData: boolean;\n isActive: boolean;\n isSystem: boolean;\n metadata?: Record<string, unknown>;\n createdAt: Date;\n updatedAt: Date;\n}\n\n/**\n * Permission (backoffice only).\n * @description Fine-grained permissions for backoffice users.\n * * @interface Permission\n * @property {string} id - Unique permission identifier.\n * @property {string} code - Machine-readable permission code (e.g., 'USER_READ').\n * @property {string} resource - The resource the permission applies to (e.g., 'USER', 'CAMPAIGN').\n * @property {string} action - The action the permission allows (e.g., 'READ', 'DELETE').\n */\nexport interface Permission {\n id: string;\n code: string;\n name: string;\n description?: string;\n resource: string;\n action: string;\n isActive: boolean;\n isSystem: boolean;\n metadata?: Record<string, unknown>;\n createdAt: Date;\n updatedAt: Date;\n}\n\n/**\n * Role-Permission mapping (backoffice only).\n * @description Links permissions to roles.\n * * @interface RolePermission\n * @property {string} id - Unique mapping identifier.\n * @property {string} roleId - ID of the role.\n * @property {string} permissionId - ID of the permission granted.\n * @property {Date} grantedAt - Timestamp when the permission was assigned to the role.\n */\nexport interface RolePermission {\n id: string;\n roleId: string;\n role: string;\n permissionId: string;\n grantedAt: Date;\n grantedBy?: string;\n}\n\n/**\n * User-Permission mapping (backoffice only).\n * @description Grants/revokes specific permissions to users, overriding role permissions.\n * * @interface UserPermission\n * @property {string} id - Unique mapping identifier.\n * @property {string} backofficeUserId - ID of the backoffice user.\n * @property {string} permissionId - ID of the permission.\n * @property {boolean} isGranted - True to grant, false to explicitly revoke.\n */\nexport interface UserPermission {\n id: string;\n backofficeUserId: string;\n permissionId: string;\n isGranted: boolean;\n expiresAt?: Date;\n grantedAt: Date;\n grantedBy?: string;\n reason?: string;\n}\n\n/**\n * B2C User-Role assignment.\n * @description Links users to roles with status tracking.\n * * @interface UserRole\n * @property {string} userId - ID of the B2C user.\n * @property {string} roleId - ID of the role assigned.\n * @property {boolean} isPrimary - True if this is the user's main, active role.\n * @property {USER_ROLE_STATUS} status - Current status of the role assignment (e.g., ACTIVE, PENDING).\n */\nexport interface UserRole {\n id: string;\n userId: string;\n roleId: string;\n role: string;\n isPrimary: boolean;\n status: USER_ROLE_STATUS;\n assignedBy?: string;\n assignedReason?: string;\n expiresAt?: Date;\n createdAt: Date;\n updatedAt: Date;\n}\n\n/**\n * B2B User-Role assignment.\n * @description Links backoffice users to roles.\n * * @interface BackofficeUserRole\n * @property {string} backofficeUserId - ID of the backoffice user.\n * @property {string} roleId - ID of the role assigned.\n * @property {boolean} isPrimary - True if this is the user's main, active role.\n * @property {USER_ROLE_STATUS} status - Current status of the role assignment.\n */\nexport interface BackofficeUserRole {\n id: string;\n backofficeUserId: string;\n roleId: string;\n role: string;\n isPrimary: boolean;\n status: USER_ROLE_STATUS;\n assignedBy?: string;\n assignedReason?: string;\n expiresAt?: Date;\n createdAt: Date;\n updatedAt: Date;\n}\n\n// ============================================\n// AUTH PROVIDER ADAPTER INTERFACE\n// ============================================\n\n/**\n * Authentication provider adapter interface.\n * @description Defines contract for provider-agnostic authentication interactions.\n * * @interface AuthProviderAdapter\n * @property {string} name - The name of the authentication provider (e.g., 'clerk', 'auth0').\n */\nexport interface AuthProviderAdapter {\n name: string;\n\n /**\n * Verifies an external authentication token (e.g., a JWT).\n * @param token The token to verify.\n * @returns A Promise resolving to the verified token result.\n */\n verifyToken(token: string): Promise<VerifiedToken>;\n\n /**\n * Retrieves user profile information from the external provider using a token.\n * @param token The access token.\n * @returns A Promise resolving to the provider's user information.\n */\n getUserInfo(token: string): Promise<ProviderUserInfo>;\n\n /**\n * Refreshes an expired access token using a refresh token (optional method).\n * @param refreshToken The token used for refreshing.\n * @returns A Promise resolving to a new set of authentication tokens.\n */\n refreshToken?(refreshToken: string): Promise<AuthTokens>;\n\n /**\n * Invalidates a token on the provider's side (e.g., logout, optional method).\n * @param token The token to revoke.\n * @returns A Promise that resolves when the token is successfully revoked.\n */\n revokeToken?(token: string): Promise<void>;\n}\n\n/**\n * Verified token result.\n * @description Data returned after successful token verification.\n * * @interface VerifiedToken\n * @property {string} userId - The user's ID from the external provider.\n * @property {string} provider - The name of the provider.\n * @property {string} providerAccountId - The provider's unique account ID.\n */\nexport interface VerifiedToken {\n userId: string;\n provider: string;\n providerAccountId: string;\n email?: string;\n expiresAt?: Date;\n metadata?: Record<string, unknown>;\n}\n\n/**\n * Provider user information.\n * @description User profile data fetched from an external provider.\n * * @interface ProviderUserInfo\n * @property {string} providerAccountId - Unique ID from the external provider.\n * @property {string} [email] - The user's email address from the provider.\n */\nexport interface ProviderUserInfo {\n providerAccountId: string;\n email?: string;\n displayName?: string;\n firstName?: string;\n lastName?: string;\n avatarUrl?: string;\n phoneNumber?: string;\n metadata?: Record<string, unknown>;\n}\n\n// ============================================\n// REPOSITORY INTERFACES\n// ============================================\n\n/**\n * User repository interface.\n * @description Defines data access methods for B2C user management.\n * * @interface UserRepositoryInterface\n */\nexport interface UserRepositoryInterface {\n /** Find a user by their internal ID. */\n findById(id: string): Promise<UserInfo | null>;\n /** Find a user by their primary email address. */\n findByEmail(email: string): Promise<UserInfo | null>;\n /** Find a user linked to a specific external provider account. */\n findByProviderAccount(provider: string, providerAccountId: string): Promise<UserInfo | null>;\n /** Create a new user record. */\n create(data: CreateUserData): Promise<UserInfo>;\n /** Update an existing user record. */\n update(id: string, data: UpdateUserData): Promise<UserInfo>;\n /** Delete a user record. */\n delete(id: string): Promise<void>;\n}\n\n/**\n * Session repository interface.\n * @description Defines data access methods for B2C session management.\n * * @interface SessionRepositoryInterface\n */\nexport interface SessionRepositoryInterface {\n /** Create a new session record. */\n create(data: CreateSessionData): Promise<Session>;\n /** Find a session by its ID. */\n findById(id: string): Promise<Session | null>;\n /** Find all active sessions for a given user ID. */\n findByUserId(userId: string): Promise<Session[]>;\n /** Validate if a session ID is current and not expired. */\n validate(sessionId: string): Promise<Session | null>;\n /** Invalidate (log out) a specific session. */\n invalidate(sessionId: string): Promise<void>;\n /** Invalidate (log out) all sessions for a user. */\n invalidateAllForUser(userId: string): Promise<void>;\n /** Update the last activity timestamp for a session. */\n updateActivity(sessionId: string): Promise<void>;\n}\n\n/**\n * Connected account repository interface.\n * @description Defines data access methods for provider account linking.\n * * @interface ConnectedAccountRepositoryInterface\n */\nexport interface ConnectedAccountRepositoryInterface {\n /** Create a new connected account link. */\n create(data: CreateConnectedAccountData): Promise<ConnectedAccount>;\n /** Find a connected account by its internal ID. */\n findById(id: string): Promise<ConnectedAccount | null>;\n /** Find all connected accounts linked to a user. */\n findByUserId(userId: string): Promise<ConnectedAccount[]>;\n /** Find a connected account by provider and account ID. */\n findByProvider(provider: string, providerAccountId: string): Promise<ConnectedAccount | null>;\n /** Update an existing connected account record. */\n update(id: string, data: UpdateConnectedAccountData): Promise<ConnectedAccount>;\n /** Delete a connected account link. */\n delete(id: string): Promise<void>;\n}\n\n// ============================================\n// DATA TRANSFER OBJECTS (DTOs)\n// ============================================\n\n/**\n * DTO for creating B2C users.\n * @interface CreateUserData\n */\nexport interface CreateUserData {\n email: string;\n clerkUserId?: string;\n authProvider?: string;\n firstName?: string;\n lastName?: string;\n displayName: string;\n avatarUrl?: string;\n phoneNumber?: string;\n isVerified?: boolean;\n}\n\n/**\n * DTO for creating B2B users.\n * @interface CreateBackofficeUserData\n */\nexport interface CreateBackofficeUserData {\n email: string;\n passwordHash: string;\n clerkUserId?: string;\n authProvider?: string;\n firstName?: string;\n lastName?: string;\n displayName: string;\n avatarUrl?: string;\n phoneNumber?: string;\n isVerified?: boolean;\n}\n\n/**\n * DTO for updating B2C users.\n * @interface UpdateUserData\n */\nexport interface UpdateUserData {\n email?: string;\n clerkUserId?: string;\n authProvider?: string;\n firstName?: string;\n lastName?: string;\n displayName?: string;\n avatarUrl?: string;\n phoneNumber?: string;\n isActive?: boolean;\n isVerified?: boolean;\n lastLoginAt?: Date;\n}\n\n/**\n * DTO for updating B2B users.\n * @interface UpdateBackofficeUserData\n */\nexport interface UpdateBackofficeUserData {\n email?: string;\n passwordHash?: string;\n clerkUserId?: string;\n authProvider?: string;\n firstName?: string;\n lastName?: string;\n displayName?: string;\n avatarUrl?: string;\n phoneNumber?: string;\n isActive?: boolean;\n isVerified?: boolean;\n isSuspended?: boolean;\n suspensionReason?: string;\n suspendedAt?: Date;\n lastLoginAt?: Date;\n}\n\n/**\n * DTO for creating sessions.\n * @interface CreateSessionData\n */\nexport interface CreateSessionData {\n userId: string;\n provider: string;\n providerSessionId?: string;\n expiresAt: Date;\n ipAddress?: string;\n userAgent?: string;\n metadata?: Record<string, unknown>;\n}\n\n/**\n * DTO for creating connected accounts.\n * @interface CreateConnectedAccountData\n */\nexport interface CreateConnectedAccountData {\n userId: string;\n providerType: string;\n provider: string;\n providerAccountId: string;\n providerEmail?: string;\n providerUsername?: string;\n providerDisplayName?: string;\n providerAvatarUrl?: string;\n providerProfileUrl?: string;\n providerMetadata?: Record<string, unknown>;\n walletAddress?: string;\n chainId?: string;\n accessTokenEncrypted?: string;\n refreshTokenEncrypted?: string;\n tokenExpiresAt?: Date;\n tokenScope?: string;\n isPrimary?: boolean;\n isVerified?: boolean;\n isActive?: boolean;\n linkedIpAddress?: string;\n linkedUserAgent?: string;\n}\n\n/**\n * DTO for updating connected accounts.\n * @interface UpdateConnectedAccountData\n */\nexport interface UpdateConnectedAccountData {\n providerEmail?: string;\n providerUsername?: string;\n providerDisplayName?: string;\n providerAvatarUrl?: string;\n providerProfileUrl?: string;\n providerMetadata?: Record<string, unknown>;\n accessTokenEncrypted?: string;\n refreshTokenEncrypted?: string;\n tokenExpiresAt?: Date;\n tokenScope?: string;\n isPrimary?: boolean;\n isVerified?: boolean;\n isActive?: boolean;\n lastUsedAt?: Date;\n lastUsedIpAddress?: string;\n}\n\n/**\n * Enumeration of specific authentication error codes.\n * Using const assertions allows for type-safe lookups.\n */\nexport const AUTH_ERROR_CODES = {\n INVALID_CREDENTIALS: 'AUTH_INVALID_CREDENTIALS',\n TOKEN_EXPIRED: 'AUTH_TOKEN_EXPIRED',\n TOKEN_INVALID: 'AUTH_TOKEN_INVALID',\n TOKEN_REVOKED: 'AUTH_TOKEN_REVOKED',\n SESSION_EXPIRED: 'AUTH_SESSION_EXPIRED',\n MFA_REQUIRED: 'AUTH_MFA_REQUIRED',\n MFA_INVALID: 'AUTH_MFA_INVALID',\n INSUFFICIENT_PERMISSIONS: 'AUTH_INSUFFICIENT_PERMISSIONS',\n ROLE_REQUIRED: 'AUTH_ROLE_REQUIRED',\n WALLET_SIGNATURE_INVALID: 'AUTH_WALLET_SIGNATURE_INVALID',\n NONCE_EXPIRED: 'AUTH_NONCE_EXPIRED',\n NONCE_ALREADY_USED: 'AUTH_NONCE_ALREADY_USED',\n ACCOUNT_LOCKED: 'AUTH_ACCOUNT_LOCKED',\n ACCOUNT_SUSPENDED: 'AUTH_ACCOUNT_SUSPENDED',\n} as const;\n\n/**\n * Type for possible values of AUTH_ERROR_CODES.\n * This allows you to use any of the values from the AUTH_ERROR_CODES object.\n */\nexport type AuthErrorCodeValue = (typeof AUTH_ERROR_CODES)[keyof typeof AUTH_ERROR_CODES];\n\n/**\n * Options for constructing an AuthError.\n * This interface defines the optional properties you can pass\n * when creating a new AuthError instance.\n */\nexport interface AuthErrorOptions {\n /** The original error that caused this error */\n cause?: Error;\n /** Optional context providing extra error details */\n context?: BaseErrorContext;\n /** Additional metadata for the error (for debugging, logging) */\n metadata?: Record<string, unknown>;\n /** A specific correlation ID to use for this error instance */\n correlationId?: string;\n /** Override the default HTTP status code from the definition */\n statusCode?: number;\n\n // === Internationalization & Message Details ===\n\n /** The locale for the error message (e.g., 'en-US'). Defaults to a system-wide locale. */\n locale?: string;\n /** Parameters for string interpolation in the final error message. */\n params?: Record<string, string | number>;\n /** Additional structured details about the error, not for end-user display. */\n details?: Record<string, unknown>;\n}\n\n/**\n * Detailed definitions for each authentication error.\n * This object provides default metadata for each error code, including\n * the HTTP status code, a default message, and other useful properties.\n */\n\n/**\n * Type for a single error definition object.\n */\nexport type AuthErrorDefinition = (typeof AUTH_ERROR_DEFINITIONS)[AuthErrorCodeValue];\n","/**\n * Core Module System Types\n *\n * Framework-agnostic module interface for @plyaz/core.\n * Modules implement this contract to integrate with Core.\n */\n\nimport type { DatabaseServiceInterface } from '../db/databaseService';\nimport type { HttpMethod } from '../api/config/types';\nimport type {\n Type,\n DynamicModule,\n ForwardReference,\n InjectionToken,\n OptionalFactoryDependency,\n ModuleMetadata,\n} from '@nestjs/common';\n\n// Re-export HttpMethod for convenience\nexport type { HttpMethod };\n\n/**\n * Core services available to modules\n */\nexport interface CoreServices {\n db: DatabaseServiceInterface;\n // api: ApiClientService;\n // cache: CacheService;\n // logger: LoggerService;\n env: Record<string, string | undefined>;\n}\n\n/**\n * Route handler context\n */\nexport interface CoreRouteContext {\n params: Record<string, string>;\n query: Record<string, string | string[]>;\n body: unknown;\n headers: Record<string, string>;\n services: CoreServices;\n}\n\n/**\n * Route handler function\n */\nexport type CoreRouteHandler = (ctx: CoreRouteContext) => Promise<{\n status?: number;\n body?: unknown;\n headers?: Record<string, string>;\n}>;\n\n/**\n * Route definition - framework agnostic\n */\nexport interface CoreRouteDefinition {\n method: HttpMethod;\n path: string;\n handler: CoreRouteHandler;\n middleware?: string[];\n description?: string;\n}\n\n/**\n * Module configuration schema (optional)\n */\nexport interface CoreModuleConfigSchema<T = unknown> {\n parse: (config: unknown) => T;\n safeParse: (config: unknown) => { success: boolean; data?: T; error?: Error };\n}\n\n/**\n * Service factory for creating module services\n */\nexport type CoreServiceFactory<T = unknown> = (\n services: CoreServices,\n config?: unknown\n) => T | Promise<T>;\n\n/**\n * Module lifecycle hooks\n */\nexport interface CoreModuleLifecycle {\n /**\n * Called when module is initialized\n * Use for setup, connections, etc.\n */\n onInit?(services: CoreServices): Promise<void>;\n\n /**\n * Called when module is being destroyed\n * Use for cleanup, closing connections, etc.\n */\n onDestroy?(): Promise<void>;\n\n /**\n * Called when Core is fully initialized (all modules loaded)\n */\n onReady?(services: CoreServices): Promise<void>;\n}\n\n/**\n * Core module definition - framework agnostic contract\n *\n * @example\n * ```typescript\n * const FeatureFlagModule: CoreModuleDefinition = {\n * name: 'featureFlags',\n * version: '1.0.0',\n * dependencies: ['db'],\n *\n * routes: [\n * { method: 'GET', path: '/flags', handler: listFlags },\n * { method: 'GET', path: '/flags/:key', handler: getFlag },\n * ],\n *\n * services: {\n * featureFlagService: (core) => new FeatureFlagService(core.db),\n * },\n *\n * async onInit(services) {\n * // Initialize feature flag provider\n * },\n * };\n * ```\n */\nexport interface CoreModuleDefinition<TConfig = unknown> extends CoreModuleLifecycle {\n /**\n * Unique module name (used for registration and access)\n */\n name: string;\n\n /**\n * Module version\n */\n version?: string;\n\n /**\n * Core services this module depends on\n */\n dependencies?: ('db' | 'api' | 'cache' | 'logger')[];\n\n /**\n * HTTP routes provided by this module\n */\n routes?: CoreRouteDefinition[];\n\n /**\n * Services exposed by this module\n */\n services?: Record<string, CoreServiceFactory>;\n\n /**\n * Configuration schema for validation\n */\n configSchema?: CoreModuleConfigSchema<TConfig>;\n\n /**\n * Default configuration\n */\n defaultConfig?: Partial<TConfig>;\n}\n\n/**\n * Registered module instance (after initialization)\n */\nexport interface CoreRegisteredModule<TConfig = unknown> {\n definition: CoreModuleDefinition<TConfig>;\n config: TConfig;\n services: Record<string, unknown>;\n initialized: boolean;\n}\n\n/**\n * Module with configuration (result of .forRoot())\n */\nexport interface CoreConfiguredModule<TConfig = unknown> {\n definition: CoreModuleDefinition<TConfig>;\n config: TConfig;\n}\n\n/**\n * Helper to create a module definition with forRoot pattern\n */\nexport interface CoreModuleFactory<TConfig = unknown> {\n /**\n * Module definition\n */\n definition: CoreModuleDefinition<TConfig>;\n\n /**\n * Configure module with options\n */\n forRoot(config?: Partial<TConfig>): CoreConfiguredModule<TConfig>;\n\n /**\n * Use module with default config\n */\n default: CoreConfiguredModule<TConfig>;\n}\n\n/**\n * Supported HTTP frameworks for server mode\n */\nexport type CoreFrameworkType =\n | 'node' // Plain Node.js http module\n | 'express' // Express.js\n | 'nestjs' // NestJS\n | 'nextjs'; // Next.js API routes (SSR/Edge)\n\n/**\n * Server configuration\n */\nexport interface CoreServerConfig {\n port: number;\n host?: string;\n framework?: CoreFrameworkType;\n prefix?: string; // API prefix like '/api/v1'\n cors?: {\n enabled: boolean;\n origins?: string[];\n };\n}\n\n/**\n * Framework adapter interface\n */\nexport interface CoreFrameworkAdapter {\n /**\n * Framework name\n */\n name: CoreFrameworkType;\n\n /**\n * Register routes from modules\n */\n registerRoutes(\n routes: Array<{ moduleName: string; routes: CoreRouteDefinition[] }>,\n services: CoreServices\n ): void | Promise<void>;\n\n /**\n * Start the server\n */\n start(config: CoreServerConfig): Promise<void>;\n\n /**\n * Stop the server\n */\n stop(): Promise<void>;\n\n /**\n * Get the underlying framework instance (express app, fastify instance, etc.)\n */\n getInstance(): unknown;\n}\n\n/**\n * Adapter factory function\n */\nexport type CoreAdapterFactory = () => CoreFrameworkAdapter;\n\n/**\n * Runtime environment detection\n */\nexport type CoreRuntimeEnvironment =\n | 'node' // Plain Node.js\n | 'nestjs' // NestJS backend\n | 'express' // Express.js\n | 'nuxt' // Nuxt.js (Vue SSR)\n | 'nextjs' // Next.js (React SSR)\n | 'browser' // Browser/SPA\n | 'edge' // Edge runtime (Cloudflare, Vercel Edge)\n | 'deno' // Deno runtime\n | 'bun' // Bun runtime\n | 'unknown';\n\n/**\n * Runtime context type\n */\nexport type CoreRuntimeContext = 'backend' | 'frontend' | 'universal';\n\n/**\n * Backend runtimes - always server-side\n */\nexport const BACKEND_RUNTIMES: readonly CoreRuntimeEnvironment[] = [\n 'node',\n 'nestjs',\n 'express',\n 'deno',\n 'bun',\n] as const;\n\n/**\n * Frontend runtimes - always client-side\n */\nexport const FRONTEND_RUNTIMES: readonly CoreRuntimeEnvironment[] = ['browser'] as const;\n\n/**\n * Universal runtimes - can be either (SSR)\n */\nexport const UNIVERSAL_RUNTIMES: readonly CoreRuntimeEnvironment[] = [\n 'nextjs',\n 'nuxt',\n 'edge',\n] as const;\n\n// ============================================================================\n// Next.js Handler Types\n// ============================================================================\n\n/**\n * Handler context for Next.js API routes\n * Provides services and parsed request data\n */\nexport interface CoreNextJsHandlerContext {\n /** Database service */\n db: unknown; // DbService - imported dynamically to avoid circular deps\n /** URL parameters (from dynamic routes like [id]) */\n params: Record<string, string>;\n /** Query string parameters */\n query: Record<string, string | string[]>;\n /** Request body (parsed JSON) */\n body: unknown;\n /** Request headers */\n headers: Record<string, string>;\n /** Original Request object */\n request: Request;\n}\n\n/**\n * Handler return type for Next.js API routes\n */\nexport interface CoreNextJsHandlerResult {\n /** Response body (will be JSON serialized) */\n [key: string]: unknown;\n /** HTTP status code (default: 200) */\n status?: number;\n /** Response headers */\n headers?: Record<string, string>;\n}\n\n/**\n * Handler function type for Next.js API routes\n */\nexport type CoreNextJsHandler = (\n ctx: CoreNextJsHandlerContext\n) => Promise<CoreNextJsHandlerResult | Response>;\n\n/**\n * Options for Next.js createHandler\n */\nexport interface CoreNextJsHandlerOptions {\n /** Core initialization options (used on first request) */\n coreOptions?: Record<string, unknown>;\n}\n\n// ============================================================================\n// Core Initialization Types\n// ============================================================================\n\n/**\n * Core environment variables\n */\nexport interface CoreEnvVars {\n DATABASE_URL?: string;\n SUPABASE_URL?: string;\n SUPABASE_SERVICE_ROLE_KEY?: string;\n SUPABASE_ANON_PUBLIC_KEY?: string;\n ENCRYPTION_KEY?: string;\n API_BASE_URL?: string;\n API_TIMEOUT?: string;\n NODE_ENV?: string;\n [key: string]: string | undefined;\n}\n\n/**\n * Application environment type\n */\nexport type CoreAppEnvironment = 'development' | 'staging' | 'production' | 'test';\n\n/**\n * API client initialization options\n * Extends ApiClientOptions with Core-specific settings\n */\nexport interface CoreApiInitOptions {\n /** Environment for API client configuration */\n env?: CoreAppEnvironment;\n /** Set this client as the default */\n setAsDefault?: boolean;\n /** Base URL for API requests */\n baseURL?: string;\n /** Request timeout in milliseconds */\n timeout?: number;\n /** Additional options passed to ApiClientService */\n [key: string]: unknown;\n}\n\n/**\n * Core initialization options\n */\nexport interface CoreInitOptions<\n TDbConfig = unknown,\n TApiConfig = CoreApiInitOptions,\n TCacheConfig = unknown,\n TStorageConfig = unknown,\n TNotificationsConfig = unknown,\n> {\n /** Path to .env file */\n envPath?: string;\n /** Global application environment */\n environment?: CoreAppEnvironment;\n /** Application context (webapp, backoffice, mobile, etc.) */\n appContext?: CoreAppContext;\n /** Explicit environment variables */\n env?: CoreEnvVars;\n /** Database configuration */\n db?: TDbConfig;\n /** API client configuration */\n api?: TApiConfig;\n /** Cache configuration */\n cache?: TCacheConfig;\n /** Storage configuration (backend only) */\n storage?: TStorageConfig;\n /** Notifications configuration (backend only) */\n notifications?: TNotificationsConfig;\n /** Skip database initialization */\n skipDb?: boolean;\n /** Skip API client initialization */\n skipApi?: boolean;\n /** Skip cache initialization */\n skipCache?: boolean;\n /** Skip storage initialization */\n skipStorage?: boolean;\n /** Skip notifications initialization */\n skipNotifications?: boolean;\n /** Enable verbose logging */\n verbose?: boolean;\n}\n\n/**\n * Core initialization result\n */\nexport interface CoreServicesResult<\n TDb = unknown,\n TApi = unknown,\n TCache = unknown,\n TStorage = unknown,\n TNotifications = unknown,\n> {\n db: TDb | null;\n api: TApi | null;\n cache: TCache | null;\n storage: TStorage | null;\n notifications: TNotifications | null;\n env: CoreEnvVars;\n runtime: CoreRuntimeEnvironment;\n appContext: CoreAppContext;\n}\n\n// ============================================================================\n// NestJS Module Types\n// ============================================================================\n\n/**\n * Core module options for NestJS\n */\nexport interface CoreNestJsModuleOptions {\n /** Path to .env file */\n envPath?: string;\n /** Database configuration */\n db?: Record<string, unknown>;\n /** Whether to make Core services globally available */\n isGlobal?: boolean;\n}\n\n/**\n * Async options for NestJS CoreModule (adapters/nestjs.ts pattern)\n * Uses NestJS-specific types for proper DI integration.\n */\nexport interface CoreNestJsModuleAsyncOptions {\n /** Modules to import for dependency resolution */\n imports?: Array<Type<unknown> | DynamicModule | Promise<DynamicModule> | ForwardReference>;\n /** Tokens to inject into the factory */\n inject?: Array<InjectionToken | OptionalFactoryDependency>;\n /** Factory function to create module options */\n useFactory: (...args: unknown[]) => CoreNestJsModuleOptions | Promise<CoreNestJsModuleOptions>;\n /** Whether to make Core services globally available */\n isGlobal?: boolean;\n}\n\n/**\n * Async options for NestJS CoreModule (init/nestjs pattern)\n * Extends ModuleMetadata for full NestJS integration.\n */\nexport interface CoreNestJsCoreModuleAsyncOptions extends Pick<ModuleMetadata, 'imports'> {\n /** Factory function to create init options */\n useFactory: (...args: unknown[]) => CoreInitOptions | Promise<CoreInitOptions>;\n /** Tokens to inject into the factory */\n inject?: Array<Type<unknown> | string | symbol>;\n}\n\n// ============================================================================\n// App Context Types\n// ============================================================================\n\n/**\n * Application context type\n *\n * Identifies which type of application is running.\n * Different apps may have different feature flags, API endpoints, or UI behaviors.\n */\nexport type CoreAppContext =\n | 'webapp' // Main web application\n | 'backoffice' // Admin/back-office portal\n | 'mobile' // Mobile apps (React Native, Capacitor, etc.)\n | 'microapp' // Embedded micro frontends\n | 'cli'; // CLI tools\n\n/**\n * App context constants for type-safe comparisons\n */\nexport const APP_CONTEXTS: readonly CoreAppContext[] = [\n 'webapp',\n 'backoffice',\n 'mobile',\n 'microapp',\n 'cli',\n] as const;\n\n// ============================================================================\n// Domain Service Types\n// ============================================================================\n\n/**\n * Service runtime compatibility\n *\n * Declares which runtimes a service can execute on.\n * Services can be restricted to specific runtimes for security\n * (e.g., backend-only services should never be bundled for frontend).\n */\nexport type CoreServiceRuntime =\n | 'frontend' // Browser, React, Vue, etc. (no DB access)\n | 'backend' // Node.js, NestJS, Express (has DB access)\n | 'universal'; // Works everywhere (SSR, Edge)\n\n/**\n * Domain service configuration\n *\n * Declares service metadata including runtime compatibility\n * and feature flag requirements.\n *\n * @example\n * ```typescript\n * class CampaignDomainService {\n * static readonly config: CoreDomainServiceConfig = {\n * name: 'CampaignDomainService',\n * runtimes: ['frontend', 'backend'],\n * requiresFeatureFlag: 'campaigns:enabled',\n * };\n * }\n * ```\n */\nexport interface CoreDomainServiceConfig {\n /** Service name for logging and debugging */\n name: string;\n\n /** Runtimes this service can run on */\n runtimes: readonly CoreServiceRuntime[];\n\n /** Feature flag required to use this service (optional) */\n requiresFeatureFlag?: string;\n\n /** App contexts this service is available in (optional, all if not specified) */\n appContexts?: readonly CoreAppContext[];\n}\n","export enum TABLES {\n User = 'users',\n}\n","/**\n * Sort direction for database queries\n */\nexport enum SORT_DIRECTION {\n Asc = 'asc',\n Desc = 'desc',\n}\n\n/**\n * Feature flag database table names enumeration\n */\nexport enum FEATURE_FLAG_TABLE {\n FeatureFlags = 'feature_flags',\n FeatureFlagRules = 'feature_flag_rules',\n FeatureFlagEvaluations = 'feature_flag_evaluations',\n FeatureFlagOverrides = 'feature_flag_overrides',\n}\n\n/**\n * Database field names for feature flags table\n */\nexport enum FEATURE_FLAG_FIELD {\n Key = 'key',\n Name = 'name',\n Value = 'value',\n Type = 'type',\n IsEnabled = 'is_enabled',\n Environments = 'environments',\n Description = 'description',\n CreatedAt = 'created_at',\n UpdatedAt = 'updated_at',\n}\n\n/**\n * Database field names for feature flag rules table\n */\nexport enum FEATURE_FLAG_RULE_FIELD {\n Id = 'id',\n FlagKey = 'flag_key',\n Name = 'name',\n Conditions = 'conditions',\n Value = 'value',\n Priority = 'priority',\n IsEnabled = 'is_enabled',\n}\n\n/**\n * Feature Flag Provider Types\n */\nexport enum FEATURE_FLAG_PROVIDERS {\n MEMORY = 'memory',\n FILE = 'file',\n REDIS = 'redis',\n API = 'api',\n DATABASE = 'database',\n}\n\n/**\n * Node Environment Types\n */\nexport enum NODE_ENVIRONMENTS {\n DEVELOPMENT = 'development',\n PRODUCTION = 'production',\n STAGING = 'staging',\n TEST = 'test',\n}\n\n/**\n * Database Field Names\n */\nexport enum DATABASE_FIELDS {\n Key = 'key',\n FlagKey = 'flag_key',\n UserId = 'user_id',\n IsEnabled = 'is_enabled',\n CreatedAt = 'created_at',\n UpdatedAt = 'updated_at',\n ExpiresAt = 'expires_at',\n EvaluatedAt = 'evaluated_at',\n}\n\n/**\n * System User Constants\n */\nexport enum SYSTEM_USERS {\n SYSTEM = 'system',\n}\n\n/**\n * Evaluation Reasons\n * Must match database enum: evaluation_reason\n * Used when logging feature flag evaluations to audit table\n */\nexport enum EVALUATION_REASONS {\n Default = 'default', // Default flag value used\n RuleMatch = 'rule_match', // Matched a targeting rule\n Rollout = 'rollout', // Matched rollout percentage\n Override = 'override', // User-specific override applied\n Disabled = 'disabled', // Flag is disabled\n}\n\n/**\n * Feature Flag Types\n */\nexport enum FEATURE_FLAG_TYPES {\n BOOLEAN = 'boolean',\n STRING = 'string',\n NUMBER = 'number',\n OBJECT = 'object',\n}\n","/**\n * Default Configuration Values\n */\nexport const FEATURE_FLAG_DEFAULTS = {\n CACHE_TTL: 300,\n REFRESH_INTERVAL: 0,\n POOL_SIZE: 10,\n TIMEOUT: 30000,\n TABLE_NAME: 'feature_flags',\n} as const;\n\n/**\n * Metadata keys used for attaching feature flag information\n * to route handlers via decorators.\n */\nexport const FEATURE_FLAG_METADATA = {\n FLAG_CHECK: 'plyaz:feature_flag_check', // Single feature flag check\n RESOLVE_FLAGS: 'plyaz:resolve_feature_flags', // Multiple flags resolved at once\n};\n","/**\n * Core Event Enums and Constants\n *\n * Type-safe event definitions for the CoreEventManager.\n * All event types follow the pattern: SCOPE:ACTION\n *\n * @example\n * ```typescript\n * import { CoreEventType, CORE_EVENTS } from '@plyaz/types/core';\n *\n * // Use constants for type-safe event emission\n * CoreEventManager.emit(CORE_EVENTS.ENTITY.CREATED, payload);\n *\n * // Subscribe with typed payloads\n * CoreEventManager.on<EntityCreatedPayload>(CORE_EVENTS.ENTITY.CREATED, handler);\n * ```\n */\n\n// ─────────────────────────────────────────────────────────────────\n// Event Scopes\n// ─────────────────────────────────────────────────────────────────\n\n/**\n * Event scope categories\n */\nexport const CoreEventScope = {\n SYSTEM: 'system',\n ENTITY: 'entity',\n VALIDATION: 'validation',\n SANITIZATION: 'sanitization',\n API: 'api',\n CACHE: 'cache',\n AUTH: 'auth',\n DATABASE: 'database',\n FEATURE_FLAG: 'featureFlag',\n STORE: 'store',\n STORAGE: 'storage',\n NOTIFICATION: 'notification',\n} as const;\n\nexport type CoreEventScopeType = (typeof CoreEventScope)[keyof typeof CoreEventScope];\n\n// ─────────────────────────────────────────────────────────────────\n// Event Actions per Scope\n// ─────────────────────────────────────────────────────────────────\n\n/**\n * System event actions\n */\nexport const SystemEventAction = {\n INITIALIZED: 'initialized',\n READY: 'ready',\n SHUTDOWN: 'shutdown',\n ERROR: 'error',\n WARNING: 'warning',\n} as const;\n\n/**\n * Entity CRUD event actions\n */\nexport const EntityEventAction = {\n // Lifecycle (before API call)\n CREATING: 'creating',\n UPDATING: 'updating',\n PATCHING: 'patching',\n DELETING: 'deleting',\n // Completed (after API call)\n CREATED: 'created',\n UPDATED: 'updated',\n PATCHED: 'patched',\n DELETED: 'deleted',\n // Error/Complete\n ERROR: 'error',\n COMPLETE: 'complete',\n // Bulk operations\n BULK_CREATED: 'bulkCreated',\n BULK_DELETED: 'bulkDeleted',\n} as const;\n\n/**\n * Validation event actions\n */\nexport const ValidationEventAction = {\n STARTED: 'started',\n SUCCESS: 'success',\n FAILED: 'failed',\n} as const;\n\n/**\n * Sanitization event actions\n */\nexport const SanitizationEventAction = {\n STARTED: 'started',\n SUCCESS: 'success',\n FAILED: 'failed',\n} as const;\n\n/**\n * API event actions\n */\nexport const ApiEventAction = {\n REQUEST_START: 'requestStart',\n REQUEST_SUCCESS: 'requestSuccess',\n REQUEST_ERROR: 'requestError',\n RETRY: 'retry',\n TIMEOUT: 'timeout',\n} as const;\n\n/**\n * Cache event actions\n */\nexport const CacheEventAction = {\n HIT: 'hit',\n MISS: 'miss',\n SET: 'set',\n DELETE: 'delete',\n CLEAR: 'clear',\n EXPIRED: 'expired',\n} as const;\n\n/**\n * Auth event actions\n */\nexport const AuthEventAction = {\n LOGIN: 'login',\n LOGOUT: 'logout',\n TOKEN_REFRESH: 'tokenRefresh',\n SESSION_EXPIRED: 'sessionExpired',\n UNAUTHORIZED: 'unauthorized',\n} as const;\n\n/**\n * Database event actions\n */\nexport const DatabaseEventAction = {\n CONNECTED: 'connected',\n DISCONNECTED: 'disconnected',\n QUERY: 'query',\n ERROR: 'error',\n TRANSACTION_START: 'transactionStart',\n TRANSACTION_COMMIT: 'transactionCommit',\n TRANSACTION_ROLLBACK: 'transactionRollback',\n} as const;\n\n/**\n * Feature flag event actions\n */\nexport const FeatureFlagEventAction = {\n CHANGED: 'changed',\n EVALUATED: 'evaluated',\n REFRESHED: 'refreshed',\n} as const;\n\n/**\n * Store event actions\n */\nexport const StoreEventAction = {\n UPDATED: 'updated',\n RESET: 'reset',\n HYDRATED: 'hydrated',\n} as const;\n\n/**\n * Storage event actions (file uploads, downloads, deletions)\n */\nexport const StorageEventAction = {\n UPLOADED: 'uploaded',\n DOWNLOADED: 'downloaded',\n DELETED: 'deleted',\n ERROR: 'error',\n HEALTH_CHECK: 'healthCheck',\n} as const;\n\n/**\n * Notification event actions (email, sms, push)\n */\nexport const NotificationEventAction = {\n SENT: 'sent',\n FAILED: 'failed',\n DELIVERED: 'delivered',\n OPENED: 'opened',\n CLICKED: 'clicked',\n ERROR: 'error',\n HEALTH_CHECK: 'healthCheck',\n} as const;\n\n// ─────────────────────────────────────────────────────────────────\n// Full Event Types (scope:action constants)\n// ─────────────────────────────────────────────────────────────────\n\n/**\n * All core event type constants\n *\n * @example\n * ```typescript\n * CoreEventManager.emit(CORE_EVENTS.ENTITY.CREATED, { entity, storeState });\n * CoreEventManager.on(CORE_EVENTS.API.REQUEST_ERROR, handleApiError);\n * ```\n */\nexport const CORE_EVENTS = {\n SYSTEM: {\n INITIALIZED: `${CoreEventScope.SYSTEM}:${SystemEventAction.INITIALIZED}`,\n READY: `${CoreEventScope.SYSTEM}:${SystemEventAction.READY}`,\n SHUTDOWN: `${CoreEventScope.SYSTEM}:${SystemEventAction.SHUTDOWN}`,\n ERROR: `${CoreEventScope.SYSTEM}:${SystemEventAction.ERROR}`,\n WARNING: `${CoreEventScope.SYSTEM}:${SystemEventAction.WARNING}`,\n },\n ENTITY: {\n CREATING: `${CoreEventScope.ENTITY}:${EntityEventAction.CREATING}`,\n UPDATING: `${CoreEventScope.ENTITY}:${EntityEventAction.UPDATING}`,\n PATCHING: `${CoreEventScope.ENTITY}:${EntityEventAction.PATCHING}`,\n DELETING: `${CoreEventScope.ENTITY}:${EntityEventAction.DELETING}`,\n CREATED: `${CoreEventScope.ENTITY}:${EntityEventAction.CREATED}`,\n UPDATED: `${CoreEventScope.ENTITY}:${EntityEventAction.UPDATED}`,\n PATCHED: `${CoreEventScope.ENTITY}:${EntityEventAction.PATCHED}`,\n DELETED: `${CoreEventScope.ENTITY}:${EntityEventAction.DELETED}`,\n ERROR: `${CoreEventScope.ENTITY}:${EntityEventAction.ERROR}`,\n COMPLETE: `${CoreEventScope.ENTITY}:${EntityEventAction.COMPLETE}`,\n BULK_CREATED: `${CoreEventScope.ENTITY}:${EntityEventAction.BULK_CREATED}`,\n BULK_DELETED: `${CoreEventScope.ENTITY}:${EntityEventAction.BULK_DELETED}`,\n },\n VALIDATION: {\n STARTED: `${CoreEventScope.VALIDATION}:${ValidationEventAction.STARTED}`,\n SUCCESS: `${CoreEventScope.VALIDATION}:${ValidationEventAction.SUCCESS}`,\n FAILED: `${CoreEventScope.VALIDATION}:${ValidationEventAction.FAILED}`,\n },\n SANITIZATION: {\n STARTED: `${CoreEventScope.SANITIZATION}:${SanitizationEventAction.STARTED}`,\n SUCCESS: `${CoreEventScope.SANITIZATION}:${SanitizationEventAction.SUCCESS}`,\n FAILED: `${CoreEventScope.SANITIZATION}:${SanitizationEventAction.FAILED}`,\n },\n API: {\n REQUEST_START: `${CoreEventScope.API}:${ApiEventAction.REQUEST_START}`,\n REQUEST_SUCCESS: `${CoreEventScope.API}:${ApiEventAction.REQUEST_SUCCESS}`,\n REQUEST_ERROR: `${CoreEventScope.API}:${ApiEventAction.REQUEST_ERROR}`,\n RETRY: `${CoreEventScope.API}:${ApiEventAction.RETRY}`,\n TIMEOUT: `${CoreEventScope.API}:${ApiEventAction.TIMEOUT}`,\n },\n CACHE: {\n HIT: `${CoreEventScope.CACHE}:${CacheEventAction.HIT}`,\n MISS: `${CoreEventScope.CACHE}:${CacheEventAction.MISS}`,\n SET: `${CoreEventScope.CACHE}:${CacheEventAction.SET}`,\n DELETE: `${CoreEventScope.CACHE}:${CacheEventAction.DELETE}`,\n CLEAR: `${CoreEventScope.CACHE}:${CacheEventAction.CLEAR}`,\n EXPIRED: `${CoreEventScope.CACHE}:${CacheEventAction.EXPIRED}`,\n },\n AUTH: {\n LOGIN: `${CoreEventScope.AUTH}:${AuthEventAction.LOGIN}`,\n LOGOUT: `${CoreEventScope.AUTH}:${AuthEventAction.LOGOUT}`,\n TOKEN_REFRESH: `${CoreEventScope.AUTH}:${AuthEventAction.TOKEN_REFRESH}`,\n SESSION_EXPIRED: `${CoreEventScope.AUTH}:${AuthEventAction.SESSION_EXPIRED}`,\n UNAUTHORIZED: `${CoreEventScope.AUTH}:${AuthEventAction.UNAUTHORIZED}`,\n },\n DATABASE: {\n CONNECTED: `${CoreEventScope.DATABASE}:${DatabaseEventAction.CONNECTED}`,\n DISCONNECTED: `${CoreEventScope.DATABASE}:${DatabaseEventAction.DISCONNECTED}`,\n QUERY: `${CoreEventScope.DATABASE}:${DatabaseEventAction.QUERY}`,\n ERROR: `${CoreEventScope.DATABASE}:${DatabaseEventAction.ERROR}`,\n TRANSACTION_START: `${CoreEventScope.DATABASE}:${DatabaseEventAction.TRANSACTION_START}`,\n TRANSACTION_COMMIT: `${CoreEventScope.DATABASE}:${DatabaseEventAction.TRANSACTION_COMMIT}`,\n TRANSACTION_ROLLBACK: `${CoreEventScope.DATABASE}:${DatabaseEventAction.TRANSACTION_ROLLBACK}`,\n },\n FEATURE_FLAG: {\n CHANGED: `${CoreEventScope.FEATURE_FLAG}:${FeatureFlagEventAction.CHANGED}`,\n EVALUATED: `${CoreEventScope.FEATURE_FLAG}:${FeatureFlagEventAction.EVALUATED}`,\n REFRESHED: `${CoreEventScope.FEATURE_FLAG}:${FeatureFlagEventAction.REFRESHED}`,\n },\n STORE: {\n UPDATED: `${CoreEventScope.STORE}:${StoreEventAction.UPDATED}`,\n RESET: `${CoreEventScope.STORE}:${StoreEventAction.RESET}`,\n HYDRATED: `${CoreEventScope.STORE}:${StoreEventAction.HYDRATED}`,\n },\n STORAGE: {\n UPLOADED: `${CoreEventScope.STORAGE}:${StorageEventAction.UPLOADED}`,\n DOWNLOADED: `${CoreEventScope.STORAGE}:${StorageEventAction.DOWNLOADED}`,\n DELETED: `${CoreEventScope.STORAGE}:${StorageEventAction.DELETED}`,\n ERROR: `${CoreEventScope.STORAGE}:${StorageEventAction.ERROR}`,\n HEALTH_CHECK: `${CoreEventScope.STORAGE}:${StorageEventAction.HEALTH_CHECK}`,\n },\n NOTIFICATION: {\n SENT: `${CoreEventScope.NOTIFICATION}:${NotificationEventAction.SENT}`,\n FAILED: `${CoreEventScope.NOTIFICATION}:${NotificationEventAction.FAILED}`,\n DELIVERED: `${CoreEventScope.NOTIFICATION}:${NotificationEventAction.DELIVERED}`,\n OPENED: `${CoreEventScope.NOTIFICATION}:${NotificationEventAction.OPENED}`,\n CLICKED: `${CoreEventScope.NOTIFICATION}:${NotificationEventAction.CLICKED}`,\n ERROR: `${CoreEventScope.NOTIFICATION}:${NotificationEventAction.ERROR}`,\n HEALTH_CHECK: `${CoreEventScope.NOTIFICATION}:${NotificationEventAction.HEALTH_CHECK}`,\n },\n} as const;\n\n// ─────────────────────────────────────────────────────────────────\n// Event Type Union\n// ─────────────────────────────────────────────────────────────────\n\n/** All system event types */\nexport type SystemEventType = (typeof CORE_EVENTS.SYSTEM)[keyof typeof CORE_EVENTS.SYSTEM];\n\n/** All entity event types */\nexport type EntityEventType = (typeof CORE_EVENTS.ENTITY)[keyof typeof CORE_EVENTS.ENTITY];\n\n/** All validation event types */\nexport type ValidationEventType =\n (typeof CORE_EVENTS.VALIDATION)[keyof typeof CORE_EVENTS.VALIDATION];\n\n/** All sanitization event types */\nexport type SanitizationEventType =\n (typeof CORE_EVENTS.SANITIZATION)[keyof typeof CORE_EVENTS.SANITIZATION];\n\n/** All API event types */\nexport type ApiEventType = (typeof CORE_EVENTS.API)[keyof typeof CORE_EVENTS.API];\n\n/** All cache event types */\nexport type CacheEventType = (typeof CORE_EVENTS.CACHE)[keyof typeof CORE_EVENTS.CACHE];\n\n/** All auth event types */\nexport type AuthEventType = (typeof CORE_EVENTS.AUTH)[keyof typeof CORE_EVENTS.AUTH];\n\n/** All database event types */\nexport type DatabaseEventType = (typeof CORE_EVENTS.DATABASE)[keyof typeof CORE_EVENTS.DATABASE];\n\n/** All feature flag event types */\nexport type FeatureFlagEventType =\n (typeof CORE_EVENTS.FEATURE_FLAG)[keyof typeof CORE_EVENTS.FEATURE_FLAG];\n\n/** All store event types */\nexport type StoreEventType = (typeof CORE_EVENTS.STORE)[keyof typeof CORE_EVENTS.STORE];\n\n/**\n * Union of all core event types\n */\nexport type CoreEventType =\n | SystemEventType\n | EntityEventType\n | ValidationEventType\n | SanitizationEventType\n | ApiEventType\n | CacheEventType\n | AuthEventType\n | DatabaseEventType\n | FeatureFlagEventType\n | StoreEventType;\n","/**\n * Service Keys Constants\n *\n * Centralized service key constants for service registry and dependency injection.\n * Use these constants instead of string literals for type safety and consistency.\n *\n * @example\n * ```typescript\n * import { SERVICE_KEYS } from '@plyaz/types/core/services';\n *\n * class MyService {\n * static readonly serviceKey = SERVICE_KEYS.EXAMPLE;\n * }\n *\n * // Use in service registry\n * const service = ServiceRegistry.get(SERVICE_KEYS.EXAMPLE);\n * ```\n */\n\n/**\n * Keys for all available domain services.\n * These keys are used for service registration and lookup in the ServiceRegistry.\n */\nexport const SERVICE_KEYS = {\n /** Example domain service (backend) */\n EXAMPLE: 'example',\n /** Example domain service (frontend) */\n EXAMPLE_FRONTEND: 'example-frontend',\n /** Feature flags service */\n FEATURE_FLAGS: 'featureFlags',\n} as const;\n\n/**\n * Type for service keys.\n * Ensures only valid service keys can be used.\n */\nexport type ServiceKey = (typeof SERVICE_KEYS)[keyof typeof SERVICE_KEYS];\n\n/**\n * Array of all service keys for iteration.\n * Useful for validating service configurations or iterating over all services.\n */\nexport const ALL_SERVICE_KEYS = Object.values(SERVICE_KEYS) as ServiceKey[];\n","/**\n * Enum representing the types of events in the application.\n * Uses dot notation for event naming convention.\n *\n * @example\n * ```typescript\n * import { EVENT_TYPE } from '@plyaz/types';\n *\n * const eventType = EVENT_TYPE.AppInit; // 'app.init'\n * ```\n */\nexport const EVENT_TYPE = {\n /** Application initialization event. */\n AppInit: 'app.init',\n} as const;\n\n/**\n * Const representing the priority levels for events.\n * Used to determine processing order and resource allocation.\n *\n * @example\n * ```typescript\n * import { EVENT_PRIORITY } from '@plyaz/types';\n *\n * const priority = EVENT_PRIORITY.High; // 'high'\n * ```\n */\nexport const EVENT_PRIORITY = {\n /** Low priority event. */\n Low: 'low',\n /** Normal priority event. */\n Normal: 'normal',\n /** High priority event. */\n High: 'high',\n /** Critical priority event. */\n Critical: 'critical',\n} as const;\n\n/**\n * Const representing the status of an event.\n * Tracks the lifecycle of event processing from creation to completion.\n *\n * @example\n * ```typescript\n * import { EVENT_STATUS } from '@plyaz/types';\n *\n * const status = EVENT_STATUS.Processing; // 'processing'\n *\n * // Typical event lifecycle:\n * // Pending -> Processing -> Completed\n * // or\n * // Pending -> Processing -> Failed -> Retrying -> Processing -> Completed\n * ```\n */\nexport const EVENT_STATUS = {\n /** Event is pending and has not started processing. */\n Pending: 'pending',\n /** Event is currently being processed. */\n Processing: 'processing',\n /** Event has been completed successfully. */\n Completed: 'completed',\n /** Event processing failed. */\n Failed: 'failed',\n /** Event is being retried after a failure. */\n Retrying: 'retrying',\n} as const;\n","/**\n * Locale and Currency Types\n *\n * Type definitions for internationalization and currency handling.\n *\n * @module locale/types\n */\n\n/**\n * Common currency codes (ISO 4217)\n */\nexport const CURRENCY_CODES = {\n // Major currencies\n USD: 'USD', // US Dollar\n EUR: 'EUR', // Euro\n GBP: 'GBP', // British Pound Sterling\n JPY: 'JPY', // Japanese Yen\n CHF: 'CHF', // Swiss Franc\n CAD: 'CAD', // Canadian Dollar\n AUD: 'AUD', // Australian Dollar\n CNY: 'CNY', // Chinese Yuan Renminbi\n\n // Asian currencies\n INR: 'INR', // Indian Rupee\n KRW: 'KRW', // South Korean Won\n SGD: 'SGD', // Singapore Dollar\n HKD: 'HKD', // Hong Kong Dollar\n TWD: 'TWD', // Taiwan New Dollar\n THB: 'THB', // Thai Baht\n IDR: 'IDR', // Indonesian Rupiah\n MYR: 'MYR', // Malaysian Ringgit\n PHP: 'PHP', // Philippine Peso\n VND: 'VND', // Vietnamese Dong\n BDT: 'BDT', // Bangladeshi Taka\n PKR: 'PKR', // Pakistani Rupee\n LKR: 'LKR', // Sri Lankan Rupee\n\n // European currencies\n SEK: 'SEK', // Swedish Krona\n NOK: 'NOK', // Norwegian Krone\n DKK: 'DKK', // Danish Krone\n PLN: 'PLN', // Polish Zloty\n CZK: 'CZK', // Czech Koruna\n HUF: 'HUF', // Hungarian Forint\n RON: 'RON', // Romanian Leu\n BGN: 'BGN', // Bulgarian Lev\n HRK: 'HRK', // Croatian Kuna\n RSD: 'RSD', // Serbian Dinar\n ISK: 'ISK', // Icelandic Króna\n\n // Americas currencies\n BRL: 'BRL', // Brazilian Real\n MXN: 'MXN', // Mexican Peso\n ARS: 'ARS', // Argentine Peso\n CLP: 'CLP', // Chilean Peso\n COP: 'COP', // Colombian Peso\n PEN: 'PEN', // Peruvian Sol\n UYU: 'UYU', // Uruguayan Peso\n VES: 'VES', // Venezuelan Bolívar\n BOB: 'BOB', // Bolivian Boliviano\n PYG: 'PYG', // Paraguayan Guarani\n CRC: 'CRC', // Costa Rican Colón\n GTQ: 'GTQ', // Guatemalan Quetzal\n HNL: 'HNL', // Honduran Lempira\n NIO: 'NIO', // Nicaraguan Córdoba\n PAB: 'PAB', // Panamanian Balboa\n DOP: 'DOP', // Dominican Peso\n JMD: 'JMD', // Jamaican Dollar\n TTD: 'TTD', // Trinidad and Tobago Dollar\n BBD: 'BBD', // Barbadian Dollar\n\n // Middle Eastern currencies\n AED: 'AED', // UAE Dirham\n SAR: 'SAR', // Saudi Riyal\n QAR: 'QAR', // Qatari Riyal\n KWD: 'KWD', // Kuwaiti Dinar\n BHD: 'BHD', // Bahraini Dinar\n OMR: 'OMR', // Omani Rial\n JOD: 'JOD', // Jordanian Dinar\n ILS: 'ILS', // Israeli New Shekel\n TRY: 'TRY', // Turkish Lira\n IQD: 'IQD', // Iraqi Dinar\n IRR: 'IRR', // Iranian Rial\n LBP: 'LBP', // Lebanese Pound\n SYP: 'SYP', // Syrian Pound\n\n // African currencies\n ZAR: 'ZAR', // South African Rand\n NGN: 'NGN', // Nigerian Naira\n EGP: 'EGP', // Egyptian Pound\n KES: 'KES', // Kenyan Shilling\n GHS: 'GHS', // Ghanaian Cedi\n MAD: 'MAD', // Moroccan Dirham\n TND: 'TND', // Tunisian Dinar\n DZD: 'DZD', // Algerian Dinar\n ETB: 'ETB', // Ethiopian Birr\n TZS: 'TZS', // Tanzanian Shilling\n UGX: 'UGX', // Ugandan Shilling\n ZMW: 'ZMW', // Zambian Kwacha\n BWP: 'BWP', // Botswana Pula\n MUR: 'MUR', // Mauritian Rupee\n\n // Pacific currencies\n NZD: 'NZD', // New Zealand Dollar\n FJD: 'FJD', // Fijian Dollar\n PGK: 'PGK', // Papua New Guinean Kina\n\n // Former Soviet Union currencies\n RUB: 'RUB', // Russian Ruble\n UAH: 'UAH', // Ukrainian Hryvnia\n BYN: 'BYN', // Belarusian Ruble\n KZT: 'KZT', // Kazakhstani Tenge\n UZS: 'UZS', // Uzbekistani Som\n AZN: 'AZN', // Azerbaijani Manat\n GEL: 'GEL', // Georgian Lari\n AMD: 'AMD', // Armenian Dram\n\n // Cryptocurrency representations (unofficial)\n BTC: 'BTC', // Bitcoin\n ETH: 'ETH', // Ethereum\n USDT: 'USDT', // Tether\n USDC: 'USDC', // USD Coin\n} as const;\n\n/**\n * ISO 4217 Currency Code type\n */\nexport type CurrencyCode = (typeof CURRENCY_CODES)[keyof typeof CURRENCY_CODES];\n","/**\n * Enum representing supported EVM-compatible blockchain networks by their numeric chain IDs.\n * @description These IDs are used to identify the specific network when interacting with wallets or smart contracts.\n * @see https://chainlist.org for reference chain IDs\n *\n * @example\n * ```typescript\n * import { CHAIN_ID } from '@plyaz/types';\n *\n * const chainId = CHAIN_ID.EthereumMainnet; // 1\n * const isTestnet = chainId === CHAIN_ID.EthereumSepolia || chainId === CHAIN_ID.PolygonAmoy;\n * ```\n */\nexport const CHAIN_ID = {\n /** Ethereum Mainnet (Chain ID: 1). */\n EthereumMainnet: 1,\n\n /** Ethereum Sepolia Testnet (Chain ID: 11155111). */\n EthereumSepolia: 11_155_111,\n\n /** Optimism Mainnet (Chain ID: 10). */\n Optimism: 10,\n\n /** Optimism Sepolia Testnet (Chain ID: 11155420). */\n OptimismSepolia: 11_155_420,\n\n /** Arbitrum One Mainnet (Chain ID: 42161). */\n Arbitrum: 42_161,\n\n /** Arbitrum Sepolia Testnet (Chain ID: 421614). */\n ArbitrumSepolia: 421_614,\n\n /** Polygon Mainnet (Chain ID: 137). */\n Polygon: 137,\n\n /** Polygon Amoy Testnet (Chain ID: 80002). */\n PolygonAmoy: 80_002,\n\n /** Base Mainnet (Chain ID: 8453). */\n Base: 8_453,\n\n /** Base Sepolia Testnet (Chain ID: 84532). */\n BaseSepolia: 84_532,\n} as const;\n","/**\n * Cache Types and Interfaces\n *\n * Type definitions for the caching layer.\n * This will be moved to @plyaz/core when the package structure is finalized.\n *\n * @fileoverview Cache type definitions\n * @version 1.0.0\n */\n\n/**\n * Cache entry structure that wraps cached data with metadata.\n */\nimport type {\n Configurable,\n WithExpiration,\n WithMetadata,\n Enabled,\n WithUrl,\n Timestamped,\n} from '../../common/types';\n\n/**\n * Available cache strategies\n */\nexport const CACHE_STRATEGIES = ['memory', 'redis'] as const;\n\n/**\n * Cache strategy type\n */\nexport type CacheStrategyType = (typeof CACHE_STRATEGIES)[number];\n\nexport interface CacheEntry<T = unknown>\n extends Partial<WithMetadata<Record<string, unknown>>>,\n WithExpiration<number>,\n Pick<Timestamped<number, number>, 'createdAt'> {\n /** The cached data */\n data: T;\n}\n\nexport interface GenericCacheEntry<T = unknown> {\n value: T;\n timestamp: number;\n ttl: number;\n}\n\n/**\n * Cache statistics for monitoring and debugging.\n */\nexport interface CacheStats {\n /** Total number of cache hits */\n hits: number;\n /** Total number of cache misses */\n misses: number;\n /** Total number of set operations */\n sets: number;\n /** Total number of delete operations */\n deletes: number;\n /** Number of entries currently in cache */\n size: number;\n /** Cache hit ratio (hits / (hits + misses)) */\n hitRatio?: number;\n}\n\n/**\n * Configuration for cache strategies.\n */\nexport interface CacheConfig extends Configurable, Enabled {\n /** Default TTL in seconds */\n ttl: number;\n /** Cache strategy to use */\n strategy: CacheStrategyType;\n /** Redis-specific configuration */\n redisConfig?: RedisCacheConfig;\n /** Memory cache specific configuration */\n memoryConfig?: MemoryCacheConfig;\n}\n\n/**\n * Configuration for memory cache strategy.\n */\nexport interface MemoryCacheConfig {\n /** Maximum number of entries to store (default: 1000) */\n maxSize?: number;\n /** Maximum number of entries to store (alias for maxSize) */\n maxEntries?: number;\n /** Check for expired entries every N milliseconds (default: 60000) */\n cleanupInterval?: number;\n /** Callback when entry is evicted */\n onEvict?: (key: string, entry: CacheEntry) => void;\n}\n\n/**\n * Configuration for Redis cache strategy.\n */\nexport interface RedisCacheConfig extends WithUrl {\n /** Redis password for authentication */\n password?: string;\n /** Redis database number */\n db?: number;\n /** Key prefix for Redis keys */\n keyPrefix?: string;\n /** Connection timeout in milliseconds */\n connectTimeout?: number;\n /** Command timeout in milliseconds */\n commandTimeout?: number;\n}\n\n/**\n * Cache manager statistics interface.\n */\nexport type CacheManagerStats = CacheStats;\n\n/**\n * Interface that all cache strategies must implement.\n */\nexport interface CacheStrategy {\n /**\n * Stores a cache entry.\n *\n * @param key - Cache key\n * @param entry - Cache entry to store\n * @returns Promise that resolves when entry is stored\n */\n set<T>(key: string, entry: CacheEntry<T>): Promise<void>;\n\n /**\n * Retrieves a cache entry.\n *\n * @param key - Cache key\n * @returns Promise that resolves to cache entry or null if not found\n */\n get<T>(key: string): Promise<CacheEntry<T> | null>;\n\n /**\n * Removes a cache entry.\n *\n * @param key - Cache key to remove\n * @returns Promise that resolves when entry is removed\n */\n delete(key: string): Promise<void>;\n\n /**\n * Clears all cache entries.\n *\n * @returns Promise that resolves when cache is cleared\n */\n clear(): Promise<void>;\n\n /**\n * Gets cache statistics.\n *\n * @returns Promise that resolves to cache statistics\n */\n getStats(): Promise<CacheStats>;\n\n /**\n * Disposes of the cache strategy and cleans up resources.\n * Optional method for cleanup.\n *\n * @returns Promise that resolves when cleanup is complete\n */\n dispose?(): Promise<void>;\n}\n","/**\n * Object containing all supported country codes and their corresponding values.\n * Primarily covers European Union countries plus additional regions.\n */\nexport const COUNTRIES = {\n unitedKingdom: 'unitedKingdom',\n germany: 'germany',\n france: 'france',\n spain: 'spain',\n italy: 'italy',\n netherlands: 'netherlands',\n belgium: 'belgium',\n austria: 'austria',\n switzerland: 'switzerland',\n sweden: 'sweden',\n norway: 'norway',\n denmark: 'denmark',\n finland: 'finland',\n portugal: 'portugal',\n ireland: 'ireland',\n poland: 'poland',\n czechRepublic: 'czechRepublic',\n hungary: 'hungary',\n romania: 'romania',\n bulgaria: 'bulgaria',\n croatia: 'croatia',\n slovenia: 'slovenia',\n slovakia: 'slovakia',\n estonia: 'estonia',\n latvia: 'latvia',\n lithuania: 'lithuania',\n greece: 'greece',\n cyprus: 'cyprus',\n malta: 'malta',\n luxembourg: 'luxembourg',\n other: 'other',\n} as const;\n\n/**\n * Enum containing error message keys for basic profile form validation.\n * Contains localized error message keys that map to translation strings.\n */\nexport enum BASIC_PROFILE_ERRORS {\n /** Error when name is below minimum length */\n NameMin = 'components.BasicProfileForm.errors.nameMin',\n /** Error when name exceeds maximum length */\n NameMax = 'components.BasicProfileForm.errors.nameMax',\n /** Error when email format is invalid */\n EmailValid = 'components.BasicProfileForm.errors.emailValid',\n /** Error when email is required but not provided */\n EmailRequired = 'components.BasicProfileForm.errors.emailRequired',\n /** Error when country is required but not selected */\n CountryRequired = 'components.BasicProfileForm.errors.countryRequired',\n /** Error when bio exceeds maximum length */\n BioMax = 'components.BasicProfileForm.errors.bioMax',\n /** Error when profile image size exceeds limit */\n ProfileImageSize = 'components.BasicProfileForm.errors.profileImageSize',\n /** Error when profile image type is not supported */\n ProfileImageTypes = 'components.BasicProfileForm.errors.profileImageTypes',\n}\n\n/**\n * Enum containing error message keys for athlete profile form validation.\n * Contains localized error message keys that map to translation strings.\n */\nexport enum ATHLETE_PROFILE_ERRORS {\n /** Error when date of birth is too recent (maximum age validation) */\n DobMax = 'components.AthleteProfileForm.errors.dobMax',\n /** Error when date of birth is too old (minimum age validation) */\n DobMin = 'components.AthleteProfileForm.errors.dobMin',\n /** Error when height is below minimum value */\n HeightMin = 'components.AthleteProfileForm.errors.heightMin',\n /** Error when height exceeds maximum value */\n HeightMax = 'components.AthleteProfileForm.errors.heightMax',\n /** Error when height format is invalid */\n HeightInvalid = 'components.AthleteProfileForm.errors.heightInvalid',\n /** Error when weight is below minimum value */\n WeightMin = 'components.AthleteProfileForm.errors.weightMin',\n /** Error when weight exceeds maximum value */\n WeightMax = 'components.AthleteProfileForm.errors.weightMax',\n /** Error when weight format is invalid */\n WeightInvalid = 'components.AthleteProfileForm.errors.weightInvalid',\n /** Error when position is below minimum length */\n PositionMin = 'components.AthleteProfileForm.errors.positionMin',\n /** Error when position exceeds maximum length */\n PositionMax = 'components.AthleteProfileForm.errors.positionMax',\n /** Error when team name is below minimum length */\n TeamMin = 'components.AthleteProfileForm.errors.teamMin',\n /** Error when team name exceeds maximum length */\n TeamMax = 'components.AthleteProfileForm.errors.teamMax',\n /** Error when Instagram handle format is invalid */\n InstagramInvalid = 'components.AthleteProfileForm.errors.instagramInvalid',\n /** Error when TikTok handle format is invalid */\n TiktokInvalid = 'components.AthleteProfileForm.errors.tiktokInvalid',\n /** Error when highlight image size exceeds limit */\n HighlightImageSize = 'components.AthleteProfileForm.errors.highlightImageSize',\n /** Error when highlight image type is not supported */\n HighlightImageTypes = 'components.AthleteProfileForm.errors.highlightImageTypes',\n}\n\n/**\n * Type representing all possible error keys for basic profile form validation\n */\nexport type BasicProfileErrorKey = keyof typeof BASIC_PROFILE_ERRORS;\n\n/**\n * Type representing all possible error keys for athlete profile form validation\n */\nexport type AthleteProfileErrorKey = keyof typeof ATHLETE_PROFILE_ERRORS;\n","/* eslint-disable no-magic-numbers */\nimport { z } from 'zod';\nimport { ATHLETE_PROFILE_ERRORS, BASIC_PROFILE_ERRORS } from './enums';\n\nconst MIN_NAME_LENGTH = 2;\nconst MAX_NAME_LENGTH = 50;\nconst MAX_BIO_LENGTH = 275;\n\n/**\n * Zod schema for basic profile form validation.\n * Validates common user profile fields including name, email, country, bio, and profile image.\n */\nexport const basicProfileSchema = z.object({\n name: z\n .string()\n .min(MIN_NAME_LENGTH, BASIC_PROFILE_ERRORS.NameMin)\n .max(MAX_NAME_LENGTH, BASIC_PROFILE_ERRORS.NameMax),\n email: z\n .string()\n .email(BASIC_PROFILE_ERRORS.EmailValid)\n .min(1, BASIC_PROFILE_ERRORS.EmailRequired),\n country: z.string().min(1, BASIC_PROFILE_ERRORS.CountryRequired),\n bio: z.string().max(MAX_BIO_LENGTH, BASIC_PROFILE_ERRORS.BioMax).optional(),\n profileImage: z\n .union([\n z\n .instanceof(File)\n .refine(\n file => file.size <= 5 * 1024 * 1024, // 5MB\n BASIC_PROFILE_ERRORS.ProfileImageSize\n )\n .refine(\n file => ['image/png', 'image/jpeg', 'image/jpg', 'image/webp'].includes(file.type),\n BASIC_PROFILE_ERRORS.ProfileImageTypes\n ),\n z.string(),\n z.null(),\n ])\n .optional(),\n});\n\n/**\n * Zod schema for fan profile form validation.\n * Extends basicProfileSchema without additional fields.\n */\nexport const fanProfileSchema = basicProfileSchema.extend({});\n\n/**\n * Zod schema for athlete profile form validation.\n * Extends basicProfileSchema with athlete-specific fields including physical stats,\n * team information, social media handles, and highlight images.\n */\nexport const athleteProfileSchema = basicProfileSchema.extend({\n dateOfBirth: z\n .date()\n .max(new Date(), ATHLETE_PROFILE_ERRORS.DobMax)\n .min(new Date(1900, 0, 1), ATHLETE_PROFILE_ERRORS.DobMin)\n .optional(),\n height: z\n .number()\n .min(50, ATHLETE_PROFILE_ERRORS.HeightMin)\n .max(300, ATHLETE_PROFILE_ERRORS.HeightMax)\n .optional(),\n weight: z\n .number()\n .min(10, ATHLETE_PROFILE_ERRORS.WeightMin)\n .max(500, ATHLETE_PROFILE_ERRORS.WeightMax)\n .optional(),\n position: z\n .string()\n .min(2, ATHLETE_PROFILE_ERRORS.PositionMin)\n .max(50, ATHLETE_PROFILE_ERRORS.PositionMax)\n .optional(),\n teamName: z\n .string()\n .min(2, ATHLETE_PROFILE_ERRORS.TeamMin)\n .max(100, ATHLETE_PROFILE_ERRORS.TeamMax)\n .optional(),\n instagramHandle: z\n .string()\n .regex(/^$|^@?(?!.*\\.\\.)(?!.*\\.$)[a-zA-Z0-9._]{1,30}$/, ATHLETE_PROFILE_ERRORS.InstagramInvalid)\n .optional(),\n tiktokHandle: z\n .string()\n .regex(/^$|^@?[a-zA-Z0-9][a-zA-Z0-9._]{1,23}$/, ATHLETE_PROFILE_ERRORS.TiktokInvalid)\n .optional(),\n highlightImage: z\n .union([\n z\n .instanceof(File)\n .refine(\n file => file.size <= 5 * 1024 * 1024, // 5MB\n ATHLETE_PROFILE_ERRORS.HighlightImageSize\n )\n .refine(\n file => ['image/png', 'image/jpeg', 'image/jpg'].includes(file.type),\n ATHLETE_PROFILE_ERRORS.HighlightImageTypes\n ),\n z.string(),\n z.null(),\n ])\n .optional(),\n});\n\n/**\n * Type inferred from basicProfileSchema for basic profile form data\n */\nexport type BasicProfileFormData = z.infer<typeof basicProfileSchema>;\n\n/**\n * Type inferred from fanProfileSchema for fan profile form data\n */\nexport type FanProfileFormData = z.infer<typeof fanProfileSchema>;\n\n/**\n * Type inferred from athleteProfileSchema for athlete profile form data\n */\nexport type AthleteProfileFormData = z.infer<typeof athleteProfileSchema>;\n","/**\n * Enum containing error message keys for campaign creation form validation.\n * Contains localized error message keys that map to translation strings.\n */\nexport enum CREATE_CAMPAIGN_ERRORS {\n /** Error when campaign title is required but not provided */\n TitleRequired = 'components.CreateCampaign.Form.errors.titleRequired',\n /** Error when campaign title exceeds maximum length */\n TitleMax = 'components.CreateCampaign.Form.errors.titleMax',\n /** Error when campaign subtitle is required but not provided */\n SubtitleRequired = 'components.CreateCampaign.Form.errors.subtitleRequired',\n /** Error when campaign subtitle exceeds maximum length */\n SubtitleMax = 'components.CreateCampaign.Form.errors.subtitleMax',\n /** Error when campaign image is required but not provided */\n CampaignImageRequired = 'components.CreateCampaign.Form.errors.campaignImageRequired',\n /** Error when start date is required but not provided */\n StartDateRequired = 'components.CreateCampaign.Form.errors.startDateRequired',\n /** Error when start date format is invalid */\n StartDateInvalid = 'components.CreateCampaign.Form.errors.startDateInvalid',\n /** Error when start date is not in the future */\n StartDateFuture = 'components.CreateCampaign.Form.errors.startDateFuture',\n /** Error when campaign duration is required but not selected */\n DurationRequired = 'components.CreateCampaign.Form.errors.durationRequired',\n /** Error when campaign story is required but not provided */\n StoryRequired = 'components.CreateCampaign.Form.errors.storyRequired',\n /** Error when campaign story exceeds maximum length */\n StoryMax = 'components.CreateCampaign.Form.errors.storyMax',\n /** Error when video URL is from an unsupported provider */\n VideoInvalidProvider = 'components.CreateCampaign.Form.errors.videoInvalidProvider',\n /** Error when funding target is required but not provided */\n FundingRequired = 'components.CreateCampaign.Form.errors.fundingRequired',\n /** Error when funding target is outside allowed range */\n FundingRange = 'components.CreateCampaign.Form.errors.fundingRange',\n /** Error when Instagram handle exceeds maximum length */\n InstagramMax = 'components.CreateCampaign.Form.errors.instagramMax',\n /** Error when Instagram handle format is invalid */\n InstagramInvalid = 'components.CreateCampaign.Form.errors.instagramInvalid',\n /** Error when TikTok handle exceeds maximum length */\n TiktokMax = 'components.CreateCampaign.Form.errors.tiktokMax',\n /** Error when TikTok handle format is invalid */\n TiktokInvalid = 'components.CreateCampaign.Form.errors.tiktokInvalid',\n /** Error when YouTube handle exceeds maximum length */\n YoutubeMax = 'components.CreateCampaign.Form.errors.youtubeMax',\n /** Error when YouTube handle format is invalid */\n YoutubeInvalid = 'components.CreateCampaign.Form.errors.youtubeInvalid',\n}\n\n/**\n * Type representing all possible error keys for campaign creation form validation\n */\nexport type CreateCampaignErrorKey = keyof typeof CREATE_CAMPAIGN_ERRORS;\n","/* eslint-disable no-magic-numbers */\nimport { z } from 'zod';\n\nimport { CREATE_CAMPAIGN_ERRORS as ERR } from './enums';\n\n/**\n * Zod schema for campaign creation form validation.\n * Validates all required fields for creating a new campaign including:\n * - Basic info (title, subtitle, image)\n * - Timeline (start date, duration)\n * - Content (story, video highlight)\n * - Funding target\n * - Social media handles\n *\n * @param config - Configuration object\n * @param config.maxFunding - Maximum funding amount allowed for campaigns\n */\n// eslint-disable-next-line @typescript-eslint/explicit-function-return-type, @typescript-eslint/explicit-module-boundary-types\nexport const formCampaignSchema = ({ maxFunding }: { maxFunding: number }) =>\n z.object({\n title: z.string().min(1, ERR.TitleRequired).max(60, ERR.TitleMax),\n subtitle: z.string().min(1, ERR.SubtitleRequired).max(200, ERR.SubtitleMax),\n campaignImage: z.any().refine(val => val instanceof File, {\n message: ERR.CampaignImageRequired,\n }),\n startDate: z\n .date({\n error: ERR.StartDateRequired,\n })\n .refine(date => date instanceof Date && !isNaN(date.getTime()), {\n message: ERR.StartDateInvalid,\n })\n .refine(date => date >= new Date(), {\n message: ERR.StartDateFuture,\n }),\n duration: z\n .union([z.literal(30), z.literal(60), z.literal(90)])\n .nullable()\n .refine(val => val !== null, {\n message: ERR.DurationRequired,\n }),\n story: z.string().min(1, ERR.StoryRequired).max(10000, ERR.StoryMax),\n videoHighlight: z\n .string()\n .refine(\n url => {\n if (!url || url.trim() === '') return true;\n try {\n const urlObj = new URL(url);\n const hostname = urlObj.hostname.toLowerCase();\n return (\n hostname.includes('youtube.com') ||\n hostname.includes('youtu.be') ||\n hostname.includes('tiktok.com') ||\n hostname.includes('vimeo.com')\n );\n } catch {\n return false;\n }\n },\n {\n message: ERR.VideoInvalidProvider,\n }\n )\n .optional(),\n fundingTarget: z\n .string()\n .min(1, ERR.FundingRequired)\n .refine(\n val => {\n const num = Number.parseFloat(val ?? '');\n return !isNaN(num) && num > 0 && num <= maxFunding;\n },\n {\n message: ERR.FundingRange,\n }\n ),\n instagramHandle: z\n .string()\n .max(30, ERR.InstagramMax)\n .regex(/^$|^@?(?!.*\\.\\.)(?!.*\\.$)[a-zA-Z0-9._]{1,30}$/, ERR.InstagramInvalid)\n .optional(),\n tiktokHandle: z\n .string()\n .max(24, ERR.TiktokMax)\n .regex(/^$|^@?[a-zA-Z0-9][a-zA-Z0-9._]{1,23}$/, ERR.TiktokInvalid)\n .optional(),\n youtubeHandle: z\n .string()\n .max(50, ERR.YoutubeMax)\n .regex(/^$|^@[a-zA-Z0-9][a-zA-Z0-9._-]{1,28}[a-zA-Z0-9]$/, ERR.YoutubeInvalid)\n .optional(),\n });\n","/**\n * Standard service names for logger instances across packages\n *\n * These constants ensure consistency in service naming and prevent typos\n * when creating logger instances.\n */\nexport const LOGGER_SERVICES = {\n // API Package Services\n API_CLIENT: 'ApiClient',\n CLIENT_EVENT_MANAGER: 'ClientEventManager',\n INTERCEPTORS: 'Interceptors',\n PUB_SUB: 'PubSub',\n EVENT_MANAGER: 'EventManager',\n EVENT_QUEUE: 'EventQueue',\n CONFIG_QUEUE: 'ConfigQueue',\n OPERATION_TRACKER: 'OperationTracker',\n EXPRESS_FRAMEWORK: 'ExpressFramework',\n NESTJS_GUARD: 'NestJSGuard',\n NESTJS_INTERCEPTOR: 'NestJSInterceptor',\n NETWORK_CONFIGURATION: 'NetworkConfiguration',\n BASE_OPERATION_TRACKER: 'BaseOperationTracker',\n EVENT_QUEUE_MANAGER: 'EventQueueManager',\n QUEUE_ORCHESTRATOR: 'QueueOrchestrator',\n\n // Debug & Performance Services\n PERFORMANCE_MONITOR: 'PerformanceMonitor',\n DEBUG_REPORT: 'DebugReport',\n UNIFIED_DEBUGGER: 'UnifiedDebugger',\n DEBUGGER_QUEUE_MANAGER: 'DebuggerQueueManager',\n\n // Notification Package Services\n EMAIL_SERVICE: 'EmailService',\n SMS_SERVICE: 'SMSService',\n PUSH_SERVICE: 'PushService',\n WEBHOOK_SERVICE: 'WebhookService',\n TEMPLATE_ENGINE: 'TemplateEngine',\n ATTACHMENT_RESOLVER: 'AttachmentResolver',\n\n // Storage Package Services\n STORAGE_SERVICE: 'StorageService',\n STORAGE_ADAPTER: 'StorageAdapter',\n CLOUDFLARE_R2_ADAPTER: 'CloudflareR2Adapter',\n SUPABASE_STORAGE_ADAPTER: 'SupabaseStorageAdapter',\n ADAPTER_REGISTRY: 'AdapterRegistry',\n MEDIA_PROCESSOR: 'MediaProcessor',\n METADATA_EXTRACTOR: 'MetadataExtractor',\n VIRUS_SCANNER: 'VirusScanner',\n TEMPLATE_RENDERER: 'TemplateRenderer',\n COMPLIANCE_MANAGER: 'ComplianceManager',\n\n // Config Package Services\n CONFIG_MANAGER: 'ConfigManager',\n CONFIG_VALIDATOR: 'ConfigValidator',\n} as const;\n\nexport type LoggerService = (typeof LOGGER_SERVICES)[keyof typeof LOGGER_SERVICES];\n","/**\n * Comprehensive enumeration of all payment-related events that can occur\n * in the system. Events are organized by category and follow a hierarchical\n * naming convention for easy filtering and subscription.\n *\n * Naming Convention:\n * - Category.Action (e.g., payment.completed)\n * - Use present tense for ongoing events, past tense for completed events\n * - Include both success and failure events for complete audit trails\n */\nexport enum PAYMENT_EVENT_TYPE {\n // Payment lifecycle events\n PaymentInitiated = 'payment.initiated',\n PaymentProcessing = 'payment.processing',\n PaymentRequiresAction = 'payment.requires_action',\n PaymentCompleted = 'payment.completed',\n PaymentFailed = 'payment.failed',\n PaymentCancelled = 'payment.cancelled',\n PaymentExpired = 'payment.expired',\n PaymentAuthorized = 'payment.authorized',\n PaymentCaptured = 'payment.captured',\n PaymentHeld = 'payment.held',\n PaymentReleased = 'payment.released',\n\n // Refund lifecycle events\n RefundRequested = 'refund.requested',\n RefundApproved = 'refund.approved',\n RefundRejected = 'refund.rejected',\n RefundProcessing = 'refund.processing',\n RefundCompleted = 'refund.completed',\n RefundFailed = 'refund.failed',\n RefundCancelled = 'refund.cancelled',\n\n // Withdrawals / Payout events\n WithdrawalRequested = 'withdrawal.requested',\n WithdrawalProcessed = 'withdrawal.processed',\n WithdrawalFailed = 'withdrawal.failed',\n WithdrawalCancelled = 'withdrawal.cancelled',\n\n // Provider interaction events\n ProviderWebhookReceived = 'provider.webhook.received',\n ProviderWebhookProcessed = 'provider.webhook.processed',\n ProviderWebhookFailed = 'provider.webhook.failed',\n ProviderApiCalled = 'provider.api.called',\n ProviderApiSucceeded = 'provider.api.succeeded',\n ProviderApiFailed = 'provider.api.failed',\n ProviderTimeout = 'provider.timeout',\n ProviderHealthChanged = 'provider.health.changed',\n\n // Financial events\n SettlementInitiated = 'settlement.initiated',\n SettlementCompleted = 'settlement.completed',\n SettlementFailed = 'settlement.failed',\n PayoutRequested = 'payout.requested',\n PayoutProcessed = 'payout.processed',\n PayoutFailed = 'payout.failed',\n\n // Dispute and chargeback events\n ChargebackReceived = 'chargeback.received',\n ChargebackResponded = 'chargeback.responded',\n ChargebackWon = 'chargeback.won',\n ChargebackLost = 'chargeback.lost',\n DisputeCreated = 'dispute.created',\n DisputeUpdated = 'dispute.updated',\n DisputeResolved = 'dispute.resolved',\n DisputeEscalated = 'dispute.escalated',\n\n // Security and fraud events\n FraudDetected = 'fraud.detected',\n FraudReviewRequired = 'fraud.review_required',\n FraudCleared = 'fraud.cleared',\n SuspiciousActivity = 'suspicious.activity',\n PaymentBlocked = 'payment.blocked',\n SecurityCheckFailed = 'security.check_failed',\n VelocityLimitExceeded = 'velocity.limit_exceeded',\n\n // Payment method events\n PaymentMethodAdded = 'payment_method.added',\n PaymentMethodUpdated = 'payment_method.updated',\n PaymentMethodDeleted = 'payment_method.deleted',\n PaymentMethodVerified = 'payment_method.verified',\n PaymentMethodExpired = 'payment_method.expired',\n\n // Subscription events\n SubscriptionCreated = 'subscription.created',\n SubscriptionUpdated = 'subscription.updated',\n SubscriptionCancelled = 'subscription.cancelled',\n SubscriptionRenewed = 'subscription.renewed',\n SubscriptionFailed = 'subscription.failed',\n SubscriptionTrialStarted = 'subscription.trial_started',\n SubscriptionTrialEnded = 'subscription.trial_ended',\n\n // Product & Pricing events\n ProductCreated = 'product.created',\n ProductUpdated = 'product.updated',\n ProductDeleted = 'product.deleted',\n PriceCreated = 'price.created',\n PriceUpdated = 'price.updated',\n PriceDeleted = 'price.deleted',\n\n // System and operational events\n PaymentLimitsUpdated = 'payment_limits.updated',\n PaymentLimitsExceeded = 'payment_limits.exceeded',\n ProviderConfigUpdated = 'provider.config_updated',\n ProviderMaintenanceStarted = 'provider.maintenance_started',\n ProviderMaintenanceEnded = 'provider.maintenance_ended',\n\n // Compliance and KYC events\n ComplianceCheckRequired = 'compliance.check_required',\n ComplianceCheckPassed = 'compliance.check_passed',\n ComplianceCheckFailed = 'compliance.check_failed',\n\n // Audit events\n AuditTrailCreated = 'audit.trail_created',\n RegulatoryReportGenerated = 'regulatory.report_generated',\n}\n\n/**\n * Payment event categories for organization and routing.\n */\nexport enum PAYMENT_EVENT_CATEGORY {\n TRANSACTION = 'transaction',\n REFUND = 'refund',\n PROVIDER = 'provider',\n SECURITY = 'security',\n COMPLIANCE = 'compliance',\n FINANCIAL = 'financial',\n SUBSCRIPTION = 'subscription',\n SYSTEM = 'system',\n AUDIT = 'audit',\n}\n\n/**\n * Error categories for payment events.\n */\nexport enum PAYMENT_EVENT_ERROR_CATEGORY {\n UserError = 'user_error', // User input or action errors\n ProviderError = 'provider_error', // Payment provider errors\n SystemError = 'system_error', // Internal system errors\n NetworkError = 'network_error', // Network connectivity errors\n FraudError = 'fraud_error', // Fraud detection errors\n ComplianceError = 'compliance_error', // Regulatory compliance errors\n LimitError = 'limit_error', // Limit exceeded errors\n ConfigurationError = 'configuration_error', // Configuration errors\n TimeoutError = 'timeout_error', // Timeout errors\n ValidationError = 'validation_error', // Data validation errors\n}\n","/**\n * Event processing status enumeration.\n */\nexport enum EVENT_PROCESSING_STATUS {\n Received = 'received', // Event received from provider\n Validating = 'validating', // Signature and format validation\n Normalizing = 'normalizing', // Converting to unified format\n Normalized = 'normalized', // Successfully normalized\n Processing = 'processing', // Business logic processing\n Completed = 'completed', // Processing completed successfully\n Failed = 'failed', // Processing failed\n Retrying = 'retrying', // Retrying after failure\n Skipped = 'skipped', // Skipped due to filters/rules\n}\n","/**\n * Enumeration of all supported payment providers in the Plyaz ecosystem.\n */\nexport enum PAYMENT_PROVIDER_TYPE {\n // Traditional payment processors\n Stripe = 'stripe',\n Paypal = 'paypal',\n CheckoutCom = 'checkout_com',\n Adyen = 'adyen',\n\n // Cryptocurrency payment providers\n Moonpay = 'moonpay',\n CoinbaseCommerce = 'coinbase_commerce',\n BlockchainBridge = 'blockchain_bridge',\n\n // Regional payment providers\n Pix = 'pix',\n Boleto = 'boleto',\n Sepa = 'sepa',\n Ideal = 'ideal',\n Sofort = 'sofort',\n Alipay = 'alipay',\n WechatPay = 'wechat_pay',\n\n // Mock provider for testing\n MockProvider = 'mock_provider',\n}\n\n/**\n * Enumeration of payment methods supported across all providers.\n */\nexport enum PAYMENT_METHOD {\n // Traditional payment methods\n CreditCard = 'credit_card',\n DebitCard = 'debit_card',\n BankTransfer = 'bank_transfer',\n PaypalAccount = 'paypal_account',\n\n // Cryptocurrency payment methods\n CryptoBitcoin = 'crypto_bitcoin',\n CryptoEthereum = 'crypto_ethereum',\n CryptoPolygon = 'crypto_polygon',\n CryptoOptimism = 'crypto_optimism',\n CryptoUsdc = 'crypto_usdc',\n CryptoUsdt = 'crypto_usdt',\n CryptoNativeToken = 'crypto_native_token',\n\n // Regional payment methods\n PixInstant = 'pix_instant',\n BoletoBancario = 'boleto_bancario',\n SepaDirectDebit = 'sepa_direct_debit',\n IdealBank = 'ideal_bank',\n SofortBanking = 'sofort_banking',\n AlipayDigital = 'alipay_digital',\n WechatPayDigital = 'wechat_pay_digital',\n\n // Digital wallets\n ApplePay = 'apple_pay',\n GooglePay = 'google_pay',\n SamsungPay = 'samsung_pay',\n}\n\n/**\n * Comprehensive payment status enumeration.\n */\nexport enum PAYMENT_STATUS {\n // Initial states\n Initiated = 'initiated',\n Pending = 'pending',\n Processing = 'processing',\n\n // Action required states\n RequiresAction = 'requires_action',\n RequiresConfirmation = 'requires_confirmation',\n RequiresPaymentMethod = 'requires_payment_method',\n\n // Success states\n Completed = 'completed',\n Settled = 'settled',\n\n // Failure states\n Failed = 'failed',\n Declined = 'declined',\n Cancelled = 'cancelled',\n Expired = 'expired',\n\n // Refund states\n Refunded = 'refunded',\n PartiallyRefunded = 'partially_refunded',\n\n // Dispute states\n Disputed = 'disputed',\n Chargeback = 'chargeback',\n ChargebackResolved = 'chargeback_resolved',\n\n // Special states\n Held = 'held',\n Authorized = 'authorized',\n Captured = 'captured',\n}\n\n/**\n * Transaction type enumeration.\n */\nexport enum TRANSACTION_TYPE {\n Payment = 'payment',\n Refund = 'refund',\n PartialRefund = 'partial_refund',\n Withdrawal = 'withdrawal',\n Donation = 'donation',\n Subscription = 'subscription',\n SubscriptionRenewal = 'subscription_renewal',\n Fee = 'fee',\n Chargeback = 'chargeback',\n Adjustment = 'adjustment',\n Reward = 'reward',\n Penalty = 'penalty',\n Transfer = 'transfer',\n}\n\n/**\n * User type enumeration.\n */\nexport enum USER_TYPE {\n Fan = 'fan',\n Athlete = 'athlete',\n Club = 'club',\n Agent = 'agent',\n Scout = 'scout',\n Admin = 'admin',\n System = 'system',\n}\n\n/**\n * Product type enumeration.\n */\nexport enum PRODUCT_TYPE {\n Campaign = 'campaign',\n Subscription = 'subscription',\n Nft = 'nft',\n Merchandise = 'merchandise',\n EventTicket = 'event_ticket',\n PremiumContent = 'premium_content',\n TrainingSession = 'training_session',\n Consultation = 'consultation',\n DigitalProduct = 'digital_product',\n PhysicalProduct = 'physical_product',\n}\n","/**\n * Enumeration of action types that users might need to complete.\n */\nexport enum REQUIREDACTIONTYPE {\n /** Redirect to external page (3D Secure, bank auth, etc.) */\n Redirect = 'redirect',\n\n /** Enter SMS or email verification code */\n OtpVerification = 'otp_verification',\n\n /** Upload identity or financial documents */\n DocumentUpload = 'document_upload',\n\n /** Provide additional payment information */\n AdditionalPaymentInfo = 'additional_payment_info',\n\n /** Confirm payment via mobile app or email */\n PaymentConfirmation = 'payment_confirmation',\n\n /** Contact customer support for manual verification */\n ManualVerification = 'manual_verification',\n\n /** Wait for bank transfer or other delayed method */\n WaitForCompletion = 'wait_for_completion',\n}\n","export enum PROVIDER_PRODUCT_STATUS {\n Active = 'active',\n Inactive = 'inactive',\n Archived = 'archived',\n}\n","/**\n * Enum for fee types\n */\nexport enum FEE_TYPE {\n Platform = 'platform',\n CrossBorder = 'crossBorder',\n Conversion = 'currencyConversion',\n Network = 'network',\n Gas = 'gas',\n Expedite = 'expedite',\n Risk = 'risk',\n Compliance = 'compliance',\n Chargeback = 'chargeback',\n Refund = 'refund',\n}\n\n/**\n * Enum for transaction contexts\n */\nexport enum FEE_CONTEXT {\n Payment = 'payment',\n Subscription = 'subscription',\n Withdrawal = 'withdrawal',\n Refund = 'refund',\n Dispute = 'dispute',\n}\n","/**\n * Cost optimization strategies.\n */\nexport enum COST_OPTIMIZATION_STRATEGY {\n /** Always use cheapest option */\n Aggressive = 'aggressive',\n\n /** Balance cost with reliability */\n Balanced = 'balanced',\n\n /** Prefer reliability over cost */\n Conservative = 'conservative',\n\n /** Optimize for specific cost components */\n Targeted = 'targeted',\n}\n\n/**\n * Failover strategies.\n */\nexport enum FAIL_OVER_STRATEGY {\n /** Use predefined provider order */\n PriorityOrder = 'priority_order',\n\n /** Failover to next available provider */\n NextAvailable = 'next_available',\n\n /** Failover based on performance metrics */\n PerformanceBased = 'performance_based',\n\n /** Failover to least loaded provider */\n LoadBalanced = 'load_balanced',\n\n /** Geographic failover preference */\n Geographic = 'geographic',\n}\n\n/**\n * Regulatory frameworks.\n */\nexport enum REGULATORY_FRAMEWORK {\n PciDss = 'pci_dss',\n Gdpr = 'gdpr',\n Psd2 = 'psd2',\n Sox = 'sox',\n Aml = 'aml',\n Kyc = 'kyc',\n Ccpa = 'ccpa',\n LocalBanking = 'local_banking',\n}\n\n/**\n * Load balancing strategies.\n */\nexport enum LOAD_BALANCING_STRATEGY {\n /** Rotate through providers evenly */\n RoundRobin = 'round_robin',\n\n /** Use weighted distribution */\n Weighted = 'weighted',\n\n /** Choose provider with least active traffic */\n LeastConnections = 'least_connections',\n\n /** Choose based on best performance metrics */\n PerformanceBased = 'performance_based',\n\n /** Custom strategy defined by merchant */\n Custom = 'custom',\n}\n\n/**\n * Types of performance metrics.\n */\nexport enum PERFORMANCE_METRIC_TYPE {\n Latency = 'latency',\n SuccessRate = 'success_rate',\n ErrorRate = 'error_rate',\n Throughput = 'throughput',\n Retries = 'retries',\n Availability = 'availability',\n Cost = 'cost',\n}\n\n/**\n * Primary routing strategies.\n */\nexport enum ROUTING_STRATEGY {\n /** Optimize for lowest total cost */\n CostOptimized = 'cost_optimized',\n\n /** Optimize for highest reliability */\n ReliabilityFirst = 'reliability_first',\n\n /** Optimize for fastest processing */\n PerformanceFirst = 'performance_first',\n\n /** Balance cost, reliability, and performance */\n Balanced = 'balanced',\n\n /** Use user or region preferences */\n UserPreference = 'user_preference',\n\n /** Distribute load evenly */\n RoundRobin = 'round_robin',\n\n /** Custom routing logic */\n Custom = 'custom',\n}\n\n/**\n * Enumerates all routing rule identifiers used within RouterStrategy.\n *\n * Purpose:\n * - Avoid hardcoded strings for rule names\n * - Provide consistent naming for debugging and error contexts\n * - Improve developer experience via auto-completion\n */\nexport enum ROUTER_RULE_NAME {\n AmountBasedSelection = 'amountBasedSelection',\n CurrencySpecificProviders = 'currencySpecificProviders',\n RegionSelection = 'regionSelection',\n RegionCompliance = 'regionCompliance',\n UserTypeSelection = 'userTypeSelection',\n TimeBasedSelection = 'timeBasedSelection',\n CustomRuleEvaluation = 'customRuleEvaluation',\n ABTesting = 'abTesting',\n DefaultSelection = 'defaultSelection',\n}\n\nexport const CUSTOM_RULE_FIELD = {\n AMOUNT: 'request.amount',\n CURRENCY: 'request.currency',\n USER_TYPE: 'request.userType',\n REGION: 'request.metadata.geoInfo.region',\n} as const;\n\n// Type representing the **values** of CUSTOM_RULE_FIELD\nexport type CustomRuleField = (typeof CUSTOM_RULE_FIELD)[keyof typeof CUSTOM_RULE_FIELD];\n","/**\n * Payment-specific error categories\n */\n// TODO: check if this is correct\nexport const PAYMENT_ERROR_CATEGORY = {\n /** Payment method validation or processing error */\n PaymentMethod: 'payment.method',\n\n /** Transaction processing error */\n Transaction: 'transaction',\n\n /** Payment capture error */\n Capture: 'capture',\n\n /** Payment authorization error */\n Authorization: 'authorization',\n\n /** Payment settlement error */\n Settlement: 'settlement',\n\n /** Refund processing error */\n Refund: 'refund',\n\n /** Payment gateway or provider error */\n Gateway: 'gateway',\n\n /** Payment fraud detection error */\n Fraud: 'fraud',\n\n /** Payment compliance error (AML/KYC) */\n Compliance: 'compliance',\n\n /** Payment limits exceeded */\n Limits: 'limits',\n\n /** Payment webhook error */\n Webhook: 'webhook',\n\n /** Payment security error */\n Security: 'security',\n\n /** Payment processing timeout */\n Timeout: 'timeout',\n\n /** Payment configuration error */\n Configuration: 'configuration',\n} as const;\n\nexport enum REFUND_ERROR_TYPES {\n NotAllowed = 'not_allowed',\n Authorization = 'authorization',\n Processing = 'processing',\n}\n\n/**\n * Refund not allowed reasons.\n */\nexport enum REFUND_NOT_ALLOWED_REASON {\n AlreadyRefunded = 'already_refunded',\n PartialNotSupported = 'partial_not_supported',\n TimeLimitExceeded = 'time_limit_exceeded',\n InsufficientBalance = 'insufficient_balance',\n ProviderRestriction = 'provider_restriction',\n ComplianceRestriction = 'compliance_restriction',\n}\n\n/**\n * Security threat types.\n */\nexport enum SECURITY_THREAT_TYPE {\n FraudSuspected = 'fraud_suspected',\n VelocityExceeded = 'velocity_exceeded',\n SuspiciousPattern = 'suspicious_pattern',\n BlockedRegion = 'blocked_region',\n BlacklistedMethod = 'blacklisted_method',\n SystemThreat = 'system_threat',\n}\n\n/**\n * Webhook verification failure reasons.\n */\nexport enum WEBHOOK_VERIFICATION_REASON {\n InvalidSignature = 'invalid_signature',\n MissingSignature = 'missing_signature',\n ExpiredTimestamp = 'expired_timestamp',\n InvalidPayload = 'invalid_payload',\n UnknownEndpoint = 'unknown_endpoint',\n}\n\n/**\n * Central registry for all payment resolution translation keys.\n * Provides type safety and autocompletion for all PaymentError subclasses.\n */\n\nexport const PAYMENT_RESOLUTION_KEYS = {\n GENERIC: 'resolution.generic',\n PAYMENTS_PACKAGE_ERROR: 'resolution._package_error',\n\n // Validation\n PAYMENT_VALIDATION_ERROR: 'resolution.payment_validation_error',\n INVALID_AMOUNT_ERROR: 'resolution.invalid_amount_error',\n INVALID_PAYMENT_METHOD_ERROR: 'resolution.invalid_payment_method_error',\n\n // Processing\n PAYMENT_PROCESSING_ERROR: 'resolution.payment_processing_error',\n PAYMENT_DECLINED_ERROR: 'resolution.payment_declined_error',\n INSUFFICIENT_FUNDS_ERROR: 'resolution.insufficient_funds_error',\n\n // Provider\n PAYMENT_PROVIDER_ERROR: 'resolution.payment_provider_error',\n PROVIDER_TIMEOUT_ERROR: 'resolution.provider_timeout_error',\n PROVIDER_RATE_LIMIT_ERROR: 'resolution.provider_rate_limit_error',\n\n // Security\n PAYMENT_SECURITY_ERROR: 'resolution.payment_security_error',\n FRAUD_DETECTED_ERROR: 'resolution.fraud_detected_error',\n VELOCITY_LIMIT_EXCEEDED_ERROR: 'resolution.velocity_limit_exceeded_error',\n\n // Refund\n REFUND_ERROR: 'resolution.refund_error',\n REFUND_NOT_ALLOWED_ERROR: 'resolution.refund_not_allowed_error',\n REFUND_AUTHORIZATION_ERROR: 'resolution.refund_authorization_error',\n\n COMPLIANCE_ERROR: 'resolution.compliance_error',\n KYC_VERIFICATION_REQUIRED: 'resolution.kyc_verification_required',\n GEOGRAPHIC_RESTRICTION: 'resolution.geographic_restriction',\n\n PAYMENT_WEBHOOK_PACKAGE_ERROR: 'resolution.payment_webhook_package_error',\n PAYMENT_WEBHOOK_VERIFICATION_ERROR: 'resolution.payment_webhook_verification_error',\n PAYMENT_WEBHOOK_PROCESSING_ERROR: 'resolution.payment_webhook_processing_error',\n PAYMENT_WEBHOOK_REPLAY_ERROR: 'resolution.payment_webhook_replay_error',\n} as const;\n\n/** Union type of all available resolution keys */\nexport type PaymentResolutionKey =\n (typeof PAYMENT_RESOLUTION_KEYS)[keyof typeof PAYMENT_RESOLUTION_KEYS];\n\n/**\n * Central registry for all payment recommendation translation keys.\n * Provides type safety and autocompletion for analytics, alerts, and monitoring logic.\n */\n\nexport const PAYMENT_RECOMMENDATION_KEYS = {\n RETRY_LOGIC: 'recommendation.retry_logic',\n CHECK_PROVIDER: 'recommendation.check_provider',\n CRITICAL_ALERT: 'recommendation.critical_alert',\n USER_FACING: 'recommendation.user_facing',\n SYSTEM_STABLE: 'recommendation.system_stable',\n} as const;\n\n/** Union type of all available recommendation keys */\nexport type PaymentRecommendationKey =\n (typeof PAYMENT_RECOMMENDATION_KEYS)[keyof typeof PAYMENT_RECOMMENDATION_KEYS];\n","import { PAYMENT_STATUS } from '../provider';\n\nexport enum IDEMPOTENCY_STATUS {\n PENDING = 'PENDING',\n COMPLETED = 'COMPLETED',\n FAILED = 'FAILED',\n}\n\nexport const IDEMPOTENCY_SAFE_STATUSES: PAYMENT_STATUS[] = [\n PAYMENT_STATUS.Completed,\n PAYMENT_STATUS.Settled,\n PAYMENT_STATUS.Refunded,\n PAYMENT_STATUS.PartiallyRefunded,\n PAYMENT_STATUS.Disputed,\n];\n","// KYC Status\nexport enum KYC_STATUS {\n Pending = 'PENDING',\n Approved = 'APPROVED',\n Rejected = 'REJECTED',\n Expired = 'EXPIRED',\n}\n\n// KYC Tier\nexport enum KYC_TIER {\n Tier0 = 'TIER_0',\n Tier1 = 'TIER_1',\n Tier2 = 'TIER_2',\n Tier3 = 'TIER_3',\n}\n\n// KYC Provider\nexport enum KYC_PROVIDER {\n StripeIdentity = 'STRIPE_IDENTITY',\n Sumsub = 'SUMSUB',\n Onfido = 'ONFIDO',\n Jumio = 'JUMIO',\n Manual = 'MANUAL',\n}\n\nexport enum ONBOARD_STATUS {\n Pending = 'PENDING', // User needs to complete KYC\n Completed = 'COMPLETED', // KYC completed successfully\n Redirect = 'REJECTED', // KYC rejected\n Failed = 'FAILED', // Technical or unknown failure\n}\n\nexport enum ONBOARD_LINK_TYPE {\n Onboard = 'ONBOARD', // First-time onboarding\n Update = 'UPDATE', // Update missing info\n}\n\n/**\n * KYC entity type for onboarding and verification.\n */\nexport enum KYC_ENTITY_TYPE {\n Individual = 'individual', // Natural person\n Company = 'company', // Standard legal entity / corporation\n NonProfit = 'non_profit', // Non-profit organization / NGO\n GovernmentEntity = 'government_entity', // Government agency or public entity\n}\n\n/**\n * Configuration for KYC per user type.\n */\nexport interface UserTypeKycConfig {\n kycRequired: boolean;\n entityType: KYC_ENTITY_TYPE | null;\n}\n","/**\n * Notification Constants and Enums\n *\n * Type-level constants and enum values for the notifications system.\n *\n * @module notifications/enums\n */\n\n/**\n * Notification Providers\n * Standard provider names to ensure consistency across the package\n */\nexport const NOTIFICATION_PROVIDERS = {\n /** Infobip omnichannel provider (Email, SMS, WhatsApp) - PRIMARY */\n INFOBIP: 'Infobip',\n\n /** SendGrid email provider - FALLBACK */\n SENDGRID: 'SendGrid',\n\n /** Mock email provider for testing */\n MOCK_EMAIL: 'MockEmail',\n\n /** Mock SMS provider for testing */\n MOCK_SMS: 'MockSMS',\n\n /** Mock push provider for testing */\n MOCK_PUSH: 'MockPush',\n} as const;\n\n/**\n * Notification Channels\n * Available notification delivery channels\n */\nexport const NOTIFICATION_CHANNELS = {\n EMAIL: 'email',\n SMS: 'sms',\n PUSH: 'push',\n} as const;\n\n/**\n * Notification Categories (FR-4.3)\n * Determines opt-out behavior for compliance\n */\nexport const NOTIFICATION_CATEGORIES = {\n /** Cannot be opted out - compliance requirement (password resets, order confirmations) */\n TRANSACTIONAL: 'transactional',\n\n /** User can opt-out (newsletters, promotions) */\n MARKETING: 'marketing',\n\n /** User can opt-out (likes, comments, follows) */\n SOCIAL: 'social',\n\n /** System alerts and notifications (security alerts, system status) */\n SYSTEM: 'system',\n\n /** Promotional offers and campaigns */\n PROMOTIONAL: 'promotional',\n} as const;\n\n/**\n * Signature verification method for webhooks\n */\nexport enum SIGNATURE_METHOD {\n HmacSha256 = 'hmac-sha256',\n HmacSha1 = 'hmac-sha1',\n HmacSha512 = 'hmac-sha512',\n Custom = 'custom',\n}\n\n/**\n * Webhook event types mapped to internal notification events\n */\nexport enum WEBHOOK_EVENT_TYPE {\n // Delivery events\n Delivered = 'delivered',\n Bounced = 'bounced',\n Deferred = 'deferred',\n Dropped = 'dropped',\n\n // Engagement events\n Opened = 'opened',\n Clicked = 'clicked',\n\n // Spam/unsubscribe events\n SpamReport = 'spam_report',\n Unsubscribed = 'unsubscribed',\n\n // SMS-specific\n SmsDelivered = 'sms_delivered',\n SmsFailed = 'sms_failed',\n\n // Push-specific\n PushDelivered = 'push_delivered',\n PushFailed = 'push_failed',\n\n // Generic\n Unknown = 'unknown',\n}\n\n/**\n * Webhook encryption method for PII-safe IDs\n */\nexport enum WEBHOOK_ENCRYPTION_METHOD {\n /** HMAC-SHA256 hashing (recommended for IDs) */\n HmacSha256 = 'hmac-sha256',\n /** HMAC-SHA512 hashing (stronger) */\n HmacSha512 = 'hmac-sha512',\n /** No encryption (not recommended) */\n None = 'none',\n}\n\n/**\n * Common MIME types for attachments\n */\nexport const MIME_TYPES = {\n // Documents\n PDF: 'application/pdf',\n DOC: 'application/msword',\n DOCX: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',\n XLS: 'application/vnd.ms-excel',\n XLSX: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',\n PPT: 'application/vnd.ms-powerpoint',\n PPTX: 'application/vnd.openxmlformats-officedocument.presentationml.presentation',\n TXT: 'text/plain',\n CSV: 'text/csv',\n\n // Images\n PNG: 'image/png',\n JPG: 'image/jpeg',\n JPEG: 'image/jpeg',\n GIF: 'image/gif',\n SVG: 'image/svg+xml',\n WEBP: 'image/webp',\n\n // Archives\n ZIP: 'application/zip',\n RAR: 'application/x-rar-compressed',\n TAR: 'application/x-tar',\n GZIP: 'application/gzip',\n\n // Other\n JSON: 'application/json',\n XML: 'application/xml',\n} as const;\n\n/**\n * Common file extensions for attachments\n */\nexport const FILE_EXTENSIONS = {\n // Documents\n PDF: '.pdf',\n DOC: '.doc',\n DOCX: '.docx',\n XLS: '.xls',\n XLSX: '.xlsx',\n PPT: '.ppt',\n PPTX: '.pptx',\n TXT: '.txt',\n CSV: '.csv',\n\n // Images\n PNG: '.png',\n JPG: '.jpg',\n JPEG: '.jpeg',\n GIF: '.gif',\n SVG: '.svg',\n WEBP: '.webp',\n\n // Archives\n ZIP: '.zip',\n RAR: '.rar',\n TAR: '.tar',\n GZ: '.gz',\n GZIP: '.gzip',\n\n // Other\n JSON: '.json',\n XML: '.xml',\n} as const;\n","/**\n * Notification Validation Schemas\n *\n * Zod schemas for validating notification inputs\n * Ensures type safety and prevents invalid data from entering the system\n *\n * @module notifications/schemas\n */\n\nimport { z } from 'zod';\nimport { NOTIFICATION_CATEGORIES } from './enums';\n\n// Validation length constants\nconst MAX_EMAIL_LENGTH = 255;\nconst MAX_USER_ID_LENGTH = 255;\nconst MAX_TEMPLATE_ID_LENGTH = 255;\nconst MAX_DEVICE_TOKEN_LENGTH = 512;\n\n/**\n * Email address validation\n * - Must be valid email format\n * - Max 255 characters\n * - Automatically lowercased and trimmed\n */\nexport const EmailSchema = z\n .string()\n .email('Invalid email address format')\n .max(MAX_EMAIL_LENGTH, 'Email address must be 255 characters or less')\n .transform(val => val.trim().toLowerCase());\n\n/**\n * Phone number validation (E.164 format)\n * - Must start with optional + followed by country code\n * - 1-15 digits total (E.164 standard)\n * - Examples: +14155552671, +442071838750, +8613800000000\n */\nexport const PhoneSchema = z\n .string()\n .regex(/^\\+?[1-9]\\d{1,14}$/, 'Invalid phone number format (E.164 expected)')\n .describe('Phone number in E.164 format');\n\n/**\n * User ID validation\n * - Required, non-empty string\n * - Max 255 characters\n */\nexport const UserIdSchema = z\n .string()\n .min(1, 'User ID is required')\n .max(MAX_USER_ID_LENGTH, 'User ID must be 255 characters or less');\n\n/**\n * Template ID validation\n * - Only lowercase letters, numbers, hyphens, and slashes\n * - Used for file path construction, must be safe\n * - Examples: welcome, password-reset, order/confirmation\n */\nexport const TemplateIdSchema = z\n .string()\n .min(1, 'Template ID is required')\n .regex(\n /^[a-z0-9-/]+$/,\n 'Template ID must contain only lowercase letters, numbers, hyphens, and slashes'\n )\n .max(MAX_TEMPLATE_ID_LENGTH, 'Template ID must be 255 characters or less');\n\n/**\n * Locale validation\n * - ISO 639-1 language code (2 lowercase letters)\n * - Optional ISO 3166-1 country code (2 uppercase letters)\n * - Examples: en, en-US, es, es-MX, fr-FR\n */\nexport const LocaleSchema = z\n .string()\n .regex(/^[a-z]{2}(-[A-Z]{2})?$/, 'Locale must be in format: en, en-US, es, es-MX')\n .describe('Locale in ISO 639-1 format');\n\n/**\n * Notification category validation (FR-4.3)\n * - transactional: Cannot be opted out (compliance requirement)\n * - marketing: User can opt-out\n * - social: User can opt-out\n */\nexport const NotificationCategorySchema = z\n .enum([\n NOTIFICATION_CATEGORIES.TRANSACTIONAL,\n NOTIFICATION_CATEGORIES.MARKETING,\n NOTIFICATION_CATEGORIES.SOCIAL,\n NOTIFICATION_CATEGORIES.SYSTEM,\n NOTIFICATION_CATEGORIES.PROMOTIONAL,\n ] as const)\n .default(NOTIFICATION_CATEGORIES.TRANSACTIONAL)\n .describe('Notification category for compliance and user preferences');\n\n/**\n * Queue priority validation\n */\nexport const QueuePrioritySchema = z.enum(['high', 'normal', 'low']);\n\n/**\n * Correlation ID validation\n * - UUID v4 format\n * - Used for tracing across systems\n */\nexport const CorrelationIdSchema = z\n .string()\n .uuid('Correlation ID must be a valid UUID v4')\n .describe('UUID v4 correlation ID');\n\n/**\n * Template data validation\n * - Must be a valid object\n * - Can contain strings, numbers, booleans, or nested objects\n * - Arrays are allowed\n */\nexport const TemplateDataSchema = z.record(z.string(), z.unknown()).optional();\n\n/**\n * Device token validation (for push notifications)\n * - Non-empty string\n * - Max 512 characters (FCM tokens can be quite long)\n */\nexport const DeviceTokenSchema = z\n .string()\n .min(1, 'Device token is required')\n .max(MAX_DEVICE_TOKEN_LENGTH, 'Device token must be 512 characters or less');\n","/**\n * Webhook Validation Schemas\n *\n * Zod schemas for validating webhook payloads from notification providers\n * Provider-specific webhook event structures\n *\n * @module notifications/webhooks.schemas\n */\n\nimport { z } from 'zod';\n\n// ============================================================================\n// INFOBIP EMAIL DELIVERY WEBHOOK SCHEMAS\n// ============================================================================\n\n/**\n * Infobip Email Status schema\n */\nexport const InfobipEmailStatusSchema = z.object({\n groupId: z.number().optional(),\n groupName: z.string().optional(),\n id: z.number().optional(),\n name: z.string().optional(),\n description: z.string().optional(),\n action: z.string().optional(),\n});\n\n/**\n * Infobip Error Info schema\n */\nexport const InfobipErrorInfoSchema = z.object({\n groupId: z.number().optional(),\n groupName: z.string().optional(),\n id: z.number().optional(),\n name: z.string().optional(),\n description: z.string().optional(),\n permanent: z.boolean().optional(),\n});\n\n/**\n * Infobip Price Info schema\n */\nexport const InfobipPriceInfoSchema = z.object({\n pricePerMessage: z.number().optional(),\n currency: z.string().optional(),\n});\n\n/**\n * Infobip Delivery Result schema\n */\nexport const InfobipDeliveryResultSchema = z\n .object({\n messageId: z.string().optional(),\n to: z.string().optional(),\n bulkId: z.string().optional(),\n sentAt: z.string().optional(),\n doneAt: z.string().optional(),\n status: InfobipEmailStatusSchema.optional(),\n error: InfobipErrorInfoSchema.optional(),\n attemptCount: z.number().optional(),\n timeToFirstAttempt: z.number().optional(),\n sendingIp: z.string().optional(),\n price: InfobipPriceInfoSchema.optional(),\n smsCount: z.number().optional(),\n browserLink: z.string().optional(),\n applicationId: z.string().optional(),\n entityId: z.string().optional(),\n campaignReferenceId: z.string().optional(),\n callbackData: z.string().optional(),\n })\n .loose();\n\n/**\n * Infobip Delivery Webhook Payload schema\n */\nexport const InfobipDeliveryWebhookSchema = z.object({\n results: z.array(InfobipDeliveryResultSchema),\n});\n\n// ============================================================================\n// INFOBIP EMAIL TRACKING WEBHOOK SCHEMAS\n// ============================================================================\n\n/**\n * Infobip Geo Location schema\n */\nexport const InfobipGeoLocationSchema = z\n .object({\n countryName: z.string().optional(),\n countryCode: z.string().optional(),\n regionName: z.string().optional(),\n city: z.string().optional(),\n latitude: z.number().optional(),\n longitude: z.number().optional(),\n })\n .loose();\n\n/**\n * Infobip Recipient Info schema\n */\nexport const InfobipRecipientInfoSchema = z\n .object({\n messageId: z.number().optional(),\n to: z.string().optional(),\n requestId: z.string().optional(),\n sentDateTime: z.number().optional(),\n })\n .loose();\n\n/**\n * Infobip Tracking Event schema\n */\nexport const InfobipTrackingEventSchema = z\n .object({\n messageId: z.number().optional(),\n bulkId: z.string().optional(),\n recipient: z.string().optional(),\n sender: z.string().optional(),\n domain: z.string().optional(),\n notificationType: z.string().optional(), // OPENED, CLICKED, COMPLAINED, LATE_BOUNCE, UNSUBSCRIBED\n eventId: z.string().optional(),\n sendDateTime: z.number().optional(),\n url: z.string().optional(), // For CLICKED events\n applicationId: z.string().optional(),\n entityId: z.string().optional(),\n campaignReferenceId: z.string().optional(),\n callbackData: z.string().optional(),\n geoLocation: InfobipGeoLocationSchema.optional(),\n recipientInfo: InfobipRecipientInfoSchema.optional(),\n })\n .loose();\n\n/**\n * Infobip Tracking Webhook Payload schema\n * Note: Tracking webhooks send a single event object, not an array\n */\nexport const InfobipTrackingWebhookSchema = z\n .object({\n messageId: z.number().optional(),\n bulkId: z.string().optional(),\n recipient: z.string().optional(),\n sender: z.string().optional(),\n domain: z.string().optional(),\n notificationType: z.string().optional(),\n eventId: z.string().optional(),\n sendDateTime: z.number().optional(),\n url: z.string().optional(),\n applicationId: z.string().optional(),\n entityId: z.string().optional(),\n campaignReferenceId: z.string().optional(),\n callbackData: z.string().optional(),\n geoLocation: InfobipGeoLocationSchema.optional(),\n recipientInfo: InfobipRecipientInfoSchema.optional(),\n })\n .loose();\n\n// ============================================================================\n// SENDGRID WEBHOOK SCHEMAS\n// ============================================================================\n\n/**\n * SendGrid Event schema\n */\nexport const SendGridEventSchema = z\n .object({\n email: z.string().email(),\n timestamp: z.number(),\n event: z.enum([\n 'processed',\n 'dropped',\n 'delivered',\n 'deferred',\n 'bounce',\n 'open',\n 'click',\n 'spam_report',\n 'unsubscribe',\n 'group_unsubscribe',\n 'group_resubscribe',\n ]),\n sg_event_id: z.string(),\n sg_message_id: z.string(),\n\n // Custom args (our notification metadata)\n notification_id: z.string().optional(),\n recipient_id: z.string().optional(),\n category: z.string().optional(),\n\n // Event-specific fields\n url: z.string().optional(), // For click events\n reason: z.string().optional(), // For bounce/drop events\n status: z.string().optional(), // For drop/bounce events\n response: z.string().optional(), // For bounce events\n useragent: z.string().optional(), // For open/click events\n ip: z.string().optional(), // For open/click events\n\n // Unsubscribe-specific\n asm_group_id: z.number().optional(), // Unsubscribe group ID\n })\n .loose(); // Allow additional fields\n\n/**\n * SendGrid Webhook Payload schema (array of events)\n */\nexport const SendGridWebhookSchema = z.array(SendGridEventSchema);\n\n// ============================================================================\n// TYPE EXPORTS\n// ============================================================================\n\n// Infobip webhook-specific types (prefixed to avoid collision with API types)\nexport type InfobipWebhookEmailStatus = z.infer<typeof InfobipEmailStatusSchema>;\nexport type InfobipWebhookErrorInfo = z.infer<typeof InfobipErrorInfoSchema>;\nexport type InfobipWebhookPriceInfo = z.infer<typeof InfobipPriceInfoSchema>;\nexport type InfobipWebhookDeliveryResult = z.infer<typeof InfobipDeliveryResultSchema>;\nexport type InfobipWebhookDeliveryPayload = z.infer<typeof InfobipDeliveryWebhookSchema>;\n\nexport type InfobipWebhookGeoLocation = z.infer<typeof InfobipGeoLocationSchema>;\nexport type InfobipWebhookRecipientInfo = z.infer<typeof InfobipRecipientInfoSchema>;\nexport type InfobipWebhookTrackingEvent = z.infer<typeof InfobipTrackingEventSchema>;\nexport type InfobipWebhookTrackingPayload = z.infer<typeof InfobipTrackingWebhookSchema>;\n\n// SendGrid webhook types\nexport type SendGridWebhookEvent = z.infer<typeof SendGridEventSchema>;\nexport type SendGridWebhookPayload = z.infer<typeof SendGridWebhookSchema>;\n","/**\n * Media file extensions\n */\nexport const MEDIA_EXTENSIONS = {\n IMAGE: ['jpg', 'jpeg', 'png', 'gif', 'webp', 'svg', 'ico', 'bmp', 'tiff'],\n VIDEO: ['mp4', 'webm', 'avi', 'mov', 'wmv', 'flv', 'mkv', '3gp'],\n AUDIO: ['mp3', 'wav', 'ogg', 'aac', 'flac', 'm4a', 'wma'],\n} as const;\n\n/**\n * Media MIME type prefixes\n */\nexport const MEDIA_MIME_PREFIXES = ['image/', 'video/', 'audio/'] as const;\n\n/**\n * ANSI color codes\n */\nexport const COLORS = {\n // Reset\n reset: '\\x1b[0m',\n\n // Text colors\n black: '\\x1b[30m',\n red: '\\x1b[31m',\n green: '\\x1b[32m',\n yellow: '\\x1b[33m',\n blue: '\\x1b[34m',\n magenta: '\\x1b[35m',\n cyan: '\\x1b[36m',\n white: '\\x1b[37m',\n gray: '\\x1b[90m',\n\n // Bright colors\n brightRed: '\\x1b[91m',\n brightGreen: '\\x1b[92m',\n brightYellow: '\\x1b[93m',\n brightBlue: '\\x1b[94m',\n brightMagenta: '\\x1b[95m',\n brightCyan: '\\x1b[96m',\n brightWhite: '\\x1b[97m',\n\n // Background colors\n bgRed: '\\x1b[41m',\n bgGreen: '\\x1b[42m',\n bgYellow: '\\x1b[43m',\n bgBlue: '\\x1b[44m',\n bgMagenta: '\\x1b[45m',\n bgCyan: '\\x1b[46m',\n bgWhite: '\\x1b[47m',\n\n // Text styles\n bold: '\\x1b[1m',\n dim: '\\x1b[2m',\n italic: '\\x1b[3m',\n underline: '\\x1b[4m',\n blink: '\\x1b[5m',\n reverse: '\\x1b[7m',\n hidden: '\\x1b[8m',\n strikethrough: '\\x1b[9m',\n} as const;\n\n/**\n * Correlation ID types for different contexts\n * Used across packages for distributed tracing and event correlation\n */\nexport enum CORRELATION_TYPE {\n /** Network event correlation */\n NETWORK = 'net',\n /** API request correlation */\n API = 'api',\n /** User session correlation */\n SESSION = 'session',\n /** Transaction correlation */\n TRANSACTION = 'txn',\n /** Event correlation */\n EVENT = 'evt',\n /** Trace correlation */\n TRACE = 'trace',\n /** Generic correlation */\n GENERIC = 'corr',\n}\n","/**\n * Monitoring/Observability Types\n *\n * Adapter-based observability system supporting multiple providers\n * (Datadog, Grafana, OpenTelemetry, etc.) with parallel and priority modes.\n *\n * All types are prefixed with \"Monitoring\" for this dedicated module.\n *\n * @module observability/types\n */\n\n// ─────────────────────────────────────────────────────────────────────────────\n// Monitoring Types\n// ─────────────────────────────────────────────────────────────────────────────\n\n/**\n * Supported observability providers\n * Currently implemented: 'datadog', 'console', 'noop'\n * Planned: 'grafana', 'opentelemetry', 'prometheus', 'newrelic', 'custom'\n */\nexport type MonitoringObservabilityProvider =\n | 'datadog'\n | 'console'\n | 'noop'\n // Planned providers (uncomment when implemented):\n // | 'grafana'\n // | 'opentelemetry'\n // | 'prometheus'\n // | 'newrelic'\n | 'custom';\n\n/**\n * Metric types\n */\nexport type MonitoringMetricType = 'counter' | 'gauge' | 'histogram' | 'summary';\n\n/**\n * Span status for tracing\n */\nexport type MonitoringSpanStatus = 'ok' | 'error' | 'unset';\n\n/**\n * Log levels\n */\nexport type MonitoringLogLevel = 'debug' | 'info' | 'warn' | 'error' | 'fatal';\n\n// ─────────────────────────────────────────────────────────────────────────────\n// Metric Types\n// ─────────────────────────────────────────────────────────────────────────────\n\n/**\n * Base metric options\n */\nexport interface MonitoringMetricOptions {\n /** Metric name (e.g., 'http.request.duration') */\n name: string;\n /** Human-readable description */\n description?: string;\n /** Unit of measurement (e.g., 'ms', 'bytes', 'count') */\n unit?: string;\n /** Tags/labels for the metric */\n tags?: Record<string, string | number | boolean>;\n}\n\n/**\n * Counter metric (monotonically increasing)\n */\nexport interface MonitoringCounterMetric extends MonitoringMetricOptions {\n type: 'counter';\n /** Value to increment by (default: 1) */\n value?: number;\n}\n\n/**\n * Gauge metric (can go up or down)\n */\nexport interface MonitoringGaugeMetric extends MonitoringMetricOptions {\n type: 'gauge';\n /** Current value */\n value: number;\n}\n\n/**\n * Histogram metric (distribution of values)\n */\nexport interface MonitoringHistogramMetric extends MonitoringMetricOptions {\n type: 'histogram';\n /** Value to record */\n value: number;\n /** Bucket boundaries (optional) */\n buckets?: number[];\n}\n\n/**\n * Summary metric (percentiles)\n */\nexport interface MonitoringSummaryMetric extends MonitoringMetricOptions {\n type: 'summary';\n /** Value to record */\n value: number;\n /** Percentiles to track (e.g., [0.5, 0.9, 0.99]) */\n percentiles?: number[];\n}\n\n/**\n * Union of all metric types\n */\nexport type MonitoringMetric =\n | MonitoringCounterMetric\n | MonitoringGaugeMetric\n | MonitoringHistogramMetric\n | MonitoringSummaryMetric;\n\n// ─────────────────────────────────────────────────────────────────────────────\n// Tracing Types\n// ─────────────────────────────────────────────────────────────────────────────\n\n/**\n * Span context for distributed tracing\n */\nexport interface MonitoringSpanContext {\n /** Unique trace ID */\n traceId: string;\n /** Unique span ID */\n spanId: string;\n /** Parent span ID (if any) */\n parentSpanId?: string;\n /** Sampling decision */\n sampled?: boolean;\n}\n\n/**\n * Span attributes following OpenTelemetry semantic conventions.\n * Property names use dot notation as per OTel spec (e.g., 'service.name').\n */\n\nexport interface MonitoringSpanAttributes {\n /** Service name */\n // eslint-disable-next-line @typescript-eslint/naming-convention\n 'service.name'?: string;\n /** Operation name */\n // eslint-disable-next-line @typescript-eslint/naming-convention\n 'operation.name'?: string;\n /** HTTP method */\n // eslint-disable-next-line @typescript-eslint/naming-convention\n 'http.method'?: string;\n /** HTTP URL */\n // eslint-disable-next-line @typescript-eslint/naming-convention\n 'http.url'?: string;\n /** HTTP status code */\n // eslint-disable-next-line @typescript-eslint/naming-convention\n 'http.status_code'?: number;\n /** Database system */\n // eslint-disable-next-line @typescript-eslint/naming-convention\n 'db.system'?: string;\n /** Database statement */\n // eslint-disable-next-line @typescript-eslint/naming-convention\n 'db.statement'?: string;\n /** Error flag */\n error?: boolean;\n /** Error message */\n // eslint-disable-next-line @typescript-eslint/naming-convention\n 'error.message'?: string;\n /** Custom attributes */\n [key: string]: string | number | boolean | undefined;\n}\n\n/**\n * Span event (point-in-time occurrence within a span)\n */\nexport interface MonitoringSpanEvent {\n /** Event name */\n name: string;\n /** Event timestamp */\n timestamp?: number;\n /** Event attributes */\n attributes?: Record<string, string | number | boolean>;\n}\n\n/**\n * Options for creating a span\n */\nexport interface MonitoringSpanOptions {\n /** Span name (operation being traced) */\n name: string;\n /** Span kind */\n kind?: 'internal' | 'server' | 'client' | 'producer' | 'consumer';\n /** Initial attributes */\n attributes?: MonitoringSpanAttributes;\n /** Parent span context (for distributed tracing) */\n parentContext?: MonitoringSpanContext;\n /** Start time (default: now) */\n startTime?: number;\n}\n\n/**\n * Active span interface\n */\nexport interface MonitoringSpan {\n /** Span context */\n context: MonitoringSpanContext;\n /** Set attribute on span */\n setAttribute(key: string, value: string | number | boolean): void;\n /** Set multiple attributes */\n setAttributes(attributes: MonitoringSpanAttributes): void;\n /** Add event to span */\n addEvent(event: MonitoringSpanEvent): void;\n /** Set span status */\n setStatus(status: MonitoringSpanStatus, message?: string): void;\n /** End the span */\n end(endTime?: number): void;\n /** Record exception */\n recordException(error: Error): void;\n}\n\n// ─────────────────────────────────────────────────────────────────────────────\n// Logging Types\n// ─────────────────────────────────────────────────────────────────────────────\n\n/**\n * Structured log entry\n */\nexport interface MonitoringLogEntry {\n /** Log level */\n level: MonitoringLogLevel;\n /** Log message */\n message: string;\n /** Timestamp */\n timestamp?: number;\n /** Service/component name */\n service?: string;\n /** Additional context */\n context?: Record<string, unknown>;\n /** Associated trace ID */\n traceId?: string;\n /** Associated span ID */\n spanId?: string;\n /** Error object (if logging an error) */\n error?: Error;\n}\n\n// ─────────────────────────────────────────────────────────────────────────────\n// Event Types\n// ─────────────────────────────────────────────────────────────────────────────\n\n/**\n * Custom event for observability\n */\nexport interface MonitoringObservabilityEvent {\n /** Event name */\n name: string;\n /** Event timestamp */\n timestamp?: number;\n /** Event properties */\n properties?: Record<string, unknown>;\n /** Associated tags */\n tags?: Record<string, string>;\n}\n\n// ─────────────────────────────────────────────────────────────────────────────\n// Adapter Interface\n// ─────────────────────────────────────────────────────────────────────────────\n\n/**\n * Base observability adapter interface.\n *\n * All observability providers (Datadog, Grafana, OpenTelemetry, etc.)\n * must implement this interface.\n *\n * @example\n * ```typescript\n * class DatadogAdapter implements ObservabilityAdapter {\n * readonly provider = 'datadog';\n * readonly name = 'DatadogAdapter';\n *\n * async initialize(config: DatadogConfig): Promise<void> {\n * // Initialize Datadog client\n * }\n *\n * async recordMetric(metric: Metric): Promise<void> {\n * // Send to Datadog\n * }\n *\n * // ... other methods\n * }\n * ```\n */\nexport interface MonitoringObservabilityAdapter {\n /** Provider type */\n readonly provider: MonitoringObservabilityProvider;\n\n /** Adapter name for logging */\n readonly name: string;\n\n /** Whether the adapter is initialized */\n readonly isInitialized: boolean;\n\n // ─── Lifecycle ─────────────────────────────────────────────────────────────\n\n /**\n * Initialize the adapter with provider-specific config\n */\n initialize(config: MonitoringObservabilityAdapterConfig): Promise<void>;\n\n /**\n * Shutdown/cleanup the adapter\n */\n shutdown(): Promise<void>;\n\n /**\n * Check if adapter is healthy/connected\n */\n isHealthy(): Promise<boolean>;\n\n // ─── Metrics ───────────────────────────────────────────────────────────────\n\n /**\n * Record a metric\n */\n recordMetric(metric: MonitoringMetric): Promise<void>;\n\n /**\n * Increment a counter\n */\n incrementCounter(name: string, value?: number, tags?: Record<string, string>): Promise<void>;\n\n /**\n * Set a gauge value\n */\n setGauge(name: string, value: number, tags?: Record<string, string>): Promise<void>;\n\n /**\n * Record a histogram value\n */\n recordHistogram(name: string, value: number, tags?: Record<string, string>): Promise<void>;\n\n // ─── Tracing ───────────────────────────────────────────────────────────────\n\n /**\n * Start a new span\n */\n startSpan(options: MonitoringSpanOptions): MonitoringSpan;\n\n /**\n * Get current active span (if any)\n */\n getActiveSpan(): MonitoringSpan | null;\n\n /**\n * Run a function within a span\n */\n withSpan<T>(options: MonitoringSpanOptions, fn: (span: MonitoringSpan) => Promise<T>): Promise<T>;\n\n // ─── Logging ───────────────────────────────────────────────────────────────\n\n /**\n * Send a log entry\n */\n log(entry: MonitoringLogEntry): Promise<void>;\n\n // ─── Events ────────────────────────────────────────────────────────────────\n\n /**\n * Send a custom event\n */\n sendEvent(event: MonitoringObservabilityEvent): Promise<void>;\n\n // ─── Flush ─────────────────────────────────────────────────────────────────\n\n /**\n * Flush any buffered data\n */\n flush(): Promise<void>;\n}\n\n// ─────────────────────────────────────────────────────────────────────────────\n// Adapter Configuration\n// ─────────────────────────────────────────────────────────────────────────────\n\n/**\n * Base adapter configuration\n */\nexport interface MonitoringObservabilityAdapterConfig {\n /** Enable/disable the adapter */\n enabled?: boolean;\n /** Service name for tagging */\n serviceName?: string;\n /** Environment (production, staging, development) */\n environment?: string;\n /** Default tags to add to all metrics/spans */\n defaultTags?: Record<string, string>;\n /** Sampling rate for traces (0.0 to 1.0) */\n samplingRate?: number;\n /** Flush interval in milliseconds */\n flushInterval?: number;\n /** Buffer size before auto-flush */\n bufferSize?: number;\n}\n\n/**\n * Datadog-specific configuration\n */\nexport interface MonitoringDatadogAdapterConfig extends MonitoringObservabilityAdapterConfig {\n /** Datadog API key */\n apiKey: string;\n /** Datadog site (e.g., 'datadoghq.com', 'datadoghq.eu') */\n site?: string;\n /** Enable APM tracing */\n apmEnabled?: boolean;\n /** Enable RUM (Real User Monitoring) */\n rumEnabled?: boolean;\n /** RUM application ID */\n rumApplicationId?: string;\n /** RUM client token */\n rumClientToken?: string;\n}\n\n/**\n * OpenTelemetry-specific configuration\n */\nexport interface MonitoringOpenTelemetryAdapterConfig extends MonitoringObservabilityAdapterConfig {\n /** OTLP endpoint URL */\n endpoint: string;\n /** Headers for OTLP exporter */\n headers?: Record<string, string>;\n /** Export interval in milliseconds */\n exportInterval?: number;\n /** Resource attributes */\n resourceAttributes?: Record<string, string>;\n}\n\n/**\n * Grafana/Prometheus-specific configuration\n */\nexport interface MonitoringGrafanaAdapterConfig extends MonitoringObservabilityAdapterConfig {\n /** Push gateway URL (for Prometheus) */\n pushGatewayUrl?: string;\n /** Grafana Cloud user */\n grafanaCloudUser?: string;\n /** Grafana Cloud API key */\n grafanaCloudApiKey?: string;\n /** Loki endpoint for logs */\n lokiEndpoint?: string;\n /** Tempo endpoint for traces */\n tempoEndpoint?: string;\n}\n\n/**\n * Console adapter configuration (for development)\n */\nexport interface MonitoringConsoleAdapterConfig extends MonitoringObservabilityAdapterConfig {\n /** Pretty print output */\n prettyPrint?: boolean;\n /** Include timestamps */\n includeTimestamps?: boolean;\n /** Log level filter */\n logLevel?: MonitoringLogLevel;\n}\n\n// ─────────────────────────────────────────────────────────────────────────────\n// Composite Adapter Types (Parallel & Priority)\n// ─────────────────────────────────────────────────────────────────────────────\n\n/**\n * Mode for composite adapter\n */\nexport type MonitoringCompositeMode = 'parallel' | 'priority';\n\n/**\n * Configuration for composite adapter\n */\nexport interface MonitoringCompositeAdapterConfig extends MonitoringObservabilityAdapterConfig {\n /** Execution mode */\n mode: MonitoringCompositeMode;\n\n /**\n * Child adapters to use.\n * For 'parallel': all adapters receive data simultaneously\n * For 'priority': try first adapter, fallback to next on failure\n */\n adapters: MonitoringObservabilityAdapter[];\n\n /**\n * For 'priority' mode: continue to next adapter on these error types\n * Default: all errors trigger fallback\n */\n fallbackOnErrors?: string[];\n\n /**\n * For 'parallel' mode: fail if any adapter fails (default: false)\n * If false, logs errors but continues\n */\n failOnAnyError?: boolean;\n\n /**\n * Timeout for each adapter operation in ms (default: 5000)\n */\n adapterTimeout?: number;\n}\n\n// ─────────────────────────────────────────────────────────────────────────────\n// Service Integration Types\n// ─────────────────────────────────────────────────────────────────────────────\n\n/**\n * Operation context for service hooks\n */\nexport interface MonitoringOperationContext {\n /** Service name */\n serviceName: string;\n /** Operation name (e.g., 'create', 'update', 'delete') */\n operation: string;\n /** Entity type (e.g., 'user', 'topic') */\n entityType?: string;\n /** Entity ID (if applicable) */\n entityId?: string;\n /** Start timestamp */\n startTime: number;\n /** Custom attributes */\n attributes?: Record<string, unknown>;\n /** Parent trace context */\n parentContext?: MonitoringSpanContext;\n}\n\n/**\n * Operation result for service hooks\n */\nexport interface MonitoringOperationResult {\n /** Whether operation succeeded */\n success: boolean;\n /** Duration in milliseconds */\n duration: number;\n /** Error (if failed) */\n error?: Error;\n /** Result data (optional) */\n data?: unknown;\n}\n\n// ─────────────────────────────────────────────────────────────────────────────\n// Service Types\n// ─────────────────────────────────────────────────────────────────────────────\n\n/**\n * Adapter with priority and failover configuration.\n * Higher priority = tried first in priority mode, executed first in parallel mode.\n */\nexport interface MonitoringAdapterWithPriority {\n /** The adapter instance (should be pre-initialized) */\n adapter: MonitoringObservabilityAdapter;\n /**\n * Priority level (higher = more important)\n * - In priority mode: higher priority adapters are tried first\n * - In parallel mode: higher priority adapters are executed first\n * Default: 0\n */\n priority?: number;\n /**\n * Mark this adapter as a failover/fallback adapter.\n * - In parallel mode: failover adapters only receive data if primary adapters fail\n * - In priority mode: failover adapters are only tried after all primary adapters fail\n * Default: false\n */\n failover?: boolean;\n}\n\n/**\n * Internal adapter entry with resolved metadata.\n * Used by ObservabilityService to track adapter configuration.\n */\nexport interface MonitoringAdapterEntry {\n /** The adapter instance */\n adapter: MonitoringObservabilityAdapter;\n /** Resolved priority level */\n priority: number;\n /** Whether this is a failover adapter */\n failover: boolean;\n}\n\n/**\n * Configuration for ObservabilityService.\n *\n * Note: Adapter-specific configs (apiKey, endpoints, etc.) are NOT here.\n * Each adapter is initialized separately with its own config before being passed here.\n */\nexport interface MonitoringObservabilityServiceConfig {\n /**\n * Execution mode\n * - 'single': Use only one adapter (default)\n * - 'parallel': Send to all adapters simultaneously\n * - 'priority': Try adapters in order, use first successful\n */\n mode?: 'single' | 'parallel' | 'priority';\n\n /**\n * Single adapter (for 'single' mode).\n * Should be pre-initialized.\n */\n adapter?: MonitoringObservabilityAdapter | MonitoringAdapterWithPriority;\n\n /**\n * Multiple adapters (for 'parallel' or 'priority' mode).\n * Can be plain adapters or adapters with priority config.\n * Should be pre-initialized.\n */\n adapters?: (MonitoringObservabilityAdapter | MonitoringAdapterWithPriority)[];\n\n /** Timeout for adapter operations in ms (default: 5000) */\n adapterTimeout?: number;\n\n /** For parallel mode: fail if any adapter fails (default: false) */\n failOnAnyError?: boolean;\n\n /** For priority mode: error types that trigger fallback (default: all) */\n fallbackOnErrors?: string[];\n}\n\n/**\n * Interface for ObservabilityService (for dependency injection typing)\n */\nexport interface MonitoringObservabilityServiceInterface {\n readonly isReady: boolean;\n\n // Metrics\n incrementCounter(name: string, value?: number, tags?: Record<string, string>): Promise<void>;\n setGauge(name: string, value: number, tags?: Record<string, string>): Promise<void>;\n recordHistogram(name: string, value: number, tags?: Record<string, string>): Promise<void>;\n recordMetric(metric: MonitoringMetric): Promise<void>;\n\n // Tracing\n startSpan(options: MonitoringSpanOptions): MonitoringSpan;\n withSpan<T>(options: MonitoringSpanOptions, fn: (span: MonitoringSpan) => Promise<T>): Promise<T>;\n getActiveSpan(): MonitoringSpan | null;\n\n // Logging\n log(entry: MonitoringLogEntry): Promise<void>;\n\n // Events\n sendEvent(event: MonitoringObservabilityEvent): Promise<void>;\n\n // Service operation helpers\n trackOperation<T>(\n context: MonitoringOperationContext,\n operation: () => Promise<T>\n ): Promise<{ result: T; metrics: MonitoringOperationResult }>;\n\n // Lifecycle\n shutdown(): Promise<void>;\n flush(): Promise<void>;\n isHealthy(): Promise<boolean>;\n}\n\n// ─────────────────────────────────────────────────────────────────────────────\n// Constants\n// ─────────────────────────────────────────────────────────────────────────────\n\n/**\n * Pre-defined metric names for consistency\n */\nexport const OBSERVABILITY_METRICS = {\n // Service metrics\n SERVICE_OPERATION_DURATION: 'service.operation.duration',\n SERVICE_OPERATION_COUNT: 'service.operation.count',\n SERVICE_OPERATION_ERROR: 'service.operation.error',\n\n // Database metrics\n DB_QUERY_DURATION: 'db.query.duration',\n DB_QUERY_COUNT: 'db.query.count',\n DB_CONNECTION_POOL_SIZE: 'db.connection.pool.size',\n DB_CONNECTION_POOL_USED: 'db.connection.pool.used',\n\n // Cache metrics\n CACHE_HIT: 'cache.hit',\n CACHE_MISS: 'cache.miss',\n CACHE_SET: 'cache.set',\n CACHE_DELETE: 'cache.delete',\n\n // API metrics\n API_REQUEST_DURATION: 'api.request.duration',\n API_REQUEST_COUNT: 'api.request.count',\n API_REQUEST_ERROR: 'api.request.error',\n\n // Transaction metrics\n TRANSACTION_DURATION: 'transaction.duration',\n TRANSACTION_COUNT: 'transaction.count',\n TRANSACTION_ROLLBACK: 'transaction.rollback',\n} as const;\n\n/**\n * Pre-defined span names for consistency\n */\nexport const OBSERVABILITY_SPANS = {\n SERVICE_CREATE: 'service.create',\n SERVICE_UPDATE: 'service.update',\n SERVICE_DELETE: 'service.delete',\n SERVICE_GET: 'service.get',\n SERVICE_LIST: 'service.list',\n SERVICE_BULK_CREATE: 'service.bulk_create',\n SERVICE_BULK_DELETE: 'service.bulk_delete',\n SERVICE_TRANSACTION: 'service.transaction',\n DB_QUERY: 'db.query',\n CACHE_GET: 'cache.get',\n CACHE_SET: 'cache.set',\n API_REQUEST: 'api.request',\n} as const;\n","/**\n * Event Namespace Constants\n * Centralized constants for all event namespaces in the API package\n */\n\n/**\n * Main event namespaces for the API package\n */\nexport const EVENT_NAMESPACES = {\n HEADERS: 'headers',\n NETWORK: 'network',\n ERRORS: 'errors',\n DEBUG: 'debug',\n CONFIG: 'config',\n PERFORMANCE: 'performance',\n CLIENT: 'client',\n CACHE: 'cache',\n POLLING: 'polling',\n REQUEST: 'request',\n REVALIDATION: 'revalidation',\n EVENT_MANAGER: 'eventManager',\n} as const;\n\n/**\n * Header-specific event keys\n */\nexport const HEADER_EVENTS = {\n CHANGED: 'headers:changed',\n ENRICHED: 'headers:enriched',\n CONFLICT: 'headers:conflict',\n OVERRIDE: 'headers:override',\n TRACKED: 'headers:tracked',\n MERGED: 'headers:merged',\n FILTERED: 'headers:filtered',\n VALIDATED: 'headers:validated',\n CACHED: 'headers:cached',\n CACHE_HIT: 'headers:cache:hit',\n CACHE_MISS: 'headers:cache:miss',\n // Wildcard for all header events\n ANY: 'headers:*',\n} as const;\n\n/**\n * Network-specific event keys\n */\nexport const NETWORK_EVENTS = {\n QUALITY_CHANGE: 'network:quality:changed',\n INFO_UPDATE: 'network:info-update',\n CONFIG_OVERRIDE: 'network:config:override',\n CONFIG_RESTORED: 'network:config:restored',\n OVERRIDE_CHANGE: 'network:override-change',\n PRESET_APPLIED: 'network:preset-applied',\n PRESET_CHANGED: 'network:preset:changed',\n HINTS_UPDATED: 'network:hints:updated',\n AUTO_DETECTION: 'network:auto:detection',\n MANUAL_UPDATE: 'network:manual:update',\n // Wildcard for all network events\n ANY: 'network:*',\n} as const;\n\n/**\n * Error-specific event keys\n */\nexport const ERROR_EVENTS = {\n NETWORK_ERROR: 'errors:network',\n VALIDATION_ERROR: 'errors:validation',\n AUTHENTICATION_ERROR: 'errors:authentication',\n AUTHORIZATION_ERROR: 'errors:authorization',\n RATE_LIMIT_ERROR: 'errors:rate-limit',\n SERVER_ERROR: 'errors:server',\n CLIENT_ERROR: 'errors:client',\n TIMEOUT_ERROR: 'errors:timeout',\n CONFLICT_ERROR: 'errors:conflict',\n CACHE_ERROR: 'errors:cache',\n HEADERS_ERROR: 'errors:headers',\n RETRY_ERROR: 'errors:retry',\n STRATEGY_ERROR: 'errors:strategy',\n REGIONAL_ERROR: 'errors:regional',\n NOT_FOUND_ERROR: 'errors:not-found',\n EXTERNAL_SERVICE_ERROR: 'errors:external-service',\n UNKNOWN_ERROR: 'errors:unknown',\n GENERIC_ERROR: 'errors:generic',\n // Wildcard for all error events\n ANY: 'errors:*',\n} as const;\n\n/**\n * Handler scopes for different levels of event handlers\n * These prefixes are used for registering handlers at different priority levels\n * Can be used for any type of handler (error, request, response, debug, etc.)\n *\n * Priority order (lowest to highest):\n * 1. GLOBAL - Set via setGlobalErrorHandlers(), persists across all instances\n * 2. CONFIG - Set via setGlobalConfig({ errorHandlers }), global configuration\n * 3. CLIENT - Set via createApiClient({ errorHandlers }), instance-specific\n * 4. REQUEST/TEMPORARY - Set per-request or via updateConfig(), highest priority\n *\n * Usage:\n * - GLOBAL: For app-wide handlers that should always run (e.g., logging)\n * - CONFIG: For environment-specific handlers (e.g., dev vs prod)\n * - CLIENT: For instance-specific handlers (e.g., per-service client)\n * - REQUEST/TEMPORARY: For request-specific or runtime updates\n *\n * Note: REQUEST and TEMPORARY are aliases - both use 'request' scope\n *\n * Examples of namespaced handlers:\n * - Error handlers: 'global:error', 'config:error', 'client:error'\n * - Debug handlers: 'global:debug', 'config:debug', 'client:debug'\n * - Request handlers: 'global:request', 'config:request', 'client:request'\n */\nexport const HANDLER_SCOPES = {\n GLOBAL: 'global', // Global handlers (lowest priority, persists across all instances)\n CONFIG: 'config', // Config-level handlers (middle priority, from setGlobalConfig)\n CLIENT: 'client', // Client instance handlers (high priority, instance-specific)\n TEMPORARY: 'request', // Temporary handlers (alias for REQUEST, highest priority)\n REQUEST: 'request', // Request-level handlers (highest priority, per-request)\n} as const;\n\n/**\n * Core event scopes (excluding aliases)\n * These are the actual scope values used by the event system\n */\nexport const EVENT_SCOPES = [\n HANDLER_SCOPES.GLOBAL,\n HANDLER_SCOPES.CONFIG,\n HANDLER_SCOPES.CLIENT,\n HANDLER_SCOPES.REQUEST,\n] as const;\n\n/**\n * All event scopes including 'temporary' alias\n * Used in APIs where 'temporary' provides semantic clarity\n */\nexport const EVENT_SCOPES_WITH_TEMPORARY = [...EVENT_SCOPES, 'temporary' as const] as const;\n\n/**\n * Debug-specific event keys\n */\nexport const DEBUG_EVENTS = {\n CONFIG_CONFLICT: 'debug:config-conflict',\n CONFIG_CHANGE: 'debug:config-change',\n HEADERS_TRACKED: 'debug:headers-tracked',\n NETWORK_OVERRIDE: 'debug:network-override',\n NETWORK_STATE_CHANGED: 'debug:network-state-changed',\n NETWORK_DATA_CLEARED: 'debug:network-data-cleared',\n DEBUG_INFO: 'debug:info',\n PERFORMANCE_IMPACT: 'debug:performance-impact',\n MONITORING_ALERT: 'debug:monitoring-alert',\n CONFIG_TRACKED: 'debug:config-tracked',\n CONFLICTS_BATCH: 'debug:conflicts-batch',\n EVENT_OPERATION: 'debug:event-operation',\n // Wildcard for all debug events\n ANY: 'debug:*',\n} as const;\n\n/**\n * Configuration sources - where config updates originate from\n */\nexport const EVENTS_CONFIG_SOURCES = {\n GLOBAL: 'global',\n CREATE_API_CLIENT: 'createApiClient',\n UPDATE_CONFIG: 'updateConfig',\n MANUAL: 'manual',\n ENVIRONMENT: 'environment',\n PRESET: 'preset',\n NETWORK_AWARE: 'networkAware',\n ADAPTIVE: 'adaptive',\n} as const;\n\n/**\n * Configuration-specific event keys\n */\nexport const CONFIG_EVENTS = {\n GLOBAL_UPDATED: 'config:global-updated',\n GLOBAL_RESET: 'config:global-reset',\n ENVIRONMENT_CONFIGURED: 'config:environment-configured',\n PRESET_APPLIED: 'config:preset-applied',\n // Wildcard for all config events\n ANY: 'config:*',\n} as const;\n\n/**\n * Performance-specific event keys\n */\nexport const PERFORMANCE_EVENTS = {\n REQUEST_START: 'performance:request-start',\n REQUEST_COMPLETE: 'performance:request-complete',\n RETRY: 'performance:retry',\n THRESHOLD_EXCEEDED: 'performance:threshold-exceeded',\n OPTIMIZATION_APPLIED: 'performance:optimization-applied',\n METRIC_RECORDED: 'performance:metric-recorded',\n // Wildcard for all performance events\n ANY: 'performance:*',\n} as const;\n\n/**\n * Client-specific event keys\n */\nexport const CLIENT_EVENTS = {\n CONFLICT: 'client:conflict',\n DEBUG: 'client:debug',\n CREATED: 'client:created',\n // Wildcard for all client events\n ANY: 'client:*',\n} as const;\n\n/**\n * Cache-specific event keys\n */\nexport const CACHE_EVENTS = {\n HIT: 'cache:hit',\n MISS: 'cache:miss',\n INVALIDATE: 'cache:invalidate',\n // Wildcard for all cache events\n ANY: 'cache:*',\n} as const;\n\n/**\n * All event keys combined for easy access\n */\nexport const ALL_EVENTS = {\n ...HEADER_EVENTS,\n ...NETWORK_EVENTS,\n ...ERROR_EVENTS,\n ...DEBUG_EVENTS,\n ...CONFIG_EVENTS,\n ...PERFORMANCE_EVENTS,\n ...CLIENT_EVENTS,\n ...CACHE_EVENTS,\n} as const;\n\nexport type EventsConfigSource = (typeof EVENTS_CONFIG_SOURCES)[keyof typeof EVENTS_CONFIG_SOURCES];\n","/**\n * Queue System Enums\n */\n\n/**\n * Priority levels for queue operations\n * @description Defines the priority order for queued operations, from highest (CRITICAL) to lowest (IDLE)\n *\n * @example\n * ```typescript\n * import { PRIORITY_LEVEL } from '@plyaz/types';\n *\n * const priority = PRIORITY_LEVEL.HIGH; // 1\n * if (priority <= PRIORITY_LEVEL.HIGH) {\n * // Handle high-priority request\n * }\n * ```\n */\nexport const PRIORITY_LEVEL = {\n /** Critical priority - highest urgency (0) */\n CRITICAL: 0,\n /** High priority (1) */\n HIGH: 1,\n /** Medium priority (2) */\n MEDIUM: 2,\n /** Normal priority (3) */\n NORMAL: 3,\n /** Low priority (4) */\n LOW: 4,\n /** Idle priority - lowest urgency (5) */\n IDLE: 5,\n} as const;\n","import type { NetworkPresetConfig } from '..';\n\n/**\n * Data saver mode uses offline-optimized presets\n */\nexport const DATA_SAVER_PRESETS: NetworkPresetConfig = {\n performance: 'offline',\n cache: 'aggressive',\n retry: 'conservative',\n revalidation: 'static',\n};\n\n/**\n * Valid Client Hint header names\n */\nexport const CLIENT_HINT_HEADERS = {\n SAVE_DATA: 'save-data',\n ECT: 'ect',\n RTT: 'rtt',\n DOWNLINK: 'downlink',\n DEVICE_MEMORY: 'device-memory',\n ACCEPT_CH: 'Accept-CH',\n ACCEPT_CH_LIFETIME: 'Accept-CH-Lifetime',\n} as const;\n\n/**\n * Validation ranges for header values\n */\nexport const VALIDATION_RANGES = {\n RTT: { MIN: 0, MAX: 10000 }, // 0-10 seconds\n DOWNLINK: { MIN: 0, MAX: 10000 }, // 0-10 Gbps\n DEVICE_MEMORY: { MIN: 0, MAX: 128 }, // 0-128 GB\n} as const;\n","/**\n * Network Quality Enum\n */\n\n/**\n * Network quality levels enum\n */\nexport enum NETWORK_QUALITY {\n EXCELLENT = 'excellent', // 4G, low latency\n GOOD = 'good', // 3G or good 4G\n FAIR = 'fair', // 2G or poor 3G\n POOR = 'poor', // Slow 2G or worse\n OFFLINE = 'offline', // No connection\n UNKNOWN = 'unknown', // Unable to determine\n}\n\n/**\n * Event priority mapping\n */\nexport const EVENT_PRIORITY_MAP = {\n // Critical events\n error: 'critical',\n onNetworkError: 'critical',\n critical: 'critical',\n\n // High priority events\n config: 'high',\n auth: 'high',\n conflict: 'high',\n\n // Normal priority events\n network: 'normal',\n headers: 'normal',\n performance: 'normal',\n\n // Low priority events\n debug: 'low',\n metrics: 'low',\n tracking: 'low',\n} as const;\n\n/**\n * Export preset names for easy access\n */\nexport const NetworkPresetNames = {\n OFFLINE_FIRST: 'offline-first' as const,\n DATA_SAVER: 'data-saver' as const,\n SLOW_CONNECTION: 'slow-connection' as const,\n FAIR_CONNECTION: 'fair-connection' as const,\n GOOD_CONNECTION: 'good-connection' as const,\n EXCELLENT_CONNECTION: 'excellent-connection' as const,\n AGGRESSIVE_CACHE: 'aggressive-cache' as const,\n REALTIME: 'realtime' as const,\n BACKGROUND_SYNC: 'background-sync' as const,\n} as const;\n\n/**\n * Confidence levels for quality detection\n */\nexport const NETWORK_CONFIDENCE_LEVELS = {\n /** Excellent confidence (90%) */\n EXCELLENT: 0.9,\n /** High confidence (80%) */\n HIGH: 0.8,\n /** Medium confidence (70%) */\n MEDIUM: 0.7,\n /** Low confidence (50%) */\n LOW: 0.5,\n /** Threshold for high confidence classification */\n HIGH_THRESHOLD: 0.7,\n /** Threshold for medium confidence classification */\n MEDIUM_THRESHOLD: 0.4,\n} as const;\n\n/**\n * Network quality thresholds\n */\nexport interface QualityThresholds {\n excellentRTT: number; // < 50ms\n goodRTT: number; // < 150ms\n fairRTT: number; // < 400ms\n excellentSpeed: number; // > 10 Mbps\n goodSpeed: number; // > 2 Mbps\n fairSpeed: number; // > 0.5 Mbps\n}\n\n// Speed thresholds in Mbps\nexport const SPEED_THRESHOLDS = {\n EXCELLENT: 10,\n GOOD: 2,\n FAIR: 0.5,\n} as const;\n\n// RTT thresholds in milliseconds\nexport const RTT_THRESHOLDS = {\n EXCELLENT: 50,\n GOOD: 150,\n FAIR: 400,\n} as const;\n\nexport const DEFAULT_THRESHOLDS: QualityThresholds = {\n excellentRTT: RTT_THRESHOLDS.EXCELLENT,\n goodRTT: RTT_THRESHOLDS.GOOD,\n fairRTT: RTT_THRESHOLDS.FAIR,\n excellentSpeed: SPEED_THRESHOLDS.EXCELLENT,\n goodSpeed: SPEED_THRESHOLDS.GOOD,\n fairSpeed: SPEED_THRESHOLDS.FAIR,\n};\n","/**\n * Debugger Event Namespaces and Constants\n * Centralized definition of all debugger tracking operations and event types\n */\n\nimport type { HistoryType, UnifiedOperationType } from '..';\n\n/**\n * Factory operation types for tracking\n * Used when tracking factory-related operations\n */\nexport const FACTORY_OPERATIONS = {\n FACTORY_CREATED: 'factory_created',\n FACTORY_ACCESSED: 'factory_accessed',\n FACTORY_INITIALIZED: 'factory_initialized',\n FACTORIES_RESET: 'factories_reset',\n FACTORY_REGISTER: 'factory_register',\n HANDLER_REGISTERED: 'handler_registered',\n HANDLER_UNREGISTERED: 'handler_unregistered',\n /**\n * Indicates that a specific handler instance has been removed from a factory or scope.\n * Use this when removing a particular handler by reference or ID, as opposed to\n * HANDLER_UNREGISTERED, which refers to unregistering a handler type or all handlers.\n */\n SPECIFIC_HANDLER_REMOVED: 'specific_handler_removed',\n SCOPE_LISTENERS_CLEARED: 'scope_listeners_cleared',\n} as const;\n\n/**\n * Event system operation types\n * Used when tracking event system operations\n */\nexport const EVENT_OPERATIONS = {\n ON: 'on',\n ONCE: 'once',\n OFF: 'off',\n EMIT: 'emit',\n EMIT_ACROSS_SCOPES: 'emit_across_scopes',\n REMOVE_ALL_LISTENERS: 'removeAllListeners',\n ONCE_EXECUTED: 'once_executed',\n CONFIG_UPDATE: 'config_update',\n CONFIG_UPDATE_FAILED: 'config_update_failed',\n GLOBAL_CONFIG_UPDATE: 'global_config_update',\n GLOBAL_CONFIG_RESET: 'global_config_reset',\n SCOPE_CHANGE: 'scope_change',\n FACTORY_CREATE: 'factory_create',\n FACTORY_COORDINATION: 'factory_coordination',\n HANDLER_STRATEGY: 'handler_strategy',\n HANDLER_STRATEGY_APPLIED: 'handler_strategy_applied',\n} as const;\n\n/**\n * Queue operation types\n * Used when tracking queue operations\n */\nexport const QUEUE_OPERATIONS = {\n QUEUE_CREATED: 'queue_created',\n QUEUE_PROCESSED: 'queue_processed',\n QUEUE_CLEARED: 'queue_cleared',\n QUEUE_ERROR: 'queue_error',\n BATCH_PROCESSED: 'batch_processed',\n ITEM_ENQUEUED: 'item_enqueued',\n ITEM_DEQUEUED: 'item_dequeued',\n PRIORITY_CHANGED: 'priority_changed',\n} as const;\n\n/**\n * Config tracking sources\n * Used to identify the source of configuration changes\n */\nexport const DEBUGGER_CONFIG_SOURCES = {\n DEFAULT: 'default',\n DIRECT: 'direct',\n CLIENT: 'client',\n UNIFIED_STRATEGY: 'unifiedStrategy',\n PERFORMANCE_PRESET: 'performancePreset',\n DATA_PATTERN: 'dataPattern',\n CACHE_STRATEGY: 'cacheStrategy',\n RETRY_STRATEGY: 'retryStrategy',\n REVALIDATION_STRATEGY: 'revalidationStrategy',\n ADAPTIVE_CONFIG: 'adaptiveConfig',\n MONITORING_CONFIG: 'monitoringConfig',\n POLLING_CONFIG: 'pollingConfig',\n NETWORK_PRESET: 'networkPreset',\n NETWORK_AWARE: 'networkAware',\n NETWORK_QUALITY: 'networkQuality',\n USER_PREFERENCE: 'userPreference',\n TEMPORARY_OVERRIDE: 'temporaryOverride',\n AUTO_OPTIMIZATION: 'autoOptimization',\n NETWORK_CLIENT_HINTS: 'networkClientHints',\n HEADER_PRESET: 'headerPreset',\n ENRICHED_HEADERS: 'enrichedHeaders',\n USER_HEADERS: 'userHeaders',\n INTERCEPTOR: 'interceptor',\n CONTEXT_HEADERS: 'contextHeaders',\n ENCRYPTION: 'encryption',\n} as const;\n\n/**\n * Debug history entry types\n * Used to categorize history entries\n */\nexport const HISTORY_TYPES = {\n CONFIG: 'config',\n HEADER: 'header',\n NETWORK: 'network',\n PERFORMANCE: 'performance',\n EVENT: 'event',\n EVENT_OPERATION: 'event_operation',\n} as const;\n\n/**\n * Header transformation stages\n * Used to track header changes through the pipeline\n */\nexport const HEADER_STAGES = {\n BASE: 'base',\n ENRICHED: 'enriched',\n INTERCEPTOR: 'interceptor',\n FINAL: 'final',\n} as const;\n\n/**\n * Config update strategies\n * Used when updating configuration\n */\nexport const UPDATE_STRATEGIES = {\n MERGE: 'merge',\n REPLACE: 'replace',\n TEMPORARY: 'temporary',\n} as const;\n\n/**\n * Config change types\n * Used to categorize configuration changes\n */\nexport const CHANGE_TYPES = {\n OVERRIDE: 'override',\n RESTORE: 'restore',\n PRESET_CHANGE: 'preset_change',\n USER_PREFERENCE: 'user_preference',\n AUTO_OPTIMIZATION: 'auto_optimization',\n} as const;\n\n/**\n * Tracking phases\n * Used to identify when tracking occurs\n */\nexport const TRACKING_PHASES = {\n INITIALIZATION: 'initialization',\n RUNTIME: 'runtime',\n UPDATE: 'update',\n} as const;\n\n/**\n * Performance impact levels\n * Used to categorize performance impact\n */\nexport const IMPACT_LEVELS = {\n NONE: 'NONE',\n LOW: 'LOW',\n MEDIUM: 'MEDIUM',\n HIGH: 'HIGH',\n CRITICAL: 'CRITICAL',\n} as const;\n\n/**\n * Monitoring alert severities\n * Used to categorize alert severity\n */\nexport const ALERT_SEVERITIES = {\n INFO: 'info',\n WARNING: 'warning',\n ERROR: 'error',\n CRITICAL: 'critical',\n} as const;\n\n/**\n * Monitoring alert types\n * Used to categorize monitoring alerts\n */\nexport const ALERT_TYPES = {\n CONFLICT: 'conflict',\n PERFORMANCE: 'performance',\n NETWORK: 'network',\n} as const;\n\n/**\n * Combined operation types for unified tracking\n */\nexport const UNIFIED_OPERATIONS = {\n ...FACTORY_OPERATIONS,\n ...EVENT_OPERATIONS,\n ...QUEUE_OPERATIONS,\n} as const;\n\n// Type exports for TypeScript support\nexport type QueueOperationType = (typeof QUEUE_OPERATIONS)[keyof typeof QUEUE_OPERATIONS];\nexport type DebuggerConfigSource =\n (typeof DEBUGGER_CONFIG_SOURCES)[keyof typeof DEBUGGER_CONFIG_SOURCES];\nexport type ChangeType = (typeof CHANGE_TYPES)[keyof typeof CHANGE_TYPES];\n\n/**\n * Helper to check if a string is a valid operation type\n */\nexport function isValidOperation(operation: string): operation is UnifiedOperationType {\n return Object.values(UNIFIED_OPERATIONS).includes(operation as UnifiedOperationType);\n}\n\n/**\n * Helper to check if a string is a valid config source\n */\nexport function isValidConfigSource(source: string): source is DebuggerConfigSource {\n return Object.values(DEBUGGER_CONFIG_SOURCES).includes(source as DebuggerConfigSource);\n}\n\n/**\n * Helper to check if a string is a valid history type\n */\nexport function isValidHistoryType(type: string): type is HistoryType {\n return Object.values(HISTORY_TYPES).includes(type as HistoryType);\n}\n","/**\n * Event constants\n */\nexport const EVENT_CONSTANTS = {\n DEBUG_INFO_INTERVAL_MULTIPLIER: 5,\n IMPACT_THRESHOLDS: {\n NONE: 90,\n LOW: 70,\n MEDIUM: 50,\n HIGH: 30,\n },\n} as const;\n","/**\n * Regional detection constants\n */\n\n// Storage key for cached region\nexport const REGION_STORAGE_KEY = '@plyaz/api:userRegion';\n\n/**\n * Confidence levels for region detection\n */\nexport const REGIONAL_CONFIDENCE_LEVELS = {\n CDN_HEADER: 0.95,\n TIMEZONE_DIRECT: 0.9,\n TIMEZONE_PREFIX: 0.8,\n HIGH: 0.8,\n LOCALE_DIRECT: 0.7,\n MEDIUM: 0.7,\n GEOLOCATION: 0.6,\n LOCALE_LANGUAGE: 0.5,\n LOW: 0.5,\n GLOBAL_FALLBACK: 0.3,\n UNKNOWN_FALLBACK: 0.2,\n FINAL_FALLBACK: 0.1,\n} as const;\n\n/**\n * Geographic coordinates for region detection\n */\nexport const COORDINATES = {\n EU: {\n MIN_LAT: 35,\n MAX_LAT: 70,\n MIN_LON: -10,\n MAX_LON: 40,\n },\n US: {\n MIN_LAT: 25,\n MAX_LAT: 50,\n MIN_LON: -125,\n MAX_LON: -65,\n },\n US_WEST: {\n MIN_LAT: 32,\n MAX_LAT: 42,\n MIN_LON: -125,\n MAX_LON: -114,\n },\n US_EAST: {\n MIN_LAT: 38,\n MAX_LAT: 45,\n MIN_LON: -80,\n MAX_LON: -70,\n },\n ASIA: {\n MIN_LAT: 18,\n MAX_LAT: 54,\n MIN_LON: 73,\n MAX_LON: 135,\n },\n JAPAN: {\n MIN_LAT: 30,\n MAX_LAT: 46,\n MIN_LON: 129,\n MAX_LON: 146,\n },\n} as const;\n\n/**\n * Cache duration constants\n */\nconst HOURS_PER_DAY = 24;\nconst MINUTES_PER_HOUR = 60;\nconst SECONDS_PER_MINUTE = 60;\nconst MS_PER_SECOND = 1000;\n\n// Cache duration: 24 hours in milliseconds\nexport const CACHE_DURATION_MS =\n HOURS_PER_DAY * MINUTES_PER_HOUR * SECONDS_PER_MINUTE * MS_PER_SECOND;\n\n/**\n * Map regions to presets\n */\nexport const REGION_TO_PRESET = {\n eu: 'gdpr',\n us: 'ccpa', // Map US to CCPA (California compliance)\n 'us-ca': 'ccpa',\n cn: 'pipl',\n jp: 'appi',\n ca: 'global', // Canada uses global preset\n global: 'global',\n} as const;\n","/**\n * Event types for pub/sub system\n */\nexport const PUB_SUB_EVENT = {\n CacheUpdate: 'cache:update',\n CacheDelete: 'cache:delete',\n CacheRevalidate: 'cache:revalidate',\n RequestStart: 'request:start',\n RequestSuccess: 'request:success',\n RequestError: 'request:error',\n RequestAbort: 'request:abort',\n} as const;\n","/**\n * @fileoverview Database adapter type definitions\n *\n * Defines the enumeration of supported database adapter types used throughout\n * the database package. This enum provides type-safe identification of different\n * database integrations and is used in configuration, factory methods, and\n * adapter selection logic.\n *\n * **Application Flow Context:**\n * ```\n * Configuration → ADAPTERS Enum → AdapterFactory → Concrete Adapter\n * ↓ ↓ ↓ ↓\n * User Config → Type Safety → Adapter Creation → Database Connection\n * ```\n *\n * **Adapter Types:**\n * - **DRIZZLE**: Type-safe ORM with excellent TypeScript support\n * - **SUPABASE**: Hosted PostgreSQL with real-time capabilities\n * - **SQL**: Raw SQL execution for maximum control\n * - **DATABASE**: Generic fallback adapter\n *\n * @example\n * ```typescript\n * // Adapter selection in configuration\n * const config = {\n * adapter: ADAPTERS.DRIZZLE,\n * connectionString: process.env.DATABASE_URL\n * };\n *\n * // Type-safe adapter factory usage\n * const adapter = AdapterFactory.create(ADAPTERS.SUPABASE, supabaseConfig);\n *\n * // Switch statement with exhaustive checking\n * switch (config.adapter) {\n * case ADAPTERS.DRIZZLE:\n * // Handle Drizzle-specific logic\n * break;\n * case ADAPTERS.SUPABASE:\n * // Handle Supabase-specific logic\n * break;\n * case ADAPTERS.SQL:\n * // Handle SQL-specific logic\n * break;\n * default:\n * // TypeScript ensures all cases are handled\n * throw new Error(`Unsupported adapter: ${config.adapter}`);\n * }\n * ```\n *\n */\n/**\n * @enum ADAPTERS\n * @description\n * Enumeration of supported database adapter types.\n *\n * This enum provides type-safe identification of different database integrations\n * and is used throughout the package for configuration, factory methods, and\n * adapter selection. Each adapter type represents a different approach to\n * database connectivity and operations.\n *\n * **Adapter Characteristics:**\n * - **DATABASE**: Generic fallback, minimal functionality\n * - **DRIZZLE**: Full ORM with type safety and query building\n * - **SUPABASE**: Hosted solution with real-time and auth features\n * - **SQL**: Raw SQL for performance-critical applications\n *\n * @example\n * ```typescript\n * // Configuration with adapter selection\n * const configs = {\n * development: { adapter: ADAPTERS.DRIZZLE },\n * production: { adapter: ADAPTERS.SUPABASE },\n * performance: { adapter: ADAPTERS.SQL }\n * };\n *\n * // Type-safe adapter validation\n * function validateAdapter(adapter: ADAPTERS): boolean {\n * return Object.values(ADAPTERS).includes(adapter);\n * }\n * ```\n */\nexport enum ADAPTERS {\n /** Generic database adapter (default when no specific integration is set) */\n DATABASE = 'database',\n\n /** Drizzle ORM adapter (PostgreSQL, MySQL, SQLite, etc.) */\n DRIZZLE = 'drizzle',\n\n /** Supabase adapter (PostgreSQL backend with REST + Realtime APIs) */\n SUPABASE = 'supabase',\n\n /** Raw SQL adapter (direct database queries without ORM) */\n SQL = 'sql',\n\n /** Mock adapter (in-memory database for testing) */\n MOCK = 'mock',\n}\n\n// Event type enum\nexport enum DATABASE_EVENT_TYPE {\n BeforeQuery = 'beforeQuery',\n AfterQuery = 'afterQuery',\n QueryError = 'queryError',\n BeforeTransaction = 'beforeTransaction',\n AfterTransaction = 'afterTransaction',\n TransactionRollback = 'transactionRollback',\n HealthChange = 'healthChange',\n}\n\n/**\n * Strategy options for replica selection.\n */\nexport enum REPLICA_STRATEGY {\n /** Always use primary database */\n PRIMARY = 'primary',\n /** Use any available replica */\n REPLICA = 'replica',\n /** Use geographically closest replica */\n CLOSEST = 'closest',\n /** Use fastest responding replica */\n FASTEST = 'fastest',\n}\n\n/**\n * Enum for pool event types.\n */\nexport enum DB_POOL_EVENTS {\n CONNECT = 'connect',\n ACQUIRE = 'acquire',\n RELEASE = 'release',\n REMOVE = 'remove',\n}\n\n/**\n * Alert severity levels\n */\nexport enum ALERT_SEVERITY {\n CRITICAL = 'critical',\n ERROR = 'error',\n WARNING = 'warning',\n INFO = 'info',\n}\n\n/**\n * Alert source types\n */\nexport enum ALERT_SOURCE {\n DATABASE = 'database',\n POOL = 'pool',\n REPLICA = 'replica',\n CACHE = 'cache',\n BACKUP = 'backup',\n}\n\n/**\n * Audit operation types\n */\nexport enum AUDIT_OPERATION {\n Create = 'CREATE',\n Update = 'UPDATE',\n Delete = 'DELETE',\n CreateFailed = 'CREATE_FAILED',\n UpdateFailed = 'UPDATE_FAILED',\n DeleteFailed = 'DELETE_FAILED',\n}\n\n/**\n * Extension source identifiers for audit logging\n * Used to track which extension caused an operation failure\n */\nexport enum EXTENSION_SOURCE {\n /** Base database adapter (Drizzle, Supabase, SQL, Mock) */\n DatabaseAdapter = 'DatabaseAdapter',\n /** Encryption extension - field-level encryption */\n Encryption = 'EncryptionExtension',\n /** Soft delete extension - logical deletion */\n SoftDelete = 'SoftDeleteExtension',\n /** Caching extension - query result caching */\n Caching = 'CachingExtension',\n /** Audit extension - operation logging */\n Audit = 'AuditExtension',\n /** Read replica extension - read/write splitting */\n ReadReplica = 'ReadReplicaExtension',\n /** Multi-write extension - write replication */\n MultiWrite = 'MultiWriteExtension',\n /** Unknown source */\n Unknown = 'Unknown',\n}\n\n/**\n * Database Adapter Types - Enum for adapter selection\n */\nexport enum ADAPTER_TYPES {\n DRIZZLE = 'drizzle',\n SUPABASE = 'supabase',\n SQL = 'sql',\n MOCK = 'mock',\n}\n","/**\n * Encryption Extension Constants\n *\n * Centralized constants for encryption configuration to prevent\n * hardcoded values and ensure consistency across the codebase.\n */\n\nexport const ENCRYPTION_DEFAULTS = {\n /** Default encryption algorithm - AES-256-GCM provides authenticated encryption */\n ALGORITHM: 'aes-256-gcm' as const,\n\n /** IV length for AES-256-GCM in bytes */\n IV_LENGTH: 16,\n\n /** Expected parts in encrypted text format (iv:authTag:encrypted) */\n ENCRYPTED_PARTS_COUNT: 3,\n\n /** Default encryption key for testing (32 bytes for AES-256) */\n DEFAULT_KEY: 'abcdefghijklmnopqrstuvwxyz123456',\n} as const;\n\n/**\n * Alert rule IDs\n */\nexport const ALERT_RULE_ID = {\n POOL_EXHAUSTION: 'pool-exhaustion',\n SLOW_QUERY: 'slow-query',\n REPLICA_LAG: 'replica-lag',\n} as const;\n","/**\n * Storage Package Enums\n * @module @plyaz/types/storage\n */\n\n/**\n * File categories for organizing uploaded files\n */\nexport enum FILE_CATEGORY {\n // Profile & Identity\n ProfileImage = 'profile_image',\n ProfileBanner = 'profile_banner',\n ProfileData = 'profile_data',\n IdDocument = 'id_document',\n\n // Content\n PostImage = 'post_image',\n PostVideo = 'post_video',\n PostAudio = 'post_audio',\n PostDocument = 'post_document',\n PostArchive = 'post_archive',\n\n // Media\n GalleryImage = 'gallery_image',\n GalleryVideo = 'gallery_video',\n HighlightVideo = 'highlight_video',\n TrainingVideo = 'training_video',\n\n // Commerce\n ProductImage = 'product_image',\n ProductVideo = 'product_video',\n MerchandiseImage = 'merchandise_image',\n\n // Documents\n DOCUMENT = 'document',\n ContractDocument = 'contract_document',\n InvoiceDocument = 'invoice_document',\n ReceiptDocument = 'receipt_document',\n TaxDocument = 'tax_document',\n LegalDocument = 'legal_document',\n FinancialDocument = 'financial_document',\n\n // NFT & Digital Assets\n NftImage = 'nft_image',\n NftMetadata = 'nft_metadata',\n\n // Brand Assets\n BrandLogo = 'brand_logo',\n BrandAsset = 'brand_asset',\n MarketingAsset = 'marketing_asset',\n\n // Other\n AVATAR = 'avatar',\n ATTACHMENT = 'attachment',\n TempFile = 'temp_file',\n OTHER = 'other',\n}\n\n/**\n * Entity types that can own files\n */\nexport enum ENTITY_TYPE {\n USER = 'user',\n FAN = 'fan',\n ATHLETE = 'athlete',\n CLUB = 'club',\n BRAND = 'brand',\n ORGANIZATION = 'organization',\n EVENT = 'event',\n POST = 'post',\n PRODUCT = 'product',\n NFT = 'nft',\n SYSTEM = 'system',\n}\n\n/**\n * Storage adapter types\n */\nexport enum STORAGE_ADAPTER_TYPE {\n CloudflareR2 = 'cloudflare_r2',\n SupabaseStorage = 'supabase_storage',\n CUSTOM = 'custom',\n MOCK = 'mock',\n}\n\n/**\n * File access levels\n */\nexport enum FILE_ACCESS_LEVEL {\n PUBLIC = 'public',\n PRIVATE = 'private',\n SHARED = 'shared',\n RESTRICTED = 'restricted',\n}\n\n/**\n * Upload status\n */\nexport enum UPLOAD_STATUS {\n PENDING = 'pending',\n UPLOADING = 'uploading',\n PROCESSING = 'processing',\n COMPLETED = 'completed',\n FAILED = 'failed',\n CANCELLED = 'cancelled',\n}\n\n/**\n * Storage event types\n */\nexport enum STORAGE_EVENT_TYPE {\n // Upload events\n FileUploaded = 'file_uploaded',\n FileUploadFailed = 'file_upload_failed',\n UploadProgress = 'upload_progress',\n UploadAborted = 'upload_aborted',\n\n // Delete events\n FileDeleted = 'file_deleted',\n FileDeleteFailed = 'file_delete_failed',\n\n // Access events\n FileAccessed = 'file_accessed',\n SignedUrlGenerated = 'signed_url_generated',\n\n // Processing events\n MetadataExtracted = 'metadata_extracted',\n MediaProcessingStarted = 'media_processing_started',\n MediaProcessingCompleted = 'media_processing_completed',\n MediaProcessingFailed = 'media_processing_failed',\n TranscodeComplete = 'transcode_complete',\n TranscodeFailed = 'transcode_failed',\n TranscodeProgress = 'transcode_progress',\n ThumbnailGenerated = 'thumbnail_generated',\n ImageOptimized = 'image_optimized',\n\n // Security events\n VirusDetected = 'virus_detected',\n VirusScanCompleted = 'virus_scan_completed',\n\n // Adapter events\n AdapterHealthCheck = 'adapter_health_check',\n AdapterFailed = 'adapter_failed',\n\n // Compliance events\n RetentionPolicyApplied = 'retention_policy_applied',\n RetentionEnforced = 'retention_enforced',\n FileMarkedForDeletion = 'file_marked_for_deletion',\n ImmutabilityEnforced = 'immutability_enforced',\n SoftDeleteProcessed = 'soft_delete_processed',\n FileRestored = 'file_restored',\n FileArchived = 'file_archived',\n RetentionExpired = 'retention_expired',\n JurisdictionConflictResolved = 'jurisdiction_conflict_resolved',\n\n // Generation events\n FileGenerated = 'file_generated',\n FileGenerationFailed = 'file_generation_failed',\n FileUpdated = 'file_updated',\n FileUpdateFailed = 'file_update_failed',\n\n // File operations events\n FileReplaced = 'file_replaced',\n FileReplaceFailed = 'file_replace_failed',\n FileMoved = 'file_moved',\n FileMoveFailed = 'file_move_failed',\n FileCopied = 'file_copied',\n FileCopyFailed = 'file_copy_failed',\n\n // Audit events\n AuditLogCreated = 'audit_log_created',\n\n // Queue events\n QueueStarted = 'storage.queue.started',\n QueueStopped = 'storage.queue.stopped',\n OperationProcessing = 'storage.operation.processing',\n OperationCompleted = 'storage.operation.completed',\n OperationRetry = 'storage.operation.retry',\n OperationFailed = 'storage.operation.failed',\n\n // Error events\n StorageError = 'storage_error',\n\n // CDN events\n CdnInvalidated = 'cdn_invalidated',\n CdnInvalidationFailed = 'cdn_invalidation_failed',\n\n // Integrity events\n IntegrityCheckFailed = 'integrity_check_failed',\n CorruptionDetected = 'corruption_detected',\n\n // Quota events\n QuotaWarning = 'quota_warning',\n QuotaExceeded = 'quota_exceeded',\n\n // Webhook events\n WebhookReceived = 'webhook_received',\n WebhookProcessed = 'webhook_processed',\n WebhookFailed = 'webhook_failed',\n WebhookRetryExhausted = 'webhook_retry_exhausted',\n}\n\n/**\n * Retry strategies for adapter operations\n */\nexport enum RETRY_STRATEGY {\n ExponentialBackoff = 'exponential_backoff',\n LinearBackoff = 'linear_backoff',\n FixedDelay = 'fixed_delay',\n NoRetry = 'no_retry',\n}\n\n/**\n * Path generation strategies\n */\nexport enum PATH_GENERATION_STRATEGY {\n HashBased = 'hash_based',\n EntityBased = 'entity_based',\n DateBased = 'date_based',\n CategoryBased = 'category_based',\n FLAT = 'flat',\n}\n\n/**\n * File validation error types\n */\nexport enum FILE_VALIDATION_ERROR {\n InvalidMimeType = 'invalid_mime_type',\n FileTooLarge = 'file_too_large',\n FileTooSmall = 'file_too_small',\n InvalidExtension = 'invalid_extension',\n InvalidFilename = 'invalid_filename',\n ExecutableDetected = 'executable_detected',\n VirusDetected = 'virus_detected',\n}\n\n/**\n * Template output formats\n */\nexport enum TEMPLATE_OUTPUT_FORMAT {\n PDF = 'pdf',\n HTML = 'html',\n MARKDOWN = 'markdown',\n}\n\n/**\n * Document types for compliance storage (R2)\n * Financial and legal documents requiring strict compliance\n */\nexport enum DOCUMENT_TYPE {\n INVOICE = 'invoice',\n RECEIPT = 'receipt',\n TAX = 'tax',\n COMPLIANCE = 'compliance',\n CERTIFICATE = 'certificate',\n CONTRACT = 'contract',\n REPORT = 'report',\n}\n\n/**\n * Media entity types (for Supabase media storage)\n */\nexport enum MEDIA_ENTITY {\n TEAM = 'team',\n CLUB = 'club',\n ATHLETE = 'athlete',\n MATCH = 'match',\n LEAGUE = 'league',\n POST = 'post',\n CAMPAIGN = 'campaign',\n PRODUCT = 'product',\n BRAND = 'brand',\n USER = 'user',\n}\n\n/**\n * Storage visibility levels\n */\nexport enum STORAGE_VISIBILITY {\n PUBLIC = 'public',\n PRIVATE = 'private',\n}\n\n/**\n * Environment types for bucket naming\n */\nexport enum STORAGE_ENVIRONMENT {\n PRODUCTION = 'prod',\n STAGING = 'stg',\n DEVELOPMENT = 'dev',\n}\n\n/**\n * Business model types for organizational separation\n */\nexport enum BUSINESS_MODEL {\n B2B = 'b2b',\n B2C = 'b2c',\n B2B2C = 'b2b2c',\n INTERNAL = 'internal',\n}\n\n/**\n * Organization tier for dedicated resources\n */\nexport enum ORGANIZATION_TIER {\n ENTERPRISE = 'enterprise',\n PROFESSIONAL = 'professional',\n STANDARD = 'standard',\n STARTER = 'starter',\n}\n\n/**\n * Storage bucket purpose (provider-agnostic)\n * Describes what the bucket is used for, not how it's named\n */\nexport enum BUCKET_PURPOSE {\n /** Financial/legal compliance documents */\n COMPLIANCE = 'compliance',\n /** Image files (photos, graphics) */\n MediaImages = 'media-images',\n /** Video files */\n MediaVideos = 'media-videos',\n /** Static assets (CSS, JS, fonts) */\n MediaStatic = 'media-static',\n /** User uploads (attachments, documents) */\n UserUploads = 'user-uploads',\n /** Temporary files (processing, staging) */\n TEMPORARY = 'temporary',\n /** Archived/cold storage */\n ARCHIVES = 'archives',\n /** Backups */\n BACKUPS = 'backups',\n}\n\n/**\n * Path generation strategy type\n */\nexport enum PATH_STRATEGY {\n /** Financial/legal compliance documents */\n COMPLIANCE = 'compliance',\n /** Media files (images/videos) */\n MEDIA = 'media',\n /** General files */\n GENERAL = 'general',\n}\n\n/**\n * Media variant types\n */\nexport enum MEDIA_VARIANT_TYPE {\n THUMBNAIL = 'thumbnail',\n SMALL = 'small',\n MEDIUM = 'medium',\n LARGE = 'large',\n MOBILE = 'mobile',\n TABLET = 'tablet',\n DESKTOP = 'desktop',\n HD = 'hd',\n FourK = '4k',\n Video360p = '360p',\n Video480p = '480p',\n Video720p = '720p',\n Video1080p = '1080p',\n}\n\n/**\n * Storage queue priority levels\n */\nexport enum STORAGE_QUEUE_PRIORITY {\n HIGH = 'high',\n NORMAL = 'normal',\n LOW = 'low',\n}\n\n/**\n * Device types for device-aware variant optimization\n * Used to select optimal variants based on target device\n */\nexport enum STORAGE_DEVICE_TYPE {\n /** Mobile phones (320px - 480px) */\n MOBILE = 'mobile',\n /** Tablets (768px - 1024px) */\n TABLET = 'tablet',\n /** Desktop/laptop screens (1280px - 1920px) */\n DESKTOP = 'desktop',\n /** 4K/Retina displays (2560px+) */\n FourK = '4k',\n /** Smart TVs and large displays (3840px+) */\n TV = 'tv',\n /** Watch/wearable devices (small screens) */\n WATCH = 'watch',\n /** Auto-detect best variant (default) */\n AUTO = 'auto',\n}\n\n/**\n * Standard variant names for images and videos\n * Used to identify specific size/quality variants\n */\nexport enum STORAGE_VARIANT_NAME {\n // Image variants - Standard sizes\n THUMBNAIL = 'thumbnail',\n SMALL = 'small',\n MEDIUM = 'medium',\n LARGE = 'large',\n XLARGE = 'xlarge',\n\n // Device-specific image variants\n MOBILE = 'mobile',\n TABLET = 'tablet',\n DESKTOP = 'desktop',\n HD = 'hd',\n FourK = '4k',\n RETINA = 'retina',\n\n // Video variants - Standard resolutions\n Video360p = '360p',\n Video480p = '480p',\n Video720p = '720p',\n Video1080p = '1080p',\n Video4k = '4k-video',\n}\n\n/**\n * Adapter health status\n */\nexport enum ADAPTER_HEALTH_STATUS {\n HEALTHY = 'healthy',\n DEGRADED = 'degraded',\n UNHEALTHY = 'unhealthy',\n UNKNOWN = 'unknown',\n}\n\n/**\n * Renderer type (document/template rendering engines)\n */\nexport enum STORAGE_RENDERER_TYPE {\n PUPPETEER = 'puppeteer', // Headless Chrome (HTML → PDF/PNG)\n PLAYWRIGHT = 'playwright', // Headless browser (HTML → PDF/PNG)\n PDFKIT = 'pdfkit', // Lightweight PDF generation\n JSPDF = 'jspdf', // Client-side PDF generation\n WKHTMLTOPDF = 'wkhtmltopdf', // Standalone binary (HTML → PDF)\n EXCELJS = 'exceljs', // Excel generation\n DOCXTEMPLATER = 'docxtemplater', // Word document generation\n}\n\n/**\n * Output format for rendered documents\n */\nexport enum OUTPUT_FORMAT {\n PDF = 'pdf',\n HTML = 'html',\n PNG = 'png',\n JPEG = 'jpeg',\n EXCEL = 'excel', // .xlsx\n WORD = 'word', // .docx\n CSV = 'csv',\n JSON = 'json',\n}\n\n/**\n * Compliance jurisdictions\n *\n * Standardized jurisdiction codes for compliance enforcement\n */\nexport enum STORAGE_JURISDICTION {\n // Global\n GLOBAL = 'GLOBAL',\n\n // United States (Federal)\n US = 'US',\n\n // United States (States)\n UsCa = 'US-CA', // California (CCPA)\n UsNy = 'US-NY', // New York (NYDFS)\n UsTx = 'US-TX', // Texas\n UsFl = 'US-FL', // Florida\n UsIl = 'US-IL', // Illinois\n\n // European Union\n EU = 'EU',\n\n // European Countries\n EuDe = 'EU-DE', // Germany\n EuFr = 'EU-FR', // France\n EuGb = 'EU-GB', // United Kingdom (post-Brexit)\n EuIt = 'EU-IT', // Italy\n EuEs = 'EU-ES', // Spain\n EuNl = 'EU-NL', // Netherlands\n EuCh = 'EU-CH', // Switzerland\n\n // Asia Pacific\n JP = 'JP', // Japan\n SG = 'SG', // Singapore\n HK = 'HK', // Hong Kong\n AU = 'AU', // Australia\n NZ = 'NZ', // New Zealand\n KR = 'KR', // South Korea\n CN = 'CN', // China\n\n // Middle East & Africa\n AE = 'AE', // UAE\n SA = 'SA', // Saudi Arabia\n IL = 'IL', // Israel\n ZA = 'ZA', // South Africa\n\n // Americas\n CA = 'CA', // Canada\n BR = 'BR', // Brazil\n MX = 'MX', // Mexico\n AR = 'AR', // Argentina\n}\n\n/**\n * Regulatory frameworks for compliance\n *\n * Standardized framework codes to prevent arbitrary strings\n */\nexport enum STORAGE_REGULATORY_FRAMEWORK {\n // US Financial Regulations\n IRS = 'IRS', // Internal Revenue Service\n SEC = 'SEC', // Securities and Exchange Commission\n FINRA = 'FINRA', // Financial Industry Regulatory Authority\n SOX = 'SOX', // Sarbanes-Oxley Act\n GLBA = 'GLBA', // Gramm-Leach-Bliley Act\n FCRA = 'FCRA', // Fair Credit Reporting Act\n\n // US Crypto/FinTech Regulations\n FINCEN = 'FinCEN', // Financial Crimes Enforcement Network\n BSA = 'BSA', // Bank Secrecy Act\n AML = 'AML', // Anti-Money Laundering\n OFAC = 'OFAC', // Office of Foreign Assets Control\n NYDFS = 'NYDFS', // NY Department of Financial Services\n\n // US State Regulations\n CCPA = 'CCPA', // California Consumer Privacy Act\n CPRA = 'CPRA', // California Privacy Rights Act\n\n // European Regulations\n GDPR = 'GDPR', // General Data Protection Regulation\n MICA = 'MiCA', // Markets in Crypto-Assets Regulation\n AMLD5 = '5AMLD', // 5th Anti-Money Laundering Directive\n AMLD6 = '6AMLD', // 6th Anti-Money Laundering Directive\n PSD2 = 'PSD2', // Payment Services Directive 2\n EMIR = 'EMIR', // European Market Infrastructure Regulation\n\n // International Standards\n FATF = 'FATF', // Financial Action Task Force\n BaselIii = 'Basel III', // Basel III banking regulations\n ISO27001 = 'ISO27001', // Information security management\n SOC2 = 'SOC2', // Service Organization Control 2\n\n // Healthcare\n HIPAA = 'HIPAA', // Health Insurance Portability and Accountability Act\n HITECH = 'HITECH', // Health Information Technology for Economic and Clinical Health\n\n // Other Industries\n PciDss = 'PCI DSS', // Payment Card Industry Data Security Standard\n FERPA = 'FERPA', // Family Educational Rights and Privacy Act\n COPPA = 'COPPA', // Children's Online Privacy Protection Act\n\n // Internal/Custom\n InternalSecurity = 'Internal Security Policy',\n IndustryBestPractices = 'Industry Best Practices',\n}\n\n/**\n * Storage plugin types\n */\nexport enum STORAGE_PLUGIN_TYPE {\n VALIDATION = 'validation', // File validation (size, type, content)\n SECURITY = 'security', // Virus scanning, malware detection\n METADATA = 'metadata', // Metadata extraction (dimensions, duration)\n CDN = 'cdn', // CDN invalidation, cache management\n PROCESSING = 'processing', // Media processing, transcoding\n MONITORING = 'monitoring', // Access tracking, performance monitoring\n COMPLIANCE = 'compliance', // Compliance checks, retention policies\n AUDIT = 'audit', // Audit logging, compliance tracking\n CUSTOM = 'custom', // Custom user-defined plugins\n}\n\n/**\n * Storage Webhook Types\n *\n * Webhook system for handling external callbacks from:\n * - Cloud storage providers (R2, Supabase)\n * - Media processing services (AWS MediaConvert, Cloudinary)\n * - CDN providers (Cloudflare, CloudFront, Fastly)\n *\n * @module @plyaz/types/storage/webhooks\n *\n * Note: Validation schema implementation (Zod) is abstracted away.\n * Consumers don't need to know about or install Zod.\n */\n\n/**\n * Webhook event types for storage operations\n */\nexport enum STORAGE_WEBHOOK_EVENT_TYPE {\n // Object lifecycle events\n ObjectCreated = 'object.created',\n ObjectUpdated = 'object.updated',\n ObjectDeleted = 'object.deleted',\n ObjectRestored = 'object.restored',\n ObjectArchived = 'object.archived',\n\n // Processing events\n TranscodeComplete = 'transcode.complete',\n TranscodeFailed = 'transcode.failed',\n TranscodeProgress = 'transcode.progress',\n ThumbnailComplete = 'thumbnail.complete',\n ImageOptimizationComplete = 'image.optimization.complete',\n\n // CDN events\n CdnInvalidationComplete = 'cdn.invalidation.complete',\n CdnInvalidationFailed = 'cdn.invalidation.failed',\n\n // Storage integrity events\n ChecksumMismatch = 'checksum.mismatch',\n ObjectCorrupted = 'object.corrupted',\n\n // Quota/billing events\n QuotaWarning = 'quota.warning',\n QuotaExceeded = 'quota.exceeded',\n}\n\n/**\n * Storage operations\n */\nexport enum STORAGE_OPERATION {\n UPLOAD = 'upload',\n DELETE = 'delete',\n UPDATE = 'update',\n RESTORE = 'restore',\n ARCHIVE = 'archive',\n}\n\n/**\n * Signature verification methods for storage webhooks\n */\nexport enum STORAGE_SIGNATURE_METHOD {\n HmacSha256 = 'hmac-sha256',\n HmacSha512 = 'hmac-sha512',\n HmacSha1 = 'hmac-sha1',\n AwsSignatureV4 = 'aws-signature-v4',\n JWT = 'jwt',\n Custom = 'custom',\n}\n\n/**\n * Template variable types for template engine\n * Defines the data type of template variables for validation\n */\nexport enum TEMPLATE_VARIABLE_TYPE {\n /** Plain text string */\n STRING = 'string',\n /** Numeric value (integer or decimal) */\n NUMBER = 'number',\n /** Boolean true/false */\n BOOLEAN = 'boolean',\n /** Date value */\n DATE = 'date',\n /** Email address */\n EMAIL = 'email',\n /** Phone number */\n PHONE = 'phone',\n /** URL/web address */\n URL = 'url',\n /** Currency amount (decimal with 2 places) */\n CURRENCY = 'currency',\n /** Percentage value (0-100 or decimal) */\n PERCENTAGE = 'percentage',\n /** Array of items (for {{#each}} loops) */\n ARRAY = 'array',\n /** Nested object */\n OBJECT = 'object',\n /** Rich text / HTML content */\n RICHTEXT = 'richtext',\n /** Image URL or base64 */\n IMAGE = 'image',\n /** Select from predefined options */\n SELECT = 'select',\n /** Multi-select from predefined options */\n MULTISELECT = 'multiselect',\n}\n\n/**\n * Template document type for categorization\n */\nexport enum TEMPLATE_DOCUMENT_TYPE {\n /** Simple document without calculations */\n SIMPLE = 'simple',\n /** Financial document with calculations (invoices, receipts, quotes) */\n FINANCIAL = 'financial',\n /** Legal/contract document */\n LEGAL = 'legal',\n /** Report document */\n REPORT = 'report',\n /** Form/questionnaire */\n FORM = 'form',\n /** Letter/correspondence */\n LETTER = 'letter',\n /** Certificate */\n CERTIFICATE = 'certificate',\n}\n","/**\n * Event Handler Mapping\n *\n * Centralized mapping between camelCase handler names (StorageEventHandlers)\n * and enum-based event types (STORAGE_EVENT_TYPE).\n *\n * This mapping is used by:\n * - StorageService to register handlers\n * - Documentation generation\n * - Type utilities\n * - Testing utilities\n *\n * @module @plyaz/types/storage\n */\n\nimport type { StorageEventHandlers } from './interfaces';\nimport type { STORAGE_WEBHOOK_EVENT_TYPE } from './enums';\nimport { STORAGE_EVENT_TYPE } from './enums';\n\n/**\n * Mapping from camelCase handler method names to StorageEventType enum values\n *\n * This is the single source of truth for the handler name <-> event type relationship.\n *\n * @example\n * ```typescript\n * import { STORAGE_EVENT_HANDLER_MAPPING } from '@plyaz/types';\n *\n * // Get event type from handler name\n * const eventType = STORAGE_EVENT_HANDLER_MAPPING.onFileUploaded;\n * // Returns: STORAGE_EVENT_TYPE.FileUploaded\n *\n * // Register handler\n * if (handlers.onFileUploaded) {\n * eventManager.on(STORAGE_EVENT_HANDLER_MAPPING.onFileUploaded, handlers.onFileUploaded);\n * }\n * ```\n */\nexport const STORAGE_EVENT_HANDLER_MAPPING: Record<keyof StorageEventHandlers, STORAGE_EVENT_TYPE> =\n {\n // Upload events\n onFileUploaded: STORAGE_EVENT_TYPE.FileUploaded,\n onFileUploadFailed: STORAGE_EVENT_TYPE.FileUploadFailed,\n onUploadProgress: STORAGE_EVENT_TYPE.UploadProgress,\n onUploadAborted: STORAGE_EVENT_TYPE.UploadAborted,\n\n // Delete events\n onFileDeleted: STORAGE_EVENT_TYPE.FileDeleted,\n onFileDeleteFailed: STORAGE_EVENT_TYPE.FileDeleteFailed,\n\n // Access events\n onFileAccessed: STORAGE_EVENT_TYPE.FileAccessed,\n onSignedUrlGenerated: STORAGE_EVENT_TYPE.SignedUrlGenerated,\n\n // Processing events\n onMetadataExtracted: STORAGE_EVENT_TYPE.MetadataExtracted,\n onMediaProcessingStarted: STORAGE_EVENT_TYPE.MediaProcessingStarted,\n onMediaProcessingCompleted: STORAGE_EVENT_TYPE.MediaProcessingCompleted,\n onMediaProcessingFailed: STORAGE_EVENT_TYPE.MediaProcessingFailed,\n\n // Security events\n onVirusDetected: STORAGE_EVENT_TYPE.VirusDetected,\n onVirusScanCompleted: STORAGE_EVENT_TYPE.VirusScanCompleted,\n\n // Adapter events\n onAdapterHealthCheck: STORAGE_EVENT_TYPE.AdapterHealthCheck,\n onAdapterFailed: STORAGE_EVENT_TYPE.AdapterFailed,\n\n // Compliance events\n onRetentionPolicyApplied: STORAGE_EVENT_TYPE.RetentionPolicyApplied,\n onFileMarkedForDeletion: STORAGE_EVENT_TYPE.FileMarkedForDeletion,\n onImmutabilityEnforced: STORAGE_EVENT_TYPE.ImmutabilityEnforced,\n\n // File operations events\n onFileReplaced: STORAGE_EVENT_TYPE.FileReplaced,\n onFileReplaceFailed: STORAGE_EVENT_TYPE.FileReplaceFailed,\n onFileMoved: STORAGE_EVENT_TYPE.FileMoved,\n onFileMoveFailed: STORAGE_EVENT_TYPE.FileMoveFailed,\n onFileCopied: STORAGE_EVENT_TYPE.FileCopied,\n onFileCopyFailed: STORAGE_EVENT_TYPE.FileCopyFailed,\n\n // Audit events\n onAuditLogCreated: STORAGE_EVENT_TYPE.AuditLogCreated,\n\n // Queue events\n onQueueStarted: STORAGE_EVENT_TYPE.QueueStarted,\n onQueueStopped: STORAGE_EVENT_TYPE.QueueStopped,\n onOperationProcessing: STORAGE_EVENT_TYPE.OperationProcessing,\n onOperationCompleted: STORAGE_EVENT_TYPE.OperationCompleted,\n onOperationRetry: STORAGE_EVENT_TYPE.OperationRetry,\n onOperationFailed: STORAGE_EVENT_TYPE.OperationFailed,\n\n // Error events\n onStorageError: STORAGE_EVENT_TYPE.StorageError,\n } as const;\n\n/**\n * Webhook event type to internal storage event mapping\n *\n * Maps external webhook event types to internal StorageEventType enums\n * Used by WebhookManager to emit the correct storage events\n */\nexport const WEBHOOK_EVENT_TYPE_MAPPING: Record<\n (typeof STORAGE_WEBHOOK_EVENT_TYPE)[keyof typeof STORAGE_WEBHOOK_EVENT_TYPE],\n STORAGE_EVENT_TYPE\n> = {\n 'object.created': STORAGE_EVENT_TYPE.FileUploaded,\n 'object.updated': STORAGE_EVENT_TYPE.FileUpdated,\n 'object.deleted': STORAGE_EVENT_TYPE.FileDeleted,\n 'object.restored': STORAGE_EVENT_TYPE.FileRestored,\n 'object.archived': STORAGE_EVENT_TYPE.FileArchived,\n 'transcode.complete': STORAGE_EVENT_TYPE.TranscodeComplete,\n 'transcode.failed': STORAGE_EVENT_TYPE.TranscodeFailed,\n 'transcode.progress': STORAGE_EVENT_TYPE.TranscodeProgress,\n 'thumbnail.complete': STORAGE_EVENT_TYPE.ThumbnailGenerated,\n 'image.optimization.complete': STORAGE_EVENT_TYPE.ImageOptimized,\n 'cdn.invalidation.complete': STORAGE_EVENT_TYPE.CdnInvalidated,\n 'cdn.invalidation.failed': STORAGE_EVENT_TYPE.CdnInvalidationFailed,\n 'checksum.mismatch': STORAGE_EVENT_TYPE.IntegrityCheckFailed,\n 'object.corrupted': STORAGE_EVENT_TYPE.CorruptionDetected,\n 'quota.warning': STORAGE_EVENT_TYPE.QuotaWarning,\n 'quota.exceeded': STORAGE_EVENT_TYPE.QuotaExceeded,\n} as const;\n\n/**\n * Reverse mapping from StorageEventType enum values to camelCase handler names\n *\n * Useful for generating handler names from event types, documentation, etc.\n *\n * @example\n * ```typescript\n * import { STORAGE_EVENT_TYPE_TO_HANDLER_NAME } from '@plyaz/types';\n *\n * // Get handler name from event type\n * const handlerName = STORAGE_EVENT_TYPE_TO_HANDLER_NAME[STORAGE_EVENT_TYPE.FileUploaded];\n * // Returns: 'onFileUploaded'\n * ```\n */\nexport const STORAGE_EVENT_TYPE_TO_HANDLER_NAME: Record<\n STORAGE_EVENT_TYPE,\n keyof StorageEventHandlers\n> = Object.entries(STORAGE_EVENT_HANDLER_MAPPING).reduce(\n (acc, [handlerName, eventType]) => {\n acc[eventType] = handlerName as keyof StorageEventHandlers;\n return acc;\n },\n {} as Record<STORAGE_EVENT_TYPE, keyof StorageEventHandlers>\n);\n\n/**\n * Type-safe helper to get all handler names\n */\nexport type StorageEventHandlerName = keyof StorageEventHandlers;\nexport type StorageWebhookEventHandlerName =\n (typeof STORAGE_WEBHOOK_EVENT_TYPE)[keyof typeof STORAGE_WEBHOOK_EVENT_TYPE];\n\n/**\n * Type-safe helper to get all event types that have handlers\n */\nexport type MappedStorageEventType =\n (typeof STORAGE_EVENT_HANDLER_MAPPING)[StorageEventHandlerName];\nexport type MappedStorageWebhookEventType =\n (typeof WEBHOOK_EVENT_TYPE_MAPPING)[StorageWebhookEventHandlerName];\n","/**\n * Storage Package Zod Schemas\n * @module @plyaz/types/storage/schemas\n *\n * Validation schemas for storage webhooks and other features\n */\n\nimport { z } from 'zod';\n\n/**\n * Maximum progress percentage (0-100)\n */\nconst MAX_PROGRESS_PERCENTAGE = 100;\n\n/**\n * Storage media processing job status\n */\nexport enum STORAGE_PROCESSING_STATUS {\n Queued = 'queued',\n Processing = 'processing',\n Completed = 'completed',\n Failed = 'failed',\n}\n\n/**\n * Storage media processing output schema\n */\nexport const StorageProcessingOutputSchema = z.object({\n url: z.string().url(),\n format: z.string(),\n width: z.number().optional(),\n height: z.number().optional(),\n duration: z.number().optional(),\n size: z.number(),\n bitrate: z.number().optional(),\n codec: z.string().optional(),\n});\n\nexport type StorageProcessingOutput = z.infer<typeof StorageProcessingOutputSchema>;\n\n/**\n * Storage media processing webhook payload schema\n */\nexport const StorageMediaProcessingPayloadSchema = z.object({\n jobId: z.string(),\n status: z.nativeEnum(STORAGE_PROCESSING_STATUS),\n input: z.object({\n url: z.string().url(),\n objectKey: z.string(),\n bucket: z.string().optional(),\n }),\n output: z\n .object({\n primary: StorageProcessingOutputSchema.optional(),\n thumbnail: StorageProcessingOutputSchema.optional(),\n variants: z.array(StorageProcessingOutputSchema).optional(),\n })\n .optional(),\n metadata: z\n .object({\n duration: z.number().optional(),\n width: z.number().optional(),\n height: z.number().optional(),\n format: z.string().optional(),\n codec: z.string().optional(),\n })\n .optional(),\n progress: z.number().min(0).max(MAX_PROGRESS_PERCENTAGE).optional(),\n error: z\n .object({\n code: z.string(),\n message: z.string(),\n details: z.record(z.string(), z.unknown()).optional(),\n })\n .optional(),\n timestamp: z.union([z.string(), z.number()]),\n provider: z.string().optional(),\n});\n\nexport type StorageMediaProcessingPayload = z.infer<typeof StorageMediaProcessingPayloadSchema>;\n\n/**\n * ============================================================================\n * Cloudflare R2 Webhook Schemas\n * ============================================================================\n * S3-compatible event notifications\n * https://docs.aws.amazon.com/AmazonS3/latest/userguide/notification-content-structure.html\n */\nexport const R2EventRecordSchema = z.object({\n eventVersion: z.string(), // \"2.1\"\n eventSource: z.string(), // \"aws:s3\" or \"cloudflare:r2\"\n awsRegion: z.string().optional(), // R2 may not include this\n eventTime: z.string(), // ISO 8601 timestamp\n eventName: z.string(), // e.g., \"ObjectCreated:Put\", \"ObjectRemoved:Delete\"\n userIdentity: z\n .object({\n principalId: z.string(),\n })\n .optional(),\n requestParameters: z\n .object({\n sourceIPAddress: z.string(),\n })\n .optional(),\n responseElements: z\n .object({\n 'x-amz-request-id': z.string().optional(),\n 'x-amz-id-2': z.string().optional(),\n })\n .optional(),\n s3: z.object({\n s3SchemaVersion: z.string(), // \"1.0\"\n configurationId: z.string().optional(),\n bucket: z.object({\n name: z.string(), // Bucket name\n ownerIdentity: z\n .object({\n principalId: z.string(),\n })\n .optional(),\n arn: z.string().optional(),\n }),\n object: z.object({\n key: z.string(), // Object key\n size: z.number().optional(), // File size in bytes\n eTag: z.string().optional(), // Entity tag\n versionId: z.string().optional(),\n sequencer: z.string().optional(),\n }),\n }),\n});\n\nexport const R2WebhookPayloadSchema = z.object({\n Records: z.array(R2EventRecordSchema),\n});\n\nexport type R2WebhookPayload = z.infer<typeof R2WebhookPayloadSchema>;\nexport type R2EventRecord = z.infer<typeof R2EventRecordSchema>;\n\n/**\n * ============================================================================\n * Supabase Storage Webhook Schemas\n * ============================================================================\n * Database webhook events from storage.objects table\n */\nexport const SupabaseStorageObjectSchema = z.object({\n id: z.uuid(), // Object UUID\n bucket_id: z.string(), // Bucket name\n name: z.string(), // Object path/key\n owner: z.uuid().optional().nullable(), // Owner UUID\n created_at: z.string(), // ISO timestamp\n updated_at: z.string().optional().nullable(), // ISO timestamp\n last_accessed_at: z.string().optional().nullable(),\n metadata: z.record(z.string(), z.unknown()).optional().nullable(), // Custom metadata\n version: z.string().optional().nullable(),\n owner_id: z.string().optional().nullable(),\n});\n\nexport const SupabaseWebhookPayloadSchema = z.object({\n type: z.enum(['INSERT', 'UPDATE', 'DELETE']), // Database event type\n table: z.literal('objects'), // Always 'objects' for storage\n schema: z.literal('storage'), // Always 'storage'\n record: SupabaseStorageObjectSchema.optional().nullable(), // New/updated record\n old_record: SupabaseStorageObjectSchema.optional().nullable(), // Old record (for UPDATE/DELETE)\n});\n\nexport type SupabaseWebhookPayload = z.infer<typeof SupabaseWebhookPayloadSchema>;\nexport type SupabaseStorageObject = z.infer<typeof SupabaseStorageObjectSchema>;\n\n/**\n * ============================================================================\n * Template Variable Schemas\n * ============================================================================\n * Validation schemas for template variable definitions\n */\n\n/**\n * Template variable types enum for schema validation\n */\nexport enum TEMPLATE_VARIABLE_TYPE_SCHEMA {\n STRING = 'string',\n NUMBER = 'number',\n BOOLEAN = 'boolean',\n DATE = 'date',\n EMAIL = 'email',\n PHONE = 'phone',\n URL = 'url',\n CURRENCY = 'currency',\n PERCENTAGE = 'percentage',\n ARRAY = 'array',\n OBJECT = 'object',\n RICHTEXT = 'richtext',\n IMAGE = 'image',\n SELECT = 'select',\n MULTISELECT = 'multiselect',\n}\n\n/**\n * Template document types enum for schema validation\n */\nexport enum TEMPLATE_DOCUMENT_TYPE_SCHEMA {\n SIMPLE = 'simple',\n FINANCIAL = 'financial',\n LEGAL = 'legal',\n REPORT = 'report',\n FORM = 'form',\n LETTER = 'letter',\n CERTIFICATE = 'certificate',\n}\n\n/**\n * Template variable validation schema\n */\nexport const TemplateVariableValidationSchema = z.object({\n required: z.boolean().optional(),\n pattern: z.string().optional(),\n patternMessage: z.string().optional(),\n min: z.number().optional(),\n max: z.number().optional(),\n minLength: z.number().min(0).optional(),\n maxLength: z.number().min(0).optional(),\n enum: z.array(z.string()).optional(),\n dateFormat: z.string().optional(),\n minDate: z.string().optional(),\n maxDate: z.string().optional(),\n errorMessage: z.string().optional(),\n});\n\nexport type TemplateVariableValidationType = z.infer<typeof TemplateVariableValidationSchema>;\n\n/**\n * Template variable option schema (for select/multiselect)\n */\nexport const TemplateVariableOptionSchema = z.object({\n label: z.string().min(1),\n value: z.string(),\n});\n\nexport type TemplateVariableOptionType = z.infer<typeof TemplateVariableOptionSchema>;\n\n/**\n * Base template variable definition schema (without recursive properties)\n */\nconst BaseTemplateVariableDefinitionSchema = z.object({\n name: z\n .string()\n .min(1)\n .regex(/^[a-zA-Z_][a-zA-Z0-9_]*$/, 'Variable name must be alphanumeric with underscores'),\n type: z.nativeEnum(TEMPLATE_VARIABLE_TYPE_SCHEMA),\n label: z.string().optional(),\n description: z.string().optional(),\n defaultValue: z.unknown().optional(),\n placeholder: z.string().optional(),\n validation: TemplateVariableValidationSchema.optional(),\n options: z.array(TemplateVariableOptionSchema).optional(),\n group: z.string().optional(),\n order: z.number().int().min(0).optional(),\n hidden: z.boolean().optional(),\n readOnly: z.boolean().optional(),\n showIf: z.string().optional(),\n});\n\n/**\n * Template variable definition schema (with recursive properties support)\n * Note: Due to Zod limitations with recursive types, we use z.lazy()\n */\nexport const TemplateVariableDefinitionSchema: z.ZodType<{\n name: string;\n type: TEMPLATE_VARIABLE_TYPE_SCHEMA;\n label?: string;\n description?: string;\n defaultValue?: unknown;\n placeholder?: string;\n validation?: TemplateVariableValidationType;\n items?: unknown;\n properties?: unknown[];\n options?: TemplateVariableOptionType[];\n group?: string;\n order?: number;\n hidden?: boolean;\n readOnly?: boolean;\n showIf?: string;\n}> = BaseTemplateVariableDefinitionSchema.extend({\n items: z.lazy(() => TemplateVariableDefinitionSchema).optional(),\n properties: z.lazy(() => z.array(TemplateVariableDefinitionSchema)).optional(),\n});\n\nexport type TemplateVariableDefinitionType = z.infer<typeof TemplateVariableDefinitionSchema>;\n\n/**\n * Variable group schema for UI organization\n */\nexport const TemplateVariableGroupSchema = z.object({\n name: z.string().min(1),\n label: z.string().min(1),\n description: z.string().optional(),\n collapsed: z.boolean().optional(),\n});\n\nexport type TemplateVariableGroupType = z.infer<typeof TemplateVariableGroupSchema>;\n\n/**\n * Calculations configuration schema\n */\nexport const TemplateCalculationsConfigSchema = z.object({\n enabled: z.boolean(),\n taxField: z.string().optional(),\n discountField: z.string().optional(),\n shippingField: z.string().optional(),\n itemsField: z.string().optional(),\n});\n\nexport type TemplateCalculationsConfigType = z.infer<typeof TemplateCalculationsConfigSchema>;\n\n/**\n * Extended template frontmatter schema with variable definitions\n */\nexport const TemplateVariablesFrontmatterSchema = z.object({\n documentType: z.nativeEnum(TEMPLATE_DOCUMENT_TYPE_SCHEMA).optional(),\n calculations: TemplateCalculationsConfigSchema.optional(),\n variables: z.array(TemplateVariableDefinitionSchema).optional(),\n variableGroups: z.array(TemplateVariableGroupSchema).optional(),\n});\n\nexport type TemplateVariablesFrontmatterType = z.infer<typeof TemplateVariablesFrontmatterSchema>;\n\n/**\n * Validation result schema\n */\nexport const TemplateVariableValidationResultSchema = z.object({\n valid: z.boolean(),\n errors: z.record(z.string(), z.array(z.string())),\n warnings: z.record(z.string(), z.array(z.string())).optional(),\n coercedValues: z.record(z.string(), z.unknown()).optional(),\n});\n\nexport type TemplateVariableValidationResultType = z.infer<\n typeof TemplateVariableValidationResultSchema\n>;\n"]}
1
+ {"version":3,"sources":["../src/errors/enums.ts","../src/http/constants.ts","../src/errors/codes.ts","../src/auth/enums.ts","../src/auth/schemas.ts","../src/auth/types.ts","../src/auth/auth-events.ts","../src/core/modules.ts","../src/core/tables/enum.ts","../src/core/featureFlag/enums.ts","../src/core/featureFlag/constants.ts","../src/core/events/enums.ts","../src/core/services/keys.ts","../src/events/enums.ts","../src/locale/types.ts","../src/web3/enums.ts","../src/features/cache/types.ts","../src/user/enums.ts","../src/user/schemas.ts","../src/campaign/enums.ts","../src/campaign/schemas.ts","../src/logger/enums.ts","../src/payments/events/enums.ts","../src/payments/events/unified-event/enums.ts","../src/payments/provider/provider-capability/enums.ts","../src/payments/request/enums.ts","../src/payments/gateways/provider/plans/enums.ts","../src/payments/gateways/provider/fee/enum.ts","../src/payments/gateways/routings/enums.ts","../src/payments/base-error/enum.ts","../src/payments/idempotency/enum.ts","../src/payments/kyc/enum.ts","../src/notifications/enums.ts","../src/notifications/schemas.ts","../src/notifications/webhooks.schemas.ts","../src/utils/enums.ts","../src/observability/types.ts","../src/api/events/enum.ts","../src/api/queue/enums.ts","../src/api/headers/enum.ts","../src/api/network/enums.ts","../src/api/debugger/enums.ts","../src/api/client/enum.ts","../src/api/regional/enum.ts","../src/api/pubsub/enum.ts","../src/db/dbEnums.ts","../src/db/dbConstant.ts","../src/storage/enums.ts","../src/storage/event-handler-mapping.ts","../src/storage/schemas.ts"],"names":["AUTH_PROVIDER_TYPE","AUTH_PROVIDER","USER_ROLE_STATUS","TOKEN_TYPE","z","TABLES","SORT_DIRECTION","FEATURE_FLAG_TABLE","FEATURE_FLAG_FIELD","FEATURE_FLAG_RULE_FIELD","FEATURE_FLAG_PROVIDERS","NODE_ENVIRONMENTS","DATABASE_FIELDS","SYSTEM_USERS","EVALUATION_REASONS","FEATURE_FLAG_TYPES","BASIC_PROFILE_ERRORS","ATHLETE_PROFILE_ERRORS","CREATE_CAMPAIGN_ERRORS","PAYMENT_EVENT_TYPE","PAYMENT_EVENT_CATEGORY","PAYMENT_EVENT_ERROR_CATEGORY","EVENT_PROCESSING_STATUS","PAYMENT_PROVIDER_TYPE","PAYMENT_METHOD","PAYMENT_STATUS","TRANSACTION_TYPE","USER_TYPE","PRODUCT_TYPE","REQUIREDACTIONTYPE","PROVIDER_PRODUCT_STATUS","FEE_TYPE","FEE_CONTEXT","COST_OPTIMIZATION_STRATEGY","FAIL_OVER_STRATEGY","REGULATORY_FRAMEWORK","LOAD_BALANCING_STRATEGY","PERFORMANCE_METRIC_TYPE","ROUTING_STRATEGY","ROUTER_RULE_NAME","REFUND_ERROR_TYPES","REFUND_NOT_ALLOWED_REASON","SECURITY_THREAT_TYPE","WEBHOOK_VERIFICATION_REASON","IDEMPOTENCY_STATUS","KYC_STATUS","KYC_TIER","KYC_PROVIDER","ONBOARD_STATUS","ONBOARD_LINK_TYPE","KYC_ENTITY_TYPE","SIGNATURE_METHOD","WEBHOOK_EVENT_TYPE","WEBHOOK_ENCRYPTION_METHOD","CORRELATION_TYPE","NETWORK_QUALITY","ADAPTERS","DATABASE_EVENT_TYPE","REPLICA_STRATEGY","DB_POOL_EVENTS","ALERT_SEVERITY","ALERT_SOURCE","AUDIT_OPERATION","EXTENSION_SOURCE","ADAPTER_TYPES","FILE_CATEGORY","ENTITY_TYPE","STORAGE_ADAPTER_TYPE","FILE_ACCESS_LEVEL","UPLOAD_STATUS","STORAGE_EVENT_TYPE","RETRY_STRATEGY","PATH_GENERATION_STRATEGY","FILE_VALIDATION_ERROR","TEMPLATE_OUTPUT_FORMAT","DOCUMENT_TYPE","MEDIA_ENTITY","STORAGE_VISIBILITY","STORAGE_ENVIRONMENT","BUSINESS_MODEL","ORGANIZATION_TIER","BUCKET_PURPOSE","PATH_STRATEGY","MEDIA_VARIANT_TYPE","STORAGE_QUEUE_PRIORITY","STORAGE_DEVICE_TYPE","STORAGE_VARIANT_NAME","ADAPTER_HEALTH_STATUS","STORAGE_RENDERER_TYPE","OUTPUT_FORMAT","STORAGE_JURISDICTION","STORAGE_REGULATORY_FRAMEWORK","STORAGE_PLUGIN_TYPE","STORAGE_WEBHOOK_EVENT_TYPE","STORAGE_OPERATION","STORAGE_SIGNATURE_METHOD","TEMPLATE_VARIABLE_TYPE","TEMPLATE_DOCUMENT_TYPE","STORAGE_PROCESSING_STATUS","TEMPLATE_VARIABLE_TYPE_SCHEMA","TEMPLATE_DOCUMENT_TYPE_SCHEMA"],"mappings":"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KAAA;AAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA;AAAA;AAAA,EAGL,GAAA,EAAK,KAAA;AAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA;AAAA;AAAA,EAGL,GAAA,EAAK,KAAA;AAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA;AAAA;AAAA,EAGL,GAAA,EAAK,KAAA;AAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA;AAAA;AAAA,EAGL,GAAA,EAAK,KAAA;AAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA;AAAA;AAAA,EAGL,GAAA,EAAK,KAAA;AAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA;AAAA;AAAA,EAGL,GAAA,EAAK,KAAA;AAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA;AAAA;AAAA,EAGL,GAAA,EAAK,KAAA;AAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA;AAAA,EACL,IAAA,EAAM,MAAA;AAAA;AAAA,EACN,IAAA,EAAM;AAAA;AACR;;;AC7GO,IAAM,QAAA,GAAW;AAAA;AAAA,EAEtB,eAAA,EAAiB,CAAA;AAAA;AAAA,EAGjB,eAAA,EAAiB,QAAA;AAAA;AAAA,EAGjB,QAAA,EAAU,EAAA;AAAA;AAAA,EAGV,eAAA,EAAiB,QAAA;AAAA;AAAA,EAGjB,QAAA,EAAU,KAAA;AAAA;AAAA,EAGV,eAAA,EAAiB,MAAA;AAAA;AAAA,EAGjB,OAAA,EAAS,GAAA;AAAA;AAAA,EAGT,WAAA,EAAa,KAAA;AAAA;AAAA,EAGb,IAAA,EAAM,IAAA;AAAA;AAAA,EAGN,WAAA,EAAa;AACf;;;AClBO,IAAM,gBAAA,GAAmB,CAAC,QAAA,EAAU,OAAO;;;ACrB3C,IAAM,SAAA,GAAY;AAAA,EACvB,aAAA,EAAe,eAAA;AAAA,EACf,OAAA,EAAS,SAAA;AAAA,EACT,MAAA,EAAQ,QAAA;AAAA,EACR,KAAA,EAAO,OAAA;AAAA,EACP,KAAA,EAAO,OAAA;AAAA,EACP,WAAA,EAAa,aAAA;AAAA,EACb,OAAA,EAAS,SAAA;AAAA,EACT,OAAA,EAAS,SAAA;AAAA,EACT,WAAA,EAAa,aAAA;AAAA,EACb,MAAA,EAAQ,QAAA;AAAA,EACR,MAAA,EAAQ,QAAA;AAAA,EACR,OAAA,EAAS,SAAA;AAAA,EACT,OAAA,EAAS,SAAA;AAAA,EACT,QAAA,EAAU,UAAA;AAAA,EACV,OAAA,EAAS,SAAA;AAAA,EACT,MAAA,EAAQ,QAAA;AAAA,EACR,aAAA,EAAe,eAAA;AAAA,EACf,OAAA,EAAS,SAAA;AAAA,EACT,OAAA,EAAS,SAAA;AAAA,EACT,QAAA,EAAU,UAAA;AAAA,EACV,OAAA,EAAS,SAAA;AAAA,EACT,QAAA,EAAU,UAAA;AAAA,EACV,QAAA,EAAU,UAAA;AAAA,EACV,OAAA,EAAS,SAAA;AAAA,EACT,MAAA,EAAQ,QAAA;AAAA,EACR,SAAA,EAAW,WAAA;AAAA,EACX,MAAA,EAAQ,QAAA;AAAA,EACR,MAAA,EAAQ,QAAA;AAAA,EACR,KAAA,EAAO,OAAA;AAAA,EACP,UAAA,EAAY,YAAA;AAAA,EACZ,KAAA,EAAO;AACT;AAMO,IAAK,oBAAA,qBAAAC,qBAAAA,KAAL;AAEL,EAAAA,sBAAA,SAAA,CAAA,GAAU,4CAAA;AAEV,EAAAA,sBAAA,SAAA,CAAA,GAAU,4CAAA;AAEV,EAAAA,sBAAA,YAAA,CAAA,GAAa,+CAAA;AAEb,EAAAA,sBAAA,eAAA,CAAA,GAAgB,kDAAA;AAEhB,EAAAA,sBAAA,iBAAA,CAAA,GAAkB,oDAAA;AAElB,EAAAA,sBAAA,QAAA,CAAA,GAAS,2CAAA;AAET,EAAAA,sBAAA,kBAAA,CAAA,GAAmB,qDAAA;AAEnB,EAAAA,sBAAA,mBAAA,CAAA,GAAoB,sDAAA;AAhBV,EAAA,OAAAA,qBAAAA;AAAA,CAAA,EAAA,oBAAA,IAAA,EAAA;AAuBL,IAAK,sBAAA,qBAAAC,uBAAAA,KAAL;AAEL,EAAAA,wBAAA,QAAA,CAAA,GAAS,6CAAA;AAET,EAAAA,wBAAA,QAAA,CAAA,GAAS,6CAAA;AAET,EAAAA,wBAAA,WAAA,CAAA,GAAY,gDAAA;AAEZ,EAAAA,wBAAA,WAAA,CAAA,GAAY,gDAAA;AAEZ,EAAAA,wBAAA,eAAA,CAAA,GAAgB,oDAAA;AAEhB,EAAAA,wBAAA,WAAA,CAAA,GAAY,gDAAA;AAEZ,EAAAA,wBAAA,WAAA,CAAA,GAAY,gDAAA;AAEZ,EAAAA,wBAAA,eAAA,CAAA,GAAgB,oDAAA;AAEhB,EAAAA,wBAAA,aAAA,CAAA,GAAc,kDAAA;AAEd,EAAAA,wBAAA,aAAA,CAAA,GAAc,kDAAA;AAEd,EAAAA,wBAAA,SAAA,CAAA,GAAU,8CAAA;AAEV,EAAAA,wBAAA,SAAA,CAAA,GAAU,8CAAA;AAEV,EAAAA,wBAAA,kBAAA,CAAA,GAAmB,uDAAA;AAEnB,EAAAA,wBAAA,eAAA,CAAA,GAAgB,oDAAA;AAEhB,EAAAA,wBAAA,oBAAA,CAAA,GAAqB,yDAAA;AAErB,EAAAA,wBAAA,qBAAA,CAAA,GAAsB,0DAAA;AAhCZ,EAAA,OAAAA,uBAAAA;AAAA,CAAA,EAAA,sBAAA,IAAA,EAAA;AC7DZ,IAAM,eAAA,GAAkB,CAAA;AACxB,IAAM,eAAA,GAAkB,EAAA;AACxB,IAAM,cAAA,GAAiB,GAAA;AAMhB,IAAM,kBAAA,GAAqBb,MAAE,MAAA,CAAO;AAAA,EACzC,IAAA,EAAMA,MACH,MAAA,EAAO,CACP,IAAI,eAAA,EAAA,4CAAA,eAA6C,CACjD,IAAI,eAAA,EAAA,4CAAA,eAA6C;AAAA,EACpD,OAAOA,KAAAA,CACJ,MAAA,GACA,KAAA,CAAA,+CAAA,kBAAqC,CACrC,IAAI,CAAA,EAAA,kDAAA,qBAAqC;AAAA,EAC5C,OAAA,EAASA,KAAAA,CAAE,MAAA,EAAO,CAAE,IAAI,CAAA,EAAA,oDAAA,uBAAuC;AAAA,EAC/D,KAAKA,KAAAA,CAAE,MAAA,GAAS,GAAA,CAAI,cAAA,EAAA,2CAAA,eAA6C,QAAA,EAAS;AAAA,EAC1E,YAAA,EAAcA,MACX,KAAA,CAAM;AAAA,IACLA,KAAAA,CACG,UAAA,CAAW,IAAI,CAAA,CACf,MAAA;AAAA,MACC,CAAA,IAAA,KAAQ,IAAA,CAAK,IAAA,IAAQ,CAAA,GAAI,IAAA,GAAO,IAAA;AAAA;AAAA,MAAA,qDAAA;AAAA,KAElC,CACC,MAAA;AAAA,MACC,CAAA,IAAA,KAAQ,CAAC,WAAA,EAAa,YAAA,EAAc,aAAa,YAAY,CAAA,CAAE,QAAA,CAAS,IAAA,CAAK,IAAI,CAAA;AAAA,MAAA,sDAAA;AAAA,KAEnF;AAAA,IACFA,MAAE,MAAA,EAAO;AAAA,IACTA,MAAE,IAAA;AAAK,GACR,EACA,QAAA;AACL,CAAC;AAMM,IAAM,gBAAA,GAAmB,kBAAA,CAAmB,MAAA,CAAO,EAAE;AAOrD,IAAM,oBAAA,GAAuB,mBAAmB,MAAA,CAAO;AAAA,EAC5D,aAAaA,KAAAA,CACV,IAAA,EAAK,CACL,GAAA,qBAAQ,IAAA,EAAK,EAAA,6CAAA,cAAgC,CAC7C,GAAA,CAAI,IAAI,IAAA,CAAK,IAAA,EAAM,GAAG,CAAC,CAAA,EAAA,6CAAA,eACvB,QAAA,EAAS;AAAA,EACZ,MAAA,EAAQA,KAAAA,CACL,MAAA,EAAO,CACP,GAAA,CAAI,qEAAoC,CACxC,GAAA,CAAI,GAAA,EAAA,gDAAA,iBAAqC,CACzC,QAAA,EAAS;AAAA,EACZ,MAAA,EAAQA,KAAAA,CACL,MAAA,EAAO,CACP,GAAA,CAAI,qEAAoC,CACxC,GAAA,CAAI,GAAA,EAAA,gDAAA,iBAAqC,CACzC,QAAA,EAAS;AAAA,EACZ,QAAA,EAAUA,KAAAA,CACP,MAAA,EAAO,CACP,GAAA,CAAI,wEAAqC,CACzC,GAAA,CAAI,EAAA,EAAA,kDAAA,mBAAsC,CAC1C,QAAA,EAAS;AAAA,EACZ,QAAA,EAAUA,KAAAA,CACP,MAAA,EAAO,CACP,GAAA,CAAI,gEAAiC,CACrC,GAAA,CAAI,GAAA,EAAA,8CAAA,eAAmC,CACvC,QAAA,EAAS;AAAA,EACZ,iBAAiBA,KAAAA,CACd,MAAA,GACA,KAAA,CAAM,+CAAA,EAAA,uDAAA,yBACN,QAAA,EAAS;AAAA,EACZ,cAAcA,KAAAA,CACX,MAAA,GACA,KAAA,CAAM,uCAAA,EAAA,oDAAA,sBACN,QAAA,EAAS;AAAA,EACZ,cAAA,EAAgBA,MACb,KAAA,CAAM;AAAA,IACLA,KAAAA,CACG,UAAA,CAAW,IAAI,CAAA,CACf,MAAA;AAAA,MACC,CAAA,IAAA,KAAQ,IAAA,CAAK,IAAA,IAAQ,CAAA,GAAI,IAAA,GAAO,IAAA;AAAA;AAAA,MAAA,yDAAA;AAAA,KAElC,CACC,MAAA;AAAA,MACC,CAAA,IAAA,KAAQ,CAAC,WAAA,EAAa,YAAA,EAAc,WAAW,CAAA,CAAE,QAAA,CAAS,KAAK,IAAI,CAAA;AAAA,MAAA,0DAAA;AAAA,KAErE;AAAA,IACFA,MAAE,MAAA,EAAO;AAAA,IACTA,MAAE,IAAA;AAAK,GACR,EACA,QAAA;AACL,CAAC;;;AClGM,IAAK,sBAAA,qBAAAc,uBAAAA,KAAL;AAEL,EAAAA,wBAAA,eAAA,CAAA,GAAgB,qDAAA;AAEhB,EAAAA,wBAAA,UAAA,CAAA,GAAW,gDAAA;AAEX,EAAAA,wBAAA,kBAAA,CAAA,GAAmB,wDAAA;AAEnB,EAAAA,wBAAA,aAAA,CAAA,GAAc,mDAAA;AAEd,EAAAA,wBAAA,uBAAA,CAAA,GAAwB,6DAAA;AAExB,EAAAA,wBAAA,mBAAA,CAAA,GAAoB,yDAAA;AAEpB,EAAAA,wBAAA,kBAAA,CAAA,GAAmB,wDAAA;AAEnB,EAAAA,wBAAA,iBAAA,CAAA,GAAkB,uDAAA;AAElB,EAAAA,wBAAA,kBAAA,CAAA,GAAmB,wDAAA;AAEnB,EAAAA,wBAAA,eAAA,CAAA,GAAgB,qDAAA;AAEhB,EAAAA,wBAAA,UAAA,CAAA,GAAW,gDAAA;AAEX,EAAAA,wBAAA,sBAAA,CAAA,GAAuB,4DAAA;AAEvB,EAAAA,wBAAA,iBAAA,CAAA,GAAkB,uDAAA;AAElB,EAAAA,wBAAA,cAAA,CAAA,GAAe,oDAAA;AAEf,EAAAA,wBAAA,cAAA,CAAA,GAAe,oDAAA;AAEf,EAAAA,wBAAA,kBAAA,CAAA,GAAmB,wDAAA;AAEnB,EAAAA,wBAAA,WAAA,CAAA,GAAY,iDAAA;AAEZ,EAAAA,wBAAA,eAAA,CAAA,GAAgB,qDAAA;AAEhB,EAAAA,wBAAA,YAAA,CAAA,GAAa,kDAAA;AAEb,EAAAA,wBAAA,gBAAA,CAAA,GAAiB,sDAAA;AAxCP,EAAA,OAAAA,uBAAAA;AAAA,CAAA,EAAA,sBAAA,IAAA,EAAA;ACcL,IAAM,qCAAqB,MAAA,CAAA,CAAC,EAAE,UAAA,EAAW,KAC9Cd,MAAE,MAAA,CAAO;AAAA,EACP,KAAA,EAAOA,MAAE,MAAA,EAAO,CAAE,IAAI,CAAA,EAAA,qDAAA,qBAAoB,CAAE,IAAI,EAAA,EAAA,gDAAA,gBAAgB;AAAA,EAChE,QAAA,EAAUA,MAAE,MAAA,EAAO,CAAE,IAAI,CAAA,EAAA,wDAAA,wBAAuB,CAAE,IAAI,GAAA,EAAA,mDAAA,mBAAoB;AAAA,EAC1E,eAAeA,KAAAA,CAAE,GAAA,GAAM,MAAA,CAAO,CAAA,GAAA,KAAO,eAAe,IAAA,EAAM;AAAA,IACxD,OAAA,EAAA,6DAAA;AAAA,GACD,CAAA;AAAA,EACD,SAAA,EAAWA,MACR,IAAA,CAAK;AAAA,IACJ,KAAA,EAAA,yDAAA;AAAA,GACD,CAAA,CACA,MAAA,CAAO,CAAA,IAAA,KAAQ,IAAA,YAAgB,IAAA,IAAQ,CAAC,KAAA,CAAM,IAAA,CAAK,OAAA,EAAS,CAAA,EAAG;AAAA,IAC9D,OAAA,EAAA,wDAAA;AAAA,GACD,CAAA,CACA,MAAA,CAAO,UAAQ,IAAA,oBAAQ,IAAI,MAAK,EAAG;AAAA,IAClC,OAAA,EAAA,uDAAA;AAAA,GACD,CAAA;AAAA,EACH,QAAA,EAAUA,MACP,KAAA,CAAM,CAACA,MAAE,OAAA,CAAQ,EAAE,CAAA,EAAGA,KAAAA,CAAE,OAAA,CAAQ,EAAE,GAAGA,KAAAA,CAAE,OAAA,CAAQ,EAAE,CAAC,CAAC,CAAA,CACnD,UAAS,CACT,MAAA,CAAO,CAAA,GAAA,KAAO,GAAA,KAAQ,IAAA,EAAM;AAAA,IAC3B,OAAA,EAAA,wDAAA;AAAA,GACD,CAAA;AAAA,EACH,KAAA,EAAOA,MAAE,MAAA,EAAO,CAAE,IAAI,CAAA,EAAA,qDAAA,qBAAoB,CAAE,IAAI,GAAA,EAAA,gDAAA,gBAAmB;AAAA,EACnE,cAAA,EAAgBA,KAAAA,CACb,MAAA,EAAO,CACP,MAAA;AAAA,IACC,CAAA,GAAA,KAAO;AACL,MAAA,IAAI,CAAC,GAAA,IAAO,GAAA,CAAI,IAAA,EAAK,KAAM,IAAI,OAAO,IAAA;AACtC,MAAA,IAAI;AACF,QAAA,MAAM,MAAA,GAAS,IAAI,GAAA,CAAI,GAAG,CAAA;AAC1B,QAAA,MAAM,QAAA,GAAW,MAAA,CAAO,QAAA,CAAS,WAAA,EAAY;AAC7C,QAAA,OACE,QAAA,CAAS,QAAA,CAAS,aAAa,CAAA,IAC/B,SAAS,QAAA,CAAS,UAAU,CAAA,IAC5B,QAAA,CAAS,QAAA,CAAS,YAAY,CAAA,IAC9B,QAAA,CAAS,SAAS,WAAW,CAAA;AAAA,MAEjC,CAAA,CAAA,MAAQ;AACN,QAAA,OAAO,KAAA;AAAA,MACT;AAAA,IACF,CAAA;AAAA,IACA;AAAA,MACE,OAAA,EAAA,4DAAA;AAAA;AACF,IAED,QAAA,EAAS;AAAA,EACZ,eAAeA,KAAAA,CACZ,MAAA,EAAO,CACP,GAAA,CAAI,iFAAsB,CAC1B,MAAA;AAAA,IACC,CAAA,GAAA,KAAO;AACL,MAAA,MAAM,GAAA,GAAM,MAAA,CAAO,UAAA,CAAW,GAAA,IAAO,EAAE,CAAA;AACvC,MAAA,OAAO,CAAC,KAAA,CAAM,GAAG,CAAA,IAAK,GAAA,GAAM,KAAK,GAAA,IAAO,UAAA;AAAA,IAC1C,CAAA;AAAA,IACA;AAAA,MACE,OAAA,EAAA,oDAAA;AAAA;AACF,GACF;AAAA,EACF,eAAA,EAAiBA,KAAAA,CACd,MAAA,EAAO,CACP,GAAA,CAAI,4EAAoB,CACxB,KAAA,CAAM,+CAAA,EAAA,wDAAA,wBAAqE,CAC3E,QAAA,EAAS;AAAA,EACZ,YAAA,EAAcA,KAAAA,CACX,MAAA,EAAO,CACP,GAAA,CAAI,sEAAiB,CACrB,KAAA,CAAM,uCAAA,EAAA,qDAAA,qBAA0D,CAChE,QAAA,EAAS;AAAA,EACZ,aAAA,EAAeA,KAAAA,CACZ,MAAA,EAAO,CACP,GAAA,CAAI,wEAAkB,CACtB,KAAA,CAAM,kDAAA,EAAA,sDAAA,sBAAsE,CAC5E,QAAA;AACL,CAAC,CAAA,EA1E+B,oBAAA;;;ACZ3B,IAAM,eAAA,GAAkB;AAAA;AAAA,EAE7B,UAAA,EAAY,WAAA;AAAA,EACZ,oBAAA,EAAsB,oBAAA;AAAA,EACtB,YAAA,EAAc,cAAA;AAAA,EACd,OAAA,EAAS,QAAA;AAAA,EACT,aAAA,EAAe,cAAA;AAAA,EACf,WAAA,EAAa,YAAA;AAAA,EACb,YAAA,EAAc,aAAA;AAAA,EACd,iBAAA,EAAmB,kBAAA;AAAA,EACnB,iBAAA,EAAmB,kBAAA;AAAA,EACnB,YAAA,EAAc,aAAA;AAAA,EACd,kBAAA,EAAoB,mBAAA;AAAA,EACpB,qBAAA,EAAuB,sBAAA;AAAA,EACvB,sBAAA,EAAwB,sBAAA;AAAA,EACxB,mBAAA,EAAqB,mBAAA;AAAA,EACrB,kBAAA,EAAoB,mBAAA;AAAA;AAAA,EAGpB,mBAAA,EAAqB,oBAAA;AAAA,EACrB,YAAA,EAAc,aAAA;AAAA,EACd,gBAAA,EAAkB,iBAAA;AAAA,EAClB,sBAAA,EAAwB,sBAAA;AAAA;AAAA,EAGxB,aAAA,EAAe,cAAA;AAAA,EACf,WAAA,EAAa,YAAA;AAAA,EACb,YAAA,EAAc,aAAA;AAAA,EACd,eAAA,EAAiB,gBAAA;AAAA,EACjB,eAAA,EAAiB,gBAAA;AAAA,EACjB,mBAAA,EAAqB,oBAAA;AAAA;AAAA,EAGrB,eAAA,EAAiB,gBAAA;AAAA,EACjB,eAAA,EAAiB,gBAAA;AAAA,EACjB,qBAAA,EAAuB,qBAAA;AAAA,EACvB,wBAAA,EAA0B,wBAAA;AAAA,EAC1B,gBAAA,EAAkB,iBAAA;AAAA,EAClB,eAAA,EAAiB,gBAAA;AAAA,EACjB,kBAAA,EAAoB,mBAAA;AAAA,EACpB,aAAA,EAAe,cAAA;AAAA,EACf,iBAAA,EAAmB,kBAAA;AAAA,EACnB,kBAAA,EAAoB,mBAAA;AAAA;AAAA,EAGpB,cAAA,EAAgB,eAAA;AAAA,EAChB,gBAAA,EAAkB;AACpB;;;AC3CO,IAAK,kBAAA,qBAAAe,mBAAAA,KAAL;AAEL,EAAAA,oBAAA,kBAAA,CAAA,GAAmB,mBAAA;AACnB,EAAAA,oBAAA,mBAAA,CAAA,GAAoB,oBAAA;AACpB,EAAAA,oBAAA,uBAAA,CAAA,GAAwB,yBAAA;AACxB,EAAAA,oBAAA,kBAAA,CAAA,GAAmB,mBAAA;AACnB,EAAAA,oBAAA,eAAA,CAAA,GAAgB,gBAAA;AAChB,EAAAA,oBAAA,kBAAA,CAAA,GAAmB,mBAAA;AACnB,EAAAA,oBAAA,gBAAA,CAAA,GAAiB,iBAAA;AACjB,EAAAA,oBAAA,mBAAA,CAAA,GAAoB,oBAAA;AACpB,EAAAA,oBAAA,iBAAA,CAAA,GAAkB,kBAAA;AAClB,EAAAA,oBAAA,aAAA,CAAA,GAAc,cAAA;AACd,EAAAA,oBAAA,iBAAA,CAAA,GAAkB,kBAAA;AAGlB,EAAAA,oBAAA,iBAAA,CAAA,GAAkB,kBAAA;AAClB,EAAAA,oBAAA,gBAAA,CAAA,GAAiB,iBAAA;AACjB,EAAAA,oBAAA,gBAAA,CAAA,GAAiB,iBAAA;AACjB,EAAAA,oBAAA,kBAAA,CAAA,GAAmB,mBAAA;AACnB,EAAAA,oBAAA,iBAAA,CAAA,GAAkB,kBAAA;AAClB,EAAAA,oBAAA,cAAA,CAAA,GAAe,eAAA;AACf,EAAAA,oBAAA,iBAAA,CAAA,GAAkB,kBAAA;AAGlB,EAAAA,oBAAA,qBAAA,CAAA,GAAsB,sBAAA;AACtB,EAAAA,oBAAA,qBAAA,CAAA,GAAsB,sBAAA;AACtB,EAAAA,oBAAA,kBAAA,CAAA,GAAmB,mBAAA;AACnB,EAAAA,oBAAA,qBAAA,CAAA,GAAsB,sBAAA;AAGtB,EAAAA,oBAAA,yBAAA,CAAA,GAA0B,2BAAA;AAC1B,EAAAA,oBAAA,0BAAA,CAAA,GAA2B,4BAAA;AAC3B,EAAAA,oBAAA,uBAAA,CAAA,GAAwB,yBAAA;AACxB,EAAAA,oBAAA,mBAAA,CAAA,GAAoB,qBAAA;AACpB,EAAAA,oBAAA,sBAAA,CAAA,GAAuB,wBAAA;AACvB,EAAAA,oBAAA,mBAAA,CAAA,GAAoB,qBAAA;AACpB,EAAAA,oBAAA,iBAAA,CAAA,GAAkB,kBAAA;AAClB,EAAAA,oBAAA,uBAAA,CAAA,GAAwB,yBAAA;AAGxB,EAAAA,oBAAA,qBAAA,CAAA,GAAsB,sBAAA;AACtB,EAAAA,oBAAA,qBAAA,CAAA,GAAsB,sBAAA;AACtB,EAAAA,oBAAA,kBAAA,CAAA,GAAmB,mBAAA;AACnB,EAAAA,oBAAA,iBAAA,CAAA,GAAkB,kBAAA;AAClB,EAAAA,oBAAA,iBAAA,CAAA,GAAkB,kBAAA;AAClB,EAAAA,oBAAA,cAAA,CAAA,GAAe,eAAA;AAGf,EAAAA,oBAAA,oBAAA,CAAA,GAAqB,qBAAA;AACrB,EAAAA,oBAAA,qBAAA,CAAA,GAAsB,sBAAA;AACtB,EAAAA,oBAAA,eAAA,CAAA,GAAgB,gBAAA;AAChB,EAAAA,oBAAA,gBAAA,CAAA,GAAiB,iBAAA;AACjB,EAAAA,oBAAA,gBAAA,CAAA,GAAiB,iBAAA;AACjB,EAAAA,oBAAA,gBAAA,CAAA,GAAiB,iBAAA;AACjB,EAAAA,oBAAA,iBAAA,CAAA,GAAkB,kBAAA;AAClB,EAAAA,oBAAA,kBAAA,CAAA,GAAmB,mBAAA;AAGnB,EAAAA,oBAAA,eAAA,CAAA,GAAgB,gBAAA;AAChB,EAAAA,oBAAA,qBAAA,CAAA,GAAsB,uBAAA;AACtB,EAAAA,oBAAA,cAAA,CAAA,GAAe,eAAA;AACf,EAAAA,oBAAA,oBAAA,CAAA,GAAqB,qBAAA;AACrB,EAAAA,oBAAA,gBAAA,CAAA,GAAiB,iBAAA;AACjB,EAAAA,oBAAA,qBAAA,CAAA,GAAsB,uBAAA;AACtB,EAAAA,oBAAA,uBAAA,CAAA,GAAwB,yBAAA;AAGxB,EAAAA,oBAAA,oBAAA,CAAA,GAAqB,sBAAA;AACrB,EAAAA,oBAAA,sBAAA,CAAA,GAAuB,wBAAA;AACvB,EAAAA,oBAAA,sBAAA,CAAA,GAAuB,wBAAA;AACvB,EAAAA,oBAAA,uBAAA,CAAA,GAAwB,yBAAA;AACxB,EAAAA,oBAAA,sBAAA,CAAA,GAAuB,wBAAA;AAGvB,EAAAA,oBAAA,qBAAA,CAAA,GAAsB,sBAAA;AACtB,EAAAA,oBAAA,qBAAA,CAAA,GAAsB,sBAAA;AACtB,EAAAA,oBAAA,uBAAA,CAAA,GAAwB,wBAAA;AACxB,EAAAA,oBAAA,qBAAA,CAAA,GAAsB,sBAAA;AACtB,EAAAA,oBAAA,oBAAA,CAAA,GAAqB,qBAAA;AACrB,EAAAA,oBAAA,0BAAA,CAAA,GAA2B,4BAAA;AAC3B,EAAAA,oBAAA,wBAAA,CAAA,GAAyB,0BAAA;AAGzB,EAAAA,oBAAA,gBAAA,CAAA,GAAiB,iBAAA;AACjB,EAAAA,oBAAA,gBAAA,CAAA,GAAiB,iBAAA;AACjB,EAAAA,oBAAA,gBAAA,CAAA,GAAiB,iBAAA;AACjB,EAAAA,oBAAA,cAAA,CAAA,GAAe,eAAA;AACf,EAAAA,oBAAA,cAAA,CAAA,GAAe,eAAA;AACf,EAAAA,oBAAA,cAAA,CAAA,GAAe,eAAA;AAGf,EAAAA,oBAAA,sBAAA,CAAA,GAAuB,wBAAA;AACvB,EAAAA,oBAAA,uBAAA,CAAA,GAAwB,yBAAA;AACxB,EAAAA,oBAAA,uBAAA,CAAA,GAAwB,yBAAA;AACxB,EAAAA,oBAAA,4BAAA,CAAA,GAA6B,8BAAA;AAC7B,EAAAA,oBAAA,0BAAA,CAAA,GAA2B,4BAAA;AAG3B,EAAAA,oBAAA,yBAAA,CAAA,GAA0B,2BAAA;AAC1B,EAAAA,oBAAA,uBAAA,CAAA,GAAwB,yBAAA;AACxB,EAAAA,oBAAA,uBAAA,CAAA,GAAwB,yBAAA;AAGxB,EAAAA,oBAAA,mBAAA,CAAA,GAAoB,qBAAA;AACpB,EAAAA,oBAAA,2BAAA,CAAA,GAA4B,6BAAA;AAxGlB,EAAA,OAAAA,mBAAAA;AAAA,CAAA,EAAA,kBAAA,IAAA,EAAA;AA8GL,IAAK,sBAAA,qBAAAC,uBAAAA,KAAL;AACL,EAAAA,wBAAA,aAAA,CAAA,GAAc,aAAA;AACd,EAAAA,wBAAA,QAAA,CAAA,GAAS,QAAA;AACT,EAAAA,wBAAA,UAAA,CAAA,GAAW,UAAA;AACX,EAAAA,wBAAA,UAAA,CAAA,GAAW,UAAA;AACX,EAAAA,wBAAA,YAAA,CAAA,GAAa,YAAA;AACb,EAAAA,wBAAA,WAAA,CAAA,GAAY,WAAA;AACZ,EAAAA,wBAAA,cAAA,CAAA,GAAe,cAAA;AACf,EAAAA,wBAAA,QAAA,CAAA,GAAS,QAAA;AACT,EAAAA,wBAAA,OAAA,CAAA,GAAQ,OAAA;AATE,EAAA,OAAAA,uBAAAA;AAAA,CAAA,EAAA,sBAAA,IAAA,EAAA;AAeL,IAAK,4BAAA,qBAAAC,6BAAAA,KAAL;AACL,EAAAA,8BAAA,WAAA,CAAA,GAAY,YAAA;AACZ,EAAAA,8BAAA,eAAA,CAAA,GAAgB,gBAAA;AAChB,EAAAA,8BAAA,aAAA,CAAA,GAAc,cAAA;AACd,EAAAA,8BAAA,cAAA,CAAA,GAAe,eAAA;AACf,EAAAA,8BAAA,YAAA,CAAA,GAAa,aAAA;AACb,EAAAA,8BAAA,iBAAA,CAAA,GAAkB,kBAAA;AAClB,EAAAA,8BAAA,YAAA,CAAA,GAAa,aAAA;AACb,EAAAA,8BAAA,oBAAA,CAAA,GAAqB,qBAAA;AACrB,EAAAA,8BAAA,cAAA,CAAA,GAAe,eAAA;AACf,EAAAA,8BAAA,iBAAA,CAAA,GAAkB,kBAAA;AAVR,EAAA,OAAAA,6BAAAA;AAAA,CAAA,EAAA,4BAAA,IAAA,EAAA;;;ACpIL,IAAK,uBAAA,qBAAAC,wBAAAA,KAAL;AACL,EAAAA,yBAAA,UAAA,CAAA,GAAW,UAAA;AACX,EAAAA,yBAAA,YAAA,CAAA,GAAa,YAAA;AACb,EAAAA,yBAAA,aAAA,CAAA,GAAc,aAAA;AACd,EAAAA,yBAAA,YAAA,CAAA,GAAa,YAAA;AACb,EAAAA,yBAAA,YAAA,CAAA,GAAa,YAAA;AACb,EAAAA,yBAAA,WAAA,CAAA,GAAY,WAAA;AACZ,EAAAA,yBAAA,QAAA,CAAA,GAAS,QAAA;AACT,EAAAA,yBAAA,UAAA,CAAA,GAAW,UAAA;AACX,EAAAA,yBAAA,SAAA,CAAA,GAAU,SAAA;AATA,EAAA,OAAAA,wBAAAA;AAAA,CAAA,EAAA,uBAAA,IAAA,EAAA;;;ACAL,IAAK,qBAAA,qBAAAC,sBAAAA,KAAL;AAEL,EAAAA,uBAAA,QAAA,CAAA,GAAS,QAAA;AACT,EAAAA,uBAAA,QAAA,CAAA,GAAS,QAAA;AACT,EAAAA,uBAAA,aAAA,CAAA,GAAc,cAAA;AACd,EAAAA,uBAAA,OAAA,CAAA,GAAQ,OAAA;AAGR,EAAAA,uBAAA,SAAA,CAAA,GAAU,SAAA;AACV,EAAAA,uBAAA,kBAAA,CAAA,GAAmB,mBAAA;AACnB,EAAAA,uBAAA,kBAAA,CAAA,GAAmB,mBAAA;AAGnB,EAAAA,uBAAA,KAAA,CAAA,GAAM,KAAA;AACN,EAAAA,uBAAA,QAAA,CAAA,GAAS,QAAA;AACT,EAAAA,uBAAA,MAAA,CAAA,GAAO,MAAA;AACP,EAAAA,uBAAA,OAAA,CAAA,GAAQ,OAAA;AACR,EAAAA,uBAAA,QAAA,CAAA,GAAS,QAAA;AACT,EAAAA,uBAAA,QAAA,CAAA,GAAS,QAAA;AACT,EAAAA,uBAAA,WAAA,CAAA,GAAY,YAAA;AAGZ,EAAAA,uBAAA,cAAA,CAAA,GAAe,eAAA;AAtBL,EAAA,OAAAA,sBAAAA;AAAA,CAAA,EAAA,qBAAA,IAAA,EAAA;AA4BL,IAAK,cAAA,qBAAAC,eAAAA,KAAL;AAEL,EAAAA,gBAAA,YAAA,CAAA,GAAa,aAAA;AACb,EAAAA,gBAAA,WAAA,CAAA,GAAY,YAAA;AACZ,EAAAA,gBAAA,cAAA,CAAA,GAAe,eAAA;AACf,EAAAA,gBAAA,eAAA,CAAA,GAAgB,gBAAA;AAGhB,EAAAA,gBAAA,eAAA,CAAA,GAAgB,gBAAA;AAChB,EAAAA,gBAAA,gBAAA,CAAA,GAAiB,iBAAA;AACjB,EAAAA,gBAAA,eAAA,CAAA,GAAgB,gBAAA;AAChB,EAAAA,gBAAA,gBAAA,CAAA,GAAiB,iBAAA;AACjB,EAAAA,gBAAA,YAAA,CAAA,GAAa,aAAA;AACb,EAAAA,gBAAA,YAAA,CAAA,GAAa,aAAA;AACb,EAAAA,gBAAA,mBAAA,CAAA,GAAoB,qBAAA;AAGpB,EAAAA,gBAAA,YAAA,CAAA,GAAa,aAAA;AACb,EAAAA,gBAAA,gBAAA,CAAA,GAAiB,iBAAA;AACjB,EAAAA,gBAAA,iBAAA,CAAA,GAAkB,mBAAA;AAClB,EAAAA,gBAAA,WAAA,CAAA,GAAY,YAAA;AACZ,EAAAA,gBAAA,eAAA,CAAA,GAAgB,gBAAA;AAChB,EAAAA,gBAAA,eAAA,CAAA,GAAgB,gBAAA;AAChB,EAAAA,gBAAA,kBAAA,CAAA,GAAmB,oBAAA;AAGnB,EAAAA,gBAAA,UAAA,CAAA,GAAW,WAAA;AACX,EAAAA,gBAAA,WAAA,CAAA,GAAY,YAAA;AACZ,EAAAA,gBAAA,YAAA,CAAA,GAAa,aAAA;AA5BH,EAAA,OAAAA,eAAAA;AAAA,CAAA,EAAA,cAAA,IAAA,EAAA;AAkCL,IAAK,cAAA,qBAAAC,eAAAA,KAAL;AAEL,EAAAA,gBAAA,WAAA,CAAA,GAAY,WAAA;AACZ,EAAAA,gBAAA,SAAA,CAAA,GAAU,SAAA;AACV,EAAAA,gBAAA,YAAA,CAAA,GAAa,YAAA;AAGb,EAAAA,gBAAA,gBAAA,CAAA,GAAiB,iBAAA;AACjB,EAAAA,gBAAA,sBAAA,CAAA,GAAuB,uBAAA;AACvB,EAAAA,gBAAA,uBAAA,CAAA,GAAwB,yBAAA;AAGxB,EAAAA,gBAAA,WAAA,CAAA,GAAY,WAAA;AACZ,EAAAA,gBAAA,SAAA,CAAA,GAAU,SAAA;AAGV,EAAAA,gBAAA,QAAA,CAAA,GAAS,QAAA;AACT,EAAAA,gBAAA,UAAA,CAAA,GAAW,UAAA;AACX,EAAAA,gBAAA,WAAA,CAAA,GAAY,WAAA;AACZ,EAAAA,gBAAA,SAAA,CAAA,GAAU,SAAA;AAGV,EAAAA,gBAAA,UAAA,CAAA,GAAW,UAAA;AACX,EAAAA,gBAAA,mBAAA,CAAA,GAAoB,oBAAA;AAGpB,EAAAA,gBAAA,UAAA,CAAA,GAAW,UAAA;AACX,EAAAA,gBAAA,YAAA,CAAA,GAAa,YAAA;AACb,EAAAA,gBAAA,oBAAA,CAAA,GAAqB,qBAAA;AAGrB,EAAAA,gBAAA,MAAA,CAAA,GAAO,MAAA;AACP,EAAAA,gBAAA,YAAA,CAAA,GAAa,YAAA;AACb,EAAAA,gBAAA,UAAA,CAAA,GAAW,UAAA;AAjCD,EAAA,OAAAA,eAAAA;AAAA,CAAA,EAAA,cAAA,IAAA,EAAA;AAuCL,IAAK,gBAAA,qBAAAC,iBAAAA,KAAL;AACL,EAAAA,kBAAA,SAAA,CAAA,GAAU,SAAA;AACV,EAAAA,kBAAA,QAAA,CAAA,GAAS,QAAA;AACT,EAAAA,kBAAA,eAAA,CAAA,GAAgB,gBAAA;AAChB,EAAAA,kBAAA,YAAA,CAAA,GAAa,YAAA;AACb,EAAAA,kBAAA,UAAA,CAAA,GAAW,UAAA;AACX,EAAAA,kBAAA,cAAA,CAAA,GAAe,cAAA;AACf,EAAAA,kBAAA,qBAAA,CAAA,GAAsB,sBAAA;AACtB,EAAAA,kBAAA,KAAA,CAAA,GAAM,KAAA;AACN,EAAAA,kBAAA,YAAA,CAAA,GAAa,YAAA;AACb,EAAAA,kBAAA,YAAA,CAAA,GAAa,YAAA;AACb,EAAAA,kBAAA,QAAA,CAAA,GAAS,QAAA;AACT,EAAAA,kBAAA,SAAA,CAAA,GAAU,SAAA;AACV,EAAAA,kBAAA,UAAA,CAAA,GAAW,UAAA;AAbD,EAAA,OAAAA,iBAAAA;AAAA,CAAA,EAAA,gBAAA,IAAA,EAAA;AAmBL,IAAK,SAAA,qBAAAC,UAAAA,KAAL;AACL,EAAAA,WAAA,KAAA,CAAA,GAAM,KAAA;AACN,EAAAA,WAAA,SAAA,CAAA,GAAU,SAAA;AACV,EAAAA,WAAA,MAAA,CAAA,GAAO,MAAA;AACP,EAAAA,WAAA,OAAA,CAAA,GAAQ,OAAA;AACR,EAAAA,WAAA,OAAA,CAAA,GAAQ,OAAA;AACR,EAAAA,WAAA,OAAA,CAAA,GAAQ,OAAA;AACR,EAAAA,WAAA,QAAA,CAAA,GAAS,QAAA;AAPC,EAAA,OAAAA,UAAAA;AAAA,CAAA,EAAA,SAAA,IAAA,EAAA;AAaL,IAAK,YAAA,qBAAAC,aAAAA,KAAL;AACL,EAAAA,cAAA,UAAA,CAAA,GAAW,UAAA;AACX,EAAAA,cAAA,cAAA,CAAA,GAAe,cAAA;AACf,EAAAA,cAAA,KAAA,CAAA,GAAM,KAAA;AACN,EAAAA,cAAA,aAAA,CAAA,GAAc,aAAA;AACd,EAAAA,cAAA,aAAA,CAAA,GAAc,cAAA;AACd,EAAAA,cAAA,gBAAA,CAAA,GAAiB,iBAAA;AACjB,EAAAA,cAAA,iBAAA,CAAA,GAAkB,kBAAA;AAClB,EAAAA,cAAA,cAAA,CAAA,GAAe,cAAA;AACf,EAAAA,cAAA,gBAAA,CAAA,GAAiB,iBAAA;AACjB,EAAAA,cAAA,iBAAA,CAAA,GAAkB,kBAAA;AAVR,EAAA,OAAAA,aAAAA;AAAA,CAAA,EAAA,YAAA,IAAA,EAAA;;;ACrIL,IAAK,kBAAA,qBAAAC,mBAAAA,KAAL;AAEL,EAAAA,oBAAA,UAAA,CAAA,GAAW,UAAA;AAGX,EAAAA,oBAAA,iBAAA,CAAA,GAAkB,kBAAA;AAGlB,EAAAA,oBAAA,gBAAA,CAAA,GAAiB,iBAAA;AAGjB,EAAAA,oBAAA,uBAAA,CAAA,GAAwB,yBAAA;AAGxB,EAAAA,oBAAA,qBAAA,CAAA,GAAsB,sBAAA;AAGtB,EAAAA,oBAAA,oBAAA,CAAA,GAAqB,qBAAA;AAGrB,EAAAA,oBAAA,mBAAA,CAAA,GAAoB,qBAAA;AApBV,EAAA,OAAAA,mBAAAA;AAAA,CAAA,EAAA,kBAAA,IAAA,EAAA;;;ACHL,IAAK,uBAAA,qBAAAC,wBAAAA,KAAL;AACL,EAAAA,yBAAA,QAAA,CAAA,GAAS,QAAA;AACT,EAAAA,yBAAA,UAAA,CAAA,GAAW,UAAA;AACX,EAAAA,yBAAA,UAAA,CAAA,GAAW,UAAA;AAHD,EAAA,OAAAA,wBAAAA;AAAA,CAAA,EAAA,uBAAA,IAAA,EAAA;;;ACGL,IAAK,QAAA,qBAAAC,SAAAA,KAAL;AACL,EAAAA,UAAA,UAAA,CAAA,GAAW,UAAA;AACX,EAAAA,UAAA,aAAA,CAAA,GAAc,aAAA;AACd,EAAAA,UAAA,YAAA,CAAA,GAAa,oBAAA;AACb,EAAAA,UAAA,SAAA,CAAA,GAAU,SAAA;AACV,EAAAA,UAAA,KAAA,CAAA,GAAM,KAAA;AACN,EAAAA,UAAA,UAAA,CAAA,GAAW,UAAA;AACX,EAAAA,UAAA,MAAA,CAAA,GAAO,MAAA;AACP,EAAAA,UAAA,YAAA,CAAA,GAAa,YAAA;AACb,EAAAA,UAAA,YAAA,CAAA,GAAa,YAAA;AACb,EAAAA,UAAA,QAAA,CAAA,GAAS,QAAA;AAVC,EAAA,OAAAA,SAAAA;AAAA,CAAA,EAAA,QAAA,IAAA,EAAA;AAgBL,IAAK,WAAA,qBAAAC,YAAAA,KAAL;AACL,EAAAA,aAAA,SAAA,CAAA,GAAU,SAAA;AACV,EAAAA,aAAA,cAAA,CAAA,GAAe,cAAA;AACf,EAAAA,aAAA,YAAA,CAAA,GAAa,YAAA;AACb,EAAAA,aAAA,QAAA,CAAA,GAAS,QAAA;AACT,EAAAA,aAAA,SAAA,CAAA,GAAU,SAAA;AALA,EAAA,OAAAA,YAAAA;AAAA,CAAA,EAAA,WAAA,IAAA,EAAA;;;AChBL,IAAK,0BAAA,qBAAAC,2BAAAA,KAAL;AAEL,EAAAA,4BAAA,YAAA,CAAA,GAAa,YAAA;AAGb,EAAAA,4BAAA,UAAA,CAAA,GAAW,UAAA;AAGX,EAAAA,4BAAA,cAAA,CAAA,GAAe,cAAA;AAGf,EAAAA,4BAAA,UAAA,CAAA,GAAW,UAAA;AAXD,EAAA,OAAAA,2BAAAA;AAAA,CAAA,EAAA,0BAAA,IAAA,EAAA;AAiBL,IAAK,kBAAA,qBAAAC,mBAAAA,KAAL;AAEL,EAAAA,oBAAA,eAAA,CAAA,GAAgB,gBAAA;AAGhB,EAAAA,oBAAA,eAAA,CAAA,GAAgB,gBAAA;AAGhB,EAAAA,oBAAA,kBAAA,CAAA,GAAmB,mBAAA;AAGnB,EAAAA,oBAAA,cAAA,CAAA,GAAe,eAAA;AAGf,EAAAA,oBAAA,YAAA,CAAA,GAAa,YAAA;AAdH,EAAA,OAAAA,mBAAAA;AAAA,CAAA,EAAA,kBAAA,IAAA,EAAA;AAoBL,IAAK,oBAAA,qBAAAC,qBAAAA,KAAL;AACL,EAAAA,sBAAA,QAAA,CAAA,GAAS,SAAA;AACT,EAAAA,sBAAA,MAAA,CAAA,GAAO,MAAA;AACP,EAAAA,sBAAA,MAAA,CAAA,GAAO,MAAA;AACP,EAAAA,sBAAA,KAAA,CAAA,GAAM,KAAA;AACN,EAAAA,sBAAA,KAAA,CAAA,GAAM,KAAA;AACN,EAAAA,sBAAA,KAAA,CAAA,GAAM,KAAA;AACN,EAAAA,sBAAA,MAAA,CAAA,GAAO,MAAA;AACP,EAAAA,sBAAA,cAAA,CAAA,GAAe,eAAA;AARL,EAAA,OAAAA,qBAAAA;AAAA,CAAA,EAAA,oBAAA,IAAA,EAAA;AAcL,IAAK,uBAAA,qBAAAC,wBAAAA,KAAL;AAEL,EAAAA,yBAAA,YAAA,CAAA,GAAa,aAAA;AAGb,EAAAA,yBAAA,UAAA,CAAA,GAAW,UAAA;AAGX,EAAAA,yBAAA,kBAAA,CAAA,GAAmB,mBAAA;AAGnB,EAAAA,yBAAA,kBAAA,CAAA,GAAmB,mBAAA;AAGnB,EAAAA,yBAAA,QAAA,CAAA,GAAS,QAAA;AAdC,EAAA,OAAAA,wBAAAA;AAAA,CAAA,EAAA,uBAAA,IAAA,EAAA;AAoBL,IAAK,uBAAA,qBAAAC,wBAAAA,KAAL;AACL,EAAAA,yBAAA,SAAA,CAAA,GAAU,SAAA;AACV,EAAAA,yBAAA,aAAA,CAAA,GAAc,cAAA;AACd,EAAAA,yBAAA,WAAA,CAAA,GAAY,YAAA;AACZ,EAAAA,yBAAA,YAAA,CAAA,GAAa,YAAA;AACb,EAAAA,yBAAA,SAAA,CAAA,GAAU,SAAA;AACV,EAAAA,yBAAA,cAAA,CAAA,GAAe,cAAA;AACf,EAAAA,yBAAA,MAAA,CAAA,GAAO,MAAA;AAPG,EAAA,OAAAA,wBAAAA;AAAA,CAAA,EAAA,uBAAA,IAAA,EAAA;AAaL,IAAK,gBAAA,qBAAAC,iBAAAA,KAAL;AAEL,EAAAA,kBAAA,eAAA,CAAA,GAAgB,gBAAA;AAGhB,EAAAA,kBAAA,kBAAA,CAAA,GAAmB,mBAAA;AAGnB,EAAAA,kBAAA,kBAAA,CAAA,GAAmB,mBAAA;AAGnB,EAAAA,kBAAA,UAAA,CAAA,GAAW,UAAA;AAGX,EAAAA,kBAAA,gBAAA,CAAA,GAAiB,iBAAA;AAGjB,EAAAA,kBAAA,YAAA,CAAA,GAAa,aAAA;AAGb,EAAAA,kBAAA,QAAA,CAAA,GAAS,QAAA;AApBC,EAAA,OAAAA,iBAAAA;AAAA,CAAA,EAAA,gBAAA,IAAA,EAAA;AA+BL,IAAK,gBAAA,qBAAAC,iBAAAA,KAAL;AACL,EAAAA,kBAAA,sBAAA,CAAA,GAAuB,sBAAA;AACvB,EAAAA,kBAAA,2BAAA,CAAA,GAA4B,2BAAA;AAC5B,EAAAA,kBAAA,iBAAA,CAAA,GAAkB,iBAAA;AAClB,EAAAA,kBAAA,kBAAA,CAAA,GAAmB,kBAAA;AACnB,EAAAA,kBAAA,mBAAA,CAAA,GAAoB,mBAAA;AACpB,EAAAA,kBAAA,oBAAA,CAAA,GAAqB,oBAAA;AACrB,EAAAA,kBAAA,sBAAA,CAAA,GAAuB,sBAAA;AACvB,EAAAA,kBAAA,WAAA,CAAA,GAAY,WAAA;AACZ,EAAAA,kBAAA,kBAAA,CAAA,GAAmB,kBAAA;AATT,EAAA,OAAAA,iBAAAA;AAAA,CAAA,EAAA,gBAAA,IAAA,EAAA;AAYL,IAAM,iBAAA,GAAoB;AAAA,EAC/B,MAAA,EAAQ,gBAAA;AAAA,EACR,QAAA,EAAU,kBAAA;AAAA,EACV,SAAA,EAAW,kBAAA;AAAA,EACX,MAAA,EAAQ;AACV;;;ACnIO,IAAM,sBAAA,GAAyB;AAAA;AAAA,EAEpC,aAAA,EAAe,gBAAA;AAAA;AAAA,EAGf,WAAA,EAAa,aAAA;AAAA;AAAA,EAGb,OAAA,EAAS,SAAA;AAAA;AAAA,EAGT,aAAA,EAAe,eAAA;AAAA;AAAA,EAGf,UAAA,EAAY,YAAA;AAAA;AAAA,EAGZ,MAAA,EAAQ,QAAA;AAAA;AAAA,EAGR,OAAA,EAAS,SAAA;AAAA;AAAA,EAGT,KAAA,EAAO,OAAA;AAAA;AAAA,EAGP,UAAA,EAAY,YAAA;AAAA;AAAA,EAGZ,MAAA,EAAQ,QAAA;AAAA;AAAA,EAGR,OAAA,EAAS,SAAA;AAAA;AAAA,EAGT,QAAA,EAAU,UAAA;AAAA;AAAA,EAGV,OAAA,EAAS,SAAA;AAAA;AAAA,EAGT,aAAA,EAAe;AACjB;AAEO,IAAK,kBAAA,qBAAAC,mBAAAA,KAAL;AACL,EAAAA,oBAAA,YAAA,CAAA,GAAa,aAAA;AACb,EAAAA,oBAAA,eAAA,CAAA,GAAgB,eAAA;AAChB,EAAAA,oBAAA,YAAA,CAAA,GAAa,YAAA;AAHH,EAAA,OAAAA,mBAAAA;AAAA,CAAA,EAAA,kBAAA,IAAA,EAAA;AASL,IAAK,yBAAA,qBAAAC,0BAAAA,KAAL;AACL,EAAAA,2BAAA,iBAAA,CAAA,GAAkB,kBAAA;AAClB,EAAAA,2BAAA,qBAAA,CAAA,GAAsB,uBAAA;AACtB,EAAAA,2BAAA,mBAAA,CAAA,GAAoB,qBAAA;AACpB,EAAAA,2BAAA,qBAAA,CAAA,GAAsB,sBAAA;AACtB,EAAAA,2BAAA,qBAAA,CAAA,GAAsB,sBAAA;AACtB,EAAAA,2BAAA,uBAAA,CAAA,GAAwB,wBAAA;AANd,EAAA,OAAAA,0BAAAA;AAAA,CAAA,EAAA,yBAAA,IAAA,EAAA;AAYL,IAAK,oBAAA,qBAAAC,qBAAAA,KAAL;AACL,EAAAA,sBAAA,gBAAA,CAAA,GAAiB,iBAAA;AACjB,EAAAA,sBAAA,kBAAA,CAAA,GAAmB,mBAAA;AACnB,EAAAA,sBAAA,mBAAA,CAAA,GAAoB,oBAAA;AACpB,EAAAA,sBAAA,eAAA,CAAA,GAAgB,gBAAA;AAChB,EAAAA,sBAAA,mBAAA,CAAA,GAAoB,oBAAA;AACpB,EAAAA,sBAAA,cAAA,CAAA,GAAe,eAAA;AANL,EAAA,OAAAA,qBAAAA;AAAA,CAAA,EAAA,oBAAA,IAAA,EAAA;AAYL,IAAK,2BAAA,qBAAAC,4BAAAA,KAAL;AACL,EAAAA,6BAAA,kBAAA,CAAA,GAAmB,mBAAA;AACnB,EAAAA,6BAAA,kBAAA,CAAA,GAAmB,mBAAA;AACnB,EAAAA,6BAAA,kBAAA,CAAA,GAAmB,mBAAA;AACnB,EAAAA,6BAAA,gBAAA,CAAA,GAAiB,iBAAA;AACjB,EAAAA,6BAAA,iBAAA,CAAA,GAAkB,kBAAA;AALR,EAAA,OAAAA,4BAAAA;AAAA,CAAA,EAAA,2BAAA,IAAA,EAAA;AAaL,IAAM,uBAAA,GAA0B;AAAA,EACrC,OAAA,EAAS,oBAAA;AAAA,EACT,sBAAA,EAAwB,2BAAA;AAAA;AAAA,EAGxB,wBAAA,EAA0B,qCAAA;AAAA,EAC1B,oBAAA,EAAsB,iCAAA;AAAA,EACtB,4BAAA,EAA8B,yCAAA;AAAA;AAAA,EAG9B,wBAAA,EAA0B,qCAAA;AAAA,EAC1B,sBAAA,EAAwB,mCAAA;AAAA,EACxB,wBAAA,EAA0B,qCAAA;AAAA;AAAA,EAG1B,sBAAA,EAAwB,mCAAA;AAAA,EACxB,sBAAA,EAAwB,mCAAA;AAAA,EACxB,yBAAA,EAA2B,sCAAA;AAAA;AAAA,EAG3B,sBAAA,EAAwB,mCAAA;AAAA,EACxB,oBAAA,EAAsB,iCAAA;AAAA,EACtB,6BAAA,EAA+B,0CAAA;AAAA;AAAA,EAG/B,YAAA,EAAc,yBAAA;AAAA,EACd,wBAAA,EAA0B,qCAAA;AAAA,EAC1B,0BAAA,EAA4B,uCAAA;AAAA,EAE5B,gBAAA,EAAkB,6BAAA;AAAA,EAClB,yBAAA,EAA2B,sCAAA;AAAA,EAC3B,sBAAA,EAAwB,mCAAA;AAAA,EAExB,6BAAA,EAA+B,0CAAA;AAAA,EAC/B,kCAAA,EAAoC,+CAAA;AAAA,EACpC,gCAAA,EAAkC,6CAAA;AAAA,EAClC,4BAAA,EAA8B;AAChC;AAWO,IAAM,2BAAA,GAA8B;AAAA,EACzC,WAAA,EAAa,4BAAA;AAAA,EACb,cAAA,EAAgB,+BAAA;AAAA,EAChB,cAAA,EAAgB,+BAAA;AAAA,EAChB,WAAA,EAAa,4BAAA;AAAA,EACb,aAAA,EAAe;AACjB;;;AClJO,IAAK,kBAAA,qBAAAC,mBAAAA,KAAL;AACL,EAAAA,oBAAA,SAAA,CAAA,GAAU,SAAA;AACV,EAAAA,oBAAA,WAAA,CAAA,GAAY,WAAA;AACZ,EAAAA,oBAAA,QAAA,CAAA,GAAS,QAAA;AAHC,EAAA,OAAAA,mBAAAA;AAAA,CAAA,EAAA,kBAAA,IAAA,EAAA;AAML,IAAM,yBAAA,GAA8C;AAAA,EAAA,WAAA;AAAA,EAAA,SAAA;AAAA,EAAA,UAAA;AAAA,EAAA,oBAAA;AAAA,EAAA,UAAA;AAM3D;;;ACbO,IAAK,UAAA,qBAAAC,WAAAA,KAAL;AACL,EAAAA,YAAA,SAAA,CAAA,GAAU,SAAA;AACV,EAAAA,YAAA,UAAA,CAAA,GAAW,UAAA;AACX,EAAAA,YAAA,UAAA,CAAA,GAAW,UAAA;AACX,EAAAA,YAAA,SAAA,CAAA,GAAU,SAAA;AAJA,EAAA,OAAAA,WAAAA;AAAA,CAAA,EAAA,UAAA,IAAA,EAAA;AAQL,IAAK,QAAA,qBAAAC,SAAAA,KAAL;AACL,EAAAA,UAAA,OAAA,CAAA,GAAQ,QAAA;AACR,EAAAA,UAAA,OAAA,CAAA,GAAQ,QAAA;AACR,EAAAA,UAAA,OAAA,CAAA,GAAQ,QAAA;AACR,EAAAA,UAAA,OAAA,CAAA,GAAQ,QAAA;AAJE,EAAA,OAAAA,SAAAA;AAAA,CAAA,EAAA,QAAA,IAAA,EAAA;AAQL,IAAK,YAAA,qBAAAC,aAAAA,KAAL;AACL,EAAAA,cAAA,gBAAA,CAAA,GAAiB,iBAAA;AACjB,EAAAA,cAAA,QAAA,CAAA,GAAS,QAAA;AACT,EAAAA,cAAA,QAAA,CAAA,GAAS,QAAA;AACT,EAAAA,cAAA,OAAA,CAAA,GAAQ,OAAA;AACR,EAAAA,cAAA,QAAA,CAAA,GAAS,QAAA;AALC,EAAA,OAAAA,aAAAA;AAAA,CAAA,EAAA,YAAA,IAAA,EAAA;AAQL,IAAK,cAAA,qBAAAC,eAAAA,KAAL;AACL,EAAAA,gBAAA,SAAA,CAAA,GAAU,SAAA;AACV,EAAAA,gBAAA,WAAA,CAAA,GAAY,WAAA;AACZ,EAAAA,gBAAA,UAAA,CAAA,GAAW,UAAA;AACX,EAAAA,gBAAA,QAAA,CAAA,GAAS,QAAA;AAJC,EAAA,OAAAA,eAAAA;AAAA,CAAA,EAAA,cAAA,IAAA,EAAA;AAOL,IAAK,iBAAA,qBAAAC,kBAAAA,KAAL;AACL,EAAAA,mBAAA,SAAA,CAAA,GAAU,SAAA;AACV,EAAAA,mBAAA,QAAA,CAAA,GAAS,QAAA;AAFC,EAAA,OAAAA,kBAAAA;AAAA,CAAA,EAAA,iBAAA,IAAA,EAAA;AAQL,IAAK,eAAA,qBAAAC,gBAAAA,KAAL;AACL,EAAAA,iBAAA,YAAA,CAAA,GAAa,YAAA;AACb,EAAAA,iBAAA,SAAA,CAAA,GAAU,SAAA;AACV,EAAAA,iBAAA,WAAA,CAAA,GAAY,YAAA;AACZ,EAAAA,iBAAA,kBAAA,CAAA,GAAmB,mBAAA;AAJT,EAAA,OAAAA,gBAAAA;AAAA,CAAA,EAAA,eAAA,IAAA,EAAA;;;AC5BL,IAAM,sBAAA,GAAyB;AAAA;AAAA,EAEpC,OAAA,EAAS,SAAA;AAAA;AAAA,EAGT,QAAA,EAAU,UAAA;AAAA;AAAA,EAGV,UAAA,EAAY,WAAA;AAAA;AAAA,EAGZ,QAAA,EAAU,SAAA;AAAA;AAAA,EAGV,SAAA,EAAW;AACb;AAMO,IAAM,qBAAA,GAAwB;AAAA,EACnC,KAAA,EAAO,OAAA;AAAA,EACP,GAAA,EAAK,KAAA;AAAA,EACL,IAAA,EAAM;AACR;AAMO,IAAM,uBAAA,GAA0B;AAAA;AAAA,EAErC,aAAA,EAAe,eAAA;AAAA;AAAA,EAGf,SAAA,EAAW,WAAA;AAAA;AAAA,EAGX,MAAA,EAAQ,QAAA;AAAA;AAAA,EAGR,MAAA,EAAQ,QAAA;AAAA;AAAA,EAGR,WAAA,EAAa;AACf;AAKO,IAAK,gBAAA,qBAAAC,iBAAAA,KAAL;AACL,EAAAA,kBAAA,YAAA,CAAA,GAAa,aAAA;AACb,EAAAA,kBAAA,UAAA,CAAA,GAAW,WAAA;AACX,EAAAA,kBAAA,YAAA,CAAA,GAAa,aAAA;AACb,EAAAA,kBAAA,QAAA,CAAA,GAAS,QAAA;AAJC,EAAA,OAAAA,iBAAAA;AAAA,CAAA,EAAA,gBAAA,IAAA,EAAA;AAUL,IAAK,kBAAA,qBAAAC,mBAAAA,KAAL;AAEL,EAAAA,oBAAA,WAAA,CAAA,GAAY,WAAA;AACZ,EAAAA,oBAAA,SAAA,CAAA,GAAU,SAAA;AACV,EAAAA,oBAAA,UAAA,CAAA,GAAW,UAAA;AACX,EAAAA,oBAAA,SAAA,CAAA,GAAU,SAAA;AAGV,EAAAA,oBAAA,QAAA,CAAA,GAAS,QAAA;AACT,EAAAA,oBAAA,SAAA,CAAA,GAAU,SAAA;AAGV,EAAAA,oBAAA,YAAA,CAAA,GAAa,aAAA;AACb,EAAAA,oBAAA,cAAA,CAAA,GAAe,cAAA;AAGf,EAAAA,oBAAA,cAAA,CAAA,GAAe,eAAA;AACf,EAAAA,oBAAA,WAAA,CAAA,GAAY,YAAA;AAGZ,EAAAA,oBAAA,eAAA,CAAA,GAAgB,gBAAA;AAChB,EAAAA,oBAAA,YAAA,CAAA,GAAa,aAAA;AAGb,EAAAA,oBAAA,SAAA,CAAA,GAAU,SAAA;AAxBA,EAAA,OAAAA,mBAAAA;AAAA,CAAA,EAAA,kBAAA,IAAA,EAAA;AA8BL,IAAK,yBAAA,qBAAAC,0BAAAA,KAAL;AAEL,EAAAA,2BAAA,YAAA,CAAA,GAAa,aAAA;AAEb,EAAAA,2BAAA,YAAA,CAAA,GAAa,aAAA;AAEb,EAAAA,2BAAA,MAAA,CAAA,GAAO,MAAA;AANG,EAAA,OAAAA,0BAAAA;AAAA,CAAA,EAAA,yBAAA,IAAA,EAAA;AAYL,IAAM,UAAA,GAAa;AAAA;AAAA,EAExB,GAAA,EAAK,iBAAA;AAAA,EACL,GAAA,EAAK,oBAAA;AAAA,EACL,IAAA,EAAM,yEAAA;AAAA,EACN,GAAA,EAAK,0BAAA;AAAA,EACL,IAAA,EAAM,mEAAA;AAAA,EACN,GAAA,EAAK,+BAAA;AAAA,EACL,IAAA,EAAM,2EAAA;AAAA,EACN,GAAA,EAAK,YAAA;AAAA,EACL,GAAA,EAAK,UAAA;AAAA;AAAA,EAGL,GAAA,EAAK,WAAA;AAAA,EACL,GAAA,EAAK,YAAA;AAAA,EACL,IAAA,EAAM,YAAA;AAAA,EACN,GAAA,EAAK,WAAA;AAAA,EACL,GAAA,EAAK,eAAA;AAAA,EACL,IAAA,EAAM,YAAA;AAAA;AAAA,EAGN,GAAA,EAAK,iBAAA;AAAA,EACL,GAAA,EAAK,8BAAA;AAAA,EACL,GAAA,EAAK,mBAAA;AAAA,EACL,IAAA,EAAM,kBAAA;AAAA;AAAA,EAGN,IAAA,EAAM,kBAAA;AAAA,EACN,GAAA,EAAK;AACP;AAKO,IAAM,eAAA,GAAkB;AAAA;AAAA,EAE7B,GAAA,EAAK,MAAA;AAAA,EACL,GAAA,EAAK,MAAA;AAAA,EACL,IAAA,EAAM,OAAA;AAAA,EACN,GAAA,EAAK,MAAA;AAAA,EACL,IAAA,EAAM,OAAA;AAAA,EACN,GAAA,EAAK,MAAA;AAAA,EACL,IAAA,EAAM,OAAA;AAAA,EACN,GAAA,EAAK,MAAA;AAAA,EACL,GAAA,EAAK,MAAA;AAAA;AAAA,EAGL,GAAA,EAAK,MAAA;AAAA,EACL,GAAA,EAAK,MAAA;AAAA,EACL,IAAA,EAAM,OAAA;AAAA,EACN,GAAA,EAAK,MAAA;AAAA,EACL,GAAA,EAAK,MAAA;AAAA,EACL,IAAA,EAAM,OAAA;AAAA;AAAA,EAGN,GAAA,EAAK,MAAA;AAAA,EACL,GAAA,EAAK,MAAA;AAAA,EACL,GAAA,EAAK,MAAA;AAAA,EACL,EAAA,EAAI,KAAA;AAAA,EACJ,IAAA,EAAM,OAAA;AAAA;AAAA,EAGN,IAAA,EAAM,OAAA;AAAA,EACN,GAAA,EAAK;AACP;ACtKA,IAAM,gBAAA,GAAmB,GAAA;AACzB,IAAM,kBAAA,GAAqB,GAAA;AAC3B,IAAM,sBAAA,GAAyB,GAAA;AAC/B,IAAM,uBAAA,GAA0B,GAAA;AAQzB,IAAM,cAAcjD,KAAAA,CACxB,MAAA,EAAO,CACP,KAAA,CAAM,8BAA8B,CAAA,CACpC,GAAA,CAAI,gBAAA,EAAkB,8CAA8C,EACpE,SAAA,CAAU,CAAA,GAAA,KAAO,IAAI,IAAA,EAAK,CAAE,aAAa;AAQrC,IAAM,WAAA,GAAcA,MACxB,MAAA,EAAO,CACP,MAAM,oBAAA,EAAsB,8CAA8C,CAAA,CAC1E,QAAA,CAAS,8BAA8B;AAOnC,IAAM,YAAA,GAAeA,KAAAA,CACzB,MAAA,EAAO,CACP,GAAA,CAAI,GAAG,qBAAqB,CAAA,CAC5B,GAAA,CAAI,kBAAA,EAAoB,wCAAwC;AAQ5D,IAAM,mBAAmBA,KAAAA,CAC7B,MAAA,GACA,GAAA,CAAI,CAAA,EAAG,yBAAyB,CAAA,CAChC,KAAA;AAAA,EACC,eAAA;AAAA,EACA;AACF,CAAA,CACC,GAAA,CAAI,wBAAwB,4CAA4C;AAQpE,IAAM,YAAA,GAAeA,MACzB,MAAA,EAAO,CACP,MAAM,wBAAA,EAA0B,gDAAgD,CAAA,CAChF,QAAA,CAAS,4BAA4B;AAQjC,IAAM,0BAAA,GAA6BA,MACvC,IAAA,CAAK;AAAA,EACJ,uBAAA,CAAwB,aAAA;AAAA,EACxB,uBAAA,CAAwB,SAAA;AAAA,EACxB,uBAAA,CAAwB,MAAA;AAAA,EACxB,uBAAA,CAAwB,MAAA;AAAA,EACxB,uBAAA,CAAwB;AAC1B,CAAU,EACT,OAAA,CAAQ,uBAAA,CAAwB,aAAa,CAAA,CAC7C,SAAS,2DAA2D;AAKhE,IAAM,sBAAsBA,KAAAA,CAAE,IAAA,CAAK,CAAC,MAAA,EAAQ,QAAA,EAAU,KAAK,CAAC;AAO5D,IAAM,mBAAA,GAAsBA,MAChC,MAAA,EAAO,CACP,KAAK,wCAAwC,CAAA,CAC7C,SAAS,wBAAwB;AAQ7B,IAAM,kBAAA,GAAqBA,KAAAA,CAAE,MAAA,CAAOA,KAAAA,CAAE,MAAA,IAAUA,KAAAA,CAAE,OAAA,EAAS,CAAA,CAAE,QAAA;AAO7D,IAAM,iBAAA,GAAoBA,KAAAA,CAC9B,MAAA,EAAO,CACP,GAAA,CAAI,GAAG,0BAA0B,CAAA,CACjC,GAAA,CAAI,uBAAA,EAAyB,6CAA6C;AC3GtE,IAAM,wBAAA,GAA2BA,MAAE,MAAA,CAAO;AAAA,EAC/C,OAAA,EAASA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC7B,SAAA,EAAWA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC/B,EAAA,EAAIA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EACxB,IAAA,EAAMA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC1B,WAAA,EAAaA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EACjC,MAAA,EAAQA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA;AACrB,CAAC;AAKM,IAAM,sBAAA,GAAyBA,MAAE,MAAA,CAAO;AAAA,EAC7C,OAAA,EAASA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC7B,SAAA,EAAWA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC/B,EAAA,EAAIA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EACxB,IAAA,EAAMA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC1B,WAAA,EAAaA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EACjC,SAAA,EAAWA,KAAAA,CAAE,OAAA,EAAQ,CAAE,QAAA;AACzB,CAAC;AAKM,IAAM,sBAAA,GAAyBA,MAAE,MAAA,CAAO;AAAA,EAC7C,eAAA,EAAiBA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EACrC,QAAA,EAAUA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA;AACvB,CAAC;AAKM,IAAM,2BAAA,GAA8BA,MACxC,MAAA,CAAO;AAAA,EACN,SAAA,EAAWA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC/B,EAAA,EAAIA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EACxB,MAAA,EAAQA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC5B,MAAA,EAAQA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC5B,MAAA,EAAQA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC5B,MAAA,EAAQ,yBAAyB,QAAA,EAAS;AAAA,EAC1C,KAAA,EAAO,uBAAuB,QAAA,EAAS;AAAA,EACvC,YAAA,EAAcA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAClC,kBAAA,EAAoBA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EACxC,SAAA,EAAWA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC/B,KAAA,EAAO,uBAAuB,QAAA,EAAS;AAAA,EACvC,QAAA,EAAUA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC9B,WAAA,EAAaA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EACjC,aAAA,EAAeA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EACnC,QAAA,EAAUA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC9B,mBAAA,EAAqBA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EACzC,YAAA,EAAcA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA;AAC3B,CAAC,EACA,KAAA;AAKI,IAAM,4BAAA,GAA+BA,MAAE,MAAA,CAAO;AAAA,EACnD,OAAA,EAASA,KAAAA,CAAE,KAAA,CAAM,2BAA2B;AAC9C,CAAC;AASM,IAAM,wBAAA,GAA2BA,MACrC,MAAA,CAAO;AAAA,EACN,WAAA,EAAaA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EACjC,WAAA,EAAaA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EACjC,UAAA,EAAYA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAChC,IAAA,EAAMA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC1B,QAAA,EAAUA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC9B,SAAA,EAAWA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA;AACxB,CAAC,EACA,KAAA;AAKI,IAAM,0BAAA,GAA6BA,MACvC,MAAA,CAAO;AAAA,EACN,SAAA,EAAWA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC/B,EAAA,EAAIA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EACxB,SAAA,EAAWA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC/B,YAAA,EAAcA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA;AAC3B,CAAC,EACA,KAAA;AAKI,IAAM,0BAAA,GAA6BA,MACvC,MAAA,CAAO;AAAA,EACN,SAAA,EAAWA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC/B,MAAA,EAAQA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC5B,SAAA,EAAWA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC/B,MAAA,EAAQA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC5B,MAAA,EAAQA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC5B,gBAAA,EAAkBA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA;AAAA,EACtC,OAAA,EAASA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC7B,YAAA,EAAcA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAClC,GAAA,EAAKA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA;AAAA,EACzB,aAAA,EAAeA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EACnC,QAAA,EAAUA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC9B,mBAAA,EAAqBA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EACzC,YAAA,EAAcA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAClC,WAAA,EAAa,yBAAyB,QAAA,EAAS;AAAA,EAC/C,aAAA,EAAe,2BAA2B,QAAA;AAC5C,CAAC,EACA,KAAA;AAMI,IAAM,4BAAA,GAA+BA,MACzC,MAAA,CAAO;AAAA,EACN,SAAA,EAAWA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC/B,MAAA,EAAQA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC5B,SAAA,EAAWA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC/B,MAAA,EAAQA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC5B,MAAA,EAAQA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC5B,gBAAA,EAAkBA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EACtC,OAAA,EAASA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC7B,YAAA,EAAcA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAClC,GAAA,EAAKA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EACzB,aAAA,EAAeA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EACnC,QAAA,EAAUA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC9B,mBAAA,EAAqBA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EACzC,YAAA,EAAcA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAClC,WAAA,EAAa,yBAAyB,QAAA,EAAS;AAAA,EAC/C,aAAA,EAAe,2BAA2B,QAAA;AAC5C,CAAC,EACA,KAAA;AASI,IAAM,mBAAA,GAAsBA,MAChC,MAAA,CAAO;AAAA,EACN,KAAA,EAAOA,KAAAA,CAAE,MAAA,EAAO,CAAE,KAAA,EAAM;AAAA,EACxB,SAAA,EAAWA,MAAE,MAAA,EAAO;AAAA,EACpB,KAAA,EAAOA,MAAE,IAAA,CAAK;AAAA,IACZ,WAAA;AAAA,IACA,SAAA;AAAA,IACA,WAAA;AAAA,IACA,UAAA;AAAA,IACA,QAAA;AAAA,IACA,MAAA;AAAA,IACA,OAAA;AAAA,IACA,aAAA;AAAA,IACA,aAAA;AAAA,IACA,mBAAA;AAAA,IACA;AAAA,GACD,CAAA;AAAA,EACD,WAAA,EAAaA,MAAE,MAAA,EAAO;AAAA,EACtB,aAAA,EAAeA,MAAE,MAAA,EAAO;AAAA;AAAA,EAGxB,eAAA,EAAiBA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EACrC,YAAA,EAAcA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAClC,QAAA,EAAUA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA;AAAA,EAG9B,GAAA,EAAKA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA;AAAA,EACzB,MAAA,EAAQA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA;AAAA,EAC5B,MAAA,EAAQA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA;AAAA,EAC5B,QAAA,EAAUA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA;AAAA,EAC9B,SAAA,EAAWA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA;AAAA,EAC/B,EAAA,EAAIA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA;AAAA;AAAA,EAGxB,YAAA,EAAcA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA;AAAS;AACpC,CAAC,EACA,KAAA;AAKI,IAAM,qBAAA,GAAwBA,KAAAA,CAAE,KAAA,CAAM,mBAAmB;;;ACzMzD,IAAM,gBAAA,GAAmB;AAAA,EAC9B,KAAA,EAAO,CAAC,KAAA,EAAO,MAAA,EAAQ,KAAA,EAAO,OAAO,MAAA,EAAQ,KAAA,EAAO,KAAA,EAAO,KAAA,EAAO,MAAM,CAAA;AAAA,EACxE,KAAA,EAAO,CAAC,KAAA,EAAO,MAAA,EAAQ,OAAO,KAAA,EAAO,KAAA,EAAO,KAAA,EAAO,KAAA,EAAO,KAAK,CAAA;AAAA,EAC/D,KAAA,EAAO,CAAC,KAAA,EAAO,KAAA,EAAO,OAAO,KAAA,EAAO,MAAA,EAAQ,OAAO,KAAK;AAC1D;AAKO,IAAM,mBAAA,GAAsB,CAAC,QAAA,EAAU,QAAA,EAAU,QAAQ;AAKzD,IAAM,MAAA,GAAS;AAAA;AAAA,EAEpB,KAAA,EAAO,SAAA;AAAA;AAAA,EAGP,KAAA,EAAO,UAAA;AAAA,EACP,GAAA,EAAK,UAAA;AAAA,EACL,KAAA,EAAO,UAAA;AAAA,EACP,MAAA,EAAQ,UAAA;AAAA,EACR,IAAA,EAAM,UAAA;AAAA,EACN,OAAA,EAAS,UAAA;AAAA,EACT,IAAA,EAAM,UAAA;AAAA,EACN,KAAA,EAAO,UAAA;AAAA,EACP,IAAA,EAAM,UAAA;AAAA;AAAA,EAGN,SAAA,EAAW,UAAA;AAAA,EACX,WAAA,EAAa,UAAA;AAAA,EACb,YAAA,EAAc,UAAA;AAAA,EACd,UAAA,EAAY,UAAA;AAAA,EACZ,aAAA,EAAe,UAAA;AAAA,EACf,UAAA,EAAY,UAAA;AAAA,EACZ,WAAA,EAAa,UAAA;AAAA;AAAA,EAGb,KAAA,EAAO,UAAA;AAAA,EACP,OAAA,EAAS,UAAA;AAAA,EACT,QAAA,EAAU,UAAA;AAAA,EACV,MAAA,EAAQ,UAAA;AAAA,EACR,SAAA,EAAW,UAAA;AAAA,EACX,MAAA,EAAQ,UAAA;AAAA,EACR,OAAA,EAAS,UAAA;AAAA;AAAA,EAGT,IAAA,EAAM,SAAA;AAAA,EACN,GAAA,EAAK,SAAA;AAAA,EACL,MAAA,EAAQ,SAAA;AAAA,EACR,SAAA,EAAW,SAAA;AAAA,EACX,KAAA,EAAO,SAAA;AAAA,EACP,OAAA,EAAS,SAAA;AAAA,EACT,MAAA,EAAQ,SAAA;AAAA,EACR,aAAA,EAAe;AACjB;AAMO,IAAK,gBAAA,qBAAAkD,iBAAAA,KAAL;AAEL,EAAAA,kBAAA,SAAA,CAAA,GAAU,KAAA;AAEV,EAAAA,kBAAA,KAAA,CAAA,GAAM,KAAA;AAEN,EAAAA,kBAAA,SAAA,CAAA,GAAU,SAAA;AAEV,EAAAA,kBAAA,aAAA,CAAA,GAAc,KAAA;AAEd,EAAAA,kBAAA,OAAA,CAAA,GAAQ,KAAA;AAER,EAAAA,kBAAA,OAAA,CAAA,GAAQ,OAAA;AAER,EAAAA,kBAAA,SAAA,CAAA,GAAU,MAAA;AAdA,EAAA,OAAAA,iBAAAA;AAAA,CAAA,EAAA,gBAAA,IAAA,EAAA;;;ACilBL,IAAM,qBAAA,GAAwB;AAAA;AAAA,EAEnC,0BAAA,EAA4B,4BAAA;AAAA,EAC5B,uBAAA,EAAyB,yBAAA;AAAA,EACzB,uBAAA,EAAyB,yBAAA;AAAA;AAAA,EAGzB,iBAAA,EAAmB,mBAAA;AAAA,EACnB,cAAA,EAAgB,gBAAA;AAAA,EAChB,uBAAA,EAAyB,yBAAA;AAAA,EACzB,uBAAA,EAAyB,yBAAA;AAAA;AAAA,EAGzB,SAAA,EAAW,WAAA;AAAA,EACX,UAAA,EAAY,YAAA;AAAA,EACZ,SAAA,EAAW,WAAA;AAAA,EACX,YAAA,EAAc,cAAA;AAAA;AAAA,EAGd,oBAAA,EAAsB,sBAAA;AAAA,EACtB,iBAAA,EAAmB,mBAAA;AAAA,EACnB,iBAAA,EAAmB,mBAAA;AAAA;AAAA,EAGnB,oBAAA,EAAsB,sBAAA;AAAA,EACtB,iBAAA,EAAmB,mBAAA;AAAA,EACnB,oBAAA,EAAsB;AACxB;AAKO,IAAM,mBAAA,GAAsB;AAAA,EACjC,cAAA,EAAgB,gBAAA;AAAA,EAChB,cAAA,EAAgB,gBAAA;AAAA,EAChB,cAAA,EAAgB,gBAAA;AAAA,EAChB,WAAA,EAAa,aAAA;AAAA,EACb,YAAA,EAAc,cAAA;AAAA,EACd,mBAAA,EAAqB,qBAAA;AAAA,EACrB,mBAAA,EAAqB,qBAAA;AAAA,EACrB,mBAAA,EAAqB,qBAAA;AAAA,EACrB,QAAA,EAAU,UAAA;AAAA,EACV,SAAA,EAAW,WAAA;AAAA,EACX,SAAA,EAAW,WAAA;AAAA,EACX,WAAA,EAAa;AACf;;;ACvrBO,IAAM,gBAAA,GAAmB;AAAA,EAC9B,OAAA,EAAS,SAAA;AAAA,EACT,OAAA,EAAS,SAAA;AAAA,EACT,MAAA,EAAQ,QAAA;AAAA,EACR,KAAA,EAAO,OAAA;AAAA,EACP,MAAA,EAAQ,QAAA;AAAA,EACR,WAAA,EAAa,aAAA;AAAA,EACb,MAAA,EAAQ,QAAA;AAAA,EACR,KAAA,EAAO,OAAA;AAAA,EACP,OAAA,EAAS,SAAA;AAAA,EACT,OAAA,EAAS,SAAA;AAAA,EACT,YAAA,EAAc,cAAA;AAAA,EACd,aAAA,EAAe;AACjB;AAKO,IAAM,aAAA,GAAgB;AAAA,EAC3B,OAAA,EAAS,iBAAA;AAAA,EACT,QAAA,EAAU,kBAAA;AAAA,EACV,QAAA,EAAU,kBAAA;AAAA,EACV,QAAA,EAAU,kBAAA;AAAA,EACV,OAAA,EAAS,iBAAA;AAAA,EACT,MAAA,EAAQ,gBAAA;AAAA,EACR,QAAA,EAAU,kBAAA;AAAA,EACV,SAAA,EAAW,mBAAA;AAAA,EACX,MAAA,EAAQ,gBAAA;AAAA,EACR,SAAA,EAAW,mBAAA;AAAA,EACX,UAAA,EAAY,oBAAA;AAAA;AAAA,EAEZ,GAAA,EAAK;AACP;AAKO,IAAM,cAAA,GAAiB;AAAA,EAC5B,cAAA,EAAgB,yBAAA;AAAA,EAChB,WAAA,EAAa,qBAAA;AAAA,EACb,eAAA,EAAiB,yBAAA;AAAA,EACjB,eAAA,EAAiB,yBAAA;AAAA,EACjB,eAAA,EAAiB,yBAAA;AAAA,EACjB,cAAA,EAAgB,wBAAA;AAAA,EAChB,cAAA,EAAgB,wBAAA;AAAA,EAChB,aAAA,EAAe,uBAAA;AAAA,EACf,cAAA,EAAgB,wBAAA;AAAA,EAChB,aAAA,EAAe,uBAAA;AAAA;AAAA,EAEf,GAAA,EAAK;AACP;AAKO,IAAM,YAAA,GAAe;AAAA,EAC1B,aAAA,EAAe,gBAAA;AAAA,EACf,gBAAA,EAAkB,mBAAA;AAAA,EAClB,oBAAA,EAAsB,uBAAA;AAAA,EACtB,mBAAA,EAAqB,sBAAA;AAAA,EACrB,gBAAA,EAAkB,mBAAA;AAAA,EAClB,YAAA,EAAc,eAAA;AAAA,EACd,YAAA,EAAc,eAAA;AAAA,EACd,aAAA,EAAe,gBAAA;AAAA,EACf,cAAA,EAAgB,iBAAA;AAAA,EAChB,WAAA,EAAa,cAAA;AAAA,EACb,aAAA,EAAe,gBAAA;AAAA,EACf,WAAA,EAAa,cAAA;AAAA,EACb,cAAA,EAAgB,iBAAA;AAAA,EAChB,cAAA,EAAgB,iBAAA;AAAA,EAChB,eAAA,EAAiB,kBAAA;AAAA,EACjB,sBAAA,EAAwB,yBAAA;AAAA,EACxB,aAAA,EAAe,gBAAA;AAAA,EACf,aAAA,EAAe,gBAAA;AAAA;AAAA,EAEf,GAAA,EAAK;AACP;AA0BO,IAAM,cAAA,GAAiB;AAAA,EAC5B,MAAA,EAAQ,QAAA;AAAA;AAAA,EACR,MAAA,EAAQ,QAAA;AAAA;AAAA,EACR,MAAA,EAAQ,QAAA;AAAA;AAAA,EACR,SAAA,EAAW,SAAA;AAAA;AAAA,EACX,OAAA,EAAS;AAAA;AACX;AAMO,IAAM,YAAA,GAAe;AAAA,EAC1B,cAAA,CAAe,MAAA;AAAA,EACf,cAAA,CAAe,MAAA;AAAA,EACf,cAAA,CAAe,MAAA;AAAA,EACf,cAAA,CAAe;AACjB;AAMO,IAAM,2BAAA,GAA8B,CAAC,GAAG,YAAA,EAAc,WAAoB;AAK1E,IAAM,YAAA,GAAe;AAAA,EAC1B,eAAA,EAAiB,uBAAA;AAAA,EACjB,aAAA,EAAe,qBAAA;AAAA,EACf,eAAA,EAAiB,uBAAA;AAAA,EACjB,gBAAA,EAAkB,wBAAA;AAAA,EAClB,qBAAA,EAAuB,6BAAA;AAAA,EACvB,oBAAA,EAAsB,4BAAA;AAAA,EACtB,UAAA,EAAY,YAAA;AAAA,EACZ,kBAAA,EAAoB,0BAAA;AAAA,EACpB,gBAAA,EAAkB,wBAAA;AAAA,EAClB,cAAA,EAAgB,sBAAA;AAAA,EAChB,eAAA,EAAiB,uBAAA;AAAA,EACjB,eAAA,EAAiB,uBAAA;AAAA;AAAA,EAEjB,GAAA,EAAK;AACP;AAKO,IAAM,qBAAA,GAAwB;AAAA,EACnC,MAAA,EAAQ,QAAA;AAAA,EACR,iBAAA,EAAmB,iBAAA;AAAA,EACnB,aAAA,EAAe,cAAA;AAAA,EACf,MAAA,EAAQ,QAAA;AAAA,EACR,WAAA,EAAa,aAAA;AAAA,EACb,MAAA,EAAQ,QAAA;AAAA,EACR,aAAA,EAAe,cAAA;AAAA,EACf,QAAA,EAAU;AACZ;AAKO,IAAM,aAAA,GAAgB;AAAA,EAC3B,cAAA,EAAgB,uBAAA;AAAA,EAChB,YAAA,EAAc,qBAAA;AAAA,EACd,sBAAA,EAAwB,+BAAA;AAAA,EACxB,cAAA,EAAgB,uBAAA;AAAA;AAAA,EAEhB,GAAA,EAAK;AACP;AAKO,IAAM,kBAAA,GAAqB;AAAA,EAChC,aAAA,EAAe,2BAAA;AAAA,EACf,gBAAA,EAAkB,8BAAA;AAAA,EAClB,KAAA,EAAO,mBAAA;AAAA,EACP,kBAAA,EAAoB,gCAAA;AAAA,EACpB,oBAAA,EAAsB,kCAAA;AAAA,EACtB,eAAA,EAAiB,6BAAA;AAAA;AAAA,EAEjB,GAAA,EAAK;AACP;AAKO,IAAM,aAAA,GAAgB;AAAA,EAC3B,QAAA,EAAU,iBAAA;AAAA,EACV,KAAA,EAAO,cAAA;AAAA,EACP,OAAA,EAAS,gBAAA;AAAA;AAAA,EAET,GAAA,EAAK;AACP;AAKO,IAAM,YAAA,GAAe;AAAA,EAC1B,GAAA,EAAK,WAAA;AAAA,EACL,IAAA,EAAM,YAAA;AAAA,EACN,UAAA,EAAY,kBAAA;AAAA;AAAA,EAEZ,GAAA,EAAK;AACP;AAKO,IAAM,UAAA,GAAa;AAAA,EACxB,GAAG,aAAA;AAAA,EACH,GAAG,cAAA;AAAA,EACH,GAAG,YAAA;AAAA,EACH,GAAG,YAAA;AAAA,EACH,GAAG,aAAA;AAAA,EACH,GAAG,kBAAA;AAAA,EACH,GAAG,aAAA;AAAA,EACH,GAAG;AACL;;;ACnNO,IAAM,cAAA,GAAiB;AAAA;AAAA,EAE5B,QAAA,EAAU,CAAA;AAAA;AAAA,EAEV,IAAA,EAAM,CAAA;AAAA;AAAA,EAEN,MAAA,EAAQ,CAAA;AAAA;AAAA,EAER,MAAA,EAAQ,CAAA;AAAA;AAAA,EAER,GAAA,EAAK,CAAA;AAAA;AAAA,EAEL,IAAA,EAAM;AACR;;;AC1BO,IAAM,kBAAA,GAA0C;AAAA,EACrD,WAAA,EAAa,SAAA;AAAA,EACb,KAAA,EAAO,YAAA;AAAA,EACP,KAAA,EAAO,cAAA;AAAA,EACP,YAAA,EAAc;AAChB;AAKO,IAAM,mBAAA,GAAsB;AAAA,EACjC,SAAA,EAAW,WAAA;AAAA,EACX,GAAA,EAAK,KAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA,EACL,QAAA,EAAU,UAAA;AAAA,EACV,aAAA,EAAe,eAAA;AAAA,EACf,SAAA,EAAW,WAAA;AAAA,EACX,kBAAA,EAAoB;AACtB;AAKO,IAAM,iBAAA,GAAoB;AAAA,EAC/B,GAAA,EAAK,EAAE,GAAA,EAAK,CAAA,EAAG,KAAK,GAAA,EAAM;AAAA;AAAA,EAC1B,QAAA,EAAU,EAAE,GAAA,EAAK,CAAA,EAAG,KAAK,GAAA,EAAM;AAAA;AAAA,EAC/B,aAAA,EAAe,EAAE,GAAA,EAAK,CAAA,EAAG,KAAK,GAAA;AAAI;AACpC;;;ACzBO,IAAK,eAAA,qBAAAC,gBAAAA,KAAL;AACL,EAAAA,iBAAA,WAAA,CAAA,GAAY,WAAA;AACZ,EAAAA,iBAAA,MAAA,CAAA,GAAO,MAAA;AACP,EAAAA,iBAAA,MAAA,CAAA,GAAO,MAAA;AACP,EAAAA,iBAAA,MAAA,CAAA,GAAO,MAAA;AACP,EAAAA,iBAAA,SAAA,CAAA,GAAU,SAAA;AACV,EAAAA,iBAAA,SAAA,CAAA,GAAU,SAAA;AANA,EAAA,OAAAA,gBAAAA;AAAA,CAAA,EAAA,eAAA,IAAA,EAAA;AAYL,IAAM,kBAAA,GAAqB;AAAA;AAAA,EAEhC,KAAA,EAAO,UAAA;AAAA,EACP,cAAA,EAAgB,UAAA;AAAA,EAChB,QAAA,EAAU,UAAA;AAAA;AAAA,EAGV,MAAA,EAAQ,MAAA;AAAA,EACR,IAAA,EAAM,MAAA;AAAA,EACN,QAAA,EAAU,MAAA;AAAA;AAAA,EAGV,OAAA,EAAS,QAAA;AAAA,EACT,OAAA,EAAS,QAAA;AAAA,EACT,WAAA,EAAa,QAAA;AAAA;AAAA,EAGb,KAAA,EAAO,KAAA;AAAA,EACP,OAAA,EAAS,KAAA;AAAA,EACT,QAAA,EAAU;AACZ;AAKO,IAAM,kBAAA,GAAqB;AAAA,EAChC,aAAA,EAAe,eAAA;AAAA,EACf,UAAA,EAAY,YAAA;AAAA,EACZ,eAAA,EAAiB,iBAAA;AAAA,EACjB,eAAA,EAAiB,iBAAA;AAAA,EACjB,eAAA,EAAiB,iBAAA;AAAA,EACjB,oBAAA,EAAsB,sBAAA;AAAA,EACtB,gBAAA,EAAkB,kBAAA;AAAA,EAClB,QAAA,EAAU,UAAA;AAAA,EACV,eAAA,EAAiB;AACnB;AAKO,IAAM,yBAAA,GAA4B;AAAA;AAAA,EAEvC,SAAA,EAAW,GAAA;AAAA;AAAA,EAEX,IAAA,EAAM,GAAA;AAAA;AAAA,EAEN,MAAA,EAAQ,GAAA;AAAA;AAAA,EAER,GAAA,EAAK,GAAA;AAAA;AAAA,EAEL,cAAA,EAAgB,GAAA;AAAA;AAAA,EAEhB,gBAAA,EAAkB;AACpB;AAeO,IAAM,gBAAA,GAAmB;AAAA,EAC9B,SAAA,EAAW,EAAA;AAAA,EACX,IAAA,EAAM,CAAA;AAAA,EACN,IAAA,EAAM;AACR;AAGO,IAAM,cAAA,GAAiB;AAAA,EAC5B,SAAA,EAAW,EAAA;AAAA,EACX,IAAA,EAAM,GAAA;AAAA,EACN,IAAA,EAAM;AACR;AAEO,IAAM,kBAAA,GAAwC;AAAA,EACnD,cAAc,cAAA,CAAe,SAAA;AAAA,EAC7B,SAAS,cAAA,CAAe,IAAA;AAAA,EACxB,SAAS,cAAA,CAAe,IAAA;AAAA,EACxB,gBAAgB,gBAAA,CAAiB,SAAA;AAAA,EACjC,WAAW,gBAAA,CAAiB,IAAA;AAAA,EAC5B,WAAW,gBAAA,CAAiB;AAC9B;;;AChGO,IAAM,kBAAA,GAAqB;AAAA,EAChC,eAAA,EAAiB,iBAAA;AAAA,EACjB,gBAAA,EAAkB,kBAAA;AAAA,EAClB,mBAAA,EAAqB,qBAAA;AAAA,EACrB,eAAA,EAAiB,iBAAA;AAAA,EACjB,gBAAA,EAAkB,kBAAA;AAAA,EAClB,kBAAA,EAAoB,oBAAA;AAAA,EACpB,oBAAA,EAAsB,sBAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMtB,wBAAA,EAA0B,0BAAA;AAAA,EAC1B,uBAAA,EAAyB;AAC3B;AAMO,IAAM,gBAAA,GAAmB;AAAA,EAC9B,EAAA,EAAI,IAAA;AAAA,EACJ,IAAA,EAAM,MAAA;AAAA,EACN,GAAA,EAAK,KAAA;AAAA,EACL,IAAA,EAAM,MAAA;AAAA,EACN,kBAAA,EAAoB,oBAAA;AAAA,EACpB,oBAAA,EAAsB,oBAAA;AAAA,EACtB,aAAA,EAAe,eAAA;AAAA,EACf,aAAA,EAAe,eAAA;AAAA,EACf,oBAAA,EAAsB,sBAAA;AAAA,EACtB,oBAAA,EAAsB,sBAAA;AAAA,EACtB,mBAAA,EAAqB,qBAAA;AAAA,EACrB,YAAA,EAAc,cAAA;AAAA,EACd,cAAA,EAAgB,gBAAA;AAAA,EAChB,oBAAA,EAAsB,sBAAA;AAAA,EACtB,gBAAA,EAAkB,kBAAA;AAAA,EAClB,wBAAA,EAA0B;AAC5B;AAMO,IAAM,gBAAA,GAAmB;AAAA,EAC9B,aAAA,EAAe,eAAA;AAAA,EACf,eAAA,EAAiB,iBAAA;AAAA,EACjB,aAAA,EAAe,eAAA;AAAA,EACf,WAAA,EAAa,aAAA;AAAA,EACb,eAAA,EAAiB,iBAAA;AAAA,EACjB,aAAA,EAAe,eAAA;AAAA,EACf,aAAA,EAAe,eAAA;AAAA,EACf,gBAAA,EAAkB;AACpB;AAMO,IAAM,uBAAA,GAA0B;AAAA,EACrC,OAAA,EAAS,SAAA;AAAA,EACT,MAAA,EAAQ,QAAA;AAAA,EACR,MAAA,EAAQ,QAAA;AAAA,EACR,gBAAA,EAAkB,iBAAA;AAAA,EAClB,kBAAA,EAAoB,mBAAA;AAAA,EACpB,YAAA,EAAc,aAAA;AAAA,EACd,cAAA,EAAgB,eAAA;AAAA,EAChB,cAAA,EAAgB,eAAA;AAAA,EAChB,qBAAA,EAAuB,sBAAA;AAAA,EACvB,eAAA,EAAiB,gBAAA;AAAA,EACjB,iBAAA,EAAmB,kBAAA;AAAA,EACnB,cAAA,EAAgB,eAAA;AAAA,EAChB,cAAA,EAAgB,eAAA;AAAA,EAChB,aAAA,EAAe,cAAA;AAAA,EACf,eAAA,EAAiB,gBAAA;AAAA,EACjB,eAAA,EAAiB,gBAAA;AAAA,EACjB,kBAAA,EAAoB,mBAAA;AAAA,EACpB,iBAAA,EAAmB,kBAAA;AAAA,EACnB,oBAAA,EAAsB,oBAAA;AAAA,EACtB,aAAA,EAAe,cAAA;AAAA,EACf,gBAAA,EAAkB,iBAAA;AAAA,EAClB,YAAA,EAAc,aAAA;AAAA,EACd,WAAA,EAAa,aAAA;AAAA,EACb,eAAA,EAAiB,gBAAA;AAAA,EACjB,UAAA,EAAY;AACd;AAMO,IAAM,aAAA,GAAgB;AAAA,EAC3B,MAAA,EAAQ,QAAA;AAAA,EACR,MAAA,EAAQ,QAAA;AAAA,EACR,OAAA,EAAS,SAAA;AAAA,EACT,WAAA,EAAa,aAAA;AAAA,EACb,KAAA,EAAO,OAAA;AAAA,EACP,eAAA,EAAiB;AACnB;AAMO,IAAM,aAAA,GAAgB;AAAA,EAC3B,IAAA,EAAM,MAAA;AAAA,EACN,QAAA,EAAU,UAAA;AAAA,EACV,WAAA,EAAa,aAAA;AAAA,EACb,KAAA,EAAO;AACT;AAMO,IAAM,iBAAA,GAAoB;AAAA,EAC/B,KAAA,EAAO,OAAA;AAAA,EACP,OAAA,EAAS,SAAA;AAAA,EACT,SAAA,EAAW;AACb;AAMO,IAAM,YAAA,GAAe;AAAA,EAC1B,QAAA,EAAU,UAAA;AAAA,EACV,OAAA,EAAS,SAAA;AAAA,EACT,aAAA,EAAe,eAAA;AAAA,EACf,eAAA,EAAiB,iBAAA;AAAA,EACjB,iBAAA,EAAmB;AACrB;AAMO,IAAM,eAAA,GAAkB;AAAA,EAC7B,cAAA,EAAgB,gBAAA;AAAA,EAChB,OAAA,EAAS,SAAA;AAAA,EACT,MAAA,EAAQ;AACV;AAMO,IAAM,aAAA,GAAgB;AAAA,EAC3B,IAAA,EAAM,MAAA;AAAA,EACN,GAAA,EAAK,KAAA;AAAA,EACL,MAAA,EAAQ,QAAA;AAAA,EACR,IAAA,EAAM,MAAA;AAAA,EACN,QAAA,EAAU;AACZ;AAMO,IAAM,gBAAA,GAAmB;AAAA,EAC9B,IAAA,EAAM,MAAA;AAAA,EACN,OAAA,EAAS,SAAA;AAAA,EACT,KAAA,EAAO,OAAA;AAAA,EACP,QAAA,EAAU;AACZ;AAMO,IAAM,WAAA,GAAc;AAAA,EACzB,QAAA,EAAU,UAAA;AAAA,EACV,WAAA,EAAa,aAAA;AAAA,EACb,OAAA,EAAS;AACX;AAKO,IAAM,kBAAA,GAAqB;AAAA,EAChC,GAAG,kBAAA;AAAA,EACH,GAAG,gBAAA;AAAA,EACH,GAAG;AACL;AAWO,SAAS,iBAAiB,SAAA,EAAsD;AACrF,EAAA,OAAO,MAAA,CAAO,MAAA,CAAO,kBAAkB,CAAA,CAAE,SAAS,SAAiC,CAAA;AACrF;AAFgB,MAAA,CAAA,gBAAA,EAAA,kBAAA,CAAA;AAOT,SAAS,oBAAoB,MAAA,EAAgD;AAClF,EAAA,OAAO,MAAA,CAAO,MAAA,CAAO,uBAAuB,CAAA,CAAE,SAAS,MAA8B,CAAA;AACvF;AAFgB,MAAA,CAAA,mBAAA,EAAA,qBAAA,CAAA;AAOT,SAAS,mBAAmB,IAAA,EAAmC;AACpE,EAAA,OAAO,MAAA,CAAO,MAAA,CAAO,aAAa,CAAA,CAAE,SAAS,IAAmB,CAAA;AAClE;AAFgB,MAAA,CAAA,kBAAA,EAAA,oBAAA,CAAA;;;ACxNT,IAAM,eAAA,GAAkB;AAAA,EAC7B,8BAAA,EAAgC,CAAA;AAAA,EAChC,iBAAA,EAAmB;AAAA,IACjB,IAAA,EAAM,EAAA;AAAA,IACN,GAAA,EAAK,EAAA;AAAA,IACL,MAAA,EAAQ,EAAA;AAAA,IACR,IAAA,EAAM;AAAA;AAEV;;;ACNO,IAAM,kBAAA,GAAqB;AAK3B,IAAM,0BAAA,GAA6B;AAAA,EACxC,UAAA,EAAY,IAAA;AAAA,EACZ,eAAA,EAAiB,GAAA;AAAA,EACjB,eAAA,EAAiB,GAAA;AAAA,EACjB,IAAA,EAAM,GAAA;AAAA,EACN,aAAA,EAAe,GAAA;AAAA,EACf,MAAA,EAAQ,GAAA;AAAA,EACR,WAAA,EAAa,GAAA;AAAA,EACb,eAAA,EAAiB,GAAA;AAAA,EACjB,GAAA,EAAK,GAAA;AAAA,EACL,eAAA,EAAiB,GAAA;AAAA,EACjB,gBAAA,EAAkB,GAAA;AAAA,EAClB,cAAA,EAAgB;AAClB;AAKO,IAAM,WAAA,GAAc;AAAA,EACzB,EAAA,EAAI;AAAA,IACF,OAAA,EAAS,EAAA;AAAA,IACT,OAAA,EAAS,EAAA;AAAA,IACT,OAAA,EAAS,GAAA;AAAA,IACT,OAAA,EAAS;AAAA,GACX;AAAA,EACA,EAAA,EAAI;AAAA,IACF,OAAA,EAAS,EAAA;AAAA,IACT,OAAA,EAAS,EAAA;AAAA,IACT,OAAA,EAAS,IAAA;AAAA,IACT,OAAA,EAAS;AAAA,GACX;AAAA,EACA,OAAA,EAAS;AAAA,IACP,OAAA,EAAS,EAAA;AAAA,IACT,OAAA,EAAS,EAAA;AAAA,IACT,OAAA,EAAS,IAAA;AAAA,IACT,OAAA,EAAS;AAAA,GACX;AAAA,EACA,OAAA,EAAS;AAAA,IACP,OAAA,EAAS,EAAA;AAAA,IACT,OAAA,EAAS,EAAA;AAAA,IACT,OAAA,EAAS,GAAA;AAAA,IACT,OAAA,EAAS;AAAA,GACX;AAAA,EACA,IAAA,EAAM;AAAA,IACJ,OAAA,EAAS,EAAA;AAAA,IACT,OAAA,EAAS,EAAA;AAAA,IACT,OAAA,EAAS,EAAA;AAAA,IACT,OAAA,EAAS;AAAA,GACX;AAAA,EACA,KAAA,EAAO;AAAA,IACL,OAAA,EAAS,EAAA;AAAA,IACT,OAAA,EAAS,EAAA;AAAA,IACT,OAAA,EAAS,GAAA;AAAA,IACT,OAAA,EAAS;AAAA;AAEb;AAKA,IAAM,aAAA,GAAgB,EAAA;AACtB,IAAM,gBAAA,GAAmB,EAAA;AACzB,IAAM,kBAAA,GAAqB,EAAA;AAC3B,IAAM,aAAA,GAAgB,GAAA;AAGf,IAAM,iBAAA,GACX,aAAA,GAAgB,gBAAA,GAAmB,kBAAA,GAAqB;AAKnD,IAAM,gBAAA,GAAmB;AAAA,EAC9B,EAAA,EAAI,MAAA;AAAA,EACJ,EAAA,EAAI,MAAA;AAAA;AAAA,EACJ,OAAA,EAAS,MAAA;AAAA,EACT,EAAA,EAAI,MAAA;AAAA,EACJ,EAAA,EAAI,MAAA;AAAA,EACJ,EAAA,EAAI,QAAA;AAAA;AAAA,EACJ,MAAA,EAAQ;AACV;;;ACvFO,IAAM,aAAA,GAAgB;AAAA,EAC3B,WAAA,EAAa,cAAA;AAAA,EACb,WAAA,EAAa,cAAA;AAAA,EACb,eAAA,EAAiB,kBAAA;AAAA,EACjB,YAAA,EAAc,eAAA;AAAA,EACd,cAAA,EAAgB,iBAAA;AAAA,EAChB,YAAA,EAAc,eAAA;AAAA,EACd,YAAA,EAAc;AAChB;;;ACsEO,IAAK,QAAA,qBAAAC,SAAAA,KAAL;AAEL,EAAAA,UAAA,UAAA,CAAA,GAAW,UAAA;AAGX,EAAAA,UAAA,SAAA,CAAA,GAAU,SAAA;AAGV,EAAAA,UAAA,UAAA,CAAA,GAAW,UAAA;AAGX,EAAAA,UAAA,KAAA,CAAA,GAAM,KAAA;AAGN,EAAAA,UAAA,MAAA,CAAA,GAAO,MAAA;AAdG,EAAA,OAAAA,SAAAA;AAAA,CAAA,EAAA,QAAA,IAAA,EAAA;AAkBL,IAAK,mBAAA,qBAAAC,oBAAAA,KAAL;AACL,EAAAA,qBAAA,aAAA,CAAA,GAAc,aAAA;AACd,EAAAA,qBAAA,YAAA,CAAA,GAAa,YAAA;AACb,EAAAA,qBAAA,YAAA,CAAA,GAAa,YAAA;AACb,EAAAA,qBAAA,mBAAA,CAAA,GAAoB,mBAAA;AACpB,EAAAA,qBAAA,kBAAA,CAAA,GAAmB,kBAAA;AACnB,EAAAA,qBAAA,qBAAA,CAAA,GAAsB,qBAAA;AACtB,EAAAA,qBAAA,cAAA,CAAA,GAAe,cAAA;AAPL,EAAA,OAAAA,oBAAAA;AAAA,CAAA,EAAA,mBAAA,IAAA,EAAA;AAaL,IAAK,gBAAA,qBAAAC,iBAAAA,KAAL;AAEL,EAAAA,kBAAA,SAAA,CAAA,GAAU,SAAA;AAEV,EAAAA,kBAAA,SAAA,CAAA,GAAU,SAAA;AAEV,EAAAA,kBAAA,SAAA,CAAA,GAAU,SAAA;AAEV,EAAAA,kBAAA,SAAA,CAAA,GAAU,SAAA;AARA,EAAA,OAAAA,iBAAAA;AAAA,CAAA,EAAA,gBAAA,IAAA,EAAA;AAcL,IAAK,cAAA,qBAAAC,eAAAA,KAAL;AACL,EAAAA,gBAAA,SAAA,CAAA,GAAU,SAAA;AACV,EAAAA,gBAAA,SAAA,CAAA,GAAU,SAAA;AACV,EAAAA,gBAAA,SAAA,CAAA,GAAU,SAAA;AACV,EAAAA,gBAAA,QAAA,CAAA,GAAS,QAAA;AAJC,EAAA,OAAAA,eAAAA;AAAA,CAAA,EAAA,cAAA,IAAA,EAAA;AAUL,IAAK,cAAA,qBAAAC,eAAAA,KAAL;AACL,EAAAA,gBAAA,UAAA,CAAA,GAAW,UAAA;AACX,EAAAA,gBAAA,OAAA,CAAA,GAAQ,OAAA;AACR,EAAAA,gBAAA,SAAA,CAAA,GAAU,SAAA;AACV,EAAAA,gBAAA,MAAA,CAAA,GAAO,MAAA;AAJG,EAAA,OAAAA,eAAAA;AAAA,CAAA,EAAA,cAAA,IAAA,EAAA;AAUL,IAAK,YAAA,qBAAAC,aAAAA,KAAL;AACL,EAAAA,cAAA,UAAA,CAAA,GAAW,UAAA;AACX,EAAAA,cAAA,MAAA,CAAA,GAAO,MAAA;AACP,EAAAA,cAAA,SAAA,CAAA,GAAU,SAAA;AACV,EAAAA,cAAA,OAAA,CAAA,GAAQ,OAAA;AACR,EAAAA,cAAA,QAAA,CAAA,GAAS,QAAA;AALC,EAAA,OAAAA,aAAAA;AAAA,CAAA,EAAA,YAAA,IAAA,EAAA;AAWL,IAAK,eAAA,qBAAAC,gBAAAA,KAAL;AACL,EAAAA,iBAAA,QAAA,CAAA,GAAS,QAAA;AACT,EAAAA,iBAAA,QAAA,CAAA,GAAS,QAAA;AACT,EAAAA,iBAAA,QAAA,CAAA,GAAS,QAAA;AACT,EAAAA,iBAAA,cAAA,CAAA,GAAe,eAAA;AACf,EAAAA,iBAAA,cAAA,CAAA,GAAe,eAAA;AACf,EAAAA,iBAAA,cAAA,CAAA,GAAe,eAAA;AANL,EAAA,OAAAA,gBAAAA;AAAA,CAAA,EAAA,eAAA,IAAA,EAAA;AAaL,IAAK,gBAAA,qBAAAC,iBAAAA,KAAL;AAEL,EAAAA,kBAAA,iBAAA,CAAA,GAAkB,iBAAA;AAElB,EAAAA,kBAAA,YAAA,CAAA,GAAa,qBAAA;AAEb,EAAAA,kBAAA,YAAA,CAAA,GAAa,qBAAA;AAEb,EAAAA,kBAAA,SAAA,CAAA,GAAU,kBAAA;AAEV,EAAAA,kBAAA,OAAA,CAAA,GAAQ,gBAAA;AAER,EAAAA,kBAAA,aAAA,CAAA,GAAc,sBAAA;AAEd,EAAAA,kBAAA,YAAA,CAAA,GAAa,qBAAA;AAEb,EAAAA,kBAAA,SAAA,CAAA,GAAU,SAAA;AAhBA,EAAA,OAAAA,iBAAAA;AAAA,CAAA,EAAA,gBAAA,IAAA,EAAA;AAsBL,IAAK,aAAA,qBAAAC,cAAAA,KAAL;AACL,EAAAA,eAAA,SAAA,CAAA,GAAU,SAAA;AACV,EAAAA,eAAA,UAAA,CAAA,GAAW,UAAA;AACX,EAAAA,eAAA,KAAA,CAAA,GAAM,KAAA;AACN,EAAAA,eAAA,MAAA,CAAA,GAAO,MAAA;AAJG,EAAA,OAAAA,cAAAA;AAAA,CAAA,EAAA,aAAA,IAAA,EAAA;;;ACzLL,IAAM,mBAAA,GAAsB;AAAA;AAAA,EAEjC,SAAA,EAAW,aAAA;AAAA;AAAA,EAGX,SAAA,EAAW,EAAA;AAAA;AAAA,EAGX,qBAAA,EAAuB,CAAA;AAAA;AAAA,EAGvB,WAAA,EAAa;AACf;AAKO,IAAM,aAAA,GAAgB;AAAA,EAC3B,eAAA,EAAiB,iBAAA;AAAA,EACjB,UAAA,EAAY,YAAA;AAAA,EACZ,WAAA,EAAa;AACf;;;ACpBO,IAAK,aAAA,qBAAAC,cAAAA,KAAL;AAEL,EAAAA,eAAA,cAAA,CAAA,GAAe,eAAA;AACf,EAAAA,eAAA,eAAA,CAAA,GAAgB,gBAAA;AAChB,EAAAA,eAAA,aAAA,CAAA,GAAc,cAAA;AACd,EAAAA,eAAA,YAAA,CAAA,GAAa,aAAA;AAGb,EAAAA,eAAA,WAAA,CAAA,GAAY,YAAA;AACZ,EAAAA,eAAA,WAAA,CAAA,GAAY,YAAA;AACZ,EAAAA,eAAA,WAAA,CAAA,GAAY,YAAA;AACZ,EAAAA,eAAA,cAAA,CAAA,GAAe,eAAA;AACf,EAAAA,eAAA,aAAA,CAAA,GAAc,cAAA;AAGd,EAAAA,eAAA,cAAA,CAAA,GAAe,eAAA;AACf,EAAAA,eAAA,cAAA,CAAA,GAAe,eAAA;AACf,EAAAA,eAAA,gBAAA,CAAA,GAAiB,iBAAA;AACjB,EAAAA,eAAA,eAAA,CAAA,GAAgB,gBAAA;AAGhB,EAAAA,eAAA,cAAA,CAAA,GAAe,eAAA;AACf,EAAAA,eAAA,cAAA,CAAA,GAAe,eAAA;AACf,EAAAA,eAAA,kBAAA,CAAA,GAAmB,mBAAA;AAGnB,EAAAA,eAAA,UAAA,CAAA,GAAW,UAAA;AACX,EAAAA,eAAA,kBAAA,CAAA,GAAmB,mBAAA;AACnB,EAAAA,eAAA,iBAAA,CAAA,GAAkB,kBAAA;AAClB,EAAAA,eAAA,iBAAA,CAAA,GAAkB,kBAAA;AAClB,EAAAA,eAAA,aAAA,CAAA,GAAc,cAAA;AACd,EAAAA,eAAA,eAAA,CAAA,GAAgB,gBAAA;AAChB,EAAAA,eAAA,mBAAA,CAAA,GAAoB,oBAAA;AAGpB,EAAAA,eAAA,UAAA,CAAA,GAAW,WAAA;AACX,EAAAA,eAAA,aAAA,CAAA,GAAc,cAAA;AAGd,EAAAA,eAAA,WAAA,CAAA,GAAY,YAAA;AACZ,EAAAA,eAAA,YAAA,CAAA,GAAa,aAAA;AACb,EAAAA,eAAA,gBAAA,CAAA,GAAiB,iBAAA;AAGjB,EAAAA,eAAA,QAAA,CAAA,GAAS,QAAA;AACT,EAAAA,eAAA,YAAA,CAAA,GAAa,YAAA;AACb,EAAAA,eAAA,UAAA,CAAA,GAAW,WAAA;AACX,EAAAA,eAAA,OAAA,CAAA,GAAQ,OAAA;AA/CE,EAAA,OAAAA,cAAAA;AAAA,CAAA,EAAA,aAAA,IAAA,EAAA;AAqDL,IAAK,WAAA,qBAAAC,YAAAA,KAAL;AACL,EAAAA,aAAA,MAAA,CAAA,GAAO,MAAA;AACP,EAAAA,aAAA,KAAA,CAAA,GAAM,KAAA;AACN,EAAAA,aAAA,SAAA,CAAA,GAAU,SAAA;AACV,EAAAA,aAAA,MAAA,CAAA,GAAO,MAAA;AACP,EAAAA,aAAA,OAAA,CAAA,GAAQ,OAAA;AACR,EAAAA,aAAA,cAAA,CAAA,GAAe,cAAA;AACf,EAAAA,aAAA,OAAA,CAAA,GAAQ,OAAA;AACR,EAAAA,aAAA,MAAA,CAAA,GAAO,MAAA;AACP,EAAAA,aAAA,SAAA,CAAA,GAAU,SAAA;AACV,EAAAA,aAAA,KAAA,CAAA,GAAM,KAAA;AACN,EAAAA,aAAA,QAAA,CAAA,GAAS,QAAA;AAXC,EAAA,OAAAA,YAAAA;AAAA,CAAA,EAAA,WAAA,IAAA,EAAA;AAiBL,IAAK,oBAAA,qBAAAC,qBAAAA,KAAL;AACL,EAAAA,sBAAA,cAAA,CAAA,GAAe,eAAA;AACf,EAAAA,sBAAA,iBAAA,CAAA,GAAkB,kBAAA;AAClB,EAAAA,sBAAA,QAAA,CAAA,GAAS,QAAA;AACT,EAAAA,sBAAA,MAAA,CAAA,GAAO,MAAA;AAJG,EAAA,OAAAA,qBAAAA;AAAA,CAAA,EAAA,oBAAA,IAAA,EAAA;AAUL,IAAK,iBAAA,qBAAAC,kBAAAA,KAAL;AACL,EAAAA,mBAAA,QAAA,CAAA,GAAS,QAAA;AACT,EAAAA,mBAAA,SAAA,CAAA,GAAU,SAAA;AACV,EAAAA,mBAAA,QAAA,CAAA,GAAS,QAAA;AACT,EAAAA,mBAAA,YAAA,CAAA,GAAa,YAAA;AAJH,EAAA,OAAAA,kBAAAA;AAAA,CAAA,EAAA,iBAAA,IAAA,EAAA;AAUL,IAAK,aAAA,qBAAAC,cAAAA,KAAL;AACL,EAAAA,eAAA,SAAA,CAAA,GAAU,SAAA;AACV,EAAAA,eAAA,WAAA,CAAA,GAAY,WAAA;AACZ,EAAAA,eAAA,YAAA,CAAA,GAAa,YAAA;AACb,EAAAA,eAAA,WAAA,CAAA,GAAY,WAAA;AACZ,EAAAA,eAAA,QAAA,CAAA,GAAS,QAAA;AACT,EAAAA,eAAA,WAAA,CAAA,GAAY,WAAA;AANF,EAAA,OAAAA,cAAAA;AAAA,CAAA,EAAA,aAAA,IAAA,EAAA;AAYL,IAAK,kBAAA,qBAAAC,mBAAAA,KAAL;AAEL,EAAAA,oBAAA,cAAA,CAAA,GAAe,eAAA;AACf,EAAAA,oBAAA,kBAAA,CAAA,GAAmB,oBAAA;AACnB,EAAAA,oBAAA,gBAAA,CAAA,GAAiB,iBAAA;AACjB,EAAAA,oBAAA,eAAA,CAAA,GAAgB,gBAAA;AAGhB,EAAAA,oBAAA,aAAA,CAAA,GAAc,cAAA;AACd,EAAAA,oBAAA,kBAAA,CAAA,GAAmB,oBAAA;AAGnB,EAAAA,oBAAA,cAAA,CAAA,GAAe,eAAA;AACf,EAAAA,oBAAA,oBAAA,CAAA,GAAqB,sBAAA;AAGrB,EAAAA,oBAAA,mBAAA,CAAA,GAAoB,oBAAA;AACpB,EAAAA,oBAAA,wBAAA,CAAA,GAAyB,0BAAA;AACzB,EAAAA,oBAAA,0BAAA,CAAA,GAA2B,4BAAA;AAC3B,EAAAA,oBAAA,uBAAA,CAAA,GAAwB,yBAAA;AACxB,EAAAA,oBAAA,mBAAA,CAAA,GAAoB,oBAAA;AACpB,EAAAA,oBAAA,iBAAA,CAAA,GAAkB,kBAAA;AAClB,EAAAA,oBAAA,mBAAA,CAAA,GAAoB,oBAAA;AACpB,EAAAA,oBAAA,oBAAA,CAAA,GAAqB,qBAAA;AACrB,EAAAA,oBAAA,gBAAA,CAAA,GAAiB,iBAAA;AAGjB,EAAAA,oBAAA,eAAA,CAAA,GAAgB,gBAAA;AAChB,EAAAA,oBAAA,oBAAA,CAAA,GAAqB,sBAAA;AAGrB,EAAAA,oBAAA,oBAAA,CAAA,GAAqB,sBAAA;AACrB,EAAAA,oBAAA,eAAA,CAAA,GAAgB,gBAAA;AAGhB,EAAAA,oBAAA,wBAAA,CAAA,GAAyB,0BAAA;AACzB,EAAAA,oBAAA,mBAAA,CAAA,GAAoB,oBAAA;AACpB,EAAAA,oBAAA,uBAAA,CAAA,GAAwB,0BAAA;AACxB,EAAAA,oBAAA,sBAAA,CAAA,GAAuB,uBAAA;AACvB,EAAAA,oBAAA,qBAAA,CAAA,GAAsB,uBAAA;AACtB,EAAAA,oBAAA,cAAA,CAAA,GAAe,eAAA;AACf,EAAAA,oBAAA,cAAA,CAAA,GAAe,eAAA;AACf,EAAAA,oBAAA,kBAAA,CAAA,GAAmB,mBAAA;AACnB,EAAAA,oBAAA,8BAAA,CAAA,GAA+B,gCAAA;AAG/B,EAAAA,oBAAA,eAAA,CAAA,GAAgB,gBAAA;AAChB,EAAAA,oBAAA,sBAAA,CAAA,GAAuB,wBAAA;AACvB,EAAAA,oBAAA,aAAA,CAAA,GAAc,cAAA;AACd,EAAAA,oBAAA,kBAAA,CAAA,GAAmB,oBAAA;AAGnB,EAAAA,oBAAA,cAAA,CAAA,GAAe,eAAA;AACf,EAAAA,oBAAA,mBAAA,CAAA,GAAoB,qBAAA;AACpB,EAAAA,oBAAA,WAAA,CAAA,GAAY,YAAA;AACZ,EAAAA,oBAAA,gBAAA,CAAA,GAAiB,kBAAA;AACjB,EAAAA,oBAAA,YAAA,CAAA,GAAa,aAAA;AACb,EAAAA,oBAAA,gBAAA,CAAA,GAAiB,kBAAA;AAGjB,EAAAA,oBAAA,iBAAA,CAAA,GAAkB,mBAAA;AAGlB,EAAAA,oBAAA,cAAA,CAAA,GAAe,uBAAA;AACf,EAAAA,oBAAA,cAAA,CAAA,GAAe,uBAAA;AACf,EAAAA,oBAAA,qBAAA,CAAA,GAAsB,8BAAA;AACtB,EAAAA,oBAAA,oBAAA,CAAA,GAAqB,6BAAA;AACrB,EAAAA,oBAAA,gBAAA,CAAA,GAAiB,yBAAA;AACjB,EAAAA,oBAAA,iBAAA,CAAA,GAAkB,0BAAA;AAGlB,EAAAA,oBAAA,cAAA,CAAA,GAAe,eAAA;AAGf,EAAAA,oBAAA,gBAAA,CAAA,GAAiB,iBAAA;AACjB,EAAAA,oBAAA,uBAAA,CAAA,GAAwB,yBAAA;AAGxB,EAAAA,oBAAA,sBAAA,CAAA,GAAuB,wBAAA;AACvB,EAAAA,oBAAA,oBAAA,CAAA,GAAqB,qBAAA;AAGrB,EAAAA,oBAAA,cAAA,CAAA,GAAe,eAAA;AACf,EAAAA,oBAAA,eAAA,CAAA,GAAgB,gBAAA;AAGhB,EAAAA,oBAAA,iBAAA,CAAA,GAAkB,kBAAA;AAClB,EAAAA,oBAAA,kBAAA,CAAA,GAAmB,mBAAA;AACnB,EAAAA,oBAAA,eAAA,CAAA,GAAgB,gBAAA;AAChB,EAAAA,oBAAA,uBAAA,CAAA,GAAwB,yBAAA;AAzFd,EAAA,OAAAA,mBAAAA;AAAA,CAAA,EAAA,kBAAA,IAAA,EAAA;AA+FL,IAAK,cAAA,qBAAAC,eAAAA,KAAL;AACL,EAAAA,gBAAA,oBAAA,CAAA,GAAqB,qBAAA;AACrB,EAAAA,gBAAA,eAAA,CAAA,GAAgB,gBAAA;AAChB,EAAAA,gBAAA,YAAA,CAAA,GAAa,aAAA;AACb,EAAAA,gBAAA,SAAA,CAAA,GAAU,UAAA;AAJA,EAAA,OAAAA,eAAAA;AAAA,CAAA,EAAA,cAAA,IAAA,EAAA;AAUL,IAAK,wBAAA,qBAAAC,yBAAAA,KAAL;AACL,EAAAA,0BAAA,WAAA,CAAA,GAAY,YAAA;AACZ,EAAAA,0BAAA,aAAA,CAAA,GAAc,cAAA;AACd,EAAAA,0BAAA,WAAA,CAAA,GAAY,YAAA;AACZ,EAAAA,0BAAA,eAAA,CAAA,GAAgB,gBAAA;AAChB,EAAAA,0BAAA,MAAA,CAAA,GAAO,MAAA;AALG,EAAA,OAAAA,yBAAAA;AAAA,CAAA,EAAA,wBAAA,IAAA,EAAA;AAWL,IAAK,qBAAA,qBAAAC,sBAAAA,KAAL;AACL,EAAAA,uBAAA,iBAAA,CAAA,GAAkB,mBAAA;AAClB,EAAAA,uBAAA,cAAA,CAAA,GAAe,gBAAA;AACf,EAAAA,uBAAA,cAAA,CAAA,GAAe,gBAAA;AACf,EAAAA,uBAAA,kBAAA,CAAA,GAAmB,mBAAA;AACnB,EAAAA,uBAAA,iBAAA,CAAA,GAAkB,kBAAA;AAClB,EAAAA,uBAAA,oBAAA,CAAA,GAAqB,qBAAA;AACrB,EAAAA,uBAAA,eAAA,CAAA,GAAgB,gBAAA;AAPN,EAAA,OAAAA,sBAAAA;AAAA,CAAA,EAAA,qBAAA,IAAA,EAAA;AAaL,IAAK,sBAAA,qBAAAC,uBAAAA,KAAL;AACL,EAAAA,wBAAA,KAAA,CAAA,GAAM,KAAA;AACN,EAAAA,wBAAA,MAAA,CAAA,GAAO,MAAA;AACP,EAAAA,wBAAA,UAAA,CAAA,GAAW,UAAA;AAHD,EAAA,OAAAA,uBAAAA;AAAA,CAAA,EAAA,sBAAA,IAAA,EAAA;AAUL,IAAK,aAAA,qBAAAC,cAAAA,KAAL;AACL,EAAAA,eAAA,SAAA,CAAA,GAAU,SAAA;AACV,EAAAA,eAAA,SAAA,CAAA,GAAU,SAAA;AACV,EAAAA,eAAA,KAAA,CAAA,GAAM,KAAA;AACN,EAAAA,eAAA,YAAA,CAAA,GAAa,YAAA;AACb,EAAAA,eAAA,aAAA,CAAA,GAAc,aAAA;AACd,EAAAA,eAAA,UAAA,CAAA,GAAW,UAAA;AACX,EAAAA,eAAA,QAAA,CAAA,GAAS,QAAA;AAPC,EAAA,OAAAA,cAAAA;AAAA,CAAA,EAAA,aAAA,IAAA,EAAA;AAaL,IAAK,YAAA,qBAAAC,aAAAA,KAAL;AACL,EAAAA,cAAA,MAAA,CAAA,GAAO,MAAA;AACP,EAAAA,cAAA,MAAA,CAAA,GAAO,MAAA;AACP,EAAAA,cAAA,SAAA,CAAA,GAAU,SAAA;AACV,EAAAA,cAAA,OAAA,CAAA,GAAQ,OAAA;AACR,EAAAA,cAAA,QAAA,CAAA,GAAS,QAAA;AACT,EAAAA,cAAA,MAAA,CAAA,GAAO,MAAA;AACP,EAAAA,cAAA,UAAA,CAAA,GAAW,UAAA;AACX,EAAAA,cAAA,SAAA,CAAA,GAAU,SAAA;AACV,EAAAA,cAAA,OAAA,CAAA,GAAQ,OAAA;AACR,EAAAA,cAAA,MAAA,CAAA,GAAO,MAAA;AAVG,EAAA,OAAAA,aAAAA;AAAA,CAAA,EAAA,YAAA,IAAA,EAAA;AAgBL,IAAK,kBAAA,qBAAAC,mBAAAA,KAAL;AACL,EAAAA,oBAAA,QAAA,CAAA,GAAS,QAAA;AACT,EAAAA,oBAAA,SAAA,CAAA,GAAU,SAAA;AAFA,EAAA,OAAAA,mBAAAA;AAAA,CAAA,EAAA,kBAAA,IAAA,EAAA;AAQL,IAAK,mBAAA,qBAAAC,oBAAAA,KAAL;AACL,EAAAA,qBAAA,YAAA,CAAA,GAAa,MAAA;AACb,EAAAA,qBAAA,SAAA,CAAA,GAAU,KAAA;AACV,EAAAA,qBAAA,aAAA,CAAA,GAAc,KAAA;AAHJ,EAAA,OAAAA,oBAAAA;AAAA,CAAA,EAAA,mBAAA,IAAA,EAAA;AASL,IAAK,cAAA,qBAAAC,eAAAA,KAAL;AACL,EAAAA,gBAAA,KAAA,CAAA,GAAM,KAAA;AACN,EAAAA,gBAAA,KAAA,CAAA,GAAM,KAAA;AACN,EAAAA,gBAAA,OAAA,CAAA,GAAQ,OAAA;AACR,EAAAA,gBAAA,UAAA,CAAA,GAAW,UAAA;AAJD,EAAA,OAAAA,eAAAA;AAAA,CAAA,EAAA,cAAA,IAAA,EAAA;AAUL,IAAK,iBAAA,qBAAAC,kBAAAA,KAAL;AACL,EAAAA,mBAAA,YAAA,CAAA,GAAa,YAAA;AACb,EAAAA,mBAAA,cAAA,CAAA,GAAe,cAAA;AACf,EAAAA,mBAAA,UAAA,CAAA,GAAW,UAAA;AACX,EAAAA,mBAAA,SAAA,CAAA,GAAU,SAAA;AAJA,EAAA,OAAAA,kBAAAA;AAAA,CAAA,EAAA,iBAAA,IAAA,EAAA;AAWL,IAAK,cAAA,qBAAAC,eAAAA,KAAL;AAEL,EAAAA,gBAAA,YAAA,CAAA,GAAa,YAAA;AAEb,EAAAA,gBAAA,aAAA,CAAA,GAAc,cAAA;AAEd,EAAAA,gBAAA,aAAA,CAAA,GAAc,cAAA;AAEd,EAAAA,gBAAA,aAAA,CAAA,GAAc,cAAA;AAEd,EAAAA,gBAAA,aAAA,CAAA,GAAc,cAAA;AAEd,EAAAA,gBAAA,WAAA,CAAA,GAAY,WAAA;AAEZ,EAAAA,gBAAA,UAAA,CAAA,GAAW,UAAA;AAEX,EAAAA,gBAAA,SAAA,CAAA,GAAU,SAAA;AAhBA,EAAA,OAAAA,eAAAA;AAAA,CAAA,EAAA,cAAA,IAAA,EAAA;AAsBL,IAAK,aAAA,qBAAAC,cAAAA,KAAL;AAEL,EAAAA,eAAA,YAAA,CAAA,GAAa,YAAA;AAEb,EAAAA,eAAA,OAAA,CAAA,GAAQ,OAAA;AAER,EAAAA,eAAA,SAAA,CAAA,GAAU,SAAA;AANA,EAAA,OAAAA,cAAAA;AAAA,CAAA,EAAA,aAAA,IAAA,EAAA;AAYL,IAAK,kBAAA,qBAAAC,mBAAAA,KAAL;AACL,EAAAA,oBAAA,WAAA,CAAA,GAAY,WAAA;AACZ,EAAAA,oBAAA,OAAA,CAAA,GAAQ,OAAA;AACR,EAAAA,oBAAA,QAAA,CAAA,GAAS,QAAA;AACT,EAAAA,oBAAA,OAAA,CAAA,GAAQ,OAAA;AACR,EAAAA,oBAAA,QAAA,CAAA,GAAS,QAAA;AACT,EAAAA,oBAAA,QAAA,CAAA,GAAS,QAAA;AACT,EAAAA,oBAAA,SAAA,CAAA,GAAU,SAAA;AACV,EAAAA,oBAAA,IAAA,CAAA,GAAK,IAAA;AACL,EAAAA,oBAAA,OAAA,CAAA,GAAQ,IAAA;AACR,EAAAA,oBAAA,WAAA,CAAA,GAAY,MAAA;AACZ,EAAAA,oBAAA,WAAA,CAAA,GAAY,MAAA;AACZ,EAAAA,oBAAA,WAAA,CAAA,GAAY,MAAA;AACZ,EAAAA,oBAAA,YAAA,CAAA,GAAa,OAAA;AAbH,EAAA,OAAAA,mBAAAA;AAAA,CAAA,EAAA,kBAAA,IAAA,EAAA;AAmBL,IAAK,sBAAA,qBAAAC,uBAAAA,KAAL;AACL,EAAAA,wBAAA,MAAA,CAAA,GAAO,MAAA;AACP,EAAAA,wBAAA,QAAA,CAAA,GAAS,QAAA;AACT,EAAAA,wBAAA,KAAA,CAAA,GAAM,KAAA;AAHI,EAAA,OAAAA,uBAAAA;AAAA,CAAA,EAAA,sBAAA,IAAA,EAAA;AAUL,IAAK,mBAAA,qBAAAC,oBAAAA,KAAL;AAEL,EAAAA,qBAAA,QAAA,CAAA,GAAS,QAAA;AAET,EAAAA,qBAAA,QAAA,CAAA,GAAS,QAAA;AAET,EAAAA,qBAAA,SAAA,CAAA,GAAU,SAAA;AAEV,EAAAA,qBAAA,OAAA,CAAA,GAAQ,IAAA;AAER,EAAAA,qBAAA,IAAA,CAAA,GAAK,IAAA;AAEL,EAAAA,qBAAA,OAAA,CAAA,GAAQ,OAAA;AAER,EAAAA,qBAAA,MAAA,CAAA,GAAO,MAAA;AAdG,EAAA,OAAAA,oBAAAA;AAAA,CAAA,EAAA,mBAAA,IAAA,EAAA;AAqBL,IAAK,oBAAA,qBAAAC,qBAAAA,KAAL;AAEL,EAAAA,sBAAA,WAAA,CAAA,GAAY,WAAA;AACZ,EAAAA,sBAAA,OAAA,CAAA,GAAQ,OAAA;AACR,EAAAA,sBAAA,QAAA,CAAA,GAAS,QAAA;AACT,EAAAA,sBAAA,OAAA,CAAA,GAAQ,OAAA;AACR,EAAAA,sBAAA,QAAA,CAAA,GAAS,QAAA;AAGT,EAAAA,sBAAA,QAAA,CAAA,GAAS,QAAA;AACT,EAAAA,sBAAA,QAAA,CAAA,GAAS,QAAA;AACT,EAAAA,sBAAA,SAAA,CAAA,GAAU,SAAA;AACV,EAAAA,sBAAA,IAAA,CAAA,GAAK,IAAA;AACL,EAAAA,sBAAA,OAAA,CAAA,GAAQ,IAAA;AACR,EAAAA,sBAAA,QAAA,CAAA,GAAS,QAAA;AAGT,EAAAA,sBAAA,WAAA,CAAA,GAAY,MAAA;AACZ,EAAAA,sBAAA,WAAA,CAAA,GAAY,MAAA;AACZ,EAAAA,sBAAA,WAAA,CAAA,GAAY,MAAA;AACZ,EAAAA,sBAAA,YAAA,CAAA,GAAa,OAAA;AACb,EAAAA,sBAAA,SAAA,CAAA,GAAU,UAAA;AArBA,EAAA,OAAAA,qBAAAA;AAAA,CAAA,EAAA,oBAAA,IAAA,EAAA;AA2BL,IAAK,qBAAA,qBAAAC,sBAAAA,KAAL;AACL,EAAAA,uBAAA,SAAA,CAAA,GAAU,SAAA;AACV,EAAAA,uBAAA,UAAA,CAAA,GAAW,UAAA;AACX,EAAAA,uBAAA,WAAA,CAAA,GAAY,WAAA;AACZ,EAAAA,uBAAA,SAAA,CAAA,GAAU,SAAA;AAJA,EAAA,OAAAA,sBAAAA;AAAA,CAAA,EAAA,qBAAA,IAAA,EAAA;AAUL,IAAK,qBAAA,qBAAAC,sBAAAA,KAAL;AACL,EAAAA,uBAAA,WAAA,CAAA,GAAY,WAAA;AACZ,EAAAA,uBAAA,YAAA,CAAA,GAAa,YAAA;AACb,EAAAA,uBAAA,QAAA,CAAA,GAAS,QAAA;AACT,EAAAA,uBAAA,OAAA,CAAA,GAAQ,OAAA;AACR,EAAAA,uBAAA,aAAA,CAAA,GAAc,aAAA;AACd,EAAAA,uBAAA,SAAA,CAAA,GAAU,SAAA;AACV,EAAAA,uBAAA,eAAA,CAAA,GAAgB,eAAA;AAPN,EAAA,OAAAA,sBAAAA;AAAA,CAAA,EAAA,qBAAA,IAAA,EAAA;AAaL,IAAK,aAAA,qBAAAC,cAAAA,KAAL;AACL,EAAAA,eAAA,KAAA,CAAA,GAAM,KAAA;AACN,EAAAA,eAAA,MAAA,CAAA,GAAO,MAAA;AACP,EAAAA,eAAA,KAAA,CAAA,GAAM,KAAA;AACN,EAAAA,eAAA,MAAA,CAAA,GAAO,MAAA;AACP,EAAAA,eAAA,OAAA,CAAA,GAAQ,OAAA;AACR,EAAAA,eAAA,MAAA,CAAA,GAAO,MAAA;AACP,EAAAA,eAAA,KAAA,CAAA,GAAM,KAAA;AACN,EAAAA,eAAA,MAAA,CAAA,GAAO,MAAA;AARG,EAAA,OAAAA,cAAAA;AAAA,CAAA,EAAA,aAAA,IAAA,EAAA;AAgBL,IAAK,oBAAA,qBAAAC,qBAAAA,KAAL;AAEL,EAAAA,sBAAA,QAAA,CAAA,GAAS,QAAA;AAGT,EAAAA,sBAAA,IAAA,CAAA,GAAK,IAAA;AAGL,EAAAA,sBAAA,MAAA,CAAA,GAAO,OAAA;AACP,EAAAA,sBAAA,MAAA,CAAA,GAAO,OAAA;AACP,EAAAA,sBAAA,MAAA,CAAA,GAAO,OAAA;AACP,EAAAA,sBAAA,MAAA,CAAA,GAAO,OAAA;AACP,EAAAA,sBAAA,MAAA,CAAA,GAAO,OAAA;AAGP,EAAAA,sBAAA,IAAA,CAAA,GAAK,IAAA;AAGL,EAAAA,sBAAA,MAAA,CAAA,GAAO,OAAA;AACP,EAAAA,sBAAA,MAAA,CAAA,GAAO,OAAA;AACP,EAAAA,sBAAA,MAAA,CAAA,GAAO,OAAA;AACP,EAAAA,sBAAA,MAAA,CAAA,GAAO,OAAA;AACP,EAAAA,sBAAA,MAAA,CAAA,GAAO,OAAA;AACP,EAAAA,sBAAA,MAAA,CAAA,GAAO,OAAA;AACP,EAAAA,sBAAA,MAAA,CAAA,GAAO,OAAA;AAGP,EAAAA,sBAAA,IAAA,CAAA,GAAK,IAAA;AACL,EAAAA,sBAAA,IAAA,CAAA,GAAK,IAAA;AACL,EAAAA,sBAAA,IAAA,CAAA,GAAK,IAAA;AACL,EAAAA,sBAAA,IAAA,CAAA,GAAK,IAAA;AACL,EAAAA,sBAAA,IAAA,CAAA,GAAK,IAAA;AACL,EAAAA,sBAAA,IAAA,CAAA,GAAK,IAAA;AACL,EAAAA,sBAAA,IAAA,CAAA,GAAK,IAAA;AAGL,EAAAA,sBAAA,IAAA,CAAA,GAAK,IAAA;AACL,EAAAA,sBAAA,IAAA,CAAA,GAAK,IAAA;AACL,EAAAA,sBAAA,IAAA,CAAA,GAAK,IAAA;AACL,EAAAA,sBAAA,IAAA,CAAA,GAAK,IAAA;AAGL,EAAAA,sBAAA,IAAA,CAAA,GAAK,IAAA;AACL,EAAAA,sBAAA,IAAA,CAAA,GAAK,IAAA;AACL,EAAAA,sBAAA,IAAA,CAAA,GAAK,IAAA;AACL,EAAAA,sBAAA,IAAA,CAAA,GAAK,IAAA;AA7CK,EAAA,OAAAA,qBAAAA;AAAA,CAAA,EAAA,oBAAA,IAAA,EAAA;AAqDL,IAAK,4BAAA,qBAAAC,6BAAAA,KAAL;AAEL,EAAAA,8BAAA,KAAA,CAAA,GAAM,KAAA;AACN,EAAAA,8BAAA,KAAA,CAAA,GAAM,KAAA;AACN,EAAAA,8BAAA,OAAA,CAAA,GAAQ,OAAA;AACR,EAAAA,8BAAA,KAAA,CAAA,GAAM,KAAA;AACN,EAAAA,8BAAA,MAAA,CAAA,GAAO,MAAA;AACP,EAAAA,8BAAA,MAAA,CAAA,GAAO,MAAA;AAGP,EAAAA,8BAAA,QAAA,CAAA,GAAS,QAAA;AACT,EAAAA,8BAAA,KAAA,CAAA,GAAM,KAAA;AACN,EAAAA,8BAAA,KAAA,CAAA,GAAM,KAAA;AACN,EAAAA,8BAAA,MAAA,CAAA,GAAO,MAAA;AACP,EAAAA,8BAAA,OAAA,CAAA,GAAQ,OAAA;AAGR,EAAAA,8BAAA,MAAA,CAAA,GAAO,MAAA;AACP,EAAAA,8BAAA,MAAA,CAAA,GAAO,MAAA;AAGP,EAAAA,8BAAA,MAAA,CAAA,GAAO,MAAA;AACP,EAAAA,8BAAA,MAAA,CAAA,GAAO,MAAA;AACP,EAAAA,8BAAA,OAAA,CAAA,GAAQ,OAAA;AACR,EAAAA,8BAAA,OAAA,CAAA,GAAQ,OAAA;AACR,EAAAA,8BAAA,MAAA,CAAA,GAAO,MAAA;AACP,EAAAA,8BAAA,MAAA,CAAA,GAAO,MAAA;AAGP,EAAAA,8BAAA,MAAA,CAAA,GAAO,MAAA;AACP,EAAAA,8BAAA,UAAA,CAAA,GAAW,WAAA;AACX,EAAAA,8BAAA,UAAA,CAAA,GAAW,UAAA;AACX,EAAAA,8BAAA,MAAA,CAAA,GAAO,MAAA;AAGP,EAAAA,8BAAA,OAAA,CAAA,GAAQ,OAAA;AACR,EAAAA,8BAAA,QAAA,CAAA,GAAS,QAAA;AAGT,EAAAA,8BAAA,QAAA,CAAA,GAAS,SAAA;AACT,EAAAA,8BAAA,OAAA,CAAA,GAAQ,OAAA;AACR,EAAAA,8BAAA,OAAA,CAAA,GAAQ,OAAA;AAGR,EAAAA,8BAAA,kBAAA,CAAA,GAAmB,0BAAA;AACnB,EAAAA,8BAAA,uBAAA,CAAA,GAAwB,yBAAA;AA7Cd,EAAA,OAAAA,6BAAAA;AAAA,CAAA,EAAA,4BAAA,IAAA,EAAA;AAmDL,IAAK,mBAAA,qBAAAC,oBAAAA,KAAL;AACL,EAAAA,qBAAA,YAAA,CAAA,GAAa,YAAA;AACb,EAAAA,qBAAA,UAAA,CAAA,GAAW,UAAA;AACX,EAAAA,qBAAA,UAAA,CAAA,GAAW,UAAA;AACX,EAAAA,qBAAA,KAAA,CAAA,GAAM,KAAA;AACN,EAAAA,qBAAA,YAAA,CAAA,GAAa,YAAA;AACb,EAAAA,qBAAA,YAAA,CAAA,GAAa,YAAA;AACb,EAAAA,qBAAA,YAAA,CAAA,GAAa,YAAA;AACb,EAAAA,qBAAA,OAAA,CAAA,GAAQ,OAAA;AACR,EAAAA,qBAAA,QAAA,CAAA,GAAS,QAAA;AATC,EAAA,OAAAA,oBAAAA;AAAA,CAAA,EAAA,mBAAA,IAAA,EAAA;AA6BL,IAAK,0BAAA,qBAAAC,2BAAAA,KAAL;AAEL,EAAAA,4BAAA,eAAA,CAAA,GAAgB,gBAAA;AAChB,EAAAA,4BAAA,eAAA,CAAA,GAAgB,gBAAA;AAChB,EAAAA,4BAAA,eAAA,CAAA,GAAgB,gBAAA;AAChB,EAAAA,4BAAA,gBAAA,CAAA,GAAiB,iBAAA;AACjB,EAAAA,4BAAA,gBAAA,CAAA,GAAiB,iBAAA;AAGjB,EAAAA,4BAAA,mBAAA,CAAA,GAAoB,oBAAA;AACpB,EAAAA,4BAAA,iBAAA,CAAA,GAAkB,kBAAA;AAClB,EAAAA,4BAAA,mBAAA,CAAA,GAAoB,oBAAA;AACpB,EAAAA,4BAAA,mBAAA,CAAA,GAAoB,oBAAA;AACpB,EAAAA,4BAAA,2BAAA,CAAA,GAA4B,6BAAA;AAG5B,EAAAA,4BAAA,yBAAA,CAAA,GAA0B,2BAAA;AAC1B,EAAAA,4BAAA,uBAAA,CAAA,GAAwB,yBAAA;AAGxB,EAAAA,4BAAA,kBAAA,CAAA,GAAmB,mBAAA;AACnB,EAAAA,4BAAA,iBAAA,CAAA,GAAkB,kBAAA;AAGlB,EAAAA,4BAAA,cAAA,CAAA,GAAe,eAAA;AACf,EAAAA,4BAAA,eAAA,CAAA,GAAgB,gBAAA;AAzBN,EAAA,OAAAA,2BAAAA;AAAA,CAAA,EAAA,0BAAA,IAAA,EAAA;AA+BL,IAAK,iBAAA,qBAAAC,kBAAAA,KAAL;AACL,EAAAA,mBAAA,QAAA,CAAA,GAAS,QAAA;AACT,EAAAA,mBAAA,QAAA,CAAA,GAAS,QAAA;AACT,EAAAA,mBAAA,QAAA,CAAA,GAAS,QAAA;AACT,EAAAA,mBAAA,SAAA,CAAA,GAAU,SAAA;AACV,EAAAA,mBAAA,SAAA,CAAA,GAAU,SAAA;AALA,EAAA,OAAAA,kBAAAA;AAAA,CAAA,EAAA,iBAAA,IAAA,EAAA;AAWL,IAAK,wBAAA,qBAAAC,yBAAAA,KAAL;AACL,EAAAA,0BAAA,YAAA,CAAA,GAAa,aAAA;AACb,EAAAA,0BAAA,YAAA,CAAA,GAAa,aAAA;AACb,EAAAA,0BAAA,UAAA,CAAA,GAAW,WAAA;AACX,EAAAA,0BAAA,gBAAA,CAAA,GAAiB,kBAAA;AACjB,EAAAA,0BAAA,KAAA,CAAA,GAAM,KAAA;AACN,EAAAA,0BAAA,QAAA,CAAA,GAAS,QAAA;AANC,EAAA,OAAAA,yBAAAA;AAAA,CAAA,EAAA,wBAAA,IAAA,EAAA;AAaL,IAAK,sBAAA,qBAAAC,uBAAAA,KAAL;AAEL,EAAAA,wBAAA,QAAA,CAAA,GAAS,QAAA;AAET,EAAAA,wBAAA,QAAA,CAAA,GAAS,QAAA;AAET,EAAAA,wBAAA,SAAA,CAAA,GAAU,SAAA;AAEV,EAAAA,wBAAA,MAAA,CAAA,GAAO,MAAA;AAEP,EAAAA,wBAAA,OAAA,CAAA,GAAQ,OAAA;AAER,EAAAA,wBAAA,OAAA,CAAA,GAAQ,OAAA;AAER,EAAAA,wBAAA,KAAA,CAAA,GAAM,KAAA;AAEN,EAAAA,wBAAA,UAAA,CAAA,GAAW,UAAA;AAEX,EAAAA,wBAAA,YAAA,CAAA,GAAa,YAAA;AAEb,EAAAA,wBAAA,OAAA,CAAA,GAAQ,OAAA;AAER,EAAAA,wBAAA,QAAA,CAAA,GAAS,QAAA;AAET,EAAAA,wBAAA,UAAA,CAAA,GAAW,UAAA;AAEX,EAAAA,wBAAA,OAAA,CAAA,GAAQ,OAAA;AAER,EAAAA,wBAAA,QAAA,CAAA,GAAS,QAAA;AAET,EAAAA,wBAAA,aAAA,CAAA,GAAc,aAAA;AA9BJ,EAAA,OAAAA,uBAAAA;AAAA,CAAA,EAAA,sBAAA,IAAA,EAAA;AAoCL,IAAK,sBAAA,qBAAAC,uBAAAA,KAAL;AAEL,EAAAA,wBAAA,QAAA,CAAA,GAAS,QAAA;AAET,EAAAA,wBAAA,WAAA,CAAA,GAAY,WAAA;AAEZ,EAAAA,wBAAA,OAAA,CAAA,GAAQ,OAAA;AAER,EAAAA,wBAAA,QAAA,CAAA,GAAS,QAAA;AAET,EAAAA,wBAAA,MAAA,CAAA,GAAO,MAAA;AAEP,EAAAA,wBAAA,QAAA,CAAA,GAAS,QAAA;AAET,EAAAA,wBAAA,aAAA,CAAA,GAAc,aAAA;AAdJ,EAAA,OAAAA,uBAAAA;AAAA,CAAA,EAAA,sBAAA,IAAA,EAAA;;;AC5oBL,IAAM,6BAAA,GACX;AAAA;AAAA,EAEE,cAAA,EAAA,eAAA;AAAA,EACA,kBAAA,EAAA,oBAAA;AAAA,EACA,gBAAA,EAAA,iBAAA;AAAA,EACA,eAAA,EAAA,gBAAA;AAAA;AAAA,EAGA,aAAA,EAAA,cAAA;AAAA,EACA,kBAAA,EAAA,oBAAA;AAAA;AAAA,EAGA,cAAA,EAAA,eAAA;AAAA,EACA,oBAAA,EAAA,sBAAA;AAAA;AAAA,EAGA,mBAAA,EAAA,oBAAA;AAAA,EACA,wBAAA,EAAA,0BAAA;AAAA,EACA,0BAAA,EAAA,4BAAA;AAAA,EACA,uBAAA,EAAA,yBAAA;AAAA;AAAA,EAGA,eAAA,EAAA,gBAAA;AAAA,EACA,oBAAA,EAAA,sBAAA;AAAA;AAAA,EAGA,oBAAA,EAAA,sBAAA;AAAA,EACA,eAAA,EAAA,gBAAA;AAAA;AAAA,EAGA,wBAAA,EAAA,0BAAA;AAAA,EACA,uBAAA,EAAA,0BAAA;AAAA,EACA,sBAAA,EAAA,uBAAA;AAAA;AAAA,EAGA,cAAA,EAAA,eAAA;AAAA,EACA,mBAAA,EAAA,qBAAA;AAAA,EACA,WAAA,EAAA,YAAA;AAAA,EACA,gBAAA,EAAA,kBAAA;AAAA,EACA,YAAA,EAAA,aAAA;AAAA,EACA,gBAAA,EAAA,kBAAA;AAAA;AAAA,EAGA,iBAAA,EAAA,mBAAA;AAAA;AAAA,EAGA,cAAA,EAAA,uBAAA;AAAA,EACA,cAAA,EAAA,uBAAA;AAAA,EACA,qBAAA,EAAA,8BAAA;AAAA,EACA,oBAAA,EAAA,6BAAA;AAAA,EACA,gBAAA,EAAA,yBAAA;AAAA,EACA,iBAAA,EAAA,0BAAA;AAAA;AAAA,EAGA,cAAA,EAAA,eAAA;AACF;AAQK,IAAM,0BAAA,GAGT;AAAA,EACF,gBAAA,EAAA,eAAA;AAAA,EACA,gBAAA,EAAA,cAAA;AAAA,EACA,gBAAA,EAAA,cAAA;AAAA,EACA,iBAAA,EAAA,eAAA;AAAA,EACA,iBAAA,EAAA,eAAA;AAAA,EACA,oBAAA,EAAA,oBAAA;AAAA,EACA,kBAAA,EAAA,kBAAA;AAAA,EACA,oBAAA,EAAA,oBAAA;AAAA,EACA,oBAAA,EAAA,qBAAA;AAAA,EACA,6BAAA,EAAA,iBAAA;AAAA,EACA,2BAAA,EAAA,iBAAA;AAAA,EACA,yBAAA,EAAA,yBAAA;AAAA,EACA,mBAAA,EAAA,wBAAA;AAAA,EACA,kBAAA,EAAA,qBAAA;AAAA,EACA,eAAA,EAAA,eAAA;AAAA,EACA,gBAAA,EAAA,gBAAA;AACF;AAgBO,IAAM,kCAAA,GAGT,MAAA,CAAO,OAAA,CAAQ,6BAA6B,CAAA,CAAE,MAAA;AAAA,EAChD,CAAC,GAAA,EAAK,CAAC,WAAA,EAAa,SAAS,CAAA,KAAM;AACjC,IAAA,GAAA,CAAI,SAAS,CAAA,GAAI,WAAA;AACjB,IAAA,OAAO,GAAA;AAAA,EACT,CAAA;AAAA,EACA;AACF;ACvIA,IAAM,uBAAA,GAA0B,GAAA;AAKzB,IAAK,yBAAA,qBAAAC,0BAAAA,KAAL;AACL,EAAAA,2BAAA,QAAA,CAAA,GAAS,QAAA;AACT,EAAAA,2BAAA,YAAA,CAAA,GAAa,YAAA;AACb,EAAAA,2BAAA,WAAA,CAAA,GAAY,WAAA;AACZ,EAAAA,2BAAA,QAAA,CAAA,GAAS,QAAA;AAJC,EAAA,OAAAA,0BAAAA;AAAA,CAAA,EAAA,yBAAA,IAAA,EAAA;AAUL,IAAM,6BAAA,GAAgC9F,MAAE,MAAA,CAAO;AAAA,EACpD,GAAA,EAAKA,KAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,EAAI;AAAA,EACpB,MAAA,EAAQA,MAAE,MAAA,EAAO;AAAA,EACjB,KAAA,EAAOA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC3B,MAAA,EAAQA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC5B,QAAA,EAAUA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC9B,IAAA,EAAMA,MAAE,MAAA,EAAO;AAAA,EACf,OAAA,EAASA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC7B,KAAA,EAAOA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA;AACpB,CAAC;AAOM,IAAM,mCAAA,GAAsCA,MAAE,MAAA,CAAO;AAAA,EAC1D,KAAA,EAAOA,MAAE,MAAA,EAAO;AAAA,EAChB,MAAA,EAAQA,KAAAA,CAAE,UAAA,CAAW,yBAAyB,CAAA;AAAA,EAC9C,KAAA,EAAOA,MAAE,MAAA,CAAO;AAAA,IACd,GAAA,EAAKA,KAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,EAAI;AAAA,IACpB,SAAA,EAAWA,MAAE,MAAA,EAAO;AAAA,IACpB,MAAA,EAAQA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA;AAAS,GAC7B,CAAA;AAAA,EACD,MAAA,EAAQA,MACL,MAAA,CAAO;AAAA,IACN,OAAA,EAAS,8BAA8B,QAAA,EAAS;AAAA,IAChD,SAAA,EAAW,8BAA8B,QAAA,EAAS;AAAA,IAClD,QAAA,EAAUA,KAAAA,CAAE,KAAA,CAAM,6BAA6B,EAAE,QAAA;AAAS,GAC3D,EACA,QAAA,EAAS;AAAA,EACZ,QAAA,EAAUA,MACP,MAAA,CAAO;AAAA,IACN,QAAA,EAAUA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,IAC9B,KAAA,EAAOA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,IAC3B,MAAA,EAAQA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,IAC5B,MAAA,EAAQA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,IAC5B,KAAA,EAAOA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA;AAAS,GAC5B,EACA,QAAA,EAAS;AAAA,EACZ,QAAA,EAAUA,KAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,CAAI,CAAC,CAAA,CAAE,GAAA,CAAI,uBAAuB,CAAA,CAAE,QAAA,EAAS;AAAA,EAClE,KAAA,EAAOA,MACJ,MAAA,CAAO;AAAA,IACN,IAAA,EAAMA,MAAE,MAAA,EAAO;AAAA,IACf,OAAA,EAASA,MAAE,MAAA,EAAO;AAAA,IAClB,OAAA,EAASA,KAAAA,CAAE,MAAA,CAAOA,KAAAA,CAAE,MAAA,IAAUA,KAAAA,CAAE,OAAA,EAAS,CAAA,CAAE,QAAA;AAAS,GACrD,EACA,QAAA,EAAS;AAAA,EACZ,SAAA,EAAWA,KAAAA,CAAE,KAAA,CAAM,CAACA,KAAAA,CAAE,QAAO,EAAGA,KAAAA,CAAE,MAAA,EAAQ,CAAC,CAAA;AAAA,EAC3C,QAAA,EAAUA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA;AACvB,CAAC;AAWM,IAAM,mBAAA,GAAsBA,MAAE,MAAA,CAAO;AAAA,EAC1C,YAAA,EAAcA,MAAE,MAAA,EAAO;AAAA;AAAA,EACvB,WAAA,EAAaA,MAAE,MAAA,EAAO;AAAA;AAAA,EACtB,SAAA,EAAWA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA;AAAA,EAC/B,SAAA,EAAWA,MAAE,MAAA,EAAO;AAAA;AAAA,EACpB,SAAA,EAAWA,MAAE,MAAA,EAAO;AAAA;AAAA,EACpB,YAAA,EAAcA,MACX,MAAA,CAAO;AAAA,IACN,WAAA,EAAaA,MAAE,MAAA;AAAO,GACvB,EACA,QAAA,EAAS;AAAA,EACZ,iBAAA,EAAmBA,MAChB,MAAA,CAAO;AAAA,IACN,eAAA,EAAiBA,MAAE,MAAA;AAAO,GAC3B,EACA,QAAA,EAAS;AAAA,EACZ,gBAAA,EAAkBA,MACf,MAAA,CAAO;AAAA,IACN,kBAAA,EAAoBA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,IACxC,YAAA,EAAcA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA;AAAS,GACnC,EACA,QAAA,EAAS;AAAA,EACZ,EAAA,EAAIA,MAAE,MAAA,CAAO;AAAA,IACX,eAAA,EAAiBA,MAAE,MAAA,EAAO;AAAA;AAAA,IAC1B,eAAA,EAAiBA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,IACrC,MAAA,EAAQA,MAAE,MAAA,CAAO;AAAA,MACf,IAAA,EAAMA,MAAE,MAAA,EAAO;AAAA;AAAA,MACf,aAAA,EAAeA,MACZ,MAAA,CAAO;AAAA,QACN,WAAA,EAAaA,MAAE,MAAA;AAAO,OACvB,EACA,QAAA,EAAS;AAAA,MACZ,GAAA,EAAKA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA;AAAS,KAC1B,CAAA;AAAA,IACD,MAAA,EAAQA,MAAE,MAAA,CAAO;AAAA,MACf,GAAA,EAAKA,MAAE,MAAA,EAAO;AAAA;AAAA,MACd,IAAA,EAAMA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA;AAAA,MAC1B,IAAA,EAAMA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA;AAAA,MAC1B,SAAA,EAAWA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,MAC/B,SAAA,EAAWA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA;AAAS,KAChC;AAAA,GACF;AACH,CAAC;AAEM,IAAM,sBAAA,GAAyBA,MAAE,MAAA,CAAO;AAAA,EAC7C,OAAA,EAASA,KAAAA,CAAE,KAAA,CAAM,mBAAmB;AACtC,CAAC;AAWM,IAAM,2BAAA,GAA8BA,MAAE,MAAA,CAAO;AAAA,EAClD,EAAA,EAAIA,MAAE,IAAA,EAAK;AAAA;AAAA,EACX,SAAA,EAAWA,MAAE,MAAA,EAAO;AAAA;AAAA,EACpB,IAAA,EAAMA,MAAE,MAAA,EAAO;AAAA;AAAA,EACf,OAAOA,KAAAA,CAAE,IAAA,EAAK,CAAE,QAAA,GAAW,QAAA,EAAS;AAAA;AAAA,EACpC,UAAA,EAAYA,MAAE,MAAA,EAAO;AAAA;AAAA,EACrB,YAAYA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,GAAW,QAAA,EAAS;AAAA;AAAA,EAC3C,kBAAkBA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,GAAW,QAAA,EAAS;AAAA,EACjD,QAAA,EAAUA,KAAAA,CAAE,MAAA,CAAOA,KAAAA,CAAE,MAAA,EAAO,EAAGA,KAAAA,CAAE,OAAA,EAAS,CAAA,CAAE,QAAA,EAAS,CAAE,QAAA,EAAS;AAAA;AAAA,EAChE,SAASA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,GAAW,QAAA,EAAS;AAAA,EACxC,UAAUA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,GAAW,QAAA;AAClC,CAAC;AAEM,IAAM,4BAAA,GAA+BA,MAAE,MAAA,CAAO;AAAA,EACnD,MAAMA,KAAAA,CAAE,IAAA,CAAK,CAAC,QAAA,EAAU,QAAA,EAAU,QAAQ,CAAC,CAAA;AAAA;AAAA,EAC3C,KAAA,EAAOA,KAAAA,CAAE,OAAA,CAAQ,SAAS,CAAA;AAAA;AAAA,EAC1B,MAAA,EAAQA,KAAAA,CAAE,OAAA,CAAQ,SAAS,CAAA;AAAA;AAAA,EAC3B,MAAA,EAAQ,2BAAA,CAA4B,QAAA,EAAS,CAAE,QAAA,EAAS;AAAA;AAAA,EACxD,UAAA,EAAY,2BAAA,CAA4B,QAAA,EAAS,CAAE,QAAA;AAAS;AAC9D,CAAC;AAeM,IAAK,6BAAA,qBAAA+F,8BAAAA,KAAL;AACL,EAAAA,+BAAA,QAAA,CAAA,GAAS,QAAA;AACT,EAAAA,+BAAA,QAAA,CAAA,GAAS,QAAA;AACT,EAAAA,+BAAA,SAAA,CAAA,GAAU,SAAA;AACV,EAAAA,+BAAA,MAAA,CAAA,GAAO,MAAA;AACP,EAAAA,+BAAA,OAAA,CAAA,GAAQ,OAAA;AACR,EAAAA,+BAAA,OAAA,CAAA,GAAQ,OAAA;AACR,EAAAA,+BAAA,KAAA,CAAA,GAAM,KAAA;AACN,EAAAA,+BAAA,UAAA,CAAA,GAAW,UAAA;AACX,EAAAA,+BAAA,YAAA,CAAA,GAAa,YAAA;AACb,EAAAA,+BAAA,OAAA,CAAA,GAAQ,OAAA;AACR,EAAAA,+BAAA,QAAA,CAAA,GAAS,QAAA;AACT,EAAAA,+BAAA,UAAA,CAAA,GAAW,UAAA;AACX,EAAAA,+BAAA,OAAA,CAAA,GAAQ,OAAA;AACR,EAAAA,+BAAA,QAAA,CAAA,GAAS,QAAA;AACT,EAAAA,+BAAA,aAAA,CAAA,GAAc,aAAA;AAfJ,EAAA,OAAAA,8BAAAA;AAAA,CAAA,EAAA,6BAAA,IAAA,EAAA;AAqBL,IAAK,6BAAA,qBAAAC,8BAAAA,KAAL;AACL,EAAAA,+BAAA,QAAA,CAAA,GAAS,QAAA;AACT,EAAAA,+BAAA,WAAA,CAAA,GAAY,WAAA;AACZ,EAAAA,+BAAA,OAAA,CAAA,GAAQ,OAAA;AACR,EAAAA,+BAAA,QAAA,CAAA,GAAS,QAAA;AACT,EAAAA,+BAAA,MAAA,CAAA,GAAO,MAAA;AACP,EAAAA,+BAAA,QAAA,CAAA,GAAS,QAAA;AACT,EAAAA,+BAAA,aAAA,CAAA,GAAc,aAAA;AAPJ,EAAA,OAAAA,8BAAAA;AAAA,CAAA,EAAA,6BAAA,IAAA,EAAA;AAaL,IAAM,gCAAA,GAAmChG,MAAE,MAAA,CAAO;AAAA,EACvD,QAAA,EAAUA,KAAAA,CAAE,OAAA,EAAQ,CAAE,QAAA,EAAS;AAAA,EAC/B,OAAA,EAASA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC7B,cAAA,EAAgBA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EACpC,GAAA,EAAKA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EACzB,GAAA,EAAKA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EACzB,WAAWA,KAAAA,CAAE,MAAA,GAAS,GAAA,CAAI,CAAC,EAAE,QAAA,EAAS;AAAA,EACtC,WAAWA,KAAAA,CAAE,MAAA,GAAS,GAAA,CAAI,CAAC,EAAE,QAAA,EAAS;AAAA,EACtC,MAAMA,KAAAA,CAAE,KAAA,CAAMA,MAAE,MAAA,EAAQ,EAAE,QAAA,EAAS;AAAA,EACnC,UAAA,EAAYA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAChC,OAAA,EAASA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC7B,OAAA,EAASA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC7B,YAAA,EAAcA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA;AAC3B,CAAC;AAOM,IAAM,4BAAA,GAA+BA,MAAE,MAAA,CAAO;AAAA,EACnD,KAAA,EAAOA,KAAAA,CAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA;AAAA,EACvB,KAAA,EAAOA,MAAE,MAAA;AACX,CAAC;AAOD,IAAM,oCAAA,GAAuCA,MAAE,MAAA,CAAO;AAAA,EACpD,IAAA,EAAMA,MACH,MAAA,EAAO,CACP,IAAI,CAAC,CAAA,CACL,KAAA,CAAM,0BAAA,EAA4B,qDAAqD,CAAA;AAAA,EAC1F,IAAA,EAAMA,KAAAA,CAAE,UAAA,CAAW,6BAA6B,CAAA;AAAA,EAChD,KAAA,EAAOA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC3B,WAAA,EAAaA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EACjC,YAAA,EAAcA,KAAAA,CAAE,OAAA,EAAQ,CAAE,QAAA,EAAS;AAAA,EACnC,WAAA,EAAaA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EACjC,UAAA,EAAY,iCAAiC,QAAA,EAAS;AAAA,EACtD,OAAA,EAASA,KAAAA,CAAE,KAAA,CAAM,4BAA4B,EAAE,QAAA,EAAS;AAAA,EACxD,KAAA,EAAOA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC3B,KAAA,EAAOA,MAAE,MAAA,EAAO,CAAE,KAAI,CAAE,GAAA,CAAI,CAAC,CAAA,CAAE,QAAA,EAAS;AAAA,EACxC,MAAA,EAAQA,KAAAA,CAAE,OAAA,EAAQ,CAAE,QAAA,EAAS;AAAA,EAC7B,QAAA,EAAUA,KAAAA,CAAE,OAAA,EAAQ,CAAE,QAAA,EAAS;AAAA,EAC/B,MAAA,EAAQA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA;AACrB,CAAC,CAAA;AAMM,IAAM,gCAAA,GAgBR,qCAAqC,MAAA,CAAO;AAAA,EAC/C,OAAOA,KAAAA,CAAE,IAAA,CAAK,MAAM,gCAAgC,EAAE,QAAA,EAAS;AAAA,EAC/D,UAAA,EAAYA,MAAE,IAAA,CAAK,MAAMA,MAAE,KAAA,CAAM,gCAAgC,CAAC,CAAA,CAAE,QAAA;AACtE,CAAC;AAOM,IAAM,2BAAA,GAA8BA,MAAE,MAAA,CAAO;AAAA,EAClD,IAAA,EAAMA,KAAAA,CAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA;AAAA,EACtB,KAAA,EAAOA,KAAAA,CAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA;AAAA,EACvB,WAAA,EAAaA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EACjC,SAAA,EAAWA,KAAAA,CAAE,OAAA,EAAQ,CAAE,QAAA;AACzB,CAAC;AAOM,IAAM,gCAAA,GAAmCA,MAAE,MAAA,CAAO;AAAA,EACvD,OAAA,EAASA,MAAE,OAAA,EAAQ;AAAA,EACnB,QAAA,EAAUA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC9B,aAAA,EAAeA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EACnC,aAAA,EAAeA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EACnC,UAAA,EAAYA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA;AACzB,CAAC;AAOM,IAAM,kCAAA,GAAqCA,MAAE,MAAA,CAAO;AAAA,EACzD,YAAA,EAAcA,KAAAA,CAAE,UAAA,CAAW,6BAA6B,EAAE,QAAA,EAAS;AAAA,EACnE,YAAA,EAAc,iCAAiC,QAAA,EAAS;AAAA,EACxD,SAAA,EAAWA,KAAAA,CAAE,KAAA,CAAM,gCAAgC,EAAE,QAAA,EAAS;AAAA,EAC9D,cAAA,EAAgBA,KAAAA,CAAE,KAAA,CAAM,2BAA2B,EAAE,QAAA;AACvD,CAAC;AAOM,IAAM,sCAAA,GAAyCA,MAAE,MAAA,CAAO;AAAA,EAC7D,KAAA,EAAOA,MAAE,OAAA,EAAQ;AAAA,EACjB,MAAA,EAAQA,KAAAA,CAAE,MAAA,CAAOA,KAAAA,CAAE,MAAA,EAAO,EAAGA,KAAAA,CAAE,KAAA,CAAMA,KAAAA,CAAE,MAAA,EAAQ,CAAC,CAAA;AAAA,EAChD,QAAA,EAAUA,KAAAA,CAAE,MAAA,CAAOA,KAAAA,CAAE,MAAA,EAAO,EAAGA,KAAAA,CAAE,KAAA,CAAMA,KAAAA,CAAE,MAAA,EAAQ,CAAC,EAAE,QAAA,EAAS;AAAA,EAC7D,aAAA,EAAeA,KAAAA,CAAE,MAAA,CAAOA,KAAAA,CAAE,MAAA,IAAUA,KAAAA,CAAE,OAAA,EAAS,CAAA,CAAE,QAAA;AACnD,CAAC","file":"index.cjs","sourcesContent":["/**\n * Enum representing standardized error types used across the application.\n * @description These error types help classify different categories of errors such as validation issues and system-level failures.\n *\n * @example\n * ```typescript\n * import { ERROR_TYPE } from '@plyaz/types';\n *\n * const errorType = ERROR_TYPE.ValidationError; // 'validation.error'\n *\n * // Error handling example\n * if (error.type === ERROR_TYPE.RateLimitExceeded) {\n * // Handle rate limiting\n * }\n * ```\n */\nexport const ERROR_TYPE = {\n /** A general validation error (e.g., form or input errors). */\n ValidationError: 'validation.error',\n\n /** Error related to schema validation, such as JSON schema or API payload checks. */\n SchemaValidationError: 'validation.schema.error',\n\n /** Unhandled or unexpected system error. */\n InternalError: 'system.internal.error',\n\n /** System dependency is currently unavailable (e.g., database or external API). */\n ServiceUnavailable: 'system.service.unavailable',\n\n /** The request took too long and timed out. */\n TimeoutError: 'system.timeout',\n\n /** Too many requests made in a short period of time. */\n RateLimitExceeded: 'system.rate.limit.exceeded',\n} as const;\n\n/**\n * Enum representing the severity level of an error.\n * @description This allows categorization of errors by their potential impact on the system or user.\n *\n * @example\n * ```typescript\n * import { ERROR_SEVERITY } from '@plyaz/types';\n *\n * const severity = ERROR_SEVERITY.Critical; // 'critical'\n * const shouldAlert = severity === ERROR_SEVERITY.High || severity === ERROR_SEVERITY.Critical;\n * ```\n */\nexport const ERROR_SEVERITY = {\n /** Low severity - does not impact functionality significantly. */\n Low: 'low',\n\n /** Medium severity - minor disruption or warning. */\n Medium: 'medium',\n\n /** High severity - major issue requiring attention. */\n High: 'high',\n\n /** Critical severity - blocking or crashing issue. */\n Critical: 'critical',\n} as const;\n\n/**\n * Enum representing the category or origin of an error.\n * @description Useful for filtering or logging errors based on their source or nature.\n *\n * @example\n * ```typescript\n * import { ERROR_CATEGORY } from '@plyaz/types';\n *\n * const category = ERROR_CATEGORY.Blockchain; // 'blockchain'\n * const isClientError = category === ERROR_CATEGORY.Client;\n * ```\n */\nexport const ERROR_CATEGORY = {\n /** Client-side error (e.g., invalid request). */\n Client: 'client',\n\n /** Server-side error (e.g., logic failure or exception). */\n Server: 'server',\n\n /** Network-related error (e.g., unreachable endpoint). */\n Network: 'network',\n\n /** Blockchain-related error (e.g., transaction failure, gas limit). */\n Blockchain: 'blockchain',\n\n /** Validation-specific error (e.g., failed constraints or field errors). */\n Validation: 'validation',\n\n /** Authentication-related error (e.g., invalid credentials, expired token). */\n Authentication: 'authentication',\n\n /** Authorization-related error (e.g., insufficient permissions). */\n Authorization: 'authorization',\n\n /** Resource not found error. */\n NotFound: 'not.found',\n\n /** Rate limiting error (too many requests). */\n RateLimit: 'rate.limit',\n\n /** External service error (e.g., third-party API failure). */\n ExternalService: 'external.service',\n\n /** Timeout error (request exceeded time limit). */\n Timeout: 'timeout',\n\n /** Conflict error (e.g., resource state conflict). */\n Conflict: 'conflict',\n\n /** Cache-related error. */\n Cache: 'cache',\n\n /** Headers-related error (e.g., missing or invalid headers). */\n Headers: 'headers',\n\n /** Retry-related error (e.g., max retries exceeded). */\n Retry: 'retry',\n\n /** Strategy-related error (e.g., invalid retry or caching strategy). */\n Strategy: 'strategy',\n\n /** Regional-related error (e.g., region detection failure). */\n Regional: 'regional',\n\n /** Provider-related error (e.g., notification service provider failure). */\n Provider: 'provider',\n\n /** Queue-related error (e.g., queue full or processing failed). */\n Queue: 'queue',\n\n /** Webhook-related error (e.g., invalid signature or processing failure). */\n Webhook: 'webhook',\n\n /** Template-related error (e.g., template not found or rendering failed). */\n Template: 'template',\n\n /** Configuration-related error (e.g., invalid or missing configuration). */\n Configuration: 'configuration',\n\n /** Payment processing-related error (e.g., capture or settlement failure). */\n Processing: 'processing',\n\n /** Fraud detection or prevention failure. */\n Fraud: 'fraud',\n\n /** Compliance-related error (e.g., AML/KYC validation failure). */\n Compliance: 'compliance',\n\n /** Limits or quota-related error (e.g., exceeded transaction limit). */\n Limits: 'limits',\n\n /** System-level error (unexpected internal issue). */\n System: 'system',\n\n /** Refund-related error (e.g., duplicate or failed refund). */\n Refund: 'refund',\n\n /** Security-related error (e.g., encryption or signature failure). */\n Security: 'security',\n\n /** File operation error (e.g., upload, download, delete failure). */\n FileOperation: 'file.operation',\n\n /** Plugin-related error (e.g., plugin initialization or execution failure). */\n Plugin: 'plugin',\n\n /** Quota or storage limit error (e.g., exceeded storage quota). */\n Quota: 'quota',\n\n /** Database-related error (e.g., query failure, connection error). */\n Database: 'database',\n\n /** Unknown or unclassified error. */\n Unknown: 'unknown',\n} as const;\n\n/**\n * Internal package status codes (non-HTTP)\n * Used for internal configuration and validation errors that aren't HTTP-related\n * These are in the 1xxx range to distinguish from HTTP status codes (which are typically 100-599)\n *\n * @example\n * ```typescript\n * import { INTERNAL_STATUS_CODES } from '@plyaz/types';\n *\n * const statusCode = INTERNAL_STATUS_CODES.INVALID_CONFIGURATION; // 1001\n * if (error.statusCode >= 1000 && error.statusCode < 2000) {\n * // Handle internal package error\n * }\n * ```\n */\nexport const INTERNAL_STATUS_CODES = {\n // Configuration errors (1001-1009)\n INVALID_CONFIGURATION: 1001,\n MISSING_CONFIGURATION: 1002,\n CONFIGURATION_CONFLICT: 1003,\n CONFIGURATION_TRACKING_FAILED: 1004,\n DEBUG_TRACKING_FAILED: 1005,\n\n // Resource errors (1010-1019)\n RESOURCE_NOT_FOUND: 1010,\n RESOURCE_ALREADY_EXISTS: 1011,\n RESOURCE_UNAVAILABLE: 1012,\n\n // Validation errors (1020-1029)\n INVALID_PARAMETER: 1020,\n MISSING_PARAMETER: 1021,\n PARAMETER_OUT_OF_RANGE: 1022,\n\n // Strategy/preset errors (1030-1039)\n STRATEGY_NOT_FOUND: 1030,\n PRESET_NOT_FOUND: 1031,\n INVALID_STRATEGY: 1032,\n\n // Request/Response errors (1035-1039)\n REQUEST_FAILED: 1035,\n\n // Internal system errors (1040-1049)\n INITIALIZATION_FAILED: 1040,\n OPERATION_FAILED: 1041,\n STATE_CORRUPTION: 1042,\n SERIALIZATION_FAILED: 1043,\n DESERIALIZATION_FAILED: 1044,\n CONFIGURATION_INVALID: 1045,\n HEADER_PROCESSING_ERROR: 1046,\n REGION_DETECTION_ERROR: 1047,\n NETWORK_OVERRIDE_ERROR: 1048,\n} as const;\n\n/**\n * Mapping of error category values to camelCase emitter keys\n * Used by event systems to route errors to appropriate handlers\n *\n * @example\n * ```typescript\n * import { ERROR_CATEGORY, ERROR_CATEGORY_TO_EMITTER_KEY } from '@plyaz/types';\n *\n * const category = ERROR_CATEGORY.RateLimit; // 'rate.limit'\n * const emitterKey = ERROR_CATEGORY_TO_EMITTER_KEY[category]; // 'rateLimit'\n *\n * // Use in event emitter\n * eventEmitter.emit(`error:${emitterKey}`, error);\n * ```\n */\nexport const ERROR_CATEGORY_TO_EMITTER_KEY = {\n [ERROR_CATEGORY.Network]: 'network',\n [ERROR_CATEGORY.Validation]: 'validation',\n [ERROR_CATEGORY.Authentication]: 'authentication',\n [ERROR_CATEGORY.Authorization]: 'authorization',\n [ERROR_CATEGORY.RateLimit]: 'rateLimit',\n [ERROR_CATEGORY.Server]: 'server',\n [ERROR_CATEGORY.Timeout]: 'timeout',\n [ERROR_CATEGORY.NotFound]: 'notFound',\n [ERROR_CATEGORY.Conflict]: 'conflict',\n [ERROR_CATEGORY.Client]: 'client',\n [ERROR_CATEGORY.ExternalService]: 'externalService',\n [ERROR_CATEGORY.Cache]: 'cache',\n [ERROR_CATEGORY.Headers]: 'headers',\n [ERROR_CATEGORY.Retry]: 'retry',\n [ERROR_CATEGORY.Blockchain]: 'blockchain',\n [ERROR_CATEGORY.Strategy]: 'strategy',\n [ERROR_CATEGORY.Regional]: 'regional',\n [ERROR_CATEGORY.Provider]: 'provider',\n [ERROR_CATEGORY.Queue]: 'queue',\n [ERROR_CATEGORY.Webhook]: 'webhook',\n [ERROR_CATEGORY.Template]: 'template',\n [ERROR_CATEGORY.Configuration]: 'configuration',\n [ERROR_CATEGORY.Processing]: 'processing',\n [ERROR_CATEGORY.Fraud]: 'fraud',\n [ERROR_CATEGORY.Compliance]: 'compliance',\n [ERROR_CATEGORY.Limits]: 'limits',\n [ERROR_CATEGORY.System]: 'system',\n [ERROR_CATEGORY.Refund]: 'refund',\n [ERROR_CATEGORY.Security]: 'security',\n [ERROR_CATEGORY.FileOperation]: 'fileOperation',\n [ERROR_CATEGORY.Plugin]: 'plugin',\n [ERROR_CATEGORY.Quota]: 'quota',\n [ERROR_CATEGORY.Database]: 'database',\n [ERROR_CATEGORY.Unknown]: 'unknown',\n} as const satisfies Record<(typeof ERROR_CATEGORY)[keyof typeof ERROR_CATEGORY], string>;\n\n/**\n * Common operation names used in error context\n * These are optional helpers - you can use any freeform string in context.operation\n *\n * @example\n * ```typescript\n * import { COMMON_OPERATIONS } from '@plyaz/types';\n *\n * const context = { operation: COMMON_OPERATIONS.STORAGE };\n * // Or just use a string:\n * const context2 = { operation: 'custom-operation' };\n * ```\n */\nexport const COMMON_OPERATIONS = {\n // Data operations\n STORAGE: 'storage',\n RETRIEVAL: 'retrieval',\n INVALIDATION: 'invalidation',\n DELETION: 'deletion',\n\n // Processing operations\n VALIDATION: 'validation',\n ENRICHMENT: 'enrichment',\n SERIALIZATION: 'serialization',\n DESERIALIZATION: 'deserialization',\n\n // API operations\n REQUEST: 'request',\n RESPONSE: 'response',\n RETRY: 'retry',\n REVALIDATION: 'revalidation',\n POLLING: 'polling',\n\n // Configuration operations\n INITIALIZATION: 'initialization',\n CONFIGURATION: 'configuration',\n PRESET_LOOKUP: 'preset-lookup',\n REGIONAL_DETECTION: 'regional-detection',\n\n // Strategy operations\n STRATEGY_EXECUTION: 'strategy-execution',\n FALLBACK: 'fallback',\n\n // Event operations\n SUBSCRIPTION: 'subscription',\n PUBLICATION: 'publication',\n EVENT_HANDLING: 'event-handling',\n\n // Debugging operations\n DEBUG: 'debug',\n DEBUG_TRACKING: 'debug-tracking',\n TRACKING: 'tracking',\n MONITORING: 'monitoring',\n\n // Network operations\n NETWORK_CHECK: 'network-check',\n ENDPOINT_BUILD: 'endpoint-build',\n CONTEXT_SETUP: 'context-setup',\n\n // Notification operations\n SEND: 'send',\n RENDER: 'render',\n QUEUE: 'queue',\n PROCESS: 'process',\n} as const;\n\n/**\n * Common field names used in error context\n * These are optional helpers - you can use any freeform string in context.field\n *\n * @example\n * ```typescript\n * import { COMMON_FIELDS } from '@plyaz/types';\n *\n * const context = { field: COMMON_FIELDS.EMAIL };\n * // Or just use a string:\n * const context2 = { field: 'customField' };\n * ```\n */\nexport const COMMON_FIELDS = {\n // Storage fields\n STORAGE: 'storage',\n CACHE: 'cache',\n\n // Configuration fields\n CONFIG: 'config',\n PRESET_NAME: 'presetName',\n PRESET_ID: 'presetId',\n\n // HTTP fields\n HEADERS: 'headers',\n URL: 'url',\n METHOD: 'method',\n\n // Strategy fields\n STRATEGY: 'strategy',\n\n // Retry fields\n RETRY_COUNT: 'retryCount',\n MAX_RETRIES: 'maxRetries',\n\n // Polling fields\n POLLING_INTERVAL: 'pollingInterval',\n\n // Event fields\n TOPIC: 'topic',\n CHANNEL: 'channel',\n\n // API fields\n ENDPOINT: 'endpoint',\n CLIENT: 'client',\n\n // Network fields\n NETWORK_TYPE: 'networkType',\n TIME_INTERVAL: 'timeInterval',\n\n // Notification fields\n EMAIL: 'email',\n PHONE: 'phoneNumber',\n RECIPIENT: 'recipient',\n TEMPLATE: 'template',\n PROVIDER: 'provider',\n} as const;\n\n/**\n * Common storage type names\n * These are optional helpers - you can use any freeform string in context.storageType\n *\n * @example\n * ```typescript\n * import { COMMON_STORAGE_TYPES } from '@plyaz/types';\n *\n * const context = { storageType: COMMON_STORAGE_TYPES.REDIS };\n * // Or just use a string:\n * const context2 = { storageType: 'custom-storage' };\n * ```\n */\nexport const COMMON_STORAGE_TYPES = {\n PRIMARY: 'primary',\n FALLBACK: 'fallback',\n MEMORY: 'memory',\n SESSION: 'session',\n LOCAL: 'local',\n REDIS: 'redis',\n DATABASE: 'database',\n} as const;\n\n/**\n * Namespaces for categorizing error exceptions classes in different packages and category based exceptions\n */\nexport const ERROR_EXCEPTIONS_NAMESPACES = {\n BASE: 'base',\n API: 'api',\n AUTH: 'auth',\n NOTIFICATIONS: 'notifications',\n STORAGE: 'storage',\n DB: 'db',\n VALIDATION: 'validation',\n GENERIC: 'generic',\n PAYMENTS: 'payments',\n ERRORS: 'errors',\n LOGGER: 'logger',\n TYPES: 'types',\n CONFIG: 'config',\n UTILS: 'utils',\n EVENTS: 'events',\n TRANSLATIONS: 'translations',\n UI: 'ui',\n TESTING: 'testing',\n CORE: 'core',\n STORE: 'store',\n WEB3: 'web3',\n MONITORING: 'monitoring',\n HOOKS: 'hooks',\n COMMON: 'common',\n COMPLIANCE: 'compliance',\n PAYMENT_WEBHOOKS: 'payment-webhook',\n};\n","/**\n * HTTP Status Code Constants\n *\n * Common HTTP status codes used throughout the application.\n * Based on RFC 9110 (HTTP Semantics) and common usage patterns.\n *\n * @module http/constants\n */\n\n/**\n * Standard HTTP status codes\n */\nexport const HTTP_STATUS = {\n // 1xx Informational\n /**\n * 100 Continue - The initial part of a request has been received\n */\n CONTINUE: 100,\n\n /**\n * 101 Switching Protocols - The server is switching protocols\n */\n SWITCHING_PROTOCOLS: 101,\n\n /**\n * 102 Processing - The server has received and is processing the request\n */\n PROCESSING: 102,\n\n /**\n * 103 Early Hints - Used to return some response headers before final HTTP message\n */\n EARLY_HINTS: 103,\n\n // 2xx Success\n /**\n * 200 OK - The request succeeded\n */\n OK: 200,\n\n /**\n * 201 Created - The request succeeded and a new resource was created\n */\n CREATED: 201,\n\n /**\n * 202 Accepted - The request has been received but not yet acted upon\n */\n ACCEPTED: 202,\n\n /**\n * 203 Non-Authoritative Information - The returned metadata is not from the origin server\n */\n NON_AUTHORITATIVE_INFORMATION: 203,\n\n /**\n * 204 No Content - There is no content to send for this request\n */\n NO_CONTENT: 204,\n\n /**\n * 205 Reset Content - Tells the user agent to reset the document\n */\n RESET_CONTENT: 205,\n\n /**\n * 206 Partial Content - The server is delivering only part of the resource\n */\n PARTIAL_CONTENT: 206,\n\n /**\n * 207 Multi-Status - Conveys information about multiple resources\n */\n MULTI_STATUS: 207,\n\n /**\n * 208 Already Reported - The members of a DAV binding have already been enumerated\n */\n ALREADY_REPORTED: 208,\n\n /**\n * 226 IM Used - The server has fulfilled a request for the resource\n */\n IM_USED: 226,\n\n // 3xx Redirection\n /**\n * 300 Multiple Choices - Multiple options for the resource are available\n */\n MULTIPLE_CHOICES: 300,\n\n /**\n * 301 Moved Permanently - The URL of the requested resource has been changed permanently\n */\n MOVED_PERMANENTLY: 301,\n\n /**\n * 302 Found - The resource resides temporarily under a different URI\n */\n FOUND: 302,\n\n /**\n * 303 See Other - Direct the client to get the resource at another URI\n */\n SEE_OTHER: 303,\n\n /**\n * 304 Not Modified - The cached version is still valid\n */\n NOT_MODIFIED: 304,\n\n /**\n * 305 Use Proxy - Defined in a previous version of the HTTP specification\n */\n USE_PROXY: 305,\n\n /**\n * 307 Temporary Redirect - The request should be repeated with another URI\n */\n TEMPORARY_REDIRECT: 307,\n\n /**\n * 308 Permanent Redirect - The resource is permanently located at another URI\n */\n PERMANENT_REDIRECT: 308,\n\n // 4xx Client Errors\n /**\n * 400 Bad Request - The server cannot process the request due to client error\n */\n BAD_REQUEST: 400,\n\n /**\n * 401 Unauthorized - Authentication is required and has failed or not been provided\n */\n UNAUTHORIZED: 401,\n\n /**\n * 402 Payment Required - Reserved for future use\n */\n PAYMENT_REQUIRED: 402,\n\n /**\n * 403 Forbidden - The server understood the request but refuses to authorize it\n */\n FORBIDDEN: 403,\n\n /**\n * 404 Not Found - The server cannot find the requested resource\n */\n NOT_FOUND: 404,\n\n /**\n * 405 Method Not Allowed - The request method is not supported for the requested resource\n */\n METHOD_NOT_ALLOWED: 405,\n\n /**\n * 406 Not Acceptable - The requested resource is not available in a format acceptable to the client\n */\n NOT_ACCEPTABLE: 406,\n\n /**\n * 407 Proxy Authentication Required - The client must authenticate itself with the proxy\n */\n PROXY_AUTHENTICATION_REQUIRED: 407,\n\n /**\n * 408 Request Timeout - The server timed out waiting for the request\n */\n REQUEST_TIMEOUT: 408,\n\n /**\n * 409 Conflict - The request conflicts with the current state of the server\n */\n CONFLICT: 409,\n\n /**\n * 410 Gone - The requested resource is no longer available and will not be available again\n */\n GONE: 410,\n\n /**\n * 411 Length Required - The request did not specify the length of its content\n */\n LENGTH_REQUIRED: 411,\n\n /**\n * 412 Precondition Failed - The server does not meet one of the preconditions\n */\n PRECONDITION_FAILED: 412,\n\n /**\n * 413 Payload Too Large - The request is larger than the server is willing to process\n */\n PAYLOAD_TOO_LARGE: 413,\n\n /**\n * 414 URI Too Long - The URI provided was too long for the server to process\n */\n URI_TOO_LONG: 414,\n\n /**\n * 415 Unsupported Media Type - The request entity has a media type not supported by the server\n */\n UNSUPPORTED_MEDIA_TYPE: 415,\n\n /**\n * 416 Range Not Satisfiable - The client has asked for a portion of the file that the server cannot supply\n */\n RANGE_NOT_SATISFIABLE: 416,\n\n /**\n * 417 Expectation Failed - The server cannot meet the requirements of the Expect request-header field\n */\n EXPECTATION_FAILED: 417,\n\n /**\n * 418 I'm a teapot - The server refuses to brew coffee because it is a teapot\n */\n IM_A_TEAPOT: 418,\n\n /**\n * 421 Misdirected Request - The request was directed at a server that is not able to produce a response\n */\n MISDIRECTED_REQUEST: 421,\n\n /**\n * 422 Unprocessable Entity - The request was well-formed but was unable to be followed due to semantic errors\n */\n UNPROCESSABLE_ENTITY: 422,\n\n /**\n * 423 Locked - The resource that is being accessed is locked\n */\n LOCKED: 423,\n\n /**\n * 424 Failed Dependency - The request failed due to failure of a previous request\n */\n FAILED_DEPENDENCY: 424,\n\n /**\n * 425 Too Early - The server is unwilling to risk processing a request that might be replayed\n */\n TOO_EARLY: 425,\n\n /**\n * 426 Upgrade Required - The client should switch to a different protocol\n */\n UPGRADE_REQUIRED: 426,\n\n /**\n * 428 Precondition Required - The origin server requires the request to be conditional\n */\n PRECONDITION_REQUIRED: 428,\n\n /**\n * 429 Too Many Requests - The user has sent too many requests in a given amount of time\n */\n TOO_MANY_REQUESTS: 429,\n\n /**\n * 431 Request Header Fields Too Large - The server is unwilling to process the request because its header fields are too large\n */\n REQUEST_HEADER_FIELDS_TOO_LARGE: 431,\n\n /**\n * 451 Unavailable For Legal Reasons - The user requested a resource that cannot legally be provided\n */\n UNAVAILABLE_FOR_LEGAL_REASONS: 451,\n\n // 5xx Server Errors\n /**\n * 500 Internal Server Error - The server encountered an unexpected condition\n */\n INTERNAL_SERVER_ERROR: 500,\n\n /**\n * 501 Not Implemented - The server does not support the functionality required to fulfill the request\n */\n NOT_IMPLEMENTED: 501,\n\n /**\n * 502 Bad Gateway - The server received an invalid response from the upstream server\n */\n BAD_GATEWAY: 502,\n\n /**\n * 503 Service Unavailable - The server is not ready to handle the request\n */\n SERVICE_UNAVAILABLE: 503,\n\n /**\n * 504 Gateway Timeout - The server did not get a response in time from the upstream server\n */\n GATEWAY_TIMEOUT: 504,\n\n /**\n * 505 HTTP Version Not Supported - The HTTP version used in the request is not supported by the server\n */\n HTTP_VERSION_NOT_SUPPORTED: 505,\n\n /**\n * 506 Variant Also Negotiates - The server has an internal configuration error\n */\n VARIANT_ALSO_NEGOTIATES: 506,\n\n /**\n * 507 Insufficient Storage - The server is unable to store the representation needed to complete the request\n */\n INSUFFICIENT_STORAGE: 507,\n\n /**\n * 508 Loop Detected - The server detected an infinite loop while processing the request\n */\n LOOP_DETECTED: 508,\n\n /**\n * 510 Not Extended - Further extensions to the request are required for the server to fulfill it\n */\n NOT_EXTENDED: 510,\n\n /**\n * 511 Network Authentication Required - The client needs to authenticate to gain network access\n */\n NETWORK_AUTHENTICATION_REQUIRED: 511,\n} as const;\n\n/**\n * Type for HTTP status codes\n */\nexport type HttpStatusCode = (typeof HTTP_STATUS)[keyof typeof HTTP_STATUS];\n","/**\n * Unified Error Codes and Definitions\n * Centralized source of truth for ALL error handling across @plyaz packages\n *\n * This file is the single source of truth for:\n * - All error codes\n * - All error definitions\n * - Error code to definition mappings\n */\n\nimport { HTTP_STATUS } from '../http/constants';\nimport { ERROR_CATEGORY, ERROR_SEVERITY } from './enums';\nimport type { ErrorDefinitions } from './types';\n\n/**\n * All Error Codes\n * Combined error codes from all @plyaz packages\n */\nexport const ERROR_CODES = {\n // ===== Generic/Common Errors =====\n // These are package-agnostic error codes that can be used across all packages\n NOT_IMPLEMENTED: 'not.implemented',\n PROVIDER_NOT_IMPLEMENTED: 'provider.not.implemented',\n FEATURE_NOT_SUPPORTED: 'feature.not.supported',\n\n // ===== API Package Errors =====\n // Client Configuration\n CLIENT_INITIALIZATION_FAILED: 'CLIENT_INITIALIZATION_FAILED',\n CLIENT_INVALID_CONFIG: 'CLIENT_INVALID_CONFIG',\n CLIENT_MISSING_BASE_URL: 'CLIENT_MISSING_BASE_URL',\n CLIENT_CANCELLED: 'CLIENT_CANCELLED',\n CONFIG_VALIDATION_FAILED: 'CONFIG_VALIDATION_FAILED',\n HEADER_PROCESSING_FAILED: 'HEADER_PROCESSING_FAILED',\n NETWORK_OVERRIDE_FAILED: 'NETWORK_OVERRIDE_FAILED',\n\n // Request\n REQUEST_TIMEOUT: 'REQUEST_TIMEOUT',\n REQUEST_ABORTED: 'REQUEST_ABORTED',\n REQUEST_INVALID_PARAMS: 'REQUEST_INVALID_PARAMS',\n REQUEST_PREPARATION_FAILED: 'REQUEST_PREPARATION_FAILED',\n\n // Response\n RESPONSE_INVALID_FORMAT: 'RESPONSE_INVALID_FORMAT',\n RESPONSE_PARSING_FAILED: 'RESPONSE_PARSING_FAILED',\n\n // Authentication/Authorization\n AUTH_UNAUTHORIZED: 'AUTH_UNAUTHORIZED',\n AUTH_FORBIDDEN: 'AUTH_FORBIDDEN',\n\n // Rate Limiting\n RATE_LIMIT_EXCEEDED: 'RATE_LIMIT_EXCEEDED',\n\n // Resources\n RESOURCE_NOT_FOUND: 'RESOURCE_NOT_FOUND',\n RESOURCE_CONFLICT: 'RESOURCE_CONFLICT',\n\n // Validation\n API_VALIDATION_FAILED: 'API_VALIDATION_FAILED',\n API_INVALID_INPUT: 'API_INVALID_INPUT',\n VALIDATION_ERROR: 'VALIDATION_ERROR',\n REQUIRED_FIELD_MISSING: 'REQUIRED_FIELD_MISSING',\n INVALID_FORMAT: 'INVALID_FORMAT',\n VALIDATION_INVALID_FORMAT: 'VALIDATION_INVALID_FORMAT',\n STRING_TOO_SHORT: 'STRING_TOO_SHORT',\n STRING_TOO_LONG: 'STRING_TOO_LONG',\n\n // Network\n NETWORK_ERROR: 'NETWORK_ERROR',\n CONNECTION_FAILED: 'CONNECTION_FAILED',\n NETWORK_CONNECTION_FAILED: 'NETWORK_CONNECTION_FAILED',\n NETWORK_OFFLINE: 'NETWORK_OFFLINE',\n NETWORK_DNS_FAILED: 'NETWORK_DNS_FAILED',\n NETWORK_TIMEOUT: 'NETWORK_TIMEOUT',\n NETWORK_PRESET_NOT_FOUND: 'NETWORK_PRESET_NOT_FOUND',\n NETWORK_CONFIGURATION_INVALID: 'NETWORK_CONFIGURATION_INVALID',\n\n // Server\n SERVER_ERROR: 'SERVER_ERROR',\n INTERNAL_SERVER_ERROR: 'INTERNAL_SERVER_ERROR',\n SERVICE_UNAVAILABLE: 'SERVICE_UNAVAILABLE',\n\n // Cache\n CACHE_READ_FAILED: 'CACHE_READ_FAILED',\n CACHE_WRITE_FAILED: 'CACHE_WRITE_FAILED',\n CACHE_INVALIDATION_FAILED: 'CACHE_INVALIDATION_FAILED',\n CACHE_STORAGE_FAILED: 'CACHE_STORAGE_FAILED',\n CACHE_RETRIEVAL_FAILED: 'CACHE_RETRIEVAL_FAILED',\n\n // Retry\n RETRY_LIMIT_EXCEEDED: 'RETRY_LIMIT_EXCEEDED',\n RETRY_FAILED: 'RETRY_FAILED',\n RETRY_EXHAUSTED: 'RETRY_EXHAUSTED',\n RETRY_STRATEGY_INVALID: 'RETRY_STRATEGY_INVALID',\n\n // Strategy\n STRATEGY_INVALID: 'STRATEGY_INVALID',\n STRATEGY_CONFLICT: 'STRATEGY_CONFLICT',\n STRATEGY_EXECUTION_FAILED: 'STRATEGY_EXECUTION_FAILED',\n\n // Headers\n HEADERS_ENRICHMENT_FAILED: 'HEADERS_ENRICHMENT_FAILED',\n HEADERS_VALIDATION_FAILED: 'HEADERS_VALIDATION_FAILED',\n HEADERS_MERGE_CONFLICT: 'HEADERS_MERGE_CONFLICT',\n\n // Regional\n REGION_DETECTION_FAILED: 'REGION_DETECTION_FAILED',\n REGIONAL_PRESET_NOT_FOUND: 'REGIONAL_PRESET_NOT_FOUND',\n\n // External Services\n EXTERNAL_SERVICE_ERROR: 'EXTERNAL_SERVICE_ERROR',\n\n // Timeout (generic)\n TIMEOUT: 'TIMEOUT',\n\n // Debugging\n DEBUG_TRACKING_FAILED: 'DEBUG_TRACKING_FAILED',\n\n // Polling\n POLLING_CANCELLED: 'POLLING_CANCELLED',\n POLLING_TIMEOUT: 'POLLING_TIMEOUT',\n POLLING_INVALID_CONFIG: 'POLLING_INVALID_CONFIG',\n\n // PubSub\n PUBSUB_SUBSCRIPTION_FAILED: 'PUBSUB_SUBSCRIPTION_FAILED',\n PUBSUB_PUBLICATION_FAILED: 'PUBSUB_PUBLICATION_FAILED',\n PUBSUB_INVALID_TOPIC: 'PUBSUB_INVALID_TOPIC',\n PUBSUB_CHANNEL_ERROR: 'PUBSUB_CHANNEL_ERROR',\n\n // Revalidation\n REVALIDATION_FAILED: 'REVALIDATION_FAILED',\n REVALIDATION_IN_PROGRESS: 'REVALIDATION_IN_PROGRESS',\n\n // Debugging\n DEBUG_OVERRIDE_FAILED: 'DEBUG_OVERRIDE_FAILED',\n DEBUG_CONFLICT_DETECTED: 'DEBUG_CONFLICT_DETECTED',\n\n // Endpoint\n ENDPOINT_BUILD_FAILED: 'ENDPOINT_BUILD_FAILED',\n ENDPOINT_NOT_FOUND: 'ENDPOINT_NOT_FOUND',\n ENDPOINT_INVALID_CONFIG: 'ENDPOINT_INVALID_CONFIG',\n\n // Event\n EVENT_HANDLER_FAILED: 'EVENT_HANDLER_FAILED',\n EVENT_EMISSION_FAILED: 'EVENT_EMISSION_FAILED',\n MONITORING_FAILED: 'MONITORING_FAILED',\n\n // Context\n CONTEXT_OPERATION_FAILED: 'CONTEXT_OPERATION_FAILED',\n\n // Generic\n CLIENT_ERROR: 'CLIENT_ERROR',\n UNKNOWN_ERROR: 'UNKNOWN_ERROR',\n\n // ===== Notification Package Errors =====\n // Provider\n NOTIFICATION_PROVIDER_SEND_FAILED: 'notification.provider.send.failed',\n NOTIFICATION_PROVIDER_CONFIGURATION_INVALID: 'notification.provider.configuration.invalid',\n NOTIFICATION_PROVIDER_RATE_LIMIT: 'notification.provider.rate.limit',\n NOTIFICATION_PROVIDER_AUTH_FAILED: 'notification.provider.auth.failed',\n NOTIFICATION_PROVIDER_TIMEOUT: 'notification.provider.timeout',\n NOTIFICATION_PROVIDER_UNAVAILABLE: 'notification.provider.unavailable',\n NOTIFICATION_PROVIDER_FEATURE_NOT_SUPPORTED: 'notification.provider.feature.not.supported',\n NOTIFICATION_ALL_PROVIDERS_FAILED: 'notification.all.providers.failed',\n\n // Validation\n NOTIFICATION_INVALID_INPUT: 'notification.validation.input.invalid',\n NOTIFICATION_INVALID_RECIPIENT: 'notification.validation.recipient.invalid',\n NOTIFICATION_INVALID_TEMPLATE: 'notification.validation.template.invalid',\n NOTIFICATION_INVALID_PAYLOAD: 'notification.validation.payload.invalid',\n NOTIFICATION_MISSING_REQUIRED_FIELD: 'notification.validation.field.required',\n NOTIFICATION_VALIDATION_FAILED: 'notification.validation.failed',\n\n // User Preferences\n NOTIFICATION_USER_OPTED_OUT: 'notification.user.opted.out',\n\n // Queue\n NOTIFICATION_QUEUE_FULL: 'notification.queue.full',\n NOTIFICATION_QUEUE_PROCESSING_FAILED: 'notification.queue.processing.failed',\n\n // Webhook\n NOTIFICATION_WEBHOOK_SIGNATURE_INVALID: 'notification.webhook.signature.invalid',\n NOTIFICATION_WEBHOOK_VALIDATION_FAILED: 'notification.webhook.validation.failed',\n NOTIFICATION_WEBHOOK_PROCESSING_FAILED: 'notification.webhook.processing.failed',\n\n // Template\n NOTIFICATION_TEMPLATE_NOT_FOUND: 'notification.template.not.found',\n NOTIFICATION_TEMPLATE_RENDER_FAILED: 'notification.template.render.failed',\n\n // General Notification\n NOTIFICATION_UNKNOWN_ERROR: 'notification.unknown.error',\n NOTIFICATION_INITIALIZATION_FAILED: 'notification.initialization.failed',\n\n // ===== Storage Package Errors =====\n // General\n STORAGE_UNKNOWN_ERROR: 'storage.unknown.error',\n STORAGE_INITIALIZATION_FAILED: 'storage.initialization.failed',\n\n // Adapter\n STORAGE_ADAPTER_NOT_FOUND: 'storage.adapter.not.found',\n STORAGE_ADAPTER_INITIALIZATION_FAILED: 'storage.adapter.initialization.failed',\n STORAGE_ADAPTER_CONFIGURATION_INVALID: 'storage.adapter.configuration.invalid',\n STORAGE_ADAPTER_ALREADY_REGISTERED: 'storage.adapter.already.registered',\n STORAGE_ADAPTER_CONNECTION_FAILED: 'storage.adapter.connection.failed',\n STORAGE_ADAPTER_AUTHENTICATION_FAILED: 'storage.adapter.authentication.failed',\n STORAGE_ADAPTER_OPERATION_FAILED: 'storage.adapter.operation.failed',\n STORAGE_ADAPTER_HEALTH_CHECK_FAILED: 'storage.adapter.health.check.failed',\n STORAGE_ADAPTER_UNAVAILABLE: 'storage.adapter.unavailable',\n STORAGE_ADAPTER_TIMEOUT: 'storage.adapter.timeout',\n STORAGE_ADAPTER_RATE_LIMIT: 'storage.adapter.rate.limit',\n STORAGE_ADAPTER_QUOTA_EXCEEDED: 'storage.adapter.quota.exceeded',\n STORAGE_ADAPTER_UNSUPPORTED_OPERATION: 'storage.adapter.unsupported.operation',\n STORAGE_ADAPTER_FEATURE_NOT_SUPPORTED: 'storage.adapter.feature.not.supported',\n STORAGE_NO_HEALTHY_ADAPTERS: 'storage.no.healthy.adapters',\n STORAGE_ALL_ADAPTERS_FAILED: 'storage.all.adapters.failed',\n\n // File Validation\n STORAGE_FILE_TOO_LARGE: 'storage.file.too.large',\n STORAGE_FILE_TOO_SMALL: 'storage.file.too.small',\n STORAGE_FILE_SIZE_INVALID: 'storage.file.size.invalid',\n STORAGE_FILE_TYPE_NOT_ALLOWED: 'storage.file.type.not.allowed',\n STORAGE_INVALID_MIME_TYPE: 'storage.invalid.mime.type',\n STORAGE_INVALID_FILE_EXTENSION: 'storage.invalid.file.extension',\n STORAGE_FILE_EXTENSION_INVALID: 'storage.file.extension.invalid',\n STORAGE_FILE_EXTENSION_MISMATCH: 'storage.file.extension.mismatch',\n STORAGE_EXECUTABLE_NOT_ALLOWED: 'storage.executable.not.allowed',\n STORAGE_VALIDATION_FAILED: 'storage.validation.failed',\n STORAGE_INVALID_FILE_CONTENT: 'storage.invalid.file.content',\n\n // Security\n STORAGE_SECURITY_VIRUS_DETECTED: 'storage.security.virus.detected',\n STORAGE_SECURITY_SCAN_FAILED: 'storage.security.scan.failed',\n STORAGE_SECURITY_ACCESS_DENIED: 'storage.security.access.denied',\n STORAGE_SECURITY_ENCRYPTION_FAILED: 'storage.security.encryption.failed',\n\n // File Operations\n STORAGE_FILE_UPLOAD_FAILED: 'storage.file.upload.failed',\n STORAGE_FILE_DOWNLOAD_FAILED: 'storage.file.download.failed',\n STORAGE_FILE_DELETE_FAILED: 'storage.file.delete.failed',\n STORAGE_FILE_UPDATE_FAILED: 'storage.file.update.failed',\n STORAGE_FILE_NOT_FOUND: 'storage.file.not.found',\n STORAGE_FILE_ALREADY_EXISTS: 'storage.file.already.exists',\n STORAGE_FILE_MOVE_FAILED: 'storage.file.move.failed',\n STORAGE_FILE_COPY_FAILED: 'storage.file.copy.failed',\n STORAGE_FILE_READ_FAILED: 'storage.file.read.failed',\n STORAGE_FILE_WRITE_FAILED: 'storage.file.write.failed',\n STORAGE_FILE_CORRUPTED: 'storage.file.corrupted',\n STORAGE_INVALID_OPERATION: 'storage.invalid.operation',\n\n // Metadata\n STORAGE_METADATA_EXTRACTION_FAILED: 'storage.metadata.extraction.failed',\n STORAGE_METADATA_INVALID: 'storage.metadata.invalid',\n STORAGE_METADATA_UPDATE_FAILED: 'storage.metadata.update.failed',\n\n // Media Processing\n STORAGE_MEDIA_PROCESSING_FAILED: 'storage.media.processing.failed',\n STORAGE_MEDIA_RESIZE_FAILED: 'storage.media.resize.failed',\n STORAGE_MEDIA_FORMAT_UNSUPPORTED: 'storage.media.format.unsupported',\n STORAGE_MEDIA_TRANSCODE_FAILED: 'storage.media.transcode.failed',\n STORAGE_MEDIA_THUMBNAIL_FAILED: 'storage.media.thumbnail.failed',\n STORAGE_MEDIA_INVALID_DIMENSIONS: 'storage.media.invalid.dimensions',\n\n // Template & PDF\n STORAGE_TEMPLATE_NOT_FOUND: 'storage.template.not.found',\n STORAGE_TEMPLATE_RENDER_FAILED: 'storage.template.render.failed',\n STORAGE_PDF_GENERATION_FAILED: 'storage.pdf.generation.failed',\n STORAGE_PDF_RENDERING_TIMEOUT: 'storage.pdf.rendering.timeout',\n\n // Queue\n STORAGE_QUEUE_FULL: 'storage.queue.full',\n STORAGE_QUEUE_PROCESSING_FAILED: 'storage.queue.processing.failed',\n STORAGE_QUEUE_ITEM_NOT_FOUND: 'storage.queue.item.not.found',\n\n // Compliance\n STORAGE_COMPLIANCE_VIOLATION: 'storage.compliance.violation',\n STORAGE_COMPLIANCE_RETENTION_VIOLATION: 'storage.compliance.retention.violation',\n STORAGE_COMPLIANCE_RETENTION_EXPIRED: 'storage.compliance.retention.expired',\n STORAGE_COMPLIANCE_IMMUTABLE_FILE: 'storage.compliance.immutable.file',\n STORAGE_COMPLIANCE_POLICY_NOT_FOUND: 'storage.compliance.policy.not.found',\n STORAGE_COMPLIANCE_SOFT_DELETE_REQUIRED: 'storage.compliance.soft.delete.required',\n STORAGE_COMPLIANCE_GRACE_PERIOD_ACTIVE: 'storage.compliance.grace.period.active',\n STORAGE_COMPLIANCE_DEFERRED_DELETION: 'storage.compliance.deferred.deletion',\n STORAGE_COMPLIANCE_PATTERN_PROTECTED: 'storage.compliance.pattern.protected',\n\n // Share Links\n STORAGE_SHARE_LINK_NOT_FOUND: 'storage.share.link.not.found',\n STORAGE_SHARE_LINK_EXPIRED: 'storage.share.link.expired',\n STORAGE_SHARE_LINK_MAX_DOWNLOADS: 'storage.share.link.max.downloads',\n STORAGE_SHARE_LINK_INVALID_PASSWORD: 'storage.share.link.invalid.password',\n\n // Plugin\n STORAGE_PLUGIN_NOT_FOUND: 'storage.plugin.not.found',\n STORAGE_PLUGIN_INITIALIZATION_FAILED: 'storage.plugin.initialization.failed',\n STORAGE_PLUGIN_EXECUTION_FAILED: 'storage.plugin.execution.failed',\n\n // VirusTotal Provider (Plugin)\n STORAGE_VIRUSTOTAL_BAD_REQUEST: 'storage.virustotal.bad_request',\n STORAGE_VIRUSTOTAL_AUTHENTICATION_REQUIRED: 'storage.virustotal.authentication_required',\n STORAGE_VIRUSTOTAL_WRONG_CREDENTIALS: 'storage.virustotal.wrong_credentials',\n STORAGE_VIRUSTOTAL_FILE_TOO_LARGE: 'storage.virustotal.file_too_large',\n STORAGE_VIRUSTOTAL_QUOTA_EXCEEDED: 'storage.virustotal.quota_exceeded',\n STORAGE_VIRUSTOTAL_ANALYSIS_NOT_FOUND: 'storage.virustotal.analysis_not_found',\n STORAGE_VIRUSTOTAL_SCAN_TIMEOUT: 'storage.virustotal.scan_timeout',\n STORAGE_VIRUSTOTAL_SCAN_FAILED: 'storage.virustotal.scan_failed',\n\n // CDN Provider Errors (Third-party services - cross-package)\n // Cloudflare CDN\n CLOUDFLARE_AUTHENTICATION_FAILED: 'cloudflare.authentication.failed',\n CLOUDFLARE_ZONE_NOT_FOUND: 'cloudflare.zone.not.found',\n CLOUDFLARE_PURGE_FAILED: 'cloudflare.purge.failed',\n CLOUDFLARE_RATE_LIMIT_EXCEEDED: 'cloudflare.rate.limit.exceeded',\n CLOUDFLARE_INVALID_URL: 'cloudflare.invalid.url',\n CLOUDFLARE_API_ERROR: 'cloudflare.api.error',\n\n // AWS CloudFront CDN\n CLOUDFRONT_AUTHENTICATION_FAILED: 'cloudfront.authentication.failed',\n CLOUDFRONT_DISTRIBUTION_NOT_FOUND: 'cloudfront.distribution.not.found',\n CLOUDFRONT_INVALIDATION_FAILED: 'cloudfront.invalidation.failed',\n CLOUDFRONT_QUOTA_EXCEEDED: 'cloudfront.quota.exceeded',\n CLOUDFRONT_INVALID_PATH: 'cloudfront.invalid.path',\n CLOUDFRONT_API_ERROR: 'cloudfront.api.error',\n\n // Fastly CDN\n FASTLY_AUTHENTICATION_FAILED: 'fastly.authentication.failed',\n FASTLY_SERVICE_NOT_FOUND: 'fastly.service.not.found',\n FASTLY_PURGE_FAILED: 'fastly.purge.failed',\n FASTLY_RATE_LIMIT_EXCEEDED: 'fastly.rate.limit.exceeded',\n FASTLY_INVALID_URL: 'fastly.invalid.url',\n FASTLY_API_ERROR: 'fastly.api.error',\n\n // Generic CDN Errors\n CDN_INVALIDATION_FAILED: 'cdn.invalidation.failed',\n CDN_CONFIGURATION_INVALID: 'cdn.configuration.invalid',\n CDN_PROVIDER_NOT_FOUND: 'cdn.provider.not.found',\n\n // Webhook Errors\n STORAGE_WEBHOOK_SIGNATURE_INVALID: 'storage.webhook.signature.invalid',\n STORAGE_WEBHOOK_PAYLOAD_INVALID: 'storage.webhook.payload.invalid',\n STORAGE_WEBHOOK_PROCESSING_FAILED: 'storage.webhook.processing.failed',\n STORAGE_WEBHOOK_TIMEOUT: 'storage.webhook.timeout',\n STORAGE_WEBHOOK_ADAPTER_NOT_FOUND: 'storage.webhook.adapter.not.found',\n STORAGE_WEBHOOK_DUPLICATE_DETECTED: 'storage.webhook.duplicate.detected',\n STORAGE_WEBHOOK_IDEMPOTENCY_ERROR: 'storage.webhook.idempotency.error',\n STORAGE_WEBHOOK_RATE_LIMIT_EXCEEDED: 'storage.webhook.rate.limit.exceeded',\n\n // Presigned URLs\n STORAGE_PRESIGNED_URL_GENERATION_FAILED: 'storage.presigned.url.generation.failed',\n STORAGE_PRESIGNED_URL_EXPIRED: 'storage.presigned.url.expired',\n STORAGE_PRESIGNED_URL_INVALID: 'storage.presigned.url.invalid',\n\n // Chunked Upload\n STORAGE_CHUNKED_UPLOAD_INIT_FAILED: 'storage.chunked.upload.init.failed',\n STORAGE_CHUNKED_UPLOAD_PART_FAILED: 'storage.chunked.upload.part.failed',\n STORAGE_CHUNKED_UPLOAD_COMPLETE_FAILED: 'storage.chunked.upload.complete.failed',\n STORAGE_CHUNKED_UPLOAD_ABORT_FAILED: 'storage.chunked.upload.abort.failed',\n STORAGE_CHUNKED_UPLOAD_NOT_FOUND: 'storage.chunked.upload.not.found',\n\n // CORS\n STORAGE_CORS_CONFIGURATION_INVALID: 'storage.cors.configuration.invalid',\n STORAGE_CORS_ORIGIN_NOT_ALLOWED: 'storage.cors.origin.not.allowed',\n\n // TTL\n STORAGE_TTL_EXPIRED: 'storage.ttl.expired',\n STORAGE_TTL_CLEANUP_FAILED: 'storage.ttl.cleanup.failed',\n\n // Audit\n STORAGE_AUDIT_LOG_FAILED: 'storage.audit.log.failed',\n\n // Timeout & Network\n STORAGE_TIMEOUT: 'storage.timeout',\n STORAGE_NETWORK_ERROR: 'storage.network.error',\n STORAGE_CONNECTION_LOST: 'storage.connection.lost',\n\n // Permission & Quota\n STORAGE_PERMISSION_DENIED: 'storage.permission.denied',\n STORAGE_QUOTA_EXCEEDED: 'storage.quota.exceeded',\n STORAGE_INSUFFICIENT_SPACE: 'storage.insufficient.space',\n\n // Feature Implementation\n STORAGE_FEATURE_NOT_IMPLEMENTED: 'storage.feature.not.implemented',\n\n // ===== Core Package Errors =====\n // Feature Flags\n CORE_FEATURE_FLAG_NOT_FOUND: 'core.feature_flag.not_found',\n CORE_FEATURE_FLAG_INVALID_CONFIG: 'core.feature_flag.invalid_config',\n CORE_FEATURE_FLAG_EVALUATION_FAILED: 'core.feature_flag.evaluation_failed',\n CORE_FEATURE_FLAG_PROVIDER_ERROR: 'core.feature_flag.provider_error',\n CORE_FEATURE_FLAG_CACHE_ERROR: 'core.feature_flag.cache_error',\n CORE_FEATURE_FLAG_CONTEXT_INVALID: 'core.feature_flag.context_invalid',\n CORE_FEATURE_FLAG_RULE_INVALID: 'core.feature_flag.rule_invalid',\n CORE_FEATURE_FLAG_TOGGLE_FAILED: 'core.feature_flag.toggle_failed',\n\n // Cache\n CORE_CACHE_INITIALIZATION_FAILED: 'core.cache.initialization_failed',\n CORE_CACHE_STRATEGY_NOT_FOUND: 'core.cache.strategy_not_found',\n CORE_CACHE_OPERATION_FAILED: 'core.cache.operation_failed',\n CORE_CACHE_INVALIDATION_FAILED: 'core.cache.invalidation_failed',\n CORE_CACHE_SERIALIZATION_FAILED: 'core.cache.serialization_failed',\n\n // API Client\n CORE_API_CLIENT_INITIALIZATION_FAILED: 'core.api_client.initialization_failed',\n CORE_API_CLIENT_REQUEST_FAILED: 'core.api_client.request_failed',\n CORE_API_CLIENT_TIMEOUT: 'core.api_client.timeout',\n CORE_API_CLIENT_INVALID_RESPONSE: 'core.api_client.invalid_response',\n CORE_API_CLIENT_AUTHENTICATION_FAILED: 'core.api_client.authentication_failed',\n\n // Database Service\n CORE_DATABASE_SERVICE_INITIALIZATION_FAILED: 'core.database_service.initialization_failed',\n CORE_DATABASE_SERVICE_CONNECTION_FAILED: 'core.database_service.connection_failed',\n CORE_DATABASE_SERVICE_QUERY_FAILED: 'core.database_service.query_failed',\n CORE_DATABASE_SERVICE_TRANSACTION_FAILED: 'core.database_service.transaction_failed',\n\n // Validation\n CORE_VALIDATION_FAILED: 'core.validation.failed',\n CORE_VALIDATION_SCHEMA_INVALID: 'core.validation.schema_invalid',\n CORE_VALIDATION_REQUIRED_FIELD_MISSING: 'core.validation.required_field_missing',\n\n // Hash Utilities\n CORE_HASH_GENERATION_FAILED: 'core.hash.generation_failed',\n CORE_HASH_VERIFICATION_FAILED: 'core.hash.verification_failed',\n\n // Engine\n CORE_ENGINE_INITIALIZATION_FAILED: 'core.engine.initialization_failed',\n CORE_ENGINE_EXECUTION_FAILED: 'core.engine.execution_failed',\n CORE_ENGINE_CONFIGURATION_INVALID: 'core.engine.configuration_invalid',\n\n // Provider\n CORE_PROVIDER_NOT_FOUND: 'core.provider.not_found',\n CORE_PROVIDER_INITIALIZATION_FAILED: 'core.provider.initialization_failed',\n CORE_PROVIDER_OPERATION_FAILED: 'core.provider.operation_failed',\n\n // Context\n CORE_CONTEXT_INVALID: 'core.context.invalid',\n CORE_CONTEXT_MISSING_REQUIRED_DATA: 'core.context.missing_required_data',\n\n // General Core\n CORE_INITIALIZATION_FAILED: 'core.initialization_failed',\n CORE_CONFIGURATION_INVALID: 'core.configuration_invalid',\n CORE_OPERATION_FAILED: 'core.operation_failed',\n CORE_UNKNOWN_ERROR: 'core.unknown_error',\n\n // ===== Errors Package Errors =====\n ERROR_SYSTEM_NOT_INITIALIZED: 'error.system.not.initialized',\n EVENT_FACTORY_NOT_REGISTERED: 'error.event.factory.not.registered',\n DATABASE_ERROR: 'error.database',\n\n // Global Error Handler\n UNCAUGHT_EXCEPTION: 'error.uncaught.exception',\n UNHANDLED_REJECTION: 'error.unhandled.rejection',\n RUNTIME_ERROR: 'error.runtime',\n\n // ===== Database Errors =====\n // Connection & Configuration\n DB_ACCESS_DENIED: 'db.access_denied',\n DB_CONFIG_REQUIRED: 'db.config_required',\n DB_CONNECT_FAILED: 'db.connect_failed',\n DB_DISCONNECT_FAILED: 'db.disconnect_failed',\n DB_INIT_FAILED: 'db.init_failed',\n\n // Query & Execution\n DB_QUERY_FAILED: 'db.query_failed',\n DB_BUILD_WHERE_FAILED: 'db.build_where_failed',\n DB_INVALID_SQL: 'db.invalid_sql',\n DB_TRANSACTION_FAILED: 'db.transaction_failed',\n DB_UNSUPPORTED_OPERATOR: 'db.unsupported_operator',\n\n // CRUD Operations\n DB_CREATE_FAILED: 'db.create_failed',\n DB_CREATION_FAILED: 'db.creation_failed',\n DB_FETCH_FAILED: 'db.fetch_failed',\n DB_FIND_FAILED: 'db.find_failed',\n DB_FIND_MANY_FAILED: 'db.find_many_failed',\n DB_FIND_BY_ID_FAILED: 'db.find_by_id_failed',\n DB_UPDATE_FAILED: 'db.update_failed',\n DB_UPDATE_NO_CHANGES: 'db.update_no_changes',\n DB_DELETE_FAILED: 'db.delete_failed',\n DB_INSERT_FAILED: 'db.insert_failed',\n DB_RECORD_NOT_FOUND: 'db.record_not_found',\n DB_EXISTS_FAILED: 'db.exists_failed',\n\n // Schema & Columns\n DB_COLUMN_NOT_EXISTS: 'db.column_not_exists',\n DB_TABLE_NOT_REGISTERED: 'db.table_not_registered',\n DB_TABLE_REGISTRATION_FAILED: 'db.table_registration_failed',\n DB_ID_COLUMN_NOT_REGISTERED: 'db.id_column_not_registered',\n DB_INVALID_COLUMN: 'db.invalid_column',\n DB_INVALID_TABLE_NAME: 'db.invalid_table_name',\n DB_GET_ID_COLUMN_FAILED: 'db.get_id_column_failed',\n DB_GET_TABLE_FAILED: 'db.get_table_failed',\n\n // Validation & Parameters\n DB_INVALID_PARAMETERS: 'db.invalid_parameters',\n DB_INVALID_PARAMS: 'db.invalid_params',\n DB_INVALID_FILTER: 'db.invalid_filter',\n DB_INVALID_ID: 'db.invalid_id',\n DB_INVALID_ENTITY: 'db.invalid_entity',\n DB_INVALID_UPDATE_PARAMS: 'db.invalid_update_params',\n DB_INVALID_FIELD_NAME: 'db.invalid_field_name',\n DB_INVALID_RESULT: 'db.invalid_result',\n DB_NO_UPDATE_FIELDS: 'db.no_update_fields',\n\n // Count & Data\n DB_COUNT_FAILED: 'db.count_failed',\n DB_COUNT_NO_RESULTS: 'db.count_no_results',\n DB_NO_DATA: 'db.no_data',\n\n // Multi-tenant Context\n DB_NO_TENANT_CONTEXT: 'db.no_tenant_context',\n DB_NO_TENANT_ID: 'db.no_tenant_id',\n DB_TENANT_VALIDATION_FAILED: 'db.tenant_validation_failed',\n\n // Backup & Restore\n DB_BACKUP_CLEANUP_FAILED: 'db.backup_cleanup_failed',\n DB_BACKUP_FILE_NOT_FOUND: 'db.backup_file_not_found',\n DB_LIST_BACKUPS_FAILED: 'db.list_backups_failed',\n DB_INVALID_BACKUP_INFO: 'db.invalid_backup_info',\n DB_RESTORE_FAILED: 'db.restore_failed',\n\n // Cache Operations\n DB_CACHE_DELETE_FAILED: 'db.cache_delete_failed',\n DB_CACHE_HEALTH_CHECK_FAILED: 'db.cache_health_check_failed',\n DB_CACHE_INVALIDATE_FAILED: 'db.cache_invalidate_failed',\n DB_CACHE_SET_FAILED: 'db.cache_set_failed',\n DB_CACHE_GET_FAILED: 'db.cache_get_failed',\n\n // File & Storage\n DB_INVALID_FILEPATH: 'db.invalid_filepath',\n DB_S3_DELETE_FAILED: 'db.s3_delete_failed',\n DB_S3_DOWNLOAD_FAILED: 'db.s3_download_failed',\n DB_S3_NOT_CONFIGURED: 'db.s3_not_configured',\n DB_S3_UPLOAD_FAILED: 'db.s3_upload_failed',\n\n // Misc\n DB_SCHEDULE_SETUP_FAILED: 'db.schedule_setup_failed',\n DB_DECRYPTION_FAILED: 'db.decryption_failed',\n DB_INVALID_SHELL_ARG: 'db.invalid_shell_arg',\n DB_INVALID_BETWEEN_OPERATOR: 'db.invalid_between_operator',\n DB_INVALID_IN_OPERATOR: 'db.invalid_in_operator',\n DB_INVALID_COUNT: 'db.invalid_count',\n\n // Connection & Network\n DB_CONNECTION_FAILED: 'db.connection_failed',\n DB_CONNECTION_ERROR: 'db.connection_error',\n DB_TIMEOUT: 'db.timeout',\n\n // Constraints & Integrity\n DB_CONSTRAINT_VIOLATION: 'db.constraint_violation',\n DB_DEADLOCK: 'db.deadlock',\n DB_DUPLICATE_ENTRY: 'db.duplicate_entry',\n\n // Entity Operations\n DB_ENTITY_NOT_FOUND: 'db.entity_not_found',\n\n // Migration & Schema\n DB_MIGRATION_FAILED: 'db.migration_failed',\n\n // Multi-Write Operations\n DB_MULTI_WRITE_FAILED: 'db.multi_write_failed',\n\n // General\n DB_UNKNOWN_ERROR: 'db.unknown_error',\n\n // ===== Payments Package Errors =====\n\n PAYMENT_TIMEOUT: 'payment.timeout',\n PAYMENT_NETWORK_ERROR: 'payment.network.error',\n\n // Refund\n PAYMENT_REFUND_FAILED: 'payment.refund.failed',\n PAYMENT_REFUND_NOT_FOUND: 'payment.refund.not.found',\n PAYMENT_REFUND_ALREADY_PROCESSED: 'payment.refund.already.processed',\n PAYMENT_REFUND_AMOUNT_INVALID: 'payment.refund.amount.invalid',\n PAYMENT_REFUND_VALIDATION_FAILED: 'payment.refund.validation.failed',\n PAYMENT_REFUND_TIMEOUT: 'payment.refund.timeout',\n PAYMENT_REFUND_NOT_ALLOWED: 'payment.refund.not.allowed',\n PAYMENT_REFUND_AUTHORIZATION_FAILED: 'payment.refund.authorization.failed',\n PAYMENT_REFUND_PROCESSING_FAILED: 'payment.refund.processing.failed',\n\n // Provider\n PAYMENT_PROVIDER_ERROR: 'payment.provider.error',\n PAYMENT_PROVIDER_UNAVAILABLE: 'payment.provider.unavailable',\n PAYMENT_PROVIDER_CONFIGURATION_INVALID: 'payment.provider.configuration.invalid',\n PAYMENT_PROVIDER_RESPONSE_INVALID: 'payment.provider.response.invalid',\n PAYMENT_PROVIDER_TIMEOUT: 'payment.provider.timeout',\n PAYMENT_PROVIDER_AUTH_FAILED: 'payment.provider.auth.failed',\n PAYMENT_PROVIDER_RATE_LIMIT: 'payment.provider.rate.limit', // for HTTP 429\n PAYMENT_PROVIDER_UNKNOWN: 'payment.provider.unknown',\n PAYMENT_CUSTOMER_CREATION_FAILED: 'payment.customer.creation.failed',\n\n // Payment method errors\n PAYMENT_METHOD_SAVE_FAILED: 'payment.method.save.failed',\n PAYMENT_METHOD_DELETE_FAILED: 'payment.method.delete.failed',\n\n // Subscription errors\n PAYMENT_SUBSCRIPTION_CREATE_FAILED: 'payment.subscription.create.failed',\n PAYMENT_SUBSCRIPTION_CANCEL_FAILED: 'payment.subscription.cancel.failed',\n\n // Payout errors\n PAYMENT_PAYOUT_FAILED: 'payment.payout.failed',\n\n // Transaction history errors\n PAYMENT_TRANSACTION_HISTORY_FETCH_FAILED: 'payment.transaction.history.fetch.failed',\n\n // Compliance\n PAYMENT_COMPLIANCE_VIOLATION: 'payment.compliance.violation',\n PAYMENT_COMPLIANCE_CHECK_FAILED: 'payment.compliance.check.failed',\n PAYMENT_COMPLIANCE_LIMIT_EXCEEDED: 'payment.compliance.limit.exceeded',\n PAYMENT_COMPLIANCE_POLICY_MISSING: 'payment.compliance.policy.missing',\n PAYMENT_COMPLIANCE_KYC_REQUIRED: 'payment.compliance.kyc.required',\n PAYMENT_COMPLIANCE_GEOGRAPHIC_RESTRICTION: 'payment.compliance.geographic.restriction',\n PAYMENT_COMPLIANCE_AML_CHECK_FAILED: 'payment.compliance.aml.check.failed',\n PAYMENT_COMPLIANCE_PSD2_STRONG_AUTH_REQUIRED: 'payment.compliance.psd2.strong.auth.required',\n PAYMENT_COMPLIANCE_GDPR_DATA_ACCESS: 'payment.compliance.gdpr.data.access',\n PAYMENT_COMPLIANCE_PCI_COMPLIANCE: 'payment.compliance.pci.compliance',\n PAYMENT_COMPLIANCE_LOCAL_BANKING_RESTRICTION: 'payment.compliance.local.banking.restriction',\n\n // Processing\n PAYMENT_PROCESSING_FAILED: 'payment.processing.failed',\n PAYMENT_PROCESSING_TIMEOUT: 'payment.processing.timeout',\n PAYMENT_PROCESSING_GATEWAY_ERROR: 'payment.processing.gateway.error',\n PAYMENT_PROCESSING_DUPLICATE: 'payment.processing.duplicate',\n PAYMENT_PROCESSING_UNEXPECTED_STATE: 'payment.processing.unexpected.state',\n\n // Security\n PAYMENT_SECURITY_VIOLATION: 'payment.security.violation',\n PAYMENT_SECURITY_SIGNATURE_INVALID: 'payment.security.signature.invalid',\n PAYMENT_SECURITY_ENCRYPTION_FAILED: 'payment.security.encryption.failed',\n PAYMENT_SECURITY_FRAUD_DETECTED: 'payment.security.fraud.detected',\n PAYMENT_SECURITY_TOKEN_INVALID: 'payment.security.token.invalid',\n PAYMENT_SECURITY_VELOCITY_LIMIT_EXCEEDED: 'payment.security.velocity.limit.exceeded',\n\n // Validation\n PAYMENT_VALIDATION_FAILED: 'payment.validation.failed',\n PAYMENT_VALIDATION_AMOUNT_INVALID: 'payment.validation.amount.invalid',\n PAYMENT_VALIDATION_CURRENCY_UNSUPPORTED: 'payment.validation.currency.unsupported',\n PAYMENT_VALIDATION_METADATA_INVALID: 'payment.validation.metadata.invalid',\n PAYMENT_VALIDATION_MISSING_REQUIRED_FIELD: 'payment.validation.field.required',\n\n // Webhook\n PAYMENT_WEBHOOK_SIGNATURE_INVALID: 'payment.webhook.signature.invalid',\n PAYMENT_WEBHOOK_PROCESSING_FAILED: 'payment.webhook.processing.failed',\n PAYMENT_WEBHOOK_VALIDATION_FAILED: 'payment.webhook.validation.failed',\n PAYMENT_WEBHOOK_EVENT_TYPE_UNSUPPORTED: 'payment.webhook.event.type.unsupported',\n PAYMENT_WEBHOOK_HANDLER_NOT_FOUND: 'payment.webhook.handler.not.found',\n\n // ===== Payment Adapter & Core Errors =====\n PAYMENT_ADAPTER_INIT_FAILED: 'payment.adapter.init.failed',\n PAYMENT_ADAPTER_SHUTDOWN_ERROR: 'payment.adapter.shutdown.error',\n PAYMENT_ADAPTER_HMAC_COMPUTATION_FAILED: 'payment.adapter.hmac.computation.failed',\n PAYMENT_ADAPTER_MISSING_PROVIDER: 'payment.adapter.missing.provider',\n PAYMENT_ADAPTER_MISSING_ENVIRONMENT: 'payment.adapter.missing.environment',\n PAYMENT_ADAPTER_MISSING_CREDENTIALS: 'payment.adapter.missing.credentials',\n PAYMENT_ADAPTER_MISSING_WEBHOOK_URL: 'payment.adapter.missing.webhook.url',\n PAYMENT_ADAPTER_MISSING_UNREGISTER_ENDPOINT: 'payment.adapter.missing.unregister.endpoint',\n PAYMENT_ADAPTER_UNSUPPORTED_OPERATION: 'payment.adapter.unsupported.operation',\n PAYMENT_ADAPTER_RESPONSE_MAPPING_FAILED: 'payment.adapter.response.mapping.failed',\n\n // Idempotency & State Management\n PAYMENT_IDEMPOTENCY_VIOLATION: 'payment.idempotency.violation',\n PAYMENT_IDEMPOTENCY_KEY_MISSING: 'payment.idempotency.key.missing',\n PAYMENT_IDEMPOTENCY_STORE_ERROR: 'payment.idempotency.store.error',\n\n // Routing & Strategy\n PAYMENT_ROUTING_FAILED: 'payment.routing.failed',\n PAYMENT_ROUTING_CONFIGURATION_INVALID: 'payment.routing.configuration.invalid',\n PAYMENT_ROUTING_PROVIDER_UNAVAILABLE: 'payment.routing.provider.unavailable',\n PAYMENT_ROUTING_RETRY_EXCEEDED: 'payment.routing.retry.exceeded',\n\n // General Payment Framework Errors\n PAYMENT_SYSTEM_NOT_INITIALIZED: 'payment.system.not.initialized',\n PAYMENT_CONTEXT_OPERATION_FAILED: 'payment.context.operation.failed',\n PAYMENT_INTERNAL_ERROR: 'payment.internal.error',\n PAYMENT_UNKNOWN_ERROR: 'payment.unknown.error',\n\n /**\n * Thrown when an event could not be emitted due to internal state or creation errors.\n * Typically non-retryable, indicates a logic or validation fault.\n */\n PAYMENT_EVENT_EMIT_FAILED: 'PAYMENT_EVENT_EMIT_FAILED',\n PAYMENT_EVENT_INVALID_TYPE: 'PAYMENT_EVENT_INVALID_TYPE',\n PAYMENT_EVENT_CREATION_FAILED: 'PAYMENT_EVENT_CREATION_FAILED',\n PAYMENT_EVENT_HANDLER_TIMEOUT: 'PAYMENT_EVENT_HANDLER_TIMEOUT',\n PAYMENT_EVENT_HANDLER_INVALID_RESULT: 'PAYMENT_EVENT_HANDLER_INVALID_RESULT',\n PAYMENT_EVENT_LIFECYCLE_FAILURE: 'PAYMENT_EVENT_LIFECYCLE_FAILURE',\n\n // Unsupported feature errors (Payment Gateway)\n SAVE_PAYMENT_METHOD_UNSUPPORTED: 'payment.method.save.unsupported',\n DELETE_PAYMENT_METHOD_UNSUPPORTED: 'payment.method.delete.unsupported',\n GET_USER_PAYMENT_METHODS_UNSUPPORTED: 'payment.method.get.unsupported',\n CREATE_SUBSCRIPTION_UNSUPPORTED: 'payment.subscription.create.unsupported',\n CANCEL_SUBSCRIPTION_UNSUPPORTED: 'payment.subscription.cancel.unsupported',\n PROCESS_PAYOUT_UNSUPPORTED: 'payment.payout.unsupported',\n GET_TRANSACTION_HISTORY_UNSUPPORTED: 'payment.transaction.history.unsupported',\n\n WITHDRAWAL_UNSUPPORTED: 'payment.withdrawal.unsupported',\n WITHDRAWAL_CREATE_UNSUPPORTED: 'payment.withdrawal.create.unsupported',\n WITHDRAWAL_PROCESS_UNSUPPORTED: 'payment.withdrawal.process.unsupported',\n WITHDRAWAL_STATUS_FETCH_UNSUPPORTED: 'payment.withdrawal.status.fetch.unsupported',\n WITHDRAWAL_CANCEL_UNSUPPORTED: 'payment.withdrawal.cancel.unsupported',\n\n WITHDRAWAL_INSUFFICIENT_BALANCE: 'payment.withdrawal.insufficient.balance',\n WITHDRAWAL_INVALID_ACCOUNT: 'payment.withdrawal.invalid.account',\n WITHDRAWAL_KYC_REQUIRED: 'payment.withdrawal.kyc.required',\n WITHDRAWAL_LIMIT_EXCEEDED: 'payment.withdrawal.limit.exceeded',\n WITHDRAWAL_PROVIDER_ERROR: 'payment.withdrawal.provider.error',\n WITHDRAWAL_FAILED: 'payment.withdrawal.failed',\n WITHDRAWAL_TIMEOUT: 'payment.withdrawal.timeout',\n\n // Product\n PRODUCT_CREATE_UNSUPPORTED: 'payment.product.create.unsupported',\n PRODUCT_UPDATE_UNSUPPORTED: 'payment.product.update.unsupported',\n PRODUCT_FETCH_UNSUPPORTED: 'payment.product.fetch.unsupported',\n PRODUCT_DEACTIVATE_UNSUPPORTED: 'payment.product.deactivate.unsupported',\n\n PRODUCT_NOT_FOUND: 'payment.product.not_found',\n PRODUCT_INVALID_DATA: 'payment.product.invalid.data',\n PRODUCT_PROVIDER_ERROR: 'payment.product.provider.error',\n PRODUCT_ALREADY_INACTIVE: 'payment.product.already.inactive',\n PRODUCT_SYNC_FAILED: 'payment.product.sync.failed',\n\n // Pricing\n PRICING_CREATE_UNSUPPORTED: 'payment.pricing.create.unsupported',\n PRICING_UPDATE_UNSUPPORTED: 'payment.pricing.update.unsupported',\n PRICING_DEACTIVATE_UNSUPPORTED: 'payment.pricing.deactivate.unsupported',\n\n PRICING_NOT_FOUND: 'payment.pricing.not_found',\n PRICING_INVALID_AMOUNT: 'payment.pricing.invalid.amount',\n PRICING_INVALID_CURRENCY: 'payment.pricing.invalid.currency',\n PRICING_PROVIDER_ERROR: 'payment.pricing.provider.error',\n PRICING_ALREADY_INACTIVE: 'payment.pricing.already.inactive',\n PRICING_SYNC_FAILED: 'payment.pricing.sync.failed',\n PRICING_REQUIRES_NEW_VERSION: 'payment.pricing.requires.new.version',\n\n // Authentication\n\n INVALID_CREDENTIALS: 'AUTH_INVALID_CREDENTIALS',\n TOKEN_EXPIRED: 'AUTH_TOKEN_EXPIRED',\n TOKEN_INVALID: 'AUTH_TOKEN_INVALID',\n TOKEN_REVOKED: 'AUTH_TOKEN_REVOKED',\n SESSION_EXPIRED: 'AUTH_SESSION_EXPIRED',\n MFA_REQUIRED: 'AUTH_MFA_REQUIRED',\n MFA_INVALID: 'AUTH_MFA_INVALID',\n INSUFFICIENT_PERMISSIONS: 'AUTH_INSUFFICIENT_PERMISSIONS',\n ROLE_REQUIRED: 'AUTH_ROLE_REQUIRED',\n WALLET_SIGNATURE_INVALID: 'AUTH_WALLET_SIGNATURE_INVALID',\n NONCE_EXPIRED: 'AUTH_NONCE_EXPIRED',\n NONCE_ALREADY_USED: 'AUTH_NONCE_ALREADY_USED',\n ACCOUNT_LOCKED: 'AUTH_ACCOUNT_LOCKED',\n ACCOUNT_SUSPENDED: 'AUTH_ACCOUNT_SUSPENDED',\n} as const;\n\n/**\n * Type for all error code values\n */\nexport type ErrorCodeValue = (typeof ERROR_CODES)[keyof typeof ERROR_CODES];\n\n// ===== Package-Specific Error Code Subsets =====\n// These are convenience exports for backwards compatibility and easier imports\n\n/**\n * API-specific error codes\n * Subset of ERROR_CODES for @plyaz/api package\n */\nexport const API_ERROR_CODES = {\n CLIENT_INITIALIZATION_FAILED: ERROR_CODES.CLIENT_INITIALIZATION_FAILED,\n CLIENT_INVALID_CONFIG: ERROR_CODES.CLIENT_INVALID_CONFIG,\n CLIENT_MISSING_BASE_URL: ERROR_CODES.CLIENT_MISSING_BASE_URL,\n CLIENT_CANCELLED: ERROR_CODES.CLIENT_CANCELLED,\n CONFIG_VALIDATION_FAILED: ERROR_CODES.CONFIG_VALIDATION_FAILED,\n HEADER_PROCESSING_FAILED: ERROR_CODES.HEADER_PROCESSING_FAILED,\n NETWORK_OVERRIDE_FAILED: ERROR_CODES.NETWORK_OVERRIDE_FAILED,\n REQUEST_TIMEOUT: ERROR_CODES.REQUEST_TIMEOUT,\n REQUEST_ABORTED: ERROR_CODES.REQUEST_ABORTED,\n REQUEST_INVALID_PARAMS: ERROR_CODES.REQUEST_INVALID_PARAMS,\n REQUEST_PREPARATION_FAILED: ERROR_CODES.REQUEST_PREPARATION_FAILED,\n RESPONSE_INVALID_FORMAT: ERROR_CODES.RESPONSE_INVALID_FORMAT,\n RESPONSE_PARSING_FAILED: ERROR_CODES.RESPONSE_PARSING_FAILED,\n AUTH_UNAUTHORIZED: ERROR_CODES.AUTH_UNAUTHORIZED,\n AUTH_FORBIDDEN: ERROR_CODES.AUTH_FORBIDDEN,\n AUTH_TOKEN_EXPIRED: ERROR_CODES.TOKEN_EXPIRED,\n AUTH_INVALID_CREDENTIALS: ERROR_CODES.INVALID_CREDENTIALS,\n RATE_LIMIT_EXCEEDED: ERROR_CODES.RATE_LIMIT_EXCEEDED,\n RESOURCE_NOT_FOUND: ERROR_CODES.RESOURCE_NOT_FOUND,\n RESOURCE_CONFLICT: ERROR_CODES.RESOURCE_CONFLICT,\n VALIDATION_FAILED: ERROR_CODES.API_VALIDATION_FAILED,\n INVALID_INPUT: ERROR_CODES.API_INVALID_INPUT,\n VALIDATION_ERROR: ERROR_CODES.VALIDATION_ERROR,\n REQUIRED_FIELD_MISSING: ERROR_CODES.REQUIRED_FIELD_MISSING,\n INVALID_FORMAT: ERROR_CODES.INVALID_FORMAT,\n VALIDATION_INVALID_FORMAT: ERROR_CODES.VALIDATION_INVALID_FORMAT,\n STRING_TOO_SHORT: ERROR_CODES.STRING_TOO_SHORT,\n STRING_TOO_LONG: ERROR_CODES.STRING_TOO_LONG,\n NETWORK_ERROR: ERROR_CODES.NETWORK_ERROR,\n CONNECTION_FAILED: ERROR_CODES.CONNECTION_FAILED,\n NETWORK_CONNECTION_FAILED: ERROR_CODES.NETWORK_CONNECTION_FAILED,\n NETWORK_OFFLINE: ERROR_CODES.NETWORK_OFFLINE,\n NETWORK_DNS_FAILED: ERROR_CODES.NETWORK_DNS_FAILED,\n NETWORK_TIMEOUT: ERROR_CODES.NETWORK_TIMEOUT,\n NETWORK_CONFIGURATION_INVALID: ERROR_CODES.NETWORK_CONFIGURATION_INVALID,\n SERVER_ERROR: ERROR_CODES.SERVER_ERROR,\n INTERNAL_SERVER_ERROR: ERROR_CODES.INTERNAL_SERVER_ERROR,\n SERVICE_UNAVAILABLE: ERROR_CODES.SERVICE_UNAVAILABLE,\n CACHE_READ_FAILED: ERROR_CODES.CACHE_READ_FAILED,\n CACHE_WRITE_FAILED: ERROR_CODES.CACHE_WRITE_FAILED,\n CACHE_INVALIDATION_FAILED: ERROR_CODES.CACHE_INVALIDATION_FAILED,\n CACHE_STORAGE_FAILED: ERROR_CODES.CACHE_STORAGE_FAILED,\n CACHE_RETRIEVAL_FAILED: ERROR_CODES.CACHE_RETRIEVAL_FAILED,\n RETRY_LIMIT_EXCEEDED: ERROR_CODES.RETRY_LIMIT_EXCEEDED,\n RETRY_FAILED: ERROR_CODES.RETRY_FAILED,\n RETRY_EXHAUSTED: ERROR_CODES.RETRY_EXHAUSTED,\n RETRY_STRATEGY_INVALID: ERROR_CODES.RETRY_STRATEGY_INVALID,\n STRATEGY_INVALID: ERROR_CODES.STRATEGY_INVALID,\n STRATEGY_CONFLICT: ERROR_CODES.STRATEGY_CONFLICT,\n STRATEGY_EXECUTION_FAILED: ERROR_CODES.STRATEGY_EXECUTION_FAILED,\n HEADERS_ENRICHMENT_FAILED: ERROR_CODES.HEADERS_ENRICHMENT_FAILED,\n HEADERS_VALIDATION_FAILED: ERROR_CODES.HEADERS_VALIDATION_FAILED,\n HEADERS_MERGE_CONFLICT: ERROR_CODES.HEADERS_MERGE_CONFLICT,\n REGION_DETECTION_FAILED: ERROR_CODES.REGION_DETECTION_FAILED,\n REGIONAL_PRESET_NOT_FOUND: ERROR_CODES.REGIONAL_PRESET_NOT_FOUND,\n EXTERNAL_SERVICE_ERROR: ERROR_CODES.EXTERNAL_SERVICE_ERROR,\n NETWORK_PRESET_NOT_FOUND: ERROR_CODES.NETWORK_PRESET_NOT_FOUND,\n TIMEOUT: ERROR_CODES.TIMEOUT,\n DEBUG_TRACKING_FAILED: ERROR_CODES.DEBUG_TRACKING_FAILED,\n DEBUG_OVERRIDE_FAILED: ERROR_CODES.DEBUG_OVERRIDE_FAILED,\n DEBUG_CONFLICT_DETECTED: ERROR_CODES.DEBUG_CONFLICT_DETECTED,\n POLLING_CANCELLED: ERROR_CODES.POLLING_CANCELLED,\n POLLING_TIMEOUT: ERROR_CODES.POLLING_TIMEOUT,\n POLLING_INVALID_CONFIG: ERROR_CODES.POLLING_INVALID_CONFIG,\n PUBSUB_SUBSCRIPTION_FAILED: ERROR_CODES.PUBSUB_SUBSCRIPTION_FAILED,\n PUBSUB_PUBLICATION_FAILED: ERROR_CODES.PUBSUB_PUBLICATION_FAILED,\n PUBSUB_INVALID_TOPIC: ERROR_CODES.PUBSUB_INVALID_TOPIC,\n PUBSUB_CHANNEL_ERROR: ERROR_CODES.PUBSUB_CHANNEL_ERROR,\n REVALIDATION_FAILED: ERROR_CODES.REVALIDATION_FAILED,\n REVALIDATION_IN_PROGRESS: ERROR_CODES.REVALIDATION_IN_PROGRESS,\n ENDPOINT_BUILD_FAILED: ERROR_CODES.ENDPOINT_BUILD_FAILED,\n ENDPOINT_NOT_FOUND: ERROR_CODES.ENDPOINT_NOT_FOUND,\n ENDPOINT_INVALID_CONFIG: ERROR_CODES.ENDPOINT_INVALID_CONFIG,\n EVENT_HANDLER_FAILED: ERROR_CODES.EVENT_HANDLER_FAILED,\n EVENT_EMISSION_FAILED: ERROR_CODES.EVENT_EMISSION_FAILED,\n MONITORING_FAILED: ERROR_CODES.MONITORING_FAILED,\n CONTEXT_OPERATION_FAILED: ERROR_CODES.CONTEXT_OPERATION_FAILED,\n CLIENT_ERROR: ERROR_CODES.CLIENT_ERROR,\n UNKNOWN_ERROR: ERROR_CODES.UNKNOWN_ERROR,\n\n // CDN Provider Errors (Third-party services)\n // Cloudflare\n CLOUDFLARE_AUTHENTICATION_FAILED: ERROR_CODES.CLOUDFLARE_AUTHENTICATION_FAILED,\n CLOUDFLARE_ZONE_NOT_FOUND: ERROR_CODES.CLOUDFLARE_ZONE_NOT_FOUND,\n CLOUDFLARE_PURGE_FAILED: ERROR_CODES.CLOUDFLARE_PURGE_FAILED,\n CLOUDFLARE_RATE_LIMIT_EXCEEDED: ERROR_CODES.CLOUDFLARE_RATE_LIMIT_EXCEEDED,\n CLOUDFLARE_INVALID_URL: ERROR_CODES.CLOUDFLARE_INVALID_URL,\n CLOUDFLARE_API_ERROR: ERROR_CODES.CLOUDFLARE_API_ERROR,\n\n // CloudFront\n CLOUDFRONT_AUTHENTICATION_FAILED: ERROR_CODES.CLOUDFRONT_AUTHENTICATION_FAILED,\n CLOUDFRONT_DISTRIBUTION_NOT_FOUND: ERROR_CODES.CLOUDFRONT_DISTRIBUTION_NOT_FOUND,\n CLOUDFRONT_INVALIDATION_FAILED: ERROR_CODES.CLOUDFRONT_INVALIDATION_FAILED,\n CLOUDFRONT_QUOTA_EXCEEDED: ERROR_CODES.CLOUDFRONT_QUOTA_EXCEEDED,\n CLOUDFRONT_INVALID_PATH: ERROR_CODES.CLOUDFRONT_INVALID_PATH,\n CLOUDFRONT_API_ERROR: ERROR_CODES.CLOUDFRONT_API_ERROR,\n\n // Fastly\n FASTLY_AUTHENTICATION_FAILED: ERROR_CODES.FASTLY_AUTHENTICATION_FAILED,\n FASTLY_SERVICE_NOT_FOUND: ERROR_CODES.FASTLY_SERVICE_NOT_FOUND,\n FASTLY_PURGE_FAILED: ERROR_CODES.FASTLY_PURGE_FAILED,\n FASTLY_RATE_LIMIT_EXCEEDED: ERROR_CODES.FASTLY_RATE_LIMIT_EXCEEDED,\n FASTLY_INVALID_URL: ERROR_CODES.FASTLY_INVALID_URL,\n FASTLY_API_ERROR: ERROR_CODES.FASTLY_API_ERROR,\n\n // Generic CDN\n CDN_INVALIDATION_FAILED: ERROR_CODES.CDN_INVALIDATION_FAILED,\n CDN_CONFIGURATION_INVALID: ERROR_CODES.CDN_CONFIGURATION_INVALID,\n CDN_PROVIDER_NOT_FOUND: ERROR_CODES.CDN_PROVIDER_NOT_FOUND,\n} as const;\n\n/**\n * Notification-specific error codes\n * Subset of ERROR_CODES for @plyaz/notifications package\n */\nexport const NOTIFICATION_ERROR_CODES = {\n PROVIDER_SEND_FAILED: ERROR_CODES.NOTIFICATION_PROVIDER_SEND_FAILED,\n PROVIDER_CONFIGURATION_INVALID: ERROR_CODES.NOTIFICATION_PROVIDER_CONFIGURATION_INVALID,\n PROVIDER_RATE_LIMIT: ERROR_CODES.NOTIFICATION_PROVIDER_RATE_LIMIT,\n PROVIDER_AUTH_FAILED: ERROR_CODES.NOTIFICATION_PROVIDER_AUTH_FAILED,\n PROVIDER_TIMEOUT: ERROR_CODES.NOTIFICATION_PROVIDER_TIMEOUT,\n PROVIDER_UNAVAILABLE: ERROR_CODES.NOTIFICATION_PROVIDER_UNAVAILABLE,\n PROVIDER_FEATURE_NOT_SUPPORTED: ERROR_CODES.NOTIFICATION_PROVIDER_FEATURE_NOT_SUPPORTED,\n ALL_PROVIDERS_FAILED: ERROR_CODES.NOTIFICATION_ALL_PROVIDERS_FAILED,\n INVALID_INPUT: ERROR_CODES.NOTIFICATION_INVALID_INPUT,\n INVALID_RECIPIENT: ERROR_CODES.NOTIFICATION_INVALID_RECIPIENT,\n INVALID_TEMPLATE: ERROR_CODES.NOTIFICATION_INVALID_TEMPLATE,\n INVALID_PAYLOAD: ERROR_CODES.NOTIFICATION_INVALID_PAYLOAD,\n MISSING_REQUIRED_FIELD: ERROR_CODES.NOTIFICATION_MISSING_REQUIRED_FIELD,\n VALIDATION_FAILED: ERROR_CODES.NOTIFICATION_VALIDATION_FAILED,\n USER_OPTED_OUT: ERROR_CODES.NOTIFICATION_USER_OPTED_OUT,\n QUEUE_FULL: ERROR_CODES.NOTIFICATION_QUEUE_FULL,\n QUEUE_PROCESSING_FAILED: ERROR_CODES.NOTIFICATION_QUEUE_PROCESSING_FAILED,\n WEBHOOK_SIGNATURE_INVALID: ERROR_CODES.NOTIFICATION_WEBHOOK_SIGNATURE_INVALID,\n WEBHOOK_VALIDATION_FAILED: ERROR_CODES.NOTIFICATION_WEBHOOK_VALIDATION_FAILED,\n WEBHOOK_PROCESSING_FAILED: ERROR_CODES.NOTIFICATION_WEBHOOK_PROCESSING_FAILED,\n TEMPLATE_NOT_FOUND: ERROR_CODES.NOTIFICATION_TEMPLATE_NOT_FOUND,\n TEMPLATE_RENDER_FAILED: ERROR_CODES.NOTIFICATION_TEMPLATE_RENDER_FAILED,\n UNKNOWN_ERROR: ERROR_CODES.NOTIFICATION_UNKNOWN_ERROR,\n INITIALIZATION_FAILED: ERROR_CODES.NOTIFICATION_INITIALIZATION_FAILED,\n} as const;\n\n/**\n * Storage-specific error codes\n * Subset of ERROR_CODES for @plyaz/storage package\n */\nexport const STORAGE_ERROR_CODES = {\n // General\n UNKNOWN_ERROR: ERROR_CODES.STORAGE_UNKNOWN_ERROR,\n INITIALIZATION_FAILED: ERROR_CODES.STORAGE_INITIALIZATION_FAILED,\n\n // Adapter\n ADAPTER_NOT_FOUND: ERROR_CODES.STORAGE_ADAPTER_NOT_FOUND,\n ADAPTER_INITIALIZATION_FAILED: ERROR_CODES.STORAGE_ADAPTER_INITIALIZATION_FAILED,\n ADAPTER_CONFIGURATION_INVALID: ERROR_CODES.STORAGE_ADAPTER_CONFIGURATION_INVALID,\n ADAPTER_ALREADY_REGISTERED: ERROR_CODES.STORAGE_ADAPTER_ALREADY_REGISTERED,\n ADAPTER_CONNECTION_FAILED: ERROR_CODES.STORAGE_ADAPTER_CONNECTION_FAILED,\n ADAPTER_AUTHENTICATION_FAILED: ERROR_CODES.STORAGE_ADAPTER_AUTHENTICATION_FAILED,\n ADAPTER_OPERATION_FAILED: ERROR_CODES.STORAGE_ADAPTER_OPERATION_FAILED,\n ADAPTER_HEALTH_CHECK_FAILED: ERROR_CODES.STORAGE_ADAPTER_HEALTH_CHECK_FAILED,\n ADAPTER_UNAVAILABLE: ERROR_CODES.STORAGE_ADAPTER_UNAVAILABLE,\n ADAPTER_TIMEOUT: ERROR_CODES.STORAGE_ADAPTER_TIMEOUT,\n ADAPTER_RATE_LIMIT: ERROR_CODES.STORAGE_ADAPTER_RATE_LIMIT,\n ADAPTER_QUOTA_EXCEEDED: ERROR_CODES.STORAGE_ADAPTER_QUOTA_EXCEEDED,\n ADAPTER_UNSUPPORTED_OPERATION: ERROR_CODES.STORAGE_ADAPTER_UNSUPPORTED_OPERATION,\n ADAPTER_FEATURE_NOT_SUPPORTED: ERROR_CODES.STORAGE_ADAPTER_FEATURE_NOT_SUPPORTED,\n NO_HEALTHY_ADAPTERS: ERROR_CODES.STORAGE_NO_HEALTHY_ADAPTERS,\n ALL_ADAPTERS_FAILED: ERROR_CODES.STORAGE_ALL_ADAPTERS_FAILED,\n\n // File Validation\n FILE_TOO_LARGE: ERROR_CODES.STORAGE_FILE_TOO_LARGE,\n FILE_TOO_SMALL: ERROR_CODES.STORAGE_FILE_TOO_SMALL,\n FILE_SIZE_INVALID: ERROR_CODES.STORAGE_FILE_SIZE_INVALID,\n FILE_TYPE_NOT_ALLOWED: ERROR_CODES.STORAGE_FILE_TYPE_NOT_ALLOWED,\n INVALID_MIME_TYPE: ERROR_CODES.STORAGE_INVALID_MIME_TYPE,\n INVALID_FILE_EXTENSION: ERROR_CODES.STORAGE_INVALID_FILE_EXTENSION,\n FILE_EXTENSION_INVALID: ERROR_CODES.STORAGE_FILE_EXTENSION_INVALID,\n FILE_EXTENSION_MISMATCH: ERROR_CODES.STORAGE_FILE_EXTENSION_MISMATCH,\n EXECUTABLE_NOT_ALLOWED: ERROR_CODES.STORAGE_EXECUTABLE_NOT_ALLOWED,\n VALIDATION_FAILED: ERROR_CODES.STORAGE_VALIDATION_FAILED,\n INVALID_FILE_CONTENT: ERROR_CODES.STORAGE_INVALID_FILE_CONTENT,\n\n // Security\n SECURITY_VIRUS_DETECTED: ERROR_CODES.STORAGE_SECURITY_VIRUS_DETECTED,\n SECURITY_SCAN_FAILED: ERROR_CODES.STORAGE_SECURITY_SCAN_FAILED,\n SECURITY_ACCESS_DENIED: ERROR_CODES.STORAGE_SECURITY_ACCESS_DENIED,\n SECURITY_ENCRYPTION_FAILED: ERROR_CODES.STORAGE_SECURITY_ENCRYPTION_FAILED,\n\n // File Operations\n FILE_UPLOAD_FAILED: ERROR_CODES.STORAGE_FILE_UPLOAD_FAILED,\n FILE_DOWNLOAD_FAILED: ERROR_CODES.STORAGE_FILE_DOWNLOAD_FAILED,\n FILE_DELETE_FAILED: ERROR_CODES.STORAGE_FILE_DELETE_FAILED,\n STORAGE_FILE_UPDATE_FAILED: ERROR_CODES.STORAGE_FILE_UPDATE_FAILED,\n FILE_NOT_FOUND: ERROR_CODES.STORAGE_FILE_NOT_FOUND,\n FILE_ALREADY_EXISTS: ERROR_CODES.STORAGE_FILE_ALREADY_EXISTS,\n FILE_MOVE_FAILED: ERROR_CODES.STORAGE_FILE_MOVE_FAILED,\n FILE_COPY_FAILED: ERROR_CODES.STORAGE_FILE_COPY_FAILED,\n FILE_READ_FAILED: ERROR_CODES.STORAGE_FILE_READ_FAILED,\n FILE_WRITE_FAILED: ERROR_CODES.STORAGE_FILE_WRITE_FAILED,\n FILE_CORRUPTED: ERROR_CODES.STORAGE_FILE_CORRUPTED,\n INVALID_OPERATION: ERROR_CODES.STORAGE_INVALID_OPERATION,\n\n // Metadata\n METADATA_EXTRACTION_FAILED: ERROR_CODES.STORAGE_METADATA_EXTRACTION_FAILED,\n METADATA_INVALID: ERROR_CODES.STORAGE_METADATA_INVALID,\n METADATA_UPDATE_FAILED: ERROR_CODES.STORAGE_METADATA_UPDATE_FAILED,\n\n // Media Processing\n MEDIA_PROCESSING_FAILED: ERROR_CODES.STORAGE_MEDIA_PROCESSING_FAILED,\n MEDIA_RESIZE_FAILED: ERROR_CODES.STORAGE_MEDIA_RESIZE_FAILED,\n MEDIA_FORMAT_UNSUPPORTED: ERROR_CODES.STORAGE_MEDIA_FORMAT_UNSUPPORTED,\n MEDIA_TRANSCODE_FAILED: ERROR_CODES.STORAGE_MEDIA_TRANSCODE_FAILED,\n MEDIA_THUMBNAIL_FAILED: ERROR_CODES.STORAGE_MEDIA_THUMBNAIL_FAILED,\n MEDIA_INVALID_DIMENSIONS: ERROR_CODES.STORAGE_MEDIA_INVALID_DIMENSIONS,\n\n // Template & PDF\n TEMPLATE_NOT_FOUND: ERROR_CODES.STORAGE_TEMPLATE_NOT_FOUND,\n TEMPLATE_RENDER_FAILED: ERROR_CODES.STORAGE_TEMPLATE_RENDER_FAILED,\n PDF_GENERATION_FAILED: ERROR_CODES.STORAGE_PDF_GENERATION_FAILED,\n PDF_RENDERING_TIMEOUT: ERROR_CODES.STORAGE_PDF_RENDERING_TIMEOUT,\n\n // Queue\n QUEUE_FULL: ERROR_CODES.STORAGE_QUEUE_FULL,\n QUEUE_PROCESSING_FAILED: ERROR_CODES.STORAGE_QUEUE_PROCESSING_FAILED,\n QUEUE_ITEM_NOT_FOUND: ERROR_CODES.STORAGE_QUEUE_ITEM_NOT_FOUND,\n\n // Compliance\n COMPLIANCE_VIOLATION: ERROR_CODES.STORAGE_COMPLIANCE_VIOLATION,\n COMPLIANCE_RETENTION_VIOLATION: ERROR_CODES.STORAGE_COMPLIANCE_RETENTION_VIOLATION,\n COMPLIANCE_RETENTION_EXPIRED: ERROR_CODES.STORAGE_COMPLIANCE_RETENTION_EXPIRED,\n COMPLIANCE_IMMUTABLE_FILE: ERROR_CODES.STORAGE_COMPLIANCE_IMMUTABLE_FILE,\n COMPLIANCE_POLICY_NOT_FOUND: ERROR_CODES.STORAGE_COMPLIANCE_POLICY_NOT_FOUND,\n COMPLIANCE_SOFT_DELETE_REQUIRED: ERROR_CODES.STORAGE_COMPLIANCE_SOFT_DELETE_REQUIRED,\n COMPLIANCE_GRACE_PERIOD_ACTIVE: ERROR_CODES.STORAGE_COMPLIANCE_GRACE_PERIOD_ACTIVE,\n COMPLIANCE_DEFERRED_DELETION: ERROR_CODES.STORAGE_COMPLIANCE_DEFERRED_DELETION,\n COMPLIANCE_PATTERN_PROTECTED: ERROR_CODES.STORAGE_COMPLIANCE_PATTERN_PROTECTED,\n\n // Share Links\n SHARE_LINK_NOT_FOUND: ERROR_CODES.STORAGE_SHARE_LINK_NOT_FOUND,\n SHARE_LINK_EXPIRED: ERROR_CODES.STORAGE_SHARE_LINK_EXPIRED,\n SHARE_LINK_MAX_DOWNLOADS: ERROR_CODES.STORAGE_SHARE_LINK_MAX_DOWNLOADS,\n SHARE_LINK_INVALID_PASSWORD: ERROR_CODES.STORAGE_SHARE_LINK_INVALID_PASSWORD,\n\n // Plugin\n PLUGIN_NOT_FOUND: ERROR_CODES.STORAGE_PLUGIN_NOT_FOUND,\n PLUGIN_INITIALIZATION_FAILED: ERROR_CODES.STORAGE_PLUGIN_INITIALIZATION_FAILED,\n PLUGIN_EXECUTION_FAILED: ERROR_CODES.STORAGE_PLUGIN_EXECUTION_FAILED,\n\n // VirusTotal Provider (Plugin)\n VIRUSTOTAL_BAD_REQUEST: ERROR_CODES.STORAGE_VIRUSTOTAL_BAD_REQUEST,\n VIRUSTOTAL_AUTHENTICATION_REQUIRED: ERROR_CODES.STORAGE_VIRUSTOTAL_AUTHENTICATION_REQUIRED,\n VIRUSTOTAL_WRONG_CREDENTIALS: ERROR_CODES.STORAGE_VIRUSTOTAL_WRONG_CREDENTIALS,\n VIRUSTOTAL_FILE_TOO_LARGE: ERROR_CODES.STORAGE_VIRUSTOTAL_FILE_TOO_LARGE,\n VIRUSTOTAL_QUOTA_EXCEEDED: ERROR_CODES.STORAGE_VIRUSTOTAL_QUOTA_EXCEEDED,\n VIRUSTOTAL_ANALYSIS_NOT_FOUND: ERROR_CODES.STORAGE_VIRUSTOTAL_ANALYSIS_NOT_FOUND,\n VIRUSTOTAL_SCAN_TIMEOUT: ERROR_CODES.STORAGE_VIRUSTOTAL_SCAN_TIMEOUT,\n VIRUSTOTAL_SCAN_FAILED: ERROR_CODES.STORAGE_VIRUSTOTAL_SCAN_FAILED,\n\n // CDN Providers (Plugins) - Reference cross-package CDN errors\n // Cloudflare CDN\n CLOUDFLARE_AUTHENTICATION_FAILED: ERROR_CODES.CLOUDFLARE_AUTHENTICATION_FAILED,\n CLOUDFLARE_ZONE_NOT_FOUND: ERROR_CODES.CLOUDFLARE_ZONE_NOT_FOUND,\n CLOUDFLARE_PURGE_FAILED: ERROR_CODES.CLOUDFLARE_PURGE_FAILED,\n CLOUDFLARE_RATE_LIMIT_EXCEEDED: ERROR_CODES.CLOUDFLARE_RATE_LIMIT_EXCEEDED,\n CLOUDFLARE_INVALID_URL: ERROR_CODES.CLOUDFLARE_INVALID_URL,\n CLOUDFLARE_API_ERROR: ERROR_CODES.CLOUDFLARE_API_ERROR,\n\n // AWS CloudFront CDN\n CLOUDFRONT_AUTHENTICATION_FAILED: ERROR_CODES.CLOUDFRONT_AUTHENTICATION_FAILED,\n CLOUDFRONT_DISTRIBUTION_NOT_FOUND: ERROR_CODES.CLOUDFRONT_DISTRIBUTION_NOT_FOUND,\n CLOUDFRONT_INVALIDATION_FAILED: ERROR_CODES.CLOUDFRONT_INVALIDATION_FAILED,\n CLOUDFRONT_QUOTA_EXCEEDED: ERROR_CODES.CLOUDFRONT_QUOTA_EXCEEDED,\n CLOUDFRONT_INVALID_PATH: ERROR_CODES.CLOUDFRONT_INVALID_PATH,\n CLOUDFRONT_API_ERROR: ERROR_CODES.CLOUDFRONT_API_ERROR,\n\n // Fastly CDN\n FASTLY_AUTHENTICATION_FAILED: ERROR_CODES.FASTLY_AUTHENTICATION_FAILED,\n FASTLY_SERVICE_NOT_FOUND: ERROR_CODES.FASTLY_SERVICE_NOT_FOUND,\n FASTLY_PURGE_FAILED: ERROR_CODES.FASTLY_PURGE_FAILED,\n FASTLY_RATE_LIMIT_EXCEEDED: ERROR_CODES.FASTLY_RATE_LIMIT_EXCEEDED,\n FASTLY_INVALID_URL: ERROR_CODES.FASTLY_INVALID_URL,\n FASTLY_API_ERROR: ERROR_CODES.FASTLY_API_ERROR,\n\n // Generic CDN Errors\n CDN_INVALIDATION_FAILED: ERROR_CODES.CDN_INVALIDATION_FAILED,\n CDN_CONFIGURATION_INVALID: ERROR_CODES.CDN_CONFIGURATION_INVALID,\n CDN_PROVIDER_NOT_FOUND: ERROR_CODES.CDN_PROVIDER_NOT_FOUND,\n\n // Presigned URLs\n PRESIGNED_URL_GENERATION_FAILED: ERROR_CODES.STORAGE_PRESIGNED_URL_GENERATION_FAILED,\n PRESIGNED_URL_EXPIRED: ERROR_CODES.STORAGE_PRESIGNED_URL_EXPIRED,\n PRESIGNED_URL_INVALID: ERROR_CODES.STORAGE_PRESIGNED_URL_INVALID,\n\n // Chunked Upload\n CHUNKED_UPLOAD_INIT_FAILED: ERROR_CODES.STORAGE_CHUNKED_UPLOAD_INIT_FAILED,\n CHUNKED_UPLOAD_PART_FAILED: ERROR_CODES.STORAGE_CHUNKED_UPLOAD_PART_FAILED,\n CHUNKED_UPLOAD_COMPLETE_FAILED: ERROR_CODES.STORAGE_CHUNKED_UPLOAD_COMPLETE_FAILED,\n CHUNKED_UPLOAD_ABORT_FAILED: ERROR_CODES.STORAGE_CHUNKED_UPLOAD_ABORT_FAILED,\n CHUNKED_UPLOAD_NOT_FOUND: ERROR_CODES.STORAGE_CHUNKED_UPLOAD_NOT_FOUND,\n\n // CORS\n CORS_CONFIGURATION_INVALID: ERROR_CODES.STORAGE_CORS_CONFIGURATION_INVALID,\n CORS_ORIGIN_NOT_ALLOWED: ERROR_CODES.STORAGE_CORS_ORIGIN_NOT_ALLOWED,\n\n // TTL\n TTL_EXPIRED: ERROR_CODES.STORAGE_TTL_EXPIRED,\n TTL_CLEANUP_FAILED: ERROR_CODES.STORAGE_TTL_CLEANUP_FAILED,\n\n // Audit\n AUDIT_LOG_FAILED: ERROR_CODES.STORAGE_AUDIT_LOG_FAILED,\n\n // Webhook\n WEBHOOK_SIGNATURE_INVALID: ERROR_CODES.STORAGE_WEBHOOK_SIGNATURE_INVALID,\n WEBHOOK_PAYLOAD_INVALID: ERROR_CODES.STORAGE_WEBHOOK_PAYLOAD_INVALID,\n WEBHOOK_PROCESSING_FAILED: ERROR_CODES.STORAGE_WEBHOOK_PROCESSING_FAILED,\n WEBHOOK_TIMEOUT: ERROR_CODES.STORAGE_WEBHOOK_TIMEOUT,\n WEBHOOK_ADAPTER_NOT_FOUND: ERROR_CODES.STORAGE_WEBHOOK_ADAPTER_NOT_FOUND,\n WEBHOOK_DUPLICATE_DETECTED: ERROR_CODES.STORAGE_WEBHOOK_DUPLICATE_DETECTED,\n WEBHOOK_IDEMPOTENCY_ERROR: ERROR_CODES.STORAGE_WEBHOOK_IDEMPOTENCY_ERROR,\n WEBHOOK_RATE_LIMIT_EXCEEDED: ERROR_CODES.STORAGE_WEBHOOK_RATE_LIMIT_EXCEEDED,\n\n // Timeout & Network\n TIMEOUT: ERROR_CODES.STORAGE_TIMEOUT,\n NETWORK_ERROR: ERROR_CODES.STORAGE_NETWORK_ERROR,\n CONNECTION_LOST: ERROR_CODES.STORAGE_CONNECTION_LOST,\n\n // Permission & Quota\n PERMISSION_DENIED: ERROR_CODES.STORAGE_PERMISSION_DENIED,\n QUOTA_EXCEEDED: ERROR_CODES.STORAGE_QUOTA_EXCEEDED,\n INSUFFICIENT_SPACE: ERROR_CODES.STORAGE_INSUFFICIENT_SPACE,\n\n // Feature Implementation\n FEATURE_NOT_IMPLEMENTED: ERROR_CODES.STORAGE_FEATURE_NOT_IMPLEMENTED,\n} as const;\n\n/**\n * Core-specific error codes\n * Subset of ERROR_CODES for @plyaz/core package\n */\nexport const CORE_ERROR_CODES = {\n // Feature Flags\n FEATURE_FLAG_NOT_FOUND: ERROR_CODES.CORE_FEATURE_FLAG_NOT_FOUND,\n FEATURE_FLAG_INVALID_CONFIG: ERROR_CODES.CORE_FEATURE_FLAG_INVALID_CONFIG,\n FEATURE_FLAG_EVALUATION_FAILED: ERROR_CODES.CORE_FEATURE_FLAG_EVALUATION_FAILED,\n FEATURE_FLAG_PROVIDER_ERROR: ERROR_CODES.CORE_FEATURE_FLAG_PROVIDER_ERROR,\n FEATURE_FLAG_CACHE_ERROR: ERROR_CODES.CORE_FEATURE_FLAG_CACHE_ERROR,\n FEATURE_FLAG_CONTEXT_INVALID: ERROR_CODES.CORE_FEATURE_FLAG_CONTEXT_INVALID,\n FEATURE_FLAG_RULE_INVALID: ERROR_CODES.CORE_FEATURE_FLAG_RULE_INVALID,\n FEATURE_FLAG_TOGGLE_FAILED: ERROR_CODES.CORE_FEATURE_FLAG_TOGGLE_FAILED,\n\n // Cache\n CACHE_INITIALIZATION_FAILED: ERROR_CODES.CORE_CACHE_INITIALIZATION_FAILED,\n CACHE_STRATEGY_NOT_FOUND: ERROR_CODES.CORE_CACHE_STRATEGY_NOT_FOUND,\n CACHE_OPERATION_FAILED: ERROR_CODES.CORE_CACHE_OPERATION_FAILED,\n CACHE_INVALIDATION_FAILED: ERROR_CODES.CORE_CACHE_INVALIDATION_FAILED,\n CACHE_SERIALIZATION_FAILED: ERROR_CODES.CORE_CACHE_SERIALIZATION_FAILED,\n\n // API Client\n API_CLIENT_INITIALIZATION_FAILED: ERROR_CODES.CORE_API_CLIENT_INITIALIZATION_FAILED,\n API_CLIENT_REQUEST_FAILED: ERROR_CODES.CORE_API_CLIENT_REQUEST_FAILED,\n API_CLIENT_TIMEOUT: ERROR_CODES.CORE_API_CLIENT_TIMEOUT,\n API_CLIENT_INVALID_RESPONSE: ERROR_CODES.CORE_API_CLIENT_INVALID_RESPONSE,\n API_CLIENT_AUTHENTICATION_FAILED: ERROR_CODES.CORE_API_CLIENT_AUTHENTICATION_FAILED,\n\n // Database Service\n DATABASE_SERVICE_INITIALIZATION_FAILED: ERROR_CODES.CORE_DATABASE_SERVICE_INITIALIZATION_FAILED,\n DATABASE_SERVICE_CONNECTION_FAILED: ERROR_CODES.CORE_DATABASE_SERVICE_CONNECTION_FAILED,\n DATABASE_SERVICE_QUERY_FAILED: ERROR_CODES.CORE_DATABASE_SERVICE_QUERY_FAILED,\n DATABASE_SERVICE_TRANSACTION_FAILED: ERROR_CODES.CORE_DATABASE_SERVICE_TRANSACTION_FAILED,\n\n // Validation\n VALIDATION_FAILED: ERROR_CODES.CORE_VALIDATION_FAILED,\n VALIDATION_SCHEMA_INVALID: ERROR_CODES.CORE_VALIDATION_SCHEMA_INVALID,\n VALIDATION_REQUIRED_FIELD_MISSING: ERROR_CODES.CORE_VALIDATION_REQUIRED_FIELD_MISSING,\n\n // Hash Utilities\n HASH_GENERATION_FAILED: ERROR_CODES.CORE_HASH_GENERATION_FAILED,\n HASH_VERIFICATION_FAILED: ERROR_CODES.CORE_HASH_VERIFICATION_FAILED,\n\n // Engine\n ENGINE_INITIALIZATION_FAILED: ERROR_CODES.CORE_ENGINE_INITIALIZATION_FAILED,\n ENGINE_EXECUTION_FAILED: ERROR_CODES.CORE_ENGINE_EXECUTION_FAILED,\n ENGINE_CONFIGURATION_INVALID: ERROR_CODES.CORE_ENGINE_CONFIGURATION_INVALID,\n\n // Provider\n PROVIDER_NOT_FOUND: ERROR_CODES.CORE_PROVIDER_NOT_FOUND,\n PROVIDER_INITIALIZATION_FAILED: ERROR_CODES.CORE_PROVIDER_INITIALIZATION_FAILED,\n PROVIDER_OPERATION_FAILED: ERROR_CODES.CORE_PROVIDER_OPERATION_FAILED,\n\n // Context\n CONTEXT_INVALID: ERROR_CODES.CORE_CONTEXT_INVALID,\n CONTEXT_MISSING_REQUIRED_DATA: ERROR_CODES.CORE_CONTEXT_MISSING_REQUIRED_DATA,\n\n // General Core\n INITIALIZATION_FAILED: ERROR_CODES.CORE_INITIALIZATION_FAILED,\n CONFIGURATION_INVALID: ERROR_CODES.CORE_CONFIGURATION_INVALID,\n OPERATION_FAILED: ERROR_CODES.CORE_OPERATION_FAILED,\n UNKNOWN_ERROR: ERROR_CODES.CORE_UNKNOWN_ERROR,\n\n // Common/Generic Errors (used across core package)\n CLIENT_INITIALIZATION_FAILED: ERROR_CODES.CLIENT_INITIALIZATION_FAILED,\n CLIENT_INVALID_CONFIG: ERROR_CODES.CLIENT_INVALID_CONFIG,\n CONTEXT_OPERATION_FAILED: ERROR_CODES.CONTEXT_OPERATION_FAILED,\n FEATURE_NOT_SUPPORTED: ERROR_CODES.FEATURE_NOT_SUPPORTED,\n VALIDATION_ERROR: ERROR_CODES.VALIDATION_ERROR,\n NETWORK_ERROR: ERROR_CODES.NETWORK_ERROR,\n RESOURCE_NOT_FOUND: ERROR_CODES.RESOURCE_NOT_FOUND,\n DB_CONNECTION_FAILED: ERROR_CODES.DB_CONNECTION_FAILED,\n DB_DUPLICATE_ENTRY: ERROR_CODES.DB_DUPLICATE_ENTRY,\n PROVIDER_NOT_IMPLEMENTED: ERROR_CODES.PROVIDER_NOT_IMPLEMENTED,\n STORAGE_FILE_WRITE_FAILED: ERROR_CODES.STORAGE_FILE_WRITE_FAILED,\n} as const;\n\n/**\n * PAYMENT-specific error codes\n * Subset of ERROR_CODES for @plyaz/payments package\n */\nexport const PAYMENT_ERROR_CODES = {\n // Timeout & Network\n PAYMENT_TIMEOUT: ERROR_CODES.PAYMENT_TIMEOUT,\n PAYMENT_NETWORK_ERROR: ERROR_CODES.PAYMENT_NETWORK_ERROR,\n\n // Refund\n PAYMENT_REFUND_FAILED: ERROR_CODES.PAYMENT_REFUND_FAILED,\n PAYMENT_REFUND_NOT_FOUND: ERROR_CODES.PAYMENT_REFUND_NOT_FOUND,\n PAYMENT_REFUND_ALREADY_PROCESSED: ERROR_CODES.PAYMENT_REFUND_ALREADY_PROCESSED,\n PAYMENT_REFUND_AMOUNT_INVALID: ERROR_CODES.PAYMENT_REFUND_AMOUNT_INVALID,\n PAYMENT_REFUND_VALIDATION_FAILED: ERROR_CODES.PAYMENT_REFUND_VALIDATION_FAILED,\n PAYMENT_REFUND_TIMEOUT: ERROR_CODES.PAYMENT_REFUND_TIMEOUT,\n PAYMENT_REFUND_NOT_ALLOWED: ERROR_CODES.PAYMENT_REFUND_NOT_ALLOWED,\n PAYMENT_REFUND_AUTHORIZATION_FAILED: ERROR_CODES.PAYMENT_REFUND_AUTHORIZATION_FAILED,\n PAYMENT_REFUND_PROCESSING_FAILED: ERROR_CODES.PAYMENT_REFUND_PROCESSING_FAILED,\n\n // Provider\n PAYMENT_PROVIDER_ERROR: ERROR_CODES.PAYMENT_PROVIDER_ERROR,\n PAYMENT_PROVIDER_UNAVAILABLE: ERROR_CODES.PAYMENT_PROVIDER_UNAVAILABLE,\n PAYMENT_PROVIDER_CONFIGURATION_INVALID: ERROR_CODES.PAYMENT_PROVIDER_CONFIGURATION_INVALID,\n PAYMENT_PROVIDER_RESPONSE_INVALID: ERROR_CODES.PAYMENT_PROVIDER_RESPONSE_INVALID,\n PAYMENT_PROVIDER_TIMEOUT: ERROR_CODES.PAYMENT_PROVIDER_TIMEOUT,\n PAYMENT_PROVIDER_AUTH_FAILED: ERROR_CODES.PAYMENT_PROVIDER_AUTH_FAILED,\n PAYMENT_PROVIDER_RATE_LIMIT: ERROR_CODES.PAYMENT_PROVIDER_RATE_LIMIT,\n PAYMENT_PROVIDER_UNKNOWN: ERROR_CODES.PAYMENT_PROVIDER_UNKNOWN,\n PAYMENT_CUSTOMER_CREATION_FAILED: ERROR_CODES.PAYMENT_CUSTOMER_CREATION_FAILED,\n\n // Payment method\n PAYMENT_METHOD_SAVE_FAILED: ERROR_CODES.PAYMENT_METHOD_SAVE_FAILED,\n PAYMENT_METHOD_DELETE_FAILED: ERROR_CODES.PAYMENT_METHOD_DELETE_FAILED,\n\n // Subscription\n PAYMENT_SUBSCRIPTION_CREATE_FAILED: ERROR_CODES.PAYMENT_SUBSCRIPTION_CREATE_FAILED,\n PAYMENT_SUBSCRIPTION_CANCEL_FAILED: ERROR_CODES.PAYMENT_SUBSCRIPTION_CANCEL_FAILED,\n\n // Payout\n PAYMENT_PAYOUT_FAILED: ERROR_CODES.PAYMENT_PAYOUT_FAILED,\n\n // Transaction history\n PAYMENT_TRANSACTION_HISTORY_FETCH_FAILED: ERROR_CODES.PAYMENT_TRANSACTION_HISTORY_FETCH_FAILED,\n\n // Compliance\n PAYMENT_COMPLIANCE_VIOLATION: ERROR_CODES.PAYMENT_COMPLIANCE_VIOLATION,\n PAYMENT_COMPLIANCE_CHECK_FAILED: ERROR_CODES.PAYMENT_COMPLIANCE_CHECK_FAILED,\n PAYMENT_COMPLIANCE_LIMIT_EXCEEDED: ERROR_CODES.PAYMENT_COMPLIANCE_LIMIT_EXCEEDED,\n PAYMENT_COMPLIANCE_POLICY_MISSING: ERROR_CODES.PAYMENT_COMPLIANCE_POLICY_MISSING,\n PAYMENT_COMPLIANCE_KYC_REQUIRED: ERROR_CODES.PAYMENT_COMPLIANCE_KYC_REQUIRED,\n PAYMENT_COMPLIANCE_GEOGRAPHIC_RESTRICTION: ERROR_CODES.PAYMENT_COMPLIANCE_GEOGRAPHIC_RESTRICTION,\n\n // Processing\n PAYMENT_PROCESSING_FAILED: ERROR_CODES.PAYMENT_PROCESSING_FAILED,\n PAYMENT_PROCESSING_TIMEOUT: ERROR_CODES.PAYMENT_PROCESSING_TIMEOUT,\n PAYMENT_PROCESSING_GATEWAY_ERROR: ERROR_CODES.PAYMENT_PROCESSING_GATEWAY_ERROR,\n PAYMENT_PROCESSING_DUPLICATE: ERROR_CODES.PAYMENT_PROCESSING_DUPLICATE,\n PAYMENT_PROCESSING_UNEXPECTED_STATE: ERROR_CODES.PAYMENT_PROCESSING_UNEXPECTED_STATE,\n\n // Security\n PAYMENT_SECURITY_VIOLATION: ERROR_CODES.PAYMENT_SECURITY_VIOLATION,\n PAYMENT_SECURITY_SIGNATURE_INVALID: ERROR_CODES.PAYMENT_SECURITY_SIGNATURE_INVALID,\n PAYMENT_SECURITY_ENCRYPTION_FAILED: ERROR_CODES.PAYMENT_SECURITY_ENCRYPTION_FAILED,\n PAYMENT_SECURITY_FRAUD_DETECTED: ERROR_CODES.PAYMENT_SECURITY_FRAUD_DETECTED,\n PAYMENT_SECURITY_TOKEN_INVALID: ERROR_CODES.PAYMENT_SECURITY_TOKEN_INVALID,\n PAYMENT_SECURITY_VELOCITY_LIMIT_EXCEEDED: ERROR_CODES.PAYMENT_SECURITY_VELOCITY_LIMIT_EXCEEDED,\n\n // Validation\n PAYMENT_VALIDATION_FAILED: ERROR_CODES.PAYMENT_VALIDATION_FAILED,\n PAYMENT_VALIDATION_AMOUNT_INVALID: ERROR_CODES.PAYMENT_VALIDATION_AMOUNT_INVALID,\n PAYMENT_VALIDATION_CURRENCY_UNSUPPORTED: ERROR_CODES.PAYMENT_VALIDATION_CURRENCY_UNSUPPORTED,\n PAYMENT_VALIDATION_METADATA_INVALID: ERROR_CODES.PAYMENT_VALIDATION_METADATA_INVALID,\n PAYMENT_VALIDATION_MISSING_REQUIRED_FIELD: ERROR_CODES.PAYMENT_VALIDATION_MISSING_REQUIRED_FIELD,\n\n // Webhook\n PAYMENT_WEBHOOK_SIGNATURE_INVALID: ERROR_CODES.PAYMENT_WEBHOOK_SIGNATURE_INVALID,\n PAYMENT_WEBHOOK_PROCESSING_FAILED: ERROR_CODES.PAYMENT_WEBHOOK_PROCESSING_FAILED,\n PAYMENT_WEBHOOK_VALIDATION_FAILED: ERROR_CODES.PAYMENT_WEBHOOK_VALIDATION_FAILED,\n PAYMENT_WEBHOOK_EVENT_TYPE_UNSUPPORTED: ERROR_CODES.PAYMENT_WEBHOOK_EVENT_TYPE_UNSUPPORTED,\n PAYMENT_WEBHOOK_HANDLER_NOT_FOUND: ERROR_CODES.PAYMENT_WEBHOOK_HANDLER_NOT_FOUND,\n\n // Adapter & Core\n PAYMENT_ADAPTER_INIT_FAILED: ERROR_CODES.PAYMENT_ADAPTER_INIT_FAILED,\n PAYMENT_ADAPTER_SHUTDOWN_ERROR: ERROR_CODES.PAYMENT_ADAPTER_SHUTDOWN_ERROR,\n PAYMENT_ADAPTER_HMAC_COMPUTATION_FAILED: ERROR_CODES.PAYMENT_ADAPTER_HMAC_COMPUTATION_FAILED,\n PAYMENT_ADAPTER_MISSING_PROVIDER: ERROR_CODES.PAYMENT_ADAPTER_MISSING_PROVIDER,\n PAYMENT_ADAPTER_MISSING_ENVIRONMENT: ERROR_CODES.PAYMENT_ADAPTER_MISSING_ENVIRONMENT,\n PAYMENT_ADAPTER_MISSING_CREDENTIALS: ERROR_CODES.PAYMENT_ADAPTER_MISSING_CREDENTIALS,\n PAYMENT_ADAPTER_MISSING_WEBHOOK_URL: ERROR_CODES.PAYMENT_ADAPTER_MISSING_WEBHOOK_URL,\n PAYMENT_ADAPTER_MISSING_UNREGISTER_ENDPOINT:\n ERROR_CODES.PAYMENT_ADAPTER_MISSING_UNREGISTER_ENDPOINT,\n PAYMENT_ADAPTER_UNSUPPORTED_OPERATION: ERROR_CODES.PAYMENT_ADAPTER_UNSUPPORTED_OPERATION,\n PAYMENT_ADAPTER_RESPONSE_MAPPING_FAILED: ERROR_CODES.PAYMENT_ADAPTER_RESPONSE_MAPPING_FAILED,\n\n // Unsupported Operations\n SAVE_PAYMENT_METHOD_UNSUPPORTED: ERROR_CODES.SAVE_PAYMENT_METHOD_UNSUPPORTED,\n DELETE_PAYMENT_METHOD_UNSUPPORTED: ERROR_CODES.DELETE_PAYMENT_METHOD_UNSUPPORTED,\n GET_USER_PAYMENT_METHODS_UNSUPPORTED: ERROR_CODES.GET_USER_PAYMENT_METHODS_UNSUPPORTED,\n CREATE_SUBSCRIPTION_UNSUPPORTED: ERROR_CODES.CREATE_SUBSCRIPTION_UNSUPPORTED,\n CANCEL_SUBSCRIPTION_UNSUPPORTED: ERROR_CODES.CANCEL_SUBSCRIPTION_UNSUPPORTED,\n PROCESS_PAYOUT_UNSUPPORTED: ERROR_CODES.PROCESS_PAYOUT_UNSUPPORTED,\n GET_TRANSACTION_HISTORY_UNSUPPORTED: ERROR_CODES.GET_TRANSACTION_HISTORY_UNSUPPORTED,\n\n // Idempotency\n PAYMENT_IDEMPOTENCY_VIOLATION: ERROR_CODES.PAYMENT_IDEMPOTENCY_VIOLATION,\n PAYMENT_IDEMPOTENCY_KEY_MISSING: ERROR_CODES.PAYMENT_IDEMPOTENCY_KEY_MISSING,\n PAYMENT_IDEMPOTENCY_STORE_ERROR: ERROR_CODES.PAYMENT_IDEMPOTENCY_STORE_ERROR,\n\n // Routing\n PAYMENT_ROUTING_FAILED: ERROR_CODES.PAYMENT_ROUTING_FAILED,\n PAYMENT_ROUTING_CONFIGURATION_INVALID: ERROR_CODES.PAYMENT_ROUTING_CONFIGURATION_INVALID,\n PAYMENT_ROUTING_PROVIDER_UNAVAILABLE: ERROR_CODES.PAYMENT_ROUTING_PROVIDER_UNAVAILABLE,\n PAYMENT_ROUTING_RETRY_EXCEEDED: ERROR_CODES.PAYMENT_ROUTING_RETRY_EXCEEDED,\n\n // General\n PAYMENT_SYSTEM_NOT_INITIALIZED: ERROR_CODES.PAYMENT_SYSTEM_NOT_INITIALIZED,\n PAYMENT_CONTEXT_OPERATION_FAILED: ERROR_CODES.PAYMENT_CONTEXT_OPERATION_FAILED,\n PAYMENT_INTERNAL_ERROR: ERROR_CODES.PAYMENT_INTERNAL_ERROR,\n PAYMENT_UNKNOWN_ERROR: ERROR_CODES.PAYMENT_UNKNOWN_ERROR,\n\n // Event\n PAYMENT_EVENT_EMIT_FAILED: ERROR_CODES.PAYMENT_EVENT_EMIT_FAILED,\n PAYMENT_EVENT_INVALID_TYPE: ERROR_CODES.PAYMENT_EVENT_INVALID_TYPE,\n PAYMENT_EVENT_CREATION_FAILED: ERROR_CODES.PAYMENT_EVENT_CREATION_FAILED,\n PAYMENT_EVENT_HANDLER_TIMEOUT: ERROR_CODES.PAYMENT_EVENT_HANDLER_TIMEOUT,\n PAYMENT_EVENT_HANDLER_INVALID_RESULT: ERROR_CODES.PAYMENT_EVENT_HANDLER_INVALID_RESULT,\n PAYMENT_EVENT_LIFECYCLE_FAILURE: ERROR_CODES.PAYMENT_EVENT_LIFECYCLE_FAILURE,\n\n // Withdrawal\n PAYMENT_WITHDRAWAL_UNSUPPORTED: ERROR_CODES.WITHDRAWAL_UNSUPPORTED,\n PAYMENT_WITHDRAWAL_CREATE_UNSUPPORTED: ERROR_CODES.WITHDRAWAL_CREATE_UNSUPPORTED,\n PAYMENT_WITHDRAWAL_PROCESS_UNSUPPORTED: ERROR_CODES.WITHDRAWAL_PROCESS_UNSUPPORTED,\n PAYMENT_WITHDRAWAL_STATUS_FETCH_UNSUPPORTED: ERROR_CODES.WITHDRAWAL_STATUS_FETCH_UNSUPPORTED,\n PAYMENT_WITHDRAWAL_CANCEL_UNSUPPORTED: ERROR_CODES.WITHDRAWAL_CANCEL_UNSUPPORTED,\n\n PAYMENT_WITHDRAWAL_INSUFFICIENT_BALANCE: ERROR_CODES.WITHDRAWAL_INSUFFICIENT_BALANCE,\n PAYMENT_WITHDRAWAL_INVALID_ACCOUNT: ERROR_CODES.WITHDRAWAL_INVALID_ACCOUNT,\n PAYMENT_WITHDRAWAL_KYC_REQUIRED: ERROR_CODES.WITHDRAWAL_KYC_REQUIRED,\n PAYMENT_WITHDRAWAL_LIMIT_EXCEEDED: ERROR_CODES.WITHDRAWAL_LIMIT_EXCEEDED,\n PAYMENT_WITHDRAWAL_PROVIDER_ERROR: ERROR_CODES.WITHDRAWAL_PROVIDER_ERROR,\n PAYMENT_WITHDRAWAL_FAILED: ERROR_CODES.WITHDRAWAL_FAILED,\n PAYMENT_WITHDRAWAL_TIMEOUT: ERROR_CODES.WITHDRAWAL_TIMEOUT,\n\n // Product\n PAYMENT_PRODUCT_CREATE_UNSUPPORTED: ERROR_CODES.PRODUCT_CREATE_UNSUPPORTED,\n PAYMENT_PRODUCT_UPDATE_UNSUPPORTED: ERROR_CODES.PRODUCT_UPDATE_UNSUPPORTED,\n PAYMENT_PRODUCT_FETCH_UNSUPPORTED: ERROR_CODES.PRODUCT_FETCH_UNSUPPORTED,\n PAYMENT_PRODUCT_DEACTIVATE_UNSUPPORTED: ERROR_CODES.PRODUCT_DEACTIVATE_UNSUPPORTED,\n\n PAYMENT_PRODUCT_NOT_FOUND: ERROR_CODES.PRODUCT_NOT_FOUND,\n PAYMENT_PRODUCT_INVALID_DATA: ERROR_CODES.PRODUCT_INVALID_DATA,\n PAYMENT_PRODUCT_PROVIDER_ERROR: ERROR_CODES.PRODUCT_PROVIDER_ERROR,\n PAYMENT_PRODUCT_ALREADY_INACTIVE: ERROR_CODES.PRODUCT_ALREADY_INACTIVE,\n PAYMENT_PRODUCT_SYNC_FAILED: ERROR_CODES.PRODUCT_SYNC_FAILED,\n\n // Pricing\n PAYMENT_PRICING_CREATE_UNSUPPORTED: ERROR_CODES.PRICING_CREATE_UNSUPPORTED,\n PAYMENT_PRICING_UPDATE_UNSUPPORTED: ERROR_CODES.PRICING_UPDATE_UNSUPPORTED,\n PAYMENT_PRICING_DEACTIVATE_UNSUPPORTED: ERROR_CODES.PRICING_DEACTIVATE_UNSUPPORTED,\n\n PAYMENT_PRICING_NOT_FOUND: ERROR_CODES.PRICING_NOT_FOUND,\n PAYMENT_PRICING_INVALID_AMOUNT: ERROR_CODES.PRICING_INVALID_AMOUNT,\n PAYMENT_PRICING_INVALID_CURRENCY: ERROR_CODES.PRICING_INVALID_CURRENCY,\n PAYMENT_PRICING_PROVIDER_ERROR: ERROR_CODES.PRICING_PROVIDER_ERROR,\n PAYMENT_PRICING_ALREADY_INACTIVE: ERROR_CODES.PRICING_ALREADY_INACTIVE,\n PAYMENT_PRICING_SYNC_FAILED: ERROR_CODES.PRICING_SYNC_FAILED,\n PAYMENT_PRICING_REQUIRES_NEW_VERSION: ERROR_CODES.PRICING_REQUIRES_NEW_VERSION,\n} as const;\n\n/** Database-specific error codes\n * Subset of ERROR_CODES for database operations\n */\nexport const DATABASE_ERROR_CODES = {\n ACCESS_DENIED: ERROR_CODES.DB_ACCESS_DENIED,\n CONFIG_REQUIRED: ERROR_CODES.DB_CONFIG_REQUIRED,\n CONNECT_FAILED: ERROR_CODES.DB_CONNECT_FAILED,\n DISCONNECT_FAILED: ERROR_CODES.DB_DISCONNECT_FAILED,\n INIT_FAILED: ERROR_CODES.DB_INIT_FAILED,\n QUERY_FAILED: ERROR_CODES.DB_QUERY_FAILED,\n BUILD_WHERE_FAILED: ERROR_CODES.DB_BUILD_WHERE_FAILED,\n INVALID_SQL: ERROR_CODES.DB_INVALID_SQL,\n TRANSACTION_FAILED: ERROR_CODES.DB_TRANSACTION_FAILED,\n UNSUPPORTED_OPERATOR: ERROR_CODES.DB_UNSUPPORTED_OPERATOR,\n CREATE_FAILED: ERROR_CODES.DB_CREATE_FAILED,\n CREATION_FAILED: ERROR_CODES.DB_CREATION_FAILED,\n FETCH_FAILED: ERROR_CODES.DB_FETCH_FAILED,\n FIND_FAILED: ERROR_CODES.DB_FIND_FAILED,\n FIND_MANY_FAILED: ERROR_CODES.DB_FIND_MANY_FAILED,\n FIND_BY_ID_FAILED: ERROR_CODES.DB_FIND_BY_ID_FAILED,\n UPDATE_FAILED: ERROR_CODES.DB_UPDATE_FAILED,\n UPDATE_NO_CHANGES: ERROR_CODES.DB_UPDATE_NO_CHANGES,\n DELETE_FAILED: ERROR_CODES.DB_DELETE_FAILED,\n INSERT_FAILED: ERROR_CODES.DB_INSERT_FAILED,\n RECORD_NOT_FOUND: ERROR_CODES.DB_RECORD_NOT_FOUND,\n EXISTS_FAILED: ERROR_CODES.DB_EXISTS_FAILED,\n COLUMN_NOT_EXISTS: ERROR_CODES.DB_COLUMN_NOT_EXISTS,\n TABLE_NOT_REGISTERED: ERROR_CODES.DB_TABLE_NOT_REGISTERED,\n TABLE_REGISTRATION_FAILED: ERROR_CODES.DB_TABLE_REGISTRATION_FAILED,\n ID_COLUMN_NOT_REGISTERED: ERROR_CODES.DB_ID_COLUMN_NOT_REGISTERED,\n INVALID_COLUMN: ERROR_CODES.DB_INVALID_COLUMN,\n INVALID_TABLE_NAME: ERROR_CODES.DB_INVALID_TABLE_NAME,\n GET_ID_COLUMN_FAILED: ERROR_CODES.DB_GET_ID_COLUMN_FAILED,\n GET_TABLE_FAILED: ERROR_CODES.DB_GET_TABLE_FAILED,\n INVALID_PARAMETERS: ERROR_CODES.DB_INVALID_PARAMETERS,\n INVALID_PARAMS: ERROR_CODES.DB_INVALID_PARAMS,\n INVALID_FILTER: ERROR_CODES.DB_INVALID_FILTER,\n INVALID_ID: ERROR_CODES.DB_INVALID_ID,\n INVALID_ENTITY: ERROR_CODES.DB_INVALID_ENTITY,\n INVALID_UPDATE_PARAMS: ERROR_CODES.DB_INVALID_UPDATE_PARAMS,\n INVALID_FIELD_NAME: ERROR_CODES.DB_INVALID_FIELD_NAME,\n INVALID_RESULT: ERROR_CODES.DB_INVALID_RESULT,\n NO_UPDATE_FIELDS: ERROR_CODES.DB_NO_UPDATE_FIELDS,\n COUNT_FAILED: ERROR_CODES.DB_COUNT_FAILED,\n COUNT_NO_RESULTS: ERROR_CODES.DB_COUNT_NO_RESULTS,\n NO_DATA: ERROR_CODES.DB_NO_DATA,\n NO_TENANT_CONTEXT: ERROR_CODES.DB_NO_TENANT_CONTEXT,\n NO_TENANT_ID: ERROR_CODES.DB_NO_TENANT_ID,\n TENANT_VALIDATION_FAILED: ERROR_CODES.DB_TENANT_VALIDATION_FAILED,\n BACKUP_CLEANUP_FAILED: ERROR_CODES.DB_BACKUP_CLEANUP_FAILED,\n BACKUP_FILE_NOT_FOUND: ERROR_CODES.DB_BACKUP_FILE_NOT_FOUND,\n LIST_BACKUPS_FAILED: ERROR_CODES.DB_LIST_BACKUPS_FAILED,\n INVALID_BACKUP_INFO: ERROR_CODES.DB_INVALID_BACKUP_INFO,\n RESTORE_FAILED: ERROR_CODES.DB_RESTORE_FAILED,\n CACHE_DELETE_FAILED: ERROR_CODES.DB_CACHE_DELETE_FAILED,\n CACHE_HEALTH_CHECK_FAILED: ERROR_CODES.DB_CACHE_HEALTH_CHECK_FAILED,\n CACHE_INVALIDATE_FAILED: ERROR_CODES.DB_CACHE_INVALIDATE_FAILED,\n CACHE_SET_FAILED: ERROR_CODES.DB_CACHE_SET_FAILED,\n CACHE_GET_FAILED: ERROR_CODES.DB_CACHE_GET_FAILED,\n INVALID_FILEPATH: ERROR_CODES.DB_INVALID_FILEPATH,\n S3_DELETE_FAILED: ERROR_CODES.DB_S3_DELETE_FAILED,\n S3_DOWNLOAD_FAILED: ERROR_CODES.DB_S3_DOWNLOAD_FAILED,\n S3_NOT_CONFIGURED: ERROR_CODES.DB_S3_NOT_CONFIGURED,\n S3_UPLOAD_FAILED: ERROR_CODES.DB_S3_UPLOAD_FAILED,\n SCHEDULE_SETUP_FAILED: ERROR_CODES.DB_SCHEDULE_SETUP_FAILED,\n DECRYPTION_FAILED: ERROR_CODES.DB_DECRYPTION_FAILED,\n INVALID_SHELL_ARG: ERROR_CODES.DB_INVALID_SHELL_ARG,\n INVALID_BETWEEN_OPERATOR: ERROR_CODES.DB_INVALID_BETWEEN_OPERATOR,\n INVALID_IN_OPERATOR: ERROR_CODES.DB_INVALID_IN_OPERATOR,\n INVALID_COUNT: ERROR_CODES.DB_INVALID_COUNT,\n CONNECTION_FAILED: ERROR_CODES.DB_CONNECTION_FAILED,\n CONNECTION_ERROR: ERROR_CODES.DB_CONNECTION_ERROR,\n CONSTRAINT_VIOLATION: ERROR_CODES.DB_CONSTRAINT_VIOLATION,\n TIMEOUT: ERROR_CODES.DB_TIMEOUT,\n DEADLOCK: ERROR_CODES.DB_DEADLOCK,\n ENTITY_NOT_FOUND: ERROR_CODES.DB_ENTITY_NOT_FOUND,\n DUPLICATE_ENTRY: ERROR_CODES.DB_DUPLICATE_ENTRY,\n MIGRATION_FAILED: ERROR_CODES.DB_MIGRATION_FAILED,\n MULTI_WRITE_FAILED: ERROR_CODES.DB_MULTI_WRITE_FAILED,\n NOT_FOUND: ERROR_CODES.DB_RECORD_NOT_FOUND,\n UNKNOWN_ERROR: ERROR_CODES.DB_UNKNOWN_ERROR,\n} as const;\n\nexport type ApiErrorCodeValue =\n | (typeof API_ERROR_CODES)[keyof typeof API_ERROR_CODES]\n | `HTTP_${number}`;\nexport type NotificationErrorCodeValue =\n (typeof NOTIFICATION_ERROR_CODES)[keyof typeof NOTIFICATION_ERROR_CODES];\n\nexport type StorageErrorCode = (typeof STORAGE_ERROR_CODES)[keyof typeof STORAGE_ERROR_CODES];\n\nexport type DatabaseErrorCodeValue =\n (typeof DATABASE_ERROR_CODES)[keyof typeof DATABASE_ERROR_CODES];\n\nexport type CoreErrorCodeValue = (typeof CORE_ERROR_CODES)[keyof typeof CORE_ERROR_CODES];\n\nexport type PaymentErrorCodeValue = (typeof PAYMENT_ERROR_CODES)[keyof typeof PAYMENT_ERROR_CODES];\n\n/**\n * Unified ERROR_DEFINITIONS\n * Single source of truth for ALL error definitions across all @plyaz packages\n *\n * Combines:\n * - API error definitions (basic: code, status, category, fieldsLeft)\n * - Notification error definitions (extended: includes severity, retryable, userMessage)\n *\n * All packages can access ANY error definition for cross-package error handling\n */\nexport const ERROR_DEFINITIONS: ErrorDefinitions = {\n // ===== Generic/Common Error Definitions =====\n [ERROR_CODES.NOT_IMPLEMENTED]: {\n code: ERROR_CODES.NOT_IMPLEMENTED,\n status: HTTP_STATUS.NOT_IMPLEMENTED,\n category: ERROR_CATEGORY.System,\n userMessage: 'errors.not_implemented',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.PROVIDER_NOT_IMPLEMENTED]: {\n code: ERROR_CODES.PROVIDER_NOT_IMPLEMENTED,\n status: HTTP_STATUS.NOT_IMPLEMENTED,\n category: ERROR_CATEGORY.System,\n userMessage: 'errors.provider.not_implemented',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.FEATURE_NOT_SUPPORTED]: {\n code: ERROR_CODES.FEATURE_NOT_SUPPORTED,\n status: HTTP_STATUS.NOT_IMPLEMENTED,\n category: ERROR_CATEGORY.System,\n userMessage: 'errors.feature.not_supported',\n severity: ERROR_SEVERITY.Low,\n retryable: false,\n },\n\n // ===== API Package Error Definitions =====\n // Authentication\n [ERROR_CODES.AUTH_UNAUTHORIZED]: {\n code: ERROR_CODES.AUTH_UNAUTHORIZED,\n status: HTTP_STATUS.UNAUTHORIZED,\n category: ERROR_CATEGORY.Authentication,\n userMessage: 'errors.auth.unauthorized',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.AUTH_FORBIDDEN]: {\n code: ERROR_CODES.AUTH_FORBIDDEN,\n status: HTTP_STATUS.FORBIDDEN,\n category: ERROR_CATEGORY.Authorization,\n userMessage: 'errors.auth.forbidden',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n // Rate Limiting\n [ERROR_CODES.RATE_LIMIT_EXCEEDED]: {\n code: ERROR_CODES.RATE_LIMIT_EXCEEDED,\n status: HTTP_STATUS.TOO_MANY_REQUESTS,\n category: ERROR_CATEGORY.RateLimit,\n userMessage: 'errors.rate_limit.exceeded',\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n },\n\n // Resources\n [ERROR_CODES.RESOURCE_NOT_FOUND]: {\n code: ERROR_CODES.RESOURCE_NOT_FOUND,\n status: HTTP_STATUS.NOT_FOUND,\n category: ERROR_CATEGORY.NotFound,\n userMessage: 'errors.resource.not_found',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.RESOURCE_CONFLICT]: {\n code: ERROR_CODES.RESOURCE_CONFLICT,\n status: HTTP_STATUS.CONFLICT,\n category: ERROR_CATEGORY.Conflict,\n userMessage: 'errors.resource.conflict',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n // Validation\n [ERROR_CODES.API_VALIDATION_FAILED]: {\n code: ERROR_CODES.API_VALIDATION_FAILED,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'errors.validation.failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.API_INVALID_INPUT]: {\n code: ERROR_CODES.API_INVALID_INPUT,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'errors.validation.invalid_input',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.VALIDATION_ERROR]: {\n code: ERROR_CODES.VALIDATION_ERROR,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'errors.validation.error',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.REQUIRED_FIELD_MISSING]: {\n code: ERROR_CODES.REQUIRED_FIELD_MISSING,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'errors.validation.required_field_missing',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.INVALID_FORMAT]: {\n code: ERROR_CODES.INVALID_FORMAT,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'errors.validation.invalid_format',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.VALIDATION_INVALID_FORMAT]: {\n code: ERROR_CODES.VALIDATION_INVALID_FORMAT,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'errors.validation.invalid_format',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.STRING_TOO_SHORT]: {\n code: ERROR_CODES.STRING_TOO_SHORT,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'errors.validation.string_too_short',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.STRING_TOO_LONG]: {\n code: ERROR_CODES.STRING_TOO_LONG,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'errors.validation.string_too_long',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n // Network\n [ERROR_CODES.NETWORK_ERROR]: {\n code: ERROR_CODES.NETWORK_ERROR,\n status: HTTP_STATUS.BAD_GATEWAY,\n category: ERROR_CATEGORY.Network,\n userMessage: 'errors.network.error',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n [ERROR_CODES.CONNECTION_FAILED]: {\n code: ERROR_CODES.CONNECTION_FAILED,\n status: 0,\n category: ERROR_CATEGORY.Network,\n userMessage: 'errors.network.connection_failed',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n [ERROR_CODES.NETWORK_CONNECTION_FAILED]: {\n code: ERROR_CODES.NETWORK_CONNECTION_FAILED,\n status: 0,\n category: ERROR_CATEGORY.Network,\n userMessage: 'errors.network.connection_failed',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n [ERROR_CODES.NETWORK_OFFLINE]: {\n code: ERROR_CODES.NETWORK_OFFLINE,\n status: 0,\n category: ERROR_CATEGORY.Network,\n userMessage: 'errors.network.offline',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n [ERROR_CODES.NETWORK_DNS_FAILED]: {\n code: ERROR_CODES.NETWORK_DNS_FAILED,\n status: 0,\n category: ERROR_CATEGORY.Network,\n userMessage: 'errors.network.dns_failed',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n [ERROR_CODES.NETWORK_TIMEOUT]: {\n code: ERROR_CODES.NETWORK_TIMEOUT,\n status: 0,\n category: ERROR_CATEGORY.Network,\n userMessage: 'errors.network.timeout',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n [ERROR_CODES.NETWORK_CONFIGURATION_INVALID]: {\n code: ERROR_CODES.NETWORK_CONFIGURATION_INVALID,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Configuration,\n userMessage: 'errors.network.configuration_invalid',\n severity: ERROR_SEVERITY.Critical,\n retryable: true,\n },\n [ERROR_CODES.NETWORK_PRESET_NOT_FOUND]: {\n code: ERROR_CODES.NETWORK_PRESET_NOT_FOUND,\n status: HTTP_STATUS.NOT_FOUND,\n category: ERROR_CATEGORY.Configuration,\n userMessage: 'errors.network.preset_not_found',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n\n // Server\n [ERROR_CODES.SERVER_ERROR]: {\n code: ERROR_CODES.SERVER_ERROR,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Server,\n userMessage: 'errors.server.error',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n [ERROR_CODES.INTERNAL_SERVER_ERROR]: {\n code: ERROR_CODES.INTERNAL_SERVER_ERROR,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Server,\n userMessage: 'errors.server.internal_error',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n [ERROR_CODES.SERVICE_UNAVAILABLE]: {\n code: ERROR_CODES.SERVICE_UNAVAILABLE,\n status: HTTP_STATUS.SERVICE_UNAVAILABLE,\n category: ERROR_CATEGORY.Server,\n userMessage: 'errors.server.service_unavailable',\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n },\n\n // Cache\n [ERROR_CODES.CACHE_READ_FAILED]: {\n code: ERROR_CODES.CACHE_READ_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Cache,\n userMessage: 'errors.cache.read_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.CACHE_WRITE_FAILED]: {\n code: ERROR_CODES.CACHE_WRITE_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Cache,\n userMessage: 'errors.cache.write_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.CACHE_INVALIDATION_FAILED]: {\n code: ERROR_CODES.CACHE_INVALIDATION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Cache,\n userMessage: 'errors.cache.invalidation_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.CACHE_STORAGE_FAILED]: {\n code: ERROR_CODES.CACHE_STORAGE_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Cache,\n userMessage: 'errors.cache.storage_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.CACHE_RETRIEVAL_FAILED]: {\n code: ERROR_CODES.CACHE_RETRIEVAL_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Cache,\n userMessage: 'errors.cache.retrieval_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n // Retry\n [ERROR_CODES.RETRY_LIMIT_EXCEEDED]: {\n code: ERROR_CODES.RETRY_LIMIT_EXCEEDED,\n status: HTTP_STATUS.SERVICE_UNAVAILABLE,\n category: ERROR_CATEGORY.Retry,\n userMessage: 'errors.retry.limit_exceeded',\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n },\n [ERROR_CODES.RETRY_FAILED]: {\n code: ERROR_CODES.RETRY_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Retry,\n userMessage: 'errors.retry.failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n },\n [ERROR_CODES.RETRY_EXHAUSTED]: {\n code: ERROR_CODES.RETRY_EXHAUSTED,\n status: HTTP_STATUS.SERVICE_UNAVAILABLE,\n category: ERROR_CATEGORY.Retry,\n userMessage: 'errors.retry.exhausted',\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n },\n [ERROR_CODES.RETRY_STRATEGY_INVALID]: {\n code: ERROR_CODES.RETRY_STRATEGY_INVALID,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Configuration,\n userMessage: 'errors.retry.strategy_invalid',\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n },\n\n // Strategy\n [ERROR_CODES.STRATEGY_INVALID]: {\n code: ERROR_CODES.STRATEGY_INVALID,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Configuration,\n userMessage: 'errors.strategy.invalid',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.STRATEGY_CONFLICT]: {\n code: ERROR_CODES.STRATEGY_CONFLICT,\n status: HTTP_STATUS.CONFLICT,\n category: ERROR_CATEGORY.Configuration,\n userMessage: 'errors.strategy.conflict',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.STRATEGY_EXECUTION_FAILED]: {\n code: ERROR_CODES.STRATEGY_EXECUTION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Configuration,\n userMessage: 'errors.strategy.execution_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n // Headers\n [ERROR_CODES.HEADERS_ENRICHMENT_FAILED]: {\n code: ERROR_CODES.HEADERS_ENRICHMENT_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Headers,\n userMessage: 'errors.headers.enrichment_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.HEADERS_VALIDATION_FAILED]: {\n code: ERROR_CODES.HEADERS_VALIDATION_FAILED,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Headers,\n userMessage: 'errors.headers.validation_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.HEADERS_MERGE_CONFLICT]: {\n code: ERROR_CODES.HEADERS_MERGE_CONFLICT,\n status: HTTP_STATUS.CONFLICT,\n category: ERROR_CATEGORY.Headers,\n userMessage: 'errors.headers.merge_conflict',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n // Regional\n [ERROR_CODES.REGION_DETECTION_FAILED]: {\n code: ERROR_CODES.REGION_DETECTION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Network,\n userMessage: 'errors.regional.detection_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.REGIONAL_PRESET_NOT_FOUND]: {\n code: ERROR_CODES.REGIONAL_PRESET_NOT_FOUND,\n status: HTTP_STATUS.NOT_FOUND,\n category: ERROR_CATEGORY.Configuration,\n userMessage: 'errors.regional.preset_not_found',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n // External Services\n [ERROR_CODES.EXTERNAL_SERVICE_ERROR]: {\n code: ERROR_CODES.EXTERNAL_SERVICE_ERROR,\n status: HTTP_STATUS.BAD_GATEWAY,\n category: ERROR_CATEGORY.Server,\n userMessage: 'errors.external.service_error',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n // Timeout\n [ERROR_CODES.TIMEOUT]: {\n code: ERROR_CODES.TIMEOUT,\n status: HTTP_STATUS.REQUEST_TIMEOUT,\n category: ERROR_CATEGORY.Timeout,\n userMessage: 'errors.timeout.generic',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n\n // Debugging\n [ERROR_CODES.DEBUG_TRACKING_FAILED]: {\n code: ERROR_CODES.DEBUG_TRACKING_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Client,\n userMessage: 'errors.debug.tracking_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.DEBUG_OVERRIDE_FAILED]: {\n code: ERROR_CODES.DEBUG_OVERRIDE_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Configuration,\n userMessage: 'errors.debug.override_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.DEBUG_CONFLICT_DETECTED]: {\n code: ERROR_CODES.DEBUG_CONFLICT_DETECTED,\n status: HTTP_STATUS.CONFLICT,\n category: ERROR_CATEGORY.Configuration,\n userMessage: 'errors.debug.conflict_detected',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n // Endpoint\n [ERROR_CODES.ENDPOINT_BUILD_FAILED]: {\n code: ERROR_CODES.ENDPOINT_BUILD_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Configuration,\n userMessage: 'errors.endpoint.build_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.ENDPOINT_NOT_FOUND]: {\n code: ERROR_CODES.ENDPOINT_NOT_FOUND,\n status: HTTP_STATUS.NOT_FOUND,\n category: ERROR_CATEGORY.NotFound,\n userMessage: 'errors.endpoint.not_found',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.ENDPOINT_INVALID_CONFIG]: {\n code: ERROR_CODES.ENDPOINT_INVALID_CONFIG,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Configuration,\n userMessage: 'errors.endpoint.invalid_config',\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n },\n\n // Event\n [ERROR_CODES.EVENT_HANDLER_FAILED]: {\n code: ERROR_CODES.EVENT_HANDLER_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Client,\n userMessage: 'errors.event.handler_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.EVENT_EMISSION_FAILED]: {\n code: ERROR_CODES.EVENT_EMISSION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Client,\n userMessage: 'errors.event.emission_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.MONITORING_FAILED]: {\n code: ERROR_CODES.MONITORING_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Client,\n userMessage: 'errors.monitoring.failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n // Polling\n [ERROR_CODES.POLLING_CANCELLED]: {\n code: ERROR_CODES.POLLING_CANCELLED,\n status: 0,\n category: ERROR_CATEGORY.Client,\n userMessage: 'errors.polling.cancelled',\n severity: ERROR_SEVERITY.Low,\n retryable: false,\n },\n [ERROR_CODES.POLLING_TIMEOUT]: {\n code: ERROR_CODES.POLLING_TIMEOUT,\n status: HTTP_STATUS.REQUEST_TIMEOUT,\n category: ERROR_CATEGORY.Timeout,\n userMessage: 'errors.polling.timeout',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n [ERROR_CODES.POLLING_INVALID_CONFIG]: {\n code: ERROR_CODES.POLLING_INVALID_CONFIG,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Configuration,\n userMessage: 'errors.polling.invalid_config',\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n },\n\n // PubSub\n [ERROR_CODES.PUBSUB_SUBSCRIPTION_FAILED]: {\n code: ERROR_CODES.PUBSUB_SUBSCRIPTION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Client,\n userMessage: 'errors.pubsub.subscription_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.PUBSUB_PUBLICATION_FAILED]: {\n code: ERROR_CODES.PUBSUB_PUBLICATION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Client,\n userMessage: 'errors.pubsub.publication_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.PUBSUB_INVALID_TOPIC]: {\n code: ERROR_CODES.PUBSUB_INVALID_TOPIC,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'errors.pubsub.invalid_topic',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.PUBSUB_CHANNEL_ERROR]: {\n code: ERROR_CODES.PUBSUB_CHANNEL_ERROR,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Client,\n userMessage: 'errors.pubsub.channel_error',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n // Revalidation\n [ERROR_CODES.REVALIDATION_FAILED]: {\n code: ERROR_CODES.REVALIDATION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Cache,\n userMessage: 'errors.revalidation.failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.REVALIDATION_IN_PROGRESS]: {\n code: ERROR_CODES.REVALIDATION_IN_PROGRESS,\n status: HTTP_STATUS.CONFLICT,\n category: ERROR_CATEGORY.Cache,\n userMessage: 'errors.revalidation.in_progress',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n // Context\n [ERROR_CODES.CONTEXT_OPERATION_FAILED]: {\n code: ERROR_CODES.CONTEXT_OPERATION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Client,\n userMessage: 'errors.context.operation_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n // Request\n [ERROR_CODES.REQUEST_TIMEOUT]: {\n code: ERROR_CODES.REQUEST_TIMEOUT,\n status: HTTP_STATUS.REQUEST_TIMEOUT,\n category: ERROR_CATEGORY.Timeout,\n userMessage: 'errors.request.timeout',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n [ERROR_CODES.REQUEST_ABORTED]: {\n code: ERROR_CODES.REQUEST_ABORTED,\n status: 0,\n category: ERROR_CATEGORY.Client,\n userMessage: 'errors.request.aborted',\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n },\n [ERROR_CODES.REQUEST_INVALID_PARAMS]: {\n code: ERROR_CODES.REQUEST_INVALID_PARAMS,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'errors.request.invalid_params',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.REQUEST_PREPARATION_FAILED]: {\n code: ERROR_CODES.REQUEST_PREPARATION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Client,\n userMessage: 'errors.request.preparation_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n // Response\n [ERROR_CODES.RESPONSE_INVALID_FORMAT]: {\n code: ERROR_CODES.RESPONSE_INVALID_FORMAT,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Server,\n userMessage: 'errors.response.invalid_format',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.RESPONSE_PARSING_FAILED]: {\n code: ERROR_CODES.RESPONSE_PARSING_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Server,\n userMessage: 'errors.response.parsing_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n // Client\n [ERROR_CODES.CLIENT_ERROR]: {\n code: ERROR_CODES.CLIENT_ERROR,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Client,\n userMessage: 'errors.client.error',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.CLIENT_INITIALIZATION_FAILED]: {\n code: ERROR_CODES.CLIENT_INITIALIZATION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Client,\n userMessage: 'errors.client.initialization_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.CLIENT_INVALID_CONFIG]: {\n code: ERROR_CODES.CLIENT_INVALID_CONFIG,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Client,\n userMessage: 'errors.client.invalid_config',\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n },\n [ERROR_CODES.CLIENT_MISSING_BASE_URL]: {\n code: ERROR_CODES.CLIENT_MISSING_BASE_URL,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Configuration,\n userMessage: 'errors.client.missing_base_url',\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n },\n [ERROR_CODES.CLIENT_CANCELLED]: {\n code: ERROR_CODES.CLIENT_CANCELLED,\n status: 0,\n category: ERROR_CATEGORY.Client,\n userMessage: 'errors.client.cancelled',\n severity: ERROR_SEVERITY.Low,\n retryable: true,\n },\n\n // Configuration\n [ERROR_CODES.CONFIG_VALIDATION_FAILED]: {\n code: ERROR_CODES.CONFIG_VALIDATION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Configuration,\n userMessage: 'errors.config.validation_failed',\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n },\n [ERROR_CODES.HEADER_PROCESSING_FAILED]: {\n code: ERROR_CODES.HEADER_PROCESSING_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Headers,\n userMessage: 'errors.headers.processing_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.NETWORK_OVERRIDE_FAILED]: {\n code: ERROR_CODES.NETWORK_OVERRIDE_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Network,\n userMessage: 'errors.network.override_failed',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n\n // Generic\n [ERROR_CODES.UNKNOWN_ERROR]: {\n code: ERROR_CODES.UNKNOWN_ERROR,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Unknown,\n userMessage: 'errors.unknown',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n // ===== Notification Package Error Definitions =====\n // Provider errors (retryable)\n [ERROR_CODES.NOTIFICATION_PROVIDER_SEND_FAILED]: {\n code: ERROR_CODES.NOTIFICATION_PROVIDER_SEND_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Provider,\n severity: ERROR_SEVERITY.High,\n retryable: true,\n userMessage: 'errors.notification.provider.send_failed',\n },\n [ERROR_CODES.NOTIFICATION_PROVIDER_CONFIGURATION_INVALID]: {\n code: ERROR_CODES.NOTIFICATION_PROVIDER_CONFIGURATION_INVALID,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Configuration,\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n userMessage: 'errors.notification.provider.configuration_invalid',\n },\n [ERROR_CODES.NOTIFICATION_PROVIDER_RATE_LIMIT]: {\n code: ERROR_CODES.NOTIFICATION_PROVIDER_RATE_LIMIT,\n status: HTTP_STATUS.TOO_MANY_REQUESTS,\n category: ERROR_CATEGORY.RateLimit,\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n userMessage: 'errors.notification.provider.rate_limit',\n },\n [ERROR_CODES.NOTIFICATION_PROVIDER_AUTH_FAILED]: {\n code: ERROR_CODES.NOTIFICATION_PROVIDER_AUTH_FAILED,\n status: HTTP_STATUS.UNAUTHORIZED,\n category: ERROR_CATEGORY.Provider,\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n userMessage: 'errors.notification.provider.auth_failed',\n },\n [ERROR_CODES.NOTIFICATION_PROVIDER_TIMEOUT]: {\n code: ERROR_CODES.NOTIFICATION_PROVIDER_TIMEOUT,\n status: HTTP_STATUS.GATEWAY_TIMEOUT,\n category: ERROR_CATEGORY.Network,\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n userMessage: 'errors.notification.provider.timeout',\n },\n [ERROR_CODES.NOTIFICATION_PROVIDER_UNAVAILABLE]: {\n code: ERROR_CODES.NOTIFICATION_PROVIDER_UNAVAILABLE,\n status: HTTP_STATUS.SERVICE_UNAVAILABLE,\n category: ERROR_CATEGORY.Provider,\n severity: ERROR_SEVERITY.High,\n retryable: true,\n userMessage: 'errors.notification.provider.unavailable',\n },\n [ERROR_CODES.NOTIFICATION_PROVIDER_FEATURE_NOT_SUPPORTED]: {\n code: ERROR_CODES.NOTIFICATION_PROVIDER_FEATURE_NOT_SUPPORTED,\n status: HTTP_STATUS.NOT_IMPLEMENTED,\n category: ERROR_CATEGORY.Provider,\n severity: ERROR_SEVERITY.Low,\n retryable: false,\n userMessage: 'errors.notification.provider.feature_not_supported',\n },\n [ERROR_CODES.NOTIFICATION_ALL_PROVIDERS_FAILED]: {\n code: ERROR_CODES.NOTIFICATION_ALL_PROVIDERS_FAILED,\n status: HTTP_STATUS.SERVICE_UNAVAILABLE,\n category: ERROR_CATEGORY.Provider,\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n userMessage: 'errors.notification.all_providers_failed',\n },\n\n // Validation errors (non-retryable)\n [ERROR_CODES.NOTIFICATION_INVALID_INPUT]: {\n code: ERROR_CODES.NOTIFICATION_INVALID_INPUT,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n userMessage: 'errors.notification.validation.invalid_input',\n },\n [ERROR_CODES.NOTIFICATION_INVALID_RECIPIENT]: {\n code: ERROR_CODES.NOTIFICATION_INVALID_RECIPIENT,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n userMessage: 'errors.notification.validation.invalid_recipient',\n },\n [ERROR_CODES.NOTIFICATION_INVALID_TEMPLATE]: {\n code: ERROR_CODES.NOTIFICATION_INVALID_TEMPLATE,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Template,\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n userMessage: 'errors.notification.validation.invalid_template',\n },\n [ERROR_CODES.NOTIFICATION_INVALID_PAYLOAD]: {\n code: ERROR_CODES.NOTIFICATION_INVALID_PAYLOAD,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n userMessage: 'errors.notification.validation.invalid_payload',\n },\n [ERROR_CODES.NOTIFICATION_MISSING_REQUIRED_FIELD]: {\n code: ERROR_CODES.NOTIFICATION_MISSING_REQUIRED_FIELD,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n userMessage: 'errors.notification.validation.required_field_missing',\n },\n [ERROR_CODES.NOTIFICATION_VALIDATION_FAILED]: {\n code: ERROR_CODES.NOTIFICATION_VALIDATION_FAILED,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n userMessage: 'errors.notification.validation.failed',\n },\n\n // User Preferences\n [ERROR_CODES.NOTIFICATION_USER_OPTED_OUT]: {\n code: ERROR_CODES.NOTIFICATION_USER_OPTED_OUT,\n status: HTTP_STATUS.OK,\n category: ERROR_CATEGORY.Validation,\n severity: ERROR_SEVERITY.Low,\n retryable: false,\n userMessage: 'errors.notification.user.opted_out',\n },\n\n // Queue errors (retryable)\n [ERROR_CODES.NOTIFICATION_QUEUE_FULL]: {\n code: ERROR_CODES.NOTIFICATION_QUEUE_FULL,\n status: HTTP_STATUS.SERVICE_UNAVAILABLE,\n category: ERROR_CATEGORY.Queue,\n severity: ERROR_SEVERITY.High,\n retryable: true,\n userMessage: 'errors.notification.queue.full',\n },\n [ERROR_CODES.NOTIFICATION_QUEUE_PROCESSING_FAILED]: {\n code: ERROR_CODES.NOTIFICATION_QUEUE_PROCESSING_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Queue,\n severity: ERROR_SEVERITY.High,\n retryable: true,\n userMessage: 'errors.notification.queue.processing_failed',\n },\n\n // Webhook errors\n [ERROR_CODES.NOTIFICATION_WEBHOOK_SIGNATURE_INVALID]: {\n code: ERROR_CODES.NOTIFICATION_WEBHOOK_SIGNATURE_INVALID,\n status: HTTP_STATUS.UNAUTHORIZED,\n category: ERROR_CATEGORY.Webhook,\n severity: ERROR_SEVERITY.High,\n retryable: false,\n userMessage: 'errors.notification.webhook.signature_invalid',\n },\n [ERROR_CODES.NOTIFICATION_WEBHOOK_VALIDATION_FAILED]: {\n code: ERROR_CODES.NOTIFICATION_WEBHOOK_VALIDATION_FAILED,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Webhook,\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n userMessage: 'errors.notification.webhook.validation_failed',\n },\n [ERROR_CODES.NOTIFICATION_WEBHOOK_PROCESSING_FAILED]: {\n code: ERROR_CODES.NOTIFICATION_WEBHOOK_PROCESSING_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Webhook,\n severity: ERROR_SEVERITY.High,\n retryable: true,\n userMessage: 'errors.notification.webhook.processing_failed',\n },\n\n // Template errors\n [ERROR_CODES.NOTIFICATION_TEMPLATE_NOT_FOUND]: {\n code: ERROR_CODES.NOTIFICATION_TEMPLATE_NOT_FOUND,\n status: HTTP_STATUS.NOT_FOUND,\n category: ERROR_CATEGORY.Template,\n severity: ERROR_SEVERITY.High,\n retryable: false,\n userMessage: 'errors.notification.template.not_found',\n },\n [ERROR_CODES.NOTIFICATION_TEMPLATE_RENDER_FAILED]: {\n code: ERROR_CODES.NOTIFICATION_TEMPLATE_RENDER_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Template,\n severity: ERROR_SEVERITY.High,\n retryable: false,\n userMessage: 'errors.notification.template.render_failed',\n },\n\n // General notification errors\n [ERROR_CODES.NOTIFICATION_UNKNOWN_ERROR]: {\n code: ERROR_CODES.NOTIFICATION_UNKNOWN_ERROR,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Unknown,\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n userMessage: 'errors.notification.unknown',\n },\n [ERROR_CODES.NOTIFICATION_INITIALIZATION_FAILED]: {\n code: ERROR_CODES.NOTIFICATION_INITIALIZATION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Configuration,\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n userMessage: 'errors.notification.initialization_failed',\n },\n\n // ===== Storage Package Error Definitions =====\n\n // General\n [ERROR_CODES.STORAGE_UNKNOWN_ERROR]: {\n code: ERROR_CODES.STORAGE_UNKNOWN_ERROR,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Unknown,\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n userMessage: 'errors.storage.unknown',\n },\n [ERROR_CODES.STORAGE_INITIALIZATION_FAILED]: {\n code: ERROR_CODES.STORAGE_INITIALIZATION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Configuration,\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n userMessage: 'errors.storage.initialization_failed',\n },\n\n // Adapter errors\n [ERROR_CODES.STORAGE_ADAPTER_NOT_FOUND]: {\n code: ERROR_CODES.STORAGE_ADAPTER_NOT_FOUND,\n status: HTTP_STATUS.NOT_FOUND,\n category: ERROR_CATEGORY.Configuration,\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n userMessage: 'errors.storage.adapter.not_found',\n },\n [ERROR_CODES.STORAGE_ADAPTER_INITIALIZATION_FAILED]: {\n code: ERROR_CODES.STORAGE_ADAPTER_INITIALIZATION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.ExternalService,\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n userMessage: 'errors.storage.adapter.initialization_failed',\n },\n [ERROR_CODES.STORAGE_ADAPTER_CONFIGURATION_INVALID]: {\n code: ERROR_CODES.STORAGE_ADAPTER_CONFIGURATION_INVALID,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Configuration,\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n userMessage: 'errors.storage.adapter.configuration_invalid',\n },\n [ERROR_CODES.STORAGE_ADAPTER_ALREADY_REGISTERED]: {\n code: ERROR_CODES.STORAGE_ADAPTER_ALREADY_REGISTERED,\n status: HTTP_STATUS.CONFLICT,\n category: ERROR_CATEGORY.Configuration,\n severity: ERROR_SEVERITY.High,\n retryable: false,\n userMessage: 'errors.storage.adapter.already_registered',\n },\n [ERROR_CODES.STORAGE_ADAPTER_CONNECTION_FAILED]: {\n code: ERROR_CODES.STORAGE_ADAPTER_CONNECTION_FAILED,\n status: HTTP_STATUS.SERVICE_UNAVAILABLE,\n category: ERROR_CATEGORY.Network,\n severity: ERROR_SEVERITY.High,\n retryable: true,\n userMessage: 'errors.storage.adapter.connection_failed',\n },\n [ERROR_CODES.STORAGE_ADAPTER_AUTHENTICATION_FAILED]: {\n code: ERROR_CODES.STORAGE_ADAPTER_AUTHENTICATION_FAILED,\n status: HTTP_STATUS.UNAUTHORIZED,\n category: ERROR_CATEGORY.Authentication,\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n userMessage: 'errors.storage.adapter.authentication_failed',\n },\n [ERROR_CODES.STORAGE_ADAPTER_OPERATION_FAILED]: {\n code: ERROR_CODES.STORAGE_ADAPTER_OPERATION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.ExternalService,\n severity: ERROR_SEVERITY.High,\n retryable: true,\n userMessage: 'errors.storage.adapter.operation_failed',\n },\n [ERROR_CODES.STORAGE_ADAPTER_HEALTH_CHECK_FAILED]: {\n code: ERROR_CODES.STORAGE_ADAPTER_HEALTH_CHECK_FAILED,\n status: HTTP_STATUS.SERVICE_UNAVAILABLE,\n category: ERROR_CATEGORY.ExternalService,\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n userMessage: 'errors.storage.adapter.health_check_failed',\n },\n [ERROR_CODES.STORAGE_ADAPTER_UNAVAILABLE]: {\n code: ERROR_CODES.STORAGE_ADAPTER_UNAVAILABLE,\n status: HTTP_STATUS.SERVICE_UNAVAILABLE,\n category: ERROR_CATEGORY.ExternalService,\n severity: ERROR_SEVERITY.High,\n retryable: true,\n userMessage: 'errors.storage.adapter.unavailable',\n },\n [ERROR_CODES.STORAGE_ADAPTER_TIMEOUT]: {\n code: ERROR_CODES.STORAGE_ADAPTER_TIMEOUT,\n status: HTTP_STATUS.GATEWAY_TIMEOUT,\n category: ERROR_CATEGORY.Timeout,\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n userMessage: 'errors.storage.adapter.timeout',\n },\n [ERROR_CODES.STORAGE_ADAPTER_RATE_LIMIT]: {\n code: ERROR_CODES.STORAGE_ADAPTER_RATE_LIMIT,\n status: HTTP_STATUS.TOO_MANY_REQUESTS,\n category: ERROR_CATEGORY.RateLimit,\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n userMessage: 'errors.storage.adapter.rate_limit',\n },\n [ERROR_CODES.STORAGE_ADAPTER_QUOTA_EXCEEDED]: {\n code: ERROR_CODES.STORAGE_ADAPTER_QUOTA_EXCEEDED,\n status: HTTP_STATUS.INSUFFICIENT_STORAGE,\n category: ERROR_CATEGORY.Quota,\n severity: ERROR_SEVERITY.High,\n retryable: false,\n userMessage: 'errors.storage.adapter.quota_exceeded',\n },\n [ERROR_CODES.STORAGE_ADAPTER_UNSUPPORTED_OPERATION]: {\n code: ERROR_CODES.STORAGE_ADAPTER_UNSUPPORTED_OPERATION,\n status: HTTP_STATUS.NOT_IMPLEMENTED,\n category: ERROR_CATEGORY.ExternalService,\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n userMessage: 'errors.storage.adapter.unsupported_operation',\n },\n [ERROR_CODES.STORAGE_ADAPTER_FEATURE_NOT_SUPPORTED]: {\n code: ERROR_CODES.STORAGE_ADAPTER_FEATURE_NOT_SUPPORTED,\n status: HTTP_STATUS.NOT_IMPLEMENTED,\n category: ERROR_CATEGORY.ExternalService,\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n userMessage: 'errors.storage.adapter.feature_not_supported',\n },\n [ERROR_CODES.STORAGE_NO_HEALTHY_ADAPTERS]: {\n code: ERROR_CODES.STORAGE_NO_HEALTHY_ADAPTERS,\n status: HTTP_STATUS.SERVICE_UNAVAILABLE,\n category: ERROR_CATEGORY.ExternalService,\n severity: ERROR_SEVERITY.Critical,\n retryable: true,\n userMessage: 'errors.storage.no_healthy_adapters',\n },\n [ERROR_CODES.STORAGE_ALL_ADAPTERS_FAILED]: {\n code: ERROR_CODES.STORAGE_ALL_ADAPTERS_FAILED,\n status: HTTP_STATUS.SERVICE_UNAVAILABLE,\n category: ERROR_CATEGORY.ExternalService,\n severity: ERROR_SEVERITY.Critical,\n retryable: true,\n userMessage: 'errors.storage.all_adapters_failed',\n },\n\n // File Validation\n [ERROR_CODES.STORAGE_FILE_TOO_LARGE]: {\n code: ERROR_CODES.STORAGE_FILE_TOO_LARGE,\n status: HTTP_STATUS.PAYLOAD_TOO_LARGE,\n category: ERROR_CATEGORY.Validation,\n severity: ERROR_SEVERITY.Low,\n retryable: false,\n userMessage: 'errors.storage.file.too_large',\n },\n [ERROR_CODES.STORAGE_FILE_TOO_SMALL]: {\n code: ERROR_CODES.STORAGE_FILE_TOO_SMALL,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n severity: ERROR_SEVERITY.Low,\n retryable: false,\n userMessage: 'errors.storage.file.too_small',\n },\n [ERROR_CODES.STORAGE_FILE_SIZE_INVALID]: {\n code: ERROR_CODES.STORAGE_FILE_SIZE_INVALID,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n severity: ERROR_SEVERITY.Low,\n retryable: false,\n userMessage: 'errors.storage.file.size.invalid',\n },\n [ERROR_CODES.STORAGE_FILE_TYPE_NOT_ALLOWED]: {\n code: ERROR_CODES.STORAGE_FILE_TYPE_NOT_ALLOWED,\n status: HTTP_STATUS.UNSUPPORTED_MEDIA_TYPE,\n category: ERROR_CATEGORY.Security,\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n userMessage: 'errors.storage.file.type.not_allowed',\n },\n [ERROR_CODES.STORAGE_INVALID_MIME_TYPE]: {\n code: ERROR_CODES.STORAGE_INVALID_MIME_TYPE,\n status: HTTP_STATUS.UNSUPPORTED_MEDIA_TYPE,\n category: ERROR_CATEGORY.Validation,\n severity: ERROR_SEVERITY.Low,\n retryable: false,\n userMessage: 'errors.storage.mime_type.invalid',\n },\n [ERROR_CODES.STORAGE_INVALID_FILE_EXTENSION]: {\n code: ERROR_CODES.STORAGE_INVALID_FILE_EXTENSION,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n severity: ERROR_SEVERITY.Low,\n retryable: false,\n userMessage: 'errors.storage.extension.invalid',\n },\n [ERROR_CODES.STORAGE_FILE_EXTENSION_INVALID]: {\n code: ERROR_CODES.STORAGE_FILE_EXTENSION_INVALID,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n severity: ERROR_SEVERITY.Low,\n retryable: false,\n userMessage: 'errors.storage.file.extension.invalid',\n },\n [ERROR_CODES.STORAGE_FILE_EXTENSION_MISMATCH]: {\n code: ERROR_CODES.STORAGE_FILE_EXTENSION_MISMATCH,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n userMessage: 'errors.storage.file.extension.mismatch',\n },\n [ERROR_CODES.STORAGE_EXECUTABLE_NOT_ALLOWED]: {\n code: ERROR_CODES.STORAGE_EXECUTABLE_NOT_ALLOWED,\n status: HTTP_STATUS.FORBIDDEN,\n category: ERROR_CATEGORY.Security,\n severity: ERROR_SEVERITY.High,\n retryable: false,\n userMessage: 'errors.storage.executable_not_allowed',\n },\n [ERROR_CODES.STORAGE_VALIDATION_FAILED]: {\n code: ERROR_CODES.STORAGE_VALIDATION_FAILED,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n severity: ERROR_SEVERITY.Low,\n retryable: false,\n userMessage: 'errors.storage.validation.failed',\n },\n [ERROR_CODES.STORAGE_INVALID_FILE_CONTENT]: {\n code: ERROR_CODES.STORAGE_INVALID_FILE_CONTENT,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n userMessage: 'errors.storage.validation.invalid_file_content',\n },\n\n // Security\n [ERROR_CODES.STORAGE_SECURITY_VIRUS_DETECTED]: {\n code: ERROR_CODES.STORAGE_SECURITY_VIRUS_DETECTED,\n status: HTTP_STATUS.FORBIDDEN,\n category: ERROR_CATEGORY.Security,\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n userMessage: 'errors.storage.security.virus_detected',\n },\n [ERROR_CODES.STORAGE_SECURITY_SCAN_FAILED]: {\n code: ERROR_CODES.STORAGE_SECURITY_SCAN_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Security,\n severity: ERROR_SEVERITY.High,\n retryable: true,\n userMessage: 'errors.storage.security.scan_failed',\n },\n [ERROR_CODES.STORAGE_SECURITY_ACCESS_DENIED]: {\n code: ERROR_CODES.STORAGE_SECURITY_ACCESS_DENIED,\n status: HTTP_STATUS.FORBIDDEN,\n category: ERROR_CATEGORY.Authorization,\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n userMessage: 'errors.storage.security.access_denied',\n },\n [ERROR_CODES.STORAGE_SECURITY_ENCRYPTION_FAILED]: {\n code: ERROR_CODES.STORAGE_SECURITY_ENCRYPTION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Security,\n severity: ERROR_SEVERITY.High,\n retryable: true,\n userMessage: 'errors.storage.security.encryption_failed',\n },\n\n // File Operations\n [ERROR_CODES.STORAGE_FILE_UPLOAD_FAILED]: {\n code: ERROR_CODES.STORAGE_FILE_UPLOAD_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.FileOperation,\n severity: ERROR_SEVERITY.High,\n retryable: true,\n userMessage: 'errors.storage.file.upload_failed',\n },\n [ERROR_CODES.STORAGE_FILE_DOWNLOAD_FAILED]: {\n code: ERROR_CODES.STORAGE_FILE_DOWNLOAD_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.FileOperation,\n severity: ERROR_SEVERITY.High,\n retryable: true,\n userMessage: 'errors.storage.file.download_failed',\n },\n [ERROR_CODES.STORAGE_FILE_DELETE_FAILED]: {\n code: ERROR_CODES.STORAGE_FILE_DELETE_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.FileOperation,\n severity: ERROR_SEVERITY.High,\n retryable: true,\n userMessage: 'errors.storage.file.delete_failed',\n },\n [ERROR_CODES.STORAGE_FILE_UPDATE_FAILED]: {\n code: ERROR_CODES.STORAGE_FILE_UPDATE_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.FileOperation,\n severity: ERROR_SEVERITY.High,\n retryable: true,\n userMessage: 'errors.storage.file.update_failed',\n },\n [ERROR_CODES.STORAGE_FILE_NOT_FOUND]: {\n code: ERROR_CODES.STORAGE_FILE_NOT_FOUND,\n status: HTTP_STATUS.NOT_FOUND,\n category: ERROR_CATEGORY.NotFound,\n severity: ERROR_SEVERITY.Low,\n retryable: false,\n userMessage: 'errors.storage.file.not_found',\n },\n [ERROR_CODES.STORAGE_FILE_ALREADY_EXISTS]: {\n code: ERROR_CODES.STORAGE_FILE_ALREADY_EXISTS,\n status: HTTP_STATUS.CONFLICT,\n category: ERROR_CATEGORY.Conflict,\n severity: ERROR_SEVERITY.Low,\n retryable: false,\n userMessage: 'errors.storage.file.already_exists',\n },\n [ERROR_CODES.STORAGE_FILE_MOVE_FAILED]: {\n code: ERROR_CODES.STORAGE_FILE_MOVE_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.FileOperation,\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n userMessage: 'errors.storage.file.move_failed',\n },\n [ERROR_CODES.STORAGE_FILE_COPY_FAILED]: {\n code: ERROR_CODES.STORAGE_FILE_COPY_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.FileOperation,\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n userMessage: 'errors.storage.file.copy_failed',\n },\n [ERROR_CODES.STORAGE_FILE_READ_FAILED]: {\n code: ERROR_CODES.STORAGE_FILE_READ_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.FileOperation,\n severity: ERROR_SEVERITY.High,\n retryable: true,\n userMessage: 'errors.storage.file.read_failed',\n },\n [ERROR_CODES.STORAGE_FILE_WRITE_FAILED]: {\n code: ERROR_CODES.STORAGE_FILE_WRITE_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.FileOperation,\n severity: ERROR_SEVERITY.High,\n retryable: true,\n userMessage: 'errors.storage.file.write_failed',\n },\n [ERROR_CODES.STORAGE_FILE_CORRUPTED]: {\n code: ERROR_CODES.STORAGE_FILE_CORRUPTED,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n userMessage: 'errors.storage.file.corrupted',\n },\n [ERROR_CODES.STORAGE_INVALID_OPERATION]: {\n code: ERROR_CODES.STORAGE_INVALID_OPERATION,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n severity: ERROR_SEVERITY.Low,\n retryable: false,\n userMessage: 'errors.storage.invalid_operation',\n },\n\n // Metadata\n [ERROR_CODES.STORAGE_METADATA_EXTRACTION_FAILED]: {\n code: ERROR_CODES.STORAGE_METADATA_EXTRACTION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Processing,\n severity: ERROR_SEVERITY.Low,\n retryable: true,\n userMessage: 'errors.storage.metadata.extraction_failed',\n },\n [ERROR_CODES.STORAGE_METADATA_INVALID]: {\n code: ERROR_CODES.STORAGE_METADATA_INVALID,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n severity: ERROR_SEVERITY.Low,\n retryable: false,\n userMessage: 'errors.storage.metadata.invalid',\n },\n [ERROR_CODES.STORAGE_METADATA_UPDATE_FAILED]: {\n code: ERROR_CODES.STORAGE_METADATA_UPDATE_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Processing,\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n userMessage: 'errors.storage.metadata.update_failed',\n },\n\n // Media Processing\n [ERROR_CODES.STORAGE_MEDIA_PROCESSING_FAILED]: {\n code: ERROR_CODES.STORAGE_MEDIA_PROCESSING_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Processing,\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n userMessage: 'errors.storage.media.processing_failed',\n },\n [ERROR_CODES.STORAGE_MEDIA_RESIZE_FAILED]: {\n code: ERROR_CODES.STORAGE_MEDIA_RESIZE_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Processing,\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n userMessage: 'errors.storage.media.resize_failed',\n },\n [ERROR_CODES.STORAGE_MEDIA_FORMAT_UNSUPPORTED]: {\n code: ERROR_CODES.STORAGE_MEDIA_FORMAT_UNSUPPORTED,\n status: HTTP_STATUS.UNSUPPORTED_MEDIA_TYPE,\n category: ERROR_CATEGORY.Validation,\n severity: ERROR_SEVERITY.Low,\n retryable: false,\n userMessage: 'errors.storage.media.format_unsupported',\n },\n [ERROR_CODES.STORAGE_MEDIA_TRANSCODE_FAILED]: {\n code: ERROR_CODES.STORAGE_MEDIA_TRANSCODE_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Processing,\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n userMessage: 'errors.storage.media.transcode_failed',\n },\n [ERROR_CODES.STORAGE_MEDIA_THUMBNAIL_FAILED]: {\n code: ERROR_CODES.STORAGE_MEDIA_THUMBNAIL_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Processing,\n severity: ERROR_SEVERITY.Low,\n retryable: true,\n userMessage: 'errors.storage.media.thumbnail_failed',\n },\n [ERROR_CODES.STORAGE_MEDIA_INVALID_DIMENSIONS]: {\n code: ERROR_CODES.STORAGE_MEDIA_INVALID_DIMENSIONS,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n severity: ERROR_SEVERITY.Low,\n retryable: false,\n userMessage: 'errors.storage.media.invalid_dimensions',\n },\n\n // Template & PDF\n [ERROR_CODES.STORAGE_TEMPLATE_NOT_FOUND]: {\n code: ERROR_CODES.STORAGE_TEMPLATE_NOT_FOUND,\n status: HTTP_STATUS.NOT_FOUND,\n category: ERROR_CATEGORY.NotFound,\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n userMessage: 'errors.storage.template.not_found',\n },\n [ERROR_CODES.STORAGE_TEMPLATE_RENDER_FAILED]: {\n code: ERROR_CODES.STORAGE_TEMPLATE_RENDER_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Template,\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n userMessage: 'errors.storage.template.render_failed',\n },\n [ERROR_CODES.STORAGE_PDF_GENERATION_FAILED]: {\n code: ERROR_CODES.STORAGE_PDF_GENERATION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Processing,\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n userMessage: 'errors.storage.pdf.generation_failed',\n },\n [ERROR_CODES.STORAGE_PDF_RENDERING_TIMEOUT]: {\n code: ERROR_CODES.STORAGE_PDF_RENDERING_TIMEOUT,\n status: HTTP_STATUS.GATEWAY_TIMEOUT,\n category: ERROR_CATEGORY.Timeout,\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n userMessage: 'errors.storage.pdf.rendering_timeout',\n },\n\n // Queue\n [ERROR_CODES.STORAGE_QUEUE_FULL]: {\n code: ERROR_CODES.STORAGE_QUEUE_FULL,\n status: HTTP_STATUS.SERVICE_UNAVAILABLE,\n category: ERROR_CATEGORY.Queue,\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n userMessage: 'errors.storage.queue.full',\n },\n [ERROR_CODES.STORAGE_QUEUE_PROCESSING_FAILED]: {\n code: ERROR_CODES.STORAGE_QUEUE_PROCESSING_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Queue,\n severity: ERROR_SEVERITY.High,\n retryable: true,\n userMessage: 'errors.storage.queue.processing_failed',\n },\n [ERROR_CODES.STORAGE_QUEUE_ITEM_NOT_FOUND]: {\n code: ERROR_CODES.STORAGE_QUEUE_ITEM_NOT_FOUND,\n status: HTTP_STATUS.NOT_FOUND,\n category: ERROR_CATEGORY.NotFound,\n severity: ERROR_SEVERITY.Low,\n retryable: false,\n userMessage: 'errors.storage.queue.item_not_found',\n },\n\n // Compliance\n [ERROR_CODES.STORAGE_COMPLIANCE_VIOLATION]: {\n code: ERROR_CODES.STORAGE_COMPLIANCE_VIOLATION,\n status: HTTP_STATUS.FORBIDDEN,\n category: ERROR_CATEGORY.Compliance,\n severity: ERROR_SEVERITY.High,\n retryable: false,\n userMessage: 'errors.storage.compliance.violation',\n },\n [ERROR_CODES.STORAGE_COMPLIANCE_RETENTION_EXPIRED]: {\n code: ERROR_CODES.STORAGE_COMPLIANCE_RETENTION_EXPIRED,\n status: HTTP_STATUS.GONE,\n category: ERROR_CATEGORY.Compliance,\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n userMessage: 'errors.storage.compliance.retention_expired',\n },\n [ERROR_CODES.STORAGE_COMPLIANCE_IMMUTABLE_FILE]: {\n code: ERROR_CODES.STORAGE_COMPLIANCE_IMMUTABLE_FILE,\n status: HTTP_STATUS.FORBIDDEN,\n category: ERROR_CATEGORY.Compliance,\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n userMessage: 'errors.storage.compliance.immutable_file',\n },\n [ERROR_CODES.STORAGE_COMPLIANCE_POLICY_NOT_FOUND]: {\n code: ERROR_CODES.STORAGE_COMPLIANCE_POLICY_NOT_FOUND,\n status: HTTP_STATUS.NOT_FOUND,\n category: ERROR_CATEGORY.Configuration,\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n userMessage: 'errors.storage.compliance.policy_not_found',\n },\n [ERROR_CODES.STORAGE_COMPLIANCE_RETENTION_VIOLATION]: {\n code: ERROR_CODES.STORAGE_COMPLIANCE_RETENTION_VIOLATION,\n status: HTTP_STATUS.FORBIDDEN,\n category: ERROR_CATEGORY.Compliance,\n severity: ERROR_SEVERITY.High,\n retryable: false,\n userMessage: 'errors.storage.compliance.retention_violation',\n },\n [ERROR_CODES.STORAGE_COMPLIANCE_SOFT_DELETE_REQUIRED]: {\n code: ERROR_CODES.STORAGE_COMPLIANCE_SOFT_DELETE_REQUIRED,\n status: HTTP_STATUS.FORBIDDEN,\n category: ERROR_CATEGORY.Compliance,\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n userMessage: 'errors.storage.compliance.soft_delete_required',\n },\n [ERROR_CODES.STORAGE_COMPLIANCE_GRACE_PERIOD_ACTIVE]: {\n code: ERROR_CODES.STORAGE_COMPLIANCE_GRACE_PERIOD_ACTIVE,\n status: HTTP_STATUS.CONFLICT,\n category: ERROR_CATEGORY.Compliance,\n severity: ERROR_SEVERITY.Low,\n retryable: false,\n userMessage: 'errors.storage.compliance.grace_period_active',\n },\n [ERROR_CODES.STORAGE_COMPLIANCE_DEFERRED_DELETION]: {\n code: ERROR_CODES.STORAGE_COMPLIANCE_DEFERRED_DELETION,\n status: HTTP_STATUS.ACCEPTED,\n category: ERROR_CATEGORY.Compliance,\n severity: ERROR_SEVERITY.Low,\n retryable: false,\n userMessage: 'errors.storage.compliance.deferred_deletion',\n },\n [ERROR_CODES.STORAGE_COMPLIANCE_PATTERN_PROTECTED]: {\n code: ERROR_CODES.STORAGE_COMPLIANCE_PATTERN_PROTECTED,\n status: HTTP_STATUS.FORBIDDEN,\n category: ERROR_CATEGORY.Compliance,\n severity: ERROR_SEVERITY.High,\n retryable: false,\n userMessage: 'errors.storage.compliance.pattern_protected',\n },\n\n // Share Links\n [ERROR_CODES.STORAGE_SHARE_LINK_NOT_FOUND]: {\n code: ERROR_CODES.STORAGE_SHARE_LINK_NOT_FOUND,\n status: HTTP_STATUS.NOT_FOUND,\n category: ERROR_CATEGORY.NotFound,\n severity: ERROR_SEVERITY.Low,\n retryable: false,\n userMessage: 'errors.storage.share_link.not_found',\n },\n [ERROR_CODES.STORAGE_SHARE_LINK_EXPIRED]: {\n code: ERROR_CODES.STORAGE_SHARE_LINK_EXPIRED,\n status: HTTP_STATUS.GONE,\n category: ERROR_CATEGORY.Validation,\n severity: ERROR_SEVERITY.Low,\n retryable: false,\n userMessage: 'errors.storage.share_link.expired',\n },\n [ERROR_CODES.STORAGE_SHARE_LINK_MAX_DOWNLOADS]: {\n code: ERROR_CODES.STORAGE_SHARE_LINK_MAX_DOWNLOADS,\n status: HTTP_STATUS.FORBIDDEN,\n category: ERROR_CATEGORY.Limits,\n severity: ERROR_SEVERITY.Low,\n retryable: false,\n userMessage: 'errors.storage.share_link.max_downloads',\n },\n [ERROR_CODES.STORAGE_SHARE_LINK_INVALID_PASSWORD]: {\n code: ERROR_CODES.STORAGE_SHARE_LINK_INVALID_PASSWORD,\n status: HTTP_STATUS.UNAUTHORIZED,\n category: ERROR_CATEGORY.Authentication,\n severity: ERROR_SEVERITY.Low,\n retryable: false,\n userMessage: 'errors.storage.share_link.invalid_password',\n },\n\n // Plugin\n [ERROR_CODES.STORAGE_PLUGIN_NOT_FOUND]: {\n code: ERROR_CODES.STORAGE_PLUGIN_NOT_FOUND,\n status: HTTP_STATUS.NOT_FOUND,\n category: ERROR_CATEGORY.Plugin,\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n userMessage: 'errors.storage.plugin.not_found',\n },\n [ERROR_CODES.STORAGE_PLUGIN_INITIALIZATION_FAILED]: {\n code: ERROR_CODES.STORAGE_PLUGIN_INITIALIZATION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Plugin,\n severity: ERROR_SEVERITY.High,\n retryable: false,\n userMessage: 'errors.storage.plugin.initialization_failed',\n },\n [ERROR_CODES.STORAGE_PLUGIN_EXECUTION_FAILED]: {\n code: ERROR_CODES.STORAGE_PLUGIN_EXECUTION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Plugin,\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n userMessage: 'errors.storage.plugin.execution_failed',\n },\n\n // VirusTotal Provider (Plugin)\n [ERROR_CODES.STORAGE_VIRUSTOTAL_BAD_REQUEST]: {\n code: ERROR_CODES.STORAGE_VIRUSTOTAL_BAD_REQUEST,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n severity: ERROR_SEVERITY.Low,\n retryable: false,\n userMessage: 'errors.storage.virustotal.bad_request',\n },\n [ERROR_CODES.STORAGE_VIRUSTOTAL_AUTHENTICATION_REQUIRED]: {\n code: ERROR_CODES.STORAGE_VIRUSTOTAL_AUTHENTICATION_REQUIRED,\n status: HTTP_STATUS.UNAUTHORIZED,\n category: ERROR_CATEGORY.Authentication,\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n userMessage: 'errors.storage.virustotal.authentication_required',\n },\n [ERROR_CODES.STORAGE_VIRUSTOTAL_WRONG_CREDENTIALS]: {\n code: ERROR_CODES.STORAGE_VIRUSTOTAL_WRONG_CREDENTIALS,\n status: HTTP_STATUS.UNAUTHORIZED,\n category: ERROR_CATEGORY.Authentication,\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n userMessage: 'errors.storage.virustotal.wrong_credentials',\n },\n [ERROR_CODES.STORAGE_VIRUSTOTAL_FILE_TOO_LARGE]: {\n code: ERROR_CODES.STORAGE_VIRUSTOTAL_FILE_TOO_LARGE,\n status: HTTP_STATUS.PAYLOAD_TOO_LARGE,\n category: ERROR_CATEGORY.Validation,\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n userMessage: 'errors.storage.virustotal.file_too_large',\n },\n [ERROR_CODES.STORAGE_VIRUSTOTAL_QUOTA_EXCEEDED]: {\n code: ERROR_CODES.STORAGE_VIRUSTOTAL_QUOTA_EXCEEDED,\n status: HTTP_STATUS.TOO_MANY_REQUESTS,\n category: ERROR_CATEGORY.Quota,\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n userMessage: 'errors.storage.virustotal.quota_exceeded',\n },\n [ERROR_CODES.STORAGE_VIRUSTOTAL_ANALYSIS_NOT_FOUND]: {\n code: ERROR_CODES.STORAGE_VIRUSTOTAL_ANALYSIS_NOT_FOUND,\n status: HTTP_STATUS.NOT_FOUND,\n category: ERROR_CATEGORY.NotFound,\n severity: ERROR_SEVERITY.Low,\n retryable: false,\n userMessage: 'errors.storage.virustotal.analysis_not_found',\n },\n [ERROR_CODES.STORAGE_VIRUSTOTAL_SCAN_TIMEOUT]: {\n code: ERROR_CODES.STORAGE_VIRUSTOTAL_SCAN_TIMEOUT,\n status: HTTP_STATUS.GATEWAY_TIMEOUT,\n category: ERROR_CATEGORY.Timeout,\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n userMessage: 'errors.storage.virustotal.scan_timeout',\n },\n [ERROR_CODES.STORAGE_VIRUSTOTAL_SCAN_FAILED]: {\n code: ERROR_CODES.STORAGE_VIRUSTOTAL_SCAN_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Plugin,\n severity: ERROR_SEVERITY.High,\n retryable: true,\n userMessage: 'errors.storage.virustotal.scan_failed',\n },\n\n // CDN Providers (Plugins)\n // Cloudflare\n [ERROR_CODES.CLOUDFLARE_AUTHENTICATION_FAILED]: {\n code: ERROR_CODES.CLOUDFLARE_AUTHENTICATION_FAILED,\n status: HTTP_STATUS.UNAUTHORIZED,\n category: ERROR_CATEGORY.Authentication,\n severity: ERROR_SEVERITY.High,\n retryable: false,\n userMessage: 'errors.cloudflare.authentication.failed',\n },\n [ERROR_CODES.CLOUDFLARE_ZONE_NOT_FOUND]: {\n code: ERROR_CODES.CLOUDFLARE_ZONE_NOT_FOUND,\n status: HTTP_STATUS.NOT_FOUND,\n category: ERROR_CATEGORY.NotFound,\n severity: ERROR_SEVERITY.High,\n retryable: false,\n userMessage: 'errors.cloudflare.zone.not.found',\n },\n [ERROR_CODES.CLOUDFLARE_PURGE_FAILED]: {\n code: ERROR_CODES.CLOUDFLARE_PURGE_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Plugin,\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n userMessage: 'errors.cloudflare.purge.failed',\n },\n [ERROR_CODES.CLOUDFLARE_RATE_LIMIT_EXCEEDED]: {\n code: ERROR_CODES.CLOUDFLARE_RATE_LIMIT_EXCEEDED,\n status: HTTP_STATUS.TOO_MANY_REQUESTS,\n category: ERROR_CATEGORY.RateLimit,\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n userMessage: 'errors.cloudflare.rate.limit.exceeded',\n },\n [ERROR_CODES.CLOUDFLARE_INVALID_URL]: {\n code: ERROR_CODES.CLOUDFLARE_INVALID_URL,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n severity: ERROR_SEVERITY.Low,\n retryable: false,\n userMessage: 'errors.cloudflare.invalid.url',\n },\n [ERROR_CODES.CLOUDFLARE_API_ERROR]: {\n code: ERROR_CODES.CLOUDFLARE_API_ERROR,\n status: HTTP_STATUS.BAD_GATEWAY,\n category: ERROR_CATEGORY.ExternalService,\n severity: ERROR_SEVERITY.High,\n retryable: true,\n userMessage: 'errors.cloudflare.api.error',\n },\n\n // CloudFront\n [ERROR_CODES.CLOUDFRONT_AUTHENTICATION_FAILED]: {\n code: ERROR_CODES.CLOUDFRONT_AUTHENTICATION_FAILED,\n status: HTTP_STATUS.UNAUTHORIZED,\n category: ERROR_CATEGORY.Authentication,\n severity: ERROR_SEVERITY.High,\n retryable: false,\n userMessage: 'errors.cloudfront.authentication.failed',\n },\n [ERROR_CODES.CLOUDFRONT_DISTRIBUTION_NOT_FOUND]: {\n code: ERROR_CODES.CLOUDFRONT_DISTRIBUTION_NOT_FOUND,\n status: HTTP_STATUS.NOT_FOUND,\n category: ERROR_CATEGORY.NotFound,\n severity: ERROR_SEVERITY.High,\n retryable: false,\n userMessage: 'errors.cloudfront.distribution.not.found',\n },\n [ERROR_CODES.CLOUDFRONT_INVALIDATION_FAILED]: {\n code: ERROR_CODES.CLOUDFRONT_INVALIDATION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Plugin,\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n userMessage: 'errors.cloudfront.invalidation.failed',\n },\n [ERROR_CODES.CLOUDFRONT_QUOTA_EXCEEDED]: {\n code: ERROR_CODES.CLOUDFRONT_QUOTA_EXCEEDED,\n status: HTTP_STATUS.TOO_MANY_REQUESTS,\n category: ERROR_CATEGORY.Quota,\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n userMessage: 'errors.cloudfront.quota.exceeded',\n },\n [ERROR_CODES.CLOUDFRONT_INVALID_PATH]: {\n code: ERROR_CODES.CLOUDFRONT_INVALID_PATH,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n severity: ERROR_SEVERITY.Low,\n retryable: false,\n userMessage: 'errors.cloudfront.invalid.path',\n },\n [ERROR_CODES.CLOUDFRONT_API_ERROR]: {\n code: ERROR_CODES.CLOUDFRONT_API_ERROR,\n status: HTTP_STATUS.BAD_GATEWAY,\n category: ERROR_CATEGORY.ExternalService,\n severity: ERROR_SEVERITY.High,\n retryable: true,\n userMessage: 'errors.cloudfront.api.error',\n },\n\n // Fastly\n [ERROR_CODES.FASTLY_AUTHENTICATION_FAILED]: {\n code: ERROR_CODES.FASTLY_AUTHENTICATION_FAILED,\n status: HTTP_STATUS.UNAUTHORIZED,\n category: ERROR_CATEGORY.Authentication,\n severity: ERROR_SEVERITY.High,\n retryable: false,\n userMessage: 'errors.fastly.authentication.failed',\n },\n [ERROR_CODES.FASTLY_SERVICE_NOT_FOUND]: {\n code: ERROR_CODES.FASTLY_SERVICE_NOT_FOUND,\n status: HTTP_STATUS.NOT_FOUND,\n category: ERROR_CATEGORY.NotFound,\n severity: ERROR_SEVERITY.High,\n retryable: false,\n userMessage: 'errors.fastly.service.not.found',\n },\n [ERROR_CODES.FASTLY_PURGE_FAILED]: {\n code: ERROR_CODES.FASTLY_PURGE_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Plugin,\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n userMessage: 'errors.fastly.purge.failed',\n },\n [ERROR_CODES.FASTLY_RATE_LIMIT_EXCEEDED]: {\n code: ERROR_CODES.FASTLY_RATE_LIMIT_EXCEEDED,\n status: HTTP_STATUS.TOO_MANY_REQUESTS,\n category: ERROR_CATEGORY.RateLimit,\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n userMessage: 'errors.fastly.rate.limit.exceeded',\n },\n [ERROR_CODES.FASTLY_INVALID_URL]: {\n code: ERROR_CODES.FASTLY_INVALID_URL,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n severity: ERROR_SEVERITY.Low,\n retryable: false,\n userMessage: 'errors.fastly.invalid.url',\n },\n [ERROR_CODES.FASTLY_API_ERROR]: {\n code: ERROR_CODES.FASTLY_API_ERROR,\n status: HTTP_STATUS.BAD_GATEWAY,\n category: ERROR_CATEGORY.ExternalService,\n severity: ERROR_SEVERITY.High,\n retryable: true,\n userMessage: 'errors.fastly.api.error',\n },\n\n // Generic CDN\n [ERROR_CODES.CDN_INVALIDATION_FAILED]: {\n code: ERROR_CODES.CDN_INVALIDATION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Plugin,\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n userMessage: 'errors.cdn.invalidation.failed',\n },\n [ERROR_CODES.CDN_CONFIGURATION_INVALID]: {\n code: ERROR_CODES.CDN_CONFIGURATION_INVALID,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Configuration,\n severity: ERROR_SEVERITY.High,\n retryable: false,\n userMessage: 'errors.cdn.configuration.invalid',\n },\n [ERROR_CODES.CDN_PROVIDER_NOT_FOUND]: {\n code: ERROR_CODES.CDN_PROVIDER_NOT_FOUND,\n status: HTTP_STATUS.NOT_FOUND,\n category: ERROR_CATEGORY.NotFound,\n severity: ERROR_SEVERITY.High,\n retryable: false,\n userMessage: 'errors.cdn.provider.not.found',\n },\n\n // Webhook Errors\n [ERROR_CODES.STORAGE_WEBHOOK_SIGNATURE_INVALID]: {\n code: ERROR_CODES.STORAGE_WEBHOOK_SIGNATURE_INVALID,\n status: HTTP_STATUS.UNAUTHORIZED,\n category: ERROR_CATEGORY.Security,\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n userMessage: 'errors.storage.webhook.signature_invalid',\n },\n [ERROR_CODES.STORAGE_WEBHOOK_PAYLOAD_INVALID]: {\n code: ERROR_CODES.STORAGE_WEBHOOK_PAYLOAD_INVALID,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n userMessage: 'errors.storage.webhook.payload_invalid',\n },\n [ERROR_CODES.STORAGE_WEBHOOK_PROCESSING_FAILED]: {\n code: ERROR_CODES.STORAGE_WEBHOOK_PROCESSING_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Processing,\n severity: ERROR_SEVERITY.High,\n retryable: true,\n userMessage: 'errors.storage.webhook.processing_failed',\n },\n [ERROR_CODES.STORAGE_WEBHOOK_TIMEOUT]: {\n code: ERROR_CODES.STORAGE_WEBHOOK_TIMEOUT,\n status: HTTP_STATUS.GATEWAY_TIMEOUT,\n category: ERROR_CATEGORY.Timeout,\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n userMessage: 'errors.storage.webhook.timeout',\n },\n [ERROR_CODES.STORAGE_WEBHOOK_ADAPTER_NOT_FOUND]: {\n code: ERROR_CODES.STORAGE_WEBHOOK_ADAPTER_NOT_FOUND,\n status: HTTP_STATUS.NOT_FOUND,\n category: ERROR_CATEGORY.NotFound,\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n userMessage: 'errors.storage.webhook.adapter_not_found',\n },\n [ERROR_CODES.STORAGE_WEBHOOK_DUPLICATE_DETECTED]: {\n code: ERROR_CODES.STORAGE_WEBHOOK_DUPLICATE_DETECTED,\n status: HTTP_STATUS.OK,\n category: ERROR_CATEGORY.Processing,\n severity: ERROR_SEVERITY.Low,\n retryable: false,\n userMessage: 'errors.storage.webhook.duplicate_detected',\n },\n [ERROR_CODES.STORAGE_WEBHOOK_IDEMPOTENCY_ERROR]: {\n code: ERROR_CODES.STORAGE_WEBHOOK_IDEMPOTENCY_ERROR,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Processing,\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n userMessage: 'errors.storage.webhook.idempotency_error',\n },\n [ERROR_CODES.STORAGE_WEBHOOK_RATE_LIMIT_EXCEEDED]: {\n code: ERROR_CODES.STORAGE_WEBHOOK_RATE_LIMIT_EXCEEDED,\n status: HTTP_STATUS.TOO_MANY_REQUESTS,\n category: ERROR_CATEGORY.RateLimit,\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n userMessage: 'errors.storage.webhook.rate_limit_exceeded',\n },\n\n // Presigned URLs\n [ERROR_CODES.STORAGE_PRESIGNED_URL_GENERATION_FAILED]: {\n code: ERROR_CODES.STORAGE_PRESIGNED_URL_GENERATION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.ExternalService,\n severity: ERROR_SEVERITY.High,\n retryable: true,\n userMessage: 'errors.storage.presigned_url.generation_failed',\n },\n [ERROR_CODES.STORAGE_PRESIGNED_URL_EXPIRED]: {\n code: ERROR_CODES.STORAGE_PRESIGNED_URL_EXPIRED,\n status: HTTP_STATUS.GONE,\n category: ERROR_CATEGORY.Validation,\n severity: ERROR_SEVERITY.Low,\n retryable: false,\n userMessage: 'errors.storage.presigned_url.expired',\n },\n [ERROR_CODES.STORAGE_PRESIGNED_URL_INVALID]: {\n code: ERROR_CODES.STORAGE_PRESIGNED_URL_INVALID,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n severity: ERROR_SEVERITY.Low,\n retryable: false,\n userMessage: 'errors.storage.presigned_url.invalid',\n },\n\n // Chunked Upload\n [ERROR_CODES.STORAGE_CHUNKED_UPLOAD_INIT_FAILED]: {\n code: ERROR_CODES.STORAGE_CHUNKED_UPLOAD_INIT_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.FileOperation,\n severity: ERROR_SEVERITY.High,\n retryable: true,\n userMessage: 'errors.storage.chunked_upload.init_failed',\n },\n [ERROR_CODES.STORAGE_CHUNKED_UPLOAD_PART_FAILED]: {\n code: ERROR_CODES.STORAGE_CHUNKED_UPLOAD_PART_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.FileOperation,\n severity: ERROR_SEVERITY.High,\n retryable: true,\n userMessage: 'errors.storage.chunked_upload.part_failed',\n },\n [ERROR_CODES.STORAGE_CHUNKED_UPLOAD_COMPLETE_FAILED]: {\n code: ERROR_CODES.STORAGE_CHUNKED_UPLOAD_COMPLETE_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.FileOperation,\n severity: ERROR_SEVERITY.High,\n retryable: true,\n userMessage: 'errors.storage.chunked_upload.complete_failed',\n },\n [ERROR_CODES.STORAGE_CHUNKED_UPLOAD_ABORT_FAILED]: {\n code: ERROR_CODES.STORAGE_CHUNKED_UPLOAD_ABORT_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.FileOperation,\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n userMessage: 'errors.storage.chunked_upload.abort_failed',\n },\n [ERROR_CODES.STORAGE_CHUNKED_UPLOAD_NOT_FOUND]: {\n code: ERROR_CODES.STORAGE_CHUNKED_UPLOAD_NOT_FOUND,\n status: HTTP_STATUS.NOT_FOUND,\n category: ERROR_CATEGORY.NotFound,\n severity: ERROR_SEVERITY.Low,\n retryable: false,\n userMessage: 'errors.storage.chunked_upload.not_found',\n },\n\n // CORS\n [ERROR_CODES.STORAGE_CORS_CONFIGURATION_INVALID]: {\n code: ERROR_CODES.STORAGE_CORS_CONFIGURATION_INVALID,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Configuration,\n severity: ERROR_SEVERITY.High,\n retryable: false,\n userMessage: 'errors.storage.cors.configuration_invalid',\n },\n [ERROR_CODES.STORAGE_CORS_ORIGIN_NOT_ALLOWED]: {\n code: ERROR_CODES.STORAGE_CORS_ORIGIN_NOT_ALLOWED,\n status: HTTP_STATUS.FORBIDDEN,\n category: ERROR_CATEGORY.Authorization,\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n userMessage: 'errors.storage.cors.origin_not_allowed',\n },\n\n // TTL\n [ERROR_CODES.STORAGE_TTL_EXPIRED]: {\n code: ERROR_CODES.STORAGE_TTL_EXPIRED,\n status: HTTP_STATUS.GONE,\n category: ERROR_CATEGORY.Validation,\n severity: ERROR_SEVERITY.Low,\n retryable: false,\n userMessage: 'errors.storage.ttl.expired',\n },\n [ERROR_CODES.STORAGE_TTL_CLEANUP_FAILED]: {\n code: ERROR_CODES.STORAGE_TTL_CLEANUP_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Processing,\n severity: ERROR_SEVERITY.Low,\n retryable: true,\n userMessage: 'errors.storage.ttl.cleanup_failed',\n },\n\n // Audit\n [ERROR_CODES.STORAGE_AUDIT_LOG_FAILED]: {\n code: ERROR_CODES.STORAGE_AUDIT_LOG_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.System,\n severity: ERROR_SEVERITY.Low,\n retryable: false,\n userMessage: 'errors.storage.audit.log_failed',\n },\n\n // Timeout & Network\n [ERROR_CODES.STORAGE_TIMEOUT]: {\n code: ERROR_CODES.STORAGE_TIMEOUT,\n status: HTTP_STATUS.GATEWAY_TIMEOUT,\n category: ERROR_CATEGORY.Timeout,\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n userMessage: 'errors.storage.timeout',\n },\n [ERROR_CODES.STORAGE_NETWORK_ERROR]: {\n code: ERROR_CODES.STORAGE_NETWORK_ERROR,\n status: HTTP_STATUS.SERVICE_UNAVAILABLE,\n category: ERROR_CATEGORY.Network,\n severity: ERROR_SEVERITY.High,\n retryable: true,\n userMessage: 'errors.storage.network_error',\n },\n [ERROR_CODES.STORAGE_CONNECTION_LOST]: {\n code: ERROR_CODES.STORAGE_CONNECTION_LOST,\n status: HTTP_STATUS.SERVICE_UNAVAILABLE,\n category: ERROR_CATEGORY.Network,\n severity: ERROR_SEVERITY.High,\n retryable: true,\n userMessage: 'errors.storage.connection_lost',\n },\n\n // Permission & Quota\n [ERROR_CODES.STORAGE_PERMISSION_DENIED]: {\n code: ERROR_CODES.STORAGE_PERMISSION_DENIED,\n status: HTTP_STATUS.FORBIDDEN,\n category: ERROR_CATEGORY.Authorization,\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n userMessage: 'errors.storage.permission_denied',\n },\n [ERROR_CODES.STORAGE_QUOTA_EXCEEDED]: {\n code: ERROR_CODES.STORAGE_QUOTA_EXCEEDED,\n status: HTTP_STATUS.INSUFFICIENT_STORAGE,\n category: ERROR_CATEGORY.Quota,\n severity: ERROR_SEVERITY.High,\n retryable: false,\n userMessage: 'errors.storage.quota_exceeded',\n },\n [ERROR_CODES.STORAGE_INSUFFICIENT_SPACE]: {\n code: ERROR_CODES.STORAGE_INSUFFICIENT_SPACE,\n status: HTTP_STATUS.INSUFFICIENT_STORAGE,\n category: ERROR_CATEGORY.Quota,\n severity: ERROR_SEVERITY.High,\n retryable: false,\n userMessage: 'errors.storage.insufficient_space',\n },\n [ERROR_CODES.STORAGE_FEATURE_NOT_IMPLEMENTED]: {\n code: ERROR_CODES.STORAGE_FEATURE_NOT_IMPLEMENTED,\n status: HTTP_STATUS.NOT_IMPLEMENTED,\n category: ERROR_CATEGORY.Server,\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n userMessage: 'errors.storage.feature.not_implemented',\n },\n\n // ===== Core Package Error Definitions =====\n // Feature Flags\n [ERROR_CODES.CORE_FEATURE_FLAG_NOT_FOUND]: {\n code: ERROR_CODES.CORE_FEATURE_FLAG_NOT_FOUND,\n status: HTTP_STATUS.NOT_FOUND,\n category: ERROR_CATEGORY.NotFound,\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n userMessage: 'errors.core.feature_flag.not_found',\n },\n [ERROR_CODES.CORE_FEATURE_FLAG_INVALID_CONFIG]: {\n code: ERROR_CODES.CORE_FEATURE_FLAG_INVALID_CONFIG,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Configuration,\n severity: ERROR_SEVERITY.High,\n retryable: false,\n userMessage: 'errors.core.feature_flag.invalid_config',\n },\n [ERROR_CODES.CORE_FEATURE_FLAG_EVALUATION_FAILED]: {\n code: ERROR_CODES.CORE_FEATURE_FLAG_EVALUATION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Processing,\n severity: ERROR_SEVERITY.High,\n retryable: true,\n userMessage: 'errors.core.feature_flag.evaluation_failed',\n },\n [ERROR_CODES.CORE_FEATURE_FLAG_PROVIDER_ERROR]: {\n code: ERROR_CODES.CORE_FEATURE_FLAG_PROVIDER_ERROR,\n status: HTTP_STATUS.BAD_GATEWAY,\n category: ERROR_CATEGORY.Provider,\n severity: ERROR_SEVERITY.High,\n retryable: true,\n userMessage: 'errors.core.feature_flag.provider_error',\n },\n [ERROR_CODES.CORE_FEATURE_FLAG_CACHE_ERROR]: {\n code: ERROR_CODES.CORE_FEATURE_FLAG_CACHE_ERROR,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Cache,\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n userMessage: 'errors.core.feature_flag.cache_error',\n },\n [ERROR_CODES.CORE_FEATURE_FLAG_CONTEXT_INVALID]: {\n code: ERROR_CODES.CORE_FEATURE_FLAG_CONTEXT_INVALID,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n userMessage: 'errors.core.feature_flag.context_invalid',\n },\n [ERROR_CODES.CORE_FEATURE_FLAG_RULE_INVALID]: {\n code: ERROR_CODES.CORE_FEATURE_FLAG_RULE_INVALID,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n userMessage: 'errors.core.feature_flag.rule_invalid',\n },\n [ERROR_CODES.CORE_FEATURE_FLAG_TOGGLE_FAILED]: {\n code: ERROR_CODES.CORE_FEATURE_FLAG_TOGGLE_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Processing,\n severity: ERROR_SEVERITY.High,\n retryable: true,\n userMessage: 'errors.core.feature_flag.toggle_failed',\n },\n\n // Cache\n [ERROR_CODES.CORE_CACHE_INITIALIZATION_FAILED]: {\n code: ERROR_CODES.CORE_CACHE_INITIALIZATION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Configuration,\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n userMessage: 'errors.core.cache.initialization_failed',\n },\n [ERROR_CODES.CORE_CACHE_STRATEGY_NOT_FOUND]: {\n code: ERROR_CODES.CORE_CACHE_STRATEGY_NOT_FOUND,\n status: HTTP_STATUS.NOT_FOUND,\n category: ERROR_CATEGORY.Configuration,\n severity: ERROR_SEVERITY.High,\n retryable: false,\n userMessage: 'errors.core.cache.strategy_not_found',\n },\n [ERROR_CODES.CORE_CACHE_OPERATION_FAILED]: {\n code: ERROR_CODES.CORE_CACHE_OPERATION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Cache,\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n userMessage: 'errors.core.cache.operation_failed',\n },\n [ERROR_CODES.CORE_CACHE_INVALIDATION_FAILED]: {\n code: ERROR_CODES.CORE_CACHE_INVALIDATION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Cache,\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n userMessage: 'errors.core.cache.invalidation_failed',\n },\n [ERROR_CODES.CORE_CACHE_SERIALIZATION_FAILED]: {\n code: ERROR_CODES.CORE_CACHE_SERIALIZATION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Processing,\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n userMessage: 'errors.core.cache.serialization_failed',\n },\n\n // API Client\n [ERROR_CODES.CORE_API_CLIENT_INITIALIZATION_FAILED]: {\n code: ERROR_CODES.CORE_API_CLIENT_INITIALIZATION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Configuration,\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n userMessage: 'errors.core.api_client.initialization_failed',\n },\n [ERROR_CODES.CORE_API_CLIENT_REQUEST_FAILED]: {\n code: ERROR_CODES.CORE_API_CLIENT_REQUEST_FAILED,\n status: HTTP_STATUS.BAD_GATEWAY,\n category: ERROR_CATEGORY.Network,\n severity: ERROR_SEVERITY.High,\n retryable: true,\n userMessage: 'errors.core.api_client.request_failed',\n },\n [ERROR_CODES.CORE_API_CLIENT_TIMEOUT]: {\n code: ERROR_CODES.CORE_API_CLIENT_TIMEOUT,\n status: HTTP_STATUS.GATEWAY_TIMEOUT,\n category: ERROR_CATEGORY.Timeout,\n severity: ERROR_SEVERITY.High,\n retryable: true,\n userMessage: 'errors.core.api_client.timeout',\n },\n [ERROR_CODES.CORE_API_CLIENT_INVALID_RESPONSE]: {\n code: ERROR_CODES.CORE_API_CLIENT_INVALID_RESPONSE,\n status: HTTP_STATUS.BAD_GATEWAY,\n category: ERROR_CATEGORY.Server,\n severity: ERROR_SEVERITY.High,\n retryable: false,\n userMessage: 'errors.core.api_client.invalid_response',\n },\n [ERROR_CODES.CORE_API_CLIENT_AUTHENTICATION_FAILED]: {\n code: ERROR_CODES.CORE_API_CLIENT_AUTHENTICATION_FAILED,\n status: HTTP_STATUS.UNAUTHORIZED,\n category: ERROR_CATEGORY.Authentication,\n severity: ERROR_SEVERITY.High,\n retryable: false,\n userMessage: 'errors.core.api_client.authentication_failed',\n },\n\n // Database Service\n [ERROR_CODES.CORE_DATABASE_SERVICE_INITIALIZATION_FAILED]: {\n code: ERROR_CODES.CORE_DATABASE_SERVICE_INITIALIZATION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Configuration,\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n userMessage: 'errors.core.database_service.initialization_failed',\n },\n [ERROR_CODES.CORE_DATABASE_SERVICE_CONNECTION_FAILED]: {\n code: ERROR_CODES.CORE_DATABASE_SERVICE_CONNECTION_FAILED,\n status: HTTP_STATUS.SERVICE_UNAVAILABLE,\n category: ERROR_CATEGORY.Network,\n severity: ERROR_SEVERITY.High,\n retryable: true,\n userMessage: 'errors.core.database_service.connection_failed',\n },\n [ERROR_CODES.CORE_DATABASE_SERVICE_QUERY_FAILED]: {\n code: ERROR_CODES.CORE_DATABASE_SERVICE_QUERY_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Server,\n severity: ERROR_SEVERITY.High,\n retryable: false,\n userMessage: 'errors.core.database_service.query_failed',\n },\n [ERROR_CODES.CORE_DATABASE_SERVICE_TRANSACTION_FAILED]: {\n code: ERROR_CODES.CORE_DATABASE_SERVICE_TRANSACTION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Server,\n severity: ERROR_SEVERITY.High,\n retryable: true,\n userMessage: 'errors.core.database_service.transaction_failed',\n },\n\n // Validation\n [ERROR_CODES.CORE_VALIDATION_FAILED]: {\n code: ERROR_CODES.CORE_VALIDATION_FAILED,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n userMessage: 'errors.core.validation.failed',\n },\n [ERROR_CODES.CORE_VALIDATION_SCHEMA_INVALID]: {\n code: ERROR_CODES.CORE_VALIDATION_SCHEMA_INVALID,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n severity: ERROR_SEVERITY.High,\n retryable: false,\n userMessage: 'errors.core.validation.schema_invalid',\n },\n [ERROR_CODES.CORE_VALIDATION_REQUIRED_FIELD_MISSING]: {\n code: ERROR_CODES.CORE_VALIDATION_REQUIRED_FIELD_MISSING,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n userMessage: 'errors.core.validation.required_field_missing',\n },\n\n // Hash Utilities\n [ERROR_CODES.CORE_HASH_GENERATION_FAILED]: {\n code: ERROR_CODES.CORE_HASH_GENERATION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Processing,\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n userMessage: 'errors.core.hash.generation_failed',\n },\n [ERROR_CODES.CORE_HASH_VERIFICATION_FAILED]: {\n code: ERROR_CODES.CORE_HASH_VERIFICATION_FAILED,\n status: HTTP_STATUS.UNAUTHORIZED,\n category: ERROR_CATEGORY.Authentication,\n severity: ERROR_SEVERITY.High,\n retryable: false,\n userMessage: 'errors.core.hash.verification_failed',\n },\n\n // Engine\n [ERROR_CODES.CORE_ENGINE_INITIALIZATION_FAILED]: {\n code: ERROR_CODES.CORE_ENGINE_INITIALIZATION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Configuration,\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n userMessage: 'errors.core.engine.initialization_failed',\n },\n [ERROR_CODES.CORE_ENGINE_EXECUTION_FAILED]: {\n code: ERROR_CODES.CORE_ENGINE_EXECUTION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Processing,\n severity: ERROR_SEVERITY.High,\n retryable: true,\n userMessage: 'errors.core.engine.execution_failed',\n },\n [ERROR_CODES.CORE_ENGINE_CONFIGURATION_INVALID]: {\n code: ERROR_CODES.CORE_ENGINE_CONFIGURATION_INVALID,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Configuration,\n severity: ERROR_SEVERITY.High,\n retryable: false,\n userMessage: 'errors.core.engine.configuration_invalid',\n },\n\n // Provider\n [ERROR_CODES.CORE_PROVIDER_NOT_FOUND]: {\n code: ERROR_CODES.CORE_PROVIDER_NOT_FOUND,\n status: HTTP_STATUS.NOT_FOUND,\n category: ERROR_CATEGORY.NotFound,\n severity: ERROR_SEVERITY.High,\n retryable: false,\n userMessage: 'errors.core.provider.not_found',\n },\n [ERROR_CODES.CORE_PROVIDER_INITIALIZATION_FAILED]: {\n code: ERROR_CODES.CORE_PROVIDER_INITIALIZATION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Configuration,\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n userMessage: 'errors.core.provider.initialization_failed',\n },\n [ERROR_CODES.CORE_PROVIDER_OPERATION_FAILED]: {\n code: ERROR_CODES.CORE_PROVIDER_OPERATION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Provider,\n severity: ERROR_SEVERITY.High,\n retryable: true,\n userMessage: 'errors.core.provider.operation_failed',\n },\n\n // Context\n [ERROR_CODES.CORE_CONTEXT_INVALID]: {\n code: ERROR_CODES.CORE_CONTEXT_INVALID,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n userMessage: 'errors.core.context.invalid',\n },\n [ERROR_CODES.CORE_CONTEXT_MISSING_REQUIRED_DATA]: {\n code: ERROR_CODES.CORE_CONTEXT_MISSING_REQUIRED_DATA,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n userMessage: 'errors.core.context.missing_required_data',\n },\n\n // General Core\n [ERROR_CODES.CORE_INITIALIZATION_FAILED]: {\n code: ERROR_CODES.CORE_INITIALIZATION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Configuration,\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n userMessage: 'errors.core.initialization_failed',\n },\n [ERROR_CODES.CORE_CONFIGURATION_INVALID]: {\n code: ERROR_CODES.CORE_CONFIGURATION_INVALID,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Configuration,\n severity: ERROR_SEVERITY.High,\n retryable: false,\n userMessage: 'errors.core.configuration_invalid',\n },\n [ERROR_CODES.CORE_OPERATION_FAILED]: {\n code: ERROR_CODES.CORE_OPERATION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Processing,\n severity: ERROR_SEVERITY.High,\n retryable: true,\n userMessage: 'errors.core.operation_failed',\n },\n [ERROR_CODES.CORE_UNKNOWN_ERROR]: {\n code: ERROR_CODES.CORE_UNKNOWN_ERROR,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Unknown,\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n userMessage: 'errors.core.unknown_error',\n },\n\n // ===== Errors Package Errors =====\n [ERROR_CODES.ERROR_SYSTEM_NOT_INITIALIZED]: {\n code: ERROR_CODES.ERROR_SYSTEM_NOT_INITIALIZED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Configuration,\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n userMessage: 'errors.system.not_initialized',\n },\n [ERROR_CODES.EVENT_FACTORY_NOT_REGISTERED]: {\n code: ERROR_CODES.EVENT_FACTORY_NOT_REGISTERED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Configuration,\n severity: ERROR_SEVERITY.High,\n retryable: false,\n userMessage: 'errors.event.factory.not_registered',\n },\n [ERROR_CODES.DATABASE_ERROR]: {\n code: ERROR_CODES.DATABASE_ERROR,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Server,\n severity: ERROR_SEVERITY.High,\n retryable: false,\n userMessage: 'errors.database',\n },\n\n // Global Error Handler\n [ERROR_CODES.UNCAUGHT_EXCEPTION]: {\n code: ERROR_CODES.UNCAUGHT_EXCEPTION,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.System,\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n userMessage: 'errors.uncaught.exception',\n },\n [ERROR_CODES.UNHANDLED_REJECTION]: {\n code: ERROR_CODES.UNHANDLED_REJECTION,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.System,\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n userMessage: 'errors.unhandled.rejection',\n },\n [ERROR_CODES.RUNTIME_ERROR]: {\n code: ERROR_CODES.RUNTIME_ERROR,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.System,\n severity: ERROR_SEVERITY.High,\n retryable: false,\n userMessage: 'errors.runtime',\n },\n\n // ===== Database Error Definitions =====\n // Connection & Configuration\n [ERROR_CODES.DB_ACCESS_DENIED]: {\n code: ERROR_CODES.DB_ACCESS_DENIED,\n status: HTTP_STATUS.FORBIDDEN,\n category: ERROR_CATEGORY.Authentication,\n userMessage: 'db.connection.access_denied',\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n },\n [ERROR_CODES.DB_CONFIG_REQUIRED]: {\n code: ERROR_CODES.DB_CONFIG_REQUIRED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Configuration,\n userMessage: 'db.connection.config_required',\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n },\n [ERROR_CODES.DB_CONNECT_FAILED]: {\n code: ERROR_CODES.DB_CONNECT_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Server,\n userMessage: 'db.connection.connect_failed',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n [ERROR_CODES.DB_DISCONNECT_FAILED]: {\n code: ERROR_CODES.DB_DISCONNECT_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Server,\n userMessage: 'db.connection.disconnect_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.DB_INIT_FAILED]: {\n code: ERROR_CODES.DB_INIT_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Server,\n userMessage: 'db.connection.init_failed',\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n },\n\n // Query & Execution\n [ERROR_CODES.DB_QUERY_FAILED]: {\n code: ERROR_CODES.DB_QUERY_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Server,\n userMessage: 'db.query.failed',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n [ERROR_CODES.DB_BUILD_WHERE_FAILED]: {\n code: ERROR_CODES.DB_BUILD_WHERE_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Server,\n userMessage: 'db.query.build_where_failed',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n [ERROR_CODES.DB_INVALID_SQL]: {\n code: ERROR_CODES.DB_INVALID_SQL,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'db.query.invalid_sql',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.DB_TRANSACTION_FAILED]: {\n code: ERROR_CODES.DB_TRANSACTION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Server,\n userMessage: 'db.query.transaction_failed',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n [ERROR_CODES.DB_UNSUPPORTED_OPERATOR]: {\n code: ERROR_CODES.DB_UNSUPPORTED_OPERATOR,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'db.query.unsupported_operator',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n // CRUD Operations\n [ERROR_CODES.DB_CREATE_FAILED]: {\n code: ERROR_CODES.DB_CREATE_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Server,\n userMessage: 'db.crud.create_failed',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n [ERROR_CODES.DB_CREATION_FAILED]: {\n code: ERROR_CODES.DB_CREATION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Server,\n userMessage: 'db.crud.create_failed',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n [ERROR_CODES.DB_FETCH_FAILED]: {\n code: ERROR_CODES.DB_FETCH_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Server,\n userMessage: 'db.crud.fetch_failed',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n [ERROR_CODES.DB_FIND_FAILED]: {\n code: ERROR_CODES.DB_FIND_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Server,\n userMessage: 'db.crud.find_failed',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n [ERROR_CODES.DB_FIND_MANY_FAILED]: {\n code: ERROR_CODES.DB_FIND_MANY_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Server,\n userMessage: 'db.crud.find_many_failed',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n [ERROR_CODES.DB_FIND_BY_ID_FAILED]: {\n code: ERROR_CODES.DB_FIND_BY_ID_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Server,\n userMessage: 'db.crud.find_by_id_failed',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n [ERROR_CODES.DB_UPDATE_FAILED]: {\n code: ERROR_CODES.DB_UPDATE_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Server,\n userMessage: 'db.crud.update_failed',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n [ERROR_CODES.DB_UPDATE_NO_CHANGES]: {\n code: ERROR_CODES.DB_UPDATE_NO_CHANGES,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'db.crud.update_no_changes',\n severity: ERROR_SEVERITY.Low,\n retryable: false,\n },\n [ERROR_CODES.DB_DELETE_FAILED]: {\n code: ERROR_CODES.DB_DELETE_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Server,\n userMessage: 'db.crud.delete_failed',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n [ERROR_CODES.DB_INSERT_FAILED]: {\n code: ERROR_CODES.DB_INSERT_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Server,\n userMessage: 'db.crud.insert_failed',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n [ERROR_CODES.DB_RECORD_NOT_FOUND]: {\n code: ERROR_CODES.DB_RECORD_NOT_FOUND,\n status: HTTP_STATUS.NOT_FOUND,\n category: ERROR_CATEGORY.NotFound,\n userMessage: 'db.crud.record_not_found',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.DB_EXISTS_FAILED]: {\n code: ERROR_CODES.DB_EXISTS_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Server,\n userMessage: 'db.crud.exists_failed',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n\n // Schema & Columns\n [ERROR_CODES.DB_COLUMN_NOT_EXISTS]: {\n code: ERROR_CODES.DB_COLUMN_NOT_EXISTS,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'db.schema.column_not_exists',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.DB_TABLE_NOT_REGISTERED]: {\n code: ERROR_CODES.DB_TABLE_NOT_REGISTERED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Server,\n userMessage: 'db.schema.table_not_registered',\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n },\n [ERROR_CODES.DB_TABLE_REGISTRATION_FAILED]: {\n code: ERROR_CODES.DB_TABLE_REGISTRATION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Server,\n userMessage: 'db.schema.table_registration_failed',\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n },\n [ERROR_CODES.DB_ID_COLUMN_NOT_REGISTERED]: {\n code: ERROR_CODES.DB_ID_COLUMN_NOT_REGISTERED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Server,\n userMessage: 'db.schema.id_column_not_registered',\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n },\n [ERROR_CODES.DB_INVALID_COLUMN]: {\n code: ERROR_CODES.DB_INVALID_COLUMN,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'db.schema.invalid_column',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.DB_INVALID_TABLE_NAME]: {\n code: ERROR_CODES.DB_INVALID_TABLE_NAME,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'db.schema.invalid_table_name',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.DB_GET_ID_COLUMN_FAILED]: {\n code: ERROR_CODES.DB_GET_ID_COLUMN_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Server,\n userMessage: 'db.schema.get_id_column_failed',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n [ERROR_CODES.DB_GET_TABLE_FAILED]: {\n code: ERROR_CODES.DB_GET_TABLE_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Server,\n userMessage: 'db.schema.get_table_failed',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n\n // Validation & Parameters\n [ERROR_CODES.DB_INVALID_PARAMETERS]: {\n code: ERROR_CODES.DB_INVALID_PARAMETERS,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'db.validation.invalid_parameters',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.DB_INVALID_PARAMS]: {\n code: ERROR_CODES.DB_INVALID_PARAMS,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'db.validation.invalid_parameters',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.DB_INVALID_FILTER]: {\n code: ERROR_CODES.DB_INVALID_FILTER,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'db.validation.invalid_filter',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.DB_INVALID_ID]: {\n code: ERROR_CODES.DB_INVALID_ID,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'db.validation.invalid_id',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.DB_INVALID_ENTITY]: {\n code: ERROR_CODES.DB_INVALID_ENTITY,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'db.validation.invalid_entity',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.DB_INVALID_UPDATE_PARAMS]: {\n code: ERROR_CODES.DB_INVALID_UPDATE_PARAMS,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'db.validation.invalid_update_params',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.DB_INVALID_FIELD_NAME]: {\n code: ERROR_CODES.DB_INVALID_FIELD_NAME,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'db.validation.invalid_field_name',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.DB_INVALID_RESULT]: {\n code: ERROR_CODES.DB_INVALID_RESULT,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Server,\n userMessage: 'db.validation.invalid_result',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n [ERROR_CODES.DB_NO_UPDATE_FIELDS]: {\n code: ERROR_CODES.DB_NO_UPDATE_FIELDS,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'db.validation.no_update_fields',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n // Count & Data\n [ERROR_CODES.DB_COUNT_FAILED]: {\n code: ERROR_CODES.DB_COUNT_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Server,\n userMessage: 'db.count.failed',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n [ERROR_CODES.DB_COUNT_NO_RESULTS]: {\n code: ERROR_CODES.DB_COUNT_NO_RESULTS,\n status: HTTP_STATUS.NOT_FOUND,\n category: ERROR_CATEGORY.NotFound,\n userMessage: 'db.count.no_results',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.DB_NO_DATA]: {\n code: ERROR_CODES.DB_NO_DATA,\n status: HTTP_STATUS.NOT_FOUND,\n category: ERROR_CATEGORY.NotFound,\n userMessage: 'db.count.no_results',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n // Multi-tenant Context\n [ERROR_CODES.DB_NO_TENANT_CONTEXT]: {\n code: ERROR_CODES.DB_NO_TENANT_CONTEXT,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Server,\n userMessage: 'db.tenant.no_context',\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n },\n [ERROR_CODES.DB_NO_TENANT_ID]: {\n code: ERROR_CODES.DB_NO_TENANT_ID,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Server,\n userMessage: 'db.tenant.no_tenant_id',\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n },\n [ERROR_CODES.DB_TENANT_VALIDATION_FAILED]: {\n code: ERROR_CODES.DB_TENANT_VALIDATION_FAILED,\n status: HTTP_STATUS.FORBIDDEN,\n category: ERROR_CATEGORY.Authorization,\n userMessage: 'db.tenant.validation_failed',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n\n // Backup & Restore\n [ERROR_CODES.DB_BACKUP_CLEANUP_FAILED]: {\n code: ERROR_CODES.DB_BACKUP_CLEANUP_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Server,\n userMessage: 'db.backup.cleanup_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.DB_BACKUP_FILE_NOT_FOUND]: {\n code: ERROR_CODES.DB_BACKUP_FILE_NOT_FOUND,\n status: HTTP_STATUS.NOT_FOUND,\n category: ERROR_CATEGORY.NotFound,\n userMessage: 'db.backup.file_not_found',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.DB_LIST_BACKUPS_FAILED]: {\n code: ERROR_CODES.DB_LIST_BACKUPS_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Server,\n userMessage: 'db.backup.list_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.DB_INVALID_BACKUP_INFO]: {\n code: ERROR_CODES.DB_INVALID_BACKUP_INFO,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'db.backup.invalid_info',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.DB_RESTORE_FAILED]: {\n code: ERROR_CODES.DB_RESTORE_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Server,\n userMessage: 'db.backup.restore_failed',\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n },\n\n // Cache Operations\n [ERROR_CODES.DB_CACHE_DELETE_FAILED]: {\n code: ERROR_CODES.DB_CACHE_DELETE_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Cache,\n userMessage: 'db.cache.delete_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n },\n [ERROR_CODES.DB_CACHE_HEALTH_CHECK_FAILED]: {\n code: ERROR_CODES.DB_CACHE_HEALTH_CHECK_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Cache,\n userMessage: 'db.cache.health_check_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n },\n [ERROR_CODES.DB_CACHE_INVALIDATE_FAILED]: {\n code: ERROR_CODES.DB_CACHE_INVALIDATE_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Cache,\n userMessage: 'db.cache.invalidate_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n },\n [ERROR_CODES.DB_CACHE_SET_FAILED]: {\n code: ERROR_CODES.DB_CACHE_SET_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Cache,\n userMessage: 'db.cache.set_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n },\n [ERROR_CODES.DB_CACHE_GET_FAILED]: {\n code: ERROR_CODES.DB_CACHE_GET_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Cache,\n userMessage: 'db.cache.get_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n },\n\n // File & Storage\n [ERROR_CODES.DB_INVALID_FILEPATH]: {\n code: ERROR_CODES.DB_INVALID_FILEPATH,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'db.file.invalid_filepath',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.DB_S3_DELETE_FAILED]: {\n code: ERROR_CODES.DB_S3_DELETE_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Server,\n userMessage: 'db.file.s3_delete_failed',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n [ERROR_CODES.DB_S3_DOWNLOAD_FAILED]: {\n code: ERROR_CODES.DB_S3_DOWNLOAD_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Server,\n userMessage: 'db.file.s3_download_failed',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n [ERROR_CODES.DB_S3_NOT_CONFIGURED]: {\n code: ERROR_CODES.DB_S3_NOT_CONFIGURED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Configuration,\n userMessage: 'db.file.s3_not_configured',\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n },\n [ERROR_CODES.DB_S3_UPLOAD_FAILED]: {\n code: ERROR_CODES.DB_S3_UPLOAD_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Server,\n userMessage: 'db.file.s3_upload_failed',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n\n [ERROR_CODES.PAYMENT_TIMEOUT]: {\n code: ERROR_CODES.PAYMENT_TIMEOUT,\n status: HTTP_STATUS.REQUEST_TIMEOUT,\n category: ERROR_CATEGORY.Timeout,\n userMessage: 'errors.payment.timeout',\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n },\n\n [ERROR_CODES.PAYMENT_NETWORK_ERROR]: {\n code: ERROR_CODES.PAYMENT_NETWORK_ERROR,\n status: HTTP_STATUS.NETWORK_AUTHENTICATION_REQUIRED,\n category: ERROR_CATEGORY.Network,\n userMessage: 'errors.payment.network_error',\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n },\n\n // Misc\n [ERROR_CODES.DB_SCHEDULE_SETUP_FAILED]: {\n code: ERROR_CODES.DB_SCHEDULE_SETUP_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Server,\n userMessage: 'db.misc.schedule_setup_failed',\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n },\n [ERROR_CODES.DB_DECRYPTION_FAILED]: {\n code: ERROR_CODES.DB_DECRYPTION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Server,\n userMessage: 'db.misc.decryption_failed',\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n },\n [ERROR_CODES.DB_INVALID_SHELL_ARG]: {\n code: ERROR_CODES.DB_INVALID_SHELL_ARG,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'db.misc.invalid_shell_arg',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.DB_INVALID_BETWEEN_OPERATOR]: {\n code: ERROR_CODES.DB_INVALID_BETWEEN_OPERATOR,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'db.misc.invalid_between_operator',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.DB_INVALID_IN_OPERATOR]: {\n code: ERROR_CODES.DB_INVALID_IN_OPERATOR,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'db.misc.invalid_in_operator',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.DB_INVALID_COUNT]: {\n code: ERROR_CODES.DB_INVALID_COUNT,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'db.misc.invalid_count',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n // ===== Payments Package Error Definitions =====\n // ===== Refund Errors =====\n [ERROR_CODES.PAYMENT_REFUND_FAILED]: {\n code: ERROR_CODES.PAYMENT_REFUND_FAILED,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Refund,\n userMessage: 'errors.payment.refund.failed',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n [ERROR_CODES.PAYMENT_REFUND_NOT_FOUND]: {\n code: ERROR_CODES.PAYMENT_REFUND_NOT_FOUND,\n status: HTTP_STATUS.NOT_FOUND,\n category: ERROR_CATEGORY.Refund,\n userMessage: 'errors.payment.refund.not_found',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.PAYMENT_REFUND_ALREADY_PROCESSED]: {\n code: ERROR_CODES.PAYMENT_REFUND_ALREADY_PROCESSED,\n status: HTTP_STATUS.CONFLICT,\n category: ERROR_CATEGORY.Refund,\n userMessage: 'errors.payment.refund.already_processed',\n severity: ERROR_SEVERITY.Low,\n retryable: false,\n },\n [ERROR_CODES.PAYMENT_REFUND_AMOUNT_INVALID]: {\n code: ERROR_CODES.PAYMENT_REFUND_AMOUNT_INVALID,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'errors.payment.refund.amount_invalid',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.PAYMENT_REFUND_VALIDATION_FAILED]: {\n code: ERROR_CODES.PAYMENT_REFUND_VALIDATION_FAILED,\n status: HTTP_STATUS.UNPROCESSABLE_ENTITY,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'errors.payment.refund.validation_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.PAYMENT_REFUND_TIMEOUT]: {\n code: ERROR_CODES.PAYMENT_REFUND_TIMEOUT,\n status: HTTP_STATUS.REQUEST_TIMEOUT,\n category: ERROR_CATEGORY.Timeout,\n userMessage: 'errors.payment.refund.timeout',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n [ERROR_CODES.PAYMENT_REFUND_NOT_ALLOWED]: {\n code: ERROR_CODES.PAYMENT_REFUND_NOT_ALLOWED,\n status: HTTP_STATUS.FORBIDDEN,\n category: ERROR_CATEGORY.Refund,\n userMessage: 'errors.payment.refund.not_allowed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.PAYMENT_REFUND_AUTHORIZATION_FAILED]: {\n code: ERROR_CODES.PAYMENT_REFUND_AUTHORIZATION_FAILED,\n status: HTTP_STATUS.UNAUTHORIZED,\n category: ERROR_CATEGORY.Authorization,\n userMessage: 'errors.payment.refund.authorization_failed',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n\n [ERROR_CODES.PAYMENT_REFUND_PROCESSING_FAILED]: {\n code: ERROR_CODES.PAYMENT_REFUND_PROCESSING_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Refund,\n userMessage: 'errors.payment.refund.processing_failed',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n\n // ===== Provider Errors =====\n [ERROR_CODES.PAYMENT_PROVIDER_ERROR]: {\n code: ERROR_CODES.PAYMENT_PROVIDER_ERROR,\n status: HTTP_STATUS.BAD_GATEWAY,\n category: ERROR_CATEGORY.Provider,\n userMessage: 'errors.payment.provider.generic',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n [ERROR_CODES.PAYMENT_PROVIDER_UNAVAILABLE]: {\n code: ERROR_CODES.PAYMENT_PROVIDER_UNAVAILABLE,\n status: HTTP_STATUS.SERVICE_UNAVAILABLE,\n category: ERROR_CATEGORY.Provider,\n userMessage: 'errors.payment.provider.unavailable',\n severity: ERROR_SEVERITY.Critical,\n retryable: true,\n },\n [ERROR_CODES.PAYMENT_PROVIDER_CONFIGURATION_INVALID]: {\n code: ERROR_CODES.PAYMENT_PROVIDER_CONFIGURATION_INVALID,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Configuration,\n userMessage: 'errors.payment.provider.invalid_config',\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n },\n [ERROR_CODES.PAYMENT_PROVIDER_RESPONSE_INVALID]: {\n code: ERROR_CODES.PAYMENT_PROVIDER_RESPONSE_INVALID,\n status: HTTP_STATUS.BAD_GATEWAY,\n category: ERROR_CATEGORY.Provider,\n userMessage: 'errors.payment.provider.invalid_response',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n [ERROR_CODES.PAYMENT_PROVIDER_TIMEOUT]: {\n code: ERROR_CODES.PAYMENT_PROVIDER_TIMEOUT,\n status: HTTP_STATUS.GATEWAY_TIMEOUT,\n category: ERROR_CATEGORY.Timeout,\n userMessage: 'errors.payment.provider.timeout',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n [ERROR_CODES.PAYMENT_PROVIDER_AUTH_FAILED]: {\n code: ERROR_CODES.PAYMENT_PROVIDER_AUTH_FAILED,\n status: HTTP_STATUS.UNAUTHORIZED,\n category: ERROR_CATEGORY.Authentication,\n userMessage: 'errors.payment.provider.auth_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n // ===== Compliance Errors =====\n [ERROR_CODES.PAYMENT_COMPLIANCE_VIOLATION]: {\n code: ERROR_CODES.PAYMENT_COMPLIANCE_VIOLATION,\n status: HTTP_STATUS.FORBIDDEN,\n category: ERROR_CATEGORY.Compliance,\n userMessage: 'errors.payment.compliance.violation',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n [ERROR_CODES.PAYMENT_COMPLIANCE_CHECK_FAILED]: {\n code: ERROR_CODES.PAYMENT_COMPLIANCE_CHECK_FAILED,\n status: HTTP_STATUS.UNPROCESSABLE_ENTITY,\n category: ERROR_CATEGORY.Compliance,\n userMessage: 'errors.payment.compliance.check_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.PAYMENT_COMPLIANCE_LIMIT_EXCEEDED]: {\n code: ERROR_CODES.PAYMENT_COMPLIANCE_LIMIT_EXCEEDED,\n status: HTTP_STATUS.TOO_MANY_REQUESTS,\n category: ERROR_CATEGORY.Limits,\n userMessage: 'errors.payment.compliance.limit_exceeded',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.PAYMENT_COMPLIANCE_POLICY_MISSING]: {\n code: ERROR_CODES.PAYMENT_COMPLIANCE_POLICY_MISSING,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Configuration,\n userMessage: 'errors.payment.compliance.policy_missing',\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n },\n [ERROR_CODES.PAYMENT_COMPLIANCE_KYC_REQUIRED]: {\n code: ERROR_CODES.PAYMENT_COMPLIANCE_KYC_REQUIRED,\n status: HTTP_STATUS.FORBIDDEN,\n category: ERROR_CATEGORY.Compliance,\n userMessage: 'errors.payment.compliance.kyc_required',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.PAYMENT_COMPLIANCE_GEOGRAPHIC_RESTRICTION]: {\n code: ERROR_CODES.PAYMENT_COMPLIANCE_GEOGRAPHIC_RESTRICTION,\n status: HTTP_STATUS.FORBIDDEN,\n category: ERROR_CATEGORY.Compliance,\n userMessage: 'errors.payment.compliance.geographic_restriction',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n // ===== Security Errors =====\n [ERROR_CODES.PAYMENT_SECURITY_VIOLATION]: {\n code: ERROR_CODES.PAYMENT_SECURITY_VIOLATION,\n status: HTTP_STATUS.FORBIDDEN,\n category: ERROR_CATEGORY.Security,\n userMessage: 'errors.payment.security.violation',\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n },\n [ERROR_CODES.PAYMENT_SECURITY_SIGNATURE_INVALID]: {\n code: ERROR_CODES.PAYMENT_SECURITY_SIGNATURE_INVALID,\n status: HTTP_STATUS.UNAUTHORIZED,\n category: ERROR_CATEGORY.Security,\n userMessage: 'errors.payment.security.invalid_signature',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n [ERROR_CODES.PAYMENT_SECURITY_ENCRYPTION_FAILED]: {\n code: ERROR_CODES.PAYMENT_SECURITY_ENCRYPTION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Security,\n userMessage: 'errors.payment.security.encryption_failed',\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n },\n [ERROR_CODES.PAYMENT_SECURITY_FRAUD_DETECTED]: {\n code: ERROR_CODES.PAYMENT_SECURITY_FRAUD_DETECTED,\n status: HTTP_STATUS.FORBIDDEN,\n category: ERROR_CATEGORY.Fraud,\n userMessage: 'errors.payment.security.fraud_detected',\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n },\n [ERROR_CODES.PAYMENT_SECURITY_TOKEN_INVALID]: {\n code: ERROR_CODES.PAYMENT_SECURITY_TOKEN_INVALID,\n status: HTTP_STATUS.UNAUTHORIZED,\n category: ERROR_CATEGORY.Authentication,\n userMessage: 'errors.payment.security.token_invalid',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.PAYMENT_SECURITY_VELOCITY_LIMIT_EXCEEDED]: {\n code: ERROR_CODES.PAYMENT_SECURITY_VELOCITY_LIMIT_EXCEEDED,\n status: HTTP_STATUS.FORBIDDEN,\n category: ERROR_CATEGORY.Security,\n severity: ERROR_SEVERITY.Medium,\n userMessage: 'errors.payment.security.velocity_limit_exceed',\n retryable: false,\n },\n\n // ===== Validation Errors =====\n [ERROR_CODES.PAYMENT_VALIDATION_FAILED]: {\n code: ERROR_CODES.PAYMENT_VALIDATION_FAILED,\n status: HTTP_STATUS.UNPROCESSABLE_ENTITY,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'errors.payment.validation.failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.PAYMENT_VALIDATION_AMOUNT_INVALID]: {\n code: ERROR_CODES.PAYMENT_VALIDATION_AMOUNT_INVALID,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'errors.payment.validation.amount_invalid',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.PAYMENT_VALIDATION_CURRENCY_UNSUPPORTED]: {\n code: ERROR_CODES.PAYMENT_VALIDATION_CURRENCY_UNSUPPORTED,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'errors.payment.validation.currency_unsupported',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.PAYMENT_VALIDATION_METADATA_INVALID]: {\n code: ERROR_CODES.PAYMENT_VALIDATION_METADATA_INVALID,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'errors.payment.validation.metadata_invalid',\n severity: ERROR_SEVERITY.Low,\n retryable: false,\n },\n [ERROR_CODES.PAYMENT_VALIDATION_MISSING_REQUIRED_FIELD]: {\n code: ERROR_CODES.PAYMENT_VALIDATION_MISSING_REQUIRED_FIELD,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'errors.payment.validation.required_field_missing',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n // ===== Webhook Errors =====\n [ERROR_CODES.PAYMENT_WEBHOOK_SIGNATURE_INVALID]: {\n code: ERROR_CODES.PAYMENT_WEBHOOK_SIGNATURE_INVALID,\n status: HTTP_STATUS.UNAUTHORIZED,\n category: ERROR_CATEGORY.Webhook,\n userMessage: 'errors.payment.webhook.signature_invalid',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n [ERROR_CODES.PAYMENT_WEBHOOK_PROCESSING_FAILED]: {\n code: ERROR_CODES.PAYMENT_WEBHOOK_PROCESSING_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Webhook,\n userMessage: 'errors.payment.webhook.processing_failed',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n [ERROR_CODES.PAYMENT_WEBHOOK_VALIDATION_FAILED]: {\n code: ERROR_CODES.PAYMENT_WEBHOOK_VALIDATION_FAILED,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'errors.payment.webhook.validation_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.PAYMENT_WEBHOOK_EVENT_TYPE_UNSUPPORTED]: {\n code: ERROR_CODES.PAYMENT_WEBHOOK_EVENT_TYPE_UNSUPPORTED,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Webhook,\n userMessage: 'errors.payment.webhook.unsupported_event_type',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.PAYMENT_WEBHOOK_HANDLER_NOT_FOUND]: {\n code: ERROR_CODES.PAYMENT_WEBHOOK_HANDLER_NOT_FOUND,\n status: HTTP_STATUS.NOT_FOUND,\n category: ERROR_CATEGORY.Webhook,\n userMessage: 'errors.payment.webhook.handler_not_found',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n // ===== Payment Adapter & Core Errors =====\n [ERROR_CODES.PAYMENT_ADAPTER_INIT_FAILED]: {\n code: ERROR_CODES.PAYMENT_ADAPTER_INIT_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Provider,\n userMessage: 'errors.payment.adapter.init_failed',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n\n [ERROR_CODES.PAYMENT_ADAPTER_SHUTDOWN_ERROR]: {\n code: ERROR_CODES.PAYMENT_ADAPTER_SHUTDOWN_ERROR,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Provider,\n userMessage: 'errors.payment.adapter.shutdown_error',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.PAYMENT_ADAPTER_HMAC_COMPUTATION_FAILED]: {\n code: ERROR_CODES.PAYMENT_ADAPTER_HMAC_COMPUTATION_FAILED,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Security,\n userMessage: 'errors.payment.adapter.hmac_computation_failed',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n\n [ERROR_CODES.PAYMENT_ADAPTER_MISSING_PROVIDER]: {\n code: ERROR_CODES.PAYMENT_ADAPTER_MISSING_PROVIDER,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Configuration,\n userMessage: 'errors.payment.adapter.missing_provider',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.PAYMENT_ADAPTER_MISSING_ENVIRONMENT]: {\n code: ERROR_CODES.PAYMENT_ADAPTER_MISSING_ENVIRONMENT,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Configuration,\n userMessage: 'errors.payment.adapter.missing_environment',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.PAYMENT_ADAPTER_MISSING_CREDENTIALS]: {\n code: ERROR_CODES.PAYMENT_ADAPTER_MISSING_CREDENTIALS,\n status: HTTP_STATUS.UNAUTHORIZED,\n category: ERROR_CATEGORY.Authentication,\n userMessage: 'errors.payment.adapter.missing_credentials',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.PAYMENT_ADAPTER_MISSING_WEBHOOK_URL]: {\n code: ERROR_CODES.PAYMENT_ADAPTER_MISSING_WEBHOOK_URL,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Configuration,\n userMessage: 'errors.payment.adapter.missing_webhook_url',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.PAYMENT_ADAPTER_MISSING_UNREGISTER_ENDPOINT]: {\n code: ERROR_CODES.PAYMENT_ADAPTER_MISSING_UNREGISTER_ENDPOINT,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Configuration,\n userMessage: 'errors.payment.adapter.missing_unregister_endpoint',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.PAYMENT_ADAPTER_UNSUPPORTED_OPERATION]: {\n code: ERROR_CODES.PAYMENT_ADAPTER_UNSUPPORTED_OPERATION,\n status: HTTP_STATUS.NOT_IMPLEMENTED,\n category: ERROR_CATEGORY.Provider,\n userMessage: 'errors.payment.adapter.unsupported_operation',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.PAYMENT_ADAPTER_RESPONSE_MAPPING_FAILED]: {\n code: ERROR_CODES.PAYMENT_ADAPTER_RESPONSE_MAPPING_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Provider,\n userMessage: 'errors.payment.adapter.response_mapping_failed',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n\n // ===== Idempotency & State Management =====\n [ERROR_CODES.PAYMENT_IDEMPOTENCY_VIOLATION]: {\n code: ERROR_CODES.PAYMENT_IDEMPOTENCY_VIOLATION,\n status: HTTP_STATUS.CONFLICT,\n category: ERROR_CATEGORY.Processing,\n userMessage: 'errors.payment.idempotency.violation',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.PAYMENT_IDEMPOTENCY_KEY_MISSING]: {\n code: ERROR_CODES.PAYMENT_IDEMPOTENCY_KEY_MISSING,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'errors.payment.idempotency.key_missing',\n severity: ERROR_SEVERITY.Low,\n retryable: false,\n },\n\n [ERROR_CODES.PAYMENT_IDEMPOTENCY_STORE_ERROR]: {\n code: ERROR_CODES.PAYMENT_IDEMPOTENCY_STORE_ERROR,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Cache,\n userMessage: 'errors.payment.idempotency.store_error',\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n },\n\n // ===== Routing & Strategy =====\n [ERROR_CODES.PAYMENT_ROUTING_FAILED]: {\n code: ERROR_CODES.PAYMENT_ROUTING_FAILED,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Strategy,\n userMessage: 'errors.payment.routing.failed',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n\n [ERROR_CODES.PAYMENT_ROUTING_CONFIGURATION_INVALID]: {\n code: ERROR_CODES.PAYMENT_ROUTING_CONFIGURATION_INVALID,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Configuration,\n userMessage: 'errors.payment.routing.configuration_invalid',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.PAYMENT_ROUTING_PROVIDER_UNAVAILABLE]: {\n code: ERROR_CODES.PAYMENT_ROUTING_PROVIDER_UNAVAILABLE,\n status: HTTP_STATUS.SERVICE_UNAVAILABLE,\n category: ERROR_CATEGORY.Provider,\n userMessage: 'errors.payment.routing.provider_unavailable',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n // Connection & Network\n [ERROR_CODES.DB_CONNECTION_FAILED]: {\n code: ERROR_CODES.DB_CONNECTION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Network,\n userMessage: 'db.connection.failed',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n [ERROR_CODES.DB_CONNECTION_ERROR]: {\n code: ERROR_CODES.DB_CONNECTION_ERROR,\n status: HTTP_STATUS.SERVICE_UNAVAILABLE,\n category: ERROR_CATEGORY.Network,\n userMessage: 'db.connection.error',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n [ERROR_CODES.DB_MULTI_WRITE_FAILED]: {\n code: ERROR_CODES.DB_MULTI_WRITE_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Database,\n userMessage: 'db.multi_write.failed',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n [ERROR_CODES.DB_TIMEOUT]: {\n code: ERROR_CODES.DB_TIMEOUT,\n status: HTTP_STATUS.REQUEST_TIMEOUT,\n category: ERROR_CATEGORY.Timeout,\n userMessage: 'db.connection.timeout',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n\n // Constraints & Integrity\n [ERROR_CODES.DB_CONSTRAINT_VIOLATION]: {\n code: ERROR_CODES.DB_CONSTRAINT_VIOLATION,\n status: HTTP_STATUS.CONFLICT,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'db.constraint.violation',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.DB_DEADLOCK]: {\n code: ERROR_CODES.DB_DEADLOCK,\n status: HTTP_STATUS.CONFLICT,\n category: ERROR_CATEGORY.Server,\n userMessage: 'db.constraint.deadlock',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n [ERROR_CODES.DB_DUPLICATE_ENTRY]: {\n code: ERROR_CODES.DB_DUPLICATE_ENTRY,\n status: HTTP_STATUS.CONFLICT,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'db.constraint.duplicate_entry',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n // Entity Operations\n [ERROR_CODES.DB_ENTITY_NOT_FOUND]: {\n code: ERROR_CODES.DB_ENTITY_NOT_FOUND,\n status: HTTP_STATUS.NOT_FOUND,\n category: ERROR_CATEGORY.NotFound,\n userMessage: 'db.entity.not_found',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n // Migration & Schema\n [ERROR_CODES.DB_MIGRATION_FAILED]: {\n code: ERROR_CODES.DB_MIGRATION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Server,\n userMessage: 'db.migration.failed',\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n },\n\n // General\n [ERROR_CODES.DB_UNKNOWN_ERROR]: {\n code: ERROR_CODES.DB_UNKNOWN_ERROR,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Unknown,\n userMessage: 'db.unknown_error',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.PAYMENT_ROUTING_RETRY_EXCEEDED]: {\n code: ERROR_CODES.PAYMENT_ROUTING_RETRY_EXCEEDED,\n status: HTTP_STATUS.TOO_MANY_REQUESTS,\n category: ERROR_CATEGORY.Retry,\n userMessage: 'errors.payment.routing.retry_exceeded',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.PAYMENT_SYSTEM_NOT_INITIALIZED]: {\n code: ERROR_CODES.PAYMENT_SYSTEM_NOT_INITIALIZED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.System,\n userMessage: 'errors.payment.system.not_initialized',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n\n [ERROR_CODES.PAYMENT_CONTEXT_OPERATION_FAILED]: {\n code: ERROR_CODES.PAYMENT_CONTEXT_OPERATION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.System,\n userMessage: 'errors.payment.context.operation_failed',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n\n [ERROR_CODES.PAYMENT_INTERNAL_ERROR]: {\n code: ERROR_CODES.PAYMENT_INTERNAL_ERROR,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.System,\n userMessage: 'errors.payment.internal_error',\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n },\n\n [ERROR_CODES.PAYMENT_UNKNOWN_ERROR]: {\n code: ERROR_CODES.PAYMENT_UNKNOWN_ERROR,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Unknown,\n userMessage: 'errors.payment.unknown_error',\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n },\n\n // ===== Event Lifecycle Errors =====\n [ERROR_CODES.PAYMENT_EVENT_EMIT_FAILED]: {\n code: ERROR_CODES.PAYMENT_EVENT_EMIT_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Processing,\n userMessage: 'errors.payment.event.emit_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.PAYMENT_EVENT_INVALID_TYPE]: {\n code: ERROR_CODES.PAYMENT_EVENT_INVALID_TYPE,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'errors.payment.event.invalid_type',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.PAYMENT_EVENT_CREATION_FAILED]: {\n code: ERROR_CODES.PAYMENT_EVENT_CREATION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.System,\n userMessage: 'errors.payment.event.creation_failed',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n\n [ERROR_CODES.PAYMENT_EVENT_HANDLER_TIMEOUT]: {\n code: ERROR_CODES.PAYMENT_EVENT_HANDLER_TIMEOUT,\n status: HTTP_STATUS.GATEWAY_TIMEOUT,\n category: ERROR_CATEGORY.Timeout,\n userMessage: 'errors.payment.event.handler_timeout',\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n },\n\n [ERROR_CODES.PAYMENT_EVENT_HANDLER_INVALID_RESULT]: {\n code: ERROR_CODES.PAYMENT_EVENT_HANDLER_INVALID_RESULT,\n status: HTTP_STATUS.UNPROCESSABLE_ENTITY,\n category: ERROR_CATEGORY.Processing,\n userMessage: 'errors.payment.event.handler_invalid_result',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.PAYMENT_EVENT_LIFECYCLE_FAILURE]: {\n code: ERROR_CODES.PAYMENT_EVENT_LIFECYCLE_FAILURE,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Processing,\n userMessage: 'errors.payment.event.lifecycle_failure',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n [ERROR_CODES.PAYMENT_COMPLIANCE_AML_CHECK_FAILED]: {\n code: ERROR_CODES.PAYMENT_COMPLIANCE_AML_CHECK_FAILED,\n status: HTTP_STATUS.FORBIDDEN,\n category: ERROR_CATEGORY.Compliance,\n userMessage: 'errors.payment.compliance.aml_check_failed',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n\n [ERROR_CODES.PAYMENT_COMPLIANCE_PSD2_STRONG_AUTH_REQUIRED]: {\n code: ERROR_CODES.PAYMENT_COMPLIANCE_PSD2_STRONG_AUTH_REQUIRED,\n status: HTTP_STATUS.UNAUTHORIZED,\n category: ERROR_CATEGORY.Authentication,\n userMessage: 'errors.payment.compliance.psd2_strong_auth_required',\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n },\n\n [ERROR_CODES.PAYMENT_COMPLIANCE_GDPR_DATA_ACCESS]: {\n code: ERROR_CODES.PAYMENT_COMPLIANCE_GDPR_DATA_ACCESS,\n status: HTTP_STATUS.UNAVAILABLE_FOR_LEGAL_REASONS,\n category: ERROR_CATEGORY.Compliance,\n userMessage: 'errors.payment.compliance.gdpr_data_access',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.PAYMENT_COMPLIANCE_PCI_COMPLIANCE]: {\n code: ERROR_CODES.PAYMENT_COMPLIANCE_PCI_COMPLIANCE,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Security,\n userMessage: 'errors.payment.compliance.pci_compliance',\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n },\n\n [ERROR_CODES.PAYMENT_COMPLIANCE_LOCAL_BANKING_RESTRICTION]: {\n code: ERROR_CODES.PAYMENT_COMPLIANCE_LOCAL_BANKING_RESTRICTION,\n status: HTTP_STATUS.FORBIDDEN,\n category: ERROR_CATEGORY.Regional,\n userMessage: 'errors.payment.compliance.local_banking_restriction',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n // === Processing Errors ===\n\n [ERROR_CODES.PAYMENT_PROCESSING_FAILED]: {\n code: ERROR_CODES.PAYMENT_PROCESSING_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Processing,\n userMessage: 'errors.payment.processing.failed',\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n },\n\n [ERROR_CODES.PAYMENT_PROCESSING_TIMEOUT]: {\n code: ERROR_CODES.PAYMENT_PROCESSING_TIMEOUT,\n status: HTTP_STATUS.GATEWAY_TIMEOUT,\n category: ERROR_CATEGORY.Timeout,\n userMessage: 'errors.payment.processing.timeout',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n\n [ERROR_CODES.PAYMENT_PROCESSING_GATEWAY_ERROR]: {\n code: ERROR_CODES.PAYMENT_PROCESSING_GATEWAY_ERROR,\n status: HTTP_STATUS.BAD_GATEWAY,\n category: ERROR_CATEGORY.Provider,\n userMessage: 'errors.payment.processing.gateway_error',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n\n [ERROR_CODES.PAYMENT_PROCESSING_DUPLICATE]: {\n code: ERROR_CODES.PAYMENT_PROCESSING_DUPLICATE,\n status: HTTP_STATUS.CONFLICT,\n category: ERROR_CATEGORY.Processing,\n userMessage: 'errors.payment.processing.duplicate',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.PAYMENT_PROCESSING_UNEXPECTED_STATE]: {\n code: ERROR_CODES.PAYMENT_PROCESSING_UNEXPECTED_STATE,\n status: HTTP_STATUS.UNPROCESSABLE_ENTITY,\n category: ERROR_CATEGORY.System,\n userMessage: 'errors.payment.processing.unexpected_state',\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n },\n\n [ERROR_CODES.PAYMENT_PROVIDER_RATE_LIMIT]: {\n code: ERROR_CODES.PAYMENT_PROVIDER_RATE_LIMIT,\n status: HTTP_STATUS.TOO_MANY_REQUESTS,\n category: ERROR_CATEGORY.RateLimit,\n userMessage: 'errors.payment.provider.rate_limit',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n\n [ERROR_CODES.PAYMENT_PROVIDER_UNKNOWN]: {\n code: ERROR_CODES.PAYMENT_PROVIDER_UNKNOWN,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Provider,\n userMessage: 'errors.payment.provider.unknown',\n severity: ERROR_SEVERITY.Critical,\n retryable: true,\n },\n\n [ERROR_CODES.PAYMENT_CUSTOMER_CREATION_FAILED]: {\n code: ERROR_CODES.PAYMENT_CUSTOMER_CREATION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Processing,\n userMessage: 'errors.payment.customer.creation_failed',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n\n [ERROR_CODES.PAYMENT_METHOD_SAVE_FAILED]: {\n code: ERROR_CODES.PAYMENT_METHOD_SAVE_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Processing,\n userMessage: 'errors.payment.method.save_failed',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n\n [ERROR_CODES.PAYMENT_METHOD_DELETE_FAILED]: {\n code: ERROR_CODES.PAYMENT_METHOD_DELETE_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Processing,\n userMessage: 'errors.payment.method.delete_failed',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n\n [ERROR_CODES.PAYMENT_SUBSCRIPTION_CREATE_FAILED]: {\n code: ERROR_CODES.PAYMENT_SUBSCRIPTION_CREATE_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Processing,\n userMessage: 'errors.payment.subscription.create_failed',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n\n [ERROR_CODES.PAYMENT_SUBSCRIPTION_CANCEL_FAILED]: {\n code: ERROR_CODES.PAYMENT_SUBSCRIPTION_CANCEL_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Processing,\n userMessage: 'errors.payment.subscription.cancel_failed',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n\n [ERROR_CODES.PAYMENT_PAYOUT_FAILED]: {\n code: ERROR_CODES.PAYMENT_PAYOUT_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Processing,\n userMessage: 'errors.payment.payout.failed',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n\n [ERROR_CODES.PAYMENT_TRANSACTION_HISTORY_FETCH_FAILED]: {\n code: ERROR_CODES.PAYMENT_TRANSACTION_HISTORY_FETCH_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Processing,\n userMessage: 'errors.payment.transaction.history.fetch_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n },\n // ===== Unsupported Operations =====\n [ERROR_CODES.SAVE_PAYMENT_METHOD_UNSUPPORTED]: {\n code: ERROR_CODES.SAVE_PAYMENT_METHOD_UNSUPPORTED,\n status: HTTP_STATUS.NOT_IMPLEMENTED,\n category: ERROR_CATEGORY.Provider,\n userMessage: 'errors.payment.method.save_unsupported',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.DELETE_PAYMENT_METHOD_UNSUPPORTED]: {\n code: ERROR_CODES.DELETE_PAYMENT_METHOD_UNSUPPORTED,\n status: HTTP_STATUS.NOT_IMPLEMENTED,\n category: ERROR_CATEGORY.Provider,\n userMessage: 'errors.payment.method.delete_unsupported',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.GET_USER_PAYMENT_METHODS_UNSUPPORTED]: {\n code: ERROR_CODES.GET_USER_PAYMENT_METHODS_UNSUPPORTED,\n status: HTTP_STATUS.NOT_IMPLEMENTED,\n category: ERROR_CATEGORY.Provider,\n userMessage: 'errors.payment.method.get_user_methods_unsupported',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.CREATE_SUBSCRIPTION_UNSUPPORTED]: {\n code: ERROR_CODES.CREATE_SUBSCRIPTION_UNSUPPORTED,\n status: HTTP_STATUS.NOT_IMPLEMENTED,\n category: ERROR_CATEGORY.Provider,\n userMessage: 'errors.payment.subscription.create_unsupported',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.CANCEL_SUBSCRIPTION_UNSUPPORTED]: {\n code: ERROR_CODES.CANCEL_SUBSCRIPTION_UNSUPPORTED,\n status: HTTP_STATUS.NOT_IMPLEMENTED,\n category: ERROR_CATEGORY.Provider,\n userMessage: 'errors.payment.subscription.cancel_unsupported',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.PROCESS_PAYOUT_UNSUPPORTED]: {\n code: ERROR_CODES.PROCESS_PAYOUT_UNSUPPORTED,\n status: HTTP_STATUS.NOT_IMPLEMENTED,\n category: ERROR_CATEGORY.Provider,\n userMessage: 'errors.payment.payout.unsupported',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.GET_TRANSACTION_HISTORY_UNSUPPORTED]: {\n code: ERROR_CODES.GET_TRANSACTION_HISTORY_UNSUPPORTED,\n status: HTTP_STATUS.NOT_IMPLEMENTED,\n category: ERROR_CATEGORY.Provider,\n userMessage: 'errors.payment.transaction.history_unsupported',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n // Withdrawal Errors\n [ERROR_CODES.WITHDRAWAL_UNSUPPORTED]: {\n code: ERROR_CODES.WITHDRAWAL_UNSUPPORTED,\n status: HTTP_STATUS.NOT_IMPLEMENTED,\n category: ERROR_CATEGORY.Provider,\n userMessage: 'errors.payment.withdrawal.unsupported',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.WITHDRAWAL_CREATE_UNSUPPORTED]: {\n code: ERROR_CODES.WITHDRAWAL_CREATE_UNSUPPORTED,\n status: HTTP_STATUS.NOT_IMPLEMENTED,\n category: ERROR_CATEGORY.Provider,\n userMessage: 'errors.payment.withdrawal.create_unsupported',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.WITHDRAWAL_PROCESS_UNSUPPORTED]: {\n code: ERROR_CODES.WITHDRAWAL_PROCESS_UNSUPPORTED,\n status: HTTP_STATUS.NOT_IMPLEMENTED,\n category: ERROR_CATEGORY.Provider,\n userMessage: 'errors.payment.withdrawal.process_unsupported',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.WITHDRAWAL_STATUS_FETCH_UNSUPPORTED]: {\n code: ERROR_CODES.WITHDRAWAL_STATUS_FETCH_UNSUPPORTED,\n status: HTTP_STATUS.NOT_IMPLEMENTED,\n category: ERROR_CATEGORY.Provider,\n userMessage: 'errors.payment.withdrawal.status_fetch_unsupported',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.WITHDRAWAL_CANCEL_UNSUPPORTED]: {\n code: ERROR_CODES.WITHDRAWAL_CANCEL_UNSUPPORTED,\n status: HTTP_STATUS.NOT_IMPLEMENTED,\n category: ERROR_CATEGORY.Provider,\n userMessage: 'errors.payment.withdrawal.cancel_unsupported',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.WITHDRAWAL_INSUFFICIENT_BALANCE]: {\n code: ERROR_CODES.WITHDRAWAL_INSUFFICIENT_BALANCE,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Limits,\n userMessage: 'errors.payment.withdrawal.insufficient_balance',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.WITHDRAWAL_INVALID_ACCOUNT]: {\n code: ERROR_CODES.WITHDRAWAL_INVALID_ACCOUNT,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'errors.payment.withdrawal.invalid_account',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.WITHDRAWAL_KYC_REQUIRED]: {\n code: ERROR_CODES.WITHDRAWAL_KYC_REQUIRED,\n status: HTTP_STATUS.FORBIDDEN,\n category: ERROR_CATEGORY.Compliance,\n userMessage: 'errors.payment.withdrawal.kyc_required',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.WITHDRAWAL_LIMIT_EXCEEDED]: {\n code: ERROR_CODES.WITHDRAWAL_LIMIT_EXCEEDED,\n status: HTTP_STATUS.FORBIDDEN,\n category: ERROR_CATEGORY.Limits,\n userMessage: 'errors.payment.withdrawal.limit_exceeded',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.WITHDRAWAL_PROVIDER_ERROR]: {\n code: ERROR_CODES.WITHDRAWAL_PROVIDER_ERROR,\n status: HTTP_STATUS.BAD_GATEWAY,\n category: ERROR_CATEGORY.Provider,\n userMessage: 'errors.payment.withdrawal.provider_error',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n\n [ERROR_CODES.WITHDRAWAL_FAILED]: {\n code: ERROR_CODES.WITHDRAWAL_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Provider,\n userMessage: 'errors.payment.withdrawal.failed',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n\n [ERROR_CODES.WITHDRAWAL_TIMEOUT]: {\n code: ERROR_CODES.WITHDRAWAL_TIMEOUT,\n status: HTTP_STATUS.GATEWAY_TIMEOUT,\n category: ERROR_CATEGORY.Timeout,\n userMessage: 'errors.payment.withdrawal.timeout',\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n },\n\n // Product Errors\n [ERROR_CODES.PRODUCT_CREATE_UNSUPPORTED]: {\n code: ERROR_CODES.PRODUCT_CREATE_UNSUPPORTED,\n status: HTTP_STATUS.NOT_IMPLEMENTED,\n category: ERROR_CATEGORY.Provider,\n userMessage: 'errors.payment.product.create_unsupported',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.PRODUCT_UPDATE_UNSUPPORTED]: {\n code: ERROR_CODES.PRODUCT_UPDATE_UNSUPPORTED,\n status: HTTP_STATUS.NOT_IMPLEMENTED,\n category: ERROR_CATEGORY.Provider,\n userMessage: 'errors.payment.product.update_unsupported',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.PRODUCT_FETCH_UNSUPPORTED]: {\n code: ERROR_CODES.PRODUCT_FETCH_UNSUPPORTED,\n status: HTTP_STATUS.NOT_IMPLEMENTED,\n category: ERROR_CATEGORY.Provider,\n userMessage: 'errors.payment.product.fetch_unsupported',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.PRODUCT_DEACTIVATE_UNSUPPORTED]: {\n code: ERROR_CODES.PRODUCT_DEACTIVATE_UNSUPPORTED,\n status: HTTP_STATUS.NOT_IMPLEMENTED,\n category: ERROR_CATEGORY.Provider,\n userMessage: 'errors.payment.product.deactivate_unsupported',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.PRODUCT_NOT_FOUND]: {\n code: ERROR_CODES.PRODUCT_NOT_FOUND,\n status: HTTP_STATUS.NOT_FOUND,\n category: ERROR_CATEGORY.NotFound,\n userMessage: 'errors.payment.product.not_found',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.PRODUCT_INVALID_DATA]: {\n code: ERROR_CODES.PRODUCT_INVALID_DATA,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'errors.payment.product.invalid_data',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.PRODUCT_PROVIDER_ERROR]: {\n code: ERROR_CODES.PRODUCT_PROVIDER_ERROR,\n status: HTTP_STATUS.BAD_GATEWAY,\n category: ERROR_CATEGORY.Provider,\n userMessage: 'errors.payment.product.provider_error',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n\n [ERROR_CODES.PRODUCT_ALREADY_INACTIVE]: {\n code: ERROR_CODES.PRODUCT_ALREADY_INACTIVE,\n status: HTTP_STATUS.CONFLICT,\n category: ERROR_CATEGORY.Conflict,\n userMessage: 'errors.payment.product.already_inactive',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.PRODUCT_SYNC_FAILED]: {\n code: ERROR_CODES.PRODUCT_SYNC_FAILED,\n status: HTTP_STATUS.BAD_GATEWAY,\n category: ERROR_CATEGORY.Provider,\n userMessage: 'errors.payment.product.sync_failed',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n\n // Pricing Errors\n [ERROR_CODES.PRICING_CREATE_UNSUPPORTED]: {\n code: ERROR_CODES.PRICING_CREATE_UNSUPPORTED,\n status: HTTP_STATUS.NOT_IMPLEMENTED,\n category: ERROR_CATEGORY.Provider,\n userMessage: 'errors.payment.pricing.create_unsupported',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.PRICING_UPDATE_UNSUPPORTED]: {\n code: ERROR_CODES.PRICING_UPDATE_UNSUPPORTED,\n status: HTTP_STATUS.NOT_IMPLEMENTED,\n category: ERROR_CATEGORY.Provider,\n userMessage: 'errors.payment.pricing.update_unsupported',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.PRICING_DEACTIVATE_UNSUPPORTED]: {\n code: ERROR_CODES.PRICING_DEACTIVATE_UNSUPPORTED,\n status: HTTP_STATUS.NOT_IMPLEMENTED,\n category: ERROR_CATEGORY.Provider,\n userMessage: 'errors.payment.pricing.deactivate_unsupported',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.PRICING_NOT_FOUND]: {\n code: ERROR_CODES.PRICING_NOT_FOUND,\n status: HTTP_STATUS.NOT_FOUND,\n category: ERROR_CATEGORY.NotFound,\n userMessage: 'errors.payment.pricing.not_found',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.PRICING_INVALID_AMOUNT]: {\n code: ERROR_CODES.PRICING_INVALID_AMOUNT,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'errors.payment.pricing.invalid_amount',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.PRICING_INVALID_CURRENCY]: {\n code: ERROR_CODES.PRICING_INVALID_CURRENCY,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'errors.payment.pricing.invalid_currency',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.PRICING_PROVIDER_ERROR]: {\n code: ERROR_CODES.PRICING_PROVIDER_ERROR,\n status: HTTP_STATUS.BAD_GATEWAY,\n category: ERROR_CATEGORY.Provider,\n userMessage: 'errors.payment.pricing.provider_error',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n\n [ERROR_CODES.PRICING_ALREADY_INACTIVE]: {\n code: ERROR_CODES.PRICING_ALREADY_INACTIVE,\n status: HTTP_STATUS.CONFLICT,\n category: ERROR_CATEGORY.Conflict,\n userMessage: 'errors.payment.pricing.already_inactive',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n [ERROR_CODES.PRICING_SYNC_FAILED]: {\n code: ERROR_CODES.PRICING_SYNC_FAILED,\n status: HTTP_STATUS.BAD_GATEWAY,\n category: ERROR_CATEGORY.Provider,\n userMessage: 'errors.payment.pricing.sync_failed',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n\n [ERROR_CODES.PRICING_REQUIRES_NEW_VERSION]: {\n code: ERROR_CODES.PRICING_REQUIRES_NEW_VERSION,\n status: HTTP_STATUS.CONFLICT,\n category: ERROR_CATEGORY.Conflict,\n userMessage: 'errors.payment.pricing.requires_new_version',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.INVALID_CREDENTIALS]: {\n code: ERROR_CODES.INVALID_CREDENTIALS,\n status: HTTP_STATUS.UNAUTHORIZED,\n category: ERROR_CATEGORY.Authentication,\n userMessage: 'errors.auth.invalid_credentials',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.TOKEN_EXPIRED]: {\n code: ERROR_CODES.TOKEN_EXPIRED,\n status: HTTP_STATUS.UNAUTHORIZED,\n category: ERROR_CATEGORY.Authentication,\n userMessage: 'errors.auth.token_expired',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.TOKEN_INVALID]: {\n code: ERROR_CODES.TOKEN_INVALID,\n status: HTTP_STATUS.UNAUTHORIZED,\n category: ERROR_CATEGORY.Authentication,\n userMessage: 'errors.auth.token_invalid',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n [ERROR_CODES.TOKEN_REVOKED]: {\n code: ERROR_CODES.TOKEN_REVOKED,\n status: HTTP_STATUS.UNAUTHORIZED,\n category: ERROR_CATEGORY.Authentication,\n userMessage: 'errors.auth.token_revoked',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.SESSION_EXPIRED]: {\n code: ERROR_CODES.SESSION_EXPIRED,\n status: HTTP_STATUS.UNAUTHORIZED,\n category: ERROR_CATEGORY.Authentication,\n userMessage: 'errors.auth.session_expired',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.MFA_REQUIRED]: {\n code: ERROR_CODES.MFA_REQUIRED,\n status: HTTP_STATUS.FORBIDDEN,\n category: ERROR_CATEGORY.Authorization,\n userMessage: 'errors.auth.mfa_required',\n severity: ERROR_SEVERITY.Low,\n retryable: false,\n },\n [ERROR_CODES.MFA_INVALID]: {\n code: ERROR_CODES.MFA_INVALID,\n status: HTTP_STATUS.UNAUTHORIZED,\n category: ERROR_CATEGORY.Authentication,\n userMessage: 'errors.auth.mfa_invalid',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.INSUFFICIENT_PERMISSIONS]: {\n code: ERROR_CODES.INSUFFICIENT_PERMISSIONS,\n status: HTTP_STATUS.FORBIDDEN,\n category: ERROR_CATEGORY.Authorization,\n userMessage: 'errors.auth.insufficient_permissions',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.ROLE_REQUIRED]: {\n code: ERROR_CODES.ROLE_REQUIRED,\n status: HTTP_STATUS.FORBIDDEN,\n category: ERROR_CATEGORY.Authorization,\n userMessage: 'errors.auth.role_required',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.WALLET_SIGNATURE_INVALID]: {\n code: ERROR_CODES.WALLET_SIGNATURE_INVALID,\n status: HTTP_STATUS.UNAUTHORIZED,\n category: ERROR_CATEGORY.Authentication,\n userMessage: 'errors.auth.wallet_signature_invalid',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n [ERROR_CODES.NONCE_EXPIRED]: {\n code: ERROR_CODES.NONCE_EXPIRED,\n status: HTTP_STATUS.UNAUTHORIZED,\n category: ERROR_CATEGORY.Authentication,\n userMessage: 'errors.auth.nonce_expired',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.NONCE_ALREADY_USED]: {\n code: ERROR_CODES.NONCE_ALREADY_USED,\n status: HTTP_STATUS.UNAUTHORIZED,\n category: ERROR_CATEGORY.Authentication,\n userMessage: 'errors.auth.nonce_already_used',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n [ERROR_CODES.ACCOUNT_LOCKED]: {\n code: ERROR_CODES.ACCOUNT_LOCKED,\n status: HTTP_STATUS.LOCKED,\n category: ERROR_CATEGORY.Authorization,\n userMessage: 'errors.auth.account_locked',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n [ERROR_CODES.ACCOUNT_SUSPENDED]: {\n code: ERROR_CODES.ACCOUNT_SUSPENDED,\n status: HTTP_STATUS.FORBIDDEN,\n category: ERROR_CATEGORY.Authorization,\n userMessage: 'errors.auth.account_suspended',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n};\n","// ============================================\n// USER DEFINITION ENUMS\n// ============================================\n\nimport { ERROR_CATEGORY, ERROR_CODES, ERROR_SEVERITY } from '../errors';\nimport { HTTP_STATUS } from '../http/constants';\n\n/**\n * Enum representing the different roles a user can have within the system.\n * @description Roles are used to determine access levels, permissions, and user-specific experiences.\n *\n * @example\n * ```typescript\n * import { USER_ROLE } from '@plyaz/types';\n *\n * const userRole = USER_ROLE.Athlete; // 'athlete'\n * const isAdmin = userRole === USER_ROLE.Admin || userRole === USER_ROLE.SuperAdmin;\n * ```\n */\nexport const USER_ROLE = {\n /** A user who is an athlete and participates in sports activities. */\n Athlete: 'athlete',\n\n /** A user who scouts and discovers talent. */\n Scout: 'scout',\n\n /** A user who acts as an agent representing athletes or clubs. */\n Agent: 'agent',\n\n /** A user representing a sports club or organization. */\n Club: 'club',\n\n /** A fan or supporter of athletes or clubs. */\n Fan: 'fan',\n\n /** A system administrator with access to management tools. */\n Admin: 'admin',\n\n /** A super admin with the highest level of access and control. */\n SuperAdmin: 'super.admin',\n} as const;\n\n/**\n * Enum representing the current status of a user account.\n * @description Statuses are used to determine login availability, visibility, and user flow.\n *\n * @example\n * ```typescript\n * import { USER_STATUS } from '@plyaz/types';\n *\n * const isAccessible = status === USER_STATUS.Active;\n * const needsReview = status === USER_STATUS.Pending;\n * ```\n */\nexport const USER_STATUS = {\n /** Active user with full access. */\n Active: 'active',\n\n /** Inactive user, typically not currently using the platform. */\n Inactive: 'inactive',\n\n /** User account is awaiting approval or completion of setup. */\n Pending: 'pending',\n\n /** User has been temporarily suspended due to policy violations or manual review. */\n Suspended: 'suspended',\n\n /** User has been permanently banned from the platform. */\n Banned: 'banned',\n} as const;\n\n// ============================================\n// AUTHENTICATION PROVIDER ENUMS\n// ============================================\n\n/**\n * Enum representing the primary authentication provider technology stack.\n * @description Defines the system used to manage user identities and issue tokens.\n *\n * @enum {string}\n */\nexport enum AUTH_PROVIDER_TYPE {\n /** Uses Clerk for external authentication and Supabase for internal RLS/DB sync. */\n ClerkSupabase = 'CLERK_SUPABASE',\n /** Uses an internal database for managing credentials (typically for B2B/Backoffice). */\n InternalDb = 'INTERNAL_DB',\n}\n\n/**\n * Authentication provider types.\n * @description Defines the specific login method or external identity provider used by the user.\n *\n * @enum {string}\n */\nexport enum AUTH_PROVIDER {\n /** Email/password authentication. */\n EMAIL = 'EMAIL',\n /** Clerk authentication. */\n CLERK = 'CLERK',\n /** Google OAuth. */\n GOOGLE = 'GOOGLE',\n /** Facebook OAuth. */\n FACEBOOK = 'FACEBOOK',\n /** Apple Sign In. */\n APPLE = 'APPLE',\n /** Web3 wallet authentication (e.g., MetaMask). */\n WEB3 = 'WEB3',\n}\n\n// ============================================\n// ROLE & TOKEN ENUMS\n// ============================================\n\n/**\n * User role assignment status.\n * @description Defines the state of a user's relationship with a specific role.\n *\n * @enum {string}\n */\nexport enum USER_ROLE_STATUS {\n /** Role is active and grants associated permissions. */\n ACTIVE = 'ACTIVE',\n /** Role is inactive (temporarily disabled or superseded by a primary role). */\n INACTIVE = 'INACTIVE',\n /** Role is suspended (often due to user policy violation, preventing role-specific access). */\n SUSPENDED = 'SUSPENDED',\n}\n\n/**\n * Token type for authentication.\n * @description Defines the schema or standard used by the authentication token.\n *\n * @enum {string}\n */\nexport enum TOKEN_TYPE {\n /** Bearer token standard, commonly used for OAuth 2.0. */\n BEARER = 'Bearer',\n /** JSON Web Token standard. */\n JWT = 'JWT',\n}\n\nexport const AUTH_ERROR_DEFINITIONS = {\n [ERROR_CODES.INVALID_CREDENTIALS]: {\n code: ERROR_CODES.INVALID_CREDENTIALS,\n status: HTTP_STATUS.UNAUTHORIZED,\n category: ERROR_CATEGORY.Authentication,\n userMessage: 'errors.auth.invalid_credentials',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.TOKEN_EXPIRED]: {\n code: ERROR_CODES.TOKEN_EXPIRED,\n status: HTTP_STATUS.UNAUTHORIZED,\n category: ERROR_CATEGORY.Authentication,\n userMessage: 'errors.auth.token_expired',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.TOKEN_INVALID]: {\n code: ERROR_CODES.TOKEN_INVALID,\n status: HTTP_STATUS.UNAUTHORIZED,\n category: ERROR_CATEGORY.Authentication,\n userMessage: 'errors.auth.token_invalid',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n [ERROR_CODES.TOKEN_REVOKED]: {\n code: ERROR_CODES.TOKEN_REVOKED,\n status: HTTP_STATUS.UNAUTHORIZED,\n category: ERROR_CATEGORY.Authentication,\n userMessage: 'errors.auth.token_revoked',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.SESSION_EXPIRED]: {\n code: ERROR_CODES.SESSION_EXPIRED,\n status: HTTP_STATUS.UNAUTHORIZED,\n category: ERROR_CATEGORY.Authentication,\n userMessage: 'errors.auth.session_expired',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.MFA_REQUIRED]: {\n code: ERROR_CODES.MFA_REQUIRED,\n status: HTTP_STATUS.FORBIDDEN,\n category: ERROR_CATEGORY.Authorization,\n userMessage: 'errors.auth.mfa_required',\n severity: ERROR_SEVERITY.Low,\n retryable: false,\n },\n [ERROR_CODES.MFA_INVALID]: {\n code: ERROR_CODES.MFA_INVALID,\n status: HTTP_STATUS.UNAUTHORIZED,\n category: ERROR_CATEGORY.Authentication,\n userMessage: 'errors.auth.mfa_invalid',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.INSUFFICIENT_PERMISSIONS]: {\n code: ERROR_CODES.INSUFFICIENT_PERMISSIONS,\n status: HTTP_STATUS.FORBIDDEN,\n category: ERROR_CATEGORY.Authorization,\n userMessage: 'errors.auth.insufficient_permissions',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.ROLE_REQUIRED]: {\n code: ERROR_CODES.ROLE_REQUIRED,\n status: HTTP_STATUS.FORBIDDEN,\n category: ERROR_CATEGORY.Authorization,\n userMessage: 'errors.auth.role_required',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.WALLET_SIGNATURE_INVALID]: {\n code: ERROR_CODES.WALLET_SIGNATURE_INVALID,\n status: HTTP_STATUS.UNAUTHORIZED,\n category: ERROR_CATEGORY.Authentication,\n userMessage: 'errors.auth.wallet_signature_invalid',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n [ERROR_CODES.NONCE_EXPIRED]: {\n code: ERROR_CODES.NONCE_EXPIRED,\n status: HTTP_STATUS.UNAUTHORIZED,\n category: ERROR_CATEGORY.Authentication,\n userMessage: 'errors.auth.nonce_expired',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.NONCE_ALREADY_USED]: {\n code: ERROR_CODES.NONCE_ALREADY_USED,\n status: HTTP_STATUS.UNAUTHORIZED,\n category: ERROR_CATEGORY.Authentication,\n userMessage: 'errors.auth.nonce_already_used',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n [ERROR_CODES.ACCOUNT_LOCKED]: {\n code: ERROR_CODES.ACCOUNT_LOCKED,\n status: HTTP_STATUS.LOCKED,\n category: ERROR_CATEGORY.Authorization,\n userMessage: 'errors.auth.account_locked',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n [ERROR_CODES.ACCOUNT_SUSPENDED]: {\n code: ERROR_CODES.ACCOUNT_SUSPENDED,\n status: HTTP_STATUS.FORBIDDEN,\n category: ERROR_CATEGORY.Authorization,\n userMessage: 'errors.auth.account_suspended',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n} as const;\n","import { z } from 'zod';\n\n/**\n * Password minimum character length\n */\nconst DEFAULT_PASSWORD = 8;\n\n/**\n * Contact Us Form Schema\n * Validates contact form submissions\n */\nexport const ContactUsFormSchema = z.object({\n name: z.string({ error: 'errors.form.missingField' }).min(1, 'errors.form.nameMissing'),\n email: z.email({ error: 'errors.form.emailInvalid' }),\n});\n\n/**\n * Contact Us Form Type\n */\nexport type ContactUsForm = z.infer<typeof ContactUsFormSchema>;\n\n/**\n * Signup Form Schema\n * Validates user registration form submissions\n */\nexport const SignupFormSchema = z.object({\n name: z.string({ error: 'errors.form.missingField' }).min(1, 'errors.form.nameMissing'),\n email: z.email({ error: 'errors.form.emailInvalid' }),\n password: z\n .string({ error: 'errors.form.missingField' })\n .min(DEFAULT_PASSWORD, 'errors.form.passwordTooShort'),\n});\n\n/**\n * Signup Form Type\n */\nexport type SignupForm = z.infer<typeof SignupFormSchema>;\n","import type { WithExpiration, WithAuthTokens } from '../common/types';\nimport type { BaseErrorContext } from '../errors';\nimport type { AUTH_ERROR_DEFINITIONS, USER_ROLE_STATUS } from './enums';\n\n// ============================================\n// AUTHENTICATION TYPES\n// ============================================\n\n/**\n * AuthToken Interface.\n * @description Represents an authentication token set returned after a successful login or refresh.\n * @interface AuthToken\n */\nexport interface AuthToken extends WithExpiration, WithAuthTokens {\n /**\n * Token type, typically \"Bearer\" for OAuth2-style tokens.\n */\n readonly tokenType: 'Bearer';\n}\n\n/**\n * AuthCredentials.\n * @description Represents the credentials used for traditional email/password authentication.\n * This is used for providers that handle this type of login directly.\n */\nexport type AuthCredentials = {\n /** The user's email address. */\n email: string;\n /** The user's password (optional, used in traditional login flows). */\n password?: string;\n /**\n * One-Time Password (OTP) or magic link token.\n * This could be extended with other credential types as needed.\n */\n otp?: string;\n};\n\n/**\n * UserContext.\n * @description A standardized representation of a user's context.\n * This ensures that regardless of the underlying authentication provider (Clerk, Supabase, etc.),\n * your application's internal code can interact with a consistent user object.\n */\nexport type UserContext = {\n /** A unique identifier for the user (e.g., a UUID from Supabase). */\n id: string;\n /** The user's primary email address. */\n email: string;\n /** Timestamp when the user was created. */\n createdAt: Date;\n // You can extend this with additional user profile information\n // that is consistent across all providers, such as:\n // name?: string;\n // profileImageUrl?: string;\n};\n\n// ============================================\n// SERVICE PROVIDER CONTRACTS\n// ============================================\n\n/**\n * @fileoverview Defines the contract for all authentication service providers\n * responsible for handling the synchronization between an external identity\n * source (like Clerk, Auth0, etc.) and the internal database user structure.\n *\n * Any provider implementing this interface must handle user lookup, creation,\n * and issuance of the necessary internal tokens (like the Supabase RLS JWT).\n *\n * @interface AuthServiceProvider\n */\nexport interface AuthServiceProvider {\n /**\n * Synchronizes an external user's identity with the internal application database.\n *\n * This is typically called immediately after a successful authentication with\n * an external provider to ensure the user exists in the local database,\n * update their metadata, and issue an internal authorization token (e.g., RLS JWT).\n *\n * @param clerkJwt The JWT received from the external provider (e.g., Clerk).\n * @param externalId The unique identifier from the external authentication provider (e.g., Clerk's 'sub').\n * @param email The user's primary email address from the external provider.\n * @returns A Promise resolving to an object containing the internal UserContext and the provider-specific RLS JWT.\n */\n syncUserFromExternalToken(\n clerkJwt: string,\n externalId: string,\n email: string\n ): Promise<{ user: UserContext; supabaseRlsToken: string }>;\n\n /**\n * Retrieves a user's context from the internal database using their internal ID.\n *\n * This method is generally used by trusted backend services and must bypass RLS.\n *\n * @param userId The internal database UUID of the user.\n * @returns A Promise resolving to the user's basic context (`UserContext`) or `null` if not found.\n */\n getUserById(userId: string): Promise<UserContext | null>;\n}\n\n// ============================================\n// USER TYPES\n// ============================================\n\n/**\n * B2C User Info (public schema).\n * @description Represents platform users: fans, athletes, clubs, scouts, agents.\n * * @interface UserInfo\n * @property {string} id - Unique user identifier (UUID).\n * @property {string} email - User email address (unique).\n * @property {string} [clerkUserId] - Clerk provider user ID.\n * @property {string} authProvider - Authentication provider used.\n * @property {string} [firstName] - User first name.\n * @property {string} [lastName] - User last name.\n * @property {string} displayName - Display name (required).\n * @property {string} [avatarUrl] - Avatar image URL.\n * @property {string} [phoneNumber] - Phone number.\n * @property {boolean} isActive - Account active status.\n * @property {boolean} isVerified - Email verification status.\n * @property {Date} createdAt - Account creation timestamp.\n * @property {Date} updatedAt - Last update timestamp.\n * @property {Date} [lastLoginAt] - Last login timestamp.\n */\nexport interface UserInfo {\n id: string;\n email: string;\n clerkUserId?: string;\n authProvider: string;\n firstName?: string;\n lastName?: string;\n displayName: string;\n avatarUrl?: string;\n phoneNumber?: string;\n isActive: boolean;\n isVerified: boolean;\n createdAt: Date;\n updatedAt: Date;\n lastLoginAt?: Date;\n}\n\n/**\n * B2B User (backoffice schema).\n * @description Represents internal staff: admins, moderators, support, finance, compliance.\n * * @interface BackofficeUser\n * @property {string} id - Unique user identifier (UUID).\n * @property {string} email - User email address (unique).\n * @property {string} passwordHash - Hashed password.\n * @property {string} [clerkUserId] - Clerk provider user ID.\n * @property {string} authProvider - Authentication provider used.\n * @property {string} [firstName] - User first name.\n * @property {string} [lastName] - User last name.\n * @property {string} displayName - Display name (required).\n * @property {string} [avatarUrl] - Avatar image URL.\n * @property {string} [phoneNumber] - Phone number.\n * @property {boolean} isActive - Account active status.\n * @property {boolean} isVerified - Email verification status.\n * @property {boolean} isSuspended - Account suspension status.\n * @property {string} [suspensionReason] - Reason for suspension.\n * @property {Date} [suspendedAt] - Suspension timestamp.\n * @property {Date} createdAt - Account creation timestamp.\n * @property {Date} updatedAt - Last update timestamp.\n * @property {Date} [lastLoginAt] - Last login timestamp.\n */\nexport interface BackofficeUser {\n id: string;\n email: string;\n passwordHash: string;\n clerkUserId?: string;\n authProvider: string;\n firstName?: string;\n lastName?: string;\n displayName: string;\n avatarUrl?: string;\n phoneNumber?: string;\n isActive: boolean;\n isVerified: boolean;\n isSuspended: boolean;\n suspensionReason?: string;\n suspendedAt?: Date;\n createdAt: Date;\n updatedAt: Date;\n lastLoginAt?: Date;\n}\n\n// ============================================\n// SESSION TYPES\n// ============================================\n\n/**\n * B2C Session (public schema).\n * @description Tracks authenticated user sessions with device and activity info.\n * * @interface Session\n * @property {string} id - Unique session identifier.\n * @property {string} userId - ID of the user owning the session.\n * @property {string} provider - Authentication provider used.\n * @property {string} [providerSessionId] - External provider's session ID (if applicable).\n * @property {Date} expiresAt - Session expiration timestamp.\n * @property {Date} createdAt - Session creation timestamp.\n * @property {Date} lastActivityAt - Last activity timestamp for the session.\n * @property {string} [ipAddress] - IP address used when the session was created/last used.\n * @property {string} [userAgent] - User agent string of the client.\n * @property {Record<string, unknown>} [metadata] - Arbitrary metadata related to the session.\n */\nexport interface Session {\n id: string;\n userId: string;\n provider: string;\n providerSessionId?: string;\n expiresAt: Date;\n createdAt: Date;\n lastActivityAt: Date;\n ipAddress?: string;\n userAgent?: string;\n metadata?: Record<string, unknown>;\n}\n\n/**\n * B2B Session (backoffice schema).\n * @description Tracks authenticated backoffice user sessions.\n * * @interface BackofficeSession\n * @property {string} id - Unique session identifier.\n * @property {string} backofficeUserId - ID of the backoffice user owning the session.\n * @property {string} provider - Authentication provider used.\n * @property {string} [providerSessionId] - External provider's session ID (if applicable).\n * @property {Date} expiresAt - Session expiration timestamp.\n * @property {Date} createdAt - Session creation timestamp.\n * @property {Date} lastActivityAt - Last activity timestamp for the session.\n * @property {string} [ipAddress] - IP address used when the session was created/last used.\n * @property {string} [userAgent] - User agent string of the client.\n * @property {Record<string, unknown>} [metadata] - Arbitrary metadata related to the session.\n */\nexport interface BackofficeSession {\n id: string;\n backofficeUserId: string;\n provider: string;\n providerSessionId?: string;\n expiresAt: Date;\n createdAt: Date;\n lastActivityAt: Date;\n ipAddress?: string;\n userAgent?: string;\n metadata?: Record<string, unknown>;\n}\n\n// ============================================\n// CONNECTED ACCOUNT TYPES\n// ============================================\n\n/**\n * Connected Account (provider linking).\n * @description Links external OAuth/Web3 provider accounts to users.\n * Supports OAuth providers (Clerk, Google, etc.) and Web3 wallets.\n * * @interface ConnectedAccount\n * @property {string} id - Unique connected account identifier.\n * @property {string} userId - ID of the internal user account.\n * @property {string} providerType - Category of the provider (e.g., 'oauth', 'web3').\n * @property {string} provider - Specific provider name (e.g., 'google', 'metamask').\n * @property {string} providerAccountId - Unique ID from the external provider.\n * @property {string} [walletAddress] - Wallet address for Web3 accounts.\n * @property {string} [accessTokenEncrypted] - Encrypted access token for the provider.\n * @property {boolean} isPrimary - Flag indicating if this is the user's primary login account.\n * @property {Date} linkedAt - Timestamp when the account was linked.\n */\nexport interface ConnectedAccount {\n id: string;\n userId: string;\n providerType: string;\n provider: string;\n providerAccountId: string;\n providerEmail?: string;\n providerUsername?: string;\n providerDisplayName?: string;\n providerAvatarUrl?: string;\n providerProfileUrl?: string;\n providerMetadata?: Record<string, unknown>;\n walletAddress?: string;\n chainId?: string;\n accessTokenEncrypted?: string;\n refreshTokenEncrypted?: string;\n tokenExpiresAt?: Date;\n tokenScope?: string;\n isPrimary: boolean;\n isVerified: boolean;\n isActive: boolean;\n linkedAt: Date;\n linkedIpAddress?: string;\n linkedUserAgent?: string;\n lastUsedAt?: Date;\n lastUsedIpAddress?: string;\n createdAt: Date;\n updatedAt: Date;\n}\n\n// ============================================\n// AUTH TOKENS\n// ============================================\n\n/**\n * Authentication tokens returned after successful login.\n * * @interface AuthTokens\n * @property {string} accessToken - The main access token (JWT or similar).\n * @property {string} [refreshToken] - Token used to refresh the access token.\n * @property {number} expiresIn - Access token expiration time in seconds.\n * @property {string} tokenType - Type of the token, usually 'Bearer'.\n */\nexport interface AuthTokens {\n accessToken: string;\n refreshToken?: string;\n expiresIn: number;\n tokenType: string;\n}\n\n// ============================================\n// RBAC TYPES\n// ============================================\n\n/**\n * B2C Role (public schema).\n * @description Defines user roles: FAN, ATHLETE, SCOUT, AGENT, CLUB, DEVELOPER, ADMIN.\n * * @interface Role\n * @property {string} id - Unique role identifier.\n * @property {string} code - Machine-readable role code (e.g., 'ATHLETE').\n * @property {string} name - Human-readable role name.\n * @property {number} hierarchy - Numeric value for role hierarchy/priority.\n * @property {boolean} isSystem - True if the role is system-defined and cannot be deleted.\n */\nexport interface Role {\n id: string;\n code: string;\n name: string;\n description?: string;\n hierarchy: number;\n canCreateCampaigns?: boolean;\n canContribute?: boolean;\n requiresKyc?: boolean;\n isActive: boolean;\n isSystem: boolean;\n metadata?: Record<string, unknown>;\n createdAt: Date;\n updatedAt: Date;\n}\n\n/**\n * B2B Role (backoffice schema).\n * @description Defines staff roles: SUPER_ADMIN, ADMIN, MODERATOR, FINANCE, COMPLIANCE, SUPPORT.\n * * @interface BackofficeRole\n * @property {string} id - Unique role identifier.\n * @property {string} code - Machine-readable role code (e.g., 'SUPER_ADMIN').\n * @property {string} name - Human-readable role name.\n * @property {number} hierarchy - Numeric value for role hierarchy/priority.\n * @property {boolean} canManageUsers - Permission to manage user accounts.\n * @property {boolean} canViewAllData - Permission to view all data regardless of ownership.\n */\nexport interface BackofficeRole {\n id: string;\n code: string;\n name: string;\n description?: string;\n hierarchy: number;\n canApproveCampaigns: boolean;\n canApproveKyc: boolean;\n canApprovePayouts: boolean;\n canManageUsers: boolean;\n canManageRoles: boolean;\n canViewAllData: boolean;\n isActive: boolean;\n isSystem: boolean;\n metadata?: Record<string, unknown>;\n createdAt: Date;\n updatedAt: Date;\n}\n\n/**\n * Permission (backoffice only).\n * @description Fine-grained permissions for backoffice users.\n * * @interface Permission\n * @property {string} id - Unique permission identifier.\n * @property {string} code - Machine-readable permission code (e.g., 'USER_READ').\n * @property {string} resource - The resource the permission applies to (e.g., 'USER', 'CAMPAIGN').\n * @property {string} action - The action the permission allows (e.g., 'READ', 'DELETE').\n */\nexport interface Permission {\n id: string;\n code: string;\n name: string;\n description?: string;\n resource: string;\n action: string;\n isActive: boolean;\n isSystem: boolean;\n metadata?: Record<string, unknown>;\n createdAt: Date;\n updatedAt: Date;\n}\n\n/**\n * Role-Permission mapping (backoffice only).\n * @description Links permissions to roles.\n * * @interface RolePermission\n * @property {string} id - Unique mapping identifier.\n * @property {string} roleId - ID of the role.\n * @property {string} permissionId - ID of the permission granted.\n * @property {Date} grantedAt - Timestamp when the permission was assigned to the role.\n */\nexport interface RolePermission {\n id: string;\n roleId: string;\n role: string;\n permissionId: string;\n grantedAt: Date;\n grantedBy?: string;\n}\n\n/**\n * User-Permission mapping (backoffice only).\n * @description Grants/revokes specific permissions to users, overriding role permissions.\n * * @interface UserPermission\n * @property {string} id - Unique mapping identifier.\n * @property {string} backofficeUserId - ID of the backoffice user.\n * @property {string} permissionId - ID of the permission.\n * @property {boolean} isGranted - True to grant, false to explicitly revoke.\n */\nexport interface UserPermission {\n id: string;\n backofficeUserId: string;\n permissionId: string;\n isGranted: boolean;\n expiresAt?: Date;\n grantedAt: Date;\n grantedBy?: string;\n reason?: string;\n}\n\n/**\n * B2C User-Role assignment.\n * @description Links users to roles with status tracking.\n * * @interface UserRole\n * @property {string} userId - ID of the B2C user.\n * @property {string} roleId - ID of the role assigned.\n * @property {boolean} isPrimary - True if this is the user's main, active role.\n * @property {USER_ROLE_STATUS} status - Current status of the role assignment (e.g., ACTIVE, PENDING).\n */\nexport interface UserRole {\n id: string;\n userId: string;\n roleId: string;\n role: string;\n isPrimary: boolean;\n status: USER_ROLE_STATUS;\n assignedBy?: string;\n assignedReason?: string;\n expiresAt?: Date;\n createdAt: Date;\n updatedAt: Date;\n}\n\n/**\n * B2B User-Role assignment.\n * @description Links backoffice users to roles.\n * * @interface BackofficeUserRole\n * @property {string} backofficeUserId - ID of the backoffice user.\n * @property {string} roleId - ID of the role assigned.\n * @property {boolean} isPrimary - True if this is the user's main, active role.\n * @property {USER_ROLE_STATUS} status - Current status of the role assignment.\n */\nexport interface BackofficeUserRole {\n id: string;\n backofficeUserId: string;\n roleId: string;\n role: string;\n isPrimary: boolean;\n status: USER_ROLE_STATUS;\n assignedBy?: string;\n assignedReason?: string;\n expiresAt?: Date;\n createdAt: Date;\n updatedAt: Date;\n}\n\n// ============================================\n// AUTH PROVIDER ADAPTER INTERFACE\n// ============================================\n\n/**\n * Authentication provider adapter interface.\n * @description Defines contract for provider-agnostic authentication interactions.\n * * @interface AuthProviderAdapter\n * @property {string} name - The name of the authentication provider (e.g., 'clerk', 'auth0').\n */\nexport interface AuthProviderAdapter {\n name: string;\n\n /**\n * Verifies an external authentication token (e.g., a JWT).\n * @param token The token to verify.\n * @returns A Promise resolving to the verified token result.\n */\n verifyToken(token: string): Promise<VerifiedToken>;\n\n /**\n * Retrieves user profile information from the external provider using a token.\n * @param token The access token.\n * @returns A Promise resolving to the provider's user information.\n */\n getUserInfo(token: string): Promise<ProviderUserInfo>;\n\n /**\n * Refreshes an expired access token using a refresh token (optional method).\n * @param refreshToken The token used for refreshing.\n * @returns A Promise resolving to a new set of authentication tokens.\n */\n refreshToken?(refreshToken: string): Promise<AuthTokens>;\n\n /**\n * Invalidates a token on the provider's side (e.g., logout, optional method).\n * @param token The token to revoke.\n * @returns A Promise that resolves when the token is successfully revoked.\n */\n revokeToken?(token: string): Promise<void>;\n}\n\n/**\n * Verified token result.\n * @description Data returned after successful token verification.\n * * @interface VerifiedToken\n * @property {string} userId - The user's ID from the external provider.\n * @property {string} provider - The name of the provider.\n * @property {string} providerAccountId - The provider's unique account ID.\n */\nexport interface VerifiedToken {\n userId: string;\n provider: string;\n providerAccountId: string;\n email?: string;\n expiresAt?: Date;\n metadata?: Record<string, unknown>;\n}\n\n/**\n * Provider user information.\n * @description User profile data fetched from an external provider.\n * * @interface ProviderUserInfo\n * @property {string} providerAccountId - Unique ID from the external provider.\n * @property {string} [email] - The user's email address from the provider.\n */\nexport interface ProviderUserInfo {\n providerAccountId: string;\n email?: string;\n displayName?: string;\n firstName?: string;\n lastName?: string;\n avatarUrl?: string;\n phoneNumber?: string;\n metadata?: Record<string, unknown>;\n}\n\n// ============================================\n// REPOSITORY INTERFACES\n// ============================================\n\n/**\n * User repository interface.\n * @description Defines data access methods for B2C user management.\n * * @interface UserRepositoryInterface\n */\nexport interface UserRepositoryInterface {\n /** Find a user by their internal ID. */\n findById(id: string): Promise<UserInfo | null>;\n /** Find a user by their primary email address. */\n findByEmail(email: string): Promise<UserInfo | null>;\n /** Find a user linked to a specific external provider account. */\n findByProviderAccount(provider: string, providerAccountId: string): Promise<UserInfo | null>;\n /** Create a new user record. */\n create(data: CreateUserData): Promise<UserInfo>;\n /** Update an existing user record. */\n update(id: string, data: UpdateUserData): Promise<UserInfo>;\n /** Delete a user record. */\n delete(id: string): Promise<void>;\n}\n\n/**\n * Session repository interface.\n * @description Defines data access methods for B2C session management.\n * * @interface SessionRepositoryInterface\n */\nexport interface SessionRepositoryInterface {\n /** Create a new session record. */\n create(data: CreateSessionData): Promise<Session>;\n /** Find a session by its ID. */\n findById(id: string): Promise<Session | null>;\n /** Find all active sessions for a given user ID. */\n findByUserId(userId: string): Promise<Session[]>;\n /** Validate if a session ID is current and not expired. */\n validate(sessionId: string): Promise<Session | null>;\n /** Invalidate (log out) a specific session. */\n invalidate(sessionId: string): Promise<void>;\n /** Invalidate (log out) all sessions for a user. */\n invalidateAllForUser(userId: string): Promise<void>;\n /** Update the last activity timestamp for a session. */\n updateActivity(sessionId: string): Promise<void>;\n}\n\n/**\n * Connected account repository interface.\n * @description Defines data access methods for provider account linking.\n * * @interface ConnectedAccountRepositoryInterface\n */\nexport interface ConnectedAccountRepositoryInterface {\n /** Create a new connected account link. */\n create(data: CreateConnectedAccountData): Promise<ConnectedAccount>;\n /** Find a connected account by its internal ID. */\n findById(id: string): Promise<ConnectedAccount | null>;\n /** Find all connected accounts linked to a user. */\n findByUserId(userId: string): Promise<ConnectedAccount[]>;\n /** Find a connected account by provider and account ID. */\n findByProvider(provider: string, providerAccountId: string): Promise<ConnectedAccount | null>;\n /** Update an existing connected account record. */\n update(id: string, data: UpdateConnectedAccountData): Promise<ConnectedAccount>;\n /** Delete a connected account link. */\n delete(id: string): Promise<void>;\n}\n\n// ============================================\n// DATA TRANSFER OBJECTS (DTOs)\n// ============================================\n\n/**\n * DTO for creating B2C users.\n * @interface CreateUserData\n */\nexport interface CreateUserData {\n email: string;\n clerkUserId?: string;\n authProvider?: string;\n firstName?: string;\n lastName?: string;\n displayName: string;\n avatarUrl?: string;\n phoneNumber?: string;\n isVerified?: boolean;\n}\n\n/**\n * DTO for creating B2B users.\n * @interface CreateBackofficeUserData\n */\nexport interface CreateBackofficeUserData {\n email: string;\n passwordHash: string;\n clerkUserId?: string;\n authProvider?: string;\n firstName?: string;\n lastName?: string;\n displayName: string;\n avatarUrl?: string;\n phoneNumber?: string;\n isVerified?: boolean;\n}\n\n/**\n * DTO for updating B2C users.\n * @interface UpdateUserData\n */\nexport interface UpdateUserData {\n email?: string;\n clerkUserId?: string;\n authProvider?: string;\n firstName?: string;\n lastName?: string;\n displayName?: string;\n avatarUrl?: string;\n phoneNumber?: string;\n isActive?: boolean;\n isVerified?: boolean;\n lastLoginAt?: Date;\n}\n\n/**\n * DTO for updating B2B users.\n * @interface UpdateBackofficeUserData\n */\nexport interface UpdateBackofficeUserData {\n email?: string;\n passwordHash?: string;\n clerkUserId?: string;\n authProvider?: string;\n firstName?: string;\n lastName?: string;\n displayName?: string;\n avatarUrl?: string;\n phoneNumber?: string;\n isActive?: boolean;\n isVerified?: boolean;\n isSuspended?: boolean;\n suspensionReason?: string;\n suspendedAt?: Date;\n lastLoginAt?: Date;\n}\n\n/**\n * DTO for creating sessions.\n * @interface CreateSessionData\n */\nexport interface CreateSessionData {\n userId: string;\n provider: string;\n providerSessionId?: string;\n expiresAt: Date;\n ipAddress?: string;\n userAgent?: string;\n metadata?: Record<string, unknown>;\n}\n\n/**\n * DTO for creating connected accounts.\n * @interface CreateConnectedAccountData\n */\nexport interface CreateConnectedAccountData {\n userId: string;\n providerType: string;\n provider: string;\n providerAccountId: string;\n providerEmail?: string;\n providerUsername?: string;\n providerDisplayName?: string;\n providerAvatarUrl?: string;\n providerProfileUrl?: string;\n providerMetadata?: Record<string, unknown>;\n walletAddress?: string;\n chainId?: string;\n accessTokenEncrypted?: string;\n refreshTokenEncrypted?: string;\n tokenExpiresAt?: Date;\n tokenScope?: string;\n isPrimary?: boolean;\n isVerified?: boolean;\n isActive?: boolean;\n linkedIpAddress?: string;\n linkedUserAgent?: string;\n}\n\n/**\n * DTO for updating connected accounts.\n * @interface UpdateConnectedAccountData\n */\nexport interface UpdateConnectedAccountData {\n providerEmail?: string;\n providerUsername?: string;\n providerDisplayName?: string;\n providerAvatarUrl?: string;\n providerProfileUrl?: string;\n providerMetadata?: Record<string, unknown>;\n accessTokenEncrypted?: string;\n refreshTokenEncrypted?: string;\n tokenExpiresAt?: Date;\n tokenScope?: string;\n isPrimary?: boolean;\n isVerified?: boolean;\n isActive?: boolean;\n lastUsedAt?: Date;\n lastUsedIpAddress?: string;\n}\n\n/**\n * Enumeration of specific authentication error codes.\n * Using const assertions allows for type-safe lookups.\n */\nexport const AUTH_ERROR_CODES = {\n INVALID_CREDENTIALS: 'AUTH_INVALID_CREDENTIALS',\n TOKEN_EXPIRED: 'AUTH_TOKEN_EXPIRED',\n TOKEN_INVALID: 'AUTH_TOKEN_INVALID',\n TOKEN_REVOKED: 'AUTH_TOKEN_REVOKED',\n SESSION_EXPIRED: 'AUTH_SESSION_EXPIRED',\n MFA_REQUIRED: 'AUTH_MFA_REQUIRED',\n MFA_INVALID: 'AUTH_MFA_INVALID',\n INSUFFICIENT_PERMISSIONS: 'AUTH_INSUFFICIENT_PERMISSIONS',\n ROLE_REQUIRED: 'AUTH_ROLE_REQUIRED',\n WALLET_SIGNATURE_INVALID: 'AUTH_WALLET_SIGNATURE_INVALID',\n NONCE_EXPIRED: 'AUTH_NONCE_EXPIRED',\n NONCE_ALREADY_USED: 'AUTH_NONCE_ALREADY_USED',\n ACCOUNT_LOCKED: 'AUTH_ACCOUNT_LOCKED',\n ACCOUNT_SUSPENDED: 'AUTH_ACCOUNT_SUSPENDED',\n} as const;\n\n/**\n * Type for possible values of AUTH_ERROR_CODES.\n * This allows you to use any of the values from the AUTH_ERROR_CODES object.\n */\nexport type AuthErrorCodeValue = (typeof AUTH_ERROR_CODES)[keyof typeof AUTH_ERROR_CODES];\n\n/**\n * Options for constructing an AuthError.\n * This interface defines the optional properties you can pass\n * when creating a new AuthError instance.\n */\nexport interface AuthErrorOptions {\n /** The original error that caused this error */\n cause?: Error;\n /** Optional context providing extra error details */\n context?: BaseErrorContext;\n /** Additional metadata for the error (for debugging, logging) */\n metadata?: Record<string, unknown>;\n /** A specific correlation ID to use for this error instance */\n correlationId?: string;\n /** Override the default HTTP status code from the definition */\n statusCode?: number;\n\n // === Internationalization & Message Details ===\n\n /** The locale for the error message (e.g., 'en-US'). Defaults to a system-wide locale. */\n locale?: string;\n /** Parameters for string interpolation in the final error message. */\n params?: Record<string, string | number>;\n /** Additional structured details about the error, not for end-user display. */\n details?: Record<string, unknown>;\n}\n\n/**\n * Detailed definitions for each authentication error.\n * This object provides default metadata for each error code, including\n * the HTTP status code, a default message, and other useful properties.\n */\n\n/**\n * Type for a single error definition object.\n */\nexport type AuthErrorDefinition = (typeof AUTH_ERROR_DEFINITIONS)[AuthErrorCodeValue];\n\n/**\n * @fileoverview Authentication error codes for @plyaz/auth\n * @module @plyaz/auth/constants/auth-error-codes\n * \n * @description\n * Standardized error codes for authentication system failures.\n * These codes provide consistent error identification across the entire\n * auth system, enabling proper error handling, logging, and user feedback.\n * Used by error classes, services, and frontend components.\n * \n * @example\n * ```typescript\n * import { AUTH_ERROR_CODES } from '@plyaz/auth';\n * \n * throw new InvalidCredentialsError(AUTH_ERROR_CODES.INVALID_CREDENTIALS);\n * \n * if (error.code === AUTH_ERROR_CODES.TOKEN_EXPIRED) {\n * // Handle token expiration\n * }\n * ```\n */\n\n/**\n * Authentication error codes\n * Standardized error identifiers for consistent error handling\n */\n\n/**\n * Type for authentication error codes\n */\nexport type AuthErrorCode = typeof AUTH_ERROR_CODES[keyof typeof AUTH_ERROR_CODES];\n\n/**\n * Error code to HTTP status mapping\n * Maps error codes to appropriate HTTP status codes\n */\nexport const ERROR_CODE_TO_HTTP_STATUS: Record<AuthErrorCode, number> = {\n [AUTH_ERROR_CODES.INVALID_CREDENTIALS]: 401,\n [AUTH_ERROR_CODES.TOKEN_EXPIRED]: 401,\n [AUTH_ERROR_CODES.TOKEN_INVALID]: 401,\n [AUTH_ERROR_CODES.TOKEN_REVOKED]: 401,\n [AUTH_ERROR_CODES.SESSION_EXPIRED]: 401,\n [AUTH_ERROR_CODES.MFA_REQUIRED]: 401,\n [AUTH_ERROR_CODES.MFA_INVALID]: 401,\n [AUTH_ERROR_CODES.INSUFFICIENT_PERMISSIONS]: 403,\n [AUTH_ERROR_CODES.ROLE_REQUIRED]: 403,\n [AUTH_ERROR_CODES.WALLET_SIGNATURE_INVALID]: 401,\n [AUTH_ERROR_CODES.NONCE_EXPIRED]: 401,\n [AUTH_ERROR_CODES.NONCE_ALREADY_USED]: 401,\n [AUTH_ERROR_CODES.ACCOUNT_LOCKED]: 423,\n [AUTH_ERROR_CODES.ACCOUNT_SUSPENDED]: 423,\n\n};\n\n/**\n * Error code descriptions for logging and debugging\n */\nexport const ERROR_CODE_DESCRIPTIONS: Record<AuthErrorCode, string> = {\n [AUTH_ERROR_CODES.INVALID_CREDENTIALS]: 'errors.auth.invalid_credentials',\n [AUTH_ERROR_CODES.TOKEN_EXPIRED]: 'errors.auth.token_expired',\n [AUTH_ERROR_CODES.TOKEN_INVALID]: 'errors.auth.token_invalid',\n [AUTH_ERROR_CODES.TOKEN_REVOKED]: 'errors.auth.token_revoked',\n [AUTH_ERROR_CODES.SESSION_EXPIRED]: 'errors.auth.session_expired',\n [AUTH_ERROR_CODES.MFA_REQUIRED]: 'errors.auth.mfa_required',\n [AUTH_ERROR_CODES.MFA_INVALID]: 'errors.auth.mfa_invalid',\n [AUTH_ERROR_CODES.INSUFFICIENT_PERMISSIONS]: 'errors.auth.insufficient_permissions',\n [AUTH_ERROR_CODES.ROLE_REQUIRED]: 'errors.auth.role_required',\n [AUTH_ERROR_CODES.WALLET_SIGNATURE_INVALID]: 'errors.auth.wallet_signature_invalid',\n [AUTH_ERROR_CODES.NONCE_EXPIRED]: 'errors.auth.nonce_expired',\n [AUTH_ERROR_CODES.NONCE_ALREADY_USED]: 'errors.auth.nonce_already_used',\n [AUTH_ERROR_CODES.ACCOUNT_LOCKED]: 'errors.auth.account_locked',\n [AUTH_ERROR_CODES.ACCOUNT_SUSPENDED]: 'errors.auth.account_suspended',\n};","/**\n * @fileoverview Authentication event constants for @plyaz/auth\n * @module @plyaz/auth/constants/auth-events\n * \n * @description\n * Defines standardized event names for authentication system events.\n * These events are published via @plyaz/events for audit logging and \n * cross-component communication. Used by repositories, services, and \n * frontend stores for reactive state management.\n * \n * @example\n * ```typescript\n * import { AUTH_EVENTS } from '@plyaz/auth';\n * \n * // Publish event\n * eventManager.publish(AUTH_EVENTS.USER_AUTHENTICATED, { userId, provider });\n * \n * // Subscribe to event\n * eventManager.subscribe(AUTH_EVENTS.SESSION_EXPIRED, handleSessionExpiry);\n * ```\n */\n\n/**\n * Authentication event type constants\n * Used for event publishing and subscription throughout the auth system\n */\nexport const AUTH_EVENTS = {\n /** User successfully authenticated */\n USER_AUTHENTICATED: 'auth.user.authenticated',\n \n /** User signed up (new account created) */\n USER_SIGNED_UP: 'auth.user.signed_up',\n \n /** User logged out */\n USER_LOGGED_OUT: 'auth.user.logged_out',\n \n /** Authentication attempt failed */\n AUTHENTICATION_FAILED: 'auth.authentication.failed',\n \n /** Session created */\n SESSION_CREATED: 'auth.session.created',\n \n /** Session expired */\n SESSION_EXPIRED: 'auth.session.expired',\n \n /** Session refreshed */\n SESSION_REFRESHED: 'auth.session.refreshed',\n \n /** Session invalidated (logout) */\n SESSION_INVALIDATED: 'auth.session.invalidated',\n \n /** Account linked to user */\n ACCOUNT_LINKED: 'auth.account.linked',\n \n /** Account unlinked from user */\n ACCOUNT_UNLINKED: 'auth.account.unlinked',\n \n /** Role assigned to user */\n ROLE_ASSIGNED: 'auth.rbac.role_assigned',\n \n /** Role revoked from user */\n ROLE_REVOKED: 'auth.rbac.role_revoked',\n \n /** Suspicious login attempt detected */\n SUSPICIOUS_LOGIN_ATTEMPT: 'auth.security.suspicious_login',\n \n /** Password changed */\n PASSWORD_CHANGED: 'auth.password.changed',\n \n /** Password reset requested */\n PASSWORD_RESET_REQUESTED: 'auth.password.reset_requested'\n} as const;\n\n/**\n * Type for authentication event names\n */\nexport type AuthEventTypes = typeof AUTH_EVENTS[keyof typeof AUTH_EVENTS];\n\n/**\n * Authentication event payload interfaces\n */\nexport interface AuthEventPayload {\n /** Base event data */\n timestamp: Date;\n /** IP address of the request */\n ipAddress?: string;\n /** User agent string */\n userAgent?: string;\n /** Additional metadata */\n metadata?: Record<string, unknown>;\n}\n\nexport interface UserAuthenticatedPayload extends AuthEventPayload {\n userId: string;\n provider: string;\n sessionId: string;\n}\n\nexport interface UserSignedUpPayload extends AuthEventPayload {\n userId: string;\n provider: string;\n email: string;\n}\n\nexport interface UserLoggedOutPayload extends AuthEventPayload {\n userId: string;\n sessionId: string;\n}\n\nexport interface AuthenticationFailedPayload extends AuthEventPayload {\n provider: string;\n reason: string;\n email?: string;\n}\n\nexport interface SessionEventPayload extends AuthEventPayload {\n userId: string;\n sessionId: string;\n}\n\nexport interface AccountLinkedPayload extends AuthEventPayload {\n userId: string;\n provider: string;\n accountId: string;\n}\n\nexport interface RoleEventPayload extends AuthEventPayload {\n userId: string;\n role: string;\n assignedBy?: string;\n}","/**\n * Core Module System Types\n *\n * Framework-agnostic module interface for @plyaz/core.\n * Modules implement this contract to integrate with Core.\n */\n\nimport type { DatabaseServiceInterface } from '../db/databaseService';\nimport type { HttpMethod } from '../api/config/types';\nimport type {\n Type,\n DynamicModule,\n ForwardReference,\n InjectionToken,\n OptionalFactoryDependency,\n ModuleMetadata,\n} from '@nestjs/common';\n\n// Re-export HttpMethod for convenience\nexport type { HttpMethod };\n\n/**\n * Core services available to modules\n */\nexport interface CoreServices {\n db: DatabaseServiceInterface;\n // api: ApiClientService;\n // cache: CacheService;\n // logger: LoggerService;\n env: Record<string, string | undefined>;\n}\n\n/**\n * Route handler context\n */\nexport interface CoreRouteContext {\n params: Record<string, string>;\n query: Record<string, string | string[]>;\n body: unknown;\n headers: Record<string, string>;\n services: CoreServices;\n}\n\n/**\n * Route handler function\n */\nexport type CoreRouteHandler = (ctx: CoreRouteContext) => Promise<{\n status?: number;\n body?: unknown;\n headers?: Record<string, string>;\n}>;\n\n/**\n * Route definition - framework agnostic\n */\nexport interface CoreRouteDefinition {\n method: HttpMethod;\n path: string;\n handler: CoreRouteHandler;\n middleware?: string[];\n description?: string;\n}\n\n/**\n * Module configuration schema (optional)\n */\nexport interface CoreModuleConfigSchema<T = unknown> {\n parse: (config: unknown) => T;\n safeParse: (config: unknown) => { success: boolean; data?: T; error?: Error };\n}\n\n/**\n * Service factory for creating module services\n */\nexport type CoreServiceFactory<T = unknown> = (\n services: CoreServices,\n config?: unknown\n) => T | Promise<T>;\n\n/**\n * Module lifecycle hooks\n */\nexport interface CoreModuleLifecycle {\n /**\n * Called when module is initialized\n * Use for setup, connections, etc.\n */\n onInit?(services: CoreServices): Promise<void>;\n\n /**\n * Called when module is being destroyed\n * Use for cleanup, closing connections, etc.\n */\n onDestroy?(): Promise<void>;\n\n /**\n * Called when Core is fully initialized (all modules loaded)\n */\n onReady?(services: CoreServices): Promise<void>;\n}\n\n/**\n * Core module definition - framework agnostic contract\n *\n * @example\n * ```typescript\n * const FeatureFlagModule: CoreModuleDefinition = {\n * name: 'featureFlags',\n * version: '1.0.0',\n * dependencies: ['db'],\n *\n * routes: [\n * { method: 'GET', path: '/flags', handler: listFlags },\n * { method: 'GET', path: '/flags/:key', handler: getFlag },\n * ],\n *\n * services: {\n * featureFlagService: (core) => new FeatureFlagService(core.db),\n * },\n *\n * async onInit(services) {\n * // Initialize feature flag provider\n * },\n * };\n * ```\n */\nexport interface CoreModuleDefinition<TConfig = unknown> extends CoreModuleLifecycle {\n /**\n * Unique module name (used for registration and access)\n */\n name: string;\n\n /**\n * Module version\n */\n version?: string;\n\n /**\n * Core services this module depends on\n */\n dependencies?: ('db' | 'api' | 'cache' | 'logger')[];\n\n /**\n * HTTP routes provided by this module\n */\n routes?: CoreRouteDefinition[];\n\n /**\n * Services exposed by this module\n */\n services?: Record<string, CoreServiceFactory>;\n\n /**\n * Configuration schema for validation\n */\n configSchema?: CoreModuleConfigSchema<TConfig>;\n\n /**\n * Default configuration\n */\n defaultConfig?: Partial<TConfig>;\n}\n\n/**\n * Registered module instance (after initialization)\n */\nexport interface CoreRegisteredModule<TConfig = unknown> {\n definition: CoreModuleDefinition<TConfig>;\n config: TConfig;\n services: Record<string, unknown>;\n initialized: boolean;\n}\n\n/**\n * Module with configuration (result of .forRoot())\n */\nexport interface CoreConfiguredModule<TConfig = unknown> {\n definition: CoreModuleDefinition<TConfig>;\n config: TConfig;\n}\n\n/**\n * Helper to create a module definition with forRoot pattern\n */\nexport interface CoreModuleFactory<TConfig = unknown> {\n /**\n * Module definition\n */\n definition: CoreModuleDefinition<TConfig>;\n\n /**\n * Configure module with options\n */\n forRoot(config?: Partial<TConfig>): CoreConfiguredModule<TConfig>;\n\n /**\n * Use module with default config\n */\n default: CoreConfiguredModule<TConfig>;\n}\n\n/**\n * Supported HTTP frameworks for server mode\n */\nexport type CoreFrameworkType =\n | 'node' // Plain Node.js http module\n | 'express' // Express.js\n | 'nestjs' // NestJS\n | 'nextjs'; // Next.js API routes (SSR/Edge)\n\n/**\n * Server configuration\n */\nexport interface CoreServerConfig {\n port: number;\n host?: string;\n framework?: CoreFrameworkType;\n prefix?: string; // API prefix like '/api/v1'\n cors?: {\n enabled: boolean;\n origins?: string[];\n };\n}\n\n/**\n * Framework adapter interface\n */\nexport interface CoreFrameworkAdapter {\n /**\n * Framework name\n */\n name: CoreFrameworkType;\n\n /**\n * Register routes from modules\n */\n registerRoutes(\n routes: Array<{ moduleName: string; routes: CoreRouteDefinition[] }>,\n services: CoreServices\n ): void | Promise<void>;\n\n /**\n * Start the server\n */\n start(config: CoreServerConfig): Promise<void>;\n\n /**\n * Stop the server\n */\n stop(): Promise<void>;\n\n /**\n * Get the underlying framework instance (express app, fastify instance, etc.)\n */\n getInstance(): unknown;\n}\n\n/**\n * Adapter factory function\n */\nexport type CoreAdapterFactory = () => CoreFrameworkAdapter;\n\n/**\n * Runtime environment detection\n */\nexport type CoreRuntimeEnvironment =\n | 'node' // Plain Node.js\n | 'nestjs' // NestJS backend\n | 'express' // Express.js\n | 'nuxt' // Nuxt.js (Vue SSR)\n | 'nextjs' // Next.js (React SSR)\n | 'browser' // Browser/SPA\n | 'edge' // Edge runtime (Cloudflare, Vercel Edge)\n | 'deno' // Deno runtime\n | 'bun' // Bun runtime\n | 'unknown';\n\n/**\n * Runtime context type\n */\nexport type CoreRuntimeContext = 'backend' | 'frontend' | 'universal';\n\n/**\n * Backend runtimes - always server-side\n */\nexport const BACKEND_RUNTIMES: readonly CoreRuntimeEnvironment[] = [\n 'node',\n 'nestjs',\n 'express',\n 'deno',\n 'bun',\n] as const;\n\n/**\n * Frontend runtimes - always client-side\n */\nexport const FRONTEND_RUNTIMES: readonly CoreRuntimeEnvironment[] = ['browser'] as const;\n\n/**\n * Universal runtimes - can be either (SSR)\n */\nexport const UNIVERSAL_RUNTIMES: readonly CoreRuntimeEnvironment[] = [\n 'nextjs',\n 'nuxt',\n 'edge',\n] as const;\n\n// ============================================================================\n// Next.js Handler Types\n// ============================================================================\n\n/**\n * Handler context for Next.js API routes\n * Provides services and parsed request data\n */\nexport interface CoreNextJsHandlerContext {\n /** Database service */\n db: unknown; // DbService - imported dynamically to avoid circular deps\n /** URL parameters (from dynamic routes like [id]) */\n params: Record<string, string>;\n /** Query string parameters */\n query: Record<string, string | string[]>;\n /** Request body (parsed JSON) */\n body: unknown;\n /** Request headers */\n headers: Record<string, string>;\n /** Original Request object */\n request: Request;\n}\n\n/**\n * Handler return type for Next.js API routes\n */\nexport interface CoreNextJsHandlerResult {\n /** Response body (will be JSON serialized) */\n [key: string]: unknown;\n /** HTTP status code (default: 200) */\n status?: number;\n /** Response headers */\n headers?: Record<string, string>;\n}\n\n/**\n * Handler function type for Next.js API routes\n */\nexport type CoreNextJsHandler = (\n ctx: CoreNextJsHandlerContext\n) => Promise<CoreNextJsHandlerResult | Response>;\n\n/**\n * Options for Next.js createHandler\n */\nexport interface CoreNextJsHandlerOptions {\n /** Core initialization options (used on first request) */\n coreOptions?: Record<string, unknown>;\n}\n\n// ============================================================================\n// Core Initialization Types\n// ============================================================================\n\n/**\n * Core environment variables\n */\nexport interface CoreEnvVars {\n DATABASE_URL?: string;\n SUPABASE_URL?: string;\n SUPABASE_SERVICE_ROLE_KEY?: string;\n SUPABASE_ANON_PUBLIC_KEY?: string;\n ENCRYPTION_KEY?: string;\n API_BASE_URL?: string;\n API_TIMEOUT?: string;\n NODE_ENV?: string;\n [key: string]: string | undefined;\n}\n\n/**\n * Application environment type\n */\nexport type CoreAppEnvironment = 'development' | 'staging' | 'production' | 'test';\n\n/**\n * API client initialization options\n * Extends ApiClientOptions with Core-specific settings\n */\nexport interface CoreApiInitOptions {\n /** Environment for API client configuration */\n env?: CoreAppEnvironment;\n /** Set this client as the default */\n setAsDefault?: boolean;\n /** Base URL for API requests */\n baseURL?: string;\n /** Request timeout in milliseconds */\n timeout?: number;\n /** Additional options passed to ApiClientService */\n [key: string]: unknown;\n}\n\n/**\n * Core initialization options\n */\nexport interface CoreInitOptions<\n TDbConfig = unknown,\n TApiConfig = CoreApiInitOptions,\n TCacheConfig = unknown,\n TStorageConfig = unknown,\n TNotificationsConfig = unknown,\n> {\n /** Path to .env file */\n envPath?: string;\n /** Global application environment */\n environment?: CoreAppEnvironment;\n /** Application context (webapp, backoffice, mobile, etc.) */\n appContext?: CoreAppContext;\n /** Explicit environment variables */\n env?: CoreEnvVars;\n /** Database configuration */\n db?: TDbConfig;\n /** API client configuration */\n api?: TApiConfig;\n /** Cache configuration */\n cache?: TCacheConfig;\n /** Storage configuration (backend only) */\n storage?: TStorageConfig;\n /** Notifications configuration (backend only) */\n notifications?: TNotificationsConfig;\n /** Skip database initialization */\n skipDb?: boolean;\n /** Skip API client initialization */\n skipApi?: boolean;\n /** Skip cache initialization */\n skipCache?: boolean;\n /** Skip storage initialization */\n skipStorage?: boolean;\n /** Skip notifications initialization */\n skipNotifications?: boolean;\n /** Enable verbose logging */\n verbose?: boolean;\n}\n\n/**\n * Core initialization result\n */\nexport interface CoreServicesResult<\n TDb = unknown,\n TApi = unknown,\n TCache = unknown,\n TStorage = unknown,\n TNotifications = unknown,\n> {\n db: TDb | null;\n api: TApi | null;\n cache: TCache | null;\n storage: TStorage | null;\n notifications: TNotifications | null;\n env: CoreEnvVars;\n runtime: CoreRuntimeEnvironment;\n appContext: CoreAppContext;\n}\n\n// ============================================================================\n// NestJS Module Types\n// ============================================================================\n\n/**\n * Core module options for NestJS\n */\nexport interface CoreNestJsModuleOptions {\n /** Path to .env file */\n envPath?: string;\n /** Database configuration */\n db?: Record<string, unknown>;\n /** Whether to make Core services globally available */\n isGlobal?: boolean;\n}\n\n/**\n * Async options for NestJS CoreModule (adapters/nestjs.ts pattern)\n * Uses NestJS-specific types for proper DI integration.\n */\nexport interface CoreNestJsModuleAsyncOptions {\n /** Modules to import for dependency resolution */\n imports?: Array<Type<unknown> | DynamicModule | Promise<DynamicModule> | ForwardReference>;\n /** Tokens to inject into the factory */\n inject?: Array<InjectionToken | OptionalFactoryDependency>;\n /** Factory function to create module options */\n useFactory: (...args: unknown[]) => CoreNestJsModuleOptions | Promise<CoreNestJsModuleOptions>;\n /** Whether to make Core services globally available */\n isGlobal?: boolean;\n}\n\n/**\n * Async options for NestJS CoreModule (init/nestjs pattern)\n * Extends ModuleMetadata for full NestJS integration.\n */\nexport interface CoreNestJsCoreModuleAsyncOptions extends Pick<ModuleMetadata, 'imports'> {\n /** Factory function to create init options */\n useFactory: (...args: unknown[]) => CoreInitOptions | Promise<CoreInitOptions>;\n /** Tokens to inject into the factory */\n inject?: Array<Type<unknown> | string | symbol>;\n}\n\n// ============================================================================\n// App Context Types\n// ============================================================================\n\n/**\n * Application context type\n *\n * Identifies which type of application is running.\n * Different apps may have different feature flags, API endpoints, or UI behaviors.\n */\nexport type CoreAppContext =\n | 'webapp' // Main web application\n | 'backoffice' // Admin/back-office portal\n | 'mobile' // Mobile apps (React Native, Capacitor, etc.)\n | 'microapp' // Embedded micro frontends\n | 'cli'; // CLI tools\n\n/**\n * App context constants for type-safe comparisons\n */\nexport const APP_CONTEXTS: readonly CoreAppContext[] = [\n 'webapp',\n 'backoffice',\n 'mobile',\n 'microapp',\n 'cli',\n] as const;\n\n// ============================================================================\n// Domain Service Types\n// ============================================================================\n\n/**\n * Service runtime compatibility\n *\n * Declares which runtimes a service can execute on.\n * Services can be restricted to specific runtimes for security\n * (e.g., backend-only services should never be bundled for frontend).\n */\nexport type CoreServiceRuntime =\n | 'frontend' // Browser, React, Vue, etc. (no DB access)\n | 'backend' // Node.js, NestJS, Express (has DB access)\n | 'universal'; // Works everywhere (SSR, Edge)\n\n/**\n * Domain service configuration\n *\n * Declares service metadata including runtime compatibility\n * and feature flag requirements.\n *\n * @example\n * ```typescript\n * class CampaignDomainService {\n * static readonly config: CoreDomainServiceConfig = {\n * name: 'CampaignDomainService',\n * runtimes: ['frontend', 'backend'],\n * requiresFeatureFlag: 'campaigns:enabled',\n * };\n * }\n * ```\n */\nexport interface CoreDomainServiceConfig {\n /** Service name for logging and debugging */\n name: string;\n\n /** Runtimes this service can run on */\n runtimes: readonly CoreServiceRuntime[];\n\n /** Feature flag required to use this service (optional) */\n requiresFeatureFlag?: string;\n\n /** App contexts this service is available in (optional, all if not specified) */\n appContexts?: readonly CoreAppContext[];\n}\n","export enum TABLES {\n User = 'users',\n}\n","/**\n * Sort direction for database queries\n */\nexport enum SORT_DIRECTION {\n Asc = 'asc',\n Desc = 'desc',\n}\n\n/**\n * Feature flag database table names enumeration\n */\nexport enum FEATURE_FLAG_TABLE {\n FeatureFlags = 'feature_flags',\n FeatureFlagRules = 'feature_flag_rules',\n FeatureFlagEvaluations = 'feature_flag_evaluations',\n FeatureFlagOverrides = 'feature_flag_overrides',\n}\n\n/**\n * Database field names for feature flags table\n */\nexport enum FEATURE_FLAG_FIELD {\n Key = 'key',\n Name = 'name',\n Value = 'value',\n Type = 'type',\n IsEnabled = 'is_enabled',\n Environments = 'environments',\n Description = 'description',\n CreatedAt = 'created_at',\n UpdatedAt = 'updated_at',\n}\n\n/**\n * Database field names for feature flag rules table\n */\nexport enum FEATURE_FLAG_RULE_FIELD {\n Id = 'id',\n FlagKey = 'flag_key',\n Name = 'name',\n Conditions = 'conditions',\n Value = 'value',\n Priority = 'priority',\n IsEnabled = 'is_enabled',\n}\n\n/**\n * Feature Flag Provider Types\n */\nexport enum FEATURE_FLAG_PROVIDERS {\n MEMORY = 'memory',\n FILE = 'file',\n REDIS = 'redis',\n API = 'api',\n DATABASE = 'database',\n}\n\n/**\n * Node Environment Types\n */\nexport enum NODE_ENVIRONMENTS {\n DEVELOPMENT = 'development',\n PRODUCTION = 'production',\n STAGING = 'staging',\n TEST = 'test',\n}\n\n/**\n * Database Field Names\n */\nexport enum DATABASE_FIELDS {\n Key = 'key',\n FlagKey = 'flag_key',\n UserId = 'user_id',\n IsEnabled = 'is_enabled',\n CreatedAt = 'created_at',\n UpdatedAt = 'updated_at',\n ExpiresAt = 'expires_at',\n EvaluatedAt = 'evaluated_at',\n}\n\n/**\n * System User Constants\n */\nexport enum SYSTEM_USERS {\n SYSTEM = 'system',\n}\n\n/**\n * Evaluation Reasons\n * Must match database enum: evaluation_reason\n * Used when logging feature flag evaluations to audit table\n */\nexport enum EVALUATION_REASONS {\n Default = 'default', // Default flag value used\n RuleMatch = 'rule_match', // Matched a targeting rule\n Rollout = 'rollout', // Matched rollout percentage\n Override = 'override', // User-specific override applied\n Disabled = 'disabled', // Flag is disabled\n}\n\n/**\n * Feature Flag Types\n */\nexport enum FEATURE_FLAG_TYPES {\n BOOLEAN = 'boolean',\n STRING = 'string',\n NUMBER = 'number',\n OBJECT = 'object',\n}\n","/**\n * Default Configuration Values\n */\nexport const FEATURE_FLAG_DEFAULTS = {\n CACHE_TTL: 300,\n REFRESH_INTERVAL: 0,\n POOL_SIZE: 10,\n TIMEOUT: 30000,\n TABLE_NAME: 'feature_flags',\n} as const;\n\n/**\n * Metadata keys used for attaching feature flag information\n * to route handlers via decorators.\n */\nexport const FEATURE_FLAG_METADATA = {\n FLAG_CHECK: 'plyaz:feature_flag_check', // Single feature flag check\n RESOLVE_FLAGS: 'plyaz:resolve_feature_flags', // Multiple flags resolved at once\n};\n","/**\n * Core Event Enums and Constants\n *\n * Type-safe event definitions for the CoreEventManager.\n * All event types follow the pattern: SCOPE:ACTION\n *\n * @example\n * ```typescript\n * import { CoreEventType, CORE_EVENTS } from '@plyaz/types/core';\n *\n * // Use constants for type-safe event emission\n * CoreEventManager.emit(CORE_EVENTS.ENTITY.CREATED, payload);\n *\n * // Subscribe with typed payloads\n * CoreEventManager.on<EntityCreatedPayload>(CORE_EVENTS.ENTITY.CREATED, handler);\n * ```\n */\n\n// ─────────────────────────────────────────────────────────────────\n// Event Scopes\n// ─────────────────────────────────────────────────────────────────\n\n/**\n * Event scope categories\n */\nexport const CoreEventScope = {\n SYSTEM: 'system',\n ENTITY: 'entity',\n VALIDATION: 'validation',\n SANITIZATION: 'sanitization',\n API: 'api',\n CACHE: 'cache',\n AUTH: 'auth',\n DATABASE: 'database',\n FEATURE_FLAG: 'featureFlag',\n STORE: 'store',\n STORAGE: 'storage',\n NOTIFICATION: 'notification',\n} as const;\n\nexport type CoreEventScopeType = (typeof CoreEventScope)[keyof typeof CoreEventScope];\n\n// ─────────────────────────────────────────────────────────────────\n// Event Actions per Scope\n// ─────────────────────────────────────────────────────────────────\n\n/**\n * System event actions\n */\nexport const SystemEventAction = {\n INITIALIZED: 'initialized',\n READY: 'ready',\n SHUTDOWN: 'shutdown',\n ERROR: 'error',\n WARNING: 'warning',\n} as const;\n\n/**\n * Entity CRUD event actions\n */\nexport const EntityEventAction = {\n // Lifecycle (before API call)\n CREATING: 'creating',\n UPDATING: 'updating',\n PATCHING: 'patching',\n DELETING: 'deleting',\n // Completed (after API call)\n CREATED: 'created',\n UPDATED: 'updated',\n PATCHED: 'patched',\n DELETED: 'deleted',\n // Error/Complete\n ERROR: 'error',\n COMPLETE: 'complete',\n // Bulk operations\n BULK_CREATED: 'bulkCreated',\n BULK_DELETED: 'bulkDeleted',\n} as const;\n\n/**\n * Validation event actions\n */\nexport const ValidationEventAction = {\n STARTED: 'started',\n SUCCESS: 'success',\n FAILED: 'failed',\n} as const;\n\n/**\n * Sanitization event actions\n */\nexport const SanitizationEventAction = {\n STARTED: 'started',\n SUCCESS: 'success',\n FAILED: 'failed',\n} as const;\n\n/**\n * API event actions\n */\nexport const ApiEventAction = {\n REQUEST_START: 'requestStart',\n REQUEST_SUCCESS: 'requestSuccess',\n REQUEST_ERROR: 'requestError',\n RETRY: 'retry',\n TIMEOUT: 'timeout',\n} as const;\n\n/**\n * Cache event actions\n */\nexport const CacheEventAction = {\n HIT: 'hit',\n MISS: 'miss',\n SET: 'set',\n DELETE: 'delete',\n CLEAR: 'clear',\n EXPIRED: 'expired',\n} as const;\n\n/**\n * Auth event actions\n */\nexport const AuthEventAction = {\n LOGIN: 'login',\n LOGOUT: 'logout',\n TOKEN_REFRESH: 'tokenRefresh',\n SESSION_EXPIRED: 'sessionExpired',\n UNAUTHORIZED: 'unauthorized',\n} as const;\n\n/**\n * Database event actions\n */\nexport const DatabaseEventAction = {\n CONNECTED: 'connected',\n DISCONNECTED: 'disconnected',\n QUERY: 'query',\n ERROR: 'error',\n TRANSACTION_START: 'transactionStart',\n TRANSACTION_COMMIT: 'transactionCommit',\n TRANSACTION_ROLLBACK: 'transactionRollback',\n} as const;\n\n/**\n * Feature flag event actions\n */\nexport const FeatureFlagEventAction = {\n CHANGED: 'changed',\n EVALUATED: 'evaluated',\n REFRESHED: 'refreshed',\n} as const;\n\n/**\n * Store event actions\n */\nexport const StoreEventAction = {\n UPDATED: 'updated',\n RESET: 'reset',\n HYDRATED: 'hydrated',\n} as const;\n\n/**\n * Storage event actions (file uploads, downloads, deletions)\n */\nexport const StorageEventAction = {\n UPLOADED: 'uploaded',\n DOWNLOADED: 'downloaded',\n DELETED: 'deleted',\n ERROR: 'error',\n HEALTH_CHECK: 'healthCheck',\n} as const;\n\n/**\n * Notification event actions (email, sms, push)\n */\nexport const NotificationEventAction = {\n SENT: 'sent',\n FAILED: 'failed',\n DELIVERED: 'delivered',\n OPENED: 'opened',\n CLICKED: 'clicked',\n ERROR: 'error',\n HEALTH_CHECK: 'healthCheck',\n} as const;\n\n// ─────────────────────────────────────────────────────────────────\n// Full Event Types (scope:action constants)\n// ─────────────────────────────────────────────────────────────────\n\n/**\n * All core event type constants\n *\n * @example\n * ```typescript\n * CoreEventManager.emit(CORE_EVENTS.ENTITY.CREATED, { entity, storeState });\n * CoreEventManager.on(CORE_EVENTS.API.REQUEST_ERROR, handleApiError);\n * ```\n */\nexport const CORE_EVENTS = {\n SYSTEM: {\n INITIALIZED: `${CoreEventScope.SYSTEM}:${SystemEventAction.INITIALIZED}`,\n READY: `${CoreEventScope.SYSTEM}:${SystemEventAction.READY}`,\n SHUTDOWN: `${CoreEventScope.SYSTEM}:${SystemEventAction.SHUTDOWN}`,\n ERROR: `${CoreEventScope.SYSTEM}:${SystemEventAction.ERROR}`,\n WARNING: `${CoreEventScope.SYSTEM}:${SystemEventAction.WARNING}`,\n },\n ENTITY: {\n CREATING: `${CoreEventScope.ENTITY}:${EntityEventAction.CREATING}`,\n UPDATING: `${CoreEventScope.ENTITY}:${EntityEventAction.UPDATING}`,\n PATCHING: `${CoreEventScope.ENTITY}:${EntityEventAction.PATCHING}`,\n DELETING: `${CoreEventScope.ENTITY}:${EntityEventAction.DELETING}`,\n CREATED: `${CoreEventScope.ENTITY}:${EntityEventAction.CREATED}`,\n UPDATED: `${CoreEventScope.ENTITY}:${EntityEventAction.UPDATED}`,\n PATCHED: `${CoreEventScope.ENTITY}:${EntityEventAction.PATCHED}`,\n DELETED: `${CoreEventScope.ENTITY}:${EntityEventAction.DELETED}`,\n ERROR: `${CoreEventScope.ENTITY}:${EntityEventAction.ERROR}`,\n COMPLETE: `${CoreEventScope.ENTITY}:${EntityEventAction.COMPLETE}`,\n BULK_CREATED: `${CoreEventScope.ENTITY}:${EntityEventAction.BULK_CREATED}`,\n BULK_DELETED: `${CoreEventScope.ENTITY}:${EntityEventAction.BULK_DELETED}`,\n },\n VALIDATION: {\n STARTED: `${CoreEventScope.VALIDATION}:${ValidationEventAction.STARTED}`,\n SUCCESS: `${CoreEventScope.VALIDATION}:${ValidationEventAction.SUCCESS}`,\n FAILED: `${CoreEventScope.VALIDATION}:${ValidationEventAction.FAILED}`,\n },\n SANITIZATION: {\n STARTED: `${CoreEventScope.SANITIZATION}:${SanitizationEventAction.STARTED}`,\n SUCCESS: `${CoreEventScope.SANITIZATION}:${SanitizationEventAction.SUCCESS}`,\n FAILED: `${CoreEventScope.SANITIZATION}:${SanitizationEventAction.FAILED}`,\n },\n API: {\n REQUEST_START: `${CoreEventScope.API}:${ApiEventAction.REQUEST_START}`,\n REQUEST_SUCCESS: `${CoreEventScope.API}:${ApiEventAction.REQUEST_SUCCESS}`,\n REQUEST_ERROR: `${CoreEventScope.API}:${ApiEventAction.REQUEST_ERROR}`,\n RETRY: `${CoreEventScope.API}:${ApiEventAction.RETRY}`,\n TIMEOUT: `${CoreEventScope.API}:${ApiEventAction.TIMEOUT}`,\n },\n CACHE: {\n HIT: `${CoreEventScope.CACHE}:${CacheEventAction.HIT}`,\n MISS: `${CoreEventScope.CACHE}:${CacheEventAction.MISS}`,\n SET: `${CoreEventScope.CACHE}:${CacheEventAction.SET}`,\n DELETE: `${CoreEventScope.CACHE}:${CacheEventAction.DELETE}`,\n CLEAR: `${CoreEventScope.CACHE}:${CacheEventAction.CLEAR}`,\n EXPIRED: `${CoreEventScope.CACHE}:${CacheEventAction.EXPIRED}`,\n },\n AUTH: {\n LOGIN: `${CoreEventScope.AUTH}:${AuthEventAction.LOGIN}`,\n LOGOUT: `${CoreEventScope.AUTH}:${AuthEventAction.LOGOUT}`,\n TOKEN_REFRESH: `${CoreEventScope.AUTH}:${AuthEventAction.TOKEN_REFRESH}`,\n SESSION_EXPIRED: `${CoreEventScope.AUTH}:${AuthEventAction.SESSION_EXPIRED}`,\n UNAUTHORIZED: `${CoreEventScope.AUTH}:${AuthEventAction.UNAUTHORIZED}`,\n },\n DATABASE: {\n CONNECTED: `${CoreEventScope.DATABASE}:${DatabaseEventAction.CONNECTED}`,\n DISCONNECTED: `${CoreEventScope.DATABASE}:${DatabaseEventAction.DISCONNECTED}`,\n QUERY: `${CoreEventScope.DATABASE}:${DatabaseEventAction.QUERY}`,\n ERROR: `${CoreEventScope.DATABASE}:${DatabaseEventAction.ERROR}`,\n TRANSACTION_START: `${CoreEventScope.DATABASE}:${DatabaseEventAction.TRANSACTION_START}`,\n TRANSACTION_COMMIT: `${CoreEventScope.DATABASE}:${DatabaseEventAction.TRANSACTION_COMMIT}`,\n TRANSACTION_ROLLBACK: `${CoreEventScope.DATABASE}:${DatabaseEventAction.TRANSACTION_ROLLBACK}`,\n },\n FEATURE_FLAG: {\n CHANGED: `${CoreEventScope.FEATURE_FLAG}:${FeatureFlagEventAction.CHANGED}`,\n EVALUATED: `${CoreEventScope.FEATURE_FLAG}:${FeatureFlagEventAction.EVALUATED}`,\n REFRESHED: `${CoreEventScope.FEATURE_FLAG}:${FeatureFlagEventAction.REFRESHED}`,\n },\n STORE: {\n UPDATED: `${CoreEventScope.STORE}:${StoreEventAction.UPDATED}`,\n RESET: `${CoreEventScope.STORE}:${StoreEventAction.RESET}`,\n HYDRATED: `${CoreEventScope.STORE}:${StoreEventAction.HYDRATED}`,\n },\n STORAGE: {\n UPLOADED: `${CoreEventScope.STORAGE}:${StorageEventAction.UPLOADED}`,\n DOWNLOADED: `${CoreEventScope.STORAGE}:${StorageEventAction.DOWNLOADED}`,\n DELETED: `${CoreEventScope.STORAGE}:${StorageEventAction.DELETED}`,\n ERROR: `${CoreEventScope.STORAGE}:${StorageEventAction.ERROR}`,\n HEALTH_CHECK: `${CoreEventScope.STORAGE}:${StorageEventAction.HEALTH_CHECK}`,\n },\n NOTIFICATION: {\n SENT: `${CoreEventScope.NOTIFICATION}:${NotificationEventAction.SENT}`,\n FAILED: `${CoreEventScope.NOTIFICATION}:${NotificationEventAction.FAILED}`,\n DELIVERED: `${CoreEventScope.NOTIFICATION}:${NotificationEventAction.DELIVERED}`,\n OPENED: `${CoreEventScope.NOTIFICATION}:${NotificationEventAction.OPENED}`,\n CLICKED: `${CoreEventScope.NOTIFICATION}:${NotificationEventAction.CLICKED}`,\n ERROR: `${CoreEventScope.NOTIFICATION}:${NotificationEventAction.ERROR}`,\n HEALTH_CHECK: `${CoreEventScope.NOTIFICATION}:${NotificationEventAction.HEALTH_CHECK}`,\n },\n} as const;\n\n// ─────────────────────────────────────────────────────────────────\n// Event Type Union\n// ─────────────────────────────────────────────────────────────────\n\n/** All system event types */\nexport type SystemEventType = (typeof CORE_EVENTS.SYSTEM)[keyof typeof CORE_EVENTS.SYSTEM];\n\n/** All entity event types */\nexport type EntityEventType = (typeof CORE_EVENTS.ENTITY)[keyof typeof CORE_EVENTS.ENTITY];\n\n/** All validation event types */\nexport type ValidationEventType =\n (typeof CORE_EVENTS.VALIDATION)[keyof typeof CORE_EVENTS.VALIDATION];\n\n/** All sanitization event types */\nexport type SanitizationEventType =\n (typeof CORE_EVENTS.SANITIZATION)[keyof typeof CORE_EVENTS.SANITIZATION];\n\n/** All API event types */\nexport type ApiEventType = (typeof CORE_EVENTS.API)[keyof typeof CORE_EVENTS.API];\n\n/** All cache event types */\nexport type CacheEventType = (typeof CORE_EVENTS.CACHE)[keyof typeof CORE_EVENTS.CACHE];\n\n/** All auth event types */\nexport type AuthEventType = (typeof CORE_EVENTS.AUTH)[keyof typeof CORE_EVENTS.AUTH];\n\n/** All database event types */\nexport type DatabaseEventType = (typeof CORE_EVENTS.DATABASE)[keyof typeof CORE_EVENTS.DATABASE];\n\n/** All feature flag event types */\nexport type FeatureFlagEventType =\n (typeof CORE_EVENTS.FEATURE_FLAG)[keyof typeof CORE_EVENTS.FEATURE_FLAG];\n\n/** All store event types */\nexport type StoreEventType = (typeof CORE_EVENTS.STORE)[keyof typeof CORE_EVENTS.STORE];\n\n/**\n * Union of all core event types\n */\nexport type CoreEventType =\n | SystemEventType\n | EntityEventType\n | ValidationEventType\n | SanitizationEventType\n | ApiEventType\n | CacheEventType\n | AuthEventType\n | DatabaseEventType\n | FeatureFlagEventType\n | StoreEventType;\n","/**\n * Service Keys Constants\n *\n * Centralized service key constants for service registry and dependency injection.\n * Use these constants instead of string literals for type safety and consistency.\n *\n * @example\n * ```typescript\n * import { SERVICE_KEYS } from '@plyaz/types/core/services';\n *\n * class MyService {\n * static readonly serviceKey = SERVICE_KEYS.EXAMPLE;\n * }\n *\n * // Use in service registry\n * const service = ServiceRegistry.get(SERVICE_KEYS.EXAMPLE);\n * ```\n */\n\n/**\n * Keys for all available domain services.\n * These keys are used for service registration and lookup in the ServiceRegistry.\n */\nexport const SERVICE_KEYS = {\n /** Example domain service (backend) */\n EXAMPLE: 'example',\n /** Example domain service (frontend) */\n EXAMPLE_FRONTEND: 'example-frontend',\n /** Feature flags service */\n FEATURE_FLAGS: 'featureFlags',\n} as const;\n\n/**\n * Type for service keys.\n * Ensures only valid service keys can be used.\n */\nexport type ServiceKey = (typeof SERVICE_KEYS)[keyof typeof SERVICE_KEYS];\n\n/**\n * Array of all service keys for iteration.\n * Useful for validating service configurations or iterating over all services.\n */\nexport const ALL_SERVICE_KEYS = Object.values(SERVICE_KEYS) as ServiceKey[];\n","/**\n * Enum representing the types of events in the application.\n * Uses dot notation for event naming convention.\n *\n * @example\n * ```typescript\n * import { EVENT_TYPE } from '@plyaz/types';\n *\n * const eventType = EVENT_TYPE.AppInit; // 'app.init'\n * ```\n */\nexport const EVENT_TYPE = {\n /** Application initialization event. */\n AppInit: 'app.init',\n} as const;\n\n/**\n * Const representing the priority levels for events.\n * Used to determine processing order and resource allocation.\n *\n * @example\n * ```typescript\n * import { EVENT_PRIORITY } from '@plyaz/types';\n *\n * const priority = EVENT_PRIORITY.High; // 'high'\n * ```\n */\nexport const EVENT_PRIORITY = {\n /** Low priority event. */\n Low: 'low',\n /** Normal priority event. */\n Normal: 'normal',\n /** High priority event. */\n High: 'high',\n /** Critical priority event. */\n Critical: 'critical',\n} as const;\n\n/**\n * Const representing the status of an event.\n * Tracks the lifecycle of event processing from creation to completion.\n *\n * @example\n * ```typescript\n * import { EVENT_STATUS } from '@plyaz/types';\n *\n * const status = EVENT_STATUS.Processing; // 'processing'\n *\n * // Typical event lifecycle:\n * // Pending -> Processing -> Completed\n * // or\n * // Pending -> Processing -> Failed -> Retrying -> Processing -> Completed\n * ```\n */\nexport const EVENT_STATUS = {\n /** Event is pending and has not started processing. */\n Pending: 'pending',\n /** Event is currently being processed. */\n Processing: 'processing',\n /** Event has been completed successfully. */\n Completed: 'completed',\n /** Event processing failed. */\n Failed: 'failed',\n /** Event is being retried after a failure. */\n Retrying: 'retrying',\n} as const;\n","/**\n * Locale and Currency Types\n *\n * Type definitions for internationalization and currency handling.\n *\n * @module locale/types\n */\n\n/**\n * Common currency codes (ISO 4217)\n */\nexport const CURRENCY_CODES = {\n // Major currencies\n USD: 'USD', // US Dollar\n EUR: 'EUR', // Euro\n GBP: 'GBP', // British Pound Sterling\n JPY: 'JPY', // Japanese Yen\n CHF: 'CHF', // Swiss Franc\n CAD: 'CAD', // Canadian Dollar\n AUD: 'AUD', // Australian Dollar\n CNY: 'CNY', // Chinese Yuan Renminbi\n\n // Asian currencies\n INR: 'INR', // Indian Rupee\n KRW: 'KRW', // South Korean Won\n SGD: 'SGD', // Singapore Dollar\n HKD: 'HKD', // Hong Kong Dollar\n TWD: 'TWD', // Taiwan New Dollar\n THB: 'THB', // Thai Baht\n IDR: 'IDR', // Indonesian Rupiah\n MYR: 'MYR', // Malaysian Ringgit\n PHP: 'PHP', // Philippine Peso\n VND: 'VND', // Vietnamese Dong\n BDT: 'BDT', // Bangladeshi Taka\n PKR: 'PKR', // Pakistani Rupee\n LKR: 'LKR', // Sri Lankan Rupee\n\n // European currencies\n SEK: 'SEK', // Swedish Krona\n NOK: 'NOK', // Norwegian Krone\n DKK: 'DKK', // Danish Krone\n PLN: 'PLN', // Polish Zloty\n CZK: 'CZK', // Czech Koruna\n HUF: 'HUF', // Hungarian Forint\n RON: 'RON', // Romanian Leu\n BGN: 'BGN', // Bulgarian Lev\n HRK: 'HRK', // Croatian Kuna\n RSD: 'RSD', // Serbian Dinar\n ISK: 'ISK', // Icelandic Króna\n\n // Americas currencies\n BRL: 'BRL', // Brazilian Real\n MXN: 'MXN', // Mexican Peso\n ARS: 'ARS', // Argentine Peso\n CLP: 'CLP', // Chilean Peso\n COP: 'COP', // Colombian Peso\n PEN: 'PEN', // Peruvian Sol\n UYU: 'UYU', // Uruguayan Peso\n VES: 'VES', // Venezuelan Bolívar\n BOB: 'BOB', // Bolivian Boliviano\n PYG: 'PYG', // Paraguayan Guarani\n CRC: 'CRC', // Costa Rican Colón\n GTQ: 'GTQ', // Guatemalan Quetzal\n HNL: 'HNL', // Honduran Lempira\n NIO: 'NIO', // Nicaraguan Córdoba\n PAB: 'PAB', // Panamanian Balboa\n DOP: 'DOP', // Dominican Peso\n JMD: 'JMD', // Jamaican Dollar\n TTD: 'TTD', // Trinidad and Tobago Dollar\n BBD: 'BBD', // Barbadian Dollar\n\n // Middle Eastern currencies\n AED: 'AED', // UAE Dirham\n SAR: 'SAR', // Saudi Riyal\n QAR: 'QAR', // Qatari Riyal\n KWD: 'KWD', // Kuwaiti Dinar\n BHD: 'BHD', // Bahraini Dinar\n OMR: 'OMR', // Omani Rial\n JOD: 'JOD', // Jordanian Dinar\n ILS: 'ILS', // Israeli New Shekel\n TRY: 'TRY', // Turkish Lira\n IQD: 'IQD', // Iraqi Dinar\n IRR: 'IRR', // Iranian Rial\n LBP: 'LBP', // Lebanese Pound\n SYP: 'SYP', // Syrian Pound\n\n // African currencies\n ZAR: 'ZAR', // South African Rand\n NGN: 'NGN', // Nigerian Naira\n EGP: 'EGP', // Egyptian Pound\n KES: 'KES', // Kenyan Shilling\n GHS: 'GHS', // Ghanaian Cedi\n MAD: 'MAD', // Moroccan Dirham\n TND: 'TND', // Tunisian Dinar\n DZD: 'DZD', // Algerian Dinar\n ETB: 'ETB', // Ethiopian Birr\n TZS: 'TZS', // Tanzanian Shilling\n UGX: 'UGX', // Ugandan Shilling\n ZMW: 'ZMW', // Zambian Kwacha\n BWP: 'BWP', // Botswana Pula\n MUR: 'MUR', // Mauritian Rupee\n\n // Pacific currencies\n NZD: 'NZD', // New Zealand Dollar\n FJD: 'FJD', // Fijian Dollar\n PGK: 'PGK', // Papua New Guinean Kina\n\n // Former Soviet Union currencies\n RUB: 'RUB', // Russian Ruble\n UAH: 'UAH', // Ukrainian Hryvnia\n BYN: 'BYN', // Belarusian Ruble\n KZT: 'KZT', // Kazakhstani Tenge\n UZS: 'UZS', // Uzbekistani Som\n AZN: 'AZN', // Azerbaijani Manat\n GEL: 'GEL', // Georgian Lari\n AMD: 'AMD', // Armenian Dram\n\n // Cryptocurrency representations (unofficial)\n BTC: 'BTC', // Bitcoin\n ETH: 'ETH', // Ethereum\n USDT: 'USDT', // Tether\n USDC: 'USDC', // USD Coin\n} as const;\n\n/**\n * ISO 4217 Currency Code type\n */\nexport type CurrencyCode = (typeof CURRENCY_CODES)[keyof typeof CURRENCY_CODES];\n","/**\n * Enum representing supported EVM-compatible blockchain networks by their numeric chain IDs.\n * @description These IDs are used to identify the specific network when interacting with wallets or smart contracts.\n * @see https://chainlist.org for reference chain IDs\n *\n * @example\n * ```typescript\n * import { CHAIN_ID } from '@plyaz/types';\n *\n * const chainId = CHAIN_ID.EthereumMainnet; // 1\n * const isTestnet = chainId === CHAIN_ID.EthereumSepolia || chainId === CHAIN_ID.PolygonAmoy;\n * ```\n */\nexport const CHAIN_ID = {\n /** Ethereum Mainnet (Chain ID: 1). */\n EthereumMainnet: 1,\n\n /** Ethereum Sepolia Testnet (Chain ID: 11155111). */\n EthereumSepolia: 11_155_111,\n\n /** Optimism Mainnet (Chain ID: 10). */\n Optimism: 10,\n\n /** Optimism Sepolia Testnet (Chain ID: 11155420). */\n OptimismSepolia: 11_155_420,\n\n /** Arbitrum One Mainnet (Chain ID: 42161). */\n Arbitrum: 42_161,\n\n /** Arbitrum Sepolia Testnet (Chain ID: 421614). */\n ArbitrumSepolia: 421_614,\n\n /** Polygon Mainnet (Chain ID: 137). */\n Polygon: 137,\n\n /** Polygon Amoy Testnet (Chain ID: 80002). */\n PolygonAmoy: 80_002,\n\n /** Base Mainnet (Chain ID: 8453). */\n Base: 8_453,\n\n /** Base Sepolia Testnet (Chain ID: 84532). */\n BaseSepolia: 84_532,\n} as const;\n","/**\n * Cache Types and Interfaces\n *\n * Type definitions for the caching layer.\n * This will be moved to @plyaz/core when the package structure is finalized.\n *\n * @fileoverview Cache type definitions\n * @version 1.0.0\n */\n\n/**\n * Cache entry structure that wraps cached data with metadata.\n */\nimport type {\n Configurable,\n WithExpiration,\n WithMetadata,\n Enabled,\n WithUrl,\n Timestamped,\n} from '../../common/types';\n\n/**\n * Available cache strategies\n */\nexport const CACHE_STRATEGIES = ['memory', 'redis'] as const;\n\n/**\n * Cache strategy type\n */\nexport type CacheStrategyType = (typeof CACHE_STRATEGIES)[number];\n\nexport interface CacheEntry<T = unknown>\n extends Partial<WithMetadata<Record<string, unknown>>>,\n WithExpiration<number>,\n Pick<Timestamped<number, number>, 'createdAt'> {\n /** The cached data */\n data: T;\n}\n\nexport interface GenericCacheEntry<T = unknown> {\n value: T;\n timestamp: number;\n ttl: number;\n}\n\n/**\n * Cache statistics for monitoring and debugging.\n */\nexport interface CacheStats {\n /** Total number of cache hits */\n hits: number;\n /** Total number of cache misses */\n misses: number;\n /** Total number of set operations */\n sets: number;\n /** Total number of delete operations */\n deletes: number;\n /** Number of entries currently in cache */\n size: number;\n /** Cache hit ratio (hits / (hits + misses)) */\n hitRatio?: number;\n}\n\n/**\n * Configuration for cache strategies.\n */\nexport interface CacheConfig extends Configurable, Enabled {\n /** Default TTL in seconds */\n ttl: number;\n /** Cache strategy to use */\n strategy: CacheStrategyType;\n /** Redis-specific configuration */\n redisConfig?: RedisCacheConfig;\n /** Memory cache specific configuration */\n memoryConfig?: MemoryCacheConfig;\n}\n\n/**\n * Configuration for memory cache strategy.\n */\nexport interface MemoryCacheConfig {\n /** Maximum number of entries to store (default: 1000) */\n maxSize?: number;\n /** Maximum number of entries to store (alias for maxSize) */\n maxEntries?: number;\n /** Check for expired entries every N milliseconds (default: 60000) */\n cleanupInterval?: number;\n /** Callback when entry is evicted */\n onEvict?: (key: string, entry: CacheEntry) => void;\n}\n\n/**\n * Configuration for Redis cache strategy.\n */\nexport interface RedisCacheConfig extends WithUrl {\n /** Redis password for authentication */\n password?: string;\n /** Redis database number */\n db?: number;\n /** Key prefix for Redis keys */\n keyPrefix?: string;\n /** Connection timeout in milliseconds */\n connectTimeout?: number;\n /** Command timeout in milliseconds */\n commandTimeout?: number;\n}\n\n/**\n * Cache manager statistics interface.\n */\nexport type CacheManagerStats = CacheStats;\n\n/**\n * Interface that all cache strategies must implement.\n */\nexport interface CacheStrategy {\n /**\n * Stores a cache entry.\n *\n * @param key - Cache key\n * @param entry - Cache entry to store\n * @returns Promise that resolves when entry is stored\n */\n set<T>(key: string, entry: CacheEntry<T>): Promise<void>;\n\n /**\n * Retrieves a cache entry.\n *\n * @param key - Cache key\n * @returns Promise that resolves to cache entry or null if not found\n */\n get<T>(key: string): Promise<CacheEntry<T> | null>;\n\n /**\n * Removes a cache entry.\n *\n * @param key - Cache key to remove\n * @returns Promise that resolves when entry is removed\n */\n delete(key: string): Promise<void>;\n\n /**\n * Clears all cache entries.\n *\n * @returns Promise that resolves when cache is cleared\n */\n clear(): Promise<void>;\n\n /**\n * Gets cache statistics.\n *\n * @returns Promise that resolves to cache statistics\n */\n getStats(): Promise<CacheStats>;\n\n /**\n * Disposes of the cache strategy and cleans up resources.\n * Optional method for cleanup.\n *\n * @returns Promise that resolves when cleanup is complete\n */\n dispose?(): Promise<void>;\n}\n","/**\n * Object containing all supported country codes and their corresponding values.\n * Primarily covers European Union countries plus additional regions.\n */\nexport const COUNTRIES = {\n unitedKingdom: 'unitedKingdom',\n germany: 'germany',\n france: 'france',\n spain: 'spain',\n italy: 'italy',\n netherlands: 'netherlands',\n belgium: 'belgium',\n austria: 'austria',\n switzerland: 'switzerland',\n sweden: 'sweden',\n norway: 'norway',\n denmark: 'denmark',\n finland: 'finland',\n portugal: 'portugal',\n ireland: 'ireland',\n poland: 'poland',\n czechRepublic: 'czechRepublic',\n hungary: 'hungary',\n romania: 'romania',\n bulgaria: 'bulgaria',\n croatia: 'croatia',\n slovenia: 'slovenia',\n slovakia: 'slovakia',\n estonia: 'estonia',\n latvia: 'latvia',\n lithuania: 'lithuania',\n greece: 'greece',\n cyprus: 'cyprus',\n malta: 'malta',\n luxembourg: 'luxembourg',\n other: 'other',\n} as const;\n\n/**\n * Enum containing error message keys for basic profile form validation.\n * Contains localized error message keys that map to translation strings.\n */\nexport enum BASIC_PROFILE_ERRORS {\n /** Error when name is below minimum length */\n NameMin = 'components.BasicProfileForm.errors.nameMin',\n /** Error when name exceeds maximum length */\n NameMax = 'components.BasicProfileForm.errors.nameMax',\n /** Error when email format is invalid */\n EmailValid = 'components.BasicProfileForm.errors.emailValid',\n /** Error when email is required but not provided */\n EmailRequired = 'components.BasicProfileForm.errors.emailRequired',\n /** Error when country is required but not selected */\n CountryRequired = 'components.BasicProfileForm.errors.countryRequired',\n /** Error when bio exceeds maximum length */\n BioMax = 'components.BasicProfileForm.errors.bioMax',\n /** Error when profile image size exceeds limit */\n ProfileImageSize = 'components.BasicProfileForm.errors.profileImageSize',\n /** Error when profile image type is not supported */\n ProfileImageTypes = 'components.BasicProfileForm.errors.profileImageTypes',\n}\n\n/**\n * Enum containing error message keys for athlete profile form validation.\n * Contains localized error message keys that map to translation strings.\n */\nexport enum ATHLETE_PROFILE_ERRORS {\n /** Error when date of birth is too recent (maximum age validation) */\n DobMax = 'components.AthleteProfileForm.errors.dobMax',\n /** Error when date of birth is too old (minimum age validation) */\n DobMin = 'components.AthleteProfileForm.errors.dobMin',\n /** Error when height is below minimum value */\n HeightMin = 'components.AthleteProfileForm.errors.heightMin',\n /** Error when height exceeds maximum value */\n HeightMax = 'components.AthleteProfileForm.errors.heightMax',\n /** Error when height format is invalid */\n HeightInvalid = 'components.AthleteProfileForm.errors.heightInvalid',\n /** Error when weight is below minimum value */\n WeightMin = 'components.AthleteProfileForm.errors.weightMin',\n /** Error when weight exceeds maximum value */\n WeightMax = 'components.AthleteProfileForm.errors.weightMax',\n /** Error when weight format is invalid */\n WeightInvalid = 'components.AthleteProfileForm.errors.weightInvalid',\n /** Error when position is below minimum length */\n PositionMin = 'components.AthleteProfileForm.errors.positionMin',\n /** Error when position exceeds maximum length */\n PositionMax = 'components.AthleteProfileForm.errors.positionMax',\n /** Error when team name is below minimum length */\n TeamMin = 'components.AthleteProfileForm.errors.teamMin',\n /** Error when team name exceeds maximum length */\n TeamMax = 'components.AthleteProfileForm.errors.teamMax',\n /** Error when Instagram handle format is invalid */\n InstagramInvalid = 'components.AthleteProfileForm.errors.instagramInvalid',\n /** Error when TikTok handle format is invalid */\n TiktokInvalid = 'components.AthleteProfileForm.errors.tiktokInvalid',\n /** Error when highlight image size exceeds limit */\n HighlightImageSize = 'components.AthleteProfileForm.errors.highlightImageSize',\n /** Error when highlight image type is not supported */\n HighlightImageTypes = 'components.AthleteProfileForm.errors.highlightImageTypes',\n}\n\n/**\n * Type representing all possible error keys for basic profile form validation\n */\nexport type BasicProfileErrorKey = keyof typeof BASIC_PROFILE_ERRORS;\n\n/**\n * Type representing all possible error keys for athlete profile form validation\n */\nexport type AthleteProfileErrorKey = keyof typeof ATHLETE_PROFILE_ERRORS;\n","/* eslint-disable no-magic-numbers */\nimport { z } from 'zod';\nimport { ATHLETE_PROFILE_ERRORS, BASIC_PROFILE_ERRORS } from './enums';\n\nconst MIN_NAME_LENGTH = 2;\nconst MAX_NAME_LENGTH = 50;\nconst MAX_BIO_LENGTH = 275;\n\n/**\n * Zod schema for basic profile form validation.\n * Validates common user profile fields including name, email, country, bio, and profile image.\n */\nexport const basicProfileSchema = z.object({\n name: z\n .string()\n .min(MIN_NAME_LENGTH, BASIC_PROFILE_ERRORS.NameMin)\n .max(MAX_NAME_LENGTH, BASIC_PROFILE_ERRORS.NameMax),\n email: z\n .string()\n .email(BASIC_PROFILE_ERRORS.EmailValid)\n .min(1, BASIC_PROFILE_ERRORS.EmailRequired),\n country: z.string().min(1, BASIC_PROFILE_ERRORS.CountryRequired),\n bio: z.string().max(MAX_BIO_LENGTH, BASIC_PROFILE_ERRORS.BioMax).optional(),\n profileImage: z\n .union([\n z\n .instanceof(File)\n .refine(\n file => file.size <= 5 * 1024 * 1024, // 5MB\n BASIC_PROFILE_ERRORS.ProfileImageSize\n )\n .refine(\n file => ['image/png', 'image/jpeg', 'image/jpg', 'image/webp'].includes(file.type),\n BASIC_PROFILE_ERRORS.ProfileImageTypes\n ),\n z.string(),\n z.null(),\n ])\n .optional(),\n});\n\n/**\n * Zod schema for fan profile form validation.\n * Extends basicProfileSchema without additional fields.\n */\nexport const fanProfileSchema = basicProfileSchema.extend({});\n\n/**\n * Zod schema for athlete profile form validation.\n * Extends basicProfileSchema with athlete-specific fields including physical stats,\n * team information, social media handles, and highlight images.\n */\nexport const athleteProfileSchema = basicProfileSchema.extend({\n dateOfBirth: z\n .date()\n .max(new Date(), ATHLETE_PROFILE_ERRORS.DobMax)\n .min(new Date(1900, 0, 1), ATHLETE_PROFILE_ERRORS.DobMin)\n .optional(),\n height: z\n .number()\n .min(50, ATHLETE_PROFILE_ERRORS.HeightMin)\n .max(300, ATHLETE_PROFILE_ERRORS.HeightMax)\n .optional(),\n weight: z\n .number()\n .min(10, ATHLETE_PROFILE_ERRORS.WeightMin)\n .max(500, ATHLETE_PROFILE_ERRORS.WeightMax)\n .optional(),\n position: z\n .string()\n .min(2, ATHLETE_PROFILE_ERRORS.PositionMin)\n .max(50, ATHLETE_PROFILE_ERRORS.PositionMax)\n .optional(),\n teamName: z\n .string()\n .min(2, ATHLETE_PROFILE_ERRORS.TeamMin)\n .max(100, ATHLETE_PROFILE_ERRORS.TeamMax)\n .optional(),\n instagramHandle: z\n .string()\n .regex(/^$|^@?(?!.*\\.\\.)(?!.*\\.$)[a-zA-Z0-9._]{1,30}$/, ATHLETE_PROFILE_ERRORS.InstagramInvalid)\n .optional(),\n tiktokHandle: z\n .string()\n .regex(/^$|^@?[a-zA-Z0-9][a-zA-Z0-9._]{1,23}$/, ATHLETE_PROFILE_ERRORS.TiktokInvalid)\n .optional(),\n highlightImage: z\n .union([\n z\n .instanceof(File)\n .refine(\n file => file.size <= 5 * 1024 * 1024, // 5MB\n ATHLETE_PROFILE_ERRORS.HighlightImageSize\n )\n .refine(\n file => ['image/png', 'image/jpeg', 'image/jpg'].includes(file.type),\n ATHLETE_PROFILE_ERRORS.HighlightImageTypes\n ),\n z.string(),\n z.null(),\n ])\n .optional(),\n});\n\n/**\n * Type inferred from basicProfileSchema for basic profile form data\n */\nexport type BasicProfileFormData = z.infer<typeof basicProfileSchema>;\n\n/**\n * Type inferred from fanProfileSchema for fan profile form data\n */\nexport type FanProfileFormData = z.infer<typeof fanProfileSchema>;\n\n/**\n * Type inferred from athleteProfileSchema for athlete profile form data\n */\nexport type AthleteProfileFormData = z.infer<typeof athleteProfileSchema>;\n","/**\n * Enum containing error message keys for campaign creation form validation.\n * Contains localized error message keys that map to translation strings.\n */\nexport enum CREATE_CAMPAIGN_ERRORS {\n /** Error when campaign title is required but not provided */\n TitleRequired = 'components.CreateCampaign.Form.errors.titleRequired',\n /** Error when campaign title exceeds maximum length */\n TitleMax = 'components.CreateCampaign.Form.errors.titleMax',\n /** Error when campaign subtitle is required but not provided */\n SubtitleRequired = 'components.CreateCampaign.Form.errors.subtitleRequired',\n /** Error when campaign subtitle exceeds maximum length */\n SubtitleMax = 'components.CreateCampaign.Form.errors.subtitleMax',\n /** Error when campaign image is required but not provided */\n CampaignImageRequired = 'components.CreateCampaign.Form.errors.campaignImageRequired',\n /** Error when start date is required but not provided */\n StartDateRequired = 'components.CreateCampaign.Form.errors.startDateRequired',\n /** Error when start date format is invalid */\n StartDateInvalid = 'components.CreateCampaign.Form.errors.startDateInvalid',\n /** Error when start date is not in the future */\n StartDateFuture = 'components.CreateCampaign.Form.errors.startDateFuture',\n /** Error when campaign duration is required but not selected */\n DurationRequired = 'components.CreateCampaign.Form.errors.durationRequired',\n /** Error when campaign story is required but not provided */\n StoryRequired = 'components.CreateCampaign.Form.errors.storyRequired',\n /** Error when campaign story exceeds maximum length */\n StoryMax = 'components.CreateCampaign.Form.errors.storyMax',\n /** Error when video URL is from an unsupported provider */\n VideoInvalidProvider = 'components.CreateCampaign.Form.errors.videoInvalidProvider',\n /** Error when funding target is required but not provided */\n FundingRequired = 'components.CreateCampaign.Form.errors.fundingRequired',\n /** Error when funding target is outside allowed range */\n FundingRange = 'components.CreateCampaign.Form.errors.fundingRange',\n /** Error when Instagram handle exceeds maximum length */\n InstagramMax = 'components.CreateCampaign.Form.errors.instagramMax',\n /** Error when Instagram handle format is invalid */\n InstagramInvalid = 'components.CreateCampaign.Form.errors.instagramInvalid',\n /** Error when TikTok handle exceeds maximum length */\n TiktokMax = 'components.CreateCampaign.Form.errors.tiktokMax',\n /** Error when TikTok handle format is invalid */\n TiktokInvalid = 'components.CreateCampaign.Form.errors.tiktokInvalid',\n /** Error when YouTube handle exceeds maximum length */\n YoutubeMax = 'components.CreateCampaign.Form.errors.youtubeMax',\n /** Error when YouTube handle format is invalid */\n YoutubeInvalid = 'components.CreateCampaign.Form.errors.youtubeInvalid',\n}\n\n/**\n * Type representing all possible error keys for campaign creation form validation\n */\nexport type CreateCampaignErrorKey = keyof typeof CREATE_CAMPAIGN_ERRORS;\n","/* eslint-disable no-magic-numbers */\nimport { z } from 'zod';\n\nimport { CREATE_CAMPAIGN_ERRORS as ERR } from './enums';\n\n/**\n * Zod schema for campaign creation form validation.\n * Validates all required fields for creating a new campaign including:\n * - Basic info (title, subtitle, image)\n * - Timeline (start date, duration)\n * - Content (story, video highlight)\n * - Funding target\n * - Social media handles\n *\n * @param config - Configuration object\n * @param config.maxFunding - Maximum funding amount allowed for campaigns\n */\n// eslint-disable-next-line @typescript-eslint/explicit-function-return-type, @typescript-eslint/explicit-module-boundary-types\nexport const formCampaignSchema = ({ maxFunding }: { maxFunding: number }) =>\n z.object({\n title: z.string().min(1, ERR.TitleRequired).max(60, ERR.TitleMax),\n subtitle: z.string().min(1, ERR.SubtitleRequired).max(200, ERR.SubtitleMax),\n campaignImage: z.any().refine(val => val instanceof File, {\n message: ERR.CampaignImageRequired,\n }),\n startDate: z\n .date({\n error: ERR.StartDateRequired,\n })\n .refine(date => date instanceof Date && !isNaN(date.getTime()), {\n message: ERR.StartDateInvalid,\n })\n .refine(date => date >= new Date(), {\n message: ERR.StartDateFuture,\n }),\n duration: z\n .union([z.literal(30), z.literal(60), z.literal(90)])\n .nullable()\n .refine(val => val !== null, {\n message: ERR.DurationRequired,\n }),\n story: z.string().min(1, ERR.StoryRequired).max(10000, ERR.StoryMax),\n videoHighlight: z\n .string()\n .refine(\n url => {\n if (!url || url.trim() === '') return true;\n try {\n const urlObj = new URL(url);\n const hostname = urlObj.hostname.toLowerCase();\n return (\n hostname.includes('youtube.com') ||\n hostname.includes('youtu.be') ||\n hostname.includes('tiktok.com') ||\n hostname.includes('vimeo.com')\n );\n } catch {\n return false;\n }\n },\n {\n message: ERR.VideoInvalidProvider,\n }\n )\n .optional(),\n fundingTarget: z\n .string()\n .min(1, ERR.FundingRequired)\n .refine(\n val => {\n const num = Number.parseFloat(val ?? '');\n return !isNaN(num) && num > 0 && num <= maxFunding;\n },\n {\n message: ERR.FundingRange,\n }\n ),\n instagramHandle: z\n .string()\n .max(30, ERR.InstagramMax)\n .regex(/^$|^@?(?!.*\\.\\.)(?!.*\\.$)[a-zA-Z0-9._]{1,30}$/, ERR.InstagramInvalid)\n .optional(),\n tiktokHandle: z\n .string()\n .max(24, ERR.TiktokMax)\n .regex(/^$|^@?[a-zA-Z0-9][a-zA-Z0-9._]{1,23}$/, ERR.TiktokInvalid)\n .optional(),\n youtubeHandle: z\n .string()\n .max(50, ERR.YoutubeMax)\n .regex(/^$|^@[a-zA-Z0-9][a-zA-Z0-9._-]{1,28}[a-zA-Z0-9]$/, ERR.YoutubeInvalid)\n .optional(),\n });\n","/**\n * Standard service names for logger instances across packages\n *\n * These constants ensure consistency in service naming and prevent typos\n * when creating logger instances.\n */\nexport const LOGGER_SERVICES = {\n // API Package Services\n API_CLIENT: 'ApiClient',\n CLIENT_EVENT_MANAGER: 'ClientEventManager',\n INTERCEPTORS: 'Interceptors',\n PUB_SUB: 'PubSub',\n EVENT_MANAGER: 'EventManager',\n EVENT_QUEUE: 'EventQueue',\n CONFIG_QUEUE: 'ConfigQueue',\n OPERATION_TRACKER: 'OperationTracker',\n EXPRESS_FRAMEWORK: 'ExpressFramework',\n NESTJS_GUARD: 'NestJSGuard',\n NESTJS_INTERCEPTOR: 'NestJSInterceptor',\n NETWORK_CONFIGURATION: 'NetworkConfiguration',\n BASE_OPERATION_TRACKER: 'BaseOperationTracker',\n EVENT_QUEUE_MANAGER: 'EventQueueManager',\n QUEUE_ORCHESTRATOR: 'QueueOrchestrator',\n\n // Debug & Performance Services\n PERFORMANCE_MONITOR: 'PerformanceMonitor',\n DEBUG_REPORT: 'DebugReport',\n UNIFIED_DEBUGGER: 'UnifiedDebugger',\n DEBUGGER_QUEUE_MANAGER: 'DebuggerQueueManager',\n\n // Notification Package Services\n EMAIL_SERVICE: 'EmailService',\n SMS_SERVICE: 'SMSService',\n PUSH_SERVICE: 'PushService',\n WEBHOOK_SERVICE: 'WebhookService',\n TEMPLATE_ENGINE: 'TemplateEngine',\n ATTACHMENT_RESOLVER: 'AttachmentResolver',\n\n // Storage Package Services\n STORAGE_SERVICE: 'StorageService',\n STORAGE_ADAPTER: 'StorageAdapter',\n CLOUDFLARE_R2_ADAPTER: 'CloudflareR2Adapter',\n SUPABASE_STORAGE_ADAPTER: 'SupabaseStorageAdapter',\n ADAPTER_REGISTRY: 'AdapterRegistry',\n MEDIA_PROCESSOR: 'MediaProcessor',\n METADATA_EXTRACTOR: 'MetadataExtractor',\n VIRUS_SCANNER: 'VirusScanner',\n TEMPLATE_RENDERER: 'TemplateRenderer',\n COMPLIANCE_MANAGER: 'ComplianceManager',\n\n // Config Package Services\n CONFIG_MANAGER: 'ConfigManager',\n CONFIG_VALIDATOR: 'ConfigValidator',\n} as const;\n\nexport type LoggerService = (typeof LOGGER_SERVICES)[keyof typeof LOGGER_SERVICES];\n","/**\n * Comprehensive enumeration of all payment-related events that can occur\n * in the system. Events are organized by category and follow a hierarchical\n * naming convention for easy filtering and subscription.\n *\n * Naming Convention:\n * - Category.Action (e.g., payment.completed)\n * - Use present tense for ongoing events, past tense for completed events\n * - Include both success and failure events for complete audit trails\n */\nexport enum PAYMENT_EVENT_TYPE {\n // Payment lifecycle events\n PaymentInitiated = 'payment.initiated',\n PaymentProcessing = 'payment.processing',\n PaymentRequiresAction = 'payment.requires_action',\n PaymentCompleted = 'payment.completed',\n PaymentFailed = 'payment.failed',\n PaymentCancelled = 'payment.cancelled',\n PaymentExpired = 'payment.expired',\n PaymentAuthorized = 'payment.authorized',\n PaymentCaptured = 'payment.captured',\n PaymentHeld = 'payment.held',\n PaymentReleased = 'payment.released',\n\n // Refund lifecycle events\n RefundRequested = 'refund.requested',\n RefundApproved = 'refund.approved',\n RefundRejected = 'refund.rejected',\n RefundProcessing = 'refund.processing',\n RefundCompleted = 'refund.completed',\n RefundFailed = 'refund.failed',\n RefundCancelled = 'refund.cancelled',\n\n // Withdrawals / Payout events\n WithdrawalRequested = 'withdrawal.requested',\n WithdrawalProcessed = 'withdrawal.processed',\n WithdrawalFailed = 'withdrawal.failed',\n WithdrawalCancelled = 'withdrawal.cancelled',\n\n // Provider interaction events\n ProviderWebhookReceived = 'provider.webhook.received',\n ProviderWebhookProcessed = 'provider.webhook.processed',\n ProviderWebhookFailed = 'provider.webhook.failed',\n ProviderApiCalled = 'provider.api.called',\n ProviderApiSucceeded = 'provider.api.succeeded',\n ProviderApiFailed = 'provider.api.failed',\n ProviderTimeout = 'provider.timeout',\n ProviderHealthChanged = 'provider.health.changed',\n\n // Financial events\n SettlementInitiated = 'settlement.initiated',\n SettlementCompleted = 'settlement.completed',\n SettlementFailed = 'settlement.failed',\n PayoutRequested = 'payout.requested',\n PayoutProcessed = 'payout.processed',\n PayoutFailed = 'payout.failed',\n\n // Dispute and chargeback events\n ChargebackReceived = 'chargeback.received',\n ChargebackResponded = 'chargeback.responded',\n ChargebackWon = 'chargeback.won',\n ChargebackLost = 'chargeback.lost',\n DisputeCreated = 'dispute.created',\n DisputeUpdated = 'dispute.updated',\n DisputeResolved = 'dispute.resolved',\n DisputeEscalated = 'dispute.escalated',\n\n // Security and fraud events\n FraudDetected = 'fraud.detected',\n FraudReviewRequired = 'fraud.review_required',\n FraudCleared = 'fraud.cleared',\n SuspiciousActivity = 'suspicious.activity',\n PaymentBlocked = 'payment.blocked',\n SecurityCheckFailed = 'security.check_failed',\n VelocityLimitExceeded = 'velocity.limit_exceeded',\n\n // Payment method events\n PaymentMethodAdded = 'payment_method.added',\n PaymentMethodUpdated = 'payment_method.updated',\n PaymentMethodDeleted = 'payment_method.deleted',\n PaymentMethodVerified = 'payment_method.verified',\n PaymentMethodExpired = 'payment_method.expired',\n\n // Subscription events\n SubscriptionCreated = 'subscription.created',\n SubscriptionUpdated = 'subscription.updated',\n SubscriptionCancelled = 'subscription.cancelled',\n SubscriptionRenewed = 'subscription.renewed',\n SubscriptionFailed = 'subscription.failed',\n SubscriptionTrialStarted = 'subscription.trial_started',\n SubscriptionTrialEnded = 'subscription.trial_ended',\n\n // Product & Pricing events\n ProductCreated = 'product.created',\n ProductUpdated = 'product.updated',\n ProductDeleted = 'product.deleted',\n PriceCreated = 'price.created',\n PriceUpdated = 'price.updated',\n PriceDeleted = 'price.deleted',\n\n // System and operational events\n PaymentLimitsUpdated = 'payment_limits.updated',\n PaymentLimitsExceeded = 'payment_limits.exceeded',\n ProviderConfigUpdated = 'provider.config_updated',\n ProviderMaintenanceStarted = 'provider.maintenance_started',\n ProviderMaintenanceEnded = 'provider.maintenance_ended',\n\n // Compliance and KYC events\n ComplianceCheckRequired = 'compliance.check_required',\n ComplianceCheckPassed = 'compliance.check_passed',\n ComplianceCheckFailed = 'compliance.check_failed',\n\n // Audit events\n AuditTrailCreated = 'audit.trail_created',\n RegulatoryReportGenerated = 'regulatory.report_generated',\n}\n\n/**\n * Payment event categories for organization and routing.\n */\nexport enum PAYMENT_EVENT_CATEGORY {\n TRANSACTION = 'transaction',\n REFUND = 'refund',\n PROVIDER = 'provider',\n SECURITY = 'security',\n COMPLIANCE = 'compliance',\n FINANCIAL = 'financial',\n SUBSCRIPTION = 'subscription',\n SYSTEM = 'system',\n AUDIT = 'audit',\n}\n\n/**\n * Error categories for payment events.\n */\nexport enum PAYMENT_EVENT_ERROR_CATEGORY {\n UserError = 'user_error', // User input or action errors\n ProviderError = 'provider_error', // Payment provider errors\n SystemError = 'system_error', // Internal system errors\n NetworkError = 'network_error', // Network connectivity errors\n FraudError = 'fraud_error', // Fraud detection errors\n ComplianceError = 'compliance_error', // Regulatory compliance errors\n LimitError = 'limit_error', // Limit exceeded errors\n ConfigurationError = 'configuration_error', // Configuration errors\n TimeoutError = 'timeout_error', // Timeout errors\n ValidationError = 'validation_error', // Data validation errors\n}\n","/**\n * Event processing status enumeration.\n */\nexport enum EVENT_PROCESSING_STATUS {\n Received = 'received', // Event received from provider\n Validating = 'validating', // Signature and format validation\n Normalizing = 'normalizing', // Converting to unified format\n Normalized = 'normalized', // Successfully normalized\n Processing = 'processing', // Business logic processing\n Completed = 'completed', // Processing completed successfully\n Failed = 'failed', // Processing failed\n Retrying = 'retrying', // Retrying after failure\n Skipped = 'skipped', // Skipped due to filters/rules\n}\n","/**\n * Enumeration of all supported payment providers in the Plyaz ecosystem.\n */\nexport enum PAYMENT_PROVIDER_TYPE {\n // Traditional payment processors\n Stripe = 'stripe',\n Paypal = 'paypal',\n CheckoutCom = 'checkout_com',\n Adyen = 'adyen',\n\n // Cryptocurrency payment providers\n Moonpay = 'moonpay',\n CoinbaseCommerce = 'coinbase_commerce',\n BlockchainBridge = 'blockchain_bridge',\n\n // Regional payment providers\n Pix = 'pix',\n Boleto = 'boleto',\n Sepa = 'sepa',\n Ideal = 'ideal',\n Sofort = 'sofort',\n Alipay = 'alipay',\n WechatPay = 'wechat_pay',\n\n // Mock provider for testing\n MockProvider = 'mock_provider',\n}\n\n/**\n * Enumeration of payment methods supported across all providers.\n */\nexport enum PAYMENT_METHOD {\n // Traditional payment methods\n CreditCard = 'credit_card',\n DebitCard = 'debit_card',\n BankTransfer = 'bank_transfer',\n PaypalAccount = 'paypal_account',\n\n // Cryptocurrency payment methods\n CryptoBitcoin = 'crypto_bitcoin',\n CryptoEthereum = 'crypto_ethereum',\n CryptoPolygon = 'crypto_polygon',\n CryptoOptimism = 'crypto_optimism',\n CryptoUsdc = 'crypto_usdc',\n CryptoUsdt = 'crypto_usdt',\n CryptoNativeToken = 'crypto_native_token',\n\n // Regional payment methods\n PixInstant = 'pix_instant',\n BoletoBancario = 'boleto_bancario',\n SepaDirectDebit = 'sepa_direct_debit',\n IdealBank = 'ideal_bank',\n SofortBanking = 'sofort_banking',\n AlipayDigital = 'alipay_digital',\n WechatPayDigital = 'wechat_pay_digital',\n\n // Digital wallets\n ApplePay = 'apple_pay',\n GooglePay = 'google_pay',\n SamsungPay = 'samsung_pay',\n}\n\n/**\n * Comprehensive payment status enumeration.\n */\nexport enum PAYMENT_STATUS {\n // Initial states\n Initiated = 'initiated',\n Pending = 'pending',\n Processing = 'processing',\n\n // Action required states\n RequiresAction = 'requires_action',\n RequiresConfirmation = 'requires_confirmation',\n RequiresPaymentMethod = 'requires_payment_method',\n\n // Success states\n Completed = 'completed',\n Settled = 'settled',\n\n // Failure states\n Failed = 'failed',\n Declined = 'declined',\n Cancelled = 'cancelled',\n Expired = 'expired',\n\n // Refund states\n Refunded = 'refunded',\n PartiallyRefunded = 'partially_refunded',\n\n // Dispute states\n Disputed = 'disputed',\n Chargeback = 'chargeback',\n ChargebackResolved = 'chargeback_resolved',\n\n // Special states\n Held = 'held',\n Authorized = 'authorized',\n Captured = 'captured',\n}\n\n/**\n * Transaction type enumeration.\n */\nexport enum TRANSACTION_TYPE {\n Payment = 'payment',\n Refund = 'refund',\n PartialRefund = 'partial_refund',\n Withdrawal = 'withdrawal',\n Donation = 'donation',\n Subscription = 'subscription',\n SubscriptionRenewal = 'subscription_renewal',\n Fee = 'fee',\n Chargeback = 'chargeback',\n Adjustment = 'adjustment',\n Reward = 'reward',\n Penalty = 'penalty',\n Transfer = 'transfer',\n}\n\n/**\n * User type enumeration.\n */\nexport enum USER_TYPE {\n Fan = 'fan',\n Athlete = 'athlete',\n Club = 'club',\n Agent = 'agent',\n Scout = 'scout',\n Admin = 'admin',\n System = 'system',\n}\n\n/**\n * Product type enumeration.\n */\nexport enum PRODUCT_TYPE {\n Campaign = 'campaign',\n Subscription = 'subscription',\n Nft = 'nft',\n Merchandise = 'merchandise',\n EventTicket = 'event_ticket',\n PremiumContent = 'premium_content',\n TrainingSession = 'training_session',\n Consultation = 'consultation',\n DigitalProduct = 'digital_product',\n PhysicalProduct = 'physical_product',\n}\n","/**\n * Enumeration of action types that users might need to complete.\n */\nexport enum REQUIREDACTIONTYPE {\n /** Redirect to external page (3D Secure, bank auth, etc.) */\n Redirect = 'redirect',\n\n /** Enter SMS or email verification code */\n OtpVerification = 'otp_verification',\n\n /** Upload identity or financial documents */\n DocumentUpload = 'document_upload',\n\n /** Provide additional payment information */\n AdditionalPaymentInfo = 'additional_payment_info',\n\n /** Confirm payment via mobile app or email */\n PaymentConfirmation = 'payment_confirmation',\n\n /** Contact customer support for manual verification */\n ManualVerification = 'manual_verification',\n\n /** Wait for bank transfer or other delayed method */\n WaitForCompletion = 'wait_for_completion',\n}\n","export enum PROVIDER_PRODUCT_STATUS {\n Active = 'active',\n Inactive = 'inactive',\n Archived = 'archived',\n}\n","/**\n * Enum for fee types\n */\nexport enum FEE_TYPE {\n Platform = 'platform',\n CrossBorder = 'crossBorder',\n Conversion = 'currencyConversion',\n Network = 'network',\n Gas = 'gas',\n Expedite = 'expedite',\n Risk = 'risk',\n Compliance = 'compliance',\n Chargeback = 'chargeback',\n Refund = 'refund',\n}\n\n/**\n * Enum for transaction contexts\n */\nexport enum FEE_CONTEXT {\n Payment = 'payment',\n Subscription = 'subscription',\n Withdrawal = 'withdrawal',\n Refund = 'refund',\n Dispute = 'dispute',\n}\n","/**\n * Cost optimization strategies.\n */\nexport enum COST_OPTIMIZATION_STRATEGY {\n /** Always use cheapest option */\n Aggressive = 'aggressive',\n\n /** Balance cost with reliability */\n Balanced = 'balanced',\n\n /** Prefer reliability over cost */\n Conservative = 'conservative',\n\n /** Optimize for specific cost components */\n Targeted = 'targeted',\n}\n\n/**\n * Failover strategies.\n */\nexport enum FAIL_OVER_STRATEGY {\n /** Use predefined provider order */\n PriorityOrder = 'priority_order',\n\n /** Failover to next available provider */\n NextAvailable = 'next_available',\n\n /** Failover based on performance metrics */\n PerformanceBased = 'performance_based',\n\n /** Failover to least loaded provider */\n LoadBalanced = 'load_balanced',\n\n /** Geographic failover preference */\n Geographic = 'geographic',\n}\n\n/**\n * Regulatory frameworks.\n */\nexport enum REGULATORY_FRAMEWORK {\n PciDss = 'pci_dss',\n Gdpr = 'gdpr',\n Psd2 = 'psd2',\n Sox = 'sox',\n Aml = 'aml',\n Kyc = 'kyc',\n Ccpa = 'ccpa',\n LocalBanking = 'local_banking',\n}\n\n/**\n * Load balancing strategies.\n */\nexport enum LOAD_BALANCING_STRATEGY {\n /** Rotate through providers evenly */\n RoundRobin = 'round_robin',\n\n /** Use weighted distribution */\n Weighted = 'weighted',\n\n /** Choose provider with least active traffic */\n LeastConnections = 'least_connections',\n\n /** Choose based on best performance metrics */\n PerformanceBased = 'performance_based',\n\n /** Custom strategy defined by merchant */\n Custom = 'custom',\n}\n\n/**\n * Types of performance metrics.\n */\nexport enum PERFORMANCE_METRIC_TYPE {\n Latency = 'latency',\n SuccessRate = 'success_rate',\n ErrorRate = 'error_rate',\n Throughput = 'throughput',\n Retries = 'retries',\n Availability = 'availability',\n Cost = 'cost',\n}\n\n/**\n * Primary routing strategies.\n */\nexport enum ROUTING_STRATEGY {\n /** Optimize for lowest total cost */\n CostOptimized = 'cost_optimized',\n\n /** Optimize for highest reliability */\n ReliabilityFirst = 'reliability_first',\n\n /** Optimize for fastest processing */\n PerformanceFirst = 'performance_first',\n\n /** Balance cost, reliability, and performance */\n Balanced = 'balanced',\n\n /** Use user or region preferences */\n UserPreference = 'user_preference',\n\n /** Distribute load evenly */\n RoundRobin = 'round_robin',\n\n /** Custom routing logic */\n Custom = 'custom',\n}\n\n/**\n * Enumerates all routing rule identifiers used within RouterStrategy.\n *\n * Purpose:\n * - Avoid hardcoded strings for rule names\n * - Provide consistent naming for debugging and error contexts\n * - Improve developer experience via auto-completion\n */\nexport enum ROUTER_RULE_NAME {\n AmountBasedSelection = 'amountBasedSelection',\n CurrencySpecificProviders = 'currencySpecificProviders',\n RegionSelection = 'regionSelection',\n RegionCompliance = 'regionCompliance',\n UserTypeSelection = 'userTypeSelection',\n TimeBasedSelection = 'timeBasedSelection',\n CustomRuleEvaluation = 'customRuleEvaluation',\n ABTesting = 'abTesting',\n DefaultSelection = 'defaultSelection',\n}\n\nexport const CUSTOM_RULE_FIELD = {\n AMOUNT: 'request.amount',\n CURRENCY: 'request.currency',\n USER_TYPE: 'request.userType',\n REGION: 'request.metadata.geoInfo.region',\n} as const;\n\n// Type representing the **values** of CUSTOM_RULE_FIELD\nexport type CustomRuleField = (typeof CUSTOM_RULE_FIELD)[keyof typeof CUSTOM_RULE_FIELD];\n","/**\n * Payment-specific error categories\n */\n// TODO: check if this is correct\nexport const PAYMENT_ERROR_CATEGORY = {\n /** Payment method validation or processing error */\n PaymentMethod: 'payment.method',\n\n /** Transaction processing error */\n Transaction: 'transaction',\n\n /** Payment capture error */\n Capture: 'capture',\n\n /** Payment authorization error */\n Authorization: 'authorization',\n\n /** Payment settlement error */\n Settlement: 'settlement',\n\n /** Refund processing error */\n Refund: 'refund',\n\n /** Payment gateway or provider error */\n Gateway: 'gateway',\n\n /** Payment fraud detection error */\n Fraud: 'fraud',\n\n /** Payment compliance error (AML/KYC) */\n Compliance: 'compliance',\n\n /** Payment limits exceeded */\n Limits: 'limits',\n\n /** Payment webhook error */\n Webhook: 'webhook',\n\n /** Payment security error */\n Security: 'security',\n\n /** Payment processing timeout */\n Timeout: 'timeout',\n\n /** Payment configuration error */\n Configuration: 'configuration',\n} as const;\n\nexport enum REFUND_ERROR_TYPES {\n NotAllowed = 'not_allowed',\n Authorization = 'authorization',\n Processing = 'processing',\n}\n\n/**\n * Refund not allowed reasons.\n */\nexport enum REFUND_NOT_ALLOWED_REASON {\n AlreadyRefunded = 'already_refunded',\n PartialNotSupported = 'partial_not_supported',\n TimeLimitExceeded = 'time_limit_exceeded',\n InsufficientBalance = 'insufficient_balance',\n ProviderRestriction = 'provider_restriction',\n ComplianceRestriction = 'compliance_restriction',\n}\n\n/**\n * Security threat types.\n */\nexport enum SECURITY_THREAT_TYPE {\n FraudSuspected = 'fraud_suspected',\n VelocityExceeded = 'velocity_exceeded',\n SuspiciousPattern = 'suspicious_pattern',\n BlockedRegion = 'blocked_region',\n BlacklistedMethod = 'blacklisted_method',\n SystemThreat = 'system_threat',\n}\n\n/**\n * Webhook verification failure reasons.\n */\nexport enum WEBHOOK_VERIFICATION_REASON {\n InvalidSignature = 'invalid_signature',\n MissingSignature = 'missing_signature',\n ExpiredTimestamp = 'expired_timestamp',\n InvalidPayload = 'invalid_payload',\n UnknownEndpoint = 'unknown_endpoint',\n}\n\n/**\n * Central registry for all payment resolution translation keys.\n * Provides type safety and autocompletion for all PaymentError subclasses.\n */\n\nexport const PAYMENT_RESOLUTION_KEYS = {\n GENERIC: 'resolution.generic',\n PAYMENTS_PACKAGE_ERROR: 'resolution._package_error',\n\n // Validation\n PAYMENT_VALIDATION_ERROR: 'resolution.payment_validation_error',\n INVALID_AMOUNT_ERROR: 'resolution.invalid_amount_error',\n INVALID_PAYMENT_METHOD_ERROR: 'resolution.invalid_payment_method_error',\n\n // Processing\n PAYMENT_PROCESSING_ERROR: 'resolution.payment_processing_error',\n PAYMENT_DECLINED_ERROR: 'resolution.payment_declined_error',\n INSUFFICIENT_FUNDS_ERROR: 'resolution.insufficient_funds_error',\n\n // Provider\n PAYMENT_PROVIDER_ERROR: 'resolution.payment_provider_error',\n PROVIDER_TIMEOUT_ERROR: 'resolution.provider_timeout_error',\n PROVIDER_RATE_LIMIT_ERROR: 'resolution.provider_rate_limit_error',\n\n // Security\n PAYMENT_SECURITY_ERROR: 'resolution.payment_security_error',\n FRAUD_DETECTED_ERROR: 'resolution.fraud_detected_error',\n VELOCITY_LIMIT_EXCEEDED_ERROR: 'resolution.velocity_limit_exceeded_error',\n\n // Refund\n REFUND_ERROR: 'resolution.refund_error',\n REFUND_NOT_ALLOWED_ERROR: 'resolution.refund_not_allowed_error',\n REFUND_AUTHORIZATION_ERROR: 'resolution.refund_authorization_error',\n\n COMPLIANCE_ERROR: 'resolution.compliance_error',\n KYC_VERIFICATION_REQUIRED: 'resolution.kyc_verification_required',\n GEOGRAPHIC_RESTRICTION: 'resolution.geographic_restriction',\n\n PAYMENT_WEBHOOK_PACKAGE_ERROR: 'resolution.payment_webhook_package_error',\n PAYMENT_WEBHOOK_VERIFICATION_ERROR: 'resolution.payment_webhook_verification_error',\n PAYMENT_WEBHOOK_PROCESSING_ERROR: 'resolution.payment_webhook_processing_error',\n PAYMENT_WEBHOOK_REPLAY_ERROR: 'resolution.payment_webhook_replay_error',\n} as const;\n\n/** Union type of all available resolution keys */\nexport type PaymentResolutionKey =\n (typeof PAYMENT_RESOLUTION_KEYS)[keyof typeof PAYMENT_RESOLUTION_KEYS];\n\n/**\n * Central registry for all payment recommendation translation keys.\n * Provides type safety and autocompletion for analytics, alerts, and monitoring logic.\n */\n\nexport const PAYMENT_RECOMMENDATION_KEYS = {\n RETRY_LOGIC: 'recommendation.retry_logic',\n CHECK_PROVIDER: 'recommendation.check_provider',\n CRITICAL_ALERT: 'recommendation.critical_alert',\n USER_FACING: 'recommendation.user_facing',\n SYSTEM_STABLE: 'recommendation.system_stable',\n} as const;\n\n/** Union type of all available recommendation keys */\nexport type PaymentRecommendationKey =\n (typeof PAYMENT_RECOMMENDATION_KEYS)[keyof typeof PAYMENT_RECOMMENDATION_KEYS];\n","import { PAYMENT_STATUS } from '../provider';\n\nexport enum IDEMPOTENCY_STATUS {\n PENDING = 'PENDING',\n COMPLETED = 'COMPLETED',\n FAILED = 'FAILED',\n}\n\nexport const IDEMPOTENCY_SAFE_STATUSES: PAYMENT_STATUS[] = [\n PAYMENT_STATUS.Completed,\n PAYMENT_STATUS.Settled,\n PAYMENT_STATUS.Refunded,\n PAYMENT_STATUS.PartiallyRefunded,\n PAYMENT_STATUS.Disputed,\n];\n","// KYC Status\nexport enum KYC_STATUS {\n Pending = 'PENDING',\n Approved = 'APPROVED',\n Rejected = 'REJECTED',\n Expired = 'EXPIRED',\n}\n\n// KYC Tier\nexport enum KYC_TIER {\n Tier0 = 'TIER_0',\n Tier1 = 'TIER_1',\n Tier2 = 'TIER_2',\n Tier3 = 'TIER_3',\n}\n\n// KYC Provider\nexport enum KYC_PROVIDER {\n StripeIdentity = 'STRIPE_IDENTITY',\n Sumsub = 'SUMSUB',\n Onfido = 'ONFIDO',\n Jumio = 'JUMIO',\n Manual = 'MANUAL',\n}\n\nexport enum ONBOARD_STATUS {\n Pending = 'PENDING', // User needs to complete KYC\n Completed = 'COMPLETED', // KYC completed successfully\n Redirect = 'REJECTED', // KYC rejected\n Failed = 'FAILED', // Technical or unknown failure\n}\n\nexport enum ONBOARD_LINK_TYPE {\n Onboard = 'ONBOARD', // First-time onboarding\n Update = 'UPDATE', // Update missing info\n}\n\n/**\n * KYC entity type for onboarding and verification.\n */\nexport enum KYC_ENTITY_TYPE {\n Individual = 'individual', // Natural person\n Company = 'company', // Standard legal entity / corporation\n NonProfit = 'non_profit', // Non-profit organization / NGO\n GovernmentEntity = 'government_entity', // Government agency or public entity\n}\n\n/**\n * Configuration for KYC per user type.\n */\nexport interface UserTypeKycConfig {\n kycRequired: boolean;\n entityType: KYC_ENTITY_TYPE | null;\n}\n","/**\n * Notification Constants and Enums\n *\n * Type-level constants and enum values for the notifications system.\n *\n * @module notifications/enums\n */\n\n/**\n * Notification Providers\n * Standard provider names to ensure consistency across the package\n */\nexport const NOTIFICATION_PROVIDERS = {\n /** Infobip omnichannel provider (Email, SMS, WhatsApp) - PRIMARY */\n INFOBIP: 'Infobip',\n\n /** SendGrid email provider - FALLBACK */\n SENDGRID: 'SendGrid',\n\n /** Mock email provider for testing */\n MOCK_EMAIL: 'MockEmail',\n\n /** Mock SMS provider for testing */\n MOCK_SMS: 'MockSMS',\n\n /** Mock push provider for testing */\n MOCK_PUSH: 'MockPush',\n} as const;\n\n/**\n * Notification Channels\n * Available notification delivery channels\n */\nexport const NOTIFICATION_CHANNELS = {\n EMAIL: 'email',\n SMS: 'sms',\n PUSH: 'push',\n} as const;\n\n/**\n * Notification Categories (FR-4.3)\n * Determines opt-out behavior for compliance\n */\nexport const NOTIFICATION_CATEGORIES = {\n /** Cannot be opted out - compliance requirement (password resets, order confirmations) */\n TRANSACTIONAL: 'transactional',\n\n /** User can opt-out (newsletters, promotions) */\n MARKETING: 'marketing',\n\n /** User can opt-out (likes, comments, follows) */\n SOCIAL: 'social',\n\n /** System alerts and notifications (security alerts, system status) */\n SYSTEM: 'system',\n\n /** Promotional offers and campaigns */\n PROMOTIONAL: 'promotional',\n} as const;\n\n/**\n * Signature verification method for webhooks\n */\nexport enum SIGNATURE_METHOD {\n HmacSha256 = 'hmac-sha256',\n HmacSha1 = 'hmac-sha1',\n HmacSha512 = 'hmac-sha512',\n Custom = 'custom',\n}\n\n/**\n * Webhook event types mapped to internal notification events\n */\nexport enum WEBHOOK_EVENT_TYPE {\n // Delivery events\n Delivered = 'delivered',\n Bounced = 'bounced',\n Deferred = 'deferred',\n Dropped = 'dropped',\n\n // Engagement events\n Opened = 'opened',\n Clicked = 'clicked',\n\n // Spam/unsubscribe events\n SpamReport = 'spam_report',\n Unsubscribed = 'unsubscribed',\n\n // SMS-specific\n SmsDelivered = 'sms_delivered',\n SmsFailed = 'sms_failed',\n\n // Push-specific\n PushDelivered = 'push_delivered',\n PushFailed = 'push_failed',\n\n // Generic\n Unknown = 'unknown',\n}\n\n/**\n * Webhook encryption method for PII-safe IDs\n */\nexport enum WEBHOOK_ENCRYPTION_METHOD {\n /** HMAC-SHA256 hashing (recommended for IDs) */\n HmacSha256 = 'hmac-sha256',\n /** HMAC-SHA512 hashing (stronger) */\n HmacSha512 = 'hmac-sha512',\n /** No encryption (not recommended) */\n None = 'none',\n}\n\n/**\n * Common MIME types for attachments\n */\nexport const MIME_TYPES = {\n // Documents\n PDF: 'application/pdf',\n DOC: 'application/msword',\n DOCX: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',\n XLS: 'application/vnd.ms-excel',\n XLSX: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',\n PPT: 'application/vnd.ms-powerpoint',\n PPTX: 'application/vnd.openxmlformats-officedocument.presentationml.presentation',\n TXT: 'text/plain',\n CSV: 'text/csv',\n\n // Images\n PNG: 'image/png',\n JPG: 'image/jpeg',\n JPEG: 'image/jpeg',\n GIF: 'image/gif',\n SVG: 'image/svg+xml',\n WEBP: 'image/webp',\n\n // Archives\n ZIP: 'application/zip',\n RAR: 'application/x-rar-compressed',\n TAR: 'application/x-tar',\n GZIP: 'application/gzip',\n\n // Other\n JSON: 'application/json',\n XML: 'application/xml',\n} as const;\n\n/**\n * Common file extensions for attachments\n */\nexport const FILE_EXTENSIONS = {\n // Documents\n PDF: '.pdf',\n DOC: '.doc',\n DOCX: '.docx',\n XLS: '.xls',\n XLSX: '.xlsx',\n PPT: '.ppt',\n PPTX: '.pptx',\n TXT: '.txt',\n CSV: '.csv',\n\n // Images\n PNG: '.png',\n JPG: '.jpg',\n JPEG: '.jpeg',\n GIF: '.gif',\n SVG: '.svg',\n WEBP: '.webp',\n\n // Archives\n ZIP: '.zip',\n RAR: '.rar',\n TAR: '.tar',\n GZ: '.gz',\n GZIP: '.gzip',\n\n // Other\n JSON: '.json',\n XML: '.xml',\n} as const;\n","/**\n * Notification Validation Schemas\n *\n * Zod schemas for validating notification inputs\n * Ensures type safety and prevents invalid data from entering the system\n *\n * @module notifications/schemas\n */\n\nimport { z } from 'zod';\nimport { NOTIFICATION_CATEGORIES } from './enums';\n\n// Validation length constants\nconst MAX_EMAIL_LENGTH = 255;\nconst MAX_USER_ID_LENGTH = 255;\nconst MAX_TEMPLATE_ID_LENGTH = 255;\nconst MAX_DEVICE_TOKEN_LENGTH = 512;\n\n/**\n * Email address validation\n * - Must be valid email format\n * - Max 255 characters\n * - Automatically lowercased and trimmed\n */\nexport const EmailSchema = z\n .string()\n .email('Invalid email address format')\n .max(MAX_EMAIL_LENGTH, 'Email address must be 255 characters or less')\n .transform(val => val.trim().toLowerCase());\n\n/**\n * Phone number validation (E.164 format)\n * - Must start with optional + followed by country code\n * - 1-15 digits total (E.164 standard)\n * - Examples: +14155552671, +442071838750, +8613800000000\n */\nexport const PhoneSchema = z\n .string()\n .regex(/^\\+?[1-9]\\d{1,14}$/, 'Invalid phone number format (E.164 expected)')\n .describe('Phone number in E.164 format');\n\n/**\n * User ID validation\n * - Required, non-empty string\n * - Max 255 characters\n */\nexport const UserIdSchema = z\n .string()\n .min(1, 'User ID is required')\n .max(MAX_USER_ID_LENGTH, 'User ID must be 255 characters or less');\n\n/**\n * Template ID validation\n * - Only lowercase letters, numbers, hyphens, and slashes\n * - Used for file path construction, must be safe\n * - Examples: welcome, password-reset, order/confirmation\n */\nexport const TemplateIdSchema = z\n .string()\n .min(1, 'Template ID is required')\n .regex(\n /^[a-z0-9-/]+$/,\n 'Template ID must contain only lowercase letters, numbers, hyphens, and slashes'\n )\n .max(MAX_TEMPLATE_ID_LENGTH, 'Template ID must be 255 characters or less');\n\n/**\n * Locale validation\n * - ISO 639-1 language code (2 lowercase letters)\n * - Optional ISO 3166-1 country code (2 uppercase letters)\n * - Examples: en, en-US, es, es-MX, fr-FR\n */\nexport const LocaleSchema = z\n .string()\n .regex(/^[a-z]{2}(-[A-Z]{2})?$/, 'Locale must be in format: en, en-US, es, es-MX')\n .describe('Locale in ISO 639-1 format');\n\n/**\n * Notification category validation (FR-4.3)\n * - transactional: Cannot be opted out (compliance requirement)\n * - marketing: User can opt-out\n * - social: User can opt-out\n */\nexport const NotificationCategorySchema = z\n .enum([\n NOTIFICATION_CATEGORIES.TRANSACTIONAL,\n NOTIFICATION_CATEGORIES.MARKETING,\n NOTIFICATION_CATEGORIES.SOCIAL,\n NOTIFICATION_CATEGORIES.SYSTEM,\n NOTIFICATION_CATEGORIES.PROMOTIONAL,\n ] as const)\n .default(NOTIFICATION_CATEGORIES.TRANSACTIONAL)\n .describe('Notification category for compliance and user preferences');\n\n/**\n * Queue priority validation\n */\nexport const QueuePrioritySchema = z.enum(['high', 'normal', 'low']);\n\n/**\n * Correlation ID validation\n * - UUID v4 format\n * - Used for tracing across systems\n */\nexport const CorrelationIdSchema = z\n .string()\n .uuid('Correlation ID must be a valid UUID v4')\n .describe('UUID v4 correlation ID');\n\n/**\n * Template data validation\n * - Must be a valid object\n * - Can contain strings, numbers, booleans, or nested objects\n * - Arrays are allowed\n */\nexport const TemplateDataSchema = z.record(z.string(), z.unknown()).optional();\n\n/**\n * Device token validation (for push notifications)\n * - Non-empty string\n * - Max 512 characters (FCM tokens can be quite long)\n */\nexport const DeviceTokenSchema = z\n .string()\n .min(1, 'Device token is required')\n .max(MAX_DEVICE_TOKEN_LENGTH, 'Device token must be 512 characters or less');\n","/**\n * Webhook Validation Schemas\n *\n * Zod schemas for validating webhook payloads from notification providers\n * Provider-specific webhook event structures\n *\n * @module notifications/webhooks.schemas\n */\n\nimport { z } from 'zod';\n\n// ============================================================================\n// INFOBIP EMAIL DELIVERY WEBHOOK SCHEMAS\n// ============================================================================\n\n/**\n * Infobip Email Status schema\n */\nexport const InfobipEmailStatusSchema = z.object({\n groupId: z.number().optional(),\n groupName: z.string().optional(),\n id: z.number().optional(),\n name: z.string().optional(),\n description: z.string().optional(),\n action: z.string().optional(),\n});\n\n/**\n * Infobip Error Info schema\n */\nexport const InfobipErrorInfoSchema = z.object({\n groupId: z.number().optional(),\n groupName: z.string().optional(),\n id: z.number().optional(),\n name: z.string().optional(),\n description: z.string().optional(),\n permanent: z.boolean().optional(),\n});\n\n/**\n * Infobip Price Info schema\n */\nexport const InfobipPriceInfoSchema = z.object({\n pricePerMessage: z.number().optional(),\n currency: z.string().optional(),\n});\n\n/**\n * Infobip Delivery Result schema\n */\nexport const InfobipDeliveryResultSchema = z\n .object({\n messageId: z.string().optional(),\n to: z.string().optional(),\n bulkId: z.string().optional(),\n sentAt: z.string().optional(),\n doneAt: z.string().optional(),\n status: InfobipEmailStatusSchema.optional(),\n error: InfobipErrorInfoSchema.optional(),\n attemptCount: z.number().optional(),\n timeToFirstAttempt: z.number().optional(),\n sendingIp: z.string().optional(),\n price: InfobipPriceInfoSchema.optional(),\n smsCount: z.number().optional(),\n browserLink: z.string().optional(),\n applicationId: z.string().optional(),\n entityId: z.string().optional(),\n campaignReferenceId: z.string().optional(),\n callbackData: z.string().optional(),\n })\n .loose();\n\n/**\n * Infobip Delivery Webhook Payload schema\n */\nexport const InfobipDeliveryWebhookSchema = z.object({\n results: z.array(InfobipDeliveryResultSchema),\n});\n\n// ============================================================================\n// INFOBIP EMAIL TRACKING WEBHOOK SCHEMAS\n// ============================================================================\n\n/**\n * Infobip Geo Location schema\n */\nexport const InfobipGeoLocationSchema = z\n .object({\n countryName: z.string().optional(),\n countryCode: z.string().optional(),\n regionName: z.string().optional(),\n city: z.string().optional(),\n latitude: z.number().optional(),\n longitude: z.number().optional(),\n })\n .loose();\n\n/**\n * Infobip Recipient Info schema\n */\nexport const InfobipRecipientInfoSchema = z\n .object({\n messageId: z.number().optional(),\n to: z.string().optional(),\n requestId: z.string().optional(),\n sentDateTime: z.number().optional(),\n })\n .loose();\n\n/**\n * Infobip Tracking Event schema\n */\nexport const InfobipTrackingEventSchema = z\n .object({\n messageId: z.number().optional(),\n bulkId: z.string().optional(),\n recipient: z.string().optional(),\n sender: z.string().optional(),\n domain: z.string().optional(),\n notificationType: z.string().optional(), // OPENED, CLICKED, COMPLAINED, LATE_BOUNCE, UNSUBSCRIBED\n eventId: z.string().optional(),\n sendDateTime: z.number().optional(),\n url: z.string().optional(), // For CLICKED events\n applicationId: z.string().optional(),\n entityId: z.string().optional(),\n campaignReferenceId: z.string().optional(),\n callbackData: z.string().optional(),\n geoLocation: InfobipGeoLocationSchema.optional(),\n recipientInfo: InfobipRecipientInfoSchema.optional(),\n })\n .loose();\n\n/**\n * Infobip Tracking Webhook Payload schema\n * Note: Tracking webhooks send a single event object, not an array\n */\nexport const InfobipTrackingWebhookSchema = z\n .object({\n messageId: z.number().optional(),\n bulkId: z.string().optional(),\n recipient: z.string().optional(),\n sender: z.string().optional(),\n domain: z.string().optional(),\n notificationType: z.string().optional(),\n eventId: z.string().optional(),\n sendDateTime: z.number().optional(),\n url: z.string().optional(),\n applicationId: z.string().optional(),\n entityId: z.string().optional(),\n campaignReferenceId: z.string().optional(),\n callbackData: z.string().optional(),\n geoLocation: InfobipGeoLocationSchema.optional(),\n recipientInfo: InfobipRecipientInfoSchema.optional(),\n })\n .loose();\n\n// ============================================================================\n// SENDGRID WEBHOOK SCHEMAS\n// ============================================================================\n\n/**\n * SendGrid Event schema\n */\nexport const SendGridEventSchema = z\n .object({\n email: z.string().email(),\n timestamp: z.number(),\n event: z.enum([\n 'processed',\n 'dropped',\n 'delivered',\n 'deferred',\n 'bounce',\n 'open',\n 'click',\n 'spam_report',\n 'unsubscribe',\n 'group_unsubscribe',\n 'group_resubscribe',\n ]),\n sg_event_id: z.string(),\n sg_message_id: z.string(),\n\n // Custom args (our notification metadata)\n notification_id: z.string().optional(),\n recipient_id: z.string().optional(),\n category: z.string().optional(),\n\n // Event-specific fields\n url: z.string().optional(), // For click events\n reason: z.string().optional(), // For bounce/drop events\n status: z.string().optional(), // For drop/bounce events\n response: z.string().optional(), // For bounce events\n useragent: z.string().optional(), // For open/click events\n ip: z.string().optional(), // For open/click events\n\n // Unsubscribe-specific\n asm_group_id: z.number().optional(), // Unsubscribe group ID\n })\n .loose(); // Allow additional fields\n\n/**\n * SendGrid Webhook Payload schema (array of events)\n */\nexport const SendGridWebhookSchema = z.array(SendGridEventSchema);\n\n// ============================================================================\n// TYPE EXPORTS\n// ============================================================================\n\n// Infobip webhook-specific types (prefixed to avoid collision with API types)\nexport type InfobipWebhookEmailStatus = z.infer<typeof InfobipEmailStatusSchema>;\nexport type InfobipWebhookErrorInfo = z.infer<typeof InfobipErrorInfoSchema>;\nexport type InfobipWebhookPriceInfo = z.infer<typeof InfobipPriceInfoSchema>;\nexport type InfobipWebhookDeliveryResult = z.infer<typeof InfobipDeliveryResultSchema>;\nexport type InfobipWebhookDeliveryPayload = z.infer<typeof InfobipDeliveryWebhookSchema>;\n\nexport type InfobipWebhookGeoLocation = z.infer<typeof InfobipGeoLocationSchema>;\nexport type InfobipWebhookRecipientInfo = z.infer<typeof InfobipRecipientInfoSchema>;\nexport type InfobipWebhookTrackingEvent = z.infer<typeof InfobipTrackingEventSchema>;\nexport type InfobipWebhookTrackingPayload = z.infer<typeof InfobipTrackingWebhookSchema>;\n\n// SendGrid webhook types\nexport type SendGridWebhookEvent = z.infer<typeof SendGridEventSchema>;\nexport type SendGridWebhookPayload = z.infer<typeof SendGridWebhookSchema>;\n","/**\n * Media file extensions\n */\nexport const MEDIA_EXTENSIONS = {\n IMAGE: ['jpg', 'jpeg', 'png', 'gif', 'webp', 'svg', 'ico', 'bmp', 'tiff'],\n VIDEO: ['mp4', 'webm', 'avi', 'mov', 'wmv', 'flv', 'mkv', '3gp'],\n AUDIO: ['mp3', 'wav', 'ogg', 'aac', 'flac', 'm4a', 'wma'],\n} as const;\n\n/**\n * Media MIME type prefixes\n */\nexport const MEDIA_MIME_PREFIXES = ['image/', 'video/', 'audio/'] as const;\n\n/**\n * ANSI color codes\n */\nexport const COLORS = {\n // Reset\n reset: '\\x1b[0m',\n\n // Text colors\n black: '\\x1b[30m',\n red: '\\x1b[31m',\n green: '\\x1b[32m',\n yellow: '\\x1b[33m',\n blue: '\\x1b[34m',\n magenta: '\\x1b[35m',\n cyan: '\\x1b[36m',\n white: '\\x1b[37m',\n gray: '\\x1b[90m',\n\n // Bright colors\n brightRed: '\\x1b[91m',\n brightGreen: '\\x1b[92m',\n brightYellow: '\\x1b[93m',\n brightBlue: '\\x1b[94m',\n brightMagenta: '\\x1b[95m',\n brightCyan: '\\x1b[96m',\n brightWhite: '\\x1b[97m',\n\n // Background colors\n bgRed: '\\x1b[41m',\n bgGreen: '\\x1b[42m',\n bgYellow: '\\x1b[43m',\n bgBlue: '\\x1b[44m',\n bgMagenta: '\\x1b[45m',\n bgCyan: '\\x1b[46m',\n bgWhite: '\\x1b[47m',\n\n // Text styles\n bold: '\\x1b[1m',\n dim: '\\x1b[2m',\n italic: '\\x1b[3m',\n underline: '\\x1b[4m',\n blink: '\\x1b[5m',\n reverse: '\\x1b[7m',\n hidden: '\\x1b[8m',\n strikethrough: '\\x1b[9m',\n} as const;\n\n/**\n * Correlation ID types for different contexts\n * Used across packages for distributed tracing and event correlation\n */\nexport enum CORRELATION_TYPE {\n /** Network event correlation */\n NETWORK = 'net',\n /** API request correlation */\n API = 'api',\n /** User session correlation */\n SESSION = 'session',\n /** Transaction correlation */\n TRANSACTION = 'txn',\n /** Event correlation */\n EVENT = 'evt',\n /** Trace correlation */\n TRACE = 'trace',\n /** Generic correlation */\n GENERIC = 'corr',\n}\n","/**\n * Monitoring/Observability Types\n *\n * Adapter-based observability system supporting multiple providers\n * (Datadog, Grafana, OpenTelemetry, etc.) with parallel and priority modes.\n *\n * All types are prefixed with \"Monitoring\" for this dedicated module.\n *\n * @module observability/types\n */\n\n// ─────────────────────────────────────────────────────────────────────────────\n// Monitoring Types\n// ─────────────────────────────────────────────────────────────────────────────\n\n/**\n * Supported observability providers\n * Currently implemented: 'datadog', 'console', 'noop'\n * Planned: 'grafana', 'opentelemetry', 'prometheus', 'newrelic', 'custom'\n */\nexport type MonitoringObservabilityProvider =\n | 'datadog'\n | 'console'\n | 'noop'\n // Planned providers (uncomment when implemented):\n // | 'grafana'\n // | 'opentelemetry'\n // | 'prometheus'\n // | 'newrelic'\n | 'custom';\n\n/**\n * Metric types\n */\nexport type MonitoringMetricType = 'counter' | 'gauge' | 'histogram' | 'summary';\n\n/**\n * Span status for tracing\n */\nexport type MonitoringSpanStatus = 'ok' | 'error' | 'unset';\n\n/**\n * Log levels\n */\nexport type MonitoringLogLevel = 'debug' | 'info' | 'warn' | 'error' | 'fatal';\n\n// ─────────────────────────────────────────────────────────────────────────────\n// Metric Types\n// ─────────────────────────────────────────────────────────────────────────────\n\n/**\n * Base metric options\n */\nexport interface MonitoringMetricOptions {\n /** Metric name (e.g., 'http.request.duration') */\n name: string;\n /** Human-readable description */\n description?: string;\n /** Unit of measurement (e.g., 'ms', 'bytes', 'count') */\n unit?: string;\n /** Tags/labels for the metric */\n tags?: Record<string, string | number | boolean>;\n}\n\n/**\n * Counter metric (monotonically increasing)\n */\nexport interface MonitoringCounterMetric extends MonitoringMetricOptions {\n type: 'counter';\n /** Value to increment by (default: 1) */\n value?: number;\n}\n\n/**\n * Gauge metric (can go up or down)\n */\nexport interface MonitoringGaugeMetric extends MonitoringMetricOptions {\n type: 'gauge';\n /** Current value */\n value: number;\n}\n\n/**\n * Histogram metric (distribution of values)\n */\nexport interface MonitoringHistogramMetric extends MonitoringMetricOptions {\n type: 'histogram';\n /** Value to record */\n value: number;\n /** Bucket boundaries (optional) */\n buckets?: number[];\n}\n\n/**\n * Summary metric (percentiles)\n */\nexport interface MonitoringSummaryMetric extends MonitoringMetricOptions {\n type: 'summary';\n /** Value to record */\n value: number;\n /** Percentiles to track (e.g., [0.5, 0.9, 0.99]) */\n percentiles?: number[];\n}\n\n/**\n * Union of all metric types\n */\nexport type MonitoringMetric =\n | MonitoringCounterMetric\n | MonitoringGaugeMetric\n | MonitoringHistogramMetric\n | MonitoringSummaryMetric;\n\n// ─────────────────────────────────────────────────────────────────────────────\n// Tracing Types\n// ─────────────────────────────────────────────────────────────────────────────\n\n/**\n * Span context for distributed tracing\n */\nexport interface MonitoringSpanContext {\n /** Unique trace ID */\n traceId: string;\n /** Unique span ID */\n spanId: string;\n /** Parent span ID (if any) */\n parentSpanId?: string;\n /** Sampling decision */\n sampled?: boolean;\n}\n\n/**\n * Span attributes following OpenTelemetry semantic conventions.\n * Property names use dot notation as per OTel spec (e.g., 'service.name').\n */\n\nexport interface MonitoringSpanAttributes {\n /** Service name */\n // eslint-disable-next-line @typescript-eslint/naming-convention\n 'service.name'?: string;\n /** Operation name */\n // eslint-disable-next-line @typescript-eslint/naming-convention\n 'operation.name'?: string;\n /** HTTP method */\n // eslint-disable-next-line @typescript-eslint/naming-convention\n 'http.method'?: string;\n /** HTTP URL */\n // eslint-disable-next-line @typescript-eslint/naming-convention\n 'http.url'?: string;\n /** HTTP status code */\n // eslint-disable-next-line @typescript-eslint/naming-convention\n 'http.status_code'?: number;\n /** Database system */\n // eslint-disable-next-line @typescript-eslint/naming-convention\n 'db.system'?: string;\n /** Database statement */\n // eslint-disable-next-line @typescript-eslint/naming-convention\n 'db.statement'?: string;\n /** Error flag */\n error?: boolean;\n /** Error message */\n // eslint-disable-next-line @typescript-eslint/naming-convention\n 'error.message'?: string;\n /** Custom attributes */\n [key: string]: string | number | boolean | undefined;\n}\n\n/**\n * Span event (point-in-time occurrence within a span)\n */\nexport interface MonitoringSpanEvent {\n /** Event name */\n name: string;\n /** Event timestamp */\n timestamp?: number;\n /** Event attributes */\n attributes?: Record<string, string | number | boolean>;\n}\n\n/**\n * Options for creating a span\n */\nexport interface MonitoringSpanOptions {\n /** Span name (operation being traced) */\n name: string;\n /** Span kind */\n kind?: 'internal' | 'server' | 'client' | 'producer' | 'consumer';\n /** Initial attributes */\n attributes?: MonitoringSpanAttributes;\n /** Parent span context (for distributed tracing) */\n parentContext?: MonitoringSpanContext;\n /** Start time (default: now) */\n startTime?: number;\n}\n\n/**\n * Active span interface\n */\nexport interface MonitoringSpan {\n /** Span context */\n context: MonitoringSpanContext;\n /** Set attribute on span */\n setAttribute(key: string, value: string | number | boolean): void;\n /** Set multiple attributes */\n setAttributes(attributes: MonitoringSpanAttributes): void;\n /** Add event to span */\n addEvent(event: MonitoringSpanEvent): void;\n /** Set span status */\n setStatus(status: MonitoringSpanStatus, message?: string): void;\n /** End the span */\n end(endTime?: number): void;\n /** Record exception */\n recordException(error: Error): void;\n}\n\n// ─────────────────────────────────────────────────────────────────────────────\n// Logging Types\n// ─────────────────────────────────────────────────────────────────────────────\n\n/**\n * Structured log entry\n */\nexport interface MonitoringLogEntry {\n /** Log level */\n level: MonitoringLogLevel;\n /** Log message */\n message: string;\n /** Timestamp */\n timestamp?: number;\n /** Service/component name */\n service?: string;\n /** Additional context */\n context?: Record<string, unknown>;\n /** Associated trace ID */\n traceId?: string;\n /** Associated span ID */\n spanId?: string;\n /** Error object (if logging an error) */\n error?: Error;\n}\n\n// ─────────────────────────────────────────────────────────────────────────────\n// Event Types\n// ─────────────────────────────────────────────────────────────────────────────\n\n/**\n * Custom event for observability\n */\nexport interface MonitoringObservabilityEvent {\n /** Event name */\n name: string;\n /** Event timestamp */\n timestamp?: number;\n /** Event properties */\n properties?: Record<string, unknown>;\n /** Associated tags */\n tags?: Record<string, string>;\n}\n\n// ─────────────────────────────────────────────────────────────────────────────\n// Adapter Interface\n// ─────────────────────────────────────────────────────────────────────────────\n\n/**\n * Base observability adapter interface.\n *\n * All observability providers (Datadog, Grafana, OpenTelemetry, etc.)\n * must implement this interface.\n *\n * @example\n * ```typescript\n * class DatadogAdapter implements ObservabilityAdapter {\n * readonly provider = 'datadog';\n * readonly name = 'DatadogAdapter';\n *\n * async initialize(config: DatadogConfig): Promise<void> {\n * // Initialize Datadog client\n * }\n *\n * async recordMetric(metric: Metric): Promise<void> {\n * // Send to Datadog\n * }\n *\n * // ... other methods\n * }\n * ```\n */\nexport interface MonitoringObservabilityAdapter {\n /** Provider type */\n readonly provider: MonitoringObservabilityProvider;\n\n /** Adapter name for logging */\n readonly name: string;\n\n /** Whether the adapter is initialized */\n readonly isInitialized: boolean;\n\n // ─── Lifecycle ─────────────────────────────────────────────────────────────\n\n /**\n * Initialize the adapter with provider-specific config\n */\n initialize(config: MonitoringObservabilityAdapterConfig): Promise<void>;\n\n /**\n * Shutdown/cleanup the adapter\n */\n shutdown(): Promise<void>;\n\n /**\n * Check if adapter is healthy/connected\n */\n isHealthy(): Promise<boolean>;\n\n // ─── Metrics ───────────────────────────────────────────────────────────────\n\n /**\n * Record a metric\n */\n recordMetric(metric: MonitoringMetric): Promise<void>;\n\n /**\n * Increment a counter\n */\n incrementCounter(name: string, value?: number, tags?: Record<string, string>): Promise<void>;\n\n /**\n * Set a gauge value\n */\n setGauge(name: string, value: number, tags?: Record<string, string>): Promise<void>;\n\n /**\n * Record a histogram value\n */\n recordHistogram(name: string, value: number, tags?: Record<string, string>): Promise<void>;\n\n // ─── Tracing ───────────────────────────────────────────────────────────────\n\n /**\n * Start a new span\n */\n startSpan(options: MonitoringSpanOptions): MonitoringSpan;\n\n /**\n * Get current active span (if any)\n */\n getActiveSpan(): MonitoringSpan | null;\n\n /**\n * Run a function within a span\n */\n withSpan<T>(options: MonitoringSpanOptions, fn: (span: MonitoringSpan) => Promise<T>): Promise<T>;\n\n // ─── Logging ───────────────────────────────────────────────────────────────\n\n /**\n * Send a log entry\n */\n log(entry: MonitoringLogEntry): Promise<void>;\n\n // ─── Events ────────────────────────────────────────────────────────────────\n\n /**\n * Send a custom event\n */\n sendEvent(event: MonitoringObservabilityEvent): Promise<void>;\n\n // ─── Flush ─────────────────────────────────────────────────────────────────\n\n /**\n * Flush any buffered data\n */\n flush(): Promise<void>;\n}\n\n// ─────────────────────────────────────────────────────────────────────────────\n// Adapter Configuration\n// ─────────────────────────────────────────────────────────────────────────────\n\n/**\n * Base adapter configuration\n */\nexport interface MonitoringObservabilityAdapterConfig {\n /** Enable/disable the adapter */\n enabled?: boolean;\n /** Service name for tagging */\n serviceName?: string;\n /** Environment (production, staging, development) */\n environment?: string;\n /** Default tags to add to all metrics/spans */\n defaultTags?: Record<string, string>;\n /** Sampling rate for traces (0.0 to 1.0) */\n samplingRate?: number;\n /** Flush interval in milliseconds */\n flushInterval?: number;\n /** Buffer size before auto-flush */\n bufferSize?: number;\n}\n\n/**\n * Datadog-specific configuration\n */\nexport interface MonitoringDatadogAdapterConfig extends MonitoringObservabilityAdapterConfig {\n /** Datadog API key */\n apiKey: string;\n /** Datadog site (e.g., 'datadoghq.com', 'datadoghq.eu') */\n site?: string;\n /** Enable APM tracing */\n apmEnabled?: boolean;\n /** Enable RUM (Real User Monitoring) */\n rumEnabled?: boolean;\n /** RUM application ID */\n rumApplicationId?: string;\n /** RUM client token */\n rumClientToken?: string;\n}\n\n/**\n * OpenTelemetry-specific configuration\n */\nexport interface MonitoringOpenTelemetryAdapterConfig extends MonitoringObservabilityAdapterConfig {\n /** OTLP endpoint URL */\n endpoint: string;\n /** Headers for OTLP exporter */\n headers?: Record<string, string>;\n /** Export interval in milliseconds */\n exportInterval?: number;\n /** Resource attributes */\n resourceAttributes?: Record<string, string>;\n}\n\n/**\n * Grafana/Prometheus-specific configuration\n */\nexport interface MonitoringGrafanaAdapterConfig extends MonitoringObservabilityAdapterConfig {\n /** Push gateway URL (for Prometheus) */\n pushGatewayUrl?: string;\n /** Grafana Cloud user */\n grafanaCloudUser?: string;\n /** Grafana Cloud API key */\n grafanaCloudApiKey?: string;\n /** Loki endpoint for logs */\n lokiEndpoint?: string;\n /** Tempo endpoint for traces */\n tempoEndpoint?: string;\n}\n\n/**\n * Console adapter configuration (for development)\n */\nexport interface MonitoringConsoleAdapterConfig extends MonitoringObservabilityAdapterConfig {\n /** Pretty print output */\n prettyPrint?: boolean;\n /** Include timestamps */\n includeTimestamps?: boolean;\n /** Log level filter */\n logLevel?: MonitoringLogLevel;\n}\n\n// ─────────────────────────────────────────────────────────────────────────────\n// Composite Adapter Types (Parallel & Priority)\n// ─────────────────────────────────────────────────────────────────────────────\n\n/**\n * Mode for composite adapter\n */\nexport type MonitoringCompositeMode = 'parallel' | 'priority';\n\n/**\n * Configuration for composite adapter\n */\nexport interface MonitoringCompositeAdapterConfig extends MonitoringObservabilityAdapterConfig {\n /** Execution mode */\n mode: MonitoringCompositeMode;\n\n /**\n * Child adapters to use.\n * For 'parallel': all adapters receive data simultaneously\n * For 'priority': try first adapter, fallback to next on failure\n */\n adapters: MonitoringObservabilityAdapter[];\n\n /**\n * For 'priority' mode: continue to next adapter on these error types\n * Default: all errors trigger fallback\n */\n fallbackOnErrors?: string[];\n\n /**\n * For 'parallel' mode: fail if any adapter fails (default: false)\n * If false, logs errors but continues\n */\n failOnAnyError?: boolean;\n\n /**\n * Timeout for each adapter operation in ms (default: 5000)\n */\n adapterTimeout?: number;\n}\n\n// ─────────────────────────────────────────────────────────────────────────────\n// Service Integration Types\n// ─────────────────────────────────────────────────────────────────────────────\n\n/**\n * Operation context for service hooks\n */\nexport interface MonitoringOperationContext {\n /** Service name */\n serviceName: string;\n /** Operation name (e.g., 'create', 'update', 'delete') */\n operation: string;\n /** Entity type (e.g., 'user', 'topic') */\n entityType?: string;\n /** Entity ID (if applicable) */\n entityId?: string;\n /** Start timestamp */\n startTime: number;\n /** Custom attributes */\n attributes?: Record<string, unknown>;\n /** Parent trace context */\n parentContext?: MonitoringSpanContext;\n}\n\n/**\n * Operation result for service hooks\n */\nexport interface MonitoringOperationResult {\n /** Whether operation succeeded */\n success: boolean;\n /** Duration in milliseconds */\n duration: number;\n /** Error (if failed) */\n error?: Error;\n /** Result data (optional) */\n data?: unknown;\n}\n\n// ─────────────────────────────────────────────────────────────────────────────\n// Service Types\n// ─────────────────────────────────────────────────────────────────────────────\n\n/**\n * Adapter with priority and failover configuration.\n * Higher priority = tried first in priority mode, executed first in parallel mode.\n */\nexport interface MonitoringAdapterWithPriority {\n /** The adapter instance (should be pre-initialized) */\n adapter: MonitoringObservabilityAdapter;\n /**\n * Priority level (higher = more important)\n * - In priority mode: higher priority adapters are tried first\n * - In parallel mode: higher priority adapters are executed first\n * Default: 0\n */\n priority?: number;\n /**\n * Mark this adapter as a failover/fallback adapter.\n * - In parallel mode: failover adapters only receive data if primary adapters fail\n * - In priority mode: failover adapters are only tried after all primary adapters fail\n * Default: false\n */\n failover?: boolean;\n}\n\n/**\n * Internal adapter entry with resolved metadata.\n * Used by ObservabilityService to track adapter configuration.\n */\nexport interface MonitoringAdapterEntry {\n /** The adapter instance */\n adapter: MonitoringObservabilityAdapter;\n /** Resolved priority level */\n priority: number;\n /** Whether this is a failover adapter */\n failover: boolean;\n}\n\n/**\n * Configuration for ObservabilityService.\n *\n * Note: Adapter-specific configs (apiKey, endpoints, etc.) are NOT here.\n * Each adapter is initialized separately with its own config before being passed here.\n */\nexport interface MonitoringObservabilityServiceConfig {\n /**\n * Execution mode\n * - 'single': Use only one adapter (default)\n * - 'parallel': Send to all adapters simultaneously\n * - 'priority': Try adapters in order, use first successful\n */\n mode?: 'single' | 'parallel' | 'priority';\n\n /**\n * Single adapter (for 'single' mode).\n * Should be pre-initialized.\n */\n adapter?: MonitoringObservabilityAdapter | MonitoringAdapterWithPriority;\n\n /**\n * Multiple adapters (for 'parallel' or 'priority' mode).\n * Can be plain adapters or adapters with priority config.\n * Should be pre-initialized.\n */\n adapters?: (MonitoringObservabilityAdapter | MonitoringAdapterWithPriority)[];\n\n /** Timeout for adapter operations in ms (default: 5000) */\n adapterTimeout?: number;\n\n /** For parallel mode: fail if any adapter fails (default: false) */\n failOnAnyError?: boolean;\n\n /** For priority mode: error types that trigger fallback (default: all) */\n fallbackOnErrors?: string[];\n}\n\n/**\n * Interface for ObservabilityService (for dependency injection typing)\n */\nexport interface MonitoringObservabilityServiceInterface {\n readonly isReady: boolean;\n\n // Metrics\n incrementCounter(name: string, value?: number, tags?: Record<string, string>): Promise<void>;\n setGauge(name: string, value: number, tags?: Record<string, string>): Promise<void>;\n recordHistogram(name: string, value: number, tags?: Record<string, string>): Promise<void>;\n recordMetric(metric: MonitoringMetric): Promise<void>;\n\n // Tracing\n startSpan(options: MonitoringSpanOptions): MonitoringSpan;\n withSpan<T>(options: MonitoringSpanOptions, fn: (span: MonitoringSpan) => Promise<T>): Promise<T>;\n getActiveSpan(): MonitoringSpan | null;\n\n // Logging\n log(entry: MonitoringLogEntry): Promise<void>;\n\n // Events\n sendEvent(event: MonitoringObservabilityEvent): Promise<void>;\n\n // Service operation helpers\n trackOperation<T>(\n context: MonitoringOperationContext,\n operation: () => Promise<T>\n ): Promise<{ result: T; metrics: MonitoringOperationResult }>;\n\n // Lifecycle\n shutdown(): Promise<void>;\n flush(): Promise<void>;\n isHealthy(): Promise<boolean>;\n}\n\n// ─────────────────────────────────────────────────────────────────────────────\n// Constants\n// ─────────────────────────────────────────────────────────────────────────────\n\n/**\n * Pre-defined metric names for consistency\n */\nexport const OBSERVABILITY_METRICS = {\n // Service metrics\n SERVICE_OPERATION_DURATION: 'service.operation.duration',\n SERVICE_OPERATION_COUNT: 'service.operation.count',\n SERVICE_OPERATION_ERROR: 'service.operation.error',\n\n // Database metrics\n DB_QUERY_DURATION: 'db.query.duration',\n DB_QUERY_COUNT: 'db.query.count',\n DB_CONNECTION_POOL_SIZE: 'db.connection.pool.size',\n DB_CONNECTION_POOL_USED: 'db.connection.pool.used',\n\n // Cache metrics\n CACHE_HIT: 'cache.hit',\n CACHE_MISS: 'cache.miss',\n CACHE_SET: 'cache.set',\n CACHE_DELETE: 'cache.delete',\n\n // API metrics\n API_REQUEST_DURATION: 'api.request.duration',\n API_REQUEST_COUNT: 'api.request.count',\n API_REQUEST_ERROR: 'api.request.error',\n\n // Transaction metrics\n TRANSACTION_DURATION: 'transaction.duration',\n TRANSACTION_COUNT: 'transaction.count',\n TRANSACTION_ROLLBACK: 'transaction.rollback',\n} as const;\n\n/**\n * Pre-defined span names for consistency\n */\nexport const OBSERVABILITY_SPANS = {\n SERVICE_CREATE: 'service.create',\n SERVICE_UPDATE: 'service.update',\n SERVICE_DELETE: 'service.delete',\n SERVICE_GET: 'service.get',\n SERVICE_LIST: 'service.list',\n SERVICE_BULK_CREATE: 'service.bulk_create',\n SERVICE_BULK_DELETE: 'service.bulk_delete',\n SERVICE_TRANSACTION: 'service.transaction',\n DB_QUERY: 'db.query',\n CACHE_GET: 'cache.get',\n CACHE_SET: 'cache.set',\n API_REQUEST: 'api.request',\n} as const;\n","/**\n * Event Namespace Constants\n * Centralized constants for all event namespaces in the API package\n */\n\n/**\n * Main event namespaces for the API package\n */\nexport const EVENT_NAMESPACES = {\n HEADERS: 'headers',\n NETWORK: 'network',\n ERRORS: 'errors',\n DEBUG: 'debug',\n CONFIG: 'config',\n PERFORMANCE: 'performance',\n CLIENT: 'client',\n CACHE: 'cache',\n POLLING: 'polling',\n REQUEST: 'request',\n REVALIDATION: 'revalidation',\n EVENT_MANAGER: 'eventManager',\n} as const;\n\n/**\n * Header-specific event keys\n */\nexport const HEADER_EVENTS = {\n CHANGED: 'headers:changed',\n ENRICHED: 'headers:enriched',\n CONFLICT: 'headers:conflict',\n OVERRIDE: 'headers:override',\n TRACKED: 'headers:tracked',\n MERGED: 'headers:merged',\n FILTERED: 'headers:filtered',\n VALIDATED: 'headers:validated',\n CACHED: 'headers:cached',\n CACHE_HIT: 'headers:cache:hit',\n CACHE_MISS: 'headers:cache:miss',\n // Wildcard for all header events\n ANY: 'headers:*',\n} as const;\n\n/**\n * Network-specific event keys\n */\nexport const NETWORK_EVENTS = {\n QUALITY_CHANGE: 'network:quality:changed',\n INFO_UPDATE: 'network:info-update',\n CONFIG_OVERRIDE: 'network:config:override',\n CONFIG_RESTORED: 'network:config:restored',\n OVERRIDE_CHANGE: 'network:override-change',\n PRESET_APPLIED: 'network:preset-applied',\n PRESET_CHANGED: 'network:preset:changed',\n HINTS_UPDATED: 'network:hints:updated',\n AUTO_DETECTION: 'network:auto:detection',\n MANUAL_UPDATE: 'network:manual:update',\n // Wildcard for all network events\n ANY: 'network:*',\n} as const;\n\n/**\n * Error-specific event keys\n */\nexport const ERROR_EVENTS = {\n NETWORK_ERROR: 'errors:network',\n VALIDATION_ERROR: 'errors:validation',\n AUTHENTICATION_ERROR: 'errors:authentication',\n AUTHORIZATION_ERROR: 'errors:authorization',\n RATE_LIMIT_ERROR: 'errors:rate-limit',\n SERVER_ERROR: 'errors:server',\n CLIENT_ERROR: 'errors:client',\n TIMEOUT_ERROR: 'errors:timeout',\n CONFLICT_ERROR: 'errors:conflict',\n CACHE_ERROR: 'errors:cache',\n HEADERS_ERROR: 'errors:headers',\n RETRY_ERROR: 'errors:retry',\n STRATEGY_ERROR: 'errors:strategy',\n REGIONAL_ERROR: 'errors:regional',\n NOT_FOUND_ERROR: 'errors:not-found',\n EXTERNAL_SERVICE_ERROR: 'errors:external-service',\n UNKNOWN_ERROR: 'errors:unknown',\n GENERIC_ERROR: 'errors:generic',\n // Wildcard for all error events\n ANY: 'errors:*',\n} as const;\n\n/**\n * Handler scopes for different levels of event handlers\n * These prefixes are used for registering handlers at different priority levels\n * Can be used for any type of handler (error, request, response, debug, etc.)\n *\n * Priority order (lowest to highest):\n * 1. GLOBAL - Set via setGlobalErrorHandlers(), persists across all instances\n * 2. CONFIG - Set via setGlobalConfig({ errorHandlers }), global configuration\n * 3. CLIENT - Set via createApiClient({ errorHandlers }), instance-specific\n * 4. REQUEST/TEMPORARY - Set per-request or via updateConfig(), highest priority\n *\n * Usage:\n * - GLOBAL: For app-wide handlers that should always run (e.g., logging)\n * - CONFIG: For environment-specific handlers (e.g., dev vs prod)\n * - CLIENT: For instance-specific handlers (e.g., per-service client)\n * - REQUEST/TEMPORARY: For request-specific or runtime updates\n *\n * Note: REQUEST and TEMPORARY are aliases - both use 'request' scope\n *\n * Examples of namespaced handlers:\n * - Error handlers: 'global:error', 'config:error', 'client:error'\n * - Debug handlers: 'global:debug', 'config:debug', 'client:debug'\n * - Request handlers: 'global:request', 'config:request', 'client:request'\n */\nexport const HANDLER_SCOPES = {\n GLOBAL: 'global', // Global handlers (lowest priority, persists across all instances)\n CONFIG: 'config', // Config-level handlers (middle priority, from setGlobalConfig)\n CLIENT: 'client', // Client instance handlers (high priority, instance-specific)\n TEMPORARY: 'request', // Temporary handlers (alias for REQUEST, highest priority)\n REQUEST: 'request', // Request-level handlers (highest priority, per-request)\n} as const;\n\n/**\n * Core event scopes (excluding aliases)\n * These are the actual scope values used by the event system\n */\nexport const EVENT_SCOPES = [\n HANDLER_SCOPES.GLOBAL,\n HANDLER_SCOPES.CONFIG,\n HANDLER_SCOPES.CLIENT,\n HANDLER_SCOPES.REQUEST,\n] as const;\n\n/**\n * All event scopes including 'temporary' alias\n * Used in APIs where 'temporary' provides semantic clarity\n */\nexport const EVENT_SCOPES_WITH_TEMPORARY = [...EVENT_SCOPES, 'temporary' as const] as const;\n\n/**\n * Debug-specific event keys\n */\nexport const DEBUG_EVENTS = {\n CONFIG_CONFLICT: 'debug:config-conflict',\n CONFIG_CHANGE: 'debug:config-change',\n HEADERS_TRACKED: 'debug:headers-tracked',\n NETWORK_OVERRIDE: 'debug:network-override',\n NETWORK_STATE_CHANGED: 'debug:network-state-changed',\n NETWORK_DATA_CLEARED: 'debug:network-data-cleared',\n DEBUG_INFO: 'debug:info',\n PERFORMANCE_IMPACT: 'debug:performance-impact',\n MONITORING_ALERT: 'debug:monitoring-alert',\n CONFIG_TRACKED: 'debug:config-tracked',\n CONFLICTS_BATCH: 'debug:conflicts-batch',\n EVENT_OPERATION: 'debug:event-operation',\n // Wildcard for all debug events\n ANY: 'debug:*',\n} as const;\n\n/**\n * Configuration sources - where config updates originate from\n */\nexport const EVENTS_CONFIG_SOURCES = {\n GLOBAL: 'global',\n CREATE_API_CLIENT: 'createApiClient',\n UPDATE_CONFIG: 'updateConfig',\n MANUAL: 'manual',\n ENVIRONMENT: 'environment',\n PRESET: 'preset',\n NETWORK_AWARE: 'networkAware',\n ADAPTIVE: 'adaptive',\n} as const;\n\n/**\n * Configuration-specific event keys\n */\nexport const CONFIG_EVENTS = {\n GLOBAL_UPDATED: 'config:global-updated',\n GLOBAL_RESET: 'config:global-reset',\n ENVIRONMENT_CONFIGURED: 'config:environment-configured',\n PRESET_APPLIED: 'config:preset-applied',\n // Wildcard for all config events\n ANY: 'config:*',\n} as const;\n\n/**\n * Performance-specific event keys\n */\nexport const PERFORMANCE_EVENTS = {\n REQUEST_START: 'performance:request-start',\n REQUEST_COMPLETE: 'performance:request-complete',\n RETRY: 'performance:retry',\n THRESHOLD_EXCEEDED: 'performance:threshold-exceeded',\n OPTIMIZATION_APPLIED: 'performance:optimization-applied',\n METRIC_RECORDED: 'performance:metric-recorded',\n // Wildcard for all performance events\n ANY: 'performance:*',\n} as const;\n\n/**\n * Client-specific event keys\n */\nexport const CLIENT_EVENTS = {\n CONFLICT: 'client:conflict',\n DEBUG: 'client:debug',\n CREATED: 'client:created',\n // Wildcard for all client events\n ANY: 'client:*',\n} as const;\n\n/**\n * Cache-specific event keys\n */\nexport const CACHE_EVENTS = {\n HIT: 'cache:hit',\n MISS: 'cache:miss',\n INVALIDATE: 'cache:invalidate',\n // Wildcard for all cache events\n ANY: 'cache:*',\n} as const;\n\n/**\n * All event keys combined for easy access\n */\nexport const ALL_EVENTS = {\n ...HEADER_EVENTS,\n ...NETWORK_EVENTS,\n ...ERROR_EVENTS,\n ...DEBUG_EVENTS,\n ...CONFIG_EVENTS,\n ...PERFORMANCE_EVENTS,\n ...CLIENT_EVENTS,\n ...CACHE_EVENTS,\n} as const;\n\nexport type EventsConfigSource = (typeof EVENTS_CONFIG_SOURCES)[keyof typeof EVENTS_CONFIG_SOURCES];\n","/**\n * Queue System Enums\n */\n\n/**\n * Priority levels for queue operations\n * @description Defines the priority order for queued operations, from highest (CRITICAL) to lowest (IDLE)\n *\n * @example\n * ```typescript\n * import { PRIORITY_LEVEL } from '@plyaz/types';\n *\n * const priority = PRIORITY_LEVEL.HIGH; // 1\n * if (priority <= PRIORITY_LEVEL.HIGH) {\n * // Handle high-priority request\n * }\n * ```\n */\nexport const PRIORITY_LEVEL = {\n /** Critical priority - highest urgency (0) */\n CRITICAL: 0,\n /** High priority (1) */\n HIGH: 1,\n /** Medium priority (2) */\n MEDIUM: 2,\n /** Normal priority (3) */\n NORMAL: 3,\n /** Low priority (4) */\n LOW: 4,\n /** Idle priority - lowest urgency (5) */\n IDLE: 5,\n} as const;\n","import type { NetworkPresetConfig } from '..';\n\n/**\n * Data saver mode uses offline-optimized presets\n */\nexport const DATA_SAVER_PRESETS: NetworkPresetConfig = {\n performance: 'offline',\n cache: 'aggressive',\n retry: 'conservative',\n revalidation: 'static',\n};\n\n/**\n * Valid Client Hint header names\n */\nexport const CLIENT_HINT_HEADERS = {\n SAVE_DATA: 'save-data',\n ECT: 'ect',\n RTT: 'rtt',\n DOWNLINK: 'downlink',\n DEVICE_MEMORY: 'device-memory',\n ACCEPT_CH: 'Accept-CH',\n ACCEPT_CH_LIFETIME: 'Accept-CH-Lifetime',\n} as const;\n\n/**\n * Validation ranges for header values\n */\nexport const VALIDATION_RANGES = {\n RTT: { MIN: 0, MAX: 10000 }, // 0-10 seconds\n DOWNLINK: { MIN: 0, MAX: 10000 }, // 0-10 Gbps\n DEVICE_MEMORY: { MIN: 0, MAX: 128 }, // 0-128 GB\n} as const;\n","/**\n * Network Quality Enum\n */\n\n/**\n * Network quality levels enum\n */\nexport enum NETWORK_QUALITY {\n EXCELLENT = 'excellent', // 4G, low latency\n GOOD = 'good', // 3G or good 4G\n FAIR = 'fair', // 2G or poor 3G\n POOR = 'poor', // Slow 2G or worse\n OFFLINE = 'offline', // No connection\n UNKNOWN = 'unknown', // Unable to determine\n}\n\n/**\n * Event priority mapping\n */\nexport const EVENT_PRIORITY_MAP = {\n // Critical events\n error: 'critical',\n onNetworkError: 'critical',\n critical: 'critical',\n\n // High priority events\n config: 'high',\n auth: 'high',\n conflict: 'high',\n\n // Normal priority events\n network: 'normal',\n headers: 'normal',\n performance: 'normal',\n\n // Low priority events\n debug: 'low',\n metrics: 'low',\n tracking: 'low',\n} as const;\n\n/**\n * Export preset names for easy access\n */\nexport const NetworkPresetNames = {\n OFFLINE_FIRST: 'offline-first' as const,\n DATA_SAVER: 'data-saver' as const,\n SLOW_CONNECTION: 'slow-connection' as const,\n FAIR_CONNECTION: 'fair-connection' as const,\n GOOD_CONNECTION: 'good-connection' as const,\n EXCELLENT_CONNECTION: 'excellent-connection' as const,\n AGGRESSIVE_CACHE: 'aggressive-cache' as const,\n REALTIME: 'realtime' as const,\n BACKGROUND_SYNC: 'background-sync' as const,\n} as const;\n\n/**\n * Confidence levels for quality detection\n */\nexport const NETWORK_CONFIDENCE_LEVELS = {\n /** Excellent confidence (90%) */\n EXCELLENT: 0.9,\n /** High confidence (80%) */\n HIGH: 0.8,\n /** Medium confidence (70%) */\n MEDIUM: 0.7,\n /** Low confidence (50%) */\n LOW: 0.5,\n /** Threshold for high confidence classification */\n HIGH_THRESHOLD: 0.7,\n /** Threshold for medium confidence classification */\n MEDIUM_THRESHOLD: 0.4,\n} as const;\n\n/**\n * Network quality thresholds\n */\nexport interface QualityThresholds {\n excellentRTT: number; // < 50ms\n goodRTT: number; // < 150ms\n fairRTT: number; // < 400ms\n excellentSpeed: number; // > 10 Mbps\n goodSpeed: number; // > 2 Mbps\n fairSpeed: number; // > 0.5 Mbps\n}\n\n// Speed thresholds in Mbps\nexport const SPEED_THRESHOLDS = {\n EXCELLENT: 10,\n GOOD: 2,\n FAIR: 0.5,\n} as const;\n\n// RTT thresholds in milliseconds\nexport const RTT_THRESHOLDS = {\n EXCELLENT: 50,\n GOOD: 150,\n FAIR: 400,\n} as const;\n\nexport const DEFAULT_THRESHOLDS: QualityThresholds = {\n excellentRTT: RTT_THRESHOLDS.EXCELLENT,\n goodRTT: RTT_THRESHOLDS.GOOD,\n fairRTT: RTT_THRESHOLDS.FAIR,\n excellentSpeed: SPEED_THRESHOLDS.EXCELLENT,\n goodSpeed: SPEED_THRESHOLDS.GOOD,\n fairSpeed: SPEED_THRESHOLDS.FAIR,\n};\n","/**\n * Debugger Event Namespaces and Constants\n * Centralized definition of all debugger tracking operations and event types\n */\n\nimport type { HistoryType, UnifiedOperationType } from '..';\n\n/**\n * Factory operation types for tracking\n * Used when tracking factory-related operations\n */\nexport const FACTORY_OPERATIONS = {\n FACTORY_CREATED: 'factory_created',\n FACTORY_ACCESSED: 'factory_accessed',\n FACTORY_INITIALIZED: 'factory_initialized',\n FACTORIES_RESET: 'factories_reset',\n FACTORY_REGISTER: 'factory_register',\n HANDLER_REGISTERED: 'handler_registered',\n HANDLER_UNREGISTERED: 'handler_unregistered',\n /**\n * Indicates that a specific handler instance has been removed from a factory or scope.\n * Use this when removing a particular handler by reference or ID, as opposed to\n * HANDLER_UNREGISTERED, which refers to unregistering a handler type or all handlers.\n */\n SPECIFIC_HANDLER_REMOVED: 'specific_handler_removed',\n SCOPE_LISTENERS_CLEARED: 'scope_listeners_cleared',\n} as const;\n\n/**\n * Event system operation types\n * Used when tracking event system operations\n */\nexport const EVENT_OPERATIONS = {\n ON: 'on',\n ONCE: 'once',\n OFF: 'off',\n EMIT: 'emit',\n EMIT_ACROSS_SCOPES: 'emit_across_scopes',\n REMOVE_ALL_LISTENERS: 'removeAllListeners',\n ONCE_EXECUTED: 'once_executed',\n CONFIG_UPDATE: 'config_update',\n CONFIG_UPDATE_FAILED: 'config_update_failed',\n GLOBAL_CONFIG_UPDATE: 'global_config_update',\n GLOBAL_CONFIG_RESET: 'global_config_reset',\n SCOPE_CHANGE: 'scope_change',\n FACTORY_CREATE: 'factory_create',\n FACTORY_COORDINATION: 'factory_coordination',\n HANDLER_STRATEGY: 'handler_strategy',\n HANDLER_STRATEGY_APPLIED: 'handler_strategy_applied',\n} as const;\n\n/**\n * Queue operation types\n * Used when tracking queue operations\n */\nexport const QUEUE_OPERATIONS = {\n QUEUE_CREATED: 'queue_created',\n QUEUE_PROCESSED: 'queue_processed',\n QUEUE_CLEARED: 'queue_cleared',\n QUEUE_ERROR: 'queue_error',\n BATCH_PROCESSED: 'batch_processed',\n ITEM_ENQUEUED: 'item_enqueued',\n ITEM_DEQUEUED: 'item_dequeued',\n PRIORITY_CHANGED: 'priority_changed',\n} as const;\n\n/**\n * Config tracking sources\n * Used to identify the source of configuration changes\n */\nexport const DEBUGGER_CONFIG_SOURCES = {\n DEFAULT: 'default',\n DIRECT: 'direct',\n CLIENT: 'client',\n UNIFIED_STRATEGY: 'unifiedStrategy',\n PERFORMANCE_PRESET: 'performancePreset',\n DATA_PATTERN: 'dataPattern',\n CACHE_STRATEGY: 'cacheStrategy',\n RETRY_STRATEGY: 'retryStrategy',\n REVALIDATION_STRATEGY: 'revalidationStrategy',\n ADAPTIVE_CONFIG: 'adaptiveConfig',\n MONITORING_CONFIG: 'monitoringConfig',\n POLLING_CONFIG: 'pollingConfig',\n NETWORK_PRESET: 'networkPreset',\n NETWORK_AWARE: 'networkAware',\n NETWORK_QUALITY: 'networkQuality',\n USER_PREFERENCE: 'userPreference',\n TEMPORARY_OVERRIDE: 'temporaryOverride',\n AUTO_OPTIMIZATION: 'autoOptimization',\n NETWORK_CLIENT_HINTS: 'networkClientHints',\n HEADER_PRESET: 'headerPreset',\n ENRICHED_HEADERS: 'enrichedHeaders',\n USER_HEADERS: 'userHeaders',\n INTERCEPTOR: 'interceptor',\n CONTEXT_HEADERS: 'contextHeaders',\n ENCRYPTION: 'encryption',\n} as const;\n\n/**\n * Debug history entry types\n * Used to categorize history entries\n */\nexport const HISTORY_TYPES = {\n CONFIG: 'config',\n HEADER: 'header',\n NETWORK: 'network',\n PERFORMANCE: 'performance',\n EVENT: 'event',\n EVENT_OPERATION: 'event_operation',\n} as const;\n\n/**\n * Header transformation stages\n * Used to track header changes through the pipeline\n */\nexport const HEADER_STAGES = {\n BASE: 'base',\n ENRICHED: 'enriched',\n INTERCEPTOR: 'interceptor',\n FINAL: 'final',\n} as const;\n\n/**\n * Config update strategies\n * Used when updating configuration\n */\nexport const UPDATE_STRATEGIES = {\n MERGE: 'merge',\n REPLACE: 'replace',\n TEMPORARY: 'temporary',\n} as const;\n\n/**\n * Config change types\n * Used to categorize configuration changes\n */\nexport const CHANGE_TYPES = {\n OVERRIDE: 'override',\n RESTORE: 'restore',\n PRESET_CHANGE: 'preset_change',\n USER_PREFERENCE: 'user_preference',\n AUTO_OPTIMIZATION: 'auto_optimization',\n} as const;\n\n/**\n * Tracking phases\n * Used to identify when tracking occurs\n */\nexport const TRACKING_PHASES = {\n INITIALIZATION: 'initialization',\n RUNTIME: 'runtime',\n UPDATE: 'update',\n} as const;\n\n/**\n * Performance impact levels\n * Used to categorize performance impact\n */\nexport const IMPACT_LEVELS = {\n NONE: 'NONE',\n LOW: 'LOW',\n MEDIUM: 'MEDIUM',\n HIGH: 'HIGH',\n CRITICAL: 'CRITICAL',\n} as const;\n\n/**\n * Monitoring alert severities\n * Used to categorize alert severity\n */\nexport const ALERT_SEVERITIES = {\n INFO: 'info',\n WARNING: 'warning',\n ERROR: 'error',\n CRITICAL: 'critical',\n} as const;\n\n/**\n * Monitoring alert types\n * Used to categorize monitoring alerts\n */\nexport const ALERT_TYPES = {\n CONFLICT: 'conflict',\n PERFORMANCE: 'performance',\n NETWORK: 'network',\n} as const;\n\n/**\n * Combined operation types for unified tracking\n */\nexport const UNIFIED_OPERATIONS = {\n ...FACTORY_OPERATIONS,\n ...EVENT_OPERATIONS,\n ...QUEUE_OPERATIONS,\n} as const;\n\n// Type exports for TypeScript support\nexport type QueueOperationType = (typeof QUEUE_OPERATIONS)[keyof typeof QUEUE_OPERATIONS];\nexport type DebuggerConfigSource =\n (typeof DEBUGGER_CONFIG_SOURCES)[keyof typeof DEBUGGER_CONFIG_SOURCES];\nexport type ChangeType = (typeof CHANGE_TYPES)[keyof typeof CHANGE_TYPES];\n\n/**\n * Helper to check if a string is a valid operation type\n */\nexport function isValidOperation(operation: string): operation is UnifiedOperationType {\n return Object.values(UNIFIED_OPERATIONS).includes(operation as UnifiedOperationType);\n}\n\n/**\n * Helper to check if a string is a valid config source\n */\nexport function isValidConfigSource(source: string): source is DebuggerConfigSource {\n return Object.values(DEBUGGER_CONFIG_SOURCES).includes(source as DebuggerConfigSource);\n}\n\n/**\n * Helper to check if a string is a valid history type\n */\nexport function isValidHistoryType(type: string): type is HistoryType {\n return Object.values(HISTORY_TYPES).includes(type as HistoryType);\n}\n","/**\n * Event constants\n */\nexport const EVENT_CONSTANTS = {\n DEBUG_INFO_INTERVAL_MULTIPLIER: 5,\n IMPACT_THRESHOLDS: {\n NONE: 90,\n LOW: 70,\n MEDIUM: 50,\n HIGH: 30,\n },\n} as const;\n","/**\n * Regional detection constants\n */\n\n// Storage key for cached region\nexport const REGION_STORAGE_KEY = '@plyaz/api:userRegion';\n\n/**\n * Confidence levels for region detection\n */\nexport const REGIONAL_CONFIDENCE_LEVELS = {\n CDN_HEADER: 0.95,\n TIMEZONE_DIRECT: 0.9,\n TIMEZONE_PREFIX: 0.8,\n HIGH: 0.8,\n LOCALE_DIRECT: 0.7,\n MEDIUM: 0.7,\n GEOLOCATION: 0.6,\n LOCALE_LANGUAGE: 0.5,\n LOW: 0.5,\n GLOBAL_FALLBACK: 0.3,\n UNKNOWN_FALLBACK: 0.2,\n FINAL_FALLBACK: 0.1,\n} as const;\n\n/**\n * Geographic coordinates for region detection\n */\nexport const COORDINATES = {\n EU: {\n MIN_LAT: 35,\n MAX_LAT: 70,\n MIN_LON: -10,\n MAX_LON: 40,\n },\n US: {\n MIN_LAT: 25,\n MAX_LAT: 50,\n MIN_LON: -125,\n MAX_LON: -65,\n },\n US_WEST: {\n MIN_LAT: 32,\n MAX_LAT: 42,\n MIN_LON: -125,\n MAX_LON: -114,\n },\n US_EAST: {\n MIN_LAT: 38,\n MAX_LAT: 45,\n MIN_LON: -80,\n MAX_LON: -70,\n },\n ASIA: {\n MIN_LAT: 18,\n MAX_LAT: 54,\n MIN_LON: 73,\n MAX_LON: 135,\n },\n JAPAN: {\n MIN_LAT: 30,\n MAX_LAT: 46,\n MIN_LON: 129,\n MAX_LON: 146,\n },\n} as const;\n\n/**\n * Cache duration constants\n */\nconst HOURS_PER_DAY = 24;\nconst MINUTES_PER_HOUR = 60;\nconst SECONDS_PER_MINUTE = 60;\nconst MS_PER_SECOND = 1000;\n\n// Cache duration: 24 hours in milliseconds\nexport const CACHE_DURATION_MS =\n HOURS_PER_DAY * MINUTES_PER_HOUR * SECONDS_PER_MINUTE * MS_PER_SECOND;\n\n/**\n * Map regions to presets\n */\nexport const REGION_TO_PRESET = {\n eu: 'gdpr',\n us: 'ccpa', // Map US to CCPA (California compliance)\n 'us-ca': 'ccpa',\n cn: 'pipl',\n jp: 'appi',\n ca: 'global', // Canada uses global preset\n global: 'global',\n} as const;\n","/**\n * Event types for pub/sub system\n */\nexport const PUB_SUB_EVENT = {\n CacheUpdate: 'cache:update',\n CacheDelete: 'cache:delete',\n CacheRevalidate: 'cache:revalidate',\n RequestStart: 'request:start',\n RequestSuccess: 'request:success',\n RequestError: 'request:error',\n RequestAbort: 'request:abort',\n} as const;\n","/**\n * @fileoverview Database adapter type definitions\n *\n * Defines the enumeration of supported database adapter types used throughout\n * the database package. This enum provides type-safe identification of different\n * database integrations and is used in configuration, factory methods, and\n * adapter selection logic.\n *\n * **Application Flow Context:**\n * ```\n * Configuration → ADAPTERS Enum → AdapterFactory → Concrete Adapter\n * ↓ ↓ ↓ ↓\n * User Config → Type Safety → Adapter Creation → Database Connection\n * ```\n *\n * **Adapter Types:**\n * - **DRIZZLE**: Type-safe ORM with excellent TypeScript support\n * - **SUPABASE**: Hosted PostgreSQL with real-time capabilities\n * - **SQL**: Raw SQL execution for maximum control\n * - **DATABASE**: Generic fallback adapter\n *\n * @example\n * ```typescript\n * // Adapter selection in configuration\n * const config = {\n * adapter: ADAPTERS.DRIZZLE,\n * connectionString: process.env.DATABASE_URL\n * };\n *\n * // Type-safe adapter factory usage\n * const adapter = AdapterFactory.create(ADAPTERS.SUPABASE, supabaseConfig);\n *\n * // Switch statement with exhaustive checking\n * switch (config.adapter) {\n * case ADAPTERS.DRIZZLE:\n * // Handle Drizzle-specific logic\n * break;\n * case ADAPTERS.SUPABASE:\n * // Handle Supabase-specific logic\n * break;\n * case ADAPTERS.SQL:\n * // Handle SQL-specific logic\n * break;\n * default:\n * // TypeScript ensures all cases are handled\n * throw new Error(`Unsupported adapter: ${config.adapter}`);\n * }\n * ```\n *\n */\n/**\n * @enum ADAPTERS\n * @description\n * Enumeration of supported database adapter types.\n *\n * This enum provides type-safe identification of different database integrations\n * and is used throughout the package for configuration, factory methods, and\n * adapter selection. Each adapter type represents a different approach to\n * database connectivity and operations.\n *\n * **Adapter Characteristics:**\n * - **DATABASE**: Generic fallback, minimal functionality\n * - **DRIZZLE**: Full ORM with type safety and query building\n * - **SUPABASE**: Hosted solution with real-time and auth features\n * - **SQL**: Raw SQL for performance-critical applications\n *\n * @example\n * ```typescript\n * // Configuration with adapter selection\n * const configs = {\n * development: { adapter: ADAPTERS.DRIZZLE },\n * production: { adapter: ADAPTERS.SUPABASE },\n * performance: { adapter: ADAPTERS.SQL }\n * };\n *\n * // Type-safe adapter validation\n * function validateAdapter(adapter: ADAPTERS): boolean {\n * return Object.values(ADAPTERS).includes(adapter);\n * }\n * ```\n */\nexport enum ADAPTERS {\n /** Generic database adapter (default when no specific integration is set) */\n DATABASE = 'database',\n\n /** Drizzle ORM adapter (PostgreSQL, MySQL, SQLite, etc.) */\n DRIZZLE = 'drizzle',\n\n /** Supabase adapter (PostgreSQL backend with REST + Realtime APIs) */\n SUPABASE = 'supabase',\n\n /** Raw SQL adapter (direct database queries without ORM) */\n SQL = 'sql',\n\n /** Mock adapter (in-memory database for testing) */\n MOCK = 'mock',\n}\n\n// Event type enum\nexport enum DATABASE_EVENT_TYPE {\n BeforeQuery = 'beforeQuery',\n AfterQuery = 'afterQuery',\n QueryError = 'queryError',\n BeforeTransaction = 'beforeTransaction',\n AfterTransaction = 'afterTransaction',\n TransactionRollback = 'transactionRollback',\n HealthChange = 'healthChange',\n}\n\n/**\n * Strategy options for replica selection.\n */\nexport enum REPLICA_STRATEGY {\n /** Always use primary database */\n PRIMARY = 'primary',\n /** Use any available replica */\n REPLICA = 'replica',\n /** Use geographically closest replica */\n CLOSEST = 'closest',\n /** Use fastest responding replica */\n FASTEST = 'fastest',\n}\n\n/**\n * Enum for pool event types.\n */\nexport enum DB_POOL_EVENTS {\n CONNECT = 'connect',\n ACQUIRE = 'acquire',\n RELEASE = 'release',\n REMOVE = 'remove',\n}\n\n/**\n * Alert severity levels\n */\nexport enum ALERT_SEVERITY {\n CRITICAL = 'critical',\n ERROR = 'error',\n WARNING = 'warning',\n INFO = 'info',\n}\n\n/**\n * Alert source types\n */\nexport enum ALERT_SOURCE {\n DATABASE = 'database',\n POOL = 'pool',\n REPLICA = 'replica',\n CACHE = 'cache',\n BACKUP = 'backup',\n}\n\n/**\n * Audit operation types\n */\nexport enum AUDIT_OPERATION {\n Create = 'CREATE',\n Update = 'UPDATE',\n Delete = 'DELETE',\n CreateFailed = 'CREATE_FAILED',\n UpdateFailed = 'UPDATE_FAILED',\n DeleteFailed = 'DELETE_FAILED',\n}\n\n/**\n * Extension source identifiers for audit logging\n * Used to track which extension caused an operation failure\n */\nexport enum EXTENSION_SOURCE {\n /** Base database adapter (Drizzle, Supabase, SQL, Mock) */\n DatabaseAdapter = 'DatabaseAdapter',\n /** Encryption extension - field-level encryption */\n Encryption = 'EncryptionExtension',\n /** Soft delete extension - logical deletion */\n SoftDelete = 'SoftDeleteExtension',\n /** Caching extension - query result caching */\n Caching = 'CachingExtension',\n /** Audit extension - operation logging */\n Audit = 'AuditExtension',\n /** Read replica extension - read/write splitting */\n ReadReplica = 'ReadReplicaExtension',\n /** Multi-write extension - write replication */\n MultiWrite = 'MultiWriteExtension',\n /** Unknown source */\n Unknown = 'Unknown',\n}\n\n/**\n * Database Adapter Types - Enum for adapter selection\n */\nexport enum ADAPTER_TYPES {\n DRIZZLE = 'drizzle',\n SUPABASE = 'supabase',\n SQL = 'sql',\n MOCK = 'mock',\n}\n","/**\n * Encryption Extension Constants\n *\n * Centralized constants for encryption configuration to prevent\n * hardcoded values and ensure consistency across the codebase.\n */\n\nexport const ENCRYPTION_DEFAULTS = {\n /** Default encryption algorithm - AES-256-GCM provides authenticated encryption */\n ALGORITHM: 'aes-256-gcm' as const,\n\n /** IV length for AES-256-GCM in bytes */\n IV_LENGTH: 16,\n\n /** Expected parts in encrypted text format (iv:authTag:encrypted) */\n ENCRYPTED_PARTS_COUNT: 3,\n\n /** Default encryption key for testing (32 bytes for AES-256) */\n DEFAULT_KEY: 'abcdefghijklmnopqrstuvwxyz123456',\n} as const;\n\n/**\n * Alert rule IDs\n */\nexport const ALERT_RULE_ID = {\n POOL_EXHAUSTION: 'pool-exhaustion',\n SLOW_QUERY: 'slow-query',\n REPLICA_LAG: 'replica-lag',\n} as const;\n","/**\n * Storage Package Enums\n * @module @plyaz/types/storage\n */\n\n/**\n * File categories for organizing uploaded files\n */\nexport enum FILE_CATEGORY {\n // Profile & Identity\n ProfileImage = 'profile_image',\n ProfileBanner = 'profile_banner',\n ProfileData = 'profile_data',\n IdDocument = 'id_document',\n\n // Content\n PostImage = 'post_image',\n PostVideo = 'post_video',\n PostAudio = 'post_audio',\n PostDocument = 'post_document',\n PostArchive = 'post_archive',\n\n // Media\n GalleryImage = 'gallery_image',\n GalleryVideo = 'gallery_video',\n HighlightVideo = 'highlight_video',\n TrainingVideo = 'training_video',\n\n // Commerce\n ProductImage = 'product_image',\n ProductVideo = 'product_video',\n MerchandiseImage = 'merchandise_image',\n\n // Documents\n DOCUMENT = 'document',\n ContractDocument = 'contract_document',\n InvoiceDocument = 'invoice_document',\n ReceiptDocument = 'receipt_document',\n TaxDocument = 'tax_document',\n LegalDocument = 'legal_document',\n FinancialDocument = 'financial_document',\n\n // NFT & Digital Assets\n NftImage = 'nft_image',\n NftMetadata = 'nft_metadata',\n\n // Brand Assets\n BrandLogo = 'brand_logo',\n BrandAsset = 'brand_asset',\n MarketingAsset = 'marketing_asset',\n\n // Other\n AVATAR = 'avatar',\n ATTACHMENT = 'attachment',\n TempFile = 'temp_file',\n OTHER = 'other',\n}\n\n/**\n * Entity types that can own files\n */\nexport enum ENTITY_TYPE {\n USER = 'user',\n FAN = 'fan',\n ATHLETE = 'athlete',\n CLUB = 'club',\n BRAND = 'brand',\n ORGANIZATION = 'organization',\n EVENT = 'event',\n POST = 'post',\n PRODUCT = 'product',\n NFT = 'nft',\n SYSTEM = 'system',\n}\n\n/**\n * Storage adapter types\n */\nexport enum STORAGE_ADAPTER_TYPE {\n CloudflareR2 = 'cloudflare_r2',\n SupabaseStorage = 'supabase_storage',\n CUSTOM = 'custom',\n MOCK = 'mock',\n}\n\n/**\n * File access levels\n */\nexport enum FILE_ACCESS_LEVEL {\n PUBLIC = 'public',\n PRIVATE = 'private',\n SHARED = 'shared',\n RESTRICTED = 'restricted',\n}\n\n/**\n * Upload status\n */\nexport enum UPLOAD_STATUS {\n PENDING = 'pending',\n UPLOADING = 'uploading',\n PROCESSING = 'processing',\n COMPLETED = 'completed',\n FAILED = 'failed',\n CANCELLED = 'cancelled',\n}\n\n/**\n * Storage event types\n */\nexport enum STORAGE_EVENT_TYPE {\n // Upload events\n FileUploaded = 'file_uploaded',\n FileUploadFailed = 'file_upload_failed',\n UploadProgress = 'upload_progress',\n UploadAborted = 'upload_aborted',\n\n // Delete events\n FileDeleted = 'file_deleted',\n FileDeleteFailed = 'file_delete_failed',\n\n // Access events\n FileAccessed = 'file_accessed',\n SignedUrlGenerated = 'signed_url_generated',\n\n // Processing events\n MetadataExtracted = 'metadata_extracted',\n MediaProcessingStarted = 'media_processing_started',\n MediaProcessingCompleted = 'media_processing_completed',\n MediaProcessingFailed = 'media_processing_failed',\n TranscodeComplete = 'transcode_complete',\n TranscodeFailed = 'transcode_failed',\n TranscodeProgress = 'transcode_progress',\n ThumbnailGenerated = 'thumbnail_generated',\n ImageOptimized = 'image_optimized',\n\n // Security events\n VirusDetected = 'virus_detected',\n VirusScanCompleted = 'virus_scan_completed',\n\n // Adapter events\n AdapterHealthCheck = 'adapter_health_check',\n AdapterFailed = 'adapter_failed',\n\n // Compliance events\n RetentionPolicyApplied = 'retention_policy_applied',\n RetentionEnforced = 'retention_enforced',\n FileMarkedForDeletion = 'file_marked_for_deletion',\n ImmutabilityEnforced = 'immutability_enforced',\n SoftDeleteProcessed = 'soft_delete_processed',\n FileRestored = 'file_restored',\n FileArchived = 'file_archived',\n RetentionExpired = 'retention_expired',\n JurisdictionConflictResolved = 'jurisdiction_conflict_resolved',\n\n // Generation events\n FileGenerated = 'file_generated',\n FileGenerationFailed = 'file_generation_failed',\n FileUpdated = 'file_updated',\n FileUpdateFailed = 'file_update_failed',\n\n // File operations events\n FileReplaced = 'file_replaced',\n FileReplaceFailed = 'file_replace_failed',\n FileMoved = 'file_moved',\n FileMoveFailed = 'file_move_failed',\n FileCopied = 'file_copied',\n FileCopyFailed = 'file_copy_failed',\n\n // Audit events\n AuditLogCreated = 'audit_log_created',\n\n // Queue events\n QueueStarted = 'storage.queue.started',\n QueueStopped = 'storage.queue.stopped',\n OperationProcessing = 'storage.operation.processing',\n OperationCompleted = 'storage.operation.completed',\n OperationRetry = 'storage.operation.retry',\n OperationFailed = 'storage.operation.failed',\n\n // Error events\n StorageError = 'storage_error',\n\n // CDN events\n CdnInvalidated = 'cdn_invalidated',\n CdnInvalidationFailed = 'cdn_invalidation_failed',\n\n // Integrity events\n IntegrityCheckFailed = 'integrity_check_failed',\n CorruptionDetected = 'corruption_detected',\n\n // Quota events\n QuotaWarning = 'quota_warning',\n QuotaExceeded = 'quota_exceeded',\n\n // Webhook events\n WebhookReceived = 'webhook_received',\n WebhookProcessed = 'webhook_processed',\n WebhookFailed = 'webhook_failed',\n WebhookRetryExhausted = 'webhook_retry_exhausted',\n}\n\n/**\n * Retry strategies for adapter operations\n */\nexport enum RETRY_STRATEGY {\n ExponentialBackoff = 'exponential_backoff',\n LinearBackoff = 'linear_backoff',\n FixedDelay = 'fixed_delay',\n NoRetry = 'no_retry',\n}\n\n/**\n * Path generation strategies\n */\nexport enum PATH_GENERATION_STRATEGY {\n HashBased = 'hash_based',\n EntityBased = 'entity_based',\n DateBased = 'date_based',\n CategoryBased = 'category_based',\n FLAT = 'flat',\n}\n\n/**\n * File validation error types\n */\nexport enum FILE_VALIDATION_ERROR {\n InvalidMimeType = 'invalid_mime_type',\n FileTooLarge = 'file_too_large',\n FileTooSmall = 'file_too_small',\n InvalidExtension = 'invalid_extension',\n InvalidFilename = 'invalid_filename',\n ExecutableDetected = 'executable_detected',\n VirusDetected = 'virus_detected',\n}\n\n/**\n * Template output formats\n */\nexport enum TEMPLATE_OUTPUT_FORMAT {\n PDF = 'pdf',\n HTML = 'html',\n MARKDOWN = 'markdown',\n}\n\n/**\n * Document types for compliance storage (R2)\n * Financial and legal documents requiring strict compliance\n */\nexport enum DOCUMENT_TYPE {\n INVOICE = 'invoice',\n RECEIPT = 'receipt',\n TAX = 'tax',\n COMPLIANCE = 'compliance',\n CERTIFICATE = 'certificate',\n CONTRACT = 'contract',\n REPORT = 'report',\n}\n\n/**\n * Media entity types (for Supabase media storage)\n */\nexport enum MEDIA_ENTITY {\n TEAM = 'team',\n CLUB = 'club',\n ATHLETE = 'athlete',\n MATCH = 'match',\n LEAGUE = 'league',\n POST = 'post',\n CAMPAIGN = 'campaign',\n PRODUCT = 'product',\n BRAND = 'brand',\n USER = 'user',\n}\n\n/**\n * Storage visibility levels\n */\nexport enum STORAGE_VISIBILITY {\n PUBLIC = 'public',\n PRIVATE = 'private',\n}\n\n/**\n * Environment types for bucket naming\n */\nexport enum STORAGE_ENVIRONMENT {\n PRODUCTION = 'prod',\n STAGING = 'stg',\n DEVELOPMENT = 'dev',\n}\n\n/**\n * Business model types for organizational separation\n */\nexport enum BUSINESS_MODEL {\n B2B = 'b2b',\n B2C = 'b2c',\n B2B2C = 'b2b2c',\n INTERNAL = 'internal',\n}\n\n/**\n * Organization tier for dedicated resources\n */\nexport enum ORGANIZATION_TIER {\n ENTERPRISE = 'enterprise',\n PROFESSIONAL = 'professional',\n STANDARD = 'standard',\n STARTER = 'starter',\n}\n\n/**\n * Storage bucket purpose (provider-agnostic)\n * Describes what the bucket is used for, not how it's named\n */\nexport enum BUCKET_PURPOSE {\n /** Financial/legal compliance documents */\n COMPLIANCE = 'compliance',\n /** Image files (photos, graphics) */\n MediaImages = 'media-images',\n /** Video files */\n MediaVideos = 'media-videos',\n /** Static assets (CSS, JS, fonts) */\n MediaStatic = 'media-static',\n /** User uploads (attachments, documents) */\n UserUploads = 'user-uploads',\n /** Temporary files (processing, staging) */\n TEMPORARY = 'temporary',\n /** Archived/cold storage */\n ARCHIVES = 'archives',\n /** Backups */\n BACKUPS = 'backups',\n}\n\n/**\n * Path generation strategy type\n */\nexport enum PATH_STRATEGY {\n /** Financial/legal compliance documents */\n COMPLIANCE = 'compliance',\n /** Media files (images/videos) */\n MEDIA = 'media',\n /** General files */\n GENERAL = 'general',\n}\n\n/**\n * Media variant types\n */\nexport enum MEDIA_VARIANT_TYPE {\n THUMBNAIL = 'thumbnail',\n SMALL = 'small',\n MEDIUM = 'medium',\n LARGE = 'large',\n MOBILE = 'mobile',\n TABLET = 'tablet',\n DESKTOP = 'desktop',\n HD = 'hd',\n FourK = '4k',\n Video360p = '360p',\n Video480p = '480p',\n Video720p = '720p',\n Video1080p = '1080p',\n}\n\n/**\n * Storage queue priority levels\n */\nexport enum STORAGE_QUEUE_PRIORITY {\n HIGH = 'high',\n NORMAL = 'normal',\n LOW = 'low',\n}\n\n/**\n * Device types for device-aware variant optimization\n * Used to select optimal variants based on target device\n */\nexport enum STORAGE_DEVICE_TYPE {\n /** Mobile phones (320px - 480px) */\n MOBILE = 'mobile',\n /** Tablets (768px - 1024px) */\n TABLET = 'tablet',\n /** Desktop/laptop screens (1280px - 1920px) */\n DESKTOP = 'desktop',\n /** 4K/Retina displays (2560px+) */\n FourK = '4k',\n /** Smart TVs and large displays (3840px+) */\n TV = 'tv',\n /** Watch/wearable devices (small screens) */\n WATCH = 'watch',\n /** Auto-detect best variant (default) */\n AUTO = 'auto',\n}\n\n/**\n * Standard variant names for images and videos\n * Used to identify specific size/quality variants\n */\nexport enum STORAGE_VARIANT_NAME {\n // Image variants - Standard sizes\n THUMBNAIL = 'thumbnail',\n SMALL = 'small',\n MEDIUM = 'medium',\n LARGE = 'large',\n XLARGE = 'xlarge',\n\n // Device-specific image variants\n MOBILE = 'mobile',\n TABLET = 'tablet',\n DESKTOP = 'desktop',\n HD = 'hd',\n FourK = '4k',\n RETINA = 'retina',\n\n // Video variants - Standard resolutions\n Video360p = '360p',\n Video480p = '480p',\n Video720p = '720p',\n Video1080p = '1080p',\n Video4k = '4k-video',\n}\n\n/**\n * Adapter health status\n */\nexport enum ADAPTER_HEALTH_STATUS {\n HEALTHY = 'healthy',\n DEGRADED = 'degraded',\n UNHEALTHY = 'unhealthy',\n UNKNOWN = 'unknown',\n}\n\n/**\n * Renderer type (document/template rendering engines)\n */\nexport enum STORAGE_RENDERER_TYPE {\n PUPPETEER = 'puppeteer', // Headless Chrome (HTML → PDF/PNG)\n PLAYWRIGHT = 'playwright', // Headless browser (HTML → PDF/PNG)\n PDFKIT = 'pdfkit', // Lightweight PDF generation\n JSPDF = 'jspdf', // Client-side PDF generation\n WKHTMLTOPDF = 'wkhtmltopdf', // Standalone binary (HTML → PDF)\n EXCELJS = 'exceljs', // Excel generation\n DOCXTEMPLATER = 'docxtemplater', // Word document generation\n}\n\n/**\n * Output format for rendered documents\n */\nexport enum OUTPUT_FORMAT {\n PDF = 'pdf',\n HTML = 'html',\n PNG = 'png',\n JPEG = 'jpeg',\n EXCEL = 'excel', // .xlsx\n WORD = 'word', // .docx\n CSV = 'csv',\n JSON = 'json',\n}\n\n/**\n * Compliance jurisdictions\n *\n * Standardized jurisdiction codes for compliance enforcement\n */\nexport enum STORAGE_JURISDICTION {\n // Global\n GLOBAL = 'GLOBAL',\n\n // United States (Federal)\n US = 'US',\n\n // United States (States)\n UsCa = 'US-CA', // California (CCPA)\n UsNy = 'US-NY', // New York (NYDFS)\n UsTx = 'US-TX', // Texas\n UsFl = 'US-FL', // Florida\n UsIl = 'US-IL', // Illinois\n\n // European Union\n EU = 'EU',\n\n // European Countries\n EuDe = 'EU-DE', // Germany\n EuFr = 'EU-FR', // France\n EuGb = 'EU-GB', // United Kingdom (post-Brexit)\n EuIt = 'EU-IT', // Italy\n EuEs = 'EU-ES', // Spain\n EuNl = 'EU-NL', // Netherlands\n EuCh = 'EU-CH', // Switzerland\n\n // Asia Pacific\n JP = 'JP', // Japan\n SG = 'SG', // Singapore\n HK = 'HK', // Hong Kong\n AU = 'AU', // Australia\n NZ = 'NZ', // New Zealand\n KR = 'KR', // South Korea\n CN = 'CN', // China\n\n // Middle East & Africa\n AE = 'AE', // UAE\n SA = 'SA', // Saudi Arabia\n IL = 'IL', // Israel\n ZA = 'ZA', // South Africa\n\n // Americas\n CA = 'CA', // Canada\n BR = 'BR', // Brazil\n MX = 'MX', // Mexico\n AR = 'AR', // Argentina\n}\n\n/**\n * Regulatory frameworks for compliance\n *\n * Standardized framework codes to prevent arbitrary strings\n */\nexport enum STORAGE_REGULATORY_FRAMEWORK {\n // US Financial Regulations\n IRS = 'IRS', // Internal Revenue Service\n SEC = 'SEC', // Securities and Exchange Commission\n FINRA = 'FINRA', // Financial Industry Regulatory Authority\n SOX = 'SOX', // Sarbanes-Oxley Act\n GLBA = 'GLBA', // Gramm-Leach-Bliley Act\n FCRA = 'FCRA', // Fair Credit Reporting Act\n\n // US Crypto/FinTech Regulations\n FINCEN = 'FinCEN', // Financial Crimes Enforcement Network\n BSA = 'BSA', // Bank Secrecy Act\n AML = 'AML', // Anti-Money Laundering\n OFAC = 'OFAC', // Office of Foreign Assets Control\n NYDFS = 'NYDFS', // NY Department of Financial Services\n\n // US State Regulations\n CCPA = 'CCPA', // California Consumer Privacy Act\n CPRA = 'CPRA', // California Privacy Rights Act\n\n // European Regulations\n GDPR = 'GDPR', // General Data Protection Regulation\n MICA = 'MiCA', // Markets in Crypto-Assets Regulation\n AMLD5 = '5AMLD', // 5th Anti-Money Laundering Directive\n AMLD6 = '6AMLD', // 6th Anti-Money Laundering Directive\n PSD2 = 'PSD2', // Payment Services Directive 2\n EMIR = 'EMIR', // European Market Infrastructure Regulation\n\n // International Standards\n FATF = 'FATF', // Financial Action Task Force\n BaselIii = 'Basel III', // Basel III banking regulations\n ISO27001 = 'ISO27001', // Information security management\n SOC2 = 'SOC2', // Service Organization Control 2\n\n // Healthcare\n HIPAA = 'HIPAA', // Health Insurance Portability and Accountability Act\n HITECH = 'HITECH', // Health Information Technology for Economic and Clinical Health\n\n // Other Industries\n PciDss = 'PCI DSS', // Payment Card Industry Data Security Standard\n FERPA = 'FERPA', // Family Educational Rights and Privacy Act\n COPPA = 'COPPA', // Children's Online Privacy Protection Act\n\n // Internal/Custom\n InternalSecurity = 'Internal Security Policy',\n IndustryBestPractices = 'Industry Best Practices',\n}\n\n/**\n * Storage plugin types\n */\nexport enum STORAGE_PLUGIN_TYPE {\n VALIDATION = 'validation', // File validation (size, type, content)\n SECURITY = 'security', // Virus scanning, malware detection\n METADATA = 'metadata', // Metadata extraction (dimensions, duration)\n CDN = 'cdn', // CDN invalidation, cache management\n PROCESSING = 'processing', // Media processing, transcoding\n MONITORING = 'monitoring', // Access tracking, performance monitoring\n COMPLIANCE = 'compliance', // Compliance checks, retention policies\n AUDIT = 'audit', // Audit logging, compliance tracking\n CUSTOM = 'custom', // Custom user-defined plugins\n}\n\n/**\n * Storage Webhook Types\n *\n * Webhook system for handling external callbacks from:\n * - Cloud storage providers (R2, Supabase)\n * - Media processing services (AWS MediaConvert, Cloudinary)\n * - CDN providers (Cloudflare, CloudFront, Fastly)\n *\n * @module @plyaz/types/storage/webhooks\n *\n * Note: Validation schema implementation (Zod) is abstracted away.\n * Consumers don't need to know about or install Zod.\n */\n\n/**\n * Webhook event types for storage operations\n */\nexport enum STORAGE_WEBHOOK_EVENT_TYPE {\n // Object lifecycle events\n ObjectCreated = 'object.created',\n ObjectUpdated = 'object.updated',\n ObjectDeleted = 'object.deleted',\n ObjectRestored = 'object.restored',\n ObjectArchived = 'object.archived',\n\n // Processing events\n TranscodeComplete = 'transcode.complete',\n TranscodeFailed = 'transcode.failed',\n TranscodeProgress = 'transcode.progress',\n ThumbnailComplete = 'thumbnail.complete',\n ImageOptimizationComplete = 'image.optimization.complete',\n\n // CDN events\n CdnInvalidationComplete = 'cdn.invalidation.complete',\n CdnInvalidationFailed = 'cdn.invalidation.failed',\n\n // Storage integrity events\n ChecksumMismatch = 'checksum.mismatch',\n ObjectCorrupted = 'object.corrupted',\n\n // Quota/billing events\n QuotaWarning = 'quota.warning',\n QuotaExceeded = 'quota.exceeded',\n}\n\n/**\n * Storage operations\n */\nexport enum STORAGE_OPERATION {\n UPLOAD = 'upload',\n DELETE = 'delete',\n UPDATE = 'update',\n RESTORE = 'restore',\n ARCHIVE = 'archive',\n}\n\n/**\n * Signature verification methods for storage webhooks\n */\nexport enum STORAGE_SIGNATURE_METHOD {\n HmacSha256 = 'hmac-sha256',\n HmacSha512 = 'hmac-sha512',\n HmacSha1 = 'hmac-sha1',\n AwsSignatureV4 = 'aws-signature-v4',\n JWT = 'jwt',\n Custom = 'custom',\n}\n\n/**\n * Template variable types for template engine\n * Defines the data type of template variables for validation\n */\nexport enum TEMPLATE_VARIABLE_TYPE {\n /** Plain text string */\n STRING = 'string',\n /** Numeric value (integer or decimal) */\n NUMBER = 'number',\n /** Boolean true/false */\n BOOLEAN = 'boolean',\n /** Date value */\n DATE = 'date',\n /** Email address */\n EMAIL = 'email',\n /** Phone number */\n PHONE = 'phone',\n /** URL/web address */\n URL = 'url',\n /** Currency amount (decimal with 2 places) */\n CURRENCY = 'currency',\n /** Percentage value (0-100 or decimal) */\n PERCENTAGE = 'percentage',\n /** Array of items (for {{#each}} loops) */\n ARRAY = 'array',\n /** Nested object */\n OBJECT = 'object',\n /** Rich text / HTML content */\n RICHTEXT = 'richtext',\n /** Image URL or base64 */\n IMAGE = 'image',\n /** Select from predefined options */\n SELECT = 'select',\n /** Multi-select from predefined options */\n MULTISELECT = 'multiselect',\n}\n\n/**\n * Template document type for categorization\n */\nexport enum TEMPLATE_DOCUMENT_TYPE {\n /** Simple document without calculations */\n SIMPLE = 'simple',\n /** Financial document with calculations (invoices, receipts, quotes) */\n FINANCIAL = 'financial',\n /** Legal/contract document */\n LEGAL = 'legal',\n /** Report document */\n REPORT = 'report',\n /** Form/questionnaire */\n FORM = 'form',\n /** Letter/correspondence */\n LETTER = 'letter',\n /** Certificate */\n CERTIFICATE = 'certificate',\n}\n","/**\n * Event Handler Mapping\n *\n * Centralized mapping between camelCase handler names (StorageEventHandlers)\n * and enum-based event types (STORAGE_EVENT_TYPE).\n *\n * This mapping is used by:\n * - StorageService to register handlers\n * - Documentation generation\n * - Type utilities\n * - Testing utilities\n *\n * @module @plyaz/types/storage\n */\n\nimport type { StorageEventHandlers } from './interfaces';\nimport type { STORAGE_WEBHOOK_EVENT_TYPE } from './enums';\nimport { STORAGE_EVENT_TYPE } from './enums';\n\n/**\n * Mapping from camelCase handler method names to StorageEventType enum values\n *\n * This is the single source of truth for the handler name <-> event type relationship.\n *\n * @example\n * ```typescript\n * import { STORAGE_EVENT_HANDLER_MAPPING } from '@plyaz/types';\n *\n * // Get event type from handler name\n * const eventType = STORAGE_EVENT_HANDLER_MAPPING.onFileUploaded;\n * // Returns: STORAGE_EVENT_TYPE.FileUploaded\n *\n * // Register handler\n * if (handlers.onFileUploaded) {\n * eventManager.on(STORAGE_EVENT_HANDLER_MAPPING.onFileUploaded, handlers.onFileUploaded);\n * }\n * ```\n */\nexport const STORAGE_EVENT_HANDLER_MAPPING: Record<keyof StorageEventHandlers, STORAGE_EVENT_TYPE> =\n {\n // Upload events\n onFileUploaded: STORAGE_EVENT_TYPE.FileUploaded,\n onFileUploadFailed: STORAGE_EVENT_TYPE.FileUploadFailed,\n onUploadProgress: STORAGE_EVENT_TYPE.UploadProgress,\n onUploadAborted: STORAGE_EVENT_TYPE.UploadAborted,\n\n // Delete events\n onFileDeleted: STORAGE_EVENT_TYPE.FileDeleted,\n onFileDeleteFailed: STORAGE_EVENT_TYPE.FileDeleteFailed,\n\n // Access events\n onFileAccessed: STORAGE_EVENT_TYPE.FileAccessed,\n onSignedUrlGenerated: STORAGE_EVENT_TYPE.SignedUrlGenerated,\n\n // Processing events\n onMetadataExtracted: STORAGE_EVENT_TYPE.MetadataExtracted,\n onMediaProcessingStarted: STORAGE_EVENT_TYPE.MediaProcessingStarted,\n onMediaProcessingCompleted: STORAGE_EVENT_TYPE.MediaProcessingCompleted,\n onMediaProcessingFailed: STORAGE_EVENT_TYPE.MediaProcessingFailed,\n\n // Security events\n onVirusDetected: STORAGE_EVENT_TYPE.VirusDetected,\n onVirusScanCompleted: STORAGE_EVENT_TYPE.VirusScanCompleted,\n\n // Adapter events\n onAdapterHealthCheck: STORAGE_EVENT_TYPE.AdapterHealthCheck,\n onAdapterFailed: STORAGE_EVENT_TYPE.AdapterFailed,\n\n // Compliance events\n onRetentionPolicyApplied: STORAGE_EVENT_TYPE.RetentionPolicyApplied,\n onFileMarkedForDeletion: STORAGE_EVENT_TYPE.FileMarkedForDeletion,\n onImmutabilityEnforced: STORAGE_EVENT_TYPE.ImmutabilityEnforced,\n\n // File operations events\n onFileReplaced: STORAGE_EVENT_TYPE.FileReplaced,\n onFileReplaceFailed: STORAGE_EVENT_TYPE.FileReplaceFailed,\n onFileMoved: STORAGE_EVENT_TYPE.FileMoved,\n onFileMoveFailed: STORAGE_EVENT_TYPE.FileMoveFailed,\n onFileCopied: STORAGE_EVENT_TYPE.FileCopied,\n onFileCopyFailed: STORAGE_EVENT_TYPE.FileCopyFailed,\n\n // Audit events\n onAuditLogCreated: STORAGE_EVENT_TYPE.AuditLogCreated,\n\n // Queue events\n onQueueStarted: STORAGE_EVENT_TYPE.QueueStarted,\n onQueueStopped: STORAGE_EVENT_TYPE.QueueStopped,\n onOperationProcessing: STORAGE_EVENT_TYPE.OperationProcessing,\n onOperationCompleted: STORAGE_EVENT_TYPE.OperationCompleted,\n onOperationRetry: STORAGE_EVENT_TYPE.OperationRetry,\n onOperationFailed: STORAGE_EVENT_TYPE.OperationFailed,\n\n // Error events\n onStorageError: STORAGE_EVENT_TYPE.StorageError,\n } as const;\n\n/**\n * Webhook event type to internal storage event mapping\n *\n * Maps external webhook event types to internal StorageEventType enums\n * Used by WebhookManager to emit the correct storage events\n */\nexport const WEBHOOK_EVENT_TYPE_MAPPING: Record<\n (typeof STORAGE_WEBHOOK_EVENT_TYPE)[keyof typeof STORAGE_WEBHOOK_EVENT_TYPE],\n STORAGE_EVENT_TYPE\n> = {\n 'object.created': STORAGE_EVENT_TYPE.FileUploaded,\n 'object.updated': STORAGE_EVENT_TYPE.FileUpdated,\n 'object.deleted': STORAGE_EVENT_TYPE.FileDeleted,\n 'object.restored': STORAGE_EVENT_TYPE.FileRestored,\n 'object.archived': STORAGE_EVENT_TYPE.FileArchived,\n 'transcode.complete': STORAGE_EVENT_TYPE.TranscodeComplete,\n 'transcode.failed': STORAGE_EVENT_TYPE.TranscodeFailed,\n 'transcode.progress': STORAGE_EVENT_TYPE.TranscodeProgress,\n 'thumbnail.complete': STORAGE_EVENT_TYPE.ThumbnailGenerated,\n 'image.optimization.complete': STORAGE_EVENT_TYPE.ImageOptimized,\n 'cdn.invalidation.complete': STORAGE_EVENT_TYPE.CdnInvalidated,\n 'cdn.invalidation.failed': STORAGE_EVENT_TYPE.CdnInvalidationFailed,\n 'checksum.mismatch': STORAGE_EVENT_TYPE.IntegrityCheckFailed,\n 'object.corrupted': STORAGE_EVENT_TYPE.CorruptionDetected,\n 'quota.warning': STORAGE_EVENT_TYPE.QuotaWarning,\n 'quota.exceeded': STORAGE_EVENT_TYPE.QuotaExceeded,\n} as const;\n\n/**\n * Reverse mapping from StorageEventType enum values to camelCase handler names\n *\n * Useful for generating handler names from event types, documentation, etc.\n *\n * @example\n * ```typescript\n * import { STORAGE_EVENT_TYPE_TO_HANDLER_NAME } from '@plyaz/types';\n *\n * // Get handler name from event type\n * const handlerName = STORAGE_EVENT_TYPE_TO_HANDLER_NAME[STORAGE_EVENT_TYPE.FileUploaded];\n * // Returns: 'onFileUploaded'\n * ```\n */\nexport const STORAGE_EVENT_TYPE_TO_HANDLER_NAME: Record<\n STORAGE_EVENT_TYPE,\n keyof StorageEventHandlers\n> = Object.entries(STORAGE_EVENT_HANDLER_MAPPING).reduce(\n (acc, [handlerName, eventType]) => {\n acc[eventType] = handlerName as keyof StorageEventHandlers;\n return acc;\n },\n {} as Record<STORAGE_EVENT_TYPE, keyof StorageEventHandlers>\n);\n\n/**\n * Type-safe helper to get all handler names\n */\nexport type StorageEventHandlerName = keyof StorageEventHandlers;\nexport type StorageWebhookEventHandlerName =\n (typeof STORAGE_WEBHOOK_EVENT_TYPE)[keyof typeof STORAGE_WEBHOOK_EVENT_TYPE];\n\n/**\n * Type-safe helper to get all event types that have handlers\n */\nexport type MappedStorageEventType =\n (typeof STORAGE_EVENT_HANDLER_MAPPING)[StorageEventHandlerName];\nexport type MappedStorageWebhookEventType =\n (typeof WEBHOOK_EVENT_TYPE_MAPPING)[StorageWebhookEventHandlerName];\n","/**\n * Storage Package Zod Schemas\n * @module @plyaz/types/storage/schemas\n *\n * Validation schemas for storage webhooks and other features\n */\n\nimport { z } from 'zod';\n\n/**\n * Maximum progress percentage (0-100)\n */\nconst MAX_PROGRESS_PERCENTAGE = 100;\n\n/**\n * Storage media processing job status\n */\nexport enum STORAGE_PROCESSING_STATUS {\n Queued = 'queued',\n Processing = 'processing',\n Completed = 'completed',\n Failed = 'failed',\n}\n\n/**\n * Storage media processing output schema\n */\nexport const StorageProcessingOutputSchema = z.object({\n url: z.string().url(),\n format: z.string(),\n width: z.number().optional(),\n height: z.number().optional(),\n duration: z.number().optional(),\n size: z.number(),\n bitrate: z.number().optional(),\n codec: z.string().optional(),\n});\n\nexport type StorageProcessingOutput = z.infer<typeof StorageProcessingOutputSchema>;\n\n/**\n * Storage media processing webhook payload schema\n */\nexport const StorageMediaProcessingPayloadSchema = z.object({\n jobId: z.string(),\n status: z.nativeEnum(STORAGE_PROCESSING_STATUS),\n input: z.object({\n url: z.string().url(),\n objectKey: z.string(),\n bucket: z.string().optional(),\n }),\n output: z\n .object({\n primary: StorageProcessingOutputSchema.optional(),\n thumbnail: StorageProcessingOutputSchema.optional(),\n variants: z.array(StorageProcessingOutputSchema).optional(),\n })\n .optional(),\n metadata: z\n .object({\n duration: z.number().optional(),\n width: z.number().optional(),\n height: z.number().optional(),\n format: z.string().optional(),\n codec: z.string().optional(),\n })\n .optional(),\n progress: z.number().min(0).max(MAX_PROGRESS_PERCENTAGE).optional(),\n error: z\n .object({\n code: z.string(),\n message: z.string(),\n details: z.record(z.string(), z.unknown()).optional(),\n })\n .optional(),\n timestamp: z.union([z.string(), z.number()]),\n provider: z.string().optional(),\n});\n\nexport type StorageMediaProcessingPayload = z.infer<typeof StorageMediaProcessingPayloadSchema>;\n\n/**\n * ============================================================================\n * Cloudflare R2 Webhook Schemas\n * ============================================================================\n * S3-compatible event notifications\n * https://docs.aws.amazon.com/AmazonS3/latest/userguide/notification-content-structure.html\n */\nexport const R2EventRecordSchema = z.object({\n eventVersion: z.string(), // \"2.1\"\n eventSource: z.string(), // \"aws:s3\" or \"cloudflare:r2\"\n awsRegion: z.string().optional(), // R2 may not include this\n eventTime: z.string(), // ISO 8601 timestamp\n eventName: z.string(), // e.g., \"ObjectCreated:Put\", \"ObjectRemoved:Delete\"\n userIdentity: z\n .object({\n principalId: z.string(),\n })\n .optional(),\n requestParameters: z\n .object({\n sourceIPAddress: z.string(),\n })\n .optional(),\n responseElements: z\n .object({\n 'x-amz-request-id': z.string().optional(),\n 'x-amz-id-2': z.string().optional(),\n })\n .optional(),\n s3: z.object({\n s3SchemaVersion: z.string(), // \"1.0\"\n configurationId: z.string().optional(),\n bucket: z.object({\n name: z.string(), // Bucket name\n ownerIdentity: z\n .object({\n principalId: z.string(),\n })\n .optional(),\n arn: z.string().optional(),\n }),\n object: z.object({\n key: z.string(), // Object key\n size: z.number().optional(), // File size in bytes\n eTag: z.string().optional(), // Entity tag\n versionId: z.string().optional(),\n sequencer: z.string().optional(),\n }),\n }),\n});\n\nexport const R2WebhookPayloadSchema = z.object({\n Records: z.array(R2EventRecordSchema),\n});\n\nexport type R2WebhookPayload = z.infer<typeof R2WebhookPayloadSchema>;\nexport type R2EventRecord = z.infer<typeof R2EventRecordSchema>;\n\n/**\n * ============================================================================\n * Supabase Storage Webhook Schemas\n * ============================================================================\n * Database webhook events from storage.objects table\n */\nexport const SupabaseStorageObjectSchema = z.object({\n id: z.uuid(), // Object UUID\n bucket_id: z.string(), // Bucket name\n name: z.string(), // Object path/key\n owner: z.uuid().optional().nullable(), // Owner UUID\n created_at: z.string(), // ISO timestamp\n updated_at: z.string().optional().nullable(), // ISO timestamp\n last_accessed_at: z.string().optional().nullable(),\n metadata: z.record(z.string(), z.unknown()).optional().nullable(), // Custom metadata\n version: z.string().optional().nullable(),\n owner_id: z.string().optional().nullable(),\n});\n\nexport const SupabaseWebhookPayloadSchema = z.object({\n type: z.enum(['INSERT', 'UPDATE', 'DELETE']), // Database event type\n table: z.literal('objects'), // Always 'objects' for storage\n schema: z.literal('storage'), // Always 'storage'\n record: SupabaseStorageObjectSchema.optional().nullable(), // New/updated record\n old_record: SupabaseStorageObjectSchema.optional().nullable(), // Old record (for UPDATE/DELETE)\n});\n\nexport type SupabaseWebhookPayload = z.infer<typeof SupabaseWebhookPayloadSchema>;\nexport type SupabaseStorageObject = z.infer<typeof SupabaseStorageObjectSchema>;\n\n/**\n * ============================================================================\n * Template Variable Schemas\n * ============================================================================\n * Validation schemas for template variable definitions\n */\n\n/**\n * Template variable types enum for schema validation\n */\nexport enum TEMPLATE_VARIABLE_TYPE_SCHEMA {\n STRING = 'string',\n NUMBER = 'number',\n BOOLEAN = 'boolean',\n DATE = 'date',\n EMAIL = 'email',\n PHONE = 'phone',\n URL = 'url',\n CURRENCY = 'currency',\n PERCENTAGE = 'percentage',\n ARRAY = 'array',\n OBJECT = 'object',\n RICHTEXT = 'richtext',\n IMAGE = 'image',\n SELECT = 'select',\n MULTISELECT = 'multiselect',\n}\n\n/**\n * Template document types enum for schema validation\n */\nexport enum TEMPLATE_DOCUMENT_TYPE_SCHEMA {\n SIMPLE = 'simple',\n FINANCIAL = 'financial',\n LEGAL = 'legal',\n REPORT = 'report',\n FORM = 'form',\n LETTER = 'letter',\n CERTIFICATE = 'certificate',\n}\n\n/**\n * Template variable validation schema\n */\nexport const TemplateVariableValidationSchema = z.object({\n required: z.boolean().optional(),\n pattern: z.string().optional(),\n patternMessage: z.string().optional(),\n min: z.number().optional(),\n max: z.number().optional(),\n minLength: z.number().min(0).optional(),\n maxLength: z.number().min(0).optional(),\n enum: z.array(z.string()).optional(),\n dateFormat: z.string().optional(),\n minDate: z.string().optional(),\n maxDate: z.string().optional(),\n errorMessage: z.string().optional(),\n});\n\nexport type TemplateVariableValidationType = z.infer<typeof TemplateVariableValidationSchema>;\n\n/**\n * Template variable option schema (for select/multiselect)\n */\nexport const TemplateVariableOptionSchema = z.object({\n label: z.string().min(1),\n value: z.string(),\n});\n\nexport type TemplateVariableOptionType = z.infer<typeof TemplateVariableOptionSchema>;\n\n/**\n * Base template variable definition schema (without recursive properties)\n */\nconst BaseTemplateVariableDefinitionSchema = z.object({\n name: z\n .string()\n .min(1)\n .regex(/^[a-zA-Z_][a-zA-Z0-9_]*$/, 'Variable name must be alphanumeric with underscores'),\n type: z.nativeEnum(TEMPLATE_VARIABLE_TYPE_SCHEMA),\n label: z.string().optional(),\n description: z.string().optional(),\n defaultValue: z.unknown().optional(),\n placeholder: z.string().optional(),\n validation: TemplateVariableValidationSchema.optional(),\n options: z.array(TemplateVariableOptionSchema).optional(),\n group: z.string().optional(),\n order: z.number().int().min(0).optional(),\n hidden: z.boolean().optional(),\n readOnly: z.boolean().optional(),\n showIf: z.string().optional(),\n});\n\n/**\n * Template variable definition schema (with recursive properties support)\n * Note: Due to Zod limitations with recursive types, we use z.lazy()\n */\nexport const TemplateVariableDefinitionSchema: z.ZodType<{\n name: string;\n type: TEMPLATE_VARIABLE_TYPE_SCHEMA;\n label?: string;\n description?: string;\n defaultValue?: unknown;\n placeholder?: string;\n validation?: TemplateVariableValidationType;\n items?: unknown;\n properties?: unknown[];\n options?: TemplateVariableOptionType[];\n group?: string;\n order?: number;\n hidden?: boolean;\n readOnly?: boolean;\n showIf?: string;\n}> = BaseTemplateVariableDefinitionSchema.extend({\n items: z.lazy(() => TemplateVariableDefinitionSchema).optional(),\n properties: z.lazy(() => z.array(TemplateVariableDefinitionSchema)).optional(),\n});\n\nexport type TemplateVariableDefinitionType = z.infer<typeof TemplateVariableDefinitionSchema>;\n\n/**\n * Variable group schema for UI organization\n */\nexport const TemplateVariableGroupSchema = z.object({\n name: z.string().min(1),\n label: z.string().min(1),\n description: z.string().optional(),\n collapsed: z.boolean().optional(),\n});\n\nexport type TemplateVariableGroupType = z.infer<typeof TemplateVariableGroupSchema>;\n\n/**\n * Calculations configuration schema\n */\nexport const TemplateCalculationsConfigSchema = z.object({\n enabled: z.boolean(),\n taxField: z.string().optional(),\n discountField: z.string().optional(),\n shippingField: z.string().optional(),\n itemsField: z.string().optional(),\n});\n\nexport type TemplateCalculationsConfigType = z.infer<typeof TemplateCalculationsConfigSchema>;\n\n/**\n * Extended template frontmatter schema with variable definitions\n */\nexport const TemplateVariablesFrontmatterSchema = z.object({\n documentType: z.nativeEnum(TEMPLATE_DOCUMENT_TYPE_SCHEMA).optional(),\n calculations: TemplateCalculationsConfigSchema.optional(),\n variables: z.array(TemplateVariableDefinitionSchema).optional(),\n variableGroups: z.array(TemplateVariableGroupSchema).optional(),\n});\n\nexport type TemplateVariablesFrontmatterType = z.infer<typeof TemplateVariablesFrontmatterSchema>;\n\n/**\n * Validation result schema\n */\nexport const TemplateVariableValidationResultSchema = z.object({\n valid: z.boolean(),\n errors: z.record(z.string(), z.array(z.string())),\n warnings: z.record(z.string(), z.array(z.string())).optional(),\n coercedValues: z.record(z.string(), z.unknown()).optional(),\n});\n\nexport type TemplateVariableValidationResultType = z.infer<\n typeof TemplateVariableValidationResultSchema\n>;\n"]}