@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,107 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.NREUMinitialized = NREUMinitialized;
|
|
7
|
+
exports.addToNREUM = addToNREUM;
|
|
8
|
+
exports.defaults = void 0;
|
|
9
|
+
exports.gosCDN = gosCDN;
|
|
10
|
+
exports.gosNREUM = gosNREUM;
|
|
11
|
+
exports.gosNREUMInfo = gosNREUMInfo;
|
|
12
|
+
exports.gosNREUMInit = gosNREUMInit;
|
|
13
|
+
exports.gosNREUMInitializedAgents = gosNREUMInitializedAgents;
|
|
14
|
+
exports.gosNREUMLoaderConfig = gosNREUMLoaderConfig;
|
|
15
|
+
exports.gosNREUMOriginals = gosNREUMOriginals;
|
|
16
|
+
var _now = require("../timing/now");
|
|
17
|
+
var _globalScope = require("../util/global-scope");
|
|
18
|
+
const defaults = {
|
|
19
|
+
beacon: 'bam.nr-data.net',
|
|
20
|
+
errorBeacon: 'bam.nr-data.net'
|
|
21
|
+
};
|
|
22
|
+
exports.defaults = defaults;
|
|
23
|
+
function gosNREUM() {
|
|
24
|
+
if (!_globalScope.globalScope.NREUM) {
|
|
25
|
+
_globalScope.globalScope.NREUM = {};
|
|
26
|
+
}
|
|
27
|
+
if (typeof _globalScope.globalScope.newrelic === 'undefined') _globalScope.globalScope.newrelic = _globalScope.globalScope.NREUM;
|
|
28
|
+
return _globalScope.globalScope.NREUM;
|
|
29
|
+
}
|
|
30
|
+
function gosNREUMInfo() {
|
|
31
|
+
let nr = gosNREUM();
|
|
32
|
+
const externallySupplied = nr.info || {};
|
|
33
|
+
nr.info = {
|
|
34
|
+
beacon: defaults.beacon,
|
|
35
|
+
errorBeacon: defaults.errorBeacon,
|
|
36
|
+
...externallySupplied
|
|
37
|
+
};
|
|
38
|
+
return nr;
|
|
39
|
+
}
|
|
40
|
+
function gosNREUMLoaderConfig() {
|
|
41
|
+
let nr = gosNREUM();
|
|
42
|
+
const externallySupplied = nr.loader_config || {};
|
|
43
|
+
nr.loader_config = {
|
|
44
|
+
...externallySupplied
|
|
45
|
+
};
|
|
46
|
+
return nr;
|
|
47
|
+
}
|
|
48
|
+
function gosNREUMInit() {
|
|
49
|
+
let nr = gosNREUM();
|
|
50
|
+
const externallySupplied = nr.init || {};
|
|
51
|
+
nr.init = {
|
|
52
|
+
...externallySupplied
|
|
53
|
+
};
|
|
54
|
+
return nr;
|
|
55
|
+
}
|
|
56
|
+
function gosNREUMOriginals() {
|
|
57
|
+
let nr = gosNREUM();
|
|
58
|
+
if (!nr.o) {
|
|
59
|
+
nr.o = {
|
|
60
|
+
ST: _globalScope.globalScope.setTimeout,
|
|
61
|
+
SI: _globalScope.globalScope.setImmediate,
|
|
62
|
+
CT: _globalScope.globalScope.clearTimeout,
|
|
63
|
+
XHR: _globalScope.globalScope.XMLHttpRequest,
|
|
64
|
+
REQ: _globalScope.globalScope.Request,
|
|
65
|
+
EV: _globalScope.globalScope.Event,
|
|
66
|
+
PR: _globalScope.globalScope.Promise,
|
|
67
|
+
MO: _globalScope.globalScope.MutationObserver,
|
|
68
|
+
// this'll be undefined if not in a web window
|
|
69
|
+
FETCH: _globalScope.globalScope.fetch
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
return nr;
|
|
73
|
+
}
|
|
74
|
+
function gosNREUMInitializedAgents(id, obj, target) {
|
|
75
|
+
let nr = gosNREUM();
|
|
76
|
+
const externallySupplied = nr.initializedAgents || {};
|
|
77
|
+
const curr = externallySupplied[id] || {};
|
|
78
|
+
if (!Object.keys(curr).length) {
|
|
79
|
+
curr.initializedAt = {
|
|
80
|
+
ms: (0, _now.now)(),
|
|
81
|
+
date: new Date()
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
nr.initializedAgents = {
|
|
85
|
+
...externallySupplied,
|
|
86
|
+
[id]: {
|
|
87
|
+
...curr,
|
|
88
|
+
[target]: obj
|
|
89
|
+
}
|
|
90
|
+
};
|
|
91
|
+
return nr;
|
|
92
|
+
}
|
|
93
|
+
function addToNREUM(fnName, fn) {
|
|
94
|
+
let nr = gosNREUM();
|
|
95
|
+
nr[fnName] = fn;
|
|
96
|
+
}
|
|
97
|
+
function NREUMinitialized() {
|
|
98
|
+
const nr = gosNREUM();
|
|
99
|
+
nr.initialized = true;
|
|
100
|
+
}
|
|
101
|
+
function gosCDN() {
|
|
102
|
+
gosNREUMInfo();
|
|
103
|
+
gosNREUMInit();
|
|
104
|
+
gosNREUMOriginals();
|
|
105
|
+
gosNREUMLoaderConfig();
|
|
106
|
+
return gosNREUM();
|
|
107
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.subscribeToVisibilityChange = subscribeToVisibilityChange;
|
|
7
|
+
var _eventListenerOpts = require("../event-listener/event-listener-opts");
|
|
8
|
+
/*
|
|
9
|
+
* Copyright 2020 New Relic Corporation. All rights reserved.
|
|
10
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
11
|
+
*/
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* @param {function} cb - called when a visibility change occurs with the vis state at that time
|
|
15
|
+
* @param {boolean} [toHiddenOnly=false] - only execute the 'cb' when the vis is changing to the hidden state; no arg is passed to 'cb' if used
|
|
16
|
+
* @returns void
|
|
17
|
+
*/
|
|
18
|
+
function subscribeToVisibilityChange(cb) {
|
|
19
|
+
let toHiddenOnly = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
|
20
|
+
(0, _eventListenerOpts.documentAddEventListener)('visibilitychange', handleVisibilityChange);
|
|
21
|
+
return;
|
|
22
|
+
function handleVisibilityChange() {
|
|
23
|
+
if (toHiddenOnly) {
|
|
24
|
+
// trigger cb on change to hidden state only
|
|
25
|
+
if (document.visibilityState == 'hidden') cb();else return;
|
|
26
|
+
}
|
|
27
|
+
cb(document.visibilityState);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.getAllStorageItemsOfGroup = getAllStorageItemsOfGroup;
|
|
7
|
+
exports.getCurrentSessionIdOrMakeNew = getCurrentSessionIdOrMakeNew;
|
|
8
|
+
exports.putInBrowserStorage = putInBrowserStorage;
|
|
9
|
+
exports.removeFromBrowserStorage = removeFromBrowserStorage;
|
|
10
|
+
var _uniqueId = require("../ids/unique-id");
|
|
11
|
+
/**
|
|
12
|
+
* Interface for Agents' usage of the Window.sessionStorage as a replacement to third-party cookies.
|
|
13
|
+
* (All agents on a tab|window will share the same sessionStorage.)
|
|
14
|
+
*
|
|
15
|
+
* @design https://newrelic.atlassian.net/wiki/spaces/INST/pages/2522513791/JSESSIONID+Cookie+Change+Design+Document
|
|
16
|
+
* @environment Browser script
|
|
17
|
+
*/
|
|
18
|
+
|
|
19
|
+
const AGENT_PREFIX = 'NRBA/';
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* @param {string} key
|
|
23
|
+
* @param {string} value
|
|
24
|
+
* @returns true, if item was set successfully. false, if storage is full or setItem threw an exception.
|
|
25
|
+
*/
|
|
26
|
+
function putInBrowserStorage(key, value) {
|
|
27
|
+
let subgroup = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '';
|
|
28
|
+
try {
|
|
29
|
+
window.sessionStorage.setItem(AGENT_PREFIX + subgroup + key, value);
|
|
30
|
+
return true;
|
|
31
|
+
} catch (ex) {
|
|
32
|
+
// Session storage may be full.
|
|
33
|
+
return false;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* @see {@link https://developer.mozilla.org/en-US/docs/Web/API/Storage/getItem}
|
|
38
|
+
* @param {string} key
|
|
39
|
+
*/
|
|
40
|
+
function getFromBrowserStorage(key) {
|
|
41
|
+
let subgroup = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
|
|
42
|
+
return window.sessionStorage.getItem(AGENT_PREFIX + subgroup + key);
|
|
43
|
+
}
|
|
44
|
+
function removeFromBrowserStorage(key) {
|
|
45
|
+
let subgroup = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
|
|
46
|
+
try {
|
|
47
|
+
window.sessionStorage.removeItem(AGENT_PREFIX + subgroup + key);
|
|
48
|
+
} catch (e) {}
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
/**
|
|
52
|
+
* @returns {string} This tab|window's session identifier, or a new ID if not found in storage
|
|
53
|
+
*/
|
|
54
|
+
function getCurrentSessionIdOrMakeNew() {
|
|
55
|
+
try {
|
|
56
|
+
let sessionId;
|
|
57
|
+
if ((sessionId = getFromBrowserStorage('SESSION_ID')) === null) {
|
|
58
|
+
// Generate a new one if storage is empty (no previous ID was created or currently exists)
|
|
59
|
+
sessionId = (0, _uniqueId.generateRandomHexString)(16);
|
|
60
|
+
putInBrowserStorage('SESSION_ID', sessionId);
|
|
61
|
+
}
|
|
62
|
+
return sessionId;
|
|
63
|
+
} catch (ex) {
|
|
64
|
+
// The agent is running in a security context that does not allow access to the sessionStorage or is not in browser window context.
|
|
65
|
+
return null;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
/**
|
|
70
|
+
* Look through the page's sessionStorage items and gather the ones that was set under some grouping label, if applicable.
|
|
71
|
+
* @param {string} [subgroup] - empty string by default, which will return all items set by browser agent
|
|
72
|
+
* @returns An object of the key-value items from putInBrowserStorage calls from agents with access to the same storage space.
|
|
73
|
+
*/
|
|
74
|
+
function getAllStorageItemsOfGroup() {
|
|
75
|
+
let subgroup = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
|
|
76
|
+
const prefixFilter = AGENT_PREFIX + subgroup;
|
|
77
|
+
const groupItems = {};
|
|
78
|
+
try {
|
|
79
|
+
for (let i = 0; i < window.sessionStorage.length; i++) {
|
|
80
|
+
let key = window.sessionStorage.key(i);
|
|
81
|
+
if (!key.startsWith(prefixFilter)) continue;else key = key.slice(prefixFilter.length); // this removes the "NRBA/<subgroup>" prefix so we get back the original key putInBrowserStorage
|
|
82
|
+
|
|
83
|
+
groupItems[key] = getFromBrowserStorage(key, subgroup);
|
|
84
|
+
}
|
|
85
|
+
} catch (ex) {}
|
|
86
|
+
return groupItems;
|
|
87
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.supportsPerformanceObserver = supportsPerformanceObserver;
|
|
7
|
+
var _globalScope = require("../util/global-scope");
|
|
8
|
+
/*
|
|
9
|
+
* Copyright 2020 New Relic Corporation. All rights reserved.
|
|
10
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
11
|
+
*/
|
|
12
|
+
|
|
13
|
+
function supportsPerformanceObserver() {
|
|
14
|
+
return typeof _globalScope.globalScope?.PerformanceObserver === 'function';
|
|
15
|
+
}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
Object.defineProperty(exports, "wrapConsole", {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: function () {
|
|
9
|
+
return _wrapConsole.wrapConsole;
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
Object.defineProperty(exports, "wrapEvents", {
|
|
13
|
+
enumerable: true,
|
|
14
|
+
get: function () {
|
|
15
|
+
return _wrapEvents.wrapEvents;
|
|
16
|
+
}
|
|
17
|
+
});
|
|
18
|
+
Object.defineProperty(exports, "wrapFetch", {
|
|
19
|
+
enumerable: true,
|
|
20
|
+
get: function () {
|
|
21
|
+
return _wrapFetch.wrapFetch;
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
Object.defineProperty(exports, "wrapHistory", {
|
|
25
|
+
enumerable: true,
|
|
26
|
+
get: function () {
|
|
27
|
+
return _wrapHistory.wrapHistory;
|
|
28
|
+
}
|
|
29
|
+
});
|
|
30
|
+
Object.defineProperty(exports, "wrapJsonP", {
|
|
31
|
+
enumerable: true,
|
|
32
|
+
get: function () {
|
|
33
|
+
return _wrapJsonp.wrapJsonP;
|
|
34
|
+
}
|
|
35
|
+
});
|
|
36
|
+
Object.defineProperty(exports, "wrapMutation", {
|
|
37
|
+
enumerable: true,
|
|
38
|
+
get: function () {
|
|
39
|
+
return _wrapMutation.wrapMutation;
|
|
40
|
+
}
|
|
41
|
+
});
|
|
42
|
+
Object.defineProperty(exports, "wrapPromise", {
|
|
43
|
+
enumerable: true,
|
|
44
|
+
get: function () {
|
|
45
|
+
return _wrapPromise.wrapPromise;
|
|
46
|
+
}
|
|
47
|
+
});
|
|
48
|
+
Object.defineProperty(exports, "wrapRaf", {
|
|
49
|
+
enumerable: true,
|
|
50
|
+
get: function () {
|
|
51
|
+
return _wrapRaf.wrapRaf;
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
Object.defineProperty(exports, "wrapTimer", {
|
|
55
|
+
enumerable: true,
|
|
56
|
+
get: function () {
|
|
57
|
+
return _wrapTimer.wrapTimer;
|
|
58
|
+
}
|
|
59
|
+
});
|
|
60
|
+
Object.defineProperty(exports, "wrapXhr", {
|
|
61
|
+
enumerable: true,
|
|
62
|
+
get: function () {
|
|
63
|
+
return _wrapXhr.wrapXhr;
|
|
64
|
+
}
|
|
65
|
+
});
|
|
66
|
+
var _wrapConsole = require("./wrap-console");
|
|
67
|
+
var _wrapEvents = require("./wrap-events");
|
|
68
|
+
var _wrapFetch = require("./wrap-fetch");
|
|
69
|
+
var _wrapHistory = require("./wrap-history");
|
|
70
|
+
var _wrapJsonp = require("./wrap-jsonp");
|
|
71
|
+
var _wrapMutation = require("./wrap-mutation");
|
|
72
|
+
var _wrapPromise = require("./wrap-promise");
|
|
73
|
+
var _wrapRaf = require("./wrap-raf");
|
|
74
|
+
var _wrapTimer = require("./wrap-timer");
|
|
75
|
+
var _wrapXhr = require("./wrap-xhr");
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.scopedEE = scopedEE;
|
|
7
|
+
exports.wrapConsole = wrapConsole;
|
|
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 `debug`, `error`, `info`, `log`, `trace, and `warn` methods of the global `console` object for instrumentation.
|
|
17
|
+
* This module is used by: metrics.
|
|
18
|
+
*/
|
|
19
|
+
|
|
20
|
+
const wrapped = {};
|
|
21
|
+
const CONSOLE_METHODS = ['debug', 'error', 'info', 'log', 'trace', 'warn'];
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* Wraps the `debug`, `error`, `info`, `log`, `trace, and `warn` methods of global `console` object and returns a
|
|
25
|
+
* corresponding event emitter scoped to the console object.
|
|
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 `console`.
|
|
28
|
+
*/
|
|
29
|
+
function wrapConsole(sharedEE) {
|
|
30
|
+
const ee = scopedEE(sharedEE);
|
|
31
|
+
|
|
32
|
+
// We want to wrap console once and only once for each agent instance (`ee.debugId`).
|
|
33
|
+
if (wrapped[ee.debugId]) {
|
|
34
|
+
return ee;
|
|
35
|
+
}
|
|
36
|
+
wrapped[ee.debugId] = true;
|
|
37
|
+
var functionWrapper = (0, _wrapFunction.createWrapperWithEmitter)(ee);
|
|
38
|
+
// Because the console object exists once on the global scope, we don't need to wrap the prototype's methods.
|
|
39
|
+
// We use the global scope instead of window to accomodate service workers.
|
|
40
|
+
// The leading hyphen on '-console-' tells `inPlace` to prefix emitted event names with the method name too.
|
|
41
|
+
functionWrapper.inPlace(_globalScope.globalScope.console, CONSOLE_METHODS, '-console-');
|
|
42
|
+
return ee;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* Returns an event emitter scoped specifically for the `console` context. This scoping is a remnant from when all the
|
|
47
|
+
* features shared the same group in the event, to isolate events between features. It will likely be revisited.
|
|
48
|
+
* @param {Object} sharedEE - Optional event emitter on which to base the scoped emitter.
|
|
49
|
+
* Uses `ee` on the global scope if undefined).
|
|
50
|
+
* @returns {Object} Scoped event emitter with a debug ID of 'console'.
|
|
51
|
+
*/
|
|
52
|
+
function scopedEE(sharedEE) {
|
|
53
|
+
return (sharedEE || _contextualEe.ee).get('console');
|
|
54
|
+
}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.scopedEE = scopedEE;
|
|
7
|
+
exports.wrapEvents = wrapEvents;
|
|
8
|
+
var _contextualEe = require("../event-emitter/contextual-ee");
|
|
9
|
+
var _wrapFunction = require("./wrap-function");
|
|
10
|
+
var _getOrSet = require("../util/get-or-set");
|
|
11
|
+
var _globalScope = require("../util/global-scope");
|
|
12
|
+
/*
|
|
13
|
+
* Copyright 2020 New Relic Corporation. All rights reserved.
|
|
14
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
15
|
+
*/
|
|
16
|
+
/**
|
|
17
|
+
* @file Wraps `addEventListener` and `removeEventListener` for instrumentation.
|
|
18
|
+
* This module is used directly by: session_trace.
|
|
19
|
+
* It is also called by -> wrapXhr <-, so see "wrap-xhr.js" for features that use this indirectly.
|
|
20
|
+
*/
|
|
21
|
+
|
|
22
|
+
const wrapped = {};
|
|
23
|
+
const XHR = XMLHttpRequest;
|
|
24
|
+
const ADD_EVENT_LISTENER = 'addEventListener';
|
|
25
|
+
const REMOVE_EVENT_LISTENER = 'removeEventListener';
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* Wraps `addEventListener` and `removeEventListener` on: global scope; the prototype of `XMLHttpRequest`, and
|
|
29
|
+
* `document` (if in a browser scope). Adds custom events in context of a new emitter scoped only to these methods.
|
|
30
|
+
* @param {Object} sharedEE - The shared event emitter on which a new scoped
|
|
31
|
+
* event emitter will be based.
|
|
32
|
+
* @returns {Object} Scoped event emitter with a debug ID of `events`.
|
|
33
|
+
*/
|
|
34
|
+
function wrapEvents(sharedEE) {
|
|
35
|
+
var ee = scopedEE(sharedEE);
|
|
36
|
+
if (wrapped[ee.debugId]++)
|
|
37
|
+
// Notice if our wrapping never ran yet, the falsey NaN will not early return; but if it has,
|
|
38
|
+
{
|
|
39
|
+
return ee;
|
|
40
|
+
} // then we increment the count to track # of feats using this at runtime.
|
|
41
|
+
wrapped[ee.debugId] = 1;
|
|
42
|
+
var wrapFn = (0, _wrapFunction.createWrapperWithEmitter)(ee, true);
|
|
43
|
+
|
|
44
|
+
// Guard against instrumenting environments w/o necessary features
|
|
45
|
+
if ('getPrototypeOf' in Object) {
|
|
46
|
+
if (_globalScope.isBrowserScope) {
|
|
47
|
+
findEventListenerProtoAndCb(document, wrapNode);
|
|
48
|
+
}
|
|
49
|
+
findEventListenerProtoAndCb(_globalScope.globalScope, wrapNode);
|
|
50
|
+
findEventListenerProtoAndCb(XHR.prototype, wrapNode);
|
|
51
|
+
}
|
|
52
|
+
ee.on(ADD_EVENT_LISTENER + '-start', function (args, target) {
|
|
53
|
+
var originalListener = args[1];
|
|
54
|
+
if (originalListener === null || typeof originalListener !== 'function' && typeof originalListener !== 'object') {
|
|
55
|
+
return;
|
|
56
|
+
}
|
|
57
|
+
var wrapped = (0, _getOrSet.getOrSet)(originalListener, 'nr@wrapped', function () {
|
|
58
|
+
var listener = {
|
|
59
|
+
object: wrapHandleEvent,
|
|
60
|
+
function: originalListener
|
|
61
|
+
}[typeof originalListener];
|
|
62
|
+
return listener ? wrapFn(listener, 'fn-', null, listener.name || 'anonymous') : originalListener;
|
|
63
|
+
function wrapHandleEvent() {
|
|
64
|
+
if (typeof originalListener.handleEvent !== 'function') return;
|
|
65
|
+
return originalListener.handleEvent.apply(originalListener, arguments);
|
|
66
|
+
}
|
|
67
|
+
});
|
|
68
|
+
this.wrapped = args[1] = wrapped;
|
|
69
|
+
});
|
|
70
|
+
ee.on(REMOVE_EVENT_LISTENER + '-start', function (args) {
|
|
71
|
+
args[1] = this.wrapped || args[1];
|
|
72
|
+
});
|
|
73
|
+
function wrapNode(node) {
|
|
74
|
+
wrapFn.inPlace(node, [ADD_EVENT_LISTENER, REMOVE_EVENT_LISTENER], '-', uniqueListener);
|
|
75
|
+
}
|
|
76
|
+
function uniqueListener(args, obj) {
|
|
77
|
+
// Context for the listener is stored on itself.
|
|
78
|
+
return args[1];
|
|
79
|
+
}
|
|
80
|
+
return ee;
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Find the base prototype of 'object' that has its own "addEventListener" property, and run some function on it.
|
|
84
|
+
* @param {Object} object - the initial object to traverse prototype chain on
|
|
85
|
+
* @param {Function} cb - the function to run on the ancestral object once found, accepts an object as a arg
|
|
86
|
+
* @param {Array} rest - [optional] any additional arguments to pass to the cb
|
|
87
|
+
*/
|
|
88
|
+
function findEventListenerProtoAndCb(object, cb) {
|
|
89
|
+
let step = object;
|
|
90
|
+
while (typeof step === 'object' && !Object.prototype.hasOwnProperty.call(step, ADD_EVENT_LISTENER)) {
|
|
91
|
+
step = Object.getPrototypeOf(step);
|
|
92
|
+
}
|
|
93
|
+
for (var _len = arguments.length, rest = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {
|
|
94
|
+
rest[_key - 2] = arguments[_key];
|
|
95
|
+
}
|
|
96
|
+
if (step) cb(step, ...rest);
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
/**
|
|
100
|
+
* Returns an event emitter scoped specifically for the `events` context. This scoping is a remnant from when all the
|
|
101
|
+
* features shared the same group in the event, to isolate events between features. It will likely be revisited.
|
|
102
|
+
* @param {Object} sharedEE - Optional event emitter on which to base the scoped emitter.
|
|
103
|
+
* Uses `ee` on the global scope if undefined).
|
|
104
|
+
* @returns {Object} Scoped event emitter with a debug ID of 'events'.
|
|
105
|
+
*/
|
|
106
|
+
function scopedEE(sharedEE) {
|
|
107
|
+
return (sharedEE || _contextualEe.ee).get('events');
|
|
108
|
+
}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.scopedEE = scopedEE;
|
|
7
|
+
exports.wrapFetch = wrapFetch;
|
|
8
|
+
var _contextualEe = require("../event-emitter/contextual-ee");
|
|
9
|
+
var _lodash = _interopRequireDefault(require("lodash._slice"));
|
|
10
|
+
var _globalScope = require("../util/global-scope");
|
|
11
|
+
var _wrapFunction = require("./wrap-function");
|
|
12
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
13
|
+
/*
|
|
14
|
+
* Copyright 2020 New Relic Corporation. All rights reserved.
|
|
15
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
16
|
+
*/
|
|
17
|
+
/**
|
|
18
|
+
* @file Wraps `fetch` and related methods for instrumentation.
|
|
19
|
+
* This module is used by: ajax, spa.
|
|
20
|
+
*/
|
|
21
|
+
|
|
22
|
+
var prefix = 'fetch-';
|
|
23
|
+
var bodyPrefix = prefix + 'body-';
|
|
24
|
+
var bodyMethods = ['arrayBuffer', 'blob', 'json', 'text', 'formData'];
|
|
25
|
+
var Req = _globalScope.globalScope.Request;
|
|
26
|
+
var Res = _globalScope.globalScope.Response;
|
|
27
|
+
var proto = 'prototype';
|
|
28
|
+
var ctxId = 'nr@context';
|
|
29
|
+
const wrapped = {};
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* Wraps the `fetch` method of the global scope for instrumentation. Also wraps the prototypes of the async methods
|
|
33
|
+
* that parse Request and Response bodies to generate start and end events for each, in context of a new event
|
|
34
|
+
* emitter scoped only to fetch and related methods.
|
|
35
|
+
* @param {Object} sharedEE - The shared event emitter on which a new scoped
|
|
36
|
+
* event emitter will be based.
|
|
37
|
+
* @returns {Object} Scoped event emitter with a debug ID of `fetch`.
|
|
38
|
+
*/
|
|
39
|
+
function wrapFetch(sharedEE) {
|
|
40
|
+
const ee = scopedEE(sharedEE);
|
|
41
|
+
if (!(Req && Res && _globalScope.globalScope.fetch)) {
|
|
42
|
+
return ee;
|
|
43
|
+
}
|
|
44
|
+
if (wrapped[ee.debugId]++)
|
|
45
|
+
// Notice if our wrapping never ran yet, the falsey NaN will not early return; but if it has,
|
|
46
|
+
{
|
|
47
|
+
return ee;
|
|
48
|
+
} // then we increment the count to track # of feats using this at runtime.
|
|
49
|
+
wrapped[ee.debugId] = 1;
|
|
50
|
+
bodyMethods.forEach(method => {
|
|
51
|
+
wrapPromiseMethod(Req[proto], method, bodyPrefix);
|
|
52
|
+
wrapPromiseMethod(Res[proto], method, bodyPrefix);
|
|
53
|
+
});
|
|
54
|
+
wrapPromiseMethod(_globalScope.globalScope, 'fetch', prefix);
|
|
55
|
+
ee.on(prefix + 'end', function (err, res) {
|
|
56
|
+
var ctx = this;
|
|
57
|
+
if (res) {
|
|
58
|
+
var size = res.headers.get('content-length');
|
|
59
|
+
if (size !== null) {
|
|
60
|
+
ctx.rxSize = size;
|
|
61
|
+
}
|
|
62
|
+
ee.emit(prefix + 'done', [null, res], ctx);
|
|
63
|
+
} else {
|
|
64
|
+
ee.emit(prefix + 'done', [err], ctx);
|
|
65
|
+
}
|
|
66
|
+
});
|
|
67
|
+
|
|
68
|
+
/**
|
|
69
|
+
* Wraps a Promise-returning function (referenced by `target[name]`) to emit custom events before and after
|
|
70
|
+
* execution, each decorated with metadata (arguments, payloads, errors). Used to wrap the async body
|
|
71
|
+
* parsing methods of Request and Response (e.g. `json`, `text`, `formData`).
|
|
72
|
+
* @param {Object} target - The object having the method to be wrapped.
|
|
73
|
+
* @param {string} name - The name of the method to wrap.
|
|
74
|
+
* @param {string} prefix - Used to decorate event names with context.
|
|
75
|
+
*/
|
|
76
|
+
function wrapPromiseMethod(target, name, prefix) {
|
|
77
|
+
var fn = target[name];
|
|
78
|
+
if (typeof fn === 'function') {
|
|
79
|
+
target[name] = function () {
|
|
80
|
+
var args = (0, _lodash.default)(arguments);
|
|
81
|
+
var ctx = {};
|
|
82
|
+
// we are wrapping args in an array so we can preserve the reference
|
|
83
|
+
ee.emit(prefix + 'before-start', [args], ctx);
|
|
84
|
+
var dtPayload;
|
|
85
|
+
if (ctx[ctxId] && ctx[ctxId].dt) dtPayload = ctx[ctxId].dt;
|
|
86
|
+
var origPromiseFromFetch = fn.apply(this, args);
|
|
87
|
+
ee.emit(prefix + 'start', [args, dtPayload], origPromiseFromFetch);
|
|
88
|
+
|
|
89
|
+
// Note we need to cast the returned (orig) Promise from native APIs into the current global Promise, which may or may not be our WrappedPromise.
|
|
90
|
+
return origPromiseFromFetch.then(function (val) {
|
|
91
|
+
ee.emit(prefix + 'end', [null, val], origPromiseFromFetch);
|
|
92
|
+
return val;
|
|
93
|
+
}, function (err) {
|
|
94
|
+
ee.emit(prefix + 'end', [err], origPromiseFromFetch);
|
|
95
|
+
throw err;
|
|
96
|
+
});
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
return ee;
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
/**
|
|
104
|
+
* Returns an event emitter scoped specifically for the `fetch` context. This scoping is a remnant from when all the
|
|
105
|
+
* features shared the same group in the event, to isolate events between features. It will likely be revisited.
|
|
106
|
+
* @param {Object} sharedEE - Optional event emitter on which to base the scoped emitter.
|
|
107
|
+
* Uses `ee` on the global scope if undefined).
|
|
108
|
+
* @returns {Object} Scoped event emitter with a debug ID of 'fetch'.
|
|
109
|
+
*/
|
|
110
|
+
function scopedEE(sharedEE) {
|
|
111
|
+
return (sharedEE || _contextualEe.ee).get('fetch');
|
|
112
|
+
}
|