autotel 3.5.0 → 3.7.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 (591) hide show
  1. package/dist/attribute-redacting-processor-DtTS9xxh.d.cts +175 -0
  2. package/dist/attribute-redacting-processor-DtTS9xxh.d.cts.map +1 -0
  3. package/dist/attribute-redacting-processor-DtTS9xxh.d.ts +175 -0
  4. package/dist/attribute-redacting-processor-DtTS9xxh.d.ts.map +1 -0
  5. package/dist/attribute-redacting-processor.cjs +374 -33
  6. package/dist/attribute-redacting-processor.cjs.map +1 -1
  7. package/dist/attribute-redacting-processor.d.cts +2 -207
  8. package/dist/attribute-redacting-processor.d.ts +2 -207
  9. package/dist/attribute-redacting-processor.js +368 -2
  10. package/dist/attribute-redacting-processor.js.map +1 -1
  11. package/dist/attributes-D3etyRVc.cjs +713 -0
  12. package/dist/attributes-D3etyRVc.cjs.map +1 -0
  13. package/dist/attributes-ksn4HVbd.js +600 -0
  14. package/dist/attributes-ksn4HVbd.js.map +1 -0
  15. package/dist/attributes.cjs +21 -85
  16. package/dist/attributes.d.cts +2 -20
  17. package/dist/attributes.d.ts +2 -20
  18. package/dist/attributes.js +3 -5
  19. package/dist/auto.cjs +50 -28
  20. package/dist/auto.cjs.map +1 -1
  21. package/dist/auto.d.cts +1 -2
  22. package/dist/auto.d.ts +1 -2
  23. package/dist/auto.js +49 -23
  24. package/dist/auto.js.map +1 -1
  25. package/dist/business-baggage.cjs +357 -13
  26. package/dist/business-baggage.cjs.map +1 -1
  27. package/dist/business-baggage.d.cts +106 -139
  28. package/dist/business-baggage.d.cts.map +1 -0
  29. package/dist/business-baggage.d.ts +106 -139
  30. package/dist/business-baggage.d.ts.map +1 -0
  31. package/dist/business-baggage.js +357 -2
  32. package/dist/business-baggage.js.map +1 -1
  33. package/dist/canonical-log-line-processor--RlFDHhm.cjs +377 -0
  34. package/dist/canonical-log-line-processor--RlFDHhm.cjs.map +1 -0
  35. package/dist/canonical-log-line-processor-BcRuAdRk.d.ts +147 -0
  36. package/dist/canonical-log-line-processor-BcRuAdRk.d.ts.map +1 -0
  37. package/dist/canonical-log-line-processor-DbBQT5vY.js +366 -0
  38. package/dist/canonical-log-line-processor-DbBQT5vY.js.map +1 -0
  39. package/dist/canonical-log-line-processor-xvjMgtpF.d.cts +147 -0
  40. package/dist/canonical-log-line-processor-xvjMgtpF.d.cts.map +1 -0
  41. package/dist/config.cjs +118 -22
  42. package/dist/config.cjs.map +1 -1
  43. package/dist/config.d.cts +33 -45
  44. package/dist/config.d.cts.map +1 -0
  45. package/dist/config.d.ts +33 -45
  46. package/dist/config.d.ts.map +1 -0
  47. package/dist/config.js +116 -3
  48. package/dist/config.js.map +1 -1
  49. package/dist/correlated-events-Bzh5y-UB.js +28 -0
  50. package/dist/correlated-events-Bzh5y-UB.js.map +1 -0
  51. package/dist/correlated-events-kSwLo3mi.cjs +34 -0
  52. package/dist/correlated-events-kSwLo3mi.cjs.map +1 -0
  53. package/dist/correlation-id.cjs +11 -53
  54. package/dist/correlation-id.d.cts +6 -5
  55. package/dist/correlation-id.d.cts.map +1 -0
  56. package/dist/correlation-id.d.ts +6 -5
  57. package/dist/correlation-id.d.ts.map +1 -0
  58. package/dist/correlation-id.js +3 -16
  59. package/dist/db.cjs +244 -209
  60. package/dist/db.cjs.map +1 -1
  61. package/dist/db.d.cts +28 -26
  62. package/dist/db.d.cts.map +1 -0
  63. package/dist/db.d.ts +28 -26
  64. package/dist/db.d.ts.map +1 -0
  65. package/dist/db.js +243 -207
  66. package/dist/db.js.map +1 -1
  67. package/dist/decorators.cjs +39 -65
  68. package/dist/decorators.cjs.map +1 -1
  69. package/dist/decorators.d.cts +10 -37
  70. package/dist/decorators.d.cts.map +1 -0
  71. package/dist/decorators.d.ts +10 -37
  72. package/dist/decorators.d.ts.map +1 -0
  73. package/dist/decorators.js +38 -63
  74. package/dist/decorators.js.map +1 -1
  75. package/dist/define-event-CreknLm3.d.ts +25 -0
  76. package/dist/define-event-CreknLm3.d.ts.map +1 -0
  77. package/dist/define-event-HZRizPwz.d.cts +25 -0
  78. package/dist/define-event-HZRizPwz.d.cts.map +1 -0
  79. package/dist/drain-pipeline.cjs +111 -9
  80. package/dist/drain-pipeline.cjs.map +1 -1
  81. package/dist/drain-pipeline.d.cts +27 -32
  82. package/dist/drain-pipeline.d.cts.map +1 -0
  83. package/dist/drain-pipeline.d.ts +27 -32
  84. package/dist/drain-pipeline.d.ts.map +1 -0
  85. package/dist/drain-pipeline.js +111 -2
  86. package/dist/drain-pipeline.js.map +1 -1
  87. package/dist/enrichers.cjs +59 -66
  88. package/dist/enrichers.cjs.map +1 -1
  89. package/dist/enrichers.d.cts +15 -13
  90. package/dist/enrichers.d.cts.map +1 -0
  91. package/dist/enrichers.d.ts +15 -13
  92. package/dist/enrichers.d.ts.map +1 -0
  93. package/dist/enrichers.js +58 -65
  94. package/dist/enrichers.js.map +1 -1
  95. package/dist/event-Dlqr4ZNL.cjs +778 -0
  96. package/dist/event-Dlqr4ZNL.cjs.map +1 -0
  97. package/dist/event-_58ryBjh.js +761 -0
  98. package/dist/event-_58ryBjh.js.map +1 -0
  99. package/dist/event-subscriber-D1XLkPzi.d.cts +223 -0
  100. package/dist/event-subscriber-D1XLkPzi.d.cts.map +1 -0
  101. package/dist/event-subscriber-D1XLkPzi.d.ts +223 -0
  102. package/dist/event-subscriber-D1XLkPzi.d.ts.map +1 -0
  103. package/dist/event-subscriber.cjs +0 -6
  104. package/dist/event-subscriber.d.cts +2 -221
  105. package/dist/event-subscriber.d.ts +2 -221
  106. package/dist/event-subscriber.js +1 -3
  107. package/dist/event-testing-BqRnI0z4.d.cts +106 -0
  108. package/dist/event-testing-BqRnI0z4.d.cts.map +1 -0
  109. package/dist/event-testing-CfFs3to2.d.ts +106 -0
  110. package/dist/event-testing-CfFs3to2.d.ts.map +1 -0
  111. package/dist/event-testing.cjs +93 -17
  112. package/dist/event-testing.cjs.map +1 -1
  113. package/dist/event-testing.d.cts +2 -110
  114. package/dist/event-testing.d.ts +2 -110
  115. package/dist/event-testing.js +91 -2
  116. package/dist/event-testing.js.map +1 -1
  117. package/dist/event.cjs +5 -36
  118. package/dist/event.d.cts +295 -340
  119. package/dist/event.d.cts.map +1 -0
  120. package/dist/event.d.ts +295 -340
  121. package/dist/event.d.ts.map +1 -0
  122. package/dist/event.js +3 -20
  123. package/dist/exporters.cjs +12 -16
  124. package/dist/exporters.d.cts +86 -111
  125. package/dist/exporters.d.cts.map +1 -0
  126. package/dist/exporters.d.ts +86 -111
  127. package/dist/exporters.d.ts.map +1 -0
  128. package/dist/exporters.js +4 -4
  129. package/dist/filtering-span-processor-B8R8B7Uk.d.cts +59 -0
  130. package/dist/filtering-span-processor-B8R8B7Uk.d.cts.map +1 -0
  131. package/dist/filtering-span-processor-B8R8B7Uk.d.ts +59 -0
  132. package/dist/filtering-span-processor-B8R8B7Uk.d.ts.map +1 -0
  133. package/dist/filtering-span-processor.cjs +49 -9
  134. package/dist/filtering-span-processor.cjs.map +1 -1
  135. package/dist/filtering-span-processor.d.cts +2 -80
  136. package/dist/filtering-span-processor.d.ts +2 -80
  137. package/dist/filtering-span-processor.js +49 -2
  138. package/dist/filtering-span-processor.js.map +1 -1
  139. package/dist/functional-BGkT8J-h.js +1265 -0
  140. package/dist/functional-BGkT8J-h.js.map +1 -0
  141. package/dist/functional-C4CzoVrX.cjs +1312 -0
  142. package/dist/functional-C4CzoVrX.cjs.map +1 -0
  143. package/dist/functional.cjs +11 -56
  144. package/dist/functional.d.cts +96 -97
  145. package/dist/functional.d.cts.map +1 -0
  146. package/dist/functional.d.ts +96 -97
  147. package/dist/functional.d.ts.map +1 -0
  148. package/dist/functional.js +3 -19
  149. package/dist/http.cjs +276 -175
  150. package/dist/http.cjs.map +1 -1
  151. package/dist/http.d.cts +17 -37
  152. package/dist/http.d.cts.map +1 -0
  153. package/dist/http.d.ts +17 -37
  154. package/dist/http.d.ts.map +1 -0
  155. package/dist/http.js +275 -173
  156. package/dist/http.js.map +1 -1
  157. package/dist/index-CX0aG1Uh.d.ts +708 -0
  158. package/dist/index-CX0aG1Uh.d.ts.map +1 -0
  159. package/dist/index-DIWZFKUS.d.cts +708 -0
  160. package/dist/index-DIWZFKUS.d.cts.map +1 -0
  161. package/dist/index.cjs +1050 -1184
  162. package/dist/index.cjs.map +1 -1
  163. package/dist/index.d.cts +401 -570
  164. package/dist/index.d.cts.map +1 -0
  165. package/dist/index.d.ts +401 -570
  166. package/dist/index.d.ts.map +1 -0
  167. package/dist/index.js +913 -725
  168. package/dist/index.js.map +1 -1
  169. package/dist/init-CNp-ee80.d.cts +1157 -0
  170. package/dist/init-CNp-ee80.d.cts.map +1 -0
  171. package/dist/init-Ch6t7MNI.js +1015 -0
  172. package/dist/init-Ch6t7MNI.js.map +1 -0
  173. package/dist/init-DJQOdVlN.d.ts +1157 -0
  174. package/dist/init-DJQOdVlN.d.ts.map +1 -0
  175. package/dist/init-DvapOXCc.cjs +1092 -0
  176. package/dist/init-DvapOXCc.cjs.map +1 -0
  177. package/dist/instrumentation.cjs +159 -185
  178. package/dist/instrumentation.cjs.map +1 -1
  179. package/dist/instrumentation.d.cts +42 -40
  180. package/dist/instrumentation.d.cts.map +1 -0
  181. package/dist/instrumentation.d.ts +42 -40
  182. package/dist/instrumentation.d.ts.map +1 -0
  183. package/dist/instrumentation.js +158 -183
  184. package/dist/instrumentation.js.map +1 -1
  185. package/dist/logger-BauSUhUv.d.cts +313 -0
  186. package/dist/logger-BauSUhUv.d.cts.map +1 -0
  187. package/dist/logger-BauSUhUv.d.ts +313 -0
  188. package/dist/logger-BauSUhUv.d.ts.map +1 -0
  189. package/dist/logger.cjs +225 -25
  190. package/dist/logger.cjs.map +1 -1
  191. package/dist/logger.d.cts +2 -348
  192. package/dist/logger.d.ts +2 -348
  193. package/dist/logger.js +204 -4
  194. package/dist/logger.js.map +1 -1
  195. package/dist/messaging-adapters.cjs +292 -187
  196. package/dist/messaging-adapters.cjs.map +1 -1
  197. package/dist/messaging-adapters.d.cts +28 -66
  198. package/dist/messaging-adapters.d.cts.map +1 -0
  199. package/dist/messaging-adapters.d.ts +28 -66
  200. package/dist/messaging-adapters.d.ts.map +1 -0
  201. package/dist/messaging-adapters.js +291 -185
  202. package/dist/messaging-adapters.js.map +1 -1
  203. package/dist/messaging-testing.cjs +306 -372
  204. package/dist/messaging-testing.cjs.map +1 -1
  205. package/dist/messaging-testing.d.cts +194 -223
  206. package/dist/messaging-testing.d.cts.map +1 -0
  207. package/dist/messaging-testing.d.ts +194 -223
  208. package/dist/messaging-testing.d.ts.map +1 -0
  209. package/dist/messaging-testing.js +305 -371
  210. package/dist/messaging-testing.js.map +1 -1
  211. package/dist/messaging.cjs +757 -35
  212. package/dist/messaging.cjs.map +1 -1
  213. package/dist/messaging.d.cts +603 -644
  214. package/dist/messaging.d.cts.map +1 -0
  215. package/dist/messaging.d.ts +603 -644
  216. package/dist/messaging.d.ts.map +1 -0
  217. package/dist/messaging.js +756 -20
  218. package/dist/messaging.js.map +1 -1
  219. package/dist/metric-helpers.cjs +27 -27
  220. package/dist/metric-helpers.cjs.map +1 -1
  221. package/dist/metric-helpers.d.cts +4 -2
  222. package/dist/metric-helpers.d.cts.map +1 -0
  223. package/dist/metric-helpers.d.ts +4 -2
  224. package/dist/metric-helpers.d.ts.map +1 -0
  225. package/dist/metric-helpers.js +24 -4
  226. package/dist/metric-helpers.js.map +1 -1
  227. package/dist/metric-testing-DXdK3-Q3.d.ts +106 -0
  228. package/dist/metric-testing-DXdK3-Q3.d.ts.map +1 -0
  229. package/dist/metric-testing-MxvzChDp.d.cts +106 -0
  230. package/dist/metric-testing-MxvzChDp.d.cts.map +1 -0
  231. package/dist/metric-testing.cjs +93 -17
  232. package/dist/metric-testing.cjs.map +1 -1
  233. package/dist/metric-testing.d.cts +2 -110
  234. package/dist/metric-testing.d.ts +2 -110
  235. package/dist/metric-testing.js +91 -2
  236. package/dist/metric-testing.js.map +1 -1
  237. package/dist/metric.cjs +306 -22
  238. package/dist/metric.cjs.map +1 -1
  239. package/dist/metric.d.cts +170 -198
  240. package/dist/metric.d.cts.map +1 -0
  241. package/dist/metric.d.ts +170 -198
  242. package/dist/metric.d.ts.map +1 -0
  243. package/dist/metric.js +277 -7
  244. package/dist/metric.js.map +1 -1
  245. package/dist/node-require-DF5QBX6z.cjs +99 -0
  246. package/dist/node-require-DF5QBX6z.cjs.map +1 -0
  247. package/dist/node-require-Db1oDpLj.js +88 -0
  248. package/dist/node-require-Db1oDpLj.js.map +1 -0
  249. package/dist/operation-context-C-2hmmtP.js +59 -0
  250. package/dist/operation-context-C-2hmmtP.js.map +1 -0
  251. package/dist/operation-context-n4_obUwq.cjs +70 -0
  252. package/dist/operation-context-n4_obUwq.cjs.map +1 -0
  253. package/dist/parse-error.cjs +55 -9
  254. package/dist/parse-error.cjs.map +1 -1
  255. package/dist/parse-error.d.cts +12 -10
  256. package/dist/parse-error.d.cts.map +1 -0
  257. package/dist/parse-error.d.ts +12 -10
  258. package/dist/parse-error.d.ts.map +1 -0
  259. package/dist/parse-error.js +55 -2
  260. package/dist/parse-error.js.map +1 -1
  261. package/dist/pretty-console-exporter-CMzlrRNg.cjs +232 -0
  262. package/dist/pretty-console-exporter-CMzlrRNg.cjs.map +1 -0
  263. package/dist/pretty-console-exporter-DqKl_q9z.js +227 -0
  264. package/dist/pretty-console-exporter-DqKl_q9z.js.map +1 -0
  265. package/dist/processors.cjs +13 -17
  266. package/dist/processors.d.cts +3 -171
  267. package/dist/processors.d.ts +3 -171
  268. package/dist/processors.js +4 -4
  269. package/dist/register.cjs +35 -6
  270. package/dist/register.cjs.map +1 -1
  271. package/dist/register.d.cts +1 -2
  272. package/dist/register.d.ts +1 -2
  273. package/dist/register.js +36 -3
  274. package/dist/register.js.map +1 -1
  275. package/dist/registry-DfXA3R1L.js +184 -0
  276. package/dist/registry-DfXA3R1L.js.map +1 -0
  277. package/dist/registry-JZg2J3RZ.cjs +334 -0
  278. package/dist/registry-JZg2J3RZ.cjs.map +1 -0
  279. package/dist/sampling-CR0Va1VB.d.ts +351 -0
  280. package/dist/sampling-CR0Va1VB.d.ts.map +1 -0
  281. package/dist/sampling-DfYhDJij.d.cts +351 -0
  282. package/dist/sampling-DfYhDJij.d.cts.map +1 -0
  283. package/dist/sampling.cjs +452 -60
  284. package/dist/sampling.cjs.map +1 -1
  285. package/dist/sampling.d.cts +2 -379
  286. package/dist/sampling.d.ts +2 -379
  287. package/dist/sampling.js +441 -5
  288. package/dist/sampling.js.map +1 -1
  289. package/dist/security-schema.cjs +65 -46
  290. package/dist/security-schema.cjs.map +1 -1
  291. package/dist/security-schema.d.cts +23 -26
  292. package/dist/security-schema.d.cts.map +1 -0
  293. package/dist/security-schema.d.ts +23 -26
  294. package/dist/security-schema.d.ts.map +1 -0
  295. package/dist/security-schema.js +64 -45
  296. package/dist/security-schema.js.map +1 -1
  297. package/dist/semantic-conventions-FhSxv-bK.d.cts +32 -0
  298. package/dist/semantic-conventions-FhSxv-bK.d.cts.map +1 -0
  299. package/dist/semantic-conventions-FhSxv-bK.d.ts +32 -0
  300. package/dist/semantic-conventions-FhSxv-bK.d.ts.map +1 -0
  301. package/dist/semantic-conventions.cjs +15 -26
  302. package/dist/semantic-conventions.cjs.map +1 -1
  303. package/dist/semantic-conventions.d.cts +2 -29
  304. package/dist/semantic-conventions.d.ts +2 -29
  305. package/dist/semantic-conventions.js +12 -3
  306. package/dist/semantic-conventions.js.map +1 -1
  307. package/dist/semantic-helpers.cjs +440 -38
  308. package/dist/semantic-helpers.cjs.map +1 -1
  309. package/dist/semantic-helpers.d.cts +38 -45
  310. package/dist/semantic-helpers.d.cts.map +1 -0
  311. package/dist/semantic-helpers.d.ts +38 -45
  312. package/dist/semantic-helpers.d.ts.map +1 -0
  313. package/dist/semantic-helpers.js +438 -19
  314. package/dist/semantic-helpers.js.map +1 -1
  315. package/dist/span-name-normalizer-8ZOGJuwv.d.cts +70 -0
  316. package/dist/span-name-normalizer-8ZOGJuwv.d.cts.map +1 -0
  317. package/dist/span-name-normalizer-8ZOGJuwv.d.ts +70 -0
  318. package/dist/span-name-normalizer-8ZOGJuwv.d.ts.map +1 -0
  319. package/dist/span-name-normalizer.cjs +95 -17
  320. package/dist/span-name-normalizer.cjs.map +1 -1
  321. package/dist/span-name-normalizer.d.cts +2 -94
  322. package/dist/span-name-normalizer.d.ts +2 -94
  323. package/dist/span-name-normalizer.js +93 -2
  324. package/dist/span-name-normalizer.js.map +1 -1
  325. package/dist/stable-hash-BNTMrmdB.cjs +28 -0
  326. package/dist/stable-hash-BNTMrmdB.cjs.map +1 -0
  327. package/dist/stable-hash-Cg5cT34Q.js +23 -0
  328. package/dist/stable-hash-Cg5cT34Q.js.map +1 -0
  329. package/dist/structured-error-9--cxBay.js +143 -0
  330. package/dist/structured-error-9--cxBay.js.map +1 -0
  331. package/dist/structured-error-CHg7DoIQ.cjs +178 -0
  332. package/dist/structured-error-CHg7DoIQ.cjs.map +1 -0
  333. package/dist/tail-sampling-processor.cjs +26 -13
  334. package/dist/tail-sampling-processor.cjs.map +1 -1
  335. package/dist/tail-sampling-processor.d.cts +11 -23
  336. package/dist/tail-sampling-processor.d.cts.map +1 -0
  337. package/dist/tail-sampling-processor.d.ts +11 -23
  338. package/dist/tail-sampling-processor.d.ts.map +1 -0
  339. package/dist/tail-sampling-processor.js +27 -6
  340. package/dist/tail-sampling-processor.js.map +1 -1
  341. package/dist/test-span-collector.cjs +70 -72
  342. package/dist/test-span-collector.cjs.map +1 -1
  343. package/dist/test-span-collector.d.cts +25 -43
  344. package/dist/test-span-collector.d.cts.map +1 -0
  345. package/dist/test-span-collector.d.ts +25 -43
  346. package/dist/test-span-collector.d.ts.map +1 -0
  347. package/dist/test-span-collector.js +69 -70
  348. package/dist/test-span-collector.js.map +1 -1
  349. package/dist/testing.cjs +389 -278
  350. package/dist/testing.cjs.map +1 -1
  351. package/dist/testing.d.cts +39 -62
  352. package/dist/testing.d.cts.map +1 -0
  353. package/dist/testing.d.ts +39 -62
  354. package/dist/testing.d.ts.map +1 -0
  355. package/dist/testing.js +386 -265
  356. package/dist/testing.js.map +1 -1
  357. package/dist/trace-context-Cijqoi6e.d.cts +212 -0
  358. package/dist/trace-context-Cijqoi6e.d.cts.map +1 -0
  359. package/dist/trace-context-Cijqoi6e.d.ts +212 -0
  360. package/dist/trace-context-Cijqoi6e.d.ts.map +1 -0
  361. package/dist/trace-helpers.cjs +634 -54
  362. package/dist/trace-helpers.cjs.map +1 -1
  363. package/dist/trace-helpers.d.cts +17 -49
  364. package/dist/trace-helpers.d.cts.map +1 -0
  365. package/dist/trace-helpers.d.ts +17 -49
  366. package/dist/trace-helpers.d.ts.map +1 -0
  367. package/dist/trace-helpers.js +624 -3
  368. package/dist/trace-helpers.js.map +1 -1
  369. package/dist/tracer-provider.cjs +227 -16
  370. package/dist/tracer-provider.cjs.map +1 -1
  371. package/dist/tracer-provider.d.cts +5 -4
  372. package/dist/tracer-provider.d.cts.map +1 -0
  373. package/dist/tracer-provider.d.ts +5 -4
  374. package/dist/tracer-provider.d.ts.map +1 -0
  375. package/dist/tracer-provider.js +227 -2
  376. package/dist/tracer-provider.js.map +1 -1
  377. package/dist/track-3HY4NGV-.cjs +1212 -0
  378. package/dist/track-3HY4NGV-.cjs.map +1 -0
  379. package/dist/track-nsKVy-pj.js +1111 -0
  380. package/dist/track-nsKVy-pj.js.map +1 -0
  381. package/dist/validate.cjs +201 -0
  382. package/dist/validate.cjs.map +1 -0
  383. package/dist/validate.d.cts +105 -0
  384. package/dist/validate.d.cts.map +1 -0
  385. package/dist/validate.d.ts +105 -0
  386. package/dist/validate.d.ts.map +1 -0
  387. package/dist/validate.js +197 -0
  388. package/dist/validate.js.map +1 -0
  389. package/dist/validation-attributes.cjs +45 -0
  390. package/dist/validation-attributes.cjs.map +1 -0
  391. package/dist/validation-attributes.d.cts +33 -0
  392. package/dist/validation-attributes.d.cts.map +1 -0
  393. package/dist/validation-attributes.d.ts +33 -0
  394. package/dist/validation-attributes.d.ts.map +1 -0
  395. package/dist/validation-attributes.js +41 -0
  396. package/dist/validation-attributes.js.map +1 -0
  397. package/dist/webhook.cjs +286 -255
  398. package/dist/webhook.cjs.map +1 -1
  399. package/dist/webhook.d.cts +157 -192
  400. package/dist/webhook.d.cts.map +1 -0
  401. package/dist/webhook.d.ts +157 -192
  402. package/dist/webhook.d.ts.map +1 -0
  403. package/dist/webhook.js +285 -253
  404. package/dist/webhook.js.map +1 -1
  405. package/dist/workflow-distributed.cjs +498 -411
  406. package/dist/workflow-distributed.cjs.map +1 -1
  407. package/dist/workflow-distributed.d.cts +163 -173
  408. package/dist/workflow-distributed.d.cts.map +1 -0
  409. package/dist/workflow-distributed.d.ts +163 -173
  410. package/dist/workflow-distributed.d.ts.map +1 -0
  411. package/dist/workflow-distributed.js +497 -409
  412. package/dist/workflow-distributed.js.map +1 -1
  413. package/dist/workflow.cjs +405 -39
  414. package/dist/workflow.cjs.map +1 -1
  415. package/dist/workflow.d.cts +78 -131
  416. package/dist/workflow.d.cts.map +1 -0
  417. package/dist/workflow.d.ts +78 -131
  418. package/dist/workflow.d.ts.map +1 -0
  419. package/dist/workflow.js +403 -20
  420. package/dist/workflow.js.map +1 -1
  421. package/dist/yaml-config-B3dQ82GR.cjs +272 -0
  422. package/dist/yaml-config-B3dQ82GR.cjs.map +1 -0
  423. package/dist/yaml-config.cjs +5 -24
  424. package/dist/yaml-config.d.cts +30 -64
  425. package/dist/yaml-config.d.cts.map +1 -0
  426. package/dist/yaml-config.d.ts +30 -64
  427. package/dist/yaml-config.d.ts.map +1 -0
  428. package/dist/yaml-config.js +226 -7
  429. package/dist/yaml-config.js.map +1 -1
  430. package/package.json +14 -4
  431. package/src/define-event.ts +2 -21
  432. package/src/index.ts +3 -0
  433. package/src/request-logger.test.ts +53 -1
  434. package/src/request-logger.ts +58 -0
  435. package/src/stable-hash.ts +27 -0
  436. package/src/validate.test.ts +287 -0
  437. package/src/validate.ts +307 -0
  438. package/src/validation-attributes.ts +43 -0
  439. package/dist/attributes.cjs.map +0 -1
  440. package/dist/attributes.js.map +0 -1
  441. package/dist/chunk-2ZKEORFN.cjs +0 -14
  442. package/dist/chunk-2ZKEORFN.cjs.map +0 -1
  443. package/dist/chunk-3QXBFGKP.js +0 -344
  444. package/dist/chunk-3QXBFGKP.js.map +0 -1
  445. package/dist/chunk-454CH4OV.js +0 -744
  446. package/dist/chunk-454CH4OV.js.map +0 -1
  447. package/dist/chunk-4A53YIAX.js +0 -180
  448. package/dist/chunk-4A53YIAX.js.map +0 -1
  449. package/dist/chunk-4IFSYQVX.js +0 -337
  450. package/dist/chunk-4IFSYQVX.js.map +0 -1
  451. package/dist/chunk-4P6ZOARG.cjs +0 -33
  452. package/dist/chunk-4P6ZOARG.cjs.map +0 -1
  453. package/dist/chunk-55ER2KD5.js +0 -228
  454. package/dist/chunk-55ER2KD5.js.map +0 -1
  455. package/dist/chunk-5ZN622AO.js +0 -73
  456. package/dist/chunk-5ZN622AO.js.map +0 -1
  457. package/dist/chunk-6S5RUKU3.cjs +0 -347
  458. package/dist/chunk-6S5RUKU3.cjs.map +0 -1
  459. package/dist/chunk-6UQRVUN3.js +0 -222
  460. package/dist/chunk-6UQRVUN3.js.map +0 -1
  461. package/dist/chunk-7552UTQW.js +0 -11
  462. package/dist/chunk-7552UTQW.js.map +0 -1
  463. package/dist/chunk-7EQ4G4SI.cjs +0 -146
  464. package/dist/chunk-7EQ4G4SI.cjs.map +0 -1
  465. package/dist/chunk-7SAWIN74.js +0 -285
  466. package/dist/chunk-7SAWIN74.js.map +0 -1
  467. package/dist/chunk-A4E5AQFK.js +0 -30
  468. package/dist/chunk-A4E5AQFK.js.map +0 -1
  469. package/dist/chunk-AC5GNZKB.cjs +0 -344
  470. package/dist/chunk-AC5GNZKB.cjs.map +0 -1
  471. package/dist/chunk-ALPYR2GC.js +0 -1061
  472. package/dist/chunk-ALPYR2GC.js.map +0 -1
  473. package/dist/chunk-BZHG5IZ4.js +0 -73
  474. package/dist/chunk-BZHG5IZ4.js.map +0 -1
  475. package/dist/chunk-CEAQK2QY.cjs +0 -32
  476. package/dist/chunk-CEAQK2QY.cjs.map +0 -1
  477. package/dist/chunk-CMHVQR6P.js +0 -170
  478. package/dist/chunk-CMHVQR6P.js.map +0 -1
  479. package/dist/chunk-CU6IDACR.cjs +0 -224
  480. package/dist/chunk-CU6IDACR.cjs.map +0 -1
  481. package/dist/chunk-DPSA4QLA.js +0 -344
  482. package/dist/chunk-DPSA4QLA.js.map +0 -1
  483. package/dist/chunk-DQEHQNQE.js +0 -795
  484. package/dist/chunk-DQEHQNQE.js.map +0 -1
  485. package/dist/chunk-ESLWRGAG.cjs +0 -92
  486. package/dist/chunk-ESLWRGAG.cjs.map +0 -1
  487. package/dist/chunk-ESMHTKLJ.cjs +0 -206
  488. package/dist/chunk-ESMHTKLJ.cjs.map +0 -1
  489. package/dist/chunk-FGNDN2FD.cjs +0 -1242
  490. package/dist/chunk-FGNDN2FD.cjs.map +0 -1
  491. package/dist/chunk-FU6R566Y.cjs +0 -236
  492. package/dist/chunk-FU6R566Y.cjs.map +0 -1
  493. package/dist/chunk-GBFTC7Q7.cjs +0 -837
  494. package/dist/chunk-GBFTC7Q7.cjs.map +0 -1
  495. package/dist/chunk-GYR5K654.js +0 -91
  496. package/dist/chunk-GYR5K654.js.map +0 -1
  497. package/dist/chunk-HA2WBOGQ.js +0 -57
  498. package/dist/chunk-HA2WBOGQ.js.map +0 -1
  499. package/dist/chunk-HT5JQKN2.js +0 -118
  500. package/dist/chunk-HT5JQKN2.js.map +0 -1
  501. package/dist/chunk-INJD3G4K.cjs +0 -340
  502. package/dist/chunk-INJD3G4K.cjs.map +0 -1
  503. package/dist/chunk-IOYFAFHJ.cjs +0 -95
  504. package/dist/chunk-IOYFAFHJ.cjs.map +0 -1
  505. package/dist/chunk-J5QENANM.js +0 -87
  506. package/dist/chunk-J5QENANM.js.map +0 -1
  507. package/dist/chunk-J7VGRIAJ.js +0 -64
  508. package/dist/chunk-J7VGRIAJ.js.map +0 -1
  509. package/dist/chunk-KFOHQK7X.js +0 -144
  510. package/dist/chunk-KFOHQK7X.js.map +0 -1
  511. package/dist/chunk-KIL5CUN6.js +0 -31
  512. package/dist/chunk-KIL5CUN6.js.map +0 -1
  513. package/dist/chunk-LITNXTTT.js +0 -3
  514. package/dist/chunk-LITNXTTT.js.map +0 -1
  515. package/dist/chunk-M3LFHHTN.cjs +0 -764
  516. package/dist/chunk-M3LFHHTN.cjs.map +0 -1
  517. package/dist/chunk-NEIB3TLD.cjs +0 -360
  518. package/dist/chunk-NEIB3TLD.cjs.map +0 -1
  519. package/dist/chunk-NVAI5CCN.cjs +0 -39
  520. package/dist/chunk-NVAI5CCN.cjs.map +0 -1
  521. package/dist/chunk-NVGPMGI4.js +0 -95
  522. package/dist/chunk-NVGPMGI4.js.map +0 -1
  523. package/dist/chunk-NZ72VDNY.cjs +0 -4
  524. package/dist/chunk-NZ72VDNY.cjs.map +0 -1
  525. package/dist/chunk-O4JZUCUE.js +0 -1174
  526. package/dist/chunk-O4JZUCUE.js.map +0 -1
  527. package/dist/chunk-O7JOKRN2.js +0 -833
  528. package/dist/chunk-O7JOKRN2.js.map +0 -1
  529. package/dist/chunk-OPPXYVEZ.cjs +0 -131
  530. package/dist/chunk-OPPXYVEZ.cjs.map +0 -1
  531. package/dist/chunk-Q4EULJQY.js +0 -35
  532. package/dist/chunk-Q4EULJQY.js.map +0 -1
  533. package/dist/chunk-QWW3E3JM.cjs +0 -178
  534. package/dist/chunk-QWW3E3JM.cjs.map +0 -1
  535. package/dist/chunk-R7QYGZUP.cjs +0 -1075
  536. package/dist/chunk-R7QYGZUP.cjs.map +0 -1
  537. package/dist/chunk-RUPKBKUF.js +0 -352
  538. package/dist/chunk-RUPKBKUF.js.map +0 -1
  539. package/dist/chunk-SEO6NAQT.js +0 -14
  540. package/dist/chunk-SEO6NAQT.js.map +0 -1
  541. package/dist/chunk-T4B5LB6E.cjs +0 -66
  542. package/dist/chunk-T4B5LB6E.cjs.map +0 -1
  543. package/dist/chunk-TC5ZPWM4.cjs +0 -289
  544. package/dist/chunk-TC5ZPWM4.cjs.map +0 -1
  545. package/dist/chunk-TQ5UWA7S.js +0 -26
  546. package/dist/chunk-TQ5UWA7S.js.map +0 -1
  547. package/dist/chunk-URHPSJW2.js +0 -339
  548. package/dist/chunk-URHPSJW2.js.map +0 -1
  549. package/dist/chunk-UY3UYPBZ.cjs +0 -77
  550. package/dist/chunk-UY3UYPBZ.cjs.map +0 -1
  551. package/dist/chunk-VG2ABKJX.cjs +0 -100
  552. package/dist/chunk-VG2ABKJX.cjs.map +0 -1
  553. package/dist/chunk-VH77IPJN.cjs +0 -358
  554. package/dist/chunk-VH77IPJN.cjs.map +0 -1
  555. package/dist/chunk-VQTCQKHQ.cjs +0 -17
  556. package/dist/chunk-VQTCQKHQ.cjs.map +0 -1
  557. package/dist/chunk-WGWSHJ2N.js +0 -38
  558. package/dist/chunk-WGWSHJ2N.js.map +0 -1
  559. package/dist/chunk-WJH6IYU2.cjs +0 -32
  560. package/dist/chunk-WJH6IYU2.cjs.map +0 -1
  561. package/dist/chunk-YREV3LGG.cjs +0 -61
  562. package/dist/chunk-YREV3LGG.cjs.map +0 -1
  563. package/dist/chunk-YTXEZ4SD.cjs +0 -77
  564. package/dist/chunk-YTXEZ4SD.cjs.map +0 -1
  565. package/dist/chunk-YWCESU4Y.js +0 -1233
  566. package/dist/chunk-YWCESU4Y.js.map +0 -1
  567. package/dist/chunk-Z6HRSM2Y.cjs +0 -799
  568. package/dist/chunk-Z6HRSM2Y.cjs.map +0 -1
  569. package/dist/chunk-Z7PW3KHL.cjs +0 -1198
  570. package/dist/chunk-Z7PW3KHL.cjs.map +0 -1
  571. package/dist/chunk-ZNMBW67B.cjs +0 -40
  572. package/dist/chunk-ZNMBW67B.cjs.map +0 -1
  573. package/dist/correlation-id.cjs.map +0 -1
  574. package/dist/correlation-id.js.map +0 -1
  575. package/dist/event-subscriber.cjs.map +0 -1
  576. package/dist/event-subscriber.js.map +0 -1
  577. package/dist/event.cjs.map +0 -1
  578. package/dist/event.js.map +0 -1
  579. package/dist/exporters.cjs.map +0 -1
  580. package/dist/exporters.js.map +0 -1
  581. package/dist/functional.cjs.map +0 -1
  582. package/dist/functional.js.map +0 -1
  583. package/dist/init-DIowiiCh.d.ts +0 -1167
  584. package/dist/init-j-A1zI16.d.cts +0 -1167
  585. package/dist/processors.cjs.map +0 -1
  586. package/dist/processors.js.map +0 -1
  587. package/dist/trace-context-DbGKd1Rn.d.cts +0 -213
  588. package/dist/trace-context-DbGKd1Rn.d.ts +0 -213
  589. package/dist/utils-BahBCFtJ.d.cts +0 -712
  590. package/dist/utils-CLKwaUlG.d.ts +0 -712
  591. package/dist/yaml-config.cjs.map +0 -1
