@geekmidas/telescope 10.0.0-alpha.99 → 10.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 (480) hide show
  1. package/CHANGELOG.md +79 -0
  2. package/README.md +18 -28
  3. package/dist/InMemoryMetricsStorage-BbKCL3YL.d.mts +47 -0
  4. package/dist/InMemoryMetricsStorage-BbKCL3YL.d.mts.map +1 -0
  5. package/dist/InMemoryMetricsStorage-C4drxT7G.mjs +247 -0
  6. package/dist/InMemoryMetricsStorage-C4drxT7G.mjs.map +1 -0
  7. package/dist/InMemoryMetricsStorage-D0njWUSi.cjs +252 -0
  8. package/dist/InMemoryMetricsStorage-D0njWUSi.cjs.map +1 -0
  9. package/dist/InMemoryMetricsStorage-TvPdZjL0.d.cts +47 -0
  10. package/dist/InMemoryMetricsStorage-TvPdZjL0.d.cts.map +1 -0
  11. package/dist/{MetricsAggregator-BJdIvfEv.d.mts → MetricsAggregator-4SqelGcG.d.cts} +6 -3
  12. package/dist/MetricsAggregator-4SqelGcG.d.cts.map +1 -0
  13. package/dist/MetricsAggregator-B7lUICdH.cjs +363 -0
  14. package/dist/MetricsAggregator-B7lUICdH.cjs.map +1 -0
  15. package/dist/{MetricsAggregator-CnC3oT5q.d.cts → MetricsAggregator-DZrW8ls6.d.mts} +6 -3
  16. package/dist/MetricsAggregator-DZrW8ls6.d.mts.map +1 -0
  17. package/dist/MetricsAggregator-S3DQWNas.mjs +357 -0
  18. package/dist/MetricsAggregator-S3DQWNas.mjs.map +1 -0
  19. package/dist/MetricsStorage-B86e4131.d.cts +60 -0
  20. package/dist/MetricsStorage-B86e4131.d.cts.map +1 -0
  21. package/dist/MetricsStorage-BWyP2_12.d.mts +60 -0
  22. package/dist/MetricsStorage-BWyP2_12.d.mts.map +1 -0
  23. package/dist/MetricsStorage-BypQXWiv.mjs +0 -0
  24. package/dist/MetricsStorage-Or8pVCe4.cjs +0 -0
  25. package/dist/Telescope-Cs3fv8jt.cjs +395 -0
  26. package/dist/Telescope-Cs3fv8jt.cjs.map +1 -0
  27. package/dist/{Telescope-BVfDvVvY.d.mts → Telescope-D4nmwDRA.d.cts} +7 -4
  28. package/dist/Telescope-D4nmwDRA.d.cts.map +1 -0
  29. package/dist/Telescope-Dh5av3FC.mjs +389 -0
  30. package/dist/Telescope-Dh5av3FC.mjs.map +1 -0
  31. package/dist/{Telescope-DeqSHfuB.d.cts → Telescope-Dl6VSfxd.d.mts} +7 -4
  32. package/dist/Telescope-Dl6VSfxd.d.mts.map +1 -0
  33. package/dist/Telescope.cjs +4 -385
  34. package/dist/Telescope.d.cts +3 -1
  35. package/dist/Telescope.d.mts +3 -1
  36. package/dist/Telescope.mjs +4 -384
  37. package/dist/adapters/index.d.cts +2 -2
  38. package/dist/adapters/index.d.mts +2 -2
  39. package/dist/adapters/index.mjs +0 -1
  40. package/dist/adapters/lambda.cjs +10 -9
  41. package/dist/adapters/lambda.cjs.map +1 -1
  42. package/dist/adapters/lambda.d.cts +13 -9
  43. package/dist/adapters/lambda.d.cts.map +1 -1
  44. package/dist/adapters/lambda.d.mts +13 -9
  45. package/dist/adapters/lambda.d.mts.map +1 -1
  46. package/dist/adapters/lambda.mjs +4 -3
  47. package/dist/adapters/lambda.mjs.map +1 -1
  48. package/dist/adapters/middy.cjs +4 -236
  49. package/dist/adapters/middy.d.cts +5 -60
  50. package/dist/adapters/middy.d.mts +5 -60
  51. package/dist/adapters/middy.mjs +3 -234
  52. package/dist/adapters/types.d.cts +2 -162
  53. package/dist/adapters/types.d.mts +2 -162
  54. package/dist/adapters/types.mjs +0 -1
  55. package/dist/{rolldown-runtime-VH7oDXx4.cjs → chunk-CUT6urMc.cjs} +10 -8
  56. package/dist/core--quSp5Qr.d.mts +78 -0
  57. package/dist/core--quSp5Qr.d.mts.map +1 -0
  58. package/dist/core-B4Jpia5H.d.cts +78 -0
  59. package/dist/core-B4Jpia5H.d.cts.map +1 -0
  60. package/dist/core-CtVHRJGv.cjs +199 -0
  61. package/dist/core-CtVHRJGv.cjs.map +1 -0
  62. package/dist/core-D6hJ6exL.mjs +139 -0
  63. package/dist/core-D6hJ6exL.mjs.map +1 -0
  64. package/dist/core.cjs +22 -22
  65. package/dist/core.d.cts +4 -4
  66. package/dist/core.d.mts +4 -4
  67. package/dist/core.mjs +4 -3
  68. package/dist/hono--uKQ7Jgi.d.mts +71 -0
  69. package/dist/hono--uKQ7Jgi.d.mts.map +1 -0
  70. package/dist/hono-C4EgpbKQ.cjs +160 -0
  71. package/dist/hono-C4EgpbKQ.cjs.map +1 -0
  72. package/dist/hono-CemCKU87.d.cts +71 -0
  73. package/dist/hono-CemCKU87.d.cts.map +1 -0
  74. package/dist/hono-DxhvnVbF.mjs +136 -0
  75. package/dist/hono-DxhvnVbF.mjs.map +1 -0
  76. package/dist/http-BiNtg85L.d.mts +107 -0
  77. package/dist/http-BiNtg85L.d.mts.map +1 -0
  78. package/dist/http-DQzgLczm.mjs +159 -0
  79. package/dist/http-DQzgLczm.mjs.map +1 -0
  80. package/dist/http-D_Z8sYXZ.cjs +219 -0
  81. package/dist/http-D_Z8sYXZ.cjs.map +1 -0
  82. package/dist/http-Dvca6fC3.d.cts +107 -0
  83. package/dist/http-Dvca6fC3.d.cts.map +1 -0
  84. package/dist/index-BL32-cvv.d.cts +1 -0
  85. package/dist/index-CsuikFeJ.d.mts +1 -0
  86. package/dist/index.cjs +9 -8
  87. package/dist/index.d.cts +6 -5
  88. package/dist/index.d.mts +6 -5
  89. package/dist/index.mjs +7 -5
  90. package/dist/instrumentation/core.cjs +11 -147
  91. package/dist/instrumentation/core.d.cts +3 -74
  92. package/dist/instrumentation/core.d.mts +3 -74
  93. package/dist/instrumentation/core.mjs +2 -137
  94. package/dist/instrumentation/hono.cjs +6 -174
  95. package/dist/instrumentation/hono.d.cts +2 -86
  96. package/dist/instrumentation/hono.d.mts +2 -86
  97. package/dist/instrumentation/hono.mjs +3 -170
  98. package/dist/instrumentation/http.cjs +11 -189
  99. package/dist/instrumentation/http.d.cts +2 -119
  100. package/dist/instrumentation/http.d.mts +2 -119
  101. package/dist/instrumentation/http.mjs +2 -178
  102. package/dist/instrumentation/index.cjs +47 -56
  103. package/dist/instrumentation/index.d.cts +9 -11
  104. package/dist/instrumentation/index.d.mts +9 -11
  105. package/dist/instrumentation/index.mjs +9 -10
  106. package/dist/instrumentation/middleware.cjs +6 -164
  107. package/dist/instrumentation/middleware.d.cts +2 -83
  108. package/dist/instrumentation/middleware.d.mts +2 -83
  109. package/dist/instrumentation/middleware.mjs +3 -160
  110. package/dist/instrumentation/otel.cjs +3 -137
  111. package/dist/instrumentation/otel.d.cts +2 -97
  112. package/dist/instrumentation/otel.d.mts +2 -97
  113. package/dist/instrumentation/otel.mjs +3 -136
  114. package/dist/instrumentation/setup.cjs +4 -142
  115. package/dist/instrumentation/setup.d.cts +3 -139
  116. package/dist/instrumentation/setup.d.mts +3 -139
  117. package/dist/instrumentation/setup.mjs +3 -139
  118. package/dist/instrumentation/tracing.cjs +10 -114
  119. package/dist/instrumentation/tracing.d.cts +2 -49
  120. package/dist/instrumentation/tracing.d.mts +2 -49
  121. package/dist/instrumentation/tracing.mjs +2 -105
  122. package/dist/logger/console.cjs +12 -18
  123. package/dist/logger/console.cjs.map +1 -1
  124. package/dist/logger/console.d.cts +10 -7
  125. package/dist/logger/console.d.cts.map +1 -1
  126. package/dist/logger/console.d.mts +10 -7
  127. package/dist/logger/console.d.mts.map +1 -1
  128. package/dist/logger/console.mjs +11 -17
  129. package/dist/logger/console.mjs.map +1 -1
  130. package/dist/logger/pino.cjs +5 -6
  131. package/dist/logger/pino.cjs.map +1 -1
  132. package/dist/logger/pino.d.cts +10 -6
  133. package/dist/logger/pino.d.cts.map +1 -1
  134. package/dist/logger/pino.d.mts +10 -6
  135. package/dist/logger/pino.d.mts.map +1 -1
  136. package/dist/logger/pino.mjs +3 -2
  137. package/dist/logger/pino.mjs.map +1 -1
  138. package/dist/memory--BK4iWiv.d.cts +40 -0
  139. package/dist/memory--BK4iWiv.d.cts.map +1 -0
  140. package/dist/memory-6S9H-IF5.mjs +123 -0
  141. package/dist/memory-6S9H-IF5.mjs.map +1 -0
  142. package/dist/memory-B0d_n1g5.cjs +129 -0
  143. package/dist/memory-B0d_n1g5.cjs.map +1 -0
  144. package/dist/memory-DCirEVFW.d.mts +40 -0
  145. package/dist/memory-DCirEVFW.d.mts.map +1 -0
  146. package/dist/metrics/MetricsAggregator.cjs +2 -354
  147. package/dist/metrics/MetricsAggregator.d.cts +2 -1
  148. package/dist/metrics/MetricsAggregator.d.mts +2 -1
  149. package/dist/metrics/MetricsAggregator.mjs +2 -353
  150. package/dist/metrics/index.cjs +4 -3
  151. package/dist/metrics/index.d.cts +4 -2
  152. package/dist/metrics/index.d.mts +4 -2
  153. package/dist/metrics/index.mjs +4 -2
  154. package/dist/metrics/storage/InMemoryMetricsStorage.cjs +3 -240
  155. package/dist/metrics/storage/InMemoryMetricsStorage.d.cts +4 -43
  156. package/dist/metrics/storage/InMemoryMetricsStorage.d.mts +4 -43
  157. package/dist/metrics/storage/InMemoryMetricsStorage.mjs +3 -239
  158. package/dist/metrics/storage/MetricsStorage.cjs +1 -0
  159. package/dist/metrics/storage/MetricsStorage.d.cts +3 -56
  160. package/dist/metrics/storage/MetricsStorage.d.mts +3 -56
  161. package/dist/metrics/storage/MetricsStorage.mjs +1 -1
  162. package/dist/metrics/storage/index.cjs +6 -6
  163. package/dist/metrics/storage/index.d.cts +3 -3
  164. package/dist/metrics/storage/index.d.mts +3 -3
  165. package/dist/metrics/storage/index.mjs +5 -4
  166. package/dist/metrics/storage/types.cjs +2 -34
  167. package/dist/metrics/storage/types.d.cts +2 -207
  168. package/dist/metrics/storage/types.d.mts +2 -207
  169. package/dist/metrics/storage/types.mjs +2 -33
  170. package/dist/metrics-D5YT-Rnq.mjs +0 -0
  171. package/dist/metrics-fhD3l3C3.cjs +0 -0
  172. package/dist/middleware-B2jFUukM.cjs +184 -0
  173. package/dist/middleware-B2jFUukM.cjs.map +1 -0
  174. package/dist/middleware-BTDncHwm.mjs +160 -0
  175. package/dist/middleware-BTDncHwm.mjs.map +1 -0
  176. package/dist/middleware-CA84nsNN.d.cts +74 -0
  177. package/dist/middleware-CA84nsNN.d.cts.map +1 -0
  178. package/dist/middleware-DAceVpfw.d.mts +74 -0
  179. package/dist/middleware-DAceVpfw.d.mts.map +1 -0
  180. package/dist/middy-B6Btl8XE.d.mts +64 -0
  181. package/dist/middy-B6Btl8XE.d.mts.map +1 -0
  182. package/dist/middy-BTR3cyvk.mjs +236 -0
  183. package/dist/middy-BTR3cyvk.mjs.map +1 -0
  184. package/dist/middy-Bq0defVg.d.cts +64 -0
  185. package/dist/middy-Bq0defVg.d.cts.map +1 -0
  186. package/dist/middy-y5Zp27eG.cjs +247 -0
  187. package/dist/middy-y5Zp27eG.cjs.map +1 -0
  188. package/dist/otel-1bJPb2Z7.d.mts +101 -0
  189. package/dist/otel-1bJPb2Z7.d.mts.map +1 -0
  190. package/dist/otel-C1HqHA2O.cjs +136 -0
  191. package/dist/otel-C1HqHA2O.cjs.map +1 -0
  192. package/dist/otel-SBVoVEHr.d.cts +101 -0
  193. package/dist/otel-SBVoVEHr.d.cts.map +1 -0
  194. package/dist/otel-wulj5B-X.mjs +130 -0
  195. package/dist/otel-wulj5B-X.mjs.map +1 -0
  196. package/dist/otlp/hono.cjs +15 -9
  197. package/dist/otlp/hono.cjs.map +1 -1
  198. package/dist/otlp/hono.d.cts +13 -3
  199. package/dist/otlp/hono.d.cts.map +1 -1
  200. package/dist/otlp/hono.d.mts +13 -3
  201. package/dist/otlp/hono.d.mts.map +1 -1
  202. package/dist/otlp/hono.mjs +11 -5
  203. package/dist/otlp/hono.mjs.map +1 -1
  204. package/dist/otlp/index.cjs +11 -11
  205. package/dist/otlp/index.d.cts +7 -4
  206. package/dist/otlp/index.d.mts +7 -4
  207. package/dist/otlp/index.mjs +5 -4
  208. package/dist/otlp/receiver.cjs +4 -88
  209. package/dist/otlp/receiver.d.cts +7 -59
  210. package/dist/otlp/receiver.d.mts +7 -59
  211. package/dist/otlp/receiver.mjs +4 -87
  212. package/dist/otlp/transformer.cjs +5 -214
  213. package/dist/otlp/transformer.d.cts +3 -1
  214. package/dist/otlp/transformer.d.mts +3 -1
  215. package/dist/otlp/transformer.mjs +3 -211
  216. package/dist/otlp/types.cjs +5 -57
  217. package/dist/otlp/types.d.cts +1 -1
  218. package/dist/otlp/types.d.mts +1 -1
  219. package/dist/otlp/types.mjs +2 -53
  220. package/dist/receiver-Cj1lbAOO.cjs +94 -0
  221. package/dist/receiver-Cj1lbAOO.cjs.map +1 -0
  222. package/dist/receiver-CxVd_9CB.mjs +89 -0
  223. package/dist/receiver-CxVd_9CB.mjs.map +1 -0
  224. package/dist/receiver-DLICx5uU.d.cts +63 -0
  225. package/dist/receiver-DLICx5uU.d.cts.map +1 -0
  226. package/dist/receiver-UeZT-H8u.d.mts +63 -0
  227. package/dist/receiver-UeZT-H8u.d.mts.map +1 -0
  228. package/dist/redact-BzkITCNW.mjs +83 -0
  229. package/dist/redact-BzkITCNW.mjs.map +1 -0
  230. package/dist/redact-DVaSSPZT.cjs +95 -0
  231. package/dist/redact-DVaSSPZT.cjs.map +1 -0
  232. package/dist/redact.cjs +3 -84
  233. package/dist/redact.d.cts +8 -4
  234. package/dist/redact.d.cts.map +1 -1
  235. package/dist/redact.d.mts +8 -4
  236. package/dist/redact.d.mts.map +1 -1
  237. package/dist/redact.mjs +2 -80
  238. package/dist/server/hono.cjs +54 -33
  239. package/dist/server/hono.cjs.map +1 -1
  240. package/dist/server/hono.d.cts +14 -19
  241. package/dist/server/hono.d.cts.map +1 -1
  242. package/dist/server/hono.d.mts +14 -19
  243. package/dist/server/hono.d.mts.map +1 -1
  244. package/dist/server/hono.mjs +52 -31
  245. package/dist/server/hono.mjs.map +1 -1
  246. package/dist/setup-B9jM77Qk.mjs +98 -0
  247. package/dist/setup-B9jM77Qk.mjs.map +1 -0
  248. package/dist/setup-Bkxm4g6b.d.mts +87 -0
  249. package/dist/setup-Bkxm4g6b.d.mts.map +1 -0
  250. package/dist/setup-CYpff5B9.cjs +110 -0
  251. package/dist/setup-CYpff5B9.cjs.map +1 -0
  252. package/dist/setup-D58N1f9O.d.cts +87 -0
  253. package/dist/setup-D58N1f9O.d.cts.map +1 -0
  254. package/dist/storage/kysely.cjs +70 -82
  255. package/dist/storage/kysely.cjs.map +1 -1
  256. package/dist/storage/kysely.d.cts +20 -36
  257. package/dist/storage/kysely.d.cts.map +1 -1
  258. package/dist/storage/kysely.d.mts +20 -36
  259. package/dist/storage/kysely.d.mts.map +1 -1
  260. package/dist/storage/kysely.mjs +69 -81
  261. package/dist/storage/kysely.mjs.map +1 -1
  262. package/dist/storage/memory.cjs +2 -122
  263. package/dist/storage/memory.d.cts +3 -36
  264. package/dist/storage/memory.d.mts +3 -36
  265. package/dist/storage/memory.mjs +2 -121
  266. package/dist/tracing-BX8uY2nR.d.cts +53 -0
  267. package/dist/tracing-BX8uY2nR.d.cts.map +1 -0
  268. package/dist/tracing-Bt1zWRlb.cjs +167 -0
  269. package/dist/tracing-Bt1zWRlb.cjs.map +1 -0
  270. package/dist/tracing-Cijm_5NI.mjs +113 -0
  271. package/dist/tracing-Cijm_5NI.mjs.map +1 -0
  272. package/dist/tracing-PnECEbEu.d.mts +53 -0
  273. package/dist/tracing-PnECEbEu.d.mts.map +1 -0
  274. package/dist/transformer-BXQPhzql.mjs +215 -0
  275. package/dist/transformer-BXQPhzql.mjs.map +1 -0
  276. package/dist/transformer-CLGZ0EQc.cjs +232 -0
  277. package/dist/transformer-CLGZ0EQc.cjs.map +1 -0
  278. package/dist/{transformer-BtqjAs0b.d.cts → transformer-CTGsaVfV.d.mts} +8 -4
  279. package/dist/transformer-CTGsaVfV.d.mts.map +1 -0
  280. package/dist/{transformer-DI6t8-YA.d.mts → transformer-ICEbxpFf.d.cts} +8 -4
  281. package/dist/transformer-ICEbxpFf.d.cts.map +1 -0
  282. package/dist/{types-BVujq4zd.d.mts → types-B1EIa_cQ.d.mts} +4 -3
  283. package/dist/types-B1EIa_cQ.d.mts.map +1 -0
  284. package/dist/types-BRzW1NM8.d.cts +166 -0
  285. package/dist/types-BRzW1NM8.d.cts.map +1 -0
  286. package/dist/types-BS3Rx8Sk.d.cts +209 -0
  287. package/dist/types-BS3Rx8Sk.d.cts.map +1 -0
  288. package/dist/types-Bwm_jNU7.mjs +54 -0
  289. package/dist/types-Bwm_jNU7.mjs.map +1 -0
  290. package/dist/types-BzQ78Efw.d.mts +166 -0
  291. package/dist/types-BzQ78Efw.d.mts.map +1 -0
  292. package/dist/types-CbNGXnJE.d.mts +209 -0
  293. package/dist/types-CbNGXnJE.d.mts.map +1 -0
  294. package/dist/{types-DVETVdpa.d.cts → types-CmOB7CLO.d.cts} +7 -6
  295. package/dist/types-CmOB7CLO.d.cts.map +1 -0
  296. package/dist/{types-DVETVdpa.d.mts → types-DBc0q5KD.d.mts} +7 -6
  297. package/dist/types-DBc0q5KD.d.mts.map +1 -0
  298. package/dist/types-Dsh-DIO_.cjs +78 -0
  299. package/dist/types-Dsh-DIO_.cjs.map +1 -0
  300. package/dist/types-ZW-nfWf6.cjs +40 -0
  301. package/dist/types-ZW-nfWf6.cjs.map +1 -0
  302. package/dist/{types-BVujq4zd.d.cts → types-l7Rlb5Mg.d.cts} +4 -3
  303. package/dist/types-l7Rlb5Mg.d.cts.map +1 -0
  304. package/dist/types-ojhnLdwz.mjs +34 -0
  305. package/dist/types-ojhnLdwz.mjs.map +1 -0
  306. package/dist/types.d.cts +1 -1
  307. package/dist/types.d.mts +1 -1
  308. package/dist/types.mjs +0 -1
  309. package/dist/ui-assets-BEXqOQLe.cjs +48 -0
  310. package/dist/ui-assets-BEXqOQLe.cjs.map +1 -0
  311. package/dist/ui-assets-BhTDUsrM.mjs +30 -0
  312. package/dist/ui-assets-BhTDUsrM.mjs.map +1 -0
  313. package/dist/ui-assets.cjs +5 -0
  314. package/dist/ui-assets.d.cts +13 -0
  315. package/dist/ui-assets.d.cts.map +1 -0
  316. package/dist/ui-assets.d.mts +13 -0
  317. package/dist/ui-assets.d.mts.map +1 -0
  318. package/dist/ui-assets.mjs +3 -0
  319. package/package.json +46 -46
  320. package/src/Telescope.ts +561 -0
  321. package/src/__tests__/Telescope.spec.ts +438 -0
  322. package/src/__tests__/pino-transport.spec.ts +115 -0
  323. package/src/__tests__/redact.spec.ts +336 -0
  324. package/src/adapters/__tests__/lambda.spec.ts +318 -0
  325. package/src/adapters/__tests__/middy.spec.ts +741 -0
  326. package/src/adapters/index.ts +22 -0
  327. package/src/adapters/lambda.ts +432 -0
  328. package/src/adapters/middy.ts +402 -0
  329. package/src/adapters/types.ts +181 -0
  330. package/src/core.ts +51 -0
  331. package/src/index.ts +34 -0
  332. package/src/instrumentation/__tests__/core.spec.ts +248 -0
  333. package/src/instrumentation/__tests__/hono.spec.ts +348 -0
  334. package/src/instrumentation/__tests__/middleware.spec.ts +528 -0
  335. package/src/instrumentation/__tests__/otel.spec.ts +291 -0
  336. package/src/instrumentation/__tests__/tracing.spec.ts +208 -0
  337. package/src/instrumentation/core.ts +228 -0
  338. package/src/instrumentation/hono.ts +270 -0
  339. package/src/instrumentation/http.ts +306 -0
  340. package/src/instrumentation/index.ts +90 -0
  341. package/src/instrumentation/middleware.ts +297 -0
  342. package/src/instrumentation/otel.ts +271 -0
  343. package/src/instrumentation/setup.ts +246 -0
  344. package/src/instrumentation/tracing.ts +145 -0
  345. package/src/logger/__tests__/console.spec.ts +366 -0
  346. package/src/logger/__tests__/pino.spec.ts +217 -0
  347. package/src/logger/console.ts +230 -0
  348. package/src/logger/pino.ts +201 -0
  349. package/src/metrics/MetricsAggregator.ts +555 -0
  350. package/src/metrics/__tests__/MetricsAggregator.spec.ts +298 -0
  351. package/src/metrics/index.ts +2 -0
  352. package/src/metrics/storage/InMemoryMetricsStorage.ts +380 -0
  353. package/src/metrics/storage/MetricsStorage.ts +74 -0
  354. package/src/metrics/storage/index.ts +3 -0
  355. package/src/metrics/storage/types.ts +243 -0
  356. package/src/otlp/__tests__/receiver.spec.ts +367 -0
  357. package/src/otlp/__tests__/transformer.spec.ts +455 -0
  358. package/src/otlp/hono.ts +120 -0
  359. package/src/otlp/index.ts +22 -0
  360. package/src/otlp/receiver.ts +162 -0
  361. package/src/otlp/transformer.ts +367 -0
  362. package/src/otlp/types.ts +364 -0
  363. package/src/redact.ts +116 -0
  364. package/src/server/__tests__/hono.spec.ts +814 -0
  365. package/src/server/hono.ts +442 -0
  366. package/src/storage/__tests__/kysely.spec.ts +715 -0
  367. package/src/storage/__tests__/memory.spec.ts +694 -0
  368. package/src/storage/kysely.ts +599 -0
  369. package/src/storage/memory.ts +204 -0
  370. package/src/types.ts +447 -0
  371. package/src/ui-assets.ts +40 -0
  372. package/tsconfig.json +9 -0
  373. package/ui/CHANGELOG.md +7 -0
  374. package/ui/index.html +12 -0
  375. package/ui/node_modules/.bin/tsc +21 -0
  376. package/ui/node_modules/.bin/tsserver +21 -0
  377. package/ui/node_modules/.bin/vite +21 -0
  378. package/ui/package.json +24 -0
  379. package/ui/src/App.tsx +595 -0
  380. package/ui/src/api.ts +88 -0
  381. package/ui/src/components/ExceptionDetail.tsx +100 -0
  382. package/ui/src/components/FilterBar.tsx +162 -0
  383. package/ui/src/components/LogDetail.tsx +91 -0
  384. package/ui/src/components/RequestDetail.tsx +143 -0
  385. package/ui/src/main.tsx +10 -0
  386. package/ui/src/styles.css +11 -0
  387. package/ui/src/types.ts +63 -0
  388. package/ui/src/vite-env.d.ts +1 -0
  389. package/ui/src/vite-plugin-gkm-config.ts +54 -0
  390. package/ui/tsconfig.json +20 -0
  391. package/ui/tsconfig.tsbuildinfo +1 -0
  392. package/ui/vite.config.ts +13 -0
  393. package/dist/MetricsAggregator-BJdIvfEv.d.mts.map +0 -1
  394. package/dist/MetricsAggregator-CnC3oT5q.d.cts.map +0 -1
  395. package/dist/Telescope-BVfDvVvY.d.mts.map +0 -1
  396. package/dist/Telescope-DeqSHfuB.d.cts.map +0 -1
  397. package/dist/Telescope.cjs.map +0 -1
  398. package/dist/Telescope.mjs.map +0 -1
  399. package/dist/adapters/middy.cjs.map +0 -1
  400. package/dist/adapters/middy.d.cts.map +0 -1
  401. package/dist/adapters/middy.d.mts.map +0 -1
  402. package/dist/adapters/middy.mjs.map +0 -1
  403. package/dist/adapters/types.d.cts.map +0 -1
  404. package/dist/adapters/types.d.mts.map +0 -1
  405. package/dist/instrumentation/core.cjs.map +0 -1
  406. package/dist/instrumentation/core.d.cts.map +0 -1
  407. package/dist/instrumentation/core.d.mts.map +0 -1
  408. package/dist/instrumentation/core.mjs.map +0 -1
  409. package/dist/instrumentation/hono.cjs.map +0 -1
  410. package/dist/instrumentation/hono.d.cts.map +0 -1
  411. package/dist/instrumentation/hono.d.mts.map +0 -1
  412. package/dist/instrumentation/hono.mjs.map +0 -1
  413. package/dist/instrumentation/http.cjs.map +0 -1
  414. package/dist/instrumentation/http.d.cts.map +0 -1
  415. package/dist/instrumentation/http.d.mts.map +0 -1
  416. package/dist/instrumentation/http.mjs.map +0 -1
  417. package/dist/instrumentation/middleware.cjs.map +0 -1
  418. package/dist/instrumentation/middleware.d.cts.map +0 -1
  419. package/dist/instrumentation/middleware.d.mts.map +0 -1
  420. package/dist/instrumentation/middleware.mjs.map +0 -1
  421. package/dist/instrumentation/otel.cjs.map +0 -1
  422. package/dist/instrumentation/otel.d.cts.map +0 -1
  423. package/dist/instrumentation/otel.d.mts.map +0 -1
  424. package/dist/instrumentation/otel.mjs.map +0 -1
  425. package/dist/instrumentation/sampler.cjs +0 -54
  426. package/dist/instrumentation/sampler.cjs.map +0 -1
  427. package/dist/instrumentation/sampler.d.cts +0 -38
  428. package/dist/instrumentation/sampler.d.cts.map +0 -1
  429. package/dist/instrumentation/sampler.d.mts +0 -38
  430. package/dist/instrumentation/sampler.d.mts.map +0 -1
  431. package/dist/instrumentation/sampler.mjs +0 -52
  432. package/dist/instrumentation/sampler.mjs.map +0 -1
  433. package/dist/instrumentation/setup.cjs.map +0 -1
  434. package/dist/instrumentation/setup.d.cts.map +0 -1
  435. package/dist/instrumentation/setup.d.mts.map +0 -1
  436. package/dist/instrumentation/setup.mjs.map +0 -1
  437. package/dist/instrumentation/tracing.cjs.map +0 -1
  438. package/dist/instrumentation/tracing.d.cts.map +0 -1
  439. package/dist/instrumentation/tracing.d.mts.map +0 -1
  440. package/dist/instrumentation/tracing.mjs.map +0 -1
  441. package/dist/instrumentation/trust.cjs +0 -107
  442. package/dist/instrumentation/trust.cjs.map +0 -1
  443. package/dist/instrumentation/trust.d.cts +0 -57
  444. package/dist/instrumentation/trust.d.cts.map +0 -1
  445. package/dist/instrumentation/trust.d.mts +0 -57
  446. package/dist/instrumentation/trust.d.mts.map +0 -1
  447. package/dist/instrumentation/trust.mjs +0 -104
  448. package/dist/instrumentation/trust.mjs.map +0 -1
  449. package/dist/metrics/MetricsAggregator.cjs.map +0 -1
  450. package/dist/metrics/MetricsAggregator.mjs.map +0 -1
  451. package/dist/metrics/storage/InMemoryMetricsStorage.cjs.map +0 -1
  452. package/dist/metrics/storage/InMemoryMetricsStorage.d.cts.map +0 -1
  453. package/dist/metrics/storage/InMemoryMetricsStorage.d.mts.map +0 -1
  454. package/dist/metrics/storage/InMemoryMetricsStorage.mjs.map +0 -1
  455. package/dist/metrics/storage/MetricsStorage.d.cts.map +0 -1
  456. package/dist/metrics/storage/MetricsStorage.d.mts.map +0 -1
  457. package/dist/metrics/storage/types.cjs.map +0 -1
  458. package/dist/metrics/storage/types.d.cts.map +0 -1
  459. package/dist/metrics/storage/types.d.mts.map +0 -1
  460. package/dist/metrics/storage/types.mjs.map +0 -1
  461. package/dist/otlp/receiver.cjs.map +0 -1
  462. package/dist/otlp/receiver.d.cts.map +0 -1
  463. package/dist/otlp/receiver.d.mts.map +0 -1
  464. package/dist/otlp/receiver.mjs.map +0 -1
  465. package/dist/otlp/transformer.cjs.map +0 -1
  466. package/dist/otlp/transformer.mjs.map +0 -1
  467. package/dist/otlp/types.cjs.map +0 -1
  468. package/dist/otlp/types.mjs.map +0 -1
  469. package/dist/redact.cjs.map +0 -1
  470. package/dist/redact.mjs.map +0 -1
  471. package/dist/storage/memory.cjs.map +0 -1
  472. package/dist/storage/memory.d.cts.map +0 -1
  473. package/dist/storage/memory.d.mts.map +0 -1
  474. package/dist/storage/memory.mjs.map +0 -1
  475. package/dist/transformer-BtqjAs0b.d.cts.map +0 -1
  476. package/dist/transformer-DI6t8-YA.d.mts.map +0 -1
  477. package/dist/types-BVujq4zd.d.cts.map +0 -1
  478. package/dist/types-BVujq4zd.d.mts.map +0 -1
  479. package/dist/types-DVETVdpa.d.cts.map +0 -1
  480. package/dist/types-DVETVdpa.d.mts.map +0 -1
