autotel 3.6.0 → 3.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (602) hide show
  1. package/dist/attribute-redacting-processor-DtTS9xxh.d.cts +175 -0
  2. package/dist/attribute-redacting-processor-DtTS9xxh.d.cts.map +1 -0
  3. package/dist/attribute-redacting-processor-DtTS9xxh.d.ts +175 -0
  4. package/dist/attribute-redacting-processor-DtTS9xxh.d.ts.map +1 -0
  5. package/dist/attribute-redacting-processor.cjs +374 -33
  6. package/dist/attribute-redacting-processor.cjs.map +1 -1
  7. package/dist/attribute-redacting-processor.d.cts +2 -207
  8. package/dist/attribute-redacting-processor.d.ts +2 -207
  9. package/dist/attribute-redacting-processor.js +368 -2
  10. package/dist/attribute-redacting-processor.js.map +1 -1
  11. package/dist/attributes-D3etyRVc.cjs +713 -0
  12. package/dist/attributes-D3etyRVc.cjs.map +1 -0
  13. package/dist/attributes-ksn4HVbd.js +600 -0
  14. package/dist/attributes-ksn4HVbd.js.map +1 -0
  15. package/dist/attributes.cjs +21 -85
  16. package/dist/attributes.d.cts +2 -20
  17. package/dist/attributes.d.ts +2 -20
  18. package/dist/attributes.js +3 -5
  19. package/dist/auto.cjs +50 -28
  20. package/dist/auto.cjs.map +1 -1
  21. package/dist/auto.d.cts +1 -2
  22. package/dist/auto.d.ts +1 -2
  23. package/dist/auto.js +49 -23
  24. package/dist/auto.js.map +1 -1
  25. package/dist/business-baggage.cjs +357 -13
  26. package/dist/business-baggage.cjs.map +1 -1
  27. package/dist/business-baggage.d.cts +106 -139
  28. package/dist/business-baggage.d.cts.map +1 -0
  29. package/dist/business-baggage.d.ts +106 -139
  30. package/dist/business-baggage.d.ts.map +1 -0
  31. package/dist/business-baggage.js +357 -2
  32. package/dist/business-baggage.js.map +1 -1
  33. package/dist/canonical-log-line-processor--RlFDHhm.cjs +377 -0
  34. package/dist/canonical-log-line-processor--RlFDHhm.cjs.map +1 -0
  35. package/dist/canonical-log-line-processor-BcRuAdRk.d.ts +147 -0
  36. package/dist/canonical-log-line-processor-BcRuAdRk.d.ts.map +1 -0
  37. package/dist/canonical-log-line-processor-DbBQT5vY.js +366 -0
  38. package/dist/canonical-log-line-processor-DbBQT5vY.js.map +1 -0
  39. package/dist/canonical-log-line-processor-xvjMgtpF.d.cts +147 -0
  40. package/dist/canonical-log-line-processor-xvjMgtpF.d.cts.map +1 -0
  41. package/dist/config.cjs +118 -22
  42. package/dist/config.cjs.map +1 -1
  43. package/dist/config.d.cts +33 -45
  44. package/dist/config.d.cts.map +1 -0
  45. package/dist/config.d.ts +33 -45
  46. package/dist/config.d.ts.map +1 -0
  47. package/dist/config.js +116 -3
  48. package/dist/config.js.map +1 -1
  49. package/dist/correlated-events-Bzh5y-UB.js +28 -0
  50. package/dist/correlated-events-Bzh5y-UB.js.map +1 -0
  51. package/dist/correlated-events-kSwLo3mi.cjs +34 -0
  52. package/dist/correlated-events-kSwLo3mi.cjs.map +1 -0
  53. package/dist/correlation-id.cjs +11 -54
  54. package/dist/correlation-id.d.cts +6 -5
  55. package/dist/correlation-id.d.cts.map +1 -0
  56. package/dist/correlation-id.d.ts +6 -5
  57. package/dist/correlation-id.d.ts.map +1 -0
  58. package/dist/correlation-id.js +3 -17
  59. package/dist/db.cjs +244 -209
  60. package/dist/db.cjs.map +1 -1
  61. package/dist/db.d.cts +28 -26
  62. package/dist/db.d.cts.map +1 -0
  63. package/dist/db.d.ts +28 -26
  64. package/dist/db.d.ts.map +1 -0
  65. package/dist/db.js +243 -207
  66. package/dist/db.js.map +1 -1
  67. package/dist/decorators.cjs +39 -66
  68. package/dist/decorators.cjs.map +1 -1
  69. package/dist/decorators.d.cts +10 -37
  70. package/dist/decorators.d.cts.map +1 -0
  71. package/dist/decorators.d.ts +10 -37
  72. package/dist/decorators.d.ts.map +1 -0
  73. package/dist/decorators.js +38 -64
  74. package/dist/decorators.js.map +1 -1
  75. package/dist/define-event-CreknLm3.d.ts +25 -0
  76. package/dist/define-event-CreknLm3.d.ts.map +1 -0
  77. package/dist/define-event-HZRizPwz.d.cts +25 -0
  78. package/dist/define-event-HZRizPwz.d.cts.map +1 -0
  79. package/dist/drain-pipeline.cjs +111 -9
  80. package/dist/drain-pipeline.cjs.map +1 -1
  81. package/dist/drain-pipeline.d.cts +27 -32
  82. package/dist/drain-pipeline.d.cts.map +1 -0
  83. package/dist/drain-pipeline.d.ts +27 -32
  84. package/dist/drain-pipeline.d.ts.map +1 -0
  85. package/dist/drain-pipeline.js +111 -2
  86. package/dist/drain-pipeline.js.map +1 -1
  87. package/dist/enrichers.cjs +59 -66
  88. package/dist/enrichers.cjs.map +1 -1
  89. package/dist/enrichers.d.cts +15 -13
  90. package/dist/enrichers.d.cts.map +1 -0
  91. package/dist/enrichers.d.ts +15 -13
  92. package/dist/enrichers.d.ts.map +1 -0
  93. package/dist/enrichers.js +58 -65
  94. package/dist/enrichers.js.map +1 -1
  95. package/dist/event-Dlqr4ZNL.cjs +778 -0
  96. package/dist/event-Dlqr4ZNL.cjs.map +1 -0
  97. package/dist/event-_58ryBjh.js +761 -0
  98. package/dist/event-_58ryBjh.js.map +1 -0
  99. package/dist/event-subscriber-D1XLkPzi.d.cts +223 -0
  100. package/dist/event-subscriber-D1XLkPzi.d.cts.map +1 -0
  101. package/dist/event-subscriber-D1XLkPzi.d.ts +223 -0
  102. package/dist/event-subscriber-D1XLkPzi.d.ts.map +1 -0
  103. package/dist/event-subscriber.cjs +0 -6
  104. package/dist/event-subscriber.d.cts +2 -221
  105. package/dist/event-subscriber.d.ts +2 -221
  106. package/dist/event-subscriber.js +1 -3
  107. package/dist/event-testing-BqRnI0z4.d.cts +106 -0
  108. package/dist/event-testing-BqRnI0z4.d.cts.map +1 -0
  109. package/dist/event-testing-CfFs3to2.d.ts +106 -0
  110. package/dist/event-testing-CfFs3to2.d.ts.map +1 -0
  111. package/dist/event-testing.cjs +93 -17
  112. package/dist/event-testing.cjs.map +1 -1
  113. package/dist/event-testing.d.cts +2 -110
  114. package/dist/event-testing.d.ts +2 -110
  115. package/dist/event-testing.js +91 -2
  116. package/dist/event-testing.js.map +1 -1
  117. package/dist/event.cjs +5 -37
  118. package/dist/event.d.cts +295 -340
  119. package/dist/event.d.cts.map +1 -0
  120. package/dist/event.d.ts +295 -340
  121. package/dist/event.d.ts.map +1 -0
  122. package/dist/event.js +3 -21
  123. package/dist/exporters.cjs +12 -16
  124. package/dist/exporters.d.cts +86 -111
  125. package/dist/exporters.d.cts.map +1 -0
  126. package/dist/exporters.d.ts +86 -111
  127. package/dist/exporters.d.ts.map +1 -0
  128. package/dist/exporters.js +4 -4
  129. package/dist/filtering-span-processor-B8R8B7Uk.d.cts +59 -0
  130. package/dist/filtering-span-processor-B8R8B7Uk.d.cts.map +1 -0
  131. package/dist/filtering-span-processor-B8R8B7Uk.d.ts +59 -0
  132. package/dist/filtering-span-processor-B8R8B7Uk.d.ts.map +1 -0
  133. package/dist/filtering-span-processor.cjs +49 -9
  134. package/dist/filtering-span-processor.cjs.map +1 -1
  135. package/dist/filtering-span-processor.d.cts +2 -80
  136. package/dist/filtering-span-processor.d.ts +2 -80
  137. package/dist/filtering-span-processor.js +49 -2
  138. package/dist/filtering-span-processor.js.map +1 -1
  139. package/dist/functional-BGkT8J-h.js +1265 -0
  140. package/dist/functional-BGkT8J-h.js.map +1 -0
  141. package/dist/functional-C4CzoVrX.cjs +1312 -0
  142. package/dist/functional-C4CzoVrX.cjs.map +1 -0
  143. package/dist/functional.cjs +11 -57
  144. package/dist/functional.d.cts +96 -97
  145. package/dist/functional.d.cts.map +1 -0
  146. package/dist/functional.d.ts +96 -97
  147. package/dist/functional.d.ts.map +1 -0
  148. package/dist/functional.js +3 -20
  149. package/dist/http.cjs +276 -176
  150. package/dist/http.cjs.map +1 -1
  151. package/dist/http.d.cts +17 -37
  152. package/dist/http.d.cts.map +1 -0
  153. package/dist/http.d.ts +17 -37
  154. package/dist/http.d.ts.map +1 -0
  155. package/dist/http.js +275 -174
  156. package/dist/http.js.map +1 -1
  157. package/dist/index-CX0aG1Uh.d.ts +708 -0
  158. package/dist/index-CX0aG1Uh.d.ts.map +1 -0
  159. package/dist/index-DIWZFKUS.d.cts +708 -0
  160. package/dist/index-DIWZFKUS.d.cts.map +1 -0
  161. package/dist/index.cjs +1049 -1172
  162. package/dist/index.cjs.map +1 -1
  163. package/dist/index.d.cts +401 -551
  164. package/dist/index.d.cts.map +1 -0
  165. package/dist/index.d.ts +401 -551
  166. package/dist/index.d.ts.map +1 -0
  167. package/dist/index.js +912 -714
  168. package/dist/index.js.map +1 -1
  169. package/dist/init-CNp-ee80.d.cts +1157 -0
  170. package/dist/init-CNp-ee80.d.cts.map +1 -0
  171. package/dist/init-Ch6t7MNI.js +1015 -0
  172. package/dist/init-Ch6t7MNI.js.map +1 -0
  173. package/dist/init-DJQOdVlN.d.ts +1157 -0
  174. package/dist/init-DJQOdVlN.d.ts.map +1 -0
  175. package/dist/init-DvapOXCc.cjs +1092 -0
  176. package/dist/init-DvapOXCc.cjs.map +1 -0
  177. package/dist/instrumentation.cjs +159 -185
  178. package/dist/instrumentation.cjs.map +1 -1
  179. package/dist/instrumentation.d.cts +42 -40
  180. package/dist/instrumentation.d.cts.map +1 -0
  181. package/dist/instrumentation.d.ts +42 -40
  182. package/dist/instrumentation.d.ts.map +1 -0
  183. package/dist/instrumentation.js +158 -183
  184. package/dist/instrumentation.js.map +1 -1
  185. package/dist/logger-BauSUhUv.d.cts +313 -0
  186. package/dist/logger-BauSUhUv.d.cts.map +1 -0
  187. package/dist/logger-BauSUhUv.d.ts +313 -0
  188. package/dist/logger-BauSUhUv.d.ts.map +1 -0
  189. package/dist/logger.cjs +225 -25
  190. package/dist/logger.cjs.map +1 -1
  191. package/dist/logger.d.cts +2 -348
  192. package/dist/logger.d.ts +2 -348
  193. package/dist/logger.js +204 -4
  194. package/dist/logger.js.map +1 -1
  195. package/dist/messaging-adapters.cjs +292 -187
  196. package/dist/messaging-adapters.cjs.map +1 -1
  197. package/dist/messaging-adapters.d.cts +28 -66
  198. package/dist/messaging-adapters.d.cts.map +1 -0
  199. package/dist/messaging-adapters.d.ts +28 -66
  200. package/dist/messaging-adapters.d.ts.map +1 -0
  201. package/dist/messaging-adapters.js +291 -185
  202. package/dist/messaging-adapters.js.map +1 -1
  203. package/dist/messaging-testing.cjs +306 -372
  204. package/dist/messaging-testing.cjs.map +1 -1
  205. package/dist/messaging-testing.d.cts +194 -223
  206. package/dist/messaging-testing.d.cts.map +1 -0
  207. package/dist/messaging-testing.d.ts +194 -223
  208. package/dist/messaging-testing.d.ts.map +1 -0
  209. package/dist/messaging-testing.js +305 -371
  210. package/dist/messaging-testing.js.map +1 -1
  211. package/dist/messaging.cjs +757 -36
  212. package/dist/messaging.cjs.map +1 -1
  213. package/dist/messaging.d.cts +603 -644
  214. package/dist/messaging.d.cts.map +1 -0
  215. package/dist/messaging.d.ts +603 -644
  216. package/dist/messaging.d.ts.map +1 -0
  217. package/dist/messaging.js +756 -21
  218. package/dist/messaging.js.map +1 -1
  219. package/dist/metric-helpers.cjs +27 -27
  220. package/dist/metric-helpers.cjs.map +1 -1
  221. package/dist/metric-helpers.d.cts +4 -2
  222. package/dist/metric-helpers.d.cts.map +1 -0
  223. package/dist/metric-helpers.d.ts +4 -2
  224. package/dist/metric-helpers.d.ts.map +1 -0
  225. package/dist/metric-helpers.js +24 -4
  226. package/dist/metric-helpers.js.map +1 -1
  227. package/dist/metric-testing-DXdK3-Q3.d.ts +106 -0
  228. package/dist/metric-testing-DXdK3-Q3.d.ts.map +1 -0
  229. package/dist/metric-testing-MxvzChDp.d.cts +106 -0
  230. package/dist/metric-testing-MxvzChDp.d.cts.map +1 -0
  231. package/dist/metric-testing.cjs +93 -17
  232. package/dist/metric-testing.cjs.map +1 -1
  233. package/dist/metric-testing.d.cts +2 -110
  234. package/dist/metric-testing.d.ts +2 -110
  235. package/dist/metric-testing.js +91 -2
  236. package/dist/metric-testing.js.map +1 -1
  237. package/dist/metric.cjs +306 -22
  238. package/dist/metric.cjs.map +1 -1
  239. package/dist/metric.d.cts +170 -198
  240. package/dist/metric.d.cts.map +1 -0
  241. package/dist/metric.d.ts +170 -198
  242. package/dist/metric.d.ts.map +1 -0
  243. package/dist/metric.js +277 -7
  244. package/dist/metric.js.map +1 -1
  245. package/dist/node-require-DF5QBX6z.cjs +99 -0
  246. package/dist/node-require-DF5QBX6z.cjs.map +1 -0
  247. package/dist/node-require-Db1oDpLj.js +88 -0
  248. package/dist/node-require-Db1oDpLj.js.map +1 -0
  249. package/dist/operation-context-C-2hmmtP.js +59 -0
  250. package/dist/operation-context-C-2hmmtP.js.map +1 -0
  251. package/dist/operation-context-n4_obUwq.cjs +70 -0
  252. package/dist/operation-context-n4_obUwq.cjs.map +1 -0
  253. package/dist/parse-error.cjs +55 -9
  254. package/dist/parse-error.cjs.map +1 -1
  255. package/dist/parse-error.d.cts +12 -10
  256. package/dist/parse-error.d.cts.map +1 -0
  257. package/dist/parse-error.d.ts +12 -10
  258. package/dist/parse-error.d.ts.map +1 -0
  259. package/dist/parse-error.js +55 -2
  260. package/dist/parse-error.js.map +1 -1
  261. package/dist/pretty-console-exporter-CMzlrRNg.cjs +232 -0
  262. package/dist/pretty-console-exporter-CMzlrRNg.cjs.map +1 -0
  263. package/dist/pretty-console-exporter-DqKl_q9z.js +227 -0
  264. package/dist/pretty-console-exporter-DqKl_q9z.js.map +1 -0
  265. package/dist/processors.cjs +13 -17
  266. package/dist/processors.d.cts +3 -171
  267. package/dist/processors.d.ts +3 -171
  268. package/dist/processors.js +4 -4
  269. package/dist/register.cjs +35 -6
  270. package/dist/register.cjs.map +1 -1
  271. package/dist/register.d.cts +1 -2
  272. package/dist/register.d.ts +1 -2
  273. package/dist/register.js +36 -3
  274. package/dist/register.js.map +1 -1
  275. package/dist/registry-DfXA3R1L.js +184 -0
  276. package/dist/registry-DfXA3R1L.js.map +1 -0
  277. package/dist/registry-JZg2J3RZ.cjs +334 -0
  278. package/dist/registry-JZg2J3RZ.cjs.map +1 -0
  279. package/dist/sampling-CR0Va1VB.d.ts +351 -0
  280. package/dist/sampling-CR0Va1VB.d.ts.map +1 -0
  281. package/dist/sampling-DfYhDJij.d.cts +351 -0
  282. package/dist/sampling-DfYhDJij.d.cts.map +1 -0
  283. package/dist/sampling.cjs +452 -60
  284. package/dist/sampling.cjs.map +1 -1
  285. package/dist/sampling.d.cts +2 -379
  286. package/dist/sampling.d.ts +2 -379
  287. package/dist/sampling.js +441 -5
  288. package/dist/sampling.js.map +1 -1
  289. package/dist/security-schema.cjs +65 -46
  290. package/dist/security-schema.cjs.map +1 -1
  291. package/dist/security-schema.d.cts +23 -26
  292. package/dist/security-schema.d.cts.map +1 -0
  293. package/dist/security-schema.d.ts +23 -26
  294. package/dist/security-schema.d.ts.map +1 -0
  295. package/dist/security-schema.js +64 -45
  296. package/dist/security-schema.js.map +1 -1
  297. package/dist/semantic-conventions-FhSxv-bK.d.cts +32 -0
  298. package/dist/semantic-conventions-FhSxv-bK.d.cts.map +1 -0
  299. package/dist/semantic-conventions-FhSxv-bK.d.ts +32 -0
  300. package/dist/semantic-conventions-FhSxv-bK.d.ts.map +1 -0
  301. package/dist/semantic-conventions.cjs +15 -26
  302. package/dist/semantic-conventions.cjs.map +1 -1
  303. package/dist/semantic-conventions.d.cts +2 -29
  304. package/dist/semantic-conventions.d.ts +2 -29
  305. package/dist/semantic-conventions.js +12 -3
  306. package/dist/semantic-conventions.js.map +1 -1
  307. package/dist/semantic-helpers.cjs +440 -39
  308. package/dist/semantic-helpers.cjs.map +1 -1
  309. package/dist/semantic-helpers.d.cts +38 -45
  310. package/dist/semantic-helpers.d.cts.map +1 -0
  311. package/dist/semantic-helpers.d.ts +38 -45
  312. package/dist/semantic-helpers.d.ts.map +1 -0
  313. package/dist/semantic-helpers.js +438 -20
  314. package/dist/semantic-helpers.js.map +1 -1
  315. package/dist/span-name-normalizer-8ZOGJuwv.d.cts +70 -0
  316. package/dist/span-name-normalizer-8ZOGJuwv.d.cts.map +1 -0
  317. package/dist/span-name-normalizer-8ZOGJuwv.d.ts +70 -0
  318. package/dist/span-name-normalizer-8ZOGJuwv.d.ts.map +1 -0
  319. package/dist/span-name-normalizer.cjs +95 -17
  320. package/dist/span-name-normalizer.cjs.map +1 -1
  321. package/dist/span-name-normalizer.d.cts +2 -94
  322. package/dist/span-name-normalizer.d.ts +2 -94
  323. package/dist/span-name-normalizer.js +93 -2
  324. package/dist/span-name-normalizer.js.map +1 -1
  325. package/dist/stable-hash-BNTMrmdB.cjs +28 -0
  326. package/dist/stable-hash-BNTMrmdB.cjs.map +1 -0
  327. package/dist/stable-hash-Cg5cT34Q.js +23 -0
  328. package/dist/stable-hash-Cg5cT34Q.js.map +1 -0
  329. package/dist/structured-error-9--cxBay.js +143 -0
  330. package/dist/structured-error-9--cxBay.js.map +1 -0
  331. package/dist/structured-error-CHg7DoIQ.cjs +178 -0
  332. package/dist/structured-error-CHg7DoIQ.cjs.map +1 -0
  333. package/dist/tail-sampling-processor.cjs +26 -13
  334. package/dist/tail-sampling-processor.cjs.map +1 -1
  335. package/dist/tail-sampling-processor.d.cts +11 -23
  336. package/dist/tail-sampling-processor.d.cts.map +1 -0
  337. package/dist/tail-sampling-processor.d.ts +11 -23
  338. package/dist/tail-sampling-processor.d.ts.map +1 -0
  339. package/dist/tail-sampling-processor.js +27 -6
  340. package/dist/tail-sampling-processor.js.map +1 -1
  341. package/dist/test-span-collector.cjs +70 -72
  342. package/dist/test-span-collector.cjs.map +1 -1
  343. package/dist/test-span-collector.d.cts +25 -43
  344. package/dist/test-span-collector.d.cts.map +1 -0
  345. package/dist/test-span-collector.d.ts +25 -43
  346. package/dist/test-span-collector.d.ts.map +1 -0
  347. package/dist/test-span-collector.js +69 -70
  348. package/dist/test-span-collector.js.map +1 -1
  349. package/dist/testing.cjs +389 -278
  350. package/dist/testing.cjs.map +1 -1
  351. package/dist/testing.d.cts +39 -62
  352. package/dist/testing.d.cts.map +1 -0
  353. package/dist/testing.d.ts +39 -62
  354. package/dist/testing.d.ts.map +1 -0
  355. package/dist/testing.js +386 -265
  356. package/dist/testing.js.map +1 -1
  357. package/dist/trace-context-Cijqoi6e.d.cts +212 -0
  358. package/dist/trace-context-Cijqoi6e.d.cts.map +1 -0
  359. package/dist/trace-context-Cijqoi6e.d.ts +212 -0
  360. package/dist/trace-context-Cijqoi6e.d.ts.map +1 -0
  361. package/dist/trace-helpers.cjs +634 -54
  362. package/dist/trace-helpers.cjs.map +1 -1
  363. package/dist/trace-helpers.d.cts +17 -49
  364. package/dist/trace-helpers.d.cts.map +1 -0
  365. package/dist/trace-helpers.d.ts +17 -49
  366. package/dist/trace-helpers.d.ts.map +1 -0
  367. package/dist/trace-helpers.js +624 -3
  368. package/dist/trace-helpers.js.map +1 -1
  369. package/dist/tracer-provider.cjs +227 -16
  370. package/dist/tracer-provider.cjs.map +1 -1
  371. package/dist/tracer-provider.d.cts +5 -4
  372. package/dist/tracer-provider.d.cts.map +1 -0
  373. package/dist/tracer-provider.d.ts +5 -4
  374. package/dist/tracer-provider.d.ts.map +1 -0
  375. package/dist/tracer-provider.js +227 -2
  376. package/dist/tracer-provider.js.map +1 -1
  377. package/dist/track-3HY4NGV-.cjs +1212 -0
  378. package/dist/track-3HY4NGV-.cjs.map +1 -0
  379. package/dist/track-nsKVy-pj.js +1111 -0
  380. package/dist/track-nsKVy-pj.js.map +1 -0
  381. package/dist/validate.cjs +178 -115
  382. package/dist/validate.cjs.map +1 -1
  383. package/dist/validate.d.cts +40 -64
  384. package/dist/validate.d.cts.map +1 -0
  385. package/dist/validate.d.ts +40 -64
  386. package/dist/validate.d.ts.map +1 -0
  387. package/dist/validate.js +177 -113
  388. package/dist/validate.js.map +1 -1
  389. package/dist/validation-attributes.cjs +42 -17
  390. package/dist/validation-attributes.cjs.map +1 -1
  391. package/dist/validation-attributes.d.cts +13 -20
  392. package/dist/validation-attributes.d.cts.map +1 -0
  393. package/dist/validation-attributes.d.ts +13 -20
  394. package/dist/validation-attributes.d.ts.map +1 -0
  395. package/dist/validation-attributes.js +40 -2
  396. package/dist/validation-attributes.js.map +1 -1
  397. package/dist/webhook.cjs +286 -256
  398. package/dist/webhook.cjs.map +1 -1
  399. package/dist/webhook.d.cts +157 -192
  400. package/dist/webhook.d.cts.map +1 -0
  401. package/dist/webhook.d.ts +157 -192
  402. package/dist/webhook.d.ts.map +1 -0
  403. package/dist/webhook.js +285 -254
  404. package/dist/webhook.js.map +1 -1
  405. package/dist/workflow-distributed.cjs +498 -412
  406. package/dist/workflow-distributed.cjs.map +1 -1
  407. package/dist/workflow-distributed.d.cts +163 -173
  408. package/dist/workflow-distributed.d.cts.map +1 -0
  409. package/dist/workflow-distributed.d.ts +163 -173
  410. package/dist/workflow-distributed.d.ts.map +1 -0
  411. package/dist/workflow-distributed.js +497 -410
  412. package/dist/workflow-distributed.js.map +1 -1
  413. package/dist/workflow.cjs +405 -40
  414. package/dist/workflow.cjs.map +1 -1
  415. package/dist/workflow.d.cts +78 -131
  416. package/dist/workflow.d.cts.map +1 -0
  417. package/dist/workflow.d.ts +78 -131
  418. package/dist/workflow.d.ts.map +1 -0
  419. package/dist/workflow.js +403 -21
  420. package/dist/workflow.js.map +1 -1
  421. package/dist/yaml-config-B3dQ82GR.cjs +272 -0
  422. package/dist/yaml-config-B3dQ82GR.cjs.map +1 -0
  423. package/dist/yaml-config.cjs +5 -24
  424. package/dist/yaml-config.d.cts +30 -64
  425. package/dist/yaml-config.d.cts.map +1 -0
  426. package/dist/yaml-config.d.ts +30 -64
  427. package/dist/yaml-config.d.ts.map +1 -0
  428. package/dist/yaml-config.js +226 -7
  429. package/dist/yaml-config.js.map +1 -1
  430. package/package.json +4 -4
  431. package/src/index.ts +3 -0
  432. package/src/request-logger.test.ts +53 -1
  433. package/src/request-logger.ts +58 -0
  434. package/src/validate.test.ts +3 -1
  435. package/src/validate.ts +9 -3
  436. package/dist/attributes.cjs.map +0 -1
  437. package/dist/attributes.js.map +0 -1
  438. package/dist/chunk-2ZKEORFN.cjs +0 -14
  439. package/dist/chunk-2ZKEORFN.cjs.map +0 -1
  440. package/dist/chunk-3QXBFGKP.js +0 -344
  441. package/dist/chunk-3QXBFGKP.js.map +0 -1
  442. package/dist/chunk-454CH4OV.js +0 -744
  443. package/dist/chunk-454CH4OV.js.map +0 -1
  444. package/dist/chunk-4A53YIAX.js +0 -180
  445. package/dist/chunk-4A53YIAX.js.map +0 -1
  446. package/dist/chunk-4IFSYQVX.js +0 -337
  447. package/dist/chunk-4IFSYQVX.js.map +0 -1
  448. package/dist/chunk-4P6ZOARG.cjs +0 -33
  449. package/dist/chunk-4P6ZOARG.cjs.map +0 -1
  450. package/dist/chunk-55ER2KD5.js +0 -228
  451. package/dist/chunk-55ER2KD5.js.map +0 -1
  452. package/dist/chunk-5ZN622AO.js +0 -73
  453. package/dist/chunk-5ZN622AO.js.map +0 -1
  454. package/dist/chunk-66YJ66GG.js +0 -1021
  455. package/dist/chunk-66YJ66GG.js.map +0 -1
  456. package/dist/chunk-6S5RUKU3.cjs +0 -347
  457. package/dist/chunk-6S5RUKU3.cjs.map +0 -1
  458. package/dist/chunk-6UQRVUN3.js +0 -222
  459. package/dist/chunk-6UQRVUN3.js.map +0 -1
  460. package/dist/chunk-7552UTQW.js +0 -11
  461. package/dist/chunk-7552UTQW.js.map +0 -1
  462. package/dist/chunk-7EQ4G4SI.cjs +0 -146
  463. package/dist/chunk-7EQ4G4SI.cjs.map +0 -1
  464. package/dist/chunk-7SAWIN74.js +0 -285
  465. package/dist/chunk-7SAWIN74.js.map +0 -1
  466. package/dist/chunk-A4E5AQFK.js +0 -30
  467. package/dist/chunk-A4E5AQFK.js.map +0 -1
  468. package/dist/chunk-ALPYR2GC.js +0 -1061
  469. package/dist/chunk-ALPYR2GC.js.map +0 -1
  470. package/dist/chunk-B7SWBE4P.cjs +0 -799
  471. package/dist/chunk-B7SWBE4P.cjs.map +0 -1
  472. package/dist/chunk-BZHG5IZ4.js +0 -73
  473. package/dist/chunk-BZHG5IZ4.js.map +0 -1
  474. package/dist/chunk-CEAQK2QY.cjs +0 -32
  475. package/dist/chunk-CEAQK2QY.cjs.map +0 -1
  476. package/dist/chunk-CMHVQR6P.js +0 -170
  477. package/dist/chunk-CMHVQR6P.js.map +0 -1
  478. package/dist/chunk-CU6IDACR.cjs +0 -224
  479. package/dist/chunk-CU6IDACR.cjs.map +0 -1
  480. package/dist/chunk-D4TM63S3.js +0 -795
  481. package/dist/chunk-D4TM63S3.js.map +0 -1
  482. package/dist/chunk-DCEDJQGG.js +0 -28
  483. package/dist/chunk-DCEDJQGG.js.map +0 -1
  484. package/dist/chunk-DPSA4QLA.js +0 -344
  485. package/dist/chunk-DPSA4QLA.js.map +0 -1
  486. package/dist/chunk-E6TERL5O.cjs +0 -23
  487. package/dist/chunk-E6TERL5O.cjs.map +0 -1
  488. package/dist/chunk-EE6CPXKH.cjs +0 -164
  489. package/dist/chunk-EE6CPXKH.cjs.map +0 -1
  490. package/dist/chunk-EOFB7XCL.cjs +0 -837
  491. package/dist/chunk-EOFB7XCL.cjs.map +0 -1
  492. package/dist/chunk-ESLWRGAG.cjs +0 -92
  493. package/dist/chunk-ESLWRGAG.cjs.map +0 -1
  494. package/dist/chunk-ESMHTKLJ.cjs +0 -206
  495. package/dist/chunk-ESMHTKLJ.cjs.map +0 -1
  496. package/dist/chunk-FMTHVSYY.cjs +0 -1039
  497. package/dist/chunk-FMTHVSYY.cjs.map +0 -1
  498. package/dist/chunk-FU6R566Y.cjs +0 -236
  499. package/dist/chunk-FU6R566Y.cjs.map +0 -1
  500. package/dist/chunk-GYR5K654.js +0 -91
  501. package/dist/chunk-GYR5K654.js.map +0 -1
  502. package/dist/chunk-HA2WBOGQ.js +0 -57
  503. package/dist/chunk-HA2WBOGQ.js.map +0 -1
  504. package/dist/chunk-HT5JQKN2.js +0 -118
  505. package/dist/chunk-HT5JQKN2.js.map +0 -1
  506. package/dist/chunk-INJD3G4K.cjs +0 -340
  507. package/dist/chunk-INJD3G4K.cjs.map +0 -1
  508. package/dist/chunk-IOYFAFHJ.cjs +0 -95
  509. package/dist/chunk-IOYFAFHJ.cjs.map +0 -1
  510. package/dist/chunk-J5QENANM.js +0 -87
  511. package/dist/chunk-J5QENANM.js.map +0 -1
  512. package/dist/chunk-J7VGRIAJ.js +0 -64
  513. package/dist/chunk-J7VGRIAJ.js.map +0 -1
  514. package/dist/chunk-KFOHQK7X.js +0 -144
  515. package/dist/chunk-KFOHQK7X.js.map +0 -1
  516. package/dist/chunk-KIL5CUN6.js +0 -31
  517. package/dist/chunk-KIL5CUN6.js.map +0 -1
  518. package/dist/chunk-KYXZS3EA.cjs +0 -100
  519. package/dist/chunk-KYXZS3EA.cjs.map +0 -1
  520. package/dist/chunk-LITNXTTT.js +0 -3
  521. package/dist/chunk-LITNXTTT.js.map +0 -1
  522. package/dist/chunk-LVIPBYFE.js +0 -157
  523. package/dist/chunk-LVIPBYFE.js.map +0 -1
  524. package/dist/chunk-M3LFHHTN.cjs +0 -764
  525. package/dist/chunk-M3LFHHTN.cjs.map +0 -1
  526. package/dist/chunk-N25JDZSC.js +0 -95
  527. package/dist/chunk-N25JDZSC.js.map +0 -1
  528. package/dist/chunk-NEIB3TLD.cjs +0 -360
  529. package/dist/chunk-NEIB3TLD.cjs.map +0 -1
  530. package/dist/chunk-NENU7E6V.cjs +0 -344
  531. package/dist/chunk-NENU7E6V.cjs.map +0 -1
  532. package/dist/chunk-NVAI5CCN.cjs +0 -39
  533. package/dist/chunk-NVAI5CCN.cjs.map +0 -1
  534. package/dist/chunk-NZ72VDNY.cjs +0 -4
  535. package/dist/chunk-NZ72VDNY.cjs.map +0 -1
  536. package/dist/chunk-OPPXYVEZ.cjs +0 -131
  537. package/dist/chunk-OPPXYVEZ.cjs.map +0 -1
  538. package/dist/chunk-Q4EULJQY.js +0 -35
  539. package/dist/chunk-Q4EULJQY.js.map +0 -1
  540. package/dist/chunk-QF7ARNUM.js +0 -339
  541. package/dist/chunk-QF7ARNUM.js.map +0 -1
  542. package/dist/chunk-QWW3E3JM.cjs +0 -178
  543. package/dist/chunk-QWW3E3JM.cjs.map +0 -1
  544. package/dist/chunk-R7QYGZUP.cjs +0 -1075
  545. package/dist/chunk-R7QYGZUP.cjs.map +0 -1
  546. package/dist/chunk-RUPKBKUF.js +0 -352
  547. package/dist/chunk-RUPKBKUF.js.map +0 -1
  548. package/dist/chunk-SEO6NAQT.js +0 -14
  549. package/dist/chunk-SEO6NAQT.js.map +0 -1
  550. package/dist/chunk-T4B5LB6E.cjs +0 -66
  551. package/dist/chunk-T4B5LB6E.cjs.map +0 -1
  552. package/dist/chunk-T5WRA76K.cjs +0 -32
  553. package/dist/chunk-T5WRA76K.cjs.map +0 -1
  554. package/dist/chunk-T7JO2TCP.js +0 -1233
  555. package/dist/chunk-T7JO2TCP.js.map +0 -1
  556. package/dist/chunk-TC5ZPWM4.cjs +0 -289
  557. package/dist/chunk-TC5ZPWM4.cjs.map +0 -1
  558. package/dist/chunk-TQ5UWA7S.js +0 -26
  559. package/dist/chunk-TQ5UWA7S.js.map +0 -1
  560. package/dist/chunk-UIKYE2QZ.js +0 -833
  561. package/dist/chunk-UIKYE2QZ.js.map +0 -1
  562. package/dist/chunk-UNPLAVE7.js +0 -21
  563. package/dist/chunk-UNPLAVE7.js.map +0 -1
  564. package/dist/chunk-UY3UYPBZ.cjs +0 -77
  565. package/dist/chunk-UY3UYPBZ.cjs.map +0 -1
  566. package/dist/chunk-V7UBMJAB.cjs +0 -1242
  567. package/dist/chunk-V7UBMJAB.cjs.map +0 -1
  568. package/dist/chunk-VH77IPJN.cjs +0 -358
  569. package/dist/chunk-VH77IPJN.cjs.map +0 -1
  570. package/dist/chunk-VQTCQKHQ.cjs +0 -17
  571. package/dist/chunk-VQTCQKHQ.cjs.map +0 -1
  572. package/dist/chunk-WGWSHJ2N.js +0 -38
  573. package/dist/chunk-WGWSHJ2N.js.map +0 -1
  574. package/dist/chunk-WJH6IYU2.cjs +0 -32
  575. package/dist/chunk-WJH6IYU2.cjs.map +0 -1
  576. package/dist/chunk-YREV3LGG.cjs +0 -61
  577. package/dist/chunk-YREV3LGG.cjs.map +0 -1
  578. package/dist/chunk-YTXEZ4SD.cjs +0 -77
  579. package/dist/chunk-YTXEZ4SD.cjs.map +0 -1
  580. package/dist/chunk-ZNMBW67B.cjs +0 -40
  581. package/dist/chunk-ZNMBW67B.cjs.map +0 -1
  582. package/dist/correlation-id.cjs.map +0 -1
  583. package/dist/correlation-id.js.map +0 -1
  584. package/dist/define-event-BL6Li7CM.d.ts +0 -23
  585. package/dist/define-event-ClP3T1Jx.d.cts +0 -23
  586. package/dist/event-subscriber.cjs.map +0 -1
  587. package/dist/event-subscriber.js.map +0 -1
  588. package/dist/event.cjs.map +0 -1
  589. package/dist/event.js.map +0 -1
  590. package/dist/exporters.cjs.map +0 -1
  591. package/dist/exporters.js.map +0 -1
  592. package/dist/functional.cjs.map +0 -1
  593. package/dist/functional.js.map +0 -1
  594. package/dist/init-DIowiiCh.d.ts +0 -1167
  595. package/dist/init-j-A1zI16.d.cts +0 -1167
  596. package/dist/processors.cjs.map +0 -1
  597. package/dist/processors.js.map +0 -1
  598. package/dist/trace-context-DbGKd1Rn.d.cts +0 -213
  599. package/dist/trace-context-DbGKd1Rn.d.ts +0 -213
  600. package/dist/utils-BahBCFtJ.d.cts +0 -712
  601. package/dist/utils-CLKwaUlG.d.ts +0 -712
  602. package/dist/yaml-config.cjs.map +0 -1
