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,51 +1,26 @@
1
- import { S as SchemaLike } from './define-event-ClP3T1Jx.cjs';
2
- import './event-subscriber.cjs';
3
-
4
- /**
5
- * Validation telemetry — connect runtime input validation (Zod or any
6
- * `safeParse` schema) to your traces and metrics at the boundaries where bad
7
- * data actually enters: HTTP bodies, events, messages.
8
- *
9
- * Today a `safeParse` failure either throws (no span, no metric, no alert) or
10
- * is silently swallowed in a handler. `defineValidator` makes the mismatch
11
- * **observable** — a `validation.*` span attribute set and a counter
12
- * incremented — with a per-validator `observe` vs `reject` mode:
13
- *
14
- * - `reject` (default): record telemetry, then throw a structured 400-shaped
15
- * error so the boundary can fail cleanly.
16
- * - `observe`: record telemetry, return the raw input so the handler continues
17
- * — useful for measuring real-world drift before you enforce it.
18
- *
19
- * **Not a security feature by default.** A malformed body is usually a bug or
20
- * version skew, not an attack. Validation telemetry is first-class on its own
21
- * metric; escalation to the security path is a deliberate opt-in via
22
- * {@link onValidationMismatch} (e.g. wired by `autotel-audit`), never automatic.
23
- *
24
- * **PII-safe by construction.** Only field *paths*, issue *codes*, and the
25
- * declared *type* are ever recorded — never the offending value, and never a
26
- * validator's error `message` (which routinely embeds the received value).
27
- */
1
+ import { r as SchemaLike } from "./define-event-HZRizPwz.cjs";
28
2
 
3
+ //#region src/validate.d.ts
29
4
  type ValidationMode = 'observe' | 'reject';
30
5
  type ValidationSeverity = 'info' | 'warning' | 'error';
31
6
  /** A single failing field, stripped of any payload values. */
32
7
  interface ValidationIssue {
33
- /** Dotted field path, e.g. `items.0.price`. Never a value. */
34
- path: string;
35
- /** Issue code (e.g. Zod's `invalid_type`, `too_small`). Never a value. */
36
- code: string;
37
- /** Declared type/constraint summary, e.g. `string`. Never a received value. */
38
- expected?: string;
8
+ /** Dotted field path, e.g. `items.0.price`. Never a value. */
9
+ path: string;
10
+ /** Issue code (e.g. Zod's `invalid_type`, `too_small`). Never a value. */
11
+ code: string;
12
+ /** Declared type/constraint summary, e.g. `string`. Never a received value. */
13
+ expected?: string;
39
14
  }
40
15
  /** Everything the recorder needs — already PII-stripped by the caller. */
41
16
  interface ValidationMismatch {
42
- /** Contract id, e.g. `POST /orders` or `order.placed`. */
43
- name: string;
44
- boundary: string;
45
- mode: ValidationMode;
46
- issues: ValidationIssue[];
47
- hash?: string;
48
- severity?: ValidationSeverity;
17
+ /** Contract id, e.g. `POST /orders` or `order.placed`. */
18
+ name: string;
19
+ boundary: string;
20
+ mode: ValidationMode;
21
+ issues: ValidationIssue[];
22
+ hash?: string;
23
+ severity?: ValidationSeverity;
49
24
  }
50
25
  type MismatchListener = (mismatch: ValidationMismatch) => void;
51
26
  /**
@@ -75,33 +50,33 @@ declare function recordValidationMismatch(mismatch: ValidationMismatch): void;
75
50
  */
76
51
  declare function formatValidationIssues(error: unknown): ValidationIssue[];
