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,396 +1,330 @@
1
- // src/messaging-testing.ts
1
+ //#region src/messaging-testing.ts
2
+ /**
3
+ * Generate a random hex string
4
+ */
2
5
  function randomHex(length) {
3
- let result = "";
4
- const chars = "0123456789abcdef";
5
- for (let i = 0; i < length; i++) {
6
- result += chars.charAt(Math.floor(Math.random() * chars.length));
7
- }
8
- return result;
6
+ let result = "";
7
+ const chars = "0123456789abcdef";
8
+ for (let i = 0; i < length; i++) result += chars.charAt(Math.floor(Math.random() * 16));
9
+ return result;
9
10
  }
11
+ /**
12
+ * Create a messaging test harness
13
+ *
14
+ * Provides utilities for recording and asserting on producer/consumer calls
15
+ * during testing.
16
+ *
17
+ * @example
18
+ * ```typescript
19
+ * const harness = createMessagingTestHarness();
20
+ *
21
+ * // In your test setup
22
+ * beforeEach(() => harness.reset());
23
+ *
24
+ * // In your tests
25
+ * it('should publish order event', async () => {
26
+ * await orderService.createOrder({ id: '123' });
27
+ *
28
+ * harness.assertProducerCalled('orders', {
29
+ * messageCount: 1,
30
+ * hasTraceHeaders: true,
31
+ * });
32
+ *
33
+ * const lastCall = harness.getLastProducerCall('orders');
34
+ * expect(lastCall?.payload).toMatchObject({ orderId: '123' });
35
+ * });
36
+ * ```
37
+ */
10
38
  function createMessagingTestHarness() {
11
- const producerCalls = [];
12
- const consumerCalls = [];
13
- const rebalanceEvents = [];
14
- return {
15
- producerCalls,
16
- consumerCalls,
17
- rebalanceEvents,
18
- recordProducerCall(call) {
19
- producerCalls.push({
20
- ...call,
21
- timestamp: Date.now()
22
- });
23
- },
24
- recordConsumerCall(call) {
25
- consumerCalls.push({
26
- ...call,
27
- timestamp: Date.now()
28
- });
29
- },
30
- recordRebalanceEvent(event) {
31
- rebalanceEvents.push(event);
32
- },
33
- createMockMessage(payload, options = {}) {
34
- return {
35
- payload,
36
- headers: options.headers ?? this.createMockTraceHeaders(),
37
- offset: options.offset ?? Math.floor(Math.random() * 1e4),
38
- partition: options.partition ?? 0,
39
- key: options.key,
40
- messageId: options.messageId ?? `msg-${randomHex(8)}`,
41
- timestamp: options.timestamp ?? Date.now()
42
- };
43
- },
44
- createMockTraceHeaders(traceId, spanId) {
45
- const tid = traceId ?? randomHex(32);
46
- const sid = spanId ?? randomHex(16);
47
- return {
48
- traceparent: `00-${tid}-${sid}-01`
49
- };
50
- },
51
- assertProducerCalled(destination, options = {}) {
52
- const calls = producerCalls.filter((c) => c.destination === destination);
53
- if (calls.length === 0) {
54
- throw new Error(
55
- `Expected producer to be called for destination '${destination}', but it was not called`
56
- );
57
- }
58
- if (options.messageCount !== void 0 && calls.length !== options.messageCount) {
59
- throw new Error(
60
- `Expected ${options.messageCount} producer calls for '${destination}', got ${calls.length}`
61
- );
62
- }
63
- if (options.hasTraceHeaders) {
64
- const withoutHeaders = calls.filter((c) => !c.headers?.traceparent);
65
- if (withoutHeaders.length > 0) {
66
- throw new Error(
67
- `Expected all producer calls for '${destination}' to have trace headers, but ${withoutHeaders.length} did not`
68
- );
69
- }
70
- }
71
- if (options.traceId) {
72
- const matchingTraceId = calls.filter(
73
- (c) => c.traceId === options.traceId
74
- );
75
- if (matchingTraceId.length === 0) {
76
- throw new Error(
77
- `Expected producer call for '${destination}' with traceId '${options.traceId}', but none found`
78
- );
79
- }
80
- }
81
- if (options.payloadMatcher) {
82
- const matching = calls.filter(
83
- (c) => options.payloadMatcher(c.payload)
84
- );
85
- if (matching.length === 0) {
86
- throw new Error(
87
- `Expected producer call for '${destination}' to match payload matcher, but none did`
88
- );
89
- }
90
- }
91
- },
92
- assertProducerNotCalled(destination) {
93
- if (destination) {
94
- const calls = producerCalls.filter(
95
- (c) => c.destination === destination
96
- );
97
- if (calls.length > 0) {
98
- throw new Error(
99
- `Expected producer not to be called for '${destination}', but it was called ${calls.length} times`
100
- );
101
- }
102
- } else {
103
- if (producerCalls.length > 0) {
104
- throw new Error(
105
- `Expected no producer calls, but ${producerCalls.length} calls were made`
106
- );
107
- }
108
- }
109
- },
110
- assertConsumerProcessed(destination, options = {}) {
111
- const calls = consumerCalls.filter((c) => c.destination === destination);
112
- if (calls.length === 0) {
113
- throw new Error(
114
- `Expected consumer to process messages for destination '${destination}', but none were processed`
115
- );
116
- }
117
- if (options.messageCount !== void 0 && calls.length !== options.messageCount) {
118
- throw new Error(
119
- `Expected ${options.messageCount} consumer calls for '${destination}', got ${calls.length}`
120
- );
121
- }
122
- if (options.consumerGroup) {
123
- const wrongGroup = calls.filter(
124
- (c) => c.consumerGroup !== options.consumerGroup
125
- );
126
- if (wrongGroup.length > 0) {
127
- throw new Error(
128
- `Expected consumer group '${options.consumerGroup}' for '${destination}', but found different groups`
129
- );
130
- }
131
- }
132
- if (options.hasProducerLinks) {
133
- const withoutLinks = calls.filter((c) => c.producerLinks.length === 0);
134
- if (withoutLinks.length > 0) {
135
- throw new Error(
136
- `Expected all consumer calls for '${destination}' to have producer links, but ${withoutLinks.length} did not`
137
- );
138
- }
139
- }
140
- if (options.hasDuplicates !== void 0) {
141
- const duplicates = calls.filter((c) => c.isDuplicate);
142
- if (options.hasDuplicates && duplicates.length === 0) {
143
- throw new Error(
144
- `Expected duplicate messages for '${destination}', but none were detected`
145
- );
146
- }
147
- if (!options.hasDuplicates && duplicates.length > 0) {
148
- throw new Error(
149
- `Expected no duplicate messages for '${destination}', but ${duplicates.length} were detected`
150
- );
151
- }
152
- }
153
- if (options.hasOutOfOrder !== void 0) {
154
- const outOfOrder = calls.filter((c) => c.outOfOrderInfo !== null);
155
- if (options.hasOutOfOrder && outOfOrder.length === 0) {
156
- throw new Error(
157
- `Expected out-of-order messages for '${destination}', but none were detected`
158
- );
159
- }
160
- if (!options.hasOutOfOrder && outOfOrder.length > 0) {
161
- throw new Error(
162
- `Expected no out-of-order messages for '${destination}', but ${outOfOrder.length} were detected`
163
- );
164
- }
165
- }
166
- if (options.hasDLQ !== void 0) {
167
- const dlqCalls = calls.filter((c) => c.dlqReason !== void 0);
168
- if (options.hasDLQ && dlqCalls.length === 0) {
169
- throw new Error(
170
- `Expected DLQ routing for '${destination}', but none occurred`
171
- );
172
- }
173
- if (!options.hasDLQ && dlqCalls.length > 0) {
174
- throw new Error(
175
- `Expected no DLQ routing for '${destination}', but ${dlqCalls.length} occurred`
176
- );
177
- }
178
- }
179
- },
180
- assertConsumerNotCalled(destination) {
181
- if (destination) {
182
- const calls = consumerCalls.filter(
183
- (c) => c.destination === destination
184
- );
185
- if (calls.length > 0) {
186
- throw new Error(
187
- `Expected consumer not to be called for '${destination}', but it processed ${calls.length} messages`
188
- );
189
- }
190
- } else {
191
- if (consumerCalls.length > 0) {
192
- throw new Error(
193
- `Expected no consumer calls, but ${consumerCalls.length} messages were processed`
194
- );
195
- }
196
- }
197
- },
198
- assertRebalanceOccurred(destination, type, partitionCount) {
199
- const events = rebalanceEvents.filter(
200
- (e) => e.destination === destination && e.type === type
201
- );
202
- if (events.length === 0) {
203
- throw new Error(
204
- `Expected rebalance '${type}' for '${destination}', but none occurred`
205
- );
206
- }
207
- if (partitionCount !== void 0) {
208
- const matching = events.filter(
209
- (e) => e.partitions.length === partitionCount
210
- );
211
- if (matching.length === 0) {
212
- throw new Error(
213
- `Expected rebalance '${type}' for '${destination}' with ${partitionCount} partitions, but none matched`
214
- );
215
- }
216
- }
217
- },
218
- getProducerCalls(destination) {
219
- if (destination) {
220
- return producerCalls.filter((c) => c.destination === destination);
221
- }
222
- return [...producerCalls];
223
- },
224
- getConsumerCalls(destination) {
225
- if (destination) {
226
- return consumerCalls.filter((c) => c.destination === destination);
227
- }
228
- return [...consumerCalls];
229
- },
230
- getLastProducerCall(destination) {
231
- const calls = this.getProducerCalls(destination);
232
- return calls.at(-1);
233
- },
234
- getLastConsumerCall(destination) {
235
- const calls = this.getConsumerCalls(destination);
236
- return calls.at(-1);
237
- },
238
- reset() {
239
- producerCalls.length = 0;
240
- consumerCalls.length = 0;
241
- rebalanceEvents.length = 0;
242
- },
243
- shutdown() {
244
- this.reset();
245
- }
246
- };
39
+ const producerCalls = [];
40
+ const consumerCalls = [];
41
+ const rebalanceEvents = [];
42
+ return {
43
+ producerCalls,
44
+ consumerCalls,
45
+ rebalanceEvents,
46
+ recordProducerCall(call) {
47
+ producerCalls.push({
48
+ ...call,
49
+ timestamp: Date.now()
50
+ });
51
+ },
52
+ recordConsumerCall(call) {
53
+ consumerCalls.push({
54
+ ...call,
55
+ timestamp: Date.now()
56
+ });
57
+ },
58
+ recordRebalanceEvent(event) {
59
+ rebalanceEvents.push(event);
60
+ },
61
+ createMockMessage(payload, options = {}) {
62
+ return {
63
+ payload,
64
+ headers: options.headers ?? this.createMockTraceHeaders(),
65
+ offset: options.offset ?? Math.floor(Math.random() * 1e4),
66
+ partition: options.partition ?? 0,
67
+ key: options.key,
68
+ messageId: options.messageId ?? `msg-${randomHex(8)}`,
69
+ timestamp: options.timestamp ?? Date.now()
70
+ };
71
+ },
72
+ createMockTraceHeaders(traceId, spanId) {
73
+ return { traceparent: `00-${traceId ?? randomHex(32)}-${spanId ?? randomHex(16)}-01` };
74
+ },
75
+ assertProducerCalled(destination, options = {}) {
76
+ const calls = producerCalls.filter((c) => c.destination === destination);
77
+ if (calls.length === 0) throw new Error(`Expected producer to be called for destination '${destination}', but it was not called`);
78
+ if (options.messageCount !== void 0 && calls.length !== options.messageCount) throw new Error(`Expected ${options.messageCount} producer calls for '${destination}', got ${calls.length}`);
79
+ if (options.hasTraceHeaders) {
80
+ const withoutHeaders = calls.filter((c) => !c.headers?.traceparent);
81
+ if (withoutHeaders.length > 0) throw new Error(`Expected all producer calls for '${destination}' to have trace headers, but ${withoutHeaders.length} did not`);
82
+ }
83
+ if (options.traceId) {
84
+ if (calls.filter((c) => c.traceId === options.traceId).length === 0) throw new Error(`Expected producer call for '${destination}' with traceId '${options.traceId}', but none found`);
85
+ }
86
+ if (options.payloadMatcher) {
87
+ if (calls.filter((c) => options.payloadMatcher(c.payload)).length === 0) throw new Error(`Expected producer call for '${destination}' to match payload matcher, but none did`);
88
+ }
89
+ },
90
+ assertProducerNotCalled(destination) {
91
+ if (destination) {
92
+ const calls = producerCalls.filter((c) => c.destination === destination);
93
+ if (calls.length > 0) throw new Error(`Expected producer not to be called for '${destination}', but it was called ${calls.length} times`);
94
+ } else if (producerCalls.length > 0) throw new Error(`Expected no producer calls, but ${producerCalls.length} calls were made`);
95
+ },
96
+ assertConsumerProcessed(destination, options = {}) {
97
+ const calls = consumerCalls.filter((c) => c.destination === destination);
98
+ if (calls.length === 0) throw new Error(`Expected consumer to process messages for destination '${destination}', but none were processed`);
99
+ if (options.messageCount !== void 0 && calls.length !== options.messageCount) throw new Error(`Expected ${options.messageCount} consumer calls for '${destination}', got ${calls.length}`);
100
+ if (options.consumerGroup) {
101
+ if (calls.filter((c) => c.consumerGroup !== options.consumerGroup).length > 0) throw new Error(`Expected consumer group '${options.consumerGroup}' for '${destination}', but found different groups`);
102
+ }
103
+ if (options.hasProducerLinks) {
104
+ const withoutLinks = calls.filter((c) => c.producerLinks.length === 0);
105
+ if (withoutLinks.length > 0) throw new Error(`Expected all consumer calls for '${destination}' to have producer links, but ${withoutLinks.length} did not`);
106
+ }
107
+ if (options.hasDuplicates !== void 0) {
108
+ const duplicates = calls.filter((c) => c.isDuplicate);
109
+ if (options.hasDuplicates && duplicates.length === 0) throw new Error(`Expected duplicate messages for '${destination}', but none were detected`);
110
+ if (!options.hasDuplicates && duplicates.length > 0) throw new Error(`Expected no duplicate messages for '${destination}', but ${duplicates.length} were detected`);
111
+ }
112
+ if (options.hasOutOfOrder !== void 0) {
113
+ const outOfOrder = calls.filter((c) => c.outOfOrderInfo !== null);
114
+ if (options.hasOutOfOrder && outOfOrder.length === 0) throw new Error(`Expected out-of-order messages for '${destination}', but none were detected`);
115
+ if (!options.hasOutOfOrder && outOfOrder.length > 0) throw new Error(`Expected no out-of-order messages for '${destination}', but ${outOfOrder.length} were detected`);
116
+ }
117
+ if (options.hasDLQ !== void 0) {
118
+ const dlqCalls = calls.filter((c) => c.dlqReason !== void 0);
119
+ if (options.hasDLQ && dlqCalls.length === 0) throw new Error(`Expected DLQ routing for '${destination}', but none occurred`);
120
+ if (!options.hasDLQ && dlqCalls.length > 0) throw new Error(`Expected no DLQ routing for '${destination}', but ${dlqCalls.length} occurred`);
121
+ }
122
+ },
123
+ assertConsumerNotCalled(destination) {
124
+ if (destination) {
125
+ const calls = consumerCalls.filter((c) => c.destination === destination);
126
+ if (calls.length > 0) throw new Error(`Expected consumer not to be called for '${destination}', but it processed ${calls.length} messages`);
127
+ } else if (consumerCalls.length > 0) throw new Error(`Expected no consumer calls, but ${consumerCalls.length} messages were processed`);
128
+ },
129
+ assertRebalanceOccurred(destination, type, partitionCount) {
130
+ const events = rebalanceEvents.filter((e) => e.destination === destination && e.type === type);
131
+ if (events.length === 0) throw new Error(`Expected rebalance '${type}' for '${destination}', but none occurred`);
132
+ if (partitionCount !== void 0) {
133
+ if (events.filter((e) => e.partitions.length === partitionCount).length === 0) throw new Error(`Expected rebalance '${type}' for '${destination}' with ${partitionCount} partitions, but none matched`);
134
+ }
135
+ },
136
+ getProducerCalls(destination) {
137
+ if (destination) return producerCalls.filter((c) => c.destination === destination);
138
+ return [...producerCalls];
139
+ },
140
+ getConsumerCalls(destination) {
141
+ if (destination) return consumerCalls.filter((c) => c.destination === destination);
142
+ return [...consumerCalls];
143
+ },
144
+ getLastProducerCall(destination) {
145
+ return this.getProducerCalls(destination).at(-1);
146
+ },
147
+ getLastConsumerCall(destination) {
148
+ return this.getConsumerCalls(destination).at(-1);
149
+ },
150
+ reset() {
151
+ producerCalls.length = 0;
152
+ consumerCalls.length = 0;
153
+ rebalanceEvents.length = 0;
154
+ },
155
+ shutdown() {
156
+ this.reset();
157
+ }
158
+ };
247
159
  }
