@tracelog/lib 2.1.0 → 2.1.1-rc.75.2
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/dist/browser/tracelog.esm.js +341 -302
- package/dist/browser/tracelog.esm.js.map +1 -1
- package/dist/browser/tracelog.js +1 -1
- package/dist/browser/tracelog.js.map +1 -1
- package/dist/public-api.cjs +84 -9
- package/dist/public-api.cjs.map +1 -1
- package/dist/public-api.d.mts +2 -0
- package/dist/public-api.d.ts +2 -0
- package/dist/public-api.js +84 -9
- package/dist/public-api.js.map +1 -1
- package/package.json +1 -1
package/dist/public-api.d.mts
CHANGED
package/dist/public-api.d.ts
CHANGED
package/dist/public-api.js
CHANGED
|
@@ -718,7 +718,7 @@ var init_performance_constants = __esm({
|
|
|
718
718
|
var version;
|
|
719
719
|
var init_package = __esm({
|
|
720
720
|
"package.json"() {
|
|
721
|
-
version = "2.
|
|
721
|
+
version = "2.1.1";
|
|
722
722
|
}
|
|
723
723
|
});
|
|
724
724
|
|
|
@@ -827,6 +827,61 @@ var init_mode_utils = __esm({
|
|
|
827
827
|
}
|
|
828
828
|
});
|
|
829
829
|
|
|
830
|
+
// src/utils/browser/referrer.utils.ts
|
|
831
|
+
var COMPOUND_TLDS, getRootDomain, isSameDomain, getExternalReferrer;
|
|
832
|
+
var init_referrer_utils = __esm({
|
|
833
|
+
"src/utils/browser/referrer.utils.ts"() {
|
|
834
|
+
init_logging_utils();
|
|
835
|
+
COMPOUND_TLDS = [
|
|
836
|
+
"co.uk",
|
|
837
|
+
"org.uk",
|
|
838
|
+
"com.au",
|
|
839
|
+
"net.au",
|
|
840
|
+
"com.br",
|
|
841
|
+
"co.nz",
|
|
842
|
+
"co.jp",
|
|
843
|
+
"com.mx",
|
|
844
|
+
"co.in",
|
|
845
|
+
"com.cn",
|
|
846
|
+
"co.za"
|
|
847
|
+
];
|
|
848
|
+
getRootDomain = (hostname) => {
|
|
849
|
+
const parts = hostname.toLowerCase().split(".");
|
|
850
|
+
if (parts.length <= 2) {
|
|
851
|
+
return hostname.toLowerCase();
|
|
852
|
+
}
|
|
853
|
+
const lastTwo = parts.slice(-2).join(".");
|
|
854
|
+
if (COMPOUND_TLDS.includes(lastTwo)) {
|
|
855
|
+
return parts.slice(-3).join(".");
|
|
856
|
+
}
|
|
857
|
+
return parts.slice(-2).join(".");
|
|
858
|
+
};
|
|
859
|
+
isSameDomain = (hostname1, hostname2) => {
|
|
860
|
+
if (hostname1 === hostname2) {
|
|
861
|
+
return true;
|
|
862
|
+
}
|
|
863
|
+
return getRootDomain(hostname1) === getRootDomain(hostname2);
|
|
864
|
+
};
|
|
865
|
+
getExternalReferrer = () => {
|
|
866
|
+
const referrer = document.referrer;
|
|
867
|
+
if (!referrer) {
|
|
868
|
+
return "Direct";
|
|
869
|
+
}
|
|
870
|
+
try {
|
|
871
|
+
const referrerHostname = new URL(referrer).hostname.toLowerCase();
|
|
872
|
+
const currentHostname = window.location.hostname.toLowerCase();
|
|
873
|
+
if (isSameDomain(referrerHostname, currentHostname)) {
|
|
874
|
+
return "Direct";
|
|
875
|
+
}
|
|
876
|
+
return referrer;
|
|
877
|
+
} catch (error) {
|
|
878
|
+
log("debug", "Failed to parse referrer URL, using raw value", { error, data: { referrer } });
|
|
879
|
+
return referrer;
|
|
880
|
+
}
|
|
881
|
+
};
|
|
882
|
+
}
|
|
883
|
+
});
|
|
884
|
+
|
|
830
885
|
// src/utils/browser/utm-params.utils.ts
|
|
831
886
|
var getUTMParameters;
|
|
832
887
|
var init_utm_params_utils = __esm({
|
|
@@ -853,6 +908,7 @@ var init_browser = __esm({
|
|
|
853
908
|
"src/utils/browser/index.ts"() {
|
|
854
909
|
init_device_detector_utils();
|
|
855
910
|
init_mode_utils();
|
|
911
|
+
init_referrer_utils();
|
|
856
912
|
init_utm_params_utils();
|
|
857
913
|
}
|
|
858
914
|
});
|
|
@@ -3504,7 +3560,6 @@ var init_event_manager = __esm({
|
|
|
3504
3560
|
return queue;
|
|
3505
3561
|
}
|
|
3506
3562
|
buildEventPayload(data) {
|
|
3507
|
-
const isSessionStart = data.type === "session_start" /* SESSION_START */;
|
|
3508
3563
|
const currentPageUrl = data.page_url ?? this.get("pageUrl");
|
|
3509
3564
|
const timestamp = this.timeManager.now();
|
|
3510
3565
|
const validation = this.timeManager.validateTimestamp(timestamp);
|
|
@@ -3513,12 +3568,14 @@ var init_event_manager = __esm({
|
|
|
3513
3568
|
data: { type: data.type, error: validation.error }
|
|
3514
3569
|
});
|
|
3515
3570
|
}
|
|
3571
|
+
const sessionReferrer = this.get("sessionReferrer");
|
|
3572
|
+
const sessionUtm = this.get("sessionUtm");
|
|
3516
3573
|
let payload = {
|
|
3517
3574
|
id: generateEventId(),
|
|
3518
3575
|
type: data.type,
|
|
3519
3576
|
page_url: currentPageUrl,
|
|
3520
3577
|
timestamp,
|
|
3521
|
-
...
|
|
3578
|
+
...sessionReferrer && { referrer: sessionReferrer },
|
|
3522
3579
|
...data.from_page_url && { from_page_url: data.from_page_url },
|
|
3523
3580
|
...data.scroll_data && { scroll_data: data.scroll_data },
|
|
3524
3581
|
...data.click_data && { click_data: data.click_data },
|
|
@@ -3527,7 +3584,7 @@ var init_event_manager = __esm({
|
|
|
3527
3584
|
...data.error_data && { error_data: data.error_data },
|
|
3528
3585
|
...data.viewport_data && { viewport_data: data.viewport_data },
|
|
3529
3586
|
...data.page_view && { page_view: data.page_view },
|
|
3530
|
-
...
|
|
3587
|
+
...sessionUtm && { utm: sessionUtm }
|
|
3531
3588
|
};
|
|
3532
3589
|
const collectApiUrls = this.get("collectApiUrls");
|
|
3533
3590
|
const hasCustomBackend = Boolean(collectApiUrls?.custom);
|
|
@@ -4056,10 +4113,12 @@ var init_session_manager = __esm({
|
|
|
4056
4113
|
}
|
|
4057
4114
|
return storedSession.id;
|
|
4058
4115
|
}
|
|
4059
|
-
persistSession(sessionId, lastActivity = Date.now()) {
|
|
4116
|
+
persistSession(sessionId, lastActivity = Date.now(), referrer, utm) {
|
|
4060
4117
|
this.saveStoredSession({
|
|
4061
4118
|
id: sessionId,
|
|
4062
|
-
lastActivity
|
|
4119
|
+
lastActivity,
|
|
4120
|
+
...referrer && { referrer },
|
|
4121
|
+
...utm && { utm }
|
|
4063
4122
|
});
|
|
4064
4123
|
}
|
|
4065
4124
|
clearStoredSession() {
|
|
@@ -4151,17 +4210,31 @@ var init_session_manager = __esm({
|
|
|
4151
4210
|
}
|
|
4152
4211
|
const recoveredSessionId = this.recoverSession();
|
|
4153
4212
|
const sessionId = recoveredSessionId ?? this.generateSessionId();
|
|
4213
|
+
let sessionReferrer;
|
|
4214
|
+
let sessionUtm;
|
|
4215
|
+
if (recoveredSessionId) {
|
|
4216
|
+
const storedSession = this.loadStoredSession();
|
|
4217
|
+
sessionReferrer = storedSession?.referrer ?? getExternalReferrer();
|
|
4218
|
+
sessionUtm = storedSession?.utm ?? getUTMParameters();
|
|
4219
|
+
} else {
|
|
4220
|
+
sessionReferrer = getExternalReferrer();
|
|
4221
|
+
sessionUtm = getUTMParameters();
|
|
4222
|
+
}
|
|
4154
4223
|
log("debug", "Session tracking initialized", {
|
|
4155
4224
|
data: {
|
|
4156
4225
|
sessionId,
|
|
4157
4226
|
wasRecovered: !!recoveredSessionId,
|
|
4158
|
-
willEmitSessionStart: true
|
|
4227
|
+
willEmitSessionStart: true,
|
|
4228
|
+
sessionReferrer,
|
|
4229
|
+
hasUtm: !!sessionUtm
|
|
4159
4230
|
}
|
|
4160
4231
|
});
|
|
4161
4232
|
this.isTracking = true;
|
|
4162
4233
|
try {
|
|
4163
4234
|
this.set("sessionId", sessionId);
|
|
4164
|
-
this.
|
|
4235
|
+
this.set("sessionReferrer", sessionReferrer);
|
|
4236
|
+
this.set("sessionUtm", sessionUtm);
|
|
4237
|
+
this.persistSession(sessionId, Date.now(), sessionReferrer, sessionUtm);
|
|
4165
4238
|
this.initCrossTabSync();
|
|
4166
4239
|
this.shareSession(sessionId);
|
|
4167
4240
|
log("debug", "Emitting SESSION_START event", {
|
|
@@ -4197,7 +4270,7 @@ var init_session_manager = __esm({
|
|
|
4197
4270
|
this.setupSessionTimeout();
|
|
4198
4271
|
const sessionId = this.get("sessionId");
|
|
4199
4272
|
if (sessionId) {
|
|
4200
|
-
this.persistSession(sessionId);
|
|
4273
|
+
this.persistSession(sessionId, Date.now(), this.get("sessionReferrer"), this.get("sessionUtm"));
|
|
4201
4274
|
}
|
|
4202
4275
|
}
|
|
4203
4276
|
clearSessionTimeout() {
|
|
@@ -4252,6 +4325,8 @@ var init_session_manager = __esm({
|
|
|
4252
4325
|
this.clearStoredSession();
|
|
4253
4326
|
this.set("sessionId", null);
|
|
4254
4327
|
this.set("hasStartSession", false);
|
|
4328
|
+
this.set("sessionReferrer", void 0);
|
|
4329
|
+
this.set("sessionUtm", void 0);
|
|
4255
4330
|
this.isTracking = false;
|
|
4256
4331
|
}
|
|
4257
4332
|
/**
|