@nommos/core 0.0.39 → 0.0.42
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/README.md +7 -1
- package/package.json +1 -1
- package/src/index.d.ts +1 -1
- package/src/lib/consent-manager.d.ts +136 -0
- package/src/lib/consent-manager.js +828 -0
- package/src/lib/consent-manager.js.map +1 -0
- package/src/lib/constants.d.ts +61 -2
- package/src/lib/constants.js +76 -3
- package/src/lib/constants.js.map +1 -1
- package/src/lib/data-attribution.d.ts +1 -0
- package/src/lib/data-attribution.js +101 -32
- package/src/lib/data-attribution.js.map +1 -1
- package/src/lib/dom-safe.d.ts +37 -0
- package/src/lib/dom-safe.js +0 -0
- package/src/lib/dom-safe.js.map +1 -0
- package/src/lib/event-tracker.d.ts +40 -1
- package/src/lib/event-tracker.js +180 -18
- package/src/lib/event-tracker.js.map +1 -1
- package/src/lib/i18n.d.ts +10 -0
- package/src/lib/i18n.js +12 -0
- package/src/lib/i18n.js.map +1 -0
- package/src/lib/popup-inbox.d.ts +143 -0
- package/src/lib/popup-inbox.js +397 -0
- package/src/lib/popup-inbox.js.map +1 -0
- package/src/lib/popup-viewer.d.ts +180 -0
- package/src/lib/popup-viewer.js +920 -0
- package/src/lib/popup-viewer.js.map +1 -0
- package/src/lib/session-tracker.d.ts +2 -1
- package/src/lib/session-tracker.js +19 -4
- package/src/lib/session-tracker.js.map +1 -1
- package/src/lib/types.d.ts +119 -0
- package/src/lib/webSocket-client.d.ts +30 -2
- package/src/lib/webSocket-client.js +126 -7
- package/src/lib/webSocket-client.js.map +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"popup-viewer.js","sourceRoot":"","sources":["../../../../../nommos/core/src/lib/popup-viewer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { SESSION_CHUNK_DURATION_MS, SESSION_INACTIVITY_TIMEOUT_MS, MAX_SESSION_CHUNK_BYTES } from './constants';
|
|
2
|
-
import
|
|
2
|
+
import { gzip } from 'pako';
|
|
3
3
|
/**
|
|
4
4
|
* SessionTracker
|
|
5
5
|
* --------------
|
|
@@ -142,7 +142,7 @@ export class SessionTracker {
|
|
|
142
142
|
/**
|
|
143
143
|
* Public API to completely stop the tracker (unmount/cleanup).
|
|
144
144
|
*/
|
|
145
|
-
stop() {
|
|
145
|
+
stop(discardPending = false) {
|
|
146
146
|
if (typeof window === 'undefined')
|
|
147
147
|
return;
|
|
148
148
|
window.removeEventListener('beforeunload', this.boundBeforeUnload);
|
|
@@ -152,9 +152,24 @@ export class SessionTracker {
|
|
|
152
152
|
if (this.inactivityTimer) {
|
|
153
153
|
clearTimeout(this.inactivityTimer);
|
|
154
154
|
}
|
|
155
|
-
|
|
155
|
+
if (discardPending) {
|
|
156
|
+
if (this.stopFn) {
|
|
157
|
+
this.stopFn();
|
|
158
|
+
this.stopFn = null;
|
|
159
|
+
}
|
|
160
|
+
this.isRecording = false;
|
|
161
|
+
this.events = [];
|
|
162
|
+
this.currentChunkSizeBytes = 0;
|
|
163
|
+
}
|
|
164
|
+
else {
|
|
165
|
+
this.stopRecording();
|
|
166
|
+
}
|
|
156
167
|
this.seq = 0; // Truly end the session sequence
|
|
157
168
|
}
|
|
169
|
+
purge() {
|
|
170
|
+
this.events = [];
|
|
171
|
+
this.currentChunkSizeBytes = 0;
|
|
172
|
+
}
|
|
158
173
|
flush() {
|
|
159
174
|
if (this.events.length === 0)
|
|
160
175
|
return;
|
|
@@ -172,7 +187,7 @@ export class SessionTracker {
|
|
|
172
187
|
console.log('[Nommos Tracker] Flushing Session Recording Chunk:', payload.events.length, 'events (seq:', payload.seq, ')');
|
|
173
188
|
}
|
|
174
189
|
try {
|
|
175
|
-
const compressed =
|
|
190
|
+
const compressed = gzip(JSON.stringify(payload));
|
|
176
191
|
// Send raw binary Body instead of Base64 string for production efficiency
|
|
177
192
|
this.ws.publishSessionRecordingMessage(compressed);
|
|
178
193
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-tracker.js","sourceRoot":"","sources":["../../../../../nommos/core/src/lib/session-tracker.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,yBAAyB,EAAE,6BAA6B,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAChH,OAAO,IAAI,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"session-tracker.js","sourceRoot":"","sources":["../../../../../nommos/core/src/lib/session-tracker.ts"],"names":[],"mappings":"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"}
|
package/src/lib/types.d.ts
CHANGED
|
@@ -1,11 +1,19 @@
|
|
|
1
1
|
import { ANALYTICS_ACTION, ANALYTICS_ACTION_STATE, SITE_SOURCE } from './enums';
|
|
2
2
|
export interface ConnectionConfig {
|
|
3
3
|
token: string;
|
|
4
|
+
/**
|
|
5
|
+
* Selects the backend stack and the logging level together: `'dev'` points at the test
|
|
6
|
+
* deployment and turns on console diagnostics, anything else points at production and stays
|
|
7
|
+
* silent. Tokens are issued per stack, so this must match where the token came from.
|
|
8
|
+
*/
|
|
4
9
|
mode: string;
|
|
10
|
+
/** Escape hatch for a local or self-hosted backend. Overrides whatever `mode` would resolve to. */
|
|
11
|
+
baseUrl?: string;
|
|
5
12
|
}
|
|
6
13
|
export interface TrackingControls {
|
|
7
14
|
action_tracking_enabled: boolean;
|
|
8
15
|
session_tracking_enabled: boolean;
|
|
16
|
+
heatmap_tracking_enabled?: boolean;
|
|
9
17
|
session_chunk_duration_ms?: number;
|
|
10
18
|
session_inactivity_timeout_ms?: number;
|
|
11
19
|
}
|
|
@@ -31,6 +39,8 @@ export interface FullConfig extends ConnectionConfig {
|
|
|
31
39
|
rabbitUrl?: string;
|
|
32
40
|
username?: string;
|
|
33
41
|
password?: string;
|
|
42
|
+
wsUrl?: string;
|
|
43
|
+
wsToken?: string;
|
|
34
44
|
brand_id?: number | string;
|
|
35
45
|
appId?: string;
|
|
36
46
|
reconnectDelay?: number;
|
|
@@ -38,6 +48,115 @@ export interface FullConfig extends ConnectionConfig {
|
|
|
38
48
|
masterEnabled?: boolean;
|
|
39
49
|
controls?: TrackingControls;
|
|
40
50
|
ads_events?: AdsEventsConfig;
|
|
51
|
+
consentRef?: string;
|
|
52
|
+
consentReceiptId?: string;
|
|
53
|
+
consentVersion?: string;
|
|
54
|
+
consentPermission?: ConsentPermission;
|
|
55
|
+
}
|
|
56
|
+
export type ConsentPermission = 'necessary' | 'analytics' | 'session-recording' | 'marketing';
|
|
57
|
+
/** The categories a visitor can refuse. `necessary` is not among them. */
|
|
58
|
+
export type OptionalConsentCategory = 'analytics' | 'sessionRecording' | 'marketing';
|
|
59
|
+
export interface ConsentPermissionState {
|
|
60
|
+
necessary: true;
|
|
61
|
+
analytics: boolean;
|
|
62
|
+
sessionRecording: boolean;
|
|
63
|
+
marketing: boolean;
|
|
64
|
+
}
|
|
65
|
+
export interface ConsentStoredState {
|
|
66
|
+
receiptId: string;
|
|
67
|
+
consentRef: string;
|
|
68
|
+
configVersion: string;
|
|
69
|
+
policyHash: string;
|
|
70
|
+
permissions: ConsentPermissionState;
|
|
71
|
+
effectiveAt: string;
|
|
72
|
+
/** ISO timestamp after which consent must be collected again. Absent means it never expires. */
|
|
73
|
+
expiresAt?: string | null;
|
|
74
|
+
gpcApplied?: boolean;
|
|
75
|
+
}
|
|
76
|
+
export interface ConsentConfig {
|
|
77
|
+
enabled: boolean;
|
|
78
|
+
siteKey: string;
|
|
79
|
+
version: string;
|
|
80
|
+
policyHash: string;
|
|
81
|
+
brand_id?: number | string;
|
|
82
|
+
tenantId?: number | string;
|
|
83
|
+
branding: {
|
|
84
|
+
companyName: string;
|
|
85
|
+
logoUrl?: string;
|
|
86
|
+
primaryColor?: string;
|
|
87
|
+
secondaryColor?: string;
|
|
88
|
+
fontFamily?: string;
|
|
89
|
+
};
|
|
90
|
+
/** Per-category definition keyed by category name, e.g. `{ analytics: { enabled, required, defaultState } }`. */
|
|
91
|
+
permissions: Record<string, {
|
|
92
|
+
enabled?: boolean;
|
|
93
|
+
required?: boolean;
|
|
94
|
+
defaultState?: boolean;
|
|
95
|
+
}>;
|
|
96
|
+
/** @deprecated CMP copy is SDK-owned. Kept optional only for older config responses. */
|
|
97
|
+
content?: Record<string, Record<string, string> | string>;
|
|
98
|
+
privacyPolicyUrl?: string;
|
|
99
|
+
cookiePolicyUrl?: string;
|
|
100
|
+
expiresInDays?: number | null;
|
|
101
|
+
settings?: {
|
|
102
|
+
honorGlobalPrivacyControl?: boolean;
|
|
103
|
+
storageStrategy?: string;
|
|
104
|
+
cookiePrefix?: string;
|
|
105
|
+
showFloatingPrivacyControl?: boolean;
|
|
106
|
+
floatingButtonPosition?: string;
|
|
107
|
+
};
|
|
108
|
+
}
|
|
109
|
+
export interface ConsentAwareModule {
|
|
110
|
+
id: 'tracking' | 'session-recording' | 'marketing';
|
|
111
|
+
initialize(): Promise<void>;
|
|
112
|
+
shutdown(): Promise<void>;
|
|
113
|
+
purge?(): Promise<void>;
|
|
114
|
+
isInitialized(): boolean;
|
|
115
|
+
supportsRuntimeShutdown: boolean;
|
|
116
|
+
}
|
|
117
|
+
/** One CTA button. Rendered by the SDK as chrome rather than as part of the popup body. */
|
|
118
|
+
export interface WebPopupButton {
|
|
119
|
+
label: string;
|
|
120
|
+
url: string;
|
|
121
|
+
style?: string;
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Inbox metadata for one popup. Deliberately without the body: three full popups would be over
|
|
125
|
+
* a megabyte on every SDK init, on the tenant's own page.
|
|
126
|
+
*/
|
|
127
|
+
export interface WebPopupItem {
|
|
128
|
+
id: number;
|
|
129
|
+
title?: string;
|
|
130
|
+
thumbnailUrl?: string;
|
|
131
|
+
layout?: string;
|
|
132
|
+
schemaVersion?: number;
|
|
133
|
+
priority?: string;
|
|
134
|
+
status?: string;
|
|
135
|
+
deliveredAt?: string;
|
|
136
|
+
expiresAt?: string;
|
|
137
|
+
templateId?: number;
|
|
138
|
+
/** Which send produced this popup: BROADCAST, JOURNEY, AUTOMATION, STAGE_ACTION or DIRECT. */
|
|
139
|
+
source?: string;
|
|
140
|
+
/** The campaign behind the send, echoed back on every analytics event for attribution. */
|
|
141
|
+
sourceCampaignId?: number;
|
|
142
|
+
buttons?: WebPopupButton[];
|
|
143
|
+
}
|
|
144
|
+
/** The renderable body, fetched only when a popup is about to open. */
|
|
145
|
+
export interface WebPopupContent {
|
|
146
|
+
id: number;
|
|
147
|
+
schemaVersion?: number;
|
|
148
|
+
layout?: string;
|
|
149
|
+
title?: string;
|
|
150
|
+
desktopHtml?: string;
|
|
151
|
+
desktopCss?: string;
|
|
152
|
+
mobileHtml?: string;
|
|
153
|
+
mobileCss?: string;
|
|
154
|
+
buttons?: WebPopupButton[];
|
|
155
|
+
}
|
|
156
|
+
export interface WebPopupInboxState {
|
|
157
|
+
items: WebPopupItem[];
|
|
158
|
+
/** Popups the visitor has not opened yet — what the launcher badge counts. */
|
|
159
|
+
unreadCount: number;
|
|
41
160
|
}
|
|
42
161
|
export interface UrlTrackingKey {
|
|
43
162
|
source: string;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { AnalyticsEvent, FullConfig, SessionRecordingPayload } from './types';
|
|
1
|
+
import { AnalyticsEvent, ConsentStoredState, FullConfig, SessionRecordingPayload } from './types';
|
|
2
2
|
/**
|
|
3
3
|
* WebSocketClient
|
|
4
4
|
* ----------------
|
|
@@ -19,6 +19,9 @@ export declare class WebSocketClient {
|
|
|
19
19
|
*/
|
|
20
20
|
private analyticsClient;
|
|
21
21
|
private cfg;
|
|
22
|
+
private manualDisconnect;
|
|
23
|
+
private onConnectionClosed;
|
|
24
|
+
private consentState;
|
|
22
25
|
/**
|
|
23
26
|
* Buffer containing analytics events produced before the socket
|
|
24
27
|
* becomes connected. They are automatically flushed on connection.
|
|
@@ -26,6 +29,17 @@ export declare class WebSocketClient {
|
|
|
26
29
|
*/
|
|
27
30
|
private _pendingEvents;
|
|
28
31
|
private _pendingSessions;
|
|
32
|
+
/**
|
|
33
|
+
* Topics to (re)subscribe on every connect. STOMP subscriptions do not survive a reconnect, so
|
|
34
|
+
* they are held here rather than registered once against a client instance that may be replaced.
|
|
35
|
+
*/
|
|
36
|
+
private readonly topicHandlers;
|
|
37
|
+
/**
|
|
38
|
+
* Consecutive broker rejections. A token the broker refuses will be refused again, so retrying
|
|
39
|
+
* past this point is a reconnect loop rather than resilience.
|
|
40
|
+
*/
|
|
41
|
+
private authFailures;
|
|
42
|
+
private static readonly MAX_AUTH_FAILURES;
|
|
29
43
|
/** Readonly view of buffered analytics events — do not mutate directly. */
|
|
30
44
|
get pendingEvents(): ReadonlyArray<AnalyticsEvent>;
|
|
31
45
|
private readonly stompAnalyticsConnected;
|
|
@@ -55,7 +69,7 @@ export declare class WebSocketClient {
|
|
|
55
69
|
*
|
|
56
70
|
* @param cfg Configuration including URL, credentials, mode etc.
|
|
57
71
|
*/
|
|
58
|
-
connectAnalyticsStomp(cfg: FullConfig): void;
|
|
72
|
+
connectAnalyticsStomp(cfg: FullConfig, onConnectionClosed?: () => void): void;
|
|
59
73
|
/**
|
|
60
74
|
* Publishes an analytics event to a RabbitMQ queue.
|
|
61
75
|
*
|
|
@@ -72,6 +86,20 @@ export declare class WebSocketClient {
|
|
|
72
86
|
* @param payload The session recording data to send.
|
|
73
87
|
*/
|
|
74
88
|
publishSessionRecordingMessage(payload: SessionRecordingPayload | string | Uint8Array): void;
|
|
89
|
+
/**
|
|
90
|
+
* Subscribes to a broker topic, re-establishing it automatically after a reconnect.
|
|
91
|
+
*
|
|
92
|
+
* <p>Registering the handler even while disconnected is deliberate: the popup module subscribes
|
|
93
|
+
* during marketing-consent setup, which can easily run before the socket is up.
|
|
94
|
+
*/
|
|
95
|
+
subscribeTopic(destination: string, handler: (body: string) => void): void;
|
|
96
|
+
unsubscribeTopic(destination: string): void;
|
|
97
|
+
private resubscribeTopics;
|
|
98
|
+
private applySubscription;
|
|
99
|
+
setConsentState(state: ConsentStoredState | null): void;
|
|
100
|
+
clearPendingSessionRecordings(): void;
|
|
101
|
+
private hasSessionRecordingConsent;
|
|
102
|
+
private consentHeaders;
|
|
75
103
|
/**
|
|
76
104
|
* Enriches all buffered (pending) analytics events with IP and brand_id
|
|
77
105
|
* once they become available after bootstrap. This is called after the
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Client } from '@stomp/stompjs';
|
|
2
2
|
import { BehaviorSubject } from 'rxjs';
|
|
3
|
-
import {
|
|
3
|
+
import { MAX_BUFFERED_CHUNKS, MAX_BUFFERED_EVENTS, TRACKING_ACTIVITY_DESTINATION, TRACKING_SESSION_DESTINATION } from './constants';
|
|
4
4
|
/**
|
|
5
5
|
* WebSocketClient
|
|
6
6
|
* ----------------
|
|
@@ -22,6 +22,9 @@ export class WebSocketClient {
|
|
|
22
22
|
*/
|
|
23
23
|
this.analyticsClient = null;
|
|
24
24
|
this.cfg = null;
|
|
25
|
+
this.manualDisconnect = false;
|
|
26
|
+
this.onConnectionClosed = null;
|
|
27
|
+
this.consentState = null;
|
|
25
28
|
/**
|
|
26
29
|
* Buffer containing analytics events produced before the socket
|
|
27
30
|
* becomes connected. They are automatically flushed on connection.
|
|
@@ -29,6 +32,16 @@ export class WebSocketClient {
|
|
|
29
32
|
*/
|
|
30
33
|
this._pendingEvents = [];
|
|
31
34
|
this._pendingSessions = [];
|
|
35
|
+
/**
|
|
36
|
+
* Topics to (re)subscribe on every connect. STOMP subscriptions do not survive a reconnect, so
|
|
37
|
+
* they are held here rather than registered once against a client instance that may be replaced.
|
|
38
|
+
*/
|
|
39
|
+
this.topicHandlers = new Map();
|
|
40
|
+
/**
|
|
41
|
+
* Consecutive broker rejections. A token the broker refuses will be refused again, so retrying
|
|
42
|
+
* past this point is a reconnect loop rather than resilience.
|
|
43
|
+
*/
|
|
44
|
+
this.authFailures = 0;
|
|
32
45
|
this.stompAnalyticsConnected = new BehaviorSubject(false);
|
|
33
46
|
/**
|
|
34
47
|
* Reactive connection state for consumers who want to listen for
|
|
@@ -51,11 +64,18 @@ export class WebSocketClient {
|
|
|
51
64
|
*/
|
|
52
65
|
createStompClient(cfg) {
|
|
53
66
|
const client = new Client({
|
|
54
|
-
brokerURL: cfg.rabbitUrl ?? '',
|
|
67
|
+
brokerURL: cfg.wsUrl ?? cfg.rabbitUrl ?? '',
|
|
55
68
|
connectHeaders: {
|
|
56
|
-
|
|
57
|
-
|
|
69
|
+
...(cfg.wsToken
|
|
70
|
+
? { Authorization: `Bearer ${cfg.wsToken}` }
|
|
71
|
+
: {
|
|
72
|
+
login: cfg.username ?? '',
|
|
73
|
+
passcode: cfg.password ?? '',
|
|
74
|
+
}),
|
|
58
75
|
},
|
|
76
|
+
// Reconnection used to be switched off outright whenever a wsToken was present, so a single
|
|
77
|
+
// dropped socket left a long-lived SPA with no live channel for the rest of the page's life.
|
|
78
|
+
// It stays on now; `authFailures` is the backstop that stops a rejected token retrying forever.
|
|
59
79
|
reconnectDelay: cfg.reconnectDelay ?? 5000,
|
|
60
80
|
});
|
|
61
81
|
if (cfg.mode === 'dev') {
|
|
@@ -83,14 +103,23 @@ export class WebSocketClient {
|
|
|
83
103
|
*
|
|
84
104
|
* @param cfg Configuration including URL, credentials, mode etc.
|
|
85
105
|
*/
|
|
86
|
-
connectAnalyticsStomp(cfg) {
|
|
106
|
+
connectAnalyticsStomp(cfg, onConnectionClosed) {
|
|
107
|
+
this.manualDisconnect = false;
|
|
87
108
|
this.cfg = cfg;
|
|
109
|
+
this.onConnectionClosed = onConnectionClosed ?? null;
|
|
110
|
+
if (this.analyticsClient) {
|
|
111
|
+
this.analyticsClient.deactivate();
|
|
112
|
+
}
|
|
88
113
|
this.analyticsClient = this.createStompClient(cfg);
|
|
114
|
+
const activeClient = this.analyticsClient;
|
|
89
115
|
this.analyticsClient.onConnect = () => {
|
|
116
|
+
this.manualDisconnect = false;
|
|
117
|
+
this.authFailures = 0;
|
|
90
118
|
if (this.cfg?.mode === 'dev') {
|
|
91
119
|
console.log('[Nommos Tracker] Connected');
|
|
92
120
|
}
|
|
93
121
|
this.stompAnalyticsConnected.next(true);
|
|
122
|
+
this.resubscribeTopics();
|
|
94
123
|
// flush pending analytics events
|
|
95
124
|
for (const m of this._pendingEvents) {
|
|
96
125
|
this.publishAnalyticsMessage(m);
|
|
@@ -106,6 +135,22 @@ export class WebSocketClient {
|
|
|
106
135
|
if (this.cfg?.mode === 'dev') {
|
|
107
136
|
console.error('[Nommos Tracker] Broker error:', frame.headers['message']);
|
|
108
137
|
}
|
|
138
|
+
// An ERROR frame at this point means the broker refused us — almost always the token. It
|
|
139
|
+
// will refuse the same token again, so give up rather than reconnect in a tight loop.
|
|
140
|
+
this.authFailures += 1;
|
|
141
|
+
if (this.authFailures >= WebSocketClient.MAX_AUTH_FAILURES) {
|
|
142
|
+
if (this.cfg?.mode === 'dev') {
|
|
143
|
+
console.error('[Nommos Tracker] Giving up reconnecting after repeated broker rejections.');
|
|
144
|
+
}
|
|
145
|
+
this.manualDisconnect = true;
|
|
146
|
+
activeClient.deactivate();
|
|
147
|
+
}
|
|
148
|
+
};
|
|
149
|
+
this.analyticsClient.onWebSocketClose = () => {
|
|
150
|
+
this.stompAnalyticsConnected.next(false);
|
|
151
|
+
if (this.analyticsClient === activeClient && !this.manualDisconnect && this.onConnectionClosed) {
|
|
152
|
+
this.onConnectionClosed();
|
|
153
|
+
}
|
|
109
154
|
};
|
|
110
155
|
if (this.cfg?.mode === 'dev') {
|
|
111
156
|
console.log('[Nommos Tracker] Activating STOMP client...');
|
|
@@ -134,7 +179,7 @@ export class WebSocketClient {
|
|
|
134
179
|
return;
|
|
135
180
|
}
|
|
136
181
|
this.analyticsClient.publish({
|
|
137
|
-
destination:
|
|
182
|
+
destination: this.cfg?.wsToken ? TRACKING_ACTIVITY_DESTINATION : '/queue/user.activity',
|
|
138
183
|
headers: { 'content-type': 'application/json' },
|
|
139
184
|
body: JSON.stringify(payload),
|
|
140
185
|
});
|
|
@@ -145,6 +190,12 @@ export class WebSocketClient {
|
|
|
145
190
|
* @param payload The session recording data to send.
|
|
146
191
|
*/
|
|
147
192
|
publishSessionRecordingMessage(payload) {
|
|
193
|
+
if (this.cfg?.wsToken && !this.hasSessionRecordingConsent()) {
|
|
194
|
+
if (this.cfg?.mode === 'dev') {
|
|
195
|
+
console.warn('[Nommos Tracker] Session recording chunk blocked because consent proof is missing.');
|
|
196
|
+
}
|
|
197
|
+
return;
|
|
198
|
+
}
|
|
148
199
|
if (!this.analyticsClient || !this.analyticsClient.connected) {
|
|
149
200
|
this._pendingSessions.push(payload);
|
|
150
201
|
// Memory Guard: Drop oldest chunks if buffer exceeds limit
|
|
@@ -159,14 +210,79 @@ export class WebSocketClient {
|
|
|
159
210
|
const isCompressed = typeof payload === 'string' || payload instanceof Uint8Array;
|
|
160
211
|
const isBinary = payload instanceof Uint8Array;
|
|
161
212
|
this.analyticsClient.publish({
|
|
162
|
-
destination:
|
|
213
|
+
destination: this.cfg?.wsToken ? TRACKING_SESSION_DESTINATION : '/queue/user.session.recording',
|
|
163
214
|
headers: {
|
|
164
215
|
'content-type': isBinary ? 'application/octet-stream' : isCompressed ? 'text/plain' : 'application/json',
|
|
165
216
|
...(isCompressed && { 'content-encoding': 'gzip' }),
|
|
217
|
+
...(this.cfg?.wsToken ? this.consentHeaders() : {}),
|
|
166
218
|
},
|
|
167
219
|
...(isBinary ? { binaryBody: payload } : { body: isCompressed ? payload : JSON.stringify(payload) }),
|
|
168
220
|
});
|
|
169
221
|
}
|
|
222
|
+
/**
|
|
223
|
+
* Subscribes to a broker topic, re-establishing it automatically after a reconnect.
|
|
224
|
+
*
|
|
225
|
+
* <p>Registering the handler even while disconnected is deliberate: the popup module subscribes
|
|
226
|
+
* during marketing-consent setup, which can easily run before the socket is up.
|
|
227
|
+
*/
|
|
228
|
+
subscribeTopic(destination, handler) {
|
|
229
|
+
this.topicHandlers.set(destination, handler);
|
|
230
|
+
if (this.analyticsClient?.connected) {
|
|
231
|
+
this.applySubscription(destination, handler);
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
unsubscribeTopic(destination) {
|
|
235
|
+
this.topicHandlers.delete(destination);
|
|
236
|
+
// stompjs has no unsubscribe-by-destination; dropping the handler stops delivery, and the
|
|
237
|
+
// subscription itself dies with the next reconnect. Popups are per-page, so this is enough.
|
|
238
|
+
}
|
|
239
|
+
resubscribeTopics() {
|
|
240
|
+
for (const [destination, handler] of this.topicHandlers) {
|
|
241
|
+
this.applySubscription(destination, handler);
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
applySubscription(destination, handler) {
|
|
245
|
+
try {
|
|
246
|
+
this.analyticsClient?.subscribe(destination, (message) => {
|
|
247
|
+
// A handler that throws must not take down the STOMP message loop with it.
|
|
248
|
+
try {
|
|
249
|
+
handler(message.body);
|
|
250
|
+
}
|
|
251
|
+
catch (error) {
|
|
252
|
+
if (this.cfg?.mode === 'dev') {
|
|
253
|
+
console.error('[Nommos Tracker] Topic handler failed:', error);
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
}, this.cfg?.wsToken ? this.consentHeaders('marketing') : {});
|
|
257
|
+
}
|
|
258
|
+
catch (error) {
|
|
259
|
+
if (this.cfg?.mode === 'dev') {
|
|
260
|
+
console.error('[Nommos Tracker] Could not subscribe to', destination, error);
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
}
|
|
264
|
+
setConsentState(state) {
|
|
265
|
+
this.consentState = state;
|
|
266
|
+
if (!this.hasSessionRecordingConsent()) {
|
|
267
|
+
this.clearPendingSessionRecordings();
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
clearPendingSessionRecordings() {
|
|
271
|
+
this._pendingSessions = [];
|
|
272
|
+
}
|
|
273
|
+
hasSessionRecordingConsent() {
|
|
274
|
+
return Boolean(this.consentState?.consentRef &&
|
|
275
|
+
this.consentState?.receiptId &&
|
|
276
|
+
this.consentState?.permissions?.sessionRecording);
|
|
277
|
+
}
|
|
278
|
+
consentHeaders(permission = 'session-recording') {
|
|
279
|
+
return {
|
|
280
|
+
'x-nommos-consent-ref': this.consentState?.consentRef ?? '',
|
|
281
|
+
'x-nommos-consent-receipt-id': this.consentState?.receiptId ?? '',
|
|
282
|
+
'x-nommos-consent-version': this.consentState?.configVersion ?? '',
|
|
283
|
+
'x-nommos-consent-permission': permission,
|
|
284
|
+
};
|
|
285
|
+
}
|
|
170
286
|
/**
|
|
171
287
|
* Enriches all buffered (pending) analytics events with IP and brand_id
|
|
172
288
|
* once they become available after bootstrap. This is called after the
|
|
@@ -188,8 +304,10 @@ export class WebSocketClient {
|
|
|
188
304
|
*/
|
|
189
305
|
disconnect() {
|
|
190
306
|
if (this.analyticsClient) {
|
|
307
|
+
this.manualDisconnect = true;
|
|
191
308
|
this.analyticsClient.deactivate().then(() => {
|
|
192
309
|
this.stompAnalyticsConnected.next(false);
|
|
310
|
+
this.manualDisconnect = false;
|
|
193
311
|
if (this.cfg?.mode === 'dev') {
|
|
194
312
|
console.log('[Nommos Tracker] Disconnected');
|
|
195
313
|
}
|
|
@@ -197,4 +315,5 @@ export class WebSocketClient {
|
|
|
197
315
|
}
|
|
198
316
|
}
|
|
199
317
|
}
|
|
318
|
+
WebSocketClient.MAX_AUTH_FAILURES = 3;
|
|
200
319
|
//# sourceMappingURL=webSocket-client.js.map
|
|
@@ -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,
|
|
1
|
+
{"version":3,"file":"webSocket-client.js","sourceRoot":"","sources":["../../../../../nommos/core/src/lib/webSocket-client.ts"],"names":[],"mappings":"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"}
|