autotel 3.6.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 (602) 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 -54
  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 -17
  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 -66
  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 -64
  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 -37
  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 -21
  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 -57
  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 -20
  149. package/dist/http.cjs +276 -176
  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 -174
  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 +1049 -1172
  162. package/dist/index.cjs.map +1 -1
  163. package/dist/index.d.cts +401 -551
  164. package/dist/index.d.cts.map +1 -0
  165. package/dist/index.d.ts +401 -551
  166. package/dist/index.d.ts.map +1 -0
  167. package/dist/index.js +912 -714
  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 -36
  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 -21
  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 -39
  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 -20
  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 +178 -115
  382. package/dist/validate.cjs.map +1 -1
  383. package/dist/validate.d.cts +40 -64
  384. package/dist/validate.d.cts.map +1 -0
  385. package/dist/validate.d.ts +40 -64
  386. package/dist/validate.d.ts.map +1 -0
  387. package/dist/validate.js +177 -113
  388. package/dist/validate.js.map +1 -1
  389. package/dist/validation-attributes.cjs +42 -17
  390. package/dist/validation-attributes.cjs.map +1 -1
  391. package/dist/validation-attributes.d.cts +13 -20
  392. package/dist/validation-attributes.d.cts.map +1 -0
  393. package/dist/validation-attributes.d.ts +13 -20
  394. package/dist/validation-attributes.d.ts.map +1 -0
  395. package/dist/validation-attributes.js +40 -2
  396. package/dist/validation-attributes.js.map +1 -1
  397. package/dist/webhook.cjs +286 -256
  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 -254
  404. package/dist/webhook.js.map +1 -1
  405. package/dist/workflow-distributed.cjs +498 -412
  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 -410
  412. package/dist/workflow-distributed.js.map +1 -1
  413. package/dist/workflow.cjs +405 -40
  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 -21
  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 +4 -4
  431. package/src/index.ts +3 -0
  432. package/src/request-logger.test.ts +53 -1
  433. package/src/request-logger.ts +58 -0
  434. package/src/validate.test.ts +3 -1
  435. package/src/validate.ts +9 -3
  436. package/dist/attributes.cjs.map +0 -1
  437. package/dist/attributes.js.map +0 -1
  438. package/dist/chunk-2ZKEORFN.cjs +0 -14
  439. package/dist/chunk-2ZKEORFN.cjs.map +0 -1
  440. package/dist/chunk-3QXBFGKP.js +0 -344
  441. package/dist/chunk-3QXBFGKP.js.map +0 -1
  442. package/dist/chunk-454CH4OV.js +0 -744
  443. package/dist/chunk-454CH4OV.js.map +0 -1
  444. package/dist/chunk-4A53YIAX.js +0 -180
  445. package/dist/chunk-4A53YIAX.js.map +0 -1
  446. package/dist/chunk-4IFSYQVX.js +0 -337
  447. package/dist/chunk-4IFSYQVX.js.map +0 -1
  448. package/dist/chunk-4P6ZOARG.cjs +0 -33
  449. package/dist/chunk-4P6ZOARG.cjs.map +0 -1
  450. package/dist/chunk-55ER2KD5.js +0 -228
  451. package/dist/chunk-55ER2KD5.js.map +0 -1
  452. package/dist/chunk-5ZN622AO.js +0 -73
  453. package/dist/chunk-5ZN622AO.js.map +0 -1
  454. package/dist/chunk-66YJ66GG.js +0 -1021
  455. package/dist/chunk-66YJ66GG.js.map +0 -1
  456. package/dist/chunk-6S5RUKU3.cjs +0 -347
  457. package/dist/chunk-6S5RUKU3.cjs.map +0 -1
  458. package/dist/chunk-6UQRVUN3.js +0 -222
  459. package/dist/chunk-6UQRVUN3.js.map +0 -1
  460. package/dist/chunk-7552UTQW.js +0 -11
  461. package/dist/chunk-7552UTQW.js.map +0 -1
  462. package/dist/chunk-7EQ4G4SI.cjs +0 -146
  463. package/dist/chunk-7EQ4G4SI.cjs.map +0 -1
  464. package/dist/chunk-7SAWIN74.js +0 -285
  465. package/dist/chunk-7SAWIN74.js.map +0 -1
  466. package/dist/chunk-A4E5AQFK.js +0 -30
  467. package/dist/chunk-A4E5AQFK.js.map +0 -1
  468. package/dist/chunk-ALPYR2GC.js +0 -1061
  469. package/dist/chunk-ALPYR2GC.js.map +0 -1
  470. package/dist/chunk-B7SWBE4P.cjs +0 -799
  471. package/dist/chunk-B7SWBE4P.cjs.map +0 -1
  472. package/dist/chunk-BZHG5IZ4.js +0 -73
  473. package/dist/chunk-BZHG5IZ4.js.map +0 -1
  474. package/dist/chunk-CEAQK2QY.cjs +0 -32
  475. package/dist/chunk-CEAQK2QY.cjs.map +0 -1
  476. package/dist/chunk-CMHVQR6P.js +0 -170
  477. package/dist/chunk-CMHVQR6P.js.map +0 -1
  478. package/dist/chunk-CU6IDACR.cjs +0 -224
  479. package/dist/chunk-CU6IDACR.cjs.map +0 -1
  480. package/dist/chunk-D4TM63S3.js +0 -795
  481. package/dist/chunk-D4TM63S3.js.map +0 -1
  482. package/dist/chunk-DCEDJQGG.js +0 -28
  483. package/dist/chunk-DCEDJQGG.js.map +0 -1
  484. package/dist/chunk-DPSA4QLA.js +0 -344
  485. package/dist/chunk-DPSA4QLA.js.map +0 -1
  486. package/dist/chunk-E6TERL5O.cjs +0 -23
  487. package/dist/chunk-E6TERL5O.cjs.map +0 -1
  488. package/dist/chunk-EE6CPXKH.cjs +0 -164
  489. package/dist/chunk-EE6CPXKH.cjs.map +0 -1
  490. package/dist/chunk-EOFB7XCL.cjs +0 -837
  491. package/dist/chunk-EOFB7XCL.cjs.map +0 -1
  492. package/dist/chunk-ESLWRGAG.cjs +0 -92
  493. package/dist/chunk-ESLWRGAG.cjs.map +0 -1
  494. package/dist/chunk-ESMHTKLJ.cjs +0 -206
  495. package/dist/chunk-ESMHTKLJ.cjs.map +0 -1
  496. package/dist/chunk-FMTHVSYY.cjs +0 -1039
  497. package/dist/chunk-FMTHVSYY.cjs.map +0 -1
  498. package/dist/chunk-FU6R566Y.cjs +0 -236
  499. package/dist/chunk-FU6R566Y.cjs.map +0 -1
  500. package/dist/chunk-GYR5K654.js +0 -91
  501. package/dist/chunk-GYR5K654.js.map +0 -1
  502. package/dist/chunk-HA2WBOGQ.js +0 -57
  503. package/dist/chunk-HA2WBOGQ.js.map +0 -1
  504. package/dist/chunk-HT5JQKN2.js +0 -118
  505. package/dist/chunk-HT5JQKN2.js.map +0 -1
  506. package/dist/chunk-INJD3G4K.cjs +0 -340
  507. package/dist/chunk-INJD3G4K.cjs.map +0 -1
  508. package/dist/chunk-IOYFAFHJ.cjs +0 -95
  509. package/dist/chunk-IOYFAFHJ.cjs.map +0 -1
  510. package/dist/chunk-J5QENANM.js +0 -87
  511. package/dist/chunk-J5QENANM.js.map +0 -1
  512. package/dist/chunk-J7VGRIAJ.js +0 -64
  513. package/dist/chunk-J7VGRIAJ.js.map +0 -1
  514. package/dist/chunk-KFOHQK7X.js +0 -144
  515. package/dist/chunk-KFOHQK7X.js.map +0 -1
  516. package/dist/chunk-KIL5CUN6.js +0 -31
  517. package/dist/chunk-KIL5CUN6.js.map +0 -1
  518. package/dist/chunk-KYXZS3EA.cjs +0 -100
  519. package/dist/chunk-KYXZS3EA.cjs.map +0 -1
  520. package/dist/chunk-LITNXTTT.js +0 -3
  521. package/dist/chunk-LITNXTTT.js.map +0 -1
  522. package/dist/chunk-LVIPBYFE.js +0 -157
  523. package/dist/chunk-LVIPBYFE.js.map +0 -1
  524. package/dist/chunk-M3LFHHTN.cjs +0 -764
  525. package/dist/chunk-M3LFHHTN.cjs.map +0 -1
  526. package/dist/chunk-N25JDZSC.js +0 -95
  527. package/dist/chunk-N25JDZSC.js.map +0 -1
  528. package/dist/chunk-NEIB3TLD.cjs +0 -360
  529. package/dist/chunk-NEIB3TLD.cjs.map +0 -1
  530. package/dist/chunk-NENU7E6V.cjs +0 -344
  531. package/dist/chunk-NENU7E6V.cjs.map +0 -1
  532. package/dist/chunk-NVAI5CCN.cjs +0 -39
  533. package/dist/chunk-NVAI5CCN.cjs.map +0 -1
  534. package/dist/chunk-NZ72VDNY.cjs +0 -4
  535. package/dist/chunk-NZ72VDNY.cjs.map +0 -1
  536. package/dist/chunk-OPPXYVEZ.cjs +0 -131
  537. package/dist/chunk-OPPXYVEZ.cjs.map +0 -1
  538. package/dist/chunk-Q4EULJQY.js +0 -35
  539. package/dist/chunk-Q4EULJQY.js.map +0 -1
  540. package/dist/chunk-QF7ARNUM.js +0 -339
  541. package/dist/chunk-QF7ARNUM.js.map +0 -1
  542. package/dist/chunk-QWW3E3JM.cjs +0 -178
  543. package/dist/chunk-QWW3E3JM.cjs.map +0 -1
  544. package/dist/chunk-R7QYGZUP.cjs +0 -1075
  545. package/dist/chunk-R7QYGZUP.cjs.map +0 -1
  546. package/dist/chunk-RUPKBKUF.js +0 -352
  547. package/dist/chunk-RUPKBKUF.js.map +0 -1
  548. package/dist/chunk-SEO6NAQT.js +0 -14
  549. package/dist/chunk-SEO6NAQT.js.map +0 -1
  550. package/dist/chunk-T4B5LB6E.cjs +0 -66
  551. package/dist/chunk-T4B5LB6E.cjs.map +0 -1
  552. package/dist/chunk-T5WRA76K.cjs +0 -32
  553. package/dist/chunk-T5WRA76K.cjs.map +0 -1
  554. package/dist/chunk-T7JO2TCP.js +0 -1233
  555. package/dist/chunk-T7JO2TCP.js.map +0 -1
  556. package/dist/chunk-TC5ZPWM4.cjs +0 -289
  557. package/dist/chunk-TC5ZPWM4.cjs.map +0 -1
  558. package/dist/chunk-TQ5UWA7S.js +0 -26
  559. package/dist/chunk-TQ5UWA7S.js.map +0 -1
  560. package/dist/chunk-UIKYE2QZ.js +0 -833
  561. package/dist/chunk-UIKYE2QZ.js.map +0 -1
  562. package/dist/chunk-UNPLAVE7.js +0 -21
  563. package/dist/chunk-UNPLAVE7.js.map +0 -1
  564. package/dist/chunk-UY3UYPBZ.cjs +0 -77
  565. package/dist/chunk-UY3UYPBZ.cjs.map +0 -1
  566. package/dist/chunk-V7UBMJAB.cjs +0 -1242
  567. package/dist/chunk-V7UBMJAB.cjs.map +0 -1
  568. package/dist/chunk-VH77IPJN.cjs +0 -358
  569. package/dist/chunk-VH77IPJN.cjs.map +0 -1
  570. package/dist/chunk-VQTCQKHQ.cjs +0 -17
  571. package/dist/chunk-VQTCQKHQ.cjs.map +0 -1
  572. package/dist/chunk-WGWSHJ2N.js +0 -38
  573. package/dist/chunk-WGWSHJ2N.js.map +0 -1
  574. package/dist/chunk-WJH6IYU2.cjs +0 -32
  575. package/dist/chunk-WJH6IYU2.cjs.map +0 -1
  576. package/dist/chunk-YREV3LGG.cjs +0 -61
  577. package/dist/chunk-YREV3LGG.cjs.map +0 -1
  578. package/dist/chunk-YTXEZ4SD.cjs +0 -77
  579. package/dist/chunk-YTXEZ4SD.cjs.map +0 -1
  580. package/dist/chunk-ZNMBW67B.cjs +0 -40
  581. package/dist/chunk-ZNMBW67B.cjs.map +0 -1
  582. package/dist/correlation-id.cjs.map +0 -1
  583. package/dist/correlation-id.js.map +0 -1
  584. package/dist/define-event-BL6Li7CM.d.ts +0 -23
  585. package/dist/define-event-ClP3T1Jx.d.cts +0 -23
  586. package/dist/event-subscriber.cjs.map +0 -1
  587. package/dist/event-subscriber.js.map +0 -1
  588. package/dist/event.cjs.map +0 -1
  589. package/dist/event.js.map +0 -1
  590. package/dist/exporters.cjs.map +0 -1
  591. package/dist/exporters.js.map +0 -1
  592. package/dist/functional.cjs.map +0 -1
  593. package/dist/functional.js.map +0 -1
  594. package/dist/init-DIowiiCh.d.ts +0 -1167
  595. package/dist/init-j-A1zI16.d.cts +0 -1167
  596. package/dist/processors.cjs.map +0 -1
  597. package/dist/processors.js.map +0 -1
  598. package/dist/trace-context-DbGKd1Rn.d.cts +0 -213
  599. package/dist/trace-context-DbGKd1Rn.d.ts +0 -213
  600. package/dist/utils-BahBCFtJ.d.cts +0 -712
  601. package/dist/utils-CLKwaUlG.d.ts +0 -712
  602. package/dist/yaml-config.cjs.map +0 -1
