{"version":3,"sources":["node_modules/@newrelic/browser-agent/dist/esm/common/window/load.js","node_modules/@newrelic/browser-agent/dist/esm/features/logging/shared/utils.js","node_modules/@newrelic/browser-agent/dist/esm/common/dispatch/global-event.js","node_modules/@newrelic/browser-agent/dist/esm/common/util/feature-flags.js","node_modules/@newrelic/browser-agent/dist/esm/loaders/api/api-methods.js","node_modules/@newrelic/browser-agent/dist/esm/common/wrap/wrap-logger.js","node_modules/@newrelic/browser-agent/dist/esm/loaders/api/api.js","node_modules/@newrelic/browser-agent/dist/esm/loaders/configure/public-path.js","node_modules/@newrelic/browser-agent/dist/esm/loaders/configure/configure.js","node_modules/@newrelic/browser-agent/dist/esm/features/utils/feature-base.js","node_modules/@newrelic/browser-agent/dist/esm/common/context/shared-context.js"],"sourcesContent":["import { windowAddEventListener, documentAddEventListener } from '../event-listener/event-listener-opts';\nexport function checkState() {\n return typeof document === 'undefined' || document.readyState === 'complete';\n}\nexport function onWindowLoad(cb, useCapture) {\n if (checkState()) return cb();\n windowAddEventListener('load', cb, useCapture);\n}\nexport function onDOMContentLoaded(cb) {\n if (checkState()) return cb();\n documentAddEventListener('DOMContentLoaded', cb);\n}","import { handle } from '../../../common/event-emitter/handle';\nimport { now } from '../../../common/timing/now';\nimport { FEATURE_NAMES } from '../../../loaders/features/features';\nimport { SUPPORTABILITY_METRIC_CHANNEL } from '../../metrics/constants';\nimport { LOGGING_EVENT_EMITTER_CHANNEL, LOG_LEVELS } from '../constants';\n\n/**\n * @param {ContextualEE} ee - The contextual ee tied to the instance\n * @param {string} message - the log message string\n * @param {{[key: string]: *}} customAttributes - The log's custom attributes if any\n * @param {enum} level - the log level enum\n */\nexport function bufferLog(ee, message) {\n let customAttributes = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n let level = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : LOG_LEVELS.INFO;\n handle(SUPPORTABILITY_METRIC_CHANNEL, [\"API/logging/\".concat(level.toLowerCase(), \"/called\")], undefined, FEATURE_NAMES.metrics, ee);\n handle(LOGGING_EVENT_EMITTER_CHANNEL, [now(), message, customAttributes, level], undefined, FEATURE_NAMES.logging, ee);\n}\n\n/**\n * Checks if a supplied log level is acceptable for use in generating a log event\n * @param {string} level -- must be cast to uppercase before running this test\n * @returns {boolean}\n */\nexport function isValidLogLevel(level) {\n if (typeof level !== 'string') return false;\n return Object.values(LOG_LEVELS).some(logLevel => logLevel === level);\n}","import { globalScope } from '../constants/runtime';\nconst GLOBAL_EVENT_NAMESPACE = 'newrelic';\nexport function dispatchGlobalEvent() {\n let detail = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n try {\n globalScope.dispatchEvent(new CustomEvent(GLOBAL_EVENT_NAMESPACE, {\n detail\n }));\n } catch (err) {\n // something happened... dispatchEvent or CustomEvent might not be supported\n // decide what to do about it here\n }\n}","/*\n * Copyright 2020 New Relic Corporation. All rights reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { ee } from '../event-emitter/contextual-ee';\nimport { dispatchGlobalEvent } from '../dispatch/global-event';\nconst sentIds = new Set();\n\n/** A map of feature flags and their values as provided by the rum call -- scoped by agent ID */\nexport const activatedFeatures = {};\n\n/**\n * Sets the activatedFeatures object, dispatches the global loaded event,\n * and emits the rumresp flag to features\n * @param {{[key:string]:number}} flags key-val pair of flag names and numeric\n * @param {string} agentIdentifier agent instance identifier\n * @returns {void}\n */\nexport function activateFeatures(flags, agentIdentifier) {\n const sharedEE = ee.get(agentIdentifier);\n activatedFeatures[agentIdentifier] ??= {};\n if (!(flags && typeof flags === 'object')) return;\n if (sentIds.has(agentIdentifier)) return;\n sharedEE.emit('rumresp', [flags]);\n activatedFeatures[agentIdentifier] = flags;\n sentIds.add(agentIdentifier);\n\n // let any window level subscribers know that the agent is running\n dispatchGlobalEvent({\n loaded: true\n });\n}","import { SR_EVENT_EMITTER_TYPES } from '../../features/session_replay/constants';\nexport const apiMethods = ['setErrorHandler', 'finished', 'addToTrace', 'addRelease', 'addPageAction', 'setCurrentRouteName', 'setPageViewName', 'setCustomAttribute', 'interaction', 'noticeError', 'setUserId', 'setApplicationVersion', 'start', SR_EVENT_EMITTER_TYPES.RECORD, SR_EVENT_EMITTER_TYPES.PAUSE, 'log', 'wrapLogger'];\nexport const asyncApiMethods = ['setErrorHandler', 'finished', 'addToTrace', 'addRelease'];","/*\n * Copyright 2020 New Relic Corporation. All rights reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n/**\n * @file Wraps native timeout and interval methods for instrumentation.\n * This module is used by: jserrors, spa.\n */\n\nimport { LOGGING_FAILURE_MESSAGE } from '../../features/logging/constants';\nimport { ee as baseEE, contextId } from '../event-emitter/contextual-ee';\nimport { EventContext } from '../event-emitter/event-context';\nimport { warn } from '../util/console';\nimport { createWrapperWithEmitter as wfn } from './wrap-function';\n\n/**\n * Wraps a supplied function and adds emitter events under the `-wrap-logger-` prefix\n * @param {Object} sharedEE - The shared event emitter on which a new scoped event emitter will be based.\n * @param {Object} parent - The parent object housing the logger function\n * @param {string} loggerFn - The name of the function in the parent object to wrap\n * @returns {Object} Scoped event emitter with a debug ID of `logger`.\n */\n// eslint-disable-next-line\nexport function wrapLogger(sharedEE, parent, loggerFn, context) {\n if (!(typeof parent === 'object' && !!parent && typeof loggerFn === 'string' && !!loggerFn && typeof parent[loggerFn] === 'function')) return warn(LOGGING_FAILURE_MESSAGE + 'invalid argument(s)');\n const ee = scopedEE(sharedEE);\n const wrapFn = wfn(ee);\n\n /**\n * This section contains the context that will be shared across all invoked calls of the wrapped function,\n * which will be used to decorate the log data later at agg time\n */\n const ctx = new EventContext(contextId);\n ctx.level = context.level;\n ctx.customAttributes = context.customAttributes;\n\n /** observe calls to and emit events prefixed with `wrap-logger-` */\n wrapFn.inPlace(parent, [loggerFn], 'wrap-logger-', ctx);\n return ee;\n}\n\n/**\n * Returns an event emitter scoped specifically for the `logger` context. This scoping is a remnant from when all the\n * features shared the same group in the event, to isolate events between features. It will likely be revisited.\n * @param {Object} sharedEE - Optional event emitter on which to base the scoped emitter.\n * Uses `ee` on the global scope if undefined).\n * @returns {Object} Scoped event emitter with a debug ID of 'logger'.\n */\nexport function scopedEE(sharedEE) {\n return (sharedEE || baseEE).get('logger');\n}","/*\n * Copyright 2020 New Relic Corporation. All rights reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { FEATURE_NAMES } from '../features/features';\nimport { getRuntime, setInfo, getInfo } from '../../common/config/config';\nimport { handle } from '../../common/event-emitter/handle';\nimport { ee } from '../../common/event-emitter/contextual-ee';\nimport { drain, registerDrain } from '../../common/drain/drain';\nimport { onWindowLoad } from '../../common/window/load';\nimport { isBrowserScope } from '../../common/constants/runtime';\nimport { warn } from '../../common/util/console';\nimport { SUPPORTABILITY_METRIC_CHANNEL } from '../../features/metrics/constants';\nimport { gosCDN } from '../../common/window/nreum';\nimport { apiMethods, asyncApiMethods } from './api-methods';\nimport { SR_EVENT_EMITTER_TYPES } from '../../features/session_replay/constants';\nimport { now } from '../../common/timing/now';\nimport { MODE } from '../../common/session/constants';\nimport { LOG_LEVELS } from '../../features/logging/constants';\nimport { bufferLog } from '../../features/logging/shared/utils';\nimport { wrapLogger } from '../../common/wrap/wrap-logger';\nexport function setTopLevelCallers() {\n const nr = gosCDN();\n apiMethods.forEach(f => {\n nr[f] = function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return caller(f, ...args);\n };\n });\n function caller(fnName) {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n let returnVals = [];\n Object.values(nr.initializedAgents).forEach(val => {\n if (!val || !val.api) {\n warn(\"Call to api '\".concat(fnName, \"' made before agent fully initialized.\"));\n } else if (val.exposed && val.api[fnName]) {\n returnVals.push(val.api[fnName](...args));\n }\n });\n return returnVals.length > 1 ? returnVals : returnVals[0];\n }\n}\nconst replayRunning = {};\nexport function setAPI(agentIdentifier, forceDrain) {\n let runSoftNavOverSpa = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n if (!forceDrain) registerDrain(agentIdentifier, 'api');\n const apiInterface = {};\n var instanceEE = ee.get(agentIdentifier);\n var tracerEE = instanceEE.get('tracer');\n replayRunning[agentIdentifier] = MODE.OFF;\n instanceEE.on(SR_EVENT_EMITTER_TYPES.REPLAY_RUNNING, isRunning => {\n replayRunning[agentIdentifier] = isRunning;\n });\n var prefix = 'api-';\n var spaPrefix = prefix + 'ixn-';\n apiInterface.log = function (message) {\n let {\n customAttributes = {},\n level = LOG_LEVELS.INFO\n } = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n bufferLog(instanceEE, message, customAttributes, level);\n };\n apiInterface.wrapLogger = function (parent, functionName) {\n let {\n customAttributes = {},\n level = LOG_LEVELS.INFO\n } = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n wrapLogger(instanceEE, parent, functionName, {\n customAttributes,\n level\n });\n };\n\n // Setup stub functions that queue calls for later processing.\n asyncApiMethods.forEach(fnName => {\n apiInterface[fnName] = apiCall(prefix, fnName, true, 'api');\n });\n apiInterface.addPageAction = apiCall(prefix, 'addPageAction', true, FEATURE_NAMES.pageAction);\n apiInterface.setPageViewName = function (name, host) {\n if (typeof name !== 'string') return;\n if (name.charAt(0) !== '/') name = '/' + name;\n getRuntime(agentIdentifier).customTransaction = (host || 'http://custom.transaction') + name;\n return apiCall(prefix, 'setPageViewName', true)();\n };\n\n /**\n * Attach the key-value attribute onto agent payloads. All browser events in NR will be affected.\n * @param {string} key\n * @param {string|number|boolean|null} value - null indicates the key should be removed or erased\n * @param {string} apiName\n * @param {boolean} addToBrowserStorage - whether this attribute should be stored in browser storage API and retrieved by the next agent context or initialization\n * @returns @see apiCall\n */\n function appendJsAttribute(key, value, apiName, addToBrowserStorage) {\n const currentInfo = getInfo(agentIdentifier);\n if (value === null) {\n delete currentInfo.jsAttributes[key];\n } else {\n setInfo(agentIdentifier, {\n ...currentInfo,\n jsAttributes: {\n ...currentInfo.jsAttributes,\n [key]: value\n }\n });\n }\n return apiCall(prefix, apiName, true, !!addToBrowserStorage || value === null ? 'session' : undefined)(key, value);\n }\n apiInterface.setCustomAttribute = function (name, value) {\n let persistAttribute = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n if (typeof name !== 'string') {\n warn(\"Failed to execute setCustomAttribute.\\nName must be a string type, but a type of <\".concat(typeof name, \"> was provided.\"));\n return;\n }\n if (!(['string', 'number', 'boolean'].includes(typeof value) || value === null)) {\n warn(\"Failed to execute setCustomAttribute.\\nNon-null value must be a string, number or boolean type, but a type of <\".concat(typeof value, \"> was provided.\"));\n return;\n }\n return appendJsAttribute(name, value, 'setCustomAttribute', persistAttribute);\n };\n /**\n * Attach the 'enduser.id' attribute onto agent payloads. This may be used in NR queries to group all browser events by specific users.\n * @param {string} value - unique user identifier; a null user id suggests none should exist\n * @returns @see apiCall\n */\n apiInterface.setUserId = function (value) {\n if (!(typeof value === 'string' || value === null)) {\n warn(\"Failed to execute setUserId.\\nNon-null value must be a string type, but a type of <\".concat(typeof value, \"> was provided.\"));\n return;\n }\n return appendJsAttribute('enduser.id', value, 'setUserId', true);\n };\n\n /**\n * Attach the 'applcation.version' attribute onto agent payloads. This may be used in NR queries to group all browser events by a specific customer-defined release.\n * @param {string|null} value - Application version -- if null, will \"unset\" the value\n * @returns @see apiCall\n */\n apiInterface.setApplicationVersion = function (value) {\n if (!(typeof value === 'string' || value === null)) {\n warn(\"Failed to execute setApplicationVersion. Expected , but got <\".concat(typeof value, \">.\"));\n return;\n }\n return appendJsAttribute('application.version', value, 'setApplicationVersion', false);\n };\n apiInterface.start = () => {\n try {\n handle(SUPPORTABILITY_METRIC_CHANNEL, ['API/start/called'], undefined, FEATURE_NAMES.metrics, instanceEE);\n instanceEE.emit('manual-start-all');\n } catch (err) {\n warn('An unexpected issue occurred', err);\n }\n };\n apiInterface[SR_EVENT_EMITTER_TYPES.RECORD] = function () {\n handle(SUPPORTABILITY_METRIC_CHANNEL, ['API/recordReplay/called'], undefined, FEATURE_NAMES.metrics, instanceEE);\n handle(SR_EVENT_EMITTER_TYPES.RECORD, [], undefined, FEATURE_NAMES.sessionReplay, instanceEE);\n };\n apiInterface[SR_EVENT_EMITTER_TYPES.PAUSE] = function () {\n handle(SUPPORTABILITY_METRIC_CHANNEL, ['API/pauseReplay/called'], undefined, FEATURE_NAMES.metrics, instanceEE);\n handle(SR_EVENT_EMITTER_TYPES.PAUSE, [], undefined, FEATURE_NAMES.sessionReplay, instanceEE);\n };\n apiInterface.interaction = function (options) {\n return new InteractionHandle().get(typeof options === 'object' ? options : {});\n };\n function InteractionHandle() {}\n const InteractionApiProto = InteractionHandle.prototype = {\n createTracer: function (name, cb) {\n var contextStore = {};\n var ixn = this;\n var hasCb = typeof cb === 'function';\n handle(SUPPORTABILITY_METRIC_CHANNEL, ['API/createTracer/called'], undefined, FEATURE_NAMES.metrics, instanceEE);\n // Soft navigations won't support Tracer nodes, but this fn should still work the same otherwise (e.g., run the orig cb).\n if (!runSoftNavOverSpa) handle(spaPrefix + 'tracer', [now(), name, contextStore], ixn, FEATURE_NAMES.spa, instanceEE);\n return function () {\n tracerEE.emit((hasCb ? '' : 'no-') + 'fn-start', [now(), ixn, hasCb], contextStore);\n if (hasCb) {\n try {\n return cb.apply(this, arguments);\n } catch (err) {\n const error = typeof err === 'string' ? new Error(err) : err;\n tracerEE.emit('fn-err', [arguments, this, error], contextStore);\n // the error came from outside the agent, so don't swallow\n throw error;\n } finally {\n tracerEE.emit('fn-end', [now()], contextStore);\n }\n }\n };\n }\n };\n ['actionText', 'setName', 'setAttribute', 'save', 'ignore', 'onEnd', 'getContext', 'end', 'get'].forEach(name => {\n InteractionApiProto[name] = apiCall(spaPrefix, name, undefined, runSoftNavOverSpa ? FEATURE_NAMES.softNav : FEATURE_NAMES.spa);\n });\n apiInterface.setCurrentRouteName = runSoftNavOverSpa ? apiCall(spaPrefix, 'routeName', undefined, FEATURE_NAMES.softNav) : apiCall(prefix, 'routeName', true, FEATURE_NAMES.spa);\n function apiCall(prefix, name, notSpa, bufferGroup) {\n return function () {\n handle(SUPPORTABILITY_METRIC_CHANNEL, ['API/' + name + '/called'], undefined, FEATURE_NAMES.metrics, instanceEE);\n if (bufferGroup) handle(prefix + name, [now(), ...arguments], notSpa ? null : this, bufferGroup, instanceEE); // no bufferGroup means only the SM is emitted\n return notSpa ? undefined : this; // returns the InteractionHandle which allows these methods to be chained\n };\n }\n apiInterface.noticeError = function (err, customAttributes) {\n if (typeof err === 'string') err = new Error(err);\n handle(SUPPORTABILITY_METRIC_CHANNEL, ['API/noticeError/called'], undefined, FEATURE_NAMES.metrics, instanceEE);\n handle('err', [err, now(), false, customAttributes, !!replayRunning[agentIdentifier]], undefined, FEATURE_NAMES.jserrors, instanceEE);\n };\n\n // theres no window.load event on non-browser scopes, lazy load immediately\n if (!isBrowserScope) lazyLoad();\n // try to stay out of the way of the window.load event, lazy load once that has finished.\n else onWindowLoad(() => lazyLoad(), true);\n function lazyLoad() {\n import(/* webpackChunkName: \"async-api\" */'./apiAsync').then(_ref => {\n let {\n setAPI\n } = _ref;\n setAPI(agentIdentifier);\n drain(agentIdentifier, 'api');\n }).catch(err => {\n warn('Downloading runtime APIs failed...', err);\n instanceEE.abort();\n });\n }\n return apiInterface;\n}","export const redefinePublicPath = () => {\n // We don't support setting public path in webpack via NPM build.\n};","import { setAPI, setTopLevelCallers } from '../api/api';\nimport { addToNREUM, gosCDN } from '../../common/window/nreum';\nimport { getConfiguration, setConfiguration, setInfo, setLoaderConfig, setRuntime } from '../../common/config/config';\nimport { activatedFeatures } from '../../common/util/feature-flags';\nimport { isWorkerScope } from '../../common/constants/runtime';\nimport { redefinePublicPath } from './public-path';\nlet alreadySetOnce = false; // the configure() function can run multiple times in agent lifecycle\n\n/**\n * Sets or re-sets the agent's configuration values from global settings. This also attach those as properties to the agent instance.\n */\nexport function configure(agent) {\n let opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n let loaderType = arguments.length > 2 ? arguments[2] : undefined;\n let forceDrain = arguments.length > 3 ? arguments[3] : undefined;\n // eslint-disable-next-line camelcase\n let {\n init,\n info,\n loader_config,\n runtime = {\n loaderType\n },\n exposed = true\n } = opts;\n const nr = gosCDN();\n if (!info) {\n init = nr.init;\n info = nr.info;\n // eslint-disable-next-line camelcase\n loader_config = nr.loader_config;\n }\n setConfiguration(agent.agentIdentifier, init || {});\n // eslint-disable-next-line camelcase\n setLoaderConfig(agent.agentIdentifier, loader_config || {});\n info.jsAttributes ??= {};\n if (isWorkerScope) {\n // add a default attr to all worker payloads\n info.jsAttributes.isWorker = true;\n }\n setInfo(agent.agentIdentifier, info);\n const updatedInit = getConfiguration(agent.agentIdentifier);\n const internalTrafficList = [info.beacon, info.errorBeacon];\n if (!alreadySetOnce) {\n if (updatedInit.proxy.assets) {\n redefinePublicPath(updatedInit.proxy.assets);\n internalTrafficList.push(updatedInit.proxy.assets);\n }\n if (updatedInit.proxy.beacon) internalTrafficList.push(updatedInit.proxy.beacon);\n setTopLevelCallers(); // no need to set global APIs on newrelic obj more than once\n addToNREUM('activatedFeatures', activatedFeatures);\n\n // Update if soft_navigations is allowed to run AND part of this agent build, used to override old spa functions.\n agent.runSoftNavOverSpa &&= updatedInit.soft_navigations.enabled === true && updatedInit.feature_flags.includes('soft_nav');\n }\n runtime.denyList = [...(updatedInit.ajax.deny_list || []), ...(updatedInit.ajax.block_internal ? internalTrafficList : [])];\n runtime.ptid = agent.agentIdentifier;\n setRuntime(agent.agentIdentifier, runtime);\n if (agent.api === undefined) agent.api = setAPI(agent.agentIdentifier, forceDrain, agent.runSoftNavOverSpa);\n if (agent.exposed === undefined) agent.exposed = exposed;\n alreadySetOnce = true;\n}","import { ee } from '../../common/event-emitter/contextual-ee';\nexport class FeatureBase {\n constructor(agentIdentifier, aggregator, featureName) {\n /** @type {string} */\n this.agentIdentifier = agentIdentifier;\n /** @type {import('../../common/aggregate/aggregator').Aggregator} */\n this.aggregator = aggregator;\n /** @type {import('../../common/event-emitter/contextual-ee').ee} */\n this.ee = ee.get(agentIdentifier);\n /** @type {string} */\n this.featureName = featureName;\n /**\n * Blocked can be used to prevent aggregation and harvest after inititalization time of the feature.\n * This can currently happen if RUM response setToken flag is 0, which is tied to ingest account entitlement info.\n * @type {boolean}\n */\n this.blocked = false;\n }\n}","import { warn } from '../util/console';\nconst model = {\n agentIdentifier: '',\n ee: undefined\n};\nexport class SharedContext {\n constructor(context) {\n try {\n if (typeof context !== 'object') return warn('shared context requires an object as input');\n this.sharedContext = {};\n Object.assign(this.sharedContext, model);\n Object.entries(context).forEach(_ref => {\n let [key, value] = _ref;\n if (Object.keys(model).includes(key)) this.sharedContext[key] = value;\n });\n } catch (err) {\n warn('An error occurred while setting SharedContext', err);\n }\n }\n}"],"mappings":"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","names":["checkState","onWindowLoad","cb","useCapture","windowAddEventListener","onDOMContentLoaded","documentAddEventListener","bufferLog","ee","message","customAttributes","level","LOG_LEVELS","handle","SUPPORTABILITY_METRIC_CHANNEL","FEATURE_NAMES","LOGGING_EVENT_EMITTER_CHANNEL","now","isValidLogLevel","logLevel","GLOBAL_EVENT_NAMESPACE","dispatchGlobalEvent","detail","globalScope","sentIds","activatedFeatures","activateFeatures","flags","agentIdentifier","sharedEE","globalInstance","dispatchGlobalEvent","apiMethods","SR_EVENT_EMITTER_TYPES","asyncApiMethods","wrapLogger","sharedEE","parent","loggerFn","context","warn","LOGGING_FAILURE_MESSAGE","ee","scopedEE","wrapFn","createWrapperWithEmitter","ctx","EventContext","contextId","globalInstance","setTopLevelCallers","nr","gosCDN","apiMethods","f","_len","args","_key","caller","fnName","_len2","_key2","returnVals","val","warn","replayRunning","setAPI","agentIdentifier","forceDrain","runSoftNavOverSpa","registerDrain","apiInterface","instanceEE","globalInstance","tracerEE","MODE","SR_EVENT_EMITTER_TYPES","isRunning","prefix","spaPrefix","message","customAttributes","level","LOG_LEVELS","bufferLog","parent","functionName","wrapLogger","asyncApiMethods","apiCall","FEATURE_NAMES","name","host","getRuntime","appendJsAttribute","key","value","apiName","addToBrowserStorage","currentInfo","getInfo","setInfo","__spreadProps","__spreadValues","persistAttribute","handle","SUPPORTABILITY_METRIC_CHANNEL","err","options","InteractionHandle","InteractionApiProto","cb","contextStore","ixn","hasCb","now","error","notSpa","bufferGroup","isBrowserScope","onWindowLoad","lazyLoad","_ref","drain","redefinePublicPath","alreadySetOnce","configure","agent","opts","loaderType","forceDrain","init","info","loader_config","runtime","exposed","nr","gosCDN","setConfiguration","setLoaderConfig","isWorkerScope","setInfo","updatedInit","getConfiguration","internalTrafficList","redefinePublicPath","setTopLevelCallers","addToNREUM","activatedFeatures","setRuntime","setAPI","FeatureBase","agentIdentifier","aggregator","featureName","globalInstance","model","SharedContext","context","warn","_ref","key","value","err"],"x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10]}