@nommos/core 0.0.11 → 0.0.13
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 +3 -2
- package/src/index.js +7 -10
- package/src/index.js.map +1 -1
- package/src/lib/constants.d.ts +1 -1
- package/src/lib/constants.js +12 -15
- package/src/lib/constants.js.map +1 -1
- package/src/lib/data-attribution.js +48 -52
- package/src/lib/data-attribution.js.map +1 -1
- package/src/lib/enums.js +6 -9
- package/src/lib/enums.js.map +1 -1
- package/src/lib/event-tracker.js +55 -45
- package/src/lib/event-tracker.js.map +1 -1
- package/src/lib/types.js +1 -2
- package/src/lib/utils.js +6 -12
- package/src/lib/utils.js.map +1 -1
- package/src/lib/webSocket-client.js +12 -18
- package/src/lib/webSocket-client.js.map +1 -1
package/package.json
CHANGED
package/src/index.js
CHANGED
|
@@ -1,11 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
tslib_1.__exportStar(require("./lib/data-attribution"), exports);
|
|
9
|
-
tslib_1.__exportStar(require("./lib/webSocket-client"), exports);
|
|
10
|
-
tslib_1.__exportStar(require("./lib/event-tracker"), exports);
|
|
1
|
+
export * from './lib/enums';
|
|
2
|
+
export * from './lib/types';
|
|
3
|
+
export * from './lib/utils';
|
|
4
|
+
export * from './lib/constants';
|
|
5
|
+
export * from './lib/data-attribution';
|
|
6
|
+
export * from './lib/webSocket-client';
|
|
7
|
+
export * from './lib/event-tracker';
|
|
11
8
|
//# sourceMappingURL=index.js.map
|
package/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../nommos/core/src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../nommos/core/src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC"}
|
package/src/lib/constants.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { UaDef } from './types';
|
|
2
|
-
export declare const CONFIG_ENDPOINT = "https://api.nommos.ai/api/
|
|
2
|
+
export declare const CONFIG_ENDPOINT = "https://api.nommos.ai/api/tracking-module/config";
|
|
3
3
|
export declare const SOURCE_KEY = "attr:source";
|
|
4
4
|
export declare const AFFILIATE_KEY = "attr:affiliate";
|
|
5
5
|
export declare const PARRAINAGE_KEY = "attr:parrainage";
|
package/src/lib/constants.js
CHANGED
|
@@ -1,17 +1,14 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
exports.ONE_DAY_MS = 24 * 60 * 60 * 1000;
|
|
13
|
-
exports.ANALYTICS_QUEUE = '/queue/user.activity';
|
|
14
|
-
exports.BROWSER_DEFS = [
|
|
1
|
+
export const CONFIG_ENDPOINT = 'https://api.nommos.ai/api/tracking-module/config';
|
|
2
|
+
export const SOURCE_KEY = 'attr:source';
|
|
3
|
+
export const AFFILIATE_KEY = 'attr:affiliate';
|
|
4
|
+
export const PARRAINAGE_KEY = 'attr:parrainage';
|
|
5
|
+
export const AFFILIATE_HISTORY_KEY = 'attr:affiliate:history'; // { v: string[], e: number }
|
|
6
|
+
export const ONE_YEAR_MS = 365 * 24 * 60 * 60 * 1000;
|
|
7
|
+
export const BROWSER_KEY = 'anon:device_id';
|
|
8
|
+
export const CONFIG_CACHE_KEY = 'nommos:config:cache';
|
|
9
|
+
export const ONE_DAY_MS = 24 * 60 * 60 * 1000;
|
|
10
|
+
export const ANALYTICS_QUEUE = '/queue/user.activity';
|
|
11
|
+
export const BROWSER_DEFS = [
|
|
15
12
|
[/Edg\/([\d.]+)/, 'Edge'],
|
|
16
13
|
[/OPR\/([\d.]+)/, 'Opera'],
|
|
17
14
|
[/Chrome\/([\d.]+)/, 'Chrome'], // Edge/Opera are checked first, so this is safe
|
|
@@ -30,7 +27,7 @@ exports.BROWSER_DEFS = [
|
|
|
30
27
|
[/Puffin\/([\d.]+)/, 'Puffin'],
|
|
31
28
|
[/DuckDuckGo\/([\d.]+)/, 'DuckDuckGo'],
|
|
32
29
|
];
|
|
33
|
-
|
|
30
|
+
export const OS_DEFS = [
|
|
34
31
|
[/Windows NT ([\d.]+)/i, 'Windows'],
|
|
35
32
|
[/Android\s+([\d.]+)/i, 'Android'],
|
|
36
33
|
[/iPhone OS (\d+[_\d.]*)/i, 'iOS', (m) => m[1].replace(/_/g, '.')],
|
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":"
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../../nommos/core/src/lib/constants.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,22 +1,20 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
const uuid_1 = require("uuid");
|
|
9
|
-
class DataAttribution {
|
|
1
|
+
import { BehaviorSubject, from, of } from 'rxjs';
|
|
2
|
+
import { catchError, map, switchMap } from 'rxjs/operators';
|
|
3
|
+
import { AFFILIATE_HISTORY_KEY, AFFILIATE_KEY, BROWSER_KEY, ONE_YEAR_MS, PARRAINAGE_KEY, SOURCE_KEY, } from './constants';
|
|
4
|
+
import { SITE_SOURCE } from './enums';
|
|
5
|
+
import { getQueryParams, normString } from './utils';
|
|
6
|
+
import { v4 as uuidv4 } from 'uuid';
|
|
7
|
+
export class DataAttribution {
|
|
10
8
|
constructor(urlTrackingKey) {
|
|
11
9
|
this.urlTrackingKey = urlTrackingKey;
|
|
12
10
|
this.latestAffiliateCandidate = null;
|
|
13
11
|
this.lastCapturedAffiliateIsNew = false;
|
|
14
12
|
this.currentUserIP = '';
|
|
15
|
-
this.loadedUserIp = new
|
|
13
|
+
this.loadedUserIp = new BehaviorSubject(false);
|
|
16
14
|
this.loadedUserIp$ = this.loadedUserIp.asObservable();
|
|
17
|
-
this.hasParrainOrAffiliate = new
|
|
15
|
+
this.hasParrainOrAffiliate = new BehaviorSubject(false);
|
|
18
16
|
this.hasParrainOrAffiliate$ = this.hasParrainOrAffiliate.asObservable();
|
|
19
|
-
this.stripUrlTrackedParams = new
|
|
17
|
+
this.stripUrlTrackedParams = new BehaviorSubject(false);
|
|
20
18
|
this.stripUrlTrackedParams$ = this.stripUrlTrackedParams.asObservable();
|
|
21
19
|
}
|
|
22
20
|
/**
|
|
@@ -40,10 +38,10 @@ class DataAttribution {
|
|
|
40
38
|
* Persistence: 1 year (via cookie), infinite via localStorage.
|
|
41
39
|
*/
|
|
42
40
|
get browserId() {
|
|
43
|
-
let v = localStorage.getItem(
|
|
41
|
+
let v = localStorage.getItem(BROWSER_KEY);
|
|
44
42
|
if (!v) {
|
|
45
|
-
v = (
|
|
46
|
-
localStorage.setItem(
|
|
43
|
+
v = uuidv4();
|
|
44
|
+
localStorage.setItem(BROWSER_KEY, v);
|
|
47
45
|
document.cookie = `device_id=${v}; path=/; max-age=${365 * 24 * 60 * 60}`;
|
|
48
46
|
}
|
|
49
47
|
return v;
|
|
@@ -62,26 +60,25 @@ class DataAttribution {
|
|
|
62
60
|
* Fetches for the current public address of the user (machine on which the application is used).
|
|
63
61
|
*/
|
|
64
62
|
fetchIp() {
|
|
65
|
-
return
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
this.currentUserIP = (_a = data === null || data === void 0 ? void 0 : data.ip) !== null && _a !== void 0 ? _a : '';
|
|
63
|
+
return from(fetch('https://api.ipify.org?format=json')).pipe(switchMap((res) => from(res.json())), // flatten inner promise
|
|
64
|
+
map((data) => {
|
|
65
|
+
this.currentUserIP = data?.ip ?? '';
|
|
69
66
|
}), // extract IP or ''
|
|
70
|
-
|
|
67
|
+
catchError(() => of()) // on any error, return ''
|
|
71
68
|
);
|
|
72
69
|
}
|
|
73
70
|
get source() {
|
|
74
|
-
const v = sessionStorage.getItem(
|
|
75
|
-
return v != null && v.length > 0 ? v :
|
|
71
|
+
const v = sessionStorage.getItem(SOURCE_KEY);
|
|
72
|
+
return v != null && v.length > 0 ? v : SITE_SOURCE.DIRECT;
|
|
76
73
|
}
|
|
77
74
|
/** Current affiliate from session; empty string if absent. */
|
|
78
75
|
get affiliate() {
|
|
79
|
-
const v = sessionStorage.getItem(
|
|
76
|
+
const v = sessionStorage.getItem(AFFILIATE_KEY);
|
|
80
77
|
return v != null && v.length > 0 ? v : null;
|
|
81
78
|
}
|
|
82
79
|
/** Current parrainage from session; empty string if absent. */
|
|
83
80
|
get parrainage() {
|
|
84
|
-
const v = sessionStorage.getItem(
|
|
81
|
+
const v = sessionStorage.getItem(PARRAINAGE_KEY);
|
|
85
82
|
return v != null && v.length > 0 ? v : null;
|
|
86
83
|
}
|
|
87
84
|
/**
|
|
@@ -94,31 +91,31 @@ class DataAttribution {
|
|
|
94
91
|
return this.lastCapturedAffiliateIsNew;
|
|
95
92
|
}
|
|
96
93
|
captureTrackingParamsFromCurrentUrl(stripFromUrl, currentUrl) {
|
|
97
|
-
const queryParams =
|
|
98
|
-
const source = queryParams
|
|
94
|
+
const queryParams = getQueryParams(currentUrl);
|
|
95
|
+
const source = queryParams?.[this.urlTrackingKey.source];
|
|
99
96
|
let shouldStrip = false;
|
|
100
97
|
// Capture source (session-scoped)
|
|
101
98
|
if (source !== undefined) {
|
|
102
|
-
sessionStorage.setItem(
|
|
99
|
+
sessionStorage.setItem(SOURCE_KEY, String(source).trim());
|
|
103
100
|
shouldStrip = true;
|
|
104
101
|
}
|
|
105
102
|
if (this.urlTrackingKey.parrainageKey || this.urlTrackingKey.affiliateKey) {
|
|
106
103
|
const parrainage = this.urlTrackingKey.parrainageKey
|
|
107
|
-
? queryParams
|
|
104
|
+
? queryParams?.[this.urlTrackingKey.parrainageKey]
|
|
108
105
|
: undefined; // parrainage code
|
|
109
106
|
const affiliate = this.urlTrackingKey.affiliateKey
|
|
110
|
-
? queryParams
|
|
107
|
+
? queryParams?.[this.urlTrackingKey.affiliateKey]
|
|
111
108
|
: undefined; // affiliate code
|
|
112
109
|
shouldStrip = affiliate !== undefined;
|
|
113
110
|
this.capturePartnerParams(parrainage, affiliate);
|
|
114
111
|
}
|
|
115
112
|
// Ensure default source
|
|
116
|
-
if (!sessionStorage.getItem(
|
|
117
|
-
sessionStorage.setItem(
|
|
113
|
+
if (!sessionStorage.getItem(SOURCE_KEY)) {
|
|
114
|
+
sessionStorage.setItem(SOURCE_KEY, SITE_SOURCE.DIRECT);
|
|
118
115
|
}
|
|
119
116
|
// Ensure affiliate key exists in session
|
|
120
|
-
if (!sessionStorage.getItem(
|
|
121
|
-
sessionStorage.setItem(
|
|
117
|
+
if (!sessionStorage.getItem(AFFILIATE_KEY)) {
|
|
118
|
+
sessionStorage.setItem(AFFILIATE_KEY, '');
|
|
122
119
|
}
|
|
123
120
|
// Optionally strip params we consumed
|
|
124
121
|
if (stripFromUrl && shouldStrip) {
|
|
@@ -133,7 +130,7 @@ class DataAttribution {
|
|
|
133
130
|
// Capture affiliate: keep current in session, and record to 1-year history
|
|
134
131
|
if (parrainage !== undefined) {
|
|
135
132
|
const rawParrainage = String(parrainage).trim();
|
|
136
|
-
sessionStorage.setItem(
|
|
133
|
+
sessionStorage.setItem(PARRAINAGE_KEY, rawParrainage);
|
|
137
134
|
}
|
|
138
135
|
}
|
|
139
136
|
if (this.urlTrackingKey.affiliateKey) {
|
|
@@ -141,8 +138,8 @@ class DataAttribution {
|
|
|
141
138
|
this.lastCapturedAffiliateIsNew = false;
|
|
142
139
|
if (affiliate !== undefined) {
|
|
143
140
|
const affiliateRef = String(affiliate).trim();
|
|
144
|
-
sessionStorage.setItem(
|
|
145
|
-
const lc =
|
|
141
|
+
sessionStorage.setItem(AFFILIATE_KEY, affiliateRef);
|
|
142
|
+
const lc = normString(affiliateRef);
|
|
146
143
|
if (lc.length > 0) {
|
|
147
144
|
const isInHistory = this.historyHas(lc);
|
|
148
145
|
this.latestAffiliateCandidate = lc;
|
|
@@ -161,53 +158,52 @@ class DataAttribution {
|
|
|
161
158
|
}
|
|
162
159
|
/* ---------- History (array with TTL in localStorage) ---------- */
|
|
163
160
|
getHistory() {
|
|
164
|
-
const raw = localStorage.getItem(
|
|
161
|
+
const raw = localStorage.getItem(AFFILIATE_HISTORY_KEY);
|
|
165
162
|
if (!raw)
|
|
166
163
|
return [];
|
|
167
164
|
try {
|
|
168
165
|
const parsed = JSON.parse(raw);
|
|
169
166
|
if (!parsed || typeof parsed.e !== 'number' || !Array.isArray(parsed.v)) {
|
|
170
|
-
localStorage.removeItem(
|
|
167
|
+
localStorage.removeItem(AFFILIATE_HISTORY_KEY);
|
|
171
168
|
return [];
|
|
172
169
|
}
|
|
173
170
|
if (Date.now() > parsed.e) {
|
|
174
|
-
localStorage.removeItem(
|
|
171
|
+
localStorage.removeItem(AFFILIATE_HISTORY_KEY);
|
|
175
172
|
return [];
|
|
176
173
|
}
|
|
177
174
|
// Ensure strings + lowercased normalization
|
|
178
|
-
return parsed.v.map((x) =>
|
|
175
|
+
return parsed.v.map((x) => normString(String(x)));
|
|
179
176
|
}
|
|
180
|
-
catch
|
|
181
|
-
localStorage.removeItem(
|
|
177
|
+
catch {
|
|
178
|
+
localStorage.removeItem(AFFILIATE_HISTORY_KEY);
|
|
182
179
|
return [];
|
|
183
180
|
}
|
|
184
181
|
}
|
|
185
182
|
setHistory(arr) {
|
|
186
|
-
const unique = Array.from(new Set(arr.map(
|
|
187
|
-
const payload = { v: unique, e: Date.now() +
|
|
188
|
-
localStorage.setItem(
|
|
183
|
+
const unique = Array.from(new Set(arr.map(normString)));
|
|
184
|
+
const payload = { v: unique, e: Date.now() + ONE_YEAR_MS };
|
|
185
|
+
localStorage.setItem(AFFILIATE_HISTORY_KEY, JSON.stringify(payload));
|
|
189
186
|
}
|
|
190
187
|
historyHas(codeLc) {
|
|
191
|
-
return this.getHistory().includes(
|
|
188
|
+
return this.getHistory().includes(normString(codeLc));
|
|
192
189
|
}
|
|
193
190
|
pushHistory(codeLc) {
|
|
194
191
|
const hist = this.getHistory();
|
|
195
|
-
if (!hist.includes(
|
|
196
|
-
hist.push(
|
|
192
|
+
if (!hist.includes(normString(codeLc))) {
|
|
193
|
+
hist.push(normString(codeLc));
|
|
197
194
|
}
|
|
198
195
|
// Always refresh TTL (rolling 1-year window)
|
|
199
196
|
this.setHistory(hist);
|
|
200
197
|
}
|
|
201
198
|
/** Explicit reset if needed SOURCE_KEY. */
|
|
202
199
|
clearSourceSession() {
|
|
203
|
-
sessionStorage.removeItem(
|
|
200
|
+
sessionStorage.removeItem(SOURCE_KEY);
|
|
204
201
|
}
|
|
205
202
|
clearAffiliateSession() {
|
|
206
|
-
sessionStorage.removeItem(
|
|
203
|
+
sessionStorage.removeItem(AFFILIATE_KEY);
|
|
207
204
|
}
|
|
208
205
|
clearAffiliateHistory() {
|
|
209
|
-
localStorage.removeItem(
|
|
206
|
+
localStorage.removeItem(AFFILIATE_HISTORY_KEY);
|
|
210
207
|
}
|
|
211
208
|
}
|
|
212
|
-
exports.DataAttribution = DataAttribution;
|
|
213
209
|
//# sourceMappingURL=data-attribution.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data-attribution.js","sourceRoot":"","sources":["../../../../../nommos/core/src/lib/data-attribution.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"data-attribution.js","sourceRoot":"","sources":["../../../../../nommos/core/src/lib/data-attribution.ts"],"names":[],"mappings":"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"}
|
package/src/lib/enums.js
CHANGED
|
@@ -1,8 +1,5 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.SITE_SOURCE = exports.ANALYTICS_ACTION_STATE = exports.ANALYTICS_ACTION = void 0;
|
|
4
1
|
/** Analytics Actions carried out by user to be tracked */
|
|
5
|
-
var ANALYTICS_ACTION;
|
|
2
|
+
export var ANALYTICS_ACTION;
|
|
6
3
|
(function (ANALYTICS_ACTION) {
|
|
7
4
|
ANALYTICS_ACTION["SIGNIN"] = "SIGNIN";
|
|
8
5
|
ANALYTICS_ACTION["REGISTRATION"] = "REGISTRATION";
|
|
@@ -13,9 +10,9 @@ var ANALYTICS_ACTION;
|
|
|
13
10
|
ANALYTICS_ACTION["DEPOSIT"] = "DEPOSIT";
|
|
14
11
|
ANALYTICS_ACTION["VISIT"] = "VISIT";
|
|
15
12
|
ANALYTICS_ACTION["COUPON"] = "COUPON";
|
|
16
|
-
})(ANALYTICS_ACTION || (
|
|
13
|
+
})(ANALYTICS_ACTION || (ANALYTICS_ACTION = {}));
|
|
17
14
|
/** States of analytics actions carried out by user */
|
|
18
|
-
var ANALYTICS_ACTION_STATE;
|
|
15
|
+
export var ANALYTICS_ACTION_STATE;
|
|
19
16
|
(function (ANALYTICS_ACTION_STATE) {
|
|
20
17
|
ANALYTICS_ACTION_STATE["SELECT"] = "SELECT";
|
|
21
18
|
ANALYTICS_ACTION_STATE["UNSELECT"] = "UN_SELECT";
|
|
@@ -23,9 +20,9 @@ var ANALYTICS_ACTION_STATE;
|
|
|
23
20
|
ANALYTICS_ACTION_STATE["SUCCESS"] = "SUCCESS";
|
|
24
21
|
ANALYTICS_ACTION_STATE["FAILURE"] = "FAILURE";
|
|
25
22
|
ANALYTICS_ACTION_STATE["INIT"] = "INIT";
|
|
26
|
-
})(ANALYTICS_ACTION_STATE || (
|
|
23
|
+
})(ANALYTICS_ACTION_STATE || (ANALYTICS_ACTION_STATE = {}));
|
|
27
24
|
/** Source from which the user originates to access the current site. */
|
|
28
|
-
var SITE_SOURCE;
|
|
25
|
+
export var SITE_SOURCE;
|
|
29
26
|
(function (SITE_SOURCE) {
|
|
30
27
|
SITE_SOURCE["FACEBOOK"] = "FACEBOOK";
|
|
31
28
|
SITE_SOURCE["INSTAGRAM"] = "INSTAGRAM";
|
|
@@ -33,5 +30,5 @@ var SITE_SOURCE;
|
|
|
33
30
|
SITE_SOURCE["TELEGRAM"] = "TELEGRAM";
|
|
34
31
|
SITE_SOURCE["DIRECT"] = "DIRECT";
|
|
35
32
|
SITE_SOURCE["SMS"] = "SMS";
|
|
36
|
-
})(SITE_SOURCE || (
|
|
33
|
+
})(SITE_SOURCE || (SITE_SOURCE = {}));
|
|
37
34
|
//# sourceMappingURL=enums.js.map
|
package/src/lib/enums.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"enums.js","sourceRoot":"","sources":["../../../../../nommos/core/src/lib/enums.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"enums.js","sourceRoot":"","sources":["../../../../../nommos/core/src/lib/enums.ts"],"names":[],"mappings":"AAAA,2DAA2D;AAC3D,MAAM,CAAN,IAAY,gBAUX;AAVD,WAAY,gBAAgB;IAC1B,qCAAiB,CAAA;IACjB,iDAA6B,CAAA;IAC7B,+BAAW,CAAA;IACX,iCAAa,CAAA;IACb,6CAAyB,CAAA;IACzB,mCAAe,CAAA;IACf,uCAAmB,CAAA;IACnB,mCAAe,CAAA;IACf,qCAAiB,CAAA;AACnB,CAAC,EAVW,gBAAgB,KAAhB,gBAAgB,QAU3B;AAED,uDAAuD;AACvD,MAAM,CAAN,IAAY,sBAOX;AAPD,WAAY,sBAAsB;IAChC,2CAAiB,CAAA;IACjB,gDAAsB,CAAA;IACtB,2CAAiB,CAAA;IACjB,6CAAmB,CAAA;IACnB,6CAAmB,CAAA;IACnB,uCAAa,CAAA;AACf,CAAC,EAPW,sBAAsB,KAAtB,sBAAsB,QAOjC;AAED,wEAAwE;AACxE,MAAM,CAAN,IAAY,WAOX;AAPD,WAAY,WAAW;IACrB,oCAAqB,CAAA;IACrB,sCAAuB,CAAA;IACvB,kCAAmB,CAAA;IACnB,oCAAqB,CAAA;IACrB,gCAAiB,CAAA;IACjB,0BAAW,CAAA;AACb,CAAC,EAPW,WAAW,KAAX,WAAW,QAOtB"}
|
package/src/lib/event-tracker.js
CHANGED
|
@@ -1,13 +1,11 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
const constants_1 = require("./constants");
|
|
10
|
-
class EventTracker {
|
|
1
|
+
import { forkJoin, from, of, Subject } from 'rxjs';
|
|
2
|
+
import { catchError, map, switchMap } from 'rxjs/operators';
|
|
3
|
+
import { WebSocketClient } from './webSocket-client';
|
|
4
|
+
import { DataAttribution } from './data-attribution';
|
|
5
|
+
import { ANALYTICS_ACTION_STATE } from './enums';
|
|
6
|
+
import { userAgentInfo } from './utils';
|
|
7
|
+
import { CONFIG_ENDPOINT, CONFIG_CACHE_KEY, ONE_DAY_MS } from './constants';
|
|
8
|
+
export class EventTracker {
|
|
11
9
|
/**
|
|
12
10
|
* Creates a new analytics tracker instance and initializes the attribution
|
|
13
11
|
* engine and WebSocket connection if tracking is enabled.
|
|
@@ -17,7 +15,7 @@ class EventTracker {
|
|
|
17
15
|
this.ipSubscription = null;
|
|
18
16
|
this.eventSubscription = null;
|
|
19
17
|
this.webSocketConnectedSubscription = null;
|
|
20
|
-
this.analyticsEvents = new
|
|
18
|
+
this.analyticsEvents = new Subject();
|
|
21
19
|
this.analyticsEvents$ = this.analyticsEvents.asObservable();
|
|
22
20
|
/**
|
|
23
21
|
* Internal state map used to track SELECT/UNSELECT status of toggleable actions.
|
|
@@ -33,9 +31,11 @@ class EventTracker {
|
|
|
33
31
|
DEPOSIT: false,
|
|
34
32
|
COUPON: false,
|
|
35
33
|
};
|
|
36
|
-
this.cfg =
|
|
37
|
-
|
|
38
|
-
|
|
34
|
+
this.cfg = {
|
|
35
|
+
...config,
|
|
36
|
+
};
|
|
37
|
+
this.ws = new WebSocketClient();
|
|
38
|
+
this.da = new DataAttribution(urlTrackingKey);
|
|
39
39
|
this.init(this.cfg);
|
|
40
40
|
}
|
|
41
41
|
/**
|
|
@@ -73,26 +73,39 @@ class EventTracker {
|
|
|
73
73
|
* @param userId - User identifier
|
|
74
74
|
* @param currentUrl - URL of the page where the action was carried out by the user
|
|
75
75
|
*/
|
|
76
|
-
trackEvent(action, state =
|
|
77
|
-
if (state ===
|
|
78
|
-
const newState = selected
|
|
79
|
-
|
|
80
|
-
|
|
76
|
+
trackEvent(action, state = ANALYTICS_ACTION_STATE.SELECT, data = null, toggle = true, selected = null, userId = '', currentUrl = '') {
|
|
77
|
+
if (state === ANALYTICS_ACTION_STATE.SELECT) {
|
|
78
|
+
const newState = selected ??
|
|
79
|
+
(toggle
|
|
80
|
+
? !this.getActionSelectState(action)
|
|
81
|
+
: this.getActionSelectState(action));
|
|
81
82
|
this.setActionSelectState(action, newState);
|
|
82
83
|
state = newState
|
|
83
|
-
?
|
|
84
|
-
:
|
|
84
|
+
? ANALYTICS_ACTION_STATE.SELECT
|
|
85
|
+
: ANALYTICS_ACTION_STATE.UNSELECT;
|
|
85
86
|
}
|
|
86
|
-
else if (state ===
|
|
87
|
+
else if (state === ANALYTICS_ACTION_STATE.UNSELECT) {
|
|
87
88
|
this.setActionSelectState(action, false);
|
|
88
89
|
}
|
|
89
|
-
const { channel, os, browser } =
|
|
90
|
-
const eventTracked =
|
|
91
|
-
|
|
90
|
+
const { channel, os, browser } = userAgentInfo(navigator.userAgent || '');
|
|
91
|
+
const eventTracked = {
|
|
92
|
+
ip: this.da.userIp,
|
|
93
|
+
channel,
|
|
94
|
+
timeStamp: Date.now(),
|
|
95
|
+
source: this.da.source,
|
|
96
|
+
action,
|
|
97
|
+
state,
|
|
98
|
+
uid: userId,
|
|
99
|
+
bid: this.da.browserId,
|
|
100
|
+
brand_id: this.cfg.brand_id,
|
|
101
|
+
meta: {
|
|
92
102
|
os,
|
|
93
103
|
browser,
|
|
94
104
|
page: currentUrl,
|
|
95
|
-
}
|
|
105
|
+
},
|
|
106
|
+
...(data && { data }),
|
|
107
|
+
...(this.da.affiliate && { affiliateCode: this.da.affiliate }),
|
|
108
|
+
};
|
|
96
109
|
console.log(eventTracked);
|
|
97
110
|
this.analyticsEvents.next(eventTracked);
|
|
98
111
|
}
|
|
@@ -100,7 +113,7 @@ class EventTracker {
|
|
|
100
113
|
if (cfg.token) {
|
|
101
114
|
const ipFetch$ = this.da.fetchIp();
|
|
102
115
|
const configFetch$ = this.fetchConfig(cfg.token);
|
|
103
|
-
this.ipSubscription =
|
|
116
|
+
this.ipSubscription = forkJoin([ipFetch$, configFetch$]).subscribe(() => {
|
|
104
117
|
this.da.setLoadedIP();
|
|
105
118
|
if (!this.cfg.enableTracking) {
|
|
106
119
|
return;
|
|
@@ -125,7 +138,6 @@ class EventTracker {
|
|
|
125
138
|
});
|
|
126
139
|
this.webSocketConnectedSubscription =
|
|
127
140
|
this.ws.stompAnalyticsConnected$.subscribe((connected) => {
|
|
128
|
-
var _a;
|
|
129
141
|
if (connected) {
|
|
130
142
|
// Try to gracefully close on tab unload
|
|
131
143
|
window.addEventListener('beforeunload', () => {
|
|
@@ -136,34 +148,34 @@ class EventTracker {
|
|
|
136
148
|
console.error('[DME Analytics SDK] disconnect error:', error);
|
|
137
149
|
}
|
|
138
150
|
});
|
|
139
|
-
|
|
151
|
+
this.webSocketConnectedSubscription?.unsubscribe();
|
|
140
152
|
}
|
|
141
153
|
});
|
|
142
154
|
}
|
|
143
155
|
}
|
|
144
156
|
fetchConfig(token) {
|
|
145
157
|
// 1. Check Cache First
|
|
146
|
-
const cached = localStorage.getItem(`${
|
|
158
|
+
const cached = localStorage.getItem(`${CONFIG_CACHE_KEY}:${token}`);
|
|
147
159
|
if (cached) {
|
|
148
160
|
try {
|
|
149
161
|
const { timestamp, data } = JSON.parse(cached);
|
|
150
|
-
if (Date.now() - timestamp <
|
|
162
|
+
if (Date.now() - timestamp < ONE_DAY_MS) {
|
|
151
163
|
console.log('[Nommos Tracker] Using cached config');
|
|
152
164
|
this.applyConfig(data);
|
|
153
|
-
return
|
|
165
|
+
return of(null);
|
|
154
166
|
}
|
|
155
167
|
}
|
|
156
168
|
catch (e) {
|
|
157
|
-
localStorage.removeItem(`${
|
|
169
|
+
localStorage.removeItem(`${CONFIG_CACHE_KEY}:${token}`);
|
|
158
170
|
}
|
|
159
171
|
}
|
|
160
|
-
const url = `${
|
|
161
|
-
return
|
|
172
|
+
const url = `${CONFIG_ENDPOINT}/${token}`;
|
|
173
|
+
return from(fetch(url)).pipe(switchMap((res) => {
|
|
162
174
|
if (!res.ok) {
|
|
163
175
|
throw new Error(`Failed to fetch config: ${res.statusText}`);
|
|
164
176
|
}
|
|
165
|
-
return
|
|
166
|
-
}),
|
|
177
|
+
return from(res.json());
|
|
178
|
+
}), map((data) => {
|
|
167
179
|
this.applyConfig(data);
|
|
168
180
|
// 2. Save to Cache on Success
|
|
169
181
|
if (this.cfg.enableTracking !== false) {
|
|
@@ -171,11 +183,11 @@ class EventTracker {
|
|
|
171
183
|
timestamp: Date.now(),
|
|
172
184
|
data
|
|
173
185
|
};
|
|
174
|
-
localStorage.setItem(`${
|
|
186
|
+
localStorage.setItem(`${CONFIG_CACHE_KEY}:${token}`, JSON.stringify(cachePayload));
|
|
175
187
|
}
|
|
176
|
-
}),
|
|
188
|
+
}), catchError((err) => {
|
|
177
189
|
console.error('[Nommos Tracker] Error fetching from the endpoint:', err);
|
|
178
|
-
return
|
|
190
|
+
return of(null);
|
|
179
191
|
}));
|
|
180
192
|
}
|
|
181
193
|
applyConfig(data) {
|
|
@@ -192,11 +204,9 @@ class EventTracker {
|
|
|
192
204
|
this.cfg.brand_id = data.brand_id;
|
|
193
205
|
}
|
|
194
206
|
unsubscribe() {
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
(_c = this.webSocketConnectedSubscription) === null || _c === void 0 ? void 0 : _c.unsubscribe();
|
|
207
|
+
this.ipSubscription?.unsubscribe();
|
|
208
|
+
this.eventSubscription?.unsubscribe();
|
|
209
|
+
this.webSocketConnectedSubscription?.unsubscribe();
|
|
199
210
|
}
|
|
200
211
|
}
|
|
201
|
-
exports.EventTracker = EventTracker;
|
|
202
212
|
//# sourceMappingURL=event-tracker.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event-tracker.js","sourceRoot":"","sources":["../../../../../nommos/core/src/lib/event-tracker.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"event-tracker.js","sourceRoot":"","sources":["../../../../../nommos/core/src/lib/event-tracker.ts"],"names":[],"mappings":"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"}
|
package/src/lib/types.js
CHANGED
package/src/lib/utils.js
CHANGED
|
@@ -1,15 +1,11 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.userAgentInfo = exports.normString = void 0;
|
|
4
|
-
exports.getQueryParams = getQueryParams;
|
|
5
|
-
const constants_1 = require("./constants");
|
|
1
|
+
import { BROWSER_DEFS, OS_DEFS } from './constants';
|
|
6
2
|
/**
|
|
7
3
|
* Gets all the query parameters found on a given url
|
|
8
4
|
*
|
|
9
5
|
* @param url - the url from which we want to get the query parameters from
|
|
10
6
|
* @returns A record of query parameters' name and value
|
|
11
7
|
*/
|
|
12
|
-
function getQueryParams(url) {
|
|
8
|
+
export function getQueryParams(url) {
|
|
13
9
|
const params = {};
|
|
14
10
|
const urlObj = new URL(url);
|
|
15
11
|
urlObj.searchParams.forEach((value, key) => {
|
|
@@ -26,19 +22,17 @@ function getQueryParams(url) {
|
|
|
26
22
|
* @param s - string to convert
|
|
27
23
|
* @returns normalized string in lowerCase and no trailing space.
|
|
28
24
|
*/
|
|
29
|
-
const normString = (s) => s.trim().toLowerCase();
|
|
30
|
-
exports.normString = normString;
|
|
25
|
+
export const normString = (s) => s.trim().toLowerCase();
|
|
31
26
|
/**
|
|
32
27
|
* Extract the browser, the operating system and the channel (3 or 7) from the user agent of a device
|
|
33
28
|
* @param ua - User Agent of the device
|
|
34
29
|
* @returns An Object with the browser, operating system and the channel used by the user agent.
|
|
35
30
|
*/
|
|
36
|
-
const userAgentInfo = (ua) => ({
|
|
37
|
-
browser: detect(ua,
|
|
38
|
-
os: detect(ua,
|
|
31
|
+
export const userAgentInfo = (ua) => ({
|
|
32
|
+
browser: detect(ua, BROWSER_DEFS),
|
|
33
|
+
os: detect(ua, OS_DEFS),
|
|
39
34
|
channel: /Mobi|Android|iPhone|iPad|iPod|Windows Phone/i.test(ua) ? 3 : 7,
|
|
40
35
|
});
|
|
41
|
-
exports.userAgentInfo = userAgentInfo;
|
|
42
36
|
const detect = (ua, defs, fallback = 'Unknown') => {
|
|
43
37
|
for (const [re, name, map] of defs) {
|
|
44
38
|
const m = new RegExp(re).exec(ua);
|
package/src/lib/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../../nommos/core/src/lib/utils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../../nommos/core/src/lib/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAIpD;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,GAAW;IACxC,MAAM,MAAM,GAA2B,EAAE,CAAC;IAC1C,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;IAE5B,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;QACzC,iCAAiC;QACjC,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,SAAS,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAClD,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QACtB,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;AAEhE;;;;GAIG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAC3B,EAAU,EACuC,EAAE,CAAC,CAAC;IACrD,OAAO,EAAE,MAAM,CAAC,EAAE,EAAE,YAAY,CAAC;IACjC,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC;IACvB,OAAO,EAAE,8CAA8C,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CACzE,CAAC,CAAC;AACH,MAAM,MAAM,GAAG,CAAC,EAAU,EAAE,IAAa,EAAE,QAAQ,GAAG,SAAS,EAAU,EAAE;IACzE,KAAK,MAAM,CAAC,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC;QACnC,MAAM,CAAC,GAAG,IAAI,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAClC,IAAI,CAAC,EAAE,CAAC;YACN,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC9B,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;QACnC,CAAC;IACH,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAC"}
|
|
@@ -1,9 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
const stompjs_1 = require("@stomp/stompjs");
|
|
5
|
-
const rxjs_1 = require("rxjs");
|
|
6
|
-
const constants_1 = require("./constants");
|
|
1
|
+
import { Client } from '@stomp/stompjs';
|
|
2
|
+
import { BehaviorSubject } from 'rxjs';
|
|
3
|
+
import { ANALYTICS_QUEUE } from './constants';
|
|
7
4
|
/**
|
|
8
5
|
* WebSocketClient
|
|
9
6
|
* ----------------
|
|
@@ -17,7 +14,7 @@ const constants_1 = require("./constants");
|
|
|
17
14
|
* Intended to be used inside applications where analytics events must
|
|
18
15
|
* never be lost due to temporary connection issues.
|
|
19
16
|
*/
|
|
20
|
-
class WebSocketClient {
|
|
17
|
+
export class WebSocketClient {
|
|
21
18
|
constructor() {
|
|
22
19
|
/**
|
|
23
20
|
* The underlying STOMP client instance.
|
|
@@ -29,7 +26,7 @@ class WebSocketClient {
|
|
|
29
26
|
* becomes connected. They are automatically flushed on connection.
|
|
30
27
|
*/
|
|
31
28
|
this.pendingEvents = [];
|
|
32
|
-
this.stompAnalyticsConnected = new
|
|
29
|
+
this.stompAnalyticsConnected = new BehaviorSubject(false);
|
|
33
30
|
/**
|
|
34
31
|
* Reactive connection state for consumers who want to listen for
|
|
35
32
|
* connection availability changes.
|
|
@@ -46,15 +43,14 @@ class WebSocketClient {
|
|
|
46
43
|
* @returns A configured but not yet activated STOMP `Client` instance.
|
|
47
44
|
*/
|
|
48
45
|
createStompClient(cfg) {
|
|
49
|
-
var _a, _b, _c, _d;
|
|
50
46
|
console.log('[Nommos Tracker] Rabbit Configs... ', cfg);
|
|
51
|
-
const client = new
|
|
52
|
-
brokerURL:
|
|
47
|
+
const client = new Client({
|
|
48
|
+
brokerURL: cfg.rabbitUrl ?? '',
|
|
53
49
|
connectHeaders: {
|
|
54
|
-
login:
|
|
55
|
-
passcode:
|
|
50
|
+
login: cfg.username ?? '',
|
|
51
|
+
passcode: cfg.password ?? '',
|
|
56
52
|
},
|
|
57
|
-
reconnectDelay:
|
|
53
|
+
reconnectDelay: cfg.reconnectDelay ?? 5000,
|
|
58
54
|
});
|
|
59
55
|
if (cfg.mode === 'dev') {
|
|
60
56
|
client.debug = (msg) => console.log('[Nommos Tracker]', msg);
|
|
@@ -103,13 +99,12 @@ class WebSocketClient {
|
|
|
103
99
|
* @param payload The analytics event to send.
|
|
104
100
|
*/
|
|
105
101
|
publishAnalyticsMessage(payload) {
|
|
106
|
-
|
|
107
|
-
if (!((_a = this.analyticsClient) === null || _a === void 0 ? void 0 : _a.connected) || this.analyticsClient == null) {
|
|
102
|
+
if (!this.analyticsClient?.connected || this.analyticsClient == null) {
|
|
108
103
|
this.pendingEvents.push(payload);
|
|
109
104
|
return;
|
|
110
105
|
}
|
|
111
106
|
this.analyticsClient.publish({
|
|
112
|
-
destination:
|
|
107
|
+
destination: ANALYTICS_QUEUE,
|
|
113
108
|
headers: { 'content-type': 'application/json' },
|
|
114
109
|
body: JSON.stringify(payload),
|
|
115
110
|
});
|
|
@@ -128,5 +123,4 @@ class WebSocketClient {
|
|
|
128
123
|
}
|
|
129
124
|
}
|
|
130
125
|
}
|
|
131
|
-
exports.WebSocketClient = WebSocketClient;
|
|
132
126
|
//# 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":"
|
|
1
|
+
{"version":3,"file":"webSocket-client.js","sourceRoot":"","sources":["../../../../../nommos/core/src/lib/webSocket-client.ts"],"names":[],"mappings":"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"}
|