@@ -0,0 +1,761 @@
1
+ import { i as getLogger, n as getConfig, o as getValidationConfig, r as getEventsConfig } from "./init-Ch6t7MNI.js";
2
+ import { i as validateEvent, l as getOrCreateCorrelationId } from "./track-nsKVy-pj.js";
3
+ import { t as getOperationContext } from "./operation-context-C-2hmmtP.js";
4
+ import { TraceFlags, context, propagation, trace } from "@opentelemetry/api";
5
+
6
+ //#region src/circuit-breaker.ts
7
+ const DEFAULT_CONFIG = {
8
+ failureThreshold: 5,
9
+ resetTimeout: 3e4,
10
+ windowSize: 6e4
11
+ };
12
+ const CircuitState = {
13
+ CLOSED: "CLOSED",
14
+ OPEN: "OPEN",
15
+ HALF_OPEN: "HALF_OPEN"
16
+ };
17
+ /**
18
+ * Circuit breaker implementation
19
+ *
20
+ * Tracks failures and automatically opens the circuit to prevent
21
+ * overwhelming failing subscribers.
22
+ */
23
+ var CircuitBreaker = class {
24
+ state = CircuitState.CLOSED;
25
+ failures = [];
26
+ lastFailureTime = 0;
27
+ config;
28
+ name;
29
+ constructor(name, config) {
30
+ this.name = name;
31
+ this.config = {
32
+ ...DEFAULT_CONFIG,
33
+ ...config
34
+ };
35
+ }
36
+ /**
37
+ * Execute a function with circuit breaker protection
38
+ * Throws CircuitOpenError if circuit is open
39
+ */
40
+ async execute(fn) {
41
+ if (this.state === CircuitState.OPEN) {
42
+ const now = Date.now();
43
+ if (now - this.lastFailureTime >= this.config.resetTimeout) this.state = CircuitState.HALF_OPEN;
44
+ else throw new CircuitOpenError(`Circuit breaker is OPEN for ${this.name}. Will retry in ${Math.ceil((this.config.resetTimeout - (now - this.lastFailureTime)) / 1e3)}s`);
45
+ }
46
+ try {
47
+ const result = await fn();
48
+ if (this.state === CircuitState.HALF_OPEN) this.reset();
49
+ return result;
50
+ } catch (error) {
51
+ this.recordFailure(error);
52
+ throw error;
53
+ }
54
+ }
55
+ /**
56
+ * Record a failure and potentially open the circuit
57
+ */
58
+ recordFailure(error) {
59
+ const now = Date.now();
60
+ this.failures = this.failures.filter((f) => now - f.timestamp < this.config.windowSize);
61
+ this.failures.push({
62
+ timestamp: now,
63
+ error: error instanceof Error ? error.message : String(error)
64
+ });
65
+ this.lastFailureTime = now;
66
+ if (this.failures.length >= this.config.failureThreshold) {
67
+ if (this.state === CircuitState.HALF_OPEN) this.state = CircuitState.OPEN;
68
+ else if (this.state === CircuitState.CLOSED) this.state = CircuitState.OPEN;
69
+ }
70
+ }
71
+ /**
72
+ * Reset the circuit breaker (on success)
73
+ */
74
+ reset() {
75
+ this.state = CircuitState.CLOSED;
76
+ this.failures = [];
77
+ this.lastFailureTime = 0;
78
+ }
79
+ /**
80
+ * Get current state (for monitoring)
81
+ */
82
+ getState() {
83
+ return this.state;
84
+ }
85
+ /**
86
+ * Get failure count in current window
87
+ */
88
+ getFailureCount() {
89
+ const now = Date.now();
90
+ this.failures = this.failures.filter((f) => now - f.timestamp < this.config.windowSize);
91
+ return this.failures.length;
92
+ }
93
+ /**
94
+ * Get recent failures (for debugging)
95
+ */
96
+ getRecentFailures() {
97
+ const now = Date.now();
98
+ return this.failures.filter((f) => now - f.timestamp < this.config.windowSize);
99
+ }
100
+ /**
101
+ * Manually reset the circuit breaker (for testing or manual intervention)
102
+ */
103
+ forceReset() {
104
+ this.reset();
105
+ }
106
+ /**
107
+ * Manually open the circuit (for testing or manual intervention)
108
+ */
109
+ forceOpen() {
110
+ this.state = CircuitState.OPEN;
111
+ this.lastFailureTime = Date.now();
112
+ }
113
+ };
114
+ /**
115
+ * Error thrown when circuit is open
116
+ */
117
+ var CircuitOpenError = class extends Error {
118
+ constructor(message) {
119
+ super(message);
120
+ this.name = "CircuitOpenError";
121
+ }
122
+ };
123
+
124
+ //#endregion
125
+ //#region src/events-config.ts
126
+ /**
127
+ * Hash a string value for PII protection
128
+ *
129
+ * Uses a simple, fast hash function suitable for correlation.
130
+ * NOT cryptographically secure - use for PII masking, not security.
131
+ */
132
+ function hashValue(value) {
133
+ let hash = 0;
134
+ for (let i = 0; i < value.length; i++) {
135
+ const char = value.charCodeAt(i);
136
+ hash = (hash << 5) - hash + char;
137
+ hash = hash & hash;
138
+ }
139
+ return (hash >>> 0).toString(16).padStart(8, "0");
140
+ }
141
+
142
+ //#endregion
143
+ //#region src/event.ts
144
+ /**
145
+ * Events API for product events platforms
146
+ *
147
+ * Track user behavior, business events, and critical actions.
148
+ * Sends to product events platforms (PostHog, Mixpanel, Amplitude) via subscribers.
149
+ * For business people who think in events/funnels.
150
+ *
151
+ * For OpenTelemetry metrics (Prometheus/Grafana), use the Metrics class instead.
152
+ *
153
+ * @example Recommended: Configure subscribers in init(), use track() function
154
+ * ```typescript
155
+ * import { init, track } from 'autotel';
156
+ * import { PostHogSubscriber } from 'autotel-subscribers/posthog';
157
+ *
158
+ * init({
159
+ * service: 'my-app',
160
+ * subscribers: [new PostHogSubscriber({ apiKey: 'phc_...' })]
161
+ * });
162
+ *
163
+ * // Track events - uses subscribers from init()
164
+ * track('application.submitted', { jobId: '123', userId: '456' });
165
+ * ```
166
+ *
167
+ * @example Create Event instance (inherits subscribers from init)
168
+ * ```typescript
169
+ * import { Event } from 'autotel/event';
170
+ *
171
+ * // Uses subscribers configured in init()
172
+ * const event = new Event('job-application');
173
+ * event.trackEvent('application.submitted', { jobId: '123' });
174
+ * ```
175
+ *
176
+ * @example Override subscribers for specific Event instance
177
+ * ```typescript
178
+ * import { Event } from 'autotel/event';
179
+ * import { PostHogSubscriber } from 'autotel-subscribers/posthog';
180
+ *
181
+ * // Override: use different subscribers for this instance
182
+ * const event = new Event('job-application', {
183
+ * subscribers: [new PostHogSubscriber({ apiKey: 'phc_different_project' })]
184
+ * });
185
+ *
186
+ * event.trackEvent('application.submitted', { jobId: '123' });
187
+ * ```
188
+ */
189
+ var Event = class {
190
+ serviceName;
191
+ logger;
192
+ collector;
193
+ subscribers;
194
+ hasSubscribers;
195
+ circuitBreakers;
196
+ /**
197
+ * Create a new Event instance
198
+ *
199
+ * **Note**: Most users should use `init()` + `track()` instead of creating Event instances directly.
200
+ *
201
+ * **Subscriber Resolution**:
202
+ * - If `subscribers` provided in options → uses those (instance override)
203
+ * - If `subscribers` not provided → falls back to subscribers from `init()` (global config)
204
+ * - If neither → no subscribers (events logged only)
205
+ *
206
+ * @param serviceName - Service name for identifying events
207
+ * @param options - Optional configuration (logger, collector, subscribers)
208
+ *
209
+ * @example Recommended: Use track() with init()
210
+ * ```typescript
211
+ * import { init, track } from 'autotel';
212
+ * import { PostHogSubscriber } from 'autotel-subscribers/posthog';
213
+ *
214
+ * init({
215
+ * service: 'checkout',
216
+ * subscribers: [new PostHogSubscriber({ apiKey: 'phc_...' })]
217
+ * });
218
+ *
219
+ * track('purchase.completed', { amount: 99.99 });
220
+ * ```
221
+ *
222
+ * @example Inherit subscribers from init()
223
+ * ```typescript
224
+ * // Uses subscribers configured in init()
225
+ * const event = new Event('checkout');
226
+ * event.trackEvent('purchase.completed', { amount: 99.99 });
227
+ * ```
228
+ *
229
+ * @example Override subscribers for this instance
230
+ * ```typescript
231
+ * import { Event } from 'autotel/event';
232
+ * import { PostHogSubscriber } from 'autotel-subscribers/posthog';
233
+ *
234
+ * // Override: use different subscribers for this instance only
235
+ * const event = new Event('checkout', {
236
+ * subscribers: [new PostHogSubscriber({ apiKey: 'phc_different_project' })]
237
+ * });
238
+ * ```
239
+ */
240
+ constructor(serviceName, options = {}) {
241
+ this.serviceName = serviceName;
242
+ this.logger = options.logger;
243
+ this.collector = options.collector;
244
+ this.subscribers = options.subscribers === void 0 ? getConfig()?.subscribers || [] : options.subscribers;
245
+ this.hasSubscribers = this.subscribers.length > 0;
246
+ this.circuitBreakers = /* @__PURE__ */ new Map();
247
+ for (const subscriber of this.subscribers) {
248
+ const subscriberName = subscriber.name || "Unknown";
249
+ this.circuitBreakers.set(subscriber, new CircuitBreaker(subscriberName, {
250
+ failureThreshold: 5,
251
+ resetTimeout: 3e4,
252
+ windowSize: 6e4
253
+ }));
254
+ }
255
+ }
256
+ /**
257
+ * Automatically enrich attributes with all available telemetry context
258
+ *
259
+ * Auto-captures:
260
+ * - Resource attributes: service.version, deployment.environment
261
+ * - Trace context: traceId, spanId, correlationId
262
+ * - Operation context: operation.name
263
+ */
264
+ enrichWithTelemetryContext(attributes = {}) {
265
+ const enriched = {
266
+ service: this.serviceName,
267
+ ...attributes
268
+ };
269
+ const config = getConfig();
270
+ if (config) {
271
+ if (config.version) enriched["service.version"] = config.version;
272
+ if (config.environment) enriched["deployment.environment"] = config.environment;
273
+ }
274
+ const spanContext = trace.getActiveSpan()?.spanContext();
275
+ if (spanContext) {
276
+ enriched.traceId = spanContext.traceId;
277
+ enriched.spanId = spanContext.spanId;
278
+ enriched.correlationId = spanContext.traceId.slice(0, 16);
279
+ }
280
+ const operationContext = getOperationContext();
281
+ if (operationContext) enriched["operation.name"] = operationContext.name;
282
+ return enriched;
283
+ }
284
+ /**
285
+ * Build autotel event context for trace correlation
286
+ *
287
+ * Works in 4 contexts:
288
+ * 1. Inside a span → use current span's trace_id + span_id
289
+ * 2. Outside span but in AsyncLocalStorage context → use trace_id + correlation_id
290
+ * 3. Totally standalone → use correlation_id + service/env/version
291
+ * 4. Batch/fan-in (multiple linked parents) → use count + hash or full array
292
+ *
293
+ * @returns AutotelEventContext or undefined if trace context is disabled
294
+ */
295
+ buildAutotelContext() {
296
+ const eventsConfig = getEventsConfig();
297
+ if (!eventsConfig?.includeTraceContext) return { correlation_id: getOrCreateCorrelationId() };
298
+ const config = getConfig();
299
+ const spanContext = trace.getActiveSpan()?.spanContext();
300
+ const correlationId = getOrCreateCorrelationId();
301
+ const autotelContext = { correlation_id: correlationId };
302
+ if (spanContext) {
303
+ autotelContext.trace_id = spanContext.traceId;
304
+ autotelContext.span_id = spanContext.spanId;
305
+ autotelContext.trace_flags = spanContext.traceFlags.toString(16).padStart(2, "0");
306
+ const traceState = spanContext.traceState;
307
+ if (traceState) {
308
+ let traceStateStr = "";
309
+ try {
310
+ if (typeof traceState.serialize === "function") traceStateStr = traceState.serialize();
311
+ } catch {}
312
+ if (traceStateStr) autotelContext.trace_state = traceStateStr;
313
+ }
314
+ if (eventsConfig.traceUrl) {
315
+ const traceUrl = eventsConfig.traceUrl({
316
+ traceId: spanContext.traceId,
317
+ spanId: spanContext.spanId,
318
+ correlationId,
319
+ serviceName: config?.service || this.serviceName,
320
+ environment: config?.environment
321
+ });
322
+ if (traceUrl) autotelContext.trace_url = traceUrl;
323
+ }
324
+ } else if (eventsConfig.traceUrl && config) {
325
+ const traceUrl = eventsConfig.traceUrl({
326
+ correlationId,
327
+ serviceName: config.service,
328
+ environment: config.environment
329
+ });
330
+ if (traceUrl) autotelContext.trace_url = traceUrl;
331
+ }
332
+ return autotelContext;
333
+ }
334
+ /**
335
+ * Enrich event attributes from baggage with guardrails
336
+ *
337
+ * @param attributes - Current event attributes
338
+ * @returns Enriched attributes with baggage values
339
+ */
340
+ enrichFromBaggage(attributes) {
341
+ const enrichConfig = getEventsConfig()?.enrichFromBaggage;
342
+ if (!enrichConfig) return attributes;
343
+ const enriched = { ...attributes };
344
+ const activeContext = context.active();
345
+ const baggage = propagation.getBaggage(activeContext);
346
+ if (!baggage) return enriched;
347
+ let keyCount = 0;
348
+ let byteCount = 0;
349
+ const maxKeys = enrichConfig.maxKeys ?? 10;
350
+ const maxBytes = enrichConfig.maxBytes ?? 1024;
351
+ const prefix = enrichConfig.prefix ?? "";
352
+ for (const [key, entry] of baggage.getAllEntries()) {
353
+ if (!this.isBaggageKeyAllowed(key, enrichConfig)) continue;
354
+ if (keyCount >= maxKeys) break;
355
+ const value = entry.value;
356
+ const transform = enrichConfig.transform?.[key];
357
+ let transformedValue;
358
+ if (transform === "hash") transformedValue = hashValue(value);
359
+ else if (transform === "plain" || !transform) transformedValue = value;
360
+ else if (typeof transform === "function") transformedValue = transform(value);
361
+ else transformedValue = value;
362
+ const valueBytes = new TextEncoder().encode(transformedValue).length;
363
+ if (byteCount + valueBytes > maxBytes) continue;
364
+ const enrichedKey = `${prefix}${key}`;
365
+ enriched[enrichedKey] = transformedValue;
366
+ keyCount++;
367
+ byteCount += valueBytes;
368
+ }
369
+ return enriched;
370
+ }
371
+ /**
372
+ * Check if a baggage key is allowed based on config
373
+ */
374
+ isBaggageKeyAllowed(key, config) {
375
+ if (config.deny) {
376
+ for (const pattern of config.deny) if (this.matchesBaggagePattern(key, pattern)) return false;
377
+ }
378
+ for (const pattern of config.allow) if (this.matchesBaggagePattern(key, pattern)) return true;
379
+ return false;
380
+ }
381
+ /**
382
+ * Check if a key matches a baggage pattern
383
+ * Supports exact matches and wildcard patterns (e.g., 'tenant.*')
384
+ */
385
+ matchesBaggagePattern(key, pattern) {
386
+ if (pattern.endsWith(".*")) {
387
+ const prefix = pattern.slice(0, -2);
388
+ return key.startsWith(prefix + ".");
389
+ }
390
+ return key === pattern;
391
+ }
392
+ /**
393
+ * Track a business event
394
+ *
395
+ * Use this for tracking user actions, business events, product usage:
396
+ * - "user.signup"
397
+ * - "order.completed"
398
+ * - "feature.used"
399
+ *
400
+ * Events are sent to configured subscribers (PostHog, Mixpanel, etc.).
401
+ *
402
+ * @example
403
+ * ```typescript
404
+ * // Track user signup
405
+ * events.trackEvent('user.signup', {
406
+ * userId: '123',
407
+ * plan: 'pro'
408
+ * })
409
+ *
410
+ * // Track order
411
+ * events.trackEvent('order.completed', {
412
+ * orderId: 'ord_123',
413
+ * amount: 99.99
414
+ * })
415
+ * ```
416
+ */
417
+ trackEvent(eventName, attributes) {
418
+ const validated = validateEvent(eventName, attributes, getValidationConfig() || void 0);
419
+ const enrichedAttributes = this.enrichWithTelemetryContext(validated.attributes);
420
+ this.logger?.info({
421
+ event: validated.eventName,
422
+ attributes: enrichedAttributes
423
+ }, "Event tracked");
424
+ this.collector?.recordEvent({
425
+ event: validated.eventName,
426
+ attributes: enrichedAttributes,
427
+ service: this.serviceName,
428
+ timestamp: Date.now()
429
+ });
430
+ if (this.hasSubscribers) {
431
+ const autotelContext = this.buildAutotelContext();
432
+ const finalAttributes = this.enrichFromBaggage(enrichedAttributes);
433
+ this.notifySubscribers((subscriber) => subscriber.trackEvent(validated.eventName, finalAttributes, { autotel: autotelContext }));
434
+ }
435
+ }
436
+ /**
437
+ * Notify all subscribers concurrently without blocking
438
+ * Uses circuit breakers to protect against failing subscribers
439
+ * Uses Promise.allSettled to prevent subscriber errors from affecting other subscribers
440
+ */
441
+ async notifySubscribers(fn) {
442
+ const promises = this.subscribers.map(async (subscriber) => {
443
+ const circuitBreaker = this.circuitBreakers.get(subscriber);
444
+ if (!circuitBreaker) return;
445
+ try {
446
+ await circuitBreaker.execute(() => fn(subscriber));
447
+ } catch (error) {
448
+ if (error instanceof CircuitOpenError) {
449
+ getLogger().warn({ subscriberName: subscriber.name || "Unknown" }, `[Events] ${error.message}`);
450
+ return;
451
+ }
452
+ getLogger().error({
453
+ err: error instanceof Error ? error : void 0,
454
+ subscriberName: subscriber.name || "Unknown"
455
+ }, `[Events] Subscriber ${subscriber.name || "Unknown"} failed`);
456
+ }
457
+ });
458
+ await Promise.allSettled(promises);
459
+ }
460
+ /**
461
+ * Track conversion funnel steps
462
+ *
463
+ * Monitor where users drop off in multi-step processes.
464
+ *
465
+ * @example
466
+ * ```typescript
467
+ * // Track signup funnel
468
+ * events.trackFunnelStep('signup', 'started', { userId: '123' })
469
+ * events.trackFunnelStep('signup', 'email_verified', { userId: '123' })
470
+ * events.trackFunnelStep('signup', 'completed', { userId: '123' })
471
+ *
472
+ * // Track checkout flow
473
+ * events.trackFunnelStep('checkout', 'started', { cartValue: 99.99 })
474
+ * events.trackFunnelStep('checkout', 'payment_info', { cartValue: 99.99 })
475
+ * events.trackFunnelStep('checkout', 'completed', { cartValue: 99.99 })
476
+ * ```
477
+ */
478
+ trackFunnelStep(funnelName, status, attributes) {
479
+ const enrichedAttributes = this.enrichWithTelemetryContext(attributes);
480
+ this.logger?.info({
481
+ funnel: funnelName,
482
+ status,
483
+ attributes: enrichedAttributes
484
+ }, "Funnel step tracked");
485
+ this.collector?.recordFunnelStep({
486
+ funnel: funnelName,
487
+ status,
488
+ attributes: enrichedAttributes,
489
+ service: this.serviceName,
490
+ timestamp: Date.now()
491
+ });
492
+ if (this.hasSubscribers) {
493
+ const autotelContext = this.buildAutotelContext();
494
+ const finalAttributes = this.enrichFromBaggage(enrichedAttributes);
495
+ this.notifySubscribers((subscriber) => subscriber.trackFunnelStep(funnelName, status, finalAttributes, { autotel: autotelContext }));
496
+ }
497
+ }
498
+ /**
499
+ * Track outcomes (success/failure/partial)
500
+ *
501
+ * Monitor success rates of critical operations.
502
+ *
503
+ * @example
504
+ * ```typescript
505
+ * // Track email delivery
506
+ * events.trackOutcome('email.delivery', 'success', {
507
+ * recipientType: 'user',
508
+ * emailType: 'welcome'
509
+ * })
510
+ *
511
+ * events.trackOutcome('email.delivery', 'failure', {
512
+ * recipientType: 'user',
513
+ * errorCode: 'invalid_email'
514
+ * })
515
+ *
516
+ * // Track payment processing
517
+ * events.trackOutcome('payment.process', 'success', { amount: 99.99 })
518
+ * events.trackOutcome('payment.process', 'failure', { error: 'insufficient_funds' })
519
+ * ```
520
+ */
521
+ trackOutcome(operationName, status, attributes) {
522
+ const enrichedAttributes = this.enrichWithTelemetryContext(attributes);
523
+ this.logger?.info({
524
+ operation: operationName,
525
+ status,
526
+ attributes: enrichedAttributes
527
+ }, "Outcome tracked");
528
+ this.collector?.recordOutcome({
529
+ operation: operationName,
530
+ status,
531
+ attributes: enrichedAttributes,
532
+ service: this.serviceName,
533
+ timestamp: Date.now()
534
+ });
535
+ if (this.hasSubscribers) {
536
+ const autotelContext = this.buildAutotelContext();
537
+ const finalAttributes = this.enrichFromBaggage(enrichedAttributes);
538
+ this.notifySubscribers((subscriber) => subscriber.trackOutcome(operationName, status, finalAttributes, { autotel: autotelContext }));
539
+ }
540
+ }
541
+ /**
542
+ * Track value metrics
543
+ *
544
+ * Record numerical values like revenue, transaction amounts,
545
+ * item counts, processing times, engagement scores, etc.
546
+ *
547
+ * @example
548
+ * ```typescript
549
+ * // Track revenue
550
+ * events.trackValue('order.revenue', 149.99, {
551
+ * currency: 'USD',
552
+ * productCategory: 'electronics'
553
+ * })
554
+ *
555
+ * // Track items per cart
556
+ * events.trackValue('cart.item_count', 5, {
557
+ * userId: '123'
558
+ * })
559
+ *
560
+ * // Track processing time
561
+ * events.trackValue('api.response_time', 250, {
562
+ * unit: 'ms',
563
+ * endpoint: '/api/checkout'
564
+ * })
565
+ * ```
566
+ */
567
+ trackValue(metricName, value, attributes) {
568
+ const enrichedAttributes = this.enrichWithTelemetryContext({
569
+ metric: metricName,
570
+ ...attributes
571
+ });
572
+ this.logger?.debug({
573
+ metric: metricName,
574
+ value,
575
+ attributes: enrichedAttributes
576
+ }, "Value tracked");
577
+ this.collector?.recordValue({
578
+ metric: metricName,
579
+ value,
580
+ attributes: enrichedAttributes,
581
+ service: this.serviceName,
582
+ timestamp: Date.now()
583
+ });
584
+ if (this.hasSubscribers) {
585
+ const autotelContext = this.buildAutotelContext();
586
+ const finalAttributes = this.enrichFromBaggage(enrichedAttributes);
587
+ this.notifySubscribers((subscriber) => subscriber.trackValue(metricName, value, finalAttributes, { autotel: autotelContext }));
588
+ }
589
+ }
590
+ /**
591
+ * Flush all subscribers and wait for pending events
592
+ *
593
+ * Call this before shutdown to ensure all events are delivered.
594
+ *
595
+ * @example
596
+ * ```typescript
597
+ * const event =new Event('app', { subscribers: [...] });
598
+ *
599
+ * // Before shutdown
600
+ * await events.flush();
601
+ * ```
602
+ */
603
+ async flush() {
604
+ if (!this.hasSubscribers) return;
605
+ const shutdownPromises = this.subscribers.map(async (subscriber) => {
606
+ if (subscriber.shutdown) try {
607
+ await subscriber.shutdown();
608
+ } catch (error) {
609
+ getLogger().error({
610
+ err: error instanceof Error ? error : void 0,
611
+ subscriberName: subscriber.name || "Unknown"
612
+ }, `[Events] Failed to shutdown subscriber ${subscriber.name || "Unknown"}`);
613
+ }
614
+ });
615
+ await Promise.allSettled(shutdownPromises);
616
+ }
617
+ /**
618
+ * Shutdown the Event instance and all subscribers
619
+ *
620
+ * Unlike `flush()`, this method:
621
+ * - Shuts down all subscribers
622
+ * - Prevents further event tracking (hasSubscribers becomes false)
623
+ * - Should only be called once at application shutdown
624
+ *
625
+ * @example
626
+ * ```typescript
627
+ * // In Next.js API route with after()
628
+ * import { after } from 'next/server';
629
+ *
630
+ * export async function POST(req: Request) {
631
+ * const event = new Event('checkout', { subscribers: [...] });
632
+ * event.trackEvent('order.completed', { orderId: '123' });
633
+ *
634
+ * after(async () => {
635
+ * await event.shutdown();
636
+ * });
637
+ *
638
+ * return Response.json({ success: true });
639
+ * }
640
+ * ```
641
+ */
642
+ async shutdown() {
643
+ if (!this.hasSubscribers) return;
644
+ await Promise.allSettled(this.subscribers.map(async (subscriber) => {
645
+ if (subscriber.shutdown) try {
646
+ await subscriber.shutdown();
647
+ } catch (error) {
648
+ getLogger().error({
649
+ err: error instanceof Error ? error : void 0,
650
+ subscriberName: subscriber.name || "Unknown"
651
+ }, `[Events] Failed to shutdown subscriber ${subscriber.name || "Unknown"}`);
652
+ }
653
+ }));
654
+ this.hasSubscribers = false;
655
+ }
656
+ /**
657
+ * Track funnel progression with custom step names
658
+ *
659
+ * Unlike trackFunnelStep which uses FunnelStatus enum values,
660
+ * this method allows any string as the step name for flexible funnel tracking.
661
+ *
662
+ * @param funnelName - Name of the funnel (e.g., "checkout", "onboarding")
663
+ * @param stepName - Custom step name (e.g., "cart_viewed", "payment_entered")
664
+ * @param stepNumber - Optional numeric position in the funnel
665
+ * @param attributes - Optional event attributes
666
+ *
667
+ * @example
668
+ * ```typescript
669
+ * // Track custom checkout steps
670
+ * event.trackFunnelProgression('checkout', 'cart_viewed', 1);
671
+ * event.trackFunnelProgression('checkout', 'shipping_selected', 2);
672
+ * event.trackFunnelProgression('checkout', 'payment_entered', 3);
673
+ * event.trackFunnelProgression('checkout', 'order_confirmed', 4);
674
+ * ```
675
+ */
676
+ trackFunnelProgression(funnelName, stepName, stepNumber, attributes) {
677
+ const enrichedAttributes = this.enrichWithTelemetryContext(attributes);
678
+ this.logger?.info({
679
+ funnel: funnelName,
680
+ stepName,
681
+ stepNumber,
682
+ attributes: enrichedAttributes
683
+ }, "Funnel progression tracked");
684
+ this.collector?.recordFunnelStep({
685
+ funnel: funnelName,
686
+ status: stepName,
687
+ attributes: {
688
+ ...enrichedAttributes,
689
+ step_name: stepName,
690
+ ...stepNumber === void 0 ? {} : { step_number: stepNumber }
691
+ },
692
+ service: this.serviceName,
693
+ timestamp: Date.now()
694
+ });
695
+ if (this.hasSubscribers) {
696
+ const autotelContext = this.buildAutotelContext();
697
+ const finalAttributes = this.enrichFromBaggage(enrichedAttributes);
698
+ this.notifySubscribers(async (subscriber) => {
699
+ await (subscriber.trackFunnelProgression ? subscriber.trackFunnelProgression(funnelName, stepName, stepNumber, finalAttributes, { autotel: autotelContext }) : subscriber.trackFunnelStep(funnelName, stepName, {
700
+ ...finalAttributes,
701
+ step_name: stepName,
702
+ ...stepNumber === void 0 ? {} : { step_number: stepNumber }
703
+ }, { autotel: autotelContext }));
704
+ });
705
+ }
706
+ }
707
+ /**
708
+ * Track multiple events in a batch
709
+ *
710
+ * Useful for bulk event tracking with consistent timestamps.
711
+ * Events are sent to subscribers individually but processed together.
712
+ *
713
+ * @param events - Array of events to track
714
+ *
715
+ * @example
716
+ * ```typescript
717
+ * event.trackBatch([
718
+ * { name: 'item.viewed', attributes: { itemId: '1' } },
719
+ * { name: 'item.viewed', attributes: { itemId: '2' } },
720
+ * { name: 'cart.updated', attributes: { itemCount: 2 } },
721
+ * ]);
722
+ * ```
723
+ */
724
+ trackBatch(events) {
725
+ for (const event of events) {
726
+ const filteredAttributes = event.attributes ? Object.fromEntries(Object.entries(event.attributes).filter(([, v]) => v !== void 0 && v !== null)) : void 0;
727
+ this.trackEvent(event.name, filteredAttributes);
728
+ }
729
+ }
730
+ };
731
+ /**
732
+ * Global events instances (singleton pattern)
733
+ */
734
+ const eventsInstances = /* @__PURE__ */ new Map();
735
+ /**
736
+ * Get or create an Events instance for a service
737
+ *
738
+ * @param serviceName - Service name for identifying events
739
+ * @param logger - Optional logger
740
+ * @returns Events instance
741
+ *
742
+ * @example
743
+ * ```typescript
744
+ * const event =getEvents('job-application')
745
+ * events.trackEvent('application.submitted', { jobId: '123' })
746
+ * ```
747
+ */
748
+ function getEvents(serviceName, logger) {
749
+ if (!eventsInstances.has(serviceName)) eventsInstances.set(serviceName, new Event(serviceName, { logger }));
750
+ return eventsInstances.get(serviceName);
751
+ }
752
+ /**
753
+ * Reset all events instances (mainly for testing)
754
+ */
755
+ function resetEvents() {
756
+ eventsInstances.clear();
757
+ }
758
+
759
+ //#endregion
760
+ export { getEvents as n, resetEvents as r, Event as t };
761
+ //# sourceMappingURL=event-_58ryBjh.js.map