160
+ /**
161
+ * Create a mock message broker for testing
162
+ *
163
+ * Simulates a message broker (Kafka, SQS, RabbitMQ, etc.) for unit testing.
164
+ *
165
+ * @example
166
+ * ```typescript
167
+ * const broker = createMockMessageBroker();
168
+ *
169
+ * // Producer publishes
170
+ * broker.publish('orders', { payload: { orderId: '123' }, headers: {} });
171
+ *
172
+ * // Consumer receives
173
+ * const messages = broker.consume('orders');
174
+ * expect(messages).toHaveLength(1);
175
+ * expect(messages[0].payload).toEqual({ orderId: '123' });
176
+ * ```
177
+ */
248
178
  function createMockMessageBroker() {
249
- const topics = /* @__PURE__ */ new Map();
250
- return {
251
- topics,
252
- publish(topic, message) {
253
- if (!topics.has(topic)) {
254
- topics.set(topic, []);
255
- }
256
- topics.get(topic).push({
257
- ...message,
258
- timestamp: message.timestamp ?? Date.now(),
259
- offset: message.offset ?? topics.get(topic).length
260
- });
261
- },
262
- consume(topic, count) {
263
- const messages = topics.get(topic) ?? [];
264
- if (count === void 0) {
265
- const all = [...messages];
266
- messages.length = 0;
267
- return all;
268
- }
269
- return messages.splice(0, count);
270
- },
271
- peek(topic, count) {
272
- const messages = topics.get(topic) ?? [];
273
- if (count === void 0) {
274
- return [...messages];
275
- }
276
- return messages.slice(0, count);
277
- },
278
- getMessageCount(topic) {
279
- return topics.get(topic)?.length ?? 0;
280
- },
281
- clear(topic) {
282
- if (topic) {
283
- topics.set(topic, []);
284
- } else {
285
- topics.clear();
286
- }
287
- },
288
- createTopic(topic) {
289
- if (!topics.has(topic)) {
290
- topics.set(topic, []);
291
- }
292
- },
293
- deleteTopic(topic) {
294
- topics.delete(topic);
295
- },
296
- listTopics() {
297
- return [...topics.keys()];
298
- }
299
- };
179
+ const topics = /* @__PURE__ */ new Map();
180
+ return {
181
+ topics,
182
+ publish(topic, message) {
183
+ if (!topics.has(topic)) topics.set(topic, []);
184
+ topics.get(topic).push({
185
+ ...message,
186
+ timestamp: message.timestamp ?? Date.now(),
187
+ offset: message.offset ?? topics.get(topic).length
188
+ });
189
+ },
190
+ consume(topic, count) {
191
+ const messages = topics.get(topic) ?? [];
192
+ if (count === void 0) {
193
+ const all = [...messages];
194
+ messages.length = 0;
195
+ return all;
196
+ }
197
+ return messages.splice(0, count);
198
+ },
199
+ peek(topic, count) {
200
+ const messages = topics.get(topic) ?? [];
201
+ if (count === void 0) return [...messages];
202
+ return messages.slice(0, count);
203
+ },
204
+ getMessageCount(topic) {
205
+ return topics.get(topic)?.length ?? 0;
206
+ },
207
+ clear(topic) {
208
+ if (topic) topics.set(topic, []);
209
+ else topics.clear();
210
+ },
211
+ createTopic(topic) {
212
+ if (!topics.has(topic)) topics.set(topic, []);
213
+ },
214
+ deleteTopic(topic) {
215
+ topics.delete(topic);
216
+ },
217
+ listTopics() {
218
+ return [...topics.keys()];
219
+ }
220
+ };
300
221
  }