@@ -1,49 +1,7 @@
1
- import { Attributes, SpanContext, Link, AttributeValue } from '@opentelemetry/api';
2
- import { T as TraceContext } from './trace-context-DbGKd1Rn.js';
3
-
4
- /**
5
- * Messaging helpers for event-driven architectures
6
- *
7
- * Provides specialized tracing for message producers and consumers
8
- * with automatic context propagation, link extraction, and OTel
9
- * semantic convention compliance.
10
- *
11
- * @example Producer
12
- * ```typescript
13
- * import { traceProducer } from 'autotel/messaging';
14
- *
15
- * export const publishEvent = traceProducer({
16
- * system: 'kafka',
17
- * destination: 'user-events',
18
- * })(ctx => async (event: UserEvent) => {
19
- * const headers = ctx.getTraceHeaders();
20
- * await producer.send({
21
- * topic: 'user-events',
22
- * messages: [{ value: JSON.stringify(event), headers }]
23
- * });
24
- * });
25
- * ```
26
- *
27
- * @example Consumer
28
- * ```typescript
29
- * import { traceConsumer } from 'autotel/messaging';
30
- *
31
- * export const processEvents = traceConsumer({
32
- * system: 'kafka',
33
- * destination: 'user-events',
34
- * consumerGroup: 'event-processor',
35
- * batchMode: true,
36
- * })(ctx => async (messages: KafkaMessage[]) => {
37
- * // Links to producer spans are automatically extracted
38
- * for (const msg of messages) {
39
- * await processMessage(msg);
40
- * }
41
- * });
42
- * ```
43
- *
44
- * @module
45
- */
1
+ import { n as TraceContext } from "./trace-context-Cijqoi6e.js";
2
+ import { AttributeValue, Attributes, Link, SpanContext } from "@opentelemetry/api";
46
3
 
