@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.
Files changed (508) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +29 -8
  3. package/dist/base/core/baseError.core.d.ts +25 -2
  4. package/dist/base/core/baseError.core.js +95 -23
  5. package/dist/base/core/errorMetadata.core.d.ts +62 -5
  6. package/dist/base/core/errorMetadata.core.js +280 -23
  7. package/dist/base/types/errorCategory.helpers.js +3 -2
  8. package/dist/base/types/errorCode.type.d.ts +70 -1
  9. package/dist/base/types/errorCode.type.js +78 -2
  10. package/dist/base/types/errorSeverity.type.js +3 -2
  11. package/dist/base/utils/baseError.utils.d.ts +18 -2
  12. package/dist/base/utils/baseError.utils.js +68 -17
  13. package/dist/domain/access/rateLimit.error.d.ts +6 -1
  14. package/dist/domain/access/rateLimit.error.js +7 -9
  15. package/dist/domain/api/apiError.base.d.ts +3 -0
  16. package/dist/domain/api/apiError.base.js +5 -2
  17. package/dist/domain/api/apiError.lifecycle.d.ts +15 -1
  18. package/dist/domain/api/apiError.lifecycle.js +27 -7
  19. package/dist/domain/api/apiError.routing.d.ts +11 -3
  20. package/dist/domain/api/apiError.routing.js +12 -7
  21. package/dist/domain/app/domain.error.d.ts +2 -0
  22. package/dist/domain/app/domain.error.js +3 -1
  23. package/dist/domain/app/lifecycleError.types.js +2 -8
  24. package/dist/domain/app/moduleError.types.d.ts +3 -0
  25. package/dist/domain/app/moduleError.types.js +6 -2
  26. package/dist/domain/body/bodyParser.error.d.ts +9 -2
  27. package/dist/domain/body/bodyParser.error.js +20 -12
  28. package/dist/domain/body/httpBodyError.base.js +1 -2
  29. package/dist/domain/body/httpBodyError.types.js +1 -3
  30. package/dist/domain/body/httpFormData.error.js +2 -4
  31. package/dist/domain/body/multipart.error.js +2 -4
  32. package/dist/domain/documentation/documentationError.base.js +4 -2
  33. package/dist/domain/documentation/documentationError.types.js +1 -11
  34. package/dist/domain/documentation/index.d.ts +1 -1
  35. package/dist/domain/documentation/index.js +1 -1
  36. package/dist/domain/event/event.error.d.ts +1 -1
  37. package/dist/domain/event/event.error.js +1 -1
  38. package/dist/domain/event/eventError.base.d.ts +4 -1
  39. package/dist/domain/event/eventError.base.js +7 -9
  40. package/dist/domain/event/eventError.handler.d.ts +12 -3
  41. package/dist/domain/event/eventError.handler.js +21 -11
  42. package/dist/domain/event/eventError.lifecycle.d.ts +20 -3
  43. package/dist/domain/event/eventError.lifecycle.js +48 -18
  44. package/dist/domain/event/eventError.serialization.d.ts +10 -2
  45. package/dist/domain/event/eventError.serialization.js +16 -4
  46. package/dist/domain/message/message.error.d.ts +1 -0
  47. package/dist/domain/message/message.error.js +1 -0
  48. package/dist/domain/message/messageError.base.d.ts +4 -1
  49. package/dist/domain/message/messageError.base.js +7 -9
  50. package/dist/domain/message/messageError.handler.d.ts +12 -3
  51. package/dist/domain/message/messageError.handler.js +22 -12
  52. package/dist/domain/message/messageError.lifecycle.d.ts +5 -1
  53. package/dist/domain/message/messageError.lifecycle.js +15 -8
  54. package/dist/domain/message/messageError.serialization.d.ts +26 -0
  55. package/dist/domain/message/messageError.serialization.js +35 -0
  56. package/dist/domain/plugin/pluginError.lifecycle.js +23 -21
  57. package/dist/domain/plugin/pluginError.runtime.d.ts +5 -1
  58. package/dist/domain/plugin/pluginError.runtime.js +12 -7
  59. package/dist/domain/queue/queueError.base.d.ts +19 -0
  60. package/dist/domain/queue/queueError.base.js +24 -4
  61. package/dist/domain/queue/queueError.job.js +2 -0
  62. package/dist/domain/queue/queueError.worker.d.ts +9 -3
  63. package/dist/domain/queue/queueError.worker.js +14 -6
  64. package/dist/domain/rpc/rpcError.base.js +0 -2
  65. package/dist/domain/rpc/rpcError.protocol.js +0 -7
  66. package/dist/domain/rpc/rpcError.transport.d.ts +10 -1
  67. package/dist/domain/rpc/rpcError.transport.js +19 -9
  68. package/dist/domain/scheduler/schedulerError.base.d.ts +17 -3
  69. package/dist/domain/scheduler/schedulerError.base.js +26 -15
  70. package/dist/domain/scheduler/schedulerError.execution.d.ts +7 -6
  71. package/dist/domain/scheduler/schedulerError.execution.js +22 -18
  72. package/dist/domain/scheduler/schedulerError.schedule.d.ts +15 -5
  73. package/dist/domain/scheduler/schedulerError.schedule.js +32 -14
  74. package/dist/domain/schema/index.d.ts +2 -1
  75. package/dist/domain/schema/index.js +1 -1
  76. package/dist/domain/schema/schemaError.base.d.ts +31 -5
  77. package/dist/domain/schema/schemaError.base.js +34 -6
  78. package/dist/domain/schema/schemaError.types.js +12 -5
  79. package/dist/domain/serialization/serializationError.base.d.ts +8 -2
  80. package/dist/domain/serialization/serializationError.base.js +38 -8
  81. package/dist/domain/serialization/serializationError.types.d.ts +22 -3
  82. package/dist/domain/serialization/serializationError.types.js +30 -5
  83. package/dist/domain/shared/domainError.helpers.d.ts +60 -0
  84. package/dist/domain/shared/domainError.helpers.js +191 -0
  85. package/dist/domain/state/conflict.error.d.ts +1 -1
  86. package/dist/domain/state/conflict.error.js +2 -2
  87. package/dist/domain/state/validationError.base.d.ts +8 -1
  88. package/dist/domain/state/validationError.base.js +11 -2
  89. package/dist/infrastructure/adapter/adapterError.base.js +6 -6
  90. package/dist/infrastructure/adapter/adapterError.lifecycle.js +0 -3
  91. package/dist/infrastructure/adapter/adapterError.operation.js +0 -5
  92. package/dist/infrastructure/cache/cacheError.base.js +1 -1
  93. package/dist/infrastructure/container/containerError.registration.js +6 -4
  94. package/dist/infrastructure/network/httpAdapter.error.js +4 -2
  95. package/dist/infrastructure/network/httpClientError.advanced.js +10 -18
  96. package/dist/infrastructure/network/httpClientError.base.d.ts +11 -0
  97. package/dist/infrastructure/network/httpClientError.base.js +47 -7
  98. package/dist/infrastructure/network/httpClientError.common.d.ts +14 -0
  99. package/dist/infrastructure/network/httpClientError.common.js +21 -31
  100. package/dist/infrastructure/network/httpClientError.specialized.js +5 -8
  101. package/dist/infrastructure/network/httpClientError.types.d.ts +23 -2
  102. package/dist/infrastructure/network/httpClientError.types.js +55 -42
  103. package/dist/infrastructure/network/httpResponse.error.js +0 -3
  104. package/dist/infrastructure/network/httpRouterError.base.js +0 -1
  105. package/dist/infrastructure/network/httpRouterError.types.d.ts +5 -3
  106. package/dist/infrastructure/network/httpRouterError.types.js +6 -7
  107. package/dist/infrastructure/network/httpServerError.error.js +6 -10
  108. package/dist/infrastructure/network/httpServerLifecycleError.base.js +0 -1
  109. package/dist/infrastructure/network/httpServerLifecycleError.types.js +0 -3
  110. package/dist/infrastructure/network/httpStream.error.js +0 -1
  111. package/dist/infrastructure/network/network.error.d.ts +1 -1
  112. package/dist/infrastructure/network/network.error.js +1 -1
  113. package/dist/infrastructure/network/networkError.factory.d.ts +9 -2
  114. package/dist/infrastructure/network/networkError.factory.js +9 -2
  115. package/dist/infrastructure/network/routePattern.error.d.ts +7 -6
  116. package/dist/infrastructure/network/routePattern.error.js +16 -8
  117. package/dist/infrastructure/network/timeoutError.base.d.ts +7 -0
  118. package/dist/infrastructure/network/timeoutError.base.js +12 -1
  119. package/dist/infrastructure/network/timeoutError.factory.d.ts +14 -0
  120. package/dist/infrastructure/network/timeoutError.factory.js +25 -17
  121. package/dist/infrastructure/service/externalService.error.d.ts +1 -1
  122. package/dist/infrastructure/service/externalService.error.js +1 -1
  123. package/dist/infrastructure/service/externalServiceError.base.d.ts +8 -0
  124. package/dist/infrastructure/service/externalServiceError.base.js +8 -11
  125. package/dist/infrastructure/service/externalServiceError.factory.d.ts +3 -1
  126. package/dist/infrastructure/service/externalServiceError.factory.js +3 -1
  127. package/dist/infrastructure/storage/databaseError.factory.js +1 -1
  128. package/dist/infrastructure/storage/storageError.factory.js +2 -2
  129. package/dist/system/cryptoError.factory.js +5 -2
  130. package/dist/system/runtimeError.base.js +1 -1
  131. package/dist/utils/errorHandler.core.d.ts +42 -8
  132. package/dist/utils/errorHandler.core.js +116 -63
  133. package/dist/utils/errorHandler.factory.d.ts +1 -1
  134. package/dist/utils/errorHandler.factory.js +2 -2
  135. package/dist/utils/errorHandler.types.d.ts +37 -1
  136. package/dist/utils/errorMapper.core.d.ts +1 -1
  137. package/dist/utils/errorMapper.core.js +1 -1
  138. package/dist/utils/errorMapper.mappers.d.ts +27 -6
  139. package/dist/utils/errorMapper.mappers.js +57 -49
  140. package/dist/utils/errorSerializer.core.d.ts +22 -3
  141. package/dist/utils/errorSerializer.core.js +88 -40
  142. package/dist/utils/errorSerializer.factory.d.ts +1 -1
  143. package/dist/utils/errorSerializer.factory.js +2 -26
  144. package/dist/utils/errorSerializer.types.d.ts +14 -4
  145. package/dist/utils/errorUtils.extraction.js +3 -2
  146. package/dist/utils/errorUtils.transform.d.ts +1 -1
  147. package/dist/utils/errorUtils.transform.js +2 -26
  148. package/dist/utils/errorUtils.typeCheck.js +7 -7
  149. package/package.json +21 -10
  150. package/dist/.tsbuildinfo +0 -1
  151. package/dist/base/core/baseError.core.d.ts.map +0 -1
  152. package/dist/base/core/baseError.core.js.map +0 -1
  153. package/dist/base/core/errorMetadata.core.d.ts.map +0 -1
  154. package/dist/base/core/errorMetadata.core.js.map +0 -1
  155. package/dist/base/core/errorMetadata.type.d.ts.map +0 -1
  156. package/dist/base/core/errorMetadata.type.js.map +0 -1
  157. package/dist/base/core/index.d.ts.map +0 -1
  158. package/dist/base/core/index.js.map +0 -1
  159. package/dist/base/index.d.ts.map +0 -1
  160. package/dist/base/index.js.map +0 -1
  161. package/dist/base/types/baseError.type.d.ts.map +0 -1
  162. package/dist/base/types/baseError.type.js.map +0 -1
  163. package/dist/base/types/errorCategory.enum.d.ts.map +0 -1
  164. package/dist/base/types/errorCategory.enum.js.map +0 -1
  165. package/dist/base/types/errorCategory.helpers.d.ts.map +0 -1
  166. package/dist/base/types/errorCategory.helpers.js.map +0 -1
  167. package/dist/base/types/errorCategory.type.d.ts.map +0 -1
  168. package/dist/base/types/errorCategory.type.js.map +0 -1
  169. package/dist/base/types/errorCode.type.d.ts.map +0 -1
  170. package/dist/base/types/errorCode.type.js.map +0 -1
  171. package/dist/base/types/errorSeverity.type.d.ts.map +0 -1
  172. package/dist/base/types/errorSeverity.type.js.map +0 -1
  173. package/dist/base/types/index.d.ts.map +0 -1
  174. package/dist/base/types/index.js.map +0 -1
  175. package/dist/base/utils/baseError.utils.d.ts.map +0 -1
  176. package/dist/base/utils/baseError.utils.js.map +0 -1
  177. package/dist/base/utils/index.d.ts.map +0 -1
  178. package/dist/base/utils/index.js.map +0 -1
  179. package/dist/domain/access/authentication.error.d.ts.map +0 -1
  180. package/dist/domain/access/authentication.error.js.map +0 -1
  181. package/dist/domain/access/authorization.error.d.ts.map +0 -1
  182. package/dist/domain/access/authorization.error.js.map +0 -1
  183. package/dist/domain/access/index.d.ts.map +0 -1
  184. package/dist/domain/access/index.js.map +0 -1
  185. package/dist/domain/access/rateLimit.error.d.ts.map +0 -1
  186. package/dist/domain/access/rateLimit.error.js.map +0 -1
  187. package/dist/domain/api/api.error.d.ts.map +0 -1
  188. package/dist/domain/api/api.error.js.map +0 -1
  189. package/dist/domain/api/apiError.base.d.ts.map +0 -1
  190. package/dist/domain/api/apiError.base.js.map +0 -1
  191. package/dist/domain/api/apiError.lifecycle.d.ts.map +0 -1
  192. package/dist/domain/api/apiError.lifecycle.js.map +0 -1
  193. package/dist/domain/api/apiError.routing.d.ts.map +0 -1
  194. package/dist/domain/api/apiError.routing.js.map +0 -1
  195. package/dist/domain/api/index.d.ts.map +0 -1
  196. package/dist/domain/api/index.js.map +0 -1
  197. package/dist/domain/app/application.error.d.ts.map +0 -1
  198. package/dist/domain/app/application.error.js.map +0 -1
  199. package/dist/domain/app/configuration.error.d.ts.map +0 -1
  200. package/dist/domain/app/configuration.error.js.map +0 -1
  201. package/dist/domain/app/domain.error.d.ts.map +0 -1
  202. package/dist/domain/app/domain.error.js.map +0 -1
  203. package/dist/domain/app/index.d.ts.map +0 -1
  204. package/dist/domain/app/index.js.map +0 -1
  205. package/dist/domain/app/lifecycle.error.d.ts.map +0 -1
  206. package/dist/domain/app/lifecycle.error.js.map +0 -1
  207. package/dist/domain/app/lifecycleError.base.d.ts.map +0 -1
  208. package/dist/domain/app/lifecycleError.base.js.map +0 -1
  209. package/dist/domain/app/lifecycleError.types.d.ts.map +0 -1
  210. package/dist/domain/app/lifecycleError.types.js.map +0 -1
  211. package/dist/domain/app/module.error.d.ts.map +0 -1
  212. package/dist/domain/app/module.error.js.map +0 -1
  213. package/dist/domain/app/moduleError.base.d.ts.map +0 -1
  214. package/dist/domain/app/moduleError.base.js.map +0 -1
  215. package/dist/domain/app/moduleError.types.d.ts.map +0 -1
  216. package/dist/domain/app/moduleError.types.js.map +0 -1
  217. package/dist/domain/body/bodyParser.error.d.ts.map +0 -1
  218. package/dist/domain/body/bodyParser.error.js.map +0 -1
  219. package/dist/domain/body/httpBody.error.d.ts.map +0 -1
  220. package/dist/domain/body/httpBody.error.js.map +0 -1
  221. package/dist/domain/body/httpBodyError.base.d.ts.map +0 -1
  222. package/dist/domain/body/httpBodyError.base.js.map +0 -1
  223. package/dist/domain/body/httpBodyError.types.d.ts.map +0 -1
  224. package/dist/domain/body/httpBodyError.types.js.map +0 -1
  225. package/dist/domain/body/httpFormData.error.d.ts.map +0 -1
  226. package/dist/domain/body/httpFormData.error.js.map +0 -1
  227. package/dist/domain/body/index.d.ts.map +0 -1
  228. package/dist/domain/body/index.js.map +0 -1
  229. package/dist/domain/body/multipart.error.d.ts.map +0 -1
  230. package/dist/domain/body/multipart.error.js.map +0 -1
  231. package/dist/domain/documentation/documentation.error.d.ts.map +0 -1
  232. package/dist/domain/documentation/documentation.error.js.map +0 -1
  233. package/dist/domain/documentation/documentationError.base.d.ts.map +0 -1
  234. package/dist/domain/documentation/documentationError.base.js.map +0 -1
  235. package/dist/domain/documentation/documentationError.types.d.ts.map +0 -1
  236. package/dist/domain/documentation/documentationError.types.js.map +0 -1
  237. package/dist/domain/documentation/index.d.ts.map +0 -1
  238. package/dist/domain/documentation/index.js.map +0 -1
  239. package/dist/domain/event/event.error.d.ts.map +0 -1
  240. package/dist/domain/event/event.error.js.map +0 -1
  241. package/dist/domain/event/eventError.base.d.ts.map +0 -1
  242. package/dist/domain/event/eventError.base.js.map +0 -1
  243. package/dist/domain/event/eventError.handler.d.ts.map +0 -1
  244. package/dist/domain/event/eventError.handler.js.map +0 -1
  245. package/dist/domain/event/eventError.lifecycle.d.ts.map +0 -1
  246. package/dist/domain/event/eventError.lifecycle.js.map +0 -1
  247. package/dist/domain/event/eventError.serialization.d.ts.map +0 -1
  248. package/dist/domain/event/eventError.serialization.js.map +0 -1
  249. package/dist/domain/event/index.d.ts.map +0 -1
  250. package/dist/domain/event/index.js.map +0 -1
  251. package/dist/domain/index.d.ts.map +0 -1
  252. package/dist/domain/index.js.map +0 -1
  253. package/dist/domain/message/index.d.ts.map +0 -1
  254. package/dist/domain/message/index.js.map +0 -1
  255. package/dist/domain/message/message.error.d.ts.map +0 -1
  256. package/dist/domain/message/message.error.js.map +0 -1
  257. package/dist/domain/message/messageError.base.d.ts.map +0 -1
  258. package/dist/domain/message/messageError.base.js.map +0 -1
  259. package/dist/domain/message/messageError.handler.d.ts.map +0 -1
  260. package/dist/domain/message/messageError.handler.js.map +0 -1
  261. package/dist/domain/message/messageError.lifecycle.d.ts.map +0 -1
  262. package/dist/domain/message/messageError.lifecycle.js.map +0 -1
  263. package/dist/domain/message/messageError.validation.d.ts.map +0 -1
  264. package/dist/domain/message/messageError.validation.js.map +0 -1
  265. package/dist/domain/plugin/index.d.ts.map +0 -1
  266. package/dist/domain/plugin/index.js.map +0 -1
  267. package/dist/domain/plugin/plugin.error.d.ts.map +0 -1
  268. package/dist/domain/plugin/plugin.error.js.map +0 -1
  269. package/dist/domain/plugin/pluginError.base.d.ts.map +0 -1
  270. package/dist/domain/plugin/pluginError.base.js.map +0 -1
  271. package/dist/domain/plugin/pluginError.lifecycle.d.ts.map +0 -1
  272. package/dist/domain/plugin/pluginError.lifecycle.js.map +0 -1
  273. package/dist/domain/plugin/pluginError.runtime.d.ts.map +0 -1
  274. package/dist/domain/plugin/pluginError.runtime.js.map +0 -1
  275. package/dist/domain/queue/index.d.ts.map +0 -1
  276. package/dist/domain/queue/index.js.map +0 -1
  277. package/dist/domain/queue/queue.error.d.ts.map +0 -1
  278. package/dist/domain/queue/queue.error.js.map +0 -1
  279. package/dist/domain/queue/queueError.base.d.ts.map +0 -1
  280. package/dist/domain/queue/queueError.base.js.map +0 -1
  281. package/dist/domain/queue/queueError.job.d.ts.map +0 -1
  282. package/dist/domain/queue/queueError.job.js.map +0 -1
  283. package/dist/domain/queue/queueError.queue.d.ts.map +0 -1
  284. package/dist/domain/queue/queueError.queue.js.map +0 -1
  285. package/dist/domain/queue/queueError.worker.d.ts.map +0 -1
  286. package/dist/domain/queue/queueError.worker.js.map +0 -1
  287. package/dist/domain/rpc/index.d.ts.map +0 -1
  288. package/dist/domain/rpc/index.js.map +0 -1
  289. package/dist/domain/rpc/rpc.error.d.ts.map +0 -1
  290. package/dist/domain/rpc/rpc.error.js.map +0 -1
  291. package/dist/domain/rpc/rpcError.base.d.ts.map +0 -1
  292. package/dist/domain/rpc/rpcError.base.js.map +0 -1
  293. package/dist/domain/rpc/rpcError.protocol.d.ts.map +0 -1
  294. package/dist/domain/rpc/rpcError.protocol.js.map +0 -1
  295. package/dist/domain/rpc/rpcError.transport.d.ts.map +0 -1
  296. package/dist/domain/rpc/rpcError.transport.js.map +0 -1
  297. package/dist/domain/scheduler/index.d.ts.map +0 -1
  298. package/dist/domain/scheduler/index.js.map +0 -1
  299. package/dist/domain/scheduler/scheduler.error.d.ts.map +0 -1
  300. package/dist/domain/scheduler/scheduler.error.js.map +0 -1
  301. package/dist/domain/scheduler/schedulerError.base.d.ts.map +0 -1
  302. package/dist/domain/scheduler/schedulerError.base.js.map +0 -1
  303. package/dist/domain/scheduler/schedulerError.execution.d.ts.map +0 -1
  304. package/dist/domain/scheduler/schedulerError.execution.js.map +0 -1
  305. package/dist/domain/scheduler/schedulerError.schedule.d.ts.map +0 -1
  306. package/dist/domain/scheduler/schedulerError.schedule.js.map +0 -1
  307. package/dist/domain/schema/index.d.ts.map +0 -1
  308. package/dist/domain/schema/index.js.map +0 -1
  309. package/dist/domain/schema/schema.error.d.ts.map +0 -1
  310. package/dist/domain/schema/schema.error.js.map +0 -1
  311. package/dist/domain/schema/schemaError.base.d.ts.map +0 -1
  312. package/dist/domain/schema/schemaError.base.js.map +0 -1
  313. package/dist/domain/schema/schemaError.types.d.ts.map +0 -1
  314. package/dist/domain/schema/schemaError.types.js.map +0 -1
  315. package/dist/domain/serialization/index.d.ts.map +0 -1
  316. package/dist/domain/serialization/index.js.map +0 -1
  317. package/dist/domain/serialization/serialization.error.d.ts.map +0 -1
  318. package/dist/domain/serialization/serialization.error.js.map +0 -1
  319. package/dist/domain/serialization/serializationError.base.d.ts.map +0 -1
  320. package/dist/domain/serialization/serializationError.base.js.map +0 -1
  321. package/dist/domain/serialization/serializationError.types.d.ts.map +0 -1
  322. package/dist/domain/serialization/serializationError.types.js.map +0 -1
  323. package/dist/domain/state/conflict.error.d.ts.map +0 -1
  324. package/dist/domain/state/conflict.error.js.map +0 -1
  325. package/dist/domain/state/index.d.ts.map +0 -1
  326. package/dist/domain/state/index.js.map +0 -1
  327. package/dist/domain/state/notFound.error.d.ts.map +0 -1
  328. package/dist/domain/state/notFound.error.js.map +0 -1
  329. package/dist/domain/state/validation.error.d.ts.map +0 -1
  330. package/dist/domain/state/validation.error.js.map +0 -1
  331. package/dist/domain/state/validationError.base.d.ts.map +0 -1
  332. package/dist/domain/state/validationError.base.js.map +0 -1
  333. package/dist/domain/state/validationError.helpers.d.ts.map +0 -1
  334. package/dist/domain/state/validationError.helpers.js.map +0 -1
  335. package/dist/index.d.ts.map +0 -1
  336. package/dist/index.js.map +0 -1
  337. package/dist/infrastructure/adapter/adapter.error.d.ts.map +0 -1
  338. package/dist/infrastructure/adapter/adapter.error.js.map +0 -1
  339. package/dist/infrastructure/adapter/adapterError.base.d.ts.map +0 -1
  340. package/dist/infrastructure/adapter/adapterError.base.js.map +0 -1
  341. package/dist/infrastructure/adapter/adapterError.lifecycle.d.ts.map +0 -1
  342. package/dist/infrastructure/adapter/adapterError.lifecycle.js.map +0 -1
  343. package/dist/infrastructure/adapter/adapterError.operation.d.ts.map +0 -1
  344. package/dist/infrastructure/adapter/adapterError.operation.js.map +0 -1
  345. package/dist/infrastructure/adapter/index.d.ts.map +0 -1
  346. package/dist/infrastructure/adapter/index.js.map +0 -1
  347. package/dist/infrastructure/cache/cache.error.d.ts.map +0 -1
  348. package/dist/infrastructure/cache/cache.error.js.map +0 -1
  349. package/dist/infrastructure/cache/cacheError.base.d.ts.map +0 -1
  350. package/dist/infrastructure/cache/cacheError.base.js.map +0 -1
  351. package/dist/infrastructure/cache/cacheError.factory.d.ts.map +0 -1
  352. package/dist/infrastructure/cache/cacheError.factory.js.map +0 -1
  353. package/dist/infrastructure/cache/index.d.ts.map +0 -1
  354. package/dist/infrastructure/cache/index.js.map +0 -1
  355. package/dist/infrastructure/container/container.error.d.ts.map +0 -1
  356. package/dist/infrastructure/container/container.error.js.map +0 -1
  357. package/dist/infrastructure/container/containerError.base.d.ts.map +0 -1
  358. package/dist/infrastructure/container/containerError.base.js.map +0 -1
  359. package/dist/infrastructure/container/containerError.registration.d.ts.map +0 -1
  360. package/dist/infrastructure/container/containerError.registration.js.map +0 -1
  361. package/dist/infrastructure/container/index.d.ts.map +0 -1
  362. package/dist/infrastructure/container/index.js.map +0 -1
  363. package/dist/infrastructure/index.d.ts.map +0 -1
  364. package/dist/infrastructure/index.js.map +0 -1
  365. package/dist/infrastructure/middleware/index.d.ts.map +0 -1
  366. package/dist/infrastructure/middleware/index.js.map +0 -1
  367. package/dist/infrastructure/middleware/middleware.error.d.ts.map +0 -1
  368. package/dist/infrastructure/middleware/middleware.error.js.map +0 -1
  369. package/dist/infrastructure/network/http.error.d.ts.map +0 -1
  370. package/dist/infrastructure/network/http.error.js.map +0 -1
  371. package/dist/infrastructure/network/httpAdapter.error.d.ts.map +0 -1
  372. package/dist/infrastructure/network/httpAdapter.error.js.map +0 -1
  373. package/dist/infrastructure/network/httpClient.errors.d.ts.map +0 -1
  374. package/dist/infrastructure/network/httpClient.errors.js.map +0 -1
  375. package/dist/infrastructure/network/httpClientError.advanced.d.ts.map +0 -1
  376. package/dist/infrastructure/network/httpClientError.advanced.js.map +0 -1
  377. package/dist/infrastructure/network/httpClientError.base.d.ts.map +0 -1
  378. package/dist/infrastructure/network/httpClientError.base.js.map +0 -1
  379. package/dist/infrastructure/network/httpClientError.common.d.ts.map +0 -1
  380. package/dist/infrastructure/network/httpClientError.common.js.map +0 -1
  381. package/dist/infrastructure/network/httpClientError.error.d.ts.map +0 -1
  382. package/dist/infrastructure/network/httpClientError.error.js.map +0 -1
  383. package/dist/infrastructure/network/httpClientError.options.d.ts.map +0 -1
  384. package/dist/infrastructure/network/httpClientError.options.js.map +0 -1
  385. package/dist/infrastructure/network/httpClientError.specialized.d.ts.map +0 -1
  386. package/dist/infrastructure/network/httpClientError.specialized.js.map +0 -1
  387. package/dist/infrastructure/network/httpClientError.types.d.ts.map +0 -1
  388. package/dist/infrastructure/network/httpClientError.types.js.map +0 -1
  389. package/dist/infrastructure/network/httpError.base.d.ts.map +0 -1
  390. package/dist/infrastructure/network/httpError.base.js.map +0 -1
  391. package/dist/infrastructure/network/httpError.helpers.d.ts.map +0 -1
  392. package/dist/infrastructure/network/httpError.helpers.js.map +0 -1
  393. package/dist/infrastructure/network/httpResponse.error.d.ts.map +0 -1
  394. package/dist/infrastructure/network/httpResponse.error.js.map +0 -1
  395. package/dist/infrastructure/network/httpRouter.error.d.ts.map +0 -1
  396. package/dist/infrastructure/network/httpRouter.error.js.map +0 -1
  397. package/dist/infrastructure/network/httpRouterError.base.d.ts.map +0 -1
  398. package/dist/infrastructure/network/httpRouterError.base.js.map +0 -1
  399. package/dist/infrastructure/network/httpRouterError.types.d.ts.map +0 -1
  400. package/dist/infrastructure/network/httpRouterError.types.js.map +0 -1
  401. package/dist/infrastructure/network/httpServerError.error.d.ts.map +0 -1
  402. package/dist/infrastructure/network/httpServerError.error.js.map +0 -1
  403. package/dist/infrastructure/network/httpServerLifecycle.error.d.ts.map +0 -1
  404. package/dist/infrastructure/network/httpServerLifecycle.error.js.map +0 -1
  405. package/dist/infrastructure/network/httpServerLifecycleError.base.d.ts.map +0 -1
  406. package/dist/infrastructure/network/httpServerLifecycleError.base.js.map +0 -1
  407. package/dist/infrastructure/network/httpServerLifecycleError.types.d.ts.map +0 -1
  408. package/dist/infrastructure/network/httpServerLifecycleError.types.js.map +0 -1
  409. package/dist/infrastructure/network/httpStream.error.d.ts.map +0 -1
  410. package/dist/infrastructure/network/httpStream.error.js.map +0 -1
  411. package/dist/infrastructure/network/index.d.ts.map +0 -1
  412. package/dist/infrastructure/network/index.js.map +0 -1
  413. package/dist/infrastructure/network/network.error.d.ts.map +0 -1
  414. package/dist/infrastructure/network/network.error.js.map +0 -1
  415. package/dist/infrastructure/network/networkError.base.d.ts.map +0 -1
  416. package/dist/infrastructure/network/networkError.base.js.map +0 -1
  417. package/dist/infrastructure/network/networkError.factory.d.ts.map +0 -1
  418. package/dist/infrastructure/network/networkError.factory.js.map +0 -1
  419. package/dist/infrastructure/network/routePattern.error.d.ts.map +0 -1
  420. package/dist/infrastructure/network/routePattern.error.js.map +0 -1
  421. package/dist/infrastructure/network/timeout.error.d.ts.map +0 -1
  422. package/dist/infrastructure/network/timeout.error.js.map +0 -1
  423. package/dist/infrastructure/network/timeoutError.base.d.ts.map +0 -1
  424. package/dist/infrastructure/network/timeoutError.base.js.map +0 -1
  425. package/dist/infrastructure/network/timeoutError.factory.d.ts.map +0 -1
  426. package/dist/infrastructure/network/timeoutError.factory.js.map +0 -1
  427. package/dist/infrastructure/service/externalService.error.d.ts.map +0 -1
  428. package/dist/infrastructure/service/externalService.error.js.map +0 -1
  429. package/dist/infrastructure/service/externalServiceError.base.d.ts.map +0 -1
  430. package/dist/infrastructure/service/externalServiceError.base.js.map +0 -1
  431. package/dist/infrastructure/service/externalServiceError.factory.d.ts.map +0 -1
  432. package/dist/infrastructure/service/externalServiceError.factory.js.map +0 -1
  433. package/dist/infrastructure/service/index.d.ts.map +0 -1
  434. package/dist/infrastructure/service/index.js.map +0 -1
  435. package/dist/infrastructure/service/service.error.d.ts.map +0 -1
  436. package/dist/infrastructure/service/service.error.js.map +0 -1
  437. package/dist/infrastructure/service/serviceError.base.d.ts.map +0 -1
  438. package/dist/infrastructure/service/serviceError.base.js.map +0 -1
  439. package/dist/infrastructure/service/serviceError.factory.d.ts.map +0 -1
  440. package/dist/infrastructure/service/serviceError.factory.js.map +0 -1
  441. package/dist/infrastructure/storage/database.error.d.ts.map +0 -1
  442. package/dist/infrastructure/storage/database.error.js.map +0 -1
  443. package/dist/infrastructure/storage/databaseError.base.d.ts.map +0 -1
  444. package/dist/infrastructure/storage/databaseError.base.js.map +0 -1
  445. package/dist/infrastructure/storage/databaseError.factory.d.ts.map +0 -1
  446. package/dist/infrastructure/storage/databaseError.factory.js.map +0 -1
  447. package/dist/infrastructure/storage/index.d.ts.map +0 -1
  448. package/dist/infrastructure/storage/index.js.map +0 -1
  449. package/dist/infrastructure/storage/storage.error.d.ts.map +0 -1
  450. package/dist/infrastructure/storage/storage.error.js.map +0 -1
  451. package/dist/infrastructure/storage/storageError.base.d.ts.map +0 -1
  452. package/dist/infrastructure/storage/storageError.base.js.map +0 -1
  453. package/dist/infrastructure/storage/storageError.factory.d.ts.map +0 -1
  454. package/dist/infrastructure/storage/storageError.factory.js.map +0 -1
  455. package/dist/system/crypto.error.d.ts.map +0 -1
  456. package/dist/system/crypto.error.js.map +0 -1
  457. package/dist/system/cryptoError.base.d.ts.map +0 -1
  458. package/dist/system/cryptoError.base.js.map +0 -1
  459. package/dist/system/cryptoError.factory.d.ts.map +0 -1
  460. package/dist/system/cryptoError.factory.js.map +0 -1
  461. package/dist/system/index.d.ts.map +0 -1
  462. package/dist/system/index.js.map +0 -1
  463. package/dist/system/logging/index.d.ts.map +0 -1
  464. package/dist/system/logging/index.js.map +0 -1
  465. package/dist/system/logging/logging.error.d.ts.map +0 -1
  466. package/dist/system/logging/logging.error.js.map +0 -1
  467. package/dist/system/runtime.error.d.ts.map +0 -1
  468. package/dist/system/runtime.error.js.map +0 -1
  469. package/dist/system/runtimeError.base.d.ts.map +0 -1
  470. package/dist/system/runtimeError.base.js.map +0 -1
  471. package/dist/system/runtimeError.types.d.ts.map +0 -1
  472. package/dist/system/runtimeError.types.js.map +0 -1
  473. package/dist/system/system.error.d.ts.map +0 -1
  474. package/dist/system/system.error.js.map +0 -1
  475. package/dist/system/systemError.base.d.ts.map +0 -1
  476. package/dist/system/systemError.base.js.map +0 -1
  477. package/dist/system/systemError.factory.d.ts.map +0 -1
  478. package/dist/system/systemError.factory.js.map +0 -1
  479. package/dist/utils/errorHandler.core.d.ts.map +0 -1
  480. package/dist/utils/errorHandler.core.js.map +0 -1
  481. package/dist/utils/errorHandler.factory.d.ts.map +0 -1
  482. package/dist/utils/errorHandler.factory.js.map +0 -1
  483. package/dist/utils/errorHandler.types.d.ts.map +0 -1
  484. package/dist/utils/errorHandler.types.js.map +0 -1
  485. package/dist/utils/errorMapper.core.d.ts.map +0 -1
  486. package/dist/utils/errorMapper.core.js.map +0 -1
  487. package/dist/utils/errorMapper.mappers.d.ts.map +0 -1
  488. package/dist/utils/errorMapper.mappers.js.map +0 -1
  489. package/dist/utils/errorMapper.registry.d.ts.map +0 -1
  490. package/dist/utils/errorMapper.registry.js.map +0 -1
  491. package/dist/utils/errorMapper.types.d.ts.map +0 -1
  492. package/dist/utils/errorMapper.types.js.map +0 -1
  493. package/dist/utils/errorSerializer.core.d.ts.map +0 -1
  494. package/dist/utils/errorSerializer.core.js.map +0 -1
  495. package/dist/utils/errorSerializer.factory.d.ts.map +0 -1
  496. package/dist/utils/errorSerializer.factory.js.map +0 -1
  497. package/dist/utils/errorSerializer.types.d.ts.map +0 -1
  498. package/dist/utils/errorSerializer.types.js.map +0 -1
  499. package/dist/utils/errorUtils.extraction.d.ts.map +0 -1
  500. package/dist/utils/errorUtils.extraction.js.map +0 -1
  501. package/dist/utils/errorUtils.helper.d.ts.map +0 -1
  502. package/dist/utils/errorUtils.helper.js.map +0 -1
  503. package/dist/utils/errorUtils.transform.d.ts.map +0 -1
  504. package/dist/utils/errorUtils.transform.js.map +0 -1
  505. package/dist/utils/errorUtils.typeCheck.d.ts.map +0 -1
  506. package/dist/utils/errorUtils.typeCheck.js.map +0 -1
  507. package/dist/utils/index.d.ts.map +0 -1
  508. 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 { BaseError } from "../base/core/baseError.core.js";