222
+ /**
223
+ * Extract trace ID from traceparent header
224
+ */
301
225
  function extractTraceIdFromHeader(traceparent) {
302
- const parts = traceparent.split("-");
303
- if (parts.length >= 3 && parts[1] !== void 0) {
304
- return parts[1];
305
- }
306
- return null;
226
+ const parts = traceparent.split("-");
227
+ if (parts.length >= 3 && parts[1] !== void 0) return parts[1];
228
+ return null;
307
229
  }
230
+ /**
231
+ * Extract span ID from traceparent header
232
+ */
308
233
  function extractSpanIdFromHeader(traceparent) {
309
- const parts = traceparent.split("-");
310
- if (parts.length >= 4 && parts[2] !== void 0) {
311
- return parts[2];
312
- }
313
- return null;
234
+ const parts = traceparent.split("-");
235
+ if (parts.length >= 4 && parts[2] !== void 0) return parts[2];
236
+ return null;
314
237
  }
238
+ /**
239
+ * Create a mock span context
240
+ */
315
241
  function createMockSpanContext(traceId, spanId) {
316
- return {
317
- traceId: traceId ?? randomHex(32),
318
- spanId: spanId ?? randomHex(16),
319
- traceFlags: 1,
320
- isRemote: true
321
- };
242
+ return {
243
+ traceId: traceId ?? randomHex(32),
244
+ spanId: spanId ?? randomHex(16),
245
+ traceFlags: 1,
246
+ isRemote: true
247
+ };
322
248
  }