4
+ //#region src/messaging.d.ts
47
5
  /**
48
6
  * Supported messaging systems
49
7
  */
@@ -56,293 +14,293 @@ type MessagingOperation = 'publish' | 'receive' | 'process' | 'settle';
56
14
  * Configuration for producer tracing
57
15
  */
58
16
  interface ProducerConfig {
59
- /** Messaging system (kafka, rabbitmq, sqs, etc.) */
60
- system: MessagingSystem;
61
- /** Destination name (topic/queue) */
62
- destination: string;
63
- /** Extract message ID from arguments */
64
- messageIdFrom?: string | ((args: unknown[]) => string | undefined);
65
- /** Extract partition from arguments (Kafka-specific) */
66
- partitionFrom?: string | ((args: unknown[]) => number | undefined);
67
- /** Extract message key from arguments (Kafka-specific) */
68
- keyFrom?: string | ((args: unknown[]) => string | undefined);
69
- /** Additional attributes to set on span */
70
- attributes?: Attributes;
71
- /** Propagate baggage in message headers */
72
- propagateBaggage?: boolean;
73
- /** Callback before sending (for custom attributes) */
74
- beforeSend?: (ctx: ProducerContext, args: unknown[]) => void;
75
- /** Callback on error */
76
- onError?: (error: Error, ctx: ProducerContext) => void;
77
- /**
78
- * Hook to add system-specific attributes
79
- *
80
- * Use this to add attributes for messaging systems not explicitly supported
81
- * (e.g., NATS, Temporal, Cloudflare Queues, Redis Streams).
82
- *
83
- * @example NATS attributes
84
- * ```typescript
85
- * customAttributes: (ctx, args) => ({
86
- * 'nats.subject': args[0].subject,
87
- * 'nats.reply_to': args[0].replyTo,
88
- * 'nats.stream': 'orders',
89
- * })
90
- * ```
91
- *
92
- * @example Temporal attributes
93
- * ```typescript
94
- * customAttributes: (ctx, args) => ({
95
- * 'temporal.workflow_id': args[0].workflowId,
96
- * 'temporal.run_id': args[0].runId,
97
- * 'temporal.task_queue': 'orders-queue',
98
- * })
99
- * ```
100
- */
101
- customAttributes?: (ctx: ProducerContext, args: unknown[]) => Record<string, AttributeValue>;
102
- /**
103
- * Hook for custom header injection (beyond W3C traceparent)
104
- *
105
- * Use this to inject headers for systems that use non-standard
106
- * context propagation formats.
107
- *
108
- * @example Datadog headers
109
- * ```typescript
110
- * customHeaders: (ctx) => ({
111
- * 'x-datadog-trace-id': ctx.getTraceId(),
112
- * 'x-datadog-parent-id': ctx.getSpanId(),
113
- * })
114
- * ```
115
- *
116
- * @example Custom correlation headers
117
- * ```typescript
118
- * customHeaders: (ctx) => ({
119
- * 'x-correlation-id': correlationId,
120
- * 'x-request-id': requestId,
121
- * })
122
- * ```
123
- */
124
- customHeaders?: (ctx: ProducerContext) => Record<string, string>;
17
+ /** Messaging system (kafka, rabbitmq, sqs, etc.) */
18
+ system: MessagingSystem;
19
+ /** Destination name (topic/queue) */
20
+ destination: string;
21
+ /** Extract message ID from arguments */
22
+ messageIdFrom?: string | ((args: unknown[]) => string | undefined);
23
+ /** Extract partition from arguments (Kafka-specific) */
24
+ partitionFrom?: string | ((args: unknown[]) => number | undefined);
25
+ /** Extract message key from arguments (Kafka-specific) */
26
+ keyFrom?: string | ((args: unknown[]) => string | undefined);
27
+ /** Additional attributes to set on span */
28
+ attributes?: Attributes;
29
+ /** Propagate baggage in message headers */
30
+ propagateBaggage?: boolean;
31
+ /** Callback before sending (for custom attributes) */
32
+ beforeSend?: (ctx: ProducerContext, args: unknown[]) => void;
33
+ /** Callback on error */
34
+ onError?: (error: Error, ctx: ProducerContext) => void;
35
+ /**
36
+ * Hook to add system-specific attributes
37
+ *
38
+ * Use this to add attributes for messaging systems not explicitly supported
39
+ * (e.g., NATS, Temporal, Cloudflare Queues, Redis Streams).
40
+ *
41
+ * @example NATS attributes
42
+ * ```typescript
43
+ * customAttributes: (ctx, args) => ({
44
+ * 'nats.subject': args[0].subject,
45
+ * 'nats.reply_to': args[0].replyTo,
46
+ * 'nats.stream': 'orders',
47
+ * })
48
+ * ```
49
+ *
50
+ * @example Temporal attributes
51
+ * ```typescript
52
+ * customAttributes: (ctx, args) => ({
53
+ * 'temporal.workflow_id': args[0].workflowId,
54
+ * 'temporal.run_id': args[0].runId,
55
+ * 'temporal.task_queue': 'orders-queue',
56
+ * })
57
+ * ```
58
+ */
59
+ customAttributes?: (ctx: ProducerContext, args: unknown[]) => Record<string, AttributeValue>;
60
+ /**
61
+ * Hook for custom header injection (beyond W3C traceparent)
62
+ *
63
+ * Use this to inject headers for systems that use non-standard
64
+ * context propagation formats.
65
+ *
66
+ * @example Datadog headers
67
+ * ```typescript
68
+ * customHeaders: (ctx) => ({
69
+ * 'x-datadog-trace-id': ctx.getTraceId(),
70
+ * 'x-datadog-parent-id': ctx.getSpanId(),
71
+ * })
72
+ * ```
73
+ *
74
+ * @example Custom correlation headers
75
+ * ```typescript
76
+ * customHeaders: (ctx) => ({
77
+ * 'x-correlation-id': correlationId,
78
+ * 'x-request-id': requestId,
79
+ * })
80
+ * ```
81
+ */
82
+ customHeaders?: (ctx: ProducerContext) => Record<string, string>;
125
83
  }
