@base44-preview/sdk 0.8.12-pr.65.f4aa796 → 0.8.12-pr.66.2e24aea
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.
|
@@ -2,8 +2,6 @@ import { AxiosInstance } from "axios";
|
|
|
2
2
|
import { TrackEventParams, AnalyticsModuleOptions } from "./analytics.types";
|
|
3
3
|
import type { AuthModule } from "./auth.types";
|
|
4
4
|
export declare const USER_HEARTBEAT_EVENT_NAME = "__user_heartbeat_event__";
|
|
5
|
-
export declare const ANALYTICS_REFERRER_EVENT_NAME = "__referrer_event__";
|
|
6
|
-
export declare const ANALYTICS_SESSION_DURATION_EVENT_NAME = "__session_duration_event__";
|
|
7
5
|
export declare const ANALYTICS_CONFIG_ENABLE_URL_PARAM_KEY = "analytics-enable";
|
|
8
6
|
export declare const ANALYTICS_SESSION_ID_LOCAL_STORAGE_KEY = "base44_analytics_session_id";
|
|
9
7
|
export interface AnalyticsModuleArgs {
|
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
import { getSharedInstance } from "../utils/sharedInstance.js";
|
|
2
2
|
import { generateUuid } from "../utils/common.js";
|
|
3
3
|
export const USER_HEARTBEAT_EVENT_NAME = "__user_heartbeat_event__";
|
|
4
|
-
export const ANALYTICS_REFERRER_EVENT_NAME = "__referrer_event__";
|
|
5
|
-
export const ANALYTICS_SESSION_DURATION_EVENT_NAME = "__session_duration_event__";
|
|
6
4
|
export const ANALYTICS_CONFIG_ENABLE_URL_PARAM_KEY = "analytics-enable";
|
|
7
5
|
export const ANALYTICS_SESSION_ID_LOCAL_STORAGE_KEY = "base44_analytics_session_id";
|
|
8
6
|
const defaultConfiguration = {
|
|
@@ -22,9 +20,7 @@ const analyticsSharedState = getSharedInstance(ANALYTICS_SHARED_STATE_NAME, () =
|
|
|
22
20
|
requestsQueue: [],
|
|
23
21
|
isProcessing: false,
|
|
24
22
|
isHeartBeatProcessing: false,
|
|
25
|
-
wasReferrerTracked: false,
|
|
26
23
|
sessionContext: null,
|
|
27
|
-
sessionStartTime: null,
|
|
28
24
|
config: {
|
|
29
25
|
...defaultConfiguration,
|
|
30
26
|
...getAnalyticsConfigFromUrlParams(),
|
|
@@ -99,12 +95,10 @@ export const createAnalyticsModule = ({ axiosClient, serverUrl, appId, userAuthM
|
|
|
99
95
|
batchSize,
|
|
100
96
|
});
|
|
101
97
|
clearHeartBeatProcessor = startHeartBeatProcessor(track);
|
|
102
|
-
setSessionDurationTimerStart();
|
|
103
98
|
};
|
|
104
99
|
const onDocHidden = () => {
|
|
105
100
|
stopAnalyticsProcessor();
|
|
106
101
|
clearHeartBeatProcessor === null || clearHeartBeatProcessor === void 0 ? void 0 : clearHeartBeatProcessor();
|
|
107
|
-
trackSessionDurationEvent(track);
|
|
108
102
|
// flush entire queue on visibility change and hope for the best //
|
|
109
103
|
const eventsData = analyticsSharedState.requestsQueue.splice(0);
|
|
110
104
|
flush(eventsData, { isBeacon: true });
|
|
@@ -130,8 +124,6 @@ export const createAnalyticsModule = ({ axiosClient, serverUrl, appId, userAuthM
|
|
|
130
124
|
startProcessing();
|
|
131
125
|
// start the heart beat processor //
|
|
132
126
|
clearHeartBeatProcessor = startHeartBeatProcessor(track);
|
|
133
|
-
// track the referrer event //
|
|
134
|
-
trackReferrerEvent(track);
|
|
135
127
|
// start the visibility change listener //
|
|
136
128
|
if (typeof window !== "undefined") {
|
|
137
129
|
window.addEventListener("visibilitychange", onVisibilityChange);
|
|
@@ -174,34 +166,6 @@ function startHeartBeatProcessor(track) {
|
|
|
174
166
|
analyticsSharedState.isHeartBeatProcessing = false;
|
|
175
167
|
};
|
|
176
168
|
}
|
|
177
|
-
function trackReferrerEvent(track) {
|
|
178
|
-
if (typeof window === "undefined" || analyticsSharedState.wasReferrerTracked)
|
|
179
|
-
return;
|
|
180
|
-
analyticsSharedState.wasReferrerTracked = true;
|
|
181
|
-
const referrer = document === null || document === void 0 ? void 0 : document.referrer;
|
|
182
|
-
if (!referrer)
|
|
183
|
-
return;
|
|
184
|
-
track({ eventName: ANALYTICS_REFERRER_EVENT_NAME, properties: { referrer } });
|
|
185
|
-
}
|
|
186
|
-
function setSessionDurationTimerStart() {
|
|
187
|
-
if (typeof window === "undefined" ||
|
|
188
|
-
analyticsSharedState.sessionStartTime !== null) {
|
|
189
|
-
return;
|
|
190
|
-
}
|
|
191
|
-
analyticsSharedState.sessionStartTime = new Date().toISOString();
|
|
192
|
-
}
|
|
193
|
-
function trackSessionDurationEvent(track) {
|
|
194
|
-
if (typeof window === "undefined" ||
|
|
195
|
-
analyticsSharedState.sessionStartTime === null)
|
|
196
|
-
return;
|
|
197
|
-
const sessionDuration = new Date().getTime() -
|
|
198
|
-
new Date(analyticsSharedState.sessionStartTime).getTime();
|
|
199
|
-
analyticsSharedState.sessionStartTime = null;
|
|
200
|
-
track({
|
|
201
|
-
eventName: ANALYTICS_SESSION_DURATION_EVENT_NAME,
|
|
202
|
-
properties: { sessionDuration },
|
|
203
|
-
});
|
|
204
|
-
}
|
|
205
169
|
function getEventIntrinsicData() {
|
|
206
170
|
return {
|
|
207
171
|
timestamp: new Date().toISOString(),
|
|
File without changes
|