@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
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { AnalyticsEvent, ConnectionConfig, UrlTrackingKey } from './types';
|
|
1
|
+
import { AnalyticsEvent, ConnectionConfig, UrlTrackingKey, WebPopupInboxState } from './types';
|
|
2
2
|
import { ANALYTICS_ACTION, ANALYTICS_ACTION_STATE } from './enums';
|
|
3
3
|
export declare class EventTracker {
|
|
4
4
|
private readonly urlTrackingKey;
|
|
@@ -28,6 +28,16 @@ export declare class EventTracker {
|
|
|
28
28
|
*/
|
|
29
29
|
private readonly readySubject;
|
|
30
30
|
readonly isReady$: import("rxjs").Observable<boolean>;
|
|
31
|
+
/** Backend URLs for the stack `cfg.mode` selected. Fixed for the life of the instance. */
|
|
32
|
+
private readonly endpoints;
|
|
33
|
+
private consentManager;
|
|
34
|
+
private marketingInitialized;
|
|
35
|
+
private popupInbox;
|
|
36
|
+
private consentProof;
|
|
37
|
+
/** Consent barrier state — see {@link publishWhenPermitted}. */
|
|
38
|
+
private consentEvaluated;
|
|
39
|
+
private analyticsAllowed;
|
|
40
|
+
private preConsentBuffer;
|
|
31
41
|
/**
|
|
32
42
|
* Internal state map used to track SELECT/UNSELECT status of toggleable actions.
|
|
33
43
|
*/
|
|
@@ -38,6 +48,19 @@ export declare class EventTracker {
|
|
|
38
48
|
* engine and WebSocket connection if tracking is enabled.
|
|
39
49
|
*/
|
|
40
50
|
constructor(config: ConnectionConfig, urlTrackingKey: UrlTrackingKey);
|
|
51
|
+
/**
|
|
52
|
+
* The consent barrier (§10).
|
|
53
|
+
*
|
|
54
|
+
* Events raised before consent has been evaluated are held, not sent. Once the decision is
|
|
55
|
+
* known the buffer is either flushed or discarded. Without this, the VISIT event raised
|
|
56
|
+
* during bootstrap would reach the backend before the visitor had seen the banner.
|
|
57
|
+
*/
|
|
58
|
+
private publishWhenPermitted;
|
|
59
|
+
/**
|
|
60
|
+
* Records the analytics decision and releases or drops whatever was buffered while it was
|
|
61
|
+
* pending. Called for both grant and refusal, so the barrier always resolves.
|
|
62
|
+
*/
|
|
63
|
+
private resolveConsentBarrier;
|
|
41
64
|
/**
|
|
42
65
|
* Returns whether tracking is enabled at runtime.
|
|
43
66
|
*/
|
|
@@ -77,6 +100,22 @@ export declare class EventTracker {
|
|
|
77
100
|
private initFacebookPixel;
|
|
78
101
|
private fireAdPixelEvent;
|
|
79
102
|
private bootstrap;
|
|
103
|
+
private initializeConsentManager;
|
|
104
|
+
private applyConsentProof;
|
|
105
|
+
private startSessionRecording;
|
|
106
|
+
private stopSessionRecording;
|
|
107
|
+
private startMarketing;
|
|
108
|
+
private startPopupInbox;
|
|
109
|
+
/** Opens the popup viewer on demand — from the launcher, or a host application's own trigger. */
|
|
110
|
+
openViewer(popupId?: number): Promise<void>;
|
|
111
|
+
/** The popups this visitor currently holds, and how many are unread. */
|
|
112
|
+
getInbox(): WebPopupInboxState;
|
|
113
|
+
/**
|
|
114
|
+
* Mutes or unmutes the chime played when a popup arrives mid-session. Persisted per visitor, so
|
|
115
|
+
* a host application can offer the preference without owning the storage.
|
|
116
|
+
*/
|
|
117
|
+
setPopupSoundEnabled(enabled: boolean): void;
|
|
118
|
+
private stopMarketing;
|
|
80
119
|
private fetchConfig;
|
|
81
120
|
private applyConfig;
|
|
82
121
|
unsubscribe(): void;
|
package/src/lib/event-tracker.js
CHANGED
|
@@ -2,10 +2,13 @@ import { forkJoin, from, of, Subject } from 'rxjs';
|
|
|
2
2
|
import { catchError, map, switchMap } from 'rxjs/operators';
|
|
3
3
|
import { WebSocketClient } from './webSocket-client';
|
|
4
4
|
import { DataAttribution } from './data-attribution';
|
|
5
|
+
import { ConsentManager } from './consent-manager';
|
|
5
6
|
import { SessionTracker } from './session-tracker';
|
|
7
|
+
import { PopupInbox } from './popup-inbox';
|
|
8
|
+
import { PopupViewer } from './popup-viewer';
|
|
6
9
|
import { ANALYTICS_ACTION, ANALYTICS_ACTION_STATE } from './enums';
|
|
7
10
|
import { getQueryParams, userAgentInfo } from './utils';
|
|
8
|
-
import {
|
|
11
|
+
import { resolveEndpoints, ACTIVE_AD_ID_KEY, ACTIVE_PIXEL_ID_KEY, ACTIVE_EVENT_TYPE_KEY, ACTIVE_PLATFORM_KEY, FB_PIXEL_SCRIPT_URL, GTAG_SCRIPT_URL, MAX_BUFFERED_EVENTS, } from './constants';
|
|
9
12
|
import { v4 as uuidv4 } from 'uuid';
|
|
10
13
|
export class EventTracker {
|
|
11
14
|
/**
|
|
@@ -32,6 +35,14 @@ export class EventTracker {
|
|
|
32
35
|
*/
|
|
33
36
|
this.readySubject = new Subject();
|
|
34
37
|
this.isReady$ = this.readySubject.asObservable();
|
|
38
|
+
this.consentManager = null;
|
|
39
|
+
this.marketingInitialized = false;
|
|
40
|
+
this.popupInbox = null;
|
|
41
|
+
this.consentProof = null;
|
|
42
|
+
/** Consent barrier state — see {@link publishWhenPermitted}. */
|
|
43
|
+
this.consentEvaluated = false;
|
|
44
|
+
this.analyticsAllowed = false;
|
|
45
|
+
this.preConsentBuffer = [];
|
|
35
46
|
/**
|
|
36
47
|
* Internal state map used to track SELECT/UNSELECT status of toggleable actions.
|
|
37
48
|
*/
|
|
@@ -76,6 +87,7 @@ export class EventTracker {
|
|
|
76
87
|
this.cfg = {
|
|
77
88
|
...config,
|
|
78
89
|
};
|
|
90
|
+
this.endpoints = resolveEndpoints(this.cfg.mode, this.cfg.baseUrl);
|
|
79
91
|
// Warn in dev mode if another instance with the same token is already active.
|
|
80
92
|
// This prevents duplicate events being sent to the queue.
|
|
81
93
|
if (this.cfg.token) {
|
|
@@ -93,12 +105,59 @@ export class EventTracker {
|
|
|
93
105
|
this.da.init(window.location.href, { stripFromUrl: false });
|
|
94
106
|
this.lastCapturedUrl = window.location.href;
|
|
95
107
|
}
|
|
96
|
-
//
|
|
108
|
+
// Every emitted event passes through the consent barrier rather than going straight to the
|
|
109
|
+
// socket. Until consent has been evaluated nothing may leave the browser.
|
|
97
110
|
this.eventSubscription = this.analyticsEvents$.subscribe((track) => {
|
|
98
|
-
this.
|
|
111
|
+
this.publishWhenPermitted(track);
|
|
99
112
|
});
|
|
100
113
|
this.bootstrap(this.cfg); // Fire and forget
|
|
101
114
|
}
|
|
115
|
+
/**
|
|
116
|
+
* The consent barrier (§10).
|
|
117
|
+
*
|
|
118
|
+
* Events raised before consent has been evaluated are held, not sent. Once the decision is
|
|
119
|
+
* known the buffer is either flushed or discarded. Without this, the VISIT event raised
|
|
120
|
+
* during bootstrap would reach the backend before the visitor had seen the banner.
|
|
121
|
+
*/
|
|
122
|
+
publishWhenPermitted(track) {
|
|
123
|
+
if (!this.trackingIsEnabled()) {
|
|
124
|
+
return;
|
|
125
|
+
}
|
|
126
|
+
if (!this.consentEvaluated) {
|
|
127
|
+
this.preConsentBuffer.push(track);
|
|
128
|
+
if (this.preConsentBuffer.length > MAX_BUFFERED_EVENTS) {
|
|
129
|
+
this.preConsentBuffer.shift();
|
|
130
|
+
}
|
|
131
|
+
return;
|
|
132
|
+
}
|
|
133
|
+
if (!this.analyticsAllowed) {
|
|
134
|
+
return;
|
|
135
|
+
}
|
|
136
|
+
this.ws.publishAnalyticsMessage(track);
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* Records the analytics decision and releases or drops whatever was buffered while it was
|
|
140
|
+
* pending. Called for both grant and refusal, so the barrier always resolves.
|
|
141
|
+
*/
|
|
142
|
+
resolveConsentBarrier(allowed) {
|
|
143
|
+
this.consentEvaluated = true;
|
|
144
|
+
this.analyticsAllowed = allowed;
|
|
145
|
+
const buffered = this.preConsentBuffer;
|
|
146
|
+
this.preConsentBuffer = [];
|
|
147
|
+
if (!allowed) {
|
|
148
|
+
if (this.cfg.mode === 'dev') {
|
|
149
|
+
console.log(`[Nommos Tracker] Analytics refused; discarding ${buffered.length} buffered event(s).`);
|
|
150
|
+
}
|
|
151
|
+
return;
|
|
152
|
+
}
|
|
153
|
+
if (!this.trackingIsEnabled()) {
|
|
154
|
+
if (this.cfg.mode === 'dev') {
|
|
155
|
+
console.log(`[Nommos Tracker] Action tracking disabled; discarding ${buffered.length} buffered event(s).`);
|
|
156
|
+
}
|
|
157
|
+
return;
|
|
158
|
+
}
|
|
159
|
+
buffered.forEach((event) => this.ws.publishAnalyticsMessage(event));
|
|
160
|
+
}
|
|
102
161
|
/**
|
|
103
162
|
* Returns whether tracking is enabled at runtime.
|
|
104
163
|
*/
|
|
@@ -210,6 +269,7 @@ export class EventTracker {
|
|
|
210
269
|
initializeAdTracking() {
|
|
211
270
|
if (typeof window === 'undefined')
|
|
212
271
|
return;
|
|
272
|
+
this.marketingInitialized = true;
|
|
213
273
|
const params = getQueryParams(window.location.href);
|
|
214
274
|
const fbclid = params['fbclid'];
|
|
215
275
|
const gclid = params['gclid'];
|
|
@@ -355,6 +415,8 @@ export class EventTracker {
|
|
|
355
415
|
fireAdPixelEvent(action, state, data) {
|
|
356
416
|
if (typeof window === 'undefined')
|
|
357
417
|
return;
|
|
418
|
+
if (!this.marketingInitialized)
|
|
419
|
+
return;
|
|
358
420
|
const fbConfig = this.cfg.ads_events?.facebook;
|
|
359
421
|
const googleConfig = this.cfg.ads_events?.google;
|
|
360
422
|
// 1. GLOBAL VISIT TRACKING (Facebook PageView & Google page_view)
|
|
@@ -386,6 +448,13 @@ export class EventTracker {
|
|
|
386
448
|
// Skip PageView here as it was handled above in the global section
|
|
387
449
|
if (action === ANALYTICS_ACTION.VISIT)
|
|
388
450
|
return;
|
|
451
|
+
const allowedStates = [
|
|
452
|
+
ANALYTICS_ACTION_STATE.SUBMIT,
|
|
453
|
+
ANALYTICS_ACTION_STATE.SUCCESS,
|
|
454
|
+
];
|
|
455
|
+
if (!allowedStates.includes(state)) {
|
|
456
|
+
return;
|
|
457
|
+
}
|
|
389
458
|
if (platform === 'facebook' && activeEventType && window.fbq) {
|
|
390
459
|
let fbEvent = activeEventType;
|
|
391
460
|
let internalAction = activeEventType;
|
|
@@ -409,6 +478,7 @@ export class EventTracker {
|
|
|
409
478
|
['donate', 'Donate'],
|
|
410
479
|
['findlocation', 'FindLocation'],
|
|
411
480
|
['initiatecheckout', 'InitiateCheckout'],
|
|
481
|
+
['initiatedcheckout', 'InitiateCheckout'],
|
|
412
482
|
['lead', 'Lead'],
|
|
413
483
|
['purchase', 'Purchase'],
|
|
414
484
|
['schedule', 'Schedule'],
|
|
@@ -416,9 +486,10 @@ export class EventTracker {
|
|
|
416
486
|
['starttrial', 'StartTrial'],
|
|
417
487
|
['submitapplication', 'SubmitApplication'],
|
|
418
488
|
['subscribe', 'Subscribe'],
|
|
419
|
-
['viewcontent', 'ViewContent']
|
|
489
|
+
['viewcontent', 'ViewContent'],
|
|
490
|
+
['contentview', 'ViewContent']
|
|
420
491
|
]);
|
|
421
|
-
const key = fbEvent?.trim().toLowerCase();
|
|
492
|
+
const key = fbEvent?.trim().toLowerCase().replace(/[_\s-]/g, '');
|
|
422
493
|
const isStandard = standardEvents.has(key);
|
|
423
494
|
const normalizedEvent = standardEvents.get(key) || fbEvent;
|
|
424
495
|
if (this.cfg.mode === 'dev') {
|
|
@@ -479,22 +550,14 @@ export class EventTracker {
|
|
|
479
550
|
this.readySubject.next(false);
|
|
480
551
|
return;
|
|
481
552
|
}
|
|
482
|
-
// Initialize ad platform tracking (Facebook and future others)
|
|
483
|
-
this.initializeAdTracking();
|
|
484
|
-
// Initialize session recording (rrweb) if enabled
|
|
485
|
-
const sessionEnabled = this.cfg.controls?.session_tracking_enabled !== false;
|
|
486
|
-
if (!this.sessionTracker && sessionEnabled) {
|
|
487
|
-
const { channel } = userAgentInfo(navigator.userAgent || '');
|
|
488
|
-
this.sessionTracker = new SessionTracker(this.ws, this.cfg, this.da.browserId, () => this.da.userIp, // getter ensures each flush uses the most current IP
|
|
489
|
-
channel, this.sessionId);
|
|
490
|
-
this.sessionTracker.start();
|
|
491
|
-
}
|
|
492
553
|
// Enrich buffered events with IP and brand_id now that they are available
|
|
493
554
|
this.ws.enrichPendingEventsMeta(this.da.userIp, this.cfg.brand_id);
|
|
494
555
|
this.readySubject.next(true);
|
|
495
|
-
//
|
|
556
|
+
// Consent is initialised before anything is emitted. The VISIT below is buffered by the
|
|
557
|
+
// consent barrier and only released once the visitor's decision is known.
|
|
558
|
+
this.initializeConsentManager();
|
|
496
559
|
this.trackEvent(ANALYTICS_ACTION.VISIT, ANALYTICS_ACTION_STATE.INIT);
|
|
497
|
-
if (cfg.rabbitUrl && cfg.username && cfg.password) {
|
|
560
|
+
if ((cfg.wsUrl && cfg.wsToken) || (cfg.rabbitUrl && cfg.username && cfg.password)) {
|
|
498
561
|
this.ws.connectAnalyticsStomp(cfg);
|
|
499
562
|
}
|
|
500
563
|
else if (cfg.token) {
|
|
@@ -526,8 +589,101 @@ export class EventTracker {
|
|
|
526
589
|
});
|
|
527
590
|
}
|
|
528
591
|
}
|
|
592
|
+
initializeConsentManager() {
|
|
593
|
+
if (typeof window === 'undefined' || this.consentManager || !this.cfg.token)
|
|
594
|
+
return;
|
|
595
|
+
this.consentManager = new ConsentManager(this.cfg.token, this.da.browserId, this.endpoints.cmpConfig, {
|
|
596
|
+
onConsentProof: (state) => this.applyConsentProof(state),
|
|
597
|
+
onAnalyticsGranted: () => this.resolveConsentBarrier(true),
|
|
598
|
+
onAnalyticsRevoked: () => this.resolveConsentBarrier(false),
|
|
599
|
+
onSessionRecordingGranted: () => this.startSessionRecording(),
|
|
600
|
+
onSessionRecordingRevoked: () => this.stopSessionRecording(true),
|
|
601
|
+
onMarketingGranted: () => this.startMarketing(),
|
|
602
|
+
onMarketingRevoked: () => this.stopMarketing(),
|
|
603
|
+
});
|
|
604
|
+
this.consentManager.init();
|
|
605
|
+
}
|
|
606
|
+
applyConsentProof(state) {
|
|
607
|
+
this.consentProof = state;
|
|
608
|
+
this.cfg.consentRef = state?.consentRef;
|
|
609
|
+
this.cfg.consentReceiptId = state?.receiptId;
|
|
610
|
+
this.cfg.consentVersion = state?.configVersion;
|
|
611
|
+
this.cfg.consentPermission = state?.permissions.sessionRecording ? 'session-recording' : undefined;
|
|
612
|
+
this.ws.setConsentState(state);
|
|
613
|
+
}
|
|
614
|
+
startSessionRecording() {
|
|
615
|
+
const sessionEnabled = this.cfg.controls?.session_tracking_enabled !== false;
|
|
616
|
+
if (!sessionEnabled || this.sessionTracker)
|
|
617
|
+
return;
|
|
618
|
+
const { channel } = userAgentInfo(navigator.userAgent || '');
|
|
619
|
+
this.sessionTracker = new SessionTracker(this.ws, this.cfg, this.da.browserId, () => this.da.userIp, channel, this.sessionId);
|
|
620
|
+
this.sessionTracker.start();
|
|
621
|
+
}
|
|
622
|
+
stopSessionRecording(discardPending = false) {
|
|
623
|
+
this.sessionTracker?.stop(discardPending);
|
|
624
|
+
if (discardPending) {
|
|
625
|
+
this.sessionTracker?.purge();
|
|
626
|
+
this.ws.clearPendingSessionRecordings();
|
|
627
|
+
}
|
|
628
|
+
this.sessionTracker = null;
|
|
629
|
+
}
|
|
630
|
+
startMarketing() {
|
|
631
|
+
this.initializeAdTracking();
|
|
632
|
+
this.startPopupInbox();
|
|
633
|
+
}
|
|
634
|
+
startPopupInbox() {
|
|
635
|
+
if (typeof window === 'undefined')
|
|
636
|
+
return;
|
|
637
|
+
if (!this.popupInbox) {
|
|
638
|
+
this.popupInbox = new PopupInbox({
|
|
639
|
+
cfg: this.cfg,
|
|
640
|
+
browserId: this.da.browserId,
|
|
641
|
+
// Popup analytics ride the normal pipeline, so they sit behind the *analytics* barrier
|
|
642
|
+
// while the popup itself rides *marketing*.
|
|
643
|
+
//
|
|
644
|
+
// The module decides the state (see EVENT_STATE), so `toggle: false` and `selected: true`
|
|
645
|
+
// stop trackEvent flipping it: those two are only read when the state is SELECT, and there
|
|
646
|
+
// they pin it rather than letting it toggle against the shared select map.
|
|
647
|
+
emit: (event, data, state) => this.trackEvent(ANALYTICS_ACTION.NOTIFICATION, state, { ...data, popup_event: event }, false, true),
|
|
648
|
+
hasMarketingConsent: () => this.consentProof?.permissions.marketing === true &&
|
|
649
|
+
this.consentManager?.isCategoryActivated('marketing') !== false,
|
|
650
|
+
subscribeTopic: (destination, handler) => this.ws.subscribeTopic(destination, handler),
|
|
651
|
+
unsubscribeTopic: (destination) => this.ws.unsubscribeTopic(destination),
|
|
652
|
+
});
|
|
653
|
+
}
|
|
654
|
+
void this.popupInbox.initialize();
|
|
655
|
+
}
|
|
656
|
+
/** Opens the popup viewer on demand — from the launcher, or a host application's own trigger. */
|
|
657
|
+
openViewer(popupId) {
|
|
658
|
+
return this.popupInbox?.openViewer(popupId) ?? Promise.resolve();
|
|
659
|
+
}
|
|
660
|
+
/** The popups this visitor currently holds, and how many are unread. */
|
|
661
|
+
getInbox() {
|
|
662
|
+
return this.popupInbox?.getInbox() ?? { items: [], unreadCount: 0 };
|
|
663
|
+
}
|
|
664
|
+
/**
|
|
665
|
+
* Mutes or unmutes the chime played when a popup arrives mid-session. Persisted per visitor, so
|
|
666
|
+
* a host application can offer the preference without owning the storage.
|
|
667
|
+
*/
|
|
668
|
+
setPopupSoundEnabled(enabled) {
|
|
669
|
+
PopupViewer.setSoundEnabled(enabled);
|
|
670
|
+
}
|
|
671
|
+
stopMarketing() {
|
|
672
|
+
this.marketingInitialized = false;
|
|
673
|
+
void this.popupInbox?.shutdown();
|
|
674
|
+
if (typeof sessionStorage === 'undefined')
|
|
675
|
+
return;
|
|
676
|
+
sessionStorage.removeItem(ACTIVE_AD_ID_KEY);
|
|
677
|
+
sessionStorage.removeItem(ACTIVE_PIXEL_ID_KEY);
|
|
678
|
+
sessionStorage.removeItem(ACTIVE_EVENT_TYPE_KEY);
|
|
679
|
+
sessionStorage.removeItem(ACTIVE_PLATFORM_KEY);
|
|
680
|
+
}
|
|
529
681
|
fetchConfig(token) {
|
|
530
|
-
|
|
682
|
+
// `bid` puts the browser id in the wsToken's claims, which is what scopes the popup inbox and
|
|
683
|
+
// the popup topic to this visitor. Without it the token can track but cannot receive.
|
|
684
|
+
const url = `${this.endpoints.secureConfig}/${encodeURIComponent(token)}`
|
|
685
|
+
+ `?sessionId=${encodeURIComponent(this.sessionId)}`
|
|
686
|
+
+ `&bid=${encodeURIComponent(this.da.browserId)}`;
|
|
531
687
|
return from(fetch(url)).pipe(switchMap((res) => {
|
|
532
688
|
if (!res.ok) {
|
|
533
689
|
throw new Error(`Failed to fetch config: ${res.statusText}`);
|
|
@@ -550,6 +706,11 @@ export class EventTracker {
|
|
|
550
706
|
this.cfg.masterEnabled = data.enabled !== false;
|
|
551
707
|
// enableTracking now specifically refers to actions
|
|
552
708
|
this.cfg.enableTracking = data.controls?.action_tracking_enabled !== false;
|
|
709
|
+
// The server no longer sends ws_url on the token path — the socket is always the backend that
|
|
710
|
+
// minted the token, so the SDK derives it. Still honoured when present, which leaves room for
|
|
711
|
+
// a deployment that terminates the socket on a different origin to the REST API.
|
|
712
|
+
this.cfg.wsUrl = data.ws_url ?? this.endpoints.ws;
|
|
713
|
+
this.cfg.wsToken = data.wsToken;
|
|
553
714
|
this.cfg.rabbitUrl = data.rabbit_url;
|
|
554
715
|
this.cfg.username = data.rabbit_username;
|
|
555
716
|
this.cfg.password = data.rabbit_password;
|
|
@@ -573,6 +734,7 @@ export class EventTracker {
|
|
|
573
734
|
this.eventSubscription?.unsubscribe();
|
|
574
735
|
this.webSocketConnectedSubscription?.unsubscribe();
|
|
575
736
|
this.readySubject.complete();
|
|
737
|
+
this.consentManager?.destroy();
|
|
576
738
|
// Remove token from the active registry so a future re-instantiation
|
|
577
739
|
// does not incorrectly trigger the duplicate-instance warning.
|
|
578
740
|
if (this.cfg.token) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event-tracker.js","sourceRoot":"","sources":["../../../../../nommos/core/src/lib/event-tracker.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"event-tracker.js","sourceRoot":"","sources":["../../../../../nommos/core/src/lib/event-tracker.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/** The languages the SDK ships copy for. Anything else falls back to English. */
|
|
2
|
+
export type SdkLanguage = 'en' | 'fr' | 'es';
|
|
3
|
+
/**
|
|
4
|
+
* The visitor's language, from the browser rather than from tenant configuration.
|
|
5
|
+
*
|
|
6
|
+
* <p>Chrome the SDK draws — consent banner, popup buttons — is addressed to the visitor, not to
|
|
7
|
+
* the tenant admin who authored the campaign, so it follows `navigator.language`. The popup
|
|
8
|
+
* *body* is authored content and is never translated here.
|
|
9
|
+
*/
|
|
10
|
+
export declare function resolveLanguage(): SdkLanguage;
|
package/src/lib/i18n.js
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The visitor's language, from the browser rather than from tenant configuration.
|
|
3
|
+
*
|
|
4
|
+
* <p>Chrome the SDK draws — consent banner, popup buttons — is addressed to the visitor, not to
|
|
5
|
+
* the tenant admin who authored the campaign, so it follows `navigator.language`. The popup
|
|
6
|
+
* *body* is authored content and is never translated here.
|
|
7
|
+
*/
|
|
8
|
+
export function resolveLanguage() {
|
|
9
|
+
const lang = (navigator.language || 'en').slice(0, 2).toLowerCase();
|
|
10
|
+
return lang === 'fr' || lang === 'es' ? lang : 'en';
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=i18n.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"i18n.js","sourceRoot":"","sources":["../../../../../nommos/core/src/lib/i18n.ts"],"names":[],"mappings":"AAGA;;;;;;GAMG;AACH,MAAM,UAAU,eAAe;IAC7B,MAAM,IAAI,GAAG,CAAC,SAAS,CAAC,QAAQ,IAAI,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;IACpE,OAAO,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AACtD,CAAC"}
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
import { ANALYTICS_ACTION_STATE } from './enums';
|
|
2
|
+
import { ConsentAwareModule, FullConfig, WebPopupInboxState } from './types';
|
|
3
|
+
/**
|
|
4
|
+
* Analytics events this module emits, all through the existing NOTIFICATION action.
|
|
5
|
+
*
|
|
6
|
+
* `NOTIFICATION` on its own is too coarse — push and chatbot land in the same bucket — so every
|
|
7
|
+
* popup event carries `notification_type: "WEB_POPUP"` and a `popup_event` discriminator. That
|
|
8
|
+
* keeps popup reporting separable without standing up a second pipeline.
|
|
9
|
+
*/
|
|
10
|
+
export type PopupEvent = 'auto_open' | 'manual_open' | 'viewed' | 'closed' | 'dismissed' | 'cta_click' | 'link_click' | 'carousel_next' | 'carousel_prev' | 'arrival_nudge' | 'abandoned' | 'render_failed';
|
|
11
|
+
/**
|
|
12
|
+
* The `state` each event rides on.
|
|
13
|
+
*
|
|
14
|
+
* <p>`state` is an engagement *span*, not a second verb — that is what the tracker's select map is
|
|
15
|
+
* for. A popup is one of the few things here with a genuine open/closed lifetime, so SELECT marks
|
|
16
|
+
* the viewer opening and UN_SELECT marks it closing, which makes dwell time answerable without
|
|
17
|
+
* reading `popup_event` at all. The two exceptions earn their place: a CTA is the conversion, and
|
|
18
|
+
* a failed render never opened.
|
|
19
|
+
*
|
|
20
|
+
* <p>Every SELECT must be matched by an UN_SELECT or the data shows spans that never end, which is
|
|
21
|
+
* why `abandoned` exists — closing the tab with a popup open is otherwise silent.
|
|
22
|
+
*/
|
|
23
|
+
export type PopupEventState = ANALYTICS_ACTION_STATE.INIT | ANALYTICS_ACTION_STATE.SELECT | ANALYTICS_ACTION_STATE.UNSELECT | ANALYTICS_ACTION_STATE.SUBMIT | ANALYTICS_ACTION_STATE.FAILURE;
|
|
24
|
+
export interface PopupInboxDeps {
|
|
25
|
+
cfg: FullConfig;
|
|
26
|
+
browserId: string;
|
|
27
|
+
/**
|
|
28
|
+
* Emits through the tracker's normal pipeline, which sits behind the *analytics* consent
|
|
29
|
+
* barrier. Popups themselves ride *marketing*, so a visitor who grants marketing and denies
|
|
30
|
+
* analytics sees popups that emit nothing. That is correct, and it means popup metrics
|
|
31
|
+
* under-count by design.
|
|
32
|
+
*/
|
|
33
|
+
emit: (event: PopupEvent, data: Record<string, unknown>, state: PopupEventState) => void;
|
|
34
|
+
/**
|
|
35
|
+
* Whether the visitor has a *recorded* marketing grant, read from the stored consent decision.
|
|
36
|
+
*
|
|
37
|
+
* <p>Distinct from the module's consent lifecycle: under the opt-out model a visitor who has not
|
|
38
|
+
* answered yet counts as granted, so `initialize()` is called before any decision exists. The
|
|
39
|
+
* server holds no matching grant in that state and rejects both the inbox fetch and the topic
|
|
40
|
+
* subscribe. Checking the stored decision here means the module stays dormant until the visitor
|
|
41
|
+
* actually says yes, instead of asking for something that is certain to be refused.
|
|
42
|
+
*/
|
|
43
|
+
hasMarketingConsent: () => boolean;
|
|
44
|
+
subscribeTopic: (destination: string, handler: (body: string) => void) => void;
|
|
45
|
+
unsubscribeTopic: (destination: string) => void;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* The visitor-facing half of CRM web popups: fetches the inbox, decides what to show, and reports
|
|
49
|
+
* what happened.
|
|
50
|
+
*
|
|
51
|
+
* <p>Implements {@link ConsentAwareModule} with `id: 'marketing'`, so the consent manager starts
|
|
52
|
+
* and stops it exactly as it does ad tracking. Nothing here runs — no fetch, no subscription, no
|
|
53
|
+
* DOM — until marketing consent is granted.
|
|
54
|
+
*/
|
|
55
|
+
export declare class PopupInbox implements ConsentAwareModule {
|
|
56
|
+
private readonly deps;
|
|
57
|
+
readonly id: "marketing";
|
|
58
|
+
readonly supportsRuntimeShutdown = true;
|
|
59
|
+
private initialized;
|
|
60
|
+
private items;
|
|
61
|
+
private etag;
|
|
62
|
+
/** In-memory only: popup bodies are large and stale ones must not outlive the page. */
|
|
63
|
+
private readonly contentCache;
|
|
64
|
+
private readonly viewer;
|
|
65
|
+
private topic;
|
|
66
|
+
/** Ids the visitor has already been shown a launcher for, so an arrival can be told from a re-read. */
|
|
67
|
+
private knownIds;
|
|
68
|
+
/** False until the first inbox read of this page load has landed — see {@link refresh}. */
|
|
69
|
+
private settled;
|
|
70
|
+
/** Epoch ms of the last push that opened itself; 0 means none this page. */
|
|
71
|
+
private lastPushOpenAt;
|
|
72
|
+
/** Popup API root for the stack `cfg.mode` selected. */
|
|
73
|
+
private readonly popupEndpoint;
|
|
74
|
+
constructor(deps: PopupInboxDeps);
|
|
75
|
+
initialize(): Promise<void>;
|
|
76
|
+
/** Revocation must leave nothing behind: no viewer, no cache, no subscription. */
|
|
77
|
+
shutdown(): Promise<void>;
|
|
78
|
+
purge(): Promise<void>;
|
|
79
|
+
isInitialized(): boolean;
|
|
80
|
+
getInbox(): WebPopupInboxState;
|
|
81
|
+
openViewer(id?: number): Promise<void>;
|
|
82
|
+
/**
|
|
83
|
+
* Revalidates against the server with `If-None-Match`. A 304 keeps whatever is already cached,
|
|
84
|
+
* which is what stops a long-lived tab from sitting on a popup that was dismissed elsewhere
|
|
85
|
+
* while still avoiding a full payload on every SPA route change.
|
|
86
|
+
*/
|
|
87
|
+
private refresh;
|
|
88
|
+
/**
|
|
89
|
+
* Reacts to popups that landed mid-session — by opening one if it is urgent enough, otherwise
|
|
90
|
+
* by shaking the launcher and chiming.
|
|
91
|
+
*
|
|
92
|
+
* <p>Deliberately silent on the first read of a page load and on the cache restore: those are
|
|
93
|
+
* the same inbox the visitor already has, and buzzing on every page view — or every SPA route
|
|
94
|
+
* change — would train them to ignore it. It also stays quiet while the viewer is open, since
|
|
95
|
+
* the popup on screen is already the notification. In practice that leaves the WebSocket push,
|
|
96
|
+
* which is exactly the case this exists for.
|
|
97
|
+
*
|
|
98
|
+
* <p><b>Whether an arrival takes over the screen is the author's call, not ours.</b> Seizing the
|
|
99
|
+
* screen of someone mid-task on the tenant's own site is expensive, so only HIGH and CRITICAL do
|
|
100
|
+
* it; everything else waits behind the launcher. The per-page-visit cap that governs
|
|
101
|
+
* {@link autoOpen} does not apply here — a push is a new event, not a replay of an inbox the
|
|
102
|
+
* visitor already had — so {@link POPUP_PUSH_OPEN_COOLDOWN_MS} is what stops a burst of sends
|
|
103
|
+
* from repeatedly taking over.
|
|
104
|
+
*/
|
|
105
|
+
private nudgeIfArrived;
|
|
106
|
+
private pushOpenAllowed;
|
|
107
|
+
private content;
|
|
108
|
+
/** Exactly one popup opens by itself per page visit; the rest wait behind the launcher. */
|
|
109
|
+
private autoOpen;
|
|
110
|
+
private handleOpened;
|
|
111
|
+
private handleCtaClick;
|
|
112
|
+
private dismiss;
|
|
113
|
+
/**
|
|
114
|
+
* @returns whether the server accepted the transition.
|
|
115
|
+
*
|
|
116
|
+
* <p>The status is checked, not just the absence of a throw. `fetch` rejects only on a network
|
|
117
|
+
* failure — a 401 or a 404 resolves normally — so a bare try/catch here reported every rejected
|
|
118
|
+
* lifecycle call as a success. Since these calls are made optimistically, that turned a server
|
|
119
|
+
* refusal into a local state that quietly disagreed with the server until the next reload put it
|
|
120
|
+
* back: the visitor marks everything read, reloads, and the unread badge returns.
|
|
121
|
+
*/
|
|
122
|
+
private post;
|
|
123
|
+
/**
|
|
124
|
+
* Forgets a popup the server will no longer serve.
|
|
125
|
+
*
|
|
126
|
+
* <p>A 404 from a lifecycle or content call is a verdict, not a hiccup: the entry is gone,
|
|
127
|
+
* expired, or dismissed elsewhere, and every future call for it will fail the same way. Holding
|
|
128
|
+
* on to it strands a phantom in the inbox that can never be read — it cannot be marked viewed,
|
|
129
|
+
* because the call that would mark it is the one returning 404 — so the unread badge survives
|
|
130
|
+
* every reload with no way for the visitor to clear it.
|
|
131
|
+
*/
|
|
132
|
+
private dropItem;
|
|
133
|
+
private listen;
|
|
134
|
+
private headers;
|
|
135
|
+
/** Single exit for analytics, so no call site can forget the state that goes with its event. */
|
|
136
|
+
private emit;
|
|
137
|
+
private meta;
|
|
138
|
+
private restoreCache;
|
|
139
|
+
private persistCache;
|
|
140
|
+
private alreadyAutoOpened;
|
|
141
|
+
private markAutoOpened;
|
|
142
|
+
private warn;
|
|
143
|
+
}
|