@tracelog/lib 0.11.2 → 0.11.4
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/dist/browser/tracelog.esm.js +308 -251
- 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/public-api.cjs +4427 -0
- package/dist/public-api.cjs.map +1 -0
- package/dist/public-api.d.mts +913 -0
- package/dist/public-api.d.ts +913 -0
- package/dist/public-api.js +4388 -0
- package/dist/public-api.js.map +1 -0
- package/package.json +17 -18
- package/dist/cjs/api.d.ts +0 -19
- package/dist/cjs/api.d.ts.map +0 -1
- package/dist/cjs/api.js +0 -183
- package/dist/cjs/api.js.map +0 -1
- package/dist/cjs/app.constants.d.ts +0 -80
- package/dist/cjs/app.constants.d.ts.map +0 -1
- package/dist/cjs/app.constants.js +0 -94
- package/dist/cjs/app.constants.js.map +0 -1
- package/dist/cjs/app.d.ts +0 -43
- package/dist/cjs/app.d.ts.map +0 -1
- package/dist/cjs/app.js +0 -165
- package/dist/cjs/app.js.map +0 -1
- package/dist/cjs/constants/config.constants.d.ts +0 -109
- package/dist/cjs/constants/config.constants.d.ts.map +0 -1
- package/dist/cjs/constants/config.constants.js +0 -216
- package/dist/cjs/constants/config.constants.js.map +0 -1
- package/dist/cjs/constants/error.constants.d.ts +0 -56
- package/dist/cjs/constants/error.constants.d.ts.map +0 -1
- package/dist/cjs/constants/error.constants.js +0 -89
- package/dist/cjs/constants/error.constants.js.map +0 -1
- package/dist/cjs/constants/index.d.ts +0 -5
- package/dist/cjs/constants/index.d.ts.map +0 -1
- package/dist/cjs/constants/index.js +0 -21
- package/dist/cjs/constants/index.js.map +0 -1
- package/dist/cjs/constants/performance.constants.d.ts +0 -29
- package/dist/cjs/constants/performance.constants.d.ts.map +0 -1
- package/dist/cjs/constants/performance.constants.js +0 -44
- package/dist/cjs/constants/performance.constants.js.map +0 -1
- package/dist/cjs/constants/storage.constants.d.ts +0 -11
- package/dist/cjs/constants/storage.constants.d.ts.map +0 -1
- package/dist/cjs/constants/storage.constants.js +0 -23
- package/dist/cjs/constants/storage.constants.js.map +0 -1
- package/dist/cjs/handlers/click.handler.d.ts +0 -36
- package/dist/cjs/handlers/click.handler.d.ts.map +0 -1
- package/dist/cjs/handlers/click.handler.js +0 -263
- package/dist/cjs/handlers/click.handler.js.map +0 -1
- package/dist/cjs/handlers/error.handler.d.ts +0 -28
- package/dist/cjs/handlers/error.handler.d.ts.map +0 -1
- package/dist/cjs/handlers/error.handler.js +0 -168
- package/dist/cjs/handlers/error.handler.js.map +0 -1
- package/dist/cjs/handlers/page-view.handler.d.ts +0 -17
- package/dist/cjs/handlers/page-view.handler.d.ts.map +0 -1
- package/dist/cjs/handlers/page-view.handler.js +0 -100
- package/dist/cjs/handlers/page-view.handler.js.map +0 -1
- package/dist/cjs/handlers/performance.handler.d.ts +0 -23
- package/dist/cjs/handlers/performance.handler.d.ts.map +0 -1
- package/dist/cjs/handlers/performance.handler.js +0 -274
- package/dist/cjs/handlers/performance.handler.js.map +0 -1
- package/dist/cjs/handlers/scroll.handler.d.ts +0 -40
- package/dist/cjs/handlers/scroll.handler.d.ts.map +0 -1
- package/dist/cjs/handlers/scroll.handler.js +0 -327
- package/dist/cjs/handlers/scroll.handler.js.map +0 -1
- package/dist/cjs/handlers/session.handler.d.ts +0 -16
- package/dist/cjs/handlers/session.handler.d.ts.map +0 -1
- package/dist/cjs/handlers/session.handler.js +0 -74
- package/dist/cjs/handlers/session.handler.js.map +0 -1
- package/dist/cjs/handlers/viewport.handler.d.ts +0 -44
- package/dist/cjs/handlers/viewport.handler.d.ts.map +0 -1
- package/dist/cjs/handlers/viewport.handler.js +0 -286
- package/dist/cjs/handlers/viewport.handler.js.map +0 -1
- package/dist/cjs/integrations/google-analytics.integration.d.ts +0 -18
- package/dist/cjs/integrations/google-analytics.integration.d.ts.map +0 -1
- package/dist/cjs/integrations/google-analytics.integration.js +0 -90
- package/dist/cjs/integrations/google-analytics.integration.js.map +0 -1
- package/dist/cjs/listeners/activity-listener-manager.d.ts +0 -9
- package/dist/cjs/listeners/activity-listener-manager.d.ts.map +0 -1
- package/dist/cjs/listeners/activity-listener-manager.js +0 -33
- package/dist/cjs/listeners/activity-listener-manager.js.map +0 -1
- package/dist/cjs/listeners/index.d.ts +0 -7
- package/dist/cjs/listeners/index.d.ts.map +0 -1
- package/dist/cjs/listeners/index.js +0 -15
- package/dist/cjs/listeners/index.js.map +0 -1
- package/dist/cjs/listeners/input-listener-managers.d.ts +0 -25
- package/dist/cjs/listeners/input-listener-managers.d.ts.map +0 -1
- package/dist/cjs/listeners/input-listener-managers.js +0 -50
- package/dist/cjs/listeners/input-listener-managers.js.map +0 -1
- package/dist/cjs/listeners/listeners.types.d.ts +0 -5
- package/dist/cjs/listeners/listeners.types.d.ts.map +0 -1
- package/dist/cjs/listeners/listeners.types.js +0 -3
- package/dist/cjs/listeners/listeners.types.js.map +0 -1
- package/dist/cjs/listeners/touch-listener-manager.d.ts +0 -9
- package/dist/cjs/listeners/touch-listener-manager.d.ts.map +0 -1
- package/dist/cjs/listeners/touch-listener-manager.js +0 -35
- package/dist/cjs/listeners/touch-listener-manager.js.map +0 -1
- package/dist/cjs/listeners/unload-listener-manager.d.ts +0 -9
- package/dist/cjs/listeners/unload-listener-manager.d.ts.map +0 -1
- package/dist/cjs/listeners/unload-listener-manager.js +0 -31
- package/dist/cjs/listeners/unload-listener-manager.js.map +0 -1
- package/dist/cjs/listeners/visibility-listener-manager.d.ts +0 -10
- package/dist/cjs/listeners/visibility-listener-manager.d.ts.map +0 -1
- package/dist/cjs/listeners/visibility-listener-manager.js +0 -48
- package/dist/cjs/listeners/visibility-listener-manager.js.map +0 -1
- package/dist/cjs/managers/event.manager.d.ts +0 -62
- package/dist/cjs/managers/event.manager.d.ts.map +0 -1
- package/dist/cjs/managers/event.manager.js +0 -508
- package/dist/cjs/managers/event.manager.js.map +0 -1
- package/dist/cjs/managers/sender.manager.d.ts +0 -32
- package/dist/cjs/managers/sender.manager.d.ts.map +0 -1
- package/dist/cjs/managers/sender.manager.js +0 -271
- package/dist/cjs/managers/sender.manager.js.map +0 -1
- package/dist/cjs/managers/session.manager.d.ts +0 -40
- package/dist/cjs/managers/session.manager.d.ts.map +0 -1
- package/dist/cjs/managers/session.manager.js +0 -282
- package/dist/cjs/managers/session.manager.js.map +0 -1
- package/dist/cjs/managers/state.manager.d.ts +0 -9
- package/dist/cjs/managers/state.manager.d.ts.map +0 -1
- package/dist/cjs/managers/state.manager.js +0 -27
- package/dist/cjs/managers/state.manager.js.map +0 -1
- package/dist/cjs/managers/storage.manager.d.ts +0 -60
- package/dist/cjs/managers/storage.manager.d.ts.map +0 -1
- package/dist/cjs/managers/storage.manager.js +0 -277
- package/dist/cjs/managers/storage.manager.js.map +0 -1
- package/dist/cjs/managers/user.manager.d.ts +0 -17
- package/dist/cjs/managers/user.manager.d.ts.map +0 -1
- package/dist/cjs/managers/user.manager.js +0 -31
- package/dist/cjs/managers/user.manager.js.map +0 -1
- package/dist/cjs/public-api.d.ts +0 -11
- package/dist/cjs/public-api.d.ts.map +0 -1
- package/dist/cjs/public-api.js +0 -32
- package/dist/cjs/public-api.js.map +0 -1
- package/dist/cjs/test-bridge.d.ts +0 -47
- package/dist/cjs/test-bridge.d.ts.map +0 -1
- package/dist/cjs/test-bridge.js +0 -165
- package/dist/cjs/test-bridge.js.map +0 -1
- package/dist/cjs/types/common.types.d.ts +0 -6
- package/dist/cjs/types/common.types.d.ts.map +0 -1
- package/dist/cjs/types/common.types.js +0 -3
- package/dist/cjs/types/common.types.js.map +0 -1
- package/dist/cjs/types/config.types.d.ts +0 -49
- package/dist/cjs/types/config.types.d.ts.map +0 -1
- package/dist/cjs/types/config.types.js +0 -9
- package/dist/cjs/types/config.types.js.map +0 -1
- package/dist/cjs/types/device.types.d.ts +0 -7
- package/dist/cjs/types/device.types.d.ts.map +0 -1
- package/dist/cjs/types/device.types.js +0 -11
- package/dist/cjs/types/device.types.js.map +0 -1
- package/dist/cjs/types/emitter.types.d.ts +0 -12
- package/dist/cjs/types/emitter.types.d.ts.map +0 -1
- package/dist/cjs/types/emitter.types.js +0 -9
- package/dist/cjs/types/emitter.types.js.map +0 -1
- package/dist/cjs/types/error.types.d.ts +0 -12
- package/dist/cjs/types/error.types.d.ts.map +0 -1
- package/dist/cjs/types/error.types.js +0 -23
- package/dist/cjs/types/error.types.js.map +0 -1
- package/dist/cjs/types/event.types.d.ts +0 -235
- package/dist/cjs/types/event.types.d.ts.map +0 -1
- package/dist/cjs/types/event.types.js +0 -48
- package/dist/cjs/types/event.types.js.map +0 -1
- package/dist/cjs/types/index.d.ts +0 -17
- package/dist/cjs/types/index.d.ts.map +0 -1
- package/dist/cjs/types/index.js +0 -33
- package/dist/cjs/types/index.js.map +0 -1
- package/dist/cjs/types/log.types.d.ts +0 -5
- package/dist/cjs/types/log.types.d.ts.map +0 -1
- package/dist/cjs/types/log.types.js +0 -3
- package/dist/cjs/types/log.types.js.map +0 -1
- package/dist/cjs/types/mode.types.d.ts +0 -7
- package/dist/cjs/types/mode.types.d.ts.map +0 -1
- package/dist/cjs/types/mode.types.js +0 -11
- package/dist/cjs/types/mode.types.js.map +0 -1
- package/dist/cjs/types/queue.types.d.ts +0 -19
- package/dist/cjs/types/queue.types.d.ts.map +0 -1
- package/dist/cjs/types/queue.types.js +0 -3
- package/dist/cjs/types/queue.types.js.map +0 -1
- package/dist/cjs/types/scroll.types.d.ts +0 -16
- package/dist/cjs/types/scroll.types.d.ts.map +0 -1
- package/dist/cjs/types/scroll.types.js +0 -12
- package/dist/cjs/types/scroll.types.js.map +0 -1
- package/dist/cjs/types/session.types.d.ts +0 -2
- package/dist/cjs/types/session.types.d.ts.map +0 -1
- package/dist/cjs/types/session.types.js +0 -3
- package/dist/cjs/types/session.types.js.map +0 -1
- package/dist/cjs/types/state.types.d.ts +0 -16
- package/dist/cjs/types/state.types.d.ts.map +0 -1
- package/dist/cjs/types/state.types.js +0 -3
- package/dist/cjs/types/state.types.js.map +0 -1
- package/dist/cjs/types/test-bridge.types.d.ts +0 -40
- package/dist/cjs/types/test-bridge.types.d.ts.map +0 -1
- package/dist/cjs/types/test-bridge.types.js +0 -3
- package/dist/cjs/types/test-bridge.types.js.map +0 -1
- package/dist/cjs/types/validation-error.types.d.ts +0 -44
- package/dist/cjs/types/validation-error.types.d.ts.map +0 -1
- package/dist/cjs/types/validation-error.types.js +0 -70
- package/dist/cjs/types/validation-error.types.js.map +0 -1
- package/dist/cjs/types/viewport.types.d.ts +0 -55
- package/dist/cjs/types/viewport.types.d.ts.map +0 -1
- package/dist/cjs/types/viewport.types.js +0 -3
- package/dist/cjs/types/viewport.types.js.map +0 -1
- package/dist/cjs/types/window.types.d.ts +0 -16
- package/dist/cjs/types/window.types.d.ts.map +0 -1
- package/dist/cjs/types/window.types.js +0 -3
- package/dist/cjs/types/window.types.js.map +0 -1
- package/dist/cjs/utils/browser/device-detector.utils.d.ts +0 -7
- package/dist/cjs/utils/browser/device-detector.utils.d.ts.map +0 -1
- package/dist/cjs/utils/browser/device-detector.utils.js +0 -50
- package/dist/cjs/utils/browser/device-detector.utils.js.map +0 -1
- package/dist/cjs/utils/browser/index.d.ts +0 -4
- package/dist/cjs/utils/browser/index.d.ts.map +0 -1
- package/dist/cjs/utils/browser/index.js +0 -20
- package/dist/cjs/utils/browser/index.js.map +0 -1
- package/dist/cjs/utils/browser/qa-mode.utils.d.ts +0 -14
- package/dist/cjs/utils/browser/qa-mode.utils.d.ts.map +0 -1
- package/dist/cjs/utils/browser/qa-mode.utils.js +0 -44
- package/dist/cjs/utils/browser/qa-mode.utils.js.map +0 -1
- package/dist/cjs/utils/browser/utm-params.utils.d.ts +0 -7
- package/dist/cjs/utils/browser/utm-params.utils.d.ts.map +0 -1
- package/dist/cjs/utils/browser/utm-params.utils.js +0 -23
- package/dist/cjs/utils/browser/utm-params.utils.js.map +0 -1
- package/dist/cjs/utils/data/index.d.ts +0 -2
- package/dist/cjs/utils/data/index.d.ts.map +0 -1
- package/dist/cjs/utils/data/index.js +0 -18
- package/dist/cjs/utils/data/index.js.map +0 -1
- package/dist/cjs/utils/data/uuid.utils.d.ts +0 -19
- package/dist/cjs/utils/data/uuid.utils.d.ts.map +0 -1
- package/dist/cjs/utils/data/uuid.utils.js +0 -57
- package/dist/cjs/utils/data/uuid.utils.js.map +0 -1
- package/dist/cjs/utils/emitter.utils.d.ts +0 -9
- package/dist/cjs/utils/emitter.utils.d.ts.map +0 -1
- package/dist/cjs/utils/emitter.utils.js +0 -36
- package/dist/cjs/utils/emitter.utils.js.map +0 -1
- package/dist/cjs/utils/index.d.ts +0 -8
- package/dist/cjs/utils/index.d.ts.map +0 -1
- package/dist/cjs/utils/index.js +0 -24
- package/dist/cjs/utils/index.js.map +0 -1
- package/dist/cjs/utils/logging.utils.d.ts +0 -22
- package/dist/cjs/utils/logging.utils.d.ts.map +0 -1
- package/dist/cjs/utils/logging.utils.js +0 -87
- package/dist/cjs/utils/logging.utils.js.map +0 -1
- package/dist/cjs/utils/network/index.d.ts +0 -2
- package/dist/cjs/utils/network/index.d.ts.map +0 -1
- package/dist/cjs/utils/network/index.js +0 -18
- package/dist/cjs/utils/network/index.js.map +0 -1
- package/dist/cjs/utils/network/url.utils.d.ts +0 -16
- package/dist/cjs/utils/network/url.utils.d.ts.map +0 -1
- package/dist/cjs/utils/network/url.utils.js +0 -92
- package/dist/cjs/utils/network/url.utils.js.map +0 -1
- package/dist/cjs/utils/security/index.d.ts +0 -2
- package/dist/cjs/utils/security/index.d.ts.map +0 -1
- package/dist/cjs/utils/security/index.js +0 -18
- package/dist/cjs/utils/security/index.js.map +0 -1
- package/dist/cjs/utils/security/sanitize.utils.d.ts +0 -14
- package/dist/cjs/utils/security/sanitize.utils.d.ts.map +0 -1
- package/dist/cjs/utils/security/sanitize.utils.js +0 -123
- package/dist/cjs/utils/security/sanitize.utils.js.map +0 -1
- package/dist/cjs/utils/validations/config-validations.utils.d.ts +0 -19
- package/dist/cjs/utils/validations/config-validations.utils.d.ts.map +0 -1
- package/dist/cjs/utils/validations/config-validations.utils.js +0 -236
- package/dist/cjs/utils/validations/config-validations.utils.js.map +0 -1
- package/dist/cjs/utils/validations/event-validations.utils.d.ts +0 -13
- package/dist/cjs/utils/validations/event-validations.utils.d.ts.map +0 -1
- package/dist/cjs/utils/validations/event-validations.utils.js +0 -37
- package/dist/cjs/utils/validations/event-validations.utils.js.map +0 -1
- package/dist/cjs/utils/validations/index.d.ts +0 -5
- package/dist/cjs/utils/validations/index.d.ts.map +0 -1
- package/dist/cjs/utils/validations/index.js +0 -21
- package/dist/cjs/utils/validations/index.js.map +0 -1
- package/dist/cjs/utils/validations/metadata-validations.utils.d.ts +0 -23
- package/dist/cjs/utils/validations/metadata-validations.utils.d.ts.map +0 -1
- package/dist/cjs/utils/validations/metadata-validations.utils.js +0 -153
- package/dist/cjs/utils/validations/metadata-validations.utils.js.map +0 -1
- package/dist/cjs/utils/validations/type-guards.utils.d.ts +0 -9
- package/dist/cjs/utils/validations/type-guards.utils.d.ts.map +0 -1
- package/dist/cjs/utils/validations/type-guards.utils.js +0 -90
- package/dist/cjs/utils/validations/type-guards.utils.js.map +0 -1
- package/dist/esm/api.d.ts +0 -19
- package/dist/esm/api.d.ts.map +0 -1
- package/dist/esm/api.js +0 -173
- package/dist/esm/api.js.map +0 -1
- package/dist/esm/app.constants.d.ts +0 -80
- package/dist/esm/app.constants.d.ts.map +0 -1
- package/dist/esm/app.constants.js +0 -82
- package/dist/esm/app.constants.js.map +0 -1
- package/dist/esm/app.d.ts +0 -43
- package/dist/esm/app.d.ts.map +0 -1
- package/dist/esm/app.js +0 -161
- package/dist/esm/app.js.map +0 -1
- package/dist/esm/constants/config.constants.d.ts +0 -109
- package/dist/esm/constants/config.constants.d.ts.map +0 -1
- package/dist/esm/constants/config.constants.js +0 -212
- package/dist/esm/constants/config.constants.js.map +0 -1
- package/dist/esm/constants/error.constants.d.ts +0 -56
- package/dist/esm/constants/error.constants.d.ts.map +0 -1
- package/dist/esm/constants/error.constants.js +0 -86
- package/dist/esm/constants/error.constants.js.map +0 -1
- package/dist/esm/constants/index.d.ts +0 -5
- package/dist/esm/constants/index.d.ts.map +0 -1
- package/dist/esm/constants/index.js +0 -5
- package/dist/esm/constants/index.js.map +0 -1
- package/dist/esm/constants/performance.constants.d.ts +0 -29
- package/dist/esm/constants/performance.constants.d.ts.map +0 -1
- package/dist/esm/constants/performance.constants.js +0 -41
- package/dist/esm/constants/performance.constants.js.map +0 -1
- package/dist/esm/constants/storage.constants.d.ts +0 -11
- package/dist/esm/constants/storage.constants.d.ts.map +0 -1
- package/dist/esm/constants/storage.constants.js +0 -13
- package/dist/esm/constants/storage.constants.js.map +0 -1
- package/dist/esm/handlers/click.handler.d.ts +0 -36
- package/dist/esm/handlers/click.handler.d.ts.map +0 -1
- package/dist/esm/handlers/click.handler.js +0 -259
- package/dist/esm/handlers/click.handler.js.map +0 -1
- package/dist/esm/handlers/error.handler.d.ts +0 -28
- package/dist/esm/handlers/error.handler.d.ts.map +0 -1
- package/dist/esm/handlers/error.handler.js +0 -164
- package/dist/esm/handlers/error.handler.js.map +0 -1
- package/dist/esm/handlers/page-view.handler.d.ts +0 -17
- package/dist/esm/handlers/page-view.handler.d.ts.map +0 -1
- package/dist/esm/handlers/page-view.handler.js +0 -96
- package/dist/esm/handlers/page-view.handler.js.map +0 -1
- package/dist/esm/handlers/performance.handler.d.ts +0 -23
- package/dist/esm/handlers/performance.handler.d.ts.map +0 -1
- package/dist/esm/handlers/performance.handler.js +0 -237
- package/dist/esm/handlers/performance.handler.js.map +0 -1
- package/dist/esm/handlers/scroll.handler.d.ts +0 -40
- package/dist/esm/handlers/scroll.handler.d.ts.map +0 -1
- package/dist/esm/handlers/scroll.handler.js +0 -323
- package/dist/esm/handlers/scroll.handler.js.map +0 -1
- package/dist/esm/handlers/session.handler.d.ts +0 -16
- package/dist/esm/handlers/session.handler.d.ts.map +0 -1
- package/dist/esm/handlers/session.handler.js +0 -70
- package/dist/esm/handlers/session.handler.js.map +0 -1
- package/dist/esm/handlers/viewport.handler.d.ts +0 -44
- package/dist/esm/handlers/viewport.handler.d.ts.map +0 -1
- package/dist/esm/handlers/viewport.handler.js +0 -282
- package/dist/esm/handlers/viewport.handler.js.map +0 -1
- package/dist/esm/integrations/google-analytics.integration.d.ts +0 -18
- package/dist/esm/integrations/google-analytics.integration.d.ts.map +0 -1
- package/dist/esm/integrations/google-analytics.integration.js +0 -86
- package/dist/esm/integrations/google-analytics.integration.js.map +0 -1
- package/dist/esm/listeners/activity-listener-manager.d.ts +0 -9
- package/dist/esm/listeners/activity-listener-manager.d.ts.map +0 -1
- package/dist/esm/listeners/activity-listener-manager.js +0 -29
- package/dist/esm/listeners/activity-listener-manager.js.map +0 -1
- package/dist/esm/listeners/index.d.ts +0 -7
- package/dist/esm/listeners/index.d.ts.map +0 -1
- package/dist/esm/listeners/index.js +0 -6
- package/dist/esm/listeners/index.js.map +0 -1
- package/dist/esm/listeners/input-listener-managers.d.ts +0 -25
- package/dist/esm/listeners/input-listener-managers.d.ts.map +0 -1
- package/dist/esm/listeners/input-listener-managers.js +0 -45
- package/dist/esm/listeners/input-listener-managers.js.map +0 -1
- package/dist/esm/listeners/listeners.types.d.ts +0 -5
- package/dist/esm/listeners/listeners.types.d.ts.map +0 -1
- package/dist/esm/listeners/listeners.types.js +0 -2
- package/dist/esm/listeners/listeners.types.js.map +0 -1
- package/dist/esm/listeners/touch-listener-manager.d.ts +0 -9
- package/dist/esm/listeners/touch-listener-manager.d.ts.map +0 -1
- package/dist/esm/listeners/touch-listener-manager.js +0 -31
- package/dist/esm/listeners/touch-listener-manager.js.map +0 -1
- package/dist/esm/listeners/unload-listener-manager.d.ts +0 -9
- package/dist/esm/listeners/unload-listener-manager.d.ts.map +0 -1
- package/dist/esm/listeners/unload-listener-manager.js +0 -27
- package/dist/esm/listeners/unload-listener-manager.js.map +0 -1
- package/dist/esm/listeners/visibility-listener-manager.d.ts +0 -10
- package/dist/esm/listeners/visibility-listener-manager.d.ts.map +0 -1
- package/dist/esm/listeners/visibility-listener-manager.js +0 -44
- package/dist/esm/listeners/visibility-listener-manager.js.map +0 -1
- package/dist/esm/managers/event.manager.d.ts +0 -62
- package/dist/esm/managers/event.manager.d.ts.map +0 -1
- package/dist/esm/managers/event.manager.js +0 -504
- package/dist/esm/managers/event.manager.js.map +0 -1
- package/dist/esm/managers/sender.manager.d.ts +0 -32
- package/dist/esm/managers/sender.manager.d.ts.map +0 -1
- package/dist/esm/managers/sender.manager.js +0 -267
- package/dist/esm/managers/sender.manager.js.map +0 -1
- package/dist/esm/managers/session.manager.d.ts +0 -40
- package/dist/esm/managers/session.manager.d.ts.map +0 -1
- package/dist/esm/managers/session.manager.js +0 -278
- package/dist/esm/managers/session.manager.js.map +0 -1
- package/dist/esm/managers/state.manager.d.ts +0 -9
- package/dist/esm/managers/state.manager.d.ts.map +0 -1
- package/dist/esm/managers/state.manager.js +0 -21
- package/dist/esm/managers/state.manager.js.map +0 -1
- package/dist/esm/managers/storage.manager.d.ts +0 -60
- package/dist/esm/managers/storage.manager.d.ts.map +0 -1
- package/dist/esm/managers/storage.manager.js +0 -273
- package/dist/esm/managers/storage.manager.js.map +0 -1
- package/dist/esm/managers/user.manager.d.ts +0 -17
- package/dist/esm/managers/user.manager.d.ts.map +0 -1
- package/dist/esm/managers/user.manager.js +0 -27
- package/dist/esm/managers/user.manager.js.map +0 -1
- package/dist/esm/public-api.d.ts +0 -11
- package/dist/esm/public-api.d.ts.map +0 -1
- package/dist/esm/public-api.js +0 -15
- package/dist/esm/public-api.js.map +0 -1
- package/dist/esm/test-bridge.d.ts +0 -47
- package/dist/esm/test-bridge.d.ts.map +0 -1
- package/dist/esm/test-bridge.js +0 -161
- package/dist/esm/test-bridge.js.map +0 -1
- package/dist/esm/types/common.types.d.ts +0 -6
- package/dist/esm/types/common.types.d.ts.map +0 -1
- package/dist/esm/types/common.types.js +0 -2
- package/dist/esm/types/common.types.js.map +0 -1
- package/dist/esm/types/config.types.d.ts +0 -49
- package/dist/esm/types/config.types.d.ts.map +0 -1
- package/dist/esm/types/config.types.js +0 -6
- package/dist/esm/types/config.types.js.map +0 -1
- package/dist/esm/types/device.types.d.ts +0 -7
- package/dist/esm/types/device.types.d.ts.map +0 -1
- package/dist/esm/types/device.types.js +0 -8
- package/dist/esm/types/device.types.js.map +0 -1
- package/dist/esm/types/emitter.types.d.ts +0 -12
- package/dist/esm/types/emitter.types.d.ts.map +0 -1
- package/dist/esm/types/emitter.types.js +0 -6
- package/dist/esm/types/emitter.types.js.map +0 -1
- package/dist/esm/types/error.types.d.ts +0 -12
- package/dist/esm/types/error.types.d.ts.map +0 -1
- package/dist/esm/types/error.types.js +0 -19
- package/dist/esm/types/error.types.js.map +0 -1
- package/dist/esm/types/event.types.d.ts +0 -235
- package/dist/esm/types/event.types.d.ts.map +0 -1
- package/dist/esm/types/event.types.js +0 -45
- package/dist/esm/types/event.types.js.map +0 -1
- package/dist/esm/types/index.d.ts +0 -17
- package/dist/esm/types/index.d.ts.map +0 -1
- package/dist/esm/types/index.js +0 -17
- package/dist/esm/types/index.js.map +0 -1
- package/dist/esm/types/log.types.d.ts +0 -5
- package/dist/esm/types/log.types.d.ts.map +0 -1
- package/dist/esm/types/log.types.js +0 -2
- package/dist/esm/types/log.types.js.map +0 -1
- package/dist/esm/types/mode.types.d.ts +0 -7
- package/dist/esm/types/mode.types.d.ts.map +0 -1
- package/dist/esm/types/mode.types.js +0 -8
- package/dist/esm/types/mode.types.js.map +0 -1
- package/dist/esm/types/queue.types.d.ts +0 -19
- package/dist/esm/types/queue.types.d.ts.map +0 -1
- package/dist/esm/types/queue.types.js +0 -2
- package/dist/esm/types/queue.types.js.map +0 -1
- package/dist/esm/types/scroll.types.d.ts +0 -16
- package/dist/esm/types/scroll.types.d.ts.map +0 -1
- package/dist/esm/types/scroll.types.js +0 -8
- package/dist/esm/types/scroll.types.js.map +0 -1
- package/dist/esm/types/session.types.d.ts +0 -2
- package/dist/esm/types/session.types.d.ts.map +0 -1
- package/dist/esm/types/session.types.js +0 -2
- package/dist/esm/types/session.types.js.map +0 -1
- package/dist/esm/types/state.types.d.ts +0 -16
- package/dist/esm/types/state.types.d.ts.map +0 -1
- package/dist/esm/types/state.types.js +0 -2
- package/dist/esm/types/state.types.js.map +0 -1
- package/dist/esm/types/test-bridge.types.d.ts +0 -40
- package/dist/esm/types/test-bridge.types.d.ts.map +0 -1
- package/dist/esm/types/test-bridge.types.js +0 -2
- package/dist/esm/types/test-bridge.types.js.map +0 -1
- package/dist/esm/types/validation-error.types.d.ts +0 -44
- package/dist/esm/types/validation-error.types.d.ts.map +0 -1
- package/dist/esm/types/validation-error.types.js +0 -61
- package/dist/esm/types/validation-error.types.js.map +0 -1
- package/dist/esm/types/viewport.types.d.ts +0 -55
- package/dist/esm/types/viewport.types.d.ts.map +0 -1
- package/dist/esm/types/viewport.types.js +0 -2
- package/dist/esm/types/viewport.types.js.map +0 -1
- package/dist/esm/types/window.types.d.ts +0 -16
- package/dist/esm/types/window.types.d.ts.map +0 -1
- package/dist/esm/types/window.types.js +0 -2
- package/dist/esm/types/window.types.js.map +0 -1
- package/dist/esm/utils/browser/device-detector.utils.d.ts +0 -7
- package/dist/esm/utils/browser/device-detector.utils.d.ts.map +0 -1
- package/dist/esm/utils/browser/device-detector.utils.js +0 -46
- package/dist/esm/utils/browser/device-detector.utils.js.map +0 -1
- package/dist/esm/utils/browser/index.d.ts +0 -4
- package/dist/esm/utils/browser/index.d.ts.map +0 -1
- package/dist/esm/utils/browser/index.js +0 -4
- package/dist/esm/utils/browser/index.js.map +0 -1
- package/dist/esm/utils/browser/qa-mode.utils.d.ts +0 -14
- package/dist/esm/utils/browser/qa-mode.utils.d.ts.map +0 -1
- package/dist/esm/utils/browser/qa-mode.utils.js +0 -40
- package/dist/esm/utils/browser/qa-mode.utils.js.map +0 -1
- package/dist/esm/utils/browser/utm-params.utils.d.ts +0 -7
- package/dist/esm/utils/browser/utm-params.utils.d.ts.map +0 -1
- package/dist/esm/utils/browser/utm-params.utils.js +0 -19
- package/dist/esm/utils/browser/utm-params.utils.js.map +0 -1
- package/dist/esm/utils/data/index.d.ts +0 -2
- package/dist/esm/utils/data/index.d.ts.map +0 -1
- package/dist/esm/utils/data/index.js +0 -2
- package/dist/esm/utils/data/index.js.map +0 -1
- package/dist/esm/utils/data/uuid.utils.d.ts +0 -19
- package/dist/esm/utils/data/uuid.utils.d.ts.map +0 -1
- package/dist/esm/utils/data/uuid.utils.js +0 -52
- package/dist/esm/utils/data/uuid.utils.js.map +0 -1
- package/dist/esm/utils/emitter.utils.d.ts +0 -9
- package/dist/esm/utils/emitter.utils.d.ts.map +0 -1
- package/dist/esm/utils/emitter.utils.js +0 -32
- package/dist/esm/utils/emitter.utils.js.map +0 -1
- package/dist/esm/utils/index.d.ts +0 -8
- package/dist/esm/utils/index.d.ts.map +0 -1
- package/dist/esm/utils/index.js +0 -8
- package/dist/esm/utils/index.js.map +0 -1
- package/dist/esm/utils/logging.utils.d.ts +0 -22
- package/dist/esm/utils/logging.utils.d.ts.map +0 -1
- package/dist/esm/utils/logging.utils.js +0 -82
- package/dist/esm/utils/logging.utils.js.map +0 -1
- package/dist/esm/utils/network/index.d.ts +0 -2
- package/dist/esm/utils/network/index.d.ts.map +0 -1
- package/dist/esm/utils/network/index.js +0 -2
- package/dist/esm/utils/network/index.js.map +0 -1
- package/dist/esm/utils/network/url.utils.d.ts +0 -16
- package/dist/esm/utils/network/url.utils.d.ts.map +0 -1
- package/dist/esm/utils/network/url.utils.js +0 -87
- package/dist/esm/utils/network/url.utils.js.map +0 -1
- package/dist/esm/utils/security/index.d.ts +0 -2
- package/dist/esm/utils/security/index.d.ts.map +0 -1
- package/dist/esm/utils/security/index.js +0 -2
- package/dist/esm/utils/security/index.js.map +0 -1
- package/dist/esm/utils/security/sanitize.utils.d.ts +0 -14
- package/dist/esm/utils/security/sanitize.utils.d.ts.map +0 -1
- package/dist/esm/utils/security/sanitize.utils.js +0 -118
- package/dist/esm/utils/security/sanitize.utils.js.map +0 -1
- package/dist/esm/utils/validations/config-validations.utils.d.ts +0 -19
- package/dist/esm/utils/validations/config-validations.utils.d.ts.map +0 -1
- package/dist/esm/utils/validations/config-validations.utils.js +0 -231
- package/dist/esm/utils/validations/config-validations.utils.js.map +0 -1
- package/dist/esm/utils/validations/event-validations.utils.d.ts +0 -13
- package/dist/esm/utils/validations/event-validations.utils.d.ts.map +0 -1
- package/dist/esm/utils/validations/event-validations.utils.js +0 -33
- package/dist/esm/utils/validations/event-validations.utils.js.map +0 -1
- package/dist/esm/utils/validations/index.d.ts +0 -5
- package/dist/esm/utils/validations/index.d.ts.map +0 -1
- package/dist/esm/utils/validations/index.js +0 -5
- package/dist/esm/utils/validations/index.js.map +0 -1
- package/dist/esm/utils/validations/metadata-validations.utils.d.ts +0 -23
- package/dist/esm/utils/validations/metadata-validations.utils.d.ts.map +0 -1
- package/dist/esm/utils/validations/metadata-validations.utils.js +0 -148
- package/dist/esm/utils/validations/metadata-validations.utils.js.map +0 -1
- package/dist/esm/utils/validations/type-guards.utils.d.ts +0 -9
- package/dist/esm/utils/validations/type-guards.utils.d.ts.map +0 -1
- package/dist/esm/utils/validations/type-guards.utils.js +0 -86
- package/dist/esm/utils/validations/type-guards.utils.js.map +0 -1
|
@@ -0,0 +1,913 @@
|
|
|
1
|
+
type MetadataPrimitive = string | number | boolean;
|
|
2
|
+
type MetadataNestedValue = MetadataPrimitive | string[] | Record<string, MetadataPrimitive>[];
|
|
3
|
+
type MetadataNestedObject = Record<string, MetadataNestedValue>;
|
|
4
|
+
type MetadataType = MetadataPrimitive | string[] | MetadataNestedObject | MetadataNestedObject[];
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Element configuration for viewport tracking with optional identifiers
|
|
8
|
+
*/
|
|
9
|
+
interface ViewportElement {
|
|
10
|
+
/**
|
|
11
|
+
* CSS selector for the element
|
|
12
|
+
* @example '.hero' | '.cta-button' | '#pricing'
|
|
13
|
+
*/
|
|
14
|
+
selector: string;
|
|
15
|
+
/**
|
|
16
|
+
* Optional unique identifier for analytics
|
|
17
|
+
* Used to distinguish between multiple elements with the same selector
|
|
18
|
+
* @example 'homepage-hero' | 'pricing-cta' | 'customer-testimonials'
|
|
19
|
+
*/
|
|
20
|
+
id?: string;
|
|
21
|
+
/**
|
|
22
|
+
* Optional human-readable name for dashboards and reports
|
|
23
|
+
* @example 'Homepage Hero Banner' | 'Pricing Page CTA' | 'Customer Testimonials Section'
|
|
24
|
+
*/
|
|
25
|
+
name?: string;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Configuration for viewport visibility tracking
|
|
29
|
+
*/
|
|
30
|
+
interface ViewportConfig {
|
|
31
|
+
/**
|
|
32
|
+
* Elements to track with optional identifiers
|
|
33
|
+
* Provides analytics support with business identifiers
|
|
34
|
+
* @example [{ selector: '.hero', id: 'homepage-hero', name: 'Homepage Hero Banner' }]
|
|
35
|
+
*/
|
|
36
|
+
elements: ViewportElement[];
|
|
37
|
+
/**
|
|
38
|
+
* Minimum percentage of element that must be visible (0-1)
|
|
39
|
+
* @default 0.5 (50%)
|
|
40
|
+
*/
|
|
41
|
+
threshold?: number;
|
|
42
|
+
/**
|
|
43
|
+
* Minimum time (ms) element must be visible to count as a view
|
|
44
|
+
* @default 1000 (1 second)
|
|
45
|
+
*/
|
|
46
|
+
minDwellTime?: number;
|
|
47
|
+
/**
|
|
48
|
+
* Cooldown period (ms) before same element can fire visibility event again
|
|
49
|
+
* Prevents repeated events from carousels, sticky headers, and scrolling patterns
|
|
50
|
+
* @default 60000 (60 seconds)
|
|
51
|
+
*/
|
|
52
|
+
cooldownPeriod?: number;
|
|
53
|
+
/**
|
|
54
|
+
* Maximum number of elements to track simultaneously (Phase 3)
|
|
55
|
+
* Prevents memory/server issues with broad selectors
|
|
56
|
+
* @default 100
|
|
57
|
+
*/
|
|
58
|
+
maxTrackedElements?: number;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
interface Config {
|
|
62
|
+
/** Session inactivity timeout in milliseconds. @default 900000 */
|
|
63
|
+
sessionTimeout?: number;
|
|
64
|
+
/** Metadata appended to every tracked event. */
|
|
65
|
+
globalMetadata?: Record<string, MetadataType>;
|
|
66
|
+
/** Query parameters to remove before tracking URLs. */
|
|
67
|
+
sensitiveQueryParams?: string[];
|
|
68
|
+
/** Error event sampling rate between 0 and 1. @default 1 */
|
|
69
|
+
errorSampling?: number;
|
|
70
|
+
/** Event sampling rate between 0 and 1. @default 1 */
|
|
71
|
+
samplingRate?: number;
|
|
72
|
+
/** CSS selector to manually override primary scroll container detection. */
|
|
73
|
+
primaryScrollSelector?: string;
|
|
74
|
+
/** Viewport visibility tracking configuration. */
|
|
75
|
+
viewport?: ViewportConfig;
|
|
76
|
+
/** Page view throttle duration in milliseconds to prevent rapid navigation spam. @default 1000 */
|
|
77
|
+
pageViewThrottleMs?: number;
|
|
78
|
+
/** Click throttle duration in milliseconds to prevent double-clicks and rapid spam. @default 300 */
|
|
79
|
+
clickThrottleMs?: number;
|
|
80
|
+
/** Maximum number of same custom event name allowed per minute to prevent infinite loops. @default 60 */
|
|
81
|
+
maxSameEventPerMinute?: number;
|
|
82
|
+
/** Optional configuration for third-party integrations. */
|
|
83
|
+
integrations?: {
|
|
84
|
+
/** TraceLog integration options. */
|
|
85
|
+
tracelog?: {
|
|
86
|
+
/** Required project ID TraceLog SaaS integration. */
|
|
87
|
+
projectId: string;
|
|
88
|
+
};
|
|
89
|
+
/** Custom integration options. */
|
|
90
|
+
custom?: {
|
|
91
|
+
/** Endpoint for collecting events. */
|
|
92
|
+
collectApiUrl: string;
|
|
93
|
+
/** Allow HTTP URLs (not recommended for production). @default false */
|
|
94
|
+
allowHttp?: boolean;
|
|
95
|
+
};
|
|
96
|
+
/** Google Analytics integration options. */
|
|
97
|
+
googleAnalytics?: {
|
|
98
|
+
/** Required measurement ID for Google Analytics. */
|
|
99
|
+
measurementId: string;
|
|
100
|
+
};
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
declare enum SpecialApiUrl {
|
|
104
|
+
Localhost = "localhost:8080",
|
|
105
|
+
Fail = "localhost:9999"
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
declare enum DeviceType {
|
|
109
|
+
Mobile = "mobile",
|
|
110
|
+
Tablet = "tablet",
|
|
111
|
+
Desktop = "desktop",
|
|
112
|
+
Unknown = "unknown"
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
type SessionEndReason = 'inactivity' | 'page_unload' | 'manual_stop' | 'orphaned_cleanup' | 'tab_closed';
|
|
116
|
+
|
|
117
|
+
/**
|
|
118
|
+
* Coordinate information from a click event
|
|
119
|
+
* Includes absolute and relative positioning
|
|
120
|
+
*/
|
|
121
|
+
type ClickCoordinates = Pick<ClickData, 'x' | 'y' | 'relativeX' | 'relativeY'>;
|
|
122
|
+
/**
|
|
123
|
+
* Web performance metric types tracked by the library
|
|
124
|
+
* - LCP: Largest Contentful Paint
|
|
125
|
+
* - CLS: Cumulative Layout Shift
|
|
126
|
+
* - INP: Interaction to Next Paint
|
|
127
|
+
* - FCP: First Contentful Paint
|
|
128
|
+
* - TTFB: Time to First Byte
|
|
129
|
+
* - LONG_TASK: Tasks exceeding 50ms
|
|
130
|
+
*/
|
|
131
|
+
type WebVitalType = 'LCP' | 'CLS' | 'INP' | 'FCP' | 'TTFB' | 'LONG_TASK';
|
|
132
|
+
/**
|
|
133
|
+
* Core event types tracked by TraceLog
|
|
134
|
+
*/
|
|
135
|
+
declare enum EventType {
|
|
136
|
+
/** Page navigation and view tracking */
|
|
137
|
+
PAGE_VIEW = "page_view",
|
|
138
|
+
/** User click interactions */
|
|
139
|
+
CLICK = "click",
|
|
140
|
+
/** Scroll depth and behavior */
|
|
141
|
+
SCROLL = "scroll",
|
|
142
|
+
/** Session initialization */
|
|
143
|
+
SESSION_START = "session_start",
|
|
144
|
+
/** Session termination */
|
|
145
|
+
SESSION_END = "session_end",
|
|
146
|
+
/** Custom business events */
|
|
147
|
+
CUSTOM = "custom",
|
|
148
|
+
/** Performance metrics */
|
|
149
|
+
WEB_VITALS = "web_vitals",
|
|
150
|
+
/** JavaScript errors and rejections */
|
|
151
|
+
ERROR = "error",
|
|
152
|
+
/** Element visibility tracking */
|
|
153
|
+
VIEWPORT_VISIBLE = "viewport_visible"
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* Scroll direction indicators
|
|
157
|
+
*/
|
|
158
|
+
declare enum ScrollDirection {
|
|
159
|
+
/** Scrolling upward */
|
|
160
|
+
UP = "up",
|
|
161
|
+
/** Scrolling downward */
|
|
162
|
+
DOWN = "down"
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* JavaScript error classification
|
|
166
|
+
*/
|
|
167
|
+
declare enum ErrorType {
|
|
168
|
+
/** Runtime JavaScript errors */
|
|
169
|
+
JS_ERROR = "js_error",
|
|
170
|
+
/** Unhandled promise rejections */
|
|
171
|
+
PROMISE_REJECTION = "promise_rejection"
|
|
172
|
+
}
|
|
173
|
+
/**
|
|
174
|
+
* Scroll event data captured during user scrolling
|
|
175
|
+
*/
|
|
176
|
+
interface ScrollData {
|
|
177
|
+
/** Current scroll depth as percentage (0-100) */
|
|
178
|
+
depth: number;
|
|
179
|
+
/** Direction of scroll movement */
|
|
180
|
+
direction: ScrollDirection;
|
|
181
|
+
/** CSS selector of the scrolled container */
|
|
182
|
+
container_selector: string;
|
|
183
|
+
/** Whether this is the primary viewport scroll */
|
|
184
|
+
is_primary: boolean;
|
|
185
|
+
/** Scroll velocity in pixels per second */
|
|
186
|
+
velocity: number;
|
|
187
|
+
/** Maximum scroll depth reached during session (0-100) */
|
|
188
|
+
max_depth_reached: number;
|
|
189
|
+
}
|
|
190
|
+
/**
|
|
191
|
+
* Click event data capturing user interaction details
|
|
192
|
+
*/
|
|
193
|
+
interface ClickData {
|
|
194
|
+
/** Absolute X coordinate in viewport (pixels) */
|
|
195
|
+
x: number;
|
|
196
|
+
/** Absolute Y coordinate in viewport (pixels) */
|
|
197
|
+
y: number;
|
|
198
|
+
/** Relative X position within element (0-1) */
|
|
199
|
+
relativeX: number;
|
|
200
|
+
/** Relative Y position within element (0-1) */
|
|
201
|
+
relativeY: number;
|
|
202
|
+
/** Element ID attribute */
|
|
203
|
+
id?: string;
|
|
204
|
+
/** Element class attribute */
|
|
205
|
+
class?: string;
|
|
206
|
+
/** HTML tag name */
|
|
207
|
+
tag?: string;
|
|
208
|
+
/** Element text content (truncated) */
|
|
209
|
+
text?: string;
|
|
210
|
+
/** Link href for anchor elements */
|
|
211
|
+
href?: string;
|
|
212
|
+
/** Element title attribute */
|
|
213
|
+
title?: string;
|
|
214
|
+
/** Image alt text for img elements */
|
|
215
|
+
alt?: string;
|
|
216
|
+
/** ARIA role attribute */
|
|
217
|
+
role?: string;
|
|
218
|
+
/** ARIA label attribute */
|
|
219
|
+
ariaLabel?: string;
|
|
220
|
+
/** Custom data attributes (data-*) */
|
|
221
|
+
dataAttributes?: Record<string, string>;
|
|
222
|
+
}
|
|
223
|
+
/**
|
|
224
|
+
* Element data for specialized click tracking
|
|
225
|
+
* Used for form inputs and interactive elements
|
|
226
|
+
*/
|
|
227
|
+
interface ClickTrackingElementData {
|
|
228
|
+
/** DOM element being tracked */
|
|
229
|
+
element: HTMLElement;
|
|
230
|
+
/** Descriptive name for the element */
|
|
231
|
+
name: string;
|
|
232
|
+
/** Element value (for inputs) */
|
|
233
|
+
value?: string;
|
|
234
|
+
}
|
|
235
|
+
/**
|
|
236
|
+
* Custom event data for business-specific tracking
|
|
237
|
+
*/
|
|
238
|
+
interface CustomEventData {
|
|
239
|
+
/** Event name identifier */
|
|
240
|
+
name: string;
|
|
241
|
+
/** Additional event metadata */
|
|
242
|
+
metadata?: Record<string, MetadataType> | Record<string, MetadataType>[];
|
|
243
|
+
}
|
|
244
|
+
/**
|
|
245
|
+
* Web performance metrics data
|
|
246
|
+
*/
|
|
247
|
+
interface WebVitalsData {
|
|
248
|
+
/** Type of performance metric */
|
|
249
|
+
type: WebVitalType;
|
|
250
|
+
/** Metric value (varies by type) */
|
|
251
|
+
value: number;
|
|
252
|
+
}
|
|
253
|
+
/**
|
|
254
|
+
* JavaScript error details
|
|
255
|
+
*/
|
|
256
|
+
interface ErrorData {
|
|
257
|
+
/** Error classification */
|
|
258
|
+
type: ErrorType;
|
|
259
|
+
/** Error message text */
|
|
260
|
+
message: string;
|
|
261
|
+
/** Source file where error occurred */
|
|
262
|
+
filename?: string;
|
|
263
|
+
/** Line number in source file */
|
|
264
|
+
line?: number;
|
|
265
|
+
/** Column number in source file */
|
|
266
|
+
column?: number;
|
|
267
|
+
}
|
|
268
|
+
/**
|
|
269
|
+
* UTM campaign tracking parameters
|
|
270
|
+
*/
|
|
271
|
+
interface UTM {
|
|
272
|
+
/** Campaign source (e.g., google, newsletter) */
|
|
273
|
+
source?: string;
|
|
274
|
+
/** Campaign medium (e.g., cpc, email) */
|
|
275
|
+
medium?: string;
|
|
276
|
+
/** Campaign name identifier */
|
|
277
|
+
campaign?: string;
|
|
278
|
+
/** Campaign search term */
|
|
279
|
+
term?: string;
|
|
280
|
+
/** Campaign content variation */
|
|
281
|
+
content?: string;
|
|
282
|
+
}
|
|
283
|
+
/**
|
|
284
|
+
* Page view navigation data
|
|
285
|
+
*/
|
|
286
|
+
interface PageViewData {
|
|
287
|
+
/** Previous page URL */
|
|
288
|
+
referrer?: string;
|
|
289
|
+
/** Page title from document */
|
|
290
|
+
title?: string;
|
|
291
|
+
/** URL pathname */
|
|
292
|
+
pathname?: string;
|
|
293
|
+
/** URL query string */
|
|
294
|
+
search?: string;
|
|
295
|
+
/** URL hash fragment */
|
|
296
|
+
hash?: string;
|
|
297
|
+
}
|
|
298
|
+
/**
|
|
299
|
+
* Data captured when element becomes visible
|
|
300
|
+
*/
|
|
301
|
+
interface ViewportEventData {
|
|
302
|
+
/** CSS selector that matched the element */
|
|
303
|
+
selector: string;
|
|
304
|
+
/** Optional unique identifier for analytics (if configured) */
|
|
305
|
+
id?: string;
|
|
306
|
+
/** Optional human-readable name (if configured) */
|
|
307
|
+
name?: string;
|
|
308
|
+
/** Actual time (ms) element was visible before event fired */
|
|
309
|
+
dwellTime: number;
|
|
310
|
+
/** Actual visibility ratio when event fired (0-1) */
|
|
311
|
+
visibilityRatio: number;
|
|
312
|
+
}
|
|
313
|
+
/**
|
|
314
|
+
* Complete event data structure
|
|
315
|
+
* All events share base properties with type-specific data
|
|
316
|
+
*/
|
|
317
|
+
interface EventData {
|
|
318
|
+
/** Unique event identifier */
|
|
319
|
+
id: string;
|
|
320
|
+
/** Event type classification */
|
|
321
|
+
type: EventType;
|
|
322
|
+
/** Current page URL where event occurred */
|
|
323
|
+
page_url: string;
|
|
324
|
+
/** Unix timestamp (milliseconds) */
|
|
325
|
+
timestamp: number;
|
|
326
|
+
/** HTTP referrer header */
|
|
327
|
+
referrer?: string;
|
|
328
|
+
/** Previous page URL for navigation events */
|
|
329
|
+
from_page_url?: string;
|
|
330
|
+
/** Scroll event details (when type is SCROLL) */
|
|
331
|
+
scroll_data?: ScrollData;
|
|
332
|
+
/** Click event details (when type is CLICK) */
|
|
333
|
+
click_data?: ClickData;
|
|
334
|
+
/** Custom event details (when type is CUSTOM) */
|
|
335
|
+
custom_event?: CustomEventData;
|
|
336
|
+
/** Performance metrics (when type is WEB_VITALS) */
|
|
337
|
+
web_vitals?: WebVitalsData;
|
|
338
|
+
/** Page view details (when type is PAGE_VIEW) */
|
|
339
|
+
page_view?: PageViewData;
|
|
340
|
+
/** Session termination reason (when type is SESSION_END) */
|
|
341
|
+
session_end_reason?: SessionEndReason;
|
|
342
|
+
/** Error details (when type is ERROR) */
|
|
343
|
+
error_data?: ErrorData;
|
|
344
|
+
/** Viewport visibility details (when type is VIEWPORT_VISIBLE) */
|
|
345
|
+
viewport_data?: ViewportEventData;
|
|
346
|
+
/** Campaign tracking parameters */
|
|
347
|
+
utm?: UTM;
|
|
348
|
+
}
|
|
349
|
+
|
|
350
|
+
interface EventsQueue {
|
|
351
|
+
user_id: string;
|
|
352
|
+
session_id: string;
|
|
353
|
+
device: DeviceType;
|
|
354
|
+
events: EventData[];
|
|
355
|
+
global_metadata?: Record<string, MetadataType>;
|
|
356
|
+
}
|
|
357
|
+
/**
|
|
358
|
+
* Extended queue structure for localStorage persistence with expiration tracking.
|
|
359
|
+
*/
|
|
360
|
+
interface PersistedEventsQueue extends EventsQueue {
|
|
361
|
+
timestamp: number;
|
|
362
|
+
}
|
|
363
|
+
|
|
364
|
+
type EmitterCallback<T = any> = (data: T) => void;
|
|
365
|
+
declare enum EmitterEvent {
|
|
366
|
+
EVENT = "event",
|
|
367
|
+
QUEUE = "queue"
|
|
368
|
+
}
|
|
369
|
+
interface EmitterMap {
|
|
370
|
+
[EmitterEvent.EVENT]: EventData;
|
|
371
|
+
[EmitterEvent.QUEUE]: EventsQueue;
|
|
372
|
+
}
|
|
373
|
+
|
|
374
|
+
/**
|
|
375
|
+
* Custom error types for TraceLog
|
|
376
|
+
*/
|
|
377
|
+
/**
|
|
378
|
+
* Represents a permanent HTTP error (4xx) that should not be retried
|
|
379
|
+
* Examples: 400 Bad Request, 403 Forbidden, 404 Not Found
|
|
380
|
+
*/
|
|
381
|
+
declare class PermanentError extends Error {
|
|
382
|
+
readonly statusCode?: number | undefined;
|
|
383
|
+
constructor(message: string, statusCode?: number | undefined);
|
|
384
|
+
}
|
|
385
|
+
|
|
386
|
+
/**
|
|
387
|
+
* Log levels for the dual logging system
|
|
388
|
+
*/
|
|
389
|
+
type LogLevel = 'CLIENT_ERROR' | 'CLIENT_WARN' | 'INFO' | 'ERROR' | 'WARN' | 'DEBUG' | 'VERBOSE';
|
|
390
|
+
|
|
391
|
+
/**
|
|
392
|
+
* App modes for the TraceLog Library
|
|
393
|
+
*/
|
|
394
|
+
declare enum Mode {
|
|
395
|
+
QA = "qa"
|
|
396
|
+
}
|
|
397
|
+
|
|
398
|
+
type PrimaryScrollEvent = EventData & {
|
|
399
|
+
type: EventType.SCROLL;
|
|
400
|
+
scroll_data: ScrollData & {
|
|
401
|
+
is_primary: true;
|
|
402
|
+
};
|
|
403
|
+
};
|
|
404
|
+
type SecondaryScrollEvent = EventData & {
|
|
405
|
+
type: EventType.SCROLL;
|
|
406
|
+
scroll_data: ScrollData & {
|
|
407
|
+
is_primary: false;
|
|
408
|
+
};
|
|
409
|
+
};
|
|
410
|
+
declare function isPrimaryScrollEvent(event: EventData): event is PrimaryScrollEvent;
|
|
411
|
+
declare function isSecondaryScrollEvent(event: EventData): event is SecondaryScrollEvent;
|
|
412
|
+
|
|
413
|
+
interface State {
|
|
414
|
+
mode?: Mode;
|
|
415
|
+
collectApiUrl: string;
|
|
416
|
+
config: Config;
|
|
417
|
+
sessionId: string | null;
|
|
418
|
+
userId: string;
|
|
419
|
+
device: DeviceType;
|
|
420
|
+
pageUrl: string;
|
|
421
|
+
hasStartSession: boolean;
|
|
422
|
+
suppressNextScroll: boolean;
|
|
423
|
+
scrollEventCount?: number;
|
|
424
|
+
}
|
|
425
|
+
|
|
426
|
+
declare class Emitter {
|
|
427
|
+
private readonly listeners;
|
|
428
|
+
on<K extends keyof EmitterMap>(event: K, callback: EmitterCallback<EmitterMap[K]>): void;
|
|
429
|
+
off<K extends keyof EmitterMap>(event: K, callback: EmitterCallback<EmitterMap[K]>): void;
|
|
430
|
+
emit<K extends keyof EmitterMap>(event: K, data: EmitterMap[K]): void;
|
|
431
|
+
removeAllListeners(): void;
|
|
432
|
+
}
|
|
433
|
+
|
|
434
|
+
declare abstract class StateManager {
|
|
435
|
+
protected get<T extends keyof State>(key: T): State[T];
|
|
436
|
+
protected set<T extends keyof State>(key: T, value: State[T]): void;
|
|
437
|
+
protected getState(): Readonly<State>;
|
|
438
|
+
}
|
|
439
|
+
|
|
440
|
+
/**
|
|
441
|
+
* Manages localStorage and sessionStorage with automatic fallback to in-memory storage.
|
|
442
|
+
* Provides a consistent interface for storing session data, configuration,
|
|
443
|
+
* and analytics metadata across browser environments.
|
|
444
|
+
*/
|
|
445
|
+
declare class StorageManager {
|
|
446
|
+
private readonly storage;
|
|
447
|
+
private readonly sessionStorageRef;
|
|
448
|
+
private readonly fallbackStorage;
|
|
449
|
+
private readonly fallbackSessionStorage;
|
|
450
|
+
private hasQuotaExceededError;
|
|
451
|
+
constructor();
|
|
452
|
+
/**
|
|
453
|
+
* Retrieves an item from storage
|
|
454
|
+
*/
|
|
455
|
+
getItem(key: string): string | null;
|
|
456
|
+
/**
|
|
457
|
+
* Stores an item in storage
|
|
458
|
+
*/
|
|
459
|
+
setItem(key: string, value: string): void;
|
|
460
|
+
/**
|
|
461
|
+
* Removes an item from storage
|
|
462
|
+
*/
|
|
463
|
+
removeItem(key: string): void;
|
|
464
|
+
/**
|
|
465
|
+
* Clears all TracLog-related items from storage
|
|
466
|
+
*/
|
|
467
|
+
clear(): void;
|
|
468
|
+
/**
|
|
469
|
+
* Checks if storage is available
|
|
470
|
+
*/
|
|
471
|
+
isAvailable(): boolean;
|
|
472
|
+
/**
|
|
473
|
+
* Checks if a QuotaExceededError has occurred
|
|
474
|
+
* This indicates localStorage is full and data may not persist
|
|
475
|
+
*/
|
|
476
|
+
hasQuotaError(): boolean;
|
|
477
|
+
/**
|
|
478
|
+
* Attempts to cleanup old TraceLog data from storage to free up space
|
|
479
|
+
* Returns true if any data was removed, false otherwise
|
|
480
|
+
*/
|
|
481
|
+
private cleanupOldData;
|
|
482
|
+
/**
|
|
483
|
+
* Initialize storage (localStorage or sessionStorage) with feature detection
|
|
484
|
+
*/
|
|
485
|
+
private initializeStorage;
|
|
486
|
+
/**
|
|
487
|
+
* Retrieves an item from sessionStorage
|
|
488
|
+
*/
|
|
489
|
+
getSessionItem(key: string): string | null;
|
|
490
|
+
/**
|
|
491
|
+
* Stores an item in sessionStorage
|
|
492
|
+
*/
|
|
493
|
+
setSessionItem(key: string, value: string): void;
|
|
494
|
+
/**
|
|
495
|
+
* Removes an item from sessionStorage
|
|
496
|
+
*/
|
|
497
|
+
removeSessionItem(key: string): void;
|
|
498
|
+
}
|
|
499
|
+
|
|
500
|
+
declare global {
|
|
501
|
+
interface Window {
|
|
502
|
+
gtag?: (...args: unknown[]) => void;
|
|
503
|
+
dataLayer?: unknown[];
|
|
504
|
+
}
|
|
505
|
+
}
|
|
506
|
+
declare class GoogleAnalyticsIntegration extends StateManager {
|
|
507
|
+
private isInitialized;
|
|
508
|
+
initialize(): Promise<void>;
|
|
509
|
+
trackEvent(eventName: string, metadata: Record<string, MetadataType> | Record<string, MetadataType>[]): void;
|
|
510
|
+
cleanup(): void;
|
|
511
|
+
private isScriptAlreadyLoaded;
|
|
512
|
+
private loadScript;
|
|
513
|
+
private configureGtag;
|
|
514
|
+
}
|
|
515
|
+
|
|
516
|
+
declare class EventManager extends StateManager {
|
|
517
|
+
private readonly googleAnalytics;
|
|
518
|
+
private readonly dataSender;
|
|
519
|
+
private readonly emitter;
|
|
520
|
+
private eventsQueue;
|
|
521
|
+
private pendingEventsBuffer;
|
|
522
|
+
private readonly recentEventFingerprints;
|
|
523
|
+
private sendIntervalId;
|
|
524
|
+
private rateLimitCounter;
|
|
525
|
+
private rateLimitWindowStart;
|
|
526
|
+
private readonly perEventRateLimits;
|
|
527
|
+
private sessionEventCounts;
|
|
528
|
+
private lastSessionId;
|
|
529
|
+
constructor(storeManager: StorageManager, googleAnalytics?: GoogleAnalyticsIntegration | null, emitter?: Emitter | null);
|
|
530
|
+
recoverPersistedEvents(): Promise<void>;
|
|
531
|
+
track({ type, page_url, from_page_url, scroll_data, click_data, custom_event, web_vitals, error_data, session_end_reason, viewport_data, }: Partial<EventData>): void;
|
|
532
|
+
stop(): void;
|
|
533
|
+
flushImmediately(): Promise<boolean>;
|
|
534
|
+
flushImmediatelySync(): boolean;
|
|
535
|
+
getQueueLength(): number;
|
|
536
|
+
flushPendingEvents(): void;
|
|
537
|
+
private clearSendInterval;
|
|
538
|
+
private flushEvents;
|
|
539
|
+
private sendEventsQueue;
|
|
540
|
+
private buildEventsPayload;
|
|
541
|
+
private buildEventPayload;
|
|
542
|
+
/**
|
|
543
|
+
* Checks if event is a duplicate using time-based cache
|
|
544
|
+
* Tracks recent event fingerprints with timestamp-based cleanup
|
|
545
|
+
*/
|
|
546
|
+
private isDuplicateEvent;
|
|
547
|
+
/**
|
|
548
|
+
* Prunes old fingerprints from cache based on timestamp
|
|
549
|
+
* Removes entries older than 10x the duplicate threshold (5 seconds)
|
|
550
|
+
*/
|
|
551
|
+
private pruneOldFingerprints;
|
|
552
|
+
private createEventFingerprint;
|
|
553
|
+
private createEventSignature;
|
|
554
|
+
private addToQueue;
|
|
555
|
+
private startSendInterval;
|
|
556
|
+
private handleGoogleAnalyticsIntegration;
|
|
557
|
+
private shouldSample;
|
|
558
|
+
private checkRateLimit;
|
|
559
|
+
/**
|
|
560
|
+
* Checks per-event-name rate limiting to prevent infinite loops in user code
|
|
561
|
+
* Tracks timestamps per event name and limits to maxSameEventPerMinute per minute
|
|
562
|
+
*/
|
|
563
|
+
private checkPerEventRateLimit;
|
|
564
|
+
/**
|
|
565
|
+
* Gets the per-session limit for a specific event type (Phase 3)
|
|
566
|
+
*/
|
|
567
|
+
private getTypeLimitForEvent;
|
|
568
|
+
private removeProcessedEvents;
|
|
569
|
+
private emitEvent;
|
|
570
|
+
private emitEventsQueue;
|
|
571
|
+
}
|
|
572
|
+
|
|
573
|
+
declare class ClickHandler extends StateManager {
|
|
574
|
+
private readonly eventManager;
|
|
575
|
+
private readonly lastClickTimes;
|
|
576
|
+
private clickHandler?;
|
|
577
|
+
private lastPruneTime;
|
|
578
|
+
constructor(eventManager: EventManager);
|
|
579
|
+
startTracking(): void;
|
|
580
|
+
stopTracking(): void;
|
|
581
|
+
private shouldIgnoreElement;
|
|
582
|
+
/**
|
|
583
|
+
* Checks per-element click throttling to prevent double-clicks and rapid spam
|
|
584
|
+
* Returns true if the click should be tracked, false if throttled
|
|
585
|
+
*/
|
|
586
|
+
private checkClickThrottle;
|
|
587
|
+
/**
|
|
588
|
+
* Prunes stale entries from the throttle cache to prevent memory leaks
|
|
589
|
+
* Uses TTL-based eviction (5 minutes) and enforces max size limit
|
|
590
|
+
* Called during checkClickThrottle with built-in rate limiting (every 30 seconds)
|
|
591
|
+
*/
|
|
592
|
+
private pruneThrottleCache;
|
|
593
|
+
/**
|
|
594
|
+
* Creates a stable signature for an element to track throttling
|
|
595
|
+
* Priority: id > data-testid > data-tlog-name > DOM path
|
|
596
|
+
*/
|
|
597
|
+
private getElementSignature;
|
|
598
|
+
/**
|
|
599
|
+
* Generates a DOM path for an element (e.g., "body>div>button")
|
|
600
|
+
*/
|
|
601
|
+
private getElementPath;
|
|
602
|
+
private findTrackingElement;
|
|
603
|
+
private getRelevantClickElement;
|
|
604
|
+
private clamp;
|
|
605
|
+
private calculateClickCoordinates;
|
|
606
|
+
private extractTrackingData;
|
|
607
|
+
private generateClickData;
|
|
608
|
+
private sanitizeText;
|
|
609
|
+
private getRelevantText;
|
|
610
|
+
private extractElementAttributes;
|
|
611
|
+
private createCustomEventData;
|
|
612
|
+
}
|
|
613
|
+
|
|
614
|
+
/**
|
|
615
|
+
* Simplified error handler for tracking JavaScript errors and unhandled promise rejections
|
|
616
|
+
* Includes PII sanitization and sampling support
|
|
617
|
+
*/
|
|
618
|
+
declare class ErrorHandler extends StateManager {
|
|
619
|
+
private readonly eventManager;
|
|
620
|
+
private readonly recentErrors;
|
|
621
|
+
private errorBurstCounter;
|
|
622
|
+
private burstWindowStart;
|
|
623
|
+
private burstBackoffUntil;
|
|
624
|
+
constructor(eventManager: EventManager);
|
|
625
|
+
startTracking(): void;
|
|
626
|
+
stopTracking(): void;
|
|
627
|
+
/**
|
|
628
|
+
* Checks sampling rate and burst detection (Phase 3)
|
|
629
|
+
* Returns false if in cooldown period after burst detection
|
|
630
|
+
*/
|
|
631
|
+
private shouldSample;
|
|
632
|
+
private readonly handleError;
|
|
633
|
+
private readonly handleRejection;
|
|
634
|
+
private extractRejectionMessage;
|
|
635
|
+
private sanitize;
|
|
636
|
+
private shouldSuppressError;
|
|
637
|
+
private pruneOldErrors;
|
|
638
|
+
}
|
|
639
|
+
|
|
640
|
+
declare class PageViewHandler extends StateManager {
|
|
641
|
+
private readonly eventManager;
|
|
642
|
+
private readonly onTrack;
|
|
643
|
+
private originalPushState?;
|
|
644
|
+
private originalReplaceState?;
|
|
645
|
+
private lastPageViewTime;
|
|
646
|
+
constructor(eventManager: EventManager, onTrack: () => void);
|
|
647
|
+
startTracking(): void;
|
|
648
|
+
stopTracking(): void;
|
|
649
|
+
private patchHistory;
|
|
650
|
+
private readonly trackCurrentPage;
|
|
651
|
+
private trackInitialPageView;
|
|
652
|
+
private extractPageViewData;
|
|
653
|
+
}
|
|
654
|
+
|
|
655
|
+
declare class PerformanceHandler extends StateManager {
|
|
656
|
+
private readonly eventManager;
|
|
657
|
+
private readonly reportedByNav;
|
|
658
|
+
private readonly navigationHistory;
|
|
659
|
+
private readonly observers;
|
|
660
|
+
private readonly vitalThresholds;
|
|
661
|
+
private lastLongTaskSentAt;
|
|
662
|
+
constructor(eventManager: EventManager);
|
|
663
|
+
startTracking(): Promise<void>;
|
|
664
|
+
stopTracking(): void;
|
|
665
|
+
private observeWebVitalsFallback;
|
|
666
|
+
private initWebVitals;
|
|
667
|
+
private reportTTFB;
|
|
668
|
+
private observeLongTasks;
|
|
669
|
+
private sendVital;
|
|
670
|
+
private trackWebVital;
|
|
671
|
+
private getNavigationId;
|
|
672
|
+
private isObserverSupported;
|
|
673
|
+
private safeObserve;
|
|
674
|
+
private shouldSendVital;
|
|
675
|
+
}
|
|
676
|
+
|
|
677
|
+
declare class ScrollHandler extends StateManager {
|
|
678
|
+
private readonly eventManager;
|
|
679
|
+
private readonly containers;
|
|
680
|
+
private limitWarningLogged;
|
|
681
|
+
private minDepthChange;
|
|
682
|
+
private minIntervalMs;
|
|
683
|
+
private maxEventsPerSession;
|
|
684
|
+
private containerDiscoveryTimeoutId;
|
|
685
|
+
constructor(eventManager: EventManager);
|
|
686
|
+
startTracking(): void;
|
|
687
|
+
stopTracking(): void;
|
|
688
|
+
private tryDetectScrollContainers;
|
|
689
|
+
private applyPrimaryScrollSelectorIfConfigured;
|
|
690
|
+
private findScrollableElements;
|
|
691
|
+
private getElementSelector;
|
|
692
|
+
private determineIfPrimary;
|
|
693
|
+
private setupScrollContainer;
|
|
694
|
+
private processScrollEvent;
|
|
695
|
+
private shouldEmitScrollEvent;
|
|
696
|
+
private hasReachedSessionLimit;
|
|
697
|
+
private hasElapsedMinimumInterval;
|
|
698
|
+
private hasSignificantDepthChange;
|
|
699
|
+
private logLimitOnce;
|
|
700
|
+
private applyConfigOverrides;
|
|
701
|
+
private isWindowScrollable;
|
|
702
|
+
private clearContainerTimer;
|
|
703
|
+
private getScrollDirection;
|
|
704
|
+
private calculateScrollDepth;
|
|
705
|
+
private calculateScrollData;
|
|
706
|
+
private getScrollTop;
|
|
707
|
+
private getViewportHeight;
|
|
708
|
+
private getScrollHeight;
|
|
709
|
+
private isElementScrollable;
|
|
710
|
+
private applyPrimaryScrollSelector;
|
|
711
|
+
private updateContainerPrimary;
|
|
712
|
+
}
|
|
713
|
+
|
|
714
|
+
declare class SessionHandler extends StateManager {
|
|
715
|
+
private readonly eventManager;
|
|
716
|
+
private readonly storageManager;
|
|
717
|
+
private sessionManager;
|
|
718
|
+
private destroyed;
|
|
719
|
+
constructor(storageManager: StorageManager, eventManager: EventManager);
|
|
720
|
+
startTracking(): void;
|
|
721
|
+
private isActive;
|
|
722
|
+
private cleanupSessionManager;
|
|
723
|
+
stopTracking(): void;
|
|
724
|
+
destroy(): void;
|
|
725
|
+
}
|
|
726
|
+
|
|
727
|
+
/**
|
|
728
|
+
* Testing bridge interface for E2E tests
|
|
729
|
+
* Only available when NODE_ENV=development
|
|
730
|
+
*/
|
|
731
|
+
interface TraceLogTestBridge {
|
|
732
|
+
readonly initialized: boolean;
|
|
733
|
+
init(config?: Config): Promise<void>;
|
|
734
|
+
destroy(): void;
|
|
735
|
+
isInitializing(): boolean;
|
|
736
|
+
sendCustomEvent(name: string, data?: Record<string, unknown> | Record<string, unknown>[]): void;
|
|
737
|
+
on(event: string, callback: (data: any) => void): void;
|
|
738
|
+
off(event: string, callback: (data: any) => void): void;
|
|
739
|
+
getSessionData(): Record<string, unknown> | null;
|
|
740
|
+
setSessionTimeout(timeout: number): void;
|
|
741
|
+
getQueueLength(): number;
|
|
742
|
+
forceInitLock(enabled?: boolean): void;
|
|
743
|
+
simulatePersistedEvents(events: any[]): void;
|
|
744
|
+
get<T extends keyof State>(key: T): State[T];
|
|
745
|
+
getStorageManager(): StorageManager | null;
|
|
746
|
+
getEventManager(): EventManager | null;
|
|
747
|
+
getSessionHandler(): SessionHandler | null;
|
|
748
|
+
getPageViewHandler(): PageViewHandler | null;
|
|
749
|
+
getClickHandler(): ClickHandler | null;
|
|
750
|
+
getScrollHandler(): ScrollHandler | null;
|
|
751
|
+
getPerformanceHandler(): PerformanceHandler | null;
|
|
752
|
+
getErrorHandler(): ErrorHandler | null;
|
|
753
|
+
getGoogleAnalytics(): GoogleAnalyticsIntegration | null;
|
|
754
|
+
}
|
|
755
|
+
|
|
756
|
+
/**
|
|
757
|
+
* Custom error classes for TraceLog validation errors
|
|
758
|
+
* Provides better error handling and consistency across validation layers
|
|
759
|
+
*/
|
|
760
|
+
/**
|
|
761
|
+
* Base class for all TraceLog validation errors
|
|
762
|
+
*/
|
|
763
|
+
declare abstract class TraceLogValidationError extends Error {
|
|
764
|
+
readonly errorCode: string;
|
|
765
|
+
readonly layer: 'config' | 'app' | 'runtime';
|
|
766
|
+
constructor(message: string, errorCode: string, layer: 'config' | 'app' | 'runtime');
|
|
767
|
+
}
|
|
768
|
+
/**
|
|
769
|
+
* Thrown when app configuration validation fails
|
|
770
|
+
*/
|
|
771
|
+
declare class AppConfigValidationError extends TraceLogValidationError {
|
|
772
|
+
constructor(message: string, layer?: 'config' | 'app' | 'runtime');
|
|
773
|
+
}
|
|
774
|
+
/**
|
|
775
|
+
* Thrown when session timeout validation fails
|
|
776
|
+
*/
|
|
777
|
+
declare class SessionTimeoutValidationError extends TraceLogValidationError {
|
|
778
|
+
constructor(message: string, layer?: 'config' | 'app' | 'runtime');
|
|
779
|
+
}
|
|
780
|
+
/**
|
|
781
|
+
* Thrown when sampling rate validation fails
|
|
782
|
+
*/
|
|
783
|
+
declare class SamplingRateValidationError extends TraceLogValidationError {
|
|
784
|
+
constructor(message: string, layer?: 'config' | 'app' | 'runtime');
|
|
785
|
+
}
|
|
786
|
+
/**
|
|
787
|
+
* Thrown when integrations validation fails
|
|
788
|
+
*/
|
|
789
|
+
declare class IntegrationValidationError extends TraceLogValidationError {
|
|
790
|
+
constructor(message: string, layer?: 'config' | 'app' | 'runtime');
|
|
791
|
+
}
|
|
792
|
+
/**
|
|
793
|
+
* Thrown when initialization exceeds the maximum allowed timeout
|
|
794
|
+
*/
|
|
795
|
+
declare class InitializationTimeoutError extends TraceLogValidationError {
|
|
796
|
+
readonly timeoutMs: number;
|
|
797
|
+
constructor(message: string, timeoutMs: number, layer?: 'config' | 'app' | 'runtime');
|
|
798
|
+
}
|
|
799
|
+
|
|
800
|
+
declare global {
|
|
801
|
+
interface Window {
|
|
802
|
+
/**
|
|
803
|
+
* Flag to disable TraceLog initialization
|
|
804
|
+
* Set to true to prevent the library from running
|
|
805
|
+
*/
|
|
806
|
+
__traceLogDisabled?: boolean;
|
|
807
|
+
/**
|
|
808
|
+
* Testing bridge for E2E tests
|
|
809
|
+
* Only available when NODE_ENV=development
|
|
810
|
+
*/
|
|
811
|
+
__traceLogBridge?: TraceLogTestBridge;
|
|
812
|
+
}
|
|
813
|
+
}
|
|
814
|
+
|
|
815
|
+
declare const MAX_CUSTOM_EVENT_NAME_LENGTH = 120;
|
|
816
|
+
declare const MAX_CUSTOM_EVENT_STRING_SIZE: number;
|
|
817
|
+
declare const MAX_CUSTOM_EVENT_KEYS = 10;
|
|
818
|
+
declare const MAX_CUSTOM_EVENT_ARRAY_SIZE = 10;
|
|
819
|
+
declare const MAX_NESTED_OBJECT_KEYS = 20;
|
|
820
|
+
declare const MAX_METADATA_NESTING_DEPTH = 1;
|
|
821
|
+
declare const MAX_STRING_LENGTH = 1000;
|
|
822
|
+
declare const MAX_STRING_LENGTH_IN_ARRAY = 500;
|
|
823
|
+
declare const MAX_ARRAY_LENGTH = 100;
|
|
824
|
+
|
|
825
|
+
declare const PERFORMANCE_CONFIG: {
|
|
826
|
+
readonly WEB_VITALS_THRESHOLDS: Record<WebVitalType, number>;
|
|
827
|
+
};
|
|
828
|
+
declare const DATA_PROTECTION: {
|
|
829
|
+
readonly PII_PATTERNS: readonly [RegExp, RegExp, RegExp, RegExp, RegExp, RegExp, RegExp];
|
|
830
|
+
};
|
|
831
|
+
declare const ENGAGEMENT_THRESHOLDS: {
|
|
832
|
+
readonly LOW_ACTIVITY_EVENT_COUNT: 50;
|
|
833
|
+
readonly HIGH_ACTIVITY_EVENT_COUNT: 1000;
|
|
834
|
+
readonly MIN_EVENTS_FOR_DYNAMIC_CALCULATION: 100;
|
|
835
|
+
readonly MIN_EVENTS_FOR_TREND_ANALYSIS: 30;
|
|
836
|
+
readonly BOUNCE_RATE_SESSION_THRESHOLD: 1;
|
|
837
|
+
readonly MIN_ENGAGED_SESSION_DURATION_MS: number;
|
|
838
|
+
readonly MIN_SCROLL_DEPTH_ENGAGEMENT: 25;
|
|
839
|
+
};
|
|
840
|
+
declare const SESSION_ANALYTICS: {
|
|
841
|
+
readonly INACTIVITY_TIMEOUT_MS: number;
|
|
842
|
+
readonly SHORT_SESSION_THRESHOLD_MS: number;
|
|
843
|
+
readonly MEDIUM_SESSION_THRESHOLD_MS: number;
|
|
844
|
+
readonly LONG_SESSION_THRESHOLD_MS: number;
|
|
845
|
+
readonly MAX_REALISTIC_SESSION_DURATION_MS: number;
|
|
846
|
+
};
|
|
847
|
+
declare const DEVICE_ANALYTICS: {
|
|
848
|
+
readonly MOBILE_MAX_WIDTH: 768;
|
|
849
|
+
readonly TABLET_MAX_WIDTH: 1024;
|
|
850
|
+
readonly MOBILE_PERFORMANCE_FACTOR: 1.5;
|
|
851
|
+
readonly TABLET_PERFORMANCE_FACTOR: 1.2;
|
|
852
|
+
};
|
|
853
|
+
declare const CONTENT_ANALYTICS: {
|
|
854
|
+
readonly MIN_TEXT_LENGTH_FOR_ANALYSIS: 10;
|
|
855
|
+
readonly MIN_CLICKS_FOR_HOT_ELEMENT: 10;
|
|
856
|
+
readonly MIN_SCROLL_COMPLETION_PERCENT: 80;
|
|
857
|
+
readonly MIN_TIME_ON_PAGE_FOR_READ_MS: number;
|
|
858
|
+
};
|
|
859
|
+
declare const INSIGHT_THRESHOLDS: {
|
|
860
|
+
readonly SIGNIFICANT_CHANGE_PERCENT: 20;
|
|
861
|
+
readonly MAJOR_CHANGE_PERCENT: 50;
|
|
862
|
+
readonly MIN_EVENTS_FOR_INSIGHT: 100;
|
|
863
|
+
readonly MIN_SESSIONS_FOR_INSIGHT: 10;
|
|
864
|
+
readonly MIN_CORRELATION_STRENGTH: 0.7;
|
|
865
|
+
readonly LOW_ERROR_RATE_PERCENT: 1;
|
|
866
|
+
readonly HIGH_ERROR_RATE_PERCENT: 5;
|
|
867
|
+
readonly CRITICAL_ERROR_RATE_PERCENT: 10;
|
|
868
|
+
};
|
|
869
|
+
declare const TEMPORAL_ANALYSIS: {
|
|
870
|
+
readonly SHORT_TERM_TREND_HOURS: 24;
|
|
871
|
+
readonly MEDIUM_TERM_TREND_DAYS: 7;
|
|
872
|
+
readonly LONG_TERM_TREND_DAYS: 30;
|
|
873
|
+
readonly MIN_DATA_POINTS_FOR_TREND: 5;
|
|
874
|
+
readonly WEEKLY_PATTERN_MIN_WEEKS: 4;
|
|
875
|
+
readonly DAILY_PATTERN_MIN_DAYS: 14;
|
|
876
|
+
};
|
|
877
|
+
declare const SEGMENTATION_ANALYTICS: {
|
|
878
|
+
readonly MIN_SEGMENT_SIZE: 10;
|
|
879
|
+
readonly MIN_COHORT_SIZE: 5;
|
|
880
|
+
readonly COHORT_ANALYSIS_DAYS: readonly [1, 3, 7, 14, 30];
|
|
881
|
+
readonly MIN_FUNNEL_EVENTS: 20;
|
|
882
|
+
};
|
|
883
|
+
declare const ANALYTICS_QUERY_LIMITS: {
|
|
884
|
+
readonly DEFAULT_EVENTS_LIMIT: 5;
|
|
885
|
+
readonly DEFAULT_SESSIONS_LIMIT: 5;
|
|
886
|
+
readonly DEFAULT_PAGES_LIMIT: 5;
|
|
887
|
+
readonly MAX_EVENTS_FOR_DEEP_ANALYSIS: 10000;
|
|
888
|
+
readonly MAX_TIME_RANGE_DAYS: 365;
|
|
889
|
+
readonly ANALYTICS_BATCH_SIZE: 1000;
|
|
890
|
+
};
|
|
891
|
+
declare const ANOMALY_DETECTION: {
|
|
892
|
+
readonly ANOMALY_THRESHOLD_SIGMA: 2.5;
|
|
893
|
+
readonly STRONG_ANOMALY_THRESHOLD_SIGMA: 3;
|
|
894
|
+
readonly TRAFFIC_DROP_ALERT_PERCENT: -30;
|
|
895
|
+
readonly TRAFFIC_SPIKE_ALERT_PERCENT: 200;
|
|
896
|
+
readonly MIN_BASELINE_DAYS: 7;
|
|
897
|
+
readonly MIN_EVENTS_FOR_ANOMALY_DETECTION: 50;
|
|
898
|
+
};
|
|
899
|
+
declare const SPECIAL_PAGE_URLS: {
|
|
900
|
+
readonly PAGE_URL_EXCLUDED: "excluded";
|
|
901
|
+
readonly PAGE_URL_UNKNOWN: "unknown";
|
|
902
|
+
};
|
|
903
|
+
|
|
904
|
+
declare const tracelog: {
|
|
905
|
+
init: (config?: Config) => Promise<void>;
|
|
906
|
+
event: (name: string, metadata?: Record<string, MetadataType> | Record<string, MetadataType>[]) => void;
|
|
907
|
+
on: <K extends keyof EmitterMap>(event: K, callback: EmitterCallback<EmitterMap[K]>) => void;
|
|
908
|
+
off: <K extends keyof EmitterMap>(event: K, callback: EmitterCallback<EmitterMap[K]>) => void;
|
|
909
|
+
isInitialized: () => boolean;
|
|
910
|
+
destroy: () => void;
|
|
911
|
+
};
|
|
912
|
+
|
|
913
|
+
export { ANALYTICS_QUERY_LIMITS, ANOMALY_DETECTION, AppConfigValidationError, CONTENT_ANALYTICS, type ClickCoordinates, type ClickData, type ClickTrackingElementData, type Config, type CustomEventData, DATA_PROTECTION, DEVICE_ANALYTICS, DeviceType, ENGAGEMENT_THRESHOLDS, type EmitterCallback, EmitterEvent, type EmitterMap, type ErrorData, ErrorType, type EventData, EventType, type EventsQueue, INSIGHT_THRESHOLDS, InitializationTimeoutError, IntegrationValidationError, type LogLevel, MAX_ARRAY_LENGTH, MAX_CUSTOM_EVENT_ARRAY_SIZE, MAX_CUSTOM_EVENT_KEYS, MAX_CUSTOM_EVENT_NAME_LENGTH, MAX_CUSTOM_EVENT_STRING_SIZE, MAX_METADATA_NESTING_DEPTH, MAX_NESTED_OBJECT_KEYS, MAX_STRING_LENGTH, MAX_STRING_LENGTH_IN_ARRAY, type MetadataType, Mode, PERFORMANCE_CONFIG, type PageViewData, PermanentError, type PersistedEventsQueue, type PrimaryScrollEvent, SEGMENTATION_ANALYTICS, SESSION_ANALYTICS, SPECIAL_PAGE_URLS, SamplingRateValidationError, type ScrollData, ScrollDirection, type SecondaryScrollEvent, type SessionEndReason, SessionTimeoutValidationError, SpecialApiUrl, type State, TEMPORAL_ANALYSIS, type TraceLogTestBridge, TraceLogValidationError, type UTM, type ViewportConfig, type ViewportElement, type ViewportEventData, type WebVitalType, type WebVitalsData, isPrimaryScrollEvent, isSecondaryScrollEvent, tracelog };
|