126
84
  /**
127
85
  * Configuration for consumer tracing
128
86
  */
129
87
  interface ConsumerConfig {
130
- /** Messaging system (kafka, rabbitmq, sqs, etc.) */
131
- system: MessagingSystem;
132
- /** Destination name (topic/queue) */
133
- destination: string;
134
- /** Consumer group name */
135
- consumerGroup?: string;
136
- /** Extract headers from message for link creation */
137
- headersFrom?: string | ((msg: unknown) => Record<string, string> | undefined);
138
- /** Enable batch mode - extract links from all messages */
139
- batchMode?: boolean;
140
- /** Extract baggage from message headers */
141
- extractBaggage?: boolean;
142
- /** Additional attributes to set on span */
143
- attributes?: Attributes;
144
- /** Consumer lag metrics extraction */
145
- lagMetrics?: LagMetricsConfig;
146
- /** Callback when message goes to DLQ */
147
- onDLQ?: (ctx: ConsumerContext, reason: string) => void;
148
- /** Callback on error */
149
- onError?: (error: Error, ctx: ConsumerContext) => void;
150
- /**
151
- * Message ordering configuration
152
- *
153
- * Enable sequence tracking, out-of-order detection, and deduplication.
154
- *
155
- * @example Kafka ordering
156
- * ```typescript
157
- * ordering: {
158
- * sequenceFrom: (msg) => msg.offset,
159
- * partitionKeyFrom: (msg) => msg.key,
160
- * detectOutOfOrder: true,
161
- * onOutOfOrder: (ctx, info) => {
162
- * console.warn(`Out of order: expected ${info.expectedSequence}, got ${info.currentSequence}`);
163
- * },
164
- * }
165
- * ```
166
- */
167
- ordering?: OrderingConfig;
168
- /**
169
- * Consumer group tracking configuration
170
- *
171
- * Enables observability of consumer group state, including membership,
172
- * partition assignments, and rebalancing events.
173
- *
174
- * @example Kafka consumer group tracking
175
- * ```typescript
176
- * consumerGroupTracking: {
177
- * memberId: () => consumer.memberId,
178
- * groupInstanceId: process.env.KAFKA_GROUP_INSTANCE_ID,
179
- * onRebalance: (ctx, event) => {
180
- * if (event.type === 'revoked') {
181
- * logger.warn('Partitions revoked', event.partitions);
182
- * }
183
- * },
184
- * trackPartitionLag: true,
185
- * }
186
- * ```
187
- */
188
- consumerGroupTracking?: ConsumerGroupTrackingConfig;
189
- /**
190
- * Hook to add system-specific attributes
191
- *
192
- * Use this to add attributes for messaging systems not explicitly supported
193
- * (e.g., NATS, Temporal, Cloudflare Queues, Redis Streams).
194
- *
195
- * @example NATS consumer attributes
196
- * ```typescript
197
- * customAttributes: (ctx, msg) => ({
198
- * 'nats.subject': msg.subject,
199
- * 'nats.stream': msg.info?.stream,
200
- * 'nats.consumer': msg.info?.consumer,
201
- * 'nats.delivered_count': msg.info?.redeliveryCount,
202
- * })
203
- * ```
204
- *
205
- * @example Cloudflare Queue attributes
206
- * ```typescript
207
- * customAttributes: (ctx, msg) => ({
208
- * 'cloudflare.queue_id': msg.id,
209
- * 'cloudflare.timestamp_ms': msg.timestamp.getTime(),
210
- * 'cloudflare.attempts': msg.attempts,
211
- * })
212
- * ```
213
- */
214
- customAttributes?: (ctx: ConsumerContext, msg: unknown) => Record<string, AttributeValue>;
215
- /**
216
- * Hook for custom context extraction (beyond W3C traceparent)
217
- *
218
- * Use this to extract parent span context from systems that use
219
- * non-standard header formats.
220
- *
221
- * @example Datadog context extraction
222
- * ```typescript
223
- * customContextExtractor: (headers) => {
224
- * const traceId = headers['x-datadog-trace-id'];
225
- * const spanId = headers['x-datadog-parent-id'];
226
- * if (!traceId || !spanId) return null;
227
- * return {
228
- * traceId: traceIdToOtel(traceId),
229
- * spanId: spanIdToOtel(spanId),
230
- * traceFlags: TraceFlags.SAMPLED,
231
- * };
232
- * }
233
- * ```
234
- *
235
- * @example B3 format extraction
236
- * ```typescript
237
- * customContextExtractor: (headers) => {
238
- * const traceId = headers['x-b3-traceid'];
239
- * const spanId = headers['x-b3-spanid'];
240
- * const sampled = headers['x-b3-sampled'] === '1';
241
- * if (!traceId || !spanId) return null;
242
- * return {
243
- * traceId,
244
- * spanId,
245
- * traceFlags: sampled ? TraceFlags.SAMPLED : TraceFlags.NONE,
246
- * };
247
- * }
248
- * ```
249
- */
250
- customContextExtractor?: (headers: Record<string, string>) => SpanContext | null;
88
+ /** Messaging system (kafka, rabbitmq, sqs, etc.) */
89
+ system: MessagingSystem;
90
+ /** Destination name (topic/queue) */
91
+ destination: string;
92
+ /** Consumer group name */
93
+ consumerGroup?: string;
94
+ /** Extract headers from message for link creation */
95
+ headersFrom?: string | ((msg: unknown) => Record<string, string> | undefined);
96
+ /** Enable batch mode - extract links from all messages */
97
+ batchMode?: boolean;
98
+ /** Extract baggage from message headers */
99
+ extractBaggage?: boolean;
100
+ /** Additional attributes to set on span */
101
+ attributes?: Attributes;
102
+ /** Consumer lag metrics extraction */
103
+ lagMetrics?: LagMetricsConfig;
104
+ /** Callback when message goes to DLQ */
105
+ onDLQ?: (ctx: ConsumerContext, reason: string) => void;
106
+ /** Callback on error */
107
+ onError?: (error: Error, ctx: ConsumerContext) => void;
108
+ /**
109
+ * Message ordering configuration
110
+ *
111
+ * Enable sequence tracking, out-of-order detection, and deduplication.
112
+ *
113
+ * @example Kafka ordering
114
+ * ```typescript
115
+ * ordering: {
116
+ * sequenceFrom: (msg) => msg.offset,
117
+ * partitionKeyFrom: (msg) => msg.key,
118
+ * detectOutOfOrder: true,
119
+ * onOutOfOrder: (ctx, info) => {
120
+ * console.warn(`Out of order: expected ${info.expectedSequence}, got ${info.currentSequence}`);
121
+ * },
122
+ * }
123
+ * ```
124
+ */
125
+ ordering?: OrderingConfig;
126
+ /**
127
+ * Consumer group tracking configuration
128
+ *
129
+ * Enables observability of consumer group state, including membership,
130
+ * partition assignments, and rebalancing events.
131
+ *
132
+ * @example Kafka consumer group tracking
133
+ * ```typescript
134
+ * consumerGroupTracking: {
135
+ * memberId: () => consumer.memberId,
136
+ * groupInstanceId: process.env.KAFKA_GROUP_INSTANCE_ID,
137
+ * onRebalance: (ctx, event) => {
138
+ * if (event.type === 'revoked') {
139
+ * logger.warn('Partitions revoked', event.partitions);
140
+ * }
141
+ * },
142
+ * trackPartitionLag: true,
143
+ * }
144
+ * ```
145
+ */
146
+ consumerGroupTracking?: ConsumerGroupTrackingConfig;
147
+ /**
148
+ * Hook to add system-specific attributes
149
+ *
150
+ * Use this to add attributes for messaging systems not explicitly supported
151
+ * (e.g., NATS, Temporal, Cloudflare Queues, Redis Streams).
152
+ *
153
+ * @example NATS consumer attributes
154
+ * ```typescript
155
+ * customAttributes: (ctx, msg) => ({
156
+ * 'nats.subject': msg.subject,
157
+ * 'nats.stream': msg.info?.stream,
158
+ * 'nats.consumer': msg.info?.consumer,
159
+ * 'nats.delivered_count': msg.info?.redeliveryCount,
160
+ * })
161
+ * ```
162
+ *
163
+ * @example Cloudflare Queue attributes
164
+ * ```typescript
165
+ * customAttributes: (ctx, msg) => ({
166
+ * 'cloudflare.queue_id': msg.id,
167
+ * 'cloudflare.timestamp_ms': msg.timestamp.getTime(),
168
+ * 'cloudflare.attempts': msg.attempts,
169
+ * })
170
+ * ```
171
+ */
172
+ customAttributes?: (ctx: ConsumerContext, msg: unknown) => Record<string, AttributeValue>;
173
+ /**
174
+ * Hook for custom context extraction (beyond W3C traceparent)
175
+ *
176
+ * Use this to extract parent span context from systems that use
177
+ * non-standard header formats.
178
+ *
179
+ * @example Datadog context extraction
180
+ * ```typescript
181
+ * customContextExtractor: (headers) => {
182
+ * const traceId = headers['x-datadog-trace-id'];
183
+ * const spanId = headers['x-datadog-parent-id'];
184
+ * if (!traceId || !spanId) return null;
185
+ * return {
186
+ * traceId: traceIdToOtel(traceId),
187
+ * spanId: spanIdToOtel(spanId),
188
+ * traceFlags: TraceFlags.SAMPLED,
189
+ * };
190
+ * }
191
+ * ```
192
+ *
193
+ * @example B3 format extraction
194
+ * ```typescript
195
+ * customContextExtractor: (headers) => {
196
+ * const traceId = headers['x-b3-traceid'];
197
+ * const spanId = headers['x-b3-spanid'];
198
+ * const sampled = headers['x-b3-sampled'] === '1';
199
+ * if (!traceId || !spanId) return null;
200
+ * return {
201
+ * traceId,
202
+ * spanId,
203
+ * traceFlags: sampled ? TraceFlags.SAMPLED : TraceFlags.NONE,
204
+ * };
205
+ * }
206
+ * ```
207
+ */
208
+ customContextExtractor?: (headers: Record<string, string>) => SpanContext | null;
251
209
  }
