@geekmidas/telescope 10.0.0-alpha.99 → 10.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +79 -0
- package/README.md +18 -28
- package/dist/InMemoryMetricsStorage-BbKCL3YL.d.mts +47 -0
- package/dist/InMemoryMetricsStorage-BbKCL3YL.d.mts.map +1 -0
- package/dist/InMemoryMetricsStorage-C4drxT7G.mjs +247 -0
- package/dist/InMemoryMetricsStorage-C4drxT7G.mjs.map +1 -0
- package/dist/InMemoryMetricsStorage-D0njWUSi.cjs +252 -0
- package/dist/InMemoryMetricsStorage-D0njWUSi.cjs.map +1 -0
- package/dist/InMemoryMetricsStorage-TvPdZjL0.d.cts +47 -0
- package/dist/InMemoryMetricsStorage-TvPdZjL0.d.cts.map +1 -0
- package/dist/{MetricsAggregator-BJdIvfEv.d.mts → MetricsAggregator-4SqelGcG.d.cts} +6 -3
- package/dist/MetricsAggregator-4SqelGcG.d.cts.map +1 -0
- package/dist/MetricsAggregator-B7lUICdH.cjs +363 -0
- package/dist/MetricsAggregator-B7lUICdH.cjs.map +1 -0
- package/dist/{MetricsAggregator-CnC3oT5q.d.cts → MetricsAggregator-DZrW8ls6.d.mts} +6 -3
- package/dist/MetricsAggregator-DZrW8ls6.d.mts.map +1 -0
- package/dist/MetricsAggregator-S3DQWNas.mjs +357 -0
- package/dist/MetricsAggregator-S3DQWNas.mjs.map +1 -0
- package/dist/MetricsStorage-B86e4131.d.cts +60 -0
- package/dist/MetricsStorage-B86e4131.d.cts.map +1 -0
- package/dist/MetricsStorage-BWyP2_12.d.mts +60 -0
- package/dist/MetricsStorage-BWyP2_12.d.mts.map +1 -0
- package/dist/MetricsStorage-BypQXWiv.mjs +0 -0
- package/dist/MetricsStorage-Or8pVCe4.cjs +0 -0
- package/dist/Telescope-Cs3fv8jt.cjs +395 -0
- package/dist/Telescope-Cs3fv8jt.cjs.map +1 -0
- package/dist/{Telescope-BVfDvVvY.d.mts → Telescope-D4nmwDRA.d.cts} +7 -4
- package/dist/Telescope-D4nmwDRA.d.cts.map +1 -0
- package/dist/Telescope-Dh5av3FC.mjs +389 -0
- package/dist/Telescope-Dh5av3FC.mjs.map +1 -0
- package/dist/{Telescope-DeqSHfuB.d.cts → Telescope-Dl6VSfxd.d.mts} +7 -4
- package/dist/Telescope-Dl6VSfxd.d.mts.map +1 -0
- package/dist/Telescope.cjs +4 -385
- package/dist/Telescope.d.cts +3 -1
- package/dist/Telescope.d.mts +3 -1
- package/dist/Telescope.mjs +4 -384
- package/dist/adapters/index.d.cts +2 -2
- package/dist/adapters/index.d.mts +2 -2
- package/dist/adapters/index.mjs +0 -1
- package/dist/adapters/lambda.cjs +10 -9
- package/dist/adapters/lambda.cjs.map +1 -1
- package/dist/adapters/lambda.d.cts +13 -9
- package/dist/adapters/lambda.d.cts.map +1 -1
- package/dist/adapters/lambda.d.mts +13 -9
- package/dist/adapters/lambda.d.mts.map +1 -1
- package/dist/adapters/lambda.mjs +4 -3
- package/dist/adapters/lambda.mjs.map +1 -1
- package/dist/adapters/middy.cjs +4 -236
- package/dist/adapters/middy.d.cts +5 -60
- package/dist/adapters/middy.d.mts +5 -60
- package/dist/adapters/middy.mjs +3 -234
- package/dist/adapters/types.d.cts +2 -162
- package/dist/adapters/types.d.mts +2 -162
- package/dist/adapters/types.mjs +0 -1
- package/dist/{rolldown-runtime-VH7oDXx4.cjs → chunk-CUT6urMc.cjs} +10 -8
- package/dist/core--quSp5Qr.d.mts +78 -0
- package/dist/core--quSp5Qr.d.mts.map +1 -0
- package/dist/core-B4Jpia5H.d.cts +78 -0
- package/dist/core-B4Jpia5H.d.cts.map +1 -0
- package/dist/core-CtVHRJGv.cjs +199 -0
- package/dist/core-CtVHRJGv.cjs.map +1 -0
- package/dist/core-D6hJ6exL.mjs +139 -0
- package/dist/core-D6hJ6exL.mjs.map +1 -0
- package/dist/core.cjs +22 -22
- package/dist/core.d.cts +4 -4
- package/dist/core.d.mts +4 -4
- package/dist/core.mjs +4 -3
- package/dist/hono--uKQ7Jgi.d.mts +71 -0
- package/dist/hono--uKQ7Jgi.d.mts.map +1 -0
- package/dist/hono-C4EgpbKQ.cjs +160 -0
- package/dist/hono-C4EgpbKQ.cjs.map +1 -0
- package/dist/hono-CemCKU87.d.cts +71 -0
- package/dist/hono-CemCKU87.d.cts.map +1 -0
- package/dist/hono-DxhvnVbF.mjs +136 -0
- package/dist/hono-DxhvnVbF.mjs.map +1 -0
- package/dist/http-BiNtg85L.d.mts +107 -0
- package/dist/http-BiNtg85L.d.mts.map +1 -0
- package/dist/http-DQzgLczm.mjs +159 -0
- package/dist/http-DQzgLczm.mjs.map +1 -0
- package/dist/http-D_Z8sYXZ.cjs +219 -0
- package/dist/http-D_Z8sYXZ.cjs.map +1 -0
- package/dist/http-Dvca6fC3.d.cts +107 -0
- package/dist/http-Dvca6fC3.d.cts.map +1 -0
- package/dist/index-BL32-cvv.d.cts +1 -0
- package/dist/index-CsuikFeJ.d.mts +1 -0
- package/dist/index.cjs +9 -8
- package/dist/index.d.cts +6 -5
- package/dist/index.d.mts +6 -5
- package/dist/index.mjs +7 -5
- package/dist/instrumentation/core.cjs +11 -147
- package/dist/instrumentation/core.d.cts +3 -74
- package/dist/instrumentation/core.d.mts +3 -74
- package/dist/instrumentation/core.mjs +2 -137
- package/dist/instrumentation/hono.cjs +6 -174
- package/dist/instrumentation/hono.d.cts +2 -86
- package/dist/instrumentation/hono.d.mts +2 -86
- package/dist/instrumentation/hono.mjs +3 -170
- package/dist/instrumentation/http.cjs +11 -189
- package/dist/instrumentation/http.d.cts +2 -119
- package/dist/instrumentation/http.d.mts +2 -119
- package/dist/instrumentation/http.mjs +2 -178
- package/dist/instrumentation/index.cjs +47 -56
- package/dist/instrumentation/index.d.cts +9 -11
- package/dist/instrumentation/index.d.mts +9 -11
- package/dist/instrumentation/index.mjs +9 -10
- package/dist/instrumentation/middleware.cjs +6 -164
- package/dist/instrumentation/middleware.d.cts +2 -83
- package/dist/instrumentation/middleware.d.mts +2 -83
- package/dist/instrumentation/middleware.mjs +3 -160
- package/dist/instrumentation/otel.cjs +3 -137
- package/dist/instrumentation/otel.d.cts +2 -97
- package/dist/instrumentation/otel.d.mts +2 -97
- package/dist/instrumentation/otel.mjs +3 -136
- package/dist/instrumentation/setup.cjs +4 -142
- package/dist/instrumentation/setup.d.cts +3 -139
- package/dist/instrumentation/setup.d.mts +3 -139
- package/dist/instrumentation/setup.mjs +3 -139
- package/dist/instrumentation/tracing.cjs +10 -114
- package/dist/instrumentation/tracing.d.cts +2 -49
- package/dist/instrumentation/tracing.d.mts +2 -49
- package/dist/instrumentation/tracing.mjs +2 -105
- package/dist/logger/console.cjs +12 -18
- package/dist/logger/console.cjs.map +1 -1
- package/dist/logger/console.d.cts +10 -7
- package/dist/logger/console.d.cts.map +1 -1
- package/dist/logger/console.d.mts +10 -7
- package/dist/logger/console.d.mts.map +1 -1
- package/dist/logger/console.mjs +11 -17
- package/dist/logger/console.mjs.map +1 -1
- package/dist/logger/pino.cjs +5 -6
- package/dist/logger/pino.cjs.map +1 -1
- package/dist/logger/pino.d.cts +10 -6
- package/dist/logger/pino.d.cts.map +1 -1
- package/dist/logger/pino.d.mts +10 -6
- package/dist/logger/pino.d.mts.map +1 -1
- package/dist/logger/pino.mjs +3 -2
- package/dist/logger/pino.mjs.map +1 -1
- package/dist/memory--BK4iWiv.d.cts +40 -0
- package/dist/memory--BK4iWiv.d.cts.map +1 -0
- package/dist/memory-6S9H-IF5.mjs +123 -0
- package/dist/memory-6S9H-IF5.mjs.map +1 -0
- package/dist/memory-B0d_n1g5.cjs +129 -0
- package/dist/memory-B0d_n1g5.cjs.map +1 -0
- package/dist/memory-DCirEVFW.d.mts +40 -0
- package/dist/memory-DCirEVFW.d.mts.map +1 -0
- package/dist/metrics/MetricsAggregator.cjs +2 -354
- package/dist/metrics/MetricsAggregator.d.cts +2 -1
- package/dist/metrics/MetricsAggregator.d.mts +2 -1
- package/dist/metrics/MetricsAggregator.mjs +2 -353
- package/dist/metrics/index.cjs +4 -3
- package/dist/metrics/index.d.cts +4 -2
- package/dist/metrics/index.d.mts +4 -2
- package/dist/metrics/index.mjs +4 -2
- package/dist/metrics/storage/InMemoryMetricsStorage.cjs +3 -240
- package/dist/metrics/storage/InMemoryMetricsStorage.d.cts +4 -43
- package/dist/metrics/storage/InMemoryMetricsStorage.d.mts +4 -43
- package/dist/metrics/storage/InMemoryMetricsStorage.mjs +3 -239
- package/dist/metrics/storage/MetricsStorage.cjs +1 -0
- package/dist/metrics/storage/MetricsStorage.d.cts +3 -56
- package/dist/metrics/storage/MetricsStorage.d.mts +3 -56
- package/dist/metrics/storage/MetricsStorage.mjs +1 -1
- package/dist/metrics/storage/index.cjs +6 -6
- package/dist/metrics/storage/index.d.cts +3 -3
- package/dist/metrics/storage/index.d.mts +3 -3
- package/dist/metrics/storage/index.mjs +5 -4
- package/dist/metrics/storage/types.cjs +2 -34
- package/dist/metrics/storage/types.d.cts +2 -207
- package/dist/metrics/storage/types.d.mts +2 -207
- package/dist/metrics/storage/types.mjs +2 -33
- package/dist/metrics-D5YT-Rnq.mjs +0 -0
- package/dist/metrics-fhD3l3C3.cjs +0 -0
- package/dist/middleware-B2jFUukM.cjs +184 -0
- package/dist/middleware-B2jFUukM.cjs.map +1 -0
- package/dist/middleware-BTDncHwm.mjs +160 -0
- package/dist/middleware-BTDncHwm.mjs.map +1 -0
- package/dist/middleware-CA84nsNN.d.cts +74 -0
- package/dist/middleware-CA84nsNN.d.cts.map +1 -0
- package/dist/middleware-DAceVpfw.d.mts +74 -0
- package/dist/middleware-DAceVpfw.d.mts.map +1 -0
- package/dist/middy-B6Btl8XE.d.mts +64 -0
- package/dist/middy-B6Btl8XE.d.mts.map +1 -0
- package/dist/middy-BTR3cyvk.mjs +236 -0
- package/dist/middy-BTR3cyvk.mjs.map +1 -0
- package/dist/middy-Bq0defVg.d.cts +64 -0
- package/dist/middy-Bq0defVg.d.cts.map +1 -0
- package/dist/middy-y5Zp27eG.cjs +247 -0
- package/dist/middy-y5Zp27eG.cjs.map +1 -0
- package/dist/otel-1bJPb2Z7.d.mts +101 -0
- package/dist/otel-1bJPb2Z7.d.mts.map +1 -0
- package/dist/otel-C1HqHA2O.cjs +136 -0
- package/dist/otel-C1HqHA2O.cjs.map +1 -0
- package/dist/otel-SBVoVEHr.d.cts +101 -0
- package/dist/otel-SBVoVEHr.d.cts.map +1 -0
- package/dist/otel-wulj5B-X.mjs +130 -0
- package/dist/otel-wulj5B-X.mjs.map +1 -0
- package/dist/otlp/hono.cjs +15 -9
- package/dist/otlp/hono.cjs.map +1 -1
- package/dist/otlp/hono.d.cts +13 -3
- package/dist/otlp/hono.d.cts.map +1 -1
- package/dist/otlp/hono.d.mts +13 -3
- package/dist/otlp/hono.d.mts.map +1 -1
- package/dist/otlp/hono.mjs +11 -5
- package/dist/otlp/hono.mjs.map +1 -1
- package/dist/otlp/index.cjs +11 -11
- package/dist/otlp/index.d.cts +7 -4
- package/dist/otlp/index.d.mts +7 -4
- package/dist/otlp/index.mjs +5 -4
- package/dist/otlp/receiver.cjs +4 -88
- package/dist/otlp/receiver.d.cts +7 -59
- package/dist/otlp/receiver.d.mts +7 -59
- package/dist/otlp/receiver.mjs +4 -87
- package/dist/otlp/transformer.cjs +5 -214
- package/dist/otlp/transformer.d.cts +3 -1
- package/dist/otlp/transformer.d.mts +3 -1
- package/dist/otlp/transformer.mjs +3 -211
- package/dist/otlp/types.cjs +5 -57
- package/dist/otlp/types.d.cts +1 -1
- package/dist/otlp/types.d.mts +1 -1
- package/dist/otlp/types.mjs +2 -53
- package/dist/receiver-Cj1lbAOO.cjs +94 -0
- package/dist/receiver-Cj1lbAOO.cjs.map +1 -0
- package/dist/receiver-CxVd_9CB.mjs +89 -0
- package/dist/receiver-CxVd_9CB.mjs.map +1 -0
- package/dist/receiver-DLICx5uU.d.cts +63 -0
- package/dist/receiver-DLICx5uU.d.cts.map +1 -0
- package/dist/receiver-UeZT-H8u.d.mts +63 -0
- package/dist/receiver-UeZT-H8u.d.mts.map +1 -0
- package/dist/redact-BzkITCNW.mjs +83 -0
- package/dist/redact-BzkITCNW.mjs.map +1 -0
- package/dist/redact-DVaSSPZT.cjs +95 -0
- package/dist/redact-DVaSSPZT.cjs.map +1 -0
- package/dist/redact.cjs +3 -84
- package/dist/redact.d.cts +8 -4
- package/dist/redact.d.cts.map +1 -1
- package/dist/redact.d.mts +8 -4
- package/dist/redact.d.mts.map +1 -1
- package/dist/redact.mjs +2 -80
- package/dist/server/hono.cjs +54 -33
- package/dist/server/hono.cjs.map +1 -1
- package/dist/server/hono.d.cts +14 -19
- package/dist/server/hono.d.cts.map +1 -1
- package/dist/server/hono.d.mts +14 -19
- package/dist/server/hono.d.mts.map +1 -1
- package/dist/server/hono.mjs +52 -31
- package/dist/server/hono.mjs.map +1 -1
- package/dist/setup-B9jM77Qk.mjs +98 -0
- package/dist/setup-B9jM77Qk.mjs.map +1 -0
- package/dist/setup-Bkxm4g6b.d.mts +87 -0
- package/dist/setup-Bkxm4g6b.d.mts.map +1 -0
- package/dist/setup-CYpff5B9.cjs +110 -0
- package/dist/setup-CYpff5B9.cjs.map +1 -0
- package/dist/setup-D58N1f9O.d.cts +87 -0
- package/dist/setup-D58N1f9O.d.cts.map +1 -0
- package/dist/storage/kysely.cjs +70 -82
- package/dist/storage/kysely.cjs.map +1 -1
- package/dist/storage/kysely.d.cts +20 -36
- package/dist/storage/kysely.d.cts.map +1 -1
- package/dist/storage/kysely.d.mts +20 -36
- package/dist/storage/kysely.d.mts.map +1 -1
- package/dist/storage/kysely.mjs +69 -81
- package/dist/storage/kysely.mjs.map +1 -1
- package/dist/storage/memory.cjs +2 -122
- package/dist/storage/memory.d.cts +3 -36
- package/dist/storage/memory.d.mts +3 -36
- package/dist/storage/memory.mjs +2 -121
- package/dist/tracing-BX8uY2nR.d.cts +53 -0
- package/dist/tracing-BX8uY2nR.d.cts.map +1 -0
- package/dist/tracing-Bt1zWRlb.cjs +167 -0
- package/dist/tracing-Bt1zWRlb.cjs.map +1 -0
- package/dist/tracing-Cijm_5NI.mjs +113 -0
- package/dist/tracing-Cijm_5NI.mjs.map +1 -0
- package/dist/tracing-PnECEbEu.d.mts +53 -0
- package/dist/tracing-PnECEbEu.d.mts.map +1 -0
- package/dist/transformer-BXQPhzql.mjs +215 -0
- package/dist/transformer-BXQPhzql.mjs.map +1 -0
- package/dist/transformer-CLGZ0EQc.cjs +232 -0
- package/dist/transformer-CLGZ0EQc.cjs.map +1 -0
- package/dist/{transformer-BtqjAs0b.d.cts → transformer-CTGsaVfV.d.mts} +8 -4
- package/dist/transformer-CTGsaVfV.d.mts.map +1 -0
- package/dist/{transformer-DI6t8-YA.d.mts → transformer-ICEbxpFf.d.cts} +8 -4
- package/dist/transformer-ICEbxpFf.d.cts.map +1 -0
- package/dist/{types-BVujq4zd.d.mts → types-B1EIa_cQ.d.mts} +4 -3
- package/dist/types-B1EIa_cQ.d.mts.map +1 -0
- package/dist/types-BRzW1NM8.d.cts +166 -0
- package/dist/types-BRzW1NM8.d.cts.map +1 -0
- package/dist/types-BS3Rx8Sk.d.cts +209 -0
- package/dist/types-BS3Rx8Sk.d.cts.map +1 -0
- package/dist/types-Bwm_jNU7.mjs +54 -0
- package/dist/types-Bwm_jNU7.mjs.map +1 -0
- package/dist/types-BzQ78Efw.d.mts +166 -0
- package/dist/types-BzQ78Efw.d.mts.map +1 -0
- package/dist/types-CbNGXnJE.d.mts +209 -0
- package/dist/types-CbNGXnJE.d.mts.map +1 -0
- package/dist/{types-DVETVdpa.d.cts → types-CmOB7CLO.d.cts} +7 -6
- package/dist/types-CmOB7CLO.d.cts.map +1 -0
- package/dist/{types-DVETVdpa.d.mts → types-DBc0q5KD.d.mts} +7 -6
- package/dist/types-DBc0q5KD.d.mts.map +1 -0
- package/dist/types-Dsh-DIO_.cjs +78 -0
- package/dist/types-Dsh-DIO_.cjs.map +1 -0
- package/dist/types-ZW-nfWf6.cjs +40 -0
- package/dist/types-ZW-nfWf6.cjs.map +1 -0
- package/dist/{types-BVujq4zd.d.cts → types-l7Rlb5Mg.d.cts} +4 -3
- package/dist/types-l7Rlb5Mg.d.cts.map +1 -0
- package/dist/types-ojhnLdwz.mjs +34 -0
- package/dist/types-ojhnLdwz.mjs.map +1 -0
- package/dist/types.d.cts +1 -1
- package/dist/types.d.mts +1 -1
- package/dist/types.mjs +0 -1
- package/dist/ui-assets-BEXqOQLe.cjs +48 -0
- package/dist/ui-assets-BEXqOQLe.cjs.map +1 -0
- package/dist/ui-assets-BhTDUsrM.mjs +30 -0
- package/dist/ui-assets-BhTDUsrM.mjs.map +1 -0
- package/dist/ui-assets.cjs +5 -0
- package/dist/ui-assets.d.cts +13 -0
- package/dist/ui-assets.d.cts.map +1 -0
- package/dist/ui-assets.d.mts +13 -0
- package/dist/ui-assets.d.mts.map +1 -0
- package/dist/ui-assets.mjs +3 -0
- package/package.json +46 -46
- package/src/Telescope.ts +561 -0
- package/src/__tests__/Telescope.spec.ts +438 -0
- package/src/__tests__/pino-transport.spec.ts +115 -0
- package/src/__tests__/redact.spec.ts +336 -0
- package/src/adapters/__tests__/lambda.spec.ts +318 -0
- package/src/adapters/__tests__/middy.spec.ts +741 -0
- package/src/adapters/index.ts +22 -0
- package/src/adapters/lambda.ts +432 -0
- package/src/adapters/middy.ts +402 -0
- package/src/adapters/types.ts +181 -0
- package/src/core.ts +51 -0
- package/src/index.ts +34 -0
- package/src/instrumentation/__tests__/core.spec.ts +248 -0
- package/src/instrumentation/__tests__/hono.spec.ts +348 -0
- package/src/instrumentation/__tests__/middleware.spec.ts +528 -0
- package/src/instrumentation/__tests__/otel.spec.ts +291 -0
- package/src/instrumentation/__tests__/tracing.spec.ts +208 -0
- package/src/instrumentation/core.ts +228 -0
- package/src/instrumentation/hono.ts +270 -0
- package/src/instrumentation/http.ts +306 -0
- package/src/instrumentation/index.ts +90 -0
- package/src/instrumentation/middleware.ts +297 -0
- package/src/instrumentation/otel.ts +271 -0
- package/src/instrumentation/setup.ts +246 -0
- package/src/instrumentation/tracing.ts +145 -0
- package/src/logger/__tests__/console.spec.ts +366 -0
- package/src/logger/__tests__/pino.spec.ts +217 -0
- package/src/logger/console.ts +230 -0
- package/src/logger/pino.ts +201 -0
- package/src/metrics/MetricsAggregator.ts +555 -0
- package/src/metrics/__tests__/MetricsAggregator.spec.ts +298 -0
- package/src/metrics/index.ts +2 -0
- package/src/metrics/storage/InMemoryMetricsStorage.ts +380 -0
- package/src/metrics/storage/MetricsStorage.ts +74 -0
- package/src/metrics/storage/index.ts +3 -0
- package/src/metrics/storage/types.ts +243 -0
- package/src/otlp/__tests__/receiver.spec.ts +367 -0
- package/src/otlp/__tests__/transformer.spec.ts +455 -0
- package/src/otlp/hono.ts +120 -0
- package/src/otlp/index.ts +22 -0
- package/src/otlp/receiver.ts +162 -0
- package/src/otlp/transformer.ts +367 -0
- package/src/otlp/types.ts +364 -0
- package/src/redact.ts +116 -0
- package/src/server/__tests__/hono.spec.ts +814 -0
- package/src/server/hono.ts +442 -0
- package/src/storage/__tests__/kysely.spec.ts +715 -0
- package/src/storage/__tests__/memory.spec.ts +694 -0
- package/src/storage/kysely.ts +599 -0
- package/src/storage/memory.ts +204 -0
- package/src/types.ts +447 -0
- package/src/ui-assets.ts +40 -0
- package/tsconfig.json +9 -0
- package/ui/CHANGELOG.md +7 -0
- package/ui/index.html +12 -0
- package/ui/node_modules/.bin/tsc +21 -0
- package/ui/node_modules/.bin/tsserver +21 -0
- package/ui/node_modules/.bin/vite +21 -0
- package/ui/package.json +24 -0
- package/ui/src/App.tsx +595 -0
- package/ui/src/api.ts +88 -0
- package/ui/src/components/ExceptionDetail.tsx +100 -0
- package/ui/src/components/FilterBar.tsx +162 -0
- package/ui/src/components/LogDetail.tsx +91 -0
- package/ui/src/components/RequestDetail.tsx +143 -0
- package/ui/src/main.tsx +10 -0
- package/ui/src/styles.css +11 -0
- package/ui/src/types.ts +63 -0
- package/ui/src/vite-env.d.ts +1 -0
- package/ui/src/vite-plugin-gkm-config.ts +54 -0
- package/ui/tsconfig.json +20 -0
- package/ui/tsconfig.tsbuildinfo +1 -0
- package/ui/vite.config.ts +13 -0
- package/dist/MetricsAggregator-BJdIvfEv.d.mts.map +0 -1
- package/dist/MetricsAggregator-CnC3oT5q.d.cts.map +0 -1
- package/dist/Telescope-BVfDvVvY.d.mts.map +0 -1
- package/dist/Telescope-DeqSHfuB.d.cts.map +0 -1
- package/dist/Telescope.cjs.map +0 -1
- package/dist/Telescope.mjs.map +0 -1
- package/dist/adapters/middy.cjs.map +0 -1
- package/dist/adapters/middy.d.cts.map +0 -1
- package/dist/adapters/middy.d.mts.map +0 -1
- package/dist/adapters/middy.mjs.map +0 -1
- package/dist/adapters/types.d.cts.map +0 -1
- package/dist/adapters/types.d.mts.map +0 -1
- package/dist/instrumentation/core.cjs.map +0 -1
- package/dist/instrumentation/core.d.cts.map +0 -1
- package/dist/instrumentation/core.d.mts.map +0 -1
- package/dist/instrumentation/core.mjs.map +0 -1
- package/dist/instrumentation/hono.cjs.map +0 -1
- package/dist/instrumentation/hono.d.cts.map +0 -1
- package/dist/instrumentation/hono.d.mts.map +0 -1
- package/dist/instrumentation/hono.mjs.map +0 -1
- package/dist/instrumentation/http.cjs.map +0 -1
- package/dist/instrumentation/http.d.cts.map +0 -1
- package/dist/instrumentation/http.d.mts.map +0 -1
- package/dist/instrumentation/http.mjs.map +0 -1
- package/dist/instrumentation/middleware.cjs.map +0 -1
- package/dist/instrumentation/middleware.d.cts.map +0 -1
- package/dist/instrumentation/middleware.d.mts.map +0 -1
- package/dist/instrumentation/middleware.mjs.map +0 -1
- package/dist/instrumentation/otel.cjs.map +0 -1
- package/dist/instrumentation/otel.d.cts.map +0 -1
- package/dist/instrumentation/otel.d.mts.map +0 -1
- package/dist/instrumentation/otel.mjs.map +0 -1
- package/dist/instrumentation/sampler.cjs +0 -54
- package/dist/instrumentation/sampler.cjs.map +0 -1
- package/dist/instrumentation/sampler.d.cts +0 -38
- package/dist/instrumentation/sampler.d.cts.map +0 -1
- package/dist/instrumentation/sampler.d.mts +0 -38
- package/dist/instrumentation/sampler.d.mts.map +0 -1
- package/dist/instrumentation/sampler.mjs +0 -52
- package/dist/instrumentation/sampler.mjs.map +0 -1
- package/dist/instrumentation/setup.cjs.map +0 -1
- package/dist/instrumentation/setup.d.cts.map +0 -1
- package/dist/instrumentation/setup.d.mts.map +0 -1
- package/dist/instrumentation/setup.mjs.map +0 -1
- package/dist/instrumentation/tracing.cjs.map +0 -1
- package/dist/instrumentation/tracing.d.cts.map +0 -1
- package/dist/instrumentation/tracing.d.mts.map +0 -1
- package/dist/instrumentation/tracing.mjs.map +0 -1
- package/dist/instrumentation/trust.cjs +0 -107
- package/dist/instrumentation/trust.cjs.map +0 -1
- package/dist/instrumentation/trust.d.cts +0 -57
- package/dist/instrumentation/trust.d.cts.map +0 -1
- package/dist/instrumentation/trust.d.mts +0 -57
- package/dist/instrumentation/trust.d.mts.map +0 -1
- package/dist/instrumentation/trust.mjs +0 -104
- package/dist/instrumentation/trust.mjs.map +0 -1
- package/dist/metrics/MetricsAggregator.cjs.map +0 -1
- package/dist/metrics/MetricsAggregator.mjs.map +0 -1
- package/dist/metrics/storage/InMemoryMetricsStorage.cjs.map +0 -1
- package/dist/metrics/storage/InMemoryMetricsStorage.d.cts.map +0 -1
- package/dist/metrics/storage/InMemoryMetricsStorage.d.mts.map +0 -1
- package/dist/metrics/storage/InMemoryMetricsStorage.mjs.map +0 -1
- package/dist/metrics/storage/MetricsStorage.d.cts.map +0 -1
- package/dist/metrics/storage/MetricsStorage.d.mts.map +0 -1
- package/dist/metrics/storage/types.cjs.map +0 -1
- package/dist/metrics/storage/types.d.cts.map +0 -1
- package/dist/metrics/storage/types.d.mts.map +0 -1
- package/dist/metrics/storage/types.mjs.map +0 -1
- package/dist/otlp/receiver.cjs.map +0 -1
- package/dist/otlp/receiver.d.cts.map +0 -1
- package/dist/otlp/receiver.d.mts.map +0 -1
- package/dist/otlp/receiver.mjs.map +0 -1
- package/dist/otlp/transformer.cjs.map +0 -1
- package/dist/otlp/transformer.mjs.map +0 -1
- package/dist/otlp/types.cjs.map +0 -1
- package/dist/otlp/types.mjs.map +0 -1
- package/dist/redact.cjs.map +0 -1
- package/dist/redact.mjs.map +0 -1
- package/dist/storage/memory.cjs.map +0 -1
- package/dist/storage/memory.d.cts.map +0 -1
- package/dist/storage/memory.d.mts.map +0 -1
- package/dist/storage/memory.mjs.map +0 -1
- package/dist/transformer-BtqjAs0b.d.cts.map +0 -1
- package/dist/transformer-DI6t8-YA.d.mts.map +0 -1
- package/dist/types-BVujq4zd.d.cts.map +0 -1
- package/dist/types-BVujq4zd.d.mts.map +0 -1
- package/dist/types-DVETVdpa.d.cts.map +0 -1
- package/dist/types-DVETVdpa.d.mts.map +0 -1
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
//#region src/storage/memory.ts
|
|
2
|
+
/**
|
|
3
|
+
* In-memory storage for Telescope data.
|
|
4
|
+
* Ideal for development and testing.
|
|
5
|
+
* Data is lost when the process restarts.
|
|
6
|
+
*/
|
|
7
|
+
var InMemoryStorage = class {
|
|
8
|
+
requests = [];
|
|
9
|
+
exceptions = [];
|
|
10
|
+
logs = [];
|
|
11
|
+
maxEntries;
|
|
12
|
+
constructor(options) {
|
|
13
|
+
this.maxEntries = options?.maxEntries ?? 1e3;
|
|
14
|
+
}
|
|
15
|
+
async saveRequest(entry) {
|
|
16
|
+
this.requests.unshift(entry);
|
|
17
|
+
this.enforceLimit("requests");
|
|
18
|
+
}
|
|
19
|
+
async saveRequests(entries) {
|
|
20
|
+
this.requests.unshift(...entries);
|
|
21
|
+
this.enforceLimit("requests");
|
|
22
|
+
}
|
|
23
|
+
async getRequests(options) {
|
|
24
|
+
let result = this.requests;
|
|
25
|
+
if (options?.method) result = result.filter((r) => r.method === options.method);
|
|
26
|
+
if (options?.status) {
|
|
27
|
+
const statusFilter = options.status;
|
|
28
|
+
result = result.filter((r) => {
|
|
29
|
+
if (statusFilter.endsWith("xx")) {
|
|
30
|
+
const firstChar = statusFilter[0];
|
|
31
|
+
if (!firstChar) return false;
|
|
32
|
+
const category = parseInt(firstChar, 10);
|
|
33
|
+
return Math.floor(r.status / 100) === category;
|
|
34
|
+
}
|
|
35
|
+
return r.status === parseInt(statusFilter, 10);
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
return this.filterEntries(result, options);
|
|
39
|
+
}
|
|
40
|
+
async getRequest(id) {
|
|
41
|
+
return this.requests.find((r) => r.id === id) ?? null;
|
|
42
|
+
}
|
|
43
|
+
async saveException(entry) {
|
|
44
|
+
this.exceptions.unshift(entry);
|
|
45
|
+
this.enforceLimit("exceptions");
|
|
46
|
+
}
|
|
47
|
+
async saveExceptions(entries) {
|
|
48
|
+
this.exceptions.unshift(...entries);
|
|
49
|
+
this.enforceLimit("exceptions");
|
|
50
|
+
}
|
|
51
|
+
async getExceptions(options) {
|
|
52
|
+
return this.filterEntries(this.exceptions, options);
|
|
53
|
+
}
|
|
54
|
+
async getException(id) {
|
|
55
|
+
return this.exceptions.find((e) => e.id === id) ?? null;
|
|
56
|
+
}
|
|
57
|
+
async saveLog(entry) {
|
|
58
|
+
this.logs.unshift(entry);
|
|
59
|
+
this.enforceLimit("logs");
|
|
60
|
+
}
|
|
61
|
+
async saveLogs(entries) {
|
|
62
|
+
this.logs.unshift(...entries);
|
|
63
|
+
this.enforceLimit("logs");
|
|
64
|
+
}
|
|
65
|
+
async getLogs(options) {
|
|
66
|
+
let result = this.logs;
|
|
67
|
+
if (options?.level) result = result.filter((l) => l.level === options.level);
|
|
68
|
+
return this.filterEntries(result, options);
|
|
69
|
+
}
|
|
70
|
+
async prune(olderThan) {
|
|
71
|
+
const beforeCount = this.requests.length + this.exceptions.length + this.logs.length;
|
|
72
|
+
this.requests = this.requests.filter((r) => r.timestamp >= olderThan);
|
|
73
|
+
this.exceptions = this.exceptions.filter((e) => e.timestamp >= olderThan);
|
|
74
|
+
this.logs = this.logs.filter((l) => l.timestamp >= olderThan);
|
|
75
|
+
const afterCount = this.requests.length + this.exceptions.length + this.logs.length;
|
|
76
|
+
return beforeCount - afterCount;
|
|
77
|
+
}
|
|
78
|
+
async getStats() {
|
|
79
|
+
const allTimestamps = [
|
|
80
|
+
...this.requests.map((r) => r.timestamp),
|
|
81
|
+
...this.exceptions.map((e) => e.timestamp),
|
|
82
|
+
...this.logs.map((l) => l.timestamp)
|
|
83
|
+
].sort((a, b) => a.getTime() - b.getTime());
|
|
84
|
+
return {
|
|
85
|
+
requests: this.requests.length,
|
|
86
|
+
exceptions: this.exceptions.length,
|
|
87
|
+
logs: this.logs.length,
|
|
88
|
+
oldestEntry: allTimestamps[0],
|
|
89
|
+
newestEntry: allTimestamps[allTimestamps.length - 1]
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
clear() {
|
|
93
|
+
this.requests = [];
|
|
94
|
+
this.exceptions = [];
|
|
95
|
+
this.logs = [];
|
|
96
|
+
}
|
|
97
|
+
enforceLimit(type) {
|
|
98
|
+
const entries = this[type];
|
|
99
|
+
if (entries.length > this.maxEntries) if (type === "requests") this.requests = this.requests.slice(0, this.maxEntries);
|
|
100
|
+
else if (type === "exceptions") this.exceptions = this.exceptions.slice(0, this.maxEntries);
|
|
101
|
+
else this.logs = this.logs.slice(0, this.maxEntries);
|
|
102
|
+
}
|
|
103
|
+
filterEntries(entries, options) {
|
|
104
|
+
let result = entries;
|
|
105
|
+
if (options?.after) result = result.filter((e) => e.timestamp >= options.after);
|
|
106
|
+
if (options?.before) result = result.filter((e) => e.timestamp <= options.before);
|
|
107
|
+
if (options?.tags && options.tags.length > 0) result = result.filter((e) => e.tags && options.tags?.some((t) => e.tags?.includes(t)));
|
|
108
|
+
if (options?.search) {
|
|
109
|
+
const searchLower = options.search.toLowerCase();
|
|
110
|
+
result = result.filter((e) => {
|
|
111
|
+
const str = JSON.stringify(e).toLowerCase();
|
|
112
|
+
return str.includes(searchLower);
|
|
113
|
+
});
|
|
114
|
+
}
|
|
115
|
+
const offset = options?.offset ?? 0;
|
|
116
|
+
const limit = options?.limit ?? 50;
|
|
117
|
+
return result.slice(offset, offset + limit);
|
|
118
|
+
}
|
|
119
|
+
};
|
|
120
|
+
|
|
121
|
+
//#endregion
|
|
122
|
+
export { InMemoryStorage };
|
|
123
|
+
//# sourceMappingURL=memory-6S9H-IF5.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memory-6S9H-IF5.mjs","names":["options?: InMemoryStorageOptions","entry: RequestEntry","entries: RequestEntry[]","options?: QueryOptions","id: string","entry: ExceptionEntry","entries: ExceptionEntry[]","entry: LogEntry","entries: LogEntry[]","olderThan: Date","type: 'requests' | 'exceptions' | 'logs'","entries: T[]"],"sources":["../src/storage/memory.ts"],"sourcesContent":["import type {\n\tExceptionEntry,\n\tLogEntry,\n\tQueryOptions,\n\tRequestEntry,\n\tTelescopeStats,\n\tTelescopeStorage,\n} from '../types';\n\nexport interface InMemoryStorageOptions {\n\t/** Maximum number of entries to keep per type (default: 1000) */\n\tmaxEntries?: number;\n}\n\n/**\n * In-memory storage for Telescope data.\n * Ideal for development and testing.\n * Data is lost when the process restarts.\n */\nexport class InMemoryStorage implements TelescopeStorage {\n\tprivate requests: RequestEntry[] = [];\n\tprivate exceptions: ExceptionEntry[] = [];\n\tprivate logs: LogEntry[] = [];\n\tprivate maxEntries: number;\n\n\tconstructor(options?: InMemoryStorageOptions) {\n\t\tthis.maxEntries = options?.maxEntries ?? 1000;\n\t}\n\n\t// Requests\n\n\tasync saveRequest(entry: RequestEntry): Promise<void> {\n\t\tthis.requests.unshift(entry);\n\t\tthis.enforceLimit('requests');\n\t}\n\n\tasync saveRequests(entries: RequestEntry[]): Promise<void> {\n\t\tthis.requests.unshift(...entries);\n\t\tthis.enforceLimit('requests');\n\t}\n\n\tasync getRequests(options?: QueryOptions): Promise<RequestEntry[]> {\n\t\tlet result = this.requests;\n\n\t\t// Apply request-specific filters before generic filtering\n\t\tif (options?.method) {\n\t\t\tresult = result.filter((r) => r.method === options.method);\n\t\t}\n\n\t\tif (options?.status) {\n\t\t\tconst statusFilter = options.status;\n\t\t\tresult = result.filter((r) => {\n\t\t\t\t// Handle status ranges like \"2xx\", \"4xx\", \"5xx\"\n\t\t\t\tif (statusFilter.endsWith('xx')) {\n\t\t\t\t\tconst firstChar = statusFilter[0];\n\t\t\t\t\tif (!firstChar) return false;\n\t\t\t\t\tconst category = parseInt(firstChar, 10);\n\t\t\t\t\treturn Math.floor(r.status / 100) === category;\n\t\t\t\t}\n\t\t\t\t// Handle exact status codes\n\t\t\t\treturn r.status === parseInt(statusFilter, 10);\n\t\t\t});\n\t\t}\n\n\t\treturn this.filterEntries(result, options);\n\t}\n\n\tasync getRequest(id: string): Promise<RequestEntry | null> {\n\t\treturn this.requests.find((r) => r.id === id) ?? null;\n\t}\n\n\t// Exceptions\n\n\tasync saveException(entry: ExceptionEntry): Promise<void> {\n\t\tthis.exceptions.unshift(entry);\n\t\tthis.enforceLimit('exceptions');\n\t}\n\n\tasync saveExceptions(entries: ExceptionEntry[]): Promise<void> {\n\t\tthis.exceptions.unshift(...entries);\n\t\tthis.enforceLimit('exceptions');\n\t}\n\n\tasync getExceptions(options?: QueryOptions): Promise<ExceptionEntry[]> {\n\t\treturn this.filterEntries(this.exceptions, options);\n\t}\n\n\tasync getException(id: string): Promise<ExceptionEntry | null> {\n\t\treturn this.exceptions.find((e) => e.id === id) ?? null;\n\t}\n\n\t// Logs\n\n\tasync saveLog(entry: LogEntry): Promise<void> {\n\t\tthis.logs.unshift(entry);\n\t\tthis.enforceLimit('logs');\n\t}\n\n\tasync saveLogs(entries: LogEntry[]): Promise<void> {\n\t\tthis.logs.unshift(...entries);\n\t\tthis.enforceLimit('logs');\n\t}\n\n\tasync getLogs(options?: QueryOptions): Promise<LogEntry[]> {\n\t\tlet result = this.logs;\n\n\t\t// Apply log-specific filters before generic filtering\n\t\tif (options?.level) {\n\t\t\tresult = result.filter((l) => l.level === options.level);\n\t\t}\n\n\t\treturn this.filterEntries(result, options);\n\t}\n\n\t// Cleanup\n\n\tasync prune(olderThan: Date): Promise<number> {\n\t\tconst beforeCount =\n\t\t\tthis.requests.length + this.exceptions.length + this.logs.length;\n\n\t\tthis.requests = this.requests.filter((r) => r.timestamp >= olderThan);\n\t\tthis.exceptions = this.exceptions.filter((e) => e.timestamp >= olderThan);\n\t\tthis.logs = this.logs.filter((l) => l.timestamp >= olderThan);\n\n\t\tconst afterCount =\n\t\t\tthis.requests.length + this.exceptions.length + this.logs.length;\n\t\treturn beforeCount - afterCount;\n\t}\n\n\t// Stats\n\n\tasync getStats(): Promise<TelescopeStats> {\n\t\tconst allTimestamps = [\n\t\t\t...this.requests.map((r) => r.timestamp),\n\t\t\t...this.exceptions.map((e) => e.timestamp),\n\t\t\t...this.logs.map((l) => l.timestamp),\n\t\t].sort((a, b) => a.getTime() - b.getTime());\n\n\t\treturn {\n\t\t\trequests: this.requests.length,\n\t\t\texceptions: this.exceptions.length,\n\t\t\tlogs: this.logs.length,\n\t\t\toldestEntry: allTimestamps[0],\n\t\t\tnewestEntry: allTimestamps[allTimestamps.length - 1],\n\t\t};\n\t}\n\n\t// Clear all data (useful for testing)\n\n\tclear(): void {\n\t\tthis.requests = [];\n\t\tthis.exceptions = [];\n\t\tthis.logs = [];\n\t}\n\n\t// Private helpers\n\n\tprivate enforceLimit(type: 'requests' | 'exceptions' | 'logs'): void {\n\t\tconst entries = this[type];\n\t\tif (entries.length > this.maxEntries) {\n\t\t\tif (type === 'requests') {\n\t\t\t\tthis.requests = this.requests.slice(0, this.maxEntries);\n\t\t\t} else if (type === 'exceptions') {\n\t\t\t\tthis.exceptions = this.exceptions.slice(0, this.maxEntries);\n\t\t\t} else {\n\t\t\t\tthis.logs = this.logs.slice(0, this.maxEntries);\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate filterEntries<T extends { timestamp: Date; tags?: string[] }>(\n\t\tentries: T[],\n\t\toptions?: QueryOptions,\n\t): T[] {\n\t\tlet result = entries;\n\n\t\tif (options?.after) {\n\t\t\tresult = result.filter((e) => e.timestamp >= options.after!);\n\t\t}\n\n\t\tif (options?.before) {\n\t\t\tresult = result.filter((e) => e.timestamp <= options.before!);\n\t\t}\n\n\t\tif (options?.tags && options.tags.length > 0) {\n\t\t\tresult = result.filter(\n\t\t\t\t(e) => e.tags && options.tags?.some((t) => e.tags?.includes(t)),\n\t\t\t);\n\t\t}\n\n\t\tif (options?.search) {\n\t\t\tconst searchLower = options.search.toLowerCase();\n\t\t\tresult = result.filter((e) => {\n\t\t\t\tconst str = JSON.stringify(e).toLowerCase();\n\t\t\t\treturn str.includes(searchLower);\n\t\t\t});\n\t\t}\n\n\t\tconst offset = options?.offset ?? 0;\n\t\tconst limit = options?.limit ?? 50;\n\n\t\treturn result.slice(offset, offset + limit);\n\t}\n}\n"],"mappings":";;;;;;AAmBA,IAAa,kBAAb,MAAyD;CACxD,AAAQ,WAA2B,CAAE;CACrC,AAAQ,aAA+B,CAAE;CACzC,AAAQ,OAAmB,CAAE;CAC7B,AAAQ;CAER,YAAYA,SAAkC;AAC7C,OAAK,aAAa,SAAS,cAAc;CACzC;CAID,MAAM,YAAYC,OAAoC;AACrD,OAAK,SAAS,QAAQ,MAAM;AAC5B,OAAK,aAAa,WAAW;CAC7B;CAED,MAAM,aAAaC,SAAwC;AAC1D,OAAK,SAAS,QAAQ,GAAG,QAAQ;AACjC,OAAK,aAAa,WAAW;CAC7B;CAED,MAAM,YAAYC,SAAiD;EAClE,IAAI,SAAS,KAAK;AAGlB,MAAI,SAAS,OACZ,UAAS,OAAO,OAAO,CAAC,MAAM,EAAE,WAAW,QAAQ,OAAO;AAG3D,MAAI,SAAS,QAAQ;GACpB,MAAM,eAAe,QAAQ;AAC7B,YAAS,OAAO,OAAO,CAAC,MAAM;AAE7B,QAAI,aAAa,SAAS,KAAK,EAAE;KAChC,MAAM,YAAY,aAAa;AAC/B,UAAK,UAAW,QAAO;KACvB,MAAM,WAAW,SAAS,WAAW,GAAG;AACxC,YAAO,KAAK,MAAM,EAAE,SAAS,IAAI,KAAK;IACtC;AAED,WAAO,EAAE,WAAW,SAAS,cAAc,GAAG;GAC9C,EAAC;EACF;AAED,SAAO,KAAK,cAAc,QAAQ,QAAQ;CAC1C;CAED,MAAM,WAAWC,IAA0C;AAC1D,SAAO,KAAK,SAAS,KAAK,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI;CACjD;CAID,MAAM,cAAcC,OAAsC;AACzD,OAAK,WAAW,QAAQ,MAAM;AAC9B,OAAK,aAAa,aAAa;CAC/B;CAED,MAAM,eAAeC,SAA0C;AAC9D,OAAK,WAAW,QAAQ,GAAG,QAAQ;AACnC,OAAK,aAAa,aAAa;CAC/B;CAED,MAAM,cAAcH,SAAmD;AACtE,SAAO,KAAK,cAAc,KAAK,YAAY,QAAQ;CACnD;CAED,MAAM,aAAaC,IAA4C;AAC9D,SAAO,KAAK,WAAW,KAAK,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI;CACnD;CAID,MAAM,QAAQG,OAAgC;AAC7C,OAAK,KAAK,QAAQ,MAAM;AACxB,OAAK,aAAa,OAAO;CACzB;CAED,MAAM,SAASC,SAAoC;AAClD,OAAK,KAAK,QAAQ,GAAG,QAAQ;AAC7B,OAAK,aAAa,OAAO;CACzB;CAED,MAAM,QAAQL,SAA6C;EAC1D,IAAI,SAAS,KAAK;AAGlB,MAAI,SAAS,MACZ,UAAS,OAAO,OAAO,CAAC,MAAM,EAAE,UAAU,QAAQ,MAAM;AAGzD,SAAO,KAAK,cAAc,QAAQ,QAAQ;CAC1C;CAID,MAAM,MAAMM,WAAkC;EAC7C,MAAM,cACL,KAAK,SAAS,SAAS,KAAK,WAAW,SAAS,KAAK,KAAK;AAE3D,OAAK,WAAW,KAAK,SAAS,OAAO,CAAC,MAAM,EAAE,aAAa,UAAU;AACrE,OAAK,aAAa,KAAK,WAAW,OAAO,CAAC,MAAM,EAAE,aAAa,UAAU;AACzE,OAAK,OAAO,KAAK,KAAK,OAAO,CAAC,MAAM,EAAE,aAAa,UAAU;EAE7D,MAAM,aACL,KAAK,SAAS,SAAS,KAAK,WAAW,SAAS,KAAK,KAAK;AAC3D,SAAO,cAAc;CACrB;CAID,MAAM,WAAoC;EACzC,MAAM,gBAAgB;GACrB,GAAG,KAAK,SAAS,IAAI,CAAC,MAAM,EAAE,UAAU;GACxC,GAAG,KAAK,WAAW,IAAI,CAAC,MAAM,EAAE,UAAU;GAC1C,GAAG,KAAK,KAAK,IAAI,CAAC,MAAM,EAAE,UAAU;EACpC,EAAC,KAAK,CAAC,GAAG,MAAM,EAAE,SAAS,GAAG,EAAE,SAAS,CAAC;AAE3C,SAAO;GACN,UAAU,KAAK,SAAS;GACxB,YAAY,KAAK,WAAW;GAC5B,MAAM,KAAK,KAAK;GAChB,aAAa,cAAc;GAC3B,aAAa,cAAc,cAAc,SAAS;EAClD;CACD;CAID,QAAc;AACb,OAAK,WAAW,CAAE;AAClB,OAAK,aAAa,CAAE;AACpB,OAAK,OAAO,CAAE;CACd;CAID,AAAQ,aAAaC,MAAgD;EACpE,MAAM,UAAU,KAAK;AACrB,MAAI,QAAQ,SAAS,KAAK,WACzB,KAAI,SAAS,WACZ,MAAK,WAAW,KAAK,SAAS,MAAM,GAAG,KAAK,WAAW;WAC7C,SAAS,aACnB,MAAK,aAAa,KAAK,WAAW,MAAM,GAAG,KAAK,WAAW;MAE3D,MAAK,OAAO,KAAK,KAAK,MAAM,GAAG,KAAK,WAAW;CAGjD;CAED,AAAQ,cACPC,SACAR,SACM;EACN,IAAI,SAAS;AAEb,MAAI,SAAS,MACZ,UAAS,OAAO,OAAO,CAAC,MAAM,EAAE,aAAa,QAAQ,MAAO;AAG7D,MAAI,SAAS,OACZ,UAAS,OAAO,OAAO,CAAC,MAAM,EAAE,aAAa,QAAQ,OAAQ;AAG9D,MAAI,SAAS,QAAQ,QAAQ,KAAK,SAAS,EAC1C,UAAS,OAAO,OACf,CAAC,MAAM,EAAE,QAAQ,QAAQ,MAAM,KAAK,CAAC,MAAM,EAAE,MAAM,SAAS,EAAE,CAAC,CAC/D;AAGF,MAAI,SAAS,QAAQ;GACpB,MAAM,cAAc,QAAQ,OAAO,aAAa;AAChD,YAAS,OAAO,OAAO,CAAC,MAAM;IAC7B,MAAM,MAAM,KAAK,UAAU,EAAE,CAAC,aAAa;AAC3C,WAAO,IAAI,SAAS,YAAY;GAChC,EAAC;EACF;EAED,MAAM,SAAS,SAAS,UAAU;EAClC,MAAM,QAAQ,SAAS,SAAS;AAEhC,SAAO,OAAO,MAAM,QAAQ,SAAS,MAAM;CAC3C;AACD"}
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
|
|
2
|
+
//#region src/storage/memory.ts
|
|
3
|
+
/**
|
|
4
|
+
* In-memory storage for Telescope data.
|
|
5
|
+
* Ideal for development and testing.
|
|
6
|
+
* Data is lost when the process restarts.
|
|
7
|
+
*/
|
|
8
|
+
var InMemoryStorage = class {
|
|
9
|
+
requests = [];
|
|
10
|
+
exceptions = [];
|
|
11
|
+
logs = [];
|
|
12
|
+
maxEntries;
|
|
13
|
+
constructor(options) {
|
|
14
|
+
this.maxEntries = options?.maxEntries ?? 1e3;
|
|
15
|
+
}
|
|
16
|
+
async saveRequest(entry) {
|
|
17
|
+
this.requests.unshift(entry);
|
|
18
|
+
this.enforceLimit("requests");
|
|
19
|
+
}
|
|
20
|
+
async saveRequests(entries) {
|
|
21
|
+
this.requests.unshift(...entries);
|
|
22
|
+
this.enforceLimit("requests");
|
|
23
|
+
}
|
|
24
|
+
async getRequests(options) {
|
|
25
|
+
let result = this.requests;
|
|
26
|
+
if (options?.method) result = result.filter((r) => r.method === options.method);
|
|
27
|
+
if (options?.status) {
|
|
28
|
+
const statusFilter = options.status;
|
|
29
|
+
result = result.filter((r) => {
|
|
30
|
+
if (statusFilter.endsWith("xx")) {
|
|
31
|
+
const firstChar = statusFilter[0];
|
|
32
|
+
if (!firstChar) return false;
|
|
33
|
+
const category = parseInt(firstChar, 10);
|
|
34
|
+
return Math.floor(r.status / 100) === category;
|
|
35
|
+
}
|
|
36
|
+
return r.status === parseInt(statusFilter, 10);
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
return this.filterEntries(result, options);
|
|
40
|
+
}
|
|
41
|
+
async getRequest(id) {
|
|
42
|
+
return this.requests.find((r) => r.id === id) ?? null;
|
|
43
|
+
}
|
|
44
|
+
async saveException(entry) {
|
|
45
|
+
this.exceptions.unshift(entry);
|
|
46
|
+
this.enforceLimit("exceptions");
|
|
47
|
+
}
|
|
48
|
+
async saveExceptions(entries) {
|
|
49
|
+
this.exceptions.unshift(...entries);
|
|
50
|
+
this.enforceLimit("exceptions");
|
|
51
|
+
}
|
|
52
|
+
async getExceptions(options) {
|
|
53
|
+
return this.filterEntries(this.exceptions, options);
|
|
54
|
+
}
|
|
55
|
+
async getException(id) {
|
|
56
|
+
return this.exceptions.find((e) => e.id === id) ?? null;
|
|
57
|
+
}
|
|
58
|
+
async saveLog(entry) {
|
|
59
|
+
this.logs.unshift(entry);
|
|
60
|
+
this.enforceLimit("logs");
|
|
61
|
+
}
|
|
62
|
+
async saveLogs(entries) {
|
|
63
|
+
this.logs.unshift(...entries);
|
|
64
|
+
this.enforceLimit("logs");
|
|
65
|
+
}
|
|
66
|
+
async getLogs(options) {
|
|
67
|
+
let result = this.logs;
|
|
68
|
+
if (options?.level) result = result.filter((l) => l.level === options.level);
|
|
69
|
+
return this.filterEntries(result, options);
|
|
70
|
+
}
|
|
71
|
+
async prune(olderThan) {
|
|
72
|
+
const beforeCount = this.requests.length + this.exceptions.length + this.logs.length;
|
|
73
|
+
this.requests = this.requests.filter((r) => r.timestamp >= olderThan);
|
|
74
|
+
this.exceptions = this.exceptions.filter((e) => e.timestamp >= olderThan);
|
|
75
|
+
this.logs = this.logs.filter((l) => l.timestamp >= olderThan);
|
|
76
|
+
const afterCount = this.requests.length + this.exceptions.length + this.logs.length;
|
|
77
|
+
return beforeCount - afterCount;
|
|
78
|
+
}
|
|
79
|
+
async getStats() {
|
|
80
|
+
const allTimestamps = [
|
|
81
|
+
...this.requests.map((r) => r.timestamp),
|
|
82
|
+
...this.exceptions.map((e) => e.timestamp),
|
|
83
|
+
...this.logs.map((l) => l.timestamp)
|
|
84
|
+
].sort((a, b) => a.getTime() - b.getTime());
|
|
85
|
+
return {
|
|
86
|
+
requests: this.requests.length,
|
|
87
|
+
exceptions: this.exceptions.length,
|
|
88
|
+
logs: this.logs.length,
|
|
89
|
+
oldestEntry: allTimestamps[0],
|
|
90
|
+
newestEntry: allTimestamps[allTimestamps.length - 1]
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
clear() {
|
|
94
|
+
this.requests = [];
|
|
95
|
+
this.exceptions = [];
|
|
96
|
+
this.logs = [];
|
|
97
|
+
}
|
|
98
|
+
enforceLimit(type) {
|
|
99
|
+
const entries = this[type];
|
|
100
|
+
if (entries.length > this.maxEntries) if (type === "requests") this.requests = this.requests.slice(0, this.maxEntries);
|
|
101
|
+
else if (type === "exceptions") this.exceptions = this.exceptions.slice(0, this.maxEntries);
|
|
102
|
+
else this.logs = this.logs.slice(0, this.maxEntries);
|
|
103
|
+
}
|
|
104
|
+
filterEntries(entries, options) {
|
|
105
|
+
let result = entries;
|
|
106
|
+
if (options?.after) result = result.filter((e) => e.timestamp >= options.after);
|
|
107
|
+
if (options?.before) result = result.filter((e) => e.timestamp <= options.before);
|
|
108
|
+
if (options?.tags && options.tags.length > 0) result = result.filter((e) => e.tags && options.tags?.some((t) => e.tags?.includes(t)));
|
|
109
|
+
if (options?.search) {
|
|
110
|
+
const searchLower = options.search.toLowerCase();
|
|
111
|
+
result = result.filter((e) => {
|
|
112
|
+
const str = JSON.stringify(e).toLowerCase();
|
|
113
|
+
return str.includes(searchLower);
|
|
114
|
+
});
|
|
115
|
+
}
|
|
116
|
+
const offset = options?.offset ?? 0;
|
|
117
|
+
const limit = options?.limit ?? 50;
|
|
118
|
+
return result.slice(offset, offset + limit);
|
|
119
|
+
}
|
|
120
|
+
};
|
|
121
|
+
|
|
122
|
+
//#endregion
|
|
123
|
+
Object.defineProperty(exports, 'InMemoryStorage', {
|
|
124
|
+
enumerable: true,
|
|
125
|
+
get: function () {
|
|
126
|
+
return InMemoryStorage;
|
|
127
|
+
}
|
|
128
|
+
});
|
|
129
|
+
//# sourceMappingURL=memory-B0d_n1g5.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memory-B0d_n1g5.cjs","names":["options?: InMemoryStorageOptions","entry: RequestEntry","entries: RequestEntry[]","options?: QueryOptions","id: string","entry: ExceptionEntry","entries: ExceptionEntry[]","entry: LogEntry","entries: LogEntry[]","olderThan: Date","type: 'requests' | 'exceptions' | 'logs'","entries: T[]"],"sources":["../src/storage/memory.ts"],"sourcesContent":["import type {\n\tExceptionEntry,\n\tLogEntry,\n\tQueryOptions,\n\tRequestEntry,\n\tTelescopeStats,\n\tTelescopeStorage,\n} from '../types';\n\nexport interface InMemoryStorageOptions {\n\t/** Maximum number of entries to keep per type (default: 1000) */\n\tmaxEntries?: number;\n}\n\n/**\n * In-memory storage for Telescope data.\n * Ideal for development and testing.\n * Data is lost when the process restarts.\n */\nexport class InMemoryStorage implements TelescopeStorage {\n\tprivate requests: RequestEntry[] = [];\n\tprivate exceptions: ExceptionEntry[] = [];\n\tprivate logs: LogEntry[] = [];\n\tprivate maxEntries: number;\n\n\tconstructor(options?: InMemoryStorageOptions) {\n\t\tthis.maxEntries = options?.maxEntries ?? 1000;\n\t}\n\n\t// Requests\n\n\tasync saveRequest(entry: RequestEntry): Promise<void> {\n\t\tthis.requests.unshift(entry);\n\t\tthis.enforceLimit('requests');\n\t}\n\n\tasync saveRequests(entries: RequestEntry[]): Promise<void> {\n\t\tthis.requests.unshift(...entries);\n\t\tthis.enforceLimit('requests');\n\t}\n\n\tasync getRequests(options?: QueryOptions): Promise<RequestEntry[]> {\n\t\tlet result = this.requests;\n\n\t\t// Apply request-specific filters before generic filtering\n\t\tif (options?.method) {\n\t\t\tresult = result.filter((r) => r.method === options.method);\n\t\t}\n\n\t\tif (options?.status) {\n\t\t\tconst statusFilter = options.status;\n\t\t\tresult = result.filter((r) => {\n\t\t\t\t// Handle status ranges like \"2xx\", \"4xx\", \"5xx\"\n\t\t\t\tif (statusFilter.endsWith('xx')) {\n\t\t\t\t\tconst firstChar = statusFilter[0];\n\t\t\t\t\tif (!firstChar) return false;\n\t\t\t\t\tconst category = parseInt(firstChar, 10);\n\t\t\t\t\treturn Math.floor(r.status / 100) === category;\n\t\t\t\t}\n\t\t\t\t// Handle exact status codes\n\t\t\t\treturn r.status === parseInt(statusFilter, 10);\n\t\t\t});\n\t\t}\n\n\t\treturn this.filterEntries(result, options);\n\t}\n\n\tasync getRequest(id: string): Promise<RequestEntry | null> {\n\t\treturn this.requests.find((r) => r.id === id) ?? null;\n\t}\n\n\t// Exceptions\n\n\tasync saveException(entry: ExceptionEntry): Promise<void> {\n\t\tthis.exceptions.unshift(entry);\n\t\tthis.enforceLimit('exceptions');\n\t}\n\n\tasync saveExceptions(entries: ExceptionEntry[]): Promise<void> {\n\t\tthis.exceptions.unshift(...entries);\n\t\tthis.enforceLimit('exceptions');\n\t}\n\n\tasync getExceptions(options?: QueryOptions): Promise<ExceptionEntry[]> {\n\t\treturn this.filterEntries(this.exceptions, options);\n\t}\n\n\tasync getException(id: string): Promise<ExceptionEntry | null> {\n\t\treturn this.exceptions.find((e) => e.id === id) ?? null;\n\t}\n\n\t// Logs\n\n\tasync saveLog(entry: LogEntry): Promise<void> {\n\t\tthis.logs.unshift(entry);\n\t\tthis.enforceLimit('logs');\n\t}\n\n\tasync saveLogs(entries: LogEntry[]): Promise<void> {\n\t\tthis.logs.unshift(...entries);\n\t\tthis.enforceLimit('logs');\n\t}\n\n\tasync getLogs(options?: QueryOptions): Promise<LogEntry[]> {\n\t\tlet result = this.logs;\n\n\t\t// Apply log-specific filters before generic filtering\n\t\tif (options?.level) {\n\t\t\tresult = result.filter((l) => l.level === options.level);\n\t\t}\n\n\t\treturn this.filterEntries(result, options);\n\t}\n\n\t// Cleanup\n\n\tasync prune(olderThan: Date): Promise<number> {\n\t\tconst beforeCount =\n\t\t\tthis.requests.length + this.exceptions.length + this.logs.length;\n\n\t\tthis.requests = this.requests.filter((r) => r.timestamp >= olderThan);\n\t\tthis.exceptions = this.exceptions.filter((e) => e.timestamp >= olderThan);\n\t\tthis.logs = this.logs.filter((l) => l.timestamp >= olderThan);\n\n\t\tconst afterCount =\n\t\t\tthis.requests.length + this.exceptions.length + this.logs.length;\n\t\treturn beforeCount - afterCount;\n\t}\n\n\t// Stats\n\n\tasync getStats(): Promise<TelescopeStats> {\n\t\tconst allTimestamps = [\n\t\t\t...this.requests.map((r) => r.timestamp),\n\t\t\t...this.exceptions.map((e) => e.timestamp),\n\t\t\t...this.logs.map((l) => l.timestamp),\n\t\t].sort((a, b) => a.getTime() - b.getTime());\n\n\t\treturn {\n\t\t\trequests: this.requests.length,\n\t\t\texceptions: this.exceptions.length,\n\t\t\tlogs: this.logs.length,\n\t\t\toldestEntry: allTimestamps[0],\n\t\t\tnewestEntry: allTimestamps[allTimestamps.length - 1],\n\t\t};\n\t}\n\n\t// Clear all data (useful for testing)\n\n\tclear(): void {\n\t\tthis.requests = [];\n\t\tthis.exceptions = [];\n\t\tthis.logs = [];\n\t}\n\n\t// Private helpers\n\n\tprivate enforceLimit(type: 'requests' | 'exceptions' | 'logs'): void {\n\t\tconst entries = this[type];\n\t\tif (entries.length > this.maxEntries) {\n\t\t\tif (type === 'requests') {\n\t\t\t\tthis.requests = this.requests.slice(0, this.maxEntries);\n\t\t\t} else if (type === 'exceptions') {\n\t\t\t\tthis.exceptions = this.exceptions.slice(0, this.maxEntries);\n\t\t\t} else {\n\t\t\t\tthis.logs = this.logs.slice(0, this.maxEntries);\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate filterEntries<T extends { timestamp: Date; tags?: string[] }>(\n\t\tentries: T[],\n\t\toptions?: QueryOptions,\n\t): T[] {\n\t\tlet result = entries;\n\n\t\tif (options?.after) {\n\t\t\tresult = result.filter((e) => e.timestamp >= options.after!);\n\t\t}\n\n\t\tif (options?.before) {\n\t\t\tresult = result.filter((e) => e.timestamp <= options.before!);\n\t\t}\n\n\t\tif (options?.tags && options.tags.length > 0) {\n\t\t\tresult = result.filter(\n\t\t\t\t(e) => e.tags && options.tags?.some((t) => e.tags?.includes(t)),\n\t\t\t);\n\t\t}\n\n\t\tif (options?.search) {\n\t\t\tconst searchLower = options.search.toLowerCase();\n\t\t\tresult = result.filter((e) => {\n\t\t\t\tconst str = JSON.stringify(e).toLowerCase();\n\t\t\t\treturn str.includes(searchLower);\n\t\t\t});\n\t\t}\n\n\t\tconst offset = options?.offset ?? 0;\n\t\tconst limit = options?.limit ?? 50;\n\n\t\treturn result.slice(offset, offset + limit);\n\t}\n}\n"],"mappings":";;;;;;;AAmBA,IAAa,kBAAb,MAAyD;CACxD,AAAQ,WAA2B,CAAE;CACrC,AAAQ,aAA+B,CAAE;CACzC,AAAQ,OAAmB,CAAE;CAC7B,AAAQ;CAER,YAAYA,SAAkC;AAC7C,OAAK,aAAa,SAAS,cAAc;CACzC;CAID,MAAM,YAAYC,OAAoC;AACrD,OAAK,SAAS,QAAQ,MAAM;AAC5B,OAAK,aAAa,WAAW;CAC7B;CAED,MAAM,aAAaC,SAAwC;AAC1D,OAAK,SAAS,QAAQ,GAAG,QAAQ;AACjC,OAAK,aAAa,WAAW;CAC7B;CAED,MAAM,YAAYC,SAAiD;EAClE,IAAI,SAAS,KAAK;AAGlB,MAAI,SAAS,OACZ,UAAS,OAAO,OAAO,CAAC,MAAM,EAAE,WAAW,QAAQ,OAAO;AAG3D,MAAI,SAAS,QAAQ;GACpB,MAAM,eAAe,QAAQ;AAC7B,YAAS,OAAO,OAAO,CAAC,MAAM;AAE7B,QAAI,aAAa,SAAS,KAAK,EAAE;KAChC,MAAM,YAAY,aAAa;AAC/B,UAAK,UAAW,QAAO;KACvB,MAAM,WAAW,SAAS,WAAW,GAAG;AACxC,YAAO,KAAK,MAAM,EAAE,SAAS,IAAI,KAAK;IACtC;AAED,WAAO,EAAE,WAAW,SAAS,cAAc,GAAG;GAC9C,EAAC;EACF;AAED,SAAO,KAAK,cAAc,QAAQ,QAAQ;CAC1C;CAED,MAAM,WAAWC,IAA0C;AAC1D,SAAO,KAAK,SAAS,KAAK,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI;CACjD;CAID,MAAM,cAAcC,OAAsC;AACzD,OAAK,WAAW,QAAQ,MAAM;AAC9B,OAAK,aAAa,aAAa;CAC/B;CAED,MAAM,eAAeC,SAA0C;AAC9D,OAAK,WAAW,QAAQ,GAAG,QAAQ;AACnC,OAAK,aAAa,aAAa;CAC/B;CAED,MAAM,cAAcH,SAAmD;AACtE,SAAO,KAAK,cAAc,KAAK,YAAY,QAAQ;CACnD;CAED,MAAM,aAAaC,IAA4C;AAC9D,SAAO,KAAK,WAAW,KAAK,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI;CACnD;CAID,MAAM,QAAQG,OAAgC;AAC7C,OAAK,KAAK,QAAQ,MAAM;AACxB,OAAK,aAAa,OAAO;CACzB;CAED,MAAM,SAASC,SAAoC;AAClD,OAAK,KAAK,QAAQ,GAAG,QAAQ;AAC7B,OAAK,aAAa,OAAO;CACzB;CAED,MAAM,QAAQL,SAA6C;EAC1D,IAAI,SAAS,KAAK;AAGlB,MAAI,SAAS,MACZ,UAAS,OAAO,OAAO,CAAC,MAAM,EAAE,UAAU,QAAQ,MAAM;AAGzD,SAAO,KAAK,cAAc,QAAQ,QAAQ;CAC1C;CAID,MAAM,MAAMM,WAAkC;EAC7C,MAAM,cACL,KAAK,SAAS,SAAS,KAAK,WAAW,SAAS,KAAK,KAAK;AAE3D,OAAK,WAAW,KAAK,SAAS,OAAO,CAAC,MAAM,EAAE,aAAa,UAAU;AACrE,OAAK,aAAa,KAAK,WAAW,OAAO,CAAC,MAAM,EAAE,aAAa,UAAU;AACzE,OAAK,OAAO,KAAK,KAAK,OAAO,CAAC,MAAM,EAAE,aAAa,UAAU;EAE7D,MAAM,aACL,KAAK,SAAS,SAAS,KAAK,WAAW,SAAS,KAAK,KAAK;AAC3D,SAAO,cAAc;CACrB;CAID,MAAM,WAAoC;EACzC,MAAM,gBAAgB;GACrB,GAAG,KAAK,SAAS,IAAI,CAAC,MAAM,EAAE,UAAU;GACxC,GAAG,KAAK,WAAW,IAAI,CAAC,MAAM,EAAE,UAAU;GAC1C,GAAG,KAAK,KAAK,IAAI,CAAC,MAAM,EAAE,UAAU;EACpC,EAAC,KAAK,CAAC,GAAG,MAAM,EAAE,SAAS,GAAG,EAAE,SAAS,CAAC;AAE3C,SAAO;GACN,UAAU,KAAK,SAAS;GACxB,YAAY,KAAK,WAAW;GAC5B,MAAM,KAAK,KAAK;GAChB,aAAa,cAAc;GAC3B,aAAa,cAAc,cAAc,SAAS;EAClD;CACD;CAID,QAAc;AACb,OAAK,WAAW,CAAE;AAClB,OAAK,aAAa,CAAE;AACpB,OAAK,OAAO,CAAE;CACd;CAID,AAAQ,aAAaC,MAAgD;EACpE,MAAM,UAAU,KAAK;AACrB,MAAI,QAAQ,SAAS,KAAK,WACzB,KAAI,SAAS,WACZ,MAAK,WAAW,KAAK,SAAS,MAAM,GAAG,KAAK,WAAW;WAC7C,SAAS,aACnB,MAAK,aAAa,KAAK,WAAW,MAAM,GAAG,KAAK,WAAW;MAE3D,MAAK,OAAO,KAAK,KAAK,MAAM,GAAG,KAAK,WAAW;CAGjD;CAED,AAAQ,cACPC,SACAR,SACM;EACN,IAAI,SAAS;AAEb,MAAI,SAAS,MACZ,UAAS,OAAO,OAAO,CAAC,MAAM,EAAE,aAAa,QAAQ,MAAO;AAG7D,MAAI,SAAS,OACZ,UAAS,OAAO,OAAO,CAAC,MAAM,EAAE,aAAa,QAAQ,OAAQ;AAG9D,MAAI,SAAS,QAAQ,QAAQ,KAAK,SAAS,EAC1C,UAAS,OAAO,OACf,CAAC,MAAM,EAAE,QAAQ,QAAQ,MAAM,KAAK,CAAC,MAAM,EAAE,MAAM,SAAS,EAAE,CAAC,CAC/D;AAGF,MAAI,SAAS,QAAQ;GACpB,MAAM,cAAc,QAAQ,OAAO,aAAa;AAChD,YAAS,OAAO,OAAO,CAAC,MAAM;IAC7B,MAAM,MAAM,KAAK,UAAU,EAAE,CAAC,aAAa;AAC3C,WAAO,IAAI,SAAS,YAAY;GAChC,EAAC;EACF;EAED,MAAM,SAAS,SAAS,UAAU;EAClC,MAAM,QAAQ,SAAS,SAAS;AAEhC,SAAO,OAAO,MAAM,QAAQ,SAAS,MAAM;CAC3C;AACD"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { ExceptionEntry, LogEntry, QueryOptions, RequestEntry, TelescopeStats, TelescopeStorage } from "./types-B1EIa_cQ.mjs";
|
|
2
|
+
|
|
3
|
+
//#region src/storage/memory.d.ts
|
|
4
|
+
interface InMemoryStorageOptions {
|
|
5
|
+
/** Maximum number of entries to keep per type (default: 1000) */
|
|
6
|
+
maxEntries?: number;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* In-memory storage for Telescope data.
|
|
10
|
+
* Ideal for development and testing.
|
|
11
|
+
* Data is lost when the process restarts.
|
|
12
|
+
*/
|
|
13
|
+
declare class InMemoryStorage implements TelescopeStorage {
|
|
14
|
+
private requests;
|
|
15
|
+
private exceptions;
|
|
16
|
+
private logs;
|
|
17
|
+
private maxEntries;
|
|
18
|
+
constructor(options?: InMemoryStorageOptions);
|
|
19
|
+
saveRequest(entry: RequestEntry): Promise<void>;
|
|
20
|
+
saveRequests(entries: RequestEntry[]): Promise<void>;
|
|
21
|
+
getRequests(options?: QueryOptions): Promise<RequestEntry[]>;
|
|
22
|
+
getRequest(id: string): Promise<RequestEntry | null>;
|
|
23
|
+
saveException(entry: ExceptionEntry): Promise<void>;
|
|
24
|
+
saveExceptions(entries: ExceptionEntry[]): Promise<void>;
|
|
25
|
+
getExceptions(options?: QueryOptions): Promise<ExceptionEntry[]>;
|
|
26
|
+
getException(id: string): Promise<ExceptionEntry | null>;
|
|
27
|
+
saveLog(entry: LogEntry): Promise<void>;
|
|
28
|
+
saveLogs(entries: LogEntry[]): Promise<void>;
|
|
29
|
+
getLogs(options?: QueryOptions): Promise<LogEntry[]>;
|
|
30
|
+
prune(olderThan: Date): Promise<number>;
|
|
31
|
+
getStats(): Promise<TelescopeStats>;
|
|
32
|
+
clear(): void;
|
|
33
|
+
private enforceLimit;
|
|
34
|
+
private filterEntries;
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=memory.d.ts.map
|
|
37
|
+
|
|
38
|
+
//#endregion
|
|
39
|
+
export { InMemoryStorage, InMemoryStorageOptions };
|
|
40
|
+
//# sourceMappingURL=memory-DCirEVFW.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memory-DCirEVFW.d.mts","names":[],"sources":["../src/storage/memory.ts"],"sourcesContent":[],"mappings":";;;UASiB,sBAAA;;EAAA,UAAA,CAAA,EAAA,MAAA;AAUjB;;;;;;AAiB8C,cAjBjC,eAAA,YAA2B,gBAiBM,CAAA;EAAO,QAKxB,QAAA;EAAY,QAAW,UAAA;EAAY,QAApB,IAAA;EAAO,QA0BZ,UAAA;EAAY,WAApB,CAAA,OAAA,CAAA,EA1CR,sBA0CQ;EAAO,WAMV,CAAA,KAAA,EA1CF,YA0CE,CAAA,EA1Ca,OA0Cb,CAAA,IAAA,CAAA;EAAc,YAAG,CAAA,OAAA,EArChB,YAqCgB,EAAA,CAAA,EArCC,OAqCD,CAAA,IAAA,CAAA;EAAO,WAKrB,CAAA,OAAA,CAAA,EArCF,YAqCE,CAAA,EArCa,OAqCb,CArCqB,YAqCrB,EAAA,CAAA;EAAc,UAAK,CAAA,EAAA,EAAA,MAAA,CAAA,EAXnB,OAWmB,CAXX,YAWW,GAAA,IAAA,CAAA;EAAO,aAK1B,CAAA,KAAA,EAVH,cAUG,CAAA,EAVc,OAUd,CAAA,IAAA,CAAA;EAAY,cAAW,CAAA,OAAA,EALvB,cAKuB,EAAA,CAAA,EALJ,OAKI,CAAA,IAAA,CAAA;EAAc,aAAtB,CAAA,OAAA,CAAA,EAAf,YAAe,CAAA,EAAA,OAAA,CAAQ,cAAR,EAAA,CAAA;EAAO,YAIZ,CAAA,EAAA,EAAA,MAAA,CAAA,EAAR,OAAQ,CAAA,cAAA,GAAA,IAAA,CAAA;EAAc,OAAtB,CAAA,KAAA,EAMX,QANW,CAAA,EAMA,OANA,CAAA,IAAA,CAAA;EAAO,QAMlB,CAAA,OAAA,EAKG,QALH,EAAA,CAAA,EAKgB,OALhB,CAAA,IAAA,CAAA;EAAQ,OAAG,CAAA,OAAA,CAAA,EAUR,YAVQ,CAAA,EAUO,OAVP,CAUe,QAVf,EAAA,CAAA;EAAO,KAKf,CAAA,SAAA,EAkBD,IAlBC,CAAA,EAkBM,OAlBN,CAAA,MAAA,CAAA;EAAQ,QAAK,CAAA,CAAA,EAiCnB,OAjCmB,CAiCX,cAjCW,CAAA;EAAO,KAKpB,CAAA,CAAA,EAAA,IAAA;EAAY,QAAW,YAAA;EAAQ,QAAhB,aAAA"}
|