249
+ /**
250
+ * Create a mock link to a producer span
251
+ */
323
252
  function createMockProducerLink(traceId, spanId) {
324
- return {
325
- context: createMockSpanContext(traceId, spanId),
326
- attributes: {
327
- "messaging.link.source": "producer"
328
- }
329
- };
253
+ return {
254
+ context: createMockSpanContext(traceId, spanId),
255
+ attributes: { "messaging.link.source": "producer" }
256
+ };
330
257
  }
258
+ /**
259
+ * Create a batch of mock messages
260
+ */
331
261
  function createMockMessageBatch(payloads, options = {}) {
332
- const startOffset = options.startOffset ?? 0;
333
- const addTraceHeaders = options.addTraceHeaders ?? true;
334
- const traceId = options.traceId ?? randomHex(32);
335
- return payloads.map((payload, index) => ({
336
- payload,
337
- headers: addTraceHeaders ? { traceparent: `00-${traceId}-${randomHex(16)}-01` } : void 0,
338
- offset: startOffset + index,
339
- partition: options.partition ?? 0,
340
- messageId: `msg-${randomHex(8)}`,
341
- timestamp: Date.now() + index
342
- }));
262
+ const startOffset = options.startOffset ?? 0;
263
+ const addTraceHeaders = options.addTraceHeaders ?? true;
264
+ const traceId = options.traceId ?? randomHex(32);
265
+ return payloads.map((payload, index) => ({
266
+ payload,
267
+ headers: addTraceHeaders ? { traceparent: `00-${traceId}-${randomHex(16)}-01` } : void 0,
268
+ offset: startOffset + index,
269
+ partition: options.partition ?? 0,
270
+ messageId: `msg-${randomHex(8)}`,
271
+ timestamp: Date.now() + index
272
+ }));
343
273
  }
