@nommos/core 0.0.26 → 0.0.27
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 +1 -0
- package/src/lib/constants.js +1 -0
- package/src/lib/constants.js.map +1 -1
- package/src/lib/heatmap-tracker.js +3 -8
- package/src/lib/heatmap-tracker.js.map +1 -1
- package/src/lib/session-tracker.d.ts +1 -0
- package/src/lib/session-tracker.js +25 -3
- package/src/lib/session-tracker.js.map +1 -1
package/package.json
CHANGED
package/src/lib/constants.d.ts
CHANGED
|
@@ -16,6 +16,7 @@ export declare const ACTIVE_PLATFORM_KEY = "nommos:platform";
|
|
|
16
16
|
export declare const FB_PIXEL_SCRIPT_URL = "https://connect.facebook.net/en_US/fbevents.js";
|
|
17
17
|
export declare const SESSION_CHUNK_DURATION_MS = 60000;
|
|
18
18
|
export declare const SESSION_INACTIVITY_TIMEOUT_MS = 60000;
|
|
19
|
+
export declare const MAX_SESSION_CHUNK_BYTES: number;
|
|
19
20
|
export declare const HEATMAP_FLUSH_INTERVAL_MS = 60000;
|
|
20
21
|
export declare const BROWSER_DEFS: UaDef[];
|
|
21
22
|
export declare const OS_DEFS: UaDef[];
|
package/src/lib/constants.js
CHANGED
|
@@ -17,6 +17,7 @@ export const FB_PIXEL_SCRIPT_URL = 'https://connect.facebook.net/en_US/fbevents.
|
|
|
17
17
|
// Session Recording Settings
|
|
18
18
|
export const SESSION_CHUNK_DURATION_MS = 60000; // 1 minute
|
|
19
19
|
export const SESSION_INACTIVITY_TIMEOUT_MS = 60000; // 1 minute
|
|
20
|
+
export const MAX_SESSION_CHUNK_BYTES = 10 * 1024 * 1024; // 10MB soft limit
|
|
20
21
|
// Heatmap Settings
|
|
21
22
|
export const HEATMAP_FLUSH_INTERVAL_MS = 60000; // 1 minute
|
|
22
23
|
export const BROWSER_DEFS = [
|
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;
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../../nommos/core/src/lib/constants.ts"],"names":[],"mappings":"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"}
|
|
@@ -55,7 +55,6 @@ export class HeatmapTracker {
|
|
|
55
55
|
}
|
|
56
56
|
const category = this.channel === 3 ? 'mobile' : 'desktop';
|
|
57
57
|
this.activePageKey = `${window.location.pathname}_${category}`;
|
|
58
|
-
this.capturePageScreenshot();
|
|
59
58
|
}
|
|
60
59
|
async capturePageScreenshot() {
|
|
61
60
|
if (typeof window === 'undefined')
|
|
@@ -63,12 +62,6 @@ export class HeatmapTracker {
|
|
|
63
62
|
// Reuse if already captured in this session
|
|
64
63
|
if (HeatmapTracker.screenshotStore.has(this.activePageKey))
|
|
65
64
|
return;
|
|
66
|
-
// Wait for the page to be fully loaded as requested
|
|
67
|
-
if (document.readyState !== 'complete') {
|
|
68
|
-
await new Promise((resolve) => window.addEventListener('load', resolve, { once: true }));
|
|
69
|
-
}
|
|
70
|
-
// Add 500ms delay to ensure dynamic components are rendered
|
|
71
|
-
await new Promise((resolve) => setTimeout(resolve, 500));
|
|
72
65
|
try {
|
|
73
66
|
// Dynamic import to keep bundle small
|
|
74
67
|
const html2canvas = (await import('html2canvas')).default;
|
|
@@ -177,7 +170,7 @@ export class HeatmapTracker {
|
|
|
177
170
|
const interval = this.cfg.controls?.heatmap_flush_interval_ms || this.cfg.heatmapInterval || HEATMAP_FLUSH_INTERVAL_MS;
|
|
178
171
|
this.timer = setTimeout(() => this.flush(), interval);
|
|
179
172
|
}
|
|
180
|
-
flush() {
|
|
173
|
+
async flush() {
|
|
181
174
|
if (this.eventCount === 0) {
|
|
182
175
|
if (this.cfg.mode === 'dev') {
|
|
183
176
|
console.log('[Nommos Tracker] Heatmap interval reached - buffer empty, skipping flush');
|
|
@@ -185,6 +178,8 @@ export class HeatmapTracker {
|
|
|
185
178
|
this.resetTimer();
|
|
186
179
|
return;
|
|
187
180
|
}
|
|
181
|
+
// Capture screenshot just before publishing so the page is guaranteed to be fully rendered
|
|
182
|
+
await this.capturePageScreenshot();
|
|
188
183
|
const payload = {
|
|
189
184
|
brandId: this.cfg.brand_id || '',
|
|
190
185
|
bid: this.browserId,
|
|
@@ -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;
|
|
1
|
+
{"version":3,"file":"heatmap-tracker.js","sourceRoot":"","sources":["../../../../../nommos/core/src/lib/heatmap-tracker.ts"],"names":[],"mappings":"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"}
|
|
@@ -21,6 +21,7 @@ export declare class SessionTracker {
|
|
|
21
21
|
private stopFn;
|
|
22
22
|
private inactivityTimer;
|
|
23
23
|
private isRecording;
|
|
24
|
+
private currentChunkBytes;
|
|
24
25
|
constructor(ws: WebSocketClient, cfg: FullConfig, bid: string, channel: number);
|
|
25
26
|
/**
|
|
26
27
|
* Initializes rrweb recording and setup listeners for visibility and inactivity.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { SESSION_CHUNK_DURATION_MS, SESSION_INACTIVITY_TIMEOUT_MS } from './constants';
|
|
1
|
+
import { SESSION_CHUNK_DURATION_MS, SESSION_INACTIVITY_TIMEOUT_MS, MAX_SESSION_CHUNK_BYTES } from './constants';
|
|
2
2
|
/**
|
|
3
3
|
* SessionTracker
|
|
4
4
|
* --------------
|
|
@@ -21,6 +21,7 @@ export class SessionTracker {
|
|
|
21
21
|
this.stopFn = null;
|
|
22
22
|
this.inactivityTimer = null;
|
|
23
23
|
this.isRecording = false;
|
|
24
|
+
this.currentChunkBytes = 0;
|
|
24
25
|
}
|
|
25
26
|
/**
|
|
26
27
|
* Initializes rrweb recording and setup listeners for visibility and inactivity.
|
|
@@ -46,15 +47,36 @@ export class SessionTracker {
|
|
|
46
47
|
if (this.cfg.mode === 'dev') {
|
|
47
48
|
console.log(`[Nommos Tracker] Session Event: type=${event.type}, isCheckout=${!!isCheckout}`);
|
|
48
49
|
}
|
|
50
|
+
const eventJson = JSON.stringify(event);
|
|
51
|
+
const eventBytes = new TextEncoder().encode(eventJson).length;
|
|
49
52
|
// If it's a checkout (new chunk), flush the existing buffer BEFORE pushing the new snapshot.
|
|
50
53
|
// This ensures the new Full Snapshot (type 2) becomes the FIRST event of the new chunk.
|
|
51
54
|
if (isCheckout) {
|
|
52
55
|
if (this.cfg.mode === 'dev') {
|
|
53
56
|
console.log('[Nommos Tracker] rrweb Checkout Event reached - flushing previous chunk...');
|
|
54
57
|
}
|
|
55
|
-
this.flush(
|
|
58
|
+
this.flush();
|
|
59
|
+
this.currentChunkBytes = eventBytes;
|
|
60
|
+
}
|
|
61
|
+
else {
|
|
62
|
+
this.currentChunkBytes += eventBytes;
|
|
56
63
|
}
|
|
57
64
|
this.events.push(event);
|
|
65
|
+
// Proactive Recycle: If the current chunk is getting close to the RabbitMQ limit (10MB soft limit),
|
|
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) {
|
|
69
|
+
if (this.cfg.mode === 'dev') {
|
|
70
|
+
console.log(`[Nommos Tracker] Chunk size limit reached (${(this.currentChunkBytes / 1024 / 1024).toFixed(2)}MB) - recycling recorder...`);
|
|
71
|
+
}
|
|
72
|
+
// We use setTimeout to avoid recursion issues within the rrweb emit callback
|
|
73
|
+
setTimeout(() => {
|
|
74
|
+
if (this.isRecording) {
|
|
75
|
+
this.stopRecording();
|
|
76
|
+
this.startRecording();
|
|
77
|
+
}
|
|
78
|
+
}, 0);
|
|
79
|
+
}
|
|
58
80
|
},
|
|
59
81
|
checkoutEveryNms: this.cfg.controls?.session_chunk_duration_ms || SESSION_CHUNK_DURATION_MS,
|
|
60
82
|
maskAllInputs: true,
|
|
@@ -148,7 +170,7 @@ export class SessionTracker {
|
|
|
148
170
|
/**
|
|
149
171
|
* Packages buffered events into a payload and publishes to the broker.
|
|
150
172
|
*/
|
|
151
|
-
flush(
|
|
173
|
+
flush() {
|
|
152
174
|
if (this.events.length === 0)
|
|
153
175
|
return;
|
|
154
176
|
/**
|
|
@@ -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,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"session-tracker.js","sourceRoot":"","sources":["../../../../../nommos/core/src/lib/session-tracker.ts"],"names":[],"mappings":"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"}
|