77
52
  interface DefineValidatorOptions<S> {
78
- /** Where validation runs. Defaults to `input`. */
79
- boundary?: string;
80
- /** `reject` (default): record then throw. `observe`: record then continue. */
81
- onMismatch?: ValidationMode;
82
- /** Project the schema to JSON Schema for a stable `validation.hash`. */
83
- toJsonSchema?: (schema: S) => unknown;
84
- severity?: ValidationSeverity;
85
- /** Build the error thrown in `reject` mode (defaults to a 400 structured error). */
86
- onReject?: (issues: ValidationIssue[], name: string) => Error;
53
+ /** Where validation runs. Defaults to `input`. */
54
+ boundary?: string;
55
+ /** `reject` (default): record then throw. `observe`: record then continue. */
56
+ onMismatch?: ValidationMode;
57
+ /** Project the schema to JSON Schema for a stable `validation.hash`. */
58
+ toJsonSchema?: (schema: S) => unknown;
59
+ severity?: ValidationSeverity;
60
+ /** Build the error thrown in `reject` mode (defaults to a 400 structured error). */
61
+ onReject?: (issues: ValidationIssue[], name: string) => Error;
87
62
  }
88
63
  type ValidatorResult<T> = {
89
- success: true;
90
- data: T;
64
+ success: true;
65
+ data: T;
91
66
  } | {
92
- success: false;
93
- issues: ValidationIssue[];
67
+ success: false;
68
+ issues: ValidationIssue[];
94
69
  };
95
70
  interface Validator<T> {
96
- readonly name: string;
97
- readonly mode: ValidationMode;
98
- /** Validate and record on failure; never throws. */
99
- safeParse(input: unknown): ValidatorResult<T>;
100
- /**
101
- * Validate, record on failure, then apply the mode: `reject` throws,
102
- * `observe` returns the raw input so the handler can continue.
103
- */
104
- parse(input: unknown): T;
71
+ readonly name: string;
72
+ readonly mode: ValidationMode;
73
+ /** Validate and record on failure; never throws. */
74
+ safeParse(input: unknown): ValidatorResult<T>;
75
+ /**
76
+ * Validate, record on failure, then apply the mode: `reject` throws,
77
+ * `observe` returns the raw input so the handler can continue.
78
+ */
79
+ parse(input: unknown): T;
105
80
  }
106
81
  /**
107
82
  * Declare an expected input shape once and get a validator that records every
@@ -125,5 +100,6 @@ interface Validator<T> {
125
100
  * ```
126
101
  */
127
102
  declare function defineValidator<T, S extends SchemaLike<T>>(name: string, schema: S, options?: DefineValidatorOptions<S>): Validator<T>;
