@grainql/analytics-web 2.7.1 → 2.9.0

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 (83) hide show
  1. package/README.md +36 -3
  2. package/dist/cjs/consent.d.ts +38 -7
  3. package/dist/cjs/consent.d.ts.map +1 -1
  4. package/dist/cjs/consent.js +82 -23
  5. package/dist/cjs/consent.js.map +1 -1
  6. package/dist/cjs/debug-agent.d.ts +171 -0
  7. package/dist/cjs/debug-agent.d.ts.map +1 -0
  8. package/dist/cjs/debug-agent.js +1219 -0
  9. package/dist/cjs/debug-agent.js.map +1 -0
  10. package/dist/cjs/id-manager.d.ts +66 -0
  11. package/dist/cjs/id-manager.d.ts.map +1 -0
  12. package/dist/cjs/id-manager.js +212 -0
  13. package/dist/cjs/id-manager.js.map +1 -0
  14. package/dist/cjs/index.d.ts +26 -8
  15. package/dist/cjs/index.d.ts.map +1 -1
  16. package/dist/cjs/index.js.map +1 -1
  17. package/dist/cjs/interaction-tracking.d.ts +6 -0
  18. package/dist/cjs/interaction-tracking.d.ts.map +1 -1
  19. package/dist/cjs/interaction-tracking.js +55 -5
  20. package/dist/cjs/interaction-tracking.js.map +1 -1
  21. package/dist/cjs/page-tracking.d.ts +6 -0
  22. package/dist/cjs/page-tracking.d.ts.map +1 -1
  23. package/dist/cjs/page-tracking.js +23 -2
  24. package/dist/cjs/page-tracking.js.map +1 -1
  25. package/dist/cjs/react/hooks/useConsent.d.ts +18 -2
  26. package/dist/cjs/react/hooks/useConsent.d.ts.map +1 -1
  27. package/dist/cjs/react/hooks/useConsent.js +52 -1
  28. package/dist/cjs/react/hooks/useConsent.js.map +1 -1
  29. package/dist/consent.d.ts +38 -7
  30. package/dist/consent.d.ts.map +1 -1
  31. package/dist/consent.js +82 -23
  32. package/dist/debug-agent.d.ts +171 -0
  33. package/dist/debug-agent.d.ts.map +1 -0
  34. package/dist/debug-agent.js +1219 -0
  35. package/dist/esm/consent.d.ts +38 -7
  36. package/dist/esm/consent.d.ts.map +1 -1
  37. package/dist/esm/consent.js +82 -23
  38. package/dist/esm/consent.js.map +1 -1
  39. package/dist/esm/debug-agent.d.ts +171 -0
  40. package/dist/esm/debug-agent.d.ts.map +1 -0
  41. package/dist/esm/debug-agent.js +1215 -0
  42. package/dist/esm/debug-agent.js.map +1 -0
  43. package/dist/esm/id-manager.d.ts +66 -0
  44. package/dist/esm/id-manager.d.ts.map +1 -0
  45. package/dist/esm/id-manager.js +208 -0
  46. package/dist/esm/id-manager.js.map +1 -0
  47. package/dist/esm/index.d.ts +26 -8
  48. package/dist/esm/index.d.ts.map +1 -1
  49. package/dist/esm/index.js.map +1 -1
  50. package/dist/esm/interaction-tracking.d.ts +6 -0
  51. package/dist/esm/interaction-tracking.d.ts.map +1 -1
  52. package/dist/esm/interaction-tracking.js +55 -5
  53. package/dist/esm/interaction-tracking.js.map +1 -1
  54. package/dist/esm/page-tracking.d.ts +6 -0
  55. package/dist/esm/page-tracking.d.ts.map +1 -1
  56. package/dist/esm/page-tracking.js +23 -2
  57. package/dist/esm/page-tracking.js.map +1 -1
  58. package/dist/esm/react/hooks/useConsent.d.ts +18 -2
  59. package/dist/esm/react/hooks/useConsent.d.ts.map +1 -1
  60. package/dist/esm/react/hooks/useConsent.js +49 -1
  61. package/dist/esm/react/hooks/useConsent.js.map +1 -1
  62. package/dist/id-manager.d.ts +66 -0
  63. package/dist/id-manager.d.ts.map +1 -0
  64. package/dist/id-manager.js +212 -0
  65. package/dist/index.d.ts +26 -8
  66. package/dist/index.d.ts.map +1 -1
  67. package/dist/index.global.dev.js +1635 -86
  68. package/dist/index.global.dev.js.map +4 -4
  69. package/dist/index.global.js +506 -2
  70. package/dist/index.global.js.map +4 -4
  71. package/dist/index.js +171 -44
  72. package/dist/index.mjs +172 -45
  73. package/dist/interaction-tracking.d.ts +6 -0
  74. package/dist/interaction-tracking.d.ts.map +1 -1
  75. package/dist/interaction-tracking.js +55 -5
  76. package/dist/page-tracking.d.ts +6 -0
  77. package/dist/page-tracking.d.ts.map +1 -1
  78. package/dist/page-tracking.js +23 -2
  79. package/dist/react/hooks/useConsent.d.ts +18 -2
  80. package/dist/react/hooks/useConsent.d.ts.map +1 -1
  81. package/dist/react/hooks/useConsent.js +52 -1
  82. package/dist/react/hooks/useConsent.mjs +49 -1
  83. package/package.json +1 -1
