autotel 3.6.0 → 4.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (617) hide show
  1. package/dist/attribute-redacting-processor-DtTS9xxh.d.cts +175 -0
  2. package/dist/attribute-redacting-processor-DtTS9xxh.d.cts.map +1 -0
  3. package/dist/attribute-redacting-processor-DtTS9xxh.d.ts +175 -0
  4. package/dist/attribute-redacting-processor-DtTS9xxh.d.ts.map +1 -0
  5. package/dist/attribute-redacting-processor.cjs +374 -33
  6. package/dist/attribute-redacting-processor.cjs.map +1 -1
  7. package/dist/attribute-redacting-processor.d.cts +2 -207
  8. package/dist/attribute-redacting-processor.d.ts +2 -207
  9. package/dist/attribute-redacting-processor.js +368 -2
  10. package/dist/attribute-redacting-processor.js.map +1 -1
  11. package/dist/attributes-CmYpdqCN.js +591 -0
  12. package/dist/attributes-CmYpdqCN.js.map +1 -0
  13. package/dist/attributes-PZ5doLgw.cjs +704 -0
  14. package/dist/attributes-PZ5doLgw.cjs.map +1 -0
  15. package/dist/attributes.cjs +21 -85
  16. package/dist/attributes.d.cts +2 -20
  17. package/dist/attributes.d.ts +2 -20
  18. package/dist/attributes.js +3 -5
  19. package/dist/auto.cjs +50 -28
  20. package/dist/auto.cjs.map +1 -1
  21. package/dist/auto.d.cts +1 -2
  22. package/dist/auto.d.ts +1 -2
  23. package/dist/auto.js +49 -23
  24. package/dist/auto.js.map +1 -1
  25. package/dist/business-baggage.cjs +357 -13
  26. package/dist/business-baggage.cjs.map +1 -1
  27. package/dist/business-baggage.d.cts +106 -139
  28. package/dist/business-baggage.d.cts.map +1 -0
  29. package/dist/business-baggage.d.ts +106 -139
  30. package/dist/business-baggage.d.ts.map +1 -0
  31. package/dist/business-baggage.js +357 -2
  32. package/dist/business-baggage.js.map +1 -1
  33. package/dist/canonical-log-line-processor--RlFDHhm.cjs +377 -0
  34. package/dist/canonical-log-line-processor--RlFDHhm.cjs.map +1 -0
  35. package/dist/canonical-log-line-processor-BcRuAdRk.d.ts +147 -0
  36. package/dist/canonical-log-line-processor-BcRuAdRk.d.ts.map +1 -0
  37. package/dist/canonical-log-line-processor-DbBQT5vY.js +366 -0
  38. package/dist/canonical-log-line-processor-DbBQT5vY.js.map +1 -0
  39. package/dist/canonical-log-line-processor-xvjMgtpF.d.cts +147 -0
  40. package/dist/canonical-log-line-processor-xvjMgtpF.d.cts.map +1 -0
  41. package/dist/config.cjs +118 -22
  42. package/dist/config.cjs.map +1 -1
  43. package/dist/config.d.cts +33 -45
  44. package/dist/config.d.cts.map +1 -0
  45. package/dist/config.d.ts +33 -45
  46. package/dist/config.d.ts.map +1 -0
  47. package/dist/config.js +116 -3
  48. package/dist/config.js.map +1 -1
  49. package/dist/correlated-events-Bzh5y-UB.js +28 -0
  50. package/dist/correlated-events-Bzh5y-UB.js.map +1 -0
  51. package/dist/correlated-events-kSwLo3mi.cjs +34 -0
  52. package/dist/correlated-events-kSwLo3mi.cjs.map +1 -0
  53. package/dist/correlation-id.cjs +11 -54
  54. package/dist/correlation-id.d.cts +6 -5
  55. package/dist/correlation-id.d.cts.map +1 -0
  56. package/dist/correlation-id.d.ts +6 -5
  57. package/dist/correlation-id.d.ts.map +1 -0
  58. package/dist/correlation-id.js +3 -17
  59. package/dist/db.cjs +244 -209
  60. package/dist/db.cjs.map +1 -1
  61. package/dist/db.d.cts +28 -26
  62. package/dist/db.d.cts.map +1 -0
  63. package/dist/db.d.ts +28 -26
  64. package/dist/db.d.ts.map +1 -0
  65. package/dist/db.js +243 -207
  66. package/dist/db.js.map +1 -1
  67. package/dist/decorators.cjs +39 -66
  68. package/dist/decorators.cjs.map +1 -1
  69. package/dist/decorators.d.cts +10 -37
  70. package/dist/decorators.d.cts.map +1 -0
  71. package/dist/decorators.d.ts +10 -37
  72. package/dist/decorators.d.ts.map +1 -0
  73. package/dist/decorators.js +38 -64
  74. package/dist/decorators.js.map +1 -1
  75. package/dist/define-event-CreknLm3.d.ts +25 -0
  76. package/dist/define-event-CreknLm3.d.ts.map +1 -0
  77. package/dist/define-event-HZRizPwz.d.cts +25 -0
  78. package/dist/define-event-HZRizPwz.d.cts.map +1 -0
  79. package/dist/drain-pipeline.cjs +111 -9
  80. package/dist/drain-pipeline.cjs.map +1 -1
  81. package/dist/drain-pipeline.d.cts +27 -32
  82. package/dist/drain-pipeline.d.cts.map +1 -0
  83. package/dist/drain-pipeline.d.ts +27 -32
  84. package/dist/drain-pipeline.d.ts.map +1 -0
  85. package/dist/drain-pipeline.js +111 -2
  86. package/dist/drain-pipeline.js.map +1 -1
  87. package/dist/enrichers.cjs +59 -66
  88. package/dist/enrichers.cjs.map +1 -1
  89. package/dist/enrichers.d.cts +15 -13
  90. package/dist/enrichers.d.cts.map +1 -0
  91. package/dist/enrichers.d.ts +15 -13
  92. package/dist/enrichers.d.ts.map +1 -0
  93. package/dist/enrichers.js +58 -65
  94. package/dist/enrichers.js.map +1 -1
  95. package/dist/event-Dlqr4ZNL.cjs +778 -0
  96. package/dist/event-Dlqr4ZNL.cjs.map +1 -0
  97. package/dist/event-_58ryBjh.js +761 -0
  98. package/dist/event-_58ryBjh.js.map +1 -0
  99. package/dist/event-subscriber-D1XLkPzi.d.cts +223 -0
  100. package/dist/event-subscriber-D1XLkPzi.d.cts.map +1 -0
  101. package/dist/event-subscriber-D1XLkPzi.d.ts +223 -0
  102. package/dist/event-subscriber-D1XLkPzi.d.ts.map +1 -0
  103. package/dist/event-subscriber.cjs +0 -6
  104. package/dist/event-subscriber.d.cts +2 -221
  105. package/dist/event-subscriber.d.ts +2 -221
  106. package/dist/event-subscriber.js +1 -3
  107. package/dist/event-testing-BqRnI0z4.d.cts +106 -0
  108. package/dist/event-testing-BqRnI0z4.d.cts.map +1 -0
  109. package/dist/event-testing-CfFs3to2.d.ts +106 -0
  110. package/dist/event-testing-CfFs3to2.d.ts.map +1 -0
  111. package/dist/event-testing.cjs +93 -17
  112. package/dist/event-testing.cjs.map +1 -1
  113. package/dist/event-testing.d.cts +2 -110
  114. package/dist/event-testing.d.ts +2 -110
  115. package/dist/event-testing.js +91 -2
  116. package/dist/event-testing.js.map +1 -1
  117. package/dist/event.cjs +5 -37
  118. package/dist/event.d.cts +295 -340
  119. package/dist/event.d.cts.map +1 -0
  120. package/dist/event.d.ts +295 -340
  121. package/dist/event.d.ts.map +1 -0
  122. package/dist/event.js +3 -21
  123. package/dist/exporters.cjs +12 -16
  124. package/dist/exporters.d.cts +86 -111
  125. package/dist/exporters.d.cts.map +1 -0
  126. package/dist/exporters.d.ts +86 -111
  127. package/dist/exporters.d.ts.map +1 -0
  128. package/dist/exporters.js +4 -4
  129. package/dist/filtering-span-processor-B8R8B7Uk.d.cts +59 -0
  130. package/dist/filtering-span-processor-B8R8B7Uk.d.cts.map +1 -0
  131. package/dist/filtering-span-processor-B8R8B7Uk.d.ts +59 -0
  132. package/dist/filtering-span-processor-B8R8B7Uk.d.ts.map +1 -0
  133. package/dist/filtering-span-processor.cjs +49 -9
  134. package/dist/filtering-span-processor.cjs.map +1 -1
  135. package/dist/filtering-span-processor.d.cts +2 -80
  136. package/dist/filtering-span-processor.d.ts +2 -80
  137. package/dist/filtering-span-processor.js +49 -2
  138. package/dist/filtering-span-processor.js.map +1 -1
  139. package/dist/functional-BGkT8J-h.js +1265 -0
  140. package/dist/functional-BGkT8J-h.js.map +1 -0
  141. package/dist/functional-C4CzoVrX.cjs +1312 -0
  142. package/dist/functional-C4CzoVrX.cjs.map +1 -0
  143. package/dist/functional.cjs +11 -57
  144. package/dist/functional.d.cts +96 -97
  145. package/dist/functional.d.cts.map +1 -0
  146. package/dist/functional.d.ts +96 -97
  147. package/dist/functional.d.ts.map +1 -0
  148. package/dist/functional.js +3 -20
  149. package/dist/http.cjs +276 -176
  150. package/dist/http.cjs.map +1 -1
  151. package/dist/http.d.cts +17 -37
  152. package/dist/http.d.cts.map +1 -0
  153. package/dist/http.d.ts +17 -37
  154. package/dist/http.d.ts.map +1 -0
  155. package/dist/http.js +275 -174
  156. package/dist/http.js.map +1 -1
  157. package/dist/index-Ck06vlW2.d.ts +678 -0
  158. package/dist/index-Ck06vlW2.d.ts.map +1 -0
  159. package/dist/index-eKuioqT1.d.cts +678 -0
  160. package/dist/index-eKuioqT1.d.cts.map +1 -0
  161. package/dist/index.cjs +751 -1218
  162. package/dist/index.cjs.map +1 -1
  163. package/dist/index.d.cts +341 -659
  164. package/dist/index.d.cts.map +1 -0
  165. package/dist/index.d.ts +341 -659
  166. package/dist/index.d.ts.map +1 -0
  167. package/dist/index.js +606 -737
  168. package/dist/index.js.map +1 -1
  169. package/dist/init-CNp-ee80.d.cts +1157 -0
  170. package/dist/init-CNp-ee80.d.cts.map +1 -0
  171. package/dist/init-Ch6t7MNI.js +1015 -0
  172. package/dist/init-Ch6t7MNI.js.map +1 -0
  173. package/dist/init-DJQOdVlN.d.ts +1157 -0
  174. package/dist/init-DJQOdVlN.d.ts.map +1 -0
  175. package/dist/init-DvapOXCc.cjs +1092 -0
  176. package/dist/init-DvapOXCc.cjs.map +1 -0
  177. package/dist/instrumentation.cjs +159 -185
  178. package/dist/instrumentation.cjs.map +1 -1
  179. package/dist/instrumentation.d.cts +42 -40
  180. package/dist/instrumentation.d.cts.map +1 -0
  181. package/dist/instrumentation.d.ts +42 -40
  182. package/dist/instrumentation.d.ts.map +1 -0
  183. package/dist/instrumentation.js +158 -183
  184. package/dist/instrumentation.js.map +1 -1
  185. package/dist/logger-BauSUhUv.d.cts +313 -0
  186. package/dist/logger-BauSUhUv.d.cts.map +1 -0
  187. package/dist/logger-BauSUhUv.d.ts +313 -0
  188. package/dist/logger-BauSUhUv.d.ts.map +1 -0
  189. package/dist/logger.cjs +225 -25
  190. package/dist/logger.cjs.map +1 -1
  191. package/dist/logger.d.cts +2 -348
  192. package/dist/logger.d.ts +2 -348
  193. package/dist/logger.js +204 -4
  194. package/dist/logger.js.map +1 -1
  195. package/dist/messaging-adapters.cjs +292 -187
  196. package/dist/messaging-adapters.cjs.map +1 -1
  197. package/dist/messaging-adapters.d.cts +28 -66
  198. package/dist/messaging-adapters.d.cts.map +1 -0
  199. package/dist/messaging-adapters.d.ts +28 -66
  200. package/dist/messaging-adapters.d.ts.map +1 -0
  201. package/dist/messaging-adapters.js +291 -185
  202. package/dist/messaging-adapters.js.map +1 -1
  203. package/dist/messaging-testing.cjs +306 -372
  204. package/dist/messaging-testing.cjs.map +1 -1
  205. package/dist/messaging-testing.d.cts +194 -223
  206. package/dist/messaging-testing.d.cts.map +1 -0
  207. package/dist/messaging-testing.d.ts +194 -223
  208. package/dist/messaging-testing.d.ts.map +1 -0
  209. package/dist/messaging-testing.js +305 -371
  210. package/dist/messaging-testing.js.map +1 -1
  211. package/dist/messaging.cjs +757 -36
  212. package/dist/messaging.cjs.map +1 -1
  213. package/dist/messaging.d.cts +603 -644
  214. package/dist/messaging.d.cts.map +1 -0
  215. package/dist/messaging.d.ts +603 -644
  216. package/dist/messaging.d.ts.map +1 -0
  217. package/dist/messaging.js +756 -21
  218. package/dist/messaging.js.map +1 -1
  219. package/dist/metric-helpers.cjs +27 -27
  220. package/dist/metric-helpers.cjs.map +1 -1
  221. package/dist/metric-helpers.d.cts +4 -2
  222. package/dist/metric-helpers.d.cts.map +1 -0
  223. package/dist/metric-helpers.d.ts +4 -2
  224. package/dist/metric-helpers.d.ts.map +1 -0
  225. package/dist/metric-helpers.js +24 -4
  226. package/dist/metric-helpers.js.map +1 -1
  227. package/dist/metric-testing-DXdK3-Q3.d.ts +106 -0
  228. package/dist/metric-testing-DXdK3-Q3.d.ts.map +1 -0
  229. package/dist/metric-testing-MxvzChDp.d.cts +106 -0
  230. package/dist/metric-testing-MxvzChDp.d.cts.map +1 -0
  231. package/dist/metric-testing.cjs +93 -17
  232. package/dist/metric-testing.cjs.map +1 -1
  233. package/dist/metric-testing.d.cts +2 -110
  234. package/dist/metric-testing.d.ts +2 -110
  235. package/dist/metric-testing.js +91 -2
  236. package/dist/metric-testing.js.map +1 -1
  237. package/dist/metric.cjs +306 -22
  238. package/dist/metric.cjs.map +1 -1
  239. package/dist/metric.d.cts +170 -198
  240. package/dist/metric.d.cts.map +1 -0
  241. package/dist/metric.d.ts +170 -198
  242. package/dist/metric.d.ts.map +1 -0
  243. package/dist/metric.js +277 -7
  244. package/dist/metric.js.map +1 -1
  245. package/dist/node-require-DF5QBX6z.cjs +99 -0
  246. package/dist/node-require-DF5QBX6z.cjs.map +1 -0
  247. package/dist/node-require-Db1oDpLj.js +88 -0
  248. package/dist/node-require-Db1oDpLj.js.map +1 -0
  249. package/dist/operation-context-C-2hmmtP.js +59 -0
  250. package/dist/operation-context-C-2hmmtP.js.map +1 -0
  251. package/dist/operation-context-n4_obUwq.cjs +70 -0
  252. package/dist/operation-context-n4_obUwq.cjs.map +1 -0
  253. package/dist/parse-error.cjs +55 -9
  254. package/dist/parse-error.cjs.map +1 -1
  255. package/dist/parse-error.d.cts +12 -10
  256. package/dist/parse-error.d.cts.map +1 -0
  257. package/dist/parse-error.d.ts +12 -10
  258. package/dist/parse-error.d.ts.map +1 -0
  259. package/dist/parse-error.js +55 -2
  260. package/dist/parse-error.js.map +1 -1
  261. package/dist/pretty-console-exporter-CMzlrRNg.cjs +232 -0
  262. package/dist/pretty-console-exporter-CMzlrRNg.cjs.map +1 -0
  263. package/dist/pretty-console-exporter-DqKl_q9z.js +227 -0
  264. package/dist/pretty-console-exporter-DqKl_q9z.js.map +1 -0
  265. package/dist/processors.cjs +13 -17
  266. package/dist/processors.d.cts +3 -171
  267. package/dist/processors.d.ts +3 -171
  268. package/dist/processors.js +4 -4
  269. package/dist/register.cjs +35 -6
  270. package/dist/register.cjs.map +1 -1
  271. package/dist/register.d.cts +1 -2
  272. package/dist/register.d.ts +1 -2
  273. package/dist/register.js +36 -3
  274. package/dist/register.js.map +1 -1
  275. package/dist/registry-DVSmWg6Y.js +175 -0
  276. package/dist/registry-DVSmWg6Y.js.map +1 -0
  277. package/dist/registry-DYgvb62e.cjs +319 -0
  278. package/dist/registry-DYgvb62e.cjs.map +1 -0
  279. package/dist/sampling-CR0Va1VB.d.ts +351 -0
  280. package/dist/sampling-CR0Va1VB.d.ts.map +1 -0
  281. package/dist/sampling-DfYhDJij.d.cts +351 -0
  282. package/dist/sampling-DfYhDJij.d.cts.map +1 -0
  283. package/dist/sampling.cjs +452 -60
  284. package/dist/sampling.cjs.map +1 -1
  285. package/dist/sampling.d.cts +2 -379
  286. package/dist/sampling.d.ts +2 -379
  287. package/dist/sampling.js +441 -5
  288. package/dist/sampling.js.map +1 -1
  289. package/dist/security-schema.cjs +65 -46
  290. package/dist/security-schema.cjs.map +1 -1
  291. package/dist/security-schema.d.cts +23 -26
  292. package/dist/security-schema.d.cts.map +1 -0
  293. package/dist/security-schema.d.ts +23 -26
  294. package/dist/security-schema.d.ts.map +1 -0
  295. package/dist/security-schema.js +64 -45
  296. package/dist/security-schema.js.map +1 -1
  297. package/dist/semantic-conventions-FhSxv-bK.d.cts +32 -0
  298. package/dist/semantic-conventions-FhSxv-bK.d.cts.map +1 -0
  299. package/dist/semantic-conventions-FhSxv-bK.d.ts +32 -0
  300. package/dist/semantic-conventions-FhSxv-bK.d.ts.map +1 -0
  301. package/dist/semantic-conventions.cjs +15 -26
  302. package/dist/semantic-conventions.cjs.map +1 -1
  303. package/dist/semantic-conventions.d.cts +2 -29
  304. package/dist/semantic-conventions.d.ts +2 -29
  305. package/dist/semantic-conventions.js +12 -3
  306. package/dist/semantic-conventions.js.map +1 -1
  307. package/dist/semantic-helpers.cjs +327 -39
  308. package/dist/semantic-helpers.cjs.map +1 -1
  309. package/dist/semantic-helpers.d.cts +30 -150
  310. package/dist/semantic-helpers.d.cts.map +1 -0
  311. package/dist/semantic-helpers.d.ts +30 -150
  312. package/dist/semantic-helpers.d.ts.map +1 -0
  313. package/dist/semantic-helpers.js +326 -20
  314. package/dist/semantic-helpers.js.map +1 -1
  315. package/dist/span-name-normalizer-8ZOGJuwv.d.cts +70 -0
  316. package/dist/span-name-normalizer-8ZOGJuwv.d.cts.map +1 -0
  317. package/dist/span-name-normalizer-8ZOGJuwv.d.ts +70 -0
  318. package/dist/span-name-normalizer-8ZOGJuwv.d.ts.map +1 -0
  319. package/dist/span-name-normalizer.cjs +95 -17
  320. package/dist/span-name-normalizer.cjs.map +1 -1
  321. package/dist/span-name-normalizer.d.cts +2 -94
  322. package/dist/span-name-normalizer.d.ts +2 -94
  323. package/dist/span-name-normalizer.js +93 -2
  324. package/dist/span-name-normalizer.js.map +1 -1
  325. package/dist/stable-hash-BNTMrmdB.cjs +28 -0
  326. package/dist/stable-hash-BNTMrmdB.cjs.map +1 -0
  327. package/dist/stable-hash-Cg5cT34Q.js +23 -0
  328. package/dist/stable-hash-Cg5cT34Q.js.map +1 -0
  329. package/dist/structured-error-9--cxBay.js +143 -0
  330. package/dist/structured-error-9--cxBay.js.map +1 -0
  331. package/dist/structured-error-CHg7DoIQ.cjs +178 -0
  332. package/dist/structured-error-CHg7DoIQ.cjs.map +1 -0
  333. package/dist/tail-sampling-processor.cjs +26 -13
  334. package/dist/tail-sampling-processor.cjs.map +1 -1
  335. package/dist/tail-sampling-processor.d.cts +11 -23
  336. package/dist/tail-sampling-processor.d.cts.map +1 -0
  337. package/dist/tail-sampling-processor.d.ts +11 -23
  338. package/dist/tail-sampling-processor.d.ts.map +1 -0
  339. package/dist/tail-sampling-processor.js +27 -6
  340. package/dist/tail-sampling-processor.js.map +1 -1
  341. package/dist/test-span-collector.cjs +70 -72
  342. package/dist/test-span-collector.cjs.map +1 -1
  343. package/dist/test-span-collector.d.cts +25 -43
  344. package/dist/test-span-collector.d.cts.map +1 -0
  345. package/dist/test-span-collector.d.ts +25 -43
  346. package/dist/test-span-collector.d.ts.map +1 -0
  347. package/dist/test-span-collector.js +69 -70
  348. package/dist/test-span-collector.js.map +1 -1
  349. package/dist/testing.cjs +389 -278
  350. package/dist/testing.cjs.map +1 -1
  351. package/dist/testing.d.cts +39 -62
  352. package/dist/testing.d.cts.map +1 -0
  353. package/dist/testing.d.ts +39 -62
  354. package/dist/testing.d.ts.map +1 -0
  355. package/dist/testing.js +386 -265
  356. package/dist/testing.js.map +1 -1
  357. package/dist/trace-context-Cijqoi6e.d.cts +212 -0
  358. package/dist/trace-context-Cijqoi6e.d.cts.map +1 -0
  359. package/dist/trace-context-Cijqoi6e.d.ts +212 -0
  360. package/dist/trace-context-Cijqoi6e.d.ts.map +1 -0
  361. package/dist/trace-helpers.cjs +634 -54
  362. package/dist/trace-helpers.cjs.map +1 -1
  363. package/dist/trace-helpers.d.cts +17 -49
  364. package/dist/trace-helpers.d.cts.map +1 -0
  365. package/dist/trace-helpers.d.ts +17 -49
  366. package/dist/trace-helpers.d.ts.map +1 -0
  367. package/dist/trace-helpers.js +624 -3
  368. package/dist/trace-helpers.js.map +1 -1
  369. package/dist/tracer-provider.cjs +227 -16
  370. package/dist/tracer-provider.cjs.map +1 -1
  371. package/dist/tracer-provider.d.cts +5 -4
  372. package/dist/tracer-provider.d.cts.map +1 -0
  373. package/dist/tracer-provider.d.ts +5 -4
  374. package/dist/tracer-provider.d.ts.map +1 -0
  375. package/dist/tracer-provider.js +227 -2
  376. package/dist/tracer-provider.js.map +1 -1
  377. package/dist/track-3HY4NGV-.cjs +1212 -0
  378. package/dist/track-3HY4NGV-.cjs.map +1 -0
  379. package/dist/track-nsKVy-pj.js +1111 -0
  380. package/dist/track-nsKVy-pj.js.map +1 -0
  381. package/dist/validate.cjs +178 -115
  382. package/dist/validate.cjs.map +1 -1
  383. package/dist/validate.d.cts +40 -64
  384. package/dist/validate.d.cts.map +1 -0
  385. package/dist/validate.d.ts +40 -64
  386. package/dist/validate.d.ts.map +1 -0
  387. package/dist/validate.js +177 -113
  388. package/dist/validate.js.map +1 -1
  389. package/dist/validation-attributes.cjs +42 -17
  390. package/dist/validation-attributes.cjs.map +1 -1
  391. package/dist/validation-attributes.d.cts +13 -20
  392. package/dist/validation-attributes.d.cts.map +1 -0
  393. package/dist/validation-attributes.d.ts +13 -20
  394. package/dist/validation-attributes.d.ts.map +1 -0
  395. package/dist/validation-attributes.js +40 -2
  396. package/dist/validation-attributes.js.map +1 -1
  397. package/dist/webhook.cjs +286 -256
  398. package/dist/webhook.cjs.map +1 -1
  399. package/dist/webhook.d.cts +157 -192
  400. package/dist/webhook.d.cts.map +1 -0
  401. package/dist/webhook.d.ts +157 -192
  402. package/dist/webhook.d.ts.map +1 -0
  403. package/dist/webhook.js +285 -254
  404. package/dist/webhook.js.map +1 -1
  405. package/dist/workflow-distributed.cjs +498 -412
  406. package/dist/workflow-distributed.cjs.map +1 -1
  407. package/dist/workflow-distributed.d.cts +163 -173
  408. package/dist/workflow-distributed.d.cts.map +1 -0
  409. package/dist/workflow-distributed.d.ts +163 -173
  410. package/dist/workflow-distributed.d.ts.map +1 -0
  411. package/dist/workflow-distributed.js +497 -410
  412. package/dist/workflow-distributed.js.map +1 -1
  413. package/dist/workflow.cjs +405 -40
  414. package/dist/workflow.cjs.map +1 -1
  415. package/dist/workflow.d.cts +78 -131
  416. package/dist/workflow.d.cts.map +1 -0
  417. package/dist/workflow.d.ts +78 -131
  418. package/dist/workflow.d.ts.map +1 -0
  419. package/dist/workflow.js +403 -21
  420. package/dist/workflow.js.map +1 -1
  421. package/dist/yaml-config-B3dQ82GR.cjs +272 -0
  422. package/dist/yaml-config-B3dQ82GR.cjs.map +1 -0
  423. package/dist/yaml-config.cjs +5 -24
  424. package/dist/yaml-config.d.cts +30 -64
  425. package/dist/yaml-config.d.cts.map +1 -0
  426. package/dist/yaml-config.d.ts +30 -64
  427. package/dist/yaml-config.d.ts.map +1 -0
  428. package/dist/yaml-config.js +226 -7
  429. package/dist/yaml-config.js.map +1 -1
  430. package/package.json +4 -4
  431. package/skills/analyze-traces/SKILL.md +14 -12
  432. package/skills/review-otel-patterns/SKILL.md +4 -2
  433. package/skills/tune-sampling/SKILL.md +8 -3
  434. package/src/attributes/builders.ts +2 -20
  435. package/src/attributes/index.ts +0 -1
  436. package/src/attributes/registry.ts +2 -9
  437. package/src/attributes/types.ts +0 -8
  438. package/src/index.ts +7 -41
  439. package/src/request-logger.test.ts +53 -1
  440. package/src/request-logger.ts +58 -0
  441. package/src/semantic-helpers.test.ts +2 -87
  442. package/src/semantic-helpers.ts +0 -146
  443. package/src/validate.test.ts +3 -1
  444. package/src/validate.ts +9 -3
  445. package/dist/attributes.cjs.map +0 -1
  446. package/dist/attributes.js.map +0 -1
  447. package/dist/chunk-2ZKEORFN.cjs +0 -14
  448. package/dist/chunk-2ZKEORFN.cjs.map +0 -1
  449. package/dist/chunk-3QXBFGKP.js +0 -344
  450. package/dist/chunk-3QXBFGKP.js.map +0 -1
  451. package/dist/chunk-454CH4OV.js +0 -744
  452. package/dist/chunk-454CH4OV.js.map +0 -1
  453. package/dist/chunk-4A53YIAX.js +0 -180
  454. package/dist/chunk-4A53YIAX.js.map +0 -1
  455. package/dist/chunk-4IFSYQVX.js +0 -337
  456. package/dist/chunk-4IFSYQVX.js.map +0 -1
  457. package/dist/chunk-4P6ZOARG.cjs +0 -33
  458. package/dist/chunk-4P6ZOARG.cjs.map +0 -1
  459. package/dist/chunk-55ER2KD5.js +0 -228
  460. package/dist/chunk-55ER2KD5.js.map +0 -1
  461. package/dist/chunk-5ZN622AO.js +0 -73
  462. package/dist/chunk-5ZN622AO.js.map +0 -1
  463. package/dist/chunk-66YJ66GG.js +0 -1021
  464. package/dist/chunk-66YJ66GG.js.map +0 -1
  465. package/dist/chunk-6S5RUKU3.cjs +0 -347
  466. package/dist/chunk-6S5RUKU3.cjs.map +0 -1
  467. package/dist/chunk-6UQRVUN3.js +0 -222
  468. package/dist/chunk-6UQRVUN3.js.map +0 -1
  469. package/dist/chunk-7552UTQW.js +0 -11
  470. package/dist/chunk-7552UTQW.js.map +0 -1
  471. package/dist/chunk-7EQ4G4SI.cjs +0 -146
  472. package/dist/chunk-7EQ4G4SI.cjs.map +0 -1
  473. package/dist/chunk-7SAWIN74.js +0 -285
  474. package/dist/chunk-7SAWIN74.js.map +0 -1
  475. package/dist/chunk-A4E5AQFK.js +0 -30
  476. package/dist/chunk-A4E5AQFK.js.map +0 -1
  477. package/dist/chunk-ALPYR2GC.js +0 -1061
  478. package/dist/chunk-ALPYR2GC.js.map +0 -1
  479. package/dist/chunk-B7SWBE4P.cjs +0 -799
  480. package/dist/chunk-B7SWBE4P.cjs.map +0 -1
  481. package/dist/chunk-BZHG5IZ4.js +0 -73
  482. package/dist/chunk-BZHG5IZ4.js.map +0 -1
  483. package/dist/chunk-CEAQK2QY.cjs +0 -32
  484. package/dist/chunk-CEAQK2QY.cjs.map +0 -1
  485. package/dist/chunk-CMHVQR6P.js +0 -170
  486. package/dist/chunk-CMHVQR6P.js.map +0 -1
  487. package/dist/chunk-CU6IDACR.cjs +0 -224
  488. package/dist/chunk-CU6IDACR.cjs.map +0 -1
  489. package/dist/chunk-D4TM63S3.js +0 -795
  490. package/dist/chunk-D4TM63S3.js.map +0 -1
  491. package/dist/chunk-DCEDJQGG.js +0 -28
  492. package/dist/chunk-DCEDJQGG.js.map +0 -1
  493. package/dist/chunk-DPSA4QLA.js +0 -344
  494. package/dist/chunk-DPSA4QLA.js.map +0 -1
  495. package/dist/chunk-E6TERL5O.cjs +0 -23
  496. package/dist/chunk-E6TERL5O.cjs.map +0 -1
  497. package/dist/chunk-EE6CPXKH.cjs +0 -164
  498. package/dist/chunk-EE6CPXKH.cjs.map +0 -1
  499. package/dist/chunk-EOFB7XCL.cjs +0 -837
  500. package/dist/chunk-EOFB7XCL.cjs.map +0 -1
  501. package/dist/chunk-ESLWRGAG.cjs +0 -92
  502. package/dist/chunk-ESLWRGAG.cjs.map +0 -1
  503. package/dist/chunk-ESMHTKLJ.cjs +0 -206
  504. package/dist/chunk-ESMHTKLJ.cjs.map +0 -1
  505. package/dist/chunk-FMTHVSYY.cjs +0 -1039
  506. package/dist/chunk-FMTHVSYY.cjs.map +0 -1
  507. package/dist/chunk-FU6R566Y.cjs +0 -236
  508. package/dist/chunk-FU6R566Y.cjs.map +0 -1
  509. package/dist/chunk-GYR5K654.js +0 -91
  510. package/dist/chunk-GYR5K654.js.map +0 -1
  511. package/dist/chunk-HA2WBOGQ.js +0 -57
  512. package/dist/chunk-HA2WBOGQ.js.map +0 -1
  513. package/dist/chunk-HT5JQKN2.js +0 -118
  514. package/dist/chunk-HT5JQKN2.js.map +0 -1
  515. package/dist/chunk-INJD3G4K.cjs +0 -340
  516. package/dist/chunk-INJD3G4K.cjs.map +0 -1
  517. package/dist/chunk-IOYFAFHJ.cjs +0 -95
  518. package/dist/chunk-IOYFAFHJ.cjs.map +0 -1
  519. package/dist/chunk-J5QENANM.js +0 -87
  520. package/dist/chunk-J5QENANM.js.map +0 -1
  521. package/dist/chunk-J7VGRIAJ.js +0 -64
  522. package/dist/chunk-J7VGRIAJ.js.map +0 -1
  523. package/dist/chunk-KFOHQK7X.js +0 -144
  524. package/dist/chunk-KFOHQK7X.js.map +0 -1
  525. package/dist/chunk-KIL5CUN6.js +0 -31
  526. package/dist/chunk-KIL5CUN6.js.map +0 -1
  527. package/dist/chunk-KYXZS3EA.cjs +0 -100
  528. package/dist/chunk-KYXZS3EA.cjs.map +0 -1
  529. package/dist/chunk-LITNXTTT.js +0 -3
  530. package/dist/chunk-LITNXTTT.js.map +0 -1
  531. package/dist/chunk-LVIPBYFE.js +0 -157
  532. package/dist/chunk-LVIPBYFE.js.map +0 -1
  533. package/dist/chunk-M3LFHHTN.cjs +0 -764
  534. package/dist/chunk-M3LFHHTN.cjs.map +0 -1
  535. package/dist/chunk-N25JDZSC.js +0 -95
  536. package/dist/chunk-N25JDZSC.js.map +0 -1
  537. package/dist/chunk-NEIB3TLD.cjs +0 -360
  538. package/dist/chunk-NEIB3TLD.cjs.map +0 -1
  539. package/dist/chunk-NENU7E6V.cjs +0 -344
  540. package/dist/chunk-NENU7E6V.cjs.map +0 -1
  541. package/dist/chunk-NVAI5CCN.cjs +0 -39
  542. package/dist/chunk-NVAI5CCN.cjs.map +0 -1
  543. package/dist/chunk-NZ72VDNY.cjs +0 -4
  544. package/dist/chunk-NZ72VDNY.cjs.map +0 -1
  545. package/dist/chunk-OPPXYVEZ.cjs +0 -131
  546. package/dist/chunk-OPPXYVEZ.cjs.map +0 -1
  547. package/dist/chunk-Q4EULJQY.js +0 -35
  548. package/dist/chunk-Q4EULJQY.js.map +0 -1
  549. package/dist/chunk-QF7ARNUM.js +0 -339
  550. package/dist/chunk-QF7ARNUM.js.map +0 -1
  551. package/dist/chunk-QWW3E3JM.cjs +0 -178
  552. package/dist/chunk-QWW3E3JM.cjs.map +0 -1
  553. package/dist/chunk-R7QYGZUP.cjs +0 -1075
  554. package/dist/chunk-R7QYGZUP.cjs.map +0 -1
  555. package/dist/chunk-RUPKBKUF.js +0 -352
  556. package/dist/chunk-RUPKBKUF.js.map +0 -1
  557. package/dist/chunk-SEO6NAQT.js +0 -14
  558. package/dist/chunk-SEO6NAQT.js.map +0 -1
  559. package/dist/chunk-T4B5LB6E.cjs +0 -66
  560. package/dist/chunk-T4B5LB6E.cjs.map +0 -1
  561. package/dist/chunk-T5WRA76K.cjs +0 -32
  562. package/dist/chunk-T5WRA76K.cjs.map +0 -1
  563. package/dist/chunk-T7JO2TCP.js +0 -1233
  564. package/dist/chunk-T7JO2TCP.js.map +0 -1
  565. package/dist/chunk-TC5ZPWM4.cjs +0 -289
  566. package/dist/chunk-TC5ZPWM4.cjs.map +0 -1
  567. package/dist/chunk-TQ5UWA7S.js +0 -26
  568. package/dist/chunk-TQ5UWA7S.js.map +0 -1
  569. package/dist/chunk-UIKYE2QZ.js +0 -833
  570. package/dist/chunk-UIKYE2QZ.js.map +0 -1
  571. package/dist/chunk-UNPLAVE7.js +0 -21
  572. package/dist/chunk-UNPLAVE7.js.map +0 -1
  573. package/dist/chunk-UY3UYPBZ.cjs +0 -77
  574. package/dist/chunk-UY3UYPBZ.cjs.map +0 -1
  575. package/dist/chunk-V7UBMJAB.cjs +0 -1242
  576. package/dist/chunk-V7UBMJAB.cjs.map +0 -1
  577. package/dist/chunk-VH77IPJN.cjs +0 -358
  578. package/dist/chunk-VH77IPJN.cjs.map +0 -1
  579. package/dist/chunk-VQTCQKHQ.cjs +0 -17
  580. package/dist/chunk-VQTCQKHQ.cjs.map +0 -1
  581. package/dist/chunk-WGWSHJ2N.js +0 -38
  582. package/dist/chunk-WGWSHJ2N.js.map +0 -1
  583. package/dist/chunk-WJH6IYU2.cjs +0 -32
  584. package/dist/chunk-WJH6IYU2.cjs.map +0 -1
  585. package/dist/chunk-YREV3LGG.cjs +0 -61
  586. package/dist/chunk-YREV3LGG.cjs.map +0 -1
  587. package/dist/chunk-YTXEZ4SD.cjs +0 -77
  588. package/dist/chunk-YTXEZ4SD.cjs.map +0 -1
  589. package/dist/chunk-ZNMBW67B.cjs +0 -40
  590. package/dist/chunk-ZNMBW67B.cjs.map +0 -1
  591. package/dist/correlation-id.cjs.map +0 -1
  592. package/dist/correlation-id.js.map +0 -1
  593. package/dist/define-event-BL6Li7CM.d.ts +0 -23
  594. package/dist/define-event-ClP3T1Jx.d.cts +0 -23
  595. package/dist/event-subscriber.cjs.map +0 -1
  596. package/dist/event-subscriber.js.map +0 -1
  597. package/dist/event.cjs.map +0 -1
  598. package/dist/event.js.map +0 -1
  599. package/dist/exporters.cjs.map +0 -1
  600. package/dist/exporters.js.map +0 -1
  601. package/dist/functional.cjs.map +0 -1
  602. package/dist/functional.js.map +0 -1
  603. package/dist/init-DIowiiCh.d.ts +0 -1167
  604. package/dist/init-j-A1zI16.d.cts +0 -1167
  605. package/dist/processors.cjs.map +0 -1
  606. package/dist/processors.js.map +0 -1
  607. package/dist/trace-context-DbGKd1Rn.d.cts +0 -213
  608. package/dist/trace-context-DbGKd1Rn.d.ts +0 -213
  609. package/dist/utils-BahBCFtJ.d.cts +0 -712
  610. package/dist/utils-CLKwaUlG.d.ts +0 -712
  611. package/dist/yaml-config.cjs.map +0 -1
  612. package/src/gen-ai-cost.test.ts +0 -81
  613. package/src/gen-ai-cost.ts +0 -145
  614. package/src/gen-ai-events.test.ts +0 -135
  615. package/src/gen-ai-events.ts +0 -208
  616. package/src/gen-ai-metrics.test.ts +0 -96
  617. package/src/gen-ai-metrics.ts +0 -128