128
-
129
- export { type DefineValidatorOptions, SchemaLike, type ValidationIssue, type ValidationMismatch, type ValidationMode, type ValidationSeverity, type Validator, type ValidatorResult, defineValidator, formatValidationIssues, onValidationMismatch, recordValidationMismatch };
103
+ //#endregion
104
+ export { DefineValidatorOptions, type SchemaLike, ValidationIssue, ValidationMismatch, ValidationMode, ValidationSeverity, Validator, ValidatorResult, defineValidator, formatValidationIssues, onValidationMismatch, recordValidationMismatch };
105
+ //# sourceMappingURL=validate.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate.d.cts","names":[],"sources":["../src/validate.ts"],"mappings":";;;KAyCY,cAAA;AAAA,KACA,kBAAA;;UAGK,eAAA;EAYf;EAVA,IAAA;EAYA;EAVA,IAAA;EAWA;EATA,QAAA;AAAA;;UAIe,kBAAA;EAOc;EAL7B,IAAA;EACA,QAAA;EACA,IAAA,EAAM,cAAA;EACN,MAAA,EAAQ,eAAA;EACR,IAAA;EACA,QAAA,GAAW,kBAAA;AAAA;AAAA,KAaR,gBAAA,IAAoB,QAA4B,EAAlB,kBAAkB;;;AAcS;AAe9D;;;;AAAqE;AAqDrE;;;iBApEgB,oBAAA,CAAqB,OAAyB,EAAhB,gBAAgB;AAoES;AAmCvE;;;;AAnCuE,iBArDvD,wBAAA,CAAyB,QAA4B,EAAlB,kBAAkB;;;;;;;;iBAqDrD,sBAAA,CAAuB,KAAA,YAAiB,eAAe;AAAA,UAmCtD,sBAAA;EAMf;EAJA,QAAA;EAIgB;EAFhB,UAAA,GAAa,cAAA;EAGF;EADX,YAAA,IAAgB,MAAA,EAAQ,CAAA;EACxB,QAAA,GAAW,kBAAA;EAEC;EAAZ,QAAA,IAAY,MAAA,EAAQ,eAAA,IAAmB,IAAA,aAAiB,KAAA;AAAA;AAAA,KAG9C,eAAA;EACN,OAAA;EAAe,IAAA,EAAM,CAAA;AAAA;EACrB,OAAA;EAAgB,MAAA,EAAQ,eAAe;AAAA;AAAA,UAE5B,SAAA;EAAA,SACN,IAAA;EAAA,SACA,IAAA,EAAM,cAAA;EAJX;EAMJ,SAAA,CAAU,KAAA,YAAiB,eAAA,CAAgB,CAAA;EANf;;AAAe;AAE7C;EASE,KAAA,CAAM,KAAA,YAAiB,CAAA;AAAA;;;;;;;;;;;;;;;;;;;AAAC;AA2C1B;;iBAAgB,eAAA,cAA6B,UAAA,CAAW,CAAA,GACtD,IAAA,UACA,MAAA,EAAQ,CAAA,EACR,OAAA,GAAS,sBAAA,CAAuB,CAAA,IAC/B,SAAA,CAAU,CAAA"}
@@ -1,51 +1,26 @@
1
- import { S as SchemaLike } from './define-event-BL6Li7CM.js';
2
- import './event-subscriber.js';
3
-
4
- /**
5
- * Validation telemetry — connect runtime input validation (Zod or any
6
- * `safeParse` schema) to your traces and metrics at the boundaries where bad
7
- * data actually enters: HTTP bodies, events, messages.
8
- *
9
- * Today a `safeParse` failure either throws (no span, no metric, no alert) or
10
- * is silently swallowed in a handler. `defineValidator` makes the mismatch
11
- * **observable** — a `validation.*` span attribute set and a counter
12
- * incremented — with a per-validator `observe` vs `reject` mode:
13
- *
14
- * - `reject` (default): record telemetry, then throw a structured 400-shaped
15
- * error so the boundary can fail cleanly.
16
- * - `observe`: record telemetry, return the raw input so the handler continues
17
- * — useful for measuring real-world drift before you enforce it.
18
- *
19
- * **Not a security feature by default.** A malformed body is usually a bug or
20
- * version skew, not an attack. Validation telemetry is first-class on its own
21
- * metric; escalation to the security path is a deliberate opt-in via
22
- * {@link onValidationMismatch} (e.g. wired by `autotel-audit`), never automatic.
23
- *
24
- * **PII-safe by construction.** Only field *paths*, issue *codes*, and the
25
- * declared *type* are ever recorded — never the offending value, and never a
26
- * validator's error `message` (which routinely embeds the received value).
27
- */
1
+ import { r as SchemaLike } from "./define-event-CreknLm3.js";
28
2
 
3
+ //#region src/validate.d.ts
29
4
  type ValidationMode = 'observe' | 'reject';
30
5
  type ValidationSeverity = 'info' | 'warning' | 'error';
31
6
  /** A single failing field, stripped of any payload values. */
32
7
  interface ValidationIssue {
33
- /** Dotted field path, e.g. `items.0.price`. Never a value. */
34
- path: string;
35
- /** Issue code (e.g. Zod's `invalid_type`, `too_small`). Never a value. */
36
- code: string;
37
- /** Declared type/constraint summary, e.g. `string`. Never a received value. */
38
- expected?: string;
8
+ /** Dotted field path, e.g. `items.0.price`. Never a value. */
9
+ path: string;
10
+ /** Issue code (e.g. Zod's `invalid_type`, `too_small`). Never a value. */
11
+ code: string;
12
+ /** Declared type/constraint summary, e.g. `string`. Never a received value. */
13
+ expected?: string;
39
14
  }
40
15
  /** Everything the recorder needs — already PII-stripped by the caller. */
41
16
  interface ValidationMismatch {
42
- /** Contract id, e.g. `POST /orders` or `order.placed`. */
43
- name: string;
44
- boundary: string;
45
- mode: ValidationMode;
46
- issues: ValidationIssue[];
47
- hash?: string;
48
- severity?: ValidationSeverity;
17
+ /** Contract id, e.g. `POST /orders` or `order.placed`. */
18
+ name: string;
19
+ boundary: string;
20
+ mode: ValidationMode;
21
+ issues: ValidationIssue[];
22
+ hash?: string;
23
+ severity?: ValidationSeverity;
49
24
  }
