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
@@ -0,0 +1,1157 @@
1
+ import { a as AttributeRedactorPreset, r as AttributeRedactorConfig } from "./attribute-redacting-processor-DtTS9xxh.js";
2
+ import { s as Logger } from "./logger-BauSUhUv.js";
3
+ import { f as SamplingPreset, u as Sampler } from "./sampling-CR0Va1VB.js";
4
+ import { a as EventSubscriber } from "./event-subscriber-D1XLkPzi.js";
5
+ import { r as SpanFilterPredicate } from "./filtering-span-processor-B8R8B7Uk.js";
6
+ import { r as SpanNameNormalizerConfig } from "./span-name-normalizer-8ZOGJuwv.js";
7
+ import { t as CanonicalLogLineOptions } from "./canonical-log-line-processor-BcRuAdRk.js";
8
+ import { NodeSDK, NodeSDKConfiguration } from "@opentelemetry/sdk-node";
9
+ import { SpanExporter, SpanProcessor } from "@opentelemetry/sdk-trace-base";
10
+ import { Resource } from "@opentelemetry/resources";
11
+ import { Attributes } from "@opentelemetry/api";
12
+ import { MetricReader } from "@opentelemetry/sdk-metrics";
13
+ import { LogRecordProcessor } from "@opentelemetry/sdk-logs";
14
+
15
+ //#region src/validation.d.ts
16
+ interface ValidationConfig {
17
+ /** Max event name length (default: 100) */
18
+ maxEventNameLength: number;
19
+ /** Max attribute key length (default: 100) */
20
+ maxAttributeKeyLength: number;
21
+ /** Max attribute value length for strings (default: 1000) */
22
+ maxAttributeValueLength: number;
23
+ /** Max total attributes per event (default: 50) */
24
+ maxAttributeCount: number;
25
+ /** Max nesting depth for objects (default: 3) */
26
+ maxNestingDepth: number;
27
+ /** Sensitive field patterns to redact */
28
+ sensitivePatterns: RegExp[];
29
+ }
30
+ //#endregion
31
+ //#region src/redact-values.d.ts
32
+ type StringRedactor = (value: string) => string;
33
+ declare function createStringRedactor(config: AttributeRedactorConfig | AttributeRedactorPreset): StringRedactor;
34
+ //#endregion
35
+ //#region src/events-config.d.ts
36
+ /**
37
+ * Events configuration types for trace context, correlation IDs, and enrichment
38
+ *
39
+ * @example Basic usage
40
+ * ```typescript
41
+ * import { init } from 'autotel';
42
+ *
43
+ * init({
44
+ * service: 'my-app',
45
+ * events: {
46
+ * includeTraceContext: true,
47
+ * traceUrl: (ctx) => `https://grafana.internal/explore?traceId=${ctx.traceId}`
48
+ * }
49
+ * });
50
+ * ```
51
+ */
52
+ /**
53
+ * Context passed to the traceUrl function for generating clickable trace URLs
54
+ */
55
+ interface TraceUrlContext {
56
+ /** Trace ID (32 hex chars) - may be undefined outside a trace */
57
+ traceId?: string;
58
+ /** Span ID (16 hex chars) - may be undefined outside a trace */
59
+ spanId?: string;
60
+ /** Correlation ID (always present, 16 hex chars) */
61
+ correlationId: string;
62
+ /** Service name from init config */
63
+ serviceName: string;
64
+ /** Environment from init config */
65
+ environment?: string;
66
+ }
67
+ /**
68
+ * Per-key transform options for baggage enrichment
69
+ */
70
+ type BaggageTransform = 'plain' | 'hash' | ((value: string) => string);
71
+ /**
72
+ * Baggage enrichment configuration with guardrails
73
+ */
74
+ interface EnrichFromBaggageConfig {
75
+ /**
76
+ * Allowlist of baggage keys to include in events
77
+ * Supports exact matches and patterns (e.g., 'tenant.*')
78
+ */
79
+ allow: string[];
80
+ /**
81
+ * Optional denylist of baggage keys to exclude
82
+ * Takes precedence over allow list
83
+ */
84
+ deny?: string[];
85
+ /**
86
+ * Optional prefix to add to all enriched keys
87
+ * @example 'ctx.' results in 'ctx.tenant.id'
88
+ */
89
+ prefix?: string;
90
+ /**
91
+ * Maximum number of keys to include (default: 10)
92
+ * Prevents payload bloat from excessive baggage
93
+ */
94
+ maxKeys?: number;
95
+ /**
96
+ * Maximum total bytes for enriched values (default: 1024)
97
+ * Prevents payload bloat from large baggage values
98
+ */
99
+ maxBytes?: number;
100
+ /**
101
+ * Per-key transform options
102
+ * - 'plain': Include value as-is
103
+ * - 'hash': Hash the value (for PII protection)
104
+ * - function: Custom transform function
105
+ *
106
+ * @example
107
+ * ```typescript
108
+ * transform: {
109
+ * 'user.id': 'hash', // Hash user ID for privacy
110
+ * 'tenant.id': 'plain', // Include tenant ID as-is
111
+ * 'session.id': (v) => v.slice(0, 8) // Custom truncation
112
+ * }
113
+ * ```
114
+ */
115
+ transform?: Record<string, BaggageTransform>;
116
+ }
117
+ /**
118
+ * Events configuration for trace context and enrichment
119
+ */
120
+ interface EventsConfig {
121
+ /**
122
+ * Include trace context in events (default: false)
123
+ *
124
+ * When enabled, events automatically include:
125
+ * - autotel.trace_id (32 hex chars)
126
+ * - autotel.span_id (16 hex chars)
127
+ * - autotel.trace_flags (2 hex chars)
128
+ * - autotel.trace_state (raw tracestate string, if present)
129
+ * - autotel.correlation_id (always present, 16 hex chars)
130
+ *
131
+ * Subscribers map these to platform-specific names:
132
+ * - PostHog: $trace_id, $span_id
133
+ * - Mixpanel: trace_id, span_id
134
+ */
135
+ includeTraceContext?: boolean;
136
+ /**
137
+ * Include full array of linked trace IDs for batch/fan-in scenarios (default: false)
138
+ *
139
+ * When false (default), batch/fan-in events include:
140
+ * - autotel.linked_trace_id_count: Number of linked parents
141
+ * - autotel.linked_trace_id_hash: Stable hash of sorted IDs (keeps payload lean)
142
+ *
143
+ * When true, events also include:
144
+ * - autotel.linked_trace_ids: Full array of linked trace IDs
145
+ */
146
+ includeLinkedTraceIds?: boolean;
147
+ /**
148
+ * Generate clickable trace URL from context
149
+ *
150
+ * @param ctx - Trace context with traceId, spanId, correlationId, serviceName, environment
151
+ * @returns URL string or undefined to skip
152
+ *
153
+ * @example Grafana Tempo
154
+ * ```typescript
155
+ * traceUrl: (ctx) => ctx.traceId
156
+ * ? `https://grafana.internal/explore?traceId=${ctx.traceId}`
157
+ * : undefined
158
+ * ```
159
+ *
160
+ * @example Datadog
161
+ * ```typescript
162
+ * traceUrl: (ctx) => ctx.traceId
163
+ * ? `https://app.datadoghq.com/apm/traces?traceId=${ctx.traceId}`
164
+ * : undefined
165
+ * ```
166
+ *
167
+ * @example Jaeger
168
+ * ```typescript
169
+ * traceUrl: (ctx) => ctx.traceId
170
+ * ? `https://jaeger.internal/trace/${ctx.traceId}`
171
+ * : undefined
172
+ * ```
173
+ */
174
+ traceUrl?: (ctx: TraceUrlContext) => string | undefined;
175
+ /**
176
+ * Auto-enrich events from baggage with guardrails
177
+ *
178
+ * Automatically includes baggage entries in events without manual code.
179
+ * Apply allow/deny lists and per-key transforms for PII protection.
180
+ *
181
+ * @example Basic allowlist
182
+ * ```typescript
183
+ * enrichFromBaggage: {
184
+ * allow: ['tenant.id', 'user.id', 'request.id']
185
+ * }
186
+ * // Events include: tenant.id, user.id, request.id from baggage
187
+ * ```
188
+ *
189
+ * @example With prefix and transforms
190
+ * ```typescript
191
+ * enrichFromBaggage: {
192
+ * allow: ['tenant.id', 'user.id', 'user.email'],
193
+ * deny: ['user.ssn'],
194
+ * prefix: 'ctx.',
195
+ * transform: {
196
+ * 'user.id': 'hash',
197
+ * 'user.email': 'hash'
198
+ * }
199
+ * }
200
+ * // Events include: ctx.tenant.id, ctx.user.id (hashed), ctx.user.email (hashed)
201
+ * ```
202
+ */
203
+ enrichFromBaggage?: EnrichFromBaggageConfig;
204
+ }
205
+ //#endregion
206
+ //#region src/devtools.d.ts
207
+ interface AutotelDevtoolsConfig {
208
+ enabled?: boolean;
209
+ endpoint?: string;
210
+ embedded?: boolean;
211
+ host?: string;
212
+ port?: number;
213
+ verbose?: boolean;
214
+ }
215
+ //#endregion
216
+ //#region src/init.d.ts
217
+ interface AutotelConfig {
218
+ /** Service name (required) */
219
+ service: string;
220
+ /**
221
+ * Local developer UX for autotel-devtools.
222
+ *
223
+ * - `true`: send traces, metrics, and logs to `http://127.0.0.1:4318`
224
+ * - `{ embedded: true }`: attempt to start `autotel-devtools` automatically
225
+ *
226
+ * When enabled:
227
+ * - `endpoint` defaults to the local devtools URL
228
+ * - `logs` default to `true` unless explicitly set
229
+ *
230
+ * This keeps production config unchanged while making local debugging
231
+ * effectively zero-config.
232
+ */
233
+ devtools?: boolean | AutotelDevtoolsConfig;
234
+ /** Event subscribers - bring your own (PostHog, Mixpanel, etc.) */
235
+ subscribers?: EventSubscriber[];
236
+ /**
237
+ * Additional OpenTelemetry instrumentations to register (raw OTel classes).
238
+ * Useful when you need custom instrumentation configs or instrumentations
239
+ * not covered by autoInstrumentations.
240
+ *
241
+ * **Important:** If you need custom instrumentation configs (like `requireParentSpan: false`),
242
+ * use EITHER manual instrumentations OR autoInstrumentations, not both for the same library.
243
+ * Manual instrumentations always take precedence over auto-instrumentations.
244
+ *
245
+ * @example Manual instrumentations with custom config
246
+ * ```typescript
247
+ * import { MongoDBInstrumentation } from '@opentelemetry/instrumentation-mongodb'
248
+ *
249
+ * init({
250
+ * service: 'my-app',
251
+ * autoInstrumentations: false, // Disable auto-instrumentations
252
+ * instrumentations: [
253
+ * new MongoDBInstrumentation({
254
+ * requireParentSpan: false // Custom config
255
+ * })
256
+ * ]
257
+ * })
258
+ * ```
259
+ *
260
+ * @example Mix auto + manual (auto for most, manual for specific configs)
261
+ * ```typescript
262
+ * import { MongoDBInstrumentation } from '@opentelemetry/instrumentation-mongodb'
263
+ *
264
+ * init({
265
+ * service: 'my-app',
266
+ * autoInstrumentations: ['http', 'express'], // Auto for these
267
+ * instrumentations: [
268
+ * new MongoDBInstrumentation({
269
+ * requireParentSpan: false // Manual config for MongoDB
270
+ * })
271
+ * ]
272
+ * })
273
+ * ```
274
+ */
275
+ instrumentations?: NodeSDKConfiguration['instrumentations'];
276
+ /**
277
+ * Simple names for auto-instrumentation.
278
+ * Uses @opentelemetry/auto-instrumentations-node (peer dependency).
279
+ *
280
+ * **Important:** If you provide manual instrumentations for the same library,
281
+ * the manual config takes precedence and auto-instrumentation for that library is disabled.
282
+ *
283
+ * @example Enable all auto-instrumentations (simple approach)
284
+ * ```typescript
285
+ * init({
286
+ * service: 'my-app',
287
+ * autoInstrumentations: true // Enable all with defaults
288
+ * })
289
+ * ```
290
+ *
291
+ * @example Enable specific auto-instrumentations
292
+ * ```typescript
293
+ * init({
294
+ * service: 'my-app',
295
+ * autoInstrumentations: ['express', 'pino', 'http']
296
+ * })
297
+ * ```
298
+ *
299
+ * @example Configure specific auto-instrumentations
300
+ * ```typescript
301
+ * init({
302
+ * service: 'my-app',
303
+ * autoInstrumentations: {
304
+ * express: { enabled: true },
305
+ * pino: { enabled: true },
306
+ * http: { enabled: false }
307
+ * }
308
+ * })
309
+ * ```
310
+ *
311
+ * @example Manual config when you need custom settings
312
+ * ```typescript
313
+ * import { MongoDBInstrumentation } from '@opentelemetry/instrumentation-mongodb'
314
+ *
315
+ * init({
316
+ * service: 'my-app',
317
+ * autoInstrumentations: false, // Use manual control
318
+ * instrumentations: [
319
+ * new MongoDBInstrumentation({
320
+ * requireParentSpan: false // Custom config not available with auto
321
+ * })
322
+ * ]
323
+ * })
324
+ * ```
325
+ */
326
+ autoInstrumentations?: string[] | boolean | Record<string, {
327
+ enabled?: boolean;
328
+ }>;
329
+ /**
330
+ * OTLP endpoint for traces/metrics/logs
331
+ * Only used if you don't provide custom exporters/processors
332
+ * @default process.env.OTLP_ENDPOINT || 'http://localhost:4318'
333
+ */
334
+ endpoint?: string;
335
+ /**
336
+ * Custom span processors for traces (supports multiple processors)
337
+ * Allows you to use any backend: Jaeger, Zipkin, Datadog, New Relic, etc.
338
+ * If not provided, defaults to OTLP with tail sampling
339
+ *
340
+ * @example Multiple processors
341
+ * ```typescript
342
+ * import { JaegerExporter } from '@opentelemetry/exporter-jaeger'
343
+ * import { BatchSpanProcessor, SimpleSpanProcessor, ConsoleSpanExporter } from '@opentelemetry/sdk-trace-base'
344
+ *
345
+ * init({
346
+ * service: 'my-app',
347
+ * spanProcessors: [
348
+ * new BatchSpanProcessor(new JaegerExporter()),
349
+ * new SimpleSpanProcessor(new ConsoleSpanExporter()) // Debug alongside production
350
+ * ]
351
+ * })
352
+ * ```
353
+ *
354
+ * @example Single processor
355
+ * ```typescript
356
+ * import { ConsoleSpanExporter, SimpleSpanProcessor } from '@opentelemetry/sdk-trace-base'
357
+ *
358
+ * init({
359
+ * service: 'my-app',
360
+ * spanProcessors: [new SimpleSpanProcessor(new ConsoleSpanExporter())]
361
+ * })
362
+ * ```
363
+ */
364
+ spanProcessors?: SpanProcessor[];
365
+ /**
366
+ * Custom span processor for traces (single-item alias of spanProcessors)
367
+ * @deprecated Use spanProcessors for consistency with other multi-value config fields
368
+ */
369
+ spanProcessor?: SpanProcessor;
370
+ /**
371
+ * Custom span exporters for traces (alternative to spanProcessors, supports multiple exporters)
372
+ * Provide either spanProcessors OR spanExporters, not both
373
+ * Each exporter will be wrapped in TailSamplingSpanProcessor + BatchSpanProcessor
374
+ *
375
+ * @example Multiple exporters
376
+ * ```typescript
377
+ * import { ZipkinExporter } from '@opentelemetry/exporter-zipkin'
378
+ * import { JaegerExporter } from '@opentelemetry/exporter-jaeger'
379
+ *
380
+ * init({
381
+ * service: 'my-app',
382
+ * spanExporters: [
383
+ * new ZipkinExporter({ url: 'http://localhost:9411/api/v2/spans' }),
384
+ * new JaegerExporter() // Send to multiple backends simultaneously
385
+ * ]
386
+ * })
387
+ * ```
388
+ *
389
+ * @example Single exporter
390
+ * ```typescript
391
+ * import { ZipkinExporter } from '@opentelemetry/exporter-zipkin'
392
+ *
393
+ * init({
394
+ * service: 'my-app',
395
+ * spanExporters: [new ZipkinExporter({ url: 'http://localhost:9411/api/v2/spans' })]
396
+ * })
397
+ * ```
398
+ */
399
+ spanExporters?: SpanExporter[];
400
+ /**
401
+ * Custom span exporter for traces (single-item alias of spanExporters)
402
+ * @deprecated Use spanExporters for consistency with other multi-value config fields
403
+ */
404
+ spanExporter?: SpanExporter;
405
+ /**
406
+ * Custom metric readers (supports multiple readers)
407
+ * Allows sending metrics to multiple backends: OTLP, Prometheus, custom readers
408
+ * Defaults to OTLP metrics exporter when metrics are enabled.
409
+ *
410
+ * @example Multiple metric readers
411
+ * ```typescript
412
+ * import { PeriodicExportingMetricReader } from '@opentelemetry/sdk-metrics'
413
+ * import { OTLPMetricExporter } from '@opentelemetry/exporter-metrics-otlp-http'
414
+ * import { PrometheusExporter } from '@opentelemetry/exporter-prometheus'
415
+ *
416
+ * init({
417
+ * service: 'my-app',
418
+ * metricReaders: [
419
+ * new PeriodicExportingMetricReader({ exporter: new OTLPMetricExporter() }),
420
+ * new PrometheusExporter() // Export to multiple backends
421
+ * ]
422
+ * })
423
+ * ```
424
+ */
425
+ metricReaders?: MetricReader[];
426
+ /**
427
+ * Custom metric reader (single-item alias of metricReaders)
428
+ * @deprecated Use metricReaders for consistency with other multi-value config fields
429
+ */
430
+ metricReader?: MetricReader;
431
+ /**
432
+ * Custom log record processors. When omitted, logs are not configured.
433
+ */
434
+ logRecordProcessors?: LogRecordProcessor[];
435
+ /**
436
+ * Custom log record processor (single-item alias of logRecordProcessors)
437
+ * @deprecated Use logRecordProcessors for consistency with other multi-value config fields
438
+ */
439
+ logRecordProcessor?: LogRecordProcessor;
440
+ /**
441
+ * PostHog integration - auto-configures OTLP log exporter.
442
+ *
443
+ * @example
444
+ * ```typescript
445
+ * init({
446
+ * service: 'my-app',
447
+ * posthog: { url: 'https://us.i.posthog.com/i/v1/logs?token=phc_xxx' }
448
+ * });
449
+ * ```
450
+ *
451
+ * Also reads from POSTHOG_LOGS_URL environment variable as fallback.
452
+ */
453
+ posthog?: {
454
+ url: string;
455
+ };
456
+ /** Additional resource attributes to merge with defaults. */
457
+ resourceAttributes?: Attributes;
458
+ /** Provide a fully custom Resource to merge (advanced use case). */
459
+ resource?: Resource;
460
+ /**
461
+ * Headers for OTLP exporters. Accepts either an object map or
462
+ * a "key=value" comma separated string.
463
+ *
464
+ * @example
465
+ * ```typescript
466
+ * init({
467
+ * service: 'my-app',
468
+ * endpoint: 'https://api.honeycomb.io',
469
+ * headers: { 'x-honeycomb-team': 'YOUR_API_KEY' }
470
+ * })
471
+ * ```
472
+ */
473
+ headers?: Record<string, string> | string;
474
+ /**
475
+ * OTLP protocol to use for traces, metrics, and logs
476
+ * - 'http': HTTP/protobuf (default, uses port 4318)
477
+ * - 'grpc': gRPC (uses port 4317)
478
+ *
479
+ * Can be overridden with OTEL_EXPORTER_OTLP_PROTOCOL env var.
480
+ *
481
+ * Note: gRPC exporters are optional peer dependencies. Install them with:
482
+ * ```bash
483
+ * pnpm add @opentelemetry/exporter-trace-otlp-grpc @opentelemetry/exporter-metrics-otlp-grpc
484
+ * ```
485
+ *
486
+ * @example HTTP (default)
487
+ * ```typescript
488
+ * init({
489
+ * service: 'my-app',
490
+ * protocol: 'http', // or omit (defaults to http)
491
+ * endpoint: 'http://localhost:4318'
492
+ * })
493
+ * ```
494
+ *
495
+ * @example gRPC
496
+ * ```typescript
497
+ * init({
498
+ * service: 'my-app',
499
+ * protocol: 'grpc',
500
+ * endpoint: 'grpc://localhost:4317'
501
+ * })
502
+ * ```
503
+ *
504
+ * @default 'http'
505
+ */
506
+ protocol?: 'http' | 'grpc';
507
+ /**
508
+ * Optional factory to build a customised NodeSDK instance from our defaults.
509
+ */
510
+ sdkFactory?: (defaults: Partial<NodeSDKConfiguration>) => NodeSDK;
511
+ /**
512
+ * Infrastructure metrics configuration
513
+ * - true: always enabled (default)
514
+ * - false: always disabled
515
+ * - 'auto': always enabled (same as true)
516
+ *
517
+ * Can be overridden with AUTOTEL_METRICS=on|off env var
518
+ */
519
+ metrics?: boolean | 'auto';
520
+ /**
521
+ * OTLP logs configuration
522
+ * - true: auto-configure OTLP log exporter from endpoint
523
+ * - false: disabled (default)
524
+ * - 'auto': same as false (opt-in only)
525
+ *
526
+ * When enabled and an endpoint is configured, autotel will automatically
527
+ * create a BatchLogRecordProcessor with an OTLPLogExporter - no manual
528
+ * imports needed. Works alongside logRecordProcessors (additive).
529
+ *
530
+ * Requires @opentelemetry/sdk-logs and @opentelemetry/exporter-logs-otlp-http
531
+ * (or -grpc) as peer dependencies.
532
+ *
533
+ * Can be overridden with AUTOTEL_LOGS=on|off env var.
534
+ *
535
+ * @example
536
+ * ```typescript
537
+ * init({
538
+ * service: 'my-app',
539
+ * endpoint: 'http://localhost:4318',
540
+ * logs: true,
541
+ * });
542
+ * ```
543
+ */
544
+ logs?: boolean | 'auto';
545
+ /** Sampling strategy - takes precedence over `sampling` preset */
546
+ sampler?: Sampler;
547
+ /**
548
+ * Sampling preset shorthand — resolves to a pre-configured sampler.
549
+ * If both `sampler` and `sampling` are provided, `sampler` takes precedence.
550
+ *
551
+ * @default 'production' (10% baseline + always-on for errors/slow)
552
+ *
553
+ * **Footgun for one-shot scripts:** the default samples ~90% of spans away,
554
+ * which means a fixture-capture script that emits a single normal span
555
+ * almost always sees zero output. For local debugging and capture use:
556
+ *
557
+ * ```typescript
558
+ * init({
559
+ * service: 'fixture-capture',
560
+ * spanProcessors: [new SimpleSpanProcessor(new InMemorySpanExporter())],
561
+ * sampling: 'development', // capture EVERY span
562
+ * });
563
+ * ```
564
+ *
565
+ * Read `exporter.getFinishedSpans()` **before** calling `shutdown()` —
566
+ * `InMemorySpanExporter.shutdown()` resets state.
567
+ */
568
+ sampling?: SamplingPreset;
569
+ /** Service version (default: auto-detect from package.json or '1.0.0') */
570
+ version?: string;
571
+ /** Environment (default: process.env.NODE_ENV || 'development') */
572
+ environment?: string;
573
+ /**
574
+ * Logger instance for internal autotel diagnostic messages
575
+ *
576
+ * This logger is used by autotel internally to log initialization, warnings,
577
+ * and debug information. Any logger with info/warn/error/debug methods works.
578
+ *
579
+ * **For OTel instrumentation of your application logs**, use the `autoInstrumentations` option:
580
+ * - `autoInstrumentations: ['pino']` - Injects traceId/spanId into Pino logs
581
+ * - `autoInstrumentations: ['winston']` - Injects traceId/spanId into Winston logs
582
+ *
583
+ * Default: silent logger (no-op)
584
+ *
585
+ * @example Pino with OTel instrumentation
586
+ * ```typescript
587
+ * import pino from 'pino'
588
+ * import { init } from 'autotel'
589
+ *
590
+ * const logger = pino({ level: 'info' })
591
+ * init({
592
+ * service: 'my-app',
593
+ * logger, // For autotel's internal logs
594
+ * autoInstrumentations: ['pino'] // For OTel trace context in YOUR logs
595
+ * })
596
+ * ```
597
+ *
598
+ * @example Custom logger for autotel diagnostics
599
+ * ```typescript
600
+ * const logger = {
601
+ * info: (msg, extra) => console.log(msg, extra),
602
+ * warn: (msg, extra) => console.warn(msg, extra),
603
+ * error: (msg, err, extra) => console.error(msg, err, extra),
604
+ * debug: (msg, extra) => console.debug(msg, extra),
605
+ * }
606
+ * init({ service: 'my-app', logger })
607
+ * ```
608
+ */
609
+ logger?: Logger;
610
+ /**
611
+ * Flush events queue when root spans end
612
+ * - true: Flush on root span completion (default)
613
+ * - false: Use batching (events flush every 10 seconds automatically)
614
+ *
615
+ * Only flushes on root spans to avoid excessive network calls.
616
+ * Default is true for serverless/short-lived processes. Set to false
617
+ * for long-running services where batching is more efficient.
618
+ */
619
+ flushOnRootSpanEnd?: boolean;
620
+ /**
621
+ * Force-flush OpenTelemetry spans on shutdown (default: false)
622
+ *
623
+ * When enabled, spans are force-flushed along with events on root
624
+ * span completion. This is useful for serverless/short-lived processes where
625
+ * spans may not export before the process ends.
626
+ *
627
+ * - true: Force-flush spans on root span completion (~50-200ms latency)
628
+ * - false: Spans export via normal batch processor (default behavior)
629
+ *
630
+ * Only applies when flushOnRootSpanEnd is also enabled.
631
+ *
632
+ * Note: For edge runtimes (Cloudflare Workers, Vercel Edge), use the
633
+ * 'autotel-edge' package instead, which handles this automatically.
634
+ *
635
+ * @example Serverless with force-flush
636
+ * ```typescript
637
+ * init({
638
+ * service: 'my-lambda',
639
+ * flushOnRootSpanEnd: true,
640
+ * forceFlushOnShutdown: true, // Force-flush spans
641
+ * });
642
+ * ```
643
+ */
644
+ forceFlushOnShutdown?: boolean;
645
+ /**
646
+ * Automatically copy baggage entries to span attributes
647
+ *
648
+ * When enabled, all baggage entries are automatically added as span attributes,
649
+ * making them visible in trace UIs (Jaeger, Grafana, DataDog, etc.) without
650
+ * manually calling ctx.setAttribute() for each entry.
651
+ *
652
+ * - `true`: adds baggage with 'baggage.' prefix (e.g. baggage.tenant.id)
653
+ * - `string`: uses custom prefix (e.g. 'ctx' → ctx.tenant.id, '' → tenant.id)
654
+ * - `false` or omit: disabled (default)
655
+ *
656
+ * @default false
657
+ *
658
+ * @example Enable with default prefix
659
+ * ```typescript
660
+ * init({
661
+ * service: 'my-app',
662
+ * baggage: true
663
+ * });
664
+ *
665
+ * // Now baggage automatically appears as span attributes
666
+ * await withBaggage({
667
+ * baggage: { 'tenant.id': 't1', 'user.id': 'u1' },
668
+ * fn: async () => {
669
+ * // Span has baggage.tenant.id and baggage.user.id attributes!
670
+ * }
671
+ * });
672
+ * ```
673
+ *
674
+ * @example Custom prefix
675
+ * ```typescript
676
+ * init({
677
+ * service: 'my-app',
678
+ * baggage: 'ctx' // Uses 'ctx.' prefix
679
+ * });
680
+ * // Creates attributes: ctx.tenant.id, ctx.user.id
681
+ * ```
682
+ *
683
+ * @example No prefix
684
+ * ```typescript
685
+ * init({
686
+ * service: 'my-app',
687
+ * baggage: '' // No prefix
688
+ * });
689
+ * // Creates attributes: tenant.id, user.id
690
+ * ```
691
+ */
692
+ baggage?: boolean | string;
693
+ /**
694
+ * Validation configuration for events events
695
+ * - Override default sensitive field patterns for redaction
696
+ * - Customize max lengths, nesting depth, etc.
697
+ *
698
+ * @example Disable redaction for development
699
+ * ```typescript
700
+ * init({
701
+ * service: 'my-app',
702
+ * validation: {
703
+ * sensitivePatterns: [] // Disable all redaction
704
+ * }
705
+ * })
706
+ * ```
707
+ *
708
+ * @example Add custom patterns
709
+ * ```typescript
710
+ * init({
711
+ * service: 'my-app',
712
+ * validation: {
713
+ * sensitivePatterns: [
714
+ * /password/i,
715
+ * /apiKey/i,
716
+ * /customSecret/i // Your custom pattern
717
+ * ]
718
+ * }
719
+ * })
720
+ * ```
721
+ */
722
+ validation?: Partial<ValidationConfig>;
723
+ /**
724
+ * Events configuration for trace context, correlation IDs, and enrichment
725
+ *
726
+ * Controls how product events integrate with distributed tracing:
727
+ * - `includeTraceContext`: Automatically include trace context in events
728
+ * - `includeLinkedTraceIds`: Include full array of linked trace IDs (for batch/fan-in)
729
+ * - `traceUrl`: Generate clickable trace URLs in events
730
+ * - `enrichFromBaggage`: Auto-enrich events from baggage with guardrails
731
+ *
732
+ * @example Basic trace context
733
+ * ```typescript
734
+ * init({
735
+ * service: 'my-app',
736
+ * events: {
737
+ * includeTraceContext: true
738
+ * }
739
+ * });
740
+ * // Events now include autotel.trace_id, autotel.span_id, autotel.correlation_id
741
+ * ```
742
+ *
743
+ * @example With clickable trace URLs
744
+ * ```typescript
745
+ * init({
746
+ * service: 'my-app',
747
+ * events: {
748
+ * includeTraceContext: true,
749
+ * traceUrl: (ctx) => `https://grafana.internal/explore?traceId=${ctx.traceId}`
750
+ * }
751
+ * });
752
+ * ```
753
+ *
754
+ * @example With baggage enrichment
755
+ * ```typescript
756
+ * init({
757
+ * service: 'my-app',
758
+ * events: {
759
+ * includeTraceContext: true,
760
+ * enrichFromBaggage: {
761
+ * allow: ['tenant.id', 'user.id'],
762
+ * prefix: 'ctx.',
763
+ * maxKeys: 10,
764
+ * maxBytes: 1024
765
+ * }
766
+ * }
767
+ * });
768
+ * ```
769
+ */
770
+ events?: EventsConfig;
771
+ /**
772
+ * Debug mode for local span inspection.
773
+ * Enables console output to help you see spans as they're created.
774
+ *
775
+ * - `true`: Raw JSON output (ConsoleSpanExporter)
776
+ * - `'pretty'`: Colorized, hierarchical output (PrettyConsoleExporter)
777
+ * - `false`/undefined: No console output (default)
778
+ *
779
+ * When enabled: Outputs spans to console AND sends to backend (if endpoint/exporter configured)
780
+ *
781
+ * Perfect for progressive development:
782
+ * - Start with debug: 'pretty' (no endpoint) → see traces immediately with nice formatting
783
+ * - Add endpoint later → console + backend, verify before choosing provider
784
+ * - Remove debug in production → backend only, clean production config
785
+ *
786
+ * Can be overridden with AUTOTEL_DEBUG environment variable.
787
+ *
788
+ * @example Pretty debug output (recommended for development)
789
+ * ```typescript
790
+ * init({
791
+ * service: 'my-app',
792
+ * debug: 'pretty' // Colorized, hierarchical output
793
+ * })
794
+ * ```
795
+ *
796
+ * @example Raw JSON output (verbose)
797
+ * ```typescript
798
+ * init({
799
+ * service: 'my-app',
800
+ * debug: true // Raw ConsoleSpanExporter output
801
+ * })
802
+ * ```
803
+ *
804
+ * @example Environment variable
805
+ * ```bash
806
+ * AUTOTEL_DEBUG=pretty node server.js
807
+ * AUTOTEL_DEBUG=true node server.js
808
+ * ```
809
+ */
810
+ debug?: boolean | 'pretty';
811
+ /**
812
+ * Filter predicate to drop unwanted spans before processing.
813
+ *
814
+ * Useful for filtering out noisy spans from specific instrumentations
815
+ * (e.g., Next.js internal spans, health check endpoints).
816
+ *
817
+ * The filter runs on completed spans (onEnd), so you have access to:
818
+ * - `span.name` - Span name
819
+ * - `span.attributes` - All span attributes
820
+ * - `span.instrumentationScope` - `{ name, version }` of the instrumentation
821
+ * - `span.status` - Span status code and message
822
+ * - `span.duration` - Span duration as `[seconds, nanoseconds]`
823
+ *
824
+ * Return `true` to keep the span, `false` to drop it.
825
+ *
826
+ * @example Filter out Next.js instrumentation spans
827
+ * ```typescript
828
+ * init({
829
+ * service: 'my-app',
830
+ * spanFilter: (span) => span.instrumentationScope.name !== 'next.js'
831
+ * })
832
+ * ```
833
+ *
834
+ * @example Filter out health check spans
835
+ * ```typescript
836
+ * init({
837
+ * service: 'my-app',
838
+ * spanFilter: (span) => !span.name.includes('/health')
839
+ * })
840
+ * ```
841
+ *
842
+ * @example Complex filtering (multiple conditions)
843
+ * ```typescript
844
+ * init({
845
+ * service: 'my-app',
846
+ * spanFilter: (span) => {
847
+ * // Drop Next.js internal spans
848
+ * if (span.instrumentationScope.name === 'next.js') return false;
849
+ * // Drop health checks
850
+ * if (span.name.includes('/health')) return false;
851
+ * // Drop very short spans (less than 1ms)
852
+ * const [secs, nanos] = span.duration;
853
+ * if (secs === 0 && nanos < 1_000_000) return false;
854
+ * return true;
855
+ * }
856
+ * })
857
+ * ```
858
+ */
859
+ spanFilter?: SpanFilterPredicate;
860
+ /**
861
+ * Normalize span names to reduce cardinality from dynamic path segments.
862
+ *
863
+ * High-cardinality span names (e.g., `/users/123/posts/456`) cause issues:
864
+ * - Cost explosions in observability backends
865
+ * - Cardinality limits exceeded
866
+ * - Poor UX when searching/filtering traces
867
+ *
868
+ * The normalizer transforms dynamic segments into placeholders:
869
+ * - `/users/123` → `/users/:id`
870
+ * - `/items/550e8400-e29b-...` → `/items/:uuid`
871
+ *
872
+ * Provide either a custom function or use a built-in preset:
873
+ * - `'rest-api'` - Numeric IDs, UUIDs, ObjectIds, dates, timestamps, emails
874
+ * - `'graphql'` - GraphQL operation name normalization
875
+ * - `'minimal'` - Only numeric IDs and UUIDs
876
+ *
877
+ * @example Custom normalizer function
878
+ * ```typescript
879
+ * init({
880
+ * service: 'my-app',
881
+ * spanNameNormalizer: (name) => {
882
+ * return name
883
+ * .replace(/\/[0-9]+/g, '/:id')
884
+ * .replace(/\/[a-f0-9-]{36}/gi, '/:uuid');
885
+ * }
886
+ * })
887
+ * ```
888
+ *
889
+ * @example Using built-in preset
890
+ * ```typescript
891
+ * init({
892
+ * service: 'my-app',
893
+ * spanNameNormalizer: 'rest-api'
894
+ * })
895
+ * ```
896
+ *
897
+ * @example Combining with spanFilter
898
+ * ```typescript
899
+ * init({
900
+ * service: 'my-app',
901
+ * spanNameNormalizer: 'rest-api',
902
+ * spanFilter: (span) => span.instrumentationScope.name !== 'next.js'
903
+ * })
904
+ * ```
905
+ */
906
+ spanNameNormalizer?: SpanNameNormalizerConfig;
907
+ /**
908
+ * Automatically redact PII and sensitive data from span attributes before export.
909
+ * Critical for compliance (GDPR, PCI-DSS, HIPAA) and data security.
910
+ *
911
+ * Auto-enabled in production: when this is left unset and the resolved
912
+ * environment is `production`, the `'default'` preset is applied. Override
913
+ * with the `AUTOTEL_REDACT_PII` env var (`off` / `strict` / `pci-dss` / ...)
914
+ * or pass `false` to disable redaction entirely.
915
+ *
916
+ * Can be a preset name, custom configuration, or `false` to disable:
917
+ * - `'default'`: Emails, phones, SSNs, credit cards, sensitive keys (password, secret, token)
918
+ * - `'strict'`: Default + Bearer tokens, JWTs, API keys in values
919
+ * - `'pci-dss'`: Payment card industry focus (credit cards, CVV, card-related keys)
920
+ *
921
+ * @example Use default preset
922
+ * ```typescript
923
+ * init({
924
+ * service: 'my-app',
925
+ * attributeRedactor: 'default'
926
+ * })
927
+ * ```
928
+ *
929
+ * @example Custom patterns
930
+ * ```typescript
931
+ * init({
932
+ * service: 'my-app',
933
+ * attributeRedactor: {
934
+ * keyPatterns: [/password/i, /secret/i],
935
+ * valuePatterns: [
936
+ * { name: 'customerId', pattern: /CUST-\d{8}/g, replacement: 'CUST-***' }
937
+ * ]
938
+ * }
939
+ * })
940
+ * ```
941
+ *
942
+ * @example Custom redactor function
943
+ * ```typescript
944
+ * init({
945
+ * service: 'my-app',
946
+ * attributeRedactor: {
947
+ * redactor: (key, value) => {
948
+ * if (key === 'user.email' && typeof value === 'string') {
949
+ * return value.replace(/@.+/, '@[REDACTED]');
950
+ * }
951
+ * return value;
952
+ * }
953
+ * }
954
+ * })
955
+ * ```
956
+ */
957
+ attributeRedactor?: AttributeRedactorConfig | AttributeRedactorPreset | false;
958
+ /**
959
+ * OpenLLMetry integration for LLM observability.
960
+ * Requires @traceloop/node-server-sdk as an optional peer dependency.
961
+ *
962
+ * @example Enable OpenLLMetry with default settings
963
+ * ```typescript
964
+ * init({
965
+ * service: 'my-app',
966
+ * openllmetry: { enabled: true }
967
+ * })
968
+ * ```
969
+ *
970
+ * @example Enable with custom options
971
+ * ```typescript
972
+ * init({
973
+ * service: 'my-app',
974
+ * openllmetry: {
975
+ * enabled: true,
976
+ * options: {
977
+ * disableBatch: process.env.NODE_ENV !== 'production',
978
+ * apiKey: process.env.TRACELOOP_API_KEY
979
+ * }
980
+ * }
981
+ * })
982
+ * ```
983
+ */
984
+ openllmetry?: {
985
+ enabled: boolean;
986
+ options?: Record<string, unknown>;
987
+ };
988
+ /**
989
+ * Canonical log lines - automatically emit spans as wide events (canonical log lines)
990
+ *
991
+ * When enabled, each span (or root span only) is automatically emitted as a
992
+ * comprehensive log record with ALL span attributes. This implements the
993
+ * "canonical log line" pattern: one comprehensive event per request with all context.
994
+ *
995
+ * **Benefits:**
996
+ * - One log line per request with all context (wide event)
997
+ * - High-cardinality, high-dimensionality data for powerful queries
998
+ * - Automatic - no manual logging needed
999
+ * - Queryable as structured data instead of string search
1000
+ *
1001
+ * @example Basic usage (one canonical log line per request)
1002
+ * ```typescript
1003
+ * init({
1004
+ * service: 'checkout-api',
1005
+ * canonicalLogLines: {
1006
+ * enabled: true,
1007
+ * rootSpansOnly: true, // One canonical log line per request
1008
+ * },
1009
+ * });
1010
+ * ```
1011
+ *
1012
+ * @example With custom logger
1013
+ * ```typescript
1014
+ * import pino from 'pino';
1015
+ * const logger = pino();
1016
+ * init({
1017
+ * service: 'my-app',
1018
+ * logger,
1019
+ * canonicalLogLines: {
1020
+ * enabled: true,
1021
+ * logger, // Use Pino for canonical log lines
1022
+ * rootSpansOnly: true,
1023
+ * },
1024
+ * });
1025
+ * ```
1026
+ *
1027
+ * @example Custom message format
1028
+ * ```typescript
1029
+ * init({
1030
+ * service: 'my-app',
1031
+ * canonicalLogLines: {
1032
+ * enabled: true,
1033
+ * messageFormat: (span) => {
1034
+ * const status = span.status.code === 2 ? 'ERROR' : 'SUCCESS';
1035
+ * return `${span.name} [${status}]`;
1036
+ * },
1037
+ * },
1038
+ * });
1039
+ * ```
1040
+ */
1041
+ canonicalLogLines?: {
1042
+ enabled: boolean; /** Logger to use for emitting canonical log lines (defaults to OTel Logs API) */
1043
+ logger?: Logger; /** Only emit canonical log lines for root spans (default: false) */
1044
+ rootSpansOnly?: boolean; /** Minimum log level for canonical log lines (default: 'info') */
1045
+ minLevel?: 'debug' | 'info' | 'warn' | 'error'; /** Custom message format (default: uses span name) */
1046
+ messageFormat?: (span: import('@opentelemetry/sdk-trace-base').ReadableSpan) => string; /** Whether to include resource attributes (default: true) */
1047
+ includeResourceAttributes?: boolean; /** Predicate to decide whether to emit (runs after event is built). */
1048
+ shouldEmit?: CanonicalLogLineOptions['shouldEmit'];
1049
+ /**
1050
+ * Declarative tail sampling conditions (OR logic).
1051
+ * Ignored when `shouldEmit` is provided.
1052
+ * @example keep: [{ status: 500 }, { durationMs: 1000 }]
1053
+ */
1054
+ keep?: CanonicalLogLineOptions['keep']; /** Callback invoked after emit for custom fan-out. */
1055
+ drain?: CanonicalLogLineOptions['drain']; /** Handler for drain failures. */
1056
+ onDrainError?: CanonicalLogLineOptions['onDrainError'];
1057
+ /**
1058
+ * Pretty-print canonical log lines to console.
1059
+ * Defaults to true when NODE_ENV is 'development'.
1060
+ */
1061
+ pretty?: boolean;
1062
+ };
1063
+ /**
1064
+ * Suppress console output while keeping OTel exporters running.
1065
+ * Useful for platforms like GCP Cloud Run / AWS Lambda where stdout
1066
+ * is managed externally by the platform's log collector.
1067
+ *
1068
+ * @default false
1069
+ */
1070
+ silent?: boolean;
1071
+ /**
1072
+ * Minimum log level for internal autotel diagnostic messages.
1073
+ * Messages below this level are dropped before processing.
1074
+ *
1075
+ * @default 'info'
1076
+ */
1077
+ minLevel?: 'debug' | 'info' | 'warn' | 'error';
1078
+ }
1079
+ /**
1080
+ * Lock the logger to prevent further `init()` calls.
1081
+ * Use this when framework plugins set up instrumentation and you want
1082
+ * to prevent accidental re-initialization from user code.
1083
+ */
1084
+ declare function lockLogger(): void;
1085
+ /**
1086
+ * Check if the logger has been locked.
1087
+ */
1088
+ declare function isLoggerLocked(): boolean;
1089
+ /**
1090
+ * Initialize autotel - Write Once, Observe Everywhere
1091
+ *
1092
+ * Follows OpenTelemetry standards: opinionated defaults with full flexibility
1093
+ * Idempotent: multiple calls are safe, last one wins
1094
+ *
1095
+ * @example Minimal setup (OTLP default)
1096
+ * ```typescript
1097
+ * init({ service: 'my-app' })
1098
+ * ```
1099
+ *
1100
+ * @example With events (observe in PostHog, Mixpanel, etc.)
1101
+ * ```typescript
1102
+ * import { PostHogSubscriber } from 'autotel-subscribers/posthog';
1103
+ *
1104
+ * init({
1105
+ * service: 'my-app',
1106
+ * subscribers: [new PostHogSubscriber({ apiKey: '...' })]
1107
+ * })
1108
+ * ```
1109
+ *
1110
+ * @example Observe in Jaeger
1111
+ * ```typescript
1112
+ * import { JaegerExporter } from '@opentelemetry/exporter-jaeger'
1113
+ *
1114
+ * init({
1115
+ * service: 'my-app',
1116
+ * spanExporter: new JaegerExporter({ endpoint: 'http://localhost:14268/api/traces' })
1117
+ * })
1118
+ * ```
1119
+ *
1120
+ * @example Observe in Zipkin
1121
+ * ```typescript
1122
+ * import { ZipkinExporter } from '@opentelemetry/exporter-zipkin'
1123
+ *
1124
+ * init({
1125
+ * service: 'my-app',
1126
+ * spanExporter: new ZipkinExporter({ url: 'http://localhost:9411/api/v2/spans' })
1127
+ * })
1128
+ * ```
1129
+ *
1130
+ * @example Observe in Datadog
1131
+ * ```typescript
1132
+ * import { DatadogSpanProcessor } from '@opentelemetry/exporter-datadog'
1133
+ *
1134
+ * init({
1135
+ * service: 'my-app',
1136
+ * spanProcessor: new DatadogSpanProcessor({ ... })
1137
+ * })
1138
+ * ```
1139
+ *
1140
+ * @example Console output (dev)
1141
+ * ```typescript
1142
+ * import { ConsoleSpanExporter, SimpleSpanProcessor } from '@opentelemetry/sdk-trace-base'
1143
+ *
1144
+ * init({
1145
+ * service: 'my-app',
1146
+ * spanProcessor: new SimpleSpanProcessor(new ConsoleSpanExporter())
1147
+ * })
1148
+ * ```
1149
+ */
1150
+ declare function init(cfg: AutotelConfig): void;
1151
+ /**
1152
+ * Check if autotel has been initialized
1153
+ */
1154
+ declare function isInitialized(): boolean;
1155
+ //#endregion
1156
+ export { lockLogger as a, isLoggerLocked as i, init as n, StringRedactor as o, isInitialized as r, createStringRedactor as s, AutotelConfig as t };
1157
+ //# sourceMappingURL=init-DJQOdVlN.d.ts.map