@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.
Files changed (124) hide show
  1. package/README.md +128 -407
  2. package/dist/browser/tracelog.esm.js +1173 -771
  3. package/dist/browser/tracelog.esm.js.map +1 -1
  4. package/dist/browser/tracelog.js +2 -2
  5. package/dist/browser/tracelog.js.map +1 -1
  6. package/dist/cjs/app.d.ts +2 -0
  7. package/dist/cjs/app.d.ts.map +1 -1
  8. package/dist/cjs/app.js +5 -0
  9. package/dist/cjs/app.js.map +1 -1
  10. package/dist/cjs/constants/config.constants.d.ts +26 -1
  11. package/dist/cjs/constants/config.constants.d.ts.map +1 -1
  12. package/dist/cjs/constants/config.constants.js +30 -3
  13. package/dist/cjs/constants/config.constants.js.map +1 -1
  14. package/dist/cjs/constants/error.constants.d.ts +15 -0
  15. package/dist/cjs/constants/error.constants.d.ts.map +1 -1
  16. package/dist/cjs/constants/error.constants.js +19 -1
  17. package/dist/cjs/constants/error.constants.js.map +1 -1
  18. package/dist/cjs/handlers/click.handler.d.ts +15 -0
  19. package/dist/cjs/handlers/click.handler.d.ts.map +1 -1
  20. package/dist/cjs/handlers/click.handler.js +69 -0
  21. package/dist/cjs/handlers/click.handler.js.map +1 -1
  22. package/dist/cjs/handlers/error.handler.d.ts +7 -0
  23. package/dist/cjs/handlers/error.handler.d.ts.map +1 -1
  24. package/dist/cjs/handlers/error.handler.js +35 -0
  25. package/dist/cjs/handlers/error.handler.js.map +1 -1
  26. package/dist/cjs/handlers/page-view.handler.d.ts +1 -0
  27. package/dist/cjs/handlers/page-view.handler.d.ts.map +1 -1
  28. package/dist/cjs/handlers/page-view.handler.js +11 -0
  29. package/dist/cjs/handlers/page-view.handler.js.map +1 -1
  30. package/dist/cjs/handlers/performance.handler.js +5 -5
  31. package/dist/cjs/handlers/performance.handler.js.map +1 -1
  32. package/dist/cjs/handlers/viewport.handler.d.ts +44 -0
  33. package/dist/cjs/handlers/viewport.handler.d.ts.map +1 -0
  34. package/dist/cjs/handlers/viewport.handler.js +286 -0
  35. package/dist/cjs/handlers/viewport.handler.js.map +1 -0
  36. package/dist/cjs/managers/event.manager.d.ts +23 -3
  37. package/dist/cjs/managers/event.manager.d.ts.map +1 -1
  38. package/dist/cjs/managers/event.manager.js +166 -10
  39. package/dist/cjs/managers/event.manager.js.map +1 -1
  40. package/dist/cjs/managers/sender.manager.d.ts.map +1 -1
  41. package/dist/cjs/managers/sender.manager.js +12 -0
  42. package/dist/cjs/managers/sender.manager.js.map +1 -1
  43. package/dist/cjs/types/config.types.d.ts +9 -0
  44. package/dist/cjs/types/config.types.d.ts.map +1 -1
  45. package/dist/cjs/types/config.types.js.map +1 -1
  46. package/dist/cjs/types/event.types.d.ts +140 -16
  47. package/dist/cjs/types/event.types.d.ts.map +1 -1
  48. package/dist/cjs/types/event.types.js +23 -9
  49. package/dist/cjs/types/event.types.js.map +1 -1
  50. package/dist/cjs/types/index.d.ts +2 -0
  51. package/dist/cjs/types/index.d.ts.map +1 -1
  52. package/dist/cjs/types/index.js +2 -0
  53. package/dist/cjs/types/index.js.map +1 -1
  54. package/dist/cjs/types/scroll.types.d.ts +16 -0
  55. package/dist/cjs/types/scroll.types.d.ts.map +1 -0
  56. package/dist/cjs/types/scroll.types.js +12 -0
  57. package/dist/cjs/types/scroll.types.js.map +1 -0
  58. package/dist/cjs/types/viewport.types.d.ts +55 -0
  59. package/dist/cjs/types/viewport.types.d.ts.map +1 -0
  60. package/dist/cjs/types/viewport.types.js +3 -0
  61. package/dist/cjs/types/viewport.types.js.map +1 -0
  62. package/dist/cjs/utils/validations/config-validations.utils.d.ts.map +1 -1
  63. package/dist/cjs/utils/validations/config-validations.utils.js +91 -0
  64. package/dist/cjs/utils/validations/config-validations.utils.js.map +1 -1
  65. package/dist/esm/app.d.ts +2 -0
  66. package/dist/esm/app.d.ts.map +1 -1
  67. package/dist/esm/app.js +5 -0
  68. package/dist/esm/app.js.map +1 -1
  69. package/dist/esm/constants/config.constants.d.ts +26 -1
  70. package/dist/esm/constants/config.constants.d.ts.map +1 -1
  71. package/dist/esm/constants/config.constants.js +28 -1
  72. package/dist/esm/constants/config.constants.js.map +1 -1
  73. package/dist/esm/constants/error.constants.d.ts +15 -0
  74. package/dist/esm/constants/error.constants.d.ts.map +1 -1
  75. package/dist/esm/constants/error.constants.js +18 -0
  76. package/dist/esm/constants/error.constants.js.map +1 -1
  77. package/dist/esm/handlers/click.handler.d.ts +15 -0
  78. package/dist/esm/handlers/click.handler.d.ts.map +1 -1
  79. package/dist/esm/handlers/click.handler.js +70 -1
  80. package/dist/esm/handlers/click.handler.js.map +1 -1
  81. package/dist/esm/handlers/error.handler.d.ts +7 -0
  82. package/dist/esm/handlers/error.handler.d.ts.map +1 -1
  83. package/dist/esm/handlers/error.handler.js +36 -1
  84. package/dist/esm/handlers/error.handler.js.map +1 -1
  85. package/dist/esm/handlers/page-view.handler.d.ts +1 -0
  86. package/dist/esm/handlers/page-view.handler.d.ts.map +1 -1
  87. package/dist/esm/handlers/page-view.handler.js +11 -0
  88. package/dist/esm/handlers/page-view.handler.js.map +1 -1
  89. package/dist/esm/handlers/performance.handler.js +5 -5
  90. package/dist/esm/handlers/performance.handler.js.map +1 -1
  91. package/dist/esm/handlers/viewport.handler.d.ts +44 -0
  92. package/dist/esm/handlers/viewport.handler.d.ts.map +1 -0
  93. package/dist/esm/handlers/viewport.handler.js +282 -0
  94. package/dist/esm/handlers/viewport.handler.js.map +1 -0
  95. package/dist/esm/managers/event.manager.d.ts +23 -3
  96. package/dist/esm/managers/event.manager.d.ts.map +1 -1
  97. package/dist/esm/managers/event.manager.js +167 -11
  98. package/dist/esm/managers/event.manager.js.map +1 -1
  99. package/dist/esm/managers/sender.manager.d.ts.map +1 -1
  100. package/dist/esm/managers/sender.manager.js +13 -1
  101. package/dist/esm/managers/sender.manager.js.map +1 -1
  102. package/dist/esm/types/config.types.d.ts +9 -0
  103. package/dist/esm/types/config.types.d.ts.map +1 -1
  104. package/dist/esm/types/config.types.js.map +1 -1
  105. package/dist/esm/types/event.types.d.ts +140 -16
  106. package/dist/esm/types/event.types.d.ts.map +1 -1
  107. package/dist/esm/types/event.types.js +23 -7
  108. package/dist/esm/types/event.types.js.map +1 -1
  109. package/dist/esm/types/index.d.ts +2 -0
  110. package/dist/esm/types/index.d.ts.map +1 -1
  111. package/dist/esm/types/index.js +2 -0
  112. package/dist/esm/types/index.js.map +1 -1
  113. package/dist/esm/types/scroll.types.d.ts +16 -0
  114. package/dist/esm/types/scroll.types.d.ts.map +1 -0
  115. package/dist/esm/types/scroll.types.js +8 -0
  116. package/dist/esm/types/scroll.types.js.map +1 -0
  117. package/dist/esm/types/viewport.types.d.ts +55 -0
  118. package/dist/esm/types/viewport.types.d.ts.map +1 -0
  119. package/dist/esm/types/viewport.types.js +2 -0
  120. package/dist/esm/types/viewport.types.js.map +1 -0
  121. package/dist/esm/utils/validations/config-validations.utils.d.ts.map +1 -1
  122. package/dist/esm/utils/validations/config-validations.utils.js +92 -1
  123. package/dist/esm/utils/validations/config-validations.utils.js.map +1 -1
  124. 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