50
25
  type MismatchListener = (mismatch: ValidationMismatch) => void;
51
26
  /**
@@ -75,33 +50,33 @@ declare function recordValidationMismatch(mismatch: ValidationMismatch): void;
75
50
  */
76
51
  declare function formatValidationIssues(error: unknown): ValidationIssue[];
77
52
  interface DefineValidatorOptions<S> {
78
- /** Where validation runs. Defaults to `input`. */
79
- boundary?: string;
80
- /** `reject` (default): record then throw. `observe`: record then continue. */
81
- onMismatch?: ValidationMode;
82
- /** Project the schema to JSON Schema for a stable `validation.hash`. */
83
- toJsonSchema?: (schema: S) => unknown;
84
- severity?: ValidationSeverity;
85
- /** Build the error thrown in `reject` mode (defaults to a 400 structured error). */
86
- onReject?: (issues: ValidationIssue[], name: string) => Error;
53
+ /** Where validation runs. Defaults to `input`. */
54
+ boundary?: string;
55
+ /** `reject` (default): record then throw. `observe`: record then continue. */
56
+ onMismatch?: ValidationMode;
57
+ /** Project the schema to JSON Schema for a stable `validation.hash`. */
58
+ toJsonSchema?: (schema: S) => unknown;
59
+ severity?: ValidationSeverity;
60
+ /** Build the error thrown in `reject` mode (defaults to a 400 structured error). */
61
+ onReject?: (issues: ValidationIssue[], name: string) => Error;
87
62
  }
88
63
  type ValidatorResult<T> = {
89
- success: true;
90
- data: T;
64
+ success: true;
65
+ data: T;
91
66
  } | {
92
- success: false;
93
- issues: ValidationIssue[];
67
+ success: false;
68
+ issues: ValidationIssue[];
94
69
  };
95
70
  interface Validator<T> {
96
- readonly name: string;
97
- readonly mode: ValidationMode;
98
- /** Validate and record on failure; never throws. */
99
- safeParse(input: unknown): ValidatorResult<T>;
100
- /**
101
- * Validate, record on failure, then apply the mode: `reject` throws,
102
- * `observe` returns the raw input so the handler can continue.
103
- */
104
- parse(input: unknown): T;
71
+ readonly name: string;
72
+ readonly mode: ValidationMode;
73
+ /** Validate and record on failure; never throws. */
74
+ safeParse(input: unknown): ValidatorResult<T>;
75
+ /**
76
+ * Validate, record on failure, then apply the mode: `reject` throws,
77
+ * `observe` returns the raw input so the handler can continue.
78
+ */
79
+ parse(input: unknown): T;
105
80
  }
106
81
  /**
107
82
  * Declare an expected input shape once and get a validator that records every
@@ -125,5 +100,6 @@ interface Validator<T> {
125
100
  * ```
126
101
  */
127
102
  declare function defineValidator<T, S extends SchemaLike<T>>(name: string, schema: S, options?: DefineValidatorOptions<S>): Validator<T>;
