@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
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
const
|
|
2
|
-
const
|
|
3
|
-
const
|
|
1
|
+
const Yt = 120, Kt = 8192, qt = 10, Zt = 10, Jt = 20, er = 1;
|
|
2
|
+
const tr = 1e3, rr = 500, nr = 100;
|
|
3
|
+
const A = "data-tlog", He = [
|
|
4
4
|
"button",
|
|
5
5
|
"a",
|
|
6
6
|
'input[type="button"]',
|
|
@@ -32,7 +32,7 @@ const v = "data-tlog", Ue = [
|
|
|
32
32
|
".menu-item",
|
|
33
33
|
"[data-testid]",
|
|
34
34
|
'[tabindex="0"]'
|
|
35
|
-
],
|
|
35
|
+
], Ue = ["utm_source", "utm_medium", "utm_campaign", "utm_term", "utm_content"], xe = [
|
|
36
36
|
"token",
|
|
37
37
|
"auth",
|
|
38
38
|
"key",
|
|
@@ -79,17 +79,17 @@ const h = {
|
|
|
79
79
|
/<embed\b[^>]*>/gi,
|
|
80
80
|
/<object\b[^<]*(?:(?!<\/object>)<[^<]*)*<\/object>/gi
|
|
81
81
|
];
|
|
82
|
-
var q = /* @__PURE__ */ ((n) => (n.Localhost = "localhost:8080", n.Fail = "localhost:9999", n))(q || {}),
|
|
82
|
+
var q = /* @__PURE__ */ ((n) => (n.Localhost = "localhost:8080", n.Fail = "localhost:9999", n))(q || {}), y = /* @__PURE__ */ ((n) => (n.Mobile = "mobile", n.Tablet = "tablet", n.Desktop = "desktop", n.Unknown = "unknown", n))(y || {}), Z = /* @__PURE__ */ ((n) => (n.EVENT = "event", n.QUEUE = "queue", n))(Z || {});
|
|
83
83
|
class R extends Error {
|
|
84
84
|
constructor(e, t) {
|
|
85
85
|
super(e), this.statusCode = t, this.name = "PermanentError", Error.captureStackTrace && Error.captureStackTrace(this, R);
|
|
86
86
|
}
|
|
87
87
|
}
|
|
88
|
-
var u = /* @__PURE__ */ ((n) => (n.PAGE_VIEW = "page_view", n.CLICK = "click", n.SCROLL = "scroll", n.SESSION_START = "session_start", n.SESSION_END = "session_end", n.CUSTOM = "custom", n.WEB_VITALS = "web_vitals", n.ERROR = "error", n.VIEWPORT_VISIBLE = "viewport_visible", n))(u || {}),
|
|
89
|
-
function
|
|
88
|
+
var u = /* @__PURE__ */ ((n) => (n.PAGE_VIEW = "page_view", n.CLICK = "click", n.SCROLL = "scroll", n.SESSION_START = "session_start", n.SESSION_END = "session_end", n.CUSTOM = "custom", n.WEB_VITALS = "web_vitals", n.ERROR = "error", n.VIEWPORT_VISIBLE = "viewport_visible", n))(u || {}), U = /* @__PURE__ */ ((n) => (n.UP = "up", n.DOWN = "down", n))(U || {}), P = /* @__PURE__ */ ((n) => (n.JS_ERROR = "js_error", n.PROMISE_REJECTION = "promise_rejection", n))(P || {}), D = /* @__PURE__ */ ((n) => (n.QA = "qa", n))(D || {});
|
|
89
|
+
function sr(n) {
|
|
90
90
|
return n.type === u.SCROLL && "scroll_data" in n && n.scroll_data.is_primary === !0;
|
|
91
91
|
}
|
|
92
|
-
function
|
|
92
|
+
function ir(n) {
|
|
93
93
|
return n.type === u.SCROLL && "scroll_data" in n && n.scroll_data.is_primary === !1;
|
|
94
94
|
}
|
|
95
95
|
class V extends Error {
|
|
@@ -117,7 +117,7 @@ class M extends V {
|
|
|
117
117
|
super(e, "INTEGRATION_INVALID", t);
|
|
118
118
|
}
|
|
119
119
|
}
|
|
120
|
-
class
|
|
120
|
+
class or extends V {
|
|
121
121
|
constructor(e, t, r = "runtime") {
|
|
122
122
|
super(e, "INITIALIZATION_TIMEOUT", r), this.timeoutMs = t;
|
|
123
123
|
}
|
|
@@ -153,21 +153,21 @@ const Xe = () => {
|
|
|
153
153
|
try {
|
|
154
154
|
const n = navigator;
|
|
155
155
|
if (n.userAgentData && typeof n.userAgentData.mobile == "boolean")
|
|
156
|
-
return n.userAgentData.platform && /ipad|tablet/i.test(n.userAgentData.platform) ?
|
|
156
|
+
return n.userAgentData.platform && /ipad|tablet/i.test(n.userAgentData.platform) ? y.Tablet : n.userAgentData.mobile ? y.Mobile : y.Desktop;
|
|
157
157
|
Xe();
|
|
158
158
|
const e = window.innerWidth, t = J?.matches ?? !1, r = we?.matches ?? !1, s = "ontouchstart" in window || navigator.maxTouchPoints > 0, i = navigator.userAgent.toLowerCase(), o = /mobile|android|iphone|ipod|blackberry|iemobile|opera mini/.test(i), l = /tablet|ipad|android(?!.*mobile)/.test(i);
|
|
159
|
-
return e <= 767 || o && s ?
|
|
159
|
+
return e <= 767 || o && s ? y.Mobile : e >= 768 && e <= 1024 || l || t && r && s ? y.Tablet : y.Desktop;
|
|
160
160
|
} catch (n) {
|
|
161
|
-
return a("warn", "Device detection failed, defaulting to desktop", { error: n }),
|
|
161
|
+
return a("warn", "Device detection failed, defaulting to desktop", { error: n }), y.Desktop;
|
|
162
162
|
}
|
|
163
|
-
},
|
|
163
|
+
}, L = "tlog", fe = `${L}:qa_mode`, ze = `${L}:uid`, Qe = (n) => n ? `${L}:${n}:queue` : `${L}:queue`, je = (n) => n ? `${L}:${n}:session` : `${L}:session`, Ye = (n) => n ? `${L}:${n}:broadcast` : `${L}:broadcast`, ye = {
|
|
164
164
|
LCP: 4e3,
|
|
165
165
|
FCP: 1800,
|
|
166
166
|
CLS: 0.25,
|
|
167
167
|
INP: 200,
|
|
168
168
|
TTFB: 800,
|
|
169
169
|
LONG_TASK: 50
|
|
170
|
-
}, Ke = 1e3, le = [
|
|
170
|
+
}, Ke = 1e3, qe = 50, le = [
|
|
171
171
|
// Email addresses
|
|
172
172
|
/\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}\b/gi,
|
|
173
173
|
// US Phone numbers (various formats)
|
|
@@ -182,10 +182,10 @@ const Xe = () => {
|
|
|
182
182
|
/Bearer\s+[A-Za-z0-9_-]+(?:\.[A-Za-z0-9_-]+)?(?:\.[A-Za-z0-9_-]+)?/gi,
|
|
183
183
|
// Passwords in connection strings (protocol://user:password@host)
|
|
184
184
|
/:\/\/[^:/]+:([^@]+)@/gi
|
|
185
|
-
], Ee = 500, ge = 5e3, x = 50,
|
|
185
|
+
], Ee = 500, ge = 5e3, x = 50, Ze = x * 2, Le = 1, Je = 1e3, et = 10, me = 5e3, tt = 6e4, Se = "tlog_mode", rt = "qa", nt = () => {
|
|
186
186
|
if (sessionStorage.getItem(fe) === "true")
|
|
187
187
|
return !0;
|
|
188
|
-
const e = new URLSearchParams(window.location.search), r = e.get(Se) ===
|
|
188
|
+
const e = new URLSearchParams(window.location.search), r = e.get(Se) === rt;
|
|
189
189
|
if (r) {
|
|
190
190
|
sessionStorage.setItem(fe, "true"), e.delete(Se);
|
|
191
191
|
const s = e.toString(), i = `${window.location.pathname}${s ? "?" + s : ""}${window.location.hash}`;
|
|
@@ -200,19 +200,19 @@ const Xe = () => {
|
|
|
200
200
|
);
|
|
201
201
|
}
|
|
202
202
|
return r;
|
|
203
|
-
},
|
|
203
|
+
}, Te = () => {
|
|
204
204
|
const n = new URLSearchParams(window.location.search), e = {};
|
|
205
|
-
return
|
|
205
|
+
return Ue.forEach((r) => {
|
|
206
206
|
const s = n.get(r);
|
|
207
207
|
if (s) {
|
|
208
208
|
const i = r.split("utm_")[1];
|
|
209
209
|
e[i] = s;
|
|
210
210
|
}
|
|
211
211
|
}), Object.keys(e).length ? e : void 0;
|
|
212
|
-
},
|
|
212
|
+
}, st = () => typeof crypto < "u" && crypto.randomUUID ? crypto.randomUUID() : "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, (n) => {
|
|
213
213
|
const e = Math.random() * 16 | 0;
|
|
214
214
|
return (n === "x" ? e : e & 3 | 8).toString(16);
|
|
215
|
-
}),
|
|
215
|
+
}), it = () => {
|
|
216
216
|
const n = Date.now();
|
|
217
217
|
let e = "";
|
|
218
218
|
try {
|
|
@@ -223,32 +223,43 @@ const Xe = () => {
|
|
|
223
223
|
} catch {
|
|
224
224
|
}
|
|
225
225
|
return e || (e = Math.floor(Math.random() * 4294967295).toString(16).padStart(8, "0")), `${n}-${e}`;
|
|
226
|
-
},
|
|
226
|
+
}, _e = (n, e = !1) => {
|
|
227
227
|
try {
|
|
228
228
|
const t = new URL(n), r = t.protocol === "https:", s = t.protocol === "http:";
|
|
229
229
|
return r || e && s;
|
|
230
230
|
} catch {
|
|
231
231
|
return !1;
|
|
232
232
|
}
|
|
233
|
-
},
|
|
234
|
-
if (n.integrations?.tracelog?.projectId)
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
233
|
+
}, ot = (n) => {
|
|
234
|
+
if (n.integrations?.tracelog?.projectId)
|
|
235
|
+
try {
|
|
236
|
+
const r = new URL(window.location.href).hostname;
|
|
237
|
+
if (!r || typeof r != "string")
|
|
238
|
+
throw new Error("Invalid hostname");
|
|
239
|
+
const s = r.split(".");
|
|
240
|
+
if (!s || !Array.isArray(s) || s.length === 0 || s.length === 1 && s[0] === "")
|
|
241
|
+
throw new Error("Invalid hostname structure");
|
|
242
|
+
const i = n.integrations.tracelog.projectId, o = s.slice(-2).join(".");
|
|
243
|
+
if (!o)
|
|
244
|
+
throw new Error("Invalid domain");
|
|
245
|
+
const l = `https://${i}.${o}/collect`;
|
|
246
|
+
if (!_e(l))
|
|
247
|
+
throw new Error("Invalid URL");
|
|
248
|
+
return l;
|
|
249
|
+
} catch (t) {
|
|
250
|
+
throw new Error(`Invalid URL configuration: ${t instanceof Error ? t.message : String(t)}`);
|
|
251
|
+
}
|
|
243
252
|
const e = n.integrations?.custom?.collectApiUrl;
|
|
244
253
|
if (e) {
|
|
245
254
|
const t = n.integrations?.custom?.allowHttp ?? !1;
|
|
246
|
-
if (!
|
|
255
|
+
if (!_e(e, t))
|
|
247
256
|
throw new Error("Invalid URL");
|
|
248
257
|
return e;
|
|
249
258
|
}
|
|
250
259
|
return "";
|
|
251
260
|
}, ee = (n, e = []) => {
|
|
261
|
+
if (!n || typeof n != "string")
|
|
262
|
+
return a("warn", "Invalid URL provided to normalizeUrl", { data: { url: String(n) } }), n || "";
|
|
252
263
|
try {
|
|
253
264
|
const t = new URL(n), r = t.searchParams, s = [.../* @__PURE__ */ new Set([...xe, ...e])];
|
|
254
265
|
let i = !1;
|
|
@@ -257,7 +268,8 @@ const Xe = () => {
|
|
|
257
268
|
r.has(c) && (r.delete(c), i = !0, o.push(c));
|
|
258
269
|
}), !i && n.includes("?") ? n : (t.search = r.toString(), t.toString());
|
|
259
270
|
} catch (t) {
|
|
260
|
-
|
|
271
|
+
const r = n && typeof n == "string" ? n.slice(0, 100) : String(n);
|
|
272
|
+
return a("warn", "URL normalization failed, returning original", { error: t, data: { url: r } }), n;
|
|
261
273
|
}
|
|
262
274
|
}, pe = (n) => {
|
|
263
275
|
if (!n || typeof n != "string" || n.trim().length === 0)
|
|
@@ -298,7 +310,7 @@ const Xe = () => {
|
|
|
298
310
|
return t;
|
|
299
311
|
}
|
|
300
312
|
return null;
|
|
301
|
-
},
|
|
313
|
+
}, at = (n) => {
|
|
302
314
|
if (typeof n != "object" || n === null)
|
|
303
315
|
return {};
|
|
304
316
|
try {
|
|
@@ -308,7 +320,7 @@ const Xe = () => {
|
|
|
308
320
|
const t = e instanceof Error ? e.message : String(e);
|
|
309
321
|
throw new Error(`[TraceLog] Metadata sanitization failed: ${t}`);
|
|
310
322
|
}
|
|
311
|
-
},
|
|
323
|
+
}, lt = (n) => {
|
|
312
324
|
if (n !== void 0 && (n === null || typeof n != "object"))
|
|
313
325
|
throw new f("Configuration must be an object", "config");
|
|
314
326
|
if (n) {
|
|
@@ -316,7 +328,7 @@ const Xe = () => {
|
|
|
316
328
|
throw new Ge(h.INVALID_SESSION_TIMEOUT, "config");
|
|
317
329
|
if (n.globalMetadata !== void 0 && (typeof n.globalMetadata != "object" || n.globalMetadata === null))
|
|
318
330
|
throw new f(h.INVALID_GLOBAL_METADATA, "config");
|
|
319
|
-
if (n.integrations &&
|
|
331
|
+
if (n.integrations && ut(n.integrations), n.sensitiveQueryParams !== void 0) {
|
|
320
332
|
if (!Array.isArray(n.sensitiveQueryParams))
|
|
321
333
|
throw new f(h.INVALID_SENSITIVE_QUERY_PARAMS, "config");
|
|
322
334
|
for (const e of n.sensitiveQueryParams)
|
|
@@ -346,9 +358,9 @@ const Xe = () => {
|
|
|
346
358
|
throw new f(h.INVALID_CLICK_THROTTLE, "config");
|
|
347
359
|
if (n.maxSameEventPerMinute !== void 0 && (typeof n.maxSameEventPerMinute != "number" || n.maxSameEventPerMinute <= 0))
|
|
348
360
|
throw new f(h.INVALID_MAX_SAME_EVENT_PER_MINUTE, "config");
|
|
349
|
-
n.viewport !== void 0 &&
|
|
361
|
+
n.viewport !== void 0 && ct(n.viewport);
|
|
350
362
|
}
|
|
351
|
-
},
|
|
363
|
+
}, ct = (n) => {
|
|
352
364
|
if (typeof n != "object" || n === null)
|
|
353
365
|
throw new f(h.INVALID_VIEWPORT_CONFIG, "config");
|
|
354
366
|
if (!n.elements || !Array.isArray(n.elements))
|
|
@@ -378,7 +390,7 @@ const Xe = () => {
|
|
|
378
390
|
throw new f(h.INVALID_VIEWPORT_COOLDOWN_PERIOD, "config");
|
|
379
391
|
if (n.maxTrackedElements !== void 0 && (typeof n.maxTrackedElements != "number" || n.maxTrackedElements <= 0))
|
|
380
392
|
throw new f(h.INVALID_VIEWPORT_MAX_TRACKED_ELEMENTS, "config");
|
|
381
|
-
},
|
|
393
|
+
}, ut = (n) => {
|
|
382
394
|
if (n) {
|
|
383
395
|
if (n.tracelog && (!n.tracelog.projectId || typeof n.tracelog.projectId != "string" || n.tracelog.projectId.trim() === ""))
|
|
384
396
|
throw new M(h.INVALID_TRACELOG_PROJECT_ID, "config");
|
|
@@ -403,8 +415,8 @@ const Xe = () => {
|
|
|
403
415
|
throw new M('Google Analytics measurement ID must start with "G-" or "UA-"', "config");
|
|
404
416
|
}
|
|
405
417
|
}
|
|
406
|
-
},
|
|
407
|
-
|
|
418
|
+
}, dt = (n) => {
|
|
419
|
+
lt(n);
|
|
408
420
|
const e = {
|
|
409
421
|
...n ?? {},
|
|
410
422
|
sessionTimeout: n?.sessionTimeout ?? 9e5,
|
|
@@ -426,7 +438,7 @@ const Xe = () => {
|
|
|
426
438
|
cooldownPeriod: e.viewport.cooldownPeriod ?? 6e4,
|
|
427
439
|
maxTrackedElements: e.viewport.maxTrackedElements ?? 100
|
|
428
440
|
}), e;
|
|
429
|
-
},
|
|
441
|
+
}, ht = (n) => {
|
|
430
442
|
if (typeof n == "string")
|
|
431
443
|
return !0;
|
|
432
444
|
if (typeof n == "object" && n !== null && !Array.isArray(n)) {
|
|
@@ -457,7 +469,7 @@ const Xe = () => {
|
|
|
457
469
|
if (typeof t[0] == "string") {
|
|
458
470
|
if (!t.every((o) => typeof o == "string"))
|
|
459
471
|
return !1;
|
|
460
|
-
} else if (!t.every((o) =>
|
|
472
|
+
} else if (!t.every((o) => ht(o)))
|
|
461
473
|
return !1;
|
|
462
474
|
continue;
|
|
463
475
|
}
|
|
@@ -470,7 +482,7 @@ const Xe = () => {
|
|
|
470
482
|
}
|
|
471
483
|
}
|
|
472
484
|
return !0;
|
|
473
|
-
},
|
|
485
|
+
}, ft = (n) => typeof n != "string" ? {
|
|
474
486
|
valid: !1,
|
|
475
487
|
error: "Event name must be a string"
|
|
476
488
|
} : n.length === 0 ? {
|
|
@@ -486,7 +498,7 @@ const Xe = () => {
|
|
|
486
498
|
valid: !1,
|
|
487
499
|
error: "Event name cannot be a reserved word"
|
|
488
500
|
} : { valid: !0 }, Ie = (n, e, t) => {
|
|
489
|
-
const r =
|
|
501
|
+
const r = at(e), s = `${t} "${n}" metadata error`;
|
|
490
502
|
if (!Me(r))
|
|
491
503
|
return {
|
|
492
504
|
valid: !1,
|
|
@@ -535,7 +547,7 @@ const Xe = () => {
|
|
|
535
547
|
valid: !0,
|
|
536
548
|
sanitizedMetadata: r
|
|
537
549
|
};
|
|
538
|
-
},
|
|
550
|
+
}, Et = (n, e, t) => {
|
|
539
551
|
if (Array.isArray(e)) {
|
|
540
552
|
const r = [], s = `${t} "${n}" metadata error`;
|
|
541
553
|
for (let i = 0; i < e.length; i++) {
|
|
@@ -559,8 +571,8 @@ const Xe = () => {
|
|
|
559
571
|
};
|
|
560
572
|
}
|
|
561
573
|
return Ie(n, e, t);
|
|
562
|
-
},
|
|
563
|
-
const t =
|
|
574
|
+
}, gt = (n, e) => {
|
|
575
|
+
const t = ft(n);
|
|
564
576
|
if (!t.valid)
|
|
565
577
|
return a("error", "Event name validation failed", {
|
|
566
578
|
showToClient: !0,
|
|
@@ -568,7 +580,7 @@ const Xe = () => {
|
|
|
568
580
|
}), t;
|
|
569
581
|
if (!e)
|
|
570
582
|
return { valid: !0 };
|
|
571
|
-
const r =
|
|
583
|
+
const r = Et(n, e, "customEvent");
|
|
572
584
|
return r.valid || a("error", "Event metadata validation failed", {
|
|
573
585
|
showToClient: !0,
|
|
574
586
|
data: {
|
|
@@ -577,7 +589,7 @@ const Xe = () => {
|
|
|
577
589
|
}
|
|
578
590
|
}), r;
|
|
579
591
|
};
|
|
580
|
-
class
|
|
592
|
+
class mt {
|
|
581
593
|
listeners = /* @__PURE__ */ new Map();
|
|
582
594
|
on(e, t) {
|
|
583
595
|
this.listeners.has(e) || this.listeners.set(e, []), this.listeners.get(e).push(t);
|
|
@@ -611,9 +623,10 @@ class S {
|
|
|
611
623
|
return { ...j };
|
|
612
624
|
}
|
|
613
625
|
}
|
|
614
|
-
class
|
|
626
|
+
class St extends S {
|
|
615
627
|
storeManager;
|
|
616
628
|
lastPermanentErrorLog = null;
|
|
629
|
+
recoveryInProgress = !1;
|
|
617
630
|
constructor(e) {
|
|
618
631
|
super(), this.storeManager = e;
|
|
619
632
|
}
|
|
@@ -635,6 +648,11 @@ class mt extends S {
|
|
|
635
648
|
}
|
|
636
649
|
}
|
|
637
650
|
async recoverPersistedEvents(e) {
|
|
651
|
+
if (this.recoveryInProgress) {
|
|
652
|
+
a("debug", "Recovery already in progress, skipping duplicate attempt");
|
|
653
|
+
return;
|
|
654
|
+
}
|
|
655
|
+
this.recoveryInProgress = !0;
|
|
638
656
|
try {
|
|
639
657
|
const t = this.getPersistedData();
|
|
640
658
|
if (!t || !this.isDataRecent(t) || t.events.length === 0) {
|
|
@@ -649,6 +667,8 @@ class mt extends S {
|
|
|
649
667
|
return;
|
|
650
668
|
}
|
|
651
669
|
a("error", "Failed to recover persisted events", { error: t });
|
|
670
|
+
} finally {
|
|
671
|
+
this.recoveryInProgress = !1;
|
|
652
672
|
}
|
|
653
673
|
}
|
|
654
674
|
stop() {
|
|
@@ -740,25 +760,24 @@ class mt extends S {
|
|
|
740
760
|
return !e.timestamp || typeof e.timestamp != "number" ? !1 : (Date.now() - e.timestamp) / (1e3 * 60 * 60) < 2;
|
|
741
761
|
}
|
|
742
762
|
createRecoveryBody(e) {
|
|
743
|
-
|
|
744
|
-
|
|
745
|
-
session_id: e.sessionId,
|
|
746
|
-
device: e.device,
|
|
747
|
-
events: e.events,
|
|
748
|
-
...e.global_metadata && { global_metadata: e.global_metadata }
|
|
749
|
-
};
|
|
763
|
+
const { timestamp: t, ...r } = e;
|
|
764
|
+
return r;
|
|
750
765
|
}
|
|
751
766
|
persistEvents(e) {
|
|
752
767
|
try {
|
|
753
|
-
const t =
|
|
754
|
-
|
|
755
|
-
|
|
756
|
-
|
|
757
|
-
|
|
758
|
-
|
|
759
|
-
|
|
760
|
-
}
|
|
761
|
-
|
|
768
|
+
const t = this.getPersistedData();
|
|
769
|
+
if (t && t.timestamp) {
|
|
770
|
+
const i = Date.now() - t.timestamp;
|
|
771
|
+
if (i < 1e3)
|
|
772
|
+
return a("debug", "Skipping persistence, another tab recently persisted events", {
|
|
773
|
+
data: { timeSinceExisting: i }
|
|
774
|
+
}), !0;
|
|
775
|
+
}
|
|
776
|
+
const r = {
|
|
777
|
+
...e,
|
|
778
|
+
timestamp: Date.now()
|
|
779
|
+
}, s = this.getQueueStorageKey();
|
|
780
|
+
return this.storeManager.setItem(s, JSON.stringify(r)), !!this.storeManager.getItem(s);
|
|
762
781
|
} catch (t) {
|
|
763
782
|
return a("warn", "Failed to persist events", { error: t }), !1;
|
|
764
783
|
}
|
|
@@ -783,12 +802,12 @@ class mt extends S {
|
|
|
783
802
|
}
|
|
784
803
|
logPermanentError(e, t) {
|
|
785
804
|
const r = Date.now();
|
|
786
|
-
(!this.lastPermanentErrorLog || this.lastPermanentErrorLog.statusCode !== t.statusCode || r - this.lastPermanentErrorLog.timestamp >=
|
|
805
|
+
(!this.lastPermanentErrorLog || this.lastPermanentErrorLog.statusCode !== t.statusCode || r - this.lastPermanentErrorLog.timestamp >= tt) && (a("error", e, {
|
|
787
806
|
data: { status: t.statusCode, message: t.message }
|
|
788
807
|
}), this.lastPermanentErrorLog = { statusCode: t.statusCode, timestamp: r });
|
|
789
808
|
}
|
|
790
809
|
}
|
|
791
|
-
class
|
|
810
|
+
class Tt extends S {
|
|
792
811
|
googleAnalytics;
|
|
793
812
|
dataSender;
|
|
794
813
|
emitter;
|
|
@@ -810,7 +829,7 @@ class St extends S {
|
|
|
810
829
|
};
|
|
811
830
|
lastSessionId = null;
|
|
812
831
|
constructor(e, t = null, r = null) {
|
|
813
|
-
super(), this.googleAnalytics = t, this.dataSender = new
|
|
832
|
+
super(), this.googleAnalytics = t, this.dataSender = new St(e), this.emitter = r;
|
|
814
833
|
}
|
|
815
834
|
async recoverPersistedEvents() {
|
|
816
835
|
await this.dataSender.recoverPersistedEvents({
|
|
@@ -835,7 +854,7 @@ class St extends S {
|
|
|
835
854
|
web_vitals: l,
|
|
836
855
|
error_data: c,
|
|
837
856
|
session_end_reason: d,
|
|
838
|
-
viewport_data:
|
|
857
|
+
viewport_data: T
|
|
839
858
|
}) {
|
|
840
859
|
if (!e) {
|
|
841
860
|
a("error", "Event type is required - event will be ignored");
|
|
@@ -855,7 +874,7 @@ class St extends S {
|
|
|
855
874
|
web_vitals: l,
|
|
856
875
|
error_data: c,
|
|
857
876
|
session_end_reason: d,
|
|
858
|
-
viewport_data:
|
|
877
|
+
viewport_data: T
|
|
859
878
|
});
|
|
860
879
|
return;
|
|
861
880
|
}
|
|
@@ -867,11 +886,11 @@ class St extends S {
|
|
|
867
886
|
[u.VIEWPORT_VISIBLE]: 0,
|
|
868
887
|
[u.SCROLL]: 0
|
|
869
888
|
});
|
|
870
|
-
const
|
|
871
|
-
if (!
|
|
889
|
+
const v = e === u.SESSION_START || e === u.SESSION_END;
|
|
890
|
+
if (!v && !this.checkRateLimit())
|
|
872
891
|
return;
|
|
873
892
|
const m = e;
|
|
874
|
-
if (!
|
|
893
|
+
if (!v) {
|
|
875
894
|
if (this.sessionEventCounts.total >= 1e3) {
|
|
876
895
|
a("warn", "Session event limit reached", {
|
|
877
896
|
data: {
|
|
@@ -882,15 +901,15 @@ class St extends S {
|
|
|
882
901
|
});
|
|
883
902
|
return;
|
|
884
903
|
}
|
|
885
|
-
const
|
|
886
|
-
if (
|
|
904
|
+
const w = this.getTypeLimitForEvent(m);
|
|
905
|
+
if (w) {
|
|
887
906
|
const Q = this.sessionEventCounts[m];
|
|
888
|
-
if (Q !== void 0 && Q >=
|
|
907
|
+
if (Q !== void 0 && Q >= w) {
|
|
889
908
|
a("warn", "Session event type limit reached", {
|
|
890
909
|
data: {
|
|
891
910
|
type: m,
|
|
892
911
|
count: Q,
|
|
893
|
-
limit:
|
|
912
|
+
limit: w
|
|
894
913
|
}
|
|
895
914
|
});
|
|
896
915
|
return;
|
|
@@ -898,8 +917,8 @@ class St extends S {
|
|
|
898
917
|
}
|
|
899
918
|
}
|
|
900
919
|
if (m === u.CUSTOM && o?.name) {
|
|
901
|
-
const
|
|
902
|
-
if (!this.checkPerEventRateLimit(o.name,
|
|
920
|
+
const w = this.get("config")?.maxSameEventPerMinute ?? 60;
|
|
921
|
+
if (!this.checkPerEventRateLimit(o.name, w))
|
|
903
922
|
return;
|
|
904
923
|
}
|
|
905
924
|
const Ve = m === u.SESSION_START, ke = t || this.get("pageUrl"), z = this.buildEventPayload({
|
|
@@ -912,18 +931,18 @@ class St extends S {
|
|
|
912
931
|
web_vitals: l,
|
|
913
932
|
error_data: c,
|
|
914
933
|
session_end_reason: d,
|
|
915
|
-
viewport_data:
|
|
934
|
+
viewport_data: T
|
|
916
935
|
});
|
|
917
|
-
if (!(!
|
|
936
|
+
if (!(!v && !this.shouldSample())) {
|
|
918
937
|
if (Ve) {
|
|
919
|
-
const
|
|
920
|
-
if (!
|
|
938
|
+
const w = this.get("sessionId");
|
|
939
|
+
if (!w) {
|
|
921
940
|
a("error", "Session start event requires sessionId - event will be ignored");
|
|
922
941
|
return;
|
|
923
942
|
}
|
|
924
943
|
if (this.get("hasStartSession")) {
|
|
925
944
|
a("warn", "Duplicate session_start detected", {
|
|
926
|
-
data: { sessionId:
|
|
945
|
+
data: { sessionId: w }
|
|
927
946
|
});
|
|
928
947
|
return;
|
|
929
948
|
}
|
|
@@ -937,7 +956,7 @@ class St extends S {
|
|
|
937
956
|
}), this.emitEvent(z);
|
|
938
957
|
return;
|
|
939
958
|
}
|
|
940
|
-
this.addToQueue(z),
|
|
959
|
+
this.addToQueue(z), v || (this.sessionEventCounts.total++, this.sessionEventCounts[m] !== void 0 && this.sessionEventCounts[m]++);
|
|
941
960
|
}
|
|
942
961
|
}
|
|
943
962
|
}
|
|
@@ -983,14 +1002,14 @@ class St extends S {
|
|
|
983
1002
|
const t = this.buildEventsPayload(), r = [...this.eventsQueue], s = r.map((i) => i.id);
|
|
984
1003
|
if (e) {
|
|
985
1004
|
const i = this.dataSender.sendEventsQueueSync(t);
|
|
986
|
-
return i
|
|
1005
|
+
return i ? (this.removeProcessedEvents(s), this.clearSendInterval(), this.emitEventsQueue(t)) : (this.removeProcessedEvents(s), this.clearSendInterval()), i;
|
|
987
1006
|
} else
|
|
988
1007
|
return this.dataSender.sendEventsQueue(t, {
|
|
989
1008
|
onSuccess: () => {
|
|
990
1009
|
this.removeProcessedEvents(s), this.clearSendInterval(), this.emitEventsQueue(t);
|
|
991
1010
|
},
|
|
992
1011
|
onFailure: () => {
|
|
993
|
-
a("warn", "Async flush failed", {
|
|
1012
|
+
this.removeProcessedEvents(s), this.eventsQueue.length === 0 && this.clearSendInterval(), a("warn", "Async flush failed, removed from queue and persisted for recovery on next page load", {
|
|
994
1013
|
data: { eventCount: r.length }
|
|
995
1014
|
});
|
|
996
1015
|
}
|
|
@@ -1005,7 +1024,7 @@ class St extends S {
|
|
|
1005
1024
|
this.removeProcessedEvents(r), this.emitEventsQueue(e);
|
|
1006
1025
|
},
|
|
1007
1026
|
onFailure: () => {
|
|
1008
|
-
a("warn", "Events send failed,
|
|
1027
|
+
this.removeProcessedEvents(r), this.eventsQueue.length === 0 && this.clearSendInterval(), a("warn", "Events send failed, removed from queue and persisted for recovery on next page load", {
|
|
1009
1028
|
data: { eventCount: t.length }
|
|
1010
1029
|
});
|
|
1011
1030
|
}
|
|
@@ -1029,7 +1048,7 @@ class St extends S {
|
|
|
1029
1048
|
buildEventPayload(e) {
|
|
1030
1049
|
const t = e.type === u.SESSION_START, r = e.page_url ?? this.get("pageUrl");
|
|
1031
1050
|
return {
|
|
1032
|
-
id:
|
|
1051
|
+
id: it(),
|
|
1033
1052
|
type: e.type,
|
|
1034
1053
|
page_url: r,
|
|
1035
1054
|
timestamp: Date.now(),
|
|
@@ -1042,7 +1061,7 @@ class St extends S {
|
|
|
1042
1061
|
...e.error_data && { error_data: e.error_data },
|
|
1043
1062
|
...e.session_end_reason && { session_end_reason: e.session_end_reason },
|
|
1044
1063
|
...e.viewport_data && { viewport_data: e.viewport_data },
|
|
1045
|
-
...t &&
|
|
1064
|
+
...t && Te() && { utm: Te() }
|
|
1046
1065
|
};
|
|
1047
1066
|
}
|
|
1048
1067
|
/**
|
|
@@ -1167,11 +1186,11 @@ class _t {
|
|
|
1167
1186
|
const t = ze, r = e.getItem(t);
|
|
1168
1187
|
if (r)
|
|
1169
1188
|
return r;
|
|
1170
|
-
const s =
|
|
1189
|
+
const s = st();
|
|
1171
1190
|
return e.setItem(t, s), s;
|
|
1172
1191
|
}
|
|
1173
1192
|
}
|
|
1174
|
-
class
|
|
1193
|
+
class pt extends S {
|
|
1175
1194
|
storageManager;
|
|
1176
1195
|
eventManager;
|
|
1177
1196
|
projectId;
|
|
@@ -1338,7 +1357,7 @@ class Tt extends S {
|
|
|
1338
1357
|
this.clearSessionTimeout(), this.cleanupActivityListeners(), this.cleanupCrossTabSync(), this.cleanupLifecycleListeners(), this.isTracking = !1, this.set("hasStartSession", !1);
|
|
1339
1358
|
}
|
|
1340
1359
|
}
|
|
1341
|
-
class
|
|
1360
|
+
class It extends S {
|
|
1342
1361
|
eventManager;
|
|
1343
1362
|
storageManager;
|
|
1344
1363
|
sessionManager = null;
|
|
@@ -1357,7 +1376,7 @@ class pt extends S {
|
|
|
1357
1376
|
if (!t)
|
|
1358
1377
|
throw new Error("Cannot start session tracking: config not available");
|
|
1359
1378
|
try {
|
|
1360
|
-
this.sessionManager = new
|
|
1379
|
+
this.sessionManager = new pt(this.storageManager, this.eventManager, t), this.sessionManager.startTracking(), this.eventManager.flushPendingEvents();
|
|
1361
1380
|
} catch (r) {
|
|
1362
1381
|
if (this.sessionManager) {
|
|
1363
1382
|
try {
|
|
@@ -1382,7 +1401,7 @@ class pt extends S {
|
|
|
1382
1401
|
this.destroyed || (this.sessionManager && (this.sessionManager.destroy(), this.sessionManager = null), this.destroyed = !0, this.set("hasStartSession", !1));
|
|
1383
1402
|
}
|
|
1384
1403
|
}
|
|
1385
|
-
class
|
|
1404
|
+
class vt extends S {
|
|
1386
1405
|
eventManager;
|
|
1387
1406
|
onTrack;
|
|
1388
1407
|
originalPushState;
|
|
@@ -1440,10 +1459,11 @@ class It extends S {
|
|
|
1440
1459
|
};
|
|
1441
1460
|
}
|
|
1442
1461
|
}
|
|
1443
|
-
class
|
|
1462
|
+
class At extends S {
|
|
1444
1463
|
eventManager;
|
|
1445
|
-
clickHandler;
|
|
1446
1464
|
lastClickTimes = /* @__PURE__ */ new Map();
|
|
1465
|
+
clickHandler;
|
|
1466
|
+
lastPruneTime = 0;
|
|
1447
1467
|
constructor(e) {
|
|
1448
1468
|
super(), this.eventManager = e;
|
|
1449
1469
|
}
|
|
@@ -1461,9 +1481,9 @@ class vt extends S {
|
|
|
1461
1481
|
return;
|
|
1462
1482
|
const o = this.findTrackingElement(s), l = this.getRelevantClickElement(s), c = this.calculateClickCoordinates(t, s);
|
|
1463
1483
|
if (o) {
|
|
1464
|
-
const
|
|
1465
|
-
if (
|
|
1466
|
-
const g = this.createCustomEventData(
|
|
1484
|
+
const T = this.extractTrackingData(o);
|
|
1485
|
+
if (T) {
|
|
1486
|
+
const g = this.createCustomEventData(T);
|
|
1467
1487
|
this.eventManager.track({
|
|
1468
1488
|
type: u.CUSTOM,
|
|
1469
1489
|
custom_event: {
|
|
@@ -1481,17 +1501,19 @@ class vt extends S {
|
|
|
1481
1501
|
}, window.addEventListener("click", this.clickHandler, !0));
|
|
1482
1502
|
}
|
|
1483
1503
|
stopTracking() {
|
|
1484
|
-
this.clickHandler && (window.removeEventListener("click", this.clickHandler, !0), this.clickHandler = void 0), this.lastClickTimes.clear();
|
|
1504
|
+
this.clickHandler && (window.removeEventListener("click", this.clickHandler, !0), this.clickHandler = void 0), this.lastClickTimes.clear(), this.lastPruneTime = 0;
|
|
1485
1505
|
}
|
|
1486
1506
|
shouldIgnoreElement(e) {
|
|
1487
|
-
return e.hasAttribute(`${
|
|
1507
|
+
return e.hasAttribute(`${A}-ignore`) ? !0 : e.closest(`[${A}-ignore]`) !== null;
|
|
1488
1508
|
}
|
|
1489
1509
|
/**
|
|
1490
1510
|
* Checks per-element click throttling to prevent double-clicks and rapid spam
|
|
1491
1511
|
* Returns true if the click should be tracked, false if throttled
|
|
1492
1512
|
*/
|
|
1493
1513
|
checkClickThrottle(e, t) {
|
|
1494
|
-
const r = this.getElementSignature(e), s = Date.now()
|
|
1514
|
+
const r = this.getElementSignature(e), s = Date.now();
|
|
1515
|
+
this.pruneThrottleCache(s);
|
|
1516
|
+
const i = this.lastClickTimes.get(r);
|
|
1495
1517
|
return i !== void 0 && s - i < t ? (a("debug", "ClickHandler: Click suppressed by throttle", {
|
|
1496
1518
|
data: {
|
|
1497
1519
|
signature: r,
|
|
@@ -1499,6 +1521,30 @@ class vt extends S {
|
|
|
1499
1521
|
}
|
|
1500
1522
|
}), !1) : (this.lastClickTimes.set(r, s), !0);
|
|
1501
1523
|
}
|
|
1524
|
+
/**
|
|
1525
|
+
* Prunes stale entries from the throttle cache to prevent memory leaks
|
|
1526
|
+
* Uses TTL-based eviction (5 minutes) and enforces max size limit
|
|
1527
|
+
* Called during checkClickThrottle with built-in rate limiting (every 30 seconds)
|
|
1528
|
+
*/
|
|
1529
|
+
pruneThrottleCache(e) {
|
|
1530
|
+
if (e - this.lastPruneTime < 3e4)
|
|
1531
|
+
return;
|
|
1532
|
+
this.lastPruneTime = e;
|
|
1533
|
+
const t = e - 3e5;
|
|
1534
|
+
for (const [r, s] of this.lastClickTimes.entries())
|
|
1535
|
+
s < t && this.lastClickTimes.delete(r);
|
|
1536
|
+
if (this.lastClickTimes.size > 1e3) {
|
|
1537
|
+
const r = Array.from(this.lastClickTimes.entries()).sort((o, l) => o[1] - l[1]), s = this.lastClickTimes.size - 1e3, i = r.slice(0, s);
|
|
1538
|
+
for (const [o] of i)
|
|
1539
|
+
this.lastClickTimes.delete(o);
|
|
1540
|
+
a("debug", "ClickHandler: Pruned throttle cache", {
|
|
1541
|
+
data: {
|
|
1542
|
+
removed: i.length,
|
|
1543
|
+
remaining: this.lastClickTimes.size
|
|
1544
|
+
}
|
|
1545
|
+
});
|
|
1546
|
+
}
|
|
1547
|
+
}
|
|
1502
1548
|
/**
|
|
1503
1549
|
* Creates a stable signature for an element to track throttling
|
|
1504
1550
|
* Priority: id > data-testid > data-tlog-name > DOM path
|
|
@@ -1509,8 +1555,8 @@ class vt extends S {
|
|
|
1509
1555
|
const t = e.getAttribute("data-testid");
|
|
1510
1556
|
if (t)
|
|
1511
1557
|
return `[data-testid="${t}"]`;
|
|
1512
|
-
const r = e.getAttribute(`${
|
|
1513
|
-
return r ? `[${
|
|
1558
|
+
const r = e.getAttribute(`${A}-name`);
|
|
1559
|
+
return r ? `[${A}-name="${r}"]` : this.getElementPath(e);
|
|
1514
1560
|
}
|
|
1515
1561
|
/**
|
|
1516
1562
|
* Generates a DOM path for an element (e.g., "body>div>button")
|
|
@@ -1529,10 +1575,10 @@ class vt extends S {
|
|
|
1529
1575
|
return t.join(">") || "unknown";
|
|
1530
1576
|
}
|
|
1531
1577
|
findTrackingElement(e) {
|
|
1532
|
-
return e.hasAttribute(`${
|
|
1578
|
+
return e.hasAttribute(`${A}-name`) ? e : e.closest(`[${A}-name]`);
|
|
1533
1579
|
}
|
|
1534
1580
|
getRelevantClickElement(e) {
|
|
1535
|
-
for (const t of
|
|
1581
|
+
for (const t of He)
|
|
1536
1582
|
try {
|
|
1537
1583
|
if (e.matches(t))
|
|
1538
1584
|
return e;
|
|
@@ -1553,7 +1599,7 @@ class vt extends S {
|
|
|
1553
1599
|
return { x: s, y: i, relativeX: o, relativeY: l };
|
|
1554
1600
|
}
|
|
1555
1601
|
extractTrackingData(e) {
|
|
1556
|
-
const t = e.getAttribute(`${
|
|
1602
|
+
const t = e.getAttribute(`${A}-name`), r = e.getAttribute(`${A}-value`);
|
|
1557
1603
|
if (t)
|
|
1558
1604
|
return {
|
|
1559
1605
|
element: e,
|
|
@@ -1621,15 +1667,14 @@ class vt extends S {
|
|
|
1621
1667
|
};
|
|
1622
1668
|
}
|
|
1623
1669
|
}
|
|
1624
|
-
class
|
|
1670
|
+
class wt extends S {
|
|
1625
1671
|
eventManager;
|
|
1626
1672
|
containers = [];
|
|
1627
1673
|
limitWarningLogged = !1;
|
|
1628
1674
|
minDepthChange = 5;
|
|
1629
1675
|
minIntervalMs = 500;
|
|
1630
1676
|
maxEventsPerSession = 120;
|
|
1631
|
-
|
|
1632
|
-
retryTimeoutId = null;
|
|
1677
|
+
containerDiscoveryTimeoutId = null;
|
|
1633
1678
|
constructor(e) {
|
|
1634
1679
|
super(), this.eventManager = e;
|
|
1635
1680
|
}
|
|
@@ -1637,14 +1682,14 @@ class At extends S {
|
|
|
1637
1682
|
this.limitWarningLogged = !1, this.applyConfigOverrides(), this.set("scrollEventCount", 0), this.tryDetectScrollContainers(0);
|
|
1638
1683
|
}
|
|
1639
1684
|
stopTracking() {
|
|
1640
|
-
this.
|
|
1685
|
+
this.containerDiscoveryTimeoutId !== null && (clearTimeout(this.containerDiscoveryTimeoutId), this.containerDiscoveryTimeoutId = null);
|
|
1641
1686
|
for (const e of this.containers)
|
|
1642
|
-
this.clearContainerTimer(e), e.element
|
|
1643
|
-
this.containers.length = 0, this.set("scrollEventCount", 0), this.limitWarningLogged = !1
|
|
1687
|
+
this.clearContainerTimer(e), e.element === window ? window.removeEventListener("scroll", e.listener) : e.element.removeEventListener("scroll", e.listener);
|
|
1688
|
+
this.containers.length = 0, this.set("scrollEventCount", 0), this.limitWarningLogged = !1;
|
|
1644
1689
|
}
|
|
1645
1690
|
tryDetectScrollContainers(e) {
|
|
1646
1691
|
const t = this.findScrollableElements();
|
|
1647
|
-
if (t.length > 0) {
|
|
1692
|
+
if (this.isWindowScrollable() && this.setupScrollContainer(window, "window"), t.length > 0) {
|
|
1648
1693
|
for (const r of t) {
|
|
1649
1694
|
const s = this.getElementSelector(r);
|
|
1650
1695
|
this.setupScrollContainer(r, s);
|
|
@@ -1653,8 +1698,8 @@ class At extends S {
|
|
|
1653
1698
|
return;
|
|
1654
1699
|
}
|
|
1655
1700
|
if (e < 5) {
|
|
1656
|
-
this.
|
|
1657
|
-
this.
|
|
1701
|
+
this.containerDiscoveryTimeoutId = window.setTimeout(() => {
|
|
1702
|
+
this.containerDiscoveryTimeoutId = null, this.tryDetectScrollContainers(e + 1);
|
|
1658
1703
|
}, 200);
|
|
1659
1704
|
return;
|
|
1660
1705
|
}
|
|
@@ -1702,32 +1747,33 @@ class At extends S {
|
|
|
1702
1747
|
setupScrollContainer(e, t) {
|
|
1703
1748
|
if (this.containers.some((d) => d.element === e) || e !== window && !this.isElementScrollable(e))
|
|
1704
1749
|
return;
|
|
1705
|
-
const s = ()
|
|
1706
|
-
|
|
1707
|
-
const d = this.calculateScrollData(c);
|
|
1708
|
-
if (d) {
|
|
1709
|
-
const _ = Date.now();
|
|
1710
|
-
this.processScrollEvent(c, d, _);
|
|
1711
|
-
}
|
|
1712
|
-
c.debounceTimer = null;
|
|
1713
|
-
}, 250));
|
|
1714
|
-
}, i = this.getScrollTop(e), o = this.calculateScrollDepth(
|
|
1715
|
-
i,
|
|
1750
|
+
const s = this.getScrollTop(e), i = this.calculateScrollDepth(
|
|
1751
|
+
s,
|
|
1716
1752
|
this.getScrollHeight(e),
|
|
1717
1753
|
this.getViewportHeight(e)
|
|
1718
|
-
),
|
|
1754
|
+
), o = this.determineIfPrimary(e), l = {
|
|
1719
1755
|
element: e,
|
|
1720
1756
|
selector: t,
|
|
1721
|
-
isPrimary:
|
|
1722
|
-
lastScrollPos:
|
|
1723
|
-
lastDepth:
|
|
1724
|
-
lastDirection:
|
|
1757
|
+
isPrimary: o,
|
|
1758
|
+
lastScrollPos: s,
|
|
1759
|
+
lastDepth: i,
|
|
1760
|
+
lastDirection: U.DOWN,
|
|
1725
1761
|
lastEventTime: 0,
|
|
1726
|
-
|
|
1762
|
+
firstScrollEventTime: null,
|
|
1763
|
+
maxDepthReached: i,
|
|
1727
1764
|
debounceTimer: null,
|
|
1728
|
-
listener:
|
|
1765
|
+
listener: null
|
|
1766
|
+
}, c = () => {
|
|
1767
|
+
this.get("suppressNextScroll") || (l.firstScrollEventTime === null && (l.firstScrollEventTime = Date.now()), this.clearContainerTimer(l), l.debounceTimer = window.setTimeout(() => {
|
|
1768
|
+
const d = this.calculateScrollData(l);
|
|
1769
|
+
if (d) {
|
|
1770
|
+
const T = Date.now();
|
|
1771
|
+
this.processScrollEvent(l, d, T);
|
|
1772
|
+
}
|
|
1773
|
+
l.debounceTimer = null;
|
|
1774
|
+
}, 250));
|
|
1729
1775
|
};
|
|
1730
|
-
this.containers.push(
|
|
1776
|
+
l.listener = c, this.containers.push(l), e === window ? window.addEventListener("scroll", c, { passive: !0 }) : e.addEventListener("scroll", c, { passive: !0 });
|
|
1731
1777
|
}
|
|
1732
1778
|
processScrollEvent(e, t, r) {
|
|
1733
1779
|
if (!this.shouldEmitScrollEvent(e, t, r))
|
|
@@ -1764,13 +1810,13 @@ class At extends S {
|
|
|
1764
1810
|
this.minDepthChange = 5, this.minIntervalMs = 500, this.maxEventsPerSession = 120;
|
|
1765
1811
|
}
|
|
1766
1812
|
isWindowScrollable() {
|
|
1767
|
-
return
|
|
1813
|
+
return document.documentElement.scrollHeight > window.innerHeight;
|
|
1768
1814
|
}
|
|
1769
1815
|
clearContainerTimer(e) {
|
|
1770
1816
|
e.debounceTimer !== null && (clearTimeout(e.debounceTimer), e.debounceTimer = null);
|
|
1771
1817
|
}
|
|
1772
1818
|
getScrollDirection(e, t) {
|
|
1773
|
-
return e > t ?
|
|
1819
|
+
return e > t ? U.DOWN : U.UP;
|
|
1774
1820
|
}
|
|
1775
1821
|
calculateScrollDepth(e, t, r) {
|
|
1776
1822
|
if (t <= r)
|
|
@@ -1782,25 +1828,28 @@ class At extends S {
|
|
|
1782
1828
|
const { element: t, lastScrollPos: r, lastEventTime: s } = e, i = this.getScrollTop(t), o = Date.now(), l = Math.abs(i - r);
|
|
1783
1829
|
if (l < 10 || t === window && !this.isWindowScrollable())
|
|
1784
1830
|
return null;
|
|
1785
|
-
const c = this.getViewportHeight(t), d = this.getScrollHeight(t),
|
|
1831
|
+
const c = this.getViewportHeight(t), d = this.getScrollHeight(t), T = this.getScrollDirection(i, r), g = this.calculateScrollDepth(i, d, c);
|
|
1832
|
+
let v;
|
|
1833
|
+
s > 0 ? v = o - s : e.firstScrollEventTime !== null ? v = o - e.firstScrollEventTime : v = 250;
|
|
1834
|
+
const m = Math.round(l / v * 1e3);
|
|
1786
1835
|
return g > e.maxDepthReached && (e.maxDepthReached = g), e.lastScrollPos = i, {
|
|
1787
1836
|
depth: g,
|
|
1788
|
-
direction:
|
|
1837
|
+
direction: T,
|
|
1789
1838
|
velocity: m,
|
|
1790
1839
|
max_depth_reached: e.maxDepthReached
|
|
1791
1840
|
};
|
|
1792
1841
|
}
|
|
1793
1842
|
getScrollTop(e) {
|
|
1794
|
-
return e
|
|
1843
|
+
return e === window ? window.scrollY : e.scrollTop;
|
|
1795
1844
|
}
|
|
1796
1845
|
getViewportHeight(e) {
|
|
1797
|
-
return e
|
|
1846
|
+
return e === window ? window.innerHeight : e.clientHeight;
|
|
1798
1847
|
}
|
|
1799
1848
|
getScrollHeight(e) {
|
|
1800
|
-
return e
|
|
1849
|
+
return e === window ? document.documentElement.scrollHeight : e.scrollHeight;
|
|
1801
1850
|
}
|
|
1802
1851
|
isElementScrollable(e) {
|
|
1803
|
-
const t = getComputedStyle(e), r = t.overflowY === "auto" || t.overflowY === "scroll" || t.
|
|
1852
|
+
const t = getComputedStyle(e), r = t.overflowY === "auto" || t.overflowY === "scroll" || t.overflow === "auto" || t.overflow === "scroll", s = e.scrollHeight > e.clientHeight;
|
|
1804
1853
|
return r && s;
|
|
1805
1854
|
}
|
|
1806
1855
|
applyPrimaryScrollSelector(e) {
|
|
@@ -1823,7 +1872,7 @@ class At extends S {
|
|
|
1823
1872
|
e.isPrimary = t;
|
|
1824
1873
|
}
|
|
1825
1874
|
}
|
|
1826
|
-
class
|
|
1875
|
+
class yt extends S {
|
|
1827
1876
|
eventManager;
|
|
1828
1877
|
trackedElements = /* @__PURE__ */ new Map();
|
|
1829
1878
|
observer = null;
|
|
@@ -1887,7 +1936,7 @@ class wt extends S {
|
|
|
1887
1936
|
});
|
|
1888
1937
|
return;
|
|
1889
1938
|
}
|
|
1890
|
-
i.hasAttribute(`${
|
|
1939
|
+
i.hasAttribute(`${A}-ignore`) || this.trackedElements.has(i) || (this.trackedElements.set(i, {
|
|
1891
1940
|
element: i,
|
|
1892
1941
|
selector: r.selector,
|
|
1893
1942
|
id: r.id,
|
|
@@ -1913,7 +1962,8 @@ class wt extends S {
|
|
|
1913
1962
|
for (const r of e) {
|
|
1914
1963
|
const s = this.trackedElements.get(r.target);
|
|
1915
1964
|
s && (r.isIntersecting ? s.startTime === null && (s.startTime = performance.now(), s.timeoutId = window.setTimeout(() => {
|
|
1916
|
-
|
|
1965
|
+
const i = Math.round(r.intersectionRatio * 100) / 100;
|
|
1966
|
+
this.fireViewportEvent(s, i);
|
|
1917
1967
|
}, t)) : s.startTime !== null && (s.timeoutId !== null && (window.clearTimeout(s.timeoutId), s.timeoutId = null), s.startTime = null));
|
|
1918
1968
|
}
|
|
1919
1969
|
};
|
|
@@ -1983,7 +2033,7 @@ class wt extends S {
|
|
|
1983
2033
|
});
|
|
1984
2034
|
}
|
|
1985
2035
|
}
|
|
1986
|
-
class
|
|
2036
|
+
class Lt extends S {
|
|
1987
2037
|
isInitialized = !1;
|
|
1988
2038
|
async initialize() {
|
|
1989
2039
|
if (this.isInitialized)
|
|
@@ -2039,7 +2089,7 @@ class yt extends S {
|
|
|
2039
2089
|
`, document.head.appendChild(r);
|
|
2040
2090
|
}
|
|
2041
2091
|
}
|
|
2042
|
-
class
|
|
2092
|
+
class Mt {
|
|
2043
2093
|
storage;
|
|
2044
2094
|
sessionStorageRef;
|
|
2045
2095
|
fallbackStorage = /* @__PURE__ */ new Map();
|
|
@@ -2217,12 +2267,14 @@ class Lt {
|
|
|
2217
2267
|
this.fallbackSessionStorage.delete(e);
|
|
2218
2268
|
}
|
|
2219
2269
|
}
|
|
2220
|
-
class
|
|
2270
|
+
class Nt extends S {
|
|
2221
2271
|
eventManager;
|
|
2222
2272
|
reportedByNav = /* @__PURE__ */ new Map();
|
|
2273
|
+
navigationHistory = [];
|
|
2274
|
+
// FIFO queue for tracking navigation order
|
|
2223
2275
|
observers = [];
|
|
2224
|
-
lastLongTaskSentAt = 0;
|
|
2225
2276
|
vitalThresholds = ye;
|
|
2277
|
+
lastLongTaskSentAt = 0;
|
|
2226
2278
|
constructor(e) {
|
|
2227
2279
|
super(), this.eventManager = e;
|
|
2228
2280
|
}
|
|
@@ -2236,7 +2288,7 @@ class Mt extends S {
|
|
|
2236
2288
|
} catch (r) {
|
|
2237
2289
|
a("warn", "Failed to disconnect performance observer", { error: r, data: { observerIndex: t } });
|
|
2238
2290
|
}
|
|
2239
|
-
}), this.observers.length = 0, this.reportedByNav.clear();
|
|
2291
|
+
}), this.observers.length = 0, this.reportedByNav.clear(), this.navigationHistory.length = 0;
|
|
2240
2292
|
}
|
|
2241
2293
|
observeWebVitalsFallback() {
|
|
2242
2294
|
this.reportTTFB(), this.safeObserve(
|
|
@@ -2288,7 +2340,7 @@ class Mt extends S {
|
|
|
2288
2340
|
}
|
|
2289
2341
|
async initWebVitals() {
|
|
2290
2342
|
try {
|
|
2291
|
-
const { onLCP: e, onCLS: t, onFCP: r, onTTFB: s, onINP: i } = await Promise.resolve().then(() =>
|
|
2343
|
+
const { onLCP: e, onCLS: t, onFCP: r, onTTFB: s, onINP: i } = await Promise.resolve().then(() => jt), o = (l) => (c) => {
|
|
2292
2344
|
const d = Number(c.value.toFixed(2));
|
|
2293
2345
|
this.sendVital({ type: l, value: d });
|
|
2294
2346
|
};
|
|
@@ -2329,7 +2381,12 @@ class Mt extends S {
|
|
|
2329
2381
|
const r = this.reportedByNav.get(t);
|
|
2330
2382
|
if (r?.has(e.type))
|
|
2331
2383
|
return;
|
|
2332
|
-
|
|
2384
|
+
if (r)
|
|
2385
|
+
r.add(e.type);
|
|
2386
|
+
else if (this.reportedByNav.set(t, /* @__PURE__ */ new Set([e.type])), this.navigationHistory.push(t), this.navigationHistory.length > qe) {
|
|
2387
|
+
const i = this.navigationHistory.shift();
|
|
2388
|
+
i && this.reportedByNav.delete(i);
|
|
2389
|
+
}
|
|
2333
2390
|
}
|
|
2334
2391
|
this.trackWebVital(e.type, e.value);
|
|
2335
2392
|
}
|
|
@@ -2396,7 +2453,7 @@ class Mt extends S {
|
|
|
2396
2453
|
return !(typeof r == "number" && t <= r);
|
|
2397
2454
|
}
|
|
2398
2455
|
}
|
|
2399
|
-
class
|
|
2456
|
+
class Rt extends S {
|
|
2400
2457
|
eventManager;
|
|
2401
2458
|
recentErrors = /* @__PURE__ */ new Map();
|
|
2402
2459
|
errorBurstCounter = 0;
|
|
@@ -2419,7 +2476,7 @@ class Nt extends S {
|
|
|
2419
2476
|
const e = Date.now();
|
|
2420
2477
|
if (e < this.burstBackoffUntil)
|
|
2421
2478
|
return !1;
|
|
2422
|
-
if (e - this.burstWindowStart >
|
|
2479
|
+
if (e - this.burstWindowStart > Je && (this.errorBurstCounter = 0, this.burstWindowStart = e), this.errorBurstCounter++, this.errorBurstCounter > et)
|
|
2423
2480
|
return this.burstBackoffUntil = e + me, a("warn", "Error burst detected - entering cooldown", {
|
|
2424
2481
|
data: {
|
|
2425
2482
|
errorsInWindow: this.errorBurstCounter,
|
|
@@ -2479,7 +2536,7 @@ class Nt extends S {
|
|
|
2479
2536
|
}
|
|
2480
2537
|
shouldSuppressError(e, t) {
|
|
2481
2538
|
const r = Date.now(), s = `${e}:${t}`, i = this.recentErrors.get(s);
|
|
2482
|
-
return i && r - i < ge ? (this.recentErrors.set(s, r), !0) : (this.recentErrors.set(s, r), this.recentErrors.size >
|
|
2539
|
+
return i && r - i < ge ? (this.recentErrors.set(s, r), !0) : (this.recentErrors.set(s, r), this.recentErrors.size > Ze ? (this.recentErrors.clear(), this.recentErrors.set(s, r), !1) : (this.recentErrors.size > x && this.pruneOldErrors(), !1));
|
|
2483
2540
|
}
|
|
2484
2541
|
pruneOldErrors() {
|
|
2485
2542
|
const e = Date.now();
|
|
@@ -2494,10 +2551,10 @@ class Nt extends S {
|
|
|
2494
2551
|
}
|
|
2495
2552
|
}
|
|
2496
2553
|
}
|
|
2497
|
-
class
|
|
2554
|
+
class Ot extends S {
|
|
2498
2555
|
isInitialized = !1;
|
|
2499
2556
|
suppressNextScrollTimer = null;
|
|
2500
|
-
emitter = new
|
|
2557
|
+
emitter = new mt();
|
|
2501
2558
|
managers = {};
|
|
2502
2559
|
handlers = {};
|
|
2503
2560
|
integrations = {};
|
|
@@ -2506,9 +2563,9 @@ class Rt extends S {
|
|
|
2506
2563
|
}
|
|
2507
2564
|
async init(e = {}) {
|
|
2508
2565
|
if (!this.isInitialized) {
|
|
2509
|
-
this.managers.storage = new
|
|
2566
|
+
this.managers.storage = new Mt();
|
|
2510
2567
|
try {
|
|
2511
|
-
this.setupState(e), await this.setupIntegrations(), this.managers.event = new
|
|
2568
|
+
this.setupState(e), await this.setupIntegrations(), this.managers.event = new Tt(this.managers.storage, this.integrations.googleAnalytics, this.emitter), this.initializeHandlers(), await this.managers.event.recoverPersistedEvents().catch((t) => {
|
|
2512
2569
|
a("warn", "Failed to recover persisted events", { error: t });
|
|
2513
2570
|
}), this.isInitialized = !0;
|
|
2514
2571
|
} catch (t) {
|
|
@@ -2521,7 +2578,7 @@ class Rt extends S {
|
|
|
2521
2578
|
sendCustomEvent(e, t) {
|
|
2522
2579
|
if (!this.managers.event)
|
|
2523
2580
|
return;
|
|
2524
|
-
const { valid: r, error: s, sanitizedMetadata: i } =
|
|
2581
|
+
const { valid: r, error: s, sanitizedMetadata: i } = gt(e, t);
|
|
2525
2582
|
if (!r) {
|
|
2526
2583
|
if (this.get("mode") === D.QA)
|
|
2527
2584
|
throw new Error(`[TraceLog] Custom event "${e}" validation failed: ${s}`);
|
|
@@ -2554,25 +2611,25 @@ class Rt extends S {
|
|
|
2554
2611
|
this.set("config", e);
|
|
2555
2612
|
const t = _t.getId(this.managers.storage);
|
|
2556
2613
|
this.set("userId", t);
|
|
2557
|
-
const r =
|
|
2614
|
+
const r = ot(e);
|
|
2558
2615
|
this.set("collectApiUrl", r);
|
|
2559
2616
|
const s = $e();
|
|
2560
2617
|
this.set("device", s);
|
|
2561
2618
|
const i = ee(window.location.href, e.sensitiveQueryParams);
|
|
2562
2619
|
this.set("pageUrl", i);
|
|
2563
|
-
const o =
|
|
2620
|
+
const o = nt() ? D.QA : void 0;
|
|
2564
2621
|
o && this.set("mode", o);
|
|
2565
2622
|
}
|
|
2566
2623
|
async setupIntegrations() {
|
|
2567
2624
|
if (this.get("config").integrations?.googleAnalytics?.measurementId?.trim())
|
|
2568
2625
|
try {
|
|
2569
|
-
this.integrations.googleAnalytics = new
|
|
2626
|
+
this.integrations.googleAnalytics = new Lt(), await this.integrations.googleAnalytics.initialize();
|
|
2570
2627
|
} catch {
|
|
2571
2628
|
this.integrations.googleAnalytics = void 0;
|
|
2572
2629
|
}
|
|
2573
2630
|
}
|
|
2574
2631
|
initializeHandlers() {
|
|
2575
|
-
this.handlers.session = new
|
|
2632
|
+
this.handlers.session = new It(
|
|
2576
2633
|
this.managers.storage,
|
|
2577
2634
|
this.managers.event
|
|
2578
2635
|
), this.handlers.session.startTracking();
|
|
@@ -2581,18 +2638,18 @@ class Rt extends S {
|
|
|
2581
2638
|
this.set("suppressNextScroll", !1);
|
|
2582
2639
|
}, 500);
|
|
2583
2640
|
};
|
|
2584
|
-
this.handlers.pageView = new
|
|
2641
|
+
this.handlers.pageView = new vt(this.managers.event, e), this.handlers.pageView.startTracking(), this.handlers.click = new At(this.managers.event), this.handlers.click.startTracking(), this.handlers.scroll = new wt(this.managers.event), this.handlers.scroll.startTracking(), this.handlers.performance = new Nt(this.managers.event), this.handlers.performance.startTracking().catch((t) => {
|
|
2585
2642
|
a("warn", "Failed to start performance tracking", { error: t });
|
|
2586
|
-
}), this.handlers.error = new
|
|
2643
|
+
}), this.handlers.error = new Rt(this.managers.event), this.handlers.error.startTracking(), this.get("config").viewport && (this.handlers.viewport = new yt(this.managers.event), this.handlers.viewport.startTracking());
|
|
2587
2644
|
}
|
|
2588
2645
|
}
|
|
2589
2646
|
const N = [];
|
|
2590
2647
|
let E = null, C = !1, F = !1;
|
|
2591
|
-
const
|
|
2648
|
+
const Ct = async (n) => {
|
|
2592
2649
|
if (!(typeof window > "u" || typeof document > "u") && !window.__traceLogDisabled && !E && !C) {
|
|
2593
2650
|
C = !0;
|
|
2594
2651
|
try {
|
|
2595
|
-
const e =
|
|
2652
|
+
const e = dt(n ?? {}), t = new Ot();
|
|
2596
2653
|
try {
|
|
2597
2654
|
N.forEach(({ event: i, callback: o }) => {
|
|
2598
2655
|
t.on(i, o);
|
|
@@ -2617,7 +2674,7 @@ const Ot = async (n) => {
|
|
|
2617
2674
|
C = !1;
|
|
2618
2675
|
}
|
|
2619
2676
|
}
|
|
2620
|
-
},
|
|
2677
|
+
}, bt = (n, e) => {
|
|
2621
2678
|
if (!(typeof window > "u" || typeof document > "u")) {
|
|
2622
2679
|
if (!E)
|
|
2623
2680
|
throw new Error("[TraceLog] TraceLog not initialized. Please call init() first.");
|
|
@@ -2625,7 +2682,7 @@ const Ot = async (n) => {
|
|
|
2625
2682
|
throw new Error("[TraceLog] Cannot send events while TraceLog is being destroyed");
|
|
2626
2683
|
E.sendCustomEvent(n, e);
|
|
2627
2684
|
}
|
|
2628
|
-
},
|
|
2685
|
+
}, Pt = (n, e) => {
|
|
2629
2686
|
if (!(typeof window > "u" || typeof document > "u")) {
|
|
2630
2687
|
if (!E || C) {
|
|
2631
2688
|
N.push({ event: n, callback: e });
|
|
@@ -2633,7 +2690,7 @@ const Ot = async (n) => {
|
|
|
2633
2690
|
}
|
|
2634
2691
|
E.on(n, e);
|
|
2635
2692
|
}
|
|
2636
|
-
},
|
|
2693
|
+
}, Dt = (n, e) => {
|
|
2637
2694
|
if (!(typeof window > "u" || typeof document > "u")) {
|
|
2638
2695
|
if (!E) {
|
|
2639
2696
|
const t = N.findIndex((r) => r.event === n && r.callback === e);
|
|
@@ -2642,7 +2699,7 @@ const Ot = async (n) => {
|
|
|
2642
2699
|
}
|
|
2643
2700
|
E.off(n, e);
|
|
2644
2701
|
}
|
|
2645
|
-
},
|
|
2702
|
+
}, Vt = () => typeof window > "u" || typeof document > "u" ? !1 : E !== null, kt = () => {
|
|
2646
2703
|
if (!(typeof window > "u" || typeof document > "u")) {
|
|
2647
2704
|
if (F)
|
|
2648
2705
|
throw new Error("[TraceLog] Destroy operation already in progress");
|
|
@@ -2657,13 +2714,13 @@ const Ot = async (n) => {
|
|
|
2657
2714
|
F = !1;
|
|
2658
2715
|
}
|
|
2659
2716
|
}
|
|
2660
|
-
},
|
|
2717
|
+
}, ar = {
|
|
2661
2718
|
WEB_VITALS_THRESHOLDS: ye
|
|
2662
2719
|
// Business thresholds for performance analysis
|
|
2663
|
-
},
|
|
2720
|
+
}, lr = {
|
|
2664
2721
|
PII_PATTERNS: le
|
|
2665
2722
|
// Patterns for sensitive data protection
|
|
2666
|
-
},
|
|
2723
|
+
}, cr = {
|
|
2667
2724
|
LOW_ACTIVITY_EVENT_COUNT: 50,
|
|
2668
2725
|
HIGH_ACTIVITY_EVENT_COUNT: 1e3,
|
|
2669
2726
|
MIN_EVENTS_FOR_DYNAMIC_CALCULATION: 100,
|
|
@@ -2673,7 +2730,7 @@ const Ot = async (n) => {
|
|
|
2673
2730
|
MIN_ENGAGED_SESSION_DURATION_MS: 30 * 1e3,
|
|
2674
2731
|
MIN_SCROLL_DEPTH_ENGAGEMENT: 25
|
|
2675
2732
|
// 25% scroll depth for engagement
|
|
2676
|
-
},
|
|
2733
|
+
}, ur = {
|
|
2677
2734
|
INACTIVITY_TIMEOUT_MS: 1800 * 1e3,
|
|
2678
2735
|
// 30min for analytics (vs 15min client)
|
|
2679
2736
|
SHORT_SESSION_THRESHOLD_MS: 30 * 1e3,
|
|
@@ -2681,20 +2738,20 @@ const Ot = async (n) => {
|
|
|
2681
2738
|
LONG_SESSION_THRESHOLD_MS: 1800 * 1e3,
|
|
2682
2739
|
MAX_REALISTIC_SESSION_DURATION_MS: 480 * 60 * 1e3
|
|
2683
2740
|
// Filter outliers
|
|
2684
|
-
},
|
|
2741
|
+
}, dr = {
|
|
2685
2742
|
MOBILE_MAX_WIDTH: 768,
|
|
2686
2743
|
TABLET_MAX_WIDTH: 1024,
|
|
2687
2744
|
MOBILE_PERFORMANCE_FACTOR: 1.5,
|
|
2688
2745
|
// Mobile typically 1.5x slower
|
|
2689
2746
|
TABLET_PERFORMANCE_FACTOR: 1.2
|
|
2690
|
-
},
|
|
2747
|
+
}, hr = {
|
|
2691
2748
|
MIN_TEXT_LENGTH_FOR_ANALYSIS: 10,
|
|
2692
2749
|
MIN_CLICKS_FOR_HOT_ELEMENT: 10,
|
|
2693
2750
|
// Popular element threshold
|
|
2694
2751
|
MIN_SCROLL_COMPLETION_PERCENT: 80,
|
|
2695
2752
|
// Page consumption threshold
|
|
2696
2753
|
MIN_TIME_ON_PAGE_FOR_READ_MS: 15 * 1e3
|
|
2697
|
-
},
|
|
2754
|
+
}, fr = {
|
|
2698
2755
|
SIGNIFICANT_CHANGE_PERCENT: 20,
|
|
2699
2756
|
MAJOR_CHANGE_PERCENT: 50,
|
|
2700
2757
|
MIN_EVENTS_FOR_INSIGHT: 100,
|
|
@@ -2704,19 +2761,19 @@ const Ot = async (n) => {
|
|
|
2704
2761
|
LOW_ERROR_RATE_PERCENT: 1,
|
|
2705
2762
|
HIGH_ERROR_RATE_PERCENT: 5,
|
|
2706
2763
|
CRITICAL_ERROR_RATE_PERCENT: 10
|
|
2707
|
-
},
|
|
2764
|
+
}, Er = {
|
|
2708
2765
|
SHORT_TERM_TREND_HOURS: 24,
|
|
2709
2766
|
MEDIUM_TERM_TREND_DAYS: 7,
|
|
2710
2767
|
LONG_TERM_TREND_DAYS: 30,
|
|
2711
2768
|
MIN_DATA_POINTS_FOR_TREND: 5,
|
|
2712
2769
|
WEEKLY_PATTERN_MIN_WEEKS: 4,
|
|
2713
2770
|
DAILY_PATTERN_MIN_DAYS: 14
|
|
2714
|
-
},
|
|
2771
|
+
}, gr = {
|
|
2715
2772
|
MIN_SEGMENT_SIZE: 10,
|
|
2716
2773
|
MIN_COHORT_SIZE: 5,
|
|
2717
2774
|
COHORT_ANALYSIS_DAYS: [1, 3, 7, 14, 30],
|
|
2718
2775
|
MIN_FUNNEL_EVENTS: 20
|
|
2719
|
-
},
|
|
2776
|
+
}, mr = {
|
|
2720
2777
|
DEFAULT_EVENTS_LIMIT: 5,
|
|
2721
2778
|
DEFAULT_SESSIONS_LIMIT: 5,
|
|
2722
2779
|
DEFAULT_PAGES_LIMIT: 5,
|
|
@@ -2724,23 +2781,23 @@ const Ot = async (n) => {
|
|
|
2724
2781
|
MAX_TIME_RANGE_DAYS: 365,
|
|
2725
2782
|
ANALYTICS_BATCH_SIZE: 1e3
|
|
2726
2783
|
// For historical analysis
|
|
2727
|
-
},
|
|
2784
|
+
}, Sr = {
|
|
2728
2785
|
ANOMALY_THRESHOLD_SIGMA: 2.5,
|
|
2729
2786
|
STRONG_ANOMALY_THRESHOLD_SIGMA: 3,
|
|
2730
2787
|
TRAFFIC_DROP_ALERT_PERCENT: -30,
|
|
2731
2788
|
TRAFFIC_SPIKE_ALERT_PERCENT: 200,
|
|
2732
2789
|
MIN_BASELINE_DAYS: 7,
|
|
2733
2790
|
MIN_EVENTS_FOR_ANOMALY_DETECTION: 50
|
|
2734
|
-
},
|
|
2791
|
+
}, Tr = {
|
|
2735
2792
|
PAGE_URL_EXCLUDED: "excluded",
|
|
2736
2793
|
PAGE_URL_UNKNOWN: "unknown"
|
|
2737
2794
|
}, _r = {
|
|
2738
|
-
init:
|
|
2739
|
-
event:
|
|
2740
|
-
on:
|
|
2741
|
-
off:
|
|
2742
|
-
isInitialized:
|
|
2743
|
-
destroy:
|
|
2795
|
+
init: Ct,
|
|
2796
|
+
event: bt,
|
|
2797
|
+
on: Pt,
|
|
2798
|
+
off: Dt,
|
|
2799
|
+
isInitialized: Vt,
|
|
2800
|
+
destroy: kt
|
|
2744
2801
|
};
|
|
2745
2802
|
var re, Ne = -1, b = function(n) {
|
|
2746
2803
|
addEventListener("pageshow", (function(e) {
|
|
@@ -2792,10 +2849,10 @@ var re, Ne = -1, b = function(n) {
|
|
|
2792
2849
|
}, O = -1, ve = function() {
|
|
2793
2850
|
return document.visibilityState !== "hidden" || document.prerendering ? 1 / 0 : 0;
|
|
2794
2851
|
}, W = function(n) {
|
|
2795
|
-
document.visibilityState === "hidden" && O > -1 && (O = n.type === "visibilitychange" ? n.timeStamp : 0,
|
|
2852
|
+
document.visibilityState === "hidden" && O > -1 && (O = n.type === "visibilitychange" ? n.timeStamp : 0, Ht());
|
|
2796
2853
|
}, Ae = function() {
|
|
2797
2854
|
addEventListener("visibilitychange", W, !0), addEventListener("prerenderingchange", W, !0);
|
|
2798
|
-
},
|
|
2855
|
+
}, Ht = function() {
|
|
2799
2856
|
removeEventListener("visibilitychange", W, !0), removeEventListener("prerenderingchange", W, !0);
|
|
2800
2857
|
}, Re = function() {
|
|
2801
2858
|
return O < 0 && (O = ve(), Ae(), b((function() {
|
|
@@ -2827,8 +2884,8 @@ var re, Ne = -1, b = function(n) {
|
|
|
2827
2884
|
var t, r = p("CLS", 0), s = 0, i = [], o = function(c) {
|
|
2828
2885
|
c.forEach((function(d) {
|
|
2829
2886
|
if (!d.hadRecentInput) {
|
|
2830
|
-
var
|
|
2831
|
-
s && d.startTime - g.startTime < 1e3 && d.startTime -
|
|
2887
|
+
var T = i[0], g = i[i.length - 1];
|
|
2888
|
+
s && d.startTime - g.startTime < 1e3 && d.startTime - T.startTime < 5e3 ? (s += d.value, i.push(d)) : (s = d.value, i = [d]);
|
|
2832
2889
|
}
|
|
2833
2890
|
})), s > r.value && (r.value = s, r.entries = i, t());
|
|
2834
2891
|
}, l = k("layout-shift", o);
|
|
@@ -2840,31 +2897,31 @@ var re, Ne = -1, b = function(n) {
|
|
|
2840
2897
|
}));
|
|
2841
2898
|
})), setTimeout(t, 0));
|
|
2842
2899
|
})));
|
|
2843
|
-
}, Ce = 0, Y = 1 / 0,
|
|
2900
|
+
}, Ce = 0, Y = 1 / 0, H = 0, xt = function(n) {
|
|
2844
2901
|
n.forEach((function(e) {
|
|
2845
|
-
e.interactionId && (Y = Math.min(Y, e.interactionId),
|
|
2902
|
+
e.interactionId && (Y = Math.min(Y, e.interactionId), H = Math.max(H, e.interactionId), Ce = H ? (H - Y) / 7 + 1 : 0);
|
|
2846
2903
|
}));
|
|
2847
2904
|
}, be = function() {
|
|
2848
2905
|
return re ? Ce : performance.interactionCount || 0;
|
|
2849
|
-
},
|
|
2850
|
-
"interactionCount" in performance || re || (re = k("event",
|
|
2851
|
-
},
|
|
2852
|
-
var n = Math.min(
|
|
2853
|
-
return
|
|
2854
|
-
},
|
|
2855
|
-
if (
|
|
2906
|
+
}, Ft = function() {
|
|
2907
|
+
"interactionCount" in performance || re || (re = k("event", xt, { type: "event", buffered: !0, durationThreshold: 0 }));
|
|
2908
|
+
}, _ = [], G = /* @__PURE__ */ new Map(), Pe = 0, Gt = function() {
|
|
2909
|
+
var n = Math.min(_.length - 1, Math.floor((be() - Pe) / 50));
|
|
2910
|
+
return _[n];
|
|
2911
|
+
}, Wt = [], Bt = function(n) {
|
|
2912
|
+
if (Wt.forEach((function(s) {
|
|
2856
2913
|
return s(n);
|
|
2857
2914
|
})), n.interactionId || n.entryType === "first-input") {
|
|
2858
|
-
var e =
|
|
2859
|
-
if (t ||
|
|
2915
|
+
var e = _[_.length - 1], t = G.get(n.interactionId);
|
|
2916
|
+
if (t || _.length < 10 || n.duration > e.latency) {
|
|
2860
2917
|
if (t) n.duration > t.latency ? (t.entries = [n], t.latency = n.duration) : n.duration === t.latency && n.startTime === t.entries[0].startTime && t.entries.push(n);
|
|
2861
2918
|
else {
|
|
2862
2919
|
var r = { id: n.interactionId, latency: n.duration, entries: [n] };
|
|
2863
|
-
G.set(r.id, r),
|
|
2920
|
+
G.set(r.id, r), _.push(r);
|
|
2864
2921
|
}
|
|
2865
|
-
|
|
2922
|
+
_.sort((function(s, i) {
|
|
2866
2923
|
return i.latency - s.latency;
|
|
2867
|
-
})),
|
|
2924
|
+
})), _.length > 10 && _.splice(10).forEach((function(s) {
|
|
2868
2925
|
return G.delete(s.id);
|
|
2869
2926
|
}));
|
|
2870
2927
|
}
|
|
@@ -2872,24 +2929,24 @@ var re, Ne = -1, b = function(n) {
|
|
|
2872
2929
|
}, De = function(n) {
|
|
2873
2930
|
var e = self.requestIdleCallback || self.setTimeout, t = -1;
|
|
2874
2931
|
return n = de(n), document.visibilityState === "hidden" ? n() : (t = e(n), X(n)), t;
|
|
2875
|
-
}, ie = [200, 500],
|
|
2932
|
+
}, ie = [200, 500], Xt = function(n, e) {
|
|
2876
2933
|
"PerformanceEventTiming" in self && "interactionId" in PerformanceEventTiming.prototype && (e = e || {}, $((function() {
|
|
2877
2934
|
var t;
|
|
2878
|
-
|
|
2935
|
+
Ft();
|
|
2879
2936
|
var r, s = p("INP"), i = function(l) {
|
|
2880
2937
|
De((function() {
|
|
2881
|
-
l.forEach(
|
|
2882
|
-
var c =
|
|
2938
|
+
l.forEach(Bt);
|
|
2939
|
+
var c = Gt();
|
|
2883
2940
|
c && c.latency !== s.value && (s.value = c.latency, s.entries = c.entries, r());
|
|
2884
2941
|
}));
|
|
2885
2942
|
}, o = k("event", i, { durationThreshold: (t = e.durationThreshold) !== null && t !== void 0 ? t : 40 });
|
|
2886
2943
|
r = I(n, s, ie, e.reportAllChanges), o && (o.observe({ type: "first-input", buffered: !0 }), X((function() {
|
|
2887
2944
|
i(o.takeRecords()), r(!0);
|
|
2888
2945
|
})), b((function() {
|
|
2889
|
-
Pe = be(),
|
|
2946
|
+
Pe = be(), _.length = 0, G.clear(), s = p("INP"), r = I(n, s, ie, e.reportAllChanges);
|
|
2890
2947
|
})));
|
|
2891
2948
|
})));
|
|
2892
|
-
}, oe = [2500, 4e3], K = {},
|
|
2949
|
+
}, oe = [2500, 4e3], K = {}, $t = function(n, e) {
|
|
2893
2950
|
e = e || {}, $((function() {
|
|
2894
2951
|
var t, r = Re(), s = p("LCP"), i = function(c) {
|
|
2895
2952
|
e.reportAllChanges || (c = c.slice(-1)), c.forEach((function(d) {
|
|
@@ -2912,23 +2969,23 @@ var re, Ne = -1, b = function(n) {
|
|
|
2912
2969
|
}));
|
|
2913
2970
|
}
|
|
2914
2971
|
}));
|
|
2915
|
-
}, ae = [800, 1800],
|
|
2972
|
+
}, ae = [800, 1800], zt = function n(e) {
|
|
2916
2973
|
document.prerendering ? $((function() {
|
|
2917
2974
|
return n(e);
|
|
2918
2975
|
})) : document.readyState !== "complete" ? addEventListener("load", (function() {
|
|
2919
2976
|
return n(e);
|
|
2920
2977
|
}), !0) : setTimeout(e, 0);
|
|
2921
|
-
},
|
|
2978
|
+
}, Qt = function(n, e) {
|
|
2922
2979
|
e = e || {};
|
|
2923
2980
|
var t = p("TTFB"), r = I(n, t, ae, e.reportAllChanges);
|
|
2924
|
-
|
|
2981
|
+
zt((function() {
|
|
2925
2982
|
var s = ce();
|
|
2926
2983
|
s && (t.value = Math.max(s.responseStart - B(), 0), t.entries = [s], r(!0), b((function() {
|
|
2927
2984
|
t = p("TTFB", 0), (r = I(n, t, ae, e.reportAllChanges))(!0);
|
|
2928
2985
|
})));
|
|
2929
2986
|
}));
|
|
2930
2987
|
};
|
|
2931
|
-
const
|
|
2988
|
+
const jt = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
2932
2989
|
__proto__: null,
|
|
2933
2990
|
CLSThresholds: se,
|
|
2934
2991
|
FCPThresholds: ne,
|
|
@@ -2937,47 +2994,47 @@ const Qt = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
|
2937
2994
|
TTFBThresholds: ae,
|
|
2938
2995
|
onCLS: Ut,
|
|
2939
2996
|
onFCP: Oe,
|
|
2940
|
-
onINP:
|
|
2941
|
-
onLCP:
|
|
2942
|
-
onTTFB:
|
|
2997
|
+
onINP: Xt,
|
|
2998
|
+
onLCP: $t,
|
|
2999
|
+
onTTFB: Qt
|
|
2943
3000
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
2944
3001
|
export {
|
|
2945
|
-
|
|
2946
|
-
|
|
3002
|
+
mr as ANALYTICS_QUERY_LIMITS,
|
|
3003
|
+
Sr as ANOMALY_DETECTION,
|
|
2947
3004
|
f as AppConfigValidationError,
|
|
2948
|
-
|
|
2949
|
-
|
|
2950
|
-
|
|
2951
|
-
|
|
2952
|
-
|
|
3005
|
+
hr as CONTENT_ANALYTICS,
|
|
3006
|
+
lr as DATA_PROTECTION,
|
|
3007
|
+
dr as DEVICE_ANALYTICS,
|
|
3008
|
+
y as DeviceType,
|
|
3009
|
+
cr as ENGAGEMENT_THRESHOLDS,
|
|
2953
3010
|
Z as EmitterEvent,
|
|
2954
3011
|
P as ErrorType,
|
|
2955
3012
|
u as EventType,
|
|
2956
|
-
|
|
2957
|
-
|
|
3013
|
+
fr as INSIGHT_THRESHOLDS,
|
|
3014
|
+
or as InitializationTimeoutError,
|
|
2958
3015
|
M as IntegrationValidationError,
|
|
2959
|
-
|
|
2960
|
-
|
|
2961
|
-
|
|
2962
|
-
|
|
2963
|
-
|
|
2964
|
-
|
|
2965
|
-
|
|
2966
|
-
|
|
2967
|
-
|
|
3016
|
+
nr as MAX_ARRAY_LENGTH,
|
|
3017
|
+
Zt as MAX_CUSTOM_EVENT_ARRAY_SIZE,
|
|
3018
|
+
qt as MAX_CUSTOM_EVENT_KEYS,
|
|
3019
|
+
Yt as MAX_CUSTOM_EVENT_NAME_LENGTH,
|
|
3020
|
+
Kt as MAX_CUSTOM_EVENT_STRING_SIZE,
|
|
3021
|
+
er as MAX_METADATA_NESTING_DEPTH,
|
|
3022
|
+
Jt as MAX_NESTED_OBJECT_KEYS,
|
|
3023
|
+
tr as MAX_STRING_LENGTH,
|
|
3024
|
+
rr as MAX_STRING_LENGTH_IN_ARRAY,
|
|
2968
3025
|
D as Mode,
|
|
2969
|
-
|
|
3026
|
+
ar as PERFORMANCE_CONFIG,
|
|
2970
3027
|
R as PermanentError,
|
|
2971
|
-
|
|
2972
|
-
|
|
2973
|
-
|
|
3028
|
+
gr as SEGMENTATION_ANALYTICS,
|
|
3029
|
+
ur as SESSION_ANALYTICS,
|
|
3030
|
+
Tr as SPECIAL_PAGE_URLS,
|
|
2974
3031
|
he as SamplingRateValidationError,
|
|
2975
|
-
|
|
3032
|
+
U as ScrollDirection,
|
|
2976
3033
|
Ge as SessionTimeoutValidationError,
|
|
2977
3034
|
q as SpecialApiUrl,
|
|
2978
|
-
|
|
3035
|
+
Er as TEMPORAL_ANALYSIS,
|
|
2979
3036
|
V as TraceLogValidationError,
|
|
2980
|
-
|
|
2981
|
-
|
|
3037
|
+
sr as isPrimaryScrollEvent,
|
|
3038
|
+
ir as isSecondaryScrollEvent,
|
|
2982
3039
|
_r as tracelog
|
|
2983
3040
|
};
|