@geekmidas/telescope 10.0.0-alpha.98 → 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
@@ -1 +1 @@
1
- {"version":3,"file":"console.cjs","names":[],"sources":["../../src/logger/console.ts"],"sourcesContent":["import type { Telescope } from '../Telescope';\n\n/**\n * Logger interface matching @geekmidas/logger\n */\nexport interface Logger {\n\tdebug: LogFn;\n\tinfo: LogFn;\n\twarn: LogFn;\n\terror: LogFn;\n\tfatal: LogFn;\n\ttrace: LogFn;\n\tchild: (obj: object) => Logger;\n}\n\nexport type LogFn = {\n\t<T extends object>(obj: T, msg?: string, ...args: any[]): void;\n\t(msg: string): void;\n};\n\nexport interface TelescopeLoggerOptions {\n\t/**\n\t * The Telescope instance to send logs to\n\t */\n\ttelescope: Telescope;\n\t/**\n\t * Optional underlying logger to also forward logs to.\n\t * If not provided, logs will only go to Telescope.\n\t */\n\tlogger?: Logger;\n\t/**\n\t * Request ID to associate logs with a specific request.\n\t */\n\trequestId?: string;\n\t/**\n\t * Initial context data to include in all log messages\n\t */\n\tcontext?: Record<string, unknown>;\n}\n\ntype LogLevel = 'debug' | 'info' | 'warn' | 'error';\n\n/**\n * A logger that sends logs to both Telescope and an optional underlying logger.\n * Implements the Logger interface from @geekmidas/logger.\n *\n * @example\n * ```typescript\n * import { Telescope, InMemoryStorage } from '@geekmidas/telescope';\n * import { TelescopeLogger } from '@geekmidas/telescope/logger/console';\n * import { ConsoleLogger } from '@geekmidas/logger/console';\n *\n * const telescope = new Telescope({ storage: new InMemoryStorage() });\n *\n * // With underlying logger (logs to both console and Telescope)\n * const logger = new TelescopeLogger({\n * telescope,\n * logger: new ConsoleLogger({ app: 'myApp' }),\n * });\n *\n * // Without underlying logger (logs only to Telescope)\n * const telescopeOnly = new TelescopeLogger({ telescope });\n *\n * // Usage\n * logger.info({ userId: '123' }, 'User logged in');\n * logger.error({ error: 'Something failed' }, 'Operation failed');\n * ```\n */\nexport class TelescopeLogger implements Logger {\n\tprivate telescope: Telescope;\n\tprivate logger?: Logger;\n\tprivate requestId?: string;\n\tprivate context: Record<string, unknown>;\n\n\tconstructor(options: TelescopeLoggerOptions) {\n\t\tthis.telescope = options.telescope;\n\t\tthis.logger = options.logger;\n\t\tthis.requestId = options.requestId;\n\t\tthis.context = options.context ?? {};\n\t}\n\n\tprivate createLogFn(level: LogLevel): LogFn {\n\t\tconst fn = <T extends object>(\n\t\t\tobjOrMsg: T | string,\n\t\t\tmsg?: string,\n\t\t\t...args: any[]\n\t\t): void => {\n\t\t\tlet context: Record<string, unknown>;\n\t\t\tlet message: string;\n\n\t\t\tif (typeof objOrMsg === 'string') {\n\t\t\t\tcontext = { ...this.context };\n\t\t\t\tmessage = objOrMsg;\n\t\t\t} else {\n\t\t\t\tcontext = { ...this.context, ...objOrMsg };\n\t\t\t\tmessage = msg ?? '';\n\t\t\t}\n\n\t\t\t// Forward to underlying logger if present\n\t\t\tif (this.logger) {\n\t\t\t\tif (typeof objOrMsg === 'string') {\n\t\t\t\t\tthis.logger[level](objOrMsg);\n\t\t\t\t} else {\n\t\t\t\t\tthis.logger[level](objOrMsg as any, msg, ...args);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Send to Telescope (fire and forget)\n\t\t\tthis.telescope[level](message, context, this.requestId).catch(() => {});\n\t\t};\n\n\t\treturn fn as LogFn;\n\t}\n\n\tdebug: LogFn = this.createLogFn('debug');\n\tinfo: LogFn = this.createLogFn('info');\n\twarn: LogFn = this.createLogFn('warn');\n\terror: LogFn = this.createLogFn('error');\n\n\t// Map fatal and trace to error and debug for Telescope\n\tfatal: LogFn = ((\n\t\tobjOrMsg: object | string,\n\t\tmsg?: string,\n\t\t...args: any[]\n\t): void => {\n\t\t// Forward to underlying logger if present\n\t\tif (this.logger) {\n\t\t\tif (typeof objOrMsg === 'string') {\n\t\t\t\tthis.logger.fatal(objOrMsg);\n\t\t\t} else {\n\t\t\t\tthis.logger.fatal(objOrMsg as any, msg, ...args);\n\t\t\t}\n\t\t}\n\n\t\t// Send to Telescope as error level\n\t\tlet context: Record<string, unknown>;\n\t\tlet message: string;\n\n\t\tif (typeof objOrMsg === 'string') {\n\t\t\tcontext = { ...this.context, level: 'fatal' };\n\t\t\tmessage = objOrMsg;\n\t\t} else {\n\t\t\tcontext = { ...this.context, ...objOrMsg, level: 'fatal' };\n\t\t\tmessage = msg ?? '';\n\t\t}\n\n\t\tthis.telescope.error(message, context, this.requestId).catch(() => {});\n\t}) as LogFn;\n\n\ttrace: LogFn = ((\n\t\tobjOrMsg: object | string,\n\t\tmsg?: string,\n\t\t...args: any[]\n\t): void => {\n\t\t// Forward to underlying logger if present\n\t\tif (this.logger) {\n\t\t\tif (typeof objOrMsg === 'string') {\n\t\t\t\tthis.logger.trace(objOrMsg);\n\t\t\t} else {\n\t\t\t\tthis.logger.trace(objOrMsg as any, msg, ...args);\n\t\t\t}\n\t\t}\n\n\t\t// Send to Telescope as debug level\n\t\tlet context: Record<string, unknown>;\n\t\tlet message: string;\n\n\t\tif (typeof objOrMsg === 'string') {\n\t\t\tcontext = { ...this.context, level: 'trace' };\n\t\t\tmessage = objOrMsg;\n\t\t} else {\n\t\t\tcontext = { ...this.context, ...objOrMsg, level: 'trace' };\n\t\t\tmessage = msg ?? '';\n\t\t}\n\n\t\tthis.telescope.debug(message, context, this.requestId).catch(() => {});\n\t}) as LogFn;\n\n\t/**\n\t * Creates a child logger with additional context.\n\t * The child logger inherits all context from the parent.\n\t */\n\tchild(obj: object): Logger {\n\t\treturn new TelescopeLogger({\n\t\t\ttelescope: this.telescope,\n\t\t\tlogger: this.logger?.child(obj),\n\t\t\trequestId: this.requestId,\n\t\t\tcontext: { ...this.context, ...obj },\n\t\t});\n\t}\n\n\t/**\n\t * Create a child logger bound to a specific request ID.\n\t * Useful for correlating logs with HTTP requests.\n\t */\n\twithRequestId(requestId: string): TelescopeLogger {\n\t\treturn new TelescopeLogger({\n\t\t\ttelescope: this.telescope,\n\t\t\tlogger: this.logger,\n\t\t\trequestId,\n\t\t\tcontext: this.context,\n\t\t});\n\t}\n}\n\n/**\n * Create a logger that sends logs to Telescope.\n * Convenience function for creating a TelescopeLogger.\n *\n * @example\n * ```typescript\n * import { createTelescopeLogger } from '@geekmidas/telescope/logger/console';\n * import { ConsoleLogger } from '@geekmidas/logger/console';\n *\n * const telescope = new Telescope({ storage: new InMemoryStorage() });\n * const baseLogger = new ConsoleLogger({ app: 'myApp' });\n *\n * const logger = createTelescopeLogger(telescope, baseLogger);\n * logger.info({ action: 'startup' }, 'Application started');\n * ```\n */\nexport function createTelescopeLogger(\n\ttelescope: Telescope,\n\tlogger?: Logger,\n\tcontext?: Record<string, unknown>,\n): TelescopeLogger {\n\treturn new TelescopeLogger({ telescope, logger, context });\n}\n\nexport type { Telescope };\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoEA,IAAa,kBAAb,MAAa,gBAAkC;CAC9C;CACA;CACA;CACA;CAEA,YAAY,SAAiC;EAC5C,KAAK,YAAY,QAAQ;EACzB,KAAK,SAAS,QAAQ;EACtB,KAAK,YAAY,QAAQ;EACzB,KAAK,UAAU,QAAQ,WAAW,CAAC;CACpC;CAEA,YAAoB,OAAwB;EAC3C,MAAM,MACL,UACA,KACA,GAAG,SACO;GACV,IAAI;GACJ,IAAI;GAEJ,IAAI,OAAO,aAAa,UAAU;IACjC,UAAU,EAAE,GAAG,KAAK,QAAQ;IAC5B,UAAU;GACX,OAAO;IACN,UAAU;KAAE,GAAG,KAAK;KAAS,GAAG;IAAS;IACzC,UAAU,OAAO;GAClB;GAGA,IAAI,KAAK,QAAQ;IAChB,IAAI,OAAO,aAAa,UACvB,KAAK,OAAO,MAAM,CAAC,QAAQ;SAE3B,KAAK,OAAO,MAAM,CAAC,UAAiB,KAAK,GAAG,IAAI;GAElD;GAGA,KAAK,UAAU,MAAM,CAAC,SAAS,SAAS,KAAK,SAAS,CAAC,CAAC,YAAY,CAAC,CAAC;EACvE;EAEA,OAAO;CACR;CAEA,QAAe,KAAK,YAAY,OAAO;CACvC,OAAc,KAAK,YAAY,MAAM;CACrC,OAAc,KAAK,YAAY,MAAM;CACrC,QAAe,KAAK,YAAY,OAAO;CAGvC,UACC,UACA,KACA,GAAG,SACO;EAEV,IAAI,KAAK,QAAQ;GAChB,IAAI,OAAO,aAAa,UACvB,KAAK,OAAO,MAAM,QAAQ;QAE1B,KAAK,OAAO,MAAM,UAAiB,KAAK,GAAG,IAAI;EAEjD;EAGA,IAAI;EACJ,IAAI;EAEJ,IAAI,OAAO,aAAa,UAAU;GACjC,UAAU;IAAE,GAAG,KAAK;IAAS,OAAO;GAAQ;GAC5C,UAAU;EACX,OAAO;GACN,UAAU;IAAE,GAAG,KAAK;IAAS,GAAG;IAAU,OAAO;GAAQ;GACzD,UAAU,OAAO;EAClB;EAEA,KAAK,UAAU,MAAM,SAAS,SAAS,KAAK,SAAS,CAAC,CAAC,YAAY,CAAC,CAAC;CACtE;CAEA,UACC,UACA,KACA,GAAG,SACO;EAEV,IAAI,KAAK,QAAQ;GAChB,IAAI,OAAO,aAAa,UACvB,KAAK,OAAO,MAAM,QAAQ;QAE1B,KAAK,OAAO,MAAM,UAAiB,KAAK,GAAG,IAAI;EAEjD;EAGA,IAAI;EACJ,IAAI;EAEJ,IAAI,OAAO,aAAa,UAAU;GACjC,UAAU;IAAE,GAAG,KAAK;IAAS,OAAO;GAAQ;GAC5C,UAAU;EACX,OAAO;GACN,UAAU;IAAE,GAAG,KAAK;IAAS,GAAG;IAAU,OAAO;GAAQ;GACzD,UAAU,OAAO;EAClB;EAEA,KAAK,UAAU,MAAM,SAAS,SAAS,KAAK,SAAS,CAAC,CAAC,YAAY,CAAC,CAAC;CACtE;;;;;CAMA,MAAM,KAAqB;EAC1B,OAAO,IAAI,gBAAgB;GAC1B,WAAW,KAAK;GAChB,QAAQ,KAAK,QAAQ,MAAM,GAAG;GAC9B,WAAW,KAAK;GAChB,SAAS;IAAE,GAAG,KAAK;IAAS,GAAG;GAAI;EACpC,CAAC;CACF;;;;;CAMA,cAAc,WAAoC;EACjD,OAAO,IAAI,gBAAgB;GAC1B,WAAW,KAAK;GAChB,QAAQ,KAAK;GACb;GACA,SAAS,KAAK;EACf,CAAC;CACF;AACD;;;;;;;;;;;;;;;;;AAkBA,SAAgB,sBACf,WACA,QACA,SACkB;CAClB,OAAO,IAAI,gBAAgB;EAAE;EAAW;EAAQ;CAAQ,CAAC;AAC1D"}
1
+ {"version":3,"file":"console.cjs","names":["options: TelescopeLoggerOptions","level: LogLevel","objOrMsg: T | string","msg?: string","context: Record<string, unknown>","message: string","objOrMsg: object | string","obj: object","requestId: string","telescope: Telescope","logger?: Logger","context?: Record<string, unknown>"],"sources":["../../src/logger/console.ts"],"sourcesContent":["import type { Telescope } from '../Telescope';\n\n/**\n * Logger interface matching @geekmidas/logger\n */\nexport interface Logger {\n\tdebug: LogFn;\n\tinfo: LogFn;\n\twarn: LogFn;\n\terror: LogFn;\n\tfatal: LogFn;\n\ttrace: LogFn;\n\tchild: (obj: object) => Logger;\n}\n\nexport type LogFn = {\n\t<T extends object>(obj: T, msg?: string, ...args: any[]): void;\n\t(msg: string): void;\n};\n\nexport interface TelescopeLoggerOptions {\n\t/**\n\t * The Telescope instance to send logs to\n\t */\n\ttelescope: Telescope;\n\t/**\n\t * Optional underlying logger to also forward logs to.\n\t * If not provided, logs will only go to Telescope.\n\t */\n\tlogger?: Logger;\n\t/**\n\t * Request ID to associate logs with a specific request.\n\t */\n\trequestId?: string;\n\t/**\n\t * Initial context data to include in all log messages\n\t */\n\tcontext?: Record<string, unknown>;\n}\n\ntype LogLevel = 'debug' | 'info' | 'warn' | 'error';\n\n/**\n * A logger that sends logs to both Telescope and an optional underlying logger.\n * Implements the Logger interface from @geekmidas/logger.\n *\n * @example\n * ```typescript\n * import { Telescope, InMemoryStorage } from '@geekmidas/telescope';\n * import { TelescopeLogger } from '@geekmidas/telescope/logger/console';\n * import { ConsoleLogger } from '@geekmidas/logger/console';\n *\n * const telescope = new Telescope({ storage: new InMemoryStorage() });\n *\n * // With underlying logger (logs to both console and Telescope)\n * const logger = new TelescopeLogger({\n * telescope,\n * logger: new ConsoleLogger({ app: 'myApp' }),\n * });\n *\n * // Without underlying logger (logs only to Telescope)\n * const telescopeOnly = new TelescopeLogger({ telescope });\n *\n * // Usage\n * logger.info({ userId: '123' }, 'User logged in');\n * logger.error({ error: 'Something failed' }, 'Operation failed');\n * ```\n */\nexport class TelescopeLogger implements Logger {\n\tprivate telescope: Telescope;\n\tprivate logger?: Logger;\n\tprivate requestId?: string;\n\tprivate context: Record<string, unknown>;\n\n\tconstructor(options: TelescopeLoggerOptions) {\n\t\tthis.telescope = options.telescope;\n\t\tthis.logger = options.logger;\n\t\tthis.requestId = options.requestId;\n\t\tthis.context = options.context ?? {};\n\t}\n\n\tprivate createLogFn(level: LogLevel): LogFn {\n\t\tconst fn = <T extends object>(\n\t\t\tobjOrMsg: T | string,\n\t\t\tmsg?: string,\n\t\t\t...args: any[]\n\t\t): void => {\n\t\t\tlet context: Record<string, unknown>;\n\t\t\tlet message: string;\n\n\t\t\tif (typeof objOrMsg === 'string') {\n\t\t\t\tcontext = { ...this.context };\n\t\t\t\tmessage = objOrMsg;\n\t\t\t} else {\n\t\t\t\tcontext = { ...this.context, ...objOrMsg };\n\t\t\t\tmessage = msg ?? '';\n\t\t\t}\n\n\t\t\t// Forward to underlying logger if present\n\t\t\tif (this.logger) {\n\t\t\t\tif (typeof objOrMsg === 'string') {\n\t\t\t\t\tthis.logger[level](objOrMsg);\n\t\t\t\t} else {\n\t\t\t\t\tthis.logger[level](objOrMsg as any, msg, ...args);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Send to Telescope (fire and forget)\n\t\t\tthis.telescope[level](message, context, this.requestId).catch(() => {});\n\t\t};\n\n\t\treturn fn as LogFn;\n\t}\n\n\tdebug: LogFn = this.createLogFn('debug');\n\tinfo: LogFn = this.createLogFn('info');\n\twarn: LogFn = this.createLogFn('warn');\n\terror: LogFn = this.createLogFn('error');\n\n\t// Map fatal and trace to error and debug for Telescope\n\tfatal: LogFn = ((\n\t\tobjOrMsg: object | string,\n\t\tmsg?: string,\n\t\t...args: any[]\n\t): void => {\n\t\t// Forward to underlying logger if present\n\t\tif (this.logger) {\n\t\t\tif (typeof objOrMsg === 'string') {\n\t\t\t\tthis.logger.fatal(objOrMsg);\n\t\t\t} else {\n\t\t\t\tthis.logger.fatal(objOrMsg as any, msg, ...args);\n\t\t\t}\n\t\t}\n\n\t\t// Send to Telescope as error level\n\t\tlet context: Record<string, unknown>;\n\t\tlet message: string;\n\n\t\tif (typeof objOrMsg === 'string') {\n\t\t\tcontext = { ...this.context, level: 'fatal' };\n\t\t\tmessage = objOrMsg;\n\t\t} else {\n\t\t\tcontext = { ...this.context, ...objOrMsg, level: 'fatal' };\n\t\t\tmessage = msg ?? '';\n\t\t}\n\n\t\tthis.telescope.error(message, context, this.requestId).catch(() => {});\n\t}) as LogFn;\n\n\ttrace: LogFn = ((\n\t\tobjOrMsg: object | string,\n\t\tmsg?: string,\n\t\t...args: any[]\n\t): void => {\n\t\t// Forward to underlying logger if present\n\t\tif (this.logger) {\n\t\t\tif (typeof objOrMsg === 'string') {\n\t\t\t\tthis.logger.trace(objOrMsg);\n\t\t\t} else {\n\t\t\t\tthis.logger.trace(objOrMsg as any, msg, ...args);\n\t\t\t}\n\t\t}\n\n\t\t// Send to Telescope as debug level\n\t\tlet context: Record<string, unknown>;\n\t\tlet message: string;\n\n\t\tif (typeof objOrMsg === 'string') {\n\t\t\tcontext = { ...this.context, level: 'trace' };\n\t\t\tmessage = objOrMsg;\n\t\t} else {\n\t\t\tcontext = { ...this.context, ...objOrMsg, level: 'trace' };\n\t\t\tmessage = msg ?? '';\n\t\t}\n\n\t\tthis.telescope.debug(message, context, this.requestId).catch(() => {});\n\t}) as LogFn;\n\n\t/**\n\t * Creates a child logger with additional context.\n\t * The child logger inherits all context from the parent.\n\t */\n\tchild(obj: object): Logger {\n\t\treturn new TelescopeLogger({\n\t\t\ttelescope: this.telescope,\n\t\t\tlogger: this.logger?.child(obj),\n\t\t\trequestId: this.requestId,\n\t\t\tcontext: { ...this.context, ...obj },\n\t\t});\n\t}\n\n\t/**\n\t * Create a child logger bound to a specific request ID.\n\t * Useful for correlating logs with HTTP requests.\n\t */\n\twithRequestId(requestId: string): TelescopeLogger {\n\t\treturn new TelescopeLogger({\n\t\t\ttelescope: this.telescope,\n\t\t\tlogger: this.logger,\n\t\t\trequestId,\n\t\t\tcontext: this.context,\n\t\t});\n\t}\n}\n\n/**\n * Create a logger that sends logs to Telescope.\n * Convenience function for creating a TelescopeLogger.\n *\n * @example\n * ```typescript\n * import { createTelescopeLogger } from '@geekmidas/telescope/logger/console';\n * import { ConsoleLogger } from '@geekmidas/logger/console';\n *\n * const telescope = new Telescope({ storage: new InMemoryStorage() });\n * const baseLogger = new ConsoleLogger({ app: 'myApp' });\n *\n * const logger = createTelescopeLogger(telescope, baseLogger);\n * logger.info({ action: 'startup' }, 'Application started');\n * ```\n */\nexport function createTelescopeLogger(\n\ttelescope: Telescope,\n\tlogger?: Logger,\n\tcontext?: Record<string, unknown>,\n): TelescopeLogger {\n\treturn new TelescopeLogger({ telescope, logger, context });\n}\n\nexport type { Telescope };\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoEA,IAAa,kBAAb,MAAa,gBAAkC;CAC9C,AAAQ;CACR,AAAQ;CACR,AAAQ;CACR,AAAQ;CAER,YAAYA,SAAiC;AAC5C,OAAK,YAAY,QAAQ;AACzB,OAAK,SAAS,QAAQ;AACtB,OAAK,YAAY,QAAQ;AACzB,OAAK,UAAU,QAAQ,WAAW,CAAE;CACpC;CAED,AAAQ,YAAYC,OAAwB;EAC3C,MAAM,KAAK,CACVC,UACAC,KACA,GAAG,SACO;GACV,IAAIC;GACJ,IAAIC;AAEJ,cAAW,aAAa,UAAU;AACjC,cAAU,EAAE,GAAG,KAAK,QAAS;AAC7B,cAAU;GACV,OAAM;AACN,cAAU;KAAE,GAAG,KAAK;KAAS,GAAG;IAAU;AAC1C,cAAU,OAAO;GACjB;AAGD,OAAI,KAAK,OACR,YAAW,aAAa,SACvB,MAAK,OAAO,OAAO,SAAS;OAE5B,MAAK,OAAO,OAAO,UAAiB,KAAK,GAAG,KAAK;AAKnD,QAAK,UAAU,OAAO,SAAS,SAAS,KAAK,UAAU,CAAC,MAAM,MAAM,CAAE,EAAC;EACvE;AAED,SAAO;CACP;CAED,QAAe,KAAK,YAAY,QAAQ;CACxC,OAAc,KAAK,YAAY,OAAO;CACtC,OAAc,KAAK,YAAY,OAAO;CACtC,QAAe,KAAK,YAAY,QAAQ;CAGxC,QAAgB,CACfC,UACAH,KACA,GAAG,SACO;AAEV,MAAI,KAAK,OACR,YAAW,aAAa,SACvB,MAAK,OAAO,MAAM,SAAS;MAE3B,MAAK,OAAO,MAAM,UAAiB,KAAK,GAAG,KAAK;EAKlD,IAAIC;EACJ,IAAIC;AAEJ,aAAW,aAAa,UAAU;AACjC,aAAU;IAAE,GAAG,KAAK;IAAS,OAAO;GAAS;AAC7C,aAAU;EACV,OAAM;AACN,aAAU;IAAE,GAAG,KAAK;IAAS,GAAG;IAAU,OAAO;GAAS;AAC1D,aAAU,OAAO;EACjB;AAED,OAAK,UAAU,MAAM,SAAS,SAAS,KAAK,UAAU,CAAC,MAAM,MAAM,CAAE,EAAC;CACtE;CAED,QAAgB,CACfC,UACAH,KACA,GAAG,SACO;AAEV,MAAI,KAAK,OACR,YAAW,aAAa,SACvB,MAAK,OAAO,MAAM,SAAS;MAE3B,MAAK,OAAO,MAAM,UAAiB,KAAK,GAAG,KAAK;EAKlD,IAAIC;EACJ,IAAIC;AAEJ,aAAW,aAAa,UAAU;AACjC,aAAU;IAAE,GAAG,KAAK;IAAS,OAAO;GAAS;AAC7C,aAAU;EACV,OAAM;AACN,aAAU;IAAE,GAAG,KAAK;IAAS,GAAG;IAAU,OAAO;GAAS;AAC1D,aAAU,OAAO;EACjB;AAED,OAAK,UAAU,MAAM,SAAS,SAAS,KAAK,UAAU,CAAC,MAAM,MAAM,CAAE,EAAC;CACtE;;;;;CAMD,MAAME,KAAqB;AAC1B,SAAO,IAAI,gBAAgB;GAC1B,WAAW,KAAK;GAChB,QAAQ,KAAK,QAAQ,MAAM,IAAI;GAC/B,WAAW,KAAK;GAChB,SAAS;IAAE,GAAG,KAAK;IAAS,GAAG;GAAK;EACpC;CACD;;;;;CAMD,cAAcC,WAAoC;AACjD,SAAO,IAAI,gBAAgB;GAC1B,WAAW,KAAK;GAChB,QAAQ,KAAK;GACb;GACA,SAAS,KAAK;EACd;CACD;AACD;;;;;;;;;;;;;;;;;AAkBD,SAAgB,sBACfC,WACAC,QACAC,SACkB;AAClB,QAAO,IAAI,gBAAgB;EAAE;EAAW;EAAQ;CAAS;AACzD"}
@@ -1,9 +1,12 @@
1
- import { t as Telescope } from "../Telescope-DeqSHfuB.cjs";
1
+ import "../types-l7Rlb5Mg.cjs";
2
+ import "../MetricsAggregator-4SqelGcG.cjs";
3
+ import { Telescope } from "../Telescope-D4nmwDRA.cjs";
4
+
2
5
  //#region src/logger/console.d.ts
3
6
  /**
4
7
  * Logger interface matching @geekmidas/logger
5
8
  */
6
- export interface Logger {
9
+ interface Logger {
7
10
  debug: LogFn;
8
11
  info: LogFn;
9
12
  warn: LogFn;
@@ -12,11 +15,11 @@ export interface Logger {
12
15
  trace: LogFn;
13
16
  child: (obj: object) => Logger;
14
17
  }
15
- export type LogFn = {
18
+ type LogFn = {
16
19
  <T extends object>(obj: T, msg?: string, ...args: any[]): void;
17
20
  (msg: string): void;
18
21
  };
19
- export interface TelescopeLoggerOptions {
22
+ interface TelescopeLoggerOptions {
20
23
  /**
21
24
  * The Telescope instance to send logs to
22
25
  */
@@ -61,7 +64,7 @@ export interface TelescopeLoggerOptions {
61
64
  * logger.error({ error: 'Something failed' }, 'Operation failed');
62
65
  * ```
63
66
  */
64
- export declare class TelescopeLogger implements Logger {
67
+ declare class TelescopeLogger implements Logger {
65
68
  private telescope;
66
69
  private logger?;
67
70
  private requestId?;
@@ -101,7 +104,7 @@ export declare class TelescopeLogger implements Logger {
101
104
  * logger.info({ action: 'startup' }, 'Application started');
102
105
  * ```
103
106
  */
104
- export declare function createTelescopeLogger(telescope: Telescope, logger?: Logger, context?: Record<string, unknown>): TelescopeLogger;
107
+ declare function createTelescopeLogger(telescope: Telescope, logger?: Logger, context?: Record<string, unknown>): TelescopeLogger;
105
108
  //#endregion
106
- export type { Telescope };
109
+ export { LogFn, Logger, Telescope, TelescopeLogger, TelescopeLoggerOptions, createTelescopeLogger };
107
110
  //# sourceMappingURL=console.d.cts.map
@@ -1 +1 @@
1
- {"version":3,"file":"console.d.cts","names":[],"sources":["../../src/logger/console.ts"],"mappings":";;;;;iBAKiB;EAChB,OAAO;EACP,MAAM;EACN,MAAM;EACN,OAAO;EACP,OAAO;EACP,OAAO;EACP,QAAQ,gBAAgB;;YAGb;GACV,kBAAkB,KAAK,GAAG,iBAAiB;GAC3C;;iBAGe;;;;EAIhB,WAAW;;;;;EAKX,SAAS;;;;EAIT;;;;EAIA,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;qBA+BE,2BAA2B;UAC/B;UACA;UACA;UACA;EAER,YAAY,SAAS;UAOb;EAiCR,OAAO;EACP,MAAM;EACN,MAAM;EACN,OAAO;EAGP,OAAO;EA6BP,OAAO;;;;;EAiCP,MAAM,cAAc;;;;;EAapB,cAAc,oBAAoB;;;;;;;;;;;;;;;;;;wBA0BnB,sBACf,WAAW,WACX,SAAS,QACT,UAAU,0BACR"}
1
+ {"version":3,"file":"console.d.cts","names":[],"sources":["../../src/logger/console.ts"],"sourcesContent":[],"mappings":";;;;;;;;UAKiB,MAAA;EAAA,KAAA,EACT,KADe;EAAA,IAAA,EAEhB,KAFgB;EAAA,IACf,EAED,KAFC;EAAK,KACN,EAEC,KAFD;EAAK,KACL,EAEC,KAFD;EAAK,KACJ,EAEA,KAFA;EAAK,KACL,EAAA,CAAA,GAAA,EAAA,MAAA,EAAA,GAEiB,MAFjB;;AAEiB,KAGb,KAAA,GAHa;EAAM,CAAA,UAAA,MAAA,CAAA,CAAA,GAAA,EAIN,CAJM,EAAA,GAAA,CAAA,EAAA,MAAA,EAAA,GAAA,IAAA,EAAA,GAAA,EAAA,CAAA,EAAA,IAAA;EAGnB,CAAA,GAAA,EAAA,MAAK,CAAA,EAAA,IACQ;AAIzB,CAAA;AAAuC,UAAtB,sBAAA,CAAsB;EAAA;;;EAiBtB,SAAA,EAbL,SAaK;EA+BJ;;;;EA8CA,MACN,CAAA,EAtFG,MAsFH;EAAK;;;EAKC,SA6BL,CAAA,EAAA,MAAA;EAAK;;;EAjFiC,OAAA,CAAA,EA/BnC,MA+BmC,CAAA,MAAA,EAAA,OAAA,CAAA;AAyJ9C;;;;;;AAIkB;;;;;;;;;;;;;;;;;;;;;cA7JL,eAAA,YAA2B;;;;;uBAMlB;;SAwCd;QACD;QACA;SACC;SAGA;SA6BA;;;;;sBAiCa;;;;;oCAac;;;;;;;;;;;;;;;;;;iBA0BnB,qBAAA,YACJ,oBACF,kBACC,0BACR"}
@@ -1,9 +1,12 @@
1
- import { t as Telescope } from "../Telescope-BVfDvVvY.mjs";
1
+ import "../types-B1EIa_cQ.mjs";
2
+ import "../MetricsAggregator-DZrW8ls6.mjs";
3
+ import { Telescope } from "../Telescope-Dl6VSfxd.mjs";
4
+
2
5
  //#region src/logger/console.d.ts
3
6
  /**
4
7
  * Logger interface matching @geekmidas/logger
5
8
  */
6
- export interface Logger {
9
+ interface Logger {
7
10
  debug: LogFn;
8
11
  info: LogFn;
9
12
  warn: LogFn;
@@ -12,11 +15,11 @@ export interface Logger {
12
15
  trace: LogFn;
13
16
  child: (obj: object) => Logger;
14
17
  }
15
- export type LogFn = {
18
+ type LogFn = {
16
19
  <T extends object>(obj: T, msg?: string, ...args: any[]): void;
17
20
  (msg: string): void;
18
21
  };
19
- export interface TelescopeLoggerOptions {
22
+ interface TelescopeLoggerOptions {
20
23
  /**
21
24
  * The Telescope instance to send logs to
22
25
  */
@@ -61,7 +64,7 @@ export interface TelescopeLoggerOptions {
61
64
  * logger.error({ error: 'Something failed' }, 'Operation failed');
62
65
  * ```
63
66
  */
64
- export declare class TelescopeLogger implements Logger {
67
+ declare class TelescopeLogger implements Logger {
65
68
  private telescope;
66
69
  private logger?;
67
70
  private requestId?;
@@ -101,7 +104,7 @@ export declare class TelescopeLogger implements Logger {
101
104
  * logger.info({ action: 'startup' }, 'Application started');
102
105
  * ```
103
106
  */
104
- export declare function createTelescopeLogger(telescope: Telescope, logger?: Logger, context?: Record<string, unknown>): TelescopeLogger;
107
+ declare function createTelescopeLogger(telescope: Telescope, logger?: Logger, context?: Record<string, unknown>): TelescopeLogger;
105
108
  //#endregion
106
- export type { Telescope };
109
+ export { LogFn, Logger, Telescope, TelescopeLogger, TelescopeLoggerOptions, createTelescopeLogger };
107
110
  //# sourceMappingURL=console.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"console.d.mts","names":[],"sources":["../../src/logger/console.ts"],"mappings":";;;;;iBAKiB;EAChB,OAAO;EACP,MAAM;EACN,MAAM;EACN,OAAO;EACP,OAAO;EACP,OAAO;EACP,QAAQ,gBAAgB;;YAGb;GACV,kBAAkB,KAAK,GAAG,iBAAiB;GAC3C;;iBAGe;;;;EAIhB,WAAW;;;;;EAKX,SAAS;;;;EAIT;;;;EAIA,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;qBA+BE,2BAA2B;UAC/B;UACA;UACA;UACA;EAER,YAAY,SAAS;UAOb;EAiCR,OAAO;EACP,MAAM;EACN,MAAM;EACN,OAAO;EAGP,OAAO;EA6BP,OAAO;;;;;EAiCP,MAAM,cAAc;;;;;EAapB,cAAc,oBAAoB;;;;;;;;;;;;;;;;;;wBA0BnB,sBACf,WAAW,WACX,SAAS,QACT,UAAU,0BACR"}
1
+ {"version":3,"file":"console.d.mts","names":[],"sources":["../../src/logger/console.ts"],"sourcesContent":[],"mappings":";;;;;;;;UAKiB,MAAA;EAAA,KAAA,EACT,KADe;EAAA,IAAA,EAEhB,KAFgB;EAAA,IACf,EAED,KAFC;EAAK,KACN,EAEC,KAFD;EAAK,KACL,EAEC,KAFD;EAAK,KACJ,EAEA,KAFA;EAAK,KACL,EAAA,CAAA,GAAA,EAAA,MAAA,EAAA,GAEiB,MAFjB;;AAEiB,KAGb,KAAA,GAHa;EAAM,CAAA,UAAA,MAAA,CAAA,CAAA,GAAA,EAIN,CAJM,EAAA,GAAA,CAAA,EAAA,MAAA,EAAA,GAAA,IAAA,EAAA,GAAA,EAAA,CAAA,EAAA,IAAA;EAGnB,CAAA,GAAA,EAAA,MAAK,CAAA,EAAA,IACQ;AAIzB,CAAA;AAAuC,UAAtB,sBAAA,CAAsB;EAAA;;;EAiBtB,SAAA,EAbL,SAaK;EA+BJ;;;;EA8CA,MACN,CAAA,EAtFG,MAsFH;EAAK;;;EAKC,SA6BL,CAAA,EAAA,MAAA;EAAK;;;EAjFiC,OAAA,CAAA,EA/BnC,MA+BmC,CAAA,MAAA,EAAA,OAAA,CAAA;AAyJ9C;;;;;;AAIkB;;;;;;;;;;;;;;;;;;;;;cA7JL,eAAA,YAA2B;;;;;uBAMlB;;SAwCd;QACD;QACA;SACC;SAGA;SA6BA;;;;;sBAiCa;;;;;oCAac;;;;;;;;;;;;;;;;;;iBA0BnB,qBAAA,YACJ,oBACF,kBACC,0BACR"}
@@ -50,10 +50,8 @@ var TelescopeLogger = class TelescopeLogger {
50
50
  };
51
51
  message = msg ?? "";
52
52
  }
53
- if (this.logger) {
54
- if (typeof objOrMsg === "string") this.logger[level](objOrMsg);
55
- else this.logger[level](objOrMsg, msg, ...args);
56
- }
53
+ if (this.logger) if (typeof objOrMsg === "string") this.logger[level](objOrMsg);
54
+ else this.logger[level](objOrMsg, msg, ...args);
57
55
  this.telescope[level](message, context, this.requestId).catch(() => {});
58
56
  };
59
57
  return fn;
@@ -62,11 +60,9 @@ var TelescopeLogger = class TelescopeLogger {
62
60
  info = this.createLogFn("info");
63
61
  warn = this.createLogFn("warn");
64
62
  error = this.createLogFn("error");
65
- fatal = ((objOrMsg, msg, ...args) => {
66
- if (this.logger) {
67
- if (typeof objOrMsg === "string") this.logger.fatal(objOrMsg);
68
- else this.logger.fatal(objOrMsg, msg, ...args);
69
- }
63
+ fatal = (objOrMsg, msg, ...args) => {
64
+ if (this.logger) if (typeof objOrMsg === "string") this.logger.fatal(objOrMsg);
65
+ else this.logger.fatal(objOrMsg, msg, ...args);
70
66
  let context;
71
67
  let message;
72
68
  if (typeof objOrMsg === "string") {
@@ -84,12 +80,10 @@ var TelescopeLogger = class TelescopeLogger {
84
80
  message = msg ?? "";
85
81
  }
86
82
  this.telescope.error(message, context, this.requestId).catch(() => {});
87
- });
88
- trace = ((objOrMsg, msg, ...args) => {
89
- if (this.logger) {
90
- if (typeof objOrMsg === "string") this.logger.trace(objOrMsg);
91
- else this.logger.trace(objOrMsg, msg, ...args);
92
- }
83
+ };
84
+ trace = (objOrMsg, msg, ...args) => {
85
+ if (this.logger) if (typeof objOrMsg === "string") this.logger.trace(objOrMsg);
86
+ else this.logger.trace(objOrMsg, msg, ...args);
93
87
  let context;
94
88
  let message;
95
89
  if (typeof objOrMsg === "string") {
@@ -107,7 +101,7 @@ var TelescopeLogger = class TelescopeLogger {
107
101
  message = msg ?? "";
108
102
  }
109
103
  this.telescope.debug(message, context, this.requestId).catch(() => {});
110
- });
104
+ };
111
105
  /**
112
106
  * Creates a child logger with additional context.
113
107
  * The child logger inherits all context from the parent.
@@ -159,7 +153,7 @@ function createTelescopeLogger(telescope, logger, context) {
159
153
  context
160
154
  });
161
155
  }
156
+
162
157
  //#endregion
163
158
  export { TelescopeLogger, createTelescopeLogger };
164
-
165
159
  //# sourceMappingURL=console.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"console.mjs","names":[],"sources":["../../src/logger/console.ts"],"sourcesContent":["import type { Telescope } from '../Telescope';\n\n/**\n * Logger interface matching @geekmidas/logger\n */\nexport interface Logger {\n\tdebug: LogFn;\n\tinfo: LogFn;\n\twarn: LogFn;\n\terror: LogFn;\n\tfatal: LogFn;\n\ttrace: LogFn;\n\tchild: (obj: object) => Logger;\n}\n\nexport type LogFn = {\n\t<T extends object>(obj: T, msg?: string, ...args: any[]): void;\n\t(msg: string): void;\n};\n\nexport interface TelescopeLoggerOptions {\n\t/**\n\t * The Telescope instance to send logs to\n\t */\n\ttelescope: Telescope;\n\t/**\n\t * Optional underlying logger to also forward logs to.\n\t * If not provided, logs will only go to Telescope.\n\t */\n\tlogger?: Logger;\n\t/**\n\t * Request ID to associate logs with a specific request.\n\t */\n\trequestId?: string;\n\t/**\n\t * Initial context data to include in all log messages\n\t */\n\tcontext?: Record<string, unknown>;\n}\n\ntype LogLevel = 'debug' | 'info' | 'warn' | 'error';\n\n/**\n * A logger that sends logs to both Telescope and an optional underlying logger.\n * Implements the Logger interface from @geekmidas/logger.\n *\n * @example\n * ```typescript\n * import { Telescope, InMemoryStorage } from '@geekmidas/telescope';\n * import { TelescopeLogger } from '@geekmidas/telescope/logger/console';\n * import { ConsoleLogger } from '@geekmidas/logger/console';\n *\n * const telescope = new Telescope({ storage: new InMemoryStorage() });\n *\n * // With underlying logger (logs to both console and Telescope)\n * const logger = new TelescopeLogger({\n * telescope,\n * logger: new ConsoleLogger({ app: 'myApp' }),\n * });\n *\n * // Without underlying logger (logs only to Telescope)\n * const telescopeOnly = new TelescopeLogger({ telescope });\n *\n * // Usage\n * logger.info({ userId: '123' }, 'User logged in');\n * logger.error({ error: 'Something failed' }, 'Operation failed');\n * ```\n */\nexport class TelescopeLogger implements Logger {\n\tprivate telescope: Telescope;\n\tprivate logger?: Logger;\n\tprivate requestId?: string;\n\tprivate context: Record<string, unknown>;\n\n\tconstructor(options: TelescopeLoggerOptions) {\n\t\tthis.telescope = options.telescope;\n\t\tthis.logger = options.logger;\n\t\tthis.requestId = options.requestId;\n\t\tthis.context = options.context ?? {};\n\t}\n\n\tprivate createLogFn(level: LogLevel): LogFn {\n\t\tconst fn = <T extends object>(\n\t\t\tobjOrMsg: T | string,\n\t\t\tmsg?: string,\n\t\t\t...args: any[]\n\t\t): void => {\n\t\t\tlet context: Record<string, unknown>;\n\t\t\tlet message: string;\n\n\t\t\tif (typeof objOrMsg === 'string') {\n\t\t\t\tcontext = { ...this.context };\n\t\t\t\tmessage = objOrMsg;\n\t\t\t} else {\n\t\t\t\tcontext = { ...this.context, ...objOrMsg };\n\t\t\t\tmessage = msg ?? '';\n\t\t\t}\n\n\t\t\t// Forward to underlying logger if present\n\t\t\tif (this.logger) {\n\t\t\t\tif (typeof objOrMsg === 'string') {\n\t\t\t\t\tthis.logger[level](objOrMsg);\n\t\t\t\t} else {\n\t\t\t\t\tthis.logger[level](objOrMsg as any, msg, ...args);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Send to Telescope (fire and forget)\n\t\t\tthis.telescope[level](message, context, this.requestId).catch(() => {});\n\t\t};\n\n\t\treturn fn as LogFn;\n\t}\n\n\tdebug: LogFn = this.createLogFn('debug');\n\tinfo: LogFn = this.createLogFn('info');\n\twarn: LogFn = this.createLogFn('warn');\n\terror: LogFn = this.createLogFn('error');\n\n\t// Map fatal and trace to error and debug for Telescope\n\tfatal: LogFn = ((\n\t\tobjOrMsg: object | string,\n\t\tmsg?: string,\n\t\t...args: any[]\n\t): void => {\n\t\t// Forward to underlying logger if present\n\t\tif (this.logger) {\n\t\t\tif (typeof objOrMsg === 'string') {\n\t\t\t\tthis.logger.fatal(objOrMsg);\n\t\t\t} else {\n\t\t\t\tthis.logger.fatal(objOrMsg as any, msg, ...args);\n\t\t\t}\n\t\t}\n\n\t\t// Send to Telescope as error level\n\t\tlet context: Record<string, unknown>;\n\t\tlet message: string;\n\n\t\tif (typeof objOrMsg === 'string') {\n\t\t\tcontext = { ...this.context, level: 'fatal' };\n\t\t\tmessage = objOrMsg;\n\t\t} else {\n\t\t\tcontext = { ...this.context, ...objOrMsg, level: 'fatal' };\n\t\t\tmessage = msg ?? '';\n\t\t}\n\n\t\tthis.telescope.error(message, context, this.requestId).catch(() => {});\n\t}) as LogFn;\n\n\ttrace: LogFn = ((\n\t\tobjOrMsg: object | string,\n\t\tmsg?: string,\n\t\t...args: any[]\n\t): void => {\n\t\t// Forward to underlying logger if present\n\t\tif (this.logger) {\n\t\t\tif (typeof objOrMsg === 'string') {\n\t\t\t\tthis.logger.trace(objOrMsg);\n\t\t\t} else {\n\t\t\t\tthis.logger.trace(objOrMsg as any, msg, ...args);\n\t\t\t}\n\t\t}\n\n\t\t// Send to Telescope as debug level\n\t\tlet context: Record<string, unknown>;\n\t\tlet message: string;\n\n\t\tif (typeof objOrMsg === 'string') {\n\t\t\tcontext = { ...this.context, level: 'trace' };\n\t\t\tmessage = objOrMsg;\n\t\t} else {\n\t\t\tcontext = { ...this.context, ...objOrMsg, level: 'trace' };\n\t\t\tmessage = msg ?? '';\n\t\t}\n\n\t\tthis.telescope.debug(message, context, this.requestId).catch(() => {});\n\t}) as LogFn;\n\n\t/**\n\t * Creates a child logger with additional context.\n\t * The child logger inherits all context from the parent.\n\t */\n\tchild(obj: object): Logger {\n\t\treturn new TelescopeLogger({\n\t\t\ttelescope: this.telescope,\n\t\t\tlogger: this.logger?.child(obj),\n\t\t\trequestId: this.requestId,\n\t\t\tcontext: { ...this.context, ...obj },\n\t\t});\n\t}\n\n\t/**\n\t * Create a child logger bound to a specific request ID.\n\t * Useful for correlating logs with HTTP requests.\n\t */\n\twithRequestId(requestId: string): TelescopeLogger {\n\t\treturn new TelescopeLogger({\n\t\t\ttelescope: this.telescope,\n\t\t\tlogger: this.logger,\n\t\t\trequestId,\n\t\t\tcontext: this.context,\n\t\t});\n\t}\n}\n\n/**\n * Create a logger that sends logs to Telescope.\n * Convenience function for creating a TelescopeLogger.\n *\n * @example\n * ```typescript\n * import { createTelescopeLogger } from '@geekmidas/telescope/logger/console';\n * import { ConsoleLogger } from '@geekmidas/logger/console';\n *\n * const telescope = new Telescope({ storage: new InMemoryStorage() });\n * const baseLogger = new ConsoleLogger({ app: 'myApp' });\n *\n * const logger = createTelescopeLogger(telescope, baseLogger);\n * logger.info({ action: 'startup' }, 'Application started');\n * ```\n */\nexport function createTelescopeLogger(\n\ttelescope: Telescope,\n\tlogger?: Logger,\n\tcontext?: Record<string, unknown>,\n): TelescopeLogger {\n\treturn new TelescopeLogger({ telescope, logger, context });\n}\n\nexport type { Telescope };\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAoEA,IAAa,kBAAb,MAAa,gBAAkC;CAC9C;CACA;CACA;CACA;CAEA,YAAY,SAAiC;EAC5C,KAAK,YAAY,QAAQ;EACzB,KAAK,SAAS,QAAQ;EACtB,KAAK,YAAY,QAAQ;EACzB,KAAK,UAAU,QAAQ,WAAW,CAAC;CACpC;CAEA,YAAoB,OAAwB;EAC3C,MAAM,MACL,UACA,KACA,GAAG,SACO;GACV,IAAI;GACJ,IAAI;GAEJ,IAAI,OAAO,aAAa,UAAU;IACjC,UAAU,EAAE,GAAG,KAAK,QAAQ;IAC5B,UAAU;GACX,OAAO;IACN,UAAU;KAAE,GAAG,KAAK;KAAS,GAAG;IAAS;IACzC,UAAU,OAAO;GAClB;GAGA,IAAI,KAAK,QAAQ;IAChB,IAAI,OAAO,aAAa,UACvB,KAAK,OAAO,MAAM,CAAC,QAAQ;SAE3B,KAAK,OAAO,MAAM,CAAC,UAAiB,KAAK,GAAG,IAAI;GAElD;GAGA,KAAK,UAAU,MAAM,CAAC,SAAS,SAAS,KAAK,SAAS,CAAC,CAAC,YAAY,CAAC,CAAC;EACvE;EAEA,OAAO;CACR;CAEA,QAAe,KAAK,YAAY,OAAO;CACvC,OAAc,KAAK,YAAY,MAAM;CACrC,OAAc,KAAK,YAAY,MAAM;CACrC,QAAe,KAAK,YAAY,OAAO;CAGvC,UACC,UACA,KACA,GAAG,SACO;EAEV,IAAI,KAAK,QAAQ;GAChB,IAAI,OAAO,aAAa,UACvB,KAAK,OAAO,MAAM,QAAQ;QAE1B,KAAK,OAAO,MAAM,UAAiB,KAAK,GAAG,IAAI;EAEjD;EAGA,IAAI;EACJ,IAAI;EAEJ,IAAI,OAAO,aAAa,UAAU;GACjC,UAAU;IAAE,GAAG,KAAK;IAAS,OAAO;GAAQ;GAC5C,UAAU;EACX,OAAO;GACN,UAAU;IAAE,GAAG,KAAK;IAAS,GAAG;IAAU,OAAO;GAAQ;GACzD,UAAU,OAAO;EAClB;EAEA,KAAK,UAAU,MAAM,SAAS,SAAS,KAAK,SAAS,CAAC,CAAC,YAAY,CAAC,CAAC;CACtE;CAEA,UACC,UACA,KACA,GAAG,SACO;EAEV,IAAI,KAAK,QAAQ;GAChB,IAAI,OAAO,aAAa,UACvB,KAAK,OAAO,MAAM,QAAQ;QAE1B,KAAK,OAAO,MAAM,UAAiB,KAAK,GAAG,IAAI;EAEjD;EAGA,IAAI;EACJ,IAAI;EAEJ,IAAI,OAAO,aAAa,UAAU;GACjC,UAAU;IAAE,GAAG,KAAK;IAAS,OAAO;GAAQ;GAC5C,UAAU;EACX,OAAO;GACN,UAAU;IAAE,GAAG,KAAK;IAAS,GAAG;IAAU,OAAO;GAAQ;GACzD,UAAU,OAAO;EAClB;EAEA,KAAK,UAAU,MAAM,SAAS,SAAS,KAAK,SAAS,CAAC,CAAC,YAAY,CAAC,CAAC;CACtE;;;;;CAMA,MAAM,KAAqB;EAC1B,OAAO,IAAI,gBAAgB;GAC1B,WAAW,KAAK;GAChB,QAAQ,KAAK,QAAQ,MAAM,GAAG;GAC9B,WAAW,KAAK;GAChB,SAAS;IAAE,GAAG,KAAK;IAAS,GAAG;GAAI;EACpC,CAAC;CACF;;;;;CAMA,cAAc,WAAoC;EACjD,OAAO,IAAI,gBAAgB;GAC1B,WAAW,KAAK;GAChB,QAAQ,KAAK;GACb;GACA,SAAS,KAAK;EACf,CAAC;CACF;AACD;;;;;;;;;;;;;;;;;AAkBA,SAAgB,sBACf,WACA,QACA,SACkB;CAClB,OAAO,IAAI,gBAAgB;EAAE;EAAW;EAAQ;CAAQ,CAAC;AAC1D"}
1
+ {"version":3,"file":"console.mjs","names":["options: TelescopeLoggerOptions","level: LogLevel","objOrMsg: T | string","msg?: string","context: Record<string, unknown>","message: string","objOrMsg: object | string","obj: object","requestId: string","telescope: Telescope","logger?: Logger","context?: Record<string, unknown>"],"sources":["../../src/logger/console.ts"],"sourcesContent":["import type { Telescope } from '../Telescope';\n\n/**\n * Logger interface matching @geekmidas/logger\n */\nexport interface Logger {\n\tdebug: LogFn;\n\tinfo: LogFn;\n\twarn: LogFn;\n\terror: LogFn;\n\tfatal: LogFn;\n\ttrace: LogFn;\n\tchild: (obj: object) => Logger;\n}\n\nexport type LogFn = {\n\t<T extends object>(obj: T, msg?: string, ...args: any[]): void;\n\t(msg: string): void;\n};\n\nexport interface TelescopeLoggerOptions {\n\t/**\n\t * The Telescope instance to send logs to\n\t */\n\ttelescope: Telescope;\n\t/**\n\t * Optional underlying logger to also forward logs to.\n\t * If not provided, logs will only go to Telescope.\n\t */\n\tlogger?: Logger;\n\t/**\n\t * Request ID to associate logs with a specific request.\n\t */\n\trequestId?: string;\n\t/**\n\t * Initial context data to include in all log messages\n\t */\n\tcontext?: Record<string, unknown>;\n}\n\ntype LogLevel = 'debug' | 'info' | 'warn' | 'error';\n\n/**\n * A logger that sends logs to both Telescope and an optional underlying logger.\n * Implements the Logger interface from @geekmidas/logger.\n *\n * @example\n * ```typescript\n * import { Telescope, InMemoryStorage } from '@geekmidas/telescope';\n * import { TelescopeLogger } from '@geekmidas/telescope/logger/console';\n * import { ConsoleLogger } from '@geekmidas/logger/console';\n *\n * const telescope = new Telescope({ storage: new InMemoryStorage() });\n *\n * // With underlying logger (logs to both console and Telescope)\n * const logger = new TelescopeLogger({\n * telescope,\n * logger: new ConsoleLogger({ app: 'myApp' }),\n * });\n *\n * // Without underlying logger (logs only to Telescope)\n * const telescopeOnly = new TelescopeLogger({ telescope });\n *\n * // Usage\n * logger.info({ userId: '123' }, 'User logged in');\n * logger.error({ error: 'Something failed' }, 'Operation failed');\n * ```\n */\nexport class TelescopeLogger implements Logger {\n\tprivate telescope: Telescope;\n\tprivate logger?: Logger;\n\tprivate requestId?: string;\n\tprivate context: Record<string, unknown>;\n\n\tconstructor(options: TelescopeLoggerOptions) {\n\t\tthis.telescope = options.telescope;\n\t\tthis.logger = options.logger;\n\t\tthis.requestId = options.requestId;\n\t\tthis.context = options.context ?? {};\n\t}\n\n\tprivate createLogFn(level: LogLevel): LogFn {\n\t\tconst fn = <T extends object>(\n\t\t\tobjOrMsg: T | string,\n\t\t\tmsg?: string,\n\t\t\t...args: any[]\n\t\t): void => {\n\t\t\tlet context: Record<string, unknown>;\n\t\t\tlet message: string;\n\n\t\t\tif (typeof objOrMsg === 'string') {\n\t\t\t\tcontext = { ...this.context };\n\t\t\t\tmessage = objOrMsg;\n\t\t\t} else {\n\t\t\t\tcontext = { ...this.context, ...objOrMsg };\n\t\t\t\tmessage = msg ?? '';\n\t\t\t}\n\n\t\t\t// Forward to underlying logger if present\n\t\t\tif (this.logger) {\n\t\t\t\tif (typeof objOrMsg === 'string') {\n\t\t\t\t\tthis.logger[level](objOrMsg);\n\t\t\t\t} else {\n\t\t\t\t\tthis.logger[level](objOrMsg as any, msg, ...args);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Send to Telescope (fire and forget)\n\t\t\tthis.telescope[level](message, context, this.requestId).catch(() => {});\n\t\t};\n\n\t\treturn fn as LogFn;\n\t}\n\n\tdebug: LogFn = this.createLogFn('debug');\n\tinfo: LogFn = this.createLogFn('info');\n\twarn: LogFn = this.createLogFn('warn');\n\terror: LogFn = this.createLogFn('error');\n\n\t// Map fatal and trace to error and debug for Telescope\n\tfatal: LogFn = ((\n\t\tobjOrMsg: object | string,\n\t\tmsg?: string,\n\t\t...args: any[]\n\t): void => {\n\t\t// Forward to underlying logger if present\n\t\tif (this.logger) {\n\t\t\tif (typeof objOrMsg === 'string') {\n\t\t\t\tthis.logger.fatal(objOrMsg);\n\t\t\t} else {\n\t\t\t\tthis.logger.fatal(objOrMsg as any, msg, ...args);\n\t\t\t}\n\t\t}\n\n\t\t// Send to Telescope as error level\n\t\tlet context: Record<string, unknown>;\n\t\tlet message: string;\n\n\t\tif (typeof objOrMsg === 'string') {\n\t\t\tcontext = { ...this.context, level: 'fatal' };\n\t\t\tmessage = objOrMsg;\n\t\t} else {\n\t\t\tcontext = { ...this.context, ...objOrMsg, level: 'fatal' };\n\t\t\tmessage = msg ?? '';\n\t\t}\n\n\t\tthis.telescope.error(message, context, this.requestId).catch(() => {});\n\t}) as LogFn;\n\n\ttrace: LogFn = ((\n\t\tobjOrMsg: object | string,\n\t\tmsg?: string,\n\t\t...args: any[]\n\t): void => {\n\t\t// Forward to underlying logger if present\n\t\tif (this.logger) {\n\t\t\tif (typeof objOrMsg === 'string') {\n\t\t\t\tthis.logger.trace(objOrMsg);\n\t\t\t} else {\n\t\t\t\tthis.logger.trace(objOrMsg as any, msg, ...args);\n\t\t\t}\n\t\t}\n\n\t\t// Send to Telescope as debug level\n\t\tlet context: Record<string, unknown>;\n\t\tlet message: string;\n\n\t\tif (typeof objOrMsg === 'string') {\n\t\t\tcontext = { ...this.context, level: 'trace' };\n\t\t\tmessage = objOrMsg;\n\t\t} else {\n\t\t\tcontext = { ...this.context, ...objOrMsg, level: 'trace' };\n\t\t\tmessage = msg ?? '';\n\t\t}\n\n\t\tthis.telescope.debug(message, context, this.requestId).catch(() => {});\n\t}) as LogFn;\n\n\t/**\n\t * Creates a child logger with additional context.\n\t * The child logger inherits all context from the parent.\n\t */\n\tchild(obj: object): Logger {\n\t\treturn new TelescopeLogger({\n\t\t\ttelescope: this.telescope,\n\t\t\tlogger: this.logger?.child(obj),\n\t\t\trequestId: this.requestId,\n\t\t\tcontext: { ...this.context, ...obj },\n\t\t});\n\t}\n\n\t/**\n\t * Create a child logger bound to a specific request ID.\n\t * Useful for correlating logs with HTTP requests.\n\t */\n\twithRequestId(requestId: string): TelescopeLogger {\n\t\treturn new TelescopeLogger({\n\t\t\ttelescope: this.telescope,\n\t\t\tlogger: this.logger,\n\t\t\trequestId,\n\t\t\tcontext: this.context,\n\t\t});\n\t}\n}\n\n/**\n * Create a logger that sends logs to Telescope.\n * Convenience function for creating a TelescopeLogger.\n *\n * @example\n * ```typescript\n * import { createTelescopeLogger } from '@geekmidas/telescope/logger/console';\n * import { ConsoleLogger } from '@geekmidas/logger/console';\n *\n * const telescope = new Telescope({ storage: new InMemoryStorage() });\n * const baseLogger = new ConsoleLogger({ app: 'myApp' });\n *\n * const logger = createTelescopeLogger(telescope, baseLogger);\n * logger.info({ action: 'startup' }, 'Application started');\n * ```\n */\nexport function createTelescopeLogger(\n\ttelescope: Telescope,\n\tlogger?: Logger,\n\tcontext?: Record<string, unknown>,\n): TelescopeLogger {\n\treturn new TelescopeLogger({ telescope, logger, context });\n}\n\nexport type { Telescope };\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAoEA,IAAa,kBAAb,MAAa,gBAAkC;CAC9C,AAAQ;CACR,AAAQ;CACR,AAAQ;CACR,AAAQ;CAER,YAAYA,SAAiC;AAC5C,OAAK,YAAY,QAAQ;AACzB,OAAK,SAAS,QAAQ;AACtB,OAAK,YAAY,QAAQ;AACzB,OAAK,UAAU,QAAQ,WAAW,CAAE;CACpC;CAED,AAAQ,YAAYC,OAAwB;EAC3C,MAAM,KAAK,CACVC,UACAC,KACA,GAAG,SACO;GACV,IAAIC;GACJ,IAAIC;AAEJ,cAAW,aAAa,UAAU;AACjC,cAAU,EAAE,GAAG,KAAK,QAAS;AAC7B,cAAU;GACV,OAAM;AACN,cAAU;KAAE,GAAG,KAAK;KAAS,GAAG;IAAU;AAC1C,cAAU,OAAO;GACjB;AAGD,OAAI,KAAK,OACR,YAAW,aAAa,SACvB,MAAK,OAAO,OAAO,SAAS;OAE5B,MAAK,OAAO,OAAO,UAAiB,KAAK,GAAG,KAAK;AAKnD,QAAK,UAAU,OAAO,SAAS,SAAS,KAAK,UAAU,CAAC,MAAM,MAAM,CAAE,EAAC;EACvE;AAED,SAAO;CACP;CAED,QAAe,KAAK,YAAY,QAAQ;CACxC,OAAc,KAAK,YAAY,OAAO;CACtC,OAAc,KAAK,YAAY,OAAO;CACtC,QAAe,KAAK,YAAY,QAAQ;CAGxC,QAAgB,CACfC,UACAH,KACA,GAAG,SACO;AAEV,MAAI,KAAK,OACR,YAAW,aAAa,SACvB,MAAK,OAAO,MAAM,SAAS;MAE3B,MAAK,OAAO,MAAM,UAAiB,KAAK,GAAG,KAAK;EAKlD,IAAIC;EACJ,IAAIC;AAEJ,aAAW,aAAa,UAAU;AACjC,aAAU;IAAE,GAAG,KAAK;IAAS,OAAO;GAAS;AAC7C,aAAU;EACV,OAAM;AACN,aAAU;IAAE,GAAG,KAAK;IAAS,GAAG;IAAU,OAAO;GAAS;AAC1D,aAAU,OAAO;EACjB;AAED,OAAK,UAAU,MAAM,SAAS,SAAS,KAAK,UAAU,CAAC,MAAM,MAAM,CAAE,EAAC;CACtE;CAED,QAAgB,CACfC,UACAH,KACA,GAAG,SACO;AAEV,MAAI,KAAK,OACR,YAAW,aAAa,SACvB,MAAK,OAAO,MAAM,SAAS;MAE3B,MAAK,OAAO,MAAM,UAAiB,KAAK,GAAG,KAAK;EAKlD,IAAIC;EACJ,IAAIC;AAEJ,aAAW,aAAa,UAAU;AACjC,aAAU;IAAE,GAAG,KAAK;IAAS,OAAO;GAAS;AAC7C,aAAU;EACV,OAAM;AACN,aAAU;IAAE,GAAG,KAAK;IAAS,GAAG;IAAU,OAAO;GAAS;AAC1D,aAAU,OAAO;EACjB;AAED,OAAK,UAAU,MAAM,SAAS,SAAS,KAAK,UAAU,CAAC,MAAM,MAAM,CAAE,EAAC;CACtE;;;;;CAMD,MAAME,KAAqB;AAC1B,SAAO,IAAI,gBAAgB;GAC1B,WAAW,KAAK;GAChB,QAAQ,KAAK,QAAQ,MAAM,IAAI;GAC/B,WAAW,KAAK;GAChB,SAAS;IAAE,GAAG,KAAK;IAAS,GAAG;GAAK;EACpC;CACD;;;;;CAMD,cAAcC,WAAoC;AACjD,SAAO,IAAI,gBAAgB;GAC1B,WAAW,KAAK;GAChB,QAAQ,KAAK;GACb;GACA,SAAS,KAAK;EACd;CACD;AACD;;;;;;;;;;;;;;;;;AAkBD,SAAgB,sBACfC,WACAC,QACAC,SACkB;AAClB,QAAO,IAAI,gBAAgB;EAAE;EAAW;EAAQ;CAAS;AACzD"}
@@ -1,7 +1,6 @@
1
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_rolldown_runtime = require("../rolldown-runtime-VH7oDXx4.cjs");
3
- let pino_abstract_transport = require("pino-abstract-transport");
4
- pino_abstract_transport = require_rolldown_runtime.__toESM(pino_abstract_transport, 1);
1
+ const require_chunk = require('../chunk-CUT6urMc.cjs');
2
+ const pino_abstract_transport = require_chunk.__toESM(require("pino-abstract-transport"));
3
+
5
4
  //#region src/logger/pino.ts
6
5
  /**
7
6
  * Map Pino levels to Telescope log levels.
@@ -73,7 +72,7 @@ function createPinoTransport(options) {
73
72
  return (0, pino_abstract_transport.default)(async (source) => {
74
73
  for await (const obj of source) {
75
74
  const data = obj;
76
- const { level, msg, time, pid, hostname, ...context } = data;
75
+ const { level, msg, time, pid, hostname,...context } = data;
77
76
  const telescopeLevel = mapPinoLevel(level);
78
77
  let reqId;
79
78
  if (typeof requestId === "function") reqId = requestId(data);
@@ -120,8 +119,8 @@ function createPinoTransport(options) {
120
119
  * ```
121
120
  */
122
121
  const createPinoDestination = createPinoTransport;
122
+
123
123
  //#endregion
124
124
  exports.createPinoDestination = createPinoDestination;
125
125
  exports.createPinoTransport = createPinoTransport;
126
-
127
126
  //# sourceMappingURL=pino.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"pino.cjs","names":["build"],"sources":["../../src/logger/pino.ts"],"sourcesContent":["import build from 'pino-abstract-transport';\nimport type { Telescope } from '../Telescope';\n\n/**\n * Pino log object structure after parsing\n */\nexport interface PinoLogObject {\n\tlevel: number | string;\n\ttime: number;\n\tpid?: number;\n\thostname?: string;\n\tmsg?: string;\n\t[key: string]: unknown;\n}\n\nexport interface TelescopePinoTransportOptions {\n\t/**\n\t * The Telescope instance to send logs to\n\t */\n\ttelescope: Telescope;\n\t/**\n\t * Request ID to associate logs with a specific request.\n\t * Can be a static string or a function that extracts the ID from log data.\n\t */\n\trequestId?: string | ((data: PinoLogObject) => string | undefined);\n\t/**\n\t * Batch size before flushing to Telescope (default: 100)\n\t */\n\tbatchSize?: number;\n\t/**\n\t * Flush interval in milliseconds (default: 1000ms)\n\t */\n\tflushIntervalMs?: number;\n}\n\ntype TelescopeLogLevel = 'debug' | 'info' | 'warn' | 'error';\n\ninterface LogBatch {\n\tlevel: TelescopeLogLevel;\n\tmessage: string;\n\tcontext: Record<string, unknown>;\n\trequestId?: string;\n}\n\n/**\n * Map Pino levels to Telescope log levels.\n * Handles both numeric levels (default pino) and string levels (custom formatters).\n */\nfunction mapPinoLevel(level: number | string): TelescopeLogLevel {\n\t// Handle string levels (from custom formatters like `level: label => ({ level: label.toUpperCase() })`)\n\tif (typeof level === 'string') {\n\t\tconst normalized = level.toLowerCase();\n\t\tif (normalized === 'trace' || normalized === 'debug') return 'debug';\n\t\tif (normalized === 'info') return 'info';\n\t\tif (normalized === 'warn' || normalized === 'warning') return 'warn';\n\t\treturn 'error'; // error, fatal, or unknown\n\t}\n\n\t// Pino numeric levels: trace=10, debug=20, info=30, warn=40, error=50, fatal=60\n\tif (level <= 20) return 'debug'; // trace, debug\n\tif (level <= 30) return 'info';\n\tif (level <= 40) return 'warn';\n\treturn 'error'; // error, fatal\n}\n\n/**\n * Create a Pino transport that sends logs to Telescope.\n *\n * Uses pino-abstract-transport for proper async iteration and backpressure handling.\n * Logs are batched for performance and flushed either when the batch is full\n * or after the flush interval.\n *\n * @example\n * ```typescript\n * import pino from 'pino';\n * import { Telescope, InMemoryStorage } from '@geekmidas/telescope';\n * import { createPinoTransport } from '@geekmidas/telescope/logger/pino';\n *\n * const telescope = new Telescope({ storage: new InMemoryStorage() });\n *\n * // Use with pino.multistream to log to both stdout and Telescope\n * const logger = pino(\n * { level: 'debug' },\n * pino.multistream([\n * { stream: process.stdout },\n * { stream: createPinoTransport({ telescope }) }\n * ])\n * );\n *\n * logger.info({ userId: '123' }, 'User logged in');\n * ```\n */\nexport function createPinoTransport(options: TelescopePinoTransportOptions) {\n\tconst {\n\t\ttelescope,\n\t\trequestId,\n\t\tbatchSize = 100,\n\t\tflushIntervalMs = 1000,\n\t} = options;\n\n\tconst batch: LogBatch[] = [];\n\tlet flushTimer: ReturnType<typeof setTimeout> | null = null;\n\n\tasync function flush(): Promise<void> {\n\t\tif (batch.length === 0) return;\n\n\t\tconst toFlush = batch.splice(0, batch.length);\n\n\t\t// Use batch insert for better performance\n\t\ttry {\n\t\t\tawait telescope.log(toFlush);\n\t\t} catch {\n\t\t\t// Silently ignore errors to not break logging\n\t\t}\n\t}\n\n\tfunction scheduleFlush(): void {\n\t\tif (flushTimer === null) {\n\t\t\tflushTimer = setTimeout(() => {\n\t\t\t\tflushTimer = null;\n\t\t\t\tflush().catch(() => {\n\t\t\t\t\t// Silently ignore flush errors\n\t\t\t\t});\n\t\t\t}, flushIntervalMs);\n\t\t}\n\t}\n\n\tfunction clearFlushTimer(): void {\n\t\tif (flushTimer !== null) {\n\t\t\tclearTimeout(flushTimer);\n\t\t\tflushTimer = null;\n\t\t}\n\t}\n\n\treturn build(\n\t\tasync (source) => {\n\t\t\tfor await (const obj of source) {\n\t\t\t\tconst data = obj as PinoLogObject;\n\t\t\t\tconst { level, msg, time, pid, hostname, ...context } = data;\n\n\t\t\t\tconst telescopeLevel = mapPinoLevel(level);\n\n\t\t\t\t// Extract request ID\n\t\t\t\tlet reqId: string | undefined;\n\t\t\t\tif (typeof requestId === 'function') {\n\t\t\t\t\treqId = requestId(data);\n\t\t\t\t} else if (typeof requestId === 'string') {\n\t\t\t\t\treqId = requestId;\n\t\t\t\t} else if (typeof context.requestId === 'string') {\n\t\t\t\t\treqId = context.requestId;\n\t\t\t\t\tdelete context.requestId;\n\t\t\t\t}\n\n\t\t\t\tbatch.push({\n\t\t\t\t\tlevel: telescopeLevel,\n\t\t\t\t\tmessage: msg || '',\n\t\t\t\t\tcontext,\n\t\t\t\t\trequestId: reqId,\n\t\t\t\t});\n\n\t\t\t\tif (batch.length >= batchSize) {\n\t\t\t\t\tclearFlushTimer();\n\t\t\t\t\tawait flush();\n\t\t\t\t} else {\n\t\t\t\t\tscheduleFlush();\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t{\n\t\t\tasync close() {\n\t\t\t\tclearFlushTimer();\n\t\t\t\tawait flush();\n\t\t\t},\n\t\t},\n\t);\n}\n\n/**\n * Create a Pino destination that sends logs to Telescope.\n * Alias for createPinoTransport for API compatibility.\n *\n * @example\n * ```typescript\n * import pino from 'pino';\n * import { createPinoDestination } from '@geekmidas/telescope/logger/pino';\n *\n * const telescope = new Telescope({ storage: new InMemoryStorage() });\n *\n * // Use with pino.multistream to log to both stdout and Telescope\n * const logger = pino(\n * { level: 'debug' },\n * pino.multistream([\n * { stream: process.stdout },\n * { stream: createPinoDestination({ telescope }) }\n * ])\n * );\n * ```\n */\nexport const createPinoDestination = createPinoTransport;\n\nexport type { Telescope };\n"],"mappings":";;;;;;;;;AAgDA,SAAS,aAAa,OAA2C;CAEhE,IAAI,OAAO,UAAU,UAAU;EAC9B,MAAM,aAAa,MAAM,YAAY;EACrC,IAAI,eAAe,WAAW,eAAe,SAAS,OAAO;EAC7D,IAAI,eAAe,QAAQ,OAAO;EAClC,IAAI,eAAe,UAAU,eAAe,WAAW,OAAO;EAC9D,OAAO;CACR;CAGA,IAAI,SAAS,IAAI,OAAO;CACxB,IAAI,SAAS,IAAI,OAAO;CACxB,IAAI,SAAS,IAAI,OAAO;CACxB,OAAO;AACR;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6BA,SAAgB,oBAAoB,SAAwC;CAC3E,MAAM,EACL,WACA,WACA,YAAY,KACZ,kBAAkB,QACf;CAEJ,MAAM,QAAoB,CAAC;CAC3B,IAAI,aAAmD;CAEvD,eAAe,QAAuB;EACrC,IAAI,MAAM,WAAW,GAAG;EAExB,MAAM,UAAU,MAAM,OAAO,GAAG,MAAM,MAAM;EAG5C,IAAI;GACH,MAAM,UAAU,IAAI,OAAO;EAC5B,QAAQ,CAER;CACD;CAEA,SAAS,gBAAsB;EAC9B,IAAI,eAAe,MAClB,aAAa,iBAAiB;GAC7B,aAAa;GACb,MAAM,CAAC,CAAC,YAAY,CAEpB,CAAC;EACF,GAAG,eAAe;CAEpB;CAEA,SAAS,kBAAwB;EAChC,IAAI,eAAe,MAAM;GACxB,aAAa,UAAU;GACvB,aAAa;EACd;CACD;CAEA,QAAA,GAAOA,wBAAAA,QAAAA,CACN,OAAO,WAAW;EACjB,WAAW,MAAM,OAAO,QAAQ;GAC/B,MAAM,OAAO;GACb,MAAM,EAAE,OAAO,KAAK,MAAM,KAAK,UAAU,GAAG,YAAY;GAExD,MAAM,iBAAiB,aAAa,KAAK;GAGzC,IAAI;GACJ,IAAI,OAAO,cAAc,YACxB,QAAQ,UAAU,IAAI;QAChB,IAAI,OAAO,cAAc,UAC/B,QAAQ;QACF,IAAI,OAAO,QAAQ,cAAc,UAAU;IACjD,QAAQ,QAAQ;IAChB,OAAO,QAAQ;GAChB;GAEA,MAAM,KAAK;IACV,OAAO;IACP,SAAS,OAAO;IAChB;IACA,WAAW;GACZ,CAAC;GAED,IAAI,MAAM,UAAU,WAAW;IAC9B,gBAAgB;IAChB,MAAM,MAAM;GACb,OACC,cAAc;EAEhB;CACD,GACA,EACC,MAAM,QAAQ;EACb,gBAAgB;EAChB,MAAM,MAAM;CACb,EACD,CACD;AACD;;;;;;;;;;;;;;;;;;;;;;AAuBA,MAAa,wBAAwB"}
1
+ {"version":3,"file":"pino.cjs","names":["level: number | string","options: TelescopePinoTransportOptions","batch: LogBatch[]","flushTimer: ReturnType<typeof setTimeout> | null","reqId: string | undefined"],"sources":["../../src/logger/pino.ts"],"sourcesContent":["import build from 'pino-abstract-transport';\nimport type { Telescope } from '../Telescope';\n\n/**\n * Pino log object structure after parsing\n */\nexport interface PinoLogObject {\n\tlevel: number | string;\n\ttime: number;\n\tpid?: number;\n\thostname?: string;\n\tmsg?: string;\n\t[key: string]: unknown;\n}\n\nexport interface TelescopePinoTransportOptions {\n\t/**\n\t * The Telescope instance to send logs to\n\t */\n\ttelescope: Telescope;\n\t/**\n\t * Request ID to associate logs with a specific request.\n\t * Can be a static string or a function that extracts the ID from log data.\n\t */\n\trequestId?: string | ((data: PinoLogObject) => string | undefined);\n\t/**\n\t * Batch size before flushing to Telescope (default: 100)\n\t */\n\tbatchSize?: number;\n\t/**\n\t * Flush interval in milliseconds (default: 1000ms)\n\t */\n\tflushIntervalMs?: number;\n}\n\ntype TelescopeLogLevel = 'debug' | 'info' | 'warn' | 'error';\n\ninterface LogBatch {\n\tlevel: TelescopeLogLevel;\n\tmessage: string;\n\tcontext: Record<string, unknown>;\n\trequestId?: string;\n}\n\n/**\n * Map Pino levels to Telescope log levels.\n * Handles both numeric levels (default pino) and string levels (custom formatters).\n */\nfunction mapPinoLevel(level: number | string): TelescopeLogLevel {\n\t// Handle string levels (from custom formatters like `level: label => ({ level: label.toUpperCase() })`)\n\tif (typeof level === 'string') {\n\t\tconst normalized = level.toLowerCase();\n\t\tif (normalized === 'trace' || normalized === 'debug') return 'debug';\n\t\tif (normalized === 'info') return 'info';\n\t\tif (normalized === 'warn' || normalized === 'warning') return 'warn';\n\t\treturn 'error'; // error, fatal, or unknown\n\t}\n\n\t// Pino numeric levels: trace=10, debug=20, info=30, warn=40, error=50, fatal=60\n\tif (level <= 20) return 'debug'; // trace, debug\n\tif (level <= 30) return 'info';\n\tif (level <= 40) return 'warn';\n\treturn 'error'; // error, fatal\n}\n\n/**\n * Create a Pino transport that sends logs to Telescope.\n *\n * Uses pino-abstract-transport for proper async iteration and backpressure handling.\n * Logs are batched for performance and flushed either when the batch is full\n * or after the flush interval.\n *\n * @example\n * ```typescript\n * import pino from 'pino';\n * import { Telescope, InMemoryStorage } from '@geekmidas/telescope';\n * import { createPinoTransport } from '@geekmidas/telescope/logger/pino';\n *\n * const telescope = new Telescope({ storage: new InMemoryStorage() });\n *\n * // Use with pino.multistream to log to both stdout and Telescope\n * const logger = pino(\n * { level: 'debug' },\n * pino.multistream([\n * { stream: process.stdout },\n * { stream: createPinoTransport({ telescope }) }\n * ])\n * );\n *\n * logger.info({ userId: '123' }, 'User logged in');\n * ```\n */\nexport function createPinoTransport(options: TelescopePinoTransportOptions) {\n\tconst {\n\t\ttelescope,\n\t\trequestId,\n\t\tbatchSize = 100,\n\t\tflushIntervalMs = 1000,\n\t} = options;\n\n\tconst batch: LogBatch[] = [];\n\tlet flushTimer: ReturnType<typeof setTimeout> | null = null;\n\n\tasync function flush(): Promise<void> {\n\t\tif (batch.length === 0) return;\n\n\t\tconst toFlush = batch.splice(0, batch.length);\n\n\t\t// Use batch insert for better performance\n\t\ttry {\n\t\t\tawait telescope.log(toFlush);\n\t\t} catch {\n\t\t\t// Silently ignore errors to not break logging\n\t\t}\n\t}\n\n\tfunction scheduleFlush(): void {\n\t\tif (flushTimer === null) {\n\t\t\tflushTimer = setTimeout(() => {\n\t\t\t\tflushTimer = null;\n\t\t\t\tflush().catch(() => {\n\t\t\t\t\t// Silently ignore flush errors\n\t\t\t\t});\n\t\t\t}, flushIntervalMs);\n\t\t}\n\t}\n\n\tfunction clearFlushTimer(): void {\n\t\tif (flushTimer !== null) {\n\t\t\tclearTimeout(flushTimer);\n\t\t\tflushTimer = null;\n\t\t}\n\t}\n\n\treturn build(\n\t\tasync (source) => {\n\t\t\tfor await (const obj of source) {\n\t\t\t\tconst data = obj as PinoLogObject;\n\t\t\t\tconst { level, msg, time, pid, hostname, ...context } = data;\n\n\t\t\t\tconst telescopeLevel = mapPinoLevel(level);\n\n\t\t\t\t// Extract request ID\n\t\t\t\tlet reqId: string | undefined;\n\t\t\t\tif (typeof requestId === 'function') {\n\t\t\t\t\treqId = requestId(data);\n\t\t\t\t} else if (typeof requestId === 'string') {\n\t\t\t\t\treqId = requestId;\n\t\t\t\t} else if (typeof context.requestId === 'string') {\n\t\t\t\t\treqId = context.requestId;\n\t\t\t\t\tdelete context.requestId;\n\t\t\t\t}\n\n\t\t\t\tbatch.push({\n\t\t\t\t\tlevel: telescopeLevel,\n\t\t\t\t\tmessage: msg || '',\n\t\t\t\t\tcontext,\n\t\t\t\t\trequestId: reqId,\n\t\t\t\t});\n\n\t\t\t\tif (batch.length >= batchSize) {\n\t\t\t\t\tclearFlushTimer();\n\t\t\t\t\tawait flush();\n\t\t\t\t} else {\n\t\t\t\t\tscheduleFlush();\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t{\n\t\t\tasync close() {\n\t\t\t\tclearFlushTimer();\n\t\t\t\tawait flush();\n\t\t\t},\n\t\t},\n\t);\n}\n\n/**\n * Create a Pino destination that sends logs to Telescope.\n * Alias for createPinoTransport for API compatibility.\n *\n * @example\n * ```typescript\n * import pino from 'pino';\n * import { createPinoDestination } from '@geekmidas/telescope/logger/pino';\n *\n * const telescope = new Telescope({ storage: new InMemoryStorage() });\n *\n * // Use with pino.multistream to log to both stdout and Telescope\n * const logger = pino(\n * { level: 'debug' },\n * pino.multistream([\n * { stream: process.stdout },\n * { stream: createPinoDestination({ telescope }) }\n * ])\n * );\n * ```\n */\nexport const createPinoDestination = createPinoTransport;\n\nexport type { Telescope };\n"],"mappings":";;;;;;;;AAgDA,SAAS,aAAaA,OAA2C;AAEhE,YAAW,UAAU,UAAU;EAC9B,MAAM,aAAa,MAAM,aAAa;AACtC,MAAI,eAAe,WAAW,eAAe,QAAS,QAAO;AAC7D,MAAI,eAAe,OAAQ,QAAO;AAClC,MAAI,eAAe,UAAU,eAAe,UAAW,QAAO;AAC9D,SAAO;CACP;AAGD,KAAI,SAAS,GAAI,QAAO;AACxB,KAAI,SAAS,GAAI,QAAO;AACxB,KAAI,SAAS,GAAI,QAAO;AACxB,QAAO;AACP;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6BD,SAAgB,oBAAoBC,SAAwC;CAC3E,MAAM,EACL,WACA,WACA,YAAY,KACZ,kBAAkB,KAClB,GAAG;CAEJ,MAAMC,QAAoB,CAAE;CAC5B,IAAIC,aAAmD;CAEvD,eAAe,QAAuB;AACrC,MAAI,MAAM,WAAW,EAAG;EAExB,MAAM,UAAU,MAAM,OAAO,GAAG,MAAM,OAAO;AAG7C,MAAI;AACH,SAAM,UAAU,IAAI,QAAQ;EAC5B,QAAO,CAEP;CACD;CAED,SAAS,gBAAsB;AAC9B,MAAI,eAAe,KAClB,cAAa,WAAW,MAAM;AAC7B,gBAAa;AACb,UAAO,CAAC,MAAM,MAAM,CAEnB,EAAC;EACF,GAAE,gBAAgB;CAEpB;CAED,SAAS,kBAAwB;AAChC,MAAI,eAAe,MAAM;AACxB,gBAAa,WAAW;AACxB,gBAAa;EACb;CACD;AAED,QAAO,qCACN,OAAO,WAAW;AACjB,aAAW,MAAM,OAAO,QAAQ;GAC/B,MAAM,OAAO;GACb,MAAM,EAAE,OAAO,KAAK,MAAM,KAAK,SAAU,GAAG,SAAS,GAAG;GAExD,MAAM,iBAAiB,aAAa,MAAM;GAG1C,IAAIC;AACJ,cAAW,cAAc,WACxB,SAAQ,UAAU,KAAK;mBACN,cAAc,SAC/B,SAAQ;mBACS,QAAQ,cAAc,UAAU;AACjD,YAAQ,QAAQ;AAChB,WAAO,QAAQ;GACf;AAED,SAAM,KAAK;IACV,OAAO;IACP,SAAS,OAAO;IAChB;IACA,WAAW;GACX,EAAC;AAEF,OAAI,MAAM,UAAU,WAAW;AAC9B,qBAAiB;AACjB,UAAM,OAAO;GACb,MACA,gBAAe;EAEhB;CACD,GACD,EACC,MAAM,QAAQ;AACb,mBAAiB;AACjB,QAAM,OAAO;CACb,EACD,EACD;AACD;;;;;;;;;;;;;;;;;;;;;;AAuBD,MAAa,wBAAwB"}
@@ -1,10 +1,14 @@
1
- import { t as Telescope } from "../Telescope-DeqSHfuB.cjs";
1
+ import "../types-l7Rlb5Mg.cjs";
2
+ import "../MetricsAggregator-4SqelGcG.cjs";
3
+ import { Telescope } from "../Telescope-D4nmwDRA.cjs";
4
+ import * as stream1 from "stream";
2
5
  import build from "pino-abstract-transport";
6
+
3
7
  //#region src/logger/pino.d.ts
4
8
  /**
5
9
  * Pino log object structure after parsing
6
10
  */
7
- export interface PinoLogObject {
11
+ interface PinoLogObject {
8
12
  level: number | string;
9
13
  time: number;
10
14
  pid?: number;
@@ -12,7 +16,7 @@ export interface PinoLogObject {
12
16
  msg?: string;
13
17
  [key: string]: unknown;
14
18
  }
15
- export interface TelescopePinoTransportOptions {
19
+ interface TelescopePinoTransportOptions {
16
20
  /**
17
21
  * The Telescope instance to send logs to
18
22
  */
@@ -58,7 +62,7 @@ export interface TelescopePinoTransportOptions {
58
62
  * logger.info({ userId: '123' }, 'User logged in');
59
63
  * ```
60
64
  */
61
- export declare function createPinoTransport(options: TelescopePinoTransportOptions): import("stream").Transform & build.OnUnknown;
65
+ declare function createPinoTransport(options: TelescopePinoTransportOptions): stream1.Transform & build.OnUnknown;
62
66
  /**
63
67
  * Create a Pino destination that sends logs to Telescope.
64
68
  * Alias for createPinoTransport for API compatibility.
@@ -80,7 +84,7 @@ export declare function createPinoTransport(options: TelescopePinoTransportOptio
80
84
  * );
81
85
  * ```
82
86
  */
83
- export declare const createPinoDestination: typeof createPinoTransport;
87
+ declare const createPinoDestination: typeof createPinoTransport;
84
88
  //#endregion
85
- export type { Telescope };
89
+ export { PinoLogObject, Telescope, TelescopePinoTransportOptions, createPinoDestination, createPinoTransport };
86
90
  //# sourceMappingURL=pino.d.cts.map
@@ -1 +1 @@
1
- {"version":3,"file":"pino.d.cts","names":[],"sources":["../../src/logger/pino.ts"],"mappings":";;;;;;iBAMiB;EAChB;EACA;EACA;EACA;EACA;GACC;;iBAGe;;;;EAIhB,WAAW;;;;;EAKX,uBAAuB,MAAM;;;;EAI7B;;;;EAIA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wBA4De,oBAAoB,SAAS,iDAA6B,YAAA,MAAA;;;;;;;;;;;;;;;;;;;;;;qBA0G7D,8BAAqB"}
1
+ {"version":3,"file":"pino.d.cts","names":[],"sources":["../../src/logger/pino.ts"],"sourcesContent":[],"mappings":";;;;;;;;;;UAMiB,aAAA;;EAAA,IAAA,EAAA,MAAA;EASA,GAAA,CAAA,EAAA,MAAA;EAA6B,QAAA,CAAA,EAAA,MAAA;EAAA,GAIlC,CAAA,EAAA,MAAA;EAAS,CAAA,GAKS,EAAA,MAAA,CAAA,EAAA,OAAA;AAAa;AAoE3B,UA7EC,6BAAA,CA6EkB;EAAA;;;EAAuC,SAAA,EAzE9D,SAyE8D;EAAA;AA0G1E;;;+BA9K8B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAoEd,mBAAA,UAA6B,gCAA6B,OAAA,CAAA,SAAA,GAAA,KAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;cA0G7D,8BAAqB"}
@@ -1,10 +1,14 @@
1
- import { t as Telescope } from "../Telescope-BVfDvVvY.mjs";
1
+ import "../types-B1EIa_cQ.mjs";
2
+ import "../MetricsAggregator-DZrW8ls6.mjs";
3
+ import { Telescope } from "../Telescope-Dl6VSfxd.mjs";
2
4
  import build from "pino-abstract-transport";
5
+ import * as stream2 from "stream";
6
+
3
7
  //#region src/logger/pino.d.ts
4
8
  /**
5
9
  * Pino log object structure after parsing
6
10
  */
7
- export interface PinoLogObject {
11
+ interface PinoLogObject {
8
12
  level: number | string;
9
13
  time: number;
10
14
  pid?: number;
@@ -12,7 +16,7 @@ export interface PinoLogObject {
12
16
  msg?: string;
13
17
  [key: string]: unknown;
14
18
  }
15
- export interface TelescopePinoTransportOptions {
19
+ interface TelescopePinoTransportOptions {
16
20
  /**
17
21
  * The Telescope instance to send logs to
18
22
  */
@@ -58,7 +62,7 @@ export interface TelescopePinoTransportOptions {
58
62
  * logger.info({ userId: '123' }, 'User logged in');
59
63
  * ```
60
64
  */
61
- export declare function createPinoTransport(options: TelescopePinoTransportOptions): import("stream").Transform & build.OnUnknown;
65
+ declare function createPinoTransport(options: TelescopePinoTransportOptions): stream2.Transform & build.OnUnknown;
62
66
  /**
63
67
  * Create a Pino destination that sends logs to Telescope.
64
68
  * Alias for createPinoTransport for API compatibility.
@@ -80,7 +84,7 @@ export declare function createPinoTransport(options: TelescopePinoTransportOptio
80
84
  * );
81
85
  * ```
82
86
  */
83
- export declare const createPinoDestination: typeof createPinoTransport;
87
+ declare const createPinoDestination: typeof createPinoTransport;
84
88
  //#endregion
85
- export type { Telescope };
89
+ export { PinoLogObject, Telescope, TelescopePinoTransportOptions, createPinoDestination, createPinoTransport };
86
90
  //# sourceMappingURL=pino.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"pino.d.mts","names":[],"sources":["../../src/logger/pino.ts"],"mappings":";;;;;;iBAMiB;EAChB;EACA;EACA;EACA;EACA;GACC;;iBAGe;;;;EAIhB,WAAW;;;;;EAKX,uBAAuB,MAAM;;;;EAI7B;;;;EAIA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wBA4De,oBAAoB,SAAS,iDAA6B,YAAA,MAAA;;;;;;;;;;;;;;;;;;;;;;qBA0G7D,8BAAqB"}
1
+ {"version":3,"file":"pino.d.mts","names":[],"sources":["../../src/logger/pino.ts"],"sourcesContent":[],"mappings":";;;;;;;;;;UAMiB,aAAA;;EAAA,IAAA,EAAA,MAAA;EASA,GAAA,CAAA,EAAA,MAAA;EAA6B,QAAA,CAAA,EAAA,MAAA;EAAA,GAIlC,CAAA,EAAA,MAAA;EAAS,CAAA,GAKS,EAAA,MAAA,CAAA,EAAA,OAAA;AAAa;AAoE3B,UA7EC,6BAAA,CA6EkB;EAAA;;;EAAuC,SAAA,EAzE9D,SAyE8D;EAAA;AA0G1E;;;+BA9K8B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAoEd,mBAAA,UAA6B,gCAA6B,OAAA,CAAA,SAAA,GAAA,KAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;cA0G7D,8BAAqB"}
@@ -1,4 +1,5 @@
1
1
  import build from "pino-abstract-transport";
2
+
2
3
  //#region src/logger/pino.ts
3
4
  /**
4
5
  * Map Pino levels to Telescope log levels.
@@ -70,7 +71,7 @@ function createPinoTransport(options) {
70
71
  return build(async (source) => {
71
72
  for await (const obj of source) {
72
73
  const data = obj;
73
- const { level, msg, time, pid, hostname, ...context } = data;
74
+ const { level, msg, time, pid, hostname,...context } = data;
74
75
  const telescopeLevel = mapPinoLevel(level);
75
76
  let reqId;
76
77
  if (typeof requestId === "function") reqId = requestId(data);
@@ -117,7 +118,7 @@ function createPinoTransport(options) {
117
118
  * ```
118
119
  */
119
120
  const createPinoDestination = createPinoTransport;
121
+
120
122
  //#endregion
121
123
  export { createPinoDestination, createPinoTransport };
122
-
123
124
  //# sourceMappingURL=pino.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"pino.mjs","names":[],"sources":["../../src/logger/pino.ts"],"sourcesContent":["import build from 'pino-abstract-transport';\nimport type { Telescope } from '../Telescope';\n\n/**\n * Pino log object structure after parsing\n */\nexport interface PinoLogObject {\n\tlevel: number | string;\n\ttime: number;\n\tpid?: number;\n\thostname?: string;\n\tmsg?: string;\n\t[key: string]: unknown;\n}\n\nexport interface TelescopePinoTransportOptions {\n\t/**\n\t * The Telescope instance to send logs to\n\t */\n\ttelescope: Telescope;\n\t/**\n\t * Request ID to associate logs with a specific request.\n\t * Can be a static string or a function that extracts the ID from log data.\n\t */\n\trequestId?: string | ((data: PinoLogObject) => string | undefined);\n\t/**\n\t * Batch size before flushing to Telescope (default: 100)\n\t */\n\tbatchSize?: number;\n\t/**\n\t * Flush interval in milliseconds (default: 1000ms)\n\t */\n\tflushIntervalMs?: number;\n}\n\ntype TelescopeLogLevel = 'debug' | 'info' | 'warn' | 'error';\n\ninterface LogBatch {\n\tlevel: TelescopeLogLevel;\n\tmessage: string;\n\tcontext: Record<string, unknown>;\n\trequestId?: string;\n}\n\n/**\n * Map Pino levels to Telescope log levels.\n * Handles both numeric levels (default pino) and string levels (custom formatters).\n */\nfunction mapPinoLevel(level: number | string): TelescopeLogLevel {\n\t// Handle string levels (from custom formatters like `level: label => ({ level: label.toUpperCase() })`)\n\tif (typeof level === 'string') {\n\t\tconst normalized = level.toLowerCase();\n\t\tif (normalized === 'trace' || normalized === 'debug') return 'debug';\n\t\tif (normalized === 'info') return 'info';\n\t\tif (normalized === 'warn' || normalized === 'warning') return 'warn';\n\t\treturn 'error'; // error, fatal, or unknown\n\t}\n\n\t// Pino numeric levels: trace=10, debug=20, info=30, warn=40, error=50, fatal=60\n\tif (level <= 20) return 'debug'; // trace, debug\n\tif (level <= 30) return 'info';\n\tif (level <= 40) return 'warn';\n\treturn 'error'; // error, fatal\n}\n\n/**\n * Create a Pino transport that sends logs to Telescope.\n *\n * Uses pino-abstract-transport for proper async iteration and backpressure handling.\n * Logs are batched for performance and flushed either when the batch is full\n * or after the flush interval.\n *\n * @example\n * ```typescript\n * import pino from 'pino';\n * import { Telescope, InMemoryStorage } from '@geekmidas/telescope';\n * import { createPinoTransport } from '@geekmidas/telescope/logger/pino';\n *\n * const telescope = new Telescope({ storage: new InMemoryStorage() });\n *\n * // Use with pino.multistream to log to both stdout and Telescope\n * const logger = pino(\n * { level: 'debug' },\n * pino.multistream([\n * { stream: process.stdout },\n * { stream: createPinoTransport({ telescope }) }\n * ])\n * );\n *\n * logger.info({ userId: '123' }, 'User logged in');\n * ```\n */\nexport function createPinoTransport(options: TelescopePinoTransportOptions) {\n\tconst {\n\t\ttelescope,\n\t\trequestId,\n\t\tbatchSize = 100,\n\t\tflushIntervalMs = 1000,\n\t} = options;\n\n\tconst batch: LogBatch[] = [];\n\tlet flushTimer: ReturnType<typeof setTimeout> | null = null;\n\n\tasync function flush(): Promise<void> {\n\t\tif (batch.length === 0) return;\n\n\t\tconst toFlush = batch.splice(0, batch.length);\n\n\t\t// Use batch insert for better performance\n\t\ttry {\n\t\t\tawait telescope.log(toFlush);\n\t\t} catch {\n\t\t\t// Silently ignore errors to not break logging\n\t\t}\n\t}\n\n\tfunction scheduleFlush(): void {\n\t\tif (flushTimer === null) {\n\t\t\tflushTimer = setTimeout(() => {\n\t\t\t\tflushTimer = null;\n\t\t\t\tflush().catch(() => {\n\t\t\t\t\t// Silently ignore flush errors\n\t\t\t\t});\n\t\t\t}, flushIntervalMs);\n\t\t}\n\t}\n\n\tfunction clearFlushTimer(): void {\n\t\tif (flushTimer !== null) {\n\t\t\tclearTimeout(flushTimer);\n\t\t\tflushTimer = null;\n\t\t}\n\t}\n\n\treturn build(\n\t\tasync (source) => {\n\t\t\tfor await (const obj of source) {\n\t\t\t\tconst data = obj as PinoLogObject;\n\t\t\t\tconst { level, msg, time, pid, hostname, ...context } = data;\n\n\t\t\t\tconst telescopeLevel = mapPinoLevel(level);\n\n\t\t\t\t// Extract request ID\n\t\t\t\tlet reqId: string | undefined;\n\t\t\t\tif (typeof requestId === 'function') {\n\t\t\t\t\treqId = requestId(data);\n\t\t\t\t} else if (typeof requestId === 'string') {\n\t\t\t\t\treqId = requestId;\n\t\t\t\t} else if (typeof context.requestId === 'string') {\n\t\t\t\t\treqId = context.requestId;\n\t\t\t\t\tdelete context.requestId;\n\t\t\t\t}\n\n\t\t\t\tbatch.push({\n\t\t\t\t\tlevel: telescopeLevel,\n\t\t\t\t\tmessage: msg || '',\n\t\t\t\t\tcontext,\n\t\t\t\t\trequestId: reqId,\n\t\t\t\t});\n\n\t\t\t\tif (batch.length >= batchSize) {\n\t\t\t\t\tclearFlushTimer();\n\t\t\t\t\tawait flush();\n\t\t\t\t} else {\n\t\t\t\t\tscheduleFlush();\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t{\n\t\t\tasync close() {\n\t\t\t\tclearFlushTimer();\n\t\t\t\tawait flush();\n\t\t\t},\n\t\t},\n\t);\n}\n\n/**\n * Create a Pino destination that sends logs to Telescope.\n * Alias for createPinoTransport for API compatibility.\n *\n * @example\n * ```typescript\n * import pino from 'pino';\n * import { createPinoDestination } from '@geekmidas/telescope/logger/pino';\n *\n * const telescope = new Telescope({ storage: new InMemoryStorage() });\n *\n * // Use with pino.multistream to log to both stdout and Telescope\n * const logger = pino(\n * { level: 'debug' },\n * pino.multistream([\n * { stream: process.stdout },\n * { stream: createPinoDestination({ telescope }) }\n * ])\n * );\n * ```\n */\nexport const createPinoDestination = createPinoTransport;\n\nexport type { Telescope };\n"],"mappings":";;;;;;AAgDA,SAAS,aAAa,OAA2C;CAEhE,IAAI,OAAO,UAAU,UAAU;EAC9B,MAAM,aAAa,MAAM,YAAY;EACrC,IAAI,eAAe,WAAW,eAAe,SAAS,OAAO;EAC7D,IAAI,eAAe,QAAQ,OAAO;EAClC,IAAI,eAAe,UAAU,eAAe,WAAW,OAAO;EAC9D,OAAO;CACR;CAGA,IAAI,SAAS,IAAI,OAAO;CACxB,IAAI,SAAS,IAAI,OAAO;CACxB,IAAI,SAAS,IAAI,OAAO;CACxB,OAAO;AACR;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6BA,SAAgB,oBAAoB,SAAwC;CAC3E,MAAM,EACL,WACA,WACA,YAAY,KACZ,kBAAkB,QACf;CAEJ,MAAM,QAAoB,CAAC;CAC3B,IAAI,aAAmD;CAEvD,eAAe,QAAuB;EACrC,IAAI,MAAM,WAAW,GAAG;EAExB,MAAM,UAAU,MAAM,OAAO,GAAG,MAAM,MAAM;EAG5C,IAAI;GACH,MAAM,UAAU,IAAI,OAAO;EAC5B,QAAQ,CAER;CACD;CAEA,SAAS,gBAAsB;EAC9B,IAAI,eAAe,MAClB,aAAa,iBAAiB;GAC7B,aAAa;GACb,MAAM,CAAC,CAAC,YAAY,CAEpB,CAAC;EACF,GAAG,eAAe;CAEpB;CAEA,SAAS,kBAAwB;EAChC,IAAI,eAAe,MAAM;GACxB,aAAa,UAAU;GACvB,aAAa;EACd;CACD;CAEA,OAAO,MACN,OAAO,WAAW;EACjB,WAAW,MAAM,OAAO,QAAQ;GAC/B,MAAM,OAAO;GACb,MAAM,EAAE,OAAO,KAAK,MAAM,KAAK,UAAU,GAAG,YAAY;GAExD,MAAM,iBAAiB,aAAa,KAAK;GAGzC,IAAI;GACJ,IAAI,OAAO,cAAc,YACxB,QAAQ,UAAU,IAAI;QAChB,IAAI,OAAO,cAAc,UAC/B,QAAQ;QACF,IAAI,OAAO,QAAQ,cAAc,UAAU;IACjD,QAAQ,QAAQ;IAChB,OAAO,QAAQ;GAChB;GAEA,MAAM,KAAK;IACV,OAAO;IACP,SAAS,OAAO;IAChB;IACA,WAAW;GACZ,CAAC;GAED,IAAI,MAAM,UAAU,WAAW;IAC9B,gBAAgB;IAChB,MAAM,MAAM;GACb,OACC,cAAc;EAEhB;CACD,GACA,EACC,MAAM,QAAQ;EACb,gBAAgB;EAChB,MAAM,MAAM;CACb,EACD,CACD;AACD;;;;;;;;;;;;;;;;;;;;;;AAuBA,MAAa,wBAAwB"}
1
+ {"version":3,"file":"pino.mjs","names":["level: number | string","options: TelescopePinoTransportOptions","batch: LogBatch[]","flushTimer: ReturnType<typeof setTimeout> | null","reqId: string | undefined"],"sources":["../../src/logger/pino.ts"],"sourcesContent":["import build from 'pino-abstract-transport';\nimport type { Telescope } from '../Telescope';\n\n/**\n * Pino log object structure after parsing\n */\nexport interface PinoLogObject {\n\tlevel: number | string;\n\ttime: number;\n\tpid?: number;\n\thostname?: string;\n\tmsg?: string;\n\t[key: string]: unknown;\n}\n\nexport interface TelescopePinoTransportOptions {\n\t/**\n\t * The Telescope instance to send logs to\n\t */\n\ttelescope: Telescope;\n\t/**\n\t * Request ID to associate logs with a specific request.\n\t * Can be a static string or a function that extracts the ID from log data.\n\t */\n\trequestId?: string | ((data: PinoLogObject) => string | undefined);\n\t/**\n\t * Batch size before flushing to Telescope (default: 100)\n\t */\n\tbatchSize?: number;\n\t/**\n\t * Flush interval in milliseconds (default: 1000ms)\n\t */\n\tflushIntervalMs?: number;\n}\n\ntype TelescopeLogLevel = 'debug' | 'info' | 'warn' | 'error';\n\ninterface LogBatch {\n\tlevel: TelescopeLogLevel;\n\tmessage: string;\n\tcontext: Record<string, unknown>;\n\trequestId?: string;\n}\n\n/**\n * Map Pino levels to Telescope log levels.\n * Handles both numeric levels (default pino) and string levels (custom formatters).\n */\nfunction mapPinoLevel(level: number | string): TelescopeLogLevel {\n\t// Handle string levels (from custom formatters like `level: label => ({ level: label.toUpperCase() })`)\n\tif (typeof level === 'string') {\n\t\tconst normalized = level.toLowerCase();\n\t\tif (normalized === 'trace' || normalized === 'debug') return 'debug';\n\t\tif (normalized === 'info') return 'info';\n\t\tif (normalized === 'warn' || normalized === 'warning') return 'warn';\n\t\treturn 'error'; // error, fatal, or unknown\n\t}\n\n\t// Pino numeric levels: trace=10, debug=20, info=30, warn=40, error=50, fatal=60\n\tif (level <= 20) return 'debug'; // trace, debug\n\tif (level <= 30) return 'info';\n\tif (level <= 40) return 'warn';\n\treturn 'error'; // error, fatal\n}\n\n/**\n * Create a Pino transport that sends logs to Telescope.\n *\n * Uses pino-abstract-transport for proper async iteration and backpressure handling.\n * Logs are batched for performance and flushed either when the batch is full\n * or after the flush interval.\n *\n * @example\n * ```typescript\n * import pino from 'pino';\n * import { Telescope, InMemoryStorage } from '@geekmidas/telescope';\n * import { createPinoTransport } from '@geekmidas/telescope/logger/pino';\n *\n * const telescope = new Telescope({ storage: new InMemoryStorage() });\n *\n * // Use with pino.multistream to log to both stdout and Telescope\n * const logger = pino(\n * { level: 'debug' },\n * pino.multistream([\n * { stream: process.stdout },\n * { stream: createPinoTransport({ telescope }) }\n * ])\n * );\n *\n * logger.info({ userId: '123' }, 'User logged in');\n * ```\n */\nexport function createPinoTransport(options: TelescopePinoTransportOptions) {\n\tconst {\n\t\ttelescope,\n\t\trequestId,\n\t\tbatchSize = 100,\n\t\tflushIntervalMs = 1000,\n\t} = options;\n\n\tconst batch: LogBatch[] = [];\n\tlet flushTimer: ReturnType<typeof setTimeout> | null = null;\n\n\tasync function flush(): Promise<void> {\n\t\tif (batch.length === 0) return;\n\n\t\tconst toFlush = batch.splice(0, batch.length);\n\n\t\t// Use batch insert for better performance\n\t\ttry {\n\t\t\tawait telescope.log(toFlush);\n\t\t} catch {\n\t\t\t// Silently ignore errors to not break logging\n\t\t}\n\t}\n\n\tfunction scheduleFlush(): void {\n\t\tif (flushTimer === null) {\n\t\t\tflushTimer = setTimeout(() => {\n\t\t\t\tflushTimer = null;\n\t\t\t\tflush().catch(() => {\n\t\t\t\t\t// Silently ignore flush errors\n\t\t\t\t});\n\t\t\t}, flushIntervalMs);\n\t\t}\n\t}\n\n\tfunction clearFlushTimer(): void {\n\t\tif (flushTimer !== null) {\n\t\t\tclearTimeout(flushTimer);\n\t\t\tflushTimer = null;\n\t\t}\n\t}\n\n\treturn build(\n\t\tasync (source) => {\n\t\t\tfor await (const obj of source) {\n\t\t\t\tconst data = obj as PinoLogObject;\n\t\t\t\tconst { level, msg, time, pid, hostname, ...context } = data;\n\n\t\t\t\tconst telescopeLevel = mapPinoLevel(level);\n\n\t\t\t\t// Extract request ID\n\t\t\t\tlet reqId: string | undefined;\n\t\t\t\tif (typeof requestId === 'function') {\n\t\t\t\t\treqId = requestId(data);\n\t\t\t\t} else if (typeof requestId === 'string') {\n\t\t\t\t\treqId = requestId;\n\t\t\t\t} else if (typeof context.requestId === 'string') {\n\t\t\t\t\treqId = context.requestId;\n\t\t\t\t\tdelete context.requestId;\n\t\t\t\t}\n\n\t\t\t\tbatch.push({\n\t\t\t\t\tlevel: telescopeLevel,\n\t\t\t\t\tmessage: msg || '',\n\t\t\t\t\tcontext,\n\t\t\t\t\trequestId: reqId,\n\t\t\t\t});\n\n\t\t\t\tif (batch.length >= batchSize) {\n\t\t\t\t\tclearFlushTimer();\n\t\t\t\t\tawait flush();\n\t\t\t\t} else {\n\t\t\t\t\tscheduleFlush();\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t{\n\t\t\tasync close() {\n\t\t\t\tclearFlushTimer();\n\t\t\t\tawait flush();\n\t\t\t},\n\t\t},\n\t);\n}\n\n/**\n * Create a Pino destination that sends logs to Telescope.\n * Alias for createPinoTransport for API compatibility.\n *\n * @example\n * ```typescript\n * import pino from 'pino';\n * import { createPinoDestination } from '@geekmidas/telescope/logger/pino';\n *\n * const telescope = new Telescope({ storage: new InMemoryStorage() });\n *\n * // Use with pino.multistream to log to both stdout and Telescope\n * const logger = pino(\n * { level: 'debug' },\n * pino.multistream([\n * { stream: process.stdout },\n * { stream: createPinoDestination({ telescope }) }\n * ])\n * );\n * ```\n */\nexport const createPinoDestination = createPinoTransport;\n\nexport type { Telescope };\n"],"mappings":";;;;;;;AAgDA,SAAS,aAAaA,OAA2C;AAEhE,YAAW,UAAU,UAAU;EAC9B,MAAM,aAAa,MAAM,aAAa;AACtC,MAAI,eAAe,WAAW,eAAe,QAAS,QAAO;AAC7D,MAAI,eAAe,OAAQ,QAAO;AAClC,MAAI,eAAe,UAAU,eAAe,UAAW,QAAO;AAC9D,SAAO;CACP;AAGD,KAAI,SAAS,GAAI,QAAO;AACxB,KAAI,SAAS,GAAI,QAAO;AACxB,KAAI,SAAS,GAAI,QAAO;AACxB,QAAO;AACP;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6BD,SAAgB,oBAAoBC,SAAwC;CAC3E,MAAM,EACL,WACA,WACA,YAAY,KACZ,kBAAkB,KAClB,GAAG;CAEJ,MAAMC,QAAoB,CAAE;CAC5B,IAAIC,aAAmD;CAEvD,eAAe,QAAuB;AACrC,MAAI,MAAM,WAAW,EAAG;EAExB,MAAM,UAAU,MAAM,OAAO,GAAG,MAAM,OAAO;AAG7C,MAAI;AACH,SAAM,UAAU,IAAI,QAAQ;EAC5B,QAAO,CAEP;CACD;CAED,SAAS,gBAAsB;AAC9B,MAAI,eAAe,KAClB,cAAa,WAAW,MAAM;AAC7B,gBAAa;AACb,UAAO,CAAC,MAAM,MAAM,CAEnB,EAAC;EACF,GAAE,gBAAgB;CAEpB;CAED,SAAS,kBAAwB;AAChC,MAAI,eAAe,MAAM;AACxB,gBAAa,WAAW;AACxB,gBAAa;EACb;CACD;AAED,QAAO,MACN,OAAO,WAAW;AACjB,aAAW,MAAM,OAAO,QAAQ;GAC/B,MAAM,OAAO;GACb,MAAM,EAAE,OAAO,KAAK,MAAM,KAAK,SAAU,GAAG,SAAS,GAAG;GAExD,MAAM,iBAAiB,aAAa,MAAM;GAG1C,IAAIC;AACJ,cAAW,cAAc,WACxB,SAAQ,UAAU,KAAK;mBACN,cAAc,SAC/B,SAAQ;mBACS,QAAQ,cAAc,UAAU;AACjD,YAAQ,QAAQ;AAChB,WAAO,QAAQ;GACf;AAED,SAAM,KAAK;IACV,OAAO;IACP,SAAS,OAAO;IAChB;IACA,WAAW;GACX,EAAC;AAEF,OAAI,MAAM,UAAU,WAAW;AAC9B,qBAAiB;AACjB,UAAM,OAAO;GACb,MACA,gBAAe;EAEhB;CACD,GACD,EACC,MAAM,QAAQ;AACb,mBAAiB;AACjB,QAAM,OAAO;CACb,EACD,EACD;AACD;;;;;;;;;;;;;;;;;;;;;;AAuBD,MAAa,wBAAwB"}
@@ -0,0 +1,40 @@
1
+ import { ExceptionEntry, LogEntry, QueryOptions, RequestEntry, TelescopeStats, TelescopeStorage } from "./types-l7Rlb5Mg.cjs";
2
+
3
+ //#region src/storage/memory.d.ts
4
+ interface InMemoryStorageOptions {
5
+ /** Maximum number of entries to keep per type (default: 1000) */
6
+ maxEntries?: number;
7
+ }
8
+ /**
9
+ * In-memory storage for Telescope data.
10
+ * Ideal for development and testing.
11
+ * Data is lost when the process restarts.
12
+ */
13
+ declare class InMemoryStorage implements TelescopeStorage {
14
+ private requests;
15
+ private exceptions;
16
+ private logs;
17
+ private maxEntries;
18
+ constructor(options?: InMemoryStorageOptions);
19
+ saveRequest(entry: RequestEntry): Promise<void>;
20
+ saveRequests(entries: RequestEntry[]): Promise<void>;
21
+ getRequests(options?: QueryOptions): Promise<RequestEntry[]>;
22
+ getRequest(id: string): Promise<RequestEntry | null>;
23
+ saveException(entry: ExceptionEntry): Promise<void>;
24
+ saveExceptions(entries: ExceptionEntry[]): Promise<void>;
25
+ getExceptions(options?: QueryOptions): Promise<ExceptionEntry[]>;
26
+ getException(id: string): Promise<ExceptionEntry | null>;
27
+ saveLog(entry: LogEntry): Promise<void>;
28
+ saveLogs(entries: LogEntry[]): Promise<void>;
29
+ getLogs(options?: QueryOptions): Promise<LogEntry[]>;
30
+ prune(olderThan: Date): Promise<number>;
31
+ getStats(): Promise<TelescopeStats>;
32
+ clear(): void;
33
+ private enforceLimit;
34
+ private filterEntries;
35
+ }
36
+ //# sourceMappingURL=memory.d.ts.map
37
+
38
+ //#endregion
39
+ export { InMemoryStorage, InMemoryStorageOptions };
40
+ //# sourceMappingURL=memory--BK4iWiv.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory--BK4iWiv.d.cts","names":[],"sources":["../src/storage/memory.ts"],"sourcesContent":[],"mappings":";;;UASiB,sBAAA;;EAAA,UAAA,CAAA,EAAA,MAAA;AAUjB;;;;;;AAiB8C,cAjBjC,eAAA,YAA2B,gBAiBM,CAAA;EAAO,QAKxB,QAAA;EAAY,QAAW,UAAA;EAAY,QAApB,IAAA;EAAO,QA0BZ,UAAA;EAAY,WAApB,CAAA,OAAA,CAAA,EA1CR,sBA0CQ;EAAO,WAMV,CAAA,KAAA,EA1CF,YA0CE,CAAA,EA1Ca,OA0Cb,CAAA,IAAA,CAAA;EAAc,YAAG,CAAA,OAAA,EArChB,YAqCgB,EAAA,CAAA,EArCC,OAqCD,CAAA,IAAA,CAAA;EAAO,WAKrB,CAAA,OAAA,CAAA,EArCF,YAqCE,CAAA,EArCa,OAqCb,CArCqB,YAqCrB,EAAA,CAAA;EAAc,UAAK,CAAA,EAAA,EAAA,MAAA,CAAA,EAXnB,OAWmB,CAXX,YAWW,GAAA,IAAA,CAAA;EAAO,aAK1B,CAAA,KAAA,EAVH,cAUG,CAAA,EAVc,OAUd,CAAA,IAAA,CAAA;EAAY,cAAW,CAAA,OAAA,EALvB,cAKuB,EAAA,CAAA,EALJ,OAKI,CAAA,IAAA,CAAA;EAAc,aAAtB,CAAA,OAAA,CAAA,EAAf,YAAe,CAAA,EAAA,OAAA,CAAQ,cAAR,EAAA,CAAA;EAAO,YAIZ,CAAA,EAAA,EAAA,MAAA,CAAA,EAAR,OAAQ,CAAA,cAAA,GAAA,IAAA,CAAA;EAAc,OAAtB,CAAA,KAAA,EAMX,QANW,CAAA,EAMA,OANA,CAAA,IAAA,CAAA;EAAO,QAMlB,CAAA,OAAA,EAKG,QALH,EAAA,CAAA,EAKgB,OALhB,CAAA,IAAA,CAAA;EAAQ,OAAG,CAAA,OAAA,CAAA,EAUR,YAVQ,CAAA,EAUO,OAVP,CAUe,QAVf,EAAA,CAAA;EAAO,KAKf,CAAA,SAAA,EAkBD,IAlBC,CAAA,EAkBM,OAlBN,CAAA,MAAA,CAAA;EAAQ,QAAK,CAAA,CAAA,EAiCnB,OAjCmB,CAiCX,cAjCW,CAAA;EAAO,KAKpB,CAAA,CAAA,EAAA,IAAA;EAAY,QAAW,YAAA;EAAQ,QAAhB,aAAA"}