@agentuity/frontend 0.1.1 → 0.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.
Files changed (80) hide show
  1. package/dist/analytics/beacon-standalone.d.ts +106 -0
  2. package/dist/analytics/beacon-standalone.d.ts.map +1 -0
  3. package/dist/analytics/beacon-standalone.js +577 -0
  4. package/dist/analytics/beacon-standalone.js.map +1 -0
  5. package/dist/analytics/index.d.ts +15 -5
  6. package/dist/analytics/index.d.ts.map +1 -1
  7. package/dist/analytics/index.js +21 -5
  8. package/dist/analytics/index.js.map +1 -1
  9. package/dist/analytics/types.d.ts +63 -35
  10. package/dist/analytics/types.d.ts.map +1 -1
  11. package/dist/beacon-script.d.ts +16 -0
  12. package/dist/beacon-script.d.ts.map +1 -0
  13. package/dist/beacon-script.js +3 -0
  14. package/dist/beacon-script.js.map +1 -0
  15. package/dist/beacon.js +1 -0
  16. package/dist/index.d.ts +2 -1
  17. package/dist/index.d.ts.map +1 -1
  18. package/dist/index.js +5 -2
  19. package/dist/index.js.map +1 -1
  20. package/package.json +4 -4
  21. package/src/analytics/beacon-standalone.ts +718 -0
  22. package/src/analytics/index.ts +29 -8
  23. package/src/analytics/types.ts +78 -49
  24. package/src/beacon-script.ts +24 -0
  25. package/src/index.ts +10 -7
  26. package/dist/analytics/beacon.d.ts +0 -15
  27. package/dist/analytics/beacon.d.ts.map +0 -1
  28. package/dist/analytics/beacon.js +0 -177
  29. package/dist/analytics/beacon.js.map +0 -1
  30. package/dist/analytics/collectors/clicks.d.ts +0 -10
  31. package/dist/analytics/collectors/clicks.d.ts.map +0 -1
  32. package/dist/analytics/collectors/clicks.js +0 -84
  33. package/dist/analytics/collectors/clicks.js.map +0 -1
  34. package/dist/analytics/collectors/errors.d.ts +0 -5
  35. package/dist/analytics/collectors/errors.d.ts.map +0 -1
  36. package/dist/analytics/collectors/errors.js +0 -43
  37. package/dist/analytics/collectors/errors.js.map +0 -1
  38. package/dist/analytics/collectors/forms.d.ts +0 -5
  39. package/dist/analytics/collectors/forms.d.ts.map +0 -1
  40. package/dist/analytics/collectors/forms.js +0 -55
  41. package/dist/analytics/collectors/forms.js.map +0 -1
  42. package/dist/analytics/collectors/pageview.d.ts +0 -15
  43. package/dist/analytics/collectors/pageview.d.ts.map +0 -1
  44. package/dist/analytics/collectors/pageview.js +0 -64
  45. package/dist/analytics/collectors/pageview.js.map +0 -1
  46. package/dist/analytics/collectors/scroll.d.ts +0 -17
  47. package/dist/analytics/collectors/scroll.d.ts.map +0 -1
  48. package/dist/analytics/collectors/scroll.js +0 -93
  49. package/dist/analytics/collectors/scroll.js.map +0 -1
  50. package/dist/analytics/collectors/spa.d.ts +0 -10
  51. package/dist/analytics/collectors/spa.d.ts.map +0 -1
  52. package/dist/analytics/collectors/spa.js +0 -53
  53. package/dist/analytics/collectors/spa.js.map +0 -1
  54. package/dist/analytics/collectors/visibility.d.ts +0 -18
  55. package/dist/analytics/collectors/visibility.d.ts.map +0 -1
  56. package/dist/analytics/collectors/visibility.js +0 -81
  57. package/dist/analytics/collectors/visibility.js.map +0 -1
  58. package/dist/analytics/collectors/webvitals.d.ts +0 -6
  59. package/dist/analytics/collectors/webvitals.d.ts.map +0 -1
  60. package/dist/analytics/collectors/webvitals.js +0 -111
  61. package/dist/analytics/collectors/webvitals.js.map +0 -1
  62. package/dist/analytics/events.d.ts +0 -18
  63. package/dist/analytics/events.d.ts.map +0 -1
  64. package/dist/analytics/events.js +0 -126
  65. package/dist/analytics/events.js.map +0 -1
  66. package/dist/analytics/offline.d.ts +0 -19
  67. package/dist/analytics/offline.d.ts.map +0 -1
  68. package/dist/analytics/offline.js +0 -145
  69. package/dist/analytics/offline.js.map +0 -1
  70. package/src/analytics/beacon.ts +0 -203
  71. package/src/analytics/collectors/clicks.ts +0 -100
  72. package/src/analytics/collectors/errors.ts +0 -49
  73. package/src/analytics/collectors/forms.ts +0 -64
  74. package/src/analytics/collectors/pageview.ts +0 -76
  75. package/src/analytics/collectors/scroll.ts +0 -112
  76. package/src/analytics/collectors/spa.ts +0 -60
  77. package/src/analytics/collectors/visibility.ts +0 -94
  78. package/src/analytics/collectors/webvitals.ts +0 -129
  79. package/src/analytics/events.ts +0 -146
  80. package/src/analytics/offline.ts +0 -163
