@geekmidas/telescope 10.0.0-alpha.2 → 10.0.0-alpha.21

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 (391) hide show
  1. package/dist/{MetricsAggregator-4SqelGcG.d.cts → MetricsAggregator-BxBLQUPj.d.cts} +3 -6
  2. package/dist/MetricsAggregator-BxBLQUPj.d.cts.map +1 -0
  3. package/dist/{MetricsAggregator-DZrW8ls6.d.mts → MetricsAggregator-j9wmZ0K_.d.mts} +3 -6
  4. package/dist/MetricsAggregator-j9wmZ0K_.d.mts.map +1 -0
  5. package/dist/{Telescope-D4nmwDRA.d.cts → Telescope-BcrWTaar.d.mts} +4 -7
  6. package/dist/Telescope-BcrWTaar.d.mts.map +1 -0
  7. package/dist/{Telescope-Dl6VSfxd.d.mts → Telescope-DnCMZT7V.d.cts} +4 -7
  8. package/dist/Telescope-DnCMZT7V.d.cts.map +1 -0
  9. package/dist/Telescope.cjs +385 -4
  10. package/dist/Telescope.cjs.map +1 -0
  11. package/dist/Telescope.d.cts +1 -3
  12. package/dist/Telescope.d.mts +1 -3
  13. package/dist/Telescope.mjs +384 -4
  14. package/dist/Telescope.mjs.map +1 -0
  15. package/dist/adapters/index.d.cts +2 -2
  16. package/dist/adapters/index.d.mts +2 -2
  17. package/dist/adapters/index.mjs +1 -0
  18. package/dist/adapters/lambda.cjs +9 -10
  19. package/dist/adapters/lambda.cjs.map +1 -1
  20. package/dist/adapters/lambda.d.cts +9 -13
  21. package/dist/adapters/lambda.d.cts.map +1 -1
  22. package/dist/adapters/lambda.d.mts +9 -13
  23. package/dist/adapters/lambda.d.mts.map +1 -1
  24. package/dist/adapters/lambda.mjs +3 -4
  25. package/dist/adapters/lambda.mjs.map +1 -1
  26. package/dist/adapters/middy.cjs +236 -4
  27. package/dist/adapters/middy.cjs.map +1 -0
  28. package/dist/adapters/middy.d.cts +60 -5
  29. package/dist/adapters/middy.d.cts.map +1 -0
  30. package/dist/adapters/middy.d.mts +60 -5
  31. package/dist/adapters/middy.d.mts.map +1 -0
  32. package/dist/adapters/middy.mjs +234 -3
  33. package/dist/adapters/middy.mjs.map +1 -0
  34. package/dist/adapters/types.d.cts +162 -2
  35. package/dist/adapters/types.d.cts.map +1 -0
  36. package/dist/adapters/types.d.mts +162 -2
  37. package/dist/adapters/types.d.mts.map +1 -0
  38. package/dist/adapters/types.mjs +1 -0
  39. package/dist/core.cjs +22 -22
  40. package/dist/core.d.cts +4 -4
  41. package/dist/core.d.mts +4 -4
  42. package/dist/core.mjs +3 -4
  43. package/dist/index.cjs +8 -9
  44. package/dist/index.d.cts +5 -6
  45. package/dist/index.d.mts +5 -6
  46. package/dist/index.mjs +5 -7
  47. package/dist/instrumentation/core.cjs +147 -11
  48. package/dist/instrumentation/core.cjs.map +1 -0
  49. package/dist/instrumentation/core.d.cts +74 -3
  50. package/dist/instrumentation/core.d.cts.map +1 -0
  51. package/dist/instrumentation/core.d.mts +74 -3
  52. package/dist/instrumentation/core.d.mts.map +1 -0
  53. package/dist/instrumentation/core.mjs +137 -2
  54. package/dist/instrumentation/core.mjs.map +1 -0
  55. package/dist/instrumentation/hono.cjs +134 -6
  56. package/dist/instrumentation/hono.cjs.map +1 -0
  57. package/dist/instrumentation/hono.d.cts +67 -2
  58. package/dist/instrumentation/hono.d.cts.map +1 -0
  59. package/dist/instrumentation/hono.d.mts +67 -2
  60. package/dist/instrumentation/hono.d.mts.map +1 -0
  61. package/dist/instrumentation/hono.mjs +130 -3
  62. package/dist/instrumentation/hono.mjs.map +1 -0
  63. package/dist/instrumentation/http.cjs +164 -11
  64. package/dist/instrumentation/http.cjs.map +1 -0
  65. package/dist/instrumentation/http.d.cts +103 -2
  66. package/dist/instrumentation/http.d.cts.map +1 -0
  67. package/dist/instrumentation/http.d.mts +103 -2
  68. package/dist/instrumentation/http.d.mts.map +1 -0
  69. package/dist/instrumentation/http.mjs +154 -2
  70. package/dist/instrumentation/http.mjs.map +1 -0
  71. package/dist/instrumentation/index.cjs +47 -47
  72. package/dist/instrumentation/index.d.cts +9 -9
  73. package/dist/instrumentation/index.d.mts +9 -9
  74. package/dist/instrumentation/index.mjs +8 -9
  75. package/dist/instrumentation/middleware.cjs +162 -6
  76. package/dist/instrumentation/middleware.cjs.map +1 -0
  77. package/dist/instrumentation/middleware.d.cts +70 -2
  78. package/dist/instrumentation/middleware.d.cts.map +1 -0
  79. package/dist/instrumentation/middleware.d.mts +70 -2
  80. package/dist/instrumentation/middleware.d.mts.map +1 -0
  81. package/dist/instrumentation/middleware.mjs +158 -3
  82. package/dist/instrumentation/middleware.mjs.map +1 -0
  83. package/dist/instrumentation/otel.cjs +137 -3
  84. package/dist/instrumentation/otel.cjs.map +1 -0
  85. package/dist/instrumentation/otel.d.cts +97 -2
  86. package/dist/instrumentation/otel.d.cts.map +1 -0
  87. package/dist/instrumentation/otel.d.mts +97 -2
  88. package/dist/instrumentation/otel.d.mts.map +1 -0
  89. package/dist/instrumentation/otel.mjs +136 -3
  90. package/dist/instrumentation/otel.mjs.map +1 -0
  91. package/dist/instrumentation/setup.cjs +100 -4
  92. package/dist/instrumentation/setup.cjs.map +1 -0
  93. package/dist/instrumentation/setup.d.cts +83 -3
  94. package/dist/instrumentation/setup.d.cts.map +1 -0
  95. package/dist/instrumentation/setup.d.mts +83 -3
  96. package/dist/instrumentation/setup.d.mts.map +1 -0
  97. package/dist/instrumentation/setup.mjs +98 -3
  98. package/dist/instrumentation/setup.mjs.map +1 -0
  99. package/dist/instrumentation/tracing.cjs +114 -10
  100. package/dist/instrumentation/tracing.cjs.map +1 -0
  101. package/dist/instrumentation/tracing.d.cts +49 -2
  102. package/dist/instrumentation/tracing.d.cts.map +1 -0
  103. package/dist/instrumentation/tracing.d.mts +49 -2
  104. package/dist/instrumentation/tracing.d.mts.map +1 -0
  105. package/dist/instrumentation/tracing.mjs +105 -2
  106. package/dist/instrumentation/tracing.mjs.map +1 -0
  107. package/dist/logger/console.cjs +18 -12
  108. package/dist/logger/console.cjs.map +1 -1
  109. package/dist/logger/console.d.cts +7 -10
  110. package/dist/logger/console.d.cts.map +1 -1
  111. package/dist/logger/console.d.mts +7 -10
  112. package/dist/logger/console.d.mts.map +1 -1
  113. package/dist/logger/console.mjs +17 -11
  114. package/dist/logger/console.mjs.map +1 -1
  115. package/dist/logger/pino.cjs +6 -5
  116. package/dist/logger/pino.cjs.map +1 -1
  117. package/dist/logger/pino.d.cts +6 -10
  118. package/dist/logger/pino.d.cts.map +1 -1
  119. package/dist/logger/pino.d.mts +6 -10
  120. package/dist/logger/pino.d.mts.map +1 -1
  121. package/dist/logger/pino.mjs +2 -3
  122. package/dist/logger/pino.mjs.map +1 -1
  123. package/dist/metrics/MetricsAggregator.cjs +354 -2
  124. package/dist/metrics/MetricsAggregator.cjs.map +1 -0
  125. package/dist/metrics/MetricsAggregator.d.cts +1 -2
  126. package/dist/metrics/MetricsAggregator.d.mts +1 -2
  127. package/dist/metrics/MetricsAggregator.mjs +353 -2
  128. package/dist/metrics/MetricsAggregator.mjs.map +1 -0
  129. package/dist/metrics/index.cjs +3 -4
  130. package/dist/metrics/index.d.cts +2 -4
  131. package/dist/metrics/index.d.mts +2 -4
  132. package/dist/metrics/index.mjs +2 -4
  133. package/dist/metrics/storage/InMemoryMetricsStorage.cjs +240 -3
  134. package/dist/metrics/storage/InMemoryMetricsStorage.cjs.map +1 -0
  135. package/dist/metrics/storage/InMemoryMetricsStorage.d.cts +43 -4
  136. package/dist/metrics/storage/InMemoryMetricsStorage.d.cts.map +1 -0
  137. package/dist/metrics/storage/InMemoryMetricsStorage.d.mts +43 -4
  138. package/dist/metrics/storage/InMemoryMetricsStorage.d.mts.map +1 -0
  139. package/dist/metrics/storage/InMemoryMetricsStorage.mjs +239 -3
  140. package/dist/metrics/storage/InMemoryMetricsStorage.mjs.map +1 -0
  141. package/dist/metrics/storage/MetricsStorage.cjs +0 -1
  142. package/dist/metrics/storage/MetricsStorage.d.cts +56 -3
  143. package/dist/metrics/storage/MetricsStorage.d.cts.map +1 -0
  144. package/dist/metrics/storage/MetricsStorage.d.mts +56 -3
  145. package/dist/metrics/storage/MetricsStorage.d.mts.map +1 -0
  146. package/dist/metrics/storage/MetricsStorage.mjs +1 -1
  147. package/dist/metrics/storage/index.cjs +6 -6
  148. package/dist/metrics/storage/index.d.cts +3 -3
  149. package/dist/metrics/storage/index.d.mts +3 -3
  150. package/dist/metrics/storage/index.mjs +4 -5
  151. package/dist/metrics/storage/types.cjs +34 -2
  152. package/dist/metrics/storage/types.cjs.map +1 -0
  153. package/dist/metrics/storage/types.d.cts +207 -2
  154. package/dist/metrics/storage/types.d.cts.map +1 -0
  155. package/dist/metrics/storage/types.d.mts +207 -2
  156. package/dist/metrics/storage/types.d.mts.map +1 -0
  157. package/dist/metrics/storage/types.mjs +33 -2
  158. package/dist/metrics/storage/types.mjs.map +1 -0
  159. package/dist/otlp/hono.cjs +9 -15
  160. package/dist/otlp/hono.cjs.map +1 -1
  161. package/dist/otlp/hono.d.cts +3 -13
  162. package/dist/otlp/hono.d.cts.map +1 -1
  163. package/dist/otlp/hono.d.mts +3 -13
  164. package/dist/otlp/hono.d.mts.map +1 -1
  165. package/dist/otlp/hono.mjs +5 -11
  166. package/dist/otlp/hono.mjs.map +1 -1
  167. package/dist/otlp/index.cjs +11 -11
  168. package/dist/otlp/index.d.cts +4 -7
  169. package/dist/otlp/index.d.mts +4 -7
  170. package/dist/otlp/index.mjs +4 -5
  171. package/dist/otlp/receiver.cjs +88 -4
  172. package/dist/otlp/receiver.cjs.map +1 -0
  173. package/dist/otlp/receiver.d.cts +59 -7
  174. package/dist/otlp/receiver.d.cts.map +1 -0
  175. package/dist/otlp/receiver.d.mts +59 -7
  176. package/dist/otlp/receiver.d.mts.map +1 -0
  177. package/dist/otlp/receiver.mjs +87 -4
  178. package/dist/otlp/receiver.mjs.map +1 -0
  179. package/dist/otlp/transformer.cjs +214 -5
  180. package/dist/otlp/transformer.cjs.map +1 -0
  181. package/dist/otlp/transformer.d.cts +1 -3
  182. package/dist/otlp/transformer.d.mts +1 -3
  183. package/dist/otlp/transformer.mjs +211 -3
  184. package/dist/otlp/transformer.mjs.map +1 -0
  185. package/dist/otlp/types.cjs +57 -5
  186. package/dist/otlp/types.cjs.map +1 -0
  187. package/dist/otlp/types.d.cts +1 -1
  188. package/dist/otlp/types.d.mts +1 -1
  189. package/dist/otlp/types.mjs +53 -2
  190. package/dist/otlp/types.mjs.map +1 -0
  191. package/dist/redact.cjs +84 -3
  192. package/dist/redact.cjs.map +1 -0
  193. package/dist/redact.d.cts +4 -8
  194. package/dist/redact.d.cts.map +1 -1
  195. package/dist/redact.d.mts +4 -8
  196. package/dist/redact.d.mts.map +1 -1
  197. package/dist/redact.mjs +80 -2
  198. package/dist/redact.mjs.map +1 -0
  199. package/dist/{chunk-CUT6urMc.cjs → rolldown-runtime-VH7oDXx4.cjs} +8 -10
  200. package/dist/server/hono.cjs +24 -33
  201. package/dist/server/hono.cjs.map +1 -1
  202. package/dist/server/hono.d.cts +10 -13
  203. package/dist/server/hono.d.cts.map +1 -1
  204. package/dist/server/hono.d.mts +10 -13
  205. package/dist/server/hono.d.mts.map +1 -1
  206. package/dist/server/hono.mjs +22 -31
  207. package/dist/server/hono.mjs.map +1 -1
  208. package/dist/storage/kysely.cjs +34 -32
  209. package/dist/storage/kysely.cjs.map +1 -1
  210. package/dist/storage/kysely.d.cts +8 -12
  211. package/dist/storage/kysely.d.cts.map +1 -1
  212. package/dist/storage/kysely.d.mts +8 -12
  213. package/dist/storage/kysely.d.mts.map +1 -1
  214. package/dist/storage/kysely.mjs +33 -31
  215. package/dist/storage/kysely.mjs.map +1 -1
  216. package/dist/storage/memory.cjs +122 -2
  217. package/dist/storage/memory.cjs.map +1 -0
  218. package/dist/storage/memory.d.cts +36 -3
  219. package/dist/storage/memory.d.cts.map +1 -0
  220. package/dist/storage/memory.d.mts +36 -3
  221. package/dist/storage/memory.d.mts.map +1 -0
  222. package/dist/storage/memory.mjs +121 -2
  223. package/dist/storage/memory.mjs.map +1 -0
  224. package/dist/{transformer-CTGsaVfV.d.mts → transformer-BBBXCjHP.d.mts} +4 -8
  225. package/dist/transformer-BBBXCjHP.d.mts.map +1 -0
  226. package/dist/{transformer-ICEbxpFf.d.cts → transformer-DlESim6Q.d.cts} +4 -8
  227. package/dist/transformer-DlESim6Q.d.cts.map +1 -0
  228. package/dist/{types-CmOB7CLO.d.cts → types-DVETVdpa.d.cts} +6 -7
  229. package/dist/types-DVETVdpa.d.cts.map +1 -0
  230. package/dist/{types-DBc0q5KD.d.mts → types-DVETVdpa.d.mts} +6 -7
  231. package/dist/types-DVETVdpa.d.mts.map +1 -0
  232. package/dist/{types-B1EIa_cQ.d.mts → types-a9Vistj1.d.cts} +2 -3
  233. package/dist/types-a9Vistj1.d.cts.map +1 -0
  234. package/dist/{types-l7Rlb5Mg.d.cts → types-a9Vistj1.d.mts} +2 -3
  235. package/dist/types-a9Vistj1.d.mts.map +1 -0
  236. package/dist/types.d.cts +1 -1
  237. package/dist/types.d.mts +1 -1
  238. package/dist/types.mjs +1 -0
  239. package/dist/ui-assets.cjs +31 -4
  240. package/dist/ui-assets.cjs.map +1 -0
  241. package/dist/ui-assets.d.cts +4 -6
  242. package/dist/ui-assets.d.cts.map +1 -1
  243. package/dist/ui-assets.d.mts +4 -6
  244. package/dist/ui-assets.d.mts.map +1 -1
  245. package/dist/ui-assets.mjs +28 -2
  246. package/dist/ui-assets.mjs.map +1 -0
  247. package/package.json +39 -37
  248. package/dist/InMemoryMetricsStorage-BbKCL3YL.d.mts +0 -47
  249. package/dist/InMemoryMetricsStorage-BbKCL3YL.d.mts.map +0 -1
  250. package/dist/InMemoryMetricsStorage-C4drxT7G.mjs +0 -247
  251. package/dist/InMemoryMetricsStorage-C4drxT7G.mjs.map +0 -1
  252. package/dist/InMemoryMetricsStorage-D0njWUSi.cjs +0 -252
  253. package/dist/InMemoryMetricsStorage-D0njWUSi.cjs.map +0 -1
  254. package/dist/InMemoryMetricsStorage-TvPdZjL0.d.cts +0 -47
  255. package/dist/InMemoryMetricsStorage-TvPdZjL0.d.cts.map +0 -1
  256. package/dist/MetricsAggregator-4SqelGcG.d.cts.map +0 -1
  257. package/dist/MetricsAggregator-B7lUICdH.cjs +0 -363
  258. package/dist/MetricsAggregator-B7lUICdH.cjs.map +0 -1
  259. package/dist/MetricsAggregator-DZrW8ls6.d.mts.map +0 -1
  260. package/dist/MetricsAggregator-S3DQWNas.mjs +0 -357
  261. package/dist/MetricsAggregator-S3DQWNas.mjs.map +0 -1
  262. package/dist/MetricsStorage-B86e4131.d.cts +0 -60
  263. package/dist/MetricsStorage-B86e4131.d.cts.map +0 -1
  264. package/dist/MetricsStorage-BWyP2_12.d.mts +0 -60
  265. package/dist/MetricsStorage-BWyP2_12.d.mts.map +0 -1
  266. package/dist/MetricsStorage-BypQXWiv.mjs +0 -0
  267. package/dist/MetricsStorage-Or8pVCe4.cjs +0 -0
  268. package/dist/Telescope-Cs3fv8jt.cjs +0 -395
  269. package/dist/Telescope-Cs3fv8jt.cjs.map +0 -1
  270. package/dist/Telescope-D4nmwDRA.d.cts.map +0 -1
  271. package/dist/Telescope-Dh5av3FC.mjs +0 -389
  272. package/dist/Telescope-Dh5av3FC.mjs.map +0 -1
  273. package/dist/Telescope-Dl6VSfxd.d.mts.map +0 -1
  274. package/dist/core--quSp5Qr.d.mts +0 -78
  275. package/dist/core--quSp5Qr.d.mts.map +0 -1
  276. package/dist/core-B4Jpia5H.d.cts +0 -78
  277. package/dist/core-B4Jpia5H.d.cts.map +0 -1
  278. package/dist/core-CtVHRJGv.cjs +0 -199
  279. package/dist/core-CtVHRJGv.cjs.map +0 -1
  280. package/dist/core-D6hJ6exL.mjs +0 -139
  281. package/dist/core-D6hJ6exL.mjs.map +0 -1
  282. package/dist/hono--uKQ7Jgi.d.mts +0 -71
  283. package/dist/hono--uKQ7Jgi.d.mts.map +0 -1
  284. package/dist/hono-Bw-ey6CT.mjs +0 -136
  285. package/dist/hono-Bw-ey6CT.mjs.map +0 -1
  286. package/dist/hono-CPHX7FAm.cjs +0 -160
  287. package/dist/hono-CPHX7FAm.cjs.map +0 -1
  288. package/dist/hono-CemCKU87.d.cts +0 -71
  289. package/dist/hono-CemCKU87.d.cts.map +0 -1
  290. package/dist/http-BIvr0YdI.mjs +0 -159
  291. package/dist/http-BIvr0YdI.mjs.map +0 -1
  292. package/dist/http-BiNtg85L.d.mts +0 -107
  293. package/dist/http-BiNtg85L.d.mts.map +0 -1
  294. package/dist/http-BsqmhurZ.cjs +0 -219
  295. package/dist/http-BsqmhurZ.cjs.map +0 -1
  296. package/dist/http-D1oTbfap.d.cts +0 -107
  297. package/dist/http-D1oTbfap.d.cts.map +0 -1
  298. package/dist/index-BL32-cvv.d.cts +0 -1
  299. package/dist/index-CsuikFeJ.d.mts +0 -1
  300. package/dist/memory--BK4iWiv.d.cts +0 -40
  301. package/dist/memory--BK4iWiv.d.cts.map +0 -1
  302. package/dist/memory-6S9H-IF5.mjs +0 -123
  303. package/dist/memory-6S9H-IF5.mjs.map +0 -1
  304. package/dist/memory-B0d_n1g5.cjs +0 -129
  305. package/dist/memory-B0d_n1g5.cjs.map +0 -1
  306. package/dist/memory-DCirEVFW.d.mts +0 -40
  307. package/dist/memory-DCirEVFW.d.mts.map +0 -1
  308. package/dist/metrics-D5YT-Rnq.mjs +0 -0
  309. package/dist/metrics-fhD3l3C3.cjs +0 -0
  310. package/dist/middleware-Bcq6XXGG.cjs +0 -184
  311. package/dist/middleware-Bcq6XXGG.cjs.map +0 -1
  312. package/dist/middleware-D1XEHvyy.mjs +0 -160
  313. package/dist/middleware-D1XEHvyy.mjs.map +0 -1
  314. package/dist/middleware-PeyS-9Ny.d.cts +0 -74
  315. package/dist/middleware-PeyS-9Ny.d.cts.map +0 -1
  316. package/dist/middleware-oHvo_ZgU.d.mts +0 -74
  317. package/dist/middleware-oHvo_ZgU.d.mts.map +0 -1
  318. package/dist/middy-B6Btl8XE.d.mts +0 -64
  319. package/dist/middy-B6Btl8XE.d.mts.map +0 -1
  320. package/dist/middy-Bq0defVg.d.cts +0 -64
  321. package/dist/middy-Bq0defVg.d.cts.map +0 -1
  322. package/dist/middy-DHWLmUAD.mjs +0 -236
  323. package/dist/middy-DHWLmUAD.mjs.map +0 -1
  324. package/dist/middy-DlWnZilH.cjs +0 -247
  325. package/dist/middy-DlWnZilH.cjs.map +0 -1
  326. package/dist/otel-B9bNoeZ2.mjs +0 -130
  327. package/dist/otel-B9bNoeZ2.mjs.map +0 -1
  328. package/dist/otel-Bk89b1lX.d.cts +0 -101
  329. package/dist/otel-Bk89b1lX.d.cts.map +0 -1
  330. package/dist/otel-BzjOtVxZ.cjs +0 -136
  331. package/dist/otel-BzjOtVxZ.cjs.map +0 -1
  332. package/dist/otel-lPMsM26e.d.mts +0 -101
  333. package/dist/otel-lPMsM26e.d.mts.map +0 -1
  334. package/dist/receiver-D46dfkYI.mjs +0 -89
  335. package/dist/receiver-D46dfkYI.mjs.map +0 -1
  336. package/dist/receiver-DLICx5uU.d.cts +0 -63
  337. package/dist/receiver-DLICx5uU.d.cts.map +0 -1
  338. package/dist/receiver-UeZT-H8u.d.mts +0 -63
  339. package/dist/receiver-UeZT-H8u.d.mts.map +0 -1
  340. package/dist/receiver-slCoAFat.cjs +0 -94
  341. package/dist/receiver-slCoAFat.cjs.map +0 -1
  342. package/dist/redact-BzkITCNW.mjs +0 -83
  343. package/dist/redact-BzkITCNW.mjs.map +0 -1
  344. package/dist/redact-DVaSSPZT.cjs +0 -95
  345. package/dist/redact-DVaSSPZT.cjs.map +0 -1
  346. package/dist/setup-Bkxm4g6b.d.mts +0 -87
  347. package/dist/setup-Bkxm4g6b.d.mts.map +0 -1
  348. package/dist/setup-D58N1f9O.d.cts +0 -87
  349. package/dist/setup-D58N1f9O.d.cts.map +0 -1
  350. package/dist/setup-DC9JMEYZ.mjs +0 -98
  351. package/dist/setup-DC9JMEYZ.mjs.map +0 -1
  352. package/dist/setup-DufxQpi9.cjs +0 -110
  353. package/dist/setup-DufxQpi9.cjs.map +0 -1
  354. package/dist/tracing-BX8uY2nR.d.cts +0 -53
  355. package/dist/tracing-BX8uY2nR.d.cts.map +0 -1
  356. package/dist/tracing-Bt1zWRlb.cjs +0 -167
  357. package/dist/tracing-Bt1zWRlb.cjs.map +0 -1
  358. package/dist/tracing-Cijm_5NI.mjs +0 -113
  359. package/dist/tracing-Cijm_5NI.mjs.map +0 -1
  360. package/dist/tracing-PnECEbEu.d.mts +0 -53
  361. package/dist/tracing-PnECEbEu.d.mts.map +0 -1
  362. package/dist/transformer-CFQ4WFk6.mjs +0 -215
  363. package/dist/transformer-CFQ4WFk6.mjs.map +0 -1
  364. package/dist/transformer-CTGsaVfV.d.mts.map +0 -1
  365. package/dist/transformer-Csl6fbgv.cjs +0 -232
  366. package/dist/transformer-Csl6fbgv.cjs.map +0 -1
  367. package/dist/transformer-ICEbxpFf.d.cts.map +0 -1
  368. package/dist/types-B1EIa_cQ.d.mts.map +0 -1
  369. package/dist/types-BMiHgsi4.cjs +0 -78
  370. package/dist/types-BMiHgsi4.cjs.map +0 -1
  371. package/dist/types-BRzW1NM8.d.cts +0 -166
  372. package/dist/types-BRzW1NM8.d.cts.map +0 -1
  373. package/dist/types-BS3Rx8Sk.d.cts +0 -209
  374. package/dist/types-BS3Rx8Sk.d.cts.map +0 -1
  375. package/dist/types-BzQ78Efw.d.mts +0 -166
  376. package/dist/types-BzQ78Efw.d.mts.map +0 -1
  377. package/dist/types-CbNGXnJE.d.mts +0 -209
  378. package/dist/types-CbNGXnJE.d.mts.map +0 -1
  379. package/dist/types-Cj59nqy7.mjs +0 -54
  380. package/dist/types-Cj59nqy7.mjs.map +0 -1
  381. package/dist/types-CmOB7CLO.d.cts.map +0 -1
  382. package/dist/types-DBc0q5KD.d.mts.map +0 -1
  383. package/dist/types-ZW-nfWf6.cjs +0 -40
  384. package/dist/types-ZW-nfWf6.cjs.map +0 -1
  385. package/dist/types-l7Rlb5Mg.d.cts.map +0 -1
  386. package/dist/types-ojhnLdwz.mjs +0 -34
  387. package/dist/types-ojhnLdwz.mjs.map +0 -1
  388. package/dist/ui-assets-BEXqOQLe.cjs +0 -48
  389. package/dist/ui-assets-BEXqOQLe.cjs.map +0 -1
  390. package/dist/ui-assets-BhTDUsrM.mjs +0 -30
  391. package/dist/ui-assets-BhTDUsrM.mjs.map +0 -1
