@rudderjs/telescope 13.0.1 → 13.1.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 (54) hide show
  1. package/README.md +13 -1
  2. package/dist/collectors/event.d.ts.map +1 -1
  3. package/dist/collectors/event.js +8 -3
  4. package/dist/collectors/event.js.map +1 -1
  5. package/dist/collectors/exception.d.ts +13 -0
  6. package/dist/collectors/exception.d.ts.map +1 -1
  7. package/dist/collectors/exception.js +13 -0
  8. package/dist/collectors/exception.js.map +1 -1
  9. package/dist/collectors/request.d.ts.map +1 -1
  10. package/dist/collectors/request.js +15 -4
  11. package/dist/collectors/request.js.map +1 -1
  12. package/dist/index.d.ts +18 -0
  13. package/dist/index.d.ts.map +1 -1
  14. package/dist/index.js +24 -0
  15. package/dist/index.js.map +1 -1
  16. package/dist/routes.d.ts +8 -0
  17. package/dist/routes.d.ts.map +1 -1
  18. package/dist/routes.js +20 -6
  19. package/dist/routes.js.map +1 -1
  20. package/dist/storage.d.ts +26 -0
  21. package/dist/storage.d.ts.map +1 -1
  22. package/dist/storage.js +34 -6
  23. package/dist/storage.js.map +1 -1
  24. package/dist/stream.d.ts +23 -0
  25. package/dist/stream.d.ts.map +1 -0
  26. package/dist/stream.js +96 -0
  27. package/dist/stream.js.map +1 -0
  28. package/dist/types.d.ts +29 -0
  29. package/dist/types.d.ts.map +1 -1
  30. package/dist/types.js +22 -0
  31. package/dist/types.js.map +1 -1
  32. package/dist/views/vanilla/EntryList.d.ts +8 -0
  33. package/dist/views/vanilla/EntryList.d.ts.map +1 -1
  34. package/dist/views/vanilla/EntryList.js +62 -11
  35. package/dist/views/vanilla/EntryList.js.map +1 -1
  36. package/dist/views/vanilla/Layout.d.ts.map +1 -1
  37. package/dist/views/vanilla/Layout.js +6 -1
  38. package/dist/views/vanilla/Layout.js.map +1 -1
  39. package/dist/views/vanilla/details/ai-views.d.ts +16 -0
  40. package/dist/views/vanilla/details/ai-views.d.ts.map +1 -0
  41. package/dist/views/vanilla/details/ai-views.js +136 -0
  42. package/dist/views/vanilla/details/ai-views.js.map +1 -0
  43. package/dist/views/vanilla/details/format.d.ts +16 -0
  44. package/dist/views/vanilla/details/format.d.ts.map +1 -0
  45. package/dist/views/vanilla/details/format.js +45 -0
  46. package/dist/views/vanilla/details/format.js.map +1 -0
  47. package/dist/views/vanilla/details/request-views.d.ts +15 -0
  48. package/dist/views/vanilla/details/request-views.d.ts.map +1 -0
  49. package/dist/views/vanilla/details/request-views.js +135 -0
  50. package/dist/views/vanilla/details/request-views.js.map +1 -0
  51. package/dist/views/vanilla/details/views.d.ts.map +1 -1
  52. package/dist/views/vanilla/details/views.js +3 -295
  53. package/dist/views/vanilla/details/views.js.map +1 -1
  54. package/package.json +26 -26
package/README.md CHANGED
@@ -23,15 +23,27 @@ export default {
23
23
  enabled: Env.getBool('TELESCOPE_ENABLED', true),
24
24
  path: 'telescope',
25
25
  storage: 'memory',
26
+ // Real-time dashboard:
27
+ // 'polling' (default) — re-fetch every `pollInterval` ms when Live is on
28
+ // 'stream' — subscribe to `<path>/api/stream` via EventSource
29
+ updates: 'polling',
30
+ pollInterval: 2000,
26
31
  } satisfies TelescopeConfig