@@ -1,37 +1,32 @@
1
+ //#region src/drain-pipeline.d.ts
1
2
  interface DrainPipelineOptions<T = unknown> {
2
- batch?: {
3
- /** Maximum events per batch. @default 50 */
4
- size?: number;
5
- /** Max time an event can stay buffered before flush. @default 5000 */
6
- intervalMs?: number;
7
- };
8
- retry?: {
9
- /** Total attempts including first try. @default 3 */
10
- maxAttempts?: number;
11
- /** Delay strategy between attempts. @default 'exponential' */
12
- backoff?: 'exponential' | 'linear' | 'fixed';
13
- /** Base delay for first retry. @default 1000 */
14
- initialDelayMs?: number;
15
- /** Max delay cap. @default 30000 */
16
- maxDelayMs?: number;
17
- /** Add random jitter to delays. @default true */
18
- jitter?: boolean;
19
- };
20
- /** Max buffered events before dropping. @default 1000 */
21
- maxBufferSize?: number;
22
- /** Overflow policy. @default 'oldest' */
23
- dropPolicy?: 'oldest' | 'newest';
24
- /** Called when events are dropped from overflow or exhausted retries. */
25
- onDropped?: (events: T[], error?: Error) => void;
3
+ batch?: {
4
+ /** Maximum events per batch. @default 50 */size?: number; /** Max time an event can stay buffered before flush. @default 5000 */
5
+ intervalMs?: number;
6
+ };
7
+ retry?: {
8
+ /** Total attempts including first try. @default 3 */maxAttempts?: number; /** Delay strategy between attempts. @default 'exponential' */
9
+ backoff?: 'exponential' | 'linear' | 'fixed'; /** Base delay for first retry. @default 1000 */
10
+ initialDelayMs?: number; /** Max delay cap. @default 30000 */
11
+ maxDelayMs?: number; /** Add random jitter to delays. @default true */
12
+ jitter?: boolean;
13
+ };
14
+ /** Max buffered events before dropping. @default 1000 */
15
+ maxBufferSize?: number;
16
+ /** Overflow policy. @default 'oldest' */
17
+ dropPolicy?: 'oldest' | 'newest';
18
+ /** Called when events are dropped from overflow or exhausted retries. */
19
+ onDropped?: (events: T[], error?: Error) => void;
26
20
  }
