@newrelic/browser-agent 1.263.0 → 1.265.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +32 -0
- package/README.md +2 -2
- package/dist/cjs/cdn/experimental.js +3 -7
- package/dist/cjs/cdn/pro.js +2 -2
- package/dist/cjs/cdn/spa.js +2 -2
- package/dist/cjs/common/aggregate/aggregator.js +2 -3
- package/dist/cjs/common/config/{state/configurable.js → configurable.js} +1 -1
- package/dist/cjs/common/config/{state/info.js → info.js} +1 -1
- package/dist/cjs/common/config/{state/init.js → init.js} +11 -8
- package/dist/cjs/common/config/{state/loader-config.js → loader-config.js} +1 -1
- package/dist/cjs/common/config/{state/runtime.js → runtime.js} +16 -5
- package/dist/cjs/common/constants/agent-constants.js +8 -0
- package/dist/cjs/common/constants/env.cdn.js +1 -1
- package/dist/cjs/common/constants/env.npm.js +1 -1
- package/dist/cjs/common/constants/runtime.js +1 -3
- package/dist/cjs/common/context/shared-context.js +1 -2
- package/dist/cjs/common/dispatch/global-event.js +1 -2
- package/dist/cjs/common/drain/drain.js +12 -18
- package/dist/cjs/common/event-emitter/contextual-ee.js +3 -4
- package/dist/cjs/common/event-listener/event-listener-opts.js +2 -6
- package/dist/cjs/common/harvest/harvest-scheduler.js +1 -2
- package/dist/cjs/common/harvest/harvest.js +30 -57
- package/dist/cjs/common/serialize/bel-serializer.js +6 -11
- package/dist/cjs/common/session/session-entity.js +10 -13
- package/dist/cjs/common/timing/nav-timing.js +1 -3
- package/dist/cjs/common/timing/time-keeper.js +16 -6
- package/dist/cjs/common/url/encode.js +3 -7
- package/dist/cjs/common/util/console.js +2 -0
- package/dist/cjs/common/util/invoke.js +6 -16
- package/dist/cjs/common/util/obfuscate.js +97 -53
- package/dist/cjs/common/util/submit-data.js +17 -21
- package/dist/cjs/common/util/text.js +9 -0
- package/dist/cjs/common/util/traverse.js +1 -3
- package/dist/cjs/common/vitals/cumulative-layout-shift.js +5 -6
- package/dist/cjs/common/vitals/first-contentful-paint.js +4 -5
- package/dist/cjs/common/vitals/first-input-delay.js +4 -5
- package/dist/cjs/common/vitals/interaction-to-next-paint.js +5 -6
- package/dist/cjs/common/vitals/largest-contentful-paint.js +4 -5
- package/dist/cjs/common/vitals/time-to-first-byte.js +4 -5
- package/dist/cjs/common/vitals/vital-metric.js +5 -7
- package/dist/cjs/common/window/nreum.js +2 -1
- package/dist/cjs/common/window/page-visibility.js +1 -4
- package/dist/cjs/common/wrap/wrap-events.js +1 -4
- package/dist/cjs/common/wrap/wrap-promise.js +1 -4
- package/dist/cjs/common/wrap/wrap-websocket.js +74 -0
- package/dist/cjs/features/ajax/aggregate/chunk.js +4 -3
- package/dist/cjs/features/ajax/aggregate/gql.js +4 -5
- package/dist/cjs/features/ajax/aggregate/index.js +19 -22
- package/dist/cjs/features/ajax/constants.js +2 -3
- package/dist/cjs/features/ajax/instrument/distributed-tracing.js +9 -8
- package/dist/cjs/features/ajax/instrument/index.js +14 -12
- package/dist/cjs/features/generic_events/aggregate/index.js +128 -0
- package/dist/cjs/features/generic_events/constants.js +10 -0
- package/dist/cjs/features/generic_events/index.js +12 -0
- package/dist/cjs/features/generic_events/instrument/index.js +27 -0
- package/dist/cjs/features/jserrors/aggregate/index.js +25 -44
- package/dist/cjs/features/jserrors/instrument/index.js +4 -4
- package/dist/cjs/features/logging/aggregate/index.js +33 -36
- package/dist/cjs/features/logging/constants.js +2 -3
- package/dist/cjs/features/logging/instrument/index.js +5 -6
- package/dist/cjs/features/logging/shared/log.js +1 -3
- package/dist/cjs/features/logging/shared/utils.js +2 -4
- package/dist/cjs/features/metrics/aggregate/index.js +34 -17
- package/dist/cjs/features/metrics/aggregate/websocket-detection.js +34 -0
- package/dist/cjs/features/metrics/constants.js +4 -2
- package/dist/cjs/features/metrics/instrument/index.js +12 -4
- package/dist/cjs/features/page_action/instrument/index.js +14 -10
- package/dist/cjs/features/page_view_event/aggregate/index.js +19 -39
- package/dist/cjs/features/page_view_event/aggregate/initialized-features.js +1 -1
- package/dist/cjs/features/page_view_event/instrument/index.js +4 -4
- package/dist/cjs/features/page_view_timing/aggregate/index.js +23 -39
- package/dist/cjs/features/page_view_timing/instrument/index.js +4 -4
- package/dist/cjs/features/session_replay/aggregate/index.js +35 -42
- package/dist/cjs/features/session_replay/constants.js +1 -5
- package/dist/cjs/features/session_replay/instrument/index.js +5 -9
- package/dist/cjs/features/session_replay/shared/recorder-events.js +25 -20
- package/dist/cjs/features/session_replay/shared/recorder.js +17 -13
- package/dist/cjs/features/session_replay/shared/stylesheet-evaluator.js +2 -2
- package/dist/cjs/features/session_replay/shared/utils.js +5 -4
- package/dist/cjs/features/session_trace/aggregate/index.js +25 -42
- package/dist/cjs/features/session_trace/aggregate/trace/storage.js +5 -3
- package/dist/cjs/features/session_trace/instrument/index.js +8 -7
- package/dist/cjs/features/soft_navigations/aggregate/ajax-node.js +1 -1
- package/dist/cjs/features/soft_navigations/aggregate/index.js +22 -30
- package/dist/cjs/features/soft_navigations/aggregate/initial-page-load-interaction.js +2 -2
- package/dist/cjs/features/soft_navigations/aggregate/interaction.js +4 -5
- package/dist/cjs/features/soft_navigations/instrument/index.js +14 -13
- package/dist/cjs/features/spa/aggregate/index.js +17 -28
- package/dist/cjs/features/spa/aggregate/interaction.js +7 -6
- package/dist/cjs/features/spa/aggregate/serializer.js +4 -5
- package/dist/cjs/features/spa/constants.js +2 -2
- package/dist/cjs/features/spa/instrument/index.js +20 -19
- package/dist/cjs/features/utils/agent-session.js +6 -4
- package/dist/cjs/features/utils/aggregate-base.js +17 -10
- package/dist/cjs/features/utils/event-buffer.js +132 -0
- package/dist/cjs/features/utils/feature-gates.js +2 -2
- package/dist/cjs/features/utils/instrument-base.js +7 -8
- package/dist/cjs/features/utils/lazy-feature-loader.js +12 -12
- package/dist/cjs/features/utils/nr1-debugger.js +1 -3
- package/dist/cjs/index.js +21 -0
- package/dist/cjs/loaders/agent-base.js +4 -12
- package/dist/cjs/loaders/agent.js +7 -2
- package/dist/cjs/loaders/api/api.js +23 -35
- package/dist/cjs/loaders/api/apiAsync.js +10 -13
- package/dist/cjs/loaders/browser-agent.js +4 -3
- package/dist/cjs/loaders/configure/configure.js +16 -15
- package/dist/cjs/loaders/features/enabled-features.js +2 -2
- package/dist/cjs/loaders/features/features.js +8 -4
- package/dist/cjs/loaders/micro-agent.js +16 -15
- package/dist/esm/cdn/experimental.js +2 -5
- package/dist/esm/cdn/pro.js +2 -2
- package/dist/esm/cdn/spa.js +2 -2
- package/dist/esm/common/aggregate/aggregator.js +2 -3
- package/dist/esm/common/config/{state/configurable.js → configurable.js} +1 -1
- package/dist/esm/common/config/{state/info.js → info.js} +1 -1
- package/dist/esm/common/config/{state/init.js → init.js} +11 -8
- package/dist/esm/common/config/{state/loader-config.js → loader-config.js} +1 -1
- package/dist/esm/common/config/{state/runtime.js → runtime.js} +17 -5
- package/dist/esm/common/constants/agent-constants.js +2 -0
- package/dist/esm/common/constants/env.cdn.js +1 -1
- package/dist/esm/common/constants/env.npm.js +1 -1
- package/dist/esm/common/constants/runtime.js +0 -2
- package/dist/esm/common/context/shared-context.js +1 -2
- package/dist/esm/common/dispatch/global-event.js +1 -2
- package/dist/esm/common/drain/drain.js +12 -18
- package/dist/esm/common/event-emitter/contextual-ee.js +2 -3
- package/dist/esm/common/event-listener/event-listener-opts.js +2 -6
- package/dist/esm/common/harvest/harvest-scheduler.js +1 -2
- package/dist/esm/common/harvest/harvest.js +24 -51
- package/dist/esm/common/serialize/bel-serializer.js +6 -11
- package/dist/esm/common/session/session-entity.js +10 -13
- package/dist/esm/common/timing/nav-timing.js +1 -3
- package/dist/esm/common/timing/time-keeper.js +15 -5
- package/dist/esm/common/url/encode.js +3 -7
- package/dist/esm/common/util/console.js +2 -0
- package/dist/esm/common/util/invoke.js +6 -16
- package/dist/esm/common/util/obfuscate.js +96 -49
- package/dist/esm/common/util/submit-data.js +17 -21
- package/dist/esm/common/util/text.js +3 -0
- package/dist/esm/common/util/traverse.js +1 -3
- package/dist/esm/common/vitals/cumulative-layout-shift.js +5 -6
- package/dist/esm/common/vitals/first-contentful-paint.js +4 -5
- package/dist/esm/common/vitals/first-input-delay.js +4 -5
- package/dist/esm/common/vitals/interaction-to-next-paint.js +5 -6
- package/dist/esm/common/vitals/largest-contentful-paint.js +4 -5
- package/dist/esm/common/vitals/time-to-first-byte.js +4 -5
- package/dist/esm/common/vitals/vital-metric.js +5 -7
- package/dist/esm/common/window/nreum.js +2 -1
- package/dist/esm/common/window/page-visibility.js +1 -4
- package/dist/esm/common/wrap/wrap-events.js +1 -4
- package/dist/esm/common/wrap/wrap-promise.js +1 -4
- package/dist/esm/common/wrap/wrap-websocket.js +67 -0
- package/dist/esm/features/ajax/aggregate/chunk.js +3 -2
- package/dist/esm/features/ajax/aggregate/gql.js +4 -5
- package/dist/esm/features/ajax/aggregate/index.js +16 -19
- package/dist/esm/features/ajax/constants.js +1 -2
- package/dist/esm/features/ajax/instrument/distributed-tracing.js +2 -1
- package/dist/esm/features/ajax/instrument/index.js +10 -8
- package/dist/esm/features/generic_events/aggregate/index.js +120 -0
- package/dist/esm/features/generic_events/constants.js +4 -0
- package/dist/esm/features/generic_events/index.js +1 -0
- package/dist/esm/features/generic_events/instrument/index.js +20 -0
- package/dist/esm/features/jserrors/aggregate/index.js +20 -39
- package/dist/esm/features/jserrors/instrument/index.js +3 -3
- package/dist/esm/features/logging/aggregate/index.js +31 -34
- package/dist/esm/features/logging/constants.js +1 -2
- package/dist/esm/features/logging/instrument/index.js +4 -5
- package/dist/esm/features/logging/shared/log.js +1 -3
- package/dist/esm/features/logging/shared/utils.js +2 -4
- package/dist/esm/features/metrics/aggregate/index.js +28 -11
- package/dist/esm/features/metrics/aggregate/websocket-detection.js +29 -0
- package/dist/esm/features/metrics/constants.js +3 -1
- package/dist/esm/features/metrics/instrument/index.js +12 -4
- package/dist/esm/features/page_action/instrument/index.js +14 -9
- package/dist/esm/features/page_view_event/aggregate/index.js +17 -37
- package/dist/esm/features/page_view_event/aggregate/initialized-features.js +1 -1
- package/dist/esm/features/page_view_event/instrument/index.js +3 -3
- package/dist/esm/features/page_view_timing/aggregate/index.js +20 -36
- package/dist/esm/features/page_view_timing/instrument/index.js +3 -3
- package/dist/esm/features/session_replay/aggregate/index.js +25 -32
- package/dist/esm/features/session_replay/constants.js +0 -4
- package/dist/esm/features/session_replay/index.js +1 -7
- package/dist/esm/features/session_replay/instrument/index.js +5 -8
- package/dist/esm/features/session_replay/shared/recorder-events.js +25 -20
- package/dist/esm/features/session_replay/shared/recorder.js +14 -10
- package/dist/esm/features/session_replay/shared/stylesheet-evaluator.js +2 -2
- package/dist/esm/features/session_replay/shared/utils.js +3 -2
- package/dist/esm/features/session_trace/aggregate/index.js +20 -37
- package/dist/esm/features/session_trace/aggregate/trace/storage.js +5 -3
- package/dist/esm/features/session_trace/instrument/index.js +5 -4
- package/dist/esm/features/soft_navigations/aggregate/ajax-node.js +1 -1
- package/dist/esm/features/soft_navigations/aggregate/index.js +21 -29
- package/dist/esm/features/soft_navigations/aggregate/initial-page-load-interaction.js +1 -1
- package/dist/esm/features/soft_navigations/aggregate/interaction.js +2 -3
- package/dist/esm/features/soft_navigations/instrument/index.js +11 -10
- package/dist/esm/features/spa/aggregate/index.js +11 -22
- package/dist/esm/features/spa/aggregate/interaction.js +6 -5
- package/dist/esm/features/spa/aggregate/serializer.js +2 -3
- package/dist/esm/features/spa/constants.js +2 -2
- package/dist/esm/features/spa/instrument/index.js +12 -11
- package/dist/esm/features/utils/agent-session.js +3 -1
- package/dist/esm/features/utils/aggregate-base.js +16 -9
- package/dist/esm/features/utils/event-buffer.js +126 -0
- package/dist/esm/features/utils/feature-gates.js +1 -1
- package/dist/esm/features/utils/instrument-base.js +6 -7
- package/dist/esm/features/utils/lazy-feature-loader.js +12 -12
- package/dist/esm/features/utils/nr1-debugger.js +1 -3
- package/dist/esm/index.js +3 -0
- package/dist/esm/loaders/agent-base.js +4 -12
- package/dist/esm/loaders/agent.js +7 -2
- package/dist/esm/loaders/api/api.js +18 -30
- package/dist/esm/loaders/api/apiAsync.js +3 -6
- package/dist/esm/loaders/browser-agent.js +3 -2
- package/dist/esm/loaders/configure/configure.js +9 -8
- package/dist/esm/loaders/features/enabled-features.js +1 -1
- package/dist/esm/loaders/features/features.js +8 -4
- package/dist/esm/loaders/micro-agent.js +11 -10
- package/dist/types/common/aggregate/aggregator.d.ts.map +1 -1
- package/dist/types/common/config/configurable.d.ts.map +1 -0
- package/dist/types/common/config/info.d.ts.map +1 -0
- package/dist/types/common/config/init.d.ts.map +1 -0
- package/dist/types/common/config/loader-config.d.ts.map +1 -0
- package/dist/types/common/config/runtime.d.ts.map +1 -0
- package/dist/types/common/constants/agent-constants.d.ts +3 -0
- package/dist/types/common/constants/agent-constants.d.ts.map +1 -0
- package/dist/types/common/constants/runtime.d.ts +0 -1
- package/dist/types/common/constants/runtime.d.ts.map +1 -1
- package/dist/types/common/harvest/harvest.d.ts +1 -7
- package/dist/types/common/harvest/harvest.d.ts.map +1 -1
- package/dist/types/common/serialize/bel-serializer.d.ts.map +1 -1
- package/dist/types/common/timing/time-keeper.d.ts +9 -2
- package/dist/types/common/timing/time-keeper.d.ts.map +1 -1
- package/dist/types/common/url/encode.d.ts.map +1 -1
- package/dist/types/common/util/console.d.ts.map +1 -1
- package/dist/types/common/util/obfuscate.d.ts +78 -6
- package/dist/types/common/util/obfuscate.d.ts.map +1 -1
- package/dist/types/common/util/submit-data.d.ts.map +1 -1
- package/dist/types/common/util/text.d.ts +2 -0
- package/dist/types/common/util/text.d.ts.map +1 -0
- package/dist/types/common/window/nreum.d.ts.map +1 -1
- package/dist/types/common/wrap/wrap-websocket.d.ts +4 -0
- package/dist/types/common/wrap/wrap-websocket.d.ts.map +1 -0
- package/dist/types/features/ajax/aggregate/chunk.d.ts.map +1 -1
- package/dist/types/features/ajax/aggregate/index.d.ts +2 -3
- package/dist/types/features/ajax/aggregate/index.d.ts.map +1 -1
- package/dist/types/features/ajax/constants.d.ts +0 -1
- package/dist/types/features/ajax/constants.d.ts.map +1 -1
- package/dist/types/features/ajax/instrument/distributed-tracing.d.ts.map +1 -1
- package/dist/types/features/ajax/instrument/index.d.ts +1 -0
- package/dist/types/features/ajax/instrument/index.d.ts.map +1 -1
- package/dist/types/features/{page_action → generic_events}/aggregate/index.d.ts +10 -10
- package/dist/types/features/generic_events/aggregate/index.d.ts.map +1 -0
- package/dist/types/features/generic_events/constants.d.ts +4 -0
- package/dist/types/features/generic_events/constants.d.ts.map +1 -0
- package/dist/types/features/generic_events/index.d.ts +2 -0
- package/dist/types/features/generic_events/index.d.ts.map +1 -0
- package/dist/types/features/generic_events/instrument/index.d.ts +7 -0
- package/dist/types/features/generic_events/instrument/index.d.ts.map +1 -0
- package/dist/types/features/jserrors/aggregate/index.d.ts +2 -2
- package/dist/types/features/jserrors/aggregate/index.d.ts.map +1 -1
- package/dist/types/features/jserrors/instrument/index.d.ts +1 -0
- package/dist/types/features/jserrors/instrument/index.d.ts.map +1 -1
- package/dist/types/features/logging/aggregate/index.d.ts +4 -7
- package/dist/types/features/logging/aggregate/index.d.ts.map +1 -1
- package/dist/types/features/logging/constants.d.ts +0 -1
- package/dist/types/features/logging/constants.d.ts.map +1 -1
- package/dist/types/features/logging/instrument/index.d.ts +1 -0
- package/dist/types/features/logging/instrument/index.d.ts.map +1 -1
- package/dist/types/features/metrics/aggregate/index.d.ts.map +1 -1
- package/dist/types/features/metrics/aggregate/websocket-detection.d.ts +12 -0
- package/dist/types/features/metrics/aggregate/websocket-detection.d.ts.map +1 -0
- package/dist/types/features/metrics/constants.d.ts +1 -0
- package/dist/types/features/metrics/constants.d.ts.map +1 -1
- package/dist/types/features/metrics/instrument/index.d.ts +1 -0
- package/dist/types/features/metrics/instrument/index.d.ts.map +1 -1
- package/dist/types/features/page_action/instrument/index.d.ts +9 -4
- package/dist/types/features/page_action/instrument/index.d.ts.map +1 -1
- package/dist/types/features/page_view_event/aggregate/index.d.ts.map +1 -1
- package/dist/types/features/page_view_event/instrument/index.d.ts +1 -0
- package/dist/types/features/page_view_event/instrument/index.d.ts.map +1 -1
- package/dist/types/features/page_view_timing/aggregate/index.d.ts +2 -2
- package/dist/types/features/page_view_timing/aggregate/index.d.ts.map +1 -1
- package/dist/types/features/page_view_timing/instrument/index.d.ts +1 -0
- package/dist/types/features/page_view_timing/instrument/index.d.ts.map +1 -1
- package/dist/types/features/session_replay/aggregate/index.d.ts.map +1 -1
- package/dist/types/features/session_replay/constants.d.ts +0 -4
- package/dist/types/features/session_replay/constants.d.ts.map +1 -1
- package/dist/types/features/session_replay/instrument/index.d.ts +1 -0
- package/dist/types/features/session_replay/instrument/index.d.ts.map +1 -1
- package/dist/types/features/session_replay/shared/recorder-events.d.ts +6 -6
- package/dist/types/features/session_replay/shared/recorder-events.d.ts.map +1 -1
- package/dist/types/features/session_replay/shared/recorder.d.ts +2 -2
- package/dist/types/features/session_replay/shared/recorder.d.ts.map +1 -1
- package/dist/types/features/session_replay/shared/utils.d.ts.map +1 -1
- package/dist/types/features/session_trace/aggregate/index.d.ts +2 -2
- package/dist/types/features/session_trace/aggregate/index.d.ts.map +1 -1
- package/dist/types/features/session_trace/aggregate/trace/storage.d.ts +1 -1
- package/dist/types/features/session_trace/aggregate/trace/storage.d.ts.map +1 -1
- package/dist/types/features/session_trace/instrument/index.d.ts +1 -0
- package/dist/types/features/session_trace/instrument/index.d.ts.map +1 -1
- package/dist/types/features/soft_navigations/aggregate/index.d.ts +3 -3
- package/dist/types/features/soft_navigations/aggregate/index.d.ts.map +1 -1
- package/dist/types/features/soft_navigations/instrument/index.d.ts +1 -0
- package/dist/types/features/soft_navigations/instrument/index.d.ts.map +1 -1
- package/dist/types/features/spa/aggregate/index.d.ts +2 -2
- package/dist/types/features/spa/aggregate/index.d.ts.map +1 -1
- package/dist/types/features/spa/aggregate/interaction.d.ts.map +1 -1
- package/dist/types/features/spa/aggregate/serializer.d.ts.map +1 -1
- package/dist/types/features/spa/constants.d.ts.map +1 -1
- package/dist/types/features/spa/instrument/index.d.ts +1 -0
- package/dist/types/features/spa/instrument/index.d.ts.map +1 -1
- package/dist/types/features/utils/agent-session.d.ts.map +1 -1
- package/dist/types/features/utils/aggregate-base.d.ts +1 -0
- package/dist/types/features/utils/aggregate-base.d.ts.map +1 -1
- package/dist/types/features/utils/event-buffer.d.ts +72 -0
- package/dist/types/features/utils/event-buffer.d.ts.map +1 -0
- package/dist/types/features/utils/instrument-base.d.ts +1 -0
- package/dist/types/features/utils/instrument-base.d.ts.map +1 -1
- package/dist/types/index.d.ts +3 -0
- package/dist/types/loaders/agent-base.d.ts +1 -2
- package/dist/types/loaders/agent-base.d.ts.map +1 -1
- package/dist/types/loaders/agent.d.ts.map +1 -1
- package/dist/types/loaders/api/api.d.ts.map +1 -1
- package/dist/types/loaders/browser-agent.d.ts.map +1 -1
- package/dist/types/loaders/configure/configure.d.ts.map +1 -1
- package/dist/types/loaders/features/features.d.ts +1 -0
- package/dist/types/loaders/features/features.d.ts.map +1 -1
- package/dist/types/loaders/micro-agent.d.ts.map +1 -1
- package/package.json +67 -52
- package/src/cdn/experimental.js +2 -4
- package/src/cdn/pro.js +2 -2
- package/src/cdn/spa.js +2 -2
- package/src/common/aggregate/aggregator.js +2 -3
- package/src/common/config/__mocks__/info.js +3 -0
- package/src/common/config/__mocks__/init.js +3 -0
- package/src/common/config/__mocks__/loader-config.js +2 -0
- package/src/common/config/__mocks__/runtime.js +2 -0
- package/src/common/config/{state/configurable.js → configurable.js} +1 -1
- package/src/common/config/{state/info.js → info.js} +1 -1
- package/src/common/config/{state/init.js → init.js} +7 -6
- package/src/common/config/{state/loader-config.js → loader-config.js} +1 -1
- package/src/common/config/{state/runtime.js → runtime.js} +19 -5
- package/src/common/constants/agent-constants.js +2 -0
- package/src/common/constants/runtime.js +0 -2
- package/src/common/drain/drain.js +8 -6
- package/src/common/event-emitter/contextual-ee.js +1 -1
- package/src/common/harvest/harvest.js +10 -24
- package/src/common/serialize/bel-serializer.js +6 -9
- package/src/common/session/session-entity.js +4 -4
- package/src/common/timing/__mocks__/time-keeper.js +6 -2
- package/src/common/timing/time-keeper.js +15 -5
- package/src/common/url/encode.js +2 -3
- package/src/common/util/__mocks__/console.js +1 -0
- package/src/common/util/__mocks__/obfuscate.js +5 -8
- package/src/common/util/console.js +2 -0
- package/src/common/util/obfuscate.js +94 -50
- package/src/common/util/submit-data.js +0 -1
- package/src/common/util/text.js +6 -0
- package/src/common/window/__mocks__/nreum.js +1 -1
- package/src/common/window/nreum.js +2 -1
- package/src/common/wrap/wrap-websocket.js +73 -0
- package/src/features/ajax/aggregate/chunk.js +3 -2
- package/src/features/ajax/aggregate/index.js +20 -19
- package/src/features/ajax/constants.js +0 -2
- package/src/features/ajax/instrument/distributed-tracing.js +2 -1
- package/src/features/ajax/instrument/index.js +9 -5
- package/src/features/generic_events/aggregate/index.js +139 -0
- package/src/features/generic_events/constants.js +5 -0
- package/src/features/generic_events/index.js +1 -0
- package/src/features/generic_events/instrument/index.js +24 -0
- package/src/features/jserrors/aggregate/index.js +18 -9
- package/src/features/jserrors/instrument/index.js +2 -0
- package/src/features/logging/aggregate/index.js +39 -31
- package/src/features/logging/constants.js +0 -2
- package/src/features/logging/instrument/index.js +2 -0
- package/src/features/logging/shared/utils.js +1 -1
- package/src/features/metrics/aggregate/index.js +24 -9
- package/src/features/metrics/aggregate/websocket-detection.js +31 -0
- package/src/features/metrics/constants.js +3 -0
- package/src/features/metrics/instrument/index.js +13 -1
- package/src/features/page_action/instrument/index.js +11 -6
- package/src/features/page_view_event/aggregate/index.js +8 -23
- package/src/features/page_view_event/aggregate/initialized-features.js +1 -1
- package/src/features/page_view_event/instrument/index.js +2 -0
- package/src/features/page_view_timing/aggregate/index.js +15 -18
- package/src/features/page_view_timing/instrument/index.js +2 -0
- package/src/features/session_replay/aggregate/index.js +13 -9
- package/src/features/session_replay/constants.js +0 -4
- package/src/features/session_replay/index.js +1 -7
- package/src/features/session_replay/instrument/index.js +3 -4
- package/src/features/session_replay/shared/recorder-events.js +27 -20
- package/src/features/session_replay/shared/recorder.js +13 -6
- package/src/features/session_replay/shared/stylesheet-evaluator.js +2 -2
- package/src/features/session_replay/shared/utils.js +3 -2
- package/src/features/session_trace/aggregate/index.js +16 -7
- package/src/features/session_trace/aggregate/trace/storage.js +6 -1
- package/src/features/session_trace/instrument/index.js +4 -1
- package/src/features/soft_navigations/aggregate/ajax-node.js +1 -1
- package/src/features/soft_navigations/aggregate/index.js +13 -15
- package/src/features/soft_navigations/aggregate/initial-page-load-interaction.js +1 -1
- package/src/features/soft_navigations/aggregate/interaction.js +1 -1
- package/src/features/soft_navigations/instrument/index.js +9 -5
- package/src/features/spa/aggregate/index.js +12 -20
- package/src/features/spa/aggregate/interaction.js +6 -5
- package/src/features/spa/aggregate/serializer.js +2 -3
- package/src/features/spa/constants.js +2 -2
- package/src/features/spa/instrument/index.js +9 -3
- package/src/features/utils/agent-session.js +3 -1
- package/src/features/utils/aggregate-base.js +13 -3
- package/src/features/utils/event-buffer.js +126 -0
- package/src/features/utils/feature-gates.js +1 -1
- package/src/features/utils/instrument-base.js +2 -1
- package/src/features/utils/lazy-feature-loader.js +2 -2
- package/src/index.js +3 -0
- package/src/loaders/agent-base.js +2 -6
- package/src/loaders/agent.js +7 -2
- package/src/loaders/api/api.js +3 -2
- package/src/loaders/api/apiAsync.js +2 -2
- package/src/loaders/browser-agent.js +5 -3
- package/src/loaders/configure/configure.js +9 -2
- package/src/loaders/features/enabled-features.js +1 -1
- package/src/loaders/features/features.js +8 -4
- package/src/loaders/micro-agent.js +5 -2
- package/dist/cjs/cdn/polyfills/lite.js +0 -16
- package/dist/cjs/cdn/polyfills/pro.js +0 -21
- package/dist/cjs/cdn/polyfills/spa.js +0 -22
- package/dist/cjs/cdn/polyfills.js +0 -24
- package/dist/cjs/common/config/config.js +0 -76
- package/dist/cjs/common/config/state/originals.js +0 -8
- package/dist/cjs/common/util/map-own.js +0 -31
- package/dist/cjs/common/wrap/index.js +0 -61
- package/dist/cjs/features/page_action/aggregate/index.js +0 -121
- package/dist/esm/cdn/polyfills/lite.js +0 -14
- package/dist/esm/cdn/polyfills/pro.js +0 -19
- package/dist/esm/cdn/polyfills/spa.js +0 -20
- package/dist/esm/cdn/polyfills.js +0 -27
- package/dist/esm/common/config/config.js +0 -11
- package/dist/esm/common/config/state/originals.js +0 -2
- package/dist/esm/common/util/map-own.js +0 -24
- package/dist/esm/common/wrap/index.js +0 -13
- package/dist/esm/features/page_action/aggregate/index.js +0 -114
- package/dist/types/cdn/polyfills/lite.d.ts +0 -2
- package/dist/types/cdn/polyfills/lite.d.ts.map +0 -1
- package/dist/types/cdn/polyfills/pro.d.ts +0 -2
- package/dist/types/cdn/polyfills/pro.d.ts.map +0 -1
- package/dist/types/cdn/polyfills/spa.d.ts +0 -2
- package/dist/types/cdn/polyfills/spa.d.ts.map +0 -1
- package/dist/types/cdn/polyfills.d.ts +0 -2
- package/dist/types/cdn/polyfills.d.ts.map +0 -1
- package/dist/types/common/config/config.d.ts +0 -13
- package/dist/types/common/config/config.d.ts.map +0 -1
- package/dist/types/common/config/state/configurable.d.ts.map +0 -1
- package/dist/types/common/config/state/info.d.ts.map +0 -1
- package/dist/types/common/config/state/init.d.ts.map +0 -1
- package/dist/types/common/config/state/loader-config.d.ts.map +0 -1
- package/dist/types/common/config/state/originals.d.ts +0 -2
- package/dist/types/common/config/state/originals.d.ts.map +0 -1
- package/dist/types/common/config/state/runtime.d.ts.map +0 -1
- package/dist/types/common/util/map-own.d.ts +0 -3
- package/dist/types/common/util/map-own.d.ts.map +0 -1
- package/dist/types/common/wrap/index.d.ts +0 -10
- package/dist/types/common/wrap/index.d.ts.map +0 -1
- package/dist/types/features/page_action/aggregate/index.d.ts.map +0 -1
- package/src/cdn/polyfills/lite.js +0 -20
- package/src/cdn/polyfills/pro.js +0 -30
- package/src/cdn/polyfills/spa.js +0 -32
- package/src/cdn/polyfills.js +0 -27
- package/src/common/config/__mocks__/config.js +0 -11
- package/src/common/config/config.js +0 -12
- package/src/common/config/state/originals.js +0 -3
- package/src/common/util/map-own.js +0 -22
- package/src/common/wrap/index.js +0 -16
- package/src/features/page_action/aggregate/index.js +0 -114
- /package/dist/types/common/config/{state/configurable.d.ts → configurable.d.ts} +0 -0
- /package/dist/types/common/config/{state/info.d.ts → info.d.ts} +0 -0
- /package/dist/types/common/config/{state/init.d.ts → init.d.ts} +0 -0
- /package/dist/types/common/config/{state/loader-config.d.ts → loader-config.d.ts} +0 -0
- /package/dist/types/common/config/{state/runtime.d.ts → runtime.d.ts} +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,38 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## [1.265.0](https://github.com/newrelic/newrelic-browser-agent/compare/v1.264.0...v1.265.0) (2024-08-30)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Features
|
|
10
|
+
|
|
11
|
+
* add payload size evaluation to generic events feature ([#1152](https://github.com/newrelic/newrelic-browser-agent/issues/1152)) ([65d9d11](https://github.com/newrelic/newrelic-browser-agent/commit/65d9d11172df4a3abe750c3d110b53ad65ae4319))
|
|
12
|
+
* Add WebSocket wrapper and supportability metrics ([#1159](https://github.com/newrelic/newrelic-browser-agent/issues/1159)) ([7b4ab87](https://github.com/newrelic/newrelic-browser-agent/commit/7b4ab87ae28450cc97f6a84f3176e0c9f8698d76))
|
|
13
|
+
* Configure Session Replay to wait for DOMContentLoaded ([#1164](https://github.com/newrelic/newrelic-browser-agent/issues/1164)) ([84bd299](https://github.com/newrelic/newrelic-browser-agent/commit/84bd29981675660d8f47a0f49235005e7be11947))
|
|
14
|
+
* removing internal barrel exports ([#1158](https://github.com/newrelic/newrelic-browser-agent/issues/1158)) ([2e29a6e](https://github.com/newrelic/newrelic-browser-agent/commit/2e29a6e3c9d7a6a099b73aff59682a1e38008072))
|
|
15
|
+
* Standardize Feature Buffering Behavior ([#1155](https://github.com/newrelic/newrelic-browser-agent/issues/1155)) ([d070a43](https://github.com/newrelic/newrelic-browser-agent/commit/d070a4315df35ace82e20b8b2c69044bf8504c92))
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
### Bug Fixes
|
|
19
|
+
|
|
20
|
+
* Ensure drain target is a valid event emitter before subscribing ([#1167](https://github.com/newrelic/newrelic-browser-agent/issues/1167)) ([187d31f](https://github.com/newrelic/newrelic-browser-agent/commit/187d31fe0fd95e75907742a7c49779683a6b040c))
|
|
21
|
+
* fix duplicative log payloads on unload ([#1166](https://github.com/newrelic/newrelic-browser-agent/issues/1166)) ([52bb088](https://github.com/newrelic/newrelic-browser-agent/commit/52bb08880215c40abf080a2bf1c80a29c7ad3324))
|
|
22
|
+
* relative timestamps in session trace ([#1142](https://github.com/newrelic/newrelic-browser-agent/issues/1142)) ([378b1fb](https://github.com/newrelic/newrelic-browser-agent/commit/378b1fb49ca5732e0c1b704920143b966102cfb6))
|
|
23
|
+
* Updated Logging API function ([#1147](https://github.com/newrelic/newrelic-browser-agent/issues/1147)) ([bf2e980](https://github.com/newrelic/newrelic-browser-agent/commit/bf2e98056c2ad214421918fb4938a08b6213590e))
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
### Security Fixes
|
|
27
|
+
|
|
28
|
+
* apply obfuscation rules to session trace ([#1149](https://github.com/newrelic/newrelic-browser-agent/issues/1149)) ([fbc6f9d](https://github.com/newrelic/newrelic-browser-agent/commit/fbc6f9d31a33515e05d70e190c9c8da198fa4415))
|
|
29
|
+
|
|
30
|
+
## [1.264.0](https://github.com/newrelic/newrelic-browser-agent/compare/v1.263.0...v1.264.0) (2024-08-06)
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
### Features
|
|
34
|
+
|
|
35
|
+
* Create generic events feature with 1,000 event limit ([#1121](https://github.com/newrelic/newrelic-browser-agent/issues/1121)) ([63ab04f](https://github.com/newrelic/newrelic-browser-agent/commit/63ab04fa9b2a0c347e175c9174f563e73767933b))
|
|
36
|
+
* Report Page Actions with Generic Events Feature ([#1124](https://github.com/newrelic/newrelic-browser-agent/issues/1124)) ([0d52acf](https://github.com/newrelic/newrelic-browser-agent/commit/0d52acf9eaa9a2c170459f03e9edad25375f4c1c))
|
|
37
|
+
|
|
6
38
|
## [1.263.0](https://github.com/newrelic/newrelic-browser-agent/compare/v1.262.0...v1.263.0) (2024-07-25)
|
|
7
39
|
|
|
8
40
|
|
package/README.md
CHANGED
|
@@ -78,9 +78,9 @@ const options = {
|
|
|
78
78
|
The following features may be disabled by adding `init` entries as shown above. Note that the `page_view_event` feature may not be disabled.
|
|
79
79
|
|
|
80
80
|
- `ajax`
|
|
81
|
+
- `generic_events`
|
|
81
82
|
- `jserrors`
|
|
82
83
|
- `metrics`
|
|
83
|
-
- `page_action`
|
|
84
84
|
- `page_view_timing`
|
|
85
85
|
- `session_replay`
|
|
86
86
|
- `session_trace`
|
|
@@ -125,7 +125,7 @@ The following feature modules are available for inclusion in the `features` arra
|
|
|
125
125
|
import { Ajax } from '@newrelic/browser-agent/features/ajax';
|
|
126
126
|
import { JSErrors } from '@newrelic/browser-agent/features/jserrors';
|
|
127
127
|
import { Metrics } from '@newrelic/browser-agent/features/metrics';
|
|
128
|
-
import {
|
|
128
|
+
import { GenericEvents } from '@newrelic/browser-agent/features/generic_events';
|
|
129
129
|
import { PageViewEvent } from '@newrelic/browser-agent/features/page_view_event';
|
|
130
130
|
import { PageViewTiming } from '@newrelic/browser-agent/features/page_view_timing';
|
|
131
131
|
import { SessionTrace } from '@newrelic/browser-agent/features/session_trace';
|
|
@@ -8,8 +8,8 @@ var _instrument4 = require("../features/jserrors/instrument");
|
|
|
8
8
|
var _instrument5 = require("../features/ajax/instrument");
|
|
9
9
|
var _instrument6 = require("../features/session_trace/instrument");
|
|
10
10
|
var _instrument7 = require("../features/session_replay/instrument");
|
|
11
|
-
var _instrument8 = require("../features/
|
|
12
|
-
var _instrument9 = require("../features/
|
|
11
|
+
var _instrument8 = require("../features/generic_events/instrument");
|
|
12
|
+
var _instrument9 = require("../features/soft_navigations/instrument");
|
|
13
13
|
var _instrument10 = require("../features/logging/instrument");
|
|
14
14
|
/*
|
|
15
15
|
* Copyright 2023 New Relic Corporation. All rights reserved.
|
|
@@ -22,11 +22,7 @@ var _instrument10 = require("../features/logging/instrument");
|
|
|
22
22
|
* It is not production ready, and is not intended to be imported or implemented in any build of the browser agent
|
|
23
23
|
*/
|
|
24
24
|
|
|
25
|
-
// import { Instrument as InstrumentSpa } from '../features/spa/instrument'
|
|
26
|
-
|
|
27
25
|
new _agent.Agent({
|
|
28
|
-
features: [_instrument5.Instrument, _instrument.Instrument, _instrument2.Instrument, _instrument6.Instrument, _instrument7.Instrument, _instrument3.Instrument,
|
|
29
|
-
// InstrumentSpa,
|
|
30
|
-
_instrument8.Instrument],
|
|
26
|
+
features: [_instrument5.Instrument, _instrument.Instrument, _instrument2.Instrument, _instrument6.Instrument, _instrument7.Instrument, _instrument3.Instrument, _instrument4.Instrument, _instrument8.Instrument, _instrument10.Instrument, _instrument9.Instrument],
|
|
31
27
|
loaderType: 'experimental'
|
|
32
28
|
});
|
package/dist/cjs/cdn/pro.js
CHANGED
|
@@ -8,7 +8,7 @@ var _instrument4 = require("../features/jserrors/instrument");
|
|
|
8
8
|
var _instrument5 = require("../features/ajax/instrument");
|
|
9
9
|
var _instrument6 = require("../features/session_trace/instrument");
|
|
10
10
|
var _instrument7 = require("../features/session_replay/instrument");
|
|
11
|
-
var _instrument8 = require("../features/
|
|
11
|
+
var _instrument8 = require("../features/generic_events/instrument");
|
|
12
12
|
var _instrument9 = require("../features/logging/instrument");
|
|
13
13
|
/**
|
|
14
14
|
* @file Creates a "Pro" agent loader bundle composed of the core Agent and all available feature modules except `spa`.
|
|
@@ -16,6 +16,6 @@ var _instrument9 = require("../features/logging/instrument");
|
|
|
16
16
|
*/
|
|
17
17
|
|
|
18
18
|
new _agent.Agent({
|
|
19
|
-
features: [_instrument.Instrument, _instrument2.Instrument, _instrument6.Instrument, _instrument7.Instrument, _instrument5.Instrument, _instrument3.Instrument,
|
|
19
|
+
features: [_instrument.Instrument, _instrument2.Instrument, _instrument6.Instrument, _instrument7.Instrument, _instrument5.Instrument, _instrument3.Instrument, _instrument4.Instrument, _instrument8.Instrument, _instrument9.Instrument],
|
|
20
20
|
loaderType: 'pro'
|
|
21
21
|
});
|
package/dist/cjs/cdn/spa.js
CHANGED
|
@@ -10,14 +10,14 @@ var _instrument6 = require("../features/session_trace/instrument");
|
|
|
10
10
|
var _instrument7 = require("../features/session_replay/instrument");
|
|
11
11
|
var _instrument8 = require("../features/soft_navigations/instrument");
|
|
12
12
|
var _instrument9 = require("../features/spa/instrument");
|
|
13
|
-
var _instrument10 = require("../features/
|
|
13
|
+
var _instrument10 = require("../features/generic_events/instrument");
|
|
14
14
|
var _instrument11 = require("../features/logging/instrument");
|
|
15
15
|
/**
|
|
16
16
|
* @file Creates a "SPA" agent loader bundle composed of the core agent and all available feature modules.
|
|
17
17
|
*/
|
|
18
18
|
|
|
19
19
|
new _agent.Agent({
|
|
20
|
-
features: [_instrument5.Instrument, _instrument.Instrument, _instrument2.Instrument, _instrument6.Instrument, _instrument7.Instrument, _instrument3.Instrument,
|
|
20
|
+
features: [_instrument5.Instrument, _instrument.Instrument, _instrument2.Instrument, _instrument6.Instrument, _instrument7.Instrument, _instrument3.Instrument, _instrument4.Instrument, _instrument10.Instrument, _instrument11.Instrument, _instrument8.Instrument, _instrument9.Instrument // either the softnav or the old spa will be used (not both), but we still need to pack both to avoid dynamic import for instrument files
|
|
21
21
|
],
|
|
22
22
|
loaderType: 'spa'
|
|
23
23
|
});
|
|
@@ -5,7 +5,6 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.Aggregator = void 0;
|
|
7
7
|
var _sharedContext = require("../context/shared-context");
|
|
8
|
-
var _mapOwn = require("../util/map-own");
|
|
9
8
|
/*
|
|
10
9
|
* Copyright 2020 New Relic Corporation. All rights reserved.
|
|
11
10
|
* SPDX-License-Identifier: Apache-2.0
|
|
@@ -36,7 +35,7 @@ class Aggregator extends _sharedContext.SharedContext {
|
|
|
36
35
|
oldMetrics.count += metrics.count;
|
|
37
36
|
|
|
38
37
|
// iterate through each new metric and merge
|
|
39
|
-
|
|
38
|
+
Object.keys(metrics || {}).forEach(key => {
|
|
40
39
|
// count is a special case handled above
|
|
41
40
|
if (key === 'count') return;
|
|
42
41
|
var oldMetric = oldMetrics[key];
|
|
@@ -96,7 +95,7 @@ function aggregateMetrics(newMetrics, oldMetrics) {
|
|
|
96
95
|
count: 0
|
|
97
96
|
};
|
|
98
97
|
oldMetrics.count += 1;
|
|
99
|
-
|
|
98
|
+
Object.entries(newMetrics || {}).forEach(([key, value]) => {
|
|
100
99
|
oldMetrics[key] = updateMetric(value, oldMetrics[key]);
|
|
101
100
|
});
|
|
102
101
|
return oldMetrics;
|
|
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.getModeledObject = getModeledObject;
|
|
7
|
-
var _console = require("
|
|
7
|
+
var _console = require("../util/console");
|
|
8
8
|
function getModeledObject(obj, model) {
|
|
9
9
|
try {
|
|
10
10
|
if (!obj || typeof obj !== 'object') return (0, _console.warn)(3);
|
|
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.getInfo = getInfo;
|
|
7
7
|
exports.isValid = isValid;
|
|
8
8
|
exports.setInfo = setInfo;
|
|
9
|
-
var _nreum = require("
|
|
9
|
+
var _nreum = require("../window/nreum");
|
|
10
10
|
var _configurable = require("./configurable");
|
|
11
11
|
const model = {
|
|
12
12
|
// preset defaults
|
|
@@ -6,11 +6,11 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.getConfiguration = getConfiguration;
|
|
7
7
|
exports.getConfigurationValue = getConfigurationValue;
|
|
8
8
|
exports.setConfiguration = setConfiguration;
|
|
9
|
-
var _constants = require("
|
|
10
|
-
var _querySelector = require("
|
|
11
|
-
var _constants2 = require("
|
|
12
|
-
var _console = require("
|
|
13
|
-
var _nreum = require("
|
|
9
|
+
var _constants = require("../../features/logging/constants");
|
|
10
|
+
var _querySelector = require("../dom/query-selector");
|
|
11
|
+
var _constants2 = require("../session/constants");
|
|
12
|
+
var _console = require("../util/console");
|
|
13
|
+
var _nreum = require("../window/nreum");
|
|
14
14
|
var _configurable = require("./configurable");
|
|
15
15
|
const nrMask = '[data-nr-mask]';
|
|
16
16
|
const model = () => {
|
|
@@ -53,6 +53,11 @@ const model = () => {
|
|
|
53
53
|
allowed_origins: undefined
|
|
54
54
|
},
|
|
55
55
|
feature_flags: [],
|
|
56
|
+
generic_events: {
|
|
57
|
+
enabled: true,
|
|
58
|
+
harvestTimeSeconds: 30,
|
|
59
|
+
autoStart: true
|
|
60
|
+
},
|
|
56
61
|
harvest: {
|
|
57
62
|
tooManyRequestsDelay: 60
|
|
58
63
|
},
|
|
@@ -73,9 +78,7 @@ const model = () => {
|
|
|
73
78
|
},
|
|
74
79
|
obfuscate: undefined,
|
|
75
80
|
page_action: {
|
|
76
|
-
enabled: true
|
|
77
|
-
harvestTimeSeconds: 30,
|
|
78
|
-
autoStart: true
|
|
81
|
+
enabled: true
|
|
79
82
|
},
|
|
80
83
|
page_view_event: {
|
|
81
84
|
enabled: true,
|
|
@@ -5,7 +5,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.getLoaderConfig = getLoaderConfig;
|
|
7
7
|
exports.setLoaderConfig = setLoaderConfig;
|
|
8
|
-
var _nreum = require("
|
|
8
|
+
var _nreum = require("../window/nreum");
|
|
9
9
|
var _configurable = require("./configurable");
|
|
10
10
|
const model = {
|
|
11
11
|
accountID: undefined,
|
|
@@ -6,9 +6,14 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.getRuntime = getRuntime;
|
|
7
7
|
exports.setRuntime = setRuntime;
|
|
8
8
|
var _configurable = require("./configurable");
|
|
9
|
-
var _nreum = require("
|
|
10
|
-
var _runtime = require("
|
|
11
|
-
var _env = require("
|
|
9
|
+
var _nreum = require("../window/nreum");
|
|
10
|
+
var _runtime = require("../constants/runtime");
|
|
11
|
+
var _env = require("../constants/env.npm");
|
|
12
|
+
/**
|
|
13
|
+
* Module level count of harvests. This property will auto-increment each time it is accessed.
|
|
14
|
+
* @type {number}
|
|
15
|
+
*/
|
|
16
|
+
let harvestCount = 0;
|
|
12
17
|
const readonly = {
|
|
13
18
|
buildEnv: _env.BUILD_ENV,
|
|
14
19
|
distMethod: _env.DIST_METHOD,
|
|
@@ -29,8 +34,8 @@ const model = {
|
|
|
29
34
|
appMetadata: {},
|
|
30
35
|
session: undefined,
|
|
31
36
|
denyList: undefined,
|
|
32
|
-
|
|
33
|
-
|
|
37
|
+
timeKeeper: undefined,
|
|
38
|
+
obfuscator: undefined
|
|
34
39
|
};
|
|
35
40
|
const _cache = {};
|
|
36
41
|
function getRuntime(id) {
|
|
@@ -44,6 +49,12 @@ function setRuntime(id, obj) {
|
|
|
44
49
|
...(0, _configurable.getModeledObject)(obj, model),
|
|
45
50
|
...readonly
|
|
46
51
|
};
|
|
52
|
+
if (!Object.hasOwnProperty.call(_cache[id], 'harvestCount')) {
|
|
53
|
+
// Harvest count needs to be added as a getter so the variable is updated each time it is accessed
|
|
54
|
+
Object.defineProperty(_cache[id], 'harvestCount', {
|
|
55
|
+
get: () => ++harvestCount
|
|
56
|
+
});
|
|
57
|
+
}
|
|
47
58
|
const agentInst = (0, _nreum.getNREUMInitializedAgent)(id);
|
|
48
59
|
if (agentInst) agentInst.runtime = _cache[id];
|
|
49
60
|
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.MAX_PAYLOAD_SIZE = exports.IDEAL_PAYLOAD_SIZE = void 0;
|
|
7
|
+
const IDEAL_PAYLOAD_SIZE = exports.IDEAL_PAYLOAD_SIZE = 64000;
|
|
8
|
+
const MAX_PAYLOAD_SIZE = exports.MAX_PAYLOAD_SIZE = 1000000;
|
|
@@ -12,7 +12,7 @@ exports.VERSION = exports.RRWEB_VERSION = exports.DIST_METHOD = exports.BUILD_EN
|
|
|
12
12
|
/**
|
|
13
13
|
* Exposes the version of the agent
|
|
14
14
|
*/
|
|
15
|
-
const VERSION = exports.VERSION = "1.
|
|
15
|
+
const VERSION = exports.VERSION = "1.265.0";
|
|
16
16
|
|
|
17
17
|
/**
|
|
18
18
|
* Exposes the build type of the agent
|
|
@@ -12,7 +12,7 @@ exports.VERSION = exports.RRWEB_VERSION = exports.DIST_METHOD = exports.BUILD_EN
|
|
|
12
12
|
/**
|
|
13
13
|
* Exposes the version of the agent
|
|
14
14
|
*/
|
|
15
|
-
const VERSION = exports.VERSION = "1.
|
|
15
|
+
const VERSION = exports.VERSION = "1.265.0";
|
|
16
16
|
|
|
17
17
|
/**
|
|
18
18
|
* Exposes the build type of the agent
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.supportsSendBeacon = exports.originTime = exports.loadedAsDeferredBrowserScript = exports.isiOS = exports.isWorkerScope = exports.
|
|
6
|
+
exports.supportsSendBeacon = exports.originTime = exports.loadedAsDeferredBrowserScript = exports.isiOS = exports.isWorkerScope = exports.isBrowserScope = exports.initiallyHidden = exports.initialLocation = exports.iOSBelow16 = exports.globalScope = exports.ffVersion = void 0;
|
|
7
7
|
var _now = require("../timing/now");
|
|
8
8
|
/**
|
|
9
9
|
* @file Contains constants about the environment the agent is running
|
|
@@ -42,8 +42,6 @@ const ffVersion = exports.ffVersion = (() => {
|
|
|
42
42
|
}
|
|
43
43
|
return 0;
|
|
44
44
|
})();
|
|
45
|
-
const isIE = exports.isIE = Boolean(isBrowserScope && window.document.documentMode); // deprecated property that only works in IE
|
|
46
|
-
|
|
47
45
|
const supportsSendBeacon = exports.supportsSendBeacon = !!globalScope.navigator?.sendBeacon;
|
|
48
46
|
|
|
49
47
|
/**
|
|
@@ -15,8 +15,7 @@ class SharedContext {
|
|
|
15
15
|
if (typeof context !== 'object') return (0, _console.warn)(8);
|
|
16
16
|
this.sharedContext = {};
|
|
17
17
|
Object.assign(this.sharedContext, model);
|
|
18
|
-
Object.entries(context).forEach(
|
|
19
|
-
let [key, value] = _ref;
|
|
18
|
+
Object.entries(context).forEach(([key, value]) => {
|
|
20
19
|
if (Object.keys(model).includes(key)) this.sharedContext[key] = value;
|
|
21
20
|
});
|
|
22
21
|
} catch (err) {
|
|
@@ -6,8 +6,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.dispatchGlobalEvent = dispatchGlobalEvent;
|
|
7
7
|
var _runtime = require("../constants/runtime");
|
|
8
8
|
const GLOBAL_EVENT_NAMESPACE = 'newrelic';
|
|
9
|
-
function dispatchGlobalEvent() {
|
|
10
|
-
let detail = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
9
|
+
function dispatchGlobalEvent(detail = {}) {
|
|
11
10
|
try {
|
|
12
11
|
_runtime.globalScope.dispatchEvent(new CustomEvent(GLOBAL_EVENT_NAMESPACE, {
|
|
13
12
|
detail
|
|
@@ -7,9 +7,9 @@ exports.deregisterDrain = deregisterDrain;
|
|
|
7
7
|
exports.drain = drain;
|
|
8
8
|
exports.registerDrain = registerDrain;
|
|
9
9
|
var _contextualEe = require("../event-emitter/contextual-ee");
|
|
10
|
-
var _mapOwn = require("../util/map-own");
|
|
11
10
|
var _registerHandler = require("../event-emitter/register-handler");
|
|
12
11
|
var _features = require("../../loaders/features/features");
|
|
12
|
+
var _eventContext = require("../event-emitter/event-context");
|
|
13
13
|
/*
|
|
14
14
|
* Copyright 2020 New Relic Corporation. All rights reserved.
|
|
15
15
|
* SPDX-License-Identifier: Apache-2.0
|
|
@@ -65,10 +65,7 @@ function curateRegistry(agentIdentifier) {
|
|
|
65
65
|
* @param {string} featureName - A named group into which the feature's buffered events are bucketed.
|
|
66
66
|
* @param {boolean} force - Whether to force the drain to occur immediately, bypassing the registry and staging logic.
|
|
67
67
|
*/
|
|
68
|
-
function drain() {
|
|
69
|
-
let agentIdentifier = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
|
|
70
|
-
let featureName = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'feature';
|
|
71
|
-
let force = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
|
|
68
|
+
function drain(agentIdentifier = '', featureName = 'feature', force = false) {
|
|
72
69
|
curateRegistry(agentIdentifier);
|
|
73
70
|
// If the feature for the specified agent is not in the registry, that means the instrument file was bypassed.
|
|
74
71
|
// This could happen in tests, or loaders that directly import the aggregator. In these cases it is safe to
|
|
@@ -85,13 +82,9 @@ function checkCanDrainAll(agentIdentifier) {
|
|
|
85
82
|
// Only when the event-groups for all features are ready to drain (staged) do we execute the drain. This has the effect
|
|
86
83
|
// that the last feature to call drain triggers drain for all features.
|
|
87
84
|
const items = Array.from(registry[agentIdentifier]);
|
|
88
|
-
if (items.every(
|
|
89
|
-
let [key, values] = _ref;
|
|
90
|
-
return values.staged;
|
|
91
|
-
})) {
|
|
85
|
+
if (items.every(([key, values]) => values.staged)) {
|
|
92
86
|
items.sort((a, b) => a[1].priority - b[1].priority);
|
|
93
|
-
items.forEach(
|
|
94
|
-
let [group] = _ref2;
|
|
87
|
+
items.forEach(([group]) => {
|
|
95
88
|
registry[agentIdentifier].delete(group);
|
|
96
89
|
drainGroup(agentIdentifier, group);
|
|
97
90
|
});
|
|
@@ -103,8 +96,7 @@ function checkCanDrainAll(agentIdentifier) {
|
|
|
103
96
|
* the subscribed handlers for the group.
|
|
104
97
|
* @param {*} group - The name of a particular feature's event "bucket".
|
|
105
98
|
*/
|
|
106
|
-
function drainGroup(agentIdentifier, group) {
|
|
107
|
-
let activateGroup = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
|
|
99
|
+
function drainGroup(agentIdentifier, group, activateGroup = true) {
|
|
108
100
|
const baseEE = agentIdentifier ? _contextualEe.ee.get(agentIdentifier) : _contextualEe.ee;
|
|
109
101
|
const handlers = _registerHandler.registerHandler.handlers; // other storage in registerHandler
|
|
110
102
|
if (baseEE.aborted || !baseEE.backlog || !handlers) return;
|
|
@@ -119,10 +111,12 @@ function drainGroup(agentIdentifier, group) {
|
|
|
119
111
|
// eslint-disable-line no-unmodified-loop-condition
|
|
120
112
|
emitEvent(bufferedEventsInGroup[i], groupHandlers);
|
|
121
113
|
}
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
// registration
|
|
125
|
-
|
|
114
|
+
Object.entries(groupHandlers).forEach(([eventType, handlerRegistrationList]) => {
|
|
115
|
+
Object.values(handlerRegistrationList || {}).forEach(registration => {
|
|
116
|
+
// registration *should* be an array of: [targetEE, eventHandler]
|
|
117
|
+
// certain browser polyfills of .values and .entries pass the prototype methods into the callback,
|
|
118
|
+
// which breaks this assumption and throws errors. So we make sure here that we only call .on() if its an actual NR EE
|
|
119
|
+
if (registration[0]?.on && registration[0]?.context() instanceof _eventContext.EventContext) registration[0].on(eventType, registration[1]);
|
|
126
120
|
});
|
|
127
121
|
});
|
|
128
122
|
}
|
|
@@ -141,7 +135,7 @@ function drainGroup(agentIdentifier, group) {
|
|
|
141
135
|
*/
|
|
142
136
|
function emitEvent(evt, groupHandlers) {
|
|
143
137
|
var type = evt[1];
|
|
144
|
-
|
|
138
|
+
Object.values(groupHandlers[type] || {}).forEach(registration => {
|
|
145
139
|
var sourceEE = evt[0];
|
|
146
140
|
var ee = registration[0];
|
|
147
141
|
if (ee === sourceEE) {
|
|
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.ee = exports.contextId = void 0;
|
|
7
7
|
var _nreum = require("../window/nreum");
|
|
8
8
|
var _getOrSet = require("../util/get-or-set");
|
|
9
|
-
var
|
|
9
|
+
var _runtime = require("../config/runtime");
|
|
10
10
|
var _eventContext = require("./event-context");
|
|
11
11
|
var _bundleId = require("../ids/bundle-id");
|
|
12
12
|
/*
|
|
@@ -36,7 +36,7 @@ function ee(old, debugId) {
|
|
|
36
36
|
// We only want to check the runtime configuration for `isolatedBacklog` if the event emitter belongs to a feature.
|
|
37
37
|
// For feature event emitters, the debugId will be an agentIdentifier with a length of 16. In contrast, some of our
|
|
38
38
|
// tests do not namespace the event emitter with an agentID and just use the parent (which has no ID).
|
|
39
|
-
isolatedBacklog = debugId.length !== 16 ? false : (0,
|
|
39
|
+
isolatedBacklog = debugId.length !== 16 ? false : (0, _runtime.getRuntime)(debugId).isolatedBacklog;
|
|
40
40
|
} catch (err) {
|
|
41
41
|
// Do nothing for now.
|
|
42
42
|
}
|
|
@@ -129,8 +129,7 @@ function ee(old, debugId) {
|
|
|
129
129
|
|
|
130
130
|
// do not buffer events if agent has been aborted
|
|
131
131
|
if (emitter.aborted) return;
|
|
132
|
-
Object.entries(types || {}).forEach(
|
|
133
|
-
let [_, type] = _ref;
|
|
132
|
+
Object.entries(types || {}).forEach(([_, type]) => {
|
|
134
133
|
bufferGroupMap[type] = group;
|
|
135
134
|
if (!(group in eventBuffer)) {
|
|
136
135
|
eventBuffer[group] = [];
|
|
@@ -37,14 +37,10 @@ function eventListenerOpts(useCapture, abortSignal) {
|
|
|
37
37
|
}
|
|
38
38
|
|
|
39
39
|
/** Do not use this within the worker context. */
|
|
40
|
-
function windowAddEventListener(event, listener) {
|
|
41
|
-
let capture = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
|
|
42
|
-
let abortSignal = arguments.length > 3 ? arguments[3] : undefined;
|
|
40
|
+
function windowAddEventListener(event, listener, capture = false, abortSignal) {
|
|
43
41
|
window.addEventListener(event, listener, eventListenerOpts(capture, abortSignal));
|
|
44
42
|
}
|
|
45
43
|
/** Do not use this within the worker context. */
|
|
46
|
-
function documentAddEventListener(event, listener) {
|
|
47
|
-
let capture = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
|
|
48
|
-
let abortSignal = arguments.length > 3 ? arguments[3] : undefined;
|
|
44
|
+
function documentAddEventListener(event, listener, capture = false, abortSignal) {
|
|
49
45
|
document.addEventListener(event, listener, eventListenerOpts(capture, abortSignal));
|
|
50
46
|
}
|
|
@@ -69,8 +69,7 @@ class HarvestScheduler extends _sharedContext.SharedContext {
|
|
|
69
69
|
this.started = true;
|
|
70
70
|
this.scheduleHarvest(initialDelay != null ? initialDelay : this.interval);
|
|
71
71
|
}
|
|
72
|
-
stopTimer() {
|
|
73
|
-
let permanently = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
|
|
72
|
+
stopTimer(permanently = false) {
|
|
74
73
|
this.aborted = permanently; // stopping permanently is same as aborting, but this function also cleans up the setTimeout loop
|
|
75
74
|
this.started = false;
|
|
76
75
|
if (this.timeoutHandle) {
|
|
@@ -8,14 +8,14 @@ var _encode = require("../url/encode");
|
|
|
8
8
|
var _stringify = require("../util/stringify");
|
|
9
9
|
var submitData = _interopRequireWildcard(require("../util/submit-data"));
|
|
10
10
|
var _location = require("../url/location");
|
|
11
|
-
var
|
|
11
|
+
var _info = require("../config/info");
|
|
12
|
+
var _init = require("../config/init");
|
|
13
|
+
var _runtime = require("../config/runtime");
|
|
12
14
|
var _cleanUrl = require("../url/clean-url");
|
|
13
15
|
var _eventListenerOpts = require("../event-listener/event-listener-opts");
|
|
14
|
-
var _obfuscate = require("../util/obfuscate");
|
|
15
|
-
var _traverse = require("../util/traverse");
|
|
16
16
|
var _sharedContext = require("../context/shared-context");
|
|
17
17
|
var _env = require("../constants/env.npm");
|
|
18
|
-
var
|
|
18
|
+
var _runtime2 = require("../constants/runtime");
|
|
19
19
|
var _console = require("../util/console");
|
|
20
20
|
var _now = require("../timing/now");
|
|
21
21
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
@@ -38,8 +38,8 @@ class Harvest extends _sharedContext.SharedContext {
|
|
|
38
38
|
constructor(parent) {
|
|
39
39
|
super(parent); // gets any allowed properties from the parent and stores them in `sharedContext`
|
|
40
40
|
|
|
41
|
-
this.tooManyRequestsDelay = (0,
|
|
42
|
-
this.obfuscator =
|
|
41
|
+
this.tooManyRequestsDelay = (0, _init.getConfigurationValue)(this.sharedContext.agentIdentifier, 'harvest.tooManyRequestsDelay') || 60;
|
|
42
|
+
this.obfuscator = (0, _runtime.getRuntime)(this.sharedContext.agentIdentifier).obfuscator;
|
|
43
43
|
this._events = {};
|
|
44
44
|
}
|
|
45
45
|
|
|
@@ -49,8 +49,7 @@ class Harvest extends _sharedContext.SharedContext {
|
|
|
49
49
|
* Note: Used by page_action
|
|
50
50
|
* @param {NetworkSendSpec} spec Specification for sending data
|
|
51
51
|
*/
|
|
52
|
-
sendX() {
|
|
53
|
-
let spec = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
52
|
+
sendX(spec = {}) {
|
|
54
53
|
const submitMethod = submitData.getSubmitMethod({
|
|
55
54
|
isFinalHarvest: spec.opts?.unload
|
|
56
55
|
});
|
|
@@ -59,7 +58,7 @@ class Harvest extends _sharedContext.SharedContext {
|
|
|
59
58
|
isFinalHarvest: spec.opts?.unload === true
|
|
60
59
|
};
|
|
61
60
|
const payload = this.createPayload(spec.endpoint, options);
|
|
62
|
-
const caller = this.
|
|
61
|
+
const caller = this._send.bind(this);
|
|
63
62
|
return caller({
|
|
64
63
|
...spec,
|
|
65
64
|
payload,
|
|
@@ -71,31 +70,11 @@ class Harvest extends _sharedContext.SharedContext {
|
|
|
71
70
|
* Initiate a harvest call.
|
|
72
71
|
* @param {NetworkSendSpec} spec Specification for sending data
|
|
73
72
|
*/
|
|
74
|
-
send() {
|
|
75
|
-
|
|
76
|
-
const caller = this.obfuscator.shouldObfuscate() ? this.obfuscateAndSend.bind(this) : this._send.bind(this);
|
|
73
|
+
send(spec = {}) {
|
|
74
|
+
const caller = this._send.bind(this);
|
|
77
75
|
return caller(spec);
|
|
78
76
|
}
|
|
79
77
|
|
|
80
|
-
/**
|
|
81
|
-
* Apply obfuscation rules to the payload and then initial the harvest network call.
|
|
82
|
-
* @param {NetworkSendSpec} spec Specification for sending data
|
|
83
|
-
*/
|
|
84
|
-
obfuscateAndSend() {
|
|
85
|
-
var _this = this;
|
|
86
|
-
let spec = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
87
|
-
const {
|
|
88
|
-
payload = {}
|
|
89
|
-
} = spec;
|
|
90
|
-
(0, _traverse.applyFnToProps)(payload, function () {
|
|
91
|
-
return _this.obfuscator.obfuscateString(...arguments);
|
|
92
|
-
}, 'string', ['e']);
|
|
93
|
-
return this._send({
|
|
94
|
-
...spec,
|
|
95
|
-
payload
|
|
96
|
-
});
|
|
97
|
-
}
|
|
98
|
-
|
|
99
78
|
/**
|
|
100
79
|
* Initiate a harvest call. Typically used by `sendX` and `send` methods or called directly
|
|
101
80
|
* for raw network calls.
|
|
@@ -103,20 +82,19 @@ class Harvest extends _sharedContext.SharedContext {
|
|
|
103
82
|
* @returns {boolean} True if the network call succeeded. For final harvest calls, the return
|
|
104
83
|
* value should not be relied upon because network calls will be made asynchronously.
|
|
105
84
|
*/
|
|
106
|
-
_send(
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
const info = (0, _config.getInfo)(this.sharedContext.agentIdentifier);
|
|
85
|
+
_send({
|
|
86
|
+
endpoint,
|
|
87
|
+
payload = {},
|
|
88
|
+
opts = {},
|
|
89
|
+
submitMethod,
|
|
90
|
+
cbFinished,
|
|
91
|
+
customUrl,
|
|
92
|
+
raw,
|
|
93
|
+
includeBaseParams = true
|
|
94
|
+
}) {
|
|
95
|
+
const info = (0, _info.getInfo)(this.sharedContext.agentIdentifier);
|
|
118
96
|
if (!info.errorBeacon) return false;
|
|
119
|
-
const agentRuntime = (0,
|
|
97
|
+
const agentRuntime = (0, _runtime.getRuntime)(this.sharedContext.agentIdentifier);
|
|
120
98
|
let {
|
|
121
99
|
body,
|
|
122
100
|
qs
|
|
@@ -130,7 +108,7 @@ class Harvest extends _sharedContext.SharedContext {
|
|
|
130
108
|
}
|
|
131
109
|
return false;
|
|
132
110
|
}
|
|
133
|
-
const init = (0,
|
|
111
|
+
const init = (0, _init.getConfiguration)(this.sharedContext.agentIdentifier);
|
|
134
112
|
const protocol = init.ssl === false ? 'http' : 'https';
|
|
135
113
|
const perceviedBeacon = init.proxy.beacon || info.errorBeacon;
|
|
136
114
|
const endpointURLPart = endpoint !== 'rum' ? "/".concat(endpoint) : '';
|
|
@@ -171,11 +149,11 @@ class Harvest extends _sharedContext.SharedContext {
|
|
|
171
149
|
/* Since workers don't support sendBeacon right now, they can only use XHR method.
|
|
172
150
|
Because they still do permit synch XHR, the idea is that at final harvest time (worker is closing),
|
|
173
151
|
we just make a BLOCKING request--trivial impact--with the remaining data as a temp fill-in for sendBeacon.
|
|
174
|
-
Following the removal of img-element method
|
|
152
|
+
Following the removal of img-element method. */
|
|
175
153
|
let result = submitMethod({
|
|
176
154
|
url: fullUrl,
|
|
177
155
|
body,
|
|
178
|
-
sync: opts.unload &&
|
|
156
|
+
sync: opts.unload && _runtime2.isWorkerScope,
|
|
179
157
|
headers
|
|
180
158
|
});
|
|
181
159
|
if (!opts.unload && cbFinished && submitMethod === submitData.xhr) {
|
|
@@ -201,17 +179,14 @@ class Harvest extends _sharedContext.SharedContext {
|
|
|
201
179
|
cbFinished(cbResult);
|
|
202
180
|
}, (0, _eventListenerOpts.eventListenerOpts)(false));
|
|
203
181
|
}
|
|
204
|
-
const runtime = (0, _config.getRuntime)(this.sharedContext.agentIdentifier);
|
|
205
|
-
runtime.harvestCount++;
|
|
206
182
|
return result;
|
|
207
183
|
}
|
|
208
184
|
|
|
209
185
|
// The stuff that gets sent every time.
|
|
210
186
|
baseQueryString(qs, endpoint) {
|
|
211
|
-
const runtime = (0,
|
|
212
|
-
const info = (0,
|
|
213
|
-
const
|
|
214
|
-
const ref = this.obfuscator.shouldObfuscate() ? this.obfuscator.obfuscateString(location) : location;
|
|
187
|
+
const runtime = (0, _runtime.getRuntime)(this.sharedContext.agentIdentifier);
|
|
188
|
+
const info = (0, _info.getInfo)(this.sharedContext.agentIdentifier);
|
|
189
|
+
const ref = this.obfuscator.obfuscateString((0, _cleanUrl.cleanURL)((0, _location.getLocation)()));
|
|
215
190
|
const hr = runtime?.session?.state.sessionReplayMode === 1 && endpoint !== 'jserrors';
|
|
216
191
|
const qps = ['a=' + info.applicationID, (0, _encode.param)('sa', info.sa ? '' + info.sa : ''), (0, _encode.param)('v', _env.VERSION), transactionNameParam(info), (0, _encode.param)('ct', runtime.customTransaction), '&rst=' + (0, _now.now)(), '&ck=0',
|
|
217
192
|
// ck param DEPRECATED - still expected by backend
|
|
@@ -262,13 +237,11 @@ class Harvest extends _sharedContext.SharedContext {
|
|
|
262
237
|
* @param {HarvestPayload} payload Payload to be sent to the endpoint.
|
|
263
238
|
* @returns {HarvestPayload} Cleaned payload payload to be sent to the endpoint.
|
|
264
239
|
*/
|
|
265
|
-
cleanPayload() {
|
|
266
|
-
let payload = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
240
|
+
cleanPayload(payload = {}) {
|
|
267
241
|
const clean = input => {
|
|
268
242
|
if (typeof Uint8Array !== 'undefined' && input instanceof Uint8Array || Array.isArray(input)) return input;
|
|
269
243
|
if (typeof input === 'string') return input.length > 0 ? input : null;
|
|
270
|
-
return Object.entries(input || {}).reduce((accumulator,
|
|
271
|
-
let [key, value] = _ref2;
|
|
244
|
+
return Object.entries(input || {}).reduce((accumulator, [key, value]) => {
|
|
272
245
|
if (typeof value === 'number' || typeof value === 'string' && value.length > 0 || typeof value === 'object' && Object.keys(value || {}).length > 0) {
|
|
273
246
|
accumulator[key] = value;
|
|
274
247
|
}
|