27
32
  ```
28
33
 
34
+ ### Real-time updates (SSE)
35
+
36
+ Flip `updates: 'stream'` and the dashboard subscribes to a Server-Sent Events
37
+ endpoint instead of polling. New entries appear the moment they're recorded —
38
+ no peer dependency, no WebSocket upgrade, no extra auth model. The existing
39
+ recording toggle and auth gate still apply to the stream endpoint.
40
+
29
41
  ## Dashboard
30
42
 
31
43
  Telescope serves a built-in UI at `/{path}` (default `/telescope`) with:
32
44
 
33
45
  - **Dashboard** — count cards for all entry types
34
- - **Per-type list pages** — searchable, paginated tables with tag filtering and auto-refresh (2s polling)
46
+ - **Per-type list pages** — searchable, paginated tables with tag filtering and a live-updates toggle (polling by default, SSE-streamed if `updates: 'stream'`)
35
47
  - **Detail pages** — rich, type-specific views at `/telescope/{type}/{id}` (formatted SQL, mail HTML preview, stack traces, WebSocket timelines, etc.)
36
48
  - **Batch grouping** — entries linked by `batchId` (e.g. all queries from one request, all events from one WebSocket connection) viewable at `/telescope/batches/{batchId}`
37
49
  - **Sensitive data redaction** — headers and body fields are redacted at collection time, before they reach storage
@@ -1 +1 @@
1
- {"version":3,"file":"event.d.ts","sourceRoot":"","sources":["../../src/collectors/event.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAI9D;;GAEG;AACH,qBAAa,cAAe,YAAW,SAAS;IAIlC,OAAO,CAAC,QAAQ,CAAC,OAAO;IAHpC,QAAQ,CAAC,IAAI,qBAAoB;IACjC,QAAQ,CAAC,IAAI,EAAG,OAAO,CAAS;gBAEH,OAAO,EAAE,gBAAgB;IAEhD,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAgB/B,OAAO,CAAC,MAAM;CAaf"}
1
+ {"version":3,"file":"event.d.ts","sourceRoot":"","sources":["../../src/collectors/event.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAI9D;;GAEG;AACH,qBAAa,cAAe,YAAW,SAAS;IAIlC,OAAO,CAAC,QAAQ,CAAC,OAAO;IAHpC,QAAQ,CAAC,IAAI,qBAAoB;IACjC,QAAQ,CAAC,IAAI,EAAG,OAAO,CAAS;gBAEH,OAAO,EAAE,gBAAgB;IAEhD,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAgB/B,OAAO,CAAC,MAAM;CAiBf"}
@@ -28,9 +28,14 @@ export class EventCollector {
28
28
  return;
29
29
  this.storage.store(createEntry('event', {
30
30
  name,
31
- payload: event && typeof event === 'object'
32
- ? JSON.parse(JSON.stringify(event))
33
- : { value: event },
31
+ payload: (() => {
32
+ try {
33
+ return event && typeof event === 'object' ? JSON.parse(JSON.stringify(event)) : { value: event };
34
+ }
35
+ catch {
36
+ return { value: String(event) };
37
+ }
38
+ })(),
34
39
  }, { tags: [`event:${name}`], ...batchOpts() }));
35
40
  }
36
41
  }
@@ -1 +1 @@
1
- {"version":3,"file":"event.js","sourceRoot":"","sources":["../../src/collectors/event.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAE/C;;GAEG;AACH,MAAM,OAAO,cAAc;IAII;IAHpB,IAAI,GAAG,iBAAiB,CAAA;IACxB,IAAI,GAAG,OAAgB,CAAA;IAEhC,YAA6B,OAAyB;QAAzB,YAAO,GAAP,OAAO,CAAkB;IAAG,CAAC;IAE1D,KAAK,CAAC,QAAQ;QACZ,IAAI,CAAC;YACH,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAInD,CAAA;YAED,UAAU,CAAC,QAAQ,CAAC,GAAG,EAAE;gBACvB,MAAM,EAAE,CAAC,KAAc,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;aAC/C,CAAC,CAAA;QACJ,CAAC;QAAC,MAAM,CAAC;YACP,6CAA6C;QAC/C,CAAC;IACH,CAAC;IAEO,MAAM,CAAC,KAAc;QAC3B,MAAM,IAAI,GAAG,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAA;QAEpF,+CAA+C;QAC/C,IAAI,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC;YAAE,OAAM;QAExC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,OAAO,EAAE;YACtC,IAAI;YACJ,OAAO,EAAE,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;gBACzC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;gBACnC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE;SACrB,EAAE,EAAE,IAAI,EAAE,CAAC,SAAS,IAAI,EAAE,CAAC,EAAE,GAAG,SAAS,EAAE,EAAE,CAAC,CAAC,CAAA;IAClD,CAAC;CACF"}
1
+ {"version":3,"file":"event.js","sourceRoot":"","sources":["../../src/collectors/event.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAE/C;;GAEG;AACH,MAAM,OAAO,cAAc;IAII;IAHpB,IAAI,GAAG,iBAAiB,CAAA;IACxB,IAAI,GAAG,OAAgB,CAAA;IAEhC,YAA6B,OAAyB;QAAzB,YAAO,GAAP,OAAO,CAAkB;IAAG,CAAC;IAE1D,KAAK,CAAC,QAAQ;QACZ,IAAI,CAAC;YACH,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAInD,CAAA;YAED,UAAU,CAAC,QAAQ,CAAC,GAAG,EAAE;gBACvB,MAAM,EAAE,CAAC,KAAc,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;aAC/C,CAAC,CAAA;QACJ,CAAC;QAAC,MAAM,CAAC;YACP,6CAA6C;QAC/C,CAAC;IACH,CAAC;IAEO,MAAM,CAAC,KAAc;QAC3B,MAAM,IAAI,GAAG,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAA;QAEpF,+CAA+C;QAC/C,IAAI,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC;YAAE,OAAM;QAExC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,OAAO,EAAE;YACtC,IAAI;YACJ,OAAO,EAAE,CAAC,GAAG,EAAE;gBACb,IAAI,CAAC;oBACH,OAAO,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAA;gBAClG,CAAC;gBAAC,MAAM,CAAC;oBACP,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,CAAA;gBACjC,CAAC;YACH,CAAC,CAAC,EAAE;SACL,EAAE,EAAE,IAAI,EAAE,CAAC,SAAS,IAAI,EAAE,CAAC,EAAE,GAAG,SAAS,EAAE,EAAE,CAAC,CAAC,CAAA;IAClD,CAAC;CACF"}
@@ -1,6 +1,19 @@
1
1
  import type { Collector, TelescopeStorage } from '../types.js';
2
2
  /**
3
3
  * Records exceptions by wrapping the global exception reporter.
4
+ *
5
+ * **Load-bearing: this collector must swallow its own errors.** The
6
+ * exception reporter sits in the framework's error handling path. If
7
+ * `record()` throws — say, because storage is unhealthy — the framework's
8
+ * error handler calls `report()` on *that* failure, which re-enters this
9
+ * wrapper, which fails again, which reports again, ad infinitum. The
10
+ * `_recording` re-entry guard plus the try/catch around `record()` and
11
+ * `previousReport()` collectively break the cycle.
12
+ *
13
+ * If you refactor this class, preserve all three: the re-entry guard, the
14
+ * record-call try/catch, and the previous-reporter try/catch. None of
15
+ * them are defensive coding for hypothetical bugs — each blocks a real
16
+ * cascade path that has bitten us before.
4
17
  */
5
18
  export declare class ExceptionCollector implements Collector {
6
19
  private readonly storage;
@@ -1 +1 @@
1
- {"version":3,"file":"exception.d.ts","sourceRoot":"","sources":["../../src/collectors/exception.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAI9D;;GAEG;AACH,qBAAa,kBAAmB,YAAW,SAAS;IAKtC,OAAO,CAAC,QAAQ,CAAC,OAAO;IAJpC,QAAQ,CAAC,IAAI,yBAAwB;IACrC,QAAQ,CAAC,IAAI,EAAG,WAAW,CAAS;IACpC,OAAO,CAAC,UAAU,CAAQ;gBAEG,OAAO,EAAE,gBAAgB;IAEhD,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAgC/B,OAAO,CAAC,MAAM;CAWf"}
1
+ {"version":3,"file":"exception.d.ts","sourceRoot":"","sources":["../../src/collectors/exception.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAI9D;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,kBAAmB,YAAW,SAAS;IAKtC,OAAO,CAAC,QAAQ,CAAC,OAAO;IAJpC,QAAQ,CAAC,IAAI,yBAAwB;IACrC,QAAQ,CAAC,IAAI,EAAG,WAAW,CAAS;IACpC,OAAO,CAAC,UAAU,CAAQ;gBAEG,OAAO,EAAE,gBAAgB;IAEhD,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAgC/B,OAAO,CAAC,MAAM;CAWf"}
@@ -2,6 +2,19 @@ import { createEntry } from '../storage.js';
2
2
  import { batchOpts } from '../batch-context.js';
3
3
  /**
4
4
  * Records exceptions by wrapping the global exception reporter.
5
+ *
6
+ * **Load-bearing: this collector must swallow its own errors.** The
7
+ * exception reporter sits in the framework's error handling path. If
8
+ * `record()` throws — say, because storage is unhealthy — the framework's
9
+ * error handler calls `report()` on *that* failure, which re-enters this
10
+ * wrapper, which fails again, which reports again, ad infinitum. The
11
+ * `_recording` re-entry guard plus the try/catch around `record()` and
12
+ * `previousReport()` collectively break the cycle.
13
+ *
14
+ * If you refactor this class, preserve all three: the re-entry guard, the
15
+ * record-call try/catch, and the previous-reporter try/catch. None of
16
+ * them are defensive coding for hypothetical bugs — each blocks a real
17
+ * cascade path that has bitten us before.
5
18
  */
6
19
  export class ExceptionCollector {
7
20
  storage;
@@ -1 +1 @@
1
- {"version":3,"file":"exception.js","sourceRoot":"","sources":["../../src/collectors/exception.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAE/C;;GAEG;AACH,MAAM,OAAO,kBAAkB;IAKA;IAJpB,IAAI,GAAG,qBAAqB,CAAA;IAC5B,IAAI,GAAG,WAAoB,CAAA;IAC5B,UAAU,GAAG,KAAK,CAAA;IAE1B,YAA6B,OAAyB;QAAzB,YAAO,GAAP,OAAO,CAAkB;IAAG,CAAC;IAE1D,KAAK,CAAC,QAAQ;QACZ,IAAI,CAAC;YACH,MAAM,EAAE,oBAAoB,EAAE,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAGrE,CAAA;YAED,sEAAsE;YACtE,2EAA2E;YAC3E,wEAAwE;YACxE,sCAAsC;YACtC,MAAM,cAAc,GAAG,MAAM,CAAA;YAC7B,oBAAoB,CAAC,CAAC,GAAY,EAAE,EAAE;gBACpC,IAAI,IAAI,CAAC,UAAU;oBAAE,OAAM;gBAC3B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAA;gBACtB,IAAI,CAAC;oBACH,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;gBAClB,CAAC;gBAAC,MAAM,CAAC;oBACP,kDAAkD;gBACpD,CAAC;gBACD,IAAI,CAAC;oBACH,cAAc,CAAC,GAAG,CAAC,CAAA;gBACrB,CAAC;gBAAC,MAAM,CAAC;oBACP,qCAAqC;gBACvC,CAAC;gBACD,IAAI,CAAC,UAAU,GAAG,KAAK,CAAA;YACzB,CAAC,CAAC,CAAA;QACJ,CAAC;QAAC,MAAM,CAAC;YACP,yDAAyD;QAC3D,CAAC;IACH,CAAC;IAEO,MAAM,CAAC,GAAY;QACzB,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAA;QACpC,MAAM,IAAI,GAAa,CAAC,OAAO,CAAC,CAAA;QAChC,IAAI,OAAO;YAAE,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAA;QAEvD,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,WAAW,EAAE;YAC1C,KAAK,EAAI,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;YACnD,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;YAC5C,KAAK,EAAI,OAAO,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE;SAC9E,EAAE,EAAE,IAAI,EAAE,GAAG,SAAS,EAAE,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,GAAG,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;IACzF,CAAC;CACF"}
1
+ {"version":3,"file":"exception.js","sourceRoot":"","sources":["../../src/collectors/exception.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAE/C;;;;;;;;;;;;;;;GAeG;AACH,MAAM,OAAO,kBAAkB;IAKA;IAJpB,IAAI,GAAG,qBAAqB,CAAA;IAC5B,IAAI,GAAG,WAAoB,CAAA;IAC5B,UAAU,GAAG,KAAK,CAAA;IAE1B,YAA6B,OAAyB;QAAzB,YAAO,GAAP,OAAO,CAAkB;IAAG,CAAC;IAE1D,KAAK,CAAC,QAAQ;QACZ,IAAI,CAAC;YACH,MAAM,EAAE,oBAAoB,EAAE,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAGrE,CAAA;YAED,sEAAsE;YACtE,2EAA2E;YAC3E,wEAAwE;YACxE,sCAAsC;YACtC,MAAM,cAAc,GAAG,MAAM,CAAA;YAC7B,oBAAoB,CAAC,CAAC,GAAY,EAAE,EAAE;gBACpC,IAAI,IAAI,CAAC,UAAU;oBAAE,OAAM;gBAC3B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAA;gBACtB,IAAI,CAAC;oBACH,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;gBAClB,CAAC;gBAAC,MAAM,CAAC;oBACP,kDAAkD;gBACpD,CAAC;gBACD,IAAI,CAAC;oBACH,cAAc,CAAC,GAAG,CAAC,CAAA;gBACrB,CAAC;gBAAC,MAAM,CAAC;oBACP,qCAAqC;gBACvC,CAAC;gBACD,IAAI,CAAC,UAAU,GAAG,KAAK,CAAA;YACzB,CAAC,CAAC,CAAA;QACJ,CAAC;QAAC,MAAM,CAAC;YACP,yDAAyD;QAC3D,CAAC;IACH,CAAC;IAEO,MAAM,CAAC,GAAY;QACzB,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAA;QACpC,MAAM,IAAI,GAAa,CAAC,OAAO,CAAC,CAAA;QAChC,IAAI,OAAO;YAAE,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAA;QAEvD,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,WAAW,EAAE;YAC1C,KAAK,EAAI,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;YACnD,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;YAC5C,KAAK,EAAI,OAAO,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE;SAC9E,EAAE,EAAE,IAAI,EAAE,GAAG,SAAS,EAAE,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,GAAG,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;IACzF,CAAC;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"request.d.ts","sourceRoot":"","sources":["../../src/collectors/request.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAClE,OAAO,KAAK,EAAE,SAAS,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAQ/E;;;;GAIG;AACH,qBAAa,gBAAiB,YAAW,SAAS;IAK9C,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,MAAM;IALzB,QAAQ,CAAC,IAAI,uBAAsB;IACnC,QAAQ,CAAC,IAAI,EAAG,SAAS,CAAS;gBAGf,OAAO,EAAE,gBAAgB,EACzB,MAAM,EAAG,eAAe;IAG3C,QAAQ,IAAI,IAAI;IAIhB,yDAAyD;IACzD,UAAU,KAMM,KAAK,UAAU,EAAE,KAAK,WAAW,EAAE,MAAM,MAAM,OAAO,CAAC,IAAI,CAAC;IA6J5E,OAAO,CAAC,YAAY;IAOpB,+DAA+D;IAC/D,OAAO,CAAC,OAAO;CAShB"}
1
+ {"version":3,"file":"request.d.ts","sourceRoot":"","sources":["../../src/collectors/request.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAClE,OAAO,KAAK,EAAE,SAAS,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAiC/E;;;;GAIG;AACH,qBAAa,gBAAiB,YAAW,SAAS;IAK9C,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,MAAM;IALzB,QAAQ,CAAC,IAAI,uBAAsB;IACnC,QAAQ,CAAC,IAAI,EAAG,SAAS,CAAS;gBAGf,OAAO,EAAE,gBAAgB,EACzB,MAAM,EAAG,eAAe;IAG3C,QAAQ,IAAI,IAAI;IAIhB,yDAAyD;IACzD,UAAU,KAMM,KAAK,UAAU,EAAE,KAAK,WAAW,EAAE,MAAM,MAAM,OAAO,CAAC,IAAI,CAAC;IA4J5E,OAAO,CAAC,YAAY;IAOpB,+DAA+D;IAC/D,OAAO,CAAC,OAAO;CAShB"}
@@ -3,6 +3,17 @@ import { redactHeaders, redactFields } from '../redact.js';
3
3
  import { setBatchId } from '../batch-context.js';
4
4
  const DEFAULT_HIDE_HEADERS = ['authorization', 'cookie', 'set-cookie', 'x-csrf-token', 'x-api-key'];
5
5
  const DEFAULT_HIDE_FIELDS = ['password', 'password_confirmation', 'token', 'secret'];
6
+ const bag = (v) => v;
7
+ const BATCH_KEY = '__telescopeBatchId';
8
+ function attachBatchId(req, batchId) {
9
+ bag(req)[BATCH_KEY] = batchId;
10
+ }
11
+ function readStatus(res) {
12
+ return bag(res)['statusCode'];
13
+ }
14
+ function readRequestIp(req) {
15
+ return bag(req)['ip'];
16
+ }
6
17
  /**
7
18
  * Records HTTP requests — method, URL, status, duration, headers, payload,
8
19
  * response status, IP, user-agent.
@@ -35,7 +46,8 @@ export class RequestCollector {
35
46
  }
36
47
  const start = Date.now();
37
48
  const batchId = crypto.randomUUID();
38
- req['__telescopeBatchId'] = batchId;
49
+ // Stash batchId on the raw request for other collectors to correlate
50
+ attachBatchId(req, batchId);
39
51
  // Set batch context so collectors (query, cache, model) can correlate
40
52
  setBatchId(batchId);
41
53
  try {
@@ -52,13 +64,12 @@ export class RequestCollector {
52
64
  // (so redirect() calls that bypass res.status() still report accurately)
53
65
  // and fall back to the normalized res.statusCode.
54
66
  const finalRes = res.raw?.res;
55
- const status = (finalRes?.status
56
- ?? res['statusCode']);
67
+ const status = finalRes?.status ?? readStatus(res);
57
68
  if (status && status >= 400)
58
69
  tags.push('error');
59
70
  // Extract IP and user-agent from request headers
60
71
  const headers = req.headers;
61
- const rawIp = req['ip'];
72
+ const rawIp = readRequestIp(req);
62
73
  const ip = rawIp === '::1' || rawIp === '::ffff:127.0.0.1' ? '127.0.0.1' : rawIp;
63
74
  const userAgent = headers['user-agent'];
64
75
  const hostname = headers['host'];
@@ -1 +1 @@
1
- {"version":3,"file":"request.js","sourceRoot":"","sources":["../../src/collectors/request.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"request.js","sourceRoot":"","sources":["../../src/collectors/request.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -21,14 +21,32 @@ export { GateCollector } from './collectors/gate.js';
21
21
  export { DumpCollector } from './collectors/dump.js';
22
22
  export { AiCollector } from './collectors/ai.js';
23
23
  export { McpCollector } from './collectors/mcp.js';
24
+ /**
25
+ * Process-wide registry holding the active `TelescopeStorage` and the
26
+ * recording on/off flag.
27
+ *
28
+ * **Recording state lives on `globalThis`, not as a static class field.**
29
+ * Telescope is loaded under Vite's SSR module runner in dev — every HMR
30
+ * cycle re-evaluates the module, which would re-initialize a static field
31
+ * to `true` and silently lose the dashboard's "Paused" state. The
32
+ * `globalThis['__rudderjs_telescope_recording__']` slot survives module
33
+ * re-eval; the recording API in `api/routes.ts` reads/writes the same
34
+ * key directly (never via `require('../index.js')` — ESM-only). The SSE
35
+ * stream subscriber registry follows the same pattern; see `stream.ts`.
36
+ *
37
+ * `storage.store()` (in `storage.ts`) checks `isRecording()` centrally
38
+ * before persisting — callers don't need to gate writes themselves.
39
+ */
24
40
  export declare class TelescopeRegistry {
25
41
  private static storage;
26
42
  static set(storage: TelescopeStorage): void;
27
43
  static get(): TelescopeStorage | null;
28
44
  /** @internal — clears the registered storage. Used for testing. */
29
45
  static reset(): void;
46
+ /** Whether collectors are currently recording. Defaults to `true`. */
30
47
  static get recording(): boolean;
31
48
  static set recording(v: boolean);
49
+ /** Toggle and return the new recording state. */
32
50
  static toggleRecording(): boolean;
33
51
  }
34
52
  export declare class Telescope {
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -44,14 +44,32 @@ export { McpCollector } from './collectors/mcp.js';
44
44
  // ─── Telescope Registry ────────────────────────────────────
45
45
  const _g = globalThis;
46
46
  const _recKey = '__rudderjs_telescope_recording__';
47
+ /**
48
+ * Process-wide registry holding the active `TelescopeStorage` and the
49
+ * recording on/off flag.
50
+ *
51
+ * **Recording state lives on `globalThis`, not as a static class field.**
52
+ * Telescope is loaded under Vite's SSR module runner in dev — every HMR
53
+ * cycle re-evaluates the module, which would re-initialize a static field
54
+ * to `true` and silently lose the dashboard's "Paused" state. The
55
+ * `globalThis['__rudderjs_telescope_recording__']` slot survives module
56
+ * re-eval; the recording API in `api/routes.ts` reads/writes the same
57
+ * key directly (never via `require('../index.js')` — ESM-only). The SSE
58
+ * stream subscriber registry follows the same pattern; see `stream.ts`.
59
+ *
60
+ * `storage.store()` (in `storage.ts`) checks `isRecording()` centrally
61
+ * before persisting — callers don't need to gate writes themselves.
62
+ */
47
63
  export class TelescopeRegistry {
48
64
  static storage = null;
49
65
  static set(storage) { this.storage = storage; }
50
66
  static get() { return this.storage; }
51
67
  /** @internal — clears the registered storage. Used for testing. */
52
68
  static reset() { this.storage = null; }
69
+ /** Whether collectors are currently recording. Defaults to `true`. */
53
70
  static get recording() { return _g[_recKey] ?? true; }
54
71
  static set recording(v) { _g[_recKey] = v; }
72
+ /** Toggle and return the new recording state. */
55
73
  static toggleRecording() { const v = !this.recording; _g[_recKey] = v; return v; }
56
74
  }
57
75
  // ─── Telescope Facade ──────────────────────────────────────
@@ -138,6 +156,8 @@ export class TelescopeProvider extends ServiceProvider {
138
156
  hideRequestHeaders: merged.hideRequestHeaders ?? defaultConfig.hideRequestHeaders,
139
157
  hideRequestFields: merged.hideRequestFields ?? defaultConfig.hideRequestFields,
140
158
  auth: merged.auth ?? defaultConfig.auth,
159
+ updates: merged.updates ?? defaultConfig.updates,
160
+ pollInterval: merged.pollInterval ?? defaultConfig.pollInterval,
141
161
  };
142
162
  if (!resolved.enabled)
143
163
  return;
@@ -220,6 +240,10 @@ export class TelescopeProvider extends ServiceProvider {
220
240
  routeOpts.path = resolved.path;
221
241
  if (resolved.auth)
222
242
  routeOpts.auth = resolved.auth;
243
+ if (resolved.updates)
244
+ routeOpts.updates = resolved.updates;
245
+ if (resolved.pollInterval)
246
+ routeOpts.pollInterval = resolved.pollInterval;
223
247
  await registerTelescopeRoutes(storage, routeOpts);
224
248
  }
225
249
  }
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/routes.d.ts CHANGED
@@ -7,6 +7,14 @@ export interface RegisterTelescopeRoutesOptions {
7
7
  auth?: TelescopeConfig['auth'];
8
8
  /** Extra middleware to prepend to all routes */
9
9
  middleware?: MiddlewareHandler[];
10
+ /**
11
+ * How the dashboard receives new entries. `'polling'` (default) re-fetches
12
+ * the list endpoint on a timer; `'stream'` registers the SSE endpoint and
13
+ * the dashboard subscribes via `EventSource`. See `TelescopeConfig.updates`.
14
+ */
15
+ updates?: 'polling' | 'stream';
16
+ /** Poll interval in ms when `updates === 'polling'`. Default `2000`. */
17
+ pollInterval?: number;
10
18
  }
11
19
  /**
12
20
  * Register all Telescope routes — UI pages, per-entry detail pages, batch
@@ -1 +1 @@
1
- {"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../src/routes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAA2B,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AACrF,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAa,MAAM,YAAY,CAAA;AAW9E,MAAM,WAAW,8BAA8B;IAC7C,kEAAkE;IAClE,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,yFAAyF;IACzF,IAAI,CAAC,EAAE,eAAe,CAAC,MAAM,CAAC,CAAA;IAC9B,gDAAgD;IAChD,UAAU,CAAC,EAAE,iBAAiB,EAAE,CAAA;CACjC;AAED;;;;;;;;;GASG;AACH,wBAAsB,uBAAuB,CAC3C,OAAO,EAAE,gBAAgB,EACzB,IAAI,GAAK,8BAAmC,GAC3C,OAAO,CAAC,IAAI,CAAC,CAwHf"}
1
+ {"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../src/routes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAA2B,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AACrF,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAa,MAAM,YAAY,CAAA;AAa9E,MAAM,WAAW,8BAA8B;IAC7C,kEAAkE;IAClE,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,yFAAyF;IACzF,IAAI,CAAC,EAAE,eAAe,CAAC,MAAM,CAAC,CAAA;IAC9B,gDAAgD;IAChD,UAAU,CAAC,EAAE,iBAAiB,EAAE,CAAA;IAChC;;;;OAIG;IACH,OAAO,CAAC,EAAE,SAAS,GAAG,QAAQ,CAAA;IAC9B,wEAAwE;IACxE,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB;AAED;;;;;;;;;GASG;AACH,wBAAsB,uBAAuB,CAC3C,OAAO,EAAE,gBAAgB,EACzB,IAAI,GAAK,8BAAmC,GAC3C,OAAO,CAAC,IAAI,CAAC,CAqIf"}
package/dist/routes.js CHANGED
@@ -1,6 +1,8 @@
1
+ import { toApiSlug } from './types.js';
1
2
  import { Dashboard, EntryList, pages } from './views/vanilla/index.js';
2
3
  import { DetailLayout, detailViews, NotFoundPage, BatchPage } from './views/vanilla/details/index.js';
3
4
  import { listEntries, showEntry, overview, prune, listBatch, getRecording, toggleRecording, authMiddleware } from './api/routes.js';
5
+ import { createStreamResponse } from './stream.js';
4
6
  const ENTRY_TYPES = [
5
7
  'request', 'query', 'job', 'exception', 'log',
6
8
  'mail', 'notification', 'event', 'cache', 'schedule', 'model', 'command', 'broadcast', 'sync',
@@ -26,6 +28,8 @@ export async function registerTelescopeRoutes(storage, opts = {}) {
26
28
  }
27
29
  const basePath = `/${(opts.path ?? 'telescope').replace(/^\/+/, '')}`;
28
30
  const apiPrefix = `${basePath}/api`;
31
+ const updates = opts.updates ?? 'polling';
32
+ const pollInterval = opts.pollInterval ?? 2000;
29
33
  const middleware = [
30
34
  ...(opts.middleware ?? []),
31
35
  ...(opts.auth ? [authMiddleware({ auth: opts.auth })] : []),
@@ -45,6 +49,8 @@ export async function registerTelescopeRoutes(storage, opts = {}) {
45
49
  pageKey,
46
50
  title: config.title,
47
51
  columns: config.columns,
52
+ updates,
53
+ pollInterval,
48
54
  })), middleware);
49
55
  // Detail — fetches the entry, dispatches to the watcher-specific view
50
56
  router.get(`${basePath}/${pageKey}/:id`, async (req, res) => {
@@ -86,13 +92,9 @@ export async function registerTelescopeRoutes(storage, opts = {}) {
86
92
  res.header('Content-Type', 'text/html').send(BatchPage({ basePath, batchId, entries }));
87
93
  }, middleware);
88
94
  // ── API: list + show per entry type ──────────────────────
95
+ // Slug mapping is shared with EntryList.ts via `toApiSlug` (see types.ts).
89
96
  for (const type of ENTRY_TYPES) {
90
- const apiPath = type === 'query' ? 'queries'
91
- : type === 'http' ? 'http'
92
- : type === 'ai' ? 'ai'
93
- : type === 'mcp' ? 'mcp'
94
- : type === 'view' ? 'views'
95
- : `${type}s`;
97
+ const apiPath = toApiSlug(type);
96
98
  router.get(`${apiPrefix}/${apiPath}`, (req, res) => listEntries(storage, type, req, res), middleware);
97
99
  router.get(`${apiPrefix}/${apiPath}/:id`, (req, res) => showEntry(storage, req, res), middleware);
98
100
  }
@@ -102,5 +104,17 @@ export async function registerTelescopeRoutes(storage, opts = {}) {
102
104
  router.delete(`${apiPrefix}/entries`, (req, res) => prune(storage, req, res), middleware);
103
105
  router.get(`${apiPrefix}/recording`, (_req, res) => getRecording(res), middleware);
104
106
  router.patch(`${apiPrefix}/recording`, (_req, res) => toggleRecording(res), middleware);
107
+ // ── API: real-time SSE stream ─────────────────────────────
108
+ // Only registered when the app opts in via `config.telescope.updates: 'stream'`.
109
+ // The dashboard subscribes via `EventSource(<apiPrefix>/stream?type=<entryType>)`.
110
+ if (updates === 'stream') {
111
+ router.get(`${apiPrefix}/stream`, (req) => {
112
+ const t = req.query['type'];
113
+ const typeFilter = (t && ENTRY_TYPES.includes(t))
114
+ ? t
115
+ : null;
116
+ return createStreamResponse(typeFilter);
117
+ }, middleware);
118
+ }
105
119
  }
106
120
  //# sourceMappingURL=routes.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"routes.js","sourceRoot":"","sources":["../src/routes.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAA;AACtE,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAA;AACrG,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAEnI,MAAM,WAAW,GAAgB;IAC/B,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK;IAC7C,MAAM,EAAE,cAAc,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM;IAC7F,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM;CAC5C,CAAA;AAWD;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,OAAyB,EACzB,OAA0C,EAAE;IAG5C,IAAI,MAAyD,CAAA;IAC7D,IAAI,CAAC;QACH,MAAM,GAAG,CAAC,MAAM,MAAM,CAAC,kBAAkB,CAAC,CAAC,CAAC,MAAM,CAAA;IACpD,CAAC;IAAC,MAAM,CAAC;QACP,OAAM,CAAC,6DAA6D;IACtE,CAAC;IAED,MAAM,QAAQ,GAAI,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,WAAW,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAA;IACtE,MAAM,SAAS,GAAG,GAAG,QAAQ,MAAM,CAAA;IACnC,MAAM,UAAU,GAAwB;QACtC,GAAG,CAAC,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC;QAC1B,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;KAC5D,CAAA;IAED,MAAM,IAAI,GAAG,CAAC,IAAgB,EAAE,GAAgB,EAAE,OAAe,EAAQ,EAAE;QACzE,GAAG,CAAC,MAAM,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IACvD,CAAC,CAAA;IAED,6DAA6D;IAC7D,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAa,EAAE,CAAc,EAAE,EAAE,CACrD,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,CAAC,EAAE,UAAU,CAAC,CAAA;IAE7D,4DAA4D;IAC5D,KAAK,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACtD,OAAO;QACP,MAAM,CAAC,GAAG,CAAC,GAAG,QAAQ,IAAI,OAAO,EAAE,EAAE,CAAC,CAAa,EAAE,CAAc,EAAE,EAAE,CACrE,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC;YACnB,QAAQ;YACR,SAAS;YACT,IAAI,EAAK,MAAM,CAAC,IAAI;YACpB,OAAO;YACP,KAAK,EAAI,MAAM,CAAC,KAAK;YACrB,OAAO,EAAE,MAAM,CAAC,OAAO;SACxB,CAAC,CAAC,EAAE,UAAU,CAAC,CAAA;QAElB,sEAAsE;QACtE,MAAM,CAAC,GAAG,CAAC,GAAG,QAAQ,IAAI,OAAO,MAAM,EAAE,KAAK,EAAE,GAAe,EAAE,GAAgB,EAAE,EAAE;YACnF,MAAM,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAA;YACjC,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;YACpC,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC,IAAI,CACtD,YAAY,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CACrE,CAAA;gBACD,OAAM;YACR,CAAC;YAED,MAAM,MAAM,GAAG,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;YACtC,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC,IAAI,CACtD,YAAY,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAChE,CAAA;gBACD,OAAM;YACR,CAAC;YAED,2EAA2E;YAC3E,IAAI,cAAc,GAA0C,EAAE,CAAA;YAC9D,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;gBAClB,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAA;gBACxE,cAAc,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,KAAK,CAAC,EAAE,CAAC,CAAA;YACrD,CAAC;YAED,GAAG,CAAC,MAAM,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC,IAAI,CAC1C,YAAY,CAAC;gBACX,QAAQ;gBACR,OAAO;gBACP,SAAS,EAAE,MAAM,CAAC,KAAK;gBACvB,KAAK;gBACL,IAAI,EAAO,MAAM,CAAC,KAAK,CAAC;gBACxB,cAAc;aACf,CAAC,CACH,CAAA;QACH,CAAC,EAAE,UAAU,CAAC,CAAA;IAChB,CAAC;IAED,6DAA6D;IAC7D,MAAM,CAAC,GAAG,CAAC,GAAG,QAAQ,mBAAmB,EAAE,KAAK,EAAE,GAAe,EAAE,GAAgB,EAAE,EAAE;QACrF,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,CAAA;QAC3C,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAA;QAC7D,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC,IAAI,CACtD,YAAY,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,CACvD,CAAA;YACD,OAAM;QACR,CAAC;QACD,GAAG,CAAC,MAAM,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC,CAAA;IACzF,CAAC,EAAE,UAAU,CAAC,CAAA;IAEd,4DAA4D;IAC5D,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;QAC/B,MAAM,OAAO,GAAG,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,SAAS;YAC1C,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM;gBAC1B,CAAC,CAAC,IAAI,KAAK,IAAI,CAAE,CAAC,CAAC,IAAI;oBACvB,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK;wBACxB,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,OAAO;4BAC3B,CAAC,CAAC,GAAG,IAAI,GAAG,CAAA;QACd,MAAM,CAAC,GAAG,CACR,GAAG,SAAS,IAAI,OAAO,EAAE,EACzB,CAAC,GAAe,EAAE,GAAgB,EAAE,EAAE,CAAC,WAAW,CAAC,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,EAC3E,UAAU,CACX,CAAA;QACD,MAAM,CAAC,GAAG,CACR,GAAG,SAAS,IAAI,OAAO,MAAM,EAC7B,CAAC,GAAe,EAAE,GAAgB,EAAE,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,CAAC,EACnE,UAAU,CACX,CAAA;IACH,CAAC;IAED,4DAA4D;IAC5D,MAAM,CAAC,GAAG,CAAC,GAAG,SAAS,mBAAmB,EAAE,CAAC,GAAe,EAAE,GAAgB,EAAE,EAAE,CAChF,SAAS,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,UAAU,CAAC,CAAA;IAC3C,MAAM,CAAC,GAAG,CAAC,GAAG,SAAS,WAAW,EAAE,CAAC,IAAgB,EAAE,GAAgB,EAAE,EAAE,CACzE,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC,EAAE,UAAU,CAAC,CAAA;IACrC,MAAM,CAAC,MAAM,CAAC,GAAG,SAAS,UAAU,EAAE,CAAC,GAAe,EAAE,GAAgB,EAAE,EAAE,CAC1E,KAAK,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,UAAU,CAAC,CAAA;IACvC,MAAM,CAAC,GAAG,CAAC,GAAG,SAAS,YAAY,EAAE,CAAC,IAAgB,EAAE,GAAgB,EAAE,EAAE,CAC1E,YAAY,CAAC,GAAG,CAAC,EAAE,UAAU,CAAC,CAAA;IAChC,MAAM,CAAC,KAAK,CAAC,GAAG,SAAS,YAAY,EAAE,CAAC,IAAgB,EAAE,GAAgB,EAAE,EAAE,CAC5E,eAAe,CAAC,GAAG,CAAC,EAAE,UAAU,CAAC,CAAA;AACrC,CAAC"}
1
+ {"version":3,"file":"routes.js","sourceRoot":"","sources":["../src/routes.ts"],"names":[],"mappings":"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"}
package/dist/storage.d.ts CHANGED
@@ -16,6 +16,32 @@ export declare class MemoryStorage implements TelescopeStorage {
16
16
  prune(type?: EntryType): void;
17
17
  pruneOlderThan(date: Date): void;
18
18
  }
19
+ /**
20
+ * SQLite-backed telescope storage — persistent across restarts, shared
21
+ * across the dev server and CLI processes.
22
+ *
23
+ * **Peer resolution** — `better-sqlite3` is loaded via
24
+ * `createRequire(import.meta.url)` rather than a top-level `import`.
25
+ * Two reasons:
26
+ * 1. better-sqlite3 ships native bindings; bundlers (Vite SSR, Webpack,
27
+ * esbuild) can't statically resolve them. createRequire pushes the
28
+ * lookup to runtime where Node's loader handles `.node` files.
29
+ * 2. Telescope's package.json lists `better-sqlite3` under
30
+ * `optionalDependencies`. Apps that pick `storage: 'memory'` never
31
+ * need it; we shouldn't force its install.
32
+ *
33
+ * The `globalThis.__betterSqlite3` escape hatch is for bundled
34
+ * environments where `createRequire` can't reach the module (e.g. when
35
+ * telescope is pre-bundled into a single file). Pre-stash the module
36
+ * there and the loader will pick it up. If neither path resolves, the
37
+ * constructor throws loudly — it does NOT silently fall back to memory.
38
+ *
39
+ * **WAL mode** — enabled in `migrate()`. Without it, `pnpm rudder ...`
40
+ * commands hit "database is locked" while `pnpm dev` is running. WAL
41
+ * (Write-Ahead Logging) lets the dev server and CLI processes read/write
42
+ * concurrently. `synchronous = NORMAL` is paired with WAL for the
43
+ * standard "durable on commit, fast on crash recovery" tradeoff.
44
+ */
19
45
  export declare class SqliteStorage implements TelescopeStorage {
20
46
  private readonly dbPath;
21
47
  private db;
@@ -1 +1 @@
1
- {"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../src/storage.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAW1F,wBAAgB,WAAW,CACzB,IAAI,EAAK,SAAS,EAClB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,OAAO,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,GACnE,cAAc,CAUhB;AAID,qBAAa,aAAc,YAAW,gBAAgB;IAGxC,OAAO,CAAC,QAAQ,CAAC,UAAU;IAFvC,OAAO,CAAC,OAAO,CAAuB;gBAET,UAAU,GAAE,MAAa;IAEtD,KAAK,CAAC,KAAK,EAAE,cAAc,GAAG,IAAI;IAQlC,UAAU,CAAC,OAAO,EAAE,cAAc,EAAE,GAAG,IAAI;IAK3C,IAAI,CAAC,OAAO,EAAE,WAAW,GAAG,cAAc,EAAE;IA2B5C,IAAI,CAAC,EAAE,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI;IAIvC,KAAK,CAAC,IAAI,CAAC,EAAE,SAAS,GAAG,MAAM;IAK/B,KAAK,CAAC,IAAI,CAAC,EAAE,SAAS,GAAG,IAAI;IAQ7B,cAAc,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;CAIjC;AAID,qBAAa,aAAc,YAAW,gBAAgB;IAGxC,OAAO,CAAC,QAAQ,CAAC,MAAM;IAFnC,OAAO,CAAC,EAAE,CAAiD;gBAE9B,MAAM,EAAE,MAAM;IAE3C,OAAO,CAAC,KAAK;IAwBb,OAAO,CAAC,OAAO;IAqBf,OAAO,CAAC,KAAK;IAYb,OAAO,CAAC,OAAO;IAYf,KAAK,CAAC,KAAK,EAAE,cAAc,GAAG,IAAI;IASlC,UAAU,CAAC,OAAO,EAAE,cAAc,EAAE,GAAG,IAAI;IAa3C,IAAI,CAAC,OAAO,EAAE,WAAW,GAAG,cAAc,EAAE;IAwB5C,IAAI,CAAC,EAAE,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI;IAOvC,KAAK,CAAC,IAAI,CAAC,EAAE,SAAS,GAAG,MAAM;IAQ/B,KAAK,CAAC,IAAI,CAAC,EAAE,SAAS,GAAG,IAAI;IAQ7B,cAAc,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;CAGjC"}
1
+ {"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../src/storage.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAY1F,wBAAgB,WAAW,CACzB,IAAI,EAAK,SAAS,EAClB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,OAAO,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,GACnE,cAAc,CAUhB;AAID,qBAAa,aAAc,YAAW,gBAAgB;IAGxC,OAAO,CAAC,QAAQ,CAAC,UAAU;IAFvC,OAAO,CAAC,OAAO,CAAuB;gBAET,UAAU,GAAE,MAAa;IAEtD,KAAK,CAAC,KAAK,EAAE,cAAc,GAAG,IAAI;IAYlC,UAAU,CAAC,OAAO,EAAE,cAAc,EAAE,GAAG,IAAI;IAK3C,IAAI,CAAC,OAAO,EAAE,WAAW,GAAG,cAAc,EAAE;IA2B5C,IAAI,CAAC,EAAE,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI;IAIvC,KAAK,CAAC,IAAI,CAAC,EAAE,SAAS,GAAG,MAAM;IAK/B,KAAK,CAAC,IAAI,CAAC,EAAE,SAAS,GAAG,IAAI;IAQ7B,cAAc,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;CAIjC;AAMD;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,qBAAa,aAAc,YAAW,gBAAgB;IAGxC,OAAO,CAAC,QAAQ,CAAC,MAAM;IAFnC,OAAO,CAAC,EAAE,CAAiD;gBAE9B,MAAM,EAAE,MAAM;IAE3C,OAAO,CAAC,KAAK;IAqBb,OAAO,CAAC,OAAO;IAmBf,OAAO,CAAC,KAAK;IAYb,OAAO,CAAC,OAAO;IAYf,KAAK,CAAC,KAAK,EAAE,cAAc,GAAG,IAAI;IAUlC,UAAU,CAAC,OAAO,EAAE,cAAc,EAAE,GAAG,IAAI;IAc3C,IAAI,CAAC,OAAO,EAAE,WAAW,GAAG,cAAc,EAAE;IAwB5C,IAAI,CAAC,EAAE,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI;IAOvC,KAAK,CAAC,IAAI,CAAC,EAAE,SAAS,GAAG,MAAM;IAQ/B,KAAK,CAAC,IAAI,CAAC,EAAE,SAAS,GAAG,IAAI;IAQ7B,cAAc,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;CAGjC"}
package/dist/storage.js CHANGED
@@ -1,5 +1,6 @@
1
1
  import { randomUUID } from 'node:crypto';
2
2
  import { createRequire } from 'node:module';
3
+ import { notifySubscribers } from './stream.js';
3
4
  const _g = globalThis;
4
5
  const _recKey = '__rudderjs_telescope_recording__';
5
6
  function isRecording() {
@@ -31,6 +32,10 @@ export class MemoryStorage {
31
32
  if (this.entries.length > this.maxEntries) {
32
33
  this.entries.length = this.maxEntries;
33
34
  }
35
+ // Fan out to live-stream subscribers after the in-memory write. Sync
36
+ // call — does not await any persistence, dashboard latency tracks the
37
+ // emit only.
38
+ notifySubscribers(entry);
34
39
  }
35
40
  storeBatch(entries) {
36
41
  if (!isRecording())
@@ -81,7 +86,32 @@ export class MemoryStorage {
81
86
  this.entries = this.entries.filter(e => e.createdAt.getTime() >= ts);
82
87
  }
83
88
  }
84
- // ─── SQLite Storage ────────────────────────────────────────
89
+ /**
90
+ * SQLite-backed telescope storage — persistent across restarts, shared
91
+ * across the dev server and CLI processes.
92
+ *
93
+ * **Peer resolution** — `better-sqlite3` is loaded via
94
+ * `createRequire(import.meta.url)` rather than a top-level `import`.
95
+ * Two reasons:
96
+ * 1. better-sqlite3 ships native bindings; bundlers (Vite SSR, Webpack,
97
+ * esbuild) can't statically resolve them. createRequire pushes the
98
+ * lookup to runtime where Node's loader handles `.node` files.
99
+ * 2. Telescope's package.json lists `better-sqlite3` under
100
+ * `optionalDependencies`. Apps that pick `storage: 'memory'` never
101
+ * need it; we shouldn't force its install.
102
+ *
103
+ * The `globalThis.__betterSqlite3` escape hatch is for bundled
104
+ * environments where `createRequire` can't reach the module (e.g. when
105
+ * telescope is pre-bundled into a single file). Pre-stash the module
106
+ * there and the loader will pick it up. If neither path resolves, the
107
+ * constructor throws loudly — it does NOT silently fall back to memory.
108
+ *
109
+ * **WAL mode** — enabled in `migrate()`. Without it, `pnpm rudder ...`
110
+ * commands hit "database is locked" while `pnpm dev` is running. WAL
111
+ * (Write-Ahead Logging) lets the dev server and CLI processes read/write
112
+ * concurrently. `synchronous = NORMAL` is paired with WAL for the
113
+ * standard "durable on commit, fast on crash recovery" tradeoff.
114
+ */
85
115
  export class SqliteStorage {
86
116
  dbPath;
87
117
  db = null;
@@ -90,9 +120,6 @@ export class SqliteStorage {
90
120
  }
91
121
  getDb() {
92
122
  if (!this.db) {
93
- // Load better-sqlite3 via createRequire so native bindings work under
94
- // ESM + Vite SSR. Allow consumers to pre-stash the module on globalThis
95
- // (e.g. when bundling) as an escape hatch.
96
123
  let Database = globalThis.__betterSqlite3;
97
124
  if (!Database) {
98
125
  try {
@@ -111,8 +138,6 @@ export class SqliteStorage {
111
138
  }
112
139
  migrate() {
113
140
  const db = this.db;
114
- // WAL mode lets the dev server + CLI processes read/write the same file
115
- // concurrently without "database is locked" errors.
116
141
  db.pragma('journal_mode = WAL');
117
142
  db.pragma('synchronous = NORMAL');
118
143
  db.exec(`
@@ -157,6 +182,7 @@ export class SqliteStorage {
157
182
  const row = this.toRow(entry);
158
183
  this.getDb().prepare(`INSERT INTO telescope_entries (id, batch_id, type, content, tags, family_hash, created_at)
159
184
  VALUES (@id, @batch_id, @type, @content, @tags, @family_hash, @created_at)`).run(row);
185
+ notifySubscribers(entry);
160
186
  }
161
187
  storeBatch(entries) {
162
188
  if (!isRecording())
@@ -169,6 +195,8 @@ export class SqliteStorage {
169
195
  stmt.run(row);
170
196
  });
171
197
  tx(entries.map(e => this.toRow(e)));
198
+ for (const entry of entries)
199
+ notifySubscribers(entry);
172
200
  }
173
201
  list(options) {
174
202
  const conditions = [];