@@ -1,5 +0,0 @@
1
- /**
2
- * Initialize form submission tracking
3
- */
4
- export declare function initFormTracking(): void;
5
- //# sourceMappingURL=forms.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"forms.d.ts","sourceRoot":"","sources":["../../../src/analytics/collectors/forms.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,IAAI,CAyDvC"}
@@ -1,55 +0,0 @@
1
- import { createBaseEvent } from './pageview';
2
- import { queueEvent } from '../events';
3
- /**
4
- * Initialize form submission tracking
5
- */
6
- export function initFormTracking() {
7
- if (typeof document === 'undefined') {
8
- return;
9
- }
10
- document.addEventListener('submit', (e) => {
11
- const form = e.target;
12
- if (!form || form.tagName !== 'FORM') {
13
- return;
14
- }
15
- const event = createBaseEvent('form_submit');
16
- event.event_name = 'form_submit';
17
- const eventData = {};
18
- // Form identification
19
- if (form.id) {
20
- eventData.form_id = form.id;
21
- }
22
- if (form.name) {
23
- eventData.form_name = form.name;
24
- }
25
- if (form.action) {
26
- eventData.form_action = form.action;
27
- }
28
- eventData.form_method = form.method || 'get';
29
- // Count form fields (don't capture values for privacy)
30
- const inputs = form.querySelectorAll('input, select, textarea');
31
- eventData.field_count = inputs.length;
32
- // Check for common form types
33
- const hasEmail = form.querySelector('input[type="email"]') !== null;
34
- const hasPassword = form.querySelector('input[type="password"]') !== null;
35
- const hasSearch = form.querySelector('input[type="search"]') !== null;
36
- if (hasEmail && hasPassword) {
37
- eventData.form_type = 'auth';
38
- }
39
- else if (hasEmail) {
40
- eventData.form_type = 'email';
41
- }
42
- else if (hasSearch) {
43
- eventData.form_type = 'search';
44
- }
45
- else if (hasPassword) {
46
- eventData.form_type = 'password';
47
- }
48
- else {
49
- eventData.form_type = 'other';
50
- }
51
- event.event_data = eventData;
52
- queueEvent(event);
53
- }, { capture: true });
54
- }
55
- //# sourceMappingURL=forms.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"forms.js","sourceRoot":"","sources":["../../../src/analytics/collectors/forms.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAEvC;;GAEG;AACH,MAAM,UAAU,gBAAgB;IAC/B,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE,CAAC;QACrC,OAAO;IACR,CAAC;IAED,QAAQ,CAAC,gBAAgB,CACxB,QAAQ,EACR,CAAC,CAAC,EAAE,EAAE;QACL,MAAM,IAAI,GAAG,CAAC,CAAC,MAAgC,CAAC;QAChD,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,MAAM,EAAE,CAAC;YACtC,OAAO;QACR,CAAC;QAED,MAAM,KAAK,GAAG,eAAe,CAAC,aAAa,CAAC,CAAC;QAC7C,KAAK,CAAC,UAAU,GAAG,aAAa,CAAC;QAEjC,MAAM,SAAS,GAA4B,EAAE,CAAC;QAE9C,sBAAsB;QACtB,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC;YACb,SAAS,CAAC,OAAO,GAAG,IAAI,CAAC,EAAE,CAAC;QAC7B,CAAC;QACD,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACf,SAAS,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC;QACjC,CAAC;QACD,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC;QACrC,CAAC;QACD,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,MAAM,IAAI,KAAK,CAAC;QAE7C,uDAAuD;QACvD,MAAM,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,yBAAyB,CAAC,CAAC;QAChE,SAAS,CAAC,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC;QAEtC,8BAA8B;QAC9B,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,qBAAqB,CAAC,KAAK,IAAI,CAAC;QACpE,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,wBAAwB,CAAC,KAAK,IAAI,CAAC;QAC1E,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,sBAAsB,CAAC,KAAK,IAAI,CAAC;QAEtE,IAAI,QAAQ,IAAI,WAAW,EAAE,CAAC;YAC7B,SAAS,CAAC,SAAS,GAAG,MAAM,CAAC;QAC9B,CAAC;aAAM,IAAI,QAAQ,EAAE,CAAC;YACrB,SAAS,CAAC,SAAS,GAAG,OAAO,CAAC;QAC/B,CAAC;aAAM,IAAI,SAAS,EAAE,CAAC;YACtB,SAAS,CAAC,SAAS,GAAG,QAAQ,CAAC;QAChC,CAAC;aAAM,IAAI,WAAW,EAAE,CAAC;YACxB,SAAS,CAAC,SAAS,GAAG,UAAU,CAAC;QAClC,CAAC;aAAM,CAAC;YACP,SAAS,CAAC,SAAS,GAAG,OAAO,CAAC;QAC/B,CAAC;QAED,KAAK,CAAC,UAAU,GAAG,SAAS,CAAC;QAE7B,UAAU,CAAC,KAAK,CAAC,CAAC;IACnB,CAAC,EACD,EAAE,OAAO,EAAE,IAAI,EAAE,CACjB,CAAC;AACH,CAAC"}
@@ -1,15 +0,0 @@
1
- import type { AnalyticsEvent } from '../types';
2
- /**
3
- * Create a base event with common properties
4
- */
5
- export declare function createBaseEvent(eventType: AnalyticsEvent['event_type']): AnalyticsEvent;
6
- /**
7
- * Track a pageview event
8
- */
9
- export declare function trackPageview(customPath?: string): void;
10
- /**
11
- * Initialize pageview tracking
12
- * Tracks initial pageview when called
13
- */
14
- export declare function initPageviewTracking(): void;
15
- //# sourceMappingURL=pageview.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pageview.d.ts","sourceRoot":"","sources":["../../../src/analytics/collectors/pageview.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAI/C;;GAEG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,cAAc,CAAC,YAAY,CAAC,GAAG,cAAc,CA2BvF;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAqBvD;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,IAAI,IAAI,CAS3C"}
@@ -1,64 +0,0 @@
1
- import { queueEvent } from '../events';
2
- import { getUTMParams } from '../utils/utm';
3
- /**
4
- * Create a base event with common properties
5
- */
6
- export function createBaseEvent(eventType) {
7
- const utm = getUTMParams();
8
- return {
9
- id: crypto.randomUUID
10
- ? crypto.randomUUID()
11
- : `${Date.now()}-${Math.random().toString(36).substr(2, 9)}`,
12
- timestamp: Date.now(),
13
- timezone_offset: new Date().getTimezoneOffset(),
14
- event_type: eventType,
15
- url: window.location.href,
16
- path: window.location.pathname,
17
- referrer: document.referrer || '',
18
- title: document.title || '',
19
- screen_width: window.screen?.width || 0,
20
- screen_height: window.screen?.height || 0,
21
- viewport_width: window.innerWidth || 0,
22
- viewport_height: window.innerHeight || 0,
23
- device_pixel_ratio: window.devicePixelRatio || 1,
24
- user_agent: navigator.userAgent || '',
25
- language: navigator.language || '',
26
- ...utm,
27
- };
28
- }
29
- /**
30
- * Track a pageview event
31
- */
32
- export function trackPageview(customPath) {
33
- const event = createBaseEvent('pageview');
34
- if (customPath) {
35
- event.path = customPath;
36
- event.url = window.location.origin + customPath;
37
- }
38
- // Add performance timing if available
39
- if (typeof performance !== 'undefined') {
40
- const timing = performance.getEntriesByType('navigation')[0];
41
- if (timing) {
42
- event.load_time = Math.round(timing.loadEventEnd - timing.startTime);
43
- event.dom_ready = Math.round(timing.domContentLoadedEventEnd - timing.startTime);
44
- event.ttfb = Math.round(timing.responseStart - timing.requestStart);
45
- }
46
- }
47
- queueEvent(event);
48
- }
49
- /**
50
- * Initialize pageview tracking
51
- * Tracks initial pageview when called
52
- */
53
- export function initPageviewTracking() {
54
- // Track initial pageview after DOM is ready
55
- if (document.readyState === 'complete') {
56
- trackPageview();
57
- }
58
- else {
59
- window.addEventListener('load', () => {
60
- trackPageview();
61
- });
62
- }
63
- }
64
- //# sourceMappingURL=pageview.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pageview.js","sourceRoot":"","sources":["../../../src/analytics/collectors/pageview.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5C;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,SAAuC;IACtE,MAAM,GAAG,GAAG,YAAY,EAAE,CAAC;IAE3B,OAAO;QACN,EAAE,EAAE,MAAM,CAAC,UAAU;YACpB,CAAC,CAAC,MAAM,CAAC,UAAU,EAAE;YACrB,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE;QAC7D,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;QACrB,eAAe,EAAE,IAAI,IAAI,EAAE,CAAC,iBAAiB,EAAE;QAE/C,UAAU,EAAE,SAAS;QAErB,GAAG,EAAE,MAAM,CAAC,QAAQ,CAAC,IAAI;QACzB,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,QAAQ;QAC9B,QAAQ,EAAE,QAAQ,CAAC,QAAQ,IAAI,EAAE;QACjC,KAAK,EAAE,QAAQ,CAAC,KAAK,IAAI,EAAE;QAE3B,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC;QACvC,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,IAAI,CAAC;QACzC,cAAc,EAAE,MAAM,CAAC,UAAU,IAAI,CAAC;QACtC,eAAe,EAAE,MAAM,CAAC,WAAW,IAAI,CAAC;QACxC,kBAAkB,EAAE,MAAM,CAAC,gBAAgB,IAAI,CAAC;QAChD,UAAU,EAAE,SAAS,CAAC,SAAS,IAAI,EAAE;QACrC,QAAQ,EAAE,SAAS,CAAC,QAAQ,IAAI,EAAE;QAElC,GAAG,GAAG;KACN,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,UAAmB;IAChD,MAAM,KAAK,GAAG,eAAe,CAAC,UAAU,CAAC,CAAC;IAE1C,IAAI,UAAU,EAAE,CAAC;QAChB,KAAK,CAAC,IAAI,GAAG,UAAU,CAAC;QACxB,KAAK,CAAC,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,UAAU,CAAC;IACjD,CAAC;IAED,sCAAsC;IACtC,IAAI,OAAO,WAAW,KAAK,WAAW,EAAE,CAAC;QACxC,MAAM,MAAM,GAAG,WAAW,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC,CAAC,CAE/C,CAAC;QACb,IAAI,MAAM,EAAE,CAAC;YACZ,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;YACrE,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,wBAAwB,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;YACjF,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,aAAa,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC;QACrE,CAAC;IACF,CAAC;IAED,UAAU,CAAC,KAAK,CAAC,CAAC;AACnB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,oBAAoB;IACnC,4CAA4C;IAC5C,IAAI,QAAQ,CAAC,UAAU,KAAK,UAAU,EAAE,CAAC;QACxC,aAAa,EAAE,CAAC;IACjB,CAAC;SAAM,CAAC;QACP,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,GAAG,EAAE;YACpC,aAAa,EAAE,CAAC;QACjB,CAAC,CAAC,CAAC;IACJ,CAAC;AACF,CAAC"}
@@ -1,17 +0,0 @@
1
- /**
2
- * Initialize scroll depth tracking
3
- */
4
- export declare function initScrollTracking(): void;
5
- /**
6
- * Remove scroll tracking listener
7
- */
8
- export declare function removeScrollTracking(): void;
9
- /**
10
- * Get max scroll depth (for time on page events)
11
- */
12
- export declare function getMaxScrollDepth(): number;
13
- /**
14
- * Reset tracked milestones (for SPA navigation)
15
- */
16
- export declare function resetScrollTracking(): void;
17
- //# sourceMappingURL=scroll.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"scroll.d.ts","sourceRoot":"","sources":["../../../src/analytics/collectors/scroll.ts"],"names":[],"mappings":"AAoDA;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,IAAI,CA8BzC;AAED;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,IAAI,CAM3C;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAE1C;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,IAAI,CAG1C"}
@@ -1,93 +0,0 @@
1
- import { createBaseEvent } from './pageview';
2
- import { queueEvent } from '../events';
3
- const SCROLL_MILESTONES = [25, 50, 75, 100];
4
- let trackedMilestones = new Set();
5
- let maxScrollDepth = 0;
6
- let isScrollTrackingInitialized = false;
7
- let scrollHandler = null;
8
- /**
9
- * Calculate current scroll depth percentage
10
- */
11
- function getScrollDepth() {
12
- if (typeof window === 'undefined' || typeof document === 'undefined') {
13
- return 0;
14
- }
15
- const scrollTop = window.scrollY || document.documentElement.scrollTop;
16
- const scrollHeight = document.documentElement.scrollHeight - document.documentElement.clientHeight;
17
- if (scrollHeight <= 0) {
18
- return 100; // Page doesn't scroll
19
- }
20
- return Math.min(100, Math.round((scrollTop / scrollHeight) * 100));
21
- }
22
- /**
23
- * Handle scroll event
24
- */
25
- function handleScroll() {
26
- const depth = getScrollDepth();
27
- if (depth > maxScrollDepth) {
28
- maxScrollDepth = depth;
29
- }
30
- // Check for milestone crossings
31
- for (const milestone of SCROLL_MILESTONES) {
32
- if (depth >= milestone && !trackedMilestones.has(milestone)) {
33
- trackedMilestones.add(milestone);
34
- const event = createBaseEvent('scroll');
35
- event.event_name = `scroll_${milestone}`;
36
- event.scroll_depth = milestone;
37
- queueEvent(event);
38
- }
39
- }
40
- }
41
- /**
42
- * Initialize scroll depth tracking
43
- */
44
- export function initScrollTracking() {
45
- if (typeof window === 'undefined') {
46
- return;
47
- }
48
- if (isScrollTrackingInitialized) {
49
- return;
50
- }
51
- isScrollTrackingInitialized = true;
52
- // Reset on page load
53
- trackedMilestones = new Set();
54
- maxScrollDepth = 0;
55
- // Throttled scroll handler
56
- let ticking = false;
57
- scrollHandler = () => {
58
- if (!ticking) {
59
- requestAnimationFrame(() => {
60
- handleScroll();
61
- ticking = false;
62
- });
63
- ticking = true;
64
- }
65
- };
66
- window.addEventListener('scroll', scrollHandler, { passive: true });
67
- // Check initial scroll position (for pages that load scrolled)
68
- handleScroll();
69
- }
70
- /**
71
- * Remove scroll tracking listener
72
- */
73
- export function removeScrollTracking() {
74
- if (scrollHandler) {
75
- window.removeEventListener('scroll', scrollHandler);
76
- scrollHandler = null;
77
- }
78
- isScrollTrackingInitialized = false;
79
- }
80
- /**
81
- * Get max scroll depth (for time on page events)
82
- */
83
- export function getMaxScrollDepth() {
84
- return maxScrollDepth;
85
- }
86
- /**
87
- * Reset tracked milestones (for SPA navigation)
88
- */
89
- export function resetScrollTracking() {
90
- trackedMilestones = new Set();
91
- maxScrollDepth = 0;
92
- }
93
- //# sourceMappingURL=scroll.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"scroll.js","sourceRoot":"","sources":["../../../src/analytics/collectors/scroll.ts"],"names":[],"mappings":"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"}
@@ -1,10 +0,0 @@
1
- /**
2
- * Initialize SPA navigation tracking
3
- * Hooks into history.pushState, history.replaceState, and popstate event
4
- */
5
- export declare function initSPATracking(): void;
6
- /**
7
- * Cleanup SPA tracking (for testing)
8
- */
9
- export declare function cleanupSPATracking(): void;
10
- //# sourceMappingURL=spa.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"spa.d.ts","sourceRoot":"","sources":["../../../src/analytics/collectors/spa.ts"],"names":[],"mappings":"AAiBA;;;GAGG;AACH,wBAAgB,eAAe,IAAI,IAAI,CAuBtC;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,IAAI,CAUzC"}
@@ -1,53 +0,0 @@
1
- import { trackPageview } from './pageview';
2
- let currentPath = '';
3
- let originalPushState = null;
4
- let originalReplaceState = null;
5
- /**
6
- * Handle URL change for SPA navigation
7
- */
8
- function handleUrlChange() {
9
- const newPath = window.location.pathname;
10
- if (newPath !== currentPath) {
11
- currentPath = newPath;
12
- trackPageview(newPath);
13
- }
14
- }
15
- /**
16
- * Initialize SPA navigation tracking
17
- * Hooks into history.pushState, history.replaceState, and popstate event
18
- */
19
- export function initSPATracking() {
20
- if (typeof window === 'undefined' || typeof history === 'undefined') {
21
- return;
22
- }
23
- currentPath = window.location.pathname;
24
- // Hook into history.pushState
25
- originalPushState = history.pushState.bind(history);
26
- history.pushState = function (...args) {
27
- originalPushState?.apply(this, args);
28
- handleUrlChange();
29
- };
30
- // Hook into history.replaceState
31
- originalReplaceState = history.replaceState.bind(history);
32
- history.replaceState = function (...args) {
33
- originalReplaceState?.apply(this, args);
34
- handleUrlChange();
35
- };
36
- // Listen for popstate (back/forward navigation)
37
- window.addEventListener('popstate', handleUrlChange);
38
- }
39
- /**
40
- * Cleanup SPA tracking (for testing)
41
- */
42
- export function cleanupSPATracking() {
43
- if (originalPushState) {
44
- history.pushState = originalPushState;
45
- originalPushState = null;
46
- }
47
- if (originalReplaceState) {
48
- history.replaceState = originalReplaceState;
49
- originalReplaceState = null;
50
- }
51
- window.removeEventListener('popstate', handleUrlChange);
52
- }
53
- //# sourceMappingURL=spa.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"spa.js","sourceRoot":"","sources":["../../../src/analytics/collectors/spa.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE3C,IAAI,WAAW,GAAG,EAAE,CAAC;AACrB,IAAI,iBAAiB,GAAoC,IAAI,CAAC;AAC9D,IAAI,oBAAoB,GAAuC,IAAI,CAAC;AAEpE;;GAEG;AACH,SAAS,eAAe;IACvB,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC;IACzC,IAAI,OAAO,KAAK,WAAW,EAAE,CAAC;QAC7B,WAAW,GAAG,OAAO,CAAC;QACtB,aAAa,CAAC,OAAO,CAAC,CAAC;IACxB,CAAC;AACF,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,eAAe;IAC9B,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,OAAO,OAAO,KAAK,WAAW,EAAE,CAAC;QACrE,OAAO;IACR,CAAC;IAED,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC;IAEvC,8BAA8B;IAC9B,iBAAiB,GAAG,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACpD,OAAO,CAAC,SAAS,GAAG,UAAU,GAAG,IAAI;QACpC,iBAAiB,EAAE,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACrC,eAAe,EAAE,CAAC;IACnB,CAAC,CAAC;IAEF,iCAAiC;IACjC,oBAAoB,GAAG,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC1D,OAAO,CAAC,YAAY,GAAG,UAAU,GAAG,IAAI;QACvC,oBAAoB,EAAE,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACxC,eAAe,EAAE,CAAC;IACnB,CAAC,CAAC;IAEF,gDAAgD;IAChD,MAAM,CAAC,gBAAgB,CAAC,UAAU,EAAE,eAAe,CAAC,CAAC;AACtD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB;IACjC,IAAI,iBAAiB,EAAE,CAAC;QACvB,OAAO,CAAC,SAAS,GAAG,iBAAiB,CAAC;QACtC,iBAAiB,GAAG,IAAI,CAAC;IAC1B,CAAC;IACD,IAAI,oBAAoB,EAAE,CAAC;QAC1B,OAAO,CAAC,YAAY,GAAG,oBAAoB,CAAC;QAC5C,oBAAoB,GAAG,IAAI,CAAC;IAC7B,CAAC;IACD,MAAM,CAAC,mBAAmB,CAAC,UAAU,EAAE,eAAe,CAAC,CAAC;AACzD,CAAC"}
@@ -1,18 +0,0 @@
1
- /**
2
- * Initialize visibility tracking
3
- * Tracks when user leaves/returns to the page
4
- */
5
- export declare function initVisibilityTracking(): void;
6
- /**
7
- * Remove visibility tracking listener
8
- */
9
- export declare function removeVisibilityTracking(): void;
10
- /**
11
- * Reset visibility tracking (for SPA navigation)
12
- */
13
- export declare function resetVisibilityTracking(): void;
14
- /**
15
- * Get current time on page
16
- */
17
- export declare function getCurrentTimeOnPage(): number;
18
- //# sourceMappingURL=visibility.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"visibility.d.ts","sourceRoot":"","sources":["../../../src/analytics/collectors/visibility.ts"],"names":[],"mappings":"AAsBA;;;GAGG;AACH,wBAAgB,sBAAsB,IAAI,IAAI,CAwC7C;AAED;;GAEG;AACH,wBAAgB,wBAAwB,IAAI,IAAI,CAM/C;AAED;;GAEG;AACH,wBAAgB,uBAAuB,IAAI,IAAI,CAI9C;AAED;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,MAAM,CAE7C"}
@@ -1,81 +0,0 @@
1
- import { createBaseEvent } from './pageview';
2
- import { queueEvent } from '../events';
3
- import { getMaxScrollDepth } from './scroll';
4
- let pageEntryTime = 0;
5
- let hiddenTime = 0;
6
- let lastHiddenTimestamp = 0;
7
- let visibilityTrackingInitialized = false;
8
- let visibilityChangeHandler = null;
9
- /**
10
- * Get total time spent on page (excluding hidden time)
11
- */
12
- function getTimeOnPage() {
13
- if (pageEntryTime === 0) {
14
- return 0;
15
- }
16
- const totalTime = Date.now() - pageEntryTime;
17
- return Math.max(0, totalTime - hiddenTime);
18
- }
19
- /**
20
- * Initialize visibility tracking
21
- * Tracks when user leaves/returns to the page
22
- */
23
- export function initVisibilityTracking() {
24
- if (typeof document === 'undefined') {
25
- return;
26
- }
27
- if (visibilityTrackingInitialized) {
28
- return;
29
- }
30
- visibilityTrackingInitialized = true;
31
- pageEntryTime = Date.now();
32
- hiddenTime = 0;
33
- lastHiddenTimestamp = 0;
34
- visibilityChangeHandler = () => {
35
- if (document.visibilityState === 'hidden') {
36
- lastHiddenTimestamp = Date.now();
37
- // Track page leave with engagement metrics
38
- const event = createBaseEvent('visibility');
39
- event.event_name = 'page_hidden';
40
- event.time_on_page = getTimeOnPage();
41
- event.scroll_depth = getMaxScrollDepth();
42
- queueEvent(event);
43
- }
44
- else if (document.visibilityState === 'visible') {
45
- // Calculate hidden duration
46
- if (lastHiddenTimestamp > 0) {
47
- hiddenTime += Date.now() - lastHiddenTimestamp;
48
- lastHiddenTimestamp = 0;
49
- }
50
- const event = createBaseEvent('visibility');
51
- event.event_name = 'page_visible';
52
- queueEvent(event);
53
- }
54
- };
55
- document.addEventListener('visibilitychange', visibilityChangeHandler);
56
- }
57
- /**
58
- * Remove visibility tracking listener
59
- */
60
- export function removeVisibilityTracking() {
61
- if (visibilityChangeHandler) {
62
- document.removeEventListener('visibilitychange', visibilityChangeHandler);
63
- visibilityChangeHandler = null;
64
- }
65
- visibilityTrackingInitialized = false;
66
- }
67
- /**
68
- * Reset visibility tracking (for SPA navigation)
69
- */
70
- export function resetVisibilityTracking() {
71
- pageEntryTime = Date.now();
72
- hiddenTime = 0;
73
- lastHiddenTimestamp = 0;
74
- }
75
- /**
76
- * Get current time on page
77
- */
78
- export function getCurrentTimeOnPage() {
79
- return getTimeOnPage();
80
- }
81
- //# sourceMappingURL=visibility.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"visibility.js","sourceRoot":"","sources":["../../../src/analytics/collectors/visibility.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAE7C,IAAI,aAAa,GAAG,CAAC,CAAC;AACtB,IAAI,UAAU,GAAG,CAAC,CAAC;AACnB,IAAI,mBAAmB,GAAG,CAAC,CAAC;AAC5B,IAAI,6BAA6B,GAAG,KAAK,CAAC;AAC1C,IAAI,uBAAuB,GAAwB,IAAI,CAAC;AAExD;;GAEG;AACH,SAAS,aAAa;IACrB,IAAI,aAAa,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,CAAC,CAAC;IACV,CAAC;IAED,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,aAAa,CAAC;IAC7C,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,GAAG,UAAU,CAAC,CAAC;AAC5C,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,sBAAsB;IACrC,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE,CAAC;QACrC,OAAO;IACR,CAAC;IAED,IAAI,6BAA6B,EAAE,CAAC;QACnC,OAAO;IACR,CAAC;IACD,6BAA6B,GAAG,IAAI,CAAC;IAErC,aAAa,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC3B,UAAU,GAAG,CAAC,CAAC;IACf,mBAAmB,GAAG,CAAC,CAAC;IAExB,uBAAuB,GAAG,GAAG,EAAE;QAC9B,IAAI,QAAQ,CAAC,eAAe,KAAK,QAAQ,EAAE,CAAC;YAC3C,mBAAmB,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAEjC,2CAA2C;YAC3C,MAAM,KAAK,GAAG,eAAe,CAAC,YAAY,CAAC,CAAC;YAC5C,KAAK,CAAC,UAAU,GAAG,aAAa,CAAC;YACjC,KAAK,CAAC,YAAY,GAAG,aAAa,EAAE,CAAC;YACrC,KAAK,CAAC,YAAY,GAAG,iBAAiB,EAAE,CAAC;YAEzC,UAAU,CAAC,KAAK,CAAC,CAAC;QACnB,CAAC;aAAM,IAAI,QAAQ,CAAC,eAAe,KAAK,SAAS,EAAE,CAAC;YACnD,4BAA4B;YAC5B,IAAI,mBAAmB,GAAG,CAAC,EAAE,CAAC;gBAC7B,UAAU,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,mBAAmB,CAAC;gBAC/C,mBAAmB,GAAG,CAAC,CAAC;YACzB,CAAC;YAED,MAAM,KAAK,GAAG,eAAe,CAAC,YAAY,CAAC,CAAC;YAC5C,KAAK,CAAC,UAAU,GAAG,cAAc,CAAC;YAElC,UAAU,CAAC,KAAK,CAAC,CAAC;QACnB,CAAC;IACF,CAAC,CAAC;IAEF,QAAQ,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,uBAAuB,CAAC,CAAC;AACxE,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,wBAAwB;IACvC,IAAI,uBAAuB,EAAE,CAAC;QAC7B,QAAQ,CAAC,mBAAmB,CAAC,kBAAkB,EAAE,uBAAuB,CAAC,CAAC;QAC1E,uBAAuB,GAAG,IAAI,CAAC;IAChC,CAAC;IACD,6BAA6B,GAAG,KAAK,CAAC;AACvC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,uBAAuB;IACtC,aAAa,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC3B,UAAU,GAAG,CAAC,CAAC;IACf,mBAAmB,GAAG,CAAC,CAAC;AACzB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,oBAAoB;IACnC,OAAO,aAAa,EAAE,CAAC;AACxB,CAAC"}
@@ -1,6 +0,0 @@
1
- /**
2
- * Initialize Core Web Vitals tracking
3
- * Uses PerformanceObserver to track LCP, FCP, CLS, INP
4
- */
5
- export declare function initWebVitalsTracking(): void;
6
- //# sourceMappingURL=webvitals.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"webvitals.d.ts","sourceRoot":"","sources":["../../../src/analytics/collectors/webvitals.ts"],"names":[],"mappings":"AAGA;;;GAGG;AACH,wBAAgB,qBAAqB,IAAI,IAAI,CAyH5C"}
@@ -1,111 +0,0 @@
1
- import { createBaseEvent } from './pageview';
2
- import { queueEvent, flushEvents } from '../events';
3
- /**
4
- * Initialize Core Web Vitals tracking
5
- * Uses PerformanceObserver to track LCP, FCP, CLS, INP
6
- */
7
- export function initWebVitalsTracking() {
8
- if (typeof window === 'undefined' || typeof PerformanceObserver === 'undefined') {
9
- return;
10
- }
11
- // Track First Contentful Paint (FCP)
12
- try {
13
- const fcpObserver = new PerformanceObserver((list) => {
14
- for (const entry of list.getEntries()) {
15
- if (entry.name === 'first-contentful-paint') {
16
- const event = createBaseEvent('web_vital');
17
- event.event_name = 'fcp';
18
- event.fcp = Math.round(entry.startTime);
19
- queueEvent(event);
20
- flushEvents();
21
- fcpObserver.disconnect();
22
- }
23
- }
24
- });
25
- fcpObserver.observe({ type: 'paint', buffered: true });
26
- }
27
- catch {
28
- // PerformanceObserver not supported for this entry type
29
- }
30
- // Track Largest Contentful Paint (LCP)
31
- try {
32
- let lcpValue = 0;
33
- const lcpObserver = new PerformanceObserver((list) => {
34
- const entries = list.getEntries();
35
- const lastEntry = entries[entries.length - 1];
36
- if (lastEntry) {
37
- lcpValue = lastEntry.startTime;
38
- }
39
- });
40
- lcpObserver.observe({ type: 'largest-contentful-paint', buffered: true });
41
- // Report LCP when page becomes hidden
42
- document.addEventListener('visibilitychange', () => {
43
- if (document.visibilityState === 'hidden' && lcpValue > 0) {
44
- const event = createBaseEvent('web_vital');
45
- event.event_name = 'lcp';
46
- event.lcp = Math.round(lcpValue);
47
- queueEvent(event);
48
- flushEvents();
49
- lcpObserver.disconnect();
50
- }
51
- }, { once: true });
52
- }
53
- catch {
54
- // PerformanceObserver not supported for this entry type
55
- }
56
- // Track Cumulative Layout Shift (CLS)
57
- try {
58
- let clsValue = 0;
59
- const clsObserver = new PerformanceObserver((list) => {
60
- for (const entry of list.getEntries()) {
61
- const layoutShift = entry;
62
- if (!layoutShift.hadRecentInput && layoutShift.value) {
63
- clsValue += layoutShift.value;
64
- }
65
- }
66
- });
67
- clsObserver.observe({ type: 'layout-shift', buffered: true });
68
- // Report CLS when page becomes hidden
69
- document.addEventListener('visibilitychange', () => {
70
- if (document.visibilityState === 'hidden') {
71
- const event = createBaseEvent('web_vital');
72
- event.event_name = 'cls';
73
- event.cls = Math.round(clsValue * 1000) / 1000; // Round to 3 decimal places
74
- queueEvent(event);
75
- flushEvents();
76
- clsObserver.disconnect();
77
- }
78
- }, { once: true });
79
- }
80
- catch {
81
- // PerformanceObserver not supported for this entry type
82
- }
83
- // Track Interaction to Next Paint (INP)
84
- try {
85
- let inpValue = 0;
86
- const inpObserver = new PerformanceObserver((list) => {
87
- for (const entry of list.getEntries()) {
88
- const eventEntry = entry;
89
- if (eventEntry.duration && eventEntry.duration > inpValue) {
90
- inpValue = eventEntry.duration;
91
- }
92
- }
93
- });
94
- inpObserver.observe({ type: 'event', buffered: true });
95
- // Report INP when page becomes hidden
96
- document.addEventListener('visibilitychange', () => {
97
- if (document.visibilityState === 'hidden' && inpValue > 0) {
98
- const event = createBaseEvent('web_vital');
99
- event.event_name = 'inp';
100
- event.inp = Math.round(inpValue);
101
- queueEvent(event);
102
- flushEvents();
103
- inpObserver.disconnect();
104
- }
105
- }, { once: true });
106
- }
107
- catch {
108
- // PerformanceObserver not supported for this entry type
109
- }
110
- }
111
- //# sourceMappingURL=webvitals.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"webvitals.js","sourceRoot":"","sources":["../../../src/analytics/collectors/webvitals.ts"],"names":[],"mappings":"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"}
@@ -1,18 +0,0 @@
1
- import type { AnalyticsEvent, AnalyticsPageConfig } from './types';
2
- /**
3
- * Initialize the event queue with config
4
- */
5
- export declare function initEventQueue(pageConfig: AnalyticsPageConfig): void;
6
- /**
7
- * Queue an event for sending
8
- */
9
- export declare function queueEvent(event: AnalyticsEvent): void;
10
- /**
11
- * Flush all queued events
12
- */
13
- export declare function flushEvents(): void;
14
- /**
15
- * Get current queue length (for testing)
16
- */
17
- export declare function getQueueLength(): number;
18
- //# sourceMappingURL=events.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/analytics/events.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAyB,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAW1F;;GAEG;AACH,wBAAgB,cAAc,CAAC,UAAU,EAAE,mBAAmB,GAAG,IAAI,CAepE;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,cAAc,GAAG,IAAI,CA+CtD;AAED;;GAEG;AACH,wBAAgB,WAAW,IAAI,IAAI,CAoDlC;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,MAAM,CAEvC"}