@uptimizr/collector-server 0.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 (67) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +169 -0
  3. package/dist/app.d.ts +22 -0
  4. package/dist/app.d.ts.map +1 -0
  5. package/dist/app.js +96 -0
  6. package/dist/app.js.map +1 -0
  7. package/dist/cli.d.ts +3 -0
  8. package/dist/cli.d.ts.map +1 -0
  9. package/dist/cli.js +148 -0
  10. package/dist/cli.js.map +1 -0
  11. package/dist/config.d.ts +59 -0
  12. package/dist/config.d.ts.map +1 -0
  13. package/dist/config.js +55 -0
  14. package/dist/config.js.map +1 -0
  15. package/dist/csp.d.ts +18 -0
  16. package/dist/csp.d.ts.map +1 -0
  17. package/dist/csp.js +91 -0
  18. package/dist/csp.js.map +1 -0
  19. package/dist/duckdbStore.d.ts +14 -0
  20. package/dist/duckdbStore.d.ts.map +1 -0
  21. package/dist/duckdbStore.js +69 -0
  22. package/dist/duckdbStore.js.map +1 -0
  23. package/dist/enrich.d.ts +8 -0
  24. package/dist/enrich.d.ts.map +1 -0
  25. package/dist/enrich.js +9 -0
  26. package/dist/enrich.js.map +1 -0
  27. package/dist/liveBus.d.ts +86 -0
  28. package/dist/liveBus.d.ts.map +1 -0
  29. package/dist/liveBus.js +195 -0
  30. package/dist/liveBus.js.map +1 -0
  31. package/dist/liveToken.d.ts +11 -0
  32. package/dist/liveToken.d.ts.map +1 -0
  33. package/dist/liveToken.js +44 -0
  34. package/dist/liveToken.js.map +1 -0
  35. package/dist/memoryStore.d.ts +22 -0
  36. package/dist/memoryStore.d.ts.map +1 -0
  37. package/dist/memoryStore.js +207 -0
  38. package/dist/memoryStore.js.map +1 -0
  39. package/dist/routes/collect.d.ts +25 -0
  40. package/dist/routes/collect.d.ts.map +1 -0
  41. package/dist/routes/collect.js +55 -0
  42. package/dist/routes/collect.js.map +1 -0
  43. package/dist/routes/live.d.ts +18 -0
  44. package/dist/routes/live.d.ts.map +1 -0
  45. package/dist/routes/live.js +179 -0
  46. package/dist/routes/live.js.map +1 -0
  47. package/dist/routes/query.d.ts +14 -0
  48. package/dist/routes/query.d.ts.map +1 -0
  49. package/dist/routes/query.js +610 -0
  50. package/dist/routes/query.js.map +1 -0
  51. package/dist/serve.d.ts +18 -0
  52. package/dist/serve.d.ts.map +1 -0
  53. package/dist/serve.js +48 -0
  54. package/dist/serve.js.map +1 -0
  55. package/dist/server.d.ts +3 -0
  56. package/dist/server.d.ts.map +1 -0
  57. package/dist/server.js +12 -0
  58. package/dist/server.js.map +1 -0
  59. package/dist/store.d.ts +263 -0
  60. package/dist/store.d.ts.map +1 -0
  61. package/dist/store.js +2 -0
  62. package/dist/store.js.map +1 -0
  63. package/dist/visitor.d.ts +12 -0
  64. package/dist/visitor.d.ts.map +1 -0
  65. package/dist/visitor.js +18 -0
  66. package/dist/visitor.js.map +1 -0
  67. package/package.json +64 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query.js","sourceRoot":"","sources":["../../src/routes/query.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import type { CollectorStore } from "./store.js";