@@ -1,8 +1,13 @@
1
1
  /**
2
- * Consent management for Grain Analytics
3
- * Handles GDPR-compliant consent tracking and state management
2
+ * Consent management for Grain Analytics v2.0
3
+ * Privacy-first, cookie-less by default
4
+ *
5
+ * Consent Modes:
6
+ * - cookieless: Default mode, daily rotating IDs, no consent needed
7
+ * - gdpr-strict: Requires explicit consent, falls back to cookieless
8
+ * - gdpr-opt-out: Permanent IDs by default, cookieless on opt-out
4
9
  */
5
- export type ConsentMode = 'opt-in' | 'opt-out' | 'disabled';
10
+ export type ConsentMode = 'cookieless' | 'gdpr-strict' | 'gdpr-opt-out';
6
11
  export interface ConsentState {
7
12
  granted: boolean;
8
13
  categories: string[];
@@ -13,6 +18,7 @@ export declare const DEFAULT_CONSENT_CATEGORIES: string[];
13
18
  export declare const CONSENT_VERSION = "1.0.0";
14
19
  /**
15
20
  * Consent manager for handling user consent state
21
+ * v2.0: Cookie-less by default, privacy-first approach
16
22
  */
17
23
  export declare class ConsentManager {
18
24
  private consentState;
@@ -23,9 +29,8 @@ export declare class ConsentManager {
23
29
  /**
24
30
  * Load consent state from localStorage
25
31
  *
26
- * GDPR Compliance: In opt-in mode, we can use localStorage for consent preferences
27
- * since storing consent choices is a legitimate interest and necessary for compliance.
28
- * The consent preference itself is not tracking data.
32
+ * GDPR Compliance: localStorage only used for storing consent preferences
33
+ * (not for tracking), which is a legitimate interest for compliance.
29
34
  */
30
35
  private loadConsentState;
31
36
  /**
@@ -45,11 +50,28 @@ export declare class ConsentManager {
45
50
  */
46
51
  getConsentState(): ConsentState | null;
47
52
  /**
48
- * Check if user has granted consent
53
+ * Check if user has granted consent for permanent IDs
49
54
  */
50
55
  hasConsent(category?: string): boolean;
56
+ /**
57
+ * Check if permanent IDs are allowed
58
+ */
59
+ shouldUsePermanentId(): boolean;
60
+ /**
61
+ * Check if we should strip query parameters from URLs
62
+ * Query params stripped unless:
63
+ * - Mode is gdpr-opt-out, OR
64
+ * - Mode is gdpr-strict AND consent given
65
+ */
66
+ shouldStripQueryParams(): boolean;
67
+ /**
68
+ * Check if we can track events (always true in v2.0)
69
+ * Even cookieless mode allows basic analytics with daily IDs
70
+ */
71
+ canTrack(): boolean;
51
72
  /**
52
73
  * Check if we should wait for consent before tracking
74
+ * Only relevant for GDPR Strict mode
53
75
  */
54
76
  shouldWaitForConsent(): boolean;
55
77
  /**
@@ -68,5 +90,14 @@ export declare class ConsentManager {
68
90
  * Clear all consent data
69
91
  */
70
92
  clearConsent(): void;
93
+ /**
94
+ * Get current consent mode
95
+ */
96
+ getConsentMode(): ConsentMode;
97
+ /**
98
+ * Get ID mode based on consent state
99
+ * Returns 'cookieless' or 'permanent'
100
+ */
101
+ getIdMode(): 'cookieless' | 'permanent';
71
102
  }
72
103
  //# sourceMappingURL=consent.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"consent.d.ts","sourceRoot":"","sources":["../../src/consent.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,SAAS,GAAG,UAAU,CAAC;AAE5D,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,SAAS,EAAE,IAAI,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,eAAO,MAAM,0BAA0B,UAA2C,CAAC;AACnF,eAAO,MAAM,eAAe,UAAU,CAAC;AAEvC;;GAEG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,YAAY,CAA6B;IACjD,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,SAAS,CAA4C;gBAEjD,QAAQ,EAAE,MAAM,EAAE,WAAW,GAAE,WAAuB;IAMlE;;;;;;OAMG;IACH,OAAO,CAAC,gBAAgB;IA2BxB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAUxB;;OAEG;IACH,YAAY,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI;IAczC;;OAEG;IACH,aAAa,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI;IA8B1C;;OAEG;IACH,eAAe,IAAI,YAAY,GAAG,IAAI;IAItC;;OAEG;IACH,UAAU,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO;IAwBtC;;OAEG;IACH,oBAAoB,IAAI,OAAO;IAI/B;;OAEG;IACH,WAAW,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,GAAG,IAAI;IAI1D;;OAEG;IACH,cAAc,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,GAAG,IAAI;IAO7D;;OAEG;IACH,OAAO,CAAC,eAAe;IAYvB;;OAEG;IACH,YAAY,IAAI,IAAI;CAUrB"}
1
+ {"version":3,"file":"consent.d.ts","sourceRoot":"","sources":["../../src/consent.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,MAAM,MAAM,WAAW,GAAG,YAAY,GAAG,aAAa,GAAG,cAAc,CAAC;AAExE,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,SAAS,EAAE,IAAI,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,eAAO,MAAM,0BAA0B,UAA2C,CAAC;AACnF,eAAO,MAAM,eAAe,UAAU,CAAC;AAEvC;;;GAGG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,YAAY,CAA6B;IACjD,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,SAAS,CAA4C;gBAEjD,QAAQ,EAAE,MAAM,EAAE,WAAW,GAAE,WAA0B;IAMrE;;;;;OAKG;IACH,OAAO,CAAC,gBAAgB;IA2BxB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAUxB;;OAEG;IACH,YAAY,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI;IAczC;;OAEG;IACH,aAAa,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI;IA8B1C;;OAEG;IACH,eAAe,IAAI,YAAY,GAAG,IAAI;IAItC;;OAEG;IACH,UAAU,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO;IAiCtC;;OAEG;IACH,oBAAoB,IAAI,OAAO;IAI/B;;;;;OAKG;IACH,sBAAsB,IAAI,OAAO;IAgBjC;;;OAGG;IACH,QAAQ,IAAI,OAAO;IAInB;;;OAGG;IACH,oBAAoB,IAAI,OAAO;IAI/B;;OAEG;IACH,WAAW,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,GAAG,IAAI;IAI1D;;OAEG;IACH,cAAc,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,GAAG,IAAI;IAO7D;;OAEG;IACH,OAAO,CAAC,eAAe;IAYvB;;OAEG;IACH,YAAY,IAAI,IAAI;IAWpB;;OAEG;IACH,cAAc,IAAI,WAAW;IAI7B;;;OAGG;IACH,SAAS,IAAI,YAAY,GAAG,WAAW;CAGxC"}
@@ -1,14 +1,20 @@
1
1
  /**
2
- * Consent management for Grain Analytics
3
- * Handles GDPR-compliant consent tracking and state management
2
+ * Consent management for Grain Analytics v2.0
3
+ * Privacy-first, cookie-less by default
4
+ *
5
+ * Consent Modes:
6
+ * - cookieless: Default mode, daily rotating IDs, no consent needed
7
+ * - gdpr-strict: Requires explicit consent, falls back to cookieless
8
+ * - gdpr-opt-out: Permanent IDs by default, cookieless on opt-out
4
9
  */
5
10
  export const DEFAULT_CONSENT_CATEGORIES = ['necessary', 'analytics', 'functional'];
6
11
  export const CONSENT_VERSION = '1.0.0';
7
12
  /**
8
13
  * Consent manager for handling user consent state
14
+ * v2.0: Cookie-less by default, privacy-first approach
9
15
  */
10
16
  export class ConsentManager {
11
- constructor(tenantId, consentMode = 'opt-out') {
17
+ constructor(tenantId, consentMode = 'cookieless') {
12
18
  this.consentState = null;
13
19
  this.listeners = [];
14
20
  this.consentMode = consentMode;
@@ -18,9 +24,8 @@ export class ConsentManager {
18
24
  /**
19
25
  * Load consent state from localStorage
20
26
  *
21
- * GDPR Compliance: In opt-in mode, we can use localStorage for consent preferences
22
- * since storing consent choices is a legitimate interest and necessary for compliance.
23
- * The consent preference itself is not tracking data.
27
+ * GDPR Compliance: localStorage only used for storing consent preferences
28
+ * (not for tracking), which is a legitimate interest for compliance.
24
29
  */
25
30
  loadConsentState() {
26
31
  if (typeof window === 'undefined')
@@ -34,8 +39,8 @@ export class ConsentManager {
34
39
  timestamp: new Date(parsed.timestamp),
35
40
  };
36
41
  }
37
- else if (this.consentMode === 'opt-out' || this.consentMode === 'disabled') {
38
- // Auto-grant consent for opt-out and disabled modes
42
+ else if (this.consentMode === 'gdpr-opt-out') {
43
+ // Auto-grant consent for opt-out mode (user hasn't opted out yet)
39
44
  this.consentState = {
40
45
  granted: true,
41
46
  categories: DEFAULT_CONSENT_CATEGORIES,
@@ -44,10 +49,10 @@ export class ConsentManager {
44
49
  };
45
50
  this.saveConsentState();
46
51
  }
47
- // Note: In opt-in mode without stored consent, consentState remains null (no consent)
52
+ // Note: cookieless and gdpr-strict modes without stored consent no permanent tracking
48
53
  }
49
54
  catch (error) {
50
- // Silent failure - consent will be requested when needed
55
+ // Silent failure - will use cookieless mode by default
51
56
  }
52
57
  }
53
58
  /**
@@ -117,32 +122,73 @@ export class ConsentManager {
117
122
  return this.consentState ? { ...this.consentState } : null;
118
123
  }
119
124
  /**
120
- * Check if user has granted consent
125
+ * Check if user has granted consent for permanent IDs
121
126
  */
122
127
  hasConsent(category) {
123
- // Disabled mode always returns true (no consent required)
124
- if (this.consentMode === 'disabled') {
125
- return true;
128
+ // Cookie-less mode: no consent needed (no permanent tracking)
129
+ if (this.consentMode === 'cookieless') {
130
+ return false; // No permanent IDs
126
131
  }
127
- // No consent state in opt-in mode means no consent
128
- if (this.consentMode === 'opt-in' && !this.consentState) {
129
- return false;
132
+ // GDPR Strict: requires explicit consent
133
+ if (this.consentMode === 'gdpr-strict') {
134
+ if (!this.consentState?.granted) {
135
+ return false;
136
+ }
130
137
  }
131
- // Check consent state
132
- if (!this.consentState?.granted) {
133
- return false;
138
+ // GDPR Opt-out: consent by default unless explicitly revoked
139
+ if (this.consentMode === 'gdpr-opt-out') {
140
+ // If no state, assume consent (opt-out model)
141
+ if (!this.consentState) {
142
+ return true;
143
+ }
144
+ // Check if consent was revoked
145
+ if (!this.consentState.granted) {
146
+ return false;
147
+ }
134
148
  }
135
149
  // Check specific category if provided
136
- if (category) {
150
+ if (category && this.consentState) {
137
151
  return this.consentState.categories.includes(category);
138
152
  }
139
- return true;
153
+ return this.consentState?.granted ?? (this.consentMode === 'gdpr-opt-out');
154
+ }
155
+ /**
156
+ * Check if permanent IDs are allowed
157
+ */
158
+ shouldUsePermanentId() {
159
+ return this.hasConsent();
160
+ }
161
+ /**
162
+ * Check if we should strip query parameters from URLs
163
+ * Query params stripped unless:
164
+ * - Mode is gdpr-opt-out, OR
165
+ * - Mode is gdpr-strict AND consent given
166
+ */
167
+ shouldStripQueryParams() {
168
+ if (this.consentMode === 'cookieless') {
169
+ return true; // Always strip in cookieless mode
170
+ }
171
+ if (this.consentMode === 'gdpr-strict') {
172
+ return !this.hasConsent(); // Strip unless consented
173
+ }
174
+ if (this.consentMode === 'gdpr-opt-out') {
175
+ return false; // Don't strip in opt-out mode
176
+ }
177
+ return true; // Default: strip
178
+ }
179
+ /**
180
+ * Check if we can track events (always true in v2.0)
181
+ * Even cookieless mode allows basic analytics with daily IDs
182
+ */
183
+ canTrack() {
184
+ return true; // All modes allow some form of tracking
140
185
  }
141
186
  /**
142
187
  * Check if we should wait for consent before tracking
188
+ * Only relevant for GDPR Strict mode
143
189
  */
144
190
  shouldWaitForConsent() {
145
- return this.consentMode === 'opt-in' && !this.consentState?.granted;
191
+ return this.consentMode === 'gdpr-strict' && !this.consentState?.granted;
146
192
  }
147
193
  /**
148
194
  * Add consent change listener
@@ -188,5 +234,18 @@ export class ConsentManager {
188
234
  // Silent failure - consent state may not be fully cleared
189
235
  }
190
236
  }
237
+ /**
238
+ * Get current consent mode
239
+ */
240
+ getConsentMode() {
241
+ return this.consentMode;
242
+ }
243
+ /**
244
+ * Get ID mode based on consent state
245
+ * Returns 'cookieless' or 'permanent'
246
+ */
247
+ getIdMode() {
248
+ return this.shouldUsePermanentId() ? 'permanent' : 'cookieless';
249
+ }
191
250
  }
192
251
  //# sourceMappingURL=consent.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"consent.js","sourceRoot":"","sources":["../../src/consent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"consent.js","sourceRoot":"","sources":["../../src/consent.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,171 @@
1
+ /**
2
+ * Debug Agent for Visual Event Tracking
3
+ * Provides a toolbar and element inspection mode for creating event trackers
4
+ */
5
+ export interface DebugAgentConfig {
6
+ debug?: boolean;
7
+ }
8
+ export interface Tracker {
9
+ track(eventName: string, properties?: Record<string, unknown>): void | Promise<void>;
10
+ log(...args: unknown[]): void;
11
+ }
12
+ export interface ExistingTracker {
13
+ trackerId: string;
14
+ name: string;
15
+ type: string;
16
+ selector: string;
17
+ urlScope: string;
18
+ urlPattern?: string;
19
+ isEnabled: boolean;
20
+ }
21
+ export declare class DebugAgent {
22
+ private tracker;
23
+ private sessionId;
24
+ private tenantId;
25
+ private apiUrl;
26
+ private config;
27
+ private isDestroyed;
28
+ private isInspectMode;
29
+ private showTrackers;
30
+ private selectedElement;
31
+ private toolbarElement;
32
+ private panelElement;
33
+ private highlightElement;
34
+ private existingTrackers;
35
+ private trackerHighlights;
36
+ private isDragging;
37
+ private dragStartX;
38
+ private dragStartY;
39
+ private toolbarStartX;
40
+ private toolbarStartY;
41
+ private mouseMoveListener;
42
+ private clickListener;
43
+ private dragMoveListener;
44
+ private dragEndListener;
45
+ constructor(tracker: Tracker, sessionId: string, tenantId: string, apiUrl: string, config?: DebugAgentConfig);
46
+ /**
47
+ * Initialize the debug agent
48
+ */
49
+ private initialize;
50
+ /**
51
+ * Load existing trackers from API
52
+ */
53
+ private loadExistingTrackers;
54
+ /**
55
+ * Show the debug toolbar
56
+ */
57
+ private showToolbar;
58
+ /**
59
+ * Create highlight element for hovering
60
+ */
61
+ private createHighlightElement;
62
+ /**
63
+ * Start dragging the toolbar
64
+ */
65
+ private startDrag;
66
+ /**
67
+ * Handle drag movement
68
+ */
69
+ private onDrag;
70
+ /**
71
+ * End dragging
72
+ */
73
+ private endDrag;
74
+ /**
75
+ * Toggle tracker view
76
+ */
77
+ private toggleTrackerView;
78
+ /**
79
+ * Show tracker highlights on page
80
+ */
81
+ private showTrackerHighlights;
82
+ /**
83
+ * Hide tracker highlights
84
+ */
85
+ private hideTrackerHighlights;
86
+ /**
87
+ * Show trackers list
88
+ */
89
+ private showTrackersList;
90
+ /**
91
+ * Hide trackers list
92
+ */
93
+ private hideTrackersList;
94
+ /**
95
+ * Scroll to and highlight a tracker element
96
+ */
97
+ private scrollToTracker;
98
+ /**
99
+ * Find element by XPath selector
100
+ */
101
+ private findElementBySelector;
102
+ /**
103
+ * Toggle inspect mode
104
+ */
105
+ private toggleInspectMode;
106
+ /**
107
+ * Enable element inspection mode
108
+ */
109
+ private enableInspectMode;
110
+ /**
111
+ * Handle ESC key to exit inspect mode
112
+ */
113
+ private handleEscapeKey;
114
+ /**
115
+ * Disable element inspection mode
116
+ */
117
+ private disableInspectMode;
118
+ /**
119
+ * Handle mouse move to highlight hovered element
120
+ */
121
+ private handleMouseMove;
122
+ /**
123
+ * Handle element click to show creation panel
124
+ */
125
+ private handleElementClick;
126
+ /**
127
+ * Show tracker creation panel
128
+ */
129
+ private showCreationPanel;
130
+ /**
131
+ * Generate suggested event name from element
132
+ */
133
+ private generateEventName;
134
+ /**
135
+ * Handle tracker creation
136
+ */
137
+ private handleCreateTracker;
138
+ /**
139
+ * Create tracker via API
140
+ */
141
+ private createTracker;
142
+ /**
143
+ * Hide creation panel
144
+ */
145
+ private hideCreationPanel;
146
+ /**
147
+ * Show success message
148
+ */
149
+ private showSuccessMessage;
150
+ /**
151
+ * End debug session
152
+ */
153
+ private endDebug;
154
+ /**
155
+ * Get XPath for element
156
+ */
157
+ private getXPathForElement;
158
+ /**
159
+ * Log debug messages
160
+ */
161
+ private log;
162
+ /**
163
+ * Update toolbar stats
164
+ */
165
+ private updateToolbarStats;
166
+ /**
167
+ * Destroy the debug agent
168
+ */
169
+ destroy(): void;
170
+ }
171
+ //# sourceMappingURL=debug-agent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"debug-agent.d.ts","sourceRoot":"","sources":["../../src/debug-agent.ts"],"names":[],"mappings":"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"}