5
- import { ErrorCategory } from "../base/types/errorCategory.type.js";
6
- import { ErrorCode } from "../base/types/errorCode.type.js";
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 instanceof BaseError) {
29
+ if (isBaseError(value)) {
25
30
  return { error: value, original: value };
26
31
  }
27
- if (value instanceof Error) {
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
- expose: false,
46
- isOperational: false,
47
- metadata: { originalType: typeof value },
34
+ ...(value instanceof Error || typeof value === "string"
35
+ ? {}
36
+ : { message: this.defaultMessage }),
48
37
  });
49
38
  return { error, original: value };
50
39
  }
51
- /** Handles and normalizes an unknown error. */
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
- if (this.reporter) {
55
- await this.reporter(error, context);
56
- }
49
+ await this.reportSafely(error, context);
57
50
  return this.toResult(error, context);
58
51
  }
59
- /** Converts a BaseError into a safe response object. */
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.toJSON().metadata ?? {}),
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
- ? { metadata: this.sanitizeMetadata(metadata) }
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
- if (this.reporter) {
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
- /** Returns a safe serialized error representation. */
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
- const result = this.toResult(error, context);
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
- /** Removes obviously sensitive fields from metadata before serialization. */
103
- sanitizeMetadata(metadata) {
104
- const sensitiveKeys = new Set([
105
- "password",
106
- "passcode",
107
- "token",
108
- "accessToken",
109
- "refreshToken",
110
- "authorization",
111
- "cookie",
112
- "secret",
113
- "privateKey",
114
- "apiKey",
115
- "credential",
116
- ]);
117
- const sanitized = {};
118
- for (const [key, value] of Object.entries(metadata)) {
119
- sanitized[key] = sensitiveKeys.has(key) ? "[REDACTED]" : value;
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
- return sanitized;
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 { BaseError } from "../base/core/baseError.core.js";
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 instanceof BaseError;
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
- /** Structured result returned by the error handler. */
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
- /** Maps common native JavaScript errors. */
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
- /** Creates a mapping rule for a specific error constructor. */
12
- export declare function mapErrorType<T extends Error>(name: string, errorType: new (...args: unknown[]) => T, mapper: (error: T, context?: ErrorMapperContext) => BaseError, priority?: number): ErrorMappingRule;
13
- /** Creates a mapping rule based on a predicate. */
14
- export declare function createErrorMappingRule(name: string, predicate: ErrorMapperPredicate, mapper: ErrorMapper, priority?: number): ErrorMappingRule;
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 { ErrorCategory } from "../base/types/errorCategory.type.js";
6
- import { ErrorCode } from "../base/types/errorCode.type.js";
7
- import { ErrorSeverity } from "../base/types/errorSeverity.type.js";
8
- /** Maps common native JavaScript errors. */
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 instanceof BaseError) {
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 new BaseError(error.message || "An unexpected error occurred.", {
37
- code: ErrorCode.INTERNAL_ERROR,
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 instanceof BaseError) {
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 new BaseError("An unexpected error occurred.", {
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
- /** Creates a mapping rule for a specific error constructor. */
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: (error, context) => mapper(error, context),
54
+ mapper: mapFn,
78
55
  };
79
56
  }
80
- /** Creates a mapping rule based on a predicate. */
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
- return { name, predicate, mapper, priority };
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
- /** Serializes an error for internal logging or monitoring. */
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
- /** Serializes an error for an untrusted API client. */
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
- /** Removes commonly sensitive metadata fields. */
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