27
21
  interface PipelineDrainFn<T> {
28
- (ctx: T): void;
29
- /** Flush all buffered events. */
30
- flush: () => Promise<void>;
31
- /** Flush and stop scheduling future timer work. */
32
- shutdown: () => Promise<void>;
33
- readonly pending: number;
22
+ (ctx: T): void;
23
+ /** Flush all buffered events. */
24
+ flush: () => Promise<void>;
25
+ /** Flush and stop scheduling future timer work. */
26
+ shutdown: () => Promise<void>;
27
+ readonly pending: number;
34
28
  }
35
29
  declare function createDrainPipeline<T = unknown>(options?: DrainPipelineOptions<T>): (drain: (batch: T[]) => void | Promise<void>) => PipelineDrainFn<T>;
36
-
37
- export { type DrainPipelineOptions, type PipelineDrainFn, createDrainPipeline };
30
+ //#endregion
31
+ export { DrainPipelineOptions, PipelineDrainFn, createDrainPipeline };
32
+ //# sourceMappingURL=drain-pipeline.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"drain-pipeline.d.cts","names":[],"sources":["../src/drain-pipeline.ts"],"mappings":";UAAiB,oBAAA;EACf,KAAA;IADmC,4CAGjC,IAAA,WAqBqC;IAnBrC,UAAA;EAAA;EAEF,KAAA;IAFE,qDAIA,WAAA,WAAA;IAEA,OAAA,uCAEA;IAAA,cAAA,WAIA;IAFA,UAAA,WAOF;IALE,MAAA;EAAA;EAOW;EAJb,aAAA;EAI0B;EAF1B,UAAA;EAEuC;EAAvC,SAAA,IAAa,MAAA,EAAQ,CAAA,IAAK,KAAA,GAAQ,KAAK;AAAA;AAAA,UAGxB,eAAA;EAAA,CACd,GAAA,EAAK,CAAA;EAEO;EAAb,KAAA,QAAa,OAAA;EAEU;EAAvB,QAAA,QAAgB,OAAA;EAAA,SACP,OAAA;AAAA;AAAA,iBAUK,mBAAA,cACd,OAAA,GAAU,oBAAA,CAAqB,CAAA,KAC7B,KAAA,GAAQ,KAAA,EAAO,CAAA,cAAe,OAAA,WAAkB,eAAA,CAAgB,CAAA"}
@@ -1,37 +1,32 @@
1
+ //#region src/drain-pipeline.d.ts
1
2
  interface DrainPipelineOptions<T = unknown> {
2
- batch?: {
3
- /** Maximum events per batch. @default 50 */
4
- size?: number;
5
- /** Max time an event can stay buffered before flush. @default 5000 */
6
- intervalMs?: number;
7
- };
8
- retry?: {
9
- /** Total attempts including first try. @default 3 */
10
- maxAttempts?: number;
11
- /** Delay strategy between attempts. @default 'exponential' */
12
- backoff?: 'exponential' | 'linear' | 'fixed';
13
- /** Base delay for first retry. @default 1000 */
14
- initialDelayMs?: number;
15
- /** Max delay cap. @default 30000 */
16
- maxDelayMs?: number;
17
- /** Add random jitter to delays. @default true */
18
- jitter?: boolean;
19
- };
20
- /** Max buffered events before dropping. @default 1000 */
21
- maxBufferSize?: number;
22
- /** Overflow policy. @default 'oldest' */
23
- dropPolicy?: 'oldest' | 'newest';
24
- /** Called when events are dropped from overflow or exhausted retries. */
25
- onDropped?: (events: T[], error?: Error) => void;
3
+ batch?: {
4
+ /** Maximum events per batch. @default 50 */size?: number; /** Max time an event can stay buffered before flush. @default 5000 */
5
+ intervalMs?: number;
6
+ };
7
+ retry?: {
8
+ /** Total attempts including first try. @default 3 */maxAttempts?: number; /** Delay strategy between attempts. @default 'exponential' */
9
+ backoff?: 'exponential' | 'linear' | 'fixed'; /** Base delay for first retry. @default 1000 */
10
+ initialDelayMs?: number; /** Max delay cap. @default 30000 */
11
+ maxDelayMs?: number; /** Add random jitter to delays. @default true */
12
+ jitter?: boolean;
13
+ };
14
+ /** Max buffered events before dropping. @default 1000 */
15
+ maxBufferSize?: number;
16
+ /** Overflow policy. @default 'oldest' */
17
+ dropPolicy?: 'oldest' | 'newest';
18
+ /** Called when events are dropped from overflow or exhausted retries. */
19
+ onDropped?: (events: T[], error?: Error) => void;
26
20
  }