252
210
  /**
253
211
  * Configuration for consumer lag metrics
254
212
  */
255
213
  interface LagMetricsConfig {
256
- /** Get current message offset */
257
- getCurrentOffset?: (msg: unknown) => number | undefined;
258
- /** Get end offset (high watermark) - can be async */
259
- getEndOffset?: () => number | Promise<number>;
260
- /** Get committed offset - can be async */
261
- getCommittedOffset?: () => number | Promise<number>;
262
- /** Get partition from message */
263
- getPartition?: (msg: unknown) => number | undefined;
214
+ /** Get current message offset */
215
+ getCurrentOffset?: (msg: unknown) => number | undefined;
216
+ /** Get end offset (high watermark) - can be async */
217
+ getEndOffset?: () => number | Promise<number>;
218
+ /** Get committed offset - can be async */
219
+ getCommittedOffset?: () => number | Promise<number>;
220
+ /** Get partition from message */
221
+ getPartition?: (msg: unknown) => number | undefined;
264
222
  }
265
223
  /**
266
224
  * Configuration for message ordering tracking
267
225
  */
268
226
  interface OrderingConfig {
269
- /**
270
- * Extract sequence number from message
271
- *
272
- * Sequence numbers enable out-of-order detection and gap analysis.
273
- *
274
- * @example Kafka offset
275
- * ```typescript
276
- * sequenceFrom: (msg) => msg.offset
277
- * ```
278
- */
279
- sequenceFrom?: (msg: unknown) => number | undefined;
280
- /**
281
- * Extract partition key from message
282
- *
283
- * Partition keys determine message ordering in Kafka.
284
- *
285
- * @example Message key
286
- * ```typescript
287
- * partitionKeyFrom: (msg) => msg.key
288
- * ```
289
- */
290
- partitionKeyFrom?: (msg: unknown) => string | undefined;
291
- /**
292
- * Extract message ID for deduplication
293
- *
294
- * Used to detect duplicate messages.
295
- *
296
- * @example Idempotency key
297
- * ```typescript
298
- * messageIdFrom: (msg) => msg.headers['idempotency-key']
299
- * ```
300
- */
301
- messageIdFrom?: (msg: unknown) => string | undefined;
302
- /**
303
- * Enable out-of-order detection
304
- *
305
- * Tracks sequence numbers per partition and detects when messages
306
- * arrive out of order.
307
- *
308
- * @default false
309
- */
310
- detectOutOfOrder?: boolean;
311
- /**
312
- * Enable deduplication detection
313
- *
314
- * Tracks message IDs and detects duplicates within the window.
315
- *
316
- * @default false
317
- */
318
- detectDuplicates?: boolean;
319
- /**
320
- * Deduplication window size (number of message IDs to track)
321
- *
322
- * @default 1000
323
- */
324
- deduplicationWindowSize?: number;
325
- /**
326
- * Callback when out-of-order message detected
327
- */
328
- onOutOfOrder?: (ctx: ConsumerContext, info: OutOfOrderInfo) => void;
329
- /**
330
- * Callback when duplicate message detected
331
- */
332
- onDuplicate?: (ctx: ConsumerContext, messageId: string) => void;
227
+ /**
228
+ * Extract sequence number from message
229
+ *
230
+ * Sequence numbers enable out-of-order detection and gap analysis.
231
+ *
232
+ * @example Kafka offset
233
+ * ```typescript
234
+ * sequenceFrom: (msg) => msg.offset
235
+ * ```
236
+ */
237
+ sequenceFrom?: (msg: unknown) => number | undefined;
238
+ /**
239
+ * Extract partition key from message
240
+ *
241
+ * Partition keys determine message ordering in Kafka.
242
+ *
243
+ * @example Message key
244
+ * ```typescript
245
+ * partitionKeyFrom: (msg) => msg.key
246
+ * ```
247
+ */
248
+ partitionKeyFrom?: (msg: unknown) => string | undefined;
249
+ /**
250
+ * Extract message ID for deduplication
251
+ *
252
+ * Used to detect duplicate messages.
253
+ *
254
+ * @example Idempotency key
255
+ * ```typescript
256
+ * messageIdFrom: (msg) => msg.headers['idempotency-key']
257
+ * ```
258
+ */
259
+ messageIdFrom?: (msg: unknown) => string | undefined;
260
+ /**
261
+ * Enable out-of-order detection
262
+ *
263
+ * Tracks sequence numbers per partition and detects when messages
264
+ * arrive out of order.
265
+ *
266
+ * @default false
267
+ */
268
+ detectOutOfOrder?: boolean;
269
+ /**
270
+ * Enable deduplication detection
271
+ *
272
+ * Tracks message IDs and detects duplicates within the window.
273
+ *
274
+ * @default false
275
+ */
276
+ detectDuplicates?: boolean;
277
+ /**
278
+ * Deduplication window size (number of message IDs to track)
279
+ *
280
+ * @default 1000
281
+ */
282
+ deduplicationWindowSize?: number;
283
+ /**
284
+ * Callback when out-of-order message detected
285
+ */
286
+ onOutOfOrder?: (ctx: ConsumerContext, info: OutOfOrderInfo) => void;
287
+ /**
288
+ * Callback when duplicate message detected
289
+ */
290
+ onDuplicate?: (ctx: ConsumerContext, messageId: string) => void;
333
291
  }