@@ -1,219 +0,0 @@
1
- const require_chunk = require('./chunk-CUT6urMc.cjs');
2
- const __opentelemetry_api = require_chunk.__toESM(require("@opentelemetry/api"));
3
-
4
- //#region src/instrumentation/http.ts
5
- const TRACER_NAME = "@geekmidas/constructs";
6
- /**
7
- * Get or create a tracer for constructs instrumentation
8
- */
9
- function getConstructsTracer() {
10
- return __opentelemetry_api.trace.getTracer(TRACER_NAME);
11
- }
12
- /**
13
- * Convert HTTP attributes to OpenTelemetry semantic conventions
14
- */
15
- function toOtelAttributes(attrs) {
16
- const otelAttrs = {};
17
- if (attrs.method) otelAttrs["http.request.method"] = attrs.method;
18
- if (attrs.url) otelAttrs["url.full"] = attrs.url;
19
- if (attrs.path) otelAttrs["url.path"] = attrs.path;
20
- if (attrs.route) otelAttrs["http.route"] = attrs.route;
21
- if (attrs.host) otelAttrs["server.address"] = attrs.host;
22
- if (attrs.scheme) otelAttrs["url.scheme"] = attrs.scheme;
23
- if (attrs.userAgent) otelAttrs["user_agent.original"] = attrs.userAgent;
24
- if (attrs.clientIp) otelAttrs["client.address"] = attrs.clientIp;
25
- if (attrs.requestId) otelAttrs["http.request.id"] = attrs.requestId;
26
- if (attrs.response?.statusCode) otelAttrs["http.response.status_code"] = attrs.response.statusCode;
27
- if (attrs.response?.responseSize) otelAttrs["http.response.body.size"] = attrs.response.responseSize;
28
- if (attrs.endpoint?.name) otelAttrs["endpoint.name"] = attrs.endpoint.name;
29
- if (attrs.endpoint?.operationId) otelAttrs["endpoint.operation_id"] = attrs.endpoint.operationId;
30
- if (attrs.endpoint?.tags?.length) otelAttrs["endpoint.tags"] = attrs.endpoint.tags;
31
- if (attrs.user?.userId) otelAttrs["enduser.id"] = attrs.user.userId;
32
- if (attrs.user?.sessionId) otelAttrs["session.id"] = attrs.user.sessionId;
33
- if (attrs.user?.roles?.length) otelAttrs["enduser.role"] = attrs.user.roles.join(",");
34
- if (attrs.custom) Object.assign(otelAttrs, attrs.custom);
35
- return otelAttrs;
36
- }
37
- /**
38
- * Extract trace context from HTTP headers
39
- */
40
- function extractTraceContext(headers) {
41
- const normalizedHeaders = {};
42
- for (const [key, value] of Object.entries(headers)) if (value) {
43
- const stringValue = Array.isArray(value) ? value[0] : value;
44
- if (stringValue) normalizedHeaders[key.toLowerCase()] = stringValue;
45
- }
46
- return __opentelemetry_api.propagation.extract(__opentelemetry_api.context.active(), normalizedHeaders);
47
- }
48
- /**
49
- * Inject trace context into HTTP headers
50
- */
51
- function injectTraceContext(headers, ctx) {
52
- const result = { ...headers };
53
- __opentelemetry_api.propagation.inject(ctx ?? __opentelemetry_api.context.active(), result);
54
- return result;
55
- }
56
- /**
57
- * Create an HTTP server span for an incoming request
58
- */
59
- function createHttpServerSpan(attrs, parentContext) {
60
- const tracer = getConstructsTracer();
61
- const spanName = attrs.route ? `${attrs.method} ${attrs.route}` : `${attrs.method} ${attrs.path || "/"}`;
62
- const ctx = parentContext ?? __opentelemetry_api.context.active();
63
- return tracer.startSpan(spanName, {
64
- kind: __opentelemetry_api.SpanKind.SERVER,
65
- attributes: toOtelAttributes(attrs)
66
- }, ctx);
67
- }
68
- /**
69
- * End an HTTP span with response data
70
- */
71
- function endHttpSpan(span, response, error) {
72
- span.setAttribute("http.response.status_code", response.statusCode);
73
- if (response.responseSize) span.setAttribute("http.response.body.size", response.responseSize);
74
- if (error) {
75
- span.recordException(error);
76
- span.setStatus({
77
- code: __opentelemetry_api.SpanStatusCode.ERROR,
78
- message: error.message
79
- });
80
- } else if (response.statusCode >= 400) span.setStatus({
81
- code: __opentelemetry_api.SpanStatusCode.ERROR,
82
- message: `HTTP ${response.statusCode}`
83
- });
84
- else span.setStatus({ code: __opentelemetry_api.SpanStatusCode.OK });
85
- span.end();
86
- }
87
- /**
88
- * Execute a function within an HTTP server span context
89
- *
90
- * @example
91
- * ```typescript
92
- * const result = await withHttpSpan(
93
- * { method: 'GET', path: '/users', route: '/users' },
94
- * async (span) => {
95
- * const users = await getUsers();
96
- * return { statusCode: 200, body: users };
97
- * }
98
- * );
99
- * ```
100
- */
101
- async function withHttpSpan(attrs, fn, parentContext) {
102
- const span = createHttpServerSpan(attrs, parentContext);
103
- try {
104
- const result = await __opentelemetry_api.context.with(__opentelemetry_api.trace.setSpan(parentContext ?? __opentelemetry_api.context.active(), span), () => fn(span));
105
- const statusCode = result.statusCode ?? 200;
106
- endHttpSpan(span, { statusCode });
107
- return result;
108
- } catch (error) {
109
- endHttpSpan(span, { statusCode: 500 }, error instanceof Error ? error : new Error(String(error)));
110
- throw error;
111
- }
112
- }
113
- /**
114
- * Create a child span for internal operations (middleware, handlers, etc.)
115
- */
116
- function createChildSpan(name, attributes) {
117
- const tracer = getConstructsTracer();
118
- return tracer.startSpan(name, {
119
- kind: __opentelemetry_api.SpanKind.INTERNAL,
120
- attributes
121
- });
122
- }
123
- /**
124
- * Execute a function within a child span
125
- */
126
- async function withChildSpan(name, fn, attributes) {
127
- const span = createChildSpan(name, attributes);
128
- try {
129
- const result = await __opentelemetry_api.context.with(__opentelemetry_api.trace.setSpan(__opentelemetry_api.context.active(), span), () => fn(span));
130
- span.setStatus({ code: __opentelemetry_api.SpanStatusCode.OK });
131
- return result;
132
- } catch (error) {
133
- span.setStatus({
134
- code: __opentelemetry_api.SpanStatusCode.ERROR,
135
- message: error instanceof Error ? error.message : "Unknown error"
136
- });
137
- span.recordException(error instanceof Error ? error : new Error(String(error)));
138
- throw error;
139
- } finally {
140
- span.end();
141
- }
142
- }
143
- /**
144
- * Check if tracing is enabled (OpenTelemetry API is available and configured)
145
- */
146
- function isTracingEnabled() {
147
- try {
148
- const tracer = __opentelemetry_api.trace.getTracer(TRACER_NAME);
149
- const span = tracer.startSpan("test");
150
- const isReal = span.spanContext().traceId !== "00000000000000000000000000000000";
151
- span.end();
152
- return isReal;
153
- } catch {
154
- return false;
155
- }
156
- }
157
-
158
- //#endregion
159
- Object.defineProperty(exports, 'createChildSpan', {
160
- enumerable: true,
161
- get: function () {
162
- return createChildSpan;
163
- }
164
- });
165
- Object.defineProperty(exports, 'createHttpServerSpan', {
166
- enumerable: true,
167
- get: function () {
168
- return createHttpServerSpan;
169
- }
170
- });
171
- Object.defineProperty(exports, 'endHttpSpan', {
172
- enumerable: true,
173
- get: function () {
174
- return endHttpSpan;
175
- }
176
- });
177
- Object.defineProperty(exports, 'extractTraceContext', {
178
- enumerable: true,
179
- get: function () {
180
- return extractTraceContext;
181
- }
182
- });
183
- Object.defineProperty(exports, 'getConstructsTracer', {
184
- enumerable: true,
185
- get: function () {
186
- return getConstructsTracer;
187
- }
188
- });
189
- Object.defineProperty(exports, 'injectTraceContext', {
190
- enumerable: true,
191
- get: function () {
192
- return injectTraceContext;
193
- }
194
- });
195
- Object.defineProperty(exports, 'isTracingEnabled', {
196
- enumerable: true,
197
- get: function () {
198
- return isTracingEnabled;
199
- }
200
- });
201
- Object.defineProperty(exports, 'toOtelAttributes', {
202
- enumerable: true,
203
- get: function () {
204
- return toOtelAttributes;
205
- }
206
- });
207
- Object.defineProperty(exports, 'withChildSpan', {
208
- enumerable: true,
209
- get: function () {
210
- return withChildSpan;
211
- }
212
- });
213
- Object.defineProperty(exports, 'withHttpSpan', {
214
- enumerable: true,
215
- get: function () {
216
- return withHttpSpan;
217
- }
218
- });
219
- //# sourceMappingURL=http-BsqmhurZ.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"http-BsqmhurZ.cjs","names":["attrs: HttpSpanAttributes","otelAttrs: Attributes","headers: Record<string, string | string[] | undefined>","normalizedHeaders: Record<string, string>","headers: Record<string, string>","ctx?: Context","parentContext?: Context","SpanKind","span: Span","response: HttpResponseAttributes","error?: Error","SpanStatusCode","fn: (span: Span) => Promise<T & { statusCode?: number }>","name: string","attributes?: Attributes","fn: (span: Span) => Promise<T>"],"sources":["../src/instrumentation/http.ts"],"sourcesContent":["import {\n\ttype Attributes,\n\ttype Context,\n\tcontext,\n\tpropagation,\n\ttype Span,\n\tSpanKind,\n\tSpanStatusCode,\n\ttrace,\n} from '@opentelemetry/api';\n\n/**\n * HTTP request attributes following OpenTelemetry semantic conventions\n */\nexport interface HttpRequestAttributes {\n\tmethod: string;\n\turl?: string;\n\tpath?: string;\n\troute?: string;\n\thost?: string;\n\tscheme?: 'http' | 'https';\n\tuserAgent?: string;\n\tclientIp?: string;\n\trequestId?: string;\n}\n\n/**\n * HTTP response attributes\n */\nexport interface HttpResponseAttributes {\n\tstatusCode: number;\n\tresponseSize?: number;\n}\n\n/**\n * Endpoint-specific attributes\n */\nexport interface EndpointAttributes {\n\tname?: string;\n\toperationId?: string;\n\ttags?: string[];\n}\n\n/**\n * User/session attributes\n */\nexport interface UserAttributes {\n\tuserId?: string;\n\tsessionId?: string;\n\troles?: string[];\n}\n\n/**\n * Full span attributes for HTTP requests\n */\nexport interface HttpSpanAttributes extends HttpRequestAttributes {\n\tresponse?: HttpResponseAttributes;\n\tendpoint?: EndpointAttributes;\n\tuser?: UserAttributes;\n\tcustom?: Attributes;\n}\n\nconst TRACER_NAME = '@geekmidas/constructs';\n\n/**\n * Get or create a tracer for constructs instrumentation\n */\nexport function getConstructsTracer() {\n\treturn trace.getTracer(TRACER_NAME);\n}\n\n/**\n * Convert HTTP attributes to OpenTelemetry semantic conventions\n */\nexport function toOtelAttributes(attrs: HttpSpanAttributes): Attributes {\n\tconst otelAttrs: Attributes = {};\n\n\t// HTTP request attributes (OpenTelemetry semantic conventions)\n\tif (attrs.method) otelAttrs['http.request.method'] = attrs.method;\n\tif (attrs.url) otelAttrs['url.full'] = attrs.url;\n\tif (attrs.path) otelAttrs['url.path'] = attrs.path;\n\tif (attrs.route) otelAttrs['http.route'] = attrs.route;\n\tif (attrs.host) otelAttrs['server.address'] = attrs.host;\n\tif (attrs.scheme) otelAttrs['url.scheme'] = attrs.scheme;\n\tif (attrs.userAgent) otelAttrs['user_agent.original'] = attrs.userAgent;\n\tif (attrs.clientIp) otelAttrs['client.address'] = attrs.clientIp;\n\tif (attrs.requestId) otelAttrs['http.request.id'] = attrs.requestId;\n\n\t// HTTP response attributes\n\tif (attrs.response?.statusCode) {\n\t\totelAttrs['http.response.status_code'] = attrs.response.statusCode;\n\t}\n\tif (attrs.response?.responseSize) {\n\t\totelAttrs['http.response.body.size'] = attrs.response.responseSize;\n\t}\n\n\t// Endpoint attributes\n\tif (attrs.endpoint?.name) otelAttrs['endpoint.name'] = attrs.endpoint.name;\n\tif (attrs.endpoint?.operationId) {\n\t\totelAttrs['endpoint.operation_id'] = attrs.endpoint.operationId;\n\t}\n\tif (attrs.endpoint?.tags?.length) {\n\t\totelAttrs['endpoint.tags'] = attrs.endpoint.tags;\n\t}\n\n\t// User attributes\n\tif (attrs.user?.userId) otelAttrs['enduser.id'] = attrs.user.userId;\n\tif (attrs.user?.sessionId) otelAttrs['session.id'] = attrs.user.sessionId;\n\tif (attrs.user?.roles?.length)\n\t\totelAttrs['enduser.role'] = attrs.user.roles.join(',');\n\n\t// Custom attributes\n\tif (attrs.custom) {\n\t\tObject.assign(otelAttrs, attrs.custom);\n\t}\n\n\treturn otelAttrs;\n}\n\n/**\n * Extract trace context from HTTP headers\n */\nexport function extractTraceContext(\n\theaders: Record<string, string | string[] | undefined>,\n): Context {\n\t// Normalize headers to Record<string, string>\n\tconst normalizedHeaders: Record<string, string> = {};\n\tfor (const [key, value] of Object.entries(headers)) {\n\t\tif (value) {\n\t\t\tconst stringValue = Array.isArray(value) ? value[0] : value;\n\t\t\tif (stringValue) {\n\t\t\t\tnormalizedHeaders[key.toLowerCase()] = stringValue;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn propagation.extract(context.active(), normalizedHeaders);\n}\n\n/**\n * Inject trace context into HTTP headers\n */\nexport function injectTraceContext(\n\theaders: Record<string, string>,\n\tctx?: Context,\n): Record<string, string> {\n\tconst result = { ...headers };\n\tpropagation.inject(ctx ?? context.active(), result);\n\treturn result;\n}\n\n/**\n * Create an HTTP server span for an incoming request\n */\nexport function createHttpServerSpan(\n\tattrs: HttpSpanAttributes,\n\tparentContext?: Context,\n): Span {\n\tconst tracer = getConstructsTracer();\n\tconst spanName = attrs.route\n\t\t? `${attrs.method} ${attrs.route}`\n\t\t: `${attrs.method} ${attrs.path || '/'}`;\n\n\tconst ctx = parentContext ?? context.active();\n\n\treturn tracer.startSpan(\n\t\tspanName,\n\t\t{\n\t\t\tkind: SpanKind.SERVER,\n\t\t\tattributes: toOtelAttributes(attrs),\n\t\t},\n\t\tctx,\n\t);\n}\n\n/**\n * End an HTTP span with response data\n */\nexport function endHttpSpan(\n\tspan: Span,\n\tresponse: HttpResponseAttributes,\n\terror?: Error,\n): void {\n\tspan.setAttribute('http.response.status_code', response.statusCode);\n\n\tif (response.responseSize) {\n\t\tspan.setAttribute('http.response.body.size', response.responseSize);\n\t}\n\n\tif (error) {\n\t\tspan.recordException(error);\n\t\tspan.setStatus({\n\t\t\tcode: SpanStatusCode.ERROR,\n\t\t\tmessage: error.message,\n\t\t});\n\t} else if (response.statusCode >= 400) {\n\t\tspan.setStatus({\n\t\t\tcode: SpanStatusCode.ERROR,\n\t\t\tmessage: `HTTP ${response.statusCode}`,\n\t\t});\n\t} else {\n\t\tspan.setStatus({ code: SpanStatusCode.OK });\n\t}\n\n\tspan.end();\n}\n\n/**\n * Execute a function within an HTTP server span context\n *\n * @example\n * ```typescript\n * const result = await withHttpSpan(\n * { method: 'GET', path: '/users', route: '/users' },\n * async (span) => {\n * const users = await getUsers();\n * return { statusCode: 200, body: users };\n * }\n * );\n * ```\n */\nexport async function withHttpSpan<T>(\n\tattrs: HttpSpanAttributes,\n\tfn: (span: Span) => Promise<T & { statusCode?: number }>,\n\tparentContext?: Context,\n): Promise<T> {\n\tconst span = createHttpServerSpan(attrs, parentContext);\n\n\ttry {\n\t\tconst result = await context.with(\n\t\t\ttrace.setSpan(parentContext ?? context.active(), span),\n\t\t\t() => fn(span),\n\t\t);\n\n\t\tconst statusCode = (result as { statusCode?: number }).statusCode ?? 200;\n\t\tendHttpSpan(span, { statusCode });\n\n\t\treturn result;\n\t} catch (error) {\n\t\tendHttpSpan(\n\t\t\tspan,\n\t\t\t{ statusCode: 500 },\n\t\t\terror instanceof Error ? error : new Error(String(error)),\n\t\t);\n\t\tthrow error;\n\t}\n}\n\n/**\n * Create a child span for internal operations (middleware, handlers, etc.)\n */\nexport function createChildSpan(name: string, attributes?: Attributes): Span {\n\tconst tracer = getConstructsTracer();\n\treturn tracer.startSpan(name, {\n\t\tkind: SpanKind.INTERNAL,\n\t\tattributes,\n\t});\n}\n\n/**\n * Execute a function within a child span\n */\nexport async function withChildSpan<T>(\n\tname: string,\n\tfn: (span: Span) => Promise<T>,\n\tattributes?: Attributes,\n): Promise<T> {\n\tconst span = createChildSpan(name, attributes);\n\n\ttry {\n\t\tconst result = await context.with(\n\t\t\ttrace.setSpan(context.active(), span),\n\t\t\t() => fn(span),\n\t\t);\n\t\tspan.setStatus({ code: SpanStatusCode.OK });\n\t\treturn result;\n\t} catch (error) {\n\t\tspan.setStatus({\n\t\t\tcode: SpanStatusCode.ERROR,\n\t\t\tmessage: error instanceof Error ? error.message : 'Unknown error',\n\t\t});\n\t\tspan.recordException(\n\t\t\terror instanceof Error ? error : new Error(String(error)),\n\t\t);\n\t\tthrow error;\n\t} finally {\n\t\tspan.end();\n\t}\n}\n\n/**\n * Check if tracing is enabled (OpenTelemetry API is available and configured)\n */\nexport function isTracingEnabled(): boolean {\n\ttry {\n\t\tconst tracer = trace.getTracer(TRACER_NAME);\n\t\t// Check if we have a real tracer (not a no-op)\n\t\tconst span = tracer.startSpan('test');\n\t\tconst isReal =\n\t\t\tspan.spanContext().traceId !== '00000000000000000000000000000000';\n\t\tspan.end();\n\t\treturn isReal;\n\t} catch {\n\t\treturn false;\n\t}\n}\n"],"mappings":"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"}
@@ -1,107 +0,0 @@
1
- import * as _opentelemetry_api1 from "@opentelemetry/api";
2
- import { Attributes, Context, Span } from "@opentelemetry/api";
3
-
4
- //#region src/instrumentation/http.d.ts
5
- /**
6
- * HTTP request attributes following OpenTelemetry semantic conventions
7
- */
8
- interface HttpRequestAttributes {
9
- method: string;
10
- url?: string;
11
- path?: string;
12
- route?: string;
13
- host?: string;
14
- scheme?: 'http' | 'https';
15
- userAgent?: string;
16
- clientIp?: string;
17
- requestId?: string;
18
- }
19
- /**
20
- * HTTP response attributes
21
- */
22
- interface HttpResponseAttributes {
23
- statusCode: number;
24
- responseSize?: number;
25
- }
26
- /**
27
- * Endpoint-specific attributes
28
- */
29
- interface EndpointAttributes {
30
- name?: string;
31
- operationId?: string;
32
- tags?: string[];
33
- }
34
- /**
35
- * User/session attributes
36
- */
37
- interface UserAttributes {
38
- userId?: string;
39
- sessionId?: string;
40
- roles?: string[];
41
- }
42
- /**
43
- * Full span attributes for HTTP requests
44
- */
45
- interface HttpSpanAttributes extends HttpRequestAttributes {
46
- response?: HttpResponseAttributes;
47
- endpoint?: EndpointAttributes;
48
- user?: UserAttributes;
49
- custom?: Attributes;
50
- }
51
- /**
52
- * Get or create a tracer for constructs instrumentation
53
- */
54
- declare function getConstructsTracer(): _opentelemetry_api1.Tracer;
55
- /**
56
- * Convert HTTP attributes to OpenTelemetry semantic conventions
57
- */
58
- declare function toOtelAttributes(attrs: HttpSpanAttributes): Attributes;
59
- /**
60
- * Extract trace context from HTTP headers
61
- */
62
- declare function extractTraceContext(headers: Record<string, string | string[] | undefined>): Context;
63
- /**
64
- * Inject trace context into HTTP headers
65
- */
66
- declare function injectTraceContext(headers: Record<string, string>, ctx?: Context): Record<string, string>;
67
- /**
68
- * Create an HTTP server span for an incoming request
69
- */
70
- declare function createHttpServerSpan(attrs: HttpSpanAttributes, parentContext?: Context): Span;
71
- /**
72
- * End an HTTP span with response data
73
- */
74
- declare function endHttpSpan(span: Span, response: HttpResponseAttributes, error?: Error): void;
75
- /**
76
- * Execute a function within an HTTP server span context
77
- *
78
- * @example
79
- * ```typescript
80
- * const result = await withHttpSpan(
81
- * { method: 'GET', path: '/users', route: '/users' },
82
- * async (span) => {
83
- * const users = await getUsers();
84
- * return { statusCode: 200, body: users };
85
- * }
86
- * );
87
- * ```
88
- */
89
- declare function withHttpSpan<T>(attrs: HttpSpanAttributes, fn: (span: Span) => Promise<T & {
90
- statusCode?: number;
91
- }>, parentContext?: Context): Promise<T>;
92
- /**
93
- * Create a child span for internal operations (middleware, handlers, etc.)
94
- */
95
- declare function createChildSpan(name: string, attributes?: Attributes): Span;
96
- /**
97
- * Execute a function within a child span
98
- */
99
- declare function withChildSpan<T>(name: string, fn: (span: Span) => Promise<T>, attributes?: Attributes): Promise<T>;
100
- /**
101
- * Check if tracing is enabled (OpenTelemetry API is available and configured)
102
- */
103
- declare function isTracingEnabled(): boolean;
104
- //# sourceMappingURL=http.d.ts.map
105
- //#endregion
106
- export { EndpointAttributes, HttpRequestAttributes, HttpResponseAttributes, HttpSpanAttributes, UserAttributes, createChildSpan, createHttpServerSpan, endHttpSpan, extractTraceContext, getConstructsTracer, injectTraceContext, isTracingEnabled, toOtelAttributes, withChildSpan, withHttpSpan };
107
- //# sourceMappingURL=http-D1oTbfap.d.cts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"http-D1oTbfap.d.cts","names":[],"sources":["../src/instrumentation/http.ts"],"sourcesContent":[],"mappings":";;;;;;;AAciB,UAAA,qBAAA,CAAqB;EAerB,MAAA,EAAA,MAAA;EAQA,GAAA,CAAA,EAAA,MAAA;EASA,IAAA,CAAA,EAAA,MAAA;EASA,KAAA,CAAA,EAAA,MAAA;EAAmB,IAAA,CAAA,EAAA,MAAA;EAAA,MACxB,CAAA,EAAA,MAAA,GAAA,OAAA;EAAsB,SACtB,CAAA,EAAA,MAAA;EAAkB,QACtB,CAAA,EAAA,MAAA;EAAc,SACZ,CAAA,EAAA,MAAA;;AAJuD;AAYjE;AAOA;AAAgC,UA7Cf,sBAAA,CA6Ce;EAAA,UAAQ,EAAA,MAAA;EAAkB,YAAG,CAAA,EAAA,MAAA;AAAU;AAgDvE;;;AAEG,UAvFc,kBAAA,CAuFd;EAAO,IAAA,CAAA,EAAA,MAAA;EAkBM,WAAA,CAAA,EAAA,MAAA;EAAkB,IAAA,CAAA,EAAA,MAAA,EAAA;;;;AAGzB;AASO,UA5GC,cAAA,CA4GmB;EAAA,MAAA,CAAA,EAAA,MAAA;EAAA,SAC5B,CAAA,EAAA,MAAA;EAAkB,KACT,CAAA,EAAA,MAAA,EAAA;;AACV;AAqBP;;AACO,UA5HU,kBAAA,SAA2B,qBA4HrC,CAAA;EAAI,QACA,CAAA,EA5HC,sBA4HD;EAAsB,QACxB,CAAA,EA5HG,kBA4HH;EAAK,IAAA,CAAA,EA3HN,cA2HM;EAwCQ,MAAA,CAAA,EAlKZ,UAkKwB;;;;;AAEb,iBA5JL,mBAAA,CAAA,CA4JK,EA5Jc,mBAAA,CAAA,MA4Jd;;;;AAEX,iBAvJM,gBAAA,CAuJN,KAAA,EAvJ8B,kBAuJ9B,CAAA,EAvJmD,UAuJnD;AA0BV;;;AAAwE,iBAjIxD,mBAAA,CAiIwD,OAAA,EAhI9D,MAgI8D,CAAA,MAAA,EAAA,MAAA,GAAA,MAAA,EAAA,GAAA,SAAA,CAAA,CAAA,EA/HrE,OA+HqE;AAAI;AAW5E;;AAEY,iBA1HI,kBAAA,CA0HJ,OAAA,EAzHF,MAyHE,CAAA,MAAA,EAAA,MAAA,CAAA,EAAA,GAAA,CAAA,EAxHL,OAwHK,CAAA,EAvHT,MAuHS,CAAA,MAAA,EAAA,MAAA,CAAA;;;;AAED,iBAhHK,oBAAA,CAgHL,KAAA,EA/GH,kBA+GG,EAAA,aAAA,CAAA,EA9GM,OA8GN,CAAA,EA7GR,IA6GQ;;AAAD;AA2BV;iBAnHgB,WAAA,OACT,gBACI,gCACF;;;;;;;;;;;;;;;iBAwCa,uBACd,+BACI,SAAS,QAAQ;;oBACZ,UACd,QAAQ;;;;iBA0BK,eAAA,4BAA2C,aAAa;;;;iBAWlD,0CAEV,SAAS,QAAQ,iBACf,aACX,QAAQ;;;;iBA2BK,gBAAA,CAAA"}
@@ -1 +0,0 @@
1
- export { };
@@ -1 +0,0 @@
1
- export { };
@@ -1,40 +0,0 @@
1
- import { ExceptionEntry, LogEntry, QueryOptions, RequestEntry, TelescopeStats, TelescopeStorage } from "./types-l7Rlb5Mg.cjs";
2
-
3
- //#region src/storage/memory.d.ts
4
- interface InMemoryStorageOptions {
5
- /** Maximum number of entries to keep per type (default: 1000) */
6
- maxEntries?: number;
7
- }
8
- /**
9
- * In-memory storage for Telescope data.
10
- * Ideal for development and testing.
11
- * Data is lost when the process restarts.
12
- */
13
- declare class InMemoryStorage implements TelescopeStorage {
14
- private requests;
15
- private exceptions;
16
- private logs;
17
- private maxEntries;
18
- constructor(options?: InMemoryStorageOptions);
19
- saveRequest(entry: RequestEntry): Promise<void>;
20
- saveRequests(entries: RequestEntry[]): Promise<void>;
21
- getRequests(options?: QueryOptions): Promise<RequestEntry[]>;
22
- getRequest(id: string): Promise<RequestEntry | null>;
23
- saveException(entry: ExceptionEntry): Promise<void>;
24
- saveExceptions(entries: ExceptionEntry[]): Promise<void>;
25
- getExceptions(options?: QueryOptions): Promise<ExceptionEntry[]>;
26
- getException(id: string): Promise<ExceptionEntry | null>;
27
- saveLog(entry: LogEntry): Promise<void>;
28
- saveLogs(entries: LogEntry[]): Promise<void>;
29
- getLogs(options?: QueryOptions): Promise<LogEntry[]>;
30
- prune(olderThan: Date): Promise<number>;
31
- getStats(): Promise<TelescopeStats>;
32
- clear(): void;
33
- private enforceLimit;
34
- private filterEntries;
35
- }
36
- //# sourceMappingURL=memory.d.ts.map
37
-
38
- //#endregion
39
- export { InMemoryStorage, InMemoryStorageOptions };
40
- //# sourceMappingURL=memory--BK4iWiv.d.cts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"memory--BK4iWiv.d.cts","names":[],"sources":["../src/storage/memory.ts"],"sourcesContent":[],"mappings":";;;UASiB,sBAAA;;EAAA,UAAA,CAAA,EAAA,MAAA;AAUjB;;;;;;AAiB8C,cAjBjC,eAAA,YAA2B,gBAiBM,CAAA;EAAO,QAKxB,QAAA;EAAY,QAAW,UAAA;EAAY,QAApB,IAAA;EAAO,QA0BZ,UAAA;EAAY,WAApB,CAAA,OAAA,CAAA,EA1CR,sBA0CQ;EAAO,WAMV,CAAA,KAAA,EA1CF,YA0CE,CAAA,EA1Ca,OA0Cb,CAAA,IAAA,CAAA;EAAc,YAAG,CAAA,OAAA,EArChB,YAqCgB,EAAA,CAAA,EArCC,OAqCD,CAAA,IAAA,CAAA;EAAO,WAKrB,CAAA,OAAA,CAAA,EArCF,YAqCE,CAAA,EArCa,OAqCb,CArCqB,YAqCrB,EAAA,CAAA;EAAc,UAAK,CAAA,EAAA,EAAA,MAAA,CAAA,EAXnB,OAWmB,CAXX,YAWW,GAAA,IAAA,CAAA;EAAO,aAK1B,CAAA,KAAA,EAVH,cAUG,CAAA,EAVc,OAUd,CAAA,IAAA,CAAA;EAAY,cAAW,CAAA,OAAA,EALvB,cAKuB,EAAA,CAAA,EALJ,OAKI,CAAA,IAAA,CAAA;EAAc,aAAtB,CAAA,OAAA,CAAA,EAAf,YAAe,CAAA,EAAA,OAAA,CAAQ,cAAR,EAAA,CAAA;EAAO,YAIZ,CAAA,EAAA,EAAA,MAAA,CAAA,EAAR,OAAQ,CAAA,cAAA,GAAA,IAAA,CAAA;EAAc,OAAtB,CAAA,KAAA,EAMX,QANW,CAAA,EAMA,OANA,CAAA,IAAA,CAAA;EAAO,QAMlB,CAAA,OAAA,EAKG,QALH,EAAA,CAAA,EAKgB,OALhB,CAAA,IAAA,CAAA;EAAQ,OAAG,CAAA,OAAA,CAAA,EAUR,YAVQ,CAAA,EAUO,OAVP,CAUe,QAVf,EAAA,CAAA;EAAO,KAKf,CAAA,SAAA,EAkBD,IAlBC,CAAA,EAkBM,OAlBN,CAAA,MAAA,CAAA;EAAQ,QAAK,CAAA,CAAA,EAiCnB,OAjCmB,CAiCX,cAjCW,CAAA;EAAO,KAKpB,CAAA,CAAA,EAAA,IAAA;EAAY,QAAW,YAAA;EAAQ,QAAhB,aAAA"}
@@ -1,123 +0,0 @@
1
- //#region src/storage/memory.ts
2
- /**
3
- * In-memory storage for Telescope data.
4
- * Ideal for development and testing.
5
- * Data is lost when the process restarts.
6
- */
7
- var InMemoryStorage = class {
8
- requests = [];
9
- exceptions = [];
10
- logs = [];
11
- maxEntries;
12
- constructor(options) {
13
- this.maxEntries = options?.maxEntries ?? 1e3;
14
- }
15
- async saveRequest(entry) {
16
- this.requests.unshift(entry);
17
- this.enforceLimit("requests");
18
- }
19
- async saveRequests(entries) {
20
- this.requests.unshift(...entries);
21
- this.enforceLimit("requests");
22
- }
23
- async getRequests(options) {
24
- let result = this.requests;
25
- if (options?.method) result = result.filter((r) => r.method === options.method);
26
- if (options?.status) {
27
- const statusFilter = options.status;
28
- result = result.filter((r) => {
29
- if (statusFilter.endsWith("xx")) {
30
- const firstChar = statusFilter[0];
31
- if (!firstChar) return false;
32
- const category = parseInt(firstChar, 10);
33
- return Math.floor(r.status / 100) === category;
34
- }
35
- return r.status === parseInt(statusFilter, 10);
36
- });
37
- }
38
- return this.filterEntries(result, options);
39
- }
40
- async getRequest(id) {
41
- return this.requests.find((r) => r.id === id) ?? null;
42
- }
43
- async saveException(entry) {
44
- this.exceptions.unshift(entry);
45
- this.enforceLimit("exceptions");
46
- }
47
- async saveExceptions(entries) {
48
- this.exceptions.unshift(...entries);
49
- this.enforceLimit("exceptions");
50
- }
51
- async getExceptions(options) {
52
- return this.filterEntries(this.exceptions, options);
53
- }
54
- async getException(id) {
55
- return this.exceptions.find((e) => e.id === id) ?? null;
56
- }
57
- async saveLog(entry) {
58
- this.logs.unshift(entry);
59
- this.enforceLimit("logs");
60
- }
61
- async saveLogs(entries) {
62
- this.logs.unshift(...entries);
63
- this.enforceLimit("logs");
64
- }
65
- async getLogs(options) {
66
- let result = this.logs;
67
- if (options?.level) result = result.filter((l) => l.level === options.level);
68
- return this.filterEntries(result, options);
69
- }
70
- async prune(olderThan) {
71
- const beforeCount = this.requests.length + this.exceptions.length + this.logs.length;
72
- this.requests = this.requests.filter((r) => r.timestamp >= olderThan);
73
- this.exceptions = this.exceptions.filter((e) => e.timestamp >= olderThan);
74
- this.logs = this.logs.filter((l) => l.timestamp >= olderThan);
75
- const afterCount = this.requests.length + this.exceptions.length + this.logs.length;
76
- return beforeCount - afterCount;
77
- }
78
- async getStats() {
79
- const allTimestamps = [
80
- ...this.requests.map((r) => r.timestamp),
81
- ...this.exceptions.map((e) => e.timestamp),
82
- ...this.logs.map((l) => l.timestamp)
83
- ].sort((a, b) => a.getTime() - b.getTime());
84
- return {
85
- requests: this.requests.length,
86
- exceptions: this.exceptions.length,
87
- logs: this.logs.length,
88
- oldestEntry: allTimestamps[0],
89
- newestEntry: allTimestamps[allTimestamps.length - 1]
90
- };
91
- }
92
- clear() {
93
- this.requests = [];
94
- this.exceptions = [];
95
- this.logs = [];
96
- }
97
- enforceLimit(type) {
98
- const entries = this[type];
99
- if (entries.length > this.maxEntries) if (type === "requests") this.requests = this.requests.slice(0, this.maxEntries);
100
- else if (type === "exceptions") this.exceptions = this.exceptions.slice(0, this.maxEntries);
101
- else this.logs = this.logs.slice(0, this.maxEntries);
102
- }
103
- filterEntries(entries, options) {
104
- let result = entries;
105
- if (options?.after) result = result.filter((e) => e.timestamp >= options.after);
106
- if (options?.before) result = result.filter((e) => e.timestamp <= options.before);
107
- if (options?.tags && options.tags.length > 0) result = result.filter((e) => e.tags && options.tags?.some((t) => e.tags?.includes(t)));
108
- if (options?.search) {
109
- const searchLower = options.search.toLowerCase();
110
- result = result.filter((e) => {
111
- const str = JSON.stringify(e).toLowerCase();
112
- return str.includes(searchLower);
113
- });
114
- }
115
- const offset = options?.offset ?? 0;
116
- const limit = options?.limit ?? 50;
117
- return result.slice(offset, offset + limit);
118
- }
119
- };
120
-
121
- //#endregion
122
- export { InMemoryStorage };
123
- //# sourceMappingURL=memory-6S9H-IF5.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"memory-6S9H-IF5.mjs","names":["options?: InMemoryStorageOptions","entry: RequestEntry","entries: RequestEntry[]","options?: QueryOptions","id: string","entry: ExceptionEntry","entries: ExceptionEntry[]","entry: LogEntry","entries: LogEntry[]","olderThan: Date","type: 'requests' | 'exceptions' | 'logs'","entries: T[]"],"sources":["../src/storage/memory.ts"],"sourcesContent":["import type {\n\tExceptionEntry,\n\tLogEntry,\n\tQueryOptions,\n\tRequestEntry,\n\tTelescopeStats,\n\tTelescopeStorage,\n} from '../types';\n\nexport interface InMemoryStorageOptions {\n\t/** Maximum number of entries to keep per type (default: 1000) */\n\tmaxEntries?: number;\n}\n\n/**\n * In-memory storage for Telescope data.\n * Ideal for development and testing.\n * Data is lost when the process restarts.\n */\nexport class InMemoryStorage implements TelescopeStorage {\n\tprivate requests: RequestEntry[] = [];\n\tprivate exceptions: ExceptionEntry[] = [];\n\tprivate logs: LogEntry[] = [];\n\tprivate maxEntries: number;\n\n\tconstructor(options?: InMemoryStorageOptions) {\n\t\tthis.maxEntries = options?.maxEntries ?? 1000;\n\t}\n\n\t// Requests\n\n\tasync saveRequest(entry: RequestEntry): Promise<void> {\n\t\tthis.requests.unshift(entry);\n\t\tthis.enforceLimit('requests');\n\t}\n\n\tasync saveRequests(entries: RequestEntry[]): Promise<void> {\n\t\tthis.requests.unshift(...entries);\n\t\tthis.enforceLimit('requests');\n\t}\n\n\tasync getRequests(options?: QueryOptions): Promise<RequestEntry[]> {\n\t\tlet result = this.requests;\n\n\t\t// Apply request-specific filters before generic filtering\n\t\tif (options?.method) {\n\t\t\tresult = result.filter((r) => r.method === options.method);\n\t\t}\n\n\t\tif (options?.status) {\n\t\t\tconst statusFilter = options.status;\n\t\t\tresult = result.filter((r) => {\n\t\t\t\t// Handle status ranges like \"2xx\", \"4xx\", \"5xx\"\n\t\t\t\tif (statusFilter.endsWith('xx')) {\n\t\t\t\t\tconst firstChar = statusFilter[0];\n\t\t\t\t\tif (!firstChar) return false;\n\t\t\t\t\tconst category = parseInt(firstChar, 10);\n\t\t\t\t\treturn Math.floor(r.status / 100) === category;\n\t\t\t\t}\n\t\t\t\t// Handle exact status codes\n\t\t\t\treturn r.status === parseInt(statusFilter, 10);\n\t\t\t});\n\t\t}\n\n\t\treturn this.filterEntries(result, options);\n\t}\n\n\tasync getRequest(id: string): Promise<RequestEntry | null> {\n\t\treturn this.requests.find((r) => r.id === id) ?? null;\n\t}\n\n\t// Exceptions\n\n\tasync saveException(entry: ExceptionEntry): Promise<void> {\n\t\tthis.exceptions.unshift(entry);\n\t\tthis.enforceLimit('exceptions');\n\t}\n\n\tasync saveExceptions(entries: ExceptionEntry[]): Promise<void> {\n\t\tthis.exceptions.unshift(...entries);\n\t\tthis.enforceLimit('exceptions');\n\t}\n\n\tasync getExceptions(options?: QueryOptions): Promise<ExceptionEntry[]> {\n\t\treturn this.filterEntries(this.exceptions, options);\n\t}\n\n\tasync getException(id: string): Promise<ExceptionEntry | null> {\n\t\treturn this.exceptions.find((e) => e.id === id) ?? null;\n\t}\n\n\t// Logs\n\n\tasync saveLog(entry: LogEntry): Promise<void> {\n\t\tthis.logs.unshift(entry);\n\t\tthis.enforceLimit('logs');\n\t}\n\n\tasync saveLogs(entries: LogEntry[]): Promise<void> {\n\t\tthis.logs.unshift(...entries);\n\t\tthis.enforceLimit('logs');\n\t}\n\n\tasync getLogs(options?: QueryOptions): Promise<LogEntry[]> {\n\t\tlet result = this.logs;\n\n\t\t// Apply log-specific filters before generic filtering\n\t\tif (options?.level) {\n\t\t\tresult = result.filter((l) => l.level === options.level);\n\t\t}\n\n\t\treturn this.filterEntries(result, options);\n\t}\n\n\t// Cleanup\n\n\tasync prune(olderThan: Date): Promise<number> {\n\t\tconst beforeCount =\n\t\t\tthis.requests.length + this.exceptions.length + this.logs.length;\n\n\t\tthis.requests = this.requests.filter((r) => r.timestamp >= olderThan);\n\t\tthis.exceptions = this.exceptions.filter((e) => e.timestamp >= olderThan);\n\t\tthis.logs = this.logs.filter((l) => l.timestamp >= olderThan);\n\n\t\tconst afterCount =\n\t\t\tthis.requests.length + this.exceptions.length + this.logs.length;\n\t\treturn beforeCount - afterCount;\n\t}\n\n\t// Stats\n\n\tasync getStats(): Promise<TelescopeStats> {\n\t\tconst allTimestamps = [\n\t\t\t...this.requests.map((r) => r.timestamp),\n\t\t\t...this.exceptions.map((e) => e.timestamp),\n\t\t\t...this.logs.map((l) => l.timestamp),\n\t\t].sort((a, b) => a.getTime() - b.getTime());\n\n\t\treturn {\n\t\t\trequests: this.requests.length,\n\t\t\texceptions: this.exceptions.length,\n\t\t\tlogs: this.logs.length,\n\t\t\toldestEntry: allTimestamps[0],\n\t\t\tnewestEntry: allTimestamps[allTimestamps.length - 1],\n\t\t};\n\t}\n\n\t// Clear all data (useful for testing)\n\n\tclear(): void {\n\t\tthis.requests = [];\n\t\tthis.exceptions = [];\n\t\tthis.logs = [];\n\t}\n\n\t// Private helpers\n\n\tprivate enforceLimit(type: 'requests' | 'exceptions' | 'logs'): void {\n\t\tconst entries = this[type];\n\t\tif (entries.length > this.maxEntries) {\n\t\t\tif (type === 'requests') {\n\t\t\t\tthis.requests = this.requests.slice(0, this.maxEntries);\n\t\t\t} else if (type === 'exceptions') {\n\t\t\t\tthis.exceptions = this.exceptions.slice(0, this.maxEntries);\n\t\t\t} else {\n\t\t\t\tthis.logs = this.logs.slice(0, this.maxEntries);\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate filterEntries<T extends { timestamp: Date; tags?: string[] }>(\n\t\tentries: T[],\n\t\toptions?: QueryOptions,\n\t): T[] {\n\t\tlet result = entries;\n\n\t\tif (options?.after) {\n\t\t\tresult = result.filter((e) => e.timestamp >= options.after!);\n\t\t}\n\n\t\tif (options?.before) {\n\t\t\tresult = result.filter((e) => e.timestamp <= options.before!);\n\t\t}\n\n\t\tif (options?.tags && options.tags.length > 0) {\n\t\t\tresult = result.filter(\n\t\t\t\t(e) => e.tags && options.tags?.some((t) => e.tags?.includes(t)),\n\t\t\t);\n\t\t}\n\n\t\tif (options?.search) {\n\t\t\tconst searchLower = options.search.toLowerCase();\n\t\t\tresult = result.filter((e) => {\n\t\t\t\tconst str = JSON.stringify(e).toLowerCase();\n\t\t\t\treturn str.includes(searchLower);\n\t\t\t});\n\t\t}\n\n\t\tconst offset = options?.offset ?? 0;\n\t\tconst limit = options?.limit ?? 50;\n\n\t\treturn result.slice(offset, offset + limit);\n\t}\n}\n"],"mappings":"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"}