@newrelic/browser-agent 0.1.229 → 0.1.231
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 +65 -2
- package/dist/cjs/common/browser-version/ios-version.js +4 -3
- package/dist/cjs/common/config/state/configurable.js +3 -2
- package/dist/cjs/common/config/state/info.js +1 -1
- package/dist/cjs/common/config/state/init.js +1 -1
- package/dist/cjs/common/config/state/loader-config.js +1 -1
- package/dist/cjs/common/config/state/runtime.js +6 -5
- package/dist/cjs/common/constants/env.cdn.js +29 -0
- package/dist/cjs/common/constants/env.js +32 -0
- package/dist/cjs/common/constants/env.npm.js +30 -0
- package/dist/cjs/common/context/shared-context.js +2 -1
- package/dist/cjs/common/drain/drain.js +9 -3
- package/dist/cjs/common/event-emitter/contextual-ee.test.js +282 -0
- package/dist/cjs/common/event-emitter/handle.test.js +58 -0
- package/dist/cjs/common/event-emitter/register-handler.test.js +55 -0
- package/dist/cjs/common/event-listener/event-listener-opts.js +4 -2
- package/dist/cjs/common/harvest/harvest-scheduler.js +2 -1
- package/dist/cjs/common/harvest/harvest.js +15 -4
- package/dist/cjs/common/ids/id.js +14 -6
- package/dist/cjs/common/ids/id.test.js +85 -0
- package/dist/cjs/common/ids/unique-id.js +75 -51
- package/dist/cjs/common/ids/unique-id.test.js +49 -0
- package/dist/cjs/common/timing/nav-timing.js +51 -30
- package/dist/cjs/common/timing/nav-timing.test.js +192 -0
- package/dist/cjs/common/url/clean-url.test.js +9 -0
- package/dist/cjs/common/url/encode.test.js +74 -0
- package/dist/cjs/common/url/location.js +4 -0
- package/dist/cjs/common/url/location.test.js +13 -0
- package/dist/cjs/common/url/parse-url.test.js +111 -0
- package/dist/cjs/common/url/protocol.js +2 -12
- package/dist/cjs/common/url/protocol.test.js +16 -0
- package/dist/cjs/common/util/console.js +2 -2
- package/dist/cjs/common/util/map-own.js +21 -14
- package/dist/cjs/common/util/map-own.test.js +49 -0
- package/dist/cjs/common/util/obfuscate.js +1 -1
- package/dist/cjs/common/util/submit-data.js +11 -3
- package/dist/cjs/common/window/page-visibility.js +4 -2
- package/dist/cjs/common/window/session-storage.js +56 -11
- package/dist/cjs/common/wrap/index.js +4 -4
- package/dist/cjs/common/wrap/wrap-events.js +10 -10
- package/dist/cjs/common/wrap/wrap-fetch.js +6 -8
- package/dist/cjs/common/wrap/wrap-function.js +4 -18
- package/dist/cjs/common/wrap/wrap-history.js +7 -6
- package/dist/cjs/common/wrap/wrap-jsonp.js +7 -6
- package/dist/cjs/common/wrap/wrap-mutation.js +7 -6
- package/dist/cjs/common/wrap/wrap-promise.js +11 -7
- package/dist/cjs/common/wrap/wrap-promise.test.js +119 -0
- package/dist/cjs/common/wrap/wrap-raf.js +6 -6
- package/dist/cjs/common/wrap/wrap-timer.js +6 -6
- package/dist/cjs/common/wrap/wrap-xhr.js +5 -6
- package/dist/cjs/features/ajax/aggregate/index.js +1 -1
- package/dist/cjs/features/ajax/instrument/index.js +2 -1
- package/dist/cjs/features/jserrors/aggregate/canonical-function-name.test.js +5 -4
- package/dist/cjs/features/jserrors/aggregate/compute-stack-trace.js +1 -2
- package/dist/cjs/features/jserrors/aggregate/compute-stack-trace.test.js +5 -5
- package/dist/cjs/features/jserrors/aggregate/format-stack-trace.test.js +6 -5
- package/dist/cjs/features/jserrors/aggregate/index.js +35 -14
- package/dist/cjs/features/jserrors/aggregate/string-hash-code.test.js +5 -4
- package/dist/cjs/features/jserrors/instrument/index.js +9 -12
- package/dist/cjs/features/metrics/aggregate/index.js +16 -6
- package/dist/cjs/features/metrics/instrument/index.js +2 -1
- package/dist/cjs/features/metrics/instrument/workers-helper.js +9 -6
- package/dist/cjs/features/page_action/aggregate/index.js +12 -4
- package/dist/cjs/features/page_action/instrument/index.js +2 -1
- package/dist/cjs/features/page_view_event/aggregate/index.js +25 -10
- package/dist/cjs/features/page_view_event/instrument/index.js +2 -1
- package/dist/cjs/features/page_view_timing/aggregate/index.js +90 -61
- package/dist/cjs/features/page_view_timing/instrument/index.js +2 -1
- package/dist/cjs/features/session_trace/aggregate/index.js +69 -26
- package/dist/cjs/features/session_trace/instrument/index.js +2 -1
- package/dist/cjs/features/spa/instrument/index.js +2 -1
- package/dist/cjs/features/utils/instrument-base.js +8 -3
- package/dist/cjs/features/utils/lazy-loader.js +1 -1
- package/dist/cjs/index.js +9 -9
- package/dist/cjs/loaders/agent.js +3 -2
- package/dist/cjs/loaders/api/api.js +90 -22
- package/dist/cjs/loaders/api/apiAsync.js +3 -3
- package/dist/cjs/loaders/configure/configure.js +13 -7
- package/dist/cjs/loaders/features/enabled-features.js +1 -1
- package/dist/cjs/loaders/micro-agent.js +20 -14
- package/dist/esm/common/browser-version/ios-version.js +4 -3
- package/dist/esm/common/config/state/configurable.js +3 -2
- package/dist/esm/common/config/state/info.js +1 -1
- package/dist/esm/common/config/state/init.js +1 -1
- package/dist/esm/common/config/state/loader-config.js +1 -1
- package/dist/esm/common/config/state/runtime.js +3 -2
- package/dist/esm/common/constants/env.cdn.js +20 -0
- package/dist/esm/common/constants/env.js +23 -0
- package/dist/esm/common/constants/env.npm.js +21 -0
- package/dist/esm/common/context/shared-context.js +2 -1
- package/dist/esm/common/drain/drain.js +9 -3
- package/dist/esm/common/event-emitter/contextual-ee.test.js +278 -0
- package/dist/esm/common/event-emitter/handle.test.js +54 -0
- package/dist/esm/common/event-emitter/register-handler.test.js +51 -0
- package/dist/esm/common/event-listener/event-listener-opts.js +4 -2
- package/dist/esm/common/harvest/harvest-scheduler.js +2 -1
- package/dist/esm/common/harvest/harvest.js +14 -3
- package/dist/esm/common/ids/id.js +16 -6
- package/dist/esm/common/ids/id.test.js +81 -0
- package/dist/esm/common/ids/unique-id.js +75 -51
- package/dist/esm/common/ids/unique-id.test.js +44 -0
- package/dist/esm/common/timing/nav-timing.js +51 -29
- package/dist/esm/common/timing/nav-timing.test.js +190 -0
- package/dist/esm/common/url/clean-url.test.js +7 -0
- package/dist/esm/common/url/encode.test.js +70 -0
- package/dist/esm/common/url/location.js +4 -0
- package/dist/esm/common/url/location.test.js +11 -0
- package/dist/esm/common/url/parse-url.test.js +107 -0
- package/dist/esm/common/url/protocol.js +3 -12
- package/dist/esm/common/url/protocol.test.js +14 -0
- package/dist/esm/common/util/console.js +2 -2
- package/dist/esm/common/util/map-own.js +19 -13
- package/dist/esm/common/util/map-own.test.js +47 -0
- package/dist/esm/common/util/obfuscate.js +2 -2
- package/dist/esm/common/util/submit-data.js +11 -3
- package/dist/esm/common/window/page-visibility.js +4 -2
- package/dist/esm/common/window/session-storage.js +54 -13
- package/dist/esm/common/wrap/index.js +3 -3
- package/dist/esm/common/wrap/wrap-events.js +11 -11
- package/dist/esm/common/wrap/wrap-fetch.js +7 -9
- package/dist/esm/common/wrap/wrap-function.js +4 -17
- package/dist/esm/common/wrap/wrap-history.js +8 -7
- package/dist/esm/common/wrap/wrap-jsonp.js +8 -7
- package/dist/esm/common/wrap/wrap-mutation.js +7 -6
- package/dist/esm/common/wrap/wrap-promise.js +11 -7
- package/dist/esm/common/wrap/wrap-promise.test.js +115 -0
- package/dist/esm/common/wrap/wrap-raf.js +7 -7
- package/dist/esm/common/wrap/wrap-timer.js +7 -7
- package/dist/esm/common/wrap/wrap-xhr.js +7 -8
- package/dist/esm/features/ajax/aggregate/index.js +1 -1
- package/dist/esm/features/ajax/instrument/index.js +2 -1
- package/dist/esm/features/jserrors/aggregate/canonical-function-name.test.js +5 -4
- package/dist/esm/features/jserrors/aggregate/compute-stack-trace.js +1 -2
- package/dist/esm/features/jserrors/aggregate/compute-stack-trace.test.js +5 -5
- package/dist/esm/features/jserrors/aggregate/format-stack-trace.test.js +6 -5
- package/dist/esm/features/jserrors/aggregate/index.js +35 -14
- package/dist/esm/features/jserrors/aggregate/string-hash-code.test.js +5 -4
- package/dist/esm/features/jserrors/instrument/index.js +9 -12
- package/dist/esm/features/metrics/aggregate/index.js +17 -7
- package/dist/esm/features/metrics/instrument/index.js +2 -1
- package/dist/esm/features/metrics/instrument/workers-helper.js +9 -6
- package/dist/esm/features/page_action/aggregate/index.js +12 -4
- package/dist/esm/features/page_action/instrument/index.js +2 -1
- package/dist/esm/features/page_view_event/aggregate/index.js +25 -10
- package/dist/esm/features/page_view_event/instrument/index.js +2 -1
- package/dist/esm/features/page_view_timing/aggregate/index.js +90 -61
- package/dist/esm/features/page_view_timing/instrument/index.js +2 -1
- package/dist/esm/features/session_trace/aggregate/index.js +69 -26
- package/dist/esm/features/session_trace/instrument/index.js +2 -1
- package/dist/esm/features/spa/instrument/index.js +2 -1
- package/dist/esm/features/utils/instrument-base.js +3 -2
- package/dist/esm/features/utils/lazy-loader.js +1 -1
- package/dist/esm/index.js +4 -4
- package/dist/esm/loaders/agent.js +3 -2
- package/dist/esm/loaders/api/api.js +85 -21
- package/dist/esm/loaders/api/apiAsync.js +3 -3
- package/dist/esm/loaders/configure/configure.js +14 -8
- package/dist/esm/loaders/features/enabled-features.js +1 -1
- package/dist/esm/loaders/micro-agent.js +18 -13
- 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/env.cdn.d.ts +18 -0
- package/dist/types/common/constants/env.cdn.d.ts.map +1 -0
- package/dist/types/common/constants/env.d.ts +13 -0
- package/dist/types/common/constants/env.d.ts.map +1 -0
- package/dist/types/common/constants/env.npm.d.ts +19 -0
- package/dist/types/common/constants/env.npm.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 +12 -0
- package/dist/types/common/ids/id.d.ts.map +1 -0
- package/dist/types/common/ids/unique-id.d.ts +28 -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 +4 -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 +6 -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 +2 -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 +11 -0
- package/dist/types/common/wrap/index.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 +6 -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 +32 -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 +67 -59
- 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 +11 -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 +47 -0
- package/src/common/constants/env.cdn.js +20 -0
- package/src/common/constants/env.js +23 -0
- package/src/common/constants/env.npm.js +21 -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/contextual-ee.test.js +310 -0
- package/src/common/event-emitter/handle.js +17 -0
- package/src/common/event-emitter/handle.test.js +56 -0
- package/src/common/event-emitter/register-handler.js +25 -0
- package/src/common/event-emitter/register-handler.test.js +61 -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 +32 -0
- package/src/common/ids/id.test.js +92 -0
- package/src/common/ids/unique-id.js +104 -0
- package/src/common/ids/unique-id.test.js +58 -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 +90 -0
- package/src/common/timing/nav-timing.test.js +161 -0
- package/src/common/timing/now.js +9 -0
- package/src/common/unload/eol.js +62 -0
- package/src/common/url/clean-url.js +10 -0
- package/src/common/url/clean-url.test.js +25 -0
- package/src/common/url/encode.js +75 -0
- package/src/common/url/encode.test.js +80 -0
- package/src/common/url/location.js +12 -0
- package/src/common/url/location.test.js +15 -0
- package/src/common/url/parse-url.js +70 -0
- package/src/common/url/parse-url.test.js +110 -0
- package/src/common/url/protocol.js +9 -0
- package/src/common/url/protocol.test.js +18 -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 +47 -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 +17 -0
- package/src/common/wrap/wrap-events.js +106 -0
- package/src/common/wrap/wrap-fetch.js +110 -0
- package/src/common/wrap/wrap-function.js +248 -0
- package/src/common/wrap/wrap-history.js +51 -0
- package/src/common/wrap/wrap-jsonp.js +136 -0
- package/src/common/wrap/wrap-mutation.js +58 -0
- package/src/common/wrap/wrap-promise.js +166 -0
- package/src/common/wrap/wrap-promise.test.js +140 -0
- package/src/common/wrap/wrap-raf.js +52 -0
- package/src/common/wrap/wrap-timer.js +69 -0
- package/src/common/wrap/wrap-xhr.js +214 -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 +151 -0
- package/src/features/metrics/aggregate/index.js +133 -0
- package/src/features/metrics/constants.js +7 -0
- package/src/features/metrics/index.js +1 -0
- package/src/features/metrics/instrument/index.js +14 -0
- package/src/features/metrics/instrument/workers-helper.js +113 -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 +143 -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 +257 -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 +413 -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 +127 -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 +114 -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/cjs/common/constants/environment-variables.js +0 -20
- package/dist/cjs/common/util/reduce.js +0 -22
- package/dist/cjs/common/window/top-level-callers.js +0 -23
- package/dist/esm/common/constants/environment-variables.js +0 -11
- package/dist/esm/common/util/reduce.js +0 -16
- package/dist/esm/common/window/top-level-callers.js +0 -17
- package/types.ts +0 -221
|
@@ -3,12 +3,12 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
+
exports.CUSTOM_ATTR_GROUP = void 0;
|
|
6
7
|
exports.setAPI = setAPI;
|
|
7
|
-
|
|
8
|
+
exports.setTopLevelCallers = setTopLevelCallers;
|
|
8
9
|
var _features = require("../features/features");
|
|
9
10
|
var _config = require("../../common/config/config");
|
|
10
11
|
var _handle = require("../../common/event-emitter/handle");
|
|
11
|
-
var _mapOwn = require("../../common/util/map-own");
|
|
12
12
|
var _contextualEe = require("../../common/event-emitter/contextual-ee");
|
|
13
13
|
var _now = require("../../common/timing/now");
|
|
14
14
|
var _drain = require("../../common/drain/drain");
|
|
@@ -16,9 +16,39 @@ var _load = require("../../common/window/load");
|
|
|
16
16
|
var _globalScope = require("../../common/util/global-scope");
|
|
17
17
|
var _console = require("../../common/util/console");
|
|
18
18
|
var _constants = require("../../features/metrics/constants");
|
|
19
|
-
|
|
19
|
+
var _nreum = require("../../common/window/nreum");
|
|
20
|
+
var _sessionStorage = require("../../common/window/session-storage");
|
|
20
21
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
21
|
-
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
22
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; } /*
|
|
23
|
+
* Copyright 2020 New Relic Corporation. All rights reserved.
|
|
24
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
25
|
+
*/
|
|
26
|
+
const CUSTOM_ATTR_GROUP = 'CUSTOM/'; // the subgroup items should be stored under in storage API
|
|
27
|
+
exports.CUSTOM_ATTR_GROUP = CUSTOM_ATTR_GROUP;
|
|
28
|
+
function setTopLevelCallers() {
|
|
29
|
+
const nr = (0, _nreum.gosCDN)();
|
|
30
|
+
const funcs = ['setErrorHandler', 'finished', 'addToTrace', 'inlineHit', 'addRelease', 'addPageAction', 'setCurrentRouteName', 'setPageViewName', 'setCustomAttribute', 'interaction', 'noticeError', 'setUserId'];
|
|
31
|
+
funcs.forEach(f => {
|
|
32
|
+
nr[f] = function () {
|
|
33
|
+
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
34
|
+
args[_key] = arguments[_key];
|
|
35
|
+
}
|
|
36
|
+
return caller(f, ...args);
|
|
37
|
+
};
|
|
38
|
+
});
|
|
39
|
+
function caller(fnName) {
|
|
40
|
+
for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
|
|
41
|
+
args[_key2 - 1] = arguments[_key2];
|
|
42
|
+
}
|
|
43
|
+
let returnVals = [];
|
|
44
|
+
Object.values(nr.initializedAgents).forEach(val => {
|
|
45
|
+
if (val.exposed && val.api[fnName]) {
|
|
46
|
+
returnVals.push(val.api[fnName](...args));
|
|
47
|
+
}
|
|
48
|
+
});
|
|
49
|
+
return returnVals.length > 1 ? returnVals : returnVals[0];
|
|
50
|
+
}
|
|
51
|
+
}
|
|
22
52
|
function setAPI(agentIdentifier, forceDrain) {
|
|
23
53
|
if (!forceDrain) (0, _drain.registerDrain)(agentIdentifier, 'api');
|
|
24
54
|
const apiInterface = {};
|
|
@@ -29,27 +59,64 @@ function setAPI(agentIdentifier, forceDrain) {
|
|
|
29
59
|
var spaPrefix = prefix + 'ixn-';
|
|
30
60
|
|
|
31
61
|
// Setup stub functions that queue calls for later processing.
|
|
32
|
-
(
|
|
33
|
-
apiInterface[fnName] = apiCall(prefix, fnName, true, 'api');
|
|
34
|
-
});
|
|
62
|
+
asyncApiFns.forEach(fnName => apiInterface[fnName] = apiCall(prefix, fnName, true, 'api'));
|
|
35
63
|
apiInterface.addPageAction = apiCall(prefix, 'addPageAction', true, _features.FEATURE_NAMES.pageAction);
|
|
36
64
|
apiInterface.setCurrentRouteName = apiCall(prefix, 'routeName', true, _features.FEATURE_NAMES.spa);
|
|
37
65
|
apiInterface.setPageViewName = function (name, host) {
|
|
38
66
|
if (typeof name !== 'string') return;
|
|
39
67
|
if (name.charAt(0) !== '/') name = '/' + name;
|
|
40
68
|
(0, _config.getRuntime)(agentIdentifier).customTransaction = (host || 'http://custom.transaction') + name;
|
|
41
|
-
return apiCall(prefix, 'setPageViewName', true
|
|
69
|
+
return apiCall(prefix, 'setPageViewName', true)();
|
|
42
70
|
};
|
|
43
|
-
|
|
71
|
+
|
|
72
|
+
/**
|
|
73
|
+
* Attach the key-value attribute onto agent payloads. All browser events in NR will be affected.
|
|
74
|
+
* @param {string} key
|
|
75
|
+
* @param {string|number|null} value - null indicates the key should be removed or erased
|
|
76
|
+
* @param {string} apiName
|
|
77
|
+
* @param {boolean} addToBrowserStorage - whether this attribute should be stored in browser storage API and retrieved by the next agent context or initialization
|
|
78
|
+
* @returns @see apiCall
|
|
79
|
+
*/
|
|
80
|
+
function appendJsAttribute(key, value, apiName, addToBrowserStorage) {
|
|
44
81
|
const currentInfo = (0, _config.getInfo)(agentIdentifier);
|
|
45
|
-
(
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
82
|
+
if (value === null) {
|
|
83
|
+
delete currentInfo.jsAttributes[key];
|
|
84
|
+
if (_globalScope.isBrowserScope) (0, _sessionStorage.removeFromBrowserStorage)(key, CUSTOM_ATTR_GROUP); // addToBrowserStorage flag isn't needed to unset keys from storage
|
|
85
|
+
} else {
|
|
86
|
+
(0, _config.setInfo)(agentIdentifier, {
|
|
87
|
+
...currentInfo,
|
|
88
|
+
jsAttributes: {
|
|
89
|
+
...currentInfo.jsAttributes,
|
|
90
|
+
[key]: value
|
|
91
|
+
}
|
|
92
|
+
});
|
|
93
|
+
if (_globalScope.isBrowserScope && addToBrowserStorage) (0, _sessionStorage.putInBrowserStorage)(key, value, CUSTOM_ATTR_GROUP);
|
|
94
|
+
}
|
|
95
|
+
return apiCall(prefix, apiName, true)();
|
|
96
|
+
}
|
|
97
|
+
apiInterface.setCustomAttribute = function (name, value) {
|
|
98
|
+
let persistAttribute = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
|
|
99
|
+
if (typeof name !== 'string') {
|
|
100
|
+
(0, _console.warn)("Failed to execute setCustomAttribute.\nName must be a string type, but a type of <".concat(typeof name, "> was provided."));
|
|
101
|
+
return;
|
|
102
|
+
}
|
|
103
|
+
if (!(['string', 'number'].includes(typeof value) || value === null)) {
|
|
104
|
+
(0, _console.warn)("Failed to execute setCustomAttribute.\nNon-null value must be a string or number type, but a type of <".concat(typeof value, "> was provided."));
|
|
105
|
+
return;
|
|
106
|
+
}
|
|
107
|
+
return appendJsAttribute(name, value, 'setCustomAttribute', persistAttribute);
|
|
108
|
+
};
|
|
109
|
+
/**
|
|
110
|
+
* Attach the 'enduser.id' attribute onto agent payloads. This may be used in NR queries to group all browser events by specific users.
|
|
111
|
+
* @param {string} value - unique user identifier; a null user id suggests none should exist
|
|
112
|
+
* @returns @see apiCall
|
|
113
|
+
*/
|
|
114
|
+
apiInterface.setUserId = function (value) {
|
|
115
|
+
if (!(typeof value === 'string' || value === null)) {
|
|
116
|
+
(0, _console.warn)("Failed to execute setUserId.\nNon-null value must be a string type, but a type of <".concat(typeof value, "> was provided."));
|
|
117
|
+
return;
|
|
118
|
+
}
|
|
119
|
+
return appendJsAttribute('enduser.id', value, 'setUserId', true);
|
|
53
120
|
};
|
|
54
121
|
apiInterface.interaction = function () {
|
|
55
122
|
return new InteractionHandle().get();
|
|
@@ -77,13 +144,13 @@ function setAPI(agentIdentifier, forceDrain) {
|
|
|
77
144
|
};
|
|
78
145
|
}
|
|
79
146
|
};
|
|
80
|
-
|
|
147
|
+
void ['actionText', 'setName', 'setAttribute', 'save', 'ignore', 'onEnd', 'getContext', 'end', 'get'].forEach(name => {
|
|
81
148
|
InteractionApiProto[name] = apiCall(spaPrefix, name, undefined, _features.FEATURE_NAMES.spa);
|
|
82
149
|
});
|
|
83
150
|
function apiCall(prefix, name, notSpa, bufferGroup) {
|
|
84
151
|
return function () {
|
|
85
152
|
(0, _handle.handle)(_constants.SUPPORTABILITY_METRIC_CHANNEL, ['API/' + name + '/called'], undefined, _features.FEATURE_NAMES.metrics, instanceEE);
|
|
86
|
-
(0, _handle.handle)(prefix + name, [(0, _now.now)()
|
|
153
|
+
if (bufferGroup) (0, _handle.handle)(prefix + name, [(0, _now.now)(), ...arguments], notSpa ? null : this, bufferGroup, instanceEE); // no bufferGroup means only the SM is emitted
|
|
87
154
|
return notSpa ? void 0 : this;
|
|
88
155
|
};
|
|
89
156
|
}
|
|
@@ -98,9 +165,10 @@ function setAPI(agentIdentifier, forceDrain) {
|
|
|
98
165
|
// try to stay out of the way of the window.load event, lazy load once that has finished.
|
|
99
166
|
else (0, _load.onWindowLoad)(() => lazyLoad(), true);
|
|
100
167
|
function lazyLoad() {
|
|
101
|
-
Promise.resolve().then(() => _interopRequireWildcard(require( /* webpackChunkName: "async-api" */'./apiAsync'))).then(
|
|
102
|
-
|
|
103
|
-
|
|
168
|
+
Promise.resolve().then(() => _interopRequireWildcard(require( /* webpackChunkName: "async-api" */'./apiAsync'))).then(_ref => {
|
|
169
|
+
let {
|
|
170
|
+
setAPI
|
|
171
|
+
} = _ref;
|
|
104
172
|
setAPI(agentIdentifier);
|
|
105
173
|
(0, _drain.drain)(agentIdentifier, 'api');
|
|
106
174
|
}).catch(() => (0, _console.warn)('Downloading runtime APIs failed...'));
|
|
@@ -9,7 +9,6 @@ var _config = require("../../common/config/config");
|
|
|
9
9
|
var _contextualEe = require("../../common/event-emitter/contextual-ee");
|
|
10
10
|
var _handle = require("../../common/event-emitter/handle");
|
|
11
11
|
var _registerHandler = require("../../common/event-emitter/register-handler");
|
|
12
|
-
var _mapOwn = require("../../common/util/map-own");
|
|
13
12
|
var _single = require("../../common/util/single");
|
|
14
13
|
var _submitData = require("../../common/util/submit-data");
|
|
15
14
|
var _globalScope = require("../../common/util/global-scope");
|
|
@@ -27,8 +26,9 @@ function setAPI(agentIdentifier) {
|
|
|
27
26
|
};
|
|
28
27
|
|
|
29
28
|
// Hook all of the api functions up to the queues/stubs created in loader/api.js
|
|
30
|
-
|
|
31
|
-
|
|
29
|
+
Object.entries(api).forEach(_ref => {
|
|
30
|
+
let [fnName, fnCall] = _ref;
|
|
31
|
+
return (0, _registerHandler.registerHandler)('api-' + fnName, fnCall, 'api', instanceEE);
|
|
32
32
|
});
|
|
33
33
|
|
|
34
34
|
// All API functions get passed the time they were called as their
|
|
@@ -9,8 +9,11 @@ var _nreum = require("../../common/window/nreum");
|
|
|
9
9
|
var _config = require("../../common/config/config");
|
|
10
10
|
var _featureFlags = require("../../common/util/feature-flags");
|
|
11
11
|
var _globalScope = require("../../common/util/global-scope");
|
|
12
|
-
var
|
|
13
|
-
function configure(agentIdentifier
|
|
12
|
+
var _sessionStorage = require("../../common/window/session-storage");
|
|
13
|
+
function configure(agentIdentifier) {
|
|
14
|
+
let opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
15
|
+
let loaderType = arguments.length > 2 ? arguments[2] : undefined;
|
|
16
|
+
let forceDrain = arguments.length > 3 ? arguments[3] : undefined;
|
|
14
17
|
let {
|
|
15
18
|
init,
|
|
16
19
|
info,
|
|
@@ -26,18 +29,21 @@ function configure(agentIdentifier, opts = {}, loaderType, forceDrain) {
|
|
|
26
29
|
info = nr.info;
|
|
27
30
|
loader_config = nr.loader_config;
|
|
28
31
|
}
|
|
32
|
+
info.jsAttributes ??= {};
|
|
29
33
|
if (_globalScope.isWorkerScope) {
|
|
30
34
|
// add a default attr to all worker payloads
|
|
31
|
-
info.jsAttributes =
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
+
info.jsAttributes.isWorker = true;
|
|
36
|
+
}
|
|
37
|
+
if (_globalScope.isBrowserScope) {
|
|
38
|
+
// retrieve & re-add all of the persisted setCustomAttribute|setUserId k-v from previous page load(s)
|
|
39
|
+
let prevPageSessionJsAttrs = (0, _sessionStorage.getAllStorageItemsOfGroup)(_api.CUSTOM_ATTR_GROUP);
|
|
40
|
+
Object.assign(info.jsAttributes, prevPageSessionJsAttrs);
|
|
35
41
|
}
|
|
36
42
|
(0, _config.setInfo)(agentIdentifier, info);
|
|
37
43
|
(0, _config.setConfiguration)(agentIdentifier, init || {});
|
|
38
44
|
(0, _config.setLoaderConfig)(agentIdentifier, loader_config || {});
|
|
39
45
|
(0, _config.setRuntime)(agentIdentifier, runtime);
|
|
40
|
-
(0,
|
|
46
|
+
(0, _api.setTopLevelCallers)();
|
|
41
47
|
const api = (0, _api.setAPI)(agentIdentifier, forceDrain);
|
|
42
48
|
(0, _nreum.gosNREUMInitializedAgents)(agentIdentifier, api, 'api');
|
|
43
49
|
(0, _nreum.gosNREUMInitializedAgents)(agentIdentifier, exposed, 'exposed');
|
|
@@ -8,7 +8,7 @@ var _features = require("./features");
|
|
|
8
8
|
var _config = require("../../common/config/config");
|
|
9
9
|
const featureNames = Object.values(_features.FEATURE_NAMES);
|
|
10
10
|
function isEnabled(name, agentIdentifier) {
|
|
11
|
-
return (0, _config.getConfigurationValue)(agentIdentifier,
|
|
11
|
+
return (0, _config.getConfigurationValue)(agentIdentifier, "".concat(name, ".enabled")) !== false;
|
|
12
12
|
}
|
|
13
13
|
function getEnabledFeatures(agentIdentifier) {
|
|
14
14
|
const enabledFeatures = {};
|
|
@@ -13,7 +13,8 @@ var _config = require("../common/config/config");
|
|
|
13
13
|
var _features = require("./features/features");
|
|
14
14
|
var _console = require("../common/util/console");
|
|
15
15
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
16
|
-
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
16
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; } // loader files
|
|
17
|
+
// core files
|
|
17
18
|
const nonAutoFeatures = [_features.FEATURE_NAMES.jserrors, _features.FEATURE_NAMES.pageAction];
|
|
18
19
|
const autoFeatures = [_features.FEATURE_NAMES.metrics];
|
|
19
20
|
|
|
@@ -28,7 +29,8 @@ class MicroAgent {
|
|
|
28
29
|
* @param {Object} options - Specifies features and runtime configuration,
|
|
29
30
|
* @param {string=} agentIdentifier - The optional unique ID of the agent.
|
|
30
31
|
*/
|
|
31
|
-
constructor(options
|
|
32
|
+
constructor(options) {
|
|
33
|
+
let agentIdentifier = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : (0, _uniqueId.generateRandomHexString)(16);
|
|
32
34
|
this.agentIdentifier = agentIdentifier;
|
|
33
35
|
this.sharedAggregator = new _aggregator.Aggregator({
|
|
34
36
|
agentIdentifier: this.agentIdentifier
|
|
@@ -56,13 +58,15 @@ class MicroAgent {
|
|
|
56
58
|
autoFeatures.forEach(f => {
|
|
57
59
|
if (enabledFeatures[f]) {
|
|
58
60
|
// TODO - THIS does not work, the instrument switch in lazy loader increases the size of the worker build. Needs to be revisited
|
|
59
|
-
Promise.resolve().then(() => _interopRequireWildcard(require( /* webpackChunkName: "lazy-loader" */'../features/utils/lazy-loader'))).then(
|
|
60
|
-
|
|
61
|
-
|
|
61
|
+
Promise.resolve().then(() => _interopRequireWildcard(require( /* webpackChunkName: "lazy-loader" */'../features/utils/lazy-loader'))).then(_ref => {
|
|
62
|
+
let {
|
|
63
|
+
lazyLoader
|
|
64
|
+
} = _ref;
|
|
62
65
|
return lazyLoader(f, 'instrument');
|
|
63
|
-
}).then(
|
|
64
|
-
|
|
65
|
-
|
|
66
|
+
}).then(_ref2 => {
|
|
67
|
+
let {
|
|
68
|
+
Instrument
|
|
69
|
+
} = _ref2;
|
|
66
70
|
this.features[f] = new Instrument(this.agentIdentifier, this.sharedAggregator);
|
|
67
71
|
}).catch(err => (0, _console.warn)('Something prevented the agent from being downloaded.'));
|
|
68
72
|
}
|
|
@@ -71,13 +75,15 @@ class MicroAgent {
|
|
|
71
75
|
if (enabledFeatures[f]) {
|
|
72
76
|
// TODO - THIS does not work, the instrument switch in lazy loader increases the size of the worker build. Needs to be revisited
|
|
73
77
|
// Parts of the lazy-loader were removed because webpack was transpiling them into the worker build, errantly inflating the build size.
|
|
74
|
-
Promise.resolve().then(() => _interopRequireWildcard(require( /* webpackChunkName: "lazy-loader" */'../features/utils/lazy-loader'))).then(
|
|
75
|
-
|
|
76
|
-
|
|
78
|
+
Promise.resolve().then(() => _interopRequireWildcard(require( /* webpackChunkName: "lazy-loader" */'../features/utils/lazy-loader'))).then(_ref3 => {
|
|
79
|
+
let {
|
|
80
|
+
lazyLoader
|
|
81
|
+
} = _ref3;
|
|
77
82
|
return lazyLoader(f, 'aggregate');
|
|
78
|
-
}).then(
|
|
79
|
-
|
|
80
|
-
|
|
83
|
+
}).then(_ref4 => {
|
|
84
|
+
let {
|
|
85
|
+
Aggregate
|
|
86
|
+
} = _ref4;
|
|
81
87
|
this.features[f] = new Aggregate(this.agentIdentifier, this.sharedAggregator);
|
|
82
88
|
}).catch(err => (0, _console.warn)('Something prevented the agent from being downloaded.'));
|
|
83
89
|
}
|
|
@@ -4,7 +4,8 @@ export const isiOS = /(iPad|iPhone|iPod)/g.test(navigator.userAgent);
|
|
|
4
4
|
|
|
5
5
|
// Shared Web Workers introduced in iOS 16.0+ and n/a in 15.6-
|
|
6
6
|
export const iOS_below16 = isiOS && Boolean(typeof SharedWorker === 'undefined');
|
|
7
|
-
/*
|
|
8
|
-
|
|
9
|
-
|
|
7
|
+
/*
|
|
8
|
+
^ It was discovered in Safari 14 (https://bugs.webkit.org/show_bug.cgi?id=225305) that the buffered flag in PerformanceObserver
|
|
9
|
+
did not work. This affects our onFCP metric in particular since web-vitals uses that flag to retrieve paint timing entries.
|
|
10
|
+
This was fixed in v16+.
|
|
10
11
|
*/
|
|
@@ -6,12 +6,13 @@ export class Configurable {
|
|
|
6
6
|
if (!obj || typeof obj !== 'object') return warn('New setting a Configurable requires an object as input');
|
|
7
7
|
if (!model || typeof model !== 'object') return warn('Setting a Configurable requires a model to set its initial properties');
|
|
8
8
|
Object.assign(this, model);
|
|
9
|
-
Object.entries(obj).forEach(
|
|
9
|
+
Object.entries(obj).forEach(_ref => {
|
|
10
|
+
let [key, value] = _ref;
|
|
10
11
|
const frozenAttrs = getFrozenAttributes(key);
|
|
11
12
|
if (frozenAttrs.length && value && typeof value === 'object') {
|
|
12
13
|
frozenAttrs.forEach(attr => {
|
|
13
14
|
if (attr in value) {
|
|
14
|
-
warn(
|
|
15
|
+
warn("\"".concat(attr, "\" is a protected attribute and can not be changed in feature ").concat(key, ". It will have no effect."));
|
|
15
16
|
delete value[attr];
|
|
16
17
|
}
|
|
17
18
|
});
|
|
@@ -32,7 +32,7 @@ export function isValid(id) {
|
|
|
32
32
|
}
|
|
33
33
|
export function getInfo(id) {
|
|
34
34
|
if (!id) throw new Error('All info objects require an agent identifier!');
|
|
35
|
-
if (!_cache[id]) throw new Error(
|
|
35
|
+
if (!_cache[id]) throw new Error("Info for ".concat(id, " was never set"));
|
|
36
36
|
return _cache[id];
|
|
37
37
|
}
|
|
38
38
|
export function setInfo(id, obj) {
|
|
@@ -52,7 +52,7 @@ const model = {
|
|
|
52
52
|
const _cache = {};
|
|
53
53
|
export function getConfiguration(id) {
|
|
54
54
|
if (!id) throw new Error('All configuration objects require an agent identifier!');
|
|
55
|
-
if (!_cache[id]) throw new Error(
|
|
55
|
+
if (!_cache[id]) throw new Error("Configuration for ".concat(id, " was never set"));
|
|
56
56
|
return _cache[id];
|
|
57
57
|
}
|
|
58
58
|
export function setConfiguration(id, obj) {
|
|
@@ -11,7 +11,7 @@ const model = {
|
|
|
11
11
|
const _cache = {};
|
|
12
12
|
export function getLoaderConfig(id) {
|
|
13
13
|
if (!id) throw new Error('All loader-config objects require an agent identifier!');
|
|
14
|
-
if (!_cache[id]) throw new Error(
|
|
14
|
+
if (!_cache[id]) throw new Error("LoaderConfig for ".concat(id, " was never set"));
|
|
15
15
|
return _cache[id];
|
|
16
16
|
}
|
|
17
17
|
export function setLoaderConfig(id, obj) {
|
|
@@ -4,10 +4,11 @@ import { gosNREUMInitializedAgents } from '../../window/nreum';
|
|
|
4
4
|
import { getCurrentSessionIdOrMakeNew } from '../../window/session-storage';
|
|
5
5
|
import { getConfigurationValue } from '../config';
|
|
6
6
|
import { globalScope } from '../../util/global-scope';
|
|
7
|
-
import { BUILD_ENV, DIST_METHOD, VERSION } from
|
|
7
|
+
import { BUILD_ENV, DIST_METHOD, VERSION } from "../../constants/env.npm";
|
|
8
8
|
const model = agentId => {
|
|
9
9
|
return {
|
|
10
10
|
buildEnv: BUILD_ENV,
|
|
11
|
+
bytesSent: {},
|
|
11
12
|
customTransaction: undefined,
|
|
12
13
|
disabled: false,
|
|
13
14
|
distMethod: DIST_METHOD,
|
|
@@ -31,7 +32,7 @@ const model = agentId => {
|
|
|
31
32
|
const _cache = {};
|
|
32
33
|
export function getRuntime(id) {
|
|
33
34
|
if (!id) throw new Error('All runtime objects require an agent identifier!');
|
|
34
|
-
if (!_cache[id]) throw new Error(
|
|
35
|
+
if (!_cache[id]) throw new Error("Runtime for ".concat(id, " was never set"));
|
|
35
36
|
return _cache[id];
|
|
36
37
|
}
|
|
37
38
|
export function setRuntime(id, obj) {
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file This file exposes CDN build environment variables. These variables will
|
|
3
|
+
* be overridden with babel.
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Exposes the version of the agent
|
|
8
|
+
*/
|
|
9
|
+
export const VERSION = "1.231.0";
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Exposes the build type of the agent
|
|
13
|
+
* Valid values are LOCAL, PROD, DEV
|
|
14
|
+
*/
|
|
15
|
+
export const BUILD_ENV = undefined;
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Exposes the distribution method of the agent
|
|
19
|
+
*/
|
|
20
|
+
export const DIST_METHOD = 'CDN';
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file This file exposes build time environment variables that will be included in the
|
|
3
|
+
* build output of the agent. This file specifically contains the normal environment variables
|
|
4
|
+
* for the NPM agent build and will be overridden by webpack/babel during the build based on the
|
|
5
|
+
* type of build being performed.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
import pkgJSON from '../../../package.json';
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Exposes the version of the agent
|
|
12
|
+
*/
|
|
13
|
+
export const VERSION = pkgJSON.version;
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Exposes the build type of the agent
|
|
17
|
+
*/
|
|
18
|
+
export const BUILD_ENV = 'NPM';
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Exposes the distribution method of the agent
|
|
22
|
+
*/
|
|
23
|
+
export const DIST_METHOD = 'NPM';
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file This file exposes NPM build environment variables. These variables will
|
|
3
|
+
* be overridden with babel.
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Exposes the version of the agent
|
|
8
|
+
*/
|
|
9
|
+
export const VERSION = "1.231.0";
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Exposes the build type of the agent
|
|
13
|
+
* Valid values are LOCAL, PROD, DEV
|
|
14
|
+
*/
|
|
15
|
+
export const BUILD_ENV = 'NPM';
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Exposes the distribution method of the agent
|
|
19
|
+
* Valid valuse are CDN, NPM
|
|
20
|
+
*/
|
|
21
|
+
export const DIST_METHOD = 'NPM';
|
|
@@ -8,7 +8,8 @@ export class SharedContext {
|
|
|
8
8
|
if (typeof context !== 'object') return warn('shared context requires an object as input');
|
|
9
9
|
this.sharedContext = {};
|
|
10
10
|
Object.assign(this.sharedContext, model);
|
|
11
|
-
Object.entries(context).forEach(
|
|
11
|
+
Object.entries(context).forEach(_ref => {
|
|
12
|
+
let [key, value] = _ref;
|
|
12
13
|
if (Object.keys(model).includes(key)) this.sharedContext[key] = value;
|
|
13
14
|
});
|
|
14
15
|
} catch (err) {
|
|
@@ -44,7 +44,9 @@ function curateRegistry(agentIdentifier) {
|
|
|
44
44
|
* @param {string} agentIdentifier - A unique 16 character ID corresponding to an instantiated agent.
|
|
45
45
|
* @param {string} featureName - A named group into which the feature's buffered events are bucketed.
|
|
46
46
|
*/
|
|
47
|
-
export function drain(
|
|
47
|
+
export function drain() {
|
|
48
|
+
let agentIdentifier = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
|
|
49
|
+
let featureName = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'feature';
|
|
48
50
|
curateRegistry(agentIdentifier);
|
|
49
51
|
|
|
50
52
|
// If the feature for the specified agent is not in the registry, that means the instrument file was bypassed.
|
|
@@ -58,9 +60,13 @@ export function drain(agentIdentifier = '', featureName = 'feature') {
|
|
|
58
60
|
// Only when the event-groups for all features are ready to drain (staged) do we execute the drain. This has the effect
|
|
59
61
|
// that the last feature to call drain triggers drain for all features.
|
|
60
62
|
const items = Array.from(registry[agentIdentifier]);
|
|
61
|
-
if (items.every(
|
|
63
|
+
if (items.every(_ref => {
|
|
64
|
+
let [key, values] = _ref;
|
|
65
|
+
return values.staged;
|
|
66
|
+
})) {
|
|
62
67
|
items.sort((a, b) => a[1].priority - b[1].priority);
|
|
63
|
-
items.forEach(
|
|
68
|
+
items.forEach(_ref2 => {
|
|
69
|
+
let [group] = _ref2;
|
|
64
70
|
drainGroup(group);
|
|
65
71
|
});
|
|
66
72
|
}
|