334
292
  /**
335
293
  * Information about out-of-order message
336
294
  */
337
295
  interface OutOfOrderInfo {
338
- /** Current sequence number */
339
- currentSequence: number;
340
- /** Expected sequence number */
341
- expectedSequence: number;
342
- /** Partition key (if available) */
343
- partitionKey?: string;
344
- /** Gap size (positive = gap, negative = out of order) */
345
- gap: number;
296
+ /** Current sequence number */
297
+ currentSequence: number;
298
+ /** Expected sequence number */
299
+ expectedSequence: number;
300
+ /** Partition key (if available) */
301
+ partitionKey?: string;
302
+ /** Gap size (positive = gap, negative = out of order) */
303
+ gap: number;
346
304
  }
347
305
  /**
348
306
  * Configuration for consumer group tracking
@@ -364,47 +322,47 @@ interface OutOfOrderInfo {
364
322
  * ```
365
323
  */
366
324
  interface ConsumerGroupTrackingConfig {
367
- /**
368
- * Consumer member ID
369
- *
370
- * Unique identifier assigned by the broker to this consumer.
371
- */
372
- memberId?: string | (() => string | undefined);
373
- /**
374
- * Static group instance ID (for static membership)
375
- *
376
- * If set, enables static group membership which prevents
377
- * rebalances when consumers restart.
378
- */
379
- groupInstanceId?: string | (() => string | undefined);
380
- /**
381
- * Callback when rebalance occurs
382
- */
383
- onRebalance?: (ctx: ConsumerContext, event: RebalanceEvent) => void;
384
- /**
385
- * Callback when partitions are assigned
386
- */
387
- onPartitionsAssigned?: (ctx: ConsumerContext, partitions: PartitionAssignment[]) => void;
388
- /**
389
- * Callback when partitions are revoked
390
- */
391
- onPartitionsRevoked?: (ctx: ConsumerContext, partitions: PartitionAssignment[]) => void;
392
- /**
393
- * Track consumer lag per partition
394
- *
395
- * @default true
396
- */
397
- trackPartitionLag?: boolean;
398
- /**
399
- * Track consumer heartbeat health
400
- *
401
- * @default false
402
- */
403
- trackHeartbeat?: boolean;
404
- /**
405
- * Heartbeat interval in milliseconds (for health tracking)
406
- */
407
- heartbeatIntervalMs?: number;
325
+ /**
326
+ * Consumer member ID
327
+ *
328
+ * Unique identifier assigned by the broker to this consumer.
329
+ */
330
+ memberId?: string | (() => string | undefined);
331
+ /**
332
+ * Static group instance ID (for static membership)
333
+ *
334
+ * If set, enables static group membership which prevents
335
+ * rebalances when consumers restart.
336
+ */
337
+ groupInstanceId?: string | (() => string | undefined);
338
+ /**
339
+ * Callback when rebalance occurs
340
+ */
341
+ onRebalance?: (ctx: ConsumerContext, event: RebalanceEvent) => void;
342
+ /**
343
+ * Callback when partitions are assigned
344
+ */
345
+ onPartitionsAssigned?: (ctx: ConsumerContext, partitions: PartitionAssignment[]) => void;
346
+ /**
347
+ * Callback when partitions are revoked
348
+ */
349
+ onPartitionsRevoked?: (ctx: ConsumerContext, partitions: PartitionAssignment[]) => void;
350
+ /**
351
+ * Track consumer lag per partition
352
+ *
353
+ * @default true
354
+ */
355
+ trackPartitionLag?: boolean;
356
+ /**
357
+ * Track consumer heartbeat health
358
+ *
359
+ * @default false
360
+ */
361
+ trackHeartbeat?: boolean;
362
+ /**
363
+ * Heartbeat interval in milliseconds (for health tracking)
364
+ */
365
+ heartbeatIntervalMs?: number;
408
366
  }
409
367
  /**
410
368
  * Rebalance event types
@@ -414,69 +372,69 @@ type RebalanceType = 'assigned' | 'revoked' | 'lost';
414
372
  * Rebalance event information
415
373
  */
416
374
  interface RebalanceEvent {
417
- /** Type of rebalance event */
418
- type: RebalanceType;
419
- /** Partitions affected by the rebalance */
420
- partitions: PartitionAssignment[];
421
- /** Timestamp of the rebalance event */
422
- timestamp: number;
423
- /** Generation ID (increments on each rebalance) */
424
- generation?: number;
425
- /** Consumer member ID */
426
- memberId?: string;
427
- /** Reason for the rebalance (if available) */
428
- reason?: string;
375
+ /** Type of rebalance event */
376
+ type: RebalanceType;
377
+ /** Partitions affected by the rebalance */
378
+ partitions: PartitionAssignment[];
379
+ /** Timestamp of the rebalance event */
380
+ timestamp: number;
381
+ /** Generation ID (increments on each rebalance) */
382
+ generation?: number;
383
+ /** Consumer member ID */
384
+ memberId?: string;
385
+ /** Reason for the rebalance (if available) */
386
+ reason?: string;
429
387
  }
