autotel 3.5.0 → 3.7.0

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