@tracelog/lib 0.10.0 → 0.11.1
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 +128 -407
- package/dist/browser/tracelog.esm.js +1173 -771
- package/dist/browser/tracelog.esm.js.map +1 -1
- package/dist/browser/tracelog.js +2 -2
- package/dist/browser/tracelog.js.map +1 -1
- package/dist/cjs/app.d.ts +2 -0
- package/dist/cjs/app.d.ts.map +1 -1
- package/dist/cjs/app.js +5 -0
- package/dist/cjs/app.js.map +1 -1
- package/dist/cjs/constants/config.constants.d.ts +26 -1
- package/dist/cjs/constants/config.constants.d.ts.map +1 -1
- package/dist/cjs/constants/config.constants.js +30 -3
- package/dist/cjs/constants/config.constants.js.map +1 -1
- package/dist/cjs/constants/error.constants.d.ts +15 -0
- package/dist/cjs/constants/error.constants.d.ts.map +1 -1
- package/dist/cjs/constants/error.constants.js +19 -1
- package/dist/cjs/constants/error.constants.js.map +1 -1
- package/dist/cjs/handlers/click.handler.d.ts +15 -0
- package/dist/cjs/handlers/click.handler.d.ts.map +1 -1
- package/dist/cjs/handlers/click.handler.js +69 -0
- package/dist/cjs/handlers/click.handler.js.map +1 -1
- package/dist/cjs/handlers/error.handler.d.ts +7 -0
- package/dist/cjs/handlers/error.handler.d.ts.map +1 -1
- package/dist/cjs/handlers/error.handler.js +35 -0
- package/dist/cjs/handlers/error.handler.js.map +1 -1
- package/dist/cjs/handlers/page-view.handler.d.ts +1 -0
- package/dist/cjs/handlers/page-view.handler.d.ts.map +1 -1
- package/dist/cjs/handlers/page-view.handler.js +11 -0
- package/dist/cjs/handlers/page-view.handler.js.map +1 -1
- package/dist/cjs/handlers/performance.handler.js +5 -5
- package/dist/cjs/handlers/performance.handler.js.map +1 -1
- package/dist/cjs/handlers/viewport.handler.d.ts +44 -0
- package/dist/cjs/handlers/viewport.handler.d.ts.map +1 -0
- package/dist/cjs/handlers/viewport.handler.js +286 -0
- package/dist/cjs/handlers/viewport.handler.js.map +1 -0
- package/dist/cjs/managers/event.manager.d.ts +23 -3
- package/dist/cjs/managers/event.manager.d.ts.map +1 -1
- package/dist/cjs/managers/event.manager.js +166 -10
- package/dist/cjs/managers/event.manager.js.map +1 -1
- package/dist/cjs/managers/sender.manager.d.ts.map +1 -1
- package/dist/cjs/managers/sender.manager.js +12 -0
- package/dist/cjs/managers/sender.manager.js.map +1 -1
- package/dist/cjs/types/config.types.d.ts +9 -0
- package/dist/cjs/types/config.types.d.ts.map +1 -1
- package/dist/cjs/types/config.types.js.map +1 -1
- package/dist/cjs/types/event.types.d.ts +140 -16
- package/dist/cjs/types/event.types.d.ts.map +1 -1
- package/dist/cjs/types/event.types.js +23 -9
- package/dist/cjs/types/event.types.js.map +1 -1
- package/dist/cjs/types/index.d.ts +2 -0
- package/dist/cjs/types/index.d.ts.map +1 -1
- package/dist/cjs/types/index.js +2 -0
- package/dist/cjs/types/index.js.map +1 -1
- package/dist/cjs/types/scroll.types.d.ts +16 -0
- package/dist/cjs/types/scroll.types.d.ts.map +1 -0
- package/dist/cjs/types/scroll.types.js +12 -0
- package/dist/cjs/types/scroll.types.js.map +1 -0
- package/dist/cjs/types/viewport.types.d.ts +55 -0
- package/dist/cjs/types/viewport.types.d.ts.map +1 -0
- package/dist/cjs/types/viewport.types.js +3 -0
- package/dist/cjs/types/viewport.types.js.map +1 -0
- package/dist/cjs/utils/validations/config-validations.utils.d.ts.map +1 -1
- package/dist/cjs/utils/validations/config-validations.utils.js +91 -0
- package/dist/cjs/utils/validations/config-validations.utils.js.map +1 -1
- package/dist/esm/app.d.ts +2 -0
- package/dist/esm/app.d.ts.map +1 -1
- package/dist/esm/app.js +5 -0
- package/dist/esm/app.js.map +1 -1
- package/dist/esm/constants/config.constants.d.ts +26 -1
- package/dist/esm/constants/config.constants.d.ts.map +1 -1
- package/dist/esm/constants/config.constants.js +28 -1
- package/dist/esm/constants/config.constants.js.map +1 -1
- package/dist/esm/constants/error.constants.d.ts +15 -0
- package/dist/esm/constants/error.constants.d.ts.map +1 -1
- package/dist/esm/constants/error.constants.js +18 -0
- package/dist/esm/constants/error.constants.js.map +1 -1
- package/dist/esm/handlers/click.handler.d.ts +15 -0
- package/dist/esm/handlers/click.handler.d.ts.map +1 -1
- package/dist/esm/handlers/click.handler.js +70 -1
- package/dist/esm/handlers/click.handler.js.map +1 -1
- package/dist/esm/handlers/error.handler.d.ts +7 -0
- package/dist/esm/handlers/error.handler.d.ts.map +1 -1
- package/dist/esm/handlers/error.handler.js +36 -1
- package/dist/esm/handlers/error.handler.js.map +1 -1
- package/dist/esm/handlers/page-view.handler.d.ts +1 -0
- package/dist/esm/handlers/page-view.handler.d.ts.map +1 -1
- package/dist/esm/handlers/page-view.handler.js +11 -0
- package/dist/esm/handlers/page-view.handler.js.map +1 -1
- package/dist/esm/handlers/performance.handler.js +5 -5
- package/dist/esm/handlers/performance.handler.js.map +1 -1
- package/dist/esm/handlers/viewport.handler.d.ts +44 -0
- package/dist/esm/handlers/viewport.handler.d.ts.map +1 -0
- package/dist/esm/handlers/viewport.handler.js +282 -0
- package/dist/esm/handlers/viewport.handler.js.map +1 -0
- package/dist/esm/managers/event.manager.d.ts +23 -3
- package/dist/esm/managers/event.manager.d.ts.map +1 -1
- package/dist/esm/managers/event.manager.js +167 -11
- package/dist/esm/managers/event.manager.js.map +1 -1
- package/dist/esm/managers/sender.manager.d.ts.map +1 -1
- package/dist/esm/managers/sender.manager.js +13 -1
- package/dist/esm/managers/sender.manager.js.map +1 -1
- package/dist/esm/types/config.types.d.ts +9 -0
- package/dist/esm/types/config.types.d.ts.map +1 -1
- package/dist/esm/types/config.types.js.map +1 -1
- package/dist/esm/types/event.types.d.ts +140 -16
- package/dist/esm/types/event.types.d.ts.map +1 -1
- package/dist/esm/types/event.types.js +23 -7
- package/dist/esm/types/event.types.js.map +1 -1
- package/dist/esm/types/index.d.ts +2 -0
- package/dist/esm/types/index.d.ts.map +1 -1
- package/dist/esm/types/index.js +2 -0
- package/dist/esm/types/index.js.map +1 -1
- package/dist/esm/types/scroll.types.d.ts +16 -0
- package/dist/esm/types/scroll.types.d.ts.map +1 -0
- package/dist/esm/types/scroll.types.js +8 -0
- package/dist/esm/types/scroll.types.js.map +1 -0
- package/dist/esm/types/viewport.types.d.ts +55 -0
- package/dist/esm/types/viewport.types.d.ts.map +1 -0
- package/dist/esm/types/viewport.types.js +2 -0
- package/dist/esm/types/viewport.types.js.map +1 -0
- package/dist/esm/utils/validations/config-validations.utils.d.ts.map +1 -1
- package/dist/esm/utils/validations/config-validations.utils.js +92 -1
- package/dist/esm/utils/validations/config-validations.utils.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,111 +1,235 @@
|
|
|
1
1
|
import { MetadataType } from './common.types';
|
|
2
2
|
import { SessionEndReason } from './session.types';
|
|
3
|
+
/**
|
|
4
|
+
* Coordinate information from a click event
|
|
5
|
+
* Includes absolute and relative positioning
|
|
6
|
+
*/
|
|
7
|
+
export type ClickCoordinates = Pick<ClickData, 'x' | 'y' | 'relativeX' | 'relativeY'>;
|
|
8
|
+
/**
|
|
9
|
+
* Web performance metric types tracked by the library
|
|
10
|
+
* - LCP: Largest Contentful Paint
|
|
11
|
+
* - CLS: Cumulative Layout Shift
|
|
12
|
+
* - INP: Interaction to Next Paint
|
|
13
|
+
* - FCP: First Contentful Paint
|
|
14
|
+
* - TTFB: Time to First Byte
|
|
15
|
+
* - LONG_TASK: Tasks exceeding 50ms
|
|
16
|
+
*/
|
|
3
17
|
export type WebVitalType = 'LCP' | 'CLS' | 'INP' | 'FCP' | 'TTFB' | 'LONG_TASK';
|
|
18
|
+
/**
|
|
19
|
+
* Core event types tracked by TraceLog
|
|
20
|
+
*/
|
|
4
21
|
export declare enum EventType {
|
|
22
|
+
/** Page navigation and view tracking */
|
|
5
23
|
PAGE_VIEW = "page_view",
|
|
24
|
+
/** User click interactions */
|
|
6
25
|
CLICK = "click",
|
|
26
|
+
/** Scroll depth and behavior */
|
|
7
27
|
SCROLL = "scroll",
|
|
28
|
+
/** Session initialization */
|
|
8
29
|
SESSION_START = "session_start",
|
|
30
|
+
/** Session termination */
|
|
9
31
|
SESSION_END = "session_end",
|
|
32
|
+
/** Custom business events */
|
|
10
33
|
CUSTOM = "custom",
|
|
34
|
+
/** Performance metrics */
|
|
11
35
|
WEB_VITALS = "web_vitals",
|
|
12
|
-
|
|
36
|
+
/** JavaScript errors and rejections */
|
|
37
|
+
ERROR = "error",
|
|
38
|
+
/** Element visibility tracking */
|
|
39
|
+
VIEWPORT_VISIBLE = "viewport_visible"
|
|
13
40
|
}
|
|
41
|
+
/**
|
|
42
|
+
* Scroll direction indicators
|
|
43
|
+
*/
|
|
14
44
|
export declare enum ScrollDirection {
|
|
45
|
+
/** Scrolling upward */
|
|
15
46
|
UP = "up",
|
|
47
|
+
/** Scrolling downward */
|
|
16
48
|
DOWN = "down"
|
|
17
49
|
}
|
|
50
|
+
/**
|
|
51
|
+
* JavaScript error classification
|
|
52
|
+
*/
|
|
18
53
|
export declare enum ErrorType {
|
|
54
|
+
/** Runtime JavaScript errors */
|
|
19
55
|
JS_ERROR = "js_error",
|
|
56
|
+
/** Unhandled promise rejections */
|
|
20
57
|
PROMISE_REJECTION = "promise_rejection"
|
|
21
58
|
}
|
|
59
|
+
/**
|
|
60
|
+
* Scroll event data captured during user scrolling
|
|
61
|
+
*/
|
|
22
62
|
export interface ScrollData {
|
|
63
|
+
/** Current scroll depth as percentage (0-100) */
|
|
23
64
|
depth: number;
|
|
65
|
+
/** Direction of scroll movement */
|
|
24
66
|
direction: ScrollDirection;
|
|
67
|
+
/** CSS selector of the scrolled container */
|
|
25
68
|
container_selector: string;
|
|
69
|
+
/** Whether this is the primary viewport scroll */
|
|
26
70
|
is_primary: boolean;
|
|
71
|
+
/** Scroll velocity in pixels per second */
|
|
27
72
|
velocity: number;
|
|
73
|
+
/** Maximum scroll depth reached during session (0-100) */
|
|
28
74
|
max_depth_reached: number;
|
|
29
75
|
}
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
is_primary: true;
|
|
34
|
-
};
|
|
35
|
-
};
|
|
36
|
-
export type SecondaryScrollEvent = EventData & {
|
|
37
|
-
type: EventType.SCROLL;
|
|
38
|
-
scroll_data: ScrollData & {
|
|
39
|
-
is_primary: false;
|
|
40
|
-
};
|
|
41
|
-
};
|
|
42
|
-
export declare function isPrimaryScrollEvent(event: EventData): event is PrimaryScrollEvent;
|
|
43
|
-
export declare function isSecondaryScrollEvent(event: EventData): event is SecondaryScrollEvent;
|
|
76
|
+
/**
|
|
77
|
+
* Click event data capturing user interaction details
|
|
78
|
+
*/
|
|
44
79
|
export interface ClickData {
|
|
80
|
+
/** Absolute X coordinate in viewport (pixels) */
|
|
45
81
|
x: number;
|
|
82
|
+
/** Absolute Y coordinate in viewport (pixels) */
|
|
46
83
|
y: number;
|
|
84
|
+
/** Relative X position within element (0-1) */
|
|
47
85
|
relativeX: number;
|
|
86
|
+
/** Relative Y position within element (0-1) */
|
|
48
87
|
relativeY: number;
|
|
88
|
+
/** Element ID attribute */
|
|
49
89
|
id?: string;
|
|
90
|
+
/** Element class attribute */
|
|
50
91
|
class?: string;
|
|
92
|
+
/** HTML tag name */
|
|
51
93
|
tag?: string;
|
|
94
|
+
/** Element text content (truncated) */
|
|
52
95
|
text?: string;
|
|
96
|
+
/** Link href for anchor elements */
|
|
53
97
|
href?: string;
|
|
98
|
+
/** Element title attribute */
|
|
54
99
|
title?: string;
|
|
100
|
+
/** Image alt text for img elements */
|
|
55
101
|
alt?: string;
|
|
102
|
+
/** ARIA role attribute */
|
|
56
103
|
role?: string;
|
|
104
|
+
/** ARIA label attribute */
|
|
57
105
|
ariaLabel?: string;
|
|
106
|
+
/** Custom data attributes (data-*) */
|
|
58
107
|
dataAttributes?: Record<string, string>;
|
|
59
108
|
}
|
|
60
|
-
|
|
109
|
+
/**
|
|
110
|
+
* Element data for specialized click tracking
|
|
111
|
+
* Used for form inputs and interactive elements
|
|
112
|
+
*/
|
|
61
113
|
export interface ClickTrackingElementData {
|
|
114
|
+
/** DOM element being tracked */
|
|
62
115
|
element: HTMLElement;
|
|
116
|
+
/** Descriptive name for the element */
|
|
63
117
|
name: string;
|
|
118
|
+
/** Element value (for inputs) */
|
|
64
119
|
value?: string;
|
|
65
120
|
}
|
|
121
|
+
/**
|
|
122
|
+
* Custom event data for business-specific tracking
|
|
123
|
+
*/
|
|
66
124
|
export interface CustomEventData {
|
|
125
|
+
/** Event name identifier */
|
|
67
126
|
name: string;
|
|
127
|
+
/** Additional event metadata */
|
|
68
128
|
metadata?: Record<string, MetadataType> | Record<string, MetadataType>[];
|
|
69
129
|
}
|
|
130
|
+
/**
|
|
131
|
+
* Web performance metrics data
|
|
132
|
+
*/
|
|
70
133
|
export interface WebVitalsData {
|
|
134
|
+
/** Type of performance metric */
|
|
71
135
|
type: WebVitalType;
|
|
136
|
+
/** Metric value (varies by type) */
|
|
72
137
|
value: number;
|
|
73
138
|
}
|
|
139
|
+
/**
|
|
140
|
+
* JavaScript error details
|
|
141
|
+
*/
|
|
74
142
|
export interface ErrorData {
|
|
143
|
+
/** Error classification */
|
|
75
144
|
type: ErrorType;
|
|
145
|
+
/** Error message text */
|
|
76
146
|
message: string;
|
|
147
|
+
/** Source file where error occurred */
|
|
77
148
|
filename?: string;
|
|
149
|
+
/** Line number in source file */
|
|
78
150
|
line?: number;
|
|
151
|
+
/** Column number in source file */
|
|
79
152
|
column?: number;
|
|
80
153
|
}
|
|
154
|
+
/**
|
|
155
|
+
* UTM campaign tracking parameters
|
|
156
|
+
*/
|
|
81
157
|
export interface UTM {
|
|
158
|
+
/** Campaign source (e.g., google, newsletter) */
|
|
82
159
|
source?: string;
|
|
160
|
+
/** Campaign medium (e.g., cpc, email) */
|
|
83
161
|
medium?: string;
|
|
162
|
+
/** Campaign name identifier */
|
|
84
163
|
campaign?: string;
|
|
164
|
+
/** Campaign search term */
|
|
85
165
|
term?: string;
|
|
166
|
+
/** Campaign content variation */
|
|
86
167
|
content?: string;
|
|
87
168
|
}
|
|
169
|
+
/**
|
|
170
|
+
* Page view navigation data
|
|
171
|
+
*/
|
|
88
172
|
export interface PageViewData {
|
|
173
|
+
/** Previous page URL */
|
|
89
174
|
referrer?: string;
|
|
175
|
+
/** Page title from document */
|
|
90
176
|
title?: string;
|
|
177
|
+
/** URL pathname */
|
|
91
178
|
pathname?: string;
|
|
179
|
+
/** URL query string */
|
|
92
180
|
search?: string;
|
|
181
|
+
/** URL hash fragment */
|
|
93
182
|
hash?: string;
|
|
94
183
|
}
|
|
184
|
+
/**
|
|
185
|
+
* Data captured when element becomes visible
|
|
186
|
+
*/
|
|
187
|
+
export interface ViewportEventData {
|
|
188
|
+
/** CSS selector that matched the element */
|
|
189
|
+
selector: string;
|
|
190
|
+
/** Optional unique identifier for analytics (if configured) */
|
|
191
|
+
id?: string;
|
|
192
|
+
/** Optional human-readable name (if configured) */
|
|
193
|
+
name?: string;
|
|
194
|
+
/** Actual time (ms) element was visible before event fired */
|
|
195
|
+
dwellTime: number;
|
|
196
|
+
/** Actual visibility ratio when event fired (0-1) */
|
|
197
|
+
visibilityRatio: number;
|
|
198
|
+
}
|
|
199
|
+
/**
|
|
200
|
+
* Complete event data structure
|
|
201
|
+
* All events share base properties with type-specific data
|
|
202
|
+
*/
|
|
95
203
|
export interface EventData {
|
|
204
|
+
/** Unique event identifier */
|
|
96
205
|
id: string;
|
|
206
|
+
/** Event type classification */
|
|
97
207
|
type: EventType;
|
|
208
|
+
/** Current page URL where event occurred */
|
|
98
209
|
page_url: string;
|
|
210
|
+
/** Unix timestamp (milliseconds) */
|
|
99
211
|
timestamp: number;
|
|
212
|
+
/** HTTP referrer header */
|
|
100
213
|
referrer?: string;
|
|
214
|
+
/** Previous page URL for navigation events */
|
|
101
215
|
from_page_url?: string;
|
|
216
|
+
/** Scroll event details (when type is SCROLL) */
|
|
102
217
|
scroll_data?: ScrollData;
|
|
218
|
+
/** Click event details (when type is CLICK) */
|
|
103
219
|
click_data?: ClickData;
|
|
220
|
+
/** Custom event details (when type is CUSTOM) */
|
|
104
221
|
custom_event?: CustomEventData;
|
|
222
|
+
/** Performance metrics (when type is WEB_VITALS) */
|
|
105
223
|
web_vitals?: WebVitalsData;
|
|
224
|
+
/** Page view details (when type is PAGE_VIEW) */
|
|
106
225
|
page_view?: PageViewData;
|
|
226
|
+
/** Session termination reason (when type is SESSION_END) */
|
|
107
227
|
session_end_reason?: SessionEndReason;
|
|
228
|
+
/** Error details (when type is ERROR) */
|
|
108
229
|
error_data?: ErrorData;
|
|
230
|
+
/** Viewport visibility details (when type is VIEWPORT_VISIBLE) */
|
|
231
|
+
viewport_data?: ViewportEventData;
|
|
232
|
+
/** Campaign tracking parameters */
|
|
109
233
|
utm?: UTM;
|
|
110
234
|
}
|
|
111
235
|
//# sourceMappingURL=event.types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event.types.d.ts","sourceRoot":"","sources":["../../../src/types/event.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAEnD,MAAM,MAAM,YAAY,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,MAAM,GAAG,WAAW,CAAC;AAEhF,oBAAY,SAAS;IACnB,SAAS,cAAc;IACvB,KAAK,UAAU;IACf,MAAM,WAAW;IACjB,aAAa,kBAAkB;IAC/B,WAAW,gBAAgB;IAC3B,MAAM,WAAW;IACjB,UAAU,eAAe;IACzB,KAAK,UAAU;
|
|
1
|
+
{"version":3,"file":"event.types.d.ts","sourceRoot":"","sources":["../../../src/types/event.types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,34 +1,48 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ErrorType = exports.ScrollDirection = exports.EventType = void 0;
|
|
4
|
-
|
|
5
|
-
|
|
4
|
+
/**
|
|
5
|
+
* Core event types tracked by TraceLog
|
|
6
|
+
*/
|
|
6
7
|
var EventType;
|
|
7
8
|
(function (EventType) {
|
|
9
|
+
/** Page navigation and view tracking */
|
|
8
10
|
EventType["PAGE_VIEW"] = "page_view";
|
|
11
|
+
/** User click interactions */
|
|
9
12
|
EventType["CLICK"] = "click";
|
|
13
|
+
/** Scroll depth and behavior */
|
|
10
14
|
EventType["SCROLL"] = "scroll";
|
|
15
|
+
/** Session initialization */
|
|
11
16
|
EventType["SESSION_START"] = "session_start";
|
|
17
|
+
/** Session termination */
|
|
12
18
|
EventType["SESSION_END"] = "session_end";
|
|
19
|
+
/** Custom business events */
|
|
13
20
|
EventType["CUSTOM"] = "custom";
|
|
21
|
+
/** Performance metrics */
|
|
14
22
|
EventType["WEB_VITALS"] = "web_vitals";
|
|
23
|
+
/** JavaScript errors and rejections */
|
|
15
24
|
EventType["ERROR"] = "error";
|
|
25
|
+
/** Element visibility tracking */
|
|
26
|
+
EventType["VIEWPORT_VISIBLE"] = "viewport_visible";
|
|
16
27
|
})(EventType || (exports.EventType = EventType = {}));
|
|
28
|
+
/**
|
|
29
|
+
* Scroll direction indicators
|
|
30
|
+
*/
|
|
17
31
|
var ScrollDirection;
|
|
18
32
|
(function (ScrollDirection) {
|
|
33
|
+
/** Scrolling upward */
|
|
19
34
|
ScrollDirection["UP"] = "up";
|
|
35
|
+
/** Scrolling downward */
|
|
20
36
|
ScrollDirection["DOWN"] = "down";
|
|
21
37
|
})(ScrollDirection || (exports.ScrollDirection = ScrollDirection = {}));
|
|
38
|
+
/**
|
|
39
|
+
* JavaScript error classification
|
|
40
|
+
*/
|
|
22
41
|
var ErrorType;
|
|
23
42
|
(function (ErrorType) {
|
|
43
|
+
/** Runtime JavaScript errors */
|
|
24
44
|
ErrorType["JS_ERROR"] = "js_error";
|
|
45
|
+
/** Unhandled promise rejections */
|
|
25
46
|
ErrorType["PROMISE_REJECTION"] = "promise_rejection";
|
|
26
47
|
})(ErrorType || (exports.ErrorType = ErrorType = {}));
|
|
27
|
-
// Type guard functions
|
|
28
|
-
function isPrimaryScrollEvent(event) {
|
|
29
|
-
return (event.type === EventType.SCROLL && 'scroll_data' in event && event.scroll_data.is_primary === true);
|
|
30
|
-
}
|
|
31
|
-
function isSecondaryScrollEvent(event) {
|
|
32
|
-
return (event.type === EventType.SCROLL && 'scroll_data' in event && event.scroll_data.is_primary === false);
|
|
33
|
-
}
|
|
34
48
|
//# sourceMappingURL=event.types.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event.types.js","sourceRoot":"","sources":["../../../src/types/event.types.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"event.types.js","sourceRoot":"","sources":["../../../src/types/event.types.ts"],"names":[],"mappings":";;;AAoBA;;GAEG;AACH,IAAY,SAmBX;AAnBD,WAAY,SAAS;IACnB,wCAAwC;IACxC,oCAAuB,CAAA;IACvB,8BAA8B;IAC9B,4BAAe,CAAA;IACf,gCAAgC;IAChC,8BAAiB,CAAA;IACjB,6BAA6B;IAC7B,4CAA+B,CAAA;IAC/B,0BAA0B;IAC1B,wCAA2B,CAAA;IAC3B,6BAA6B;IAC7B,8BAAiB,CAAA;IACjB,0BAA0B;IAC1B,sCAAyB,CAAA;IACzB,uCAAuC;IACvC,4BAAe,CAAA;IACf,kCAAkC;IAClC,kDAAqC,CAAA;AACvC,CAAC,EAnBW,SAAS,yBAAT,SAAS,QAmBpB;AAED;;GAEG;AACH,IAAY,eAKX;AALD,WAAY,eAAe;IACzB,uBAAuB;IACvB,4BAAS,CAAA;IACT,yBAAyB;IACzB,gCAAa,CAAA;AACf,CAAC,EALW,eAAe,+BAAf,eAAe,QAK1B;AAED;;GAEG;AACH,IAAY,SAKX;AALD,WAAY,SAAS;IACnB,gCAAgC;IAChC,kCAAqB,CAAA;IACrB,mCAAmC;IACnC,oDAAuC,CAAA;AACzC,CAAC,EALW,SAAS,yBAAT,SAAS,QAKpB"}
|
|
@@ -7,9 +7,11 @@ export * from './event.types';
|
|
|
7
7
|
export * from './log.types';
|
|
8
8
|
export * from './mode.types';
|
|
9
9
|
export * from './queue.types';
|
|
10
|
+
export * from './scroll.types';
|
|
10
11
|
export * from './session.types';
|
|
11
12
|
export * from './state.types';
|
|
12
13
|
export * from './test-bridge.types';
|
|
13
14
|
export * from './validation-error.types';
|
|
15
|
+
export * from './viewport.types';
|
|
14
16
|
export * from './window.types';
|
|
15
17
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,qBAAqB,CAAC;AACpC,cAAc,0BAA0B,CAAC;AACzC,cAAc,gBAAgB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,qBAAqB,CAAC;AACpC,cAAc,0BAA0B,CAAC;AACzC,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC"}
|
package/dist/cjs/types/index.js
CHANGED
|
@@ -23,9 +23,11 @@ __exportStar(require("./event.types"), exports);
|
|
|
23
23
|
__exportStar(require("./log.types"), exports);
|
|
24
24
|
__exportStar(require("./mode.types"), exports);
|
|
25
25
|
__exportStar(require("./queue.types"), exports);
|
|
26
|
+
__exportStar(require("./scroll.types"), exports);
|
|
26
27
|
__exportStar(require("./session.types"), exports);
|
|
27
28
|
__exportStar(require("./state.types"), exports);
|
|
28
29
|
__exportStar(require("./test-bridge.types"), exports);
|
|
29
30
|
__exportStar(require("./validation-error.types"), exports);
|
|
31
|
+
__exportStar(require("./viewport.types"), exports);
|
|
30
32
|
__exportStar(require("./window.types"), exports);
|
|
31
33
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,iDAA+B;AAC/B,iDAA+B;AAC/B,iDAA+B;AAC/B,kDAAgC;AAChC,gDAA8B;AAC9B,gDAA8B;AAC9B,8CAA4B;AAC5B,+CAA6B;AAC7B,gDAA8B;AAC9B,kDAAgC;AAChC,gDAA8B;AAC9B,sDAAoC;AACpC,2DAAyC;AACzC,iDAA+B"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,iDAA+B;AAC/B,iDAA+B;AAC/B,iDAA+B;AAC/B,kDAAgC;AAChC,gDAA8B;AAC9B,gDAA8B;AAC9B,8CAA4B;AAC5B,+CAA6B;AAC7B,gDAA8B;AAC9B,iDAA+B;AAC/B,kDAAgC;AAChC,gDAA8B;AAC9B,sDAAoC;AACpC,2DAAyC;AACzC,mDAAiC;AACjC,iDAA+B"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { EventData, EventType, ScrollData } from './event.types';
|
|
2
|
+
export type PrimaryScrollEvent = EventData & {
|
|
3
|
+
type: EventType.SCROLL;
|
|
4
|
+
scroll_data: ScrollData & {
|
|
5
|
+
is_primary: true;
|
|
6
|
+
};
|
|
7
|
+
};
|
|
8
|
+
export type SecondaryScrollEvent = EventData & {
|
|
9
|
+
type: EventType.SCROLL;
|
|
10
|
+
scroll_data: ScrollData & {
|
|
11
|
+
is_primary: false;
|
|
12
|
+
};
|
|
13
|
+
};
|
|
14
|
+
export declare function isPrimaryScrollEvent(event: EventData): event is PrimaryScrollEvent;
|
|
15
|
+
export declare function isSecondaryScrollEvent(event: EventData): event is SecondaryScrollEvent;
|
|
16
|
+
//# sourceMappingURL=scroll.types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scroll.types.d.ts","sourceRoot":"","sources":["../../../src/types/scroll.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAEjE,MAAM,MAAM,kBAAkB,GAAG,SAAS,GAAG;IAC3C,IAAI,EAAE,SAAS,CAAC,MAAM,CAAC;IACvB,WAAW,EAAE,UAAU,GAAG;QAAE,UAAU,EAAE,IAAI,CAAA;KAAE,CAAC;CAChD,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG,SAAS,GAAG;IAC7C,IAAI,EAAE,SAAS,CAAC,MAAM,CAAC;IACvB,WAAW,EAAE,UAAU,GAAG;QAAE,UAAU,EAAE,KAAK,CAAA;KAAE,CAAC;CACjD,CAAC;AAEF,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,SAAS,GAAG,KAAK,IAAI,kBAAkB,CAIlF;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,SAAS,GAAG,KAAK,IAAI,oBAAoB,CAItF"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isPrimaryScrollEvent = isPrimaryScrollEvent;
|
|
4
|
+
exports.isSecondaryScrollEvent = isSecondaryScrollEvent;
|
|
5
|
+
const event_types_1 = require("./event.types");
|
|
6
|
+
function isPrimaryScrollEvent(event) {
|
|
7
|
+
return (event.type === event_types_1.EventType.SCROLL && 'scroll_data' in event && event.scroll_data.is_primary === true);
|
|
8
|
+
}
|
|
9
|
+
function isSecondaryScrollEvent(event) {
|
|
10
|
+
return (event.type === event_types_1.EventType.SCROLL && 'scroll_data' in event && event.scroll_data.is_primary === false);
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=scroll.types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scroll.types.js","sourceRoot":"","sources":["../../../src/types/scroll.types.ts"],"names":[],"mappings":";;AAYA,oDAIC;AAED,wDAIC;AAtBD,+CAAiE;AAYjE,SAAgB,oBAAoB,CAAC,KAAgB;IACnD,OAAO,CACL,KAAK,CAAC,IAAI,KAAK,uBAAS,CAAC,MAAM,IAAI,aAAa,IAAI,KAAK,IAAK,KAAK,CAAC,WAA0B,CAAC,UAAU,KAAK,IAAI,CACnH,CAAC;AACJ,CAAC;AAED,SAAgB,sBAAsB,CAAC,KAAgB;IACrD,OAAO,CACL,KAAK,CAAC,IAAI,KAAK,uBAAS,CAAC,MAAM,IAAI,aAAa,IAAI,KAAK,IAAK,KAAK,CAAC,WAA0B,CAAC,UAAU,KAAK,KAAK,CACpH,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Element configuration for viewport tracking with optional identifiers
|
|
3
|
+
*/
|
|
4
|
+
export interface ViewportElement {
|
|
5
|
+
/**
|
|
6
|
+
* CSS selector for the element
|
|
7
|
+
* @example '.hero' | '.cta-button' | '#pricing'
|
|
8
|
+
*/
|
|
9
|
+
selector: string;
|
|
10
|
+
/**
|
|
11
|
+
* Optional unique identifier for analytics
|
|
12
|
+
* Used to distinguish between multiple elements with the same selector
|
|
13
|
+
* @example 'homepage-hero' | 'pricing-cta' | 'customer-testimonials'
|
|
14
|
+
*/
|
|
15
|
+
id?: string;
|
|
16
|
+
/**
|
|
17
|
+
* Optional human-readable name for dashboards and reports
|
|
18
|
+
* @example 'Homepage Hero Banner' | 'Pricing Page CTA' | 'Customer Testimonials Section'
|
|
19
|
+
*/
|
|
20
|
+
name?: string;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Configuration for viewport visibility tracking
|
|
24
|
+
*/
|
|
25
|
+
export interface ViewportConfig {
|
|
26
|
+
/**
|
|
27
|
+
* Elements to track with optional identifiers
|
|
28
|
+
* Provides analytics support with business identifiers
|
|
29
|
+
* @example [{ selector: '.hero', id: 'homepage-hero', name: 'Homepage Hero Banner' }]
|
|
30
|
+
*/
|
|
31
|
+
elements: ViewportElement[];
|
|
32
|
+
/**
|
|
33
|
+
* Minimum percentage of element that must be visible (0-1)
|
|
34
|
+
* @default 0.5 (50%)
|
|
35
|
+
*/
|
|
36
|
+
threshold?: number;
|
|
37
|
+
/**
|
|
38
|
+
* Minimum time (ms) element must be visible to count as a view
|
|
39
|
+
* @default 1000 (1 second)
|
|
40
|
+
*/
|
|
41
|
+
minDwellTime?: number;
|
|
42
|
+
/**
|
|
43
|
+
* Cooldown period (ms) before same element can fire visibility event again
|
|
44
|
+
* Prevents repeated events from carousels, sticky headers, and scrolling patterns
|
|
45
|
+
* @default 60000 (60 seconds)
|
|
46
|
+
*/
|
|
47
|
+
cooldownPeriod?: number;
|
|
48
|
+
/**
|
|
49
|
+
* Maximum number of elements to track simultaneously (Phase 3)
|
|
50
|
+
* Prevents memory/server issues with broad selectors
|
|
51
|
+
* @default 100
|
|
52
|
+
*/
|
|
53
|
+
maxTrackedElements?: number;
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=viewport.types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"viewport.types.d.ts","sourceRoot":"","sources":["../../../src/types/viewport.types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B;;;OAGG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;;;OAIG;IACH,EAAE,CAAC,EAAE,MAAM,CAAC;IAEZ;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B;;;;OAIG;IACH,QAAQ,EAAE,eAAe,EAAE,CAAC;IAE5B;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;;;OAIG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"viewport.types.js","sourceRoot":"","sources":["../../../src/types/viewport.types.ts"],"names":[],"mappings":""}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-validations.utils.d.ts","sourceRoot":"","sources":["../../../../src/utils/validations/config-validations.utils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"config-validations.utils.d.ts","sourceRoot":"","sources":["../../../../src/utils/validations/config-validations.utils.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAQrC;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB,GAAI,SAAS,MAAM,KAAG,IA4FnD,CAAC;AA8IF;;;;;;;GAOG;AACH,eAAO,MAAM,0BAA0B,GAAI,SAAS,MAAM,KAAG,MAmC5D,CAAC"}
|
|
@@ -67,8 +67,86 @@ const validateAppConfig = (config) => {
|
|
|
67
67
|
}
|
|
68
68
|
}
|
|
69
69
|
}
|
|
70
|
+
if (config.pageViewThrottleMs !== undefined) {
|
|
71
|
+
if (typeof config.pageViewThrottleMs !== 'number' || config.pageViewThrottleMs < 0) {
|
|
72
|
+
throw new validation_error_types_1.AppConfigValidationError(constants_1.VALIDATION_MESSAGES.INVALID_PAGE_VIEW_THROTTLE, 'config');
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
if (config.clickThrottleMs !== undefined) {
|
|
76
|
+
if (typeof config.clickThrottleMs !== 'number' || config.clickThrottleMs < 0) {
|
|
77
|
+
throw new validation_error_types_1.AppConfigValidationError(constants_1.VALIDATION_MESSAGES.INVALID_CLICK_THROTTLE, 'config');
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
if (config.maxSameEventPerMinute !== undefined) {
|
|
81
|
+
if (typeof config.maxSameEventPerMinute !== 'number' || config.maxSameEventPerMinute <= 0) {
|
|
82
|
+
throw new validation_error_types_1.AppConfigValidationError(constants_1.VALIDATION_MESSAGES.INVALID_MAX_SAME_EVENT_PER_MINUTE, 'config');
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
if (config.viewport !== undefined) {
|
|
86
|
+
validateViewportConfig(config.viewport);
|
|
87
|
+
}
|
|
70
88
|
};
|
|
71
89
|
exports.validateAppConfig = validateAppConfig;
|
|
90
|
+
/**
|
|
91
|
+
* Validates viewport configuration
|
|
92
|
+
* @param viewport - Viewport configuration to validate
|
|
93
|
+
*/
|
|
94
|
+
const validateViewportConfig = (viewport) => {
|
|
95
|
+
if (typeof viewport !== 'object' || viewport === null) {
|
|
96
|
+
throw new validation_error_types_1.AppConfigValidationError(constants_1.VALIDATION_MESSAGES.INVALID_VIEWPORT_CONFIG, 'config');
|
|
97
|
+
}
|
|
98
|
+
// Validate elements array
|
|
99
|
+
if (!viewport.elements || !Array.isArray(viewport.elements)) {
|
|
100
|
+
throw new validation_error_types_1.AppConfigValidationError(constants_1.VALIDATION_MESSAGES.INVALID_VIEWPORT_ELEMENTS, 'config');
|
|
101
|
+
}
|
|
102
|
+
if (viewport.elements.length === 0) {
|
|
103
|
+
throw new validation_error_types_1.AppConfigValidationError(constants_1.VALIDATION_MESSAGES.INVALID_VIEWPORT_ELEMENTS, 'config');
|
|
104
|
+
}
|
|
105
|
+
// Track unique selectors to detect duplicates
|
|
106
|
+
const uniqueSelectors = new Set();
|
|
107
|
+
// Validate each element
|
|
108
|
+
for (const element of viewport.elements) {
|
|
109
|
+
if (!element.selector || typeof element.selector !== 'string' || !element.selector.trim()) {
|
|
110
|
+
throw new validation_error_types_1.AppConfigValidationError(constants_1.VALIDATION_MESSAGES.INVALID_VIEWPORT_ELEMENT, 'config');
|
|
111
|
+
}
|
|
112
|
+
// Check for duplicate selectors
|
|
113
|
+
const normalizedSelector = element.selector.trim();
|
|
114
|
+
if (uniqueSelectors.has(normalizedSelector)) {
|
|
115
|
+
throw new validation_error_types_1.AppConfigValidationError(`Duplicate viewport selector found: "${normalizedSelector}". Each selector should appear only once.`, 'config');
|
|
116
|
+
}
|
|
117
|
+
uniqueSelectors.add(normalizedSelector);
|
|
118
|
+
if (element.id !== undefined && (typeof element.id !== 'string' || !element.id.trim())) {
|
|
119
|
+
throw new validation_error_types_1.AppConfigValidationError(constants_1.VALIDATION_MESSAGES.INVALID_VIEWPORT_ELEMENT_ID, 'config');
|
|
120
|
+
}
|
|
121
|
+
if (element.name !== undefined && (typeof element.name !== 'string' || !element.name.trim())) {
|
|
122
|
+
throw new validation_error_types_1.AppConfigValidationError(constants_1.VALIDATION_MESSAGES.INVALID_VIEWPORT_ELEMENT_NAME, 'config');
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
// Validate threshold
|
|
126
|
+
if (viewport.threshold !== undefined) {
|
|
127
|
+
if (typeof viewport.threshold !== 'number' || viewport.threshold < 0 || viewport.threshold > 1) {
|
|
128
|
+
throw new validation_error_types_1.AppConfigValidationError(constants_1.VALIDATION_MESSAGES.INVALID_VIEWPORT_THRESHOLD, 'config');
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
// Validate minDwellTime
|
|
132
|
+
if (viewport.minDwellTime !== undefined) {
|
|
133
|
+
if (typeof viewport.minDwellTime !== 'number' || viewport.minDwellTime < 0) {
|
|
134
|
+
throw new validation_error_types_1.AppConfigValidationError(constants_1.VALIDATION_MESSAGES.INVALID_VIEWPORT_MIN_DWELL_TIME, 'config');
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
// Validate cooldownPeriod
|
|
138
|
+
if (viewport.cooldownPeriod !== undefined) {
|
|
139
|
+
if (typeof viewport.cooldownPeriod !== 'number' || viewport.cooldownPeriod < 0) {
|
|
140
|
+
throw new validation_error_types_1.AppConfigValidationError(constants_1.VALIDATION_MESSAGES.INVALID_VIEWPORT_COOLDOWN_PERIOD, 'config');
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
// Validate maxTrackedElements
|
|
144
|
+
if (viewport.maxTrackedElements !== undefined) {
|
|
145
|
+
if (typeof viewport.maxTrackedElements !== 'number' || viewport.maxTrackedElements <= 0) {
|
|
146
|
+
throw new validation_error_types_1.AppConfigValidationError(constants_1.VALIDATION_MESSAGES.INVALID_VIEWPORT_MAX_TRACKED_ELEMENTS, 'config');
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
};
|
|
72
150
|
/**
|
|
73
151
|
* Validates integrations configuration
|
|
74
152
|
* @param integrations - Integrations configuration to validate
|
|
@@ -131,6 +209,9 @@ const validateAndNormalizeConfig = (config) => {
|
|
|
131
209
|
sensitiveQueryParams: config?.sensitiveQueryParams ?? [],
|
|
132
210
|
errorSampling: config?.errorSampling ?? error_constants_1.DEFAULT_ERROR_SAMPLING_RATE,
|
|
133
211
|
samplingRate: config?.samplingRate ?? constants_1.DEFAULT_SAMPLING_RATE,
|
|
212
|
+
pageViewThrottleMs: config?.pageViewThrottleMs ?? constants_1.DEFAULT_PAGE_VIEW_THROTTLE_MS,
|
|
213
|
+
clickThrottleMs: config?.clickThrottleMs ?? constants_1.DEFAULT_CLICK_THROTTLE_MS,
|
|
214
|
+
maxSameEventPerMinute: config?.maxSameEventPerMinute ?? constants_1.MAX_SAME_EVENT_PER_MINUTE,
|
|
134
215
|
};
|
|
135
216
|
// Normalize integrations
|
|
136
217
|
if (normalizedConfig.integrations?.custom) {
|
|
@@ -139,6 +220,16 @@ const validateAndNormalizeConfig = (config) => {
|
|
|
139
220
|
allowHttp: normalizedConfig.integrations.custom.allowHttp ?? false,
|
|
140
221
|
};
|
|
141
222
|
}
|
|
223
|
+
// Normalize viewport config
|
|
224
|
+
if (normalizedConfig.viewport) {
|
|
225
|
+
normalizedConfig.viewport = {
|
|
226
|
+
...normalizedConfig.viewport,
|
|
227
|
+
threshold: normalizedConfig.viewport.threshold ?? 0.5,
|
|
228
|
+
minDwellTime: normalizedConfig.viewport.minDwellTime ?? constants_1.DEFAULT_VISIBILITY_TIMEOUT_MS,
|
|
229
|
+
cooldownPeriod: normalizedConfig.viewport.cooldownPeriod ?? constants_1.DEFAULT_VIEWPORT_COOLDOWN_PERIOD,
|
|
230
|
+
maxTrackedElements: normalizedConfig.viewport.maxTrackedElements ?? constants_1.DEFAULT_VIEWPORT_MAX_TRACKED_ELEMENTS,
|
|
231
|
+
};
|
|
232
|
+
}
|
|
142
233
|
return normalizedConfig;
|
|
143
234
|
};
|
|
144
235
|
exports.validateAndNormalizeConfig = validateAndNormalizeConfig;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-validations.utils.js","sourceRoot":"","sources":["../../../../src/utils/validations/config-validations.utils.ts"],"names":[],"mappings":";;;AAAA,+
|
|
1
|
+
{"version":3,"file":"config-validations.utils.js","sourceRoot":"","sources":["../../../../src/utils/validations/config-validations.utils.ts"],"names":[],"mappings":";;;AAAA,+CAYyB;AACzB,qEAA8E;AAE9E,+EAK4C;AAE5C;;;;;;GAMG;AACI,MAAM,iBAAiB,GAAG,CAAC,MAAe,EAAQ,EAAE;IACzD,IAAI,MAAM,KAAK,SAAS,IAAI,CAAC,MAAM,KAAK,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ,CAAC,EAAE,CAAC;QAC5E,MAAM,IAAI,iDAAwB,CAAC,iCAAiC,EAAE,QAAQ,CAAC,CAAC;IAClF,CAAC;IAED,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO;IACT,CAAC;IAED,IAAI,MAAM,CAAC,cAAc,KAAK,SAAS,EAAE,CAAC;QACxC,IACE,OAAO,MAAM,CAAC,cAAc,KAAK,QAAQ;YACzC,MAAM,CAAC,cAAc,GAAG,kCAAsB;YAC9C,MAAM,CAAC,cAAc,GAAG,kCAAsB,EAC9C,CAAC;YACD,MAAM,IAAI,sDAA6B,CAAC,+BAAmB,CAAC,uBAAuB,EAAE,QAAQ,CAAC,CAAC;QACjG,CAAC;IACH,CAAC;IAED,IAAI,MAAM,CAAC,cAAc,KAAK,SAAS,EAAE,CAAC;QACxC,IAAI,OAAO,MAAM,CAAC,cAAc,KAAK,QAAQ,IAAI,MAAM,CAAC,cAAc,KAAK,IAAI,EAAE,CAAC;YAChF,MAAM,IAAI,iDAAwB,CAAC,+BAAmB,CAAC,uBAAuB,EAAE,QAAQ,CAAC,CAAC;QAC5F,CAAC;IACH,CAAC;IAED,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;QACxB,oBAAoB,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;IAC5C,CAAC;IAED,IAAI,MAAM,CAAC,oBAAoB,KAAK,SAAS,EAAE,CAAC;QAC9C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,oBAAoB,CAAC,EAAE,CAAC;YAChD,MAAM,IAAI,iDAAwB,CAAC,+BAAmB,CAAC,8BAA8B,EAAE,QAAQ,CAAC,CAAC;QACnG,CAAC;QAED,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,oBAAoB,EAAE,CAAC;YAChD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;gBAC9B,MAAM,IAAI,iDAAwB,CAAC,4CAA4C,EAAE,QAAQ,CAAC,CAAC;YAC7F,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,MAAM,CAAC,aAAa,KAAK,SAAS,EAAE,CAAC;QACvC,IAAI,OAAO,MAAM,CAAC,aAAa,KAAK,QAAQ,IAAI,MAAM,CAAC,aAAa,GAAG,CAAC,IAAI,MAAM,CAAC,aAAa,GAAG,CAAC,EAAE,CAAC;YACrG,MAAM,IAAI,oDAA2B,CAAC,+BAAmB,CAAC,2BAA2B,EAAE,QAAQ,CAAC,CAAC;QACnG,CAAC;IACH,CAAC;IAED,IAAI,MAAM,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;QACtC,IAAI,OAAO,MAAM,CAAC,YAAY,KAAK,QAAQ,IAAI,MAAM,CAAC,YAAY,GAAG,CAAC,IAAI,MAAM,CAAC,YAAY,GAAG,CAAC,EAAE,CAAC;YAClG,MAAM,IAAI,oDAA2B,CAAC,+BAAmB,CAAC,qBAAqB,EAAE,QAAQ,CAAC,CAAC;QAC7F,CAAC;IACH,CAAC;IAED,IAAI,MAAM,CAAC,qBAAqB,KAAK,SAAS,EAAE,CAAC;QAC/C,IAAI,OAAO,MAAM,CAAC,qBAAqB,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,qBAAqB,CAAC,IAAI,EAAE,EAAE,CAAC;YAC7F,MAAM,IAAI,iDAAwB,CAAC,+BAAmB,CAAC,+BAA+B,EAAE,QAAQ,CAAC,CAAC;QACpG,CAAC;QAED,iEAAiE;QACjE,IAAI,MAAM,CAAC,qBAAqB,KAAK,QAAQ,EAAE,CAAC;YAC9C,IAAI,CAAC;gBACH,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC;YACvD,CAAC;YAAC,MAAM,CAAC;gBACP,MAAM,IAAI,iDAAwB,CAChC,GAAG,+BAAmB,CAAC,sCAAsC,MAAM,MAAM,CAAC,qBAAqB,GAAG,EAClG,QAAQ,CACT,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,MAAM,CAAC,kBAAkB,KAAK,SAAS,EAAE,CAAC;QAC5C,IAAI,OAAO,MAAM,CAAC,kBAAkB,KAAK,QAAQ,IAAI,MAAM,CAAC,kBAAkB,GAAG,CAAC,EAAE,CAAC;YACnF,MAAM,IAAI,iDAAwB,CAAC,+BAAmB,CAAC,0BAA0B,EAAE,QAAQ,CAAC,CAAC;QAC/F,CAAC;IACH,CAAC;IAED,IAAI,MAAM,CAAC,eAAe,KAAK,SAAS,EAAE,CAAC;QACzC,IAAI,OAAO,MAAM,CAAC,eAAe,KAAK,QAAQ,IAAI,MAAM,CAAC,eAAe,GAAG,CAAC,EAAE,CAAC;YAC7E,MAAM,IAAI,iDAAwB,CAAC,+BAAmB,CAAC,sBAAsB,EAAE,QAAQ,CAAC,CAAC;QAC3F,CAAC;IACH,CAAC;IAED,IAAI,MAAM,CAAC,qBAAqB,KAAK,SAAS,EAAE,CAAC;QAC/C,IAAI,OAAO,MAAM,CAAC,qBAAqB,KAAK,QAAQ,IAAI,MAAM,CAAC,qBAAqB,IAAI,CAAC,EAAE,CAAC;YAC1F,MAAM,IAAI,iDAAwB,CAAC,+BAAmB,CAAC,iCAAiC,EAAE,QAAQ,CAAC,CAAC;QACtG,CAAC;IACH,CAAC;IAED,IAAI,MAAM,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QAClC,sBAAsB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC1C,CAAC;AACH,CAAC,CAAC;AA5FW,QAAA,iBAAiB,qBA4F5B;AAEF;;;GAGG;AACH,MAAM,sBAAsB,GAAG,CAAC,QAA4B,EAAQ,EAAE;IACpE,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;QACtD,MAAM,IAAI,iDAAwB,CAAC,+BAAmB,CAAC,uBAAuB,EAAE,QAAQ,CAAC,CAAC;IAC5F,CAAC;IAED,0BAA0B;IAC1B,IAAI,CAAC,QAAQ,CAAC,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC5D,MAAM,IAAI,iDAAwB,CAAC,+BAAmB,CAAC,yBAAyB,EAAE,QAAQ,CAAC,CAAC;IAC9F,CAAC;IAED,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACnC,MAAM,IAAI,iDAAwB,CAAC,+BAAmB,CAAC,yBAAyB,EAAE,QAAQ,CAAC,CAAC;IAC9F,CAAC;IAED,8CAA8C;IAC9C,MAAM,eAAe,GAAG,IAAI,GAAG,EAAU,CAAC;IAE1C,wBAAwB;IACxB,KAAK,MAAM,OAAO,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC;QACxC,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,OAAO,OAAO,CAAC,QAAQ,KAAK,QAAQ,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC;YAC1F,MAAM,IAAI,iDAAwB,CAAC,+BAAmB,CAAC,wBAAwB,EAAE,QAAQ,CAAC,CAAC;QAC7F,CAAC;QAED,gCAAgC;QAChC,MAAM,kBAAkB,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QACnD,IAAI,eAAe,CAAC,GAAG,CAAC,kBAAkB,CAAC,EAAE,CAAC;YAC5C,MAAM,IAAI,iDAAwB,CAChC,uCAAuC,kBAAkB,2CAA2C,EACpG,QAAQ,CACT,CAAC;QACJ,CAAC;QACD,eAAe,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;QAExC,IAAI,OAAO,CAAC,EAAE,KAAK,SAAS,IAAI,CAAC,OAAO,OAAO,CAAC,EAAE,KAAK,QAAQ,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;YACvF,MAAM,IAAI,iDAAwB,CAAC,+BAAmB,CAAC,2BAA2B,EAAE,QAAQ,CAAC,CAAC;QAChG,CAAC;QAED,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,IAAI,CAAC,OAAO,OAAO,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;YAC7F,MAAM,IAAI,iDAAwB,CAAC,+BAAmB,CAAC,6BAA6B,EAAE,QAAQ,CAAC,CAAC;QAClG,CAAC;IACH,CAAC;IAED,qBAAqB;IACrB,IAAI,QAAQ,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;QACrC,IAAI,OAAO,QAAQ,CAAC,SAAS,KAAK,QAAQ,IAAI,QAAQ,CAAC,SAAS,GAAG,CAAC,IAAI,QAAQ,CAAC,SAAS,GAAG,CAAC,EAAE,CAAC;YAC/F,MAAM,IAAI,iDAAwB,CAAC,+BAAmB,CAAC,0BAA0B,EAAE,QAAQ,CAAC,CAAC;QAC/F,CAAC;IACH,CAAC;IAED,wBAAwB;IACxB,IAAI,QAAQ,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;QACxC,IAAI,OAAO,QAAQ,CAAC,YAAY,KAAK,QAAQ,IAAI,QAAQ,CAAC,YAAY,GAAG,CAAC,EAAE,CAAC;YAC3E,MAAM,IAAI,iDAAwB,CAAC,+BAAmB,CAAC,+BAA+B,EAAE,QAAQ,CAAC,CAAC;QACpG,CAAC;IACH,CAAC;IAED,0BAA0B;IAC1B,IAAI,QAAQ,CAAC,cAAc,KAAK,SAAS,EAAE,CAAC;QAC1C,IAAI,OAAO,QAAQ,CAAC,cAAc,KAAK,QAAQ,IAAI,QAAQ,CAAC,cAAc,GAAG,CAAC,EAAE,CAAC;YAC/E,MAAM,IAAI,iDAAwB,CAAC,+BAAmB,CAAC,gCAAgC,EAAE,QAAQ,CAAC,CAAC;QACrG,CAAC;IACH,CAAC;IAED,8BAA8B;IAC9B,IAAI,QAAQ,CAAC,kBAAkB,KAAK,SAAS,EAAE,CAAC;QAC9C,IAAI,OAAO,QAAQ,CAAC,kBAAkB,KAAK,QAAQ,IAAI,QAAQ,CAAC,kBAAkB,IAAI,CAAC,EAAE,CAAC;YACxF,MAAM,IAAI,iDAAwB,CAAC,+BAAmB,CAAC,qCAAqC,EAAE,QAAQ,CAAC,CAAC;QAC1G,CAAC;IACH,CAAC;AACH,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,oBAAoB,GAAG,CAAC,YAAoC,EAAQ,EAAE;IAC1E,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,OAAO;IACT,CAAC;IAED,IAAI,YAAY,CAAC,QAAQ,EAAE,CAAC;QAC1B,IACE,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS;YAChC,OAAO,YAAY,CAAC,QAAQ,CAAC,SAAS,KAAK,QAAQ;YACnD,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE,EAC7C,CAAC;YACD,MAAM,IAAI,mDAA0B,CAAC,+BAAmB,CAAC,2BAA2B,EAAE,QAAQ,CAAC,CAAC;QAClG,CAAC;IACH,CAAC;IAED,IAAI,YAAY,CAAC,MAAM,EAAE,CAAC;QACxB,IACE,CAAC,YAAY,CAAC,MAAM,CAAC,aAAa;YAClC,OAAO,YAAY,CAAC,MAAM,CAAC,aAAa,KAAK,QAAQ;YACrD,YAAY,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,EAAE,KAAK,EAAE,EAC/C,CAAC;YACD,MAAM,IAAI,mDAA0B,CAAC,+BAAmB,CAAC,sBAAsB,EAAE,QAAQ,CAAC,CAAC;QAC7F,CAAC;QAED,IAAI,YAAY,CAAC,MAAM,CAAC,SAAS,KAAK,SAAS,IAAI,OAAO,YAAY,CAAC,MAAM,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;YACtG,MAAM,IAAI,mDAA0B,CAAC,6BAA6B,EAAE,QAAQ,CAAC,CAAC;QAChF,CAAC;QAED,MAAM,aAAa,GAAG,YAAY,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;QAE/D,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAClF,MAAM,IAAI,mDAA0B,CAAC,wDAAwD,EAAE,QAAQ,CAAC,CAAC;QAC3G,CAAC;QAED,MAAM,SAAS,GAAG,YAAY,CAAC,MAAM,CAAC,SAAS,IAAI,KAAK,CAAC;QAEzD,IAAI,CAAC,SAAS,IAAI,aAAa,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YACtD,MAAM,IAAI,mDAA0B,CAClC,wHAAwH,EACxH,QAAQ,CACT,CAAC;QACJ,CAAC;IACH,CAAC;IAED,IAAI,YAAY,CAAC,eAAe,EAAE,CAAC;QACjC,IACE,CAAC,YAAY,CAAC,eAAe,CAAC,aAAa;YAC3C,OAAO,YAAY,CAAC,eAAe,CAAC,aAAa,KAAK,QAAQ;YAC9D,YAAY,CAAC,eAAe,CAAC,aAAa,CAAC,IAAI,EAAE,KAAK,EAAE,EACxD,CAAC;YACD,MAAM,IAAI,mDAA0B,CAAC,+BAAmB,CAAC,2BAA2B,EAAE,QAAQ,CAAC,CAAC;QAClG,CAAC;QAED,MAAM,aAAa,GAAG,YAAY,CAAC,eAAe,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;QAExE,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC;YACtC,MAAM,IAAI,mDAA0B,CAAC,+DAA+D,EAAE,QAAQ,CAAC,CAAC;QAClH,CAAC;IACH,CAAC;AACH,CAAC,CAAC;AAEF;;;;;;;GAOG;AACI,MAAM,0BAA0B,GAAG,CAAC,MAAe,EAAU,EAAE;IACpE,IAAA,yBAAiB,EAAC,MAAM,CAAC,CAAC;IAE1B,MAAM,gBAAgB,GAAW;QAC/B,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC;QACjB,cAAc,EAAE,MAAM,EAAE,cAAc,IAAI,mCAAuB;QACjE,cAAc,EAAE,MAAM,EAAE,cAAc,IAAI,EAAE;QAC5C,oBAAoB,EAAE,MAAM,EAAE,oBAAoB,IAAI,EAAE;QACxD,aAAa,EAAE,MAAM,EAAE,aAAa,IAAI,6CAA2B;QACnE,YAAY,EAAE,MAAM,EAAE,YAAY,IAAI,iCAAqB;QAC3D,kBAAkB,EAAE,MAAM,EAAE,kBAAkB,IAAI,yCAA6B;QAC/E,eAAe,EAAE,MAAM,EAAE,eAAe,IAAI,qCAAyB;QACrE,qBAAqB,EAAE,MAAM,EAAE,qBAAqB,IAAI,qCAAyB;KAClF,CAAC;IAEF,yBAAyB;IACzB,IAAI,gBAAgB,CAAC,YAAY,EAAE,MAAM,EAAE,CAAC;QAC1C,gBAAgB,CAAC,YAAY,CAAC,MAAM,GAAG;YACrC,GAAG,gBAAgB,CAAC,YAAY,CAAC,MAAM;YACvC,SAAS,EAAE,gBAAgB,CAAC,YAAY,CAAC,MAAM,CAAC,SAAS,IAAI,KAAK;SACnE,CAAC;IACJ,CAAC;IAED,4BAA4B;IAC5B,IAAI,gBAAgB,CAAC,QAAQ,EAAE,CAAC;QAC9B,gBAAgB,CAAC,QAAQ,GAAG;YAC1B,GAAG,gBAAgB,CAAC,QAAQ;YAC5B,SAAS,EAAE,gBAAgB,CAAC,QAAQ,CAAC,SAAS,IAAI,GAAG;YACrD,YAAY,EAAE,gBAAgB,CAAC,QAAQ,CAAC,YAAY,IAAI,yCAA6B;YACrF,cAAc,EAAE,gBAAgB,CAAC,QAAQ,CAAC,cAAc,IAAI,4CAAgC;YAC5F,kBAAkB,EAAE,gBAAgB,CAAC,QAAQ,CAAC,kBAAkB,IAAI,iDAAqC;SAC1G,CAAC;IACJ,CAAC;IAED,OAAO,gBAAgB,CAAC;AAC1B,CAAC,CAAC;AAnCW,QAAA,0BAA0B,8BAmCrC"}
|
package/dist/esm/app.d.ts
CHANGED
|
@@ -4,6 +4,7 @@ import { SessionHandler } from './handlers/session.handler';
|
|
|
4
4
|
import { PageViewHandler } from './handlers/page-view.handler';
|
|
5
5
|
import { ClickHandler } from './handlers/click.handler';
|
|
6
6
|
import { ScrollHandler } from './handlers/scroll.handler';
|
|
7
|
+
import { ViewportHandler } from './handlers/viewport.handler';
|
|
7
8
|
import { Config, EmitterCallback, EmitterMap } from './types';
|
|
8
9
|
import { GoogleAnalyticsIntegration } from './integrations/google-analytics.integration';
|
|
9
10
|
import { StorageManager } from './managers/storage.manager';
|
|
@@ -24,6 +25,7 @@ export declare class App extends StateManager {
|
|
|
24
25
|
scroll?: ScrollHandler;
|
|
25
26
|
performance?: PerformanceHandler;
|
|
26
27
|
error?: ErrorHandler;
|
|
28
|
+
viewport?: ViewportHandler;
|
|
27
29
|
};
|
|
28
30
|
protected integrations: {
|
|
29
31
|
googleAnalytics?: GoogleAnalyticsIntegration;
|