@@ -1,222 +0,0 @@
1
- import { SpanStatusCode } from '@opentelemetry/api';
2
-
3
- // src/pretty-console-exporter.ts
4
- var ExportResultCode = {
5
- SUCCESS: 0,
6
- FAILED: 1
7
- };
8
- var ANSI = {
9
- reset: "\x1B[0m",
10
- bold: "\x1B[1m",
11
- dim: "\x1B[2m",
12
- green: "\x1B[32m",
13
- red: "\x1B[31m",
14
- yellow: "\x1B[33m",
15
- blue: "\x1B[34m",
16
- cyan: "\x1B[36m",
17
- gray: "\x1B[90m"
18
- };
19
- var PrettyConsoleExporter = class {
20
- options;
21
- constructor(options = {}) {
22
- this.options = {
23
- colors: options.colors ?? process.stdout?.isTTY ?? false,
24
- showAttributes: options.showAttributes ?? true,
25
- maxValueLength: options.maxValueLength ?? 50,
26
- showScope: options.showScope ?? true,
27
- hideAttributes: options.hideAttributes ?? [],
28
- showTraceId: options.showTraceId ?? false
29
- };
30
- }
31
- /**
32
- * Export spans with pretty formatting
33
- */
34
- export(spans, resultCallback) {
35
- if (spans.length === 0) {
36
- resultCallback({ code: ExportResultCode.SUCCESS });
37
- return;
38
- }
39
- try {
40
- const traceGroups = this.groupByTrace(spans);
41
- for (const [traceId, traceSpans] of traceGroups) {
42
- this.printTrace(traceId, traceSpans);
43
- }
44
- resultCallback({ code: ExportResultCode.SUCCESS });
45
- } catch {
46
- resultCallback({ code: ExportResultCode.SUCCESS });
47
- }
48
- }
49
- /**
50
- * Group spans by their trace ID
51
- */
52
- groupByTrace(spans) {
53
- const groups = /* @__PURE__ */ new Map();
54
- for (const span of spans) {
55
- const traceId = span.spanContext().traceId;
56
- const group = groups.get(traceId) ?? [];
57
- group.push(span);
58
- groups.set(traceId, group);
59
- }
60
- return groups;
61
- }
62
- /**
63
- * Print a single trace with all its spans as a tree
64
- */
65
- printTrace(traceId, spans) {
66
- const sorted = [...spans].toSorted((a, b) => {
67
- const aTime = hrTimeToMs(a.startTime);
68
- const bTime = hrTimeToMs(b.startTime);
69
- return aTime - bTime;
70
- });
71
- const tree = this.buildSpanTree(sorted);
72
- if (this.options.showTraceId && tree.length > 0) {
73
- console.log(this.color(`trace: ${traceId}`, "gray"));
74
- }
75
- for (const node of tree) {
76
- this.printNode(node, 0, false);
77
- }
78
- console.log("");
79
- }
80
- /**
81
- * Build a tree structure from flat spans using parent-child relationships
82
- */
83
- buildSpanTree(spans) {
84
- const spanMap = /* @__PURE__ */ new Map();
85
- const roots = [];
86
- for (const span of spans) {
87
- const spanId = span.spanContext().spanId;
88
- spanMap.set(spanId, { span, children: [] });
89
- }
90
- for (const span of spans) {
91
- const spanId = span.spanContext().spanId;
92
- const parentId = span.parentSpanContext?.spanId;
93
- const node = spanMap.get(spanId);
94
- if (parentId && spanMap.has(parentId)) {
95
- spanMap.get(parentId).children.push(node);
96
- } else {
97
- roots.push(node);
98
- }
99
- }
100
- return roots;
101
- }
102
- /**
103
- * Print a span node with indentation and tree characters
104
- */
105
- printNode(node, depth, isLast) {
106
- const { span } = node;
107
- const prefix = depth === 0 ? "" : " ".repeat(depth - 1) + (isLast ? "\u2514\u2500 " : "\u251C\u2500 ");
108
- const isError = span.status.code === SpanStatusCode.ERROR;
109
- const statusChar = isError ? "\u2717" : "\u2713";
110
- const statusColor = isError ? "red" : "green";
111
- const durationMs = hrTimeToMs(span.duration);
112
- const durationStr = formatDuration(durationMs);
113
- const durationColor = getDurationColor(durationMs);
114
- const scopeName = this.options.showScope ? this.color(` [${this.getScopeName(span)}]`, "gray") : "";
115
- const line = [
116
- prefix,
117
- this.color(statusChar, statusColor),
118
- " ",
119
- span.name.padEnd(Math.max(35 - prefix.length, 10)),
120
- this.color(durationStr.padStart(8), durationColor),
121
- scopeName
122
- ].join("");
123
- console.log(line);
124
- if (this.options.showAttributes) {
125
- const attrs = this.formatAttributes(span);
126
- if (attrs) {
127
- const attrIndent = " ".repeat(depth) + " ";
128
- console.log(this.color(`${attrIndent}${attrs}`, "dim"));
129
- }
130
- }
131
- if (isError && span.status.message) {
132
- const errorIndent = " ".repeat(depth) + " ";
133
- console.log(
134
- this.color(`${errorIndent}Error: ${span.status.message}`, "red")
135
- );
136
- }
137
- const childCount = node.children.length;
138
- let index = 0;
139
- for (const child of node.children) {
140
- this.printNode(child, depth + 1, index === childCount - 1);
141
- index++;
142
- }
143
- }
144
- /**
145
- * Get short scope name from instrumentation scope
146
- */
147
- getScopeName(span) {
148
- const name = span.instrumentationScope?.name ?? "unknown";
149
- const match = name.match(/@opentelemetry\/instrumentation-(.+)/);
150
- if (match?.[1]) return match[1];
151
- const lastPart = name.split("/").at(-1);
152
- return lastPart ?? name;
153
- }
154
- /**
155
- * Format span attributes as a comma-separated string
156
- */
157
- formatAttributes(span) {
158
- const attrs = span.attributes;
159
- if (!attrs || Object.keys(attrs).length === 0) {
160
- return "";
161
- }
162
- const pairs = [];
163
- for (const [key, value] of Object.entries(attrs)) {
164
- if (this.options.hideAttributes.includes(key)) continue;
165
- if (value === void 0 || value === null) continue;
166
- const strValue = this.truncate(
167
- Array.isArray(value) ? `[${value.join(", ")}]` : String(value),
168
- this.options.maxValueLength
169
- );
170
- pairs.push(`${key}=${strValue}`);
171
- }
172
- return pairs.join(", ");
173
- }
174
- /**
175
- * Truncate string to max length with ellipsis
176
- */
177
- truncate(str, max) {
178
- if (str.length <= max) return str;
179
- return str.slice(0, max - 3) + "...";
180
- }
181
- /**
182
- * Apply ANSI color if colors are enabled
183
- */
184
- color(text, color) {
185
- if (!this.options.colors) return text;
186
- return `${ANSI[color]}${text}${ANSI.reset}`;
187
- }
188
- /**
189
- * Shutdown (no-op for console exporter)
190
- */
191
- shutdown() {
192
- return Promise.resolve();
193
- }
194
- /**
195
- * Force flush (no-op for console exporter)
196
- */
197
- forceFlush() {
198
- return Promise.resolve();
199
- }
200
- };
201
- function hrTimeToMs(hrTime) {
202
- const [seconds, nanos] = hrTime;
203
- return seconds * 1e3 + nanos / 1e6;
204
- }
205
- function formatDuration(ms) {
206
- if (ms < 1) {
207
- return `${(ms * 1e3).toFixed(0)}\xB5s`;
208
- }
209
- if (ms < 1e3) {
210
- return `${ms.toFixed(0)}ms`;
211
- }
212
- return `${(ms / 1e3).toFixed(2)}s`;
213
- }
214
- function getDurationColor(ms) {
215
- if (ms < 100) return "green";
216
- if (ms < 500) return "yellow";
217
- return "red";
218
- }
219
-
220
- export { PrettyConsoleExporter };
221
- //# sourceMappingURL=chunk-6UQRVUN3.js.map
222
- //# sourceMappingURL=chunk-6UQRVUN3.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/pretty-console-exporter.ts"],"names":[],"mappings":"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","file":"chunk-6UQRVUN3.js","sourcesContent":["/**\n * Pretty Console Exporter\n *\n * A developer-friendly span exporter that displays colorized, hierarchical\n * trace output in the terminal. Zero external dependencies - uses ANSI escape codes.\n *\n * @example Basic usage\n * ```typescript\n * init({\n * service: 'my-app',\n * debug: 'pretty' // Uses PrettyConsoleExporter\n * })\n * ```\n *\n * @example Explicit usage with options\n * ```typescript\n * import { PrettyConsoleExporter } from 'autotel/exporters'\n *\n * init({\n * service: 'my-app',\n * spanExporters: [new PrettyConsoleExporter({\n * colors: true,\n * showAttributes: true,\n * hideAttributes: ['http.user_agent']\n * })]\n * })\n * ```\n */\n\nimport type { SpanExporter, ReadableSpan } from '@opentelemetry/sdk-trace-base';\nimport { SpanStatusCode } from '@opentelemetry/api';\n\n/**\n * Export result code constants (avoid importing @opentelemetry/core)\n */\nconst ExportResultCode = {\n SUCCESS: 0,\n FAILED: 1,\n} as const;\n\n/**\n * Export result type for SpanExporter callback\n */\ninterface ExportResult {\n code: number;\n error?: Error;\n}\n\n/**\n * ANSI escape codes for terminal colors (zero dependencies)\n */\nconst ANSI = {\n reset: '\\u001B[0m',\n bold: '\\u001B[1m',\n dim: '\\u001B[2m',\n green: '\\u001B[32m',\n red: '\\u001B[31m',\n yellow: '\\u001B[33m',\n blue: '\\u001B[34m',\n cyan: '\\u001B[36m',\n gray: '\\u001B[90m',\n} as const;\n\ntype AnsiColor = keyof typeof ANSI;\n\n/**\n * Configuration options for PrettyConsoleExporter\n */\nexport interface PrettyConsoleExporterOptions {\n /**\n * Enable ANSI colors in output\n * @default auto-detect TTY\n */\n colors?: boolean;\n\n /**\n * Show span attributes in output\n * @default true\n */\n showAttributes?: boolean;\n\n /**\n * Maximum length for attribute values before truncation\n * @default 50\n */\n maxValueLength?: number;\n\n /**\n * Show instrumentation scope name (e.g., [http], [pg])\n * @default true\n */\n showScope?: boolean;\n\n /**\n * Attribute keys to always hide from output\n * @default []\n */\n hideAttributes?: string[];\n\n /**\n * Show trace ID for each root span\n * @default false\n */\n showTraceId?: boolean;\n}\n\n/**\n * Internal node structure for building span trees\n */\ninterface SpanNode {\n span: ReadableSpan;\n children: SpanNode[];\n}\n\n/**\n * Pretty Console Exporter - colorized, hierarchical span output for development\n *\n * Features:\n * - Colorized status indicators (✓ green, ✗ red)\n * - Duration with color coding (fast=green, medium=yellow, slow=red)\n * - Hierarchical tree view showing parent-child relationships\n * - Attribute display with truncation\n * - Error message highlighting\n */\nexport class PrettyConsoleExporter implements SpanExporter {\n private readonly options: Required<PrettyConsoleExporterOptions>;\n\n constructor(options: PrettyConsoleExporterOptions = {}) {\n this.options = {\n colors: options.colors ?? process.stdout?.isTTY ?? false,\n showAttributes: options.showAttributes ?? true,\n maxValueLength: options.maxValueLength ?? 50,\n showScope: options.showScope ?? true,\n hideAttributes: options.hideAttributes ?? [],\n showTraceId: options.showTraceId ?? false,\n };\n }\n\n /**\n * Export spans with pretty formatting\n */\n export(\n spans: ReadableSpan[],\n resultCallback: (result: ExportResult) => void,\n ): void {\n if (spans.length === 0) {\n resultCallback({ code: ExportResultCode.SUCCESS });\n return;\n }\n\n try {\n // Group spans by trace ID\n const traceGroups = this.groupByTrace(spans);\n\n // Print each trace group\n for (const [traceId, traceSpans] of traceGroups) {\n this.printTrace(traceId, traceSpans);\n }\n\n resultCallback({ code: ExportResultCode.SUCCESS });\n } catch {\n // Fail-open: don't crash the app if formatting fails\n resultCallback({ code: ExportResultCode.SUCCESS });\n }\n }\n\n /**\n * Group spans by their trace ID\n */\n private groupByTrace(spans: ReadableSpan[]): Map<string, ReadableSpan[]> {\n const groups = new Map<string, ReadableSpan[]>();\n\n for (const span of spans) {\n const traceId = span.spanContext().traceId;\n const group = groups.get(traceId) ?? [];\n group.push(span);\n groups.set(traceId, group);\n }\n\n return groups;\n }\n\n /**\n * Print a single trace with all its spans as a tree\n */\n private printTrace(traceId: string, spans: ReadableSpan[]): void {\n // Sort by start time\n const sorted = [...spans].toSorted((a, b) => {\n const aTime = hrTimeToMs(a.startTime);\n const bTime = hrTimeToMs(b.startTime);\n return aTime - bTime;\n });\n\n // Build tree structure\n const tree = this.buildSpanTree(sorted);\n\n // Print trace ID header if enabled\n if (this.options.showTraceId && tree.length > 0) {\n console.log(this.color(`trace: ${traceId}`, 'gray'));\n }\n\n // Print each root span and its children\n for (const node of tree) {\n this.printNode(node, 0, false);\n }\n\n // Add blank line between traces\n console.log('');\n }\n\n /**\n * Build a tree structure from flat spans using parent-child relationships\n */\n private buildSpanTree(spans: ReadableSpan[]): SpanNode[] {\n const spanMap = new Map<string, SpanNode>();\n const roots: SpanNode[] = [];\n\n // Create nodes for all spans\n for (const span of spans) {\n const spanId = span.spanContext().spanId;\n spanMap.set(spanId, { span, children: [] });\n }\n\n // Build parent-child relationships\n for (const span of spans) {\n const spanId = span.spanContext().spanId;\n const parentId = span.parentSpanContext?.spanId;\n const node = spanMap.get(spanId)!;\n\n if (parentId && spanMap.has(parentId)) {\n // Has parent in this batch - add as child\n spanMap.get(parentId)!.children.push(node);\n } else {\n // No parent or parent not in batch - treat as root\n roots.push(node);\n }\n }\n\n return roots;\n }\n\n /**\n * Print a span node with indentation and tree characters\n */\n private printNode(node: SpanNode, depth: number, isLast: boolean): void {\n const { span } = node;\n\n // Build tree prefix\n const prefix =\n depth === 0 ? '' : ' '.repeat(depth - 1) + (isLast ? '└─ ' : '├─ ');\n\n // Status indicator\n const isError = span.status.code === SpanStatusCode.ERROR;\n const statusChar = isError ? '✗' : '✓';\n const statusColor: AnsiColor = isError ? 'red' : 'green';\n\n // Duration formatting\n const durationMs = hrTimeToMs(span.duration);\n const durationStr = formatDuration(durationMs);\n const durationColor = getDurationColor(durationMs);\n\n // Scope name (instrumentation library)\n const scopeName = this.options.showScope\n ? this.color(` [${this.getScopeName(span)}]`, 'gray')\n : '';\n\n // Build the main line\n const line = [\n prefix,\n this.color(statusChar, statusColor),\n ' ',\n span.name.padEnd(Math.max(35 - prefix.length, 10)),\n this.color(durationStr.padStart(8), durationColor),\n scopeName,\n ].join('');\n\n console.log(line);\n\n // Print attributes on next line (indented)\n if (this.options.showAttributes) {\n const attrs = this.formatAttributes(span);\n if (attrs) {\n const attrIndent = ' '.repeat(depth) + ' ';\n console.log(this.color(`${attrIndent}${attrs}`, 'dim'));\n }\n }\n\n // Print error message if present\n if (isError && span.status.message) {\n const errorIndent = ' '.repeat(depth) + ' ';\n console.log(\n this.color(`${errorIndent}Error: ${span.status.message}`, 'red'),\n );\n }\n\n // Print children\n const childCount = node.children.length;\n let index = 0;\n for (const child of node.children) {\n this.printNode(child, depth + 1, index === childCount - 1);\n index++;\n }\n }\n\n /**\n * Get short scope name from instrumentation scope\n */\n private getScopeName(span: ReadableSpan): string {\n const name = span.instrumentationScope?.name ?? 'unknown';\n // Extract short name from @opentelemetry/instrumentation-xxx format\n const match = name.match(/@opentelemetry\\/instrumentation-(.+)/);\n if (match?.[1]) return match[1];\n // Fall back to last part of name or full name\n const lastPart = name.split('/').at(-1);\n return lastPart ?? name;\n }\n\n /**\n * Format span attributes as a comma-separated string\n */\n private formatAttributes(span: ReadableSpan): string {\n const attrs = span.attributes;\n if (!attrs || Object.keys(attrs).length === 0) {\n return '';\n }\n\n const pairs: string[] = [];\n for (const [key, value] of Object.entries(attrs)) {\n // Skip hidden attributes\n if (this.options.hideAttributes.includes(key)) continue;\n\n // Skip undefined/null values\n if (value === undefined || value === null) continue;\n\n // Format value\n const strValue = this.truncate(\n Array.isArray(value) ? `[${value.join(', ')}]` : String(value),\n this.options.maxValueLength,\n );\n pairs.push(`${key}=${strValue}`);\n }\n\n return pairs.join(', ');\n }\n\n /**\n * Truncate string to max length with ellipsis\n */\n private truncate(str: string, max: number): string {\n if (str.length <= max) return str;\n return str.slice(0, max - 3) + '...';\n }\n\n /**\n * Apply ANSI color if colors are enabled\n */\n private color(text: string, color: AnsiColor): string {\n if (!this.options.colors) return text;\n return `${ANSI[color]}${text}${ANSI.reset}`;\n }\n\n /**\n * Shutdown (no-op for console exporter)\n */\n shutdown(): Promise<void> {\n return Promise.resolve();\n }\n\n /**\n * Force flush (no-op for console exporter)\n */\n forceFlush(): Promise<void> {\n return Promise.resolve();\n }\n}\n\n/**\n * Convert HrTime [seconds, nanoseconds] to milliseconds\n */\nfunction hrTimeToMs(hrTime: [number, number]): number {\n const [seconds, nanos] = hrTime;\n return seconds * 1000 + nanos / 1_000_000;\n}\n\n/**\n * Format duration with appropriate units\n */\nfunction formatDuration(ms: number): string {\n if (ms < 1) {\n // Sub-millisecond: show as microseconds\n return `${(ms * 1000).toFixed(0)}µs`;\n }\n if (ms < 1000) {\n // Under 1 second: show as milliseconds\n return `${ms.toFixed(0)}ms`;\n }\n // 1 second or more: show as seconds\n return `${(ms / 1000).toFixed(2)}s`;\n}\n\n/**\n * Get color based on duration (fast=green, medium=yellow, slow=red)\n */\nfunction getDurationColor(ms: number): AnsiColor {\n if (ms < 100) return 'green';\n if (ms < 500) return 'yellow';\n return 'red';\n}\n\n/**\n * Export utility functions for testing\n */\nexport { formatDuration, getDurationColor, hrTimeToMs };\n"]}
@@ -1,11 +0,0 @@
1
- // src/semantic-conventions.ts
2
- function httpRequestHeaderAttribute(name) {
3
- return `http.request.header.${name.toLowerCase()}`;
4
- }
5
- function httpResponseHeaderAttribute(name) {
6
- return `http.response.header.${name.toLowerCase()}`;
7
- }
8
-
9
- export { httpRequestHeaderAttribute, httpResponseHeaderAttribute };
10
- //# sourceMappingURL=chunk-7552UTQW.js.map
11
- //# sourceMappingURL=chunk-7552UTQW.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/semantic-conventions.ts"],"names":[],"mappings":";AAQO,SAAS,2BAA2B,IAAA,EAAsB;AAC/D,EAAA,OAAO,CAAA,oBAAA,EAAuB,IAAA,CAAK,WAAA,EAAa,CAAA,CAAA;AAClD;AAEO,SAAS,4BAA4B,IAAA,EAAsB;AAChE,EAAA,OAAO,CAAA,qBAAA,EAAwB,IAAA,CAAK,WAAA,EAAa,CAAA,CAAA;AACnD","file":"chunk-7552UTQW.js","sourcesContent":["import {\n HTTPAttributes,\n ServiceAttributes,\n URLAttributes,\n} from './attributes/registry';\n\nexport { HTTPAttributes, ServiceAttributes, URLAttributes };\n\nexport function httpRequestHeaderAttribute(name: string): string {\n return `http.request.header.${name.toLowerCase()}`;\n}\n\nexport function httpResponseHeaderAttribute(name: string): string {\n return `http.response.header.${name.toLowerCase()}`;\n}\n"]}
@@ -1,146 +0,0 @@
1
- 'use strict';
2
-
3
- // src/drain-pipeline.ts
4
- function wait(ms) {
5
- return new Promise((resolve) => {
6
- const timer = setTimeout(resolve, ms);
7
- timer.unref?.();
8
- });
9
- }
10
- function createDrainPipeline(options) {
11
- const batchSize = options?.batch?.size ?? 50;
12
- const intervalMs = options?.batch?.intervalMs ?? 5e3;
13
- const maxBufferSize = options?.maxBufferSize ?? 1e3;
14
- const maxAttempts = options?.retry?.maxAttempts ?? 3;
15
- const backoff = options?.retry?.backoff ?? "exponential";
16
- const initialDelayMs = options?.retry?.initialDelayMs ?? 1e3;
17
- const maxDelayMs = options?.retry?.maxDelayMs ?? 3e4;
18
- const jitter = options?.retry?.jitter ?? true;
19
- const dropPolicy = options?.dropPolicy ?? "oldest";
20
- const onDropped = options?.onDropped;
21
- if (!Number.isFinite(batchSize) || batchSize <= 0) {
22
- throw new Error(
23
- `[autotel/drain-pipeline] batch.size must be a positive finite number, got: ${batchSize}`
24
- );
25
- }
26
- if (!Number.isFinite(intervalMs) || intervalMs <= 0) {
27
- throw new Error(
28
- `[autotel/drain-pipeline] batch.intervalMs must be a positive finite number, got: ${intervalMs}`
29
- );
30
- }
31
- if (!Number.isFinite(maxBufferSize) || maxBufferSize <= 0) {
32
- throw new Error(
33
- `[autotel/drain-pipeline] maxBufferSize must be a positive finite number, got: ${maxBufferSize}`
34
- );
35
- }
36
- if (!Number.isFinite(maxAttempts) || maxAttempts <= 0) {
37
- throw new Error(
38
- `[autotel/drain-pipeline] retry.maxAttempts must be a positive finite number, got: ${maxAttempts}`
39
- );
40
- }
41
- return (drain) => {
42
- const buffer = [];
43
- let timer = null;
44
- let activeFlush = null;
45
- let isShutdown = false;
46
- const clearTimer = () => {
47
- if (timer) {
48
- clearTimeout(timer);
49
- timer = null;
50
- }
51
- };
52
- const computeDelay = (attempt) => {
53
- const base = backoff === "fixed" ? initialDelayMs : backoff === "linear" ? initialDelayMs * attempt : initialDelayMs * 2 ** (attempt - 1);
54
- const bounded = Math.min(base, maxDelayMs);
55
- if (!jitter || bounded <= 0) return bounded;
56
- const factor = 0.5 + Math.random();
57
- return Math.max(0, Math.round(bounded * factor));
58
- };
59
- const sendWithRetry = async (batch) => {
60
- let lastError;
61
- for (let attempt = 1; attempt <= maxAttempts; attempt++) {
62
- try {
63
- await drain(batch);
64
- return;
65
- } catch (error) {
66
- lastError = error instanceof Error ? error : new Error(String(error));
67
- if (attempt < maxAttempts) {
68
- await wait(computeDelay(attempt));
69
- }
70
- }
71
- }
72
- onDropped?.(batch, lastError);
73
- };
74
- const drainBuffer = async () => {
75
- while (buffer.length > 0) {
76
- const batch = buffer.splice(0, batchSize);
77
- await sendWithRetry(batch);
78
- }
79
- };
80
- const scheduleFlush = () => {
81
- if (isShutdown || timer || activeFlush) return;
82
- timer = setTimeout(() => {
83
- timer = null;
84
- startFlush();
85
- }, intervalMs);
86
- timer.unref?.();
87
- };
88
- const startFlush = () => {
89
- if (activeFlush || isShutdown) return;
90
- activeFlush = drainBuffer().finally(() => {
91
- activeFlush = null;
92
- if (isShutdown) return;
93
- if (buffer.length >= batchSize) {
94
- startFlush();
95
- } else if (buffer.length > 0) {
96
- scheduleFlush();
97
- }
98
- });
99
- };
100
- const push = (ctx) => {
101
- if (isShutdown) return;
102
- if (buffer.length >= maxBufferSize) {
103
- if (dropPolicy === "newest") {
104
- onDropped?.([ctx]);
105
- return;
106
- }
107
- const dropped = buffer.splice(0, 1);
108
- onDropped?.(dropped);
109
- }
110
- buffer.push(ctx);
111
- if (buffer.length >= batchSize) {
112
- clearTimer();
113
- startFlush();
114
- } else {
115
- scheduleFlush();
116
- }
117
- };
118
- const flush = async () => {
119
- clearTimer();
120
- if (activeFlush) await activeFlush;
121
- const snapshot = buffer.length;
122
- if (snapshot <= 0) return;
123
- const toFlush = buffer.splice(0, snapshot);
124
- while (toFlush.length > 0) {
125
- const batch = toFlush.splice(0, batchSize);
126
- await sendWithRetry(batch);
127
- }
128
- };
129
- const shutdown = async () => {
130
- isShutdown = true;
131
- await flush();
132
- };
133
- const fn = push;
134
- fn.flush = flush;
135
- fn.shutdown = shutdown;
136
- Object.defineProperty(fn, "pending", {
137
- enumerable: true,
138
- get: () => buffer.length
139
- });
140
- return fn;
141
- };
142
- }
143
-
144
- exports.createDrainPipeline = createDrainPipeline;
145
- //# sourceMappingURL=chunk-7EQ4G4SI.cjs.map
146
- //# sourceMappingURL=chunk-7EQ4G4SI.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/drain-pipeline.ts"],"names":[],"mappings":"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","file":"chunk-7EQ4G4SI.cjs","sourcesContent":["export interface DrainPipelineOptions<T = unknown> {\n batch?: {\n /** Maximum events per batch. @default 50 */\n size?: number;\n /** Max time an event can stay buffered before flush. @default 5000 */\n intervalMs?: number;\n };\n retry?: {\n /** Total attempts including first try. @default 3 */\n maxAttempts?: number;\n /** Delay strategy between attempts. @default 'exponential' */\n backoff?: 'exponential' | 'linear' | 'fixed';\n /** Base delay for first retry. @default 1000 */\n initialDelayMs?: number;\n /** Max delay cap. @default 30000 */\n maxDelayMs?: number;\n /** Add random jitter to delays. @default true */\n jitter?: boolean;\n };\n /** Max buffered events before dropping. @default 1000 */\n maxBufferSize?: number;\n /** Overflow policy. @default 'oldest' */\n dropPolicy?: 'oldest' | 'newest';\n /** Called when events are dropped from overflow or exhausted retries. */\n onDropped?: (events: T[], error?: Error) => void;\n}\n\nexport interface PipelineDrainFn<T> {\n (ctx: T): void;\n /** Flush all buffered events. */\n flush: () => Promise<void>;\n /** Flush and stop scheduling future timer work. */\n shutdown: () => Promise<void>;\n readonly pending: number;\n}\n\nfunction wait(ms: number): Promise<void> {\n return new Promise((resolve) => {\n const timer = setTimeout(resolve, ms);\n timer.unref?.();\n });\n}\n\nexport function createDrainPipeline<T = unknown>(\n options?: DrainPipelineOptions<T>,\n): (drain: (batch: T[]) => void | Promise<void>) => PipelineDrainFn<T> {\n const batchSize = options?.batch?.size ?? 50;\n const intervalMs = options?.batch?.intervalMs ?? 5000;\n const maxBufferSize = options?.maxBufferSize ?? 1000;\n const maxAttempts = options?.retry?.maxAttempts ?? 3;\n const backoff = options?.retry?.backoff ?? 'exponential';\n const initialDelayMs = options?.retry?.initialDelayMs ?? 1000;\n const maxDelayMs = options?.retry?.maxDelayMs ?? 30_000;\n const jitter = options?.retry?.jitter ?? true;\n const dropPolicy = options?.dropPolicy ?? 'oldest';\n const onDropped = options?.onDropped;\n\n if (!Number.isFinite(batchSize) || batchSize <= 0) {\n throw new Error(\n `[autotel/drain-pipeline] batch.size must be a positive finite number, got: ${batchSize}`,\n );\n }\n if (!Number.isFinite(intervalMs) || intervalMs <= 0) {\n throw new Error(\n `[autotel/drain-pipeline] batch.intervalMs must be a positive finite number, got: ${intervalMs}`,\n );\n }\n if (!Number.isFinite(maxBufferSize) || maxBufferSize <= 0) {\n throw new Error(\n `[autotel/drain-pipeline] maxBufferSize must be a positive finite number, got: ${maxBufferSize}`,\n );\n }\n if (!Number.isFinite(maxAttempts) || maxAttempts <= 0) {\n throw new Error(\n `[autotel/drain-pipeline] retry.maxAttempts must be a positive finite number, got: ${maxAttempts}`,\n );\n }\n\n return (drain: (batch: T[]) => void | Promise<void>): PipelineDrainFn<T> => {\n const buffer: T[] = [];\n let timer: ReturnType<typeof setTimeout> | null = null;\n let activeFlush: Promise<void> | null = null;\n let isShutdown = false;\n\n const clearTimer = () => {\n if (timer) {\n clearTimeout(timer);\n timer = null;\n }\n };\n\n const computeDelay = (attempt: number): number => {\n const base =\n backoff === 'fixed'\n ? initialDelayMs\n : backoff === 'linear'\n ? initialDelayMs * attempt\n : initialDelayMs * 2 ** (attempt - 1);\n\n const bounded = Math.min(base, maxDelayMs);\n if (!jitter || bounded <= 0) return bounded;\n const factor = 0.5 + Math.random(); // [0.5, 1.5)\n return Math.max(0, Math.round(bounded * factor));\n };\n\n const sendWithRetry = async (batch: T[]): Promise<void> => {\n let lastError: Error | undefined;\n for (let attempt = 1; attempt <= maxAttempts; attempt++) {\n try {\n await drain(batch);\n return;\n } catch (error) {\n lastError = error instanceof Error ? error : new Error(String(error));\n if (attempt < maxAttempts) {\n await wait(computeDelay(attempt));\n }\n }\n }\n onDropped?.(batch, lastError);\n };\n\n const drainBuffer = async (): Promise<void> => {\n while (buffer.length > 0) {\n const batch = buffer.splice(0, batchSize);\n await sendWithRetry(batch);\n }\n };\n\n const scheduleFlush = () => {\n if (isShutdown || timer || activeFlush) return;\n timer = setTimeout(() => {\n timer = null;\n startFlush();\n }, intervalMs);\n timer.unref?.();\n };\n\n const startFlush = () => {\n if (activeFlush || isShutdown) return;\n activeFlush = drainBuffer().finally(() => {\n activeFlush = null;\n if (isShutdown) return;\n if (buffer.length >= batchSize) {\n startFlush();\n } else if (buffer.length > 0) {\n scheduleFlush();\n }\n });\n };\n\n const push = (ctx: T) => {\n if (isShutdown) return;\n\n if (buffer.length >= maxBufferSize) {\n if (dropPolicy === 'newest') {\n onDropped?.([ctx]);\n return;\n }\n const dropped = buffer.splice(0, 1);\n onDropped?.(dropped);\n }\n\n buffer.push(ctx);\n if (buffer.length >= batchSize) {\n clearTimer();\n startFlush();\n } else {\n scheduleFlush();\n }\n };\n\n const flush = async (): Promise<void> => {\n clearTimer();\n if (activeFlush) await activeFlush;\n\n const snapshot = buffer.length;\n if (snapshot <= 0) return;\n const toFlush = buffer.splice(0, snapshot);\n while (toFlush.length > 0) {\n const batch = toFlush.splice(0, batchSize);\n await sendWithRetry(batch);\n }\n };\n\n const shutdown = async (): Promise<void> => {\n isShutdown = true;\n await flush();\n };\n\n const fn = push as PipelineDrainFn<T>;\n fn.flush = flush;\n fn.shutdown = shutdown;\n Object.defineProperty(fn, 'pending', {\n enumerable: true,\n get: () => buffer.length,\n });\n return fn;\n };\n}\n"]}