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