128
-
129
- export { type DefineValidatorOptions, SchemaLike, type ValidationIssue, type ValidationMismatch, type ValidationMode, type ValidationSeverity, type Validator, type ValidatorResult, defineValidator, formatValidationIssues, onValidationMismatch, recordValidationMismatch };
103
+ //#endregion
104
+ export { DefineValidatorOptions, type SchemaLike, ValidationIssue, ValidationMismatch, ValidationMode, ValidationSeverity, Validator, ValidatorResult, defineValidator, formatValidationIssues, onValidationMismatch, recordValidationMismatch };
105
+ //# sourceMappingURL=validate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate.d.ts","names":[],"sources":["../src/validate.ts"],"mappings":";;;KAyCY,cAAA;AAAA,KACA,kBAAA;;UAGK,eAAA;EAYf;EAVA,IAAA;EAYA;EAVA,IAAA;EAWA;EATA,QAAA;AAAA;;UAIe,kBAAA;EAOc;EAL7B,IAAA;EACA,QAAA;EACA,IAAA,EAAM,cAAA;EACN,MAAA,EAAQ,eAAA;EACR,IAAA;EACA,QAAA,GAAW,kBAAA;AAAA;AAAA,KAaR,gBAAA,IAAoB,QAA4B,EAAlB,kBAAkB;;;AAcS;AAe9D;;;;AAAqE;AAqDrE;;;iBApEgB,oBAAA,CAAqB,OAAyB,EAAhB,gBAAgB;AAoES;AAmCvE;;;;AAnCuE,iBArDvD,wBAAA,CAAyB,QAA4B,EAAlB,kBAAkB;;;;;;;;iBAqDrD,sBAAA,CAAuB,KAAA,YAAiB,eAAe;AAAA,UAmCtD,sBAAA;EAMf;EAJA,QAAA;EAIgB;EAFhB,UAAA,GAAa,cAAA;EAGF;EADX,YAAA,IAAgB,MAAA,EAAQ,CAAA;EACxB,QAAA,GAAW,kBAAA;EAEC;EAAZ,QAAA,IAAY,MAAA,EAAQ,eAAA,IAAmB,IAAA,aAAiB,KAAA;AAAA;AAAA,KAG9C,eAAA;EACN,OAAA;EAAe,IAAA,EAAM,CAAA;AAAA;EACrB,OAAA;EAAgB,MAAA,EAAQ,eAAe;AAAA;AAAA,UAE5B,SAAA;EAAA,SACN,IAAA;EAAA,SACA,IAAA,EAAM,cAAA;EAJX;EAMJ,SAAA,CAAU,KAAA,YAAiB,eAAA,CAAgB,CAAA;EANf;;AAAe;AAE7C;EASE,KAAA,CAAM,KAAA,YAAiB,CAAA;AAAA;;;;;;;;;;;;;;;;;;;AAAC;AA2C1B;;iBAAgB,eAAA,cAA6B,UAAA,CAAW,CAAA,GACtD,IAAA,UACA,MAAA,EAAQ,CAAA,EACR,OAAA,GAAS,sBAAA,CAAuB,CAAA,IAC/B,SAAA,CAAU,CAAA"}
package/dist/validate.js CHANGED
@@ -1,133 +1,197 @@
1
- import { VALIDATION_ATTR, VALIDATION_ISSUE_CAP, VALIDATION_METRICS } from './chunk-DCEDJQGG.js';
2
- import { hashJson } from './chunk-UNPLAVE7.js';
3
- import { createCounter } from './chunk-TQ5UWA7S.js';
4
- import { createStructuredError } from './chunk-LVIPBYFE.js';
5
- import './chunk-J5QENANM.js';
6
- import './chunk-HA2WBOGQ.js';
7
- import { trace } from '@opentelemetry/api';
1
+ import { t as createStructuredError } from "./structured-error-9--cxBay.js";
2
+ import { t as hashJson } from "./stable-hash-Cg5cT34Q.js";
3
+ import { createCounter } from "./metric-helpers.js";
4
+ import { VALIDATION_ATTR, VALIDATION_ISSUE_CAP, VALIDATION_METRICS } from "./validation-attributes.js";
5
+ import { trace } from "@opentelemetry/api";
8
6
 
