@zudojs/errors 0.1.1 → 1.0.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.
- package/LICENSE +21 -0
- package/README.md +29 -8
- package/dist/base/core/baseError.core.d.ts +25 -2
- package/dist/base/core/baseError.core.js +95 -23
- package/dist/base/core/errorMetadata.core.d.ts +62 -5
- package/dist/base/core/errorMetadata.core.js +292 -23
- package/dist/base/types/errorCategory.helpers.js +3 -2
- package/dist/base/types/errorCode.type.d.ts +70 -1
- package/dist/base/types/errorCode.type.js +78 -2
- package/dist/base/types/errorSeverity.type.js +3 -2
- package/dist/base/utils/baseError.utils.d.ts +18 -2
- package/dist/base/utils/baseError.utils.js +68 -17
- package/dist/domain/access/rateLimit.error.d.ts +6 -1
- package/dist/domain/access/rateLimit.error.js +7 -9
- package/dist/domain/api/apiError.base.js +2 -2
- package/dist/domain/api/apiError.lifecycle.d.ts +10 -1
- package/dist/domain/api/apiError.lifecycle.js +22 -7
- package/dist/domain/api/apiError.routing.js +4 -4
- package/dist/domain/app/domain.error.d.ts +2 -0
- package/dist/domain/app/domain.error.js +3 -1
- package/dist/domain/app/lifecycleError.types.js +2 -8
- package/dist/domain/app/moduleError.types.d.ts +3 -0
- package/dist/domain/app/moduleError.types.js +6 -2
- package/dist/domain/body/bodyParser.error.d.ts +9 -2
- package/dist/domain/body/bodyParser.error.js +20 -12
- package/dist/domain/body/httpBodyError.base.js +1 -2
- package/dist/domain/body/httpBodyError.types.js +1 -3
- package/dist/domain/body/httpFormData.error.js +2 -4
- package/dist/domain/body/multipart.error.js +2 -4
- package/dist/domain/documentation/documentationError.base.js +4 -2
- package/dist/domain/documentation/documentationError.types.js +1 -11
- package/dist/domain/documentation/index.d.ts +1 -1
- package/dist/domain/documentation/index.js +1 -1
- package/dist/domain/event/event.error.d.ts +1 -1
- package/dist/domain/event/event.error.js +1 -1
- package/dist/domain/event/eventError.base.d.ts +4 -1
- package/dist/domain/event/eventError.base.js +7 -9
- package/dist/domain/event/eventError.handler.d.ts +12 -3
- package/dist/domain/event/eventError.handler.js +21 -11
- package/dist/domain/event/eventError.lifecycle.d.ts +20 -3
- package/dist/domain/event/eventError.lifecycle.js +48 -18
- package/dist/domain/event/eventError.serialization.d.ts +10 -2
- package/dist/domain/event/eventError.serialization.js +16 -4
- package/dist/domain/message/message.error.d.ts +1 -0
- package/dist/domain/message/message.error.js +1 -0
- package/dist/domain/message/messageError.base.d.ts +4 -1
- package/dist/domain/message/messageError.base.js +7 -9
- package/dist/domain/message/messageError.handler.d.ts +12 -3
- package/dist/domain/message/messageError.handler.js +22 -12
- package/dist/domain/message/messageError.lifecycle.d.ts +5 -1
- package/dist/domain/message/messageError.lifecycle.js +15 -8
- package/dist/domain/message/messageError.serialization.d.ts +26 -0
- package/dist/domain/message/messageError.serialization.js +35 -0
- package/dist/domain/plugin/pluginError.lifecycle.js +23 -21
- package/dist/domain/plugin/pluginError.runtime.d.ts +5 -1
- package/dist/domain/plugin/pluginError.runtime.js +12 -7
- package/dist/domain/queue/queueError.base.d.ts +19 -0
- package/dist/domain/queue/queueError.base.js +24 -4
- package/dist/domain/queue/queueError.job.js +2 -0
- package/dist/domain/queue/queueError.worker.d.ts +9 -3
- package/dist/domain/queue/queueError.worker.js +14 -6
- package/dist/domain/rpc/rpcError.base.js +0 -2
- package/dist/domain/rpc/rpcError.protocol.js +0 -7
- package/dist/domain/rpc/rpcError.transport.d.ts +10 -1
- package/dist/domain/rpc/rpcError.transport.js +19 -9
- package/dist/domain/scheduler/schedulerError.base.d.ts +17 -3
- package/dist/domain/scheduler/schedulerError.base.js +26 -15
- package/dist/domain/scheduler/schedulerError.execution.d.ts +7 -6
- package/dist/domain/scheduler/schedulerError.execution.js +22 -18
- package/dist/domain/scheduler/schedulerError.schedule.d.ts +15 -5
- package/dist/domain/scheduler/schedulerError.schedule.js +32 -14
- package/dist/domain/schema/index.d.ts +2 -1
- package/dist/domain/schema/index.js +1 -1
- package/dist/domain/schema/schemaError.base.d.ts +31 -5
- package/dist/domain/schema/schemaError.base.js +34 -6
- package/dist/domain/schema/schemaError.types.js +12 -5
- package/dist/domain/serialization/serializationError.base.d.ts +8 -2
- package/dist/domain/serialization/serializationError.base.js +38 -8
- package/dist/domain/serialization/serializationError.types.d.ts +22 -3
- package/dist/domain/serialization/serializationError.types.js +30 -5
- package/dist/domain/shared/domainError.helpers.d.ts +60 -0
- package/dist/domain/shared/domainError.helpers.js +191 -0
- package/dist/domain/state/conflict.error.d.ts +1 -1
- package/dist/domain/state/conflict.error.js +2 -2
- package/dist/domain/state/validationError.base.d.ts +8 -1
- package/dist/domain/state/validationError.base.js +11 -2
- package/dist/infrastructure/adapter/adapterError.base.js +6 -6
- package/dist/infrastructure/adapter/adapterError.lifecycle.js +0 -3
- package/dist/infrastructure/adapter/adapterError.operation.js +0 -5
- package/dist/infrastructure/cache/cacheError.base.js +1 -1
- package/dist/infrastructure/container/containerError.registration.js +6 -4
- package/dist/infrastructure/network/httpAdapter.error.js +4 -2
- package/dist/infrastructure/network/httpClientError.advanced.js +10 -18
- package/dist/infrastructure/network/httpClientError.base.d.ts +11 -0
- package/dist/infrastructure/network/httpClientError.base.js +47 -7
- package/dist/infrastructure/network/httpClientError.common.d.ts +14 -0
- package/dist/infrastructure/network/httpClientError.common.js +21 -31
- package/dist/infrastructure/network/httpClientError.specialized.js +5 -8
- package/dist/infrastructure/network/httpClientError.types.d.ts +23 -2
- package/dist/infrastructure/network/httpClientError.types.js +55 -42
- package/dist/infrastructure/network/httpResponse.error.js +0 -3
- package/dist/infrastructure/network/httpRouterError.base.js +0 -1
- package/dist/infrastructure/network/httpRouterError.types.d.ts +5 -3
- package/dist/infrastructure/network/httpRouterError.types.js +6 -7
- package/dist/infrastructure/network/httpServerError.error.js +6 -10
- package/dist/infrastructure/network/httpServerLifecycleError.base.js +0 -1
- package/dist/infrastructure/network/httpServerLifecycleError.types.js +0 -3
- package/dist/infrastructure/network/httpStream.error.js +0 -1
- package/dist/infrastructure/network/network.error.d.ts +1 -1
- package/dist/infrastructure/network/network.error.js +1 -1
- package/dist/infrastructure/network/networkError.factory.d.ts +9 -2
- package/dist/infrastructure/network/networkError.factory.js +9 -2
- package/dist/infrastructure/network/routePattern.error.d.ts +7 -6
- package/dist/infrastructure/network/routePattern.error.js +16 -8
- package/dist/infrastructure/network/timeoutError.base.d.ts +7 -0
- package/dist/infrastructure/network/timeoutError.base.js +12 -1
- package/dist/infrastructure/network/timeoutError.factory.d.ts +14 -0
- package/dist/infrastructure/network/timeoutError.factory.js +25 -17
- package/dist/infrastructure/service/externalService.error.d.ts +1 -1
- package/dist/infrastructure/service/externalService.error.js +1 -1
- package/dist/infrastructure/service/externalServiceError.base.d.ts +8 -0
- package/dist/infrastructure/service/externalServiceError.base.js +8 -11
- package/dist/infrastructure/service/externalServiceError.factory.d.ts +3 -1
- package/dist/infrastructure/service/externalServiceError.factory.js +3 -1
- package/dist/infrastructure/storage/databaseError.factory.js +1 -1
- package/dist/infrastructure/storage/storageError.factory.js +2 -2
- package/dist/system/cryptoError.factory.js +5 -2
- package/dist/system/runtimeError.base.js +1 -1
- package/dist/utils/errorHandler.core.d.ts +42 -8
- package/dist/utils/errorHandler.core.js +116 -63
- package/dist/utils/errorHandler.factory.d.ts +1 -1
- package/dist/utils/errorHandler.factory.js +2 -2
- package/dist/utils/errorHandler.types.d.ts +37 -1
- package/dist/utils/errorMapper.core.d.ts +1 -1
- package/dist/utils/errorMapper.core.js +1 -1
- package/dist/utils/errorMapper.mappers.d.ts +27 -6
- package/dist/utils/errorMapper.mappers.js +57 -49
- package/dist/utils/errorSerializer.core.d.ts +22 -3
- package/dist/utils/errorSerializer.core.js +144 -39
- package/dist/utils/errorSerializer.factory.d.ts +1 -1
- package/dist/utils/errorSerializer.factory.js +2 -26
- package/dist/utils/errorSerializer.types.d.ts +14 -4
- package/dist/utils/errorUtils.extraction.js +3 -2
- package/dist/utils/errorUtils.transform.d.ts +1 -1
- package/dist/utils/errorUtils.transform.js +2 -26
- package/dist/utils/errorUtils.typeCheck.js +7 -7
- package/package.json +25 -10
- package/dist/.tsbuildinfo +0 -1
- package/dist/base/core/baseError.core.d.ts.map +0 -1
- package/dist/base/core/baseError.core.js.map +0 -1
- package/dist/base/core/errorMetadata.core.d.ts.map +0 -1
- package/dist/base/core/errorMetadata.core.js.map +0 -1
- package/dist/base/core/errorMetadata.type.d.ts.map +0 -1
- package/dist/base/core/errorMetadata.type.js.map +0 -1
- package/dist/base/core/index.d.ts.map +0 -1
- package/dist/base/core/index.js.map +0 -1
- package/dist/base/index.d.ts.map +0 -1
- package/dist/base/index.js.map +0 -1
- package/dist/base/types/baseError.type.d.ts.map +0 -1
- package/dist/base/types/baseError.type.js.map +0 -1
- package/dist/base/types/errorCategory.enum.d.ts.map +0 -1
- package/dist/base/types/errorCategory.enum.js.map +0 -1
- package/dist/base/types/errorCategory.helpers.d.ts.map +0 -1
- package/dist/base/types/errorCategory.helpers.js.map +0 -1
- package/dist/base/types/errorCategory.type.d.ts.map +0 -1
- package/dist/base/types/errorCategory.type.js.map +0 -1
- package/dist/base/types/errorCode.type.d.ts.map +0 -1
- package/dist/base/types/errorCode.type.js.map +0 -1
- package/dist/base/types/errorSeverity.type.d.ts.map +0 -1
- package/dist/base/types/errorSeverity.type.js.map +0 -1
- package/dist/base/types/index.d.ts.map +0 -1
- package/dist/base/types/index.js.map +0 -1
- package/dist/base/utils/baseError.utils.d.ts.map +0 -1
- package/dist/base/utils/baseError.utils.js.map +0 -1
- package/dist/base/utils/index.d.ts.map +0 -1
- package/dist/base/utils/index.js.map +0 -1
- package/dist/domain/access/authentication.error.d.ts.map +0 -1
- package/dist/domain/access/authentication.error.js.map +0 -1
- package/dist/domain/access/authorization.error.d.ts.map +0 -1
- package/dist/domain/access/authorization.error.js.map +0 -1
- package/dist/domain/access/index.d.ts.map +0 -1
- package/dist/domain/access/index.js.map +0 -1
- package/dist/domain/access/rateLimit.error.d.ts.map +0 -1
- package/dist/domain/access/rateLimit.error.js.map +0 -1
- package/dist/domain/api/api.error.d.ts.map +0 -1
- package/dist/domain/api/api.error.js.map +0 -1
- package/dist/domain/api/apiError.base.d.ts.map +0 -1
- package/dist/domain/api/apiError.base.js.map +0 -1
- package/dist/domain/api/apiError.lifecycle.d.ts.map +0 -1
- package/dist/domain/api/apiError.lifecycle.js.map +0 -1
- package/dist/domain/api/apiError.routing.d.ts.map +0 -1
- package/dist/domain/api/apiError.routing.js.map +0 -1
- package/dist/domain/api/index.d.ts.map +0 -1
- package/dist/domain/api/index.js.map +0 -1
- package/dist/domain/app/application.error.d.ts.map +0 -1
- package/dist/domain/app/application.error.js.map +0 -1
- package/dist/domain/app/configuration.error.d.ts.map +0 -1
- package/dist/domain/app/configuration.error.js.map +0 -1
- package/dist/domain/app/domain.error.d.ts.map +0 -1
- package/dist/domain/app/domain.error.js.map +0 -1
- package/dist/domain/app/index.d.ts.map +0 -1
- package/dist/domain/app/index.js.map +0 -1
- package/dist/domain/app/lifecycle.error.d.ts.map +0 -1
- package/dist/domain/app/lifecycle.error.js.map +0 -1
- package/dist/domain/app/lifecycleError.base.d.ts.map +0 -1
- package/dist/domain/app/lifecycleError.base.js.map +0 -1
- package/dist/domain/app/lifecycleError.types.d.ts.map +0 -1
- package/dist/domain/app/lifecycleError.types.js.map +0 -1
- package/dist/domain/app/module.error.d.ts.map +0 -1
- package/dist/domain/app/module.error.js.map +0 -1
- package/dist/domain/app/moduleError.base.d.ts.map +0 -1
- package/dist/domain/app/moduleError.base.js.map +0 -1
- package/dist/domain/app/moduleError.types.d.ts.map +0 -1
- package/dist/domain/app/moduleError.types.js.map +0 -1
- package/dist/domain/body/bodyParser.error.d.ts.map +0 -1
- package/dist/domain/body/bodyParser.error.js.map +0 -1
- package/dist/domain/body/httpBody.error.d.ts.map +0 -1
- package/dist/domain/body/httpBody.error.js.map +0 -1
- package/dist/domain/body/httpBodyError.base.d.ts.map +0 -1
- package/dist/domain/body/httpBodyError.base.js.map +0 -1
- package/dist/domain/body/httpBodyError.types.d.ts.map +0 -1
- package/dist/domain/body/httpBodyError.types.js.map +0 -1
- package/dist/domain/body/httpFormData.error.d.ts.map +0 -1
- package/dist/domain/body/httpFormData.error.js.map +0 -1
- package/dist/domain/body/index.d.ts.map +0 -1
- package/dist/domain/body/index.js.map +0 -1
- package/dist/domain/body/multipart.error.d.ts.map +0 -1
- package/dist/domain/body/multipart.error.js.map +0 -1
- package/dist/domain/documentation/documentation.error.d.ts.map +0 -1
- package/dist/domain/documentation/documentation.error.js.map +0 -1
- package/dist/domain/documentation/documentationError.base.d.ts.map +0 -1
- package/dist/domain/documentation/documentationError.base.js.map +0 -1
- package/dist/domain/documentation/documentationError.types.d.ts.map +0 -1
- package/dist/domain/documentation/documentationError.types.js.map +0 -1
- package/dist/domain/documentation/index.d.ts.map +0 -1
- package/dist/domain/documentation/index.js.map +0 -1
- package/dist/domain/event/event.error.d.ts.map +0 -1
- package/dist/domain/event/event.error.js.map +0 -1
- package/dist/domain/event/eventError.base.d.ts.map +0 -1
- package/dist/domain/event/eventError.base.js.map +0 -1
- package/dist/domain/event/eventError.handler.d.ts.map +0 -1
- package/dist/domain/event/eventError.handler.js.map +0 -1
- package/dist/domain/event/eventError.lifecycle.d.ts.map +0 -1
- package/dist/domain/event/eventError.lifecycle.js.map +0 -1
- package/dist/domain/event/eventError.serialization.d.ts.map +0 -1
- package/dist/domain/event/eventError.serialization.js.map +0 -1
- package/dist/domain/event/index.d.ts.map +0 -1
- package/dist/domain/event/index.js.map +0 -1
- package/dist/domain/index.d.ts.map +0 -1
- package/dist/domain/index.js.map +0 -1
- package/dist/domain/message/index.d.ts.map +0 -1
- package/dist/domain/message/index.js.map +0 -1
- package/dist/domain/message/message.error.d.ts.map +0 -1
- package/dist/domain/message/message.error.js.map +0 -1
- package/dist/domain/message/messageError.base.d.ts.map +0 -1
- package/dist/domain/message/messageError.base.js.map +0 -1
- package/dist/domain/message/messageError.handler.d.ts.map +0 -1
- package/dist/domain/message/messageError.handler.js.map +0 -1
- package/dist/domain/message/messageError.lifecycle.d.ts.map +0 -1
- package/dist/domain/message/messageError.lifecycle.js.map +0 -1
- package/dist/domain/message/messageError.validation.d.ts.map +0 -1
- package/dist/domain/message/messageError.validation.js.map +0 -1
- package/dist/domain/plugin/index.d.ts.map +0 -1
- package/dist/domain/plugin/index.js.map +0 -1
- package/dist/domain/plugin/plugin.error.d.ts.map +0 -1
- package/dist/domain/plugin/plugin.error.js.map +0 -1
- package/dist/domain/plugin/pluginError.base.d.ts.map +0 -1
- package/dist/domain/plugin/pluginError.base.js.map +0 -1
- package/dist/domain/plugin/pluginError.lifecycle.d.ts.map +0 -1
- package/dist/domain/plugin/pluginError.lifecycle.js.map +0 -1
- package/dist/domain/plugin/pluginError.runtime.d.ts.map +0 -1
- package/dist/domain/plugin/pluginError.runtime.js.map +0 -1
- package/dist/domain/queue/index.d.ts.map +0 -1
- package/dist/domain/queue/index.js.map +0 -1
- package/dist/domain/queue/queue.error.d.ts.map +0 -1
- package/dist/domain/queue/queue.error.js.map +0 -1
- package/dist/domain/queue/queueError.base.d.ts.map +0 -1
- package/dist/domain/queue/queueError.base.js.map +0 -1
- package/dist/domain/queue/queueError.job.d.ts.map +0 -1
- package/dist/domain/queue/queueError.job.js.map +0 -1
- package/dist/domain/queue/queueError.queue.d.ts.map +0 -1
- package/dist/domain/queue/queueError.queue.js.map +0 -1
- package/dist/domain/queue/queueError.worker.d.ts.map +0 -1
- package/dist/domain/queue/queueError.worker.js.map +0 -1
- package/dist/domain/rpc/index.d.ts.map +0 -1
- package/dist/domain/rpc/index.js.map +0 -1
- package/dist/domain/rpc/rpc.error.d.ts.map +0 -1
- package/dist/domain/rpc/rpc.error.js.map +0 -1
- package/dist/domain/rpc/rpcError.base.d.ts.map +0 -1
- package/dist/domain/rpc/rpcError.base.js.map +0 -1
- package/dist/domain/rpc/rpcError.protocol.d.ts.map +0 -1
- package/dist/domain/rpc/rpcError.protocol.js.map +0 -1
- package/dist/domain/rpc/rpcError.transport.d.ts.map +0 -1
- package/dist/domain/rpc/rpcError.transport.js.map +0 -1
- package/dist/domain/scheduler/index.d.ts.map +0 -1
- package/dist/domain/scheduler/index.js.map +0 -1
- package/dist/domain/scheduler/scheduler.error.d.ts.map +0 -1
- package/dist/domain/scheduler/scheduler.error.js.map +0 -1
- package/dist/domain/scheduler/schedulerError.base.d.ts.map +0 -1
- package/dist/domain/scheduler/schedulerError.base.js.map +0 -1
- package/dist/domain/scheduler/schedulerError.execution.d.ts.map +0 -1
- package/dist/domain/scheduler/schedulerError.execution.js.map +0 -1
- package/dist/domain/scheduler/schedulerError.schedule.d.ts.map +0 -1
- package/dist/domain/scheduler/schedulerError.schedule.js.map +0 -1
- package/dist/domain/schema/index.d.ts.map +0 -1
- package/dist/domain/schema/index.js.map +0 -1
- package/dist/domain/schema/schema.error.d.ts.map +0 -1
- package/dist/domain/schema/schema.error.js.map +0 -1
- package/dist/domain/schema/schemaError.base.d.ts.map +0 -1
- package/dist/domain/schema/schemaError.base.js.map +0 -1
- package/dist/domain/schema/schemaError.types.d.ts.map +0 -1
- package/dist/domain/schema/schemaError.types.js.map +0 -1
- package/dist/domain/serialization/index.d.ts.map +0 -1
- package/dist/domain/serialization/index.js.map +0 -1
- package/dist/domain/serialization/serialization.error.d.ts.map +0 -1
- package/dist/domain/serialization/serialization.error.js.map +0 -1
- package/dist/domain/serialization/serializationError.base.d.ts.map +0 -1
- package/dist/domain/serialization/serializationError.base.js.map +0 -1
- package/dist/domain/serialization/serializationError.types.d.ts.map +0 -1
- package/dist/domain/serialization/serializationError.types.js.map +0 -1
- package/dist/domain/state/conflict.error.d.ts.map +0 -1
- package/dist/domain/state/conflict.error.js.map +0 -1
- package/dist/domain/state/index.d.ts.map +0 -1
- package/dist/domain/state/index.js.map +0 -1
- package/dist/domain/state/notFound.error.d.ts.map +0 -1
- package/dist/domain/state/notFound.error.js.map +0 -1
- package/dist/domain/state/validation.error.d.ts.map +0 -1
- package/dist/domain/state/validation.error.js.map +0 -1
- package/dist/domain/state/validationError.base.d.ts.map +0 -1
- package/dist/domain/state/validationError.base.js.map +0 -1
- package/dist/domain/state/validationError.helpers.d.ts.map +0 -1
- package/dist/domain/state/validationError.helpers.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/infrastructure/adapter/adapter.error.d.ts.map +0 -1
- package/dist/infrastructure/adapter/adapter.error.js.map +0 -1
- package/dist/infrastructure/adapter/adapterError.base.d.ts.map +0 -1
- package/dist/infrastructure/adapter/adapterError.base.js.map +0 -1
- package/dist/infrastructure/adapter/adapterError.lifecycle.d.ts.map +0 -1
- package/dist/infrastructure/adapter/adapterError.lifecycle.js.map +0 -1
- package/dist/infrastructure/adapter/adapterError.operation.d.ts.map +0 -1
- package/dist/infrastructure/adapter/adapterError.operation.js.map +0 -1
- package/dist/infrastructure/adapter/index.d.ts.map +0 -1
- package/dist/infrastructure/adapter/index.js.map +0 -1
- package/dist/infrastructure/cache/cache.error.d.ts.map +0 -1
- package/dist/infrastructure/cache/cache.error.js.map +0 -1
- package/dist/infrastructure/cache/cacheError.base.d.ts.map +0 -1
- package/dist/infrastructure/cache/cacheError.base.js.map +0 -1
- package/dist/infrastructure/cache/cacheError.factory.d.ts.map +0 -1
- package/dist/infrastructure/cache/cacheError.factory.js.map +0 -1
- package/dist/infrastructure/cache/index.d.ts.map +0 -1
- package/dist/infrastructure/cache/index.js.map +0 -1
- package/dist/infrastructure/container/container.error.d.ts.map +0 -1
- package/dist/infrastructure/container/container.error.js.map +0 -1
- package/dist/infrastructure/container/containerError.base.d.ts.map +0 -1
- package/dist/infrastructure/container/containerError.base.js.map +0 -1
- package/dist/infrastructure/container/containerError.registration.d.ts.map +0 -1
- package/dist/infrastructure/container/containerError.registration.js.map +0 -1
- package/dist/infrastructure/container/index.d.ts.map +0 -1
- package/dist/infrastructure/container/index.js.map +0 -1
- package/dist/infrastructure/index.d.ts.map +0 -1
- package/dist/infrastructure/index.js.map +0 -1
- package/dist/infrastructure/middleware/index.d.ts.map +0 -1
- package/dist/infrastructure/middleware/index.js.map +0 -1
- package/dist/infrastructure/middleware/middleware.error.d.ts.map +0 -1
- package/dist/infrastructure/middleware/middleware.error.js.map +0 -1
- package/dist/infrastructure/network/http.error.d.ts.map +0 -1
- package/dist/infrastructure/network/http.error.js.map +0 -1
- package/dist/infrastructure/network/httpAdapter.error.d.ts.map +0 -1
- package/dist/infrastructure/network/httpAdapter.error.js.map +0 -1
- package/dist/infrastructure/network/httpClient.errors.d.ts.map +0 -1
- package/dist/infrastructure/network/httpClient.errors.js.map +0 -1
- package/dist/infrastructure/network/httpClientError.advanced.d.ts.map +0 -1
- package/dist/infrastructure/network/httpClientError.advanced.js.map +0 -1
- package/dist/infrastructure/network/httpClientError.base.d.ts.map +0 -1
- package/dist/infrastructure/network/httpClientError.base.js.map +0 -1
- package/dist/infrastructure/network/httpClientError.common.d.ts.map +0 -1
- package/dist/infrastructure/network/httpClientError.common.js.map +0 -1
- package/dist/infrastructure/network/httpClientError.error.d.ts.map +0 -1
- package/dist/infrastructure/network/httpClientError.error.js.map +0 -1
- package/dist/infrastructure/network/httpClientError.options.d.ts.map +0 -1
- package/dist/infrastructure/network/httpClientError.options.js.map +0 -1
- package/dist/infrastructure/network/httpClientError.specialized.d.ts.map +0 -1
- package/dist/infrastructure/network/httpClientError.specialized.js.map +0 -1
- package/dist/infrastructure/network/httpClientError.types.d.ts.map +0 -1
- package/dist/infrastructure/network/httpClientError.types.js.map +0 -1
- package/dist/infrastructure/network/httpError.base.d.ts.map +0 -1
- package/dist/infrastructure/network/httpError.base.js.map +0 -1
- package/dist/infrastructure/network/httpError.helpers.d.ts.map +0 -1
- package/dist/infrastructure/network/httpError.helpers.js.map +0 -1
- package/dist/infrastructure/network/httpResponse.error.d.ts.map +0 -1
- package/dist/infrastructure/network/httpResponse.error.js.map +0 -1
- package/dist/infrastructure/network/httpRouter.error.d.ts.map +0 -1
- package/dist/infrastructure/network/httpRouter.error.js.map +0 -1
- package/dist/infrastructure/network/httpRouterError.base.d.ts.map +0 -1
- package/dist/infrastructure/network/httpRouterError.base.js.map +0 -1
- package/dist/infrastructure/network/httpRouterError.types.d.ts.map +0 -1
- package/dist/infrastructure/network/httpRouterError.types.js.map +0 -1
- package/dist/infrastructure/network/httpServerError.error.d.ts.map +0 -1
- package/dist/infrastructure/network/httpServerError.error.js.map +0 -1
- package/dist/infrastructure/network/httpServerLifecycle.error.d.ts.map +0 -1
- package/dist/infrastructure/network/httpServerLifecycle.error.js.map +0 -1
- package/dist/infrastructure/network/httpServerLifecycleError.base.d.ts.map +0 -1
- package/dist/infrastructure/network/httpServerLifecycleError.base.js.map +0 -1
- package/dist/infrastructure/network/httpServerLifecycleError.types.d.ts.map +0 -1
- package/dist/infrastructure/network/httpServerLifecycleError.types.js.map +0 -1
- package/dist/infrastructure/network/httpStream.error.d.ts.map +0 -1
- package/dist/infrastructure/network/httpStream.error.js.map +0 -1
- package/dist/infrastructure/network/index.d.ts.map +0 -1
- package/dist/infrastructure/network/index.js.map +0 -1
- package/dist/infrastructure/network/network.error.d.ts.map +0 -1
- package/dist/infrastructure/network/network.error.js.map +0 -1
- package/dist/infrastructure/network/networkError.base.d.ts.map +0 -1
- package/dist/infrastructure/network/networkError.base.js.map +0 -1
- package/dist/infrastructure/network/networkError.factory.d.ts.map +0 -1
- package/dist/infrastructure/network/networkError.factory.js.map +0 -1
- package/dist/infrastructure/network/routePattern.error.d.ts.map +0 -1
- package/dist/infrastructure/network/routePattern.error.js.map +0 -1
- package/dist/infrastructure/network/timeout.error.d.ts.map +0 -1
- package/dist/infrastructure/network/timeout.error.js.map +0 -1
- package/dist/infrastructure/network/timeoutError.base.d.ts.map +0 -1
- package/dist/infrastructure/network/timeoutError.base.js.map +0 -1
- package/dist/infrastructure/network/timeoutError.factory.d.ts.map +0 -1
- package/dist/infrastructure/network/timeoutError.factory.js.map +0 -1
- package/dist/infrastructure/service/externalService.error.d.ts.map +0 -1
- package/dist/infrastructure/service/externalService.error.js.map +0 -1
- package/dist/infrastructure/service/externalServiceError.base.d.ts.map +0 -1
- package/dist/infrastructure/service/externalServiceError.base.js.map +0 -1
- package/dist/infrastructure/service/externalServiceError.factory.d.ts.map +0 -1
- package/dist/infrastructure/service/externalServiceError.factory.js.map +0 -1
- package/dist/infrastructure/service/index.d.ts.map +0 -1
- package/dist/infrastructure/service/index.js.map +0 -1
- package/dist/infrastructure/service/service.error.d.ts.map +0 -1
- package/dist/infrastructure/service/service.error.js.map +0 -1
- package/dist/infrastructure/service/serviceError.base.d.ts.map +0 -1
- package/dist/infrastructure/service/serviceError.base.js.map +0 -1
- package/dist/infrastructure/service/serviceError.factory.d.ts.map +0 -1
- package/dist/infrastructure/service/serviceError.factory.js.map +0 -1
- package/dist/infrastructure/storage/database.error.d.ts.map +0 -1
- package/dist/infrastructure/storage/database.error.js.map +0 -1
- package/dist/infrastructure/storage/databaseError.base.d.ts.map +0 -1
- package/dist/infrastructure/storage/databaseError.base.js.map +0 -1
- package/dist/infrastructure/storage/databaseError.factory.d.ts.map +0 -1
- package/dist/infrastructure/storage/databaseError.factory.js.map +0 -1
- package/dist/infrastructure/storage/index.d.ts.map +0 -1
- package/dist/infrastructure/storage/index.js.map +0 -1
- package/dist/infrastructure/storage/storage.error.d.ts.map +0 -1
- package/dist/infrastructure/storage/storage.error.js.map +0 -1
- package/dist/infrastructure/storage/storageError.base.d.ts.map +0 -1
- package/dist/infrastructure/storage/storageError.base.js.map +0 -1
- package/dist/infrastructure/storage/storageError.factory.d.ts.map +0 -1
- package/dist/infrastructure/storage/storageError.factory.js.map +0 -1
- package/dist/system/crypto.error.d.ts.map +0 -1
- package/dist/system/crypto.error.js.map +0 -1
- package/dist/system/cryptoError.base.d.ts.map +0 -1
- package/dist/system/cryptoError.base.js.map +0 -1
- package/dist/system/cryptoError.factory.d.ts.map +0 -1
- package/dist/system/cryptoError.factory.js.map +0 -1
- package/dist/system/index.d.ts.map +0 -1
- package/dist/system/index.js.map +0 -1
- package/dist/system/logging/index.d.ts.map +0 -1
- package/dist/system/logging/index.js.map +0 -1
- package/dist/system/logging/logging.error.d.ts.map +0 -1
- package/dist/system/logging/logging.error.js.map +0 -1
- package/dist/system/runtime.error.d.ts.map +0 -1
- package/dist/system/runtime.error.js.map +0 -1
- package/dist/system/runtimeError.base.d.ts.map +0 -1
- package/dist/system/runtimeError.base.js.map +0 -1
- package/dist/system/runtimeError.types.d.ts.map +0 -1
- package/dist/system/runtimeError.types.js.map +0 -1
- package/dist/system/system.error.d.ts.map +0 -1
- package/dist/system/system.error.js.map +0 -1
- package/dist/system/systemError.base.d.ts.map +0 -1
- package/dist/system/systemError.base.js.map +0 -1
- package/dist/system/systemError.factory.d.ts.map +0 -1
- package/dist/system/systemError.factory.js.map +0 -1
- package/dist/utils/errorHandler.core.d.ts.map +0 -1
- package/dist/utils/errorHandler.core.js.map +0 -1
- package/dist/utils/errorHandler.factory.d.ts.map +0 -1
- package/dist/utils/errorHandler.factory.js.map +0 -1
- package/dist/utils/errorHandler.types.d.ts.map +0 -1
- package/dist/utils/errorHandler.types.js.map +0 -1
- package/dist/utils/errorMapper.core.d.ts.map +0 -1
- package/dist/utils/errorMapper.core.js.map +0 -1
- package/dist/utils/errorMapper.mappers.d.ts.map +0 -1
- package/dist/utils/errorMapper.mappers.js.map +0 -1
- package/dist/utils/errorMapper.registry.d.ts.map +0 -1
- package/dist/utils/errorMapper.registry.js.map +0 -1
- package/dist/utils/errorMapper.types.d.ts.map +0 -1
- package/dist/utils/errorMapper.types.js.map +0 -1
- package/dist/utils/errorSerializer.core.d.ts.map +0 -1
- package/dist/utils/errorSerializer.core.js.map +0 -1
- package/dist/utils/errorSerializer.factory.d.ts.map +0 -1
- package/dist/utils/errorSerializer.factory.js.map +0 -1
- package/dist/utils/errorSerializer.types.d.ts.map +0 -1
- package/dist/utils/errorSerializer.types.js.map +0 -1
- package/dist/utils/errorUtils.extraction.d.ts.map +0 -1
- package/dist/utils/errorUtils.extraction.js.map +0 -1
- package/dist/utils/errorUtils.helper.d.ts.map +0 -1
- package/dist/utils/errorUtils.helper.js.map +0 -1
- package/dist/utils/errorUtils.transform.d.ts.map +0 -1
- package/dist/utils/errorUtils.transform.js.map +0 -1
- package/dist/utils/errorUtils.typeCheck.d.ts.map +0 -1
- package/dist/utils/errorUtils.typeCheck.js.map +0 -1
- package/dist/utils/index.d.ts.map +0 -1
- package/dist/utils/index.js.map +0 -1
|
@@ -1,8 +1,133 @@
|
|
|
1
|
-
/**
|
|
1
|
+
/** Maximum nesting depth accepted for metadata values. */
|
|
2
|
+
export const MAX_METADATA_DEPTH = 32;
|
|
3
|
+
/** Keys that are never copied into metadata (prototype pollution vectors). */
|
|
4
|
+
const FORBIDDEN_METADATA_KEYS = new Set([
|
|
5
|
+
"__proto__",
|
|
6
|
+
"constructor",
|
|
7
|
+
"prototype",
|
|
8
|
+
]);
|
|
9
|
+
/**
|
|
10
|
+
* Default pattern used to recognise metadata keys that carry secrets.
|
|
11
|
+
*
|
|
12
|
+
* Matching is case-insensitive and applies to the whole key, so
|
|
13
|
+
* `Authorization`, `x-api-key`, `headers.cookie` and `refreshToken` all match.
|
|
14
|
+
*/
|
|
15
|
+
export const SENSITIVE_METADATA_KEY_PATTERN = /pass(word|code|phrase|wd)?|secret|token|jwt|bearer|private[_-]?key|api[_-]?key|x-api-key|auth(orization|entication)?|cookie|session|credential|client[_-]?secret|ssn|social[_-]?security|card[_-]?number|cvv|cvc|pin\b/i;
|
|
16
|
+
/** Placeholder written in place of redacted values. */
|
|
17
|
+
export const REDACTED_METADATA_VALUE = "[REDACTED]";
|
|
18
|
+
/** Returns whether a metadata key should never be accepted. */
|
|
19
|
+
export function isForbiddenMetadataKey(key) {
|
|
20
|
+
return FORBIDDEN_METADATA_KEYS.has(key);
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Returns a copy of `pattern` without the `g` and `y` flags.
|
|
24
|
+
*
|
|
25
|
+
* Those flags make `RegExp.prototype.test` advance `lastIndex`, so a shared
|
|
26
|
+
* sensitive-key pattern would redact a key on one call and let the same key
|
|
27
|
+
* through on the next. Every key check in this module goes through here.
|
|
28
|
+
*/
|
|
29
|
+
function statelessPattern(pattern) {
|
|
30
|
+
if (!pattern.global && !pattern.sticky)
|
|
31
|
+
return pattern;
|
|
32
|
+
return new RegExp(pattern.source, pattern.flags.replace(/[gy]/g, ""));
|
|
33
|
+
}
|
|
34
|
+
/** Returns whether a metadata key looks like it carries a secret. */
|
|
35
|
+
export function isSensitiveMetadataKey(key, pattern = SENSITIVE_METADATA_KEY_PATTERN) {
|
|
36
|
+
return statelessPattern(pattern).test(key);
|
|
37
|
+
}
|
|
38
|
+
/** Returns whether a value is a plain object (Object.prototype or null prototype). */
|
|
39
|
+
function isPlainObject(value) {
|
|
40
|
+
if (value === null || typeof value !== "object")
|
|
41
|
+
return false;
|
|
42
|
+
const proto = Object.getPrototypeOf(value);
|
|
43
|
+
return proto === Object.prototype || proto === null;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Deep-clones and deep-freezes a metadata value.
|
|
47
|
+
*
|
|
48
|
+
* - Skips forbidden keys (`__proto__`, `constructor`, `prototype`).
|
|
49
|
+
* - Replaces cyclic references with `"[Circular]"`.
|
|
50
|
+
* - Truncates values deeper than `MAX_METADATA_DEPTH` with `"[MaxDepth]"`.
|
|
51
|
+
* - Drops `undefined` entries.
|
|
52
|
+
*/
|
|
53
|
+
function cloneValue(value, seen, depth) {
|
|
54
|
+
if (value === undefined)
|
|
55
|
+
return undefined;
|
|
56
|
+
if (value === null)
|
|
57
|
+
return null;
|
|
58
|
+
if (typeof value === "string" || typeof value === "boolean")
|
|
59
|
+
return value;
|
|
60
|
+
if (typeof value === "number")
|
|
61
|
+
return Number.isFinite(value) ? value : null;
|
|
62
|
+
if (typeof value === "bigint")
|
|
63
|
+
return value.toString();
|
|
64
|
+
if (typeof value !== "object")
|
|
65
|
+
return String(value);
|
|
66
|
+
if (depth > MAX_METADATA_DEPTH)
|
|
67
|
+
return "[MaxDepth]";
|
|
68
|
+
if (seen.has(value))
|
|
69
|
+
return "[Circular]";
|
|
70
|
+
if (value instanceof Date)
|
|
71
|
+
return value.toISOString();
|
|
72
|
+
seen.add(value);
|
|
73
|
+
try {
|
|
74
|
+
if (Array.isArray(value)) {
|
|
75
|
+
const result = [];
|
|
76
|
+
for (const entry of value) {
|
|
77
|
+
const cloned = cloneValue(entry, seen, depth + 1);
|
|
78
|
+
result.push(cloned === undefined ? null : cloned);
|
|
79
|
+
}
|
|
80
|
+
return Object.freeze(result);
|
|
81
|
+
}
|
|
82
|
+
if (value instanceof Map) {
|
|
83
|
+
const result = {};
|
|
84
|
+
for (const [key, entry] of value) {
|
|
85
|
+
const stringKey = String(key);
|
|
86
|
+
if (isForbiddenMetadataKey(stringKey))
|
|
87
|
+
continue;
|
|
88
|
+
const cloned = cloneValue(entry, seen, depth + 1);
|
|
89
|
+
if (cloned !== undefined)
|
|
90
|
+
result[stringKey] = cloned;
|
|
91
|
+
}
|
|
92
|
+
return Object.freeze(result);
|
|
93
|
+
}
|
|
94
|
+
if (value instanceof Set) {
|
|
95
|
+
return cloneValue([...value], seen, depth);
|
|
96
|
+
}
|
|
97
|
+
if (value instanceof Error) {
|
|
98
|
+
return Object.freeze({ name: value.name, message: value.message });
|
|
99
|
+
}
|
|
100
|
+
const result = {};
|
|
101
|
+
for (const key of Object.keys(value)) {
|
|
102
|
+
if (isForbiddenMetadataKey(key))
|
|
103
|
+
continue;
|
|
104
|
+
const cloned = cloneValue(value[key], seen, depth + 1);
|
|
105
|
+
if (cloned !== undefined)
|
|
106
|
+
result[key] = cloned;
|
|
107
|
+
}
|
|
108
|
+
return Object.freeze(result);
|
|
109
|
+
}
|
|
110
|
+
finally {
|
|
111
|
+
seen.delete(value);
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
/** Clones an entire metadata object. */
|
|
115
|
+
function cloneMetadata(metadata) {
|
|
116
|
+
const cloned = cloneValue(metadata, new WeakSet(), 0);
|
|
117
|
+
if (cloned === undefined || cloned === null || typeof cloned !== "object")
|
|
118
|
+
return {};
|
|
119
|
+
return { ...cloned };
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Creates an immutable metadata object.
|
|
123
|
+
*
|
|
124
|
+
* The result is a deep-frozen copy: later mutation of the caller's object
|
|
125
|
+
* does not affect the metadata, and nested values cannot be mutated.
|
|
126
|
+
*/
|
|
2
127
|
export function createErrorMetadata(metadata) {
|
|
3
128
|
if (metadata === undefined || metadata === null)
|
|
4
129
|
return Object.freeze({});
|
|
5
|
-
return Object.freeze(
|
|
130
|
+
return Object.freeze(cloneMetadata(metadata));
|
|
6
131
|
}
|
|
7
132
|
/** Merges multiple metadata objects. Later metadata objects override earlier values. */
|
|
8
133
|
export function mergeErrorMetadata(...metadata) {
|
|
@@ -10,16 +135,15 @@ export function mergeErrorMetadata(...metadata) {
|
|
|
10
135
|
for (const current of metadata) {
|
|
11
136
|
if (current === undefined || current === null)
|
|
12
137
|
continue;
|
|
13
|
-
for (const [key, value] of Object.entries(current)) {
|
|
14
|
-
|
|
15
|
-
merged[key] = value;
|
|
138
|
+
for (const [key, value] of Object.entries(cloneMetadata(current))) {
|
|
139
|
+
merged[key] = value;
|
|
16
140
|
}
|
|
17
141
|
}
|
|
18
142
|
return Object.freeze(merged);
|
|
19
143
|
}
|
|
20
|
-
/** Reads a metadata property. */
|
|
144
|
+
/** Reads a metadata property (own properties only). */
|
|
21
145
|
export function getErrorMetadataValue(metadata, key) {
|
|
22
|
-
if (metadata
|
|
146
|
+
if (!hasErrorMetadata(metadata, key))
|
|
23
147
|
return undefined;
|
|
24
148
|
return metadata[key];
|
|
25
149
|
}
|
|
@@ -33,7 +157,7 @@ export function hasErrorMetadata(metadata, key) {
|
|
|
33
157
|
export function omitErrorMetadata(metadata, ...keys) {
|
|
34
158
|
if (metadata === undefined || metadata === null)
|
|
35
159
|
return Object.freeze({});
|
|
36
|
-
const omitted =
|
|
160
|
+
const omitted = cloneMetadata(metadata);
|
|
37
161
|
for (const key of keys)
|
|
38
162
|
delete omitted[key];
|
|
39
163
|
return Object.freeze(omitted);
|
|
@@ -42,9 +166,12 @@ export function omitErrorMetadata(metadata, ...keys) {
|
|
|
42
166
|
export function pickErrorMetadata(metadata, keys) {
|
|
43
167
|
if (metadata === undefined || metadata === null)
|
|
44
168
|
return Object.freeze({});
|
|
169
|
+
const cloned = cloneMetadata(metadata);
|
|
45
170
|
const selected = {};
|
|
46
171
|
for (const key of keys) {
|
|
47
|
-
|
|
172
|
+
if (!Object.prototype.hasOwnProperty.call(cloned, key))
|
|
173
|
+
continue;
|
|
174
|
+
const value = cloned[key];
|
|
48
175
|
if (value !== undefined)
|
|
49
176
|
selected[key] = value;
|
|
50
177
|
}
|
|
@@ -54,34 +181,176 @@ export function pickErrorMetadata(metadata, keys) {
|
|
|
54
181
|
export function serializeErrorMetadata(metadata) {
|
|
55
182
|
if (metadata === undefined || metadata === null)
|
|
56
183
|
return {};
|
|
57
|
-
return
|
|
184
|
+
return cloneMetadata(metadata);
|
|
58
185
|
}
|
|
59
|
-
/**
|
|
186
|
+
/**
|
|
187
|
+
* Determines whether an arbitrary value is valid error metadata.
|
|
188
|
+
*
|
|
189
|
+
* Only JSON-compatible primitives, arrays and plain objects qualify;
|
|
190
|
+
* class instances, Maps, Sets, Dates, cyclic and excessively deep values
|
|
191
|
+
* are rejected.
|
|
192
|
+
*/
|
|
60
193
|
export function isErrorMetadataValue(value) {
|
|
194
|
+
return isMetadataValue(value, new WeakSet(), 0);
|
|
195
|
+
}
|
|
196
|
+
function isMetadataValue(value, seen, depth) {
|
|
61
197
|
if (value === null || typeof value === "string" || typeof value === "boolean")
|
|
62
198
|
return true;
|
|
63
199
|
if (typeof value === "number")
|
|
64
200
|
return Number.isFinite(value);
|
|
65
|
-
if (
|
|
66
|
-
return
|
|
67
|
-
if (
|
|
68
|
-
return
|
|
201
|
+
if (typeof value !== "object")
|
|
202
|
+
return false;
|
|
203
|
+
if (depth > MAX_METADATA_DEPTH)
|
|
204
|
+
return false;
|
|
205
|
+
if (seen.has(value))
|
|
206
|
+
return false;
|
|
207
|
+
seen.add(value);
|
|
208
|
+
try {
|
|
209
|
+
if (Array.isArray(value)) {
|
|
210
|
+
return value.every((entry) => isMetadataValue(entry, seen, depth + 1));
|
|
211
|
+
}
|
|
212
|
+
if (!isPlainObject(value))
|
|
213
|
+
return false;
|
|
214
|
+
for (const key of Object.keys(value)) {
|
|
215
|
+
if (isForbiddenMetadataKey(key))
|
|
216
|
+
return false;
|
|
217
|
+
const entry = value[key];
|
|
218
|
+
if (entry !== undefined && !isMetadataValue(entry, seen, depth + 1))
|
|
219
|
+
return false;
|
|
220
|
+
}
|
|
221
|
+
return true;
|
|
222
|
+
}
|
|
223
|
+
finally {
|
|
224
|
+
seen.delete(value);
|
|
69
225
|
}
|
|
70
|
-
return false;
|
|
71
226
|
}
|
|
72
227
|
/**
|
|
73
228
|
* Sanitizes arbitrary metadata by removing unsupported values.
|
|
74
229
|
*
|
|
75
|
-
*
|
|
230
|
+
* Drops functions, symbols, class instances and cyclic references, skips
|
|
231
|
+
* prototype-pollution keys and truncates excessive nesting. It does NOT
|
|
232
|
+
* remove secrets unless `redact: true` is passed; use `redactErrorMetadata`
|
|
233
|
+
* for that.
|
|
234
|
+
*/
|
|
235
|
+
export function sanitizeErrorMetadata(metadata, options = {}) {
|
|
236
|
+
if (metadata === undefined || metadata === null)
|
|
237
|
+
return Object.freeze({});
|
|
238
|
+
const sanitized = sanitizeValue(metadata, new WeakSet(), 0);
|
|
239
|
+
const result = sanitized !== undefined &&
|
|
240
|
+
sanitized !== null &&
|
|
241
|
+
typeof sanitized === "object" &&
|
|
242
|
+
!Array.isArray(sanitized)
|
|
243
|
+
? { ...sanitized }
|
|
244
|
+
: {};
|
|
245
|
+
if (options.redact) {
|
|
246
|
+
return redactErrorMetadata(result, {
|
|
247
|
+
sensitiveKeyPattern: options.sensitiveKeyPattern,
|
|
248
|
+
});
|
|
249
|
+
}
|
|
250
|
+
return Object.freeze(result);
|
|
251
|
+
}
|
|
252
|
+
function sanitizeValue(value, seen, depth) {
|
|
253
|
+
if (value === null || typeof value === "string" || typeof value === "boolean")
|
|
254
|
+
return value;
|
|
255
|
+
if (typeof value === "number")
|
|
256
|
+
return Number.isFinite(value) ? value : undefined;
|
|
257
|
+
if (typeof value !== "object")
|
|
258
|
+
return undefined;
|
|
259
|
+
if (depth > MAX_METADATA_DEPTH)
|
|
260
|
+
return undefined;
|
|
261
|
+
if (seen.has(value))
|
|
262
|
+
return undefined;
|
|
263
|
+
seen.add(value);
|
|
264
|
+
try {
|
|
265
|
+
if (Array.isArray(value)) {
|
|
266
|
+
const result = [];
|
|
267
|
+
for (const entry of value) {
|
|
268
|
+
const cleaned = sanitizeValue(entry, seen, depth + 1);
|
|
269
|
+
if (cleaned !== undefined)
|
|
270
|
+
result.push(cleaned);
|
|
271
|
+
}
|
|
272
|
+
return Object.freeze(result);
|
|
273
|
+
}
|
|
274
|
+
if (!isPlainObject(value))
|
|
275
|
+
return undefined;
|
|
276
|
+
const result = {};
|
|
277
|
+
for (const key of Object.keys(value)) {
|
|
278
|
+
if (isForbiddenMetadataKey(key))
|
|
279
|
+
continue;
|
|
280
|
+
const cleaned = sanitizeValue(value[key], seen, depth + 1);
|
|
281
|
+
if (cleaned !== undefined)
|
|
282
|
+
result[key] = cleaned;
|
|
283
|
+
}
|
|
284
|
+
return Object.freeze(result);
|
|
285
|
+
}
|
|
286
|
+
finally {
|
|
287
|
+
seen.delete(value);
|
|
288
|
+
}
|
|
289
|
+
}
|
|
290
|
+
/**
|
|
291
|
+
* Redacts sensitive values from metadata.
|
|
292
|
+
*
|
|
293
|
+
* Walks the metadata recursively and replaces the value of every key that
|
|
294
|
+
* matches the sensitive-key pattern (case-insensitive) or one of the extra
|
|
295
|
+
* `keys` with `"[REDACTED]"`. Unsupported values are dropped as in
|
|
296
|
+
* `sanitizeErrorMetadata`.
|
|
76
297
|
*/
|
|
77
|
-
export function
|
|
298
|
+
export function redactErrorMetadata(metadata, options = {}) {
|
|
78
299
|
if (metadata === undefined || metadata === null)
|
|
79
300
|
return Object.freeze({});
|
|
80
|
-
const
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
301
|
+
const pattern = statelessPattern(options.sensitiveKeyPattern ?? SENSITIVE_METADATA_KEY_PATTERN);
|
|
302
|
+
const extraKeys = new Set((options.keys ?? []).map((key) => key.toLowerCase()));
|
|
303
|
+
const replacement = options.replacement ?? REDACTED_METADATA_VALUE;
|
|
304
|
+
const isSensitive = (key) => pattern.test(key) || extraKeys.has(key.toLowerCase());
|
|
305
|
+
const redacted = redactValue(metadata, isSensitive, replacement, new WeakSet(), 0);
|
|
306
|
+
if (redacted === undefined ||
|
|
307
|
+
redacted === null ||
|
|
308
|
+
typeof redacted !== "object" ||
|
|
309
|
+
Array.isArray(redacted))
|
|
310
|
+
return Object.freeze({});
|
|
311
|
+
return Object.freeze({ ...redacted });
|
|
312
|
+
}
|
|
313
|
+
function redactValue(value, isSensitive, replacement, seen, depth) {
|
|
314
|
+
if (value === null || typeof value === "string" || typeof value === "boolean")
|
|
315
|
+
return value;
|
|
316
|
+
if (typeof value === "number")
|
|
317
|
+
return Number.isFinite(value) ? value : undefined;
|
|
318
|
+
if (typeof value !== "object")
|
|
319
|
+
return undefined;
|
|
320
|
+
if (depth > MAX_METADATA_DEPTH)
|
|
321
|
+
return undefined;
|
|
322
|
+
if (seen.has(value))
|
|
323
|
+
return undefined;
|
|
324
|
+
seen.add(value);
|
|
325
|
+
try {
|
|
326
|
+
if (Array.isArray(value)) {
|
|
327
|
+
const result = [];
|
|
328
|
+
for (const entry of value) {
|
|
329
|
+
const cleaned = redactValue(entry, isSensitive, replacement, seen, depth + 1);
|
|
330
|
+
if (cleaned !== undefined)
|
|
331
|
+
result.push(cleaned);
|
|
332
|
+
}
|
|
333
|
+
return Object.freeze(result);
|
|
334
|
+
}
|
|
335
|
+
if (!isPlainObject(value))
|
|
336
|
+
return undefined;
|
|
337
|
+
const result = {};
|
|
338
|
+
for (const key of Object.keys(value)) {
|
|
339
|
+
if (isForbiddenMetadataKey(key))
|
|
340
|
+
continue;
|
|
341
|
+
if (isSensitive(key)) {
|
|
342
|
+
if (value[key] !== undefined)
|
|
343
|
+
result[key] = replacement;
|
|
344
|
+
continue;
|
|
345
|
+
}
|
|
346
|
+
const cleaned = redactValue(value[key], isSensitive, replacement, seen, depth + 1);
|
|
347
|
+
if (cleaned !== undefined)
|
|
348
|
+
result[key] = cleaned;
|
|
349
|
+
}
|
|
350
|
+
return Object.freeze(result);
|
|
351
|
+
}
|
|
352
|
+
finally {
|
|
353
|
+
seen.delete(value);
|
|
84
354
|
}
|
|
85
|
-
return Object.freeze(sanitized);
|
|
86
355
|
}
|
|
87
356
|
//# sourceMappingURL=errorMetadata.core.js.map
|
|
@@ -2,10 +2,11 @@
|
|
|
2
2
|
* Error category helper functions.
|
|
3
3
|
*/
|
|
4
4
|
import { ErrorCategory } from "./errorCategory.enum.js";
|
|
5
|
+
/** Precomputed set of every error category value. */
|
|
6
|
+
const ERROR_CATEGORY_VALUES = new Set(Object.values(ErrorCategory));
|
|
5
7
|
/** Determines whether a value is a valid error category. */
|
|
6
8
|
export function isErrorCategory(value) {
|
|
7
|
-
return
|
|
8
|
-
Object.values(ErrorCategory).includes(value));
|
|
9
|
+
return typeof value === "string" && ERROR_CATEGORY_VALUES.has(value);
|
|
9
10
|
}
|
|
10
11
|
/** Converts an unknown value into a valid error category. */
|
|
11
12
|
export function normalizeErrorCategory(value, fallback = ErrorCategory.UNKNOWN) {
|
|
@@ -102,6 +102,21 @@ export declare enum ErrorCode {
|
|
|
102
102
|
RUNTIME_MANAGER = "ERR_RUNTIME_MANAGER",
|
|
103
103
|
EVENT_HANDLING_FAILED = "ERR_EVENT_HANDLING_FAILED",
|
|
104
104
|
EVENT_PUBLISH_FAILED = "ERR_EVENT_PUBLISH_FAILED",
|
|
105
|
+
EVENT_HANDLER_NOT_FOUND = "ERR_EVENT_HANDLER_NOT_FOUND",
|
|
106
|
+
EVENT_DUPLICATE_HANDLER = "ERR_EVENT_DUPLICATE_HANDLER",
|
|
107
|
+
EVENT_MIDDLEWARE_FAILED = "ERR_EVENT_MIDDLEWARE_FAILED",
|
|
108
|
+
EVENT_INVALID = "ERR_EVENT_INVALID",
|
|
109
|
+
EVENT_TYPE_NOT_FOUND = "ERR_EVENT_TYPE_NOT_FOUND",
|
|
110
|
+
EVENT_DUPLICATE_DEFINITION = "ERR_EVENT_DUPLICATE_DEFINITION",
|
|
111
|
+
EVENT_DEFINITION_NOT_FOUND = "ERR_EVENT_DEFINITION_NOT_FOUND",
|
|
112
|
+
EVENT_DISPATCH_ABORTED = "ERR_EVENT_DISPATCH_ABORTED",
|
|
113
|
+
EVENT_EMITTER_DISPOSED = "ERR_EVENT_EMITTER_DISPOSED",
|
|
114
|
+
EVENT_REGISTRY_DISPOSED = "ERR_EVENT_REGISTRY_DISPOSED",
|
|
115
|
+
EVENT_BUS_DISPOSED = "ERR_EVENT_BUS_DISPOSED",
|
|
116
|
+
EVENT_SUBSCRIPTION_CLOSED = "ERR_EVENT_SUBSCRIPTION_CLOSED",
|
|
117
|
+
EVENT_TIMEOUT = "ERR_EVENT_TIMEOUT",
|
|
118
|
+
EVENT_SERIALIZATION_FAILED = "ERR_EVENT_SERIALIZATION_FAILED",
|
|
119
|
+
EVENT_DESERIALIZATION_FAILED = "ERR_EVENT_DESERIALIZATION_FAILED",
|
|
105
120
|
MESSAGE_HANDLER_NOT_FOUND = "ERR_MESSAGE_HANDLER_NOT_FOUND",
|
|
106
121
|
MESSAGE_DISPATCH_FAILED = "ERR_MESSAGE_DISPATCH_FAILED",
|
|
107
122
|
MESSAGE_VALIDATION_FAILED = "ERR_MESSAGE_VALIDATION_FAILED",
|
|
@@ -109,9 +124,14 @@ export declare enum ErrorCode {
|
|
|
109
124
|
MESSAGE_TIMEOUT = "ERR_MESSAGE_TIMEOUT",
|
|
110
125
|
MESSAGE_ABORTED = "ERR_MESSAGE_ABORTED",
|
|
111
126
|
MESSAGE_INVALID = "ERR_MESSAGE_INVALID",
|
|
127
|
+
MESSAGE_BUS_DISPOSED = "ERR_MESSAGE_BUS_DISPOSED",
|
|
128
|
+
/** @deprecated Use `MESSAGE_BUS_DISPOSED`. Same value; kept for compatibility. */
|
|
112
129
|
MESSAGE_BUSDisposed = "ERR_MESSAGE_BUS_DISPOSED",
|
|
113
130
|
MESSAGE_SERIALIZATION_FAILED = "ERR_MESSAGE_SERIALIZATION_FAILED",
|
|
114
131
|
MESSAGE_DESERIALIZATION_FAILED = "ERR_MESSAGE_DESERIALIZATION_FAILED",
|
|
132
|
+
MESSAGE_HANDLER_FAILED = "ERR_MESSAGE_HANDLER_FAILED",
|
|
133
|
+
MESSAGE_MIDDLEWARE_FAILED = "ERR_MESSAGE_MIDDLEWARE_FAILED",
|
|
134
|
+
MESSAGE_TYPE_NOT_FOUND = "ERR_MESSAGE_TYPE_NOT_FOUND",
|
|
115
135
|
LOGGING_FAILED = "ERR_LOGGING_FAILED",
|
|
116
136
|
MIDDLEWARE_EXECUTION = "ERR_MIDDLEWARE_EXECUTION",
|
|
117
137
|
MIDDLEWARE_TIMEOUT = "ERR_MIDDLEWARE_TIMEOUT",
|
|
@@ -301,7 +321,56 @@ export declare enum ErrorCode {
|
|
|
301
321
|
DOCUMENT_NAVIGATION_INVALID = "ERR_DOCUMENT_NAVIGATION_INVALID",
|
|
302
322
|
DOCUMENT_EXAMPLE_INVALID = "ERR_DOCUMENT_EXAMPLE_INVALID",
|
|
303
323
|
DOCUMENT_GENERATION = "ERR_DOCUMENT_GENERATION",
|
|
304
|
-
DOCUMENT_VERSION = "ERR_DOCUMENT_VERSION"
|
|
324
|
+
DOCUMENT_VERSION = "ERR_DOCUMENT_VERSION",
|
|
325
|
+
CACHE = "ERR_CACHE",
|
|
326
|
+
DATABASE_MIGRATION = "ERR_DATABASE_MIGRATION",
|
|
327
|
+
RUNTIME = "ERR_RUNTIME",
|
|
328
|
+
HTTP_BAD_REQUEST = "ERR_HTTP_BAD_REQUEST",
|
|
329
|
+
HTTP_UNAUTHORIZED = "ERR_HTTP_UNAUTHORIZED",
|
|
330
|
+
HTTP_PAYMENT_REQUIRED = "ERR_HTTP_PAYMENT_REQUIRED",
|
|
331
|
+
HTTP_FORBIDDEN = "ERR_HTTP_FORBIDDEN",
|
|
332
|
+
HTTP_NOT_FOUND = "ERR_HTTP_NOT_FOUND",
|
|
333
|
+
HTTP_METHOD_NOT_ALLOWED = "ERR_HTTP_METHOD_NOT_ALLOWED",
|
|
334
|
+
HTTP_NOT_ACCEPTABLE = "ERR_HTTP_NOT_ACCEPTABLE",
|
|
335
|
+
HTTP_PROXY_AUTHENTICATION_REQUIRED = "ERR_HTTP_PROXY_AUTHENTICATION_REQUIRED",
|
|
336
|
+
HTTP_REQUEST_TIMEOUT = "ERR_HTTP_REQUEST_TIMEOUT",
|
|
337
|
+
HTTP_CONFLICT = "ERR_HTTP_CONFLICT",
|
|
338
|
+
HTTP_GONE = "ERR_HTTP_GONE",
|
|
339
|
+
HTTP_LENGTH_REQUIRED = "ERR_HTTP_LENGTH_REQUIRED",
|
|
340
|
+
HTTP_PRECONDITION_FAILED = "ERR_HTTP_PRECONDITION_FAILED",
|
|
341
|
+
HTTP_PAYLOAD_TOO_LARGE = "ERR_HTTP_PAYLOAD_TOO_LARGE",
|
|
342
|
+
HTTP_URI_TOO_LONG = "ERR_HTTP_URI_TOO_LONG",
|
|
343
|
+
HTTP_UNSUPPORTED_MEDIA_TYPE = "ERR_HTTP_UNSUPPORTED_MEDIA_TYPE",
|
|
344
|
+
HTTP_RANGE_NOT_SATISFIABLE = "ERR_HTTP_RANGE_NOT_SATISFIABLE",
|
|
345
|
+
HTTP_EXPECTATION_FAILED = "ERR_HTTP_EXPECTATION_FAILED",
|
|
346
|
+
HTTP_MISDIRECTED_REQUEST = "ERR_HTTP_MISDIRECTED_REQUEST",
|
|
347
|
+
HTTP_UNPROCESSABLE_ENTITY = "ERR_HTTP_UNPROCESSABLE_ENTITY",
|
|
348
|
+
HTTP_LOCKED = "ERR_HTTP_LOCKED",
|
|
349
|
+
HTTP_FAILED_DEPENDENCY = "ERR_HTTP_FAILED_DEPENDENCY",
|
|
350
|
+
HTTP_TOO_EARLY = "ERR_HTTP_TOO_EARLY",
|
|
351
|
+
HTTP_UPGRADE_REQUIRED = "ERR_HTTP_UPGRADE_REQUIRED",
|
|
352
|
+
HTTP_PRECONDITION_REQUIRED = "ERR_HTTP_PRECONDITION_REQUIRED",
|
|
353
|
+
HTTP_TOO_MANY_REQUESTS = "ERR_HTTP_TOO_MANY_REQUESTS",
|
|
354
|
+
HTTP_REQUEST_HEADER_FIELDS_TOO_LARGE = "ERR_HTTP_REQUEST_HEADER_FIELDS_TOO_LARGE",
|
|
355
|
+
HTTP_UNAVAILABLE_FOR_LEGAL_REASONS = "ERR_HTTP_UNAVAILABLE_FOR_LEGAL_REASONS",
|
|
356
|
+
HTTP_REQUEST_ABORTED = "ERR_HTTP_REQUEST_ABORTED",
|
|
357
|
+
HTTP_INTERNAL_SERVER_ERROR = "ERR_HTTP_INTERNAL_SERVER_ERROR",
|
|
358
|
+
HTTP_NOT_IMPLEMENTED = "ERR_HTTP_NOT_IMPLEMENTED",
|
|
359
|
+
HTTP_BAD_GATEWAY = "ERR_HTTP_BAD_GATEWAY",
|
|
360
|
+
HTTP_SERVICE_UNAVAILABLE = "ERR_HTTP_SERVICE_UNAVAILABLE",
|
|
361
|
+
HTTP_GATEWAY_TIMEOUT = "ERR_HTTP_GATEWAY_TIMEOUT",
|
|
362
|
+
HTTP_VERSION_NOT_SUPPORTED = "ERR_HTTP_VERSION_NOT_SUPPORTED",
|
|
363
|
+
HTTP_INSUFFICIENT_STORAGE = "ERR_HTTP_INSUFFICIENT_STORAGE",
|
|
364
|
+
HTTP_LOOP_DETECTED = "ERR_HTTP_LOOP_DETECTED",
|
|
365
|
+
HTTP_NETWORK_AUTHENTICATION_REQUIRED = "ERR_HTTP_NETWORK_AUTHENTICATION_REQUIRED",
|
|
366
|
+
HTTP_CLIENT = "ERR_HTTP_CLIENT",
|
|
367
|
+
HTTP_CLIENT_TIMEOUT = "ERR_HTTP_CLIENT_TIMEOUT",
|
|
368
|
+
HTTP_CLIENT_ABORTED = "ERR_HTTP_CLIENT_ABORTED",
|
|
369
|
+
HTTP_CLIENT_NETWORK = "ERR_HTTP_CLIENT_NETWORK",
|
|
370
|
+
HTTP_CLIENT_REQUEST_BODY_TIMEOUT = "ERR_HTTP_CLIENT_REQUEST_BODY_TIMEOUT",
|
|
371
|
+
HTTP_CLIENT_UNSUPPORTED_PROTOCOL = "ERR_HTTP_CLIENT_UNSUPPORTED_PROTOCOL",
|
|
372
|
+
HTTP_CLIENT_INVALID_HEADER = "ERR_HTTP_CLIENT_INVALID_HEADER",
|
|
373
|
+
HTTP_CLIENT_INVALID_CONTENT_TYPE = "ERR_HTTP_CLIENT_INVALID_CONTENT_TYPE"
|
|
305
374
|
}
|
|
306
375
|
/**
|
|
307
376
|
* Determines whether a value is a valid Zudojs error code.
|
|
@@ -108,6 +108,21 @@ export var ErrorCode;
|
|
|
108
108
|
// Event
|
|
109
109
|
ErrorCode["EVENT_HANDLING_FAILED"] = "ERR_EVENT_HANDLING_FAILED";
|
|
110
110
|
ErrorCode["EVENT_PUBLISH_FAILED"] = "ERR_EVENT_PUBLISH_FAILED";
|
|
111
|
+
ErrorCode["EVENT_HANDLER_NOT_FOUND"] = "ERR_EVENT_HANDLER_NOT_FOUND";
|
|
112
|
+
ErrorCode["EVENT_DUPLICATE_HANDLER"] = "ERR_EVENT_DUPLICATE_HANDLER";
|
|
113
|
+
ErrorCode["EVENT_MIDDLEWARE_FAILED"] = "ERR_EVENT_MIDDLEWARE_FAILED";
|
|
114
|
+
ErrorCode["EVENT_INVALID"] = "ERR_EVENT_INVALID";
|
|
115
|
+
ErrorCode["EVENT_TYPE_NOT_FOUND"] = "ERR_EVENT_TYPE_NOT_FOUND";
|
|
116
|
+
ErrorCode["EVENT_DUPLICATE_DEFINITION"] = "ERR_EVENT_DUPLICATE_DEFINITION";
|
|
117
|
+
ErrorCode["EVENT_DEFINITION_NOT_FOUND"] = "ERR_EVENT_DEFINITION_NOT_FOUND";
|
|
118
|
+
ErrorCode["EVENT_DISPATCH_ABORTED"] = "ERR_EVENT_DISPATCH_ABORTED";
|
|
119
|
+
ErrorCode["EVENT_EMITTER_DISPOSED"] = "ERR_EVENT_EMITTER_DISPOSED";
|
|
120
|
+
ErrorCode["EVENT_REGISTRY_DISPOSED"] = "ERR_EVENT_REGISTRY_DISPOSED";
|
|
121
|
+
ErrorCode["EVENT_BUS_DISPOSED"] = "ERR_EVENT_BUS_DISPOSED";
|
|
122
|
+
ErrorCode["EVENT_SUBSCRIPTION_CLOSED"] = "ERR_EVENT_SUBSCRIPTION_CLOSED";
|
|
123
|
+
ErrorCode["EVENT_TIMEOUT"] = "ERR_EVENT_TIMEOUT";
|
|
124
|
+
ErrorCode["EVENT_SERIALIZATION_FAILED"] = "ERR_EVENT_SERIALIZATION_FAILED";
|
|
125
|
+
ErrorCode["EVENT_DESERIALIZATION_FAILED"] = "ERR_EVENT_DESERIALIZATION_FAILED";
|
|
111
126
|
// Message
|
|
112
127
|
ErrorCode["MESSAGE_HANDLER_NOT_FOUND"] = "ERR_MESSAGE_HANDLER_NOT_FOUND";
|
|
113
128
|
ErrorCode["MESSAGE_DISPATCH_FAILED"] = "ERR_MESSAGE_DISPATCH_FAILED";
|
|
@@ -116,9 +131,14 @@ export var ErrorCode;
|
|
|
116
131
|
ErrorCode["MESSAGE_TIMEOUT"] = "ERR_MESSAGE_TIMEOUT";
|
|
117
132
|
ErrorCode["MESSAGE_ABORTED"] = "ERR_MESSAGE_ABORTED";
|
|
118
133
|
ErrorCode["MESSAGE_INVALID"] = "ERR_MESSAGE_INVALID";
|
|
134
|
+
ErrorCode["MESSAGE_BUS_DISPOSED"] = "ERR_MESSAGE_BUS_DISPOSED";
|
|
135
|
+
/** @deprecated Use `MESSAGE_BUS_DISPOSED`. Same value; kept for compatibility. */
|
|
119
136
|
ErrorCode["MESSAGE_BUSDisposed"] = "ERR_MESSAGE_BUS_DISPOSED";
|
|
120
137
|
ErrorCode["MESSAGE_SERIALIZATION_FAILED"] = "ERR_MESSAGE_SERIALIZATION_FAILED";
|
|
121
138
|
ErrorCode["MESSAGE_DESERIALIZATION_FAILED"] = "ERR_MESSAGE_DESERIALIZATION_FAILED";
|
|
139
|
+
ErrorCode["MESSAGE_HANDLER_FAILED"] = "ERR_MESSAGE_HANDLER_FAILED";
|
|
140
|
+
ErrorCode["MESSAGE_MIDDLEWARE_FAILED"] = "ERR_MESSAGE_MIDDLEWARE_FAILED";
|
|
141
|
+
ErrorCode["MESSAGE_TYPE_NOT_FOUND"] = "ERR_MESSAGE_TYPE_NOT_FOUND";
|
|
122
142
|
// Logger
|
|
123
143
|
ErrorCode["LOGGING_FAILED"] = "ERR_LOGGING_FAILED";
|
|
124
144
|
// Middleware
|
|
@@ -335,13 +355,69 @@ export var ErrorCode;
|
|
|
335
355
|
ErrorCode["DOCUMENT_EXAMPLE_INVALID"] = "ERR_DOCUMENT_EXAMPLE_INVALID";
|
|
336
356
|
ErrorCode["DOCUMENT_GENERATION"] = "ERR_DOCUMENT_GENERATION";
|
|
337
357
|
ErrorCode["DOCUMENT_VERSION"] = "ERR_DOCUMENT_VERSION";
|
|
358
|
+
// Cache
|
|
359
|
+
ErrorCode["CACHE"] = "ERR_CACHE";
|
|
360
|
+
// Database (additional)
|
|
361
|
+
ErrorCode["DATABASE_MIGRATION"] = "ERR_DATABASE_MIGRATION";
|
|
362
|
+
// Runtime (generic)
|
|
363
|
+
ErrorCode["RUNTIME"] = "ERR_RUNTIME";
|
|
364
|
+
// HTTP status errors (client 4xx)
|
|
365
|
+
ErrorCode["HTTP_BAD_REQUEST"] = "ERR_HTTP_BAD_REQUEST";
|
|
366
|
+
ErrorCode["HTTP_UNAUTHORIZED"] = "ERR_HTTP_UNAUTHORIZED";
|
|
367
|
+
ErrorCode["HTTP_PAYMENT_REQUIRED"] = "ERR_HTTP_PAYMENT_REQUIRED";
|
|
368
|
+
ErrorCode["HTTP_FORBIDDEN"] = "ERR_HTTP_FORBIDDEN";
|
|
369
|
+
ErrorCode["HTTP_NOT_FOUND"] = "ERR_HTTP_NOT_FOUND";
|
|
370
|
+
ErrorCode["HTTP_METHOD_NOT_ALLOWED"] = "ERR_HTTP_METHOD_NOT_ALLOWED";
|
|
371
|
+
ErrorCode["HTTP_NOT_ACCEPTABLE"] = "ERR_HTTP_NOT_ACCEPTABLE";
|
|
372
|
+
ErrorCode["HTTP_PROXY_AUTHENTICATION_REQUIRED"] = "ERR_HTTP_PROXY_AUTHENTICATION_REQUIRED";
|
|
373
|
+
ErrorCode["HTTP_REQUEST_TIMEOUT"] = "ERR_HTTP_REQUEST_TIMEOUT";
|
|
374
|
+
ErrorCode["HTTP_CONFLICT"] = "ERR_HTTP_CONFLICT";
|
|
375
|
+
ErrorCode["HTTP_GONE"] = "ERR_HTTP_GONE";
|
|
376
|
+
ErrorCode["HTTP_LENGTH_REQUIRED"] = "ERR_HTTP_LENGTH_REQUIRED";
|
|
377
|
+
ErrorCode["HTTP_PRECONDITION_FAILED"] = "ERR_HTTP_PRECONDITION_FAILED";
|
|
378
|
+
ErrorCode["HTTP_PAYLOAD_TOO_LARGE"] = "ERR_HTTP_PAYLOAD_TOO_LARGE";
|
|
379
|
+
ErrorCode["HTTP_URI_TOO_LONG"] = "ERR_HTTP_URI_TOO_LONG";
|
|
380
|
+
ErrorCode["HTTP_UNSUPPORTED_MEDIA_TYPE"] = "ERR_HTTP_UNSUPPORTED_MEDIA_TYPE";
|
|
381
|
+
ErrorCode["HTTP_RANGE_NOT_SATISFIABLE"] = "ERR_HTTP_RANGE_NOT_SATISFIABLE";
|
|
382
|
+
ErrorCode["HTTP_EXPECTATION_FAILED"] = "ERR_HTTP_EXPECTATION_FAILED";
|
|
383
|
+
ErrorCode["HTTP_MISDIRECTED_REQUEST"] = "ERR_HTTP_MISDIRECTED_REQUEST";
|
|
384
|
+
ErrorCode["HTTP_UNPROCESSABLE_ENTITY"] = "ERR_HTTP_UNPROCESSABLE_ENTITY";
|
|
385
|
+
ErrorCode["HTTP_LOCKED"] = "ERR_HTTP_LOCKED";
|
|
386
|
+
ErrorCode["HTTP_FAILED_DEPENDENCY"] = "ERR_HTTP_FAILED_DEPENDENCY";
|
|
387
|
+
ErrorCode["HTTP_TOO_EARLY"] = "ERR_HTTP_TOO_EARLY";
|
|
388
|
+
ErrorCode["HTTP_UPGRADE_REQUIRED"] = "ERR_HTTP_UPGRADE_REQUIRED";
|
|
389
|
+
ErrorCode["HTTP_PRECONDITION_REQUIRED"] = "ERR_HTTP_PRECONDITION_REQUIRED";
|
|
390
|
+
ErrorCode["HTTP_TOO_MANY_REQUESTS"] = "ERR_HTTP_TOO_MANY_REQUESTS";
|
|
391
|
+
ErrorCode["HTTP_REQUEST_HEADER_FIELDS_TOO_LARGE"] = "ERR_HTTP_REQUEST_HEADER_FIELDS_TOO_LARGE";
|
|
392
|
+
ErrorCode["HTTP_UNAVAILABLE_FOR_LEGAL_REASONS"] = "ERR_HTTP_UNAVAILABLE_FOR_LEGAL_REASONS";
|
|
393
|
+
ErrorCode["HTTP_REQUEST_ABORTED"] = "ERR_HTTP_REQUEST_ABORTED";
|
|
394
|
+
// HTTP status errors (server 5xx)
|
|
395
|
+
ErrorCode["HTTP_INTERNAL_SERVER_ERROR"] = "ERR_HTTP_INTERNAL_SERVER_ERROR";
|
|
396
|
+
ErrorCode["HTTP_NOT_IMPLEMENTED"] = "ERR_HTTP_NOT_IMPLEMENTED";
|
|
397
|
+
ErrorCode["HTTP_BAD_GATEWAY"] = "ERR_HTTP_BAD_GATEWAY";
|
|
398
|
+
ErrorCode["HTTP_SERVICE_UNAVAILABLE"] = "ERR_HTTP_SERVICE_UNAVAILABLE";
|
|
399
|
+
ErrorCode["HTTP_GATEWAY_TIMEOUT"] = "ERR_HTTP_GATEWAY_TIMEOUT";
|
|
400
|
+
ErrorCode["HTTP_VERSION_NOT_SUPPORTED"] = "ERR_HTTP_VERSION_NOT_SUPPORTED";
|
|
401
|
+
ErrorCode["HTTP_INSUFFICIENT_STORAGE"] = "ERR_HTTP_INSUFFICIENT_STORAGE";
|
|
402
|
+
ErrorCode["HTTP_LOOP_DETECTED"] = "ERR_HTTP_LOOP_DETECTED";
|
|
403
|
+
ErrorCode["HTTP_NETWORK_AUTHENTICATION_REQUIRED"] = "ERR_HTTP_NETWORK_AUTHENTICATION_REQUIRED";
|
|
404
|
+
// HTTP client (outbound requests)
|
|
405
|
+
ErrorCode["HTTP_CLIENT"] = "ERR_HTTP_CLIENT";
|
|
406
|
+
ErrorCode["HTTP_CLIENT_TIMEOUT"] = "ERR_HTTP_CLIENT_TIMEOUT";
|
|
407
|
+
ErrorCode["HTTP_CLIENT_ABORTED"] = "ERR_HTTP_CLIENT_ABORTED";
|
|
408
|
+
ErrorCode["HTTP_CLIENT_NETWORK"] = "ERR_HTTP_CLIENT_NETWORK";
|
|
409
|
+
ErrorCode["HTTP_CLIENT_REQUEST_BODY_TIMEOUT"] = "ERR_HTTP_CLIENT_REQUEST_BODY_TIMEOUT";
|
|
410
|
+
ErrorCode["HTTP_CLIENT_UNSUPPORTED_PROTOCOL"] = "ERR_HTTP_CLIENT_UNSUPPORTED_PROTOCOL";
|
|
411
|
+
ErrorCode["HTTP_CLIENT_INVALID_HEADER"] = "ERR_HTTP_CLIENT_INVALID_HEADER";
|
|
412
|
+
ErrorCode["HTTP_CLIENT_INVALID_CONTENT_TYPE"] = "ERR_HTTP_CLIENT_INVALID_CONTENT_TYPE";
|
|
338
413
|
})(ErrorCode || (ErrorCode = {}));
|
|
414
|
+
/** Precomputed set of every error code value. */
|
|
415
|
+
const ERROR_CODE_VALUES = new Set(Object.values(ErrorCode));
|
|
339
416
|
/**
|
|
340
417
|
* Determines whether a value is a valid Zudojs error code.
|
|
341
418
|
*/
|
|
342
419
|
export function isErrorCode(value) {
|
|
343
|
-
return
|
|
344
|
-
Object.values(ErrorCode).includes(value));
|
|
420
|
+
return typeof value === "string" && ERROR_CODE_VALUES.has(value);
|
|
345
421
|
}
|
|
346
422
|
/**
|
|
347
423
|
* Converts an unknown value into a valid error code.
|
|
@@ -31,9 +31,10 @@ export var ErrorSeverity;
|
|
|
31
31
|
* Determines whether a value is a valid error severity.
|
|
32
32
|
*/
|
|
33
33
|
export function isErrorSeverity(value) {
|
|
34
|
-
return
|
|
35
|
-
Object.values(ErrorSeverity).includes(value));
|
|
34
|
+
return typeof value === "string" && ERROR_SEVERITY_VALUES.has(value);
|
|
36
35
|
}
|
|
36
|
+
/** Precomputed set of every error severity value. */
|
|
37
|
+
const ERROR_SEVERITY_VALUES = new Set(Object.values(ErrorSeverity));
|
|
37
38
|
/**
|
|
38
39
|
* Normalizes an unknown severity into a valid ErrorSeverity.
|
|
39
40
|
*/
|
|
@@ -1,12 +1,28 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { ErrorCategory } from "../types/errorCategory.type.js";
|
|
2
2
|
import { ErrorCode } from "../types/errorCode.type.js";
|
|
3
|
-
import
|
|
3
|
+
import { ErrorSeverity } from "../types/errorSeverity.type.js";
|
|
4
4
|
import { BaseError } from "../core/baseError.core.js";
|
|
5
5
|
import type { BaseErrorOptions } from "../types/baseError.type.js";
|
|
6
6
|
/**
|
|
7
7
|
* Determines whether an unknown value is a BaseError.
|
|
8
|
+
*
|
|
9
|
+
* Uses `instanceof` as the fast path and falls back to the package brand plus
|
|
10
|
+
* a structural check, so errors produced by another installed copy of
|
|
11
|
+
* `@zudojs/errors` are still recognised.
|
|
8
12
|
*/
|
|
9
13
|
export declare function isBaseError(value: unknown): value is BaseError;
|
|
14
|
+
/** Default message used when an unknown value is converted into a BaseError. */
|
|
15
|
+
export declare const UNKNOWN_ERROR_MESSAGE = "An unexpected error occurred.";
|
|
16
|
+
/**
|
|
17
|
+
* Converts an unknown thrown value into a BaseError.
|
|
18
|
+
*
|
|
19
|
+
* This is the single normalization routine shared by `toBaseError`,
|
|
20
|
+
* `normalizeToBaseError`, `normalizeUnknownError` and `ErrorHandler.normalize`.
|
|
21
|
+
* Unknown values are classified as non-operational internal errors
|
|
22
|
+
* (`ERR_INTERNAL_ERROR`, 500, not exposed) and the original value is kept as
|
|
23
|
+
* `cause`; a plain string is used as the message.
|
|
24
|
+
*/
|
|
25
|
+
export declare function normalizeUnknownToBaseError(value: unknown, options?: BaseErrorOptions): BaseError;
|
|
10
26
|
/**
|
|
11
27
|
* Converts an unknown thrown value into a BaseError.
|
|
12
28
|
*/
|