{"version":3,"file":"polyfills.1c07ba3757057027.js","mappings":"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","names":["environment","production","protocol","hostname","debug","idle","sessionTime","warningTime","hotjarId","Agent","AgentBase","constructor","options","agentIdentifier","super","globalScope","this","sharedAggregator","Aggregator","features","setNREUMInitializedAgent","desiredFeatures","Set","add","PageViewEvent","runSoftNavOverSpa","some","instr","featureName","FEATURE_NAMES","configure","loaderType","run","warn","config","info","init","loader_config","runtime","enabledFeatures","getEnabledFeatures","featuresToStart","sort","a","b","featurePriority","forEach","InstrumentCtor","dependencies","getFeatureDependencyNames","feature","every","featName","concat","stringify","err","abortHandler","newrelic","gosNREUM","initializedAgents","api","ee","get","abort","Instrument","InstrumentBase","aggregator","FEATURE_NAME","arguments","length","undefined","isBrowserScope","subscribeToVisibilityChange","handle","now","windowAddEventListener","importAggregator","__publicField","UncaughtError","message","filename","lineno","colno","name","sourceURL","line","column","__newrelic","castError","error","canTrustError","col","castPromiseRejectionEvent","promiseRejectionEvent","prefix","reason","castErrorEvent","errorEvent","SyntaxError","test","stack","trim","Error","__privateAdd","removeOnAbort","AbortController","on","__privateGet","_replayRunning","SR_EVENT_EMITTER_TYPES","isRunning","__privateSet","unhandledPromiseRejection","eventListenerOpts","signal","__privateMethod","_abort","index","id","obj","type","getOrSet","dataSize","data","ArrayBuffer","byteLength","Blob","size","FormData","DT","generateTracePayload","parsedOrigin","shouldGenerateTrace","loaderConfig","getLoaderConfig","accountId","accountID","toString","agentId","agentID","trustKey","spanId","generateSpanId","traceId","generateTraceId","timestamp","Date","payload","sameOrigin","isAllowedOrigin","useTraceContextHeadersForCors","traceContextParentHeader","generateTraceContextParentHeader","traceContextStateHeader","generateTraceContextStateHeader","excludeNewrelicHeader","useNewrelicHeaderForCors","newrelicHeader","generateTraceHeader","appId","btoa","v","d","ty","ac","ap","tr","ti","tk","isDtEnabled","allowed","dtConfig","dt","getConfigurationValue","getConfiguration","distributed_tracing","allowed_origins","Array","i","allowedOrigin","parseUrl","port","enabled","exclude_newrelic_header","cors_use_newrelic_header","cors_use_tracecontext_headers","handlers","handlersLen","origRequest","originals","origXHR","handler","args","ctx","group","initiators","xmlhttprequest","fetch","beacon","performance","getEntriesByType","resource","initiatorType","responseStatus","params","status","metrics","rxSize","transferSize","duration","Math","floor","cbTime","addUrl","startTime","responseEnd","wrapFetch","wrapXhr","subscribeToEvents","end","xhr","ended","removeEventListener","listener","aborted","hasUndefinedHostname","loadCaptureCalled","readyState","captureXhrData","endTime","responseSizeFromXhr","lastSize","responseType","response","responseText","header","getResponseHeader","SUPPORTABILITY_METRIC","cat","split","pop","onNewXhr","totalCbs","called","xhrGuids","addEventListener","event","ffVersion","loaded","onOpenXhrStart","method","onOpenXhrEnd","xpid","setRequestHeader","added","onSendXhrStart","context","txSize","body","evt","onloadCalled","onload","e","emit","onXhrCbTime","time","onXhrLoadAdded","cb","useCapture","idString","onXhrLoadRemoved","onXhrResolved","onAddEventListenerEnd","onRemoveEventListenerEnd","onFnEnd","xhrCbStart","onFetchBeforeStart","url","opts","URL","href","headers","addHeaders","clone","key","Headers","push","headersObj","set","onFetchStart","fetchArguments","dtPayload","target","toUpperCase","onFnStart","methodName","onFetchDone","_","res","responseSize","parsed","host","pathname","BST_RESOURCE","RESOURCE","START","END","FN_END","FN_START","PUSH_STATE","CONSTANTS","canEnableSessionTracking","deregisterDrain","thisInstrumentEE","observer","wrapHistory","eventsEE","wrapEvents","bstStart","startPath","location","hash","PerformanceObserver","list","entries","getEntries","observe","buffered","resourceObserver","instrument_FEATURE_NAME","instrument_START","instrument_END","BODY","CB_END","JS_TIME","FETCH","instrument_FN_START","CB_START","_this","startHash","depth","tracerEE","jsonpEE","wrapJsonP","promiseEE","wrapPromise","timerEE","wrapTimer","xhrEE","fetchEE","historyEE","mutationEE","wrapMutation","trackURLChange","unusedArgs","hashChangedDuringCb","window","startTimestamp","endTimestamp","_len","_key","buffer","session","replayRunning","JSON","parse","localStorage","getItem","PREFIX","DEFAULT_KEY","hasReplayPrerequisite","_apiStartOrRestartReplay","call","_canPreloadRecorder","_mode","sessionReplayMode","_preloadStartRecording","errorNoticed","MODE","isPreloadAllowed","_alreadyStarted","trigger","Recorder","Promise","recorder","mode","startRecording","stopRecording","featAggregate","initializeRecording","TRIGGERS","parent","newRelic","isEnabled","BrowserAgent","InstrumentXhr","InstrumentPageViewEvent","InstrumentPageViewTiming","InstrumentSessionTrace","InstrumentMetrics","InstrumentPageAction","InstrumentErrors","InstrumentSpa","InstrumentSessionReplay","toFixed","prototype","F","toFixedPolyfill","fractionLength","value","join","Number","SharedContext","aggregatedData","store","newMetrics","customParams","bucket","getBucket","aggregateMetrics","oldMetrics","count","mapOwn","updateMetric","merge","newMetric","c","t","mergeMetric","oldMetric","createMetricObject","min","max","sos","storeMetric","stats","custom","take","types","results","hasData","Object","values","metric","updateCounterMetric","model","nrDefaults","errorBeacon","licenseKey","applicationID","sa","queueTime","applicationTime","ttGuid","user","account","product","extra","jsAttributes","userAttributes","atts","transactionName","tNamePlain","_cache","getInfo","setInfo","getModeledObject","agentInst","getNREUMInitializedAgent","isValidSelector","selector","document","createDocumentFragment","querySelector","nrMask","missingAgentIdError","setConfiguration","hiddenState","mask_selector","block_selector","mask_input_options","color","date","email","month","number","range","search","tel","text","week","textarea","select","password","feature_flags","proxy","assets","privacy","cookies_enabled","ajax","deny_list","block_internal","harvestTimeSeconds","autoStart","expiresMs","DEFAULT_EXPIRES_MS","inactiveMs","DEFAULT_INACTIVE_MS","ssl","obfuscate","jserrors","page_action","page_view_event","page_view_timing","long_task","session_trace","harvest","tooManyRequestsDelay","session_replay","preload","sampling_rate","error_sampling_rate","collect_fonts","inline_images","inline_stylesheet","mask_all_inputs","mask_text_selector","val","block_class","ignore_class","mask_text_class","spa","soft_navigations","path","parts","setLoaderConfig","gosNREUMOriginals","o","readonly","buildEnv","BUILD_ENV","distMethod","DIST_METHOD","version","VERSION","originTime","customTransaction","disabled","isolatedBacklog","maxBytes","onerror","origin","ptid","releaseIds","appMetadata","denyList","harvestCount","timeKeeper","getRuntime","setRuntime","isConfigured","isValid","output","create","getPrototypeOf","getOwnPropertyDescriptors","keys","isArray","from","RRWEB_VERSION","isWorkerScope","WorkerGlobalScope","self","navigator","WorkerNavigator","globalThis","loadedAsDeferredBrowserScript","initiallyHidden","Boolean","visibilityState","initialLocation","isiOS","userAgent","iOSBelow16","SharedWorker","match","isIE","documentMode","supportsSendBeacon","sendBeacon","sharedContext","assign","_ref","includes","shouldCollectEvent","domainMatchesPattern","comparePath","setDenyList","denyListConfig","indexOf","substring","firstSlash","pattern","domain","registry","registerDrain","item","staged","priority","curateRegistry","delete","checkCanDrainAll","Map","drain","force","drainGroup","items","_ref2","baseEE","defaultRegister","backlog","bufferedEventsInGroup","groupHandlers","emitEvent","eventType","handlerRegistrationList","registration","apply","EventContext","contextId","bundleId","globalInstance","old","debugId","bufferGroupMap","emitters","emitter","fn","listeners","splice","contextOrStore","bubble","handlersArray","len","bufferGroup","getBuffer","getOrCreate","bufferEventsByGroup","eventBuffer","_aborted","isBuffering","defineProperty","nr","handleEE","registerWithSpecificEmitter","passiveSupported","signalSupported","passive","abortSignal","capture","documentAddEventListener","generateUuid","getRandomValue","valueTable","tableIndex","random","crypto","msCrypto","randomValueTable","randomValueIndex","getRandomValues","Uint8Array","map","templateInput","generateRandomHexString","chars","SESSION_EVENTS","STARTED","PAUSE","RESET","RESUME","UPDATE","SESSION_EVENT_TYPES","SAME_TAB","CROSS_TAB","OFF","FULL","ERROR","parsedUrl","returnVal","slice","startsWith","secondary","console","GLOBAL_EVENT_NAMESPACE","sentIds","activatedFeatures","activateFeatures","flags","sharedEE","has","dispatchGlobalEvent","detail","CustomEvent","hasOwnProperty","prop","getVal","writable","enumerable","debounce","func","timeout","leading","timer","setTimeout","clearTimeout","single","_this2","_len2","_key2","seen","WeakSet","getCircularReplacer","checkState","onWindowLoad","onDOMContentLoaded","defaults","ST","SI","CT","XHR","REQ","EV","PR","MO","newAgentInstance","initializedAt","ms","addToNREUM","fnName","gosCDN","gosNREUMInfo","gosNREUMInit","gosNREUMLoaderConfig","toHiddenOnly","handleVisibilityChange","flag","inWrapper","createWrapperWithEmitter","always","wrapFn","inPlace","methods","getContext","prependMethodPrefix","charAt","notWrappable","nrWrapper","copy","to","report","originalThis","result","safeEmit","arr","prev","wrapped","ADD_EVENT_LISTENER","REMOVE_EVENT_LISTENER","scopedEE","wfn","wrapNode","node","uniqueListener","findEventListenerProtoAndCb","originalListener","object","wrapHandleEvent","handleEvent","function","step","rest","bodyPrefix","bodyMethods","Req","Res","proto","wrapPromiseMethod","origPromiseFromFetch","then","HISTORY_FNS","globalEE","history","domInsertMethods","CALLBACK_REGEX","PARENT_REGEX","VALUE_REGEX","discoverValue","longKey","matches","Node","wrapElement","el","nodeName","toLowerCase","callbackName","extractCallbackName","src","callback","discoverParent","onLoad","onError","OriginalObserver","MutationObserver","promiseWrapper","prevPromiseObj","wrap","WrappedPromise","executor","wrappedExecutor","newCustomPromiseInst","Reflect","construct","getCtx","setPrototypeOf","prevStaticFn","subPromises","finalized","sub","resolve","setNrId","origFnCallWithThis","overwrite","prevPromiseOrigThen","promise","nextPromise","SET_TIMEOUT","SET_INTERVAL","CLEAR_TIMEOUT","TIMER_FNS","interval","timerDuration","isNaN","XHR_PROPS","contextualEE","OrigXHR","setImmediate","READY_STATE_CHANGE","pendingXhrs","newXHR","wrapXHR","resolved","getObject","wrapOnreadystatechange","enqueuePendingXhr","drainPendingXhrs","dummyNode","toggle","createTextNode","characterData","CUSTOM_METRIC","SUPPORTABILITY_METRIC_CHANNEL","CUSTOM_METRIC_CHANNEL","RECORD","REPLAY_RUNNING","ERROR_DURING_REPLAY","AVG_COMPRESSION","RRWEB_EVENT_TYPES","DomContentLoaded","Load","FullSnapshot","IncrementalSnapshot","Meta","Custom","MAX_PAYLOAD_SIZE","IDEAL_PAYLOAD_SIZE","CHECKOUT_MS","ABORT_REASONS","sm","IMPORT","TOO_MANY","TOO_BIG","ENTITLEMENTS","QUERY_PARAM_PADDING","API","canImportReplayAgg","sessionMgr","isNew","state","buildNRMetaNode","correctedTimestamp","correctAbsoluteTimestamp","originalTimestamp","timestampDiff","_common_constants_runtime__WEBPACK_IMPORTED_MODULE_2__","correctedOriginTime","originTimeDiff","MAX_NODES_PER_HARVEST","INTERACTION_EVENTS","MAX_TIMER_BUDGET","INTERACTION_API","REMAINING","INTERACTION","SPA_NODE","JSONP_NODE","FETCH_START","FETCH_DONE","FETCH_BODY","JSONP_END","originalSetTimeout","FeatureBase","blocked","auto","onAggregateImported","loadedSuccessfully","argsObjFromInstrument","importLater","setupAgentSession","_shouldImportAgg","lazyFeatureLoader","__webpack_require__","Aggregate","addPageAction","attributes","_callMethod","setPageViewName","setCustomAttribute","persist","noticeError","customAttributes","setUserId","setApplicationVersion","setErrorHandler","finished","timeStamp","addRelease","start","featureNames","recordReplay","pauseReplay","addToTrace","setCurrentRouteName","interaction","apiMethods","asyncApiMethods","setTopLevelCallers","caller","returnVals","exposed","f","setAPI","forceDrain","apiInterface","instanceEE","spaPrefix","appendJsAttribute","apiName","addToBrowserStorage","currentInfo","X","apiCall","InteractionHandle","persistAttribute","InteractionApiProto","createTracer","contextStore","ixn","hasCb","notSpa","lazyLoad","catch","alreadySetOnce","agent","isWorker","updatedInit","internalTrafficList","pageAction","pageViewEvent","pageViewTiming","sessionReplay","sessionTrace","softNav","global","mark","performanceMeasure","label","measure","symbolPrefix","__Zone_symbol_prefix","__symbol__","checkDuplicate","Zone","zoneSpec","_parent","_name","_properties","properties","_zoneDelegate","_ZoneDelegate","static","patches","ZoneAwarePromise","root","zone","current","_currentZoneFrame","currentTask","_currentTask","ignoreDuplicate","perfName","_api","getZoneWith","fork","source","_callback","intercept","runGuarded","applyThis","applyArgs","invoke","handleError","runTask","task","NO_ZONE","notScheduled","eventTask","macroTask","reEntryGuard","running","_transitionTo","scheduled","runCount","previousTask","isPeriodic","cancelFn","invokeTask","unknown","_updateTaskCount","scheduleTask","newZone","scheduling","zoneDelegates","_zoneDelegates","_zone","scheduleMicroTask","customSchedule","ZoneTask","microTask","scheduleMacroTask","customCancel","scheduleEventTask","cancelTask","canceling","DELEGATE_ZS","onHasTask","delegate","hasTaskState","hasTask","onScheduleTask","onInvokeTask","onCancelTask","parentDelegate","_taskCounts","_parentDelegate","_forkZS","onFork","_forkDlgt","_forkCurrZone","_interceptZS","onIntercept","_interceptDlgt","_interceptCurrZone","_invokeZS","onInvoke","_invokeDlgt","_invokeCurrZone","_handleErrorZS","onHandleError","_handleErrorDlgt","_handleErrorCurrZone","_scheduleTaskZS","_scheduleTaskDlgt","_scheduleTaskCurrZone","_invokeTaskZS","_invokeTaskDlgt","_invokeTaskCurrZone","_cancelTaskZS","_cancelTaskDlgt","_cancelTaskCurrZone","_hasTaskZS","_hasTaskDlgt","_hasTaskDlgtOwner","_hasTaskCurrZone","zoneSpecHasTask","targetZone","returnTask","scheduleFn","isEmpty","counts","next","change","_state","useG","_numberOfNestedTaskFrames","drainMicroTaskQueue","cancelScheduleRequest","toState","fromState1","fromState2","handleId","toJSON","symbolSetTimeout","symbolPromise","symbolThen","nativeMicroTaskQueuePromise","_microTaskQueue","_isDrainingMicrotaskQueue","nativeScheduleMicroTask","nativeThen","queue","onUnhandledError","microtaskDrainDone","symbol","currentZoneFrame","noop","showUncaughtError","patchEventTarget","patchOnProperties","patchMethod","bindArguments","patchThen","patchMacroTask","patchEventPrototype","isIEOrEdge","getGlobalObjects","ObjectDefineProperty","ObjectGetOwnPropertyDescriptor","ObjectCreate","ArraySlice","patchClass","wrapWithCurrentZone","filterProperties","attachOriginToPatched","_redefineProperty","patchCallbacks","getOwnPropertyDescriptor","ObjectGetPrototypeOf","ADD_EVENT_LISTENER_STR","REMOVE_EVENT_LISTENER_STR","ZONE_SYMBOL_ADD_EVENT_LISTENER","ZONE_SYMBOL_REMOVE_EVENT_LISTENER","TRUE_STR","FALSE_STR","ZONE_SYMBOL_PREFIX","scheduleMacroTaskWithCurrentZone","zoneSymbol","isWindowExists","internalWindow","_global","isPropertyWritable","propertyDesc","isWebWorker","isNode","process","isBrowser","HTMLElement","isMix","zoneSymbolEventNames$1","eventNameSymbol","preventDefault","patchProperty","desc","configurable","onPropPatchedSymbol","originalDescGet","originalDescSet","eventName","newValue","REMOVE_ATTRIBUTE","removeAttribute","onProperties","j","originalInstanceKey","className","OriginalClass","instance","patchFn","delegateName","patchDelegate","funcName","metaCreator","setNative","cbIdx","meta","patched","original","isDetectedIEOrEdge","ieOrEdge","ua","__load_patch","_uncaughtPromiseErrors","isDisableWrappingUncaughtPromiseRejection","rejection","uncaughtPromiseError","shift","throwOriginal","handleUnhandledRejection","UNHANDLED_PROMISE_REJECTION_HANDLER_SYMBOL","isThenable","forwardResolution","forwardRejection","reject","symbolState","symbolValue","symbolFinally","symbolParentPromiseValue","symbolParentPromiseState","UNRESOLVED","RESOLVED","REJECTED","makeResolver","resolvePromise","once","wasCalled","wrappedFunction","CURRENT_TASK_TRACE_SYMBOL","onceWrapper","TypeError","clearRejectedNoCatch","trace","creationTrace","scheduleResolveOrReject","readableObjectToString","REJECTION_HANDLED_HANDLER","chainPromise","onFulfilled","onRejected","promiseState","parentPromiseValue","isFinallyPromise","AggregateError","Symbol","iterator","promises","errors","rej","onResolve","onReject","allWithCallback","thenCallback","errorCallback","unresolvedCount","valueIndex","resolvedValues","curValueIndex","thenErr","toStringTag","species","_a","C","finally","onFinally","race","all","NativePromise","symbolThenPatched","Ctor","originalThen","zoneify","resultPromise","ctor","originalFunctionToString","Function","ORIGINAL_DELEGATE_SYMBOL","PROMISE_SYMBOL","ERROR_SYMBOL","newFunctionToString","originalDelegate","nativePromise","nativeError","originalObjectToString","OPTIMIZED_ZONE_EVENT_TASK_DATA","zoneSymbolEventNames","globalSources","EVENT_NAME_SYMBOL_REGX","RegExp","IMMEDIATE_PROPAGATION_SYMBOL","prepareEventNames","eventNameToString","falseEventName","trueEventName","symbolCapture","apis","patchOptions","rm","LISTENERS_EVENT_LISTENER","REMOVE_ALL_LISTENERS_EVENT_LISTENER","rmAll","zoneSymbolAddEventListener","ADD_EVENT_LISTENER_SOURCE","isRemoved","globalCallback","isCapture","tasks","copyTasks","globalZoneAwareCallback","globalZoneAwareCaptureCallback","patchEventTargetMethods","useGlobalCallback","validateHandler","vh","chkDup","returnTarget","rt","taskData","nativeAddEventListener","nativeRemoveEventListener","nativeListeners","nativeRemoveAllListeners","nativePrependEventListener","buildEventListenerOptions","prepend","isExisting","symbolEventNames","symbolEventName","existingTasks","allRemoved","compare","diff","typeOfDelegate","unpatchedEvents","passiveEvents","makeAddListener","nativeListener","addSource","customScheduleFn","customCancelFn","transferEventName","isHandleEvent","constructorName","targetSource","unshift","PREPEND_EVENT_LISTENER","existingTask","findEventTasks","captureTasks","removeTasks","exec","evtName","foundTasks","captureFalseTasks","captureTrueTasks","Event","targetName","callbacks","nativeDelegate","descriptor","ignoreProperties","tip","filter","ip","targetIgnoreProperties","op","patchFilteredProperties","getOnEventNames","getOwnPropertyNames","eventNames","SYMBOL_BLACK_LISTED_EVENTS","SYMBOL_UNPATCHED_EVENTS","taskSymbol","patchTimer","setName","cancelName","nameSuffix","clearNative","tasksByHandleId","clearTask","delay","ref","unref","bind","legacyPatch","clear","blockingMethods","s","patchEvent","eventTargetPatch","EVENT_TARGET","EventTarget","XMLHttpRequestEventTarget","propertyDescriptorPatch","__Zone_ignore_on_properties","patchTargets","ignoreErrorProperties","patchCustomElements","customElements","patchXHR","XMLHttpRequest","XMLHttpRequestPrototype","oriAddListener","oriRemoveListener","XMLHttpRequestEventTargetPrototype","SCHEDULED","XHR_SCHEDULED","XHR_ERROR_BEFORE_SCHEDULED","XHR_LISTENER","newListener","DONE","loadTasks","oriInvoke","XHR_TASK","sendNative","placeholderCallback","abortNative","openNative","XHR_SYNC","XHR_URL","fetchTaskAborting","fetchTaskScheduling","findPendingTask","geolocation","patchPrototype","fnNames","findPromiseRejectionHandler","PromiseRejectionEvent","asyncGeneratorStep","_next"],"sourceRoot":"webpack:///","sources":["./src/environments/environment.stage.ts","./node_modules/@newrelic/browser-agent/dist/esm/loaders/agent.js","./node_modules/@newrelic/browser-agent/dist/esm/loaders/features/featureDependencies.js","./node_modules/@newrelic/browser-agent/dist/esm/features/page_view_timing/instrument/index.js","./node_modules/@newrelic/browser-agent/dist/esm/features/metrics/instrument/index.js","./node_modules/@newrelic/browser-agent/dist/esm/features/jserrors/shared/uncaught-error.js","./node_modules/@newrelic/browser-agent/dist/esm/features/jserrors/shared/cast-error.js","./node_modules/@newrelic/browser-agent/dist/esm/features/jserrors/instrument/index.js","./node_modules/@newrelic/browser-agent/dist/esm/common/ids/id.js","./node_modules/@newrelic/browser-agent/dist/esm/common/util/data-size.js","./node_modules/@newrelic/browser-agent/dist/esm/features/ajax/instrument/distributed-tracing.js","./node_modules/@newrelic/browser-agent/dist/esm/features/ajax/instrument/index.js","./node_modules/@newrelic/browser-agent/dist/esm/features/ajax/instrument/response-size.js","./node_modules/@newrelic/browser-agent/dist/esm/features/session_trace/instrument/index.js","./node_modules/@newrelic/browser-agent/dist/esm/features/spa/instrument/index.js","./node_modules/@newrelic/browser-agent/dist/esm/features/page_action/instrument/index.js","./node_modules/@newrelic/browser-agent/dist/esm/features/session_replay/instrument/index.js","./src/vendors/newrelic.ts","./node_modules/@newrelic/browser-agent/dist/esm/loaders/browser-agent.js","./src/polyfills.ts","./node_modules/@newrelic/browser-agent/dist/esm/common/aggregate/aggregator.js","./node_modules/@newrelic/browser-agent/dist/esm/common/config/state/info.js","./node_modules/@newrelic/browser-agent/dist/esm/common/dom/query-selector.js","./node_modules/@newrelic/browser-agent/dist/esm/common/config/state/init.js","./node_modules/@newrelic/browser-agent/dist/esm/common/config/state/loader-config.js","./node_modules/@newrelic/browser-agent/dist/esm/common/config/state/originals.js","./node_modules/@newrelic/browser-agent/dist/esm/common/config/state/runtime.js","./node_modules/@newrelic/browser-agent/dist/esm/common/config/config.js","./node_modules/@newrelic/browser-agent/dist/esm/common/config/state/configurable.js","./node_modules/@newrelic/browser-agent/dist/esm/common/constants/env.npm.js","./node_modules/@newrelic/browser-agent/dist/esm/common/constants/runtime.js","./node_modules/@newrelic/browser-agent/dist/esm/common/context/shared-context.js","./node_modules/@newrelic/browser-agent/dist/esm/common/deny-list/deny-list.js","./node_modules/@newrelic/browser-agent/dist/esm/common/drain/drain.js","./node_modules/@newrelic/browser-agent/dist/esm/common/event-emitter/event-context.js","./node_modules/@newrelic/browser-agent/dist/esm/common/event-emitter/contextual-ee.js","./node_modules/@newrelic/browser-agent/dist/esm/common/event-emitter/handle.js","./node_modules/@newrelic/browser-agent/dist/esm/common/event-emitter/register-handler.js","./node_modules/@newrelic/browser-agent/dist/esm/common/event-listener/event-listener-opts.js","./node_modules/@newrelic/browser-agent/dist/esm/common/ids/bundle-id.js","./node_modules/@newrelic/browser-agent/dist/esm/common/ids/unique-id.js","./node_modules/@newrelic/browser-agent/dist/esm/common/session/constants.js","./node_modules/@newrelic/browser-agent/dist/esm/common/timing/now.js","./node_modules/@newrelic/browser-agent/dist/esm/common/url/parse-url.js","./node_modules/@newrelic/browser-agent/dist/esm/common/util/console.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/common/util/get-or-set.js","./node_modules/@newrelic/browser-agent/dist/esm/common/util/invoke.js","./node_modules/@newrelic/browser-agent/dist/esm/common/util/map-own.js","./node_modules/@newrelic/browser-agent/dist/esm/common/util/stringify.js","./node_modules/@newrelic/browser-agent/dist/esm/common/window/load.js","./node_modules/@newrelic/browser-agent/dist/esm/common/window/nreum.js","./node_modules/@newrelic/browser-agent/dist/esm/common/window/page-visibility.js","./node_modules/@newrelic/browser-agent/dist/esm/common/wrap/wrap-function.js","./node_modules/@newrelic/browser-agent/dist/esm/common/wrap/wrap-events.js","./node_modules/@newrelic/browser-agent/dist/esm/common/wrap/wrap-fetch.js","./node_modules/@newrelic/browser-agent/dist/esm/common/wrap/wrap-history.js","./node_modules/@newrelic/browser-agent/dist/esm/common/wrap/wrap-jsonp.js","./node_modules/@newrelic/browser-agent/dist/esm/common/wrap/wrap-mutation.js","./node_modules/@newrelic/browser-agent/dist/esm/common/wrap/wrap-promise.js","./node_modules/@newrelic/browser-agent/dist/esm/common/wrap/wrap-timer.js","./node_modules/@newrelic/browser-agent/dist/esm/common/wrap/wrap-xhr.js","./node_modules/@newrelic/browser-agent/dist/esm/features/ajax/constants.js","./node_modules/@newrelic/browser-agent/dist/esm/features/jserrors/constants.js","./node_modules/@newrelic/browser-agent/dist/esm/features/metrics/constants.js","./node_modules/@newrelic/browser-agent/dist/esm/features/page_action/constants.js","./node_modules/@newrelic/browser-agent/dist/esm/features/page_view_event/constants.js","./node_modules/@newrelic/browser-agent/dist/esm/features/page_view_event/instrument/index.js","./node_modules/@newrelic/browser-agent/dist/esm/features/page_view_timing/constants.js","./node_modules/@newrelic/browser-agent/dist/esm/features/session_replay/constants.js","./node_modules/@newrelic/browser-agent/dist/esm/features/session_replay/shared/utils.js","./node_modules/@newrelic/browser-agent/dist/esm/features/session_trace/constants.js","./node_modules/@newrelic/browser-agent/dist/esm/features/spa/constants.js","./node_modules/@newrelic/browser-agent/dist/esm/features/utils/feature-base.js","./node_modules/@newrelic/browser-agent/dist/esm/features/utils/feature-gates.js","./node_modules/@newrelic/browser-agent/dist/esm/features/utils/instrument-base.js","./node_modules/@newrelic/browser-agent/dist/esm/loaders/agent-base.js","./node_modules/@newrelic/browser-agent/dist/esm/loaders/api/api-methods.js","./node_modules/@newrelic/browser-agent/dist/esm/loaders/api/api.js","./node_modules/@newrelic/browser-agent/dist/esm/loaders/configure/configure.js","./node_modules/@newrelic/browser-agent/dist/esm/loaders/features/enabled-features.js","./node_modules/@newrelic/browser-agent/dist/esm/loaders/features/features.js","./node_modules/zone.js/fesm2015/zone.js","./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js"],"sourcesContent":["import { IEnvironment } from \"@core/interfaces/environment.interface\";\r\n\r\nexport const environment: IEnvironment = {\r\n production: false,\r\n protocol: \"https\",\r\n hostname: \"StagePortalAPI.databank.com\",\r\n debug: false,\r\n idle: {\r\n sessionTime: 900, // 15min * 60sec = 900sec\r\n warningTime: 120, // 2min * 60sec = 120sec\r\n },\r\n hotjarId: 3605619\r\n};\r\n","// important side effects\nimport './configure/public-path';\nimport './configure/nonce';\n// loader files\nimport { AgentBase } from './agent-base';\nimport { getEnabledFeatures } from './features/enabled-features';\nimport { configure } from './configure/configure';\nimport { getFeatureDependencyNames } from './features/featureDependencies';\nimport { featurePriority, FEATURE_NAMES } from './features/features';\n// required features\nimport { Instrument as PageViewEvent } from '../features/page_view_event/instrument';\n// common files\nimport { Aggregator } from '../common/aggregate/aggregator';\nimport { gosNREUM, setNREUMInitializedAgent } from '../common/window/nreum';\nimport { warn } from '../common/util/console';\nimport { stringify } from '../common/util/stringify';\nimport { globalScope } from '../common/constants/runtime';\n\n/**\n * A flexible class that may be used to compose an agent from a select subset of feature modules. In applications\n * sensitive to network load, this may result in smaller builds with slightly lower performance impact.\n */\nexport class Agent extends AgentBase {\n /**\n * @param {Object} options Options to initialize agent with\n * @param {string} [agentIdentifier] Optional identifier of agent\n */\n constructor(options, agentIdentifier) {\n super(agentIdentifier);\n if (!globalScope) {\n // We could not determine the runtime environment. Short-circuite the agent here\n // to avoid possible exceptions later that may cause issues with customer's application.\n warn('Failed to initialize the agent. Could not determine the runtime environment.');\n return;\n }\n this.sharedAggregator = new Aggregator({\n agentIdentifier: this.agentIdentifier\n });\n this.features = {};\n setNREUMInitializedAgent(this.agentIdentifier, this); // append this agent onto the global NREUM.initializedAgents\n\n this.desiredFeatures = new Set(options.features || []); // expected to be a list of static Instrument/InstrumentBase classes, see \"spa.js\" for example\n // For Now... ALL agents must make the rum call whether the page_view_event feature was enabled or not.\n // NR1 creates an index on the rum call, and if not seen for a few days, will remove the browser app!\n // Future work is being planned to evaluate removing this behavior from the backend, but for now we must ensure this call is made\n this.desiredFeatures.add(PageViewEvent);\n this.runSoftNavOverSpa = [...this.desiredFeatures].some(instr => instr.featureName === FEATURE_NAMES.softNav);\n configure(this, options, options.loaderType || 'agent'); // add api, exposed, and other config properties\n\n this.run();\n }\n get config() {\n return {\n info: this.info,\n init: this.init,\n loader_config: this.loader_config,\n runtime: this.runtime\n };\n }\n run() {\n // Attempt to initialize all the requested features (sequentially in prio order & synchronously), with any failure aborting the whole process.\n try {\n const enabledFeatures = getEnabledFeatures(this.agentIdentifier);\n const featuresToStart = [...this.desiredFeatures];\n featuresToStart.sort((a, b) => featurePriority[a.featureName] - featurePriority[b.featureName]);\n featuresToStart.forEach(InstrumentCtor => {\n if (!enabledFeatures[InstrumentCtor.featureName] && InstrumentCtor.featureName !== FEATURE_NAMES.pageViewEvent) return; // PVE is required to run even if it's marked disabled\n if (this.runSoftNavOverSpa && InstrumentCtor.featureName === FEATURE_NAMES.spa) return;\n if (!this.runSoftNavOverSpa && InstrumentCtor.featureName === FEATURE_NAMES.softNav) return;\n const dependencies = getFeatureDependencyNames(InstrumentCtor.featureName);\n const hasAllDeps = dependencies.every(featName => featName in this.features); // any other feature(s) this depends on should've been initialized on prior iterations by priority order\n if (!hasAllDeps) warn(\"\".concat(InstrumentCtor.featureName, \" is enabled but one or more dependent features has not been initialized (\").concat(stringify(dependencies), \"). This may cause unintended consequences or missing data...\"));\n this.features[InstrumentCtor.featureName] = new InstrumentCtor(this.agentIdentifier, this.sharedAggregator);\n });\n } catch (err) {\n warn('Failed to initialize all enabled instrument classes (agent aborted) -', err);\n for (const featName in this.features) {\n // this.features hold only features that have been instantiated\n this.features[featName].abortHandler?.();\n }\n const newrelic = gosNREUM();\n delete newrelic.initializedAgents[this.agentIdentifier]?.api; // prevent further calls to agent-specific APIs (see \"configure.js\")\n delete newrelic.initializedAgents[this.agentIdentifier]?.features; // GC mem used internally by features\n delete this.sharedAggregator;\n // Keep the initialized agent object with its configs for troubleshooting purposes.\n const thisEE = newrelic.ee.get(this.agentIdentifier);\n thisEE.abort(); // set flag and clear backlog\n return false;\n }\n }\n}","import { FEATURE_NAMES } from './features';\nexport function getFeatureDependencyNames(feature) {\n switch (feature) {\n case FEATURE_NAMES.ajax:\n return [FEATURE_NAMES.jserrors];\n case FEATURE_NAMES.sessionTrace:\n return [FEATURE_NAMES.ajax, FEATURE_NAMES.pageViewEvent];\n case FEATURE_NAMES.sessionReplay:\n return [FEATURE_NAMES.sessionTrace];\n case FEATURE_NAMES.pageViewTiming:\n return [FEATURE_NAMES.pageViewEvent];\n // this could change if we disconnect window load timings\n default:\n return [];\n }\n}","/*\n * Copyright 2020 New Relic Corporation. All rights reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { handle } from '../../../common/event-emitter/handle';\nimport { subscribeToVisibilityChange } from '../../../common/window/page-visibility';\nimport { windowAddEventListener } from '../../../common/event-listener/event-listener-opts';\nimport { InstrumentBase } from '../../utils/instrument-base';\nimport { FEATURE_NAME } from '../constants';\nimport { isBrowserScope } from '../../../common/constants/runtime';\nimport { now } from '../../../common/timing/now';\nexport class Instrument extends InstrumentBase {\n static featureName = FEATURE_NAME;\n constructor(agentIdentifier, aggregator) {\n let auto = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n super(agentIdentifier, aggregator, FEATURE_NAME, auto);\n if (!isBrowserScope) return; // CWV is irrelevant outside web context\n\n // While we try to replicate web-vital's visibilitywatcher logic in an effort to defer that library to post-pageload, this isn't perfect and doesn't consider prerendering.\n subscribeToVisibilityChange(() => handle('docHidden', [now()], undefined, FEATURE_NAME, this.ee), true);\n\n // Window fires its pagehide event (typically on navigation--this occurrence is a *subset* of vis change); don't defer this unless it's guarantee it cannot happen before load(?)\n windowAddEventListener('pagehide', () => handle('winPagehide', [now()], undefined, FEATURE_NAME, this.ee));\n this.importAggregator();\n }\n}","import { InstrumentBase } from '../../utils/instrument-base';\nimport { FEATURE_NAME } from '../constants';\nexport class Instrument extends InstrumentBase {\n static featureName = FEATURE_NAME;\n constructor(agentIdentifier, aggregator) {\n let auto = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n super(agentIdentifier, aggregator, FEATURE_NAME, auto);\n this.importAggregator();\n }\n}","import { stringify } from '../../../common/util/stringify';\n\n/**\n * Represents an uncaught non Error type error. This class does\n * not extend the Error class to prevent an invalid stack trace\n * from being created. Use this class to cast thrown errors that\n * do not use the Error class (strings, etc) to an object.\n */\nexport class UncaughtError {\n constructor(message, filename, lineno, colno, newrelic) {\n this.name = 'UncaughtError';\n this.message = typeof message === 'string' ? message : stringify(message);\n this.sourceURL = filename;\n this.line = lineno;\n this.column = colno;\n this.__newrelic = newrelic;\n }\n}","import { UncaughtError } from './uncaught-error';\n\n/**\n * Any value can be used with the `throw` keyword. This function ensures that the value is\n * either a proper Error instance or attempts to convert it to an UncaughtError instance.\n * @param {any} error The value thrown\n * @returns {Error|UncaughtError} The converted error instance\n */\nexport function castError(error) {\n /** Sometimes a browser can emit an error object with no stack */\n if (canTrustError(error)) {\n return error;\n }\n\n /**\n * The thrown value may contain a message property. If it does, try to treat the thrown\n * value as an Error-like object.\n */\n return new UncaughtError(error?.message !== undefined ? error.message : error, error?.filename || error?.sourceURL, error?.lineno || error?.line, error?.colno || error?.col, error?.__newrelic);\n}\n\n/**\n * Attempts to convert a PromiseRejectionEvent object to an Error object\n * @param {PromiseRejectionEvent} unhandledRejectionEvent The unhandled promise rejection event\n * @returns {Error} An Error object with the message as the casted reason\n */\nexport function castPromiseRejectionEvent(promiseRejectionEvent) {\n let prefix = 'Unhandled Promise Rejection';\n if (canTrustError(promiseRejectionEvent?.reason)) {\n try {\n promiseRejectionEvent.reason.message = prefix + ': ' + promiseRejectionEvent.reason.message;\n return castError(promiseRejectionEvent.reason);\n } catch (e) {\n return castError(promiseRejectionEvent.reason);\n }\n }\n if (typeof promiseRejectionEvent.reason === 'undefined') return castError(prefix);\n const error = castError(promiseRejectionEvent.reason);\n error.message = prefix + ': ' + error?.message;\n return error;\n}\n\n/**\n * Attempts to convert an ErrorEvent object to an Error object\n * @param {ErrorEvent} errorEvent The error event\n * @returns {Error|UncaughtError} The error event converted to an Error object\n */\nexport function castErrorEvent(errorEvent) {\n if (errorEvent.error instanceof SyntaxError && !/:\\d+$/.test(errorEvent.error.stack?.trim())) {\n const error = new UncaughtError(errorEvent.message, errorEvent.filename, errorEvent.lineno, errorEvent.colno, errorEvent.error.__newrelic);\n error.name = SyntaxError.name;\n return error;\n }\n if (canTrustError(errorEvent.error)) return errorEvent.error;\n return castError(errorEvent);\n}\nfunction canTrustError(error) {\n return error instanceof Error && !!error.stack;\n}","/*\n * Copyright 2020 New Relic Corporation. All rights reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { handle } from '../../../common/event-emitter/handle';\nimport { InstrumentBase } from '../../utils/instrument-base';\nimport { FEATURE_NAME } from '../constants';\nimport { globalScope } from '../../../common/constants/runtime';\nimport { eventListenerOpts } from '../../../common/event-listener/event-listener-opts';\nimport { now } from '../../../common/timing/now';\nimport { SR_EVENT_EMITTER_TYPES } from '../../session_replay/constants';\nimport { castError, castErrorEvent, castPromiseRejectionEvent } from '../shared/cast-error';\nexport class Instrument extends InstrumentBase {\n static featureName = FEATURE_NAME;\n #replayRunning = false;\n constructor(agentIdentifier, aggregator) {\n let auto = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n super(agentIdentifier, aggregator, FEATURE_NAME, auto);\n try {\n // this try-catch can be removed when IE11 is completely unsupported & gone\n this.removeOnAbort = new AbortController();\n } catch (e) {}\n this.ee.on('internal-error', error => {\n if (!this.abortHandler) return;\n handle('ierr', [castError(error), now(), true, {}, this.#replayRunning], undefined, this.featureName, this.ee);\n });\n this.ee.on(SR_EVENT_EMITTER_TYPES.REPLAY_RUNNING, isRunning => {\n this.#replayRunning = isRunning;\n });\n globalScope.addEventListener('unhandledrejection', promiseRejectionEvent => {\n if (!this.abortHandler) return;\n handle('err', [castPromiseRejectionEvent(promiseRejectionEvent), now(), false, {\n unhandledPromiseRejection: 1\n }, this.#replayRunning], undefined, this.featureName, this.ee);\n }, eventListenerOpts(false, this.removeOnAbort?.signal));\n globalScope.addEventListener('error', errorEvent => {\n if (!this.abortHandler) return;\n handle('err', [castErrorEvent(errorEvent), now(), false, {}, this.#replayRunning], undefined, this.featureName, this.ee);\n }, eventListenerOpts(false, this.removeOnAbort?.signal));\n this.abortHandler = this.#abort; // we also use this as a flag to denote that the feature is active or on and handling errors\n this.importAggregator();\n }\n\n /** Restoration and resource release tasks to be done if JS error loader is being aborted. Unwind changes to globals. */\n #abort() {\n this.removeOnAbort?.abort();\n this.abortHandler = undefined; // weakly allow this abort op to run only once\n }\n}","/*\n * Copyright 2020 New Relic Corporation. All rights reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { getOrSet } from '../util/get-or-set';\nimport { globalScope } from '../constants/runtime';\n\n// Start assigning ids at 1 so 0 can always be used for Window or WorkerGlobalScope, without\n// actually setting it (which would create a global variable).\nlet index = 1;\nconst prop = 'nr@id';\n\n/**\n * Tags a specified object with an identifier if it does not already\n * have one. If the object is the global scope, zero will be returned\n * and the object will not be modified. If the object already contains\n * an identifier, it will be returned without modification. If the passed\n * value is not an object, function, or array, -1 will be returned without\n * modifying the passed value.\n * @param {object|function|array} obj Object to be tagged with an identifier\n * @returns {number} Identifier of the given object\n */\nexport function id(obj) {\n const type = typeof obj;\n // We can only tag objects, functions, and arrays with ids.\n // For all primitive values we instead return -1.\n if (!obj || !(type === 'object' || type === 'function')) return -1;\n if (obj === globalScope) return 0;\n return getOrSet(obj, prop, function () {\n return index++;\n });\n}","/*\n * Copyright 2020 New Relic Corporation. All rights reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { stringify } from './stringify';\n\n/**\n * Returns the size of the provided data. Designed for measuring XHR responses.\n *\n * @param {*} data - The data to be measured.\n * @returns {(number|undefined)} - The size of the data or undefined if size cannot be determined.\n */\nexport function dataSize(data) {\n if (typeof data === 'string' && data.length) return data.length;\n if (typeof data !== 'object') return undefined;\n // eslint-disable-next-line\n if (typeof ArrayBuffer !== 'undefined' && data instanceof ArrayBuffer && data.byteLength) return data.byteLength;\n if (typeof Blob !== 'undefined' && data instanceof Blob && data.size) return data.size;\n if (typeof FormData !== 'undefined' && data instanceof FormData) return undefined;\n try {\n return stringify(data).length;\n } catch (e) {\n return undefined;\n }\n}","/*\n * Copyright 2020 New Relic Corporation. All rights reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { getConfiguration, getConfigurationValue, getLoaderConfig } from '../../../common/config/config';\nimport { generateSpanId, generateTraceId } from '../../../common/ids/unique-id';\nimport { parseUrl } from '../../../common/url/parse-url';\nimport { globalScope } from '../../../common/constants/runtime';\nimport { stringify } from '../../../common/util/stringify';\nexport class DT {\n constructor(agentIdentifier) {\n this.agentIdentifier = agentIdentifier;\n }\n generateTracePayload(parsedOrigin) {\n if (!this.shouldGenerateTrace(parsedOrigin)) {\n return null;\n }\n var loaderConfig = getLoaderConfig(this.agentIdentifier);\n if (!loaderConfig) {\n return null;\n }\n var accountId = (loaderConfig.accountID || '').toString() || null;\n var agentId = (loaderConfig.agentID || '').toString() || null;\n var trustKey = (loaderConfig.trustKey || '').toString() || null;\n if (!accountId || !agentId) {\n return null;\n }\n var spanId = generateSpanId();\n var traceId = generateTraceId();\n var timestamp = Date.now();\n var payload = {\n spanId,\n traceId,\n timestamp\n };\n if (parsedOrigin.sameOrigin || this.isAllowedOrigin(parsedOrigin) && this.useTraceContextHeadersForCors()) {\n payload.traceContextParentHeader = this.generateTraceContextParentHeader(spanId, traceId);\n payload.traceContextStateHeader = this.generateTraceContextStateHeader(spanId, timestamp, accountId, agentId, trustKey);\n }\n if (parsedOrigin.sameOrigin && !this.excludeNewrelicHeader() || !parsedOrigin.sameOrigin && this.isAllowedOrigin(parsedOrigin) && this.useNewrelicHeaderForCors()) {\n payload.newrelicHeader = this.generateTraceHeader(spanId, traceId, timestamp, accountId, agentId, trustKey);\n }\n return payload;\n }\n generateTraceContextParentHeader(spanId, traceId) {\n return '00-' + traceId + '-' + spanId + '-01';\n }\n generateTraceContextStateHeader(spanId, timestamp, accountId, appId, trustKey) {\n var version = 0;\n var transactionId = '';\n var parentType = 1;\n var sampled = '';\n var priority = '';\n return trustKey + '@nr=' + version + '-' + parentType + '-' + accountId + '-' + appId + '-' + spanId + '-' + transactionId + '-' + sampled + '-' + priority + '-' + timestamp;\n }\n generateTraceHeader(spanId, traceId, timestamp, accountId, appId, trustKey) {\n var hasBtoa = typeof globalScope?.btoa === 'function';\n if (!hasBtoa) {\n return null;\n }\n var payload = {\n v: [0, 1],\n d: {\n ty: 'Browser',\n ac: accountId,\n ap: appId,\n id: spanId,\n tr: traceId,\n ti: timestamp\n }\n };\n if (trustKey && accountId !== trustKey) {\n payload.d.tk = trustKey;\n }\n return btoa(stringify(payload));\n }\n\n // return true if DT is enabled and the origin is allowed, either by being\n // same-origin, or included in the allowed list\n shouldGenerateTrace(parsedOrigin) {\n return this.isDtEnabled() && this.isAllowedOrigin(parsedOrigin);\n }\n isAllowedOrigin(parsedOrigin) {\n var allowed = false;\n var dtConfig = {};\n var dt = getConfigurationValue(this.agentIdentifier, 'distributed_tracing');\n if (dt) {\n dtConfig = getConfiguration(this.agentIdentifier).distributed_tracing;\n }\n if (parsedOrigin.sameOrigin) {\n allowed = true;\n } else if (dtConfig.allowed_origins instanceof Array) {\n for (var i = 0; i < dtConfig.allowed_origins.length; i++) {\n var allowedOrigin = parseUrl(dtConfig.allowed_origins[i]);\n if (parsedOrigin.hostname === allowedOrigin.hostname && parsedOrigin.protocol === allowedOrigin.protocol && parsedOrigin.port === allowedOrigin.port) {\n allowed = true;\n break;\n }\n }\n }\n return allowed;\n }\n isDtEnabled() {\n var dt = getConfigurationValue(this.agentIdentifier, 'distributed_tracing');\n if (dt) {\n return !!dt.enabled;\n }\n return false;\n }\n\n // exclude the newrelic header for same-origin calls\n excludeNewrelicHeader() {\n var dt = getConfigurationValue(this.agentIdentifier, 'distributed_tracing');\n if (dt) {\n return !!dt.exclude_newrelic_header;\n }\n return false;\n }\n useNewrelicHeaderForCors() {\n var dt = getConfigurationValue(this.agentIdentifier, 'distributed_tracing');\n if (dt) {\n return dt.cors_use_newrelic_header !== false;\n }\n return false;\n }\n useTraceContextHeadersForCors() {\n var dt = getConfigurationValue(this.agentIdentifier, 'distributed_tracing');\n if (dt) {\n return !!dt.cors_use_tracecontext_headers;\n }\n return false;\n }\n}","/*\n * Copyright 2020 New Relic Corporation. All rights reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { originals, getLoaderConfig } from '../../../common/config/config';\nimport { handle } from '../../../common/event-emitter/handle';\nimport { id } from '../../../common/ids/id';\nimport { ffVersion, globalScope, isBrowserScope } from '../../../common/constants/runtime';\nimport { dataSize } from '../../../common/util/data-size';\nimport { eventListenerOpts } from '../../../common/event-listener/event-listener-opts';\nimport { wrapFetch, wrapXhr } from '../../../common/wrap';\nimport { parseUrl } from '../../../common/url/parse-url';\nimport { DT } from './distributed-tracing';\nimport { responseSizeFromXhr } from './response-size';\nimport { InstrumentBase } from '../../utils/instrument-base';\nimport { FEATURE_NAME } from '../constants';\nimport { FEATURE_NAMES } from '../../../loaders/features/features';\nimport { SUPPORTABILITY_METRIC } from '../../metrics/constants';\nimport { now } from '../../../common/timing/now';\nimport { hasUndefinedHostname } from '../../../common/deny-list/deny-list';\nvar handlers = ['load', 'error', 'abort', 'timeout'];\nvar handlersLen = handlers.length;\nvar origRequest = originals.REQ;\nvar origXHR = originals.XHR;\nexport class Instrument extends InstrumentBase {\n static featureName = FEATURE_NAME;\n constructor(agentIdentifier, aggregator) {\n let auto = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n super(agentIdentifier, aggregator, FEATURE_NAME, auto);\n this.dt = new DT(agentIdentifier);\n this.handler = (type, args, ctx, group) => handle(type, args, ctx, group, this.ee);\n\n // this is a best (but imperfect) effort at capturing AJAX calls that may have fired before the agent was instantiated\n // this could happen because the agent was \"improperly\" set up (ie, not at the top of the head) or\n // because it was deferred from loading in some way -- e.g. 'deferred' script loading tags or other lazy-loading techniques\n //\n // it is \"imperfect\" because we cannot capture the following with the API vs wrapping the events directly:\n // * requestBodySize - (txSize -- request body size)\n // * method - request type (GET, POST, etc)\n // * callbackDuration - (cbTime -- sum of resulting callback time)\n try {\n const initiators = {\n xmlhttprequest: 'xhr',\n fetch: 'fetch',\n beacon: 'beacon'\n };\n globalScope?.performance?.getEntriesByType('resource').forEach(resource => {\n if (resource.initiatorType in initiators && resource.responseStatus !== 0) {\n const params = {\n status: resource.responseStatus\n };\n const metrics = {\n rxSize: resource.transferSize,\n duration: Math.floor(resource.duration),\n cbTime: 0\n };\n addUrl(params, resource.name);\n this.handler('xhr', [params, metrics, resource.startTime, resource.responseEnd, initiators[resource.initiatorType]], undefined, FEATURE_NAMES.ajax);\n }\n });\n } catch (err) {\n // do nothing\n }\n wrapFetch(this.ee);\n wrapXhr(this.ee);\n subscribeToEvents(agentIdentifier, this.ee, this.handler, this.dt);\n this.importAggregator();\n }\n}\nfunction subscribeToEvents(agentIdentifier, ee, handler, dt) {\n ee.on('new-xhr', onNewXhr);\n ee.on('open-xhr-start', onOpenXhrStart);\n ee.on('open-xhr-end', onOpenXhrEnd);\n ee.on('send-xhr-start', onSendXhrStart);\n ee.on('xhr-cb-time', onXhrCbTime);\n ee.on('xhr-load-added', onXhrLoadAdded);\n ee.on('xhr-load-removed', onXhrLoadRemoved);\n ee.on('xhr-resolved', onXhrResolved);\n ee.on('addEventListener-end', onAddEventListenerEnd);\n ee.on('removeEventListener-end', onRemoveEventListenerEnd);\n ee.on('fn-end', onFnEnd);\n ee.on('fetch-before-start', onFetchBeforeStart);\n ee.on('fetch-start', onFetchStart);\n ee.on('fn-start', onFnStart);\n ee.on('fetch-done', onFetchDone);\n\n // Setup the context for each new xhr object\n function onNewXhr(xhr) {\n var ctx = this;\n ctx.totalCbs = 0;\n ctx.called = 0;\n ctx.cbTime = 0;\n ctx.end = end;\n ctx.ended = false;\n ctx.xhrGuids = {};\n ctx.lastSize = null;\n ctx.loadCaptureCalled = false;\n ctx.params = this.params || {};\n ctx.metrics = this.metrics || {};\n xhr.addEventListener('load', function (event) {\n captureXhrData(ctx, xhr);\n }, eventListenerOpts(false));\n\n // In Firefox (v34+), XHR ProgressEvents report pre-content-decoding sizes via\n // their 'loaded' property, rather than post-decoding sizes. We want\n // post-decoding sizes for consistency with browsers where that's all we have.\n // See: https://bugzilla.mozilla.org/show_bug.cgi?id=1227674\n //\n // So we don't use ProgressEvents to measure XHR sizes for FF.\n if (ffVersion) return;\n xhr.addEventListener('progress', function (event) {\n ctx.lastSize = event.loaded;\n }, eventListenerOpts(false));\n }\n function onOpenXhrStart(args) {\n this.params = {\n method: args[0]\n };\n addUrl(this, args[1]);\n this.metrics = {};\n }\n function onOpenXhrEnd(args, xhr) {\n var loaderConfig = getLoaderConfig(agentIdentifier);\n if (loaderConfig.xpid && this.sameOrigin) {\n xhr.setRequestHeader('X-NewRelic-ID', loaderConfig.xpid);\n }\n var payload = dt.generateTracePayload(this.parsedOrigin);\n if (payload) {\n var added = false;\n if (payload.newrelicHeader) {\n xhr.setRequestHeader('newrelic', payload.newrelicHeader);\n added = true;\n }\n if (payload.traceContextParentHeader) {\n xhr.setRequestHeader('traceparent', payload.traceContextParentHeader);\n if (payload.traceContextStateHeader) {\n xhr.setRequestHeader('tracestate', payload.traceContextStateHeader);\n }\n added = true;\n }\n if (added) {\n this.dt = payload;\n }\n }\n }\n function onSendXhrStart(args, xhr) {\n var metrics = this.metrics;\n var data = args[0];\n var context = this;\n if (metrics && data) {\n var size = dataSize(data);\n if (size) metrics.txSize = size;\n }\n this.startTime = now();\n this.body = data;\n this.listener = function (evt) {\n try {\n if (evt.type === 'abort' && !context.loadCaptureCalled) {\n context.params.aborted = true;\n }\n if (evt.type !== 'load' || context.called === context.totalCbs && (context.onloadCalled || typeof xhr.onload !== 'function') && typeof context.end === 'function') context.end(xhr);\n } catch (e) {\n try {\n ee.emit('internal-error', [e]);\n } catch (err) {\n // do nothing\n }\n }\n };\n for (var i = 0; i < handlersLen; i++) {\n xhr.addEventListener(handlers[i], this.listener, eventListenerOpts(false));\n }\n }\n function onXhrCbTime(time, onload, xhr) {\n this.cbTime += time;\n if (onload) this.onloadCalled = true;else this.called += 1;\n if (this.called === this.totalCbs && (this.onloadCalled || typeof xhr.onload !== 'function') && typeof this.end === 'function') this.end(xhr);\n }\n function onXhrLoadAdded(cb, useCapture) {\n // Ignore if the same arguments are passed to addEventListener twice\n var idString = '' + id(cb) + !!useCapture;\n if (!this.xhrGuids || this.xhrGuids[idString]) return;\n this.xhrGuids[idString] = true;\n this.totalCbs += 1;\n }\n function onXhrLoadRemoved(cb, useCapture) {\n // Ignore if event listener didn't exist for this xhr object\n var idString = '' + id(cb) + !!useCapture;\n if (!this.xhrGuids || !this.xhrGuids[idString]) return;\n delete this.xhrGuids[idString];\n this.totalCbs -= 1;\n }\n function onXhrResolved() {\n this.endTime = now();\n }\n\n // Listen for load listeners to be added to xhr objects\n function onAddEventListenerEnd(args, xhr) {\n if (xhr instanceof origXHR && args[0] === 'load') ee.emit('xhr-load-added', [args[1], args[2]], xhr);\n }\n function onRemoveEventListenerEnd(args, xhr) {\n if (xhr instanceof origXHR && args[0] === 'load') ee.emit('xhr-load-removed', [args[1], args[2]], xhr);\n }\n\n // Listen for those load listeners to be called.\n function onFnStart(args, xhr, methodName) {\n if (xhr instanceof origXHR) {\n if (methodName === 'onload') this.onload = true;\n if ((args[0] && args[0].type) === 'load' || this.onload) this.xhrCbStart = now();\n }\n }\n function onFnEnd(args, xhr) {\n if (this.xhrCbStart) ee.emit('xhr-cb-time', [now() - this.xhrCbStart, this.onload, xhr], xhr);\n }\n\n // this event only handles DT\n function onFetchBeforeStart(args) {\n var opts = args[1] || {};\n var url;\n if (typeof args[0] === 'string') {\n // argument is USVString\n url = args[0];\n if (url.length === 0 && isBrowserScope) {\n url = '' + globalScope.location.href;\n }\n } else if (args[0] && args[0].url) {\n // argument is Request object\n url = args[0].url;\n } else if (globalScope?.URL && args[0] && args[0] instanceof URL) {\n // argument is URL object\n url = args[0].href;\n } else if (typeof args[0].toString === 'function') {\n url = args[0].toString();\n }\n if (typeof url !== 'string' || url.length === 0) {\n // Short-circuit DT since we could not determine the URL of the fetch call\n // this is very unlikely to happen\n return;\n }\n if (url) {\n this.parsedOrigin = parseUrl(url);\n this.sameOrigin = this.parsedOrigin.sameOrigin;\n }\n var payload = dt.generateTracePayload(this.parsedOrigin);\n if (!payload || !payload.newrelicHeader && !payload.traceContextParentHeader) {\n return;\n }\n if (args[0] && args[0].headers) {\n if (addHeaders(args[0].headers, payload)) {\n this.dt = payload;\n }\n } else {\n var clone = {};\n for (var key in opts) {\n clone[key] = opts[key];\n }\n clone.headers = new Headers(opts.headers || {});\n if (addHeaders(clone.headers, payload)) {\n this.dt = payload;\n }\n if (args.length > 1) {\n args[1] = clone;\n } else {\n args.push(clone);\n }\n }\n function addHeaders(headersObj, payload) {\n var added = false;\n if (payload.newrelicHeader) {\n headersObj.set('newrelic', payload.newrelicHeader);\n added = true;\n }\n if (payload.traceContextParentHeader) {\n headersObj.set('traceparent', payload.traceContextParentHeader);\n if (payload.traceContextStateHeader) {\n headersObj.set('tracestate', payload.traceContextStateHeader);\n }\n added = true;\n }\n return added;\n }\n }\n function onFetchStart(fetchArguments, dtPayload) {\n this.params = {};\n this.metrics = {};\n this.startTime = now();\n this.dt = dtPayload;\n if (fetchArguments.length >= 1) this.target = fetchArguments[0];\n if (fetchArguments.length >= 2) this.opts = fetchArguments[1];\n var opts = this.opts || {};\n var target = this.target;\n var url;\n if (typeof target === 'string') {\n url = target;\n } else if (typeof target === 'object' && target instanceof origRequest) {\n url = target.url;\n } else if (globalScope?.URL && typeof target === 'object' && target instanceof URL) {\n url = target.href;\n }\n addUrl(this, url);\n var method = ('' + (target && target instanceof origRequest && target.method || opts.method || 'GET')).toUpperCase();\n this.params.method = method;\n this.body = opts.body;\n this.txSize = dataSize(opts.body) || 0;\n }\n\n // we capture failed call as status 0, the actual error is ignored\n // eslint-disable-next-line handle-callback-err\n function onFetchDone(_, res) {\n this.endTime = now();\n if (!this.params) this.params = {};\n if (hasUndefinedHostname(this.params)) return; // don't bother with fetch to url with no hostname\n\n this.params.status = res ? res.status : 0;\n\n // convert rxSize to a number\n let responseSize;\n if (typeof this.rxSize === 'string' && this.rxSize.length > 0) {\n responseSize = +this.rxSize;\n }\n const metrics = {\n txSize: this.txSize,\n rxSize: responseSize,\n duration: now() - this.startTime\n };\n handler('xhr', [this.params, metrics, this.startTime, this.endTime, 'fetch'], this, FEATURE_NAMES.ajax);\n }\n\n // Create report for XHR request that has finished\n function end(xhr) {\n const params = this.params;\n const metrics = this.metrics;\n if (this.ended) return;\n this.ended = true;\n for (let i = 0; i < handlersLen; i++) {\n xhr.removeEventListener(handlers[i], this.listener, false);\n }\n if (params.aborted) return;\n if (hasUndefinedHostname(params)) return; // don't bother with XHR of url with no hostname\n\n metrics.duration = now() - this.startTime;\n if (!this.loadCaptureCalled && xhr.readyState === 4) {\n captureXhrData(this, xhr);\n } else if (params.status == null) {\n params.status = 0;\n }\n\n // Always send cbTime, even if no noticeable time was taken.\n metrics.cbTime = this.cbTime;\n handler('xhr', [params, metrics, this.startTime, this.endTime, 'xhr'], this, FEATURE_NAMES.ajax);\n }\n function captureXhrData(ctx, xhr) {\n ctx.params.status = xhr.status;\n var size = responseSizeFromXhr(xhr, ctx.lastSize);\n if (size) ctx.metrics.rxSize = size;\n if (ctx.sameOrigin) {\n var header = xhr.getResponseHeader('X-NewRelic-App-Data');\n if (header) {\n handle(SUPPORTABILITY_METRIC, ['Ajax/CrossApplicationTracing/Header/Seen'], undefined, FEATURE_NAMES.metrics, ee);\n ctx.params.cat = header.split(', ').pop();\n }\n }\n ctx.loadCaptureCalled = true;\n }\n}\nfunction addUrl(ctx, url) {\n var parsed = parseUrl(url);\n var params = ctx.params || ctx;\n params.hostname = parsed.hostname;\n params.port = parsed.port;\n params.protocol = parsed.protocol;\n params.host = parsed.hostname + ':' + parsed.port;\n params.pathname = parsed.pathname;\n ctx.parsedOrigin = parsed;\n ctx.sameOrigin = parsed.sameOrigin;\n}","/*\n * Copyright 2020 New Relic Corporation. All rights reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { dataSize } from '../../../common/util/data-size';\nexport function responseSizeFromXhr(xhr, lastSize) {\n var type = xhr.responseType;\n if (type === 'json' && lastSize !== null) return lastSize;\n // Caution! Chrome throws an error if you try to access xhr.responseText for binary data\n if (type === 'arraybuffer' || type === 'blob' || type === 'json') {\n return dataSize(xhr.response);\n } else if (type === 'text' || type === '' || type === undefined) {\n // empty string type defaults to 'text'\n return dataSize(xhr.responseText);\n } else {\n // e.g. ms-stream and document (we do not currently determine the size of Document objects)\n return undefined;\n }\n}","/*\n * Copyright 2020 New Relic Corporation. All rights reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { handle } from '../../../common/event-emitter/handle';\nimport { wrapHistory, wrapEvents } from '../../../common/wrap';\nimport { InstrumentBase } from '../../utils/instrument-base';\nimport * as CONSTANTS from '../constants';\nimport { FEATURE_NAMES } from '../../../loaders/features/features';\nimport { deregisterDrain } from '../../../common/drain/drain';\nimport { canEnableSessionTracking } from '../../utils/feature-gates';\nimport { now } from '../../../common/timing/now';\nconst {\n BST_RESOURCE,\n RESOURCE,\n START,\n END,\n FEATURE_NAME,\n FN_END,\n FN_START,\n PUSH_STATE\n} = CONSTANTS;\nexport class Instrument extends InstrumentBase {\n static featureName = FEATURE_NAME;\n constructor(agentIdentifier, aggregator) {\n let auto = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n super(agentIdentifier, aggregator, FEATURE_NAME, auto);\n const canTrackSession = canEnableSessionTracking(this.agentIdentifier);\n if (!canTrackSession) {\n deregisterDrain(this.agentIdentifier, this.featureName);\n return;\n }\n const thisInstrumentEE = this.ee;\n wrapHistory(thisInstrumentEE);\n this.eventsEE = wrapEvents(thisInstrumentEE);\n this.eventsEE.on(FN_START, function (args, target) {\n this.bstStart = now();\n });\n this.eventsEE.on(FN_END, function (args, target) {\n // ISSUE: when target is XMLHttpRequest, nr@context should have params so we can calculate event origin\n // When ajax is disabled, this may fail without making ajax a dependency of session_trace\n handle('bst', [args[0], target, this.bstStart, now()], undefined, FEATURE_NAMES.sessionTrace, thisInstrumentEE);\n });\n thisInstrumentEE.on(PUSH_STATE + START, function (args) {\n this.time = now();\n this.startPath = location.pathname + location.hash;\n });\n thisInstrumentEE.on(PUSH_STATE + END, function (args) {\n handle('bstHist', [location.pathname + location.hash, this.startPath, this.time], undefined, FEATURE_NAMES.sessionTrace, thisInstrumentEE);\n });\n let observer;\n try {\n // Capture initial resources and watch for future ones. Don't defer this given there's a default cap on the number of buffered entries.\n observer = new PerformanceObserver(list => {\n // eslint-disable-line no-undef\n const entries = list.getEntries();\n handle(BST_RESOURCE, [entries], undefined, FEATURE_NAMES.sessionTrace, thisInstrumentEE);\n });\n observer.observe({\n type: RESOURCE,\n buffered: true\n });\n } catch (e) {\n // Per NEWRELIC-8525, we don't have a fallback for capturing resources for older versions that don't support PO at this time.\n }\n this.importAggregator({\n resourceObserver: observer\n });\n }\n}","/*\n * Copyright 2020 New Relic Corporation. All rights reserved.\n * SPDX-License-Identifier: Apache-2.0\n*/\nimport { wrapMutation, wrapPromise, wrapHistory, wrapTimer, wrapFetch, wrapXhr, wrapJsonP } from '../../../common/wrap';\nimport { eventListenerOpts } from '../../../common/event-listener/event-listener-opts';\nimport { InstrumentBase } from '../../utils/instrument-base';\nimport * as CONSTANTS from '../constants';\nimport { isBrowserScope } from '../../../common/constants/runtime';\nimport { now } from '../../../common/timing/now';\nimport { handle } from '../../../common/event-emitter/handle';\nconst {\n FEATURE_NAME,\n START,\n END,\n BODY,\n CB_END,\n JS_TIME,\n FETCH,\n FN_START,\n CB_START,\n FN_END\n} = CONSTANTS;\nexport class Instrument extends InstrumentBase {\n static featureName = FEATURE_NAME;\n constructor(agentIdentifier, aggregator) {\n var _this;\n let auto = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n super(agentIdentifier, aggregator, FEATURE_NAME, auto);\n _this = this;\n if (!isBrowserScope) return; // SPA not supported outside web env\n\n try {\n this.removeOnAbort = new AbortController();\n } catch (e) {}\n let depth = 0;\n let startHash;\n const tracerEE = this.ee.get('tracer');\n const jsonpEE = wrapJsonP(this.ee);\n const promiseEE = wrapPromise(this.ee);\n const timerEE = wrapTimer(this.ee);\n const xhrEE = wrapXhr(this.ee);\n const eventsEE = this.ee.get('events'); // wrapXhr will call wrapEvents\n const fetchEE = wrapFetch(this.ee);\n const historyEE = wrapHistory(this.ee);\n const mutationEE = wrapMutation(this.ee);\n this.ee.on(FN_START, startTimestamp);\n promiseEE.on(CB_START, startTimestamp);\n jsonpEE.on(CB_START, startTimestamp);\n this.ee.on(FN_END, endTimestamp);\n promiseEE.on(CB_END, endTimestamp);\n jsonpEE.on(CB_END, endTimestamp);\n this.ee.on('fn-err', function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n if (!args[2]?.__newrelic?.[agentIdentifier]) handle('function-err', [...args], undefined, _this.featureName, _this.ee);\n });\n this.ee.buffer([FN_START, FN_END, 'xhr-resolved'], this.featureName);\n eventsEE.buffer([FN_START], this.featureName);\n timerEE.buffer(['setTimeout' + END, 'clearTimeout' + START, FN_START], this.featureName);\n xhrEE.buffer([FN_START, 'new-xhr', 'send-xhr' + START], this.featureName);\n fetchEE.buffer([FETCH + START, FETCH + '-done', FETCH + BODY + START, FETCH + BODY + END], this.featureName);\n historyEE.buffer(['newURL'], this.featureName);\n mutationEE.buffer([FN_START], this.featureName);\n promiseEE.buffer(['propagate', CB_START, CB_END, 'executor-err', 'resolve' + START], this.featureName);\n tracerEE.buffer([FN_START, 'no-' + FN_START], this.featureName);\n jsonpEE.buffer(['new-jsonp', 'cb-start', 'jsonp-error', 'jsonp-end'], this.featureName);\n timestamp(fetchEE, FETCH + START);\n timestamp(fetchEE, FETCH + '-done');\n timestamp(jsonpEE, 'new-jsonp');\n timestamp(jsonpEE, 'jsonp-end');\n timestamp(jsonpEE, 'cb-start');\n historyEE.on('pushState-end', trackURLChange);\n historyEE.on('replaceState-end', trackURLChange);\n window.addEventListener('hashchange', trackURLChange, eventListenerOpts(true, this.removeOnAbort?.signal));\n window.addEventListener('load', trackURLChange, eventListenerOpts(true, this.removeOnAbort?.signal));\n window.addEventListener('popstate', function () {\n trackURLChange(0, depth > 1);\n }, eventListenerOpts(true, this.removeOnAbort?.signal));\n function trackURLChange(unusedArgs, hashChangedDuringCb) {\n historyEE.emit('newURL', ['' + window.location, hashChangedDuringCb]);\n }\n function startTimestamp() {\n depth++;\n startHash = window.location.hash;\n this[FN_START] = now();\n }\n function endTimestamp() {\n depth--;\n if (window.location.hash !== startHash) {\n trackURLChange(0, true);\n }\n var time = now();\n this[JS_TIME] = ~~this[JS_TIME] + time - this[FN_START];\n this[FN_END] = time;\n }\n function timestamp(ee, type) {\n ee.on(type, function () {\n this[type] = now();\n });\n }\n this.abortHandler = this.#abort;\n this.importAggregator();\n }\n\n /** Restoration and resource release tasks to be done if SPA loader is being aborted. Unwind changes to globals and subscription to DOM events. */\n #abort() {\n this.removeOnAbort?.abort();\n this.abortHandler = undefined; // weakly allow this abort op to run only once\n }\n}","/*\n * Copyright 2020 New Relic Corporation. All rights reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { InstrumentBase } from '../../utils/instrument-base';\nimport { FEATURE_NAME } from '../constants';\nexport class Instrument extends InstrumentBase {\n static featureName = FEATURE_NAME;\n constructor(agentIdentifier, aggregator) {\n let auto = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n super(agentIdentifier, aggregator, FEATURE_NAME, auto);\n this.importAggregator();\n }\n}","/*\n * Copyright 2023 New Relic Corporation. All rights reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n/**\n * @file Primes the Session Replay feature for lazy loading.\n *\n * NOTE: This code is under development and dormant. It will not download to instrumented pages or record any data.\n * It is not production ready, and is not intended to be imported or implemented in any build of the browser agent until\n * functionality is validated and a full user experience is curated.\n */\nimport { handle } from '../../../common/event-emitter/handle';\nimport { DEFAULT_KEY, MODE, PREFIX } from '../../../common/session/constants';\nimport { InstrumentBase } from '../../utils/instrument-base';\nimport { hasReplayPrerequisite, isPreloadAllowed } from '../shared/utils';\nimport { FEATURE_NAME, SR_EVENT_EMITTER_TYPES, TRIGGERS } from '../constants';\nexport class Instrument extends InstrumentBase {\n static featureName = FEATURE_NAME;\n #mode;\n constructor(agentIdentifier, aggregator) {\n let auto = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n super(agentIdentifier, aggregator, FEATURE_NAME, auto);\n let session;\n this.replayRunning = false;\n try {\n session = JSON.parse(localStorage.getItem(\"\".concat(PREFIX, \"_\").concat(DEFAULT_KEY)));\n } catch (err) {}\n if (hasReplayPrerequisite(agentIdentifier)) {\n this.ee.on('recordReplay', () => this.#apiStartOrRestartReplay());\n }\n if (this.#canPreloadRecorder(session)) {\n this.#mode = session?.sessionReplayMode;\n this.#preloadStartRecording();\n } else {\n this.importAggregator();\n }\n\n /** If the recorder is running, we can pass error events on to the agg to help it switch to full mode later */\n this.ee.on('err', e => {\n if (this.replayRunning) {\n this.errorNoticed = true;\n handle(SR_EVENT_EMITTER_TYPES.ERROR_DURING_REPLAY, [e], undefined, this.featureName, this.ee);\n }\n });\n\n /** Emitted by the recorder when it starts capturing data, used to determine if we should pass errors on to the agg */\n this.ee.on(SR_EVENT_EMITTER_TYPES.REPLAY_RUNNING, isRunning => {\n this.replayRunning = isRunning;\n });\n }\n\n // At this point wherein session state exists already but we haven't init SessionEntity aka verify timers.\n #canPreloadRecorder(session) {\n if (!session) {\n // this might be a new session if entity initializes: conservatively start recording if first-time config allows\n // Note: users with SR enabled, as well as these other configs enabled by-default, will be penalized by the recorder overhead EVEN IF they don't actually have or get\n // entitlement or sampling decision, or otherwise intentionally opted-in for the feature.\n return isPreloadAllowed(this.agentIdentifier);\n } else if (session.sessionReplayMode === MODE.FULL || session.sessionReplayMode === MODE.ERROR) {\n return true; // existing sessions get to continue recording, regardless of this page's configs or if it has expired (conservatively)\n } else {\n // SR mode was OFF but may potentially be turned on if session resets and configs allows the new session to have replay...\n return isPreloadAllowed(this.agentIdentifier);\n }\n }\n #alreadyStarted = false;\n /**\n * This func is use for early pre-load recording prior to replay feature (agg) being loaded onto the page. It should only setup once, including if already called and in-progress.\n */\n async #preloadStartRecording(trigger) {\n if (this.#alreadyStarted) return;\n this.#alreadyStarted = true;\n try {\n const {\n Recorder\n } = await import( /* webpackChunkName: \"recorder\" */'../shared/recorder');\n\n // If startReplay() has been used by this point, we must record in full mode regardless of session preload:\n // Note: recorder starts here with w/e the mode is at this time, but this may be changed later (see #apiStartOrRestartReplay else-case)\n this.recorder ??= new Recorder({\n mode: this.#mode,\n agentIdentifier: this.agentIdentifier,\n trigger,\n ee: this.ee\n });\n this.recorder.startRecording();\n this.abortHandler = this.recorder.stopRecording;\n } catch (e) {}\n this.importAggregator({\n recorder: this.recorder,\n errorNoticed: this.errorNoticed\n });\n }\n\n /**\n * Called whenever startReplay API is used. That could occur any time, pre or post load.\n */\n #apiStartOrRestartReplay() {\n if (this.featAggregate) {\n // post-load; there's possibly already an ongoing recording\n if (this.featAggregate.mode !== MODE.FULL) this.featAggregate.initializeRecording(MODE.FULL, true);\n } else {\n // pre-load\n this.#mode = MODE.FULL;\n this.#preloadStartRecording(TRIGGERS.API);\n // There's a race here wherein either:\n // a. Recorder has not been initialized, and we've set the enforced mode, so we're good, or;\n // b. Record has been initialized, possibly with the \"wrong\" mode, so we have to correct that + restart.\n if (this.recorder && this.recorder.parent.mode !== MODE.FULL) {\n this.recorder.parent.mode = MODE.FULL;\n this.recorder.stopRecording();\n this.recorder.startRecording();\n this.abortHandler = this.recorder.stopRecording;\n }\n }\n }\n}","import { BrowserAgent } from \"@newrelic/browser-agent/loaders/browser-agent\"\r\nimport { environment } from \"src/environments/environment\";\r\n\r\nif (environment?.newRelic?.isEnabled) {\r\n // Init global New Relic Agent for portal.\r\n // It will automatically detect page-level events across web application.\r\n new BrowserAgent(environment.newRelic.options);\r\n}\r\n\r\n","import { Agent } from './agent';\nimport { Instrument as InstrumentPageViewEvent } from '../features/page_view_event/instrument';\nimport { Instrument as InstrumentPageViewTiming } from '../features/page_view_timing/instrument';\nimport { Instrument as InstrumentMetrics } from '../features/metrics/instrument';\nimport { Instrument as InstrumentErrors } from '../features/jserrors/instrument';\nimport { Instrument as InstrumentXhr } from '../features/ajax/instrument';\nimport { Instrument as InstrumentSessionTrace } from '../features/session_trace/instrument';\nimport { Instrument as InstrumentSpa } from '../features/spa/instrument';\nimport { Instrument as InstrumentPageAction } from '../features/page_action/instrument';\nimport { Instrument as InstrumentSessionReplay } from '../features/session_replay/instrument';\n\n/**\n * An agent class with all feature modules available. Features may be disabled and enabled via runtime configuration.\n * The BrowserAgent class is the most convenient and reliable option for most use cases.\n */\nexport class BrowserAgent extends Agent {\n constructor(args) {\n super({\n ...args,\n features: [InstrumentXhr, InstrumentPageViewEvent, InstrumentPageViewTiming, InstrumentSessionTrace, InstrumentMetrics, InstrumentPageAction, InstrumentErrors, InstrumentSpa, InstrumentSessionReplay],\n loaderType: 'browser-agent'\n });\n }\n}","/* eslint-disable */\r\n/**\r\n * This file includes polyfills needed by Angular and is loaded before the app.\r\n * You can add your own extra polyfills to this file.\r\n *\r\n * This file is divided into 2 sections:\r\n * 1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers.\r\n * 2. Application imports. Files imported after ZoneJS that should be loaded before your main\r\n * file.\r\n *\r\n * The current setup is for so-called \"evergreen\" browsers; the last versions of browsers that\r\n * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera),\r\n * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile.\r\n *\r\n * Learn more in https://angular.io/guide/browser-support\r\n */\r\n\r\n/** *************************************************************************************************\r\n * BROWSER POLYFILLS\r\n */\r\n\r\n/**\r\n * Polyfill to fix round in toFixed method\r\n * Expected result\r\n * 1.95.toFixed(1) should be 2.0\r\n */\r\n(1.005).toFixed(2) == \"1.01\" || (function(prototype) {\r\n let F = prototype.toFixed;\r\n\r\n prototype.toFixed = toFixedPolyfill\r\n\r\n function toFixedPolyfill(fractionLength) {\r\n let split = this.toString().split('.');\r\n\r\n let value = !(1 in split)\r\n ? split[0]\r\n : split[1].length >= fractionLength\r\n ? split.join('.') + '1'\r\n : split.join('.')\r\n\r\n return F.call(+value, fractionLength);\r\n }\r\n}(Number.prototype));\r\n\r\n/**\r\n * The New Relic browser agent instruments for web application\r\n * and provides observability into performance, errors, and other behaviors.\r\n * More Details: https://www.npmjs.com/package/@newrelic/browser-agent\r\n *\r\n * Should be import befour zone.js .\r\n */\r\n\r\n/** *************************************************************************************************\r\n * New Relic import.\r\n */\r\n\r\nimport \"./vendors/newrelic\";\r\n\r\n/**\r\n * By default, zone.js will patch all possible macroTask and DomEvents\r\n * user can disable parts of macroTask/DomEvents patch by setting following flags\r\n * because those flags need to be set before `zone.js` being loaded, and webpack\r\n * will put import in the top of bundle, so user need to create a separate file\r\n * in this directory (for example: zone-flags.ts), and put the following flags\r\n * into that file, and then add the following code before importing zone.js.\r\n * import './zone-flags';\r\n *\r\n * The flags allowed in zone-flags.ts are listed here.\r\n *\r\n * The following flags will work for all browsers.\r\n *\r\n * (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame\r\n * (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick\r\n * (window as any).__zone_symbol__UNPATCHED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames\r\n *\r\n * in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js\r\n * with the following flag, it will bypass `zone.js` patch for IE/Edge\r\n *\r\n * (window as any).__Zone_enable_cross_context_check = true;\r\n *\r\n */\r\n\r\n/** *************************************************************************************************\r\n * Zone JS is required by default for Angular itself.\r\n */\r\nimport \"zone.js\"; // Included with Angular CLI.\r\n\r\n/** *************************************************************************************************\r\n * APPLICATION IMPORTS\r\n */\r\n","/*\n * Copyright 2020 New Relic Corporation. All rights reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { SharedContext } from '../context/shared-context';\nimport { mapOwn } from '../util/map-own';\nexport class Aggregator extends SharedContext {\n constructor(parent) {\n super(parent);\n this.aggregatedData = {};\n }\n\n // Items with the same type and name get aggregated together\n // params are example data from the aggregated items\n // metrics are the numeric values to be aggregated\n\n store(type, name, params, newMetrics, customParams) {\n var bucket = this.getBucket(type, name, params, customParams);\n bucket.metrics = aggregateMetrics(newMetrics, bucket.metrics);\n return bucket;\n }\n merge(type, name, metrics, params, customParams) {\n var bucket = this.getBucket(type, name, params, customParams);\n if (!bucket.metrics) {\n bucket.metrics = metrics;\n return;\n }\n var oldMetrics = bucket.metrics;\n oldMetrics.count += metrics.count;\n\n // iterate through each new metric and merge\n mapOwn(metrics, function (key, value) {\n // count is a special case handled above\n if (key === 'count') return;\n var oldMetric = oldMetrics[key];\n var newMetric = metrics[key];\n\n // handling the case where newMetric is a single-value first\n if (newMetric && !newMetric.c) {\n oldMetrics[key] = updateMetric(newMetric.t, oldMetric);\n } else {\n // newMetric is a metric object\n oldMetrics[key] = mergeMetric(newMetric, oldMetrics[key]);\n }\n });\n }\n storeMetric(type, name, params, value) {\n var bucket = this.getBucket(type, name, params);\n bucket.stats = updateMetric(value, bucket.stats);\n return bucket;\n }\n getBucket(type, name, params, customParams) {\n if (!this.aggregatedData[type]) this.aggregatedData[type] = {};\n var bucket = this.aggregatedData[type][name];\n if (!bucket) {\n bucket = this.aggregatedData[type][name] = {\n params: params || {}\n };\n if (customParams) {\n bucket.custom = customParams;\n }\n }\n return bucket;\n }\n get(type, name) {\n // if name is passed, get a single bucket\n if (name) return this.aggregatedData[type] && this.aggregatedData[type][name];\n // else, get all buckets of that type\n return this.aggregatedData[type];\n }\n\n // Like get, but for many types and it deletes the retrieved content from the aggregatedData\n take(types) {\n var results = {};\n var type = '';\n var hasData = false;\n for (var i = 0; i < types.length; i++) {\n type = types[i];\n results[type] = Object.values(this.aggregatedData[type] || {});\n if (results[type].length) hasData = true;\n delete this.aggregatedData[type];\n }\n return hasData ? results : null;\n }\n}\nfunction aggregateMetrics(newMetrics, oldMetrics) {\n if (!oldMetrics) oldMetrics = {\n count: 0\n };\n oldMetrics.count += 1;\n mapOwn(newMetrics, function (key, value) {\n oldMetrics[key] = updateMetric(value, oldMetrics[key]);\n });\n return oldMetrics;\n}\nfunction updateMetric(value, metric) {\n // when there is no value, then send only count\n if (value == null) {\n return updateCounterMetric(metric);\n }\n\n // When there is only one data point, the c (count), min, max, and sos (sum of squares) params are superfluous.\n if (!metric) return {\n t: value\n };\n\n // but on the second data point, we need to calculate the other values before aggregating in new values\n if (!metric.c) {\n metric = createMetricObject(metric.t);\n }\n\n // at this point, metric is always uncondensed\n metric.c += 1;\n metric.t += value;\n metric.sos += value * value;\n if (value > metric.max) metric.max = value;\n if (value < metric.min) metric.min = value;\n return metric;\n}\nfunction updateCounterMetric(metric) {\n if (!metric) {\n metric = {\n c: 1\n };\n } else {\n metric.c++;\n }\n return metric;\n}\nfunction mergeMetric(newMetric, oldMetric) {\n if (!oldMetric) return newMetric;\n if (!oldMetric.c) {\n // oldMetric is a single-value\n oldMetric = createMetricObject(oldMetric.t);\n }\n oldMetric.min = Math.min(newMetric.min, oldMetric.min);\n oldMetric.max = Math.max(newMetric.max, oldMetric.max);\n oldMetric.t += newMetric.t;\n oldMetric.sos += newMetric.sos;\n oldMetric.c += newMetric.c;\n return oldMetric;\n}\n\n// take a value and create a metric object\nfunction createMetricObject(value) {\n return {\n t: value,\n min: value,\n max: value,\n sos: value * value,\n c: 1\n };\n}","import { defaults as nrDefaults, getNREUMInitializedAgent } from '../../window/nreum';\nimport { getModeledObject } from './configurable';\nconst model = {\n // preset defaults\n beacon: nrDefaults.beacon,\n errorBeacon: nrDefaults.errorBeacon,\n // others must be populated by user\n licenseKey: undefined,\n applicationID: undefined,\n sa: undefined,\n queueTime: undefined,\n applicationTime: undefined,\n ttGuid: undefined,\n user: undefined,\n account: undefined,\n product: undefined,\n extra: undefined,\n jsAttributes: {},\n userAttributes: undefined,\n atts: undefined,\n transactionName: undefined,\n tNamePlain: undefined\n};\nconst _cache = {};\nexport function isValid(id) {\n try {\n const info = getInfo(id);\n return !!info.licenseKey && !!info.errorBeacon && !!info.applicationID;\n } catch (err) {\n return false;\n }\n}\nexport function getInfo(id) {\n if (!id) throw new Error('All info objects require an agent identifier!');\n if (!_cache[id]) throw new Error(\"Info for \".concat(id, \" was never set\"));\n return _cache[id];\n}\nexport function setInfo(id, obj) {\n if (!id) throw new Error('All info objects require an agent identifier!');\n _cache[id] = getModeledObject(obj, model);\n const agentInst = getNREUMInitializedAgent(id);\n if (agentInst) agentInst.info = _cache[id];\n}","export const isValidSelector = selector => {\n if (!selector || typeof selector !== 'string') return false;\n try {\n document.createDocumentFragment().querySelector(selector);\n } catch {\n return false;\n }\n return true;\n};","import { isValidSelector } from '../../dom/query-selector';\nimport { DEFAULT_EXPIRES_MS, DEFAULT_INACTIVE_MS } from '../../session/constants';\nimport { warn } from '../../util/console';\nimport { getNREUMInitializedAgent } from '../../window/nreum';\nimport { getModeledObject } from './configurable';\nconst nrMask = '[data-nr-mask]';\nconst model = () => {\n const hiddenState = {\n mask_selector: '*',\n block_selector: '[data-nr-block]',\n mask_input_options: {\n color: false,\n date: false,\n 'datetime-local': false,\n email: false,\n month: false,\n number: false,\n range: false,\n search: false,\n tel: false,\n text: false,\n time: false,\n url: false,\n week: false,\n // unify textarea and select element with text input\n textarea: false,\n select: false,\n password: true // This will be enforced to always be true in the setter\n }\n };\n return {\n feature_flags: [],\n proxy: {\n assets: undefined,\n // if this value is set, it will be used to overwrite the webpack asset path used to fetch assets\n beacon: undefined // likewise for the url to which we send analytics\n },\n privacy: {\n cookies_enabled: true\n },\n // *cli - per discussion, default should be true\n ajax: {\n deny_list: undefined,\n block_internal: true,\n enabled: true,\n harvestTimeSeconds: 10,\n autoStart: true\n },\n distributed_tracing: {\n enabled: undefined,\n exclude_newrelic_header: undefined,\n cors_use_newrelic_header: undefined,\n cors_use_tracecontext_headers: undefined,\n allowed_origins: undefined\n },\n session: {\n expiresMs: DEFAULT_EXPIRES_MS,\n inactiveMs: DEFAULT_INACTIVE_MS\n },\n ssl: undefined,\n obfuscate: undefined,\n jserrors: {\n enabled: true,\n harvestTimeSeconds: 10,\n autoStart: true\n },\n metrics: {\n enabled: true,\n autoStart: true\n },\n page_action: {\n enabled: true,\n harvestTimeSeconds: 30,\n autoStart: true\n },\n page_view_event: {\n enabled: true,\n autoStart: true\n },\n page_view_timing: {\n enabled: true,\n harvestTimeSeconds: 30,\n long_task: false,\n autoStart: true\n },\n session_trace: {\n enabled: true,\n harvestTimeSeconds: 10,\n autoStart: true\n },\n harvest: {\n tooManyRequestsDelay: 60\n },\n session_replay: {\n // feature settings\n autoStart: true,\n enabled: false,\n harvestTimeSeconds: 60,\n preload: false,\n // if true, enables the agent to load rrweb immediately instead of waiting to do so after the window.load event\n sampling_rate: 10,\n // float from 0 - 100\n error_sampling_rate: 100,\n // float from 0 - 100\n collect_fonts: false,\n // serialize fonts for collection without public asset url, this is currently broken in RRWeb -- https://github.com/rrweb-io/rrweb/issues/1304. When fixed, revisit with test cases\n inline_images: false,\n // serialize images for collection without public asset url -- right now this is only useful for testing as it easily generates payloads too large to be harvested\n inline_stylesheet: true,\n // serialize css for collection without public asset url\n // recording config settings\n mask_all_inputs: true,\n // this has a getter/setter to facilitate validation of the selectors\n get mask_text_selector() {\n return hiddenState.mask_selector;\n },\n set mask_text_selector(val) {\n if (isValidSelector(val)) hiddenState.mask_selector = \"\".concat(val, \",\").concat(nrMask);else if (val === '' || val === null) hiddenState.mask_selector = nrMask;else warn('An invalid session_replay.mask_selector was provided. \\'*\\' will be used.', val);\n },\n // these properties only have getters because they are enforcable constants and should error if someone tries to override them\n get block_class() {\n return 'nr-block';\n },\n get ignore_class() {\n return 'nr-ignore';\n },\n get mask_text_class() {\n return 'nr-mask';\n },\n // props with a getter and setter are used to extend enforcable constants with customer input\n // we must preserve data-nr-block no matter what else the customer sets\n get block_selector() {\n return hiddenState.block_selector;\n },\n set block_selector(val) {\n if (isValidSelector(val)) hiddenState.block_selector += \",\".concat(val);else if (val !== '') warn('An invalid session_replay.block_selector was provided and will not be used', val);\n },\n // password: must always be present and true no matter what customer sets\n get mask_input_options() {\n return hiddenState.mask_input_options;\n },\n set mask_input_options(val) {\n if (val && typeof val === 'object') hiddenState.mask_input_options = {\n ...val,\n password: true\n };else warn('An invalid session_replay.mask_input_option was provided and will not be used', val);\n }\n },\n spa: {\n enabled: true,\n harvestTimeSeconds: 10,\n autoStart: true\n },\n soft_navigations: {\n enabled: true,\n harvestTimeSeconds: 10,\n autoStart: true\n }\n };\n};\nconst _cache = {};\nconst missingAgentIdError = 'All configuration objects require an agent identifier!';\nexport function getConfiguration(id) {\n if (!id) throw new Error(missingAgentIdError);\n if (!_cache[id]) throw new Error(\"Configuration for \".concat(id, \" was never set\"));\n return _cache[id];\n}\nexport function setConfiguration(id, obj) {\n if (!id) throw new Error(missingAgentIdError);\n _cache[id] = getModeledObject(obj, model());\n const agentInst = getNREUMInitializedAgent(id);\n if (agentInst) agentInst.init = _cache[id];\n}\nexport function getConfigurationValue(id, path) {\n if (!id) throw new Error(missingAgentIdError);\n var val = getConfiguration(id);\n if (val) {\n var parts = path.split('.');\n for (var i = 0; i < parts.length - 1; i++) {\n val = val[parts[i]];\n if (typeof val !== 'object') return;\n }\n val = val[parts[parts.length - 1]];\n }\n return val;\n}\n\n// TO DO: a setConfigurationValue equivalent may be nice so individual\n// properties can be tuned instead of reseting the whole model per call to `setConfiguration(agentIdentifier, {})`","import { getNREUMInitializedAgent } from '../../window/nreum';\nimport { getModeledObject } from './configurable';\nconst model = {\n accountID: undefined,\n trustKey: undefined,\n agentID: undefined,\n licenseKey: undefined,\n applicationID: undefined,\n xpid: undefined\n};\nconst _cache = {};\nexport function getLoaderConfig(id) {\n if (!id) throw new Error('All loader-config objects require an agent identifier!');\n if (!_cache[id]) throw new Error(\"LoaderConfig for \".concat(id, \" was never set\"));\n return _cache[id];\n}\nexport function setLoaderConfig(id, obj) {\n if (!id) throw new Error('All loader-config objects require an agent identifier!');\n _cache[id] = getModeledObject(obj, model);\n const agentInst = getNREUMInitializedAgent(id);\n if (agentInst) agentInst.loader_config = _cache[id];\n}","import { gosNREUMOriginals } from '../../window/nreum';\nexport const originals = gosNREUMOriginals().o;","import { getModeledObject } from './configurable';\nimport { getNREUMInitializedAgent } from '../../window/nreum';\nimport { globalScope, originTime } from '../../constants/runtime';\nimport { BUILD_ENV, DIST_METHOD, VERSION } from \"../../constants/env.npm\";\nconst readonly = {\n buildEnv: BUILD_ENV,\n distMethod: DIST_METHOD,\n version: VERSION,\n originTime\n};\nconst model = {\n customTransaction: undefined,\n disabled: false,\n isolatedBacklog: false,\n loaderType: undefined,\n maxBytes: 30000,\n onerror: undefined,\n origin: '' + globalScope.location,\n ptid: undefined,\n releaseIds: {},\n /** Agent-specific metadata found in the RUM call response. ex. entityGuid */\n appMetadata: {},\n session: undefined,\n denyList: undefined,\n harvestCount: 0,\n timeKeeper: undefined\n};\nconst _cache = {};\nexport function getRuntime(id) {\n if (!id) throw new Error('All runtime objects require an agent identifier!');\n if (!_cache[id]) throw new Error(\"Runtime for \".concat(id, \" was never set\"));\n return _cache[id];\n}\nexport function setRuntime(id, obj) {\n if (!id) throw new Error('All runtime objects require an agent identifier!');\n _cache[id] = {\n ...getModeledObject(obj, model),\n ...readonly\n };\n const agentInst = getNREUMInitializedAgent(id);\n if (agentInst) agentInst.runtime = _cache[id];\n}","import { getInfo, isValid, setInfo } from './state/info';\nimport { getConfiguration, getConfigurationValue, setConfiguration } from './state/init';\nimport { getLoaderConfig, setLoaderConfig } from './state/loader-config';\nimport { originals } from './state/originals';\nimport { getRuntime, setRuntime } from './state/runtime';\nfunction isConfigured(agentIdentifier) {\n return isValid(agentIdentifier);\n}\n\n// This module acts as a hub that bundles the static and dynamic properties used by each agent instance into one single interface\nexport { getInfo, setInfo, getConfiguration, getConfigurationValue, setConfiguration, getLoaderConfig, setLoaderConfig, originals, getRuntime, setRuntime, isConfigured };","import { warn } from '../../util/console';\nexport function getModeledObject(obj, model) {\n try {\n if (!obj || typeof obj !== 'object') return warn('Setting a Configurable requires an object as input');\n if (!model || typeof model !== 'object') return warn('Setting a Configurable requires a model to set its initial properties');\n // allow getters and setters to pass from model to target\n const output = Object.create(Object.getPrototypeOf(model), Object.getOwnPropertyDescriptors(model));\n const target = Object.keys(output).length === 0 ? obj : output;\n for (let key in target) {\n if (obj[key] === undefined) continue;\n try {\n if (obj[key] === null) {\n output[key] = null;\n continue;\n }\n if (Array.isArray(obj[key]) && Array.isArray(model[key])) output[key] = Array.from(new Set([...obj[key], ...model[key]]));else if (typeof obj[key] === 'object' && typeof model[key] === 'object') output[key] = getModeledObject(obj[key], model[key]);else output[key] = obj[key];\n } catch (e) {\n warn('An error occurred while setting a property of a Configurable', e);\n }\n }\n return output;\n } catch (err) {\n warn('An error occured while setting a Configurable', err);\n }\n}","/**\n * @file This file exposes NPM build environment variables. These variables will\n * be overridden with babel.\n */\n\n/**\n * Exposes the version of the agent\n */\nexport const VERSION = \"1.260.1\";\n\n/**\n * Exposes the build type of the agent\n * Valid values are LOCAL, PROD, DEV\n */\nexport const BUILD_ENV = 'NPM';\n\n/**\n * Exposes the distribution method of the agent\n * Valid valuse are CDN, NPM\n */\nexport const DIST_METHOD = 'NPM';\n\n/**\n * Exposes the lib version of rrweb\n */\nexport const RRWEB_VERSION = \"2.0.0-alpha.12\";","/**\n * @file Contains constants about the environment the agent is running\n * within. These values are derived at the time the agent is first loaded.\n * @copyright 2023 New Relic Corporation. All rights reserved.\n * @license Apache-2.0\n */\n\nimport { now } from '../timing/now';\n\n/**\n * Indicates if the agent is running within a normal browser window context.\n */\nexport const isBrowserScope = typeof window !== 'undefined' && !!window.document;\n\n/**\n * Indicates if the agent is running within a worker context.\n */\nexport const isWorkerScope = typeof WorkerGlobalScope !== 'undefined' && (typeof self !== 'undefined' && self instanceof WorkerGlobalScope && self.navigator instanceof WorkerNavigator || typeof globalThis !== 'undefined' && globalThis instanceof WorkerGlobalScope && globalThis.navigator instanceof WorkerNavigator);\nexport const globalScope = isBrowserScope ? window : typeof WorkerGlobalScope !== 'undefined' && (typeof self !== 'undefined' && self instanceof WorkerGlobalScope && self || typeof globalThis !== 'undefined' && globalThis instanceof WorkerGlobalScope && globalThis);\nexport const loadedAsDeferredBrowserScript = globalScope?.document?.readyState === 'complete';\nexport const initiallyHidden = Boolean(globalScope?.document?.visibilityState === 'hidden');\nexport const initialLocation = '' + globalScope?.location;\nexport const isiOS = /iPad|iPhone|iPod/.test(globalScope.navigator?.userAgent);\n\n/**\n * Shared Web Workers introduced in iOS 16.0+ and n/a in 15.6-\n *\n * It was discovered in Safari 14 (https://bugs.webkit.org/show_bug.cgi?id=225305) that the buffered flag in PerformanceObserver\n * did not work. This affects our onFCP metric in particular since web-vitals uses that flag to retrieve paint timing entries.\n * This was fixed in v16+.\n */\nexport const iOSBelow16 = isiOS && typeof SharedWorker === 'undefined';\nexport const ffVersion = (() => {\n const match = globalScope.navigator?.userAgent?.match(/Firefox[/\\s](\\d+\\.\\d+)/);\n if (Array.isArray(match) && match.length >= 2) {\n return +match[1];\n }\n return 0;\n})();\nexport const isIE = Boolean(isBrowserScope && window.document.documentMode); // deprecated property that only works in IE\n\nexport const supportsSendBeacon = !!globalScope.navigator?.sendBeacon;\n\n/**\n * Represents the absolute timestamp in milliseconds that the page was loaded\n * according to the browser's local clock.\n * @type {number}\n */\nexport const originTime = Date.now() - now();","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}","/** An array of filter objects {hostname, pathname} for identifying XHR events to be excluded from collection.\n * @see {@link https://docs.newrelic.com/docs/browser/new-relic-browser/configuration/filter-ajax-request-events/ Filter AjaxRequest events}\n * @type {Array.<{hostname: string, pathname: string}>}\n */\nvar denyList = [];\n\n/**\n * Evaluates whether an XHR event should be included for collection based on the {@link denyList|AjaxRequest deny list}.\n * @param {Object} params - object with properties of the XHR event\n * @returns {boolean} `true` if request does not match any entries of {@link denyList|deny list}; else `false`\n */\nexport function shouldCollectEvent(params) {\n if (hasUndefinedHostname(params)) return false;\n if (denyList.length === 0) return true;\n for (var i = 0; i < denyList.length; i++) {\n var parsed = denyList[i];\n if (parsed.hostname === '*') {\n return false;\n }\n if (domainMatchesPattern(parsed.hostname, params.hostname) && comparePath(parsed.pathname, params.pathname)) {\n return false;\n }\n }\n return true;\n}\nexport function hasUndefinedHostname(params) {\n return params.hostname === undefined; // requests with an undefined hostname (e.g., data URLs) should not be collected.\n}\n\n/**\n * Initializes the {@link denyList|XHR deny list} by extracting hostname and pathname from an array of filter strings.\n * @param {string[]} denyListConfig - array of URL filters to identify XHR requests to be excluded from collection\n */\nexport function setDenyList(denyListConfig) {\n denyList = [];\n if (!denyListConfig || !denyListConfig.length) {\n return;\n }\n for (var i = 0; i < denyListConfig.length; i++) {\n let url = denyListConfig[i];\n if (!url) continue; // ignore bad values like undefined or empty strings\n\n if (url.indexOf('http://') === 0) {\n url = url.substring(7);\n } else if (url.indexOf('https://') === 0) {\n url = url.substring(8);\n }\n const firstSlash = url.indexOf('/');\n let host, pathname;\n if (firstSlash > 0) {\n host = url.substring(0, firstSlash);\n pathname = url.substring(firstSlash);\n } else {\n host = url;\n pathname = '';\n }\n let [hostname] = host.split(':');\n denyList.push({\n hostname,\n pathname\n });\n }\n}\n/**\n * Returns true if the right side of `domain` (end of string) matches `pattern`.\n * @param {string} pattern - a string to be matched against the end of `domain` string\n * @param {string} domain - a domain string with no protocol or path (e.g., app1.example.com)\n * @returns {boolean} `true` if domain matches pattern; else `false`\n */\nfunction domainMatchesPattern(pattern, domain) {\n if (pattern.length > domain.length) {\n return false;\n }\n return domain.indexOf(pattern) === domain.length - pattern.length;\n}\n\n/**\n * Returns true if a URL path matches a pattern string, disregarding leading slashes.\n * @param {string} pattern - a string to compare with path (e.g., api/v1)\n * @param {string} path - a string representing a URL path (e.g., /api/v1)\n * @returns {boolean} `true` if path and pattern are an exact string match (except for leading slashes); else `false`\n */\nfunction comparePath(pattern, path) {\n if (pattern.indexOf('/') === 0) {\n pattern = pattern.substring(1);\n }\n if (path.indexOf('/') === 0) {\n path = path.substring(1);\n }\n\n // No path in pattern means match all paths.\n if (pattern === '') {\n return true;\n }\n return pattern === path;\n}","/*\n * Copyright 2020 New Relic Corporation. All rights reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { ee } from '../event-emitter/contextual-ee';\nimport { mapOwn } from '../util/map-own';\nimport { registerHandler as defaultRegister } from '../event-emitter/register-handler';\nimport { featurePriority } from '../../loaders/features/features';\nconst registry = {};\n\n/**\n * Adds an entry to the centralized drain registry specifying that a particular agent has events of a particular named\n * event-group \"bucket\" that should be drained at the time the agent drains all its buffered events. Buffered events\n * accumulate because instrumentation begins as soon as possible, before the agent has finished lazy-loading the code\n * responsible for aggregating and reporting captured data.\n * @param {string} agentIdentifier - A 16 character string uniquely identifying the agent.\n * @param {string} group - The named \"bucket\" for the events this feature will be bucketing for later collection.\n */\nexport function registerDrain(agentIdentifier, group) {\n // Here `item` captures the registered properties of a feature-group: whether it is ready for its buffered events\n // to be drained (`staged`) and the `priority` order in which it should be drained relative to other feature groups.\n const item = {\n staged: false,\n priority: featurePriority[group] || 0\n };\n curateRegistry(agentIdentifier);\n if (!registry[agentIdentifier].get(group)) registry[agentIdentifier].set(group, item);\n}\n\n/**\n * Removes an item from the registry and immediately re-checks if the registry is ready to \"drain all\"\n * @param {*} agentIdentifier - A 16 character string uniquely identifying the agent.\n * @param {*} group - The named \"bucket\" to be removed from the registry\n */\nexport function deregisterDrain(agentIdentifier, group) {\n curateRegistry(agentIdentifier);\n if (registry[agentIdentifier].get(group)) registry[agentIdentifier].delete(group);\n if (registry[agentIdentifier].size) checkCanDrainAll(agentIdentifier);\n}\n\n/**\n * Registers the specified agent with the centralized event buffer registry if it is not already registered.\n * Agents without an identifier (as in the case of some tests) will be excluded from the registry.\n * @param {string} agentIdentifier - A 16 character string uniquely identifying an agent.\n */\nfunction curateRegistry(agentIdentifier) {\n if (!agentIdentifier) throw new Error('agentIdentifier required');\n if (!registry[agentIdentifier]) registry[agentIdentifier] = new Map();\n}\n\n/**\n * Drain buffered events out of the event emitter. Each feature should have its events bucketed by \"group\" and drain\n * its own named group explicitly, when ready.\n * @param {string} agentIdentifier - A unique 16 character ID corresponding to an instantiated agent.\n * @param {string} featureName - A named group into which the feature's buffered events are bucketed.\n * @param {boolean} force - Whether to force the drain to occur immediately, bypassing the registry and staging logic.\n */\nexport function drain() {\n let agentIdentifier = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n let featureName = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'feature';\n let force = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n curateRegistry(agentIdentifier);\n // If the feature for the specified agent is not in the registry, that means the instrument file was bypassed.\n // This could happen in tests, or loaders that directly import the aggregator. In these cases it is safe to\n // drain the feature group immediately rather than waiting to drain all at once.\n if (!agentIdentifier || !registry[agentIdentifier].get(featureName) || force) return drainGroup(agentIdentifier, featureName);\n\n // When `drain` is called, this feature is ready to drain (staged).\n registry[agentIdentifier].get(featureName).staged = true;\n checkCanDrainAll(agentIdentifier);\n}\n\n/** Checks all items in the registry to see if they have been \"staged\". If ALL items are staged, it will drain all registry items (drainGroup). It not, nothing will happen */\nfunction checkCanDrainAll(agentIdentifier) {\n // Only when the event-groups for all features are ready to drain (staged) do we execute the drain. This has the effect\n // that the last feature to call drain triggers drain for all features.\n const items = Array.from(registry[agentIdentifier]);\n if (items.every(_ref => {\n let [key, values] = _ref;\n return values.staged;\n })) {\n items.sort((a, b) => a[1].priority - b[1].priority);\n items.forEach(_ref2 => {\n let [group] = _ref2;\n registry[agentIdentifier].delete(group);\n drainGroup(agentIdentifier, group);\n });\n }\n}\n\n/**\n * Drains all the buffered (backlog) events for a particular feature's event-group by emitting each event to each of\n * the subscribed handlers for the group.\n * @param {*} group - The name of a particular feature's event \"bucket\".\n */\nfunction drainGroup(agentIdentifier, group) {\n const baseEE = agentIdentifier ? ee.get(agentIdentifier) : ee;\n const handlers = defaultRegister.handlers; // other storage in registerHandler\n if (!baseEE.backlog || !handlers) return;\n var bufferedEventsInGroup = baseEE.backlog[group];\n var groupHandlers = handlers[group]; // each group in the registerHandler storage\n if (groupHandlers) {\n // We don't cache the length of the buffer while looping because events might still be added while processing.\n for (var i = 0; bufferedEventsInGroup && i < bufferedEventsInGroup.length; ++i) {\n // eslint-disable-line no-unmodified-loop-condition\n emitEvent(bufferedEventsInGroup[i], groupHandlers);\n }\n mapOwn(groupHandlers, function (eventType, handlerRegistrationList) {\n mapOwn(handlerRegistrationList, function (i, registration) {\n // registration is an array of: [targetEE, eventHandler]\n registration[0].on(eventType, registration[1]);\n });\n });\n }\n if (!baseEE.isolatedBacklog) delete handlers[group];\n baseEE.backlog[group] = null;\n baseEE.emit('drain-' + group, []);\n}\n\n/**\n * Processes the specified event using all relevant handler functions associated with a particular feature, based on\n * whether the the handler is meant to apply to events of this type. (Event type is a descriptive string set at the\n * time an event is originally created by instrumentation, as with calls to the `handle` method.)\n * @param {*} evt - A single event to be emitted to (processed by) eligible handler functions.\n * @param {*} groupHandlers - A set of handler functions associated with a particular feature's event-group.\n */\nfunction emitEvent(evt, groupHandlers) {\n var type = evt[1];\n mapOwn(groupHandlers[type], function (i, registration) {\n var sourceEE = evt[0];\n var ee = registration[0];\n if (ee === sourceEE) {\n var handler = registration[1];\n var ctx = evt[3];\n var args = evt[2];\n handler.apply(ctx, args);\n }\n });\n}","export class EventContext {\n constructor(contextId) {\n this.contextId = contextId;\n }\n}","/*\n * Copyright 2020 New Relic Corporation. All rights reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { gosNREUM } from '../window/nreum';\nimport { getOrSet } from '../util/get-or-set';\nimport { getRuntime } from '../config/config';\nimport { EventContext } from './event-context';\nimport { bundleId } from '../ids/bundle-id';\n\n// create a unique id to store event context data for the current agent bundle\nconst contextId = \"nr@context:\".concat(bundleId);\n// create global emitter instance that can be shared among bundles\nconst globalInstance = ee(undefined, 'globalEE');\n\n// Only override the exposed event emitter if one has not already been exposed\nconst nr = gosNREUM();\nif (!nr.ee) {\n nr.ee = globalInstance;\n}\nexport { globalInstance as ee, contextId };\nfunction ee(old, debugId) {\n var handlers = {};\n var bufferGroupMap = {};\n var emitters = {};\n // In cases where multiple agents can run on a page, the event backlogs of feature event emitters must be isolated\n // to prevent event emitter context and buffers from \"bubbling up\" to other agents operating in the scope.\n // An example of this is our MicroAgent loader package, which sets this property to true to prevent overlap.\n var isolatedBacklog = false;\n try {\n // We only want to check the runtime configuration for `isolatedBacklog` if the event emitter belongs to a feature.\n // For feature event emitters, the debugId will be an agentIdentifier with a length of 16. In contrast, some of our\n // tests do not namespace the event emitter with an agentID and just use the parent (which has no ID).\n isolatedBacklog = debugId.length !== 16 ? false : getRuntime(debugId).isolatedBacklog;\n } catch (err) {\n // Do nothing for now.\n }\n var emitter = {\n on: addEventListener,\n addEventListener,\n removeEventListener,\n emit,\n get: getOrCreate,\n listeners,\n context,\n buffer: bufferEventsByGroup,\n abort,\n isBuffering,\n debugId,\n backlog: isolatedBacklog ? {} : old && typeof old.backlog === 'object' ? old.backlog : {},\n isolatedBacklog\n };\n function abort() {\n emitter._aborted = true;\n Object.keys(emitter.backlog).forEach(key => {\n delete emitter.backlog[key];\n });\n }\n Object.defineProperty(emitter, 'aborted', {\n get: () => {\n let aborted = emitter._aborted || false;\n if (aborted) return aborted;else if (old) {\n aborted = old.aborted;\n }\n return aborted;\n }\n });\n return emitter;\n function context(contextOrStore) {\n if (contextOrStore && contextOrStore instanceof EventContext) {\n return contextOrStore;\n } else if (contextOrStore) {\n return getOrSet(contextOrStore, contextId, () => new EventContext(contextId));\n } else {\n return new EventContext(contextId);\n }\n }\n function emit(type, args, contextOrStore, force, bubble) {\n if (bubble !== false) bubble = true;\n if (globalInstance.aborted && !force) {\n return;\n }\n if (old && bubble) old.emit(type, args, contextOrStore);\n var ctx = context(contextOrStore);\n var handlersArray = listeners(type);\n var len = handlersArray.length;\n\n // Apply each handler function in the order they were added\n // to the context with the arguments\n\n for (var i = 0; i < len; i++) handlersArray[i].apply(ctx, args);\n\n // Buffer after emitting for consistent ordering\n var bufferGroup = getBuffer()[bufferGroupMap[type]];\n if (bufferGroup) {\n bufferGroup.push([emitter, type, args, ctx]);\n }\n\n // Return the context so that the module that emitted can see what was done.\n return ctx;\n }\n function addEventListener(type, fn) {\n // Retrieve type from handlers, if it doesn't exist assign the default and retrieve it.\n handlers[type] = listeners(type).concat(fn);\n }\n function removeEventListener(type, fn) {\n var listeners = handlers[type];\n if (!listeners) return;\n for (var i = 0; i < listeners.length; i++) {\n if (listeners[i] === fn) {\n listeners.splice(i, 1);\n }\n }\n }\n function listeners(type) {\n return handlers[type] || [];\n }\n function getOrCreate(name) {\n return emitters[name] = emitters[name] || ee(emitter, name);\n }\n function bufferEventsByGroup(types, group) {\n const eventBuffer = getBuffer();\n group = group || 'feature';\n\n // do not buffer events if agent has been aborted\n if (emitter.aborted) return;\n Object.entries(types || {}).forEach(_ref => {\n let [_, type] = _ref;\n bufferGroupMap[type] = group;\n if (!(group in eventBuffer)) {\n eventBuffer[group] = [];\n }\n });\n }\n function isBuffering(type) {\n var bufferGroup = getBuffer()[bufferGroupMap[type]];\n return !!bufferGroup;\n }\n\n // buffer is associated with a base emitter, since there are two\n // (global and scoped to the current bundle), it is now part of the emitter\n function getBuffer() {\n return emitter.backlog;\n }\n}","/*\n * Copyright 2020 New Relic Corporation. All rights reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { ee as globalInstance } from './contextual-ee';\nexport var handleEE = globalInstance.get('handle');\nexport function handle(type, args, ctx, group, ee) {\n if (ee) {\n ee.buffer([type], group);\n ee.emit(type, args, ctx);\n } else {\n handleEE.buffer([type], group);\n handleEE.emit(type, args, ctx);\n }\n}","/*\n * Copyright 2020 New Relic Corporation. All rights reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { handleEE } from './handle';\nexport { defaultRegister as registerHandler };\ndefaultRegister.on = registerWithSpecificEmitter;\nvar handlers = defaultRegister.handlers = {};\nexport function defaultRegister(type, handler, group, ee) {\n registerWithSpecificEmitter(ee || handleEE, handlers, type, handler, group);\n}\nfunction registerWithSpecificEmitter(ee, handlers, type, handler, group) {\n if (!group) group = 'feature';\n if (!ee) ee = handleEE;\n var groupHandlers = handlers[group] = handlers[group] || {};\n var list = groupHandlers[type] = groupHandlers[type] || [];\n list.push([ee, handler]);\n}","import { globalScope } from '../constants/runtime';\n\n/*\n * See https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener#safely_detecting_option_support\n */\nlet passiveSupported = false;\nlet signalSupported = false;\ntry {\n const options = {\n get passive() {\n // this function will be called when the browser attempts to access the passive property\n passiveSupported = true;\n return false;\n },\n get signal() {\n signalSupported = true;\n return false;\n }\n };\n globalScope.addEventListener('test', null, options);\n globalScope.removeEventListener('test', null, options);\n} catch (err) {}\nexport function eventListenerOpts(useCapture, abortSignal) {\n return passiveSupported || signalSupported ? {\n capture: !!useCapture,\n passive: passiveSupported,\n // passive defaults to false\n signal: abortSignal\n } : !!useCapture; // mainly just IE11 doesn't support third param options under EventTarget API\n}\n\n/** Do not use this within the worker context. */\nexport function windowAddEventListener(event, listener) {\n let capture = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n let abortSignal = arguments.length > 3 ? arguments[3] : undefined;\n window.addEventListener(event, listener, eventListenerOpts(capture, abortSignal));\n}\n/** Do not use this within the worker context. */\nexport function documentAddEventListener(event, listener) {\n let capture = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n let abortSignal = arguments.length > 3 ? arguments[3] : undefined;\n document.addEventListener(event, listener, eventListenerOpts(capture, abortSignal));\n}","/**\n * @file Contains a unique identifier for the running agent bundle\n * when loaded.\n * @copyright 2023 New Relic Corporation. All rights reserved.\n * @license Apache-2.0\n */\n\nimport { generateUuid } from './unique-id';\n\n/**\n * Provides a unique id for the current agent bundle\n */\nexport const bundleId = generateUuid();","/*\n * Copyright 2020 New Relic Corporation. All rights reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { globalScope } from '../constants/runtime';\nconst uuidv4Template = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx';\n\n/**\n * Creates a random single hexadecimal value from a provided random value\n * table and corresponding index. If a random value table is not provided,\n * Math.random will be used to generate the value.\n *\n * @param {Uint8Array} valueTable Random value table typically generated using\n * the built-in crypto engine.\n * @param {int} tableIndex The index of the value table to use for generating\n * the hexadecimal value.\n * @returns {int} single hexadecimal value in decimal format\n */\nfunction getRandomValue(valueTable, tableIndex) {\n if (valueTable) {\n /**\n * The value table could have any number value in the given index. Use\n * bitwise AND to ensure the value we generate is a valid hex value.\n * x & 15 will ensure the value converted to hex using `toString(16)`\n * falls within the range of 0 and 15 inclusively.\n */\n return valueTable[tableIndex] & 15;\n } else {\n return Math.random() * 16 | 0;\n }\n}\n\n/**\n * Generates a RFC compliant UUIDv4 using native browser crypto engine. If the browser\n * does not support the crypto engine, the function will fallback to insecure Math.random()\n * @returns {string} uuid version 4 string\n */\nexport function generateUuid() {\n const crypto = globalScope?.crypto || globalScope?.msCrypto;\n let randomValueTable;\n let randomValueIndex = 0;\n if (crypto && crypto.getRandomValues) {\n // For a UUID, we only need 30 characters since two characters are pre-defined\n // eslint-disable-next-line\n randomValueTable = crypto.getRandomValues(new Uint8Array(30));\n }\n return uuidv4Template.split('').map(templateInput => {\n if (templateInput === 'x') {\n return getRandomValue(randomValueTable, randomValueIndex++).toString(16);\n } else if (templateInput === 'y') {\n // this is the uuid variant per spec (8, 9, a, b)\n // % 4, then shift to get values 8-11\n return (getRandomValue() & 0x3 | 0x8).toString(16);\n } else {\n return templateInput;\n }\n }).join('');\n}\n\n/**\n * Generates a string of the given length containing only hexadecimal\n * value 0-9 and a-f.\n * @param {int} length length of the string to generate\n * @returns {string} generated hex string\n */\nexport function generateRandomHexString(length) {\n const crypto = globalScope?.crypto || globalScope?.msCrypto;\n let randomValueTable;\n let randomValueIndex = 0;\n if (crypto && crypto.getRandomValues) {\n // eslint-disable-next-line\n randomValueTable = crypto.getRandomValues(new Uint8Array(length));\n }\n const chars = [];\n for (var i = 0; i < length; i++) {\n chars.push(getRandomValue(randomValueTable, randomValueIndex++).toString(16));\n }\n return chars.join('');\n}\n\n/**\n * Generates a 16 character length hexadecimal string.\n * per DT-spec.\n * @see generateRandomHexString\n * @returns {string} generated hex string\n */\nexport function generateSpanId() {\n return generateRandomHexString(16);\n}\n\n/**\n * Generates a 32 character length hexadecimal string.\n * per DT-spec.\n * @see generateRandomHexString\n * @returns {string} generated hex string\n */\nexport function generateTraceId() {\n return generateRandomHexString(32);\n}","export const PREFIX = 'NRBA';\nexport const DEFAULT_KEY = 'SESSION';\nexport const DEFAULT_EXPIRES_MS = 14400000;\nexport const DEFAULT_INACTIVE_MS = 1800000;\nexport const SESSION_EVENTS = {\n STARTED: 'session-started',\n PAUSE: 'session-pause',\n RESET: 'session-reset',\n RESUME: 'session-resume',\n UPDATE: 'session-update'\n};\nexport const SESSION_EVENT_TYPES = {\n SAME_TAB: 'same-tab',\n CROSS_TAB: 'cross-tab'\n};\nexport const MODE = {\n OFF: 0,\n FULL: 1,\n ERROR: 2\n};","/*\n * Copyright 2020 New Relic Corporation. All rights reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\n// This is our own layer around performance.now. It's not strictly necessary, but we keep it in case of future mod-ing of the value for refactor purpose.\nexport function now() {\n return Math.floor(performance.now());\n}","/*\n * Copyright 2020 New Relic Corporation. All rights reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { globalScope } from '../constants/runtime';\nexport function parseUrl(url) {\n // Return if URL is a data URL, parseUrl assumes urls are http/https\n if ((url || '').indexOf('data:') === 0) {\n return {\n protocol: 'data'\n };\n }\n try {\n const parsedUrl = new URL(url, location.href);\n const returnVal = {\n port: parsedUrl.port,\n hostname: parsedUrl.hostname,\n pathname: parsedUrl.pathname,\n search: parsedUrl.search,\n protocol: parsedUrl.protocol.slice(0, parsedUrl.protocol.indexOf(':')),\n sameOrigin: parsedUrl.protocol === globalScope?.location?.protocol && parsedUrl.host === globalScope?.location?.host\n };\n if (!returnVal.port || returnVal.port === '') {\n if (parsedUrl.protocol === 'http:') returnVal.port = '80';\n if (parsedUrl.protocol === 'https:') returnVal.port = '443';\n }\n if (!returnVal.pathname || returnVal.pathname === '') {\n returnVal.pathname = '/';\n } else if (!returnVal.pathname.startsWith('/')) {\n returnVal.pathname = \"/\".concat(returnVal.pathname);\n }\n return returnVal;\n } catch (err) {\n return {};\n }\n}","/**\n * A helper method to warn to the console with New Relic: decoration\n * @param {string} message The primary message to warn\n * @param {*} [secondary] Secondary data to include, usually an error or object\n * @returns\n */\nexport function warn(message, secondary) {\n if (typeof console.warn !== 'function') return;\n console.warn(\"New Relic: \".concat(message));\n if (secondary) console.warn(secondary);\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}","/*\n * Copyright 2020 New Relic Corporation. All rights reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nvar has = Object.prototype.hasOwnProperty;\n\n/**\n * Always returns the current value of obj[prop], even if it has to set it first. Sets properties as non-enumerable if possible.\n *\n * @param {Object} obj - The object to get or set the property on.\n * @param {string} prop - The name of the property.\n * @param {Function} getVal - A function that returns the value to be set if the property does not exist.\n * @returns {*} The value of the property in the object.\n */\nexport function getOrSet(obj, prop, getVal) {\n // If the value exists return it.\n if (has.call(obj, prop)) return obj[prop];\n var val = getVal();\n\n // Attempt to set the property so it's not enumerable\n if (Object.defineProperty && Object.keys) {\n try {\n Object.defineProperty(obj, prop, {\n value: val,\n // old IE inherits non-write-ability\n writable: true,\n enumerable: false\n });\n return val;\n } catch (e) {\n // Can't report internal errors,\n // because GOS is a dependency of the reporting mechanisms\n }\n }\n\n // fall back to setting normally\n obj[prop] = val;\n return val;\n}","/**\n * Reduce the invocation of the supplied function so that it is only invoked\n * once within a given timeout.\n *\n * If `wait` is `0`, the function will be invoked during the next tick.\n * If `options.leading` is false or not provided, the function will be invoked\n * N milliseconds after the last invocation of the returned function where\n * N is the `timeout` value.\n * If `options.leading` is true, the function will be invoked immediately upon\n * the first invocation of the returned function and not again for N milliseconds\n * where N is the `timeout` value.\n * @param {function} func Function whose invocation should be limited so it is only invoked\n * once within a given timeout period.\n * @param {number} timeout Time in milliseconds that the function should only be invoked\n * once within.\n * @param {object} options Debounce options\n * @param {boolean} options.leading Forces the function to be invoked on the first\n * invocation of the returned function instead of N milliseconds after the last\n * invocation.\n * @returns {function} A wrapping function that will ensure the provided function\n * is invoked only once within the given timeout.\n */\nexport function debounce(func) {\n var _this = this;\n let timeout = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 500;\n let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n const leading = options?.leading || false;\n let timer;\n return function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n if (leading && timer === undefined) {\n func.apply(_this, args);\n timer = setTimeout(() => {\n timer = clearTimeout(timer);\n }, timeout);\n }\n if (!leading) {\n clearTimeout(timer);\n timer = setTimeout(() => {\n func.apply(_this, args);\n }, timeout);\n }\n };\n}\n\n/**\n * Reduce the invocation of the supplied function so that it is only invoked\n * once.\n * @param {function} func Function whose invocation should be limited so it is only invoked\n * once.\n * @returns {function} A wrapping function that will ensure the provided function\n * is invoked only once.\n */\nexport function single(func) {\n var _this2 = this;\n let called = false;\n return function () {\n if (!called) {\n called = true;\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n func.apply(_this2, args);\n }\n };\n}","/*\n * Copyright 2020 New Relic Corporation. All rights reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\n/**\n * @typedef {function} MapOwnCallback\n * @param {string} key Object key\n * @param {any} value Object value\n * @returns {any}\n */\n\n/**\n * Iterates the own enumerable properties of an object passing the key and value pair to a given\n * callback function.\n * @param {object} obj Input object to iterate over. If null or undefined, an empty array will be returned.\n * @param {MapOwnCallback} fn A callback function called for each property. The callback should take the key\n * and value from the object iteration and return some value.\n * @returns {any[]} An array of values returned by the callback function.\n */\nexport const mapOwn = (obj, fn) => Object.entries(obj || {}).map(_ref => {\n let [key, value] = _ref;\n return fn(key, value);\n});","/*\n * Copyright 2020 New Relic Corporation. All rights reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { ee } from '../event-emitter/contextual-ee';\n\n/**\n * Returns a function for use as a replacer parameter in JSON.stringify() to handle circular references.\n * @see {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Errors/Cyclic_object_value MDN - Cyclical object value}\n * @returns {Function} A function that filters out values it has seen before.\n */\nconst getCircularReplacer = () => {\n const seen = new WeakSet();\n return (key, value) => {\n if (typeof value === 'object' && value !== null) {\n if (seen.has(value)) {\n return;\n }\n seen.add(value);\n }\n return value;\n };\n};\n\n/**\n * The native JSON.stringify method augmented with a replacer function to handle circular references.\n * Circular references will be excluded from the JSON output rather than triggering errors.\n * @param {*} val - A value to be converted to a JSON string.\n * @returns {string} A JSON string representation of the value, with circular references handled.\n */\nexport function stringify(val) {\n try {\n return JSON.stringify(val, getCircularReplacer());\n } catch (e) {\n try {\n ee.emit('internal-error', [e]);\n } catch (err) {\n // do nothing\n }\n }\n}","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 { globalScope } from '../constants/runtime';\nimport { now } from '../timing/now';\nexport const defaults = {\n beacon: 'bam.nr-data.net',\n errorBeacon: 'bam.nr-data.net'\n};\nexport function gosNREUM() {\n if (!globalScope.NREUM) {\n globalScope.NREUM = {};\n }\n if (typeof globalScope.newrelic === 'undefined') globalScope.newrelic = globalScope.NREUM;\n return globalScope.NREUM;\n}\nexport function gosNREUMInfo() {\n let nr = gosNREUM();\n const externallySupplied = nr.info || {};\n nr.info = {\n beacon: defaults.beacon,\n errorBeacon: defaults.errorBeacon,\n ...externallySupplied\n };\n return nr;\n}\nexport function gosNREUMLoaderConfig() {\n let nr = gosNREUM();\n const externallySupplied = nr.loader_config || {};\n nr.loader_config = {\n ...externallySupplied\n };\n return nr;\n}\nexport function gosNREUMInit() {\n let nr = gosNREUM();\n const externallySupplied = nr.init || {};\n nr.init = {\n ...externallySupplied\n };\n return nr;\n}\nexport function gosNREUMOriginals() {\n let nr = gosNREUM();\n if (!nr.o) {\n nr.o = {\n ST: globalScope.setTimeout,\n SI: globalScope.setImmediate,\n CT: globalScope.clearTimeout,\n XHR: globalScope.XMLHttpRequest,\n REQ: globalScope.Request,\n EV: globalScope.Event,\n PR: globalScope.Promise,\n MO: globalScope.MutationObserver,\n // this'll be undefined if not in a web window\n FETCH: globalScope.fetch\n };\n }\n return nr;\n}\nexport function setNREUMInitializedAgent(id, newAgentInstance) {\n let nr = gosNREUM();\n nr.initializedAgents ??= {};\n newAgentInstance.initializedAt = {\n ms: now(),\n date: new Date()\n };\n nr.initializedAgents[id] = newAgentInstance;\n}\n\n/**\n * Get the agent instance under the associated identifier on the global newrelic object.\n * @see setNREUMInitializedAgents\n * @returns Existing agent instance under newrelic.initializedAgent[id], or undefined if it does not exist.\n */\nexport function getNREUMInitializedAgent(id) {\n let nr = gosNREUM();\n return nr.initializedAgents?.[id];\n}\nexport function addToNREUM(fnName, fn) {\n let nr = gosNREUM();\n nr[fnName] = fn;\n}\nexport function NREUMinitialized() {\n const nr = gosNREUM();\n nr.initialized = true;\n}\nexport function gosCDN() {\n gosNREUMInfo();\n gosNREUMInit();\n gosNREUMOriginals();\n gosNREUMLoaderConfig();\n return gosNREUM();\n}","/*\n * Copyright 2020 New Relic Corporation. All rights reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { documentAddEventListener } from '../event-listener/event-listener-opts';\n\n/**\n * @param {function} cb - called when a visibility change occurs with the vis state at that time\n * @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\n * @returns void\n */\nexport function subscribeToVisibilityChange(cb) {\n let toHiddenOnly = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n let capture = arguments.length > 2 ? arguments[2] : undefined;\n let abortSignal = arguments.length > 3 ? arguments[3] : undefined;\n documentAddEventListener('visibilitychange', handleVisibilityChange, capture, abortSignal);\n function handleVisibilityChange() {\n if (toHiddenOnly) {\n // trigger cb on change to hidden state only\n if (document.visibilityState === 'hidden') cb();\n return;\n }\n cb(document.visibilityState);\n }\n}","/*\n * Copyright 2020 New Relic Corporation. All rights reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n/**\n * @file Provides helper functions for wrapping functions in various scenarios.\n */\n\nimport { ee } from '../event-emitter/contextual-ee';\nimport { bundleId } from '../ids/bundle-id';\nexport const flag = \"nr@original:\".concat(bundleId);\n\n/**\n * A convenience alias of `hasOwnProperty`.\n * @type {function}\n */\nvar has = Object.prototype.hasOwnProperty;\n\n/**\n * For tracking whether an event is already being emitted inside the wrapper.\n * @type {boolean}\n */\nvar inWrapper = false;\n\n// eslint-disable-next-line\nexport default createWrapperWithEmitter;\n\n/**\n * Wraps a function in order to emit events on start, end, and error.\n * @param {Object} [emitter] - The desired emitter for events emitted by the wrapper. Defaults to the global emitter.\n * @param {boolean} always - If `true`, emit events even if already emitting an event.\n * @returns {function} The wrapped function.\n */\nexport function createWrapperWithEmitter(emitter, always) {\n emitter || (emitter = ee);\n wrapFn.inPlace = inPlace;\n\n /**\n * A flag used to determine if a native function has already been wrapped.\n * As a property on a wrapped function, contains the original function.\n * @type {string}\n */\n wrapFn.flag = flag;\n return wrapFn;\n\n /**\n * Wraps a function with event emitting functionality.\n * @param {function} fn - The function to wrap.\n * @param {string} prefix - A prefix for the names of emitted events.\n * @param {function|object} getContext - The function or object that will serve as the 'this' context for handlers of events emitted by this wrapper.\n * @param {string} methodName - The name of the method being wrapped.\n * @param {boolean} bubble - If true, emitted events should also bubble up to the old emitter upon which the `emitter` in the current scope was based (if it defines one).\n * @returns {function} The wrapped function.\n */\n function wrapFn(fn, prefix, getContext, methodName, bubble) {\n // Unless fn is both wrappable and unwrapped, return it unchanged.\n if (notWrappable(fn)) return fn;\n if (!prefix) prefix = '';\n nrWrapper[flag] = fn;\n copy(fn, nrWrapper, emitter);\n return nrWrapper;\n\n /**\n * A wrapper function that emits events before and after calling the wrapped function.\n * Any arguments will be passed along to the original function.\n * @returns {any} The return value of the wrapped function.\n */\n function nrWrapper() {\n var args;\n var originalThis;\n var ctx;\n var result;\n try {\n originalThis = this;\n args = [...arguments];\n if (typeof getContext === 'function') {\n ctx = getContext(args, originalThis);\n } else {\n ctx = getContext || {};\n }\n } catch (e) {\n report([e, '', [args, originalThis, methodName], ctx], emitter);\n }\n\n // Warning: start events may mutate args!\n safeEmit(prefix + 'start', [args, originalThis, methodName], ctx, bubble);\n try {\n result = fn.apply(originalThis, args);\n return result;\n } catch (err) {\n safeEmit(prefix + 'err', [args, originalThis, err], ctx, bubble);\n\n // rethrow error so we don't effect execution by observing.\n throw err;\n } finally {\n // happens no matter what.\n safeEmit(prefix + 'end', [args, originalThis, result], ctx, bubble);\n }\n }\n }\n\n /**\n * Creates wrapper functions around each of an array of methods on a specified object.\n * @param {Object} obj The object to which the specified methods belong.\n * @param {string[]} methods An array of method names to be wrapped.\n * @param {string} [prefix=''] A prefix to add to the names of emitted events. If `-` is the first character, also\n * adds the method name before the prefix.\n * @param {function|object} [getContext] The function or object that will serve as the 'this' context for handlers\n * of events emitted by this wrapper.\n * @param {boolean} [bubble=false] If `true`, emitted events should also bubble up to the old emitter upon which\n * the `emitter` in the current scope was based (if it defines one).\n */\n function inPlace(obj, methods, prefix, getContext, bubble) {\n if (!prefix) prefix = '';\n\n // If prefix starts with '-' set this boolean to add the method name to the prefix before passing each one to wrap.\n const prependMethodPrefix = prefix.charAt(0) === '-';\n for (let i = 0; i < methods.length; i++) {\n const method = methods[i];\n const fn = obj[method];\n\n // Unless fn is both wrappable and unwrapped, bail so we don't add extra properties with undefined values.\n if (notWrappable(fn)) continue;\n obj[method] = wrapFn(fn, prependMethodPrefix ? method + prefix : prefix, getContext, method, bubble);\n }\n }\n\n /**\n * Emits an event using the `emit` method of the `emitter` object in the executing scope, but only if an event is not\n * already being emitted (except when the executing scope defines `always` as `true`).\n * @param {string} evt - The name of the event to be emitted.\n * @param {array} arr - An array of arguments to pass with the event.\n * @param {Object} store - The function or object that will serve as the 'this'\n * context when applying handler functions for this event.\n * @param {boolean} bubble - If `true`, emitted events should also\n * bubble up to the old emitter upon which the `emitter` in the\n * executing scope was based (if it defines one).\n */\n function safeEmit(evt, arr, store, bubble) {\n if (inWrapper && !always) return;\n var prev = inWrapper;\n inWrapper = true;\n try {\n emitter.emit(evt, arr, store, always, bubble);\n } catch (e) {\n report([e, evt, arr, store], emitter);\n }\n inWrapper = prev;\n }\n}\n\n/**\n * Emits an \"internal-error\" event. Used to report errors encountered when emitting events using `safeEmit`.\n * @param {array} args - Arguments to be passed to the \"internal-error\" event.\n * @param {Object} [emitter] - The (optional) desired event emitter. Defaults to the global event emitter.\n */\nfunction report(args, emitter) {\n emitter || (emitter = ee);\n try {\n emitter.emit('internal-error', args);\n } catch (err) {\n // do nothing\n }\n}\n\n/**\n * Copies properties from one object to another. Used for creating a wrapper function from an original function and for\n * copying an original function to a property of a wrapper function named by `flag` in the executing context.\n * @param {Object} from - The source function or object.\n * @param {Object} to - The destination function or object.\n * @param {Object} [emitter] - The (optional) desired event emitter if errors are encountered while copying.\n * Defaults to the global event emitter.\n * @returns {object} - The destination founction or object with copied properties.\n */\nfunction copy(from, to, emitter) {\n if (Object.defineProperty && Object.keys) {\n // Create accessors that proxy to actual function\n try {\n var keys = Object.keys(from);\n // eslint-disable-next-line\n keys.forEach(function (key) {\n Object.defineProperty(to, key, {\n get: function () {\n return from[key];\n },\n // eslint-disable-next-line\n set: function (val) {\n from[key] = val;\n return val;\n }\n });\n });\n return to;\n } catch (e) {\n report([e], emitter);\n }\n }\n // fall back to copying properties\n for (var i in from) {\n if (has.call(from, i)) {\n to[i] = from[i];\n }\n }\n return to;\n}\n\n/**\n * Determines whether a function is eligible to be wrapped in part based on whether it has already been wrapped.\n * @param {function} fn - The function in question.\n * @returns {boolean} Whether the passed function is ineligible to be wrapped.\n */\nfunction notWrappable(fn) {\n return !(fn && typeof fn === 'function' && fn.apply && !fn[flag]);\n}","/*\n * Copyright 2020 New Relic Corporation. All rights reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n/**\n * @file Wraps `addEventListener` and `removeEventListener` for instrumentation.\n * This module is used directly by: session_trace.\n * It is also called by -> wrapXhr <-, so see \"wrap-xhr.js\" for features that use this indirectly.\n */\nimport { ee as baseEE, contextId } from '../event-emitter/contextual-ee';\nimport { createWrapperWithEmitter as wfn } from './wrap-function';\nimport { getOrSet } from '../util/get-or-set';\nimport { globalScope, isBrowserScope } from '../constants/runtime';\nconst wrapped = {};\nconst XHR = globalScope.XMLHttpRequest;\nconst ADD_EVENT_LISTENER = 'addEventListener';\nconst REMOVE_EVENT_LISTENER = 'removeEventListener';\nconst flag = \"nr@wrapped:\".concat(contextId);\n\n/**\n * Wraps `addEventListener` and `removeEventListener` on: global scope; the prototype of `XMLHttpRequest`, and\n * `document` (if in a browser scope). Adds custom events in context of a new emitter scoped only to these methods.\n * @param {Object} sharedEE - The shared event emitter on which a new scoped\n * event emitter will be based.\n * @returns {Object} Scoped event emitter with a debug ID of `events`.\n */\nexport function wrapEvents(sharedEE) {\n var ee = scopedEE(sharedEE);\n\n // Notice if our wrapping never ran yet, the falsy NaN will not early return; but if it has,\n // then we increment the count to track # of feats using this at runtime.\n if (wrapped[ee.debugId]++) return ee;\n wrapped[ee.debugId] = 1; // otherwise, first feature to wrap events\n var wrapFn = wfn(ee, true);\n\n // Guard against instrumenting environments w/o necessary features\n if ('getPrototypeOf' in Object) {\n if (isBrowserScope) findEventListenerProtoAndCb(document, wrapNode);\n findEventListenerProtoAndCb(globalScope, wrapNode);\n findEventListenerProtoAndCb(XHR.prototype, wrapNode);\n }\n ee.on(ADD_EVENT_LISTENER + '-start', function (args, target) {\n var originalListener = args[1];\n if (originalListener === null || typeof originalListener !== 'function' && typeof originalListener !== 'object') {\n return;\n }\n var wrapped = getOrSet(originalListener, flag, function () {\n var listener = {\n object: wrapHandleEvent,\n function: originalListener\n }[typeof originalListener];\n return listener ? wrapFn(listener, 'fn-', null, listener.name || 'anonymous') : originalListener;\n function wrapHandleEvent() {\n if (typeof originalListener.handleEvent !== 'function') return;\n return originalListener.handleEvent.apply(originalListener, arguments);\n }\n });\n this.wrapped = args[1] = wrapped;\n });\n ee.on(REMOVE_EVENT_LISTENER + '-start', function (args) {\n args[1] = this.wrapped || args[1];\n });\n function wrapNode(node) {\n wrapFn.inPlace(node, [ADD_EVENT_LISTENER, REMOVE_EVENT_LISTENER], '-', uniqueListener);\n }\n function uniqueListener(args, obj) {\n // Context for the listener is stored on itself.\n return args[1];\n }\n return ee;\n}\n/**\n * Find the base prototype of 'object' that has its own \"addEventListener\" property, and run some function on it.\n * @param {Object} object - the initial object to traverse prototype chain on\n * @param {Function} cb - the function to run on the ancestral object once found, accepts an object as a arg\n * @param {Array} rest - [optional] any additional arguments to pass to the cb\n */\nfunction findEventListenerProtoAndCb(object, cb) {\n let step = object;\n while (typeof step === 'object' && !Object.prototype.hasOwnProperty.call(step, ADD_EVENT_LISTENER)) {\n step = Object.getPrototypeOf(step);\n }\n for (var _len = arguments.length, rest = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n rest[_key - 2] = arguments[_key];\n }\n if (step) cb(step, ...rest);\n}\n\n/**\n * Returns an event emitter scoped specifically for the `events` 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 'events'.\n */\nexport function scopedEE(sharedEE) {\n return (sharedEE || baseEE).get('events');\n}","/*\n * Copyright 2020 New Relic Corporation. All rights reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n/**\n * @file Wraps `fetch` and related methods for instrumentation.\n * This module is used by: ajax, spa.\n */\nimport { ee as baseEE, contextId } from '../event-emitter/contextual-ee';\nimport { globalScope } from '../constants/runtime';\nvar prefix = 'fetch-';\nvar bodyPrefix = prefix + 'body-';\nvar bodyMethods = ['arrayBuffer', 'blob', 'json', 'text', 'formData'];\nvar Req = globalScope.Request;\nvar Res = globalScope.Response;\nvar proto = 'prototype';\nconst wrapped = {};\n\n/**\n * Wraps the `fetch` method of the global scope for instrumentation. Also wraps the prototypes of the async methods\n * that parse Request and Response bodies to generate start and end events for each, in context of a new event\n * emitter scoped only to fetch and related methods.\n * @param {Object} sharedEE - The shared event emitter on which a new scoped\n * event emitter will be based.\n * @returns {Object} Scoped event emitter with a debug ID of `fetch`.\n */\nexport function wrapFetch(sharedEE) {\n const ee = scopedEE(sharedEE);\n if (!(Req && Res && globalScope.fetch)) {\n return ee;\n }\n\n // Notice if our wrapping never ran yet, the falsy NaN will not early return; but if it has,\n // then we increment the count to track # of feats using this at runtime.\n if (wrapped[ee.debugId]++) return ee;\n wrapped[ee.debugId] = 1; // otherwise, first feature to wrap fetch\n\n bodyMethods.forEach(method => {\n wrapPromiseMethod(Req[proto], method, bodyPrefix);\n wrapPromiseMethod(Res[proto], method, bodyPrefix);\n });\n wrapPromiseMethod(globalScope, 'fetch', prefix);\n ee.on(prefix + 'end', function (err, res) {\n var ctx = this;\n if (res) {\n var size = res.headers.get('content-length');\n if (size !== null) {\n ctx.rxSize = size;\n }\n ee.emit(prefix + 'done', [null, res], ctx);\n } else {\n ee.emit(prefix + 'done', [err], ctx);\n }\n });\n\n /**\n * Wraps a Promise-returning function (referenced by `target[name]`) to emit custom events before and after\n * execution, each decorated with metadata (arguments, payloads, errors). Used to wrap the async body\n * parsing methods of Request and Response (e.g. `json`, `text`, `formData`).\n * @param {Object} target - The object having the method to be wrapped.\n * @param {string} name - The name of the method to wrap.\n * @param {string} prefix - Used to decorate event names with context.\n */\n function wrapPromiseMethod(target, name, prefix) {\n var fn = target[name];\n if (typeof fn === 'function') {\n target[name] = function () {\n var args = [...arguments];\n var ctx = {};\n // we are wrapping args in an array so we can preserve the reference\n ee.emit(prefix + 'before-start', [args], ctx);\n var dtPayload;\n if (ctx[contextId] && ctx[contextId].dt) dtPayload = ctx[contextId].dt;\n var origPromiseFromFetch = fn.apply(this, args);\n ee.emit(prefix + 'start', [args, dtPayload], origPromiseFromFetch);\n\n // 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.\n return origPromiseFromFetch.then(function (val) {\n ee.emit(prefix + 'end', [null, val], origPromiseFromFetch);\n return val;\n }, function (err) {\n ee.emit(prefix + 'end', [err], origPromiseFromFetch);\n throw err;\n });\n };\n }\n }\n return ee;\n}\n\n/**\n * Returns an event emitter scoped specifically for the `fetch` 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 'fetch'.\n */\nexport function scopedEE(sharedEE) {\n return (sharedEE || baseEE).get('fetch');\n}","/*\n * Copyright 2020 New Relic Corporation. All rights reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n/**\n * @file Wraps `pushState` and `replaceState` methods of `window.history` object for instrumentation.\n * This module is used by: session_trace, spa.\n */\nimport { ee as globalEE } from '../event-emitter/contextual-ee';\nimport { createWrapperWithEmitter as wfn } from './wrap-function';\nimport { isBrowserScope } from '../constants/runtime';\nconst wrapped = {};\nconst HISTORY_FNS = ['pushState', 'replaceState'];\n\n/**\n * Wraps the `pushState` and `replaceState` methods of `window.history` and returns a corresponding event emitter\n * scoped to the history object.\n * @param {Object} sharedEE - The shared event emitter on which a new scoped event emitter will be based.\n * @returns {Object} Scoped event emitter with a debug ID of `history`.\n */\nexport function wrapHistory(sharedEE) {\n const ee = scopedEE(sharedEE);\n\n // Notice if our wrapping never ran yet, the falsy NaN will not early return; but if it has,\n // then we increment the count to track # of feats using this at runtime. History API is only\n // available in browser DOM context.\n if (!isBrowserScope || wrapped[ee.debugId]++) return ee;\n wrapped[ee.debugId] = 1; // otherwise, first feature to wrap history\n\n var wrapFn = wfn(ee);\n /*\n * For objects that will be instantiated more than once, we wrap the object's prototype methods. The history object\n * is instantiated only once, so we can wrap its methods directly--and we must wrap the history methods directly as\n * long as [Chromium issue 783382](https://bugs.chromium.org/p/chromium/issues/detail?id=783382) remains unresolved.\n */\n wrapFn.inPlace(window.history, HISTORY_FNS, '-');\n return ee;\n}\n\n/**\n * Returns an event emitter scoped specifically for the `history` 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 'history'.\n */\nexport function scopedEE(sharedEE) {\n return (sharedEE || globalEE).get('history');\n}","/*\n * Copyright 2020 New Relic Corporation. All rights reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n/**\n * @file Wraps DOM insertion methods which in turn wrap JSONP functions that show up in the DOM.\n * This module is used by: spa.\n */\n\nimport { eventListenerOpts } from '../event-listener/event-listener-opts';\nimport { ee as baseEE } from '../event-emitter/contextual-ee';\nimport { createWrapperWithEmitter as wfn } from './wrap-function';\nimport { isBrowserScope } from '../constants/runtime';\nconst wrapped = {};\nconst domInsertMethods = ['appendChild', 'insertBefore', 'replaceChild'];\n\n/**\n * Wraps DOM insertion methods to identify script elements containing JSONP callback functions and instruments those\n * functions with custom events in the context of a new event emitter scoped only to JSONP.\n * @param {Object} sharedEE - The shared event emitter on which a new scoped event emitter will be based.\n * @returns {Object} Scoped event emitter with a debug ID of `jsonp`.\n */\nexport function wrapJsonP(sharedEE) {\n const ee = scopedEE(sharedEE);\n\n // Notice if our wrapping never ran yet, the falsy NaN will not early return; but if it has,\n // then we increment the count to track # of feats using this at runtime. JSONP deals with DOM\n // tags so browser window env is required.\n if (!isBrowserScope || wrapped[ee.debugId]) return ee;\n wrapped[ee.debugId] = true; // otherwise, first feature to wrap JSONP\n\n var wrapFn = wfn(ee);\n var CALLBACK_REGEX = /[?&](?:callback|cb)=([^&#]+)/;\n var PARENT_REGEX = /(.*)\\.([^.]+)/;\n var VALUE_REGEX = /^(\\w+)(\\.|$)(.*)$/;\n\n // JSONP works by dynamically inserting