9
- var mismatchCounter;
7
+ //#region src/validate.ts
8
+ /**
9
+ * Validation telemetry — connect runtime input validation (Zod or any
10
+ * `safeParse` schema) to your traces and metrics at the boundaries where bad
11
+ * data actually enters: HTTP bodies, events, messages.
12
+ *
13
+ * Today a `safeParse` failure either throws (no span, no metric, no alert) or
14
+ * is silently swallowed in a handler. `defineValidator` makes the mismatch
15
+ * **observable** — a `validation.*` span attribute set and a counter
16
+ * incremented — with a per-validator `observe` vs `reject` mode:
17
+ *
18
+ * - `reject` (default): record telemetry, then throw a structured 400-shaped
19
+ * error so the boundary can fail cleanly.
20
+ * - `observe`: record telemetry, return the raw input so the handler continues
21
+ * — useful for measuring real-world drift before you enforce it.
22
+ *
23
+ * **Not a security feature by default.** A malformed body is usually a bug or
24
+ * version skew, not an attack. Validation telemetry is first-class on its own
25
+ * metric; escalation to the security path is a deliberate opt-in via
26
+ * {@link onValidationMismatch} (e.g. wired by `autotel-audit`), never automatic.
27
+ *
28
+ * **PII-safe by construction.** Only field *paths*, issue *codes*, and the
29
+ * declared *type* are ever recorded — never the offending value, and never a
30
+ * validator's error `message` (which routinely embeds the received value).
31
+ */
32
+ let mismatchCounter;
10
33
  function counter() {
11
- if (!mismatchCounter) {
12
- mismatchCounter = createCounter(VALIDATION_METRICS.mismatches, {
13
- description: "Input payloads that did not match their declared shape"
14
- });
15
- }
16
- return mismatchCounter;
34
+ if (!mismatchCounter) mismatchCounter = createCounter(VALIDATION_METRICS.mismatches, { description: "Input payloads that did not match their declared shape" });
35
+ return mismatchCounter;
17
36
  }
18
- var listeners = /* @__PURE__ */ new Set();
37
+ const listeners = /* @__PURE__ */ new Set();
38
+ /**
39
+ * Register an explicit handler called on every recorded mismatch — the opt-in
40
+ * seam for escalating to security events, a webhook, or a custom sink. There is
41
+ * no automatic, package-presence-driven escalation: nothing fires here unless
42
+ * you (or a package you wire up) register a handler.
43
+ *
44
+ * Multiple subscribers coexist: a package (e.g. `autotel-audit` bridging to
45
+ * security events) and your own app code (a webhook, a logger) can both
46
+ * register and all fire. Returns an unsubscribe fn that removes only this
47
+ * handler; registering the same function twice is a no-op (Set semantics).
48
+ */
19
49
  function onValidationMismatch(handler) {
20
- listeners.add(handler);
21
- return () => {
22
- listeners.delete(handler);
23
- };
50
+ listeners.add(handler);
51
+ return () => {
52
+ listeners.delete(handler);
53
+ };
24
54
  }
25
- var truncate = (values) => values.slice(0, VALIDATION_ISSUE_CAP).join(",");
55
+ const truncate = (values) => values.slice(0, 20).join(",");
56
+ /**
57
+ * Record a validation mismatch as telemetry: `validation.*` attributes on the
58
+ * active span (if any) and an increment on `autotel.validation.mismatches`.
59
+ * Fail-open — never throws, so instrumentation can't break the boundary.
60
+ */
26
61
  function recordValidationMismatch(mismatch) {
27
- try {
28
- const paths = mismatch.issues.map((i) => i.path).filter(Boolean);
29
- const codes = [...new Set(mismatch.issues.map((i) => i.code))];
30
- const span = trace.getActiveSpan();
31
- if (span) {
32
- span.setAttributes({
33
- [VALIDATION_ATTR.name]: mismatch.name,
34
- [VALIDATION_ATTR.boundary]: mismatch.boundary,
35
- [VALIDATION_ATTR.mode]: mismatch.mode,
36
- [VALIDATION_ATTR.issueCount]: mismatch.issues.length,
37
- [VALIDATION_ATTR.issuePaths]: truncate(paths),
38
- [VALIDATION_ATTR.issueCodes]: truncate(codes),
39
- ...mismatch.hash ? { [VALIDATION_ATTR.hash]: mismatch.hash } : {},
40
- ...mismatch.severity ? { [VALIDATION_ATTR.severity]: mismatch.severity } : {}
41
- });
42
- }
43
- try {
44
- counter().add(1, {
45
- boundary: mismatch.boundary,
46
- validation: mismatch.name,
47
- mode: mismatch.mode
48
- });
49
- } catch {
50
- }
51
- for (const listener of listeners) {
52
- try {
53
- listener(mismatch);
54
- } catch {
55
- }
56
- }
57
- } catch {
58
- }
62
+ try {
63
+ const paths = mismatch.issues.map((i) => i.path).filter(Boolean);
64
+ const codes = [...new Set(mismatch.issues.map((i) => i.code))];
65
+ const span = trace.getActiveSpan();
66
+ if (span) span.setAttributes({
67
+ [VALIDATION_ATTR.name]: mismatch.name,
68
+ [VALIDATION_ATTR.boundary]: mismatch.boundary,
69
+ [VALIDATION_ATTR.mode]: mismatch.mode,
70
+ [VALIDATION_ATTR.issueCount]: mismatch.issues.length,
71
+ [VALIDATION_ATTR.issuePaths]: truncate(paths),
72
+ [VALIDATION_ATTR.issueCodes]: truncate(codes),
73
+ ...mismatch.hash ? { [VALIDATION_ATTR.hash]: mismatch.hash } : {},
74
+ ...mismatch.severity ? { [VALIDATION_ATTR.severity]: mismatch.severity } : {}
75
+ });
76
+ try {
77
+ counter().add(1, {
78
+ boundary: mismatch.boundary,
79
+ validation: mismatch.name,
80
+ mode: mismatch.mode
81
+ });
82
+ } catch {}
83
+ for (const listener of listeners) try {
84
+ listener(mismatch);
85
+ } catch {}
86
+ } catch {}
59
87
  }