274
+ /**
275
+ * Create a rebalance scenario
276
+ */
344
277
  function createRebalanceScenario(topic, consumerGroup, partitions) {
345
- const assignments = partitions.map((p) => ({
346
- topic,
347
- partition: p,
348
- offset: 0
349
- }));
350
- return {
351
- assignEvent: {
352
- type: "assigned",
353
- partitions: assignments,
354
- timestamp: Date.now(),
355
- generation: 1,
356
- destination: topic,
357
- consumerGroup
358
- },
359
- revokeEvent: {
360
- type: "revoked",
361
- partitions: assignments,
362
- timestamp: Date.now() + 1e3,
363
- generation: 2,
364
- destination: topic,
365
- consumerGroup
366
- }
367
- };
278
+ const assignments = partitions.map((p) => ({
279
+ topic,
280
+ partition: p,
281
+ offset: 0
282
+ }));
283
+ return {
284
+ assignEvent: {
285
+ type: "assigned",
286
+ partitions: assignments,
287
+ timestamp: Date.now(),
288
+ generation: 1,
289
+ destination: topic,
290
+ consumerGroup
291
+ },
292
+ revokeEvent: {
293
+ type: "revoked",
294
+ partitions: assignments,
295
+ timestamp: Date.now() + 1e3,
296
+ generation: 2,
297
+ destination: topic,
298
+ consumerGroup
299
+ }
300
+ };
368
301
  }