27
21
  interface PipelineDrainFn<T> {
28
- (ctx: T): void;
29
- /** Flush all buffered events. */
30
- flush: () => Promise<void>;
31
- /** Flush and stop scheduling future timer work. */
32
- shutdown: () => Promise<void>;
33
- readonly pending: number;
22
+ (ctx: T): void;
23
+ /** Flush all buffered events. */
24
+ flush: () => Promise<void>;
25
+ /** Flush and stop scheduling future timer work. */
26
+ shutdown: () => Promise<void>;
27
+ readonly pending: number;
34
28
  }
35
29
  declare function createDrainPipeline<T = unknown>(options?: DrainPipelineOptions<T>): (drain: (batch: T[]) => void | Promise<void>) => PipelineDrainFn<T>;
36
-
37
- export { type DrainPipelineOptions, type PipelineDrainFn, createDrainPipeline };
30
+ //#endregion
31
+ export { DrainPipelineOptions, PipelineDrainFn, createDrainPipeline };
32
+ //# sourceMappingURL=drain-pipeline.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"drain-pipeline.d.ts","names":[],"sources":["../src/drain-pipeline.ts"],"mappings":";UAAiB,oBAAA;EACf,KAAA;IADmC,4CAGjC,IAAA,WAqBqC;IAnBrC,UAAA;EAAA;EAEF,KAAA;IAFE,qDAIA,WAAA,WAAA;IAEA,OAAA,uCAEA;IAAA,cAAA,WAIA;IAFA,UAAA,WAOF;IALE,MAAA;EAAA;EAOW;EAJb,aAAA;EAI0B;EAF1B,UAAA;EAEuC;EAAvC,SAAA,IAAa,MAAA,EAAQ,CAAA,IAAK,KAAA,GAAQ,KAAK;AAAA;AAAA,UAGxB,eAAA;EAAA,CACd,GAAA,EAAK,CAAA;EAEO;EAAb,KAAA,QAAa,OAAA;EAEU;EAAvB,QAAA,QAAgB,OAAA;EAAA,SACP,OAAA;AAAA;AAAA,iBAUK,mBAAA,cACd,OAAA,GAAU,oBAAA,CAAqB,CAAA,KAC7B,KAAA,GAAQ,KAAA,EAAO,CAAA,cAAe,OAAA,WAAkB,eAAA,CAAgB,CAAA"}
@@ -1,3 +1,112 @@
1
- export { createDrainPipeline } from './chunk-KFOHQK7X.js';
2
- //# sourceMappingURL=drain-pipeline.js.map
1
+ //#region src/drain-pipeline.ts
2
+ function wait(ms) {
3
+ return new Promise((resolve) => {
4
+ setTimeout(resolve, ms).unref?.();
5
+ });
6
+ }
7
+ function createDrainPipeline(options) {
8
+ const batchSize = options?.batch?.size ?? 50;
9
+ const intervalMs = options?.batch?.intervalMs ?? 5e3;
10
+ const maxBufferSize = options?.maxBufferSize ?? 1e3;
11
+ const maxAttempts = options?.retry?.maxAttempts ?? 3;
12
+ const backoff = options?.retry?.backoff ?? "exponential";
13
+ const initialDelayMs = options?.retry?.initialDelayMs ?? 1e3;
14
+ const maxDelayMs = options?.retry?.maxDelayMs ?? 3e4;
15
+ const jitter = options?.retry?.jitter ?? true;
16
+ const dropPolicy = options?.dropPolicy ?? "oldest";
17
+ const onDropped = options?.onDropped;
18
+ if (!Number.isFinite(batchSize) || batchSize <= 0) throw new Error(`[autotel/drain-pipeline] batch.size must be a positive finite number, got: ${batchSize}`);
19
+ if (!Number.isFinite(intervalMs) || intervalMs <= 0) throw new Error(`[autotel/drain-pipeline] batch.intervalMs must be a positive finite number, got: ${intervalMs}`);
20
+ if (!Number.isFinite(maxBufferSize) || maxBufferSize <= 0) throw new Error(`[autotel/drain-pipeline] maxBufferSize must be a positive finite number, got: ${maxBufferSize}`);
21
+ if (!Number.isFinite(maxAttempts) || maxAttempts <= 0) throw new Error(`[autotel/drain-pipeline] retry.maxAttempts must be a positive finite number, got: ${maxAttempts}`);
22
+ return (drain) => {
23
+ const buffer = [];
24
+ let timer = null;
25
+ let activeFlush = null;
26
+ let isShutdown = false;
27
+ const clearTimer = () => {
28
+ if (timer) {
29
+ clearTimeout(timer);
30
+ timer = null;
31
+ }
32
+ };
33
+ const computeDelay = (attempt) => {
34
+ const base = backoff === "fixed" ? initialDelayMs : backoff === "linear" ? initialDelayMs * attempt : initialDelayMs * 2 ** (attempt - 1);
35
+ const bounded = Math.min(base, maxDelayMs);
36
+ if (!jitter || bounded <= 0) return bounded;
37
+ const factor = .5 + Math.random();
38
+ return Math.max(0, Math.round(bounded * factor));
39
+ };
40
+ const sendWithRetry = async (batch) => {
41
+ let lastError;
42
+ for (let attempt = 1; attempt <= maxAttempts; attempt++) try {
43
+ await drain(batch);
44
+ return;
45
+ } catch (error) {
46
+ lastError = error instanceof Error ? error : new Error(String(error));
47
+ if (attempt < maxAttempts) await wait(computeDelay(attempt));
48
+ }
49
+ onDropped?.(batch, lastError);
50
+ };
51
+ const drainBuffer = async () => {
52
+ while (buffer.length > 0) await sendWithRetry(buffer.splice(0, batchSize));
53
+ };
54
+ const scheduleFlush = () => {
55
+ if (isShutdown || timer || activeFlush) return;
56
+ timer = setTimeout(() => {
57
+ timer = null;
58
+ startFlush();
59
+ }, intervalMs);
60
+ timer.unref?.();
61
+ };
62
+ const startFlush = () => {
63
+ if (activeFlush || isShutdown) return;
64
+ activeFlush = drainBuffer().finally(() => {
65
+ activeFlush = null;
66
+ if (isShutdown) return;
67
+ if (buffer.length >= batchSize) startFlush();
68
+ else if (buffer.length > 0) scheduleFlush();
69
+ });
70
+ };
71
+ const push = (ctx) => {
72
+ if (isShutdown) return;
73
+ if (buffer.length >= maxBufferSize) {
74
+ if (dropPolicy === "newest") {
75
+ onDropped?.([ctx]);
76
+ return;
77
+ }
78
+ const dropped = buffer.splice(0, 1);
79
+ onDropped?.(dropped);
80
+ }
81
+ buffer.push(ctx);
82
+ if (buffer.length >= batchSize) {
83
+ clearTimer();
84
+ startFlush();
85
+ } else scheduleFlush();
86
+ };
87
+ const flush = async () => {
88
+ clearTimer();
89
+ if (activeFlush) await activeFlush;
90
+ const snapshot = buffer.length;
91
+ if (snapshot <= 0) return;
92
+ const toFlush = buffer.splice(0, snapshot);
93
+ while (toFlush.length > 0) await sendWithRetry(toFlush.splice(0, batchSize));
94
+ };
95
+ const shutdown = async () => {
96
+ isShutdown = true;
97
+ await flush();
98
+ };
99
+ const fn = push;
100
+ fn.flush = flush;
101
+ fn.shutdown = shutdown;
102
+ Object.defineProperty(fn, "pending", {
103
+ enumerable: true,
104
+ get: () => buffer.length
105
+ });
106
+ return fn;
107
+ };
108
+ }
109
+
110
+ //#endregion
111
+ export { createDrainPipeline };
3
112
  //# sourceMappingURL=drain-pipeline.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"drain-pipeline.js"}