88
+ /**
89
+ * Normalise an arbitrary validation error into PII-safe issues. Reads only
90
+ * `path`, `code`, and (when it is a declared type name) `expected` — and never
91
+ * `message`, `received`, or any value-bearing field. Understands the Zod shape
92
+ * (`error.issues`) and a generic `error.errors` fallback; returns `[]` for
93
+ * anything unrecognised.
94
+ */
60
95
  function formatValidationIssues(error) {
61
- const raw = extractRawIssues(error);
62
- return raw.map((issue) => toSafeIssue(issue));
96
+ return extractRawIssues(error).map((issue) => toSafeIssue(issue));
63
97
  }
64
98
  function extractRawIssues(error) {
65
- if (error && typeof error === "object") {
66
- const candidate = error.issues ?? error.errors;
67
- if (Array.isArray(candidate)) {
68
- return candidate.filter(
69
- (i) => i !== null && typeof i === "object"
70
- );
71
- }
72
- }
73
- return [];
99
+ if (error && typeof error === "object") {
100
+ const candidate = error.issues ?? error.errors;
101
+ if (Array.isArray(candidate)) return candidate.filter((i) => i !== null && typeof i === "object");
102
+ }
103
+ return [];
74
104
  }
75
105
  function toSafeIssue(issue) {
76
- const rawPath = issue.path;
77
- const path = Array.isArray(rawPath) ? rawPath.map(String).join(".") : typeof rawPath === "string" ? rawPath : "";
78
- const code = typeof issue.code === "string" ? issue.code : "invalid";
79
- const expected = typeof issue.expected === "string" ? issue.expected : void 0;
80
- return expected ? { path, code, expected } : { path, code };
106
+ const rawPath = issue.path;
107
+ const path = Array.isArray(rawPath) ? rawPath.map(String).join(".") : typeof rawPath === "string" ? rawPath : "";
108
+ const code = typeof issue.code === "string" ? issue.code : "invalid";
109
+ const expected = typeof issue.expected === "string" ? issue.expected : void 0;
110
+ return expected ? {
111
+ path,
112
+ code,
113
+ expected
114
+ } : {
115
+ path,
116
+ code
117
+ };
81
118
  }
82
119
  function defaultRejectError(issues, name) {
83
- return createStructuredError({
84
- name: "ValidationError",
85
- status: 400,
86
- code: "validation_failed",
87
- message: `Input for "${name}" did not match its declared shape.`,
88
- why: `${issues.length} field(s) failed validation: ${issues.map((i) => i.path || "(root)").slice(0, VALIDATION_ISSUE_CAP).join(", ")}.`,
89
- fix: "Send a payload that matches the schema, or switch this validator to observe mode while you investigate.",
90
- // PII-safe: paths + codes only, no received values.
91
- details: { validation: name, issues }
92
- });
120
+ return createStructuredError({
121
+ name: "ValidationError",
122
+ status: 400,
123
+ code: "validation_failed",
124
+ message: `Input for "${name}" did not match its declared shape.`,
125
+ why: `${issues.length} field(s) failed validation: ${issues.map((i) => i.path || "(root)").slice(0, 20).join(", ")}.`,
126
+ fix: "Send a payload that matches the schema, or switch this validator to observe mode while you investigate.",
127
+ details: {
128
+ validation: name,
129
+ issues
130
+ }
131
+ });
93
132
  }
