@zudojs/errors 0.1.0 → 1.0.0
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 +280 -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.d.ts +3 -0
- package/dist/domain/api/apiError.base.js +5 -2
- package/dist/domain/api/apiError.lifecycle.d.ts +15 -1
- package/dist/domain/api/apiError.lifecycle.js +27 -7
- package/dist/domain/api/apiError.routing.d.ts +11 -3
- package/dist/domain/api/apiError.routing.js +12 -7
- 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 +88 -40
- 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 +21 -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,67 +1,70 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Centralized error normalization, serialization, and reporting service.
|
|
3
3
|
*/
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import { ErrorSeverity } from "../base/types/errorSeverity.type.js";
|
|
4
|
+
import { pickErrorMetadata, redactErrorMetadata, serializeErrorMetadata, } from "../base/core/errorMetadata.core.js";
|
|
5
|
+
import { isBaseError, normalizeUnknownToBaseError, } from "../base/utils/baseError.utils.js";
|
|
6
|
+
import { ErrorSerializer } from "./errorSerializer.core.js";
|
|
8
7
|
export { createErrorHandler, normalizeError, isHandledError, } from "./errorHandler.factory.js";
|
|
9
8
|
/** Centralized error normalization, serialization, and reporting service. */
|
|
10
9
|
export class ErrorHandler {
|
|
11
10
|
reporter;
|
|
11
|
+
onReporterError;
|
|
12
12
|
defaultStatusCode;
|
|
13
13
|
defaultMessage;
|
|
14
14
|
includeStack;
|
|
15
|
+
publicMetadataKeys;
|
|
16
|
+
sensitiveKeyPattern;
|
|
15
17
|
constructor(options = {}) {
|
|
16
18
|
this.reporter = options.reporter;
|
|
19
|
+
this.onReporterError = options.onReporterError;
|
|
17
20
|
this.defaultStatusCode = options.defaultStatusCode ?? 500;
|
|
18
21
|
this.defaultMessage =
|
|
19
22
|
options.defaultMessage ?? "An unexpected error occurred.";
|
|
20
23
|
this.includeStack = options.includeStack ?? false;
|
|
24
|
+
this.publicMetadataKeys = options.publicMetadataKeys;
|
|
25
|
+
this.sensitiveKeyPattern = options.sensitiveKeyPattern;
|
|
21
26
|
}
|
|
22
27
|
/** Converts an unknown thrown value into a BaseError. */
|
|
23
28
|
normalize(value) {
|
|
24
|
-
if (value
|
|
29
|
+
if (isBaseError(value)) {
|
|
25
30
|
return { error: value, original: value };
|
|
26
31
|
}
|
|
27
|
-
|
|
28
|
-
const error = new BaseError(value.message || this.defaultMessage, {
|
|
29
|
-
code: ErrorCode.INTERNAL_ERROR,
|
|
30
|
-
category: ErrorCategory.SYSTEM,
|
|
31
|
-
severity: ErrorSeverity.ERROR,
|
|
32
|
-
statusCode: this.defaultStatusCode,
|
|
33
|
-
expose: false,
|
|
34
|
-
isOperational: false,
|
|
35
|
-
cause: value,
|
|
36
|
-
});
|
|
37
|
-
return { error, original: value };
|
|
38
|
-
}
|
|
39
|
-
const message = typeof value === "string" ? value : this.defaultMessage;
|
|
40
|
-
const error = new BaseError(message, {
|
|
41
|
-
code: ErrorCode.INTERNAL_ERROR,
|
|
42
|
-
category: ErrorCategory.SYSTEM,
|
|
43
|
-
severity: ErrorSeverity.ERROR,
|
|
32
|
+
const error = normalizeUnknownToBaseError(value, {
|
|
44
33
|
statusCode: this.defaultStatusCode,
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
34
|
+
...(value instanceof Error || typeof value === "string"
|
|
35
|
+
? {}
|
|
36
|
+
: { message: this.defaultMessage }),
|
|
48
37
|
});
|
|
49
38
|
return { error, original: value };
|
|
50
39
|
}
|
|
51
|
-
/**
|
|
40
|
+
/**
|
|
41
|
+
* Handles and normalizes an unknown error.
|
|
42
|
+
*
|
|
43
|
+
* The reporter is isolated: if it throws or rejects, the failure is passed
|
|
44
|
+
* to `onReporterError` (or swallowed) and the original error's result is
|
|
45
|
+
* still returned.
|
|
46
|
+
*/
|
|
52
47
|
async handle(value, context) {
|
|
53
48
|
const { error } = this.normalize(value);
|
|
54
|
-
|
|
55
|
-
await this.reporter(error, context);
|
|
56
|
-
}
|
|
49
|
+
await this.reportSafely(error, context);
|
|
57
50
|
return this.toResult(error, context);
|
|
58
51
|
}
|
|
59
|
-
/**
|
|
52
|
+
/** Handles an unknown error and returns the client-safe representation. */
|
|
53
|
+
async handlePublic(value, context) {
|
|
54
|
+
const { error } = this.normalize(value);
|
|
55
|
+
await this.reportSafely(error, context);
|
|
56
|
+
return this.toPublicResult(error, context);
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Converts a BaseError into the internal result object.
|
|
60
|
+
*
|
|
61
|
+
* Metadata is redacted recursively; the stack is never included.
|
|
62
|
+
*/
|
|
60
63
|
toResult(error, context) {
|
|
61
|
-
const metadata = {
|
|
62
|
-
...(error.
|
|
64
|
+
const metadata = this.redact({
|
|
65
|
+
...serializeErrorMetadata(error.metadata),
|
|
63
66
|
...(context?.metadata ?? {}),
|
|
64
|
-
};
|
|
67
|
+
});
|
|
65
68
|
return {
|
|
66
69
|
code: error.code,
|
|
67
70
|
message: error.expose ? error.message : this.defaultMessage,
|
|
@@ -74,51 +77,101 @@ export class ErrorHandler {
|
|
|
74
77
|
...(context?.correlationId
|
|
75
78
|
? { correlationId: context.correlationId }
|
|
76
79
|
: {}),
|
|
77
|
-
...(Object.keys(metadata).length > 0
|
|
78
|
-
|
|
80
|
+
...(Object.keys(metadata).length > 0 ? { metadata } : {}),
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Converts a BaseError into a client-safe result.
|
|
85
|
+
*
|
|
86
|
+
* Only `code`, `message`, `statusCode`, request/correlation ids and
|
|
87
|
+
* allow-listed metadata (`details`) are included. Internal classification
|
|
88
|
+
* fields and non-exposed metadata are never revealed.
|
|
89
|
+
*/
|
|
90
|
+
toPublicResult(error, context) {
|
|
91
|
+
let details;
|
|
92
|
+
if (this.publicMetadataKeys !== undefined) {
|
|
93
|
+
details = this.redact(pickErrorMetadata(error.metadata, this.publicMetadataKeys));
|
|
94
|
+
}
|
|
95
|
+
else if (error.expose) {
|
|
96
|
+
details = this.redact(error.metadata);
|
|
97
|
+
}
|
|
98
|
+
return {
|
|
99
|
+
code: error.code,
|
|
100
|
+
message: error.expose ? error.message : this.defaultMessage,
|
|
101
|
+
statusCode: error.statusCode,
|
|
102
|
+
...(context?.requestId ? { requestId: context.requestId } : {}),
|
|
103
|
+
...(context?.correlationId
|
|
104
|
+
? { correlationId: context.correlationId }
|
|
105
|
+
: {}),
|
|
106
|
+
...(details !== undefined && Object.keys(details).length > 0
|
|
107
|
+
? { details }
|
|
79
108
|
: {}),
|
|
80
109
|
};
|
|
81
110
|
}
|
|
82
111
|
/** Reports an error without producing a response. */
|
|
83
112
|
async report(value, context) {
|
|
84
113
|
const { error } = this.normalize(value);
|
|
85
|
-
|
|
86
|
-
await this.reporter(error, context);
|
|
87
|
-
}
|
|
114
|
+
await this.reportSafely(error, context);
|
|
88
115
|
return error;
|
|
89
116
|
}
|
|
90
117
|
/** Determines whether an error should expose its message to clients. */
|
|
91
118
|
shouldExpose(error) {
|
|
92
119
|
return error.expose;
|
|
93
120
|
}
|
|
94
|
-
/**
|
|
121
|
+
/**
|
|
122
|
+
* Returns a safe serialized error representation (never includes a stack).
|
|
123
|
+
*
|
|
124
|
+
* Equivalent to `toPublicResult`; kept for backwards compatibility.
|
|
125
|
+
*/
|
|
95
126
|
serialize(error, context) {
|
|
96
|
-
|
|
97
|
-
if (this.includeStack && error.expose === false) {
|
|
98
|
-
return { ...result, stack: error.stack };
|
|
99
|
-
}
|
|
100
|
-
return result;
|
|
127
|
+
return this.toPublicResult(error, context);
|
|
101
128
|
}
|
|
102
|
-
/**
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
129
|
+
/**
|
|
130
|
+
* Returns the full internal representation for logging, including the
|
|
131
|
+
* (redacted) cause chain and, when `includeStack` is enabled, stack traces.
|
|
132
|
+
*/
|
|
133
|
+
toLogObject(error, context) {
|
|
134
|
+
const serialized = new ErrorSerializer({
|
|
135
|
+
includeStack: this.includeStack,
|
|
136
|
+
includeCause: true,
|
|
137
|
+
includeMetadata: true,
|
|
138
|
+
redactSensitiveData: true,
|
|
139
|
+
sensitiveKeyPattern: this.sensitiveKeyPattern,
|
|
140
|
+
}).serialize(error);
|
|
141
|
+
return {
|
|
142
|
+
...serialized,
|
|
143
|
+
...(context?.requestId ? { requestId: context.requestId } : {}),
|
|
144
|
+
...(context?.correlationId
|
|
145
|
+
? { correlationId: context.correlationId }
|
|
146
|
+
: {}),
|
|
147
|
+
...(context?.metadata
|
|
148
|
+
? { context: this.redact(context.metadata) }
|
|
149
|
+
: {}),
|
|
150
|
+
};
|
|
151
|
+
}
|
|
152
|
+
/** Invokes the reporter without letting its failure escape. */
|
|
153
|
+
async reportSafely(error, context) {
|
|
154
|
+
if (!this.reporter)
|
|
155
|
+
return;
|
|
156
|
+
try {
|
|
157
|
+
await this.reporter(error, context);
|
|
158
|
+
}
|
|
159
|
+
catch (reporterError) {
|
|
160
|
+
if (this.onReporterError) {
|
|
161
|
+
try {
|
|
162
|
+
this.onReporterError(reporterError, error, context);
|
|
163
|
+
}
|
|
164
|
+
catch {
|
|
165
|
+
// A failing failure-handler must never break error handling.
|
|
166
|
+
}
|
|
167
|
+
}
|
|
120
168
|
}
|
|
121
|
-
|
|
169
|
+
}
|
|
170
|
+
/** Removes obviously sensitive fields from metadata (recursively). */
|
|
171
|
+
redact(metadata) {
|
|
172
|
+
return redactErrorMetadata(metadata, {
|
|
173
|
+
sensitiveKeyPattern: this.sensitiveKeyPattern,
|
|
174
|
+
});
|
|
122
175
|
}
|
|
123
176
|
}
|
|
124
177
|
//# sourceMappingURL=errorHandler.core.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Error handler factory functions.
|
|
3
3
|
*/
|
|
4
|
-
import { BaseError } from "../base/core/baseError.core.js";
|
|
4
|
+
import type { BaseError } from "../base/core/baseError.core.js";
|
|
5
5
|
import { ErrorHandler } from "./errorHandler.core.js";
|
|
6
6
|
import type { ErrorHandlerOptions } from "./errorHandler.types.js";
|
|
7
7
|
/** Creates a default error handler. */
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Error handler factory functions.
|
|
3
3
|
*/
|
|
4
|
-
import {
|
|
4
|
+
import { isBaseError } from "../base/utils/baseError.utils.js";
|
|
5
5
|
import { ErrorHandler } from "./errorHandler.core.js";
|
|
6
6
|
/** Creates a default error handler. */
|
|
7
7
|
export function createErrorHandler(options = {}) {
|
|
@@ -13,6 +13,6 @@ export function normalizeError(value) {
|
|
|
13
13
|
}
|
|
14
14
|
/** Determines whether an unknown value is a supported BaseError. */
|
|
15
15
|
export function isHandledError(value) {
|
|
16
|
-
return value
|
|
16
|
+
return isBaseError(value);
|
|
17
17
|
}
|
|
18
18
|
//# sourceMappingURL=errorHandler.factory.js.map
|
|
@@ -18,7 +18,13 @@ export interface NormalizedError {
|
|
|
18
18
|
readonly error: BaseError;
|
|
19
19
|
readonly original: unknown;
|
|
20
20
|
}
|
|
21
|
-
/**
|
|
21
|
+
/**
|
|
22
|
+
* Structured result returned by the error handler.
|
|
23
|
+
*
|
|
24
|
+
* This is the INTERNAL representation (classification fields and redacted
|
|
25
|
+
* metadata included); use `ErrorHandler.toPublicResult` / `PublicErrorHandlerResult`
|
|
26
|
+
* for anything returned to an untrusted client.
|
|
27
|
+
*/
|
|
22
28
|
export interface ErrorHandlerResult {
|
|
23
29
|
readonly code: string;
|
|
24
30
|
readonly message: string;
|
|
@@ -31,13 +37,43 @@ export interface ErrorHandlerResult {
|
|
|
31
37
|
readonly correlationId?: string;
|
|
32
38
|
readonly metadata?: Readonly<Record<string, unknown>>;
|
|
33
39
|
}
|
|
40
|
+
/** Client-safe result returned by `ErrorHandler.toPublicResult`. */
|
|
41
|
+
export interface PublicErrorHandlerResult {
|
|
42
|
+
readonly code: string;
|
|
43
|
+
readonly message: string;
|
|
44
|
+
readonly statusCode: number;
|
|
45
|
+
readonly requestId?: string;
|
|
46
|
+
readonly correlationId?: string;
|
|
47
|
+
/** Allow-listed, redacted metadata (see `ErrorHandlerOptions.publicMetadataKeys`). */
|
|
48
|
+
readonly details?: Readonly<Record<string, unknown>>;
|
|
49
|
+
}
|
|
34
50
|
/** Callback used to report errors to an external logger or monitoring system. */
|
|
35
51
|
export type ErrorReporter = (error: BaseError, context?: ErrorHandlerContext) => void | Promise<void>;
|
|
52
|
+
/** Callback invoked when the reporter itself fails. */
|
|
53
|
+
export type ErrorReporterFailureHandler = (reporterError: unknown, originalError: BaseError, context?: ErrorHandlerContext) => void;
|
|
36
54
|
/** Options for constructing an ErrorHandler. */
|
|
37
55
|
export interface ErrorHandlerOptions {
|
|
38
56
|
readonly reporter?: ErrorReporter;
|
|
57
|
+
/**
|
|
58
|
+
* Invoked when `reporter` throws or rejects. Reporter failures never
|
|
59
|
+
* propagate out of `handle`/`report`; when this hook is absent they are
|
|
60
|
+
* swallowed.
|
|
61
|
+
*/
|
|
62
|
+
readonly onReporterError?: ErrorReporterFailureHandler;
|
|
39
63
|
readonly defaultStatusCode?: number;
|
|
40
64
|
readonly defaultMessage?: string;
|
|
65
|
+
/**
|
|
66
|
+
* Include the stack trace in `toLogObject` output. Stacks are never
|
|
67
|
+
* included in `toResult`, `toPublicResult` or `serialize`.
|
|
68
|
+
*/
|
|
41
69
|
readonly includeStack?: boolean;
|
|
70
|
+
/**
|
|
71
|
+
* Metadata keys copied into `PublicErrorHandlerResult.details`. When omitted,
|
|
72
|
+
* exposed errors contribute their (redacted) metadata and non-exposed errors
|
|
73
|
+
* contribute nothing.
|
|
74
|
+
*/
|
|
75
|
+
readonly publicMetadataKeys?: readonly string[];
|
|
76
|
+
/** Pattern used to detect sensitive metadata keys. */
|
|
77
|
+
readonly sensitiveKeyPattern?: RegExp;
|
|
42
78
|
}
|
|
43
79
|
//# sourceMappingURL=errorHandler.types.d.ts.map
|
|
@@ -3,5 +3,5 @@
|
|
|
3
3
|
*/
|
|
4
4
|
export type { ErrorMapperContext, ErrorMapping, ErrorMapperPredicate, ErrorMapper, ErrorMappingRule, } from "./errorMapper.types.js";
|
|
5
5
|
export { ErrorMapperRegistry, createErrorMapperRegistry, } from "./errorMapper.registry.js";
|
|
6
|
-
export { mapNativeError, mapError, mapErrorType, createErrorMappingRule, } from "./errorMapper.mappers.js";
|
|
6
|
+
export { mapNativeError, mapError, mapErrorType, createErrorMappingRule, applyErrorMapping, type ErrorConstructor, } from "./errorMapper.mappers.js";
|
|
7
7
|
//# sourceMappingURL=errorMapper.core.d.ts.map
|
|
@@ -2,5 +2,5 @@
|
|
|
2
2
|
* Error mapper — re-exports from focused files.
|
|
3
3
|
*/
|
|
4
4
|
export { ErrorMapperRegistry, createErrorMapperRegistry, } from "./errorMapper.registry.js";
|
|
5
|
-
export { mapNativeError, mapError, mapErrorType, createErrorMappingRule, } from "./errorMapper.mappers.js";
|
|
5
|
+
export { mapNativeError, mapError, mapErrorType, createErrorMappingRule, applyErrorMapping, } from "./errorMapper.mappers.js";
|
|
6
6
|
//# sourceMappingURL=errorMapper.core.js.map
|
|
@@ -2,14 +2,35 @@
|
|
|
2
2
|
* Error mapping functions — native error mapping, registry-based mapping, rule creation.
|
|
3
3
|
*/
|
|
4
4
|
import { BaseError } from "../base/core/baseError.core.js";
|
|
5
|
-
import type { ErrorMapperContext, ErrorMapper, ErrorMapperPredicate, ErrorMappingRule } from "./errorMapper.types.js";
|
|
5
|
+
import type { ErrorMapperContext, ErrorMapper, ErrorMapperPredicate, ErrorMapping, ErrorMappingRule } from "./errorMapper.types.js";
|
|
6
6
|
import type { ErrorMapperRegistry } from "./errorMapper.registry.js";
|
|
7
|
-
/**
|
|
7
|
+
/**
|
|
8
|
+
* Maps common native JavaScript errors.
|
|
9
|
+
*
|
|
10
|
+
* Native `TypeError`/`RangeError`/`SyntaxError` are overwhelmingly programmer
|
|
11
|
+
* bugs rather than client input problems, so they are classified as
|
|
12
|
+
* non-operational internal errors (500, not exposed). Register an explicit
|
|
13
|
+
* mapping rule to treat a specific error type as client input.
|
|
14
|
+
*/
|
|
8
15
|
export declare function mapNativeError(error: unknown): BaseError | undefined;
|
|
9
16
|
/** Maps an error using a registry and falls back to native error mapping. */
|
|
10
17
|
export declare function mapError(error: unknown, registry?: ErrorMapperRegistry, context?: ErrorMapperContext): BaseError;
|
|
11
|
-
/**
|
|
12
|
-
export
|
|
13
|
-
/**
|
|
14
|
-
|
|
18
|
+
/** Any constructor whose instances are `T` (parameters are not constrained). */
|
|
19
|
+
export type ErrorConstructor<T extends Error> = abstract new (...args: any[]) => T;
|
|
20
|
+
/**
|
|
21
|
+
* Creates a mapping rule for a specific error constructor.
|
|
22
|
+
*
|
|
23
|
+
* `mapper` may be a function producing a `BaseError`, or a declarative
|
|
24
|
+
* `ErrorMapping` describing the resulting error.
|
|
25
|
+
*/
|
|
26
|
+
export declare function mapErrorType<T extends Error>(name: string, errorType: ErrorConstructor<T>, mapper: ((error: T, context?: ErrorMapperContext) => BaseError) | ErrorMapping, priority?: number): ErrorMappingRule;
|
|
27
|
+
/**
|
|
28
|
+
* Creates a mapping rule based on a predicate.
|
|
29
|
+
*
|
|
30
|
+
* `mapper` may be a function producing a `BaseError`, or a declarative
|
|
31
|
+
* `ErrorMapping` describing the resulting error.
|
|
32
|
+
*/
|
|
33
|
+
export declare function createErrorMappingRule(name: string, predicate: ErrorMapperPredicate, mapper: ErrorMapper | ErrorMapping, priority?: number): ErrorMappingRule;
|
|
34
|
+
/** Builds a BaseError from a declarative `ErrorMapping`. */
|
|
35
|
+
export declare function applyErrorMapping(error: unknown, mapping: ErrorMapping, context?: ErrorMapperContext): BaseError;
|
|
15
36
|
//# sourceMappingURL=errorMapper.mappers.d.ts.map
|
|
@@ -2,52 +2,29 @@
|
|
|
2
2
|
* Error mapping functions — native error mapping, registry-based mapping, rule creation.
|
|
3
3
|
*/
|
|
4
4
|
import { BaseError } from "../base/core/baseError.core.js";
|
|
5
|
-
import {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
5
|
+
import { isBaseError, normalizeUnknownToBaseError, } from "../base/utils/baseError.utils.js";
|
|
6
|
+
/**
|
|
7
|
+
* Maps common native JavaScript errors.
|
|
8
|
+
*
|
|
9
|
+
* Native `TypeError`/`RangeError`/`SyntaxError` are overwhelmingly programmer
|
|
10
|
+
* bugs rather than client input problems, so they are classified as
|
|
11
|
+
* non-operational internal errors (500, not exposed). Register an explicit
|
|
12
|
+
* mapping rule to treat a specific error type as client input.
|
|
13
|
+
*/
|
|
9
14
|
export function mapNativeError(error) {
|
|
10
|
-
if (error
|
|
15
|
+
if (isBaseError(error)) {
|
|
11
16
|
return error;
|
|
12
17
|
}
|
|
13
|
-
if (error instanceof TypeError) {
|
|
14
|
-
return new BaseError(error.message, {
|
|
15
|
-
code: ErrorCode.INVALID_INPUT,
|
|
16
|
-
category: ErrorCategory.VALIDATION,
|
|
17
|
-
severity: ErrorSeverity.WARNING,
|
|
18
|
-
statusCode: 400,
|
|
19
|
-
expose: true,
|
|
20
|
-
isOperational: true,
|
|
21
|
-
cause: error,
|
|
22
|
-
});
|
|
23
|
-
}
|
|
24
|
-
if (error instanceof RangeError) {
|
|
25
|
-
return new BaseError(error.message, {
|
|
26
|
-
code: ErrorCode.INVALID_INPUT,
|
|
27
|
-
category: ErrorCategory.VALIDATION,
|
|
28
|
-
severity: ErrorSeverity.WARNING,
|
|
29
|
-
statusCode: 400,
|
|
30
|
-
expose: true,
|
|
31
|
-
isOperational: true,
|
|
32
|
-
cause: error,
|
|
33
|
-
});
|
|
34
|
-
}
|
|
35
18
|
if (error instanceof Error) {
|
|
36
|
-
return
|
|
37
|
-
|
|
38
|
-
category: ErrorCategory.SYSTEM,
|
|
39
|
-
severity: ErrorSeverity.ERROR,
|
|
40
|
-
statusCode: 500,
|
|
41
|
-
expose: false,
|
|
42
|
-
isOperational: false,
|
|
43
|
-
cause: error,
|
|
19
|
+
return normalizeUnknownToBaseError(error, {
|
|
20
|
+
metadata: { nativeErrorName: error.name },
|
|
44
21
|
});
|
|
45
22
|
}
|
|
46
23
|
return undefined;
|
|
47
24
|
}
|
|
48
25
|
/** Maps an error using a registry and falls back to native error mapping. */
|
|
49
26
|
export function mapError(error, registry, context) {
|
|
50
|
-
if (error
|
|
27
|
+
if (isBaseError(error)) {
|
|
51
28
|
return error;
|
|
52
29
|
}
|
|
53
30
|
const mapped = registry?.map(error, context);
|
|
@@ -58,27 +35,58 @@ export function mapError(error, registry, context) {
|
|
|
58
35
|
if (native) {
|
|
59
36
|
return native;
|
|
60
37
|
}
|
|
61
|
-
return
|
|
62
|
-
code: ErrorCode.INTERNAL_ERROR,
|
|
63
|
-
category: ErrorCategory.SYSTEM,
|
|
64
|
-
severity: ErrorSeverity.ERROR,
|
|
65
|
-
statusCode: 500,
|
|
66
|
-
expose: false,
|
|
67
|
-
isOperational: false,
|
|
68
|
-
metadata: { originalType: typeof error },
|
|
69
|
-
});
|
|
38
|
+
return normalizeUnknownToBaseError(error);
|
|
70
39
|
}
|
|
71
|
-
/**
|
|
40
|
+
/**
|
|
41
|
+
* Creates a mapping rule for a specific error constructor.
|
|
42
|
+
*
|
|
43
|
+
* `mapper` may be a function producing a `BaseError`, or a declarative
|
|
44
|
+
* `ErrorMapping` describing the resulting error.
|
|
45
|
+
*/
|
|
72
46
|
export function mapErrorType(name, errorType, mapper, priority = 0) {
|
|
47
|
+
const mapFn = typeof mapper === "function"
|
|
48
|
+
? (error, context) => mapper(error, context)
|
|
49
|
+
: (error, context) => applyErrorMapping(error, mapper, context);
|
|
73
50
|
return {
|
|
74
51
|
name,
|
|
75
52
|
priority,
|
|
76
53
|
predicate: (error) => error instanceof errorType,
|
|
77
|
-
mapper:
|
|
54
|
+
mapper: mapFn,
|
|
78
55
|
};
|
|
79
56
|
}
|
|
80
|
-
/**
|
|
57
|
+
/**
|
|
58
|
+
* Creates a mapping rule based on a predicate.
|
|
59
|
+
*
|
|
60
|
+
* `mapper` may be a function producing a `BaseError`, or a declarative
|
|
61
|
+
* `ErrorMapping` describing the resulting error.
|
|
62
|
+
*/
|
|
81
63
|
export function createErrorMappingRule(name, predicate, mapper, priority = 0) {
|
|
82
|
-
|
|
64
|
+
const mapFn = typeof mapper === "function"
|
|
65
|
+
? mapper
|
|
66
|
+
: (error, context) => applyErrorMapping(error, mapper, context);
|
|
67
|
+
return { name, predicate, mapper: mapFn, priority };
|
|
68
|
+
}
|
|
69
|
+
/** Builds a BaseError from a declarative `ErrorMapping`. */
|
|
70
|
+
export function applyErrorMapping(error, mapping, context) {
|
|
71
|
+
const message = mapping.message ??
|
|
72
|
+
(error instanceof Error && error.message
|
|
73
|
+
? error.message
|
|
74
|
+
: "An unexpected error occurred.");
|
|
75
|
+
return new BaseError(message, {
|
|
76
|
+
code: mapping.code,
|
|
77
|
+
category: mapping.category,
|
|
78
|
+
severity: mapping.severity,
|
|
79
|
+
statusCode: mapping.statusCode,
|
|
80
|
+
expose: mapping.expose,
|
|
81
|
+
isOperational: mapping.isOperational,
|
|
82
|
+
cause: error,
|
|
83
|
+
metadata: {
|
|
84
|
+
...context?.metadata,
|
|
85
|
+
...mapping.metadata,
|
|
86
|
+
...(context?.requestId !== undefined
|
|
87
|
+
? { requestId: context.requestId }
|
|
88
|
+
: {}),
|
|
89
|
+
},
|
|
90
|
+
});
|
|
83
91
|
}
|
|
84
92
|
//# sourceMappingURL=errorMapper.mappers.js.map
|
|
@@ -12,16 +12,35 @@ export declare class ErrorSerializer {
|
|
|
12
12
|
private readonly includeMetadata;
|
|
13
13
|
private readonly safeMessage;
|
|
14
14
|
private readonly redactSensitiveData;
|
|
15
|
+
private readonly sensitiveKeyPattern;
|
|
16
|
+
private readonly publicMetadataKeys;
|
|
15
17
|
constructor(options?: ErrorSerializerOptions);
|
|
16
|
-
/**
|
|
18
|
+
/**
|
|
19
|
+
* Serializes an error for internal logging or monitoring.
|
|
20
|
+
*
|
|
21
|
+
* `includeStack`, `includeCause` and `redactSensitiveData` are applied at
|
|
22
|
+
* every level of the cause chain.
|
|
23
|
+
*/
|
|
17
24
|
serialize(error: BaseError): InternalErrorResponse;
|
|
18
|
-
/**
|
|
25
|
+
/**
|
|
26
|
+
* Serializes an error for an untrusted API client.
|
|
27
|
+
*
|
|
28
|
+
* Never includes a stack or cause. Metadata is only included when the error
|
|
29
|
+
* is exposable (or when `publicMetadataKeys` allow-lists specific keys) and
|
|
30
|
+
* is always redacted.
|
|
31
|
+
*/
|
|
19
32
|
serializePublic(error: BaseError): PublicErrorResponse;
|
|
20
33
|
/** Serializes an unknown thrown value. */
|
|
21
34
|
serializeUnknown(value: unknown): InternalErrorResponse;
|
|
22
35
|
/** Creates a public response from an unknown thrown value. */
|
|
23
36
|
serializeUnknownPublic(value: unknown): PublicErrorResponse;
|
|
24
|
-
/**
|
|
37
|
+
/** Applies the serializer options to one level of a serialized error. */
|
|
38
|
+
private serializeLevel;
|
|
39
|
+
/** Applies the serializer options recursively to a serialized cause. */
|
|
40
|
+
private serializeCause;
|
|
41
|
+
/** Computes the metadata allowed in a public response. */
|
|
42
|
+
private publicMetadata;
|
|
43
|
+
/** Removes commonly sensitive metadata fields (recursively). */
|
|
25
44
|
private redactMetadata;
|
|
26
45
|
}
|
|
27
46
|
//# sourceMappingURL=errorSerializer.core.d.ts.map
|