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 +1 @@
1
- {"version":3,"sources":["../src/workflow-distributed.ts"],"names":["createSafeBaggageSchema","trace","SpanKind","context","propagation","emitCorrelatedEvent"],"mappings":"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","file":"workflow-distributed.cjs","sourcesContent":["/**\n * Distributed workflow tracing with cross-service correlation\n *\n * Enables tracking workflows that span multiple microservices by propagating\n * workflow identity (workflowId, stepName, stepIndex) via baggage in message headers.\n *\n * Unlike local workflow.ts (which uses AsyncLocalStorage), distributed workflows\n * propagate context across network boundaries using W3C baggage.\n *\n * @example Order fulfillment saga across services\n * ```typescript\n * // Service A: Order Service\n * import { traceDistributedWorkflow, WorkflowBaggage } from 'autotel/workflow-distributed';\n * import { traceProducer } from 'autotel/messaging';\n *\n * export const createOrder = traceDistributedWorkflow({\n * name: 'OrderFulfillment',\n * workflowIdFrom: (order) => order.id,\n * version: '1.0.0',\n * })(ctx => async (order: Order) => {\n * // Workflow baggage is auto-set\n * await publishToInventory(order);\n * });\n *\n * const publishToInventory = traceProducer({\n * system: 'kafka',\n * destination: 'inventory-requests',\n * propagateBaggage: true, // Includes workflow.* baggage\n * })(ctx => async (order) => {\n * await producer.send({ topic: 'inventory-requests', value: order });\n * });\n *\n * // Service B: Inventory Service\n * import { traceDistributedStep, WorkflowBaggage } from 'autotel/workflow-distributed';\n *\n * export const processInventory = traceDistributedStep({\n * name: 'ReserveInventory',\n * extractBaggage: true, // Extracts workflow.* from headers\n * })(ctx => async (message) => {\n * const workflow = WorkflowBaggage.get(ctx);\n * // workflow.workflowId === order.id (propagated from Service A)\n * console.log(`Processing step for workflow ${workflow.workflowId}`);\n * await reserveItems(message.items);\n * });\n * ```\n *\n * @module\n */\n\nimport { context, propagation, SpanKind } from '@opentelemetry/api';\nimport { createSafeBaggageSchema } from './business-baggage';\nimport { emitCorrelatedEvent } from './correlated-events';\nimport { trace } from './functional';\nimport type { TraceContext } from './trace-context';\n\n// ============================================================================\n// Workflow Baggage Schema\n// ============================================================================\n\n/**\n * Workflow baggage field definitions\n */\nconst workflowBaggageFields = {\n /** Unique identifier for the workflow instance */\n workflowId: { type: 'string' as const, maxLength: 128, required: true },\n\n /** Name/type of the workflow (e.g., \"OrderFulfillment\") */\n workflowName: { type: 'string' as const, maxLength: 64, required: true },\n\n /** Version of the workflow definition */\n workflowVersion: { type: 'string' as const, maxLength: 32 },\n\n /** Current step name */\n stepName: { type: 'string' as const, maxLength: 64 },\n\n /** Current step index (0-based) */\n stepIndex: { type: 'number' as const },\n\n /** Total number of steps (if known) */\n totalSteps: { type: 'number' as const },\n\n /** Parent workflow ID (for sub-workflows) */\n parentWorkflowId: { type: 'string' as const, maxLength: 128 },\n\n /** Correlation ID for external systems */\n correlationId: { type: 'string' as const, maxLength: 128 },\n\n /** Workflow priority */\n priority: {\n type: 'enum' as const,\n values: ['low', 'normal', 'high', 'critical'] as const,\n },\n\n /** Initiating user/system */\n initiatedBy: { type: 'string' as const, maxLength: 64 },\n\n /** Workflow start timestamp (ISO) */\n startedAt: { type: 'string' as const, maxLength: 30 },\n} as const;\n\n/**\n * Pre-built baggage schema for distributed workflows\n *\n * Use this to read/write workflow context that propagates across services.\n *\n * @example Setting workflow baggage\n * ```typescript\n * WorkflowBaggage.set(ctx, {\n * workflowId: 'order-12345',\n * workflowName: 'OrderFulfillment',\n * stepName: 'ReserveInventory',\n * stepIndex: 1,\n * });\n * ```\n *\n * @example Reading workflow baggage in downstream service\n * ```typescript\n * const { workflowId, workflowName, stepIndex } = WorkflowBaggage.get(ctx);\n * console.log(`Processing ${workflowName} step ${stepIndex}`);\n * ```\n */\nexport const WorkflowBaggage = createSafeBaggageSchema(workflowBaggageFields, {\n prefix: 'workflow',\n hashHighCardinality: false, // Workflow IDs should be traceable\n redactPII: false, // Workflow fields are internal identifiers\n});\n\n/**\n * Type for workflow baggage values\n */\nexport type WorkflowBaggageValues = {\n workflowId: string;\n workflowName: string;\n workflowVersion?: string;\n stepName?: string;\n stepIndex?: number;\n totalSteps?: number;\n parentWorkflowId?: string;\n correlationId?: string;\n priority?: 'low' | 'normal' | 'high' | 'critical';\n initiatedBy?: string;\n startedAt?: string;\n};\n\n// ============================================================================\n// Types\n// ============================================================================\n\n/**\n * Configuration for distributed workflow tracing\n */\nexport interface DistributedWorkflowConfig {\n /** Workflow name/type (e.g., \"OrderFulfillment\", \"UserOnboarding\") */\n name: string;\n\n /**\n * Extract workflow ID from function arguments\n *\n * Receives all arguments passed to the workflow function, allowing\n * multi-parameter handlers to derive workflow IDs from any argument.\n *\n * @example Single argument\n * ```typescript\n * workflowIdFrom: (order) => order.id\n * ```\n *\n * @example Multiple arguments (payload + metadata)\n * ```typescript\n * workflowIdFrom: (payload, metadata) => metadata.correlationId ?? payload.id\n * ```\n */\n workflowIdFrom: (...args: unknown[]) => string;\n\n /** Workflow version (e.g., \"1.0.0\", \"2023-01-15\") */\n version?: string;\n\n /** Total number of steps if known */\n totalSteps?: number;\n\n /** Parent workflow ID (for sub-workflows) */\n parentWorkflowId?: string;\n\n /** Correlation ID for external systems */\n correlationId?: string;\n\n /** Workflow priority */\n priority?: 'low' | 'normal' | 'high' | 'critical';\n\n /** User/system that initiated the workflow */\n initiatedBy?: string;\n\n /** Additional span attributes */\n attributes?: Record<string, string | number | boolean>;\n\n /** Callback on workflow start */\n onStart?: (ctx: DistributedWorkflowContext) => void;\n\n /** Callback on workflow completion */\n onComplete?: (ctx: DistributedWorkflowContext, result: unknown) => void;\n\n /** Callback on workflow error */\n onError?: (ctx: DistributedWorkflowContext, error: Error) => void;\n}\n\n/**\n * Configuration for distributed workflow step\n */\nexport interface DistributedStepConfig {\n /** Step name (e.g., \"ReserveInventory\", \"ChargePayment\") */\n name: string;\n\n /**\n * Extract baggage from incoming message/request\n *\n * If true, reads workflow baggage from current context (assumes already extracted).\n * If function, extracts from arguments.\n *\n * @default true\n */\n extractBaggage?:\n | boolean\n | ((args: unknown[]) => WorkflowBaggageValues | null);\n\n /** Override step index (otherwise uses baggage or auto-increments) */\n stepIndex?: number;\n\n /** Additional span attributes */\n attributes?: Record<string, string | number | boolean>;\n\n /** Whether this step is idempotent (safe to retry) */\n idempotent?: boolean;\n\n /** Whether this step is a compensation/rollback step */\n isCompensation?: boolean;\n\n /** Callback on step start */\n onStart?: (ctx: DistributedStepContext) => void;\n\n /** Callback on step completion */\n onComplete?: (ctx: DistributedStepContext, result: unknown) => void;\n\n /** Callback on step error */\n onError?: (ctx: DistributedStepContext, error: Error) => void;\n}\n\n/**\n * Extended context for distributed workflow root\n */\nexport interface DistributedWorkflowContext extends TraceContext {\n /** The workflow ID */\n workflowId: string;\n\n /** The workflow name */\n workflowName: string;\n\n /** The workflow version */\n workflowVersion?: string;\n\n /** Get workflow baggage for propagation to other services */\n getWorkflowBaggage(): WorkflowBaggageValues;\n\n /** Set additional workflow baggage fields */\n setWorkflowBaggage(values: Partial<WorkflowBaggageValues>): void;\n\n /** Get headers with workflow baggage for outgoing requests */\n getWorkflowHeaders(): Record<string, string>;\n\n /** Record workflow step completion (for progress tracking) */\n recordStepProgress(stepName: string, stepIndex: number): void;\n}\n\n/**\n * Extended context for distributed workflow step\n */\nexport interface DistributedStepContext extends TraceContext {\n /** The workflow ID (from baggage) */\n workflowId: string | null;\n\n /** The workflow name (from baggage) */\n workflowName: string | null;\n\n /** The current step name */\n stepName: string;\n\n /** The current step index */\n stepIndex: number | null;\n\n /** Whether this step is a compensation */\n isCompensation: boolean;\n\n /** Get the full workflow baggage */\n getWorkflowBaggage(): WorkflowBaggageValues | null;\n\n /** Update workflow baggage (e.g., increment step index) */\n updateWorkflowBaggage(values: Partial<WorkflowBaggageValues>): void;\n\n /** Get headers with updated workflow baggage for downstream calls */\n getWorkflowHeaders(): Record<string, string>;\n\n /** Mark step as requiring compensation on failure */\n requiresCompensation(compensationData?: Record<string, unknown>): void;\n}\n\n// ============================================================================\n// Distributed Workflow Tracer\n// ============================================================================\n\n/**\n * Create a traced distributed workflow function\n *\n * Wraps a function as the entry point for a distributed workflow. Automatically:\n * - Generates or extracts workflow ID\n * - Sets workflow baggage for downstream propagation\n * - Creates root span with workflow attributes\n *\n * @param config - Workflow configuration\n * @returns Factory function for the workflow handler\n *\n * @example Basic usage\n * ```typescript\n * export const createOrder = traceDistributedWorkflow({\n * name: 'OrderFulfillment',\n * workflowIdFrom: (order) => order.id,\n * version: '1.0.0',\n * })(ctx => async (order: Order) => {\n * ctx.recordStepProgress('ValidateOrder', 0);\n * await validateOrder(order);\n *\n * ctx.recordStepProgress('ReserveInventory', 1);\n * await publishToInventoryService(order);\n *\n * return { workflowId: ctx.workflowId, status: 'started' };\n * });\n * ```\n */\nexport function traceDistributedWorkflow<TArgs extends unknown[], TReturn>(\n config: DistributedWorkflowConfig,\n) {\n const spanName = `workflow.${config.name}`;\n\n return (\n fnFactory: (\n ctx: DistributedWorkflowContext,\n ) => (...args: TArgs) => Promise<TReturn>,\n ): ((...args: TArgs) => Promise<TReturn>) => {\n return trace<TArgs, TReturn>(\n { name: spanName, spanKind: SpanKind.INTERNAL },\n (baseCtx) => {\n return async (...args: TArgs) => {\n // Extract workflow ID from arguments (spread to allow multi-arg access)\n const workflowId = config.workflowIdFrom(...args);\n const startedAt = new Date().toISOString();\n\n // Initialize workflow baggage\n const baggageValues: WorkflowBaggageValues = {\n workflowId,\n workflowName: config.name,\n workflowVersion: config.version,\n stepIndex: 0,\n totalSteps: config.totalSteps,\n parentWorkflowId: config.parentWorkflowId,\n correlationId: config.correlationId,\n priority: config.priority,\n initiatedBy: config.initiatedBy,\n startedAt,\n };\n\n // Set baggage\n WorkflowBaggage.set(baseCtx, baggageValues);\n\n // Set span attributes\n baseCtx.setAttribute('workflow.id', workflowId);\n baseCtx.setAttribute('workflow.name', config.name);\n if (config.version) {\n baseCtx.setAttribute('workflow.version', config.version);\n }\n if (config.totalSteps) {\n baseCtx.setAttribute('workflow.total_steps', config.totalSteps);\n }\n if (config.parentWorkflowId) {\n baseCtx.setAttribute('workflow.parent_id', config.parentWorkflowId);\n }\n if (config.priority) {\n baseCtx.setAttribute('workflow.priority', config.priority);\n }\n if (config.initiatedBy) {\n baseCtx.setAttribute('workflow.initiated_by', config.initiatedBy);\n }\n baseCtx.setAttribute('workflow.started_at', startedAt);\n\n // Apply custom attributes\n if (config.attributes) {\n for (const [key, value] of Object.entries(config.attributes)) {\n baseCtx.setAttribute(key, value);\n }\n }\n\n // Create extended context\n const workflowCtx: DistributedWorkflowContext = {\n ...baseCtx,\n workflowId,\n workflowName: config.name,\n workflowVersion: config.version,\n\n getWorkflowBaggage(): WorkflowBaggageValues {\n return { ...baggageValues };\n },\n\n setWorkflowBaggage(values: Partial<WorkflowBaggageValues>): void {\n Object.assign(baggageValues, values);\n WorkflowBaggage.set(baseCtx, baggageValues);\n },\n\n getWorkflowHeaders(): Record<string, string> {\n const headers: Record<string, string> = {};\n const ctx = context.active();\n propagation.inject(ctx, headers);\n return headers;\n },\n\n recordStepProgress(stepName: string, stepIndex: number): void {\n baggageValues.stepName = stepName;\n baggageValues.stepIndex = stepIndex;\n WorkflowBaggage.set(baseCtx, baggageValues);\n\n emitCorrelatedEvent(baseCtx, 'workflow.step_progress', {\n 'workflow.step.name': stepName,\n 'workflow.step.index': stepIndex,\n });\n },\n };\n\n // Call onStart callback\n config.onStart?.(workflowCtx);\n\n // Add start event\n emitCorrelatedEvent(baseCtx, 'workflow.started', {\n 'workflow.id': workflowId,\n 'workflow.name': config.name,\n });\n\n try {\n const userFn = fnFactory(workflowCtx);\n const result = await userFn(...args);\n\n // Call onComplete callback\n config.onComplete?.(workflowCtx, result);\n\n // Add completion event\n emitCorrelatedEvent(baseCtx, 'workflow.completed', {\n 'workflow.id': workflowId,\n });\n\n return result;\n } catch (error) {\n // Call onError callback\n config.onError?.(workflowCtx, error as Error);\n\n // Add error event\n emitCorrelatedEvent(baseCtx, 'workflow.failed', {\n 'workflow.id': workflowId,\n 'workflow.error': (error as Error).message,\n });\n\n throw error;\n }\n };\n },\n );\n };\n}\n\n// ============================================================================\n// Distributed Step Tracer\n// ============================================================================\n\n/**\n * Create a traced distributed workflow step\n *\n * Use in downstream services to trace steps that are part of a distributed workflow.\n * Automatically extracts workflow baggage from the current context.\n *\n * @param config - Step configuration\n * @returns Factory function for the step handler\n *\n * @example Consumer in downstream service\n * ```typescript\n * export const processInventory = traceConsumer({\n * system: 'kafka',\n * destination: 'inventory-requests',\n * extractBaggage: true, // Extracts workflow.* from headers\n * })(ctx => {\n * // Wrap inner logic with traceDistributedStep\n * return traceDistributedStep({\n * name: 'ReserveInventory',\n * })(stepCtx => async (message) => {\n * console.log(`Processing workflow ${stepCtx.workflowId}`);\n * await reserveItems(message.items);\n * })(message);\n * });\n * ```\n *\n * @example Standalone step handler\n * ```typescript\n * export const reserveInventory = traceDistributedStep({\n * name: 'ReserveInventory',\n * idempotent: true,\n * })(ctx => async (request: InventoryRequest) => {\n * if (ctx.workflowId) {\n * console.log(`Part of workflow ${ctx.workflowId}, step ${ctx.stepIndex}`);\n * }\n * return await inventoryService.reserve(request.items);\n * });\n * ```\n */\nexport function traceDistributedStep<TArgs extends unknown[], TReturn>(\n config: DistributedStepConfig,\n) {\n const spanName = `workflow.step.${config.name}`;\n\n return (\n fnFactory: (\n ctx: DistributedStepContext,\n ) => (...args: TArgs) => Promise<TReturn>,\n ): ((...args: TArgs) => Promise<TReturn>) => {\n return trace<TArgs, TReturn>(\n { name: spanName, spanKind: SpanKind.INTERNAL },\n (baseCtx) => {\n return async (...args: TArgs) => {\n // Extract workflow baggage\n let baggageValues: WorkflowBaggageValues | null = null;\n\n const extractBaggage = config.extractBaggage ?? true;\n if (typeof extractBaggage === 'function') {\n baggageValues = extractBaggage(args);\n } else if (extractBaggage) {\n // Read from current context\n const extracted = WorkflowBaggage.get(baseCtx);\n if (extracted.workflowId && extracted.workflowName) {\n baggageValues = extracted as WorkflowBaggageValues;\n }\n }\n\n // Determine step index\n // If explicit stepIndex provided in config, use it\n // Otherwise, auto-increment from baggage if available\n let stepIndex: number | null;\n if (config.stepIndex !== undefined) {\n stepIndex = config.stepIndex;\n } else if (baggageValues?.stepIndex === undefined) {\n stepIndex = null;\n } else {\n // Auto-increment from previous step\n stepIndex = baggageValues.stepIndex + 1;\n }\n\n // Update baggage with current step\n if (baggageValues) {\n baggageValues.stepName = config.name;\n if (stepIndex !== null) {\n baggageValues.stepIndex = stepIndex;\n }\n WorkflowBaggage.set(baseCtx, baggageValues);\n }\n\n // Set span attributes\n baseCtx.setAttribute('workflow.step.name', config.name);\n if (stepIndex !== null) {\n baseCtx.setAttribute('workflow.step.index', stepIndex);\n }\n if (config.idempotent !== undefined) {\n baseCtx.setAttribute('workflow.step.idempotent', config.idempotent);\n }\n if (config.isCompensation) {\n baseCtx.setAttribute('workflow.step.is_compensation', true);\n }\n\n // Add workflow context attributes if available\n if (baggageValues) {\n baseCtx.setAttribute('workflow.id', baggageValues.workflowId);\n baseCtx.setAttribute('workflow.name', baggageValues.workflowName);\n if (baggageValues.workflowVersion) {\n baseCtx.setAttribute(\n 'workflow.version',\n baggageValues.workflowVersion,\n );\n }\n if (baggageValues.totalSteps) {\n baseCtx.setAttribute(\n 'workflow.total_steps',\n baggageValues.totalSteps,\n );\n }\n }\n\n // Apply custom attributes\n if (config.attributes) {\n for (const [key, value] of Object.entries(config.attributes)) {\n baseCtx.setAttribute(key, value);\n }\n }\n\n // Compensation data storage\n let compensationData: Record<string, unknown> | undefined;\n\n // Create extended context\n const stepCtx: DistributedStepContext = {\n ...baseCtx,\n workflowId: baggageValues?.workflowId ?? null,\n workflowName: baggageValues?.workflowName ?? null,\n stepName: config.name,\n stepIndex,\n isCompensation: config.isCompensation ?? false,\n\n getWorkflowBaggage(): WorkflowBaggageValues | null {\n return baggageValues ? { ...baggageValues } : null;\n },\n\n updateWorkflowBaggage(\n values: Partial<WorkflowBaggageValues>,\n ): void {\n if (baggageValues) {\n Object.assign(baggageValues, values);\n WorkflowBaggage.set(baseCtx, baggageValues);\n }\n },\n\n getWorkflowHeaders(): Record<string, string> {\n const headers: Record<string, string> = {};\n const ctx = context.active();\n propagation.inject(ctx, headers);\n return headers;\n },\n\n requiresCompensation(data?: Record<string, unknown>): void {\n compensationData = data;\n baseCtx.setAttribute('workflow.step.requires_compensation', true);\n emitCorrelatedEvent(\n baseCtx,\n 'workflow.step.compensation_registered',\n {\n 'workflow.step.name': config.name,\n ...(data && {\n 'workflow.step.compensation_data': JSON.stringify(data),\n }),\n },\n );\n },\n };\n\n // Call onStart callback\n config.onStart?.(stepCtx);\n\n // Add start event\n emitCorrelatedEvent(baseCtx, 'workflow.step.started', {\n 'workflow.step.name': config.name,\n ...(baggageValues && { 'workflow.id': baggageValues.workflowId }),\n });\n\n try {\n const userFn = fnFactory(stepCtx);\n const result = await userFn(...args);\n\n // Call onComplete callback\n config.onComplete?.(stepCtx, result);\n\n // Add completion event\n emitCorrelatedEvent(baseCtx, 'workflow.step.completed', {\n 'workflow.step.name': config.name,\n });\n\n return result;\n } catch (error) {\n // Call onError callback\n config.onError?.(stepCtx, error as Error);\n\n // Add error event with compensation info if registered\n emitCorrelatedEvent(baseCtx, 'workflow.step.failed', {\n 'workflow.step.name': config.name,\n 'workflow.step.error': (error as Error).message,\n ...(compensationData && {\n 'workflow.step.requires_compensation': true,\n }),\n });\n\n throw error;\n }\n };\n },\n );\n };\n}\n\n// ============================================================================\n// Utility Functions\n// ============================================================================\n\n/**\n * Generate a unique workflow ID\n *\n * @param prefix - Optional prefix for the ID\n * @returns A unique workflow ID\n *\n * @example\n * ```typescript\n * const workflowId = generateWorkflowId('order'); // \"order-abc123def456\"\n * ```\n */\nexport function generateWorkflowId(prefix?: string): string {\n const random = Math.random().toString(36).slice(2, 15);\n const timestamp = Date.now().toString(36);\n const id = `${timestamp}-${random}`;\n return prefix ? `${prefix}-${id}` : id;\n}\n\n/**\n * Check if the current context is part of a distributed workflow\n *\n * @param ctx - The trace context\n * @returns True if workflow baggage is present\n */\nexport function isInDistributedWorkflow(ctx: TraceContext): boolean {\n const baggage = WorkflowBaggage.get(ctx);\n return !!(baggage.workflowId && baggage.workflowName);\n}\n\n/**\n * Get workflow progress information\n *\n * @param ctx - The trace context\n * @returns Progress info or null if not in a workflow\n */\nexport function getWorkflowProgress(ctx: TraceContext): {\n workflowId: string;\n workflowName: string;\n currentStep: string | null;\n currentStepIndex: number | null;\n totalSteps: number | null;\n percentComplete: number | null;\n} | null {\n const baggage = WorkflowBaggage.get(ctx);\n if (!baggage.workflowId || !baggage.workflowName) {\n return null;\n }\n\n const percentComplete =\n baggage.totalSteps && baggage.stepIndex !== undefined\n ? Math.round(((baggage.stepIndex + 1) / baggage.totalSteps) * 100)\n : null;\n\n return {\n workflowId: baggage.workflowId,\n workflowName: baggage.workflowName,\n currentStep: baggage.stepName ?? null,\n currentStepIndex: baggage.stepIndex ?? null,\n totalSteps: baggage.totalSteps ?? null,\n percentComplete,\n };\n}\n\n/**\n * Create workflow correlation headers for manual propagation\n *\n * Use when you need to manually add workflow context to outgoing requests.\n *\n * @param values - Workflow baggage values\n * @returns Headers object with workflow baggage\n *\n * @example\n * ```typescript\n * const headers = createWorkflowHeaders({\n * workflowId: 'order-123',\n * workflowName: 'OrderFulfillment',\n * stepIndex: 2,\n * });\n *\n * await fetch('/api/inventory', { headers });\n * ```\n */\nexport function createWorkflowHeaders(\n values: Partial<WorkflowBaggageValues>,\n): Record<string, string> {\n const headers: Record<string, string> = {};\n\n // Build baggage string\n const baggageEntries: string[] = [];\n\n if (values.workflowId) {\n baggageEntries.push(\n `workflow.workflowId=${encodeURIComponent(values.workflowId)}`,\n );\n }\n if (values.workflowName) {\n baggageEntries.push(\n `workflow.workflowName=${encodeURIComponent(values.workflowName)}`,\n );\n }\n if (values.workflowVersion) {\n baggageEntries.push(\n `workflow.workflowVersion=${encodeURIComponent(values.workflowVersion)}`,\n );\n }\n if (values.stepName) {\n baggageEntries.push(\n `workflow.stepName=${encodeURIComponent(values.stepName)}`,\n );\n }\n if (values.stepIndex !== undefined) {\n baggageEntries.push(`workflow.stepIndex=${values.stepIndex}`);\n }\n if (values.totalSteps !== undefined) {\n baggageEntries.push(`workflow.totalSteps=${values.totalSteps}`);\n }\n if (values.priority) {\n baggageEntries.push(`workflow.priority=${values.priority}`);\n }\n if (values.correlationId) {\n baggageEntries.push(\n `workflow.correlationId=${encodeURIComponent(values.correlationId)}`,\n );\n }\n if (values.parentWorkflowId) {\n baggageEntries.push(\n `workflow.parentWorkflowId=${encodeURIComponent(values.parentWorkflowId)}`,\n );\n }\n if (values.initiatedBy) {\n baggageEntries.push(\n `workflow.initiatedBy=${encodeURIComponent(values.initiatedBy)}`,\n );\n }\n if (values.startedAt) {\n baggageEntries.push(\n `workflow.startedAt=${encodeURIComponent(values.startedAt)}`,\n );\n }\n\n if (baggageEntries.length > 0) {\n headers['baggage'] = baggageEntries.join(',');\n }\n\n return headers;\n}\n\n/**\n * Parse workflow context from baggage header\n *\n * @param baggageHeader - The baggage header value\n * @returns Parsed workflow values or null\n */\nexport function parseWorkflowFromBaggage(\n baggageHeader: string,\n): Partial<WorkflowBaggageValues> | null {\n if (!baggageHeader) {\n return null;\n }\n\n const values: Partial<WorkflowBaggageValues> = {};\n const entries = baggageHeader.split(',');\n\n for (const entry of entries) {\n const [key, value] = entry.trim().split('=');\n if (!key || !value) continue;\n\n const decodedValue = decodeURIComponent(value);\n\n switch (key) {\n case 'workflow.workflowId': {\n values.workflowId = decodedValue;\n break;\n }\n case 'workflow.workflowName': {\n values.workflowName = decodedValue;\n break;\n }\n case 'workflow.workflowVersion': {\n values.workflowVersion = decodedValue;\n break;\n }\n case 'workflow.stepName': {\n values.stepName = decodedValue;\n break;\n }\n case 'workflow.stepIndex': {\n values.stepIndex = Number.parseInt(decodedValue, 10);\n break;\n }\n case 'workflow.totalSteps': {\n values.totalSteps = Number.parseInt(decodedValue, 10);\n break;\n }\n case 'workflow.priority': {\n values.priority = decodedValue as WorkflowBaggageValues['priority'];\n break;\n }\n case 'workflow.correlationId': {\n values.correlationId = decodedValue;\n break;\n }\n case 'workflow.parentWorkflowId': {\n values.parentWorkflowId = decodedValue;\n break;\n }\n case 'workflow.initiatedBy': {\n values.initiatedBy = decodedValue;\n break;\n }\n case 'workflow.startedAt': {\n values.startedAt = decodedValue;\n break;\n }\n }\n }\n\n return Object.keys(values).length > 0 ? values : null;\n}\n"]}
1
+ {"version":3,"file":"workflow-distributed.cjs","names":["createSafeBaggageSchema","trace","SpanKind","context"],"sources":["../src/workflow-distributed.ts"],"sourcesContent":["/**\n * Distributed workflow tracing with cross-service correlation\n *\n * Enables tracking workflows that span multiple microservices by propagating\n * workflow identity (workflowId, stepName, stepIndex) via baggage in message headers.\n *\n * Unlike local workflow.ts (which uses AsyncLocalStorage), distributed workflows\n * propagate context across network boundaries using W3C baggage.\n *\n * @example Order fulfillment saga across services\n * ```typescript\n * // Service A: Order Service\n * import { traceDistributedWorkflow, WorkflowBaggage } from 'autotel/workflow-distributed';\n * import { traceProducer } from 'autotel/messaging';\n *\n * export const createOrder = traceDistributedWorkflow({\n * name: 'OrderFulfillment',\n * workflowIdFrom: (order) => order.id,\n * version: '1.0.0',\n * })(ctx => async (order: Order) => {\n * // Workflow baggage is auto-set\n * await publishToInventory(order);\n * });\n *\n * const publishToInventory = traceProducer({\n * system: 'kafka',\n * destination: 'inventory-requests',\n * propagateBaggage: true, // Includes workflow.* baggage\n * })(ctx => async (order) => {\n * await producer.send({ topic: 'inventory-requests', value: order });\n * });\n *\n * // Service B: Inventory Service\n * import { traceDistributedStep, WorkflowBaggage } from 'autotel/workflow-distributed';\n *\n * export const processInventory = traceDistributedStep({\n * name: 'ReserveInventory',\n * extractBaggage: true, // Extracts workflow.* from headers\n * })(ctx => async (message) => {\n * const workflow = WorkflowBaggage.get(ctx);\n * // workflow.workflowId === order.id (propagated from Service A)\n * console.log(`Processing step for workflow ${workflow.workflowId}`);\n * await reserveItems(message.items);\n * });\n * ```\n *\n * @module\n */\n\nimport { context, propagation, SpanKind } from '@opentelemetry/api';\nimport { createSafeBaggageSchema } from './business-baggage';\nimport { emitCorrelatedEvent } from './correlated-events';\nimport { trace } from './functional';\nimport type { TraceContext } from './trace-context';\n\n// ============================================================================\n// Workflow Baggage Schema\n// ============================================================================\n\n/**\n * Workflow baggage field definitions\n */\nconst workflowBaggageFields = {\n /** Unique identifier for the workflow instance */\n workflowId: { type: 'string' as const, maxLength: 128, required: true },\n\n /** Name/type of the workflow (e.g., \"OrderFulfillment\") */\n workflowName: { type: 'string' as const, maxLength: 64, required: true },\n\n /** Version of the workflow definition */\n workflowVersion: { type: 'string' as const, maxLength: 32 },\n\n /** Current step name */\n stepName: { type: 'string' as const, maxLength: 64 },\n\n /** Current step index (0-based) */\n stepIndex: { type: 'number' as const },\n\n /** Total number of steps (if known) */\n totalSteps: { type: 'number' as const },\n\n /** Parent workflow ID (for sub-workflows) */\n parentWorkflowId: { type: 'string' as const, maxLength: 128 },\n\n /** Correlation ID for external systems */\n correlationId: { type: 'string' as const, maxLength: 128 },\n\n /** Workflow priority */\n priority: {\n type: 'enum' as const,\n values: ['low', 'normal', 'high', 'critical'] as const,\n },\n\n /** Initiating user/system */\n initiatedBy: { type: 'string' as const, maxLength: 64 },\n\n /** Workflow start timestamp (ISO) */\n startedAt: { type: 'string' as const, maxLength: 30 },\n} as const;\n\n/**\n * Pre-built baggage schema for distributed workflows\n *\n * Use this to read/write workflow context that propagates across services.\n *\n * @example Setting workflow baggage\n * ```typescript\n * WorkflowBaggage.set(ctx, {\n * workflowId: 'order-12345',\n * workflowName: 'OrderFulfillment',\n * stepName: 'ReserveInventory',\n * stepIndex: 1,\n * });\n * ```\n *\n * @example Reading workflow baggage in downstream service\n * ```typescript\n * const { workflowId, workflowName, stepIndex } = WorkflowBaggage.get(ctx);\n * console.log(`Processing ${workflowName} step ${stepIndex}`);\n * ```\n */\nexport const WorkflowBaggage = createSafeBaggageSchema(workflowBaggageFields, {\n prefix: 'workflow',\n hashHighCardinality: false, // Workflow IDs should be traceable\n redactPII: false, // Workflow fields are internal identifiers\n});\n\n/**\n * Type for workflow baggage values\n */\nexport type WorkflowBaggageValues = {\n workflowId: string;\n workflowName: string;\n workflowVersion?: string;\n stepName?: string;\n stepIndex?: number;\n totalSteps?: number;\n parentWorkflowId?: string;\n correlationId?: string;\n priority?: 'low' | 'normal' | 'high' | 'critical';\n initiatedBy?: string;\n startedAt?: string;\n};\n\n// ============================================================================\n// Types\n// ============================================================================\n\n/**\n * Configuration for distributed workflow tracing\n */\nexport interface DistributedWorkflowConfig {\n /** Workflow name/type (e.g., \"OrderFulfillment\", \"UserOnboarding\") */\n name: string;\n\n /**\n * Extract workflow ID from function arguments\n *\n * Receives all arguments passed to the workflow function, allowing\n * multi-parameter handlers to derive workflow IDs from any argument.\n *\n * @example Single argument\n * ```typescript\n * workflowIdFrom: (order) => order.id\n * ```\n *\n * @example Multiple arguments (payload + metadata)\n * ```typescript\n * workflowIdFrom: (payload, metadata) => metadata.correlationId ?? payload.id\n * ```\n */\n workflowIdFrom: (...args: unknown[]) => string;\n\n /** Workflow version (e.g., \"1.0.0\", \"2023-01-15\") */\n version?: string;\n\n /** Total number of steps if known */\n totalSteps?: number;\n\n /** Parent workflow ID (for sub-workflows) */\n parentWorkflowId?: string;\n\n /** Correlation ID for external systems */\n correlationId?: string;\n\n /** Workflow priority */\n priority?: 'low' | 'normal' | 'high' | 'critical';\n\n /** User/system that initiated the workflow */\n initiatedBy?: string;\n\n /** Additional span attributes */\n attributes?: Record<string, string | number | boolean>;\n\n /** Callback on workflow start */\n onStart?: (ctx: DistributedWorkflowContext) => void;\n\n /** Callback on workflow completion */\n onComplete?: (ctx: DistributedWorkflowContext, result: unknown) => void;\n\n /** Callback on workflow error */\n onError?: (ctx: DistributedWorkflowContext, error: Error) => void;\n}\n\n/**\n * Configuration for distributed workflow step\n */\nexport interface DistributedStepConfig {\n /** Step name (e.g., \"ReserveInventory\", \"ChargePayment\") */\n name: string;\n\n /**\n * Extract baggage from incoming message/request\n *\n * If true, reads workflow baggage from current context (assumes already extracted).\n * If function, extracts from arguments.\n *\n * @default true\n */\n extractBaggage?:\n | boolean\n | ((args: unknown[]) => WorkflowBaggageValues | null);\n\n /** Override step index (otherwise uses baggage or auto-increments) */\n stepIndex?: number;\n\n /** Additional span attributes */\n attributes?: Record<string, string | number | boolean>;\n\n /** Whether this step is idempotent (safe to retry) */\n idempotent?: boolean;\n\n /** Whether this step is a compensation/rollback step */\n isCompensation?: boolean;\n\n /** Callback on step start */\n onStart?: (ctx: DistributedStepContext) => void;\n\n /** Callback on step completion */\n onComplete?: (ctx: DistributedStepContext, result: unknown) => void;\n\n /** Callback on step error */\n onError?: (ctx: DistributedStepContext, error: Error) => void;\n}\n\n/**\n * Extended context for distributed workflow root\n */\nexport interface DistributedWorkflowContext extends TraceContext {\n /** The workflow ID */\n workflowId: string;\n\n /** The workflow name */\n workflowName: string;\n\n /** The workflow version */\n workflowVersion?: string;\n\n /** Get workflow baggage for propagation to other services */\n getWorkflowBaggage(): WorkflowBaggageValues;\n\n /** Set additional workflow baggage fields */\n setWorkflowBaggage(values: Partial<WorkflowBaggageValues>): void;\n\n /** Get headers with workflow baggage for outgoing requests */\n getWorkflowHeaders(): Record<string, string>;\n\n /** Record workflow step completion (for progress tracking) */\n recordStepProgress(stepName: string, stepIndex: number): void;\n}\n\n/**\n * Extended context for distributed workflow step\n */\nexport interface DistributedStepContext extends TraceContext {\n /** The workflow ID (from baggage) */\n workflowId: string | null;\n\n /** The workflow name (from baggage) */\n workflowName: string | null;\n\n /** The current step name */\n stepName: string;\n\n /** The current step index */\n stepIndex: number | null;\n\n /** Whether this step is a compensation */\n isCompensation: boolean;\n\n /** Get the full workflow baggage */\n getWorkflowBaggage(): WorkflowBaggageValues | null;\n\n /** Update workflow baggage (e.g., increment step index) */\n updateWorkflowBaggage(values: Partial<WorkflowBaggageValues>): void;\n\n /** Get headers with updated workflow baggage for downstream calls */\n getWorkflowHeaders(): Record<string, string>;\n\n /** Mark step as requiring compensation on failure */\n requiresCompensation(compensationData?: Record<string, unknown>): void;\n}\n\n// ============================================================================\n// Distributed Workflow Tracer\n// ============================================================================\n\n/**\n * Create a traced distributed workflow function\n *\n * Wraps a function as the entry point for a distributed workflow. Automatically:\n * - Generates or extracts workflow ID\n * - Sets workflow baggage for downstream propagation\n * - Creates root span with workflow attributes\n *\n * @param config - Workflow configuration\n * @returns Factory function for the workflow handler\n *\n * @example Basic usage\n * ```typescript\n * export const createOrder = traceDistributedWorkflow({\n * name: 'OrderFulfillment',\n * workflowIdFrom: (order) => order.id,\n * version: '1.0.0',\n * })(ctx => async (order: Order) => {\n * ctx.recordStepProgress('ValidateOrder', 0);\n * await validateOrder(order);\n *\n * ctx.recordStepProgress('ReserveInventory', 1);\n * await publishToInventoryService(order);\n *\n * return { workflowId: ctx.workflowId, status: 'started' };\n * });\n * ```\n */\nexport function traceDistributedWorkflow<TArgs extends unknown[], TReturn>(\n config: DistributedWorkflowConfig,\n) {\n const spanName = `workflow.${config.name}`;\n\n return (\n fnFactory: (\n ctx: DistributedWorkflowContext,\n ) => (...args: TArgs) => Promise<TReturn>,\n ): ((...args: TArgs) => Promise<TReturn>) => {\n return trace<TArgs, TReturn>(\n { name: spanName, spanKind: SpanKind.INTERNAL },\n (baseCtx) => {\n return async (...args: TArgs) => {\n // Extract workflow ID from arguments (spread to allow multi-arg access)\n const workflowId = config.workflowIdFrom(...args);\n const startedAt = new Date().toISOString();\n\n // Initialize workflow baggage\n const baggageValues: WorkflowBaggageValues = {\n workflowId,\n workflowName: config.name,\n workflowVersion: config.version,\n stepIndex: 0,\n totalSteps: config.totalSteps,\n parentWorkflowId: config.parentWorkflowId,\n correlationId: config.correlationId,\n priority: config.priority,\n initiatedBy: config.initiatedBy,\n startedAt,\n };\n\n // Set baggage\n WorkflowBaggage.set(baseCtx, baggageValues);\n\n // Set span attributes\n baseCtx.setAttribute('workflow.id', workflowId);\n baseCtx.setAttribute('workflow.name', config.name);\n if (config.version) {\n baseCtx.setAttribute('workflow.version', config.version);\n }\n if (config.totalSteps) {\n baseCtx.setAttribute('workflow.total_steps', config.totalSteps);\n }\n if (config.parentWorkflowId) {\n baseCtx.setAttribute('workflow.parent_id', config.parentWorkflowId);\n }\n if (config.priority) {\n baseCtx.setAttribute('workflow.priority', config.priority);\n }\n if (config.initiatedBy) {\n baseCtx.setAttribute('workflow.initiated_by', config.initiatedBy);\n }\n baseCtx.setAttribute('workflow.started_at', startedAt);\n\n // Apply custom attributes\n if (config.attributes) {\n for (const [key, value] of Object.entries(config.attributes)) {\n baseCtx.setAttribute(key, value);\n }\n }\n\n // Create extended context\n const workflowCtx: DistributedWorkflowContext = {\n ...baseCtx,\n workflowId,\n workflowName: config.name,\n workflowVersion: config.version,\n\n getWorkflowBaggage(): WorkflowBaggageValues {\n return { ...baggageValues };\n },\n\n setWorkflowBaggage(values: Partial<WorkflowBaggageValues>): void {\n Object.assign(baggageValues, values);\n WorkflowBaggage.set(baseCtx, baggageValues);\n },\n\n getWorkflowHeaders(): Record<string, string> {\n const headers: Record<string, string> = {};\n const ctx = context.active();\n propagation.inject(ctx, headers);\n return headers;\n },\n\n recordStepProgress(stepName: string, stepIndex: number): void {\n baggageValues.stepName = stepName;\n baggageValues.stepIndex = stepIndex;\n WorkflowBaggage.set(baseCtx, baggageValues);\n\n emitCorrelatedEvent(baseCtx, 'workflow.step_progress', {\n 'workflow.step.name': stepName,\n 'workflow.step.index': stepIndex,\n });\n },\n };\n\n // Call onStart callback\n config.onStart?.(workflowCtx);\n\n // Add start event\n emitCorrelatedEvent(baseCtx, 'workflow.started', {\n 'workflow.id': workflowId,\n 'workflow.name': config.name,\n });\n\n try {\n const userFn = fnFactory(workflowCtx);\n const result = await userFn(...args);\n\n // Call onComplete callback\n config.onComplete?.(workflowCtx, result);\n\n // Add completion event\n emitCorrelatedEvent(baseCtx, 'workflow.completed', {\n 'workflow.id': workflowId,\n });\n\n return result;\n } catch (error) {\n // Call onError callback\n config.onError?.(workflowCtx, error as Error);\n\n // Add error event\n emitCorrelatedEvent(baseCtx, 'workflow.failed', {\n 'workflow.id': workflowId,\n 'workflow.error': (error as Error).message,\n });\n\n throw error;\n }\n };\n },\n );\n };\n}\n\n// ============================================================================\n// Distributed Step Tracer\n// ============================================================================\n\n/**\n * Create a traced distributed workflow step\n *\n * Use in downstream services to trace steps that are part of a distributed workflow.\n * Automatically extracts workflow baggage from the current context.\n *\n * @param config - Step configuration\n * @returns Factory function for the step handler\n *\n * @example Consumer in downstream service\n * ```typescript\n * export const processInventory = traceConsumer({\n * system: 'kafka',\n * destination: 'inventory-requests',\n * extractBaggage: true, // Extracts workflow.* from headers\n * })(ctx => {\n * // Wrap inner logic with traceDistributedStep\n * return traceDistributedStep({\n * name: 'ReserveInventory',\n * })(stepCtx => async (message) => {\n * console.log(`Processing workflow ${stepCtx.workflowId}`);\n * await reserveItems(message.items);\n * })(message);\n * });\n * ```\n *\n * @example Standalone step handler\n * ```typescript\n * export const reserveInventory = traceDistributedStep({\n * name: 'ReserveInventory',\n * idempotent: true,\n * })(ctx => async (request: InventoryRequest) => {\n * if (ctx.workflowId) {\n * console.log(`Part of workflow ${ctx.workflowId}, step ${ctx.stepIndex}`);\n * }\n * return await inventoryService.reserve(request.items);\n * });\n * ```\n */\nexport function traceDistributedStep<TArgs extends unknown[], TReturn>(\n config: DistributedStepConfig,\n) {\n const spanName = `workflow.step.${config.name}`;\n\n return (\n fnFactory: (\n ctx: DistributedStepContext,\n ) => (...args: TArgs) => Promise<TReturn>,\n ): ((...args: TArgs) => Promise<TReturn>) => {\n return trace<TArgs, TReturn>(\n { name: spanName, spanKind: SpanKind.INTERNAL },\n (baseCtx) => {\n return async (...args: TArgs) => {\n // Extract workflow baggage\n let baggageValues: WorkflowBaggageValues | null = null;\n\n const extractBaggage = config.extractBaggage ?? true;\n if (typeof extractBaggage === 'function') {\n baggageValues = extractBaggage(args);\n } else if (extractBaggage) {\n // Read from current context\n const extracted = WorkflowBaggage.get(baseCtx);\n if (extracted.workflowId && extracted.workflowName) {\n baggageValues = extracted as WorkflowBaggageValues;\n }\n }\n\n // Determine step index\n // If explicit stepIndex provided in config, use it\n // Otherwise, auto-increment from baggage if available\n let stepIndex: number | null;\n if (config.stepIndex !== undefined) {\n stepIndex = config.stepIndex;\n } else if (baggageValues?.stepIndex === undefined) {\n stepIndex = null;\n } else {\n // Auto-increment from previous step\n stepIndex = baggageValues.stepIndex + 1;\n }\n\n // Update baggage with current step\n if (baggageValues) {\n baggageValues.stepName = config.name;\n if (stepIndex !== null) {\n baggageValues.stepIndex = stepIndex;\n }\n WorkflowBaggage.set(baseCtx, baggageValues);\n }\n\n // Set span attributes\n baseCtx.setAttribute('workflow.step.name', config.name);\n if (stepIndex !== null) {\n baseCtx.setAttribute('workflow.step.index', stepIndex);\n }\n if (config.idempotent !== undefined) {\n baseCtx.setAttribute('workflow.step.idempotent', config.idempotent);\n }\n if (config.isCompensation) {\n baseCtx.setAttribute('workflow.step.is_compensation', true);\n }\n\n // Add workflow context attributes if available\n if (baggageValues) {\n baseCtx.setAttribute('workflow.id', baggageValues.workflowId);\n baseCtx.setAttribute('workflow.name', baggageValues.workflowName);\n if (baggageValues.workflowVersion) {\n baseCtx.setAttribute(\n 'workflow.version',\n baggageValues.workflowVersion,\n );\n }\n if (baggageValues.totalSteps) {\n baseCtx.setAttribute(\n 'workflow.total_steps',\n baggageValues.totalSteps,\n );\n }\n }\n\n // Apply custom attributes\n if (config.attributes) {\n for (const [key, value] of Object.entries(config.attributes)) {\n baseCtx.setAttribute(key, value);\n }\n }\n\n // Compensation data storage\n let compensationData: Record<string, unknown> | undefined;\n\n // Create extended context\n const stepCtx: DistributedStepContext = {\n ...baseCtx,\n workflowId: baggageValues?.workflowId ?? null,\n workflowName: baggageValues?.workflowName ?? null,\n stepName: config.name,\n stepIndex,\n isCompensation: config.isCompensation ?? false,\n\n getWorkflowBaggage(): WorkflowBaggageValues | null {\n return baggageValues ? { ...baggageValues } : null;\n },\n\n updateWorkflowBaggage(\n values: Partial<WorkflowBaggageValues>,\n ): void {\n if (baggageValues) {\n Object.assign(baggageValues, values);\n WorkflowBaggage.set(baseCtx, baggageValues);\n }\n },\n\n getWorkflowHeaders(): Record<string, string> {\n const headers: Record<string, string> = {};\n const ctx = context.active();\n propagation.inject(ctx, headers);\n return headers;\n },\n\n requiresCompensation(data?: Record<string, unknown>): void {\n compensationData = data;\n baseCtx.setAttribute('workflow.step.requires_compensation', true);\n emitCorrelatedEvent(\n baseCtx,\n 'workflow.step.compensation_registered',\n {\n 'workflow.step.name': config.name,\n ...(data && {\n 'workflow.step.compensation_data': JSON.stringify(data),\n }),\n },\n );\n },\n };\n\n // Call onStart callback\n config.onStart?.(stepCtx);\n\n // Add start event\n emitCorrelatedEvent(baseCtx, 'workflow.step.started', {\n 'workflow.step.name': config.name,\n ...(baggageValues && { 'workflow.id': baggageValues.workflowId }),\n });\n\n try {\n const userFn = fnFactory(stepCtx);\n const result = await userFn(...args);\n\n // Call onComplete callback\n config.onComplete?.(stepCtx, result);\n\n // Add completion event\n emitCorrelatedEvent(baseCtx, 'workflow.step.completed', {\n 'workflow.step.name': config.name,\n });\n\n return result;\n } catch (error) {\n // Call onError callback\n config.onError?.(stepCtx, error as Error);\n\n // Add error event with compensation info if registered\n emitCorrelatedEvent(baseCtx, 'workflow.step.failed', {\n 'workflow.step.name': config.name,\n 'workflow.step.error': (error as Error).message,\n ...(compensationData && {\n 'workflow.step.requires_compensation': true,\n }),\n });\n\n throw error;\n }\n };\n },\n );\n };\n}\n\n// ============================================================================\n// Utility Functions\n// ============================================================================\n\n/**\n * Generate a unique workflow ID\n *\n * @param prefix - Optional prefix for the ID\n * @returns A unique workflow ID\n *\n * @example\n * ```typescript\n * const workflowId = generateWorkflowId('order'); // \"order-abc123def456\"\n * ```\n */\nexport function generateWorkflowId(prefix?: string): string {\n const random = Math.random().toString(36).slice(2, 15);\n const timestamp = Date.now().toString(36);\n const id = `${timestamp}-${random}`;\n return prefix ? `${prefix}-${id}` : id;\n}\n\n/**\n * Check if the current context is part of a distributed workflow\n *\n * @param ctx - The trace context\n * @returns True if workflow baggage is present\n */\nexport function isInDistributedWorkflow(ctx: TraceContext): boolean {\n const baggage = WorkflowBaggage.get(ctx);\n return !!(baggage.workflowId && baggage.workflowName);\n}\n\n/**\n * Get workflow progress information\n *\n * @param ctx - The trace context\n * @returns Progress info or null if not in a workflow\n */\nexport function getWorkflowProgress(ctx: TraceContext): {\n workflowId: string;\n workflowName: string;\n currentStep: string | null;\n currentStepIndex: number | null;\n totalSteps: number | null;\n percentComplete: number | null;\n} | null {\n const baggage = WorkflowBaggage.get(ctx);\n if (!baggage.workflowId || !baggage.workflowName) {\n return null;\n }\n\n const percentComplete =\n baggage.totalSteps && baggage.stepIndex !== undefined\n ? Math.round(((baggage.stepIndex + 1) / baggage.totalSteps) * 100)\n : null;\n\n return {\n workflowId: baggage.workflowId,\n workflowName: baggage.workflowName,\n currentStep: baggage.stepName ?? null,\n currentStepIndex: baggage.stepIndex ?? null,\n totalSteps: baggage.totalSteps ?? null,\n percentComplete,\n };\n}\n\n/**\n * Create workflow correlation headers for manual propagation\n *\n * Use when you need to manually add workflow context to outgoing requests.\n *\n * @param values - Workflow baggage values\n * @returns Headers object with workflow baggage\n *\n * @example\n * ```typescript\n * const headers = createWorkflowHeaders({\n * workflowId: 'order-123',\n * workflowName: 'OrderFulfillment',\n * stepIndex: 2,\n * });\n *\n * await fetch('/api/inventory', { headers });\n * ```\n */\nexport function createWorkflowHeaders(\n values: Partial<WorkflowBaggageValues>,\n): Record<string, string> {\n const headers: Record<string, string> = {};\n\n // Build baggage string\n const baggageEntries: string[] = [];\n\n if (values.workflowId) {\n baggageEntries.push(\n `workflow.workflowId=${encodeURIComponent(values.workflowId)}`,\n );\n }\n if (values.workflowName) {\n baggageEntries.push(\n `workflow.workflowName=${encodeURIComponent(values.workflowName)}`,\n );\n }\n if (values.workflowVersion) {\n baggageEntries.push(\n `workflow.workflowVersion=${encodeURIComponent(values.workflowVersion)}`,\n );\n }\n if (values.stepName) {\n baggageEntries.push(\n `workflow.stepName=${encodeURIComponent(values.stepName)}`,\n );\n }\n if (values.stepIndex !== undefined) {\n baggageEntries.push(`workflow.stepIndex=${values.stepIndex}`);\n }\n if (values.totalSteps !== undefined) {\n baggageEntries.push(`workflow.totalSteps=${values.totalSteps}`);\n }\n if (values.priority) {\n baggageEntries.push(`workflow.priority=${values.priority}`);\n }\n if (values.correlationId) {\n baggageEntries.push(\n `workflow.correlationId=${encodeURIComponent(values.correlationId)}`,\n );\n }\n if (values.parentWorkflowId) {\n baggageEntries.push(\n `workflow.parentWorkflowId=${encodeURIComponent(values.parentWorkflowId)}`,\n );\n }\n if (values.initiatedBy) {\n baggageEntries.push(\n `workflow.initiatedBy=${encodeURIComponent(values.initiatedBy)}`,\n );\n }\n if (values.startedAt) {\n baggageEntries.push(\n `workflow.startedAt=${encodeURIComponent(values.startedAt)}`,\n );\n }\n\n if (baggageEntries.length > 0) {\n headers['baggage'] = baggageEntries.join(',');\n }\n\n return headers;\n}\n\n/**\n * Parse workflow context from baggage header\n *\n * @param baggageHeader - The baggage header value\n * @returns Parsed workflow values or null\n */\nexport function parseWorkflowFromBaggage(\n baggageHeader: string,\n): Partial<WorkflowBaggageValues> | null {\n if (!baggageHeader) {\n return null;\n }\n\n const values: Partial<WorkflowBaggageValues> = {};\n const entries = baggageHeader.split(',');\n\n for (const entry of entries) {\n const [key, value] = entry.trim().split('=');\n if (!key || !value) continue;\n\n const decodedValue = decodeURIComponent(value);\n\n switch (key) {\n case 'workflow.workflowId': {\n values.workflowId = decodedValue;\n break;\n }\n case 'workflow.workflowName': {\n values.workflowName = decodedValue;\n break;\n }\n case 'workflow.workflowVersion': {\n values.workflowVersion = decodedValue;\n break;\n }\n case 'workflow.stepName': {\n values.stepName = decodedValue;\n break;\n }\n case 'workflow.stepIndex': {\n values.stepIndex = Number.parseInt(decodedValue, 10);\n break;\n }\n case 'workflow.totalSteps': {\n values.totalSteps = Number.parseInt(decodedValue, 10);\n break;\n }\n case 'workflow.priority': {\n values.priority = decodedValue as WorkflowBaggageValues['priority'];\n break;\n }\n case 'workflow.correlationId': {\n values.correlationId = decodedValue;\n break;\n }\n case 'workflow.parentWorkflowId': {\n values.parentWorkflowId = decodedValue;\n break;\n }\n case 'workflow.initiatedBy': {\n values.initiatedBy = decodedValue;\n break;\n }\n case 'workflow.startedAt': {\n values.startedAt = decodedValue;\n break;\n }\n }\n }\n\n return Object.keys(values).length > 0 ? values : null;\n}\n"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
- import { SafeBaggageSchema } from './business-baggage.cjs';
2
- import { T as TraceContext } from './trace-context-DbGKd1Rn.cjs';
3
- import '@opentelemetry/api';
1
+ import { n as TraceContext } from "./trace-context-Cijqoi6e.cjs";
2
+ import { SafeBaggageSchema } from "./business-baggage.cjs";
4
3
 
4
+ //#region src/workflow-distributed.d.ts
5
5
  /**
6
6
  * Pre-built baggage schema for distributed workflows
7
7
  *
@@ -24,193 +24,182 @@ import '@opentelemetry/api';
24
24
  * ```
25
25
  */
26
26
  declare const WorkflowBaggage: SafeBaggageSchema<{
27
- /** Unique identifier for the workflow instance */
28
- readonly workflowId: {
29
- readonly type: "string";
30
- readonly maxLength: 128;
31
- readonly required: true;
32
- };
33
- /** Name/type of the workflow (e.g., "OrderFulfillment") */
34
- readonly workflowName: {
35
- readonly type: "string";
36
- readonly maxLength: 64;
37
- readonly required: true;
38
- };
39
- /** Version of the workflow definition */
40
- readonly workflowVersion: {
41
- readonly type: "string";
42
- readonly maxLength: 32;
43
- };
44
- /** Current step name */
45
- readonly stepName: {
46
- readonly type: "string";
47
- readonly maxLength: 64;
48
- };
49
- /** Current step index (0-based) */
50
- readonly stepIndex: {
51
- readonly type: "number";
52
- };
53
- /** Total number of steps (if known) */
54
- readonly totalSteps: {
55
- readonly type: "number";
56
- };
57
- /** Parent workflow ID (for sub-workflows) */
58
- readonly parentWorkflowId: {
59
- readonly type: "string";
60
- readonly maxLength: 128;
61
- };
62
- /** Correlation ID for external systems */
63
- readonly correlationId: {
64
- readonly type: "string";
65
- readonly maxLength: 128;
66
- };
67
- /** Workflow priority */
68
- readonly priority: {
69
- readonly type: "enum";
70
- readonly values: readonly ["low", "normal", "high", "critical"];
71
- };
72
- /** Initiating user/system */
73
- readonly initiatedBy: {
74
- readonly type: "string";
75
- readonly maxLength: 64;
76
- };
77
- /** Workflow start timestamp (ISO) */
78
- readonly startedAt: {
79
- readonly type: "string";
80
- readonly maxLength: 30;
81
- };
27
+ /** Unique identifier for the workflow instance */readonly workflowId: {
28
+ readonly type: "string";
29
+ readonly maxLength: 128;
30
+ readonly required: true;
31
+ }; /** Name/type of the workflow (e.g., "OrderFulfillment") */
32
+ readonly workflowName: {
33
+ readonly type: "string";
34
+ readonly maxLength: 64;
35
+ readonly required: true;
36
+ }; /** Version of the workflow definition */
37
+ readonly workflowVersion: {
38
+ readonly type: "string";
39
+ readonly maxLength: 32;
40
+ }; /** Current step name */
41
+ readonly stepName: {
42
+ readonly type: "string";
43
+ readonly maxLength: 64;
44
+ }; /** Current step index (0-based) */
45
+ readonly stepIndex: {
46
+ readonly type: "number";
47
+ }; /** Total number of steps (if known) */
48
+ readonly totalSteps: {
49
+ readonly type: "number";
50
+ }; /** Parent workflow ID (for sub-workflows) */
51
+ readonly parentWorkflowId: {
52
+ readonly type: "string";
53
+ readonly maxLength: 128;
54
+ }; /** Correlation ID for external systems */
55
+ readonly correlationId: {
56
+ readonly type: "string";
57
+ readonly maxLength: 128;
58
+ }; /** Workflow priority */
59
+ readonly priority: {
60
+ readonly type: "enum";
61
+ readonly values: readonly ["low", "normal", "high", "critical"];
62
+ }; /** Initiating user/system */
63
+ readonly initiatedBy: {
64
+ readonly type: "string";
65
+ readonly maxLength: 64;
66
+ }; /** Workflow start timestamp (ISO) */
67
+ readonly startedAt: {
68
+ readonly type: "string";
69
+ readonly maxLength: 30;
70
+ };
82
71
  }>;
83
72
  /**
84
73
  * Type for workflow baggage values
85
74
  */
86
75
  type WorkflowBaggageValues = {
87
- workflowId: string;
88
- workflowName: string;
89
- workflowVersion?: string;
90
- stepName?: string;
91
- stepIndex?: number;
92
- totalSteps?: number;
93
- parentWorkflowId?: string;
94
- correlationId?: string;
95
- priority?: 'low' | 'normal' | 'high' | 'critical';
96
- initiatedBy?: string;
97
- startedAt?: string;
76
+ workflowId: string;
77
+ workflowName: string;
78
+ workflowVersion?: string;
79
+ stepName?: string;
80
+ stepIndex?: number;
81
+ totalSteps?: number;
82
+ parentWorkflowId?: string;
83
+ correlationId?: string;
84
+ priority?: 'low' | 'normal' | 'high' | 'critical';
85
+ initiatedBy?: string;
86
+ startedAt?: string;
98
87
  };
99
88
  /**
100
89
  * Configuration for distributed workflow tracing
101
90
  */
102
91
  interface DistributedWorkflowConfig {
103
- /** Workflow name/type (e.g., "OrderFulfillment", "UserOnboarding") */
104
- name: string;
105
- /**
106
- * Extract workflow ID from function arguments
107
- *
108
- * Receives all arguments passed to the workflow function, allowing
109
- * multi-parameter handlers to derive workflow IDs from any argument.
110
- *
111
- * @example Single argument
112
- * ```typescript
113
- * workflowIdFrom: (order) => order.id
114
- * ```
115
- *
116
- * @example Multiple arguments (payload + metadata)
117
- * ```typescript
118
- * workflowIdFrom: (payload, metadata) => metadata.correlationId ?? payload.id
119
- * ```
120
- */
121
- workflowIdFrom: (...args: unknown[]) => string;
122
- /** Workflow version (e.g., "1.0.0", "2023-01-15") */
123
- version?: string;
124
- /** Total number of steps if known */
125
- totalSteps?: number;
126
- /** Parent workflow ID (for sub-workflows) */
127
- parentWorkflowId?: string;
128
- /** Correlation ID for external systems */
129
- correlationId?: string;
130
- /** Workflow priority */
131
- priority?: 'low' | 'normal' | 'high' | 'critical';
132
- /** User/system that initiated the workflow */
133
- initiatedBy?: string;
134
- /** Additional span attributes */
135
- attributes?: Record<string, string | number | boolean>;
136
- /** Callback on workflow start */
137
- onStart?: (ctx: DistributedWorkflowContext) => void;
138
- /** Callback on workflow completion */
139
- onComplete?: (ctx: DistributedWorkflowContext, result: unknown) => void;
140
- /** Callback on workflow error */
141
- onError?: (ctx: DistributedWorkflowContext, error: Error) => void;
92
+ /** Workflow name/type (e.g., "OrderFulfillment", "UserOnboarding") */
93
+ name: string;
94
+ /**
95
+ * Extract workflow ID from function arguments
96
+ *
97
+ * Receives all arguments passed to the workflow function, allowing
98
+ * multi-parameter handlers to derive workflow IDs from any argument.
99
+ *
100
+ * @example Single argument
101
+ * ```typescript
102
+ * workflowIdFrom: (order) => order.id
103
+ * ```
104
+ *
105
+ * @example Multiple arguments (payload + metadata)
106
+ * ```typescript
107
+ * workflowIdFrom: (payload, metadata) => metadata.correlationId ?? payload.id
108
+ * ```
109
+ */
110
+ workflowIdFrom: (...args: unknown[]) => string;
111
+ /** Workflow version (e.g., "1.0.0", "2023-01-15") */
112
+ version?: string;
113
+ /** Total number of steps if known */
114
+ totalSteps?: number;
115
+ /** Parent workflow ID (for sub-workflows) */
116
+ parentWorkflowId?: string;
117
+ /** Correlation ID for external systems */
118
+ correlationId?: string;
119
+ /** Workflow priority */
120
+ priority?: 'low' | 'normal' | 'high' | 'critical';
121
+ /** User/system that initiated the workflow */
122
+ initiatedBy?: string;
123
+ /** Additional span attributes */
124
+ attributes?: Record<string, string | number | boolean>;
125
+ /** Callback on workflow start */
126
+ onStart?: (ctx: DistributedWorkflowContext) => void;
127
+ /** Callback on workflow completion */
128
+ onComplete?: (ctx: DistributedWorkflowContext, result: unknown) => void;
129
+ /** Callback on workflow error */
130
+ onError?: (ctx: DistributedWorkflowContext, error: Error) => void;
142
131
  }
143
132
  /**
144
133
  * Configuration for distributed workflow step
145
134
  */
146
135
  interface DistributedStepConfig {
147
- /** Step name (e.g., "ReserveInventory", "ChargePayment") */
148
- name: string;
149
- /**
150
- * Extract baggage from incoming message/request
151
- *
152
- * If true, reads workflow baggage from current context (assumes already extracted).
153
- * If function, extracts from arguments.
154
- *
155
- * @default true
156
- */
157
- extractBaggage?: boolean | ((args: unknown[]) => WorkflowBaggageValues | null);
158
- /** Override step index (otherwise uses baggage or auto-increments) */
159
- stepIndex?: number;
160
- /** Additional span attributes */
161
- attributes?: Record<string, string | number | boolean>;
162
- /** Whether this step is idempotent (safe to retry) */
163
- idempotent?: boolean;
164
- /** Whether this step is a compensation/rollback step */
165
- isCompensation?: boolean;
166
- /** Callback on step start */
167
- onStart?: (ctx: DistributedStepContext) => void;
168
- /** Callback on step completion */
169
- onComplete?: (ctx: DistributedStepContext, result: unknown) => void;
170
- /** Callback on step error */
171
- onError?: (ctx: DistributedStepContext, error: Error) => void;
136
+ /** Step name (e.g., "ReserveInventory", "ChargePayment") */
137
+ name: string;
138
+ /**
139
+ * Extract baggage from incoming message/request
140
+ *
141
+ * If true, reads workflow baggage from current context (assumes already extracted).
142
+ * If function, extracts from arguments.
143
+ *
144
+ * @default true
145
+ */
146
+ extractBaggage?: boolean | ((args: unknown[]) => WorkflowBaggageValues | null);
147
+ /** Override step index (otherwise uses baggage or auto-increments) */
148
+ stepIndex?: number;
149
+ /** Additional span attributes */
150
+ attributes?: Record<string, string | number | boolean>;
151
+ /** Whether this step is idempotent (safe to retry) */
152
+ idempotent?: boolean;
153
+ /** Whether this step is a compensation/rollback step */
154
+ isCompensation?: boolean;
155
+ /** Callback on step start */
156
+ onStart?: (ctx: DistributedStepContext) => void;
157
+ /** Callback on step completion */
158
+ onComplete?: (ctx: DistributedStepContext, result: unknown) => void;
159
+ /** Callback on step error */
160
+ onError?: (ctx: DistributedStepContext, error: Error) => void;
172
161
  }
173
162
  /**
174
163
  * Extended context for distributed workflow root
175
164
  */
176
165
  interface DistributedWorkflowContext extends TraceContext {
177
- /** The workflow ID */
178
- workflowId: string;
179
- /** The workflow name */
180
- workflowName: string;
181
- /** The workflow version */
182
- workflowVersion?: string;
183
- /** Get workflow baggage for propagation to other services */
184
- getWorkflowBaggage(): WorkflowBaggageValues;
185
- /** Set additional workflow baggage fields */
186
- setWorkflowBaggage(values: Partial<WorkflowBaggageValues>): void;
187
- /** Get headers with workflow baggage for outgoing requests */
188
- getWorkflowHeaders(): Record<string, string>;
189
- /** Record workflow step completion (for progress tracking) */
190
- recordStepProgress(stepName: string, stepIndex: number): void;
166
+ /** The workflow ID */
167
+ workflowId: string;
168
+ /** The workflow name */
169
+ workflowName: string;
170
+ /** The workflow version */
171
+ workflowVersion?: string;
172
+ /** Get workflow baggage for propagation to other services */
173
+ getWorkflowBaggage(): WorkflowBaggageValues;
174
+ /** Set additional workflow baggage fields */
175
+ setWorkflowBaggage(values: Partial<WorkflowBaggageValues>): void;
176
+ /** Get headers with workflow baggage for outgoing requests */
177
+ getWorkflowHeaders(): Record<string, string>;
178
+ /** Record workflow step completion (for progress tracking) */
179
+ recordStepProgress(stepName: string, stepIndex: number): void;
191
180
  }
192
181
  /**
193
182
  * Extended context for distributed workflow step
194
183
  */
195
184
  interface DistributedStepContext extends TraceContext {
196
- /** The workflow ID (from baggage) */
197
- workflowId: string | null;
198
- /** The workflow name (from baggage) */
199
- workflowName: string | null;
200
- /** The current step name */
201
- stepName: string;
202
- /** The current step index */
203
- stepIndex: number | null;
204
- /** Whether this step is a compensation */
205
- isCompensation: boolean;
206
- /** Get the full workflow baggage */
207
- getWorkflowBaggage(): WorkflowBaggageValues | null;
208
- /** Update workflow baggage (e.g., increment step index) */
209
- updateWorkflowBaggage(values: Partial<WorkflowBaggageValues>): void;
210
- /** Get headers with updated workflow baggage for downstream calls */
211
- getWorkflowHeaders(): Record<string, string>;
212
- /** Mark step as requiring compensation on failure */
213
- requiresCompensation(compensationData?: Record<string, unknown>): void;
185
+ /** The workflow ID (from baggage) */
186
+ workflowId: string | null;
187
+ /** The workflow name (from baggage) */
188
+ workflowName: string | null;
189
+ /** The current step name */
190
+ stepName: string;
191
+ /** The current step index */
192
+ stepIndex: number | null;
193
+ /** Whether this step is a compensation */
194
+ isCompensation: boolean;
195
+ /** Get the full workflow baggage */
196
+ getWorkflowBaggage(): WorkflowBaggageValues | null;
197
+ /** Update workflow baggage (e.g., increment step index) */
198
+ updateWorkflowBaggage(values: Partial<WorkflowBaggageValues>): void;
199
+ /** Get headers with updated workflow baggage for downstream calls */
200
+ getWorkflowHeaders(): Record<string, string>;
201
+ /** Mark step as requiring compensation on failure */
202
+ requiresCompensation(compensationData?: Record<string, unknown>): void;
214
203
  }
215
204
  /**
216
205
  * Create a traced distributed workflow function
@@ -307,12 +296,12 @@ declare function isInDistributedWorkflow(ctx: TraceContext): boolean;
307
296
  * @returns Progress info or null if not in a workflow
308
297
  */
309
298
  declare function getWorkflowProgress(ctx: TraceContext): {
310
- workflowId: string;
311
- workflowName: string;
312
- currentStep: string | null;
313
- currentStepIndex: number | null;
314
- totalSteps: number | null;
315
- percentComplete: number | null;
299
+ workflowId: string;
300
+ workflowName: string;
301
+ currentStep: string | null;
302
+ currentStepIndex: number | null;
303
+ totalSteps: number | null;
304
+ percentComplete: number | null;
316
305
  } | null;
317
306
  /**
318
307
  * Create workflow correlation headers for manual propagation
@@ -341,5 +330,6 @@ declare function createWorkflowHeaders(values: Partial<WorkflowBaggageValues>):
341
330
  * @returns Parsed workflow values or null
342
331
  */
343
332
  declare function parseWorkflowFromBaggage(baggageHeader: string): Partial<WorkflowBaggageValues> | null;
344
-
345
- export { type DistributedStepConfig, type DistributedStepContext, type DistributedWorkflowConfig, type DistributedWorkflowContext, WorkflowBaggage, type WorkflowBaggageValues, createWorkflowHeaders, generateWorkflowId, getWorkflowProgress, isInDistributedWorkflow, parseWorkflowFromBaggage, traceDistributedStep, traceDistributedWorkflow };
333
+ //#endregion
334
+ export { DistributedStepConfig, DistributedStepContext, DistributedWorkflowConfig, DistributedWorkflowContext, WorkflowBaggage, WorkflowBaggageValues, createWorkflowHeaders, generateWorkflowId, getWorkflowProgress, isInDistributedWorkflow, parseWorkflowFromBaggage, traceDistributedStep, traceDistributedWorkflow };
335
+ //# sourceMappingURL=workflow-distributed.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflow-distributed.d.cts","names":[],"sources":["../src/workflow-distributed.ts"],"mappings":";;;;;;;;;;;;;;;AA6IW;AAUX;;;;;;;;;cA9Ba,eAAA,EAIX,iBAJ0B;EAgC1B;;;;KA8BA;EAAA;;;;KAYgB;EAAA;;;KAG+B;EAAA;;;KAGH;EAAA;;KAMR;EAAA;;KA6BpB;EAAA;;;KAMoC;EAAA;;;KAlBpD;EAAA;;;KAYA;EAAA;;;KAGc;EAAA;;;;;;;AAGsC;KAhH1C,qBAAA;EACV,UAAA;EACA,YAAA;EACA,eAAA;EACA,QAAA;EACA,SAAA;EACA,UAAA;EACA,gBAAA;EACA,aAAA;EACA,QAAA;EACA,WAAA;EACA,SAAA;AAAA;;;;UAUe,yBAAA;EA+GY;EA7G3B,IAAA;EA6GmB;;;;;;;AAMmC;AAMxD;;;;;;;;EAvGE,cAAA,MAAoB,IAAA;EAuGsC;EApG1D,OAAA;EAoG8C;EAjG9C,UAAA;EAsGA;EAnGA,gBAAA;EAyGA;EAtGA,aAAA;EA4GA;EAzGA,QAAA;EA4GA;EAzGA,WAAA;EAyGsC;EAtGtC,UAAA,GAAa,MAAA;EAyGb;EAtGA,OAAA,IAAW,GAAA,EAAK,0BAAA;EAyGhB;EAtGA,UAAA,IAAc,GAAA,EAAK,0BAAA,EAA4B,MAAA;EAsG1B;EAnGrB,OAAA,IAAW,GAAA,EAAK,0BAAA,EAA4B,KAAA,EAAO,KAAA;AAAA;AAsIrD;;;AAAA,UAhIiB,qBAAA;EAuIN;EArIT,IAAA;EAsImC;;;;;;;;EA5HnC,cAAA,eAEM,IAAA,gBAAoB,qBAAA;EAmHlB;EAhHR,SAAA;EAsHS;EAnHT,UAAA,GAAa,MAAA;EAoHF;EAjHX,UAAA;EAiH2B;EA9G3B,cAAA;EA4GE;EAzGF,OAAA,IAAW,GAAA,EAAK,sBAAA;EA4GF;EAzGd,UAAA,IAAc,GAAA,EAAK,sBAAA,EAAwB,MAAA;EAyGX;EAtGhC,OAAA,IAAW,GAAA,EAAK,sBAAA,EAAwB,KAAA,EAAO,KAAA;AAAA;AAiRjD;;;AAAA,UA3QiB,0BAAA,SAAmC,YAAA;EAkRzC;EAhRT,UAAA;EAiRmC;EA9QnC,YAAA;EA+Qc;EA5Qd,eAAA;EA4QwB;EAzQxB,kBAAA,IAAsB,qBAAA;EAyQS;EAtQ/B,kBAAA,CAAmB,MAAA,EAAQ,OAAA,CAAQ,qBAAA;EA6PyB;EA1P5D,kBAAA,IAAsB,MAAA;EA2PtB;EAxPA,kBAAA,CAAmB,QAAA,UAAkB,SAAA;AAAA;;;;UAMtB,sBAAA,SAA+B,YAAA;EAuP5C;EArPF,UAAA;EAwPc;EArPd,YAAA;EAqPgC;EAlPhC,QAAA;EAkPuC;EA/OvC,SAAA;EAuagC;EApahC,cAAA;EAoagD;EAjahD,kBAAA,IAAsB,qBAAA;EA8aR;EA3ad,qBAAA,CAAsB,MAAA,EAAQ,OAAA,CAAQ,qBAAA;;EAGtC,kBAAA,IAAsB,MAAA;EAwaiC;EAravD,oBAAA,CAAqB,gBAAA,GAAmB,MAAA;AAAA;;;;;;;;;;;;AAsbzB;AAyCjB;;;;;;;;;;;;;AAES;AAqET;;iBAngBgB,wBAAA,mCACd,MAAA,EAAQ,yBAAA,IAKN,SAAA,GACE,GAAA,EAAK,0BAAA,SACE,IAAA,EAAM,KAAA,KAAU,OAAA,CAAQ,OAAA,WAC3B,IAAA,EAAM,KAAA,KAAU,OAAA,CAAQ,OAAA;;;;;;AA4fF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAjVhB,oBAAA,mCACd,MAAA,EAAQ,qBAAA,IAKN,SAAA,GACE,GAAA,EAAK,sBAAA,SACE,IAAA,EAAM,KAAA,KAAU,OAAA,CAAQ,OAAA,WAC3B,IAAA,EAAM,KAAA,KAAU,OAAA,CAAQ,OAAA;;;;;;;;;;;;iBAwLlB,kBAAA,CAAmB,MAAe;;;;;;;iBAalC,uBAAA,CAAwB,GAAiB,EAAZ,YAAY;;;;;;;iBAWzC,mBAAA,CAAoB,GAAA,EAAK,YAAY;EACnD,UAAA;EACA,YAAA;EACA,WAAA;EACA,gBAAA;EACA,UAAA;EACA,eAAA;AAAA;;;;;;;;;;;;;;;;;;;;iBAyCc,qBAAA,CACd,MAAA,EAAQ,OAAA,CAAQ,qBAAA,IACf,MAAA;;;;;;;iBAqEa,wBAAA,CACd,aAAA,WACC,OAAO,CAAC,qBAAA"}