2
+ /**
3
+ * Select the storage backend (`COLLECTOR_STORE`):
4
+ * - `duckdb` (default) — the OSS single-file DuckDB store (events + metadata in
5
+ * one file, full analytics, zero external services; ADR 0020). Path from
6
+ * `DUCKDB_PATH`.
7
+ * - `memory` — a dependency-free in-memory store for local dev / E2E tests
8
+ * (seed its project/key via `COLLECTOR_MEMORY_PROJECT_ID` /
9
+ * `COLLECTOR_MEMORY_API_KEY`).
10
+ */
11
+ export declare function createStore(env?: NodeJS.ProcessEnv): Promise<CollectorStore>;
12
+ /**
13
+ * Wire the production store, build the app, and listen. Fails fast if required
14
+ * configuration is missing (see {@link loadConfig}). Shared by the
15
+ * `uptimizr-collector` bin and the `uptimizr serve` CLI command.
16
+ */
17
+ export declare function serve(): Promise<void>;
18
+ //# sourceMappingURL=serve.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serve.d.ts","sourceRoot":"","sources":["../src/serve.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD;;;;;;;;GAQG;AACH,wBAAgB,WAAW,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,OAAO,CAAC,cAAc,CAAC,CAazF;AAED;;;;GAIG;AACH,wBAAsB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAqB3C"}
package/dist/serve.js ADDED
@@ -0,0 +1,48 @@
1
+ import { buildApp } from "./app.js";
2
+ import { loadConfig } from "./config.js";
3
+ import { createDuckdbStore } from "./duckdbStore.js";
4
+ import { createMemoryStore } from "./memoryStore.js";
5
+ /**
6
+ * Select the storage backend (`COLLECTOR_STORE`):
7
+ * - `duckdb` (default) — the OSS single-file DuckDB store (events + metadata in
8
+ * one file, full analytics, zero external services; ADR 0020). Path from
9
+ * `DUCKDB_PATH`.
10
+ * - `memory` — a dependency-free in-memory store for local dev / E2E tests
11
+ * (seed its project/key via `COLLECTOR_MEMORY_PROJECT_ID` /
12
+ * `COLLECTOR_MEMORY_API_KEY`).
13
+ */
14
+ export function createStore(env = process.env) {
15
+ switch (env.COLLECTOR_STORE) {
16
+ case "memory":
17
+ return Promise.resolve(createMemoryStore({
18
+ projectId: env.COLLECTOR_MEMORY_PROJECT_ID ?? "demo",
19
+ apiKey: env.COLLECTOR_MEMORY_API_KEY ?? "utk_memory_dev",
20
+ }));
21
+ case "duckdb":
22
+ default:
23
+ return createDuckdbStore();
24
+ }
25
+ }
26
+ /**
27
+ * Wire the production store, build the app, and listen. Fails fast if required
28
+ * configuration is missing (see {@link loadConfig}). Shared by the
29
+ * `uptimizr-collector` bin and the `uptimizr serve` CLI command.
30
+ */
31
+ export async function serve() {
32
+ const config = loadConfig();
33
+ const store = await createStore();
34
+ const app = await buildApp({ store, config, logger: true });
35
+ if (!config.liveTokenSecretIsDedicated) {
36
+ app.log.warn("LIVE_TOKEN_SECRET is not set; live-session tokens are signed with VISITOR_HASH_SECRET. " +
37
+ "Set a dedicated LIVE_TOKEN_SECRET in production so the two secrets are independent.");
38
+ }
39
+ const close = async () => {
40
+ await app.close();
41
+ await store.close();
42
+ process.exit(0);
43
+ };
44
+ process.on("SIGINT", close);
45
+ process.on("SIGTERM", close);
46
+ await app.listen({ host: config.host, port: config.port });
47
+ }
48
+ //# sourceMappingURL=serve.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serve.js","sourceRoot":"","sources":["../src/serve.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAGrD;;;;;;;;GAQG;AACH,MAAM,UAAU,WAAW,CAAC,MAAyB,OAAO,CAAC,GAAG;IAC9D,QAAQ,GAAG,CAAC,eAAe,EAAE,CAAC;QAC5B,KAAK,QAAQ;YACX,OAAO,OAAO,CAAC,OAAO,CACpB,iBAAiB,CAAC;gBAChB,SAAS,EAAE,GAAG,CAAC,2BAA2B,IAAI,MAAM;gBACpD,MAAM,EAAE,GAAG,CAAC,wBAAwB,IAAI,gBAAgB;aACzD,CAAC,CACH,CAAC;QACJ,KAAK,QAAQ,CAAC;QACd;YACE,OAAO,iBAAiB,EAAE,CAAC;IAC/B,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,KAAK;IACzB,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAC5B,MAAM,KAAK,GAAG,MAAM,WAAW,EAAE,CAAC;IAClC,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;IAE5D,IAAI,CAAC,MAAM,CAAC,0BAA0B,EAAE,CAAC;QACvC,GAAG,CAAC,GAAG,CAAC,IAAI,CACV,yFAAyF;YACvF,qFAAqF,CACxF,CAAC;IACJ,CAAC;IAED,MAAM,KAAK,GAAG,KAAK,IAAI,EAAE;QACvB,MAAM,GAAG,CAAC,KAAK,EAAE,CAAC;QAClB,MAAM,KAAK,CAAC,KAAK,EAAE,CAAC;QACpB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC;IACF,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IAC5B,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IAE7B,MAAM,GAAG,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;AAC7D,CAAC"}
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":""}
package/dist/server.js ADDED
@@ -0,0 +1,12 @@
1
+ #!/usr/bin/env node
2
+ import { serve } from "./serve.js";
3
+ /**
4
+ * Process entrypoint for the `uptimizr-collector` bin (kept for compatibility;
5
+ * `uptimizr serve` is the preferred surface — ADR 0029). Runs the ingestion +
6
+ * query API and fails fast if required configuration is missing.
7
+ */
8
+ serve().catch((err) => {
9
+ console.error(err);
10
+ process.exit(1);
11
+ });
12
+ //# sourceMappingURL=server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC;;;;GAIG;AACH,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IACpB,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACnB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
@@ -0,0 +1,263 @@
1
+ import type { AnyEvent, SceneProxy } from "@uptimizr/schema";
2
+ import type { CameraDistanceBucketRow, CameraModeOptions, ClickGazeRayRow, CoverageVoxelRow, DeadClickRow, DirectionBinRow, EventTypeCountRow, FlowLinkRow, HeatmapBinRow, HoverDwellRow, CompileStallRow, ResourceSummaryRow, CapabilityChangeRow, CameraGestureRow, MeshCountRow, MeshDwellRow, PositionBinRow, RageClickRow, NavigationStatsRow, XrRotationRateRow, XrSourceUsageRow, XrAbandonmentRow, InteractionSourceRow, PerfSummaryRow, PerfDistributionRow, FpsHistogramRow, FrameTimePercentileRow, JankRateRow, PerfByDeviceRow, PerfBySceneRow, ResourcePercentileRow, ResolvedApiKey, StabilityCountRow, RangeOptions, SceneOptions, SceneRepresentation, SceneRepresentationSummary, SceneRow, SourceOptions, SessionOptions, SessionMeta, SessionSummaryRow, TimeseriesBucketRow, TimeseriesOptions, TrajectoryPointRow, WorldHeatmapBinRow } from "@uptimizr/db";
3
+ /**
4
+ * The data-access surface the routes depend on. Abstracting it behind an
5
+ * interface keeps handlers thin and lets tests inject a fake store without a
6
+ * live ClickHouse/Postgres (the framework and the DB stay swappable — ADR 0005).
7
+ */
8
+ export interface CollectorStore {
9
+ /**
10
+ * Resolve a plaintext API key to its project id and capability, or `null` if
11
+ * invalid/revoked. The capability scopes what the key may do at the read
12
+ * boundaries (query + live token exchange).
13
+ */
14
+ resolveApiKey(key: string): Promise<ResolvedApiKey | null>;
15
+ /**
16
+ * Whether a project with this id exists. The ingest route uses it to reject
17
+ * events for unknown projects — the public `projectId` is the ingest credential,
18
+ * so a non-existent project must never have data written under it.
19
+ */
20
+ projectExists(projectId: string): Promise<boolean>;
21
+ /** Batched insert of enriched, validated events. */
22
+ insertEvents(events: readonly AnyEvent[]): Promise<void>;
23
+ listSessions(projectId: string, opts?: RangeOptions & CameraModeOptions & {
24
+ limit?: number;
25
+ }): Promise<SessionSummaryRow[]>;
26
+ pointerHeatmap(projectId: string, opts?: RangeOptions & SceneOptions & SourceOptions & SessionOptions & CameraModeOptions & {
27
+ bins?: number;
28
+ }): Promise<HeatmapBinRow[]>;
29
+ /** World-space (3D) pointer heatmap: voxel-binned raycast hit points. */
30
+ worldHeatmap(projectId: string, opts?: RangeOptions & SceneOptions & SourceOptions & CameraModeOptions & {
31
+ cellSize?: number;
32
+ limit?: number;
33
+ }): Promise<WorldHeatmapBinRow[]>;
34
+ /**
35
+ * World-space (3D) gaze heatmap (ADR 0030): voxel-binned camera-pose gaze
36
+ * surface hits (`camera_sample.hitPoint`). The "what did people actually look
37
+ * at" map — distinct from the click-driven world heatmap. Optional `session`
38
+ * scopes it to one visit (ADR 0010 §1a).
39
+ */
40
+ gazeHeatmap(projectId: string, opts?: RangeOptions & SceneOptions & SessionOptions & CameraModeOptions & {
41
+ cellSize?: number;
42
+ limit?: number;
43
+ }): Promise<WorldHeatmapBinRow[]>;
44
+ cameraHeatmap(projectId: string, opts?: RangeOptions & SceneOptions & SessionOptions & CameraModeOptions & {
45
+ bins?: number;
46
+ }): Promise<DirectionBinRow[]>;
47
+ /**
48
+ * Top-down "floor plan" camera-position heatmap (ADR 0026): `camera_sample`
49
+ * world positions binned on the X/Z ground plane. The first-person analog of
50
+ * the 2D pointer heatmap.
51
+ */
52
+ cameraPositionHeatmap(projectId: string, opts?: RangeOptions & SceneOptions & SessionOptions & CameraModeOptions & {
53
+ cellSize?: number;
54
+ limit?: number;
55
+ }): Promise<PositionBinRow[]>;
56
+ /** One session's ordered walked path (ADR 0026): camera positions, oldest first. */
57
+ sessionTrajectory(projectId: string, sessionId: string, opts?: RangeOptions & SceneOptions & {
58
+ limit?: number;
59
+ }): Promise<TrajectoryPointRow[]>;
60
+ /**
61
+ * View-gated click rays (design §7.2/§7.3): each `pointer_click` correlated to
62
+ * the nearest preceding `camera_sample`, aggregated into camera-origin → hit
63
+ * rays grouped by voxel and clicked mesh.
64
+ */
65
+ clickGazeRays(projectId: string, opts?: RangeOptions & SceneOptions & SourceOptions & SessionOptions & {
66
+ cellSize?: number;
67
+ limit?: number;
68
+ }): Promise<ClickGazeRayRow[]>;
69
+ /**
70
+ * Aggregate gaze→mesh flow links (design §7.5): click-time camera direction
71
+ * bins joined to clicked meshes. In position-aware mode (§7.8) the click-time
72
+ * camera position is restored as a standpoint voxel dimension.
73
+ */
74
+ flowHeatmap(projectId: string, opts?: RangeOptions & SceneOptions & SessionOptions & CameraModeOptions & {
75
+ bins?: number;
76
+ limit?: number;
77
+ cellSize?: number;
78
+ groupByOrigin?: boolean;
79
+ originVoxel?: readonly [number, number, number];
80
+ }): Promise<FlowLinkRow[]>;
81
+ topMeshes(projectId: string, opts?: RangeOptions & SessionOptions & {
82
+ limit?: number;
83
+ }): Promise<MeshCountRow[]>;
84
+ /**
85
+ * Object dwell ranking (#37): per-mesh attention from `mesh_visibility`
86
+ * summaries — total visible/centered time and peak screen fraction.
87
+ */
88
+ meshDwell(projectId: string, opts?: RangeOptions & SceneOptions & SessionOptions & {
89
+ limit?: number;
90
+ }): Promise<MeshDwellRow[]>;
91
+ /**
92
+ * Dead-click rate (#46): total clicks vs. clicks that hit empty space, from
93
+ * `pointer_click` events. The consumer derives the rate.
94
+ */
95
+ deadClicks(projectId: string, opts?: RangeOptions & SceneOptions & SourceOptions & SessionOptions): Promise<DeadClickRow[]>;
96
+ /**
97
+ * Rage clicks (#47): rapid repeated clicks on the same mesh, bucketed into
98
+ * fixed time windows; a frustration signal derived from the click stream.
99
+ */
100
+ rageClicks(projectId: string, opts?: RangeOptions & SceneOptions & SourceOptions & SessionOptions & {
101
+ interval?: number;
102
+ minRepeats?: number;
103
+ limit?: number;
104
+ }): Promise<RageClickRow[]>;
105
+ /**
106
+ * Hover hesitation (#48): per-mesh dwell time spent hovering an object without
107
+ * clicking it, from `hover_dwell` summaries. Surfaces objects that look
108
+ * interactive but aren't (or aren't obviously clickable).
109
+ */
110
+ hoverDwell(projectId: string, opts?: RangeOptions & SceneOptions & SourceOptions & SessionOptions & {
111
+ limit?: number;
112
+ }): Promise<HoverDwellRow[]>;
113
+ /**
114
+ * Compile stalls (#42): per-phase shader/pipeline compilation hitches from
115
+ * `compile_stall` events — the felt first-interaction jank `frame_perf`
116
+ * averages away.
117
+ */
118
+ compileStalls(projectId: string, opts?: RangeOptions & SceneOptions & SessionOptions & {
119
+ limit?: number;
120
+ }): Promise<CompileStallRow[]>;
121
+ /**
122
+ * Resource footprint (#44): GPU / memory cost summary from `resource_sample`
123
+ * events — average and peak texture/geometry bytes, triangles/vertices, and JS
124
+ * heap the scene asked of the device (vs. the device caps in `session_start`).
125
+ */
126
+ resourceSummary(projectId: string, opts?: RangeOptions & SessionOptions): Promise<ResourceSummaryRow[]>;
127
+ /**
128
+ * Capability changes (#49): per-transition fallback/recovery counts from
129
+ * `capability_change` events (e.g. how many sessions fell back WebGPU→WebGL2)
130
+ * — explains perf / visual-fidelity variance across the user base.
131
+ */
132
+ capabilityChanges(projectId: string, opts?: RangeOptions & SceneOptions & SessionOptions & {
133
+ limit?: number;
134
+ }): Promise<CapabilityChangeRow[]>;
135
+ /**
136
+ * Camera gestures (ADR 0025): per-kind navigation breakdown from
137
+ * `camera_gesture` events (orbit / pan / dolly / zoom / roll / fly) — how an
138
+ * audience moves the viewpoint, separated from object selection.
139
+ */
140
+ cameraGestures(projectId: string, opts?: RangeOptions & SceneOptions & SourceOptions & SessionOptions & {
141
+ limit?: number;
142
+ }): Promise<CameraGestureRow[]>;
143
+ perfSummary(projectId: string, opts?: RangeOptions & SessionOptions): Promise<PerfSummaryRow[]>;
144
+ /**
145
+ * FPS distribution (ADR 0028 §1): per-session p05/p50/p95 FPS summarized across
146
+ * sessions (median-of-medians), so neither long sessions nor fast devices skew
147
+ * the headline. The distribution-honest replacement for the volume-chart mean.
148
+ */
149
+ perfDistribution(projectId: string, opts?: RangeOptions & SceneOptions & SessionOptions): Promise<PerfDistributionRow[]>;
150
+ /** Histogram of per-session median FPS in `bucket`-wide bins (ADR 0028 §1). */
151
+ fpsHistogram(projectId: string, opts?: RangeOptions & SceneOptions & SessionOptions & {
152
+ bucket?: number;
153
+ }): Promise<FpsHistogramRow[]>;
154
+ /**
155
+ * Frame-time percentiles in ms (ADR 0028 §1): per-session median frame time and
156
+ * worst-window p95, summarized across sessions.
157
+ */
158
+ frameTimePercentiles(projectId: string, opts?: RangeOptions & SceneOptions & SessionOptions): Promise<FrameTimePercentileRow[]>;
159
+ /**
160
+ * Jank rate (ADR 0028 §1): per-session long-frames-per-window rate, reported as
161
+ * the median and worst-decile session.
162
+ */
163
+ jankRate(projectId: string, opts?: RangeOptions & SceneOptions & SessionOptions): Promise<JankRateRow[]>;
164
+ /**
165
+ * FPS by device class (ADR 0028 §2): per-session median FPS attributed to the
166
+ * `session_start.device` block (graphics backend, mobile flag, GPU renderer) —
167
+ * data already on the wire, no SDK change.
168
+ */
169
+ perfByDevice(projectId: string, opts?: RangeOptions & SceneOptions & SessionOptions): Promise<PerfByDeviceRow[]>;
170
+ /** FPS by scene (ADR 0028 §1): per-session median FPS grouped by scene. */
171
+ perfByScene(projectId: string, opts?: RangeOptions & SceneOptions & SessionOptions): Promise<PerfBySceneRow[]>;
172
+ /**
173
+ * Resource-footprint percentiles (ADR 0028 §1): per-session p50/p95 of JS heap,
174
+ * texture bytes, and triangle count summarized across sessions.
175
+ */
176
+ resourcePercentiles(projectId: string, opts?: RangeOptions & SceneOptions & SessionOptions): Promise<ResourcePercentileRow[]>;
177
+ /** Stability incidents: context-loss and compile-stall counts over the range. */
178
+ stabilityCounts(projectId: string, opts?: RangeOptions & SceneOptions & SessionOptions): Promise<StabilityCountRow[]>;
179
+ /**
180
+ * Scene coverage / dead zones (derived, scene-metrics §B): occupied
181
+ * camera-position voxels. Coverage % is computed by the consumer against the
182
+ * scene AABB.
183
+ */
184
+ sceneCoverage(projectId: string, opts?: RangeOptions & SceneOptions & SessionOptions & {
185
+ cellSize?: number;
186
+ limit?: number;
187
+ }): Promise<CoverageVoxelRow[]>;
188
+ /**
189
+ * Camera distance / zoom distribution (derived, scene-metrics §B): histogram of
190
+ * camera-to-`center` distance, bucketed by `bucketSize` world units.
191
+ */
192
+ cameraDistance(projectId: string, opts?: RangeOptions & SceneOptions & SessionOptions & {
193
+ center?: readonly [number, number, number];
194
+ bucketSize?: number;
195
+ limit?: number;
196
+ }): Promise<CameraDistanceBucketRow[]>;
197
+ /**
198
+ * Navigation effort / friction (derived, scene-metrics §B): per-session travel
199
+ * distance with active-vs-idle segmentation.
200
+ */
201
+ navigationStats(projectId: string, opts?: RangeOptions & SceneOptions & SessionOptions & {
202
+ moveThreshold?: number;
203
+ limit?: number;
204
+ }): Promise<NavigationStatsRow[]>;
205
+ /**
206
+ * XR motion-sickness proxy (#50, scene-metrics §F): per-session head/view
207
+ * rotation rate over the `camera_sample` pose stream — rapid view rotation is
208
+ * the comfort/discomfort signal.
209
+ */
210
+ xrRotationRate(projectId: string, opts?: RangeOptions & SceneOptions & SessionOptions & {
211
+ rapidTurn?: number;
212
+ limit?: number;
213
+ }): Promise<XrRotationRateRow[]>;
214
+ /**
215
+ * XR input-source usage (#50, scene-metrics §F): hand vs. controller (vs. gaze)
216
+ * split read from `source` on the interaction events.
217
+ */
218
+ xrSourceUsage(projectId: string, opts?: RangeOptions & SceneOptions & SessionOptions & {
219
+ limit?: number;
220
+ }): Promise<XrSourceUsageRow[]>;
221
+ /**
222
+ * XR session abandonment (#50, scene-metrics §F): per XR session, its time
223
+ * bounds and event/interaction counts — a short span signals headset drop-off.
224
+ */
225
+ xrAbandonment(projectId: string, opts?: RangeOptions & SceneOptions & SessionOptions & {
226
+ limit?: number;
227
+ }): Promise<XrAbandonmentRow[]>;
228
+ /**
229
+ * Input-source breakdown (ADR 0011): per `(event_type, source)`, how many
230
+ * interactions came from each input source (mouse / touch / xr-controller /
231
+ * hand / …) and across how many sessions — turns `source` into an insight.
232
+ */
233
+ interactionsBySource(projectId: string, opts?: RangeOptions & SceneOptions & SourceOptions & SessionOptions & {
234
+ limit?: number;
235
+ }): Promise<InteractionSourceRow[]>;
236
+ /** Distinct scenes (+counts, last-seen) for the project; time-range aware (ADR 0010). */
237
+ scenes(projectId: string, opts?: RangeOptions & {
238
+ limit?: number;
239
+ }): Promise<SceneRow[]>;
240
+ /** Event-volume time-series bucketed by interval (the 4th dimension). */
241
+ timeseries(projectId: string, opts?: RangeOptions & SceneOptions & TimeseriesOptions): Promise<TimeseriesBucketRow[]>;
242
+ /** Per-event-type counts over the range (powers the scene health panel). */
243
+ eventTypeCounts(projectId: string, opts?: RangeOptions & SceneOptions): Promise<EventTypeCountRow[]>;
244
+ /** Ordered session timeline for replay (gated by raw-session retention). */
245
+ getSessionEvents(projectId: string, sessionId: string): Promise<AnyEvent[]>;
246
+ /**
247
+ * Streaming counterpart to {@link getSessionEvents}: yields events in `ts`
248
+ * order without materializing the whole session, powering the NDJSON replay
249
+ * response (ADR 0015). Gated by raw-session retention like the array form.
250
+ */
251
+ streamSessionEvents(projectId: string, sessionId: string): AsyncIterable<AnyEvent>;
252
+ /** Coarse per-session descriptor (device/scene/user) from `session_start`. */
253
+ getSessionMeta(projectId: string, sessionId: string): Promise<SessionMeta | null>;
254
+ /** Register/replace a scene's proxy geometry in the spatial registry (ADR 0010/0014). */
255
+ putSceneProxy(projectId: string, proxy: SceneProxy, label?: string): Promise<SceneRepresentation>;
256
+ /** Fetch one scene representation (including the proxy blob), or `null`. */
257
+ getSceneRepresentation(projectId: string, sceneId: string): Promise<SceneRepresentation | null>;
258
+ /** List a project's scene representations (summaries, no proxy blobs). */
259
+ listSceneRepresentations(projectId: string): Promise<SceneRepresentationSummary[]>;
260
+ /** Release underlying connections. */
261
+ close(): Promise<void>;
262
+ }
263
+ //# sourceMappingURL=store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"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"}
package/dist/store.js ADDED
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"store.js","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":""}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Derive the per-day salt from the server secret. Rotating the salt daily means a
3
+ * visitor hash cannot be correlated across days — the cornerstone of the
4
+ * cookieless, no-persistent-ID privacy model (ADR 0003).
5
+ */
6
+ export declare function dailySalt(secret: string, date?: Date): string;
7
+ /**
8
+ * Compute the cookieless visitor id as `hash(ip + ua + dailySalt)`. The raw IP is
9
+ * never stored — only this derived, daily-rotating hash leaves the server.
10
+ */
11
+ export declare function visitorHash(ip: string, ua: string, salt: string): string;
12
+ //# sourceMappingURL=visitor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"visitor.d.ts","sourceRoot":"","sources":["../src/visitor.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,GAAE,IAAiB,GAAG,MAAM,CAGzE;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAExE"}
@@ -0,0 +1,18 @@
1
+ import { createHash } from "node:crypto";
2
+ /**
3
+ * Derive the per-day salt from the server secret. Rotating the salt daily means a
4
+ * visitor hash cannot be correlated across days — the cornerstone of the
5
+ * cookieless, no-persistent-ID privacy model (ADR 0003).
6
+ */
7
+ export function dailySalt(secret, date = new Date()) {
8
+ const day = date.toISOString().slice(0, 10); // YYYY-MM-DD (UTC)
9
+ return createHash("sha256").update(`${secret}:${day}`).digest("hex");
10
+ }
11
+ /**
12
+ * Compute the cookieless visitor id as `hash(ip + ua + dailySalt)`. The raw IP is
13
+ * never stored — only this derived, daily-rotating hash leaves the server.
14
+ */
15
+ export function visitorHash(ip, ua, salt) {
16
+ return createHash("sha256").update(`${ip}|${ua}|${salt}`).digest("hex").slice(0, 32);
17
+ }
18
+ //# sourceMappingURL=visitor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"visitor.js","sourceRoot":"","sources":["../src/visitor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC;;;;GAIG;AACH,MAAM,UAAU,SAAS,CAAC,MAAc,EAAE,OAAa,IAAI,IAAI,EAAE;IAC/D,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,mBAAmB;IAChE,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,GAAG,MAAM,IAAI,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACvE,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,EAAU,EAAE,EAAU,EAAE,IAAY;IAC9D,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AACvF,CAAC"}
package/package.json ADDED
@@ -0,0 +1,64 @@
1
+ {
2
+ "name": "@uptimizr/collector-server",
3
+ "version": "0.1.0",
4
+ "description": "Uptimizr ingestion + query API (Fastify). Self-hostable collector for the OSS data-collector.",
5
+ "keywords": [
6
+ "uptimizr",
7
+ "analytics",
8
+ "collector",
9
+ "ingestion",
10
+ "fastify",
11
+ "server",
12
+ "3d",
13
+ "privacy"
14
+ ],
15
+ "license": "Apache-2.0",
16
+ "repository": {
17
+ "type": "git",
18
+ "url": "git+https://github.com/RaananW/Uptimizr.git",
19
+ "directory": "oss/apps/collector-server"
20
+ },
21
+ "bugs": {
22
+ "url": "https://github.com/RaananW/Uptimizr/issues"
23
+ },
24
+ "homepage": "https://github.com/RaananW/Uptimizr/tree/main/oss/apps/collector-server#readme",
25
+ "publishConfig": {
26
+ "access": "public"
27
+ },
28
+ "type": "module",
29
+ "main": "dist/server.js",
30
+ "bin": {
31
+ "uptimizr": "./dist/cli.js",
32
+ "uptimizr-collector": "./dist/server.js"
33
+ },
34
+ "files": [
35
+ "dist",
36
+ "README.md",
37
+ "LICENSE"
38
+ ],
39
+ "dependencies": {
40
+ "@fastify/cors": "^11.2.0",
41
+ "@fastify/helmet": "^13.0.2",
42
+ "@fastify/rate-limit": "^11.0.0",
43
+ "@fastify/static": "^9.1.1",
44
+ "fastify": "^5.8.5",
45
+ "fastify-type-provider-zod": "^6.1.0",
46
+ "zod": "^4.1.5",
47
+ "@uptimizr/db": "0.1.0",
48
+ "@uptimizr/schema": "0.1.0"
49
+ },
50
+ "devDependencies": {
51
+ "@types/node": "^22.19.21",
52
+ "tsx": "^4.22.4",
53
+ "vitest": "^4.1.9"
54
+ },
55
+ "scripts": {
56
+ "build": "tsc -p tsconfig.json",
57
+ "dev": "dotenv -e ../../../.env -- tsx watch src/server.ts",
58
+ "start": "node dist/server.js",
59
+ "typecheck": "tsc -p tsconfig.json --noEmit",
60
+ "test": "vitest run",
61
+ "lint": "eslint .",
62
+ "clean": "rm -rf dist"
63
+ }
64
+ }