@@ -0,0 +1,78 @@
1
+ import { SpanProcessorOptions, SpanProcessorStrategy } from "./types-BRzW1NM8.cjs";
2
+ import { ReadableSpan, Span, SpanExporter, SpanProcessor } from "@opentelemetry/sdk-trace-base";
3
+
4
+ //#region src/instrumentation/core.d.ts
5
+
6
+ /**
7
+ * Create a span processor based on the strategy
8
+ */
9
+ declare function createSpanProcessor(exporter: SpanExporter, options: SpanProcessorOptions): SpanProcessor;
10
+ /**
11
+ * Get the recommended span processor strategy for an environment
12
+ */
13
+ declare function getRecommendedStrategy(environment: 'server' | 'lambda' | 'edge' | 'custom'): SpanProcessorStrategy;
14
+ /**
15
+ * Set the global span processor for flush operations
16
+ */
17
+ declare function setGlobalSpanProcessor(processor: SpanProcessor): void;
18
+ /**
19
+ * Set the global log processor for flush operations
20
+ */
21
+ declare function setGlobalLogProcessor(processor: unknown): void;
22
+ /**
23
+ * Check if telemetry is initialized
24
+ */
25
+ declare function isTelemetryInitialized(): boolean;
26
+ /**
27
+ * Flush all pending telemetry data.
28
+ * This is critical for serverless environments where the process may freeze.
29
+ *
30
+ * @example
31
+ * ```typescript
32
+ * // In a Lambda handler
33
+ * export const handler = async (event, context) => {
34
+ * try {
35
+ * const result = await processRequest(event);
36
+ * return result;
37
+ * } finally {
38
+ * // Flush before Lambda freezes
39
+ * await flushTelemetry();
40
+ * }
41
+ * };
42
+ * ```
43
+ */
44
+ declare function flushTelemetry(timeoutMs?: number): Promise<void>;
45
+ /**
46
+ * Shutdown all telemetry processors
47
+ */
48
+ declare function shutdownTelemetry(): Promise<void>;
49
+ /**
50
+ * Enable debug logging for telemetry
51
+ */
52
+ declare function enableTelemetryDebug(): void;
53
+ /**
54
+ * Wraps a handler function to ensure telemetry is flushed before returning.
55
+ * Useful for Lambda handlers.
56
+ *
57
+ * @example
58
+ * ```typescript
59
+ * export const handler = withTelemetryFlush(async (event, context) => {
60
+ * // Your Lambda logic here
61
+ * return { statusCode: 200, body: 'OK' };
62
+ * });
63
+ * ```
64
+ */
65
+ declare function withTelemetryFlush<TEvent, TResult>(handler: (event: TEvent, context: unknown) => Promise<TResult>): (event: TEvent, context: unknown) => Promise<TResult>;
66
+ /**
67
+ * Noop span processor for testing or when telemetry is disabled
68
+ */
69
+ declare class NoopSpanProcessor implements SpanProcessor {
70
+ forceFlush(): Promise<void>;
71
+ onStart(_span: Span): void;
72
+ onEnd(_span: ReadableSpan): void;
73
+ shutdown(): Promise<void>;
74
+ }
75
+ //# sourceMappingURL=core.d.ts.map
76
+ //#endregion
77
+ export { NoopSpanProcessor, createSpanProcessor, enableTelemetryDebug, flushTelemetry, getRecommendedStrategy, isTelemetryInitialized, setGlobalLogProcessor, setGlobalSpanProcessor, shutdownTelemetry, withTelemetryFlush };
78
+ //# sourceMappingURL=core-B4Jpia5H.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"core-B4Jpia5H.d.cts","names":[],"sources":["../src/instrumentation/core.ts"],"sourcesContent":[],"mappings":";;;;;;;AAgCA;AAAmC,iBAAnB,mBAAA,CAAmB,QAAA,EACxB,YADwB,EAAA,OAAA,EAEzB,oBAFyB,CAAA,EAGhC,aAHgC;;;;AAGnB,iBAkBA,sBAAA,CAlBA,WAAA,EAAA,QAAA,GAAA,QAAA,GAAA,MAAA,GAAA,QAAA,CAAA,EAoBb,qBApBa;AAkBhB;AAiBA;AAQA;AAOgB,iBAfA,sBAAA,CAesB,SAAA,EAfY,aAeZ,CAAA,EAAA,IAAA;AAsBtC;AA+CA;AA0BA;AAgBgB,iBAtHA,qBAAA,CAsHkB,SAAA,EAAA,OAAA,CAAA,EAAA,IAAA;;;;AACa,iBAhH/B,sBAAA,CAAA,CAgH+B,EAAA,OAAA;;;;AACA;AAa/C;;;;;;;AAAuD;;;;;;;iBAxGjC,cAAA,sBAAmC;;;;iBA+CnC,iBAAA,CAAA,GAAqB;;;;iBA0B3B,oBAAA,CAAA;;;;;;;;;;;;;iBAgBA,qDACE,6BAA6B,QAAQ,mBAC5C,6BAA6B,QAAQ;;;;cAanC,iBAAA,YAA6B;gBAC3B;iBAIC;eAIF;cAID"}
@@ -0,0 +1,199 @@
1
+ const require_chunk = require('./chunk-CUT6urMc.cjs');
2
+ const __opentelemetry_api = require_chunk.__toESM(require("@opentelemetry/api"));
3
+ const __opentelemetry_sdk_trace_base = require_chunk.__toESM(require("@opentelemetry/sdk-trace-base"));
4
+
5
+ //#region src/instrumentation/core.ts
6
+ const state = {
7
+ spanProcessor: null,
8
+ logProcessor: null,
9
+ initialized: false
10
+ };
11
+ /**
12
+ * Create a span processor based on the strategy
13
+ */
14
+ function createSpanProcessor(exporter, options) {
15
+ const { strategy,...config } = options;
16
+ if (strategy === "simple") return new __opentelemetry_sdk_trace_base.SimpleSpanProcessor(exporter);
17
+ return new __opentelemetry_sdk_trace_base.BatchSpanProcessor(exporter, {
18
+ maxQueueSize: config.maxQueueSize ?? 2048,
19
+ scheduledDelayMillis: config.scheduledDelayMillis ?? 5e3,
20
+ exportTimeoutMillis: config.exportTimeoutMillis ?? 3e4,
21
+ maxExportBatchSize: config.maxExportBatchSize ?? 512
22
+ });
23
+ }
24
+ /**
25
+ * Get the recommended span processor strategy for an environment
26
+ */
27
+ function getRecommendedStrategy(environment) {
28
+ switch (environment) {
29
+ case "lambda":
30
+ case "edge": return "simple";
31
+ default: return "batch";
32
+ }
33
+ }
34
+ /**
35
+ * Set the global span processor for flush operations
36
+ */
37
+ function setGlobalSpanProcessor(processor) {
38
+ state.spanProcessor = processor;
39
+ state.initialized = true;
40
+ }
41
+ /**
42
+ * Set the global log processor for flush operations
43
+ */
44
+ function setGlobalLogProcessor(processor) {
45
+ state.logProcessor = processor;
46
+ }
47
+ /**
48
+ * Check if telemetry is initialized
49
+ */
50
+ function isTelemetryInitialized() {
51
+ return state.initialized;
52
+ }
53
+ /**
54
+ * Flush all pending telemetry data.
55
+ * This is critical for serverless environments where the process may freeze.
56
+ *
57
+ * @example
58
+ * ```typescript
59
+ * // In a Lambda handler
60
+ * export const handler = async (event, context) => {
61
+ * try {
62
+ * const result = await processRequest(event);
63
+ * return result;
64
+ * } finally {
65
+ * // Flush before Lambda freezes
66
+ * await flushTelemetry();
67
+ * }
68
+ * };
69
+ * ```
70
+ */
71
+ async function flushTelemetry(timeoutMs = 3e4) {
72
+ const promises = [];
73
+ if (state.spanProcessor) promises.push(Promise.race([state.spanProcessor.forceFlush(), new Promise((_, reject) => setTimeout(() => reject(new Error("Span flush timeout")), timeoutMs))]).catch((error) => {
74
+ if (__opentelemetry_api.diag.debug) __opentelemetry_api.diag.debug(`Span flush error: ${error.message}`);
75
+ }));
76
+ if (state.logProcessor && typeof state.logProcessor.forceFlush === "function") promises.push(Promise.race([state.logProcessor.forceFlush(), new Promise((_, reject) => setTimeout(() => reject(new Error("Log flush timeout")), timeoutMs))]).catch((error) => {
77
+ if (__opentelemetry_api.diag.debug) __opentelemetry_api.diag.debug(`Log flush error: ${error.message}`);
78
+ }));
79
+ await Promise.all(promises);
80
+ }
81
+ /**
82
+ * Shutdown all telemetry processors
83
+ */
84
+ async function shutdownTelemetry() {
85
+ const promises = [];
86
+ if (state.spanProcessor) {
87
+ promises.push(state.spanProcessor.shutdown());
88
+ state.spanProcessor = null;
89
+ }
90
+ if (state.logProcessor && typeof state.logProcessor.shutdown === "function") {
91
+ promises.push(state.logProcessor.shutdown());
92
+ state.logProcessor = null;
93
+ }
94
+ state.initialized = false;
95
+ await Promise.all(promises);
96
+ }
97
+ /**
98
+ * Enable debug logging for telemetry
99
+ */
100
+ function enableTelemetryDebug() {
101
+ __opentelemetry_api.diag.setLogger(new __opentelemetry_api.DiagConsoleLogger(), __opentelemetry_api.DiagLogLevel.DEBUG);
102
+ }
103
+ /**
104
+ * Wraps a handler function to ensure telemetry is flushed before returning.
105
+ * Useful for Lambda handlers.
106
+ *
107
+ * @example
108
+ * ```typescript
109
+ * export const handler = withTelemetryFlush(async (event, context) => {
110
+ * // Your Lambda logic here
111
+ * return { statusCode: 200, body: 'OK' };
112
+ * });
113
+ * ```
114
+ */
115
+ function withTelemetryFlush(handler) {
116
+ return async (event, context) => {
117
+ try {
118
+ return await handler(event, context);
119
+ } finally {
120
+ await flushTelemetry();
121
+ }
122
+ };
123
+ }
124
+ /**
125
+ * Noop span processor for testing or when telemetry is disabled
126
+ */
127
+ var NoopSpanProcessor = class {
128
+ forceFlush() {
129
+ return Promise.resolve();
130
+ }
131
+ onStart(_span) {}
132
+ onEnd(_span) {}
133
+ shutdown() {
134
+ return Promise.resolve();
135
+ }
136
+ };
137
+
138
+ //#endregion
139
+ Object.defineProperty(exports, 'NoopSpanProcessor', {
140
+ enumerable: true,
141
+ get: function () {
142
+ return NoopSpanProcessor;
143
+ }
144
+ });
145
+ Object.defineProperty(exports, 'createSpanProcessor', {
146
+ enumerable: true,
147
+ get: function () {
148
+ return createSpanProcessor;
149
+ }
150
+ });
151
+ Object.defineProperty(exports, 'enableTelemetryDebug', {
152
+ enumerable: true,
153
+ get: function () {
154
+ return enableTelemetryDebug;
155
+ }
156
+ });
157
+ Object.defineProperty(exports, 'flushTelemetry', {
158
+ enumerable: true,
159
+ get: function () {
160
+ return flushTelemetry;
161
+ }
162
+ });
163
+ Object.defineProperty(exports, 'getRecommendedStrategy', {
164
+ enumerable: true,
165
+ get: function () {
166
+ return getRecommendedStrategy;
167
+ }
168
+ });
169
+ Object.defineProperty(exports, 'isTelemetryInitialized', {
170
+ enumerable: true,
171
+ get: function () {
172
+ return isTelemetryInitialized;
173
+ }
174
+ });
175
+ Object.defineProperty(exports, 'setGlobalLogProcessor', {
176
+ enumerable: true,
177
+ get: function () {
178
+ return setGlobalLogProcessor;
179
+ }
180
+ });
181
+ Object.defineProperty(exports, 'setGlobalSpanProcessor', {
182
+ enumerable: true,
183
+ get: function () {
184
+ return setGlobalSpanProcessor;
185
+ }
186
+ });
187
+ Object.defineProperty(exports, 'shutdownTelemetry', {
188
+ enumerable: true,
189
+ get: function () {
190
+ return shutdownTelemetry;
191
+ }
192
+ });
193
+ Object.defineProperty(exports, 'withTelemetryFlush', {
194
+ enumerable: true,
195
+ get: function () {
196
+ return withTelemetryFlush;
197
+ }
198
+ });
199
+ //# sourceMappingURL=core-CtVHRJGv.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"core-CtVHRJGv.cjs","names":["state: TelemetryState","exporter: SpanExporter","options: SpanProcessorOptions","SimpleSpanProcessor","BatchSpanProcessor","environment: 'server' | 'lambda' | 'edge' | 'custom'","processor: SpanProcessor","processor: unknown","promises: Promise<void>[]","diag","DiagConsoleLogger","DiagLogLevel","handler: (event: TEvent, context: unknown) => Promise<TResult>","event: TEvent","context: unknown","_span: Span","_span: ReadableSpan"],"sources":["../src/instrumentation/core.ts"],"sourcesContent":["import { DiagConsoleLogger, DiagLogLevel, diag } from '@opentelemetry/api';\nimport {\n\tBatchSpanProcessor,\n\ttype ReadableSpan,\n\tSimpleSpanProcessor,\n\ttype Span,\n\ttype SpanExporter,\n\ttype SpanProcessor,\n} from '@opentelemetry/sdk-trace-base';\nimport type {\n\tSpanProcessorOptions,\n\tSpanProcessorStrategy,\n} from '../adapters/types';\n\n/**\n * Global telemetry state for flush operations\n */\ninterface TelemetryState {\n\tspanProcessor: SpanProcessor | null;\n\tlogProcessor: unknown | null;\n\tinitialized: boolean;\n}\n\nconst state: TelemetryState = {\n\tspanProcessor: null,\n\tlogProcessor: null,\n\tinitialized: false,\n};\n\n/**\n * Create a span processor based on the strategy\n */\nexport function createSpanProcessor(\n\texporter: SpanExporter,\n\toptions: SpanProcessorOptions,\n): SpanProcessor {\n\tconst { strategy, ...config } = options;\n\n\tif (strategy === 'simple') {\n\t\treturn new SimpleSpanProcessor(exporter);\n\t}\n\n\treturn new BatchSpanProcessor(exporter, {\n\t\tmaxQueueSize: config.maxQueueSize ?? 2048,\n\t\tscheduledDelayMillis: config.scheduledDelayMillis ?? 5000,\n\t\texportTimeoutMillis: config.exportTimeoutMillis ?? 30000,\n\t\tmaxExportBatchSize: config.maxExportBatchSize ?? 512,\n\t});\n}\n\n/**\n * Get the recommended span processor strategy for an environment\n */\nexport function getRecommendedStrategy(\n\tenvironment: 'server' | 'lambda' | 'edge' | 'custom',\n): SpanProcessorStrategy {\n\tswitch (environment) {\n\t\tcase 'lambda':\n\t\tcase 'edge':\n\t\t\t// Use simple processor for serverless - immediate export\n\t\t\treturn 'simple';\n\t\tdefault:\n\t\t\t// Use batch processor for long-running servers - efficient batching\n\t\t\treturn 'batch';\n\t}\n}\n\n/**\n * Set the global span processor for flush operations\n */\nexport function setGlobalSpanProcessor(processor: SpanProcessor): void {\n\tstate.spanProcessor = processor;\n\tstate.initialized = true;\n}\n\n/**\n * Set the global log processor for flush operations\n */\nexport function setGlobalLogProcessor(processor: unknown): void {\n\tstate.logProcessor = processor;\n}\n\n/**\n * Check if telemetry is initialized\n */\nexport function isTelemetryInitialized(): boolean {\n\treturn state.initialized;\n}\n\n/**\n * Flush all pending telemetry data.\n * This is critical for serverless environments where the process may freeze.\n *\n * @example\n * ```typescript\n * // In a Lambda handler\n * export const handler = async (event, context) => {\n * try {\n * const result = await processRequest(event);\n * return result;\n * } finally {\n * // Flush before Lambda freezes\n * await flushTelemetry();\n * }\n * };\n * ```\n */\nexport async function flushTelemetry(timeoutMs = 30000): Promise<void> {\n\tconst promises: Promise<void>[] = [];\n\n\t// Flush span processor\n\tif (state.spanProcessor) {\n\t\tpromises.push(\n\t\t\tPromise.race([\n\t\t\t\tstate.spanProcessor.forceFlush(),\n\t\t\t\tnew Promise<void>((_, reject) =>\n\t\t\t\t\tsetTimeout(() => reject(new Error('Span flush timeout')), timeoutMs),\n\t\t\t\t),\n\t\t\t]).catch((error) => {\n\t\t\t\tif (diag.debug) {\n\t\t\t\t\tdiag.debug(`Span flush error: ${error.message}`);\n\t\t\t\t}\n\t\t\t}),\n\t\t);\n\t}\n\n\t// Flush log processor if it has forceFlush method\n\tif (\n\t\tstate.logProcessor &&\n\t\ttypeof (state.logProcessor as { forceFlush?: () => Promise<void> })\n\t\t\t.forceFlush === 'function'\n\t) {\n\t\tpromises.push(\n\t\t\tPromise.race([\n\t\t\t\t(\n\t\t\t\t\tstate.logProcessor as { forceFlush: () => Promise<void> }\n\t\t\t\t).forceFlush(),\n\t\t\t\tnew Promise<void>((_, reject) =>\n\t\t\t\t\tsetTimeout(() => reject(new Error('Log flush timeout')), timeoutMs),\n\t\t\t\t),\n\t\t\t]).catch((error) => {\n\t\t\t\tif (diag.debug) {\n\t\t\t\t\tdiag.debug(`Log flush error: ${error.message}`);\n\t\t\t\t}\n\t\t\t}),\n\t\t);\n\t}\n\n\tawait Promise.all(promises);\n}\n\n/**\n * Shutdown all telemetry processors\n */\nexport async function shutdownTelemetry(): Promise<void> {\n\tconst promises: Promise<void>[] = [];\n\n\tif (state.spanProcessor) {\n\t\tpromises.push(state.spanProcessor.shutdown());\n\t\tstate.spanProcessor = null;\n\t}\n\n\tif (\n\t\tstate.logProcessor &&\n\t\ttypeof (state.logProcessor as { shutdown?: () => Promise<void> })\n\t\t\t.shutdown === 'function'\n\t) {\n\t\tpromises.push(\n\t\t\t(state.logProcessor as { shutdown: () => Promise<void> }).shutdown(),\n\t\t);\n\t\tstate.logProcessor = null;\n\t}\n\n\tstate.initialized = false;\n\tawait Promise.all(promises);\n}\n\n/**\n * Enable debug logging for telemetry\n */\nexport function enableTelemetryDebug(): void {\n\tdiag.setLogger(new DiagConsoleLogger(), DiagLogLevel.DEBUG);\n}\n\n/**\n * Wraps a handler function to ensure telemetry is flushed before returning.\n * Useful for Lambda handlers.\n *\n * @example\n * ```typescript\n * export const handler = withTelemetryFlush(async (event, context) => {\n * // Your Lambda logic here\n * return { statusCode: 200, body: 'OK' };\n * });\n * ```\n */\nexport function withTelemetryFlush<TEvent, TResult>(\n\thandler: (event: TEvent, context: unknown) => Promise<TResult>,\n): (event: TEvent, context: unknown) => Promise<TResult> {\n\treturn async (event: TEvent, context: unknown): Promise<TResult> => {\n\t\ttry {\n\t\t\treturn await handler(event, context);\n\t\t} finally {\n\t\t\tawait flushTelemetry();\n\t\t}\n\t};\n}\n\n/**\n * Noop span processor for testing or when telemetry is disabled\n */\nexport class NoopSpanProcessor implements SpanProcessor {\n\tforceFlush(): Promise<void> {\n\t\treturn Promise.resolve();\n\t}\n\n\tonStart(_span: Span): void {\n\t\t// noop\n\t}\n\n\tonEnd(_span: ReadableSpan): void {\n\t\t// noop\n\t}\n\n\tshutdown(): Promise<void> {\n\t\treturn Promise.resolve();\n\t}\n}\n"],"mappings":";;;;;AAuBA,MAAMA,QAAwB;CAC7B,eAAe;CACf,cAAc;CACd,aAAa;AACb;;;;AAKD,SAAgB,oBACfC,UACAC,SACgB;CAChB,MAAM,EAAE,SAAU,GAAG,QAAQ,GAAG;AAEhC,KAAI,aAAa,SAChB,QAAO,IAAIC,mDAAoB;AAGhC,QAAO,IAAIC,kDAAmB,UAAU;EACvC,cAAc,OAAO,gBAAgB;EACrC,sBAAsB,OAAO,wBAAwB;EACrD,qBAAqB,OAAO,uBAAuB;EACnD,oBAAoB,OAAO,sBAAsB;CACjD;AACD;;;;AAKD,SAAgB,uBACfC,aACwB;AACxB,SAAQ,aAAR;EACC,KAAK;EACL,KAAK,OAEJ,QAAO;EACR,QAEC,QAAO;CACR;AACD;;;;AAKD,SAAgB,uBAAuBC,WAAgC;AACtE,OAAM,gBAAgB;AACtB,OAAM,cAAc;AACpB;;;;AAKD,SAAgB,sBAAsBC,WAA0B;AAC/D,OAAM,eAAe;AACrB;;;;AAKD,SAAgB,yBAAkC;AACjD,QAAO,MAAM;AACb;;;;;;;;;;;;;;;;;;;AAoBD,eAAsB,eAAe,YAAY,KAAsB;CACtE,MAAMC,WAA4B,CAAE;AAGpC,KAAI,MAAM,cACT,UAAS,KACR,QAAQ,KAAK,CACZ,MAAM,cAAc,YAAY,EAChC,IAAI,QAAc,CAAC,GAAG,WACrB,WAAW,MAAM,OAAO,IAAI,MAAM,sBAAsB,EAAE,UAAU,CAErE,EAAC,CAAC,MAAM,CAAC,UAAU;AACnB,MAAIC,yBAAK,MACR,0BAAK,OAAO,oBAAoB,MAAM,QAAQ,EAAE;CAEjD,EAAC,CACF;AAIF,KACC,MAAM,uBACE,MAAM,aACZ,eAAe,WAEjB,UAAS,KACR,QAAQ,KAAK,CACZ,AACC,MAAM,aACL,YAAY,EACd,IAAI,QAAc,CAAC,GAAG,WACrB,WAAW,MAAM,OAAO,IAAI,MAAM,qBAAqB,EAAE,UAAU,CAEpE,EAAC,CAAC,MAAM,CAAC,UAAU;AACnB,MAAIA,yBAAK,MACR,0BAAK,OAAO,mBAAmB,MAAM,QAAQ,EAAE;CAEhD,EAAC,CACF;AAGF,OAAM,QAAQ,IAAI,SAAS;AAC3B;;;;AAKD,eAAsB,oBAAmC;CACxD,MAAMD,WAA4B,CAAE;AAEpC,KAAI,MAAM,eAAe;AACxB,WAAS,KAAK,MAAM,cAAc,UAAU,CAAC;AAC7C,QAAM,gBAAgB;CACtB;AAED,KACC,MAAM,uBACE,MAAM,aACZ,aAAa,YACd;AACD,WAAS,KACR,AAAC,MAAM,aAAmD,UAAU,CACpE;AACD,QAAM,eAAe;CACrB;AAED,OAAM,cAAc;AACpB,OAAM,QAAQ,IAAI,SAAS;AAC3B;;;;AAKD,SAAgB,uBAA6B;AAC5C,0BAAK,UAAU,IAAIE,yCAAqBC,iCAAa,MAAM;AAC3D;;;;;;;;;;;;;AAcD,SAAgB,mBACfC,SACwD;AACxD,QAAO,OAAOC,OAAeC,YAAuC;AACnE,MAAI;AACH,UAAO,MAAM,QAAQ,OAAO,QAAQ;EACpC,UAAS;AACT,SAAM,gBAAgB;EACtB;CACD;AACD;;;;AAKD,IAAa,oBAAb,MAAwD;CACvD,aAA4B;AAC3B,SAAO,QAAQ,SAAS;CACxB;CAED,QAAQC,OAAmB,CAE1B;CAED,MAAMC,OAA2B,CAEhC;CAED,WAA0B;AACzB,SAAO,QAAQ,SAAS;CACxB;AACD"}
@@ -0,0 +1,139 @@
1
+ import { DiagConsoleLogger, DiagLogLevel, diag } from "@opentelemetry/api";
2
+ import { BatchSpanProcessor, SimpleSpanProcessor } from "@opentelemetry/sdk-trace-base";
3
+
4
+ //#region src/instrumentation/core.ts
5
+ const state = {
6
+ spanProcessor: null,
7
+ logProcessor: null,
8
+ initialized: false
9
+ };
10
+ /**
11
+ * Create a span processor based on the strategy
12
+ */
13
+ function createSpanProcessor(exporter, options) {
14
+ const { strategy,...config } = options;
15
+ if (strategy === "simple") return new SimpleSpanProcessor(exporter);
16
+ return new BatchSpanProcessor(exporter, {
17
+ maxQueueSize: config.maxQueueSize ?? 2048,
18
+ scheduledDelayMillis: config.scheduledDelayMillis ?? 5e3,
19
+ exportTimeoutMillis: config.exportTimeoutMillis ?? 3e4,
20
+ maxExportBatchSize: config.maxExportBatchSize ?? 512
21
+ });
22
+ }
23
+ /**
24
+ * Get the recommended span processor strategy for an environment
25
+ */
26
+ function getRecommendedStrategy(environment) {
27
+ switch (environment) {
28
+ case "lambda":
29
+ case "edge": return "simple";
30
+ default: return "batch";
31
+ }
32
+ }
33
+ /**
34
+ * Set the global span processor for flush operations
35
+ */
36
+ function setGlobalSpanProcessor(processor) {
37
+ state.spanProcessor = processor;
38
+ state.initialized = true;
39
+ }
40
+ /**
41
+ * Set the global log processor for flush operations
42
+ */
43
+ function setGlobalLogProcessor(processor) {
44
+ state.logProcessor = processor;
45
+ }
46
+ /**
47
+ * Check if telemetry is initialized
48
+ */
49
+ function isTelemetryInitialized() {
50
+ return state.initialized;
51
+ }
52
+ /**
53
+ * Flush all pending telemetry data.
54
+ * This is critical for serverless environments where the process may freeze.
55
+ *
56
+ * @example
57
+ * ```typescript
58
+ * // In a Lambda handler
59
+ * export const handler = async (event, context) => {
60
+ * try {
61
+ * const result = await processRequest(event);
62
+ * return result;
63
+ * } finally {
64
+ * // Flush before Lambda freezes
65
+ * await flushTelemetry();
66
+ * }
67
+ * };
68
+ * ```
69
+ */
70
+ async function flushTelemetry(timeoutMs = 3e4) {
71
+ const promises = [];
72
+ if (state.spanProcessor) promises.push(Promise.race([state.spanProcessor.forceFlush(), new Promise((_, reject) => setTimeout(() => reject(new Error("Span flush timeout")), timeoutMs))]).catch((error) => {
73
+ if (diag.debug) diag.debug(`Span flush error: ${error.message}`);
74
+ }));
75
+ if (state.logProcessor && typeof state.logProcessor.forceFlush === "function") promises.push(Promise.race([state.logProcessor.forceFlush(), new Promise((_, reject) => setTimeout(() => reject(new Error("Log flush timeout")), timeoutMs))]).catch((error) => {
76
+ if (diag.debug) diag.debug(`Log flush error: ${error.message}`);
77
+ }));
78
+ await Promise.all(promises);
79
+ }
80
+ /**
81
+ * Shutdown all telemetry processors
82
+ */
83
+ async function shutdownTelemetry() {
84
+ const promises = [];
85
+ if (state.spanProcessor) {
86
+ promises.push(state.spanProcessor.shutdown());
87
+ state.spanProcessor = null;
88
+ }
89
+ if (state.logProcessor && typeof state.logProcessor.shutdown === "function") {
90
+ promises.push(state.logProcessor.shutdown());
91
+ state.logProcessor = null;
92
+ }
93
+ state.initialized = false;
94
+ await Promise.all(promises);
95
+ }
96
+ /**
97
+ * Enable debug logging for telemetry
98
+ */
99
+ function enableTelemetryDebug() {
100
+ diag.setLogger(new DiagConsoleLogger(), DiagLogLevel.DEBUG);
101
+ }
102
+ /**
103
+ * Wraps a handler function to ensure telemetry is flushed before returning.
104
+ * Useful for Lambda handlers.
105
+ *
106
+ * @example
107
+ * ```typescript
108
+ * export const handler = withTelemetryFlush(async (event, context) => {
109
+ * // Your Lambda logic here
110
+ * return { statusCode: 200, body: 'OK' };
111
+ * });
112
+ * ```
113
+ */
114
+ function withTelemetryFlush(handler) {
115
+ return async (event, context$1) => {
116
+ try {
117
+ return await handler(event, context$1);
118
+ } finally {
119
+ await flushTelemetry();
120
+ }
121
+ };
122
+ }
123
+ /**
124
+ * Noop span processor for testing or when telemetry is disabled
125
+ */
126
+ var NoopSpanProcessor = class {
127
+ forceFlush() {
128
+ return Promise.resolve();
129
+ }
130
+ onStart(_span) {}
131
+ onEnd(_span) {}
132
+ shutdown() {
133
+ return Promise.resolve();
134
+ }
135
+ };
136
+
137
+ //#endregion
138
+ export { NoopSpanProcessor, createSpanProcessor, enableTelemetryDebug, flushTelemetry, getRecommendedStrategy, isTelemetryInitialized, setGlobalLogProcessor, setGlobalSpanProcessor, shutdownTelemetry, withTelemetryFlush };
139
+ //# sourceMappingURL=core-D6hJ6exL.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"core-D6hJ6exL.mjs","names":["state: TelemetryState","exporter: SpanExporter","options: SpanProcessorOptions","environment: 'server' | 'lambda' | 'edge' | 'custom'","processor: SpanProcessor","processor: unknown","promises: Promise<void>[]","handler: (event: TEvent, context: unknown) => Promise<TResult>","event: TEvent","context: unknown","context","_span: Span","_span: ReadableSpan"],"sources":["../src/instrumentation/core.ts"],"sourcesContent":["import { DiagConsoleLogger, DiagLogLevel, diag } from '@opentelemetry/api';\nimport {\n\tBatchSpanProcessor,\n\ttype ReadableSpan,\n\tSimpleSpanProcessor,\n\ttype Span,\n\ttype SpanExporter,\n\ttype SpanProcessor,\n} from '@opentelemetry/sdk-trace-base';\nimport type {\n\tSpanProcessorOptions,\n\tSpanProcessorStrategy,\n} from '../adapters/types';\n\n/**\n * Global telemetry state for flush operations\n */\ninterface TelemetryState {\n\tspanProcessor: SpanProcessor | null;\n\tlogProcessor: unknown | null;\n\tinitialized: boolean;\n}\n\nconst state: TelemetryState = {\n\tspanProcessor: null,\n\tlogProcessor: null,\n\tinitialized: false,\n};\n\n/**\n * Create a span processor based on the strategy\n */\nexport function createSpanProcessor(\n\texporter: SpanExporter,\n\toptions: SpanProcessorOptions,\n): SpanProcessor {\n\tconst { strategy, ...config } = options;\n\n\tif (strategy === 'simple') {\n\t\treturn new SimpleSpanProcessor(exporter);\n\t}\n\n\treturn new BatchSpanProcessor(exporter, {\n\t\tmaxQueueSize: config.maxQueueSize ?? 2048,\n\t\tscheduledDelayMillis: config.scheduledDelayMillis ?? 5000,\n\t\texportTimeoutMillis: config.exportTimeoutMillis ?? 30000,\n\t\tmaxExportBatchSize: config.maxExportBatchSize ?? 512,\n\t});\n}\n\n/**\n * Get the recommended span processor strategy for an environment\n */\nexport function getRecommendedStrategy(\n\tenvironment: 'server' | 'lambda' | 'edge' | 'custom',\n): SpanProcessorStrategy {\n\tswitch (environment) {\n\t\tcase 'lambda':\n\t\tcase 'edge':\n\t\t\t// Use simple processor for serverless - immediate export\n\t\t\treturn 'simple';\n\t\tdefault:\n\t\t\t// Use batch processor for long-running servers - efficient batching\n\t\t\treturn 'batch';\n\t}\n}\n\n/**\n * Set the global span processor for flush operations\n */\nexport function setGlobalSpanProcessor(processor: SpanProcessor): void {\n\tstate.spanProcessor = processor;\n\tstate.initialized = true;\n}\n\n/**\n * Set the global log processor for flush operations\n */\nexport function setGlobalLogProcessor(processor: unknown): void {\n\tstate.logProcessor = processor;\n}\n\n/**\n * Check if telemetry is initialized\n */\nexport function isTelemetryInitialized(): boolean {\n\treturn state.initialized;\n}\n\n/**\n * Flush all pending telemetry data.\n * This is critical for serverless environments where the process may freeze.\n *\n * @example\n * ```typescript\n * // In a Lambda handler\n * export const handler = async (event, context) => {\n * try {\n * const result = await processRequest(event);\n * return result;\n * } finally {\n * // Flush before Lambda freezes\n * await flushTelemetry();\n * }\n * };\n * ```\n */\nexport async function flushTelemetry(timeoutMs = 30000): Promise<void> {\n\tconst promises: Promise<void>[] = [];\n\n\t// Flush span processor\n\tif (state.spanProcessor) {\n\t\tpromises.push(\n\t\t\tPromise.race([\n\t\t\t\tstate.spanProcessor.forceFlush(),\n\t\t\t\tnew Promise<void>((_, reject) =>\n\t\t\t\t\tsetTimeout(() => reject(new Error('Span flush timeout')), timeoutMs),\n\t\t\t\t),\n\t\t\t]).catch((error) => {\n\t\t\t\tif (diag.debug) {\n\t\t\t\t\tdiag.debug(`Span flush error: ${error.message}`);\n\t\t\t\t}\n\t\t\t}),\n\t\t);\n\t}\n\n\t// Flush log processor if it has forceFlush method\n\tif (\n\t\tstate.logProcessor &&\n\t\ttypeof (state.logProcessor as { forceFlush?: () => Promise<void> })\n\t\t\t.forceFlush === 'function'\n\t) {\n\t\tpromises.push(\n\t\t\tPromise.race([\n\t\t\t\t(\n\t\t\t\t\tstate.logProcessor as { forceFlush: () => Promise<void> }\n\t\t\t\t).forceFlush(),\n\t\t\t\tnew Promise<void>((_, reject) =>\n\t\t\t\t\tsetTimeout(() => reject(new Error('Log flush timeout')), timeoutMs),\n\t\t\t\t),\n\t\t\t]).catch((error) => {\n\t\t\t\tif (diag.debug) {\n\t\t\t\t\tdiag.debug(`Log flush error: ${error.message}`);\n\t\t\t\t}\n\t\t\t}),\n\t\t);\n\t}\n\n\tawait Promise.all(promises);\n}\n\n/**\n * Shutdown all telemetry processors\n */\nexport async function shutdownTelemetry(): Promise<void> {\n\tconst promises: Promise<void>[] = [];\n\n\tif (state.spanProcessor) {\n\t\tpromises.push(state.spanProcessor.shutdown());\n\t\tstate.spanProcessor = null;\n\t}\n\n\tif (\n\t\tstate.logProcessor &&\n\t\ttypeof (state.logProcessor as { shutdown?: () => Promise<void> })\n\t\t\t.shutdown === 'function'\n\t) {\n\t\tpromises.push(\n\t\t\t(state.logProcessor as { shutdown: () => Promise<void> }).shutdown(),\n\t\t);\n\t\tstate.logProcessor = null;\n\t}\n\n\tstate.initialized = false;\n\tawait Promise.all(promises);\n}\n\n/**\n * Enable debug logging for telemetry\n */\nexport function enableTelemetryDebug(): void {\n\tdiag.setLogger(new DiagConsoleLogger(), DiagLogLevel.DEBUG);\n}\n\n/**\n * Wraps a handler function to ensure telemetry is flushed before returning.\n * Useful for Lambda handlers.\n *\n * @example\n * ```typescript\n * export const handler = withTelemetryFlush(async (event, context) => {\n * // Your Lambda logic here\n * return { statusCode: 200, body: 'OK' };\n * });\n * ```\n */\nexport function withTelemetryFlush<TEvent, TResult>(\n\thandler: (event: TEvent, context: unknown) => Promise<TResult>,\n): (event: TEvent, context: unknown) => Promise<TResult> {\n\treturn async (event: TEvent, context: unknown): Promise<TResult> => {\n\t\ttry {\n\t\t\treturn await handler(event, context);\n\t\t} finally {\n\t\t\tawait flushTelemetry();\n\t\t}\n\t};\n}\n\n/**\n * Noop span processor for testing or when telemetry is disabled\n */\nexport class NoopSpanProcessor implements SpanProcessor {\n\tforceFlush(): Promise<void> {\n\t\treturn Promise.resolve();\n\t}\n\n\tonStart(_span: Span): void {\n\t\t// noop\n\t}\n\n\tonEnd(_span: ReadableSpan): void {\n\t\t// noop\n\t}\n\n\tshutdown(): Promise<void> {\n\t\treturn Promise.resolve();\n\t}\n}\n"],"mappings":";;;;AAuBA,MAAMA,QAAwB;CAC7B,eAAe;CACf,cAAc;CACd,aAAa;AACb;;;;AAKD,SAAgB,oBACfC,UACAC,SACgB;CAChB,MAAM,EAAE,SAAU,GAAG,QAAQ,GAAG;AAEhC,KAAI,aAAa,SAChB,QAAO,IAAI,oBAAoB;AAGhC,QAAO,IAAI,mBAAmB,UAAU;EACvC,cAAc,OAAO,gBAAgB;EACrC,sBAAsB,OAAO,wBAAwB;EACrD,qBAAqB,OAAO,uBAAuB;EACnD,oBAAoB,OAAO,sBAAsB;CACjD;AACD;;;;AAKD,SAAgB,uBACfC,aACwB;AACxB,SAAQ,aAAR;EACC,KAAK;EACL,KAAK,OAEJ,QAAO;EACR,QAEC,QAAO;CACR;AACD;;;;AAKD,SAAgB,uBAAuBC,WAAgC;AACtE,OAAM,gBAAgB;AACtB,OAAM,cAAc;AACpB;;;;AAKD,SAAgB,sBAAsBC,WAA0B;AAC/D,OAAM,eAAe;AACrB;;;;AAKD,SAAgB,yBAAkC;AACjD,QAAO,MAAM;AACb;;;;;;;;;;;;;;;;;;;AAoBD,eAAsB,eAAe,YAAY,KAAsB;CACtE,MAAMC,WAA4B,CAAE;AAGpC,KAAI,MAAM,cACT,UAAS,KACR,QAAQ,KAAK,CACZ,MAAM,cAAc,YAAY,EAChC,IAAI,QAAc,CAAC,GAAG,WACrB,WAAW,MAAM,OAAO,IAAI,MAAM,sBAAsB,EAAE,UAAU,CAErE,EAAC,CAAC,MAAM,CAAC,UAAU;AACnB,MAAI,KAAK,MACR,MAAK,OAAO,oBAAoB,MAAM,QAAQ,EAAE;CAEjD,EAAC,CACF;AAIF,KACC,MAAM,uBACE,MAAM,aACZ,eAAe,WAEjB,UAAS,KACR,QAAQ,KAAK,CACZ,AACC,MAAM,aACL,YAAY,EACd,IAAI,QAAc,CAAC,GAAG,WACrB,WAAW,MAAM,OAAO,IAAI,MAAM,qBAAqB,EAAE,UAAU,CAEpE,EAAC,CAAC,MAAM,CAAC,UAAU;AACnB,MAAI,KAAK,MACR,MAAK,OAAO,mBAAmB,MAAM,QAAQ,EAAE;CAEhD,EAAC,CACF;AAGF,OAAM,QAAQ,IAAI,SAAS;AAC3B;;;;AAKD,eAAsB,oBAAmC;CACxD,MAAMA,WAA4B,CAAE;AAEpC,KAAI,MAAM,eAAe;AACxB,WAAS,KAAK,MAAM,cAAc,UAAU,CAAC;AAC7C,QAAM,gBAAgB;CACtB;AAED,KACC,MAAM,uBACE,MAAM,aACZ,aAAa,YACd;AACD,WAAS,KACR,AAAC,MAAM,aAAmD,UAAU,CACpE;AACD,QAAM,eAAe;CACrB;AAED,OAAM,cAAc;AACpB,OAAM,QAAQ,IAAI,SAAS;AAC3B;;;;AAKD,SAAgB,uBAA6B;AAC5C,MAAK,UAAU,IAAI,qBAAqB,aAAa,MAAM;AAC3D;;;;;;;;;;;;;AAcD,SAAgB,mBACfC,SACwD;AACxD,QAAO,OAAOC,OAAeC,cAAuC;AACnE,MAAI;AACH,UAAO,MAAM,QAAQ,OAAOC,UAAQ;EACpC,UAAS;AACT,SAAM,gBAAgB;EACtB;CACD;AACD;;;;AAKD,IAAa,oBAAb,MAAwD;CACvD,aAA4B;AAC3B,SAAO,QAAQ,SAAS;CACxB;CAED,QAAQC,OAAmB,CAE1B;CAED,MAAMC,OAA2B,CAEhC;CAED,WAA0B;AACzB,SAAO,QAAQ,SAAS;CACxB;AACD"}
package/dist/core.cjs CHANGED
@@ -1,22 +1,22 @@
1
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_instrumentation_core = require("./instrumentation/core.cjs");
3
- const require_instrumentation_tracing = require("./instrumentation/tracing.cjs");
4
- exports.NoopSpanProcessor = require_instrumentation_core.NoopSpanProcessor;
5
- exports.addSpanEvent = require_instrumentation_tracing.addSpanEvent;
6
- exports.createSpan = require_instrumentation_tracing.createSpan;
7
- exports.createSpanProcessor = require_instrumentation_core.createSpanProcessor;
8
- exports.enableTelemetryDebug = require_instrumentation_core.enableTelemetryDebug;
9
- exports.flushTelemetry = require_instrumentation_core.flushTelemetry;
10
- exports.getActiveSpan = require_instrumentation_tracing.getActiveSpan;
11
- exports.getRecommendedStrategy = require_instrumentation_core.getRecommendedStrategy;
12
- exports.getSpanId = require_instrumentation_tracing.getSpanId;
13
- exports.getTraceId = require_instrumentation_tracing.getTraceId;
14
- exports.isTelemetryInitialized = require_instrumentation_core.isTelemetryInitialized;
15
- exports.recordException = require_instrumentation_tracing.recordException;
16
- exports.setGlobalLogProcessor = require_instrumentation_core.setGlobalLogProcessor;
17
- exports.setGlobalSpanProcessor = require_instrumentation_core.setGlobalSpanProcessor;
18
- exports.setSpanAttributes = require_instrumentation_tracing.setSpanAttributes;
19
- exports.shutdownTelemetry = require_instrumentation_core.shutdownTelemetry;
20
- exports.withSpan = require_instrumentation_tracing.withSpan;
21
- exports.withSpanSync = require_instrumentation_tracing.withSpanSync;
22
- exports.withTelemetryFlush = require_instrumentation_core.withTelemetryFlush;
1
+ const require_core = require('./core-CtVHRJGv.cjs');
2
+ const require_tracing = require('./tracing-Bt1zWRlb.cjs');
3
+
4
+ exports.NoopSpanProcessor = require_core.NoopSpanProcessor;
5
+ exports.addSpanEvent = require_tracing.addSpanEvent;
6
+ exports.createSpan = require_tracing.createSpan;
7
+ exports.createSpanProcessor = require_core.createSpanProcessor;
8
+ exports.enableTelemetryDebug = require_core.enableTelemetryDebug;
9
+ exports.flushTelemetry = require_core.flushTelemetry;
10
+ exports.getActiveSpan = require_tracing.getActiveSpan;
11
+ exports.getRecommendedStrategy = require_core.getRecommendedStrategy;
12
+ exports.getSpanId = require_tracing.getSpanId;
13
+ exports.getTraceId = require_tracing.getTraceId;
14
+ exports.isTelemetryInitialized = require_core.isTelemetryInitialized;
15
+ exports.recordException = require_tracing.recordException;
16
+ exports.setGlobalLogProcessor = require_core.setGlobalLogProcessor;
17
+ exports.setGlobalSpanProcessor = require_core.setGlobalSpanProcessor;
18
+ exports.setSpanAttributes = require_tracing.setSpanAttributes;
19
+ exports.shutdownTelemetry = require_core.shutdownTelemetry;
20
+ exports.withSpan = require_tracing.withSpan;
21
+ exports.withSpanSync = require_tracing.withSpanSync;
22
+ exports.withTelemetryFlush = require_core.withTelemetryFlush;
package/dist/core.d.cts CHANGED
@@ -1,4 +1,4 @@
1
- import { AdapterConfig, AdapterErrorContext, AdapterLifecycle, AdapterRequestContext, AdapterResponseContext, HonoAdapterConfig, HonoContextWithTelescope, LambdaAdapterConfig, SpanProcessorOptions, SpanProcessorStrategy, TelescopeAdapter, TelescopeEnvironment, TelescopeHonoContext, TelescopeHonoVariables } from "./adapters/types.cjs";
2
- import { NoopSpanProcessor, createSpanProcessor, enableTelemetryDebug, flushTelemetry, getRecommendedStrategy, isTelemetryInitialized, setGlobalLogProcessor, setGlobalSpanProcessor, shutdownTelemetry, withTelemetryFlush } from "./instrumentation/core.cjs";
3
- import { addSpanEvent, createSpan, getActiveSpan, getSpanId, getTraceId, recordException, setSpanAttributes, withSpan, withSpanSync } from "./instrumentation/tracing.cjs";
4
- export { type AdapterConfig, type AdapterErrorContext, type AdapterLifecycle, type AdapterRequestContext, type AdapterResponseContext, type HonoAdapterConfig, type HonoContextWithTelescope, type LambdaAdapterConfig, NoopSpanProcessor, type SpanProcessorOptions, type SpanProcessorStrategy, type TelescopeAdapter, type TelescopeEnvironment, type TelescopeHonoContext, type TelescopeHonoVariables, addSpanEvent, createSpan, createSpanProcessor, enableTelemetryDebug, flushTelemetry, getActiveSpan, getRecommendedStrategy, getSpanId, getTraceId, isTelemetryInitialized, recordException, setGlobalLogProcessor, setGlobalSpanProcessor, setSpanAttributes, shutdownTelemetry, withSpan, withSpanSync, withTelemetryFlush };
1
+ import { AdapterConfig, AdapterErrorContext, AdapterLifecycle, AdapterRequestContext, AdapterResponseContext, HonoAdapterConfig, HonoContextWithTelescope, LambdaAdapterConfig, SpanProcessorOptions, SpanProcessorStrategy, TelescopeAdapter, TelescopeEnvironment, TelescopeHonoContext, TelescopeHonoVariables } from "./types-BRzW1NM8.cjs";
2
+ import { NoopSpanProcessor, createSpanProcessor, enableTelemetryDebug, flushTelemetry, getRecommendedStrategy, isTelemetryInitialized, setGlobalLogProcessor, setGlobalSpanProcessor, shutdownTelemetry, withTelemetryFlush } from "./core-B4Jpia5H.cjs";
3
+ import { addSpanEvent, createSpan, getActiveSpan, getSpanId, getTraceId, recordException, setSpanAttributes, withSpan, withSpanSync } from "./tracing-BX8uY2nR.cjs";
4
+ export { AdapterConfig, AdapterErrorContext, AdapterLifecycle, AdapterRequestContext, AdapterResponseContext, HonoAdapterConfig, HonoContextWithTelescope, LambdaAdapterConfig, NoopSpanProcessor, SpanProcessorOptions, SpanProcessorStrategy, TelescopeAdapter, TelescopeEnvironment, TelescopeHonoContext, TelescopeHonoVariables, addSpanEvent, createSpan, createSpanProcessor, enableTelemetryDebug, flushTelemetry, getActiveSpan, getRecommendedStrategy, getSpanId, getTraceId, isTelemetryInitialized, recordException, setGlobalLogProcessor, setGlobalSpanProcessor, setSpanAttributes, shutdownTelemetry, withSpan, withSpanSync, withTelemetryFlush };
package/dist/core.d.mts CHANGED
@@ -1,4 +1,4 @@
1
- import { AdapterConfig, AdapterErrorContext, AdapterLifecycle, AdapterRequestContext, AdapterResponseContext, HonoAdapterConfig, HonoContextWithTelescope, LambdaAdapterConfig, SpanProcessorOptions, SpanProcessorStrategy, TelescopeAdapter, TelescopeEnvironment, TelescopeHonoContext, TelescopeHonoVariables } from "./adapters/types.mjs";
2
- import { NoopSpanProcessor, createSpanProcessor, enableTelemetryDebug, flushTelemetry, getRecommendedStrategy, isTelemetryInitialized, setGlobalLogProcessor, setGlobalSpanProcessor, shutdownTelemetry, withTelemetryFlush } from "./instrumentation/core.mjs";
3
- import { addSpanEvent, createSpan, getActiveSpan, getSpanId, getTraceId, recordException, setSpanAttributes, withSpan, withSpanSync } from "./instrumentation/tracing.mjs";
4
- export { type AdapterConfig, type AdapterErrorContext, type AdapterLifecycle, type AdapterRequestContext, type AdapterResponseContext, type HonoAdapterConfig, type HonoContextWithTelescope, type LambdaAdapterConfig, NoopSpanProcessor, type SpanProcessorOptions, type SpanProcessorStrategy, type TelescopeAdapter, type TelescopeEnvironment, type TelescopeHonoContext, type TelescopeHonoVariables, addSpanEvent, createSpan, createSpanProcessor, enableTelemetryDebug, flushTelemetry, getActiveSpan, getRecommendedStrategy, getSpanId, getTraceId, isTelemetryInitialized, recordException, setGlobalLogProcessor, setGlobalSpanProcessor, setSpanAttributes, shutdownTelemetry, withSpan, withSpanSync, withTelemetryFlush };
1
+ import { AdapterConfig, AdapterErrorContext, AdapterLifecycle, AdapterRequestContext, AdapterResponseContext, HonoAdapterConfig, HonoContextWithTelescope, LambdaAdapterConfig, SpanProcessorOptions, SpanProcessorStrategy, TelescopeAdapter, TelescopeEnvironment, TelescopeHonoContext, TelescopeHonoVariables } from "./types-BzQ78Efw.mjs";
2
+ import { NoopSpanProcessor, createSpanProcessor, enableTelemetryDebug, flushTelemetry, getRecommendedStrategy, isTelemetryInitialized, setGlobalLogProcessor, setGlobalSpanProcessor, shutdownTelemetry, withTelemetryFlush } from "./core--quSp5Qr.mjs";
3
+ import { addSpanEvent, createSpan, getActiveSpan, getSpanId, getTraceId, recordException, setSpanAttributes, withSpan, withSpanSync } from "./tracing-PnECEbEu.mjs";
4
+ export { AdapterConfig, AdapterErrorContext, AdapterLifecycle, AdapterRequestContext, AdapterResponseContext, HonoAdapterConfig, HonoContextWithTelescope, LambdaAdapterConfig, NoopSpanProcessor, SpanProcessorOptions, SpanProcessorStrategy, TelescopeAdapter, TelescopeEnvironment, TelescopeHonoContext, TelescopeHonoVariables, addSpanEvent, createSpan, createSpanProcessor, enableTelemetryDebug, flushTelemetry, getActiveSpan, getRecommendedStrategy, getSpanId, getTraceId, isTelemetryInitialized, recordException, setGlobalLogProcessor, setGlobalSpanProcessor, setSpanAttributes, shutdownTelemetry, withSpan, withSpanSync, withTelemetryFlush };
package/dist/core.mjs CHANGED
@@ -1,3 +1,4 @@
1
- import { NoopSpanProcessor, createSpanProcessor, enableTelemetryDebug, flushTelemetry, getRecommendedStrategy, isTelemetryInitialized, setGlobalLogProcessor, setGlobalSpanProcessor, shutdownTelemetry, withTelemetryFlush } from "./instrumentation/core.mjs";
2
- import { addSpanEvent, createSpan, getActiveSpan, getSpanId, getTraceId, recordException, setSpanAttributes, withSpan, withSpanSync } from "./instrumentation/tracing.mjs";
3
- export { NoopSpanProcessor, addSpanEvent, createSpan, createSpanProcessor, enableTelemetryDebug, flushTelemetry, getActiveSpan, getRecommendedStrategy, getSpanId, getTraceId, isTelemetryInitialized, recordException, setGlobalLogProcessor, setGlobalSpanProcessor, setSpanAttributes, shutdownTelemetry, withSpan, withSpanSync, withTelemetryFlush };
1
+ import { NoopSpanProcessor, createSpanProcessor, enableTelemetryDebug, flushTelemetry, getRecommendedStrategy, isTelemetryInitialized, setGlobalLogProcessor, setGlobalSpanProcessor, shutdownTelemetry, withTelemetryFlush } from "./core-D6hJ6exL.mjs";
2
+ import { addSpanEvent, createSpan, getActiveSpan, getSpanId, getTraceId, recordException, setSpanAttributes, withSpan, withSpanSync } from "./tracing-Cijm_5NI.mjs";
3
+
4
+ export { NoopSpanProcessor, addSpanEvent, createSpan, createSpanProcessor, enableTelemetryDebug, flushTelemetry, getActiveSpan, getRecommendedStrategy, getSpanId, getTraceId, isTelemetryInitialized, recordException, setGlobalLogProcessor, setGlobalSpanProcessor, setSpanAttributes, shutdownTelemetry, withSpan, withSpanSync, withTelemetryFlush };
@@ -0,0 +1,71 @@
1
+ import { Span } from "@opentelemetry/api";
2
+ import { Context as Context$1, MiddlewareHandler } from "hono";
3
+
4
+ //#region src/instrumentation/hono.d.ts
5
+
6
+ /**
7
+ * Options for the Hono telemetry middleware
8
+ */
9
+ interface HonoTelemetryMiddlewareOptions {
10
+ /**
11
+ * Whether to record request body as span attribute
12
+ * @default false
13
+ */
14
+ recordBody?: boolean;
15
+ /**
16
+ * Whether to record response body as span attribute
17
+ * @default false
18
+ */
19
+ recordResponseBody?: boolean;
20
+ /**
21
+ * Custom function to extract user ID from context
22
+ */
23
+ getUserId?: (c: Context$1) => string | undefined;
24
+ /**
25
+ * Paths to skip tracing (supports wildcards)
26
+ */
27
+ ignorePaths?: string[];
28
+ /**
29
+ * Whether to skip tracing for this request
30
+ */
31
+ shouldSkip?: (c: Context$1) => boolean;
32
+ }
33
+ /**
34
+ * Get the current span from Hono context
35
+ */
36
+ declare function getSpanFromContext(c: Context$1): Span | undefined;
37
+ /**
38
+ * Get the current trace context from Hono context
39
+ */
40
+ declare function getTraceContextFromHono(c: Context$1): any;
41
+ /**
42
+ * Create a telemetry middleware for Hono applications
43
+ *
44
+ * @example
45
+ * ```typescript
46
+ * import { honoTelemetryMiddleware } from '@geekmidas/telescope/instrumentation';
47
+ *
48
+ * const app = new Hono();
49
+ * app.use('*', honoTelemetryMiddleware());
50
+ * ```
51
+ */
52
+ declare function honoTelemetryMiddleware(options?: HonoTelemetryMiddlewareOptions): MiddlewareHandler;
53
+ /**
54
+ * Run a function within the span context from Hono context
55
+ *
56
+ * @example
57
+ * ```typescript
58
+ * app.get('/api/users', async (c) => {
59
+ * return withHonoSpanContext(c, async () => {
60
+ * // Any spans created here will be children of the request span
61
+ * const users = await fetchUsers();
62
+ * return c.json(users);
63
+ * });
64
+ * });
65
+ * ```
66
+ */
67
+ declare function withHonoSpanContext<T>(c: Context$1, fn: () => Promise<T>): Promise<T>;
68
+ //# sourceMappingURL=hono.d.ts.map
69
+ //#endregion
70
+ export { HonoTelemetryMiddlewareOptions, getSpanFromContext, getTraceContextFromHono, honoTelemetryMiddleware, withHonoSpanContext };
71
+ //# sourceMappingURL=hono--uKQ7Jgi.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hono--uKQ7Jgi.d.mts","names":[],"sources":["../src/instrumentation/hono.ts"],"sourcesContent":[],"mappings":";;;;;AAuDA;;;AAAgD,UApC/B,8BAAA,CAoC+B;EAAI;AAOpD;AAeA;;EAAuC,UAC7B,CAAA,EAAA,OAAA;EAAmC;AACzB;AAqLpB;;EAAyC,kBACrC,CAAA,EAAA,OAAA;EAAO;;;EAEC,SAAT,CAAA,EAAA,CAAA,CAAA,EApOc,SAoOd,EAAA,GAAA,MAAA,GAAA,SAAA;EAAO;;;;;;;mBA1NQ;;;;;iBAUF,kBAAA,IAAsB,YAAU;;;;iBAOhC,uBAAA,IAA2B;;;;;;;;;;;;iBAe3B,uBAAA,WACN,iCACP;;;;;;;;;;;;;;;iBAqLmB,0BAClB,qBACO,QAAQ,KAChB,QAAQ"}