@tracelog/lib 0.10.0 → 0.11.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.
- package/README.md +128 -407
- package/dist/browser/tracelog.esm.js +1174 -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 +4 -1
- package/dist/cjs/types/event.types.d.ts.map +1 -1
- package/dist/cjs/types/event.types.js +1 -0
- package/dist/cjs/types/event.types.js.map +1 -1
- package/dist/cjs/types/viewport.types.d.ts +82 -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 +4 -1
- package/dist/esm/types/event.types.d.ts.map +1 -1
- package/dist/esm/types/event.types.js +1 -0
- package/dist/esm/types/event.types.js.map +1 -1
- package/dist/esm/types/viewport.types.d.ts +82 -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
|
@@ -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":"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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;
|
package/dist/esm/app.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../../src/app.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAExD,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,MAAM,EAAa,eAAe,EAAE,UAAU,EAAQ,MAAM,SAAS,CAAC;AAC/E,OAAO,EAAE,0BAA0B,EAAE,MAAM,6CAA6C,CAAC;AAEzF,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAE5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAExD,qBAAa,GAAI,SAAQ,YAAY;IACnC,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,uBAAuB,CAAuB;IAEtD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAiB;IAEzC,SAAS,CAAC,QAAQ,EAAE;QAClB,OAAO,CAAC,EAAE,cAAc,CAAC;QACzB,KAAK,CAAC,EAAE,YAAY,CAAC;KACtB,CAAM;IAEP,SAAS,CAAC,QAAQ,EAAE;QAClB,OAAO,CAAC,EAAE,cAAc,CAAC;QACzB,QAAQ,CAAC,EAAE,eAAe,CAAC;QAC3B,KAAK,CAAC,EAAE,YAAY,CAAC;QACrB,MAAM,CAAC,EAAE,aAAa,CAAC;QACvB,WAAW,CAAC,EAAE,kBAAkB,CAAC;QACjC,KAAK,CAAC,EAAE,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../../src/app.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAExD,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,MAAM,EAAa,eAAe,EAAE,UAAU,EAAQ,MAAM,SAAS,CAAC;AAC/E,OAAO,EAAE,0BAA0B,EAAE,MAAM,6CAA6C,CAAC;AAEzF,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAE5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAExD,qBAAa,GAAI,SAAQ,YAAY;IACnC,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,uBAAuB,CAAuB;IAEtD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAiB;IAEzC,SAAS,CAAC,QAAQ,EAAE;QAClB,OAAO,CAAC,EAAE,cAAc,CAAC;QACzB,KAAK,CAAC,EAAE,YAAY,CAAC;KACtB,CAAM;IAEP,SAAS,CAAC,QAAQ,EAAE;QAClB,OAAO,CAAC,EAAE,cAAc,CAAC;QACzB,QAAQ,CAAC,EAAE,eAAe,CAAC;QAC3B,KAAK,CAAC,EAAE,YAAY,CAAC;QACrB,MAAM,CAAC,EAAE,aAAa,CAAC;QACvB,WAAW,CAAC,EAAE,kBAAkB,CAAC;QACjC,KAAK,CAAC,EAAE,YAAY,CAAC;QACrB,QAAQ,CAAC,EAAE,eAAe,CAAC;KAC5B,CAAM;IAEP,SAAS,CAAC,YAAY,EAAE;QACtB,eAAe,CAAC,EAAE,0BAA0B,CAAC;KAC9C,CAAM;IAEP,IAAI,WAAW,IAAI,OAAO,CAEzB;IAEK,IAAI,CAAC,MAAM,GAAE,MAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IA2B9C,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,IAAI;IAwBnG,EAAE,CAAC,CAAC,SAAS,MAAM,UAAU,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,eAAe,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI;IAIxF,GAAG,CAAC,CAAC,SAAS,MAAM,UAAU,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,eAAe,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI;IAIzF,OAAO,CAAC,KAAK,UAAQ,GAAG,IAAI;IAoC5B,OAAO,CAAC,UAAU;YAsBJ,iBAAiB;IAc/B,OAAO,CAAC,kBAAkB;CA0C3B"}
|
package/dist/esm/app.js
CHANGED
|
@@ -5,6 +5,7 @@ import { SessionHandler } from './handlers/session.handler';
|
|
|
5
5
|
import { PageViewHandler } from './handlers/page-view.handler';
|
|
6
6
|
import { ClickHandler } from './handlers/click.handler';
|
|
7
7
|
import { ScrollHandler } from './handlers/scroll.handler';
|
|
8
|
+
import { ViewportHandler } from './handlers/viewport.handler';
|
|
8
9
|
import { EventType, Mode } from './types';
|
|
9
10
|
import { GoogleAnalyticsIntegration } from './integrations/google-analytics.integration';
|
|
10
11
|
import { isEventValid, getDeviceType, normalizeUrl, Emitter, getCollectApiUrl, detectQaMode, log } from './utils';
|
|
@@ -151,6 +152,10 @@ export class App extends StateManager {
|
|
|
151
152
|
});
|
|
152
153
|
this.handlers.error = new ErrorHandler(this.managers.event);
|
|
153
154
|
this.handlers.error.startTracking();
|
|
155
|
+
if (this.get('config').viewport) {
|
|
156
|
+
this.handlers.viewport = new ViewportHandler(this.managers.event);
|
|
157
|
+
this.handlers.viewport.startTracking();
|
|
158
|
+
}
|
|
154
159
|
}
|
|
155
160
|
}
|
|
156
161
|
//# sourceMappingURL=app.js.map
|
package/dist/esm/app.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app.js","sourceRoot":"","sources":["../../src/app.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAU,SAAS,EAA+B,IAAI,EAAE,MAAM,SAAS,CAAC;AAC/E,OAAO,EAAE,0BAA0B,EAAE,MAAM,6CAA6C,CAAC;AACzF,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,GAAG,EAAE,MAAM,SAAS,CAAC;AAClH,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,uBAAuB,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AACnG,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAExD,MAAM,OAAO,GAAI,SAAQ,YAAY;IAArC;;QACU,kBAAa,GAAG,KAAK,CAAC;QACtB,4BAAuB,GAAkB,IAAI,CAAC;QAErC,YAAO,GAAG,IAAI,OAAO,EAAE,CAAC;QAE/B,aAAQ,GAGd,EAAE,CAAC;QAEG,aAAQ,
|
|
1
|
+
{"version":3,"file":"app.js","sourceRoot":"","sources":["../../src/app.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAU,SAAS,EAA+B,IAAI,EAAE,MAAM,SAAS,CAAC;AAC/E,OAAO,EAAE,0BAA0B,EAAE,MAAM,6CAA6C,CAAC;AACzF,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,GAAG,EAAE,MAAM,SAAS,CAAC;AAClH,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,uBAAuB,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AACnG,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAExD,MAAM,OAAO,GAAI,SAAQ,YAAY;IAArC;;QACU,kBAAa,GAAG,KAAK,CAAC;QACtB,4BAAuB,GAAkB,IAAI,CAAC;QAErC,YAAO,GAAG,IAAI,OAAO,EAAE,CAAC;QAE/B,aAAQ,GAGd,EAAE,CAAC;QAEG,aAAQ,GAQd,EAAE,CAAC;QAEG,iBAAY,GAElB,EAAE,CAAC;IAmLT,CAAC;IAjLC,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,SAAiB,EAAE;QAC5B,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACvB,OAAO;QACT,CAAC;QAED,IAAI,CAAC,QAAQ,CAAC,OAAO,GAAG,IAAI,cAAc,EAAE,CAAC;QAE7C,IAAI,CAAC;YACH,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;YACxB,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAE/B,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,eAAe,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;YAE/G,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAE1B,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,sBAAsB,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;gBACjE,GAAG,CAAC,MAAM,EAAE,oCAAoC,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;YAC/D,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC5B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACnB,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC5E,MAAM,IAAI,KAAK,CAAC,8CAA8C,YAAY,EAAE,CAAC,CAAC;QAChF,CAAC;IACH,CAAC;IAED,eAAe,CAAC,IAAY,EAAE,QAA8D;QAC1F,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;YACzB,OAAO;QACT,CAAC;QAED,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,iBAAiB,EAAE,GAAG,YAAY,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAEzE,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,EAAE,EAAE,CAAC;gBACjC,MAAM,IAAI,KAAK,CAAC,4BAA4B,IAAI,wBAAwB,KAAK,EAAE,CAAC,CAAC;YACnF,CAAC;YAED,OAAO;QACT,CAAC;QAED,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC;YACxB,IAAI,EAAE,SAAS,CAAC,MAAM;YACtB,YAAY,EAAE;gBACZ,IAAI;gBACJ,GAAG,CAAC,iBAAiB,IAAI,EAAE,QAAQ,EAAE,iBAAiB,EAAE,CAAC;aAC1D;SACF,CAAC,CAAC;IACL,CAAC;IAED,EAAE,CAA6B,KAAQ,EAAE,QAAwC;QAC/E,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IACnC,CAAC;IAED,GAAG,CAA6B,KAAQ,EAAE,QAAwC;QAChF,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IACpC,CAAC;IAED,OAAO,CAAC,KAAK,GAAG,KAAK;QACnB,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,KAAK,EAAE,CAAC;YAClC,OAAO;QACT,CAAC;QAED,IAAI,CAAC,YAAY,CAAC,eAAe,EAAE,OAAO,EAAE,CAAC;QAE7C,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC;aACzB,MAAM,CAAC,OAAO,CAAC;aACf,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YACnB,IAAI,CAAC;gBACH,OAAO,CAAC,YAAY,EAAE,CAAC;YACzB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,GAAG,CAAC,MAAM,EAAE,yBAAyB,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;YACpD,CAAC;QACH,CAAC,CAAC,CAAC;QAEL,IAAI,IAAI,CAAC,uBAAuB,EAAE,CAAC;YACjC,YAAY,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;YAC3C,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC;QACtC,CAAC;QAED,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,oBAAoB,EAAE,CAAC;QAE5C,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC;QAE5B,IAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE,CAAC;QAElC,IAAI,CAAC,GAAG,CAAC,iBAAiB,EAAE,KAAK,CAAC,CAAC;QACnC,IAAI,CAAC,GAAG,CAAC,oBAAoB,EAAE,KAAK,CAAC,CAAC;QACtC,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;QAE5B,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC3B,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;IACrB,CAAC;IAEO,UAAU,CAAC,SAAiB,EAAE;QACpC,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAE3B,MAAM,MAAM,GAAG,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAyB,CAAC,CAAC;QAC1E,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAE3B,MAAM,aAAa,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;QAC/C,IAAI,CAAC,GAAG,CAAC,eAAe,EAAE,aAAa,CAAC,CAAC;QAEzC,MAAM,MAAM,GAAG,aAAa,EAAE,CAAC;QAC/B,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAE3B,MAAM,OAAO,GAAG,YAAY,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,oBAAoB,CAAC,CAAC;QAChF,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAE7B,MAAM,IAAI,GAAG,YAAY,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;QAElD,IAAI,IAAI,EAAE,CAAC;YACT,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QACzB,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,iBAAiB;QAC7B,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAClC,MAAM,aAAa,GAAG,MAAM,CAAC,YAAY,EAAE,eAAe,EAAE,aAAa,CAAC;QAE1E,IAAI,aAAa,EAAE,IAAI,EAAE,EAAE,CAAC;YAC1B,IAAI,CAAC;gBACH,IAAI,CAAC,YAAY,CAAC,eAAe,GAAG,IAAI,0BAA0B,EAAE,CAAC;gBACrE,MAAM,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,UAAU,EAAE,CAAC;YACvD,CAAC;YAAC,MAAM,CAAC;gBACP,IAAI,CAAC,YAAY,CAAC,eAAe,GAAG,SAAS,CAAC;YAChD,CAAC;QACH,CAAC;IACH,CAAC;IAEO,kBAAkB;QACxB,IAAI,CAAC,QAAQ,CAAC,OAAO,GAAG,IAAI,cAAc,CACxC,IAAI,CAAC,QAAQ,CAAC,OAAyB,EACvC,IAAI,CAAC,QAAQ,CAAC,KAAqB,CACpC,CAAC;QAEF,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;QAEtC,MAAM,UAAU,GAAG,GAAS,EAAE;YAC5B,IAAI,CAAC,GAAG,CAAC,oBAAoB,EAAE,IAAI,CAAC,CAAC;YAErC,IAAI,IAAI,CAAC,uBAAuB,EAAE,CAAC;gBACjC,YAAY,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;YAC7C,CAAC;YAED,IAAI,CAAC,uBAAuB,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE;gBACpD,IAAI,CAAC,GAAG,CAAC,oBAAoB,EAAE,KAAK,CAAC,CAAC;YACxC,CAAC,EAAE,uBAAuB,GAAG,0BAA0B,CAAC,CAAC;QAC3D,CAAC,CAAC;QAEF,IAAI,CAAC,QAAQ,CAAC,QAAQ,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAqB,EAAE,UAAU,CAAC,CAAC;QAC9F,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC;QAEvC,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAqB,CAAC,CAAC;QAC5E,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;QAEpC,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,IAAI,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAqB,CAAC,CAAC;QAC9E,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;QAErC,IAAI,CAAC,QAAQ,CAAC,WAAW,GAAG,IAAI,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAqB,CAAC,CAAC;QACxF,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,aAAa,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;YACxD,GAAG,CAAC,MAAM,EAAE,sCAAsC,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;QACjE,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAqB,CAAC,CAAC;QAC5E,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;QAEpC,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC;YAChC,IAAI,CAAC,QAAQ,CAAC,QAAQ,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAqB,CAAC,CAAC;YAClF,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC;QACzC,CAAC;IACH,CAAC;CACF"}
|
|
@@ -7,6 +7,11 @@ export declare const DUPLICATE_EVENT_THRESHOLD_MS = 500;
|
|
|
7
7
|
export declare const EVENT_SENT_INTERVAL_MS = 10000;
|
|
8
8
|
export declare const SCROLL_DEBOUNCE_TIME_MS = 250;
|
|
9
9
|
export declare const DEFAULT_VISIBILITY_TIMEOUT_MS = 2000;
|
|
10
|
+
export declare const DEFAULT_PAGE_VIEW_THROTTLE_MS = 1000;
|
|
11
|
+
export declare const DEFAULT_CLICK_THROTTLE_MS = 300;
|
|
12
|
+
export declare const DEFAULT_VIEWPORT_COOLDOWN_PERIOD = 60000;
|
|
13
|
+
export declare const DEFAULT_VIEWPORT_MAX_TRACKED_ELEMENTS = 100;
|
|
14
|
+
export declare const VIEWPORT_MUTATION_DEBOUNCE_MS = 100;
|
|
10
15
|
export declare const EVENT_EXPIRY_HOURS = 2;
|
|
11
16
|
export declare const EVENT_PERSISTENCE_MAX_AGE_MS: number;
|
|
12
17
|
export declare const MAX_EVENTS_QUEUE_LENGTH = 100;
|
|
@@ -21,7 +26,14 @@ export declare const DEFAULT_SAMPLING_RATE = 1;
|
|
|
21
26
|
export declare const MIN_SAMPLING_RATE = 0;
|
|
22
27
|
export declare const MAX_SAMPLING_RATE = 1;
|
|
23
28
|
export declare const RATE_LIMIT_WINDOW_MS = 1000;
|
|
24
|
-
export declare const MAX_EVENTS_PER_SECOND =
|
|
29
|
+
export declare const MAX_EVENTS_PER_SECOND = 50;
|
|
30
|
+
export declare const MAX_SAME_EVENT_PER_MINUTE = 60;
|
|
31
|
+
export declare const PER_EVENT_RATE_LIMIT_WINDOW_MS = 60000;
|
|
32
|
+
export declare const MAX_EVENTS_PER_SESSION = 1000;
|
|
33
|
+
export declare const MAX_CLICKS_PER_SESSION = 500;
|
|
34
|
+
export declare const MAX_PAGE_VIEWS_PER_SESSION = 100;
|
|
35
|
+
export declare const MAX_CUSTOM_EVENTS_PER_SESSION = 500;
|
|
36
|
+
export declare const MAX_VIEWPORT_EVENTS_PER_SESSION = 200;
|
|
25
37
|
export declare const BATCH_SIZE_THRESHOLD = 50;
|
|
26
38
|
export declare const MAX_PENDING_EVENTS_BUFFER = 100;
|
|
27
39
|
export declare const MIN_SESSION_TIMEOUT_MS = 30000;
|
|
@@ -39,6 +51,7 @@ export declare const MAX_ARRAY_LENGTH = 100;
|
|
|
39
51
|
export declare const MAX_OBJECT_DEPTH = 3;
|
|
40
52
|
export declare const PRECISION_TWO_DECIMALS: 2;
|
|
41
53
|
export declare const SYNC_XHR_TIMEOUT_MS = 2000;
|
|
54
|
+
export declare const MAX_BEACON_PAYLOAD_SIZE: number;
|
|
42
55
|
export declare const MAX_FINGERPRINTS = 1000;
|
|
43
56
|
export declare const FINGERPRINT_CLEANUP_MULTIPLIER = 10;
|
|
44
57
|
export declare const MAX_FINGERPRINTS_HARD_LIMIT = 2000;
|
|
@@ -79,6 +92,18 @@ export declare const VALIDATION_MESSAGES: {
|
|
|
79
92
|
readonly INVALID_SENSITIVE_QUERY_PARAMS: "Sensitive query params must be an array of strings";
|
|
80
93
|
readonly INVALID_PRIMARY_SCROLL_SELECTOR: "Primary scroll selector must be a non-empty string";
|
|
81
94
|
readonly INVALID_PRIMARY_SCROLL_SELECTOR_SYNTAX: "Invalid CSS selector syntax for primaryScrollSelector";
|
|
95
|
+
readonly INVALID_PAGE_VIEW_THROTTLE: "Page view throttle must be a non-negative number";
|
|
96
|
+
readonly INVALID_CLICK_THROTTLE: "Click throttle must be a non-negative number";
|
|
97
|
+
readonly INVALID_MAX_SAME_EVENT_PER_MINUTE: "Max same event per minute must be a positive number";
|
|
98
|
+
readonly INVALID_VIEWPORT_CONFIG: "Viewport config must be an object";
|
|
99
|
+
readonly INVALID_VIEWPORT_ELEMENTS: "Viewport elements must be a non-empty array";
|
|
100
|
+
readonly INVALID_VIEWPORT_ELEMENT: "Each viewport element must have a valid selector string";
|
|
101
|
+
readonly INVALID_VIEWPORT_ELEMENT_ID: "Viewport element id must be a non-empty string";
|
|
102
|
+
readonly INVALID_VIEWPORT_ELEMENT_NAME: "Viewport element name must be a non-empty string";
|
|
103
|
+
readonly INVALID_VIEWPORT_THRESHOLD: "Viewport threshold must be a number between 0 and 1";
|
|
104
|
+
readonly INVALID_VIEWPORT_MIN_DWELL_TIME: "Viewport minDwellTime must be a non-negative number";
|
|
105
|
+
readonly INVALID_VIEWPORT_COOLDOWN_PERIOD: "Viewport cooldownPeriod must be a non-negative number";
|
|
106
|
+
readonly INVALID_VIEWPORT_MAX_TRACKED_ELEMENTS: "Viewport maxTrackedElements must be a positive number";
|
|
82
107
|
};
|
|
83
108
|
export declare const XSS_PATTERNS: readonly [RegExp, RegExp, RegExp, RegExp, RegExp, RegExp];
|
|
84
109
|
//# sourceMappingURL=config.constants.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.constants.d.ts","sourceRoot":"","sources":["../../../src/constants/config.constants.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,eAAO,MAAM,uBAAuB,QAAiB,CAAC;AACtD,eAAO,MAAM,4BAA4B,MAAM,CAAC;AAChD,eAAO,MAAM,sBAAsB,QAAQ,CAAC;AAG5C,eAAO,MAAM,uBAAuB,MAAM,CAAC;AAC3C,eAAO,MAAM,6BAA6B,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"config.constants.d.ts","sourceRoot":"","sources":["../../../src/constants/config.constants.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,6 +11,11 @@ export const EVENT_SENT_INTERVAL_MS = 10000; // 10 seconds
|
|
|
11
11
|
// Throttling and debouncing
|
|
12
12
|
export const SCROLL_DEBOUNCE_TIME_MS = 250;
|
|
13
13
|
export const DEFAULT_VISIBILITY_TIMEOUT_MS = 2000;
|
|
14
|
+
export const DEFAULT_PAGE_VIEW_THROTTLE_MS = 1000; // 1 second throttle for page views
|
|
15
|
+
export const DEFAULT_CLICK_THROTTLE_MS = 300; // 300ms throttle for clicks per element
|
|
16
|
+
export const DEFAULT_VIEWPORT_COOLDOWN_PERIOD = 60000; // 60 seconds cooldown for viewport events
|
|
17
|
+
export const DEFAULT_VIEWPORT_MAX_TRACKED_ELEMENTS = 100; // Maximum elements to track (Phase 3)
|
|
18
|
+
export const VIEWPORT_MUTATION_DEBOUNCE_MS = 100; // Debounce for mutation observer re-scanning
|
|
14
19
|
// Event expiry
|
|
15
20
|
export const EVENT_EXPIRY_HOURS = 2;
|
|
16
21
|
export const EVENT_PERSISTENCE_MAX_AGE_MS = 2 * 60 * 60 * 1000; // 2 hours
|
|
@@ -31,7 +36,15 @@ export const DEFAULT_SAMPLING_RATE = 1;
|
|
|
31
36
|
export const MIN_SAMPLING_RATE = 0;
|
|
32
37
|
export const MAX_SAMPLING_RATE = 1;
|
|
33
38
|
export const RATE_LIMIT_WINDOW_MS = 1000; // 1 second window
|
|
34
|
-
export const MAX_EVENTS_PER_SECOND =
|
|
39
|
+
export const MAX_EVENTS_PER_SECOND = 50; // Maximum 50 events per second (Phase 3: reduced from 200)
|
|
40
|
+
export const MAX_SAME_EVENT_PER_MINUTE = 60; // Maximum same custom event name per minute (prevents infinite loops)
|
|
41
|
+
export const PER_EVENT_RATE_LIMIT_WINDOW_MS = 60000; // 60 second window for per-event-name rate limiting
|
|
42
|
+
// Per-session event caps (Phase 3)
|
|
43
|
+
export const MAX_EVENTS_PER_SESSION = 1000;
|
|
44
|
+
export const MAX_CLICKS_PER_SESSION = 500;
|
|
45
|
+
export const MAX_PAGE_VIEWS_PER_SESSION = 100;
|
|
46
|
+
export const MAX_CUSTOM_EVENTS_PER_SESSION = 500;
|
|
47
|
+
export const MAX_VIEWPORT_EVENTS_PER_SESSION = 200;
|
|
35
48
|
// Queue and batch limits
|
|
36
49
|
export const BATCH_SIZE_THRESHOLD = 50;
|
|
37
50
|
export const MAX_PENDING_EVENTS_BUFFER = 100; // Maximum events to buffer before session init
|
|
@@ -56,6 +69,8 @@ export const MAX_OBJECT_DEPTH = 3;
|
|
|
56
69
|
export const PRECISION_TWO_DECIMALS = 2;
|
|
57
70
|
// Sync XHR timeout
|
|
58
71
|
export const SYNC_XHR_TIMEOUT_MS = 2000; // 2 seconds
|
|
72
|
+
// sendBeacon payload size limit (Phase 3)
|
|
73
|
+
export const MAX_BEACON_PAYLOAD_SIZE = 64 * 1024; // 64KB browser limit
|
|
59
74
|
// Event fingerprint management
|
|
60
75
|
export const MAX_FINGERPRINTS = 1000; // Maximum fingerprints stored before cleanup
|
|
61
76
|
export const FINGERPRINT_CLEANUP_MULTIPLIER = 10; // Cleanup fingerprints older than 10x threshold
|
|
@@ -169,6 +184,18 @@ export const VALIDATION_MESSAGES = {
|
|
|
169
184
|
INVALID_SENSITIVE_QUERY_PARAMS: 'Sensitive query params must be an array of strings',
|
|
170
185
|
INVALID_PRIMARY_SCROLL_SELECTOR: 'Primary scroll selector must be a non-empty string',
|
|
171
186
|
INVALID_PRIMARY_SCROLL_SELECTOR_SYNTAX: 'Invalid CSS selector syntax for primaryScrollSelector',
|
|
187
|
+
INVALID_PAGE_VIEW_THROTTLE: 'Page view throttle must be a non-negative number',
|
|
188
|
+
INVALID_CLICK_THROTTLE: 'Click throttle must be a non-negative number',
|
|
189
|
+
INVALID_MAX_SAME_EVENT_PER_MINUTE: 'Max same event per minute must be a positive number',
|
|
190
|
+
INVALID_VIEWPORT_CONFIG: 'Viewport config must be an object',
|
|
191
|
+
INVALID_VIEWPORT_ELEMENTS: 'Viewport elements must be a non-empty array',
|
|
192
|
+
INVALID_VIEWPORT_ELEMENT: 'Each viewport element must have a valid selector string',
|
|
193
|
+
INVALID_VIEWPORT_ELEMENT_ID: 'Viewport element id must be a non-empty string',
|
|
194
|
+
INVALID_VIEWPORT_ELEMENT_NAME: 'Viewport element name must be a non-empty string',
|
|
195
|
+
INVALID_VIEWPORT_THRESHOLD: 'Viewport threshold must be a number between 0 and 1',
|
|
196
|
+
INVALID_VIEWPORT_MIN_DWELL_TIME: 'Viewport minDwellTime must be a non-negative number',
|
|
197
|
+
INVALID_VIEWPORT_COOLDOWN_PERIOD: 'Viewport cooldownPeriod must be a non-negative number',
|
|
198
|
+
INVALID_VIEWPORT_MAX_TRACKED_ELEMENTS: 'Viewport maxTrackedElements must be a positive number',
|
|
172
199
|
};
|
|
173
200
|
// ============================================================================
|
|
174
201
|
// SECURITY
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.constants.js","sourceRoot":"","sources":["../../../src/constants/config.constants.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,+EAA+E;AAC/E,mBAAmB;AACnB,+EAA+E;AAE/E,MAAM,CAAC,MAAM,uBAAuB,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,aAAa;AACpE,MAAM,CAAC,MAAM,4BAA4B,GAAG,GAAG,CAAC,CAAC,QAAQ;AACzD,MAAM,CAAC,MAAM,sBAAsB,GAAG,KAAK,CAAC,CAAC,aAAa;AAE1D,4BAA4B;AAC5B,MAAM,CAAC,MAAM,uBAAuB,GAAG,GAAG,CAAC;AAC3C,MAAM,CAAC,MAAM,6BAA6B,GAAG,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"config.constants.js","sourceRoot":"","sources":["../../../src/constants/config.constants.ts"],"names":[],"mappings":"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"}
|
|
@@ -32,6 +32,21 @@ export declare const MAX_TRACKED_ERRORS_HARD_LIMIT: number;
|
|
|
32
32
|
* Controls what percentage of errors are actually reported
|
|
33
33
|
*/
|
|
34
34
|
export declare const DEFAULT_ERROR_SAMPLING_RATE = 1;
|
|
35
|
+
/**
|
|
36
|
+
* Time window for error burst detection in milliseconds
|
|
37
|
+
* Tracks unique errors within this window
|
|
38
|
+
*/
|
|
39
|
+
export declare const ERROR_BURST_WINDOW_MS = 1000;
|
|
40
|
+
/**
|
|
41
|
+
* Maximum number of unique errors allowed in burst window
|
|
42
|
+
* Exceeding this triggers a cooldown period
|
|
43
|
+
*/
|
|
44
|
+
export declare const ERROR_BURST_THRESHOLD = 10;
|
|
45
|
+
/**
|
|
46
|
+
* Backoff period after burst detection in milliseconds
|
|
47
|
+
* No errors will be tracked during this cooldown
|
|
48
|
+
*/
|
|
49
|
+
export declare const ERROR_BURST_BACKOFF_MS = 5000;
|
|
35
50
|
/**
|
|
36
51
|
* Time window for throttling permanent error logs in milliseconds
|
|
37
52
|
* Same error status codes are logged at most once per this window
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error.constants.d.ts","sourceRoot":"","sources":["../../../src/constants/error.constants.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH;;;GAGG;AACH,eAAO,MAAM,YAAY,mEAqBf,CAAC;AAMX;;;GAGG;AACH,eAAO,MAAM,wBAAwB,MAAM,CAAC;AAE5C;;;GAGG;AACH,eAAO,MAAM,2BAA2B,OAAQ,CAAC;AAEjD;;;GAGG;AACH,eAAO,MAAM,kBAAkB,KAAK,CAAC;AAErC;;;GAGG;AACH,eAAO,MAAM,6BAA6B,QAAyB,CAAC;AAMpE;;;GAGG;AACH,eAAO,MAAM,2BAA2B,IAAI,CAAC;AAM7C;;;;GAIG;AACH,eAAO,MAAM,+BAA+B,QAAS,CAAC"}
|
|
1
|
+
{"version":3,"file":"error.constants.d.ts","sourceRoot":"","sources":["../../../src/constants/error.constants.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH;;;GAGG;AACH,eAAO,MAAM,YAAY,mEAqBf,CAAC;AAMX;;;GAGG;AACH,eAAO,MAAM,wBAAwB,MAAM,CAAC;AAE5C;;;GAGG;AACH,eAAO,MAAM,2BAA2B,OAAQ,CAAC;AAEjD;;;GAGG;AACH,eAAO,MAAM,kBAAkB,KAAK,CAAC;AAErC;;;GAGG;AACH,eAAO,MAAM,6BAA6B,QAAyB,CAAC;AAMpE;;;GAGG;AACH,eAAO,MAAM,2BAA2B,IAAI,CAAC;AAM7C;;;GAGG;AACH,eAAO,MAAM,qBAAqB,OAAO,CAAC;AAE1C;;;GAGG;AACH,eAAO,MAAM,qBAAqB,KAAK,CAAC;AAExC;;;GAGG;AACH,eAAO,MAAM,sBAAsB,OAAO,CAAC;AAM3C;;;;GAIG;AACH,eAAO,MAAM,+BAA+B,QAAS,CAAC"}
|
|
@@ -57,6 +57,24 @@ export const MAX_TRACKED_ERRORS_HARD_LIMIT = MAX_TRACKED_ERRORS * 2;
|
|
|
57
57
|
*/
|
|
58
58
|
export const DEFAULT_ERROR_SAMPLING_RATE = 1; // 100% of errors
|
|
59
59
|
// ============================================================================
|
|
60
|
+
// ERROR BURST DETECTION (Phase 3)
|
|
61
|
+
// ============================================================================
|
|
62
|
+
/**
|
|
63
|
+
* Time window for error burst detection in milliseconds
|
|
64
|
+
* Tracks unique errors within this window
|
|
65
|
+
*/
|
|
66
|
+
export const ERROR_BURST_WINDOW_MS = 1000; // 1 second
|
|
67
|
+
/**
|
|
68
|
+
* Maximum number of unique errors allowed in burst window
|
|
69
|
+
* Exceeding this triggers a cooldown period
|
|
70
|
+
*/
|
|
71
|
+
export const ERROR_BURST_THRESHOLD = 10; // 10 unique errors
|
|
72
|
+
/**
|
|
73
|
+
* Backoff period after burst detection in milliseconds
|
|
74
|
+
* No errors will be tracked during this cooldown
|
|
75
|
+
*/
|
|
76
|
+
export const ERROR_BURST_BACKOFF_MS = 5000; // 5 seconds
|
|
77
|
+
// ============================================================================
|
|
60
78
|
// PERMANENT ERROR LOGGING
|
|
61
79
|
// ============================================================================
|
|
62
80
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error.constants.js","sourceRoot":"","sources":["../../../src/constants/error.constants.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,+EAA+E;AAC/E,4BAA4B;AAC5B,+EAA+E;AAE/E;;;GAGG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,kBAAkB;IAClB,uDAAuD;IAEvD,qCAAqC;IACrC,gCAAgC;IAEhC,2DAA2D;IAC3D,6CAA6C;IAE7C,2CAA2C;IAC3C,4EAA4E;IAE5E,iEAAiE;IACjE,0CAA0C;IAE1C,0EAA0E;IAC1E,qEAAqE;IAErE,kEAAkE;IAClE,wBAAwB;CAChB,CAAC;AAEX,+EAA+E;AAC/E,wBAAwB;AACxB,+EAA+E;AAE/E;;;GAGG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,GAAG,CAAC;AAE5C;;;GAGG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,IAAK,CAAC,CAAC,YAAY;AAE9D;;;GAGG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,EAAE,CAAC;AAErC;;;GAGG;AACH,MAAM,CAAC,MAAM,6BAA6B,GAAG,kBAAkB,GAAG,CAAC,CAAC;AAEpE,+EAA+E;AAC/E,iBAAiB;AACjB,+EAA+E;AAE/E;;;GAGG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,CAAC,CAAC,iBAAiB;AAE/D,+EAA+E;AAC/E,0BAA0B;AAC1B,+EAA+E;AAE/E;;;;GAIG;AACH,MAAM,CAAC,MAAM,+BAA+B,GAAG,KAAM,CAAC,CAAC,WAAW"}
|
|
1
|
+
{"version":3,"file":"error.constants.js","sourceRoot":"","sources":["../../../src/constants/error.constants.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,+EAA+E;AAC/E,4BAA4B;AAC5B,+EAA+E;AAE/E;;;GAGG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,kBAAkB;IAClB,uDAAuD;IAEvD,qCAAqC;IACrC,gCAAgC;IAEhC,2DAA2D;IAC3D,6CAA6C;IAE7C,2CAA2C;IAC3C,4EAA4E;IAE5E,iEAAiE;IACjE,0CAA0C;IAE1C,0EAA0E;IAC1E,qEAAqE;IAErE,kEAAkE;IAClE,wBAAwB;CAChB,CAAC;AAEX,+EAA+E;AAC/E,wBAAwB;AACxB,+EAA+E;AAE/E;;;GAGG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,GAAG,CAAC;AAE5C;;;GAGG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,IAAK,CAAC,CAAC,YAAY;AAE9D;;;GAGG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,EAAE,CAAC;AAErC;;;GAGG;AACH,MAAM,CAAC,MAAM,6BAA6B,GAAG,kBAAkB,GAAG,CAAC,CAAC;AAEpE,+EAA+E;AAC/E,iBAAiB;AACjB,+EAA+E;AAE/E;;;GAGG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,CAAC,CAAC,iBAAiB;AAE/D,+EAA+E;AAC/E,kCAAkC;AAClC,+EAA+E;AAE/E;;;GAGG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,IAAI,CAAC,CAAC,WAAW;AAEtD;;;GAGG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,EAAE,CAAC,CAAC,mBAAmB;AAE5D;;;GAGG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,IAAI,CAAC,CAAC,YAAY;AAExD,+EAA+E;AAC/E,0BAA0B;AAC1B,+EAA+E;AAE/E;;;;GAIG;AACH,MAAM,CAAC,MAAM,+BAA+B,GAAG,KAAM,CAAC,CAAC,WAAW"}
|
|
@@ -3,10 +3,25 @@ import { StateManager } from '../managers/state.manager';
|
|
|
3
3
|
export declare class ClickHandler extends StateManager {
|
|
4
4
|
private readonly eventManager;
|
|
5
5
|
private clickHandler?;
|
|
6
|
+
private readonly lastClickTimes;
|
|
6
7
|
constructor(eventManager: EventManager);
|
|
7
8
|
startTracking(): void;
|
|
8
9
|
stopTracking(): void;
|
|
9
10
|
private shouldIgnoreElement;
|
|
11
|
+
/**
|
|
12
|
+
* Checks per-element click throttling to prevent double-clicks and rapid spam
|
|
13
|
+
* Returns true if the click should be tracked, false if throttled
|
|
14
|
+
*/
|
|
15
|
+
private checkClickThrottle;
|
|
16
|
+
/**
|
|
17
|
+
* Creates a stable signature for an element to track throttling
|
|
18
|
+
* Priority: id > data-testid > data-tlog-name > DOM path
|
|
19
|
+
*/
|
|
20
|
+
private getElementSignature;
|
|
21
|
+
/**
|
|
22
|
+
* Generates a DOM path for an element (e.g., "body>div>button")
|
|
23
|
+
*/
|
|
24
|
+
private getElementPath;
|
|
10
25
|
private findTrackingElement;
|
|
11
26
|
private getRelevantClickElement;
|
|
12
27
|
private clamp;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"click.handler.d.ts","sourceRoot":"","sources":["../../../src/handlers/click.handler.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"click.handler.d.ts","sourceRoot":"","sources":["../../../src/handlers/click.handler.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAGzD,qBAAa,YAAa,SAAQ,YAAY;IAC5C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAe;IAE5C,OAAO,CAAC,YAAY,CAAC,CAAyB;IAC9C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAkC;gBAErD,YAAY,EAAE,YAAY;IAMtC,aAAa,IAAI,IAAI;IA6DrB,YAAY,IAAI,IAAI;IAQpB,OAAO,CAAC,mBAAmB;IAU3B;;;OAGG;IACH,OAAO,CAAC,kBAAkB;IAmB1B;;;OAGG;IACH,OAAO,CAAC,mBAAmB;IAsB3B;;OAEG;IACH,OAAO,CAAC,cAAc;IAsBtB,OAAO,CAAC,mBAAmB;IAU3B,OAAO,CAAC,uBAAuB;IAqB/B,OAAO,CAAC,KAAK;IAIb,OAAO,CAAC,yBAAyB;IAUjC,OAAO,CAAC,mBAAmB;IAe3B,OAAO,CAAC,iBAAiB;IA2BzB,OAAO,CAAC,YAAY;IAWpB,OAAO,CAAC,eAAe;IAqBvB,OAAO,CAAC,wBAAwB;IA0BhC,OAAO,CAAC,qBAAqB;CAM9B"}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
import { HTML_DATA_ATTR_PREFIX, MAX_TEXT_LENGTH, INTERACTIVE_SELECTORS, PII_PATTERNS } from '../constants';
|
|
1
|
+
import { HTML_DATA_ATTR_PREFIX, MAX_TEXT_LENGTH, INTERACTIVE_SELECTORS, PII_PATTERNS, DEFAULT_CLICK_THROTTLE_MS, } from '../constants';
|
|
2
2
|
import { EventType } from '../types';
|
|
3
3
|
import { StateManager } from '../managers/state.manager';
|
|
4
4
|
import { log } from '../utils';
|
|
5
5
|
export class ClickHandler extends StateManager {
|
|
6
6
|
constructor(eventManager) {
|
|
7
7
|
super();
|
|
8
|
+
this.lastClickTimes = new Map();
|
|
8
9
|
this.eventManager = eventManager;
|
|
9
10
|
}
|
|
10
11
|
startTracking() {
|
|
@@ -26,6 +27,11 @@ export class ClickHandler extends StateManager {
|
|
|
26
27
|
if (this.shouldIgnoreElement(clickedElement)) {
|
|
27
28
|
return;
|
|
28
29
|
}
|
|
30
|
+
// Throttle clicks per element to prevent double-clicks and spam
|
|
31
|
+
const clickThrottleMs = this.get('config')?.clickThrottleMs ?? DEFAULT_CLICK_THROTTLE_MS;
|
|
32
|
+
if (clickThrottleMs > 0 && !this.checkClickThrottle(clickedElement, clickThrottleMs)) {
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
29
35
|
const trackingElement = this.findTrackingElement(clickedElement);
|
|
30
36
|
const relevantClickElement = this.getRelevantClickElement(clickedElement);
|
|
31
37
|
const coordinates = this.calculateClickCoordinates(mouseEvent, clickedElement);
|
|
@@ -55,6 +61,7 @@ export class ClickHandler extends StateManager {
|
|
|
55
61
|
window.removeEventListener('click', this.clickHandler, true);
|
|
56
62
|
this.clickHandler = undefined;
|
|
57
63
|
}
|
|
64
|
+
this.lastClickTimes.clear();
|
|
58
65
|
}
|
|
59
66
|
shouldIgnoreElement(element) {
|
|
60
67
|
if (element.hasAttribute(`${HTML_DATA_ATTR_PREFIX}-ignore`)) {
|
|
@@ -63,6 +70,68 @@ export class ClickHandler extends StateManager {
|
|
|
63
70
|
const parent = element.closest(`[${HTML_DATA_ATTR_PREFIX}-ignore]`);
|
|
64
71
|
return parent !== null;
|
|
65
72
|
}
|
|
73
|
+
/**
|
|
74
|
+
* Checks per-element click throttling to prevent double-clicks and rapid spam
|
|
75
|
+
* Returns true if the click should be tracked, false if throttled
|
|
76
|
+
*/
|
|
77
|
+
checkClickThrottle(element, throttleMs) {
|
|
78
|
+
const signature = this.getElementSignature(element);
|
|
79
|
+
const now = Date.now();
|
|
80
|
+
const lastClickTime = this.lastClickTimes.get(signature);
|
|
81
|
+
if (lastClickTime !== undefined && now - lastClickTime < throttleMs) {
|
|
82
|
+
log('debug', 'ClickHandler: Click suppressed by throttle', {
|
|
83
|
+
data: {
|
|
84
|
+
signature,
|
|
85
|
+
throttleRemaining: throttleMs - (now - lastClickTime),
|
|
86
|
+
},
|
|
87
|
+
});
|
|
88
|
+
return false;
|
|
89
|
+
}
|
|
90
|
+
this.lastClickTimes.set(signature, now);
|
|
91
|
+
return true;
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Creates a stable signature for an element to track throttling
|
|
95
|
+
* Priority: id > data-testid > data-tlog-name > DOM path
|
|
96
|
+
*/
|
|
97
|
+
getElementSignature(element) {
|
|
98
|
+
// Priority 1: Element ID (most stable)
|
|
99
|
+
if (element.id) {
|
|
100
|
+
return `#${element.id}`;
|
|
101
|
+
}
|
|
102
|
+
// Priority 2: data-testid (common in tests)
|
|
103
|
+
const testId = element.getAttribute('data-testid');
|
|
104
|
+
if (testId) {
|
|
105
|
+
return `[data-testid="${testId}"]`;
|
|
106
|
+
}
|
|
107
|
+
// Priority 3: data-tlog-name (our own tracking attribute)
|
|
108
|
+
const tlogName = element.getAttribute(`${HTML_DATA_ATTR_PREFIX}-name`);
|
|
109
|
+
if (tlogName) {
|
|
110
|
+
return `[${HTML_DATA_ATTR_PREFIX}-name="${tlogName}"]`;
|
|
111
|
+
}
|
|
112
|
+
// Priority 4: Generate DOM path as fallback
|
|
113
|
+
return this.getElementPath(element);
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Generates a DOM path for an element (e.g., "body>div>button")
|
|
117
|
+
*/
|
|
118
|
+
getElementPath(element) {
|
|
119
|
+
const path = [];
|
|
120
|
+
let current = element;
|
|
121
|
+
while (current && current !== document.body) {
|
|
122
|
+
let selector = current.tagName.toLowerCase();
|
|
123
|
+
// Add class if available (first class only for brevity)
|
|
124
|
+
if (current.className) {
|
|
125
|
+
const firstClass = current.className.split(' ')[0];
|
|
126
|
+
if (firstClass) {
|
|
127
|
+
selector += `.${firstClass}`;
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
path.unshift(selector);
|
|
131
|
+
current = current.parentElement;
|
|
132
|
+
}
|
|
133
|
+
return path.join('>') || 'unknown';
|
|
134
|
+
}
|
|
66
135
|
findTrackingElement(element) {
|
|
67
136
|
if (element.hasAttribute(`${HTML_DATA_ATTR_PREFIX}-name`)) {
|
|
68
137
|
return element;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"click.handler.js","sourceRoot":"","sources":["../../../src/handlers/click.handler.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"click.handler.js","sourceRoot":"","sources":["../../../src/handlers/click.handler.ts"],"names":[],"mappings":"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"}
|