@zudojs/errors 0.1.1 → 1.0.1

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