430
388
  /**
431
389
  * Partition assignment information
432
390
  */
433
391
  interface PartitionAssignment {
434
- /** Topic name */
435
- topic: string;
436
- /** Partition number */
437
- partition: number;
438
- /** Initial offset (if available) */
439
- offset?: number;
440
- /** Metadata (if available) */
441
- metadata?: string;
392
+ /** Topic name */
393
+ topic: string;
394
+ /** Partition number */
395
+ partition: number;
396
+ /** Initial offset (if available) */
397
+ offset?: number;
398
+ /** Metadata (if available) */
399
+ metadata?: string;
442
400
  }
443
401
  /**
444
402
  * Consumer group state snapshot
445
403
  */
446
404
  interface ConsumerGroupState {
447
- /** Consumer group name */
448
- groupId: string;
449
- /** Consumer member ID */
450
- memberId?: string;
451
- /** Static instance ID (if using static membership) */
452
- groupInstanceId?: string;
453
- /** Currently assigned partitions */
454
- assignedPartitions: PartitionAssignment[];
455
- /** Group generation ID */
456
- generation?: number;
457
- /** Whether the consumer is currently active */
458
- isActive: boolean;
459
- /** Last heartbeat timestamp */
460
- lastHeartbeat?: number;
461
- /** Consumer state (stable, preparing_rebalance, completing_rebalance, dead) */
462
- state?: 'stable' | 'preparing_rebalance' | 'completing_rebalance' | 'dead' | 'empty';
405
+ /** Consumer group name */
406
+ groupId: string;
407
+ /** Consumer member ID */
408
+ memberId?: string;
409
+ /** Static instance ID (if using static membership) */
410
+ groupInstanceId?: string;
411
+ /** Currently assigned partitions */
412
+ assignedPartitions: PartitionAssignment[];
413
+ /** Group generation ID */
414
+ generation?: number;
415
+ /** Whether the consumer is currently active */
416
+ isActive: boolean;
417
+ /** Last heartbeat timestamp */
418
+ lastHeartbeat?: number;
419
+ /** Consumer state (stable, preparing_rebalance, completing_rebalance, dead) */
420
+ state?: 'stable' | 'preparing_rebalance' | 'completing_rebalance' | 'dead' | 'empty';
463
421
  }
464
422
  /**
465
423
  * Partition lag information
466
424
  */
467
425
  interface PartitionLag {
468
- /** Topic name */
469
- topic: string;
470
- /** Partition number */
471
- partition: number;
472
- /** Current consumer offset */
473
- currentOffset: number;
474
- /** End offset (high watermark) */
475
- endOffset: number;
476
- /** Calculated lag */
477
- lag: number;
478
- /** Timestamp of measurement */
479
- timestamp: number;
426
+ /** Topic name */
427
+ topic: string;
428
+ /** Partition number */
429
+ partition: number;
430
+ /** Current consumer offset */
431
+ currentOffset: number;
432
+ /** End offset (high watermark) */
433
+ endOffset: number;
434
+ /** Calculated lag */
435
+ lag: number;
436
+ /** Timestamp of measurement */
437
+ timestamp: number;
480
438
  }
481
439
  /**
482
440
  * DLQ failure category types
@@ -486,262 +444,262 @@ type DLQReasonCategory = 'validation' | 'processing' | 'timeout' | 'poison' | 'u
486
444
  * Options for enhanced DLQ recording
487
445
  */
488
446
  interface DLQOptions {
489
- /**
490
- * Automatically link to the producer span context
491
- *
492
- * When true, creates a span link from the DLQ event back to
493
- * the original producer span for correlation.
494
- *
495
- * @default true
496
- */
497
- linkToProducer?: boolean;
498
- /**
499
- * Category of the failure that caused DLQ routing
500
- *
501
- * - validation: Message failed schema/format validation
502
- * - processing: Business logic error during processing
503
- * - timeout: Processing exceeded allowed time
504
- * - poison: Message causes repeated failures (poison pill)
505
- * - unknown: Uncategorized failure
506
- */
507
- reasonCategory?: DLQReasonCategory;
508
- /**
509
- * Number of processing attempts before DLQ routing
510
- */
511
- attemptCount?: number;
512
- /**
513
- * The original error that caused DLQ routing
514
- *
515
- * Error details are recorded as span attributes for debugging.
516
- */
517
- originalError?: Error;
518
- /**
519
- * Additional metadata to record with the DLQ event
520
- */
521
- metadata?: Record<string, string | number | boolean>;
447
+ /**
448
+ * Automatically link to the producer span context
449
+ *
450
+ * When true, creates a span link from the DLQ event back to
451
+ * the original producer span for correlation.
452
+ *
453
+ * @default true
454
+ */
455
+ linkToProducer?: boolean;
456
+ /**
457
+ * Category of the failure that caused DLQ routing
458
+ *
459
+ * - validation: Message failed schema/format validation
460
+ * - processing: Business logic error during processing
461
+ * - timeout: Processing exceeded allowed time
462
+ * - poison: Message causes repeated failures (poison pill)
463
+ * - unknown: Uncategorized failure
464
+ */
465
+ reasonCategory?: DLQReasonCategory;
466
+ /**
467
+ * Number of processing attempts before DLQ routing
468
+ */
469
+ attemptCount?: number;
470
+ /**
471
+ * The original error that caused DLQ routing
472
+ *
473
+ * Error details are recorded as span attributes for debugging.
474
+ */
475
+ originalError?: Error;
476
+ /**
477
+ * Additional metadata to record with the DLQ event
478
+ */
479
+ metadata?: Record<string, string | number | boolean>;
522
480
  }
523
481
  /**
524
482
  * Options for recording DLQ replay
525
483
  */
526
484
  interface DLQReplayOptions {
527
- /**
528
- * Original span context from DLQ message
529
- *
530
- * If provided, creates a span link to correlate with the original failure.
531
- */
532
- originalDLQSpanContext?: SpanContext;
533
- /**
534
- * Time spent in DLQ before replay (milliseconds)
535
- */
536
- dlqDwellTimeMs?: number;
537
- /**
538
- * Retry attempt number for this replay
539
- */
540
- replayAttempt?: number;
485
+ /**
486
+ * Original span context from DLQ message
487
+ *
488
+ * If provided, creates a span link to correlate with the original failure.
489
+ */
490
+ originalDLQSpanContext?: SpanContext;
491
+ /**
492
+ * Time spent in DLQ before replay (milliseconds)
493
+ */
494
+ dlqDwellTimeMs?: number;
495
+ /**
496
+ * Retry attempt number for this replay
497
+ */
498
+ replayAttempt?: number;
541
499
  }
542
500
  /**
543
501
  * Extended trace context for producers with header injection
544
502
  */
545
503
  interface ProducerContext extends TraceContext {
546
- /**
547
- * Get W3C trace context headers to inject into message
548
- *
549
- * @returns Headers object with traceparent and optionally tracestate
550
- *
551
- * @example
552
- * ```typescript
553
- * const headers = ctx.getTraceHeaders();
554
- * await producer.send({
555
- * topic: 'events',
556
- * messages: [{ value: data, headers }]
557
- * });
558
- * ```
559
- */
560
- getTraceHeaders(): {
561
- traceparent: string;
562
- tracestate?: string;
563
- };
564
- /**
565
- * Get all propagation headers including baggage if enabled
566
- *
567
- * @returns Headers object with all W3C trace context headers
568
- */
569
- getAllPropagationHeaders(): Record<string, string>;
570
- /**
571
- * Get all headers including custom headers from customHeaders hook
572
- *
573
- * This combines W3C trace context headers, baggage (if enabled),
574
- * and any custom headers defined via the customHeaders hook.
575
- *
576
- * @returns Combined headers object
577
- *
578
- * @example
579
- * ```typescript
580
- * const headers = ctx.getFullHeaders();
581
- * // Contains: traceparent, tracestate, baggage (if enabled), and custom headers
582
- * await producer.send({ topic, messages: [{ value, headers }] });
583
- * ```
584
- */
585
- getFullHeaders(): Record<string, string>;
504
+ /**
505
+ * Get W3C trace context headers to inject into message
506
+ *
507
+ * @returns Headers object with traceparent and optionally tracestate
508
+ *
509
+ * @example
510
+ * ```typescript
511
+ * const headers = ctx.getTraceHeaders();
512
+ * await producer.send({
513
+ * topic: 'events',
514
+ * messages: [{ value: data, headers }]
515
+ * });
516
+ * ```
517
+ */
518
+ getTraceHeaders(): {
519
+ traceparent: string;
520
+ tracestate?: string;
521
+ };
522
+ /**
523
+ * Get all propagation headers including baggage if enabled
524
+ *
525
+ * @returns Headers object with all W3C trace context headers
526
+ */
527
+ getAllPropagationHeaders(): Record<string, string>;
528
+ /**
529
+ * Get all headers including custom headers from customHeaders hook
530
+ *
531
+ * This combines W3C trace context headers, baggage (if enabled),
532
+ * and any custom headers defined via the customHeaders hook.
533
+ *
534
+ * @returns Combined headers object
535
+ *
536
+ * @example
537
+ * ```typescript
538
+ * const headers = ctx.getFullHeaders();
539
+ * // Contains: traceparent, tracestate, baggage (if enabled), and custom headers
540
+ * await producer.send({ topic, messages: [{ value, headers }] });
541
+ * ```
542
+ */
543
+ getFullHeaders(): Record<string, string>;
586
544
  }
587
545
  /**
588
546
  * Extended trace context for consumers
589
547
  */