- ERROR = "error"
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
- export type PrimaryScrollEvent = EventData & {
31
- type: EventType.SCROLL;
32
- scroll_data: ScrollData & {
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
- export type ClickCoordinates = Pick<ClickData, 'x' | 'y' | 'relativeX' | 'relativeY'>;
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":"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"}
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
- exports.isPrimaryScrollEvent = isPrimaryScrollEvent;
5
- exports.isSecondaryScrollEvent = isSecondaryScrollEvent;
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":";;;AA+CA,oDAIC;AAED,wDAIC;AApDD,IAAY,SASX;AATD,WAAY,SAAS;IACnB,oCAAuB,CAAA;IACvB,4BAAe,CAAA;IACf,8BAAiB,CAAA;IACjB,4CAA+B,CAAA;IAC/B,wCAA2B,CAAA;IAC3B,8BAAiB,CAAA;IACjB,sCAAyB,CAAA;IACzB,4BAAe,CAAA;AACjB,CAAC,EATW,SAAS,yBAAT,SAAS,QASpB;AAED,IAAY,eAGX;AAHD,WAAY,eAAe;IACzB,4BAAS,CAAA;IACT,gCAAa,CAAA;AACf,CAAC,EAHW,eAAe,+BAAf,eAAe,QAG1B;AAED,IAAY,SAGX;AAHD,WAAY,SAAS;IACnB,kCAAqB,CAAA;IACrB,oDAAuC,CAAA;AACzC,CAAC,EAHW,SAAS,yBAAT,SAAS,QAGpB;AAsBD,uBAAuB;AACvB,SAAgB,oBAAoB,CAAC,KAAgB;IACnD,OAAO,CACL,KAAK,CAAC,IAAI,KAAK,SAAS,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,SAAS,CAAC,MAAM,IAAI,aAAa,IAAI,KAAK,IAAK,KAAK,CAAC,WAA0B,CAAC,UAAU,KAAK,KAAK,CACpH,CAAC;AACJ,CAAC"}
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"}
@@ -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,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=viewport.types.js.map
@@ -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":"AAQA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAQrC;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB,GAAI,SAAS,MAAM,KAAG,IAsEnD,CAAC;AAmEF;;;;;;;GAOG;AACH,eAAO,MAAM,0BAA0B,GAAI,SAAS,MAAM,KAAG,MAqB5D,CAAC"}
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":"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"}
1
+ {"version":3,"file":"config-validations.utils.js","sourceRoot":"","sources":["../../../../src/utils/validations/config-validations.utils.ts"],"names":[],"mappings":"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"}
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;