1
+ {"version":3,"file":"drain-pipeline.js","names":[],"sources":["../src/drain-pipeline.ts"],"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"],"mappings":"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"}
@@ -1,88 +1,81 @@
1
- 'use strict';
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
2
 
3
- // src/enrichers.ts
3
+ //#region src/enrichers.ts
4
4
  function get(headers, key) {
5
- const lower = key.toLowerCase();
6
- for (const [k, v] of Object.entries(headers)) {
7
- if (k.toLowerCase() === lower) {
8
- return Array.isArray(v) ? v[0] : v;
9
- }
10
- }
11
- return void 0;
5
+ const lower = key.toLowerCase();
6
+ for (const [k, v] of Object.entries(headers)) if (k.toLowerCase() === lower) return Array.isArray(v) ? v[0] : v;
12
7
  }
13
- var BROWSER_RE = /(Firefox|OPR|Edg|Chrome|Safari|MSIE|Trident)[\s/]?([\d.]*)/;
14
- var OS_RE = /(Windows NT|Mac OS X|Linux|Android|iPhone OS|iPad|CrOS)[\s]?([\d._]*)/;
8
+ const BROWSER_RE = /(Firefox|OPR|Edg|Chrome|Safari|MSIE|Trident)[\s/]?([\d.]*)/;
9
+ const OS_RE = /(Windows NT|Mac OS X|Linux|Android|iPhone OS|iPad|CrOS)[\s]?([\d._]*)/;
15
10
  function parseBrowser(ua) {
16
- const m = BROWSER_RE.exec(ua);
17
- if (!m) return void 0;
18
- const name = m[1] === "OPR" ? "Opera" : m[1] === "Edg" ? "Edge" : m[1] === "Trident" ? "IE" : m[1];
19
- return m[2] ? `${name} ${m[2]}` : name;
11
+ const m = BROWSER_RE.exec(ua);
12
+ if (!m) return void 0;
13
+ const name = m[1] === "OPR" ? "Opera" : m[1] === "Edg" ? "Edge" : m[1] === "Trident" ? "IE" : m[1];
14
+ return m[2] ? `${name} ${m[2]}` : name;
20
15
  }
