@plyaz/types 1.15.20 → 1.16.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. package/dist/api/aws/index.d.ts +5 -0
  2. package/dist/api/aws/signature.d.ts +42 -0
  3. package/dist/api/endpoints/cdn/endpoints.d.ts +57 -0
  4. package/dist/api/endpoints/cdn/index.d.ts +6 -0
  5. package/dist/api/endpoints/cdn/types.d.ts +151 -0
  6. package/dist/api/endpoints/index.d.ts +2 -0
  7. package/dist/api/endpoints/types.d.ts +3 -1
  8. package/dist/api/endpoints/virustotal/endpoints.d.ts +37 -0
  9. package/dist/api/endpoints/virustotal/index.d.ts +6 -0
  10. package/dist/api/endpoints/virustotal/types.d.ts +202 -0
  11. package/dist/api/index.cjs +1317 -1
  12. package/dist/api/index.cjs.map +1 -1
  13. package/dist/api/index.d.ts +3 -0
  14. package/dist/api/index.js +1317 -1
  15. package/dist/api/index.js.map +1 -1
  16. package/dist/core/idempotency.d.ts +48 -0
  17. package/dist/core/index.d.ts +1 -0
  18. package/dist/errors/codes.d.ts +296 -0
  19. package/dist/errors/enums.d.ts +10 -0
  20. package/dist/errors/index.cjs +1482 -1
  21. package/dist/errors/index.cjs.map +1 -1
  22. package/dist/errors/index.d.ts +1 -0
  23. package/dist/errors/index.js +1482 -2
  24. package/dist/errors/index.js.map +1 -1
  25. package/dist/errors/validation.d.ts +71 -0
  26. package/dist/index.cjs +2268 -132
  27. package/dist/index.cjs.map +1 -1
  28. package/dist/index.d.ts +11 -0
  29. package/dist/index.js +2227 -133
  30. package/dist/index.js.map +1 -1
  31. package/dist/logger/enums.d.ts +10 -0
  32. package/dist/notifications/types.d.ts +1 -2
  33. package/dist/storage/compliance.d.ts +247 -0
  34. package/dist/storage/enums.d.ts +527 -0
  35. package/dist/storage/event-handler-mapping.d.ts +69 -0
  36. package/dist/storage/index.d.ts +13 -0
  37. package/dist/storage/interfaces.d.ts +2242 -0
  38. package/dist/storage/plugins.d.ts +1056 -0
  39. package/dist/storage/schemas.d.ts +224 -0
  40. package/dist/storage/webhooks.d.ts +340 -0
  41. package/package.json +6 -1
package/dist/index.js CHANGED
@@ -238,6 +238,12 @@ var ERROR_CATEGORY = {
238
238
  Refund: "refund",
239
239
  /** Security-related error (e.g., encryption or signature failure). */
240
240
  Security: "security",
241
+ /** File operation error (e.g., upload, download, delete failure). */
242
+ FileOperation: "file.operation",
243
+ /** Plugin-related error (e.g., plugin initialization or execution failure). */
244
+ Plugin: "plugin",
245
+ /** Quota or storage limit error (e.g., exceeded storage quota). */
246
+ Quota: "quota",
241
247
  /** Unknown or unclassified error. */
242
248
  Unknown: "unknown"
243
249
  };
@@ -303,6 +309,9 @@ var ERROR_CATEGORY_TO_EMITTER_KEY = {
303
309
  [ERROR_CATEGORY.System]: "system",
304
310
  [ERROR_CATEGORY.Refund]: "refund",
305
311
  [ERROR_CATEGORY.Security]: "security",
312
+ [ERROR_CATEGORY.FileOperation]: "fileOperation",
313
+ [ERROR_CATEGORY.Plugin]: "plugin",
314
+ [ERROR_CATEGORY.Quota]: "quota",
306
315
  [ERROR_CATEGORY.Unknown]: "unknown"
307
316
  };