133
+ /**
134
+ * Declare an expected input shape once and get a validator that records every
135
+ * mismatch as telemetry.
136
+ *
137
+ * @example
138
+ * ```ts
139
+ * import { z } from 'zod';
140
+ * import { defineValidator } from 'autotel/validate';
141
+ *
142
+ * const OrderBody = defineValidator('POST /orders', z.object({
143
+ * items: z.array(z.object({ sku: z.string(), qty: z.number().int() })),
144
+ * }), { boundary: 'http', toJsonSchema: (s) => z.toJSONSchema(s) });
145
+ *
146
+ * // reject mode (default): records + throws a 400-shaped structured error
147
+ * const order = OrderBody.parse(req.body);
148
+ *
149
+ * // observe mode: records, returns the result, never throws
150
+ * const result = OrderBody.safeParse(req.body);
151
+ * if (!result.success) metrics.onDrift(result.issues);
152
+ * ```
153
+ */
94
154
  function defineValidator(name, schema, options = {}) {
95
- const mode = options.onMismatch ?? "reject";
96
- const boundary = options.boundary ?? "input";
97
- const hash = options.toJsonSchema ? hashJson(options.toJsonSchema(schema)) : void 0;
98
- const record = (issues) => {
99
- recordValidationMismatch({
100
- name,
101
- boundary,
102
- mode,
103
- issues,
104
- hash,
105
- severity: options.severity
106
- });
107
- };
108
- return {
109
- name,
110
- mode,
111
- safeParse(input) {
112
- const parsed = schema.safeParse(input);
113
- if (parsed.success) return { success: true, data: parsed.data };
114
- const issues = formatValidationIssues(parsed.error);
115
- record(issues);
116
- return { success: false, issues };
117
- },
118
- parse(input) {
119
- const parsed = schema.safeParse(input);
120
- if (parsed.success) return parsed.data;
121
- const issues = formatValidationIssues(parsed.error);
122
- record(issues);
123
- if (mode === "reject") {
124
- throw options.onReject?.(issues, name) ?? defaultRejectError(issues, name);
125
- }
126
- return input;
127
- }
128
- };
155
+ const mode = options.onMismatch ?? "reject";
156
+ const boundary = options.boundary ?? "input";
157
+ const hash = options.toJsonSchema ? hashJson(options.toJsonSchema(schema)) : void 0;
158
+ const record = (issues) => {
159
+ recordValidationMismatch({
160
+ name,
161
+ boundary,
162
+ mode,
163
+ issues,
164
+ hash,
165
+ severity: options.severity
166
+ });
167
+ };
168
+ return {
169
+ name,
170
+ mode,
171
+ safeParse(input) {
172
+ const parsed = schema.safeParse(input);
173
+ if (parsed.success) return {
174
+ success: true,
175
+ data: parsed.data
176
+ };
177
+ const issues = formatValidationIssues(parsed.error);
178
+ record(issues);
179
+ return {
180
+ success: false,
181
+ issues
182
+ };
183
+ },
184
+ parse(input) {
185
+ const parsed = schema.safeParse(input);
186
+ if (parsed.success) return parsed.data;
187
+ const issues = formatValidationIssues(parsed.error);
188
+ record(issues);
189
+ if (mode === "reject") throw options.onReject?.(issues, name) ?? defaultRejectError(issues, name);
190
+ return input;
191
+ }
192
+ };
129
193
  }
130
194
 
195
+ //#endregion
131
196
  export { defineValidator, formatValidationIssues, onValidationMismatch, recordValidationMismatch };
132
- //# sourceMappingURL=validate.js.map
133
197
  //# sourceMappingURL=validate.js.map