21
16
  function parseOS(ua) {
22
- const m = OS_RE.exec(ua);
23
- if (!m) return void 0;
24
- const name = m[1] === "iPhone OS" ? "iOS" : m[1] === "Windows NT" ? "Windows" : m[1] === "Mac OS X" ? "macOS" : m[1];
25
- const ver = m[2]?.replaceAll("_", ".") || void 0;
26
- return ver ? `${name} ${ver}` : name;
17
+ const m = OS_RE.exec(ua);
18
+ if (!m) return void 0;
19
+ const name = m[1] === "iPhone OS" ? "iOS" : m[1] === "Windows NT" ? "Windows" : m[1] === "Mac OS X" ? "macOS" : m[1];
20
+ const ver = m[2]?.replaceAll("_", ".") || void 0;
21
+ return ver ? `${name} ${ver}` : name;
27
22
  }
28
23
  function parseDevice(ua) {
29
- if (/Mobi|Android.*Mobile|iPhone/.test(ua)) return "mobile";
30
- if (/iPad|Android(?!.*Mobile)|Tablet/.test(ua)) return "tablet";
31
- if (/Bot|Crawler|Spider|Lighthouse/i.test(ua)) return "bot";
32
- return "desktop";
24
+ if (/Mobi|Android.*Mobile|iPhone/.test(ua)) return "mobile";
25
+ if (/iPad|Android(?!.*Mobile)|Tablet/.test(ua)) return "tablet";
26
+ if (/Bot|Crawler|Spider|Lighthouse/i.test(ua)) return "bot";
27
+ return "desktop";
33
28
  }
34
29
  function userAgent(headers) {
35
- const raw = get(headers, "user-agent");
36
- if (!raw) return void 0;
37
- const attrs = { "user_agent.raw": raw };
38
- const browser = parseBrowser(raw);
39
- if (browser) attrs["user_agent.browser"] = browser;
40
- const os = parseOS(raw);
41
- if (os) attrs["user_agent.os"] = os;
42
- const device = parseDevice(raw);
43
- if (device) attrs["user_agent.device"] = device;
44
- return attrs;
30
+ const raw = get(headers, "user-agent");
31
+ if (!raw) return void 0;
32
+ const attrs = { "user_agent.raw": raw };
33
+ const browser = parseBrowser(raw);
34
+ if (browser) attrs["user_agent.browser"] = browser;
35
+ const os = parseOS(raw);
36
+ if (os) attrs["user_agent.os"] = os;
37
+ const device = parseDevice(raw);
38
+ if (device) attrs["user_agent.device"] = device;
39
+ return attrs;
45
40
  }