590
548
  interface ConsumerContext extends TraceContext {
591
- /**
592
- * Record that a message is being sent to DLQ
593
- *
594
- * Enhanced with auto-linking to producer span, failure categorization,
595
- * and detailed error recording for comprehensive DLQ observability.
596
- *
597
- * @param reason - Human-readable reason for DLQ routing
598
- * @param dlqNameOrOptions - DLQ name (string) or enhanced options object
599
- * @param options - Enhanced DLQ options (when second param is dlqName)
600
- *
601
- * @example Basic usage (backwards compatible)
602
- * ```typescript
603
- * ctx.recordDLQ('Schema validation failed', 'orders-dlq');
604
- * ```
605
- *
606
- * @example Enhanced usage with options
607
- * ```typescript
608
- * ctx.recordDLQ('Invalid order total', 'orders-dlq', {
609
- * reasonCategory: 'validation',
610
- * attemptCount: 3,
611
- * originalError: error,
612
- * linkToProducer: true, // Auto-links to producer span
613
- * });
614
- * ```
615
- *
616
- * @example Using options object as second param
617
- * ```typescript
618
- * ctx.recordDLQ('Processing timeout', {
619
- * reasonCategory: 'timeout',
620
- * attemptCount: 5,
621
- * metadata: { processingTimeMs: 30000 },
622
- * });
623
- * ```
624
- */
625
- recordDLQ(reason: string, dlqName?: string, options?: DLQOptions): void;
626
- recordDLQ(reason: string, options?: DLQOptions): void;
627
- /**
628
- * Record replay of a message from DLQ
629
- *
630
- * Use this when processing a message that was replayed from the DLQ
631
- * to create links for correlation and track replay metrics.
632
- *
633
- * @param options - Replay tracking options
634
- *
635
- * @example
636
- * ```typescript
637
- * export const processReplay = traceConsumer({
638
- * system: 'kafka',
639
- * destination: 'orders-dlq-replay',
640
- * })(ctx => async (message) => {
641
- * ctx.recordReplay({
642
- * originalDLQSpanContext: extractSpanContext(message.headers),
643
- * dlqDwellTimeMs: Date.now() - message.timestamp,
644
- * replayAttempt: message.replayCount,
645
- * });
646
- * await processOrder(message);
647
- * });
648
- * ```
649
- */
650
- recordReplay(options?: DLQReplayOptions): void;
651
- /**
652
- * Record retry attempt
653
- *
654
- * @param attemptNumber - Current retry attempt (1-based)
655
- * @param maxAttempts - Maximum retry attempts
656
- */
657
- recordRetry(attemptNumber: number, maxAttempts?: number): void;
658
- /**
659
- * Get the producer span context links extracted from message headers
660
- *
661
- * Useful for accessing the producer span context when implementing
662
- * custom DLQ or retry logic.
663
- *
664
- * @returns Array of span links extracted from the message, or empty array
665
- */
666
- getProducerLinks(): Link[];
667
- /**
668
- * Check if the current message is a duplicate
669
- *
670
- * @returns True if the message has been seen before
671
- */
672
- isDuplicate(): boolean;
673
- /**
674
- * Check if the current message arrived out of order
675
- *
676
- * @returns Out of order info, or null if in order
677
- */
678
- getOutOfOrderInfo(): OutOfOrderInfo | null;
679
- /**
680
- * Get current sequence number
681
- *
682
- * @returns The sequence number, or null if not configured
683
- */
684
- getSequenceNumber(): number | null;
685
- /**
686
- * Get partition key
687
- *
688
- * @returns The partition key, or null if not configured
689
- */
690
- getPartitionKey(): string | null;
691
- /**
692
- * Record a rebalance event
693
- *
694
- * Call this when the consumer group undergoes a rebalance to capture
695
- * the event as a span event with partition assignment details.
696
- *
697
- * @param event - The rebalance event details
698
- *
699
- * @example
700
- * ```typescript
701
- * consumer.on('rebalance', (event) => {
702
- * ctx.recordRebalance({
703
- * type: event.type,
704
- * partitions: event.assignment,
705
- * generation: event.generationId,
706
- * timestamp: Date.now(),
707
- * });
708
- * });
709
- * ```
710
- */
711
- recordRebalance(event: RebalanceEvent): void;
712
- /**
713
- * Record a heartbeat event
714
- *
715
- * Call this on each heartbeat to track consumer health.
716
- *
717
- * @param healthy - Whether the heartbeat was successful
718
- * @param latencyMs - Optional latency of the heartbeat in milliseconds
719
- */
720
- recordHeartbeat(healthy: boolean, latencyMs?: number): void;
721
- /**
722
- * Record partition lag for a specific partition
723
- *
724
- * @param lag - The partition lag information
725
- */
726
- recordPartitionLag(lag: PartitionLag): void;
727
- /**
728
- * Get the current consumer group state
729
- *
730
- * @returns The current consumer group state, or null if not configured
731
- */
732
- getConsumerGroupState(): ConsumerGroupState | null;
733
- /**
734
- * Get the consumer member ID
735
- *
736
- * @returns The member ID, or null if not available
737
- */
738
- getMemberId(): string | null;
739
- /**
740
- * Get the current partition assignments
741
- *
742
- * @returns Array of assigned partitions, or empty array if none
743
- */
744
- getAssignedPartitions(): PartitionAssignment[];
549
+ /**
550
+ * Record that a message is being sent to DLQ
551
+ *
552
+ * Enhanced with auto-linking to producer span, failure categorization,
553
+ * and detailed error recording for comprehensive DLQ observability.
554
+ *
555
+ * @param reason - Human-readable reason for DLQ routing
556
+ * @param dlqNameOrOptions - DLQ name (string) or enhanced options object
557
+ * @param options - Enhanced DLQ options (when second param is dlqName)
558
+ *
559
+ * @example Basic usage (backwards compatible)
560
+ * ```typescript
561
+ * ctx.recordDLQ('Schema validation failed', 'orders-dlq');
562
+ * ```
563
+ *
564
+ * @example Enhanced usage with options
565
+ * ```typescript
566
+ * ctx.recordDLQ('Invalid order total', 'orders-dlq', {
567
+ * reasonCategory: 'validation',
568
+ * attemptCount: 3,
569
+ * originalError: error,
570
+ * linkToProducer: true, // Auto-links to producer span
571
+ * });
572
+ * ```
573
+ *
574
+ * @example Using options object as second param
575
+ * ```typescript
576
+ * ctx.recordDLQ('Processing timeout', {
577
+ * reasonCategory: 'timeout',
578
+ * attemptCount: 5,
579
+ * metadata: { processingTimeMs: 30000 },
580
+ * });
581
+ * ```
582
+ */
583
+ recordDLQ(reason: string, dlqName?: string, options?: DLQOptions): void;
584
+ recordDLQ(reason: string, options?: DLQOptions): void;
585
+ /**
586
+ * Record replay of a message from DLQ
587
+ *
588
+ * Use this when processing a message that was replayed from the DLQ
589
+ * to create links for correlation and track replay metrics.
590
+ *
591
+ * @param options - Replay tracking options
592
+ *
593
+ * @example
594
+ * ```typescript
595
+ * export const processReplay = traceConsumer({
596
+ * system: 'kafka',
597
+ * destination: 'orders-dlq-replay',
598
+ * })(ctx => async (message) => {
599
+ * ctx.recordReplay({
600
+ * originalDLQSpanContext: extractSpanContext(message.headers),
601
+ * dlqDwellTimeMs: Date.now() - message.timestamp,
602
+ * replayAttempt: message.replayCount,
603
+ * });
604
+ * await processOrder(message);
605
+ * });
606
+ * ```
607
+ */
608
+ recordReplay(options?: DLQReplayOptions): void;
609
+ /**
610
+ * Record retry attempt
611
+ *
612
+ * @param attemptNumber - Current retry attempt (1-based)
613
+ * @param maxAttempts - Maximum retry attempts
614
+ */
615
+ recordRetry(attemptNumber: number, maxAttempts?: number): void;
616
+ /**
617
+ * Get the producer span context links extracted from message headers
618
+ *
619
+ * Useful for accessing the producer span context when implementing
620
+ * custom DLQ or retry logic.
621
+ *
622
+ * @returns Array of span links extracted from the message, or empty array
623
+ */
624
+ getProducerLinks(): Link[];
625
+ /**
626
+ * Check if the current message is a duplicate
627
+ *
628
+ * @returns True if the message has been seen before
629
+ */
630
+ isDuplicate(): boolean;
631
+ /**
632
+ * Check if the current message arrived out of order
633
+ *
634
+ * @returns Out of order info, or null if in order
635
+ */
636
+ getOutOfOrderInfo(): OutOfOrderInfo | null;
637
+ /**
638
+ * Get current sequence number
639
+ *
640
+ * @returns The sequence number, or null if not configured
641
+ */
642
+ getSequenceNumber(): number | null;
643
+ /**
644
+ * Get partition key
645
+ *
646
+ * @returns The partition key, or null if not configured
647
+ */
648
+ getPartitionKey(): string | null;
649
+ /**
650
+ * Record a rebalance event
651
+ *
652
+ * Call this when the consumer group undergoes a rebalance to capture
653
+ * the event as a span event with partition assignment details.
654
+ *
655
+ * @param event - The rebalance event details
656
+ *
657
+ * @example
658
+ * ```typescript
659
+ * consumer.on('rebalance', (event) => {
660
+ * ctx.recordRebalance({
661
+ * type: event.type,
662
+ * partitions: event.assignment,
663
+ * generation: event.generationId,
664
+ * timestamp: Date.now(),
665
+ * });
666
+ * });
667
+ * ```
668
+ */
669
+ recordRebalance(event: RebalanceEvent): void;
670
+ /**
671
+ * Record a heartbeat event
672
+ *
673
+ * Call this on each heartbeat to track consumer health.
674
+ *
675
+ * @param healthy - Whether the heartbeat was successful
676
+ * @param latencyMs - Optional latency of the heartbeat in milliseconds
677
+ */
678
+ recordHeartbeat(healthy: boolean, latencyMs?: number): void;
679
+ /**
680
+ * Record partition lag for a specific partition
681
+ *
682
+ * @param lag - The partition lag information
683
+ */
684
+ recordPartitionLag(lag: PartitionLag): void;
685
+ /**
686
+ * Get the current consumer group state
687
+ *
688
+ * @returns The current consumer group state, or null if not configured
689
+ */
690
+ getConsumerGroupState(): ConsumerGroupState | null;
691
+ /**
692
+ * Get the consumer member ID
693
+ *
694
+ * @returns The member ID, or null if not available
695
+ */
696
+ getMemberId(): string | null;
697
+ /**
698
+ * Get the current partition assignments
699
+ *
700
+ * @returns Array of assigned partitions, or empty array if none
701
+ */
702
+ getAssignedPartitions(): PartitionAssignment[];
745
703
  }
746
704
  /**
747
705
  * Create a traced message producer function
@@ -860,5 +818,6 @@ declare function traceConsumer<TArgs extends unknown[], TReturn>(config: Consume
860
818
  * Clear sequence tracking state (useful for testing)
861
819
  */
862
820
  declare function clearOrderingState(): void;
863
-
864
- export { type ConsumerConfig, type ConsumerContext, type ConsumerGroupState, type ConsumerGroupTrackingConfig, type DLQOptions, type DLQReasonCategory, type DLQReplayOptions, type LagMetricsConfig, type MessagingOperation, type MessagingSystem, type OrderingConfig, type OutOfOrderInfo, type PartitionAssignment, type PartitionLag, type ProducerConfig, type ProducerContext, type RebalanceEvent, type RebalanceType, clearOrderingState, traceConsumer, traceProducer };
821
+ //#endregion
822
+ export { ConsumerConfig, ConsumerContext, ConsumerGroupState, ConsumerGroupTrackingConfig, DLQOptions, DLQReasonCategory, DLQReplayOptions, LagMetricsConfig, MessagingOperation, MessagingSystem, OrderingConfig, OutOfOrderInfo, PartitionAssignment, PartitionLag, ProducerConfig, ProducerContext, RebalanceEvent, RebalanceType, clearOrderingState, traceConsumer, traceProducer };
823
+ //# sourceMappingURL=messaging.d.ts.map