@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,123 @@
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
@@ -0,0 +1 @@
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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"}
@@ -0,0 +1,129 @@
1
+
2
+ //#region src/storage/memory.ts
3
+ /**
4
+ * In-memory storage for Telescope data.
5
+ * Ideal for development and testing.
6
+ * Data is lost when the process restarts.
7
+ */
8
+ var InMemoryStorage = class {
9
+ requests = [];
10
+ exceptions = [];
11
+ logs = [];
12
+ maxEntries;
13
+ constructor(options) {
14
+ this.maxEntries = options?.maxEntries ?? 1e3;
15
+ }
16
+ async saveRequest(entry) {
17
+ this.requests.unshift(entry);
18
+ this.enforceLimit("requests");
19
+ }
20
+ async saveRequests(entries) {
21
+ this.requests.unshift(...entries);
22
+ this.enforceLimit("requests");
23
+ }
24
+ async getRequests(options) {
25
+ let result = this.requests;
26
+ if (options?.method) result = result.filter((r) => r.method === options.method);
27
+ if (options?.status) {
28
+ const statusFilter = options.status;
29
+ result = result.filter((r) => {
30
+ if (statusFilter.endsWith("xx")) {
31
+ const firstChar = statusFilter[0];
32
+ if (!firstChar) return false;
33
+ const category = parseInt(firstChar, 10);
34
+ return Math.floor(r.status / 100) === category;
35
+ }
36
+ return r.status === parseInt(statusFilter, 10);
37
+ });
38
+ }
39
+ return this.filterEntries(result, options);
40
+ }
41
+ async getRequest(id) {
42
+ return this.requests.find((r) => r.id === id) ?? null;
43
+ }
44
+ async saveException(entry) {
45
+ this.exceptions.unshift(entry);
46
+ this.enforceLimit("exceptions");
47
+ }
48
+ async saveExceptions(entries) {
49
+ this.exceptions.unshift(...entries);
50
+ this.enforceLimit("exceptions");
51
+ }
52
+ async getExceptions(options) {
53
+ return this.filterEntries(this.exceptions, options);
54
+ }
55
+ async getException(id) {
56
+ return this.exceptions.find((e) => e.id === id) ?? null;
57
+ }
58
+ async saveLog(entry) {
59
+ this.logs.unshift(entry);
60
+ this.enforceLimit("logs");
61
+ }
62
+ async saveLogs(entries) {
63
+ this.logs.unshift(...entries);
64
+ this.enforceLimit("logs");
65
+ }
66
+ async getLogs(options) {
67
+ let result = this.logs;
68
+ if (options?.level) result = result.filter((l) => l.level === options.level);
69
+ return this.filterEntries(result, options);
70
+ }
71
+ async prune(olderThan) {
72
+ const beforeCount = this.requests.length + this.exceptions.length + this.logs.length;
73
+ this.requests = this.requests.filter((r) => r.timestamp >= olderThan);
74
+ this.exceptions = this.exceptions.filter((e) => e.timestamp >= olderThan);
75
+ this.logs = this.logs.filter((l) => l.timestamp >= olderThan);
76
+ const afterCount = this.requests.length + this.exceptions.length + this.logs.length;
77
+ return beforeCount - afterCount;
78
+ }
79
+ async getStats() {
80
+ const allTimestamps = [
81
+ ...this.requests.map((r) => r.timestamp),
82
+ ...this.exceptions.map((e) => e.timestamp),
83
+ ...this.logs.map((l) => l.timestamp)
84
+ ].sort((a, b) => a.getTime() - b.getTime());
85
+ return {
86
+ requests: this.requests.length,
87
+ exceptions: this.exceptions.length,
88
+ logs: this.logs.length,
89
+ oldestEntry: allTimestamps[0],
90
+ newestEntry: allTimestamps[allTimestamps.length - 1]
91
+ };
92
+ }
93
+ clear() {
94
+ this.requests = [];
95
+ this.exceptions = [];
96
+ this.logs = [];
97
+ }
98
+ enforceLimit(type) {
99
+ const entries = this[type];
100
+ if (entries.length > this.maxEntries) if (type === "requests") this.requests = this.requests.slice(0, this.maxEntries);
101
+ else if (type === "exceptions") this.exceptions = this.exceptions.slice(0, this.maxEntries);
102
+ else this.logs = this.logs.slice(0, this.maxEntries);
103
+ }
104
+ filterEntries(entries, options) {
105
+ let result = entries;
106
+ if (options?.after) result = result.filter((e) => e.timestamp >= options.after);
107
+ if (options?.before) result = result.filter((e) => e.timestamp <= options.before);
108
+ if (options?.tags && options.tags.length > 0) result = result.filter((e) => e.tags && options.tags?.some((t) => e.tags?.includes(t)));
109
+ if (options?.search) {
110
+ const searchLower = options.search.toLowerCase();
111
+ result = result.filter((e) => {
112
+ const str = JSON.stringify(e).toLowerCase();
113
+ return str.includes(searchLower);
114
+ });
115
+ }
116
+ const offset = options?.offset ?? 0;
117
+ const limit = options?.limit ?? 50;
118
+ return result.slice(offset, offset + limit);
119
+ }
120
+ };
121
+
122
+ //#endregion
123
+ Object.defineProperty(exports, 'InMemoryStorage', {
124
+ enumerable: true,
125
+ get: function () {
126
+ return InMemoryStorage;
127
+ }
128
+ });
129
+ //# sourceMappingURL=memory-B0d_n1g5.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory-B0d_n1g5.cjs","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":";;;;;;;AAmBA,IAAa,kBAAb,MAAyD;CACxD,AAAQ,WAA2B,CAAE;CACrC,AAAQ,aAA+B,CAAE;CACzC,AAAQ,OAAmB,CAAE;CAC7B,AAAQ;CAER,YAAYA,SAAkC;AAC7C,OAAK,aAAa,SAAS,cAAc;CACzC;CAID,MAAM,YAAYC,OAAoC;AACrD,OAAK,SAAS,QAAQ,MAAM;AAC5B,OAAK,aAAa,WAAW;CAC7B;CAED,MAAM,aAAaC,SAAwC;AAC1D,OAAK,SAAS,QAAQ,GAAG,QAAQ;AACjC,OAAK,aAAa,WAAW;CAC7B;CAED,MAAM,YAAYC,SAAiD;EAClE,IAAI,SAAS,KAAK;AAGlB,MAAI,SAAS,OACZ,UAAS,OAAO,OAAO,CAAC,MAAM,EAAE,WAAW,QAAQ,OAAO;AAG3D,MAAI,SAAS,QAAQ;GACpB,MAAM,eAAe,QAAQ;AAC7B,YAAS,OAAO,OAAO,CAAC,MAAM;AAE7B,QAAI,aAAa,SAAS,KAAK,EAAE;KAChC,MAAM,YAAY,aAAa;AAC/B,UAAK,UAAW,QAAO;KACvB,MAAM,WAAW,SAAS,WAAW,GAAG;AACxC,YAAO,KAAK,MAAM,EAAE,SAAS,IAAI,KAAK;IACtC;AAED,WAAO,EAAE,WAAW,SAAS,cAAc,GAAG;GAC9C,EAAC;EACF;AAED,SAAO,KAAK,cAAc,QAAQ,QAAQ;CAC1C;CAED,MAAM,WAAWC,IAA0C;AAC1D,SAAO,KAAK,SAAS,KAAK,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI;CACjD;CAID,MAAM,cAAcC,OAAsC;AACzD,OAAK,WAAW,QAAQ,MAAM;AAC9B,OAAK,aAAa,aAAa;CAC/B;CAED,MAAM,eAAeC,SAA0C;AAC9D,OAAK,WAAW,QAAQ,GAAG,QAAQ;AACnC,OAAK,aAAa,aAAa;CAC/B;CAED,MAAM,cAAcH,SAAmD;AACtE,SAAO,KAAK,cAAc,KAAK,YAAY,QAAQ;CACnD;CAED,MAAM,aAAaC,IAA4C;AAC9D,SAAO,KAAK,WAAW,KAAK,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI;CACnD;CAID,MAAM,QAAQG,OAAgC;AAC7C,OAAK,KAAK,QAAQ,MAAM;AACxB,OAAK,aAAa,OAAO;CACzB;CAED,MAAM,SAASC,SAAoC;AAClD,OAAK,KAAK,QAAQ,GAAG,QAAQ;AAC7B,OAAK,aAAa,OAAO;CACzB;CAED,MAAM,QAAQL,SAA6C;EAC1D,IAAI,SAAS,KAAK;AAGlB,MAAI,SAAS,MACZ,UAAS,OAAO,OAAO,CAAC,MAAM,EAAE,UAAU,QAAQ,MAAM;AAGzD,SAAO,KAAK,cAAc,QAAQ,QAAQ;CAC1C;CAID,MAAM,MAAMM,WAAkC;EAC7C,MAAM,cACL,KAAK,SAAS,SAAS,KAAK,WAAW,SAAS,KAAK,KAAK;AAE3D,OAAK,WAAW,KAAK,SAAS,OAAO,CAAC,MAAM,EAAE,aAAa,UAAU;AACrE,OAAK,aAAa,KAAK,WAAW,OAAO,CAAC,MAAM,EAAE,aAAa,UAAU;AACzE,OAAK,OAAO,KAAK,KAAK,OAAO,CAAC,MAAM,EAAE,aAAa,UAAU;EAE7D,MAAM,aACL,KAAK,SAAS,SAAS,KAAK,WAAW,SAAS,KAAK,KAAK;AAC3D,SAAO,cAAc;CACrB;CAID,MAAM,WAAoC;EACzC,MAAM,gBAAgB;GACrB,GAAG,KAAK,SAAS,IAAI,CAAC,MAAM,EAAE,UAAU;GACxC,GAAG,KAAK,WAAW,IAAI,CAAC,MAAM,EAAE,UAAU;GAC1C,GAAG,KAAK,KAAK,IAAI,CAAC,MAAM,EAAE,UAAU;EACpC,EAAC,KAAK,CAAC,GAAG,MAAM,EAAE,SAAS,GAAG,EAAE,SAAS,CAAC;AAE3C,SAAO;GACN,UAAU,KAAK,SAAS;GACxB,YAAY,KAAK,WAAW;GAC5B,MAAM,KAAK,KAAK;GAChB,aAAa,cAAc;GAC3B,aAAa,cAAc,cAAc,SAAS;EAClD;CACD;CAID,QAAc;AACb,OAAK,WAAW,CAAE;AAClB,OAAK,aAAa,CAAE;AACpB,OAAK,OAAO,CAAE;CACd;CAID,AAAQ,aAAaC,MAAgD;EACpE,MAAM,UAAU,KAAK;AACrB,MAAI,QAAQ,SAAS,KAAK,WACzB,KAAI,SAAS,WACZ,MAAK,WAAW,KAAK,SAAS,MAAM,GAAG,KAAK,WAAW;WAC7C,SAAS,aACnB,MAAK,aAAa,KAAK,WAAW,MAAM,GAAG,KAAK,WAAW;MAE3D,MAAK,OAAO,KAAK,KAAK,MAAM,GAAG,KAAK,WAAW;CAGjD;CAED,AAAQ,cACPC,SACAR,SACM;EACN,IAAI,SAAS;AAEb,MAAI,SAAS,MACZ,UAAS,OAAO,OAAO,CAAC,MAAM,EAAE,aAAa,QAAQ,MAAO;AAG7D,MAAI,SAAS,OACZ,UAAS,OAAO,OAAO,CAAC,MAAM,EAAE,aAAa,QAAQ,OAAQ;AAG9D,MAAI,SAAS,QAAQ,QAAQ,KAAK,SAAS,EAC1C,UAAS,OAAO,OACf,CAAC,MAAM,EAAE,QAAQ,QAAQ,MAAM,KAAK,CAAC,MAAM,EAAE,MAAM,SAAS,EAAE,CAAC,CAC/D;AAGF,MAAI,SAAS,QAAQ;GACpB,MAAM,cAAc,QAAQ,OAAO,aAAa;AAChD,YAAS,OAAO,OAAO,CAAC,MAAM;IAC7B,MAAM,MAAM,KAAK,UAAU,EAAE,CAAC,aAAa;AAC3C,WAAO,IAAI,SAAS,YAAY;GAChC,EAAC;EACF;EAED,MAAM,SAAS,SAAS,UAAU;EAClC,MAAM,QAAQ,SAAS,SAAS;AAEhC,SAAO,OAAO,MAAM,QAAQ,SAAS,MAAM;CAC3C;AACD"}
@@ -0,0 +1,40 @@
1
+ import { ExceptionEntry, LogEntry, QueryOptions, RequestEntry, TelescopeStats, TelescopeStorage } from "./types-B1EIa_cQ.mjs";
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-DCirEVFW.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory-DCirEVFW.d.mts","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"}