302
+ /**
303
+ * Create an out-of-order scenario
304
+ */
369
305
  function createOutOfOrderScenario(payloads, outOfOrderIndices) {
370
- const messages = createMockMessageBatch(payloads, { addTraceHeaders: true });
371
- const shuffled = [...messages];
372
- for (const index of outOfOrderIndices) {
373
- if (index > 0 && index < shuffled.length) {
374
- const prev = shuffled[index - 1];
375
- const curr = shuffled[index];
376
- shuffled[index - 1] = curr;
377
- shuffled[index] = prev;
378
- }
379
- }
380
- return shuffled;
306
+ const shuffled = [...createMockMessageBatch(payloads, { addTraceHeaders: true })];
307
+ for (const index of outOfOrderIndices) if (index > 0 && index < shuffled.length) {
308
+ const prev = shuffled[index - 1];
309
+ const curr = shuffled[index];
310
+ shuffled[index - 1] = curr;
311
+ shuffled[index] = prev;
312
+ }
313
+ return shuffled;
381
314
  }
315
+ /**
316
+ * Create a duplicate message scenario
317
+ */
382
318
  function createDuplicateScenario(payloads, duplicateIndices) {
383
- const messages = createMockMessageBatch(payloads, { addTraceHeaders: true });
384
- const result = [...messages];
385
- for (const index of duplicateIndices) {
386
- const originalMessage = messages[index];
387
- if (index >= 0 && index < messages.length && originalMessage) {
388
- result.splice(index + 1, 0, { ...originalMessage });
389
- }
390
- }
391
- return result;
319
+ const messages = createMockMessageBatch(payloads, { addTraceHeaders: true });
320
+ const result = [...messages];
321
+ for (const index of duplicateIndices) {
322
+ const originalMessage = messages[index];
323
+ if (index >= 0 && index < messages.length && originalMessage) result.splice(index + 1, 0, { ...originalMessage });
324
+ }
325
+ return result;
392
326
  }
393
327
 
328
+ //#endregion
394
329
  export { createDuplicateScenario, createMessagingTestHarness, createMockMessageBatch, createMockMessageBroker, createMockProducerLink, createMockSpanContext, createOutOfOrderScenario, createRebalanceScenario, extractSpanIdFromHeader, extractTraceIdFromHeader };
395
- //# sourceMappingURL=messaging-testing.js.map
396
330
  //# sourceMappingURL=messaging-testing.js.map