46
41
  function geo(headers) {
47
- const country = get(headers, "x-vercel-ip-country") ?? get(headers, "cf-ipcountry");
48
- const region = get(headers, "x-vercel-ip-country-region");
49
- const city = get(headers, "x-vercel-ip-city");
50
- const latitude = get(headers, "x-vercel-ip-latitude");
51
- const longitude = get(headers, "x-vercel-ip-longitude");
52
- if (!country && !region && !city && !latitude && !longitude) return void 0;
53
- const attrs = {};
54
- if (country) attrs["geo.country"] = country;
55
- if (region) attrs["geo.region"] = region;
56
- if (city) {
57
- try {
58
- attrs["geo.city"] = decodeURIComponent(city);
59
- } catch {
60
- attrs["geo.city"] = city;
61
- }
62
- }
63
- if (latitude) attrs["geo.latitude"] = latitude;
64
- if (longitude) attrs["geo.longitude"] = longitude;
65
- return attrs;
42
+ const country = get(headers, "x-vercel-ip-country") ?? get(headers, "cf-ipcountry");
43
+ const region = get(headers, "x-vercel-ip-country-region");
44
+ const city = get(headers, "x-vercel-ip-city");
45
+ const latitude = get(headers, "x-vercel-ip-latitude");
46
+ const longitude = get(headers, "x-vercel-ip-longitude");
47
+ if (!country && !region && !city && !latitude && !longitude) return void 0;
48
+ const attrs = {};
49
+ if (country) attrs["geo.country"] = country;
50
+ if (region) attrs["geo.region"] = region;
51
+ if (city) try {
52
+ attrs["geo.city"] = decodeURIComponent(city);
53
+ } catch {
54
+ attrs["geo.city"] = city;
55
+ }
56
+ if (latitude) attrs["geo.latitude"] = latitude;
57
+ if (longitude) attrs["geo.longitude"] = longitude;
58
+ return attrs;
66
59
  }
67
- var DIGITS_RE = /^\d+$/;
60
+ const DIGITS_RE = /^\d+$/;
68
61
  function parseContentLength(value) {
69
- if (!value || !DIGITS_RE.test(value)) return void 0;
70
- return Number(value);
62
+ if (!value || !DIGITS_RE.test(value)) return void 0;
63
+ return Number(value);
71
64
  }
72
65
  function requestSize(requestHeaders, responseHeaders) {
73
- const reqLen = get(requestHeaders, "content-length");
74
- const resLen = responseHeaders ? get(responseHeaders, "content-length") : void 0;
75
- if (!reqLen && !resLen) return void 0;
76
- const attrs = {};
77
- const reqBytes = parseContentLength(reqLen);
78
- if (reqBytes !== void 0) attrs["http.request.body.size"] = reqBytes;
79
- const resBytes = parseContentLength(resLen);
80
- if (resBytes !== void 0) attrs["http.response.body.size"] = resBytes;
81
- return Object.keys(attrs).length > 0 ? attrs : void 0;
66
+ const reqLen = get(requestHeaders, "content-length");
67
+ const resLen = responseHeaders ? get(responseHeaders, "content-length") : void 0;
68
+ if (!reqLen && !resLen) return void 0;
69
+ const attrs = {};
70
+ const reqBytes = parseContentLength(reqLen);
71
+ if (reqBytes !== void 0) attrs["http.request.body.size"] = reqBytes;
72
+ const resBytes = parseContentLength(resLen);
73
+ if (resBytes !== void 0) attrs["http.response.body.size"] = resBytes;
74
+ return Object.keys(attrs).length > 0 ? attrs : void 0;
82
75
  }
83
76
 
77
+ //#endregion
84
78
  exports.geo = geo;
85
79
  exports.requestSize = requestSize;
86
80
  exports.userAgent = userAgent;
87
- //# sourceMappingURL=enrichers.cjs.map
88
81
  //# sourceMappingURL=enrichers.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/enrichers.ts"],"names":[],"mappings":"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","file":"enrichers.cjs","sourcesContent":["type Headers = Record<string, string | string[] | undefined>;\n\nfunction get(headers: Headers, key: string): string | undefined {\n const lower = key.toLowerCase();\n for (const [k, v] of Object.entries(headers)) {\n if (k.toLowerCase() === lower) {\n return Array.isArray(v) ? v[0] : v;\n }\n }\n return undefined;\n}\n\n// --- User Agent ---\n\nexport interface UserAgentAttributes {\n 'user_agent.raw': string;\n 'user_agent.browser'?: string;\n 'user_agent.os'?: string;\n 'user_agent.device'?: string;\n}\n\nconst BROWSER_RE = /(Firefox|OPR|Edg|Chrome|Safari|MSIE|Trident)[\\s/]?([\\d.]*)/;\nconst OS_RE =\n /(Windows NT|Mac OS X|Linux|Android|iPhone OS|iPad|CrOS)[\\s]?([\\d._]*)/;\n\nfunction parseBrowser(ua: string): string | undefined {\n const m = BROWSER_RE.exec(ua);\n if (!m) return undefined;\n const name =\n m[1] === 'OPR'\n ? 'Opera'\n : m[1] === 'Edg'\n ? 'Edge'\n : m[1] === 'Trident'\n ? 'IE'\n : m[1];\n return m[2] ? `${name} ${m[2]}` : name;\n}\n\nfunction parseOS(ua: string): string | undefined {\n const m = OS_RE.exec(ua);\n if (!m) return undefined;\n const name =\n m[1] === 'iPhone OS'\n ? 'iOS'\n : m[1] === 'Windows NT'\n ? 'Windows'\n : m[1] === 'Mac OS X'\n ? 'macOS'\n : m[1];\n const ver = m[2]?.replaceAll('_', '.') || undefined;\n return ver ? `${name} ${ver}` : name;\n}\n\nfunction parseDevice(ua: string): string | undefined {\n if (/Mobi|Android.*Mobile|iPhone/.test(ua)) return 'mobile';\n if (/iPad|Android(?!.*Mobile)|Tablet/.test(ua)) return 'tablet';\n if (/Bot|Crawler|Spider|Lighthouse/i.test(ua)) return 'bot';\n return 'desktop';\n}\n\nexport function userAgent(headers: Headers): UserAgentAttributes | undefined {\n const raw = get(headers, 'user-agent');\n if (!raw) return undefined;\n\n const attrs: UserAgentAttributes = { 'user_agent.raw': raw };\n const browser = parseBrowser(raw);\n if (browser) attrs['user_agent.browser'] = browser;\n const os = parseOS(raw);\n if (os) attrs['user_agent.os'] = os;\n const device = parseDevice(raw);\n if (device) attrs['user_agent.device'] = device;\n\n return attrs;\n}\n\n// --- Geo ---\n\nexport interface GeoAttributes {\n 'geo.country'?: string;\n 'geo.region'?: string;\n 'geo.city'?: string;\n 'geo.latitude'?: string;\n 'geo.longitude'?: string;\n}\n\nexport function geo(headers: Headers): GeoAttributes | undefined {\n const country =\n get(headers, 'x-vercel-ip-country') ?? get(headers, 'cf-ipcountry');\n const region = get(headers, 'x-vercel-ip-country-region');\n const city = get(headers, 'x-vercel-ip-city');\n const latitude = get(headers, 'x-vercel-ip-latitude');\n const longitude = get(headers, 'x-vercel-ip-longitude');\n\n if (!country && !region && !city && !latitude && !longitude) return undefined;\n\n const attrs: GeoAttributes = {};\n if (country) attrs['geo.country'] = country;\n if (region) attrs['geo.region'] = region;\n if (city) {\n try {\n attrs['geo.city'] = decodeURIComponent(city);\n } catch {\n attrs['geo.city'] = city;\n }\n }\n if (latitude) attrs['geo.latitude'] = latitude;\n if (longitude) attrs['geo.longitude'] = longitude;\n\n return attrs;\n}\n\n// --- Request Size ---\n\nexport interface RequestSizeAttributes {\n 'http.request.body.size'?: number;\n 'http.response.body.size'?: number;\n}\n\nconst DIGITS_RE = /^\\d+$/;\n\nfunction parseContentLength(value: string | undefined): number | undefined {\n if (!value || !DIGITS_RE.test(value)) return undefined;\n return Number(value);\n}\n\nexport function requestSize(\n requestHeaders: Headers,\n responseHeaders?: Headers,\n): RequestSizeAttributes | undefined {\n const reqLen = get(requestHeaders, 'content-length');\n const resLen = responseHeaders\n ? get(responseHeaders, 'content-length')\n : undefined;\n\n if (!reqLen && !resLen) return undefined;\n\n const attrs: RequestSizeAttributes = {};\n const reqBytes = parseContentLength(reqLen);\n if (reqBytes !== undefined) attrs['http.request.body.size'] = reqBytes;\n const resBytes = parseContentLength(resLen);\n if (resBytes !== undefined) attrs['http.response.body.size'] = resBytes;\n\n return Object.keys(attrs).length > 0 ? attrs : undefined;\n}\n"]}
