@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
package/src/cdn/pro.js
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file Creates a "Pro" agent loader bundle composed of the core Agent and all available feature modules except `spa`.
|
|
3
|
+
* This excludes collection of BrowserInteraction and BrowserTiming events.
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
import { Agent } from '../loaders/agent'
|
|
7
|
+
|
|
8
|
+
import { Instrument as InstrumentPageViewEvent } from '../features/page_view_event/instrument'
|
|
9
|
+
import { Instrument as InstrumentPageViewTiming } from '../features/page_view_timing/instrument'
|
|
10
|
+
import { Instrument as InstrumentMetrics } from '../features/metrics/instrument'
|
|
11
|
+
import { Instrument as InstrumentErrors } from '../features/jserrors/instrument'
|
|
12
|
+
import { Instrument as InstrumentXhr } from '../features/ajax/instrument'
|
|
13
|
+
import { Instrument as InstrumentSessionTrace } from '../features/session_trace/instrument'
|
|
14
|
+
import { Instrument as InstrumentPageAction } from '../features/page_action/instrument'
|
|
15
|
+
|
|
16
|
+
new Agent({
|
|
17
|
+
features: [
|
|
18
|
+
InstrumentPageViewEvent,
|
|
19
|
+
InstrumentPageViewTiming,
|
|
20
|
+
InstrumentSessionTrace,
|
|
21
|
+
InstrumentXhr,
|
|
22
|
+
InstrumentMetrics,
|
|
23
|
+
InstrumentPageAction,
|
|
24
|
+
InstrumentErrors
|
|
25
|
+
],
|
|
26
|
+
loaderType: 'pro'
|
|
27
|
+
})
|
package/src/cdn/spa.js
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file Creates a "SPA" agent loader bundle composed of the core agent and all available feature modules.
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
import { Agent } from '../loaders/agent'
|
|
6
|
+
|
|
7
|
+
import { Instrument as InstrumentPageViewEvent } from '../features/page_view_event/instrument'
|
|
8
|
+
import { Instrument as InstrumentPageViewTiming } from '../features/page_view_timing/instrument'
|
|
9
|
+
import { Instrument as InstrumentMetrics } from '../features/metrics/instrument'
|
|
10
|
+
import { Instrument as InstrumentErrors } from '../features/jserrors/instrument'
|
|
11
|
+
import { Instrument as InstrumentXhr } from '../features/ajax/instrument'
|
|
12
|
+
import { Instrument as InstrumentSessionTrace } from '../features/session_trace/instrument'
|
|
13
|
+
import { Instrument as InstrumentSpa } from '../features/spa/instrument'
|
|
14
|
+
import { Instrument as InstrumentPageAction } from '../features/page_action/instrument'
|
|
15
|
+
|
|
16
|
+
new Agent({
|
|
17
|
+
features: [
|
|
18
|
+
InstrumentXhr,
|
|
19
|
+
InstrumentPageViewEvent,
|
|
20
|
+
InstrumentPageViewTiming,
|
|
21
|
+
InstrumentSessionTrace,
|
|
22
|
+
InstrumentMetrics,
|
|
23
|
+
InstrumentPageAction,
|
|
24
|
+
InstrumentErrors,
|
|
25
|
+
InstrumentSpa
|
|
26
|
+
],
|
|
27
|
+
loaderType: 'spa'
|
|
28
|
+
})
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file Creates a "Worker" agent loader bundle composed of the core Agent and the subset of feature modules applicable
|
|
3
|
+
* in a service worker context.
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
import { Agent } from '../loaders/agent'
|
|
7
|
+
|
|
8
|
+
import { Instrument as InstrumentMetrics } from '../features/metrics/instrument'
|
|
9
|
+
import { Instrument as InstrumentErrors } from '../features/jserrors/instrument'
|
|
10
|
+
import { Instrument as InstrumentXhr } from '../features/ajax/instrument'
|
|
11
|
+
import { Instrument as InstrumentPageAction } from '../features/page_action/instrument'
|
|
12
|
+
|
|
13
|
+
new Agent({
|
|
14
|
+
features: [
|
|
15
|
+
InstrumentMetrics,
|
|
16
|
+
InstrumentErrors,
|
|
17
|
+
InstrumentXhr,
|
|
18
|
+
InstrumentPageAction
|
|
19
|
+
],
|
|
20
|
+
loaderType: 'worker'
|
|
21
|
+
})
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2020 New Relic Corporation. All rights reserved.
|
|
3
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
import { SharedContext } from '../context/shared-context'
|
|
7
|
+
import { mapOwn } from '../util/map-own'
|
|
8
|
+
|
|
9
|
+
export class Aggregator extends SharedContext {
|
|
10
|
+
constructor (parent) {
|
|
11
|
+
super(parent)
|
|
12
|
+
this.aggregatedData = {}
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
// Items with the same type and name get aggregated together
|
|
16
|
+
// params are example data from the aggregated items
|
|
17
|
+
// metrics are the numeric values to be aggregated
|
|
18
|
+
|
|
19
|
+
store (type, name, params, newMetrics, customParams) {
|
|
20
|
+
var bucket = this.getBucket(type, name, params, customParams)
|
|
21
|
+
bucket.metrics = aggregateMetrics(newMetrics, bucket.metrics)
|
|
22
|
+
return bucket
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
merge (type, name, metrics, params, customParams) {
|
|
26
|
+
var bucket = this.getBucket(type, name, params, customParams)
|
|
27
|
+
|
|
28
|
+
if (!bucket.metrics) {
|
|
29
|
+
bucket.metrics = metrics
|
|
30
|
+
return
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
var oldMetrics = bucket.metrics
|
|
34
|
+
oldMetrics.count += metrics.count
|
|
35
|
+
|
|
36
|
+
// iterate through each new metric and merge
|
|
37
|
+
mapOwn(metrics, function (key, value) {
|
|
38
|
+
// count is a special case handled above
|
|
39
|
+
if (key === 'count') return
|
|
40
|
+
|
|
41
|
+
var oldMetric = oldMetrics[key]
|
|
42
|
+
var newMetric = metrics[key]
|
|
43
|
+
|
|
44
|
+
// handling the case where newMetric is a single-value first
|
|
45
|
+
if (newMetric && !newMetric.c) {
|
|
46
|
+
oldMetrics[key] = updateMetric(newMetric.t, oldMetric)
|
|
47
|
+
} else { // newMetric is a metric object
|
|
48
|
+
oldMetrics[key] = mergeMetric(newMetric, oldMetrics[key])
|
|
49
|
+
}
|
|
50
|
+
})
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
storeMetric (type, name, params, value) {
|
|
54
|
+
var bucket = this.getBucket(type, name, params)
|
|
55
|
+
bucket.stats = updateMetric(value, bucket.stats)
|
|
56
|
+
return bucket
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
getBucket (type, name, params, customParams) {
|
|
60
|
+
if (!this.aggregatedData[type]) this.aggregatedData[type] = {}
|
|
61
|
+
var bucket = this.aggregatedData[type][name]
|
|
62
|
+
if (!bucket) {
|
|
63
|
+
bucket = this.aggregatedData[type][name] = { params: params || {} }
|
|
64
|
+
if (customParams) {
|
|
65
|
+
bucket.custom = customParams
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
return bucket
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
get (type, name) {
|
|
72
|
+
// if name is passed, get a single bucket
|
|
73
|
+
if (name) return this.aggregatedData[type] && this.aggregatedData[type][name]
|
|
74
|
+
// else, get all buckets of that type
|
|
75
|
+
return this.aggregatedData[type]
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
// Like get, but for many types and it deletes the retrieved content from the aggregatedData
|
|
79
|
+
take (types) {
|
|
80
|
+
var results = {}
|
|
81
|
+
var type = ''
|
|
82
|
+
var hasData = false
|
|
83
|
+
for (var i = 0; i < types.length; i++) {
|
|
84
|
+
type = types[i]
|
|
85
|
+
results[type] = toArray(this.aggregatedData[type])
|
|
86
|
+
if (results[type].length) hasData = true
|
|
87
|
+
delete this.aggregatedData[type]
|
|
88
|
+
}
|
|
89
|
+
return hasData ? results : null
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
function aggregateMetrics (newMetrics, oldMetrics) {
|
|
94
|
+
if (!oldMetrics) oldMetrics = { count: 0 }
|
|
95
|
+
oldMetrics.count += 1
|
|
96
|
+
mapOwn(newMetrics, function (key, value) {
|
|
97
|
+
oldMetrics[key] = updateMetric(value, oldMetrics[key])
|
|
98
|
+
})
|
|
99
|
+
return oldMetrics
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
function updateMetric (value, metric) {
|
|
103
|
+
// when there is no value, then send only count
|
|
104
|
+
if (value == null) {
|
|
105
|
+
return updateCounterMetric(metric)
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
// When there is only one data point, the c (count), min, max, and sos (sum of squares) params are superfluous.
|
|
109
|
+
if (!metric) return { t: value }
|
|
110
|
+
|
|
111
|
+
// but on the second data point, we need to calculate the other values before aggregating in new values
|
|
112
|
+
if (!metric.c) {
|
|
113
|
+
metric = createMetricObject(metric.t)
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
// at this point, metric is always uncondensed
|
|
117
|
+
metric.c += 1
|
|
118
|
+
metric.t += value
|
|
119
|
+
metric.sos += value * value
|
|
120
|
+
if (value > metric.max) metric.max = value
|
|
121
|
+
if (value < metric.min) metric.min = value
|
|
122
|
+
|
|
123
|
+
return metric
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
function updateCounterMetric (metric) {
|
|
127
|
+
if (!metric) {
|
|
128
|
+
metric = { c: 1 }
|
|
129
|
+
} else {
|
|
130
|
+
metric.c++
|
|
131
|
+
}
|
|
132
|
+
return metric
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
function mergeMetric (newMetric, oldMetric) {
|
|
136
|
+
if (!oldMetric) return newMetric
|
|
137
|
+
|
|
138
|
+
if (!oldMetric.c) {
|
|
139
|
+
// oldMetric is a single-value
|
|
140
|
+
oldMetric = createMetricObject(oldMetric.t)
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
oldMetric.min = Math.min(newMetric.min, oldMetric.min)
|
|
144
|
+
oldMetric.max = Math.max(newMetric.max, oldMetric.max)
|
|
145
|
+
oldMetric.t += newMetric.t
|
|
146
|
+
oldMetric.sos += newMetric.sos
|
|
147
|
+
oldMetric.c += newMetric.c
|
|
148
|
+
|
|
149
|
+
return oldMetric
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
// take a value and create a metric object
|
|
153
|
+
function createMetricObject (value) {
|
|
154
|
+
return {
|
|
155
|
+
t: value,
|
|
156
|
+
min: value,
|
|
157
|
+
max: value,
|
|
158
|
+
sos: value * value,
|
|
159
|
+
c: 1
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
function toArray (obj) {
|
|
164
|
+
if (typeof obj !== 'object') return []
|
|
165
|
+
|
|
166
|
+
return mapOwn(obj, getValue)
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
function getValue (key, value) {
|
|
170
|
+
return value
|
|
171
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2020 New Relic Corporation. All rights reserved.
|
|
3
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
/* eslint-disable no-useless-escape */
|
|
7
|
+
|
|
8
|
+
export var ffVersion = 0
|
|
9
|
+
var match = navigator.userAgent.match(/Firefox[\/\s](\d+\.\d+)/)
|
|
10
|
+
if (match) ffVersion = +match[1]
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export const isiOS = /(iPad|iPhone|iPod)/g.test(navigator.userAgent)
|
|
2
|
+
|
|
3
|
+
/* Feature detection to get our version(s). */
|
|
4
|
+
|
|
5
|
+
// Shared Web Workers introduced in iOS 16.0+ and n/a in 15.6-
|
|
6
|
+
export const iOS_below16 = isiOS && Boolean(typeof SharedWorker === 'undefined')
|
|
7
|
+
/* ^ It was discovered in Safari 14 (https://bugs.webkit.org/show_bug.cgi?id=225305) that the buffered flag in PerformanceObserver
|
|
8
|
+
did not work. This affects our onFCP metric in particular since web-vitals uses that flag to retrieve paint timing entries.
|
|
9
|
+
This was fixed in v16+.
|
|
10
|
+
*/
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { getInfo, isValid, setInfo } from './state/info'
|
|
2
|
+
import { getConfiguration, getConfigurationValue, setConfiguration } from './state/init'
|
|
3
|
+
import { getLoaderConfig, setLoaderConfig } from './state/loader-config'
|
|
4
|
+
import { originals } from './state/originals'
|
|
5
|
+
import { getRuntime, setRuntime } from './state/runtime'
|
|
6
|
+
|
|
7
|
+
function isConfigured (agentIdentifier) {
|
|
8
|
+
return isValid(agentIdentifier)
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
// This module acts as a hub that bundles the static and dynamic properties used by each agent instance into one single interface
|
|
12
|
+
export { getInfo, setInfo, getConfiguration, getConfigurationValue, setConfiguration, getLoaderConfig, setLoaderConfig, originals, getRuntime, setRuntime, isConfigured }
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { getFrozenAttributes } from '../../../loaders/features/featureDependencies'
|
|
2
|
+
import { warn } from '../../util/console'
|
|
3
|
+
|
|
4
|
+
export class Configurable {
|
|
5
|
+
constructor (obj, model) {
|
|
6
|
+
try {
|
|
7
|
+
if (!obj || typeof obj !== 'object') return warn('New setting a Configurable requires an object as input')
|
|
8
|
+
if (!model || typeof model !== 'object') return warn('Setting a Configurable requires a model to set its initial properties')
|
|
9
|
+
Object.assign(this, model)
|
|
10
|
+
Object.entries(obj).forEach(([key, value]) => {
|
|
11
|
+
const frozenAttrs = getFrozenAttributes(key)
|
|
12
|
+
if (frozenAttrs.length && value && typeof value === 'object') {
|
|
13
|
+
frozenAttrs.forEach(attr => {
|
|
14
|
+
if (attr in value) {
|
|
15
|
+
warn(`"${attr}" is a protected attribute and can not be changed in feature ${key}. It will have no effect.`)
|
|
16
|
+
delete value[attr]
|
|
17
|
+
}
|
|
18
|
+
})
|
|
19
|
+
}
|
|
20
|
+
this[key] = value
|
|
21
|
+
})
|
|
22
|
+
} catch (err) {
|
|
23
|
+
warn('An error occured while setting a Configurable', err)
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { defaults as nrDefaults, gosNREUMInitializedAgents } from '../../window/nreum'
|
|
2
|
+
import { Configurable } from './configurable'
|
|
3
|
+
|
|
4
|
+
const model = {
|
|
5
|
+
// preset defaults
|
|
6
|
+
beacon: nrDefaults.beacon,
|
|
7
|
+
errorBeacon: nrDefaults.errorBeacon,
|
|
8
|
+
// others must be populated by user
|
|
9
|
+
licenseKey: undefined,
|
|
10
|
+
applicationID: undefined,
|
|
11
|
+
sa: undefined,
|
|
12
|
+
queueTime: undefined,
|
|
13
|
+
applicationTime: undefined,
|
|
14
|
+
ttGuid: undefined,
|
|
15
|
+
user: undefined,
|
|
16
|
+
account: undefined,
|
|
17
|
+
product: undefined,
|
|
18
|
+
extra: undefined,
|
|
19
|
+
jsAttributes: {
|
|
20
|
+
|
|
21
|
+
},
|
|
22
|
+
userAttributes: undefined,
|
|
23
|
+
atts: undefined,
|
|
24
|
+
transactionName: undefined,
|
|
25
|
+
tNamePlain: undefined
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
const _cache = {}
|
|
29
|
+
|
|
30
|
+
export function isValid (id) {
|
|
31
|
+
try {
|
|
32
|
+
const info = getInfo(id)
|
|
33
|
+
return (!!info.licenseKey && !!info.errorBeacon && !!info.applicationID)
|
|
34
|
+
} catch (err) {
|
|
35
|
+
return false
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
export function getInfo (id) {
|
|
40
|
+
if (!id) throw new Error('All info objects require an agent identifier!')
|
|
41
|
+
if (!_cache[id]) throw new Error(`Info for ${id} was never set`)
|
|
42
|
+
return _cache[id]
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
export function setInfo (id, obj) {
|
|
46
|
+
if (!id) throw new Error('All info objects require an agent identifier!')
|
|
47
|
+
_cache[id] = new Configurable(obj, model)
|
|
48
|
+
gosNREUMInitializedAgents(id, _cache[id], 'info')
|
|
49
|
+
}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
|
|
2
|
+
import { gosNREUMInitializedAgents } from '../../window/nreum'
|
|
3
|
+
import { Configurable } from './configurable'
|
|
4
|
+
|
|
5
|
+
const model = {
|
|
6
|
+
allow_bfcache: true, // *cli - temporary feature flag for BFCache work
|
|
7
|
+
privacy: { cookies_enabled: true }, // *cli - per discussion, default should be true
|
|
8
|
+
ajax: { deny_list: undefined, enabled: true, harvestTimeSeconds: 10 },
|
|
9
|
+
distributed_tracing: {
|
|
10
|
+
enabled: undefined,
|
|
11
|
+
exclude_newrelic_header: undefined,
|
|
12
|
+
cors_use_newrelic_header: undefined,
|
|
13
|
+
cors_use_tracecontext_headers: undefined,
|
|
14
|
+
allowed_origins: undefined
|
|
15
|
+
},
|
|
16
|
+
ssl: undefined,
|
|
17
|
+
obfuscate: undefined,
|
|
18
|
+
jserrors: { enabled: true, harvestTimeSeconds: 10 },
|
|
19
|
+
metrics: { enabled: true },
|
|
20
|
+
page_action: { enabled: true, harvestTimeSeconds: 30 },
|
|
21
|
+
page_view_event: { enabled: true },
|
|
22
|
+
page_view_timing: { enabled: true, harvestTimeSeconds: 30, long_task: false },
|
|
23
|
+
session_trace: { enabled: true, harvestTimeSeconds: 10 },
|
|
24
|
+
spa: { enabled: true, harvestTimeSeconds: 10 }
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
const _cache = {}
|
|
28
|
+
|
|
29
|
+
export function getConfiguration (id) {
|
|
30
|
+
if (!id) throw new Error('All configuration objects require an agent identifier!')
|
|
31
|
+
if (!_cache[id]) throw new Error(`Configuration for ${id} was never set`)
|
|
32
|
+
return _cache[id]
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
export function setConfiguration (id, obj) {
|
|
36
|
+
if (!id) throw new Error('All configuration objects require an agent identifier!')
|
|
37
|
+
_cache[id] = new Configurable(obj, model)
|
|
38
|
+
gosNREUMInitializedAgents(id, _cache[id], 'config')
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
export function getConfigurationValue (id, path) {
|
|
42
|
+
if (!id) throw new Error('All configuration objects require an agent identifier!')
|
|
43
|
+
var val = getConfiguration(id)
|
|
44
|
+
if (val) {
|
|
45
|
+
var parts = path.split('.')
|
|
46
|
+
for (var i = 0; i < parts.length - 1; i++) {
|
|
47
|
+
val = val[parts[i]]
|
|
48
|
+
if (typeof val !== 'object') return
|
|
49
|
+
}
|
|
50
|
+
val = val[parts[parts.length - 1]]
|
|
51
|
+
}
|
|
52
|
+
return val
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
// TO DO: a setConfigurationValue equivalent may be nice so individual
|
|
56
|
+
// properties can be tuned instead of reseting the whole model per call to `setConfiguration(agentIdentifier, {})`
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { gosNREUMInitializedAgents } from '../../window/nreum'
|
|
2
|
+
import { Configurable } from './configurable'
|
|
3
|
+
|
|
4
|
+
const model = {
|
|
5
|
+
accountID: undefined,
|
|
6
|
+
trustKey: undefined,
|
|
7
|
+
agentID: undefined,
|
|
8
|
+
licenseKey: undefined,
|
|
9
|
+
applicationID: undefined,
|
|
10
|
+
xpid: undefined
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
const _cache = {}
|
|
14
|
+
|
|
15
|
+
export function getLoaderConfig (id) {
|
|
16
|
+
if (!id) throw new Error('All loader-config objects require an agent identifier!')
|
|
17
|
+
if (!_cache[id]) throw new Error(`LoaderConfig for ${id} was never set`)
|
|
18
|
+
return _cache[id]
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
export function setLoaderConfig (id, obj) {
|
|
22
|
+
if (!id) throw new Error('All loader-config objects require an agent identifier!')
|
|
23
|
+
_cache[id] = new Configurable(obj, model)
|
|
24
|
+
gosNREUMInitializedAgents(id, _cache[id], 'loader_config')
|
|
25
|
+
}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import * as userAgent from '../../util/user-agent'
|
|
2
|
+
import { Configurable } from './configurable'
|
|
3
|
+
import { gosNREUMInitializedAgents } from '../../window/nreum'
|
|
4
|
+
import { getCurrentSessionIdOrMakeNew } from '../../window/session-storage'
|
|
5
|
+
import { getConfigurationValue } from '../config'
|
|
6
|
+
import { globalScope } from '../../util/global-scope'
|
|
7
|
+
import { BUILD_ENV, DIST_METHOD, VERSION } from '../../constants/environment-variables'
|
|
8
|
+
|
|
9
|
+
const model = agentId => { return {
|
|
10
|
+
buildEnv: BUILD_ENV,
|
|
11
|
+
bytesSent: {},
|
|
12
|
+
customTransaction: undefined,
|
|
13
|
+
disabled: false,
|
|
14
|
+
distMethod: DIST_METHOD,
|
|
15
|
+
isolatedBacklog: false,
|
|
16
|
+
loaderType: undefined,
|
|
17
|
+
maxBytes: 30000,
|
|
18
|
+
// The "timeOrigin" property is the new standard timestamp property shared across main frame and workers, but is not supported in some early Safari browsers (safari<15) + IE
|
|
19
|
+
// ingest expects an integer value, and timeOrigin can return a float.
|
|
20
|
+
offset: Math.floor(globalScope?.performance?.timeOrigin || globalScope?.performance?.timing?.navigationStart || Date.now()),
|
|
21
|
+
onerror: undefined,
|
|
22
|
+
origin: '' + globalScope.location,
|
|
23
|
+
ptid: undefined,
|
|
24
|
+
releaseIds: {},
|
|
25
|
+
sessionId: getConfigurationValue(agentId, 'privacy.cookies_enabled') == true
|
|
26
|
+
? getCurrentSessionIdOrMakeNew()
|
|
27
|
+
: null, // if cookies (now session tracking) is turned off or can't get session ID, this is null
|
|
28
|
+
xhrWrappable: typeof globalScope.XMLHttpRequest?.prototype?.addEventListener === 'function',
|
|
29
|
+
userAgent,
|
|
30
|
+
version: VERSION
|
|
31
|
+
} }
|
|
32
|
+
|
|
33
|
+
const _cache = {}
|
|
34
|
+
|
|
35
|
+
export function getRuntime (id) {
|
|
36
|
+
if (!id) throw new Error('All runtime objects require an agent identifier!')
|
|
37
|
+
if (!_cache[id]) throw new Error(`Runtime for ${id} was never set`)
|
|
38
|
+
return _cache[id]
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
export function setRuntime (id, obj) {
|
|
42
|
+
if (!id) throw new Error('All runtime objects require an agent identifier!')
|
|
43
|
+
_cache[id] = new Configurable(obj, model(id))
|
|
44
|
+
gosNREUMInitializedAgents(id, _cache[id], 'runtime')
|
|
45
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
// Webpack and NPM builds define `process.env.BUILD_VERSION` at build time based on variables supplied at build time.
|
|
2
|
+
// VERSION as defined here ends up decorating: agent runtime configuration, harvest, and supportability metrics.
|
|
3
|
+
export const VERSION = typeof process.env.BUILD_VERSION !== 'undefined' && process.env.BUILD_VERSION || ''
|
|
4
|
+
|
|
5
|
+
// process.env.BUILD_ENV is replaced during webpack -or- npm build with environment vars supplied at build time
|
|
6
|
+
// LOCAL, PROD, DEV, etc
|
|
7
|
+
export const BUILD_ENV = typeof process.env.BUILD_ENV !== 'undefined' && process.env.BUILD_ENV || ''
|
|
8
|
+
|
|
9
|
+
// process.env.DIST_METHOD is replaced during webpack -or- npm build with environment vars supplied at build time
|
|
10
|
+
// CDN, NPM etc
|
|
11
|
+
export const DIST_METHOD = typeof process.env.DIST_METHOD !== 'undefined' && process.env.DIST_METHOD || ''
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
|
|
2
|
+
import { warn } from '../util/console'
|
|
3
|
+
|
|
4
|
+
const model = {
|
|
5
|
+
agentIdentifier: ''
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
export class SharedContext {
|
|
9
|
+
constructor (context) {
|
|
10
|
+
try {
|
|
11
|
+
if (typeof context !== 'object') return warn('shared context requires an object as input')
|
|
12
|
+
this.sharedContext = {}
|
|
13
|
+
Object.assign(this.sharedContext, model)
|
|
14
|
+
Object.entries(context).forEach(([key, value]) => {
|
|
15
|
+
if (Object.keys(model).includes(key)) this.sharedContext[key] = value
|
|
16
|
+
})
|
|
17
|
+
} catch (err) {
|
|
18
|
+
warn('An error occured while setting SharedContext', err)
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
}
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
/** An array of filter objects {hostname, pathname} for identifying XHR events to be excluded from collection.
|
|
2
|
+
* @see {@link https://docs.newrelic.com/docs/browser/new-relic-browser/configuration/filter-ajax-request-events/ Filter AjaxRequest events}
|
|
3
|
+
* @type {Array.<{hostname: string, pathname: string}>}
|
|
4
|
+
*/
|
|
5
|
+
var denyList = []
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Evaluates whether an XHR event should be included for collection based on the {@link denyList|AjaxRequest deny list}.
|
|
9
|
+
* @param {Object} params - object with properties of the XHR event
|
|
10
|
+
* @returns {boolean} `true` if request does not match any entries of {@link denyList|deny list}; else `false`
|
|
11
|
+
*/
|
|
12
|
+
export function shouldCollectEvent (params) {
|
|
13
|
+
if (denyList.length === 0) {
|
|
14
|
+
return true
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
// XHR requests with an undefined hostname (e.g., data URLs) should not be collected.
|
|
18
|
+
if (params.hostname === undefined) {
|
|
19
|
+
return false
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
for (var i = 0; i < denyList.length; i++) {
|
|
23
|
+
var parsed = denyList[i]
|
|
24
|
+
|
|
25
|
+
if (parsed.hostname === '*') {
|
|
26
|
+
return false
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
if (domainMatchesPattern(parsed.hostname, params.hostname) &&
|
|
30
|
+
comparePath(parsed.pathname, params.pathname)) {
|
|
31
|
+
return false
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
return true
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* Initializes the {@link denyList|XHR deny list} by extracting hostname and pathname from an array of filter strings.
|
|
40
|
+
* @param {string[]} denyListConfig - array of URL filters to identify XHR requests to be excluded from collection
|
|
41
|
+
*/
|
|
42
|
+
export function setDenyList (denyListConfig) {
|
|
43
|
+
denyList = []
|
|
44
|
+
|
|
45
|
+
if (!denyListConfig || !denyListConfig.length) {
|
|
46
|
+
return
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
for (var i = 0; i < denyListConfig.length; i++) {
|
|
50
|
+
var url = denyListConfig[i]
|
|
51
|
+
|
|
52
|
+
if (url.indexOf('http://') === 0) {
|
|
53
|
+
url = url.substring(7)
|
|
54
|
+
} else if (url.indexOf('https://') === 0) {
|
|
55
|
+
url = url.substring(8)
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
var firstSlash = url.indexOf('/')
|
|
59
|
+
|
|
60
|
+
if (firstSlash > 0) {
|
|
61
|
+
denyList.push({
|
|
62
|
+
hostname: url.substring(0, firstSlash),
|
|
63
|
+
pathname: url.substring(firstSlash)
|
|
64
|
+
})
|
|
65
|
+
} else {
|
|
66
|
+
denyList.push({
|
|
67
|
+
hostname: url,
|
|
68
|
+
pathname: ''
|
|
69
|
+
})
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Returns true if the right side of `domain` (end of string) matches `pattern`.
|
|
75
|
+
* @param {string} pattern - a string to be matched against the end of `domain` string
|
|
76
|
+
* @param {string} domain - a domain string with no protocol or path (e.g., app1.example.com)
|
|
77
|
+
* @returns {boolean} `true` if domain matches pattern; else `false`
|
|
78
|
+
*/
|
|
79
|
+
function domainMatchesPattern (pattern, domain) {
|
|
80
|
+
if (pattern.length > domain.length) {
|
|
81
|
+
return false
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
if (domain.indexOf(pattern) === (domain.length - pattern.length)) {
|
|
85
|
+
return true
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
return false
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
/**
|
|
92
|
+
* Returns true if a URL path matches a pattern string, disregarding leading slashes.
|
|
93
|
+
* @param {string} pattern - a string to compare with path (e.g., api/v1)
|
|
94
|
+
* @param {string} path - a string representing a URL path (e.g., /api/v1)
|
|
95
|
+
* @returns {boolean} `true` if path and pattern are an exact string match (except for leading slashes); else `false`
|
|
96
|
+
*/
|
|
97
|
+
function comparePath (pattern, path) {
|
|
98
|
+
if (pattern.indexOf('/') === 0) {
|
|
99
|
+
pattern = pattern.substring(1)
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
if (path.indexOf('/') === 0) {
|
|
103
|
+
path = path.substring(1)
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
// No path in pattern means match all paths.
|
|
107
|
+
if (pattern === '') {
|
|
108
|
+
return true
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
if (pattern === path) {
|
|
112
|
+
return true
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
return false
|
|
116
|
+
}
|