@grainql/analytics-web 2.1.0 → 2.1.3
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 +47 -0
- package/dist/activity.js +131 -0
- package/dist/cjs/heartbeat.d.ts +5 -0
- package/dist/cjs/heartbeat.d.ts.map +1 -1
- package/dist/cjs/heartbeat.js +35 -7
- package/dist/cjs/heartbeat.js.map +1 -1
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/consent.js +191 -0
- package/dist/cookies.js +95 -0
- package/dist/esm/heartbeat.d.ts +5 -0
- package/dist/esm/heartbeat.d.ts.map +1 -1
- package/dist/esm/heartbeat.js +35 -7
- package/dist/esm/heartbeat.js.map +1 -1
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/heartbeat.d.ts +5 -0
- package/dist/heartbeat.d.ts.map +1 -1
- package/dist/heartbeat.js +120 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.global.dev.js +34 -7
- package/dist/index.global.dev.js.map +2 -2
- package/dist/index.global.js +2 -2
- package/dist/index.global.js.map +3 -3
- package/dist/index.js +5 -1
- package/dist/index.mjs +10 -6
- package/dist/page-tracking.js +180 -0
- package/dist/react/heartbeat.d.ts +5 -0
- package/dist/react/heartbeat.d.ts.map +1 -1
- package/dist/react/heartbeat.js +35 -7
- package/dist/react/heartbeat.mjs +35 -7
- package/dist/react/index.d.ts.map +1 -1
- package/dist/react/index.js +5 -1
- package/dist/react/index.mjs +5 -1
- package/package.json +7 -4
package/dist/index.js
CHANGED
|
@@ -178,7 +178,7 @@ class GrainAnalytics {
|
|
|
178
178
|
const cookieOptions = {
|
|
179
179
|
maxAge: 365 * 24 * 60 * 60, // 365 days
|
|
180
180
|
sameSite: 'lax',
|
|
181
|
-
secure: window.location.protocol === 'https:',
|
|
181
|
+
secure: typeof window !== 'undefined' && window.location.protocol === 'https:',
|
|
182
182
|
...this.config.cookieOptions,
|
|
183
183
|
};
|
|
184
184
|
(0, cookies_1.setCookie)(cookieName, userId, cookieOptions);
|
|
@@ -474,6 +474,8 @@ class GrainAnalytics {
|
|
|
474
474
|
}
|
|
475
475
|
}
|
|
476
476
|
startFlushTimer() {
|
|
477
|
+
if (typeof window === 'undefined')
|
|
478
|
+
return;
|
|
477
479
|
if (this.flushTimer) {
|
|
478
480
|
clearInterval(this.flushTimer);
|
|
479
481
|
}
|
|
@@ -1320,6 +1322,8 @@ class GrainAnalytics {
|
|
|
1320
1322
|
* Start automatic configuration refresh timer
|
|
1321
1323
|
*/
|
|
1322
1324
|
startConfigRefreshTimer() {
|
|
1325
|
+
if (typeof window === 'undefined')
|
|
1326
|
+
return;
|
|
1323
1327
|
if (this.configRefreshTimer) {
|
|
1324
1328
|
clearInterval(this.configRefreshTimer);
|
|
1325
1329
|
}
|
package/dist/index.mjs
CHANGED
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
* Grain Analytics Web SDK
|
|
3
3
|
* A lightweight, dependency-free TypeScript SDK for sending analytics events to Grain's REST API
|
|
4
4
|
*/
|
|
5
|
-
import { ConsentManager } from './consent';
|
|
6
|
-
import { setCookie, getCookie, areCookiesEnabled } from './cookies';
|
|
7
|
-
import { ActivityDetector } from './activity';
|
|
8
|
-
import { HeartbeatManager } from './heartbeat';
|
|
9
|
-
import { PageTrackingManager } from './page-tracking';
|
|
5
|
+
import { ConsentManager } from './consent.js';
|
|
6
|
+
import { setCookie, getCookie, areCookiesEnabled } from './cookies.js';
|
|
7
|
+
import { ActivityDetector } from './activity.js';
|
|
8
|
+
import { HeartbeatManager } from './heartbeat.js';
|
|
9
|
+
import { PageTrackingManager } from './page-tracking.js';
|
|
10
10
|
export class GrainAnalytics {
|
|
11
11
|
constructor(config) {
|
|
12
12
|
this.eventQueue = [];
|
|
@@ -174,7 +174,7 @@ export class GrainAnalytics {
|
|
|
174
174
|
const cookieOptions = {
|
|
175
175
|
maxAge: 365 * 24 * 60 * 60, // 365 days
|
|
176
176
|
sameSite: 'lax',
|
|
177
|
-
secure: window.location.protocol === 'https:',
|
|
177
|
+
secure: typeof window !== 'undefined' && window.location.protocol === 'https:',
|
|
178
178
|
...this.config.cookieOptions,
|
|
179
179
|
};
|
|
180
180
|
setCookie(cookieName, userId, cookieOptions);
|
|
@@ -470,6 +470,8 @@ export class GrainAnalytics {
|
|
|
470
470
|
}
|
|
471
471
|
}
|
|
472
472
|
startFlushTimer() {
|
|
473
|
+
if (typeof window === 'undefined')
|
|
474
|
+
return;
|
|
473
475
|
if (this.flushTimer) {
|
|
474
476
|
clearInterval(this.flushTimer);
|
|
475
477
|
}
|
|
@@ -1316,6 +1318,8 @@ export class GrainAnalytics {
|
|
|
1316
1318
|
* Start automatic configuration refresh timer
|
|
1317
1319
|
*/
|
|
1318
1320
|
startConfigRefreshTimer() {
|
|
1321
|
+
if (typeof window === 'undefined')
|
|
1322
|
+
return;
|
|
1319
1323
|
if (this.configRefreshTimer) {
|
|
1320
1324
|
clearInterval(this.configRefreshTimer);
|
|
1321
1325
|
}
|
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Page Tracking for Grain Analytics
|
|
4
|
+
* Automatically tracks page views with consent-aware behavior
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.PageTrackingManager = void 0;
|
|
8
|
+
class PageTrackingManager {
|
|
9
|
+
constructor(tracker, config) {
|
|
10
|
+
this.isDestroyed = false;
|
|
11
|
+
this.currentPath = null;
|
|
12
|
+
this.originalPushState = null;
|
|
13
|
+
this.originalReplaceState = null;
|
|
14
|
+
/**
|
|
15
|
+
* Handle popstate event (back/forward navigation)
|
|
16
|
+
*/
|
|
17
|
+
this.handlePopState = () => {
|
|
18
|
+
if (this.isDestroyed)
|
|
19
|
+
return;
|
|
20
|
+
this.trackCurrentPage();
|
|
21
|
+
};
|
|
22
|
+
/**
|
|
23
|
+
* Handle hash change event
|
|
24
|
+
*/
|
|
25
|
+
this.handleHashChange = () => {
|
|
26
|
+
if (this.isDestroyed)
|
|
27
|
+
return;
|
|
28
|
+
this.trackCurrentPage();
|
|
29
|
+
};
|
|
30
|
+
this.tracker = tracker;
|
|
31
|
+
this.config = config;
|
|
32
|
+
// Track initial page load
|
|
33
|
+
this.trackCurrentPage();
|
|
34
|
+
// Setup listeners
|
|
35
|
+
this.setupHistoryListeners();
|
|
36
|
+
this.setupHashChangeListener();
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Setup History API listeners (pushState, replaceState, popstate)
|
|
40
|
+
*/
|
|
41
|
+
setupHistoryListeners() {
|
|
42
|
+
if (typeof window === 'undefined' || typeof history === 'undefined')
|
|
43
|
+
return;
|
|
44
|
+
// Wrap pushState
|
|
45
|
+
this.originalPushState = history.pushState;
|
|
46
|
+
history.pushState = (state, title, url) => {
|
|
47
|
+
this.originalPushState?.call(history, state, title, url);
|
|
48
|
+
this.trackCurrentPage();
|
|
49
|
+
};
|
|
50
|
+
// Wrap replaceState
|
|
51
|
+
this.originalReplaceState = history.replaceState;
|
|
52
|
+
history.replaceState = (state, title, url) => {
|
|
53
|
+
this.originalReplaceState?.call(history, state, title, url);
|
|
54
|
+
this.trackCurrentPage();
|
|
55
|
+
};
|
|
56
|
+
// Listen to popstate (back/forward buttons)
|
|
57
|
+
window.addEventListener('popstate', this.handlePopState);
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Setup hash change listener
|
|
61
|
+
*/
|
|
62
|
+
setupHashChangeListener() {
|
|
63
|
+
if (typeof window === 'undefined')
|
|
64
|
+
return;
|
|
65
|
+
window.addEventListener('hashchange', this.handleHashChange);
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Track the current page
|
|
69
|
+
*/
|
|
70
|
+
trackCurrentPage() {
|
|
71
|
+
if (this.isDestroyed || typeof window === 'undefined')
|
|
72
|
+
return;
|
|
73
|
+
const page = this.extractPath(window.location.href);
|
|
74
|
+
// Don't track if it's the same page
|
|
75
|
+
if (page === this.currentPath) {
|
|
76
|
+
return;
|
|
77
|
+
}
|
|
78
|
+
this.currentPath = page;
|
|
79
|
+
const hasConsent = this.tracker.hasConsent('analytics');
|
|
80
|
+
// Base properties (always included)
|
|
81
|
+
const properties = {
|
|
82
|
+
page,
|
|
83
|
+
timestamp: Date.now(),
|
|
84
|
+
};
|
|
85
|
+
// Enhanced properties when consent is granted
|
|
86
|
+
if (hasConsent) {
|
|
87
|
+
properties.referrer = document.referrer || '';
|
|
88
|
+
properties.title = document.title || '';
|
|
89
|
+
properties.full_url = window.location.href;
|
|
90
|
+
}
|
|
91
|
+
// Track the page view event
|
|
92
|
+
this.tracker.trackSystemEvent('page_view', properties);
|
|
93
|
+
if (this.config.debug) {
|
|
94
|
+
console.log('[Page Tracking] Tracked page view:', properties);
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Extract path from URL, optionally stripping query parameters
|
|
99
|
+
*/
|
|
100
|
+
extractPath(url) {
|
|
101
|
+
try {
|
|
102
|
+
const urlObj = new URL(url);
|
|
103
|
+
let path = urlObj.pathname + urlObj.hash;
|
|
104
|
+
if (!this.config.stripQueryParams && urlObj.search) {
|
|
105
|
+
path += urlObj.search;
|
|
106
|
+
}
|
|
107
|
+
return path;
|
|
108
|
+
}
|
|
109
|
+
catch (error) {
|
|
110
|
+
// If URL parsing fails, return the raw string
|
|
111
|
+
if (this.config.debug) {
|
|
112
|
+
console.warn('[Page Tracking] Failed to parse URL:', url, error);
|
|
113
|
+
}
|
|
114
|
+
return url;
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Get the current page path
|
|
119
|
+
*/
|
|
120
|
+
getCurrentPage() {
|
|
121
|
+
return this.currentPath;
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Manually track a page view (for custom navigation)
|
|
125
|
+
*/
|
|
126
|
+
trackPage(page, properties) {
|
|
127
|
+
if (this.isDestroyed)
|
|
128
|
+
return;
|
|
129
|
+
const hasConsent = this.tracker.hasConsent('analytics');
|
|
130
|
+
// Base properties
|
|
131
|
+
const baseProperties = {
|
|
132
|
+
page,
|
|
133
|
+
timestamp: Date.now(),
|
|
134
|
+
...properties,
|
|
135
|
+
};
|
|
136
|
+
// Enhanced properties when consent is granted
|
|
137
|
+
if (hasConsent && typeof document !== 'undefined') {
|
|
138
|
+
if (!baseProperties.referrer) {
|
|
139
|
+
baseProperties.referrer = document.referrer || '';
|
|
140
|
+
}
|
|
141
|
+
if (!baseProperties.title) {
|
|
142
|
+
baseProperties.title = document.title || '';
|
|
143
|
+
}
|
|
144
|
+
if (!baseProperties.full_url && typeof window !== 'undefined') {
|
|
145
|
+
baseProperties.full_url = window.location.href;
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
this.tracker.trackSystemEvent('page_view', baseProperties);
|
|
149
|
+
if (this.config.debug) {
|
|
150
|
+
console.log('[Page Tracking] Manually tracked page:', baseProperties);
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* Destroy the page tracker
|
|
155
|
+
*/
|
|
156
|
+
destroy() {
|
|
157
|
+
if (this.isDestroyed)
|
|
158
|
+
return;
|
|
159
|
+
// Restore original history methods
|
|
160
|
+
if (typeof history !== 'undefined') {
|
|
161
|
+
if (this.originalPushState) {
|
|
162
|
+
history.pushState = this.originalPushState;
|
|
163
|
+
}
|
|
164
|
+
if (this.originalReplaceState) {
|
|
165
|
+
history.replaceState = this.originalReplaceState;
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
// Remove event listeners
|
|
169
|
+
if (typeof window !== 'undefined') {
|
|
170
|
+
window.removeEventListener('popstate', this.handlePopState);
|
|
171
|
+
window.removeEventListener('hashchange', this.handleHashChange);
|
|
172
|
+
}
|
|
173
|
+
this.isDestroyed = true;
|
|
174
|
+
if (this.config.debug) {
|
|
175
|
+
console.log('[Page Tracking] Destroyed');
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
exports.PageTrackingManager = PageTrackingManager;
|
|
180
|
+
//# sourceMappingURL=page-tracking.js.map
|
|
@@ -25,7 +25,12 @@ export declare class HeartbeatManager {
|
|
|
25
25
|
private isDestroyed;
|
|
26
26
|
private lastHeartbeatTime;
|
|
27
27
|
private currentInterval;
|
|
28
|
+
private hasSentPageLoadHeartbeat;
|
|
28
29
|
constructor(tracker: HeartbeatTracker, activityDetector: ActivityDetector, config: HeartbeatConfig);
|
|
30
|
+
/**
|
|
31
|
+
* Send initial heartbeat when page loads
|
|
32
|
+
*/
|
|
33
|
+
private sendPageLoadHeartbeat;
|
|
29
34
|
/**
|
|
30
35
|
* Schedule the next heartbeat based on current activity
|
|
31
36
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"heartbeat.d.ts","sourceRoot":"","sources":["../../src/heartbeat.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEnD,MAAM,WAAW,eAAe;IAC9B,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB,EAAE,MAAM,CAAC;IACzB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,gBAAgB;IAC/B,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAC/E,UAAU,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IACvC,kBAAkB,IAAI,MAAM,CAAC;IAC7B,qBAAqB,IAAI,MAAM,CAAC;IAChC,cAAc,IAAI,MAAM,GAAG,IAAI,CAAC;IAChC,+BAA+B,IAAI,MAAM,CAAC;IAC1C,iCAAiC,IAAI,IAAI,CAAC;CAC3C;AAED,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,MAAM,CAAkB;IAChC,OAAO,CAAC,OAAO,CAAmB;IAClC,OAAO,CAAC,gBAAgB,CAAmB;IAC3C,OAAO,CAAC,cAAc,CAAuB;IAC7C,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,iBAAiB,CAAS;IAClC,OAAO,CAAC,eAAe,CAAS;
|
|
1
|
+
{"version":3,"file":"heartbeat.d.ts","sourceRoot":"","sources":["../../src/heartbeat.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEnD,MAAM,WAAW,eAAe;IAC9B,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB,EAAE,MAAM,CAAC;IACzB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,gBAAgB;IAC/B,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAC/E,UAAU,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IACvC,kBAAkB,IAAI,MAAM,CAAC;IAC7B,qBAAqB,IAAI,MAAM,CAAC;IAChC,cAAc,IAAI,MAAM,GAAG,IAAI,CAAC;IAChC,+BAA+B,IAAI,MAAM,CAAC;IAC1C,iCAAiC,IAAI,IAAI,CAAC;CAC3C;AAED,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,MAAM,CAAkB;IAChC,OAAO,CAAC,OAAO,CAAmB;IAClC,OAAO,CAAC,gBAAgB,CAAmB;IAC3C,OAAO,CAAC,cAAc,CAAuB;IAC7C,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,iBAAiB,CAAS;IAClC,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,wBAAwB,CAAS;gBAGvC,OAAO,EAAE,gBAAgB,EACzB,gBAAgB,EAAE,gBAAgB,EAClC,MAAM,EAAE,eAAe;IAezB;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAkB7B;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAyB7B;;OAEG;IACH,OAAO,CAAC,aAAa;IA0CrB;;OAEG;IACH,OAAO,IAAI,IAAI;CAchB"}
|
package/dist/react/heartbeat.js
CHANGED
|
@@ -9,14 +9,38 @@ class HeartbeatManager {
|
|
|
9
9
|
constructor(tracker, activityDetector, config) {
|
|
10
10
|
this.heartbeatTimer = null;
|
|
11
11
|
this.isDestroyed = false;
|
|
12
|
+
this.hasSentPageLoadHeartbeat = false;
|
|
12
13
|
this.tracker = tracker;
|
|
13
14
|
this.activityDetector = activityDetector;
|
|
14
15
|
this.config = config;
|
|
15
16
|
this.lastHeartbeatTime = Date.now();
|
|
16
17
|
this.currentInterval = config.activeInterval;
|
|
17
|
-
//
|
|
18
|
+
// Send initial heartbeat when page loads (if allowed by consent)
|
|
19
|
+
this.sendPageLoadHeartbeat();
|
|
20
|
+
// Start periodic heartbeat tracking
|
|
18
21
|
this.scheduleNextHeartbeat();
|
|
19
22
|
}
|
|
23
|
+
/**
|
|
24
|
+
* Send initial heartbeat when page loads
|
|
25
|
+
*/
|
|
26
|
+
sendPageLoadHeartbeat() {
|
|
27
|
+
if (this.isDestroyed || this.hasSentPageLoadHeartbeat)
|
|
28
|
+
return;
|
|
29
|
+
// Wait for page to be fully loaded
|
|
30
|
+
if (typeof window !== 'undefined' && document.readyState !== 'complete') {
|
|
31
|
+
const handleLoad = () => {
|
|
32
|
+
this.sendHeartbeat('page_load');
|
|
33
|
+
this.hasSentPageLoadHeartbeat = true;
|
|
34
|
+
window.removeEventListener('load', handleLoad);
|
|
35
|
+
};
|
|
36
|
+
window.addEventListener('load', handleLoad);
|
|
37
|
+
}
|
|
38
|
+
else {
|
|
39
|
+
// Page is already loaded or we're in a non-browser environment
|
|
40
|
+
this.sendHeartbeat('page_load');
|
|
41
|
+
this.hasSentPageLoadHeartbeat = true;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
20
44
|
/**
|
|
21
45
|
* Schedule the next heartbeat based on current activity
|
|
22
46
|
*/
|
|
@@ -32,7 +56,7 @@ class HeartbeatManager {
|
|
|
32
56
|
this.currentInterval = isActive ? this.config.activeInterval : this.config.inactiveInterval;
|
|
33
57
|
// Schedule next heartbeat
|
|
34
58
|
this.heartbeatTimer = window.setTimeout(() => {
|
|
35
|
-
this.sendHeartbeat();
|
|
59
|
+
this.sendHeartbeat('periodic');
|
|
36
60
|
this.scheduleNextHeartbeat();
|
|
37
61
|
}, this.currentInterval);
|
|
38
62
|
if (this.config.debug) {
|
|
@@ -42,7 +66,7 @@ class HeartbeatManager {
|
|
|
42
66
|
/**
|
|
43
67
|
* Send heartbeat event
|
|
44
68
|
*/
|
|
45
|
-
sendHeartbeat() {
|
|
69
|
+
sendHeartbeat(heartbeatType = 'periodic') {
|
|
46
70
|
if (this.isDestroyed)
|
|
47
71
|
return;
|
|
48
72
|
const now = Date.now();
|
|
@@ -51,6 +75,7 @@ class HeartbeatManager {
|
|
|
51
75
|
// Base properties (always included)
|
|
52
76
|
const properties = {
|
|
53
77
|
type: 'heartbeat',
|
|
78
|
+
heartbeat_type: heartbeatType,
|
|
54
79
|
status: isActive ? 'active' : 'inactive',
|
|
55
80
|
timestamp: now,
|
|
56
81
|
};
|
|
@@ -60,10 +85,13 @@ class HeartbeatManager {
|
|
|
60
85
|
if (page) {
|
|
61
86
|
properties.page = page;
|
|
62
87
|
}
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
88
|
+
// Only include duration and event count for periodic heartbeats
|
|
89
|
+
if (heartbeatType === 'periodic') {
|
|
90
|
+
properties.duration = now - this.lastHeartbeatTime;
|
|
91
|
+
properties.event_count = this.tracker.getEventCountSinceLastHeartbeat();
|
|
92
|
+
// Reset event count
|
|
93
|
+
this.tracker.resetEventCountSinceLastHeartbeat();
|
|
94
|
+
}
|
|
67
95
|
}
|
|
68
96
|
// Track the heartbeat event
|
|
69
97
|
this.tracker.trackSystemEvent('_grain_heartbeat', properties);
|
package/dist/react/heartbeat.mjs
CHANGED
|
@@ -6,14 +6,38 @@ export class HeartbeatManager {
|
|
|
6
6
|
constructor(tracker, activityDetector, config) {
|
|
7
7
|
this.heartbeatTimer = null;
|
|
8
8
|
this.isDestroyed = false;
|
|
9
|
+
this.hasSentPageLoadHeartbeat = false;
|
|
9
10
|
this.tracker = tracker;
|
|
10
11
|
this.activityDetector = activityDetector;
|
|
11
12
|
this.config = config;
|
|
12
13
|
this.lastHeartbeatTime = Date.now();
|
|
13
14
|
this.currentInterval = config.activeInterval;
|
|
14
|
-
//
|
|
15
|
+
// Send initial heartbeat when page loads (if allowed by consent)
|
|
16
|
+
this.sendPageLoadHeartbeat();
|
|
17
|
+
// Start periodic heartbeat tracking
|
|
15
18
|
this.scheduleNextHeartbeat();
|
|
16
19
|
}
|
|
20
|
+
/**
|
|
21
|
+
* Send initial heartbeat when page loads
|
|
22
|
+
*/
|
|
23
|
+
sendPageLoadHeartbeat() {
|
|
24
|
+
if (this.isDestroyed || this.hasSentPageLoadHeartbeat)
|
|
25
|
+
return;
|
|
26
|
+
// Wait for page to be fully loaded
|
|
27
|
+
if (typeof window !== 'undefined' && document.readyState !== 'complete') {
|
|
28
|
+
const handleLoad = () => {
|
|
29
|
+
this.sendHeartbeat('page_load');
|
|
30
|
+
this.hasSentPageLoadHeartbeat = true;
|
|
31
|
+
window.removeEventListener('load', handleLoad);
|
|
32
|
+
};
|
|
33
|
+
window.addEventListener('load', handleLoad);
|
|
34
|
+
}
|
|
35
|
+
else {
|
|
36
|
+
// Page is already loaded or we're in a non-browser environment
|
|
37
|
+
this.sendHeartbeat('page_load');
|
|
38
|
+
this.hasSentPageLoadHeartbeat = true;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
17
41
|
/**
|
|
18
42
|
* Schedule the next heartbeat based on current activity
|
|
19
43
|
*/
|
|
@@ -29,7 +53,7 @@ export class HeartbeatManager {
|
|
|
29
53
|
this.currentInterval = isActive ? this.config.activeInterval : this.config.inactiveInterval;
|
|
30
54
|
// Schedule next heartbeat
|
|
31
55
|
this.heartbeatTimer = window.setTimeout(() => {
|
|
32
|
-
this.sendHeartbeat();
|
|
56
|
+
this.sendHeartbeat('periodic');
|
|
33
57
|
this.scheduleNextHeartbeat();
|
|
34
58
|
}, this.currentInterval);
|
|
35
59
|
if (this.config.debug) {
|
|
@@ -39,7 +63,7 @@ export class HeartbeatManager {
|
|
|
39
63
|
/**
|
|
40
64
|
* Send heartbeat event
|
|
41
65
|
*/
|
|
42
|
-
sendHeartbeat() {
|
|
66
|
+
sendHeartbeat(heartbeatType = 'periodic') {
|
|
43
67
|
if (this.isDestroyed)
|
|
44
68
|
return;
|
|
45
69
|
const now = Date.now();
|
|
@@ -48,6 +72,7 @@ export class HeartbeatManager {
|
|
|
48
72
|
// Base properties (always included)
|
|
49
73
|
const properties = {
|
|
50
74
|
type: 'heartbeat',
|
|
75
|
+
heartbeat_type: heartbeatType,
|
|
51
76
|
status: isActive ? 'active' : 'inactive',
|
|
52
77
|
timestamp: now,
|
|
53
78
|
};
|
|
@@ -57,10 +82,13 @@ export class HeartbeatManager {
|
|
|
57
82
|
if (page) {
|
|
58
83
|
properties.page = page;
|
|
59
84
|
}
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
85
|
+
// Only include duration and event count for periodic heartbeats
|
|
86
|
+
if (heartbeatType === 'periodic') {
|
|
87
|
+
properties.duration = now - this.lastHeartbeatTime;
|
|
88
|
+
properties.event_count = this.tracker.getEventCountSinceLastHeartbeat();
|
|
89
|
+
// Reset event count
|
|
90
|
+
this.tracker.resetEventCountSinceLastHeartbeat();
|
|
91
|
+
}
|
|
64
92
|
}
|
|
65
93
|
// Track the heartbeat event
|
|
66
94
|
this.tracker.trackSystemEvent('_grain_heartbeat', properties);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAkB,YAAY,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACtE,OAAO,EAAyD,YAAY,EAAE,MAAM,WAAW,CAAC;AAEhG,OAAO,EAAoB,KAAK,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACtE,OAAO,EAAuB,KAAK,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAExE,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,SAAS,CAAC,EAAE,IAAI,CAAC;CAClB;AAED,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACrC;AAED,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,aAAa,GAAG,KAAK,CAAC;AAE1D,MAAM,WAAW,YAAY;IAC3B,QAAQ,IAAI,OAAO,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;CACtC;AAGD,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,CAAC;AAExD,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,KAAK,CAAC,EAAE,OAAO,CAAC;IAEhB,qBAAqB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/C,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAE5B,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,aAAa,CAAC,EAAE,YAAY,CAAC;IAC7B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAE7B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,yBAAyB,CAAC,EAAE,MAAM,CAAC;IACnC,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,YAAY,CAAC;CAC7B;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;CACvB;AAGD,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACrC;AAED,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACvC,OAAO,EAAE,OAAO,CAAC;IACjB,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,mBAAmB;IAClC,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,iBAAiB;IAChC,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACvC,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,MAAM,oBAAoB,GAAG,CAAC,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,IAAI,CAAC;AAGpF,MAAM,WAAW,oBAAqB,SAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACnE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,MAAM,WAAW,qBAAsB,SAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACpE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,uBAAwB,SAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACtE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,KAAK,CAAC;QACZ,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC,CAAC;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,uBAAwB,SAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACtE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,uBAAwB,SAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACtE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,KAAK,CAAC;QACZ,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC,CAAC;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,qBAAsB,SAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACpE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,wBAAyB,SAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACvE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,6BAA8B,SAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAC5E,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAGD,MAAM,WAAW,WAAW;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,WAAW,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAqBD,qBAAa,cAAe,YAAW,gBAAgB,EAAE,WAAW;IAClE,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,UAAU,CAAsB;IACxC,OAAO,CAAC,sBAAsB,CAAsB;IACpD,OAAO,CAAC,UAAU,CAAuB;IACzC,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,YAAY,CAAuB;IAC3C,OAAO,CAAC,yBAAyB,CAAuB;IAExD,OAAO,CAAC,WAAW,CAAkC;IACrD,OAAO,CAAC,kBAAkB,CAAuB;IACjD,OAAO,CAAC,qBAAqB,CAA8B;IAC3D,OAAO,CAAC,kBAAkB,CAA8C;IAExE,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,cAAc,CAAkB;IAExC,OAAO,CAAC,gBAAgB,CAAiC;IACzD,OAAO,CAAC,gBAAgB,CAAiC;IACzD,OAAO,CAAC,mBAAmB,CAAoC;IAC/D,OAAO,CAAC,kBAAkB,CAAuB;IACjD,OAAO,CAAC,4BAA4B,CAAa;gBAErC,MAAM,EAAE,WAAW;IAqE/B,OAAO,CAAC,cAAc;IActB;;OAEG;IACH,OAAO,CAAC,YAAY;IAapB;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAI/B;;;OAGG;IACH,OAAO,CAAC,mCAAmC;IAwC3C;;OAEG;IACH,OAAO,CAAC,6BAA6B;IAyBrC;;OAEG;IACH,OAAO,CAAC,0BAA0B;IAyBlC,OAAO,CAAC,GAAG;IAMX;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAsBzB;;OAEG;IACH,OAAO,CAAC,WAAW;IAwDnB;;OAEG;IACH,OAAO,CAAC,QAAQ;IA2BhB;;OAEG;YACW,WAAW;IAczB,OAAO,CAAC,WAAW;YAQL,cAAc;YAsBd,KAAK;IAInB,OAAO,CAAC,gBAAgB;YAmBV,UAAU;YAgEV,oBAAoB;IAoClC,OAAO,CAAC,eAAe;IAevB,OAAO,CAAC,iBAAiB;IA0CzB;;OAEG;IACH,OAAO,CAAC,2BAA2B;IAmCnC;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAa5B;;OAEG;IACH,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IA+B9E;;OAEG;IACH,qBAAqB,IAAI,MAAM;IAO/B;;OAEG;IACH,cAAc,IAAI,MAAM,GAAG,IAAI;IAI/B;;OAEG;IACH,+BAA+B,IAAI,MAAM;IAIzC;;OAEG;IACH,iCAAiC,IAAI,IAAI;IAIzC;;OAEG;IACH,kBAAkB,IAAI,MAAM;IAI5B;;OAEG;IACH,YAAY,IAAI,MAAM;IAKtB;;OAEG;IACG,KAAK,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IACzG,KAAK,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAoEzE;;OAEG;IACH,OAAO,CAAC,2BAA2B;IAgBnC;;OAEG;IACH,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAO9B;;OAEG;IACH,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAyBtC;;OAEG;IACH,SAAS,IAAI,MAAM,GAAG,IAAI;IAI1B;;OAEG;IACH,wBAAwB,IAAI,MAAM;IAIlC;;;;;;;;;;;;;;;OAeG;IACH,KAAK,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI;IA4ClC;;;;;;;;;OASG;IACH,MAAM,IAAI,IAAI;IAwCd;;OAEG;IACG,WAAW,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;IAmDnG;;OAEG;YACW,cAAc;IAgE5B;;OAEG;IACG,UAAU,CAAC,UAAU,CAAC,EAAE,oBAAoB,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAS9F;;OAEG;IACG,WAAW,CAAC,UAAU,CAAC,EAAE,qBAAqB,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAShG;;OAEG;IACG,aAAa,CAAC,UAAU,CAAC,EAAE,uBAAuB,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IASpG;;OAEG;IACG,aAAa,CAAC,UAAU,CAAC,EAAE,uBAAuB,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IASpG;;OAEG;IACG,aAAa,CAAC,UAAU,CAAC,EAAE,uBAAuB,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IASpG;;OAEG;IACG,WAAW,CAAC,UAAU,CAAC,EAAE,qBAAqB,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAShG;;OAEG;IACG,cAAc,CAAC,UAAU,CAAC,EAAE,wBAAwB,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAStG;;OAEG;IACG,mBAAmB,CAAC,UAAU,CAAC,EAAE,6BAA6B,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAShH;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAsB5B;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAc7B;;OAEG;IACH,OAAO,CAAC,eAAe;IAWvB;;OAEG;IACH,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAc1C;;OAEG;IACH,aAAa,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAUvC;;OAEG;IACG,WAAW,CAAC,OAAO,GAAE,mBAAwB,GAAG,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC;IA8F1F;;OAEG;IACG,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,GAAE,mBAAwB,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IA4BjG;;OAEG;IACG,kBAAkB,CAAC,OAAO,GAAE,mBAAwB,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAuB5F;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAkBzB;;OAEG;IACH,uBAAuB,CAAC,QAAQ,EAAE,oBAAoB,GAAG,IAAI;IAI7D;;OAEG;IACH,0BAA0B,CAAC,QAAQ,EAAE,oBAAoB,GAAG,IAAI;IAOhE;;OAEG;IACH,OAAO,CAAC,2BAA2B;IAUnC;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAgB/B;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAO9B;;OAEG;IACG,aAAa,CAAC,aAAa,GAAE,MAAM,EAAO,EAAE,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAgBrG;;OAEG;IACH,OAAO,CAAC,WAAW;IAUnB;;;OAGG;IACH,YAAY,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI;IAUzC;;;OAGG;IACH,aAAa,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI;IAc1C;;OAEG;IACH,eAAe,IAAI,YAAY,GAAG,IAAI;IAItC;;;OAGG;IACH,UAAU,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO;IAItC;;OAEG;IACH,eAAe,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,GAAG,IAAI;IAI9D;;OAEG;IACH,gBAAgB,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,GAAG,IAAI;IAI/D;;OAEG;IACH,OAAO,IAAI,IAAI;CAoDhB;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,WAAW,GAAG,cAAc,CAExE;AAGD,eAAe,cAAc,CAAC;AAG9B,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,MAAM;QACd,KAAK,CAAC,EAAE;YACN,cAAc,EAAE,OAAO,cAAc,CAAC;YACtC,oBAAoB,EAAE,OAAO,oBAAoB,CAAC;SACnD,CAAC;KACH;CACF"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/react/index.js
CHANGED
|
@@ -178,7 +178,7 @@ class GrainAnalytics {
|
|
|
178
178
|
const cookieOptions = {
|
|
179
179
|
maxAge: 365 * 24 * 60 * 60, // 365 days
|
|
180
180
|
sameSite: 'lax',
|
|
181
|
-
secure: window.location.protocol === 'https:',
|
|
181
|
+
secure: typeof window !== 'undefined' && window.location.protocol === 'https:',
|
|
182
182
|
...this.config.cookieOptions,
|
|
183
183
|
};
|
|
184
184
|
(0, cookies_1.setCookie)(cookieName, userId, cookieOptions);
|
|
@@ -474,6 +474,8 @@ class GrainAnalytics {
|
|
|
474
474
|
}
|
|
475
475
|
}
|
|
476
476
|
startFlushTimer() {
|
|
477
|
+
if (typeof window === 'undefined')
|
|
478
|
+
return;
|
|
477
479
|
if (this.flushTimer) {
|
|
478
480
|
clearInterval(this.flushTimer);
|
|
479
481
|
}
|
|
@@ -1320,6 +1322,8 @@ class GrainAnalytics {
|
|
|
1320
1322
|
* Start automatic configuration refresh timer
|
|
1321
1323
|
*/
|
|
1322
1324
|
startConfigRefreshTimer() {
|
|
1325
|
+
if (typeof window === 'undefined')
|
|
1326
|
+
return;
|
|
1323
1327
|
if (this.configRefreshTimer) {
|
|
1324
1328
|
clearInterval(this.configRefreshTimer);
|
|
1325
1329
|
}
|
package/dist/react/index.mjs
CHANGED
|
@@ -174,7 +174,7 @@ export class GrainAnalytics {
|
|
|
174
174
|
const cookieOptions = {
|
|
175
175
|
maxAge: 365 * 24 * 60 * 60, // 365 days
|
|
176
176
|
sameSite: 'lax',
|
|
177
|
-
secure: window.location.protocol === 'https:',
|
|
177
|
+
secure: typeof window !== 'undefined' && window.location.protocol === 'https:',
|
|
178
178
|
...this.config.cookieOptions,
|
|
179
179
|
};
|
|
180
180
|
setCookie(cookieName, userId, cookieOptions);
|
|
@@ -470,6 +470,8 @@ export class GrainAnalytics {
|
|
|
470
470
|
}
|
|
471
471
|
}
|
|
472
472
|
startFlushTimer() {
|
|
473
|
+
if (typeof window === 'undefined')
|
|
474
|
+
return;
|
|
473
475
|
if (this.flushTimer) {
|
|
474
476
|
clearInterval(this.flushTimer);
|
|
475
477
|
}
|
|
@@ -1316,6 +1318,8 @@ export class GrainAnalytics {
|
|
|
1316
1318
|
* Start automatic configuration refresh timer
|
|
1317
1319
|
*/
|
|
1318
1320
|
startConfigRefreshTimer() {
|
|
1321
|
+
if (typeof window === 'undefined')
|
|
1322
|
+
return;
|
|
1319
1323
|
if (this.configRefreshTimer) {
|
|
1320
1324
|
clearInterval(this.configRefreshTimer);
|
|
1321
1325
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@grainql/analytics-web",
|
|
3
|
-
"version": "2.1.
|
|
3
|
+
"version": "2.1.3",
|
|
4
4
|
"description": "Lightweight TypeScript SDK for sending analytics events and managing remote configurations via Grain's REST API",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"module": "dist/index.mjs",
|
|
@@ -31,8 +31,8 @@
|
|
|
31
31
|
"scripts": {
|
|
32
32
|
"build": "npm run build:types && npm run build:esm && npm run build:cjs && npm run build:react && npm run build:iife",
|
|
33
33
|
"build:types": "tsc --declaration --emitDeclarationOnly --outDir dist",
|
|
34
|
-
"build:esm": "tsc --module esnext --target es2020 --outDir dist/esm && mv dist/esm/index.js dist/index.mjs",
|
|
35
|
-
"build:cjs": "tsc --module commonjs --target es2020 --outDir dist/cjs && mv dist/cjs/index.js dist/index.js",
|
|
34
|
+
"build:esm": "tsc --module esnext --target es2020 --outDir dist/esm && mv dist/esm/index.js dist/index.mjs && cp dist/esm/*.js dist/ && node scripts/fix-esm-imports.js",
|
|
35
|
+
"build:cjs": "tsc --module commonjs --target es2020 --outDir dist/cjs && mv dist/cjs/index.js dist/index.js && cp dist/cjs/*.js dist/",
|
|
36
36
|
"build:react": "node scripts/build-react.js",
|
|
37
37
|
"build:iife": "node scripts/build-iife.js",
|
|
38
38
|
"clean": "rm -rf dist",
|
|
@@ -42,7 +42,10 @@
|
|
|
42
42
|
"test:ci": "jest --ci --coverage",
|
|
43
43
|
"prepublishOnly": "npm run clean && npm run build",
|
|
44
44
|
"size": "npm run build && node scripts/bundle-analysis.js",
|
|
45
|
-
"size:limit": "size-limit"
|
|
45
|
+
"size:limit": "size-limit",
|
|
46
|
+
"dev:mini-app": "cd mini-app && npm run dev",
|
|
47
|
+
"build:mini-app": "cd mini-app && npm run build",
|
|
48
|
+
"start:mini-app": "cd mini-app && npm run start"
|
|
46
49
|
},
|
|
47
50
|
"keywords": [
|
|
48
51
|
"analytics",
|