308
317
  var COMMON_OPERATIONS = {
@@ -398,6 +407,7 @@ var ERROR_EXCEPTIONS_NAMESPACES = {
398
407
  API: "api",
399
408
  AUTH: "auth",
400
409
  NOTIFICATIONS: "notifications",
410
+ STORAGE: "storage",
401
411
  DB: "db",
402
412
  VALIDATION: "validation",
403
413
  GENERIC: "generic",
@@ -817,6 +827,168 @@ var ERROR_CODES = {
817
827
  // General Notification
818
828
  NOTIFICATION_UNKNOWN_ERROR: "notification.unknown.error",
819
829
  NOTIFICATION_INITIALIZATION_FAILED: "notification.initialization.failed",
830
+ // ===== Storage Package Errors =====
831
+ // General
832
+ STORAGE_UNKNOWN_ERROR: "storage.unknown.error",
833
+ STORAGE_INITIALIZATION_FAILED: "storage.initialization.failed",
834
+ // Adapter
835
+ STORAGE_ADAPTER_NOT_FOUND: "storage.adapter.not.found",
836
+ STORAGE_ADAPTER_INITIALIZATION_FAILED: "storage.adapter.initialization.failed",
837
+ STORAGE_ADAPTER_CONFIGURATION_INVALID: "storage.adapter.configuration.invalid",
838
+ STORAGE_ADAPTER_ALREADY_REGISTERED: "storage.adapter.already.registered",
839
+ STORAGE_ADAPTER_CONNECTION_FAILED: "storage.adapter.connection.failed",
840
+ STORAGE_ADAPTER_AUTHENTICATION_FAILED: "storage.adapter.authentication.failed",
841
+ STORAGE_ADAPTER_OPERATION_FAILED: "storage.adapter.operation.failed",
842
+ STORAGE_ADAPTER_HEALTH_CHECK_FAILED: "storage.adapter.health.check.failed",
843
+ STORAGE_ADAPTER_UNAVAILABLE: "storage.adapter.unavailable",
844
+ STORAGE_ADAPTER_TIMEOUT: "storage.adapter.timeout",
845
+ STORAGE_ADAPTER_RATE_LIMIT: "storage.adapter.rate.limit",
846
+ STORAGE_ADAPTER_QUOTA_EXCEEDED: "storage.adapter.quota.exceeded",
847
+ STORAGE_ADAPTER_UNSUPPORTED_OPERATION: "storage.adapter.unsupported.operation",
848
+ STORAGE_ADAPTER_FEATURE_NOT_SUPPORTED: "storage.adapter.feature.not.supported",
849
+ STORAGE_NO_HEALTHY_ADAPTERS: "storage.no.healthy.adapters",
850
+ STORAGE_ALL_ADAPTERS_FAILED: "storage.all.adapters.failed",
851
+ // File Validation
852
+ STORAGE_FILE_TOO_LARGE: "storage.file.too.large",
853
+ STORAGE_FILE_TOO_SMALL: "storage.file.too.small",
854
+ STORAGE_FILE_SIZE_INVALID: "storage.file.size.invalid",
855
+ STORAGE_FILE_TYPE_NOT_ALLOWED: "storage.file.type.not.allowed",
856
+ STORAGE_INVALID_MIME_TYPE: "storage.invalid.mime.type",
857
+ STORAGE_INVALID_FILE_EXTENSION: "storage.invalid.file.extension",
858
+ STORAGE_FILE_EXTENSION_INVALID: "storage.file.extension.invalid",
859
+ STORAGE_FILE_EXTENSION_MISMATCH: "storage.file.extension.mismatch",
860
+ STORAGE_EXECUTABLE_NOT_ALLOWED: "storage.executable.not.allowed",
861
+ STORAGE_VALIDATION_FAILED: "storage.validation.failed",
862
+ STORAGE_INVALID_FILE_CONTENT: "storage.invalid.file.content",
863
+ // Security
864
+ STORAGE_SECURITY_VIRUS_DETECTED: "storage.security.virus.detected",
865
+ STORAGE_SECURITY_SCAN_FAILED: "storage.security.scan.failed",
866
+ STORAGE_SECURITY_ACCESS_DENIED: "storage.security.access.denied",
867
+ STORAGE_SECURITY_ENCRYPTION_FAILED: "storage.security.encryption.failed",
868
+ // File Operations
869
+ STORAGE_FILE_UPLOAD_FAILED: "storage.file.upload.failed",
870
+ STORAGE_FILE_DOWNLOAD_FAILED: "storage.file.download.failed",
871
+ STORAGE_FILE_DELETE_FAILED: "storage.file.delete.failed",
872
+ STORAGE_FILE_UPDATE_FAILED: "storage.file.update.failed",
873
+ STORAGE_FILE_NOT_FOUND: "storage.file.not.found",
874
+ STORAGE_FILE_ALREADY_EXISTS: "storage.file.already.exists",
875
+ STORAGE_FILE_MOVE_FAILED: "storage.file.move.failed",
876
+ STORAGE_FILE_COPY_FAILED: "storage.file.copy.failed",
877
+ STORAGE_FILE_READ_FAILED: "storage.file.read.failed",
878
+ STORAGE_FILE_WRITE_FAILED: "storage.file.write.failed",
879
+ STORAGE_FILE_CORRUPTED: "storage.file.corrupted",
880
+ STORAGE_INVALID_OPERATION: "storage.invalid.operation",
881
+ // Metadata
882
+ STORAGE_METADATA_EXTRACTION_FAILED: "storage.metadata.extraction.failed",
883
+ STORAGE_METADATA_INVALID: "storage.metadata.invalid",
884
+ STORAGE_METADATA_UPDATE_FAILED: "storage.metadata.update.failed",
885
+ // Media Processing
886
+ STORAGE_MEDIA_PROCESSING_FAILED: "storage.media.processing.failed",
887
+ STORAGE_MEDIA_RESIZE_FAILED: "storage.media.resize.failed",
888
+ STORAGE_MEDIA_FORMAT_UNSUPPORTED: "storage.media.format.unsupported",
889
+ STORAGE_MEDIA_TRANSCODE_FAILED: "storage.media.transcode.failed",
890
+ STORAGE_MEDIA_THUMBNAIL_FAILED: "storage.media.thumbnail.failed",
891
+ STORAGE_MEDIA_INVALID_DIMENSIONS: "storage.media.invalid.dimensions",
892
+ // Template & PDF
893
+ STORAGE_TEMPLATE_NOT_FOUND: "storage.template.not.found",
894
+ STORAGE_TEMPLATE_RENDER_FAILED: "storage.template.render.failed",
895
+ STORAGE_PDF_GENERATION_FAILED: "storage.pdf.generation.failed",
896
+ STORAGE_PDF_RENDERING_TIMEOUT: "storage.pdf.rendering.timeout",
897
+ // Queue
898
+ STORAGE_QUEUE_FULL: "storage.queue.full",
899
+ STORAGE_QUEUE_PROCESSING_FAILED: "storage.queue.processing.failed",
900
+ STORAGE_QUEUE_ITEM_NOT_FOUND: "storage.queue.item.not.found",
901
+ // Compliance
902
+ STORAGE_COMPLIANCE_VIOLATION: "storage.compliance.violation",
903
+ STORAGE_COMPLIANCE_RETENTION_VIOLATION: "storage.compliance.retention.violation",
904
+ STORAGE_COMPLIANCE_RETENTION_EXPIRED: "storage.compliance.retention.expired",
905
+ STORAGE_COMPLIANCE_IMMUTABLE_FILE: "storage.compliance.immutable.file",
906
+ STORAGE_COMPLIANCE_POLICY_NOT_FOUND: "storage.compliance.policy.not.found",
907
+ STORAGE_COMPLIANCE_SOFT_DELETE_REQUIRED: "storage.compliance.soft.delete.required",
908
+ STORAGE_COMPLIANCE_GRACE_PERIOD_ACTIVE: "storage.compliance.grace.period.active",
909
+ STORAGE_COMPLIANCE_DEFERRED_DELETION: "storage.compliance.deferred.deletion",
910
+ STORAGE_COMPLIANCE_PATTERN_PROTECTED: "storage.compliance.pattern.protected",
911
+ // Share Links
912
+ STORAGE_SHARE_LINK_NOT_FOUND: "storage.share.link.not.found",
913
+ STORAGE_SHARE_LINK_EXPIRED: "storage.share.link.expired",
914
+ STORAGE_SHARE_LINK_MAX_DOWNLOADS: "storage.share.link.max.downloads",
915
+ STORAGE_SHARE_LINK_INVALID_PASSWORD: "storage.share.link.invalid.password",
916
+ // Plugin
917
+ STORAGE_PLUGIN_NOT_FOUND: "storage.plugin.not.found",
918
+ STORAGE_PLUGIN_INITIALIZATION_FAILED: "storage.plugin.initialization.failed",
919
+ STORAGE_PLUGIN_EXECUTION_FAILED: "storage.plugin.execution.failed",
920
+ // VirusTotal Provider (Plugin)
921
+ STORAGE_VIRUSTOTAL_BAD_REQUEST: "storage.virustotal.bad_request",
922
+ STORAGE_VIRUSTOTAL_AUTHENTICATION_REQUIRED: "storage.virustotal.authentication_required",
923
+ STORAGE_VIRUSTOTAL_WRONG_CREDENTIALS: "storage.virustotal.wrong_credentials",
924
+ STORAGE_VIRUSTOTAL_FILE_TOO_LARGE: "storage.virustotal.file_too_large",
925
+ STORAGE_VIRUSTOTAL_QUOTA_EXCEEDED: "storage.virustotal.quota_exceeded",
926
+ STORAGE_VIRUSTOTAL_ANALYSIS_NOT_FOUND: "storage.virustotal.analysis_not_found",
927
+ STORAGE_VIRUSTOTAL_SCAN_TIMEOUT: "storage.virustotal.scan_timeout",
928
+ STORAGE_VIRUSTOTAL_SCAN_FAILED: "storage.virustotal.scan_failed",
929
+ // CDN Provider Errors (Third-party services - cross-package)
930
+ // Cloudflare CDN
931
+ CLOUDFLARE_AUTHENTICATION_FAILED: "cloudflare.authentication.failed",
932
+ CLOUDFLARE_ZONE_NOT_FOUND: "cloudflare.zone.not.found",
933
+ CLOUDFLARE_PURGE_FAILED: "cloudflare.purge.failed",
934
+ CLOUDFLARE_RATE_LIMIT_EXCEEDED: "cloudflare.rate.limit.exceeded",
935
+ CLOUDFLARE_INVALID_URL: "cloudflare.invalid.url",
936
+ CLOUDFLARE_API_ERROR: "cloudflare.api.error",
937
+ // AWS CloudFront CDN
938
+ CLOUDFRONT_AUTHENTICATION_FAILED: "cloudfront.authentication.failed",
939
+ CLOUDFRONT_DISTRIBUTION_NOT_FOUND: "cloudfront.distribution.not.found",
940
+ CLOUDFRONT_INVALIDATION_FAILED: "cloudfront.invalidation.failed",
941
+ CLOUDFRONT_QUOTA_EXCEEDED: "cloudfront.quota.exceeded",
942
+ CLOUDFRONT_INVALID_PATH: "cloudfront.invalid.path",
943
+ CLOUDFRONT_API_ERROR: "cloudfront.api.error",
944
+ // Fastly CDN
945
+ FASTLY_AUTHENTICATION_FAILED: "fastly.authentication.failed",
946
+ FASTLY_SERVICE_NOT_FOUND: "fastly.service.not.found",
947
+ FASTLY_PURGE_FAILED: "fastly.purge.failed",
948
+ FASTLY_RATE_LIMIT_EXCEEDED: "fastly.rate.limit.exceeded",
949
+ FASTLY_INVALID_URL: "fastly.invalid.url",
950
+ FASTLY_API_ERROR: "fastly.api.error",
951
+ // Generic CDN Errors
952
+ CDN_INVALIDATION_FAILED: "cdn.invalidation.failed",
953
+ CDN_CONFIGURATION_INVALID: "cdn.configuration.invalid",
954
+ CDN_PROVIDER_NOT_FOUND: "cdn.provider.not.found",
955
+ // Webhook Errors
956
+ STORAGE_WEBHOOK_SIGNATURE_INVALID: "storage.webhook.signature.invalid",
957
+ STORAGE_WEBHOOK_PAYLOAD_INVALID: "storage.webhook.payload.invalid",
958
+ STORAGE_WEBHOOK_PROCESSING_FAILED: "storage.webhook.processing.failed",
959
+ STORAGE_WEBHOOK_TIMEOUT: "storage.webhook.timeout",
960
+ STORAGE_WEBHOOK_ADAPTER_NOT_FOUND: "storage.webhook.adapter.not.found",
961
+ STORAGE_WEBHOOK_DUPLICATE_DETECTED: "storage.webhook.duplicate.detected",
962
+ STORAGE_WEBHOOK_IDEMPOTENCY_ERROR: "storage.webhook.idempotency.error",
963
+ STORAGE_WEBHOOK_RATE_LIMIT_EXCEEDED: "storage.webhook.rate.limit.exceeded",
964
+ // Presigned URLs
965
+ STORAGE_PRESIGNED_URL_GENERATION_FAILED: "storage.presigned.url.generation.failed",
966
+ STORAGE_PRESIGNED_URL_EXPIRED: "storage.presigned.url.expired",
967
+ STORAGE_PRESIGNED_URL_INVALID: "storage.presigned.url.invalid",
968
+ // Chunked Upload
969
+ STORAGE_CHUNKED_UPLOAD_INIT_FAILED: "storage.chunked.upload.init.failed",
970
+ STORAGE_CHUNKED_UPLOAD_PART_FAILED: "storage.chunked.upload.part.failed",
971
+ STORAGE_CHUNKED_UPLOAD_COMPLETE_FAILED: "storage.chunked.upload.complete.failed",
972
+ STORAGE_CHUNKED_UPLOAD_ABORT_FAILED: "storage.chunked.upload.abort.failed",
973
+ STORAGE_CHUNKED_UPLOAD_NOT_FOUND: "storage.chunked.upload.not.found",
974
+ // CORS
975
+ STORAGE_CORS_CONFIGURATION_INVALID: "storage.cors.configuration.invalid",
976
+ STORAGE_CORS_ORIGIN_NOT_ALLOWED: "storage.cors.origin.not.allowed",
977
+ // TTL
978
+ STORAGE_TTL_EXPIRED: "storage.ttl.expired",
979
+ STORAGE_TTL_CLEANUP_FAILED: "storage.ttl.cleanup.failed",
980
+ // Audit
981
+ STORAGE_AUDIT_LOG_FAILED: "storage.audit.log.failed",
982
+ // Timeout & Network
983
+ STORAGE_TIMEOUT: "storage.timeout",
984
+ STORAGE_NETWORK_ERROR: "storage.network.error",
985
+ STORAGE_CONNECTION_LOST: "storage.connection.lost",
986
+ // Permission & Quota
987
+ STORAGE_PERMISSION_DENIED: "storage.permission.denied",
988
+ STORAGE_QUOTA_EXCEEDED: "storage.quota.exceeded",
989
+ STORAGE_INSUFFICIENT_SPACE: "storage.insufficient.space",
990
+ // Feature Implementation
991
+ STORAGE_FEATURE_NOT_IMPLEMENTED: "storage.feature.not.implemented",
820
992
  // ===== Errors Package Errors =====
821
993
  ERROR_SYSTEM_NOT_INITIALIZED: "error.system.not.initialized",
822
994
  EVENT_FACTORY_NOT_REGISTERED: "error.event.factory.not.registered",
@@ -1106,7 +1278,33 @@ var API_ERROR_CODES = {
1106
1278
  MONITORING_FAILED: ERROR_CODES.MONITORING_FAILED,
1107
1279
  CONTEXT_OPERATION_FAILED: ERROR_CODES.CONTEXT_OPERATION_FAILED,
1108
1280
  CLIENT_ERROR: ERROR_CODES.CLIENT_ERROR,
1109
- UNKNOWN_ERROR: ERROR_CODES.UNKNOWN_ERROR
1281
+ UNKNOWN_ERROR: ERROR_CODES.UNKNOWN_ERROR,
1282
+ // CDN Provider Errors (Third-party services)
1283
+ // Cloudflare
1284
+ CLOUDFLARE_AUTHENTICATION_FAILED: ERROR_CODES.CLOUDFLARE_AUTHENTICATION_FAILED,
1285
+ CLOUDFLARE_ZONE_NOT_FOUND: ERROR_CODES.CLOUDFLARE_ZONE_NOT_FOUND,
1286
+ CLOUDFLARE_PURGE_FAILED: ERROR_CODES.CLOUDFLARE_PURGE_FAILED,
1287
+ CLOUDFLARE_RATE_LIMIT_EXCEEDED: ERROR_CODES.CLOUDFLARE_RATE_LIMIT_EXCEEDED,
1288
+ CLOUDFLARE_INVALID_URL: ERROR_CODES.CLOUDFLARE_INVALID_URL,
1289
+ CLOUDFLARE_API_ERROR: ERROR_CODES.CLOUDFLARE_API_ERROR,
1290
+ // CloudFront
1291
+ CLOUDFRONT_AUTHENTICATION_FAILED: ERROR_CODES.CLOUDFRONT_AUTHENTICATION_FAILED,
1292
+ CLOUDFRONT_DISTRIBUTION_NOT_FOUND: ERROR_CODES.CLOUDFRONT_DISTRIBUTION_NOT_FOUND,
1293
+ CLOUDFRONT_INVALIDATION_FAILED: ERROR_CODES.CLOUDFRONT_INVALIDATION_FAILED,
1294
+ CLOUDFRONT_QUOTA_EXCEEDED: ERROR_CODES.CLOUDFRONT_QUOTA_EXCEEDED,
1295
+ CLOUDFRONT_INVALID_PATH: ERROR_CODES.CLOUDFRONT_INVALID_PATH,
1296
+ CLOUDFRONT_API_ERROR: ERROR_CODES.CLOUDFRONT_API_ERROR,
1297
+ // Fastly
1298
+ FASTLY_AUTHENTICATION_FAILED: ERROR_CODES.FASTLY_AUTHENTICATION_FAILED,
1299
+ FASTLY_SERVICE_NOT_FOUND: ERROR_CODES.FASTLY_SERVICE_NOT_FOUND,
1300
+ FASTLY_PURGE_FAILED: ERROR_CODES.FASTLY_PURGE_FAILED,
1301
+ FASTLY_RATE_LIMIT_EXCEEDED: ERROR_CODES.FASTLY_RATE_LIMIT_EXCEEDED,
1302
+ FASTLY_INVALID_URL: ERROR_CODES.FASTLY_INVALID_URL,
1303
+ FASTLY_API_ERROR: ERROR_CODES.FASTLY_API_ERROR,
1304
+ // Generic CDN
1305
+ CDN_INVALIDATION_FAILED: ERROR_CODES.CDN_INVALIDATION_FAILED,
1306
+ CDN_CONFIGURATION_INVALID: ERROR_CODES.CDN_CONFIGURATION_INVALID,
1307
+ CDN_PROVIDER_NOT_FOUND: ERROR_CODES.CDN_PROVIDER_NOT_FOUND
1110
1308
  };
1111
1309
  var NOTIFICATION_ERROR_CODES = {
1112
1310
  PROVIDER_SEND_FAILED: ERROR_CODES.NOTIFICATION_PROVIDER_SEND_FAILED,
@@ -1134,6 +1332,169 @@ var NOTIFICATION_ERROR_CODES = {
1134
1332
  UNKNOWN_ERROR: ERROR_CODES.NOTIFICATION_UNKNOWN_ERROR,
1135
1333
  INITIALIZATION_FAILED: ERROR_CODES.NOTIFICATION_INITIALIZATION_FAILED
1136
1334
  };
1335
+ var STORAGE_ERROR_CODES = {
1336
+ // General
1337
+ UNKNOWN_ERROR: ERROR_CODES.STORAGE_UNKNOWN_ERROR,
1338
+ INITIALIZATION_FAILED: ERROR_CODES.STORAGE_INITIALIZATION_FAILED,
1339
+ // Adapter
1340
+ ADAPTER_NOT_FOUND: ERROR_CODES.STORAGE_ADAPTER_NOT_FOUND,
1341
+ ADAPTER_INITIALIZATION_FAILED: ERROR_CODES.STORAGE_ADAPTER_INITIALIZATION_FAILED,
1342
+ ADAPTER_CONFIGURATION_INVALID: ERROR_CODES.STORAGE_ADAPTER_CONFIGURATION_INVALID,
1343
+ ADAPTER_ALREADY_REGISTERED: ERROR_CODES.STORAGE_ADAPTER_ALREADY_REGISTERED,
1344
+ ADAPTER_CONNECTION_FAILED: ERROR_CODES.STORAGE_ADAPTER_CONNECTION_FAILED,
1345
+ ADAPTER_AUTHENTICATION_FAILED: ERROR_CODES.STORAGE_ADAPTER_AUTHENTICATION_FAILED,
1346
+ ADAPTER_OPERATION_FAILED: ERROR_CODES.STORAGE_ADAPTER_OPERATION_FAILED,
1347
+ ADAPTER_HEALTH_CHECK_FAILED: ERROR_CODES.STORAGE_ADAPTER_HEALTH_CHECK_FAILED,
1348
+ ADAPTER_UNAVAILABLE: ERROR_CODES.STORAGE_ADAPTER_UNAVAILABLE,
1349
+ ADAPTER_TIMEOUT: ERROR_CODES.STORAGE_ADAPTER_TIMEOUT,
1350
+ ADAPTER_RATE_LIMIT: ERROR_CODES.STORAGE_ADAPTER_RATE_LIMIT,
1351
+ ADAPTER_QUOTA_EXCEEDED: ERROR_CODES.STORAGE_ADAPTER_QUOTA_EXCEEDED,
1352
+ ADAPTER_UNSUPPORTED_OPERATION: ERROR_CODES.STORAGE_ADAPTER_UNSUPPORTED_OPERATION,
1353
+ ADAPTER_FEATURE_NOT_SUPPORTED: ERROR_CODES.STORAGE_ADAPTER_FEATURE_NOT_SUPPORTED,
1354
+ NO_HEALTHY_ADAPTERS: ERROR_CODES.STORAGE_NO_HEALTHY_ADAPTERS,
1355
+ ALL_ADAPTERS_FAILED: ERROR_CODES.STORAGE_ALL_ADAPTERS_FAILED,
1356
+ // File Validation
1357
+ FILE_TOO_LARGE: ERROR_CODES.STORAGE_FILE_TOO_LARGE,
1358
+ FILE_TOO_SMALL: ERROR_CODES.STORAGE_FILE_TOO_SMALL,
1359
+ FILE_SIZE_INVALID: ERROR_CODES.STORAGE_FILE_SIZE_INVALID,
1360
+ FILE_TYPE_NOT_ALLOWED: ERROR_CODES.STORAGE_FILE_TYPE_NOT_ALLOWED,
1361
+ INVALID_MIME_TYPE: ERROR_CODES.STORAGE_INVALID_MIME_TYPE,
1362
+ INVALID_FILE_EXTENSION: ERROR_CODES.STORAGE_INVALID_FILE_EXTENSION,
1363
+ FILE_EXTENSION_INVALID: ERROR_CODES.STORAGE_FILE_EXTENSION_INVALID,
1364
+ FILE_EXTENSION_MISMATCH: ERROR_CODES.STORAGE_FILE_EXTENSION_MISMATCH,
1365
+ EXECUTABLE_NOT_ALLOWED: ERROR_CODES.STORAGE_EXECUTABLE_NOT_ALLOWED,
1366
+ VALIDATION_FAILED: ERROR_CODES.STORAGE_VALIDATION_FAILED,
1367
+ INVALID_FILE_CONTENT: ERROR_CODES.STORAGE_INVALID_FILE_CONTENT,
1368
+ // Security
1369
+ SECURITY_VIRUS_DETECTED: ERROR_CODES.STORAGE_SECURITY_VIRUS_DETECTED,
1370
+ SECURITY_SCAN_FAILED: ERROR_CODES.STORAGE_SECURITY_SCAN_FAILED,
1371
+ SECURITY_ACCESS_DENIED: ERROR_CODES.STORAGE_SECURITY_ACCESS_DENIED,
1372
+ SECURITY_ENCRYPTION_FAILED: ERROR_CODES.STORAGE_SECURITY_ENCRYPTION_FAILED,
1373
+ // File Operations
1374
+ FILE_UPLOAD_FAILED: ERROR_CODES.STORAGE_FILE_UPLOAD_FAILED,
1375
+ FILE_DOWNLOAD_FAILED: ERROR_CODES.STORAGE_FILE_DOWNLOAD_FAILED,
1376
+ FILE_DELETE_FAILED: ERROR_CODES.STORAGE_FILE_DELETE_FAILED,
1377
+ STORAGE_FILE_UPDATE_FAILED: ERROR_CODES.STORAGE_FILE_UPDATE_FAILED,
1378
+ FILE_NOT_FOUND: ERROR_CODES.STORAGE_FILE_NOT_FOUND,
1379
+ FILE_ALREADY_EXISTS: ERROR_CODES.STORAGE_FILE_ALREADY_EXISTS,
1380
+ FILE_MOVE_FAILED: ERROR_CODES.STORAGE_FILE_MOVE_FAILED,
1381
+ FILE_COPY_FAILED: ERROR_CODES.STORAGE_FILE_COPY_FAILED,
1382
+ FILE_READ_FAILED: ERROR_CODES.STORAGE_FILE_READ_FAILED,
1383
+ FILE_WRITE_FAILED: ERROR_CODES.STORAGE_FILE_WRITE_FAILED,
1384
+ FILE_CORRUPTED: ERROR_CODES.STORAGE_FILE_CORRUPTED,
1385
+ INVALID_OPERATION: ERROR_CODES.STORAGE_INVALID_OPERATION,
1386
+ // Metadata
1387
+ METADATA_EXTRACTION_FAILED: ERROR_CODES.STORAGE_METADATA_EXTRACTION_FAILED,
1388
+ METADATA_INVALID: ERROR_CODES.STORAGE_METADATA_INVALID,
1389
+ METADATA_UPDATE_FAILED: ERROR_CODES.STORAGE_METADATA_UPDATE_FAILED,
1390
+ // Media Processing
1391
+ MEDIA_PROCESSING_FAILED: ERROR_CODES.STORAGE_MEDIA_PROCESSING_FAILED,
1392
+ MEDIA_RESIZE_FAILED: ERROR_CODES.STORAGE_MEDIA_RESIZE_FAILED,
1393
+ MEDIA_FORMAT_UNSUPPORTED: ERROR_CODES.STORAGE_MEDIA_FORMAT_UNSUPPORTED,
1394
+ MEDIA_TRANSCODE_FAILED: ERROR_CODES.STORAGE_MEDIA_TRANSCODE_FAILED,
1395
+ MEDIA_THUMBNAIL_FAILED: ERROR_CODES.STORAGE_MEDIA_THUMBNAIL_FAILED,
1396
+ MEDIA_INVALID_DIMENSIONS: ERROR_CODES.STORAGE_MEDIA_INVALID_DIMENSIONS,
1397
+ // Template & PDF
1398
+ TEMPLATE_NOT_FOUND: ERROR_CODES.STORAGE_TEMPLATE_NOT_FOUND,
1399
+ TEMPLATE_RENDER_FAILED: ERROR_CODES.STORAGE_TEMPLATE_RENDER_FAILED,
1400
+ PDF_GENERATION_FAILED: ERROR_CODES.STORAGE_PDF_GENERATION_FAILED,
1401
+ PDF_RENDERING_TIMEOUT: ERROR_CODES.STORAGE_PDF_RENDERING_TIMEOUT,
1402
+ // Queue
1403
+ QUEUE_FULL: ERROR_CODES.STORAGE_QUEUE_FULL,
1404
+ QUEUE_PROCESSING_FAILED: ERROR_CODES.STORAGE_QUEUE_PROCESSING_FAILED,
1405
+ QUEUE_ITEM_NOT_FOUND: ERROR_CODES.STORAGE_QUEUE_ITEM_NOT_FOUND,
1406
+ // Compliance
1407
+ COMPLIANCE_VIOLATION: ERROR_CODES.STORAGE_COMPLIANCE_VIOLATION,
1408
+ COMPLIANCE_RETENTION_VIOLATION: ERROR_CODES.STORAGE_COMPLIANCE_RETENTION_VIOLATION,
1409
+ COMPLIANCE_RETENTION_EXPIRED: ERROR_CODES.STORAGE_COMPLIANCE_RETENTION_EXPIRED,
1410
+ COMPLIANCE_IMMUTABLE_FILE: ERROR_CODES.STORAGE_COMPLIANCE_IMMUTABLE_FILE,
1411
+ COMPLIANCE_POLICY_NOT_FOUND: ERROR_CODES.STORAGE_COMPLIANCE_POLICY_NOT_FOUND,
1412
+ COMPLIANCE_SOFT_DELETE_REQUIRED: ERROR_CODES.STORAGE_COMPLIANCE_SOFT_DELETE_REQUIRED,
1413
+ COMPLIANCE_GRACE_PERIOD_ACTIVE: ERROR_CODES.STORAGE_COMPLIANCE_GRACE_PERIOD_ACTIVE,
1414
+ COMPLIANCE_DEFERRED_DELETION: ERROR_CODES.STORAGE_COMPLIANCE_DEFERRED_DELETION,
1415
+ COMPLIANCE_PATTERN_PROTECTED: ERROR_CODES.STORAGE_COMPLIANCE_PATTERN_PROTECTED,
1416
+ // Share Links
1417
+ SHARE_LINK_NOT_FOUND: ERROR_CODES.STORAGE_SHARE_LINK_NOT_FOUND,
1418
+ SHARE_LINK_EXPIRED: ERROR_CODES.STORAGE_SHARE_LINK_EXPIRED,
1419
+ SHARE_LINK_MAX_DOWNLOADS: ERROR_CODES.STORAGE_SHARE_LINK_MAX_DOWNLOADS,
1420
+ SHARE_LINK_INVALID_PASSWORD: ERROR_CODES.STORAGE_SHARE_LINK_INVALID_PASSWORD,
1421
+ // Plugin
1422
+ PLUGIN_NOT_FOUND: ERROR_CODES.STORAGE_PLUGIN_NOT_FOUND,
1423
+ PLUGIN_INITIALIZATION_FAILED: ERROR_CODES.STORAGE_PLUGIN_INITIALIZATION_FAILED,
1424
+ PLUGIN_EXECUTION_FAILED: ERROR_CODES.STORAGE_PLUGIN_EXECUTION_FAILED,
1425
+ // VirusTotal Provider (Plugin)
1426
+ VIRUSTOTAL_BAD_REQUEST: ERROR_CODES.STORAGE_VIRUSTOTAL_BAD_REQUEST,
1427
+ VIRUSTOTAL_AUTHENTICATION_REQUIRED: ERROR_CODES.STORAGE_VIRUSTOTAL_AUTHENTICATION_REQUIRED,
1428
+ VIRUSTOTAL_WRONG_CREDENTIALS: ERROR_CODES.STORAGE_VIRUSTOTAL_WRONG_CREDENTIALS,
1429
+ VIRUSTOTAL_FILE_TOO_LARGE: ERROR_CODES.STORAGE_VIRUSTOTAL_FILE_TOO_LARGE,
1430
+ VIRUSTOTAL_QUOTA_EXCEEDED: ERROR_CODES.STORAGE_VIRUSTOTAL_QUOTA_EXCEEDED,
1431
+ VIRUSTOTAL_ANALYSIS_NOT_FOUND: ERROR_CODES.STORAGE_VIRUSTOTAL_ANALYSIS_NOT_FOUND,
1432
+ VIRUSTOTAL_SCAN_TIMEOUT: ERROR_CODES.STORAGE_VIRUSTOTAL_SCAN_TIMEOUT,
1433
+ VIRUSTOTAL_SCAN_FAILED: ERROR_CODES.STORAGE_VIRUSTOTAL_SCAN_FAILED,
1434
+ // CDN Providers (Plugins) - Reference cross-package CDN errors
1435
+ // Cloudflare CDN
1436
+ CLOUDFLARE_AUTHENTICATION_FAILED: ERROR_CODES.CLOUDFLARE_AUTHENTICATION_FAILED,
1437
+ CLOUDFLARE_ZONE_NOT_FOUND: ERROR_CODES.CLOUDFLARE_ZONE_NOT_FOUND,
1438
+ CLOUDFLARE_PURGE_FAILED: ERROR_CODES.CLOUDFLARE_PURGE_FAILED,
1439
+ CLOUDFLARE_RATE_LIMIT_EXCEEDED: ERROR_CODES.CLOUDFLARE_RATE_LIMIT_EXCEEDED,
1440
+ CLOUDFLARE_INVALID_URL: ERROR_CODES.CLOUDFLARE_INVALID_URL,
1441
+ CLOUDFLARE_API_ERROR: ERROR_CODES.CLOUDFLARE_API_ERROR,
1442
+ // AWS CloudFront CDN
1443
+ CLOUDFRONT_AUTHENTICATION_FAILED: ERROR_CODES.CLOUDFRONT_AUTHENTICATION_FAILED,
1444
+ CLOUDFRONT_DISTRIBUTION_NOT_FOUND: ERROR_CODES.CLOUDFRONT_DISTRIBUTION_NOT_FOUND,
1445
+ CLOUDFRONT_INVALIDATION_FAILED: ERROR_CODES.CLOUDFRONT_INVALIDATION_FAILED,
1446
+ CLOUDFRONT_QUOTA_EXCEEDED: ERROR_CODES.CLOUDFRONT_QUOTA_EXCEEDED,
1447
+ CLOUDFRONT_INVALID_PATH: ERROR_CODES.CLOUDFRONT_INVALID_PATH,
1448
+ CLOUDFRONT_API_ERROR: ERROR_CODES.CLOUDFRONT_API_ERROR,
1449
+ // Fastly CDN
1450
+ FASTLY_AUTHENTICATION_FAILED: ERROR_CODES.FASTLY_AUTHENTICATION_FAILED,
1451
+ FASTLY_SERVICE_NOT_FOUND: ERROR_CODES.FASTLY_SERVICE_NOT_FOUND,
1452
+ FASTLY_PURGE_FAILED: ERROR_CODES.FASTLY_PURGE_FAILED,
1453
+ FASTLY_RATE_LIMIT_EXCEEDED: ERROR_CODES.FASTLY_RATE_LIMIT_EXCEEDED,
1454
+ FASTLY_INVALID_URL: ERROR_CODES.FASTLY_INVALID_URL,
1455
+ FASTLY_API_ERROR: ERROR_CODES.FASTLY_API_ERROR,
1456
+ // Generic CDN Errors
1457
+ CDN_INVALIDATION_FAILED: ERROR_CODES.CDN_INVALIDATION_FAILED,
1458
+ CDN_CONFIGURATION_INVALID: ERROR_CODES.CDN_CONFIGURATION_INVALID,
1459
+ CDN_PROVIDER_NOT_FOUND: ERROR_CODES.CDN_PROVIDER_NOT_FOUND,
1460
+ // Presigned URLs
1461
+ PRESIGNED_URL_GENERATION_FAILED: ERROR_CODES.STORAGE_PRESIGNED_URL_GENERATION_FAILED,
1462
+ PRESIGNED_URL_EXPIRED: ERROR_CODES.STORAGE_PRESIGNED_URL_EXPIRED,
1463
+ PRESIGNED_URL_INVALID: ERROR_CODES.STORAGE_PRESIGNED_URL_INVALID,
1464
+ // Chunked Upload
1465
+ CHUNKED_UPLOAD_INIT_FAILED: ERROR_CODES.STORAGE_CHUNKED_UPLOAD_INIT_FAILED,
1466
+ CHUNKED_UPLOAD_PART_FAILED: ERROR_CODES.STORAGE_CHUNKED_UPLOAD_PART_FAILED,
1467
+ CHUNKED_UPLOAD_COMPLETE_FAILED: ERROR_CODES.STORAGE_CHUNKED_UPLOAD_COMPLETE_FAILED,
1468
+ CHUNKED_UPLOAD_ABORT_FAILED: ERROR_CODES.STORAGE_CHUNKED_UPLOAD_ABORT_FAILED,
1469
+ CHUNKED_UPLOAD_NOT_FOUND: ERROR_CODES.STORAGE_CHUNKED_UPLOAD_NOT_FOUND,
1470
+ // CORS
1471
+ CORS_CONFIGURATION_INVALID: ERROR_CODES.STORAGE_CORS_CONFIGURATION_INVALID,
1472
+ CORS_ORIGIN_NOT_ALLOWED: ERROR_CODES.STORAGE_CORS_ORIGIN_NOT_ALLOWED,
1473
+ // TTL
1474
+ TTL_EXPIRED: ERROR_CODES.STORAGE_TTL_EXPIRED,
1475
+ TTL_CLEANUP_FAILED: ERROR_CODES.STORAGE_TTL_CLEANUP_FAILED,
1476
+ // Audit
1477
+ AUDIT_LOG_FAILED: ERROR_CODES.STORAGE_AUDIT_LOG_FAILED,
1478
+ // Webhook
1479
+ WEBHOOK_SIGNATURE_INVALID: ERROR_CODES.STORAGE_WEBHOOK_SIGNATURE_INVALID,
1480
+ WEBHOOK_PAYLOAD_INVALID: ERROR_CODES.STORAGE_WEBHOOK_PAYLOAD_INVALID,
1481
+ WEBHOOK_PROCESSING_FAILED: ERROR_CODES.STORAGE_WEBHOOK_PROCESSING_FAILED,
1482
+ WEBHOOK_TIMEOUT: ERROR_CODES.STORAGE_WEBHOOK_TIMEOUT,
1483
+ WEBHOOK_ADAPTER_NOT_FOUND: ERROR_CODES.STORAGE_WEBHOOK_ADAPTER_NOT_FOUND,
1484
+ WEBHOOK_DUPLICATE_DETECTED: ERROR_CODES.STORAGE_WEBHOOK_DUPLICATE_DETECTED,
1485
+ WEBHOOK_IDEMPOTENCY_ERROR: ERROR_CODES.STORAGE_WEBHOOK_IDEMPOTENCY_ERROR,
1486
+ WEBHOOK_RATE_LIMIT_EXCEEDED: ERROR_CODES.STORAGE_WEBHOOK_RATE_LIMIT_EXCEEDED,
1487
+ // Timeout & Network
1488
+ TIMEOUT: ERROR_CODES.STORAGE_TIMEOUT,
1489
+ NETWORK_ERROR: ERROR_CODES.STORAGE_NETWORK_ERROR,
1490
+ CONNECTION_LOST: ERROR_CODES.STORAGE_CONNECTION_LOST,
1491
+ // Permission & Quota
1492
+ PERMISSION_DENIED: ERROR_CODES.STORAGE_PERMISSION_DENIED,
1493
+ QUOTA_EXCEEDED: ERROR_CODES.STORAGE_QUOTA_EXCEEDED,
1494
+ INSUFFICIENT_SPACE: ERROR_CODES.STORAGE_INSUFFICIENT_SPACE,
1495
+ // Feature Implementation
1496
+ FEATURE_NOT_IMPLEMENTED: ERROR_CODES.STORAGE_FEATURE_NOT_IMPLEMENTED
1497
+ };
1137
1498
  var PAYMENT_ERROR_CODES = {
1138
1499
  // Timeout & Network
1139
1500
  PAYMENT_TIMEOUT: ERROR_CODES.PAYMENT_TIMEOUT,
@@ -1974,207 +2335,1306 @@ var ERROR_DEFINITIONS = {
1974
2335
  category: ERROR_CATEGORY.Unknown,
1975
2336
  userMessage: "errors.unknown",
1976
2337
  severity: ERROR_SEVERITY.Medium,
1977
- retryable: false
2338
+ retryable: false
2339
+ },
2340
+ // ===== Notification Package Error Definitions =====
2341
+ // Provider errors (retryable)
2342
+ [ERROR_CODES.NOTIFICATION_PROVIDER_SEND_FAILED]: {
2343
+ code: ERROR_CODES.NOTIFICATION_PROVIDER_SEND_FAILED,
2344
+ status: HTTP_STATUS.INTERNAL_SERVER_ERROR,
2345
+ category: ERROR_CATEGORY.Provider,
2346
+ severity: ERROR_SEVERITY.High,
2347
+ retryable: true,
2348
+ userMessage: "errors.notification.provider.send_failed"
2349
+ },
2350
+ [ERROR_CODES.NOTIFICATION_PROVIDER_CONFIGURATION_INVALID]: {
2351
+ code: ERROR_CODES.NOTIFICATION_PROVIDER_CONFIGURATION_INVALID,
2352
+ status: HTTP_STATUS.INTERNAL_SERVER_ERROR,
2353
+ category: ERROR_CATEGORY.Configuration,
2354
+ severity: ERROR_SEVERITY.Critical,
2355
+ retryable: false,
2356
+ userMessage: "errors.notification.provider.configuration_invalid"
2357
+ },
2358
+ [ERROR_CODES.NOTIFICATION_PROVIDER_RATE_LIMIT]: {
2359
+ code: ERROR_CODES.NOTIFICATION_PROVIDER_RATE_LIMIT,
2360
+ status: HTTP_STATUS.TOO_MANY_REQUESTS,
2361
+ category: ERROR_CATEGORY.RateLimit,
2362
+ severity: ERROR_SEVERITY.Medium,
2363
+ retryable: true,
2364
+ userMessage: "errors.notification.provider.rate_limit"
2365
+ },
2366
+ [ERROR_CODES.NOTIFICATION_PROVIDER_AUTH_FAILED]: {
2367
+ code: ERROR_CODES.NOTIFICATION_PROVIDER_AUTH_FAILED,
2368
+ status: HTTP_STATUS.UNAUTHORIZED,
2369
+ category: ERROR_CATEGORY.Provider,
2370
+ severity: ERROR_SEVERITY.Critical,
2371
+ retryable: false,
2372
+ userMessage: "errors.notification.provider.auth_failed"
2373
+ },
2374
+ [ERROR_CODES.NOTIFICATION_PROVIDER_TIMEOUT]: {
2375
+ code: ERROR_CODES.NOTIFICATION_PROVIDER_TIMEOUT,
2376
+ status: HTTP_STATUS.GATEWAY_TIMEOUT,
2377
+ category: ERROR_CATEGORY.Network,
2378
+ severity: ERROR_SEVERITY.Medium,
2379
+ retryable: true,
2380
+ userMessage: "errors.notification.provider.timeout"
2381
+ },
2382
+ [ERROR_CODES.NOTIFICATION_PROVIDER_UNAVAILABLE]: {
2383
+ code: ERROR_CODES.NOTIFICATION_PROVIDER_UNAVAILABLE,
2384
+ status: HTTP_STATUS.SERVICE_UNAVAILABLE,
2385
+ category: ERROR_CATEGORY.Provider,
2386
+ severity: ERROR_SEVERITY.High,
2387
+ retryable: true,
2388
+ userMessage: "errors.notification.provider.unavailable"
2389
+ },
2390
+ [ERROR_CODES.NOTIFICATION_PROVIDER_FEATURE_NOT_SUPPORTED]: {
2391
+ code: ERROR_CODES.NOTIFICATION_PROVIDER_FEATURE_NOT_SUPPORTED,
2392
+ status: HTTP_STATUS.NOT_IMPLEMENTED,
2393
+ category: ERROR_CATEGORY.Provider,
2394
+ severity: ERROR_SEVERITY.Low,
2395
+ retryable: false,
2396
+ userMessage: "errors.notification.provider.feature_not_supported"
2397
+ },
2398
+ [ERROR_CODES.NOTIFICATION_ALL_PROVIDERS_FAILED]: {
2399
+ code: ERROR_CODES.NOTIFICATION_ALL_PROVIDERS_FAILED,
2400
+ status: HTTP_STATUS.SERVICE_UNAVAILABLE,
2401
+ category: ERROR_CATEGORY.Provider,
2402
+ severity: ERROR_SEVERITY.Critical,
2403
+ retryable: false,
2404
+ userMessage: "errors.notification.all_providers_failed"
2405
+ },
2406
+ // Validation errors (non-retryable)
2407
+ [ERROR_CODES.NOTIFICATION_INVALID_INPUT]: {
2408
+ code: ERROR_CODES.NOTIFICATION_INVALID_INPUT,
2409
+ status: HTTP_STATUS.BAD_REQUEST,
2410
+ category: ERROR_CATEGORY.Validation,
2411
+ severity: ERROR_SEVERITY.Medium,
2412
+ retryable: false,
2413
+ userMessage: "errors.notification.validation.invalid_input"
2414
+ },
2415
+ [ERROR_CODES.NOTIFICATION_INVALID_RECIPIENT]: {
2416
+ code: ERROR_CODES.NOTIFICATION_INVALID_RECIPIENT,
2417
+ status: HTTP_STATUS.BAD_REQUEST,
2418
+ category: ERROR_CATEGORY.Validation,
2419
+ severity: ERROR_SEVERITY.Medium,
2420
+ retryable: false,
2421
+ userMessage: "errors.notification.validation.invalid_recipient"
2422
+ },
2423
+ [ERROR_CODES.NOTIFICATION_INVALID_TEMPLATE]: {
2424
+ code: ERROR_CODES.NOTIFICATION_INVALID_TEMPLATE,
2425
+ status: HTTP_STATUS.BAD_REQUEST,
2426
+ category: ERROR_CATEGORY.Template,
2427
+ severity: ERROR_SEVERITY.Medium,
2428
+ retryable: false,
2429
+ userMessage: "errors.notification.validation.invalid_template"
2430
+ },
2431
+ [ERROR_CODES.NOTIFICATION_INVALID_PAYLOAD]: {
2432
+ code: ERROR_CODES.NOTIFICATION_INVALID_PAYLOAD,
2433
+ status: HTTP_STATUS.BAD_REQUEST,
2434
+ category: ERROR_CATEGORY.Validation,
2435
+ severity: ERROR_SEVERITY.Medium,
2436
+ retryable: false,
2437
+ userMessage: "errors.notification.validation.invalid_payload"
2438
+ },
2439
+ [ERROR_CODES.NOTIFICATION_MISSING_REQUIRED_FIELD]: {
2440
+ code: ERROR_CODES.NOTIFICATION_MISSING_REQUIRED_FIELD,
2441
+ status: HTTP_STATUS.BAD_REQUEST,
2442
+ category: ERROR_CATEGORY.Validation,
2443
+ severity: ERROR_SEVERITY.Medium,
2444
+ retryable: false,
2445
+ userMessage: "errors.notification.validation.required_field_missing"
2446
+ },
2447
+ [ERROR_CODES.NOTIFICATION_VALIDATION_FAILED]: {
2448
+ code: ERROR_CODES.NOTIFICATION_VALIDATION_FAILED,
2449
+ status: HTTP_STATUS.BAD_REQUEST,
2450
+ category: ERROR_CATEGORY.Validation,
2451
+ severity: ERROR_SEVERITY.Medium,
2452
+ retryable: false,
2453
+ userMessage: "errors.notification.validation.failed"
2454
+ },
2455
+ // User Preferences
2456
+ [ERROR_CODES.NOTIFICATION_USER_OPTED_OUT]: {
2457
+ code: ERROR_CODES.NOTIFICATION_USER_OPTED_OUT,
2458
+ status: HTTP_STATUS.OK,
2459
+ category: ERROR_CATEGORY.Validation,
2460
+ severity: ERROR_SEVERITY.Low,
2461
+ retryable: false,
2462
+ userMessage: "errors.notification.user.opted_out"
2463
+ },
2464
+ // Queue errors (retryable)
2465
+ [ERROR_CODES.NOTIFICATION_QUEUE_FULL]: {
2466
+ code: ERROR_CODES.NOTIFICATION_QUEUE_FULL,
2467
+ status: HTTP_STATUS.SERVICE_UNAVAILABLE,
2468
+ category: ERROR_CATEGORY.Queue,
2469
+ severity: ERROR_SEVERITY.High,
2470
+ retryable: true,
2471
+ userMessage: "errors.notification.queue.full"
2472
+ },
2473
+ [ERROR_CODES.NOTIFICATION_QUEUE_PROCESSING_FAILED]: {
2474
+ code: ERROR_CODES.NOTIFICATION_QUEUE_PROCESSING_FAILED,
2475
+ status: HTTP_STATUS.INTERNAL_SERVER_ERROR,
2476
+ category: ERROR_CATEGORY.Queue,
2477
+ severity: ERROR_SEVERITY.High,
2478
+ retryable: true,
2479
+ userMessage: "errors.notification.queue.processing_failed"
2480
+ },
2481
+ // Webhook errors
2482
+ [ERROR_CODES.NOTIFICATION_WEBHOOK_SIGNATURE_INVALID]: {
2483
+ code: ERROR_CODES.NOTIFICATION_WEBHOOK_SIGNATURE_INVALID,
2484
+ status: HTTP_STATUS.UNAUTHORIZED,
2485
+ category: ERROR_CATEGORY.Webhook,
2486
+ severity: ERROR_SEVERITY.High,
2487
+ retryable: false,
2488
+ userMessage: "errors.notification.webhook.signature_invalid"
2489
+ },
2490
+ [ERROR_CODES.NOTIFICATION_WEBHOOK_VALIDATION_FAILED]: {
2491
+ code: ERROR_CODES.NOTIFICATION_WEBHOOK_VALIDATION_FAILED,
2492
+ status: HTTP_STATUS.BAD_REQUEST,
2493
+ category: ERROR_CATEGORY.Webhook,
2494
+ severity: ERROR_SEVERITY.Medium,
2495
+ retryable: false,
2496
+ userMessage: "errors.notification.webhook.validation_failed"
2497
+ },
2498
+ [ERROR_CODES.NOTIFICATION_WEBHOOK_PROCESSING_FAILED]: {
2499
+ code: ERROR_CODES.NOTIFICATION_WEBHOOK_PROCESSING_FAILED,
2500
+ status: HTTP_STATUS.INTERNAL_SERVER_ERROR,
2501
+ category: ERROR_CATEGORY.Webhook,
2502
+ severity: ERROR_SEVERITY.High,
2503
+ retryable: true,
2504
+ userMessage: "errors.notification.webhook.processing_failed"
2505
+ },
2506
+ // Template errors
2507
+ [ERROR_CODES.NOTIFICATION_TEMPLATE_NOT_FOUND]: {
2508
+ code: ERROR_CODES.NOTIFICATION_TEMPLATE_NOT_FOUND,
2509
+ status: HTTP_STATUS.NOT_FOUND,
2510
+ category: ERROR_CATEGORY.Template,
2511
+ severity: ERROR_SEVERITY.High,
2512
+ retryable: false,
2513
+ userMessage: "errors.notification.template.not_found"
2514
+ },
2515
+ [ERROR_CODES.NOTIFICATION_TEMPLATE_RENDER_FAILED]: {
2516
+ code: ERROR_CODES.NOTIFICATION_TEMPLATE_RENDER_FAILED,
2517
+ status: HTTP_STATUS.INTERNAL_SERVER_ERROR,
2518
+ category: ERROR_CATEGORY.Template,
2519
+ severity: ERROR_SEVERITY.High,
2520
+ retryable: false,
2521
+ userMessage: "errors.notification.template.render_failed"
2522
+ },
2523
+ // General notification errors
2524
+ [ERROR_CODES.NOTIFICATION_UNKNOWN_ERROR]: {
2525
+ code: ERROR_CODES.NOTIFICATION_UNKNOWN_ERROR,
2526
+ status: HTTP_STATUS.INTERNAL_SERVER_ERROR,
2527
+ category: ERROR_CATEGORY.Unknown,
2528
+ severity: ERROR_SEVERITY.Medium,
2529
+ retryable: false,
2530
+ userMessage: "errors.notification.unknown"
2531
+ },
2532
+ [ERROR_CODES.NOTIFICATION_INITIALIZATION_FAILED]: {
2533
+ code: ERROR_CODES.NOTIFICATION_INITIALIZATION_FAILED,
2534
+ status: HTTP_STATUS.INTERNAL_SERVER_ERROR,
2535
+ category: ERROR_CATEGORY.Configuration,
2536
+ severity: ERROR_SEVERITY.Critical,
2537
+ retryable: false,
2538
+ userMessage: "errors.notification.initialization_failed"
2539
+ },
2540
+ // ===== Storage Package Error Definitions =====
2541
+ // General
2542
+ [ERROR_CODES.STORAGE_UNKNOWN_ERROR]: {
2543
+ code: ERROR_CODES.STORAGE_UNKNOWN_ERROR,
2544
+ status: HTTP_STATUS.INTERNAL_SERVER_ERROR,
2545
+ category: ERROR_CATEGORY.Unknown,
2546
+ severity: ERROR_SEVERITY.Medium,
2547
+ retryable: false,
2548
+ userMessage: "errors.storage.unknown"
2549
+ },
2550
+ [ERROR_CODES.STORAGE_INITIALIZATION_FAILED]: {
2551
+ code: ERROR_CODES.STORAGE_INITIALIZATION_FAILED,
2552
+ status: HTTP_STATUS.INTERNAL_SERVER_ERROR,
2553
+ category: ERROR_CATEGORY.Configuration,
2554
+ severity: ERROR_SEVERITY.Critical,
2555
+ retryable: false,
2556
+ userMessage: "errors.storage.initialization_failed"
2557
+ },
2558
+ // Adapter errors
2559
+ [ERROR_CODES.STORAGE_ADAPTER_NOT_FOUND]: {
2560
+ code: ERROR_CODES.STORAGE_ADAPTER_NOT_FOUND,
2561
+ status: HTTP_STATUS.NOT_FOUND,
2562
+ category: ERROR_CATEGORY.Configuration,
2563
+ severity: ERROR_SEVERITY.Critical,
2564
+ retryable: false,
2565
+ userMessage: "errors.storage.adapter.not_found"
2566
+ },
2567
+ [ERROR_CODES.STORAGE_ADAPTER_INITIALIZATION_FAILED]: {
2568
+ code: ERROR_CODES.STORAGE_ADAPTER_INITIALIZATION_FAILED,
2569
+ status: HTTP_STATUS.INTERNAL_SERVER_ERROR,
2570
+ category: ERROR_CATEGORY.ExternalService,
2571
+ severity: ERROR_SEVERITY.Critical,
2572
+ retryable: false,
2573
+ userMessage: "errors.storage.adapter.initialization_failed"
2574
+ },
2575
+ [ERROR_CODES.STORAGE_ADAPTER_CONFIGURATION_INVALID]: {
2576
+ code: ERROR_CODES.STORAGE_ADAPTER_CONFIGURATION_INVALID,
2577
+ status: HTTP_STATUS.INTERNAL_SERVER_ERROR,
2578
+ category: ERROR_CATEGORY.Configuration,
2579
+ severity: ERROR_SEVERITY.Critical,
2580
+ retryable: false,
2581
+ userMessage: "errors.storage.adapter.configuration_invalid"
2582
+ },
2583
+ [ERROR_CODES.STORAGE_ADAPTER_ALREADY_REGISTERED]: {
2584
+ code: ERROR_CODES.STORAGE_ADAPTER_ALREADY_REGISTERED,
2585
+ status: HTTP_STATUS.CONFLICT,
2586
+ category: ERROR_CATEGORY.Configuration,
2587
+ severity: ERROR_SEVERITY.High,
2588
+ retryable: false,
2589
+ userMessage: "errors.storage.adapter.already_registered"
2590
+ },
2591
+ [ERROR_CODES.STORAGE_ADAPTER_CONNECTION_FAILED]: {
2592
+ code: ERROR_CODES.STORAGE_ADAPTER_CONNECTION_FAILED,
2593
+ status: HTTP_STATUS.SERVICE_UNAVAILABLE,
2594
+ category: ERROR_CATEGORY.Network,
2595
+ severity: ERROR_SEVERITY.High,
2596
+ retryable: true,
2597
+ userMessage: "errors.storage.adapter.connection_failed"
2598
+ },
2599
+ [ERROR_CODES.STORAGE_ADAPTER_AUTHENTICATION_FAILED]: {
2600
+ code: ERROR_CODES.STORAGE_ADAPTER_AUTHENTICATION_FAILED,
2601
+ status: HTTP_STATUS.UNAUTHORIZED,
2602
+ category: ERROR_CATEGORY.Authentication,
2603
+ severity: ERROR_SEVERITY.Critical,
2604
+ retryable: false,
2605
+ userMessage: "errors.storage.adapter.authentication_failed"
2606
+ },
2607
+ [ERROR_CODES.STORAGE_ADAPTER_OPERATION_FAILED]: {
2608
+ code: ERROR_CODES.STORAGE_ADAPTER_OPERATION_FAILED,
2609
+ status: HTTP_STATUS.INTERNAL_SERVER_ERROR,
2610
+ category: ERROR_CATEGORY.ExternalService,
2611
+ severity: ERROR_SEVERITY.High,
2612
+ retryable: true,
2613
+ userMessage: "errors.storage.adapter.operation_failed"
2614
+ },
2615
+ [ERROR_CODES.STORAGE_ADAPTER_HEALTH_CHECK_FAILED]: {
2616
+ code: ERROR_CODES.STORAGE_ADAPTER_HEALTH_CHECK_FAILED,
2617
+ status: HTTP_STATUS.SERVICE_UNAVAILABLE,
2618
+ category: ERROR_CATEGORY.ExternalService,
2619
+ severity: ERROR_SEVERITY.Medium,
2620
+ retryable: true,
2621
+ userMessage: "errors.storage.adapter.health_check_failed"
2622
+ },
2623
+ [ERROR_CODES.STORAGE_ADAPTER_UNAVAILABLE]: {
2624
+ code: ERROR_CODES.STORAGE_ADAPTER_UNAVAILABLE,
2625
+ status: HTTP_STATUS.SERVICE_UNAVAILABLE,
2626
+ category: ERROR_CATEGORY.ExternalService,
2627
+ severity: ERROR_SEVERITY.High,
2628
+ retryable: true,
2629
+ userMessage: "errors.storage.adapter.unavailable"
2630
+ },
2631
+ [ERROR_CODES.STORAGE_ADAPTER_TIMEOUT]: {
2632
+ code: ERROR_CODES.STORAGE_ADAPTER_TIMEOUT,
2633
+ status: HTTP_STATUS.GATEWAY_TIMEOUT,
2634
+ category: ERROR_CATEGORY.Timeout,
2635
+ severity: ERROR_SEVERITY.Medium,
2636
+ retryable: true,
2637
+ userMessage: "errors.storage.adapter.timeout"
2638
+ },
2639
+ [ERROR_CODES.STORAGE_ADAPTER_RATE_LIMIT]: {
2640
+ code: ERROR_CODES.STORAGE_ADAPTER_RATE_LIMIT,
2641
+ status: HTTP_STATUS.TOO_MANY_REQUESTS,
2642
+ category: ERROR_CATEGORY.RateLimit,
2643
+ severity: ERROR_SEVERITY.Medium,
2644
+ retryable: true,
2645
+ userMessage: "errors.storage.adapter.rate_limit"
2646
+ },
2647
+ [ERROR_CODES.STORAGE_ADAPTER_QUOTA_EXCEEDED]: {
2648
+ code: ERROR_CODES.STORAGE_ADAPTER_QUOTA_EXCEEDED,
2649
+ status: HTTP_STATUS.INSUFFICIENT_STORAGE,
2650
+ category: ERROR_CATEGORY.Quota,
2651
+ severity: ERROR_SEVERITY.High,
2652
+ retryable: false,
2653
+ userMessage: "errors.storage.adapter.quota_exceeded"
2654
+ },
2655
+ [ERROR_CODES.STORAGE_ADAPTER_UNSUPPORTED_OPERATION]: {
2656
+ code: ERROR_CODES.STORAGE_ADAPTER_UNSUPPORTED_OPERATION,
2657
+ status: HTTP_STATUS.NOT_IMPLEMENTED,
2658
+ category: ERROR_CATEGORY.ExternalService,
2659
+ severity: ERROR_SEVERITY.Medium,
2660
+ retryable: false,
2661
+ userMessage: "errors.storage.adapter.unsupported_operation"
2662
+ },
2663
+ [ERROR_CODES.STORAGE_ADAPTER_FEATURE_NOT_SUPPORTED]: {
2664
+ code: ERROR_CODES.STORAGE_ADAPTER_FEATURE_NOT_SUPPORTED,
2665
+ status: HTTP_STATUS.NOT_IMPLEMENTED,
2666
+ category: ERROR_CATEGORY.ExternalService,
2667
+ severity: ERROR_SEVERITY.Medium,
2668
+ retryable: false,
2669
+ userMessage: "errors.storage.adapter.feature_not_supported"
2670
+ },
2671
+ [ERROR_CODES.STORAGE_NO_HEALTHY_ADAPTERS]: {
2672
+ code: ERROR_CODES.STORAGE_NO_HEALTHY_ADAPTERS,
2673
+ status: HTTP_STATUS.SERVICE_UNAVAILABLE,
2674
+ category: ERROR_CATEGORY.ExternalService,
2675
+ severity: ERROR_SEVERITY.Critical,
2676
+ retryable: true,
2677
+ userMessage: "errors.storage.no_healthy_adapters"
2678
+ },
2679
+ [ERROR_CODES.STORAGE_ALL_ADAPTERS_FAILED]: {
2680
+ code: ERROR_CODES.STORAGE_ALL_ADAPTERS_FAILED,
2681
+ status: HTTP_STATUS.SERVICE_UNAVAILABLE,
2682
+ category: ERROR_CATEGORY.ExternalService,
2683
+ severity: ERROR_SEVERITY.Critical,
2684
+ retryable: true,
2685
+ userMessage: "errors.storage.all_adapters_failed"
2686
+ },
2687
+ // File Validation
2688
+ [ERROR_CODES.STORAGE_FILE_TOO_LARGE]: {
2689
+ code: ERROR_CODES.STORAGE_FILE_TOO_LARGE,
2690
+ status: HTTP_STATUS.PAYLOAD_TOO_LARGE,
2691
+ category: ERROR_CATEGORY.Validation,
2692
+ severity: ERROR_SEVERITY.Low,
2693
+ retryable: false,
2694
+ userMessage: "errors.storage.file.too_large"
2695
+ },
2696
+ [ERROR_CODES.STORAGE_FILE_TOO_SMALL]: {
2697
+ code: ERROR_CODES.STORAGE_FILE_TOO_SMALL,
2698
+ status: HTTP_STATUS.BAD_REQUEST,
2699
+ category: ERROR_CATEGORY.Validation,
2700
+ severity: ERROR_SEVERITY.Low,
2701
+ retryable: false,
2702
+ userMessage: "errors.storage.file.too_small"
2703
+ },
2704
+ [ERROR_CODES.STORAGE_FILE_SIZE_INVALID]: {
2705
+ code: ERROR_CODES.STORAGE_FILE_SIZE_INVALID,
2706
+ status: HTTP_STATUS.BAD_REQUEST,
2707
+ category: ERROR_CATEGORY.Validation,
2708
+ severity: ERROR_SEVERITY.Low,
2709
+ retryable: false,
2710
+ userMessage: "errors.storage.file.size.invalid"
2711
+ },
2712
+ [ERROR_CODES.STORAGE_FILE_TYPE_NOT_ALLOWED]: {
2713
+ code: ERROR_CODES.STORAGE_FILE_TYPE_NOT_ALLOWED,
2714
+ status: HTTP_STATUS.UNSUPPORTED_MEDIA_TYPE,
2715
+ category: ERROR_CATEGORY.Security,
2716
+ severity: ERROR_SEVERITY.Medium,
2717
+ retryable: false,
2718
+ userMessage: "errors.storage.file.type.not_allowed"
2719
+ },
2720
+ [ERROR_CODES.STORAGE_INVALID_MIME_TYPE]: {
2721
+ code: ERROR_CODES.STORAGE_INVALID_MIME_TYPE,
2722
+ status: HTTP_STATUS.UNSUPPORTED_MEDIA_TYPE,
2723
+ category: ERROR_CATEGORY.Validation,
2724
+ severity: ERROR_SEVERITY.Low,
2725
+ retryable: false,
2726
+ userMessage: "errors.storage.mime_type.invalid"
2727
+ },
2728
+ [ERROR_CODES.STORAGE_INVALID_FILE_EXTENSION]: {
2729
+ code: ERROR_CODES.STORAGE_INVALID_FILE_EXTENSION,
2730
+ status: HTTP_STATUS.BAD_REQUEST,
2731
+ category: ERROR_CATEGORY.Validation,
2732
+ severity: ERROR_SEVERITY.Low,
2733
+ retryable: false,
2734
+ userMessage: "errors.storage.extension.invalid"
2735
+ },
2736
+ [ERROR_CODES.STORAGE_FILE_EXTENSION_INVALID]: {
2737
+ code: ERROR_CODES.STORAGE_FILE_EXTENSION_INVALID,
2738
+ status: HTTP_STATUS.BAD_REQUEST,
2739
+ category: ERROR_CATEGORY.Validation,
2740
+ severity: ERROR_SEVERITY.Low,
2741
+ retryable: false,
2742
+ userMessage: "errors.storage.file.extension.invalid"
2743
+ },
2744
+ [ERROR_CODES.STORAGE_FILE_EXTENSION_MISMATCH]: {
2745
+ code: ERROR_CODES.STORAGE_FILE_EXTENSION_MISMATCH,
2746
+ status: HTTP_STATUS.BAD_REQUEST,
2747
+ category: ERROR_CATEGORY.Validation,
2748
+ severity: ERROR_SEVERITY.Medium,
2749
+ retryable: false,
2750
+ userMessage: "errors.storage.file.extension.mismatch"
2751
+ },
2752
+ [ERROR_CODES.STORAGE_EXECUTABLE_NOT_ALLOWED]: {
2753
+ code: ERROR_CODES.STORAGE_EXECUTABLE_NOT_ALLOWED,
2754
+ status: HTTP_STATUS.FORBIDDEN,
2755
+ category: ERROR_CATEGORY.Security,
2756
+ severity: ERROR_SEVERITY.High,
2757
+ retryable: false,
2758
+ userMessage: "errors.storage.executable_not_allowed"
2759
+ },
2760
+ [ERROR_CODES.STORAGE_VALIDATION_FAILED]: {
2761
+ code: ERROR_CODES.STORAGE_VALIDATION_FAILED,
2762
+ status: HTTP_STATUS.BAD_REQUEST,
2763
+ category: ERROR_CATEGORY.Validation,
2764
+ severity: ERROR_SEVERITY.Low,
2765
+ retryable: false,
2766
+ userMessage: "errors.storage.validation.failed"
2767
+ },
2768
+ [ERROR_CODES.STORAGE_INVALID_FILE_CONTENT]: {
2769
+ code: ERROR_CODES.STORAGE_INVALID_FILE_CONTENT,
2770
+ status: HTTP_STATUS.BAD_REQUEST,
2771
+ category: ERROR_CATEGORY.Validation,
2772
+ severity: ERROR_SEVERITY.Medium,
2773
+ retryable: false,
2774
+ userMessage: "errors.storage.validation.invalid_file_content"
2775
+ },
2776
+ // Security
2777
+ [ERROR_CODES.STORAGE_SECURITY_VIRUS_DETECTED]: {
2778
+ code: ERROR_CODES.STORAGE_SECURITY_VIRUS_DETECTED,
2779
+ status: HTTP_STATUS.FORBIDDEN,
2780
+ category: ERROR_CATEGORY.Security,
2781
+ severity: ERROR_SEVERITY.Critical,
2782
+ retryable: false,
2783
+ userMessage: "errors.storage.security.virus_detected"
2784
+ },
2785
+ [ERROR_CODES.STORAGE_SECURITY_SCAN_FAILED]: {
2786
+ code: ERROR_CODES.STORAGE_SECURITY_SCAN_FAILED,
2787
+ status: HTTP_STATUS.INTERNAL_SERVER_ERROR,
2788
+ category: ERROR_CATEGORY.Security,
2789
+ severity: ERROR_SEVERITY.High,
2790
+ retryable: true,
2791
+ userMessage: "errors.storage.security.scan_failed"
2792
+ },
2793
+ [ERROR_CODES.STORAGE_SECURITY_ACCESS_DENIED]: {
2794
+ code: ERROR_CODES.STORAGE_SECURITY_ACCESS_DENIED,
2795
+ status: HTTP_STATUS.FORBIDDEN,
2796
+ category: ERROR_CATEGORY.Authorization,
2797
+ severity: ERROR_SEVERITY.Medium,
2798
+ retryable: false,
2799
+ userMessage: "errors.storage.security.access_denied"
2800
+ },
2801
+ [ERROR_CODES.STORAGE_SECURITY_ENCRYPTION_FAILED]: {
2802
+ code: ERROR_CODES.STORAGE_SECURITY_ENCRYPTION_FAILED,
2803
+ status: HTTP_STATUS.INTERNAL_SERVER_ERROR,
2804
+ category: ERROR_CATEGORY.Security,
2805
+ severity: ERROR_SEVERITY.High,
2806
+ retryable: true,
2807
+ userMessage: "errors.storage.security.encryption_failed"
2808
+ },
2809
+ // File Operations
2810
+ [ERROR_CODES.STORAGE_FILE_UPLOAD_FAILED]: {
2811
+ code: ERROR_CODES.STORAGE_FILE_UPLOAD_FAILED,
2812
+ status: HTTP_STATUS.INTERNAL_SERVER_ERROR,
2813
+ category: ERROR_CATEGORY.FileOperation,
2814
+ severity: ERROR_SEVERITY.High,
2815
+ retryable: true,
2816
+ userMessage: "errors.storage.file.upload_failed"
2817
+ },
2818
+ [ERROR_CODES.STORAGE_FILE_DOWNLOAD_FAILED]: {
2819
+ code: ERROR_CODES.STORAGE_FILE_DOWNLOAD_FAILED,
2820
+ status: HTTP_STATUS.INTERNAL_SERVER_ERROR,
2821
+ category: ERROR_CATEGORY.FileOperation,
2822
+ severity: ERROR_SEVERITY.High,
2823
+ retryable: true,
2824
+ userMessage: "errors.storage.file.download_failed"
2825
+ },
2826
+ [ERROR_CODES.STORAGE_FILE_DELETE_FAILED]: {
2827
+ code: ERROR_CODES.STORAGE_FILE_DELETE_FAILED,
2828
+ status: HTTP_STATUS.INTERNAL_SERVER_ERROR,
2829
+ category: ERROR_CATEGORY.FileOperation,
2830
+ severity: ERROR_SEVERITY.High,
2831
+ retryable: true,
2832
+ userMessage: "errors.storage.file.delete_failed"
2833
+ },
2834
+ [ERROR_CODES.STORAGE_FILE_UPDATE_FAILED]: {
2835
+ code: ERROR_CODES.STORAGE_FILE_UPDATE_FAILED,
2836
+ status: HTTP_STATUS.INTERNAL_SERVER_ERROR,
2837
+ category: ERROR_CATEGORY.FileOperation,
2838
+ severity: ERROR_SEVERITY.High,
2839
+ retryable: true,
2840
+ userMessage: "errors.storage.file.update_failed"
2841
+ },
2842
+ [ERROR_CODES.STORAGE_FILE_NOT_FOUND]: {
2843
+ code: ERROR_CODES.STORAGE_FILE_NOT_FOUND,
2844
+ status: HTTP_STATUS.NOT_FOUND,
2845
+ category: ERROR_CATEGORY.NotFound,
2846
+ severity: ERROR_SEVERITY.Low,
2847
+ retryable: false,
2848
+ userMessage: "errors.storage.file.not_found"
2849
+ },
2850
+ [ERROR_CODES.STORAGE_FILE_ALREADY_EXISTS]: {
2851
+ code: ERROR_CODES.STORAGE_FILE_ALREADY_EXISTS,
2852
+ status: HTTP_STATUS.CONFLICT,
2853
+ category: ERROR_CATEGORY.Conflict,
2854
+ severity: ERROR_SEVERITY.Low,
2855
+ retryable: false,
2856
+ userMessage: "errors.storage.file.already_exists"
2857
+ },
2858
+ [ERROR_CODES.STORAGE_FILE_MOVE_FAILED]: {
2859
+ code: ERROR_CODES.STORAGE_FILE_MOVE_FAILED,
2860
+ status: HTTP_STATUS.INTERNAL_SERVER_ERROR,
2861
+ category: ERROR_CATEGORY.FileOperation,
2862
+ severity: ERROR_SEVERITY.Medium,
2863
+ retryable: true,
2864
+ userMessage: "errors.storage.file.move_failed"
2865
+ },
2866
+ [ERROR_CODES.STORAGE_FILE_COPY_FAILED]: {
2867
+ code: ERROR_CODES.STORAGE_FILE_COPY_FAILED,
2868
+ status: HTTP_STATUS.INTERNAL_SERVER_ERROR,
2869
+ category: ERROR_CATEGORY.FileOperation,
2870
+ severity: ERROR_SEVERITY.Medium,
2871
+ retryable: true,
2872
+ userMessage: "errors.storage.file.copy_failed"
2873
+ },
2874
+ [ERROR_CODES.STORAGE_FILE_READ_FAILED]: {
2875
+ code: ERROR_CODES.STORAGE_FILE_READ_FAILED,
2876
+ status: HTTP_STATUS.INTERNAL_SERVER_ERROR,
2877
+ category: ERROR_CATEGORY.FileOperation,
2878
+ severity: ERROR_SEVERITY.High,
2879
+ retryable: true,
2880
+ userMessage: "errors.storage.file.read_failed"
2881
+ },
2882
+ [ERROR_CODES.STORAGE_FILE_WRITE_FAILED]: {
2883
+ code: ERROR_CODES.STORAGE_FILE_WRITE_FAILED,
2884
+ status: HTTP_STATUS.INTERNAL_SERVER_ERROR,
2885
+ category: ERROR_CATEGORY.FileOperation,
2886
+ severity: ERROR_SEVERITY.High,
2887
+ retryable: true,
2888
+ userMessage: "errors.storage.file.write_failed"
2889
+ },
2890
+ [ERROR_CODES.STORAGE_FILE_CORRUPTED]: {
2891
+ code: ERROR_CODES.STORAGE_FILE_CORRUPTED,
2892
+ status: HTTP_STATUS.BAD_REQUEST,
2893
+ category: ERROR_CATEGORY.Validation,
2894
+ severity: ERROR_SEVERITY.Medium,
2895
+ retryable: false,
2896
+ userMessage: "errors.storage.file.corrupted"
2897
+ },
2898
+ [ERROR_CODES.STORAGE_INVALID_OPERATION]: {
2899
+ code: ERROR_CODES.STORAGE_INVALID_OPERATION,
2900
+ status: HTTP_STATUS.BAD_REQUEST,
2901
+ category: ERROR_CATEGORY.Validation,
2902
+ severity: ERROR_SEVERITY.Low,
2903
+ retryable: false,
2904
+ userMessage: "errors.storage.invalid_operation"
2905
+ },
2906
+ // Metadata
2907
+ [ERROR_CODES.STORAGE_METADATA_EXTRACTION_FAILED]: {
2908
+ code: ERROR_CODES.STORAGE_METADATA_EXTRACTION_FAILED,
2909
+ status: HTTP_STATUS.INTERNAL_SERVER_ERROR,
2910
+ category: ERROR_CATEGORY.Processing,
2911
+ severity: ERROR_SEVERITY.Low,
2912
+ retryable: true,
2913
+ userMessage: "errors.storage.metadata.extraction_failed"
2914
+ },
2915
+ [ERROR_CODES.STORAGE_METADATA_INVALID]: {
2916
+ code: ERROR_CODES.STORAGE_METADATA_INVALID,
2917
+ status: HTTP_STATUS.BAD_REQUEST,
2918
+ category: ERROR_CATEGORY.Validation,
2919
+ severity: ERROR_SEVERITY.Low,
2920
+ retryable: false,
2921
+ userMessage: "errors.storage.metadata.invalid"
2922
+ },
2923
+ [ERROR_CODES.STORAGE_METADATA_UPDATE_FAILED]: {
2924
+ code: ERROR_CODES.STORAGE_METADATA_UPDATE_FAILED,
2925
+ status: HTTP_STATUS.INTERNAL_SERVER_ERROR,
2926
+ category: ERROR_CATEGORY.Processing,
2927
+ severity: ERROR_SEVERITY.Medium,
2928
+ retryable: true,
2929
+ userMessage: "errors.storage.metadata.update_failed"
2930
+ },
2931
+ // Media Processing
2932
+ [ERROR_CODES.STORAGE_MEDIA_PROCESSING_FAILED]: {
2933
+ code: ERROR_CODES.STORAGE_MEDIA_PROCESSING_FAILED,
2934
+ status: HTTP_STATUS.INTERNAL_SERVER_ERROR,
2935
+ category: ERROR_CATEGORY.Processing,
2936
+ severity: ERROR_SEVERITY.Medium,
2937
+ retryable: true,
2938
+ userMessage: "errors.storage.media.processing_failed"
2939
+ },
2940
+ [ERROR_CODES.STORAGE_MEDIA_RESIZE_FAILED]: {
2941
+ code: ERROR_CODES.STORAGE_MEDIA_RESIZE_FAILED,
2942
+ status: HTTP_STATUS.INTERNAL_SERVER_ERROR,
2943
+ category: ERROR_CATEGORY.Processing,
2944
+ severity: ERROR_SEVERITY.Medium,
2945
+ retryable: true,
2946
+ userMessage: "errors.storage.media.resize_failed"
2947
+ },
2948
+ [ERROR_CODES.STORAGE_MEDIA_FORMAT_UNSUPPORTED]: {
2949
+ code: ERROR_CODES.STORAGE_MEDIA_FORMAT_UNSUPPORTED,
2950
+ status: HTTP_STATUS.UNSUPPORTED_MEDIA_TYPE,
2951
+ category: ERROR_CATEGORY.Validation,
2952
+ severity: ERROR_SEVERITY.Low,
2953
+ retryable: false,
2954
+ userMessage: "errors.storage.media.format_unsupported"
2955
+ },
2956
+ [ERROR_CODES.STORAGE_MEDIA_TRANSCODE_FAILED]: {
2957
+ code: ERROR_CODES.STORAGE_MEDIA_TRANSCODE_FAILED,
2958
+ status: HTTP_STATUS.INTERNAL_SERVER_ERROR,
2959
+ category: ERROR_CATEGORY.Processing,
2960
+ severity: ERROR_SEVERITY.Medium,
2961
+ retryable: true,
2962
+ userMessage: "errors.storage.media.transcode_failed"
2963
+ },
2964
+ [ERROR_CODES.STORAGE_MEDIA_THUMBNAIL_FAILED]: {
2965
+ code: ERROR_CODES.STORAGE_MEDIA_THUMBNAIL_FAILED,
2966
+ status: HTTP_STATUS.INTERNAL_SERVER_ERROR,
2967
+ category: ERROR_CATEGORY.Processing,
2968
+ severity: ERROR_SEVERITY.Low,
2969
+ retryable: true,
2970
+ userMessage: "errors.storage.media.thumbnail_failed"
2971
+ },
2972
+ [ERROR_CODES.STORAGE_MEDIA_INVALID_DIMENSIONS]: {
2973
+ code: ERROR_CODES.STORAGE_MEDIA_INVALID_DIMENSIONS,
2974
+ status: HTTP_STATUS.BAD_REQUEST,
2975
+ category: ERROR_CATEGORY.Validation,
2976
+ severity: ERROR_SEVERITY.Low,
2977
+ retryable: false,
2978
+ userMessage: "errors.storage.media.invalid_dimensions"
2979
+ },
2980
+ // Template & PDF
2981
+ [ERROR_CODES.STORAGE_TEMPLATE_NOT_FOUND]: {
2982
+ code: ERROR_CODES.STORAGE_TEMPLATE_NOT_FOUND,
2983
+ status: HTTP_STATUS.NOT_FOUND,
2984
+ category: ERROR_CATEGORY.NotFound,
2985
+ severity: ERROR_SEVERITY.Medium,
2986
+ retryable: false,
2987
+ userMessage: "errors.storage.template.not_found"
2988
+ },
2989
+ [ERROR_CODES.STORAGE_TEMPLATE_RENDER_FAILED]: {
2990
+ code: ERROR_CODES.STORAGE_TEMPLATE_RENDER_FAILED,
2991
+ status: HTTP_STATUS.INTERNAL_SERVER_ERROR,
2992
+ category: ERROR_CATEGORY.Template,
2993
+ severity: ERROR_SEVERITY.Medium,
2994
+ retryable: true,
2995
+ userMessage: "errors.storage.template.render_failed"
2996
+ },
2997
+ [ERROR_CODES.STORAGE_PDF_GENERATION_FAILED]: {
2998
+ code: ERROR_CODES.STORAGE_PDF_GENERATION_FAILED,
2999
+ status: HTTP_STATUS.INTERNAL_SERVER_ERROR,
3000
+ category: ERROR_CATEGORY.Processing,
3001
+ severity: ERROR_SEVERITY.Medium,
3002
+ retryable: true,
3003
+ userMessage: "errors.storage.pdf.generation_failed"
3004
+ },
3005
+ [ERROR_CODES.STORAGE_PDF_RENDERING_TIMEOUT]: {
3006
+ code: ERROR_CODES.STORAGE_PDF_RENDERING_TIMEOUT,
3007
+ status: HTTP_STATUS.GATEWAY_TIMEOUT,
3008
+ category: ERROR_CATEGORY.Timeout,
3009
+ severity: ERROR_SEVERITY.Medium,
3010
+ retryable: true,
3011
+ userMessage: "errors.storage.pdf.rendering_timeout"
3012
+ },
3013
+ // Queue
3014
+ [ERROR_CODES.STORAGE_QUEUE_FULL]: {
3015
+ code: ERROR_CODES.STORAGE_QUEUE_FULL,
3016
+ status: HTTP_STATUS.SERVICE_UNAVAILABLE,
3017
+ category: ERROR_CATEGORY.Queue,
3018
+ severity: ERROR_SEVERITY.Medium,
3019
+ retryable: true,
3020
+ userMessage: "errors.storage.queue.full"
3021
+ },
3022
+ [ERROR_CODES.STORAGE_QUEUE_PROCESSING_FAILED]: {
3023
+ code: ERROR_CODES.STORAGE_QUEUE_PROCESSING_FAILED,
3024
+ status: HTTP_STATUS.INTERNAL_SERVER_ERROR,
3025
+ category: ERROR_CATEGORY.Queue,
3026
+ severity: ERROR_SEVERITY.High,
3027
+ retryable: true,
3028
+ userMessage: "errors.storage.queue.processing_failed"
3029
+ },
3030
+ [ERROR_CODES.STORAGE_QUEUE_ITEM_NOT_FOUND]: {
3031
+ code: ERROR_CODES.STORAGE_QUEUE_ITEM_NOT_FOUND,
3032
+ status: HTTP_STATUS.NOT_FOUND,
3033
+ category: ERROR_CATEGORY.NotFound,
3034
+ severity: ERROR_SEVERITY.Low,
3035
+ retryable: false,
3036
+ userMessage: "errors.storage.queue.item_not_found"
3037
+ },
3038
+ // Compliance
3039
+ [ERROR_CODES.STORAGE_COMPLIANCE_VIOLATION]: {
3040
+ code: ERROR_CODES.STORAGE_COMPLIANCE_VIOLATION,
3041
+ status: HTTP_STATUS.FORBIDDEN,
3042
+ category: ERROR_CATEGORY.Compliance,
3043
+ severity: ERROR_SEVERITY.High,
3044
+ retryable: false,
3045
+ userMessage: "errors.storage.compliance.violation"
3046
+ },
3047
+ [ERROR_CODES.STORAGE_COMPLIANCE_RETENTION_EXPIRED]: {
3048
+ code: ERROR_CODES.STORAGE_COMPLIANCE_RETENTION_EXPIRED,
3049
+ status: HTTP_STATUS.GONE,
3050
+ category: ERROR_CATEGORY.Compliance,
3051
+ severity: ERROR_SEVERITY.Medium,
3052
+ retryable: false,
3053
+ userMessage: "errors.storage.compliance.retention_expired"
3054
+ },
3055
+ [ERROR_CODES.STORAGE_COMPLIANCE_IMMUTABLE_FILE]: {
3056
+ code: ERROR_CODES.STORAGE_COMPLIANCE_IMMUTABLE_FILE,
3057
+ status: HTTP_STATUS.FORBIDDEN,
3058
+ category: ERROR_CATEGORY.Compliance,
3059
+ severity: ERROR_SEVERITY.Medium,
3060
+ retryable: false,
3061
+ userMessage: "errors.storage.compliance.immutable_file"
3062
+ },
3063
+ [ERROR_CODES.STORAGE_COMPLIANCE_POLICY_NOT_FOUND]: {
3064
+ code: ERROR_CODES.STORAGE_COMPLIANCE_POLICY_NOT_FOUND,
3065
+ status: HTTP_STATUS.NOT_FOUND,
3066
+ category: ERROR_CATEGORY.Configuration,
3067
+ severity: ERROR_SEVERITY.Medium,
3068
+ retryable: false,
3069
+ userMessage: "errors.storage.compliance.policy_not_found"
3070
+ },
3071
+ [ERROR_CODES.STORAGE_COMPLIANCE_RETENTION_VIOLATION]: {
3072
+ code: ERROR_CODES.STORAGE_COMPLIANCE_RETENTION_VIOLATION,
3073
+ status: HTTP_STATUS.FORBIDDEN,
3074
+ category: ERROR_CATEGORY.Compliance,
3075
+ severity: ERROR_SEVERITY.High,
3076
+ retryable: false,
3077
+ userMessage: "errors.storage.compliance.retention_violation"
3078
+ },
3079
+ [ERROR_CODES.STORAGE_COMPLIANCE_SOFT_DELETE_REQUIRED]: {
3080
+ code: ERROR_CODES.STORAGE_COMPLIANCE_SOFT_DELETE_REQUIRED,
3081
+ status: HTTP_STATUS.FORBIDDEN,
3082
+ category: ERROR_CATEGORY.Compliance,
3083
+ severity: ERROR_SEVERITY.Medium,
3084
+ retryable: false,
3085
+ userMessage: "errors.storage.compliance.soft_delete_required"
3086
+ },
3087
+ [ERROR_CODES.STORAGE_COMPLIANCE_GRACE_PERIOD_ACTIVE]: {
3088
+ code: ERROR_CODES.STORAGE_COMPLIANCE_GRACE_PERIOD_ACTIVE,
3089
+ status: HTTP_STATUS.CONFLICT,
3090
+ category: ERROR_CATEGORY.Compliance,
3091
+ severity: ERROR_SEVERITY.Low,
3092
+ retryable: false,
3093
+ userMessage: "errors.storage.compliance.grace_period_active"
3094
+ },
3095
+ [ERROR_CODES.STORAGE_COMPLIANCE_DEFERRED_DELETION]: {
3096
+ code: ERROR_CODES.STORAGE_COMPLIANCE_DEFERRED_DELETION,
3097
+ status: HTTP_STATUS.ACCEPTED,
3098
+ category: ERROR_CATEGORY.Compliance,
3099
+ severity: ERROR_SEVERITY.Low,
3100
+ retryable: false,
3101
+ userMessage: "errors.storage.compliance.deferred_deletion"
3102
+ },
3103
+ [ERROR_CODES.STORAGE_COMPLIANCE_PATTERN_PROTECTED]: {
3104
+ code: ERROR_CODES.STORAGE_COMPLIANCE_PATTERN_PROTECTED,
3105
+ status: HTTP_STATUS.FORBIDDEN,
3106
+ category: ERROR_CATEGORY.Compliance,
3107
+ severity: ERROR_SEVERITY.High,
3108
+ retryable: false,
3109
+ userMessage: "errors.storage.compliance.pattern_protected"
3110
+ },
3111
+ // Share Links
3112
+ [ERROR_CODES.STORAGE_SHARE_LINK_NOT_FOUND]: {
3113
+ code: ERROR_CODES.STORAGE_SHARE_LINK_NOT_FOUND,
3114
+ status: HTTP_STATUS.NOT_FOUND,
3115
+ category: ERROR_CATEGORY.NotFound,
3116
+ severity: ERROR_SEVERITY.Low,
3117
+ retryable: false,
3118
+ userMessage: "errors.storage.share_link.not_found"
3119
+ },
3120
+ [ERROR_CODES.STORAGE_SHARE_LINK_EXPIRED]: {
3121
+ code: ERROR_CODES.STORAGE_SHARE_LINK_EXPIRED,
3122
+ status: HTTP_STATUS.GONE,
3123
+ category: ERROR_CATEGORY.Validation,
3124
+ severity: ERROR_SEVERITY.Low,
3125
+ retryable: false,
3126
+ userMessage: "errors.storage.share_link.expired"
3127
+ },
3128
+ [ERROR_CODES.STORAGE_SHARE_LINK_MAX_DOWNLOADS]: {
3129
+ code: ERROR_CODES.STORAGE_SHARE_LINK_MAX_DOWNLOADS,
3130
+ status: HTTP_STATUS.FORBIDDEN,
3131
+ category: ERROR_CATEGORY.Limits,
3132
+ severity: ERROR_SEVERITY.Low,
3133
+ retryable: false,
3134
+ userMessage: "errors.storage.share_link.max_downloads"
3135
+ },
3136
+ [ERROR_CODES.STORAGE_SHARE_LINK_INVALID_PASSWORD]: {
3137
+ code: ERROR_CODES.STORAGE_SHARE_LINK_INVALID_PASSWORD,
3138
+ status: HTTP_STATUS.UNAUTHORIZED,
3139
+ category: ERROR_CATEGORY.Authentication,
3140
+ severity: ERROR_SEVERITY.Low,
3141
+ retryable: false,
3142
+ userMessage: "errors.storage.share_link.invalid_password"
3143
+ },
3144
+ // Plugin
3145
+ [ERROR_CODES.STORAGE_PLUGIN_NOT_FOUND]: {
3146
+ code: ERROR_CODES.STORAGE_PLUGIN_NOT_FOUND,
3147
+ status: HTTP_STATUS.NOT_FOUND,
3148
+ category: ERROR_CATEGORY.Plugin,
3149
+ severity: ERROR_SEVERITY.Medium,
3150
+ retryable: false,
3151
+ userMessage: "errors.storage.plugin.not_found"
3152
+ },
3153
+ [ERROR_CODES.STORAGE_PLUGIN_INITIALIZATION_FAILED]: {
3154
+ code: ERROR_CODES.STORAGE_PLUGIN_INITIALIZATION_FAILED,
3155
+ status: HTTP_STATUS.INTERNAL_SERVER_ERROR,
3156
+ category: ERROR_CATEGORY.Plugin,
3157
+ severity: ERROR_SEVERITY.High,
3158
+ retryable: false,
3159
+ userMessage: "errors.storage.plugin.initialization_failed"
3160
+ },
3161
+ [ERROR_CODES.STORAGE_PLUGIN_EXECUTION_FAILED]: {
3162
+ code: ERROR_CODES.STORAGE_PLUGIN_EXECUTION_FAILED,
3163
+ status: HTTP_STATUS.INTERNAL_SERVER_ERROR,
3164
+ category: ERROR_CATEGORY.Plugin,
3165
+ severity: ERROR_SEVERITY.Medium,
3166
+ retryable: true,
3167
+ userMessage: "errors.storage.plugin.execution_failed"
3168
+ },
3169
+ // VirusTotal Provider (Plugin)
3170
+ [ERROR_CODES.STORAGE_VIRUSTOTAL_BAD_REQUEST]: {
3171
+ code: ERROR_CODES.STORAGE_VIRUSTOTAL_BAD_REQUEST,
3172
+ status: HTTP_STATUS.BAD_REQUEST,
3173
+ category: ERROR_CATEGORY.Validation,
3174
+ severity: ERROR_SEVERITY.Low,
3175
+ retryable: false,
3176
+ userMessage: "errors.storage.virustotal.bad_request"
3177
+ },
3178
+ [ERROR_CODES.STORAGE_VIRUSTOTAL_AUTHENTICATION_REQUIRED]: {
3179
+ code: ERROR_CODES.STORAGE_VIRUSTOTAL_AUTHENTICATION_REQUIRED,
3180
+ status: HTTP_STATUS.UNAUTHORIZED,
3181
+ category: ERROR_CATEGORY.Authentication,
3182
+ severity: ERROR_SEVERITY.Critical,
3183
+ retryable: false,
3184
+ userMessage: "errors.storage.virustotal.authentication_required"
3185
+ },
3186
+ [ERROR_CODES.STORAGE_VIRUSTOTAL_WRONG_CREDENTIALS]: {
3187
+ code: ERROR_CODES.STORAGE_VIRUSTOTAL_WRONG_CREDENTIALS,
3188
+ status: HTTP_STATUS.UNAUTHORIZED,
3189
+ category: ERROR_CATEGORY.Authentication,
3190
+ severity: ERROR_SEVERITY.Critical,
3191
+ retryable: false,
3192
+ userMessage: "errors.storage.virustotal.wrong_credentials"
3193
+ },
3194
+ [ERROR_CODES.STORAGE_VIRUSTOTAL_FILE_TOO_LARGE]: {
3195
+ code: ERROR_CODES.STORAGE_VIRUSTOTAL_FILE_TOO_LARGE,
3196
+ status: HTTP_STATUS.PAYLOAD_TOO_LARGE,
3197
+ category: ERROR_CATEGORY.Validation,
3198
+ severity: ERROR_SEVERITY.Medium,
3199
+ retryable: false,
3200
+ userMessage: "errors.storage.virustotal.file_too_large"
3201
+ },
3202
+ [ERROR_CODES.STORAGE_VIRUSTOTAL_QUOTA_EXCEEDED]: {
3203
+ code: ERROR_CODES.STORAGE_VIRUSTOTAL_QUOTA_EXCEEDED,
3204
+ status: HTTP_STATUS.TOO_MANY_REQUESTS,
3205
+ category: ERROR_CATEGORY.Quota,
3206
+ severity: ERROR_SEVERITY.Medium,
3207
+ retryable: true,
3208
+ userMessage: "errors.storage.virustotal.quota_exceeded"
3209
+ },
3210
+ [ERROR_CODES.STORAGE_VIRUSTOTAL_ANALYSIS_NOT_FOUND]: {
3211
+ code: ERROR_CODES.STORAGE_VIRUSTOTAL_ANALYSIS_NOT_FOUND,
3212
+ status: HTTP_STATUS.NOT_FOUND,
3213
+ category: ERROR_CATEGORY.NotFound,
3214
+ severity: ERROR_SEVERITY.Low,
3215
+ retryable: false,
3216
+ userMessage: "errors.storage.virustotal.analysis_not_found"
3217
+ },
3218
+ [ERROR_CODES.STORAGE_VIRUSTOTAL_SCAN_TIMEOUT]: {
3219
+ code: ERROR_CODES.STORAGE_VIRUSTOTAL_SCAN_TIMEOUT,
3220
+ status: HTTP_STATUS.GATEWAY_TIMEOUT,
3221
+ category: ERROR_CATEGORY.Timeout,
3222
+ severity: ERROR_SEVERITY.Medium,
3223
+ retryable: true,
3224
+ userMessage: "errors.storage.virustotal.scan_timeout"
3225
+ },
3226
+ [ERROR_CODES.STORAGE_VIRUSTOTAL_SCAN_FAILED]: {
3227
+ code: ERROR_CODES.STORAGE_VIRUSTOTAL_SCAN_FAILED,
3228
+ status: HTTP_STATUS.INTERNAL_SERVER_ERROR,
3229
+ category: ERROR_CATEGORY.Plugin,
3230
+ severity: ERROR_SEVERITY.High,
3231
+ retryable: true,
3232
+ userMessage: "errors.storage.virustotal.scan_failed"
3233
+ },
3234
+ // CDN Providers (Plugins)
3235
+ // Cloudflare
3236
+ [ERROR_CODES.CLOUDFLARE_AUTHENTICATION_FAILED]: {
3237
+ code: ERROR_CODES.CLOUDFLARE_AUTHENTICATION_FAILED,
3238
+ status: HTTP_STATUS.UNAUTHORIZED,
3239
+ category: ERROR_CATEGORY.Authentication,
3240
+ severity: ERROR_SEVERITY.High,
3241
+ retryable: false,
3242
+ userMessage: "errors.cloudflare.authentication.failed"
3243
+ },
3244
+ [ERROR_CODES.CLOUDFLARE_ZONE_NOT_FOUND]: {
3245
+ code: ERROR_CODES.CLOUDFLARE_ZONE_NOT_FOUND,
3246
+ status: HTTP_STATUS.NOT_FOUND,
3247
+ category: ERROR_CATEGORY.NotFound,
3248
+ severity: ERROR_SEVERITY.High,
3249
+ retryable: false,
3250
+ userMessage: "errors.cloudflare.zone.not.found"
3251
+ },
3252
+ [ERROR_CODES.CLOUDFLARE_PURGE_FAILED]: {
3253
+ code: ERROR_CODES.CLOUDFLARE_PURGE_FAILED,
3254
+ status: HTTP_STATUS.INTERNAL_SERVER_ERROR,
3255
+ category: ERROR_CATEGORY.Plugin,
3256
+ severity: ERROR_SEVERITY.Medium,
3257
+ retryable: true,
3258
+ userMessage: "errors.cloudflare.purge.failed"
3259
+ },
3260
+ [ERROR_CODES.CLOUDFLARE_RATE_LIMIT_EXCEEDED]: {
3261
+ code: ERROR_CODES.CLOUDFLARE_RATE_LIMIT_EXCEEDED,
3262
+ status: HTTP_STATUS.TOO_MANY_REQUESTS,
3263
+ category: ERROR_CATEGORY.RateLimit,
3264
+ severity: ERROR_SEVERITY.Medium,
3265
+ retryable: true,
3266
+ userMessage: "errors.cloudflare.rate.limit.exceeded"
3267
+ },
3268
+ [ERROR_CODES.CLOUDFLARE_INVALID_URL]: {
3269
+ code: ERROR_CODES.CLOUDFLARE_INVALID_URL,
3270
+ status: HTTP_STATUS.BAD_REQUEST,
3271
+ category: ERROR_CATEGORY.Validation,
3272
+ severity: ERROR_SEVERITY.Low,
3273
+ retryable: false,
3274
+ userMessage: "errors.cloudflare.invalid.url"
3275
+ },
3276
+ [ERROR_CODES.CLOUDFLARE_API_ERROR]: {
3277
+ code: ERROR_CODES.CLOUDFLARE_API_ERROR,
3278
+ status: HTTP_STATUS.BAD_GATEWAY,
3279
+ category: ERROR_CATEGORY.ExternalService,
3280
+ severity: ERROR_SEVERITY.High,
3281
+ retryable: true,
3282
+ userMessage: "errors.cloudflare.api.error"
3283
+ },
3284
+ // CloudFront
3285
+ [ERROR_CODES.CLOUDFRONT_AUTHENTICATION_FAILED]: {
3286
+ code: ERROR_CODES.CLOUDFRONT_AUTHENTICATION_FAILED,
3287
+ status: HTTP_STATUS.UNAUTHORIZED,
3288
+ category: ERROR_CATEGORY.Authentication,
3289
+ severity: ERROR_SEVERITY.High,
3290
+ retryable: false,
3291
+ userMessage: "errors.cloudfront.authentication.failed"
3292
+ },
3293
+ [ERROR_CODES.CLOUDFRONT_DISTRIBUTION_NOT_FOUND]: {
3294
+ code: ERROR_CODES.CLOUDFRONT_DISTRIBUTION_NOT_FOUND,
3295
+ status: HTTP_STATUS.NOT_FOUND,
3296
+ category: ERROR_CATEGORY.NotFound,
3297
+ severity: ERROR_SEVERITY.High,
3298
+ retryable: false,
3299
+ userMessage: "errors.cloudfront.distribution.not.found"
3300
+ },
3301
+ [ERROR_CODES.CLOUDFRONT_INVALIDATION_FAILED]: {
3302
+ code: ERROR_CODES.CLOUDFRONT_INVALIDATION_FAILED,
3303
+ status: HTTP_STATUS.INTERNAL_SERVER_ERROR,
3304
+ category: ERROR_CATEGORY.Plugin,
3305
+ severity: ERROR_SEVERITY.Medium,
3306
+ retryable: true,
3307
+ userMessage: "errors.cloudfront.invalidation.failed"
3308
+ },
3309
+ [ERROR_CODES.CLOUDFRONT_QUOTA_EXCEEDED]: {
3310
+ code: ERROR_CODES.CLOUDFRONT_QUOTA_EXCEEDED,
3311
+ status: HTTP_STATUS.TOO_MANY_REQUESTS,
3312
+ category: ERROR_CATEGORY.Quota,
3313
+ severity: ERROR_SEVERITY.Medium,
3314
+ retryable: true,
3315
+ userMessage: "errors.cloudfront.quota.exceeded"
1978
3316
  },
1979
- // ===== Notification Package Error Definitions =====
1980
- // Provider errors (retryable)
1981
- [ERROR_CODES.NOTIFICATION_PROVIDER_SEND_FAILED]: {
1982
- code: ERROR_CODES.NOTIFICATION_PROVIDER_SEND_FAILED,
1983
- status: HTTP_STATUS.INTERNAL_SERVER_ERROR,
1984
- category: ERROR_CATEGORY.Provider,
3317
+ [ERROR_CODES.CLOUDFRONT_INVALID_PATH]: {
3318
+ code: ERROR_CODES.CLOUDFRONT_INVALID_PATH,
3319
+ status: HTTP_STATUS.BAD_REQUEST,
3320
+ category: ERROR_CATEGORY.Validation,
3321
+ severity: ERROR_SEVERITY.Low,
3322
+ retryable: false,
3323
+ userMessage: "errors.cloudfront.invalid.path"
3324
+ },
3325
+ [ERROR_CODES.CLOUDFRONT_API_ERROR]: {
3326
+ code: ERROR_CODES.CLOUDFRONT_API_ERROR,
3327
+ status: HTTP_STATUS.BAD_GATEWAY,
3328
+ category: ERROR_CATEGORY.ExternalService,
1985
3329
  severity: ERROR_SEVERITY.High,
1986
3330
  retryable: true,
1987
- userMessage: "errors.notification.provider.send_failed"
3331
+ userMessage: "errors.cloudfront.api.error"
1988
3332
  },
1989
- [ERROR_CODES.NOTIFICATION_PROVIDER_CONFIGURATION_INVALID]: {
1990
- code: ERROR_CODES.NOTIFICATION_PROVIDER_CONFIGURATION_INVALID,
1991
- status: HTTP_STATUS.INTERNAL_SERVER_ERROR,
1992
- category: ERROR_CATEGORY.Configuration,
1993
- severity: ERROR_SEVERITY.Critical,
3333
+ // Fastly
3334
+ [ERROR_CODES.FASTLY_AUTHENTICATION_FAILED]: {
3335
+ code: ERROR_CODES.FASTLY_AUTHENTICATION_FAILED,
3336
+ status: HTTP_STATUS.UNAUTHORIZED,
3337
+ category: ERROR_CATEGORY.Authentication,
3338
+ severity: ERROR_SEVERITY.High,
1994
3339
  retryable: false,
1995
- userMessage: "errors.notification.provider.configuration_invalid"
3340
+ userMessage: "errors.fastly.authentication.failed"
1996
3341
  },
1997
- [ERROR_CODES.NOTIFICATION_PROVIDER_RATE_LIMIT]: {
1998
- code: ERROR_CODES.NOTIFICATION_PROVIDER_RATE_LIMIT,
3342
+ [ERROR_CODES.FASTLY_SERVICE_NOT_FOUND]: {
3343
+ code: ERROR_CODES.FASTLY_SERVICE_NOT_FOUND,
3344
+ status: HTTP_STATUS.NOT_FOUND,
3345
+ category: ERROR_CATEGORY.NotFound,
3346
+ severity: ERROR_SEVERITY.High,
3347
+ retryable: false,
3348
+ userMessage: "errors.fastly.service.not.found"
3349
+ },
3350
+ [ERROR_CODES.FASTLY_PURGE_FAILED]: {
3351
+ code: ERROR_CODES.FASTLY_PURGE_FAILED,
3352
+ status: HTTP_STATUS.INTERNAL_SERVER_ERROR,
3353
+ category: ERROR_CATEGORY.Plugin,
3354
+ severity: ERROR_SEVERITY.Medium,
3355
+ retryable: true,
3356
+ userMessage: "errors.fastly.purge.failed"
3357
+ },
3358
+ [ERROR_CODES.FASTLY_RATE_LIMIT_EXCEEDED]: {
3359
+ code: ERROR_CODES.FASTLY_RATE_LIMIT_EXCEEDED,
1999
3360
  status: HTTP_STATUS.TOO_MANY_REQUESTS,
2000
3361
  category: ERROR_CATEGORY.RateLimit,
2001
3362
  severity: ERROR_SEVERITY.Medium,
2002
3363
  retryable: true,
2003
- userMessage: "errors.notification.provider.rate_limit"
3364
+ userMessage: "errors.fastly.rate.limit.exceeded"
2004
3365
  },
2005
- [ERROR_CODES.NOTIFICATION_PROVIDER_AUTH_FAILED]: {
2006
- code: ERROR_CODES.NOTIFICATION_PROVIDER_AUTH_FAILED,
2007
- status: HTTP_STATUS.UNAUTHORIZED,
2008
- category: ERROR_CATEGORY.Provider,
2009
- severity: ERROR_SEVERITY.Critical,
3366
+ [ERROR_CODES.FASTLY_INVALID_URL]: {
3367
+ code: ERROR_CODES.FASTLY_INVALID_URL,
3368
+ status: HTTP_STATUS.BAD_REQUEST,
3369
+ category: ERROR_CATEGORY.Validation,
3370
+ severity: ERROR_SEVERITY.Low,
2010
3371
  retryable: false,
2011
- userMessage: "errors.notification.provider.auth_failed"
3372
+ userMessage: "errors.fastly.invalid.url"
2012
3373
  },
2013
- [ERROR_CODES.NOTIFICATION_PROVIDER_TIMEOUT]: {
2014
- code: ERROR_CODES.NOTIFICATION_PROVIDER_TIMEOUT,
2015
- status: HTTP_STATUS.GATEWAY_TIMEOUT,
2016
- category: ERROR_CATEGORY.Network,
3374
+ [ERROR_CODES.FASTLY_API_ERROR]: {
3375
+ code: ERROR_CODES.FASTLY_API_ERROR,
3376
+ status: HTTP_STATUS.BAD_GATEWAY,
3377
+ category: ERROR_CATEGORY.ExternalService,
3378
+ severity: ERROR_SEVERITY.High,
3379
+ retryable: true,
3380
+ userMessage: "errors.fastly.api.error"
3381
+ },
3382
+ // Generic CDN
3383
+ [ERROR_CODES.CDN_INVALIDATION_FAILED]: {
3384
+ code: ERROR_CODES.CDN_INVALIDATION_FAILED,
3385
+ status: HTTP_STATUS.INTERNAL_SERVER_ERROR,
3386
+ category: ERROR_CATEGORY.Plugin,
2017
3387
  severity: ERROR_SEVERITY.Medium,
2018
3388
  retryable: true,
2019
- userMessage: "errors.notification.provider.timeout"
3389
+ userMessage: "errors.cdn.invalidation.failed"
2020
3390
  },
2021
- [ERROR_CODES.NOTIFICATION_PROVIDER_UNAVAILABLE]: {
2022
- code: ERROR_CODES.NOTIFICATION_PROVIDER_UNAVAILABLE,
2023
- status: HTTP_STATUS.SERVICE_UNAVAILABLE,
2024
- category: ERROR_CATEGORY.Provider,
3391
+ [ERROR_CODES.CDN_CONFIGURATION_INVALID]: {
3392
+ code: ERROR_CODES.CDN_CONFIGURATION_INVALID,
3393
+ status: HTTP_STATUS.BAD_REQUEST,
3394
+ category: ERROR_CATEGORY.Configuration,
2025
3395
  severity: ERROR_SEVERITY.High,
2026
- retryable: true,
2027
- userMessage: "errors.notification.provider.unavailable"
3396
+ retryable: false,
3397
+ userMessage: "errors.cdn.configuration.invalid"
2028
3398
  },
2029
- [ERROR_CODES.NOTIFICATION_PROVIDER_FEATURE_NOT_SUPPORTED]: {
2030
- code: ERROR_CODES.NOTIFICATION_PROVIDER_FEATURE_NOT_SUPPORTED,
2031
- status: HTTP_STATUS.NOT_IMPLEMENTED,
2032
- category: ERROR_CATEGORY.Provider,
2033
- severity: ERROR_SEVERITY.Low,
3399
+ [ERROR_CODES.CDN_PROVIDER_NOT_FOUND]: {
3400
+ code: ERROR_CODES.CDN_PROVIDER_NOT_FOUND,
3401
+ status: HTTP_STATUS.NOT_FOUND,
3402
+ category: ERROR_CATEGORY.NotFound,
3403
+ severity: ERROR_SEVERITY.High,
2034
3404
  retryable: false,
2035
- userMessage: "errors.notification.provider.feature_not_supported"
3405
+ userMessage: "errors.cdn.provider.not.found"
2036
3406
  },
2037
- [ERROR_CODES.NOTIFICATION_ALL_PROVIDERS_FAILED]: {
2038
- code: ERROR_CODES.NOTIFICATION_ALL_PROVIDERS_FAILED,
2039
- status: HTTP_STATUS.SERVICE_UNAVAILABLE,
2040
- category: ERROR_CATEGORY.Provider,
3407
+ // Webhook Errors
3408
+ [ERROR_CODES.STORAGE_WEBHOOK_SIGNATURE_INVALID]: {
3409
+ code: ERROR_CODES.STORAGE_WEBHOOK_SIGNATURE_INVALID,
3410
+ status: HTTP_STATUS.UNAUTHORIZED,
3411
+ category: ERROR_CATEGORY.Security,
2041
3412
  severity: ERROR_SEVERITY.Critical,
2042
3413
  retryable: false,
2043
- userMessage: "errors.notification.all_providers_failed"
3414
+ userMessage: "errors.storage.webhook.signature_invalid"
2044
3415
  },
2045
- // Validation errors (non-retryable)
2046
- [ERROR_CODES.NOTIFICATION_INVALID_INPUT]: {
2047
- code: ERROR_CODES.NOTIFICATION_INVALID_INPUT,
3416
+ [ERROR_CODES.STORAGE_WEBHOOK_PAYLOAD_INVALID]: {
3417
+ code: ERROR_CODES.STORAGE_WEBHOOK_PAYLOAD_INVALID,
2048
3418
  status: HTTP_STATUS.BAD_REQUEST,
2049
3419
  category: ERROR_CATEGORY.Validation,
2050
3420
  severity: ERROR_SEVERITY.Medium,
2051
3421
  retryable: false,
2052
- userMessage: "errors.notification.validation.invalid_input"
3422
+ userMessage: "errors.storage.webhook.payload_invalid"
2053
3423
  },
2054
- [ERROR_CODES.NOTIFICATION_INVALID_RECIPIENT]: {
2055
- code: ERROR_CODES.NOTIFICATION_INVALID_RECIPIENT,
2056
- status: HTTP_STATUS.BAD_REQUEST,
2057
- category: ERROR_CATEGORY.Validation,
3424
+ [ERROR_CODES.STORAGE_WEBHOOK_PROCESSING_FAILED]: {
3425
+ code: ERROR_CODES.STORAGE_WEBHOOK_PROCESSING_FAILED,
3426
+ status: HTTP_STATUS.INTERNAL_SERVER_ERROR,
3427
+ category: ERROR_CATEGORY.Processing,
3428
+ severity: ERROR_SEVERITY.High,
3429
+ retryable: true,
3430
+ userMessage: "errors.storage.webhook.processing_failed"
3431
+ },
3432
+ [ERROR_CODES.STORAGE_WEBHOOK_TIMEOUT]: {
3433
+ code: ERROR_CODES.STORAGE_WEBHOOK_TIMEOUT,
3434
+ status: HTTP_STATUS.GATEWAY_TIMEOUT,
3435
+ category: ERROR_CATEGORY.Timeout,
2058
3436
  severity: ERROR_SEVERITY.Medium,
2059
- retryable: false,
2060
- userMessage: "errors.notification.validation.invalid_recipient"
3437
+ retryable: true,
3438
+ userMessage: "errors.storage.webhook.timeout"
2061
3439
  },
2062
- [ERROR_CODES.NOTIFICATION_INVALID_TEMPLATE]: {
2063
- code: ERROR_CODES.NOTIFICATION_INVALID_TEMPLATE,
2064
- status: HTTP_STATUS.BAD_REQUEST,
2065
- category: ERROR_CATEGORY.Template,
3440
+ [ERROR_CODES.STORAGE_WEBHOOK_ADAPTER_NOT_FOUND]: {
3441
+ code: ERROR_CODES.STORAGE_WEBHOOK_ADAPTER_NOT_FOUND,
3442
+ status: HTTP_STATUS.NOT_FOUND,
3443
+ category: ERROR_CATEGORY.NotFound,
2066
3444
  severity: ERROR_SEVERITY.Medium,
2067
3445
  retryable: false,
2068
- userMessage: "errors.notification.validation.invalid_template"
3446
+ userMessage: "errors.storage.webhook.adapter_not_found"
2069
3447
  },
2070
- [ERROR_CODES.NOTIFICATION_INVALID_PAYLOAD]: {
2071
- code: ERROR_CODES.NOTIFICATION_INVALID_PAYLOAD,
2072
- status: HTTP_STATUS.BAD_REQUEST,
2073
- category: ERROR_CATEGORY.Validation,
2074
- severity: ERROR_SEVERITY.Medium,
3448
+ [ERROR_CODES.STORAGE_WEBHOOK_DUPLICATE_DETECTED]: {
3449
+ code: ERROR_CODES.STORAGE_WEBHOOK_DUPLICATE_DETECTED,
3450
+ status: HTTP_STATUS.OK,
3451
+ category: ERROR_CATEGORY.Processing,
3452
+ severity: ERROR_SEVERITY.Low,
2075
3453
  retryable: false,
2076
- userMessage: "errors.notification.validation.invalid_payload"
3454
+ userMessage: "errors.storage.webhook.duplicate_detected"
2077
3455
  },
2078
- [ERROR_CODES.NOTIFICATION_MISSING_REQUIRED_FIELD]: {
2079
- code: ERROR_CODES.NOTIFICATION_MISSING_REQUIRED_FIELD,
2080
- status: HTTP_STATUS.BAD_REQUEST,
2081
- category: ERROR_CATEGORY.Validation,
3456
+ [ERROR_CODES.STORAGE_WEBHOOK_IDEMPOTENCY_ERROR]: {
3457
+ code: ERROR_CODES.STORAGE_WEBHOOK_IDEMPOTENCY_ERROR,
3458
+ status: HTTP_STATUS.INTERNAL_SERVER_ERROR,
3459
+ category: ERROR_CATEGORY.Processing,
2082
3460
  severity: ERROR_SEVERITY.Medium,
2083
- retryable: false,
2084
- userMessage: "errors.notification.validation.required_field_missing"
3461
+ retryable: true,
3462
+ userMessage: "errors.storage.webhook.idempotency_error"
2085
3463
  },
2086
- [ERROR_CODES.NOTIFICATION_VALIDATION_FAILED]: {
2087
- code: ERROR_CODES.NOTIFICATION_VALIDATION_FAILED,
2088
- status: HTTP_STATUS.BAD_REQUEST,
2089
- category: ERROR_CATEGORY.Validation,
3464
+ [ERROR_CODES.STORAGE_WEBHOOK_RATE_LIMIT_EXCEEDED]: {
3465
+ code: ERROR_CODES.STORAGE_WEBHOOK_RATE_LIMIT_EXCEEDED,
3466
+ status: HTTP_STATUS.TOO_MANY_REQUESTS,
3467
+ category: ERROR_CATEGORY.RateLimit,
2090
3468
  severity: ERROR_SEVERITY.Medium,
3469
+ retryable: true,
3470
+ userMessage: "errors.storage.webhook.rate_limit_exceeded"
3471
+ },
3472
+ // Presigned URLs
3473
+ [ERROR_CODES.STORAGE_PRESIGNED_URL_GENERATION_FAILED]: {
3474
+ code: ERROR_CODES.STORAGE_PRESIGNED_URL_GENERATION_FAILED,
3475
+ status: HTTP_STATUS.INTERNAL_SERVER_ERROR,
3476
+ category: ERROR_CATEGORY.ExternalService,
3477
+ severity: ERROR_SEVERITY.High,
3478
+ retryable: true,
3479
+ userMessage: "errors.storage.presigned_url.generation_failed"
3480
+ },
3481
+ [ERROR_CODES.STORAGE_PRESIGNED_URL_EXPIRED]: {
3482
+ code: ERROR_CODES.STORAGE_PRESIGNED_URL_EXPIRED,
3483
+ status: HTTP_STATUS.GONE,
3484
+ category: ERROR_CATEGORY.Validation,
3485
+ severity: ERROR_SEVERITY.Low,
2091
3486
  retryable: false,
2092
- userMessage: "errors.notification.validation.failed"
3487
+ userMessage: "errors.storage.presigned_url.expired"
2093
3488
  },
2094
- // User Preferences
2095
- [ERROR_CODES.NOTIFICATION_USER_OPTED_OUT]: {
2096
- code: ERROR_CODES.NOTIFICATION_USER_OPTED_OUT,
2097
- status: HTTP_STATUS.OK,
3489
+ [ERROR_CODES.STORAGE_PRESIGNED_URL_INVALID]: {
3490
+ code: ERROR_CODES.STORAGE_PRESIGNED_URL_INVALID,
3491
+ status: HTTP_STATUS.BAD_REQUEST,
2098
3492
  category: ERROR_CATEGORY.Validation,
2099
3493
  severity: ERROR_SEVERITY.Low,
2100
3494
  retryable: false,
2101
- userMessage: "errors.notification.user.opted_out"
3495
+ userMessage: "errors.storage.presigned_url.invalid"
2102
3496
  },
2103
- // Queue errors (retryable)
2104
- [ERROR_CODES.NOTIFICATION_QUEUE_FULL]: {
2105
- code: ERROR_CODES.NOTIFICATION_QUEUE_FULL,
2106
- status: HTTP_STATUS.SERVICE_UNAVAILABLE,
2107
- category: ERROR_CATEGORY.Queue,
3497
+ // Chunked Upload
3498
+ [ERROR_CODES.STORAGE_CHUNKED_UPLOAD_INIT_FAILED]: {
3499
+ code: ERROR_CODES.STORAGE_CHUNKED_UPLOAD_INIT_FAILED,
3500
+ status: HTTP_STATUS.INTERNAL_SERVER_ERROR,
3501
+ category: ERROR_CATEGORY.FileOperation,
2108
3502
  severity: ERROR_SEVERITY.High,
2109
3503
  retryable: true,
2110
- userMessage: "errors.notification.queue.full"
3504
+ userMessage: "errors.storage.chunked_upload.init_failed"
2111
3505
  },
2112
- [ERROR_CODES.NOTIFICATION_QUEUE_PROCESSING_FAILED]: {
2113
- code: ERROR_CODES.NOTIFICATION_QUEUE_PROCESSING_FAILED,
3506
+ [ERROR_CODES.STORAGE_CHUNKED_UPLOAD_PART_FAILED]: {
3507
+ code: ERROR_CODES.STORAGE_CHUNKED_UPLOAD_PART_FAILED,
2114
3508
  status: HTTP_STATUS.INTERNAL_SERVER_ERROR,
2115
- category: ERROR_CATEGORY.Queue,
3509
+ category: ERROR_CATEGORY.FileOperation,
2116
3510
  severity: ERROR_SEVERITY.High,
2117
3511
  retryable: true,
2118
- userMessage: "errors.notification.queue.processing_failed"
3512
+ userMessage: "errors.storage.chunked_upload.part_failed"
2119
3513
  },
2120
- // Webhook errors
2121
- [ERROR_CODES.NOTIFICATION_WEBHOOK_SIGNATURE_INVALID]: {
2122
- code: ERROR_CODES.NOTIFICATION_WEBHOOK_SIGNATURE_INVALID,
2123
- status: HTTP_STATUS.UNAUTHORIZED,
2124
- category: ERROR_CATEGORY.Webhook,
3514
+ [ERROR_CODES.STORAGE_CHUNKED_UPLOAD_COMPLETE_FAILED]: {
3515
+ code: ERROR_CODES.STORAGE_CHUNKED_UPLOAD_COMPLETE_FAILED,
3516
+ status: HTTP_STATUS.INTERNAL_SERVER_ERROR,
3517
+ category: ERROR_CATEGORY.FileOperation,
2125
3518
  severity: ERROR_SEVERITY.High,
3519
+ retryable: true,
3520
+ userMessage: "errors.storage.chunked_upload.complete_failed"
3521
+ },
3522
+ [ERROR_CODES.STORAGE_CHUNKED_UPLOAD_ABORT_FAILED]: {
3523
+ code: ERROR_CODES.STORAGE_CHUNKED_UPLOAD_ABORT_FAILED,
3524
+ status: HTTP_STATUS.INTERNAL_SERVER_ERROR,
3525
+ category: ERROR_CATEGORY.FileOperation,
3526
+ severity: ERROR_SEVERITY.Medium,
3527
+ retryable: true,
3528
+ userMessage: "errors.storage.chunked_upload.abort_failed"
3529
+ },
3530
+ [ERROR_CODES.STORAGE_CHUNKED_UPLOAD_NOT_FOUND]: {
3531
+ code: ERROR_CODES.STORAGE_CHUNKED_UPLOAD_NOT_FOUND,
3532
+ status: HTTP_STATUS.NOT_FOUND,
3533
+ category: ERROR_CATEGORY.NotFound,
3534
+ severity: ERROR_SEVERITY.Low,
2126
3535
  retryable: false,
2127
- userMessage: "errors.notification.webhook.signature_invalid"
3536
+ userMessage: "errors.storage.chunked_upload.not_found"
2128
3537
  },
2129
- [ERROR_CODES.NOTIFICATION_WEBHOOK_VALIDATION_FAILED]: {
2130
- code: ERROR_CODES.NOTIFICATION_WEBHOOK_VALIDATION_FAILED,
2131
- status: HTTP_STATUS.BAD_REQUEST,
2132
- category: ERROR_CATEGORY.Webhook,
3538
+ // CORS
3539
+ [ERROR_CODES.STORAGE_CORS_CONFIGURATION_INVALID]: {
3540
+ code: ERROR_CODES.STORAGE_CORS_CONFIGURATION_INVALID,
3541
+ status: HTTP_STATUS.INTERNAL_SERVER_ERROR,
3542
+ category: ERROR_CATEGORY.Configuration,
3543
+ severity: ERROR_SEVERITY.High,
3544
+ retryable: false,
3545
+ userMessage: "errors.storage.cors.configuration_invalid"
3546
+ },
3547
+ [ERROR_CODES.STORAGE_CORS_ORIGIN_NOT_ALLOWED]: {
3548
+ code: ERROR_CODES.STORAGE_CORS_ORIGIN_NOT_ALLOWED,
3549
+ status: HTTP_STATUS.FORBIDDEN,
3550
+ category: ERROR_CATEGORY.Authorization,
2133
3551
  severity: ERROR_SEVERITY.Medium,
2134
3552
  retryable: false,
2135
- userMessage: "errors.notification.webhook.validation_failed"
3553
+ userMessage: "errors.storage.cors.origin_not_allowed"
2136
3554
  },
2137
- [ERROR_CODES.NOTIFICATION_WEBHOOK_PROCESSING_FAILED]: {
2138
- code: ERROR_CODES.NOTIFICATION_WEBHOOK_PROCESSING_FAILED,
3555
+ // TTL
3556
+ [ERROR_CODES.STORAGE_TTL_EXPIRED]: {
3557
+ code: ERROR_CODES.STORAGE_TTL_EXPIRED,
3558
+ status: HTTP_STATUS.GONE,
3559
+ category: ERROR_CATEGORY.Validation,
3560
+ severity: ERROR_SEVERITY.Low,
3561
+ retryable: false,
3562
+ userMessage: "errors.storage.ttl.expired"
3563
+ },
3564
+ [ERROR_CODES.STORAGE_TTL_CLEANUP_FAILED]: {
3565
+ code: ERROR_CODES.STORAGE_TTL_CLEANUP_FAILED,
2139
3566
  status: HTTP_STATUS.INTERNAL_SERVER_ERROR,
2140
- category: ERROR_CATEGORY.Webhook,
3567
+ category: ERROR_CATEGORY.Processing,
3568
+ severity: ERROR_SEVERITY.Low,
3569
+ retryable: true,
3570
+ userMessage: "errors.storage.ttl.cleanup_failed"
3571
+ },
3572
+ // Audit
3573
+ [ERROR_CODES.STORAGE_AUDIT_LOG_FAILED]: {
3574
+ code: ERROR_CODES.STORAGE_AUDIT_LOG_FAILED,
3575
+ status: HTTP_STATUS.INTERNAL_SERVER_ERROR,
3576
+ category: ERROR_CATEGORY.System,
3577
+ severity: ERROR_SEVERITY.Low,
3578
+ retryable: false,
3579
+ userMessage: "errors.storage.audit.log_failed"
3580
+ },
3581
+ // Timeout & Network
3582
+ [ERROR_CODES.STORAGE_TIMEOUT]: {
3583
+ code: ERROR_CODES.STORAGE_TIMEOUT,
3584
+ status: HTTP_STATUS.GATEWAY_TIMEOUT,
3585
+ category: ERROR_CATEGORY.Timeout,
3586
+ severity: ERROR_SEVERITY.Medium,
3587
+ retryable: true,
3588
+ userMessage: "errors.storage.timeout"
3589
+ },
3590
+ [ERROR_CODES.STORAGE_NETWORK_ERROR]: {
3591
+ code: ERROR_CODES.STORAGE_NETWORK_ERROR,
3592
+ status: HTTP_STATUS.SERVICE_UNAVAILABLE,
3593
+ category: ERROR_CATEGORY.Network,
2141
3594
  severity: ERROR_SEVERITY.High,
2142
3595
  retryable: true,
2143
- userMessage: "errors.notification.webhook.processing_failed"
3596
+ userMessage: "errors.storage.network_error"
2144
3597
  },
2145
- // Template errors
2146
- [ERROR_CODES.NOTIFICATION_TEMPLATE_NOT_FOUND]: {
2147
- code: ERROR_CODES.NOTIFICATION_TEMPLATE_NOT_FOUND,
2148
- status: HTTP_STATUS.NOT_FOUND,
2149
- category: ERROR_CATEGORY.Template,
3598
+ [ERROR_CODES.STORAGE_CONNECTION_LOST]: {
3599
+ code: ERROR_CODES.STORAGE_CONNECTION_LOST,
3600
+ status: HTTP_STATUS.SERVICE_UNAVAILABLE,
3601
+ category: ERROR_CATEGORY.Network,
2150
3602
  severity: ERROR_SEVERITY.High,
3603
+ retryable: true,
3604
+ userMessage: "errors.storage.connection_lost"
3605
+ },
3606
+ // Permission & Quota
3607
+ [ERROR_CODES.STORAGE_PERMISSION_DENIED]: {
3608
+ code: ERROR_CODES.STORAGE_PERMISSION_DENIED,
3609
+ status: HTTP_STATUS.FORBIDDEN,
3610
+ category: ERROR_CATEGORY.Authorization,
3611
+ severity: ERROR_SEVERITY.Medium,
2151
3612
  retryable: false,
2152
- userMessage: "errors.notification.template.not_found"
3613
+ userMessage: "errors.storage.permission_denied"
2153
3614
  },
2154
- [ERROR_CODES.NOTIFICATION_TEMPLATE_RENDER_FAILED]: {
2155
- code: ERROR_CODES.NOTIFICATION_TEMPLATE_RENDER_FAILED,
2156
- status: HTTP_STATUS.INTERNAL_SERVER_ERROR,
2157
- category: ERROR_CATEGORY.Template,
3615
+ [ERROR_CODES.STORAGE_QUOTA_EXCEEDED]: {
3616
+ code: ERROR_CODES.STORAGE_QUOTA_EXCEEDED,
3617
+ status: HTTP_STATUS.INSUFFICIENT_STORAGE,
3618
+ category: ERROR_CATEGORY.Quota,
2158
3619
  severity: ERROR_SEVERITY.High,
2159
3620
  retryable: false,
2160
- userMessage: "errors.notification.template.render_failed"
3621
+ userMessage: "errors.storage.quota_exceeded"
2161
3622
  },
2162
- // General notification errors
2163
- [ERROR_CODES.NOTIFICATION_UNKNOWN_ERROR]: {
2164
- code: ERROR_CODES.NOTIFICATION_UNKNOWN_ERROR,
2165
- status: HTTP_STATUS.INTERNAL_SERVER_ERROR,
2166
- category: ERROR_CATEGORY.Unknown,
2167
- severity: ERROR_SEVERITY.Medium,
3623
+ [ERROR_CODES.STORAGE_INSUFFICIENT_SPACE]: {
3624
+ code: ERROR_CODES.STORAGE_INSUFFICIENT_SPACE,
3625
+ status: HTTP_STATUS.INSUFFICIENT_STORAGE,
3626
+ category: ERROR_CATEGORY.Quota,
3627
+ severity: ERROR_SEVERITY.High,
2168
3628
  retryable: false,
2169
- userMessage: "errors.notification.unknown"
3629
+ userMessage: "errors.storage.insufficient_space"
2170
3630
  },
2171
- [ERROR_CODES.NOTIFICATION_INITIALIZATION_FAILED]: {
2172
- code: ERROR_CODES.NOTIFICATION_INITIALIZATION_FAILED,
2173
- status: HTTP_STATUS.INTERNAL_SERVER_ERROR,
2174
- category: ERROR_CATEGORY.Configuration,
2175
- severity: ERROR_SEVERITY.Critical,
3631
+ [ERROR_CODES.STORAGE_FEATURE_NOT_IMPLEMENTED]: {
3632
+ code: ERROR_CODES.STORAGE_FEATURE_NOT_IMPLEMENTED,
3633
+ status: HTTP_STATUS.NOT_IMPLEMENTED,
3634
+ category: ERROR_CATEGORY.Server,
3635
+ severity: ERROR_SEVERITY.Medium,
2176
3636
  retryable: false,
2177
- userMessage: "errors.notification.initialization_failed"
3637
+ userMessage: "errors.storage.feature.not_implemented"
2178
3638
  },
2179
3639
  // ===== Errors Package Errors =====
2180
3640
  [ERROR_CODES.ERROR_SYSTEM_NOT_INITIALIZED]: {
@@ -4020,6 +5480,17 @@ var LOGGER_SERVICES = {
4020
5480
  WEBHOOK_SERVICE: "WebhookService",
4021
5481
  TEMPLATE_ENGINE: "TemplateEngine",
4022
5482
  ATTACHMENT_RESOLVER: "AttachmentResolver",
5483
+ // Storage Package Services
5484
+ STORAGE_SERVICE: "StorageService",
5485
+ STORAGE_ADAPTER: "StorageAdapter",
5486
+ CLOUDFLARE_R2_ADAPTER: "CloudflareR2Adapter",
5487
+ SUPABASE_STORAGE_ADAPTER: "SupabaseStorageAdapter",
5488
+ ADAPTER_REGISTRY: "AdapterRegistry",
5489
+ MEDIA_PROCESSOR: "MediaProcessor",
5490
+ METADATA_EXTRACTOR: "MetadataExtractor",
5491
+ VIRUS_SCANNER: "VirusScanner",
5492
+ TEMPLATE_RENDERER: "TemplateRenderer",
5493
+ COMPLIANCE_MANAGER: "ComplianceManager",
4023
5494
  // Config Package Services
4024
5495
  CONFIG_MANAGER: "ConfigManager",
4025
5496
  CONFIG_VALIDATOR: "ConfigValidator"
@@ -5350,6 +6821,629 @@ var ALERT_RULE_ID = {
5350
6821
  REPLICA_LAG: "replica-lag"
5351
6822
  };
5352
6823
 
5353
- export { ADAPTERS, ADAPTER_TYPES, ALERT_RULE_ID, ALERT_SEVERITIES, ALERT_SEVERITY, ALERT_SOURCE, ALERT_TYPES, ALL_EVENTS, API_ERROR_CODES, ATHLETE_PROFILE_ERRORS, AUDIT_OPERATION, AUTH_PROVIDER, AUTH_PROVIDER_TYPE, BASIC_PROFILE_ERRORS, CACHE_DURATION_MS, CACHE_EVENTS, CHAIN_ID, CHANGE_TYPES, CLIENT_EVENTS, CLIENT_HINT_HEADERS, COLORS, COMMON_FIELDS, COMMON_OPERATIONS, COMMON_STORAGE_TYPES, CONFIG_EVENTS, COORDINATES, CORRELATION_TYPE, COST_OPTIMIZATION_STRATEGY, COUNTRIES, CREATE_CAMPAIGN_ERRORS, CURRENCY_CODES, CUSTOM_RULE_FIELD, ContactUsFormSchema, CorrelationIdSchema, DATABASE_ERROR_CODES, DATABASE_EVENT_TYPE, DATABASE_FIELDS, DATABASE_TABLE, DATA_SAVER_PRESETS, DB_POOL_EVENTS, DEBUGGER_CONFIG_SOURCES, DEBUG_EVENTS, DEFAULT_THRESHOLDS, DeviceTokenSchema, ENCRYPTION_DEFAULTS, ERROR_CATEGORY, ERROR_CATEGORY_TO_EMITTER_KEY, ERROR_CODES, ERROR_DEFINITIONS, ERROR_EVENTS, ERROR_EXCEPTIONS_NAMESPACES, COMMON_FIELDS as ERROR_FIELDS, ERROR_SEVERITY, ERROR_TYPE, EVALUATION_REASONS, EVENTS_CONFIG_SOURCES, EVENT_CONSTANTS, EVENT_NAMESPACES, EVENT_OPERATIONS, EVENT_PRIORITY, EVENT_PRIORITY_MAP, EVENT_PROCESSING_STATUS, EVENT_SCOPES, EVENT_SCOPES_WITH_TEMPORARY, EVENT_STATUS, EVENT_TYPE, EmailSchema, FACTORY_OPERATIONS, FAIL_OVER_STRATEGY, FEATURE_FLAG_DEFAULTS, FEATURE_FLAG_FIELD, FEATURE_FLAG_METADATA, FEATURE_FLAG_PROVIDERS, FEATURE_FLAG_RULE_FIELD, FEATURE_FLAG_TYPES, FILE_EXTENSIONS, HANDLER_SCOPES, HEADER_EVENTS, HEADER_STAGES, HISTORY_TYPES, HTTP_STATUS, IDEMPOTENCY_SAFE_STATUSES, IDEMPOTENCY_STATUS, IMPACT_LEVELS, INTERNAL_STATUS_CODES, InfobipDeliveryResultSchema, InfobipDeliveryWebhookSchema, InfobipEmailStatusSchema, InfobipErrorInfoSchema, InfobipGeoLocationSchema, InfobipPriceInfoSchema, InfobipRecipientInfoSchema, InfobipTrackingEventSchema, InfobipTrackingWebhookSchema, LOAD_BALANCING_STRATEGY, LOGGER_SERVICES, LocaleSchema, MEDIA_EXTENSIONS, MEDIA_MIME_PREFIXES, MIME_TYPES, NETWORK_CONFIDENCE_LEVELS, NETWORK_EVENTS, NETWORK_QUALITY, NODE_ENVIRONMENTS, NOTIFICATION_CATEGORIES, NOTIFICATION_CHANNELS, NOTIFICATION_ERROR_CODES, NOTIFICATION_PROVIDERS, NetworkPresetNames, NotificationCategorySchema, COMMON_OPERATIONS as OPERATIONS, INTERNAL_STATUS_CODES as PACKAGE_STATUS_CODES, PAYMENT_ERROR_CATEGORY, PAYMENT_ERROR_CODES, PAYMENT_EVENT_CATEGORY, PAYMENT_EVENT_ERROR_CATEGORY, PAYMENT_EVENT_TYPE, PAYMENT_METHOD, PAYMENT_PROVIDER_TYPE, PAYMENT_RECOMMENDATION_KEYS, PAYMENT_RESOLUTION_KEYS, PAYMENT_STATUS, PERFORMANCE_EVENTS, PERFORMANCE_METRIC_TYPE, PRIORITY_LEVEL, PRODUCT_TYPE, PUB_SUB_EVENT, PhoneSchema, QUEUE_OPERATIONS, QueuePrioritySchema, REFUND_ERROR_TYPES, REFUND_NOT_ALLOWED_REASON, REGIONAL_CONFIDENCE_LEVELS, REGION_STORAGE_KEY, REGION_TO_PRESET, REGULATORY_FRAMEWORK, REPLICA_STRATEGY, REQUIREDACTIONTYPE, ROUTER_RULE_NAME, ROUTING_STRATEGY, RTT_THRESHOLDS, SECURITY_THREAT_TYPE, SIGNATURE_METHOD, SORT_DIRECTION, SPEED_THRESHOLDS, COMMON_STORAGE_TYPES as STORAGE_TYPES, SYSTEM_USERS, SendGridEventSchema, SendGridWebhookSchema, SignupFormSchema, TABLES, TRACKING_PHASES, TRANSACTION_TYPE, TemplateDataSchema, TemplateIdSchema, UNIFIED_OPERATIONS, UPDATE_STRATEGIES, USER_ROLE, USER_STATUS, USER_TYPE, UserIdSchema, VALIDATION_RANGES, WEBHOOK_ENCRYPTION_METHOD, WEBHOOK_EVENT_TYPE, WEBHOOK_VERIFICATION_REASON, athleteProfileSchema, basicProfileSchema, fanProfileSchema, formCampaignSchema, isValidConfigSource, isValidHistoryType, isValidOperation };
6824
+ // src/storage/enums.ts
6825
+ var FILE_CATEGORY = /* @__PURE__ */ ((FILE_CATEGORY2) => {
6826
+ FILE_CATEGORY2["ProfileImage"] = "profile_image";
6827
+ FILE_CATEGORY2["ProfileBanner"] = "profile_banner";
6828
+ FILE_CATEGORY2["ProfileData"] = "profile_data";
6829
+ FILE_CATEGORY2["IdDocument"] = "id_document";
6830
+ FILE_CATEGORY2["PostImage"] = "post_image";
6831
+ FILE_CATEGORY2["PostVideo"] = "post_video";
6832
+ FILE_CATEGORY2["PostAudio"] = "post_audio";
6833
+ FILE_CATEGORY2["PostDocument"] = "post_document";
6834
+ FILE_CATEGORY2["PostArchive"] = "post_archive";
6835
+ FILE_CATEGORY2["GalleryImage"] = "gallery_image";
6836
+ FILE_CATEGORY2["GalleryVideo"] = "gallery_video";
6837
+ FILE_CATEGORY2["HighlightVideo"] = "highlight_video";
6838
+ FILE_CATEGORY2["TrainingVideo"] = "training_video";
6839
+ FILE_CATEGORY2["ProductImage"] = "product_image";
6840
+ FILE_CATEGORY2["ProductVideo"] = "product_video";
6841
+ FILE_CATEGORY2["MerchandiseImage"] = "merchandise_image";
6842
+ FILE_CATEGORY2["DOCUMENT"] = "document";
6843
+ FILE_CATEGORY2["ContractDocument"] = "contract_document";
6844
+ FILE_CATEGORY2["InvoiceDocument"] = "invoice_document";
6845
+ FILE_CATEGORY2["ReceiptDocument"] = "receipt_document";
6846
+ FILE_CATEGORY2["TaxDocument"] = "tax_document";
6847
+ FILE_CATEGORY2["LegalDocument"] = "legal_document";
6848
+ FILE_CATEGORY2["FinancialDocument"] = "financial_document";
6849
+ FILE_CATEGORY2["NftImage"] = "nft_image";
6850
+ FILE_CATEGORY2["NftMetadata"] = "nft_metadata";
6851
+ FILE_CATEGORY2["BrandLogo"] = "brand_logo";
6852
+ FILE_CATEGORY2["BrandAsset"] = "brand_asset";
6853
+ FILE_CATEGORY2["MarketingAsset"] = "marketing_asset";
6854
+ FILE_CATEGORY2["AVATAR"] = "avatar";
6855
+ FILE_CATEGORY2["ATTACHMENT"] = "attachment";
6856
+ FILE_CATEGORY2["TempFile"] = "temp_file";
6857
+ FILE_CATEGORY2["OTHER"] = "other";
6858
+ return FILE_CATEGORY2;
6859
+ })(FILE_CATEGORY || {});
6860
+ var ENTITY_TYPE = /* @__PURE__ */ ((ENTITY_TYPE2) => {
6861
+ ENTITY_TYPE2["USER"] = "user";
6862
+ ENTITY_TYPE2["FAN"] = "fan";
6863
+ ENTITY_TYPE2["ATHLETE"] = "athlete";
6864
+ ENTITY_TYPE2["CLUB"] = "club";
6865
+ ENTITY_TYPE2["BRAND"] = "brand";
6866
+ ENTITY_TYPE2["ORGANIZATION"] = "organization";
6867
+ ENTITY_TYPE2["EVENT"] = "event";
6868
+ ENTITY_TYPE2["POST"] = "post";
6869
+ ENTITY_TYPE2["PRODUCT"] = "product";
6870
+ ENTITY_TYPE2["NFT"] = "nft";
6871
+ ENTITY_TYPE2["SYSTEM"] = "system";
6872
+ return ENTITY_TYPE2;
6873
+ })(ENTITY_TYPE || {});
6874
+ var STORAGE_ADAPTER_TYPE = /* @__PURE__ */ ((STORAGE_ADAPTER_TYPE2) => {
6875
+ STORAGE_ADAPTER_TYPE2["CloudflareR2"] = "cloudflare_r2";
6876
+ STORAGE_ADAPTER_TYPE2["SupabaseStorage"] = "supabase_storage";
6877
+ STORAGE_ADAPTER_TYPE2["CUSTOM"] = "custom";
6878
+ STORAGE_ADAPTER_TYPE2["MOCK"] = "mock";
6879
+ return STORAGE_ADAPTER_TYPE2;
6880
+ })(STORAGE_ADAPTER_TYPE || {});
6881
+ var FILE_ACCESS_LEVEL = /* @__PURE__ */ ((FILE_ACCESS_LEVEL2) => {
6882
+ FILE_ACCESS_LEVEL2["PUBLIC"] = "public";
6883
+ FILE_ACCESS_LEVEL2["PRIVATE"] = "private";
6884
+ FILE_ACCESS_LEVEL2["SHARED"] = "shared";
6885
+ FILE_ACCESS_LEVEL2["RESTRICTED"] = "restricted";
6886
+ return FILE_ACCESS_LEVEL2;
6887
+ })(FILE_ACCESS_LEVEL || {});
6888
+ var UPLOAD_STATUS = /* @__PURE__ */ ((UPLOAD_STATUS2) => {
6889
+ UPLOAD_STATUS2["PENDING"] = "pending";
6890
+ UPLOAD_STATUS2["UPLOADING"] = "uploading";
6891
+ UPLOAD_STATUS2["PROCESSING"] = "processing";
6892
+ UPLOAD_STATUS2["COMPLETED"] = "completed";
6893
+ UPLOAD_STATUS2["FAILED"] = "failed";
6894
+ UPLOAD_STATUS2["CANCELLED"] = "cancelled";
6895
+ return UPLOAD_STATUS2;
6896
+ })(UPLOAD_STATUS || {});
6897
+ var STORAGE_EVENT_TYPE = /* @__PURE__ */ ((STORAGE_EVENT_TYPE2) => {
6898
+ STORAGE_EVENT_TYPE2["FileUploaded"] = "file_uploaded";
6899
+ STORAGE_EVENT_TYPE2["FileUploadFailed"] = "file_upload_failed";
6900
+ STORAGE_EVENT_TYPE2["UploadProgress"] = "upload_progress";
6901
+ STORAGE_EVENT_TYPE2["UploadAborted"] = "upload_aborted";
6902
+ STORAGE_EVENT_TYPE2["FileDeleted"] = "file_deleted";
6903
+ STORAGE_EVENT_TYPE2["FileDeleteFailed"] = "file_delete_failed";
6904
+ STORAGE_EVENT_TYPE2["FileAccessed"] = "file_accessed";
6905
+ STORAGE_EVENT_TYPE2["SignedUrlGenerated"] = "signed_url_generated";
6906
+ STORAGE_EVENT_TYPE2["MetadataExtracted"] = "metadata_extracted";
6907
+ STORAGE_EVENT_TYPE2["MediaProcessingStarted"] = "media_processing_started";
6908
+ STORAGE_EVENT_TYPE2["MediaProcessingCompleted"] = "media_processing_completed";
6909
+ STORAGE_EVENT_TYPE2["MediaProcessingFailed"] = "media_processing_failed";
6910
+ STORAGE_EVENT_TYPE2["TranscodeComplete"] = "transcode_complete";
6911
+ STORAGE_EVENT_TYPE2["TranscodeFailed"] = "transcode_failed";
6912
+ STORAGE_EVENT_TYPE2["TranscodeProgress"] = "transcode_progress";
6913
+ STORAGE_EVENT_TYPE2["ThumbnailGenerated"] = "thumbnail_generated";
6914
+ STORAGE_EVENT_TYPE2["ImageOptimized"] = "image_optimized";
6915
+ STORAGE_EVENT_TYPE2["VirusDetected"] = "virus_detected";
6916
+ STORAGE_EVENT_TYPE2["VirusScanCompleted"] = "virus_scan_completed";
6917
+ STORAGE_EVENT_TYPE2["AdapterHealthCheck"] = "adapter_health_check";
6918
+ STORAGE_EVENT_TYPE2["AdapterFailed"] = "adapter_failed";
6919
+ STORAGE_EVENT_TYPE2["RetentionPolicyApplied"] = "retention_policy_applied";
6920
+ STORAGE_EVENT_TYPE2["RetentionEnforced"] = "retention_enforced";
6921
+ STORAGE_EVENT_TYPE2["FileMarkedForDeletion"] = "file_marked_for_deletion";
6922
+ STORAGE_EVENT_TYPE2["ImmutabilityEnforced"] = "immutability_enforced";
6923
+ STORAGE_EVENT_TYPE2["SoftDeleteProcessed"] = "soft_delete_processed";
6924
+ STORAGE_EVENT_TYPE2["FileRestored"] = "file_restored";
6925
+ STORAGE_EVENT_TYPE2["FileArchived"] = "file_archived";
6926
+ STORAGE_EVENT_TYPE2["RetentionExpired"] = "retention_expired";
6927
+ STORAGE_EVENT_TYPE2["JurisdictionConflictResolved"] = "jurisdiction_conflict_resolved";
6928
+ STORAGE_EVENT_TYPE2["FileGenerated"] = "file_generated";
6929
+ STORAGE_EVENT_TYPE2["FileGenerationFailed"] = "file_generation_failed";
6930
+ STORAGE_EVENT_TYPE2["FileUpdated"] = "file_updated";
6931
+ STORAGE_EVENT_TYPE2["FileUpdateFailed"] = "file_update_failed";
6932
+ STORAGE_EVENT_TYPE2["FileReplaced"] = "file_replaced";
6933
+ STORAGE_EVENT_TYPE2["FileReplaceFailed"] = "file_replace_failed";
6934
+ STORAGE_EVENT_TYPE2["FileMoved"] = "file_moved";
6935
+ STORAGE_EVENT_TYPE2["FileMoveFailed"] = "file_move_failed";
6936
+ STORAGE_EVENT_TYPE2["FileCopied"] = "file_copied";
6937
+ STORAGE_EVENT_TYPE2["FileCopyFailed"] = "file_copy_failed";
6938
+ STORAGE_EVENT_TYPE2["AuditLogCreated"] = "audit_log_created";
6939
+ STORAGE_EVENT_TYPE2["QueueStarted"] = "storage.queue.started";
6940
+ STORAGE_EVENT_TYPE2["QueueStopped"] = "storage.queue.stopped";
6941
+ STORAGE_EVENT_TYPE2["OperationProcessing"] = "storage.operation.processing";
6942
+ STORAGE_EVENT_TYPE2["OperationCompleted"] = "storage.operation.completed";
6943
+ STORAGE_EVENT_TYPE2["OperationRetry"] = "storage.operation.retry";
6944
+ STORAGE_EVENT_TYPE2["OperationFailed"] = "storage.operation.failed";
6945
+ STORAGE_EVENT_TYPE2["StorageError"] = "storage_error";
6946
+ STORAGE_EVENT_TYPE2["CdnInvalidated"] = "cdn_invalidated";
6947
+ STORAGE_EVENT_TYPE2["CdnInvalidationFailed"] = "cdn_invalidation_failed";
6948
+ STORAGE_EVENT_TYPE2["IntegrityCheckFailed"] = "integrity_check_failed";
6949
+ STORAGE_EVENT_TYPE2["CorruptionDetected"] = "corruption_detected";
6950
+ STORAGE_EVENT_TYPE2["QuotaWarning"] = "quota_warning";
6951
+ STORAGE_EVENT_TYPE2["QuotaExceeded"] = "quota_exceeded";
6952
+ STORAGE_EVENT_TYPE2["WebhookReceived"] = "webhook_received";
6953
+ STORAGE_EVENT_TYPE2["WebhookProcessed"] = "webhook_processed";
6954
+ STORAGE_EVENT_TYPE2["WebhookFailed"] = "webhook_failed";
6955
+ STORAGE_EVENT_TYPE2["WebhookRetryExhausted"] = "webhook_retry_exhausted";
6956
+ return STORAGE_EVENT_TYPE2;
6957
+ })(STORAGE_EVENT_TYPE || {});
6958
+ var RETRY_STRATEGY = /* @__PURE__ */ ((RETRY_STRATEGY2) => {
6959
+ RETRY_STRATEGY2["ExponentialBackoff"] = "exponential_backoff";
6960
+ RETRY_STRATEGY2["LinearBackoff"] = "linear_backoff";
6961
+ RETRY_STRATEGY2["FixedDelay"] = "fixed_delay";
6962
+ RETRY_STRATEGY2["NoRetry"] = "no_retry";
6963
+ return RETRY_STRATEGY2;
6964
+ })(RETRY_STRATEGY || {});
6965
+ var PATH_GENERATION_STRATEGY = /* @__PURE__ */ ((PATH_GENERATION_STRATEGY2) => {
6966
+ PATH_GENERATION_STRATEGY2["HashBased"] = "hash_based";
6967
+ PATH_GENERATION_STRATEGY2["EntityBased"] = "entity_based";
6968
+ PATH_GENERATION_STRATEGY2["DateBased"] = "date_based";
6969
+ PATH_GENERATION_STRATEGY2["CategoryBased"] = "category_based";
6970
+ PATH_GENERATION_STRATEGY2["FLAT"] = "flat";
6971
+ return PATH_GENERATION_STRATEGY2;
6972
+ })(PATH_GENERATION_STRATEGY || {});
6973
+ var FILE_VALIDATION_ERROR = /* @__PURE__ */ ((FILE_VALIDATION_ERROR2) => {
6974
+ FILE_VALIDATION_ERROR2["InvalidMimeType"] = "invalid_mime_type";
6975
+ FILE_VALIDATION_ERROR2["FileTooLarge"] = "file_too_large";
6976
+ FILE_VALIDATION_ERROR2["FileTooSmall"] = "file_too_small";
6977
+ FILE_VALIDATION_ERROR2["InvalidExtension"] = "invalid_extension";
6978
+ FILE_VALIDATION_ERROR2["InvalidFilename"] = "invalid_filename";
6979
+ FILE_VALIDATION_ERROR2["ExecutableDetected"] = "executable_detected";
6980
+ FILE_VALIDATION_ERROR2["VirusDetected"] = "virus_detected";
6981
+ return FILE_VALIDATION_ERROR2;
6982
+ })(FILE_VALIDATION_ERROR || {});
6983
+ var TEMPLATE_OUTPUT_FORMAT = /* @__PURE__ */ ((TEMPLATE_OUTPUT_FORMAT2) => {
6984
+ TEMPLATE_OUTPUT_FORMAT2["PDF"] = "pdf";
6985
+ TEMPLATE_OUTPUT_FORMAT2["HTML"] = "html";
6986
+ TEMPLATE_OUTPUT_FORMAT2["MARKDOWN"] = "markdown";
6987
+ return TEMPLATE_OUTPUT_FORMAT2;
6988
+ })(TEMPLATE_OUTPUT_FORMAT || {});
6989
+ var DOCUMENT_TYPE = /* @__PURE__ */ ((DOCUMENT_TYPE2) => {
6990
+ DOCUMENT_TYPE2["INVOICE"] = "invoice";
6991
+ DOCUMENT_TYPE2["RECEIPT"] = "receipt";
6992
+ DOCUMENT_TYPE2["TAX"] = "tax";
6993
+ DOCUMENT_TYPE2["COMPLIANCE"] = "compliance";
6994
+ DOCUMENT_TYPE2["CERTIFICATE"] = "certificate";
6995
+ DOCUMENT_TYPE2["CONTRACT"] = "contract";
6996
+ DOCUMENT_TYPE2["REPORT"] = "report";
6997
+ return DOCUMENT_TYPE2;
6998
+ })(DOCUMENT_TYPE || {});
6999
+ var MEDIA_ENTITY = /* @__PURE__ */ ((MEDIA_ENTITY2) => {
7000
+ MEDIA_ENTITY2["TEAM"] = "team";
7001
+ MEDIA_ENTITY2["CLUB"] = "club";
7002
+ MEDIA_ENTITY2["ATHLETE"] = "athlete";
7003
+ MEDIA_ENTITY2["MATCH"] = "match";
7004
+ MEDIA_ENTITY2["LEAGUE"] = "league";
7005
+ MEDIA_ENTITY2["POST"] = "post";
7006
+ MEDIA_ENTITY2["CAMPAIGN"] = "campaign";
7007
+ MEDIA_ENTITY2["PRODUCT"] = "product";
7008
+ MEDIA_ENTITY2["BRAND"] = "brand";
7009
+ MEDIA_ENTITY2["USER"] = "user";
7010
+ return MEDIA_ENTITY2;
7011
+ })(MEDIA_ENTITY || {});
7012
+ var STORAGE_VISIBILITY = /* @__PURE__ */ ((STORAGE_VISIBILITY2) => {
7013
+ STORAGE_VISIBILITY2["PUBLIC"] = "public";
7014
+ STORAGE_VISIBILITY2["PRIVATE"] = "private";
7015
+ return STORAGE_VISIBILITY2;
7016
+ })(STORAGE_VISIBILITY || {});
7017
+ var STORAGE_ENVIRONMENT = /* @__PURE__ */ ((STORAGE_ENVIRONMENT2) => {
7018
+ STORAGE_ENVIRONMENT2["PRODUCTION"] = "prod";
7019
+ STORAGE_ENVIRONMENT2["STAGING"] = "stg";
7020
+ STORAGE_ENVIRONMENT2["DEVELOPMENT"] = "dev";
7021
+ return STORAGE_ENVIRONMENT2;
7022
+ })(STORAGE_ENVIRONMENT || {});
7023
+ var BUSINESS_MODEL = /* @__PURE__ */ ((BUSINESS_MODEL2) => {
7024
+ BUSINESS_MODEL2["B2B"] = "b2b";
7025
+ BUSINESS_MODEL2["B2C"] = "b2c";
7026
+ BUSINESS_MODEL2["B2B2C"] = "b2b2c";
7027
+ BUSINESS_MODEL2["INTERNAL"] = "internal";
7028
+ return BUSINESS_MODEL2;
7029
+ })(BUSINESS_MODEL || {});
7030
+ var ORGANIZATION_TIER = /* @__PURE__ */ ((ORGANIZATION_TIER2) => {
7031
+ ORGANIZATION_TIER2["ENTERPRISE"] = "enterprise";
7032
+ ORGANIZATION_TIER2["PROFESSIONAL"] = "professional";
7033
+ ORGANIZATION_TIER2["STANDARD"] = "standard";
7034
+ ORGANIZATION_TIER2["STARTER"] = "starter";
7035
+ return ORGANIZATION_TIER2;
7036
+ })(ORGANIZATION_TIER || {});
7037
+ var BUCKET_PURPOSE = /* @__PURE__ */ ((BUCKET_PURPOSE2) => {
7038
+ BUCKET_PURPOSE2["COMPLIANCE"] = "compliance";
7039
+ BUCKET_PURPOSE2["MediaImages"] = "media-images";
7040
+ BUCKET_PURPOSE2["MediaVideos"] = "media-videos";
7041
+ BUCKET_PURPOSE2["MediaStatic"] = "media-static";
7042
+ BUCKET_PURPOSE2["UserUploads"] = "user-uploads";
7043
+ BUCKET_PURPOSE2["TEMPORARY"] = "temporary";
7044
+ BUCKET_PURPOSE2["ARCHIVES"] = "archives";
7045
+ BUCKET_PURPOSE2["BACKUPS"] = "backups";
7046
+ return BUCKET_PURPOSE2;
7047
+ })(BUCKET_PURPOSE || {});
7048
+ var PATH_STRATEGY = /* @__PURE__ */ ((PATH_STRATEGY2) => {
7049
+ PATH_STRATEGY2["COMPLIANCE"] = "compliance";
7050
+ PATH_STRATEGY2["MEDIA"] = "media";
7051
+ PATH_STRATEGY2["GENERAL"] = "general";
7052
+ return PATH_STRATEGY2;
7053
+ })(PATH_STRATEGY || {});
7054
+ var MEDIA_VARIANT_TYPE = /* @__PURE__ */ ((MEDIA_VARIANT_TYPE2) => {
7055
+ MEDIA_VARIANT_TYPE2["THUMBNAIL"] = "thumbnail";
7056
+ MEDIA_VARIANT_TYPE2["SMALL"] = "small";
7057
+ MEDIA_VARIANT_TYPE2["MEDIUM"] = "medium";
7058
+ MEDIA_VARIANT_TYPE2["LARGE"] = "large";
7059
+ MEDIA_VARIANT_TYPE2["MOBILE"] = "mobile";
7060
+ MEDIA_VARIANT_TYPE2["TABLET"] = "tablet";
7061
+ MEDIA_VARIANT_TYPE2["DESKTOP"] = "desktop";
7062
+ MEDIA_VARIANT_TYPE2["HD"] = "hd";
7063
+ MEDIA_VARIANT_TYPE2["FourK"] = "4k";
7064
+ MEDIA_VARIANT_TYPE2["Video360p"] = "360p";
7065
+ MEDIA_VARIANT_TYPE2["Video480p"] = "480p";
7066
+ MEDIA_VARIANT_TYPE2["Video720p"] = "720p";
7067
+ MEDIA_VARIANT_TYPE2["Video1080p"] = "1080p";
7068
+ return MEDIA_VARIANT_TYPE2;
7069
+ })(MEDIA_VARIANT_TYPE || {});
7070
+ var STORAGE_QUEUE_PRIORITY = /* @__PURE__ */ ((STORAGE_QUEUE_PRIORITY2) => {
7071
+ STORAGE_QUEUE_PRIORITY2["HIGH"] = "high";
7072
+ STORAGE_QUEUE_PRIORITY2["NORMAL"] = "normal";
7073
+ STORAGE_QUEUE_PRIORITY2["LOW"] = "low";
7074
+ return STORAGE_QUEUE_PRIORITY2;
7075
+ })(STORAGE_QUEUE_PRIORITY || {});
7076
+ var STORAGE_DEVICE_TYPE = /* @__PURE__ */ ((STORAGE_DEVICE_TYPE2) => {
7077
+ STORAGE_DEVICE_TYPE2["MOBILE"] = "mobile";
7078
+ STORAGE_DEVICE_TYPE2["TABLET"] = "tablet";
7079
+ STORAGE_DEVICE_TYPE2["DESKTOP"] = "desktop";
7080
+ STORAGE_DEVICE_TYPE2["FourK"] = "4k";
7081
+ STORAGE_DEVICE_TYPE2["TV"] = "tv";
7082
+ STORAGE_DEVICE_TYPE2["WATCH"] = "watch";
7083
+ STORAGE_DEVICE_TYPE2["AUTO"] = "auto";
7084
+ return STORAGE_DEVICE_TYPE2;
7085
+ })(STORAGE_DEVICE_TYPE || {});
7086
+ var STORAGE_VARIANT_NAME = /* @__PURE__ */ ((STORAGE_VARIANT_NAME2) => {
7087
+ STORAGE_VARIANT_NAME2["THUMBNAIL"] = "thumbnail";
7088
+ STORAGE_VARIANT_NAME2["SMALL"] = "small";
7089
+ STORAGE_VARIANT_NAME2["MEDIUM"] = "medium";
7090
+ STORAGE_VARIANT_NAME2["LARGE"] = "large";
7091
+ STORAGE_VARIANT_NAME2["XLARGE"] = "xlarge";
7092
+ STORAGE_VARIANT_NAME2["MOBILE"] = "mobile";
7093
+ STORAGE_VARIANT_NAME2["TABLET"] = "tablet";
7094
+ STORAGE_VARIANT_NAME2["DESKTOP"] = "desktop";
7095
+ STORAGE_VARIANT_NAME2["HD"] = "hd";
7096
+ STORAGE_VARIANT_NAME2["FourK"] = "4k";
7097
+ STORAGE_VARIANT_NAME2["RETINA"] = "retina";
7098
+ STORAGE_VARIANT_NAME2["Video360p"] = "360p";
7099
+ STORAGE_VARIANT_NAME2["Video480p"] = "480p";
7100
+ STORAGE_VARIANT_NAME2["Video720p"] = "720p";
7101
+ STORAGE_VARIANT_NAME2["Video1080p"] = "1080p";
7102
+ STORAGE_VARIANT_NAME2["Video4k"] = "4k-video";
7103
+ return STORAGE_VARIANT_NAME2;
7104
+ })(STORAGE_VARIANT_NAME || {});
7105
+ var ADAPTER_HEALTH_STATUS = /* @__PURE__ */ ((ADAPTER_HEALTH_STATUS2) => {
7106
+ ADAPTER_HEALTH_STATUS2["HEALTHY"] = "healthy";
7107
+ ADAPTER_HEALTH_STATUS2["DEGRADED"] = "degraded";
7108
+ ADAPTER_HEALTH_STATUS2["UNHEALTHY"] = "unhealthy";
7109
+ ADAPTER_HEALTH_STATUS2["UNKNOWN"] = "unknown";
7110
+ return ADAPTER_HEALTH_STATUS2;
7111
+ })(ADAPTER_HEALTH_STATUS || {});
7112
+ var STORAGE_RENDERER_TYPE = /* @__PURE__ */ ((STORAGE_RENDERER_TYPE2) => {
7113
+ STORAGE_RENDERER_TYPE2["PUPPETEER"] = "puppeteer";
7114
+ STORAGE_RENDERER_TYPE2["PLAYWRIGHT"] = "playwright";
7115
+ STORAGE_RENDERER_TYPE2["PDFKIT"] = "pdfkit";
7116
+ STORAGE_RENDERER_TYPE2["JSPDF"] = "jspdf";
7117
+ STORAGE_RENDERER_TYPE2["WKHTMLTOPDF"] = "wkhtmltopdf";
7118
+ STORAGE_RENDERER_TYPE2["EXCELJS"] = "exceljs";
7119
+ STORAGE_RENDERER_TYPE2["DOCXTEMPLATER"] = "docxtemplater";
7120
+ return STORAGE_RENDERER_TYPE2;
7121
+ })(STORAGE_RENDERER_TYPE || {});
7122
+ var OUTPUT_FORMAT = /* @__PURE__ */ ((OUTPUT_FORMAT2) => {
7123
+ OUTPUT_FORMAT2["PDF"] = "pdf";
7124
+ OUTPUT_FORMAT2["HTML"] = "html";
7125
+ OUTPUT_FORMAT2["PNG"] = "png";
7126
+ OUTPUT_FORMAT2["JPEG"] = "jpeg";
7127
+ OUTPUT_FORMAT2["EXCEL"] = "excel";
7128
+ OUTPUT_FORMAT2["WORD"] = "word";
7129
+ OUTPUT_FORMAT2["CSV"] = "csv";
7130
+ OUTPUT_FORMAT2["JSON"] = "json";
7131
+ return OUTPUT_FORMAT2;
7132
+ })(OUTPUT_FORMAT || {});
7133
+ var STORAGE_JURISDICTION = /* @__PURE__ */ ((STORAGE_JURISDICTION2) => {
7134
+ STORAGE_JURISDICTION2["GLOBAL"] = "GLOBAL";
7135
+ STORAGE_JURISDICTION2["US"] = "US";
7136
+ STORAGE_JURISDICTION2["UsCa"] = "US-CA";
7137
+ STORAGE_JURISDICTION2["UsNy"] = "US-NY";
7138
+ STORAGE_JURISDICTION2["UsTx"] = "US-TX";
7139
+ STORAGE_JURISDICTION2["UsFl"] = "US-FL";
7140
+ STORAGE_JURISDICTION2["UsIl"] = "US-IL";
7141
+ STORAGE_JURISDICTION2["EU"] = "EU";
7142
+ STORAGE_JURISDICTION2["EuDe"] = "EU-DE";
7143
+ STORAGE_JURISDICTION2["EuFr"] = "EU-FR";
7144
+ STORAGE_JURISDICTION2["EuGb"] = "EU-GB";
7145
+ STORAGE_JURISDICTION2["EuIt"] = "EU-IT";
7146
+ STORAGE_JURISDICTION2["EuEs"] = "EU-ES";
7147
+ STORAGE_JURISDICTION2["EuNl"] = "EU-NL";
7148
+ STORAGE_JURISDICTION2["EuCh"] = "EU-CH";
7149
+ STORAGE_JURISDICTION2["JP"] = "JP";
7150
+ STORAGE_JURISDICTION2["SG"] = "SG";
7151
+ STORAGE_JURISDICTION2["HK"] = "HK";
7152
+ STORAGE_JURISDICTION2["AU"] = "AU";
7153
+ STORAGE_JURISDICTION2["NZ"] = "NZ";
7154
+ STORAGE_JURISDICTION2["KR"] = "KR";
7155
+ STORAGE_JURISDICTION2["CN"] = "CN";
7156
+ STORAGE_JURISDICTION2["AE"] = "AE";
7157
+ STORAGE_JURISDICTION2["SA"] = "SA";
7158
+ STORAGE_JURISDICTION2["IL"] = "IL";
7159
+ STORAGE_JURISDICTION2["ZA"] = "ZA";
7160
+ STORAGE_JURISDICTION2["CA"] = "CA";
7161
+ STORAGE_JURISDICTION2["BR"] = "BR";
7162
+ STORAGE_JURISDICTION2["MX"] = "MX";
7163
+ STORAGE_JURISDICTION2["AR"] = "AR";
7164
+ return STORAGE_JURISDICTION2;
7165
+ })(STORAGE_JURISDICTION || {});
7166
+ var STORAGE_REGULATORY_FRAMEWORK = /* @__PURE__ */ ((STORAGE_REGULATORY_FRAMEWORK2) => {
7167
+ STORAGE_REGULATORY_FRAMEWORK2["IRS"] = "IRS";
7168
+ STORAGE_REGULATORY_FRAMEWORK2["SEC"] = "SEC";
7169
+ STORAGE_REGULATORY_FRAMEWORK2["FINRA"] = "FINRA";
7170
+ STORAGE_REGULATORY_FRAMEWORK2["SOX"] = "SOX";
7171
+ STORAGE_REGULATORY_FRAMEWORK2["GLBA"] = "GLBA";
7172
+ STORAGE_REGULATORY_FRAMEWORK2["FCRA"] = "FCRA";
7173
+ STORAGE_REGULATORY_FRAMEWORK2["FINCEN"] = "FinCEN";
7174
+ STORAGE_REGULATORY_FRAMEWORK2["BSA"] = "BSA";
7175
+ STORAGE_REGULATORY_FRAMEWORK2["AML"] = "AML";
7176
+ STORAGE_REGULATORY_FRAMEWORK2["OFAC"] = "OFAC";
7177
+ STORAGE_REGULATORY_FRAMEWORK2["NYDFS"] = "NYDFS";
7178
+ STORAGE_REGULATORY_FRAMEWORK2["CCPA"] = "CCPA";
7179
+ STORAGE_REGULATORY_FRAMEWORK2["CPRA"] = "CPRA";
7180
+ STORAGE_REGULATORY_FRAMEWORK2["GDPR"] = "GDPR";
7181
+ STORAGE_REGULATORY_FRAMEWORK2["MICA"] = "MiCA";
7182
+ STORAGE_REGULATORY_FRAMEWORK2["AMLD5"] = "5AMLD";
7183
+ STORAGE_REGULATORY_FRAMEWORK2["AMLD6"] = "6AMLD";
7184
+ STORAGE_REGULATORY_FRAMEWORK2["PSD2"] = "PSD2";
7185
+ STORAGE_REGULATORY_FRAMEWORK2["EMIR"] = "EMIR";
7186
+ STORAGE_REGULATORY_FRAMEWORK2["FATF"] = "FATF";
7187
+ STORAGE_REGULATORY_FRAMEWORK2["BaselIii"] = "Basel III";
7188
+ STORAGE_REGULATORY_FRAMEWORK2["ISO27001"] = "ISO27001";
7189
+ STORAGE_REGULATORY_FRAMEWORK2["SOC2"] = "SOC2";
7190
+ STORAGE_REGULATORY_FRAMEWORK2["HIPAA"] = "HIPAA";
7191
+ STORAGE_REGULATORY_FRAMEWORK2["HITECH"] = "HITECH";
7192
+ STORAGE_REGULATORY_FRAMEWORK2["PciDss"] = "PCI DSS";
7193
+ STORAGE_REGULATORY_FRAMEWORK2["FERPA"] = "FERPA";
7194
+ STORAGE_REGULATORY_FRAMEWORK2["COPPA"] = "COPPA";
7195
+ STORAGE_REGULATORY_FRAMEWORK2["InternalSecurity"] = "Internal Security Policy";
7196
+ STORAGE_REGULATORY_FRAMEWORK2["IndustryBestPractices"] = "Industry Best Practices";
7197
+ return STORAGE_REGULATORY_FRAMEWORK2;
7198
+ })(STORAGE_REGULATORY_FRAMEWORK || {});
7199
+ var STORAGE_PLUGIN_TYPE = /* @__PURE__ */ ((STORAGE_PLUGIN_TYPE2) => {
7200
+ STORAGE_PLUGIN_TYPE2["VALIDATION"] = "validation";
7201
+ STORAGE_PLUGIN_TYPE2["SECURITY"] = "security";
7202
+ STORAGE_PLUGIN_TYPE2["METADATA"] = "metadata";
7203
+ STORAGE_PLUGIN_TYPE2["CDN"] = "cdn";
7204
+ STORAGE_PLUGIN_TYPE2["PROCESSING"] = "processing";
7205
+ STORAGE_PLUGIN_TYPE2["MONITORING"] = "monitoring";
7206
+ STORAGE_PLUGIN_TYPE2["COMPLIANCE"] = "compliance";
7207
+ STORAGE_PLUGIN_TYPE2["AUDIT"] = "audit";
7208
+ STORAGE_PLUGIN_TYPE2["CUSTOM"] = "custom";
7209
+ return STORAGE_PLUGIN_TYPE2;
7210
+ })(STORAGE_PLUGIN_TYPE || {});
7211
+ var STORAGE_WEBHOOK_EVENT_TYPE = /* @__PURE__ */ ((STORAGE_WEBHOOK_EVENT_TYPE2) => {
7212
+ STORAGE_WEBHOOK_EVENT_TYPE2["ObjectCreated"] = "object.created";
7213
+ STORAGE_WEBHOOK_EVENT_TYPE2["ObjectUpdated"] = "object.updated";
7214
+ STORAGE_WEBHOOK_EVENT_TYPE2["ObjectDeleted"] = "object.deleted";
7215
+ STORAGE_WEBHOOK_EVENT_TYPE2["ObjectRestored"] = "object.restored";
7216
+ STORAGE_WEBHOOK_EVENT_TYPE2["ObjectArchived"] = "object.archived";
7217
+ STORAGE_WEBHOOK_EVENT_TYPE2["TranscodeComplete"] = "transcode.complete";
7218
+ STORAGE_WEBHOOK_EVENT_TYPE2["TranscodeFailed"] = "transcode.failed";
7219
+ STORAGE_WEBHOOK_EVENT_TYPE2["TranscodeProgress"] = "transcode.progress";
7220
+ STORAGE_WEBHOOK_EVENT_TYPE2["ThumbnailComplete"] = "thumbnail.complete";
7221
+ STORAGE_WEBHOOK_EVENT_TYPE2["ImageOptimizationComplete"] = "image.optimization.complete";
7222
+ STORAGE_WEBHOOK_EVENT_TYPE2["CdnInvalidationComplete"] = "cdn.invalidation.complete";
7223
+ STORAGE_WEBHOOK_EVENT_TYPE2["CdnInvalidationFailed"] = "cdn.invalidation.failed";
7224
+ STORAGE_WEBHOOK_EVENT_TYPE2["ChecksumMismatch"] = "checksum.mismatch";
7225
+ STORAGE_WEBHOOK_EVENT_TYPE2["ObjectCorrupted"] = "object.corrupted";
7226
+ STORAGE_WEBHOOK_EVENT_TYPE2["QuotaWarning"] = "quota.warning";
7227
+ STORAGE_WEBHOOK_EVENT_TYPE2["QuotaExceeded"] = "quota.exceeded";
7228
+ return STORAGE_WEBHOOK_EVENT_TYPE2;
7229
+ })(STORAGE_WEBHOOK_EVENT_TYPE || {});
7230
+ var STORAGE_OPERATION = /* @__PURE__ */ ((STORAGE_OPERATION2) => {
7231
+ STORAGE_OPERATION2["UPLOAD"] = "upload";
7232
+ STORAGE_OPERATION2["DELETE"] = "delete";
7233
+ STORAGE_OPERATION2["UPDATE"] = "update";
7234
+ STORAGE_OPERATION2["RESTORE"] = "restore";
7235
+ STORAGE_OPERATION2["ARCHIVE"] = "archive";
7236
+ return STORAGE_OPERATION2;
7237
+ })(STORAGE_OPERATION || {});
7238
+ var STORAGE_SIGNATURE_METHOD = /* @__PURE__ */ ((STORAGE_SIGNATURE_METHOD2) => {
7239
+ STORAGE_SIGNATURE_METHOD2["HmacSha256"] = "hmac-sha256";
7240
+ STORAGE_SIGNATURE_METHOD2["HmacSha512"] = "hmac-sha512";
7241
+ STORAGE_SIGNATURE_METHOD2["HmacSha1"] = "hmac-sha1";
7242
+ STORAGE_SIGNATURE_METHOD2["AwsSignatureV4"] = "aws-signature-v4";
7243
+ STORAGE_SIGNATURE_METHOD2["JWT"] = "jwt";
7244
+ STORAGE_SIGNATURE_METHOD2["Custom"] = "custom";
7245
+ return STORAGE_SIGNATURE_METHOD2;
7246
+ })(STORAGE_SIGNATURE_METHOD || {});
7247
+
7248
+ // src/storage/event-handler-mapping.ts
7249
+ var STORAGE_EVENT_HANDLER_MAPPING = {
7250
+ // Upload events
7251
+ onFileUploaded: "file_uploaded" /* FileUploaded */,
7252
+ onFileUploadFailed: "file_upload_failed" /* FileUploadFailed */,
7253
+ onUploadProgress: "upload_progress" /* UploadProgress */,
7254
+ onUploadAborted: "upload_aborted" /* UploadAborted */,
7255
+ // Delete events
7256
+ onFileDeleted: "file_deleted" /* FileDeleted */,
7257
+ onFileDeleteFailed: "file_delete_failed" /* FileDeleteFailed */,
7258
+ // Access events
7259
+ onFileAccessed: "file_accessed" /* FileAccessed */,
7260
+ onSignedUrlGenerated: "signed_url_generated" /* SignedUrlGenerated */,
7261
+ // Processing events
7262
+ onMetadataExtracted: "metadata_extracted" /* MetadataExtracted */,
7263
+ onMediaProcessingStarted: "media_processing_started" /* MediaProcessingStarted */,
7264
+ onMediaProcessingCompleted: "media_processing_completed" /* MediaProcessingCompleted */,
7265
+ onMediaProcessingFailed: "media_processing_failed" /* MediaProcessingFailed */,
7266
+ // Security events
7267
+ onVirusDetected: "virus_detected" /* VirusDetected */,
7268
+ onVirusScanCompleted: "virus_scan_completed" /* VirusScanCompleted */,
7269
+ // Adapter events
7270
+ onAdapterHealthCheck: "adapter_health_check" /* AdapterHealthCheck */,
7271
+ onAdapterFailed: "adapter_failed" /* AdapterFailed */,
7272
+ // Compliance events
7273
+ onRetentionPolicyApplied: "retention_policy_applied" /* RetentionPolicyApplied */,
7274
+ onFileMarkedForDeletion: "file_marked_for_deletion" /* FileMarkedForDeletion */,
7275
+ onImmutabilityEnforced: "immutability_enforced" /* ImmutabilityEnforced */,
7276
+ // File operations events
7277
+ onFileReplaced: "file_replaced" /* FileReplaced */,
7278
+ onFileReplaceFailed: "file_replace_failed" /* FileReplaceFailed */,
7279
+ onFileMoved: "file_moved" /* FileMoved */,
7280
+ onFileMoveFailed: "file_move_failed" /* FileMoveFailed */,
7281
+ onFileCopied: "file_copied" /* FileCopied */,
7282
+ onFileCopyFailed: "file_copy_failed" /* FileCopyFailed */,
7283
+ // Audit events
7284
+ onAuditLogCreated: "audit_log_created" /* AuditLogCreated */,
7285
+ // Queue events
7286
+ onQueueStarted: "storage.queue.started" /* QueueStarted */,
7287
+ onQueueStopped: "storage.queue.stopped" /* QueueStopped */,
7288
+ onOperationProcessing: "storage.operation.processing" /* OperationProcessing */,
7289
+ onOperationCompleted: "storage.operation.completed" /* OperationCompleted */,
7290
+ onOperationRetry: "storage.operation.retry" /* OperationRetry */,
7291
+ onOperationFailed: "storage.operation.failed" /* OperationFailed */,
7292
+ // Error events
7293
+ onStorageError: "storage_error" /* StorageError */
7294
+ };
7295
+ var WEBHOOK_EVENT_TYPE_MAPPING = {
7296
+ "object.created": "file_uploaded" /* FileUploaded */,
7297
+ "object.updated": "file_updated" /* FileUpdated */,
7298
+ "object.deleted": "file_deleted" /* FileDeleted */,
7299
+ "object.restored": "file_restored" /* FileRestored */,
7300
+ "object.archived": "file_archived" /* FileArchived */,
7301
+ "transcode.complete": "transcode_complete" /* TranscodeComplete */,
7302
+ "transcode.failed": "transcode_failed" /* TranscodeFailed */,
7303
+ "transcode.progress": "transcode_progress" /* TranscodeProgress */,
7304
+ "thumbnail.complete": "thumbnail_generated" /* ThumbnailGenerated */,
7305
+ "image.optimization.complete": "image_optimized" /* ImageOptimized */,
7306
+ "cdn.invalidation.complete": "cdn_invalidated" /* CdnInvalidated */,
7307
+ "cdn.invalidation.failed": "cdn_invalidation_failed" /* CdnInvalidationFailed */,
7308
+ "checksum.mismatch": "integrity_check_failed" /* IntegrityCheckFailed */,
7309
+ "object.corrupted": "corruption_detected" /* CorruptionDetected */,
7310
+ "quota.warning": "quota_warning" /* QuotaWarning */,
7311
+ "quota.exceeded": "quota_exceeded" /* QuotaExceeded */
7312
+ };
7313
+ var STORAGE_EVENT_TYPE_TO_HANDLER_NAME = Object.entries(STORAGE_EVENT_HANDLER_MAPPING).reduce(
7314
+ (acc, [handlerName, eventType]) => {
7315
+ acc[eventType] = handlerName;
7316
+ return acc;
7317
+ },
7318
+ {}
7319
+ );
7320
+ var MAX_PROGRESS_PERCENTAGE = 100;
7321
+ var STORAGE_PROCESSING_STATUS = /* @__PURE__ */ ((STORAGE_PROCESSING_STATUS2) => {
7322
+ STORAGE_PROCESSING_STATUS2["Queued"] = "queued";
7323
+ STORAGE_PROCESSING_STATUS2["Processing"] = "processing";
7324
+ STORAGE_PROCESSING_STATUS2["Completed"] = "completed";
7325
+ STORAGE_PROCESSING_STATUS2["Failed"] = "failed";
7326
+ return STORAGE_PROCESSING_STATUS2;
7327
+ })(STORAGE_PROCESSING_STATUS || {});
7328
+ var StorageProcessingOutputSchema = z.object({
7329
+ url: z.string().url(),
7330
+ format: z.string(),
7331
+ width: z.number().optional(),
7332
+ height: z.number().optional(),
7333
+ duration: z.number().optional(),
7334
+ size: z.number(),
7335
+ bitrate: z.number().optional(),
7336
+ codec: z.string().optional()
7337
+ });
7338
+ var StorageMediaProcessingPayloadSchema = z.object({
7339
+ jobId: z.string(),
7340
+ status: z.nativeEnum(STORAGE_PROCESSING_STATUS),
7341
+ input: z.object({
7342
+ url: z.string().url(),
7343
+ objectKey: z.string(),
7344
+ bucket: z.string().optional()
7345
+ }),
7346
+ output: z.object({
7347
+ primary: StorageProcessingOutputSchema.optional(),
7348
+ thumbnail: StorageProcessingOutputSchema.optional(),
7349
+ variants: z.array(StorageProcessingOutputSchema).optional()
7350
+ }).optional(),
7351
+ metadata: z.object({
7352
+ duration: z.number().optional(),
7353
+ width: z.number().optional(),
7354
+ height: z.number().optional(),
7355
+ format: z.string().optional(),
7356
+ codec: z.string().optional()
7357
+ }).optional(),
7358
+ progress: z.number().min(0).max(MAX_PROGRESS_PERCENTAGE).optional(),
7359
+ error: z.object({
7360
+ code: z.string(),
7361
+ message: z.string(),
7362
+ details: z.record(z.string(), z.unknown()).optional()
7363
+ }).optional(),
7364
+ timestamp: z.union([z.string(), z.number()]),
7365
+ provider: z.string().optional()
7366
+ });
7367
+ var R2EventRecordSchema = z.object({
7368
+ eventVersion: z.string(),
7369
+ // "2.1"
7370
+ eventSource: z.string(),
7371
+ // "aws:s3" or "cloudflare:r2"
7372
+ awsRegion: z.string().optional(),
7373
+ // R2 may not include this
7374
+ eventTime: z.string(),
7375
+ // ISO 8601 timestamp
7376
+ eventName: z.string(),
7377
+ // e.g., "ObjectCreated:Put", "ObjectRemoved:Delete"
7378
+ userIdentity: z.object({
7379
+ principalId: z.string()
7380
+ }).optional(),
7381
+ requestParameters: z.object({
7382
+ sourceIPAddress: z.string()
7383
+ }).optional(),
7384
+ responseElements: z.object({
7385
+ "x-amz-request-id": z.string().optional(),
7386
+ "x-amz-id-2": z.string().optional()
7387
+ }).optional(),
7388
+ s3: z.object({
7389
+ s3SchemaVersion: z.string(),
7390
+ // "1.0"
7391
+ configurationId: z.string().optional(),
7392
+ bucket: z.object({
7393
+ name: z.string(),
7394
+ // Bucket name
7395
+ ownerIdentity: z.object({
7396
+ principalId: z.string()
7397
+ }).optional(),
7398
+ arn: z.string().optional()
7399
+ }),
7400
+ object: z.object({
7401
+ key: z.string(),
7402
+ // Object key
7403
+ size: z.number().optional(),
7404
+ // File size in bytes
7405
+ eTag: z.string().optional(),
7406
+ // Entity tag
7407
+ versionId: z.string().optional(),
7408
+ sequencer: z.string().optional()
7409
+ })
7410
+ })
7411
+ });
7412
+ var R2WebhookPayloadSchema = z.object({
7413
+ Records: z.array(R2EventRecordSchema)
7414
+ });
7415
+ var SupabaseStorageObjectSchema = z.object({
7416
+ id: z.uuid(),
7417
+ // Object UUID
7418
+ bucket_id: z.string(),
7419
+ // Bucket name
7420
+ name: z.string(),
7421
+ // Object path/key
7422
+ owner: z.uuid().optional().nullable(),
7423
+ // Owner UUID
7424
+ created_at: z.string(),
7425
+ // ISO timestamp
7426
+ updated_at: z.string().optional().nullable(),
7427
+ // ISO timestamp
7428
+ last_accessed_at: z.string().optional().nullable(),
7429
+ metadata: z.record(z.string(), z.unknown()).optional().nullable(),
7430
+ // Custom metadata
7431
+ version: z.string().optional().nullable(),
7432
+ owner_id: z.string().optional().nullable()
7433
+ });
7434
+ var SupabaseWebhookPayloadSchema = z.object({
7435
+ type: z.enum(["INSERT", "UPDATE", "DELETE"]),
7436
+ // Database event type
7437
+ table: z.literal("objects"),
7438
+ // Always 'objects' for storage
7439
+ schema: z.literal("storage"),
7440
+ // Always 'storage'
7441
+ record: SupabaseStorageObjectSchema.optional().nullable(),
7442
+ // New/updated record
7443
+ old_record: SupabaseStorageObjectSchema.optional().nullable()
7444
+ // Old record (for UPDATE/DELETE)
7445
+ });
7446
+
7447
+ export { ADAPTERS, ADAPTER_HEALTH_STATUS, ADAPTER_TYPES, ALERT_RULE_ID, ALERT_SEVERITIES, ALERT_SEVERITY, ALERT_SOURCE, ALERT_TYPES, ALL_EVENTS, API_ERROR_CODES, ATHLETE_PROFILE_ERRORS, AUDIT_OPERATION, AUTH_PROVIDER, AUTH_PROVIDER_TYPE, BASIC_PROFILE_ERRORS, BUCKET_PURPOSE, BUSINESS_MODEL, CACHE_DURATION_MS, CACHE_EVENTS, CHAIN_ID, CHANGE_TYPES, CLIENT_EVENTS, CLIENT_HINT_HEADERS, COLORS, COMMON_FIELDS, COMMON_OPERATIONS, COMMON_STORAGE_TYPES, CONFIG_EVENTS, COORDINATES, CORRELATION_TYPE, COST_OPTIMIZATION_STRATEGY, COUNTRIES, CREATE_CAMPAIGN_ERRORS, CURRENCY_CODES, CUSTOM_RULE_FIELD, ContactUsFormSchema, CorrelationIdSchema, DATABASE_ERROR_CODES, DATABASE_EVENT_TYPE, DATABASE_FIELDS, DATABASE_TABLE, DATA_SAVER_PRESETS, DB_POOL_EVENTS, DEBUGGER_CONFIG_SOURCES, DEBUG_EVENTS, DEFAULT_THRESHOLDS, DOCUMENT_TYPE, DeviceTokenSchema, ENCRYPTION_DEFAULTS, ENTITY_TYPE, ERROR_CATEGORY, ERROR_CATEGORY_TO_EMITTER_KEY, ERROR_CODES, ERROR_DEFINITIONS, ERROR_EVENTS, ERROR_EXCEPTIONS_NAMESPACES, COMMON_FIELDS as ERROR_FIELDS, ERROR_SEVERITY, ERROR_TYPE, EVALUATION_REASONS, EVENTS_CONFIG_SOURCES, EVENT_CONSTANTS, EVENT_NAMESPACES, EVENT_OPERATIONS, EVENT_PRIORITY, EVENT_PRIORITY_MAP, EVENT_PROCESSING_STATUS, EVENT_SCOPES, EVENT_SCOPES_WITH_TEMPORARY, EVENT_STATUS, EVENT_TYPE, EmailSchema, FACTORY_OPERATIONS, FAIL_OVER_STRATEGY, FEATURE_FLAG_DEFAULTS, FEATURE_FLAG_FIELD, FEATURE_FLAG_METADATA, FEATURE_FLAG_PROVIDERS, FEATURE_FLAG_RULE_FIELD, FEATURE_FLAG_TYPES, FILE_ACCESS_LEVEL, FILE_CATEGORY, FILE_EXTENSIONS, FILE_VALIDATION_ERROR, HANDLER_SCOPES, HEADER_EVENTS, HEADER_STAGES, HISTORY_TYPES, HTTP_STATUS, IDEMPOTENCY_SAFE_STATUSES, IDEMPOTENCY_STATUS, IMPACT_LEVELS, INTERNAL_STATUS_CODES, InfobipDeliveryResultSchema, InfobipDeliveryWebhookSchema, InfobipEmailStatusSchema, InfobipErrorInfoSchema, InfobipGeoLocationSchema, InfobipPriceInfoSchema, InfobipRecipientInfoSchema, InfobipTrackingEventSchema, InfobipTrackingWebhookSchema, LOAD_BALANCING_STRATEGY, LOGGER_SERVICES, LocaleSchema, MEDIA_ENTITY, MEDIA_EXTENSIONS, MEDIA_MIME_PREFIXES, MEDIA_VARIANT_TYPE, MIME_TYPES, NETWORK_CONFIDENCE_LEVELS, NETWORK_EVENTS, NETWORK_QUALITY, NODE_ENVIRONMENTS, NOTIFICATION_CATEGORIES, NOTIFICATION_CHANNELS, NOTIFICATION_ERROR_CODES, NOTIFICATION_PROVIDERS, NetworkPresetNames, NotificationCategorySchema, COMMON_OPERATIONS as OPERATIONS, ORGANIZATION_TIER, OUTPUT_FORMAT, INTERNAL_STATUS_CODES as PACKAGE_STATUS_CODES, PATH_GENERATION_STRATEGY, PATH_STRATEGY, PAYMENT_ERROR_CATEGORY, PAYMENT_ERROR_CODES, PAYMENT_EVENT_CATEGORY, PAYMENT_EVENT_ERROR_CATEGORY, PAYMENT_EVENT_TYPE, PAYMENT_METHOD, PAYMENT_PROVIDER_TYPE, PAYMENT_RECOMMENDATION_KEYS, PAYMENT_RESOLUTION_KEYS, PAYMENT_STATUS, PERFORMANCE_EVENTS, PERFORMANCE_METRIC_TYPE, PRIORITY_LEVEL, PRODUCT_TYPE, PUB_SUB_EVENT, PhoneSchema, QUEUE_OPERATIONS, QueuePrioritySchema, R2EventRecordSchema, R2WebhookPayloadSchema, REFUND_ERROR_TYPES, REFUND_NOT_ALLOWED_REASON, REGIONAL_CONFIDENCE_LEVELS, REGION_STORAGE_KEY, REGION_TO_PRESET, REGULATORY_FRAMEWORK, REPLICA_STRATEGY, REQUIREDACTIONTYPE, RETRY_STRATEGY, ROUTER_RULE_NAME, ROUTING_STRATEGY, RTT_THRESHOLDS, SECURITY_THREAT_TYPE, SIGNATURE_METHOD, SORT_DIRECTION, SPEED_THRESHOLDS, STORAGE_ADAPTER_TYPE, STORAGE_DEVICE_TYPE, STORAGE_ENVIRONMENT, STORAGE_ERROR_CODES, STORAGE_EVENT_HANDLER_MAPPING, STORAGE_EVENT_TYPE, STORAGE_EVENT_TYPE_TO_HANDLER_NAME, STORAGE_JURISDICTION, STORAGE_OPERATION, STORAGE_PLUGIN_TYPE, STORAGE_PROCESSING_STATUS, STORAGE_QUEUE_PRIORITY, STORAGE_REGULATORY_FRAMEWORK, STORAGE_RENDERER_TYPE, STORAGE_SIGNATURE_METHOD, COMMON_STORAGE_TYPES as STORAGE_TYPES, STORAGE_VARIANT_NAME, STORAGE_VISIBILITY, STORAGE_WEBHOOK_EVENT_TYPE, SYSTEM_USERS, SendGridEventSchema, SendGridWebhookSchema, SignupFormSchema, StorageMediaProcessingPayloadSchema, StorageProcessingOutputSchema, SupabaseStorageObjectSchema, SupabaseWebhookPayloadSchema, TABLES, TEMPLATE_OUTPUT_FORMAT, TRACKING_PHASES, TRANSACTION_TYPE, TemplateDataSchema, TemplateIdSchema, UNIFIED_OPERATIONS, UPDATE_STRATEGIES, UPLOAD_STATUS, USER_ROLE, USER_STATUS, USER_TYPE, UserIdSchema, VALIDATION_RANGES, WEBHOOK_ENCRYPTION_METHOD, WEBHOOK_EVENT_TYPE, WEBHOOK_EVENT_TYPE_MAPPING, WEBHOOK_VERIFICATION_REASON, athleteProfileSchema, basicProfileSchema, fanProfileSchema, formCampaignSchema, isValidConfigSource, isValidHistoryType, isValidOperation };
5354
7448
  //# sourceMappingURL=index.js.map
5355
7449
  //# sourceMappingURL=index.js.map