@nommos/core 0.0.27 → 0.0.29
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/package.json +1 -1
- package/src/lib/constants.d.ts +0 -1
- package/src/lib/constants.js +1 -1
- package/src/lib/constants.js.map +1 -1
- package/src/lib/heatmap-tracker.d.ts +10 -2
- package/src/lib/heatmap-tracker.js +112 -22
- package/src/lib/heatmap-tracker.js.map +1 -1
- package/src/lib/session-tracker.d.ts +6 -2
- package/src/lib/session-tracker.js +72 -28
- package/src/lib/session-tracker.js.map +1 -1
- package/src/lib/webSocket-client.js +5 -1
- package/src/lib/webSocket-client.js.map +1 -1
package/package.json
CHANGED
package/src/lib/constants.d.ts
CHANGED
|
@@ -17,6 +17,5 @@ export declare const FB_PIXEL_SCRIPT_URL = "https://connect.facebook.net/en_US/f
|
|
|
17
17
|
export declare const SESSION_CHUNK_DURATION_MS = 60000;
|
|
18
18
|
export declare const SESSION_INACTIVITY_TIMEOUT_MS = 60000;
|
|
19
19
|
export declare const MAX_SESSION_CHUNK_BYTES: number;
|
|
20
|
-
export declare const HEATMAP_FLUSH_INTERVAL_MS = 60000;
|
|
21
20
|
export declare const BROWSER_DEFS: UaDef[];
|
|
22
21
|
export declare const OS_DEFS: UaDef[];
|
package/src/lib/constants.js
CHANGED
|
@@ -19,7 +19,7 @@ export const SESSION_CHUNK_DURATION_MS = 60000; // 1 minute
|
|
|
19
19
|
export const SESSION_INACTIVITY_TIMEOUT_MS = 60000; // 1 minute
|
|
20
20
|
export const MAX_SESSION_CHUNK_BYTES = 10 * 1024 * 1024; // 10MB soft limit
|
|
21
21
|
// Heatmap Settings
|
|
22
|
-
|
|
22
|
+
// No dynamic interval for heatmaps - flushed on event threshold or navigation
|
|
23
23
|
export const BROWSER_DEFS = [
|
|
24
24
|
[/Edg\/([\d.]+)/, 'Edge'],
|
|
25
25
|
[/OPR\/([\d.]+)/, 'Opera'],
|
package/src/lib/constants.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../../nommos/core/src/lib/constants.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,eAAe,GAAG,kDAAkD,CAAC;AAElF,MAAM,CAAC,MAAM,UAAU,GAAG,aAAa,CAAC;AACxC,MAAM,CAAC,MAAM,aAAa,GAAG,gBAAgB,CAAC;AAC9C,MAAM,CAAC,MAAM,cAAc,GAAG,iBAAiB,CAAC;AAChD,MAAM,CAAC,MAAM,qBAAqB,GAAG,wBAAwB,CAAC,CAAC,6BAA6B;AAC5F,MAAM,CAAC,MAAM,WAAW,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AACrD,MAAM,CAAC,MAAM,WAAW,GAAG,gBAAgB,CAAC;AAC5C,MAAM,CAAC,MAAM,eAAe,GAAG,sBAAsB,CAAC;AACtD,MAAM,CAAC,MAAM,aAAa,GAAG,qBAAqB,CAAC;AACnD,MAAM,CAAC,MAAM,uBAAuB,GAAG,+BAA+B,CAAC;AAEvE,wBAAwB;AACxB,MAAM,CAAC,MAAM,gBAAgB,GAAG,cAAc,CAAC;AAC/C,MAAM,CAAC,MAAM,mBAAmB,GAAG,iBAAiB,CAAC;AACrD,MAAM,CAAC,MAAM,qBAAqB,GAAG,mBAAmB,CAAC;AACzD,MAAM,CAAC,MAAM,mBAAmB,GAAG,iBAAiB,CAAC;AAErD,MAAM,CAAC,MAAM,mBAAmB,GAAG,gDAAgD,CAAC;AAEpF,6BAA6B;AAC7B,MAAM,CAAC,MAAM,yBAAyB,GAAG,KAAM,CAAC,CAAC,WAAW;AAC5D,MAAM,CAAC,MAAM,6BAA6B,GAAG,KAAM,CAAC,CAAC,WAAW;AAChE,MAAM,CAAC,MAAM,uBAAuB,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,kBAAkB;AAE3E,mBAAmB;AACnB,
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../../nommos/core/src/lib/constants.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,eAAe,GAAG,kDAAkD,CAAC;AAElF,MAAM,CAAC,MAAM,UAAU,GAAG,aAAa,CAAC;AACxC,MAAM,CAAC,MAAM,aAAa,GAAG,gBAAgB,CAAC;AAC9C,MAAM,CAAC,MAAM,cAAc,GAAG,iBAAiB,CAAC;AAChD,MAAM,CAAC,MAAM,qBAAqB,GAAG,wBAAwB,CAAC,CAAC,6BAA6B;AAC5F,MAAM,CAAC,MAAM,WAAW,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AACrD,MAAM,CAAC,MAAM,WAAW,GAAG,gBAAgB,CAAC;AAC5C,MAAM,CAAC,MAAM,eAAe,GAAG,sBAAsB,CAAC;AACtD,MAAM,CAAC,MAAM,aAAa,GAAG,qBAAqB,CAAC;AACnD,MAAM,CAAC,MAAM,uBAAuB,GAAG,+BAA+B,CAAC;AAEvE,wBAAwB;AACxB,MAAM,CAAC,MAAM,gBAAgB,GAAG,cAAc,CAAC;AAC/C,MAAM,CAAC,MAAM,mBAAmB,GAAG,iBAAiB,CAAC;AACrD,MAAM,CAAC,MAAM,qBAAqB,GAAG,mBAAmB,CAAC;AACzD,MAAM,CAAC,MAAM,mBAAmB,GAAG,iBAAiB,CAAC;AAErD,MAAM,CAAC,MAAM,mBAAmB,GAAG,gDAAgD,CAAC;AAEpF,6BAA6B;AAC7B,MAAM,CAAC,MAAM,yBAAyB,GAAG,KAAM,CAAC,CAAC,WAAW;AAC5D,MAAM,CAAC,MAAM,6BAA6B,GAAG,KAAM,CAAC,CAAC,WAAW;AAChE,MAAM,CAAC,MAAM,uBAAuB,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,kBAAkB;AAE3E,mBAAmB;AACnB,8EAA8E;AAE9E,MAAM,CAAC,MAAM,YAAY,GAAY;IACnC,CAAC,eAAe,EAAE,MAAM,CAAC;IACzB,CAAC,eAAe,EAAE,OAAO,CAAC;IAC1B,CAAC,kBAAkB,EAAE,QAAQ,CAAC,EAAE,gDAAgD;IAChF,CAAC,mBAAmB,EAAE,SAAS,CAAC;IAChC,CAAC,8BAA8B,EAAE,QAAQ,CAAC;IAC1C,CAAC,mBAAmB,EAAE,SAAS,CAAC;IAChC,CAAC,eAAe,EAAE,mBAAmB,CAAC;IACtC,CAAC,wBAAwB,EAAE,mBAAmB,CAAC;IAC/C,CAAC,iBAAiB,EAAE,OAAO,CAAC;IAC5B,CAAC,mBAAmB,EAAE,SAAS,CAAC;IAChC,CAAC,0BAA0B,EAAE,kBAAkB,CAAC;IAChD,CAAC,qBAAqB,EAAE,YAAY,CAAC;IACrC,CAAC,qBAAqB,EAAE,gBAAgB,CAAC;IACzC,CAAC,qBAAqB,EAAE,YAAY,CAAC;IACrC,CAAC,8BAA8B,EAAE,sBAAsB,CAAC;IACxD,CAAC,kBAAkB,EAAE,QAAQ,CAAC;IAC9B,CAAC,sBAAsB,EAAE,YAAY,CAAC;CACvC,CAAC;AAEF,MAAM,CAAC,MAAM,OAAO,GAAY;IAC9B,CAAC,sBAAsB,EAAE,SAAS,CAAC;IACnC,CAAC,qBAAqB,EAAE,SAAS,CAAC;IAClC,CAAC,yBAAyB,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAClE,CAAC,4BAA4B,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACxE,CAAC,wBAAwB,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACnE,CAAC,wBAAwB,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAChD,CAAC,sBAAsB,EAAE,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAClD,CAAC,kBAAkB,EAAE,OAAO,CAAC;IAC7B,CAAC,kBAAkB,EAAE,OAAO,CAAC;IAC7B,CAAC,kBAAkB,EAAE,OAAO,CAAC;IAC7B,CAAC,6BAA6B,EAAE,YAAY,CAAC;IAC7C,CAAC,yBAAyB,EAAE,eAAe,CAAC;IAC5C,CAAC,mBAAmB,EAAE,SAAS,CAAC;IAChC,CAAC,mBAAmB,EAAE,SAAS,CAAC;IAChC,CAAC,kBAAkB,EAAE,QAAQ,CAAC;IAC9B,CAAC,iBAAiB,EAAE,SAAS,CAAC;IAC9B,CAAC,iBAAiB,EAAE,OAAO,CAAC;IAC5B,CAAC,eAAe,EAAE,KAAK,CAAC;IACxB,CAAC,iBAAiB,EAAE,OAAO,CAAC;IAC5B,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAC1B,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAC1B,CAAC,mBAAmB,EAAE,SAAS,CAAC;CACjC,CAAC"}
|
|
@@ -13,17 +13,26 @@ export declare class HeatmapTracker {
|
|
|
13
13
|
private lastX;
|
|
14
14
|
private lastY;
|
|
15
15
|
private moveEventCounter;
|
|
16
|
-
private timer;
|
|
17
16
|
private maxScroll;
|
|
18
17
|
private reachedBands;
|
|
19
18
|
private activePageKey;
|
|
19
|
+
private activePagePath;
|
|
20
|
+
private activePageUrl;
|
|
21
|
+
private observer;
|
|
22
|
+
private quiescenceTimer;
|
|
23
|
+
private visibilityTimer;
|
|
24
|
+
private hasFirstEvent;
|
|
20
25
|
private static screenshotStore;
|
|
21
26
|
constructor(ws: WebSocketClient, cfg: FullConfig, browserId: string, channel: number);
|
|
22
27
|
/**
|
|
23
28
|
* Starts global event listeners for heatmap collection.
|
|
24
29
|
*/
|
|
25
30
|
start(): void;
|
|
31
|
+
private patchHistoryApi;
|
|
32
|
+
private setupMutationObserver;
|
|
33
|
+
private resetQuiescenceTimer;
|
|
26
34
|
private handleNavigation;
|
|
35
|
+
private updateContext;
|
|
27
36
|
private capturePageScreenshot;
|
|
28
37
|
/**
|
|
29
38
|
* Stops listeners and flushes remaining data.
|
|
@@ -35,7 +44,6 @@ export declare class HeatmapTracker {
|
|
|
35
44
|
private handleVisibilityChange;
|
|
36
45
|
private recordPoint;
|
|
37
46
|
private incrementAndCheck;
|
|
38
|
-
private resetTimer;
|
|
39
47
|
private flush;
|
|
40
48
|
private mapToPoints;
|
|
41
49
|
private mapToScroll;
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { HEATMAP_FLUSH_INTERVAL_MS } from './constants';
|
|
2
1
|
export class HeatmapTracker {
|
|
3
2
|
constructor(ws, cfg, browserId, channel) {
|
|
4
3
|
this.ws = ws;
|
|
@@ -13,10 +12,15 @@ export class HeatmapTracker {
|
|
|
13
12
|
this.lastX = -1;
|
|
14
13
|
this.lastY = -1;
|
|
15
14
|
this.moveEventCounter = 0;
|
|
16
|
-
this.timer = null;
|
|
17
15
|
this.maxScroll = 0;
|
|
18
16
|
this.reachedBands = new Set();
|
|
19
17
|
this.activePageKey = '';
|
|
18
|
+
this.activePagePath = '';
|
|
19
|
+
this.activePageUrl = '';
|
|
20
|
+
this.observer = null;
|
|
21
|
+
this.quiescenceTimer = null;
|
|
22
|
+
this.visibilityTimer = null;
|
|
23
|
+
this.hasFirstEvent = false;
|
|
20
24
|
}
|
|
21
25
|
/**
|
|
22
26
|
* Starts global event listeners for heatmap collection.
|
|
@@ -43,18 +47,83 @@ export class HeatmapTracker {
|
|
|
43
47
|
window.addEventListener('popstate', () => this.handleNavigation());
|
|
44
48
|
window.addEventListener('hashchange', () => this.handleNavigation());
|
|
45
49
|
window.addEventListener('beforeunload', () => this.flush());
|
|
50
|
+
this.setupMutationObserver();
|
|
51
|
+
this.patchHistoryApi();
|
|
46
52
|
this.handleNavigation();
|
|
47
|
-
|
|
53
|
+
}
|
|
54
|
+
patchHistoryApi() {
|
|
55
|
+
if (typeof window === 'undefined' || !window.history)
|
|
56
|
+
return;
|
|
57
|
+
const heatmap = this;
|
|
58
|
+
const originalPushState = window.history.pushState;
|
|
59
|
+
const originalReplaceState = window.history.replaceState;
|
|
60
|
+
window.history.pushState = function (...args) {
|
|
61
|
+
if (heatmap.eventCount > 0)
|
|
62
|
+
heatmap.flush();
|
|
63
|
+
const result = originalPushState.apply(this, args);
|
|
64
|
+
heatmap.updateContext();
|
|
65
|
+
return result;
|
|
66
|
+
};
|
|
67
|
+
window.history.replaceState = function (...args) {
|
|
68
|
+
if (heatmap.eventCount > 0)
|
|
69
|
+
heatmap.flush();
|
|
70
|
+
const result = originalReplaceState.apply(this, args);
|
|
71
|
+
heatmap.updateContext();
|
|
72
|
+
return result;
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
setupMutationObserver() {
|
|
76
|
+
if (typeof window === 'undefined' || typeof MutationObserver === 'undefined')
|
|
77
|
+
return;
|
|
78
|
+
this.observer = new MutationObserver(() => {
|
|
79
|
+
// If we are waiting for the page to settle, reset the timer
|
|
80
|
+
if (this.hasFirstEvent) {
|
|
81
|
+
this.resetQuiescenceTimer();
|
|
82
|
+
}
|
|
83
|
+
});
|
|
84
|
+
this.observer.observe(document.body, {
|
|
85
|
+
attributes: true,
|
|
86
|
+
childList: true,
|
|
87
|
+
subtree: true
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
resetQuiescenceTimer() {
|
|
91
|
+
if (this.quiescenceTimer)
|
|
92
|
+
clearTimeout(this.quiescenceTimer);
|
|
93
|
+
// Wait for 2 seconds of "quiet" before taking the snapshot
|
|
94
|
+
this.quiescenceTimer = setTimeout(() => {
|
|
95
|
+
if (this.cfg.mode === 'dev') {
|
|
96
|
+
console.log('[Nommos Tracker] Page reached quiescence, capturing screenshot...');
|
|
97
|
+
}
|
|
98
|
+
this.capturePageScreenshot();
|
|
99
|
+
this.quiescenceTimer = null;
|
|
100
|
+
}, 2000);
|
|
48
101
|
}
|
|
49
102
|
handleNavigation() {
|
|
50
103
|
if (typeof window === 'undefined')
|
|
51
104
|
return;
|
|
52
|
-
// Flush existing data
|
|
105
|
+
// Flush existing data using the context of the page we are LEAVING
|
|
53
106
|
if (this.eventCount > 0) {
|
|
54
107
|
this.flush();
|
|
55
108
|
}
|
|
109
|
+
// Now update the context for the page we are ENTERING
|
|
110
|
+
this.updateContext();
|
|
111
|
+
}
|
|
112
|
+
updateContext() {
|
|
113
|
+
if (typeof window === 'undefined')
|
|
114
|
+
return;
|
|
56
115
|
const category = this.channel === 3 ? 'mobile' : 'desktop';
|
|
57
116
|
this.activePageKey = `${window.location.pathname}_${category}`;
|
|
117
|
+
this.activePagePath = window.location.pathname;
|
|
118
|
+
this.activePageUrl = window.location.href;
|
|
119
|
+
this.hasFirstEvent = false;
|
|
120
|
+
if (this.quiescenceTimer) {
|
|
121
|
+
clearTimeout(this.quiescenceTimer);
|
|
122
|
+
this.quiescenceTimer = null;
|
|
123
|
+
}
|
|
124
|
+
if (this.cfg.mode === 'dev') {
|
|
125
|
+
console.log('[Nommos Tracker] Heatmap Context Updated:', this.activePagePath);
|
|
126
|
+
}
|
|
58
127
|
}
|
|
59
128
|
async capturePageScreenshot() {
|
|
60
129
|
if (typeof window === 'undefined')
|
|
@@ -76,7 +145,7 @@ export class HeatmapTracker {
|
|
|
76
145
|
scrollX: 0,
|
|
77
146
|
scrollY: 0,
|
|
78
147
|
});
|
|
79
|
-
const base64Image = canvas.toDataURL('image/jpeg', 0.
|
|
148
|
+
const base64Image = canvas.toDataURL('image/jpeg', 0.2);
|
|
80
149
|
HeatmapTracker.screenshotStore.set(this.activePageKey, base64Image);
|
|
81
150
|
if (this.cfg.mode === 'dev') {
|
|
82
151
|
console.log('[Nommos Tracker] Screenshot Captured for:', this.activePageKey);
|
|
@@ -98,8 +167,17 @@ export class HeatmapTracker {
|
|
|
98
167
|
document.removeEventListener('mousemove', this.handleMouseMove.bind(this), { capture: true });
|
|
99
168
|
window.removeEventListener('scroll', this.handleScroll.bind(this));
|
|
100
169
|
window.removeEventListener('visibilitychange', this.handleVisibilityChange.bind(this));
|
|
101
|
-
if (this.
|
|
102
|
-
|
|
170
|
+
if (this.observer) {
|
|
171
|
+
this.observer.disconnect();
|
|
172
|
+
this.observer = null;
|
|
173
|
+
}
|
|
174
|
+
if (this.quiescenceTimer) {
|
|
175
|
+
clearTimeout(this.quiescenceTimer);
|
|
176
|
+
this.quiescenceTimer = null;
|
|
177
|
+
}
|
|
178
|
+
if (this.visibilityTimer) {
|
|
179
|
+
clearTimeout(this.visibilityTimer);
|
|
180
|
+
this.visibilityTimer = null;
|
|
103
181
|
}
|
|
104
182
|
this.flush();
|
|
105
183
|
}
|
|
@@ -147,7 +225,18 @@ export class HeatmapTracker {
|
|
|
147
225
|
}
|
|
148
226
|
handleVisibilityChange() {
|
|
149
227
|
if (document.visibilityState === 'hidden') {
|
|
150
|
-
|
|
228
|
+
// Grace period: wait 10 seconds before flushing background heatmaps
|
|
229
|
+
this.visibilityTimer = setTimeout(() => {
|
|
230
|
+
this.flush(true);
|
|
231
|
+
this.visibilityTimer = null;
|
|
232
|
+
}, 10000);
|
|
233
|
+
}
|
|
234
|
+
else {
|
|
235
|
+
// User came back: cancel any pending background flush
|
|
236
|
+
if (this.visibilityTimer) {
|
|
237
|
+
clearTimeout(this.visibilityTimer);
|
|
238
|
+
this.visibilityTimer = null;
|
|
239
|
+
}
|
|
151
240
|
}
|
|
152
241
|
}
|
|
153
242
|
recordPoint(map, rawX, rawY) {
|
|
@@ -158,34 +247,36 @@ export class HeatmapTracker {
|
|
|
158
247
|
map.set(key, (map.get(key) || 0) + 1);
|
|
159
248
|
}
|
|
160
249
|
incrementAndCheck() {
|
|
250
|
+
if (!this.hasFirstEvent) {
|
|
251
|
+
this.hasFirstEvent = true;
|
|
252
|
+
this.resetQuiescenceTimer();
|
|
253
|
+
}
|
|
161
254
|
this.eventCount++;
|
|
162
255
|
const threshold = this.cfg.heatmapThreshold || 50;
|
|
163
256
|
if (this.eventCount >= threshold) {
|
|
164
257
|
this.flush();
|
|
165
258
|
}
|
|
166
259
|
}
|
|
167
|
-
|
|
168
|
-
if (this.timer)
|
|
169
|
-
clearTimeout(this.timer);
|
|
170
|
-
const interval = this.cfg.controls?.heatmap_flush_interval_ms || this.cfg.heatmapInterval || HEATMAP_FLUSH_INTERVAL_MS;
|
|
171
|
-
this.timer = setTimeout(() => this.flush(), interval);
|
|
172
|
-
}
|
|
173
|
-
async flush() {
|
|
260
|
+
async flush(isBackground = false) {
|
|
174
261
|
if (this.eventCount === 0) {
|
|
262
|
+
return;
|
|
263
|
+
}
|
|
264
|
+
// Optimization: If this is a background flush (tab switch),
|
|
265
|
+
// only send if we have a meaningful amount of data (min 5 events).
|
|
266
|
+
if (isBackground && this.eventCount < 5) {
|
|
175
267
|
if (this.cfg.mode === 'dev') {
|
|
176
|
-
console.log('[Nommos Tracker]
|
|
268
|
+
console.log('[Nommos Tracker] Background flush skipped: only', this.eventCount, 'events collected.');
|
|
177
269
|
}
|
|
178
|
-
this.resetTimer();
|
|
179
270
|
return;
|
|
180
271
|
}
|
|
181
|
-
//
|
|
182
|
-
|
|
272
|
+
// Screenshot is now handled by Quiescence logic in the background.
|
|
273
|
+
// We just pack whatever we have in the store.
|
|
183
274
|
const payload = {
|
|
184
275
|
brandId: this.cfg.brand_id || '',
|
|
185
276
|
bid: this.browserId,
|
|
186
277
|
channel: this.channel,
|
|
187
|
-
page:
|
|
188
|
-
fullUrl:
|
|
278
|
+
page: this.activePagePath,
|
|
279
|
+
fullUrl: this.activePageUrl,
|
|
189
280
|
timestamp: Date.now(),
|
|
190
281
|
screen: {
|
|
191
282
|
width: window.innerWidth,
|
|
@@ -207,7 +298,6 @@ export class HeatmapTracker {
|
|
|
207
298
|
this.movement.clear();
|
|
208
299
|
this.scrollBands.clear();
|
|
209
300
|
this.eventCount = 0;
|
|
210
|
-
this.resetTimer();
|
|
211
301
|
}
|
|
212
302
|
mapToPoints(map) {
|
|
213
303
|
const points = [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"heatmap-tracker.js","sourceRoot":"","sources":["../../../../../nommos/core/src/lib/heatmap-tracker.ts"],"names":[],"mappings":"AACA,OAAO,EAAiB,yBAAyB,EAAE,MAAM,aAAa,CAAC;AAGvE,MAAM,OAAO,cAAc;IAezB,YACmB,EAAmB,EACnB,GAAe,EACf,SAAiB,EACjB,OAAe;QAHf,OAAE,GAAF,EAAE,CAAiB;QACnB,QAAG,GAAH,GAAG,CAAY;QACf,cAAS,GAAT,SAAS,CAAQ;QACjB,YAAO,GAAP,OAAO,CAAQ;QAlB1B,WAAM,GAAwB,IAAI,GAAG,EAAE,CAAC;QACxC,aAAQ,GAAwB,IAAI,GAAG,EAAE,CAAC;QAC1C,gBAAW,GAAwB,IAAI,GAAG,EAAE,CAAC;QAC7C,eAAU,GAAG,CAAC,CAAC;QACf,iBAAY,GAAG,CAAC,CAAC;QACjB,UAAK,GAAG,CAAC,CAAC,CAAC;QACX,UAAK,GAAG,CAAC,CAAC,CAAC;QACX,qBAAgB,GAAG,CAAC,CAAC;QACrB,UAAK,GAAQ,IAAI,CAAC;QAClB,cAAS,GAAG,CAAC,CAAC;QACd,iBAAY,GAAgB,IAAI,GAAG,EAAE,CAAC;QACtC,kBAAa,GAAG,EAAE,CAAC;IAQvB,CAAC;IAEL;;OAEG;IACH,KAAK;QACH,IAAI,OAAO,MAAM,KAAK,WAAW;YAAE,OAAO;QAE1C,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;YAC5B,OAAO,CAAC,GAAG,CAAC,qDAAqD,CAAC,CAAC;QACrE,CAAC;QAED,QAAQ,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YAC9D,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,IAAI;SACd,CAAC,CAAC;QACH,QAAQ,CAAC,gBAAgB,CAAC,WAAW,EAAE,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YACtE,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,IAAI;SACd,CAAC,CAAC;QACH,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YAC9D,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,IAAI;SACd,CAAC,CAAC;QACH,MAAM,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACpF,MAAM,CAAC,gBAAgB,CAAC,UAAU,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;QACnE,MAAM,CAAC,gBAAgB,CAAC,YAAY,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;QACrE,MAAM,CAAC,gBAAgB,CAAC,cAAc,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;QAE5D,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACxB,IAAI,CAAC,UAAU,EAAE,CAAC;IACpB,CAAC;IAEO,gBAAgB;QACtB,IAAI,OAAO,MAAM,KAAK,WAAW;YAAE,OAAO;QAE1C,gDAAgD;QAChD,IAAI,IAAI,CAAC,UAAU,GAAG,CAAC,EAAE,CAAC;YACxB,IAAI,CAAC,KAAK,EAAE,CAAC;QACf,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;QAC3D,IAAI,CAAC,aAAa,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,IAAI,QAAQ,EAAE,CAAC;IACjE,CAAC;IAGO,KAAK,CAAC,qBAAqB;QACjC,IAAI,OAAO,MAAM,KAAK,WAAW;YAAE,OAAO;QAE1C,4CAA4C;QAC5C,IAAI,cAAc,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC;YAAE,OAAO;QAEnE,IAAI,CAAC;YACH,sCAAsC;YACtC,MAAM,WAAW,GAAG,CAAC,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC;YAC1D,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,QAAQ,CAAC,IAAI,EAAE;gBAC9C,KAAK,EAAE,MAAM,CAAC,UAAU;gBACxB,MAAM,EAAE,MAAM,CAAC,WAAW;gBAC1B,WAAW,EAAE,MAAM,CAAC,UAAU;gBAC9B,YAAY,EAAE,MAAM,CAAC,WAAW;gBAChC,OAAO,EAAE,IAAI;gBACb,UAAU,EAAE,KAAK;gBACjB,KAAK,EAAE,CAAC;gBACR,OAAO,EAAE,CAAC;gBACV,OAAO,EAAE,CAAC;aACX,CAAC,CAAC;YAEH,MAAM,WAAW,GAAG,MAAM,CAAC,SAAS,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC;YACxD,cAAc,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;YAEpE,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;gBAC5B,OAAO,CAAC,GAAG,CAAC,2CAA2C,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;YAC/E,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;gBAC5B,OAAO,CAAC,KAAK,CAAC,6CAA6C,EAAE,GAAG,CAAC,CAAC;YACpE,CAAC;QACH,CAAC;IACH,CAAC;IAED;;OAEG;IACH,IAAI;QACF,IAAI,OAAO,MAAM,KAAK,WAAW;YAAE,OAAO;QAE1C,QAAQ,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QACtF,QAAQ,CAAC,mBAAmB,CAAC,WAAW,EAAE,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QAC9F,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACnE,MAAM,CAAC,mBAAmB,CAAC,kBAAkB,EAAE,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAEvF,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC3B,CAAC;QACD,IAAI,CAAC,KAAK,EAAE,CAAC;IACf,CAAC;IAEO,WAAW,CAAC,CAAa;QAC/B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;QAChD,IAAI,CAAC,iBAAiB,EAAE,CAAC;IAC3B,CAAC;IAEO,eAAe,CAAC,CAAa;QACnC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,uBAAuB;QACvB,IAAI,GAAG,GAAG,IAAI,CAAC,YAAY,GAAG,GAAG;YAAE,OAAO;QAC1C,IAAI,CAAC,YAAY,GAAG,GAAG,CAAC;QAExB,sBAAsB;QACtB,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACxB,IAAI,IAAI,CAAC,gBAAgB,GAAG,CAAC,KAAK,CAAC;YAAE,OAAO;QAE5C,4BAA4B;QAC5B,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1C,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1C,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC;YAAE,OAAO;QAE7B,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;QACrB,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;QAErB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;QAClD,IAAI,CAAC,iBAAiB,EAAE,CAAC;IAC3B,CAAC;IAEO,YAAY;QAClB,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,WAAW,CAAC;QACrD,MAAM,WAAW,GAAG,QAAQ,CAAC,eAAe,CAAC,YAAY,GAAG,MAAM,CAAC,WAAW,CAAC;QAC/E,IAAI,WAAW,IAAI,CAAC;YAAE,OAAO;QAE7B,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,OAAO,GAAG,WAAW,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;QAC1E,6BAA6B;QAC7B,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC;QAE3C,IAAI,IAAI,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;YAC1B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;YACtB,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBACjC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBAC5B,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACrD,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,EAAE,YAAY,GAAG,CAAC,CAAC,CAAC;gBAC7C,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC3B,CAAC;QACH,CAAC;IACH,CAAC;IAEO,sBAAsB;QAC5B,IAAI,QAAQ,CAAC,eAAe,KAAK,QAAQ,EAAE,CAAC;YAC1C,IAAI,CAAC,KAAK,EAAE,CAAC;QACf,CAAC;IACH,CAAC;IAEO,WAAW,CAAC,GAAwB,EAAE,IAAY,EAAE,IAAY;QACtE,oBAAoB;QACpB,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC;QACrC,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC;QACrC,MAAM,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;QACxB,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACxC,CAAC;IAEO,iBAAiB;QACvB,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,gBAAgB,IAAI,EAAE,CAAC;QAClD,IAAI,IAAI,CAAC,UAAU,IAAI,SAAS,EAAE,CAAC;YACjC,IAAI,CAAC,KAAK,EAAE,CAAC;QACf,CAAC;IACH,CAAC;IAEO,UAAU;QAChB,IAAI,IAAI,CAAC,KAAK;YAAE,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACzC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,yBAAyB,IAAI,IAAI,CAAC,GAAG,CAAC,eAAe,IAAI,yBAAyB,CAAC;QACvH,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,QAAQ,CAAC,CAAC;IACxD,CAAC;IAEO,KAAK,CAAC,KAAK;QACjB,IAAI,IAAI,CAAC,UAAU,KAAK,CAAC,EAAE,CAAC;YAC1B,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;gBAC5B,OAAO,CAAC,GAAG,CAAC,0EAA0E,CAAC,CAAC;YAC1F,CAAC;YACD,IAAI,CAAC,UAAU,EAAE,CAAC;YAClB,OAAO;QACT,CAAC;QAED,2FAA2F;QAC3F,MAAM,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAEnC,MAAM,OAAO,GAAmB;YAC9B,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,QAAQ,IAAI,EAAE;YAChC,GAAG,EAAE,IAAI,CAAC,SAAS;YACnB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,QAAQ;YAC9B,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC,IAAI;YAC7B,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;YACrB,MAAM,EAAE;gBACN,KAAK,EAAE,MAAM,CAAC,UAAU;gBACxB,MAAM,EAAE,MAAM,CAAC,WAAW;aAC3B;YACD,QAAQ,EAAE;gBACR,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC;gBACrC,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC;gBACzC,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC;aAC3C;YACD,UAAU,EAAE,cAAc,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC;SACnE,CAAC;QAEF,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;YAC5B,OAAO,CAAC,GAAG,CAAC,yCAAyC,EAAE,OAAO,CAAC,CAAC;QAClE,CAAC;QAED,IAAI,CAAC,EAAE,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC;QAEvC,gBAAgB;QAChB,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QACpB,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;QACtB,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;QACzB,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;QACpB,IAAI,CAAC,UAAU,EAAE,CAAC;IACpB,CAAC;IAEO,WAAW,CAAC,GAAwB;QAC1C,MAAM,MAAM,GAAmB,EAAE,CAAC;QAClC,GAAG,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;YACzB,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YAC1C,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC;QACH,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,WAAW,CAAC,GAAwB;QAC1C,MAAM,KAAK,GAAiB,EAAE,CAAC;QAC/B,GAAG,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;YAC3B,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC;QACH,OAAO,KAAK,CAAC;IACf,CAAC;;AA/Oc,8BAAe,GAAwB,IAAI,GAAG,EAAE,AAAjC,CAAkC"}
|
|
1
|
+
{"version":3,"file":"heatmap-tracker.js","sourceRoot":"","sources":["../../../../../nommos/core/src/lib/heatmap-tracker.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,7 +8,7 @@ import { WebSocketClient } from './webSocket-client';
|
|
|
8
8
|
*
|
|
9
9
|
* Features:
|
|
10
10
|
* - Automatic DOM snapshot and incremental change recording
|
|
11
|
-
* - Event buffering
|
|
11
|
+
* - Event buffering
|
|
12
12
|
* - Privacy protection (masks all inputs by default)
|
|
13
13
|
* - Environment-safe (no-op on server-side)
|
|
14
14
|
*/
|
|
@@ -20,8 +20,12 @@ export declare class SessionTracker {
|
|
|
20
20
|
private events;
|
|
21
21
|
private stopFn;
|
|
22
22
|
private inactivityTimer;
|
|
23
|
+
private visibilityTimer;
|
|
23
24
|
private isRecording;
|
|
24
25
|
private currentChunkBytes;
|
|
26
|
+
private boundActivityHandler;
|
|
27
|
+
private boundVisibilityHandler;
|
|
28
|
+
private boundBeforeUnload;
|
|
25
29
|
constructor(ws: WebSocketClient, cfg: FullConfig, bid: string, channel: number);
|
|
26
30
|
/**
|
|
27
31
|
* Initializes rrweb recording and setup listeners for visibility and inactivity.
|
|
@@ -36,7 +40,7 @@ export declare class SessionTracker {
|
|
|
36
40
|
*/
|
|
37
41
|
private stopRecording;
|
|
38
42
|
/**
|
|
39
|
-
*
|
|
43
|
+
* Public API to signal user activity. Resets the inactivity timer.
|
|
40
44
|
*/
|
|
41
45
|
onUserActivity(): void;
|
|
42
46
|
/**
|
|
@@ -7,7 +7,7 @@ import { SESSION_CHUNK_DURATION_MS, SESSION_INACTIVITY_TIMEOUT_MS, MAX_SESSION_C
|
|
|
7
7
|
*
|
|
8
8
|
* Features:
|
|
9
9
|
* - Automatic DOM snapshot and incremental change recording
|
|
10
|
-
* - Event buffering
|
|
10
|
+
* - Event buffering
|
|
11
11
|
* - Privacy protection (masks all inputs by default)
|
|
12
12
|
* - Environment-safe (no-op on server-side)
|
|
13
13
|
*/
|
|
@@ -20,8 +20,29 @@ export class SessionTracker {
|
|
|
20
20
|
this.events = [];
|
|
21
21
|
this.stopFn = null;
|
|
22
22
|
this.inactivityTimer = null;
|
|
23
|
+
this.visibilityTimer = null;
|
|
23
24
|
this.isRecording = false;
|
|
24
25
|
this.currentChunkBytes = 0;
|
|
26
|
+
// FIX 3: Store bound listener references so they can be properly removed on stop()
|
|
27
|
+
this.boundActivityHandler = () => this.resetInactivityTimer();
|
|
28
|
+
this.boundVisibilityHandler = () => {
|
|
29
|
+
if (document.visibilityState === 'hidden') {
|
|
30
|
+
// Wait before stopping — user might switch back quickly
|
|
31
|
+
this.visibilityTimer = setTimeout(() => {
|
|
32
|
+
this.stopRecording();
|
|
33
|
+
}, 10000); // 10 second grace period
|
|
34
|
+
}
|
|
35
|
+
else {
|
|
36
|
+
// They came back — cancel the pending stop
|
|
37
|
+
if (this.visibilityTimer) {
|
|
38
|
+
clearTimeout(this.visibilityTimer);
|
|
39
|
+
this.visibilityTimer = null;
|
|
40
|
+
}
|
|
41
|
+
this.resetInactivityTimer();
|
|
42
|
+
this.startRecording();
|
|
43
|
+
}
|
|
44
|
+
};
|
|
45
|
+
this.boundBeforeUnload = () => this.stopRecording();
|
|
25
46
|
}
|
|
26
47
|
/**
|
|
27
48
|
* Initializes rrweb recording and setup listeners for visibility and inactivity.
|
|
@@ -57,26 +78,28 @@ export class SessionTracker {
|
|
|
57
78
|
}
|
|
58
79
|
this.flush();
|
|
59
80
|
this.currentChunkBytes = eventBytes;
|
|
81
|
+
this.events.push(event);
|
|
82
|
+
return;
|
|
60
83
|
}
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
this.
|
|
65
|
-
|
|
66
|
-
// we stop and start a new recording. stopRecording() flushes the data,
|
|
67
|
-
// and startRecording() takes a fresh live snapshot for the next chunk.
|
|
68
|
-
if (this.currentChunkBytes > MAX_SESSION_CHUNK_BYTES) {
|
|
84
|
+
// FIX 1: Check size BEFORE pushing the event to avoid exceeding the limit.
|
|
85
|
+
// If adding this event would exceed the limit, recycle the recorder instead.
|
|
86
|
+
// The next recording will open with a fresh Full Snapshot representing the current DOM,
|
|
87
|
+
// so dropping this event here is safe — no data is lost.
|
|
88
|
+
if (this.currentChunkBytes + eventBytes > MAX_SESSION_CHUNK_BYTES) {
|
|
69
89
|
if (this.cfg.mode === 'dev') {
|
|
70
90
|
console.log(`[Nommos Tracker] Chunk size limit reached (${(this.currentChunkBytes / 1024 / 1024).toFixed(2)}MB) - recycling recorder...`);
|
|
71
91
|
}
|
|
72
|
-
//
|
|
92
|
+
// Use setTimeout to avoid recursion issues within the rrweb emit callback
|
|
73
93
|
setTimeout(() => {
|
|
74
94
|
if (this.isRecording) {
|
|
75
95
|
this.stopRecording();
|
|
76
96
|
this.startRecording();
|
|
77
97
|
}
|
|
78
98
|
}, 0);
|
|
99
|
+
return;
|
|
79
100
|
}
|
|
101
|
+
this.currentChunkBytes += eventBytes;
|
|
102
|
+
this.events.push(event);
|
|
80
103
|
},
|
|
81
104
|
checkoutEveryNms: this.cfg.controls?.session_chunk_duration_ms || SESSION_CHUNK_DURATION_MS,
|
|
82
105
|
maskAllInputs: true,
|
|
@@ -109,7 +132,7 @@ export class SessionTracker {
|
|
|
109
132
|
}
|
|
110
133
|
}
|
|
111
134
|
/**
|
|
112
|
-
*
|
|
135
|
+
* Public API to signal user activity. Resets the inactivity timer.
|
|
113
136
|
*/
|
|
114
137
|
onUserActivity() {
|
|
115
138
|
this.resetInactivityTimer();
|
|
@@ -121,6 +144,10 @@ export class SessionTracker {
|
|
|
121
144
|
if (this.inactivityTimer) {
|
|
122
145
|
clearTimeout(this.inactivityTimer);
|
|
123
146
|
}
|
|
147
|
+
// If we return from inactivity while visible, restart recording
|
|
148
|
+
if (!this.isRecording && typeof document !== 'undefined' && document.visibilityState === 'visible') {
|
|
149
|
+
this.startRecording();
|
|
150
|
+
}
|
|
124
151
|
// 2 minutes of inactivity ends the current session recording
|
|
125
152
|
this.inactivityTimer = setTimeout(() => {
|
|
126
153
|
if (this.cfg.mode === 'dev') {
|
|
@@ -128,33 +155,23 @@ export class SessionTracker {
|
|
|
128
155
|
}
|
|
129
156
|
this.stopRecording();
|
|
130
157
|
}, this.cfg.controls?.session_inactivity_timeout_ms || SESSION_INACTIVITY_TIMEOUT_MS);
|
|
131
|
-
// If we return from inactivity while visible, restart recording
|
|
132
|
-
if (!this.isRecording && typeof document !== 'undefined' && document.visibilityState === 'visible') {
|
|
133
|
-
this.startRecording();
|
|
134
|
-
}
|
|
135
158
|
}
|
|
136
159
|
/**
|
|
137
160
|
* Listens for visibility changes to handle background/foreground recording.
|
|
138
161
|
*/
|
|
139
162
|
setupVisibilityListener() {
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
}
|
|
144
|
-
else {
|
|
145
|
-
this.resetInactivityTimer();
|
|
146
|
-
this.startRecording();
|
|
147
|
-
}
|
|
148
|
-
});
|
|
149
|
-
window.addEventListener('beforeunload', () => this.stopRecording());
|
|
163
|
+
// FIX 3: Use stored bound references so listeners can be removed in stop()
|
|
164
|
+
document.addEventListener('visibilitychange', this.boundVisibilityHandler);
|
|
165
|
+
window.addEventListener('beforeunload', this.boundBeforeUnload);
|
|
150
166
|
}
|
|
151
167
|
/**
|
|
152
168
|
* Listens for user activity to reset the inactivity timer.
|
|
153
169
|
*/
|
|
154
170
|
setupActivityListeners() {
|
|
155
171
|
const activityEvents = ['mousemove', 'click', 'keydown', 'scroll'];
|
|
172
|
+
// FIX 3: Use stored bound reference so listeners can be removed in stop()
|
|
156
173
|
activityEvents.forEach((ev) => {
|
|
157
|
-
window.addEventListener(ev,
|
|
174
|
+
window.addEventListener(ev, this.boundActivityHandler, { passive: true });
|
|
158
175
|
});
|
|
159
176
|
}
|
|
160
177
|
/**
|
|
@@ -165,6 +182,13 @@ export class SessionTracker {
|
|
|
165
182
|
clearTimeout(this.inactivityTimer);
|
|
166
183
|
this.inactivityTimer = null;
|
|
167
184
|
}
|
|
185
|
+
// FIX 3: Remove all registered listeners to prevent accumulation on re-instantiation
|
|
186
|
+
document.removeEventListener('visibilitychange', this.boundVisibilityHandler);
|
|
187
|
+
window.removeEventListener('beforeunload', this.boundBeforeUnload);
|
|
188
|
+
const activityEvents = ['mousemove', 'click', 'keydown', 'scroll'];
|
|
189
|
+
activityEvents.forEach((ev) => {
|
|
190
|
+
window.removeEventListener(ev, this.boundActivityHandler);
|
|
191
|
+
});
|
|
168
192
|
this.stopRecording();
|
|
169
193
|
}
|
|
170
194
|
/**
|
|
@@ -173,6 +197,24 @@ export class SessionTracker {
|
|
|
173
197
|
flush() {
|
|
174
198
|
if (this.events.length === 0)
|
|
175
199
|
return;
|
|
200
|
+
// FIX 2: Validate that the chunk starts with a proper snapshot before flushing.
|
|
201
|
+
// A valid replayable chunk must begin with either:
|
|
202
|
+
// [Meta(4), FullSnapshot(2), ...] or [FullSnapshot(2), ...]
|
|
203
|
+
// If neither pattern is present, the chunk is corrupt and cannot be replayed.
|
|
204
|
+
const firstEvent = this.events[0];
|
|
205
|
+
const startsWithMeta = firstEvent?.type === 4;
|
|
206
|
+
const secondEvent = this.events[1];
|
|
207
|
+
const hasFullSnapshot = startsWithMeta
|
|
208
|
+
? secondEvent?.type === 2
|
|
209
|
+
: firstEvent?.type === 2;
|
|
210
|
+
if (!hasFullSnapshot) {
|
|
211
|
+
if (this.cfg.mode === 'dev') {
|
|
212
|
+
console.warn('[Nommos Tracker] Flush aborted: chunk does not start with a FullSnapshot. First event type:', firstEvent?.type);
|
|
213
|
+
}
|
|
214
|
+
this.events = [];
|
|
215
|
+
this.currentChunkBytes = 0;
|
|
216
|
+
return;
|
|
217
|
+
}
|
|
176
218
|
/**
|
|
177
219
|
* Idle Prevention:
|
|
178
220
|
* rrweb event types: 0=DomContentLoaded, 1=Load, 2=FullSnapshot, 3=IncrementalSnapshot, 4=Meta, 5=Custom
|
|
@@ -183,9 +225,10 @@ export class SessionTracker {
|
|
|
183
225
|
if (this.cfg.mode === 'dev') {
|
|
184
226
|
console.log('[Nommos Tracker] Session flush skipped: No user activity in this chunk.');
|
|
185
227
|
}
|
|
186
|
-
// Clear the buffer even if we skip flushing.
|
|
228
|
+
// Clear the buffer even if we skip flushing.
|
|
187
229
|
// The next chunk will start with its own fresh snapshot from the checkout event.
|
|
188
230
|
this.events = [];
|
|
231
|
+
this.currentChunkBytes = 0;
|
|
189
232
|
return;
|
|
190
233
|
}
|
|
191
234
|
const payload = {
|
|
@@ -205,8 +248,9 @@ export class SessionTracker {
|
|
|
205
248
|
console.log('[Nommos Tracker] Flushing Session Recording Chunk:', payload.events.length, 'events');
|
|
206
249
|
}
|
|
207
250
|
this.ws.publishSessionRecordingMessage(payload);
|
|
208
|
-
// Clear buffer
|
|
251
|
+
// Clear buffer and reset byte counter
|
|
209
252
|
this.events = [];
|
|
253
|
+
this.currentChunkBytes = 0;
|
|
210
254
|
}
|
|
211
255
|
}
|
|
212
256
|
//# sourceMappingURL=session-tracker.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-tracker.js","sourceRoot":"","sources":["../../../../../nommos/core/src/lib/session-tracker.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,yBAAyB,EAAE,6BAA6B,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAEhH;;;;;;;;;;;GAWG;AACH,MAAM,OAAO,cAAc;
|
|
1
|
+
{"version":3,"file":"session-tracker.js","sourceRoot":"","sources":["../../../../../nommos/core/src/lib/session-tracker.ts"],"names":[],"mappings":"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"}
|
|
@@ -53,7 +53,11 @@ export class WebSocketClient {
|
|
|
53
53
|
reconnectDelay: cfg.reconnectDelay ?? 5000,
|
|
54
54
|
});
|
|
55
55
|
if (cfg.mode === 'dev') {
|
|
56
|
-
client.debug = (msg) =>
|
|
56
|
+
client.debug = (msg) => {
|
|
57
|
+
if (msg.includes('PING') || msg.includes('PONG') || msg.includes('Received data'))
|
|
58
|
+
return;
|
|
59
|
+
console.log('[Nommos Tracker]', msg);
|
|
60
|
+
};
|
|
57
61
|
}
|
|
58
62
|
else {
|
|
59
63
|
client.debug = () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webSocket-client.js","sourceRoot":"","sources":["../../../../../nommos/core/src/lib/webSocket-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAExC,OAAO,EAAE,eAAe,EAAE,MAAM,MAAM,CAAC;AACvC,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAEtF;;;;;;;;;;;;GAYG;AACH,MAAM,OAAO,eAAe;IAA5B;QACE;;;WAGG;QACK,oBAAe,GAAkB,IAAI,CAAC;QACtC,QAAG,GAAsB,IAAI,CAAC;QAEtC;;;WAGG;QACH,kBAAa,GAAqB,EAAE,CAAC;QAGpB,4BAAuB,GAAG,IAAI,eAAe,CAAC,KAAK,CAAC,CAAC;QAEtE;;;;;;WAMG;QACH,6BAAwB,GAAG,IAAI,CAAC,uBAAuB,CAAC,YAAY,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"webSocket-client.js","sourceRoot":"","sources":["../../../../../nommos/core/src/lib/webSocket-client.ts"],"names":[],"mappings":"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"}
|