1
+ {"version":3,"file":"enrichers.cjs","names":[],"sources":["../src/enrichers.ts"],"sourcesContent":["type Headers = Record<string, string | string[] | undefined>;\n\nfunction get(headers: Headers, key: string): string | undefined {\n const lower = key.toLowerCase();\n for (const [k, v] of Object.entries(headers)) {\n if (k.toLowerCase() === lower) {\n return Array.isArray(v) ? v[0] : v;\n }\n }\n return undefined;\n}\n\n// --- User Agent ---\n\nexport interface UserAgentAttributes {\n 'user_agent.raw': string;\n 'user_agent.browser'?: string;\n 'user_agent.os'?: string;\n 'user_agent.device'?: string;\n}\n\nconst BROWSER_RE = /(Firefox|OPR|Edg|Chrome|Safari|MSIE|Trident)[\\s/]?([\\d.]*)/;\nconst OS_RE =\n /(Windows NT|Mac OS X|Linux|Android|iPhone OS|iPad|CrOS)[\\s]?([\\d._]*)/;\n\nfunction parseBrowser(ua: string): string | undefined {\n const m = BROWSER_RE.exec(ua);\n if (!m) return undefined;\n const name =\n m[1] === 'OPR'\n ? 'Opera'\n : m[1] === 'Edg'\n ? 'Edge'\n : m[1] === 'Trident'\n ? 'IE'\n : m[1];\n return m[2] ? `${name} ${m[2]}` : name;\n}\n\nfunction parseOS(ua: string): string | undefined {\n const m = OS_RE.exec(ua);\n if (!m) return undefined;\n const name =\n m[1] === 'iPhone OS'\n ? 'iOS'\n : m[1] === 'Windows NT'\n ? 'Windows'\n : m[1] === 'Mac OS X'\n ? 'macOS'\n : m[1];\n const ver = m[2]?.replaceAll('_', '.') || undefined;\n return ver ? `${name} ${ver}` : name;\n}\n\nfunction parseDevice(ua: string): string | undefined {\n if (/Mobi|Android.*Mobile|iPhone/.test(ua)) return 'mobile';\n if (/iPad|Android(?!.*Mobile)|Tablet/.test(ua)) return 'tablet';\n if (/Bot|Crawler|Spider|Lighthouse/i.test(ua)) return 'bot';\n return 'desktop';\n}\n\nexport function userAgent(headers: Headers): UserAgentAttributes | undefined {\n const raw = get(headers, 'user-agent');\n if (!raw) return undefined;\n\n const attrs: UserAgentAttributes = { 'user_agent.raw': raw };\n const browser = parseBrowser(raw);\n if (browser) attrs['user_agent.browser'] = browser;\n const os = parseOS(raw);\n if (os) attrs['user_agent.os'] = os;\n const device = parseDevice(raw);\n if (device) attrs['user_agent.device'] = device;\n\n return attrs;\n}\n\n// --- Geo ---\n\nexport interface GeoAttributes {\n 'geo.country'?: string;\n 'geo.region'?: string;\n 'geo.city'?: string;\n 'geo.latitude'?: string;\n 'geo.longitude'?: string;\n}\n\nexport function geo(headers: Headers): GeoAttributes | undefined {\n const country =\n get(headers, 'x-vercel-ip-country') ?? get(headers, 'cf-ipcountry');\n const region = get(headers, 'x-vercel-ip-country-region');\n const city = get(headers, 'x-vercel-ip-city');\n const latitude = get(headers, 'x-vercel-ip-latitude');\n const longitude = get(headers, 'x-vercel-ip-longitude');\n\n if (!country && !region && !city && !latitude && !longitude) return undefined;\n\n const attrs: GeoAttributes = {};\n if (country) attrs['geo.country'] = country;\n if (region) attrs['geo.region'] = region;\n if (city) {\n try {\n attrs['geo.city'] = decodeURIComponent(city);\n } catch {\n attrs['geo.city'] = city;\n }\n }\n if (latitude) attrs['geo.latitude'] = latitude;\n if (longitude) attrs['geo.longitude'] = longitude;\n\n return attrs;\n}\n\n// --- Request Size ---\n\nexport interface RequestSizeAttributes {\n 'http.request.body.size'?: number;\n 'http.response.body.size'?: number;\n}\n\nconst DIGITS_RE = /^\\d+$/;\n\nfunction parseContentLength(value: string | undefined): number | undefined {\n if (!value || !DIGITS_RE.test(value)) return undefined;\n return Number(value);\n}\n\nexport function requestSize(\n requestHeaders: Headers,\n responseHeaders?: Headers,\n): RequestSizeAttributes | undefined {\n const reqLen = get(requestHeaders, 'content-length');\n const resLen = responseHeaders\n ? get(responseHeaders, 'content-length')\n : undefined;\n\n if (!reqLen && !resLen) return undefined;\n\n const attrs: RequestSizeAttributes = {};\n const reqBytes = parseContentLength(reqLen);\n if (reqBytes !== undefined) attrs['http.request.body.size'] = reqBytes;\n const resBytes = parseContentLength(resLen);\n if (resBytes !== undefined) attrs['http.response.body.size'] = resBytes;\n\n return Object.keys(attrs).length > 0 ? attrs : undefined;\n}\n"],"mappings":"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"}
@@ -1,23 +1,25 @@
1
+ //#region src/enrichers.d.ts
1
2
  type Headers = Record<string, string | string[] | undefined>;
2
3
  interface UserAgentAttributes {
3
- 'user_agent.raw': string;
4
- 'user_agent.browser'?: string;
5
- 'user_agent.os'?: string;
6
- 'user_agent.device'?: string;
4
+ 'user_agent.raw': string;
5
+ 'user_agent.browser'?: string;
6
+ 'user_agent.os'?: string;
7
+ 'user_agent.device'?: string;
7
8
  }
8
9
  declare function userAgent(headers: Headers): UserAgentAttributes | undefined;
9
10
  interface GeoAttributes {
10
- 'geo.country'?: string;
11
- 'geo.region'?: string;
12
- 'geo.city'?: string;
13
- 'geo.latitude'?: string;
14
- 'geo.longitude'?: string;
11
+ 'geo.country'?: string;
12
+ 'geo.region'?: string;
13
+ 'geo.city'?: string;
14
+ 'geo.latitude'?: string;
15
+ 'geo.longitude'?: string;
15
16
  }
16
17
  declare function geo(headers: Headers): GeoAttributes | undefined;
17
18
  interface RequestSizeAttributes {
18
- 'http.request.body.size'?: number;
19
- 'http.response.body.size'?: number;
19
+ 'http.request.body.size'?: number;
20
+ 'http.response.body.size'?: number;
20
21
  }
21
22
  declare function requestSize(requestHeaders: Headers, responseHeaders?: Headers): RequestSizeAttributes | undefined;
22
-
23
- export { type GeoAttributes, type RequestSizeAttributes, type UserAgentAttributes, geo, requestSize, userAgent };
23
+ //#endregion
24
+ export { GeoAttributes, RequestSizeAttributes, UserAgentAttributes, geo, requestSize, userAgent };
25
+ //# sourceMappingURL=enrichers.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"enrichers.d.cts","names":[],"sources":["../src/enrichers.ts"],"mappings":";KAAK,OAAA,GAAU,MAAM;AAAA,UAcJ,mBAAA;EACf,gBAAA;EACA,oBAAA;EACA,eAAA;EACA,mBAAA;AAAA;AAAA,iBA2Cc,SAAA,CAAU,OAAA,EAAS,OAAA,GAAU,mBAAmB;AAAA,UAiB/C,aAAA;EACf,aAAA;EACA,YAAA;EACA,UAAA;EACA,cAAA;EACA,eAAA;AAAA;AAAA,iBAGc,GAAA,CAAI,OAAA,EAAS,OAAA,GAAU,aAAa;AAAA,UA4BnC,qBAAA;EACf,wBAAA;EACA,yBAAyB;AAAA;AAAA,iBAUX,WAAA,CACd,cAAA,EAAgB,OAAA,EAChB,eAAA,GAAkB,OAAA,GACjB,qBAAA"}
@@ -1,23 +1,25 @@
1
+ //#region src/enrichers.d.ts
1
2
  type Headers = Record<string, string | string[] | undefined>;
2
3
  interface UserAgentAttributes {
3
- 'user_agent.raw': string;
4
- 'user_agent.browser'?: string;
5
- 'user_agent.os'?: string;
6
- 'user_agent.device'?: string;
4
+ 'user_agent.raw': string;
5
+ 'user_agent.browser'?: string;
6
+ 'user_agent.os'?: string;
7
+ 'user_agent.device'?: string;
7
8
  }
8
9
  declare function userAgent(headers: Headers): UserAgentAttributes | undefined;
9
10
  interface GeoAttributes {
10
- 'geo.country'?: string;
11
- 'geo.region'?: string;
12
- 'geo.city'?: string;
13
- 'geo.latitude'?: string;
14
- 'geo.longitude'?: string;
11
+ 'geo.country'?: string;
12
+ 'geo.region'?: string;
13
+ 'geo.city'?: string;
14
+ 'geo.latitude'?: string;
15
+ 'geo.longitude'?: string;
15
16
  }
16
17
  declare function geo(headers: Headers): GeoAttributes | undefined;
17
18
  interface RequestSizeAttributes {
18
- 'http.request.body.size'?: number;
19
- 'http.response.body.size'?: number;
19
+ 'http.request.body.size'?: number;
20
+ 'http.response.body.size'?: number;
20
21
  }
21
22
  declare function requestSize(requestHeaders: Headers, responseHeaders?: Headers): RequestSizeAttributes | undefined;
22
-
23
- export { type GeoAttributes, type RequestSizeAttributes, type UserAgentAttributes, geo, requestSize, userAgent };
23
+ //#endregion
24
+ export { GeoAttributes, RequestSizeAttributes, UserAgentAttributes, geo, requestSize, userAgent };
25
+ //# sourceMappingURL=enrichers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"enrichers.d.ts","names":[],"sources":["../src/enrichers.ts"],"mappings":";KAAK,OAAA,GAAU,MAAM;AAAA,UAcJ,mBAAA;EACf,gBAAA;EACA,oBAAA;EACA,eAAA;EACA,mBAAA;AAAA;AAAA,iBA2Cc,SAAA,CAAU,OAAA,EAAS,OAAA,GAAU,mBAAmB;AAAA,UAiB/C,aAAA;EACf,aAAA;EACA,YAAA;EACA,UAAA;EACA,cAAA;EACA,eAAA;AAAA;AAAA,iBAGc,GAAA,CAAI,OAAA,EAAS,OAAA,GAAU,aAAa;AAAA,UA4BnC,qBAAA;EACf,wBAAA;EACA,yBAAyB;AAAA;AAAA,iBAUX,WAAA,CACd,cAAA,EAAgB,OAAA,EAChB,eAAA,GAAkB,OAAA,GACjB,qBAAA"}