@tracelog/lib 0.9.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 -361
- package/dist/browser/tracelog.esm.js +1371 -937
- 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 +27 -1
- package/dist/cjs/constants/config.constants.d.ts.map +1 -1
- package/dist/cjs/constants/config.constants.js +47 -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 +17 -0
- package/dist/cjs/handlers/click.handler.d.ts.map +1 -1
- package/dist/cjs/handlers/click.handler.js +96 -5
- 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/network/url.utils.d.ts +2 -1
- package/dist/cjs/utils/network/url.utils.d.ts.map +1 -1
- package/dist/cjs/utils/network/url.utils.js +6 -2
- package/dist/cjs/utils/network/url.utils.js.map +1 -1
- 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 +27 -1
- package/dist/esm/constants/config.constants.d.ts.map +1 -1
- package/dist/esm/constants/config.constants.js +45 -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 +17 -0
- package/dist/esm/handlers/click.handler.d.ts.map +1 -1
- package/dist/esm/handlers/click.handler.js +97 -6
- 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/network/url.utils.d.ts +2 -1
- package/dist/esm/utils/network/url.utils.d.ts.map +1 -1
- package/dist/esm/utils/network/url.utils.js +6 -2
- package/dist/esm/utils/network/url.utils.js.map +1 -1
- 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
package/dist/cjs/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/cjs/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/cjs/app.js
CHANGED
|
@@ -8,6 +8,7 @@ const session_handler_1 = require("./handlers/session.handler");
|
|
|
8
8
|
const page_view_handler_1 = require("./handlers/page-view.handler");
|
|
9
9
|
const click_handler_1 = require("./handlers/click.handler");
|
|
10
10
|
const scroll_handler_1 = require("./handlers/scroll.handler");
|
|
11
|
+
const viewport_handler_1 = require("./handlers/viewport.handler");
|
|
11
12
|
const types_1 = require("./types");
|
|
12
13
|
const google_analytics_integration_1 = require("./integrations/google-analytics.integration");
|
|
13
14
|
const utils_1 = require("./utils");
|
|
@@ -154,6 +155,10 @@ class App extends state_manager_1.StateManager {
|
|
|
154
155
|
});
|
|
155
156
|
this.handlers.error = new error_handler_1.ErrorHandler(this.managers.event);
|
|
156
157
|
this.handlers.error.startTracking();
|
|
158
|
+
if (this.get('config').viewport) {
|
|
159
|
+
this.handlers.viewport = new viewport_handler_1.ViewportHandler(this.managers.event);
|
|
160
|
+
this.handlers.viewport.startTracking();
|
|
161
|
+
}
|
|
157
162
|
}
|
|
158
163
|
}
|
|
159
164
|
exports.App = App;
|
package/dist/cjs/app.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app.js","sourceRoot":"","sources":["../../src/app.ts"],"names":[],"mappings":";;;AAAA,4DAAwD;AACxD,0DAAsD;AACtD,4DAAwD;AACxD,gEAA4D;AAC5D,oEAA+D;AAC/D,4DAAwD;AACxD,8DAA0D;AAC1D,mCAA+E;AAC/E,8FAAyF;AACzF,mCAAkH;AAClH,gEAA4D;AAC5D,mEAAmG;AACnG,wEAAoE;AACpE,4DAAwD;AAExD,MAAa,GAAI,SAAQ,4BAAY;IAArC;;QACU,kBAAa,GAAG,KAAK,CAAC;QACtB,4BAAuB,GAAkB,IAAI,CAAC;QAErC,YAAO,GAAG,IAAI,eAAO,EAAE,CAAC;QAE/B,aAAQ,GAGd,EAAE,CAAC;QAEG,aAAQ,
|
|
1
|
+
{"version":3,"file":"app.js","sourceRoot":"","sources":["../../src/app.ts"],"names":[],"mappings":"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"}
|
|
@@ -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,12 +51,14 @@ 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;
|
|
45
58
|
export declare const HTML_DATA_ATTR_PREFIX = "data-tlog";
|
|
46
59
|
export declare const INTERACTIVE_SELECTORS: readonly ["button", "a", "input[type=\"button\"]", "input[type=\"submit\"]", "input[type=\"reset\"]", "input[type=\"checkbox\"]", "input[type=\"radio\"]", "select", "textarea", "[role=\"button\"]", "[role=\"link\"]", "[role=\"tab\"]", "[role=\"menuitem\"]", "[role=\"option\"]", "[role=\"checkbox\"]", "[role=\"radio\"]", "[role=\"switch\"]", "[routerLink]", "[ng-click]", "[data-action]", "[data-click]", "[data-navigate]", "[data-toggle]", "[onclick]", ".btn", ".button", ".clickable", ".nav-link", ".menu-item", "[data-testid]", "[tabindex=\"0\"]"];
|
|
47
60
|
export declare const UTM_PARAMS: string[];
|
|
61
|
+
export declare const DEFAULT_SENSITIVE_QUERY_PARAMS: readonly ["token", "auth", "key", "session", "reset", "password", "api_key", "apikey", "secret", "access_token", "refresh_token", "verification", "code", "otp"];
|
|
48
62
|
export declare const INITIALIZATION_MAX_CONCURRENT_RETRIES = 20;
|
|
49
63
|
export declare const INITIALIZATION_CONCURRENT_RETRY_DELAY_MS = 50;
|
|
50
64
|
export declare const INITIALIZATION_TIMEOUT_MS = 10000;
|
|
@@ -78,6 +92,18 @@ export declare const VALIDATION_MESSAGES: {
|
|
|
78
92
|
readonly INVALID_SENSITIVE_QUERY_PARAMS: "Sensitive query params must be an array of strings";
|
|
79
93
|
readonly INVALID_PRIMARY_SCROLL_SELECTOR: "Primary scroll selector must be a non-empty string";
|
|
80
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";
|
|
81
107
|
};
|
|
82
108
|
export declare const XSS_PATTERNS: readonly [RegExp, RegExp, RegExp, RegExp, RegExp, RegExp];
|
|
83
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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"}
|
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
* This file centralizes all timing, limits, browser, and initialization constants
|
|
5
5
|
*/
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
-
exports.
|
|
8
|
-
exports.XSS_PATTERNS = exports.VALIDATION_MESSAGES = exports.MAX_RETRY_ATTEMPTS = exports.RATE_LIMIT_INTERVAL = exports.RETRY_BACKOFF_MAX = exports.RETRY_BACKOFF_INITIAL = exports.SCROLL_SUPPRESS_MULTIPLIER = exports.MIN_SESSION_RECOVERY_WINDOW_MS = exports.MAX_SESSION_RECOVERY_WINDOW_MS = exports.MAX_SESSION_RECOVERY_ATTEMPTS = exports.SESSION_RECOVERY_WINDOW_MULTIPLIER = exports.TAB_CLEANUP_DELAY_MS = exports.TAB_ELECTION_TIMEOUT_MS = exports.TAB_HEARTBEAT_INTERVAL_MS = void 0;
|
|
7
|
+
exports.MAX_BEACON_PAYLOAD_SIZE = exports.SYNC_XHR_TIMEOUT_MS = exports.PRECISION_TWO_DECIMALS = exports.MAX_OBJECT_DEPTH = exports.MAX_ARRAY_LENGTH = exports.MAX_STRING_LENGTH_IN_ARRAY = exports.MAX_STRING_LENGTH = exports.MAX_TEXT_LENGTH = exports.MAX_METADATA_NESTING_DEPTH = exports.MAX_NESTED_OBJECT_KEYS = exports.MAX_CUSTOM_EVENT_ARRAY_SIZE = exports.MAX_CUSTOM_EVENT_KEYS = exports.MAX_CUSTOM_EVENT_STRING_SIZE = exports.MAX_CUSTOM_EVENT_NAME_LENGTH = exports.MAX_SESSION_TIMEOUT_MS = exports.MIN_SESSION_TIMEOUT_MS = exports.MAX_PENDING_EVENTS_BUFFER = exports.BATCH_SIZE_THRESHOLD = exports.MAX_VIEWPORT_EVENTS_PER_SESSION = exports.MAX_CUSTOM_EVENTS_PER_SESSION = exports.MAX_PAGE_VIEWS_PER_SESSION = exports.MAX_CLICKS_PER_SESSION = exports.MAX_EVENTS_PER_SESSION = exports.PER_EVENT_RATE_LIMIT_WINDOW_MS = exports.MAX_SAME_EVENT_PER_MINUTE = exports.MAX_EVENTS_PER_SECOND = exports.RATE_LIMIT_WINDOW_MS = exports.MAX_SAMPLING_RATE = exports.MIN_SAMPLING_RATE = exports.DEFAULT_SAMPLING_RATE = exports.MAX_SCROLL_EVENTS_PER_SESSION = exports.SCROLL_MIN_EVENT_INTERVAL_MS = exports.MIN_SCROLL_DEPTH_CHANGE = exports.SIGNIFICANT_SCROLL_DELTA = exports.DEFAULT_MOTION_THRESHOLD = exports.MAX_METADATA_SIZE = exports.REQUEST_TIMEOUT_MS = exports.MAX_EVENTS_QUEUE_LENGTH = exports.EVENT_PERSISTENCE_MAX_AGE_MS = exports.EVENT_EXPIRY_HOURS = exports.VIEWPORT_MUTATION_DEBOUNCE_MS = exports.DEFAULT_VIEWPORT_MAX_TRACKED_ELEMENTS = exports.DEFAULT_VIEWPORT_COOLDOWN_PERIOD = exports.DEFAULT_CLICK_THROTTLE_MS = exports.DEFAULT_PAGE_VIEW_THROTTLE_MS = exports.DEFAULT_VISIBILITY_TIMEOUT_MS = exports.SCROLL_DEBOUNCE_TIME_MS = exports.EVENT_SENT_INTERVAL_MS = exports.DUPLICATE_EVENT_THRESHOLD_MS = exports.DEFAULT_SESSION_TIMEOUT = void 0;
|
|
8
|
+
exports.XSS_PATTERNS = exports.VALIDATION_MESSAGES = exports.MAX_RETRY_ATTEMPTS = exports.RATE_LIMIT_INTERVAL = exports.RETRY_BACKOFF_MAX = exports.RETRY_BACKOFF_INITIAL = exports.SCROLL_SUPPRESS_MULTIPLIER = exports.MIN_SESSION_RECOVERY_WINDOW_MS = exports.MAX_SESSION_RECOVERY_WINDOW_MS = exports.MAX_SESSION_RECOVERY_ATTEMPTS = exports.SESSION_RECOVERY_WINDOW_MULTIPLIER = exports.TAB_CLEANUP_DELAY_MS = exports.TAB_ELECTION_TIMEOUT_MS = exports.TAB_HEARTBEAT_INTERVAL_MS = exports.CROSS_TAB_INITIALIZATION_LOCK_TIMEOUT_MS = exports.SESSION_CLEANUP_DELAY_MS = exports.SESSION_MAX_RETRY_ATTEMPTS = exports.SESSION_SYNC_TIMEOUT_MS = exports.INITIALIZATION_TIMEOUT_MS = exports.INITIALIZATION_CONCURRENT_RETRY_DELAY_MS = exports.INITIALIZATION_MAX_CONCURRENT_RETRIES = exports.DEFAULT_SENSITIVE_QUERY_PARAMS = exports.UTM_PARAMS = exports.INTERACTIVE_SELECTORS = exports.HTML_DATA_ATTR_PREFIX = exports.MAX_FINGERPRINTS_HARD_LIMIT = exports.FINGERPRINT_CLEANUP_MULTIPLIER = exports.MAX_FINGERPRINTS = void 0;
|
|
9
9
|
// ============================================================================
|
|
10
10
|
// SESSION & TIMING
|
|
11
11
|
// ============================================================================
|
|
@@ -15,6 +15,11 @@ exports.EVENT_SENT_INTERVAL_MS = 10000; // 10 seconds
|
|
|
15
15
|
// Throttling and debouncing
|
|
16
16
|
exports.SCROLL_DEBOUNCE_TIME_MS = 250;
|
|
17
17
|
exports.DEFAULT_VISIBILITY_TIMEOUT_MS = 2000;
|
|
18
|
+
exports.DEFAULT_PAGE_VIEW_THROTTLE_MS = 1000; // 1 second throttle for page views
|
|
19
|
+
exports.DEFAULT_CLICK_THROTTLE_MS = 300; // 300ms throttle for clicks per element
|
|
20
|
+
exports.DEFAULT_VIEWPORT_COOLDOWN_PERIOD = 60000; // 60 seconds cooldown for viewport events
|
|
21
|
+
exports.DEFAULT_VIEWPORT_MAX_TRACKED_ELEMENTS = 100; // Maximum elements to track (Phase 3)
|
|
22
|
+
exports.VIEWPORT_MUTATION_DEBOUNCE_MS = 100; // Debounce for mutation observer re-scanning
|
|
18
23
|
// Event expiry
|
|
19
24
|
exports.EVENT_EXPIRY_HOURS = 2;
|
|
20
25
|
exports.EVENT_PERSISTENCE_MAX_AGE_MS = 2 * 60 * 60 * 1000; // 2 hours
|
|
@@ -35,7 +40,15 @@ exports.DEFAULT_SAMPLING_RATE = 1;
|
|
|
35
40
|
exports.MIN_SAMPLING_RATE = 0;
|
|
36
41
|
exports.MAX_SAMPLING_RATE = 1;
|
|
37
42
|
exports.RATE_LIMIT_WINDOW_MS = 1000; // 1 second window
|
|
38
|
-
exports.MAX_EVENTS_PER_SECOND =
|
|
43
|
+
exports.MAX_EVENTS_PER_SECOND = 50; // Maximum 50 events per second (Phase 3: reduced from 200)
|
|
44
|
+
exports.MAX_SAME_EVENT_PER_MINUTE = 60; // Maximum same custom event name per minute (prevents infinite loops)
|
|
45
|
+
exports.PER_EVENT_RATE_LIMIT_WINDOW_MS = 60000; // 60 second window for per-event-name rate limiting
|
|
46
|
+
// Per-session event caps (Phase 3)
|
|
47
|
+
exports.MAX_EVENTS_PER_SESSION = 1000;
|
|
48
|
+
exports.MAX_CLICKS_PER_SESSION = 500;
|
|
49
|
+
exports.MAX_PAGE_VIEWS_PER_SESSION = 100;
|
|
50
|
+
exports.MAX_CUSTOM_EVENTS_PER_SESSION = 500;
|
|
51
|
+
exports.MAX_VIEWPORT_EVENTS_PER_SESSION = 200;
|
|
39
52
|
// Queue and batch limits
|
|
40
53
|
exports.BATCH_SIZE_THRESHOLD = 50;
|
|
41
54
|
exports.MAX_PENDING_EVENTS_BUFFER = 100; // Maximum events to buffer before session init
|
|
@@ -60,6 +73,8 @@ exports.MAX_OBJECT_DEPTH = 3;
|
|
|
60
73
|
exports.PRECISION_TWO_DECIMALS = 2;
|
|
61
74
|
// Sync XHR timeout
|
|
62
75
|
exports.SYNC_XHR_TIMEOUT_MS = 2000; // 2 seconds
|
|
76
|
+
// sendBeacon payload size limit (Phase 3)
|
|
77
|
+
exports.MAX_BEACON_PAYLOAD_SIZE = 64 * 1024; // 64KB browser limit
|
|
63
78
|
// Event fingerprint management
|
|
64
79
|
exports.MAX_FINGERPRINTS = 1000; // Maximum fingerprints stored before cleanup
|
|
65
80
|
exports.FINGERPRINT_CLEANUP_MULTIPLIER = 10; // Cleanup fingerprints older than 10x threshold
|
|
@@ -104,6 +119,23 @@ exports.INTERACTIVE_SELECTORS = [
|
|
|
104
119
|
];
|
|
105
120
|
// UTM parameters for tracking
|
|
106
121
|
exports.UTM_PARAMS = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content'];
|
|
122
|
+
// Default sensitive query parameters to remove from URLs (privacy protection)
|
|
123
|
+
exports.DEFAULT_SENSITIVE_QUERY_PARAMS = [
|
|
124
|
+
'token',
|
|
125
|
+
'auth',
|
|
126
|
+
'key',
|
|
127
|
+
'session',
|
|
128
|
+
'reset',
|
|
129
|
+
'password',
|
|
130
|
+
'api_key',
|
|
131
|
+
'apikey',
|
|
132
|
+
'secret',
|
|
133
|
+
'access_token',
|
|
134
|
+
'refresh_token',
|
|
135
|
+
'verification',
|
|
136
|
+
'code',
|
|
137
|
+
'otp',
|
|
138
|
+
];
|
|
107
139
|
// ============================================================================
|
|
108
140
|
// ============================================================================
|
|
109
141
|
// INITIALIZATION
|
|
@@ -156,6 +188,18 @@ exports.VALIDATION_MESSAGES = {
|
|
|
156
188
|
INVALID_SENSITIVE_QUERY_PARAMS: 'Sensitive query params must be an array of strings',
|
|
157
189
|
INVALID_PRIMARY_SCROLL_SELECTOR: 'Primary scroll selector must be a non-empty string',
|
|
158
190
|
INVALID_PRIMARY_SCROLL_SELECTOR_SYNTAX: 'Invalid CSS selector syntax for primaryScrollSelector',
|
|
191
|
+
INVALID_PAGE_VIEW_THROTTLE: 'Page view throttle must be a non-negative number',
|
|
192
|
+
INVALID_CLICK_THROTTLE: 'Click throttle must be a non-negative number',
|
|
193
|
+
INVALID_MAX_SAME_EVENT_PER_MINUTE: 'Max same event per minute must be a positive number',
|
|
194
|
+
INVALID_VIEWPORT_CONFIG: 'Viewport config must be an object',
|
|
195
|
+
INVALID_VIEWPORT_ELEMENTS: 'Viewport elements must be a non-empty array',
|
|
196
|
+
INVALID_VIEWPORT_ELEMENT: 'Each viewport element must have a valid selector string',
|
|
197
|
+
INVALID_VIEWPORT_ELEMENT_ID: 'Viewport element id must be a non-empty string',
|
|
198
|
+
INVALID_VIEWPORT_ELEMENT_NAME: 'Viewport element name must be a non-empty string',
|
|
199
|
+
INVALID_VIEWPORT_THRESHOLD: 'Viewport threshold must be a number between 0 and 1',
|
|
200
|
+
INVALID_VIEWPORT_MIN_DWELL_TIME: 'Viewport minDwellTime must be a non-negative number',
|
|
201
|
+
INVALID_VIEWPORT_COOLDOWN_PERIOD: 'Viewport cooldownPeriod must be a non-negative number',
|
|
202
|
+
INVALID_VIEWPORT_MAX_TRACKED_ELEMENTS: 'Viewport maxTrackedElements must be a positive number',
|
|
159
203
|
};
|
|
160
204
|
// ============================================================================
|
|
161
205
|
// 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;AAElE,QAAA,uBAAuB,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,aAAa;AACvD,QAAA,4BAA4B,GAAG,GAAG,CAAC,CAAC,QAAQ;AAC5C,QAAA,sBAAsB,GAAG,KAAK,CAAC,CAAC,aAAa;AAE1D,4BAA4B;AACf,QAAA,uBAAuB,GAAG,GAAG,CAAC;AAC9B,QAAA,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"}
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* Centralizes patterns and limits for error tracking and data protection
|
|
5
5
|
*/
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
-
exports.PERMANENT_ERROR_LOG_THROTTLE_MS = exports.DEFAULT_ERROR_SAMPLING_RATE = exports.MAX_TRACKED_ERRORS_HARD_LIMIT = exports.MAX_TRACKED_ERRORS = exports.ERROR_SUPPRESSION_WINDOW_MS = exports.MAX_ERROR_MESSAGE_LENGTH = exports.PII_PATTERNS = void 0;
|
|
7
|
+
exports.PERMANENT_ERROR_LOG_THROTTLE_MS = exports.ERROR_BURST_BACKOFF_MS = exports.ERROR_BURST_THRESHOLD = exports.ERROR_BURST_WINDOW_MS = exports.DEFAULT_ERROR_SAMPLING_RATE = exports.MAX_TRACKED_ERRORS_HARD_LIMIT = exports.MAX_TRACKED_ERRORS = exports.ERROR_SUPPRESSION_WINDOW_MS = exports.MAX_ERROR_MESSAGE_LENGTH = exports.PII_PATTERNS = void 0;
|
|
8
8
|
// ============================================================================
|
|
9
9
|
// PII SANITIZATION PATTERNS
|
|
10
10
|
// ============================================================================
|
|
@@ -60,6 +60,24 @@ exports.MAX_TRACKED_ERRORS_HARD_LIMIT = exports.MAX_TRACKED_ERRORS * 2;
|
|
|
60
60
|
*/
|
|
61
61
|
exports.DEFAULT_ERROR_SAMPLING_RATE = 1; // 100% of errors
|
|
62
62
|
// ============================================================================
|
|
63
|
+
// ERROR BURST DETECTION (Phase 3)
|
|
64
|
+
// ============================================================================
|
|
65
|
+
/**
|
|
66
|
+
* Time window for error burst detection in milliseconds
|
|
67
|
+
* Tracks unique errors within this window
|
|
68
|
+
*/
|
|
69
|
+
exports.ERROR_BURST_WINDOW_MS = 1000; // 1 second
|
|
70
|
+
/**
|
|
71
|
+
* Maximum number of unique errors allowed in burst window
|
|
72
|
+
* Exceeding this triggers a cooldown period
|
|
73
|
+
*/
|
|
74
|
+
exports.ERROR_BURST_THRESHOLD = 10; // 10 unique errors
|
|
75
|
+
/**
|
|
76
|
+
* Backoff period after burst detection in milliseconds
|
|
77
|
+
* No errors will be tracked during this cooldown
|
|
78
|
+
*/
|
|
79
|
+
exports.ERROR_BURST_BACKOFF_MS = 5000; // 5 seconds
|
|
80
|
+
// ============================================================================
|
|
63
81
|
// PERMANENT ERROR LOGGING
|
|
64
82
|
// ============================================================================
|
|
65
83
|
/**
|
|
@@ -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;AACU,QAAA,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;AACU,QAAA,wBAAwB,GAAG,GAAG,CAAC;AAE5C;;;GAGG;AACU,QAAA,2BAA2B,GAAG,IAAK,CAAC,CAAC,YAAY;AAE9D;;;GAGG;AACU,QAAA,kBAAkB,GAAG,EAAE,CAAC;AAErC;;;GAGG;AACU,QAAA,6BAA6B,GAAG,0BAAkB,GAAG,CAAC,CAAC;AAEpE,+EAA+E;AAC/E,iBAAiB;AACjB,+EAA+E;AAE/E;;;GAGG;AACU,QAAA,2BAA2B,GAAG,CAAC,CAAC,CAAC,iBAAiB;AAE/D,+EAA+E;AAC/E,0BAA0B;AAC1B,+EAA+E;AAE/E;;;;GAIG;AACU,QAAA,+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;AACU,QAAA,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;AACU,QAAA,wBAAwB,GAAG,GAAG,CAAC;AAE5C;;;GAGG;AACU,QAAA,2BAA2B,GAAG,IAAK,CAAC,CAAC,YAAY;AAE9D;;;GAGG;AACU,QAAA,kBAAkB,GAAG,EAAE,CAAC;AAErC;;;GAGG;AACU,QAAA,6BAA6B,GAAG,0BAAkB,GAAG,CAAC,CAAC;AAEpE,+EAA+E;AAC/E,iBAAiB;AACjB,+EAA+E;AAE/E;;;GAGG;AACU,QAAA,2BAA2B,GAAG,CAAC,CAAC,CAAC,iBAAiB;AAE/D,+EAA+E;AAC/E,kCAAkC;AAClC,+EAA+E;AAE/E;;;GAGG;AACU,QAAA,qBAAqB,GAAG,IAAI,CAAC,CAAC,WAAW;AAEtD;;;GAGG;AACU,QAAA,qBAAqB,GAAG,EAAE,CAAC,CAAC,mBAAmB;AAE5D;;;GAGG;AACU,QAAA,sBAAsB,GAAG,IAAI,CAAC,CAAC,YAAY;AAExD,+EAA+E;AAC/E,0BAA0B;AAC1B,+EAA+E;AAE/E;;;;GAIG;AACU,QAAA,+BAA+B,GAAG,KAAM,CAAC,CAAC,WAAW"}
|
|
@@ -3,15 +3,32 @@ 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;
|
|
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;
|
|
9
25
|
private findTrackingElement;
|
|
10
26
|
private getRelevantClickElement;
|
|
11
27
|
private clamp;
|
|
12
28
|
private calculateClickCoordinates;
|
|
13
29
|
private extractTrackingData;
|
|
14
30
|
private generateClickData;
|
|
31
|
+
private sanitizeText;
|
|
15
32
|
private getRelevantText;
|
|
16
33
|
private extractElementAttributes;
|
|
17
34
|
private createCustomEventData;
|
|
@@ -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"}
|
|
@@ -8,6 +8,7 @@ const utils_1 = require("../utils");
|
|
|
8
8
|
class ClickHandler extends state_manager_1.StateManager {
|
|
9
9
|
constructor(eventManager) {
|
|
10
10
|
super();
|
|
11
|
+
this.lastClickTimes = new Map();
|
|
11
12
|
this.eventManager = eventManager;
|
|
12
13
|
}
|
|
13
14
|
startTracking() {
|
|
@@ -26,6 +27,14 @@ class ClickHandler extends state_manager_1.StateManager {
|
|
|
26
27
|
(0, utils_1.log)('warn', 'Click target not found or not an element');
|
|
27
28
|
return;
|
|
28
29
|
}
|
|
30
|
+
if (this.shouldIgnoreElement(clickedElement)) {
|
|
31
|
+
return;
|
|
32
|
+
}
|
|
33
|
+
// Throttle clicks per element to prevent double-clicks and spam
|
|
34
|
+
const clickThrottleMs = this.get('config')?.clickThrottleMs ?? constants_1.DEFAULT_CLICK_THROTTLE_MS;
|
|
35
|
+
if (clickThrottleMs > 0 && !this.checkClickThrottle(clickedElement, clickThrottleMs)) {
|
|
36
|
+
return;
|
|
37
|
+
}
|
|
29
38
|
const trackingElement = this.findTrackingElement(clickedElement);
|
|
30
39
|
const relevantClickElement = this.getRelevantClickElement(clickedElement);
|
|
31
40
|
const coordinates = this.calculateClickCoordinates(mouseEvent, clickedElement);
|
|
@@ -55,13 +64,83 @@ class ClickHandler extends state_manager_1.StateManager {
|
|
|
55
64
|
window.removeEventListener('click', this.clickHandler, true);
|
|
56
65
|
this.clickHandler = undefined;
|
|
57
66
|
}
|
|
67
|
+
this.lastClickTimes.clear();
|
|
68
|
+
}
|
|
69
|
+
shouldIgnoreElement(element) {
|
|
70
|
+
if (element.hasAttribute(`${constants_1.HTML_DATA_ATTR_PREFIX}-ignore`)) {
|
|
71
|
+
return true;
|
|
72
|
+
}
|
|
73
|
+
const parent = element.closest(`[${constants_1.HTML_DATA_ATTR_PREFIX}-ignore]`);
|
|
74
|
+
return parent !== null;
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Checks per-element click throttling to prevent double-clicks and rapid spam
|
|
78
|
+
* Returns true if the click should be tracked, false if throttled
|
|
79
|
+
*/
|
|
80
|
+
checkClickThrottle(element, throttleMs) {
|
|
81
|
+
const signature = this.getElementSignature(element);
|
|
82
|
+
const now = Date.now();
|
|
83
|
+
const lastClickTime = this.lastClickTimes.get(signature);
|
|
84
|
+
if (lastClickTime !== undefined && now - lastClickTime < throttleMs) {
|
|
85
|
+
(0, utils_1.log)('debug', 'ClickHandler: Click suppressed by throttle', {
|
|
86
|
+
data: {
|
|
87
|
+
signature,
|
|
88
|
+
throttleRemaining: throttleMs - (now - lastClickTime),
|
|
89
|
+
},
|
|
90
|
+
});
|
|
91
|
+
return false;
|
|
92
|
+
}
|
|
93
|
+
this.lastClickTimes.set(signature, now);
|
|
94
|
+
return true;
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Creates a stable signature for an element to track throttling
|
|
98
|
+
* Priority: id > data-testid > data-tlog-name > DOM path
|
|
99
|
+
*/
|
|
100
|
+
getElementSignature(element) {
|
|
101
|
+
// Priority 1: Element ID (most stable)
|
|
102
|
+
if (element.id) {
|
|
103
|
+
return `#${element.id}`;
|
|
104
|
+
}
|
|
105
|
+
// Priority 2: data-testid (common in tests)
|
|
106
|
+
const testId = element.getAttribute('data-testid');
|
|
107
|
+
if (testId) {
|
|
108
|
+
return `[data-testid="${testId}"]`;
|
|
109
|
+
}
|
|
110
|
+
// Priority 3: data-tlog-name (our own tracking attribute)
|
|
111
|
+
const tlogName = element.getAttribute(`${constants_1.HTML_DATA_ATTR_PREFIX}-name`);
|
|
112
|
+
if (tlogName) {
|
|
113
|
+
return `[${constants_1.HTML_DATA_ATTR_PREFIX}-name="${tlogName}"]`;
|
|
114
|
+
}
|
|
115
|
+
// Priority 4: Generate DOM path as fallback
|
|
116
|
+
return this.getElementPath(element);
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Generates a DOM path for an element (e.g., "body>div>button")
|
|
120
|
+
*/
|
|
121
|
+
getElementPath(element) {
|
|
122
|
+
const path = [];
|
|
123
|
+
let current = element;
|
|
124
|
+
while (current && current !== document.body) {
|
|
125
|
+
let selector = current.tagName.toLowerCase();
|
|
126
|
+
// Add class if available (first class only for brevity)
|
|
127
|
+
if (current.className) {
|
|
128
|
+
const firstClass = current.className.split(' ')[0];
|
|
129
|
+
if (firstClass) {
|
|
130
|
+
selector += `.${firstClass}`;
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
path.unshift(selector);
|
|
134
|
+
current = current.parentElement;
|
|
135
|
+
}
|
|
136
|
+
return path.join('>') || 'unknown';
|
|
58
137
|
}
|
|
59
138
|
findTrackingElement(element) {
|
|
60
139
|
if (element.hasAttribute(`${constants_1.HTML_DATA_ATTR_PREFIX}-name`)) {
|
|
61
140
|
return element;
|
|
62
141
|
}
|
|
63
142
|
const closest = element.closest(`[${constants_1.HTML_DATA_ATTR_PREFIX}-name]`);
|
|
64
|
-
return closest
|
|
143
|
+
return closest;
|
|
65
144
|
}
|
|
66
145
|
getRelevantClickElement(element) {
|
|
67
146
|
for (const selector of constants_1.INTERACTIVE_SELECTORS) {
|
|
@@ -125,19 +204,31 @@ class ClickHandler extends state_manager_1.StateManager {
|
|
|
125
204
|
...(Object.keys(attributes).length > 0 && { dataAttributes: attributes }),
|
|
126
205
|
};
|
|
127
206
|
}
|
|
207
|
+
sanitizeText(text) {
|
|
208
|
+
let sanitized = text;
|
|
209
|
+
for (const pattern of constants_1.PII_PATTERNS) {
|
|
210
|
+
const regex = new RegExp(pattern.source, pattern.flags);
|
|
211
|
+
sanitized = sanitized.replace(regex, '[REDACTED]');
|
|
212
|
+
}
|
|
213
|
+
return sanitized;
|
|
214
|
+
}
|
|
128
215
|
getRelevantText(clickedElement, relevantElement) {
|
|
129
216
|
const clickedText = clickedElement.textContent?.trim() ?? '';
|
|
130
217
|
const relevantText = relevantElement.textContent?.trim() ?? '';
|
|
131
218
|
if (!clickedText && !relevantText) {
|
|
132
219
|
return '';
|
|
133
220
|
}
|
|
221
|
+
let finalText = '';
|
|
134
222
|
if (clickedText && clickedText.length <= constants_1.MAX_TEXT_LENGTH) {
|
|
135
|
-
|
|
223
|
+
finalText = clickedText;
|
|
224
|
+
}
|
|
225
|
+
else if (relevantText.length <= constants_1.MAX_TEXT_LENGTH) {
|
|
226
|
+
finalText = relevantText;
|
|
136
227
|
}
|
|
137
|
-
|
|
138
|
-
|
|
228
|
+
else {
|
|
229
|
+
finalText = relevantText.slice(0, constants_1.MAX_TEXT_LENGTH - 3) + '...';
|
|
139
230
|
}
|
|
140
|
-
return
|
|
231
|
+
return this.sanitizeText(finalText);
|
|
141
232
|
}
|
|
142
233
|
extractElementAttributes(element) {
|
|
143
234
|
const commonAttributes = [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"click.handler.js","sourceRoot":"","sources":["../../../src/handlers/click.handler.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"click.handler.js","sourceRoot":"","sources":["../../../src/handlers/click.handler.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,9 +7,16 @@ import { StateManager } from '../managers/state.manager';
|
|
|
7
7
|
export declare class ErrorHandler extends StateManager {
|
|
8
8
|
private readonly eventManager;
|
|
9
9
|
private readonly recentErrors;
|
|
10
|
+
private errorBurstCounter;
|
|
11
|
+
private burstWindowStart;
|
|
12
|
+
private burstBackoffUntil;
|
|
10
13
|
constructor(eventManager: EventManager);
|
|
11
14
|
startTracking(): void;
|
|
12
15
|
stopTracking(): void;
|
|
16
|
+
/**
|
|
17
|
+
* Checks sampling rate and burst detection (Phase 3)
|
|
18
|
+
* Returns false if in cooldown period after burst detection
|
|
19
|
+
*/
|
|
13
20
|
private shouldSample;
|
|
14
21
|
private readonly handleError;
|
|
15
22
|
private readonly handleRejection;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error.handler.d.ts","sourceRoot":"","sources":["../../../src/handlers/error.handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"error.handler.d.ts","sourceRoot":"","sources":["../../../src/handlers/error.handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAezD;;;GAGG;AACH,qBAAa,YAAa,SAAQ,YAAY;IAC5C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAe;IAC5C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA6B;IAC1D,OAAO,CAAC,iBAAiB,CAAK;IAC9B,OAAO,CAAC,gBAAgB,CAAK;IAC7B,OAAO,CAAC,iBAAiB,CAAK;gBAElB,YAAY,EAAE,YAAY;IAKtC,aAAa,IAAI,IAAI;IAKrB,YAAY,IAAI,IAAI;IASpB;;;OAGG;IACH,OAAO,CAAC,YAAY;IAmCpB,OAAO,CAAC,QAAQ,CAAC,WAAW,CAqB1B;IAEF,OAAO,CAAC,QAAQ,CAAC,eAAe,CAmB9B;IAEF,OAAO,CAAC,uBAAuB;IAoB/B,OAAO,CAAC,QAAQ;IAWhB,OAAO,CAAC,mBAAmB;IA0B3B,OAAO,CAAC,cAAc;CAsBvB"}
|