@newrelic/browser-agent 0.0.9 → 0.1.230
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +113 -197
- package/dist/cjs/cdn/lite.js +14 -0
- package/dist/cjs/cdn/polyfills/lite.js +4 -0
- package/dist/cjs/cdn/polyfills/pro.js +4 -0
- package/dist/cjs/cdn/polyfills/spa.js +4 -0
- package/dist/cjs/cdn/polyfills.js +14 -0
- package/dist/cjs/cdn/pro.js +19 -0
- package/dist/cjs/cdn/spa.js +19 -0
- package/dist/cjs/cdn/worker.js +16 -0
- package/dist/cjs/common/aggregate/aggregator.js +168 -0
- package/dist/cjs/common/browser-version/firefox-version.js +17 -0
- package/dist/cjs/common/browser-version/ios-version.js +18 -0
- package/dist/cjs/common/config/config.js +76 -0
- package/dist/cjs/common/config/state/configurable.js +33 -0
- package/dist/cjs/common/config/state/info.js +50 -0
- package/dist/cjs/common/config/state/init.js +86 -0
- package/dist/cjs/common/config/state/loader-config.js +28 -0
- package/dist/cjs/common/config/state/originals.js +9 -0
- package/dist/cjs/common/config/state/runtime.js +51 -0
- package/dist/cjs/common/constants/environment-variables.js +20 -0
- package/dist/cjs/common/context/shared-context.js +26 -0
- package/dist/cjs/common/deny-list/deny-list.js +108 -0
- package/dist/cjs/common/drain/drain.js +132 -0
- package/dist/cjs/common/event-emitter/contextual-ee.js +149 -0
- package/dist/cjs/common/event-emitter/handle.js +24 -0
- package/dist/cjs/common/event-emitter/register-handler.js +24 -0
- package/dist/cjs/common/event-listener/event-listener-opts.js +48 -0
- package/dist/cjs/common/harvest/harvest-scheduler.js +112 -0
- package/dist/cjs/common/harvest/harvest.js +247 -0
- package/dist/cjs/common/ids/id.js +30 -0
- package/dist/cjs/common/ids/unique-id.js +84 -0
- package/dist/cjs/common/metrics/framework-detection.js +72 -0
- package/dist/cjs/common/metrics/paint-metrics.js +13 -0
- package/dist/cjs/common/serialize/bel-serializer.js +89 -0
- package/dist/cjs/common/timing/nav-timing.js +77 -0
- package/dist/cjs/common/timing/now.js +15 -0
- package/dist/cjs/common/unload/eol.js +69 -0
- package/dist/cjs/common/url/clean-url.js +16 -0
- package/dist/cjs/common/url/encode.js +79 -0
- package/dist/cjs/common/url/location.js +14 -0
- package/dist/cjs/common/url/parse-url.js +66 -0
- package/dist/cjs/common/url/protocol.js +25 -0
- package/dist/cjs/common/util/console.js +17 -0
- package/dist/cjs/common/util/data-size.js +25 -0
- package/dist/cjs/common/util/feature-flags.js +42 -0
- package/dist/cjs/common/util/get-or-set.js +39 -0
- package/dist/cjs/common/util/global-scope.js +56 -0
- package/dist/cjs/common/util/map-own.js +31 -0
- package/dist/cjs/common/util/map-own.test.js +49 -0
- package/dist/cjs/common/util/obfuscate.js +76 -0
- package/dist/cjs/common/util/s-hash.js +19 -0
- package/dist/cjs/common/util/single.js +23 -0
- package/dist/cjs/common/util/stringify.js +47 -0
- package/dist/cjs/common/util/submit-data.js +107 -0
- package/dist/cjs/common/util/traverse.js +41 -0
- package/dist/cjs/common/util/user-agent.js +57 -0
- package/dist/cjs/common/window/load.js +19 -0
- package/dist/cjs/common/window/nreum.js +107 -0
- package/dist/cjs/common/window/page-visibility.js +29 -0
- package/dist/cjs/common/window/session-storage.js +87 -0
- package/dist/cjs/common/window/supports-performance-observer.js +15 -0
- package/dist/cjs/common/wrap/index.js +75 -0
- package/dist/cjs/common/wrap/wrap-console.js +54 -0
- package/dist/cjs/common/wrap/wrap-events.js +108 -0
- package/dist/cjs/common/wrap/wrap-fetch.js +112 -0
- package/dist/cjs/common/wrap/wrap-function.js +255 -0
- package/dist/cjs/common/wrap/wrap-history.js +56 -0
- package/dist/cjs/common/wrap/wrap-jsonp.js +129 -0
- package/dist/cjs/common/wrap/wrap-mutation.js +61 -0
- package/dist/cjs/common/wrap/wrap-promise.js +163 -0
- package/dist/cjs/common/wrap/wrap-raf.js +55 -0
- package/dist/cjs/common/wrap/wrap-timer.js +70 -0
- package/dist/cjs/common/wrap/wrap-xhr.js +206 -0
- package/dist/cjs/features/ajax/aggregate/index.js +226 -0
- package/dist/cjs/features/ajax/constants.js +9 -0
- package/dist/cjs/features/ajax/index.js +12 -0
- package/dist/cjs/features/ajax/instrument/distributed-tracing.js +145 -0
- package/dist/cjs/features/ajax/instrument/index.js +339 -0
- package/dist/cjs/features/ajax/instrument/response-size.js +26 -0
- package/dist/cjs/features/jserrors/aggregate/canonical-function-name.js +18 -0
- package/dist/cjs/features/jserrors/aggregate/canonical-function-name.test.js +31 -0
- package/dist/cjs/features/jserrors/aggregate/compute-stack-trace.js +215 -0
- package/dist/cjs/features/jserrors/aggregate/compute-stack-trace.test.js +257 -0
- package/dist/cjs/features/jserrors/aggregate/format-stack-trace.js +36 -0
- package/dist/cjs/features/jserrors/aggregate/format-stack-trace.test.js +40 -0
- package/dist/cjs/features/jserrors/aggregate/index.js +288 -0
- package/dist/cjs/features/jserrors/aggregate/string-hash-code.js +23 -0
- package/dist/cjs/features/jserrors/aggregate/string-hash-code.test.js +27 -0
- package/dist/cjs/features/jserrors/constants.js +11 -0
- package/dist/cjs/features/jserrors/index.js +12 -0
- package/dist/cjs/features/jserrors/instrument/debug.js +40 -0
- package/dist/cjs/features/jserrors/instrument/index.js +155 -0
- package/dist/cjs/features/metrics/aggregate/index.js +147 -0
- package/dist/cjs/features/metrics/constants.js +17 -0
- package/dist/cjs/features/metrics/index.js +12 -0
- package/dist/cjs/features/metrics/instrument/index.js +46 -0
- package/dist/cjs/features/metrics/instrument/workers-helper.js +124 -0
- package/dist/cjs/features/page_action/aggregate/index.js +120 -0
- package/dist/cjs/features/page_action/constants.js +9 -0
- package/dist/cjs/features/page_action/index.js +12 -0
- package/dist/cjs/features/page_action/instrument/index.js +22 -0
- package/dist/cjs/features/page_view_event/aggregate/index.js +137 -0
- package/dist/cjs/features/page_view_event/aggregate/initialized-features.js +39 -0
- package/dist/cjs/features/page_view_event/constants.js +15 -0
- package/dist/cjs/features/page_view_event/index.js +12 -0
- package/dist/cjs/features/page_view_event/instrument/index.js +39 -0
- package/dist/cjs/features/page_view_timing/aggregate/index.js +284 -0
- package/dist/cjs/features/page_view_timing/constants.js +9 -0
- package/dist/cjs/features/page_view_timing/first-paint.js +50 -0
- package/dist/cjs/features/page_view_timing/index.js +12 -0
- package/dist/cjs/features/page_view_timing/instrument/index.js +37 -0
- package/dist/cjs/features/page_view_timing/long-tasks.js +75 -0
- package/dist/cjs/features/session_trace/aggregate/index.js +415 -0
- package/dist/cjs/features/session_trace/constants.js +32 -0
- package/dist/cjs/features/session_trace/index.js +12 -0
- package/dist/cjs/features/session_trace/instrument/index.js +134 -0
- package/dist/cjs/features/spa/aggregate/index.js +684 -0
- package/dist/cjs/features/spa/aggregate/interaction-node.js +84 -0
- package/dist/cjs/features/spa/aggregate/interaction-node.test.js +16 -0
- package/dist/cjs/features/spa/aggregate/interaction.js +98 -0
- package/dist/cjs/features/spa/aggregate/serializer.js +147 -0
- package/dist/cjs/features/spa/constants.js +53 -0
- package/dist/cjs/features/spa/index.js +12 -0
- package/dist/cjs/features/spa/instrument/index.js +115 -0
- package/dist/cjs/features/utils/aggregate-base.js +13 -0
- package/dist/cjs/features/utils/feature-base.js +58 -0
- package/dist/cjs/features/utils/handler-cache.js +64 -0
- package/dist/cjs/features/utils/instrument-base.js +72 -0
- package/dist/cjs/features/utils/lazy-loader.js +44 -0
- package/dist/cjs/index.js +81 -58
- package/dist/cjs/loaders/agent.js +87 -0
- package/dist/cjs/loaders/api/api.js +174 -0
- package/dist/cjs/loaders/api/apiAsync.js +94 -0
- package/dist/cjs/loaders/browser-agent.js +29 -0
- package/dist/cjs/loaders/configure/configure.js +53 -0
- package/dist/cjs/loaders/features/enabled-features.js +19 -0
- package/dist/cjs/loaders/features/featureDependencies.js +32 -0
- package/dist/cjs/loaders/features/features.js +33 -0
- package/dist/cjs/loaders/micro-agent.js +98 -0
- package/dist/cjs/loaders/worker-agent.js +24 -0
- package/dist/esm/cdn/lite.js +12 -0
- package/dist/esm/cdn/polyfills/lite.js +7 -0
- package/dist/esm/cdn/polyfills/pro.js +7 -0
- package/dist/esm/cdn/polyfills/spa.js +7 -0
- package/dist/esm/cdn/polyfills.js +17 -0
- package/dist/esm/cdn/pro.js +17 -0
- package/dist/esm/cdn/spa.js +17 -0
- package/dist/esm/cdn/worker.js +14 -0
- package/dist/esm/common/aggregate/aggregator.js +161 -0
- package/dist/esm/common/browser-version/firefox-version.js +10 -0
- package/dist/esm/common/browser-version/ios-version.js +10 -0
- package/dist/esm/common/config/config.js +11 -0
- package/dist/esm/common/config/state/configurable.js +26 -0
- package/dist/esm/common/config/state/info.js +42 -0
- package/dist/esm/common/config/state/init.js +78 -0
- package/dist/esm/common/config/state/loader-config.js +21 -0
- package/dist/esm/common/config/state/originals.js +2 -0
- package/dist/esm/common/config/state/runtime.js +42 -0
- package/dist/esm/common/constants/environment-variables.js +11 -0
- package/dist/esm/common/context/shared-context.js +19 -0
- package/dist/esm/common/deny-list/deny-list.js +101 -0
- package/dist/esm/common/drain/drain.js +125 -0
- package/dist/esm/common/event-emitter/contextual-ee.js +142 -0
- package/dist/esm/common/event-emitter/handle.js +16 -0
- package/dist/esm/common/event-emitter/register-handler.js +19 -0
- package/dist/esm/common/event-listener/event-listener-opts.js +41 -0
- package/dist/esm/common/harvest/harvest-scheduler.js +106 -0
- package/dist/esm/common/harvest/harvest.js +239 -0
- package/dist/esm/common/ids/id.js +23 -0
- package/dist/esm/common/ids/unique-id.js +75 -0
- package/dist/esm/common/metrics/framework-detection.js +66 -0
- package/dist/esm/common/metrics/paint-metrics.js +6 -0
- package/dist/esm/common/serialize/bel-serializer.js +80 -0
- package/dist/esm/common/timing/nav-timing.js +67 -0
- package/dist/esm/common/timing/now.js +9 -0
- package/dist/esm/common/unload/eol.js +62 -0
- package/dist/esm/common/url/clean-url.js +10 -0
- package/dist/esm/common/url/encode.js +71 -0
- package/dist/esm/common/url/location.js +8 -0
- package/dist/esm/common/url/parse-url.js +60 -0
- package/dist/esm/common/url/protocol.js +17 -0
- package/dist/esm/common/util/console.js +11 -0
- package/dist/esm/common/util/data-size.js +19 -0
- package/dist/esm/common/util/feature-flags.js +33 -0
- package/dist/esm/common/util/get-or-set.js +33 -0
- package/dist/esm/common/util/global-scope.js +44 -0
- package/dist/esm/common/util/map-own.js +24 -0
- package/dist/esm/common/util/map-own.test.js +47 -0
- package/dist/esm/common/util/obfuscate.js +67 -0
- package/dist/esm/common/util/s-hash.js +13 -0
- package/dist/esm/common/util/single.js +16 -0
- package/dist/esm/common/util/stringify.js +42 -0
- package/dist/esm/common/util/submit-data.js +99 -0
- package/dist/esm/common/util/traverse.js +35 -0
- package/dist/esm/common/util/user-agent.js +48 -0
- package/dist/esm/common/window/load.js +12 -0
- package/dist/esm/common/window/nreum.js +91 -0
- package/dist/esm/common/window/page-visibility.js +24 -0
- package/dist/esm/common/window/session-storage.js +77 -0
- package/dist/esm/common/window/supports-performance-observer.js +9 -0
- package/dist/esm/common/wrap/index.js +15 -0
- package/dist/esm/common/wrap/wrap-console.js +46 -0
- package/dist/esm/common/wrap/wrap-events.js +100 -0
- package/dist/esm/common/wrap/wrap-fetch.js +103 -0
- package/dist/esm/common/wrap/wrap-function.js +244 -0
- package/dist/esm/common/wrap/wrap-history.js +48 -0
- package/dist/esm/common/wrap/wrap-jsonp.js +122 -0
- package/dist/esm/common/wrap/wrap-mutation.js +54 -0
- package/dist/esm/common/wrap/wrap-promise.js +156 -0
- package/dist/esm/common/wrap/wrap-raf.js +48 -0
- package/dist/esm/common/wrap/wrap-timer.js +63 -0
- package/dist/esm/common/wrap/wrap-xhr.js +199 -0
- package/dist/esm/features/ajax/aggregate/index.js +218 -0
- package/dist/esm/features/ajax/constants.js +2 -0
- package/dist/esm/features/ajax/index.js +1 -0
- package/dist/esm/features/ajax/instrument/distributed-tracing.js +137 -0
- package/dist/esm/features/ajax/instrument/index.js +331 -0
- package/dist/esm/features/ajax/instrument/response-size.js +19 -0
- package/dist/esm/features/jserrors/aggregate/canonical-function-name.js +12 -0
- package/dist/esm/features/jserrors/aggregate/canonical-function-name.test.js +29 -0
- package/dist/esm/features/jserrors/aggregate/compute-stack-trace.js +208 -0
- package/dist/esm/features/jserrors/aggregate/compute-stack-trace.test.js +255 -0
- package/dist/esm/features/jserrors/aggregate/format-stack-trace.js +29 -0
- package/dist/esm/features/jserrors/aggregate/format-stack-trace.test.js +38 -0
- package/dist/esm/features/jserrors/aggregate/index.js +281 -0
- package/dist/esm/features/jserrors/aggregate/string-hash-code.js +17 -0
- package/dist/esm/features/jserrors/aggregate/string-hash-code.test.js +25 -0
- package/dist/esm/features/jserrors/constants.js +3 -0
- package/dist/esm/features/jserrors/index.js +1 -0
- package/dist/esm/features/jserrors/instrument/debug.js +38 -0
- package/dist/esm/features/jserrors/instrument/index.js +147 -0
- package/dist/esm/features/metrics/aggregate/index.js +140 -0
- package/dist/esm/features/metrics/constants.js +6 -0
- package/dist/esm/features/metrics/index.js +1 -0
- package/dist/esm/features/metrics/instrument/index.js +39 -0
- package/dist/esm/features/metrics/instrument/workers-helper.js +119 -0
- package/dist/esm/features/page_action/aggregate/index.js +113 -0
- package/dist/esm/features/page_action/constants.js +2 -0
- package/dist/esm/features/page_action/index.js +1 -0
- package/dist/esm/features/page_action/instrument/index.js +15 -0
- package/dist/esm/features/page_view_event/aggregate/index.js +128 -0
- package/dist/esm/features/page_view_event/aggregate/initialized-features.js +34 -0
- package/dist/esm/features/page_view_event/constants.js +5 -0
- package/dist/esm/features/page_view_event/index.js +1 -0
- package/dist/esm/features/page_view_event/instrument/index.js +30 -0
- package/dist/esm/features/page_view_timing/aggregate/index.js +277 -0
- package/dist/esm/features/page_view_timing/constants.js +2 -0
- package/dist/esm/features/page_view_timing/first-paint.js +43 -0
- package/dist/esm/features/page_view_timing/index.js +1 -0
- package/dist/esm/features/page_view_timing/instrument/index.js +29 -0
- package/dist/esm/features/page_view_timing/long-tasks.js +69 -0
- package/dist/esm/features/session_trace/aggregate/index.js +406 -0
- package/dist/esm/features/session_trace/constants.js +14 -0
- package/dist/esm/features/session_trace/index.js +1 -0
- package/dist/esm/features/session_trace/instrument/index.js +124 -0
- package/dist/esm/features/spa/aggregate/index.js +674 -0
- package/dist/esm/features/spa/aggregate/interaction-node.js +78 -0
- package/dist/esm/features/spa/aggregate/interaction-node.test.js +14 -0
- package/dist/esm/features/spa/aggregate/interaction.js +92 -0
- package/dist/esm/features/spa/aggregate/serializer.js +139 -0
- package/dist/esm/features/spa/constants.js +25 -0
- package/dist/esm/features/spa/index.js +1 -0
- package/dist/esm/features/spa/instrument/index.js +105 -0
- package/dist/esm/features/utils/aggregate-base.js +6 -0
- package/dist/esm/features/utils/feature-base.js +51 -0
- package/dist/esm/features/utils/handler-cache.js +57 -0
- package/dist/esm/features/utils/instrument-base.js +70 -0
- package/dist/esm/features/utils/lazy-loader.js +37 -0
- package/dist/esm/index.js +15 -0
- package/dist/esm/loaders/agent.js +78 -0
- package/dist/esm/loaders/api/api.js +168 -0
- package/dist/esm/loaders/api/apiAsync.js +88 -0
- package/dist/esm/loaders/browser-agent.js +23 -0
- package/dist/esm/loaders/configure/configure.js +47 -0
- package/dist/esm/loaders/features/enabled-features.js +13 -0
- package/dist/esm/loaders/features/featureDependencies.js +25 -0
- package/dist/esm/loaders/features/features.js +25 -0
- package/dist/esm/loaders/micro-agent.js +91 -0
- package/dist/esm/loaders/worker-agent.js +18 -0
- package/dist/types/cdn/lite.d.ts +2 -0
- package/dist/types/cdn/lite.d.ts.map +1 -0
- package/dist/types/cdn/polyfills/lite.d.ts +2 -0
- package/dist/types/cdn/polyfills/lite.d.ts.map +1 -0
- package/dist/types/cdn/polyfills/pro.d.ts +2 -0
- package/dist/types/cdn/polyfills/pro.d.ts.map +1 -0
- package/dist/types/cdn/polyfills/spa.d.ts +2 -0
- package/dist/types/cdn/polyfills/spa.d.ts.map +1 -0
- package/dist/types/cdn/polyfills.d.ts +2 -0
- package/dist/types/cdn/polyfills.d.ts.map +1 -0
- package/dist/types/cdn/pro.d.ts +2 -0
- package/dist/types/cdn/pro.d.ts.map +1 -0
- package/dist/types/cdn/spa.d.ts +2 -0
- package/dist/types/cdn/spa.d.ts.map +1 -0
- package/dist/types/cdn/worker.d.ts +2 -0
- package/dist/types/cdn/worker.d.ts.map +1 -0
- package/dist/types/common/aggregate/aggregator.d.ts +11 -0
- package/dist/types/common/aggregate/aggregator.d.ts.map +1 -0
- package/dist/types/common/browser-version/firefox-version.d.ts +2 -0
- package/dist/types/common/browser-version/firefox-version.d.ts.map +1 -0
- package/dist/types/common/browser-version/ios-version.d.ts +3 -0
- package/dist/types/common/browser-version/ios-version.d.ts.map +1 -0
- package/dist/types/common/config/config.d.ts +13 -0
- package/dist/types/common/config/config.d.ts.map +1 -0
- package/dist/types/common/config/state/configurable.d.ts +4 -0
- package/dist/types/common/config/state/configurable.d.ts.map +1 -0
- package/dist/types/common/config/state/info.d.ts +4 -0
- package/dist/types/common/config/state/info.d.ts.map +1 -0
- package/dist/types/common/config/state/init.d.ts +4 -0
- package/dist/types/common/config/state/init.d.ts.map +1 -0
- package/dist/types/common/config/state/loader-config.d.ts +3 -0
- package/dist/types/common/config/state/loader-config.d.ts.map +1 -0
- package/dist/types/common/config/state/originals.d.ts +2 -0
- package/dist/types/common/config/state/originals.d.ts.map +1 -0
- package/dist/types/common/config/state/runtime.d.ts +3 -0
- package/dist/types/common/config/state/runtime.d.ts.map +1 -0
- package/dist/types/common/constants/environment-variables.d.ts +4 -0
- package/dist/types/common/constants/environment-variables.d.ts.map +1 -0
- package/dist/types/common/context/shared-context.d.ts +5 -0
- package/dist/types/common/context/shared-context.d.ts.map +1 -0
- package/dist/types/common/deny-list/deny-list.d.ts +12 -0
- package/dist/types/common/deny-list/deny-list.d.ts.map +1 -0
- package/dist/types/common/drain/drain.d.ts +17 -0
- package/dist/types/common/drain/drain.d.ts.map +1 -0
- package/dist/types/common/event-emitter/contextual-ee.d.ts +4 -0
- package/dist/types/common/event-emitter/contextual-ee.d.ts.map +1 -0
- package/dist/types/common/event-emitter/handle.d.ts +3 -0
- package/dist/types/common/event-emitter/handle.d.ts.map +1 -0
- package/dist/types/common/event-emitter/register-handler.d.ts +8 -0
- package/dist/types/common/event-emitter/register-handler.d.ts.map +1 -0
- package/dist/types/common/event-listener/event-listener-opts.d.ts +10 -0
- package/dist/types/common/event-listener/event-listener-opts.d.ts.map +1 -0
- package/dist/types/common/harvest/harvest-scheduler.d.ts +21 -0
- package/dist/types/common/harvest/harvest-scheduler.d.ts.map +1 -0
- package/dist/types/common/harvest/harvest.d.ts +58 -0
- package/dist/types/common/harvest/harvest.d.ts.map +1 -0
- package/dist/types/common/ids/id.d.ts +2 -0
- package/dist/types/common/ids/id.d.ts.map +1 -0
- package/dist/types/common/ids/unique-id.d.ts +5 -0
- package/dist/types/common/ids/unique-id.d.ts.map +1 -0
- package/dist/types/common/metrics/framework-detection.d.ts +2 -0
- package/dist/types/common/metrics/framework-detection.d.ts.map +1 -0
- package/dist/types/common/metrics/paint-metrics.d.ts +2 -0
- package/dist/types/common/metrics/paint-metrics.d.ts.map +1 -0
- package/dist/types/common/serialize/bel-serializer.d.ts +5 -0
- package/dist/types/common/serialize/bel-serializer.d.ts.map +1 -0
- package/dist/types/common/timing/nav-timing.d.ts +5 -0
- package/dist/types/common/timing/nav-timing.d.ts.map +1 -0
- package/dist/types/common/timing/now.d.ts +2 -0
- package/dist/types/common/timing/now.d.ts.map +1 -0
- package/dist/types/common/unload/eol.d.ts +8 -0
- package/dist/types/common/unload/eol.d.ts.map +1 -0
- package/dist/types/common/url/clean-url.d.ts +2 -0
- package/dist/types/common/url/clean-url.d.ts.map +1 -0
- package/dist/types/common/url/encode.d.ts +5 -0
- package/dist/types/common/url/encode.d.ts.map +1 -0
- package/dist/types/common/url/location.d.ts +2 -0
- package/dist/types/common/url/location.d.ts.map +1 -0
- package/dist/types/common/url/parse-url.d.ts +2 -0
- package/dist/types/common/url/parse-url.d.ts.map +1 -0
- package/dist/types/common/url/protocol.d.ts +7 -0
- package/dist/types/common/url/protocol.d.ts.map +1 -0
- package/dist/types/common/util/console.d.ts +8 -0
- package/dist/types/common/util/console.d.ts.map +1 -0
- package/dist/types/common/util/data-size.d.ts +2 -0
- package/dist/types/common/util/data-size.d.ts.map +1 -0
- package/dist/types/common/util/feature-flags.d.ts +3 -0
- package/dist/types/common/util/feature-flags.d.ts.map +1 -0
- package/dist/types/common/util/get-or-set.d.ts +2 -0
- package/dist/types/common/util/get-or-set.d.ts.map +1 -0
- package/dist/types/common/util/global-scope.d.ts +13 -0
- package/dist/types/common/util/global-scope.d.ts.map +1 -0
- package/dist/types/common/util/map-own.d.ts +3 -0
- package/dist/types/common/util/map-own.d.ts.map +1 -0
- package/dist/types/common/util/obfuscate.d.ts +8 -0
- package/dist/types/common/util/obfuscate.d.ts.map +1 -0
- package/dist/types/common/util/s-hash.d.ts +2 -0
- package/dist/types/common/util/s-hash.d.ts.map +1 -0
- package/dist/types/common/util/single.d.ts +2 -0
- package/dist/types/common/util/single.d.ts.map +1 -0
- package/dist/types/common/util/stringify.d.ts +8 -0
- package/dist/types/common/util/stringify.d.ts.map +1 -0
- package/dist/types/common/util/submit-data.d.ts +35 -0
- package/dist/types/common/util/submit-data.d.ts.map +1 -0
- package/dist/types/common/util/traverse.d.ts +2 -0
- package/dist/types/common/util/traverse.d.ts.map +1 -0
- package/dist/types/common/util/user-agent.d.ts +5 -0
- package/dist/types/common/util/user-agent.d.ts.map +1 -0
- package/dist/types/common/window/load.d.ts +3 -0
- package/dist/types/common/window/load.d.ts.map +1 -0
- package/dist/types/common/window/nreum.d.ts +14 -0
- package/dist/types/common/window/nreum.d.ts.map +1 -0
- package/dist/types/common/window/page-visibility.d.ts +7 -0
- package/dist/types/common/window/page-visibility.d.ts.map +1 -0
- package/dist/types/common/window/session-storage.d.ts +18 -0
- package/dist/types/common/window/session-storage.d.ts.map +1 -0
- package/dist/types/common/window/supports-performance-observer.d.ts +2 -0
- package/dist/types/common/window/supports-performance-observer.d.ts.map +1 -0
- package/dist/types/common/wrap/index.d.ts +12 -0
- package/dist/types/common/wrap/index.d.ts.map +1 -0
- package/dist/types/common/wrap/wrap-console.d.ts +16 -0
- package/dist/types/common/wrap/wrap-console.d.ts.map +1 -0
- package/dist/types/common/wrap/wrap-events.d.ts +17 -0
- package/dist/types/common/wrap/wrap-events.d.ts.map +1 -0
- package/dist/types/common/wrap/wrap-fetch.d.ts +18 -0
- package/dist/types/common/wrap/wrap-fetch.d.ts.map +1 -0
- package/dist/types/common/wrap/wrap-function.d.ts +28 -0
- package/dist/types/common/wrap/wrap-function.d.ts.map +1 -0
- package/dist/types/common/wrap/wrap-history.d.ts +16 -0
- package/dist/types/common/wrap/wrap-history.d.ts.map +1 -0
- package/dist/types/common/wrap/wrap-jsonp.d.ts +16 -0
- package/dist/types/common/wrap/wrap-jsonp.d.ts.map +1 -0
- package/dist/types/common/wrap/wrap-mutation.d.ts +16 -0
- package/dist/types/common/wrap/wrap-mutation.d.ts.map +1 -0
- package/dist/types/common/wrap/wrap-promise.d.ts +17 -0
- package/dist/types/common/wrap/wrap-promise.d.ts.map +1 -0
- package/dist/types/common/wrap/wrap-raf.d.ts +16 -0
- package/dist/types/common/wrap/wrap-raf.d.ts.map +1 -0
- package/dist/types/common/wrap/wrap-timer.d.ts +17 -0
- package/dist/types/common/wrap/wrap-timer.d.ts.map +1 -0
- package/dist/types/common/wrap/wrap-xhr.d.ts +16 -0
- package/dist/types/common/wrap/wrap-xhr.d.ts.map +1 -0
- package/dist/types/features/ajax/aggregate/index.d.ts +16 -0
- package/dist/types/features/ajax/aggregate/index.d.ts.map +1 -0
- package/dist/types/features/ajax/constants.d.ts +2 -0
- package/dist/types/features/ajax/constants.d.ts.map +1 -0
- package/dist/types/features/ajax/index.d.ts +2 -0
- package/dist/types/features/ajax/index.d.ts.map +1 -0
- package/dist/types/features/ajax/instrument/distributed-tracing.d.ts +19 -0
- package/dist/types/features/ajax/instrument/distributed-tracing.d.ts.map +1 -0
- package/dist/types/features/ajax/instrument/index.d.ts +9 -0
- package/dist/types/features/ajax/instrument/index.d.ts.map +1 -0
- package/dist/types/features/ajax/instrument/response-size.d.ts +2 -0
- package/dist/types/features/ajax/instrument/response-size.d.ts.map +1 -0
- package/dist/types/features/jserrors/aggregate/canonical-function-name.d.ts +2 -0
- package/dist/types/features/jserrors/aggregate/canonical-function-name.d.ts.map +1 -0
- package/dist/types/features/jserrors/aggregate/compute-stack-trace.d.ts +22 -0
- package/dist/types/features/jserrors/aggregate/compute-stack-trace.d.ts.map +1 -0
- package/dist/types/features/jserrors/aggregate/format-stack-trace.d.ts +3 -0
- package/dist/types/features/jserrors/aggregate/format-stack-trace.d.ts.map +1 -0
- package/dist/types/features/jserrors/aggregate/index.d.ts +24 -0
- package/dist/types/features/jserrors/aggregate/index.d.ts.map +1 -0
- package/dist/types/features/jserrors/aggregate/string-hash-code.d.ts +2 -0
- package/dist/types/features/jserrors/aggregate/string-hash-code.d.ts.map +1 -0
- package/dist/types/features/jserrors/constants.d.ts +3 -0
- package/dist/types/features/jserrors/constants.d.ts.map +1 -0
- package/dist/types/features/jserrors/index.d.ts +2 -0
- package/dist/types/features/jserrors/index.d.ts.map +1 -0
- package/dist/types/features/jserrors/instrument/debug.d.ts +2 -0
- package/dist/types/features/jserrors/instrument/debug.d.ts.map +1 -0
- package/dist/types/features/jserrors/instrument/index.d.ts +22 -0
- package/dist/types/features/jserrors/instrument/index.d.ts.map +1 -0
- package/dist/types/features/metrics/aggregate/index.d.ts +12 -0
- package/dist/types/features/metrics/aggregate/index.d.ts.map +1 -0
- package/dist/types/features/metrics/constants.d.ts +6 -0
- package/dist/types/features/metrics/constants.d.ts.map +1 -0
- package/dist/types/features/metrics/index.d.ts +2 -0
- package/dist/types/features/metrics/index.d.ts.map +1 -0
- package/dist/types/features/metrics/instrument/index.d.ts +7 -0
- package/dist/types/features/metrics/instrument/index.d.ts.map +1 -0
- package/dist/types/features/metrics/instrument/workers-helper.d.ts +7 -0
- package/dist/types/features/metrics/instrument/workers-helper.d.ts.map +1 -0
- package/dist/types/features/page_action/aggregate/index.d.ts +24 -0
- package/dist/types/features/page_action/aggregate/index.d.ts.map +1 -0
- package/dist/types/features/page_action/constants.d.ts +2 -0
- package/dist/types/features/page_action/constants.d.ts.map +1 -0
- package/dist/types/features/page_action/index.d.ts +2 -0
- package/dist/types/features/page_action/index.d.ts.map +1 -0
- package/dist/types/features/page_action/instrument/index.d.ts +6 -0
- package/dist/types/features/page_action/instrument/index.d.ts.map +1 -0
- package/dist/types/features/page_view_event/aggregate/index.d.ts +9 -0
- package/dist/types/features/page_view_event/aggregate/index.d.ts.map +1 -0
- package/dist/types/features/page_view_event/aggregate/initialized-features.d.ts +8 -0
- package/dist/types/features/page_view_event/aggregate/initialized-features.d.ts.map +1 -0
- package/dist/types/features/page_view_event/constants.d.ts +5 -0
- package/dist/types/features/page_view_event/constants.d.ts.map +1 -0
- package/dist/types/features/page_view_event/index.d.ts +2 -0
- package/dist/types/features/page_view_event/index.d.ts.map +1 -0
- package/dist/types/features/page_view_event/instrument/index.d.ts +6 -0
- package/dist/types/features/page_view_event/instrument/index.d.ts.map +1 -0
- package/dist/types/features/page_view_timing/aggregate/index.d.ts +33 -0
- package/dist/types/features/page_view_timing/aggregate/index.d.ts.map +1 -0
- package/dist/types/features/page_view_timing/constants.d.ts +2 -0
- package/dist/types/features/page_view_timing/constants.d.ts.map +1 -0
- package/dist/types/features/page_view_timing/first-paint.d.ts +2 -0
- package/dist/types/features/page_view_timing/first-paint.d.ts.map +1 -0
- package/dist/types/features/page_view_timing/index.d.ts +2 -0
- package/dist/types/features/page_view_timing/index.d.ts.map +1 -0
- package/dist/types/features/page_view_timing/instrument/index.d.ts +6 -0
- package/dist/types/features/page_view_timing/instrument/index.d.ts.map +1 -0
- package/dist/types/features/page_view_timing/long-tasks.d.ts +2 -0
- package/dist/types/features/page_view_timing/long-tasks.d.ts.map +1 -0
- package/dist/types/features/session_trace/aggregate/index.d.ts +77 -0
- package/dist/types/features/session_trace/aggregate/index.d.ts.map +1 -0
- package/dist/types/features/session_trace/constants.d.ts +13 -0
- package/dist/types/features/session_trace/constants.d.ts.map +1 -0
- package/dist/types/features/session_trace/index.d.ts +2 -0
- package/dist/types/features/session_trace/index.d.ts.map +1 -0
- package/dist/types/features/session_trace/instrument/index.d.ts +11 -0
- package/dist/types/features/session_trace/instrument/index.d.ts.map +1 -0
- package/dist/types/features/spa/aggregate/index.d.ts +25 -0
- package/dist/types/features/spa/aggregate/index.d.ts.map +1 -0
- package/dist/types/features/spa/aggregate/interaction-node.d.ts +15 -0
- package/dist/types/features/spa/aggregate/interaction-node.d.ts.map +1 -0
- package/dist/types/features/spa/aggregate/interaction.d.ts +20 -0
- package/dist/types/features/spa/aggregate/interaction.d.ts.map +1 -0
- package/dist/types/features/spa/aggregate/serializer.d.ts +15 -0
- package/dist/types/features/spa/aggregate/serializer.d.ts.map +1 -0
- package/dist/types/features/spa/constants.d.ts +23 -0
- package/dist/types/features/spa/constants.d.ts.map +1 -0
- package/dist/types/features/spa/index.d.ts +2 -0
- package/dist/types/features/spa/index.d.ts.map +1 -0
- package/dist/types/features/spa/instrument/index.d.ts +8 -0
- package/dist/types/features/spa/instrument/index.d.ts.map +1 -0
- package/dist/types/features/utils/aggregate-base.d.ts +4 -0
- package/dist/types/features/utils/aggregate-base.d.ts.map +1 -0
- package/dist/types/features/utils/feature-base.d.ts +23 -0
- package/dist/types/features/utils/feature-base.d.ts.map +1 -0
- package/dist/types/features/utils/handler-cache.d.ts +22 -0
- package/dist/types/features/utils/handler-cache.d.ts.map +1 -0
- package/dist/types/features/utils/instrument-base.d.ts +27 -0
- package/dist/types/features/utils/instrument-base.d.ts.map +1 -0
- package/dist/types/features/utils/lazy-loader.d.ts +13 -0
- package/dist/types/features/utils/lazy-loader.d.ts.map +1 -0
- package/dist/types/index.d.ts +12 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/loaders/agent.d.ts +20 -0
- package/dist/types/loaders/agent.d.ts.map +1 -0
- package/dist/types/loaders/api/api.d.ts +17 -0
- package/dist/types/loaders/api/api.d.ts.map +1 -0
- package/dist/types/loaders/api/apiAsync.d.ts +2 -0
- package/dist/types/loaders/api/apiAsync.d.ts.map +1 -0
- package/dist/types/loaders/browser-agent.d.ts +9 -0
- package/dist/types/loaders/browser-agent.d.ts.map +1 -0
- package/dist/types/loaders/configure/configure.d.ts +10 -0
- package/dist/types/loaders/configure/configure.d.ts.map +1 -0
- package/dist/types/loaders/features/enabled-features.d.ts +2 -0
- package/dist/types/loaders/features/enabled-features.d.ts.map +1 -0
- package/dist/types/loaders/features/featureDependencies.d.ts +3 -0
- package/dist/types/loaders/features/featureDependencies.d.ts.map +1 -0
- package/dist/types/loaders/features/features.d.ts +18 -0
- package/dist/types/loaders/features/features.d.ts.map +1 -0
- package/dist/types/loaders/micro-agent.d.ts +25 -0
- package/dist/types/loaders/micro-agent.d.ts.map +1 -0
- package/dist/types/loaders/worker-agent.d.ts +8 -0
- package/dist/types/loaders/worker-agent.d.ts.map +1 -0
- package/package.json +231 -69
- package/src/cdn/lite.js +18 -0
- package/src/cdn/polyfills/lite.js +7 -0
- package/src/cdn/polyfills/pro.js +7 -0
- package/src/cdn/polyfills/spa.js +7 -0
- package/src/cdn/polyfills.js +17 -0
- package/src/cdn/pro.js +27 -0
- package/src/cdn/spa.js +28 -0
- package/src/cdn/worker.js +21 -0
- package/src/common/aggregate/aggregator.js +171 -0
- package/src/common/browser-version/firefox-version.js +10 -0
- package/src/common/browser-version/ios-version.js +10 -0
- package/src/common/config/config.js +12 -0
- package/src/common/config/state/configurable.js +26 -0
- package/src/common/config/state/info.js +49 -0
- package/src/common/config/state/init.js +56 -0
- package/src/common/config/state/loader-config.js +25 -0
- package/src/common/config/state/originals.js +3 -0
- package/src/common/config/state/runtime.js +45 -0
- package/src/common/constants/environment-variables.js +11 -0
- package/src/common/context/shared-context.js +21 -0
- package/src/common/deny-list/deny-list.js +116 -0
- package/src/common/drain/drain.js +119 -0
- package/src/common/event-emitter/contextual-ee.js +159 -0
- package/src/common/event-emitter/handle.js +17 -0
- package/src/common/event-emitter/register-handler.js +25 -0
- package/src/common/event-listener/event-listener-opts.js +41 -0
- package/src/common/harvest/harvest-scheduler.js +112 -0
- package/src/common/harvest/harvest.js +248 -0
- package/src/common/ids/id.js +23 -0
- package/src/common/ids/unique-id.js +81 -0
- package/src/common/metrics/framework-detection.js +71 -0
- package/src/common/metrics/paint-metrics.js +6 -0
- package/src/common/serialize/bel-serializer.js +93 -0
- package/src/common/timing/nav-timing.js +70 -0
- package/src/common/timing/now.js +9 -0
- package/src/common/unload/eol.js +63 -0
- package/src/common/url/clean-url.js +10 -0
- package/src/common/url/encode.js +75 -0
- package/src/common/url/location.js +8 -0
- package/src/common/url/parse-url.js +71 -0
- package/src/common/url/protocol.js +19 -0
- package/src/common/util/console.js +11 -0
- package/src/common/util/data-size.js +21 -0
- package/src/common/util/feature-flags.js +38 -0
- package/src/common/util/get-or-set.js +34 -0
- package/src/common/util/global-scope.js +48 -0
- package/src/common/util/map-own.js +22 -0
- package/src/common/util/map-own.test.js +52 -0
- package/src/common/util/obfuscate.js +73 -0
- package/src/common/util/s-hash.js +14 -0
- package/src/common/util/single.js +18 -0
- package/src/common/util/stringify.js +42 -0
- package/src/common/util/submit-data.js +101 -0
- package/src/common/util/traverse.js +36 -0
- package/src/common/util/user-agent.js +56 -0
- package/src/common/window/load.js +15 -0
- package/src/common/window/nreum.js +110 -0
- package/src/common/window/page-visibility.js +24 -0
- package/src/common/window/session-storage.js +75 -0
- package/src/common/window/supports-performance-observer.js +10 -0
- package/src/common/wrap/index.js +18 -0
- package/src/common/wrap/wrap-console.js +47 -0
- package/src/common/wrap/wrap-events.js +106 -0
- package/src/common/wrap/wrap-fetch.js +109 -0
- package/src/common/wrap/wrap-function.js +248 -0
- package/src/common/wrap/wrap-history.js +48 -0
- package/src/common/wrap/wrap-jsonp.js +134 -0
- package/src/common/wrap/wrap-mutation.js +55 -0
- package/src/common/wrap/wrap-promise.js +165 -0
- package/src/common/wrap/wrap-raf.js +50 -0
- package/src/common/wrap/wrap-timer.js +67 -0
- package/src/common/wrap/wrap-xhr.js +213 -0
- package/src/features/ajax/aggregate/index.js +248 -0
- package/src/features/ajax/constants.js +3 -0
- package/src/features/ajax/index.js +1 -0
- package/src/features/ajax/instrument/distributed-tracing.js +166 -0
- package/src/features/ajax/instrument/index.js +380 -0
- package/src/features/ajax/instrument/response-size.js +18 -0
- package/src/features/jserrors/aggregate/canonical-function-name.js +14 -0
- package/src/features/jserrors/aggregate/canonical-function-name.test.js +13 -0
- package/src/features/jserrors/aggregate/compute-stack-trace.js +231 -0
- package/src/features/jserrors/aggregate/compute-stack-trace.test.js +297 -0
- package/src/features/jserrors/aggregate/format-stack-trace.js +30 -0
- package/src/features/jserrors/aggregate/format-stack-trace.test.js +39 -0
- package/src/features/jserrors/aggregate/index.js +310 -0
- package/src/features/jserrors/aggregate/string-hash-code.js +17 -0
- package/src/features/jserrors/aggregate/string-hash-code.test.js +12 -0
- package/src/features/jserrors/constants.js +4 -0
- package/src/features/jserrors/index.js +1 -0
- package/src/features/jserrors/instrument/debug.js +36 -0
- package/src/features/jserrors/instrument/index.js +149 -0
- package/src/features/metrics/aggregate/index.js +134 -0
- package/src/features/metrics/constants.js +7 -0
- package/src/features/metrics/index.js +1 -0
- package/src/features/metrics/instrument/index.js +44 -0
- package/src/features/metrics/instrument/workers-helper.js +110 -0
- package/src/features/page_action/aggregate/index.js +113 -0
- package/src/features/page_action/constants.js +3 -0
- package/src/features/page_action/index.js +1 -0
- package/src/features/page_action/instrument/index.js +15 -0
- package/src/features/page_view_event/aggregate/index.js +134 -0
- package/src/features/page_view_event/aggregate/initialized-features.js +31 -0
- package/src/features/page_view_event/constants.js +6 -0
- package/src/features/page_view_event/index.js +1 -0
- package/src/features/page_view_event/instrument/index.js +33 -0
- package/src/features/page_view_timing/aggregate/index.js +246 -0
- package/src/features/page_view_timing/constants.js +3 -0
- package/src/features/page_view_timing/first-paint.js +41 -0
- package/src/features/page_view_timing/index.js +1 -0
- package/src/features/page_view_timing/instrument/index.js +30 -0
- package/src/features/page_view_timing/long-tasks.js +60 -0
- package/src/features/session_trace/aggregate/index.js +410 -0
- package/src/features/session_trace/constants.js +15 -0
- package/src/features/session_trace/index.js +1 -0
- package/src/features/session_trace/instrument/index.js +126 -0
- package/src/features/spa/aggregate/index.js +738 -0
- package/src/features/spa/aggregate/interaction-node.js +85 -0
- package/src/features/spa/aggregate/interaction-node.test.js +17 -0
- package/src/features/spa/aggregate/interaction.js +112 -0
- package/src/features/spa/aggregate/serializer.js +198 -0
- package/src/features/spa/constants.js +36 -0
- package/src/features/spa/index.js +1 -0
- package/src/features/spa/instrument/index.js +112 -0
- package/src/features/utils/aggregate-base.js +7 -0
- package/src/features/utils/feature-base.js +51 -0
- package/src/features/utils/handler-cache.js +60 -0
- package/src/features/utils/instrument-base.js +68 -0
- package/src/features/utils/lazy-loader.js +37 -0
- package/src/index.js +15 -0
- package/src/loaders/agent.js +80 -0
- package/src/loaders/api/api.js +175 -0
- package/src/loaders/api/apiAsync.js +92 -0
- package/src/loaders/browser-agent.js +33 -0
- package/src/loaders/configure/configure.js +39 -0
- package/src/loaders/features/enabled-features.js +16 -0
- package/src/loaders/features/featureDependencies.js +26 -0
- package/src/loaders/features/features.js +25 -0
- package/src/loaders/micro-agent.js +84 -0
- package/src/loaders/worker-agent.js +24 -0
- package/dist/bundled/es5/index.js +0 -2
- package/dist/bundled/es5/index.js.map +0 -1
- package/dist/bundled/es6/index.js +0 -2
- package/dist/bundled/es6/index.js.map +0 -1
- package/dist/cjs/index.d.ts +0 -19
- package/dist/cjs/index.js.map +0 -1
- package/dist/cjs/types.d.ts +0 -94
- package/dist/cjs/types.js +0 -28
- package/dist/cjs/types.js.map +0 -1
- package/dist/cjs/utils/api/api.d.ts +0 -10
- package/dist/cjs/utils/api/api.js +0 -40
- package/dist/cjs/utils/api/api.js.map +0 -1
- package/dist/cjs/utils/config/build-configs.d.ts +0 -6
- package/dist/cjs/utils/config/build-configs.js +0 -68
- package/dist/cjs/utils/config/build-configs.js.map +0 -1
- package/dist/cjs/utils/features/features.d.ts +0 -5
- package/dist/cjs/utils/features/features.js +0 -14
- package/dist/cjs/utils/features/features.js.map +0 -1
- package/dist/cjs/utils/features/initialize.d.ts +0 -5
- package/dist/cjs/utils/features/initialize.js +0 -51
- package/dist/cjs/utils/features/initialize.js.map +0 -1
- package/dist/es/index.d.ts +0 -19
- package/dist/es/index.js +0 -55
- package/dist/es/index.js.map +0 -1
- package/dist/es/types.d.ts +0 -94
- package/dist/es/types.js +0 -24
- package/dist/es/types.js.map +0 -1
- package/dist/es/utils/api/api.d.ts +0 -10
- package/dist/es/utils/api/api.js +0 -36
- package/dist/es/utils/api/api.js.map +0 -1
- package/dist/es/utils/config/build-configs.d.ts +0 -6
- package/dist/es/utils/config/build-configs.js +0 -64
- package/dist/es/utils/config/build-configs.js.map +0 -1
- package/dist/es/utils/features/features.d.ts +0 -5
- package/dist/es/utils/features/features.js +0 -10
- package/dist/es/utils/features/features.js.map +0 -1
- package/dist/es/utils/features/initialize.d.ts +0 -5
- package/dist/es/utils/features/initialize.js +0 -24
- package/dist/es/utils/features/initialize.js.map +0 -1
- package/dist/umd/index.d.ts +0 -19
- package/dist/umd/index.js +0 -69
- package/dist/umd/index.js.map +0 -1
- package/dist/umd/types.d.ts +0 -94
- package/dist/umd/types.js +0 -38
- package/dist/umd/types.js.map +0 -1
- package/dist/umd/utils/api/api.d.ts +0 -10
- package/dist/umd/utils/api/api.js +0 -50
- package/dist/umd/utils/api/api.js.map +0 -1
- package/dist/umd/utils/config/build-configs.d.ts +0 -6
- package/dist/umd/utils/config/build-configs.js +0 -78
- package/dist/umd/utils/config/build-configs.js.map +0 -1
- package/dist/umd/utils/features/features.d.ts +0 -5
- package/dist/umd/utils/features/features.js +0 -24
- package/dist/umd/utils/features/features.js.map +0 -1
- package/dist/umd/utils/features/initialize.d.ts +0 -5
- package/dist/umd/utils/features/initialize.js +0 -63
- package/dist/umd/utils/features/initialize.js.map +0 -1
- package/dist/webpack-analysis.html +0 -38
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.scopedEE = scopedEE;
|
|
7
|
+
exports.wrapRaf = wrapRaf;
|
|
8
|
+
var _contextualEe = require("../event-emitter/contextual-ee");
|
|
9
|
+
var _wrapFunction = require("./wrap-function");
|
|
10
|
+
var _globalScope = require("../util/global-scope");
|
|
11
|
+
/*
|
|
12
|
+
* Copyright 2020 New Relic Corporation. All rights reserved.
|
|
13
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
14
|
+
*/
|
|
15
|
+
/**
|
|
16
|
+
* @file Wraps `window.requestAnimationFrame` for instrumentation.
|
|
17
|
+
* This module is used by: jserror, session_trace.
|
|
18
|
+
*/
|
|
19
|
+
|
|
20
|
+
const wrapped = {};
|
|
21
|
+
const RAF_NAME = 'requestAnimationFrame';
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* Wraps the `window.requestAnimationFrame` method to emit events on start, end, and error, in the context of a new
|
|
25
|
+
* event emitter ("raf") scoped only to requestAnimationFrame. Also wraps the callback passed to the method.
|
|
26
|
+
* @param {Object} sharedEE - The shared event emitter on which a new scoped event emitter will be based.
|
|
27
|
+
* @returns {Object} Scoped event emitter with a debug ID of `raf`.
|
|
28
|
+
*/
|
|
29
|
+
function wrapRaf(sharedEE) {
|
|
30
|
+
const ee = scopedEE(sharedEE);
|
|
31
|
+
if (!_globalScope.isBrowserScope || wrapped[ee.debugId]++)
|
|
32
|
+
// Notice if our wrapping never ran yet, the falsey NaN will not early return; but if it has,
|
|
33
|
+
{
|
|
34
|
+
return ee;
|
|
35
|
+
} // then we increment the count to track # of feats using this at runtime. (RAF is only avail in browser DOM context.)
|
|
36
|
+
wrapped[ee.debugId] = 1;
|
|
37
|
+
var wrapFn = (0, _wrapFunction.createWrapperWithEmitter)(ee);
|
|
38
|
+
wrapFn.inPlace(window, [RAF_NAME], 'raf-');
|
|
39
|
+
ee.on('raf-start', function (args) {
|
|
40
|
+
// Wrap the callback handed to requestAnimationFrame
|
|
41
|
+
args[0] = wrapFn(args[0], 'fn-');
|
|
42
|
+
});
|
|
43
|
+
return ee;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* Returns an event emitter scoped specifically for the `raf` context. This scoping is a remnant from when all the
|
|
48
|
+
* features shared the same group in the event, to isolate events between features. It will likely be revisited.
|
|
49
|
+
* @param {Object} sharedEE - Optional event emitter on which to base the scoped emitter.
|
|
50
|
+
* Uses `ee` on the global scope if undefined).
|
|
51
|
+
* @returns {Object} Scoped event emitter with a debug ID of 'raf'.
|
|
52
|
+
*/
|
|
53
|
+
function scopedEE(sharedEE) {
|
|
54
|
+
return (sharedEE || _contextualEe.ee).get('raf');
|
|
55
|
+
}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.scopedEE = scopedEE;
|
|
7
|
+
exports.wrapTimer = wrapTimer;
|
|
8
|
+
var _contextualEe = require("../event-emitter/contextual-ee");
|
|
9
|
+
var _wrapFunction = require("./wrap-function");
|
|
10
|
+
var _globalScope = require("../util/global-scope");
|
|
11
|
+
/*
|
|
12
|
+
* Copyright 2020 New Relic Corporation. All rights reserved.
|
|
13
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
14
|
+
*/
|
|
15
|
+
/**
|
|
16
|
+
* @file Wraps native timeout and interval methods for instrumentation.
|
|
17
|
+
* This module is used by: jserrors, session_trace, spa.
|
|
18
|
+
*/
|
|
19
|
+
|
|
20
|
+
const wrapped = {};
|
|
21
|
+
const SET_TIMEOUT = 'setTimeout';
|
|
22
|
+
const SET_INTERVAL = 'setInterval';
|
|
23
|
+
const CLEAR_TIMEOUT = 'clearTimeout';
|
|
24
|
+
const START = '-start';
|
|
25
|
+
const DASH = '-';
|
|
26
|
+
const TIMER_FNS = [SET_TIMEOUT, 'setImmediate', SET_INTERVAL, CLEAR_TIMEOUT, 'clearImmediate'];
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* Wraps the global `setTimeout`, `setImmediate`, `setInterval`, `clearTimeout`, and `clearImmediate` functions to emit
|
|
30
|
+
* events on start, end, and error, in the context of a new event emitter scoped only to timer functions. Also wraps
|
|
31
|
+
* the callbacks of `setTimeout` and `setInterval`.
|
|
32
|
+
* @param {Object} sharedEE - The shared event emitter on which a new scoped event emitter will be based.
|
|
33
|
+
* @returns {Object} Scoped event emitter with a debug ID of `timer`.
|
|
34
|
+
*/
|
|
35
|
+
//eslint-disable-next-line
|
|
36
|
+
function wrapTimer(sharedEE) {
|
|
37
|
+
const ee = scopedEE(sharedEE);
|
|
38
|
+
if (wrapped[ee.debugId]++)
|
|
39
|
+
// Notice if our wrapping never ran yet, the falsey NaN will not early return; but if it has,
|
|
40
|
+
{
|
|
41
|
+
return ee;
|
|
42
|
+
} // then we increment the count to track # of feats using this at runtime.
|
|
43
|
+
wrapped[ee.debugId] = 1;
|
|
44
|
+
var wrapFn = (0, _wrapFunction.createWrapperWithEmitter)(ee);
|
|
45
|
+
wrapFn.inPlace(_globalScope.globalScope, TIMER_FNS.slice(0, 2), SET_TIMEOUT + DASH);
|
|
46
|
+
wrapFn.inPlace(_globalScope.globalScope, TIMER_FNS.slice(2, 3), SET_INTERVAL + DASH);
|
|
47
|
+
wrapFn.inPlace(_globalScope.globalScope, TIMER_FNS.slice(3), CLEAR_TIMEOUT + DASH);
|
|
48
|
+
ee.on(SET_INTERVAL + START, interval);
|
|
49
|
+
ee.on(SET_TIMEOUT + START, timer);
|
|
50
|
+
function interval(args, obj, type) {
|
|
51
|
+
args[0] = wrapFn(args[0], 'fn-', null, type);
|
|
52
|
+
}
|
|
53
|
+
function timer(args, obj, type) {
|
|
54
|
+
this.method = type;
|
|
55
|
+
this.timerDuration = isNaN(args[1]) ? 0 : +args[1];
|
|
56
|
+
args[0] = wrapFn(args[0], 'fn-', this, type);
|
|
57
|
+
}
|
|
58
|
+
return ee;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* Returns an event emitter scoped specifically for the `timer` context. This scoping is a remnant from when all the
|
|
63
|
+
* features shared the same group in the event, to isolate events between features. It will likely be revisited.
|
|
64
|
+
* @param {Object} sharedEE - Optional event emitter on which to base the scoped emitter.
|
|
65
|
+
* Uses `ee` on the global scope if undefined).
|
|
66
|
+
* @returns {Object} Scoped event emitter with a debug ID of 'timer'.
|
|
67
|
+
*/
|
|
68
|
+
function scopedEE(sharedEE) {
|
|
69
|
+
return (sharedEE || _contextualEe.ee).get('timer');
|
|
70
|
+
}
|
|
@@ -0,0 +1,206 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.scopedEE = scopedEE;
|
|
7
|
+
exports.wrapXhr = wrapXhr;
|
|
8
|
+
var _wrapEvents = require("./wrap-events");
|
|
9
|
+
var _contextualEe = require("../event-emitter/contextual-ee");
|
|
10
|
+
var _eventListenerOpts = require("../event-listener/event-listener-opts");
|
|
11
|
+
var _wrapFunction = require("./wrap-function");
|
|
12
|
+
var _config = require("../config/config");
|
|
13
|
+
var _globalScope = require("../util/global-scope");
|
|
14
|
+
var _console = require("../util/console");
|
|
15
|
+
/*
|
|
16
|
+
* Copyright 2020 New Relic Corporation. All rights reserved.
|
|
17
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
18
|
+
*/
|
|
19
|
+
/**
|
|
20
|
+
* @file Wraps AJAX (XHR) related methods for instrumentation.
|
|
21
|
+
* This module is used by: ajax, jserrors, spa.
|
|
22
|
+
*/
|
|
23
|
+
|
|
24
|
+
const wrapped = {};
|
|
25
|
+
const XHR_PROPS = ['open', 'send']; // these are the specific funcs being wrapped on all XMLHttpRequests(.prototype)
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* Wraps the native XMLHttpRequest (XHR) object to emit custom events to its readystatechange event and an assortment
|
|
29
|
+
* of handlers. Adds instrumentation in context of a new event emitter scoped only to XHR.
|
|
30
|
+
* @param {Object} sharedEE - The shared event emitter on which a new scoped event emitter will be based.
|
|
31
|
+
* @returns {Object} Scoped event emitter with a debug ID of `xhr`.
|
|
32
|
+
*/
|
|
33
|
+
// eslint-disable-next-line
|
|
34
|
+
function wrapXhr(sharedEE) {
|
|
35
|
+
var baseEE = sharedEE || _contextualEe.ee;
|
|
36
|
+
const ee = scopedEE(baseEE);
|
|
37
|
+
if (wrapped[ee.debugId]++)
|
|
38
|
+
// Notice if our wrapping never ran yet, the falsey NaN will not early return; but if it has,
|
|
39
|
+
{
|
|
40
|
+
return ee;
|
|
41
|
+
} // then we increment the count to track # of feats using this at runtime.
|
|
42
|
+
wrapped[ee.debugId] = 1; // <- otherwise, first feature to wrap XHR
|
|
43
|
+
|
|
44
|
+
(0, _wrapEvents.wrapEvents)(baseEE); // wrap-events patches XMLHttpRequest.prototype.addEventListener for us
|
|
45
|
+
var wrapFn = (0, _wrapFunction.createWrapperWithEmitter)(ee);
|
|
46
|
+
var OrigXHR = _config.originals.XHR;
|
|
47
|
+
var MutationObserver = _config.originals.MO;
|
|
48
|
+
var Promise = _config.originals.PR;
|
|
49
|
+
var setImmediate = _config.originals.SI;
|
|
50
|
+
var READY_STATE_CHANGE = 'readystatechange';
|
|
51
|
+
var handlers = ['onload', 'onerror', 'onabort', 'onloadstart', 'onloadend', 'onprogress', 'ontimeout'];
|
|
52
|
+
var pendingXhrs = [];
|
|
53
|
+
var activeListeners = _globalScope.globalScope.XMLHttpRequest.listeners;
|
|
54
|
+
var XHR = _globalScope.globalScope.XMLHttpRequest = newXHR;
|
|
55
|
+
function newXHR(opts) {
|
|
56
|
+
var xhr = new OrigXHR(opts);
|
|
57
|
+
this.listeners = activeListeners ? [...activeListeners, intercept] : [intercept];
|
|
58
|
+
function intercept() {
|
|
59
|
+
try {
|
|
60
|
+
ee.emit('new-xhr', [xhr], xhr);
|
|
61
|
+
xhr.addEventListener(READY_STATE_CHANGE, wrapXHR, (0, _eventListenerOpts.eventListenerOpts)(false));
|
|
62
|
+
} catch (e) {
|
|
63
|
+
(0, _console.warn)('An error occured while intercepting XHR', e);
|
|
64
|
+
try {
|
|
65
|
+
ee.emit('internal-error', [e]);
|
|
66
|
+
} catch (err) {
|
|
67
|
+
// do nothing
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
this.listeners.forEach(listener => listener());
|
|
72
|
+
return xhr;
|
|
73
|
+
}
|
|
74
|
+
copy(OrigXHR, XHR);
|
|
75
|
+
XHR.prototype = OrigXHR.prototype;
|
|
76
|
+
wrapFn.inPlace(XHR.prototype, XHR_PROPS, '-xhr-', getObject);
|
|
77
|
+
ee.on('send-xhr-start', function (args, xhr) {
|
|
78
|
+
wrapOnreadystatechange(args, xhr);
|
|
79
|
+
enqueuePendingXhr(xhr);
|
|
80
|
+
});
|
|
81
|
+
ee.on('open-xhr-start', wrapOnreadystatechange);
|
|
82
|
+
function wrapOnreadystatechange(args, xhr) {
|
|
83
|
+
wrapFn.inPlace(xhr, ['onreadystatechange'], 'fn-', getObject);
|
|
84
|
+
}
|
|
85
|
+
function wrapXHR() {
|
|
86
|
+
var xhr = this;
|
|
87
|
+
var ctx = ee.context(xhr);
|
|
88
|
+
if (xhr.readyState > 3 && !ctx.resolved) {
|
|
89
|
+
ctx.resolved = true;
|
|
90
|
+
ee.emit('xhr-resolved', [], xhr);
|
|
91
|
+
}
|
|
92
|
+
wrapFn.inPlace(xhr, handlers, 'fn-', getObject);
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
// Wrapping the onreadystatechange property of XHRs takes some special tricks.
|
|
96
|
+
//
|
|
97
|
+
// The issue is that the onreadystatechange property may be assigned *after*
|
|
98
|
+
// send() is called against an XHR. This is of particular importance because
|
|
99
|
+
// jQuery uses a single onreadystatechange handler to implement all of the XHR
|
|
100
|
+
// callbacks thtat it provides, and it assigns that property after calling send.
|
|
101
|
+
//
|
|
102
|
+
// There are several 'obvious' approaches to wrapping the onreadystatechange
|
|
103
|
+
// when it's assigned after send:
|
|
104
|
+
//
|
|
105
|
+
// 1. Try to wrap the onreadystatechange handler from a readystatechange
|
|
106
|
+
// addEventListener callback (the addEventListener callback will fire before
|
|
107
|
+
// the onreadystatechange callback).
|
|
108
|
+
//
|
|
109
|
+
// Caveat: this doesn't work in Chrome or Safari, and in fact will cause
|
|
110
|
+
// the onreadystatechange handler to not be invoked at all during the
|
|
111
|
+
// firing cycle in which it is wrapped, which may break applications :(
|
|
112
|
+
//
|
|
113
|
+
// 2. Use Object.defineProperty to create a setter for the onreadystatechange
|
|
114
|
+
// property, and wrap from that setter.
|
|
115
|
+
//
|
|
116
|
+
// Caveat: onreadystatechange is not a configurable property in Safari or
|
|
117
|
+
// older versions of the Android browser.
|
|
118
|
+
//
|
|
119
|
+
// 3. Schedule wrapping of the onreadystatechange property using a setTimeout
|
|
120
|
+
// call issued just before the call to send.
|
|
121
|
+
//
|
|
122
|
+
// Caveat: sometimes, the onreadystatechange handler fires before the
|
|
123
|
+
// setTimeout, meaning the wrapping happens too late.
|
|
124
|
+
//
|
|
125
|
+
// The setTimeout approach is closest to what we use here: we want to schedule
|
|
126
|
+
// the wrapping of the onreadystatechange property when send is called, but
|
|
127
|
+
// ensure that our wrapping happens before onreadystatechange has a chance to
|
|
128
|
+
// fire.
|
|
129
|
+
//
|
|
130
|
+
// We achieve this using a hybrid approach:
|
|
131
|
+
//
|
|
132
|
+
// * In browsers that support MutationObserver, we use that to schedule wrapping
|
|
133
|
+
// of onreadystatechange.
|
|
134
|
+
//
|
|
135
|
+
// * We have discovered that MutationObserver in IE causes a memory leak, so we
|
|
136
|
+
// now will prefer setImmediate for IE, and use a resolved promise to schedule
|
|
137
|
+
// the wrapping in Edge (and other browsers that support promises)
|
|
138
|
+
//
|
|
139
|
+
// * In older browsers that don't support MutationObserver, we rely on the fact
|
|
140
|
+
// that the call to send is probably happening within a callback that we've
|
|
141
|
+
// already wrapped, and use our existing fn-end event callback to wrap the
|
|
142
|
+
// onreadystatechange at the end of the current callback.
|
|
143
|
+
//
|
|
144
|
+
|
|
145
|
+
if (MutationObserver) {
|
|
146
|
+
var resolved = Promise && Promise.resolve();
|
|
147
|
+
if (!setImmediate && !Promise) {
|
|
148
|
+
var toggle = 1;
|
|
149
|
+
var dummyNode = document.createTextNode(toggle);
|
|
150
|
+
new MutationObserver(drainPendingXhrs).observe(dummyNode, {
|
|
151
|
+
characterData: true
|
|
152
|
+
});
|
|
153
|
+
}
|
|
154
|
+
} else {
|
|
155
|
+
// this below case applies to web workers too
|
|
156
|
+
baseEE.on('fn-end', function (args) {
|
|
157
|
+
// We don't want to try to wrap onreadystatechange from within a
|
|
158
|
+
// readystatechange callback.
|
|
159
|
+
if (args[0] && args[0].type === READY_STATE_CHANGE) return;
|
|
160
|
+
drainPendingXhrs();
|
|
161
|
+
});
|
|
162
|
+
}
|
|
163
|
+
function enqueuePendingXhr(xhr) {
|
|
164
|
+
pendingXhrs.push(xhr);
|
|
165
|
+
if (MutationObserver) {
|
|
166
|
+
if (resolved) {
|
|
167
|
+
resolved.then(drainPendingXhrs);
|
|
168
|
+
} else if (setImmediate) {
|
|
169
|
+
setImmediate(drainPendingXhrs);
|
|
170
|
+
} else {
|
|
171
|
+
toggle = -toggle;
|
|
172
|
+
dummyNode.data = toggle;
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
function drainPendingXhrs() {
|
|
177
|
+
for (var i = 0; i < pendingXhrs.length; i++) {
|
|
178
|
+
wrapOnreadystatechange([], pendingXhrs[i]);
|
|
179
|
+
}
|
|
180
|
+
if (pendingXhrs.length) pendingXhrs = [];
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
// Use the object these methods are on as their
|
|
184
|
+
// context store for the event emitter
|
|
185
|
+
function getObject(args, obj) {
|
|
186
|
+
return obj;
|
|
187
|
+
}
|
|
188
|
+
function copy(from, to) {
|
|
189
|
+
for (var i in from) {
|
|
190
|
+
to[i] = from[i];
|
|
191
|
+
}
|
|
192
|
+
return to;
|
|
193
|
+
}
|
|
194
|
+
return ee;
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
/**
|
|
198
|
+
* Returns an event emitter scoped specifically for the `xhr` context. This scoping is a remnant from when all the
|
|
199
|
+
* features shared the same group in the event, to isolate events between features. It will likely be revisited.
|
|
200
|
+
* @param {Object} sharedEE - Optional event emitter on which to base the scoped emitter.
|
|
201
|
+
* Uses `ee` on the global scope if undefined).
|
|
202
|
+
* @returns {Object} Scoped event emitter with a debug ID of 'xhr'.
|
|
203
|
+
*/
|
|
204
|
+
function scopedEE(sharedEE) {
|
|
205
|
+
return (sharedEE || _contextualEe.ee).get('xhr');
|
|
206
|
+
}
|
|
@@ -0,0 +1,226 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.Aggregate = void 0;
|
|
7
|
+
var _registerHandler = require("../../../common/event-emitter/register-handler");
|
|
8
|
+
var _stringify = require("../../../common/util/stringify");
|
|
9
|
+
var _belSerializer = require("../../../common/serialize/bel-serializer");
|
|
10
|
+
var _handle = require("../../../common/event-emitter/handle");
|
|
11
|
+
var _config = require("../../../common/config/config");
|
|
12
|
+
var _harvestScheduler = require("../../../common/harvest/harvest-scheduler");
|
|
13
|
+
var _denyList = require("../../../common/deny-list/deny-list");
|
|
14
|
+
var _aggregateBase = require("../../utils/aggregate-base");
|
|
15
|
+
var _constants = require("../constants");
|
|
16
|
+
var _drain = require("../../../common/drain/drain");
|
|
17
|
+
var _features = require("../../../loaders/features/features");
|
|
18
|
+
var _constants2 = require("../../metrics/constants");
|
|
19
|
+
/*
|
|
20
|
+
* Copyright 2020 New Relic Corporation. All rights reserved.
|
|
21
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
22
|
+
*/
|
|
23
|
+
|
|
24
|
+
class Aggregate extends _aggregateBase.AggregateBase {
|
|
25
|
+
static featureName = _constants.FEATURE_NAME;
|
|
26
|
+
constructor(agentIdentifier, aggregator) {
|
|
27
|
+
super(agentIdentifier, aggregator, _constants.FEATURE_NAME);
|
|
28
|
+
let ajaxEvents = [];
|
|
29
|
+
let spaAjaxEvents = {};
|
|
30
|
+
let sentAjaxEvents = [];
|
|
31
|
+
let scheduler;
|
|
32
|
+
const ee = this.ee;
|
|
33
|
+
const harvestTimeSeconds = (0, _config.getConfigurationValue)(agentIdentifier, 'ajax.harvestTimeSeconds') || 10;
|
|
34
|
+
const MAX_PAYLOAD_SIZE = (0, _config.getConfigurationValue)(agentIdentifier, 'ajax.maxPayloadSize') || 1000000;
|
|
35
|
+
|
|
36
|
+
// Exposes these methods to browser test files -- future TO DO: can be removed once these fns are extracted from the constructor into class func
|
|
37
|
+
this.storeXhr = storeXhr;
|
|
38
|
+
this.prepareHarvest = prepareHarvest;
|
|
39
|
+
this.getStoredEvents = function () {
|
|
40
|
+
return {
|
|
41
|
+
ajaxEvents,
|
|
42
|
+
spaAjaxEvents
|
|
43
|
+
};
|
|
44
|
+
};
|
|
45
|
+
ee.on('interactionSaved', interaction => {
|
|
46
|
+
if (!spaAjaxEvents[interaction.id]) return;
|
|
47
|
+
// remove from the spaAjaxEvents buffer, and let spa harvest it
|
|
48
|
+
delete spaAjaxEvents[interaction.id];
|
|
49
|
+
});
|
|
50
|
+
ee.on('interactionDiscarded', interaction => {
|
|
51
|
+
if (!spaAjaxEvents[interaction.id] || !allAjaxIsEnabled()) return;
|
|
52
|
+
spaAjaxEvents[interaction.id].forEach(function (item) {
|
|
53
|
+
// move it from the spaAjaxEvents buffer to the ajaxEvents buffer for harvesting here
|
|
54
|
+
ajaxEvents.push(item);
|
|
55
|
+
});
|
|
56
|
+
delete spaAjaxEvents[interaction.id];
|
|
57
|
+
});
|
|
58
|
+
if (allAjaxIsEnabled()) (0, _denyList.setDenyList)((0, _config.getConfigurationValue)(agentIdentifier, 'ajax.deny_list'));
|
|
59
|
+
(0, _registerHandler.registerHandler)('xhr', storeXhr, this.featureName, this.ee);
|
|
60
|
+
if (allAjaxIsEnabled()) {
|
|
61
|
+
scheduler = new _harvestScheduler.HarvestScheduler('events', {
|
|
62
|
+
onFinished: onEventsHarvestFinished,
|
|
63
|
+
getPayload: prepareHarvest
|
|
64
|
+
}, this);
|
|
65
|
+
ee.on(`drain-${this.featureName}`, () => {
|
|
66
|
+
scheduler.startTimer(harvestTimeSeconds);
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
function storeXhr(params, metrics, startTime, endTime, type) {
|
|
70
|
+
metrics.time = startTime;
|
|
71
|
+
|
|
72
|
+
// send to session traces
|
|
73
|
+
var hash;
|
|
74
|
+
if (params.cat) {
|
|
75
|
+
hash = (0, _stringify.stringify)([params.status, params.cat]);
|
|
76
|
+
} else {
|
|
77
|
+
hash = (0, _stringify.stringify)([params.status, params.host, params.pathname]);
|
|
78
|
+
}
|
|
79
|
+
(0, _handle.handle)('bstXhrAgg', ['xhr', hash, params, metrics], undefined, _features.FEATURE_NAMES.sessionTrace, ee);
|
|
80
|
+
|
|
81
|
+
// store as metric
|
|
82
|
+
aggregator.store('xhr', hash, params, metrics);
|
|
83
|
+
if (!allAjaxIsEnabled()) {
|
|
84
|
+
return;
|
|
85
|
+
}
|
|
86
|
+
if (!(0, _denyList.shouldCollectEvent)(params)) {
|
|
87
|
+
if (params.hostname === (0, _config.getInfo)(agentIdentifier).errorBeacon) {
|
|
88
|
+
(0, _handle.handle)(_constants2.SUPPORTABILITY_METRIC_CHANNEL, ['Ajax/Events/Excluded/Agent'], undefined, _features.FEATURE_NAMES.metrics, ee);
|
|
89
|
+
} else {
|
|
90
|
+
(0, _handle.handle)(_constants2.SUPPORTABILITY_METRIC_CHANNEL, ['Ajax/Events/Excluded/App'], undefined, _features.FEATURE_NAMES.metrics, ee);
|
|
91
|
+
}
|
|
92
|
+
return;
|
|
93
|
+
}
|
|
94
|
+
var xhrContext = this;
|
|
95
|
+
var event = {
|
|
96
|
+
method: params.method,
|
|
97
|
+
status: params.status,
|
|
98
|
+
domain: params.host,
|
|
99
|
+
path: params.pathname,
|
|
100
|
+
requestSize: metrics.txSize,
|
|
101
|
+
responseSize: metrics.rxSize,
|
|
102
|
+
type: type,
|
|
103
|
+
startTime: startTime,
|
|
104
|
+
endTime: endTime,
|
|
105
|
+
callbackDuration: metrics.cbTime
|
|
106
|
+
};
|
|
107
|
+
if (xhrContext.dt) {
|
|
108
|
+
event.spanId = xhrContext.dt.spanId;
|
|
109
|
+
event.traceId = xhrContext.dt.traceId;
|
|
110
|
+
event.spanTimestamp = xhrContext.dt.timestamp;
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
// if the ajax happened inside an interaction, hold it until the interaction finishes
|
|
114
|
+
if (this.spaNode) {
|
|
115
|
+
var interactionId = this.spaNode.interaction.id;
|
|
116
|
+
spaAjaxEvents[interactionId] = spaAjaxEvents[interactionId] || [];
|
|
117
|
+
spaAjaxEvents[interactionId].push(event);
|
|
118
|
+
} else {
|
|
119
|
+
ajaxEvents.push(event);
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
function prepareHarvest(options) {
|
|
123
|
+
options = options || {};
|
|
124
|
+
if (ajaxEvents.length === 0) {
|
|
125
|
+
return null;
|
|
126
|
+
}
|
|
127
|
+
var payload = getPayload(ajaxEvents, options.maxPayloadSize || MAX_PAYLOAD_SIZE);
|
|
128
|
+
var payloadObjs = [];
|
|
129
|
+
for (var i = 0; i < payload.length; i++) {
|
|
130
|
+
payloadObjs.push({
|
|
131
|
+
body: {
|
|
132
|
+
e: payload[i]
|
|
133
|
+
}
|
|
134
|
+
});
|
|
135
|
+
}
|
|
136
|
+
if (options.retry) {
|
|
137
|
+
sentAjaxEvents = ajaxEvents.slice();
|
|
138
|
+
}
|
|
139
|
+
ajaxEvents = [];
|
|
140
|
+
return payloadObjs;
|
|
141
|
+
}
|
|
142
|
+
function getPayload(events, maxPayloadSize, chunks) {
|
|
143
|
+
chunks = chunks || 1;
|
|
144
|
+
var payload = [];
|
|
145
|
+
var chunkSize = events.length / chunks;
|
|
146
|
+
var eventChunks = splitChunks(events, chunkSize);
|
|
147
|
+
var tooBig = false;
|
|
148
|
+
for (var i = 0; i < eventChunks.length; i++) {
|
|
149
|
+
var currentChunk = eventChunks[i];
|
|
150
|
+
if (currentChunk.tooBig(maxPayloadSize)) {
|
|
151
|
+
if (currentChunk.events.length !== 1) {
|
|
152
|
+
/* if it is too big BUT it isnt length 1, we can split it down again,
|
|
153
|
+
else we just want to NOT push it into payload
|
|
154
|
+
because if it's length 1 and still too big for the maxPayloadSize
|
|
155
|
+
it cant get any smaller and we dont want to recurse forever */
|
|
156
|
+
tooBig = true;
|
|
157
|
+
break;
|
|
158
|
+
}
|
|
159
|
+
} else {
|
|
160
|
+
payload.push(currentChunk.payload);
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
// check if the current payload string is too big, if so then run getPayload again with more buckets
|
|
164
|
+
return tooBig ? getPayload(events, maxPayloadSize, ++chunks) : payload;
|
|
165
|
+
}
|
|
166
|
+
function onEventsHarvestFinished(result) {
|
|
167
|
+
if (result.retry && sentAjaxEvents.length > 0 && allAjaxIsEnabled()) {
|
|
168
|
+
ajaxEvents = ajaxEvents.concat(sentAjaxEvents);
|
|
169
|
+
sentAjaxEvents = [];
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
function splitChunks(arr, chunkSize) {
|
|
173
|
+
chunkSize = chunkSize || arr.length;
|
|
174
|
+
var chunks = [];
|
|
175
|
+
for (var i = 0, len = arr.length; i < len; i += chunkSize) {
|
|
176
|
+
chunks.push(new Chunk(arr.slice(i, i + chunkSize)));
|
|
177
|
+
}
|
|
178
|
+
return chunks;
|
|
179
|
+
}
|
|
180
|
+
function Chunk(events) {
|
|
181
|
+
this.addString = (0, _belSerializer.getAddStringContext)(agentIdentifier); // pass agentIdentifier here
|
|
182
|
+
this.events = events;
|
|
183
|
+
this.payload = 'bel.7;';
|
|
184
|
+
for (var i = 0; i < events.length; i++) {
|
|
185
|
+
var event = events[i];
|
|
186
|
+
var fields = [(0, _belSerializer.numeric)(event.startTime), (0, _belSerializer.numeric)(event.endTime - event.startTime), (0, _belSerializer.numeric)(0),
|
|
187
|
+
// callbackEnd
|
|
188
|
+
(0, _belSerializer.numeric)(0),
|
|
189
|
+
// no callbackDuration for non-SPA events
|
|
190
|
+
this.addString(event.method), (0, _belSerializer.numeric)(event.status), this.addString(event.domain), this.addString(event.path), (0, _belSerializer.numeric)(event.requestSize), (0, _belSerializer.numeric)(event.responseSize), event.type === 'fetch' ? 1 : '', this.addString(0),
|
|
191
|
+
// nodeId
|
|
192
|
+
(0, _belSerializer.nullable)(event.spanId, this.addString, true) +
|
|
193
|
+
// guid
|
|
194
|
+
(0, _belSerializer.nullable)(event.traceId, this.addString, true) +
|
|
195
|
+
// traceId
|
|
196
|
+
(0, _belSerializer.nullable)(event.spanTimestamp, _belSerializer.numeric, false) // timestamp
|
|
197
|
+
];
|
|
198
|
+
|
|
199
|
+
var insert = '2,';
|
|
200
|
+
|
|
201
|
+
// add custom attributes
|
|
202
|
+
var attrParts = (0, _belSerializer.addCustomAttributes)((0, _config.getInfo)(agentIdentifier).jsAttributes || {}, this.addString);
|
|
203
|
+
fields.unshift((0, _belSerializer.numeric)(attrParts.length));
|
|
204
|
+
insert += fields.join(',');
|
|
205
|
+
if (attrParts && attrParts.length > 0) {
|
|
206
|
+
insert += ';' + attrParts.join(';');
|
|
207
|
+
}
|
|
208
|
+
if (i + 1 < events.length) insert += ';';
|
|
209
|
+
this.payload += insert;
|
|
210
|
+
}
|
|
211
|
+
this.tooBig = function (maxPayloadSize) {
|
|
212
|
+
maxPayloadSize = maxPayloadSize || MAX_PAYLOAD_SIZE;
|
|
213
|
+
return this.payload.length * 2 > maxPayloadSize;
|
|
214
|
+
};
|
|
215
|
+
}
|
|
216
|
+
function allAjaxIsEnabled() {
|
|
217
|
+
var enabled = (0, _config.getConfigurationValue)(agentIdentifier, 'ajax.enabled');
|
|
218
|
+
if (enabled === false) {
|
|
219
|
+
return false;
|
|
220
|
+
}
|
|
221
|
+
return true;
|
|
222
|
+
}
|
|
223
|
+
(0, _drain.drain)(this.agentIdentifier, this.featureName);
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
exports.Aggregate = Aggregate;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.FEATURE_NAME = void 0;
|
|
7
|
+
var _features = require("../../loaders/features/features");
|
|
8
|
+
const FEATURE_NAME = _features.FEATURE_NAMES.ajax;
|
|
9
|
+
exports.FEATURE_NAME = FEATURE_NAME;
|