{"version":3,"names":["defaultSetTimout","Error","defaultClearTimeout","cachedSetTimeout","cachedClearTimeout","global","setTimeout","clearTimeout","runTimeout","fun","e","call","this","runClearTimeout","marker","queue","draining","currentQueue","queueIndex","cleanUpNextTick","length","concat","drainQueue","timeout","len","run","nextTick","args","Array","arguments","i","push","Item","array","prototype","apply","title","platform","browser","env","argv","version","versions","release","config","noop","on","addListener","once","off","removeListener","removeAllListeners","emit","binding","name","cwd","chdir","dir","umask","performance","performanceNow","now","mozNow","msNow","oNow","webkitNow","Date","getTime","hrtime","previousTimestamp","clocktime","seconds","Math","floor","nanoseconds","startTime","uptime","currentTime","dif","browser$1","process","_pureAssign","func1","func2","_pureRef","value","UNDEF_VALUE","undefined","NULL_VALUE","EMPTY","FUNCTION","OBJECT","PROTOTYPE","__PROTO__","UNDEFINED","CONSTRUCTOR","SYMBOL","POLYFILL_TAG","LENGTH","NAME","CALL","TO_STRING","ObjClass","Object","ObjProto","StrCls","String","StrProto","MathCls","ArrCls","ArrProto","ArrSlice","safe","func","argArray","v","safeGet","cb","defValue","result","_primitiveTypes","_createIs","theType","_createObjIs","theName","objToString","isUndefined","isStrictUndefined","arg","isDefined","isNullOrUndefined","isStrictNullOrUndefined","isPrimitiveType","indexOf","isString","isFunction","isObject","isArray","isDate","isNumber","isBoolean","isError","isPromiseLike","then","isTruthy","objGetOwnPropertyDescriptor","objHasOwnProperty","obj","prop","hasOwnProperty","objHasOwn","polyObjHasOwn","objForEachKey","theObject","callbackfn","thisArg","propMap","c","w","g","s","_createProp","l","get","desc","set","newValue","key","objDefineProp","objDefine","target","propDesc","_createKeyValueMap","values","keyType","valueType","completeFn","writable","theMap","_assignMapValue","enumerable","asString","ERROR_TYPE","dumpObj","object","format","propertyValueDump","objType","stack","message","JSON","stringify","replace","throwError","throwTypeError","TypeError","_objFreeze","_doNothing","_getProto","objAssign","objKeys","objDeepFreeze","objFreeze","objGetPrototypeOf","createEnum","createEnumKeyMap","createSimpleMap","mapClass","createTypeMap","_wellKnownSymbolMap","asyncIterator","hasInstance","isConcatSpreadable","iterator","match","matchAll","search","species","split","toPrimitive","toStringTag","unscopables","GLOBAL_CONFIG_KEY","_globalCfg","_getGlobalValue","globalThis","self","window","_getGlobalConfig","gbl","_unwrapFunction","_unwrapFunctionWithPoly","funcName","clsProto","polyFunc","clsFn","theFunc","theArgs","_unwrapProp","propName","mathMax","strSlice","strSubstring","strSubstr","polyStrSubstr","start","strLeft","count","UNIQUE_REGISTRY_ID","_polySymbols","_globalSymbolRegistry","gblCfg","gblSym","k","_wellKnownSymbolCache","polyNewSymbol","description","theSymbol","toString","polySymbolFor","registry","newSymbol_1","regId_1","polyGetKnownSymbol","knownName","_globalLazyTestHooks","_initTestHooks","getLazy","lazyValue","b","lzy","configurable","createCachedValue","toJSON","WINDOW","_cachedGlobal","_getGlobalInstFn","getFn","cachedValue","getGlobal","useCached","getInst","hasDocument","getDocument","hasWindow","getWindow","hasNavigator","getNavigator","hasHistory","getHistory","isNode","node","isWebWorker","WorkerGlobalScope","_symbol","_symbolFor","_initSymbol","_getSymbolKey","hasSymbol","getSymbol","getKnownSymbol","noPoly","sym","newSymbol","symbolFor","isIterator","next","isIterable","_iterSymbol$1","iterForOf","iter","err","iterResult","done","failed","throw","return","fnApply","fn","arrAppend","elms","elm","arrForEach","theArray","idx","arrIndexOf","arrMap","arrSlice","end","arrReduce","objCreate","polyObjCreate","type","tempFunc","_isProtoArray","objSetPrototypeOf","proto","d","_a","_createCustomError","__","_setName","baseClass","createCustomError","constructCb","errorBase","theBaseClass","orgName","captureFn","captureStackTrace","_this","_self","orgProto","_unsupportedError","throwUnsupported","utcNow","polyUtcNow","_createTrimFn","exp","_doTrim","polyStrTrim","strTrim","_fnToString","_objCtrFnString","_gblWindow","isPlainObject","Function","ex","_defaultDeepCopyHandler","details","plainObjDeepCopyHandler","defaultDeepCopyHandlers","arrayDeepCopyHandler","functionDeepCopyHandler","dateDeepCopyHandler","_getSetVisited","visitMap","source","newPath","theEntry","entry","_deepCopy","ctx","userHandler","handler","path","newCtx","src","isPlain","isPrim","origin","copy","newKey","copyTo","_copyProps","newEntry","objCopyProps","objDeepCopy","_doExtend","theArg","deepExtend","obj1","obj2","obj3","obj4","obj5","obj6","objExtend","getLength","_perf","getPerformance","strSplit","setValueByKey","parts","lastKey","pop","strEndsWith","polyStrEndsWith","searchString","searchValue","strIndexOf","REF","UNREF","HAS_REF","ENABLED","_createTimerHandler","startTimer","refreshFn","cancelFn","ref","timerId","theTimerHandler","_unref","_cancel","_refresh","_setEnabled","cancel","refresh","h","dn","_createTimeoutWith","overrideFn","isArr","setFn","clearFn","timerFn","scheduleTimeout","callback","createTimeout","Constructor","Prototype","strFunction","DynInstFuncTable","DynProxyTag","DynClassName","DynClassNamePrefix","DynInstChkTag","DynAllowInstChkTag","DynProtoDefaultOptions","UnknownValue","str__Proto","DynProtoBaseProto","DynProtoGlobalSettings","DynProtoCurrent","strUseBaseInst","strSetInstFuncs","Obj","_objGetPrototypeOf","_objGetOwnProps","_gbl","_gblInst","o","n","_isObjectOrArrayPrototype","_isObjectArrayOrFunctionPrototype","_getObjProto","newProto","curProto","_forEachProp","props","name_1","lp","_isDynamicCandidate","skipOwn","_throwTypeError","_getInstanceFuncs","thisTarget","instFuncs","_hasVisited","_getBaseFuncs","classProto","useBaseInst","_instFuncProxy","funcHost","instFuncTable","baseFuncs","baseProto","visited","_getInstFunc","currentDynProtoProxy","instFunc","canAddInst","objProto","protoFunc","_getProtoFunc","_populatePrototype","className","baseInstFuncs","setInstanceFunc","_createDynamicPrototype","dynProtoProxy","instFuncs_1","_checkPrototype","thisProto","_getObjName","unknownValue","dynamicProto","theClass","delegateFunc","options","perfOptions","strShimFunction","strShimObject","strShimUndefined","strShimPrototype","strHasOwnProperty","__objAssignFnImpl","t","p","__assignFn","extendStaticsFn","__proto__","__extendsFn","constructor","__spreadArrayFn","to","from","il","j","createEnumStyle","createValueMap","ActiveStatus","NONE","PENDING","INACTIVE","ACTIVE","_DYN_TO_LOWER_CASE","_DYN_BLK_VAL","_DYN_LENGTH","_DYN_RD_ONLY","_DYN_NOTIFY","_DYN_WARN_TO_CONSOLE","_DYN_THROW_INTERNAL","_DYN_SET_DF","_DYN_WATCH","_DYN_LOGGER","_DYN_APPLY","_DYN_PUSH","_DYN_SPLICE","_DYN_HDLR","_DYN_CANCEL","_DYN_INITIALIZE","_DYN_IDENTIFIER","_DYN_REMOVE_NOTIFICATION_0","_DYN_ADD_NOTIFICATION_LIS1","_DYN_IS_INITIALIZED","_DYN_INSTRUMENTATION_KEY","_DYN__INACTIVE","_DYN_VALUE","_DYN_GET_NOTIFY_MGR","_DYN_GET_PLUGIN","_DYN_NAME","_DYN_I_KEY","_DYN_TIME","_DYN_PROCESS_NEXT","_DYN_GET_PROCESS_TEL_CONT2","_DYN_POLL_INTERNAL_LOGS","_DYN_ENABLED","_DYN_STOP_POLLING_INTERNA3","_DYN_UNLOAD","_DYN_ON_COMPLETE","_DYN_VERSION","_DYN_LOGGING_LEVEL_CONSOL4","_DYN_CREATE_NEW","_DYN_TEARDOWN","_DYN_MESSAGE_ID","_DYN_MESSAGE","_DYN_IS_ASYNC","_DYN_DIAG_LOG","_DYN__DO_TEARDOWN","_DYN_UPDATE","_DYN_GET_NEXT","_DYN_SET_NEXT_PLUGIN","_DYN_PROTOCOL","_DYN_USER_AGENT","_DYN_SPLIT","_DYN_NODE_TYPE","_DYN_REPLACE","_DYN_LOG_INTERNAL_MESSAGE","_DYN_TYPE","_DYN_HANDLER","_DYN_STATUS","_DYN_GET_RESPONSE_HEADER","_DYN_GET_ALL_RESPONSE_HEA5","_DYN_IS_CHILD_EVT","_DYN_DATA","_DYN_GET_CTX","_DYN_SET_CTX","_DYN_COMPLETE","_DYN_ITEMS_RECEIVED","_DYN_URL_STRING","_DYN_SEND_POST","_DYN_HEADERS","_DYN_TIMEOUT","_DYN_SET_REQUEST_HEADER","_DYN_TRACE_ID","_DYN_SPAN_ID","_DYN_TRACE_FLAGS","_DYN_GET_ATTRIBUTE","aggregationErrorType","throwAggregationError","sourceErrors","errors","theMessage","srcError","STR_PROMISE","REJECTED","doAwaitResponse","doAwait","status","rejected","reason","resolveFn","rejectFn","finallyFn","doFinally","finally","STRING_STATES","DISPATCH_EVENT","_hasInitEvent","_hasInitEventFn","doc","evt","createEvent","initEvent","emitEvent","evtName","populateEvent","useNewEvent","theEvt","Event","theConsole","NODE_UNHANDLED_REJECTION","UNHANDLED_REJECTION","toLowerCase","_unhandledRejectionTimeout","_hasPromiseRejectionEvent","dumpFnObj","_createPromise","newPromise","processor","executor","additionalArgs","_state","_hasResolved","_settledValue","_queue","_handled","_unHandledRejectionHandler","_thePromise","_then","onResolved","onRejected","thenPromise","resolve","reject","_processQueue","_catch","_finally","onFinally","thenFinally","catchFinally","_strState","pending","slice","_createSettleIfFn","newState","allowState","theValue","_notifyUnhandledRejection","catch","_toString","_initialize","_rejectFn","_createAllPromise","input","values_1","pending_1","item","_createAllSettledPromise","processItem","syncItemProcessor","timeoutItemProcessor","callbackTimeout","createAsyncPromise","_promiseCls","createNativePromise","PrmCls","thePromise","_resolve","_reject","_allSyncSettledCreator","createSyncPromise","createSyncAllSettledPromise","_promiseCreator","createPromise","createAllPromise","UNDEFINED_VALUE","STR_EMPTY","STR_CHANNELS","STR_CORE","STR_CREATE_PERF_MGR","STR_DISABLED","STR_EXTENSION_CONFIG","STR_EXTENSIONS","STR_PROCESS_TELEMETRY","STR_PRIORITY","STR_EVENTS_SENT","STR_EVENTS_DISCARDED","STR_EVENTS_SEND_REQUEST","STR_PERF_EVENT","STR_OFFLINE_STORE","STR_OFFLINE_SENT","STR_OFFLINE_DROP","STR_GET_PERF_MGR","STR_DOMAIN","STR_PATH","STR_NOT_DYNAMIC_ERROR","strGetPrototypeOf","rCamelCase","rNormalizeInvalid","rLeadingNumeric","isNotNullOrUndefined","normalizeJsName","_all","letter","toUpperCase","strContains","toISOString","date","getExceptionName","setValue","field","valChk","srcChk","getSetValue","_createProxyFunction","srcFunc","originalArguments","proxyAssign","chkSet","_loop_1","proxyFunctionAs","overwriteTarget","proxyFunctions","functionsToProxy","theFuncName","createClassFromInterface","defaults","class_1","optimizeObject","ObjAssign","extended","argLen","deep","isArgArray","isArgObj","propOk","isNewArray","clone","isFeatureEnabled","feature","cfg","rlt","ft","featureOptIn","mode","getResponseText","xhr","responseText","formatErrorMessageXdr","xdr","formatErrorMessageXhr","response","prependTransports","theTransports","newTransports","strDisabledPropertyName","strWithCredentials","strTimeout","openXhr","method","urlString","withCredentials","disabled","isSync","_wrapSetXhrProp","XMLHttpRequest","open","convertAllHeadersToMap","headersString","headers","headersArray","headerEntry","header","substring","_appendHeader","theHeaders","STR_KILL_DURATION_HEADER","STR_KILL_DURATION_SECONDS_HEADER","STR_TIME_DELTA_HEADER","_getAllResponseHeaders","isOneDs","strDocumentMode","strLocation","strConsole","strJSON","strCrypto","strMsCrypto","strReactNative","strMsie","strTrident","strXMLHttpRequest","_isTrident","_navUserAgentCheck","_enableMocks","_useXDomainRequest","_beaconsSupported","_hasProperty","property","supported","tmp","getLocation","checkForMock","mockLocation","location","getConsole","console","hasJSON","Boolean","getJSON","getCrypto","getMsCrypto","isReactNative","nav","product","isIE","userAgent","getIEVersion","userAgentStr","navigator_1","ua","max","parseInt","tridentVer","isBeaconsSupported","sendBeacon","isFetchSupported","withKeepAlive","isSupported","request","useXDomainRequest","XDomainRequest","isXhrSupported","xmlHttpRequest","dispatchEvent","evnt","createCustomDomEvent","eventName","event","detail","CustomEvent","initCustomEvent","sendCustomEvent","customDetails","UInt32Mask","MaxUInt32","SEED1","SEED2","_mwcSeeded","_mwcW","_mwcZ","_mwcSeed","seedValue","_autoSeedMwc","random","randomValue","maxValue","random32","signed","getRandomValues","Uint32Array","mwcRandom32","newId","maxLength","base64chars","number","chars","charAt","instanceName","_dataUid","_canAcceptData","_getCache","data","theCache","id","createUniqueNamespace","includeVersion","createElmNodeData","accept","addDefault","kill","_isConfigDefaults","isVal","fb","_getDefault","dynamicHandler","theConfig","cfgDefaults","isDefaultValid","dfVal","fallbacks","fallback","fbValue","_resolveDefaultValue","newValue_1","_applyDefaultValue","defaultValue","isValid","mergeDf","reference","readOnly","blkDynamicValue","mrg","usingDefault","cfgValue","dfName","dfValue","CFG_HANDLER_LINK","BLOCK_DYNAMIC","FORCE_DYNAMIC","_cfgDeepCopy","target_1","getDynamicConfigHandler","blockDynamicConversion","_canMakeDynamic","getFunc","state","blkVal","throwInvalidAccess","arrayMethodsToPatch","_throwDynamicError","logger","_patchArray","orgMethod","_i","_makeDynamicObject","_getOwnPropGetter","_createDynamicProperty","trk","clr","checkDynamic","isObjectOrArray","_getProperty","activeHandler","act","chng","add","_setProperty","ro","upd","isReferenced","rf","_setDynamicProperty","hdlr","getter","valueState","newIsObjectOrArray","isDynamic","_setDynamicPropertyState","flags","inPlace","rdOnly","blkProp","symPrefix","symPostfix","_createState","cfgHandler","dynamicPropertySymbol","uid","dynamicPropertyReadOnly","dynamicPropertyReferenced","dynamicPropertyBlockValue","dynamicPropertyDetail","_waitingHandlers","_watcherTimer","theState","_useHandler","prevWatcher","bind","setDf","_notifyWatchers","notifyHandlers","watcherFailures_1","_addWatcher","_trackHandler","use","_createAndUseHandler","configHandler","rm","_createDynamicHandler","newTarget","_setValue","_watch","_block","allowUpdate","prevUpd","_ref","_rdOnly","_blkPropValue","_applyDefaults","defaultValues","_logInvalidAccess","createDynamicConfig","defaultConfig","onConfigChange","runTargetUnload","isAsync","doUnloadAll","targets","resolved","ChannelControllerPriority","DisabledPropertyName","_stringToBoolOrDefault","cfgDfMerge","cfgDfSet","setter","cfgDfValidate","validator","fallBackName","cfgDfBoolean","cfgDfString","listenerFuncs","_aiNamespace","_debugListener","_listenerProxyFunc","dbgExt","getDebugExt","listener","_getExtensionNamespace","ns","disableDbgExt","getDebugListener","STR_WARN_TO_CONSOLE","AiNonUserActionablePrefix","AiUserActionablePrefix","AIInternalMessagePrefix","loggingLevelConsole","loggingLevelTelemetry","maxMessageLimit","enableDebug","_logFuncs","_sanitizeDiagnosticText","text","_logToConsole","logFunc","_InternalLogMessage","msgId","msg","isUserAct","properties","strProps","diagnosticText","dataType","safeGetLogger","core","DiagnosticLogger","identifier","_messageCount","_messageLogged","_loggingLevelConsole","_loggingLevelTelemetry","_maxInternalMessageLimit","_enableDebug","_unloadHandler","_setDefaultsFromConfig","consoleLoggingLevel","severity","messageKey","_logInternalMessage","_debugExtMsg","debugToConsole","errorToConsole","resetInternalMessageCount","_areInternalMessagesThrottled","logMessage","throttleLimitMessage","throttleMessage","__ieDyn","_getLogger","_throwInternal","_warnToConsole","_b","strToGMTString","strToUTCString","strCookie","strExpires","strIsCookieUseDisabled","strDisableCookiesUsage","strConfigCookieMgr","_supportsCookies","_allowUaSameSite","_parsedCookieValue","_doc","_cookieCache","_globalCookieConfig","rootDefaultConfig","cookieCfg","enabled","ignoreCookies","blockedCookies","cookieDomain","cookiePath","_getDoc","_gblCookieMgr","inst","createCookieMgr","_isMgrEnabled","cookieMgr","isEnabled","_isIgnoredCookie","cookieMgrCfg","_isBlockedCookie","_isCfgEnabled","rootConfig","cookieMgrConfig","isCfgEnabled","cookieEnabled","safeGetCookieMgr","getCookieMgr","_path","_domain","unloadHandler","_enabled","_getCookieFn","_setCookieFn","_delCookieFn","getCookie","_getCookieValue","setCookie","_setCookieValue","delCookie","areCookiesSupported","gblManager","setEnabled","maxAgeSec","domain","_extractParts","_isIE","nowMs","expireMs","expiry","setTime","_formatDate","location_1","uaDisallowsSameSiteNone","_formatCookieValue","del","purge","exception","thePart","theDate","cookieValue","theCookie","perfEvtsSendAll","_runScheduledListeners","asyncNotifications","callbacks","_runListeners","listeners","NotificationManager","_listeners","_asyncNotifications","index","events","sendReason","perfEvent","batch","cnt","rn_1","_finishUnload","waiting","asyncUnload","strExecutionContextKey","strParentContextKey","strChildrenContextKey","_defaultPerfManager","PerfEvent","payloadDetails","theDetails_1","childTime","childEvts","childEvt","exTime","ParentContextKey","ChildrenContextKey","PerfManager","manager","create","fire","doPerfActiveKey","doPerf","mgrSource","getSource","perfMgr","perfEvt","currentActive","children","getGblPerfMgr","generateW3CId","hexValues","oct","a","clockSequenceHi","DEFAULT_VERSION","INVALID_VERSION","INVALID_TRACE_ID","INVALID_SPAN_ID","_isValid","invalidValue","_formatValue","_formatFlags","isNaN","createTraceParent","traceId","spanId","isValidTraceId","isValidSpanId","traceFlags","formatTraceParent","findAllScripts","scripts","getElementsByTagName","script","crossOrigin","async","hasAttribute","defer","referrerPolicy","info","url","pluginStateData","_getPluginState","plugin","initializePlugins","processContext","extensions","initPlugins","lastPlugin","proxy","pluginState","thePlugin","isInitialized","getCfg","sortPlugins","plugins","sort","extA","extB","bHasProcess","createDistributedTraceContext","parentCtx","trace","getName","setName","getTraceId","setTraceId","getSpanId","setSpanId","getTraceFlags","setTraceFlags","newTraceFlags","strTelemetryPluginChain","strHasRunFlags","strGetTelCtx","_chainId","_getNextProxyStart","startAt","createTelemetryProxyChain","_createInternalContext","telemetryChain","_nextProxy","_onComplete","context","_next","_moveNext","diagLog","getExtCfg","_resolveExtCfg","getConfig","_getConfig","hasNext","getNext","setNext","nextPlugin","iterate","_iterateChain","onComplete","_addOnComplete","that","nextProxy","completeDetails","_getExtCfg","createIfMissing","idCfg","extCfg","newConfig","extConfig","createProcessTelemetryContext","internalContext","_processNext","_createNew","createProcessTelemetryUnloadContext","unloadState","createProcessTelemetryUpdateContext","updateState","firstProxy","lastProxy_1","newProxy","createTelemetryPluginProxy","_setNext","hasProcessTelemetry","hasSetNext","chainId","proxyChain","getPlugin","processTelemetry","_processTelemetry","unload","_unloadPlugin","update","_updatePlugin","_id","_getTelCtx","itemCtx","_processChain","processPluginFn","hasRun","hasRunContext","nextId","error","hasNextRun","_callProcessTelemetry","unloadCtx","_callTeardown","pluginCore","updateCtx","_callUpdate","createUnloadHandlerContainer","handlers","_addHandler","_runHandlers","createUnloadHookContainer","_hooks","_doUnload","oldHooks","remove","_addHook","hooks","strGetPlugin","BaseTelemetryPlugin","_isinitialized","_rootCtx","_nextPlugin","_unloadHandlerContainer","_hookContainer","_initDefaults","pluginChain","_setDefaults","unloadDone","theUnloadCtx","theUnloadState","_unloadCallback","updateDone","theUpdateCtx","theUpdateState","_updateCallback","_doUpdate","setInitialized","currentCtx","rootCtx","_addInitializer","_initializers","telemetryInitializer","theInitializer","initializer","_runInitializers","doNotSendItem","telemetryInitializersCount","TelemetryInitializerPlugin","_super","__extends","priority","_base","addTelemetryInitializer","strValidationError","strNotificationManager","strSdkUnloadingError","strSdkNotInitialized","maxInitQueueSize","maxInitTimeout","diagnosticLogInterval","_createPerfManager","notificationMgr","_validateExtensions","channelPriority","allExtensions","coreExtensions","channels","extPriorities","ext","extPriority","_isPluginPresent","exists","_deepMergeConfig","newValues","merge","_findWatcher","newWatcher","theListener","_addDelayedCfgListener","fnd","_registerDelayedCfgListener","unloadHdl","_initDebugListener","unloadContainer","notificationManager","debugListener","_createUnloadHook","unloadHook","AppInsightsCore","_configHandler","_isInitialized","_logger","_eventQueue","_notificationManager","_perfManager","_cfgPerfManager","_cookieManager","_pluginChain","_configExtensions","_channelConfig","_channels","_isUnloading","_telemetryInitializerPlugin","_internalLogsEventName","_evtNamespace","_unloadHandlers","_traceCtx","_instrumentationKey","_cfgListeners","_extensions","_pluginVersionStringArr","_pluginVersionString","_activeStatus","_endpoint","_initInMemoMaxSize","_isStatusSet","_internalLogPoller","_internalLogPollerListening","_forceStopInternalLogPoller","activeStatus","_setPendingStatus","_addUnloadHook","rootCfg","isPending","initInMemoMaxSize","ikey","endpointUrl","_releaseQueues","promises","initTimeout","initTimeOut","allPromises","_setStatus","ikeyRes","endpointRes","_initPerfManager","cfgExtensions","__spreadArray","_initPluginChain","teeController","getChannels","controls","channel","track","telemetryItem","_notifyInvalidEvent","ver","_createTelCtx","getNotifyMgr","setCookieMgr","setPerfMgr","eventCnt","releaseQueue","eventQueue","_startLogPoller","alwaysStart","shouldStart","interval","isRunning","_flushInternalLogs","unref","unloadComplete","cbTimeout","flushComplete","processUnloadCtx","_getPluginChain","_flushChannels","_getPlugin","addPlugin","replaceExisting","addCb","_logOrThrowError","existingPlugin","_addPlugin","removed","added","removedPlugins_1","_removePlugins","updateCfg","mergeExisting","oldCfg","evtNamespace","flush","getTraceCtx","createNew","setTraceCtx","traceCtx","addUnloadHook","onCfgChange","getWParam","enableWParam","_setPluginVersions","thePlugins","_addPluginVersions","join","newLogger","splice","theCtx","theExtensions","pluginIdentifier","theExt","channelHosts","getChannel","host","removeCb","pluginsToRemove","removeComplete","unloadChain","newConfigExtensions","newChannelConfig","newQueue","baseType","baseData","callBack","doneIterating","cbTimer","doCallback","flushCtx","handled_1","prevCfgPerfMgr","enablePerfMgr","createPerfMgr","_updateHook","parseResponse","parse","itemsAccepted","itemsReceived","STR_NO_RESPONSE_BODY","_noResponseQs","STR_POST_METHOD","SenderPostManager","_syncFetchPayload","_enableSendPromise","_diagLog","_isOneDs","_onCompleteFuncs","_disableCredentials","_fetchCredentials","_fallbackInst","_disableXhr","_disableBeacon","_disableBeaconSync","_disableFetchKeepAlive","_addNoResponse","_timeoutWrapper","_sendCredentials","SetConfig","senderOnCompleteCallBack","disableCredentials","fetchCredentials","enableSendPromise","disableXhr","disableBeacon","disableBeaconSync","timeWrapper","addNoResponse","disableFetchKeepAlive","sendPOST","_xhrSender","protocol","getSyncFetchPayload","getSenderInst","transports","sync","_getSenderInterface","getFallbackInst","_onSuccess","res","_doOnComplete","_onError","_onNoPayloadUrl","syncSupport","transportType","sendPostFunc","_xdrSender","_doFetchSender","_beaconSender","_transport","_isSync","oncomplete","_doBeaconSend","payload","plainTextBatch","Blob","queued","onRetry","beaconOnRetry","resolveFunc","rejectFunc","disableXhrSync","endPointUrl","headerName","onreadystatechange","_doOnReadyFunc","readyState","onload","onReadyFunc","xhrOnComplete","onReadyFuncExist","onerror","ontimeout","send","requestHeaders","Headers","batchLength","ignoreResponse","responseHandled","init","body","append","credentials","keepalive","Request","_handleError","_onFetchComplete","onCompleteFunc","fetchOnComplete","fetch","response_1","ok","statusText","resp","_window","onloadFunc","xdrOnComplete","onprogress","hostingProtocol","endpoint","lastIndexOf","strOnPrefix","strAttachEvent","strAddEventHelper","strDetachEvent","strRemoveEventListener","strEvents","strVisibilityChangeEvt","strPageHide","strUnload","strBeforeUnload","strPageHideNamespace","rRemoveEmptyNs","rRemoveTrailingEmptyNs","_guid","elmNodeData","eventNamespace","_normalizeNamespace","_getEvtNamespace","theNamespace_1","parsedEvent","exec","_getRegisteredEvents","aiEvts","registeredEvents","_doDetach","handlerRef","useCapture","_doAttach","_doUnregister","unRegFn","theEvent","capture","_unregisterEvents","eventCache","evtType","mergeEvtNamespace","theNamespace","namespaces","newNamespaces","eventOn","registeredEvent","guid","eventOff","evtName_1","found_1","regEvent","addEventHandler","removeEventHandler","_addEventListeners","excludeEvents","addEventListeners","removeEventListeners","addPageUnloadEventListener","removePageUnloadEventListener","addPageHideEventListener","_handlePageVisibility","visibilityState","pageUnloadAdded","removePageHideEventListener","aiInstrumentHooks","cbNames","_arrLoop","arr","_doCallbacks","callDetails","cbArgs","hookCtx","hook","cbks","orgEx","hookErrorCb","_createFunctionHook","aiHook","funcThis","orgArgs","funcArgs","_replaceArg","_createArgs","f","rslt","_getOwner","checkPrototype","checkParentProto","owner","InstrumentProto","InstrumentFunc","_createInstrumentHook","newFunc","theHook","InstrumentEvent","SampleRate","ProcessLegacy","HttpMethod","DEFAULT_BREEZE_ENDPOINT","DEFAULT_BREEZE_PATH","strNotSpecified","strIkey","RequestHeaders","requestContextHeader","requestContextTargetKey","requestContextAppIdFormat","requestIdHeader","traceParentHeader","traceStateHeader","sdkContextHeader","sdkContextHeaderAppIdRequest","requestContextHeaderLowerCase","_DYN_INGESTIONENDPOINT","_DYN_TO_STRING","_DYN_REMOVE_ITEM","_DYN_COUNT","_DYN_PRE_TRIGGER_DATE","_DYN_DISABLED","_DYN_INTERVAL","_DYN_DAYS_OF_MONTH","_DYN_DATE","_DYN_GET_UTCDATE","_DYN_STRINGIFY","_DYN_PATHNAME","_DYN_CORRELATION_HEADER_E0","_DYN_EXCEPTIONS","_DYN_PARSED_STACK","_DYN_PROPERTIES","_DYN_MEASUREMENTS","_DYN_SIZE_IN_BYTES","_DYN_TYPE_NAME","_DYN_SEVERITY_LEVEL","_DYN_PROBLEM_GROUP","_DYN_IS_MANUAL","_DYN__CREATE_FROM_INTERFA1","_DYN_ASSEMBLY","_DYN_FILE_NAME","_DYN_HAS_FULL_STACK","_DYN_LEVEL","_DYN_METHOD","_DYN_LINE","_DYN_DURATION","_DYN_RECEIVED_RESPONSE","dataSanitizeKeyAndAddUniqueness","map","origLength","dataSanitizeKey","uniqueField","dsPadNumber","nameTrunc","dataSanitizeString","valueTrunc","dataSanitizeUrl","dataSanitizeInput","dataSanitizeMessage","messageTrunc","dataSanitizeException","exceptionTrunc","dataSanitizeProperties","tempProps_1","dataSanitizeMeasurements","measurements","tempMeasurements_1","measure","dataSanitizeId","_msgId","inputTrunc","num","_document","_htmlAnchorIdx","_htmlAnchorElement","urlParseUrl","anchorIdx","anchorCache","tempAnchor","createElement","urlParseHost","href","urlGetAbsoluteUrl","urlGetCompleteUrl","absoluteUrl","inclPort","fullHost","urlParseFullHost","port","_internalEndpoints","_correlationIdPrefix","isInternalApplicationInsightsEndpoint","correlationIdCanIncludeCorrelationHeader","requestUrl","currentHost","disableCorrelationHeaders","correlationHeaderExcludePatterns","test","requestHost","enableCorsCorrelation","includedDomains","correlationHeaderDomains","matchExists_1","regex","RegExp","excludedDomains","correlationHeaderExcludedDomains","correlationIdGetCorrelationContext","responseHeader","correlationId","correlationIdGetCorrelationContextValue","keyValues","keyValue","AjaxHelperParseDependencyPath","commandName","parsedUrl","pathName","pathname","dateTimeUtilsNow","perf","timing","navigationStart","dateNow","dateTimeUtilsDuration","createDistributedTraceContextFromTrace","telemetryTrace","traceID","parentID","StorageType","LocalStorage","SessionStorage","AI","AI_AND_W3C","W3C","Normal","Critical","_canUseLocalStorage","_canUseSessionStorage","_storagePrefix","_getLocalStorageObject","utlCanUseLocalStorage","_getVerifiedStorageObject","storageType","storage","getGlobalInst","setItem","fail","getItem","_getSessionStorageObject","utlCanUseSessionStorage","utlDisableStorage","utlSetStoragePrefix","storagePrefix","utlEnableStorage","reset","utlGetLocalStorage","utlSetLocalStorage","utlRemoveStorage","utlGetSessionStorage","utlSetSessionStorage","utlRemoveSessionStorage","THROTTLE_STORAGE_PREFIX","ThrottleMgr","namePrefix","_config","_localStorageObj","_isTriggered","_namePrefix","_isReady","_isSpecificDaysGiven","_initConfig","canThrottle","localObj","_getLocalStorageObjByKey","_getCfgByKey","_canThrottle","isTriggered","_isTrigger","isReady","_getQueueByKey","items","_flushMessage","msgID","flushAll","result_1","isFlushed","onReadyState","sendMessage","saveUnsentMsg","isSampledIn","_canSampledIn","localStorageObj","throttled","min","limit","maxSendNumber","localStorageName","_getLocalStorageName","_resetLocalStorage","_sendMessage","isThrottled","throttleNum","_setCfgByKey","coreConfig","configMgr","throttleMgrCfg","curCfg","configInterval","daysOfMonth","_getIntervalConfig","samplingRate","monthInterval","dayInterval","canUseLocalStorage","curDate","_getThrottleDate","monthCheck","monthExpand","getUTCFullYear","getUTCMonth","_checkInterval","dayCheck","daySpan","msgKey","prefix","fix","_isTriggeredOnCurDate","preTriggerDate","_getLocalStorageObj","storageName","storageObj","curObj","dateStr","getDate","current","isTrigger","_FIELDS_SEPARATOR","_FIELD_KEY_VALUE_SEPARATOR","parseConnectionString","connectionString","kvPairs","fields","kv","kvParts","endpointsuffix","locationPrefix","Envelope","sampleRate","tags","time","aiDataContract","iKey","envelopeType","NoMethod","strError","strStack","strStackDetails","strErrorSrc","strMessage","strDescription","_stringify","convertToString","_formatMessage","errorType","evtMessage","_isExceptionDetailsInternal","_isExceptionInternal","_isStackDetails","_convertStackObj","errorStack","_getOperaStack","errorMessage","lines","_getStackFromErrorObj","errorObj","_formatStackTrace","stackDetails","_parseStack","parsedStack","frames","level_1","totalSizeInBytes_1","frame","theFrame","_StackFrame","parsedFrame","exceptionParsedStackThreshold","left","right","size","acceptedLeft","acceptedRight","lSize","rSize","howMany","_getErrorType","typeName","funcNameRegex","results","_formatErrorCode","Exception","severityLevel","exceptions","_ExceptionDetails","CreateAutoException","lineNumber","columnNumber","errorSrc","CreateFromInterface","exceptionData","__assign","toInterface","problemGroup","isManual","exceptionDetailsInterface","CreateSimpleException","assembly","fileName","line","formatError","outerId","hasFullStack","exceptionDetails","sourceFrame","level","matches","sizeInBytes","baseSize","DataPoint","kind","stdDev","Metric","metrics","dataPoint","strEmpty","msToTimeSpan","totalms","round","ms","sec","hour","days","isCrossOriginError","PageView","durationMs","duration","RemoteDependencyData","success","resultCode","requestAPI","correlationContext","dependencyKind","dependencySource","dependencyTypeName","dependencyFields","Trace","PageViewPerformance","unused","cs4BaseData","perfTotal","networkConnect","sentRequest","receivedResponse","domProcessing","Data","_aiNameFunc","baseName","aiName","_aiApplication","_aiDevice","_aiLocation","_aiOperation","_aiSession","_aiUser","_aiCloud","_aiInternal","ContextTagKeys","applicationVersion","applicationBuild","applicationTypeId","applicationId","applicationLayer","deviceId","deviceIp","deviceLanguage","deviceLocale","deviceModel","deviceFriendlyName","deviceNetwork","deviceNetworkName","deviceOEMName","deviceOS","deviceOSVersion","deviceRoleInstance","deviceRoleName","deviceScreenResolution","deviceType","deviceMachineName","deviceVMName","deviceBrowser","deviceBrowserVersion","locationIp","locationCountry","locationProvince","locationCity","operationId","operationName","operationParentId","operationRootId","operationSyntheticSource","operationCorrelationVector","sessionId","sessionIsFirst","sessionIsNew","userAccountAcquisitionDate","userAccountId","userId","userStoreRegion","userAuthUserId","userAnonymousUserAcquisitionDate","userAuthenticatedUserAcquisitionDate","cloudName","cloudRole","cloudRoleVer","cloudRoleInstance","cloudEnvironment","cloudLocation","cloudDeploymentUnit","internalNodeName","internalSdkVersion","internalAgentVersion","internalSnippet","internalSdkSrc","createTelemetryItem","envelopeName","customProperties","systemProperties","Extensions","UserExt","DeviceExt","TraceExt","WebExt","AppExt","OSExt","SessionExt","SDKExt","CtxTagKeys","createDomEvent","_disableEvents","createOfflineListener","parentEvtNamespace","_navigator","_isListening","listenerList","rState","onLine","uState","_currentState","calCurrentState","_enableEvents","ononline","_setOnline","_setOffline","_isOnline","listnerNoticeCheck","offlineState","isOnline","setOnlineState","_unload","win","isListening","PropertiesPluginIdentifier","BreezeChannelIdentifier","AnalyticsPluginIdentifier","_DYN_IS_STORAGE_USE_DISAB0","_DYN__ADD_HOOK","_DYN_CORE","_DYN_DATA_TYPE","_DYN_ENVELOPE_TYPE","_DYN_TRACK","_DYN_TRACK_PAGE_VIEW","_DYN_TRACK_PREVIOUS_PAGE_1","_DYN_SEND_PAGE_VIEW_INTER2","_DYN_START_TIME","_DYN_SEND_PAGE_VIEW_PERFO3","_DYN_POPULATE_PAGE_VIEW_P4","_DYN_HREF","_DYN_SEND_EXCEPTION_INTER5","_DYN_EXCEPTION","_DYN_ERROR","_DYN__ONERROR","_DYN_ERROR_SRC","_DYN_LINE_NUMBER","_DYN_COLUMN_NUMBER","_DYN__CREATE_AUTO_EXCEPTI6","_DYN_ADD_TELEMETRY_INITIA7","_DYN_OVERRIDE_PAGE_VIEW_D8","_DYN_AUTO_TRACK_PAGE_VISI9","_DYN_IS_BROWSER_LINK_TRAC10","_DYN_ENABLE_AUTO_ROUTE_TR11","_DYN_ENABLE_UNHANDLED_PRO12","_DYN_AUTO_UNHANDLED_PROMI13","_DYN_GET_ENTRIES_BY_TYPE","_DYN_IS_PERFORMANCE_TIMIN14","_DYN_GET_PERFORMANCE_TIMI15","_DYN_NAVIGATION_START","_DYN_SHOULD_COLLECT_DURAT16","_DYN_IS_PERFORMANCE_TIMIN17","_DYN_RESPONSE_START","_DYN_REQUEST_START","_DYN_LOAD_EVENT_END","_DYN_RESPONSE_END","_DYN_CONNECT_END","_DYN_PAGE_VISIT_START_TIM18","PageViewManager","appInsights","overridePageViewDuration","pageViewPerformanceManager","queueTimer","itemQueue","pageViewPerformanceSent","firstPageViewSent","_startTimer","allItems","doFlush","_addQueue","pageView","uri","navigationEntries","timeOrigin","loadEventStart","duration_1","pageViewSent","customDuration","maxDurationLimit","processed","pageViewPerformance","teardown","MAX_DURATION_ALLOWED","botAgentNames","_isPerformanceTimingSupported","_isPerformanceNavigationTimingSupported","getEntriesByType","_isPerformanceTimingDataReady","domainLookupStart","domLoading","_getPerformanceTiming","_getPerformanceNavigationTiming","_shouldCollectDuration","durations","isGoogleBot","PageViewPerformanceManager","navigationTiming","total","network","dom","requestStart","responseEnd","PageVisitTimeManager","pageVisitTimeTrackingHandler","prevPageVisitDataKeyName","currentPageName","currentPageUrl","prevPageVisitTimeData","restartPageVisitTimer","pageName","pageUrl","pageVisitTime","prevPageVisitData","stopPageVisitTimer","currPageVisitDataStr","PageVisitData","pageVisitEndTime","pageVisitDataJsonStr","Timing","_events","stop","action","strEvent","_dispatchEvent","_getReason","MinMilliSeconds","sessionRenewalMs","_chkConfigMilliseconds","sessionExpirationMs","disableExceptionTracking","samplingPercentage","_chkSampling","disableFlushOnBeforeUnload","disableFlushOnUnload","expCfg","inclScripts","expLog","maxLogs","_updateStorageUsage","AnalyticsPlugin","autoRoutePVDelay","_eventTracking","_pageTracking","_pageViewManager","_pageViewPerformanceManager","_pageVisitTimeManager","_preInitTelemetryInitializers","_isBrowserLinkTrackingEnabled","_browserLinkInitializerAdded","_enableAutoRouteTracking","_historyListenerAdded","_disableExceptionTracking","_autoExceptionInstrumented","_enableUnhandledPromiseRejectionTracking","_autoUnhandledPromiseInstrumented","_extConfig","_autoTrackPageVisitTime","_expCfg","_prevUri","_currUri","processNext","trackEvent","EventTelemetry","startTrackEvent","stopTrackEvent","trackTrace","trackMetric","metric","inPv","refUri","referrer","trackPageViewPerformance","inPvp","startTrackPage","stopTrackPage","measurement","loc","theError","exceptionPartB","scriptsInfo","logs","trackException","URL","_sendCORSException","errorString","initialize","_populateDefaults","trackPageVisitTime","pageViewItem","_updateExceptionTracking","_updateLocationChange","_doTeardown","_addDefaultTelemetryInitializers","PageName","PageUrl","average","sampleCount","browserLinkPaths_1","dropBrowserLinkRequests","envelope","remoteData","locn","autoExceptionInstrumented","rsp","_addUnhandledPromiseRejectionTracking","_history","pushState","replaceState","strUndefined","_addHistoryListener","_getDistributedTraceCtx","distributedTraceCtx","history","_popstateHandler","_locationChangeHandler","traceLocationName","hash","_location","throwInternal","Version","_DYN_FEATURE_OPT_IN","_DYN_ON_CFG_CHANGE_RECEIV0","_DYN_NON_OVERRIDE_CONFIGS","_DYN_SCHEDULE_FETCH_TIMEO1","replaceByNonOverrideCfg","nonOverrideConfigs","curLevel","maxLevel","exceedMaxLevel","curCfg_1","nonOverrideVal","F","M","ON","OFF","resolveCdnFeatureCfg","cdnCfg","userOptInDetails","cdnFt","cdnM","cdnOnV","onCfg","cdnOffV","offCfg","userFt","userM","userOnV","userOffV","blockCdn","blockCdnCfg","mFld","onFld","offFld","onV","offV","applyCdnfeatureCfg","optInMap","cdnConfig_1","featureVal","val","_overrideCdnCfgByFeature","ftVal","dVal","EVENT_NAME","STR_GET_METHOD","FETCH_TIMEOUT","udfVal","defaultNonOverrideCfg","instrumentationKey","_defaultConfig","syncMode","blkCdnCfg","customEvtName","cfgUrl","overrideSyncFn","overrideFetchFn","CfgSyncPlugin","_extensionConfig","_mainConfig","_evtName","_cfgUrl","_timeoutHandle","_receiveChanges","_broadcastChanges","_blkCdnCfg","_fetchTimeout","_retryCnt","_onCfgChangeReceive","_nonOverrideConfigs","_fetchFn","_overrideFetchFn","_overrideSyncFn","_paused","pause","_clearScheduledTimer","resume","_setupTimer","setCfg","_setCfg","_sendCfgsyncEvents","updateEventListenerName","_updateEventListenerName","_eventOff","preBlkCdn","newEvtName","_getFetchFnInterface","isAutoSync","global_1","_addEventListener","_fetchSender","fetchFn","xhr_1","DONE","JSON_1","newCfg","_replaceTartgetByKeys","global_2","cfgEvent","_cfg","STR_DURATION","_DYN_TAGS","_DYN_DEVICE_TYPE","_DYN__GET","_DYN_ENQUEUE","_DYN_EVENTS_LIMIT_IN_MEM","_DYN_ITEM","_DYN_EMIT_LINE_DELIMITED_0","_DYN_CLEAR","_DYN_MARK_AS_SENT","_DYN_CLEAR_SENT","_DYN_BUFFER_OVERRIDE","_DYN__BUFFER__KEY","_DYN__SENT__BUFFER__KEY","_DYN_CONCAT","_DYN__MAX__BUFFER__SIZE","_DYN_TRIGGER_SEND","_DYN__SENDER","_DYN_ENDPOINT_URL","_DYN_CUSTOM_HEADERS","_DYN_MAX_BATCH_SIZE_IN_BY1","_DYN_ONUNLOAD_DISABLE_BEA2","_DYN_IS_BEACON_API_DISABL3","_DYN_ALWAYS_USE_XHR_OVERR4","_DYN_DISABLE_XHR","_DYN_ENABLE_SESSION_STORA5","_DYN__BUFFER","_DYN_ONUNLOAD_DISABLE_FET6","_DYN_DISABLE_SEND_BEACON_7","_DYN_ENABLE_SEND_PROMISE","_DYN_GET_SENDER_INST","_DYN_UNLOAD_TRANSPORTS","_DYN_CONVERT_UNDEFINED","_DYN_MAX_BATCH_INTERVAL","_DYN_SERIALIZE","_DYN__ON_ERROR","_DYN__ON_PARTIAL_SUCCESS","_DYN__ON_SUCCESS","_DYN_ITEMS_ACCEPTED","_DYN_ORI_PAYLOAD","_DYN_BASE_TYPE","_DYN_SAMPLE_RATE","_DYN_EVENTS_SEND_REQUEST","_DYN_GET_SAMPLING_SCORE","_DYN_GET_HASH_CODE_SCORE","strBaseType","strBaseData","strProperties","strTrue","_setValueIf","_extractPartAExtensions","envTags","itmExt","itmTags","extUser","user","authId","localId","extApp","app","sesId","extDevice","device","deviceClass","ip","model","web","browserLang","browserVer","envData","envBaseData","envProps","screenRes","userConsent","extOs","os","osVer","extTrace","tgs","tg","theTags","EnvelopeCreator","_extractPropsAndMeasurements","_convertPropsUndefinedToCustomDefinedValue","customUndefinedValue","_createEnvelope","iKeyNoDashes","EnvelopeCreatorInit","DependencyEnvelopeCreator","customMeasurements","bd","remoteDepData","responseCode","EventEnvelopeCreator","eventData","ExceptionEnvelopeCreator","exData","MetricEnvelopeCreator","baseMetricData","PageViewEnvelopeCreator","currentContextId","pageType","isLoggedIn","pageTags","pageViewData","PageViewPerformanceEnvelopeCreator","TraceEnvelopeCreator","BaseSendBuffer","_buffer","_bufferFullMessageSent","_maxRetryCnt","maxRetryCnt","_set","buffer","getItems","batchPayloads","payloads","payloadStr_1","canUseSessionStorage","newBuffer","SessionStorageSendBuffer","ArraySendBuffer","PREVIOUS_KEYS","bufferItems","_getBuffer","itemsInSentBuffer","previousItems","_getPreviousEvents","notDeliveredItems","_setBuffer","BUFFER_KEY","_removePayloadsFromBuffer","sentElements","unsentItems","sentItems","remaining","payloadStr","prefixedKey","_getBufferBase","bufferJson","buffer_1","_getItemsFromPreviousKey","prefixEvents","transFormedItems_1","internalItem","VERSION","SENT_BUFFER_KEY","MAX_BUFFER_SIZE","Serializer","output","_serializeObject","circularReferenceCheck","_serializeStringMap","_serializeArray","contract","isRequired","isHidden","isPresent","isObj","sources","expectedType","parseFloat","MIN_INPUT_LENGTH","HashCodeScoreGenerator","getHashCodeScore","score","getHashCode","INT_MAX_VALUE","charCodeAt","abs","SamplingScoreGenerator","hashCodeGenerator","keys","Sample","samplingScoreGenerator","EMPTY_STR","FetchSyncRequestSizeLimitBytes","_getResponseText","isOverrideFn","httpXHROverride","defaultAppInsightsChannelConfig","disableTelemetry","isRetryDisabled","retryCodes","EnvelopeTypeCreator","Sender","_consecutiveErrors","_retryAt","_serializer","_stamp_specific_redirects","_headers","_syncUnloadSender","_offlineListener","_endpointUrl","_orgEndpointUrl","_maxBatchSizeInBytes","_beaconSupported","_beaconOnUnloadSupported","_beaconNormalSupported","_customHeaders","_disableTelemetry","_convertUndefined","_isRetryDisabled","_maxBatchInterval","_sessionStorageUsed","_bufferOverrideUsed","_alwaysUseCustomSend","_fetchKeepAlive","_xhrSend","_fallbackSend","_disableBeaconSplit","_sendPostMgr","_retryCodes","_checkMaxSize","onunloadFlush","_doUnloadSend","addHeader","senderConfig","curExtUrl","coreUrl","customHeader","bufferOverride","shouldUpdate","_sample","_validateInstrumentationKey","sendPostConfig","_getSendPostMgrConfig","customInterface","httpInterface","syncInterface","xhrInterface","_doSend","_fetchKeepAliveSender","syncTransports","filter","transport","diagLogger","isValidate","_validate","aiEnvelope","_getEnvelope","payloadItem","isCompletelyIdle","getOfflineListener","_xhrReadyStateChange","countOfItemsInPayload","_isStringArr","forcedSender","_notifySendRequest","ieVer","getOfflineSupport","getUrl","createPayload","_createPayload","_serialize","_batch","shouldProcess","_onPartialSuccess","_xdrOnLoad","onCompleteFuncs","_getPayloadArr","resValue","_checkResponsStatus","canSend","_onBeaconRetry","responseURL","retry","reverse","errors_1","extracted","_isRetriable","statusCode","_resendPayload","internalPayload","_isSampledIn","defaultEnvelopeIkey","constructEnvelope","valid","_getHeaders","_getOnComplete","sendInterface","markAsSent","payloadData","_getPayload","incomingPayload","incomingSize","responseUrl","_appId","appId","_checkAndUpdateEndPointUrl","offlineBackOffMultiplier","beaconInst","droppedPayload","thePayload","payloadSize","syncFetchPayload","linearFactor","payload_1","_setRetryTime","SlotDelayInSeconds","delayInSeconds","backOffSlot","pow","backOffDelay","retryAfterTimeSpan","retryInterval","timerValue","_getNotifyMgr","sendRequest","disableValidation","disableInstrumentationKeyValidation","disableIKeyValidationFlag","UUID_Regex","regexp","orig","convertUndefined","creator","STR_PROPERTIES","_DYN_REQUEST_URL","_DYN_INST","_DYN_CONTEXT","_DYN_ABORTED","_DYN_TRACE_ID0","_DYN_SPAN_ID1","_DYN_INCLUDE_CORRELATION_2","_DYN_GET_ABSOLUTE_URL","_DYN_REQUEST_HEADERS","_DYN_TRACK_DEPENDENCY_DAT3","_DYN_ENABLE_REQUEST_HEADE4","_DYN_ENABLE_AJAX_ERROR_ST5","_DYN_ENABLE_AJAX_PERF_TRA6","_DYN_MAX_AJAX_CALLS_PER_V7","_DYN_EXCLUDE_REQUEST_FROM8","_DYN_ADD_REQUEST_CONTEXT","_DYN_DISABLE_AJAX_TRACKIN9","_DYN_AJAX_PERF_LOOKUP_DEL10","_DYN_DISABLE_FETCH_TRACKI11","_DYN_ENABLE_RESPONSE_HEAD12","_DYN_STATUS_TEXT","_DYN_HEADER_MAP","_DYN_OPEN_DONE","_DYN_SEND_DONE","_DYN_REQUEST_SENT_TIME","_DYN_ABORT_DONE","_DYN_GET_TRACE_ID","_DYN_GET_TRACE_FLAGS","_DYN_ERROR_STATUS_TEXT","_DYN_STATE_CHANGE_ATTACHE13","_DYN_RESPONSE_TEXT","_DYN_RESPONSE_FINISHED_TI14","_DYN__CREATE_TRACK_ITEM","_DYN_RESPONSE","_DYN_GET_ALL_RESPONSE_HEA15","_DYN_GET_PART_APROPS","_DYN_PERF_MARK","_DYN_PERF_TIMING","_DYN_AJAX_DIAGNOSTICS_MES16","_DYN_CORRELATION_CONTEXT","_DYN_AJAX_TOTAL_DURATION","_DYN_EVENT_TRACE_CTX","_calcPerfDuration","resourceEntry","_setPerfDuration","_setPerfValue","strPerf","perfData","_populatePerfData","ajaxData","dependency","propsSet","strName","strStart","strEnd","strDomainLookup","strConnect","strRedirect","strRequest","strResponse","strStartTime","strDomainLookupStart","strDomainLookupEnd","strConnectStart","strConnectEnd","strRequestStart","strRequestEnd","strResponseStart","strResponseEnd","strRedirectStart","strRedirectEnd","strTransferSize","strEncodedBodySize","strDecodedBodySize","strServerTiming","serverTiming","server_1","perfAttempts","XHRMonitoringState","setRequestHeaderDone","ajaxRecord","strResponseText","completed","requestHeadersSize","responseReceivingDuration","callbackDuration","requestSize","responseStartedTime","callbackFinishedTime","endTime","xhrMonitoringState","clientFailure","getAbsoluteUrl","getPathName","ajaxType","enableRequestHeaderTracking","getResponse","ajaxTotalDuration","requestSentTime","responseFinishedTime","headerMap","responseHeaders","responseType","partA","traceExt","strDiagLog","AJAX_DATA_CONTAINER","STR_FETCH","ERROR_HEADER","ERROR_PREFIX","ERROR_POSTFIX","ERROR_NOT_SENT","CORRELATION_HEADER_ERROR","CUSTOM_REQUEST_CONTEXT_ERROR","FAILED_TO_CALCULATE_DURATION_ERROR","_markCount","_supportsFetch","_global","strPrototype","_supportsAjaxMonitoring","ajaxMonitorInstance","ajaxDataId","abort","xhrData","xh","theOpen","_throwInternalCritical","_getAjaxData","_addSharedXhrHeaders","_isHeaderSet","_getFailedAjaxDiagnosticsMessage","_throwInternalWarning","_createErrorCallbackFunc","internalMessage","ajaxDiagnosticsMessage","_ajaxDataId","_indexOf","container","theHandler","_processDependencyContainer","_processDependencyListeners","initializersCount","aborted","BLOB_CORE","DfltAjaxCorrelationHeaderExDomains","_internalExcludeEndpoints","distributedTracingMode","maxAjaxPerfLookupAttempts","ignoreHeaders","addIntEndpoints","AjaxMonitor","_fetchInitialized","_xhrInitialized","_currentWindowHost","_enableRequestHeaderTracking","_enableAjaxErrorStatusText","_trackAjaxAttempts","_context","_isUsingW3CHeaders","_isUsingAIHeaders","_markPrefix","_enableAjaxPerfTracking","_maxAjaxCallsPerView","_enableResponseHeaderTracking","_disabledUrls","_disableAjaxTracking","_disableFetchTracking","_excludeRequestFromAutoTrackingPatterns","_addRequestContext","_dependencyHandlerId","_dependencyListeners","_dependencyInitializers","_ignoreHeaders","_maxAjaxPerfLookupAttempts","_ajaxPerfLookupDelay","_distributedTracingMode","_polyfillInitialized","_instrumentXhr","_instrumentFetch","_populateContext","trackDependencyData","_reportDependencyInternal","currentWindowHost","traceParent","addDependencyListener","dependencyListener","addDependencyInitializer","dependencyInitializer","propExt","_canIncludeHeaders","isPolyfill","polyfill","req","fetchData","_isDisabledRequest","_createFetchRecord","newInit","fetchData_1","_reportFetchMetrics","ajaxResponse","_getFetchCorrelationContext","responseHeaderMap_1","forEach","hkErr","_hookProto","_isMonitoredXhrInstance","_openHandler","_attachToOnReadyStateChange","_createMarkId","isDisabled","theUrl","theRegex","idx2","excludeAjaxDataValidation","ajaxValidation","initialized","spanID","xhrRequestData","ajaxDataCntr","_onAjaxComplete","exceptionText","_reportXhrError","failedProps","errorProps","_findPerfResourceEntry","_getAjaxCorrelationContext","responseHeaderMap_2","shift","sysProperties","responseHeadersString","getResponseHeader","performance_1","mark","markId","entries","getEntriesByName","initiatorType","trackCallback","reportError","perfMark","maxAttempts","retryDelay","attempt","locateResourceTiming","perfTiming","getEntries","entryType","clearMarks","_getFailedFetchDiagnosticsMessage","_reportFetchError","fetchDiagnosticsMessage","initializers","Application","Device","Internal","unloadHookContainer","sdkExtension","sdkVersion","Location","_DYN_SESSION_MANAGER","_DYN_IS_USER_COOKIE_SET","_DYN_IS_NEW_USER","_DYN_GET_TRACE_CTX","_DYN_TELEMETRY_TRACE","_DYN_APPLY_SESSION_CONTEX0","_DYN_APPLY_APPLICATION_CO1","_DYN_APPLY_DEVICE_CONTEXT","_DYN_APPLY_OPERATION_CONT2","_DYN_APPLY_USER_CONTEXT","_DYN_APPLY_OPERATING_SYST3","_DYN_APPLY_LOCATION_CONTE4","_DYN_APPLY_INTERNAL_CONTE5","_DYN_ACCOUNT_ID","_DYN_GET_SESSION_ID","_DYN_NAME_PREFIX","_DYN_SESSION_COOKIE_POSTF6","_DYN_USER_COOKIE_POSTFIX","_DYN_ID_LENGTH","_DYN_GET_NEW_ID","_DYN_AUTOMATIC_SESSION","_DYN_AUTHENTICATED_ID","_DYN_ACQUISITION_DATE","_DYN_RENEWAL_DATE","_DYN_JOIN","_DYN_COOKIE_SEPARATOR","_DYN_AUTH_USER_COOKIE_NAM7","SESSION_COOKIE_NAME","ACQUISITION_SPAN","RENEWAL_SPAN","COOKIE_UPDATE_INTERVAL","Session","_SessionManager","_storageNamePrefix","_cookieUpdatedTimestamp","_sessionExpirationMs","_sessionRenewalMs","sessionCookiePostfix","isExpired","session","_initializeAutomaticSession","timeSinceAcqMs","timeSinceRenewalMs","_renew","_setCookie","backup","_setStorage","_initializeAutomaticSessionWithData","storageValue","sessionData","sessionReset","tokens","acqMs","renewalMs","getNewId","automaticSession","acq","renewalPeriodMs","acqTimeLeftMs","cookie","renewal","TelemetryTrace","parentId","_validateUserInput","User","isNewUser","isUserCookieSet","userCookiePostfix","userCookieName","params","_generateNewId","newCookie","_generateNewCookie","_setUserCookie","authCookie","decodeURI","authCookieString","acqStr","accountAcquisitionDate","oneYear","setAuthenticatedUserContext","authenticatedUserId","accountId","storeInCookie","isInvalidInput","encodeURI","clearAuthenticatedUserContext","user_id","user_cookie","cookieSeparator","authUserCookieName","strExt","strTags","_removeEmpty","_nullResult","TelemetryContext","previousTraceCtx","application","internal","autoSession","build","agentVersion","snippetVer","sdkSrc","applyWebContext","cleanUp","undefString","nullValue","isBrowserLinkTrackingEnabled","PropertiesPlugin","_distributedTraceCtx","_previousTraceCtx","_disableUserInitMessage","theContext","userCtx","_processTelemetryInternal","disableUserInitMessage","_unloadHooks","breezeChannel","PropertiesPlugin$1","_AUTHENTICATED_USER_CONTEXT","_TRACK","STR_SNIPPET","STR_GET_COOKIE_MGR","STR_START_TRACK_PAGE","STR_STOP_TRACK_PAGE","STR_FLUSH","STR_START_TRACK_EVENT","STR_STOP_TRACK_EVENT","STR_ADD_TELEMETRY_INITIALIZER","STR_POLL_INTERNAL_LOGS","STR_GET_PLUGIN","STR_EVT_NAMESPACE","STR_TRACK_EVENT","STR_TRACK_TRACE","STR_TRACK_METRIC","STR_TRACK_PAGE_VIEW","STR_TRACK_EXCEPTION","STR_TRACK_DEPENDENCY_DATA","STR_SET_AUTHENTICATED_USER_CONTEXT","STR_CLEAR_AUTHENTICATED_USER_CONTEXT","CONFIG_ENDPOINT_URL","_DYN_QUEUE","_DYN_CONNECTION_STRING","_DYN_INSTRUMENTATIONKEY0","_DYN_USER_OVERRIDE_ENDPOI1","_DYN_ONUNLOAD_FLUSH","_DYN_ADD_HOUSEKEEPING_BEF2","_DYN_SEND_MESSAGE","_DYN_UPDATE_SNIPPET_DEFIN3","_c","_d","_internalSdkSrc","_ignoreUpdateSnippetProperties","IKEY_USAGE","CDN_USAGE","SDK_LOADER_VER","default_limit","default_interval","default_throttle_config","defaultConfigValues","_chkDiagLevel","extensionConfig","AppInsightsSku","snippet","dependencies","_sender","_snippetVersion","_houseKeepingNamespace","_core","_analyticsPlugin","_cfgSyncPlugin","_throttleMgr","_iKeySentMessage","_cdnSentMessage","_sdkVerSentMessage","sv","DependenciesPlugin","configCs","_parseCs","curCs","parsedCs","ikeyPromise","cs","ingest","flushDone","loadAppInsights","legacyMode","_updateSnippetProperties","_findSdkSourceFile","emptyQueue","defaultEnable","length_1","properties_1","appInsightsInstance","performHousekeeping_1","loadedPlugin","propertiesPlugin","_sessionManager","added_1","analyticsPlugin","_removePageEventHandlers","excludePageUnloadEvents","disablePageUnloadEvents","getSender","_getCurrentDependencies","cdns","scrpt","document","currentScript","url_1","src_1","ADS_PREFIX","ADS_SESSION_KEY","ConfigObjectClass","m","Map","configObj","getBoolean","getNumber","NaN","saveConfig","sessionStorage","configFromSession","configStr","configFromURL","decodeURIComponent","startsWith","initialise","configFromUser","ArmDesignSystem","assign","_persistConfig","defaultLanguage","documentElement","getAttribute","Languages","EN","setAttribute","defaultTheme","Themes","DEFAULT","Dictionary","pipeline","ApplicationInsights","environment","trackPageView","globalScripts","appGlobalScript"],"sources":["node_modules/rollup-plugin-node-polyfills/polyfills/process-es6.js","node_modules/@nevware21/ts-utils/dist/es5/mod/ts-utils.js","node_modules/@microsoft/dynamicproto-js/dist-es5/DynamicProto.js","node_modules/@microsoft/applicationinsights-shims/dist-es5/Constants.js","node_modules/@microsoft/applicationinsights-shims/dist-es5/TsLibShims.js","node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK.Enums/EnumHelperFuncs.js","node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK.Enums/InitActiveStatusEnum.js","node_modules/@microsoft/applicationinsights-core-js/dist-es5/__DynamicConstants.js","node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/AggregationError.js","node_modules/@nevware21/ts-async/dist/es5/mod/ts-async.js","node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/InternalConstants.js","node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/HelperFuncs.js","node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/EnvUtils.js","node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/RandomHelper.js","node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/DataCacheHelper.js","node_modules/@microsoft/applicationinsights-core-js/dist-es5/Config/ConfigDefaults.js","node_modules/@microsoft/applicationinsights-core-js/dist-es5/Config/DynamicSupport.js","node_modules/@microsoft/applicationinsights-core-js/dist-es5/Config/DynamicProperty.js","node_modules/@microsoft/applicationinsights-core-js/dist-es5/Config/DynamicState.js","node_modules/@microsoft/applicationinsights-core-js/dist-es5/Config/DynamicConfig.js","node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/AsyncUtils.js","node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/Constants.js","node_modules/@microsoft/applicationinsights-core-js/dist-es5/Config/ConfigDefaultHelpers.js","node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/DbgExtensionUtils.js","node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/DiagnosticLogger.js","node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/CookieMgr.js","node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/NotificationManager.js","node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/PerfManager.js","node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/CoreUtils.js","node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/W3cTraceParent.js","node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/TelemetryHelpers.js","node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/ProcessTelemetryContext.js","node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/UnloadHandlerContainer.js","node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/UnloadHookContainer.js","node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/BaseTelemetryPlugin.js","node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/TelemetryInitializerPlugin.js","node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/AppInsightsCore.js","node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/ResponseHelpers.js","node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/SenderPostManager.js","node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/EventHelpers.js","node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/InstrumentHooks.js","node_modules/@microsoft/applicationinsights-common/dist-es5/Constants.js","node_modules/@microsoft/applicationinsights-common/dist-es5/RequestResponseHeaders.js","node_modules/@microsoft/applicationinsights-common/dist-es5/__DynamicConstants.js","node_modules/@microsoft/applicationinsights-common/dist-es5/Telemetry/Common/DataSanitizer.js","node_modules/@microsoft/applicationinsights-common/dist-es5/UrlHelperFuncs.js","node_modules/@microsoft/applicationinsights-common/dist-es5/Util.js","node_modules/@microsoft/applicationinsights-common/dist-es5/Enums.js","node_modules/@microsoft/applicationinsights-common/dist-es5/StorageHelperFuncs.js","node_modules/@microsoft/applicationinsights-common/dist-es5/ThrottleMgr.js","node_modules/@microsoft/applicationinsights-common/dist-es5/ConnectionStringParser.js","node_modules/@microsoft/applicationinsights-common/dist-es5/Telemetry/Common/Envelope.js","node_modules/@microsoft/applicationinsights-common/dist-es5/Telemetry/Event.js","node_modules/@microsoft/applicationinsights-common/dist-es5/Telemetry/Exception.js","node_modules/@microsoft/applicationinsights-common/dist-es5/Telemetry/Common/DataPoint.js","node_modules/@microsoft/applicationinsights-common/dist-es5/Telemetry/Metric.js","node_modules/@microsoft/applicationinsights-common/dist-es5/HelperFuncs.js","node_modules/@microsoft/applicationinsights-common/dist-es5/Telemetry/PageView.js","node_modules/@microsoft/applicationinsights-common/dist-es5/Telemetry/RemoteDependencyData.js","node_modules/@microsoft/applicationinsights-common/dist-es5/Telemetry/Trace.js","node_modules/@microsoft/applicationinsights-common/dist-es5/Telemetry/PageViewPerformance.js","node_modules/@microsoft/applicationinsights-common/dist-es5/Telemetry/Common/Data.js","node_modules/@microsoft/applicationinsights-common/dist-es5/Interfaces/Contracts/ContextTagKeys.js","node_modules/@microsoft/applicationinsights-common/dist-es5/TelemetryItemCreator.js","node_modules/@microsoft/applicationinsights-common/dist-es5/Interfaces/PartAExtensions.js","node_modules/@microsoft/applicationinsights-common/dist-es5/DomHelperFuncs.js","node_modules/@microsoft/applicationinsights-common/dist-es5/Offline.js","node_modules/@microsoft/applicationinsights-common/dist-es5/applicationinsights-common.js","node_modules/@microsoft/applicationinsights-analytics-js/dist-es5/__DynamicConstants.js","node_modules/@microsoft/applicationinsights-analytics-js/dist-es5/JavaScriptSDK/Telemetry/PageViewManager.js","node_modules/@microsoft/applicationinsights-analytics-js/dist-es5/JavaScriptSDK/Telemetry/PageViewPerformanceManager.js","node_modules/@microsoft/applicationinsights-analytics-js/dist-es5/JavaScriptSDK/Telemetry/PageVisitTimeManager.js","node_modules/@microsoft/applicationinsights-analytics-js/dist-es5/JavaScriptSDK/Timing.js","node_modules/@microsoft/applicationinsights-analytics-js/dist-es5/JavaScriptSDK/AnalyticsPlugin.js","node_modules/@microsoft/applicationinsights-cfgsync-js/dist-es5/__DynamicConstants.js","node_modules/@microsoft/applicationinsights-cfgsync-js/dist-es5/CfgSyncHelperFuncs.js","node_modules/@microsoft/applicationinsights-cfgsync-js/dist-es5/CfgSyncPlugin.js","node_modules/@microsoft/applicationinsights-channel-js/dist-es5/InternalConstants.js","node_modules/@microsoft/applicationinsights-channel-js/dist-es5/__DynamicConstants.js","node_modules/@microsoft/applicationinsights-channel-js/dist-es5/EnvelopeCreator.js","node_modules/@microsoft/applicationinsights-channel-js/dist-es5/SendBuffer.js","node_modules/@microsoft/applicationinsights-channel-js/dist-es5/Serializer.js","node_modules/@microsoft/applicationinsights-channel-js/dist-es5/TelemetryProcessors/SamplingScoreGenerators/HashCodeScoreGenerator.js","node_modules/@microsoft/applicationinsights-channel-js/dist-es5/TelemetryProcessors/SamplingScoreGenerators/SamplingScoreGenerator.js","node_modules/@microsoft/applicationinsights-channel-js/dist-es5/TelemetryProcessors/Sample.js","node_modules/@microsoft/applicationinsights-channel-js/dist-es5/Sender.js","node_modules/@microsoft/applicationinsights-dependencies-js/dist-es5/InternalConstants.js","node_modules/@microsoft/applicationinsights-dependencies-js/dist-es5/__DynamicConstants.js","node_modules/@microsoft/applicationinsights-dependencies-js/dist-es5/ajaxRecord.js","node_modules/@microsoft/applicationinsights-dependencies-js/dist-es5/ajax.js","node_modules/@microsoft/applicationinsights-properties-js/dist-es5/Context/Application.js","node_modules/@microsoft/applicationinsights-properties-js/dist-es5/Context/Device.js","node_modules/@microsoft/applicationinsights-properties-js/dist-es5/Context/Internal.js","node_modules/@microsoft/applicationinsights-properties-js/dist-es5/Context/Location.js","node_modules/@microsoft/applicationinsights-properties-js/dist-es5/__DynamicConstants.js","node_modules/@microsoft/applicationinsights-properties-js/dist-es5/Context/Session.js","node_modules/@microsoft/applicationinsights-properties-js/dist-es5/Context/TelemetryTrace.js","node_modules/@microsoft/applicationinsights-properties-js/dist-es5/Context/User.js","node_modules/@microsoft/applicationinsights-properties-js/dist-es5/TelemetryContext.js","node_modules/@microsoft/applicationinsights-properties-js/dist-es5/PropertiesPlugin.js","node_modules/@microsoft/applicationinsights-web/dist-es5/InternalConstants.js","node_modules/@microsoft/applicationinsights-web/dist-es5/__DynamicConstants.js","node_modules/@microsoft/applicationinsights-web/dist-es5/AISku.js","src/components/core/classes/Config.ts","src/components/core/global/ads-global.ts","@stencil/core/internal/app-globals"],"sourcesContent":["// shim for using process in browser\n// based off https://github.com/defunctzombie/node-process/blob/master/browser.js\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\nvar cachedSetTimeout = defaultSetTimout;\nvar cachedClearTimeout = defaultClearTimeout;\nif (typeof global.setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n}\nif (typeof global.clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n}\n\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\nfunction nextTick(fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n}\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nvar title = 'browser';\nvar platform = 'browser';\nvar browser = true;\nvar env = {};\nvar argv = [];\nvar version = ''; // empty string to avoid regexp issues\nvar versions = {};\nvar release = {};\nvar config = {};\n\nfunction noop() {}\n\nvar on = noop;\nvar addListener = noop;\nvar once = noop;\nvar off = noop;\nvar removeListener = noop;\nvar removeAllListeners = noop;\nvar emit = noop;\n\nfunction binding(name) {\n throw new Error('process.binding is not supported');\n}\n\nfunction cwd () { return '/' }\nfunction chdir (dir) {\n throw new Error('process.chdir is not supported');\n}function umask() { return 0; }\n\n// from https://github.com/kumavis/browser-process-hrtime/blob/master/index.js\nvar performance = global.performance || {};\nvar performanceNow =\n performance.now ||\n performance.mozNow ||\n performance.msNow ||\n performance.oNow ||\n performance.webkitNow ||\n function(){ return (new Date()).getTime() };\n\n// generate timestamp or delta\n// see http://nodejs.org/api/process.html#process_process_hrtime\nfunction hrtime(previousTimestamp){\n var clocktime = performanceNow.call(performance)*1e-3;\n var seconds = Math.floor(clocktime);\n var nanoseconds = Math.floor((clocktime%1)*1e9);\n if (previousTimestamp) {\n seconds = seconds - previousTimestamp[0];\n nanoseconds = nanoseconds - previousTimestamp[1];\n if (nanoseconds<0) {\n seconds--;\n nanoseconds += 1e9;\n }\n }\n return [seconds,nanoseconds]\n}\n\nvar startTime = new Date();\nfunction uptime() {\n var currentTime = new Date();\n var dif = currentTime - startTime;\n return dif / 1000;\n}\n\nvar browser$1 = {\n nextTick: nextTick,\n title: title,\n browser: browser,\n env: env,\n argv: argv,\n version: version,\n versions: versions,\n on: on,\n addListener: addListener,\n once: once,\n off: off,\n removeListener: removeListener,\n removeAllListeners: removeAllListeners,\n emit: emit,\n binding: binding,\n cwd: cwd,\n chdir: chdir,\n umask: umask,\n hrtime: hrtime,\n platform: platform,\n release: release,\n config: config,\n uptime: uptime\n};\n\nexport default browser$1;\nexport { addListener, argv, binding, browser, chdir, config, cwd, emit, env, hrtime, nextTick, off, on, once, platform, release, removeAllListeners, removeListener, title, umask, uptime, version, versions };\n","/*! https://github.com/nevware21/ts-utils v0.11.5 */\n/*\n * Copyright (c) NevWare21 Solutions LLC and contributors. All rights reserved.\n * Licensed under the MIT license.\n */\n/*#__NO_SIDE_EFFECTS__*/\nfunction _pureAssign(func1, func2) {\n return func1 || func2;\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction _pureRef(value, name) {\n return value[name];\n}\n\nvar UNDEF_VALUE = undefined;\nvar NULL_VALUE = null;\nvar EMPTY = \"\";\nvar FUNCTION = \"function\";\nvar OBJECT = \"object\";\nvar PROTOTYPE = \"prototype\";\nvar __PROTO__ = \"__proto__\";\nvar UNDEFINED = \"undefined\";\nvar CONSTRUCTOR = \"constructor\";\nvar SYMBOL = \"Symbol\";\nvar POLYFILL_TAG = \"_polyfill\";\nvar LENGTH = \"length\";\nvar NAME = \"name\";\nvar CALL = \"call\";\nvar TO_STRING = \"toString\";\nvar ObjClass = ( /*#__PURE__*/_pureAssign(Object));\nvar ObjProto = ( /*#__PURE__*/_pureRef(ObjClass, PROTOTYPE));\nvar StrCls = ( /*#__PURE__*/_pureAssign(String));\nvar StrProto = ( /*#__PURE__*/_pureRef(StrCls, PROTOTYPE));\nvar MathCls = ( /*#__PURE__*/_pureAssign(Math));\nvar ArrCls = ( /*#__PURE__*/_pureAssign(Array));\nvar ArrProto = ( /*#__PURE__*/_pureRef(ArrCls, PROTOTYPE));\nvar ArrSlice = ( /*#__PURE__*/_pureRef(ArrProto, \"slice\"));\n\nfunction safe(func, argArray) {\n try {\n return {\n v: func.apply(this, argArray)\n };\n }\n catch (e) {\n return { e: e };\n }\n}\n\n/*#__NO_SIDE_EFFECTS__*/\nfunction safeGet(cb, defValue) {\n var result = safe(cb);\n return result.e ? defValue : result.v;\n}\n\nvar _primitiveTypes;\n/*#__NO_SIDE_EFFECTS__*/\nfunction _createIs(theType) {\n return function (value) {\n return typeof value === theType;\n };\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction _createObjIs(theName) {\n var theType = \"[object \" + theName + \"]\";\n return function (value) {\n return !!(value && objToString(value) === theType);\n };\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction objToString(value) {\n return ObjProto[TO_STRING].call(value);\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction isTypeof(value, theType) {\n return typeof value === theType;\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction isUndefined(value) {\n return typeof value === UNDEFINED || value === UNDEFINED;\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction isStrictUndefined(arg) {\n return !isDefined(arg);\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction isNullOrUndefined(value) {\n return value === NULL_VALUE || isUndefined(value);\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction isStrictNullOrUndefined(value) {\n return value === NULL_VALUE || !isDefined(value);\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction isDefined(arg) {\n return !!arg || arg !== UNDEF_VALUE;\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction isPrimitive(value) {\n return value === NULL_VALUE || isPrimitiveType(typeof value);\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction isPrimitiveType(theType) {\n !_primitiveTypes && (_primitiveTypes = [\"string\", \"number\", \"boolean\", UNDEFINED, \"symbol\", \"bigint\"]);\n return !!(theType !== OBJECT && _primitiveTypes.indexOf(theType) !== -1);\n}\nvar isString = ( /*#__PURE__*/_createIs(\"string\"));\nvar isFunction = ( /*#__PURE__*/_createIs(FUNCTION));\n/*#__NO_SIDE_EFFECTS__*/\nfunction isObject(value) {\n if (!value && isNullOrUndefined(value)) {\n return false;\n }\n return !!value && typeof value === OBJECT;\n}\nvar isArray = ( /* #__PURE__*/_pureRef(ArrCls, \"isArray\"));\nvar isDate = ( /*#__PURE__*/_createObjIs(\"Date\"));\nvar isNumber = ( /*#__PURE__*/_createIs(\"number\"));\nvar isBoolean = ( /*#__PURE__*/_createIs(\"boolean\"));\nvar isRegExp = ( /*#__PURE__*/_createObjIs(\"RegExp\"));\nvar isFile = ( /*#__PURE__*/_createObjIs(\"File\"));\nvar isFormData = ( /*#__PURE__*/_createObjIs(\"FormData\"));\nvar isBlob = ( /*#__PURE__*/_createObjIs(\"Blob\"));\nvar isArrayBuffer = ( /*#__PURE__*/_createObjIs(\"ArrayBuffer\"));\nvar isError = ( /*#__PURE__*/_createObjIs(\"Error\"));\n/*#__NO_SIDE_EFFECTS__*/\nfunction isPromiseLike(value) {\n return !!(value && value.then && isFunction(value.then));\n}\nvar isThenable = isPromiseLike;\n/*#__NO_SIDE_EFFECTS__*/\nfunction isPromise(value) {\n return !!(value && value.then && value.catch && isFunction(value.then) && isFunction(value.catch));\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction isNotTruthy(value) {\n return !value || !isTruthy(value);\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction isTruthy(value) {\n return !(!value || safeGet(function () { return !(value && (0 + value)); }, !value));\n}\n\nvar objGetOwnPropertyDescriptor = ( /* #__PURE__ */_pureRef(ObjClass, \"getOwnPropertyDescriptor\"));\n\n/*#__NO_SIDE_EFFECTS__*/\nfunction objHasOwnProperty(obj, prop) {\n return !!obj && ObjProto.hasOwnProperty[CALL](obj, prop);\n}\n\nvar objHasOwn = ( /*#__PURE__*/_pureAssign(( /* #__PURE__ */_pureRef(ObjClass, \"hasOwn\")), polyObjHasOwn));\n/*#__NO_SIDE_EFFECTS__*/\nfunction polyObjHasOwn(obj, prop) {\n return objHasOwnProperty(obj, prop) || !!objGetOwnPropertyDescriptor(obj, prop);\n}\n\nfunction objForEachKey(theObject, callbackfn, thisArg) {\n if (theObject && isObject(theObject)) {\n for (var prop in theObject) {\n if (objHasOwn(theObject, prop)) {\n if (callbackfn[CALL](thisArg || theObject, prop, theObject[prop]) === -1) {\n break;\n }\n }\n }\n }\n}\n\nvar propMap = {\n e: \"enumerable\",\n c: \"configurable\",\n v: \"value\",\n w: \"writable\",\n g: \"get\",\n s: \"set\"\n};\n/*#__NO_SIDE_EFFECTS__*/\nfunction _createProp(value) {\n var prop = {};\n prop[propMap[\"c\"]] = true;\n prop[propMap[\"e\"]] = true;\n if (value.l) {\n prop.get = function () { return value.l.v; };\n var desc = objGetOwnPropertyDescriptor(value.l, \"v\");\n if (desc && desc.set) {\n prop.set = function (newValue) {\n value.l.v = newValue;\n };\n }\n }\n objForEachKey(value, function (key, value) {\n prop[propMap[key]] = isStrictUndefined(value) ? prop[propMap[key]] : value;\n });\n return prop;\n}\nvar objDefineProp = ( /*#__PURE__*/_pureRef(ObjClass, \"defineProperty\"));\nvar objDefineProperties = ( /*#__PURE__*/_pureRef(ObjClass, \"defineProperties\"));\nfunction objDefineGet(target, key, value, configurable, enumerable) {\n var _a;\n return objDefineProp(target, key, _createProp((_a = {\n e: enumerable,\n c: configurable\n },\n _a[isFunction(value) ? \"g\" : \"v\"] = value,\n _a)));\n}\nfunction objDefineAccessors(target, prop, getProp, setProp, configurable, enumerable) {\n var desc = {\n e: enumerable,\n c: configurable\n };\n if (getProp) {\n desc.g = getProp;\n }\n if (setProp) {\n desc.s = setProp;\n }\n return objDefineProp(target, prop, _createProp(desc));\n}\nfunction objDefine(target, key, propDesc) {\n return objDefineProp(target, key, _createProp(propDesc));\n}\nfunction objDefineProps(target, propDescMap) {\n var props = {};\n objForEachKey(propDescMap, function (key, value) {\n props[key] = _createProp(value);\n });\n return objDefineProperties(target, props);\n}\n\n/*#__NO_SIDE_EFFECTS__*/\nfunction _createKeyValueMap(values, keyType, valueType, completeFn, writable) {\n var theMap = {};\n objForEachKey(values, function (key, value) {\n _assignMapValue(theMap, key, keyType ? value : key, writable);\n _assignMapValue(theMap, value, valueType ? value : key, writable);\n });\n return completeFn ? completeFn(theMap) : theMap;\n}\nfunction _assignMapValue(theMap, key, value, writable) {\n objDefineProp(theMap, key, {\n value: value,\n enumerable: true,\n writable: !!writable\n });\n}\n\nvar asString = ( /* #__PURE__ */_pureAssign(StrCls));\n\nvar ERROR_TYPE = \"[object Error]\";\n/*#__NO_SIDE_EFFECTS__*/\nfunction dumpObj(object, format) {\n var propertyValueDump = EMPTY;\n var objType = ObjProto[TO_STRING][CALL](object);\n if (objType === ERROR_TYPE) {\n object = { stack: asString(object.stack), message: asString(object.message), name: asString(object.name) };\n }\n try {\n propertyValueDump = JSON.stringify(object, NULL_VALUE, format ? ((typeof format === \"number\") ? format : 4) : UNDEF_VALUE);\n propertyValueDump = (propertyValueDump ? propertyValueDump.replace(/\"(\\w+)\"\\s*:\\s{0,1}/g, \"$1: \") : NULL_VALUE) || asString(object);\n }\n catch (e) {\n propertyValueDump = \" - \" + dumpObj(e, format);\n }\n return objType + \": \" + propertyValueDump;\n}\n\nfunction throwError(message) {\n throw new Error(message);\n}\nfunction throwTypeError(message) {\n throw new TypeError(message);\n}\nfunction throwRangeError(message) {\n throw new RangeError(message);\n}\n\n/*#__NO_SIDE_EFFECTS__*/\nfunction polyObjKeys(obj) {\n if (!isObject(obj) || obj === NULL_VALUE) {\n throwTypeError(\"non-object \" + dumpObj(obj));\n }\n var result = [];\n for (var prop in obj) {\n if (objHasOwn(obj, prop)) {\n result.push(prop);\n }\n }\n return result;\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction polyObjEntries(value) {\n var result = [];\n objForEachKey(value, function (key, value) {\n result.push([key, value]);\n });\n return result;\n}\n\nvar _objFreeze = ( /* #__PURE__ */_pureRef(ObjClass, \"freeze\"));\nfunction _doNothing(value) {\n return value;\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction _getProto(value) {\n return value[__PROTO__] || NULL_VALUE;\n}\nvar objAssign = ( /*#__PURE__*/_pureRef(ObjClass, \"assign\"));\nvar objKeys = ( /*#__PURE__*/_pureRef(ObjClass, \"keys\"));\nfunction objDeepFreeze(value) {\n if (_objFreeze) {\n objForEachKey(value, function (key, value) {\n if (isArray(value) || isObject(value)) {\n objDeepFreeze(value);\n }\n });\n }\n return objFreeze(value);\n}\nvar objFreeze = ( /* #__PURE__*/_pureAssign(_objFreeze, _doNothing));\nvar objSeal = ( /* #__PURE__*/_pureAssign(( /* #__PURE__*/_pureRef(ObjClass, \"seal\")), _doNothing));\nvar objGetPrototypeOf = ( /* #__PURE__*/_pureAssign(( /* #__PURE__*/_pureRef(ObjClass, \"getPrototypeOf\")), _getProto));\nvar objEntries = ( /* #__PURE__*/_pureAssign(( /* #__PURE__*/_pureRef(ObjClass, \"entries\")), polyObjEntries));\n\n/*#__NO_SIDE_EFFECTS__*/\nfunction createEnum(values) {\n return _createKeyValueMap(values, 1 , 0 , objFreeze);\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction createEnumKeyMap(values) {\n return _createKeyValueMap(values, 0 , 0 , objFreeze);\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction createEnumValueMap(values) {\n return _createKeyValueMap(values, 1 , 1 , objFreeze);\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction createSimpleMap(values) {\n var mapClass = {};\n objForEachKey(values, function (key, value) {\n _assignMapValue(mapClass, key, value[1]);\n _assignMapValue(mapClass, value[0], value[1]);\n });\n return objFreeze(mapClass);\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction createTypeMap(values) {\n return createSimpleMap(values);\n}\n\nvar _wellKnownSymbolMap = /*#__PURE__*/ createEnumKeyMap({\n asyncIterator: 0 ,\n hasInstance: 1 ,\n isConcatSpreadable: 2 ,\n iterator: 3 ,\n match: 4 ,\n matchAll: 5 ,\n replace: 6 ,\n search: 7 ,\n species: 8 ,\n split: 9 ,\n toPrimitive: 10 ,\n toStringTag: 11 ,\n unscopables: 12\n});\n\nvar GLOBAL_CONFIG_KEY = \"__tsUtils$gblCfg\";\nvar _globalCfg;\n/*#__NO_SIDE_EFFECTS__*/\nfunction _getGlobalValue() {\n var result;\n if (typeof globalThis !== UNDEFINED) {\n result = globalThis;\n }\n if (!result && typeof self !== UNDEFINED) {\n result = self;\n }\n if (!result && typeof window !== UNDEFINED) {\n result = window;\n }\n if (!result && typeof global !== UNDEFINED) {\n result = global;\n }\n return result;\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction _getGlobalConfig() {\n if (!_globalCfg) {\n var gbl = safe(_getGlobalValue).v || {};\n _globalCfg = gbl[GLOBAL_CONFIG_KEY] = gbl[GLOBAL_CONFIG_KEY] || {};\n }\n return _globalCfg;\n}\n\nvar _unwrapFunction = ( _unwrapFunctionWithPoly);\n/*#__NO_SIDE_EFFECTS__*/\nfunction _unwrapFunctionWithPoly(funcName, clsProto, polyFunc) {\n var clsFn = clsProto ? clsProto[funcName] : NULL_VALUE;\n return function (thisArg) {\n var theFunc = (thisArg ? thisArg[funcName] : NULL_VALUE) || clsFn;\n if (theFunc || polyFunc) {\n var theArgs = arguments;\n return (theFunc || polyFunc).apply(thisArg, theFunc ? ArrSlice[CALL](theArgs, 1) : theArgs);\n }\n throwTypeError(\"\\\"\" + asString(funcName) + \"\\\" not defined for \" + dumpObj(thisArg));\n };\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction _unwrapProp(propName) {\n return function (thisArg) {\n return thisArg[propName];\n };\n}\n\nvar mathMin = ( /*#__PURE__*/_pureRef(MathCls, \"min\"));\nvar mathMax = ( /*#__PURE__*/_pureRef(MathCls, \"max\"));\n\nvar strSlice = ( /*#__PURE__*/_unwrapFunction(\"slice\", StrProto));\n\nvar strSubstring = ( /*#__PURE__*/_unwrapFunction(\"substring\", StrProto));\nvar strSubstr = ( /*#__PURE__*/_unwrapFunctionWithPoly(\"substr\", StrProto, polyStrSubstr));\n/*#__NO_SIDE_EFFECTS__*/\nfunction polyStrSubstr(value, start, length) {\n if (isNullOrUndefined(value)) {\n throwTypeError(\"Invalid \" + dumpObj(value));\n }\n if (length < 0) {\n return EMPTY;\n }\n start = start || 0;\n if (start < 0) {\n start = mathMax(start + value[LENGTH], 0);\n }\n if (isUndefined(length)) {\n return strSlice(value, start);\n }\n return strSlice(value, start, start + length);\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction strLeft(value, count) {\n return strSubstring(value, 0, count);\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction strRight(value, count) {\n return count <= 0 ? EMPTY : (value[LENGTH] > count ? strSlice(value, -count) : value);\n}\n\nvar UNIQUE_REGISTRY_ID = \"_urid\";\nvar _polySymbols;\n/*#__NO_SIDE_EFFECTS__*/\nfunction _globalSymbolRegistry() {\n if (!_polySymbols) {\n var gblCfg = _getGlobalConfig();\n _polySymbols = gblCfg.gblSym = gblCfg.gblSym || { k: {}, s: {} };\n }\n return _polySymbols;\n}\nvar _wellKnownSymbolCache;\n/*#__NO_SIDE_EFFECTS__*/\nfunction polyNewSymbol(description) {\n var theSymbol = {\n description: asString(description),\n toString: function () { return SYMBOL + \"(\" + description + \")\"; }\n };\n theSymbol[POLYFILL_TAG] = true;\n return theSymbol;\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction polySymbolFor(key) {\n var registry = _globalSymbolRegistry();\n if (!objHasOwn(registry.k, key)) {\n var newSymbol_1 = polyNewSymbol(key);\n var regId_1 = objKeys(registry.s).length;\n newSymbol_1[UNIQUE_REGISTRY_ID] = function () { return regId_1 + \"_\" + newSymbol_1[TO_STRING](); };\n registry.k[key] = newSymbol_1;\n registry.s[newSymbol_1[UNIQUE_REGISTRY_ID]()] = asString(key);\n }\n return registry.k[key];\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction polySymbolKeyFor(sym) {\n if (!sym || !sym[TO_STRING] || strSubstring(sym[TO_STRING](), 0, 6) != SYMBOL) {\n throwTypeError(sym + \" is not a symbol\");\n }\n var regId = sym[POLYFILL_TAG] && sym[UNIQUE_REGISTRY_ID] && sym[UNIQUE_REGISTRY_ID]();\n return regId ? _globalSymbolRegistry().s[regId] : undefined;\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction polyGetKnownSymbol(name) {\n !_wellKnownSymbolCache && (_wellKnownSymbolCache = {});\n var result;\n var knownName = _wellKnownSymbolMap[name];\n if (knownName) {\n result = _wellKnownSymbolCache[knownName] = _wellKnownSymbolCache[knownName] || polyNewSymbol(SYMBOL + \".\" + knownName);\n }\n return result;\n}\n\nvar _globalLazyTestHooks;\nfunction _initTestHooks() {\n _globalLazyTestHooks = _getGlobalConfig();\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction getLazy(cb) {\n var lazyValue = {};\n !_globalLazyTestHooks && _initTestHooks();\n lazyValue.b = _globalLazyTestHooks.lzy;\n objDefineProp(lazyValue, \"v\", {\n configurable: true,\n get: function () {\n var result = cb();\n if (!_globalLazyTestHooks.lzy) {\n objDefineProp(lazyValue, \"v\", {\n value: result\n });\n }\n lazyValue.b = _globalLazyTestHooks.lzy;\n return result;\n }\n });\n return lazyValue;\n}\nfunction setBypassLazyCache(newValue) {\n !_globalLazyTestHooks && _initTestHooks();\n _globalLazyTestHooks.lzy = newValue;\n}\n\n/*#__NO_SIDE_EFFECTS__*/\nfunction createCachedValue(value) {\n return objDefineProp({\n toJSON: function () { return value; }\n }, \"v\", { value: value });\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction createDeferredCachedValue(cb) {\n var theValue = {\n toJSON: function () { return theValue.v; }\n };\n return objDefineProp(theValue, \"v\", {\n get: function () {\n var result = cb();\n cb = NULL_VALUE;\n objDefineProp(theValue, \"v\", { value: result });\n return result;\n },\n configurable: true\n });\n}\n\nvar WINDOW = \"window\";\nvar _cachedGlobal;\nfunction _getGlobalInstFn(getFn, theArgs) {\n var cachedValue;\n return function () {\n !_globalLazyTestHooks && _initTestHooks();\n if (!cachedValue || _globalLazyTestHooks.lzy) {\n cachedValue = createCachedValue(safe(getFn, theArgs).v);\n }\n return cachedValue.v;\n };\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction lazySafeGetInst(name) {\n return getLazy(function () { return safe((getInst), [name]).v || UNDEF_VALUE; });\n}\nfunction getGlobal(useCached) {\n !_globalLazyTestHooks && _initTestHooks();\n if (!_cachedGlobal || useCached === false || _globalLazyTestHooks.lzy) {\n _cachedGlobal = createCachedValue(safe(_getGlobalValue).v || NULL_VALUE);\n }\n return _cachedGlobal.v;\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction getInst(name, useCached) {\n var gbl;\n if (!_cachedGlobal || useCached === false) {\n gbl = getGlobal(useCached);\n }\n else {\n gbl = _cachedGlobal.v;\n }\n if (gbl && gbl[name]) {\n return gbl[name];\n }\n if (name === WINDOW) {\n try {\n return window;\n }\n catch (e) {\n }\n }\n return NULL_VALUE;\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction hasDocument() {\n return !!( /*#__PURE__*/getDocument());\n}\nvar getDocument = ( /*#__PURE__*/_getGlobalInstFn(getInst, [\"document\"]));\n/*#__NO_SIDE_EFFECTS__*/\nfunction hasWindow() {\n return !!( /*#__PURE__*/getWindow());\n}\nvar getWindow = ( /*#__PURE__*/_getGlobalInstFn(getInst, [WINDOW]));\n/*#__NO_SIDE_EFFECTS__*/\nfunction hasNavigator() {\n return !!( /*#__PURE__*/getNavigator());\n}\nvar getNavigator = ( /*#__PURE__*/_getGlobalInstFn(getInst, [\"navigator\"]));\n/*#__NO_SIDE_EFFECTS__*/\nfunction hasHistory() {\n return !!( /*#__PURE__*/getHistory());\n}\nvar getHistory = ( /*#__PURE__*/_getGlobalInstFn(getInst, [\"history\"]));\nvar isNode = ( /*#__PURE__*/_getGlobalInstFn(function () {\n return !!( /*#__PURE__*/safe(function () { return (process && (process.versions || {}).node); }).v);\n}));\nvar isWebWorker = ( /*#__PURE__*/_getGlobalInstFn(function () {\n return !!( /*#__PURE__*/safe(function () { return self && self instanceof WorkerGlobalScope; }).v);\n}));\n\nvar _symbol;\nvar _symbolFor;\nvar _symbolKeyFor;\n/*#__NO_SIDE_EFFECTS__*/\nfunction _initSymbol() {\n _symbol = ( /*#__PURE__*/createCachedValue(safe((getInst), [SYMBOL]).v));\n return _symbol;\n}\nfunction _getSymbolKey(key) {\n var gblSym = ((!_globalLazyTestHooks.lzy ? _symbol : 0) || _initSymbol());\n return (gblSym.v ? gblSym.v[key] : UNDEF_VALUE);\n}\nvar isSymbol = ( /*#__PURE__*/_createIs(\"symbol\"));\n/*#__NO_SIDE_EFFECTS__*/\nfunction hasSymbol() {\n return !!( /*#__PURE__*/getSymbol());\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction getSymbol() {\n !_globalLazyTestHooks && _initTestHooks();\n return ((!_globalLazyTestHooks.lzy ? _symbol : 0) || _initSymbol()).v;\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction getKnownSymbol(name, noPoly) {\n var knownName = _wellKnownSymbolMap[name];\n !_globalLazyTestHooks && _initTestHooks();\n var sym = ((!_globalLazyTestHooks.lzy ? _symbol : 0) || _initSymbol());\n return sym.v ? sym.v[knownName || name] : (!noPoly ? polyGetKnownSymbol(name) : UNDEF_VALUE);\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction newSymbol(description, noPoly) {\n !_globalLazyTestHooks && _initTestHooks();\n var sym = ((!_globalLazyTestHooks.lzy ? _symbol : 0) || _initSymbol());\n return sym.v ? sym.v(description) : (!noPoly ? polyNewSymbol(description) : NULL_VALUE);\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction symbolFor(key) {\n !_globalLazyTestHooks && _initTestHooks();\n _symbolFor = ((!_globalLazyTestHooks.lzy ? _symbolFor : 0) || ( /*#__PURE__*/createCachedValue(safe((_getSymbolKey), [\"for\"]).v)));\n return (_symbolFor.v || polySymbolFor)(key);\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction symbolKeyFor(sym) {\n !_globalLazyTestHooks && _initTestHooks();\n _symbolKeyFor = ((!_globalLazyTestHooks.lzy ? _symbolKeyFor : 0) || ( /*#__PURE__*/createCachedValue(safe((_getSymbolKey), [\"keyFor\"]).v)));\n return (_symbolKeyFor.v || polySymbolKeyFor)(sym);\n}\n\n/*#__NO_SIDE_EFFECTS__*/\nfunction isIterator(value) {\n return !!value && isFunction(value.next);\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction isIterable(value) {\n return !isStrictNullOrUndefined(value) && isFunction(value[getKnownSymbol(3 )]);\n}\n\nvar _iterSymbol$1;\nfunction iterForOf(iter, callbackfn, thisArg) {\n if (iter) {\n if (!isIterator(iter)) {\n !_iterSymbol$1 && (_iterSymbol$1 = createCachedValue(getKnownSymbol(3 )));\n iter = iter[_iterSymbol$1.v] ? iter[_iterSymbol$1.v]() : NULL_VALUE;\n }\n if (isIterator(iter)) {\n var err = UNDEF_VALUE;\n var iterResult = UNDEF_VALUE;\n try {\n var count = 0;\n while (!(iterResult = iter.next()).done) {\n if (callbackfn[CALL](thisArg || iter, iterResult.value, count, iter) === -1) {\n break;\n }\n count++;\n }\n }\n catch (failed) {\n err = { e: failed };\n if (iter.throw) {\n iterResult = NULL_VALUE;\n iter.throw(err);\n }\n }\n finally {\n try {\n if (iterResult && !iterResult.done) {\n iter.return && iter.return(iterResult);\n }\n }\n finally {\n if (err) {\n // eslint-disable-next-line no-unsafe-finally\n throw err.e;\n }\n }\n }\n }\n }\n}\n\nfunction fnApply(fn, thisArg, argArray) {\n return fn.apply(thisArg, argArray);\n}\nfunction fnCall(fn, thisArg) {\n return fn.apply(thisArg, ArrSlice[CALL](arguments, 2));\n}\nfunction fnBind(fn, thisArg) {\n return fn.bind.apply(fn, ArrSlice[CALL](arguments, 1));\n}\n\nfunction arrAppend(target, elms) {\n if (!isUndefined(elms) && target) {\n if (isArray(elms)) {\n fnApply(target.push, target, elms);\n }\n else if (isIterator(elms) || isIterable(elms)) {\n iterForOf(elms, function (elm) {\n target.push(elm);\n });\n }\n else {\n target.push(elms);\n }\n }\n return target;\n}\n\nvar arrEvery = /*#__PURE__*/ _unwrapFunction(\"every\", ArrProto);\nvar arrFilter = /*#__PURE__*/ _unwrapFunction(\"filter\", ArrProto);\n\nfunction arrForEach(theArray, callbackfn, thisArg) {\n if (theArray) {\n var len = theArray[LENGTH] >>> 0;\n for (var idx = 0; idx < len; idx++) {\n if (idx in theArray) {\n if (callbackfn[CALL](thisArg || theArray, theArray[idx], idx, theArray) === -1) {\n break;\n }\n }\n }\n }\n}\n\nvar arrIndexOf = ( /*#__PURE__*/_unwrapFunction(\"indexOf\", ArrProto));\nvar arrLastIndexOf = ( /*#__PURE__*/_unwrapFunction(\"lastIndexOf\", ArrProto));\n\nvar arrMap = ( /*#__PURE__*/_unwrapFunction(\"map\", ArrProto));\n\nfunction arrSlice(theArray, start, end) {\n return ((theArray ? theArray[\"slice\"] : NULL_VALUE) || ArrSlice).apply(theArray, ArrSlice[CALL](arguments, 1));\n}\n\n/*#__NO_SIDE_EFFECTS__*/\nfunction polyIsArray(value) {\n if (isNullOrUndefined(value)) {\n return false;\n }\n return objToString(value) === \"[object Array]\";\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction polyArrIncludes(theArray, searchElement, fromIndex) {\n return arrIndexOf(theArray, searchElement, fromIndex) !== -1;\n}\nfunction polyArrFind(theArray, callbackFn, thisArg) {\n var result;\n var idx = polyArrFindIndex(theArray, callbackFn, thisArg);\n return idx !== -1 ? theArray[idx] : result;\n}\nfunction polyArrFindIndex(theArray, callbackFn, thisArg) {\n var result = -1;\n arrForEach(theArray, function (value, index) {\n if (callbackFn[CALL](thisArg | theArray, value, index, theArray)) {\n result = index;\n return -1;\n }\n });\n return result;\n}\nfunction polyArrFindLast(theArray, callbackFn, thisArg) {\n var result;\n var idx = polyArrFindLastIndex(theArray, callbackFn, thisArg);\n return idx !== -1 ? theArray[idx] : result;\n}\nfunction polyArrFindLastIndex(theArray, callbackFn, thisArg) {\n var result = -1;\n var len = theArray[LENGTH] >>> 0;\n for (var idx = len - 1; idx >= 0; idx--) {\n if (idx in theArray && callbackFn[CALL](thisArg | theArray, theArray[idx], idx, theArray)) {\n result = idx;\n break;\n }\n }\n return result;\n}\nfunction polyArrFrom(theValue, mapFn, thisArg) {\n if (isArray(theValue)) {\n var result_1 = arrSlice(theValue);\n return mapFn ? arrMap(result_1, mapFn, thisArg) : result_1;\n }\n var result = [];\n iterForOf(theValue, function (value, cnt) {\n return result.push(mapFn ? mapFn[CALL](thisArg, value, cnt) : value);\n });\n return result;\n}\n\nvar arrFind = /*#__PURE__*/ _unwrapFunctionWithPoly(\"find\", ArrProto, polyArrFind);\nvar arrFindIndex = /*#__PURE__*/ _unwrapFunctionWithPoly(\"findIndex\", ArrProto, polyArrFindIndex);\nvar arrFindLast = /*#__PURE__*/ _unwrapFunctionWithPoly(\"findLast\", ArrProto, polyArrFindLast);\nvar arrFindLastIndex = /*#__PURE__*/ _unwrapFunctionWithPoly(\"findLastIndex\", ArrProto, polyArrFindLastIndex);\n\nvar arrFrom = ( /* #__PURE__*/_pureAssign(( /* #__PURE__*/_pureRef(ArrCls, \"from\")), polyArrFrom));\n\nvar arrIncludes = ( /*#__PURE__*/_unwrapFunctionWithPoly(\"includes\", ArrProto, polyArrIncludes));\nvar arrContains = arrIncludes;\n\nvar arrReduce = ( /*#__PURE__*/_unwrapFunction(\"reduce\", ArrProto));\n\nvar arrSome = ( /*#__PURE__*/_unwrapFunction(\"some\", ArrProto));\n\n/*#__NO_SIDE_EFFECTS__*/\nfunction createFnDeferredProxy(hostFn, funcName) {\n return function () {\n var theArgs = ArrSlice[CALL](arguments);\n var theHost = hostFn();\n return fnApply(theHost[funcName], theHost, theArgs);\n };\n}\nfunction createProxyFuncs(target, host, funcDefs) {\n if (target && host && isArray(funcDefs)) {\n var isDeferred_1 = isFunction(host);\n arrForEach(funcDefs, function (funcDef) {\n var targetName = (funcDef.as || funcDef.n);\n if (funcDef.rp === false && target[targetName]) {\n return;\n }\n target[targetName] = isDeferred_1 ?\n createFnDeferredProxy(host, funcDef.n) :\n fnBind(host[funcDef.n], host);\n });\n }\n return target;\n}\n\nvar _iterSymbol;\n/*#__NO_SIDE_EFFECTS__*/\nfunction readArgs(theArgs, start, end) {\n if (!objHasOwn(theArgs, LENGTH)) {\n !_iterSymbol && (_iterSymbol = createCachedValue(hasSymbol() && getKnownSymbol(3 )));\n var iterFn = void 0;\n if (_iterSymbol.v) {\n iterFn = theArgs[_iterSymbol.v];\n }\n if (iterFn) {\n var values_1 = [];\n var from_1 = (start === UNDEF_VALUE || start < 0) ? 0 : start;\n var to_1 = end < 0 || start < 0 ? UNDEF_VALUE : end;\n iterForOf(iterFn[CALL](theArgs), function (value, cnt) {\n if (to_1 !== UNDEF_VALUE && cnt >= to_1) {\n return -1;\n }\n if (cnt >= from_1) {\n values_1.push(value);\n }\n });\n if ((start === UNDEF_VALUE || start >= 0) && (end === UNDEF_VALUE || end >= 0)) {\n return values_1;\n }\n theArgs = values_1;\n }\n }\n return arrSlice(theArgs, start, end);\n}\n\nvar objCreate = ( /* #__PURE__*/_pureAssign(( /* #__PURE__*/_pureRef(ObjClass, \"create\")), polyObjCreate));\n/*#__NO_SIDE_EFFECTS__*/\nfunction polyObjCreate(obj) {\n if (!obj) {\n return {};\n }\n var type = typeof obj;\n if (type !== OBJECT && type !== FUNCTION) {\n throwTypeError(\"Prototype must be an Object or function: \" + dumpObj(obj));\n }\n function tempFunc() { }\n tempFunc[PROTOTYPE] = obj;\n return new tempFunc();\n}\n\nvar _isProtoArray;\nfunction objSetPrototypeOf(obj, proto) {\n var fn = ObjClass[\"setPrototypeOf\"] ||\n function (d, b) {\n var _a;\n !_isProtoArray && (_isProtoArray = createCachedValue((_a = {}, _a[__PROTO__] = [], _a) instanceof Array));\n _isProtoArray.v ? d[__PROTO__] = b : objForEachKey(b, function (key, value) { return d[key] = value; });\n };\n return fn(obj, proto);\n}\n\n/*#__NO_SIDE_EFFECTS__*/\nfunction _createCustomError(name, d, b) {\n safe(objDefine, [d, NAME, { v: name, c: true, e: false }]);\n d = objSetPrototypeOf(d, b);\n function __() {\n this[CONSTRUCTOR] = d;\n safe(objDefine, [this, NAME, { v: name, c: true, e: false }]);\n }\n d[PROTOTYPE] = b === NULL_VALUE ? objCreate(b) : (__[PROTOTYPE] = b[PROTOTYPE], new __());\n return d;\n}\nfunction _setName(baseClass, name) {\n name && (baseClass[NAME] = name);\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction createCustomError(name, constructCb, errorBase) {\n var theBaseClass = errorBase || Error;\n var orgName = theBaseClass[PROTOTYPE][NAME];\n var captureFn = Error.captureStackTrace;\n return _createCustomError(name, function () {\n var _this = this;\n var theArgs = arguments;\n try {\n safe(_setName, [theBaseClass, name]);\n var _self = fnApply(theBaseClass, _this, ArrSlice[CALL](theArgs)) || _this;\n if (_self !== _this) {\n var orgProto = objGetPrototypeOf(_this);\n if (orgProto !== objGetPrototypeOf(_self)) {\n objSetPrototypeOf(_self, orgProto);\n }\n }\n captureFn && captureFn(_self, _this[CONSTRUCTOR]);\n constructCb && constructCb(_self, theArgs);\n return _self;\n }\n finally {\n safe(_setName, [theBaseClass, orgName]);\n }\n }, theBaseClass);\n}\nvar _unsupportedError;\nfunction throwUnsupported(message) {\n if (!_unsupportedError) {\n _unsupportedError = createCustomError(\"UnsupportedError\");\n }\n throw new _unsupportedError(message);\n}\n\n/*#__NO_SIDE_EFFECTS__*/\nfunction utcNow() {\n return (Date.now || polyUtcNow)();\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction polyUtcNow() {\n return new Date().getTime();\n}\n\n/*#__NO_SIDE_EFFECTS__*/\nfunction _createTrimFn(exp) {\n return function _doTrim(value) {\n if (isNullOrUndefined(value)) {\n throwTypeError(\"strTrim called [\" + dumpObj(value) + \"]\");\n }\n if (value && value.replace) {\n value = value.replace(exp, EMPTY);\n }\n return value;\n };\n}\nvar polyStrTrim = ( /*#__PURE__*/_createTrimFn(/^\\s+|(?=\\s)\\s+$/g));\nvar polyStrTrimStart = ( /*#__PURE__*/_createTrimFn(/^\\s+/g));\nvar polyStrTrimEnd = ( /*#__PURE__*/_createTrimFn(/(?=\\s)\\s+$/g));\n\nvar strTrim = ( /*#__PURE__*/_unwrapFunctionWithPoly(\"trim\", StrProto, polyStrTrim));\nvar strTrimStart = ( /*#__PURE__*/_unwrapFunctionWithPoly(\"trimStart\", StrProto, polyStrTrimStart));\nvar strTrimLeft = ( /*#__PURE__*/_pureAssign(strTrimStart));\nvar strTrimEnd = ( /*#__PURE__*/_unwrapFunctionWithPoly(\"trimEnd\", StrProto, polyStrTrimEnd));\nvar strTrimRight = ( /*#__PURE__*/_pureAssign(strTrimEnd));\n\nvar strUpper = ( /*#__PURE__*/_unwrapFunction(\"toUpperCase\", StrProto));\nvar strLower = ( /*#__PURE__*/_unwrapFunction(\"toLowerCase\", StrProto));\n\n/*#__NO_SIDE_EFFECTS__*/\nfunction _convertCase(value, newPrefix, upperWord) {\n return strTrim(asString(value)).replace(/((_|\\W)+(\\w){0,1}|([a-z])([A-Z]))/g, function (_match, _g1, _g2, wordStart, upperPrefix, upperLetter) {\n var convertMatch = wordStart || upperLetter || EMPTY;\n if (upperWord) {\n convertMatch = strUpper(convertMatch);\n }\n return (upperPrefix || EMPTY) + newPrefix + convertMatch;\n });\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction strLetterCase(value) {\n return asString(value).replace(/(_|\\b)\\w/g, strUpper);\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction strCamelCase(value, upperFirst) {\n var result = _convertCase(value, \"\", true);\n return result.replace(/^\\w/, upperFirst ? strUpper : strLower);\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction strKebabCase(value, scream) {\n var result = _convertCase(value, \"-\");\n return (scream ? strUpper : strLower)(result);\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction strSnakeCase(value, scream) {\n var result = _convertCase(value, \"_\");\n return (scream ? strUpper : strLower)(result);\n}\n\nvar mathFloor = ( /*#__PURE__*/_pureRef(MathCls, \"floor\"));\nvar mathCeil = ( /*#__PURE__*/_pureRef(MathCls, \"ceil\"));\n\nvar mathTrunc = ( /* #__PURE__*/_pureAssign(( /* #__PURE__*/_pureRef(MathCls, \"trunc\")), polyMathTrunc));\n/*#__NO_SIDE_EFFECTS__*/\nfunction polyMathTrunc(value) {\n var theValue = +value;\n return (theValue > 0 ? mathFloor : mathCeil)(theValue);\n}\n\n/*#__NO_SIDE_EFFECTS__*/\nfunction mathToInt(value, throwInfinity) {\n var result = +value;\n if (result == Infinity && throwInfinity) {\n throwRangeError(\"invalid value [\" + dumpObj(value) + \"]\");\n }\n return result !== result || result === 0 ? 0 : mathTrunc(result);\n}\n\nvar strRepeat = ( /*#__PURE__*/_unwrapFunctionWithPoly(\"repeat\", StrProto, polyStrRepeat));\n/*#__NO_SIDE_EFFECTS__*/\nfunction polyStrRepeat(value, count) {\n if (isNullOrUndefined(value)) {\n throwTypeError(\"can't convert [\" + dumpObj(value) + \"]\");\n }\n count = mathToInt(count, true);\n if (count < 0) {\n throwRangeError(\"invalid count must be >= 0 && < Infinity\");\n }\n var pad = isString(value) ? value : asString(value);\n var result = EMPTY;\n for (; count > 0; (count >>>= 1) && (pad += pad)) {\n if (count & 1) {\n result += pad;\n }\n }\n return result;\n}\n\n/*#__NO_SIDE_EFFECTS__*/\nfunction _padValue(value, targetLength, padString) {\n var result = EMPTY;\n targetLength = mathToInt(targetLength, true);\n targetLength >>= 0;\n var len = value[LENGTH];\n if (len < targetLength) {\n result = isNullOrUndefined(padString) ? \" \" : asString(padString);\n targetLength = targetLength - len;\n if (targetLength > result[LENGTH]) {\n result = strRepeat(result, mathCeil(targetLength / result[LENGTH]));\n }\n if (result[LENGTH] > targetLength) {\n result = strSubstring(result, 0, targetLength);\n }\n }\n return result;\n}\nvar strPadStart = ( /*#__PURE__*/_unwrapFunctionWithPoly(\"padStart\", StrProto, polyStrPadStart));\nvar strPadEnd = ( /*#__PURE__*/_unwrapFunctionWithPoly(\"padEnd\", StrProto, polyStrPadEnd));\n/*#__NO_SIDE_EFFECTS__*/\nfunction polyStrPadStart(value, targetLength, padString) {\n return _padValue(value, targetLength, padString) + value;\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction polyStrPadEnd(value, targetLength, padString) {\n return value + _padValue(value, targetLength, padString);\n}\n\nvar DBL_QUOTE = \"\\\"\";\nvar INVALID_JS_NAME = /([^\\w\\d_$])/g;\nvar _htmlEntityCache;\n/*#__NO_SIDE_EFFECTS__*/\nfunction normalizeJsName(jsName, camelCase) {\n var result = asString(jsName).replace(INVALID_JS_NAME, \"_\");\n return !isUndefined(camelCase) ? strCamelCase(result, !camelCase) : result;\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction encodeAsJson(value, format) {\n var result;\n if (isString(value)) {\n result = DBL_QUOTE + value.replace(/[^\\w .,\\-!@#$%\\^&*\\(\\)_+={}\\[\\]:;|<>?]/g, function (match) {\n if (match === DBL_QUOTE || match === \"\\\\\") {\n return \"\\\\\" + match;\n }\n var hex = match.charCodeAt(0)[TO_STRING](16);\n return \"\\\\u\" + strPadStart(strUpper(hex), 4, \"0\");\n }) + DBL_QUOTE;\n }\n else {\n try {\n result = JSON.stringify(value, NULL_VALUE, format ? (isNumber(format) ? format : 4) : UNDEF_VALUE);\n }\n catch (e) {\n result = DBL_QUOTE + dumpObj(e) + DBL_QUOTE;\n }\n }\n return result;\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction encodeAsHtml(value) {\n !_htmlEntityCache && (_htmlEntityCache = {\n \"&\": \"amp\",\n \"<\": \"lt\",\n \">\": \"gt\",\n \"\\\"\": \"quot\",\n \"'\": \"#39\"\n });\n return asString(value).replace(/[&<>\"']/g, function (match) { return \"&\" + _htmlEntityCache[match] + \";\"; });\n}\n\nvar _fnToString;\nvar _objCtrFnString;\nvar _gblWindow;\n/*#__NO_SIDE_EFFECTS__*/\nfunction isPlainObject(value) {\n if (!value || typeof value !== OBJECT) {\n return false;\n }\n if (!_gblWindow) {\n _gblWindow = hasWindow() ? getWindow() : true;\n }\n var result = false;\n if (value !== _gblWindow) {\n if (!_objCtrFnString) {\n _fnToString = Function[PROTOTYPE][TO_STRING];\n _objCtrFnString = _fnToString[CALL](ObjClass);\n }\n try {\n var proto = objGetPrototypeOf(value);\n result = !proto;\n if (!result) {\n if (objHasOwnProperty(proto, CONSTRUCTOR)) {\n proto = proto[CONSTRUCTOR];\n }\n result = !!(proto && typeof proto === FUNCTION && _fnToString[CALL](proto) === _objCtrFnString);\n }\n }\n catch (ex) {\n }\n }\n return result;\n}\n\n/*#__NO_SIDE_EFFECTS__*/\nfunction _defaultDeepCopyHandler(details) {\n details.value && plainObjDeepCopyHandler(details);\n return true;\n}\nvar defaultDeepCopyHandlers = [\n arrayDeepCopyHandler,\n plainObjDeepCopyHandler,\n functionDeepCopyHandler,\n dateDeepCopyHandler\n];\n/*#__NO_SIDE_EFFECTS__*/\nfunction _getSetVisited(visitMap, source, newPath, cb) {\n var theEntry;\n arrForEach(visitMap, function (entry) {\n if (entry.k === source) {\n theEntry = entry;\n return -1;\n }\n });\n if (!theEntry) {\n theEntry = { k: source, v: source };\n visitMap.push(theEntry);\n cb(theEntry);\n }\n return theEntry.v;\n}\nfunction _deepCopy(visitMap, value, ctx, key) {\n var userHandler = ctx.handler;\n var newPath = ctx.path ? (key ? ctx.path.concat(key) : ctx.path) : [];\n var newCtx = {\n handler: ctx.handler,\n src: ctx.src,\n path: newPath\n };\n var theType = typeof value;\n var isPlain = false;\n var isPrim = value === NULL_VALUE;\n if (!isPrim) {\n if (value && theType === OBJECT) {\n isPlain = isPlainObject(value);\n }\n else {\n isPrim = isPrimitiveType(theType);\n }\n }\n var details = {\n type: theType,\n isPrim: isPrim,\n isPlain: isPlain,\n value: value,\n result: value,\n path: newPath,\n origin: ctx.src,\n copy: function (source, newKey) {\n return _deepCopy(visitMap, source, newKey ? newCtx : ctx, newKey);\n },\n copyTo: function (target, source) {\n return _copyProps(visitMap, target, source, newCtx);\n }\n };\n if (!details.isPrim) {\n return _getSetVisited(visitMap, value, newPath, function (newEntry) {\n objDefine(details, \"result\", {\n g: function () {\n return newEntry.v;\n },\n s: function (newValue) {\n newEntry.v = newValue;\n }\n });\n var idx = 0;\n var handler = userHandler;\n while (!(handler || (idx < defaultDeepCopyHandlers.length ? defaultDeepCopyHandlers[idx++] : _defaultDeepCopyHandler))[CALL](ctx, details)) {\n handler = NULL_VALUE;\n }\n });\n }\n if (userHandler && userHandler[CALL](ctx, details)) {\n return details.result;\n }\n return value;\n}\nfunction _copyProps(visitMap, target, source, ctx) {\n if (!isNullOrUndefined(source)) {\n for (var key in source) {\n target[key] = _deepCopy(visitMap, source[key], ctx, key);\n }\n }\n return target;\n}\nfunction objCopyProps(target, source, handler) {\n var ctx = {\n handler: handler,\n src: source,\n path: []\n };\n return _copyProps([], target, source, ctx);\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction objDeepCopy(source, handler) {\n var ctx = {\n handler: handler,\n src: source\n };\n return _deepCopy([], source, ctx);\n}\nfunction arrayDeepCopyHandler(details) {\n var value = details.value;\n if (isArray(value)) {\n var target = details.result = [];\n target.length = value.length;\n details.copyTo(target, value);\n return true;\n }\n return false;\n}\nfunction dateDeepCopyHandler(details) {\n var value = details.value;\n if (isDate(value)) {\n details.result = new Date(value.getTime());\n return true;\n }\n return false;\n}\nfunction functionDeepCopyHandler(details) {\n if (details.type === FUNCTION) {\n return true;\n }\n return false;\n}\nfunction plainObjDeepCopyHandler(details) {\n var value = details.value;\n if (value && details.isPlain) {\n var target = details.result = {};\n details.copyTo(target, value);\n return true;\n }\n return false;\n}\n\nfunction _doExtend(target, theArgs) {\n arrForEach(theArgs, function (theArg) {\n objCopyProps(target, theArg);\n });\n return target;\n}\nfunction deepExtend(target, obj1, obj2, obj3, obj4, obj5, obj6) {\n return _doExtend(objDeepCopy(target) || {}, ArrSlice[CALL](arguments));\n}\nfunction objExtend(target, obj1, obj2, obj3, obj4, obj5, obj6) {\n return _doExtend(target || {}, ArrSlice[CALL](arguments));\n}\n\nvar getLength = ( /*#__PURE__*/_unwrapProp(LENGTH));\n\n/*#__NO_SIDE_EFFECTS__*/\nfunction getIntValue(value, defValue) {\n if (!isNullOrUndefined(value)) {\n if (isNumber(value)) {\n return value;\n }\n var theValue = parseInt(value, 10);\n return isNaN(theValue) ? defValue : theValue;\n }\n return defValue;\n}\n\nvar _perf;\n/*#__NO_SIDE_EFFECTS__*/\nfunction hasPerformance() {\n return !!getPerformance();\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction getPerformance() {\n !_globalLazyTestHooks && _initTestHooks();\n if (!_perf || _globalLazyTestHooks.lzy) {\n _perf = createCachedValue(safe((getInst), [\"performance\"]).v);\n }\n return _perf.v;\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction perfNow() {\n var perf = getPerformance();\n if (perf && perf.now) {\n return perf.now();\n }\n return utcNow();\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction elapsedTime(startTime) {\n return perfNow() - startTime;\n}\n\nvar MATCH_ANY = \"(.*)\";\nvar MATCH_SINGLE = \"(.)\";\nfunction _createRegExp(value, escapeRgx, replaceFn, ignoreCase, fullMatch) {\n // eslint-disable-next-line security/detect-non-literal-regexp\n return new RegExp((fullMatch ? \"^\" : EMPTY) + replaceFn(value.replace(escapeRgx, \"\\\\$1\")) + (fullMatch ? \"$\" : EMPTY), ignoreCase ? \"i\" : \"\");\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction createWildcardRegex(value, ignoreCase, fullMatch) {\n return _createRegExp(asString(value), /([-+|^$#.\\?{}()\\[\\]\\\\/\\\"\\'])/g, function (value) {\n return value.replace(/\\*/g, MATCH_ANY);\n }, !!ignoreCase, fullMatch);\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction createFilenameRegex(value, ignoreCase, fullMatch) {\n return _createRegExp(asString(value), /([-+|^$#.{}()\\\\\\/\\[\\]\\\"\\'])/g, function (value) {\n return value.replace(/(\\\\\\\\|\\\\\\/|\\*|\\?)/g, function (_all, g1) {\n if (g1 == \"\\\\/\" || g1 == \"\\\\\\\\\") {\n return \"[\\\\\\\\\\\\/]{1}\";\n }\n return g1 == \"*\" ? MATCH_ANY : MATCH_SINGLE;\n });\n }, !!ignoreCase, fullMatch);\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction makeGlobRegex(value, ignoreCase, fullMatch) {\n return _createRegExp(asString(value), /([-+|^$#.{}()\\\\\\/\\[\\]\\\"\\'])/g, function (value) {\n return value.replace(/(\\*\\*\\\\[\\\\\\/]|\\\\\\\\|\\\\\\/|\\*\\*|\\*|\\?)/g, function (_all, g1) {\n if (g1 == \"**\\\\/\" || g1 == \"**\\\\\\\\\") {\n return \"(.*[\\\\\\\\\\\\/])*\";\n }\n if (g1 === \"\\\\/\" || g1 == \"\\\\\\\\\") {\n return \"[\\\\\\\\\\\\/]{1}\";\n }\n if (g1 === \"**\") {\n return MATCH_ANY;\n }\n return g1 === \"*\" ? \"([^\\\\\\\\\\\\/]*)\" : \"([^\\\\\\\\\\\\/]{1})\";\n });\n }, !!ignoreCase, fullMatch);\n}\n\n/*#__NO_SIDE_EFFECTS__*/\nfunction safeGetLazy(cb, defValue) {\n return getLazy(function () {\n var result = safe(cb);\n return result.e ? defValue : result.v;\n });\n}\n\n/*#__NO_SIDE_EFFECTS__*/\nfunction _checkLength(value, props) {\n var result;\n arrForEach(props, function (prop) {\n if (prop in value) {\n var propValue = value[prop];\n result = (isFunction(propValue) ? propValue() : propValue) > 0;\n return -1;\n }\n });\n return result;\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction _hasValue(value, depth) {\n var result = value === false || value === 0;\n if (!result && !isNullOrUndefined(value)) {\n if (isArray(value)) {\n result = value[LENGTH] > 0;\n }\n else if (isDate(value)) {\n result = !isNaN(value.getTime());\n }\n else if (isBoolean(value)) {\n return true;\n }\n else if (isObject(value)) {\n try {\n var chkValue = _checkLength(value, [LENGTH, \"byteLength\", \"size\", \"count\"]);\n if (isBoolean(chkValue)) {\n return chkValue;\n }\n if (isFunction(value.valueOf) && depth < 5) {\n return _hasValue(value.valueOf(), ++depth);\n }\n }\n catch (e) {\n }\n return !!objKeys(value)[LENGTH];\n }\n else {\n result = isTruthy(value);\n }\n }\n return result;\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction hasValue(value) {\n return _hasValue(value, 0);\n}\n\n/*#__NO_SIDE_EFFECTS__*/\nfunction createIterable(ctx) {\n return makeIterable({}, ctx);\n}\nfunction makeIterable(target, ctx) {\n var itSymbol = getKnownSymbol(3 );\n function _createIterator() {\n return createIterator(ctx);\n }\n target[itSymbol] = _createIterator;\n return target;\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction createIterator(ctx) {\n var isDone = false;\n function _value() {\n return ctx.v;\n }\n function _next() {\n if (!isDone) {\n isDone = (ctx.n ? ctx.n(arguments) : true);\n }\n var result = {\n done: isDone\n };\n if (!isDone) {\n objDefine(result, \"value\", { g: _value });\n }\n return result;\n }\n function _return(value) {\n isDone = true;\n return {\n done: true,\n value: ctx.r && ctx.r(value)\n };\n }\n function _throw(e) {\n isDone = true;\n return {\n done: true,\n value: ctx.t && ctx.t(e)\n };\n }\n var theIterator = {\n next: _next\n };\n if (ctx.r) {\n theIterator.return = _return;\n }\n if (ctx.t) {\n theIterator.throw = _throw;\n }\n return theIterator;\n}\n\n/*#__NO_SIDE_EFFECTS__*/\nfunction createArrayIterator(values) {\n var idx = -1;\n var theValues = values ? values.slice() : [];\n var len = theValues[LENGTH];\n function _value() {\n if (idx >= 0 && idx < len) {\n return theValues[idx];\n }\n }\n function _getNext() {\n idx++;\n return idx >= len;\n }\n var ctx = {\n n: _getNext\n };\n objDefine(ctx, \"v\", { g: _value });\n return createIterator(ctx);\n}\n\n/*#__NO_SIDE_EFFECTS__*/\nfunction createRangeIterator(start, end, step) {\n var nextValue = start;\n var theValue = UNDEF_VALUE;\n if (isNullOrUndefined(end)) {\n end = start;\n }\n var theStep = step;\n if (!theStep) {\n theStep = (start <= end) ? 1 : -1;\n }\n function _value() {\n return theValue;\n }\n function _getNext() {\n var isDone = (theStep > 0) ? (nextValue > end) : (nextValue < end);\n if (!isDone) {\n theValue = nextValue;\n nextValue += theStep;\n }\n return isDone;\n }\n return createIterator(objDefine({\n n: _getNext\n }, \"v\", { g: _value }));\n}\n\n/*#__NO_SIDE_EFFECTS__*/\nfunction polyStrSymSplit(value, splitter, limit) {\n var splitFn = splitter ? splitter[getKnownSymbol(9 )] : UNDEF_VALUE;\n return splitFn ? splitFn(value, limit) : [value];\n}\n\nvar strSplit = ( /*#__PURE__*/_unwrapFunction(\"split\", StrProto));\nvar strSymSplit = ( /*#__PURE__*/_unwrapFunctionWithPoly(\"split\", StrProto, !hasSymbol() ? polyStrSymSplit : NULL_VALUE));\n\n/*#__NO_SIDE_EFFECTS__*/\nfunction getValueByKey(target, path, defValue) {\n if (!path || !target) {\n return defValue;\n }\n var parts = strSplit(path, \".\");\n var cnt = parts.length;\n for (var lp = 0; lp < cnt && !isNullOrUndefined(target); lp++) {\n target = target[parts[lp]];\n }\n return (!isNullOrUndefined(target) ? target : defValue);\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction getValueByIter(target, iter, defValue) {\n if (!iter || !target) {\n return defValue;\n }\n iterForOf(iter, function (value) {\n if (isNullOrUndefined(target)) {\n return -1;\n }\n target = target[value];\n });\n return (!isNullOrUndefined(target) ? target : defValue);\n}\nfunction setValueByKey(target, path, value) {\n if (target && path) {\n var parts = strSplit(path, \".\");\n var lastKey = parts.pop();\n arrForEach(parts, function (key) {\n if (isNullOrUndefined(target[key])) {\n target[key] = {};\n }\n target = target[key];\n });\n target[lastKey] = value;\n }\n}\nfunction setValueByIter(target, iter, value) {\n if (target && iter) {\n var lastKey_1;\n iterForOf(iter, function (key) {\n if (lastKey_1) {\n if (isNullOrUndefined(target[lastKey_1])) {\n target[lastKey_1] = {};\n }\n target = target[lastKey_1];\n }\n lastKey_1 = key;\n });\n target[lastKey_1] = value;\n }\n}\n\nvar strEndsWith = ( /*#__PURE__*/_unwrapFunctionWithPoly(\"endsWith\", StrProto, polyStrEndsWith));\n/*#__NO_SIDE_EFFECTS__*/\nfunction polyStrEndsWith(value, searchString, length) {\n if (!isString(value)) {\n throwTypeError(\"'\" + dumpObj(value) + \"' is not a string\");\n }\n var searchValue = isString(searchString) ? searchString : asString(searchString);\n var end = (!isUndefined(length) && length < value[LENGTH]) ? length : value[LENGTH];\n return strSubstring(value, end - searchValue[LENGTH], end) === searchValue;\n}\n\nvar strIndexOf = ( /*#__PURE__*/_unwrapFunction(\"indexOf\", StrProto));\nvar strLastIndexOf = ( /*#__PURE__*/_unwrapFunction(\"lastIndexOf\", StrProto));\n\nvar strIncludes = ( /*#__PURE__*/_unwrapFunctionWithPoly(\"includes\", StrProto, polyStrIncludes));\nvar strContains = ( /*#__PURE__*/_pureAssign(strIncludes));\n/*#__NO_SIDE_EFFECTS__*/\nfunction polyStrIncludes(value, searchString, position) {\n if (isRegExp(searchString)) {\n throwTypeError(\"'searchString' must not be a regular expression\" + dumpObj(searchString));\n }\n return strIndexOf(value, asString(searchString), position) !== -1;\n}\n\n/*#__NO_SIDE_EFFECTS__*/\nfunction strIsNullOrWhiteSpace(value) {\n if (isString(value)) {\n return value.replace(/[\\s\\t\\r\\n\\f]+/g, EMPTY) === EMPTY;\n }\n return isNullOrUndefined(value);\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction strIsNullOrEmpty(value) {\n if (isString(value)) {\n return value === EMPTY;\n }\n return isNullOrUndefined(value);\n}\n\nvar strStartsWith = ( /*#__PURE__*/_unwrapFunctionWithPoly(\"startsWith\", StrProto, polyStrStartsWith));\n/*#__NO_SIDE_EFFECTS__*/\nfunction polyStrStartsWith(value, searchString, position) {\n if (!isString(value)) {\n throwTypeError(\"'\" + dumpObj(value) + \"' is not a string\");\n }\n var searchValue = isString(searchString) ? searchString : asString(searchString);\n var pos = position > 0 ? position : 0;\n return strSubstring(value, pos, pos + searchValue[LENGTH]) === searchValue;\n}\n\nvar REF = \"ref\";\nvar UNREF = \"unref\";\nvar HAS_REF = \"hasRef\";\nvar ENABLED = \"enabled\";\n/*#__NO_SIDE_EFFECTS__*/\nfunction _createTimerHandler(startTimer, refreshFn, cancelFn) {\n var ref = true;\n var timerId = startTimer ? refreshFn(NULL_VALUE) : NULL_VALUE;\n var theTimerHandler;\n function _unref() {\n ref = false;\n timerId && timerId[UNREF] && timerId[UNREF]();\n return theTimerHandler;\n }\n function _cancel() {\n timerId && cancelFn(timerId);\n timerId = NULL_VALUE;\n }\n function _refresh() {\n timerId = refreshFn(timerId);\n if (!ref) {\n _unref();\n }\n return theTimerHandler;\n }\n function _setEnabled(value) {\n !value && timerId && _cancel();\n value && !timerId && _refresh();\n }\n theTimerHandler = {\n cancel: _cancel,\n refresh: _refresh\n };\n theTimerHandler[HAS_REF] = function () {\n if (timerId && timerId[HAS_REF]) {\n return timerId[HAS_REF]();\n }\n return ref;\n };\n theTimerHandler[REF] = function () {\n ref = true;\n timerId && timerId[REF] && timerId[REF]();\n return theTimerHandler;\n };\n theTimerHandler[UNREF] = _unref;\n theTimerHandler = objDefineProp(theTimerHandler, ENABLED, {\n get: function () { return !!timerId; },\n set: _setEnabled\n });\n return {\n h: theTimerHandler,\n dn: function () {\n timerId = NULL_VALUE;\n }\n };\n}\n\nfunction _createTimeoutWith(startTimer, overrideFn, theArgs) {\n var isArr = isArray(overrideFn);\n var len = isArr ? overrideFn.length : 0;\n var setFn = (len > 0 ? overrideFn[0] : (!isArr ? overrideFn : UNDEF_VALUE)) || setTimeout;\n var clearFn = (len > 1 ? overrideFn[1] : UNDEF_VALUE) || clearTimeout;\n var timerFn = theArgs[0];\n theArgs[0] = function () {\n handler.dn();\n fnApply(timerFn, UNDEF_VALUE, ArrSlice[CALL](arguments));\n };\n var handler = _createTimerHandler(startTimer, function (timerId) {\n if (timerId) {\n if (timerId.refresh) {\n timerId.refresh();\n return timerId;\n }\n fnApply(clearFn, UNDEF_VALUE, [timerId]);\n }\n return fnApply(setFn, UNDEF_VALUE, theArgs);\n }, function (timerId) {\n fnApply(clearFn, UNDEF_VALUE, [timerId]);\n });\n return handler.h;\n}\nfunction scheduleTimeout(callback, timeout) {\n return _createTimeoutWith(true, UNDEF_VALUE, ArrSlice[CALL](arguments));\n}\nfunction scheduleTimeoutWith(overrideFn, callback, timeout) {\n return _createTimeoutWith(true, overrideFn, ArrSlice[CALL](arguments, 1));\n}\nfunction createTimeout(callback, timeout) {\n return _createTimeoutWith(false, UNDEF_VALUE, ArrSlice[CALL](arguments));\n}\nfunction createTimeoutWith(overrideFn, callback, timeout) {\n return _createTimeoutWith(false, overrideFn, ArrSlice[CALL](arguments, 1));\n}\n\nvar _defaultIdleTimeout = 100;\nvar _maxExecutionTime = 50;\n/*#__NO_SIDE_EFFECTS__*/\nfunction hasIdleCallback() {\n return !!( /*#__PURE__*/getIdleCallback());\n}\nvar getIdleCallback = ( /*#__PURE__*/_getGlobalInstFn(getInst, [\"requestIdleCallback\"]));\nvar getCancelIdleCallback = ( /*#__PURE__*/_getGlobalInstFn(getInst, [\"cancelIdleCallback\"]));\nfunction setDefaultIdleTimeout(timeout) {\n _defaultIdleTimeout = timeout;\n}\nfunction setDefaultMaxExecutionTime(maxTime) {\n _maxExecutionTime = maxTime;\n}\nfunction scheduleIdleCallback(callback, options) {\n function _createDeadline(timedOut) {\n var startTime = perfNow();\n return {\n didTimeout: timedOut,\n timeRemaining: function () {\n return _maxExecutionTime - elapsedTime(startTime);\n }\n };\n }\n if (hasIdleCallback()) {\n var handler_1 = _createTimerHandler(true, function (idleId) {\n idleId && getCancelIdleCallback()(idleId);\n return getIdleCallback()(function (deadline) {\n handler_1.dn();\n callback(deadline || _createDeadline(false));\n }, options);\n }, function (idleId) {\n getCancelIdleCallback()(idleId);\n });\n return handler_1.h;\n }\n var timeout = (options || {}).timeout;\n if (isUndefined(timeout)) {\n timeout = _defaultIdleTimeout;\n }\n return scheduleTimeout(function () {\n callback(_createDeadline(true));\n }, timeout);\n}\n\nfunction scheduleInterval(callback, timeout) {\n var theArguments = ArrSlice[CALL](arguments);\n var handler = _createTimerHandler(true, function (intervalId) {\n intervalId && clearInterval(intervalId);\n return fnApply(setInterval, UNDEF_VALUE, theArguments);\n }, function (intervalId) {\n fnApply(clearInterval, UNDEF_VALUE, [intervalId]);\n });\n return handler.h;\n}\n\nexport { arrAppend, arrContains, arrEvery, arrFilter, arrFind, arrFindIndex, arrFindLast, arrFindLastIndex, arrForEach, arrFrom, arrIncludes, arrIndexOf, arrLastIndexOf, arrMap, arrReduce, arrSlice, arrSome, arrayDeepCopyHandler, asString, createArrayIterator, createCachedValue, createCustomError, createDeferredCachedValue, createEnum, createEnumKeyMap, createEnumValueMap, createFilenameRegex, createFnDeferredProxy, createIterable, createIterator, createProxyFuncs, createRangeIterator, createSimpleMap, createTimeout, createTimeoutWith, createTypeMap, createWildcardRegex, dateDeepCopyHandler, deepExtend, dumpObj, elapsedTime, encodeAsHtml, encodeAsJson, fnApply, fnBind, fnCall, functionDeepCopyHandler, getCancelIdleCallback, getDocument, getGlobal, getHistory, getIdleCallback, getInst, getIntValue, getKnownSymbol, getLazy, getLength, getNavigator, getPerformance, getSymbol, getValueByIter, getValueByKey, getWindow, hasDocument, hasHistory, hasIdleCallback, hasNavigator, hasPerformance, hasSymbol, hasValue, hasWindow, isArray, isArrayBuffer, isBlob, isBoolean, isDate, isDefined, isError, isFile, isFormData, isFunction, isIterable, isIterator, isNode, isNotTruthy, isNullOrUndefined, isNumber, isObject, isPlainObject, isPrimitive, isPrimitiveType, isPromise, isPromiseLike, isRegExp, isStrictNullOrUndefined, isStrictUndefined, isString, isSymbol, isThenable, isTruthy, isTypeof, isUndefined, isWebWorker, iterForOf, lazySafeGetInst, makeGlobRegex, makeIterable, mathCeil, mathFloor, mathMax, mathMin, mathToInt, mathTrunc, newSymbol, normalizeJsName, objAssign, objCopyProps, objCreate, objDeepCopy, objDeepFreeze, objDefine, objDefineAccessors, objDefineGet, objDefineProp, objDefineProperties, objDefineProps, objEntries, objExtend, objForEachKey, objFreeze, objGetOwnPropertyDescriptor, objGetPrototypeOf, objHasOwn, objHasOwnProperty, objKeys, objSeal, objSetPrototypeOf, objToString, perfNow, plainObjDeepCopyHandler, polyArrFind, polyArrFindIndex, polyArrFindLast, polyArrFindLastIndex, polyArrFrom, polyArrIncludes, polyGetKnownSymbol, polyIsArray, polyNewSymbol, polyObjEntries, polyObjHasOwn, polyObjKeys, polyStrIncludes, polyStrSubstr, polyStrSymSplit, polyStrTrim, polyStrTrimEnd, polyStrTrimStart, polySymbolFor, polySymbolKeyFor, polyUtcNow, readArgs, safe, safeGet, safeGetLazy, scheduleIdleCallback, scheduleInterval, scheduleTimeout, scheduleTimeoutWith, setBypassLazyCache, setDefaultIdleTimeout, setDefaultMaxExecutionTime, setValueByIter, setValueByKey, strCamelCase, strContains, strEndsWith, strIncludes, strIndexOf, strIsNullOrEmpty, strIsNullOrWhiteSpace, strKebabCase, strLastIndexOf, strLeft, strLetterCase, strLower, strPadEnd, strPadStart, strRepeat, strRight, strSlice, strSnakeCase, strSplit, strStartsWith, strSubstr, strSubstring, strSymSplit, strTrim, strTrimEnd, strTrimLeft, strTrimRight, strTrimStart, strUpper, symbolFor, symbolKeyFor, throwError, throwRangeError, throwTypeError, throwUnsupported, utcNow };\n//# sourceMappingURL=ts-utils.js.map\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nvar _a;\r\nimport { getGlobal, objCreate, objHasOwnProperty, throwTypeError } from \"@nevware21/ts-utils\";\r\n;\r\nvar UNDEFINED = \"undefined\";\r\n/**\r\n * Constant string defined to support minimization\r\n * @ignore\r\n */\r\nvar Constructor = 'constructor';\r\n/**\r\n * Constant string defined to support minimization\r\n * @ignore\r\n */\r\nvar Prototype = 'prototype';\r\n/**\r\n * Constant string defined to support minimization\r\n * @ignore\r\n */\r\nvar strFunction = 'function';\r\n/**\r\n * Used to define the name of the instance function lookup table\r\n * @ignore\r\n */\r\nvar DynInstFuncTable = '_dynInstFuncs';\r\n/**\r\n * Name used to tag the dynamic prototype function\r\n * @ignore\r\n */\r\nvar DynProxyTag = '_isDynProxy';\r\n/**\r\n * Name added to a prototype to define the dynamic prototype \"class\" name used to lookup the function table\r\n * @ignore\r\n */\r\nvar DynClassName = '_dynClass';\r\n/**\r\n * Prefix added to the classname to avoid any name clashes with other instance level properties\r\n * @ignore\r\n */\r\nvar DynClassNamePrefix = '_dynCls$';\r\n/**\r\n * A tag which is used to check if we have already to attempted to set the instance function if one is not present\r\n * @ignore\r\n */\r\nvar DynInstChkTag = '_dynInstChk';\r\n/**\r\n * A tag which is used to check if we are allows to try and set an instance function is one is not present. Using the same\r\n * tag name as the function level but a different const name for readability only.\r\n */\r\nvar DynAllowInstChkTag = DynInstChkTag;\r\n/**\r\n * The global (imported) instances where the global performance options are stored\r\n */\r\nvar DynProtoDefaultOptions = '_dfOpts';\r\n/**\r\n * Value used as the name of a class when it cannot be determined\r\n * @ignore\r\n */\r\nvar UnknownValue = '_unknown_';\r\n/**\r\n * Constant string defined to support minimization\r\n * @ignore\r\n */\r\nvar str__Proto = \"__proto__\";\r\n/**\r\n * The polyfill version of __proto__ so that it doesn't cause issues for anyone not expecting it to exist\r\n */\r\nvar DynProtoBaseProto = \"_dyn\" + str__Proto;\r\n/**\r\n * Runtime Global holder for dynamicProto settings\r\n */\r\nvar DynProtoGlobalSettings = \"__dynProto$Gbl\";\r\n/**\r\n * Track the current prototype for IE8 as you can't look back to get the prototype\r\n */\r\nvar DynProtoCurrent = \"_dynInstProto\";\r\n/**\r\n * Constant string defined to support minimization\r\n * @ignore\r\n */\r\nvar strUseBaseInst = 'useBaseInst';\r\n/**\r\n * Constant string defined to support minimization\r\n * @ignore\r\n */\r\nvar strSetInstFuncs = 'setInstFuncs';\r\nvar Obj = Object;\r\n/**\r\n * Pre-lookup to check if we are running on a modern browser (i.e. not IE8)\r\n * @ignore\r\n */\r\nvar _objGetPrototypeOf = Obj[\"getPrototypeOf\"];\r\n/**\r\n * Pre-lookup to check for the existence of this function\r\n */\r\nvar _objGetOwnProps = Obj[\"getOwnPropertyNames\"];\r\n// Since 1.1.7 moving these to the runtime global to work around mixed version and module issues\r\n// See Issue https://github.com/microsoft/DynamicProto-JS/issues/57 for details\r\nvar _gbl = getGlobal();\r\nvar _gblInst = _gbl[DynProtoGlobalSettings] || (_gbl[DynProtoGlobalSettings] = {\r\n o: (_a = {},\r\n _a[strSetInstFuncs] = true,\r\n _a[strUseBaseInst] = true,\r\n _a),\r\n n: 1000 // Start new global index @ 1000 so we \"fix\" some cases when mixed with 1.1.6 or earlier\r\n});\r\n/**\r\n * Helper used to check whether the target is an Object prototype or Array prototype\r\n * @ignore\r\n */\r\nfunction _isObjectOrArrayPrototype(target) {\r\n return target && (target === Obj[Prototype] || target === Array[Prototype]);\r\n}\r\n/**\r\n * Helper used to check whether the target is an Object prototype, Array prototype or Function prototype\r\n * @ignore\r\n */\r\nfunction _isObjectArrayOrFunctionPrototype(target) {\r\n return _isObjectOrArrayPrototype(target) || target === Function[Prototype];\r\n}\r\n/**\r\n * Helper used to get the prototype of the target object as getPrototypeOf is not available in an ES3 environment.\r\n * @ignore\r\n */\r\nfunction _getObjProto(target) {\r\n var newProto;\r\n if (target) {\r\n // This method doesn't exist in older browsers (e.g. IE8)\r\n if (_objGetPrototypeOf) {\r\n return _objGetPrototypeOf(target);\r\n }\r\n var curProto = target[str__Proto] || target[Prototype] || (target[Constructor] ? target[Constructor][Prototype] : null);\r\n // Using the pre-calculated value as IE8 doesn't support looking up the prototype of a prototype and thus fails for more than 1 base class\r\n newProto = target[DynProtoBaseProto] || curProto;\r\n if (!objHasOwnProperty(target, DynProtoBaseProto)) {\r\n // As this prototype doesn't have this property then this is from an inherited class so newProto is the base to return so save it\r\n // so we can look it up value (which for a multiple hierarchy dynamicProto will be the base class)\r\n delete target[DynProtoCurrent]; // Delete any current value allocated to this instance so we pick up the value from prototype hierarchy\r\n newProto = target[DynProtoBaseProto] = target[DynProtoCurrent] || target[DynProtoBaseProto];\r\n target[DynProtoCurrent] = curProto;\r\n }\r\n }\r\n return newProto;\r\n}\r\n/**\r\n * Helper to get the properties of an object, including none enumerable ones as functions on a prototype in ES6\r\n * are not enumerable.\r\n * @param target\r\n */\r\nfunction _forEachProp(target, func) {\r\n var props = [];\r\n if (_objGetOwnProps) {\r\n props = _objGetOwnProps(target);\r\n }\r\n else {\r\n for (var name_1 in target) {\r\n if (typeof name_1 === \"string\" && objHasOwnProperty(target, name_1)) {\r\n props.push(name_1);\r\n }\r\n }\r\n }\r\n if (props && props.length > 0) {\r\n for (var lp = 0; lp < props.length; lp++) {\r\n func(props[lp]);\r\n }\r\n }\r\n}\r\n/**\r\n * Helper function to check whether the provided function name is a potential candidate for dynamic\r\n * callback and prototype generation.\r\n * @param target The target object, may be a prototype or class object\r\n * @param funcName The function name\r\n * @param skipOwn Skips the check for own property\r\n * @ignore\r\n */\r\nfunction _isDynamicCandidate(target, funcName, skipOwn) {\r\n return (funcName !== Constructor && typeof target[funcName] === strFunction && (skipOwn || objHasOwnProperty(target, funcName)) && funcName !== str__Proto && funcName !== Prototype);\r\n}\r\n/**\r\n * Helper to throw a TypeError exception\r\n * @param message the message\r\n * @ignore\r\n */\r\nfunction _throwTypeError(message) {\r\n throwTypeError(\"DynamicProto: \" + message);\r\n}\r\n/**\r\n * Returns a collection of the instance functions that are defined directly on the thisTarget object, it does\r\n * not return any inherited functions\r\n * @param thisTarget The object to get the instance functions from\r\n * @ignore\r\n */\r\nfunction _getInstanceFuncs(thisTarget) {\r\n // Get the base proto\r\n var instFuncs = objCreate(null);\r\n // Save any existing instance functions\r\n _forEachProp(thisTarget, function (name) {\r\n // Don't include any dynamic prototype instances - as we only want the real functions\r\n if (!instFuncs[name] && _isDynamicCandidate(thisTarget, name, false)) {\r\n // Create an instance callback for passing the base function to the caller\r\n instFuncs[name] = thisTarget[name];\r\n }\r\n });\r\n return instFuncs;\r\n}\r\n/**\r\n * Returns whether the value is included in the array\r\n * @param values The array of values\r\n * @param value The value\r\n */\r\nfunction _hasVisited(values, value) {\r\n for (var lp = values.length - 1; lp >= 0; lp--) {\r\n if (values[lp] === value) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n}\r\n/**\r\n * Returns an object that contains callback functions for all \"base/super\" functions, this is used to \"save\"\r\n * enabling calling super.xxx() functions without requiring that the base \"class\" has defined a prototype references\r\n * @param target The current instance\r\n * @ignore\r\n */\r\nfunction _getBaseFuncs(classProto, thisTarget, instFuncs, useBaseInst) {\r\n function _instFuncProxy(target, funcHost, funcName) {\r\n var theFunc = funcHost[funcName];\r\n if (theFunc[DynProxyTag] && useBaseInst) {\r\n // grab and reuse the hosted looking function (if available) otherwise the original passed function\r\n var instFuncTable = target[DynInstFuncTable] || {};\r\n if (instFuncTable[DynAllowInstChkTag] !== false) {\r\n theFunc = (instFuncTable[funcHost[DynClassName]] || {})[funcName] || theFunc;\r\n }\r\n }\r\n return function () {\r\n // eslint-disable-next-line prefer-rest-params\r\n return theFunc.apply(target, arguments);\r\n };\r\n }\r\n // Start creating a new baseFuncs by creating proxies for the instance functions (as they may get replaced)\r\n var baseFuncs = objCreate(null);\r\n _forEachProp(instFuncs, function (name) {\r\n // Create an instance callback for passing the base function to the caller\r\n baseFuncs[name] = _instFuncProxy(thisTarget, instFuncs, name);\r\n });\r\n // Get the base prototype functions\r\n var baseProto = _getObjProto(classProto);\r\n var visited = [];\r\n // Don't include base object functions for Object, Array or Function\r\n while (baseProto && !_isObjectArrayOrFunctionPrototype(baseProto) && !_hasVisited(visited, baseProto)) {\r\n // look for prototype functions\r\n _forEachProp(baseProto, function (name) {\r\n // Don't include any dynamic prototype instances - as we only want the real functions\r\n // For IE 7/8 the prototype lookup doesn't provide the full chain so we need to bypass the \r\n // hasOwnProperty check we get all of the methods, main difference is that IE7/8 doesn't return\r\n // the Object prototype methods while bypassing the check\r\n if (!baseFuncs[name] && _isDynamicCandidate(baseProto, name, !_objGetPrototypeOf)) {\r\n // Create an instance callback for passing the base function to the caller\r\n baseFuncs[name] = _instFuncProxy(thisTarget, baseProto, name);\r\n }\r\n });\r\n // We need to find all possible functions that might be overloaded by walking the entire prototype chain\r\n // This avoids the caller from needing to check whether it's direct base class implements the function or not\r\n // by walking the entire chain it simplifies the usage and issues from upgrading any of the base classes.\r\n visited.push(baseProto);\r\n baseProto = _getObjProto(baseProto);\r\n }\r\n return baseFuncs;\r\n}\r\nfunction _getInstFunc(target, funcName, proto, currentDynProtoProxy) {\r\n var instFunc = null;\r\n // We need to check whether the class name is defined directly on this prototype otherwise\r\n // it will walk the proto chain and return any parent proto classname.\r\n if (target && objHasOwnProperty(proto, DynClassName)) {\r\n var instFuncTable = target[DynInstFuncTable] || objCreate(null);\r\n instFunc = (instFuncTable[proto[DynClassName]] || objCreate(null))[funcName];\r\n if (!instFunc) {\r\n // Avoid stack overflow from recursive calling the same function\r\n _throwTypeError(\"Missing [\" + funcName + \"] \" + strFunction);\r\n }\r\n // We have the instance function, lets check it we can speed up further calls\r\n // by adding the instance function back directly on the instance (avoiding the dynamic func lookup)\r\n if (!instFunc[DynInstChkTag] && instFuncTable[DynAllowInstChkTag] !== false) {\r\n // If the instance already has an instance function we can't replace it\r\n var canAddInst = !objHasOwnProperty(target, funcName);\r\n // Get current prototype\r\n var objProto = _getObjProto(target);\r\n var visited = [];\r\n // Lookup the function starting at the top (instance level prototype) and traverse down, if the first matching function\r\n // if nothing is found or if the first hit is a dynamic proto instance then we can safely add an instance shortcut\r\n while (canAddInst && objProto && !_isObjectArrayOrFunctionPrototype(objProto) && !_hasVisited(visited, objProto)) {\r\n var protoFunc = objProto[funcName];\r\n if (protoFunc) {\r\n canAddInst = (protoFunc === currentDynProtoProxy);\r\n break;\r\n }\r\n // We need to find all possible initial functions to ensure that we don't bypass a valid override function\r\n visited.push(objProto);\r\n objProto = _getObjProto(objProto);\r\n }\r\n try {\r\n if (canAddInst) {\r\n // This instance doesn't have an instance func and the class hierarchy does have a higher level prototype version\r\n // so it's safe to directly assign for any subsequent calls (for better performance)\r\n target[funcName] = instFunc;\r\n }\r\n // Block further attempts to set the instance function for any\r\n instFunc[DynInstChkTag] = 1;\r\n }\r\n catch (e) {\r\n // Don't crash if the object is readonly or the runtime doesn't allow changing this\r\n // And set a flag so we don't try again for any function\r\n instFuncTable[DynAllowInstChkTag] = false;\r\n }\r\n }\r\n }\r\n return instFunc;\r\n}\r\nfunction _getProtoFunc(funcName, proto, currentDynProtoProxy) {\r\n var protoFunc = proto[funcName];\r\n // Check that the prototype function is not a self reference -- try to avoid stack overflow!\r\n if (protoFunc === currentDynProtoProxy) {\r\n // It is so lookup the base prototype\r\n protoFunc = _getObjProto(proto)[funcName];\r\n }\r\n if (typeof protoFunc !== strFunction) {\r\n _throwTypeError(\"[\" + funcName + \"] is not a \" + strFunction);\r\n }\r\n return protoFunc;\r\n}\r\n/**\r\n * Add the required dynamic prototype methods to the the class prototype\r\n * @param proto - The class prototype\r\n * @param className - The instance classname\r\n * @param target - The target instance\r\n * @param baseInstFuncs - The base instance functions\r\n * @param setInstanceFunc - Flag to allow prototype function to reset the instance function if one does not exist\r\n * @ignore\r\n */\r\nfunction _populatePrototype(proto, className, target, baseInstFuncs, setInstanceFunc) {\r\n function _createDynamicPrototype(proto, funcName) {\r\n var dynProtoProxy = function () {\r\n // Use the instance or prototype function\r\n var instFunc = _getInstFunc(this, funcName, proto, dynProtoProxy) || _getProtoFunc(funcName, proto, dynProtoProxy);\r\n // eslint-disable-next-line prefer-rest-params\r\n return instFunc.apply(this, arguments);\r\n };\r\n // Tag this function as a proxy to support replacing dynamic proxy elements (primary use case is for unit testing\r\n // via which can dynamically replace the prototype function reference)\r\n dynProtoProxy[DynProxyTag] = 1;\r\n return dynProtoProxy;\r\n }\r\n if (!_isObjectOrArrayPrototype(proto)) {\r\n var instFuncTable = target[DynInstFuncTable] = target[DynInstFuncTable] || objCreate(null);\r\n if (!_isObjectOrArrayPrototype(instFuncTable)) {\r\n var instFuncs_1 = instFuncTable[className] = (instFuncTable[className] || objCreate(null)); // fetch and assign if as it may not exist yet\r\n // Set whether we are allow to lookup instances, if someone has set to false then do not re-enable\r\n if (instFuncTable[DynAllowInstChkTag] !== false) {\r\n instFuncTable[DynAllowInstChkTag] = !!setInstanceFunc;\r\n }\r\n if (!_isObjectOrArrayPrototype(instFuncs_1)) {\r\n _forEachProp(target, function (name) {\r\n // Only add overridden functions\r\n if (_isDynamicCandidate(target, name, false) && target[name] !== baseInstFuncs[name]) {\r\n // Save the instance Function to the lookup table and remove it from the instance as it's not a dynamic proto function\r\n instFuncs_1[name] = target[name];\r\n delete target[name];\r\n // Add a dynamic proto if one doesn't exist or if a prototype function exists and it's not a dynamic one\r\n if (!objHasOwnProperty(proto, name) || (proto[name] && !proto[name][DynProxyTag])) {\r\n proto[name] = _createDynamicPrototype(proto, name);\r\n }\r\n }\r\n });\r\n }\r\n }\r\n }\r\n}\r\n/**\r\n * Checks whether the passed prototype object appears to be correct by walking the prototype hierarchy of the instance\r\n * @param classProto The class prototype instance\r\n * @param thisTarget The current instance that will be checked whether the passed prototype instance is in the hierarchy\r\n * @ignore\r\n */\r\nfunction _checkPrototype(classProto, thisTarget) {\r\n // This method doesn't existing in older browsers (e.g. IE8)\r\n if (_objGetPrototypeOf) {\r\n // As this is primarily a coding time check, don't bother checking if running in IE8 or lower\r\n var visited = [];\r\n var thisProto = _getObjProto(thisTarget);\r\n while (thisProto && !_isObjectArrayOrFunctionPrototype(thisProto) && !_hasVisited(visited, thisProto)) {\r\n if (thisProto === classProto) {\r\n return true;\r\n }\r\n // This avoids the caller from needing to check whether it's direct base class implements the function or not\r\n // by walking the entire chain it simplifies the usage and issues from upgrading any of the base classes.\r\n visited.push(thisProto);\r\n thisProto = _getObjProto(thisProto);\r\n }\r\n return false;\r\n }\r\n // If objGetPrototypeOf doesn't exist then just assume everything is ok.\r\n return true;\r\n}\r\n/**\r\n * Gets the current prototype name using the ES6 name if available otherwise falling back to a use unknown as the name.\r\n * It's not critical for this to return a name, it's used to decorate the generated unique name for easier debugging only.\r\n * @param target\r\n * @param unknownValue\r\n * @ignore\r\n */\r\nfunction _getObjName(target, unknownValue) {\r\n if (objHasOwnProperty(target, Prototype)) {\r\n // Look like a prototype\r\n return target.name || unknownValue || UnknownValue;\r\n }\r\n return (((target || {})[Constructor]) || {}).name || unknownValue || UnknownValue;\r\n}\r\n/**\r\n * Helper function when creating dynamic (inline) functions for classes, this helper performs the following tasks :-\r\n * - Saves references to all defined base class functions\r\n * - Calls the delegateFunc with the current target (this) and a base object reference that can be used to call all \"super\" functions.\r\n * - Will populate the class prototype for all overridden functions to support class extension that call the prototype instance.\r\n * Callers should use this helper when declaring all function within the constructor of a class, as mentioned above the delegateFunc is\r\n * passed both the target \"this\" and an object that can be used to call any base (super) functions, using this based object in place of\r\n * super.XXX() (which gets expanded to _super.prototype.XXX()) provides a better minification outcome and also ensures the correct \"this\"\r\n * context is maintained as TypeScript creates incorrect references using super.XXXX() for dynamically defined functions i.e. Functions\r\n * defined in the constructor or some other function (rather than declared as complete typescript functions).\r\n * ### Usage\r\n * ```typescript\r\n * import dynamicProto from \"@microsoft/dynamicproto-js\";\r\n * class ExampleClass extends BaseClass {\r\n * constructor() {\r\n * dynamicProto(ExampleClass, this, (_self, base) => {\r\n * // This will define a function that will be converted to a prototype function\r\n * _self.newFunc = () => {\r\n * // Access any \"this\" instance property\r\n * if (_self.someProperty) {\r\n * ...\r\n * }\r\n * }\r\n * // This will define a function that will be converted to a prototype function\r\n * _self.myFunction = () => {\r\n * // Access any \"this\" instance property\r\n * if (_self.someProperty) {\r\n * // Call the base version of the function that we are overriding\r\n * base.myFunction();\r\n * }\r\n * ...\r\n * }\r\n * _self.initialize = () => {\r\n * ...\r\n * }\r\n * // Warnings: While the following will work as _self is simply a reference to\r\n * // this, if anyone overrides myFunction() the overridden will be called first\r\n * // as the normal JavaScript method resolution will occur and the defined\r\n * // _self.initialize() function is actually gets removed from the instance and\r\n * // a proxy prototype version is created to reference the created method.\r\n * _self.initialize();\r\n * });\r\n * }\r\n * }\r\n * ```\r\n * @typeparam DPType This is the generic type of the class, used to keep intellisense valid\r\n * @typeparam DPCls The type that contains the prototype of the current class\r\n * @param theClass - This is the current class instance which contains the prototype for the current class\r\n * @param target - The current \"this\" (target) reference, when the class has been extended this.prototype will not be the 'theClass' value.\r\n * @param delegateFunc - The callback function (closure) that will create the dynamic function\r\n * @param options - Additional options to configure how the dynamic prototype operates\r\n */\r\nexport default function dynamicProto(theClass, target, delegateFunc, options) {\r\n // Make sure that the passed theClass argument looks correct\r\n if (!objHasOwnProperty(theClass, Prototype)) {\r\n _throwTypeError(\"theClass is an invalid class definition.\");\r\n }\r\n // Quick check to make sure that the passed theClass argument looks correct (this is a common copy/paste error)\r\n var classProto = theClass[Prototype];\r\n if (!_checkPrototype(classProto, target)) {\r\n _throwTypeError(\"[\" + _getObjName(theClass) + \"] not in hierarchy of [\" + _getObjName(target) + \"]\");\r\n }\r\n var className = null;\r\n if (objHasOwnProperty(classProto, DynClassName)) {\r\n // Only grab the class name if it's defined on this prototype (i.e. don't walk the prototype chain)\r\n className = classProto[DynClassName];\r\n }\r\n else {\r\n // As not all browser support name on the prototype creating a unique dynamic one if we have not already\r\n // assigned one, so we can use a simple string as the lookup rather than an object for the dynamic instance\r\n // function table lookup.\r\n className = DynClassNamePrefix + _getObjName(theClass, \"_\") + \"$\" + _gblInst.n;\r\n _gblInst.n++;\r\n classProto[DynClassName] = className;\r\n }\r\n var perfOptions = dynamicProto[DynProtoDefaultOptions];\r\n var useBaseInst = !!perfOptions[strUseBaseInst];\r\n if (useBaseInst && options && options[strUseBaseInst] !== undefined) {\r\n useBaseInst = !!options[strUseBaseInst];\r\n }\r\n // Get the current instance functions\r\n var instFuncs = _getInstanceFuncs(target);\r\n // Get all of the functions for any base instance (before they are potentially overridden)\r\n var baseFuncs = _getBaseFuncs(classProto, target, instFuncs, useBaseInst);\r\n // Execute the delegate passing in both the current target \"this\" and \"base\" function references\r\n // Note casting the same type as we don't actually have the base class here and this will provide some intellisense support\r\n delegateFunc(target, baseFuncs);\r\n // Don't allow setting instance functions for older IE instances\r\n var setInstanceFunc = !!_objGetPrototypeOf && !!perfOptions[strSetInstFuncs];\r\n if (setInstanceFunc && options) {\r\n setInstanceFunc = !!options[strSetInstFuncs];\r\n }\r\n // Populate the Prototype for any overridden instance functions\r\n _populatePrototype(classProto, className, target, instFuncs, setInstanceFunc !== false);\r\n}\r\n/**\r\n * Exposes the default global options to allow global configuration, if the global values are disabled these will override\r\n * any passed values. This is primarily exposed to support unit-testing without the need for individual classes to expose\r\n * their internal usage of dynamic proto.\r\n */\r\ndynamicProto[DynProtoDefaultOptions] = _gblInst.o;\r\n//# sourceMappingURL=DynamicProto.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nexport var strShimFunction = \"function\";\r\nexport var strShimObject = \"object\";\r\nexport var strShimUndefined = \"undefined\";\r\nexport var strShimPrototype = \"prototype\";\r\nexport var strDefault = \"default\";\r\nexport var ObjClass = Object;\r\nexport var ObjProto = ObjClass[strShimPrototype];\r\n//# sourceMappingURL=Constants.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { getGlobal, objAssign, objCreate, objDefineProp, objHasOwnProperty, throwTypeError } from \"@nevware21/ts-utils\";\r\nimport { ObjClass, ObjProto, strDefault, strShimFunction, strShimPrototype } from \"./Constants\";\r\n// Most of these functions have been directly shamelessly \"lifted\" from the https://github.com/@microsoft/tslib and\r\n// modified to be ES5 compatible and applying several minification and tree-shaking techniques so that Application Insights\r\n// can successfully use TypeScript \"importHelpers\" which imports tslib during compilation but it will use these at runtime\r\n// Which is also why all of the functions have not been included as Application Insights currently doesn't use or require\r\n// them.\r\nexport var SymbolObj = (getGlobal() || {})[\"Symbol\"];\r\nexport var ReflectObj = (getGlobal() || {})[\"Reflect\"];\r\nexport var __hasReflect = !!ReflectObj;\r\nvar strDecorate = \"decorate\";\r\nvar strMetadata = \"metadata\";\r\nvar strGetOwnPropertySymbols = \"getOwnPropertySymbols\";\r\nvar strIterator = \"iterator\";\r\nvar strHasOwnProperty = \"hasOwnProperty\";\r\nexport var __objAssignFnImpl = function (t) {\r\n // tslint:disable-next-line: ban-comma-operator\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) {\r\n if (ObjProto[strHasOwnProperty].call(s, p)) {\r\n t[p] = s[p];\r\n }\r\n }\r\n }\r\n return t;\r\n};\r\nexport var __assignFn = objAssign || __objAssignFnImpl;\r\n// tslint:disable-next-line: only-arrow-functions\r\nvar extendStaticsFn = function (d, b) {\r\n extendStaticsFn = ObjClass[\"setPrototypeOf\"] ||\r\n // tslint:disable-next-line: only-arrow-functions\r\n ({ __proto__: [] } instanceof Array && function (d, b) {\r\n d.__proto__ = b;\r\n }) ||\r\n // tslint:disable-next-line: only-arrow-functions\r\n function (d, b) {\r\n for (var p in b) {\r\n if (b[strHasOwnProperty](p)) {\r\n d[p] = b[p];\r\n }\r\n }\r\n };\r\n return extendStaticsFn(d, b);\r\n};\r\nexport function __extendsFn(d, b) {\r\n if (typeof b !== strShimFunction && b !== null) {\r\n throwTypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n }\r\n extendStaticsFn(d, b);\r\n function __() {\r\n this.constructor = d;\r\n }\r\n // tslint:disable-next-line: ban-comma-operator\r\n d[strShimPrototype] = b === null ? objCreate(b) : (__[strShimPrototype] = b[strShimPrototype], new __());\r\n}\r\nexport function __restFn(s, e) {\r\n var t = {};\r\n for (var k in s) {\r\n if (objHasOwnProperty(s, k) && e.indexOf(k) < 0) {\r\n t[k] = s[k];\r\n }\r\n }\r\n if (s != null && typeof ObjClass[strGetOwnPropertySymbols] === strShimFunction) {\r\n for (var i = 0, p = ObjClass[strGetOwnPropertySymbols](s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && ObjProto[\"propertyIsEnumerable\"].call(s, p[i])) {\r\n t[p[i]] = s[p[i]];\r\n }\r\n }\r\n }\r\n return t;\r\n}\r\nexport function __decorateFn(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = ObjClass[\"getOwnPropertyDescriptor\"](target, key) : desc, d;\r\n if (__hasReflect && typeof ReflectObj[strDecorate] === strShimFunction) {\r\n r = ReflectObj[strDecorate](decorators, target, key, desc);\r\n }\r\n else {\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n // eslint-disable-next-line no-cond-assign\r\n if (d = decorators[i]) {\r\n r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n }\r\n }\r\n }\r\n // tslint:disable-next-line:ban-comma-operator\r\n return c > 3 && r && objDefineProp(target, key, r), r;\r\n}\r\nexport function __paramFn(paramIndex, decorator) {\r\n return function (target, key) {\r\n decorator(target, key, paramIndex);\r\n };\r\n}\r\nexport function __metadataFn(metadataKey, metadataValue) {\r\n if (__hasReflect && ReflectObj[strMetadata] === strShimFunction) {\r\n return ReflectObj[strMetadata](metadataKey, metadataValue);\r\n }\r\n}\r\nexport function __exportStarFn(m, o) {\r\n for (var p in m) {\r\n if (p !== strDefault && !objHasOwnProperty(o, p)) {\r\n __createBindingFn(o, m, p);\r\n }\r\n }\r\n}\r\nexport function __createBindingFn(o, m, k, k2) {\r\n if (k2 === undefined) {\r\n k2 = k;\r\n }\r\n if (!!objDefineProp) {\r\n objDefineProp(o, k2, {\r\n enumerable: true,\r\n get: function () {\r\n return m[k];\r\n }\r\n });\r\n }\r\n else {\r\n o[k2] = m[k];\r\n }\r\n}\r\nexport function __valuesFn(o) {\r\n var s = typeof SymbolObj === strShimFunction && SymbolObj[strIterator], m = s && o[s], i = 0;\r\n if (m) {\r\n return m.call(o);\r\n }\r\n if (o && typeof o.length === \"number\") {\r\n return {\r\n next: function () {\r\n if (o && i >= o.length) {\r\n o = void 0;\r\n }\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n }\r\n throwTypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\nexport function __readFn(o, n) {\r\n var m = typeof SymbolObj === strShimFunction && o[SymbolObj[strIterator]];\r\n if (!m) {\r\n return o;\r\n }\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) {\r\n ar.push(r.value);\r\n }\r\n }\r\n catch (error) {\r\n e = {\r\n error: error\r\n };\r\n }\r\n finally {\r\n try {\r\n // tslint:disable-next-line:no-conditional-assignment\r\n if (r && !r.done && (m = i[\"return\"])) {\r\n m.call(i);\r\n }\r\n }\r\n finally {\r\n if (e) {\r\n // eslint-disable-next-line no-unsafe-finally\r\n throw e.error;\r\n }\r\n }\r\n }\r\n return ar;\r\n}\r\n/** @deprecated */\r\nexport function __spreadArraysFn() {\r\n var theArgs = arguments;\r\n // Calculate new total size\r\n for (var s = 0, i = 0, il = theArgs.length; i < il; i++) {\r\n s += theArgs[i].length;\r\n }\r\n // Create new full array\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++) {\r\n for (var a = theArgs[i], j = 0, jl = a.length; j < jl; j++, k++) {\r\n r[k] = a[j];\r\n }\r\n }\r\n return r;\r\n}\r\nexport function __spreadArrayFn(to, from) {\r\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++) {\r\n to[j] = from[i];\r\n }\r\n return to;\r\n}\r\nexport function __makeTemplateObjectFn(cooked, raw) {\r\n if (objDefineProp) {\r\n objDefineProp(cooked, \"raw\", { value: raw });\r\n }\r\n else {\r\n cooked.raw = raw;\r\n }\r\n return cooked;\r\n}\r\nexport function __importStarFn(mod) {\r\n if (mod && mod.__esModule) {\r\n return mod;\r\n }\r\n var result = {};\r\n if (mod != null) {\r\n for (var k in mod) {\r\n if (k !== strDefault && Object.prototype.hasOwnProperty.call(mod, k)) {\r\n __createBindingFn(result, mod, k);\r\n }\r\n }\r\n }\r\n // Set default module\r\n if (!!objDefineProp) {\r\n objDefineProp(result, strDefault, { enumerable: true, value: mod });\r\n }\r\n else {\r\n result[strDefault] = mod;\r\n }\r\n return result;\r\n}\r\nexport function __importDefaultFn(mod) {\r\n return (mod && mod.__esModule) ? mod : { strDefault: mod };\r\n}\r\n//# sourceMappingURL=TsLibShims.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { createEnum, createTypeMap } from \"@nevware21/ts-utils\";\r\n/**\r\n * Create an enum style object which has both the key => value and value => key mappings\r\n * @param values - The values to populate on the new object\r\n * @returns\r\n */\r\nexport var createEnumStyle = createEnum;\r\n/**\r\n * Create a 2 index map that maps an enum's key and value to the defined map value, X[\"key\"] => mapValue and X[0] => mapValue.\r\n * Generic values\r\n * - E = the const enum type (typeof eRequestHeaders);\r\n * - V = Identifies the valid values for the keys, this should include both the enum numeric and string key of the type. The\r\n * resulting \"Value\" of each entry identifies the valid values withing the assignments.\r\n * @param values - The values to populate on the new object\r\n * @returns\r\n */\r\nexport var createValueMap = createTypeMap;\r\n//# sourceMappingURL=EnumHelperFuncs.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nimport { createEnumStyle } from \"./EnumHelperFuncs\";\r\nexport var ActiveStatus = createEnumStyle({\r\n NONE: 0 /* eActiveStatus.NONE */,\r\n PENDING: 3 /* eActiveStatus.PENDING */,\r\n INACTIVE: 1 /* eActiveStatus.INACTIVE */,\r\n ACTIVE: 2 /* eActiveStatus.ACTIVE */\r\n});\r\n//# sourceMappingURL=InitActiveStatusEnum.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n// @skip-file-minify\r\n// ##############################################################\r\n// AUTO GENERATED FILE: This file is Auto Generated during build.\r\n// ##############################################################\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\n// Note: DON'T Export these const from the package as we are still targeting ES3 this will export a mutable variables that someone could change!!!\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\nexport var _DYN_TO_LOWER_CASE = \"toLowerCase\"; // Count: 11\r\nexport var _DYN_BLK_VAL = \"blkVal\"; // Count: 5\r\nexport var _DYN_LENGTH = \"length\"; // Count: 55\r\nexport var _DYN_RD_ONLY = \"rdOnly\"; // Count: 4\r\nexport var _DYN_NOTIFY = \"notify\"; // Count: 4\r\nexport var _DYN_WARN_TO_CONSOLE = \"warnToConsole\"; // Count: 4\r\nexport var _DYN_THROW_INTERNAL = \"throwInternal\"; // Count: 5\r\nexport var _DYN_SET_DF = \"setDf\"; // Count: 6\r\nexport var _DYN_WATCH = \"watch\"; // Count: 8\r\nexport var _DYN_LOGGER = \"logger\"; // Count: 21\r\nexport var _DYN_APPLY = \"apply\"; // Count: 7\r\nexport var _DYN_PUSH = \"push\"; // Count: 35\r\nexport var _DYN_SPLICE = \"splice\"; // Count: 8\r\nexport var _DYN_HDLR = \"hdlr\"; // Count: 6\r\nexport var _DYN_CANCEL = \"cancel\"; // Count: 6\r\nexport var _DYN_INITIALIZE = \"initialize\"; // Count: 5\r\nexport var _DYN_IDENTIFIER = \"identifier\"; // Count: 8\r\nexport var _DYN_REMOVE_NOTIFICATION_0 = \"removeNotificationListener\"; // Count: 4\r\nexport var _DYN_ADD_NOTIFICATION_LIS1 = \"addNotificationListener\"; // Count: 4\r\nexport var _DYN_IS_INITIALIZED = \"isInitialized\"; // Count: 10\r\nexport var _DYN_INSTRUMENTATION_KEY = \"instrumentationKey\"; // Count: 2\r\nexport var _DYN__INACTIVE = \"INACTIVE\"; // Count: 3\r\nexport var _DYN_VALUE = \"value\"; // Count: 5\r\nexport var _DYN_GET_NOTIFY_MGR = \"getNotifyMgr\"; // Count: 5\r\nexport var _DYN_GET_PLUGIN = \"getPlugin\"; // Count: 6\r\nexport var _DYN_NAME = \"name\"; // Count: 12\r\nexport var _DYN_I_KEY = \"iKey\"; // Count: 5\r\nexport var _DYN_TIME = \"time\"; // Count: 6\r\nexport var _DYN_PROCESS_NEXT = \"processNext\"; // Count: 15\r\nexport var _DYN_GET_PROCESS_TEL_CONT2 = \"getProcessTelContext\"; // Count: 2\r\nexport var _DYN_POLL_INTERNAL_LOGS = \"pollInternalLogs\"; // Count: 2\r\nexport var _DYN_ENABLED = \"enabled\"; // Count: 6\r\nexport var _DYN_STOP_POLLING_INTERNA3 = \"stopPollingInternalLogs\"; // Count: 2\r\nexport var _DYN_UNLOAD = \"unload\"; // Count: 9\r\nexport var _DYN_ON_COMPLETE = \"onComplete\"; // Count: 5\r\nexport var _DYN_VERSION = \"version\"; // Count: 6\r\nexport var _DYN_LOGGING_LEVEL_CONSOL4 = \"loggingLevelConsole\"; // Count: 2\r\nexport var _DYN_CREATE_NEW = \"createNew\"; // Count: 7\r\nexport var _DYN_TEARDOWN = \"teardown\"; // Count: 9\r\nexport var _DYN_MESSAGE_ID = \"messageId\"; // Count: 4\r\nexport var _DYN_MESSAGE = \"message\"; // Count: 7\r\nexport var _DYN_IS_ASYNC = \"isAsync\"; // Count: 6\r\nexport var _DYN_DIAG_LOG = \"diagLog\"; // Count: 10\r\nexport var _DYN__DO_TEARDOWN = \"_doTeardown\"; // Count: 5\r\nexport var _DYN_UPDATE = \"update\"; // Count: 6\r\nexport var _DYN_GET_NEXT = \"getNext\"; // Count: 12\r\nexport var _DYN_SET_NEXT_PLUGIN = \"setNextPlugin\"; // Count: 5\r\nexport var _DYN_PROTOCOL = \"protocol\"; // Count: 3\r\nexport var _DYN_USER_AGENT = \"userAgent\"; // Count: 5\r\nexport var _DYN_SPLIT = \"split\"; // Count: 7\r\nexport var _DYN_NODE_TYPE = \"nodeType\"; // Count: 3\r\nexport var _DYN_REPLACE = \"replace\"; // Count: 9\r\nexport var _DYN_LOG_INTERNAL_MESSAGE = \"logInternalMessage\"; // Count: 2\r\nexport var _DYN_TYPE = \"type\"; // Count: 14\r\nexport var _DYN_HANDLER = \"handler\"; // Count: 5\r\nexport var _DYN_STATUS = \"status\"; // Count: 5\r\nexport var _DYN_GET_RESPONSE_HEADER = \"getResponseHeader\"; // Count: 2\r\nexport var _DYN_GET_ALL_RESPONSE_HEA5 = \"getAllResponseHeaders\"; // Count: 2\r\nexport var _DYN_IS_CHILD_EVT = \"isChildEvt\"; // Count: 3\r\nexport var _DYN_DATA = \"data\"; // Count: 7\r\nexport var _DYN_GET_CTX = \"getCtx\"; // Count: 6\r\nexport var _DYN_SET_CTX = \"setCtx\"; // Count: 10\r\nexport var _DYN_COMPLETE = \"complete\"; // Count: 3\r\nexport var _DYN_ITEMS_RECEIVED = \"itemsReceived\"; // Count: 3\r\nexport var _DYN_URL_STRING = \"urlString\"; // Count: 5\r\nexport var _DYN_SEND_POST = \"sendPOST\"; // Count: 3\r\nexport var _DYN_HEADERS = \"headers\"; // Count: 5\r\nexport var _DYN_TIMEOUT = \"timeout\"; // Count: 6\r\nexport var _DYN_SET_REQUEST_HEADER = \"setRequestHeader\"; // Count: 2\r\nexport var _DYN_TRACE_ID = \"traceId\"; // Count: 5\r\nexport var _DYN_SPAN_ID = \"spanId\"; // Count: 5\r\nexport var _DYN_TRACE_FLAGS = \"traceFlags\"; // Count: 6\r\nexport var _DYN_GET_ATTRIBUTE = \"getAttribute\"; // Count: 3\r\n//# sourceMappingURL=__DynamicConstants.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { arrForEach, createCustomError, dumpObj } from \"@nevware21/ts-utils\";\r\nimport { _DYN_LENGTH } from \"../__DynamicConstants\";\r\nvar aggregationErrorType;\r\n/**\r\n * Throws an Aggregation Error which includes all of the errors that led to this error occurring\r\n * @param message - The message describing the aggregation error (the sourceError details are added to this)\r\n * @param sourceErrors - An array of the errors that caused this situation\r\n */\r\nexport function throwAggregationError(message, sourceErrors) {\r\n if (!aggregationErrorType) {\r\n aggregationErrorType = createCustomError(\"AggregationError\", function (self, args) {\r\n if (args[_DYN_LENGTH /* @min:%2elength */] > 1) {\r\n // Save the provided errors\r\n self.errors = args[1];\r\n }\r\n });\r\n }\r\n var theMessage = message || \"One or more errors occurred.\";\r\n arrForEach(sourceErrors, function (srcError, idx) {\r\n theMessage += \"\\n\".concat(idx, \" > \").concat(dumpObj(srcError));\r\n });\r\n throw new aggregationErrorType(theMessage, sourceErrors || []);\r\n}\r\n//# sourceMappingURL=AggregationError.js.map","/*!\n * NevWare21 Solutions LLC - ts-async, 0.5.3\n * https://github.com/nevware21/ts-async\n * Copyright (c) NevWare21 Solutions LLC and contributors. All rights reserved.\n * Licensed under the MIT license.\n */\nimport { isPromiseLike, objDefineProperties, getDocument, createCachedValue, safe, getInst, dumpObj, arrSlice, objDefineProp, hasSymbol, getKnownSymbol, isFunction, throwTypeError, iterForOf, scheduleTimeout, isNode, getWindow, getGlobal, objDefine, objToString, isUndefined, isArray, arrForEach, isIterable, createCustomError, isNumber, scheduleIdleCallback, utcNow, getLength, isIterator, fnCall, arrIndexOf } from '@nevware21/ts-utils';\n\nvar STR_PROMISE = \"Promise\";\nvar DONE = \"done\";\nvar VALUE = \"value\";\nvar RETURN = \"return\";\nvar REJECTED = \"rejected\";\n\nfunction doAwaitResponse(value, cb) {\n return doAwait(value, function (value) {\n return cb ? cb({\n status: \"fulfilled\",\n rejected: false,\n value: value\n }) : value;\n }, function (reason) {\n return cb ? cb({\n status: REJECTED,\n rejected: true,\n reason: reason\n }) : reason;\n });\n}\nfunction doAwait(value, resolveFn, rejectFn, finallyFn) {\n var result = value;\n try {\n if (isPromiseLike(value)) {\n if (resolveFn || rejectFn) {\n result = value.then(resolveFn, rejectFn);\n }\n }\n else {\n try {\n if (resolveFn) {\n result = resolveFn(value);\n }\n }\n catch (err) {\n if (rejectFn) {\n result = rejectFn(err);\n }\n else {\n throw err;\n }\n }\n }\n }\n finally {\n if (finallyFn) {\n doFinally(result, finallyFn);\n }\n }\n return result;\n}\nfunction doFinally(value, finallyFn) {\n var result = value;\n if (finallyFn) {\n if (isPromiseLike(value)) {\n if (value.finally) {\n result = value.finally(finallyFn);\n }\n else {\n result = value.then(function (value) {\n finallyFn();\n return value;\n }, function (reason) {\n finallyFn();\n throw reason;\n });\n }\n }\n else {\n finallyFn();\n }\n }\n return result;\n}\n\nvar _debugState;\nvar _debugResult;\nvar _debugHandled;\nvar _promiseDebugEnabled = false;\nfunction _addDebugState$1(thePromise, stateFn, resultFn, handledFn) {\n _debugState = _debugState || { toString: function () { return \"[[PromiseState]]\"; } };\n _debugResult = _debugResult || { toString: function () { return \"[[PromiseResult]]\"; } };\n _debugHandled = _debugHandled || { toString: function () { return \"[[PromiseIsHandled]]\"; } };\n var props = {};\n props[_debugState] = { get: stateFn };\n props[_debugResult] = { get: resultFn };\n props[_debugHandled] = { get: handledFn };\n objDefineProperties(thePromise, props);\n}\nfunction setPromiseDebugState(enabled, logger) {\n _promiseDebugEnabled = enabled;\n}\n\nvar STRING_STATES = [\n \"pending\", \"resolving\", \"resolved\", REJECTED\n];\n\nvar DISPATCH_EVENT = \"dispatchEvent\";\nvar _hasInitEvent;\nfunction _hasInitEventFn(doc) {\n var evt;\n if (doc && doc.createEvent) {\n evt = doc.createEvent(\"Event\");\n }\n return (!!evt && evt.initEvent);\n}\nfunction emitEvent(target, evtName, populateEvent, useNewEvent) {\n var doc = getDocument();\n !_hasInitEvent && (_hasInitEvent = createCachedValue(!!safe(_hasInitEventFn, [doc]).v));\n var theEvt = _hasInitEvent.v ? doc.createEvent(\"Event\") : (useNewEvent ? new Event(evtName) : {});\n populateEvent && populateEvent(theEvt);\n if (_hasInitEvent.v) {\n theEvt.initEvent(evtName, false, true);\n }\n if (theEvt && target[DISPATCH_EVENT]) {\n target[DISPATCH_EVENT](theEvt);\n }\n else {\n var handler = target[\"on\" + evtName];\n if (handler) {\n handler(theEvt);\n }\n else {\n var theConsole = getInst(\"console\");\n theConsole && (theConsole[\"error\"] || theConsole[\"log\"])(evtName, dumpObj(theEvt));\n }\n }\n}\n\nvar NODE_UNHANDLED_REJECTION = \"unhandledRejection\";\nvar UNHANDLED_REJECTION = NODE_UNHANDLED_REJECTION.toLowerCase();\nvar _currentPromiseId = [];\nvar _uniquePromiseId = 0;\nvar _unhandledRejectionTimeout = 10;\nvar _aggregationError;\nvar _hasPromiseRejectionEvent;\nfunction dumpFnObj(value) {\n if (isFunction(value)) {\n return value.toString();\n }\n return dumpObj(value);\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction _createAggregationError(values) {\n !_aggregationError && (_aggregationError = createCachedValue(safe(getInst, [\"AggregationError\"]).v || createCustomError(\"AggregationError\", function (self, args) {\n self.errors = args[0];\n })));\n return new _aggregationError.v(values);\n}\nfunction _createPromise(newPromise, processor, executor) {\n var additionalArgs = arrSlice(arguments, 3);\n var _state = 0 ;\n var _hasResolved = false;\n var _settledValue;\n var _queue = [];\n var _id = _uniquePromiseId++;\n var _parentId = _currentPromiseId.length > 0 ? _currentPromiseId[_currentPromiseId.length - 1] : undefined;\n var _handled = false;\n var _unHandledRejectionHandler = null;\n var _thePromise;\n function _then(onResolved, onRejected) {\n try {\n _currentPromiseId.push(_id);\n _handled = true;\n _unHandledRejectionHandler && _unHandledRejectionHandler.cancel();\n _unHandledRejectionHandler = null;\n var thenPromise = newPromise(function (resolve, reject) {\n _queue.push(function () {\n try {\n var handler = _state === 2 ? onResolved : onRejected;\n var value = isUndefined(handler) ? _settledValue : (isFunction(handler) ? handler(_settledValue) : handler);\n if (isPromiseLike(value)) {\n value.then(resolve, reject);\n }\n else if (handler) {\n resolve(value);\n }\n else if (_state === 3 ) {\n reject(value);\n }\n else {\n resolve(value);\n }\n }\n catch (e) {\n reject(e);\n }\n });\n if (_hasResolved) {\n _processQueue();\n }\n }, additionalArgs);\n return thenPromise;\n }\n finally {\n _currentPromiseId.pop();\n }\n }\n function _catch(onRejected) {\n return _then(undefined, onRejected);\n }\n function _finally(onFinally) {\n var thenFinally = onFinally;\n var catchFinally = onFinally;\n if (isFunction(onFinally)) {\n thenFinally = function (value) {\n onFinally && onFinally();\n return value;\n };\n catchFinally = function (reason) {\n onFinally && onFinally();\n throw reason;\n };\n }\n return _then(thenFinally, catchFinally);\n }\n function _strState() {\n return STRING_STATES[_state];\n }\n function _processQueue() {\n if (_queue.length > 0) {\n var pending = _queue.slice();\n _queue = [];\n _handled = true;\n _unHandledRejectionHandler && _unHandledRejectionHandler.cancel();\n _unHandledRejectionHandler = null;\n processor(pending);\n }\n }\n function _createSettleIfFn(newState, allowState) {\n return function (theValue) {\n if (_state === allowState) {\n if (newState === 2 && isPromiseLike(theValue)) {\n _state = 1 ;\n theValue.then(_createSettleIfFn(2 , 1 ), _createSettleIfFn(3 , 1 ));\n return;\n }\n _state = newState;\n _hasResolved = true;\n _settledValue = theValue;\n _processQueue();\n if (!_handled && newState === 3 && !_unHandledRejectionHandler) {\n _unHandledRejectionHandler = scheduleTimeout(_notifyUnhandledRejection, _unhandledRejectionTimeout);\n }\n }\n };\n }\n function _notifyUnhandledRejection() {\n if (!_handled) {\n _handled = true;\n if (isNode()) {\n process.emit(NODE_UNHANDLED_REJECTION, _settledValue, _thePromise);\n }\n else {\n var gbl = getWindow() || getGlobal();\n !_hasPromiseRejectionEvent && (_hasPromiseRejectionEvent = createCachedValue(safe((getInst), [STR_PROMISE + \"RejectionEvent\"]).v));\n emitEvent(gbl, UNHANDLED_REJECTION, function (theEvt) {\n objDefine(theEvt, \"promise\", { g: function () { return _thePromise; } });\n theEvt.reason = _settledValue;\n return theEvt;\n }, !!_hasPromiseRejectionEvent.v);\n }\n }\n }\n _thePromise = {\n then: _then,\n \"catch\": _catch,\n finally: _finally\n };\n objDefineProp(_thePromise, \"state\", {\n get: _strState\n });\n if (_promiseDebugEnabled) {\n _addDebugState$1(_thePromise, _strState, function () { return objToString(_settledValue); }, function () { return _handled; });\n }\n if (hasSymbol()) {\n _thePromise[getKnownSymbol(11 )] = \"IPromise\";\n }\n function _toString() {\n return \"IPromise\" + (_promiseDebugEnabled ? \"[\" + _id + (!isUndefined(_parentId) ? (\":\" + _parentId) : \"\") + \"]\" : \"\") + \" \" + _strState() + (_hasResolved ? (\" - \" + dumpFnObj(_settledValue)) : \"\") + (\"\");\n }\n _thePromise.toString = _toString;\n (function _initialize() {\n if (!isFunction(executor)) {\n throwTypeError(STR_PROMISE + \": executor is not a function - \" + dumpFnObj(executor));\n }\n var _rejectFn = _createSettleIfFn(3 , 0 );\n try {\n executor.call(_thePromise, _createSettleIfFn(2 , 0 ), _rejectFn);\n }\n catch (e) {\n _rejectFn(e);\n }\n })();\n return _thePromise;\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction _createAllPromise(newPromise) {\n return function (input) {\n var additionalArgs = arrSlice(arguments, 1);\n return newPromise(function (resolve, reject) {\n try {\n var values_1 = [];\n var pending_1 = 1;\n iterForOf(input, function (item, idx) {\n if (item) {\n pending_1++;\n doAwait(item, function (value) {\n values_1[idx] = value;\n if (--pending_1 === 0) {\n resolve(values_1);\n }\n }, reject);\n }\n });\n pending_1--;\n if (pending_1 === 0) {\n resolve(values_1);\n }\n }\n catch (e) {\n reject(e);\n }\n }, additionalArgs);\n };\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction _createResolvedPromise(newPromise) {\n return function (value) {\n var additionalArgs = arrSlice(arguments, 1);\n if (isPromiseLike(value)) {\n return value;\n }\n return newPromise(function (resolve) {\n resolve(value);\n }, additionalArgs);\n };\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction _createRejectedPromise(newPromise) {\n return function (reason) {\n var additionalArgs = arrSlice(arguments, 1);\n return newPromise(function (_resolve, reject) {\n reject(reason);\n }, additionalArgs);\n };\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction _createAllSettledPromise(newPromise) {\n return createCachedValue(function (input) {\n var additionalArgs = arrSlice(arguments, 1);\n return newPromise(function (resolve, reject) {\n var values = [];\n var pending = 1;\n function processItem(item, idx) {\n pending++;\n doAwaitResponse(item, function (value) {\n if (value.rejected) {\n values[idx] = {\n status: REJECTED,\n reason: value.reason\n };\n }\n else {\n values[idx] = {\n status: \"fulfilled\",\n value: value.value\n };\n }\n if (--pending === 0) {\n resolve(values);\n }\n });\n }\n try {\n if (isArray(input)) {\n arrForEach(input, processItem);\n }\n else if (isIterable(input)) {\n iterForOf(input, processItem);\n }\n else {\n throwTypeError(\"Input is not an iterable\");\n }\n pending--;\n if (pending === 0) {\n resolve(values);\n }\n }\n catch (e) {\n reject(e);\n }\n }, additionalArgs);\n });\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction _createRacePromise(newPromise) {\n return createCachedValue(function (input) {\n var additionalArgs = arrSlice(arguments, 1);\n return newPromise(function (resolve, reject) {\n var isDone = false;\n function processItem(item) {\n doAwaitResponse(item, function (value) {\n if (!isDone) {\n isDone = true;\n if (value.rejected) {\n reject(value.reason);\n }\n else {\n resolve(value.value);\n }\n }\n });\n }\n try {\n if (isArray(input)) {\n arrForEach(input, processItem);\n }\n else if (isIterable(input)) {\n iterForOf(input, processItem);\n }\n else {\n throwTypeError(\"Input is not an iterable\");\n }\n }\n catch (e) {\n reject(e);\n }\n }, additionalArgs);\n });\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction _createAnyPromise(newPromise) {\n return createCachedValue(function (input) {\n var additionalArgs = arrSlice(arguments, 1);\n return newPromise(function (resolve, reject) {\n var theErros = [];\n var pending = 1;\n var isDone = false;\n function processItem(item, idx) {\n pending++;\n doAwaitResponse(item, function (value) {\n if (!value.rejected) {\n isDone = true;\n resolve(value.value);\n return;\n }\n else {\n theErros[idx] = value.reason;\n }\n if (--pending === 0 && !isDone) {\n reject(_createAggregationError(theErros));\n }\n });\n }\n try {\n if (isArray(input)) {\n arrForEach(input, processItem);\n }\n else if (isIterable(input)) {\n iterForOf(input, processItem);\n }\n else {\n throwTypeError(\"Input is not an iterable\");\n }\n pending--;\n if (pending === 0 && !isDone) {\n reject(_createAggregationError(theErros));\n }\n }\n catch (e) {\n reject(e);\n }\n }, additionalArgs);\n });\n}\n\nfunction syncItemProcessor(pending) {\n arrForEach(pending, function (fn) {\n try {\n fn();\n }\n catch (e) {\n }\n });\n}\nfunction timeoutItemProcessor(timeout) {\n var callbackTimeout = isNumber(timeout) ? timeout : 0;\n return function (pending) {\n scheduleTimeout(function () {\n syncItemProcessor(pending);\n }, callbackTimeout);\n };\n}\nfunction idleItemProcessor(timeout) {\n var options;\n if (timeout >= 0) {\n options = {\n timeout: +timeout\n };\n }\n return function (pending) {\n scheduleIdleCallback(function (deadline) {\n syncItemProcessor(pending);\n }, options);\n };\n}\n\nvar _allAsyncSettledCreator;\nvar _raceAsyncCreator;\nvar _anyAsyncCreator;\nfunction createAsyncPromise(executor, timeout) {\n return _createPromise(createAsyncPromise, timeoutItemProcessor(timeout), executor, timeout);\n}\nvar createAsyncAllPromise = /*#__PURE__*/ _createAllPromise(createAsyncPromise);\nvar createAsyncResolvedPromise = /*#__PURE__*/ _createResolvedPromise(createAsyncPromise);\nvar createAsyncRejectedPromise = /*#__PURE__*/ _createRejectedPromise(createAsyncPromise);\nfunction createAsyncAllSettledPromise(input, timeout) {\n !_allAsyncSettledCreator && (_allAsyncSettledCreator = _createAllSettledPromise(createAsyncPromise));\n return _allAsyncSettledCreator.v(input, timeout);\n}\nfunction createAsyncRacePromise(values, timeout) {\n !_raceAsyncCreator && (_raceAsyncCreator = _createRacePromise(createAsyncPromise));\n return _raceAsyncCreator.v(values, timeout);\n}\nfunction createAsyncAnyPromise(values, timeout) {\n !_anyAsyncCreator && (_anyAsyncCreator = _createAnyPromise(createAsyncPromise));\n return _anyAsyncCreator.v(values, timeout);\n}\n\nvar _promiseCls;\nvar _allCreator;\nvar _allNativeSettledCreator;\nvar _raceNativeCreator;\nvar _anyNativeCreator;\n/*#__NO_SIDE_EFFECTS__*/\nfunction _createNativePromiseHelper(name, func) {\n !_promiseCls && (_promiseCls = createCachedValue((safe(getInst, [STR_PROMISE]).v) || null));\n if (_promiseCls.v && _promiseCls.v[name]) {\n return createCachedValue(function (input, timeout) {\n return createNativePromise(function (resolve, reject) {\n _promiseCls.v[name](input).then(resolve, reject);\n });\n });\n }\n return func();\n}\nfunction createNativePromise(executor, timeout) {\n !_promiseCls && (_promiseCls = createCachedValue((safe(getInst, [STR_PROMISE]).v) || null));\n var PrmCls = _promiseCls.v;\n if (!PrmCls) {\n return createAsyncPromise(executor);\n }\n if (!isFunction(executor)) {\n throwTypeError(STR_PROMISE + \": executor is not a function - \" + dumpObj(executor));\n }\n var _state = 0 ;\n function _strState() {\n return STRING_STATES[_state];\n }\n var thePromise = new PrmCls(function (resolve, reject) {\n function _resolve(value) {\n _state = 2 ;\n resolve(value);\n }\n function _reject(reason) {\n _state = 3 ;\n reject(reason);\n }\n executor(_resolve, _reject);\n });\n objDefineProp(thePromise, \"state\", {\n get: _strState\n });\n return thePromise;\n}\nfunction createNativeAllPromise(input, timeout) {\n !_allCreator && (_allCreator = _createNativePromiseHelper(\"all\", function () { return createCachedValue(_createAllPromise(createNativePromise)); }));\n return _allCreator.v(input, timeout);\n}\nvar createNativeResolvedPromise = /*#__PURE__*/ _createResolvedPromise(createNativePromise);\nvar createNativeRejectedPromise = /*#__PURE__*/ _createRejectedPromise(createNativePromise);\nfunction createNativeAllSettledPromise(input, timeout) {\n !_allNativeSettledCreator && (_allNativeSettledCreator = _createNativePromiseHelper(\"allSettled\", function () { return _createAllSettledPromise(createNativePromise); }));\n return _allNativeSettledCreator.v(input, timeout);\n}\nfunction createNativeRacePromise(values, timeout) {\n !_raceNativeCreator && (_raceNativeCreator = _createNativePromiseHelper(\"race\", function () { return _createRacePromise(createNativePromise); }));\n return _raceNativeCreator.v(values, timeout);\n}\nfunction createNativeAnyPromise(values, timeout) {\n !_anyNativeCreator && (_anyNativeCreator = _createNativePromiseHelper(\"any\", function () { return _createAnyPromise(createNativePromise); }));\n return _anyNativeCreator.v(values, timeout);\n}\n\nvar _allSyncSettledCreator;\nvar _raceSyncCreator;\nvar _anySyncCreator;\nfunction createSyncPromise(executor) {\n return _createPromise(createSyncPromise, syncItemProcessor, executor);\n}\nvar createSyncAllPromise = /*#__PURE__*/ _createAllPromise(createSyncPromise);\nvar createSyncResolvedPromise = /*#__PURE__*/ _createResolvedPromise(createSyncPromise);\nvar createSyncRejectedPromise = /*#__PURE__*/ _createRejectedPromise(createSyncPromise);\nfunction createSyncAllSettledPromise(input, timeout) {\n !_allSyncSettledCreator && (_allSyncSettledCreator = _createAllSettledPromise(createSyncPromise));\n return _allSyncSettledCreator.v(input, timeout);\n}\nfunction createSyncRacePromise(values, timeout) {\n !_raceSyncCreator && (_raceSyncCreator = _createRacePromise(createSyncPromise));\n return _raceSyncCreator.v(values, timeout);\n}\nfunction createSyncAnyPromise(values, timeout) {\n !_anySyncCreator && (_anySyncCreator = _createAnyPromise(createSyncPromise));\n return _anySyncCreator.v(values, timeout);\n}\n\nvar _defaultIdleTimeout;\nvar _allIdleSettledCreator;\nvar _raceIdleCreator;\nvar _anyIdleCreator;\nfunction setDefaultIdlePromiseTimeout(idleDeadline) {\n _defaultIdleTimeout = idleDeadline;\n}\nvar setDefaultIdleTimeout = ( setDefaultIdlePromiseTimeout);\nfunction createIdlePromise(executor, timeout) {\n var theTimeout = isUndefined(timeout) ? _defaultIdleTimeout : timeout;\n return _createPromise(createIdlePromise, idleItemProcessor(theTimeout), executor, theTimeout);\n}\nvar createIdleAllPromise = /*#__PURE__*/ _createAllPromise(createIdlePromise);\nvar createIdleResolvedPromise = /*#__PURE__*/ _createResolvedPromise(createIdlePromise);\nvar createIdleRejectedPromise = /*#__PURE__*/ _createRejectedPromise(createIdlePromise);\nfunction createIdleAllSettledPromise(input, timeout) {\n !_allIdleSettledCreator && (_allIdleSettledCreator = _createAllSettledPromise(createIdlePromise));\n return _allIdleSettledCreator.v(input, timeout);\n}\nfunction createIdleRacePromise(values, timeout) {\n !_raceIdleCreator && (_raceIdleCreator = _createRacePromise(createIdlePromise));\n return _raceIdleCreator.v(values, timeout);\n}\nfunction createIdleAnyPromise(values, timeout) {\n !_anyIdleCreator && (_anyIdleCreator = _createAnyPromise(createIdlePromise));\n return _anyIdleCreator.v(values, timeout);\n}\n\nvar _promiseCreator;\nvar _allSettledCreator;\nvar _raceCreator;\nvar _anyCreator;\nfunction setCreatePromiseImpl(creator) {\n _promiseCreator = creator ? createCachedValue(creator) : null;\n}\nfunction createPromise(executor, timeout) {\n !_promiseCreator && (_promiseCreator = createCachedValue(createNativePromise));\n return _promiseCreator.v.call(this, executor, timeout);\n}\nvar createAllPromise = /*#__PURE__*/ _createAllPromise(createPromise);\nvar createResolvedPromise = /*#__PURE__*/ _createResolvedPromise(createPromise);\nvar createRejectedPromise = /*#__PURE__*/ _createRejectedPromise(createPromise);\nfunction createAllSettledPromise(input, timeout) {\n !_allSettledCreator && (_allSettledCreator = _createAllSettledPromise(createPromise));\n return _allSettledCreator.v(input, timeout);\n}\nfunction createRacePromise(values, timeout) {\n !_raceCreator && (_raceCreator = _createRacePromise(createPromise));\n return _raceCreator.v(values, timeout);\n}\nfunction createAnyPromise(values, timeout) {\n !_anyCreator && (_anyCreator = _createAnyPromise(createPromise));\n return _anyCreator.v(values, timeout);\n}\n\nfunction createTimeoutPromise(timeout, resolveReject, message) {\n return createPromise(function (resolve, reject) {\n scheduleTimeout(function () {\n (resolveReject ? resolve : reject)(!isUndefined(message) ? message : \"Timeout of \" + timeout + \"ms exceeded\");\n }, timeout);\n });\n}\n\nfunction _doneChk(isDone, state, value, thisArg) {\n var result = isDone;\n state.res = value;\n if (!result) {\n if (state.isDone && isFunction(state.isDone)) {\n return doAwait(state.isDone.call(thisArg, state), function (done) {\n state.iter++;\n return !!done;\n });\n }\n else {\n result = !!state.isDone;\n }\n }\n state.iter++;\n return result;\n}\nfunction doWhileAsync(callbackFn, isDoneFn, thisArg) {\n var promise;\n var resolve;\n var reject = function (reason) {\n isDone = true;\n throw reason;\n };\n var isDone = false;\n var state = {\n st: utcNow(),\n iter: 0,\n isDone: isDoneFn || false\n };\n if (callbackFn) {\n var _createPromise_1 = function () {\n return createPromise(function (res, rej) {\n resolve = res;\n reject = rej;\n });\n };\n var _handleAsyncDone_1 = function (done) {\n isDone = !!done;\n if (!isDone) {\n _processNext_1();\n }\n else {\n resolve(state.res);\n }\n };\n var _processNext_1 = function () {\n while (!isDone) {\n try {\n var cbResult = callbackFn.call(thisArg, state);\n if (isPromiseLike(cbResult)) {\n promise = promise || _createPromise_1();\n doAwait(cbResult, function (res) {\n try {\n doAwait(_doneChk(isDone, state, res, thisArg), _handleAsyncDone_1, reject);\n }\n catch (e) {\n reject(e);\n }\n }, reject);\n return promise;\n }\n else {\n var dnRes = _doneChk(isDone, state, cbResult, thisArg);\n if (isPromiseLike(dnRes)) {\n promise = promise || _createPromise_1();\n doAwait(dnRes, _handleAsyncDone_1, reject);\n return promise;\n }\n else {\n isDone = !!dnRes;\n }\n }\n }\n catch (e) {\n reject(e);\n return promise;\n }\n }\n if (isDone && resolve) {\n resolve(state.res);\n }\n return promise || state.res;\n };\n return _processNext_1();\n }\n}\n\nfunction arrForEachAsync(theArray, callbackFn, thisArg) {\n if (theArray) {\n var len_1 = getLength(theArray);\n if (len_1) {\n var isDone = function (state) {\n if (state.iter >= len_1 || state.res === -1) {\n return true;\n }\n };\n return doWhileAsync(function (state) {\n var idx = state.iter;\n if (idx in theArray) {\n return callbackFn.call(thisArg || theArray, theArray[idx], idx, theArray);\n }\n }, isDone);\n }\n }\n}\n\nvar _iterSymbol;\nvar _iterAsyncSymbol;\nfunction iterForOfAsync(iter, callbackFn, thisArg) {\n var err;\n var iterResult;\n var theIter = iter;\n function onFailed(failed) {\n err = { e: failed };\n if (theIter.throw) {\n iterResult = null;\n theIter.throw(err);\n }\n throw failed;\n }\n function onFinally() {\n try {\n if (iterResult && !iterResult[DONE]) {\n theIter[RETURN] && theIter[RETURN](iterResult);\n }\n }\n finally {\n if (err) {\n throw err.e;\n }\n }\n }\n if (iter) {\n if (!isIterator(iter)) {\n !_iterAsyncSymbol && (_iterAsyncSymbol = createCachedValue(getKnownSymbol(0 )));\n theIter = iter[_iterAsyncSymbol.v] ? iter[_iterAsyncSymbol.v]() : null;\n if (!theIter) {\n !_iterSymbol && (_iterSymbol = createCachedValue(getKnownSymbol(3 )));\n theIter = iter[_iterSymbol.v] ? iter[_iterSymbol.v]() : null;\n }\n }\n if (theIter && isIterator(theIter)) {\n var result = void 0;\n try {\n result = doWhileAsync(function (state) {\n return doAwait(theIter.next(), function (res) {\n iterResult = res;\n if (!res[DONE]) {\n return fnCall(callbackFn, thisArg || theIter, iterResult[VALUE], state.iter, theIter);\n }\n }, function (reason) {\n state.isDone = true;\n onFailed(reason);\n });\n }, function (state) {\n if (!iterResult || iterResult[DONE] || state.res === -1) {\n onFinally();\n return true;\n }\n }, thisArg || theIter);\n if (isPromiseLike(result)) {\n result = doFinally(result.catch(onFailed), onFinally);\n }\n return result;\n }\n catch (failed) {\n onFailed(failed);\n }\n finally {\n if (result && !isPromiseLike(result)) {\n onFinally();\n }\n }\n }\n }\n}\n\nvar REJECT = \"reject\";\nvar REJECTED_ERROR = \"Rejected\";\nvar _schedulerId = 0;\nvar _debugName;\nvar _debugIntState;\nvar _customErrors = {};\nfunction _rejectDone() {\n}\nfunction _createError(type, evt, message) {\n !_customErrors[type] && (_customErrors[type] = createCustomError(type));\n var now = utcNow();\n return new (_customErrors[type])(\"Task [\".concat(evt.id, \"] \").concat(message || \"\", \"- \").concat((evt.st ? \"Running\" : \"Waiting\"), \": \").concat(_calcTime(now, evt.st || evt.cr)));\n}\nfunction _calcTime(now, start) {\n return ((now - start) || \"0\") + \" ms\";\n}\nfunction _abortStaleTasks(taskQueue, staleTimeoutPeriod) {\n var now = utcNow();\n var expired = now - staleTimeoutPeriod;\n arrForEach(taskQueue, function (evt) {\n if (evt && !evt.rj && (evt.st && evt.st < expired) || (!evt.st && evt.cr && evt.cr < expired)) {\n evt && evt[REJECT](evt.rj || _createError(\"Aborted\", evt, \"Stale \"));\n }\n });\n}\nfunction _removeTask(queue, taskDetail) {\n var idx = arrIndexOf(queue, taskDetail);\n if (idx !== -1) {\n queue.splice(idx, 1);\n }\n}\nfunction _addDebugState(theScheduler, nameFn, stateFn) {\n _debugName = _debugName || { toString: function () { return \"[[SchedulerName]]\"; } };\n _debugIntState = _debugIntState || { toString: function () { return \"[[SchedulerState]]\"; } };\n objDefineProp(theScheduler, _debugName, { get: nameFn });\n objDefineProp(theScheduler, _debugIntState, { get: stateFn });\n}\nfunction createTaskScheduler(newPromise, name) {\n var _theTask;\n var _running = [];\n var _waiting = [];\n var _staleTimeoutPeriod = 600000;\n var _staleTimeoutCheckPeriod = _staleTimeoutPeriod / 10;\n var _taskCount = 0;\n var _schedulerName = (name ? (name + \".\") : \"\") + _schedulerId++;\n var _blockedTimer;\n newPromise = newPromise || createPromise;\n var _startBlockedTimer = function () {\n var hasTasks = (getLength(_running) + getLength(_waiting)) > 0;\n if (_staleTimeoutPeriod > 0) {\n if (!_blockedTimer) {\n _blockedTimer = scheduleTimeout(function () {\n _abortStaleTasks(_running, _staleTimeoutPeriod);\n _abortStaleTasks(_waiting, _staleTimeoutPeriod);\n _blockedTimer && (_blockedTimer.enabled = ((getLength(_running) + getLength(_waiting)) > 0));\n }, _staleTimeoutCheckPeriod);\n _blockedTimer.unref();\n }\n _blockedTimer && (_blockedTimer.enabled = hasTasks);\n }\n };\n var _queueTask = function (startAction, taskName, timeout) {\n var _a;\n var taskId = _schedulerName + \".\" + _taskCount++;\n if (taskName) {\n taskId += \"-(\" + taskName + \")\";\n }\n var newTask = (_a = {\n id: taskId,\n cr: utcNow(),\n to: timeout\n },\n _a[REJECT] = function (reason) {\n newTask.rj = reason || _createError(REJECTED_ERROR, newTask);\n newTask[REJECT] = _rejectDone;\n },\n _a);\n if (!_theTask) {\n newTask.p = newPromise(_runTask(newTask, startAction));\n }\n else {\n newTask.p = _waitForPreviousTask(newTask, _theTask, startAction);\n }\n _theTask = newTask;\n return newTask.p;\n };\n var _runTask = function (taskDetail, startAction) {\n taskDetail.st = utcNow();\n _running.push(taskDetail);\n _startBlockedTimer();\n return function (onTaskResolve, onTaskReject) {\n var _promiseReject = function (reason) {\n taskDetail.rj = taskDetail.rj || reason || _createError(REJECTED_ERROR, taskDetail);\n taskDetail[REJECT] = _rejectDone;\n _doCleanup(taskDetail);\n onTaskResolve = null;\n onTaskReject && onTaskReject(reason);\n onTaskReject = null;\n };\n var taskId = taskDetail.id;\n if (taskDetail.rj) {\n _promiseReject(taskDetail.rj);\n }\n else {\n taskDetail[REJECT] = _promiseReject;\n try {\n var startResult = startAction(taskId);\n if (taskDetail.to && isPromiseLike(startResult)) {\n taskDetail.t = scheduleTimeout(function () {\n _promiseReject(_createError(\"Timeout\", taskDetail));\n }, taskDetail.to);\n }\n doAwait(startResult, function (theResult) {\n _doCleanup(taskDetail);\n try {\n onTaskResolve && onTaskResolve(theResult);\n }\n catch (e) {\n onTaskReject && onTaskReject(e);\n }\n onTaskReject = null;\n onTaskResolve = null;\n }, _promiseReject);\n }\n catch (e) {\n _promiseReject(e);\n }\n }\n };\n };\n var _waitForPreviousTask = function (taskDetail, prevTask, startAction) {\n _waiting.push(taskDetail);\n _startBlockedTimer();\n return newPromise(function (onWaitResolve, onWaitReject) {\n doAwaitResponse(prevTask.p, function () {\n _removeTask(_waiting, taskDetail);\n _runTask(taskDetail, startAction)(onWaitResolve, onWaitReject);\n });\n });\n };\n var _doCleanup = function (taskDetail) {\n _removeTask(_running, taskDetail);\n taskDetail.t && taskDetail.t.cancel();\n taskDetail.t = null;\n if (_theTask && _theTask === taskDetail) {\n _theTask = null;\n if (getLength(_running) + getLength(_waiting) === 0) {\n _blockedTimer && _blockedTimer.cancel();\n _blockedTimer = null;\n }\n }\n };\n var theScheduler = {\n idle: true,\n queue: _queueTask,\n setStaleTimeout: function (staleTimeout, staleCheckPeriod) {\n _blockedTimer && _blockedTimer.cancel();\n _blockedTimer = null;\n _staleTimeoutPeriod = staleTimeout;\n _staleTimeoutCheckPeriod = staleCheckPeriod || staleTimeout / 10;\n _startBlockedTimer();\n }\n };\n objDefine(theScheduler, \"idle\", {\n g: function () {\n return getLength(_running) + getLength(_waiting) === 0;\n }\n });\n _addDebugState(theScheduler, function () { return _schedulerName; }, function () {\n return {\n l: _theTask,\n r: _running,\n w: _waiting\n };\n });\n return theScheduler;\n}\n\nvar toStringTagSymbol = getKnownSymbol(11 );\nvar PolyPromise = /*#__PURE__*/ (function () {\n function PolyPromiseImpl(executor) {\n this._$ = createAsyncPromise(executor);\n if (toStringTagSymbol) {\n this[toStringTagSymbol] = \"Promise\";\n }\n objDefineProp(this, \"state\", {\n get: function () {\n return this._$.state;\n }\n });\n }\n PolyPromiseImpl.all = createAsyncAllPromise;\n PolyPromiseImpl.race = createAsyncRacePromise;\n PolyPromiseImpl.any = createAsyncAnyPromise;\n PolyPromiseImpl.reject = createAsyncRejectedPromise;\n PolyPromiseImpl.resolve = createAsyncResolvedPromise;\n PolyPromiseImpl.allSettled = createAsyncAllSettledPromise;\n var theProto = PolyPromiseImpl.prototype;\n theProto.then = function (onResolved, onRejected) {\n return this._$.then(onResolved, onRejected);\n };\n theProto.catch = function (onRejected) {\n return this._$.catch(onRejected);\n };\n theProto.finally = function (onfinally) {\n return this._$.finally(onfinally);\n };\n return PolyPromiseImpl;\n}());\n\nexport { PolyPromise, arrForEachAsync, createAllPromise, createAllSettledPromise, createAnyPromise, createAsyncAllPromise, createAsyncAllSettledPromise, createAsyncAnyPromise, createAsyncPromise, createAsyncRacePromise, createAsyncRejectedPromise, createAsyncResolvedPromise, createIdleAllPromise, createIdleAllSettledPromise, createIdleAnyPromise, createIdlePromise, createIdleRacePromise, createIdleRejectedPromise, createIdleResolvedPromise, createNativeAllPromise, createNativeAllSettledPromise, createNativeAnyPromise, createNativePromise, createNativeRacePromise, createNativeRejectedPromise, createNativeResolvedPromise, createPromise, createRacePromise, createRejectedPromise, createResolvedPromise, createSyncAllPromise, createSyncAllSettledPromise, createSyncAnyPromise, createSyncPromise, createSyncRacePromise, createSyncRejectedPromise, createSyncResolvedPromise, createTaskScheduler, createTimeoutPromise, doAwait, doAwaitResponse, doFinally, doWhileAsync, iterForOfAsync, setCreatePromiseImpl, setDefaultIdlePromiseTimeout, setDefaultIdleTimeout, setPromiseDebugState };\n//# sourceMappingURL=ts-async.js.map\n","/*\n * Application Insights JavaScript SDK - Core, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n// ###################################################################################################################################################\r\n// Note: DON'T Export these const from the package as we are still targeting IE/ES5 this will export a mutable variables that someone could change ###\r\n// ###################################################################################################################################################\r\nexport var UNDEFINED_VALUE = undefined;\r\nexport var STR_EMPTY = \"\";\r\nexport var STR_CHANNELS = \"channels\";\r\nexport var STR_CORE = \"core\";\r\nexport var STR_CREATE_PERF_MGR = \"createPerfMgr\";\r\nexport var STR_DISABLED = \"disabled\";\r\nexport var STR_EXTENSION_CONFIG = \"extensionConfig\";\r\nexport var STR_EXTENSIONS = \"extensions\";\r\nexport var STR_PROCESS_TELEMETRY = \"processTelemetry\";\r\nexport var STR_PRIORITY = \"priority\";\r\nexport var STR_EVENTS_SENT = \"eventsSent\";\r\nexport var STR_EVENTS_DISCARDED = \"eventsDiscarded\";\r\nexport var STR_EVENTS_SEND_REQUEST = \"eventsSendRequest\";\r\nexport var STR_PERF_EVENT = \"perfEvent\";\r\nexport var STR_OFFLINE_STORE = \"offlineEventsStored\";\r\nexport var STR_OFFLINE_SENT = \"offlineBatchSent\";\r\nexport var STR_OFFLINE_DROP = \"offlineBatchDrop\";\r\nexport var STR_GET_PERF_MGR = \"getPerfMgr\";\r\nexport var STR_DOMAIN = \"domain\";\r\nexport var STR_PATH = \"path\";\r\nexport var STR_NOT_DYNAMIC_ERROR = \"Not dynamic - \";\r\n//# sourceMappingURL=InternalConstants.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { ObjAssign, ObjClass } from \"@microsoft/applicationinsights-shims\";\r\nimport { arrForEach, asString as asString21, isArray, isBoolean, isError, isFunction, isNullOrUndefined, isNumber, isObject, isPlainObject, isString, isUndefined, objDeepFreeze, objDefine, objForEachKey, objHasOwn, strIndexOf, strTrim } from \"@nevware21/ts-utils\";\r\nimport { _DYN_APPLY, _DYN_GET_ALL_RESPONSE_HEA5, _DYN_GET_RESPONSE_HEADER, _DYN_LENGTH, _DYN_NAME, _DYN_REPLACE, _DYN_SPLIT, _DYN_STATUS, _DYN_TO_LOWER_CASE } from \"../__DynamicConstants\";\r\nimport { STR_EMPTY } from \"./InternalConstants\";\r\n// RESTRICT and AVOID circular dependencies you should not import other contained modules or export the contents of this file directly\r\n// Added to help with minification\r\nvar strGetPrototypeOf = \"getPrototypeOf\";\r\nvar rCamelCase = /-([a-z])/g;\r\nvar rNormalizeInvalid = /([^\\w\\d_$])/g;\r\nvar rLeadingNumeric = /^(\\d+[\\w\\d_$])/;\r\nexport var _getObjProto = Object[strGetPrototypeOf];\r\nexport function isNotUndefined(value) {\r\n return !isUndefined(value);\r\n}\r\nexport function isNotNullOrUndefined(value) {\r\n return !isNullOrUndefined(value);\r\n}\r\n/**\r\n * Validates that the string name conforms to the JS IdentifierName specification and if not\r\n * normalizes the name so that it would. This method does not identify or change any keywords\r\n * meaning that if you pass in a known keyword the same value will be returned.\r\n * This is a simplified version\r\n * @param name - The name to validate\r\n */\r\nexport function normalizeJsName(name) {\r\n var value = name;\r\n if (value && isString(value)) {\r\n // CamelCase everything after the \"-\" and remove the dash\r\n value = value[_DYN_REPLACE /* @min:%2ereplace */](rCamelCase, function (_all, letter) {\r\n return letter.toUpperCase();\r\n });\r\n value = value[_DYN_REPLACE /* @min:%2ereplace */](rNormalizeInvalid, \"_\");\r\n value = value[_DYN_REPLACE /* @min:%2ereplace */](rLeadingNumeric, function (_all, match) {\r\n return \"_\" + match;\r\n });\r\n }\r\n return value;\r\n}\r\n/**\r\n * A simple wrapper (for minification support) to check if the value contains the search string.\r\n * @param value - The string value to check for the existence of the search value\r\n * @param search - The value search within the value\r\n */\r\nexport function strContains(value, search) {\r\n if (value && search) {\r\n return strIndexOf(value, search) !== -1;\r\n }\r\n return false;\r\n}\r\n/**\r\n * Convert a date to I.S.O. format in IE8\r\n */\r\nexport function toISOString(date) {\r\n return date && date.toISOString() || \"\";\r\n}\r\nexport var deepFreeze = objDeepFreeze;\r\n/**\r\n * Returns the name of object if it's an Error. Otherwise, returns empty string.\r\n */\r\nexport function getExceptionName(object) {\r\n if (isError(object)) {\r\n return object[_DYN_NAME /* @min:%2ename */];\r\n }\r\n return STR_EMPTY;\r\n}\r\n/**\r\n * Sets the provided value on the target instance using the field name when the provided chk function returns true, the chk\r\n * function will only be called if the new value is no equal to the original value.\r\n * @param target - The target object\r\n * @param field - The key of the target\r\n * @param value - The value to set\r\n * @param valChk - [Optional] Callback to check the value that if supplied will be called check if the new value can be set\r\n * @param srcChk - [Optional] Callback to check to original value that if supplied will be called if the new value should be set (if allowed)\r\n * @returns The existing or new value, depending what was set\r\n */\r\nexport function setValue(target, field, value, valChk, srcChk) {\r\n var theValue = value;\r\n if (target) {\r\n theValue = target[field];\r\n if (theValue !== value && (!srcChk || srcChk(theValue)) && (!valChk || valChk(value))) {\r\n theValue = value;\r\n target[field] = theValue;\r\n }\r\n }\r\n return theValue;\r\n}\r\n/**\r\n * Returns the current value from the target object if not null or undefined otherwise sets the new value and returns it\r\n * @param target - The target object to return or set the default value\r\n * @param field - The key for the field to set on the target\r\n * @param defValue - [Optional] The value to set if not already present, when not provided a empty object will be added\r\n */\r\nexport function getSetValue(target, field, defValue) {\r\n var theValue;\r\n if (target) {\r\n theValue = target[field];\r\n if (!theValue && isNullOrUndefined(theValue)) {\r\n // Supports having the default as null\r\n theValue = !isUndefined(defValue) ? defValue : {};\r\n target[field] = theValue;\r\n }\r\n }\r\n else {\r\n // Expanded for performance so we only check defValue if required\r\n theValue = !isUndefined(defValue) ? defValue : {};\r\n }\r\n return theValue;\r\n}\r\nfunction _createProxyFunction(source, funcName) {\r\n var srcFunc = null;\r\n var src = null;\r\n if (isFunction(source)) {\r\n srcFunc = source;\r\n }\r\n else {\r\n src = source;\r\n }\r\n return function () {\r\n // Capture the original arguments passed to the method\r\n var originalArguments = arguments;\r\n if (srcFunc) {\r\n src = srcFunc();\r\n }\r\n if (src) {\r\n return src[funcName][_DYN_APPLY /* @min:%2eapply */](src, originalArguments);\r\n }\r\n };\r\n}\r\n/**\r\n * Effectively assigns all enumerable properties (not just own properties) and functions (including inherited prototype) from\r\n * the source object to the target, it attempts to use proxy getters / setters (if possible) and proxy functions to avoid potential\r\n * implementation issues by assigning prototype functions as instance ones\r\n *\r\n * This method is the primary method used to \"update\" the snippet proxy with the ultimate implementations.\r\n *\r\n * Special ES3 Notes:\r\n * Updates (setting) of direct property values on the target or indirectly on the source object WILL NOT WORK PROPERLY, updates to the\r\n * properties of \"referenced\" object will work (target.context.newValue = 10 => will be reflected in the source.context as it's the\r\n * same object). ES3 Failures: assigning target.myProp = 3 -> Won't change source.myProp = 3, likewise the reverse would also fail.\r\n * @param target - The target object to be assigned with the source properties and functions\r\n * @param source - The source object which will be assigned / called by setting / calling the targets proxies\r\n * @param chkSet - An optional callback to determine whether a specific property/function should be proxied\r\n */\r\nexport function proxyAssign(target, source, chkSet) {\r\n if (target && source && isObject(target) && isObject(source)) {\r\n var _loop_1 = function (field) {\r\n if (isString(field)) {\r\n var value = source[field];\r\n if (isFunction(value)) {\r\n if (!chkSet || chkSet(field, true, source, target)) {\r\n // Create a proxy function rather than just copying the (possible) prototype to the new object as an instance function\r\n target[field] = _createProxyFunction(source, field);\r\n }\r\n }\r\n else if (!chkSet || chkSet(field, false, source, target)) {\r\n if (objHasOwn(target, field)) {\r\n // Remove any previous instance property\r\n delete target[field];\r\n }\r\n objDefine(target, field, {\r\n g: function () {\r\n return source[field];\r\n },\r\n s: function (theValue) {\r\n source[field] = theValue;\r\n }\r\n });\r\n }\r\n }\r\n };\r\n // effectively apply/proxy full source to the target instance\r\n for (var field in source) {\r\n _loop_1(field);\r\n }\r\n }\r\n return target;\r\n}\r\n/**\r\n * Creates a proxy function on the target which internally will call the source version with all arguments passed to the target method.\r\n *\r\n * @param target - The target object to be assigned with the source properties and functions\r\n * @param name - The function name that will be added on the target\r\n * @param source - The source object which will be assigned / called by setting / calling the targets proxies\r\n * @param theFunc - The function name on the source that will be proxied on the target\r\n * @param overwriteTarget - If `false` this will not replace any pre-existing name otherwise (the default) it will overwrite any existing name\r\n */\r\nexport function proxyFunctionAs(target, name, source, theFunc, overwriteTarget) {\r\n if (target && name && source) {\r\n if (overwriteTarget !== false || isUndefined(target[name])) {\r\n target[name] = _createProxyFunction(source, theFunc);\r\n }\r\n }\r\n}\r\n/**\r\n * Creates proxy functions on the target which internally will call the source version with all arguments passed to the target method.\r\n *\r\n * @param target - The target object to be assigned with the source properties and functions\r\n * @param source - The source object which will be assigned / called by setting / calling the targets proxies\r\n * @param functionsToProxy - An array of function names that will be proxied on the target\r\n * @param overwriteTarget - If false this will not replace any pre-existing name otherwise (the default) it will overwrite any existing name\r\n */\r\nexport function proxyFunctions(target, source, functionsToProxy, overwriteTarget) {\r\n if (target && source && isObject(target) && isArray(functionsToProxy)) {\r\n arrForEach(functionsToProxy, function (theFuncName) {\r\n if (isString(theFuncName)) {\r\n proxyFunctionAs(target, theFuncName, source, theFuncName, overwriteTarget);\r\n }\r\n });\r\n }\r\n return target;\r\n}\r\n/**\r\n * Simpler helper to create a dynamic class that implements the interface and populates the values with the defaults.\r\n * Only instance properties (hasOwnProperty) values are copied from the defaults to the new instance\r\n * @param defaults - Simple helper\r\n */\r\nexport function createClassFromInterface(defaults) {\r\n return /** @class */ (function () {\r\n function class_1() {\r\n var _this = this;\r\n if (defaults) {\r\n objForEachKey(defaults, function (field, value) {\r\n _this[field] = value;\r\n });\r\n }\r\n }\r\n return class_1;\r\n }());\r\n}\r\n/**\r\n * A helper function to assist with JIT performance for objects that have properties added / removed dynamically\r\n * this is primarily for chromium based browsers and has limited effects on Firefox and none of IE. Only call this\r\n * function after you have finished \"updating\" the object, calling this within loops reduces or defeats the benefits.\r\n * This helps when iterating using for..in, objKeys() and objForEach()\r\n * @param theObject - The object to be optimized if possible\r\n */\r\nexport function optimizeObject(theObject) {\r\n // V8 Optimization to cause the JIT compiler to create a new optimized object for looking up the own properties\r\n // primarily for object with <= 19 properties for >= 20 the effect is reduced or non-existent\r\n if (theObject && ObjAssign) {\r\n theObject = ObjClass(ObjAssign({}, theObject));\r\n }\r\n return theObject;\r\n}\r\nexport function objExtend(obj1, obj2, obj3, obj4, obj5, obj6) {\r\n // Variables\r\n var theArgs = arguments;\r\n var extended = theArgs[0] || {};\r\n var argLen = theArgs[_DYN_LENGTH /* @min:%2elength */];\r\n var deep = false;\r\n var idx = 1;\r\n // Check for \"Deep\" flag\r\n if (argLen > 0 && isBoolean(extended)) {\r\n deep = extended;\r\n extended = theArgs[idx] || {};\r\n idx++;\r\n }\r\n // Handle case when target is a string or something (possible in deep copy)\r\n if (!isObject(extended)) {\r\n extended = {};\r\n }\r\n // Loop through each remaining object and conduct a merge\r\n for (; idx < argLen; idx++) {\r\n var arg = theArgs[idx];\r\n var isArgArray = isArray(arg);\r\n var isArgObj = isObject(arg);\r\n for (var prop in arg) {\r\n var propOk = (isArgArray && (prop in arg)) || (isArgObj && objHasOwn(arg, prop));\r\n if (!propOk) {\r\n continue;\r\n }\r\n var newValue = arg[prop];\r\n var isNewArray = void 0;\r\n // If deep merge and property is an object, merge properties\r\n if (deep && newValue && ((isNewArray = isArray(newValue)) || isPlainObject(newValue))) {\r\n // Grab the current value of the extended object\r\n var clone = extended[prop];\r\n if (isNewArray) {\r\n if (!isArray(clone)) {\r\n // We can't \"merge\" an array with a non-array so overwrite the original\r\n clone = [];\r\n }\r\n }\r\n else if (!isPlainObject(clone)) {\r\n // We can't \"merge\" an object with a non-object\r\n clone = {};\r\n }\r\n // Never move the original objects always clone them\r\n newValue = objExtend(deep, clone, newValue);\r\n }\r\n // Assign the new (or previous) value (unless undefined)\r\n if (newValue !== undefined) {\r\n extended[prop] = newValue;\r\n }\r\n }\r\n }\r\n return extended;\r\n}\r\nexport var asString = asString21;\r\nexport function isFeatureEnabled(feature, cfg) {\r\n var rlt = false;\r\n var ft = cfg && cfg.featureOptIn && cfg.featureOptIn[feature];\r\n if (feature && ft) {\r\n var mode = ft.mode;\r\n // NOTE: None will be considered as true\r\n rlt = (mode == 3 /* FeatureOptInMode.enable */) || (mode == 1 /* FeatureOptInMode.none */);\r\n }\r\n return rlt;\r\n}\r\nexport function getResponseText(xhr) {\r\n try {\r\n return xhr.responseText;\r\n }\r\n catch (e) {\r\n // Best effort, as XHR may throw while XDR wont so just ignore\r\n }\r\n return null;\r\n}\r\nexport function formatErrorMessageXdr(xdr, message) {\r\n if (xdr) {\r\n return \"XDomainRequest,Response:\" + getResponseText(xdr) || \"\";\r\n }\r\n return message;\r\n}\r\nexport function formatErrorMessageXhr(xhr, message) {\r\n if (xhr) {\r\n return \"XMLHttpRequest,Status:\" + xhr[_DYN_STATUS /* @min:%2estatus */] + \",Response:\" + getResponseText(xhr) || xhr.response || \"\";\r\n }\r\n return message;\r\n}\r\nexport function prependTransports(theTransports, newTransports) {\r\n if (newTransports) {\r\n if (isNumber(newTransports)) {\r\n theTransports = [newTransports].concat(theTransports);\r\n }\r\n else if (isArray(newTransports)) {\r\n theTransports = newTransports.concat(theTransports);\r\n }\r\n }\r\n return theTransports;\r\n}\r\nvar strDisabledPropertyName = \"Microsoft_ApplicationInsights_BypassAjaxInstrumentation\";\r\nvar strWithCredentials = \"withCredentials\";\r\nvar strTimeout = \"timeout\";\r\n/**\r\n * Create and open an XMLHttpRequest object\r\n * @param method - The request method\r\n * @param urlString - The url\r\n * @param withCredentials - Option flag indicating that credentials should be sent\r\n * @param disabled - Optional flag indicating that the XHR object should be marked as disabled and not tracked (default is false)\r\n * @param isSync - Optional flag indicating if the instance should be a synchronous request (defaults to false)\r\n * @param timeout - Optional value identifying the timeout value that should be assigned to the XHR request\r\n * @returns A new opened XHR request\r\n */\r\nexport function openXhr(method, urlString, withCredentials, disabled, isSync, timeout) {\r\n if (disabled === void 0) { disabled = false; }\r\n if (isSync === void 0) { isSync = false; }\r\n function _wrapSetXhrProp(xhr, prop, value) {\r\n try {\r\n xhr[prop] = value;\r\n }\r\n catch (e) {\r\n // - Wrapping as depending on the environment setting the property may fail (non-terminally)\r\n }\r\n }\r\n var xhr = new XMLHttpRequest();\r\n if (disabled) {\r\n // Tag the instance so it's not tracked (trackDependency)\r\n // If the environment has locked down the XMLHttpRequest (preventExtensions and/or freeze), this would\r\n // cause the request to fail and we no telemetry would be sent\r\n _wrapSetXhrProp(xhr, strDisabledPropertyName, disabled);\r\n }\r\n if (withCredentials) {\r\n // Some libraries require that the withCredentials flag is set \"before\" open and\r\n // - Wrapping as IE 10 has started throwing when setting before open\r\n _wrapSetXhrProp(xhr, strWithCredentials, withCredentials);\r\n }\r\n xhr.open(method, urlString, !isSync);\r\n if (withCredentials) {\r\n // withCredentials should be set AFTER open (https://xhr.spec.whatwg.org/#the-withcredentials-attribute)\r\n // And older firefox instances from 11+ will throw for sync events (current versions don't) which happens during unload processing\r\n _wrapSetXhrProp(xhr, strWithCredentials, withCredentials);\r\n }\r\n // Only set the timeout for asynchronous requests as\r\n // \"Timeout shouldn't be used for synchronous XMLHttpRequests requests used in a document environment or it will throw an InvalidAccessError exception.\"\"\r\n // https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/timeout\r\n if (!isSync && timeout) {\r\n _wrapSetXhrProp(xhr, strTimeout, timeout);\r\n }\r\n return xhr;\r\n}\r\n/**\r\n* Converts the XHR getAllResponseHeaders to a map containing the header key and value.\r\n* @internal\r\n*/\r\n// tslint:disable-next-line: align\r\nexport function convertAllHeadersToMap(headersString) {\r\n var headers = {};\r\n if (isString(headersString)) {\r\n var headersArray = strTrim(headersString)[_DYN_SPLIT /* @min:%2esplit */](/[\\r\\n]+/);\r\n arrForEach(headersArray, function (headerEntry) {\r\n if (headerEntry) {\r\n var idx = headerEntry.indexOf(\": \");\r\n if (idx !== -1) {\r\n // The new spec has the headers returning all as lowercase -- but not all browsers do this yet\r\n var header = strTrim(headerEntry.substring(0, idx))[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]();\r\n var value = strTrim(headerEntry.substring(idx + 1));\r\n headers[header] = value;\r\n }\r\n else {\r\n headers[strTrim(headerEntry)] = 1;\r\n }\r\n }\r\n });\r\n }\r\n return headers;\r\n}\r\n/**\r\n* append the XHR headers.\r\n* @internal\r\n*/\r\nexport function _appendHeader(theHeaders, xhr, name) {\r\n if (!theHeaders[name] && xhr && xhr[_DYN_GET_RESPONSE_HEADER /* @min:%2egetResponseHeader */]) {\r\n var value = xhr[_DYN_GET_RESPONSE_HEADER /* @min:%2egetResponseHeader */](name);\r\n if (value) {\r\n theHeaders[name] = strTrim(value);\r\n }\r\n }\r\n return theHeaders;\r\n}\r\nvar STR_KILL_DURATION_HEADER = \"kill-duration\";\r\nvar STR_KILL_DURATION_SECONDS_HEADER = \"kill-duration-seconds\";\r\nvar STR_TIME_DELTA_HEADER = \"time-delta-millis\";\r\n/**\r\n* get the XHR getAllResponseHeaders.\r\n* @internal\r\n*/\r\nexport function _getAllResponseHeaders(xhr, isOneDs) {\r\n var theHeaders = {};\r\n if (!xhr[_DYN_GET_ALL_RESPONSE_HEA5 /* @min:%2egetAllResponseHeaders */]) {\r\n // Firefox 2-63 doesn't have getAllResponseHeaders function but it does have getResponseHeader\r\n // Only call these if getAllResponseHeaders doesn't exist, otherwise we can get invalid response errors\r\n // as collector is not currently returning the correct header to allow JS to access these headers\r\n if (!!isOneDs) {\r\n theHeaders = _appendHeader(theHeaders, xhr, STR_TIME_DELTA_HEADER);\r\n theHeaders = _appendHeader(theHeaders, xhr, STR_KILL_DURATION_HEADER);\r\n theHeaders = _appendHeader(theHeaders, xhr, STR_KILL_DURATION_SECONDS_HEADER);\r\n }\r\n }\r\n else {\r\n theHeaders = convertAllHeadersToMap(xhr[_DYN_GET_ALL_RESPONSE_HEA5 /* @min:%2egetAllResponseHeaders */]());\r\n }\r\n return theHeaders;\r\n}\r\n//# sourceMappingURL=HelperFuncs.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n\"use strict\";\r\nimport { getGlobal, strShimObject, strShimPrototype, strShimUndefined } from \"@microsoft/applicationinsights-shims\";\r\nimport { getDocument, getInst, getNavigator, getPerformance, hasNavigator, isFunction, isString, isUndefined, strIndexOf } from \"@nevware21/ts-utils\";\r\nimport { _DYN_LENGTH, _DYN_NAME, _DYN_SPLIT, _DYN_TO_LOWER_CASE, _DYN_USER_AGENT } from \"../__DynamicConstants\";\r\nimport { strContains } from \"./HelperFuncs\";\r\nimport { STR_EMPTY } from \"./InternalConstants\";\r\n/**\r\n * This file exists to hold environment utilities that are required to check and\r\n * validate the current operating environment. Unless otherwise required, please\r\n * only use defined methods (functions) in this class so that users of these\r\n * functions/properties only need to include those that are used within their own modules.\r\n */\r\nvar strDocumentMode = \"documentMode\";\r\nvar strLocation = \"location\";\r\nvar strConsole = \"console\";\r\nvar strJSON = \"JSON\";\r\nvar strCrypto = \"crypto\";\r\nvar strMsCrypto = \"msCrypto\";\r\nvar strReactNative = \"ReactNative\";\r\nvar strMsie = \"msie\";\r\nvar strTrident = \"trident/\";\r\nvar strXMLHttpRequest = \"XMLHttpRequest\";\r\nvar _isTrident = null;\r\nvar _navUserAgentCheck = null;\r\nvar _enableMocks = false;\r\nvar _useXDomainRequest = null;\r\nvar _beaconsSupported = null;\r\nfunction _hasProperty(theClass, property) {\r\n var supported = false;\r\n if (theClass) {\r\n try {\r\n supported = property in theClass;\r\n if (!supported) {\r\n var proto = theClass[strShimPrototype];\r\n if (proto) {\r\n supported = property in proto;\r\n }\r\n }\r\n }\r\n catch (e) {\r\n // Do Nothing\r\n }\r\n if (!supported) {\r\n try {\r\n var tmp = new theClass();\r\n supported = !isUndefined(tmp[property]);\r\n }\r\n catch (e) {\r\n // Do Nothing\r\n }\r\n }\r\n }\r\n return supported;\r\n}\r\n/**\r\n * Enable the lookup of test mock objects if requested\r\n * @param enabled\r\n */\r\nexport function setEnableEnvMocks(enabled) {\r\n _enableMocks = enabled;\r\n}\r\n/**\r\n * Returns the global location object if it is present otherwise null.\r\n * This helper is used to access the location object without causing an exception\r\n * \"Uncaught ReferenceError: location is not defined\"\r\n */\r\nexport function getLocation(checkForMock) {\r\n if (checkForMock && _enableMocks) {\r\n var mockLocation = getInst(\"__mockLocation\");\r\n if (mockLocation) {\r\n return mockLocation;\r\n }\r\n }\r\n if (typeof location === strShimObject && location) {\r\n return location;\r\n }\r\n return getInst(strLocation);\r\n}\r\n/**\r\n * Returns the global console object\r\n */\r\nexport function getConsole() {\r\n if (typeof console !== strShimUndefined) {\r\n return console;\r\n }\r\n return getInst(strConsole);\r\n}\r\n/**\r\n * Checks if JSON object is available, this is required as we support the API running without a\r\n * window /document (eg. Node server, electron webworkers) and if we attempt to assign a history\r\n * object to a local variable or pass as an argument an \"Uncaught ReferenceError: JSON is not defined\"\r\n * exception will be thrown.\r\n * Defined as a function to support lazy / late binding environments.\r\n */\r\nexport function hasJSON() {\r\n return Boolean((typeof JSON === strShimObject && JSON) || getInst(strJSON) !== null);\r\n}\r\n/**\r\n * Returns the global JSON object if it is present otherwise null.\r\n * This helper is used to access the JSON object without causing an exception\r\n * \"Uncaught ReferenceError: JSON is not defined\"\r\n */\r\nexport function getJSON() {\r\n if (hasJSON()) {\r\n return JSON || getInst(strJSON);\r\n }\r\n return null;\r\n}\r\n/**\r\n * Returns the crypto object if it is present otherwise null.\r\n * This helper is used to access the crypto object from the current\r\n * global instance which could be window or globalThis for a web worker\r\n */\r\nexport function getCrypto() {\r\n return getInst(strCrypto);\r\n}\r\n/**\r\n * Returns the crypto object if it is present otherwise null.\r\n * This helper is used to access the crypto object from the current\r\n * global instance which could be window or globalThis for a web worker\r\n */\r\nexport function getMsCrypto() {\r\n return getInst(strMsCrypto);\r\n}\r\n/**\r\n * Returns whether the environment is reporting that we are running in a React Native Environment\r\n */\r\nexport function isReactNative() {\r\n // If running in React Native, navigator.product will be populated\r\n var nav = getNavigator();\r\n if (nav && nav.product) {\r\n return nav.product === strReactNative;\r\n }\r\n return false;\r\n}\r\n/**\r\n * Identifies whether the current environment appears to be IE\r\n */\r\nexport function isIE() {\r\n var nav = getNavigator();\r\n if (nav && (nav[_DYN_USER_AGENT /* @min:%2euserAgent */] !== _navUserAgentCheck || _isTrident === null)) {\r\n // Added to support test mocking of the user agent\r\n _navUserAgentCheck = nav[_DYN_USER_AGENT /* @min:%2euserAgent */];\r\n var userAgent = (_navUserAgentCheck || STR_EMPTY)[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]();\r\n _isTrident = (strContains(userAgent, strMsie) || strContains(userAgent, strTrident));\r\n }\r\n return _isTrident;\r\n}\r\n/**\r\n * Gets IE version returning the document emulation mode if we are running on IE, or null otherwise\r\n */\r\nexport function getIEVersion(userAgentStr) {\r\n if (userAgentStr === void 0) { userAgentStr = null; }\r\n if (!userAgentStr) {\r\n var navigator_1 = getNavigator() || {};\r\n userAgentStr = navigator_1 ? (navigator_1.userAgent || STR_EMPTY)[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]() : STR_EMPTY;\r\n }\r\n var ua = (userAgentStr || STR_EMPTY)[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]();\r\n // Also check for documentMode in case X-UA-Compatible meta tag was included in HTML.\r\n if (strContains(ua, strMsie)) {\r\n var doc = getDocument() || {};\r\n return Math.max(parseInt(ua[_DYN_SPLIT /* @min:%2esplit */](strMsie)[1]), (doc[strDocumentMode] || 0));\r\n }\r\n else if (strContains(ua, strTrident)) {\r\n var tridentVer = parseInt(ua[_DYN_SPLIT /* @min:%2esplit */](strTrident)[1]);\r\n if (tridentVer) {\r\n return tridentVer + 4;\r\n }\r\n }\r\n return null;\r\n}\r\nexport function isSafari(userAgentStr) {\r\n if (!userAgentStr || !isString(userAgentStr)) {\r\n var navigator_2 = getNavigator() || {};\r\n userAgentStr = navigator_2 ? (navigator_2.userAgent || STR_EMPTY)[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]() : STR_EMPTY;\r\n }\r\n var ua = (userAgentStr || STR_EMPTY)[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]();\r\n return (strIndexOf(ua, \"safari\") >= 0);\r\n}\r\n/**\r\n * Checks if HTML5 Beacons are supported in the current environment.\r\n * @param useCached - [Optional] used for testing to bypass the cached lookup, when `true` this will\r\n * cause the cached global to be reset.\r\n * @returns True if supported, false otherwise.\r\n */\r\nexport function isBeaconsSupported(useCached) {\r\n if (_beaconsSupported === null || useCached === false) {\r\n _beaconsSupported = hasNavigator() && Boolean(getNavigator().sendBeacon);\r\n }\r\n return _beaconsSupported;\r\n}\r\n/**\r\n * Checks if the Fetch API is supported in the current environment.\r\n * @param withKeepAlive - [Optional] If True, check if fetch is available and it supports the keepalive feature, otherwise only check if fetch is supported\r\n * @returns True if supported, otherwise false\r\n */\r\nexport function isFetchSupported(withKeepAlive) {\r\n var isSupported = false;\r\n try {\r\n isSupported = !!getInst(\"fetch\");\r\n var request = getInst(\"Request\");\r\n if (isSupported && withKeepAlive && request) {\r\n isSupported = _hasProperty(request, \"keepalive\");\r\n }\r\n }\r\n catch (e) {\r\n // Just Swallow any failure during availability checks\r\n }\r\n return isSupported;\r\n}\r\nexport function useXDomainRequest() {\r\n if (_useXDomainRequest === null) {\r\n _useXDomainRequest = (typeof XDomainRequest !== strShimUndefined);\r\n if (_useXDomainRequest && isXhrSupported()) {\r\n _useXDomainRequest = _useXDomainRequest && !_hasProperty(getInst(strXMLHttpRequest), \"withCredentials\");\r\n }\r\n }\r\n return _useXDomainRequest;\r\n}\r\n/**\r\n * Checks if XMLHttpRequest is supported\r\n * @returns True if supported, otherwise false\r\n */\r\nexport function isXhrSupported() {\r\n var isSupported = false;\r\n try {\r\n var xmlHttpRequest = getInst(strXMLHttpRequest);\r\n isSupported = !!xmlHttpRequest;\r\n }\r\n catch (e) {\r\n // Just Swallow any failure during availability checks\r\n }\r\n return isSupported;\r\n}\r\nfunction _getNamedValue(values, name) {\r\n if (values) {\r\n for (var i = 0; i < values[_DYN_LENGTH /* @min:%2elength */]; i++) {\r\n var value = values[i];\r\n if (value[_DYN_NAME /* @min:%2ename */]) {\r\n if (value[_DYN_NAME /* @min:%2ename */] === name) {\r\n return value;\r\n }\r\n }\r\n }\r\n }\r\n return {};\r\n}\r\n/**\r\n * Helper function to fetch the named meta-tag from the page.\r\n * @param name\r\n */\r\nexport function findMetaTag(name) {\r\n var doc = getDocument();\r\n if (doc && name) {\r\n // Look for a meta-tag\r\n return _getNamedValue(doc.querySelectorAll(\"meta\"), name).content;\r\n }\r\n return null;\r\n}\r\n/**\r\n * Helper function to fetch the named server timing value from the page response (first navigation event).\r\n * @param name\r\n */\r\nexport function findNamedServerTiming(name) {\r\n var value;\r\n var perf = getPerformance();\r\n if (perf) {\r\n // Try looking for a server-timing header\r\n var navPerf = perf.getEntriesByType(\"navigation\") || [];\r\n value = _getNamedValue((navPerf[_DYN_LENGTH /* @min:%2elength */] > 0 ? navPerf[0] : {}).serverTiming, name).description;\r\n }\r\n return value;\r\n}\r\n// TODO: should reuse this method for analytics plugin\r\nexport function dispatchEvent(target, evnt) {\r\n if (target && target.dispatchEvent && evnt) {\r\n target.dispatchEvent(evnt);\r\n return true;\r\n }\r\n return false;\r\n}\r\nexport function createCustomDomEvent(eventName, details) {\r\n var event = null;\r\n var detail = { detail: details || null };\r\n if (isFunction(CustomEvent)) { // Use CustomEvent constructor when available\r\n event = new CustomEvent(eventName, detail);\r\n }\r\n else { // CustomEvent has no constructor in IE\r\n var doc = getDocument();\r\n if (doc && doc.createEvent) {\r\n event = doc.createEvent(\"CustomEvent\");\r\n event.initCustomEvent(eventName, true, true, detail);\r\n }\r\n }\r\n return event;\r\n}\r\nexport function sendCustomEvent(evtName, cfg, customDetails) {\r\n var global = getGlobal();\r\n if (global && global.CustomEvent) {\r\n try {\r\n var details = { cfg: cfg || null, customDetails: customDetails || null };\r\n return dispatchEvent(global, createCustomDomEvent(evtName, details));\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n }\r\n return false;\r\n}\r\n//# sourceMappingURL=EnvUtils.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { utcNow } from \"@nevware21/ts-utils\";\r\nimport { _DYN_LENGTH } from \"../__DynamicConstants\";\r\nimport { getCrypto, getMsCrypto, isIE } from \"./EnvUtils\";\r\nimport { STR_EMPTY } from \"./InternalConstants\";\r\nvar UInt32Mask = 0x100000000;\r\nvar MaxUInt32 = 0xffffffff;\r\nvar SEED1 = 123456789;\r\nvar SEED2 = 987654321;\r\n// MWC based Random generator (for IE)\r\nvar _mwcSeeded = false;\r\nvar _mwcW = SEED1;\r\nvar _mwcZ = SEED2;\r\n// Takes any integer\r\nfunction _mwcSeed(seedValue) {\r\n if (seedValue < 0) {\r\n // Make sure we end up with a positive number and not -ve one.\r\n seedValue >>>= 0;\r\n }\r\n _mwcW = (SEED1 + seedValue) & MaxUInt32;\r\n _mwcZ = (SEED2 - seedValue) & MaxUInt32;\r\n _mwcSeeded = true;\r\n}\r\nfunction _autoSeedMwc() {\r\n // Simple initialization using default Math.random() - So we inherit any entropy from the browser\r\n // and bitwise XOR with the current milliseconds\r\n try {\r\n var now = utcNow() & 0x7fffffff;\r\n _mwcSeed(((Math.random() * UInt32Mask) ^ now) + now);\r\n }\r\n catch (e) {\r\n // Don't crash if something goes wrong\r\n }\r\n}\r\n/**\r\n * Generate a random value between 0 and maxValue, max value should be limited to a 32-bit maximum.\r\n * So maxValue(16) will produce a number from 0..16 (range of 17)\r\n * @param maxValue\r\n */\r\nexport function randomValue(maxValue) {\r\n if (maxValue > 0) {\r\n return Math.floor((random32() / MaxUInt32) * (maxValue + 1)) >>> 0;\r\n }\r\n return 0;\r\n}\r\n/**\r\n * generate a random 32-bit number (0x000000..0xFFFFFFFF) or (-0x80000000..0x7FFFFFFF), defaults un-unsigned.\r\n * @param signed - True to return a signed 32-bit number (-0x80000000..0x7FFFFFFF) otherwise an unsigned one (0x000000..0xFFFFFFFF)\r\n */\r\nexport function random32(signed) {\r\n var value = 0;\r\n var c = getCrypto() || getMsCrypto();\r\n if (c && c.getRandomValues) {\r\n // Make sure the number is converted into the specified range (-0x80000000..0x7FFFFFFF)\r\n value = c.getRandomValues(new Uint32Array(1))[0] & MaxUInt32;\r\n }\r\n if (value === 0 && isIE()) {\r\n // For IE 6, 7, 8 (especially on XP) Math.random is not very random\r\n if (!_mwcSeeded) {\r\n // Set the seed for the Mwc algorithm\r\n _autoSeedMwc();\r\n }\r\n // Don't use Math.random for IE\r\n // Make sure the number is converted into the specified range (-0x80000000..0x7FFFFFFF)\r\n value = mwcRandom32() & MaxUInt32;\r\n }\r\n if (value === 0) {\r\n // Make sure the number is converted into the specified range (-0x80000000..0x7FFFFFFF)\r\n value = Math.floor((UInt32Mask * Math.random()) | 0);\r\n }\r\n if (!signed) {\r\n // Make sure we end up with a positive number and not -ve one.\r\n value >>>= 0;\r\n }\r\n return value;\r\n}\r\n/**\r\n * Seed the MWC random number generator with the specified seed or a random value\r\n * @param value - optional the number to used as the seed, if undefined, null or zero a random value will be chosen\r\n */\r\nexport function mwcRandomSeed(value) {\r\n if (!value) {\r\n _autoSeedMwc();\r\n }\r\n else {\r\n _mwcSeed(value);\r\n }\r\n}\r\n/**\r\n * Generate a random 32-bit number between (0x000000..0xFFFFFFFF) or (-0x80000000..0x7FFFFFFF), using MWC (Multiply with carry)\r\n * instead of Math.random() defaults to un-signed.\r\n * Used as a replacement random generator for IE to avoid issues with older IE instances.\r\n * @param signed - True to return a signed 32-bit number (-0x80000000..0x7FFFFFFF) otherwise an unsigned one (0x000000..0xFFFFFFFF)\r\n */\r\nexport function mwcRandom32(signed) {\r\n _mwcZ = (36969 * (_mwcZ & 0xFFFF) + (_mwcZ >> 16)) & MaxUInt32;\r\n _mwcW = (18000 * (_mwcW & 0xFFFF) + (_mwcW >> 16)) & MaxUInt32;\r\n var value = (((_mwcZ << 16) + (_mwcW & 0xFFFF)) >>> 0) & MaxUInt32 | 0;\r\n if (!signed) {\r\n // Make sure we end up with a positive number and not -ve one.\r\n value >>>= 0;\r\n }\r\n return value;\r\n}\r\n/**\r\n * Generate random base64 id string.\r\n * The default length is 22 which is 132-bits so almost the same as a GUID but as base64 (the previous default was 5)\r\n * @param maxLength - Optional value to specify the length of the id to be generated, defaults to 22\r\n */\r\nexport function newId(maxLength) {\r\n if (maxLength === void 0) { maxLength = 22; }\r\n var base64chars = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";\r\n // Start with an initial random number, consuming the value in reverse byte order\r\n var number = random32() >>> 0; // Make sure it's a +ve number\r\n var chars = 0;\r\n var result = STR_EMPTY;\r\n while (result[_DYN_LENGTH /* @min:%2elength */] < maxLength) {\r\n chars++;\r\n result += base64chars.charAt(number & 0x3F);\r\n number >>>= 6; // Zero fill with right shift\r\n if (chars === 5) {\r\n // 5 base64 characters === 30 bits so we don't have enough bits for another base64 char\r\n // So add on another 30 bits and make sure it's +ve\r\n number = (((random32() << 2) & 0xFFFFFFFF) | (number & 0x03)) >>> 0;\r\n chars = 0; // We need to reset the number every 5 chars (30 bits)\r\n }\r\n }\r\n return result;\r\n}\r\n//# sourceMappingURL=RandomHelper.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { objDefine } from \"@nevware21/ts-utils\";\r\nimport { _DYN_NODE_TYPE } from \"../__DynamicConstants\";\r\nimport { normalizeJsName } from \"./HelperFuncs\";\r\nimport { STR_EMPTY } from \"./InternalConstants\";\r\nimport { newId } from \"./RandomHelper\";\r\nvar version = '3.3.4';\r\nvar instanceName = \".\" + newId(6);\r\nvar _dataUid = 0;\r\n// Accepts only:\r\n// - Node\r\n// - Node.ELEMENT_NODE\r\n// - Node.DOCUMENT_NODE\r\n// - Object\r\n// - Any\r\nfunction _canAcceptData(target) {\r\n return target[_DYN_NODE_TYPE /* @min:%2enodeType */] === 1 || target[_DYN_NODE_TYPE /* @min:%2enodeType */] === 9 || !(+target[_DYN_NODE_TYPE /* @min:%2enodeType */]);\r\n}\r\nfunction _getCache(data, target) {\r\n var theCache = target[data.id];\r\n if (!theCache) {\r\n theCache = {};\r\n try {\r\n if (_canAcceptData(target)) {\r\n objDefine(target, data.id, {\r\n e: false,\r\n v: theCache\r\n });\r\n }\r\n }\r\n catch (e) {\r\n // Not all environments allow extending all objects, so just ignore the cache in those cases\r\n }\r\n }\r\n return theCache;\r\n}\r\nexport function createUniqueNamespace(name, includeVersion) {\r\n if (includeVersion === void 0) { includeVersion = false; }\r\n return normalizeJsName(name + (_dataUid++) + (includeVersion ? \".\" + version : STR_EMPTY) + instanceName);\r\n}\r\nexport function createElmNodeData(name) {\r\n var data = {\r\n id: createUniqueNamespace(\"_aiData-\" + (name || STR_EMPTY) + \".\" + version),\r\n accept: function (target) {\r\n return _canAcceptData(target);\r\n },\r\n get: function (target, name, defValue, addDefault) {\r\n var theCache = target[data.id];\r\n if (!theCache) {\r\n if (addDefault) {\r\n // Side effect is adds the cache\r\n theCache = _getCache(data, target);\r\n theCache[normalizeJsName(name)] = defValue;\r\n }\r\n return defValue;\r\n }\r\n return theCache[normalizeJsName(name)];\r\n },\r\n kill: function (target, name) {\r\n if (target && target[name]) {\r\n try {\r\n delete target[name];\r\n }\r\n catch (e) {\r\n // Just cleaning up, so if this fails -- ignore\r\n }\r\n }\r\n }\r\n };\r\n return data;\r\n}\r\n//# sourceMappingURL=DataCacheHelper.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { asString, isArray, isDefined, isNullOrUndefined, isObject, isPlainObject, isUndefined, objForEachKey, objHasOwn } from \"@nevware21/ts-utils\";\r\nimport { _DYN_BLK_VAL, _DYN_LENGTH, _DYN_RD_ONLY } from \"../__DynamicConstants\";\r\nfunction _isConfigDefaults(value) {\r\n return (value && isObject(value) && (value.isVal || value.fb || objHasOwn(value, \"v\") || objHasOwn(value, \"mrg\") || objHasOwn(value, \"ref\") || value.set));\r\n}\r\nfunction _getDefault(dynamicHandler, theConfig, cfgDefaults) {\r\n var defValue;\r\n var isDefaultValid = cfgDefaults.dfVal || isDefined;\r\n // There is a fallback config key so try and grab that first\r\n if (theConfig && cfgDefaults.fb) {\r\n var fallbacks = cfgDefaults.fb;\r\n if (!isArray(fallbacks)) {\r\n fallbacks = [fallbacks];\r\n }\r\n for (var lp = 0; lp < fallbacks[_DYN_LENGTH /* @min:%2elength */]; lp++) {\r\n var fallback = fallbacks[lp];\r\n var fbValue = theConfig[fallback];\r\n if (isDefaultValid(fbValue)) {\r\n defValue = fbValue;\r\n }\r\n else if (dynamicHandler) {\r\n // Needed to ensure that the fallback value (and potentially) new field is also dynamic even if null/undefined\r\n fbValue = dynamicHandler.cfg[fallback];\r\n if (isDefaultValid(fbValue)) {\r\n defValue = fbValue;\r\n }\r\n // Needed to ensure that the fallback value (and potentially) new field is also dynamic even if null/undefined\r\n dynamicHandler.set(dynamicHandler.cfg, asString(fallback), fbValue);\r\n }\r\n if (isDefaultValid(defValue)) {\r\n // We have a valid default so break out of the look\r\n break;\r\n }\r\n }\r\n }\r\n // If the value is still not defined and we have a default value then use that\r\n if (!isDefaultValid(defValue) && isDefaultValid(cfgDefaults.v)) {\r\n defValue = cfgDefaults.v;\r\n }\r\n return defValue;\r\n}\r\n/**\r\n * Recursively resolve the default value\r\n * @param dynamicHandler\r\n * @param theConfig\r\n * @param cfgDefaults\r\n * @returns\r\n */\r\nfunction _resolveDefaultValue(dynamicHandler, theConfig, cfgDefaults) {\r\n var theValue = cfgDefaults;\r\n if (cfgDefaults && _isConfigDefaults(cfgDefaults)) {\r\n theValue = _getDefault(dynamicHandler, theConfig, cfgDefaults);\r\n }\r\n if (theValue) {\r\n if (_isConfigDefaults(theValue)) {\r\n theValue = _resolveDefaultValue(dynamicHandler, theConfig, theValue);\r\n }\r\n var newValue_1;\r\n if (isArray(theValue)) {\r\n newValue_1 = [];\r\n newValue_1[_DYN_LENGTH /* @min:%2elength */] = theValue[_DYN_LENGTH /* @min:%2elength */];\r\n }\r\n else if (isPlainObject(theValue)) {\r\n newValue_1 = {};\r\n }\r\n if (newValue_1) {\r\n objForEachKey(theValue, function (key, value) {\r\n if (value && _isConfigDefaults(value)) {\r\n value = _resolveDefaultValue(dynamicHandler, theConfig, value);\r\n }\r\n newValue_1[key] = value;\r\n });\r\n theValue = newValue_1;\r\n }\r\n }\r\n return theValue;\r\n}\r\n/**\r\n * Applies the default value on the config property and makes sure that it's dynamic\r\n * @param theConfig\r\n * @param name\r\n * @param defaultValue\r\n */\r\nexport function _applyDefaultValue(dynamicHandler, theConfig, name, defaultValue) {\r\n // Resolve the initial config value from the provided value or use the defined default\r\n var isValid;\r\n var setFn;\r\n var defValue;\r\n var cfgDefaults = defaultValue;\r\n var mergeDf;\r\n var reference;\r\n var readOnly;\r\n var blkDynamicValue;\r\n if (_isConfigDefaults(cfgDefaults)) {\r\n // looks like a IConfigDefault\r\n isValid = cfgDefaults.isVal;\r\n setFn = cfgDefaults.set;\r\n readOnly = cfgDefaults[_DYN_RD_ONLY /* @min:%2erdOnly */];\r\n blkDynamicValue = cfgDefaults[_DYN_BLK_VAL /* @min:%2eblkVal */];\r\n mergeDf = cfgDefaults.mrg;\r\n reference = cfgDefaults.ref;\r\n if (!reference && isUndefined(reference)) {\r\n reference = !!mergeDf;\r\n }\r\n defValue = _getDefault(dynamicHandler, theConfig, cfgDefaults);\r\n }\r\n else {\r\n defValue = defaultValue;\r\n }\r\n if (blkDynamicValue) {\r\n // Mark the property so that any value assigned will be blocked from conversion, we need to do this\r\n // before assigning or fetching the value to ensure it's not converted\r\n dynamicHandler[_DYN_BLK_VAL /* @min:%2eblkVal */](theConfig, name);\r\n }\r\n // Set the value to the default value;\r\n var theValue;\r\n var usingDefault = true;\r\n var cfgValue = theConfig[name];\r\n // try and get and user provided values\r\n if (cfgValue || !isNullOrUndefined(cfgValue)) {\r\n // Use the defined theConfig[name] value\r\n theValue = cfgValue;\r\n usingDefault = false;\r\n // The values are different and we have a special default value check, which is used to\r\n // override config values like empty strings to continue using the default\r\n if (isValid && theValue !== defValue && !isValid(theValue)) {\r\n theValue = defValue;\r\n usingDefault = true;\r\n }\r\n if (setFn) {\r\n theValue = setFn(theValue, defValue, theConfig);\r\n usingDefault = theValue === defValue;\r\n }\r\n }\r\n if (!usingDefault) {\r\n if (isPlainObject(theValue) || isArray(defValue)) {\r\n // we are using the user supplied value and it's an object\r\n if (mergeDf && defValue && (isPlainObject(defValue) || isArray(defValue))) {\r\n // Resolve/apply the defaults\r\n objForEachKey(defValue, function (dfName, dfValue) {\r\n // Sets the value and makes it dynamic (if it doesn't already exist)\r\n _applyDefaultValue(dynamicHandler, theValue, dfName, dfValue);\r\n });\r\n }\r\n }\r\n }\r\n else if (defValue) {\r\n // Just resolve the default\r\n theValue = _resolveDefaultValue(dynamicHandler, theConfig, defValue);\r\n }\r\n else {\r\n theValue = defValue;\r\n }\r\n // if (theValue && usingDefault && (isPlainObject(theValue) || isArray(theValue))) {\r\n // theValue = _cfgDeepCopy(theValue);\r\n // }\r\n // Needed to ensure that the (potentially) new field is dynamic even if null/undefined\r\n dynamicHandler.set(theConfig, name, theValue);\r\n if (reference) {\r\n dynamicHandler.ref(theConfig, name);\r\n }\r\n if (readOnly) {\r\n dynamicHandler[_DYN_RD_ONLY /* @min:%2erdOnly */](theConfig, name);\r\n }\r\n}\r\n//# sourceMappingURL=ConfigDefaults.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { isArray, isPlainObject, objForEachKey, symbolFor, throwTypeError } from \"@nevware21/ts-utils\";\r\nimport { _DYN_LENGTH } from \"../__DynamicConstants\";\r\n// Using Symbol.for so that if the same symbol was already created it would be returned\r\n// To handle multiple instances using potentially different versions we are not using\r\n// createUniqueNamespace()\r\nexport var CFG_HANDLER_LINK = symbolFor(\"[[ai_dynCfg_1]]\");\r\n/**\r\n * @internal\r\n * @ignore\r\n * The symbol to tag objects / arrays with if they should not be converted\r\n */\r\nvar BLOCK_DYNAMIC = symbolFor(\"[[ai_blkDynCfg_1]]\");\r\n/**\r\n * @internal\r\n * @ignore\r\n * The symbol to tag objects to indicate that when included into the configuration that\r\n * they should be converted into a trackable dynamic object.\r\n */\r\nvar FORCE_DYNAMIC = symbolFor(\"[[ai_frcDynCfg_1]]\");\r\nexport function _cfgDeepCopy(source) {\r\n if (source) {\r\n var target_1;\r\n if (isArray(source)) {\r\n target_1 = [];\r\n target_1[_DYN_LENGTH /* @min:%2elength */] = source[_DYN_LENGTH /* @min:%2elength */];\r\n }\r\n else if (isPlainObject(source)) {\r\n target_1 = {};\r\n }\r\n if (target_1) {\r\n // Copying index values by property name as the extensionConfig can be an array or object\r\n objForEachKey(source, function (key, value) {\r\n // Perform a deep copy of the object\r\n target_1[key] = _cfgDeepCopy(value);\r\n });\r\n return target_1;\r\n }\r\n }\r\n return source;\r\n}\r\n/**\r\n * @internal\r\n * Get the dynamic config handler if the value is already dynamic\r\n * @param value\r\n * @returns\r\n */\r\nexport function getDynamicConfigHandler(value) {\r\n if (value) {\r\n var handler = value[CFG_HANDLER_LINK] || value;\r\n if (handler.cfg && (handler.cfg === value || handler.cfg[CFG_HANDLER_LINK] === handler)) {\r\n return handler;\r\n }\r\n }\r\n return null;\r\n}\r\n/**\r\n * Mark the provided value so that if it's included into the configuration it will NOT have\r\n * its properties converted into a dynamic (reactive) object. If the object is not a plain object\r\n * or an array (ie. a class) this function has not affect as only Objects and Arrays are converted\r\n * into dynamic objects in the dynamic configuration.\r\n *\r\n * When you have tagged a value as both {@link forceDynamicConversion} and blocked force will take precedence.\r\n *\r\n * You should only need to use this function, if you are creating dynamic \"classes\" from objects\r\n * which confirm to the require interface. A common case for this is during unit testing where it's\r\n * easier to create mock extensions.\r\n *\r\n * If `value` is falsy (null / undefined / 0 / empty string etc) it will not be tagged and\r\n * if there is an exception adding the property to the value (because its frozen etc) the\r\n * exception will be swallowed\r\n *\r\n * @example\r\n * ```ts\r\n * // This is a valid \"extension\", but it is technically an object\r\n * // So when included in the config.extensions it WILL be cloned and then\r\n * // converted into a dynamic object, where all of its properties will become\r\n * // get/set object properties and will be tracked. While this WILL still\r\n * // function, when attempt to use a mocking framework on top of this the\r\n * // functions are now technically get accessors which return a function\r\n * // and this can cause some mocking frameworks to fail.\r\n * let mockChannel = {\r\n * pause: () => { },\r\n* resume: () => { },\r\n* teardown: () => { },\r\n* flush: (async: any, callBack: any) => { },\r\n* processTelemetry: (env: any) => { },\r\n* setNextPlugin: (next: any) => { },\r\n* initialize: (config: any, core: any, extensions: any) => { },\r\n* identifier: \"testChannel\",\r\n* priority: 1003\r\n* };\r\n * ```\r\n * @param value - The object that you want to block from being converted into a\r\n * trackable dynamic object\r\n * @returns The original value\r\n */\r\nexport function blockDynamicConversion(value) {\r\n if (value && (isPlainObject(value) || isArray(value))) {\r\n try {\r\n value[BLOCK_DYNAMIC] = true;\r\n }\r\n catch (e) {\r\n // Don't throw for this case as it's an ask only\r\n }\r\n }\r\n return value;\r\n}\r\n/**\r\n * This is the reverse case of {@link blockDynamicConversion} in that this will tag an\r\n * object to indicate that it should always be converted into a dynamic trackable object\r\n * even when not an object or array. So all properties of this object will become\r\n * get / set accessor functions.\r\n *\r\n * When you have tagged a value as both {@link forceDynamicConversion} and blocked force will take precedence.\r\n *\r\n * If `value` is falsy (null / undefined / 0 / empty string etc) it will not be tagged and\r\n * if there is an exception adding the property to the value (because its frozen etc) the\r\n * exception will be swallowed.\r\n * @param value - The object that should be tagged and converted if included into a dynamic\r\n * configuration.\r\n * @returns The original value\r\n */\r\nexport function forceDynamicConversion(value) {\r\n if (value) {\r\n try {\r\n value[FORCE_DYNAMIC] = true;\r\n }\r\n catch (e) {\r\n // Don't throw for this case as it's an ask only\r\n }\r\n }\r\n return value;\r\n}\r\n/**\r\n * @internal\r\n * @ignore\r\n * Helper function to check whether an object can or should be converted into a dynamic\r\n * object.\r\n * @param value - The object to check whether it should be converted\r\n * @returns `true` if the value should be converted otherwise `false`.\r\n */\r\nexport function _canMakeDynamic(getFunc, state, value) {\r\n var result = false;\r\n // Object must exist and be truthy\r\n if (value && !getFunc[state.blkVal]) {\r\n // Tagged as always convert\r\n result = value[FORCE_DYNAMIC];\r\n // Check that it's not explicitly tagged as blocked\r\n if (!result && !value[BLOCK_DYNAMIC]) {\r\n // Only convert plain objects or arrays by default\r\n result = isPlainObject(value) || isArray(value);\r\n }\r\n }\r\n return result;\r\n}\r\n/**\r\n * Throws an invalid access exception\r\n * @param message - The message to include in the exception\r\n */\r\nexport function throwInvalidAccess(message) {\r\n throwTypeError(\"InvalidAccess:\" + message);\r\n}\r\n//# sourceMappingURL=DynamicSupport.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { arrForEach, arrIndexOf, dumpObj, isArray, objDefine, objDefineProp, objForEachKey, objGetOwnPropertyDescriptor } from \"@nevware21/ts-utils\";\r\nimport { UNDEFINED_VALUE } from \"../JavaScriptSDK/InternalConstants\";\r\nimport { _DYN_APPLY, _DYN_HDLR, _DYN_LOGGER, _DYN_PUSH, _DYN_SPLICE, _DYN_THROW_INTERNAL } from \"../__DynamicConstants\";\r\nimport { CFG_HANDLER_LINK, _canMakeDynamic, blockDynamicConversion, throwInvalidAccess } from \"./DynamicSupport\";\r\nvar arrayMethodsToPatch = [\r\n \"push\",\r\n \"pop\",\r\n \"shift\",\r\n \"unshift\",\r\n \"splice\"\r\n];\r\nexport var _throwDynamicError = function (logger, name, desc, e) {\r\n logger && logger[_DYN_THROW_INTERNAL /* @min:%2ethrowInternal */](3 /* eLoggingSeverity.DEBUG */, 108 /* _eInternalMessageId.DynamicConfigException */, \"\".concat(desc, \" [\").concat(name, \"] failed - \") + dumpObj(e));\r\n};\r\nfunction _patchArray(state, target, name) {\r\n if (isArray(target)) {\r\n // Monkey Patch the methods that might change the array\r\n arrForEach(arrayMethodsToPatch, function (method) {\r\n var orgMethod = target[method];\r\n target[method] = function () {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n var result = orgMethod[_DYN_APPLY /* @min:%2eapply */](this, args);\r\n // items may be added, removed or moved so need to make some new dynamic properties\r\n _makeDynamicObject(state, target, name, \"Patching\");\r\n return result;\r\n };\r\n });\r\n }\r\n}\r\nfunction _getOwnPropGetter(target, name) {\r\n var propDesc = objGetOwnPropertyDescriptor(target, name);\r\n return propDesc && propDesc.get;\r\n}\r\nfunction _createDynamicProperty(state, theConfig, name, value) {\r\n // Does not appear to be dynamic so lets make it so\r\n var detail = {\r\n n: name,\r\n h: [],\r\n trk: function (handler) {\r\n if (handler && handler.fn) {\r\n if (arrIndexOf(detail.h, handler) === -1) {\r\n // Add this handler to the collection that should be notified when the value changes\r\n detail.h[_DYN_PUSH /* @min:%2epush */](handler);\r\n }\r\n state.trk(handler, detail);\r\n }\r\n },\r\n clr: function (handler) {\r\n var idx = arrIndexOf(detail.h, handler);\r\n if (idx !== -1) {\r\n detail.h[_DYN_SPLICE /* @min:%2esplice */](idx, 1);\r\n }\r\n }\r\n };\r\n // Flag to optimize lookup response time by avoiding additional function calls\r\n var checkDynamic = true;\r\n var isObjectOrArray = false;\r\n function _getProperty() {\r\n if (checkDynamic) {\r\n isObjectOrArray = isObjectOrArray || _canMakeDynamic(_getProperty, state, value);\r\n // Make sure that if it's an object that we make it dynamic\r\n if (value && !value[CFG_HANDLER_LINK] && isObjectOrArray) {\r\n // It doesn't look like it's already dynamic so lets make sure it's converted the object into a dynamic Config as well\r\n value = _makeDynamicObject(state, value, name, \"Converting\");\r\n }\r\n // If it needed to be converted it now has been\r\n checkDynamic = false;\r\n }\r\n // If there is an active handler then add it to the tracking set of handlers\r\n var activeHandler = state.act;\r\n if (activeHandler) {\r\n detail.trk(activeHandler);\r\n }\r\n return value;\r\n }\r\n // Tag this getter as our dynamic property and provide shortcut for notifying a change\r\n _getProperty[state.prop] = {\r\n chng: function () {\r\n state.add(detail);\r\n }\r\n };\r\n function _setProperty(newValue) {\r\n if (value !== newValue) {\r\n if (!!_getProperty[state.ro] && !state.upd) {\r\n // field is marked as readonly so return false\r\n throwInvalidAccess(\"[\" + name + \"] is read-only:\" + dumpObj(theConfig));\r\n }\r\n if (checkDynamic) {\r\n isObjectOrArray = isObjectOrArray || _canMakeDynamic(_getProperty, state, value);\r\n checkDynamic = false;\r\n }\r\n // The value must be a plain object or an array to enforce the reference (in-place updates)\r\n var isReferenced = isObjectOrArray && _getProperty[state.rf];\r\n if (isObjectOrArray) {\r\n // We are about to replace a plain object or an array\r\n if (isReferenced) {\r\n // Reassign the properties from the current value to the same properties from the newValue\r\n // This will set properties not in the newValue to undefined\r\n objForEachKey(value, function (key) {\r\n value[key] = newValue ? newValue[key] : UNDEFINED_VALUE;\r\n });\r\n // Now assign / re-assign value with all of the keys from newValue\r\n try {\r\n objForEachKey(newValue, function (key, theValue) {\r\n _setDynamicProperty(state, value, key, theValue);\r\n });\r\n // Now drop newValue so when we assign value later it keeps the existing reference\r\n newValue = value;\r\n }\r\n catch (e) {\r\n // Unable to convert to dynamic property so just leave as non-dynamic\r\n _throwDynamicError((state.hdlr || {})[_DYN_LOGGER /* @min:%2elogger */], name, \"Assigning\", e);\r\n // Mark as not an object or array so we don't try and do this again\r\n isObjectOrArray = false;\r\n }\r\n }\r\n else if (value && value[CFG_HANDLER_LINK]) {\r\n // As we are replacing the value, if it's already dynamic then we need to notify the listeners\r\n // for every property it has already\r\n objForEachKey(value, function (key) {\r\n // Check if the value is dynamic\r\n var getter = _getOwnPropGetter(value, key);\r\n if (getter) {\r\n // And if it is tell it's listeners that the value has changed\r\n var valueState = getter[state.prop];\r\n valueState && valueState.chng();\r\n }\r\n });\r\n }\r\n }\r\n if (newValue !== value) {\r\n var newIsObjectOrArray = newValue && _canMakeDynamic(_getProperty, state, newValue);\r\n if (!isReferenced && newIsObjectOrArray) {\r\n // As the newValue is an object/array lets preemptively make it dynamic\r\n newValue = _makeDynamicObject(state, newValue, name, \"Converting\");\r\n }\r\n // Now assign the internal \"value\" to the newValue\r\n value = newValue;\r\n isObjectOrArray = newIsObjectOrArray;\r\n }\r\n // Cause any listeners to be scheduled for notification\r\n state.add(detail);\r\n }\r\n }\r\n objDefine(theConfig, detail.n, { g: _getProperty, s: _setProperty });\r\n}\r\nexport function _setDynamicProperty(state, target, name, value) {\r\n if (target) {\r\n // To be a dynamic property it needs to have a get function\r\n var getter = _getOwnPropGetter(target, name);\r\n var isDynamic = getter && !!getter[state.prop];\r\n if (!isDynamic) {\r\n _createDynamicProperty(state, target, name, value);\r\n }\r\n else {\r\n // Looks like it's already dynamic just assign the new value\r\n target[name] = value;\r\n }\r\n }\r\n return target;\r\n}\r\nexport function _setDynamicPropertyState(state, target, name, flags) {\r\n if (target) {\r\n // To be a dynamic property it needs to have a get function\r\n var getter = _getOwnPropGetter(target, name);\r\n var isDynamic = getter && !!getter[state.prop];\r\n var inPlace = flags && flags[0 /* _eSetDynamicPropertyFlags.inPlace */];\r\n var rdOnly = flags && flags[1 /* _eSetDynamicPropertyFlags.readOnly */];\r\n var blkProp = flags && flags[2 /* _eSetDynamicPropertyFlags.blockDynamicProperty */];\r\n if (!isDynamic) {\r\n if (blkProp) {\r\n try {\r\n // Attempt to mark the target as blocked from conversion\r\n blockDynamicConversion(target);\r\n }\r\n catch (e) {\r\n _throwDynamicError((state.hdlr || {})[_DYN_LOGGER /* @min:%2elogger */], name, \"Blocking\", e);\r\n }\r\n }\r\n try {\r\n // Make sure it's dynamic so that we can tag the property as per the state\r\n _setDynamicProperty(state, target, name, target[name]);\r\n getter = _getOwnPropGetter(target, name);\r\n }\r\n catch (e) {\r\n // Unable to convert to dynamic property so just leave as non-dynamic\r\n _throwDynamicError((state.hdlr || {})[_DYN_LOGGER /* @min:%2elogger */], name, \"State\", e);\r\n }\r\n }\r\n // Assign the optional flags if true\r\n if (inPlace) {\r\n getter[state.rf] = inPlace;\r\n }\r\n if (rdOnly) {\r\n getter[state.ro] = rdOnly;\r\n }\r\n if (blkProp) {\r\n getter[state.blkVal] = true;\r\n }\r\n }\r\n return target;\r\n}\r\nexport function _makeDynamicObject(state, target, name, desc) {\r\n try {\r\n // Assign target with new value properties (converting into dynamic properties in the process)\r\n objForEachKey(target, function (key, value) {\r\n // Assign and/or make the property dynamic\r\n _setDynamicProperty(state, target, key, value);\r\n });\r\n if (!target[CFG_HANDLER_LINK]) {\r\n // Link the config back to the dynamic config details\r\n objDefineProp(target, CFG_HANDLER_LINK, {\r\n get: function () {\r\n return state[_DYN_HDLR /* @min:%2ehdlr */];\r\n }\r\n });\r\n _patchArray(state, target, name);\r\n }\r\n }\r\n catch (e) {\r\n // Unable to convert to dynamic property so just leave as non-dynamic\r\n _throwDynamicError((state.hdlr || {})[_DYN_LOGGER /* @min:%2elogger */], name, desc, e);\r\n }\r\n return target;\r\n}\r\n//# sourceMappingURL=DynamicProperty.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { arrForEach, arrIndexOf, dumpObj, newSymbol, scheduleTimeout } from \"@nevware21/ts-utils\";\r\nimport { throwAggregationError } from \"../JavaScriptSDK/AggregationError\";\r\nimport { _DYN_BLK_VAL, _DYN_CANCEL, _DYN_HDLR, _DYN_LENGTH, _DYN_LOGGER, _DYN_NOTIFY, _DYN_PUSH, _DYN_RD_ONLY, _DYN_SET_DF, _DYN_THROW_INTERNAL } from \"../__DynamicConstants\";\r\nvar symPrefix = \"[[ai_\";\r\nvar symPostfix = \"]]\";\r\nexport function _createState(cfgHandler) {\r\n var _a;\r\n var dynamicPropertySymbol = newSymbol(symPrefix + \"get\" + cfgHandler.uid + symPostfix);\r\n var dynamicPropertyReadOnly = newSymbol(symPrefix + \"ro\" + cfgHandler.uid + symPostfix);\r\n var dynamicPropertyReferenced = newSymbol(symPrefix + \"rf\" + cfgHandler.uid + symPostfix);\r\n var dynamicPropertyBlockValue = newSymbol(symPrefix + \"blkVal\" + cfgHandler.uid + symPostfix);\r\n var dynamicPropertyDetail = newSymbol(symPrefix + \"dtl\" + cfgHandler.uid + symPostfix);\r\n var _waitingHandlers = null;\r\n var _watcherTimer = null;\r\n var theState;\r\n function _useHandler(activeHandler, callback) {\r\n var prevWatcher = theState.act;\r\n try {\r\n theState.act = activeHandler;\r\n if (activeHandler && activeHandler[dynamicPropertyDetail]) {\r\n // Clear out the previously tracked details for this handler, so that access are re-evaluated\r\n arrForEach(activeHandler[dynamicPropertyDetail], function (detail) {\r\n detail.clr(activeHandler);\r\n });\r\n activeHandler[dynamicPropertyDetail] = [];\r\n }\r\n callback({\r\n cfg: cfgHandler.cfg,\r\n set: cfgHandler.set.bind(cfgHandler),\r\n setDf: cfgHandler[_DYN_SET_DF /* @min:%2esetDf */].bind(cfgHandler),\r\n ref: cfgHandler.ref.bind(cfgHandler),\r\n rdOnly: cfgHandler[_DYN_RD_ONLY /* @min:%2erdOnly */].bind(cfgHandler)\r\n });\r\n }\r\n catch (e) {\r\n var logger = cfgHandler[_DYN_LOGGER /* @min:%2elogger */];\r\n if (logger) {\r\n // Don't let one individual failure break everyone\r\n logger[_DYN_THROW_INTERNAL /* @min:%2ethrowInternal */](1 /* eLoggingSeverity.CRITICAL */, 107 /* _eInternalMessageId.ConfigWatcherException */, dumpObj(e));\r\n }\r\n // Re-throw the exception so that any true \"error\" is reported back to the called\r\n throw e;\r\n }\r\n finally {\r\n theState.act = prevWatcher || null;\r\n }\r\n }\r\n function _notifyWatchers() {\r\n if (_waitingHandlers) {\r\n var notifyHandlers = _waitingHandlers;\r\n _waitingHandlers = null;\r\n // Stop any timer as we are running them now anyway\r\n _watcherTimer && _watcherTimer[_DYN_CANCEL /* @min:%2ecancel */]();\r\n _watcherTimer = null;\r\n var watcherFailures_1 = [];\r\n // Now run the handlers\r\n arrForEach(notifyHandlers, function (handler) {\r\n if (handler) {\r\n if (handler[dynamicPropertyDetail]) {\r\n arrForEach(handler[dynamicPropertyDetail], function (detail) {\r\n // Clear out this handler from previously tracked details, so that access are re-evaluated\r\n detail.clr(handler);\r\n });\r\n handler[dynamicPropertyDetail] = null;\r\n }\r\n // The handler may have self removed as part of another handler so re-check\r\n if (handler.fn) {\r\n try {\r\n _useHandler(handler, handler.fn);\r\n }\r\n catch (e) {\r\n // Don't let a single failing watcher cause other watches to fail\r\n watcherFailures_1[_DYN_PUSH /* @min:%2epush */](e);\r\n }\r\n }\r\n }\r\n });\r\n // During notification we may have had additional updates -- so notify those updates as well\r\n if (_waitingHandlers) {\r\n try {\r\n _notifyWatchers();\r\n }\r\n catch (e) {\r\n watcherFailures_1[_DYN_PUSH /* @min:%2epush */](e);\r\n }\r\n }\r\n if (watcherFailures_1[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n throwAggregationError(\"Watcher error(s): \", watcherFailures_1);\r\n }\r\n }\r\n }\r\n function _addWatcher(detail) {\r\n if (detail && detail.h[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n if (!_waitingHandlers) {\r\n _waitingHandlers = [];\r\n }\r\n if (!_watcherTimer) {\r\n _watcherTimer = scheduleTimeout(function () {\r\n _watcherTimer = null;\r\n _notifyWatchers();\r\n }, 0);\r\n }\r\n // Add all of the handlers for this detail (if not already present) - using normal for-loop for performance\r\n for (var idx = 0; idx < detail.h[_DYN_LENGTH /* @min:%2elength */]; idx++) {\r\n var handler = detail.h[idx];\r\n // Add this handler to the collection of handlers to re-execute\r\n if (handler && arrIndexOf(_waitingHandlers, handler) === -1) {\r\n _waitingHandlers[_DYN_PUSH /* @min:%2epush */](handler);\r\n }\r\n }\r\n }\r\n }\r\n function _trackHandler(handler, detail) {\r\n if (handler) {\r\n var details = handler[dynamicPropertyDetail] = handler[dynamicPropertyDetail] || [];\r\n if (arrIndexOf(details, detail) === -1) {\r\n // If this detail is not already listed as tracked then add it so that we re-evaluate it's usage\r\n details[_DYN_PUSH /* @min:%2epush */](detail);\r\n }\r\n }\r\n }\r\n theState = (_a = {\r\n prop: dynamicPropertySymbol,\r\n ro: dynamicPropertyReadOnly,\r\n rf: dynamicPropertyReferenced\r\n },\r\n _a[_DYN_BLK_VAL /* @min:blkVal */] = dynamicPropertyBlockValue,\r\n _a[_DYN_HDLR /* @min:hdlr */] = cfgHandler,\r\n _a.add = _addWatcher,\r\n _a[_DYN_NOTIFY /* @min:notify */] = _notifyWatchers,\r\n _a.use = _useHandler,\r\n _a.trk = _trackHandler,\r\n _a);\r\n return theState;\r\n}\r\n//# sourceMappingURL=DynamicState.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { dumpObj, isUndefined, objDefine, objForEachKey } from \"@nevware21/ts-utils\";\r\nimport { createUniqueNamespace } from \"../JavaScriptSDK/DataCacheHelper\";\r\nimport { STR_NOT_DYNAMIC_ERROR } from \"../JavaScriptSDK/InternalConstants\";\r\nimport { _DYN_BLK_VAL, _DYN_LOGGER, _DYN_NOTIFY, _DYN_RD_ONLY, _DYN_SET_DF, _DYN_THROW_INTERNAL, _DYN_WARN_TO_CONSOLE, _DYN_WATCH } from \"../__DynamicConstants\";\r\nimport { _applyDefaultValue } from \"./ConfigDefaults\";\r\nimport { _makeDynamicObject, _setDynamicProperty, _setDynamicPropertyState, _throwDynamicError } from \"./DynamicProperty\";\r\nimport { _createState } from \"./DynamicState\";\r\nimport { CFG_HANDLER_LINK, _cfgDeepCopy, getDynamicConfigHandler, throwInvalidAccess } from \"./DynamicSupport\";\r\n/**\r\n * Identifies a function which will be re-called whenever any of it's accessed configuration values\r\n * change.\r\n * @param configHandler - The callback that will be called for the initial request and then whenever any\r\n * accessed configuration changes are identified.\r\n */\r\nfunction _createAndUseHandler(state, configHandler) {\r\n var handler = {\r\n fn: configHandler,\r\n rm: function () {\r\n // Clear all references to the handler so it can be garbage collected\r\n // This will also cause this handler to never get called and eventually removed\r\n handler.fn = null;\r\n state = null;\r\n configHandler = null;\r\n }\r\n };\r\n objDefine(handler, \"toJSON\", { v: function () { return \"WatcherHandler\" + (handler.fn ? \"\" : \"[X]\"); } });\r\n state.use(handler, configHandler);\r\n return handler;\r\n}\r\n/**\r\n * Creates the dynamic config handler and associates with the target config as the root object\r\n * @param target - The config that you want to be root of the dynamic config\r\n * @param inPlace - Should the passed config be converted in-place or a new proxy returned\r\n * @returns The existing dynamic handler or a new instance with the provided config values\r\n */\r\nfunction _createDynamicHandler(logger, target, inPlace) {\r\n var _a;\r\n var dynamicHandler = getDynamicConfigHandler(target);\r\n if (dynamicHandler) {\r\n // The passed config is already dynamic so return it's tracker\r\n return dynamicHandler;\r\n }\r\n var uid = createUniqueNamespace(\"dyncfg\", true);\r\n var newTarget = (target && inPlace !== false) ? target : _cfgDeepCopy(target);\r\n var theState;\r\n function _notifyWatchers() {\r\n theState[_DYN_NOTIFY /* @min:%2enotify */]();\r\n }\r\n function _setValue(target, name, value) {\r\n try {\r\n target = _setDynamicProperty(theState, target, name, value);\r\n }\r\n catch (e) {\r\n // Unable to convert to dynamic property so just leave as non-dynamic\r\n _throwDynamicError(logger, name, \"Setting value\", e);\r\n }\r\n return target[name];\r\n }\r\n function _watch(configHandler) {\r\n return _createAndUseHandler(theState, configHandler);\r\n }\r\n function _block(configHandler, allowUpdate) {\r\n theState.use(null, function (details) {\r\n var prevUpd = theState.upd;\r\n try {\r\n if (!isUndefined(allowUpdate)) {\r\n theState.upd = allowUpdate;\r\n }\r\n configHandler(details);\r\n }\r\n finally {\r\n theState.upd = prevUpd;\r\n }\r\n });\r\n }\r\n function _ref(target, name) {\r\n var _a;\r\n // Make sure it's dynamic and mark as referenced with it's current value\r\n return _setDynamicPropertyState(theState, target, name, (_a = {}, _a[0 /* _eSetDynamicPropertyFlags.inPlace */] = true, _a))[name];\r\n }\r\n function _rdOnly(target, name) {\r\n var _a;\r\n // Make sure it's dynamic and mark as readonly with it's current value\r\n return _setDynamicPropertyState(theState, target, name, (_a = {}, _a[1 /* _eSetDynamicPropertyFlags.readOnly */] = true, _a))[name];\r\n }\r\n function _blkPropValue(target, name) {\r\n var _a;\r\n // Make sure it's dynamic and mark as readonly with it's current value\r\n return _setDynamicPropertyState(theState, target, name, (_a = {}, _a[2 /* _eSetDynamicPropertyFlags.blockDynamicProperty */] = true, _a))[name];\r\n }\r\n function _applyDefaults(theConfig, defaultValues) {\r\n if (defaultValues) {\r\n // Resolve/apply the defaults\r\n objForEachKey(defaultValues, function (name, value) {\r\n // Sets the value and makes it dynamic (if it doesn't already exist)\r\n _applyDefaultValue(cfgHandler, theConfig, name, value);\r\n });\r\n }\r\n return theConfig;\r\n }\r\n var cfgHandler = (_a = {\r\n uid: null,\r\n cfg: newTarget\r\n },\r\n _a[_DYN_LOGGER /* @min:logger */] = logger,\r\n _a[_DYN_NOTIFY /* @min:notify */] = _notifyWatchers,\r\n _a.set = _setValue,\r\n _a[_DYN_SET_DF /* @min:setDf */] = _applyDefaults,\r\n _a[_DYN_WATCH /* @min:watch */] = _watch,\r\n _a.ref = _ref,\r\n _a[_DYN_RD_ONLY /* @min:rdOnly */] = _rdOnly,\r\n _a[_DYN_BLK_VAL /* @min:blkVal */] = _blkPropValue,\r\n _a._block = _block,\r\n _a);\r\n objDefine(cfgHandler, \"uid\", {\r\n c: false,\r\n e: false,\r\n w: false,\r\n v: uid\r\n });\r\n theState = _createState(cfgHandler);\r\n // Setup tracking for all defined default keys\r\n _makeDynamicObject(theState, newTarget, \"config\", \"Creating\");\r\n return cfgHandler;\r\n}\r\n/**\r\n * Log an invalid access message to the console\r\n * @param message\r\n */\r\nfunction _logInvalidAccess(logger, message) {\r\n if (logger) {\r\n logger[_DYN_WARN_TO_CONSOLE /* @min:%2ewarnToConsole */](message);\r\n logger[_DYN_THROW_INTERNAL /* @min:%2ethrowInternal */](2 /* eLoggingSeverity.WARNING */, 108 /* _eInternalMessageId.DynamicConfigException */, message);\r\n }\r\n else {\r\n // We don't have a logger so just throw an exception\r\n throwInvalidAccess(message);\r\n }\r\n}\r\n/**\r\n * Create or return a dynamic version of the passed config, if it is not already dynamic\r\n * @param config - The config to be converted into a dynamic config\r\n * @param defaultConfig - The default values to apply on the config if the properties don't already exist\r\n * @param inPlace - Should the config be converted in-place into a dynamic config or a new instance returned, defaults to true\r\n * @returns The dynamic config handler for the config (whether new or existing)\r\n */\r\nexport function createDynamicConfig(config, defaultConfig, logger, inPlace) {\r\n var dynamicHandler = _createDynamicHandler(logger, config || {}, inPlace);\r\n if (defaultConfig) {\r\n dynamicHandler[_DYN_SET_DF /* @min:%2esetDf */](dynamicHandler.cfg, defaultConfig);\r\n }\r\n return dynamicHandler;\r\n}\r\n/**\r\n * Watch and track changes for accesses to the current config, the provided config MUST already be\r\n * a dynamic config or a child accessed via the dynamic config\r\n * @param config\r\n * @param configHandler\r\n * @param logger - The logger instance to use if there is no existing handler\r\n * @returns A watcher handler instance that can be used to remove itself when being unloaded\r\n * @throws TypeError if the provided config is not a dynamic config instance\r\n */\r\nexport function onConfigChange(config, configHandler, logger) {\r\n var handler = config[CFG_HANDLER_LINK] || config;\r\n if (handler.cfg && (handler.cfg === config || handler.cfg[CFG_HANDLER_LINK] === handler)) {\r\n return handler[_DYN_WATCH /* @min:%2ewatch */](configHandler);\r\n }\r\n _logInvalidAccess(logger, STR_NOT_DYNAMIC_ERROR + dumpObj(config));\r\n return createDynamicConfig(config, null, logger)[_DYN_WATCH /* @min:%2ewatch */](configHandler);\r\n}\r\n//# sourceMappingURL=DynamicConfig.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { createPromise, doAwaitResponse } from \"@nevware21/ts-async\";\r\nimport { arrSlice, getLength } from \"@nevware21/ts-utils\";\r\nimport { _DYN_UNLOAD } from \"../__DynamicConstants\";\r\n/**\r\n * Run the unload function of the target object if it exists\r\n * @param target - The target object that contains the unload function\r\n * @param isAsync - The caller identifies whether it is expecting the operation to complete synchronously or asynchronously. Even\r\n * if the caller is not waiting the operation may still be performed asynchronously depending on the component and the reverse is\r\n * also true.\r\n * @returns The result of the target function\r\n */\r\nexport function runTargetUnload(target, isAsync) {\r\n if (target && target[_DYN_UNLOAD /* @min:%2eunload */]) {\r\n return target[_DYN_UNLOAD /* @min:%2eunload */](isAsync);\r\n }\r\n}\r\n/**\r\n * Call the unload function on all targets handling any returned [IPromise](https://nevware21.github.io/ts-async/typedoc/interfaces/IPromise.html)\r\n * / Promise before calling the next targets unload\r\n * @param targets - An array of the targets to unload\r\n * @param isAsync - The caller identifies whether it is expecting the operations to complete synchronously or asynchronously. Even\r\n * if the caller is not waiting the operation may still be performed asynchronously depending on the component and the reverse is\r\n * also true.\r\n * @param done - Optional callback function to call once all of the unload functions have been called.\r\n */\r\nexport function doUnloadAll(targets, isAsync, done) {\r\n var result;\r\n if (!done) {\r\n result = createPromise(function (resolved) {\r\n done = resolved;\r\n });\r\n }\r\n if (targets && getLength(targets) > 0) {\r\n doAwaitResponse(runTargetUnload(targets[0], isAsync), function () {\r\n doUnloadAll(arrSlice(targets, 1), isAsync, done);\r\n });\r\n }\r\n else {\r\n done();\r\n }\r\n return result;\r\n}\r\n//# sourceMappingURL=AsyncUtils.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nexport var ChannelControllerPriority = 500;\r\nexport var DisabledPropertyName = \"Microsoft_ApplicationInsights_BypassAjaxInstrumentation\";\r\n// export const SampleRate = \"sampleRate\";\r\n// export const ProcessLegacy = \"ProcessLegacy\";\r\n// export const HttpMethod = \"http.method\";\r\n// export const DEFAULT_BREEZE_ENDPOINT = \"https://dc.services.visualstudio.com\";\r\n// export const DEFAULT_BREEZE_PATH = \"/v2/track\";\r\n// export const strNotSpecified = \"not_specified\";\r\n// export const strIkey = \"iKey\";\r\n//# sourceMappingURL=Constants.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { asString, isBoolean, isFunction, isNullOrUndefined, isString } from \"@nevware21/ts-utils\";\r\nimport { STR_EMPTY } from \"../JavaScriptSDK/InternalConstants\";\r\nimport { _DYN_BLK_VAL, _DYN_TO_LOWER_CASE } from \"../__DynamicConstants\";\r\n/**\r\n * @internal\r\n * @ignore\r\n * @param str\r\n * @param defaultValue\r\n * @returns\r\n */\r\nfunction _stringToBoolOrDefault(theValue, defaultValue, theConfig) {\r\n if (!theValue && isNullOrUndefined(theValue)) {\r\n return defaultValue;\r\n }\r\n if (isBoolean(theValue)) {\r\n return theValue;\r\n }\r\n return asString(theValue)[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]() === \"true\";\r\n}\r\n/**\r\n * Helper which returns an IConfigDefaultCheck instance with the field defined as an object\r\n * that should be merged\r\n * @param defaultValue - The default value to apply it not provided or it's not valid\r\n * @returns a new IConfigDefaultCheck structure\r\n */\r\nexport function cfgDfMerge(defaultValue) {\r\n return {\r\n mrg: true,\r\n v: defaultValue\r\n };\r\n}\r\n/**\r\n * Helper which returns an IConfigDefaultCheck instance with the provided field set function\r\n * @param setter - The IConfigCheckFn function to validate the user provided value\r\n * @param defaultValue - The default value to apply it not provided or it's not valid\r\n * @returns a new IConfigDefaultCheck structure\r\n */\r\nexport function cfgDfSet(setter, defaultValue) {\r\n return {\r\n set: setter,\r\n v: defaultValue\r\n };\r\n}\r\n/**\r\n * Helper which returns an IConfigDefaultCheck instance with the provided field validator\r\n * @param validator - The IConfigCheckFn function to validate the user provided value\r\n * @param defaultValue - The default value to apply it not provided or it's not valid\r\n * @param fallBackName - The fallback configuration name if the current value is not available\r\n * @returns a new IConfigDefaultCheck structure\r\n */\r\nexport function cfgDfValidate(validator, defaultValue, fallBackName) {\r\n return {\r\n fb: fallBackName,\r\n isVal: validator,\r\n v: defaultValue\r\n };\r\n}\r\n/**\r\n * Helper which returns an IConfigDefaultCheck instance that will validate and convert the user\r\n * provided value to a boolean from a string or boolean value\r\n * @param defaultValue - The default value to apply it not provided or it's not valid\r\n * @param fallBackName - The fallback configuration name if the current value is not available\r\n * @returns a new IConfigDefaultCheck structure\r\n */\r\nexport function cfgDfBoolean(defaultValue, fallBackName) {\r\n return {\r\n fb: fallBackName,\r\n set: _stringToBoolOrDefault,\r\n v: !!defaultValue\r\n };\r\n}\r\n/**\r\n * Helper which returns an IConfigDefaultCheck instance that will validate that the user\r\n * provided value is a function.\r\n * @param defaultValue - The default value to apply it not provided or it's not valid\r\n * @returns a new IConfigDefaultCheck structure\r\n */\r\nexport function cfgDfFunc(defaultValue) {\r\n return {\r\n isVal: isFunction,\r\n v: defaultValue || null\r\n };\r\n}\r\n/**\r\n * Helper which returns an IConfigDefaultCheck instance that will validate that the user\r\n * provided value is a function.\r\n * @param defaultValue - The default string value to apply it not provided or it's not valid, defaults to an empty string\r\n * @returns a new IConfigDefaultCheck structure\r\n */\r\nexport function cfgDfString(defaultValue) {\r\n return {\r\n isVal: isString,\r\n v: asString(defaultValue || STR_EMPTY)\r\n };\r\n}\r\n/**\r\n * Helper which returns an IConfigDefaultCheck instance identifying that value associated with this property\r\n * should not have it's properties converted into a dynamic config properties.\r\n * @param defaultValue - The default value to apply it not provided or it's not valid\r\n * @returns a new IConfigDefaultCheck structure\r\n */\r\nexport function cfgDfBlockPropValue(defaultValue) {\r\n var _a;\r\n return _a = {},\r\n _a[_DYN_BLK_VAL /* @min:blkVal */] = true,\r\n _a.v = defaultValue,\r\n _a;\r\n}\r\n//# sourceMappingURL=ConfigDefaultHelpers.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { getInst } from \"@nevware21/ts-utils\";\r\nimport { _DYN_APPLY, _DYN_LENGTH } from \"../__DynamicConstants\";\r\nimport { STR_EVENTS_DISCARDED, STR_EVENTS_SEND_REQUEST, STR_EVENTS_SENT, STR_PERF_EVENT } from \"./InternalConstants\";\r\nvar listenerFuncs = [STR_EVENTS_SENT, STR_EVENTS_DISCARDED, STR_EVENTS_SEND_REQUEST, STR_PERF_EVENT];\r\nvar _aiNamespace = null;\r\nvar _debugListener;\r\nfunction _listenerProxyFunc(name, config) {\r\n return function () {\r\n var args = arguments;\r\n var dbgExt = getDebugExt(config);\r\n if (dbgExt) {\r\n var listener = dbgExt.listener;\r\n if (listener && listener[name]) {\r\n listener[name][_DYN_APPLY /* @min:%2eapply */](listener, args);\r\n }\r\n }\r\n };\r\n}\r\nfunction _getExtensionNamespace() {\r\n // Cache the lookup of the global namespace object\r\n var target = getInst(\"Microsoft\");\r\n if (target) {\r\n _aiNamespace = target[\"ApplicationInsights\"];\r\n }\r\n return _aiNamespace;\r\n}\r\nexport function getDebugExt(config) {\r\n var ns = _aiNamespace;\r\n if (!ns && config.disableDbgExt !== true) {\r\n ns = _aiNamespace || _getExtensionNamespace();\r\n }\r\n return ns ? ns[\"ChromeDbgExt\"] : null;\r\n}\r\nexport function getDebugListener(config) {\r\n if (!_debugListener) {\r\n _debugListener = {};\r\n for (var lp = 0; lp < listenerFuncs[_DYN_LENGTH /* @min:%2elength */]; lp++) {\r\n _debugListener[listenerFuncs[lp]] = _listenerProxyFunc(listenerFuncs[lp], config);\r\n }\r\n }\r\n return _debugListener;\r\n}\r\n//# sourceMappingURL=DbgExtensionUtils.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n\"use strict\";\r\nvar _a;\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { dumpObj, isFunction, isUndefined } from \"@nevware21/ts-utils\";\r\nimport { createDynamicConfig, onConfigChange } from \"../Config/DynamicConfig\";\r\nimport { _DYN_DIAG_LOG, _DYN_LOGGER, _DYN_LOGGING_LEVEL_CONSOL4, _DYN_LOG_INTERNAL_MESSAGE, _DYN_MESSAGE, _DYN_MESSAGE_ID, _DYN_PUSH, _DYN_REPLACE, _DYN_THROW_INTERNAL, _DYN_UNLOAD, _DYN_WARN_TO_CONSOLE } from \"../__DynamicConstants\";\r\nimport { getDebugExt } from \"./DbgExtensionUtils\";\r\nimport { getConsole, getJSON, hasJSON } from \"./EnvUtils\";\r\nimport { STR_EMPTY } from \"./InternalConstants\";\r\nvar STR_WARN_TO_CONSOLE = \"warnToConsole\";\r\n/**\r\n * For user non actionable traces use AI Internal prefix.\r\n */\r\nvar AiNonUserActionablePrefix = \"AI (Internal): \";\r\n/**\r\n * Prefix of the traces in portal.\r\n */\r\nvar AiUserActionablePrefix = \"AI: \";\r\n/**\r\n * Session storage key for the prefix for the key indicating message type already logged\r\n */\r\nvar AIInternalMessagePrefix = \"AITR_\";\r\nvar defaultValues = {\r\n loggingLevelConsole: 0,\r\n loggingLevelTelemetry: 1,\r\n maxMessageLimit: 25,\r\n enableDebug: false\r\n};\r\nvar _logFuncs = (_a = {},\r\n _a[0 /* eLoggingSeverity.DISABLED */] = null,\r\n _a[1 /* eLoggingSeverity.CRITICAL */] = \"errorToConsole\",\r\n _a[2 /* eLoggingSeverity.WARNING */] = STR_WARN_TO_CONSOLE,\r\n _a[3 /* eLoggingSeverity.DEBUG */] = \"debugToConsole\",\r\n _a);\r\nfunction _sanitizeDiagnosticText(text) {\r\n if (text) {\r\n return \"\\\"\" + text[_DYN_REPLACE /* @min:%2ereplace */](/\\\"/g, STR_EMPTY) + \"\\\"\";\r\n }\r\n return STR_EMPTY;\r\n}\r\nfunction _logToConsole(func, message) {\r\n var theConsole = getConsole();\r\n if (!!theConsole) {\r\n var logFunc = \"log\";\r\n if (theConsole[func]) {\r\n logFunc = func;\r\n }\r\n if (isFunction(theConsole[logFunc])) {\r\n theConsole[logFunc](message);\r\n }\r\n }\r\n}\r\nvar _InternalLogMessage = /** @class */ (function () {\r\n function _InternalLogMessage(msgId, msg, isUserAct, properties) {\r\n if (isUserAct === void 0) { isUserAct = false; }\r\n var _self = this;\r\n _self[_DYN_MESSAGE_ID /* @min:%2emessageId */] = msgId;\r\n _self[_DYN_MESSAGE /* @min:%2emessage */] =\r\n (isUserAct ? AiUserActionablePrefix : AiNonUserActionablePrefix) +\r\n msgId;\r\n var strProps = STR_EMPTY;\r\n if (hasJSON()) {\r\n strProps = getJSON().stringify(properties);\r\n }\r\n var diagnosticText = (msg ? \" message:\" + _sanitizeDiagnosticText(msg) : STR_EMPTY) +\r\n (properties ? \" props:\" + _sanitizeDiagnosticText(strProps) : STR_EMPTY);\r\n _self[_DYN_MESSAGE /* @min:%2emessage */] += diagnosticText;\r\n }\r\n _InternalLogMessage.dataType = \"MessageData\";\r\n return _InternalLogMessage;\r\n}());\r\nexport { _InternalLogMessage };\r\nexport function safeGetLogger(core, config) {\r\n return (core || {})[_DYN_LOGGER /* @min:%2elogger */] || new DiagnosticLogger(config);\r\n}\r\nvar DiagnosticLogger = /** @class */ (function () {\r\n function DiagnosticLogger(config) {\r\n this.identifier = \"DiagnosticLogger\";\r\n /**\r\n * The internal logging queue\r\n */\r\n this.queue = [];\r\n /**\r\n * Count of internal messages sent\r\n */\r\n var _messageCount = 0;\r\n /**\r\n * Holds information about what message types were already logged to console or sent to server.\r\n */\r\n var _messageLogged = {};\r\n var _loggingLevelConsole;\r\n var _loggingLevelTelemetry;\r\n var _maxInternalMessageLimit;\r\n var _enableDebug;\r\n var _unloadHandler;\r\n dynamicProto(DiagnosticLogger, this, function (_self) {\r\n _unloadHandler = _setDefaultsFromConfig(config || {});\r\n _self.consoleLoggingLevel = function () { return _loggingLevelConsole; };\r\n /**\r\n * This method will throw exceptions in debug mode or attempt to log the error as a console warning.\r\n * @param severity - {LoggingSeverity} - The severity of the log message\r\n * @param message - {_InternalLogMessage} - The log message.\r\n */\r\n _self[_DYN_THROW_INTERNAL /* @min:%2ethrowInternal */] = function (severity, msgId, msg, properties, isUserAct) {\r\n if (isUserAct === void 0) { isUserAct = false; }\r\n var message = new _InternalLogMessage(msgId, msg, isUserAct, properties);\r\n if (_enableDebug) {\r\n throw dumpObj(message);\r\n }\r\n else {\r\n // Get the logging function and fallback to warnToConsole of for some reason errorToConsole doesn't exist\r\n var logFunc = _logFuncs[severity] || STR_WARN_TO_CONSOLE;\r\n if (!isUndefined(message[_DYN_MESSAGE /* @min:%2emessage */])) {\r\n if (isUserAct) {\r\n // check if this message type was already logged to console for this page view and if so, don't log it again\r\n var messageKey = +message[_DYN_MESSAGE_ID /* @min:%2emessageId */];\r\n if (!_messageLogged[messageKey] && _loggingLevelConsole >= severity) {\r\n _self[logFunc](message[_DYN_MESSAGE /* @min:%2emessage */]);\r\n _messageLogged[messageKey] = true;\r\n }\r\n }\r\n else {\r\n // Only log traces if the console Logging Level is >= the throwInternal severity level\r\n if (_loggingLevelConsole >= severity) {\r\n _self[logFunc](message[_DYN_MESSAGE /* @min:%2emessage */]);\r\n }\r\n }\r\n _logInternalMessage(severity, message);\r\n }\r\n else {\r\n _debugExtMsg(\"throw\" + (severity === 1 /* eLoggingSeverity.CRITICAL */ ? \"Critical\" : \"Warning\"), message);\r\n }\r\n }\r\n };\r\n _self.debugToConsole = function (message) {\r\n _logToConsole(\"debug\", message);\r\n _debugExtMsg(\"warning\", message);\r\n };\r\n _self[_DYN_WARN_TO_CONSOLE /* @min:%2ewarnToConsole */] = function (message) {\r\n _logToConsole(\"warn\", message);\r\n _debugExtMsg(\"warning\", message);\r\n };\r\n _self.errorToConsole = function (message) {\r\n _logToConsole(\"error\", message);\r\n _debugExtMsg(\"error\", message);\r\n };\r\n _self.resetInternalMessageCount = function () {\r\n _messageCount = 0;\r\n _messageLogged = {};\r\n };\r\n _self[_DYN_LOG_INTERNAL_MESSAGE /* @min:%2elogInternalMessage */] = _logInternalMessage;\r\n _self[_DYN_UNLOAD /* @min:%2eunload */] = function (isAsync) {\r\n _unloadHandler && _unloadHandler.rm();\r\n _unloadHandler = null;\r\n };\r\n function _logInternalMessage(severity, message) {\r\n if (_areInternalMessagesThrottled()) {\r\n return;\r\n }\r\n // check if this message type was already logged for this session and if so, don't log it again\r\n var logMessage = true;\r\n var messageKey = AIInternalMessagePrefix + message[_DYN_MESSAGE_ID /* @min:%2emessageId */];\r\n // if the session storage is not available, limit to only one message type per page view\r\n if (_messageLogged[messageKey]) {\r\n logMessage = false;\r\n }\r\n else {\r\n _messageLogged[messageKey] = true;\r\n }\r\n if (logMessage) {\r\n // Push the event in the internal queue\r\n if (severity <= _loggingLevelTelemetry) {\r\n _self.queue[_DYN_PUSH /* @min:%2epush */](message);\r\n _messageCount++;\r\n _debugExtMsg((severity === 1 /* eLoggingSeverity.CRITICAL */ ? \"error\" : \"warn\"), message);\r\n }\r\n // When throttle limit reached, send a special event\r\n if (_messageCount === _maxInternalMessageLimit) {\r\n var throttleLimitMessage = \"Internal events throttle limit per PageView reached for this app.\";\r\n var throttleMessage = new _InternalLogMessage(23 /* _eInternalMessageId.MessageLimitPerPVExceeded */, throttleLimitMessage, false);\r\n _self.queue[_DYN_PUSH /* @min:%2epush */](throttleMessage);\r\n if (severity === 1 /* eLoggingSeverity.CRITICAL */) {\r\n _self.errorToConsole(throttleLimitMessage);\r\n }\r\n else {\r\n _self[_DYN_WARN_TO_CONSOLE /* @min:%2ewarnToConsole */](throttleLimitMessage);\r\n }\r\n }\r\n }\r\n }\r\n function _setDefaultsFromConfig(config) {\r\n // make sure the config is dynamic\r\n return onConfigChange(createDynamicConfig(config, defaultValues, _self).cfg, function (details) {\r\n var config = details.cfg;\r\n _loggingLevelConsole = config[_DYN_LOGGING_LEVEL_CONSOL4 /* @min:%2eloggingLevelConsole */];\r\n _loggingLevelTelemetry = config.loggingLevelTelemetry;\r\n _maxInternalMessageLimit = config.maxMessageLimit;\r\n _enableDebug = config.enableDebug;\r\n });\r\n }\r\n function _areInternalMessagesThrottled() {\r\n return _messageCount >= _maxInternalMessageLimit;\r\n }\r\n function _debugExtMsg(name, data) {\r\n var dbgExt = getDebugExt(config || {});\r\n if (dbgExt && dbgExt[_DYN_DIAG_LOG /* @min:%2ediagLog */]) {\r\n dbgExt[_DYN_DIAG_LOG /* @min:%2ediagLog */](name, data);\r\n }\r\n }\r\n });\r\n }\r\n// Removed Stub for DiagnosticLogger.prototype.consoleLoggingLevel.\r\n// Removed Stub for DiagnosticLogger.prototype.throwInternal.\r\n// Removed Stub for DiagnosticLogger.prototype.debugToConsole.\r\n// Removed Stub for DiagnosticLogger.prototype.warnToConsole.\r\n// Removed Stub for DiagnosticLogger.prototype.errorToConsole.\r\n// Removed Stub for DiagnosticLogger.prototype.resetInternalMessageCount.\r\n// Removed Stub for DiagnosticLogger.prototype.logInternalMessage.\r\n// Removed Stub for DiagnosticLogger.prototype.unload.\r\n // This is a workaround for an IE bug when using dynamicProto() with classes that don't have any\n // non-dynamic functions or static properties/functions when using uglify-js to minify the resulting code.\n DiagnosticLogger.__ieDyn=1;\n\n return DiagnosticLogger;\r\n}());\r\nexport { DiagnosticLogger };\r\nfunction _getLogger(logger) {\r\n return (logger || new DiagnosticLogger());\r\n}\r\n/**\r\n * This is a helper method which will call throwInternal on the passed logger, will throw exceptions in\r\n * debug mode or attempt to log the error as a console warning. This helper is provided mostly to better\r\n * support minification as logger.throwInternal() will not compress the publish \"throwInternal\" used throughout\r\n * the code.\r\n * @param logger - The Diagnostic Logger instance to use.\r\n * @param severity - {LoggingSeverity} - The severity of the log message\r\n * @param message - {_InternalLogMessage} - The log message.\r\n */\r\nexport function _throwInternal(logger, severity, msgId, msg, properties, isUserAct) {\r\n if (isUserAct === void 0) { isUserAct = false; }\r\n _getLogger(logger)[_DYN_THROW_INTERNAL /* @min:%2ethrowInternal */](severity, msgId, msg, properties, isUserAct);\r\n}\r\n/**\r\n * This is a helper method which will call warnToConsole on the passed logger with the provided message.\r\n * @param logger - The Diagnostic Logger instance to use.\r\n * @param message - {_InternalLogMessage} - The log message.\r\n */\r\nexport function _warnToConsole(logger, message) {\r\n _getLogger(logger)[_DYN_WARN_TO_CONSOLE /* @min:%2ewarnToConsole */](message);\r\n}\r\n/**\r\n * Logs a message to the internal queue.\r\n * @param logger - The Diagnostic Logger instance to use.\r\n * @param severity - {LoggingSeverity} - The severity of the log message\r\n * @param message - {_InternalLogMessage} - The message to log.\r\n */\r\nexport function _logInternalMessage(logger, severity, message) {\r\n _getLogger(logger)[_DYN_LOG_INTERNAL_MESSAGE /* @min:%2elogInternalMessage */](severity, message);\r\n}\r\n//# sourceMappingURL=DiagnosticLogger.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nvar _a, _b;\r\nimport { arrForEach, arrIndexOf, dumpObj, getDocument, getLazy, getNavigator, isArray, isFunction, isNullOrUndefined, isString, isTruthy, isUndefined, objForEachKey, strEndsWith, strIndexOf, strLeft, strSubstring, strTrim, utcNow } from \"@nevware21/ts-utils\";\r\nimport { cfgDfMerge } from \"../Config/ConfigDefaultHelpers\";\r\nimport { createDynamicConfig, onConfigChange } from \"../Config/DynamicConfig\";\r\nimport { _DYN_ENABLED, _DYN_LENGTH, _DYN_LOGGER, _DYN_PROTOCOL, _DYN_SET_DF, _DYN_SPLIT, _DYN_UNLOAD, _DYN_USER_AGENT } from \"../__DynamicConstants\";\r\nimport { _throwInternal } from \"./DiagnosticLogger\";\r\nimport { getLocation, isIE } from \"./EnvUtils\";\r\nimport { getExceptionName, isNotNullOrUndefined, setValue, strContains } from \"./HelperFuncs\";\r\nimport { STR_DOMAIN, STR_EMPTY, STR_PATH, UNDEFINED_VALUE } from \"./InternalConstants\";\r\nvar strToGMTString = \"toGMTString\";\r\nvar strToUTCString = \"toUTCString\";\r\nvar strCookie = \"cookie\";\r\nvar strExpires = \"expires\";\r\nvar strIsCookieUseDisabled = \"isCookieUseDisabled\";\r\nvar strDisableCookiesUsage = \"disableCookiesUsage\";\r\nvar strConfigCookieMgr = \"_ckMgr\";\r\nvar _supportsCookies = null;\r\nvar _allowUaSameSite = null;\r\nvar _parsedCookieValue = null;\r\nvar _doc;\r\nvar _cookieCache = {};\r\nvar _globalCookieConfig = {};\r\n// // `isCookieUseDisabled` is deprecated, so explicitly casting as a key of IConfiguration to avoid typing error\r\n// // when both isCookieUseDisabled and disableCookiesUsage are used disableCookiesUsage will take precedent, which is\r\n// // why its listed first\r\n/**\r\n * Set the supported dynamic config values as undefined (or an empty object) so that\r\n * any listeners will be informed of any changes.\r\n * Explicitly NOT including the deprecated `isCookieUseDisabled` as we don't want to support\r\n * the v1 deprecated field as dynamic for updates\r\n */\r\nvar rootDefaultConfig = (_a = {\r\n cookieCfg: cfgDfMerge((_b = {},\r\n _b[STR_DOMAIN] = { fb: \"cookieDomain\", dfVal: isNotNullOrUndefined },\r\n _b.path = { fb: \"cookiePath\", dfVal: isNotNullOrUndefined },\r\n _b.enabled = UNDEFINED_VALUE,\r\n _b.ignoreCookies = UNDEFINED_VALUE,\r\n _b.blockedCookies = UNDEFINED_VALUE,\r\n _b)),\r\n cookieDomain: UNDEFINED_VALUE,\r\n cookiePath: UNDEFINED_VALUE\r\n },\r\n _a[strDisableCookiesUsage] = UNDEFINED_VALUE,\r\n _a);\r\nfunction _getDoc() {\r\n !_doc && (_doc = getLazy(function () { return getDocument(); }));\r\n}\r\n/**\r\n * @ignore\r\n * DO NOT USE or export from the module, this is exposed as public to support backward compatibility of previous static utility methods only.\r\n * If you want to manager cookies either use the ICookieMgr available from the core instance via getCookieMgr() or create\r\n * your own instance of the CookieMgr and use that.\r\n * Using this directly for enabling / disabling cookie handling will not only affect your usage but EVERY user of cookies.\r\n * Example, if you are using a shared component that is also using Application Insights you will affect their cookie handling.\r\n * @param logger - The DiagnosticLogger to use for reporting errors.\r\n */\r\nfunction _gblCookieMgr(config, logger) {\r\n // Stash the global instance against the BaseCookieMgr class\r\n var inst = createCookieMgr[strConfigCookieMgr] || _globalCookieConfig[strConfigCookieMgr];\r\n if (!inst) {\r\n // Note: not using the getSetValue() helper as that would require always creating a temporary cookieMgr\r\n // that ultimately is never used\r\n inst = createCookieMgr[strConfigCookieMgr] = createCookieMgr(config, logger);\r\n _globalCookieConfig[strConfigCookieMgr] = inst;\r\n }\r\n return inst;\r\n}\r\nfunction _isMgrEnabled(cookieMgr) {\r\n if (cookieMgr) {\r\n return cookieMgr.isEnabled();\r\n }\r\n return true;\r\n}\r\nfunction _isIgnoredCookie(cookieMgrCfg, name) {\r\n if (name && cookieMgrCfg && isArray(cookieMgrCfg.ignoreCookies)) {\r\n return arrIndexOf(cookieMgrCfg.ignoreCookies, name) !== -1;\r\n }\r\n return false;\r\n}\r\nfunction _isBlockedCookie(cookieMgrCfg, name) {\r\n if (name && cookieMgrCfg && isArray(cookieMgrCfg.blockedCookies)) {\r\n if (arrIndexOf(cookieMgrCfg.blockedCookies, name) !== -1) {\r\n return true;\r\n }\r\n }\r\n return _isIgnoredCookie(cookieMgrCfg, name);\r\n}\r\nfunction _isCfgEnabled(rootConfig, cookieMgrConfig) {\r\n var isCfgEnabled = cookieMgrConfig[_DYN_ENABLED /* @min:%2eenabled */];\r\n if (isNullOrUndefined(isCfgEnabled)) {\r\n // Set the enabled from the provided setting or the legacy root values\r\n var cookieEnabled = void 0;\r\n // This field is deprecated and dynamic updates will not be fully supported\r\n if (!isUndefined(rootConfig[strIsCookieUseDisabled])) {\r\n cookieEnabled = !rootConfig[strIsCookieUseDisabled];\r\n }\r\n // If this value is defined it takes precedent over the above\r\n if (!isUndefined(rootConfig[strDisableCookiesUsage])) {\r\n cookieEnabled = !rootConfig[strDisableCookiesUsage];\r\n }\r\n // Not setting the cookieMgrConfig.enabled as that will update (set) the global dynamic config\r\n // So future \"updates\" then may not be as expected\r\n isCfgEnabled = cookieEnabled;\r\n }\r\n return isCfgEnabled;\r\n}\r\n/**\r\n * Helper to return the ICookieMgr from the core (if not null/undefined) or a default implementation\r\n * associated with the configuration or a legacy default.\r\n * @param core\r\n * @param config\r\n * @returns\r\n */\r\nexport function safeGetCookieMgr(core, config) {\r\n var cookieMgr;\r\n if (core) {\r\n // Always returns an instance\r\n cookieMgr = core.getCookieMgr();\r\n }\r\n else if (config) {\r\n var cookieCfg = config.cookieCfg;\r\n if (cookieCfg && cookieCfg[strConfigCookieMgr]) {\r\n cookieMgr = cookieCfg[strConfigCookieMgr];\r\n }\r\n else {\r\n cookieMgr = createCookieMgr(config);\r\n }\r\n }\r\n if (!cookieMgr) {\r\n // Get or initialize the default global (legacy) cookie manager if we couldn't find one\r\n cookieMgr = _gblCookieMgr(config, (core || {})[_DYN_LOGGER /* @min:%2elogger */]);\r\n }\r\n return cookieMgr;\r\n}\r\nexport function createCookieMgr(rootConfig, logger) {\r\n var _a;\r\n var cookieMgrConfig;\r\n var _path;\r\n var _domain;\r\n var unloadHandler;\r\n // Explicitly checking against false, so that setting to undefined will === true\r\n var _enabled;\r\n var _getCookieFn;\r\n var _setCookieFn;\r\n var _delCookieFn;\r\n // Make sure the root config is dynamic as it may be the global config\r\n rootConfig = createDynamicConfig(rootConfig || _globalCookieConfig, null, logger).cfg;\r\n // Will get recalled if the referenced configuration is changed\r\n unloadHandler = onConfigChange(rootConfig, function (details) {\r\n // Make sure the root config has all of the the defaults to the root config to ensure they are dynamic\r\n details[_DYN_SET_DF /* @min:%2esetDf */](details.cfg, rootDefaultConfig);\r\n // Create and apply the defaults to the cookieCfg element\r\n cookieMgrConfig = details.ref(details.cfg, \"cookieCfg\"); // details.setDf(details.cfg.cookieCfg, defaultConfig);\r\n _path = cookieMgrConfig[STR_PATH /* @min:%2epath */] || \"/\";\r\n _domain = cookieMgrConfig[STR_DOMAIN /* @min:%2edomain */];\r\n // Explicitly checking against false, so that setting to undefined will === true\r\n _enabled = _isCfgEnabled(rootConfig, cookieMgrConfig) !== false;\r\n _getCookieFn = cookieMgrConfig.getCookie || _getCookieValue;\r\n _setCookieFn = cookieMgrConfig.setCookie || _setCookieValue;\r\n _delCookieFn = cookieMgrConfig.delCookie || _setCookieValue;\r\n }, logger);\r\n var cookieMgr = (_a = {\r\n isEnabled: function () {\r\n var enabled = _isCfgEnabled(rootConfig, cookieMgrConfig) !== false && _enabled && areCookiesSupported(logger);\r\n // Using an indirect lookup for any global cookie manager to support tree shaking for SDK's\r\n // that don't use the \"applicationinsights-core\" version of the default cookie function\r\n var gblManager = _globalCookieConfig[strConfigCookieMgr];\r\n if (enabled && gblManager && cookieMgr !== gblManager) {\r\n // Make sure the GlobalCookie Manager instance (if not this instance) is also enabled.\r\n // As the global (deprecated) functions may have been called (for backward compatibility)\r\n enabled = _isMgrEnabled(gblManager);\r\n }\r\n return enabled;\r\n },\r\n setEnabled: function (value) {\r\n // Explicitly checking against false, so that setting to undefined will === true\r\n _enabled = value !== false;\r\n cookieMgrConfig[_DYN_ENABLED /* @min:%2eenabled */] = value;\r\n },\r\n set: function (name, value, maxAgeSec, domain, path) {\r\n var result = false;\r\n if (_isMgrEnabled(cookieMgr) && !_isBlockedCookie(cookieMgrConfig, name)) {\r\n var values = {};\r\n var theValue = strTrim(value || STR_EMPTY);\r\n var idx = strIndexOf(theValue, \";\");\r\n if (idx !== -1) {\r\n theValue = strTrim(strLeft(value, idx));\r\n values = _extractParts(strSubstring(value, idx + 1));\r\n }\r\n // Only update domain if not already present (isUndefined) and the value is truthy (not null, undefined or empty string)\r\n setValue(values, STR_DOMAIN, domain || _domain, isTruthy, isUndefined);\r\n if (!isNullOrUndefined(maxAgeSec)) {\r\n var _isIE = isIE();\r\n if (isUndefined(values[strExpires])) {\r\n var nowMs = utcNow();\r\n // Only add expires if not already present\r\n var expireMs = nowMs + (maxAgeSec * 1000);\r\n // Sanity check, if zero or -ve then ignore\r\n if (expireMs > 0) {\r\n var expiry = new Date();\r\n expiry.setTime(expireMs);\r\n setValue(values, strExpires, _formatDate(expiry, !_isIE ? strToUTCString : strToGMTString) || _formatDate(expiry, _isIE ? strToGMTString : strToUTCString) || STR_EMPTY, isTruthy);\r\n }\r\n }\r\n if (!_isIE) {\r\n // Only replace if not already present\r\n setValue(values, \"max-age\", STR_EMPTY + maxAgeSec, null, isUndefined);\r\n }\r\n }\r\n var location_1 = getLocation();\r\n if (location_1 && location_1[_DYN_PROTOCOL /* @min:%2eprotocol */] === \"https:\") {\r\n setValue(values, \"secure\", null, null, isUndefined);\r\n // Only set same site if not also secure\r\n if (_allowUaSameSite === null) {\r\n _allowUaSameSite = !uaDisallowsSameSiteNone((getNavigator() || {})[_DYN_USER_AGENT /* @min:%2euserAgent */]);\r\n }\r\n if (_allowUaSameSite) {\r\n setValue(values, \"SameSite\", \"None\", null, isUndefined);\r\n }\r\n }\r\n setValue(values, STR_PATH, path || _path, null, isUndefined);\r\n //let setCookieFn = cookieMgrConfig.setCookie || _setCookieValue;\r\n _setCookieFn(name, _formatCookieValue(theValue, values));\r\n result = true;\r\n }\r\n return result;\r\n },\r\n get: function (name) {\r\n var value = STR_EMPTY;\r\n if (_isMgrEnabled(cookieMgr) && !_isIgnoredCookie(cookieMgrConfig, name)) {\r\n value = _getCookieFn(name);\r\n }\r\n return value;\r\n },\r\n del: function (name, path) {\r\n var result = false;\r\n if (_isMgrEnabled(cookieMgr)) {\r\n // Only remove the cookie if the manager and cookie support has not been disabled\r\n result = cookieMgr.purge(name, path);\r\n }\r\n return result;\r\n },\r\n purge: function (name, path) {\r\n var _a;\r\n var result = false;\r\n if (areCookiesSupported(logger)) {\r\n // Setting the expiration date in the past immediately removes the cookie\r\n var values = (_a = {},\r\n _a[STR_PATH] = path ? path : \"/\",\r\n _a[strExpires] = \"Thu, 01 Jan 1970 00:00:01 GMT\",\r\n _a);\r\n if (!isIE()) {\r\n // Set max age to expire now\r\n values[\"max-age\"] = \"0\";\r\n }\r\n // let delCookie = cookieMgrConfig.delCookie || _setCookieValue;\r\n _delCookieFn(name, _formatCookieValue(STR_EMPTY, values));\r\n result = true;\r\n }\r\n return result;\r\n }\r\n },\r\n _a[_DYN_UNLOAD /* @min:unload */] = function (isAsync) {\r\n unloadHandler && unloadHandler.rm();\r\n unloadHandler = null;\r\n },\r\n _a);\r\n // Associated this cookie manager with the config\r\n cookieMgr[strConfigCookieMgr] = cookieMgr;\r\n return cookieMgr;\r\n}\r\n/*\r\n* Helper method to tell if document.cookie object is supported by the runtime\r\n*/\r\nexport function areCookiesSupported(logger) {\r\n if (_supportsCookies === null) {\r\n _supportsCookies = false;\r\n !_doc && _getDoc();\r\n try {\r\n var doc = _doc.v || {};\r\n _supportsCookies = doc[strCookie] !== undefined;\r\n }\r\n catch (e) {\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 68 /* _eInternalMessageId.CannotAccessCookie */, \"Cannot access document.cookie - \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n }\r\n return _supportsCookies;\r\n}\r\nfunction _extractParts(theValue) {\r\n var values = {};\r\n if (theValue && theValue[_DYN_LENGTH /* @min:%2elength */]) {\r\n var parts = strTrim(theValue)[_DYN_SPLIT /* @min:%2esplit */](\";\");\r\n arrForEach(parts, function (thePart) {\r\n thePart = strTrim(thePart || STR_EMPTY);\r\n if (thePart) {\r\n var idx = strIndexOf(thePart, \"=\");\r\n if (idx === -1) {\r\n values[thePart] = null;\r\n }\r\n else {\r\n values[strTrim(strLeft(thePart, idx))] = strTrim(strSubstring(thePart, idx + 1));\r\n }\r\n }\r\n });\r\n }\r\n return values;\r\n}\r\nfunction _formatDate(theDate, func) {\r\n if (isFunction(theDate[func])) {\r\n return theDate[func]();\r\n }\r\n return null;\r\n}\r\nfunction _formatCookieValue(value, values) {\r\n var cookieValue = value || STR_EMPTY;\r\n objForEachKey(values, function (name, theValue) {\r\n cookieValue += \"; \" + name + (!isNullOrUndefined(theValue) ? \"=\" + theValue : STR_EMPTY);\r\n });\r\n return cookieValue;\r\n}\r\nfunction _getCookieValue(name) {\r\n var cookieValue = STR_EMPTY;\r\n !_doc && _getDoc();\r\n if (_doc.v) {\r\n var theCookie = _doc.v[strCookie] || STR_EMPTY;\r\n if (_parsedCookieValue !== theCookie) {\r\n _cookieCache = _extractParts(theCookie);\r\n _parsedCookieValue = theCookie;\r\n }\r\n cookieValue = strTrim(_cookieCache[name] || STR_EMPTY);\r\n }\r\n return cookieValue;\r\n}\r\nfunction _setCookieValue(name, cookieValue) {\r\n !_doc && _getDoc();\r\n if (_doc.v) {\r\n _doc.v[strCookie] = name + \"=\" + cookieValue;\r\n }\r\n}\r\nexport function uaDisallowsSameSiteNone(userAgent) {\r\n if (!isString(userAgent)) {\r\n return false;\r\n }\r\n // Cover all iOS based browsers here. This includes:\r\n // - Safari on iOS 12 for iPhone, iPod Touch, iPad\r\n // - WkWebview on iOS 12 for iPhone, iPod Touch, iPad\r\n // - Chrome on iOS 12 for iPhone, iPod Touch, iPad\r\n // All of which are broken by SameSite=None, because they use the iOS networking stack\r\n if (strContains(userAgent, \"CPU iPhone OS 12\") || strContains(userAgent, \"iPad; CPU OS 12\")) {\r\n return true;\r\n }\r\n // Cover Mac OS X based browsers that use the Mac OS networking stack. This includes:\r\n // - Safari on Mac OS X\r\n // This does not include:\r\n // - Internal browser on Mac OS X\r\n // - Chrome on Mac OS X\r\n // - Chromium on Mac OS X\r\n // Because they do not use the Mac OS networking stack.\r\n if (strContains(userAgent, \"Macintosh; Intel Mac OS X 10_14\") && strContains(userAgent, \"Version/\") && strContains(userAgent, \"Safari\")) {\r\n return true;\r\n }\r\n // Cover Mac OS X internal browsers that use the Mac OS networking stack. This includes:\r\n // - Internal browser on Mac OS X\r\n // This does not include:\r\n // - Safari on Mac OS X\r\n // - Chrome on Mac OS X\r\n // - Chromium on Mac OS X\r\n // Because they do not use the Mac OS networking stack.\r\n if (strContains(userAgent, \"Macintosh; Intel Mac OS X 10_14\") && strEndsWith(userAgent, \"AppleWebKit/605.1.15 (KHTML, like Gecko)\")) {\r\n return true;\r\n }\r\n // Cover Chrome 50-69, because some versions are broken by SameSite=None, and none in this range require it.\r\n // Note: this covers some pre-Chromium Edge versions, but pre-Chromim Edge does not require SameSite=None, so this is fine.\r\n // Note: this regex applies to Windows, Mac OS X, and Linux, deliberately.\r\n if (strContains(userAgent, \"Chrome/5\") || strContains(userAgent, \"Chrome/6\")) {\r\n return true;\r\n }\r\n // Unreal Engine runs Chromium 59, but does not advertise as Chrome until 4.23. Treat versions of Unreal\r\n // that don't specify their Chrome version as lacking support for SameSite=None.\r\n if (strContains(userAgent, \"UnrealEngine\") && !strContains(userAgent, \"Chrome\")) {\r\n return true;\r\n }\r\n // UCBrowser < 12.13.2 ignores Set-Cookie headers with SameSite=None\r\n // NB: this rule isn't complete - you need regex to make a complete rule.\r\n // See: https://www.chromium.org/updates/same-site/incompatible-clients\r\n if (strContains(userAgent, \"UCBrowser/12\") || strContains(userAgent, \"UCBrowser/11\")) {\r\n return true;\r\n }\r\n return false;\r\n}\r\n//# sourceMappingURL=CookieMgr.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { createAllPromise, createPromise, doAwaitResponse } from \"@nevware21/ts-async\";\r\nimport { arrForEach, arrIndexOf, objDefine, safe, scheduleTimeout } from \"@nevware21/ts-utils\";\r\nimport { createDynamicConfig } from \"../Config/DynamicConfig\";\r\nimport { _DYN_ADD_NOTIFICATION_LIS1, _DYN_CANCEL, _DYN_DATA, _DYN_IS_ASYNC, _DYN_IS_CHILD_EVT, _DYN_LENGTH, _DYN_PUSH, _DYN_REMOVE_NOTIFICATION_0, _DYN_SPLICE, _DYN_UNLOAD, _DYN_WATCH } from \"../__DynamicConstants\";\r\nimport { STR_EVENTS_DISCARDED, STR_EVENTS_SEND_REQUEST, STR_EVENTS_SENT, STR_OFFLINE_DROP, STR_OFFLINE_SENT, STR_OFFLINE_STORE, STR_PERF_EVENT } from \"./InternalConstants\";\r\nvar defaultValues = {\r\n perfEvtsSendAll: false\r\n};\r\nfunction _runScheduledListeners(asyncNotifications) {\r\n asyncNotifications.h = null;\r\n var callbacks = asyncNotifications.cb;\r\n asyncNotifications.cb = [];\r\n arrForEach(callbacks, function (cb) {\r\n // Run the listener in a try-catch to ensure that a single listener failing doesn't prevent the others from running\r\n safe(cb.fn, [cb.arg]);\r\n });\r\n}\r\n// This function is used to combine the logic of running the listeners and handling the async notifications so that they don't\r\n// create multiple timers if there are multiple async listeners.\r\nfunction _runListeners(listeners, name, asyncNotifications, callback) {\r\n arrForEach(listeners, function (listener) {\r\n if (listener && listener[name]) {\r\n if (asyncNotifications) {\r\n // Schedule the callback to be called after the current call stack has cleared.\r\n asyncNotifications.cb[_DYN_PUSH /* @min:%2epush */]({\r\n fn: callback,\r\n arg: listener\r\n });\r\n asyncNotifications.h = asyncNotifications.h || scheduleTimeout(_runScheduledListeners, 0, asyncNotifications);\r\n }\r\n else {\r\n // Run the listener in a try-catch to ensure that a single listener failing doesn't prevent the others from running\r\n safe(callback, [listener]);\r\n }\r\n }\r\n });\r\n}\r\n/**\r\n * Class to manage sending notifications to all the listeners.\r\n */\r\nvar NotificationManager = /** @class */ (function () {\r\n function NotificationManager(config) {\r\n this.listeners = [];\r\n var perfEvtsSendAll;\r\n var unloadHandler;\r\n var _listeners = [];\r\n var _asyncNotifications = {\r\n h: null,\r\n cb: []\r\n };\r\n var cfgHandler = createDynamicConfig(config, defaultValues);\r\n unloadHandler = cfgHandler[_DYN_WATCH /* @min:%2ewatch */](function (details) {\r\n perfEvtsSendAll = !!details.cfg.perfEvtsSendAll;\r\n });\r\n dynamicProto(NotificationManager, this, function (_self) {\r\n objDefine(_self, \"listeners\", {\r\n g: function () { return _listeners; }\r\n });\r\n _self[_DYN_ADD_NOTIFICATION_LIS1 /* @min:%2eaddNotificationListener */] = function (listener) {\r\n _listeners[_DYN_PUSH /* @min:%2epush */](listener);\r\n };\r\n /**\r\n * Removes all instances of the listener.\r\n * @param listener - AWTNotificationListener to remove.\r\n */\r\n _self[_DYN_REMOVE_NOTIFICATION_0 /* @min:%2eremoveNotificationListener */] = function (listener) {\r\n var index = arrIndexOf(_listeners, listener);\r\n while (index > -1) {\r\n _listeners[_DYN_SPLICE /* @min:%2esplice */](index, 1);\r\n index = arrIndexOf(_listeners, listener);\r\n }\r\n };\r\n /**\r\n * Notification for events sent.\r\n * @param events - The array of events that have been sent.\r\n */\r\n _self[STR_EVENTS_SENT /* @min:%2eeventsSent */] = function (events) {\r\n _runListeners(_listeners, STR_EVENTS_SENT, _asyncNotifications, function (listener) {\r\n listener[STR_EVENTS_SENT /* @min:%2eeventsSent */](events);\r\n });\r\n };\r\n /**\r\n * Notification for events being discarded.\r\n * @param events - The array of events that have been discarded by the SDK.\r\n * @param reason - The reason for which the SDK discarded the events. The EventsDiscardedReason\r\n * constant should be used to check the different values.\r\n */\r\n _self[STR_EVENTS_DISCARDED /* @min:%2eeventsDiscarded */] = function (events, reason) {\r\n _runListeners(_listeners, STR_EVENTS_DISCARDED, _asyncNotifications, function (listener) {\r\n listener[STR_EVENTS_DISCARDED /* @min:%2eeventsDiscarded */](events, reason);\r\n });\r\n };\r\n /**\r\n * [Optional] A function called when the events have been requested to be sent to the sever.\r\n * @param sendReason - The reason why the event batch is being sent.\r\n * @param isAsync - A flag which identifies whether the requests are being sent in an async or sync manner.\r\n */\r\n _self[STR_EVENTS_SEND_REQUEST /* @min:%2eeventsSendRequest */] = function (sendReason, isAsync) {\r\n _runListeners(_listeners, STR_EVENTS_SEND_REQUEST, isAsync ? _asyncNotifications : null, function (listener) {\r\n listener[STR_EVENTS_SEND_REQUEST /* @min:%2eeventsSendRequest */](sendReason, isAsync);\r\n });\r\n };\r\n _self[STR_PERF_EVENT /* @min:%2eperfEvent */] = function (perfEvent) {\r\n if (perfEvent) {\r\n // Send all events or only parent events\r\n if (perfEvtsSendAll || !perfEvent[_DYN_IS_CHILD_EVT /* @min:%2eisChildEvt */]()) {\r\n _runListeners(_listeners, STR_PERF_EVENT, null, function (listener) {\r\n if (perfEvent[_DYN_IS_ASYNC /* @min:%2eisAsync */]) {\r\n scheduleTimeout(function () { return listener[STR_PERF_EVENT /* @min:%2eperfEvent */](perfEvent); }, 0);\r\n }\r\n else {\r\n listener[STR_PERF_EVENT /* @min:%2eperfEvent */](perfEvent);\r\n }\r\n });\r\n }\r\n }\r\n };\r\n _self[STR_OFFLINE_STORE /* @min:%2eofflineEventsStored */] = function (events) {\r\n if (events && events[_DYN_LENGTH /* @min:%2elength */]) {\r\n _runListeners(_listeners, STR_OFFLINE_STORE, _asyncNotifications, function (listener) {\r\n listener[STR_OFFLINE_STORE /* @min:%2eofflineEventsStored */](events);\r\n });\r\n }\r\n };\r\n _self[STR_OFFLINE_SENT /* @min:%2eofflineBatchSent */] = function (batch) {\r\n if (batch && batch[_DYN_DATA /* @min:%2edata */]) {\r\n _runListeners(_listeners, STR_OFFLINE_SENT, _asyncNotifications, function (listener) {\r\n listener[STR_OFFLINE_SENT /* @min:%2eofflineBatchSent */](batch);\r\n });\r\n }\r\n };\r\n _self[STR_OFFLINE_DROP /* @min:%2eofflineBatchDrop */] = function (cnt, reason) {\r\n if (cnt > 0) {\r\n var rn_1 = reason || 0; // default is unknown\r\n _runListeners(_listeners, STR_OFFLINE_DROP, _asyncNotifications, function (listener) {\r\n listener[STR_OFFLINE_DROP /* @min:%2eofflineBatchDrop */](cnt, rn_1);\r\n });\r\n }\r\n };\r\n _self[_DYN_UNLOAD /* @min:%2eunload */] = function (isAsync) {\r\n var _finishUnload = function () {\r\n unloadHandler && unloadHandler.rm();\r\n unloadHandler = null;\r\n _listeners = [];\r\n // Clear any async listener\r\n _asyncNotifications.h && _asyncNotifications.h[_DYN_CANCEL /* @min:%2ecancel */]();\r\n _asyncNotifications.h = null;\r\n _asyncNotifications.cb = [];\r\n };\r\n var waiting;\r\n _runListeners(_listeners, \"unload\", null, function (listener) {\r\n var asyncUnload = listener[_DYN_UNLOAD /* @min:%2eunload */](isAsync);\r\n if (asyncUnload) {\r\n if (!waiting) {\r\n waiting = [];\r\n }\r\n waiting[_DYN_PUSH /* @min:%2epush */](asyncUnload);\r\n }\r\n });\r\n if (waiting) {\r\n return createPromise(function (resolve) {\r\n return doAwaitResponse(createAllPromise(waiting), function () {\r\n _finishUnload();\r\n resolve();\r\n });\r\n });\r\n }\r\n else {\r\n _finishUnload();\r\n }\r\n };\r\n });\r\n }\r\n// Removed Stub for NotificationManager.prototype.addNotificationListener.\r\n// Removed Stub for NotificationManager.prototype.removeNotificationListener.\r\n// Removed Stub for NotificationManager.prototype.eventsSent.\r\n// Removed Stub for NotificationManager.prototype.eventsDiscarded.\r\n// Removed Stub for NotificationManager.prototype.eventsSendRequest.\r\n// Removed Stub for NotificationManager.prototype.perfEvent.\r\n// Removed Stub for NotificationManager.prototype.unload.\r\n// Removed Stub for NotificationManager.prototype.offlineEventsStored.\r\n// Removed Stub for NotificationManager.prototype.offlineBatchSent.\r\n// Removed Stub for NotificationManager.prototype.offlineBatchDrop.\r\n // This is a workaround for an IE bug when using dynamicProto() with classes that don't have any\n // non-dynamic functions or static properties/functions when using uglify-js to minify the resulting code.\n NotificationManager.__ieDyn=1;\n\n return NotificationManager;\r\n}());\r\nexport { NotificationManager };\r\n//# sourceMappingURL=NotificationManager.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { isArray, isFunction, objDefine, utcNow } from \"@nevware21/ts-utils\";\r\nimport { _DYN_COMPLETE, _DYN_GET_CTX, _DYN_IS_ASYNC, _DYN_IS_CHILD_EVT, _DYN_LENGTH, _DYN_NAME, _DYN_PUSH, _DYN_SET_CTX, _DYN_TIME } from \"../__DynamicConstants\";\r\nimport { STR_GET_PERF_MGR, STR_PERF_EVENT } from \"./InternalConstants\";\r\nvar strExecutionContextKey = \"ctx\";\r\nvar strParentContextKey = \"ParentContextKey\";\r\nvar strChildrenContextKey = \"ChildrenContextKey\";\r\nvar _defaultPerfManager = null;\r\nvar PerfEvent = /** @class */ (function () {\r\n function PerfEvent(name, payloadDetails, isAsync) {\r\n var _self = this;\r\n _self.start = utcNow();\r\n _self[_DYN_NAME /* @min:%2ename */] = name;\r\n _self[_DYN_IS_ASYNC /* @min:%2eisAsync */] = isAsync;\r\n _self[_DYN_IS_CHILD_EVT /* @min:%2eisChildEvt */] = function () { return false; };\r\n if (isFunction(payloadDetails)) {\r\n // Create an accessor to minimize the potential performance impact of executing the payloadDetails callback\r\n var theDetails_1;\r\n objDefine(_self, \"payload\", {\r\n g: function () {\r\n // Delay the execution of the payloadDetails until needed\r\n if (!theDetails_1 && isFunction(payloadDetails)) {\r\n theDetails_1 = payloadDetails();\r\n // clear it out now so the referenced objects can be garbage collected\r\n payloadDetails = null;\r\n }\r\n return theDetails_1;\r\n }\r\n });\r\n }\r\n _self[_DYN_GET_CTX /* @min:%2egetCtx */] = function (key) {\r\n if (key) {\r\n // The parent and child links are located directly on the object (for better viewing in the DebugPlugin)\r\n if (key === PerfEvent[strParentContextKey] || key === PerfEvent[strChildrenContextKey]) {\r\n return _self[key];\r\n }\r\n return (_self[strExecutionContextKey] || {})[key];\r\n }\r\n return null;\r\n };\r\n _self[_DYN_SET_CTX /* @min:%2esetCtx */] = function (key, value) {\r\n if (key) {\r\n // Put the parent and child links directly on the object (for better viewing in the DebugPlugin)\r\n if (key === PerfEvent[strParentContextKey]) {\r\n // Simple assumption, if we are setting a parent then we must be a child\r\n if (!_self[key]) {\r\n _self[_DYN_IS_CHILD_EVT /* @min:%2eisChildEvt */] = function () { return true; };\r\n }\r\n _self[key] = value;\r\n }\r\n else if (key === PerfEvent[strChildrenContextKey]) {\r\n _self[key] = value;\r\n }\r\n else {\r\n var ctx = _self[strExecutionContextKey] = _self[strExecutionContextKey] || {};\r\n ctx[key] = value;\r\n }\r\n }\r\n };\r\n _self[_DYN_COMPLETE /* @min:%2ecomplete */] = function () {\r\n var childTime = 0;\r\n var childEvts = _self[_DYN_GET_CTX /* @min:%2egetCtx */](PerfEvent[strChildrenContextKey]);\r\n if (isArray(childEvts)) {\r\n for (var lp = 0; lp < childEvts[_DYN_LENGTH /* @min:%2elength */]; lp++) {\r\n var childEvt = childEvts[lp];\r\n if (childEvt) {\r\n childTime += childEvt[_DYN_TIME /* @min:%2etime */];\r\n }\r\n }\r\n }\r\n _self[_DYN_TIME /* @min:%2etime */] = utcNow() - _self.start;\r\n _self.exTime = _self[_DYN_TIME /* @min:%2etime */] - childTime;\r\n _self[_DYN_COMPLETE /* @min:%2ecomplete */] = function () { };\r\n };\r\n }\r\n PerfEvent.ParentContextKey = \"parent\";\r\n PerfEvent.ChildrenContextKey = \"childEvts\";\r\n return PerfEvent;\r\n}());\r\nexport { PerfEvent };\r\nvar PerfManager = /** @class */ (function () {\r\n function PerfManager(manager) {\r\n /**\r\n * General bucket used for execution context set and retrieved via setCtx() and getCtx.\r\n * Defined as private so it can be visualized via the DebugPlugin\r\n */\r\n this.ctx = {};\r\n dynamicProto(PerfManager, this, function (_self) {\r\n _self.create = function (src, payloadDetails, isAsync) {\r\n // TODO (@MSNev): at some point we will want to add additional configuration to \"select\" which events to instrument\r\n // for now this is just a simple do everything.\r\n return new PerfEvent(src, payloadDetails, isAsync);\r\n };\r\n _self.fire = function (perfEvent) {\r\n if (perfEvent) {\r\n perfEvent[_DYN_COMPLETE /* @min:%2ecomplete */]();\r\n if (manager && isFunction(manager[STR_PERF_EVENT /* @min:%2eperfEvent */])) {\r\n manager[STR_PERF_EVENT /* @min:%2eperfEvent */](perfEvent);\r\n }\r\n }\r\n };\r\n _self[_DYN_SET_CTX /* @min:%2esetCtx */] = function (key, value) {\r\n if (key) {\r\n var ctx = _self[strExecutionContextKey] = _self[strExecutionContextKey] || {};\r\n ctx[key] = value;\r\n }\r\n };\r\n _self[_DYN_GET_CTX /* @min:%2egetCtx */] = function (key) {\r\n return (_self[strExecutionContextKey] || {})[key];\r\n };\r\n });\r\n }\r\n// Removed Stub for PerfManager.prototype.create.\r\n// Removed Stub for PerfManager.prototype.fire.\r\n// Removed Stub for PerfManager.prototype.setCtx.\r\n// Removed Stub for PerfManager.prototype.getCtx.\r\n // This is a workaround for an IE bug when using dynamicProto() with classes that don't have any\n // non-dynamic functions or static properties/functions when using uglify-js to minify the resulting code.\n PerfManager.__ieDyn=1;\n\n return PerfManager;\r\n}());\r\nexport { PerfManager };\r\nvar doPerfActiveKey = \"CoreUtils.doPerf\";\r\n/**\r\n * Helper function to wrap a function with a perf event\r\n * @param mgrSource - The Performance Manager or a Performance provider source (may be null)\r\n * @param getSource - The callback to create the source name for the event (if perf monitoring is enabled)\r\n * @param func - The function to call and measure\r\n * @param details - A function to return the payload details\r\n * @param isAsync - Is the event / function being call asynchronously or synchronously\r\n */\r\nexport function doPerf(mgrSource, getSource, func, details, isAsync) {\r\n if (mgrSource) {\r\n var perfMgr = mgrSource;\r\n if (perfMgr[STR_GET_PERF_MGR]) {\r\n // Looks like a perf manager provider object\r\n perfMgr = perfMgr[STR_GET_PERF_MGR]();\r\n }\r\n if (perfMgr) {\r\n var perfEvt = void 0;\r\n var currentActive = perfMgr[_DYN_GET_CTX /* @min:%2egetCtx */](doPerfActiveKey);\r\n try {\r\n perfEvt = perfMgr.create(getSource(), details, isAsync);\r\n if (perfEvt) {\r\n if (currentActive && perfEvt[_DYN_SET_CTX /* @min:%2esetCtx */]) {\r\n perfEvt[_DYN_SET_CTX /* @min:%2esetCtx */](PerfEvent[strParentContextKey], currentActive);\r\n if (currentActive[_DYN_GET_CTX /* @min:%2egetCtx */] && currentActive[_DYN_SET_CTX /* @min:%2esetCtx */]) {\r\n var children = currentActive[_DYN_GET_CTX /* @min:%2egetCtx */](PerfEvent[strChildrenContextKey]);\r\n if (!children) {\r\n children = [];\r\n currentActive[_DYN_SET_CTX /* @min:%2esetCtx */](PerfEvent[strChildrenContextKey], children);\r\n }\r\n children[_DYN_PUSH /* @min:%2epush */](perfEvt);\r\n }\r\n }\r\n // Set this event as the active event now\r\n perfMgr[_DYN_SET_CTX /* @min:%2esetCtx */](doPerfActiveKey, perfEvt);\r\n return func(perfEvt);\r\n }\r\n }\r\n catch (ex) {\r\n if (perfEvt && perfEvt[_DYN_SET_CTX /* @min:%2esetCtx */]) {\r\n perfEvt[_DYN_SET_CTX /* @min:%2esetCtx */](\"exception\", ex);\r\n }\r\n }\r\n finally {\r\n // fire the perf event\r\n if (perfEvt) {\r\n perfMgr.fire(perfEvt);\r\n }\r\n // Reset the active event to the previous value\r\n perfMgr[_DYN_SET_CTX /* @min:%2esetCtx */](doPerfActiveKey, currentActive);\r\n }\r\n }\r\n }\r\n return func();\r\n}\r\n/**\r\n * Set the global performance manager to use when there is no core instance or it has not been initialized yet.\r\n * @param perfManager - The IPerfManager instance to use when no performance manager is supplied.\r\n */\r\nexport function setGblPerfMgr(perfManager) {\r\n _defaultPerfManager = perfManager;\r\n}\r\n/**\r\n * Get the current global performance manager that will be used with no performance manager is supplied.\r\n * @returns - The current default manager\r\n */\r\nexport function getGblPerfMgr() {\r\n return _defaultPerfManager;\r\n}\r\n//# sourceMappingURL=PerfManager.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n\"use strict\";\r\nimport { strShimUndefined } from \"@microsoft/applicationinsights-shims\";\r\nimport { strSubstr, strSubstring } from \"@nevware21/ts-utils\";\r\nimport { _DYN_LENGTH } from \"../__DynamicConstants\";\r\nimport { STR_EMPTY } from \"./InternalConstants\";\r\nimport { random32 } from \"./RandomHelper\";\r\n// Added to help with minfication\r\nexport var Undefined = strShimUndefined;\r\nexport function newGuid() {\r\n var uuid = generateW3CId();\r\n return strSubstring(uuid, 0, 8) + \"-\" + strSubstring(uuid, 8, 12) + \"-\" + strSubstring(uuid, 12, 16) + \"-\" + strSubstring(uuid, 16, 20) + \"-\" + strSubstring(uuid, 20);\r\n}\r\n/**\r\n * The strEndsWith() method determines whether a string ends with the characters of a specified string, returning true or false as appropriate.\r\n * @param value - The value to check whether it ends with the search value.\r\n * @param search - The characters to be searched for at the end of the value.\r\n * @returns true if the given search value is found at the end of the string, otherwise false.\r\n */\r\nexport function strEndsWith(value, search) {\r\n if (value && search) {\r\n var len = value[_DYN_LENGTH /* @min:%2elength */];\r\n var start = len - search[_DYN_LENGTH /* @min:%2elength */];\r\n return strSubstring(value, start >= 0 ? start : 0, len) === search;\r\n }\r\n return false;\r\n}\r\n/**\r\n * generate W3C trace id\r\n */\r\nexport function generateW3CId() {\r\n var hexValues = [\"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\", \"a\", \"b\", \"c\", \"d\", \"e\", \"f\"];\r\n // rfc4122 version 4 UUID without dashes and with lowercase letters\r\n var oct = STR_EMPTY, tmp;\r\n for (var a = 0; a < 4; a++) {\r\n tmp = random32();\r\n oct +=\r\n hexValues[tmp & 0xF] +\r\n hexValues[tmp >> 4 & 0xF] +\r\n hexValues[tmp >> 8 & 0xF] +\r\n hexValues[tmp >> 12 & 0xF] +\r\n hexValues[tmp >> 16 & 0xF] +\r\n hexValues[tmp >> 20 & 0xF] +\r\n hexValues[tmp >> 24 & 0xF] +\r\n hexValues[tmp >> 28 & 0xF];\r\n }\r\n // \"Set the two most significant bits (bits 6 and 7) of the clock_seq_hi_and_reserved to zero and one, respectively\"\r\n var clockSequenceHi = hexValues[8 + (random32() & 0x03) | 0];\r\n return strSubstr(oct, 0, 8) + strSubstr(oct, 9, 4) + \"4\" + strSubstr(oct, 13, 3) + clockSequenceHi + strSubstr(oct, 16, 3) + strSubstr(oct, 19, 12);\r\n}\r\n//# sourceMappingURL=CoreUtils.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nimport { arrForEach, isArray, isString, strLeft, strTrim } from \"@nevware21/ts-utils\";\r\nimport { _DYN_GET_ATTRIBUTE, _DYN_LENGTH, _DYN_PUSH, _DYN_SPAN_ID, _DYN_SPLIT, _DYN_TO_LOWER_CASE, _DYN_TRACE_FLAGS, _DYN_TRACE_ID, _DYN_VERSION } from \"../__DynamicConstants\";\r\nimport { generateW3CId } from \"./CoreUtils\";\r\nimport { findMetaTag, findNamedServerTiming } from \"./EnvUtils\";\r\nimport { STR_EMPTY } from \"./InternalConstants\";\r\n// using {0,16} for leading and trailing whitespace just to constrain the possible runtime of a random string\r\nvar TRACE_PARENT_REGEX = /^([\\da-f]{2})-([\\da-f]{32})-([\\da-f]{16})-([\\da-f]{2})(-[^\\s]{1,64})?$/i;\r\nvar DEFAULT_VERSION = \"00\";\r\nvar INVALID_VERSION = \"ff\";\r\nvar INVALID_TRACE_ID = \"00000000000000000000000000000000\";\r\nvar INVALID_SPAN_ID = \"0000000000000000\";\r\nvar SAMPLED_FLAG = 0x01;\r\nfunction _isValid(value, len, invalidValue) {\r\n if (value && value[_DYN_LENGTH /* @min:%2elength */] === len && value !== invalidValue) {\r\n return !!value.match(/^[\\da-f]*$/i);\r\n }\r\n return false;\r\n}\r\nfunction _formatValue(value, len, defValue) {\r\n if (_isValid(value, len)) {\r\n return value;\r\n }\r\n return defValue;\r\n}\r\nfunction _formatFlags(value) {\r\n if (isNaN(value) || value < 0 || value > 255) {\r\n value = 0x01;\r\n }\r\n var result = value.toString(16);\r\n while (result[_DYN_LENGTH /* @min:%2elength */] < 2) {\r\n result = \"0\" + result;\r\n }\r\n return result;\r\n}\r\n/**\r\n * Create a new ITraceParent instance using the provided values.\r\n * @param traceId - The traceId to use, when invalid a new random W3C id will be generated.\r\n * @param spanId - The parent/span id to use, a new random value will be generated if it is invalid.\r\n * @param flags - The traceFlags to use, defaults to zero (0) if not supplied or invalid\r\n * @param version - The version to used, defaults to version \"01\" if not supplied or invalid.\r\n * @returns\r\n */\r\nexport function createTraceParent(traceId, spanId, flags, version) {\r\n var _a;\r\n return _a = {},\r\n _a[_DYN_VERSION /* @min:version */] = _isValid(version, 2, INVALID_VERSION) ? version : DEFAULT_VERSION,\r\n _a[_DYN_TRACE_ID /* @min:traceId */] = isValidTraceId(traceId) ? traceId : generateW3CId(),\r\n _a[_DYN_SPAN_ID /* @min:spanId */] = isValidSpanId(spanId) ? spanId : strLeft(generateW3CId(), 16),\r\n _a.traceFlags = flags >= 0 && flags <= 0xFF ? flags : 1,\r\n _a;\r\n}\r\n/**\r\n * Attempt to parse the provided string as a W3C TraceParent header value (https://www.w3.org/TR/trace-context/#traceparent-header)\r\n *\r\n * @param value - The value to be parsed\r\n * @param selectIdx - If the found value is comma separated which is the preferred entry to select, defaults to the first\r\n * @returns\r\n */\r\nexport function parseTraceParent(value, selectIdx) {\r\n var _a;\r\n if (!value) {\r\n // Don't pass a null/undefined or empty string\r\n return null;\r\n }\r\n if (isArray(value)) {\r\n // The value may have been encoded on the page into an array so handle this automatically\r\n value = value[0] || \"\";\r\n }\r\n if (!value || !isString(value) || value[_DYN_LENGTH /* @min:%2elength */] > 8192) {\r\n // limit potential processing based on total length\r\n return null;\r\n }\r\n if (value.indexOf(\",\") !== -1) {\r\n var values = value[_DYN_SPLIT /* @min:%2esplit */](\",\");\r\n value = values[selectIdx > 0 && values[_DYN_LENGTH /* @min:%2elength */] > selectIdx ? selectIdx : 0];\r\n }\r\n // See https://www.w3.org/TR/trace-context/#versioning-of-traceparent\r\n var match = TRACE_PARENT_REGEX.exec(strTrim(value));\r\n if (!match || // No match\r\n match[1] === INVALID_VERSION || // version ff is forbidden\r\n match[2] === INVALID_TRACE_ID || // All zeros is considered to be invalid\r\n match[3] === INVALID_SPAN_ID) { // All zeros is considered to be invalid\r\n return null;\r\n }\r\n return _a = {\r\n version: (match[1] || STR_EMPTY)[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */](),\r\n traceId: (match[2] || STR_EMPTY)[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */](),\r\n spanId: (match[3] || STR_EMPTY)[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]()\r\n },\r\n _a[_DYN_TRACE_FLAGS /* @min:traceFlags */] = parseInt(match[4], 16),\r\n _a;\r\n}\r\n/**\r\n * Is the provided W3c Trace Id a valid string representation, it must be a 32-character string\r\n * of lowercase hexadecimal characters for example, 4bf92f3577b34da6a3ce929d0e0e4736.\r\n * If all characters as zero (00000000000000000000000000000000) it will be considered an invalid value.\r\n * @param value - The W3c trace Id to be validated\r\n * @returns true if valid otherwise false\r\n */\r\nexport function isValidTraceId(value) {\r\n return _isValid(value, 32, INVALID_TRACE_ID);\r\n}\r\n/**\r\n * Is the provided W3c span id (aka. parent id) a valid string representation, it must be a 16-character\r\n * string of lowercase hexadecimal characters, for example, 00f067aa0ba902b7.\r\n * If all characters are zero (0000000000000000) this is considered an invalid value.\r\n * @param value - The W3c span id to be validated\r\n * @returns true if valid otherwise false\r\n */\r\nexport function isValidSpanId(value) {\r\n return _isValid(value, 16, INVALID_SPAN_ID);\r\n}\r\n/**\r\n * Validates that the provided ITraceParent instance conforms to the currently supported specifications\r\n * @param value\r\n * @returns\r\n */\r\nexport function isValidTraceParent(value) {\r\n if (!value ||\r\n !_isValid(value[_DYN_VERSION /* @min:%2eversion */], 2, INVALID_VERSION) ||\r\n !_isValid(value[_DYN_TRACE_ID /* @min:%2etraceId */], 32, INVALID_TRACE_ID) ||\r\n !_isValid(value[_DYN_SPAN_ID /* @min:%2espanId */], 16, INVALID_SPAN_ID) ||\r\n !_isValid(_formatFlags(value[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */]), 2)) {\r\n // Each known field must contain a valid value\r\n return false;\r\n }\r\n return true;\r\n}\r\n/**\r\n * Is the parsed traceParent indicating that the trace is currently sampled.\r\n * @param value - The parsed traceParent value\r\n * @returns\r\n */\r\nexport function isSampledFlag(value) {\r\n if (isValidTraceParent(value)) {\r\n return (value[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */] & SAMPLED_FLAG) === SAMPLED_FLAG;\r\n }\r\n return false;\r\n}\r\n/**\r\n * Format the ITraceParent value as a string using the supported and know version formats.\r\n * So even if the passed traceParent is a later version the string value returned from this\r\n * function will convert it to only the known version formats.\r\n * This currently only supports version \"00\" and invalid \"ff\"\r\n * @param value - The parsed traceParent value\r\n * @returns\r\n */\r\nexport function formatTraceParent(value) {\r\n if (value) {\r\n // Special Note: This only supports formatting as version 00, future versions should encode any known supported version\r\n // So parsing a future version will populate the correct version value but reformatting will reduce it to version 00.\r\n var flags = _formatFlags(value[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */]);\r\n if (!_isValid(flags, 2)) {\r\n flags = \"01\";\r\n }\r\n var version = value[_DYN_VERSION /* @min:%2eversion */] || DEFAULT_VERSION;\r\n if (version !== \"00\" && version !== \"ff\") {\r\n // Reduce version to \"00\"\r\n version = DEFAULT_VERSION;\r\n }\r\n // Format as version 00\r\n return \"\".concat(version.toLowerCase(), \"-\").concat(_formatValue(value.traceId, 32, INVALID_TRACE_ID).toLowerCase(), \"-\").concat(_formatValue(value.spanId, 16, INVALID_SPAN_ID).toLowerCase(), \"-\").concat(flags.toLowerCase());\r\n }\r\n return \"\";\r\n}\r\n/**\r\n * Helper function to fetch the passed traceparent from the page, looking for it as a meta-tag or a Server-Timing header.\r\n * @param selectIdx - If the found value is comma separated which is the preferred entry to select, defaults to the first\r\n * @returns\r\n */\r\nexport function findW3cTraceParent(selectIdx) {\r\n var name = \"traceparent\";\r\n var traceParent = parseTraceParent(findMetaTag(name), selectIdx);\r\n if (!traceParent) {\r\n traceParent = parseTraceParent(findNamedServerTiming(name), selectIdx);\r\n }\r\n return traceParent;\r\n}\r\n/**\r\n * Find all script tags in the provided document and return the information about them.\r\n * @param doc\r\n * @returns\r\n */\r\nexport function findAllScripts(doc) {\r\n var scripts = doc.getElementsByTagName(\"script\");\r\n var result = [];\r\n arrForEach(scripts, function (script) {\r\n var src = script[_DYN_GET_ATTRIBUTE /* @min:%2egetAttribute */](\"src\");\r\n if (src) {\r\n var crossOrigin = script[_DYN_GET_ATTRIBUTE /* @min:%2egetAttribute */](\"crossorigin\");\r\n var async = script.hasAttribute(\"async\") === true;\r\n var defer = script.hasAttribute(\"defer\") === true;\r\n var referrerPolicy = script[_DYN_GET_ATTRIBUTE /* @min:%2egetAttribute */](\"referrerpolicy\");\r\n var info = { url: src };\r\n if (crossOrigin) {\r\n info.crossOrigin = crossOrigin;\r\n }\r\n if (async) {\r\n info.async = async;\r\n }\r\n if (defer) {\r\n info.defer = defer;\r\n }\r\n if (referrerPolicy) {\r\n info.referrerPolicy = referrerPolicy;\r\n }\r\n result[_DYN_PUSH /* @min:%2epush */](info);\r\n }\r\n });\r\n return result;\r\n}\r\n//# sourceMappingURL=W3cTraceParent.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n\"use strict\";\r\nimport { arrForEach, isFunction } from \"@nevware21/ts-utils\";\r\nimport { _DYN_GET_NEXT, _DYN_GET_PLUGIN, _DYN_INITIALIZE, _DYN_IS_INITIALIZED, _DYN_LENGTH, _DYN_NAME, _DYN_PUSH, _DYN_SET_NEXT_PLUGIN, _DYN_SPAN_ID, _DYN_TEARDOWN, _DYN_TRACE_FLAGS, _DYN_TRACE_ID, _DYN__DO_TEARDOWN } from \"../__DynamicConstants\";\r\nimport { createElmNodeData } from \"./DataCacheHelper\";\r\nimport { STR_CORE, STR_PRIORITY, STR_PROCESS_TELEMETRY } from \"./InternalConstants\";\r\nimport { isValidSpanId, isValidTraceId } from \"./W3cTraceParent\";\r\nvar pluginStateData = createElmNodeData(\"plugin\");\r\nexport function _getPluginState(plugin) {\r\n return pluginStateData.get(plugin, \"state\", {}, true);\r\n}\r\n/**\r\n * Initialize the queue of plugins\r\n * @param plugins - The array of plugins to initialize and setting of the next plugin\r\n * @param config - The current config for the instance\r\n * @param core - THe current core instance\r\n * @param extensions - The extensions\r\n */\r\nexport function initializePlugins(processContext, extensions) {\r\n // Set the next plugin and identified the uninitialized plugins\r\n var initPlugins = [];\r\n var lastPlugin = null;\r\n var proxy = processContext[_DYN_GET_NEXT /* @min:%2egetNext */]();\r\n var pluginState;\r\n while (proxy) {\r\n var thePlugin = proxy[_DYN_GET_PLUGIN /* @min:%2egetPlugin */]();\r\n if (thePlugin) {\r\n if (lastPlugin && lastPlugin[_DYN_SET_NEXT_PLUGIN /* @min:%2esetNextPlugin */] && thePlugin[STR_PROCESS_TELEMETRY /* @min:%2eprocessTelemetry */]) {\r\n // Set this plugin as the next for the previous one\r\n lastPlugin[_DYN_SET_NEXT_PLUGIN /* @min:%2esetNextPlugin */](thePlugin);\r\n }\r\n pluginState = _getPluginState(thePlugin);\r\n var isInitialized = !!pluginState[_DYN_IS_INITIALIZED /* @min:%2eisInitialized */];\r\n if (thePlugin[_DYN_IS_INITIALIZED /* @min:%2eisInitialized */]) {\r\n isInitialized = thePlugin[_DYN_IS_INITIALIZED /* @min:%2eisInitialized */]();\r\n }\r\n if (!isInitialized) {\r\n initPlugins[_DYN_PUSH /* @min:%2epush */](thePlugin);\r\n }\r\n lastPlugin = thePlugin;\r\n proxy = proxy[_DYN_GET_NEXT /* @min:%2egetNext */]();\r\n }\r\n }\r\n // Now initialize the plugins\r\n arrForEach(initPlugins, function (thePlugin) {\r\n var core = processContext[STR_CORE /* @min:%2ecore */]();\r\n thePlugin[_DYN_INITIALIZE /* @min:%2einitialize */](processContext.getCfg(), core, extensions, processContext[_DYN_GET_NEXT /* @min:%2egetNext */]());\r\n pluginState = _getPluginState(thePlugin);\r\n // Only add the core to the state if the plugin didn't set it (doesn't extend from BaseTelemetryPlugin)\r\n if (!thePlugin[STR_CORE] && !pluginState[STR_CORE]) {\r\n pluginState[STR_CORE] = core;\r\n }\r\n pluginState[_DYN_IS_INITIALIZED /* @min:%2eisInitialized */] = true;\r\n delete pluginState[_DYN_TEARDOWN /* @min:%2eteardown */];\r\n });\r\n}\r\nexport function sortPlugins(plugins) {\r\n // Sort by priority\r\n return plugins.sort(function (extA, extB) {\r\n var result = 0;\r\n if (extB) {\r\n var bHasProcess = extB[STR_PROCESS_TELEMETRY];\r\n if (extA[STR_PROCESS_TELEMETRY]) {\r\n result = bHasProcess ? extA[STR_PRIORITY] - extB[STR_PRIORITY] : 1;\r\n }\r\n else if (bHasProcess) {\r\n result = -1;\r\n }\r\n }\r\n else {\r\n result = extA ? 1 : -1;\r\n }\r\n return result;\r\n });\r\n // sort complete\r\n}\r\n/**\r\n * Teardown / Unload helper to perform teardown/unloading operations for the provided components synchronously or asynchronously, this will call any\r\n * _doTeardown() or _doUnload() functions on the provided components to allow them to finish removal.\r\n * @param components - The components you want to unload\r\n * @param unloadCtx - This is the context that should be used during unloading.\r\n * @param unloadState - The details / state of the unload process, it holds details like whether it should be unloaded synchronously or asynchronously and the reason for the unload.\r\n * @param asyncCallback - An optional callback that the plugin must call if it returns true to inform the caller that it has completed any async unload/teardown operations.\r\n * @returns boolean - true if the plugin has or will call asyncCallback, this allows the plugin to perform any asynchronous operations.\r\n */\r\nexport function unloadComponents(components, unloadCtx, unloadState, asyncCallback) {\r\n var idx = 0;\r\n function _doUnload() {\r\n while (idx < components[_DYN_LENGTH /* @min:%2elength */]) {\r\n var component = components[idx++];\r\n if (component) {\r\n var func = component._doUnload || component[_DYN__DO_TEARDOWN /* @min:%2e_doTeardown */];\r\n if (isFunction(func)) {\r\n if (func.call(component, unloadCtx, unloadState, _doUnload) === true) {\r\n return true;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n return _doUnload();\r\n}\r\n/**\r\n * Creates a IDistributedTraceContext which optionally also \"sets\" the value on a parent\r\n * @param parentCtx - An optional parent distributed trace instance\r\n * @returns A new IDistributedTraceContext instance that uses an internal temporary object\r\n */\r\nexport function createDistributedTraceContext(parentCtx) {\r\n var trace = {};\r\n return {\r\n getName: function () {\r\n return trace[_DYN_NAME /* @min:%2ename */];\r\n },\r\n setName: function (newValue) {\r\n parentCtx && parentCtx.setName(newValue);\r\n trace[_DYN_NAME /* @min:%2ename */] = newValue;\r\n },\r\n getTraceId: function () {\r\n return trace[_DYN_TRACE_ID /* @min:%2etraceId */];\r\n },\r\n setTraceId: function (newValue) {\r\n parentCtx && parentCtx.setTraceId(newValue);\r\n if (isValidTraceId(newValue)) {\r\n trace[_DYN_TRACE_ID /* @min:%2etraceId */] = newValue;\r\n }\r\n },\r\n getSpanId: function () {\r\n return trace[_DYN_SPAN_ID /* @min:%2espanId */];\r\n },\r\n setSpanId: function (newValue) {\r\n parentCtx && parentCtx.setSpanId(newValue);\r\n if (isValidSpanId(newValue)) {\r\n trace[_DYN_SPAN_ID /* @min:%2espanId */] = newValue;\r\n }\r\n },\r\n getTraceFlags: function () {\r\n return trace[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */];\r\n },\r\n setTraceFlags: function (newTraceFlags) {\r\n parentCtx && parentCtx.setTraceFlags(newTraceFlags);\r\n trace[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */] = newTraceFlags;\r\n }\r\n };\r\n}\r\n//# sourceMappingURL=TelemetryHelpers.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n\"use strict\";\r\nimport { arrForEach, dumpObj, isArray, isFunction, isNullOrUndefined, isUndefined, objForEachKey, objFreeze, objKeys } from \"@nevware21/ts-utils\";\r\nimport { _applyDefaultValue } from \"../Config/ConfigDefaults\";\r\nimport { createDynamicConfig } from \"../Config/DynamicConfig\";\r\nimport { _DYN_CREATE_NEW, _DYN_DIAG_LOG, _DYN_GET_NEXT, _DYN_GET_PLUGIN, _DYN_IDENTIFIER, _DYN_IS_ASYNC, _DYN_IS_INITIALIZED, _DYN_LENGTH, _DYN_LOGGER, _DYN_PROCESS_NEXT, _DYN_PUSH, _DYN_SET_DF, _DYN_SET_NEXT_PLUGIN, _DYN_TEARDOWN, _DYN_UNLOAD, _DYN_UPDATE } from \"../__DynamicConstants\";\r\nimport { _throwInternal, safeGetLogger } from \"./DiagnosticLogger\";\r\nimport { proxyFunctions } from \"./HelperFuncs\";\r\nimport { STR_CORE, STR_DISABLED, STR_EMPTY, STR_EXTENSION_CONFIG, STR_PRIORITY, STR_PROCESS_TELEMETRY } from \"./InternalConstants\";\r\nimport { doPerf } from \"./PerfManager\";\r\nimport { _getPluginState } from \"./TelemetryHelpers\";\r\nvar strTelemetryPluginChain = \"TelemetryPluginChain\";\r\nvar strHasRunFlags = \"_hasRun\";\r\nvar strGetTelCtx = \"_getTelCtx\";\r\nvar _chainId = 0;\r\nfunction _getNextProxyStart(proxy, core, startAt) {\r\n while (proxy) {\r\n if (proxy[_DYN_GET_PLUGIN /* @min:%2egetPlugin */]() === startAt) {\r\n return proxy;\r\n }\r\n proxy = proxy[_DYN_GET_NEXT /* @min:%2egetNext */]();\r\n }\r\n // This wasn't found in the existing chain so create an isolated one with just this plugin\r\n return createTelemetryProxyChain([startAt], core.config || {}, core);\r\n}\r\n/**\r\n * @ignore\r\n * @param telemetryChain\r\n * @param dynamicHandler\r\n * @param core\r\n * @param startAt - Identifies the next plugin to execute, if null there is no \"next\" plugin and if undefined it should assume the start of the chain\r\n * @returns\r\n */\r\nfunction _createInternalContext(telemetryChain, dynamicHandler, core, startAt) {\r\n // We have a special case where we want to start execution from this specific plugin\r\n // or we simply reuse the existing telemetry plugin chain (normal execution case)\r\n var _nextProxy = null; // By Default set as no next plugin\r\n var _onComplete = [];\r\n if (!dynamicHandler) {\r\n dynamicHandler = createDynamicConfig({}, null, core[_DYN_LOGGER /* @min:%2elogger */]);\r\n }\r\n if (startAt !== null) {\r\n // There is no next element (null) vs not defined (undefined) so use the full chain\r\n _nextProxy = startAt ? _getNextProxyStart(telemetryChain, core, startAt) : telemetryChain;\r\n }\r\n var context = {\r\n _next: _moveNext,\r\n ctx: {\r\n core: function () {\r\n return core;\r\n },\r\n diagLog: function () {\r\n return safeGetLogger(core, dynamicHandler.cfg);\r\n },\r\n getCfg: function () {\r\n return dynamicHandler.cfg;\r\n },\r\n getExtCfg: _resolveExtCfg,\r\n getConfig: _getConfig,\r\n hasNext: function () {\r\n return !!_nextProxy;\r\n },\r\n getNext: function () {\r\n return _nextProxy;\r\n },\r\n setNext: function (nextPlugin) {\r\n _nextProxy = nextPlugin;\r\n },\r\n iterate: _iterateChain,\r\n onComplete: _addOnComplete\r\n }\r\n };\r\n function _addOnComplete(onComplete, that) {\r\n var args = [];\r\n for (var _i = 2; _i < arguments.length; _i++) {\r\n args[_i - 2] = arguments[_i];\r\n }\r\n if (onComplete) {\r\n _onComplete[_DYN_PUSH /* @min:%2epush */]({\r\n func: onComplete,\r\n self: !isUndefined(that) ? that : context.ctx,\r\n args: args\r\n });\r\n }\r\n }\r\n function _moveNext() {\r\n var nextProxy = _nextProxy;\r\n // Automatically move to the next plugin\r\n _nextProxy = nextProxy ? nextProxy[_DYN_GET_NEXT /* @min:%2egetNext */]() : null;\r\n if (!nextProxy) {\r\n var onComplete = _onComplete;\r\n if (onComplete && onComplete[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n arrForEach(onComplete, function (completeDetails) {\r\n try {\r\n completeDetails.func.call(completeDetails.self, completeDetails.args);\r\n }\r\n catch (e) {\r\n _throwInternal(core[_DYN_LOGGER /* @min:%2elogger */], 2 /* eLoggingSeverity.WARNING */, 73 /* _eInternalMessageId.PluginException */, \"Unexpected Exception during onComplete - \" + dumpObj(e));\r\n }\r\n });\r\n _onComplete = [];\r\n }\r\n }\r\n return nextProxy;\r\n }\r\n function _getExtCfg(identifier, createIfMissing) {\r\n var idCfg = null;\r\n var cfg = dynamicHandler.cfg;\r\n if (cfg && identifier) {\r\n var extCfg = cfg[STR_EXTENSION_CONFIG /* @min:%2eextensionConfig */];\r\n if (!extCfg && createIfMissing) {\r\n extCfg = {};\r\n }\r\n // Always set the value so that the property always exists\r\n cfg[STR_EXTENSION_CONFIG] = extCfg; // Note: it is valid for the \"value\" to be undefined\r\n // Calling `ref()` has a side effect of causing the referenced property to become dynamic (if not already)\r\n extCfg = dynamicHandler.ref(cfg, STR_EXTENSION_CONFIG);\r\n if (extCfg) {\r\n idCfg = extCfg[identifier];\r\n if (!idCfg && createIfMissing) {\r\n idCfg = {};\r\n }\r\n // Always set the value so that the property always exists\r\n extCfg[identifier] = idCfg; // Note: it is valid for the \"value\" to be undefined\r\n // Calling `ref()` has a side effect of causing the referenced property to become dynamic (if not already)\r\n idCfg = dynamicHandler.ref(extCfg, identifier);\r\n }\r\n }\r\n return idCfg;\r\n }\r\n function _resolveExtCfg(identifier, defaultValues) {\r\n var newConfig = _getExtCfg(identifier, true);\r\n if (defaultValues) {\r\n // Enumerate over the defaultValues and if not already populated attempt to\r\n // find a value from the root config or use the default value\r\n objForEachKey(defaultValues, function (field, defaultValue) {\r\n // for each unspecified field, set the default value\r\n if (isNullOrUndefined(newConfig[field])) {\r\n var cfgValue = dynamicHandler.cfg[field];\r\n if (cfgValue || !isNullOrUndefined(cfgValue)) {\r\n newConfig[field] = cfgValue;\r\n }\r\n }\r\n _applyDefaultValue(dynamicHandler, newConfig, field, defaultValue);\r\n });\r\n }\r\n return dynamicHandler[_DYN_SET_DF /* @min:%2esetDf */](newConfig, defaultValues);\r\n }\r\n function _getConfig(identifier, field, defaultValue) {\r\n if (defaultValue === void 0) { defaultValue = false; }\r\n var theValue;\r\n var extConfig = _getExtCfg(identifier, false);\r\n var rootConfig = dynamicHandler.cfg;\r\n if (extConfig && (extConfig[field] || !isNullOrUndefined(extConfig[field]))) {\r\n theValue = extConfig[field];\r\n }\r\n else if (rootConfig[field] || !isNullOrUndefined(rootConfig[field])) {\r\n theValue = rootConfig[field];\r\n }\r\n return (theValue || !isNullOrUndefined(theValue)) ? theValue : defaultValue;\r\n }\r\n function _iterateChain(cb) {\r\n // Keep processing until we reach the end of the chain\r\n var nextPlugin;\r\n while (!!(nextPlugin = context._next())) {\r\n var plugin = nextPlugin[_DYN_GET_PLUGIN /* @min:%2egetPlugin */]();\r\n if (plugin) {\r\n // callback with the current on\r\n cb(plugin);\r\n }\r\n }\r\n }\r\n return context;\r\n}\r\n/**\r\n * Creates a new Telemetry Item context with the current config, core and plugin execution chain\r\n * @param plugins - The plugin instances that will be executed\r\n * @param config - The current config\r\n * @param core - The current core instance\r\n * @param startAt - Identifies the next plugin to execute, if null there is no \"next\" plugin and if undefined it should assume the start of the chain\r\n */\r\nexport function createProcessTelemetryContext(telemetryChain, cfg, core, startAt) {\r\n var config = createDynamicConfig(cfg);\r\n var internalContext = _createInternalContext(telemetryChain, config, core, startAt);\r\n var context = internalContext.ctx;\r\n function _processNext(env) {\r\n var nextPlugin = internalContext._next();\r\n if (nextPlugin) {\r\n // Run the next plugin which will call \"processNext()\"\r\n nextPlugin[STR_PROCESS_TELEMETRY /* @min:%2eprocessTelemetry */](env, context);\r\n }\r\n return !nextPlugin;\r\n }\r\n function _createNew(plugins, startAt) {\r\n if (plugins === void 0) { plugins = null; }\r\n if (isArray(plugins)) {\r\n plugins = createTelemetryProxyChain(plugins, config.cfg, core, startAt);\r\n }\r\n return createProcessTelemetryContext(plugins || context[_DYN_GET_NEXT /* @min:%2egetNext */](), config.cfg, core, startAt);\r\n }\r\n context[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */] = _processNext;\r\n context[_DYN_CREATE_NEW /* @min:%2ecreateNew */] = _createNew;\r\n return context;\r\n}\r\n/**\r\n * Creates a new Telemetry Item context with the current config, core and plugin execution chain for handling the unloading of the chain\r\n * @param plugins - The plugin instances that will be executed\r\n * @param config - The current config\r\n * @param core - The current core instance\r\n * @param startAt - Identifies the next plugin to execute, if null there is no \"next\" plugin and if undefined it should assume the start of the chain\r\n */\r\nexport function createProcessTelemetryUnloadContext(telemetryChain, core, startAt) {\r\n var config = createDynamicConfig(core.config);\r\n var internalContext = _createInternalContext(telemetryChain, config, core, startAt);\r\n var context = internalContext.ctx;\r\n function _processNext(unloadState) {\r\n var nextPlugin = internalContext._next();\r\n nextPlugin && nextPlugin[_DYN_UNLOAD /* @min:%2eunload */](context, unloadState);\r\n return !nextPlugin;\r\n }\r\n function _createNew(plugins, startAt) {\r\n if (plugins === void 0) { plugins = null; }\r\n if (isArray(plugins)) {\r\n plugins = createTelemetryProxyChain(plugins, config.cfg, core, startAt);\r\n }\r\n return createProcessTelemetryUnloadContext(plugins || context[_DYN_GET_NEXT /* @min:%2egetNext */](), core, startAt);\r\n }\r\n context[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */] = _processNext;\r\n context[_DYN_CREATE_NEW /* @min:%2ecreateNew */] = _createNew;\r\n return context;\r\n}\r\n/**\r\n * Creates a new Telemetry Item context with the current config, core and plugin execution chain for updating the configuration\r\n * @param plugins - The plugin instances that will be executed\r\n * @param config - The current config\r\n * @param core - The current core instance\r\n * @param startAt - Identifies the next plugin to execute, if null there is no \"next\" plugin and if undefined it should assume the start of the chain\r\n */\r\nexport function createProcessTelemetryUpdateContext(telemetryChain, core, startAt) {\r\n var config = createDynamicConfig(core.config);\r\n var internalContext = _createInternalContext(telemetryChain, config, core, startAt);\r\n var context = internalContext.ctx;\r\n function _processNext(updateState) {\r\n return context.iterate(function (plugin) {\r\n if (isFunction(plugin[_DYN_UPDATE /* @min:%2eupdate */])) {\r\n plugin[_DYN_UPDATE /* @min:%2eupdate */](context, updateState);\r\n }\r\n });\r\n }\r\n function _createNew(plugins, startAt) {\r\n if (plugins === void 0) { plugins = null; }\r\n if (isArray(plugins)) {\r\n plugins = createTelemetryProxyChain(plugins, config.cfg, core, startAt);\r\n }\r\n return createProcessTelemetryUpdateContext(plugins || context[_DYN_GET_NEXT /* @min:%2egetNext */](), core, startAt);\r\n }\r\n context[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */] = _processNext;\r\n context[_DYN_CREATE_NEW /* @min:%2ecreateNew */] = _createNew;\r\n return context;\r\n}\r\n/**\r\n * Creates an execution chain from the array of plugins\r\n * @param plugins - The array of plugins that will be executed in this order\r\n * @param defItemCtx - The default execution context to use when no telemetry context is passed to processTelemetry(), this\r\n * should be for legacy plugins only. Currently, only used for passing the current core instance and to provide better error\r\n * reporting (hasRun) when errors occur.\r\n */\r\nexport function createTelemetryProxyChain(plugins, config, core, startAt) {\r\n var firstProxy = null;\r\n var add = startAt ? false : true;\r\n if (isArray(plugins) && plugins[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n // Create the proxies and wire up the next plugin chain\r\n var lastProxy_1 = null;\r\n arrForEach(plugins, function (thePlugin) {\r\n if (!add && startAt === thePlugin) {\r\n add = true;\r\n }\r\n if (add && thePlugin && isFunction(thePlugin[STR_PROCESS_TELEMETRY /* @min:%2eprocessTelemetry */])) {\r\n // Only add plugins that are processors\r\n var newProxy = createTelemetryPluginProxy(thePlugin, config, core);\r\n if (!firstProxy) {\r\n firstProxy = newProxy;\r\n }\r\n if (lastProxy_1) {\r\n // Set this new proxy as the next for the previous one\r\n lastProxy_1._setNext(newProxy);\r\n }\r\n lastProxy_1 = newProxy;\r\n }\r\n });\r\n }\r\n if (startAt && !firstProxy) {\r\n // Special case where the \"startAt\" was not in the original list of plugins\r\n return createTelemetryProxyChain([startAt], config, core);\r\n }\r\n return firstProxy;\r\n}\r\n/**\r\n * Create the processing telemetry proxy instance, the proxy is used to abstract the current plugin to allow monitoring and\r\n * execution plugins while passing around the dynamic execution state (IProcessTelemetryContext), the proxy instance no longer\r\n * contains any execution state and can be reused between requests (this was not the case for 2.7.2 and earlier with the\r\n * TelemetryPluginChain class).\r\n * @param plugin - The plugin instance to proxy\r\n * @param config - The default execution context to use when no telemetry context is passed to processTelemetry(), this\r\n * should be for legacy plugins only. Currently, only used for passing the current core instance and to provide better error\r\n * reporting (hasRun) when errors occur.\r\n * @returns\r\n */\r\nexport function createTelemetryPluginProxy(plugin, config, core) {\r\n var nextProxy = null;\r\n var hasProcessTelemetry = isFunction(plugin[STR_PROCESS_TELEMETRY /* @min:%2eprocessTelemetry */]);\r\n var hasSetNext = isFunction(plugin[_DYN_SET_NEXT_PLUGIN /* @min:%2esetNextPlugin */]);\r\n var chainId;\r\n if (plugin) {\r\n chainId = plugin[_DYN_IDENTIFIER /* @min:%2eidentifier */] + \"-\" + plugin[STR_PRIORITY /* @min:%2epriority */] + \"-\" + _chainId++;\r\n }\r\n else {\r\n chainId = \"Unknown-0-\" + _chainId++;\r\n }\r\n var proxyChain = {\r\n getPlugin: function () {\r\n return plugin;\r\n },\r\n getNext: function () {\r\n return nextProxy;\r\n },\r\n processTelemetry: _processTelemetry,\r\n unload: _unloadPlugin,\r\n update: _updatePlugin,\r\n _id: chainId,\r\n _setNext: function (nextPlugin) {\r\n nextProxy = nextPlugin;\r\n }\r\n };\r\n function _getTelCtx() {\r\n var itemCtx;\r\n // Looks like a plugin didn't pass the (optional) context, so create a new one\r\n if (plugin && isFunction(plugin[strGetTelCtx])) {\r\n // This plugin extends from the BaseTelemetryPlugin so lets use it\r\n itemCtx = plugin[strGetTelCtx]();\r\n }\r\n if (!itemCtx) {\r\n // Create a temporary one\r\n itemCtx = createProcessTelemetryContext(proxyChain, config, core);\r\n }\r\n return itemCtx;\r\n }\r\n function _processChain(itemCtx, processPluginFn, name, details, isAsync) {\r\n var hasRun = false;\r\n var identifier = plugin ? plugin[_DYN_IDENTIFIER /* @min:%2eidentifier */] : strTelemetryPluginChain;\r\n var hasRunContext = itemCtx[strHasRunFlags];\r\n if (!hasRunContext) {\r\n // Assign and populate\r\n hasRunContext = itemCtx[strHasRunFlags] = {};\r\n }\r\n // Ensure that we keep the context in sync\r\n itemCtx.setNext(nextProxy);\r\n if (plugin) {\r\n doPerf(itemCtx[STR_CORE /* @min:%2ecore */](), function () { return identifier + \":\" + name; }, function () {\r\n // Mark this component as having run\r\n hasRunContext[chainId] = true;\r\n try {\r\n // Set a flag on the next plugin so we know if it was attempted to be executed\r\n var nextId = nextProxy ? nextProxy._id : STR_EMPTY;\r\n if (nextId) {\r\n hasRunContext[nextId] = false;\r\n }\r\n hasRun = processPluginFn(itemCtx);\r\n }\r\n catch (error) {\r\n var hasNextRun = nextProxy ? hasRunContext[nextProxy._id] : true;\r\n if (hasNextRun) {\r\n // The next plugin after us has already run so set this one as complete\r\n hasRun = true;\r\n }\r\n if (!nextProxy || !hasNextRun) {\r\n // Either we have no next plugin or the current one did not attempt to call the next plugin\r\n // Which means the current one is the root of the failure so log/report this failure\r\n _throwInternal(itemCtx[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 1 /* eLoggingSeverity.CRITICAL */, 73 /* _eInternalMessageId.PluginException */, \"Plugin [\" + identifier + \"] failed during \" + name + \" - \" + dumpObj(error) + \", run flags: \" + dumpObj(hasRunContext));\r\n }\r\n }\r\n }, details, isAsync);\r\n }\r\n return hasRun;\r\n }\r\n function _processTelemetry(env, itemCtx) {\r\n itemCtx = itemCtx || _getTelCtx();\r\n function _callProcessTelemetry(itemCtx) {\r\n if (!plugin || !hasProcessTelemetry) {\r\n return false;\r\n }\r\n var pluginState = _getPluginState(plugin);\r\n if (pluginState[_DYN_TEARDOWN /* @min:%2eteardown */] || pluginState[STR_DISABLED]) {\r\n return false;\r\n }\r\n // Ensure that we keep the context in sync (for processNext()), just in case a plugin\r\n // doesn't calls processTelemetry() instead of itemContext.processNext() or some\r\n // other form of error occurred\r\n if (hasSetNext) {\r\n // Backward compatibility setting the next plugin on the instance\r\n plugin[_DYN_SET_NEXT_PLUGIN /* @min:%2esetNextPlugin */](nextProxy);\r\n }\r\n plugin[STR_PROCESS_TELEMETRY /* @min:%2eprocessTelemetry */](env, itemCtx);\r\n // Process Telemetry is expected to call itemCtx.processNext() or nextPlugin.processTelemetry()\r\n return true;\r\n }\r\n if (!_processChain(itemCtx, _callProcessTelemetry, \"processTelemetry\", function () { return ({ item: env }); }, !(env.sync))) {\r\n // The underlying plugin is either not defined, not enabled or does not have a processTelemetry implementation\r\n // so we still want the next plugin to be executed.\r\n itemCtx[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */](env);\r\n }\r\n }\r\n function _unloadPlugin(unloadCtx, unloadState) {\r\n function _callTeardown() {\r\n // Setting default of hasRun as false so the proxyProcessFn() is called as teardown() doesn't have to exist or call unloadNext().\r\n var hasRun = false;\r\n if (plugin) {\r\n var pluginState = _getPluginState(plugin);\r\n var pluginCore = plugin[STR_CORE] || pluginState[STR_CORE /* @min:%2ecore */];\r\n // Only teardown the plugin if it was initialized by the current core (i.e. It's not a shared plugin)\r\n if (plugin && (!pluginCore || pluginCore === unloadCtx.core()) && !pluginState[_DYN_TEARDOWN /* @min:%2eteardown */]) {\r\n // Handle plugins that don't extend from the BaseTelemetryPlugin\r\n pluginState[STR_CORE /* @min:%2ecore */] = null;\r\n pluginState[_DYN_TEARDOWN /* @min:%2eteardown */] = true;\r\n pluginState[_DYN_IS_INITIALIZED /* @min:%2eisInitialized */] = false;\r\n if (plugin[_DYN_TEARDOWN /* @min:%2eteardown */] && plugin[_DYN_TEARDOWN /* @min:%2eteardown */](unloadCtx, unloadState) === true) {\r\n // plugin told us that it was going to (or has) call unloadCtx.processNext()\r\n hasRun = true;\r\n }\r\n }\r\n }\r\n return hasRun;\r\n }\r\n if (!_processChain(unloadCtx, _callTeardown, \"unload\", function () { }, unloadState[_DYN_IS_ASYNC /* @min:%2eisAsync */])) {\r\n // Only called if we hasRun was not true\r\n unloadCtx[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */](unloadState);\r\n }\r\n }\r\n function _updatePlugin(updateCtx, updateState) {\r\n function _callUpdate() {\r\n // Setting default of hasRun as false so the proxyProcessFn() is called as teardown() doesn't have to exist or call unloadNext().\r\n var hasRun = false;\r\n if (plugin) {\r\n var pluginState = _getPluginState(plugin);\r\n var pluginCore = plugin[STR_CORE] || pluginState[STR_CORE /* @min:%2ecore */];\r\n // Only update the plugin if it was initialized by the current core (i.e. It's not a shared plugin)\r\n if (plugin && (!pluginCore || pluginCore === updateCtx.core()) && !pluginState[_DYN_TEARDOWN /* @min:%2eteardown */]) {\r\n if (plugin[_DYN_UPDATE /* @min:%2eupdate */] && plugin[_DYN_UPDATE /* @min:%2eupdate */](updateCtx, updateState) === true) {\r\n // plugin told us that it was going to (or has) call unloadCtx.processNext()\r\n hasRun = true;\r\n }\r\n }\r\n }\r\n return hasRun;\r\n }\r\n if (!_processChain(updateCtx, _callUpdate, \"update\", function () { }, false)) {\r\n // Only called if we hasRun was not true\r\n updateCtx[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */](updateState);\r\n }\r\n }\r\n return objFreeze(proxyChain);\r\n}\r\n/**\r\n * This class will be removed!\r\n * @deprecated use createProcessTelemetryContext() instead\r\n */\r\nvar ProcessTelemetryContext = /** @class */ (function () {\r\n /**\r\n * Creates a new Telemetry Item context with the current config, core and plugin execution chain\r\n * @param plugins - The plugin instances that will be executed\r\n * @param config - The current config\r\n * @param core - The current core instance\r\n */\r\n function ProcessTelemetryContext(pluginChain, config, core, startAt) {\r\n var _self = this;\r\n var context = createProcessTelemetryContext(pluginChain, config, core, startAt);\r\n // Proxy all functions of the context to this object\r\n proxyFunctions(_self, context, objKeys(context));\r\n }\r\n return ProcessTelemetryContext;\r\n}());\r\nexport { ProcessTelemetryContext };\r\n//# sourceMappingURL=ProcessTelemetryContext.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { arrForEach, dumpObj } from \"@nevware21/ts-utils\";\r\nimport { _DYN_DIAG_LOG, _DYN_PUSH } from \"../__DynamicConstants\";\r\nimport { _throwInternal } from \"./DiagnosticLogger\";\r\nexport function createUnloadHandlerContainer() {\r\n var handlers = [];\r\n function _addHandler(handler) {\r\n if (handler) {\r\n handlers[_DYN_PUSH /* @min:%2epush */](handler);\r\n }\r\n }\r\n function _runHandlers(unloadCtx, unloadState) {\r\n arrForEach(handlers, function (handler) {\r\n try {\r\n handler(unloadCtx, unloadState);\r\n }\r\n catch (e) {\r\n _throwInternal(unloadCtx[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 2 /* eLoggingSeverity.WARNING */, 73 /* _eInternalMessageId.PluginException */, \"Unexpected error calling unload handler - \" + dumpObj(e));\r\n }\r\n });\r\n handlers = [];\r\n }\r\n return {\r\n add: _addHandler,\r\n run: _runHandlers\r\n };\r\n}\r\n//# sourceMappingURL=UnloadHandlerContainer.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { arrAppend, arrForEach, dumpObj } from \"@nevware21/ts-utils\";\r\nimport { _DYN_LENGTH } from \"../__DynamicConstants\";\r\nimport { _throwInternal } from \"./DiagnosticLogger\";\r\nvar _maxHooks;\r\nvar _hookAddMonitor;\r\n/**\r\n * Test hook for setting the maximum number of unload hooks and calling a monitor function when the hooks are added or removed\r\n * This allows for automatic test failure when the maximum number of unload hooks is exceeded\r\n * @param maxHooks - The maximum number of unload hooks\r\n * @param addMonitor - The monitor function to call when hooks are added or removed\r\n */\r\nexport function _testHookMaxUnloadHooksCb(maxHooks, addMonitor) {\r\n _maxHooks = maxHooks;\r\n _hookAddMonitor = addMonitor;\r\n}\r\n/**\r\n * Create a IUnloadHookContainer which can be used to remember unload hook functions to be executed during the component unloading\r\n * process.\r\n * @returns A new IUnloadHookContainer instance\r\n */\r\nexport function createUnloadHookContainer() {\r\n var _hooks = [];\r\n function _doUnload(logger) {\r\n var oldHooks = _hooks;\r\n _hooks = [];\r\n // Remove all registered unload hooks\r\n arrForEach(oldHooks, function (fn) {\r\n // allow either rm or remove callback function\r\n try {\r\n (fn.rm || fn.remove).call(fn);\r\n }\r\n catch (e) {\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 73 /* _eInternalMessageId.PluginException */, \"Unloading:\" + dumpObj(e));\r\n }\r\n });\r\n if (_maxHooks && oldHooks[_DYN_LENGTH /* @min:%2elength */] > _maxHooks) {\r\n _hookAddMonitor ? _hookAddMonitor(\"doUnload\", oldHooks) : _throwInternal(null, 1 /* eLoggingSeverity.CRITICAL */, 48 /* _eInternalMessageId.MaxUnloadHookExceeded */, \"Max unload hooks exceeded. An excessive number of unload hooks has been detected.\");\r\n }\r\n }\r\n function _addHook(hooks) {\r\n if (hooks) {\r\n arrAppend(_hooks, hooks);\r\n if (_maxHooks && _hooks[_DYN_LENGTH /* @min:%2elength */] > _maxHooks) {\r\n _hookAddMonitor ? _hookAddMonitor(\"Add\", _hooks) : _throwInternal(null, 1 /* eLoggingSeverity.CRITICAL */, 48 /* _eInternalMessageId.MaxUnloadHookExceeded */, \"Max unload hooks exceeded. An excessive number of unload hooks has been detected.\");\r\n }\r\n }\r\n }\r\n return {\r\n run: _doUnload,\r\n add: _addHook\r\n };\r\n}\r\n//# sourceMappingURL=UnloadHookContainer.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n\"use strict\";\r\nvar _a;\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { isFunction, objDefine } from \"@nevware21/ts-utils\";\r\nimport { createDynamicConfig } from \"../Config/DynamicConfig\";\r\nimport { _DYN_CREATE_NEW, _DYN_DIAG_LOG, _DYN_GET_NEXT, _DYN_GET_PROCESS_TEL_CONT2, _DYN_INITIALIZE, _DYN_IS_ASYNC, _DYN_IS_INITIALIZED, _DYN_PROCESS_NEXT, _DYN_SET_NEXT_PLUGIN, _DYN_TEARDOWN, _DYN_UPDATE, _DYN__DO_TEARDOWN } from \"../__DynamicConstants\";\r\nimport { safeGetLogger } from \"./DiagnosticLogger\";\r\nimport { isNotNullOrUndefined, proxyFunctionAs } from \"./HelperFuncs\";\r\nimport { STR_CORE, STR_EXTENSION_CONFIG, STR_PROCESS_TELEMETRY } from \"./InternalConstants\";\r\nimport { createProcessTelemetryContext, createProcessTelemetryUnloadContext, createProcessTelemetryUpdateContext } from \"./ProcessTelemetryContext\";\r\nimport { createUnloadHandlerContainer } from \"./UnloadHandlerContainer\";\r\nimport { createUnloadHookContainer } from \"./UnloadHookContainer\";\r\nvar strGetPlugin = \"getPlugin\";\r\nvar defaultValues = (_a = {},\r\n _a[STR_EXTENSION_CONFIG] = { isVal: isNotNullOrUndefined, v: {} },\r\n _a);\r\n/**\r\n * BaseTelemetryPlugin provides a basic implementation of the ITelemetryPlugin interface so that plugins\r\n * can avoid implementation the same set of boiler plate code as well as provide a base\r\n * implementation so that new default implementations can be added without breaking all plugins.\r\n */\r\nvar BaseTelemetryPlugin = /** @class */ (function () {\r\n function BaseTelemetryPlugin() {\r\n var _self = this; // Setting _self here as it's used outside of the dynamicProto as well\r\n // NOTE!: DON'T set default values here, instead set them in the _initDefaults() function as it is also called during teardown()\r\n var _isinitialized;\r\n var _rootCtx; // Used as the root context, holding the current config and initialized core\r\n var _nextPlugin; // Used for backward compatibility where plugins don't call the main pipeline\r\n var _unloadHandlerContainer;\r\n var _hookContainer;\r\n _initDefaults();\r\n dynamicProto(BaseTelemetryPlugin, _self, function (_self) {\r\n _self[_DYN_INITIALIZE /* @min:%2einitialize */] = function (config, core, extensions, pluginChain) {\r\n _setDefaults(config, core, pluginChain);\r\n _isinitialized = true;\r\n };\r\n _self[_DYN_TEARDOWN /* @min:%2eteardown */] = function (unloadCtx, unloadState) {\r\n var _a;\r\n // If this plugin has already been torn down (not operational) or is not initialized (core is not set)\r\n // or the core being used for unload was not the same core used for initialization.\r\n var core = _self[STR_CORE /* @min:%2ecore */];\r\n if (!core || (unloadCtx && core !== unloadCtx[STR_CORE /* @min:%2ecore */]())) {\r\n // Do Nothing as either the plugin is not initialized or was not initialized by the current core\r\n return;\r\n }\r\n var result;\r\n var unloadDone = false;\r\n var theUnloadCtx = unloadCtx || createProcessTelemetryUnloadContext(null, core, _nextPlugin && _nextPlugin[strGetPlugin] ? _nextPlugin[strGetPlugin]() : _nextPlugin);\r\n var theUnloadState = unloadState || (_a = {\r\n reason: 0 /* TelemetryUnloadReason.ManualTeardown */\r\n },\r\n _a[_DYN_IS_ASYNC /* @min:isAsync */] = false,\r\n _a);\r\n function _unloadCallback() {\r\n if (!unloadDone) {\r\n unloadDone = true;\r\n _unloadHandlerContainer.run(theUnloadCtx, unloadState);\r\n _hookContainer.run(theUnloadCtx[_DYN_DIAG_LOG /* @min:%2ediagLog */]());\r\n if (result === true) {\r\n theUnloadCtx[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */](theUnloadState);\r\n }\r\n _initDefaults();\r\n }\r\n }\r\n if (!_self[_DYN__DO_TEARDOWN /* @min:%2e_doTeardown */] || _self[_DYN__DO_TEARDOWN /* @min:%2e_doTeardown */](theUnloadCtx, theUnloadState, _unloadCallback) !== true) {\r\n _unloadCallback();\r\n }\r\n else {\r\n // Tell the caller that we will be calling processNext()\r\n result = true;\r\n }\r\n return result;\r\n };\r\n _self[_DYN_UPDATE /* @min:%2eupdate */] = function (updateCtx, updateState) {\r\n // If this plugin has already been torn down (not operational) or is not initialized (core is not set)\r\n // or the core being used for unload was not the same core used for initialization.\r\n var core = _self[STR_CORE /* @min:%2ecore */];\r\n if (!core || (updateCtx && core !== updateCtx[STR_CORE /* @min:%2ecore */]())) {\r\n // Do Nothing\r\n return;\r\n }\r\n var result;\r\n var updateDone = false;\r\n var theUpdateCtx = updateCtx || createProcessTelemetryUpdateContext(null, core, _nextPlugin && _nextPlugin[strGetPlugin] ? _nextPlugin[strGetPlugin]() : _nextPlugin);\r\n var theUpdateState = updateState || {\r\n reason: 0 /* TelemetryUpdateReason.Unknown */\r\n };\r\n function _updateCallback() {\r\n if (!updateDone) {\r\n updateDone = true;\r\n _setDefaults(theUpdateCtx.getCfg(), theUpdateCtx.core(), theUpdateCtx[_DYN_GET_NEXT /* @min:%2egetNext */]());\r\n }\r\n }\r\n if (!_self._doUpdate || _self._doUpdate(theUpdateCtx, theUpdateState, _updateCallback) !== true) {\r\n _updateCallback();\r\n }\r\n else {\r\n result = true;\r\n }\r\n return result;\r\n };\r\n proxyFunctionAs(_self, \"_addUnloadCb\", function () { return _unloadHandlerContainer; }, \"add\");\r\n proxyFunctionAs(_self, \"_addHook\", function () { return _hookContainer; }, \"add\");\r\n objDefine(_self, \"_unloadHooks\", { g: function () { return _hookContainer; } });\r\n });\r\n // These are added after the dynamicProto so that are not moved to the prototype\r\n _self[_DYN_DIAG_LOG /* @min:%2ediagLog */] = function (itemCtx) {\r\n return _getTelCtx(itemCtx)[_DYN_DIAG_LOG /* @min:%2ediagLog */]();\r\n };\r\n _self[_DYN_IS_INITIALIZED /* @min:%2eisInitialized */] = function () {\r\n return _isinitialized;\r\n };\r\n _self.setInitialized = function (isInitialized) {\r\n _isinitialized = isInitialized;\r\n };\r\n // _self.getNextPlugin = () => DO NOT IMPLEMENT\r\n // Sub-classes of this base class *should* not be relying on this value and instead\r\n // should use processNext() function. If you require access to the plugin use the\r\n // IProcessTelemetryContext.getNext().getPlugin() while in the pipeline, Note getNext() may return null.\r\n _self[_DYN_SET_NEXT_PLUGIN /* @min:%2esetNextPlugin */] = function (next) {\r\n _nextPlugin = next;\r\n };\r\n _self[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */] = function (env, itemCtx) {\r\n if (itemCtx) {\r\n // Normal core execution sequence\r\n itemCtx[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */](env);\r\n }\r\n else if (_nextPlugin && isFunction(_nextPlugin[STR_PROCESS_TELEMETRY /* @min:%2eprocessTelemetry */])) {\r\n // Looks like backward compatibility or out of band processing. And as it looks\r\n // like a ITelemetryPlugin or ITelemetryPluginChain, just call processTelemetry\r\n _nextPlugin[STR_PROCESS_TELEMETRY /* @min:%2eprocessTelemetry */](env, null);\r\n }\r\n };\r\n _self._getTelCtx = _getTelCtx;\r\n function _getTelCtx(currentCtx) {\r\n if (currentCtx === void 0) { currentCtx = null; }\r\n var itemCtx = currentCtx;\r\n if (!itemCtx) {\r\n var rootCtx = _rootCtx || createProcessTelemetryContext(null, {}, _self[STR_CORE /* @min:%2ecore */]);\r\n // tslint:disable-next-line: prefer-conditional-expression\r\n if (_nextPlugin && _nextPlugin[strGetPlugin]) {\r\n // Looks like a chain object\r\n itemCtx = rootCtx[_DYN_CREATE_NEW /* @min:%2ecreateNew */](null, _nextPlugin[strGetPlugin]);\r\n }\r\n else {\r\n itemCtx = rootCtx[_DYN_CREATE_NEW /* @min:%2ecreateNew */](null, _nextPlugin);\r\n }\r\n }\r\n return itemCtx;\r\n }\r\n function _setDefaults(config, core, pluginChain) {\r\n // Make sure the extensionConfig exists and the config is dynamic\r\n createDynamicConfig(config, defaultValues, safeGetLogger(core));\r\n if (!pluginChain && core) {\r\n // Get the first plugin from the core\r\n pluginChain = core[_DYN_GET_PROCESS_TEL_CONT2 /* @min:%2egetProcessTelContext */]()[_DYN_GET_NEXT /* @min:%2egetNext */]();\r\n }\r\n var nextPlugin = _nextPlugin;\r\n if (_nextPlugin && _nextPlugin[strGetPlugin]) {\r\n // If it looks like a proxy/chain then get the plugin\r\n nextPlugin = _nextPlugin[strGetPlugin]();\r\n }\r\n // Support legacy plugins where core was defined as a property\r\n _self[STR_CORE /* @min:%2ecore */] = core;\r\n _rootCtx = createProcessTelemetryContext(pluginChain, config, core, nextPlugin);\r\n }\r\n function _initDefaults() {\r\n _isinitialized = false;\r\n _self[STR_CORE /* @min:%2ecore */] = null;\r\n _rootCtx = null;\r\n _nextPlugin = null;\r\n _hookContainer = createUnloadHookContainer();\r\n _unloadHandlerContainer = createUnloadHandlerContainer();\r\n }\r\n }\r\n// Removed Stub for BaseTelemetryPlugin.prototype.initialize.\r\n// Removed Stub for BaseTelemetryPlugin.prototype.teardown.\r\n// Removed Stub for BaseTelemetryPlugin.prototype.update.\r\n// Removed Stub for BaseTelemetryPlugin.prototype._addUnloadCb.\r\n// Removed Stub for BaseTelemetryPlugin.prototype._addHook.\r\n // This is a workaround for an IE bug when using dynamicProto() with classes that don't have any\n // non-dynamic functions or static properties/functions when using uglify-js to minify the resulting code.\n BaseTelemetryPlugin.__ieDyn=1;\n\n return BaseTelemetryPlugin;\r\n}());\r\nexport { BaseTelemetryPlugin };\r\n//# sourceMappingURL=BaseTelemetryPlugin.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n// \r\n// \r\nimport { __extendsFn as __extends } from \"@microsoft/applicationinsights-shims\";\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { arrAppend, arrForEach, dumpObj } from \"@nevware21/ts-utils\";\r\nimport { _DYN_APPLY, _DYN_DIAG_LOG, _DYN_LENGTH, _DYN_PROCESS_NEXT, _DYN_SPLICE, _DYN__DO_TEARDOWN } from \"../__DynamicConstants\";\r\nimport { BaseTelemetryPlugin } from \"./BaseTelemetryPlugin\";\r\nimport { _throwInternal } from \"./DiagnosticLogger\";\r\nimport { getExceptionName } from \"./HelperFuncs\";\r\nimport { STR_PROCESS_TELEMETRY } from \"./InternalConstants\";\r\nfunction _addInitializer(_initializers, id, telemetryInitializer) {\r\n var theInitializer = {\r\n id: id,\r\n fn: telemetryInitializer\r\n };\r\n arrAppend(_initializers, theInitializer);\r\n var handler = {\r\n remove: function () {\r\n arrForEach(_initializers, function (initializer, idx) {\r\n if (initializer.id === theInitializer.id) {\r\n _initializers[_DYN_SPLICE /* @min:%2esplice */](idx, 1);\r\n return -1;\r\n }\r\n });\r\n }\r\n };\r\n return handler;\r\n}\r\nfunction _runInitializers(_initializers, item, logger) {\r\n var doNotSendItem = false;\r\n var telemetryInitializersCount = _initializers[_DYN_LENGTH /* @min:%2elength */];\r\n for (var i = 0; i < telemetryInitializersCount; ++i) {\r\n var telemetryInitializer = _initializers[i];\r\n if (telemetryInitializer) {\r\n try {\r\n if (telemetryInitializer.fn[_DYN_APPLY /* @min:%2eapply */](null, [item]) === false) {\r\n doNotSendItem = true;\r\n break;\r\n }\r\n }\r\n catch (e) {\r\n // log error but dont stop executing rest of the telemetry initializers\r\n // doNotSendItem = true;\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 64 /* _eInternalMessageId.TelemetryInitializerFailed */, \"Telemetry initializer failed: \" + getExceptionName(e), { exception: dumpObj(e) }, true);\r\n }\r\n }\r\n }\r\n return !doNotSendItem;\r\n}\r\nvar TelemetryInitializerPlugin = /** @class */ (function (_super) {\r\n __extends(TelemetryInitializerPlugin, _super);\r\n function TelemetryInitializerPlugin() {\r\n var _this = _super.call(this) || this;\r\n _this.identifier = \"TelemetryInitializerPlugin\";\r\n _this.priority = 199;\r\n // NOTE!: DON'T set default values here, instead set them in the _initDefaults() function as it is also called during teardown()\r\n var _id;\r\n var _initializers;\r\n _initDefaults();\r\n dynamicProto(TelemetryInitializerPlugin, _this, function (_self, _base) {\r\n _self.addTelemetryInitializer = function (telemetryInitializer) {\r\n return _addInitializer(_initializers, _id++, telemetryInitializer);\r\n };\r\n _self[STR_PROCESS_TELEMETRY /* @min:%2eprocessTelemetry */] = function (item, itemCtx) {\r\n if (_runInitializers(_initializers, item, itemCtx ? itemCtx[_DYN_DIAG_LOG /* @min:%2ediagLog */]() : _self[_DYN_DIAG_LOG /* @min:%2ediagLog */]())) {\r\n _self[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */](item, itemCtx);\r\n }\r\n };\r\n _self[_DYN__DO_TEARDOWN /* @min:%2e_doTeardown */] = function () {\r\n _initDefaults();\r\n };\r\n });\r\n function _initDefaults() {\r\n _id = 0;\r\n _initializers = [];\r\n }\r\n return _this;\r\n }\r\n// Removed Stub for TelemetryInitializerPlugin.prototype.addTelemetryInitializer.\r\n// Removed Stub for TelemetryInitializerPlugin.prototype.processTelemetry.\r\n // This is a workaround for an IE bug when using dynamicProto() with classes that don't have any\n // non-dynamic functions or static properties/functions when using uglify-js to minify the resulting code.\n TelemetryInitializerPlugin.__ieDyn=1;\n\n return TelemetryInitializerPlugin;\r\n}(BaseTelemetryPlugin));\r\nexport { TelemetryInitializerPlugin };\r\n//# sourceMappingURL=TelemetryInitializerPlugin.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n\"use strict\";\r\nvar _a;\r\nimport { __spreadArrayFn as __spreadArray } from \"@microsoft/applicationinsights-shims\";\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { createPromise, createSyncAllSettledPromise, doAwaitResponse } from \"@nevware21/ts-async\";\r\nimport { arrAppend, arrForEach, arrIndexOf, createTimeout, deepExtend, hasDocument, isFunction, isNullOrUndefined, isPlainObject, isPromiseLike, objDeepFreeze, objDefine, objForEachKey, objFreeze, objHasOwn, scheduleTimeout, throwError } from \"@nevware21/ts-utils\";\r\nimport { createDynamicConfig, onConfigChange } from \"../Config/DynamicConfig\";\r\nimport { ActiveStatus } from \"../JavaScriptSDK.Enums/InitActiveStatusEnum\";\r\nimport { _DYN_ADD_NOTIFICATION_LIS1, _DYN_CANCEL, _DYN_CREATE_NEW, _DYN_ENABLED, _DYN_GET_NOTIFY_MGR, _DYN_GET_PLUGIN, _DYN_GET_PROCESS_TEL_CONT2, _DYN_IDENTIFIER, _DYN_INITIALIZE, _DYN_INSTRUMENTATION_KEY, _DYN_IS_ASYNC, _DYN_IS_INITIALIZED, _DYN_I_KEY, _DYN_LENGTH, _DYN_LOGGER, _DYN_LOGGING_LEVEL_CONSOL4, _DYN_MESSAGE, _DYN_MESSAGE_ID, _DYN_NAME, _DYN_NOTIFY, _DYN_ON_COMPLETE, _DYN_POLL_INTERNAL_LOGS, _DYN_PROCESS_NEXT, _DYN_PUSH, _DYN_REMOVE_NOTIFICATION_0, _DYN_SET_DF, _DYN_SPLICE, _DYN_STOP_POLLING_INTERNA3, _DYN_TEARDOWN, _DYN_TIME, _DYN_UNLOAD, _DYN_VALUE, _DYN_VERSION, _DYN_WATCH, _DYN__INACTIVE } from \"../__DynamicConstants\";\r\nimport { doUnloadAll, runTargetUnload } from \"./AsyncUtils\";\r\nimport { ChannelControllerPriority } from \"./Constants\";\r\nimport { createCookieMgr } from \"./CookieMgr\";\r\nimport { createUniqueNamespace } from \"./DataCacheHelper\";\r\nimport { getDebugListener } from \"./DbgExtensionUtils\";\r\nimport { DiagnosticLogger, _InternalLogMessage, _throwInternal, _warnToConsole } from \"./DiagnosticLogger\";\r\nimport { getSetValue, isNotNullOrUndefined, proxyFunctionAs, proxyFunctions, toISOString } from \"./HelperFuncs\";\r\nimport { STR_CHANNELS, STR_CORE, STR_CREATE_PERF_MGR, STR_DISABLED, STR_EMPTY, STR_EVENTS_DISCARDED, STR_EXTENSIONS, STR_EXTENSION_CONFIG, STR_GET_PERF_MGR, STR_PRIORITY, UNDEFINED_VALUE } from \"./InternalConstants\";\r\nimport { NotificationManager } from \"./NotificationManager\";\r\nimport { PerfManager, doPerf, getGblPerfMgr } from \"./PerfManager\";\r\nimport { createProcessTelemetryContext, createProcessTelemetryUnloadContext, createProcessTelemetryUpdateContext, createTelemetryProxyChain } from \"./ProcessTelemetryContext\";\r\nimport { _getPluginState, createDistributedTraceContext, initializePlugins, sortPlugins } from \"./TelemetryHelpers\";\r\nimport { TelemetryInitializerPlugin } from \"./TelemetryInitializerPlugin\";\r\nimport { createUnloadHandlerContainer } from \"./UnloadHandlerContainer\";\r\nimport { createUnloadHookContainer } from \"./UnloadHookContainer\";\r\nvar strValidationError = \"Plugins must provide initialize method\";\r\nvar strNotificationManager = \"_notificationManager\";\r\nvar strSdkUnloadingError = \"SDK is still unloading...\";\r\nvar strSdkNotInitialized = \"SDK is not initialized\";\r\nvar maxInitQueueSize = 100;\r\nvar maxInitTimeout = 50000;\r\n// const strPluginUnloadFailed = \"Failed to unload plugin\";\r\n/**\r\n * The default settings for the config.\r\n * WE MUST include all defaults here to ensure that the config is created with all of the properties\r\n * defined as dynamic.\r\n */\r\nvar defaultConfig = objDeepFreeze((_a = {\r\n cookieCfg: {}\r\n },\r\n _a[STR_EXTENSIONS] = { rdOnly: true, ref: true, v: [] },\r\n _a[STR_CHANNELS] = { rdOnly: true, ref: true, v: [] },\r\n _a[STR_EXTENSION_CONFIG] = { ref: true, v: {} },\r\n _a[STR_CREATE_PERF_MGR] = UNDEFINED_VALUE,\r\n _a.loggingLevelConsole = 0 /* eLoggingSeverity.DISABLED */,\r\n _a.diagnosticLogInterval = UNDEFINED_VALUE,\r\n _a));\r\n/**\r\n * Helper to create the default performance manager\r\n * @param core\r\n * @param notificationMgr\r\n */\r\nfunction _createPerfManager(core, notificationMgr) {\r\n return new PerfManager(notificationMgr);\r\n}\r\nfunction _validateExtensions(logger, channelPriority, allExtensions) {\r\n var _a;\r\n // Concat all available extensions\r\n var coreExtensions = [];\r\n var channels = [];\r\n // Check if any two extensions have the same priority, then warn to console\r\n // And extract the local extensions from the\r\n var extPriorities = {};\r\n // Extension validation\r\n arrForEach(allExtensions, function (ext) {\r\n // Check for ext.initialize\r\n if (isNullOrUndefined(ext) || isNullOrUndefined(ext[_DYN_INITIALIZE /* @min:%2einitialize */])) {\r\n throwError(strValidationError);\r\n }\r\n var extPriority = ext[STR_PRIORITY /* @min:%2epriority */];\r\n var identifier = ext[_DYN_IDENTIFIER /* @min:%2eidentifier */];\r\n if (ext && extPriority) {\r\n if (!isNullOrUndefined(extPriorities[extPriority])) {\r\n _warnToConsole(logger, \"Two extensions have same priority #\" + extPriority + \" - \" + extPriorities[extPriority] + \", \" + identifier);\r\n }\r\n else {\r\n // set a value\r\n extPriorities[extPriority] = identifier;\r\n }\r\n }\r\n // Split extensions to core and channels\r\n if (!extPriority || extPriority < channelPriority) {\r\n // Add to core extension that will be managed by AppInsightsCore\r\n coreExtensions[_DYN_PUSH /* @min:%2epush */](ext);\r\n }\r\n else {\r\n channels[_DYN_PUSH /* @min:%2epush */](ext);\r\n }\r\n });\r\n return _a = {},\r\n _a[STR_CORE /* @min:core */] = coreExtensions,\r\n _a[STR_CHANNELS /* @min:channels */] = channels,\r\n _a;\r\n}\r\nfunction _isPluginPresent(thePlugin, plugins) {\r\n var exists = false;\r\n arrForEach(plugins, function (plugin) {\r\n if (plugin === thePlugin) {\r\n exists = true;\r\n return -1;\r\n }\r\n });\r\n return exists;\r\n}\r\nfunction _deepMergeConfig(details, target, newValues, merge) {\r\n // Lets assign the new values to the existing config\r\n if (newValues) {\r\n objForEachKey(newValues, function (key, value) {\r\n if (merge) {\r\n if (isPlainObject(value) && isPlainObject(target[key])) {\r\n // The target is an object and it has a value\r\n _deepMergeConfig(details, target[key], value, merge);\r\n }\r\n }\r\n if (merge && isPlainObject(value) && isPlainObject(target[key])) {\r\n // The target is an object and it has a value\r\n _deepMergeConfig(details, target[key], value, merge);\r\n }\r\n else {\r\n // Just Assign (replace) and/or make the property dynamic\r\n details.set(target, key, value);\r\n }\r\n });\r\n }\r\n}\r\nfunction _findWatcher(listeners, newWatcher) {\r\n var theListener = null;\r\n var idx = -1;\r\n arrForEach(listeners, function (listener, lp) {\r\n if (listener.w === newWatcher) {\r\n theListener = listener;\r\n idx = lp;\r\n return -1;\r\n }\r\n });\r\n return { i: idx, l: theListener };\r\n}\r\nfunction _addDelayedCfgListener(listeners, newWatcher) {\r\n var theListener = _findWatcher(listeners, newWatcher).l;\r\n if (!theListener) {\r\n theListener = {\r\n w: newWatcher,\r\n rm: function () {\r\n var fnd = _findWatcher(listeners, newWatcher);\r\n if (fnd.i !== -1) {\r\n listeners[_DYN_SPLICE /* @min:%2esplice */](fnd.i, 1);\r\n }\r\n }\r\n };\r\n listeners[_DYN_PUSH /* @min:%2epush */](theListener);\r\n }\r\n return theListener;\r\n}\r\nfunction _registerDelayedCfgListener(config, listeners, logger) {\r\n arrForEach(listeners, function (listener) {\r\n var unloadHdl = onConfigChange(config, listener.w, logger);\r\n delete listener.w; // Clear the listener reference so it will get garbage collected.\r\n // replace the remove function\r\n listener.rm = function () {\r\n unloadHdl.rm();\r\n };\r\n });\r\n}\r\n// Moved this outside of the closure to reduce the retained memory footprint\r\nfunction _initDebugListener(configHandler, unloadContainer, notificationManager, debugListener) {\r\n // Will get recalled if any referenced config values are changed\r\n unloadContainer.add(configHandler[_DYN_WATCH /* @min:%2ewatch */](function (details) {\r\n var disableDbgExt = details.cfg.disableDbgExt;\r\n if (disableDbgExt === true && debugListener) {\r\n // Remove any previously loaded debug listener\r\n notificationManager[_DYN_REMOVE_NOTIFICATION_0 /* @min:%2eremoveNotificationListener */](debugListener);\r\n debugListener = null;\r\n }\r\n if (notificationManager && !debugListener && disableDbgExt !== true) {\r\n debugListener = getDebugListener(details.cfg);\r\n notificationManager[_DYN_ADD_NOTIFICATION_LIS1 /* @min:%2eaddNotificationListener */](debugListener);\r\n }\r\n }));\r\n return debugListener;\r\n}\r\n// Moved this outside of the closure to reduce the retained memory footprint\r\nfunction _createUnloadHook(unloadHook) {\r\n return objDefine({\r\n rm: function () {\r\n unloadHook.rm();\r\n }\r\n }, \"toJSON\", { v: function () { return \"aicore::onCfgChange<\" + JSON.stringify(unloadHook) + \">\"; } });\r\n}\r\n/**\r\n * @group Classes\r\n * @group Entrypoint\r\n */\r\nvar AppInsightsCore = /** @class */ (function () {\r\n function AppInsightsCore() {\r\n // NOTE!: DON'T set default values here, instead set them in the _initDefaults() function as it is also called during teardown()\r\n var _configHandler;\r\n var _isInitialized;\r\n var _logger;\r\n var _eventQueue;\r\n var _notificationManager;\r\n var _perfManager;\r\n var _cfgPerfManager;\r\n var _cookieManager;\r\n var _pluginChain;\r\n var _configExtensions;\r\n var _channelConfig;\r\n var _channels;\r\n var _isUnloading;\r\n var _telemetryInitializerPlugin;\r\n var _internalLogsEventName;\r\n var _evtNamespace;\r\n var _unloadHandlers;\r\n var _hookContainer;\r\n var _debugListener;\r\n var _traceCtx;\r\n var _instrumentationKey;\r\n var _cfgListeners;\r\n var _extensions;\r\n var _pluginVersionStringArr;\r\n var _pluginVersionString;\r\n var _activeStatus; // to indicate if ikey or endpoint url promised is resolved or not\r\n var _endpoint;\r\n var _initInMemoMaxSize; // max event count limit during wait for init promises to be resolved\r\n var _isStatusSet; // track if active status is set in case of init timeout and init promises setting the status twice\r\n var _initTimer;\r\n /**\r\n * Internal log poller\r\n */\r\n var _internalLogPoller;\r\n var _internalLogPollerListening;\r\n var _forceStopInternalLogPoller;\r\n dynamicProto(AppInsightsCore, this, function (_self) {\r\n // Set the default values (also called during teardown)\r\n _initDefaults();\r\n // Special internal method to allow the unit tests and DebugPlugin to hook embedded objects\r\n _self[\"_getDbgPlgTargets\"] = function () {\r\n return [_extensions, _eventQueue];\r\n };\r\n _self[_DYN_IS_INITIALIZED /* @min:%2eisInitialized */] = function () { return _isInitialized; };\r\n // since version 3.3.0\r\n _self.activeStatus = function () { return _activeStatus; };\r\n // since version 3.3.0\r\n // internal\r\n _self._setPendingStatus = function () {\r\n _activeStatus = 3 /* eActiveStatus.PENDING */;\r\n };\r\n // Creating the self.initialize = ()\r\n _self[_DYN_INITIALIZE /* @min:%2einitialize */] = function (config, extensions, logger, notificationManager) {\r\n if (_isUnloading) {\r\n throwError(strSdkUnloadingError);\r\n }\r\n // Make sure core is only initialized once\r\n if (_self[_DYN_IS_INITIALIZED /* @min:%2eisInitialized */]()) {\r\n throwError(\"Core cannot be initialized more than once\");\r\n }\r\n _configHandler = createDynamicConfig(config, defaultConfig, logger || _self[_DYN_LOGGER /* @min:%2elogger */], false);\r\n // Re-assigning the local config property so we don't have any references to the passed value and it can be garbage collected\r\n config = _configHandler.cfg;\r\n // This will be \"re-run\" if the referenced config properties are changed\r\n _addUnloadHook(_configHandler[_DYN_WATCH /* @min:%2ewatch */](function (details) {\r\n var rootCfg = details.cfg;\r\n var isPending = _activeStatus === 3 /* eActiveStatus.PENDING */;\r\n if (isPending) {\r\n // means waiting for previous promises to be resolved, won't apply new changes\r\n return;\r\n }\r\n _initInMemoMaxSize = rootCfg.initInMemoMaxSize || maxInitQueueSize;\r\n // app Insights core only handle ikey and endpointurl, aisku will handle cs\r\n var ikey = rootCfg[_DYN_INSTRUMENTATION_KEY /* @min:%2einstrumentationKey */];\r\n var endpointUrl = rootCfg.endpointUrl; // do not need to validate endpoint url, if it is null, default one will be set by sender\r\n if (isNullOrUndefined(ikey)) {\r\n _instrumentationKey = null;\r\n // if new ikey is null, set status to be inactive, all new events will be saved in memory or dropped\r\n _activeStatus = ActiveStatus[_DYN__INACTIVE /* @min:%2eINACTIVE */];\r\n var msg = \"Please provide instrumentation key\";\r\n if (!_isInitialized) {\r\n // only throw error during initialization\r\n throwError(msg);\r\n }\r\n else {\r\n _throwInternal(_logger, 1 /* eLoggingSeverity.CRITICAL */, 100 /* _eInternalMessageId.InvalidInstrumentationKey */, msg);\r\n _releaseQueues();\r\n }\r\n return;\r\n }\r\n var promises = [];\r\n if (isPromiseLike(ikey)) {\r\n promises[_DYN_PUSH /* @min:%2epush */](ikey);\r\n _instrumentationKey = null; // reset current local ikey variable (otherwise it will always be the previous ikeys if timeout is called before promise cb)\r\n }\r\n else {\r\n // string\r\n _instrumentationKey = ikey;\r\n }\r\n if (isPromiseLike(endpointUrl)) {\r\n promises[_DYN_PUSH /* @min:%2epush */](endpointUrl);\r\n _endpoint = null; // reset current local endpoint variable (otherwise it will always be the previous urls if timeout is called before promise cb)\r\n }\r\n else {\r\n // string or null\r\n _endpoint = endpointUrl;\r\n }\r\n // at least have one promise\r\n if (promises[_DYN_LENGTH /* @min:%2elength */]) {\r\n // reset to false for new dynamic changes\r\n _isStatusSet = false;\r\n _activeStatus = 3 /* eActiveStatus.PENDING */;\r\n var initTimeout = isNotNullOrUndefined(rootCfg.initTimeOut) ? rootCfg.initTimeOut : maxInitTimeout; // rootCfg.initTimeOut could be 0\r\n var allPromises = createSyncAllSettledPromise(promises);\r\n _initTimer = scheduleTimeout(function () {\r\n // set _isStatusSet to true\r\n // set active status\r\n // release queues\r\n _initTimer = null;\r\n if (!_isStatusSet) {\r\n _setStatus();\r\n }\r\n }, initTimeout);\r\n doAwaitResponse(allPromises, function (response) {\r\n try {\r\n if (_isStatusSet) {\r\n // promises take too long to resolve, ignore them\r\n // active status should be set by timeout already\r\n return;\r\n }\r\n if (!response.rejected) {\r\n var values = response[_DYN_VALUE /* @min:%2evalue */];\r\n if (values && values[_DYN_LENGTH /* @min:%2elength */]) {\r\n // ikey\r\n var ikeyRes = values[0];\r\n _instrumentationKey = ikeyRes && ikeyRes[_DYN_VALUE /* @min:%2evalue */];\r\n // endpoint\r\n if (values[_DYN_LENGTH /* @min:%2elength */] > 1) {\r\n var endpointRes = values[1];\r\n _endpoint = endpointRes && endpointRes[_DYN_VALUE /* @min:%2evalue */];\r\n }\r\n }\r\n if (_instrumentationKey) {\r\n // if ikey is null, no need to trigger extra dynamic changes for extensions\r\n config[_DYN_INSTRUMENTATION_KEY /* @min:%2einstrumentationKey */] = _instrumentationKey; // set config.instrumentationKey for extensions to consume\r\n config.endpointUrl = _endpoint; // set config.endpointUrl for extensions to consume\r\n }\r\n }\r\n // set _isStatusSet to true\r\n // set active status\r\n // release queues\r\n _setStatus();\r\n }\r\n catch (e) {\r\n if (!_isStatusSet) {\r\n _setStatus();\r\n }\r\n }\r\n });\r\n }\r\n else {\r\n // means no promises\r\n _setStatus();\r\n }\r\n //_instrumentationKey = details.cfg.instrumentationKey;\r\n // Mark the extensionConfig and all first level keys as referenced\r\n // This is so that calls to getExtCfg() will always return the same object\r\n // Even when a user may \"re-assign\" the plugin properties (or it's unloaded/reloaded)\r\n var extCfg = details.ref(details.cfg, STR_EXTENSION_CONFIG);\r\n objForEachKey(extCfg, function (key) {\r\n details.ref(extCfg, key);\r\n });\r\n }));\r\n _notificationManager = notificationManager;\r\n // Initialize the debug listener outside of the closure to reduce the retained memory footprint\r\n _debugListener = _initDebugListener(_configHandler, _hookContainer, _notificationManager && _self[_DYN_GET_NOTIFY_MGR /* @min:%2egetNotifyMgr */](), _debugListener);\r\n _initPerfManager();\r\n _self[_DYN_LOGGER /* @min:%2elogger */] = logger;\r\n var cfgExtensions = config[STR_EXTENSIONS /* @min:%2eextensions */];\r\n // Extension validation\r\n _configExtensions = [];\r\n _configExtensions[_DYN_PUSH /* @min:%2epush */].apply(_configExtensions, __spreadArray(__spreadArray([], extensions, false), cfgExtensions, false));\r\n _channelConfig = config[STR_CHANNELS /* @min:%2echannels */];\r\n _initPluginChain(null);\r\n if (!_channels || _channels[_DYN_LENGTH /* @min:%2elength */] === 0) {\r\n throwError(\"No \" + STR_CHANNELS + \" available\");\r\n }\r\n if (_channelConfig && _channelConfig[_DYN_LENGTH /* @min:%2elength */] > 1) {\r\n var teeController = _self[_DYN_GET_PLUGIN /* @min:%2egetPlugin */](\"TeeChannelController\");\r\n if (!teeController || !teeController.plugin) {\r\n _throwInternal(_logger, 1 /* eLoggingSeverity.CRITICAL */, 28 /* _eInternalMessageId.SenderNotInitialized */, \"TeeChannel required\");\r\n }\r\n }\r\n _registerDelayedCfgListener(config, _cfgListeners, _logger);\r\n _cfgListeners = null;\r\n _isInitialized = true;\r\n if (_activeStatus === ActiveStatus.ACTIVE) {\r\n _releaseQueues();\r\n }\r\n };\r\n _self.getChannels = function () {\r\n var controls = [];\r\n if (_channels) {\r\n arrForEach(_channels, function (channel) {\r\n controls[_DYN_PUSH /* @min:%2epush */](channel);\r\n });\r\n }\r\n return objFreeze(controls);\r\n };\r\n _self.track = function (telemetryItem) {\r\n doPerf(_self[STR_GET_PERF_MGR /* @min:%2egetPerfMgr */](), function () { return \"AppInsightsCore:track\"; }, function () {\r\n if (telemetryItem === null) {\r\n _notifyInvalidEvent(telemetryItem);\r\n // throw error\r\n throwError(\"Invalid telemetry item\");\r\n }\r\n // do basic validation before sending it through the pipeline\r\n if (!telemetryItem[_DYN_NAME /* @min:%2ename */] && isNullOrUndefined(telemetryItem[_DYN_NAME /* @min:%2ename */])) {\r\n _notifyInvalidEvent(telemetryItem);\r\n throwError(\"telemetry name required\");\r\n }\r\n // setup default iKey if not passed in\r\n telemetryItem[_DYN_I_KEY /* @min:%2eiKey */] = telemetryItem[_DYN_I_KEY /* @min:%2eiKey */] || _instrumentationKey;\r\n // add default timestamp if not passed in\r\n telemetryItem[_DYN_TIME /* @min:%2etime */] = telemetryItem[_DYN_TIME /* @min:%2etime */] || toISOString(new Date());\r\n // Common Schema 4.0\r\n telemetryItem.ver = telemetryItem.ver || \"4.0\";\r\n if (!_isUnloading && _self[_DYN_IS_INITIALIZED /* @min:%2eisInitialized */]() && _activeStatus === ActiveStatus.ACTIVE) {\r\n // Process the telemetry plugin chain\r\n _createTelCtx()[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */](telemetryItem);\r\n }\r\n else if (_activeStatus !== ActiveStatus[_DYN__INACTIVE /* @min:%2eINACTIVE */]) {\r\n // Queue events until all extensions are initialized\r\n if (_eventQueue[_DYN_LENGTH /* @min:%2elength */] <= _initInMemoMaxSize) {\r\n // set limit, if full, stop adding new events\r\n _eventQueue[_DYN_PUSH /* @min:%2epush */](telemetryItem);\r\n }\r\n }\r\n }, function () { return ({ item: telemetryItem }); }, !(telemetryItem.sync));\r\n };\r\n _self[_DYN_GET_PROCESS_TEL_CONT2 /* @min:%2egetProcessTelContext */] = _createTelCtx;\r\n _self[_DYN_GET_NOTIFY_MGR /* @min:%2egetNotifyMgr */] = function () {\r\n if (!_notificationManager) {\r\n _notificationManager = new NotificationManager(_configHandler.cfg);\r\n // For backward compatibility only\r\n _self[strNotificationManager] = _notificationManager;\r\n }\r\n return _notificationManager;\r\n };\r\n /**\r\n * Adds a notification listener. The SDK calls methods on the listener when an appropriate notification is raised.\r\n * The added plugins must raise notifications. If the plugins do not implement the notifications, then no methods will be\r\n * called.\r\n * @param listener - An INotificationListener object.\r\n */\r\n _self[_DYN_ADD_NOTIFICATION_LIS1 /* @min:%2eaddNotificationListener */] = function (listener) {\r\n _self.getNotifyMgr()[_DYN_ADD_NOTIFICATION_LIS1 /* @min:%2eaddNotificationListener */](listener);\r\n };\r\n /**\r\n * Removes all instances of the listener.\r\n * @param listener - INotificationListener to remove.\r\n */\r\n _self[_DYN_REMOVE_NOTIFICATION_0 /* @min:%2eremoveNotificationListener */] = function (listener) {\r\n if (_notificationManager) {\r\n _notificationManager[_DYN_REMOVE_NOTIFICATION_0 /* @min:%2eremoveNotificationListener */](listener);\r\n }\r\n };\r\n _self.getCookieMgr = function () {\r\n if (!_cookieManager) {\r\n _cookieManager = createCookieMgr(_configHandler.cfg, _self[_DYN_LOGGER /* @min:%2elogger */]);\r\n }\r\n return _cookieManager;\r\n };\r\n _self.setCookieMgr = function (cookieMgr) {\r\n if (_cookieManager !== cookieMgr) {\r\n runTargetUnload(_cookieManager, false);\r\n _cookieManager = cookieMgr;\r\n }\r\n };\r\n _self[STR_GET_PERF_MGR /* @min:%2egetPerfMgr */] = function () {\r\n return _perfManager || _cfgPerfManager || getGblPerfMgr();\r\n };\r\n _self.setPerfMgr = function (perfMgr) {\r\n _perfManager = perfMgr;\r\n };\r\n _self.eventCnt = function () {\r\n return _eventQueue[_DYN_LENGTH /* @min:%2elength */];\r\n };\r\n _self.releaseQueue = function () {\r\n if (_isInitialized && _eventQueue[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n var eventQueue = _eventQueue;\r\n _eventQueue = [];\r\n if (_activeStatus === 2 /* eActiveStatus.ACTIVE */) {\r\n arrForEach(eventQueue, function (event) {\r\n event[_DYN_I_KEY /* @min:%2eiKey */] = event[_DYN_I_KEY /* @min:%2eiKey */] || _instrumentationKey;\r\n _createTelCtx()[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */](event);\r\n });\r\n }\r\n else {\r\n // new one for msg ikey\r\n _throwInternal(_logger, 2 /* eLoggingSeverity.WARNING */, 20 /* _eInternalMessageId.FailedToSendQueuedTelemetry */, \"core init status is not active\");\r\n }\r\n }\r\n };\r\n _self[_DYN_POLL_INTERNAL_LOGS /* @min:%2epollInternalLogs */] = function (eventName) {\r\n _internalLogsEventName = eventName || null;\r\n _forceStopInternalLogPoller = false;\r\n _internalLogPoller && _internalLogPoller[_DYN_CANCEL /* @min:%2ecancel */]();\r\n return _startLogPoller(true);\r\n };\r\n function _setStatus() {\r\n _isStatusSet = true;\r\n if (isNullOrUndefined(_instrumentationKey)) {\r\n _activeStatus = ActiveStatus[_DYN__INACTIVE /* @min:%2eINACTIVE */];\r\n _throwInternal(_logger, 1 /* eLoggingSeverity.CRITICAL */, 112 /* _eInternalMessageId.InitPromiseException */, \"ikey can't be resolved from promises\");\r\n }\r\n else {\r\n _activeStatus = ActiveStatus.ACTIVE;\r\n }\r\n _releaseQueues();\r\n }\r\n function _releaseQueues() {\r\n if (_isInitialized) {\r\n _self.releaseQueue();\r\n _self[_DYN_POLL_INTERNAL_LOGS /* @min:%2epollInternalLogs */]();\r\n }\r\n }\r\n function _startLogPoller(alwaysStart) {\r\n if ((!_internalLogPoller || !_internalLogPoller[_DYN_ENABLED /* @min:%2eenabled */]) && !_forceStopInternalLogPoller) {\r\n var shouldStart = alwaysStart || (_logger && _logger.queue[_DYN_LENGTH /* @min:%2elength */] > 0);\r\n if (shouldStart) {\r\n if (!_internalLogPollerListening) {\r\n _internalLogPollerListening = true;\r\n // listen for any configuration changes so that changes to the\r\n // interval will cause the timer to be re-initialized\r\n _addUnloadHook(_configHandler[_DYN_WATCH /* @min:%2ewatch */](function (details) {\r\n var interval = details.cfg.diagnosticLogInterval;\r\n if (!interval || !(interval > 0)) {\r\n interval = 10000;\r\n }\r\n var isRunning = false;\r\n if (_internalLogPoller) {\r\n // It was already created so remember it's running and cancel\r\n isRunning = _internalLogPoller[_DYN_ENABLED /* @min:%2eenabled */];\r\n _internalLogPoller[_DYN_CANCEL /* @min:%2ecancel */]();\r\n }\r\n // Create / reconfigure\r\n _internalLogPoller = createTimeout(_flushInternalLogs, interval);\r\n _internalLogPoller.unref();\r\n // Restart if previously running\r\n _internalLogPoller[_DYN_ENABLED /* @min:%2eenabled */] = isRunning;\r\n }));\r\n }\r\n _internalLogPoller[_DYN_ENABLED /* @min:%2eenabled */] = true;\r\n }\r\n }\r\n return _internalLogPoller;\r\n }\r\n _self[_DYN_STOP_POLLING_INTERNA3 /* @min:%2estopPollingInternalLogs */] = function () {\r\n _forceStopInternalLogPoller = true;\r\n _internalLogPoller && _internalLogPoller[_DYN_CANCEL /* @min:%2ecancel */]();\r\n _flushInternalLogs();\r\n };\r\n // Add addTelemetryInitializer\r\n proxyFunctions(_self, function () { return _telemetryInitializerPlugin; }, [\"addTelemetryInitializer\"]);\r\n _self[_DYN_UNLOAD /* @min:%2eunload */] = function (isAsync, unloadComplete, cbTimeout) {\r\n var _a;\r\n if (isAsync === void 0) { isAsync = true; }\r\n if (!_isInitialized) {\r\n // The SDK is not initialized\r\n throwError(strSdkNotInitialized);\r\n }\r\n // Check if the SDK still unloading so throw\r\n if (_isUnloading) {\r\n // The SDK is already unloading\r\n throwError(strSdkUnloadingError);\r\n }\r\n var unloadState = (_a = {\r\n reason: 50 /* TelemetryUnloadReason.SdkUnload */\r\n },\r\n _a[_DYN_IS_ASYNC /* @min:isAsync */] = isAsync,\r\n _a.flushComplete = false,\r\n _a);\r\n var result;\r\n if (isAsync && !unloadComplete) {\r\n result = createPromise(function (resolve) {\r\n // Set the callback to the promise resolve callback\r\n unloadComplete = resolve;\r\n });\r\n }\r\n var processUnloadCtx = createProcessTelemetryUnloadContext(_getPluginChain(), _self);\r\n processUnloadCtx[_DYN_ON_COMPLETE /* @min:%2eonComplete */](function () {\r\n _hookContainer.run(_self[_DYN_LOGGER /* @min:%2elogger */]);\r\n // Run any \"unload\" functions for the _cookieManager, _notificationManager and _logger\r\n doUnloadAll([_cookieManager, _notificationManager, _logger], isAsync, function () {\r\n _initDefaults();\r\n unloadComplete && unloadComplete(unloadState);\r\n });\r\n }, _self);\r\n function _doUnload(flushComplete) {\r\n unloadState.flushComplete = flushComplete;\r\n _isUnloading = true;\r\n // Run all of the unload handlers first (before unloading the plugins)\r\n _unloadHandlers.run(processUnloadCtx, unloadState);\r\n // Stop polling the internal logs\r\n _self[_DYN_STOP_POLLING_INTERNA3 /* @min:%2estopPollingInternalLogs */]();\r\n // Start unloading the components, from this point onwards the SDK should be considered to be in an unstable state\r\n processUnloadCtx[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */](unloadState);\r\n }\r\n _flushInternalLogs();\r\n if (!_flushChannels(isAsync, _doUnload, 6 /* SendRequestReason.SdkUnload */, cbTimeout)) {\r\n _doUnload(false);\r\n }\r\n return result;\r\n };\r\n _self[_DYN_GET_PLUGIN /* @min:%2egetPlugin */] = _getPlugin;\r\n _self.addPlugin = function (plugin, replaceExisting, isAsync, addCb) {\r\n if (!plugin) {\r\n addCb && addCb(false);\r\n _logOrThrowError(strValidationError);\r\n return;\r\n }\r\n var existingPlugin = _getPlugin(plugin[_DYN_IDENTIFIER /* @min:%2eidentifier */]);\r\n if (existingPlugin && !replaceExisting) {\r\n addCb && addCb(false);\r\n _logOrThrowError(\"Plugin [\" + plugin[_DYN_IDENTIFIER /* @min:%2eidentifier */] + \"] is already loaded!\");\r\n return;\r\n }\r\n var updateState = {\r\n reason: 16 /* TelemetryUpdateReason.PluginAdded */\r\n };\r\n function _addPlugin(removed) {\r\n _configExtensions[_DYN_PUSH /* @min:%2epush */](plugin);\r\n updateState.added = [plugin];\r\n // Re-Initialize the plugin chain\r\n _initPluginChain(updateState);\r\n addCb && addCb(true);\r\n }\r\n if (existingPlugin) {\r\n var removedPlugins_1 = [existingPlugin.plugin];\r\n var unloadState = {\r\n reason: 2 /* TelemetryUnloadReason.PluginReplace */,\r\n isAsync: !!isAsync\r\n };\r\n _removePlugins(removedPlugins_1, unloadState, function (removed) {\r\n if (!removed) {\r\n // Previous plugin was successfully removed or was not installed\r\n addCb && addCb(false);\r\n }\r\n else {\r\n updateState.removed = removedPlugins_1;\r\n updateState.reason |= 32 /* TelemetryUpdateReason.PluginRemoved */;\r\n _addPlugin(true);\r\n }\r\n });\r\n }\r\n else {\r\n _addPlugin(false);\r\n }\r\n };\r\n _self.updateCfg = function (newConfig, mergeExisting) {\r\n if (mergeExisting === void 0) { mergeExisting = true; }\r\n var updateState;\r\n if (_self[_DYN_IS_INITIALIZED /* @min:%2eisInitialized */]()) {\r\n updateState = {\r\n reason: 1 /* TelemetryUpdateReason.ConfigurationChanged */,\r\n cfg: _configHandler.cfg,\r\n oldCfg: deepExtend({}, _configHandler.cfg),\r\n newConfig: deepExtend({}, newConfig),\r\n merge: mergeExisting\r\n };\r\n newConfig = updateState.newConfig;\r\n var cfg = _configHandler.cfg;\r\n // replace the immutable (if initialized) values\r\n // We don't currently allow updating the extensions and channels via the update config\r\n // So overwriting any user provided values to reuse the existing values\r\n newConfig[STR_EXTENSIONS /* @min:%2eextensions */] = cfg[STR_EXTENSIONS /* @min:%2eextensions */];\r\n newConfig[STR_CHANNELS /* @min:%2echannels */] = cfg[STR_CHANNELS /* @min:%2echannels */];\r\n }\r\n // Explicitly blocking any previous config watchers so that they don't get called because\r\n // of this bulk update (Probably not necessary)\r\n _configHandler._block(function (details) {\r\n // Lets assign the new values to the existing config either overwriting or re-assigning\r\n var theConfig = details.cfg;\r\n _deepMergeConfig(details, theConfig, newConfig, mergeExisting);\r\n if (!mergeExisting) {\r\n // Remove (unassign) the values \"missing\" from the newConfig and also not in the default config\r\n objForEachKey(theConfig, function (key) {\r\n if (!objHasOwn(newConfig, key)) {\r\n // Set the value to undefined\r\n details.set(theConfig, key, UNDEFINED_VALUE);\r\n }\r\n });\r\n }\r\n // Apply defaults to the new config\r\n details[_DYN_SET_DF /* @min:%2esetDf */](theConfig, defaultConfig);\r\n }, true);\r\n // Now execute all of the listeners (synchronously) so they update their values immediately\r\n _configHandler[_DYN_NOTIFY /* @min:%2enotify */]();\r\n if (updateState) {\r\n _doUpdate(updateState);\r\n }\r\n };\r\n _self.evtNamespace = function () {\r\n return _evtNamespace;\r\n };\r\n _self.flush = _flushChannels;\r\n _self.getTraceCtx = function (createNew) {\r\n if (!_traceCtx) {\r\n _traceCtx = createDistributedTraceContext();\r\n }\r\n return _traceCtx;\r\n };\r\n _self.setTraceCtx = function (traceCtx) {\r\n _traceCtx = traceCtx || null;\r\n };\r\n _self.addUnloadHook = _addUnloadHook;\r\n // Create the addUnloadCb\r\n proxyFunctionAs(_self, \"addUnloadCb\", function () { return _unloadHandlers; }, \"add\");\r\n _self.onCfgChange = function (handler) {\r\n var unloadHook;\r\n if (!_isInitialized) {\r\n unloadHook = _addDelayedCfgListener(_cfgListeners, handler);\r\n }\r\n else {\r\n unloadHook = onConfigChange(_configHandler.cfg, handler, _self[_DYN_LOGGER /* @min:%2elogger */]);\r\n }\r\n return _createUnloadHook(unloadHook);\r\n };\r\n _self.getWParam = function () {\r\n return (hasDocument() || !!_configHandler.cfg.enableWParam) ? 0 : -1;\r\n };\r\n function _setPluginVersions() {\r\n var thePlugins = {};\r\n _pluginVersionStringArr = [];\r\n var _addPluginVersions = function (plugins) {\r\n if (plugins) {\r\n arrForEach(plugins, function (plugin) {\r\n if (plugin[_DYN_IDENTIFIER /* @min:%2eidentifier */] && plugin[_DYN_VERSION /* @min:%2eversion */] && !thePlugins[plugin.identifier]) {\r\n var ver = plugin[_DYN_IDENTIFIER /* @min:%2eidentifier */] + \"=\" + plugin[_DYN_VERSION /* @min:%2eversion */];\r\n _pluginVersionStringArr[_DYN_PUSH /* @min:%2epush */](ver);\r\n thePlugins[plugin.identifier] = plugin;\r\n }\r\n });\r\n }\r\n };\r\n _addPluginVersions(_channels);\r\n if (_channelConfig) {\r\n arrForEach(_channelConfig, function (channels) {\r\n _addPluginVersions(channels);\r\n });\r\n }\r\n _addPluginVersions(_configExtensions);\r\n }\r\n function _initDefaults() {\r\n _isInitialized = false;\r\n // Use a default logger so initialization errors are not dropped on the floor with full logging\r\n _configHandler = createDynamicConfig({}, defaultConfig, _self[_DYN_LOGGER /* @min:%2elogger */]);\r\n // Set the logging level to critical so that any critical initialization failures are displayed on the console\r\n _configHandler.cfg[_DYN_LOGGING_LEVEL_CONSOL4 /* @min:%2eloggingLevelConsole */] = 1 /* eLoggingSeverity.CRITICAL */;\r\n // Define _self.config\r\n objDefine(_self, \"config\", {\r\n g: function () { return _configHandler.cfg; },\r\n s: function (newValue) {\r\n _self.updateCfg(newValue, false);\r\n }\r\n });\r\n objDefine(_self, \"pluginVersionStringArr\", {\r\n g: function () {\r\n if (!_pluginVersionStringArr) {\r\n _setPluginVersions();\r\n }\r\n return _pluginVersionStringArr;\r\n }\r\n });\r\n objDefine(_self, \"pluginVersionString\", {\r\n g: function () {\r\n if (!_pluginVersionString) {\r\n if (!_pluginVersionStringArr) {\r\n _setPluginVersions();\r\n }\r\n _pluginVersionString = _pluginVersionStringArr.join(\";\");\r\n }\r\n return _pluginVersionString || STR_EMPTY;\r\n }\r\n });\r\n objDefine(_self, \"logger\", {\r\n g: function () {\r\n if (!_logger) {\r\n _logger = new DiagnosticLogger(_configHandler.cfg);\r\n _configHandler[_DYN_LOGGER /* @min:%2elogger */] = _logger;\r\n }\r\n return _logger;\r\n },\r\n s: function (newLogger) {\r\n _configHandler[_DYN_LOGGER /* @min:%2elogger */] = newLogger;\r\n if (_logger !== newLogger) {\r\n runTargetUnload(_logger, false);\r\n _logger = newLogger;\r\n }\r\n }\r\n });\r\n _self[_DYN_LOGGER /* @min:%2elogger */] = new DiagnosticLogger(_configHandler.cfg);\r\n _extensions = [];\r\n var cfgExtensions = _self.config[STR_EXTENSIONS /* @min:%2eextensions */] || [];\r\n cfgExtensions.splice(0, cfgExtensions[_DYN_LENGTH /* @min:%2elength */]);\r\n arrAppend(cfgExtensions, _extensions);\r\n _telemetryInitializerPlugin = new TelemetryInitializerPlugin();\r\n _eventQueue = [];\r\n runTargetUnload(_notificationManager, false);\r\n _notificationManager = null;\r\n _perfManager = null;\r\n _cfgPerfManager = null;\r\n runTargetUnload(_cookieManager, false);\r\n _cookieManager = null;\r\n _pluginChain = null;\r\n _configExtensions = [];\r\n _channelConfig = null;\r\n _channels = null;\r\n _isUnloading = false;\r\n _internalLogsEventName = null;\r\n _evtNamespace = createUniqueNamespace(\"AIBaseCore\", true);\r\n _unloadHandlers = createUnloadHandlerContainer();\r\n _traceCtx = null;\r\n _instrumentationKey = null;\r\n _hookContainer = createUnloadHookContainer();\r\n _cfgListeners = [];\r\n _pluginVersionString = null;\r\n _pluginVersionStringArr = null;\r\n _forceStopInternalLogPoller = false;\r\n _internalLogPoller = null;\r\n _internalLogPollerListening = false;\r\n _activeStatus = 0 /* eActiveStatus.NONE */; // default is None\r\n _endpoint = null;\r\n _initInMemoMaxSize = null;\r\n _isStatusSet = false;\r\n _initTimer = null;\r\n }\r\n function _createTelCtx() {\r\n var theCtx = createProcessTelemetryContext(_getPluginChain(), _configHandler.cfg, _self);\r\n theCtx[_DYN_ON_COMPLETE /* @min:%2eonComplete */](_startLogPoller);\r\n return theCtx;\r\n }\r\n // Initialize or Re-initialize the plugins\r\n function _initPluginChain(updateState) {\r\n // Extension validation\r\n var theExtensions = _validateExtensions(_self[_DYN_LOGGER /* @min:%2elogger */], ChannelControllerPriority, _configExtensions);\r\n _pluginChain = null;\r\n _pluginVersionString = null;\r\n _pluginVersionStringArr = null;\r\n // Get the primary channel queue and include as part of the normal extensions\r\n _channels = (_channelConfig || [])[0] || [];\r\n // Add any channels provided in the extensions and sort them\r\n _channels = sortPlugins(arrAppend(_channels, theExtensions[STR_CHANNELS /* @min:%2echannels */]));\r\n // Create an array of all extensions, including the _channels\r\n var allExtensions = arrAppend(sortPlugins(theExtensions[STR_CORE /* @min:%2ecore */]), _channels);\r\n // Required to allow plugins to call core.getPlugin() during their own initialization\r\n _extensions = objFreeze(allExtensions);\r\n // This has a side effect of adding the extensions passed during initialization\r\n // into the config.extensions, so you can see all of the extensions loaded.\r\n // This will also get updated by the addPlugin() and remove plugin code.\r\n var cfgExtensions = _self.config[STR_EXTENSIONS /* @min:%2eextensions */] || [];\r\n cfgExtensions.splice(0, cfgExtensions[_DYN_LENGTH /* @min:%2elength */]);\r\n arrAppend(cfgExtensions, _extensions);\r\n var rootCtx = _createTelCtx();\r\n // Initializing the channels first\r\n if (_channels && _channels[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n initializePlugins(rootCtx[_DYN_CREATE_NEW /* @min:%2ecreateNew */](_channels), allExtensions);\r\n }\r\n // Now initialize the normal extensions (explicitly not including the _channels as this can cause duplicate initialization)\r\n initializePlugins(rootCtx, allExtensions);\r\n if (updateState) {\r\n _doUpdate(updateState);\r\n }\r\n }\r\n function _getPlugin(pluginIdentifier) {\r\n var theExt = null;\r\n var thePlugin = null;\r\n var channelHosts = [];\r\n arrForEach(_extensions, function (ext) {\r\n if (ext[_DYN_IDENTIFIER /* @min:%2eidentifier */] === pluginIdentifier && ext !== _telemetryInitializerPlugin) {\r\n thePlugin = ext;\r\n return -1;\r\n }\r\n if (ext.getChannel) {\r\n channelHosts[_DYN_PUSH /* @min:%2epush */](ext);\r\n }\r\n });\r\n if (!thePlugin && channelHosts[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n arrForEach(channelHosts, function (host) {\r\n thePlugin = host.getChannel(pluginIdentifier);\r\n if (!thePlugin) {\r\n return -1;\r\n }\r\n });\r\n }\r\n if (thePlugin) {\r\n theExt = {\r\n plugin: thePlugin,\r\n setEnabled: function (enabled) {\r\n _getPluginState(thePlugin)[STR_DISABLED] = !enabled;\r\n },\r\n isEnabled: function () {\r\n var pluginState = _getPluginState(thePlugin);\r\n return !pluginState[_DYN_TEARDOWN /* @min:%2eteardown */] && !pluginState[STR_DISABLED];\r\n },\r\n remove: function (isAsync, removeCb) {\r\n var _a;\r\n if (isAsync === void 0) { isAsync = true; }\r\n var pluginsToRemove = [thePlugin];\r\n var unloadState = (_a = {\r\n reason: 1 /* TelemetryUnloadReason.PluginUnload */\r\n },\r\n _a[_DYN_IS_ASYNC /* @min:isAsync */] = isAsync,\r\n _a);\r\n _removePlugins(pluginsToRemove, unloadState, function (removed) {\r\n if (removed) {\r\n // Re-Initialize the plugin chain\r\n _initPluginChain({\r\n reason: 32 /* TelemetryUpdateReason.PluginRemoved */,\r\n removed: pluginsToRemove\r\n });\r\n }\r\n removeCb && removeCb(removed);\r\n });\r\n }\r\n };\r\n }\r\n return theExt;\r\n }\r\n function _getPluginChain() {\r\n if (!_pluginChain) {\r\n // copy the collection of extensions\r\n var extensions = (_extensions || []).slice();\r\n // During add / remove this may get called again, so don't read if already present\r\n if (arrIndexOf(extensions, _telemetryInitializerPlugin) === -1) {\r\n extensions[_DYN_PUSH /* @min:%2epush */](_telemetryInitializerPlugin);\r\n }\r\n _pluginChain = createTelemetryProxyChain(sortPlugins(extensions), _configHandler.cfg, _self);\r\n }\r\n return _pluginChain;\r\n }\r\n function _removePlugins(thePlugins, unloadState, removeComplete) {\r\n if (thePlugins && thePlugins[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n var unloadChain = createTelemetryProxyChain(thePlugins, _configHandler.cfg, _self);\r\n var unloadCtx = createProcessTelemetryUnloadContext(unloadChain, _self);\r\n unloadCtx[_DYN_ON_COMPLETE /* @min:%2eonComplete */](function () {\r\n var removed = false;\r\n // Remove the listed config extensions\r\n var newConfigExtensions = [];\r\n arrForEach(_configExtensions, function (plugin, idx) {\r\n if (!_isPluginPresent(plugin, thePlugins)) {\r\n newConfigExtensions[_DYN_PUSH /* @min:%2epush */](plugin);\r\n }\r\n else {\r\n removed = true;\r\n }\r\n });\r\n _configExtensions = newConfigExtensions;\r\n _pluginVersionString = null;\r\n _pluginVersionStringArr = null;\r\n // Re-Create the channel config\r\n var newChannelConfig = [];\r\n if (_channelConfig) {\r\n arrForEach(_channelConfig, function (queue, idx) {\r\n var newQueue = [];\r\n arrForEach(queue, function (channel) {\r\n if (!_isPluginPresent(channel, thePlugins)) {\r\n newQueue[_DYN_PUSH /* @min:%2epush */](channel);\r\n }\r\n else {\r\n removed = true;\r\n }\r\n });\r\n newChannelConfig[_DYN_PUSH /* @min:%2epush */](newQueue);\r\n });\r\n _channelConfig = newChannelConfig;\r\n }\r\n removeComplete && removeComplete(removed);\r\n _startLogPoller();\r\n });\r\n unloadCtx[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */](unloadState);\r\n }\r\n else {\r\n removeComplete(false);\r\n }\r\n }\r\n function _flushInternalLogs() {\r\n if (_logger && _logger.queue) {\r\n var queue = _logger.queue.slice(0);\r\n _logger.queue[_DYN_LENGTH /* @min:%2elength */] = 0;\r\n arrForEach(queue, function (logMessage) {\r\n var _a;\r\n var item = (_a = {},\r\n _a[_DYN_NAME /* @min:name */] = _internalLogsEventName ? _internalLogsEventName : \"InternalMessageId: \" + logMessage[_DYN_MESSAGE_ID /* @min:%2emessageId */],\r\n _a[_DYN_I_KEY /* @min:iKey */] = _instrumentationKey,\r\n _a[_DYN_TIME /* @min:time */] = toISOString(new Date()),\r\n _a.baseType = _InternalLogMessage.dataType,\r\n _a.baseData = { message: logMessage[_DYN_MESSAGE /* @min:%2emessage */] },\r\n _a);\r\n _self.track(item);\r\n });\r\n }\r\n }\r\n function _flushChannels(isAsync, callBack, sendReason, cbTimeout) {\r\n // Setting waiting to one so that we don't call the callBack until we finish iterating\r\n var waiting = 1;\r\n var doneIterating = false;\r\n var cbTimer = null;\r\n cbTimeout = cbTimeout || 5000;\r\n function doCallback() {\r\n waiting--;\r\n if (doneIterating && waiting === 0) {\r\n cbTimer && cbTimer[_DYN_CANCEL /* @min:%2ecancel */]();\r\n cbTimer = null;\r\n callBack && callBack(doneIterating);\r\n callBack = null;\r\n }\r\n }\r\n if (_channels && _channels[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n var flushCtx = _createTelCtx()[_DYN_CREATE_NEW /* @min:%2ecreateNew */](_channels);\r\n flushCtx.iterate(function (plugin) {\r\n if (plugin.flush) {\r\n waiting++;\r\n var handled_1 = false;\r\n // Not all channels will call this callback for every scenario\r\n if (!plugin.flush(isAsync, function () {\r\n handled_1 = true;\r\n doCallback();\r\n }, sendReason)) {\r\n if (!handled_1) {\r\n // If any channel doesn't return true and it didn't call the callback, then we should assume that the callback\r\n // will never be called, so use a timeout to allow the channel(s) some time to \"finish\" before triggering any\r\n // followup function (such as unloading)\r\n if (isAsync && cbTimer == null) {\r\n cbTimer = scheduleTimeout(function () {\r\n cbTimer = null;\r\n doCallback();\r\n }, cbTimeout);\r\n }\r\n else {\r\n doCallback();\r\n }\r\n }\r\n }\r\n }\r\n });\r\n }\r\n doneIterating = true;\r\n doCallback();\r\n return true;\r\n }\r\n function _initPerfManager() {\r\n // Save the previous config based performance manager creator to avoid creating new perf manager instances if unchanged\r\n var prevCfgPerfMgr;\r\n // Will get recalled if any referenced config values are changed\r\n _addUnloadHook(_configHandler[_DYN_WATCH /* @min:%2ewatch */](function (details) {\r\n var enablePerfMgr = details.cfg.enablePerfMgr;\r\n if (enablePerfMgr) {\r\n var createPerfMgr = details.cfg[STR_CREATE_PERF_MGR /* @min:%2ecreatePerfMgr */];\r\n // for preCfgPerfMgr = createPerfMgr = null\r\n // initial createPerfMgr function should be _createPerfManager\r\n if ((prevCfgPerfMgr !== createPerfMgr) || !prevCfgPerfMgr) {\r\n if (!createPerfMgr) {\r\n createPerfMgr = _createPerfManager;\r\n }\r\n // Set the performance manager creation function if not defined\r\n getSetValue(details.cfg, STR_CREATE_PERF_MGR, createPerfMgr);\r\n prevCfgPerfMgr = createPerfMgr;\r\n // Remove any existing config based performance manager\r\n _cfgPerfManager = null;\r\n }\r\n // Only create the performance manager if it's not already created or manually set\r\n if (!_perfManager && !_cfgPerfManager && isFunction(createPerfMgr)) {\r\n // Create a new config based performance manager\r\n _cfgPerfManager = createPerfMgr(_self, _self[_DYN_GET_NOTIFY_MGR /* @min:%2egetNotifyMgr */]());\r\n }\r\n }\r\n else {\r\n // Remove any existing config based performance manager\r\n _cfgPerfManager = null;\r\n // Clear the previous cached value so it can be GC'd\r\n prevCfgPerfMgr = null;\r\n }\r\n }));\r\n }\r\n function _doUpdate(updateState) {\r\n var updateCtx = createProcessTelemetryUpdateContext(_getPluginChain(), _self);\r\n updateCtx[_DYN_ON_COMPLETE /* @min:%2eonComplete */](_startLogPoller);\r\n if (!_self._updateHook || _self._updateHook(updateCtx, updateState) !== true) {\r\n updateCtx[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */](updateState);\r\n }\r\n }\r\n function _logOrThrowError(message) {\r\n var logger = _self[_DYN_LOGGER /* @min:%2elogger */];\r\n if (logger) {\r\n // there should always be a logger\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 73 /* _eInternalMessageId.PluginException */, message);\r\n _startLogPoller();\r\n }\r\n else {\r\n throwError(message);\r\n }\r\n }\r\n function _notifyInvalidEvent(telemetryItem) {\r\n var manager = _self[_DYN_GET_NOTIFY_MGR /* @min:%2egetNotifyMgr */]();\r\n if (manager) {\r\n manager[STR_EVENTS_DISCARDED /* @min:%2eeventsDiscarded */]([telemetryItem], 2 /* eEventsDiscardedReason.InvalidEvent */);\r\n }\r\n }\r\n function _addUnloadHook(hooks) {\r\n _hookContainer.add(hooks);\r\n }\r\n });\r\n }\r\n// Removed Stub for AppInsightsCore.prototype.initialize.\r\n// Removed Stub for AppInsightsCore.prototype.getChannels.\r\n// Removed Stub for AppInsightsCore.prototype.track.\r\n// Removed Stub for AppInsightsCore.prototype.getProcessTelContext.\r\n// Removed Stub for AppInsightsCore.prototype.getNotifyMgr.\r\n// Removed Stub for AppInsightsCore.prototype.addNotificationListener.\r\n// Removed Stub for AppInsightsCore.prototype.removeNotificationListener.\r\n// Removed Stub for AppInsightsCore.prototype.getCookieMgr.\r\n// Removed Stub for AppInsightsCore.prototype.setCookieMgr.\r\n// Removed Stub for AppInsightsCore.prototype.getPerfMgr.\r\n// Removed Stub for AppInsightsCore.prototype.setPerfMgr.\r\n// Removed Stub for AppInsightsCore.prototype.eventCnt.\r\n// Removed Stub for AppInsightsCore.prototype.pollInternalLogs.\r\n// Removed Stub for AppInsightsCore.prototype.stopPollingInternalLogs.\r\n// Removed Stub for AppInsightsCore.prototype.addTelemetryInitializer.\r\n// Removed Stub for AppInsightsCore.prototype.unload.\r\n// Removed Stub for AppInsightsCore.prototype.getPlugin.\r\n// Removed Stub for AppInsightsCore.prototype.addPlugin.\r\n// Removed Stub for AppInsightsCore.prototype.updateCfg.\r\n// Removed Stub for AppInsightsCore.prototype.evtNamespace.\r\n// Removed Stub for AppInsightsCore.prototype.addUnloadCb.\r\n// Removed Stub for AppInsightsCore.prototype.flush.\r\n// Removed Stub for AppInsightsCore.prototype.getTraceCtx.\r\n// Removed Stub for AppInsightsCore.prototype.setTraceCtx.\r\n// Removed Stub for AppInsightsCore.prototype.addUnloadHook.\r\n// Removed Stub for AppInsightsCore.prototype.onCfgChange.\r\n// Removed Stub for AppInsightsCore.prototype.activeStatus.\r\n// Removed Stub for AppInsightsCore.prototype._setPendingStatus.\r\n// Removed Stub for AppInsightsCore.prototype.releaseQueue.\r\n// Removed Stub for AppInsightsCore.prototype._updateHook.\r\n // This is a workaround for an IE bug when using dynamicProto() with classes that don't have any\n // non-dynamic functions or static properties/functions when using uglify-js to minify the resulting code.\n AppInsightsCore.__ieDyn=1;\n\n return AppInsightsCore;\r\n}());\r\nexport { AppInsightsCore };\r\n//# sourceMappingURL=AppInsightsCore.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { dumpObj } from \"@nevware21/ts-utils\";\r\nimport { _DYN_ITEMS_RECEIVED, _DYN_LENGTH, _DYN_NAME } from \"../__DynamicConstants\";\r\nimport { _throwInternal } from \"./DiagnosticLogger\";\r\nimport { getJSON } from \"./EnvUtils\";\r\n/**\r\n * Parses the response from the backend.\r\n * @param response - XMLHttpRequest or XDomainRequest response\r\n */\r\nexport function parseResponse(response, diagLog) {\r\n try {\r\n if (response && response !== \"\") {\r\n var result = getJSON().parse(response);\r\n if (result && result[_DYN_ITEMS_RECEIVED /* @min:%2eitemsReceived */] && result[_DYN_ITEMS_RECEIVED /* @min:%2eitemsReceived */] >= result.itemsAccepted &&\r\n result.itemsReceived - result.itemsAccepted === result.errors[_DYN_LENGTH /* @min:%2elength */]) {\r\n return result;\r\n }\r\n }\r\n }\r\n catch (e) {\r\n _throwInternal(diagLog, 1 /* eLoggingSeverity.CRITICAL */, 43 /* _eInternalMessageId.InvalidBackendResponse */, \"Cannot parse the response. \" + (e[_DYN_NAME /* @min:%2ename */] || dumpObj(e)), {\r\n response: response\r\n });\r\n }\r\n return null;\r\n}\r\n//# sourceMappingURL=ResponseHelpers.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { createPromise, doAwaitResponse } from \"@nevware21/ts-async\";\r\nimport { arrForEach, dumpObj, getNavigator, getWindow, isFunction, objKeys } from \"@nevware21/ts-utils\";\r\nimport { _DYN_DATA, _DYN_HEADERS, _DYN_INITIALIZE, _DYN_LENGTH, _DYN_MESSAGE, _DYN_PROTOCOL, _DYN_REPLACE, _DYN_SEND_POST, _DYN_SET_REQUEST_HEADER, _DYN_STATUS, _DYN_TIMEOUT, _DYN_TO_LOWER_CASE, _DYN_URL_STRING, _DYN_VALUE, _DYN__DO_TEARDOWN } from \"../__DynamicConstants\";\r\nimport { DisabledPropertyName } from \"./Constants\";\r\nimport { _throwInternal, _warnToConsole } from \"./DiagnosticLogger\";\r\nimport { getLocation, isBeaconsSupported, isFetchSupported, isXhrSupported, useXDomainRequest } from \"./EnvUtils\";\r\nimport { _getAllResponseHeaders, formatErrorMessageXdr, formatErrorMessageXhr, getResponseText, openXhr } from \"./HelperFuncs\";\r\nvar STR_EMPTY = \"\";\r\nvar STR_NO_RESPONSE_BODY = \"NoResponseBody\";\r\nvar _noResponseQs = \"&\" + STR_NO_RESPONSE_BODY + \"=true\";\r\nvar STR_POST_METHOD = \"POST\";\r\n/**\r\n * This Internal component\r\n * Manager SendPost functions\r\n * SendPostManger\r\n * @internal for internal use only\r\n */\r\nvar SenderPostManager = /** @class */ (function () {\r\n function SenderPostManager() {\r\n var _syncFetchPayload = 0; // Keep track of the outstanding sync fetch payload total (as sync fetch has limits)\r\n var _enableSendPromise;\r\n var _isInitialized;\r\n var _diagLog;\r\n var _isOneDs;\r\n var _onCompleteFuncs;\r\n var _disableCredentials;\r\n var _fetchCredentials;\r\n var _fallbackInst;\r\n var _disableXhr;\r\n var _disableBeacon;\r\n var _disableBeaconSync;\r\n var _disableFetchKeepAlive;\r\n var _addNoResponse;\r\n var _timeoutWrapper;\r\n dynamicProto(SenderPostManager, this, function (_self, _base) {\r\n var _sendCredentials = true; // for 1ds\r\n _initDefaults();\r\n _self[_DYN_INITIALIZE /* @min:%2einitialize */] = function (config, diagLog) {\r\n _diagLog = diagLog;\r\n if (_isInitialized) {\r\n _throwInternal(_diagLog, 1 /* eLoggingSeverity.CRITICAL */, 28 /* _eInternalMessageId.SenderNotInitialized */, \"Sender is already initialized\");\r\n }\r\n _self.SetConfig(config);\r\n _isInitialized = true;\r\n };\r\n _self[\"_getDbgPlgTargets\"] = function () {\r\n return [_isInitialized, _isOneDs, _disableCredentials, _enableSendPromise];\r\n };\r\n // This componet might get its config from sender, offline sender, 1ds post\r\n // so set this function to mock dynamic changes\r\n _self.SetConfig = function (config) {\r\n try {\r\n _onCompleteFuncs = config.senderOnCompleteCallBack || {};\r\n _disableCredentials = !!config.disableCredentials;\r\n _fetchCredentials = config.fetchCredentials;\r\n _isOneDs = !!config.isOneDs;\r\n _enableSendPromise = !!config.enableSendPromise;\r\n _disableXhr = !!config.disableXhr;\r\n _disableBeacon = !!config.disableBeacon;\r\n _disableBeaconSync = !!config.disableBeaconSync;\r\n _timeoutWrapper = config.timeWrapper;\r\n _addNoResponse = !!config.addNoResponse;\r\n _disableFetchKeepAlive = !!config.disableFetchKeepAlive;\r\n _fallbackInst = { sendPOST: _xhrSender };\r\n if (!_isOneDs) {\r\n _sendCredentials = false; // for appInsights, set it to false always\r\n }\r\n if (_disableCredentials) {\r\n var location_1 = getLocation();\r\n if (location_1 && location_1.protocol && location_1.protocol[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]() === \"file:\") {\r\n // Special case where a local html file fails with a CORS error on Chromium browsers\r\n _sendCredentials = false;\r\n }\r\n }\r\n return true;\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n return false;\r\n };\r\n _self.getSyncFetchPayload = function () {\r\n return _syncFetchPayload;\r\n };\r\n _self.getSenderInst = function (transports, sync) {\r\n if (transports && transports[_DYN_LENGTH /* @min:%2elength */]) {\r\n return _getSenderInterface(transports, sync);\r\n }\r\n return null;\r\n };\r\n _self.getFallbackInst = function () {\r\n return _fallbackInst;\r\n };\r\n _self[_DYN__DO_TEARDOWN /* @min:%2e_doTeardown */] = function (unloadCtx, unloadState) {\r\n _initDefaults();\r\n };\r\n /**\r\n * success handler\r\n */\r\n function _onSuccess(res, onComplete) {\r\n _doOnComplete(onComplete, 200, {}, res);\r\n }\r\n /**\r\n * error handler\r\n */\r\n function _onError(message, onComplete) {\r\n _throwInternal(_diagLog, 2 /* eLoggingSeverity.WARNING */, 26 /* _eInternalMessageId.OnError */, \"Failed to send telemetry.\", { message: message });\r\n _doOnComplete(onComplete, 400, {});\r\n }\r\n function _onNoPayloadUrl(onComplete) {\r\n _onError(\"No endpoint url is provided for the batch\", onComplete);\r\n }\r\n function _getSenderInterface(transports, syncSupport) {\r\n var _a;\r\n var transportType = 0 /* TransportType.NotSet */;\r\n var sendPostFunc = null;\r\n var lp = 0;\r\n while (sendPostFunc == null && lp < transports[_DYN_LENGTH /* @min:%2elength */]) {\r\n transportType = transports[lp];\r\n if (!_disableXhr && transportType === 1 /* TransportType.Xhr */) {\r\n if (useXDomainRequest()) {\r\n // IE 8 and 9\r\n sendPostFunc = _xdrSender;\r\n }\r\n else if (isXhrSupported()) {\r\n sendPostFunc = _xhrSender;\r\n }\r\n }\r\n else if (transportType === 2 /* TransportType.Fetch */ && isFetchSupported(syncSupport) && (!syncSupport || !_disableFetchKeepAlive)) {\r\n sendPostFunc = _doFetchSender;\r\n }\r\n else if (transportType === 3 /* TransportType.Beacon */ && isBeaconsSupported() && (syncSupport ? !_disableBeaconSync : !_disableBeacon)) {\r\n sendPostFunc = _beaconSender;\r\n }\r\n lp++;\r\n }\r\n if (sendPostFunc) {\r\n return _a = {\r\n _transport: transportType,\r\n _isSync: syncSupport\r\n },\r\n _a[_DYN_SEND_POST /* @min:sendPOST */] = sendPostFunc,\r\n _a;\r\n }\r\n return null;\r\n }\r\n function _doOnComplete(oncomplete, status, headers, response) {\r\n try {\r\n oncomplete && oncomplete(status, headers, response);\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n }\r\n function _doBeaconSend(payload, oncomplete) {\r\n var nav = getNavigator();\r\n var url = payload[_DYN_URL_STRING /* @min:%2eurlString */];\r\n if (!url) {\r\n _onNoPayloadUrl(oncomplete);\r\n // return true here, because we don't want to retry it with fallback sender\r\n return true;\r\n }\r\n url = payload[_DYN_URL_STRING /* @min:%2eurlString */] + (_addNoResponse ? _noResponseQs : STR_EMPTY);\r\n var data = payload[_DYN_DATA /* @min:%2edata */];\r\n // Chrome only allows CORS-safelisted values for the sendBeacon data argument\r\n // see: https://bugs.chromium.org/p/chromium/issues/detail?id=720283\r\n // Chrome only allows CORS-safelisted values for the sendBeacon data argument\r\n // see: https://bugs.chromium.org/p/chromium/issues/detail?id=720283\r\n var plainTextBatch = _isOneDs ? data : new Blob([data], { type: \"text/plain;charset=UTF-8\" });\r\n // The sendBeacon method returns true if the user agent is able to successfully queue the data for transfer. Otherwise it returns false.\r\n var queued = nav.sendBeacon(url, plainTextBatch);\r\n return queued;\r\n }\r\n /**\r\n * Send Beacon API request\r\n * @param payload - {string} - The data payload to be sent.\r\n * @param sync - {boolean} - not used\r\n * Note: Beacon API does not support custom headers and we are not able to get\r\n * appId from the backend for the correct correlation.\r\n */\r\n function _beaconSender(payload, oncomplete, sync) {\r\n var data = payload[_DYN_DATA /* @min:%2edata */];\r\n try {\r\n if (data) {\r\n // The sendBeacon method returns true if the user agent is able to successfully queue the data for transfer. Otherwise it returns false.\r\n if (!_doBeaconSend(payload, oncomplete)) {\r\n var onRetry = _onCompleteFuncs && _onCompleteFuncs.beaconOnRetry;\r\n if (onRetry && isFunction(onRetry)) {\r\n onRetry(payload, oncomplete, _doBeaconSend);\r\n }\r\n else {\r\n _fallbackInst && _fallbackInst[_DYN_SEND_POST /* @min:%2esendPOST */](payload, oncomplete, true);\r\n _throwInternal(_diagLog, 2 /* eLoggingSeverity.WARNING */, 40 /* _eInternalMessageId.TransmissionFailed */, \". \" + \"Failed to send telemetry with Beacon API, retried with normal sender.\");\r\n }\r\n }\r\n else {\r\n // if can send\r\n _onSuccess(STR_EMPTY, oncomplete);\r\n }\r\n }\r\n }\r\n catch (e) {\r\n _isOneDs && _warnToConsole(_diagLog, \"Failed to send telemetry using sendBeacon API. Ex:\" + dumpObj(e));\r\n _doOnComplete(oncomplete, _isOneDs ? 0 : 400, {}, STR_EMPTY);\r\n }\r\n return;\r\n }\r\n /**\r\n * Send XMLHttpRequest\r\n * @param payload - {string} - The data payload to be sent.\r\n * @param sync - {boolean} - Indicates if the request should be sent synchronously\r\n */\r\n function _xhrSender(payload, oncomplete, sync) {\r\n //let internalPayload = payload as IInternalPayloadData;\r\n var thePromise;\r\n var resolveFunc;\r\n var rejectFunc;\r\n var headers = payload[_DYN_HEADERS /* @min:%2eheaders */] || {};\r\n if (!sync && _enableSendPromise) {\r\n thePromise = createPromise(function (resolve, reject) {\r\n resolveFunc = resolve;\r\n rejectFunc = reject;\r\n });\r\n }\r\n if (_isOneDs && sync && payload.disableXhrSync) {\r\n sync = false;\r\n }\r\n //const xhr = new XMLHttpRequest();\r\n var endPointUrl = payload[_DYN_URL_STRING /* @min:%2eurlString */];\r\n if (!endPointUrl) {\r\n _onNoPayloadUrl(oncomplete);\r\n resolveFunc && resolveFunc(false);\r\n return;\r\n }\r\n var xhr = openXhr(STR_POST_METHOD, endPointUrl, _sendCredentials, true, sync, payload[_DYN_TIMEOUT /* @min:%2etimeout */]);\r\n if (!_isOneDs) {\r\n // application/json should NOT add to 1ds post by default\r\n xhr[_DYN_SET_REQUEST_HEADER /* @min:%2esetRequestHeader */](\"Content-type\", \"application/json\");\r\n }\r\n arrForEach(objKeys(headers), function (headerName) {\r\n xhr[_DYN_SET_REQUEST_HEADER /* @min:%2esetRequestHeader */](headerName, headers[headerName]);\r\n });\r\n xhr.onreadystatechange = function () {\r\n if (!_isOneDs) {\r\n _doOnReadyFunc(xhr);\r\n if (xhr.readyState === 4) {\r\n resolveFunc && resolveFunc(true);\r\n }\r\n }\r\n };\r\n xhr.onload = function () {\r\n if (_isOneDs) {\r\n _doOnReadyFunc(xhr);\r\n }\r\n };\r\n function _doOnReadyFunc(xhr) {\r\n var onReadyFunc = _onCompleteFuncs && _onCompleteFuncs.xhrOnComplete;\r\n var onReadyFuncExist = onReadyFunc && isFunction(onReadyFunc);\r\n if (onReadyFuncExist) {\r\n onReadyFunc(xhr, oncomplete, payload);\r\n }\r\n else {\r\n var response = getResponseText(xhr);\r\n _doOnComplete(oncomplete, xhr[_DYN_STATUS /* @min:%2estatus */], _getAllResponseHeaders(xhr, _isOneDs), response);\r\n }\r\n }\r\n xhr.onerror = function (event) {\r\n _doOnComplete(oncomplete, _isOneDs ? xhr[_DYN_STATUS /* @min:%2estatus */] : 400, _getAllResponseHeaders(xhr, _isOneDs), _isOneDs ? STR_EMPTY : formatErrorMessageXhr(xhr));\r\n rejectFunc && rejectFunc(event);\r\n };\r\n xhr.ontimeout = function () {\r\n _doOnComplete(oncomplete, _isOneDs ? xhr[_DYN_STATUS /* @min:%2estatus */] : 500, _getAllResponseHeaders(xhr, _isOneDs), _isOneDs ? STR_EMPTY : formatErrorMessageXhr(xhr));\r\n resolveFunc && resolveFunc(false);\r\n };\r\n xhr.send(payload[_DYN_DATA /* @min:%2edata */]);\r\n return thePromise;\r\n }\r\n /**\r\n * Send fetch API request\r\n * @param payload - {string} - The data payload to be sent.\r\n * @param sync - {boolean} - For fetch this identifies whether we are \"unloading\" (false) or a normal request\r\n */\r\n function _doFetchSender(payload, oncomplete, sync) {\r\n var _a;\r\n var endPointUrl = payload[_DYN_URL_STRING /* @min:%2eurlString */];\r\n var batch = payload[_DYN_DATA /* @min:%2edata */];\r\n var plainTextBatch = _isOneDs ? batch : new Blob([batch], { type: \"application/json\" });\r\n var thePromise;\r\n var resolveFunc;\r\n var rejectFunc;\r\n var requestHeaders = new Headers();\r\n var batchLength = batch[_DYN_LENGTH /* @min:%2elength */];\r\n var ignoreResponse = false;\r\n var responseHandled = false;\r\n var headers = payload[_DYN_HEADERS /* @min:%2eheaders */] || {};\r\n //TODO: handle time out for 1ds\r\n var init = (_a = {\r\n method: STR_POST_METHOD,\r\n body: plainTextBatch\r\n },\r\n _a[DisabledPropertyName] = true // Mark so we don't attempt to track this request\r\n ,\r\n _a);\r\n // Only add headers if there are headers to add, due to issue with some polyfills\r\n if (payload.headers && objKeys(payload.headers)[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n arrForEach(objKeys(headers), function (headerName) {\r\n requestHeaders.append(headerName, headers[headerName]);\r\n });\r\n init[_DYN_HEADERS /* @min:%2eheaders */] = requestHeaders;\r\n }\r\n if (_fetchCredentials) { // if user passed in this value via post channel (1ds), then use it\r\n init.credentials = _fetchCredentials;\r\n }\r\n else if (_sendCredentials && _isOneDs) {\r\n // for 1ds, Don't send credentials when URL is file://\r\n init.credentials = \"include\";\r\n }\r\n if (sync) {\r\n init.keepalive = true;\r\n _syncFetchPayload += batchLength;\r\n if (_isOneDs) {\r\n if (payload[\"_sendReason\"] === 2 /* SendRequestReason.Unload */) {\r\n // As a sync request (during unload), it is unlikely that we will get a chance to process the response so\r\n // just like beacon send assume that the events have been accepted and processed\r\n ignoreResponse = true;\r\n if (_addNoResponse) {\r\n endPointUrl += _noResponseQs;\r\n }\r\n }\r\n }\r\n else {\r\n // for appinsights, set to true for all sync request\r\n ignoreResponse = true;\r\n }\r\n }\r\n var request = new Request(endPointUrl, init);\r\n try {\r\n // Also try and tag the request (just in case the value in init is not copied over)\r\n request[DisabledPropertyName] = true;\r\n }\r\n catch (e) {\r\n // If the environment has locked down the XMLHttpRequest (preventExtensions and/or freeze), this would\r\n // cause the request to fail and we no telemetry would be sent\r\n }\r\n if (!sync && _enableSendPromise) {\r\n thePromise = createPromise(function (resolve, reject) {\r\n resolveFunc = resolve;\r\n rejectFunc = reject;\r\n });\r\n }\r\n if (!endPointUrl) {\r\n _onNoPayloadUrl(oncomplete);\r\n resolveFunc && resolveFunc(false);\r\n return;\r\n }\r\n function _handleError(res) {\r\n // In case there is an error in the request. Set the status to 0 for 1ds and 400 for appInsights\r\n // so that the events can be retried later.\r\n _doOnComplete(oncomplete, _isOneDs ? 0 : 400, {}, _isOneDs ? STR_EMPTY : res);\r\n }\r\n function _onFetchComplete(response, payload, value) {\r\n var status = response[_DYN_STATUS /* @min:%2estatus */];\r\n var onCompleteFunc = _onCompleteFuncs.fetchOnComplete;\r\n if (onCompleteFunc && isFunction(onCompleteFunc)) {\r\n onCompleteFunc(response, oncomplete, value || STR_EMPTY, payload);\r\n }\r\n else {\r\n _doOnComplete(oncomplete, status, {}, value || STR_EMPTY);\r\n }\r\n }\r\n try {\r\n doAwaitResponse(fetch(_isOneDs ? endPointUrl : request, _isOneDs ? init : null), function (result) {\r\n if (sync) {\r\n _syncFetchPayload -= batchLength;\r\n batchLength = 0;\r\n }\r\n if (!responseHandled) {\r\n responseHandled = true;\r\n if (!result.rejected) {\r\n var response_1 = result[_DYN_VALUE /* @min:%2evalue */];\r\n try {\r\n /**\r\n * The Promise returned from fetch() won’t reject on HTTP error status even if the response is an HTTP 404 or 500.\r\n * Instead, it will resolve normally (with ok status set to false), and it will only reject on network failure\r\n * or if anything prevented the request from completing.\r\n */\r\n if (!_isOneDs && !response_1.ok) {\r\n // this is for appInsights only\r\n _handleError(response_1.statusText);\r\n resolveFunc && resolveFunc(false);\r\n }\r\n else {\r\n if (_isOneDs && !response_1.body) {\r\n _onFetchComplete(response_1, null, STR_EMPTY);\r\n resolveFunc && resolveFunc(true);\r\n }\r\n else {\r\n doAwaitResponse(response_1.text(), function (resp) {\r\n _onFetchComplete(response_1, payload, resp[_DYN_VALUE /* @min:%2evalue */]);\r\n resolveFunc && resolveFunc(true);\r\n });\r\n }\r\n }\r\n }\r\n catch (e) {\r\n _handleError(dumpObj(e));\r\n rejectFunc && rejectFunc(e);\r\n }\r\n }\r\n else {\r\n _handleError(result.reason && result.reason[_DYN_MESSAGE /* @min:%2emessage */]);\r\n rejectFunc && rejectFunc(result.reason);\r\n }\r\n }\r\n });\r\n }\r\n catch (e) {\r\n if (!responseHandled) {\r\n _handleError(dumpObj(e));\r\n rejectFunc && rejectFunc(e);\r\n }\r\n }\r\n if (ignoreResponse && !responseHandled) {\r\n // Assume success during unload processing as we most likely won't get the response\r\n responseHandled = true;\r\n _doOnComplete(oncomplete, 200, {});\r\n resolveFunc && resolveFunc(true);\r\n }\r\n if (_isOneDs && !responseHandled && payload[_DYN_TIMEOUT /* @min:%2etimeout */] > 0) {\r\n // Simulate timeout\r\n _timeoutWrapper && _timeoutWrapper.set(function () {\r\n if (!responseHandled) {\r\n // Assume a 500 response (which will cause a retry)\r\n responseHandled = true;\r\n _doOnComplete(oncomplete, 500, {});\r\n resolveFunc && resolveFunc(true);\r\n }\r\n }, payload[_DYN_TIMEOUT /* @min:%2etimeout */]);\r\n }\r\n return thePromise;\r\n }\r\n /**\r\n * Send XDomainRequest\r\n * @param payload - {string} - The data payload to be sent.\r\n * @param sync - {boolean} - Indicates if the request should be sent synchronously\r\n *\r\n * Note: XDomainRequest does not support sync requests. This 'isAsync' parameter is added\r\n * to maintain consistency with the xhrSender's contract\r\n * Note: XDomainRequest does not support custom headers and we are not able to get\r\n * appId from the backend for the correct correlation.\r\n */\r\n function _xdrSender(payload, oncomplete, sync) {\r\n // It doesn't support custom headers, so no action is taken with current requestHeaders\r\n var _window = getWindow();\r\n var xdr = new XDomainRequest();\r\n var data = payload[_DYN_DATA /* @min:%2edata */];\r\n xdr.onload = function () {\r\n var response = getResponseText(xdr);\r\n var onloadFunc = _onCompleteFuncs && _onCompleteFuncs.xdrOnComplete;\r\n if (onloadFunc && isFunction(onloadFunc)) {\r\n onloadFunc(xdr, oncomplete, payload);\r\n }\r\n else {\r\n _doOnComplete(oncomplete, 200, {}, response);\r\n }\r\n };\r\n xdr.onerror = function () {\r\n _doOnComplete(oncomplete, 400, {}, _isOneDs ? STR_EMPTY : formatErrorMessageXdr(xdr));\r\n };\r\n xdr.ontimeout = function () {\r\n _doOnComplete(oncomplete, 500, {});\r\n };\r\n xdr.onprogress = function () { };\r\n // XDomainRequest requires the same protocol as the hosting page.\r\n // If the protocol doesn't match, we can't send the telemetry :(.\r\n var hostingProtocol = _window && _window.location && _window.location[_DYN_PROTOCOL /* @min:%2eprotocol */] || \"\";\r\n var endpoint = payload[_DYN_URL_STRING /* @min:%2eurlString */];\r\n if (!endpoint) {\r\n _onNoPayloadUrl(oncomplete);\r\n return;\r\n }\r\n if (!_isOneDs && endpoint.lastIndexOf(hostingProtocol, 0) !== 0) {\r\n var msg = \"Cannot send XDomain request. The endpoint URL protocol doesn't match the hosting page protocol.\";\r\n _throwInternal(_diagLog, 2 /* eLoggingSeverity.WARNING */, 40 /* _eInternalMessageId.TransmissionFailed */, \". \" + msg);\r\n _onError(msg, oncomplete);\r\n return;\r\n }\r\n var endpointUrl = _isOneDs ? endpoint : endpoint[_DYN_REPLACE /* @min:%2ereplace */](/^(https?:)/, \"\");\r\n xdr.open(STR_POST_METHOD, endpointUrl);\r\n if (payload[_DYN_TIMEOUT /* @min:%2etimeout */]) {\r\n xdr[_DYN_TIMEOUT /* @min:%2etimeout */] = payload[_DYN_TIMEOUT /* @min:%2etimeout */];\r\n }\r\n xdr.send(data);\r\n if (_isOneDs && sync) {\r\n _timeoutWrapper && _timeoutWrapper.set(function () {\r\n xdr.send(data);\r\n }, 0);\r\n }\r\n else {\r\n xdr.send(data);\r\n }\r\n }\r\n function _initDefaults() {\r\n _syncFetchPayload = 0;\r\n _isInitialized = false;\r\n _enableSendPromise = false;\r\n _diagLog = null;\r\n _isOneDs = null;\r\n _onCompleteFuncs = null;\r\n _disableCredentials = null;\r\n _fetchCredentials = null;\r\n _fallbackInst = null;\r\n _disableXhr = false;\r\n _disableBeacon = false;\r\n _disableBeaconSync = false;\r\n _disableFetchKeepAlive = false;\r\n _addNoResponse = false;\r\n _timeoutWrapper = null;\r\n }\r\n });\r\n }\r\n// Removed Stub for SenderPostManager.prototype.initialize.\r\n// Removed Stub for SenderPostManager.prototype.getSyncFetchPayload.\r\n// Removed Stub for SenderPostManager.prototype.SetConfig.\r\n// Removed Stub for SenderPostManager.prototype.getSenderInst.\r\n// Removed Stub for SenderPostManager.prototype.getFallbackInst.\r\n// Removed Stub for SenderPostManager.prototype._doTeardown.\r\n // This is a workaround for an IE bug when using dynamicProto() with classes that don't have any\n // non-dynamic functions or static properties/functions when using uglify-js to minify the resulting code.\n SenderPostManager.__ieDyn=1;\n\n return SenderPostManager;\r\n}());\r\nexport { SenderPostManager };\r\n//# sourceMappingURL=SenderPostManager.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { arrForEach, arrIndexOf, getDocument, getWindow, isArray, objForEachKey, objKeys } from \"@nevware21/ts-utils\";\r\nimport { _DYN_HANDLER, _DYN_LENGTH, _DYN_NAME, _DYN_PUSH, _DYN_REPLACE, _DYN_SPLICE, _DYN_SPLIT, _DYN_TYPE } from \"../__DynamicConstants\";\r\nimport { createElmNodeData, createUniqueNamespace } from \"./DataCacheHelper\";\r\nimport { STR_EMPTY } from \"./InternalConstants\";\r\n// Added to help with minfication\r\nvar strOnPrefix = \"on\";\r\nvar strAttachEvent = \"attachEvent\";\r\nvar strAddEventHelper = \"addEventListener\";\r\nvar strDetachEvent = \"detachEvent\";\r\nvar strRemoveEventListener = \"removeEventListener\";\r\nvar strEvents = \"events\";\r\nvar strVisibilityChangeEvt = \"visibilitychange\";\r\nvar strPageHide = \"pagehide\";\r\nvar strPageShow = \"pageshow\";\r\nvar strUnload = \"unload\";\r\nvar strBeforeUnload = \"beforeunload\";\r\nvar strPageHideNamespace = createUniqueNamespace(\"aiEvtPageHide\");\r\nvar strPageShowNamespace = createUniqueNamespace(\"aiEvtPageShow\");\r\nvar rRemoveEmptyNs = /\\.[\\.]+/g;\r\nvar rRemoveTrailingEmptyNs = /[\\.]+$/;\r\nvar _guid = 1;\r\nvar elmNodeData = createElmNodeData(\"events\");\r\nvar eventNamespace = /^([^.]*)(?:\\.(.+)|)/;\r\nfunction _normalizeNamespace(name) {\r\n if (name && name[_DYN_REPLACE /* @min:%2ereplace */]) {\r\n return name[_DYN_REPLACE /* @min:%2ereplace */](/^[\\s\\.]+|(?=[\\s\\.])[\\.\\s]+$/g, STR_EMPTY);\r\n }\r\n return name;\r\n}\r\nfunction _getEvtNamespace(eventName, evtNamespace) {\r\n var _a;\r\n if (evtNamespace) {\r\n var theNamespace_1 = STR_EMPTY;\r\n if (isArray(evtNamespace)) {\r\n theNamespace_1 = STR_EMPTY;\r\n arrForEach(evtNamespace, function (name) {\r\n name = _normalizeNamespace(name);\r\n if (name) {\r\n if (name[0] !== \".\") {\r\n name = \".\" + name;\r\n }\r\n theNamespace_1 += name;\r\n }\r\n });\r\n }\r\n else {\r\n theNamespace_1 = _normalizeNamespace(evtNamespace);\r\n }\r\n if (theNamespace_1) {\r\n if (theNamespace_1[0] !== \".\") {\r\n theNamespace_1 = \".\" + theNamespace_1;\r\n }\r\n // We may only have the namespace and not an eventName\r\n eventName = (eventName || STR_EMPTY) + theNamespace_1;\r\n }\r\n }\r\n var parsedEvent = (eventNamespace.exec(eventName || STR_EMPTY) || []);\r\n return _a = {},\r\n _a[_DYN_TYPE /* @min:type */] = parsedEvent[1],\r\n _a.ns = ((parsedEvent[2] || STR_EMPTY).replace(rRemoveEmptyNs, \".\").replace(rRemoveTrailingEmptyNs, STR_EMPTY)[_DYN_SPLIT /* @min:%2esplit */](\".\").sort()).join(\".\"),\r\n _a;\r\n}\r\n/**\r\n * Get all of the registered events on the target object, this is primarily used for testing cleanup but may also be used by\r\n * applications to remove their own events\r\n * @param target - The EventTarget that has registered events\r\n * @param eventName - [Optional] The name of the event to return the registered handlers and full name (with namespaces)\r\n * @param evtNamespace - [Optional] Additional namespace(s) to append to the event listeners so they can be uniquely identified and removed based on this namespace,\r\n * if the eventName also includes a namespace the namespace(s) are merged into a single namespace\r\n */\r\nexport function __getRegisteredEvents(target, eventName, evtNamespace) {\r\n var theEvents = [];\r\n var eventCache = elmNodeData.get(target, strEvents, {}, false);\r\n var evtName = _getEvtNamespace(eventName, evtNamespace);\r\n objForEachKey(eventCache, function (evtType, registeredEvents) {\r\n arrForEach(registeredEvents, function (value) {\r\n var _a;\r\n if (!evtName[_DYN_TYPE /* @min:%2etype */] || evtName[_DYN_TYPE /* @min:%2etype */] === value.evtName[_DYN_TYPE /* @min:%2etype */]) {\r\n if (!evtName.ns || evtName.ns === evtName.ns) {\r\n theEvents[_DYN_PUSH /* @min:%2epush */]((_a = {},\r\n _a[_DYN_NAME /* @min:name */] = value.evtName[_DYN_TYPE /* @min:%2etype */] + (value.evtName.ns ? \".\" + value.evtName.ns : STR_EMPTY),\r\n _a.handler = value[_DYN_HANDLER /* @min:%2ehandler */],\r\n _a));\r\n }\r\n }\r\n });\r\n });\r\n return theEvents;\r\n}\r\n// Exported for internal unit testing only\r\nfunction _getRegisteredEvents(target, evtName, addDefault) {\r\n if (addDefault === void 0) { addDefault = true; }\r\n var aiEvts = elmNodeData.get(target, strEvents, {}, addDefault);\r\n var registeredEvents = aiEvts[evtName];\r\n if (!registeredEvents) {\r\n registeredEvents = aiEvts[evtName] = [];\r\n }\r\n return registeredEvents;\r\n}\r\nfunction _doDetach(obj, evtName, handlerRef, useCapture) {\r\n if (obj && evtName && evtName[_DYN_TYPE /* @min:%2etype */]) {\r\n if (obj[strRemoveEventListener]) {\r\n obj[strRemoveEventListener](evtName[_DYN_TYPE /* @min:%2etype */], handlerRef, useCapture);\r\n }\r\n else if (obj[strDetachEvent]) {\r\n obj[strDetachEvent](strOnPrefix + evtName[_DYN_TYPE /* @min:%2etype */], handlerRef);\r\n }\r\n }\r\n}\r\nfunction _doAttach(obj, evtName, handlerRef, useCapture) {\r\n var result = false;\r\n if (obj && evtName && evtName[_DYN_TYPE /* @min:%2etype */] && handlerRef) {\r\n if (obj[strAddEventHelper]) {\r\n // all browsers except IE before version 9\r\n obj[strAddEventHelper](evtName[_DYN_TYPE /* @min:%2etype */], handlerRef, useCapture);\r\n result = true;\r\n }\r\n else if (obj[strAttachEvent]) {\r\n // IE before version 9\r\n obj[strAttachEvent](strOnPrefix + evtName[_DYN_TYPE /* @min:%2etype */], handlerRef);\r\n result = true;\r\n }\r\n }\r\n return result;\r\n}\r\nfunction _doUnregister(target, events, evtName, unRegFn) {\r\n var idx = events[_DYN_LENGTH /* @min:%2elength */];\r\n while (idx--) {\r\n var theEvent = events[idx];\r\n if (theEvent) {\r\n if (!evtName.ns || evtName.ns === theEvent.evtName.ns) {\r\n if (!unRegFn || unRegFn(theEvent)) {\r\n _doDetach(target, theEvent.evtName, theEvent[_DYN_HANDLER /* @min:%2ehandler */], theEvent.capture);\r\n // Remove the registered event\r\n events[_DYN_SPLICE /* @min:%2esplice */](idx, 1);\r\n }\r\n }\r\n }\r\n }\r\n}\r\nfunction _unregisterEvents(target, evtName, unRegFn) {\r\n if (evtName[_DYN_TYPE /* @min:%2etype */]) {\r\n _doUnregister(target, _getRegisteredEvents(target, evtName[_DYN_TYPE /* @min:%2etype */]), evtName, unRegFn);\r\n }\r\n else {\r\n var eventCache = elmNodeData.get(target, strEvents, {});\r\n objForEachKey(eventCache, function (evtType, events) {\r\n _doUnregister(target, events, evtName, unRegFn);\r\n });\r\n // Cleanup\r\n if (objKeys(eventCache)[_DYN_LENGTH /* @min:%2elength */] === 0) {\r\n elmNodeData.kill(target, strEvents);\r\n }\r\n }\r\n}\r\nexport function mergeEvtNamespace(theNamespace, namespaces) {\r\n var newNamespaces;\r\n if (namespaces) {\r\n if (isArray(namespaces)) {\r\n newNamespaces = [theNamespace].concat(namespaces);\r\n }\r\n else {\r\n newNamespaces = [theNamespace, namespaces];\r\n }\r\n // resort the namespaces so they are always in order\r\n newNamespaces = (_getEvtNamespace(\"xx\", newNamespaces).ns)[_DYN_SPLIT /* @min:%2esplit */](\".\");\r\n }\r\n else {\r\n newNamespaces = theNamespace;\r\n }\r\n return newNamespaces;\r\n}\r\n/**\r\n * Binds the specified function to an event, so that the function gets called whenever the event fires on the object\r\n * @param obj - Object to add the event too.\r\n * @param eventName - String that specifies any of the standard DHTML Events without \"on\" prefix, if may also include an optional (dot \".\" prefixed)\r\n * namespaces \"click\" \"click.mynamespace\" in addition to specific namespaces.\r\n * @param handlerRef - Pointer that specifies the function to call when event fires\r\n * @param evtNamespace - [Optional] Additional namespace(s) to append to the event listeners so they can be uniquely identified and removed based on this namespace,\r\n * if the eventName also includes a namespace the namespace(s) are merged into a single namespace\r\n * @param useCapture - [Optional] Defaults to false\r\n * @returns True if the function was bound successfully to the event, otherwise false\r\n */\r\nexport function eventOn(target, eventName, handlerRef, evtNamespace, useCapture) {\r\n var _a;\r\n if (useCapture === void 0) { useCapture = false; }\r\n var result = false;\r\n if (target) {\r\n try {\r\n var evtName = _getEvtNamespace(eventName, evtNamespace);\r\n result = _doAttach(target, evtName, handlerRef, useCapture);\r\n if (result && elmNodeData.accept(target)) {\r\n var registeredEvent = (_a = {\r\n guid: _guid++,\r\n evtName: evtName\r\n },\r\n _a[_DYN_HANDLER /* @min:handler */] = handlerRef,\r\n _a.capture = useCapture,\r\n _a);\r\n _getRegisteredEvents(target, evtName.type)[_DYN_PUSH /* @min:%2epush */](registeredEvent);\r\n }\r\n }\r\n catch (e) {\r\n // Just Ignore any error so that we don't break any execution path\r\n }\r\n }\r\n return result;\r\n}\r\n/**\r\n * Removes an event handler for the specified event\r\n * @param Object - to remove the event from\r\n * @param eventName - {string} - The name of the event, with optional namespaces or just the namespaces,\r\n * such as \"click\", \"click.mynamespace\" or \".mynamespace\"\r\n * @param handlerRef - {any} - The callback function that needs to be removed from the given event, when using a\r\n * namespace (with or without a qualifying event) this may be null to remove all previously attached event handlers\r\n * otherwise this will only remove events with this specific handler.\r\n * @param evtNamespace - [Optional] Additional namespace(s) to append to the event listeners so they can be uniquely identified and removed based on this namespace,\r\n * if the eventName also includes a namespace the namespace(s) are merged into a single namespace\r\n * @param useCapture - [Optional] Defaults to false\r\n */\r\nexport function eventOff(target, eventName, handlerRef, evtNamespace, useCapture) {\r\n if (useCapture === void 0) { useCapture = false; }\r\n if (target) {\r\n try {\r\n var evtName_1 = _getEvtNamespace(eventName, evtNamespace);\r\n var found_1 = false;\r\n _unregisterEvents(target, evtName_1, function (regEvent) {\r\n if ((evtName_1.ns && !handlerRef) || regEvent[_DYN_HANDLER /* @min:%2ehandler */] === handlerRef) {\r\n found_1 = true;\r\n return true;\r\n }\r\n return false;\r\n });\r\n if (!found_1) {\r\n // fallback to try and remove as requested\r\n _doDetach(target, evtName_1, handlerRef, useCapture);\r\n }\r\n }\r\n catch (e) {\r\n // Just Ignore any error so that we don't break any execution path\r\n }\r\n }\r\n}\r\n/**\r\n * Binds the specified function to an event, so that the function gets called whenever the event fires on the object\r\n * @param obj - Object to add the event too.\r\n * @param eventNameWithoutOn - String that specifies any of the standard DHTML Events without \"on\" prefix and optional (dot \".\" prefixed) namespaces \"click\" \"click.mynamespace\".\r\n * @param handlerRef - Pointer that specifies the function to call when event fires\r\n * @param useCapture - [Optional] Defaults to false\r\n * @returns True if the function was bound successfully to the event, otherwise false\r\n */\r\nexport function attachEvent(obj, eventNameWithoutOn, handlerRef, useCapture) {\r\n if (useCapture === void 0) { useCapture = false; }\r\n return eventOn(obj, eventNameWithoutOn, handlerRef, null, useCapture);\r\n}\r\n/**\r\n * Removes an event handler for the specified event\r\n * @param Object - to remove the event from\r\n * @param eventNameWithoutOn - {string} - The name of the event, with optional namespaces or just the namespaces,\r\n * such as \"click\", \"click.mynamespace\" or \".mynamespace\"\r\n * @param handlerRef - {any} - The callback function that needs to be removed from the given event, when using a\r\n * namespace (with or without a qualifying event) this may be null to remove all previously attached event handlers\r\n * otherwise this will only remove events with this specific handler.\r\n * @param useCapture - [Optional] Defaults to false\r\n */\r\nexport function detachEvent(obj, eventNameWithoutOn, handlerRef, useCapture) {\r\n if (useCapture === void 0) { useCapture = false; }\r\n eventOff(obj, eventNameWithoutOn, handlerRef, null, useCapture);\r\n}\r\n/**\r\n * Trys to add an event handler for the specified event to the window, body and document\r\n * @param eventName - {string} - The name of the event\r\n * @param callback - {any} - The callback function that needs to be executed for the given event\r\n * @param evtNamespace - [Optional] Namespace(s) to append to the event listeners so they can be uniquely identified and removed based on this namespace.\r\n * @return {boolean} - true if the handler was successfully added\r\n */\r\nexport function addEventHandler(eventName, callback, evtNamespace) {\r\n var result = false;\r\n var w = getWindow();\r\n if (w) {\r\n result = eventOn(w, eventName, callback, evtNamespace);\r\n result = eventOn(w[\"body\"], eventName, callback, evtNamespace) || result;\r\n }\r\n var doc = getDocument();\r\n if (doc) {\r\n result = eventOn(doc, eventName, callback, evtNamespace) || result;\r\n }\r\n return result;\r\n}\r\n/**\r\n * Trys to remove event handler(s) for the specified event/namespace to the window, body and document\r\n * @param eventName - {string} - The name of the event, with optional namespaces or just the namespaces,\r\n * such as \"click\", \"click.mynamespace\" or \".mynamespace\"\r\n * @param callback - {any} - - The callback function that needs to be removed from the given event, when using a\r\n * namespace (with or without a qualifying event) this may be null to remove all previously attached event handlers\r\n * otherwise this will only remove events with this specific handler.\r\n * @param evtNamespace - [Optional] Namespace(s) to append to the event listeners so they can be uniquely identified and removed based on this namespace.\r\n */\r\nexport function removeEventHandler(eventName, callback, evtNamespace) {\r\n var w = getWindow();\r\n if (w) {\r\n eventOff(w, eventName, callback, evtNamespace);\r\n eventOff(w[\"body\"], eventName, callback, evtNamespace);\r\n }\r\n var doc = getDocument();\r\n if (doc) {\r\n eventOff(doc, eventName, callback, evtNamespace);\r\n }\r\n}\r\n/**\r\n * Bind the listener to the array of events\r\n * @param events - An string array of event names to bind the listener to\r\n * @param listener - The event callback to call when the event is triggered\r\n * @param excludeEvents - [Optional] An array of events that should not be hooked (if possible), unless no other events can be.\r\n * @param evtNamespace - [Optional] Namespace(s) to append to the event listeners so they can be uniquely identified and removed based on this namespace.\r\n * @returns true - when at least one of the events was registered otherwise false\r\n */\r\nfunction _addEventListeners(events, listener, excludeEvents, evtNamespace) {\r\n var added = false;\r\n if (listener && events && events[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n arrForEach(events, function (name) {\r\n if (name) {\r\n if (!excludeEvents || arrIndexOf(excludeEvents, name) === -1) {\r\n added = addEventHandler(name, listener, evtNamespace) || added;\r\n }\r\n }\r\n });\r\n }\r\n return added;\r\n}\r\n/**\r\n * Bind the listener to the array of events\r\n * @param events - An string array of event names to bind the listener to\r\n * @param listener - The event callback to call when the event is triggered\r\n * @param excludeEvents - [Optional] An array of events that should not be hooked (if possible), unless no other events can be.\r\n * @param evtNamespace - [Optional] Namespace(s) to append to the event listeners so they can be uniquely identified and removed based on this namespace.\r\n * @returns true - when at least one of the events was registered otherwise false\r\n */\r\nexport function addEventListeners(events, listener, excludeEvents, evtNamespace) {\r\n var added = false;\r\n if (listener && events && isArray(events)) {\r\n added = _addEventListeners(events, listener, excludeEvents, evtNamespace);\r\n if (!added && excludeEvents && excludeEvents[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n // Failed to add any listeners and we excluded some, so just attempt to add the excluded events\r\n added = _addEventListeners(events, listener, null, evtNamespace);\r\n }\r\n }\r\n return added;\r\n}\r\n/**\r\n * Remove the listener from the array of events\r\n * @param events - An string array of event names to bind the listener to\r\n * @param listener - The event callback to call when the event is triggered\r\n * @param evtNamespace - [Optional] Namespace(s) to append to the event listeners so they can be uniquely identified and removed based on this namespace.\r\n */\r\nexport function removeEventListeners(events, listener, evtNamespace) {\r\n if (events && isArray(events)) {\r\n arrForEach(events, function (name) {\r\n if (name) {\r\n removeEventHandler(name, listener, evtNamespace);\r\n }\r\n });\r\n }\r\n}\r\n/**\r\n * Listen to the 'beforeunload', 'unload' and 'pagehide' events which indicates a page unload is occurring,\r\n * this does NOT listen to the 'visibilitychange' event as while it does indicate that the page is being hidden\r\n * it does not *necessarily* mean that the page is being completely unloaded, it can mean that the user is\r\n * just navigating to a different Tab and may come back (without unloading the page). As such you may also\r\n * need to listen to the 'addPageHideEventListener' and 'addPageShowEventListener' events.\r\n * @param listener - The event callback to call when a page unload event is triggered\r\n * @param excludeEvents - [Optional] An array of events that should not be hooked, unless no other events can be.\r\n * @param evtNamespace - [Optional] Namespace(s) to append to the event listeners so they can be uniquely identified and removed based on this namespace.\r\n * @returns true - when at least one of the events was registered otherwise false\r\n */\r\nexport function addPageUnloadEventListener(listener, excludeEvents, evtNamespace) {\r\n // Hook the unload event for the document, window and body to ensure that the client events are flushed to the server\r\n // As just hooking the window does not always fire (on chrome) for page navigation's.\r\n return addEventListeners([strBeforeUnload, strUnload, strPageHide], listener, excludeEvents, evtNamespace);\r\n}\r\n/**\r\n * Remove any matching 'beforeunload', 'unload' and 'pagehide' events that may have been added via addEventListener,\r\n * addEventListeners, addPageUnloadEventListener or addPageHideEventListener.\r\n * @param listener - The specific event callback to to be removed\r\n * @param evtNamespace - [Optional] Namespace(s) uniquely identified and removed based on this namespace.\r\n * @returns true - when at least one of the events was registered otherwise false\r\n */\r\nexport function removePageUnloadEventListener(listener, evtNamespace) {\r\n removeEventListeners([strBeforeUnload, strUnload, strPageHide], listener, evtNamespace);\r\n}\r\n/**\r\n * Listen to the pagehide and visibility changing to 'hidden' events, because the 'visibilitychange' uses\r\n * an internal proxy to detect the visibility state you SHOULD use a unique namespace when if you plan to call\r\n * removePageShowEventListener as the remove ignores the listener argument for the 'visibilitychange' event.\r\n * @param listener - The event callback to call when a page hide event is triggered\r\n * @param excludeEvents - [Optional] An array of events that should not be hooked (if possible), unless no other events can be.\r\n * @param evtNamespace - [Optional] A Namespace to append to the event listeners so they can be uniquely identified and removed\r\n * based on this namespace. This call also adds an additional unique \"pageshow\" namespace to the events\r\n * so that only the matching \"removePageHideEventListener\" can remove these events.\r\n * Suggestion: pass as true if you are also calling addPageUnloadEventListener as that also hooks pagehide\r\n * @returns true - when at least one of the events was registered otherwise false\r\n */\r\nexport function addPageHideEventListener(listener, excludeEvents, evtNamespace) {\r\n function _handlePageVisibility(evt) {\r\n var doc = getDocument();\r\n if (listener && doc && doc.visibilityState === \"hidden\") {\r\n listener(evt);\r\n }\r\n }\r\n // add the unique page show namespace to any provided namespace so we can only remove the ones added by \"pagehide\"\r\n var newNamespaces = mergeEvtNamespace(strPageHideNamespace, evtNamespace);\r\n var pageUnloadAdded = _addEventListeners([strPageHide], listener, excludeEvents, newNamespaces);\r\n if (!excludeEvents || arrIndexOf(excludeEvents, strVisibilityChangeEvt) === -1) {\r\n pageUnloadAdded = _addEventListeners([strVisibilityChangeEvt], _handlePageVisibility, excludeEvents, newNamespaces) || pageUnloadAdded;\r\n }\r\n if (!pageUnloadAdded && excludeEvents) {\r\n // Failed to add any listeners and we where requested to exclude some, so just call again without excluding anything\r\n pageUnloadAdded = addPageHideEventListener(listener, null, evtNamespace);\r\n }\r\n return pageUnloadAdded;\r\n}\r\n/**\r\n * Removes the pageHide event listeners added by addPageHideEventListener, because the 'visibilitychange' uses\r\n * an internal proxy to detect the visibility state you SHOULD use a unique namespace when calling addPageHideEventListener\r\n * as the remove ignores the listener argument for the 'visibilitychange' event.\r\n * @param listener - The specific listener to remove for the 'pageshow' event only (ignored for 'visibilitychange')\r\n * @param evtNamespace - The unique namespace used when calling addPageShowEventListener\r\n */\r\nexport function removePageHideEventListener(listener, evtNamespace) {\r\n // add the unique page show namespace to any provided namespace so we only remove the ones added by \"pagehide\"\r\n var newNamespaces = mergeEvtNamespace(strPageHideNamespace, evtNamespace);\r\n removeEventListeners([strPageHide], listener, newNamespaces);\r\n removeEventListeners([strVisibilityChangeEvt], null, newNamespaces);\r\n}\r\n/**\r\n * Listen to the pageshow and visibility changing to 'visible' events, because the 'visibilitychange' uses\r\n * an internal proxy to detect the visibility state you SHOULD use a unique namespace when if you plan to call\r\n * removePageShowEventListener as the remove ignores the listener argument for the 'visibilitychange' event.\r\n * @param listener - The event callback to call when a page is show event is triggered\r\n * @param excludeEvents - [Optional] An array of events that should not be hooked (if possible), unless no other events can be.\r\n * @param evtNamespace - [Optional/Recommended] A Namespace to append to the event listeners so they can be uniquely\r\n * identified and removed based on this namespace. This call also adds an additional unique \"pageshow\" namespace to the events\r\n * so that only the matching \"removePageShowEventListener\" can remove these events.\r\n * @returns true - when at least one of the events was registered otherwise false\r\n */\r\nexport function addPageShowEventListener(listener, excludeEvents, evtNamespace) {\r\n function _handlePageVisibility(evt) {\r\n var doc = getDocument();\r\n if (listener && doc && doc.visibilityState === \"visible\") {\r\n listener(evt);\r\n }\r\n }\r\n // add the unique page show namespace to any provided namespace so we can only remove the ones added by \"pageshow\"\r\n var newNamespaces = mergeEvtNamespace(strPageShowNamespace, evtNamespace);\r\n var pageShowAdded = _addEventListeners([strPageShow], listener, excludeEvents, newNamespaces);\r\n pageShowAdded = _addEventListeners([strVisibilityChangeEvt], _handlePageVisibility, excludeEvents, newNamespaces) || pageShowAdded;\r\n if (!pageShowAdded && excludeEvents) {\r\n // Failed to add any listeners and we where requested to exclude some, so just call again without excluding anything\r\n pageShowAdded = addPageShowEventListener(listener, null, evtNamespace);\r\n }\r\n return pageShowAdded;\r\n}\r\n/**\r\n * Removes the pageShow event listeners added by addPageShowEventListener, because the 'visibilitychange' uses\r\n * an internal proxy to detect the visibility state you SHOULD use a unique namespace when calling addPageShowEventListener\r\n * as the remove ignores the listener argument for the 'visibilitychange' event.\r\n * @param listener - The specific listener to remove for the 'pageshow' event only (ignored for 'visibilitychange')\r\n * @param evtNamespace - The unique namespace used when calling addPageShowEventListener\r\n */\r\nexport function removePageShowEventListener(listener, evtNamespace) {\r\n // add the unique page show namespace to any provided namespace so we only remove the ones added by \"pageshow\"\r\n var newNamespaces = mergeEvtNamespace(strPageShowNamespace, evtNamespace);\r\n removeEventListeners([strPageShow], listener, newNamespaces);\r\n removeEventListeners([strVisibilityChangeEvt], null, newNamespaces);\r\n}\r\n//# sourceMappingURL=EventHelpers.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { strShimFunction, strShimPrototype } from \"@microsoft/applicationinsights-shims\";\r\nimport { getInst, objHasOwnProperty } from \"@nevware21/ts-utils\";\r\nimport { _DYN_APPLY, _DYN_LENGTH, _DYN_NAME, _DYN_PUSH, _DYN_SPLICE } from \"../__DynamicConstants\";\r\nimport { _getObjProto } from \"./HelperFuncs\";\r\nvar aiInstrumentHooks = \"_aiHooks\";\r\nvar cbNames = [\r\n \"req\", \"rsp\", \"hkErr\", \"fnErr\"\r\n];\r\n/** @ignore */\r\nfunction _arrLoop(arr, fn) {\r\n if (arr) {\r\n for (var lp = 0; lp < arr[_DYN_LENGTH /* @min:%2elength */]; lp++) {\r\n if (fn(arr[lp], lp)) {\r\n break;\r\n }\r\n }\r\n }\r\n}\r\n/** @ignore */\r\nfunction _doCallbacks(hooks, callDetails, cbArgs, hookCtx, type) {\r\n if (type >= 0 /* CallbackType.Request */ && type <= 2 /* CallbackType.HookError */) {\r\n _arrLoop(hooks, function (hook, idx) {\r\n var cbks = hook.cbks;\r\n var cb = cbks[cbNames[type]];\r\n if (cb) {\r\n // Set the specific hook context implementation using a lazy creation pattern\r\n callDetails.ctx = function () {\r\n var ctx = hookCtx[idx] = (hookCtx[idx] || {});\r\n return ctx;\r\n };\r\n try {\r\n cb[_DYN_APPLY /* @min:%2eapply */](callDetails.inst, cbArgs);\r\n }\r\n catch (err) {\r\n var orgEx = callDetails.err;\r\n try {\r\n // Report Hook error via the callback\r\n var hookErrorCb = cbks[cbNames[2 /* CallbackType.HookError */]];\r\n if (hookErrorCb) {\r\n callDetails.err = err;\r\n hookErrorCb[_DYN_APPLY /* @min:%2eapply */](callDetails.inst, cbArgs);\r\n }\r\n }\r\n catch (e) {\r\n // Not much we can do here -- swallowing the exception to avoid crashing the hosting app\r\n }\r\n finally {\r\n // restore the original exception (if any)\r\n callDetails.err = orgEx;\r\n }\r\n }\r\n }\r\n });\r\n }\r\n}\r\n/** @ignore */\r\nfunction _createFunctionHook(aiHook) {\r\n // Define a temporary method that queues-up a the real method call\r\n return function () {\r\n var _a;\r\n var funcThis = this;\r\n // Capture the original arguments passed to the method\r\n var orgArgs = arguments;\r\n var hooks = aiHook.h;\r\n var funcArgs = (_a = {},\r\n _a[_DYN_NAME /* @min:name */] = aiHook.n,\r\n _a.inst = funcThis,\r\n _a.ctx = null,\r\n _a.set = _replaceArg,\r\n _a);\r\n var hookCtx = [];\r\n var cbArgs = _createArgs([funcArgs], orgArgs);\r\n funcArgs.evt = getInst(\"event\");\r\n function _createArgs(target, theArgs) {\r\n _arrLoop(theArgs, function (arg) {\r\n target[_DYN_PUSH /* @min:%2epush */](arg);\r\n });\r\n return target;\r\n }\r\n function _replaceArg(idx, value) {\r\n orgArgs = _createArgs([], orgArgs);\r\n orgArgs[idx] = value;\r\n cbArgs = _createArgs([funcArgs], orgArgs);\r\n }\r\n // Call the pre-request hooks\r\n _doCallbacks(hooks, funcArgs, cbArgs, hookCtx, 0 /* CallbackType.Request */);\r\n // Call the original function was called\r\n var theFunc = aiHook.f;\r\n if (theFunc) {\r\n try {\r\n funcArgs.rslt = theFunc[_DYN_APPLY /* @min:%2eapply */](funcThis, orgArgs);\r\n }\r\n catch (err) {\r\n // Report the request callback\r\n funcArgs.err = err;\r\n _doCallbacks(hooks, funcArgs, cbArgs, hookCtx, 3 /* CallbackType.FunctionError */);\r\n // rethrow the original exception so anyone listening for it can catch the exception\r\n throw err;\r\n }\r\n }\r\n // Call the post-request hooks\r\n _doCallbacks(hooks, funcArgs, cbArgs, hookCtx, 1 /* CallbackType.Response */);\r\n return funcArgs.rslt;\r\n };\r\n}\r\n/** @ignore */\r\nfunction _getOwner(target, name, checkPrototype, checkParentProto) {\r\n var owner = null;\r\n if (target) {\r\n if (objHasOwnProperty(target, name)) {\r\n owner = target;\r\n }\r\n else if (checkPrototype) {\r\n owner = _getOwner(_getObjProto(target), name, checkParentProto, false);\r\n }\r\n }\r\n return owner;\r\n}\r\n/**\r\n * Intercept the named prototype functions for the target class / object\r\n * @param target - The target object\r\n * @param funcName - The function name\r\n * @param callbacks - The callbacks to configure and call whenever the function is called\r\n */\r\nexport function InstrumentProto(target, funcName, callbacks) {\r\n if (target) {\r\n return InstrumentFunc(target[strShimPrototype], funcName, callbacks, false);\r\n }\r\n return null;\r\n}\r\n/**\r\n * Intercept the named prototype functions for the target class / object\r\n * @param target - The target object\r\n * @param funcNames - The function names to intercept and call\r\n * @param callbacks - The callbacks to configure and call whenever the function is called\r\n */\r\nexport function InstrumentProtos(target, funcNames, callbacks) {\r\n if (target) {\r\n return InstrumentFuncs(target[strShimPrototype], funcNames, callbacks, false);\r\n }\r\n return null;\r\n}\r\nfunction _createInstrumentHook(owner, funcName, fn, callbacks) {\r\n var aiHook = fn && fn[aiInstrumentHooks];\r\n if (!aiHook) {\r\n // Only hook the function once\r\n aiHook = {\r\n i: 0,\r\n n: funcName,\r\n f: fn,\r\n h: []\r\n };\r\n // Override (hook) the original function\r\n var newFunc = _createFunctionHook(aiHook);\r\n newFunc[aiInstrumentHooks] = aiHook; // Tag and store the function hooks\r\n owner[funcName] = newFunc;\r\n }\r\n var theHook = {\r\n // tslint:disable:object-literal-shorthand\r\n id: aiHook.i,\r\n cbks: callbacks,\r\n rm: function () {\r\n // DO NOT Use () => { shorthand for the function as the this gets replaced\r\n // with the outer this and not the this for theHook instance.\r\n var id = this.id;\r\n _arrLoop(aiHook.h, function (hook, idx) {\r\n if (hook.id === id) {\r\n aiHook.h[_DYN_SPLICE /* @min:%2esplice */](idx, 1);\r\n return 1;\r\n }\r\n });\r\n }\r\n // tslint:enable:object-literal-shorthand\r\n };\r\n aiHook.i++;\r\n aiHook.h[_DYN_PUSH /* @min:%2epush */](theHook);\r\n return theHook;\r\n}\r\n/**\r\n * Intercept the named prototype functions for the target class / object\r\n * @param target - The target object\r\n * @param funcName - The function name\r\n * @param callbacks - The callbacks to configure and call whenever the function is called\r\n * @param checkPrototype - If the function doesn't exist on the target should it attempt to hook the prototype function\r\n * @param checkParentProto - If the function doesn't exist on the target or it's prototype should it attempt to hook the parent's prototype\r\n */\r\nexport function InstrumentFunc(target, funcName, callbacks, checkPrototype, checkParentProto) {\r\n if (checkPrototype === void 0) { checkPrototype = true; }\r\n if (target && funcName && callbacks) {\r\n var owner = _getOwner(target, funcName, checkPrototype, checkParentProto);\r\n if (owner) {\r\n var fn = owner[funcName];\r\n if (typeof fn === strShimFunction) {\r\n return _createInstrumentHook(owner, funcName, fn, callbacks);\r\n }\r\n }\r\n }\r\n return null;\r\n}\r\n/**\r\n * Intercept the named functions for the target class / object\r\n * @param target - The target object\r\n * @param funcNames - The function names to intercept and call\r\n * @param callbacks - The callbacks to configure and call whenever the function is called\r\n * @param checkPrototype - If the function doesn't exist on the target should it attempt to hook the prototype function\r\n * @param checkParentProto - If the function doesn't exist on the target or it's prototype should it attempt to hook the parent's prototype\r\n */\r\nexport function InstrumentFuncs(target, funcNames, callbacks, checkPrototype, checkParentProto) {\r\n if (checkPrototype === void 0) { checkPrototype = true; }\r\n var hooks = null;\r\n _arrLoop(funcNames, function (funcName) {\r\n var hook = InstrumentFunc(target, funcName, callbacks, checkPrototype, checkParentProto);\r\n if (hook) {\r\n if (!hooks) {\r\n hooks = [];\r\n }\r\n hooks[_DYN_PUSH /* @min:%2epush */](hook);\r\n }\r\n });\r\n return hooks;\r\n}\r\n/**\r\n * Add an instrumentation hook to the provided named \"event\" for the target class / object, this doesn't check whether the\r\n * named \"event\" is in fact a function and just assigns the instrumentation hook to the target[evtName]\r\n * @param target - The target object\r\n * @param evtName - The name of the event\r\n * @param callbacks - The callbacks to configure and call whenever the function is called\r\n * @param checkPrototype - If the function doesn't exist on the target should it attempt to hook the prototype function\r\n * @param checkParentProto - If the function doesn't exist on the target or it's prototype should it attempt to hook the parent's prototype\r\n */\r\nexport function InstrumentEvent(target, evtName, callbacks, checkPrototype, checkParentProto) {\r\n if (target && evtName && callbacks) {\r\n var owner = _getOwner(target, evtName, checkPrototype, checkParentProto) || target;\r\n if (owner) {\r\n return _createInstrumentHook(owner, evtName, owner[evtName], callbacks);\r\n }\r\n }\r\n return null;\r\n}\r\n//# sourceMappingURL=InstrumentHooks.js.map","/*\n * Application Insights JavaScript SDK - Common, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n/**\r\n * This is an internal property used to cause internal (reporting) requests to be ignored from reporting\r\n * additional telemetry, to handle polyfil implementations ALL urls used with a disabled request will\r\n * also be ignored for future requests even when this property is not provided.\r\n * Tagging as Ignore as this is an internal value and is not expected to be used outside of the SDK\r\n * @ignore\r\n */\r\nexport var DisabledPropertyName = \"Microsoft_ApplicationInsights_BypassAjaxInstrumentation\";\r\nexport var SampleRate = \"sampleRate\";\r\nexport var ProcessLegacy = \"ProcessLegacy\";\r\nexport var HttpMethod = \"http.method\";\r\nexport var DEFAULT_BREEZE_ENDPOINT = \"https://dc.services.visualstudio.com\";\r\nexport var DEFAULT_BREEZE_PATH = \"/v2/track\";\r\nexport var strNotSpecified = \"not_specified\";\r\nexport var strIkey = \"iKey\";\r\n//# sourceMappingURL=Constants.js.map","/*\n * Application Insights JavaScript SDK - Common, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { createValueMap } from \"@microsoft/applicationinsights-core-js\";\r\nexport var RequestHeaders = createValueMap({\r\n requestContextHeader: [0 /* eRequestHeaders.requestContextHeader */, \"Request-Context\"],\r\n requestContextTargetKey: [1 /* eRequestHeaders.requestContextTargetKey */, \"appId\"],\r\n requestContextAppIdFormat: [2 /* eRequestHeaders.requestContextAppIdFormat */, \"appId=cid-v1:\"],\r\n requestIdHeader: [3 /* eRequestHeaders.requestIdHeader */, \"Request-Id\"],\r\n traceParentHeader: [4 /* eRequestHeaders.traceParentHeader */, \"traceparent\"],\r\n traceStateHeader: [5 /* eRequestHeaders.traceStateHeader */, \"tracestate\"],\r\n sdkContextHeader: [6 /* eRequestHeaders.sdkContextHeader */, \"Sdk-Context\"],\r\n sdkContextHeaderAppIdRequest: [7 /* eRequestHeaders.sdkContextHeaderAppIdRequest */, \"appId\"],\r\n requestContextHeaderLowerCase: [8 /* eRequestHeaders.requestContextHeaderLowerCase */, \"request-context\"]\r\n});\r\n//# sourceMappingURL=RequestResponseHeaders.js.map","/*\n * Application Insights JavaScript SDK - Common, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n// @skip-file-minify\r\n// ##############################################################\r\n// AUTO GENERATED FILE: This file is Auto Generated during build.\r\n// ##############################################################\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\n// Note: DON'T Export these const from the package as we are still targeting ES3 this will export a mutable variables that someone could change!!!\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\nexport var _DYN_SPLIT = \"split\"; // Count: 6\r\nexport var _DYN_LENGTH = \"length\"; // Count: 41\r\nexport var _DYN_TO_LOWER_CASE = \"toLowerCase\"; // Count: 6\r\nexport var _DYN_INGESTIONENDPOINT = \"ingestionendpoint\"; // Count: 6\r\nexport var _DYN_TO_STRING = \"toString\"; // Count: 9\r\nexport var _DYN_PUSH = \"push\"; // Count: 5\r\nexport var _DYN_REMOVE_ITEM = \"removeItem\"; // Count: 3\r\nexport var _DYN_NAME = \"name\"; // Count: 11\r\nexport var _DYN_MESSAGE = \"message\"; // Count: 10\r\nexport var _DYN_COUNT = \"count\"; // Count: 8\r\nexport var _DYN_PRE_TRIGGER_DATE = \"preTriggerDate\"; // Count: 4\r\nexport var _DYN_DISABLED = \"disabled\"; // Count: 3\r\nexport var _DYN_INTERVAL = \"interval\"; // Count: 3\r\nexport var _DYN_DAYS_OF_MONTH = \"daysOfMonth\"; // Count: 3\r\nexport var _DYN_DATE = \"date\"; // Count: 5\r\nexport var _DYN_GET_UTCDATE = \"getUTCDate\"; // Count: 3\r\nexport var _DYN_STRINGIFY = \"stringify\"; // Count: 4\r\nexport var _DYN_PATHNAME = \"pathname\"; // Count: 4\r\nexport var _DYN_CORRELATION_HEADER_E0 = \"correlationHeaderExcludePatterns\"; // Count: 2\r\nexport var _DYN_EXTENSION_CONFIG = \"extensionConfig\"; // Count: 4\r\nexport var _DYN_EXCEPTIONS = \"exceptions\"; // Count: 6\r\nexport var _DYN_PARSED_STACK = \"parsedStack\"; // Count: 13\r\nexport var _DYN_PROPERTIES = \"properties\"; // Count: 9\r\nexport var _DYN_MEASUREMENTS = \"measurements\"; // Count: 9\r\nexport var _DYN_SIZE_IN_BYTES = \"sizeInBytes\"; // Count: 11\r\nexport var _DYN_TYPE_NAME = \"typeName\"; // Count: 11\r\nexport var _DYN_SEVERITY_LEVEL = \"severityLevel\"; // Count: 5\r\nexport var _DYN_PROBLEM_GROUP = \"problemGroup\"; // Count: 3\r\nexport var _DYN_IS_MANUAL = \"isManual\"; // Count: 3\r\nexport var _DYN__CREATE_FROM_INTERFA1 = \"CreateFromInterface\"; // Count: 2\r\nexport var _DYN_ASSEMBLY = \"assembly\"; // Count: 7\r\nexport var _DYN_FILE_NAME = \"fileName\"; // Count: 8\r\nexport var _DYN_HAS_FULL_STACK = \"hasFullStack\"; // Count: 6\r\nexport var _DYN_LEVEL = \"level\"; // Count: 5\r\nexport var _DYN_METHOD = \"method\"; // Count: 7\r\nexport var _DYN_LINE = \"line\"; // Count: 6\r\nexport var _DYN_DURATION = \"duration\"; // Count: 4\r\nexport var _DYN_RECEIVED_RESPONSE = \"receivedResponse\"; // Count: 2\r\n//# sourceMappingURL=__DynamicConstants.js.map","/*\n * Application Insights JavaScript SDK - Common, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { _throwInternal, getJSON, hasJSON, isObject, objForEachKey, strTrim } from \"@microsoft/applicationinsights-core-js\";\r\nimport { asString, strSubstr, strSubstring } from \"@nevware21/ts-utils\";\r\nimport { _DYN_LENGTH, _DYN_STRINGIFY, _DYN_TO_STRING } from \"../../__DynamicConstants\";\r\nexport function dataSanitizeKeyAndAddUniqueness(logger, key, map) {\r\n var origLength = key[_DYN_LENGTH /* @min:%2elength */];\r\n var field = dataSanitizeKey(logger, key);\r\n // validation truncated the length. We need to add uniqueness\r\n if (field[_DYN_LENGTH /* @min:%2elength */] !== origLength) {\r\n var i = 0;\r\n var uniqueField = field;\r\n while (map[uniqueField] !== undefined) {\r\n i++;\r\n uniqueField = strSubstring(field, 0, 150 /* DataSanitizerValues.MAX_NAME_LENGTH */ - 3) + dsPadNumber(i);\r\n }\r\n field = uniqueField;\r\n }\r\n return field;\r\n}\r\nexport function dataSanitizeKey(logger, name) {\r\n var nameTrunc;\r\n if (name) {\r\n // Remove any leading or trailing whitespace\r\n name = strTrim(asString(name));\r\n // truncate the string to 150 chars\r\n if (name[_DYN_LENGTH /* @min:%2elength */] > 150 /* DataSanitizerValues.MAX_NAME_LENGTH */) {\r\n nameTrunc = strSubstring(name, 0, 150 /* DataSanitizerValues.MAX_NAME_LENGTH */);\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 57 /* _eInternalMessageId.NameTooLong */, \"name is too long. It has been truncated to \" + 150 /* DataSanitizerValues.MAX_NAME_LENGTH */ + \" characters.\", { name: name }, true);\r\n }\r\n }\r\n return nameTrunc || name;\r\n}\r\nexport function dataSanitizeString(logger, value, maxLength) {\r\n if (maxLength === void 0) { maxLength = 1024 /* DataSanitizerValues.MAX_STRING_LENGTH */; }\r\n var valueTrunc;\r\n if (value) {\r\n maxLength = maxLength ? maxLength : 1024 /* DataSanitizerValues.MAX_STRING_LENGTH */; // in case default parameters dont work\r\n value = strTrim(asString(value));\r\n if (value[_DYN_LENGTH /* @min:%2elength */] > maxLength) {\r\n valueTrunc = strSubstring(value, 0, maxLength);\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 61 /* _eInternalMessageId.StringValueTooLong */, \"string value is too long. It has been truncated to \" + maxLength + \" characters.\", { value: value }, true);\r\n }\r\n }\r\n return valueTrunc || value;\r\n}\r\nexport function dataSanitizeUrl(logger, url) {\r\n return dataSanitizeInput(logger, url, 2048 /* DataSanitizerValues.MAX_URL_LENGTH */, 66 /* _eInternalMessageId.UrlTooLong */);\r\n}\r\nexport function dataSanitizeMessage(logger, message) {\r\n var messageTrunc;\r\n if (message) {\r\n if (message[_DYN_LENGTH /* @min:%2elength */] > 32768 /* DataSanitizerValues.MAX_MESSAGE_LENGTH */) {\r\n messageTrunc = strSubstring(message, 0, 32768 /* DataSanitizerValues.MAX_MESSAGE_LENGTH */);\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 56 /* _eInternalMessageId.MessageTruncated */, \"message is too long, it has been truncated to \" + 32768 /* DataSanitizerValues.MAX_MESSAGE_LENGTH */ + \" characters.\", { message: message }, true);\r\n }\r\n }\r\n return messageTrunc || message;\r\n}\r\nexport function dataSanitizeException(logger, exception) {\r\n var exceptionTrunc;\r\n if (exception) {\r\n // Make surte its a string\r\n var value = \"\" + exception;\r\n if (value[_DYN_LENGTH /* @min:%2elength */] > 32768 /* DataSanitizerValues.MAX_EXCEPTION_LENGTH */) {\r\n exceptionTrunc = strSubstring(value, 0, 32768 /* DataSanitizerValues.MAX_EXCEPTION_LENGTH */);\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 52 /* _eInternalMessageId.ExceptionTruncated */, \"exception is too long, it has been truncated to \" + 32768 /* DataSanitizerValues.MAX_EXCEPTION_LENGTH */ + \" characters.\", { exception: exception }, true);\r\n }\r\n }\r\n return exceptionTrunc || exception;\r\n}\r\nexport function dataSanitizeProperties(logger, properties) {\r\n if (properties) {\r\n var tempProps_1 = {};\r\n objForEachKey(properties, function (prop, value) {\r\n if (isObject(value) && hasJSON()) {\r\n // Stringify any part C properties\r\n try {\r\n value = getJSON()[_DYN_STRINGIFY /* @min:%2estringify */](value);\r\n }\r\n catch (e) {\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 49 /* _eInternalMessageId.CannotSerializeObjectNonSerializable */, \"custom property is not valid\", { exception: e }, true);\r\n }\r\n }\r\n value = dataSanitizeString(logger, value, 8192 /* DataSanitizerValues.MAX_PROPERTY_LENGTH */);\r\n prop = dataSanitizeKeyAndAddUniqueness(logger, prop, tempProps_1);\r\n tempProps_1[prop] = value;\r\n });\r\n properties = tempProps_1;\r\n }\r\n return properties;\r\n}\r\nexport function dataSanitizeMeasurements(logger, measurements) {\r\n if (measurements) {\r\n var tempMeasurements_1 = {};\r\n objForEachKey(measurements, function (measure, value) {\r\n measure = dataSanitizeKeyAndAddUniqueness(logger, measure, tempMeasurements_1);\r\n tempMeasurements_1[measure] = value;\r\n });\r\n measurements = tempMeasurements_1;\r\n }\r\n return measurements;\r\n}\r\nexport function dataSanitizeId(logger, id) {\r\n return id ? dataSanitizeInput(logger, id, 128 /* DataSanitizerValues.MAX_ID_LENGTH */, 69 /* _eInternalMessageId.IdTooLong */)[_DYN_TO_STRING /* @min:%2etoString */]() : id;\r\n}\r\nexport function dataSanitizeInput(logger, input, maxLength, _msgId) {\r\n var inputTrunc;\r\n if (input) {\r\n input = strTrim(asString(input));\r\n if (input[_DYN_LENGTH /* @min:%2elength */] > maxLength) {\r\n inputTrunc = strSubstring(input, 0, maxLength);\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, _msgId, \"input is too long, it has been truncated to \" + maxLength + \" characters.\", { data: input }, true);\r\n }\r\n }\r\n return inputTrunc || input;\r\n}\r\nexport function dsPadNumber(num) {\r\n var s = \"00\" + num;\r\n return strSubstr(s, s[_DYN_LENGTH /* @min:%2elength */] - 3);\r\n}\r\n//# sourceMappingURL=DataSanitizer.js.map","/*\n * Application Insights JavaScript SDK - Common, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { getDocument, isString } from \"@microsoft/applicationinsights-core-js\";\r\nimport { _DYN_LENGTH, _DYN_PATHNAME, _DYN_TO_LOWER_CASE } from \"./__DynamicConstants\";\r\nvar _document = getDocument() || {};\r\nvar _htmlAnchorIdx = 0;\r\n// Use an array of temporary values as it's possible for multiple calls to parseUrl() will be called with different URLs\r\n// Using a cache size of 5 for now as it current depth usage is at least 2, so adding a minor buffer to handle future updates\r\nvar _htmlAnchorElement = [null, null, null, null, null];\r\nexport function urlParseUrl(url) {\r\n var anchorIdx = _htmlAnchorIdx;\r\n var anchorCache = _htmlAnchorElement;\r\n var tempAnchor = anchorCache[anchorIdx];\r\n if (!_document.createElement) {\r\n // Always create the temp instance if createElement is not available\r\n tempAnchor = { host: urlParseHost(url, true) };\r\n }\r\n else if (!anchorCache[anchorIdx]) {\r\n // Create and cache the unattached anchor instance\r\n tempAnchor = anchorCache[anchorIdx] = _document.createElement(\"a\");\r\n }\r\n tempAnchor.href = url;\r\n // Move the cache index forward\r\n anchorIdx++;\r\n if (anchorIdx >= anchorCache[_DYN_LENGTH /* @min:%2elength */]) {\r\n anchorIdx = 0;\r\n }\r\n _htmlAnchorIdx = anchorIdx;\r\n return tempAnchor;\r\n}\r\nexport function urlGetAbsoluteUrl(url) {\r\n var result;\r\n var a = urlParseUrl(url);\r\n if (a) {\r\n result = a.href;\r\n }\r\n return result;\r\n}\r\nexport function urlGetPathName(url) {\r\n var result;\r\n var a = urlParseUrl(url);\r\n if (a) {\r\n result = a[_DYN_PATHNAME /* @min:%2epathname */];\r\n }\r\n return result;\r\n}\r\nexport function urlGetCompleteUrl(method, absoluteUrl) {\r\n if (method) {\r\n return method.toUpperCase() + \" \" + absoluteUrl;\r\n }\r\n return absoluteUrl;\r\n}\r\n// Fallback method to grab host from url if document.createElement method is not available\r\nexport function urlParseHost(url, inclPort) {\r\n var fullHost = urlParseFullHost(url, inclPort) || \"\";\r\n if (fullHost) {\r\n var match = fullHost.match(/(www\\d{0,5}\\.)?([^\\/:]{1,256})(:\\d{1,20})?/i);\r\n if (match != null && match[_DYN_LENGTH /* @min:%2elength */] > 3 && isString(match[2]) && match[2][_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n return match[2] + (match[3] || \"\");\r\n }\r\n }\r\n return fullHost;\r\n}\r\nexport function urlParseFullHost(url, inclPort) {\r\n var result = null;\r\n if (url) {\r\n var match = url.match(/(\\w{1,150}):\\/\\/([^\\/:]{1,256})(:\\d{1,20})?/i);\r\n if (match != null && match[_DYN_LENGTH /* @min:%2elength */] > 2 && isString(match[2]) && match[2][_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n result = match[2] || \"\";\r\n if (inclPort && match[_DYN_LENGTH /* @min:%2elength */] > 2) {\r\n var protocol = (match[1] || \"\")[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]();\r\n var port = match[3] || \"\";\r\n // IE includes the standard port so pass it off if it's the same as the protocol\r\n if (protocol === \"http\" && port === \":80\") {\r\n port = \"\";\r\n }\r\n else if (protocol === \"https\" && port === \":443\") {\r\n port = \"\";\r\n }\r\n result += port;\r\n }\r\n }\r\n }\r\n return result;\r\n}\r\n//# sourceMappingURL=UrlHelperFuncs.js.map","/*\n * Application Insights JavaScript SDK - Common, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { arrForEach, arrIndexOf, dateNow, getPerformance, isNullOrUndefined, isValidSpanId, isValidTraceId } from \"@microsoft/applicationinsights-core-js\";\r\nimport { strIndexOf } from \"@nevware21/ts-utils\";\r\nimport { DEFAULT_BREEZE_ENDPOINT, DEFAULT_BREEZE_PATH } from \"./Constants\";\r\nimport { RequestHeaders } from \"./RequestResponseHeaders\";\r\nimport { dataSanitizeString } from \"./Telemetry/Common/DataSanitizer\";\r\nimport { urlParseFullHost, urlParseUrl } from \"./UrlHelperFuncs\";\r\nimport { _DYN_CORRELATION_HEADER_E0, _DYN_LENGTH, _DYN_NAME, _DYN_PATHNAME, _DYN_SPLIT, _DYN_TO_LOWER_CASE } from \"./__DynamicConstants\";\r\n// listing only non-geo specific locations\r\nvar _internalEndpoints = [\r\n DEFAULT_BREEZE_ENDPOINT + DEFAULT_BREEZE_PATH,\r\n \"https://breeze.aimon.applicationinsights.io\" + DEFAULT_BREEZE_PATH,\r\n \"https://dc-int.services.visualstudio.com\" + DEFAULT_BREEZE_PATH\r\n];\r\nvar _correlationIdPrefix = \"cid-v1:\";\r\nexport function isInternalApplicationInsightsEndpoint(endpointUrl) {\r\n return arrIndexOf(_internalEndpoints, endpointUrl[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]()) !== -1;\r\n}\r\nexport function correlationIdSetPrefix(prefix) {\r\n _correlationIdPrefix = prefix;\r\n}\r\nexport function correlationIdGetPrefix() {\r\n return _correlationIdPrefix;\r\n}\r\n/**\r\n * Checks if a request url is not on a excluded domain list and if it is safe to add correlation headers.\r\n * Headers are always included if the current domain matches the request domain. If they do not match (CORS),\r\n * they are regex-ed across correlationHeaderDomains and correlationHeaderExcludedDomains to determine if headers are included.\r\n * Some environments don't give information on currentHost via window.location.host (e.g. Cordova). In these cases, the user must\r\n * manually supply domains to include correlation headers on. Else, no headers will be included at all.\r\n */\r\nexport function correlationIdCanIncludeCorrelationHeader(config, requestUrl, currentHost) {\r\n if (!requestUrl || (config && config.disableCorrelationHeaders)) {\r\n return false;\r\n }\r\n if (config && config[_DYN_CORRELATION_HEADER_E0 /* @min:%2ecorrelationHeaderExcludePatterns */]) {\r\n for (var i = 0; i < config.correlationHeaderExcludePatterns[_DYN_LENGTH /* @min:%2elength */]; i++) {\r\n if (config[_DYN_CORRELATION_HEADER_E0 /* @min:%2ecorrelationHeaderExcludePatterns */][i].test(requestUrl)) {\r\n return false;\r\n }\r\n }\r\n }\r\n var requestHost = urlParseUrl(requestUrl).host[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]();\r\n if (requestHost && (strIndexOf(requestHost, \":443\") !== -1 || strIndexOf(requestHost, \":80\") !== -1)) {\r\n // [Bug #1260] IE can include the port even for http and https URLs so if present\r\n // try and parse it to remove if it matches the default protocol port\r\n requestHost = (urlParseFullHost(requestUrl, true) || \"\")[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]();\r\n }\r\n if ((!config || !config.enableCorsCorrelation) && (requestHost && requestHost !== currentHost)) {\r\n return false;\r\n }\r\n var includedDomains = config && config.correlationHeaderDomains;\r\n if (includedDomains) {\r\n var matchExists_1;\r\n arrForEach(includedDomains, function (domain) {\r\n var regex = new RegExp(domain.toLowerCase().replace(/\\\\/g, \"\\\\\\\\\").replace(/\\./g, \"\\\\.\").replace(/\\*/g, \".*\"));\r\n matchExists_1 = matchExists_1 || regex.test(requestHost);\r\n });\r\n if (!matchExists_1) {\r\n return false;\r\n }\r\n }\r\n var excludedDomains = config && config.correlationHeaderExcludedDomains;\r\n if (!excludedDomains || excludedDomains[_DYN_LENGTH /* @min:%2elength */] === 0) {\r\n return true;\r\n }\r\n for (var i = 0; i < excludedDomains[_DYN_LENGTH /* @min:%2elength */]; i++) {\r\n var regex = new RegExp(excludedDomains[i].toLowerCase().replace(/\\\\/g, \"\\\\\\\\\").replace(/\\./g, \"\\\\.\").replace(/\\*/g, \".*\"));\r\n if (regex.test(requestHost)) {\r\n return false;\r\n }\r\n }\r\n // if we don't know anything about the requestHost, require the user to use included/excludedDomains.\r\n // Previously we always returned false for a falsy requestHost\r\n return requestHost && requestHost[_DYN_LENGTH /* @min:%2elength */] > 0;\r\n}\r\n/**\r\n * Combines target appId and target role name from response header.\r\n */\r\nexport function correlationIdGetCorrelationContext(responseHeader) {\r\n if (responseHeader) {\r\n var correlationId = correlationIdGetCorrelationContextValue(responseHeader, RequestHeaders[1 /* eRequestHeaders.requestContextTargetKey */]);\r\n if (correlationId && correlationId !== _correlationIdPrefix) {\r\n return correlationId;\r\n }\r\n }\r\n}\r\n/**\r\n * Gets key from correlation response header\r\n */\r\nexport function correlationIdGetCorrelationContextValue(responseHeader, key) {\r\n if (responseHeader) {\r\n var keyValues = responseHeader[_DYN_SPLIT /* @min:%2esplit */](\",\");\r\n for (var i = 0; i < keyValues[_DYN_LENGTH /* @min:%2elength */]; ++i) {\r\n var keyValue = keyValues[i][_DYN_SPLIT /* @min:%2esplit */](\"=\");\r\n if (keyValue[_DYN_LENGTH /* @min:%2elength */] === 2 && keyValue[0] === key) {\r\n return keyValue[1];\r\n }\r\n }\r\n }\r\n}\r\nexport function AjaxHelperParseDependencyPath(logger, absoluteUrl, method, commandName) {\r\n var target, name = commandName, data = commandName;\r\n if (absoluteUrl && absoluteUrl[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n var parsedUrl = urlParseUrl(absoluteUrl);\r\n target = parsedUrl.host;\r\n if (!name) {\r\n if (parsedUrl[_DYN_PATHNAME /* @min:%2epathname */] != null) {\r\n var pathName = (parsedUrl.pathname[_DYN_LENGTH /* @min:%2elength */] === 0) ? \"/\" : parsedUrl[_DYN_PATHNAME /* @min:%2epathname */];\r\n if (pathName.charAt(0) !== \"/\") {\r\n pathName = \"/\" + pathName;\r\n }\r\n data = parsedUrl[_DYN_PATHNAME /* @min:%2epathname */];\r\n name = dataSanitizeString(logger, method ? method + \" \" + pathName : pathName);\r\n }\r\n else {\r\n name = dataSanitizeString(logger, absoluteUrl);\r\n }\r\n }\r\n }\r\n else {\r\n target = commandName;\r\n name = commandName;\r\n }\r\n return {\r\n target: target,\r\n name: name,\r\n data: data\r\n };\r\n}\r\nexport function dateTimeUtilsNow() {\r\n // returns the window or webworker performance object\r\n var perf = getPerformance();\r\n if (perf && perf.now && perf.timing) {\r\n var now = perf.now() + perf.timing.navigationStart;\r\n // Known issue with IE where this calculation can be negative, so if it is then ignore and fallback\r\n if (now > 0) {\r\n return now;\r\n }\r\n }\r\n return dateNow();\r\n}\r\nexport function dateTimeUtilsDuration(start, end) {\r\n var result = null;\r\n if (start !== 0 && end !== 0 && !isNullOrUndefined(start) && !isNullOrUndefined(end)) {\r\n result = end - start;\r\n }\r\n return result;\r\n}\r\n/**\r\n * Creates a IDistributedTraceContext from an optional telemetryTrace\r\n * @param telemetryTrace - The telemetryTrace instance that is being wrapped\r\n * @param parentCtx - An optional parent distributed trace instance, almost always undefined as this scenario is only used in the case of multiple property handlers.\r\n * @returns A new IDistributedTraceContext instance that is backed by the telemetryTrace or temporary object\r\n */\r\nexport function createDistributedTraceContextFromTrace(telemetryTrace, parentCtx) {\r\n var trace = telemetryTrace || {};\r\n return {\r\n getName: function () {\r\n return trace[_DYN_NAME /* @min:%2ename */];\r\n },\r\n setName: function (newValue) {\r\n parentCtx && parentCtx.setName(newValue);\r\n trace[_DYN_NAME /* @min:%2ename */] = newValue;\r\n },\r\n getTraceId: function () {\r\n return trace.traceID;\r\n },\r\n setTraceId: function (newValue) {\r\n parentCtx && parentCtx.setTraceId(newValue);\r\n if (isValidTraceId(newValue)) {\r\n trace.traceID = newValue;\r\n }\r\n },\r\n getSpanId: function () {\r\n return trace.parentID;\r\n },\r\n setSpanId: function (newValue) {\r\n parentCtx && parentCtx.setSpanId(newValue);\r\n if (isValidSpanId(newValue)) {\r\n trace.parentID = newValue;\r\n }\r\n },\r\n getTraceFlags: function () {\r\n return trace.traceFlags;\r\n },\r\n setTraceFlags: function (newTraceFlags) {\r\n parentCtx && parentCtx.setTraceFlags(newTraceFlags);\r\n trace.traceFlags = newTraceFlags;\r\n }\r\n };\r\n}\r\n//# sourceMappingURL=Util.js.map","/*\n * Application Insights JavaScript SDK - Common, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { createEnumStyle } from \"@microsoft/applicationinsights-core-js\";\r\nexport var StorageType = createEnumStyle({\r\n LocalStorage: 0 /* eStorageType.LocalStorage */,\r\n SessionStorage: 1 /* eStorageType.SessionStorage */\r\n});\r\nexport var DistributedTracingModes = createEnumStyle({\r\n AI: 0 /* eDistributedTracingModes.AI */,\r\n AI_AND_W3C: 1 /* eDistributedTracingModes.AI_AND_W3C */,\r\n W3C: 2 /* eDistributedTracingModes.W3C */\r\n});\r\n/**\r\n * The EventPersistence contains a set of values that specify the event's persistence.\r\n */\r\nexport var EventPersistence = createEnumStyle({\r\n /**\r\n * Normal persistence.\r\n */\r\n Normal: 1 /* EventPersistenceValue.Normal */,\r\n /**\r\n * Critical persistence.\r\n */\r\n Critical: 2 /* EventPersistenceValue.Critical */\r\n});\r\n//# sourceMappingURL=Enums.js.map","/*\n * Application Insights JavaScript SDK - Common, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { _throwInternal, dumpObj, getExceptionName, getGlobal, getGlobalInst, isNullOrUndefined, objForEachKey } from \"@microsoft/applicationinsights-core-js\";\r\nimport { StorageType } from \"./Enums\";\r\nimport { _DYN_PUSH, _DYN_REMOVE_ITEM, _DYN_TO_STRING } from \"./__DynamicConstants\";\r\nvar _canUseLocalStorage = undefined;\r\nvar _canUseSessionStorage = undefined;\r\nvar _storagePrefix = \"\";\r\n/**\r\n * Gets the localStorage object if available\r\n * @return {Storage} - Returns the storage object if available else returns null\r\n */\r\nfunction _getLocalStorageObject() {\r\n if (utlCanUseLocalStorage()) {\r\n return _getVerifiedStorageObject(StorageType.LocalStorage);\r\n }\r\n return null;\r\n}\r\n/**\r\n * Tests storage object (localStorage or sessionStorage) to verify that it is usable\r\n * More details here: https://mathiasbynens.be/notes/localstorage-pattern\r\n * @param storageType - Type of storage\r\n * @return {Storage} Returns storage object verified that it is usable\r\n */\r\nfunction _getVerifiedStorageObject(storageType) {\r\n try {\r\n if (isNullOrUndefined(getGlobal())) {\r\n return null;\r\n }\r\n var uid = (new Date)[_DYN_TO_STRING /* @min:%2etoString */]();\r\n var storage = getGlobalInst(storageType === StorageType.LocalStorage ? \"localStorage\" : \"sessionStorage\");\r\n var name_1 = _storagePrefix + uid;\r\n storage.setItem(name_1, uid);\r\n var fail = storage.getItem(name_1) !== uid;\r\n storage[_DYN_REMOVE_ITEM /* @min:%2eremoveItem */](name_1);\r\n if (!fail) {\r\n return storage;\r\n }\r\n }\r\n catch (exception) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n return null;\r\n}\r\n/**\r\n * Gets the sessionStorage object if available\r\n * @return {Storage} - Returns the storage object if available else returns null\r\n */\r\nfunction _getSessionStorageObject() {\r\n if (utlCanUseSessionStorage()) {\r\n return _getVerifiedStorageObject(StorageType.SessionStorage);\r\n }\r\n return null;\r\n}\r\n/**\r\n * Disables the global SDK usage of local or session storage if available\r\n */\r\nexport function utlDisableStorage() {\r\n _canUseLocalStorage = false;\r\n _canUseSessionStorage = false;\r\n}\r\nexport function utlSetStoragePrefix(storagePrefix) {\r\n _storagePrefix = storagePrefix || \"\";\r\n}\r\n/**\r\n * Re-enables the global SDK usage of local or session storage if available\r\n */\r\nexport function utlEnableStorage() {\r\n _canUseLocalStorage = utlCanUseLocalStorage(true);\r\n _canUseSessionStorage = utlCanUseSessionStorage(true);\r\n}\r\n/**\r\n * Returns whether LocalStorage can be used, if the reset parameter is passed a true this will override\r\n * any previous disable calls.\r\n * @param reset - Should the usage be reset and determined only based on whether LocalStorage is available\r\n */\r\nexport function utlCanUseLocalStorage(reset) {\r\n if (reset || _canUseLocalStorage === undefined) {\r\n _canUseLocalStorage = !!_getVerifiedStorageObject(StorageType.LocalStorage);\r\n }\r\n return _canUseLocalStorage;\r\n}\r\nexport function utlGetLocalStorage(logger, name) {\r\n var storage = _getLocalStorageObject();\r\n if (storage !== null) {\r\n try {\r\n return storage.getItem(name);\r\n }\r\n catch (e) {\r\n _canUseLocalStorage = false;\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 1 /* _eInternalMessageId.BrowserCannotReadLocalStorage */, \"Browser failed read of local storage. \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n }\r\n return null;\r\n}\r\nexport function utlSetLocalStorage(logger, name, data) {\r\n var storage = _getLocalStorageObject();\r\n if (storage !== null) {\r\n try {\r\n storage.setItem(name, data);\r\n return true;\r\n }\r\n catch (e) {\r\n _canUseLocalStorage = false;\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 3 /* _eInternalMessageId.BrowserCannotWriteLocalStorage */, \"Browser failed write to local storage. \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n }\r\n return false;\r\n}\r\nexport function utlRemoveStorage(logger, name) {\r\n var storage = _getLocalStorageObject();\r\n if (storage !== null) {\r\n try {\r\n storage[_DYN_REMOVE_ITEM /* @min:%2eremoveItem */](name);\r\n return true;\r\n }\r\n catch (e) {\r\n _canUseLocalStorage = false;\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 5 /* _eInternalMessageId.BrowserFailedRemovalFromLocalStorage */, \"Browser failed removal of local storage item. \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n }\r\n return false;\r\n}\r\nexport function utlCanUseSessionStorage(reset) {\r\n if (reset || _canUseSessionStorage === undefined) {\r\n _canUseSessionStorage = !!_getVerifiedStorageObject(StorageType.SessionStorage);\r\n }\r\n return _canUseSessionStorage;\r\n}\r\nexport function utlGetSessionStorageKeys() {\r\n var keys = [];\r\n if (utlCanUseSessionStorage()) {\r\n objForEachKey(getGlobalInst(\"sessionStorage\"), function (key) {\r\n keys[_DYN_PUSH /* @min:%2epush */](key);\r\n });\r\n }\r\n return keys;\r\n}\r\nexport function utlGetSessionStorage(logger, name) {\r\n var storage = _getSessionStorageObject();\r\n if (storage !== null) {\r\n try {\r\n return storage.getItem(name);\r\n }\r\n catch (e) {\r\n _canUseSessionStorage = false;\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 2 /* _eInternalMessageId.BrowserCannotReadSessionStorage */, \"Browser failed read of session storage. \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n }\r\n return null;\r\n}\r\nexport function utlSetSessionStorage(logger, name, data) {\r\n var storage = _getSessionStorageObject();\r\n if (storage !== null) {\r\n try {\r\n storage.setItem(name, data);\r\n return true;\r\n }\r\n catch (e) {\r\n _canUseSessionStorage = false;\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 4 /* _eInternalMessageId.BrowserCannotWriteSessionStorage */, \"Browser failed write to session storage. \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n }\r\n return false;\r\n}\r\nexport function utlRemoveSessionStorage(logger, name) {\r\n var storage = _getSessionStorageObject();\r\n if (storage !== null) {\r\n try {\r\n storage[_DYN_REMOVE_ITEM /* @min:%2eremoveItem */](name);\r\n return true;\r\n }\r\n catch (e) {\r\n _canUseSessionStorage = false;\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 6 /* _eInternalMessageId.BrowserFailedRemovalFromSessionStorage */, \"Browser failed removal of session storage item. \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n }\r\n return false;\r\n}\r\n//# sourceMappingURL=StorageHelperFuncs.js.map","/*\n * Application Insights JavaScript SDK - Common, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nimport { _throwInternal, arrIndexOf, isNotNullOrUndefined, isNullOrUndefined, onConfigChange, randomValue, safeGetLogger, strTrim } from \"@microsoft/applicationinsights-core-js\";\r\nimport { arrForEach, objForEachKey } from \"@nevware21/ts-utils\";\r\nimport { utlCanUseLocalStorage, utlGetLocalStorage, utlSetLocalStorage } from \"./StorageHelperFuncs\";\r\nimport { _DYN_COUNT, _DYN_DATE, _DYN_DAYS_OF_MONTH, _DYN_DISABLED, _DYN_GET_UTCDATE, _DYN_INTERVAL, _DYN_LENGTH, _DYN_MESSAGE, _DYN_PRE_TRIGGER_DATE, _DYN_PUSH, _DYN_STRINGIFY } from \"./__DynamicConstants\";\r\nvar THROTTLE_STORAGE_PREFIX = \"appInsightsThrottle\";\r\nvar ThrottleMgr = /** @class */ (function () {\r\n function ThrottleMgr(core, namePrefix) {\r\n var _self = this;\r\n var _canUseLocalStorage;\r\n var _logger;\r\n var _config;\r\n var _localStorageObj;\r\n var _isTriggered; //_isTriggered is to make sure that we only trigger throttle once a day\r\n var _namePrefix;\r\n var _queue;\r\n var _isReady = false;\r\n var _isSpecificDaysGiven = false;\r\n _initConfig();\r\n // Special internal method to allow the unit tests and DebugPlugin to hook embedded objects\r\n _self[\"_getDbgPlgTargets\"] = function () {\r\n return [_queue];\r\n };\r\n _self.getConfig = function () {\r\n return _config;\r\n };\r\n /**\r\n * Check if it is the correct day to send message.\r\n * If _isTriggered is true, even if canThrottle returns true, message will not be sent,\r\n * because we only allow triggering sendMessage() once a day.\r\n * @returns if the current date is the valid date to send message\r\n */\r\n _self.canThrottle = function (msgId) {\r\n var localObj = _getLocalStorageObjByKey(msgId);\r\n var cfg = _getCfgByKey(msgId);\r\n return _canThrottle(cfg, _canUseLocalStorage, localObj);\r\n };\r\n /**\r\n * Check if throttle is triggered on current day(UTC)\r\n * if canThrottle returns false, isTriggered will return false\r\n * @returns if throttle is triggered on current day(UTC)\r\n */\r\n _self.isTriggered = function (msgId) {\r\n return _isTrigger(msgId);\r\n };\r\n /**\r\n * Before isReady set to true, all message will be stored in queue.\r\n * Message will only be sent out after isReady set to true.\r\n * Initial and default value: false\r\n * @returns isReady state\r\n */\r\n _self.isReady = function () {\r\n return _isReady;\r\n };\r\n /**\r\n * Flush all message with given message key in queue with isReady state set to true.\r\n * @returns if message queue is flushed\r\n */\r\n _self.flush = function (msgId) {\r\n try {\r\n var queue = _getQueueByKey(msgId);\r\n if (queue && queue[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n var items = queue.slice(0);\r\n _queue[msgId] = [];\r\n arrForEach(items, function (item) {\r\n _flushMessage(item.msgID, item[_DYN_MESSAGE /* @min:%2emessage */], item.severity, false);\r\n });\r\n return true;\r\n }\r\n }\r\n catch (err) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n return false;\r\n };\r\n /**\r\n * Flush all message in queue with isReady state set to true.\r\n * @returns if message queue is flushed\r\n */\r\n _self.flushAll = function () {\r\n try {\r\n if (_queue) {\r\n var result_1 = true;\r\n objForEachKey(_queue, function (key) {\r\n var isFlushed = _self.flush(parseInt(key));\r\n result_1 = result_1 && isFlushed;\r\n });\r\n return result_1;\r\n }\r\n }\r\n catch (err) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n return false;\r\n };\r\n /**\r\n * Set isReady State\r\n * if isReady set to true, message queue will be flushed automatically.\r\n * @param isReady isReady State\r\n * @pa\r\n * @returns if message queue is flushed\r\n */\r\n _self.onReadyState = function (isReady, flushAll) {\r\n if (flushAll === void 0) { flushAll = true; }\r\n _isReady = isNullOrUndefined(isReady) ? true : isReady;\r\n if (_isReady && flushAll) {\r\n return _self.flushAll();\r\n }\r\n return null;\r\n };\r\n _self.sendMessage = function (msgID, message, severity) {\r\n return _flushMessage(msgID, message, severity, true);\r\n };\r\n function _flushMessage(msgID, message, severity, saveUnsentMsg) {\r\n if (_isReady) {\r\n var isSampledIn = _canSampledIn(msgID);\r\n if (!isSampledIn) {\r\n return;\r\n }\r\n var cfg = _getCfgByKey(msgID);\r\n var localStorageObj = _getLocalStorageObjByKey(msgID);\r\n var canThrottle = _canThrottle(cfg, _canUseLocalStorage, localStorageObj);\r\n var throttled = false;\r\n var number = 0;\r\n var isTriggered = _isTrigger(msgID);\r\n try {\r\n if (canThrottle && !isTriggered) {\r\n number = Math.min(cfg.limit.maxSendNumber, localStorageObj[_DYN_COUNT /* @min:%2ecount */] + 1);\r\n localStorageObj[_DYN_COUNT /* @min:%2ecount */] = 0;\r\n throttled = true;\r\n _isTriggered[msgID] = true;\r\n localStorageObj[_DYN_PRE_TRIGGER_DATE /* @min:%2epreTriggerDate */] = new Date();\r\n }\r\n else {\r\n _isTriggered[msgID] = canThrottle;\r\n localStorageObj[_DYN_COUNT /* @min:%2ecount */] += 1;\r\n }\r\n var localStorageName = _getLocalStorageName(msgID);\r\n _resetLocalStorage(_logger, localStorageName, localStorageObj);\r\n for (var i = 0; i < number; i++) {\r\n _sendMessage(msgID, _logger, message, severity);\r\n }\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n return {\r\n isThrottled: throttled,\r\n throttleNum: number\r\n };\r\n }\r\n else {\r\n if (!!saveUnsentMsg) {\r\n var queue = _getQueueByKey(msgID);\r\n queue[_DYN_PUSH /* @min:%2epush */]({\r\n msgID: msgID,\r\n message: message,\r\n severity: severity\r\n });\r\n }\r\n }\r\n return null;\r\n }\r\n function _initConfig() {\r\n _logger = safeGetLogger(core);\r\n _isTriggered = {};\r\n _localStorageObj = {};\r\n _queue = {};\r\n _config = {};\r\n _setCfgByKey(109 /* _eInternalMessageId.DefaultThrottleMsgKey */);\r\n _namePrefix = isNotNullOrUndefined(namePrefix) ? namePrefix : \"\";\r\n core.addUnloadHook(onConfigChange(core.config, function (details) {\r\n var coreConfig = details.cfg;\r\n _canUseLocalStorage = utlCanUseLocalStorage();\r\n var configMgr = coreConfig.throttleMgrCfg || {};\r\n objForEachKey(configMgr, function (key, cfg) {\r\n _setCfgByKey(parseInt(key), cfg);\r\n });\r\n }));\r\n }\r\n function _getCfgByKey(msgID) {\r\n return _config[msgID] || _config[109 /* _eInternalMessageId.DefaultThrottleMsgKey */];\r\n }\r\n function _setCfgByKey(msgID, config) {\r\n var _a, _b;\r\n try {\r\n var cfg = config || {};\r\n var curCfg = {};\r\n curCfg[_DYN_DISABLED /* @min:%2edisabled */] = !!cfg[_DYN_DISABLED /* @min:%2edisabled */];\r\n var configInterval = cfg[_DYN_INTERVAL /* @min:%2einterval */] || {};\r\n _isSpecificDaysGiven = (configInterval === null || configInterval === void 0 ? void 0 : configInterval.daysOfMonth) && (configInterval === null || configInterval === void 0 ? void 0 : configInterval.daysOfMonth[_DYN_LENGTH /* @min:%2elength */]) > 0;\r\n curCfg[_DYN_INTERVAL /* @min:%2einterval */] = _getIntervalConfig(configInterval);\r\n var limit = {\r\n samplingRate: ((_a = cfg.limit) === null || _a === void 0 ? void 0 : _a.samplingRate) || 100,\r\n // dafault: every time sent only 1 event\r\n maxSendNumber: ((_b = cfg.limit) === null || _b === void 0 ? void 0 : _b.maxSendNumber) || 1\r\n };\r\n curCfg.limit = limit;\r\n _config[msgID] = curCfg;\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n }\r\n function _getIntervalConfig(interval) {\r\n interval = interval || {};\r\n var monthInterval = interval === null || interval === void 0 ? void 0 : interval.monthInterval;\r\n var dayInterval = interval === null || interval === void 0 ? void 0 : interval.dayInterval;\r\n // default: send data every 3 month each year\r\n if (isNullOrUndefined(monthInterval) && isNullOrUndefined(dayInterval)) {\r\n interval.monthInterval = 3;\r\n if (!_isSpecificDaysGiven) {\r\n // default: send data on 28th\r\n interval[_DYN_DAYS_OF_MONTH /* @min:%2edaysOfMonth */] = [28];\r\n _isSpecificDaysGiven = true;\r\n }\r\n }\r\n interval = {\r\n // dafault: sent every three months\r\n monthInterval: interval === null || interval === void 0 ? void 0 : interval.monthInterval,\r\n dayInterval: interval === null || interval === void 0 ? void 0 : interval.dayInterval,\r\n daysOfMonth: interval === null || interval === void 0 ? void 0 : interval.daysOfMonth\r\n };\r\n return interval;\r\n }\r\n function _canThrottle(config, canUseLocalStorage, localStorageObj) {\r\n if (config && !config[_DYN_DISABLED /* @min:%2edisabled */] && canUseLocalStorage && isNotNullOrUndefined(localStorageObj)) {\r\n var curDate = _getThrottleDate();\r\n var date = localStorageObj[_DYN_DATE /* @min:%2edate */];\r\n var interval = config[_DYN_INTERVAL /* @min:%2einterval */];\r\n var monthCheck = 1;\r\n if (interval === null || interval === void 0 ? void 0 : interval.monthInterval) {\r\n var monthExpand = (curDate.getUTCFullYear() - date.getUTCFullYear()) * 12 + curDate.getUTCMonth() - date.getUTCMonth();\r\n monthCheck = _checkInterval(interval.monthInterval, 0, monthExpand);\r\n }\r\n var dayCheck = 1;\r\n if (_isSpecificDaysGiven) {\r\n dayCheck = arrIndexOf(interval[_DYN_DAYS_OF_MONTH /* @min:%2edaysOfMonth */], curDate[_DYN_GET_UTCDATE /* @min:%2egetUTCDate */]());\r\n }\r\n else if (interval === null || interval === void 0 ? void 0 : interval.dayInterval) {\r\n var daySpan = Math.floor((curDate.getTime() - date.getTime()) / 86400000);\r\n dayCheck = _checkInterval(interval.dayInterval, 0, daySpan);\r\n }\r\n return monthCheck >= 0 && dayCheck >= 0;\r\n }\r\n return false;\r\n }\r\n function _getLocalStorageName(msgKey, prefix) {\r\n var fix = isNotNullOrUndefined(prefix) ? prefix : \"\";\r\n if (msgKey) {\r\n return THROTTLE_STORAGE_PREFIX + fix + \"-\" + msgKey;\r\n }\r\n return null;\r\n }\r\n // returns if throttle is triggered on current Date\r\n function _isTriggeredOnCurDate(preTriggerDate) {\r\n try {\r\n if (preTriggerDate) {\r\n var curDate = new Date();\r\n return preTriggerDate.getUTCFullYear() === curDate.getUTCFullYear() &&\r\n preTriggerDate.getUTCMonth() === curDate.getUTCMonth() &&\r\n preTriggerDate[_DYN_GET_UTCDATE /* @min:%2egetUTCDate */]() === curDate[_DYN_GET_UTCDATE /* @min:%2egetUTCDate */]();\r\n }\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n return false;\r\n }\r\n // transfer local storage string value to object that identifies start date, current count and preTriggerDate\r\n function _getLocalStorageObj(value, logger, storageName) {\r\n try {\r\n var storageObj = {\r\n date: _getThrottleDate(),\r\n count: 0\r\n };\r\n if (value) {\r\n var obj = JSON.parse(value);\r\n var curObj = {\r\n date: _getThrottleDate(obj[_DYN_DATE /* @min:%2edate */]) || storageObj[_DYN_DATE /* @min:%2edate */],\r\n count: obj[_DYN_COUNT /* @min:%2ecount */] || storageObj[_DYN_COUNT /* @min:%2ecount */],\r\n preTriggerDate: obj.preTriggerDate ? _getThrottleDate(obj[_DYN_PRE_TRIGGER_DATE /* @min:%2epreTriggerDate */]) : undefined\r\n };\r\n return curObj;\r\n }\r\n else {\r\n _resetLocalStorage(logger, storageName, storageObj);\r\n return storageObj;\r\n }\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n return null;\r\n }\r\n // if datestr is not defined, current date will be returned\r\n function _getThrottleDate(dateStr) {\r\n // if new Date() can't be created through the provided dateStr, null will be returned.\r\n try {\r\n if (dateStr) {\r\n var date = new Date(dateStr);\r\n //make sure it is a valid Date Object\r\n if (!isNaN(date.getDate())) {\r\n return date;\r\n }\r\n }\r\n else {\r\n return new Date();\r\n }\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n return null;\r\n }\r\n function _resetLocalStorage(logger, storageName, obj) {\r\n try {\r\n return utlSetLocalStorage(logger, storageName, strTrim(JSON[_DYN_STRINGIFY /* @min:%2estringify */](obj)));\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n return false;\r\n }\r\n function _checkInterval(interval, start, current) {\r\n if (interval <= 0) {\r\n return 1;\r\n }\r\n // count from start year\r\n return (current >= start) && (current - start) % interval == 0 ? Math.floor((current - start) / interval) + 1 : -1;\r\n }\r\n function _sendMessage(msgID, logger, message, severity) {\r\n _throwInternal(logger, severity || 1 /* eLoggingSeverity.CRITICAL */, msgID, message);\r\n }\r\n // NOTE: config.limit.samplingRate is set to 4 decimal places,\r\n // so config.limit.samplingRate = 1 means 0.0001%\r\n function _canSampledIn(msgID) {\r\n try {\r\n var cfg = _getCfgByKey(msgID);\r\n return randomValue(1000000) <= cfg.limit.samplingRate;\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n return false;\r\n }\r\n function _getLocalStorageObjByKey(key) {\r\n try {\r\n var curObj = _localStorageObj[key];\r\n if (!curObj) {\r\n var localStorageName = _getLocalStorageName(key, _namePrefix);\r\n curObj = _getLocalStorageObj(utlGetLocalStorage(_logger, localStorageName), _logger, localStorageName);\r\n _localStorageObj[key] = curObj;\r\n }\r\n return _localStorageObj[key];\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n return null;\r\n }\r\n function _isTrigger(key) {\r\n var isTrigger = _isTriggered[key];\r\n if (isNullOrUndefined(isTrigger)) {\r\n isTrigger = false;\r\n var localStorageObj = _getLocalStorageObjByKey(key);\r\n if (localStorageObj) {\r\n isTrigger = _isTriggeredOnCurDate(localStorageObj[_DYN_PRE_TRIGGER_DATE /* @min:%2epreTriggerDate */]);\r\n }\r\n _isTriggered[key] = isTrigger;\r\n }\r\n return _isTriggered[key];\r\n }\r\n function _getQueueByKey(key) {\r\n _queue = _queue || {};\r\n if (isNullOrUndefined(_queue[key])) {\r\n _queue[key] = [];\r\n }\r\n return _queue[key];\r\n }\r\n }\r\n return ThrottleMgr;\r\n}());\r\nexport { ThrottleMgr };\r\n//# sourceMappingURL=ThrottleMgr.js.map","/*\n * Application Insights JavaScript SDK - Common, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { arrReduce, objKeys, strEndsWith } from \"@microsoft/applicationinsights-core-js\";\r\nimport { DEFAULT_BREEZE_ENDPOINT } from \"./Constants\";\r\nimport { _DYN_INGESTIONENDPOINT, _DYN_LENGTH, _DYN_SPLIT, _DYN_TO_LOWER_CASE } from \"./__DynamicConstants\";\r\nvar _FIELDS_SEPARATOR = \";\";\r\nvar _FIELD_KEY_VALUE_SEPARATOR = \"=\";\r\nexport function parseConnectionString(connectionString) {\r\n if (!connectionString) {\r\n return {};\r\n }\r\n var kvPairs = connectionString[_DYN_SPLIT /* @min:%2esplit */](_FIELDS_SEPARATOR);\r\n var result = arrReduce(kvPairs, function (fields, kv) {\r\n var kvParts = kv[_DYN_SPLIT /* @min:%2esplit */](_FIELD_KEY_VALUE_SEPARATOR);\r\n if (kvParts[_DYN_LENGTH /* @min:%2elength */] === 2) { // only save fields with valid formats\r\n var key = kvParts[0][_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]();\r\n var value = kvParts[1];\r\n fields[key] = value;\r\n }\r\n return fields;\r\n }, {});\r\n if (objKeys(result)[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n // this is a valid connection string, so parse the results\r\n if (result.endpointsuffix) {\r\n // apply the default endpoints\r\n var locationPrefix = result.location ? result.location + \".\" : \"\";\r\n result[_DYN_INGESTIONENDPOINT /* @min:%2eingestionendpoint */] = result[_DYN_INGESTIONENDPOINT /* @min:%2eingestionendpoint */] || (\"https://\" + locationPrefix + \"dc.\" + result.endpointsuffix);\r\n }\r\n // apply user override endpoint or the default endpoints\r\n result[_DYN_INGESTIONENDPOINT /* @min:%2eingestionendpoint */] = result[_DYN_INGESTIONENDPOINT /* @min:%2eingestionendpoint */] || DEFAULT_BREEZE_ENDPOINT;\r\n if (strEndsWith(result[_DYN_INGESTIONENDPOINT /* @min:%2eingestionendpoint */], \"/\")) {\r\n result[_DYN_INGESTIONENDPOINT /* @min:%2eingestionendpoint */] = result[_DYN_INGESTIONENDPOINT /* @min:%2eingestionendpoint */].slice(0, -1);\r\n }\r\n }\r\n return result;\r\n}\r\nexport var ConnectionStringParser = {\r\n parse: parseConnectionString\r\n};\r\n//# sourceMappingURL=ConnectionStringParser.js.map","/*\n * Application Insights JavaScript SDK - Common, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { toISOString } from \"@microsoft/applicationinsights-core-js\";\r\nimport { strNotSpecified } from \"../../Constants\";\r\nimport { _DYN_NAME } from \"../../__DynamicConstants\";\r\nimport { dataSanitizeString } from \"./DataSanitizer\";\r\nvar Envelope = /** @class */ (function () {\r\n /**\r\n * Constructs a new instance of telemetry data.\r\n */\r\n function Envelope(logger, data, name) {\r\n var _this = this;\r\n var _self = this;\r\n _self.ver = 1;\r\n _self.sampleRate = 100.0;\r\n _self.tags = {};\r\n _self[_DYN_NAME /* @min:%2ename */] = dataSanitizeString(logger, name) || strNotSpecified;\r\n _self.data = data;\r\n _self.time = toISOString(new Date());\r\n _self.aiDataContract = {\r\n time: 1 /* FieldType.Required */,\r\n iKey: 1 /* FieldType.Required */,\r\n name: 1 /* FieldType.Required */,\r\n sampleRate: function () {\r\n return (_this.sampleRate === 100) ? 4 /* FieldType.Hidden */ : 1 /* FieldType.Required */;\r\n },\r\n tags: 1 /* FieldType.Required */,\r\n data: 1 /* FieldType.Required */\r\n };\r\n }\r\n return Envelope;\r\n}());\r\nexport { Envelope };\r\n//# sourceMappingURL=Envelope.js.map","/*\n * Application Insights JavaScript SDK - Common, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { strNotSpecified } from \"../Constants\";\r\nimport { _DYN_MEASUREMENTS, _DYN_NAME, _DYN_PROPERTIES } from \"../__DynamicConstants\";\r\nimport { dataSanitizeMeasurements, dataSanitizeProperties, dataSanitizeString } from \"./Common/DataSanitizer\";\r\nvar Event = /** @class */ (function () {\r\n /**\r\n * Constructs a new instance of the EventTelemetry object\r\n */\r\n function Event(logger, name, properties, measurements) {\r\n this.aiDataContract = {\r\n ver: 1 /* FieldType.Required */,\r\n name: 1 /* FieldType.Required */,\r\n properties: 0 /* FieldType.Default */,\r\n measurements: 0 /* FieldType.Default */\r\n };\r\n var _self = this;\r\n _self.ver = 2;\r\n _self[_DYN_NAME /* @min:%2ename */] = dataSanitizeString(logger, name) || strNotSpecified;\r\n _self[_DYN_PROPERTIES /* @min:%2eproperties */] = dataSanitizeProperties(logger, properties);\r\n _self[_DYN_MEASUREMENTS /* @min:%2emeasurements */] = dataSanitizeMeasurements(logger, measurements);\r\n }\r\n Event.envelopeType = \"Microsoft.ApplicationInsights.{0}.Event\";\r\n Event.dataType = \"EventData\";\r\n return Event;\r\n}());\r\nexport { Event };\r\n//# sourceMappingURL=Event.js.map","/*\n * Application Insights JavaScript SDK - Common, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { __assignFn as __assign } from \"@microsoft/applicationinsights-shims\";\r\nimport { arrForEach, arrMap, isArray, isError, isFunction, isNullOrUndefined, isObject, isString, strTrim } from \"@microsoft/applicationinsights-core-js\";\r\nimport { getWindow, strIndexOf } from \"@nevware21/ts-utils\";\r\nimport { strNotSpecified } from \"../Constants\";\r\nimport { _DYN_ASSEMBLY, _DYN_EXCEPTIONS, _DYN_FILE_NAME, _DYN_HAS_FULL_STACK, _DYN_IS_MANUAL, _DYN_LENGTH, _DYN_LEVEL, _DYN_LINE, _DYN_MEASUREMENTS, _DYN_MESSAGE, _DYN_METHOD, _DYN_NAME, _DYN_PARSED_STACK, _DYN_PROBLEM_GROUP, _DYN_PROPERTIES, _DYN_PUSH, _DYN_SEVERITY_LEVEL, _DYN_SIZE_IN_BYTES, _DYN_SPLIT, _DYN_STRINGIFY, _DYN_TO_STRING, _DYN_TYPE_NAME, _DYN__CREATE_FROM_INTERFA1 } from \"../__DynamicConstants\";\r\nimport { dataSanitizeException, dataSanitizeMeasurements, dataSanitizeMessage, dataSanitizeProperties, dataSanitizeString } from \"./Common/DataSanitizer\";\r\nvar NoMethod = \"\";\r\nvar strError = \"error\";\r\nvar strStack = \"stack\";\r\nvar strStackDetails = \"stackDetails\";\r\nvar strErrorSrc = \"errorSrc\";\r\nvar strMessage = \"message\";\r\nvar strDescription = \"description\";\r\nfunction _stringify(value, convertToString) {\r\n var result = value;\r\n if (result && !isString(result)) {\r\n if (JSON && JSON[_DYN_STRINGIFY /* @min:%2estringify */]) {\r\n result = JSON[_DYN_STRINGIFY /* @min:%2estringify */](value);\r\n if (convertToString && (!result || result === \"{}\")) {\r\n if (isFunction(value[_DYN_TO_STRING /* @min:%2etoString */])) {\r\n result = value[_DYN_TO_STRING /* @min:%2etoString */]();\r\n }\r\n else {\r\n result = \"\" + value;\r\n }\r\n }\r\n }\r\n else {\r\n result = \"\" + value + \" - (Missing JSON.stringify)\";\r\n }\r\n }\r\n return result || \"\";\r\n}\r\nfunction _formatMessage(theEvent, errorType) {\r\n var evtMessage = theEvent;\r\n if (theEvent) {\r\n if (evtMessage && !isString(evtMessage)) {\r\n evtMessage = theEvent[strMessage] || theEvent[strDescription] || evtMessage;\r\n }\r\n // Make sure the message is a string\r\n if (evtMessage && !isString(evtMessage)) {\r\n // tslint:disable-next-line: prefer-conditional-expression\r\n evtMessage = _stringify(evtMessage, true);\r\n }\r\n if (theEvent[\"filename\"]) {\r\n // Looks like an event object with filename\r\n evtMessage = evtMessage + \" @\" + (theEvent[\"filename\"] || \"\") + \":\" + (theEvent[\"lineno\"] || \"?\") + \":\" + (theEvent[\"colno\"] || \"?\");\r\n }\r\n }\r\n // Automatically add the error type to the message if it does already appear to be present\r\n if (errorType && errorType !== \"String\" && errorType !== \"Object\" && errorType !== \"Error\" && strIndexOf(evtMessage || \"\", errorType) === -1) {\r\n evtMessage = errorType + \": \" + evtMessage;\r\n }\r\n return evtMessage || \"\";\r\n}\r\nfunction _isExceptionDetailsInternal(value) {\r\n try {\r\n if (isObject(value)) {\r\n return \"hasFullStack\" in value && \"typeName\" in value;\r\n }\r\n }\r\n catch (e) {\r\n // This can happen with some native browser objects, but should not happen for the type we are checking for\r\n }\r\n return false;\r\n}\r\nfunction _isExceptionInternal(value) {\r\n try {\r\n if (isObject(value)) {\r\n return (\"ver\" in value && \"exceptions\" in value && \"properties\" in value);\r\n }\r\n }\r\n catch (e) {\r\n // This can happen with some native browser objects, but should not happen for the type we are checking for\r\n }\r\n return false;\r\n}\r\nfunction _isStackDetails(details) {\r\n return details && details.src && isString(details.src) && details.obj && isArray(details.obj);\r\n}\r\nfunction _convertStackObj(errorStack) {\r\n var src = errorStack || \"\";\r\n if (!isString(src)) {\r\n if (isString(src[strStack])) {\r\n src = src[strStack];\r\n }\r\n else {\r\n src = \"\" + src;\r\n }\r\n }\r\n var items = src[_DYN_SPLIT /* @min:%2esplit */](\"\\n\");\r\n return {\r\n src: src,\r\n obj: items\r\n };\r\n}\r\nfunction _getOperaStack(errorMessage) {\r\n var stack = [];\r\n var lines = errorMessage[_DYN_SPLIT /* @min:%2esplit */](\"\\n\");\r\n for (var lp = 0; lp < lines[_DYN_LENGTH /* @min:%2elength */]; lp++) {\r\n var entry = lines[lp];\r\n if (lines[lp + 1]) {\r\n entry += \"@\" + lines[lp + 1];\r\n lp++;\r\n }\r\n stack[_DYN_PUSH /* @min:%2epush */](entry);\r\n }\r\n return {\r\n src: errorMessage,\r\n obj: stack\r\n };\r\n}\r\nfunction _getStackFromErrorObj(errorObj) {\r\n var details = null;\r\n if (errorObj) {\r\n try {\r\n /* Using bracket notation is support older browsers (IE 7/8 -- dont remember the version) that throw when using dot\r\n notation for undefined objects and we don't want to loose the error from being reported */\r\n if (errorObj[strStack]) {\r\n // Chrome/Firefox\r\n details = _convertStackObj(errorObj[strStack]);\r\n }\r\n else if (errorObj[strError] && errorObj[strError][strStack]) {\r\n // Edge error event provides the stack and error object\r\n details = _convertStackObj(errorObj[strError][strStack]);\r\n }\r\n else if (errorObj[\"exception\"] && errorObj.exception[strStack]) {\r\n details = _convertStackObj(errorObj.exception[strStack]);\r\n }\r\n else if (_isStackDetails(errorObj)) {\r\n details = errorObj;\r\n }\r\n else if (_isStackDetails(errorObj[strStackDetails])) {\r\n details = errorObj[strStackDetails];\r\n }\r\n else if (getWindow() && getWindow()[\"opera\"] && errorObj[strMessage]) {\r\n // Opera\r\n details = _getOperaStack(errorObj[_DYN_MESSAGE /* @min:%2emessage */]);\r\n }\r\n else if (errorObj[\"reason\"] && errorObj.reason[strStack]) {\r\n // UnhandledPromiseRejection\r\n details = _convertStackObj(errorObj.reason[strStack]);\r\n }\r\n else if (isString(errorObj)) {\r\n details = _convertStackObj(errorObj);\r\n }\r\n else {\r\n var evtMessage = errorObj[strMessage] || errorObj[strDescription] || \"\";\r\n if (isString(errorObj[strErrorSrc])) {\r\n if (evtMessage) {\r\n evtMessage += \"\\n\";\r\n }\r\n evtMessage += \" from \" + errorObj[strErrorSrc];\r\n }\r\n if (evtMessage) {\r\n details = _convertStackObj(evtMessage);\r\n }\r\n }\r\n }\r\n catch (e) {\r\n // something unexpected happened so to avoid failing to report any error lets swallow the exception\r\n // and fallback to the callee/caller method\r\n details = _convertStackObj(e);\r\n }\r\n }\r\n return details || {\r\n src: \"\",\r\n obj: null\r\n };\r\n}\r\nfunction _formatStackTrace(stackDetails) {\r\n var stack = \"\";\r\n if (stackDetails) {\r\n if (stackDetails.obj) {\r\n arrForEach(stackDetails.obj, function (entry) {\r\n stack += entry + \"\\n\";\r\n });\r\n }\r\n else {\r\n stack = stackDetails.src || \"\";\r\n }\r\n }\r\n return stack;\r\n}\r\nfunction _parseStack(stack) {\r\n var parsedStack;\r\n var frames = stack.obj;\r\n if (frames && frames[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n parsedStack = [];\r\n var level_1 = 0;\r\n var totalSizeInBytes_1 = 0;\r\n arrForEach(frames, function (frame) {\r\n var theFrame = frame[_DYN_TO_STRING /* @min:%2etoString */]();\r\n if (_StackFrame.regex.test(theFrame)) {\r\n var parsedFrame = new _StackFrame(theFrame, level_1++);\r\n totalSizeInBytes_1 += parsedFrame[_DYN_SIZE_IN_BYTES /* @min:%2esizeInBytes */];\r\n parsedStack[_DYN_PUSH /* @min:%2epush */](parsedFrame);\r\n }\r\n });\r\n // DP Constraint - exception parsed stack must be < 32KB\r\n // remove frames from the middle to meet the threshold\r\n var exceptionParsedStackThreshold = 32 * 1024;\r\n if (totalSizeInBytes_1 > exceptionParsedStackThreshold) {\r\n var left = 0;\r\n var right = parsedStack[_DYN_LENGTH /* @min:%2elength */] - 1;\r\n var size = 0;\r\n var acceptedLeft = left;\r\n var acceptedRight = right;\r\n while (left < right) {\r\n // check size\r\n var lSize = parsedStack[left][_DYN_SIZE_IN_BYTES /* @min:%2esizeInBytes */];\r\n var rSize = parsedStack[right][_DYN_SIZE_IN_BYTES /* @min:%2esizeInBytes */];\r\n size += lSize + rSize;\r\n if (size > exceptionParsedStackThreshold) {\r\n // remove extra frames from the middle\r\n var howMany = acceptedRight - acceptedLeft + 1;\r\n parsedStack.splice(acceptedLeft, howMany);\r\n break;\r\n }\r\n // update pointers\r\n acceptedLeft = left;\r\n acceptedRight = right;\r\n left++;\r\n right--;\r\n }\r\n }\r\n }\r\n return parsedStack;\r\n}\r\nfunction _getErrorType(errorType) {\r\n // Gets the Error Type by passing the constructor (used to get the true type of native error object).\r\n var typeName = \"\";\r\n if (errorType) {\r\n typeName = errorType.typeName || errorType[_DYN_NAME /* @min:%2ename */] || \"\";\r\n if (!typeName) {\r\n try {\r\n var funcNameRegex = /function (.{1,200})\\(/;\r\n var results = (funcNameRegex).exec((errorType).constructor[_DYN_TO_STRING /* @min:%2etoString */]());\r\n typeName = (results && results[_DYN_LENGTH /* @min:%2elength */] > 1) ? results[1] : \"\";\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty -- Ignoring any failures as nothing we can do\r\n }\r\n }\r\n }\r\n return typeName;\r\n}\r\n/**\r\n * Formats the provided errorObj for display and reporting, it may be a String, Object, integer or undefined depending on the browser.\r\n * @param errorObj - The supplied errorObj\r\n */\r\nexport function _formatErrorCode(errorObj) {\r\n if (errorObj) {\r\n try {\r\n if (!isString(errorObj)) {\r\n var errorType = _getErrorType(errorObj);\r\n var result = _stringify(errorObj, false);\r\n if (!result || result === \"{}\") {\r\n if (errorObj[strError]) {\r\n // Looks like an MS Error Event\r\n errorObj = errorObj[strError];\r\n errorType = _getErrorType(errorObj);\r\n }\r\n result = _stringify(errorObj, true);\r\n }\r\n if (strIndexOf(result, errorType) !== 0 && errorType !== \"String\") {\r\n return errorType + \":\" + result;\r\n }\r\n return result;\r\n }\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty -- Ignoring any failures as nothing we can do\r\n }\r\n }\r\n // Fallback to just letting the object format itself into a string\r\n return \"\" + (errorObj || \"\");\r\n}\r\nvar Exception = /** @class */ (function () {\r\n /**\r\n * Constructs a new instance of the ExceptionTelemetry object\r\n */\r\n function Exception(logger, exception, properties, measurements, severityLevel, id) {\r\n this.aiDataContract = {\r\n ver: 1 /* FieldType.Required */,\r\n exceptions: 1 /* FieldType.Required */,\r\n severityLevel: 0 /* FieldType.Default */,\r\n properties: 0 /* FieldType.Default */,\r\n measurements: 0 /* FieldType.Default */\r\n };\r\n var _self = this;\r\n _self.ver = 2; // TODO: handle the CS\"4.0\" ==> breeze 2 conversion in a better way\r\n if (!_isExceptionInternal(exception)) {\r\n if (!properties) {\r\n properties = {};\r\n }\r\n if (id) {\r\n properties.id = id;\r\n }\r\n _self[_DYN_EXCEPTIONS /* @min:%2eexceptions */] = [new _ExceptionDetails(logger, exception, properties)];\r\n _self[_DYN_PROPERTIES /* @min:%2eproperties */] = dataSanitizeProperties(logger, properties);\r\n _self[_DYN_MEASUREMENTS /* @min:%2emeasurements */] = dataSanitizeMeasurements(logger, measurements);\r\n if (severityLevel) {\r\n _self[_DYN_SEVERITY_LEVEL /* @min:%2eseverityLevel */] = severityLevel;\r\n }\r\n if (id) {\r\n _self.id = id;\r\n }\r\n }\r\n else {\r\n _self[_DYN_EXCEPTIONS /* @min:%2eexceptions */] = exception[_DYN_EXCEPTIONS /* @min:%2eexceptions */] || [];\r\n _self[_DYN_PROPERTIES /* @min:%2eproperties */] = exception[_DYN_PROPERTIES /* @min:%2eproperties */];\r\n _self[_DYN_MEASUREMENTS /* @min:%2emeasurements */] = exception[_DYN_MEASUREMENTS /* @min:%2emeasurements */];\r\n if (exception[_DYN_SEVERITY_LEVEL /* @min:%2eseverityLevel */]) {\r\n _self[_DYN_SEVERITY_LEVEL /* @min:%2eseverityLevel */] = exception[_DYN_SEVERITY_LEVEL /* @min:%2eseverityLevel */];\r\n }\r\n if (exception.id) {\r\n _self.id = exception.id;\r\n exception[_DYN_PROPERTIES /* @min:%2eproperties */].id = exception.id;\r\n }\r\n if (exception[_DYN_PROBLEM_GROUP /* @min:%2eproblemGroup */]) {\r\n _self[_DYN_PROBLEM_GROUP /* @min:%2eproblemGroup */] = exception[_DYN_PROBLEM_GROUP /* @min:%2eproblemGroup */];\r\n }\r\n // bool/int types, use isNullOrUndefined\r\n if (!isNullOrUndefined(exception[_DYN_IS_MANUAL /* @min:%2eisManual */])) {\r\n _self[_DYN_IS_MANUAL /* @min:%2eisManual */] = exception[_DYN_IS_MANUAL /* @min:%2eisManual */];\r\n }\r\n }\r\n }\r\n Exception.CreateAutoException = function (message, url, lineNumber, columnNumber, error, evt, stack, errorSrc) {\r\n var _a;\r\n var errorType = _getErrorType(error || evt || message);\r\n return _a = {},\r\n _a[_DYN_MESSAGE /* @min:message */] = _formatMessage(message, errorType),\r\n _a.url = url,\r\n _a.lineNumber = lineNumber,\r\n _a.columnNumber = columnNumber,\r\n _a.error = _formatErrorCode(error || evt || message),\r\n _a.evt = _formatErrorCode(evt || message),\r\n _a[_DYN_TYPE_NAME /* @min:typeName */] = errorType,\r\n _a.stackDetails = _getStackFromErrorObj(stack || error || evt),\r\n _a.errorSrc = errorSrc,\r\n _a;\r\n };\r\n Exception.CreateFromInterface = function (logger, exception, properties, measurements) {\r\n var exceptions = exception[_DYN_EXCEPTIONS /* @min:%2eexceptions */]\r\n && arrMap(exception[_DYN_EXCEPTIONS /* @min:%2eexceptions */], function (ex) { return _ExceptionDetails[_DYN__CREATE_FROM_INTERFA1 /* @min:%2eCreateFromInterface */](logger, ex); });\r\n var exceptionData = new Exception(logger, __assign(__assign({}, exception), { exceptions: exceptions }), properties, measurements);\r\n return exceptionData;\r\n };\r\n Exception.prototype.toInterface = function () {\r\n var _a;\r\n var _b = this, exceptions = _b.exceptions, properties = _b.properties, measurements = _b.measurements, severityLevel = _b.severityLevel, problemGroup = _b.problemGroup, id = _b.id, isManual = _b.isManual;\r\n var exceptionDetailsInterface = exceptions instanceof Array\r\n && arrMap(exceptions, function (exception) { return exception.toInterface(); })\r\n || undefined;\r\n return _a = {\r\n ver: \"4.0\"\r\n },\r\n _a[_DYN_EXCEPTIONS /* @min:exceptions */] = exceptionDetailsInterface,\r\n _a.severityLevel = severityLevel,\r\n _a.properties = properties,\r\n _a.measurements = measurements,\r\n _a.problemGroup = problemGroup,\r\n _a.id = id,\r\n _a.isManual = isManual,\r\n _a;\r\n };\r\n /**\r\n * Creates a simple exception with 1 stack frame. Useful for manual constracting of exception.\r\n */\r\n Exception.CreateSimpleException = function (message, typeName, assembly, fileName, details, line) {\r\n var _a;\r\n return {\r\n exceptions: [\r\n (_a = {},\r\n _a[_DYN_HAS_FULL_STACK /* @min:hasFullStack */] = true,\r\n _a.message = message,\r\n _a.stack = details,\r\n _a.typeName = typeName,\r\n _a)\r\n ]\r\n };\r\n };\r\n Exception.envelopeType = \"Microsoft.ApplicationInsights.{0}.Exception\";\r\n Exception.dataType = \"ExceptionData\";\r\n Exception.formatError = _formatErrorCode;\r\n return Exception;\r\n}());\r\nexport { Exception };\r\nvar _ExceptionDetails = /** @class */ (function () {\r\n function _ExceptionDetails(logger, exception, properties) {\r\n this.aiDataContract = {\r\n id: 0 /* FieldType.Default */,\r\n outerId: 0 /* FieldType.Default */,\r\n typeName: 1 /* FieldType.Required */,\r\n message: 1 /* FieldType.Required */,\r\n hasFullStack: 0 /* FieldType.Default */,\r\n stack: 0 /* FieldType.Default */,\r\n parsedStack: 2 /* FieldType.Array */\r\n };\r\n var _self = this;\r\n if (!_isExceptionDetailsInternal(exception)) {\r\n var error = exception;\r\n var evt = error && error.evt;\r\n if (!isError(error)) {\r\n error = error[strError] || evt || error;\r\n }\r\n _self[_DYN_TYPE_NAME /* @min:%2etypeName */] = dataSanitizeString(logger, _getErrorType(error)) || strNotSpecified;\r\n _self[_DYN_MESSAGE /* @min:%2emessage */] = dataSanitizeMessage(logger, _formatMessage(exception || error, _self[_DYN_TYPE_NAME /* @min:%2etypeName */])) || strNotSpecified;\r\n var stack = exception[strStackDetails] || _getStackFromErrorObj(exception);\r\n _self[_DYN_PARSED_STACK /* @min:%2eparsedStack */] = _parseStack(stack);\r\n // after parsedStack is inited, iterate over each frame object, sanitize its assembly field\r\n if (isArray(_self[_DYN_PARSED_STACK /* @min:%2eparsedStack */])) {\r\n arrMap(_self[_DYN_PARSED_STACK /* @min:%2eparsedStack */], function (frame) {\r\n frame[_DYN_ASSEMBLY /* @min:%2eassembly */] = dataSanitizeString(logger, frame[_DYN_ASSEMBLY /* @min:%2eassembly */]);\r\n frame[_DYN_FILE_NAME /* @min:%2efileName */] = dataSanitizeString(logger, frame[_DYN_FILE_NAME /* @min:%2efileName */]);\r\n });\r\n }\r\n _self[strStack] = dataSanitizeException(logger, _formatStackTrace(stack));\r\n _self.hasFullStack = isArray(_self.parsedStack) && _self.parsedStack[_DYN_LENGTH /* @min:%2elength */] > 0;\r\n if (properties) {\r\n properties[_DYN_TYPE_NAME /* @min:%2etypeName */] = properties[_DYN_TYPE_NAME /* @min:%2etypeName */] || _self[_DYN_TYPE_NAME /* @min:%2etypeName */];\r\n }\r\n }\r\n else {\r\n _self[_DYN_TYPE_NAME /* @min:%2etypeName */] = exception[_DYN_TYPE_NAME /* @min:%2etypeName */];\r\n _self[_DYN_MESSAGE /* @min:%2emessage */] = exception[_DYN_MESSAGE /* @min:%2emessage */];\r\n _self[strStack] = exception[strStack];\r\n _self[_DYN_PARSED_STACK /* @min:%2eparsedStack */] = exception[_DYN_PARSED_STACK /* @min:%2eparsedStack */] || [];\r\n _self[_DYN_HAS_FULL_STACK /* @min:%2ehasFullStack */] = exception[_DYN_HAS_FULL_STACK /* @min:%2ehasFullStack */];\r\n }\r\n }\r\n _ExceptionDetails.prototype.toInterface = function () {\r\n var _a;\r\n var _self = this;\r\n var parsedStack = _self[_DYN_PARSED_STACK /* @min:%2eparsedStack */] instanceof Array\r\n && arrMap(_self[_DYN_PARSED_STACK /* @min:%2eparsedStack */], function (frame) { return frame.toInterface(); });\r\n var exceptionDetailsInterface = (_a = {\r\n id: _self.id,\r\n outerId: _self.outerId,\r\n typeName: _self[_DYN_TYPE_NAME /* @min:%2etypeName */],\r\n message: _self[_DYN_MESSAGE /* @min:%2emessage */],\r\n hasFullStack: _self[_DYN_HAS_FULL_STACK /* @min:%2ehasFullStack */],\r\n stack: _self[strStack]\r\n },\r\n _a[_DYN_PARSED_STACK /* @min:parsedStack */] = parsedStack || undefined,\r\n _a);\r\n return exceptionDetailsInterface;\r\n };\r\n _ExceptionDetails.CreateFromInterface = function (logger, exception) {\r\n var parsedStack = (exception[_DYN_PARSED_STACK /* @min:%2eparsedStack */] instanceof Array\r\n && arrMap(exception[_DYN_PARSED_STACK /* @min:%2eparsedStack */], function (frame) { return _StackFrame[_DYN__CREATE_FROM_INTERFA1 /* @min:%2eCreateFromInterface */](frame); }))\r\n || exception[_DYN_PARSED_STACK /* @min:%2eparsedStack */];\r\n var exceptionDetails = new _ExceptionDetails(logger, __assign(__assign({}, exception), { parsedStack: parsedStack }));\r\n return exceptionDetails;\r\n };\r\n return _ExceptionDetails;\r\n}());\r\nexport { _ExceptionDetails };\r\nvar _StackFrame = /** @class */ (function () {\r\n function _StackFrame(sourceFrame, level) {\r\n this.aiDataContract = {\r\n level: 1 /* FieldType.Required */,\r\n method: 1 /* FieldType.Required */,\r\n assembly: 0 /* FieldType.Default */,\r\n fileName: 0 /* FieldType.Default */,\r\n line: 0 /* FieldType.Default */\r\n };\r\n var _self = this;\r\n _self[_DYN_SIZE_IN_BYTES /* @min:%2esizeInBytes */] = 0;\r\n // Not converting this to isString() as typescript uses this logic to \"understand\" the different\r\n // types for the 2 different code paths\r\n if (typeof sourceFrame === \"string\") {\r\n var frame = sourceFrame;\r\n _self[_DYN_LEVEL /* @min:%2elevel */] = level;\r\n _self[_DYN_METHOD /* @min:%2emethod */] = NoMethod;\r\n _self[_DYN_ASSEMBLY /* @min:%2eassembly */] = strTrim(frame);\r\n _self[_DYN_FILE_NAME /* @min:%2efileName */] = \"\";\r\n _self[_DYN_LINE /* @min:%2eline */] = 0;\r\n var matches = frame.match(_StackFrame.regex);\r\n if (matches && matches[_DYN_LENGTH /* @min:%2elength */] >= 5) {\r\n _self[_DYN_METHOD /* @min:%2emethod */] = strTrim(matches[2]) || _self[_DYN_METHOD /* @min:%2emethod */];\r\n _self[_DYN_FILE_NAME /* @min:%2efileName */] = strTrim(matches[4]);\r\n _self[_DYN_LINE /* @min:%2eline */] = parseInt(matches[5]) || 0;\r\n }\r\n }\r\n else {\r\n _self[_DYN_LEVEL /* @min:%2elevel */] = sourceFrame[_DYN_LEVEL /* @min:%2elevel */];\r\n _self[_DYN_METHOD /* @min:%2emethod */] = sourceFrame[_DYN_METHOD /* @min:%2emethod */];\r\n _self[_DYN_ASSEMBLY /* @min:%2eassembly */] = sourceFrame[_DYN_ASSEMBLY /* @min:%2eassembly */];\r\n _self[_DYN_FILE_NAME /* @min:%2efileName */] = sourceFrame[_DYN_FILE_NAME /* @min:%2efileName */];\r\n _self[_DYN_LINE /* @min:%2eline */] = sourceFrame[_DYN_LINE /* @min:%2eline */];\r\n _self[_DYN_SIZE_IN_BYTES /* @min:%2esizeInBytes */] = 0;\r\n }\r\n _self.sizeInBytes += _self.method[_DYN_LENGTH /* @min:%2elength */];\r\n _self.sizeInBytes += _self.fileName[_DYN_LENGTH /* @min:%2elength */];\r\n _self.sizeInBytes += _self.assembly[_DYN_LENGTH /* @min:%2elength */];\r\n // todo: these might need to be removed depending on how the back-end settles on their size calculation\r\n _self[_DYN_SIZE_IN_BYTES /* @min:%2esizeInBytes */] += _StackFrame.baseSize;\r\n _self.sizeInBytes += _self.level.toString()[_DYN_LENGTH /* @min:%2elength */];\r\n _self.sizeInBytes += _self.line.toString()[_DYN_LENGTH /* @min:%2elength */];\r\n }\r\n _StackFrame.CreateFromInterface = function (frame) {\r\n return new _StackFrame(frame, null /* level is available in frame interface */);\r\n };\r\n _StackFrame.prototype.toInterface = function () {\r\n var _self = this;\r\n return {\r\n level: _self[_DYN_LEVEL /* @min:%2elevel */],\r\n method: _self[_DYN_METHOD /* @min:%2emethod */],\r\n assembly: _self[_DYN_ASSEMBLY /* @min:%2eassembly */],\r\n fileName: _self[_DYN_FILE_NAME /* @min:%2efileName */],\r\n line: _self[_DYN_LINE /* @min:%2eline */]\r\n };\r\n };\r\n // regex to match stack frames from ie/chrome/ff\r\n // methodName=$2, fileName=$4, lineNo=$5, column=$6\r\n _StackFrame.regex = /^([\\s]+at)?[\\s]{0,50}([^\\@\\()]+?)[\\s]{0,50}(\\@|\\()([^\\(\\n]+):([0-9]+):([0-9]+)(\\)?)$/;\r\n _StackFrame.baseSize = 58; // '{\"method\":\"\",\"level\":,\"assembly\":\"\",\"fileName\":\"\",\"line\":}'.length\r\n return _StackFrame;\r\n}());\r\nexport { _StackFrame };\r\n//# sourceMappingURL=Exception.js.map","/*\n * Application Insights JavaScript SDK - Common, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nvar DataPoint = /** @class */ (function () {\r\n function DataPoint() {\r\n /**\r\n * The data contract for serializing this object.\r\n */\r\n this.aiDataContract = {\r\n name: 1 /* FieldType.Required */,\r\n kind: 0 /* FieldType.Default */,\r\n value: 1 /* FieldType.Required */,\r\n count: 0 /* FieldType.Default */,\r\n min: 0 /* FieldType.Default */,\r\n max: 0 /* FieldType.Default */,\r\n stdDev: 0 /* FieldType.Default */\r\n };\r\n /**\r\n * Metric type. Single measurement or the aggregated value.\r\n */\r\n this.kind = 0 /* DataPointType.Measurement */;\r\n }\r\n return DataPoint;\r\n}());\r\nexport { DataPoint };\r\n//# sourceMappingURL=DataPoint.js.map","/*\n * Application Insights JavaScript SDK - Common, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { strNotSpecified } from \"../Constants\";\r\nimport { _DYN_COUNT, _DYN_MEASUREMENTS, _DYN_NAME, _DYN_PROPERTIES } from \"../__DynamicConstants\";\r\nimport { DataPoint } from \"./Common/DataPoint\";\r\nimport { dataSanitizeMeasurements, dataSanitizeProperties, dataSanitizeString } from \"./Common/DataSanitizer\";\r\nvar Metric = /** @class */ (function () {\r\n /**\r\n * Constructs a new instance of the MetricTelemetry object\r\n */\r\n function Metric(logger, name, value, count, min, max, stdDev, properties, measurements) {\r\n this.aiDataContract = {\r\n ver: 1 /* FieldType.Required */,\r\n metrics: 1 /* FieldType.Required */,\r\n properties: 0 /* FieldType.Default */\r\n };\r\n var _self = this;\r\n _self.ver = 2;\r\n var dataPoint = new DataPoint();\r\n dataPoint[_DYN_COUNT /* @min:%2ecount */] = count > 0 ? count : undefined;\r\n dataPoint.max = isNaN(max) || max === null ? undefined : max;\r\n dataPoint.min = isNaN(min) || min === null ? undefined : min;\r\n dataPoint[_DYN_NAME /* @min:%2ename */] = dataSanitizeString(logger, name) || strNotSpecified;\r\n dataPoint.value = value;\r\n dataPoint.stdDev = isNaN(stdDev) || stdDev === null ? undefined : stdDev;\r\n _self.metrics = [dataPoint];\r\n _self[_DYN_PROPERTIES /* @min:%2eproperties */] = dataSanitizeProperties(logger, properties);\r\n _self[_DYN_MEASUREMENTS /* @min:%2emeasurements */] = dataSanitizeMeasurements(logger, measurements);\r\n }\r\n Metric.envelopeType = \"Microsoft.ApplicationInsights.{0}.Metric\";\r\n Metric.dataType = \"MetricData\";\r\n return Metric;\r\n}());\r\nexport { Metric };\r\n//# sourceMappingURL=Metric.js.map","/*\n * Application Insights JavaScript SDK - Common, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { arrForEach, isString } from \"@microsoft/applicationinsights-core-js\";\r\nimport { _DYN_LENGTH, _DYN_TO_LOWER_CASE } from \"./__DynamicConstants\";\r\nvar strEmpty = \"\";\r\nexport function stringToBoolOrDefault(str, defaultValue) {\r\n if (defaultValue === void 0) { defaultValue = false; }\r\n if (str === undefined || str === null) {\r\n return defaultValue;\r\n }\r\n return str.toString()[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]() === \"true\";\r\n}\r\n/**\r\n * Convert ms to c# time span format\r\n */\r\nexport function msToTimeSpan(totalms) {\r\n if (isNaN(totalms) || totalms < 0) {\r\n totalms = 0;\r\n }\r\n totalms = Math.round(totalms);\r\n var ms = strEmpty + totalms % 1000;\r\n var sec = strEmpty + Math.floor(totalms / 1000) % 60;\r\n var min = strEmpty + Math.floor(totalms / (1000 * 60)) % 60;\r\n var hour = strEmpty + Math.floor(totalms / (1000 * 60 * 60)) % 24;\r\n var days = Math.floor(totalms / (1000 * 60 * 60 * 24));\r\n ms = ms[_DYN_LENGTH /* @min:%2elength */] === 1 ? \"00\" + ms : ms[_DYN_LENGTH /* @min:%2elength */] === 2 ? \"0\" + ms : ms;\r\n sec = sec[_DYN_LENGTH /* @min:%2elength */] < 2 ? \"0\" + sec : sec;\r\n min = min[_DYN_LENGTH /* @min:%2elength */] < 2 ? \"0\" + min : min;\r\n hour = hour[_DYN_LENGTH /* @min:%2elength */] < 2 ? \"0\" + hour : hour;\r\n return (days > 0 ? days + \".\" : strEmpty) + hour + \":\" + min + \":\" + sec + \".\" + ms;\r\n}\r\nexport function getExtensionByName(extensions, identifier) {\r\n var extension = null;\r\n arrForEach(extensions, function (value) {\r\n if (value.identifier === identifier) {\r\n extension = value;\r\n return -1;\r\n }\r\n });\r\n return extension;\r\n}\r\nexport function isCrossOriginError(message, url, lineNumber, columnNumber, error) {\r\n return !error && isString(message) && (message === \"Script error.\" || message === \"Script error\");\r\n}\r\n//# sourceMappingURL=HelperFuncs.js.map","/*\n * Application Insights JavaScript SDK - Common, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { strNotSpecified } from \"../Constants\";\r\nimport { msToTimeSpan } from \"../HelperFuncs\";\r\nimport { _DYN_DURATION, _DYN_MEASUREMENTS, _DYN_NAME, _DYN_PROPERTIES } from \"../__DynamicConstants\";\r\nimport { dataSanitizeId, dataSanitizeMeasurements, dataSanitizeProperties, dataSanitizeString, dataSanitizeUrl } from \"./Common/DataSanitizer\";\r\nvar PageView = /** @class */ (function () {\r\n /**\r\n * Constructs a new instance of the PageEventTelemetry object\r\n */\r\n function PageView(logger, name, url, durationMs, properties, measurements, id) {\r\n this.aiDataContract = {\r\n ver: 1 /* FieldType.Required */,\r\n name: 0 /* FieldType.Default */,\r\n url: 0 /* FieldType.Default */,\r\n duration: 0 /* FieldType.Default */,\r\n properties: 0 /* FieldType.Default */,\r\n measurements: 0 /* FieldType.Default */,\r\n id: 0 /* FieldType.Default */\r\n };\r\n var _self = this;\r\n _self.ver = 2;\r\n _self.id = dataSanitizeId(logger, id);\r\n _self.url = dataSanitizeUrl(logger, url);\r\n _self[_DYN_NAME /* @min:%2ename */] = dataSanitizeString(logger, name) || strNotSpecified;\r\n if (!isNaN(durationMs)) {\r\n _self[_DYN_DURATION /* @min:%2eduration */] = msToTimeSpan(durationMs);\r\n }\r\n _self[_DYN_PROPERTIES /* @min:%2eproperties */] = dataSanitizeProperties(logger, properties);\r\n _self[_DYN_MEASUREMENTS /* @min:%2emeasurements */] = dataSanitizeMeasurements(logger, measurements);\r\n }\r\n PageView.envelopeType = \"Microsoft.ApplicationInsights.{0}.Pageview\";\r\n PageView.dataType = \"PageviewData\";\r\n return PageView;\r\n}());\r\nexport { PageView };\r\n//# sourceMappingURL=PageView.js.map","/*\n * Application Insights JavaScript SDK - Common, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { msToTimeSpan } from \"../HelperFuncs\";\r\nimport { AjaxHelperParseDependencyPath } from \"../Util\";\r\nimport { _DYN_DURATION, _DYN_MEASUREMENTS, _DYN_NAME, _DYN_PROPERTIES } from \"../__DynamicConstants\";\r\nimport { dataSanitizeMeasurements, dataSanitizeProperties, dataSanitizeString, dataSanitizeUrl } from \"./Common/DataSanitizer\";\r\nvar RemoteDependencyData = /** @class */ (function () {\r\n /**\r\n * Constructs a new instance of the RemoteDependencyData object\r\n */\r\n function RemoteDependencyData(logger, id, absoluteUrl, commandName, value, success, resultCode, method, requestAPI, correlationContext, properties, measurements) {\r\n if (requestAPI === void 0) { requestAPI = \"Ajax\"; }\r\n this.aiDataContract = {\r\n id: 1 /* FieldType.Required */,\r\n ver: 1 /* FieldType.Required */,\r\n name: 0 /* FieldType.Default */,\r\n resultCode: 0 /* FieldType.Default */,\r\n duration: 0 /* FieldType.Default */,\r\n success: 0 /* FieldType.Default */,\r\n data: 0 /* FieldType.Default */,\r\n target: 0 /* FieldType.Default */,\r\n type: 0 /* FieldType.Default */,\r\n properties: 0 /* FieldType.Default */,\r\n measurements: 0 /* FieldType.Default */,\r\n kind: 0 /* FieldType.Default */,\r\n value: 0 /* FieldType.Default */,\r\n count: 0 /* FieldType.Default */,\r\n min: 0 /* FieldType.Default */,\r\n max: 0 /* FieldType.Default */,\r\n stdDev: 0 /* FieldType.Default */,\r\n dependencyKind: 0 /* FieldType.Default */,\r\n dependencySource: 0 /* FieldType.Default */,\r\n commandName: 0 /* FieldType.Default */,\r\n dependencyTypeName: 0 /* FieldType.Default */\r\n };\r\n var _self = this;\r\n _self.ver = 2;\r\n _self.id = id;\r\n _self[_DYN_DURATION /* @min:%2eduration */] = msToTimeSpan(value);\r\n _self.success = success;\r\n _self.resultCode = resultCode + \"\";\r\n _self.type = dataSanitizeString(logger, requestAPI);\r\n var dependencyFields = AjaxHelperParseDependencyPath(logger, absoluteUrl, method, commandName);\r\n _self.data = dataSanitizeUrl(logger, commandName) || dependencyFields.data; // get a value from hosturl if commandName not available\r\n _self.target = dataSanitizeString(logger, dependencyFields.target);\r\n if (correlationContext) {\r\n _self.target = \"\".concat(_self.target, \" | \").concat(correlationContext);\r\n }\r\n _self[_DYN_NAME /* @min:%2ename */] = dataSanitizeString(logger, dependencyFields[_DYN_NAME /* @min:%2ename */]);\r\n _self[_DYN_PROPERTIES /* @min:%2eproperties */] = dataSanitizeProperties(logger, properties);\r\n _self[_DYN_MEASUREMENTS /* @min:%2emeasurements */] = dataSanitizeMeasurements(logger, measurements);\r\n }\r\n RemoteDependencyData.envelopeType = \"Microsoft.ApplicationInsights.{0}.RemoteDependency\";\r\n RemoteDependencyData.dataType = \"RemoteDependencyData\";\r\n return RemoteDependencyData;\r\n}());\r\nexport { RemoteDependencyData };\r\n//# sourceMappingURL=RemoteDependencyData.js.map","/*\n * Application Insights JavaScript SDK - Common, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { strNotSpecified } from \"../Constants\";\r\nimport { _DYN_MEASUREMENTS, _DYN_MESSAGE, _DYN_PROPERTIES, _DYN_SEVERITY_LEVEL } from \"../__DynamicConstants\";\r\nimport { dataSanitizeMeasurements, dataSanitizeMessage, dataSanitizeProperties } from \"./Common/DataSanitizer\";\r\nvar Trace = /** @class */ (function () {\r\n /**\r\n * Constructs a new instance of the TraceTelemetry object\r\n */\r\n function Trace(logger, message, severityLevel, properties, measurements) {\r\n this.aiDataContract = {\r\n ver: 1 /* FieldType.Required */,\r\n message: 1 /* FieldType.Required */,\r\n severityLevel: 0 /* FieldType.Default */,\r\n properties: 0 /* FieldType.Default */\r\n };\r\n var _self = this;\r\n _self.ver = 2;\r\n message = message || strNotSpecified;\r\n _self[_DYN_MESSAGE /* @min:%2emessage */] = dataSanitizeMessage(logger, message);\r\n _self[_DYN_PROPERTIES /* @min:%2eproperties */] = dataSanitizeProperties(logger, properties);\r\n _self[_DYN_MEASUREMENTS /* @min:%2emeasurements */] = dataSanitizeMeasurements(logger, measurements);\r\n if (severityLevel) {\r\n _self[_DYN_SEVERITY_LEVEL /* @min:%2eseverityLevel */] = severityLevel;\r\n }\r\n }\r\n Trace.envelopeType = \"Microsoft.ApplicationInsights.{0}.Message\";\r\n Trace.dataType = \"MessageData\";\r\n return Trace;\r\n}());\r\nexport { Trace };\r\n//# sourceMappingURL=Trace.js.map","/*\n * Application Insights JavaScript SDK - Common, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { strNotSpecified } from \"../Constants\";\r\nimport { _DYN_DURATION, _DYN_MEASUREMENTS, _DYN_NAME, _DYN_PROPERTIES, _DYN_RECEIVED_RESPONSE } from \"../__DynamicConstants\";\r\nimport { dataSanitizeMeasurements, dataSanitizeProperties, dataSanitizeString, dataSanitizeUrl } from \"./Common/DataSanitizer\";\r\nvar PageViewPerformance = /** @class */ (function () {\r\n /**\r\n * Constructs a new instance of the PageEventTelemetry object\r\n */\r\n function PageViewPerformance(logger, name, url, unused, properties, measurements, cs4BaseData) {\r\n this.aiDataContract = {\r\n ver: 1 /* FieldType.Required */,\r\n name: 0 /* FieldType.Default */,\r\n url: 0 /* FieldType.Default */,\r\n duration: 0 /* FieldType.Default */,\r\n perfTotal: 0 /* FieldType.Default */,\r\n networkConnect: 0 /* FieldType.Default */,\r\n sentRequest: 0 /* FieldType.Default */,\r\n receivedResponse: 0 /* FieldType.Default */,\r\n domProcessing: 0 /* FieldType.Default */,\r\n properties: 0 /* FieldType.Default */,\r\n measurements: 0 /* FieldType.Default */\r\n };\r\n var _self = this;\r\n _self.ver = 2;\r\n _self.url = dataSanitizeUrl(logger, url);\r\n _self[_DYN_NAME /* @min:%2ename */] = dataSanitizeString(logger, name) || strNotSpecified;\r\n _self[_DYN_PROPERTIES /* @min:%2eproperties */] = dataSanitizeProperties(logger, properties);\r\n _self[_DYN_MEASUREMENTS /* @min:%2emeasurements */] = dataSanitizeMeasurements(logger, measurements);\r\n if (cs4BaseData) {\r\n _self.domProcessing = cs4BaseData.domProcessing;\r\n _self[_DYN_DURATION /* @min:%2eduration */] = cs4BaseData[_DYN_DURATION /* @min:%2eduration */];\r\n _self.networkConnect = cs4BaseData.networkConnect;\r\n _self.perfTotal = cs4BaseData.perfTotal;\r\n _self[_DYN_RECEIVED_RESPONSE /* @min:%2ereceivedResponse */] = cs4BaseData[_DYN_RECEIVED_RESPONSE /* @min:%2ereceivedResponse */];\r\n _self.sentRequest = cs4BaseData.sentRequest;\r\n }\r\n }\r\n PageViewPerformance.envelopeType = \"Microsoft.ApplicationInsights.{0}.PageviewPerformance\";\r\n PageViewPerformance.dataType = \"PageviewPerformanceData\";\r\n return PageViewPerformance;\r\n}());\r\nexport { PageViewPerformance };\r\n//# sourceMappingURL=PageViewPerformance.js.map","/*\n * Application Insights JavaScript SDK - Common, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nvar Data = /** @class */ (function () {\r\n /**\r\n * Constructs a new instance of telemetry data.\r\n */\r\n function Data(baseType, data) {\r\n /**\r\n * The data contract for serializing this object.\r\n */\r\n this.aiDataContract = {\r\n baseType: 1 /* FieldType.Required */,\r\n baseData: 1 /* FieldType.Required */\r\n };\r\n this.baseType = baseType;\r\n this.baseData = data;\r\n }\r\n return Data;\r\n}());\r\nexport { Data };\r\n//# sourceMappingURL=Data.js.map","/*\n * Application Insights JavaScript SDK - Common, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { __extendsFn as __extends } from \"@microsoft/applicationinsights-shims\";\r\nimport { createClassFromInterface } from \"@microsoft/applicationinsights-core-js\";\r\nfunction _aiNameFunc(baseName) {\r\n var aiName = \"ai.\" + baseName + \".\";\r\n return function (name) {\r\n return aiName + name;\r\n };\r\n}\r\nvar _aiApplication = _aiNameFunc(\"application\");\r\nvar _aiDevice = _aiNameFunc(\"device\");\r\nvar _aiLocation = _aiNameFunc(\"location\");\r\nvar _aiOperation = _aiNameFunc(\"operation\");\r\nvar _aiSession = _aiNameFunc(\"session\");\r\nvar _aiUser = _aiNameFunc(\"user\");\r\nvar _aiCloud = _aiNameFunc(\"cloud\");\r\nvar _aiInternal = _aiNameFunc(\"internal\");\r\nvar ContextTagKeys = /** @class */ (function (_super) {\r\n __extends(ContextTagKeys, _super);\r\n function ContextTagKeys() {\r\n return _super.call(this) || this;\r\n }\r\n return ContextTagKeys;\r\n}(createClassFromInterface({\r\n applicationVersion: _aiApplication(\"ver\"),\r\n applicationBuild: _aiApplication(\"build\"),\r\n applicationTypeId: _aiApplication(\"typeId\"),\r\n applicationId: _aiApplication(\"applicationId\"),\r\n applicationLayer: _aiApplication(\"layer\"),\r\n deviceId: _aiDevice(\"id\"),\r\n deviceIp: _aiDevice(\"ip\"),\r\n deviceLanguage: _aiDevice(\"language\"),\r\n deviceLocale: _aiDevice(\"locale\"),\r\n deviceModel: _aiDevice(\"model\"),\r\n deviceFriendlyName: _aiDevice(\"friendlyName\"),\r\n deviceNetwork: _aiDevice(\"network\"),\r\n deviceNetworkName: _aiDevice(\"networkName\"),\r\n deviceOEMName: _aiDevice(\"oemName\"),\r\n deviceOS: _aiDevice(\"os\"),\r\n deviceOSVersion: _aiDevice(\"osVersion\"),\r\n deviceRoleInstance: _aiDevice(\"roleInstance\"),\r\n deviceRoleName: _aiDevice(\"roleName\"),\r\n deviceScreenResolution: _aiDevice(\"screenResolution\"),\r\n deviceType: _aiDevice(\"type\"),\r\n deviceMachineName: _aiDevice(\"machineName\"),\r\n deviceVMName: _aiDevice(\"vmName\"),\r\n deviceBrowser: _aiDevice(\"browser\"),\r\n deviceBrowserVersion: _aiDevice(\"browserVersion\"),\r\n locationIp: _aiLocation(\"ip\"),\r\n locationCountry: _aiLocation(\"country\"),\r\n locationProvince: _aiLocation(\"province\"),\r\n locationCity: _aiLocation(\"city\"),\r\n operationId: _aiOperation(\"id\"),\r\n operationName: _aiOperation(\"name\"),\r\n operationParentId: _aiOperation(\"parentId\"),\r\n operationRootId: _aiOperation(\"rootId\"),\r\n operationSyntheticSource: _aiOperation(\"syntheticSource\"),\r\n operationCorrelationVector: _aiOperation(\"correlationVector\"),\r\n sessionId: _aiSession(\"id\"),\r\n sessionIsFirst: _aiSession(\"isFirst\"),\r\n sessionIsNew: _aiSession(\"isNew\"),\r\n userAccountAcquisitionDate: _aiUser(\"accountAcquisitionDate\"),\r\n userAccountId: _aiUser(\"accountId\"),\r\n userAgent: _aiUser(\"userAgent\"),\r\n userId: _aiUser(\"id\"),\r\n userStoreRegion: _aiUser(\"storeRegion\"),\r\n userAuthUserId: _aiUser(\"authUserId\"),\r\n userAnonymousUserAcquisitionDate: _aiUser(\"anonUserAcquisitionDate\"),\r\n userAuthenticatedUserAcquisitionDate: _aiUser(\"authUserAcquisitionDate\"),\r\n cloudName: _aiCloud(\"name\"),\r\n cloudRole: _aiCloud(\"role\"),\r\n cloudRoleVer: _aiCloud(\"roleVer\"),\r\n cloudRoleInstance: _aiCloud(\"roleInstance\"),\r\n cloudEnvironment: _aiCloud(\"environment\"),\r\n cloudLocation: _aiCloud(\"location\"),\r\n cloudDeploymentUnit: _aiCloud(\"deploymentUnit\"),\r\n internalNodeName: _aiInternal(\"nodeName\"),\r\n internalSdkVersion: _aiInternal(\"sdkVersion\"),\r\n internalAgentVersion: _aiInternal(\"agentVersion\"),\r\n internalSnippet: _aiInternal(\"snippet\"),\r\n internalSdkSrc: _aiInternal(\"sdkSrc\")\r\n})));\r\nexport { ContextTagKeys };\r\n//# sourceMappingURL=ContextTagKeys.js.map","/*\n * Application Insights JavaScript SDK - Common, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { isNullOrUndefined, objForEachKey, throwError, toISOString } from \"@microsoft/applicationinsights-core-js\";\r\nimport { strIkey, strNotSpecified } from \"./Constants\";\r\nimport { dataSanitizeString } from \"./Telemetry/Common/DataSanitizer\";\r\nimport { _DYN_NAME } from \"./__DynamicConstants\";\r\n/**\r\n * Create a telemetry item that the 1DS channel understands\r\n * @param item - domain specific properties; part B\r\n * @param baseType - telemetry item type. ie PageViewData\r\n * @param envelopeName - name of the envelope. ie Microsoft.ApplicationInsights..PageView\r\n * @param customProperties - user defined custom properties; part C\r\n * @param systemProperties - system properties that are added to the context; part A\r\n * @returns ITelemetryItem that is sent to channel\r\n */\r\nexport function createTelemetryItem(item, baseType, envelopeName, logger, customProperties, systemProperties) {\r\n var _a;\r\n envelopeName = dataSanitizeString(logger, envelopeName) || strNotSpecified;\r\n if (isNullOrUndefined(item) ||\r\n isNullOrUndefined(baseType) ||\r\n isNullOrUndefined(envelopeName)) {\r\n throwError(\"Input doesn't contain all required fields\");\r\n }\r\n var iKey = \"\";\r\n if (item[strIkey]) {\r\n iKey = item[strIkey];\r\n delete item[strIkey];\r\n }\r\n var telemetryItem = (_a = {},\r\n _a[_DYN_NAME /* @min:name */] = envelopeName,\r\n _a.time = toISOString(new Date()),\r\n _a.iKey = iKey,\r\n _a.ext = systemProperties ? systemProperties : {},\r\n _a.tags = [],\r\n _a.data = {},\r\n _a.baseType = baseType,\r\n _a.baseData = item // Part B\r\n ,\r\n _a);\r\n // Part C\r\n if (!isNullOrUndefined(customProperties)) {\r\n objForEachKey(customProperties, function (prop, value) {\r\n telemetryItem.data[prop] = value;\r\n });\r\n }\r\n return telemetryItem;\r\n}\r\nvar TelemetryItemCreator = /** @class */ (function () {\r\n function TelemetryItemCreator() {\r\n }\r\n /**\r\n * Create a telemetry item that the 1DS channel understands\r\n * @param item - domain specific properties; part B\r\n * @param baseType - telemetry item type. ie PageViewData\r\n * @param envelopeName - name of the envelope. ie Microsoft.ApplicationInsights..PageView\r\n * @param customProperties - user defined custom properties; part C\r\n * @param systemProperties - system properties that are added to the context; part A\r\n * @returns ITelemetryItem that is sent to channel\r\n */\r\n TelemetryItemCreator.create = createTelemetryItem;\r\n return TelemetryItemCreator;\r\n}());\r\nexport { TelemetryItemCreator };\r\n//# sourceMappingURL=TelemetryItemCreator.js.map","/*\n * Application Insights JavaScript SDK - Common, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nimport { ContextTagKeys } from \"./Contracts/ContextTagKeys\";\r\nexport var Extensions = {\r\n UserExt: \"user\",\r\n DeviceExt: \"device\",\r\n TraceExt: \"trace\",\r\n WebExt: \"web\",\r\n AppExt: \"app\",\r\n OSExt: \"os\",\r\n SessionExt: \"ses\",\r\n SDKExt: \"sdk\"\r\n};\r\nexport var CtxTagKeys = new ContextTagKeys();\r\n//# sourceMappingURL=PartAExtensions.js.map","/*\n * Application Insights JavaScript SDK - Common, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { getDocument, isFunction } from \"@microsoft/applicationinsights-core-js\";\r\nexport function createDomEvent(eventName) {\r\n var event = null;\r\n if (isFunction(Event)) { // Use Event constructor when available\r\n event = new Event(eventName);\r\n }\r\n else { // Event has no constructor in IE\r\n var doc = getDocument();\r\n if (doc && doc.createEvent) {\r\n event = doc.createEvent(\"Event\");\r\n event.initEvent(eventName, true, true);\r\n }\r\n }\r\n return event;\r\n}\r\n//# sourceMappingURL=DomHelperFuncs.js.map","/*\n * Application Insights JavaScript SDK - Common, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nimport { arrForEach, createUniqueNamespace, eventOff, eventOn, getDocument, getNavigator, getWindow, isNullOrUndefined, isUndefined, mergeEvtNamespace } from \"@microsoft/applicationinsights-core-js\";\r\nimport { _DYN_PUSH } from \"./__DynamicConstants\";\r\nfunction _disableEvents(target, evtNamespace) {\r\n eventOff(target, null, null, evtNamespace);\r\n}\r\n/**\r\n * Create a new OfflineListener instance to monitor browser online / offline events\r\n * @param parentEvtNamespace - The parent event namespace to append to any specific events for this instance\r\n */\r\nexport function createOfflineListener(parentEvtNamespace) {\r\n var _document = getDocument();\r\n var _navigator = getNavigator(); // Gets the window.navigator or workerNavigator depending on the global\r\n var _isListening = false;\r\n var listenerList = [];\r\n // Set the initial state\r\n // rState is changed by the browser, both via events and when we check the navigator.onLine property\r\n var rState = 1 /* eOfflineValue.Online */;\r\n if (_navigator && !isNullOrUndefined(_navigator.onLine) && !_navigator.onLine) { // navigator.onLine is undefined in react-native\r\n rState = 2 /* eOfflineValue.Offline */;\r\n }\r\n // ustate is changed by the user calling setOnlineState\r\n var uState = 0 /* eOfflineValue.Unknown */;\r\n // current state would be updated each time rState or uState is changed\r\n // it is a resolved value of rState and uState\r\n var _currentState = calCurrentState();\r\n var _evtNamespace = mergeEvtNamespace(createUniqueNamespace(\"OfflineListener\"), parentEvtNamespace);\r\n try {\r\n if (_enableEvents(getWindow())) {\r\n _isListening = true;\r\n }\r\n if (_document) {\r\n // Also attach to the document.body or document\r\n var target = _document.body || _document;\r\n if (target.ononline) {\r\n if (_enableEvents(target)) {\r\n _isListening = true;\r\n }\r\n }\r\n }\r\n }\r\n catch (e) {\r\n // this makes react-native less angry\r\n _isListening = false;\r\n }\r\n function _enableEvents(target) {\r\n var enabled = false;\r\n if (target) {\r\n enabled = eventOn(target, \"online\", _setOnline, _evtNamespace);\r\n if (enabled) {\r\n eventOn(target, \"offline\", _setOffline, _evtNamespace);\r\n }\r\n }\r\n return enabled;\r\n }\r\n function _isOnline() {\r\n return _currentState;\r\n }\r\n function calCurrentState() {\r\n if (uState === 2 /* eOfflineValue.Offline */ || rState === 2 /* eOfflineValue.Offline */) {\r\n return false;\r\n }\r\n return true; // if both unknown, then we assume the network is good\r\n }\r\n function listnerNoticeCheck() {\r\n // we were offline and are now online or we were online and now offline\r\n var newState = calCurrentState();\r\n if (_currentState !== newState) {\r\n _currentState = newState; // use the resolved state to update\r\n // send all the callbacks with the current state\r\n arrForEach(listenerList, function (callback) {\r\n var offlineState = {\r\n isOnline: _currentState,\r\n rState: rState,\r\n uState: uState\r\n };\r\n try {\r\n callback(offlineState);\r\n }\r\n catch (e) {\r\n // Do nothing, just making sure we run all of the callbacks\r\n }\r\n });\r\n }\r\n }\r\n function setOnlineState(newState) {\r\n uState = newState;\r\n listnerNoticeCheck();\r\n }\r\n function _setOnline() {\r\n rState = 1 /* eOfflineValue.Online */;\r\n listnerNoticeCheck();\r\n }\r\n function _setOffline() {\r\n rState = 2 /* eOfflineValue.Offline */;\r\n listnerNoticeCheck();\r\n }\r\n function _unload() {\r\n var win = getWindow();\r\n if (win && _isListening) {\r\n _disableEvents(win, _evtNamespace);\r\n if (_document) {\r\n // Also attach to the document.body or document\r\n var target = _document.body || _document;\r\n if (!isUndefined(target.ononline)) {\r\n _disableEvents(target, _evtNamespace);\r\n }\r\n }\r\n _isListening = false;\r\n }\r\n }\r\n function addListener(callback) {\r\n listenerList[_DYN_PUSH /* @min:%2epush */](callback);\r\n // Define rm as an instance of IUnloadHook\r\n return {\r\n rm: function () {\r\n var index = listenerList.indexOf(callback);\r\n if (index > -1) {\r\n return listenerList.splice(index, 1);\r\n }\r\n else {\r\n return;\r\n }\r\n }\r\n };\r\n }\r\n return {\r\n isOnline: _isOnline,\r\n isListening: function () { return _isListening; },\r\n unload: _unload,\r\n addListener: addListener,\r\n setOnlineState: setOnlineState\r\n };\r\n}\r\n//# sourceMappingURL=Offline.js.map","/*\n * Application Insights JavaScript SDK - Common, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n// Licensed under the\r\nexport { correlationIdSetPrefix, correlationIdGetPrefix, correlationIdCanIncludeCorrelationHeader, correlationIdGetCorrelationContext, correlationIdGetCorrelationContextValue, dateTimeUtilsNow, dateTimeUtilsDuration, isInternalApplicationInsightsEndpoint, createDistributedTraceContextFromTrace } from \"./Util\";\r\nexport { ThrottleMgr } from \"./ThrottleMgr\";\r\nexport { parseConnectionString, ConnectionStringParser } from \"./ConnectionStringParser\";\r\nexport { RequestHeaders } from \"./RequestResponseHeaders\";\r\nexport { DisabledPropertyName, ProcessLegacy, SampleRate, HttpMethod, DEFAULT_BREEZE_ENDPOINT, DEFAULT_BREEZE_PATH, strNotSpecified } from \"./Constants\";\r\nexport { Envelope } from \"./Telemetry/Common/Envelope\";\r\nexport { Event } from \"./Telemetry/Event\";\r\nexport { Exception } from \"./Telemetry/Exception\";\r\nexport { Metric } from \"./Telemetry/Metric\";\r\nexport { PageView } from \"./Telemetry/PageView\";\r\nexport { RemoteDependencyData } from \"./Telemetry/RemoteDependencyData\";\r\nexport { Trace } from \"./Telemetry/Trace\";\r\nexport { PageViewPerformance } from \"./Telemetry/PageViewPerformance\";\r\nexport { Data } from \"./Telemetry/Common/Data\";\r\nexport { SeverityLevel } from \"./Interfaces/Contracts/SeverityLevel\";\r\nexport { ConfigurationManager } from \"./Interfaces/IConfig\";\r\nexport { ContextTagKeys } from \"./Interfaces/Contracts/ContextTagKeys\";\r\nexport { dataSanitizeKeyAndAddUniqueness, dataSanitizeKey, dataSanitizeString, dataSanitizeUrl, dataSanitizeMessage, dataSanitizeException, dataSanitizeProperties, dataSanitizeMeasurements, dataSanitizeId, dataSanitizeInput, dsPadNumber } from \"./Telemetry/Common/DataSanitizer\";\r\nexport { TelemetryItemCreator, createTelemetryItem } from \"./TelemetryItemCreator\";\r\nexport { CtxTagKeys, Extensions } from \"./Interfaces/PartAExtensions\";\r\nexport { DistributedTracingModes, EventPersistence } from \"./Enums\";\r\nexport { stringToBoolOrDefault, msToTimeSpan, getExtensionByName, isCrossOriginError } from \"./HelperFuncs\";\r\nexport { isBeaconsSupported as isBeaconApiSupported, createTraceParent, parseTraceParent, isValidTraceId, isValidSpanId, isValidTraceParent, isSampledFlag, formatTraceParent, findW3cTraceParent, findAllScripts } from \"@microsoft/applicationinsights-core-js\";\r\nexport { createDomEvent } from \"./DomHelperFuncs\";\r\nexport { utlDisableStorage, utlEnableStorage, utlCanUseLocalStorage, utlGetLocalStorage, utlSetLocalStorage, utlRemoveStorage, utlCanUseSessionStorage, utlGetSessionStorageKeys, utlGetSessionStorage, utlSetSessionStorage, utlRemoveSessionStorage, utlSetStoragePrefix } from \"./StorageHelperFuncs\";\r\nexport { urlParseUrl, urlGetAbsoluteUrl, urlGetPathName, urlGetCompleteUrl, urlParseHost, urlParseFullHost } from \"./UrlHelperFuncs\";\r\nexport { createOfflineListener } from \"./Offline\";\r\nexport var PropertiesPluginIdentifier = \"AppInsightsPropertiesPlugin\";\r\nexport var BreezeChannelIdentifier = \"AppInsightsChannelPlugin\";\r\nexport var AnalyticsPluginIdentifier = \"ApplicationInsightsAnalytics\";\r\n//# sourceMappingURL=applicationinsights-common.js.map","/*\n * Application Insights JavaScript SDK - Web Analytics, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n// @skip-file-minify\r\n// ##############################################################\r\n// AUTO GENERATED FILE: This file is Auto Generated during build.\r\n// ##############################################################\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\n// Note: DON'T Export these const from the package as we are still targeting ES3 this will export a mutable variables that someone could change!!!\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\nexport var _DYN_TO_STRING = \"toString\"; // Count: 4\r\nexport var _DYN_IS_STORAGE_USE_DISAB0 = \"isStorageUseDisabled\"; // Count: 3\r\nexport var _DYN__ADD_HOOK = \"_addHook\"; // Count: 6\r\nexport var _DYN_CORE = \"core\"; // Count: 7\r\nexport var _DYN_DATA_TYPE = \"dataType\"; // Count: 8\r\nexport var _DYN_ENVELOPE_TYPE = \"envelopeType\"; // Count: 7\r\nexport var _DYN_DIAG_LOG = \"diagLog\"; // Count: 13\r\nexport var _DYN_TRACK = \"track\"; // Count: 7\r\nexport var _DYN_TRACK_PAGE_VIEW = \"trackPageView\"; // Count: 4\r\nexport var _DYN_TRACK_PREVIOUS_PAGE_1 = \"trackPreviousPageVisit\"; // Count: 3\r\nexport var _DYN_SEND_PAGE_VIEW_INTER2 = \"sendPageViewInternal\"; // Count: 7\r\nexport var _DYN_START_TIME = \"startTime\"; // Count: 6\r\nexport var _DYN_PROPERTIES = \"properties\"; // Count: 5\r\nexport var _DYN_DURATION = \"duration\"; // Count: 12\r\nexport var _DYN_SEND_PAGE_VIEW_PERFO3 = \"sendPageViewPerformanceInternal\"; // Count: 3\r\nexport var _DYN_POPULATE_PAGE_VIEW_P4 = \"populatePageViewPerformanceEvent\"; // Count: 3\r\nexport var _DYN_HREF = \"href\"; // Count: 6\r\nexport var _DYN_SEND_EXCEPTION_INTER5 = \"sendExceptionInternal\"; // Count: 2\r\nexport var _DYN_EXCEPTION = \"exception\"; // Count: 3\r\nexport var _DYN_ERROR = \"error\"; // Count: 5\r\nexport var _DYN__ONERROR = \"_onerror\"; // Count: 3\r\nexport var _DYN_ERROR_SRC = \"errorSrc\"; // Count: 3\r\nexport var _DYN_LINE_NUMBER = \"lineNumber\"; // Count: 5\r\nexport var _DYN_COLUMN_NUMBER = \"columnNumber\"; // Count: 5\r\nexport var _DYN_MESSAGE = \"message\"; // Count: 4\r\nexport var _DYN__CREATE_AUTO_EXCEPTI6 = \"CreateAutoException\"; // Count: 3\r\nexport var _DYN_ADD_TELEMETRY_INITIA7 = \"addTelemetryInitializer\"; // Count: 4\r\nexport var _DYN_OVERRIDE_PAGE_VIEW_D8 = \"overridePageViewDuration\"; // Count: 2\r\nexport var _DYN_AUTO_TRACK_PAGE_VISI9 = \"autoTrackPageVisitTime\"; // Count: 2\r\nexport var _DYN_IS_BROWSER_LINK_TRAC10 = \"isBrowserLinkTrackingEnabled\"; // Count: 2\r\nexport var _DYN_LENGTH = \"length\"; // Count: 5\r\nexport var _DYN_ENABLE_AUTO_ROUTE_TR11 = \"enableAutoRouteTracking\"; // Count: 2\r\nexport var _DYN_ENABLE_UNHANDLED_PRO12 = \"enableUnhandledPromiseRejectionTracking\"; // Count: 2\r\nexport var _DYN_AUTO_UNHANDLED_PROMI13 = \"autoUnhandledPromiseInstrumented\"; // Count: 3\r\nexport var _DYN_GET_ENTRIES_BY_TYPE = \"getEntriesByType\"; // Count: 5\r\nexport var _DYN_IS_PERFORMANCE_TIMIN14 = \"isPerformanceTimingSupported\"; // Count: 2\r\nexport var _DYN_GET_PERFORMANCE_TIMI15 = \"getPerformanceTiming\"; // Count: 2\r\nexport var _DYN_NAVIGATION_START = \"navigationStart\"; // Count: 4\r\nexport var _DYN_SHOULD_COLLECT_DURAT16 = \"shouldCollectDuration\"; // Count: 3\r\nexport var _DYN_IS_PERFORMANCE_TIMIN17 = \"isPerformanceTimingDataReady\"; // Count: 2\r\nexport var _DYN_RESPONSE_START = \"responseStart\"; // Count: 5\r\nexport var _DYN_REQUEST_START = \"requestStart\"; // Count: 3\r\nexport var _DYN_LOAD_EVENT_END = \"loadEventEnd\"; // Count: 4\r\nexport var _DYN_RESPONSE_END = \"responseEnd\"; // Count: 5\r\nexport var _DYN_CONNECT_END = \"connectEnd\"; // Count: 4\r\nexport var _DYN_PAGE_VISIT_START_TIM18 = \"pageVisitStartTime\"; // Count: 2\r\n//# sourceMappingURL=__DynamicConstants.js.map","/*\n * Application Insights JavaScript SDK - Web Analytics, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { dateTimeUtilsDuration } from \"@microsoft/applicationinsights-common\";\r\nimport { _throwInternal, arrForEach, dumpObj, getDocument, getExceptionName, getLocation, isNullOrUndefined } from \"@microsoft/applicationinsights-core-js\";\r\nimport { getPerformance, isUndefined, isWebWorker, scheduleTimeout } from \"@nevware21/ts-utils\";\r\nimport { _DYN_DURATION, _DYN_GET_ENTRIES_BY_TYPE, _DYN_GET_PERFORMANCE_TIMI15, _DYN_HREF, _DYN_IS_PERFORMANCE_TIMIN14, _DYN_IS_PERFORMANCE_TIMIN17, _DYN_LENGTH, _DYN_NAVIGATION_START, _DYN_POPULATE_PAGE_VIEW_P4, _DYN_PROPERTIES, _DYN_SEND_PAGE_VIEW_INTER2, _DYN_SEND_PAGE_VIEW_PERFO3, _DYN_SHOULD_COLLECT_DURAT16, _DYN_START_TIME, _DYN_TRACK_PAGE_VIEW } from \"../../__DynamicConstants\";\r\n/**\r\n * Class encapsulates sending page views and page view performance telemetry.\r\n */\r\nvar PageViewManager = /** @class */ (function () {\r\n function PageViewManager(appInsights, overridePageViewDuration, core, pageViewPerformanceManager) {\r\n dynamicProto(PageViewManager, this, function (_self) {\r\n var queueTimer = null;\r\n var itemQueue = [];\r\n var pageViewPerformanceSent = false;\r\n var firstPageViewSent = false;\r\n var _logger;\r\n if (core) {\r\n _logger = core.logger;\r\n }\r\n function _flushChannels(isAsync) {\r\n if (core) {\r\n core.flush(isAsync, function () {\r\n // Event flushed, callback added to prevent promise creation\r\n });\r\n }\r\n }\r\n function _startTimer() {\r\n if (!queueTimer) {\r\n queueTimer = scheduleTimeout((function () {\r\n queueTimer = null;\r\n var allItems = itemQueue.slice(0);\r\n var doFlush = false;\r\n itemQueue = [];\r\n arrForEach(allItems, function (item) {\r\n if (!item()) {\r\n // Not processed so rescheduled\r\n itemQueue.push(item);\r\n }\r\n else {\r\n doFlush = true;\r\n }\r\n });\r\n if (itemQueue[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n _startTimer();\r\n }\r\n if (doFlush) {\r\n // We process at least one item so flush the queue\r\n _flushChannels(true);\r\n }\r\n }), 100);\r\n }\r\n }\r\n function _addQueue(cb) {\r\n itemQueue.push(cb);\r\n _startTimer();\r\n }\r\n _self[_DYN_TRACK_PAGE_VIEW /* @min:%2etrackPageView */] = function (pageView, customProperties) {\r\n var name = pageView.name;\r\n if (isNullOrUndefined(name) || typeof name !== \"string\") {\r\n var doc = getDocument();\r\n name = pageView.name = doc && doc.title || \"\";\r\n }\r\n var uri = pageView.uri;\r\n if (isNullOrUndefined(uri) || typeof uri !== \"string\") {\r\n var location_1 = getLocation();\r\n uri = pageView.uri = location_1 && location_1[_DYN_HREF /* @min:%2ehref */] || \"\";\r\n }\r\n if (!firstPageViewSent) {\r\n var perf = getPerformance();\r\n // Access the performance timing object\r\n var navigationEntries = (perf && perf[_DYN_GET_ENTRIES_BY_TYPE /* @min:%2egetEntriesByType */] && perf[_DYN_GET_ENTRIES_BY_TYPE /* @min:%2egetEntriesByType */](\"navigation\"));\r\n // Edge Case the navigation Entries may return an empty array and the timeOrigin is not supported on IE\r\n if (navigationEntries && navigationEntries[0] && !isUndefined(perf.timeOrigin)) {\r\n // Get the value of loadEventStart\r\n var loadEventStart = navigationEntries[0].loadEventStart;\r\n pageView[_DYN_START_TIME /* @min:%2estartTime */] = new Date(perf.timeOrigin + loadEventStart);\r\n }\r\n else {\r\n // calculate the start time manually\r\n var duration_1 = ((customProperties || pageView[_DYN_PROPERTIES /* @min:%2eproperties */] || {})[_DYN_DURATION /* @min:%2eduration */] || 0);\r\n pageView[_DYN_START_TIME /* @min:%2estartTime */] = new Date(new Date().getTime() - duration_1);\r\n }\r\n firstPageViewSent = true;\r\n }\r\n // case 1a. if performance timing is not supported by the browser, send the page view telemetry with the duration provided by the user. If the user\r\n // do not provide the duration, set duration to undefined\r\n // Also this is case 4\r\n if (!pageViewPerformanceManager[_DYN_IS_PERFORMANCE_TIMIN14 /* @min:%2eisPerformanceTimingSupported */]()) {\r\n appInsights[_DYN_SEND_PAGE_VIEW_INTER2 /* @min:%2esendPageViewInternal */](pageView, customProperties);\r\n _flushChannels(true);\r\n if (!isWebWorker()) {\r\n // no navigation timing (IE 8, iOS Safari 8.4, Opera Mini 8 - see http://caniuse.com/#feat=nav-timing)\r\n _throwInternal(_logger, 2 /* eLoggingSeverity.WARNING */, 25 /* _eInternalMessageId.NavigationTimingNotSupported */, \"trackPageView: navigation timing API used for calculation of page duration is not supported in this browser. This page view will be collected without duration and timing info.\");\r\n }\r\n return;\r\n }\r\n var pageViewSent = false;\r\n var customDuration;\r\n // if the performance timing is supported by the browser, calculate the custom duration\r\n var start = pageViewPerformanceManager[_DYN_GET_PERFORMANCE_TIMI15 /* @min:%2egetPerformanceTiming */]()[_DYN_NAVIGATION_START /* @min:%2enavigationStart */];\r\n if (start > 0) {\r\n customDuration = dateTimeUtilsDuration(start, +new Date);\r\n if (!pageViewPerformanceManager[_DYN_SHOULD_COLLECT_DURAT16 /* @min:%2eshouldCollectDuration */](customDuration)) {\r\n customDuration = undefined;\r\n }\r\n }\r\n // if the user has provided duration, send a page view telemetry with the provided duration. Otherwise, if\r\n // overridePageViewDuration is set to true, send a page view telemetry with the custom duration calculated earlier\r\n var duration;\r\n if (!isNullOrUndefined(customProperties) &&\r\n !isNullOrUndefined(customProperties[_DYN_DURATION /* @min:%2eduration */])) {\r\n duration = customProperties[_DYN_DURATION /* @min:%2eduration */];\r\n }\r\n if (overridePageViewDuration || !isNaN(duration)) {\r\n if (isNaN(duration)) {\r\n // case 3\r\n if (!customProperties) {\r\n customProperties = {};\r\n }\r\n customProperties[_DYN_DURATION /* @min:%2eduration */] = customDuration;\r\n }\r\n // case 2\r\n appInsights[_DYN_SEND_PAGE_VIEW_INTER2 /* @min:%2esendPageViewInternal */](pageView, customProperties);\r\n _flushChannels(true);\r\n pageViewSent = true;\r\n }\r\n // now try to send the page view performance telemetry\r\n var maxDurationLimit = 60000;\r\n if (!customProperties) {\r\n customProperties = {};\r\n }\r\n // Queue the event for processing\r\n _addQueue(function () {\r\n var processed = false;\r\n try {\r\n if (pageViewPerformanceManager[_DYN_IS_PERFORMANCE_TIMIN17 /* @min:%2eisPerformanceTimingDataReady */]()) {\r\n processed = true;\r\n var pageViewPerformance = {\r\n name: name,\r\n uri: uri\r\n };\r\n pageViewPerformanceManager[_DYN_POPULATE_PAGE_VIEW_P4 /* @min:%2epopulatePageViewPerformanceEvent */](pageViewPerformance);\r\n if (!pageViewPerformance.isValid && !pageViewSent) {\r\n // If navigation timing gives invalid numbers, then go back to \"override page view duration\" mode.\r\n // That's the best value we can get that makes sense.\r\n customProperties[_DYN_DURATION /* @min:%2eduration */] = customDuration;\r\n appInsights[_DYN_SEND_PAGE_VIEW_INTER2 /* @min:%2esendPageViewInternal */](pageView, customProperties);\r\n }\r\n else {\r\n if (!pageViewSent) {\r\n customProperties[_DYN_DURATION /* @min:%2eduration */] = pageViewPerformance.durationMs;\r\n appInsights[_DYN_SEND_PAGE_VIEW_INTER2 /* @min:%2esendPageViewInternal */](pageView, customProperties);\r\n }\r\n if (!pageViewPerformanceSent) {\r\n appInsights[_DYN_SEND_PAGE_VIEW_PERFO3 /* @min:%2esendPageViewPerformanceInternal */](pageViewPerformance, customProperties);\r\n pageViewPerformanceSent = true;\r\n }\r\n }\r\n }\r\n else if (start > 0 && dateTimeUtilsDuration(start, +new Date) > maxDurationLimit) {\r\n // if performance timings are not ready but we exceeded the maximum duration limit, just log a page view telemetry\r\n // with the maximum duration limit. Otherwise, keep waiting until performance timings are ready\r\n processed = true;\r\n if (!pageViewSent) {\r\n customProperties[_DYN_DURATION /* @min:%2eduration */] = maxDurationLimit;\r\n appInsights[_DYN_SEND_PAGE_VIEW_INTER2 /* @min:%2esendPageViewInternal */](pageView, customProperties);\r\n }\r\n }\r\n }\r\n catch (e) {\r\n _throwInternal(_logger, 1 /* eLoggingSeverity.CRITICAL */, 38 /* _eInternalMessageId.TrackPVFailedCalc */, \"trackPageView failed on page load calculation: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n return processed;\r\n });\r\n };\r\n _self.teardown = function (unloadCtx, unloadState) {\r\n if (queueTimer) {\r\n queueTimer.cancel();\r\n queueTimer = null;\r\n var allItems = itemQueue.slice(0);\r\n var doFlush_1 = false;\r\n itemQueue = [];\r\n arrForEach(allItems, function (item) {\r\n if (item()) {\r\n doFlush_1 = true;\r\n }\r\n });\r\n }\r\n };\r\n });\r\n }\r\n// Removed Stub for PageViewManager.prototype.trackPageView.\r\n// Removed Stub for PageViewManager.prototype.teardown.\r\n // This is a workaround for an IE bug when using dynamicProto() with classes that don't have any\n // non-dynamic functions or static properties/functions when using uglify-js to minify the resulting code.\n PageViewManager.__ieDyn=1;\n\n return PageViewManager;\r\n}());\r\nexport { PageViewManager };\r\n//# sourceMappingURL=PageViewManager.js.map","/*\n * Application Insights JavaScript SDK - Web Analytics, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { dateTimeUtilsDuration, msToTimeSpan } from \"@microsoft/applicationinsights-common\";\r\nimport { _throwInternal, getNavigator, getPerformance, safeGetLogger } from \"@microsoft/applicationinsights-core-js\";\r\nimport { strIndexOf } from \"@nevware21/ts-utils\";\r\nimport { _DYN_CONNECT_END, _DYN_DURATION, _DYN_GET_ENTRIES_BY_TYPE, _DYN_GET_PERFORMANCE_TIMI15, _DYN_IS_PERFORMANCE_TIMIN14, _DYN_IS_PERFORMANCE_TIMIN17, _DYN_LENGTH, _DYN_LOAD_EVENT_END, _DYN_NAVIGATION_START, _DYN_POPULATE_PAGE_VIEW_P4, _DYN_REQUEST_START, _DYN_RESPONSE_END, _DYN_RESPONSE_START, _DYN_SHOULD_COLLECT_DURAT16, _DYN_START_TIME } from \"../../__DynamicConstants\";\r\nvar MAX_DURATION_ALLOWED = 3600000; // 1h\r\nvar botAgentNames = [\"googlebot\", \"adsbot-google\", \"apis-google\", \"mediapartners-google\"];\r\nfunction _isPerformanceTimingSupported() {\r\n var perf = getPerformance();\r\n return perf && !!perf.timing;\r\n}\r\nfunction _isPerformanceNavigationTimingSupported() {\r\n var perf = getPerformance();\r\n return perf && perf.getEntriesByType && perf.getEntriesByType(\"navigation\")[_DYN_LENGTH /* @min:%2elength */] > 0;\r\n}\r\nfunction _isPerformanceTimingDataReady() {\r\n var perf = getPerformance();\r\n var timing = perf ? perf.timing : 0;\r\n return timing\r\n && timing.domainLookupStart > 0\r\n && timing[_DYN_NAVIGATION_START /* @min:%2enavigationStart */] > 0\r\n && timing[_DYN_RESPONSE_START /* @min:%2eresponseStart */] > 0\r\n && timing[_DYN_REQUEST_START /* @min:%2erequestStart */] > 0\r\n && timing[_DYN_LOAD_EVENT_END /* @min:%2eloadEventEnd */] > 0\r\n && timing[_DYN_RESPONSE_END /* @min:%2eresponseEnd */] > 0\r\n && timing[_DYN_CONNECT_END /* @min:%2econnectEnd */] > 0\r\n && timing.domLoading > 0;\r\n}\r\nfunction _getPerformanceTiming() {\r\n if (_isPerformanceTimingSupported()) {\r\n return getPerformance().timing;\r\n }\r\n return null;\r\n}\r\nfunction _getPerformanceNavigationTiming() {\r\n if (_isPerformanceNavigationTimingSupported()) {\r\n return getPerformance()[_DYN_GET_ENTRIES_BY_TYPE /* @min:%2egetEntriesByType */](\"navigation\")[0];\r\n }\r\n return null;\r\n}\r\n/**\r\n* This method tells if given durations should be excluded from collection.\r\n*/\r\nfunction _shouldCollectDuration() {\r\n var durations = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n durations[_i] = arguments[_i];\r\n }\r\n var _navigator = getNavigator() || {};\r\n // a full list of Google crawlers user agent strings - https://support.google.com/webmasters/answer/1061943?hl=en\r\n var userAgent = _navigator.userAgent;\r\n var isGoogleBot = false;\r\n if (userAgent) {\r\n for (var i = 0; i < botAgentNames[_DYN_LENGTH /* @min:%2elength */]; i++) {\r\n isGoogleBot = isGoogleBot || strIndexOf(userAgent.toLowerCase(), botAgentNames[i]) !== -1;\r\n }\r\n }\r\n if (isGoogleBot) {\r\n // Don't report durations for GoogleBot, it is returning invalid values in performance.timing API.\r\n return false;\r\n }\r\n else {\r\n // for other page views, don't report if it's outside of a reasonable range\r\n for (var i = 0; i < durations[_DYN_LENGTH /* @min:%2elength */]; i++) {\r\n if (durations[i] < 0 || durations[i] >= MAX_DURATION_ALLOWED) {\r\n return false;\r\n }\r\n }\r\n }\r\n return true;\r\n}\r\n/**\r\n * Class encapsulates sending page view performance telemetry.\r\n */\r\nvar PageViewPerformanceManager = /** @class */ (function () {\r\n function PageViewPerformanceManager(core) {\r\n var _logger = safeGetLogger(core);\r\n dynamicProto(PageViewPerformanceManager, this, function (_self) {\r\n _self[_DYN_POPULATE_PAGE_VIEW_P4 /* @min:%2epopulatePageViewPerformanceEvent */] = function (pageViewPerformance) {\r\n pageViewPerformance.isValid = false;\r\n /*\r\n * http://www.w3.org/TR/navigation-timing/#processing-model\r\n * |-navigationStart\r\n * | |-connectEnd\r\n * | ||-requestStart\r\n * | || |-responseStart\r\n * | || | |-responseEnd\r\n * | || | |\r\n * | || | | |-loadEventEnd\r\n * |---network---||---request---|---response---|---dom---|\r\n * |--------------------------total----------------------|\r\n *\r\n * total = The difference between the load event of the current document is completed and the first recorded timestamp of the performance entry : https://developer.mozilla.org/en-US/docs/Web/Performance/Navigation_and_resource_timings#duration\r\n * network = Redirect time + App Cache + DNS lookup time + TCP connection time\r\n * request = Request time : https://developer.mozilla.org/en-US/docs/Web/Performance/Navigation_and_resource_timings#request_time\r\n * response = Response time\r\n * dom = Document load time : https://html.spec.whatwg.org/multipage/dom.html#document-load-timing-info\r\n * = Document processing time : https://developers.google.com/web/fundamentals/performance/navigation-and-resource-timing/#document_processing\r\n * + Loading time : https://developers.google.com/web/fundamentals/performance/navigation-and-resource-timing/#loading\r\n */\r\n var navigationTiming = _getPerformanceNavigationTiming();\r\n var timing = _getPerformanceTiming();\r\n var total = 0;\r\n var network = 0;\r\n var request = 0;\r\n var response = 0;\r\n var dom = 0;\r\n if (navigationTiming || timing) {\r\n if (navigationTiming) {\r\n total = navigationTiming[_DYN_DURATION /* @min:%2eduration */];\r\n /**\r\n * support both cases:\r\n * - startTime is always zero: https://developer.mozilla.org/en-US/docs/Web/API/PerformanceNavigationTiming\r\n * - for older browsers where the startTime is not zero\r\n */\r\n network = navigationTiming[_DYN_START_TIME /* @min:%2estartTime */] === 0 ? navigationTiming[_DYN_CONNECT_END /* @min:%2econnectEnd */] : dateTimeUtilsDuration(navigationTiming[_DYN_START_TIME /* @min:%2estartTime */], navigationTiming[_DYN_CONNECT_END /* @min:%2econnectEnd */]);\r\n request = dateTimeUtilsDuration(navigationTiming.requestStart, navigationTiming[_DYN_RESPONSE_START /* @min:%2eresponseStart */]);\r\n response = dateTimeUtilsDuration(navigationTiming[_DYN_RESPONSE_START /* @min:%2eresponseStart */], navigationTiming[_DYN_RESPONSE_END /* @min:%2eresponseEnd */]);\r\n dom = dateTimeUtilsDuration(navigationTiming.responseEnd, navigationTiming[_DYN_LOAD_EVENT_END /* @min:%2eloadEventEnd */]);\r\n }\r\n else {\r\n total = dateTimeUtilsDuration(timing[_DYN_NAVIGATION_START /* @min:%2enavigationStart */], timing[_DYN_LOAD_EVENT_END /* @min:%2eloadEventEnd */]);\r\n network = dateTimeUtilsDuration(timing[_DYN_NAVIGATION_START /* @min:%2enavigationStart */], timing[_DYN_CONNECT_END /* @min:%2econnectEnd */]);\r\n request = dateTimeUtilsDuration(timing.requestStart, timing[_DYN_RESPONSE_START /* @min:%2eresponseStart */]);\r\n response = dateTimeUtilsDuration(timing[_DYN_RESPONSE_START /* @min:%2eresponseStart */], timing[_DYN_RESPONSE_END /* @min:%2eresponseEnd */]);\r\n dom = dateTimeUtilsDuration(timing.responseEnd, timing[_DYN_LOAD_EVENT_END /* @min:%2eloadEventEnd */]);\r\n }\r\n if (total === 0) {\r\n _throwInternal(_logger, 2 /* eLoggingSeverity.WARNING */, 10 /* _eInternalMessageId.ErrorPVCalc */, \"error calculating page view performance.\", { total: total, network: network, request: request, response: response, dom: dom });\r\n }\r\n else if (!_self[_DYN_SHOULD_COLLECT_DURAT16 /* @min:%2eshouldCollectDuration */](total, network, request, response, dom)) {\r\n _throwInternal(_logger, 2 /* eLoggingSeverity.WARNING */, 45 /* _eInternalMessageId.InvalidDurationValue */, \"Invalid page load duration value. Browser perf data won't be sent.\", { total: total, network: network, request: request, response: response, dom: dom });\r\n }\r\n else if (total < Math.floor(network) + Math.floor(request) + Math.floor(response) + Math.floor(dom)) {\r\n // some browsers may report individual components incorrectly so that the sum of the parts will be bigger than total PLT\r\n // in this case, don't report client performance from this page\r\n _throwInternal(_logger, 2 /* eLoggingSeverity.WARNING */, 8 /* _eInternalMessageId.ClientPerformanceMathError */, \"client performance math error.\", { total: total, network: network, request: request, response: response, dom: dom });\r\n }\r\n else {\r\n pageViewPerformance.durationMs = total;\r\n // // convert to timespans\r\n pageViewPerformance.perfTotal = pageViewPerformance[_DYN_DURATION /* @min:%2eduration */] = msToTimeSpan(total);\r\n pageViewPerformance.networkConnect = msToTimeSpan(network);\r\n pageViewPerformance.sentRequest = msToTimeSpan(request);\r\n pageViewPerformance.receivedResponse = msToTimeSpan(response);\r\n pageViewPerformance.domProcessing = msToTimeSpan(dom);\r\n pageViewPerformance.isValid = true;\r\n }\r\n }\r\n };\r\n _self[_DYN_GET_PERFORMANCE_TIMI15 /* @min:%2egetPerformanceTiming */] = _getPerformanceTiming;\r\n _self[_DYN_IS_PERFORMANCE_TIMIN14 /* @min:%2eisPerformanceTimingSupported */] = _isPerformanceTimingSupported;\r\n _self[_DYN_IS_PERFORMANCE_TIMIN17 /* @min:%2eisPerformanceTimingDataReady */] = _isPerformanceTimingDataReady;\r\n _self[_DYN_SHOULD_COLLECT_DURAT16 /* @min:%2eshouldCollectDuration */] = _shouldCollectDuration;\r\n });\r\n }\r\n// Removed Stub for PageViewPerformanceManager.prototype.populatePageViewPerformanceEvent.\r\n// Removed Stub for PageViewPerformanceManager.prototype.getPerformanceTiming.\r\n// Removed Stub for PageViewPerformanceManager.prototype.isPerformanceTimingSupported.\r\n// Removed Stub for PageViewPerformanceManager.prototype.isPerformanceTimingDataReady.\r\n// Removed Stub for PageViewPerformanceManager.prototype.shouldCollectDuration.\r\n // This is a workaround for an IE bug when using dynamicProto() with classes that don't have any\n // non-dynamic functions or static properties/functions when using uglify-js to minify the resulting code.\n PageViewPerformanceManager.__ieDyn=1;\n\n return PageViewPerformanceManager;\r\n}());\r\nexport { PageViewPerformanceManager };\r\n//# sourceMappingURL=PageViewPerformanceManager.js.map","/*\n * Application Insights JavaScript SDK - Web Analytics, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { utlCanUseSessionStorage, utlGetSessionStorage, utlRemoveSessionStorage, utlSetSessionStorage } from \"@microsoft/applicationinsights-common\";\r\nimport { _warnToConsole, dateNow, dumpObj, getJSON, hasJSON, throwError } from \"@microsoft/applicationinsights-core-js\";\r\nimport { objDefine } from \"@nevware21/ts-utils\";\r\nimport { _DYN_PAGE_VISIT_START_TIM18, _DYN_TRACK_PREVIOUS_PAGE_1 } from \"../../__DynamicConstants\";\r\n/**\r\n * Used to track page visit durations\r\n */\r\nvar PageVisitTimeManager = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of PageVisitTimeManager\r\n * @param pageVisitTimeTrackingHandler - Delegate that will be called to send telemetry data to AI (when trackPreviousPageVisit is called)\r\n * @returns {}\r\n */\r\n function PageVisitTimeManager(logger, pageVisitTimeTrackingHandler) {\r\n var prevPageVisitDataKeyName = \"prevPageVisitData\";\r\n dynamicProto(PageVisitTimeManager, this, function (_self) {\r\n _self[_DYN_TRACK_PREVIOUS_PAGE_1 /* @min:%2etrackPreviousPageVisit */] = function (currentPageName, currentPageUrl) {\r\n try {\r\n // Restart timer for new page view\r\n var prevPageVisitTimeData = restartPageVisitTimer(currentPageName, currentPageUrl);\r\n // If there was a page already being timed, track the visit time for it now.\r\n if (prevPageVisitTimeData) {\r\n pageVisitTimeTrackingHandler(prevPageVisitTimeData.pageName, prevPageVisitTimeData.pageUrl, prevPageVisitTimeData.pageVisitTime);\r\n }\r\n }\r\n catch (e) {\r\n _warnToConsole(logger, \"Auto track page visit time failed, metric will not be collected: \" + dumpObj(e));\r\n }\r\n };\r\n /**\r\n * Stops timing of current page (if exists) and starts timing for duration of visit to pageName\r\n * @param pageName - Name of page to begin timing visit duration\r\n * @returns {PageVisitData} Page visit data (including duration) of pageName from last call to start or restart, if exists. Null if not.\r\n */\r\n function restartPageVisitTimer(pageName, pageUrl) {\r\n var prevPageVisitData = null;\r\n try {\r\n prevPageVisitData = stopPageVisitTimer();\r\n if (utlCanUseSessionStorage()) {\r\n if (utlGetSessionStorage(logger, prevPageVisitDataKeyName) != null) {\r\n throwError(\"Cannot call startPageVisit consecutively without first calling stopPageVisit\");\r\n }\r\n var currPageVisitDataStr = getJSON().stringify(new PageVisitData(pageName, pageUrl));\r\n utlSetSessionStorage(logger, prevPageVisitDataKeyName, currPageVisitDataStr);\r\n }\r\n }\r\n catch (e) {\r\n _warnToConsole(logger, \"Call to restart failed: \" + dumpObj(e));\r\n prevPageVisitData = null;\r\n }\r\n return prevPageVisitData;\r\n }\r\n /**\r\n * Stops timing of current page, if exists.\r\n * @returns {PageVisitData} Page visit data (including duration) of pageName from call to start, if exists. Null if not.\r\n */\r\n function stopPageVisitTimer() {\r\n var prevPageVisitData = null;\r\n try {\r\n if (utlCanUseSessionStorage()) {\r\n // Define end time of page's visit\r\n var pageVisitEndTime = dateNow();\r\n // Try to retrieve page name and start time from session storage\r\n var pageVisitDataJsonStr = utlGetSessionStorage(logger, prevPageVisitDataKeyName);\r\n if (pageVisitDataJsonStr && hasJSON()) {\r\n // if previous page data exists, set end time of visit\r\n prevPageVisitData = getJSON().parse(pageVisitDataJsonStr);\r\n prevPageVisitData.pageVisitTime = pageVisitEndTime - prevPageVisitData[_DYN_PAGE_VISIT_START_TIM18 /* @min:%2epageVisitStartTime */];\r\n // Remove data from storage since we already used it\r\n utlRemoveSessionStorage(logger, prevPageVisitDataKeyName);\r\n }\r\n }\r\n }\r\n catch (e) {\r\n _warnToConsole(logger, \"Stop page visit timer failed: \" + dumpObj(e));\r\n prevPageVisitData = null;\r\n }\r\n return prevPageVisitData;\r\n }\r\n // For backward compatibility\r\n objDefine(_self, \"_logger\", { g: function () { return logger; } });\r\n objDefine(_self, \"pageVisitTimeTrackingHandler\", { g: function () { return pageVisitTimeTrackingHandler; } });\r\n });\r\n }\r\n// Removed Stub for PageVisitTimeManager.prototype.trackPreviousPageVisit.\r\n // This is a workaround for an IE bug when using dynamicProto() with classes that don't have any\n // non-dynamic functions or static properties/functions when using uglify-js to minify the resulting code.\n PageVisitTimeManager.__ieDyn=1;\n\n return PageVisitTimeManager;\r\n}());\r\nexport { PageVisitTimeManager };\r\nvar PageVisitData = /** @class */ (function () {\r\n function PageVisitData(pageName, pageUrl) {\r\n this[_DYN_PAGE_VISIT_START_TIM18 /* @min:%2epageVisitStartTime */] = dateNow();\r\n this.pageName = pageName;\r\n this.pageUrl = pageUrl;\r\n }\r\n return PageVisitData;\r\n}());\r\nexport { PageVisitData };\r\n//# sourceMappingURL=PageVisitTimeManager.js.map","/*\n * Application Insights JavaScript SDK - Web Analytics, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { dateTimeUtilsDuration } from \"@microsoft/applicationinsights-common\";\r\nimport { _throwInternal } from \"@microsoft/applicationinsights-core-js\";\r\n/**\r\n * Used to record timed events and page views.\r\n */\r\nvar Timing = /** @class */ (function () {\r\n function Timing(logger, name) {\r\n var _self = this;\r\n var _events = {};\r\n _self.start = function (name) {\r\n if (typeof _events[name] !== \"undefined\") {\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 62 /* _eInternalMessageId.StartCalledMoreThanOnce */, \"start was called more than once for this event without calling stop.\", { name: name, key: name }, true);\r\n }\r\n _events[name] = +new Date;\r\n };\r\n _self.stop = function (name, url, properties, measurements) {\r\n var start = _events[name];\r\n if (isNaN(start)) {\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 63 /* _eInternalMessageId.StopCalledWithoutStart */, \"stop was called without a corresponding start.\", { name: name, key: name }, true);\r\n }\r\n else {\r\n var end = +new Date;\r\n var duration = dateTimeUtilsDuration(start, end);\r\n _self.action(name, url, duration, properties, measurements);\r\n }\r\n delete _events[name];\r\n _events[name] = undefined;\r\n };\r\n }\r\n return Timing;\r\n}());\r\nexport { Timing };\r\n//# sourceMappingURL=Timing.js.map","/*\n * Application Insights JavaScript SDK - Web Analytics, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n/**\r\n* ApplicationInsights.ts\r\n* @copyright Microsoft 2018\r\n*/\r\nvar _a;\r\nimport { __assignFn as __assign, __extendsFn as __extends } from \"@microsoft/applicationinsights-shims\";\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { AnalyticsPluginIdentifier, Event as EventTelemetry, Exception, Metric, PageView, PageViewPerformance, PropertiesPluginIdentifier, RemoteDependencyData, Trace, createDistributedTraceContextFromTrace, createDomEvent, createTelemetryItem, dataSanitizeString, isCrossOriginError, strNotSpecified, utlDisableStorage, utlEnableStorage, utlSetStoragePrefix } from \"@microsoft/applicationinsights-common\";\r\nimport { BaseTelemetryPlugin, InstrumentEvent, arrForEach, cfgDfBoolean, cfgDfMerge, cfgDfSet, cfgDfString, cfgDfValidate, createProcessTelemetryContext, createUniqueNamespace, dumpObj, eventOff, eventOn, findAllScripts, generateW3CId, getDocument, getExceptionName, getHistory, getLocation, getWindow, hasHistory, hasWindow, isFunction, isNullOrUndefined, isString, isUndefined, mergeEvtNamespace, onConfigChange, safeGetCookieMgr, strUndefined, throwError } from \"@microsoft/applicationinsights-core-js\";\r\nimport { isArray, isError, objDeepFreeze, objDefine, scheduleTimeout, strIndexOf } from \"@nevware21/ts-utils\";\r\nimport { _DYN_ADD_TELEMETRY_INITIA7, _DYN_AUTO_TRACK_PAGE_VISI9, _DYN_AUTO_UNHANDLED_PROMI13, _DYN_COLUMN_NUMBER, _DYN_CORE, _DYN_DATA_TYPE, _DYN_DIAG_LOG, _DYN_DURATION, _DYN_ENABLE_AUTO_ROUTE_TR11, _DYN_ENABLE_UNHANDLED_PRO12, _DYN_ENVELOPE_TYPE, _DYN_ERROR, _DYN_ERROR_SRC, _DYN_EXCEPTION, _DYN_HREF, _DYN_IS_BROWSER_LINK_TRAC10, _DYN_IS_STORAGE_USE_DISAB0, _DYN_LENGTH, _DYN_LINE_NUMBER, _DYN_MESSAGE, _DYN_OVERRIDE_PAGE_VIEW_D8, _DYN_POPULATE_PAGE_VIEW_P4, _DYN_PROPERTIES, _DYN_SEND_EXCEPTION_INTER5, _DYN_SEND_PAGE_VIEW_INTER2, _DYN_SEND_PAGE_VIEW_PERFO3, _DYN_START_TIME, _DYN_TO_STRING, _DYN_TRACK, _DYN_TRACK_PAGE_VIEW, _DYN_TRACK_PREVIOUS_PAGE_1, _DYN__ADD_HOOK, _DYN__CREATE_AUTO_EXCEPTI6, _DYN__ONERROR } from \"../__DynamicConstants\";\r\nimport { PageViewManager } from \"./Telemetry/PageViewManager\";\r\nimport { PageViewPerformanceManager } from \"./Telemetry/PageViewPerformanceManager\";\r\nimport { PageVisitTimeManager } from \"./Telemetry/PageVisitTimeManager\";\r\nimport { Timing } from \"./Timing\";\r\nvar strEvent = \"event\";\r\nfunction _dispatchEvent(target, evnt) {\r\n if (target && target.dispatchEvent && evnt) {\r\n target.dispatchEvent(evnt);\r\n }\r\n}\r\nfunction _getReason(error) {\r\n if (error && error.reason) {\r\n var reason = error.reason;\r\n if (!isString(reason) && isFunction(reason[_DYN_TO_STRING /* @min:%2etoString */])) {\r\n return reason[_DYN_TO_STRING /* @min:%2etoString */]();\r\n }\r\n return dumpObj(reason);\r\n }\r\n // Pass the original object down which will eventually get evaluated for any message or description\r\n return error || \"\";\r\n}\r\nvar MinMilliSeconds = 60000;\r\nvar defaultValues = objDeepFreeze((_a = {\r\n sessionRenewalMs: cfgDfSet(_chkConfigMilliseconds, 30 * 60 * 1000),\r\n sessionExpirationMs: cfgDfSet(_chkConfigMilliseconds, 24 * 60 * 60 * 1000),\r\n disableExceptionTracking: cfgDfBoolean()\r\n },\r\n _a[_DYN_AUTO_TRACK_PAGE_VISI9 /* @min:autoTrackPageVisitTime */] = cfgDfBoolean(),\r\n _a[_DYN_OVERRIDE_PAGE_VIEW_D8 /* @min:overridePageViewDuration */] = cfgDfBoolean(),\r\n _a[_DYN_ENABLE_UNHANDLED_PRO12 /* @min:enableUnhandledPromiseRejectionTracking */] = cfgDfBoolean(),\r\n _a[_DYN_AUTO_UNHANDLED_PROMI13 /* @min:autoUnhandledPromiseInstrumented */] = false,\r\n _a.samplingPercentage = cfgDfValidate(_chkSampling, 100),\r\n _a[_DYN_IS_STORAGE_USE_DISAB0 /* @min:isStorageUseDisabled */] = cfgDfBoolean(),\r\n _a[_DYN_IS_BROWSER_LINK_TRAC10 /* @min:isBrowserLinkTrackingEnabled */] = cfgDfBoolean(),\r\n _a[_DYN_ENABLE_AUTO_ROUTE_TR11 /* @min:enableAutoRouteTracking */] = cfgDfBoolean(),\r\n _a.namePrefix = cfgDfString(),\r\n _a.enableDebug = cfgDfBoolean(),\r\n _a.disableFlushOnBeforeUnload = cfgDfBoolean(),\r\n _a.disableFlushOnUnload = cfgDfBoolean(false, \"disableFlushOnBeforeUnload\"),\r\n _a.expCfg = cfgDfMerge({ inclScripts: false, expLog: undefined, maxLogs: 50 }),\r\n _a));\r\nfunction _chkConfigMilliseconds(value, defValue) {\r\n value = value || defValue;\r\n if (value < MinMilliSeconds) {\r\n value = MinMilliSeconds;\r\n }\r\n return +value;\r\n}\r\nfunction _chkSampling(value) {\r\n return !isNaN(value) && value > 0 && value <= 100;\r\n}\r\nfunction _updateStorageUsage(extConfig) {\r\n // Not resetting the storage usage as someone may have manually called utlDisableStorage, so this will only\r\n // reset based if the configuration option is provided\r\n if (!isUndefined(extConfig[_DYN_IS_STORAGE_USE_DISAB0 /* @min:%2eisStorageUseDisabled */])) {\r\n if (extConfig[_DYN_IS_STORAGE_USE_DISAB0 /* @min:%2eisStorageUseDisabled */]) {\r\n utlDisableStorage();\r\n }\r\n else {\r\n utlEnableStorage();\r\n }\r\n }\r\n}\r\nvar AnalyticsPlugin = /** @class */ (function (_super) {\r\n __extends(AnalyticsPlugin, _super);\r\n function AnalyticsPlugin() {\r\n var _this = _super.call(this) || this;\r\n _this.identifier = AnalyticsPluginIdentifier; // do not change name or priority\r\n _this.priority = 180; // take from reserved priority range 100- 200\r\n _this.autoRoutePVDelay = 500; // ms; Time to wait after a route change before triggering a pageview to allow DOM changes to take place\r\n var _eventTracking;\r\n var _pageTracking;\r\n var _pageViewManager;\r\n var _pageViewPerformanceManager;\r\n var _pageVisitTimeManager;\r\n var _preInitTelemetryInitializers;\r\n var _isBrowserLinkTrackingEnabled;\r\n var _browserLinkInitializerAdded;\r\n var _enableAutoRouteTracking;\r\n var _historyListenerAdded;\r\n var _disableExceptionTracking;\r\n var _autoExceptionInstrumented;\r\n var _enableUnhandledPromiseRejectionTracking;\r\n var _autoUnhandledPromiseInstrumented;\r\n var _extConfig;\r\n var _autoTrackPageVisitTime;\r\n var _expCfg;\r\n // Counts number of trackAjax invocations.\r\n // By default we only monitor X ajax call per view to avoid too much load.\r\n // Default value is set in config.\r\n // This counter keeps increasing even after the limit is reached.\r\n var _trackAjaxAttempts = 0;\r\n // array with max length of 2 that store current url and previous url for SPA page route change trackPageview use.\r\n var _prevUri; // Assigned in the constructor\r\n var _currUri;\r\n var _evtNamespace;\r\n dynamicProto(AnalyticsPlugin, _this, function (_self, _base) {\r\n var _addHook = _base[_DYN__ADD_HOOK /* @min:%2e_addHook */];\r\n _initDefaults();\r\n _self.getCookieMgr = function () {\r\n return safeGetCookieMgr(_self[_DYN_CORE /* @min:%2ecore */]);\r\n };\r\n _self.processTelemetry = function (env, itemCtx) {\r\n _self.processNext(env, itemCtx);\r\n };\r\n _self.trackEvent = function (event, customProperties) {\r\n try {\r\n var telemetryItem = createTelemetryItem(event, EventTelemetry[_DYN_DATA_TYPE /* @min:%2edataType */], EventTelemetry[_DYN_ENVELOPE_TYPE /* @min:%2eenvelopeType */], _self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), customProperties);\r\n _self[_DYN_CORE /* @min:%2ecore */][_DYN_TRACK /* @min:%2etrack */](telemetryItem);\r\n }\r\n catch (e) {\r\n _throwInternal(2 /* eLoggingSeverity.WARNING */, 39 /* _eInternalMessageId.TrackTraceFailed */, \"trackTrace failed, trace will not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n };\r\n /**\r\n * Start timing an extended event. Call `stopTrackEvent` to log the event when it ends.\r\n * @param name A string that identifies this event uniquely within the document.\r\n */\r\n _self.startTrackEvent = function (name) {\r\n try {\r\n _eventTracking.start(name);\r\n }\r\n catch (e) {\r\n _throwInternal(1 /* eLoggingSeverity.CRITICAL */, 29 /* _eInternalMessageId.StartTrackEventFailed */, \"startTrackEvent failed, event will not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n };\r\n /**\r\n * Log an extended event that you started timing with `startTrackEvent`.\r\n * @param name The string you used to identify this event in `startTrackEvent`.\r\n * @param properties map[string, string] - additional data used to filter events and metrics in the portal. Defaults to empty.\r\n * @param measurements map[string, number] - metrics associated with this event, displayed in Metrics Explorer on the portal. Defaults to empty.\r\n */\r\n _self.stopTrackEvent = function (name, properties, measurements) {\r\n try {\r\n _eventTracking.stop(name, undefined, properties, measurements);\r\n }\r\n catch (e) {\r\n _throwInternal(1 /* eLoggingSeverity.CRITICAL */, 30 /* _eInternalMessageId.StopTrackEventFailed */, \"stopTrackEvent failed, event will not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n };\r\n /**\r\n * @description Log a diagnostic message\r\n * @param trace\r\n * @param ICustomProperties.\r\n * @memberof ApplicationInsights\r\n */\r\n _self.trackTrace = function (trace, customProperties) {\r\n try {\r\n var telemetryItem = createTelemetryItem(trace, Trace[_DYN_DATA_TYPE /* @min:%2edataType */], Trace[_DYN_ENVELOPE_TYPE /* @min:%2eenvelopeType */], _self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), customProperties);\r\n _self[_DYN_CORE /* @min:%2ecore */][_DYN_TRACK /* @min:%2etrack */](telemetryItem);\r\n }\r\n catch (e) {\r\n _throwInternal(2 /* eLoggingSeverity.WARNING */, 39 /* _eInternalMessageId.TrackTraceFailed */, \"trackTrace failed, trace will not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n };\r\n /**\r\n * @description Log a numeric value that is not associated with a specific event. Typically\r\n * used to send regular reports of performance indicators. To send single measurement, just\r\n * use the name and average fields of {@link IMetricTelemetry}. If you take measurements\r\n * frequently, you can reduce the telemetry bandwidth by aggregating multiple measurements\r\n * and sending the resulting average at intervals\r\n * @param metric - input object argument. Only name and average are mandatory.\r\n * @param } customProperties additional data used to filter metrics in the\r\n * portal. Defaults to empty.\r\n * @memberof ApplicationInsights\r\n */\r\n _self.trackMetric = function (metric, customProperties) {\r\n try {\r\n var telemetryItem = createTelemetryItem(metric, Metric[_DYN_DATA_TYPE /* @min:%2edataType */], Metric[_DYN_ENVELOPE_TYPE /* @min:%2eenvelopeType */], _self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), customProperties);\r\n _self[_DYN_CORE /* @min:%2ecore */][_DYN_TRACK /* @min:%2etrack */](telemetryItem);\r\n }\r\n catch (e) {\r\n _throwInternal(1 /* eLoggingSeverity.CRITICAL */, 36 /* _eInternalMessageId.TrackMetricFailed */, \"trackMetric failed, metric will not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n };\r\n /**\r\n * Logs that a page or other item was viewed.\r\n * @param IPageViewTelemetry - The string you used as the name in startTrackPage. Defaults to the document title.\r\n * @param customProperties - Additional data used to filter events and metrics. Defaults to empty.\r\n * If a user wants to provide duration for pageLoad, it'll have to be in pageView.properties.duration\r\n */\r\n _self[_DYN_TRACK_PAGE_VIEW /* @min:%2etrackPageView */] = function (pageView, customProperties) {\r\n try {\r\n var inPv = pageView || {};\r\n _pageViewManager[_DYN_TRACK_PAGE_VIEW /* @min:%2etrackPageView */](inPv, __assign(__assign(__assign({}, inPv.properties), inPv.measurements), customProperties));\r\n if (_autoTrackPageVisitTime) {\r\n _pageVisitTimeManager[_DYN_TRACK_PREVIOUS_PAGE_1 /* @min:%2etrackPreviousPageVisit */](inPv.name, inPv.uri);\r\n }\r\n }\r\n catch (e) {\r\n _throwInternal(1 /* eLoggingSeverity.CRITICAL */, 37 /* _eInternalMessageId.TrackPVFailed */, \"trackPageView failed, page view will not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n };\r\n /**\r\n * Create a page view telemetry item and send it to the SDK pipeline through the core.track API\r\n * @param pageView - Page view item to be sent\r\n * @param properties - Custom properties (Part C) that a user can add to the telemetry item\r\n * @param systemProperties - System level properties (Part A) that a user can add to the telemetry item\r\n */\r\n _self[_DYN_SEND_PAGE_VIEW_INTER2 /* @min:%2esendPageViewInternal */] = function (pageView, properties, systemProperties) {\r\n var doc = getDocument();\r\n if (doc) {\r\n pageView.refUri = pageView.refUri === undefined ? doc.referrer : pageView.refUri;\r\n }\r\n if (isNullOrUndefined(pageView[_DYN_START_TIME /* @min:%2estartTime */])) {\r\n // calculate the start time manually\r\n var duration = ((properties || pageView[_DYN_PROPERTIES /* @min:%2eproperties */] || {})[_DYN_DURATION /* @min:%2eduration */] || 0);\r\n pageView[_DYN_START_TIME /* @min:%2estartTime */] = new Date(new Date().getTime() - duration);\r\n }\r\n var telemetryItem = createTelemetryItem(pageView, PageView[_DYN_DATA_TYPE /* @min:%2edataType */], PageView[_DYN_ENVELOPE_TYPE /* @min:%2eenvelopeType */], _self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), properties, systemProperties);\r\n _self[_DYN_CORE /* @min:%2ecore */][_DYN_TRACK /* @min:%2etrack */](telemetryItem);\r\n // reset ajaxes counter\r\n _trackAjaxAttempts = 0;\r\n };\r\n /**\r\n * @ignore INTERNAL ONLY\r\n * @param pageViewPerformance\r\n * @param properties\r\n */\r\n _self[_DYN_SEND_PAGE_VIEW_PERFO3 /* @min:%2esendPageViewPerformanceInternal */] = function (pageViewPerformance, properties, systemProperties) {\r\n var telemetryItem = createTelemetryItem(pageViewPerformance, PageViewPerformance[_DYN_DATA_TYPE /* @min:%2edataType */], PageViewPerformance[_DYN_ENVELOPE_TYPE /* @min:%2eenvelopeType */], _self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), properties, systemProperties);\r\n _self[_DYN_CORE /* @min:%2ecore */][_DYN_TRACK /* @min:%2etrack */](telemetryItem);\r\n };\r\n /**\r\n * Send browser performance metrics.\r\n * @param pageViewPerformance\r\n * @param customProperties\r\n */\r\n _self.trackPageViewPerformance = function (pageViewPerformance, customProperties) {\r\n var inPvp = pageViewPerformance || {};\r\n try {\r\n _pageViewPerformanceManager[_DYN_POPULATE_PAGE_VIEW_P4 /* @min:%2epopulatePageViewPerformanceEvent */](inPvp);\r\n _self[_DYN_SEND_PAGE_VIEW_PERFO3 /* @min:%2esendPageViewPerformanceInternal */](inPvp, customProperties);\r\n }\r\n catch (e) {\r\n _throwInternal(1 /* eLoggingSeverity.CRITICAL */, 37 /* _eInternalMessageId.TrackPVFailed */, \"trackPageViewPerformance failed, page view will not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n };\r\n /**\r\n * Starts the timer for tracking a page load time. Use this instead of `trackPageView` if you want to control when the page view timer starts and stops,\r\n * but don't want to calculate the duration yourself. This method doesn't send any telemetry. Call `stopTrackPage` to log the end of the page view\r\n * and send the event.\r\n * @param name - A string that idenfities this item, unique within this HTML document. Defaults to the document title.\r\n */\r\n _self.startTrackPage = function (name) {\r\n try {\r\n if (typeof name !== \"string\") {\r\n var doc = getDocument();\r\n name = doc && doc.title || \"\";\r\n }\r\n _pageTracking.start(name);\r\n }\r\n catch (e) {\r\n _throwInternal(1 /* eLoggingSeverity.CRITICAL */, 31 /* _eInternalMessageId.StartTrackFailed */, \"startTrackPage failed, page view may not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n };\r\n /**\r\n * Stops the timer that was started by calling `startTrackPage` and sends the pageview load time telemetry with the specified properties and measurements.\r\n * The duration of the page view will be the time between calling `startTrackPage` and `stopTrackPage`.\r\n * @param name The string you used as the name in startTrackPage. Defaults to the document title.\r\n * @param url String - a relative or absolute URL that identifies the page or other item. Defaults to the window location.\r\n * @param properties map[string, string] - additional data used to filter pages and metrics in the portal. Defaults to empty.\r\n * @param measurements map[string, number] - metrics associated with this page, displayed in Metrics Explorer on the portal. Defaults to empty.\r\n */\r\n _self.stopTrackPage = function (name, url, properties, measurement) {\r\n try {\r\n if (typeof name !== \"string\") {\r\n var doc = getDocument();\r\n name = doc && doc.title || \"\";\r\n }\r\n if (typeof url !== \"string\") {\r\n var loc = getLocation();\r\n url = loc && loc[_DYN_HREF /* @min:%2ehref */] || \"\";\r\n }\r\n _pageTracking.stop(name, url, properties, measurement);\r\n if (_autoTrackPageVisitTime) {\r\n _pageVisitTimeManager[_DYN_TRACK_PREVIOUS_PAGE_1 /* @min:%2etrackPreviousPageVisit */](name, url);\r\n }\r\n }\r\n catch (e) {\r\n _throwInternal(1 /* eLoggingSeverity.CRITICAL */, 32 /* _eInternalMessageId.StopTrackFailed */, \"stopTrackPage failed, page view will not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n };\r\n /**\r\n * @ignore INTERNAL ONLY\r\n * @param exception\r\n * @param properties\r\n * @param systemProperties\r\n */\r\n _self[_DYN_SEND_EXCEPTION_INTER5 /* @min:%2esendExceptionInternal */] = function (exception, customProperties, systemProperties) {\r\n // Adding additional edge cases to handle\r\n // - Not passing anything (null / undefined)\r\n var theError = (exception && (exception[_DYN_EXCEPTION /* @min:%2eexception */] || exception[_DYN_ERROR /* @min:%2eerror */])) ||\r\n // - Handle someone calling trackException based of v1 API where the exception was the Error\r\n isError(exception) && exception ||\r\n // - Handles no error being defined and instead of creating a new Error() instance attempt to map so any stacktrace\r\n // is preserved and does not list ApplicationInsights code as the source\r\n { name: (exception && typeof exception), message: exception || strNotSpecified };\r\n // If no exception object was passed assign to an empty object to avoid internal exceptions\r\n exception = exception || {};\r\n var exceptionPartB = new Exception(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), theError, exception[_DYN_PROPERTIES /* @min:%2eproperties */] || customProperties, exception.measurements, exception.severityLevel, exception.id).toInterface();\r\n var doc = getDocument();\r\n if (doc && (_expCfg === null || _expCfg === void 0 ? void 0 : _expCfg.inclScripts)) {\r\n var scriptsInfo = findAllScripts(doc);\r\n exceptionPartB[_DYN_PROPERTIES /* @min:%2eproperties */][\"exceptionScripts\"] = JSON.stringify(scriptsInfo);\r\n }\r\n if (_expCfg === null || _expCfg === void 0 ? void 0 : _expCfg.expLog) {\r\n var logs = _expCfg.expLog();\r\n if (logs && logs.logs && isArray(logs.logs)) {\r\n exceptionPartB[_DYN_PROPERTIES /* @min:%2eproperties */][\"exceptionLog\"] = logs.logs.slice(0, _expCfg.maxLogs).join(\"\\n\");\r\n }\r\n }\r\n var telemetryItem = createTelemetryItem(exceptionPartB, Exception[_DYN_DATA_TYPE /* @min:%2edataType */], Exception[_DYN_ENVELOPE_TYPE /* @min:%2eenvelopeType */], _self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), customProperties, systemProperties);\r\n _self[_DYN_CORE /* @min:%2ecore */][_DYN_TRACK /* @min:%2etrack */](telemetryItem);\r\n };\r\n /**\r\n * Log an exception you have caught.\r\n *\r\n * @param exception - Object which contains exception to be sent\r\n * @param } customProperties Additional data used to filter pages and metrics in the portal. Defaults to empty.\r\n *\r\n * Any property of type double will be considered a measurement, and will be treated by Application Insights as a metric.\r\n * @memberof ApplicationInsights\r\n */\r\n _self.trackException = function (exception, customProperties) {\r\n if (exception && !exception[_DYN_EXCEPTION /* @min:%2eexception */] && exception[_DYN_ERROR /* @min:%2eerror */]) {\r\n exception[_DYN_EXCEPTION /* @min:%2eexception */] = exception[_DYN_ERROR /* @min:%2eerror */];\r\n }\r\n try {\r\n _self[_DYN_SEND_EXCEPTION_INTER5 /* @min:%2esendExceptionInternal */](exception, customProperties);\r\n }\r\n catch (e) {\r\n _throwInternal(1 /* eLoggingSeverity.CRITICAL */, 35 /* _eInternalMessageId.TrackExceptionFailed */, \"trackException failed, exception will not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n };\r\n /**\r\n * @description Custom error handler for Application Insights Analytics\r\n * @param exception\r\n * @memberof ApplicationInsights\r\n */\r\n _self[_DYN__ONERROR /* @min:%2e_onerror */] = function (exception) {\r\n var error = exception && exception[_DYN_ERROR /* @min:%2eerror */];\r\n var evt = exception && exception.evt;\r\n try {\r\n if (!evt) {\r\n var _window = getWindow();\r\n if (_window) {\r\n evt = _window[strEvent];\r\n }\r\n }\r\n var url = (exception && exception.url) || (getDocument() || {}).URL;\r\n // If no error source is provided assume the default window.onerror handler\r\n var errorSrc = exception[_DYN_ERROR_SRC /* @min:%2eerrorSrc */] || \"window.onerror@\" + url + \":\" + (exception[_DYN_LINE_NUMBER /* @min:%2elineNumber */] || 0) + \":\" + (exception[_DYN_COLUMN_NUMBER /* @min:%2ecolumnNumber */] || 0);\r\n var properties = {\r\n errorSrc: errorSrc,\r\n url: url,\r\n lineNumber: exception[_DYN_LINE_NUMBER /* @min:%2elineNumber */] || 0,\r\n columnNumber: exception[_DYN_COLUMN_NUMBER /* @min:%2ecolumnNumber */] || 0,\r\n message: exception[_DYN_MESSAGE /* @min:%2emessage */]\r\n };\r\n if (isCrossOriginError(exception.message, exception.url, exception.lineNumber, exception.columnNumber, exception[_DYN_ERROR /* @min:%2eerror */])) {\r\n _sendCORSException(Exception[_DYN__CREATE_AUTO_EXCEPTI6 /* @min:%2eCreateAutoException */](\"Script error: The browser's same-origin policy prevents us from getting the details of this exception. Consider using the 'crossorigin' attribute.\", url, exception[_DYN_LINE_NUMBER /* @min:%2elineNumber */] || 0, exception[_DYN_COLUMN_NUMBER /* @min:%2ecolumnNumber */] || 0, error, evt, null, errorSrc), properties);\r\n }\r\n else {\r\n if (!exception[_DYN_ERROR_SRC /* @min:%2eerrorSrc */]) {\r\n exception[_DYN_ERROR_SRC /* @min:%2eerrorSrc */] = errorSrc;\r\n }\r\n _self.trackException({ exception: exception, severityLevel: 3 /* eSeverityLevel.Error */ }, properties);\r\n }\r\n }\r\n catch (e) {\r\n var errorString = error ? (error.name + \", \" + error[_DYN_MESSAGE /* @min:%2emessage */]) : \"null\";\r\n _throwInternal(1 /* eLoggingSeverity.CRITICAL */, 11 /* _eInternalMessageId.ExceptionWhileLoggingError */, \"_onError threw exception while logging error, error will not be collected: \"\r\n + getExceptionName(e), { exception: dumpObj(e), errorString: errorString });\r\n }\r\n };\r\n _self[_DYN_ADD_TELEMETRY_INITIA7 /* @min:%2eaddTelemetryInitializer */] = function (telemetryInitializer) {\r\n if (_self[_DYN_CORE /* @min:%2ecore */]) {\r\n // Just add to the core\r\n return _self[_DYN_CORE /* @min:%2ecore */][_DYN_ADD_TELEMETRY_INITIA7 /* @min:%2eaddTelemetryInitializer */](telemetryInitializer);\r\n }\r\n // Handle \"pre-initialization\" telemetry initializers (for backward compatibility)\r\n if (!_preInitTelemetryInitializers) {\r\n _preInitTelemetryInitializers = [];\r\n }\r\n _preInitTelemetryInitializers.push(telemetryInitializer);\r\n };\r\n _self.initialize = function (config, core, extensions, pluginChain) {\r\n if (_self.isInitialized()) {\r\n return;\r\n }\r\n if (isNullOrUndefined(core)) {\r\n throwError(\"Error initializing\");\r\n }\r\n _base.initialize(config, core, extensions, pluginChain);\r\n try {\r\n _evtNamespace = mergeEvtNamespace(createUniqueNamespace(_self.identifier), core.evtNamespace && core.evtNamespace());\r\n if (_preInitTelemetryInitializers) {\r\n arrForEach(_preInitTelemetryInitializers, function (initializer) {\r\n core[_DYN_ADD_TELEMETRY_INITIA7 /* @min:%2eaddTelemetryInitializer */](initializer);\r\n });\r\n _preInitTelemetryInitializers = null;\r\n }\r\n _populateDefaults(config);\r\n _pageViewPerformanceManager = new PageViewPerformanceManager(_self[_DYN_CORE /* @min:%2ecore */]);\r\n _pageViewManager = new PageViewManager(_self, _extConfig.overridePageViewDuration, _self[_DYN_CORE /* @min:%2ecore */], _pageViewPerformanceManager);\r\n _pageVisitTimeManager = new PageVisitTimeManager(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), function (pageName, pageUrl, pageVisitTime) { return trackPageVisitTime(pageName, pageUrl, pageVisitTime); });\r\n _eventTracking = new Timing(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), \"trackEvent\");\r\n _eventTracking.action =\r\n function (name, url, duration, properties, measurements) {\r\n if (!properties) {\r\n properties = {};\r\n }\r\n if (!measurements) {\r\n measurements = {};\r\n }\r\n properties.duration = duration[_DYN_TO_STRING /* @min:%2etoString */]();\r\n _self.trackEvent({ name: name, properties: properties, measurements: measurements });\r\n };\r\n // initialize page view timing\r\n _pageTracking = new Timing(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), \"trackPageView\");\r\n _pageTracking.action = function (name, url, duration, properties, measurements) {\r\n // duration must be a custom property in order for the collector to extract it\r\n if (isNullOrUndefined(properties)) {\r\n properties = {};\r\n }\r\n properties.duration = duration[_DYN_TO_STRING /* @min:%2etoString */]();\r\n var pageViewItem = {\r\n name: name,\r\n uri: url,\r\n properties: properties,\r\n measurements: measurements\r\n };\r\n _self[_DYN_SEND_PAGE_VIEW_INTER2 /* @min:%2esendPageViewInternal */](pageViewItem, properties);\r\n };\r\n if (hasWindow()) {\r\n _updateExceptionTracking();\r\n _updateLocationChange();\r\n }\r\n }\r\n catch (e) {\r\n // resetting the initialized state because of failure\r\n _self.setInitialized(false);\r\n throw e;\r\n }\r\n };\r\n _self._doTeardown = function (unloadCtx, unloadState) {\r\n _pageViewManager && _pageViewManager.teardown(unloadCtx, unloadState);\r\n // Just register to remove all events associated with this namespace\r\n eventOff(window, null, null, _evtNamespace);\r\n _initDefaults();\r\n };\r\n function _populateDefaults(config) {\r\n var identifier = _self.identifier;\r\n var core = _self[_DYN_CORE /* @min:%2ecore */];\r\n _self[_DYN__ADD_HOOK /* @min:%2e_addHook */](onConfigChange(config, function () {\r\n var ctx = createProcessTelemetryContext(null, config, core);\r\n _extConfig = ctx.getExtCfg(identifier, defaultValues);\r\n _expCfg = _extConfig.expCfg;\r\n _autoTrackPageVisitTime = _extConfig[_DYN_AUTO_TRACK_PAGE_VISI9 /* @min:%2eautoTrackPageVisitTime */];\r\n if (config.storagePrefix) {\r\n utlSetStoragePrefix(config.storagePrefix);\r\n }\r\n _updateStorageUsage(_extConfig);\r\n // _updateBrowserLinkTracking\r\n _isBrowserLinkTrackingEnabled = _extConfig[_DYN_IS_BROWSER_LINK_TRAC10 /* @min:%2eisBrowserLinkTrackingEnabled */];\r\n _addDefaultTelemetryInitializers();\r\n }));\r\n }\r\n /**\r\n * Log a page visit time\r\n * @param pageName Name of page\r\n * @param pageVisitDuration Duration of visit to the page in milliseconds\r\n */\r\n function trackPageVisitTime(pageName, pageUrl, pageVisitTime) {\r\n var properties = { PageName: pageName, PageUrl: pageUrl };\r\n _self.trackMetric({\r\n name: \"PageVisitTime\",\r\n average: pageVisitTime,\r\n max: pageVisitTime,\r\n min: pageVisitTime,\r\n sampleCount: 1\r\n }, properties);\r\n }\r\n function _addDefaultTelemetryInitializers() {\r\n if (!_browserLinkInitializerAdded && _isBrowserLinkTrackingEnabled) {\r\n var browserLinkPaths_1 = [\"/browserLinkSignalR/\", \"/__browserLink/\"];\r\n var dropBrowserLinkRequests = function (envelope) {\r\n if (_isBrowserLinkTrackingEnabled && envelope.baseType === RemoteDependencyData[_DYN_DATA_TYPE /* @min:%2edataType */]) {\r\n var remoteData = envelope.baseData;\r\n if (remoteData) {\r\n for (var i = 0; i < browserLinkPaths_1[_DYN_LENGTH /* @min:%2elength */]; i++) {\r\n if (remoteData.target && strIndexOf(remoteData.target, browserLinkPaths_1[i]) >= 0) {\r\n return false;\r\n }\r\n }\r\n }\r\n }\r\n return true;\r\n };\r\n _self[_DYN__ADD_HOOK /* @min:%2e_addHook */](_self[_DYN_ADD_TELEMETRY_INITIA7 /* @min:%2eaddTelemetryInitializer */](dropBrowserLinkRequests));\r\n _browserLinkInitializerAdded = true;\r\n }\r\n }\r\n function _sendCORSException(exception, properties) {\r\n var telemetryItem = createTelemetryItem(exception, Exception[_DYN_DATA_TYPE /* @min:%2edataType */], Exception[_DYN_ENVELOPE_TYPE /* @min:%2eenvelopeType */], _self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), properties);\r\n _self[_DYN_CORE /* @min:%2ecore */][_DYN_TRACK /* @min:%2etrack */](telemetryItem);\r\n }\r\n function _updateExceptionTracking() {\r\n var _window = getWindow();\r\n var locn = getLocation(true);\r\n _self[_DYN__ADD_HOOK /* @min:%2e_addHook */](onConfigChange(_extConfig, function () {\r\n _disableExceptionTracking = _extConfig.disableExceptionTracking;\r\n if (!_disableExceptionTracking && !_autoExceptionInstrumented && !_extConfig.autoExceptionInstrumented) {\r\n // We want to enable exception auto collection and it has not been done so yet\r\n _addHook(InstrumentEvent(_window, \"onerror\", {\r\n ns: _evtNamespace,\r\n rsp: function (callDetails, message, url, lineNumber, columnNumber, error) {\r\n if (!_disableExceptionTracking && callDetails.rslt !== true) {\r\n _self[_DYN__ONERROR /* @min:%2e_onerror */](Exception[_DYN__CREATE_AUTO_EXCEPTI6 /* @min:%2eCreateAutoException */](message, url, lineNumber, columnNumber, error, callDetails.evt));\r\n }\r\n }\r\n }, false));\r\n _autoExceptionInstrumented = true;\r\n }\r\n }));\r\n _addUnhandledPromiseRejectionTracking(_window, locn);\r\n }\r\n function _updateLocationChange() {\r\n var win = getWindow();\r\n var locn = getLocation(true);\r\n _self[_DYN__ADD_HOOK /* @min:%2e_addHook */](onConfigChange(_extConfig, function () {\r\n _enableAutoRouteTracking = _extConfig[_DYN_ENABLE_AUTO_ROUTE_TR11 /* @min:%2eenableAutoRouteTracking */] === true;\r\n /**\r\n * Create a custom \"locationchange\" event which is triggered each time the history object is changed\r\n */\r\n if (win && _enableAutoRouteTracking && !_historyListenerAdded && hasHistory()) {\r\n var _history = getHistory();\r\n if (isFunction(_history.pushState) && isFunction(_history.replaceState) && typeof Event !== strUndefined) {\r\n _addHistoryListener(win, _history, locn);\r\n }\r\n }\r\n }));\r\n }\r\n function _getDistributedTraceCtx() {\r\n var distributedTraceCtx = null;\r\n if (_self[_DYN_CORE /* @min:%2ecore */] && _self[_DYN_CORE /* @min:%2ecore */].getTraceCtx) {\r\n distributedTraceCtx = _self[_DYN_CORE /* @min:%2ecore */].getTraceCtx(false);\r\n }\r\n if (!distributedTraceCtx) {\r\n // Fallback when using an older Core and PropertiesPlugin\r\n var properties = _self[_DYN_CORE /* @min:%2ecore */].getPlugin(PropertiesPluginIdentifier);\r\n if (properties) {\r\n var context = properties.plugin.context;\r\n if (context) {\r\n distributedTraceCtx = createDistributedTraceContextFromTrace(context.telemetryTrace);\r\n }\r\n }\r\n }\r\n return distributedTraceCtx;\r\n }\r\n /**\r\n * Create a custom \"locationchange\" event which is triggered each time the history object is changed\r\n */\r\n function _addHistoryListener(win, history, locn) {\r\n if (_historyListenerAdded) {\r\n return;\r\n }\r\n // Name Prefix is only referenced during the initial initialization and cannot be changed afterwards\r\n var namePrefix = _extConfig.namePrefix || \"\";\r\n function _popstateHandler() {\r\n if (_enableAutoRouteTracking) {\r\n _dispatchEvent(win, createDomEvent(namePrefix + \"locationchange\"));\r\n }\r\n }\r\n function _locationChangeHandler() {\r\n // We always track the changes (if the handler is installed) to handle the feature being disabled between location changes\r\n if (_currUri) {\r\n _prevUri = _currUri;\r\n _currUri = locn && locn[_DYN_HREF /* @min:%2ehref */] || \"\";\r\n }\r\n else {\r\n _currUri = locn && locn[_DYN_HREF /* @min:%2ehref */] || \"\";\r\n }\r\n if (_enableAutoRouteTracking) {\r\n var distributedTraceCtx = _getDistributedTraceCtx();\r\n if (distributedTraceCtx) {\r\n distributedTraceCtx.setTraceId(generateW3CId());\r\n var traceLocationName = \"_unknown_\";\r\n if (locn && locn.pathname) {\r\n traceLocationName = locn.pathname + (locn.hash || \"\");\r\n }\r\n // This populates the ai.operation.name which has a maximum size of 1024 so we need to sanitize it\r\n distributedTraceCtx.setName(dataSanitizeString(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), traceLocationName));\r\n }\r\n scheduleTimeout((function (uri) {\r\n // todo: override start time so that it is not affected by autoRoutePVDelay\r\n _self[_DYN_TRACK_PAGE_VIEW /* @min:%2etrackPageView */]({ refUri: uri, properties: { duration: 0 } }); // SPA route change loading durations are undefined, so send 0\r\n }).bind(_self, _prevUri), _self.autoRoutePVDelay);\r\n }\r\n }\r\n _addHook(InstrumentEvent(history, \"pushState\", {\r\n ns: _evtNamespace,\r\n rsp: function () {\r\n if (_enableAutoRouteTracking) {\r\n _dispatchEvent(win, createDomEvent(namePrefix + \"pushState\"));\r\n _dispatchEvent(win, createDomEvent(namePrefix + \"locationchange\"));\r\n }\r\n }\r\n }, true));\r\n _addHook(InstrumentEvent(history, \"replaceState\", {\r\n ns: _evtNamespace,\r\n rsp: function () {\r\n if (_enableAutoRouteTracking) {\r\n _dispatchEvent(win, createDomEvent(namePrefix + \"replaceState\"));\r\n _dispatchEvent(win, createDomEvent(namePrefix + \"locationchange\"));\r\n }\r\n }\r\n }, true));\r\n eventOn(win, namePrefix + \"popstate\", _popstateHandler, _evtNamespace);\r\n eventOn(win, namePrefix + \"locationchange\", _locationChangeHandler, _evtNamespace);\r\n _historyListenerAdded = true;\r\n }\r\n function _addUnhandledPromiseRejectionTracking(_window, _location) {\r\n _self[_DYN__ADD_HOOK /* @min:%2e_addHook */](onConfigChange(_extConfig, function () {\r\n _enableUnhandledPromiseRejectionTracking = _extConfig[_DYN_ENABLE_UNHANDLED_PRO12 /* @min:%2eenableUnhandledPromiseRejectionTracking */] === true;\r\n _autoExceptionInstrumented = _autoExceptionInstrumented || _extConfig[_DYN_AUTO_UNHANDLED_PROMI13 /* @min:%2eautoUnhandledPromiseInstrumented */];\r\n if (_enableUnhandledPromiseRejectionTracking && !_autoUnhandledPromiseInstrumented) {\r\n // We want to enable exception auto collection and it has not been done so yet\r\n _addHook(InstrumentEvent(_window, \"onunhandledrejection\", {\r\n ns: _evtNamespace,\r\n rsp: function (callDetails, error) {\r\n if (_enableUnhandledPromiseRejectionTracking && callDetails.rslt !== true) { // handled could be typeof function\r\n _self[_DYN__ONERROR /* @min:%2e_onerror */](Exception[_DYN__CREATE_AUTO_EXCEPTI6 /* @min:%2eCreateAutoException */](_getReason(error), _location ? _location[_DYN_HREF /* @min:%2ehref */] : \"\", 0, 0, error, callDetails.evt));\r\n }\r\n }\r\n }, false));\r\n _extConfig[_DYN_AUTO_UNHANDLED_PROMI13 /* @min:%2eautoUnhandledPromiseInstrumented */] = _autoUnhandledPromiseInstrumented = true;\r\n }\r\n }));\r\n }\r\n /**\r\n * This method will throw exceptions in debug mode or attempt to log the error as a console warning.\r\n * @param severity - {eLoggingSeverity} - The severity of the log message\r\n * @param msgId - {_eInternalLogMessage} - The log message.\r\n */\r\n function _throwInternal(severity, msgId, msg, properties, isUserAct) {\r\n _self[_DYN_DIAG_LOG /* @min:%2ediagLog */]().throwInternal(severity, msgId, msg, properties, isUserAct);\r\n }\r\n function _initDefaults() {\r\n _eventTracking = null;\r\n _pageTracking = null;\r\n _pageViewManager = null;\r\n _pageViewPerformanceManager = null;\r\n _pageVisitTimeManager = null;\r\n _preInitTelemetryInitializers = null;\r\n _isBrowserLinkTrackingEnabled = false;\r\n _browserLinkInitializerAdded = false;\r\n _enableAutoRouteTracking = false;\r\n _historyListenerAdded = false;\r\n _disableExceptionTracking = false;\r\n _autoExceptionInstrumented = false;\r\n _enableUnhandledPromiseRejectionTracking = false;\r\n _autoUnhandledPromiseInstrumented = false;\r\n _autoTrackPageVisitTime = false;\r\n // Counts number of trackAjax invocations.\r\n // By default we only monitor X ajax call per view to avoid too much load.\r\n // Default value is set in config.\r\n // This counter keeps increasing even after the limit is reached.\r\n _trackAjaxAttempts = 0;\r\n // array with max length of 2 that store current url and previous url for SPA page route change trackPageview use.\r\n var location = getLocation(true);\r\n _prevUri = location && location[_DYN_HREF /* @min:%2ehref */] || \"\";\r\n _currUri = null;\r\n _evtNamespace = null;\r\n _extConfig = null;\r\n // Define _self.config\r\n objDefine(_self, \"config\", {\r\n g: function () { return _extConfig; }\r\n });\r\n }\r\n // For backward compatibility\r\n objDefine(_self, \"_pageViewManager\", { g: function () { return _pageViewManager; } });\r\n objDefine(_self, \"_pageViewPerformanceManager\", { g: function () { return _pageViewPerformanceManager; } });\r\n objDefine(_self, \"_pageVisitTimeManager\", { g: function () { return _pageVisitTimeManager; } });\r\n objDefine(_self, \"_evtNamespace\", { g: function () { return \".\" + _evtNamespace; } });\r\n });\r\n return _this;\r\n }\r\n// Removed Stub for AnalyticsPlugin.prototype.getCookieMgr.\r\n// Removed Stub for AnalyticsPlugin.prototype.processTelemetry.\r\n// Removed Stub for AnalyticsPlugin.prototype.trackEvent.\r\n// Removed Stub for AnalyticsPlugin.prototype.startTrackEvent.\r\n// Removed Stub for AnalyticsPlugin.prototype.stopTrackEvent.\r\n// Removed Stub for AnalyticsPlugin.prototype.trackTrace.\r\n// Removed Stub for AnalyticsPlugin.prototype.trackMetric.\r\n// Removed Stub for AnalyticsPlugin.prototype.trackPageView.\r\n// Removed Stub for AnalyticsPlugin.prototype.sendPageViewInternal.\r\n// Removed Stub for AnalyticsPlugin.prototype.sendPageViewPerformanceInternal.\r\n// Removed Stub for AnalyticsPlugin.prototype.trackPageViewPerformance.\r\n// Removed Stub for AnalyticsPlugin.prototype.startTrackPage.\r\n// Removed Stub for AnalyticsPlugin.prototype.stopTrackPage.\r\n// Removed Stub for AnalyticsPlugin.prototype.sendExceptionInternal.\r\n// Removed Stub for AnalyticsPlugin.prototype.trackException.\r\n// Removed Stub for AnalyticsPlugin.prototype._onerror.\r\n// Removed Stub for AnalyticsPlugin.prototype.addTelemetryInitializer.\r\n// Removed Stub for AnalyticsPlugin.prototype.initialize.\r\n AnalyticsPlugin.Version = '3.3.4'; // Not currently used anywhere\r\n return AnalyticsPlugin;\r\n}(BaseTelemetryPlugin));\r\nexport { AnalyticsPlugin };\r\n//# sourceMappingURL=AnalyticsPlugin.js.map","/*\n * Application Insights JavaScript SDK - Properties Plugin, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n// @skip-file-minify\r\n// ##############################################################\r\n// AUTO GENERATED FILE: This file is Auto Generated during build.\r\n// ##############################################################\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\n// Note: DON'T Export these const from the package as we are still targeting ES3 this will export a mutable variables that someone could change!!!\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\nexport var _DYN_FEATURE_OPT_IN = \"featureOptIn\"; // Count: 4\r\nexport var _DYN_ON_CFG_CHANGE_RECEIV0 = \"onCfgChangeReceive\"; // Count: 2\r\nexport var _DYN_NON_OVERRIDE_CONFIGS = \"nonOverrideConfigs\"; // Count: 2\r\nexport var _DYN_SCHEDULE_FETCH_TIMEO1 = \"scheduleFetchTimeout\"; // Count: 2\r\n//# sourceMappingURL=__DynamicConstants.js.map","/*\n * Application Insights JavaScript SDK - Properties Plugin, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nimport { isNullOrUndefined, isObject, objExtend, objForEachKey, setValueByKey } from \"@nevware21/ts-utils\";\r\nimport { _DYN_FEATURE_OPT_IN } from \"./__DynamicConstants\";\r\n/**\r\n * Delete a config key in the given cfg, if the config key exists in nonOverrideConfigs and its value is set to true\r\n * @param cfg cfg to modify\r\n * @param nonOverrideConfigs nonOverrideConfigs\r\n * @param curLevel cur config level, starting at 0\r\n * @param maxLevel max config level\r\n * @returns new copy of modified configs\r\n */\r\nexport function replaceByNonOverrideCfg(cfg, nonOverrideConfigs, curLevel, maxLevel) {\r\n try {\r\n var exceedMaxLevel = curLevel > maxLevel;\r\n if (exceedMaxLevel) {\r\n cfg = null;\r\n }\r\n var curCfg_1 = curLevel == 0 ? objExtend({}, cfg) : cfg; // only copy cfg at the begining level\r\n if (curCfg_1 && nonOverrideConfigs && !exceedMaxLevel) {\r\n objForEachKey(curCfg_1, function (key) {\r\n var nonOverrideVal = nonOverrideConfigs[key];\r\n if (!!nonOverrideVal) {\r\n if (isObject(curCfg_1[key]) && isObject(nonOverrideVal)) {\r\n curCfg_1[key] = replaceByNonOverrideCfg(curCfg_1[key], nonOverrideVal, ++curLevel, maxLevel);\r\n }\r\n else {\r\n delete curCfg_1[key];\r\n }\r\n }\r\n });\r\n }\r\n return curCfg_1;\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n // if errors happen, do nothing\r\n return cfg;\r\n}\r\n// CDN Mode, value = B (CDN value = B)\r\n// |--------------------------------------------------------------------------|-----------|\r\n// | | none | disabled | enabled | forceOn | forceOff |\r\n// | ------------------ | ----------- | ----------- | ----------- | --------- | --------- |\r\n// | User Mode, value = A | none | none | disabled | enabled | enabled | disabled |\r\n// (user Value = A) | disabled | disabled | disabled | disabled | enabled | disabled |\r\n// | enabled | enabled | disabled | enabled | enabled | disabled |\r\n// | none(blockCdn) | none | none | none | none | none |\r\n// | disabled(blockCdn) | disabled | disabled | disabled | disabled | disabled |\r\n// | enabled(blockCdn) | enabled | enabled | enabled | enabled | enabled |\r\n// This matrix identifies how feature based overrides are selected (if present)\r\n// cdn Mode (cdn Value = B)\r\n// |---------------------------------------------------------------------------|\r\n// | | none | disabled | enabled | forceOn | forceOff |\r\n// | ------------------ | ---------| ---------| ---------| ---------|----------|\r\n// | User Mode | none | A | A | A || B | B || A | B || A |\r\n// (user Value = A) | disabled | A | A | A | B || A | B || A |\r\n// | enabled | A | A | A || B | B || A | B || A |\r\n// | none(blockCdn) | A | A | A | A | A |\r\n// | disabled(blockCdn) | A | A | A | A | A |\r\n// | enabled(blockCdn) | A | A | A | A | A |\r\n// Note:\r\n// Where the \"value\" is an object (map) of encoded key/values which will be used to override the real configuration\r\n// A = either the user supplied enable/disable value (via the `config.featureOptIn[name]`) or if not defined by the user the SDK defaults of the same.\r\n// B = The enable/disable value obtained from the CDN for the named feature\r\n// These are evaluated based on the above matrix to either\r\n// - A (Always the user/sdk value)\r\n// - B (Always the value from the CDN)\r\n// - A || B (If A is null or undefined use the value from the CDN (B) otherwise A)\r\n// - B || A (If B is null or undefined use the user/SDK value otherwise use the value from the CDN)\r\n//\r\n// The result of the value may also be null / undefined, which means there are no overrides to apply when the feature is enabled\r\nvar F = \"featureOptIn.\";\r\nvar M = \".mode\";\r\nvar ON = \".onCfg\";\r\nvar OFF = \".offCfg\";\r\nexport function resolveCdnFeatureCfg(field, cdnCfg, userOptInDetails) {\r\n var _a;\r\n // cdn conifg value\r\n if (!cdnCfg || !cdnCfg.enabled) {\r\n return null;\r\n }\r\n var cdnFt = (cdnCfg[_DYN_FEATURE_OPT_IN /* @min:%2efeatureOptIn */] || {})[field] || { mode: 1 /* CdnFeatureMode.none */ };\r\n var cdnM = cdnFt.mode;\r\n var cdnOnV = cdnFt.onCfg;\r\n var cdnOffV = cdnFt.offCfg;\r\n var userFt = (userOptInDetails || {})[field] || { mode: 2 /* FeatureOptInMode.disable */ }; // default user mode is disable\r\n var userM = userFt.mode;\r\n var userOnV = userFt.onCfg;\r\n var userOffV = userFt.offCfg;\r\n var blockCdn = !!userFt.blockCdnCfg;\r\n var mFld = F + field + M;\r\n var onFld = F + field + ON;\r\n var offFld = F + field + OFF;\r\n var mode = userM;\r\n var onV = userOnV;\r\n var offV = userOffV;\r\n if (!blockCdn) {\r\n if (cdnM === 4 /* CdnFeatureMode.forceOn */ || cdnM === 5 /* CdnFeatureMode.forceOff */) {\r\n mode = (cdnM == 4 /* CdnFeatureMode.forceOn */ ? 3 /* FeatureOptInMode.enable */ : 2 /* FeatureOptInMode.disable */);\r\n onV = cdnOnV || userOnV;\r\n offV = cdnOffV || userOffV;\r\n }\r\n else if (cdnM === 2 /* CdnFeatureMode.disable */ || userM === 2 /* FeatureOptInMode.disable */) {\r\n mode = 2 /* FeatureOptInMode.disable */;\r\n onV = userOnV || cdnOnV;\r\n offV = userOffV || cdnOffV;\r\n }\r\n else if (cdnM === 3 /* CdnFeatureMode.enable */) {\r\n mode = 3 /* FeatureOptInMode.enable */;\r\n onV = userOnV || cdnOnV;\r\n offV = userOffV || cdnOffV;\r\n }\r\n else if (cdnM === 1 /* CdnFeatureMode.none */ && userM === 1 /* FeatureOptInMode.none */) {\r\n mode = 1 /* FeatureOptInMode.none */;\r\n }\r\n }\r\n return _a = {},\r\n _a[mFld] = mode,\r\n _a[onFld] = onV,\r\n _a[offFld] = offV,\r\n _a;\r\n}\r\n// helper function to get cdn config with opt-in features\r\nexport function applyCdnfeatureCfg(cdnCfg, core) {\r\n try {\r\n if (!cdnCfg || !cdnCfg.enabled) {\r\n return null;\r\n }\r\n if (!cdnCfg[_DYN_FEATURE_OPT_IN /* @min:%2efeatureOptIn */]) {\r\n return cdnCfg.config;\r\n }\r\n var optInMap = cdnCfg[_DYN_FEATURE_OPT_IN /* @min:%2efeatureOptIn */];\r\n var cdnConfig_1 = cdnCfg.config || {};\r\n objForEachKey(optInMap, function (key) {\r\n var featureVal = resolveCdnFeatureCfg(key, cdnCfg, core.config[_DYN_FEATURE_OPT_IN /* @min:%2efeatureOptIn */]);\r\n if (!isNullOrUndefined(featureVal)) {\r\n objForEachKey(featureVal, function (config, val) {\r\n setValueByKey(cdnConfig_1, config, val);\r\n });\r\n _overrideCdnCfgByFeature(key, featureVal, cdnConfig_1);\r\n }\r\n });\r\n return cdnConfig_1;\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n return null;\r\n}\r\nfunction _overrideCdnCfgByFeature(field, ftVal, config) {\r\n var mode = ftVal[F + field + M];\r\n var val = ftVal[F + field + ON];\r\n var dVal = ftVal[F + field + OFF];\r\n var target = null;\r\n if (mode === 3 /* FeatureOptInMode.enable */) {\r\n target = val;\r\n }\r\n if (mode === 2 /* FeatureOptInMode.disable */) {\r\n target = dVal;\r\n }\r\n if (target) {\r\n objForEachKey(target, function (key, cfg) {\r\n setValueByKey(config, key, cfg);\r\n });\r\n }\r\n}\r\n//# sourceMappingURL=CfgSyncHelperFuncs.js.map","/*\n * Application Insights JavaScript SDK - Properties Plugin, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n/**\r\n* CfgSyncPlugin.ts\r\n* @copyright Microsoft 2018\r\n*/\r\nvar _a;\r\nimport { __extendsFn as __extends } from \"@microsoft/applicationinsights-shims\";\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { BaseTelemetryPlugin, createProcessTelemetryContext, createUniqueNamespace, eventOff, eventOn, getGlobal, getJSON, isFetchSupported, isXhrSupported, mergeEvtNamespace, onConfigChange, sendCustomEvent } from \"@microsoft/applicationinsights-core-js\";\r\nimport { doAwaitResponse } from \"@nevware21/ts-async\";\r\nimport { isFunction, isNullOrUndefined, isPlainObject, objDeepFreeze, scheduleTimeout } from \"@nevware21/ts-utils\";\r\nimport { applyCdnfeatureCfg, replaceByNonOverrideCfg } from \"./CfgSyncHelperFuncs\";\r\nimport { _DYN_NON_OVERRIDE_CONFIGS, _DYN_ON_CFG_CHANGE_RECEIV0, _DYN_SCHEDULE_FETCH_TIMEO1 } from \"./__DynamicConstants\";\r\nvar EVENT_NAME = \"ai_cfgsync\";\r\nvar STR_GET_METHOD = \"GET\";\r\nvar FETCH_TIMEOUT = 1800000; // 30 minutes\r\nvar udfVal = undefined;\r\nvar defaultNonOverrideCfg = { instrumentationKey: true, connectionString: true, endpointUrl: true };\r\nvar _defaultConfig = objDeepFreeze((_a = {\r\n syncMode: 1 /* ICfgSyncMode.Broadcast */,\r\n blkCdnCfg: udfVal,\r\n customEvtName: udfVal,\r\n cfgUrl: udfVal,\r\n overrideSyncFn: udfVal,\r\n overrideFetchFn: udfVal\r\n },\r\n _a[_DYN_ON_CFG_CHANGE_RECEIV0 /* @min:onCfgChangeReceive */] = udfVal,\r\n _a[_DYN_SCHEDULE_FETCH_TIMEO1 /* @min:scheduleFetchTimeout */] = FETCH_TIMEOUT,\r\n _a[_DYN_NON_OVERRIDE_CONFIGS /* @min:nonOverrideConfigs */] = defaultNonOverrideCfg,\r\n _a));\r\nvar CfgSyncPlugin = /** @class */ (function (_super) {\r\n __extends(CfgSyncPlugin, _super);\r\n function CfgSyncPlugin() {\r\n var _this = _super.call(this) || this;\r\n _this.priority = 198;\r\n _this.identifier = \"AppInsightsCfgSyncPlugin\";\r\n var _extensionConfig;\r\n var _mainConfig; // throttle config should be wrapped in IConfiguration\r\n var _evtName;\r\n var _evtNamespace;\r\n var _cfgUrl;\r\n var _timeoutHandle;\r\n var _receiveChanges;\r\n var _broadcastChanges;\r\n var _blkCdnCfg;\r\n var _fetchTimeout;\r\n var _retryCnt;\r\n var _onCfgChangeReceive;\r\n var _nonOverrideConfigs;\r\n var _fetchFn;\r\n var _overrideFetchFn;\r\n var _overrideSyncFn;\r\n var _paused = false;\r\n dynamicProto(CfgSyncPlugin, _this, function (_self, _base) {\r\n _initDefaults();\r\n _self.initialize = function (config, core, extensions, pluginChain) {\r\n _base.initialize(config, core, extensions, pluginChain);\r\n _evtNamespace = mergeEvtNamespace(createUniqueNamespace(_self.identifier), core.evtNamespace && core.evtNamespace());\r\n _populateDefaults(config);\r\n };\r\n _self.getCfg = function () {\r\n return _mainConfig;\r\n };\r\n _self.pause = function () {\r\n _paused = true;\r\n _clearScheduledTimer();\r\n };\r\n _self.resume = function () {\r\n _paused = false;\r\n _setupTimer();\r\n };\r\n // used for V2 to manaully trigger config udpate\r\n _self.setCfg = function (config) {\r\n return _setCfg(config);\r\n };\r\n _self.sync = function (customDetails) {\r\n return _sendCfgsyncEvents(customDetails);\r\n };\r\n _self.updateEventListenerName = function (eventName) {\r\n return _updateEventListenerName(eventName);\r\n };\r\n _self._doTeardown = function (unloadCtx, unloadState) {\r\n _eventOff();\r\n _clearScheduledTimer();\r\n _initDefaults();\r\n };\r\n _self[\"_getDbgPlgTargets\"] = function () {\r\n return [_broadcastChanges, _receiveChanges, _evtName, _blkCdnCfg, _nonOverrideConfigs];\r\n };\r\n function _initDefaults() {\r\n _mainConfig = null;\r\n _evtName = null;\r\n _evtNamespace = null;\r\n _cfgUrl = null;\r\n _receiveChanges = null;\r\n _broadcastChanges = null;\r\n _nonOverrideConfigs = null;\r\n _timeoutHandle = null;\r\n _fetchTimeout = null;\r\n _retryCnt = null;\r\n _blkCdnCfg = null;\r\n _overrideFetchFn = null;\r\n _overrideSyncFn = null;\r\n _onCfgChangeReceive = null;\r\n }\r\n function _populateDefaults(config) {\r\n var identifier = _self.identifier;\r\n var core = _self.core;\r\n _self._addHook(onConfigChange(config, function () {\r\n var ctx = createProcessTelemetryContext(null, config, core);\r\n _extensionConfig = ctx.getExtCfg(identifier, _defaultConfig);\r\n var preBlkCdn = _blkCdnCfg;\r\n _blkCdnCfg = !!_extensionConfig.blkCdnCfg;\r\n // avoid initial call\r\n if (!isNullOrUndefined(preBlkCdn) && preBlkCdn !== _blkCdnCfg) {\r\n if (!_blkCdnCfg && _cfgUrl) {\r\n _fetchFn && _fetchFn(_cfgUrl, _onFetchComplete, _broadcastChanges);\r\n }\r\n else {\r\n _clearScheduledTimer();\r\n }\r\n }\r\n if (isNullOrUndefined(_receiveChanges)) {\r\n _receiveChanges = _extensionConfig.syncMode === 2 /* ICfgSyncMode.Receive */;\r\n }\r\n if (isNullOrUndefined(_broadcastChanges)) {\r\n _broadcastChanges = _extensionConfig.syncMode === 1 /* ICfgSyncMode.Broadcast */;\r\n }\r\n var newEvtName = _extensionConfig.customEvtName || EVENT_NAME;\r\n if (_evtName !== newEvtName) {\r\n if (_receiveChanges) {\r\n _updateEventListenerName(newEvtName);\r\n }\r\n else {\r\n _eventOff();\r\n _evtName = newEvtName;\r\n }\r\n }\r\n if (isNullOrUndefined(_cfgUrl)) {\r\n _cfgUrl = _extensionConfig.cfgUrl;\r\n }\r\n // if cfgUrl is set, we will ignore core config change\r\n if (!_cfgUrl) {\r\n _mainConfig = config;\r\n if (_broadcastChanges) {\r\n _sendCfgsyncEvents();\r\n }\r\n }\r\n }));\r\n _overrideSyncFn = _extensionConfig.overrideSyncFn;\r\n _overrideFetchFn = _extensionConfig.overrideFetchFn;\r\n _onCfgChangeReceive = _extensionConfig[_DYN_ON_CFG_CHANGE_RECEIV0 /* @min:%2eonCfgChangeReceive */];\r\n _nonOverrideConfigs = _extensionConfig[_DYN_NON_OVERRIDE_CONFIGS /* @min:%2enonOverrideConfigs */]; // override values should not be changed\r\n _fetchTimeout = _extensionConfig[_DYN_SCHEDULE_FETCH_TIMEO1 /* @min:%2escheduleFetchTimeout */];\r\n _fetchFn = _getFetchFnInterface();\r\n _retryCnt = 0;\r\n // NOT support cfgURL change to avoid mutiple fetch calls\r\n if (_cfgUrl && !_blkCdnCfg) {\r\n _fetchFn && _fetchFn(_cfgUrl, _onFetchComplete, _broadcastChanges);\r\n }\r\n }\r\n function _setCfg(config, isAutoSync) {\r\n if (config) {\r\n _mainConfig = config;\r\n if (!!isAutoSync && !_paused) {\r\n return _sendCfgsyncEvents();\r\n }\r\n if (_receiveChanges && !_paused) {\r\n _self.core.updateCfg(config);\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n function _eventOff() {\r\n try {\r\n var global_1 = getGlobal();\r\n if (global_1) {\r\n eventOff(global_1, null, null, _evtNamespace);\r\n }\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n }\r\n function _sendCfgsyncEvents(customDetails) {\r\n try {\r\n if (!!_overrideSyncFn && isFunction(_overrideSyncFn)) {\r\n return _overrideSyncFn(_mainConfig, customDetails);\r\n }\r\n return sendCustomEvent(_evtName, _mainConfig, customDetails);\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n return false;\r\n }\r\n function _updateEventListenerName(name) {\r\n try {\r\n _eventOff();\r\n if (name) {\r\n _evtName = name;\r\n _addEventListener();\r\n }\r\n return true;\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n return false;\r\n }\r\n function _getFetchFnInterface() {\r\n var _fetchFn = _overrideFetchFn;\r\n if (isNullOrUndefined(_fetchFn)) {\r\n if (isFetchSupported()) {\r\n _fetchFn = _fetchSender;\r\n }\r\n else if (isXhrSupported()) {\r\n _fetchFn = _xhrSender;\r\n }\r\n }\r\n return _fetchFn;\r\n }\r\n function _fetchSender(url, oncomplete, isAutoSync) {\r\n var global = getGlobal();\r\n var fetchFn = (global && global.fetch) || null;\r\n if (url && fetchFn && isFunction(fetchFn)) {\r\n try {\r\n var init = {\r\n method: STR_GET_METHOD\r\n };\r\n var request = new Request(url, init);\r\n doAwaitResponse(fetch(request), function (result) {\r\n var response = result.value;\r\n if (!result.rejected) {\r\n if (response.ok) {\r\n doAwaitResponse(response.text(), function (res) {\r\n _doOnComplete(oncomplete, response.status, res.value, isAutoSync);\r\n });\r\n }\r\n else {\r\n _doOnComplete(oncomplete, response.status, null, isAutoSync);\r\n }\r\n }\r\n else {\r\n _doOnComplete(oncomplete, 400);\r\n }\r\n });\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n }\r\n }\r\n function _xhrSender(url, oncomplete, isAutoSync) {\r\n try {\r\n var xhr_1 = new XMLHttpRequest();\r\n xhr_1.open(STR_GET_METHOD, url);\r\n xhr_1.onreadystatechange = function () {\r\n if (xhr_1.readyState === XMLHttpRequest.DONE) {\r\n _doOnComplete(oncomplete, xhr_1.status, xhr_1.responseText, isAutoSync);\r\n }\r\n };\r\n xhr_1.onerror = function () {\r\n _doOnComplete(oncomplete, 400);\r\n };\r\n xhr_1.ontimeout = function () {\r\n _doOnComplete(oncomplete, 400);\r\n };\r\n xhr_1.send();\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n }\r\n function _onFetchComplete(status, response, isAutoSync) {\r\n try {\r\n if (status >= 200 && status < 400 && response) {\r\n _retryCnt = 0; // any successful response will reset retry count to 0\r\n var JSON_1 = getJSON();\r\n if (JSON_1) {\r\n var cdnCfg = JSON_1.parse(response); //comments are not allowed\r\n var cfg = applyCdnfeatureCfg(cdnCfg, _self.core);\r\n var newCfg = cfg && isPlainObject(cfg) && _replaceTartgetByKeys(cfg);\r\n newCfg && _setCfg(newCfg, isAutoSync);\r\n //cfg && _setCfg(cfg, isAutoSync);\r\n }\r\n }\r\n else {\r\n _retryCnt++;\r\n }\r\n if (_retryCnt < 3) {\r\n _setupTimer();\r\n }\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n }\r\n function _doOnComplete(oncomplete, status, response, isAutoSync) {\r\n try {\r\n oncomplete(status, response, isAutoSync);\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n }\r\n function _addEventListener() {\r\n if (_receiveChanges) {\r\n var global_2 = getGlobal();\r\n if (global_2) {\r\n try {\r\n eventOn(global_2, _evtName, function (event) {\r\n // TODO: add more validation here\r\n // may include a \"name\" or some other features to check\r\n var cfgEvent = event && event.detail;\r\n if (_onCfgChangeReceive && cfgEvent) {\r\n _onCfgChangeReceive(cfgEvent);\r\n }\r\n else {\r\n var cfg = cfgEvent && cfgEvent.cfg;\r\n var newCfg = cfg && isPlainObject(cfg) && _replaceTartgetByKeys(cfg);\r\n newCfg && _setCfg(newCfg);\r\n }\r\n }, _evtNamespace, true);\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n }\r\n }\r\n }\r\n // 4 levels\r\n function _replaceTartgetByKeys(cfg, level) {\r\n var _cfg = null;\r\n try {\r\n if (cfg) {\r\n _cfg = replaceByNonOverrideCfg(cfg, _nonOverrideConfigs, 0, 5);\r\n }\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n return _cfg;\r\n }\r\n /**\r\n * Sets up the timer which triggers fetching cdn every 30mins after inital call\r\n */\r\n function _setupTimer() {\r\n if (!_timeoutHandle && _fetchTimeout) {\r\n _timeoutHandle = scheduleTimeout(function () {\r\n _timeoutHandle = null;\r\n _fetchFn(_cfgUrl, _onFetchComplete, _broadcastChanges);\r\n }, _fetchTimeout);\r\n _timeoutHandle.unref();\r\n }\r\n }\r\n function _clearScheduledTimer() {\r\n _timeoutHandle && _timeoutHandle.cancel();\r\n _timeoutHandle = null;\r\n _retryCnt = 0;\r\n }\r\n _self.processTelemetry = function (env, itemCtx) {\r\n _self.processNext(env, itemCtx);\r\n };\r\n });\r\n return _this;\r\n }\r\n// Removed Stub for CfgSyncPlugin.prototype.initialize.\r\n// Removed Stub for CfgSyncPlugin.prototype.getCfg.\r\n// Removed Stub for CfgSyncPlugin.prototype.setCfg.\r\n// Removed Stub for CfgSyncPlugin.prototype.sync.\r\n// Removed Stub for CfgSyncPlugin.prototype.updateEventListenerName.\r\n// Removed Stub for CfgSyncPlugin.prototype.pause.\r\n// Removed Stub for CfgSyncPlugin.prototype.resume.\r\n //// Removed Stub for CfgSyncPlugin.prototype.processTelemetry.\r\n // This is a workaround for an IE bug when using dynamicProto() with classes that don't have any\n // non-dynamic functions or static properties/functions when using uglify-js to minify the resulting code.\n CfgSyncPlugin.__ieDyn=1;\n\n return CfgSyncPlugin;\r\n}(BaseTelemetryPlugin));\r\nexport { CfgSyncPlugin };\r\n//# sourceMappingURL=CfgSyncPlugin.js.map","/*\n * Application Insights JavaScript SDK - Channel, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n// ###################################################################################################################################################\r\n// Note: DON'T Export these const from the package as we are still targeting IE/ES5 this will export a mutable variables that someone could change ###\r\n// ###################################################################################################################################################\r\n// Generally you should only put values that are used more than 2 times and then only if not already exposed as a constant (such as SdkCoreNames)\r\n// as when using \"short\" named values from here they will be will be minified smaller than the SdkCoreNames[eSdkCoreNames.xxxx] value.\r\nexport var STR_DURATION = \"duration\";\r\n//# sourceMappingURL=InternalConstants.js.map","/*\n * Application Insights JavaScript SDK - Channel, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n// @skip-file-minify\r\n// ##############################################################\r\n// AUTO GENERATED FILE: This file is Auto Generated during build.\r\n// ##############################################################\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\n// Note: DON'T Export these const from the package as we are still targeting ES3 this will export a mutable variables that someone could change!!!\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\nexport var _DYN_TAGS = \"tags\"; // Count: 17\r\nexport var _DYN_DEVICE_TYPE = \"deviceType\"; // Count: 3\r\nexport var _DYN_DATA = \"data\"; // Count: 15\r\nexport var _DYN_NAME = \"name\"; // Count: 8\r\nexport var _DYN_TRACE_ID = \"traceID\"; // Count: 5\r\nexport var _DYN_LENGTH = \"length\"; // Count: 38\r\nexport var _DYN_STRINGIFY = \"stringify\"; // Count: 5\r\nexport var _DYN_MEASUREMENTS = \"measurements\"; // Count: 7\r\nexport var _DYN_DATA_TYPE = \"dataType\"; // Count: 10\r\nexport var _DYN_ENVELOPE_TYPE = \"envelopeType\"; // Count: 7\r\nexport var _DYN_TO_STRING = \"toString\"; // Count: 7\r\nexport var _DYN__GET = \"_get\"; // Count: 5\r\nexport var _DYN_ENQUEUE = \"enqueue\"; // Count: 7\r\nexport var _DYN_COUNT = \"count\"; // Count: 7\r\nexport var _DYN_EVENTS_LIMIT_IN_MEM = \"eventsLimitInMem\"; // Count: 2\r\nexport var _DYN_PUSH = \"push\"; // Count: 9\r\nexport var _DYN_ITEM = \"item\"; // Count: 6\r\nexport var _DYN_EMIT_LINE_DELIMITED_0 = \"emitLineDelimitedJson\"; // Count: 3\r\nexport var _DYN_CLEAR = \"clear\"; // Count: 6\r\nexport var _DYN_CREATE_NEW = \"createNew\"; // Count: 3\r\nexport var _DYN_MARK_AS_SENT = \"markAsSent\"; // Count: 4\r\nexport var _DYN_CLEAR_SENT = \"clearSent\"; // Count: 5\r\nexport var _DYN_BUFFER_OVERRIDE = \"bufferOverride\"; // Count: 3\r\nexport var _DYN__BUFFER__KEY = \"BUFFER_KEY\"; // Count: 5\r\nexport var _DYN__SENT__BUFFER__KEY = \"SENT_BUFFER_KEY\"; // Count: 8\r\nexport var _DYN_CONCAT = \"concat\"; // Count: 6\r\nexport var _DYN__MAX__BUFFER__SIZE = \"MAX_BUFFER_SIZE\"; // Count: 5\r\nexport var _DYN_TRIGGER_SEND = \"triggerSend\"; // Count: 5\r\nexport var _DYN_DIAG_LOG = \"diagLog\"; // Count: 16\r\nexport var _DYN_INITIALIZE = \"initialize\"; // Count: 3\r\nexport var _DYN__SENDER = \"_sender\"; // Count: 5\r\nexport var _DYN_ENDPOINT_URL = \"endpointUrl\"; // Count: 5\r\nexport var _DYN_INSTRUMENTATION_KEY = \"instrumentationKey\"; // Count: 5\r\nexport var _DYN_CUSTOM_HEADERS = \"customHeaders\"; // Count: 3\r\nexport var _DYN_MAX_BATCH_SIZE_IN_BY1 = \"maxBatchSizeInBytes\"; // Count: 2\r\nexport var _DYN_ONUNLOAD_DISABLE_BEA2 = \"onunloadDisableBeacon\"; // Count: 3\r\nexport var _DYN_IS_BEACON_API_DISABL3 = \"isBeaconApiDisabled\"; // Count: 3\r\nexport var _DYN_ALWAYS_USE_XHR_OVERR4 = \"alwaysUseXhrOverride\"; // Count: 2\r\nexport var _DYN_DISABLE_XHR = \"disableXhr\"; // Count: 3\r\nexport var _DYN_ENABLE_SESSION_STORA5 = \"enableSessionStorageBuffer\"; // Count: 2\r\nexport var _DYN__BUFFER = \"_buffer\"; // Count: 9\r\nexport var _DYN_ONUNLOAD_DISABLE_FET6 = \"onunloadDisableFetch\"; // Count: 2\r\nexport var _DYN_DISABLE_SEND_BEACON_7 = \"disableSendBeaconSplit\"; // Count: 2\r\nexport var _DYN_ENABLE_SEND_PROMISE = \"enableSendPromise\"; // Count: 2\r\nexport var _DYN_GET_SENDER_INST = \"getSenderInst\"; // Count: 4\r\nexport var _DYN_UNLOAD_TRANSPORTS = \"unloadTransports\"; // Count: 2\r\nexport var _DYN_CONVERT_UNDEFINED = \"convertUndefined\"; // Count: 2\r\nexport var _DYN_MAX_BATCH_INTERVAL = \"maxBatchInterval\"; // Count: 2\r\nexport var _DYN_SERIALIZE = \"serialize\"; // Count: 4\r\nexport var _DYN__ON_ERROR = \"_onError\"; // Count: 7\r\nexport var _DYN__ON_PARTIAL_SUCCESS = \"_onPartialSuccess\"; // Count: 3\r\nexport var _DYN__ON_SUCCESS = \"_onSuccess\"; // Count: 6\r\nexport var _DYN_ITEMS_RECEIVED = \"itemsReceived\"; // Count: 3\r\nexport var _DYN_ITEMS_ACCEPTED = \"itemsAccepted\"; // Count: 3\r\nexport var _DYN_ORI_PAYLOAD = \"oriPayload\"; // Count: 3\r\nexport var _DYN_BASE_TYPE = \"baseType\"; // Count: 4\r\nexport var _DYN_SAMPLE_RATE = \"sampleRate\"; // Count: 4\r\nexport var _DYN_EVENTS_SEND_REQUEST = \"eventsSendRequest\"; // Count: 2\r\nexport var _DYN_GET_SAMPLING_SCORE = \"getSamplingScore\"; // Count: 2\r\nexport var _DYN_GET_HASH_CODE_SCORE = \"getHashCodeScore\"; // Count: 4\r\n//# sourceMappingURL=__DynamicConstants.js.map","/*\n * Application Insights JavaScript SDK - Channel, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nimport { __assignFn as __assign } from \"@microsoft/applicationinsights-shims\";\r\nimport { CtxTagKeys, Data, Envelope, Event, Exception, HttpMethod, Metric, PageView, PageViewPerformance, RemoteDependencyData, SampleRate, Trace, dataSanitizeString } from \"@microsoft/applicationinsights-common\";\r\nimport { _throwInternal, _warnToConsole, getJSON, hasJSON, isNullOrUndefined, isNumber, isString, isTruthy, objForEachKey, optimizeObject, setValue, toISOString } from \"@microsoft/applicationinsights-core-js\";\r\nimport { STR_DURATION } from \"./InternalConstants\";\r\nimport { _DYN_DATA, _DYN_DATA_TYPE, _DYN_DEVICE_TYPE, _DYN_ENVELOPE_TYPE, _DYN_LENGTH, _DYN_MEASUREMENTS, _DYN_NAME, _DYN_STRINGIFY, _DYN_TAGS, _DYN_TO_STRING, _DYN_TRACE_ID } from \"./__DynamicConstants\";\r\n// these two constants are used to filter out properties not needed when trying to extract custom properties and measurements from the incoming payload\r\nvar strBaseType = \"baseType\";\r\nvar strBaseData = \"baseData\";\r\nvar strProperties = \"properties\";\r\nvar strTrue = \"true\";\r\nfunction _setValueIf(target, field, value) {\r\n return setValue(target, field, value, isTruthy);\r\n}\r\n/*\r\n * Maps Part A data from CS 4.0\r\n */\r\nfunction _extractPartAExtensions(logger, item, env) {\r\n // todo: switch to keys from common in this method\r\n var envTags = env[_DYN_TAGS /* @min:%2etags */] = env[_DYN_TAGS /* @min:%2etags */] || {};\r\n var itmExt = item.ext = item.ext || {};\r\n var itmTags = item[_DYN_TAGS /* @min:%2etags */] = item[_DYN_TAGS /* @min:%2etags */] || [];\r\n var extUser = itmExt.user;\r\n if (extUser) {\r\n _setValueIf(envTags, CtxTagKeys.userAuthUserId, extUser.authId);\r\n _setValueIf(envTags, CtxTagKeys.userId, extUser.id || extUser.localId);\r\n }\r\n var extApp = itmExt.app;\r\n if (extApp) {\r\n _setValueIf(envTags, CtxTagKeys.sessionId, extApp.sesId);\r\n }\r\n var extDevice = itmExt.device;\r\n if (extDevice) {\r\n _setValueIf(envTags, CtxTagKeys.deviceId, extDevice.id || extDevice.localId);\r\n _setValueIf(envTags, CtxTagKeys[_DYN_DEVICE_TYPE /* @min:%2edeviceType */], extDevice.deviceClass);\r\n _setValueIf(envTags, CtxTagKeys.deviceIp, extDevice.ip);\r\n _setValueIf(envTags, CtxTagKeys.deviceModel, extDevice.model);\r\n _setValueIf(envTags, CtxTagKeys[_DYN_DEVICE_TYPE /* @min:%2edeviceType */], extDevice[_DYN_DEVICE_TYPE /* @min:%2edeviceType */]);\r\n }\r\n var web = item.ext.web;\r\n if (web) {\r\n _setValueIf(envTags, CtxTagKeys.deviceLanguage, web.browserLang);\r\n _setValueIf(envTags, CtxTagKeys.deviceBrowserVersion, web.browserVer);\r\n _setValueIf(envTags, CtxTagKeys.deviceBrowser, web.browser);\r\n var envData = env[_DYN_DATA /* @min:%2edata */] = env[_DYN_DATA /* @min:%2edata */] || {};\r\n var envBaseData = envData[strBaseData] = envData[strBaseData] || {};\r\n var envProps = envBaseData[strProperties] = envBaseData[strProperties] || {};\r\n _setValueIf(envProps, \"domain\", web.domain);\r\n _setValueIf(envProps, \"isManual\", web.isManual ? strTrue : null);\r\n _setValueIf(envProps, \"screenRes\", web.screenRes);\r\n _setValueIf(envProps, \"userConsent\", web.userConsent ? strTrue : null);\r\n }\r\n var extOs = itmExt.os;\r\n if (extOs) {\r\n _setValueIf(envTags, CtxTagKeys.deviceOS, extOs[_DYN_NAME /* @min:%2ename */]);\r\n _setValueIf(envTags, CtxTagKeys.deviceOSVersion, extOs.osVer);\r\n }\r\n // No support for mapping Trace.traceState to 2.0 as it is currently empty\r\n var extTrace = itmExt.trace;\r\n if (extTrace) {\r\n _setValueIf(envTags, CtxTagKeys.operationParentId, extTrace.parentID);\r\n _setValueIf(envTags, CtxTagKeys.operationName, dataSanitizeString(logger, extTrace[_DYN_NAME /* @min:%2ename */]));\r\n _setValueIf(envTags, CtxTagKeys.operationId, extTrace[_DYN_TRACE_ID /* @min:%2etraceID */]);\r\n }\r\n // Sample 4.0 schema\r\n // {\r\n // \"time\" : \"2018-09-05T22:51:22.4936Z\",\r\n // \"name\" : \"MetricWithNamespace\",\r\n // \"iKey\" : \"ABC-5a4cbd20-e601-4ef5-a3c6-5d6577e4398e\",\r\n // \"ext\": { \"cloud\": {\r\n // \"role\": \"WATSON3\",\r\n // \"roleInstance\": \"CO4AEAP00000260\"\r\n // },\r\n // \"device\": {}, \"correlation\": {} },\r\n // \"tags\": [\r\n // { \"amazon.region\" : \"east2\" },\r\n // { \"os.expid\" : \"wp:02df239\" }\r\n // ]\r\n // }\r\n var tgs = {};\r\n // deals with tags.push({object})\r\n for (var i = itmTags[_DYN_LENGTH /* @min:%2elength */] - 1; i >= 0; i--) {\r\n var tg = itmTags[i];\r\n objForEachKey(tg, function (key, value) {\r\n tgs[key] = value;\r\n });\r\n itmTags.splice(i, 1);\r\n }\r\n // deals with tags[key]=value (and handles hasOwnProperty)\r\n objForEachKey(itmTags, function (tg, value) {\r\n tgs[tg] = value;\r\n });\r\n var theTags = __assign(__assign({}, envTags), tgs);\r\n if (!theTags[CtxTagKeys.internalSdkVersion]) {\r\n // Append a version in case it is not already set\r\n theTags[CtxTagKeys.internalSdkVersion] = dataSanitizeString(logger, \"javascript:\".concat(EnvelopeCreator.Version), 64);\r\n }\r\n env[_DYN_TAGS /* @min:%2etags */] = optimizeObject(theTags);\r\n}\r\nfunction _extractPropsAndMeasurements(data, properties, measurements) {\r\n if (!isNullOrUndefined(data)) {\r\n objForEachKey(data, function (key, value) {\r\n if (isNumber(value)) {\r\n measurements[key] = value;\r\n }\r\n else if (isString(value)) {\r\n properties[key] = value;\r\n }\r\n else if (hasJSON()) {\r\n properties[key] = getJSON()[_DYN_STRINGIFY /* @min:%2estringify */](value);\r\n }\r\n });\r\n }\r\n}\r\nfunction _convertPropsUndefinedToCustomDefinedValue(properties, customUndefinedValue) {\r\n if (!isNullOrUndefined(properties)) {\r\n objForEachKey(properties, function (key, value) {\r\n properties[key] = value || customUndefinedValue;\r\n });\r\n }\r\n}\r\n// TODO: Do we want this to take logger as arg or use this._logger as nonstatic?\r\nfunction _createEnvelope(logger, envelopeType, telemetryItem, data) {\r\n var envelope = new Envelope(logger, data, envelopeType);\r\n _setValueIf(envelope, \"sampleRate\", telemetryItem[SampleRate]);\r\n if ((telemetryItem[strBaseData] || {}).startTime) {\r\n // Starting from Version 3.0.3, the time property will be assigned by the startTime value,\r\n // which records the loadEvent time for the pageView event.\r\n envelope.time = toISOString(telemetryItem[strBaseData].startTime);\r\n }\r\n envelope.iKey = telemetryItem.iKey;\r\n var iKeyNoDashes = telemetryItem.iKey.replace(/-/g, \"\");\r\n envelope[_DYN_NAME /* @min:%2ename */] = envelope[_DYN_NAME /* @min:%2ename */].replace(\"{0}\", iKeyNoDashes);\r\n // extract all extensions from ctx\r\n _extractPartAExtensions(logger, telemetryItem, envelope);\r\n // loop through the envelope tags (extension of Part A) and pick out the ones that should go in outgoing envelope tags\r\n telemetryItem[_DYN_TAGS /* @min:%2etags */] = telemetryItem[_DYN_TAGS /* @min:%2etags */] || [];\r\n return optimizeObject(envelope);\r\n}\r\nfunction EnvelopeCreatorInit(logger, telemetryItem) {\r\n if (isNullOrUndefined(telemetryItem[strBaseData])) {\r\n _throwInternal(logger, 1 /* eLoggingSeverity.CRITICAL */, 46 /* _eInternalMessageId.TelemetryEnvelopeInvalid */, \"telemetryItem.baseData cannot be null.\");\r\n }\r\n}\r\nexport var EnvelopeCreator = {\r\n Version: '3.3.4'\r\n};\r\nexport function DependencyEnvelopeCreator(logger, telemetryItem, customUndefinedValue) {\r\n EnvelopeCreatorInit(logger, telemetryItem);\r\n var customMeasurements = telemetryItem[strBaseData][_DYN_MEASUREMENTS /* @min:%2emeasurements */] || {};\r\n var customProperties = telemetryItem[strBaseData][strProperties] || {};\r\n _extractPropsAndMeasurements(telemetryItem[_DYN_DATA /* @min:%2edata */], customProperties, customMeasurements);\r\n if (!isNullOrUndefined(customUndefinedValue)) {\r\n _convertPropsUndefinedToCustomDefinedValue(customProperties, customUndefinedValue);\r\n }\r\n var bd = telemetryItem[strBaseData];\r\n if (isNullOrUndefined(bd)) {\r\n _warnToConsole(logger, \"Invalid input for dependency data\");\r\n return null;\r\n }\r\n var method = bd[strProperties] && bd[strProperties][HttpMethod] ? bd[strProperties][HttpMethod] : \"GET\";\r\n var remoteDepData = new RemoteDependencyData(logger, bd.id, bd.target, bd[_DYN_NAME /* @min:%2ename */], bd[STR_DURATION /* @min:%2eduration */], bd.success, bd.responseCode, method, bd.type, bd.correlationContext, customProperties, customMeasurements);\r\n var data = new Data(RemoteDependencyData[_DYN_DATA_TYPE /* @min:%2edataType */], remoteDepData);\r\n return _createEnvelope(logger, RemoteDependencyData[_DYN_ENVELOPE_TYPE /* @min:%2eenvelopeType */], telemetryItem, data);\r\n}\r\nexport function EventEnvelopeCreator(logger, telemetryItem, customUndefinedValue) {\r\n EnvelopeCreatorInit(logger, telemetryItem);\r\n var customProperties = {};\r\n var customMeasurements = {};\r\n if (telemetryItem[strBaseType] !== Event[_DYN_DATA_TYPE /* @min:%2edataType */]) {\r\n customProperties[\"baseTypeSource\"] = telemetryItem[strBaseType]; // save the passed in base type as a property\r\n }\r\n if (telemetryItem[strBaseType] === Event[_DYN_DATA_TYPE /* @min:%2edataType */]) { // take collection\r\n customProperties = telemetryItem[strBaseData][strProperties] || {};\r\n customMeasurements = telemetryItem[strBaseData][_DYN_MEASUREMENTS /* @min:%2emeasurements */] || {};\r\n }\r\n else { // if its not a known type, convert to custom event\r\n if (telemetryItem[strBaseData]) {\r\n _extractPropsAndMeasurements(telemetryItem[strBaseData], customProperties, customMeasurements);\r\n }\r\n }\r\n // Extract root level properties from part C telemetryItem.data\r\n _extractPropsAndMeasurements(telemetryItem[_DYN_DATA /* @min:%2edata */], customProperties, customMeasurements);\r\n if (!isNullOrUndefined(customUndefinedValue)) {\r\n _convertPropsUndefinedToCustomDefinedValue(customProperties, customUndefinedValue);\r\n }\r\n var eventName = telemetryItem[strBaseData][_DYN_NAME /* @min:%2ename */];\r\n var eventData = new Event(logger, eventName, customProperties, customMeasurements);\r\n var data = new Data(Event[_DYN_DATA_TYPE /* @min:%2edataType */], eventData);\r\n return _createEnvelope(logger, Event[_DYN_ENVELOPE_TYPE /* @min:%2eenvelopeType */], telemetryItem, data);\r\n}\r\nexport function ExceptionEnvelopeCreator(logger, telemetryItem, customUndefinedValue) {\r\n EnvelopeCreatorInit(logger, telemetryItem);\r\n // Extract root level properties from part C telemetryItem.data\r\n var customMeasurements = telemetryItem[strBaseData][_DYN_MEASUREMENTS /* @min:%2emeasurements */] || {};\r\n var customProperties = telemetryItem[strBaseData][strProperties] || {};\r\n _extractPropsAndMeasurements(telemetryItem[_DYN_DATA /* @min:%2edata */], customProperties, customMeasurements);\r\n if (!isNullOrUndefined(customUndefinedValue)) {\r\n _convertPropsUndefinedToCustomDefinedValue(customProperties, customUndefinedValue);\r\n }\r\n var bd = telemetryItem[strBaseData];\r\n var exData = Exception.CreateFromInterface(logger, bd, customProperties, customMeasurements);\r\n var data = new Data(Exception[_DYN_DATA_TYPE /* @min:%2edataType */], exData);\r\n return _createEnvelope(logger, Exception[_DYN_ENVELOPE_TYPE /* @min:%2eenvelopeType */], telemetryItem, data);\r\n}\r\nexport function MetricEnvelopeCreator(logger, telemetryItem, customUndefinedValue) {\r\n EnvelopeCreatorInit(logger, telemetryItem);\r\n var baseData = telemetryItem[strBaseData];\r\n var props = baseData[strProperties] || {};\r\n var measurements = baseData[_DYN_MEASUREMENTS /* @min:%2emeasurements */] || {};\r\n _extractPropsAndMeasurements(telemetryItem[_DYN_DATA /* @min:%2edata */], props, measurements);\r\n if (!isNullOrUndefined(customUndefinedValue)) {\r\n _convertPropsUndefinedToCustomDefinedValue(props, customUndefinedValue);\r\n }\r\n var baseMetricData = new Metric(logger, baseData[_DYN_NAME /* @min:%2ename */], baseData.average, baseData.sampleCount, baseData.min, baseData.max, baseData.stdDev, props, measurements);\r\n var data = new Data(Metric[_DYN_DATA_TYPE /* @min:%2edataType */], baseMetricData);\r\n return _createEnvelope(logger, Metric[_DYN_ENVELOPE_TYPE /* @min:%2eenvelopeType */], telemetryItem, data);\r\n}\r\nexport function PageViewEnvelopeCreator(logger, telemetryItem, customUndefinedValue) {\r\n EnvelopeCreatorInit(logger, telemetryItem);\r\n // Since duration is not part of the domain properties in Common Schema, extract it from part C\r\n var duration;\r\n var baseData = telemetryItem[strBaseData];\r\n if (!isNullOrUndefined(baseData) &&\r\n !isNullOrUndefined(baseData[strProperties]) &&\r\n !isNullOrUndefined(baseData[strProperties][STR_DURATION])) { // from part B properties\r\n duration = baseData[strProperties][STR_DURATION];\r\n delete baseData[strProperties][STR_DURATION];\r\n }\r\n else if (!isNullOrUndefined(telemetryItem[_DYN_DATA /* @min:%2edata */]) &&\r\n !isNullOrUndefined(telemetryItem[_DYN_DATA /* @min:%2edata */][STR_DURATION])) { // from custom properties\r\n duration = telemetryItem[_DYN_DATA /* @min:%2edata */][STR_DURATION];\r\n delete telemetryItem[_DYN_DATA /* @min:%2edata */][STR_DURATION];\r\n }\r\n var bd = telemetryItem[strBaseData];\r\n // special case: pageview.id is grabbed from current operation id. Analytics plugin is decoupled from properties plugin, so this is done here instead. This can be made a default telemetry intializer instead if needed to be decoupled from channel\r\n var currentContextId;\r\n if (((telemetryItem.ext || {}).trace || {})[_DYN_TRACE_ID /* @min:%2etraceID */]) {\r\n currentContextId = telemetryItem.ext.trace[_DYN_TRACE_ID /* @min:%2etraceID */];\r\n }\r\n var id = bd.id || currentContextId;\r\n var name = bd[_DYN_NAME /* @min:%2ename */];\r\n var url = bd.uri;\r\n var properties = bd[strProperties] || {};\r\n var measurements = bd[_DYN_MEASUREMENTS /* @min:%2emeasurements */] || {};\r\n // refUri is a field that Breeze still does not recognize as part of Part B. For now, put it in Part C until it supports it as a domain property\r\n if (!isNullOrUndefined(bd.refUri)) {\r\n properties[\"refUri\"] = bd.refUri;\r\n }\r\n // pageType is a field that Breeze still does not recognize as part of Part B. For now, put it in Part C until it supports it as a domain property\r\n if (!isNullOrUndefined(bd.pageType)) {\r\n properties[\"pageType\"] = bd.pageType;\r\n }\r\n // isLoggedIn is a field that Breeze still does not recognize as part of Part B. For now, put it in Part C until it supports it as a domain property\r\n if (!isNullOrUndefined(bd.isLoggedIn)) {\r\n properties[\"isLoggedIn\"] = bd.isLoggedIn[_DYN_TO_STRING /* @min:%2etoString */]();\r\n }\r\n // pageTags is a field that Breeze still does not recognize as part of Part B. For now, put it in Part C until it supports it as a domain property\r\n if (!isNullOrUndefined(bd[strProperties])) {\r\n var pageTags = bd[strProperties];\r\n objForEachKey(pageTags, function (key, value) {\r\n properties[key] = value;\r\n });\r\n }\r\n _extractPropsAndMeasurements(telemetryItem[_DYN_DATA /* @min:%2edata */], properties, measurements);\r\n if (!isNullOrUndefined(customUndefinedValue)) {\r\n _convertPropsUndefinedToCustomDefinedValue(properties, customUndefinedValue);\r\n }\r\n var pageViewData = new PageView(logger, name, url, duration, properties, measurements, id);\r\n var data = new Data(PageView[_DYN_DATA_TYPE /* @min:%2edataType */], pageViewData);\r\n return _createEnvelope(logger, PageView[_DYN_ENVELOPE_TYPE /* @min:%2eenvelopeType */], telemetryItem, data);\r\n}\r\nexport function PageViewPerformanceEnvelopeCreator(logger, telemetryItem, customUndefinedValue) {\r\n EnvelopeCreatorInit(logger, telemetryItem);\r\n var bd = telemetryItem[strBaseData];\r\n var name = bd[_DYN_NAME /* @min:%2ename */];\r\n var url = bd.uri || bd.url;\r\n var properties = bd[strProperties] || {};\r\n var measurements = bd[_DYN_MEASUREMENTS /* @min:%2emeasurements */] || {};\r\n _extractPropsAndMeasurements(telemetryItem[_DYN_DATA /* @min:%2edata */], properties, measurements);\r\n if (!isNullOrUndefined(customUndefinedValue)) {\r\n _convertPropsUndefinedToCustomDefinedValue(properties, customUndefinedValue);\r\n }\r\n var baseData = new PageViewPerformance(logger, name, url, undefined, properties, measurements, bd);\r\n var data = new Data(PageViewPerformance[_DYN_DATA_TYPE /* @min:%2edataType */], baseData);\r\n return _createEnvelope(logger, PageViewPerformance[_DYN_ENVELOPE_TYPE /* @min:%2eenvelopeType */], telemetryItem, data);\r\n}\r\nexport function TraceEnvelopeCreator(logger, telemetryItem, customUndefinedValue) {\r\n EnvelopeCreatorInit(logger, telemetryItem);\r\n var message = telemetryItem[strBaseData].message;\r\n var severityLevel = telemetryItem[strBaseData].severityLevel;\r\n var props = telemetryItem[strBaseData][strProperties] || {};\r\n var measurements = telemetryItem[strBaseData][_DYN_MEASUREMENTS /* @min:%2emeasurements */] || {};\r\n _extractPropsAndMeasurements(telemetryItem[_DYN_DATA /* @min:%2edata */], props, measurements);\r\n if (!isNullOrUndefined(customUndefinedValue)) {\r\n _convertPropsUndefinedToCustomDefinedValue(props, customUndefinedValue);\r\n }\r\n var baseData = new Trace(logger, message, severityLevel, props, measurements);\r\n var data = new Data(Trace[_DYN_DATA_TYPE /* @min:%2edataType */], baseData);\r\n return _createEnvelope(logger, Trace[_DYN_ENVELOPE_TYPE /* @min:%2eenvelopeType */], telemetryItem, data);\r\n}\r\n//# sourceMappingURL=EnvelopeCreator.js.map","/*\n * Application Insights JavaScript SDK - Channel, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nimport { __extendsFn as __extends } from \"@microsoft/applicationinsights-shims\";\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { utlGetSessionStorage, utlRemoveSessionStorage, utlSetSessionStorage } from \"@microsoft/applicationinsights-common\";\r\nimport { _throwInternal, arrForEach, arrIndexOf, dumpObj, getExceptionName, getJSON, isArray, isFunction, isNullOrUndefined, isString } from \"@microsoft/applicationinsights-core-js\";\r\nimport { _DYN_BUFFER_OVERRIDE, _DYN_CLEAR, _DYN_CLEAR_SENT, _DYN_CONCAT, _DYN_COUNT, _DYN_CREATE_NEW, _DYN_EMIT_LINE_DELIMITED_0, _DYN_ENQUEUE, _DYN_EVENTS_LIMIT_IN_MEM, _DYN_ITEM, _DYN_LENGTH, _DYN_MARK_AS_SENT, _DYN_PUSH, _DYN_STRINGIFY, _DYN__BUFFER__KEY, _DYN__GET, _DYN__MAX__BUFFER__SIZE, _DYN__SENT__BUFFER__KEY } from \"./__DynamicConstants\";\r\nvar BaseSendBuffer = /** @class */ (function () {\r\n function BaseSendBuffer(logger, config) {\r\n var _buffer = [];\r\n var _bufferFullMessageSent = false;\r\n var _maxRetryCnt = config.maxRetryCnt;\r\n this[_DYN__GET /* @min:%2e_get */] = function () {\r\n return _buffer;\r\n };\r\n this._set = function (buffer) {\r\n _buffer = buffer;\r\n return _buffer;\r\n };\r\n dynamicProto(BaseSendBuffer, this, function (_self) {\r\n _self[_DYN_ENQUEUE /* @min:%2eenqueue */] = function (payload) {\r\n if (_self[_DYN_COUNT /* @min:%2ecount */]() >= config[_DYN_EVENTS_LIMIT_IN_MEM /* @min:%2eeventsLimitInMem */]) {\r\n // sent internal log only once per page view\r\n if (!_bufferFullMessageSent) {\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 105 /* _eInternalMessageId.InMemoryStorageBufferFull */, \"Maximum in-memory buffer size reached: \" + _self[_DYN_COUNT /* @min:%2ecount */](), true);\r\n _bufferFullMessageSent = true;\r\n }\r\n return;\r\n }\r\n payload.cnt = payload.cnt || 0;\r\n // max retry is defined, and max retry is reached, do not add the payload to buffer\r\n if (!isNullOrUndefined(_maxRetryCnt)) {\r\n if (payload.cnt > _maxRetryCnt) {\r\n // TODO: add log here on dropping payloads\r\n return;\r\n }\r\n }\r\n _buffer[_DYN_PUSH /* @min:%2epush */](payload);\r\n return;\r\n };\r\n _self[_DYN_COUNT /* @min:%2ecount */] = function () {\r\n return _buffer[_DYN_LENGTH /* @min:%2elength */];\r\n };\r\n _self.size = function () {\r\n var size = _buffer[_DYN_LENGTH /* @min:%2elength */];\r\n for (var lp = 0; lp < _buffer[_DYN_LENGTH /* @min:%2elength */]; lp++) {\r\n size += (_buffer[lp].item)[_DYN_LENGTH /* @min:%2elength */];\r\n }\r\n if (!config[_DYN_EMIT_LINE_DELIMITED_0 /* @min:%2eemitLineDelimitedJson */]) {\r\n size += 2;\r\n }\r\n return size;\r\n };\r\n _self[_DYN_CLEAR /* @min:%2eclear */] = function () {\r\n _buffer = [];\r\n _bufferFullMessageSent = false;\r\n };\r\n _self.getItems = function () {\r\n return _buffer.slice(0);\r\n };\r\n _self.batchPayloads = function (payloads) {\r\n if (payloads && payloads[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n var payloadStr_1 = [];\r\n arrForEach(payloads, function (payload) {\r\n payloadStr_1[_DYN_PUSH /* @min:%2epush */](payload[_DYN_ITEM /* @min:%2eitem */]);\r\n });\r\n var batch = config[_DYN_EMIT_LINE_DELIMITED_0 /* @min:%2eemitLineDelimitedJson */] ?\r\n payloadStr_1.join(\"\\n\") :\r\n \"[\" + payloadStr_1.join(\",\") + \"]\";\r\n return batch;\r\n }\r\n return null;\r\n };\r\n _self[_DYN_CREATE_NEW /* @min:%2ecreateNew */] = function (newLogger, newConfig, canUseSessionStorage) {\r\n var items = _buffer.slice(0);\r\n newLogger = newLogger || logger;\r\n newConfig = newConfig || {};\r\n var newBuffer = !!canUseSessionStorage ? new SessionStorageSendBuffer(newLogger, newConfig) : new ArraySendBuffer(newLogger, newConfig);\r\n arrForEach(items, function (payload) {\r\n newBuffer[_DYN_ENQUEUE /* @min:%2eenqueue */](payload);\r\n });\r\n return newBuffer;\r\n };\r\n });\r\n }\r\n// Removed Stub for BaseSendBuffer.prototype.enqueue.\r\n// Removed Stub for BaseSendBuffer.prototype.count.\r\n// Removed Stub for BaseSendBuffer.prototype.size.\r\n// Removed Stub for BaseSendBuffer.prototype.clear.\r\n// Removed Stub for BaseSendBuffer.prototype.getItems.\r\n// Removed Stub for BaseSendBuffer.prototype.batchPayloads.\r\n// Removed Stub for BaseSendBuffer.prototype.createNew.\r\n // This is a workaround for an IE bug when using dynamicProto() with classes that don't have any\n // non-dynamic functions or static properties/functions when using uglify-js to minify the resulting code.\n BaseSendBuffer.__ieDyn=1;\n\n return BaseSendBuffer;\r\n}());\r\n/*\r\n * An array based send buffer.\r\n */\r\nvar ArraySendBuffer = /** @class */ (function (_super) {\r\n __extends(ArraySendBuffer, _super);\r\n function ArraySendBuffer(logger, config) {\r\n var _this = _super.call(this, logger, config) || this;\r\n dynamicProto(ArraySendBuffer, _this, function (_self, _base) {\r\n _self[_DYN_MARK_AS_SENT /* @min:%2emarkAsSent */] = function (payload) {\r\n _base[_DYN_CLEAR /* @min:%2eclear */]();\r\n };\r\n _self[_DYN_CLEAR_SENT /* @min:%2eclearSent */] = function (payload) {\r\n // not supported\r\n };\r\n });\r\n return _this;\r\n }\r\n// Removed Stub for ArraySendBuffer.prototype.markAsSent.\r\n// Removed Stub for ArraySendBuffer.prototype.clearSent.\r\n // This is a workaround for an IE bug when using dynamicProto() with classes that don't have any\n // non-dynamic functions or static properties/functions when using uglify-js to minify the resulting code.\n ArraySendBuffer.__ieDyn=1;\n\n return ArraySendBuffer;\r\n}(BaseSendBuffer));\r\nexport { ArraySendBuffer };\r\nvar PREVIOUS_KEYS = [\"AI_buffer\", \"AI_sentBuffer\"];\r\n/*\r\n * Session storage buffer holds a copy of all unsent items in the browser session storage.\r\n */\r\nvar SessionStorageSendBuffer = /** @class */ (function (_super) {\r\n __extends(SessionStorageSendBuffer, _super);\r\n function SessionStorageSendBuffer(logger, config) {\r\n var _this = _super.call(this, logger, config) || this;\r\n var _bufferFullMessageSent = false;\r\n //Note: should not use config.namePrefix directly, because it will always refers to the latest namePrefix\r\n var _namePrefix = config === null || config === void 0 ? void 0 : config.namePrefix;\r\n // TODO: add remove buffer override as well\r\n var _b = config[_DYN_BUFFER_OVERRIDE /* @min:%2ebufferOverride */] || { getItem: utlGetSessionStorage, setItem: utlSetSessionStorage }, getItem = _b.getItem, setItem = _b.setItem;\r\n var _maxRetryCnt = config.maxRetryCnt;\r\n dynamicProto(SessionStorageSendBuffer, _this, function (_self, _base) {\r\n var bufferItems = _getBuffer(SessionStorageSendBuffer[_DYN__BUFFER__KEY /* @min:%2eBUFFER_KEY */]);\r\n var itemsInSentBuffer = _getBuffer(SessionStorageSendBuffer[_DYN__SENT__BUFFER__KEY /* @min:%2eSENT_BUFFER_KEY */]);\r\n var previousItems = _getPreviousEvents();\r\n var notDeliveredItems = itemsInSentBuffer[_DYN_CONCAT /* @min:%2econcat */](previousItems);\r\n var buffer = _self._set(bufferItems[_DYN_CONCAT /* @min:%2econcat */](notDeliveredItems));\r\n // If the buffer has too many items, drop items from the end.\r\n if (buffer[_DYN_LENGTH /* @min:%2elength */] > SessionStorageSendBuffer[_DYN__MAX__BUFFER__SIZE /* @min:%2eMAX_BUFFER_SIZE */]) {\r\n buffer[_DYN_LENGTH /* @min:%2elength */] = SessionStorageSendBuffer[_DYN__MAX__BUFFER__SIZE /* @min:%2eMAX_BUFFER_SIZE */];\r\n }\r\n _setBuffer(SessionStorageSendBuffer[_DYN__SENT__BUFFER__KEY /* @min:%2eSENT_BUFFER_KEY */], []);\r\n _setBuffer(SessionStorageSendBuffer[_DYN__BUFFER__KEY /* @min:%2eBUFFER_KEY */], buffer);\r\n _self[_DYN_ENQUEUE /* @min:%2eenqueue */] = function (payload) {\r\n if (_self[_DYN_COUNT /* @min:%2ecount */]() >= SessionStorageSendBuffer[_DYN__MAX__BUFFER__SIZE /* @min:%2eMAX_BUFFER_SIZE */]) {\r\n // sent internal log only once per page view\r\n if (!_bufferFullMessageSent) {\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 67 /* _eInternalMessageId.SessionStorageBufferFull */, \"Maximum buffer size reached: \" + _self[_DYN_COUNT /* @min:%2ecount */](), true);\r\n _bufferFullMessageSent = true;\r\n }\r\n return;\r\n }\r\n payload.cnt = payload.cnt || 0;\r\n // max retry is defined, and max retry is reached, do not add the payload to buffer\r\n if (!isNullOrUndefined(_maxRetryCnt)) {\r\n if (payload.cnt > _maxRetryCnt) {\r\n // TODO: add log here on dropping payloads\r\n return;\r\n }\r\n }\r\n _base[_DYN_ENQUEUE /* @min:%2eenqueue */](payload);\r\n _setBuffer(SessionStorageSendBuffer.BUFFER_KEY, _self[_DYN__GET /* @min:%2e_get */]());\r\n };\r\n _self[_DYN_CLEAR /* @min:%2eclear */] = function () {\r\n _base[_DYN_CLEAR /* @min:%2eclear */]();\r\n _setBuffer(SessionStorageSendBuffer.BUFFER_KEY, _self[_DYN__GET /* @min:%2e_get */]());\r\n _setBuffer(SessionStorageSendBuffer[_DYN__SENT__BUFFER__KEY /* @min:%2eSENT_BUFFER_KEY */], []);\r\n _bufferFullMessageSent = false;\r\n };\r\n _self[_DYN_MARK_AS_SENT /* @min:%2emarkAsSent */] = function (payload) {\r\n _setBuffer(SessionStorageSendBuffer[_DYN__BUFFER__KEY /* @min:%2eBUFFER_KEY */], _self._set(_removePayloadsFromBuffer(payload, _self[_DYN__GET /* @min:%2e_get */]())));\r\n var sentElements = _getBuffer(SessionStorageSendBuffer[_DYN__SENT__BUFFER__KEY /* @min:%2eSENT_BUFFER_KEY */]);\r\n if (sentElements instanceof Array && payload instanceof Array) {\r\n sentElements = sentElements[_DYN_CONCAT /* @min:%2econcat */](payload);\r\n if (sentElements[_DYN_LENGTH /* @min:%2elength */] > SessionStorageSendBuffer[_DYN__MAX__BUFFER__SIZE /* @min:%2eMAX_BUFFER_SIZE */]) {\r\n // We send telemetry normally. If the SENT_BUFFER is too big we don't add new elements\r\n // until we receive a response from the backend and the buffer has free space again (see clearSent method)\r\n _throwInternal(logger, 1 /* eLoggingSeverity.CRITICAL */, 67 /* _eInternalMessageId.SessionStorageBufferFull */, \"Sent buffer reached its maximum size: \" + sentElements[_DYN_LENGTH /* @min:%2elength */], true);\r\n sentElements[_DYN_LENGTH /* @min:%2elength */] = SessionStorageSendBuffer[_DYN__MAX__BUFFER__SIZE /* @min:%2eMAX_BUFFER_SIZE */];\r\n }\r\n _setBuffer(SessionStorageSendBuffer[_DYN__SENT__BUFFER__KEY /* @min:%2eSENT_BUFFER_KEY */], sentElements);\r\n }\r\n };\r\n _self[_DYN_CLEAR_SENT /* @min:%2eclearSent */] = function (payload) {\r\n var sentElements = _getBuffer(SessionStorageSendBuffer[_DYN__SENT__BUFFER__KEY /* @min:%2eSENT_BUFFER_KEY */]);\r\n sentElements = _removePayloadsFromBuffer(payload, sentElements);\r\n _setBuffer(SessionStorageSendBuffer[_DYN__SENT__BUFFER__KEY /* @min:%2eSENT_BUFFER_KEY */], sentElements);\r\n };\r\n _self[_DYN_CREATE_NEW /* @min:%2ecreateNew */] = function (newLogger, newConfig, canUseSessionStorage) {\r\n canUseSessionStorage = !!canUseSessionStorage;\r\n var unsentItems = _self[_DYN__GET /* @min:%2e_get */]().slice(0);\r\n var sentItems = _getBuffer(SessionStorageSendBuffer[_DYN__SENT__BUFFER__KEY /* @min:%2eSENT_BUFFER_KEY */]).slice(0);\r\n newLogger = newLogger || logger;\r\n newConfig = newConfig || {};\r\n // to make sure that we do not send duplicated payloads when it is switched back to previous one\r\n _self[_DYN_CLEAR /* @min:%2eclear */]();\r\n var newBuffer = canUseSessionStorage ? new SessionStorageSendBuffer(newLogger, newConfig) : new ArraySendBuffer(newLogger, newConfig);\r\n arrForEach(unsentItems, function (payload) {\r\n newBuffer[_DYN_ENQUEUE /* @min:%2eenqueue */](payload);\r\n });\r\n if (canUseSessionStorage) {\r\n // arr buffer will clear all payloads if markAsSent() is called\r\n newBuffer[_DYN_MARK_AS_SENT /* @min:%2emarkAsSent */](sentItems);\r\n }\r\n return newBuffer;\r\n };\r\n function _removePayloadsFromBuffer(payloads, buffer) {\r\n var remaining = [];\r\n var payloadStr = [];\r\n arrForEach(payloads, function (payload) {\r\n payloadStr[_DYN_PUSH /* @min:%2epush */](payload[_DYN_ITEM /* @min:%2eitem */]);\r\n });\r\n arrForEach(buffer, function (value) {\r\n if (!isFunction(value) && arrIndexOf(payloadStr, value[_DYN_ITEM /* @min:%2eitem */]) === -1) {\r\n remaining[_DYN_PUSH /* @min:%2epush */](value);\r\n }\r\n });\r\n return remaining;\r\n }\r\n function _getBuffer(key) {\r\n var prefixedKey = key;\r\n prefixedKey = _namePrefix ? _namePrefix + \"_\" + prefixedKey : prefixedKey;\r\n return _getBufferBase(prefixedKey);\r\n }\r\n function _getBufferBase(key) {\r\n try {\r\n var bufferJson = getItem(logger, key);\r\n if (bufferJson) {\r\n var buffer_1 = getJSON().parse(bufferJson);\r\n if (isString(buffer_1)) {\r\n // When using some version prototype.js the stringify / parse cycle does not decode array's correctly\r\n buffer_1 = getJSON().parse(buffer_1);\r\n }\r\n if (buffer_1 && isArray(buffer_1)) {\r\n return buffer_1;\r\n }\r\n }\r\n }\r\n catch (e) {\r\n _throwInternal(logger, 1 /* eLoggingSeverity.CRITICAL */, 42 /* _eInternalMessageId.FailedToRestoreStorageBuffer */, \" storage key: \" + key + \", \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n return [];\r\n }\r\n function _setBuffer(key, buffer) {\r\n var prefixedKey = key;\r\n try {\r\n prefixedKey = _namePrefix ? _namePrefix + \"_\" + prefixedKey : prefixedKey;\r\n var bufferJson = JSON[_DYN_STRINGIFY /* @min:%2estringify */](buffer);\r\n setItem(logger, prefixedKey, bufferJson);\r\n }\r\n catch (e) {\r\n // if there was an error, clear the buffer\r\n // telemetry is stored in the _buffer array so we won't loose any items\r\n setItem(logger, prefixedKey, JSON[_DYN_STRINGIFY /* @min:%2estringify */]([]));\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 41 /* _eInternalMessageId.FailedToSetStorageBuffer */, \" storage key: \" + prefixedKey + \", \" + getExceptionName(e) + \". Buffer cleared\", { exception: dumpObj(e) });\r\n }\r\n }\r\n // this removes buffer with prefix+key\r\n function _getPreviousEvents() {\r\n var items = [];\r\n try {\r\n arrForEach(PREVIOUS_KEYS, function (key) {\r\n var events = _getItemsFromPreviousKey(key);\r\n items = items[_DYN_CONCAT /* @min:%2econcat */](events);\r\n // to make sure that we also transfer items from old prefixed + key buffer\r\n if (_namePrefix) {\r\n var prefixedKey = _namePrefix + \"_\" + key;\r\n var prefixEvents = _getItemsFromPreviousKey(prefixedKey);\r\n items = items[_DYN_CONCAT /* @min:%2econcat */](prefixEvents);\r\n }\r\n });\r\n return items;\r\n }\r\n catch (e) {\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 41 /* _eInternalMessageId.FailedToSetStorageBuffer */, \"Transfer events from previous buffers: \" + getExceptionName(e) + \". previous Buffer items can not be removed\", { exception: dumpObj(e) });\r\n }\r\n return [];\r\n }\r\n // transform string[] to IInternalStorageItem[]\r\n function _getItemsFromPreviousKey(key) {\r\n try {\r\n var items = _getBufferBase(key);\r\n var transFormedItems_1 = [];\r\n arrForEach(items, function (item) {\r\n var internalItem = {\r\n item: item,\r\n cnt: 0 // previous events will be default to 0 count\r\n };\r\n transFormedItems_1[_DYN_PUSH /* @min:%2epush */](internalItem);\r\n });\r\n // remove the session storage if we can add events back\r\n utlRemoveSessionStorage(logger, key);\r\n return transFormedItems_1;\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n return [];\r\n }\r\n });\r\n return _this;\r\n }\r\n// Removed Stub for SessionStorageSendBuffer.prototype.enqueue.\r\n// Removed Stub for SessionStorageSendBuffer.prototype.clear.\r\n// Removed Stub for SessionStorageSendBuffer.prototype.markAsSent.\r\n// Removed Stub for SessionStorageSendBuffer.prototype.clearSent.\r\n// Removed Stub for SessionStorageSendBuffer.prototype.createNew.\r\n var _a;\r\n _a = SessionStorageSendBuffer;\r\n SessionStorageSendBuffer.VERSION = \"_1\";\r\n SessionStorageSendBuffer.BUFFER_KEY = \"AI_buffer\" + _a.VERSION;\r\n SessionStorageSendBuffer.SENT_BUFFER_KEY = \"AI_sentBuffer\" + _a.VERSION;\r\n // Maximum number of payloads stored in the buffer. If the buffer is full, new elements will be dropped.\r\n SessionStorageSendBuffer.MAX_BUFFER_SIZE = 2000;\r\n return SessionStorageSendBuffer;\r\n}(BaseSendBuffer));\r\nexport { SessionStorageSendBuffer };\r\n//# sourceMappingURL=SendBuffer.js.map","/*\n * Application Insights JavaScript SDK - Channel, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { _throwInternal, getJSON, isArray, isFunction, isObject, objForEachKey } from \"@microsoft/applicationinsights-core-js\";\r\nimport { _DYN_LENGTH, _DYN_PUSH, _DYN_SERIALIZE, _DYN_STRINGIFY, _DYN_TO_STRING } from \"./__DynamicConstants\";\r\nvar Serializer = /** @class */ (function () {\r\n function Serializer(logger) {\r\n dynamicProto(Serializer, this, function (_self) {\r\n /**\r\n * Serializes the current object to a JSON string.\r\n */\r\n _self[_DYN_SERIALIZE /* @min:%2eserialize */] = function (input) {\r\n var output = _serializeObject(input, \"root\");\r\n try {\r\n return getJSON()[_DYN_STRINGIFY /* @min:%2estringify */](output);\r\n }\r\n catch (e) {\r\n // if serialization fails return an empty string\r\n _throwInternal(logger, 1 /* eLoggingSeverity.CRITICAL */, 48 /* _eInternalMessageId.CannotSerializeObject */, (e && isFunction(e[_DYN_TO_STRING /* @min:%2etoString */])) ? e[_DYN_TO_STRING /* @min:%2etoString */]() : \"Error serializing object\", null, true);\r\n }\r\n };\r\n function _serializeObject(source, name) {\r\n var circularReferenceCheck = \"__aiCircularRefCheck\";\r\n var output = {};\r\n if (!source) {\r\n _throwInternal(logger, 1 /* eLoggingSeverity.CRITICAL */, 48 /* _eInternalMessageId.CannotSerializeObject */, \"cannot serialize object because it is null or undefined\", { name: name }, true);\r\n return output;\r\n }\r\n if (source[circularReferenceCheck]) {\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 50 /* _eInternalMessageId.CircularReferenceDetected */, \"Circular reference detected while serializing object\", { name: name }, true);\r\n return output;\r\n }\r\n if (!source.aiDataContract) {\r\n // special case for measurements/properties/tags\r\n if (name === \"measurements\") {\r\n output = _serializeStringMap(source, \"number\", name);\r\n }\r\n else if (name === \"properties\") {\r\n output = _serializeStringMap(source, \"string\", name);\r\n }\r\n else if (name === \"tags\") {\r\n output = _serializeStringMap(source, \"string\", name);\r\n }\r\n else if (isArray(source)) {\r\n output = _serializeArray(source, name);\r\n }\r\n else {\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 49 /* _eInternalMessageId.CannotSerializeObjectNonSerializable */, \"Attempting to serialize an object which does not implement ISerializable\", { name: name }, true);\r\n try {\r\n // verify that the object can be stringified\r\n getJSON()[_DYN_STRINGIFY /* @min:%2estringify */](source);\r\n output = source;\r\n }\r\n catch (e) {\r\n // if serialization fails return an empty string\r\n _throwInternal(logger, 1 /* eLoggingSeverity.CRITICAL */, 48 /* _eInternalMessageId.CannotSerializeObject */, (e && isFunction(e[_DYN_TO_STRING /* @min:%2etoString */])) ? e[_DYN_TO_STRING /* @min:%2etoString */]() : \"Error serializing object\", null, true);\r\n }\r\n }\r\n return output;\r\n }\r\n source[circularReferenceCheck] = true;\r\n objForEachKey(source.aiDataContract, function (field, contract) {\r\n var isRequired = (isFunction(contract)) ? (contract() & 1 /* FieldType.Required */) : (contract & 1 /* FieldType.Required */);\r\n var isHidden = (isFunction(contract)) ? (contract() & 4 /* FieldType.Hidden */) : (contract & 4 /* FieldType.Hidden */);\r\n var isArray = contract & 2 /* FieldType.Array */;\r\n var isPresent = source[field] !== undefined;\r\n var isObj = isObject(source[field]) && source[field] !== null;\r\n if (isRequired && !isPresent && !isArray) {\r\n _throwInternal(logger, 1 /* eLoggingSeverity.CRITICAL */, 24 /* _eInternalMessageId.MissingRequiredFieldSpecification */, \"Missing required field specification. The field is required but not present on source\", { field: field, name: name });\r\n // If not in debug mode, continue and hope the error is permissible\r\n }\r\n else if (!isHidden) { // Don't serialize hidden fields\r\n var value = void 0;\r\n if (isObj) {\r\n if (isArray) {\r\n // special case; recurse on each object in the source array\r\n value = _serializeArray(source[field], field);\r\n }\r\n else {\r\n // recurse on the source object in this field\r\n value = _serializeObject(source[field], field);\r\n }\r\n }\r\n else {\r\n // assign the source field to the output even if undefined or required\r\n value = source[field];\r\n }\r\n // only emit this field if the value is defined\r\n if (value !== undefined) {\r\n output[field] = value;\r\n }\r\n }\r\n });\r\n delete source[circularReferenceCheck];\r\n return output;\r\n }\r\n function _serializeArray(sources, name) {\r\n var output;\r\n if (!!sources) {\r\n if (!isArray(sources)) {\r\n _throwInternal(logger, 1 /* eLoggingSeverity.CRITICAL */, 54 /* _eInternalMessageId.ItemNotInArray */, \"This field was specified as an array in the contract but the item is not an array.\\r\\n\", { name: name }, true);\r\n }\r\n else {\r\n output = [];\r\n for (var i = 0; i < sources[_DYN_LENGTH /* @min:%2elength */]; i++) {\r\n var source = sources[i];\r\n var item = _serializeObject(source, name + \"[\" + i + \"]\");\r\n output[_DYN_PUSH /* @min:%2epush */](item);\r\n }\r\n }\r\n }\r\n return output;\r\n }\r\n function _serializeStringMap(map, expectedType, name) {\r\n var output;\r\n if (map) {\r\n output = {};\r\n objForEachKey(map, function (field, value) {\r\n if (expectedType === \"string\") {\r\n if (value === undefined) {\r\n output[field] = \"undefined\";\r\n }\r\n else if (value === null) {\r\n output[field] = \"null\";\r\n }\r\n else if (!value[_DYN_TO_STRING /* @min:%2etoString */]) {\r\n output[field] = \"invalid field: toString() is not defined.\";\r\n }\r\n else {\r\n output[field] = value[_DYN_TO_STRING /* @min:%2etoString */]();\r\n }\r\n }\r\n else if (expectedType === \"number\") {\r\n if (value === undefined) {\r\n output[field] = \"undefined\";\r\n }\r\n else if (value === null) {\r\n output[field] = \"null\";\r\n }\r\n else {\r\n var num = parseFloat(value);\r\n output[field] = num;\r\n }\r\n }\r\n else {\r\n output[field] = \"invalid field: \" + name + \" is of unknown type.\";\r\n _throwInternal(logger, 1 /* eLoggingSeverity.CRITICAL */, output[field], null, true);\r\n }\r\n });\r\n }\r\n return output;\r\n }\r\n });\r\n }\r\n// Removed Stub for Serializer.prototype.serialize.\r\n // This is a workaround for an IE bug when using dynamicProto() with classes that don't have any\n // non-dynamic functions or static properties/functions when using uglify-js to minify the resulting code.\n Serializer.__ieDyn=1;\n\n return Serializer;\r\n}());\r\nexport { Serializer };\r\n//# sourceMappingURL=Serializer.js.map","/*\n * Application Insights JavaScript SDK - Channel, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { _DYN_CONCAT, _DYN_LENGTH } from \"../../__DynamicConstants\";\r\n// (Magic number) DJB algorithm can't work on shorter strings (results in poor distribution\r\nvar MIN_INPUT_LENGTH = 8;\r\nvar HashCodeScoreGenerator = /** @class */ (function () {\r\n function HashCodeScoreGenerator() {\r\n }\r\n HashCodeScoreGenerator.prototype.getHashCodeScore = function (key) {\r\n var score = this.getHashCode(key) / HashCodeScoreGenerator.INT_MAX_VALUE;\r\n return score * 100;\r\n };\r\n HashCodeScoreGenerator.prototype.getHashCode = function (input) {\r\n if (input === \"\") {\r\n return 0;\r\n }\r\n while (input[_DYN_LENGTH /* @min:%2elength */] < MIN_INPUT_LENGTH) {\r\n input = input[_DYN_CONCAT /* @min:%2econcat */](input);\r\n }\r\n // 5381 is a magic number: http://stackoverflow.com/questions/10696223/reason-for-5381-number-in-djb-hash-function\r\n var hash = 5381;\r\n for (var i = 0; i < input[_DYN_LENGTH /* @min:%2elength */]; ++i) {\r\n hash = ((hash << 5) + hash) + input.charCodeAt(i);\r\n // 'hash' is of number type which means 53 bit integer (http://www.ecma-international.org/ecma-262/6.0/#sec-ecmascript-language-types-number-type)\r\n // 'hash & hash' will keep it 32 bit integer - just to make it clearer what the result is.\r\n hash = hash & hash;\r\n }\r\n return Math.abs(hash);\r\n };\r\n // We're using 32 bit math, hence max value is (2^31 - 1)\r\n HashCodeScoreGenerator.INT_MAX_VALUE = 2147483647;\r\n return HashCodeScoreGenerator;\r\n}());\r\nexport { HashCodeScoreGenerator };\r\n//# sourceMappingURL=HashCodeScoreGenerator.js.map","/*\n * Application Insights JavaScript SDK - Channel, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { ContextTagKeys } from \"@microsoft/applicationinsights-common\";\r\nimport { _DYN_GET_HASH_CODE_SCORE, _DYN_GET_SAMPLING_SCORE, _DYN_TAGS, _DYN_TRACE_ID } from \"../../__DynamicConstants\";\r\nimport { HashCodeScoreGenerator } from \"./HashCodeScoreGenerator\";\r\nvar SamplingScoreGenerator = /** @class */ (function () {\r\n function SamplingScoreGenerator() {\r\n var _self = this;\r\n var hashCodeGenerator = new HashCodeScoreGenerator();\r\n var keys = new ContextTagKeys();\r\n _self[_DYN_GET_SAMPLING_SCORE /* @min:%2egetSamplingScore */] = function (item) {\r\n var score = 0;\r\n if (item[_DYN_TAGS /* @min:%2etags */] && item[_DYN_TAGS /* @min:%2etags */][keys.userId]) { // search in tags first, then ext\r\n score = hashCodeGenerator.getHashCodeScore(item[_DYN_TAGS /* @min:%2etags */][keys.userId]);\r\n }\r\n else if (item.ext && item.ext.user && item.ext.user.id) {\r\n score = hashCodeGenerator[_DYN_GET_HASH_CODE_SCORE /* @min:%2egetHashCodeScore */](item.ext.user.id);\r\n }\r\n else if (item[_DYN_TAGS /* @min:%2etags */] && item[_DYN_TAGS /* @min:%2etags */][keys.operationId]) { // search in tags first, then ext\r\n score = hashCodeGenerator.getHashCodeScore(item[_DYN_TAGS /* @min:%2etags */][keys.operationId]);\r\n }\r\n else if (item.ext && item.ext.telemetryTrace && item.ext.telemetryTrace[_DYN_TRACE_ID /* @min:%2etraceID */]) {\r\n score = hashCodeGenerator.getHashCodeScore(item.ext.telemetryTrace[_DYN_TRACE_ID /* @min:%2etraceID */]);\r\n }\r\n else {\r\n // tslint:disable-next-line:insecure-random\r\n score = (Math.random() * 100);\r\n }\r\n return score;\r\n };\r\n }\r\n return SamplingScoreGenerator;\r\n}());\r\nexport { SamplingScoreGenerator };\r\n//# sourceMappingURL=SamplingScoreGenerator.js.map","/*\n * Application Insights JavaScript SDK - Channel, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { Metric } from \"@microsoft/applicationinsights-common\";\r\nimport { safeGetLogger } from \"@microsoft/applicationinsights-core-js\";\r\nimport { _DYN_DATA_TYPE, _DYN_GET_SAMPLING_SCORE, _DYN_SAMPLE_RATE } from \"../__DynamicConstants\";\r\nimport { SamplingScoreGenerator } from \"./SamplingScoreGenerators/SamplingScoreGenerator\";\r\nvar Sample = /** @class */ (function () {\r\n function Sample(sampleRate, logger) {\r\n // We're using 32 bit math, hence max value is (2^31 - 1)\r\n this.INT_MAX_VALUE = 2147483647;\r\n var _logger = logger || safeGetLogger(null);\r\n if (sampleRate > 100 || sampleRate < 0) {\r\n _logger.throwInternal(2 /* eLoggingSeverity.WARNING */, 58 /* _eInternalMessageId.SampleRateOutOfRange */, \"Sampling rate is out of range (0..100). Sampling will be disabled, you may be sending too much data which may affect your AI service level.\", { samplingRate: sampleRate }, true);\r\n sampleRate = 100;\r\n }\r\n this[_DYN_SAMPLE_RATE /* @min:%2esampleRate */] = sampleRate;\r\n this.samplingScoreGenerator = new SamplingScoreGenerator();\r\n }\r\n /**\r\n * Determines if an envelope is sampled in (i.e. will be sent) or not (i.e. will be dropped).\r\n */\r\n Sample.prototype.isSampledIn = function (envelope) {\r\n var samplingPercentage = this[_DYN_SAMPLE_RATE /* @min:%2esampleRate */]; // 0 - 100\r\n var isSampledIn = false;\r\n if (samplingPercentage === null || samplingPercentage === undefined || samplingPercentage >= 100) {\r\n return true;\r\n }\r\n else if (envelope.baseType === Metric[_DYN_DATA_TYPE /* @min:%2edataType */]) {\r\n // exclude MetricData telemetry from sampling\r\n return true;\r\n }\r\n isSampledIn = this.samplingScoreGenerator[_DYN_GET_SAMPLING_SCORE /* @min:%2egetSamplingScore */](envelope) < samplingPercentage;\r\n return isSampledIn;\r\n };\r\n return Sample;\r\n}());\r\nexport { Sample };\r\n//# sourceMappingURL=Sample.js.map","/*\n * Application Insights JavaScript SDK - Channel, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nvar _a, _b;\r\nimport { __assignFn as __assign, __extendsFn as __extends } from \"@microsoft/applicationinsights-shims\";\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { BreezeChannelIdentifier, DEFAULT_BREEZE_ENDPOINT, DEFAULT_BREEZE_PATH, Event, Exception, Metric, PageView, PageViewPerformance, ProcessLegacy, RemoteDependencyData, RequestHeaders, SampleRate, Trace, createOfflineListener, isInternalApplicationInsightsEndpoint, utlCanUseSessionStorage, utlSetStoragePrefix } from \"@microsoft/applicationinsights-common\";\r\nimport { ActiveStatus, BaseTelemetryPlugin, SenderPostManager, _throwInternal, _warnToConsole, arrForEach, cfgDfBoolean, cfgDfValidate, createProcessTelemetryContext, createUniqueNamespace, dateNow, dumpObj, formatErrorMessageXdr, formatErrorMessageXhr, getExceptionName, getIEVersion, isArray, isBeaconsSupported, isFetchSupported, isNullOrUndefined, mergeEvtNamespace, objExtend, onConfigChange, parseResponse, prependTransports, runTargetUnload } from \"@microsoft/applicationinsights-core-js\";\r\nimport { isNumber, isPromiseLike, isString, isTruthy, objDeepFreeze, objDefine, scheduleTimeout } from \"@nevware21/ts-utils\";\r\nimport { DependencyEnvelopeCreator, EventEnvelopeCreator, ExceptionEnvelopeCreator, MetricEnvelopeCreator, PageViewEnvelopeCreator, PageViewPerformanceEnvelopeCreator, TraceEnvelopeCreator } from \"./EnvelopeCreator\";\r\nimport { ArraySendBuffer, SessionStorageSendBuffer } from \"./SendBuffer\";\r\nimport { Serializer } from \"./Serializer\";\r\nimport { Sample } from \"./TelemetryProcessors/Sample\";\r\nimport { _DYN_ALWAYS_USE_XHR_OVERR4, _DYN_BASE_TYPE, _DYN_BUFFER_OVERRIDE, _DYN_CLEAR, _DYN_CLEAR_SENT, _DYN_CONVERT_UNDEFINED, _DYN_COUNT, _DYN_CREATE_NEW, _DYN_CUSTOM_HEADERS, _DYN_DATA, _DYN_DIAG_LOG, _DYN_DISABLE_SEND_BEACON_7, _DYN_DISABLE_XHR, _DYN_EMIT_LINE_DELIMITED_0, _DYN_ENABLE_SEND_PROMISE, _DYN_ENABLE_SESSION_STORA5, _DYN_ENDPOINT_URL, _DYN_ENQUEUE, _DYN_EVENTS_LIMIT_IN_MEM, _DYN_EVENTS_SEND_REQUEST, _DYN_GET_SENDER_INST, _DYN_INITIALIZE, _DYN_INSTRUMENTATION_KEY, _DYN_IS_BEACON_API_DISABL3, _DYN_ITEM, _DYN_ITEMS_ACCEPTED, _DYN_ITEMS_RECEIVED, _DYN_LENGTH, _DYN_MARK_AS_SENT, _DYN_MAX_BATCH_INTERVAL, _DYN_MAX_BATCH_SIZE_IN_BY1, _DYN_ONUNLOAD_DISABLE_BEA2, _DYN_ONUNLOAD_DISABLE_FET6, _DYN_ORI_PAYLOAD, _DYN_PUSH, _DYN_SAMPLE_RATE, _DYN_SERIALIZE, _DYN_TAGS, _DYN_TRIGGER_SEND, _DYN_UNLOAD_TRANSPORTS, _DYN__BUFFER, _DYN__ON_ERROR, _DYN__ON_PARTIAL_SUCCESS, _DYN__ON_SUCCESS, _DYN__SENDER } from \"./__DynamicConstants\";\r\nvar UNDEFINED_VALUE = undefined;\r\nvar EMPTY_STR = \"\";\r\nvar FetchSyncRequestSizeLimitBytes = 65000; // approx 64kb (the current Edge, Firefox and Chrome max limit)\r\nfunction _getResponseText(xhr) {\r\n try {\r\n return xhr.responseText;\r\n }\r\n catch (e) {\r\n // Best effort, as XHR may throw while XDR wont so just ignore\r\n }\r\n return null;\r\n}\r\nfunction isOverrideFn(httpXHROverride) {\r\n return httpXHROverride && httpXHROverride.sendPOST;\r\n}\r\nvar defaultAppInsightsChannelConfig = objDeepFreeze((_a = {\r\n // Use the default value (handles empty string in the configuration)\r\n endpointUrl: cfgDfValidate(isTruthy, DEFAULT_BREEZE_ENDPOINT + DEFAULT_BREEZE_PATH)\r\n },\r\n _a[_DYN_EMIT_LINE_DELIMITED_0 /* @min:emitLineDelimitedJson */] = cfgDfBoolean(),\r\n _a[_DYN_MAX_BATCH_INTERVAL /* @min:maxBatchInterval */] = 15000,\r\n _a[_DYN_MAX_BATCH_SIZE_IN_BY1 /* @min:maxBatchSizeInBytes */] = 102400,\r\n _a.disableTelemetry = cfgDfBoolean(),\r\n _a[_DYN_ENABLE_SESSION_STORA5 /* @min:enableSessionStorageBuffer */] = cfgDfBoolean(true),\r\n _a.isRetryDisabled = cfgDfBoolean(),\r\n _a[_DYN_IS_BEACON_API_DISABL3 /* @min:isBeaconApiDisabled */] = cfgDfBoolean(true),\r\n _a[_DYN_DISABLE_SEND_BEACON_7 /* @min:disableSendBeaconSplit */] = cfgDfBoolean(true),\r\n _a[_DYN_DISABLE_XHR /* @min:disableXhr */] = cfgDfBoolean(),\r\n _a[_DYN_ONUNLOAD_DISABLE_FET6 /* @min:onunloadDisableFetch */] = cfgDfBoolean(),\r\n _a[_DYN_ONUNLOAD_DISABLE_BEA2 /* @min:onunloadDisableBeacon */] = cfgDfBoolean(),\r\n _a[_DYN_INSTRUMENTATION_KEY /* @min:instrumentationKey */] = UNDEFINED_VALUE,\r\n _a.namePrefix = UNDEFINED_VALUE,\r\n _a.samplingPercentage = cfgDfValidate(_chkSampling, 100),\r\n _a[_DYN_CUSTOM_HEADERS /* @min:customHeaders */] = UNDEFINED_VALUE,\r\n _a[_DYN_CONVERT_UNDEFINED /* @min:convertUndefined */] = UNDEFINED_VALUE,\r\n _a[_DYN_EVENTS_LIMIT_IN_MEM /* @min:eventsLimitInMem */] = 10000,\r\n _a[_DYN_BUFFER_OVERRIDE /* @min:bufferOverride */] = false,\r\n _a.httpXHROverride = { isVal: isOverrideFn, v: UNDEFINED_VALUE },\r\n _a[_DYN_ALWAYS_USE_XHR_OVERR4 /* @min:alwaysUseXhrOverride */] = cfgDfBoolean(),\r\n _a.transports = UNDEFINED_VALUE,\r\n _a.retryCodes = UNDEFINED_VALUE,\r\n _a.maxRetryCnt = { isVal: isNumber, v: 10 },\r\n _a));\r\nfunction _chkSampling(value) {\r\n return !isNaN(value) && value > 0 && value <= 100;\r\n}\r\nvar EnvelopeTypeCreator = (_b = {},\r\n _b[Event.dataType] = EventEnvelopeCreator,\r\n _b[Trace.dataType] = TraceEnvelopeCreator,\r\n _b[PageView.dataType] = PageViewEnvelopeCreator,\r\n _b[PageViewPerformance.dataType] = PageViewPerformanceEnvelopeCreator,\r\n _b[Exception.dataType] = ExceptionEnvelopeCreator,\r\n _b[Metric.dataType] = MetricEnvelopeCreator,\r\n _b[RemoteDependencyData.dataType] = DependencyEnvelopeCreator,\r\n _b);\r\nvar Sender = /** @class */ (function (_super) {\r\n __extends(Sender, _super);\r\n function Sender() {\r\n var _this = _super.call(this) || this;\r\n _this.priority = 1001;\r\n _this.identifier = BreezeChannelIdentifier;\r\n // Don't set the defaults here, set them in the _initDefaults() as this is also called during unload\r\n var _consecutiveErrors; // How many times in a row a retryable error condition has occurred.\r\n var _retryAt; // The time to retry at in milliseconds from 1970/01/01 (this makes the timer calculation easy).\r\n var _lastSend; // The time of the last send operation.\r\n var _paused; // Flag indicating that the sending should be paused\r\n var _timeoutHandle; // Handle to the timer for delayed sending of batches of data.\r\n var _serializer;\r\n var _stamp_specific_redirects;\r\n var _headers;\r\n var _syncFetchPayload = 0; // Keep track of the outstanding sync fetch payload total (as sync fetch has limits)\r\n var _syncUnloadSender; // The identified sender to use for the synchronous unload stage\r\n var _offlineListener;\r\n var _evtNamespace;\r\n var _endpointUrl;\r\n var _orgEndpointUrl;\r\n var _maxBatchSizeInBytes;\r\n var _beaconSupported;\r\n var _beaconOnUnloadSupported;\r\n var _beaconNormalSupported;\r\n var _customHeaders;\r\n var _disableTelemetry;\r\n var _instrumentationKey;\r\n var _convertUndefined;\r\n var _isRetryDisabled;\r\n var _maxBatchInterval;\r\n var _sessionStorageUsed;\r\n var _bufferOverrideUsed;\r\n var _namePrefix;\r\n var _enableSendPromise;\r\n var _alwaysUseCustomSend;\r\n var _disableXhr;\r\n var _fetchKeepAlive;\r\n var _xhrSend;\r\n var _fallbackSend;\r\n var _disableBeaconSplit;\r\n var _sendPostMgr;\r\n var _retryCodes;\r\n dynamicProto(Sender, _this, function (_self, _base) {\r\n _initDefaults();\r\n _self.pause = function () {\r\n _clearScheduledTimer();\r\n _paused = true;\r\n };\r\n _self.resume = function () {\r\n if (_paused) {\r\n _paused = false;\r\n _retryAt = null;\r\n // flush if we have exceeded the max-size already\r\n _checkMaxSize();\r\n _setupTimer();\r\n }\r\n };\r\n _self.flush = function (isAsync, callBack, sendReason) {\r\n if (isAsync === void 0) { isAsync = true; }\r\n if (!_paused) {\r\n // Clear the normal schedule timer as we are going to try and flush ASAP\r\n _clearScheduledTimer();\r\n try {\r\n return _self[_DYN_TRIGGER_SEND /* @min:%2etriggerSend */](isAsync, null, sendReason || 1 /* SendRequestReason.ManualFlush */);\r\n }\r\n catch (e) {\r\n _throwInternal(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 1 /* eLoggingSeverity.CRITICAL */, 22 /* _eInternalMessageId.FlushFailed */, \"flush failed, telemetry will not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n }\r\n };\r\n _self.onunloadFlush = function () {\r\n if (!_paused) {\r\n if (_beaconSupported || _alwaysUseCustomSend) {\r\n try {\r\n return _self[_DYN_TRIGGER_SEND /* @min:%2etriggerSend */](true, _doUnloadSend, 2 /* SendRequestReason.Unload */);\r\n }\r\n catch (e) {\r\n _throwInternal(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 1 /* eLoggingSeverity.CRITICAL */, 20 /* _eInternalMessageId.FailedToSendQueuedTelemetry */, \"failed to flush with beacon sender on page unload, telemetry will not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n }\r\n else {\r\n _self.flush(false);\r\n }\r\n }\r\n };\r\n _self.addHeader = function (name, value) {\r\n _headers[name] = value;\r\n };\r\n _self[_DYN_INITIALIZE /* @min:%2einitialize */] = function (config, core, extensions, pluginChain) {\r\n if (_self.isInitialized()) {\r\n _throwInternal(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 1 /* eLoggingSeverity.CRITICAL */, 28 /* _eInternalMessageId.SenderNotInitialized */, \"Sender is already initialized\");\r\n }\r\n _base[_DYN_INITIALIZE /* @min:%2einitialize */](config, core, extensions, pluginChain);\r\n var identifier = _self.identifier;\r\n _serializer = new Serializer(core.logger);\r\n _consecutiveErrors = 0;\r\n _retryAt = null;\r\n _lastSend = 0;\r\n _self[_DYN__SENDER /* @min:%2e_sender */] = null;\r\n _stamp_specific_redirects = 0;\r\n var diagLog = _self[_DYN_DIAG_LOG /* @min:%2ediagLog */]();\r\n _evtNamespace = mergeEvtNamespace(createUniqueNamespace(\"Sender\"), core.evtNamespace && core.evtNamespace());\r\n _offlineListener = createOfflineListener(_evtNamespace);\r\n // This function will be re-called whenever any referenced configuration is changed\r\n _self._addHook(onConfigChange(config, function (details) {\r\n var config = details.cfg;\r\n if (config.storagePrefix) {\r\n utlSetStoragePrefix(config.storagePrefix);\r\n }\r\n var ctx = createProcessTelemetryContext(null, config, core);\r\n // getExtCfg only finds undefined values from core\r\n var senderConfig = ctx.getExtCfg(identifier, defaultAppInsightsChannelConfig);\r\n var curExtUrl = senderConfig[_DYN_ENDPOINT_URL /* @min:%2eendpointUrl */];\r\n // if it is not inital change (_endpointUrl has value)\r\n // if current sender endpoint url is not changed directly\r\n // means ExtCfg is not changed directly\r\n // then we need to monitor endpoint url changes from core\r\n if (_endpointUrl && curExtUrl === _endpointUrl) {\r\n var coreUrl = config[_DYN_ENDPOINT_URL /* @min:%2eendpointUrl */];\r\n // if core endpoint url is changed\r\n if (coreUrl && coreUrl !== curExtUrl) {\r\n // and endpoint promise changes is handled by this as well\r\n senderConfig[_DYN_ENDPOINT_URL /* @min:%2eendpointUrl */] = coreUrl;\r\n }\r\n }\r\n if (isPromiseLike(senderConfig[_DYN_INSTRUMENTATION_KEY /* @min:%2einstrumentationKey */])) {\r\n // if it is promise, means the endpoint url is from core.endpointurl\r\n senderConfig[_DYN_INSTRUMENTATION_KEY /* @min:%2einstrumentationKey */] = config[_DYN_INSTRUMENTATION_KEY /* @min:%2einstrumentationKey */];\r\n }\r\n objDefine(_self, \"_senderConfig\", {\r\n g: function () {\r\n return senderConfig;\r\n }\r\n });\r\n // Only update the endpoint if the original config !== the current config\r\n // This is so any redirect endpointUrl is not overwritten\r\n if (_orgEndpointUrl !== senderConfig[_DYN_ENDPOINT_URL /* @min:%2eendpointUrl */]) {\r\n if (_orgEndpointUrl) {\r\n // TODO: add doc to remind users to flush before changing endpoint, otherwise all unsent payload will be sent to new endpoint\r\n }\r\n _endpointUrl = _orgEndpointUrl = senderConfig[_DYN_ENDPOINT_URL /* @min:%2eendpointUrl */];\r\n }\r\n // or is not string\r\n if (core.activeStatus() === ActiveStatus.PENDING) {\r\n // waiting for core promises to be resolved\r\n // NOTE: if active status is set to pending, stop sending, clear timer here\r\n _self.pause();\r\n }\r\n else if (core.activeStatus() === ActiveStatus.ACTIVE) {\r\n // core status changed from pending to other status\r\n _self.resume();\r\n }\r\n if (_customHeaders && _customHeaders !== senderConfig[_DYN_CUSTOM_HEADERS /* @min:%2ecustomHeaders */]) {\r\n // Removing any previously defined custom headers as they have changed\r\n arrForEach(_customHeaders, function (customHeader) {\r\n delete _headers[customHeader.header];\r\n });\r\n }\r\n _maxBatchSizeInBytes = senderConfig[_DYN_MAX_BATCH_SIZE_IN_BY1 /* @min:%2emaxBatchSizeInBytes */];\r\n _beaconSupported = (senderConfig[_DYN_ONUNLOAD_DISABLE_BEA2 /* @min:%2eonunloadDisableBeacon */] === false || senderConfig[_DYN_IS_BEACON_API_DISABL3 /* @min:%2eisBeaconApiDisabled */] === false) && isBeaconsSupported();\r\n _beaconOnUnloadSupported = senderConfig[_DYN_ONUNLOAD_DISABLE_BEA2 /* @min:%2eonunloadDisableBeacon */] === false && isBeaconsSupported();\r\n _beaconNormalSupported = senderConfig[_DYN_IS_BEACON_API_DISABL3 /* @min:%2eisBeaconApiDisabled */] === false && isBeaconsSupported();\r\n _alwaysUseCustomSend = senderConfig[_DYN_ALWAYS_USE_XHR_OVERR4 /* @min:%2ealwaysUseXhrOverride */];\r\n _disableXhr = !!senderConfig[_DYN_DISABLE_XHR /* @min:%2edisableXhr */];\r\n _retryCodes = senderConfig.retryCodes;\r\n var bufferOverride = senderConfig[_DYN_BUFFER_OVERRIDE /* @min:%2ebufferOverride */];\r\n var canUseSessionStorage = !!senderConfig[_DYN_ENABLE_SESSION_STORA5 /* @min:%2eenableSessionStorageBuffer */] &&\r\n (!!bufferOverride || utlCanUseSessionStorage());\r\n var namePrefix = senderConfig.namePrefix;\r\n //Note: emitLineDelimitedJson and eventsLimitInMem is directly accessed via config in senderBuffer\r\n //Therefore, if canUseSessionStorage is not changed, we do not need to re initialize a new one\r\n var shouldUpdate = (canUseSessionStorage !== _sessionStorageUsed)\r\n || (canUseSessionStorage && (_namePrefix !== namePrefix)) // prefixName is only used in session storage\r\n || (canUseSessionStorage && (_bufferOverrideUsed !== bufferOverride));\r\n if (_self[_DYN__BUFFER /* @min:%2e_buffer */]) {\r\n // case1 (Pre and Now enableSessionStorageBuffer settings are same)\r\n // if namePrefix changes, transfer current buffer to new buffer\r\n // else no action needed\r\n //case2 (Pre and Now enableSessionStorageBuffer settings are changed)\r\n // transfer current buffer to new buffer\r\n if (shouldUpdate) {\r\n try {\r\n _self._buffer = _self._buffer[_DYN_CREATE_NEW /* @min:%2ecreateNew */](diagLog, senderConfig, canUseSessionStorage);\r\n }\r\n catch (e) {\r\n _throwInternal(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 1 /* eLoggingSeverity.CRITICAL */, 12 /* _eInternalMessageId.FailedAddingTelemetryToBuffer */, \"failed to transfer telemetry to different buffer storage, telemetry will be lost: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n }\r\n _checkMaxSize();\r\n }\r\n else {\r\n _self[_DYN__BUFFER /* @min:%2e_buffer */] = canUseSessionStorage\r\n ? new SessionStorageSendBuffer(diagLog, senderConfig) : new ArraySendBuffer(diagLog, senderConfig);\r\n }\r\n _namePrefix = namePrefix;\r\n _sessionStorageUsed = canUseSessionStorage;\r\n _bufferOverrideUsed = bufferOverride;\r\n _fetchKeepAlive = !senderConfig[_DYN_ONUNLOAD_DISABLE_FET6 /* @min:%2eonunloadDisableFetch */] && isFetchSupported(true);\r\n _disableBeaconSplit = !!senderConfig[_DYN_DISABLE_SEND_BEACON_7 /* @min:%2edisableSendBeaconSplit */];\r\n _self._sample = new Sample(senderConfig.samplingPercentage, diagLog);\r\n _instrumentationKey = senderConfig[_DYN_INSTRUMENTATION_KEY /* @min:%2einstrumentationKey */];\r\n if (!isPromiseLike(_instrumentationKey) && !_validateInstrumentationKey(_instrumentationKey, config)) {\r\n _throwInternal(diagLog, 1 /* eLoggingSeverity.CRITICAL */, 100 /* _eInternalMessageId.InvalidInstrumentationKey */, \"Invalid Instrumentation key \" + _instrumentationKey);\r\n }\r\n _customHeaders = senderConfig[_DYN_CUSTOM_HEADERS /* @min:%2ecustomHeaders */];\r\n if (isString(_endpointUrl) && !isInternalApplicationInsightsEndpoint(_endpointUrl) && _customHeaders && _customHeaders[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n arrForEach(_customHeaders, function (customHeader) {\r\n _this.addHeader(customHeader.header, customHeader.value);\r\n });\r\n }\r\n else {\r\n _customHeaders = null;\r\n }\r\n _enableSendPromise = senderConfig[_DYN_ENABLE_SEND_PROMISE /* @min:%2eenableSendPromise */];\r\n var sendPostConfig = _getSendPostMgrConfig();\r\n // only init it once\r\n if (!_sendPostMgr) {\r\n _sendPostMgr = new SenderPostManager();\r\n _sendPostMgr[_DYN_INITIALIZE /* @min:%2einitialize */](sendPostConfig, diagLog);\r\n }\r\n else {\r\n _sendPostMgr.SetConfig(sendPostConfig);\r\n }\r\n var customInterface = senderConfig.httpXHROverride;\r\n var httpInterface = null;\r\n var syncInterface = null;\r\n // User requested transport(s) values > Beacon > Fetch > XHR\r\n // Beacon would be filtered out if user has set disableBeaconApi to true at _getSenderInterface\r\n var theTransports = prependTransports([3 /* TransportType.Beacon */, 1 /* TransportType.Xhr */, 2 /* TransportType.Fetch */], senderConfig.transports);\r\n httpInterface = _sendPostMgr && _sendPostMgr[_DYN_GET_SENDER_INST /* @min:%2egetSenderInst */](theTransports, false);\r\n var xhrInterface = _sendPostMgr && _sendPostMgr.getFallbackInst();\r\n _xhrSend = function (payload, isAsync) {\r\n return _doSend(xhrInterface, payload, isAsync);\r\n };\r\n _fallbackSend = function (payload, isAsync) {\r\n return _doSend(xhrInterface, payload, isAsync, false);\r\n };\r\n httpInterface = _alwaysUseCustomSend ? customInterface : (httpInterface || customInterface || xhrInterface);\r\n _self[_DYN__SENDER /* @min:%2e_sender */] = function (payload, isAsync) {\r\n return _doSend(httpInterface, payload, isAsync);\r\n };\r\n if (_fetchKeepAlive) {\r\n // Try and use the fetch with keepalive\r\n _syncUnloadSender = _fetchKeepAliveSender;\r\n }\r\n var syncTransports = prependTransports([3 /* TransportType.Beacon */, 1 /* TransportType.Xhr */], senderConfig[_DYN_UNLOAD_TRANSPORTS /* @min:%2eunloadTransports */]);\r\n if (!_fetchKeepAlive) {\r\n // remove fetch from theTransports\r\n syncTransports = syncTransports.filter(function (transport) { return transport !== 2 /* TransportType.Fetch */; });\r\n }\r\n syncInterface = _sendPostMgr && _sendPostMgr[_DYN_GET_SENDER_INST /* @min:%2egetSenderInst */](syncTransports, true);\r\n syncInterface = _alwaysUseCustomSend ? customInterface : (syncInterface || customInterface);\r\n if ((_alwaysUseCustomSend || senderConfig[_DYN_UNLOAD_TRANSPORTS /* @min:%2eunloadTransports */] || !_syncUnloadSender) && syncInterface) {\r\n _syncUnloadSender = function (payload, isAsync) {\r\n return _doSend(syncInterface, payload, isAsync);\r\n };\r\n }\r\n if (!_syncUnloadSender) {\r\n _syncUnloadSender = _xhrSend;\r\n }\r\n _disableTelemetry = senderConfig.disableTelemetry;\r\n _convertUndefined = senderConfig[_DYN_CONVERT_UNDEFINED /* @min:%2econvertUndefined */] || UNDEFINED_VALUE;\r\n _isRetryDisabled = senderConfig.isRetryDisabled;\r\n _maxBatchInterval = senderConfig[_DYN_MAX_BATCH_INTERVAL /* @min:%2emaxBatchInterval */];\r\n }));\r\n };\r\n _self.processTelemetry = function (telemetryItem, itemCtx) {\r\n var _a;\r\n itemCtx = _self._getTelCtx(itemCtx);\r\n var diagLogger = itemCtx[_DYN_DIAG_LOG /* @min:%2ediagLog */]();\r\n try {\r\n var isValidate = _validate(telemetryItem, diagLogger);\r\n if (!isValidate) {\r\n return;\r\n }\r\n var aiEnvelope = _getEnvelope(telemetryItem, diagLogger);\r\n if (!aiEnvelope) {\r\n return;\r\n }\r\n // check if the incoming payload is too large, truncate if necessary\r\n var payload = _serializer[_DYN_SERIALIZE /* @min:%2eserialize */](aiEnvelope);\r\n // flush if we would exceed the max-size limit by adding this item\r\n var buffer = _self[_DYN__BUFFER /* @min:%2e_buffer */];\r\n _checkMaxSize(payload);\r\n var payloadItem = (_a = {},\r\n _a[_DYN_ITEM /* @min:item */] = payload,\r\n _a.cnt = 0 // inital cnt will always be 0\r\n ,\r\n _a);\r\n // enqueue the payload\r\n buffer[_DYN_ENQUEUE /* @min:%2eenqueue */](payloadItem);\r\n // ensure an invocation timeout is set\r\n _setupTimer();\r\n }\r\n catch (e) {\r\n _throwInternal(diagLogger, 2 /* eLoggingSeverity.WARNING */, 12 /* _eInternalMessageId.FailedAddingTelemetryToBuffer */, \"Failed adding telemetry to the sender's buffer, some telemetry will be lost: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n // hand off the telemetry item to the next plugin\r\n _self.processNext(telemetryItem, itemCtx);\r\n };\r\n _self.isCompletelyIdle = function () {\r\n return !_paused && _syncFetchPayload === 0 && _self._buffer[_DYN_COUNT /* @min:%2ecount */]() === 0;\r\n };\r\n _self.getOfflineListener = function () {\r\n return _offlineListener;\r\n };\r\n /**\r\n * xhr state changes\r\n */\r\n _self._xhrReadyStateChange = function (xhr, payload, countOfItemsInPayload) {\r\n // since version 3.2.0, this function is no-op\r\n if (_isStringArr(payload)) {\r\n return;\r\n }\r\n return _xhrReadyStateChange(xhr, payload, countOfItemsInPayload);\r\n };\r\n /**\r\n * Immediately send buffered data\r\n * @param async - {boolean} - Indicates if the events should be sent asynchronously\r\n * @param forcedSender - {SenderFunction} - Indicates the forcedSender, undefined if not passed\r\n */\r\n _self[_DYN_TRIGGER_SEND /* @min:%2etriggerSend */] = function (async, forcedSender, sendReason) {\r\n if (async === void 0) { async = true; }\r\n var result;\r\n if (!_paused) {\r\n try {\r\n var buffer = _self[_DYN__BUFFER /* @min:%2e_buffer */];\r\n // Send data only if disableTelemetry is false\r\n if (!_disableTelemetry) {\r\n if (buffer[_DYN_COUNT /* @min:%2ecount */]() > 0) {\r\n var payload = buffer.getItems();\r\n _notifySendRequest(sendReason || 0 /* SendRequestReason.Undefined */, async);\r\n // invoke send\r\n if (forcedSender) {\r\n result = forcedSender.call(_self, payload, async);\r\n }\r\n else {\r\n result = _self[_DYN__SENDER /* @min:%2e_sender */](payload, async);\r\n }\r\n }\r\n // update lastSend time to enable throttling\r\n _lastSend = +new Date;\r\n }\r\n else {\r\n buffer[_DYN_CLEAR /* @min:%2eclear */]();\r\n }\r\n _clearScheduledTimer();\r\n }\r\n catch (e) {\r\n /* Ignore this error for IE under v10 */\r\n var ieVer = getIEVersion();\r\n if (!ieVer || ieVer > 9) {\r\n _throwInternal(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 1 /* eLoggingSeverity.CRITICAL */, 40 /* _eInternalMessageId.TransmissionFailed */, \"Telemetry transmission failed, some telemetry will be lost: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n }\r\n }\r\n return result;\r\n };\r\n _self.getOfflineSupport = function () {\r\n var _a;\r\n return _a = {\r\n getUrl: function () {\r\n return _endpointUrl;\r\n },\r\n createPayload: _createPayload\r\n },\r\n _a[_DYN_SERIALIZE /* @min:serialize */] = _serialize,\r\n _a.batch = _batch,\r\n _a.shouldProcess = function (evt) {\r\n return !!_validate(evt);\r\n },\r\n _a;\r\n };\r\n _self._doTeardown = function (unloadCtx, unloadState) {\r\n _self.onunloadFlush();\r\n runTargetUnload(_offlineListener, false);\r\n _initDefaults();\r\n };\r\n /**\r\n * error handler\r\n */\r\n _self[_DYN__ON_ERROR /* @min:%2e_onError */] = function (payload, message, event) {\r\n // since version 3.1.3, string[] is no-op\r\n if (_isStringArr(payload)) {\r\n return;\r\n }\r\n return _onError(payload, message, event);\r\n };\r\n /**\r\n * partial success handler\r\n */\r\n _self[_DYN__ON_PARTIAL_SUCCESS /* @min:%2e_onPartialSuccess */] = function (payload, results) {\r\n // since version 3.1.3, string[] is no-op\r\n if (_isStringArr(payload)) {\r\n return;\r\n }\r\n return _onPartialSuccess(payload, results);\r\n };\r\n /**\r\n * success handler\r\n */\r\n _self[_DYN__ON_SUCCESS /* @min:%2e_onSuccess */] = function (payload, countOfItemsInPayload) {\r\n // since version 3.1.3, string[] is no-op\r\n if (_isStringArr(payload)) {\r\n return;\r\n }\r\n return _onSuccess(payload, countOfItemsInPayload);\r\n //_self._buffer && _self._buffer.clearSent(payload);\r\n };\r\n /**\r\n * xdr state changes\r\n */\r\n _self._xdrOnLoad = function (xdr, payload) {\r\n // since version 3.1.3, string[] is no-op\r\n if (_isStringArr(payload)) {\r\n return;\r\n }\r\n return _xdrOnLoad(xdr, payload);\r\n };\r\n function _xdrOnLoad(xdr, payload) {\r\n var responseText = _getResponseText(xdr);\r\n if (xdr && (responseText + \"\" === \"200\" || responseText === \"\")) {\r\n _consecutiveErrors = 0;\r\n _self[_DYN__ON_SUCCESS /* @min:%2e_onSuccess */](payload, 0);\r\n }\r\n else {\r\n var results = parseResponse(responseText);\r\n if (results && results[_DYN_ITEMS_RECEIVED /* @min:%2eitemsReceived */] && results[_DYN_ITEMS_RECEIVED /* @min:%2eitemsReceived */] > results[_DYN_ITEMS_ACCEPTED /* @min:%2eitemsAccepted */]\r\n && !_isRetryDisabled) {\r\n _self[_DYN__ON_PARTIAL_SUCCESS /* @min:%2e_onPartialSuccess */](payload, results);\r\n }\r\n else {\r\n _self[_DYN__ON_ERROR /* @min:%2e_onError */](payload, formatErrorMessageXdr(xdr));\r\n }\r\n }\r\n }\r\n function _getSendPostMgrConfig() {\r\n var _a;\r\n try {\r\n var onCompleteFuncs = {\r\n xdrOnComplete: function (xdr, oncomplete, payload) {\r\n var data = _getPayloadArr(payload);\r\n if (!data) {\r\n return;\r\n }\r\n return _xdrOnLoad(xdr, data);\r\n },\r\n fetchOnComplete: function (response, onComplete, resValue, payload) {\r\n var data = _getPayloadArr(payload);\r\n if (!data) {\r\n return;\r\n }\r\n return _checkResponsStatus(response.status, data, response.url, data[_DYN_LENGTH /* @min:%2elength */], response.statusText, resValue || \"\");\r\n },\r\n xhrOnComplete: function (request, oncomplete, payload) {\r\n var data = _getPayloadArr(payload);\r\n if (!data) {\r\n return;\r\n }\r\n return _xhrReadyStateChange(request, data, data[_DYN_LENGTH /* @min:%2elength */]);\r\n },\r\n beaconOnRetry: function (data, onComplete, canSend) {\r\n return _onBeaconRetry(data, onComplete, canSend);\r\n }\r\n };\r\n var config = (_a = {},\r\n _a[_DYN_ENABLE_SEND_PROMISE /* @min:enableSendPromise */] = _enableSendPromise,\r\n _a.isOneDs = false,\r\n _a.disableCredentials = false,\r\n _a[_DYN_DISABLE_XHR /* @min:disableXhr */] = _disableXhr,\r\n _a.disableBeacon = !_beaconNormalSupported,\r\n _a.disableBeaconSync = !_beaconOnUnloadSupported,\r\n _a.senderOnCompleteCallBack = onCompleteFuncs,\r\n _a);\r\n return config;\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n return null;\r\n }\r\n /**\r\n * xhr state changes\r\n */\r\n function _xhrReadyStateChange(xhr, payload, countOfItemsInPayload) {\r\n if (xhr.readyState === 4) {\r\n _checkResponsStatus(xhr.status, payload, xhr.responseURL, countOfItemsInPayload, formatErrorMessageXhr(xhr), _getResponseText(xhr) || xhr.response);\r\n }\r\n }\r\n /**\r\n * error handler\r\n */\r\n function _onError(payload, message, event) {\r\n _throwInternal(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 2 /* eLoggingSeverity.WARNING */, 26 /* _eInternalMessageId.OnError */, \"Failed to send telemetry.\", { message: message });\r\n _self._buffer && _self._buffer[_DYN_CLEAR_SENT /* @min:%2eclearSent */](payload);\r\n }\r\n /**\r\n * partial success handler\r\n */\r\n function _onPartialSuccess(payload, results) {\r\n var failed = [];\r\n var retry = [];\r\n // Iterate through the reversed array of errors so that splicing doesn't have invalid indexes after the first item.\r\n var errors = results.errors.reverse();\r\n for (var _i = 0, errors_1 = errors; _i < errors_1.length; _i++) {\r\n var error = errors_1[_i];\r\n var extracted = payload.splice(error.index, 1)[0];\r\n if (_isRetriable(error.statusCode)) {\r\n retry[_DYN_PUSH /* @min:%2epush */](extracted);\r\n }\r\n else {\r\n // All other errors, including: 402 (Monthly quota exceeded) and 439 (Too many requests and refresh cache).\r\n failed[_DYN_PUSH /* @min:%2epush */](extracted);\r\n }\r\n }\r\n if (payload[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n _self[_DYN__ON_SUCCESS /* @min:%2e_onSuccess */](payload, results[_DYN_ITEMS_ACCEPTED /* @min:%2eitemsAccepted */]);\r\n }\r\n if (failed[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n _self[_DYN__ON_ERROR /* @min:%2e_onError */](failed, formatErrorMessageXhr(null, [\"partial success\", results[_DYN_ITEMS_ACCEPTED /* @min:%2eitemsAccepted */], \"of\", results.itemsReceived].join(\" \")));\r\n }\r\n if (retry[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n _resendPayload(retry);\r\n _throwInternal(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 2 /* eLoggingSeverity.WARNING */, 40 /* _eInternalMessageId.TransmissionFailed */, \"Partial success. \" +\r\n \"Delivered: \" + payload[_DYN_LENGTH /* @min:%2elength */] + \", Failed: \" + failed[_DYN_LENGTH /* @min:%2elength */] +\r\n \". Will retry to send \" + retry[_DYN_LENGTH /* @min:%2elength */] + \" our of \" + results[_DYN_ITEMS_RECEIVED /* @min:%2eitemsReceived */] + \" items\");\r\n }\r\n }\r\n /**\r\n * success handler\r\n */\r\n function _onSuccess(payload, countOfItemsInPayload) {\r\n _self._buffer && _self._buffer[_DYN_CLEAR_SENT /* @min:%2eclearSent */](payload);\r\n }\r\n function _getPayloadArr(payload) {\r\n try {\r\n if (payload) {\r\n var internalPayload = payload;\r\n var arr = internalPayload[_DYN_ORI_PAYLOAD /* @min:%2eoriPayload */];\r\n if (arr && arr[_DYN_LENGTH /* @min:%2elength */]) {\r\n return arr;\r\n }\r\n return null;\r\n }\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n return null;\r\n }\r\n function _validate(telemetryItem, diagLogger) {\r\n if (_disableTelemetry) {\r\n // Do not send/save data\r\n return false;\r\n }\r\n // validate input\r\n if (!telemetryItem) {\r\n diagLogger && _throwInternal(diagLogger, 1 /* eLoggingSeverity.CRITICAL */, 7 /* _eInternalMessageId.CannotSendEmptyTelemetry */, \"Cannot send empty telemetry\");\r\n return false;\r\n }\r\n // validate event\r\n if (telemetryItem.baseData && !telemetryItem[_DYN_BASE_TYPE /* @min:%2ebaseType */]) {\r\n diagLogger && _throwInternal(diagLogger, 1 /* eLoggingSeverity.CRITICAL */, 70 /* _eInternalMessageId.InvalidEvent */, \"Cannot send telemetry without baseData and baseType\");\r\n return false;\r\n }\r\n if (!telemetryItem[_DYN_BASE_TYPE /* @min:%2ebaseType */]) {\r\n // Default\r\n telemetryItem[_DYN_BASE_TYPE /* @min:%2ebaseType */] = \"EventData\";\r\n }\r\n // ensure a sender was constructed\r\n if (!_self[_DYN__SENDER /* @min:%2e_sender */]) {\r\n diagLogger && _throwInternal(diagLogger, 1 /* eLoggingSeverity.CRITICAL */, 28 /* _eInternalMessageId.SenderNotInitialized */, \"Sender was not initialized\");\r\n return false;\r\n }\r\n // check if this item should be sampled in, else add sampleRate tag\r\n if (!_isSampledIn(telemetryItem)) {\r\n // Item is sampled out, do not send it\r\n diagLogger && _throwInternal(diagLogger, 2 /* eLoggingSeverity.WARNING */, 33 /* _eInternalMessageId.TelemetrySampledAndNotSent */, \"Telemetry item was sampled out and not sent\", { SampleRate: _self._sample[_DYN_SAMPLE_RATE /* @min:%2esampleRate */] });\r\n return false;\r\n }\r\n else {\r\n telemetryItem[SampleRate] = _self._sample[_DYN_SAMPLE_RATE /* @min:%2esampleRate */];\r\n }\r\n return true;\r\n }\r\n function _getEnvelope(telemetryItem, diagLogger) {\r\n // construct an envelope that Application Insights endpoint can understand\r\n // if ikey of telemetry is provided and not empty, envelope will use this iKey instead of senderConfig iKey\r\n var defaultEnvelopeIkey = telemetryItem.iKey || _instrumentationKey;\r\n var aiEnvelope = Sender.constructEnvelope(telemetryItem, defaultEnvelopeIkey, diagLogger, _convertUndefined);\r\n if (!aiEnvelope) {\r\n _throwInternal(diagLogger, 1 /* eLoggingSeverity.CRITICAL */, 47 /* _eInternalMessageId.CreateEnvelopeError */, \"Unable to create an AppInsights envelope\");\r\n return;\r\n }\r\n var doNotSendItem = false;\r\n // this is for running in legacy mode, where customer may already have a custom initializer present\r\n if (telemetryItem[_DYN_TAGS /* @min:%2etags */] && telemetryItem[_DYN_TAGS /* @min:%2etags */][ProcessLegacy]) {\r\n arrForEach(telemetryItem[_DYN_TAGS /* @min:%2etags */][ProcessLegacy], function (callBack) {\r\n try {\r\n if (callBack && callBack(aiEnvelope) === false) {\r\n doNotSendItem = true;\r\n _warnToConsole(diagLogger, \"Telemetry processor check returns false\");\r\n }\r\n }\r\n catch (e) {\r\n // log error but dont stop executing rest of the telemetry initializers\r\n // doNotSendItem = true;\r\n _throwInternal(diagLogger, 1 /* eLoggingSeverity.CRITICAL */, 64 /* _eInternalMessageId.TelemetryInitializerFailed */, \"One of telemetry initializers failed, telemetry item will not be sent: \" + getExceptionName(e), { exception: dumpObj(e) }, true);\r\n }\r\n });\r\n delete telemetryItem[_DYN_TAGS /* @min:%2etags */][ProcessLegacy];\r\n }\r\n if (doNotSendItem) {\r\n return; // do not send, no need to execute next plugin\r\n }\r\n return aiEnvelope;\r\n }\r\n function _serialize(item) {\r\n var rlt = EMPTY_STR;\r\n var diagLogger = _self[_DYN_DIAG_LOG /* @min:%2ediagLog */]();\r\n try {\r\n var valid = _validate(item, diagLogger);\r\n var envelope = null;\r\n if (valid) {\r\n envelope = _getEnvelope(item, diagLogger);\r\n }\r\n if (envelope) {\r\n rlt = _serializer[_DYN_SERIALIZE /* @min:%2eserialize */](envelope);\r\n }\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n return rlt;\r\n }\r\n function _batch(arr) {\r\n var rlt = EMPTY_STR;\r\n if (arr && arr[_DYN_LENGTH /* @min:%2elength */]) {\r\n rlt = \"[\" + arr.join(\",\") + \"]\";\r\n }\r\n return rlt;\r\n }\r\n function _createPayload(data) {\r\n var _a;\r\n var headers = _getHeaders();\r\n return _a = {\r\n urlString: _endpointUrl\r\n },\r\n _a[_DYN_DATA /* @min:data */] = data,\r\n _a.headers = headers,\r\n _a;\r\n }\r\n function _isSampledIn(envelope) {\r\n return _self._sample.isSampledIn(envelope);\r\n }\r\n function _getOnComplete(payload, status, headers, response) {\r\n // ***********************************************************************************************\r\n //TODO: handle other status codes\r\n if (status === 200 && payload) {\r\n _self._onSuccess(payload, payload[_DYN_LENGTH /* @min:%2elength */]);\r\n }\r\n else {\r\n response && _self[_DYN__ON_ERROR /* @min:%2e_onError */](payload, response);\r\n }\r\n }\r\n function _doSend(sendInterface, payload, isAsync, markAsSent) {\r\n if (markAsSent === void 0) { markAsSent = true; }\r\n var onComplete = function (status, headers, response) {\r\n return _getOnComplete(payload, status, headers, response);\r\n };\r\n var payloadData = _getPayload(payload);\r\n var sendPostFunc = sendInterface && sendInterface.sendPOST;\r\n if (sendPostFunc && payloadData) {\r\n // ***********************************************************************************************\r\n // mark payload as sent at the beginning of calling each send function\r\n if (markAsSent) {\r\n _self._buffer[_DYN_MARK_AS_SENT /* @min:%2emarkAsSent */](payload);\r\n }\r\n return sendPostFunc(payloadData, onComplete, !isAsync);\r\n }\r\n return null;\r\n }\r\n function _getPayload(payload) {\r\n var _a;\r\n if (isArray(payload) && payload[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n var batch = _self[_DYN__BUFFER /* @min:%2e_buffer */].batchPayloads(payload);\r\n var headers = _getHeaders();\r\n var payloadData = (_a = {},\r\n _a[_DYN_DATA /* @min:data */] = batch,\r\n _a.urlString = _endpointUrl,\r\n _a.headers = headers,\r\n _a.disableXhrSync = _disableXhr,\r\n _a.disableFetchKeepAlive = !_fetchKeepAlive,\r\n _a[_DYN_ORI_PAYLOAD /* @min:oriPayload */] = payload,\r\n _a);\r\n return payloadData;\r\n }\r\n return null;\r\n }\r\n function _getHeaders() {\r\n try {\r\n var headers = _headers || {};\r\n if (isInternalApplicationInsightsEndpoint(_endpointUrl)) {\r\n headers[RequestHeaders[6 /* eRequestHeaders.sdkContextHeader */]] = RequestHeaders[7 /* eRequestHeaders.sdkContextHeaderAppIdRequest */];\r\n }\r\n return headers;\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n return null;\r\n }\r\n function _checkMaxSize(incomingPayload) {\r\n var incomingSize = incomingPayload ? incomingPayload[_DYN_LENGTH /* @min:%2elength */] : 0;\r\n if ((_self[_DYN__BUFFER /* @min:%2e_buffer */].size() + incomingSize) > _maxBatchSizeInBytes) {\r\n if (!_offlineListener || _offlineListener.isOnline()) { // only trigger send when currently online\r\n _self[_DYN_TRIGGER_SEND /* @min:%2etriggerSend */](true, null, 10 /* SendRequestReason.MaxBatchSize */);\r\n }\r\n return true;\r\n }\r\n return false;\r\n }\r\n function _checkResponsStatus(status, payload, responseUrl, countOfItemsInPayload, errorMessage, res) {\r\n var response = null;\r\n if (!_self._appId) {\r\n response = parseResponse(res);\r\n if (response && response.appId) {\r\n _self._appId = response.appId;\r\n }\r\n }\r\n if ((status < 200 || status >= 300) && status !== 0) {\r\n // Update End Point url if permanent redirect or moved permanently\r\n // Updates the end point url before retry\r\n if (status === 301 || status === 307 || status === 308) {\r\n if (!_checkAndUpdateEndPointUrl(responseUrl)) {\r\n _self[_DYN__ON_ERROR /* @min:%2e_onError */](payload, errorMessage);\r\n return;\r\n }\r\n }\r\n if (_offlineListener && !_offlineListener.isOnline()) { // offline\r\n // Note: Don't check for status == 0, since adblock gives this code\r\n if (!_isRetryDisabled) {\r\n var offlineBackOffMultiplier = 10; // arbritrary number\r\n _resendPayload(payload, offlineBackOffMultiplier);\r\n _throwInternal(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 2 /* eLoggingSeverity.WARNING */, 40 /* _eInternalMessageId.TransmissionFailed */, \". Offline - Response Code: \".concat(status, \". Offline status: \").concat(!_offlineListener.isOnline(), \". Will retry to send \").concat(payload.length, \" items.\"));\r\n }\r\n return;\r\n }\r\n if (!_isRetryDisabled && _isRetriable(status)) {\r\n _resendPayload(payload);\r\n _throwInternal(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 2 /* eLoggingSeverity.WARNING */, 40 /* _eInternalMessageId.TransmissionFailed */, \". \" +\r\n \"Response code \" + status + \". Will retry to send \" + payload[_DYN_LENGTH /* @min:%2elength */] + \" items.\");\r\n }\r\n else {\r\n _self[_DYN__ON_ERROR /* @min:%2e_onError */](payload, errorMessage);\r\n }\r\n }\r\n else {\r\n // check if the xhr's responseURL or fetch's response.url is same as endpoint url\r\n // TODO after 10 redirects force send telemetry with 'redirect=false' as query parameter.\r\n _checkAndUpdateEndPointUrl(responseUrl);\r\n if (status === 206) {\r\n if (!response) {\r\n response = parseResponse(res);\r\n }\r\n if (response && !_isRetryDisabled) {\r\n _self[_DYN__ON_PARTIAL_SUCCESS /* @min:%2e_onPartialSuccess */](payload, response);\r\n }\r\n else {\r\n _self[_DYN__ON_ERROR /* @min:%2e_onError */](payload, errorMessage);\r\n }\r\n }\r\n else {\r\n _consecutiveErrors = 0;\r\n _self[_DYN__ON_SUCCESS /* @min:%2e_onSuccess */](payload, countOfItemsInPayload);\r\n }\r\n }\r\n }\r\n function _checkAndUpdateEndPointUrl(responseUrl) {\r\n // Maximum stamp specific redirects allowed(uncomment this when breeze is ready with not allowing redirects feature)\r\n if (_stamp_specific_redirects >= 10) {\r\n // _self._senderConfig.endpointUrl = () => Sender._getDefaultAppInsightsChannelConfig().endpointUrl()+\"/?redirect=false\";\r\n // _stamp_specific_redirects = 0;\r\n return false;\r\n }\r\n if (!isNullOrUndefined(responseUrl) && responseUrl !== \"\") {\r\n if (responseUrl !== _endpointUrl) {\r\n _endpointUrl = responseUrl;\r\n ++_stamp_specific_redirects;\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n function _doUnloadSend(payload, isAsync) {\r\n if (_syncUnloadSender) {\r\n // We are unloading so always call the sender with sync set to false\r\n _syncUnloadSender(payload, false);\r\n }\r\n else {\r\n // Fallback to the previous beacon Sender (which causes a CORB warning on chrome now)\r\n var beaconInst = _sendPostMgr && _sendPostMgr[_DYN_GET_SENDER_INST /* @min:%2egetSenderInst */]([3 /* TransportType.Beacon */], true);\r\n return _doSend(beaconInst, payload, isAsync);\r\n }\r\n }\r\n function _onBeaconRetry(payload, onComplete, canSend) {\r\n var internalPayload = payload;\r\n var data = internalPayload && internalPayload[_DYN_ORI_PAYLOAD /* @min:%2eoriPayload */];\r\n if (!_disableBeaconSplit) {\r\n // Failed to send entire payload so try and split data and try to send as much events as possible\r\n var droppedPayload = [];\r\n for (var lp = 0; lp < data[_DYN_LENGTH /* @min:%2elength */]; lp++) {\r\n var thePayload = data[lp];\r\n var arr = [thePayload];\r\n var item = _getPayload(arr);\r\n if (!canSend(item, onComplete)) {\r\n // Can't send anymore, so split the batch and drop the rest\r\n droppedPayload[_DYN_PUSH /* @min:%2epush */](thePayload);\r\n }\r\n else {\r\n _self._onSuccess(arr, arr[_DYN_LENGTH /* @min:%2elength */]);\r\n }\r\n }\r\n if (droppedPayload[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n _fallbackSend && _fallbackSend(droppedPayload, true);\r\n _throwInternal(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 2 /* eLoggingSeverity.WARNING */, 40 /* _eInternalMessageId.TransmissionFailed */, \". \" + \"Failed to send telemetry with Beacon API, retried with normal sender.\");\r\n }\r\n }\r\n else {\r\n _fallbackSend && _fallbackSend(data, true);\r\n _throwInternal(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 2 /* eLoggingSeverity.WARNING */, 40 /* _eInternalMessageId.TransmissionFailed */, \". \" + \"Failed to send telemetry with Beacon API, retried with normal sender.\");\r\n }\r\n }\r\n function _isStringArr(arr) {\r\n try {\r\n if (arr && arr[_DYN_LENGTH /* @min:%2elength */]) {\r\n return (isString(arr[0]));\r\n }\r\n }\r\n catch (e) {\r\n //TODO: log, sender use IInternalStorageItem instead of string since 3.1.3\r\n }\r\n return null;\r\n }\r\n function _fetchKeepAliveSender(payload, isAsync) {\r\n var transport = null;\r\n if (isArray(payload)) {\r\n var payloadSize = payload[_DYN_LENGTH /* @min:%2elength */];\r\n for (var lp = 0; lp < payload[_DYN_LENGTH /* @min:%2elength */]; lp++) {\r\n payloadSize += payload[lp].item[_DYN_LENGTH /* @min:%2elength */];\r\n }\r\n var syncFetchPayload = _sendPostMgr.getSyncFetchPayload();\r\n if ((syncFetchPayload + payloadSize) <= FetchSyncRequestSizeLimitBytes) {\r\n transport = 2 /* TransportType.Fetch */;\r\n }\r\n else if (isBeaconsSupported()) {\r\n // Fallback to beacon sender as we at least get told which events can't be scheduled\r\n transport = 3 /* TransportType.Beacon */;\r\n }\r\n else {\r\n // Payload is going to be too big so just try and send via XHR\r\n transport = 1 /* TransportType.Xhr */;\r\n _throwInternal(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 2 /* eLoggingSeverity.WARNING */, 40 /* _eInternalMessageId.TransmissionFailed */, \". \" + \"Failed to send telemetry with Beacon API, retried with xhrSender.\");\r\n }\r\n var inst = _sendPostMgr && _sendPostMgr[_DYN_GET_SENDER_INST /* @min:%2egetSenderInst */]([transport], true);\r\n return _doSend(inst, payload, isAsync);\r\n }\r\n return null;\r\n }\r\n /**\r\n * Resend payload. Adds payload back to the send buffer and setup a send timer (with exponential backoff).\r\n * @param payload\r\n */\r\n function _resendPayload(payload, linearFactor) {\r\n if (linearFactor === void 0) { linearFactor = 1; }\r\n if (!payload || payload[_DYN_LENGTH /* @min:%2elength */] === 0) {\r\n return;\r\n }\r\n var buffer = _self[_DYN__BUFFER /* @min:%2e_buffer */];\r\n buffer[_DYN_CLEAR_SENT /* @min:%2eclearSent */](payload);\r\n _consecutiveErrors++;\r\n for (var _i = 0, payload_1 = payload; _i < payload_1.length; _i++) {\r\n var item = payload_1[_i];\r\n item.cnt = item.cnt || 0; // to make sure we have cnt for each payload\r\n item.cnt++; // when resend, increase cnt\r\n buffer[_DYN_ENQUEUE /* @min:%2eenqueue */](item);\r\n }\r\n // setup timer\r\n _setRetryTime(linearFactor);\r\n _setupTimer();\r\n }\r\n /**\r\n * Calculates the time to wait before retrying in case of an error based on\r\n * http://en.wikipedia.org/wiki/Exponential_backoff\r\n */\r\n function _setRetryTime(linearFactor) {\r\n var SlotDelayInSeconds = 10;\r\n var delayInSeconds;\r\n if (_consecutiveErrors <= 1) {\r\n delayInSeconds = SlotDelayInSeconds;\r\n }\r\n else {\r\n var backOffSlot = (Math.pow(2, _consecutiveErrors) - 1) / 2;\r\n // tslint:disable-next-line:insecure-random\r\n var backOffDelay = Math.floor(Math.random() * backOffSlot * SlotDelayInSeconds) + 1;\r\n backOffDelay = linearFactor * backOffDelay;\r\n delayInSeconds = Math.max(Math.min(backOffDelay, 3600), SlotDelayInSeconds);\r\n }\r\n // TODO: Log the backoff time like the C# version does.\r\n var retryAfterTimeSpan = dateNow() + (delayInSeconds * 1000);\r\n // TODO: Log the retry at time like the C# version does.\r\n _retryAt = retryAfterTimeSpan;\r\n }\r\n /**\r\n * Sets up the timer which triggers actually sending the data.\r\n */\r\n function _setupTimer() {\r\n if (!_timeoutHandle && !_paused) {\r\n var retryInterval = _retryAt ? Math.max(0, _retryAt - dateNow()) : 0;\r\n var timerValue = Math.max(_maxBatchInterval, retryInterval);\r\n _timeoutHandle = scheduleTimeout(function () {\r\n _timeoutHandle = null;\r\n _self[_DYN_TRIGGER_SEND /* @min:%2etriggerSend */](true, null, 1 /* SendRequestReason.NormalSchedule */);\r\n }, timerValue);\r\n }\r\n }\r\n function _clearScheduledTimer() {\r\n _timeoutHandle && _timeoutHandle.cancel();\r\n _timeoutHandle = null;\r\n _retryAt = null;\r\n }\r\n /**\r\n * Checks if the SDK should resend the payload after receiving this status code from the backend.\r\n * @param statusCode\r\n */\r\n function _isRetriable(statusCode) {\r\n // retryCodes = [] means should not retry\r\n if (!isNullOrUndefined(_retryCodes)) {\r\n return _retryCodes[_DYN_LENGTH /* @min:%2elength */] && _retryCodes.indexOf(statusCode) > -1;\r\n }\r\n return statusCode === 401 // Unauthorized\r\n // Removing as private links can return a 403 which causes excessive retries and session storage usage\r\n // || statusCode === 403 // Forbidden\r\n || statusCode === 408 // Timeout\r\n || statusCode === 429 // Too many requests.\r\n || statusCode === 500 // Internal server error.\r\n || statusCode === 502 // Bad Gateway.\r\n || statusCode === 503 // Service unavailable.\r\n || statusCode === 504; // Gateway timeout.\r\n }\r\n // Using function lookups for backward compatibility as the getNotifyMgr() did not exist until after v2.5.6\r\n function _getNotifyMgr() {\r\n var func = \"getNotifyMgr\";\r\n if (_self.core[func]) {\r\n return _self.core[func]();\r\n }\r\n // using _self.core['_notificationManager'] for backward compatibility\r\n return _self.core[\"_notificationManager\"];\r\n }\r\n function _notifySendRequest(sendRequest, isAsync) {\r\n var manager = _getNotifyMgr();\r\n if (manager && manager[_DYN_EVENTS_SEND_REQUEST /* @min:%2eeventsSendRequest */]) {\r\n try {\r\n manager[_DYN_EVENTS_SEND_REQUEST /* @min:%2eeventsSendRequest */](sendRequest, isAsync);\r\n }\r\n catch (e) {\r\n _throwInternal(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 1 /* eLoggingSeverity.CRITICAL */, 74 /* _eInternalMessageId.NotificationException */, \"send request notification failed: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n }\r\n }\r\n /**\r\n * Validate UUID Format\r\n * Specs taken from https://tools.ietf.org/html/rfc4122 and breeze repo\r\n */\r\n function _validateInstrumentationKey(instrumentationKey, config) {\r\n var disableValidation = config.disableInstrumentationKeyValidation;\r\n var disableIKeyValidationFlag = isNullOrUndefined(disableValidation) ? false : disableValidation;\r\n if (disableIKeyValidationFlag) {\r\n return true;\r\n }\r\n var UUID_Regex = \"^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$\";\r\n var regexp = new RegExp(UUID_Regex);\r\n return regexp.test(instrumentationKey);\r\n }\r\n function _initDefaults() {\r\n _self[_DYN__SENDER /* @min:%2e_sender */] = null;\r\n _self[_DYN__BUFFER /* @min:%2e_buffer */] = null;\r\n _self._appId = null;\r\n _self._sample = null;\r\n _headers = {};\r\n _offlineListener = null;\r\n _consecutiveErrors = 0;\r\n _retryAt = null;\r\n _lastSend = null;\r\n _paused = false;\r\n _timeoutHandle = null;\r\n _serializer = null;\r\n _stamp_specific_redirects = 0;\r\n _syncFetchPayload = 0;\r\n _syncUnloadSender = null;\r\n _evtNamespace = null;\r\n _endpointUrl = null;\r\n _orgEndpointUrl = null;\r\n _maxBatchSizeInBytes = 0;\r\n _beaconSupported = false;\r\n _customHeaders = null;\r\n _disableTelemetry = false;\r\n _instrumentationKey = null;\r\n _convertUndefined = UNDEFINED_VALUE;\r\n _isRetryDisabled = false;\r\n _sessionStorageUsed = null;\r\n _namePrefix = UNDEFINED_VALUE;\r\n _disableXhr = false;\r\n _fetchKeepAlive = false;\r\n _disableBeaconSplit = false;\r\n _xhrSend = null;\r\n _fallbackSend = null;\r\n _sendPostMgr = null;\r\n objDefine(_self, \"_senderConfig\", {\r\n g: function () {\r\n return objExtend({}, defaultAppInsightsChannelConfig);\r\n }\r\n });\r\n }\r\n });\r\n return _this;\r\n }\r\n Sender.constructEnvelope = function (orig, iKey, logger, convertUndefined) {\r\n var envelope;\r\n if (iKey !== orig.iKey && !isNullOrUndefined(iKey)) {\r\n envelope = __assign(__assign({}, orig), { iKey: iKey });\r\n }\r\n else {\r\n envelope = orig;\r\n }\r\n var creator = EnvelopeTypeCreator[envelope.baseType] || EventEnvelopeCreator;\r\n return creator(logger, envelope, convertUndefined);\r\n };\r\n// Removed Stub for Sender.prototype.pause.\r\n// Removed Stub for Sender.prototype.resume.\r\n// Removed Stub for Sender.prototype.flush.\r\n// Removed Stub for Sender.prototype.onunloadFlush.\r\n// Removed Stub for Sender.prototype.initialize.\r\n// Removed Stub for Sender.prototype.processTelemetry.\r\n// Removed Stub for Sender.prototype._xhrReadyStateChange.\r\n// Removed Stub for Sender.prototype.triggerSend.\r\n// Removed Stub for Sender.prototype._onError.\r\n// Removed Stub for Sender.prototype._onPartialSuccess.\r\n// Removed Stub for Sender.prototype._onSuccess.\r\n// Removed Stub for Sender.prototype._xdrOnLoad.\r\n// Removed Stub for Sender.prototype.addHeader.\r\n// Removed Stub for Sender.prototype.isCompletelyIdle.\r\n// Removed Stub for Sender.prototype.getOfflineSupport.\r\n// Removed Stub for Sender.prototype.getOfflineListener.\r\n return Sender;\r\n}(BaseTelemetryPlugin));\r\nexport { Sender };\r\n//# sourceMappingURL=Sender.js.map","/*\n * Application Insights JavaScript SDK - Dependencies Plugin, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n// ###################################################################################################################################################\r\n// Note: DON'T Export these const from the package as we are still targeting IE/ES5 this will export a mutable variables that someone could change ###\r\n// ###################################################################################################################################################\r\n// Generally you should only put values that are used more than 2 times and then only if not already exposed as a constant (such as SdkCoreNames)\r\n// as when using \"short\" named values from here they will be will be minified smaller than the SdkCoreNames[eSdkCoreNames.xxxx] value.\r\nexport var STR_DURATION = \"duration\";\r\nexport var STR_PROPERTIES = \"properties\";\r\n//# sourceMappingURL=InternalConstants.js.map","/*\n * Application Insights JavaScript SDK - Dependencies Plugin, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n// @skip-file-minify\r\n// ##############################################################\r\n// AUTO GENERATED FILE: This file is Auto Generated during build.\r\n// ##############################################################\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\n// Note: DON'T Export these const from the package as we are still targeting ES3 this will export a mutable variables that someone could change!!!\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\nexport var _DYN_REQUEST_URL = \"requestUrl\"; // Count: 11\r\nexport var _DYN_INST = \"inst\"; // Count: 5\r\nexport var _DYN_LENGTH = \"length\"; // Count: 8\r\nexport var _DYN_TRACE_ID = \"traceID\"; // Count: 9\r\nexport var _DYN_SPAN_ID = \"spanID\"; // Count: 8\r\nexport var _DYN_TRACE_FLAGS = \"traceFlags\"; // Count: 13\r\nexport var _DYN_CONTEXT = \"context\"; // Count: 7\r\nexport var _DYN_ABORTED = \"aborted\"; // Count: 7\r\nexport var _DYN_TRACE_ID0 = \"traceId\"; // Count: 5\r\nexport var _DYN_SPAN_ID1 = \"spanId\"; // Count: 5\r\nexport var _DYN__ADD_HOOK = \"_addHook\"; // Count: 4\r\nexport var _DYN_CORE = \"core\"; // Count: 8\r\nexport var _DYN_INCLUDE_CORRELATION_2 = \"includeCorrelationHeaders\"; // Count: 4\r\nexport var _DYN_GET_ABSOLUTE_URL = \"getAbsoluteUrl\"; // Count: 3\r\nexport var _DYN_HEADERS = \"headers\"; // Count: 6\r\nexport var _DYN_REQUEST_HEADERS = \"requestHeaders\"; // Count: 13\r\nexport var _DYN_SET_REQUEST_HEADER = \"setRequestHeader\"; // Count: 3\r\nexport var _DYN_TRACK_DEPENDENCY_DAT3 = \"trackDependencyDataInternal\"; // Count: 2\r\nexport var _DYN_START_TIME = \"startTime\"; // Count: 6\r\nexport var _DYN_TO_LOWER_CASE = \"toLowerCase\"; // Count: 6\r\nexport var _DYN_ENABLE_REQUEST_HEADE4 = \"enableRequestHeaderTracking\"; // Count: 3\r\nexport var _DYN_ENABLE_AJAX_ERROR_ST5 = \"enableAjaxErrorStatusText\"; // Count: 2\r\nexport var _DYN_ENABLE_AJAX_PERF_TRA6 = \"enableAjaxPerfTracking\"; // Count: 2\r\nexport var _DYN_MAX_AJAX_CALLS_PER_V7 = \"maxAjaxCallsPerView\"; // Count: 2\r\nexport var _DYN_EXCLUDE_REQUEST_FROM8 = \"excludeRequestFromAutoTrackingPatterns\"; // Count: 2\r\nexport var _DYN_ADD_REQUEST_CONTEXT = \"addRequestContext\"; // Count: 2\r\nexport var _DYN_DISABLE_AJAX_TRACKIN9 = \"disableAjaxTracking\"; // Count: 3\r\nexport var _DYN_AJAX_PERF_LOOKUP_DEL10 = \"ajaxPerfLookupDelay\"; // Count: 2\r\nexport var _DYN_DISABLE_FETCH_TRACKI11 = \"disableFetchTracking\"; // Count: 2\r\nexport var _DYN_ENABLE_RESPONSE_HEAD12 = \"enableResponseHeaderTracking\"; // Count: 2\r\nexport var _DYN_STATUS = \"status\"; // Count: 11\r\nexport var _DYN_STATUS_TEXT = \"statusText\"; // Count: 9\r\nexport var _DYN_HEADER_MAP = \"headerMap\"; // Count: 8\r\nexport var _DYN_OPEN_DONE = \"openDone\"; // Count: 3\r\nexport var _DYN_SEND_DONE = \"sendDone\"; // Count: 3\r\nexport var _DYN_REQUEST_SENT_TIME = \"requestSentTime\"; // Count: 9\r\nexport var _DYN_ABORT_DONE = \"abortDone\"; // Count: 3\r\nexport var _DYN_GET_TRACE_ID = \"getTraceId\"; // Count: 3\r\nexport var _DYN_GET_TRACE_FLAGS = \"getTraceFlags\"; // Count: 3\r\nexport var _DYN_METHOD = \"method\"; // Count: 8\r\nexport var _DYN_ERROR_STATUS_TEXT = \"errorStatusText\"; // Count: 3\r\nexport var _DYN_STATE_CHANGE_ATTACHE13 = \"stateChangeAttached\"; // Count: 2\r\nexport var _DYN_RESPONSE_TEXT = \"responseText\"; // Count: 6\r\nexport var _DYN_RESPONSE_FINISHED_TI14 = \"responseFinishedTime\"; // Count: 7\r\nexport var _DYN__CREATE_TRACK_ITEM = \"CreateTrackItem\"; // Count: 3\r\nexport var _DYN_RESPONSE = \"response\"; // Count: 4\r\nexport var _DYN_GET_ALL_RESPONSE_HEA15 = \"getAllResponseHeaders\"; // Count: 2\r\nexport var _DYN_GET_PART_APROPS = \"getPartAProps\"; // Count: 3\r\nexport var _DYN_PERF_MARK = \"perfMark\"; // Count: 4\r\nexport var _DYN_NAME = \"name\"; // Count: 6\r\nexport var _DYN_PERF_TIMING = \"perfTiming\"; // Count: 3\r\nexport var _DYN_EXCEPTION = \"exception\"; // Count: 5\r\nexport var _DYN_AJAX_DIAGNOSTICS_MES16 = \"ajaxDiagnosticsMessage\"; // Count: 3\r\nexport var _DYN_CORRELATION_CONTEXT = \"correlationContext\"; // Count: 3\r\nexport var _DYN_AJAX_TOTAL_DURATION = \"ajaxTotalDuration\"; // Count: 3\r\nexport var _DYN_EVENT_TRACE_CTX = \"eventTraceCtx\"; // Count: 3\r\n//# sourceMappingURL=__DynamicConstants.js.map","/*\n * Application Insights JavaScript SDK - Dependencies Plugin, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { Extensions, dataSanitizeUrl, dateTimeUtilsDuration, msToTimeSpan, urlGetAbsoluteUrl, urlGetCompleteUrl } from \"@microsoft/applicationinsights-common\";\r\nimport { arrForEach, isNullOrUndefined, isNumber, isString, normalizeJsName, objForEachKey, objKeys } from \"@microsoft/applicationinsights-core-js\";\r\nimport { STR_DURATION, STR_PROPERTIES } from \"./InternalConstants\";\r\nimport { _DYN_ABORTED, _DYN_ABORT_DONE, _DYN_AJAX_TOTAL_DURATION, _DYN_CORRELATION_CONTEXT, _DYN_ERROR_STATUS_TEXT, _DYN_EVENT_TRACE_CTX, _DYN_GET_ABSOLUTE_URL, _DYN_GET_PART_APROPS, _DYN_GET_TRACE_FLAGS, _DYN_GET_TRACE_ID, _DYN_HEADER_MAP, _DYN_LENGTH, _DYN_METHOD, _DYN_NAME, _DYN_OPEN_DONE, _DYN_PERF_MARK, _DYN_PERF_TIMING, _DYN_REQUEST_HEADERS, _DYN_REQUEST_SENT_TIME, _DYN_REQUEST_URL, _DYN_RESPONSE, _DYN_RESPONSE_FINISHED_TI14, _DYN_SEND_DONE, _DYN_SPAN_ID, _DYN_SPAN_ID1, _DYN_START_TIME, _DYN_STATE_CHANGE_ATTACHE13, _DYN_STATUS, _DYN_STATUS_TEXT, _DYN_TRACE_FLAGS, _DYN_TRACE_ID, _DYN_TRACE_ID0, _DYN__CREATE_TRACK_ITEM } from \"./__DynamicConstants\";\r\n/** @ignore */\r\nfunction _calcPerfDuration(resourceEntry, start, end) {\r\n var result = 0;\r\n var from = resourceEntry[start];\r\n var to = resourceEntry[end];\r\n if (from && to) {\r\n result = dateTimeUtilsDuration(from, to);\r\n }\r\n return result;\r\n}\r\n/** @ignore */\r\nfunction _setPerfDuration(props, name, resourceEntry, start, end) {\r\n var result = 0;\r\n var value = _calcPerfDuration(resourceEntry, start, end);\r\n if (value) {\r\n result = _setPerfValue(props, name, msToTimeSpan(value));\r\n }\r\n return result;\r\n}\r\n/** @ignore */\r\nfunction _setPerfValue(props, name, value) {\r\n var strPerf = \"ajaxPerf\";\r\n var result = 0;\r\n if (props && name && value) {\r\n var perfData = props[strPerf] = (props[strPerf] || {});\r\n perfData[name] = value;\r\n result = 1;\r\n }\r\n return result;\r\n}\r\n/** @ignore */\r\nfunction _populatePerfData(ajaxData, dependency) {\r\n /*\r\n * https://developer.mozilla.org/en-US/docs/Web/API/Resource_Timing_API/Using_the_Resource_Timing_API\r\n * | -startTime\r\n * | -redirectStart\r\n * | | -redirectEnd\r\n * | | | -fetchStart\r\n * | | | | -domainLookupStart\r\n * | | | | |- domainLookupEnd\r\n * | | | | | | -connectStart\r\n * | | | | | | | -secureConnectionStart\r\n * | | | | | | | | -connectEnd\r\n * | | | | | | | | | -requestStart\r\n * | | | | | | | | | | | -responseStart\r\n * | | | | | | | | | | | | | -responseEnd\r\n * +------------+-+---+----------------+-+--+--------+-+-----------+-+------------+-+\r\n * |--redirect--| |---|--domainLookup--| |--connect--| |--request--| |--response--| |\r\n * |-------------------networkConnect----------------|\r\n * | |---------sentRequest--------|\r\n * |------------------------------------perfTotal-----------------------------------|\r\n */\r\n var resourceEntry = ajaxData[_DYN_PERF_TIMING /* @min:%2eperfTiming */];\r\n var props = dependency[STR_PROPERTIES /* @min:%2eproperties */] || {};\r\n var propsSet = 0;\r\n var strName = \"name\";\r\n var strStart = \"Start\";\r\n var strEnd = \"End\";\r\n var strDomainLookup = \"domainLookup\";\r\n var strConnect = \"connect\";\r\n var strRedirect = \"redirect\";\r\n var strRequest = \"request\";\r\n var strResponse = \"response\";\r\n var strStartTime = \"startTime\";\r\n var strDomainLookupStart = strDomainLookup + strStart;\r\n var strDomainLookupEnd = strDomainLookup + strEnd;\r\n var strConnectStart = strConnect + strStart;\r\n var strConnectEnd = strConnect + strEnd;\r\n var strRequestStart = strRequest + strStart;\r\n var strRequestEnd = strRequest + strEnd;\r\n var strResponseStart = strResponse + strStart;\r\n var strResponseEnd = strResponse + strEnd;\r\n var strRedirectStart = strRedirect + strStart;\r\n var strRedirectEnd = strRedirect = strEnd;\r\n var strTransferSize = \"transferSize\";\r\n var strEncodedBodySize = \"encodedBodySize\";\r\n var strDecodedBodySize = \"decodedBodySize\";\r\n var strServerTiming = \"serverTiming\";\r\n if (resourceEntry) {\r\n // redirect\r\n propsSet |= _setPerfDuration(props, strRedirect, resourceEntry, strRedirectStart, strRedirectEnd);\r\n // domainLookup\r\n propsSet |= _setPerfDuration(props, strDomainLookup, resourceEntry, strDomainLookupStart, strDomainLookupEnd);\r\n // connect\r\n propsSet |= _setPerfDuration(props, strConnect, resourceEntry, strConnectStart, strConnectEnd);\r\n // request\r\n propsSet |= _setPerfDuration(props, strRequest, resourceEntry, strRequestStart, strRequestEnd);\r\n // response\r\n propsSet |= _setPerfDuration(props, strResponse, resourceEntry, strResponseStart, strResponseEnd);\r\n // Network connection time\r\n propsSet |= _setPerfDuration(props, \"networkConnect\", resourceEntry, strStartTime, strConnectEnd);\r\n // Sent Request\r\n propsSet |= _setPerfDuration(props, \"sentRequest\", resourceEntry, strRequestStart, strResponseEnd);\r\n // PerfTotal / Duration\r\n var duration = resourceEntry[STR_DURATION /* @min:%2eduration */];\r\n if (!duration) {\r\n duration = _calcPerfDuration(resourceEntry, strStartTime, strResponseEnd) || 0;\r\n }\r\n propsSet |= _setPerfValue(props, STR_DURATION, duration);\r\n propsSet |= _setPerfValue(props, \"perfTotal\", duration);\r\n var serverTiming = resourceEntry[strServerTiming];\r\n if (serverTiming) {\r\n var server_1 = {};\r\n arrForEach(serverTiming, function (value, idx) {\r\n var name = normalizeJsName(value[strName] || \"\" + idx);\r\n var newValue = server_1[name] || {};\r\n objForEachKey(value, function (key, val) {\r\n if (key !== strName && isString(val) || isNumber(val)) {\r\n if (newValue[key]) {\r\n val = newValue[key] + \";\" + val;\r\n }\r\n if (val || !isString(val)) {\r\n // Only set the value if it has a value and it's not an empty string\r\n newValue[key] = val;\r\n }\r\n }\r\n });\r\n server_1[name] = newValue;\r\n });\r\n propsSet |= _setPerfValue(props, strServerTiming, server_1);\r\n }\r\n propsSet |= _setPerfValue(props, strTransferSize, resourceEntry[strTransferSize]);\r\n propsSet |= _setPerfValue(props, strEncodedBodySize, resourceEntry[strEncodedBodySize]);\r\n propsSet |= _setPerfValue(props, strDecodedBodySize, resourceEntry[strDecodedBodySize]);\r\n }\r\n else {\r\n if (ajaxData[_DYN_PERF_MARK /* @min:%2eperfMark */]) {\r\n propsSet |= _setPerfValue(props, \"missing\", ajaxData.perfAttempts);\r\n }\r\n }\r\n if (propsSet) {\r\n dependency[STR_PROPERTIES /* @min:%2eproperties */] = props;\r\n }\r\n}\r\nvar XHRMonitoringState = /** @class */ (function () {\r\n function XHRMonitoringState() {\r\n var self = this;\r\n self[_DYN_OPEN_DONE /* @min:%2eopenDone */] = false;\r\n self.setRequestHeaderDone = false;\r\n self[_DYN_SEND_DONE /* @min:%2esendDone */] = false;\r\n self[_DYN_ABORT_DONE /* @min:%2eabortDone */] = false;\r\n // True, if onreadyStateChangeCallback function attached to xhr, otherwise false\r\n self[_DYN_STATE_CHANGE_ATTACHE13 /* @min:%2estateChangeAttached */] = false;\r\n }\r\n return XHRMonitoringState;\r\n}());\r\nexport { XHRMonitoringState };\r\nvar ajaxRecord = /** @class */ (function () {\r\n function ajaxRecord(traceId, spanId, logger, traceCtx) {\r\n var _a;\r\n var self = this;\r\n var _logger = logger;\r\n var strResponseText = \"responseText\";\r\n // Assigning the initial/default values within the constructor to avoid typescript from creating a bunch of\r\n // this.XXXX = null\r\n self[_DYN_PERF_MARK /* @min:%2eperfMark */] = null;\r\n self.completed = false;\r\n self.requestHeadersSize = null;\r\n self[_DYN_REQUEST_HEADERS /* @min:%2erequestHeaders */] = null;\r\n self.responseReceivingDuration = null;\r\n self.callbackDuration = null;\r\n self[_DYN_AJAX_TOTAL_DURATION /* @min:%2eajaxTotalDuration */] = null;\r\n self[_DYN_ABORTED /* @min:%2eaborted */] = 0;\r\n self.pageUrl = null;\r\n self[_DYN_REQUEST_URL /* @min:%2erequestUrl */] = null;\r\n self.requestSize = 0;\r\n self[_DYN_METHOD /* @min:%2emethod */] = null;\r\n self[_DYN_STATUS /* @min:%2estatus */] = null;\r\n self[_DYN_REQUEST_SENT_TIME /* @min:%2erequestSentTime */] = null;\r\n self.responseStartedTime = null;\r\n self[_DYN_RESPONSE_FINISHED_TI14 /* @min:%2eresponseFinishedTime */] = null;\r\n self.callbackFinishedTime = null;\r\n self.endTime = null;\r\n self.xhrMonitoringState = new XHRMonitoringState();\r\n self.clientFailure = 0;\r\n self[_DYN_TRACE_ID /* @min:%2etraceID */] = traceId;\r\n self[_DYN_SPAN_ID /* @min:%2espanID */] = spanId;\r\n self[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */] = traceCtx === null || traceCtx === void 0 ? void 0 : traceCtx.getTraceFlags();\r\n if (traceCtx) {\r\n self[_DYN_EVENT_TRACE_CTX /* @min:%2eeventTraceCtx */] = (_a = {},\r\n _a[_DYN_TRACE_ID0 /* @min:traceId */] = traceCtx[_DYN_GET_TRACE_ID /* @min:%2egetTraceId */](),\r\n _a[_DYN_SPAN_ID1 /* @min:spanId */] = traceCtx.getSpanId(),\r\n _a[_DYN_TRACE_FLAGS /* @min:traceFlags */] = traceCtx[_DYN_GET_TRACE_FLAGS /* @min:%2egetTraceFlags */](),\r\n _a);\r\n }\r\n else {\r\n self[_DYN_EVENT_TRACE_CTX /* @min:%2eeventTraceCtx */] = null;\r\n }\r\n dynamicProto(ajaxRecord, self, function (self) {\r\n self.getAbsoluteUrl = function () {\r\n return self[_DYN_REQUEST_URL /* @min:%2erequestUrl */] ? urlGetAbsoluteUrl(self[_DYN_REQUEST_URL /* @min:%2erequestUrl */]) : null;\r\n };\r\n self.getPathName = function () {\r\n return self[_DYN_REQUEST_URL /* @min:%2erequestUrl */] ? dataSanitizeUrl(_logger, urlGetCompleteUrl(self[_DYN_METHOD /* @min:%2emethod */], self[_DYN_REQUEST_URL /* @min:%2erequestUrl */])) : null;\r\n };\r\n self[_DYN__CREATE_TRACK_ITEM /* @min:%2eCreateTrackItem */] = function (ajaxType, enableRequestHeaderTracking, getResponse) {\r\n var _a;\r\n // round to 3 decimal points\r\n self.ajaxTotalDuration = Math.round(dateTimeUtilsDuration(self.requestSentTime, self.responseFinishedTime) * 1000) / 1000;\r\n if (self[_DYN_AJAX_TOTAL_DURATION /* @min:%2eajaxTotalDuration */] < 0) {\r\n return null;\r\n }\r\n var dependency = (_a = {\r\n id: \"|\" + self[_DYN_TRACE_ID /* @min:%2etraceID */] + \".\" + self[_DYN_SPAN_ID /* @min:%2espanID */],\r\n target: self[_DYN_GET_ABSOLUTE_URL /* @min:%2egetAbsoluteUrl */]()\r\n },\r\n _a[_DYN_NAME /* @min:name */] = self.getPathName(),\r\n _a.type = ajaxType,\r\n _a[_DYN_START_TIME /* @min:startTime */] = null,\r\n _a.duration = self[_DYN_AJAX_TOTAL_DURATION /* @min:%2eajaxTotalDuration */],\r\n _a.success = (+(self[_DYN_STATUS /* @min:%2estatus */])) >= 200 && (+(self[_DYN_STATUS /* @min:%2estatus */])) < 400,\r\n _a.responseCode = (+(self[_DYN_STATUS /* @min:%2estatus */])),\r\n _a[STR_PROPERTIES] = { HttpMethod: self[_DYN_METHOD /* @min:%2emethod */] },\r\n _a);\r\n var props = dependency[STR_PROPERTIES];\r\n if (self[_DYN_ABORTED /* @min:%2eaborted */]) {\r\n props[_DYN_ABORTED /* @min:%2eaborted */] = true;\r\n }\r\n if (self[_DYN_REQUEST_SENT_TIME /* @min:%2erequestSentTime */]) {\r\n // Set the correct dependency start time\r\n dependency[_DYN_START_TIME /* @min:%2estartTime */] = new Date();\r\n dependency[_DYN_START_TIME /* @min:%2estartTime */].setTime(self[_DYN_REQUEST_SENT_TIME /* @min:%2erequestSentTime */]);\r\n }\r\n // Add Ajax perf details if available\r\n _populatePerfData(self, dependency);\r\n if (enableRequestHeaderTracking) {\r\n if (objKeys(self.requestHeaders)[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n props[_DYN_REQUEST_HEADERS /* @min:%2erequestHeaders */] = self[_DYN_REQUEST_HEADERS /* @min:%2erequestHeaders */];\r\n }\r\n }\r\n if (getResponse) {\r\n var response = getResponse();\r\n if (response) {\r\n // enrich dependency target with correlation context from the server\r\n var correlationContext = response[_DYN_CORRELATION_CONTEXT /* @min:%2ecorrelationContext */];\r\n if (correlationContext) {\r\n dependency.correlationContext = /* dependency.target + \" | \" + */ correlationContext;\r\n }\r\n if (response[_DYN_HEADER_MAP /* @min:%2eheaderMap */]) {\r\n if (objKeys(response.headerMap)[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n props.responseHeaders = response[_DYN_HEADER_MAP /* @min:%2eheaderMap */];\r\n }\r\n }\r\n if (self[_DYN_ERROR_STATUS_TEXT /* @min:%2eerrorStatusText */]) {\r\n if (self[_DYN_STATUS /* @min:%2estatus */] >= 400) {\r\n var responseType = response.type;\r\n if (responseType === \"\" || responseType === \"text\") {\r\n props.responseText = response.responseText ? response[_DYN_STATUS_TEXT /* @min:%2estatusText */] + \" - \" + response[strResponseText] : response[_DYN_STATUS_TEXT /* @min:%2estatusText */];\r\n }\r\n if (responseType === \"json\") {\r\n props.responseText = response.response ? response[_DYN_STATUS_TEXT /* @min:%2estatusText */] + \" - \" + JSON.stringify(response[_DYN_RESPONSE /* @min:%2eresponse */]) : response[_DYN_STATUS_TEXT /* @min:%2estatusText */];\r\n }\r\n }\r\n else if (self[_DYN_STATUS /* @min:%2estatus */] === 0) {\r\n props.responseText = response[_DYN_STATUS_TEXT /* @min:%2estatusText */] || \"\";\r\n }\r\n }\r\n }\r\n }\r\n return dependency;\r\n };\r\n self[_DYN_GET_PART_APROPS /* @min:%2egetPartAProps */] = function () {\r\n var _a;\r\n var partA = null;\r\n var traceCtx = self[_DYN_EVENT_TRACE_CTX /* @min:%2eeventTraceCtx */];\r\n if (traceCtx && (traceCtx[_DYN_TRACE_ID0 /* @min:%2etraceId */] || traceCtx[_DYN_SPAN_ID1 /* @min:%2espanId */])) {\r\n partA = {};\r\n var traceExt = partA[Extensions.TraceExt] = (_a = {},\r\n _a[_DYN_TRACE_ID /* @min:traceID */] = traceCtx[_DYN_TRACE_ID0 /* @min:%2etraceId */],\r\n _a.parentID = traceCtx[_DYN_SPAN_ID1 /* @min:%2espanId */],\r\n _a);\r\n if (!isNullOrUndefined(traceCtx[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */])) {\r\n traceExt[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */] = traceCtx[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */];\r\n }\r\n }\r\n return partA;\r\n };\r\n });\r\n }\r\n// Removed Stub for ajaxRecord.prototype.getAbsoluteUrl.\r\n// Removed Stub for ajaxRecord.prototype.getPathName.\r\n// Removed Stub for ajaxRecord.prototype.CreateTrackItem.\r\n// Removed Stub for ajaxRecord.prototype.getPartAProps.\r\n // This is a workaround for an IE bug when using dynamicProto() with classes that don't have any\n // non-dynamic functions or static properties/functions when using uglify-js to minify the resulting code.\n ajaxRecord.__ieDyn=1;\n\n return ajaxRecord;\r\n}());\r\nexport { ajaxRecord };\r\n//# sourceMappingURL=ajaxRecord.js.map","/*\n * Application Insights JavaScript SDK - Dependencies Plugin, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nvar _a;\r\nimport { __assignFn as __assign, __extendsFn as __extends } from \"@microsoft/applicationinsights-shims\";\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { DisabledPropertyName, PropertiesPluginIdentifier, RemoteDependencyData, RequestHeaders, correlationIdCanIncludeCorrelationHeader, correlationIdGetCorrelationContext, createDistributedTraceContextFromTrace, createTelemetryItem, createTraceParent, dateTimeUtilsNow, formatTraceParent, isInternalApplicationInsightsEndpoint } from \"@microsoft/applicationinsights-common\";\r\nimport { BaseTelemetryPlugin, InstrumentFunc, InstrumentProto, _throwInternal, arrForEach, createProcessTelemetryContext, createUniqueNamespace, dumpObj, eventOn, generateW3CId, getExceptionName, getGlobal, getIEVersion, getLocation, getPerformance, isFunction, isNullOrUndefined, isString, isXhrSupported, mergeEvtNamespace, onConfigChange, strPrototype, strTrim } from \"@microsoft/applicationinsights-core-js\";\r\nimport { isWebWorker, objFreeze, scheduleTimeout, strIndexOf, strSplit, strSubstr } from \"@nevware21/ts-utils\";\r\nimport { STR_PROPERTIES } from \"./InternalConstants\";\r\nimport { _DYN_ABORTED, _DYN_ABORT_DONE, _DYN_ADD_REQUEST_CONTEXT, _DYN_AJAX_DIAGNOSTICS_MES16, _DYN_AJAX_PERF_LOOKUP_DEL10, _DYN_CONTEXT, _DYN_CORE, _DYN_CORRELATION_CONTEXT, _DYN_DISABLE_AJAX_TRACKIN9, _DYN_DISABLE_FETCH_TRACKI11, _DYN_ENABLE_AJAX_ERROR_ST5, _DYN_ENABLE_AJAX_PERF_TRA6, _DYN_ENABLE_REQUEST_HEADE4, _DYN_ENABLE_RESPONSE_HEAD12, _DYN_ERROR_STATUS_TEXT, _DYN_EXCEPTION, _DYN_EXCLUDE_REQUEST_FROM8, _DYN_GET_ABSOLUTE_URL, _DYN_GET_ALL_RESPONSE_HEA15, _DYN_GET_PART_APROPS, _DYN_GET_TRACE_FLAGS, _DYN_GET_TRACE_ID, _DYN_HEADERS, _DYN_HEADER_MAP, _DYN_INCLUDE_CORRELATION_2, _DYN_INST, _DYN_LENGTH, _DYN_MAX_AJAX_CALLS_PER_V7, _DYN_METHOD, _DYN_NAME, _DYN_OPEN_DONE, _DYN_PERF_MARK, _DYN_PERF_TIMING, _DYN_REQUEST_HEADERS, _DYN_REQUEST_SENT_TIME, _DYN_REQUEST_URL, _DYN_RESPONSE, _DYN_RESPONSE_FINISHED_TI14, _DYN_RESPONSE_TEXT, _DYN_SEND_DONE, _DYN_SET_REQUEST_HEADER, _DYN_SPAN_ID, _DYN_SPAN_ID1, _DYN_START_TIME, _DYN_STATE_CHANGE_ATTACHE13, _DYN_STATUS, _DYN_STATUS_TEXT, _DYN_TO_LOWER_CASE, _DYN_TRACE_FLAGS, _DYN_TRACE_ID, _DYN_TRACE_ID0, _DYN_TRACK_DEPENDENCY_DAT3, _DYN__ADD_HOOK, _DYN__CREATE_TRACK_ITEM } from \"./__DynamicConstants\";\r\nimport { ajaxRecord } from \"./ajaxRecord\";\r\nvar AJAX_MONITOR_PREFIX = \"ai.ajxmn.\";\r\nvar strDiagLog = \"diagLog\";\r\nvar AJAX_DATA_CONTAINER = \"_ajaxData\";\r\nvar STR_FETCH = \"fetch\";\r\nvar ERROR_HEADER = \"Failed to monitor XMLHttpRequest\";\r\nvar ERROR_PREFIX = \", monitoring data for this ajax call \";\r\nvar ERROR_POSTFIX = ERROR_PREFIX + \"may be incorrect.\";\r\nvar ERROR_NOT_SENT = ERROR_PREFIX + \"won't be sent.\";\r\nvar CORRELATION_HEADER_ERROR = \"Failed to get Request-Context correlation header as it may be not included in the response or not accessible.\";\r\nvar CUSTOM_REQUEST_CONTEXT_ERROR = \"Failed to add custom defined request context as configured call back may missing a null check.\";\r\nvar FAILED_TO_CALCULATE_DURATION_ERROR = \"Failed to calculate the duration of the \";\r\n// Using a global value so that to handle same iKey with multiple app insights instances (mostly for testing)\r\nvar _markCount = 0;\r\n/** @Ignore */\r\nfunction _supportsFetch() {\r\n var _global = getGlobal();\r\n if (!_global ||\r\n isNullOrUndefined(_global.Request) ||\r\n isNullOrUndefined(_global.Request[strPrototype]) ||\r\n isNullOrUndefined(_global[STR_FETCH])) {\r\n return null;\r\n }\r\n return _global[STR_FETCH];\r\n}\r\n/**\r\n * Determines whether ajax monitoring can be enabled on this document\r\n * @returns True if Ajax monitoring is supported on this page, otherwise false\r\n * @ignore\r\n */\r\nfunction _supportsAjaxMonitoring(ajaxMonitorInstance, ajaxDataId) {\r\n var _a, _b;\r\n var result = false;\r\n if (isXhrSupported()) {\r\n var proto = XMLHttpRequest[strPrototype];\r\n result = !isNullOrUndefined(proto) &&\r\n !isNullOrUndefined(proto.open) && // eslint-disable-line security/detect-non-literal-fs-filename -- false positive\r\n !isNullOrUndefined(proto.send) &&\r\n !isNullOrUndefined(proto.abort);\r\n }\r\n var ieVer = getIEVersion();\r\n if (ieVer && ieVer < 9) {\r\n result = false;\r\n }\r\n if (result) {\r\n // Disable if the XmlHttpRequest can't be extended or hooked\r\n try {\r\n var xhr = new XMLHttpRequest();\r\n var xhrData = {\r\n xh: [],\r\n i: (_a = {},\r\n _a[ajaxDataId] = {},\r\n _a)\r\n };\r\n xhr[AJAX_DATA_CONTAINER] = xhrData;\r\n // Check that we can update the prototype\r\n var theOpen = XMLHttpRequest[strPrototype].open;\r\n XMLHttpRequest[strPrototype].open = theOpen;\r\n }\r\n catch (e) {\r\n // We can't decorate the xhr object so disable monitoring\r\n result = false;\r\n _throwInternalCritical(ajaxMonitorInstance, 15 /* _eInternalMessageId.FailedMonitorAjaxOpen */, \"Failed to enable XMLHttpRequest monitoring, extension is not supported\", (_b = {},\r\n _b[_DYN_EXCEPTION /* @min:exception */] = dumpObj(e),\r\n _b));\r\n }\r\n }\r\n return result;\r\n}\r\n/**\r\n * Internal helper to fetch the SDK instance tracking data for this XHR request\r\n * @param xhr\r\n * @param ajaxDataId\r\n * @returns\r\n */\r\nvar _getAjaxData = function (xhr, ajaxDataId) {\r\n if (xhr && ajaxDataId && xhr[AJAX_DATA_CONTAINER]) {\r\n return (xhr[AJAX_DATA_CONTAINER].i || {})[ajaxDataId];\r\n }\r\n return null;\r\n};\r\n/**\r\n * @ignore\r\n * Internal helper to track the singleton shared tracking headers, so we can attempt to not create headers\r\n * that might cause an issue if multiple values are populated.\r\n * @param xhr - The instrumented XHR instance\r\n */\r\nvar _addSharedXhrHeaders = function (xhr, name, value) {\r\n if (xhr) {\r\n var headers = (xhr[AJAX_DATA_CONTAINER] || {}).xh;\r\n if (headers) {\r\n headers.push({\r\n n: name,\r\n v: value\r\n });\r\n }\r\n }\r\n};\r\nvar _isHeaderSet = function (xhr, name) {\r\n var isPresent = false;\r\n if (xhr) {\r\n var headers = (xhr[AJAX_DATA_CONTAINER] || {}).xh;\r\n if (headers) {\r\n arrForEach(headers, function (header) {\r\n if (header.n === name) {\r\n isPresent = true;\r\n return -1;\r\n }\r\n });\r\n }\r\n }\r\n return isPresent;\r\n};\r\n/** @Ignore */\r\nfunction _getFailedAjaxDiagnosticsMessage(xhr, ajaxDataId) {\r\n var result = \"\";\r\n try {\r\n var ajaxData = _getAjaxData(xhr, ajaxDataId);\r\n if (ajaxData && ajaxData[_DYN_REQUEST_URL /* @min:%2erequestUrl */]) {\r\n result += \"(url: '\" + ajaxData[_DYN_REQUEST_URL /* @min:%2erequestUrl */] + \"')\";\r\n }\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n return result;\r\n}\r\n/** @ignore */\r\nfunction _throwInternalCritical(ajaxMonitorInstance, msgId, message, properties, isUserAct) {\r\n _throwInternal(ajaxMonitorInstance[strDiagLog](), 1 /* eLoggingSeverity.CRITICAL */, msgId, message, properties, isUserAct);\r\n}\r\n/** @ignore */\r\nfunction _throwInternalWarning(ajaxMonitorInstance, msgId, message, properties, isUserAct) {\r\n _throwInternal(ajaxMonitorInstance[strDiagLog](), 2 /* eLoggingSeverity.WARNING */, msgId, message, properties, isUserAct);\r\n}\r\n/** @Ignore */\r\nfunction _createErrorCallbackFunc(ajaxMonitorInstance, internalMessage, message) {\r\n // tslint:disable-next-line\r\n return function (callDetails) {\r\n var _a;\r\n _throwInternalCritical(ajaxMonitorInstance, internalMessage, message, (_a = {\r\n ajaxDiagnosticsMessage: _getFailedAjaxDiagnosticsMessage(callDetails[_DYN_INST /* @min:%2einst */], ajaxMonitorInstance._ajaxDataId)\r\n },\r\n _a[_DYN_EXCEPTION /* @min:exception */] = dumpObj(callDetails.err),\r\n _a));\r\n };\r\n}\r\nfunction _indexOf(value, match) {\r\n if (value && match) {\r\n return strIndexOf(value, match);\r\n }\r\n return -1;\r\n}\r\nfunction _addHandler(container, id, theFunc) {\r\n var theHandler = {\r\n id: id,\r\n fn: theFunc\r\n };\r\n container.push(theHandler);\r\n return {\r\n remove: function () {\r\n arrForEach(container, function (initializer, idx) {\r\n if (initializer.id === theHandler.id) {\r\n container.splice(idx, 1);\r\n return -1;\r\n }\r\n });\r\n }\r\n };\r\n}\r\nfunction _processDependencyContainer(core, container, details, message) {\r\n var result = true;\r\n arrForEach(container, function (theFunc, idx) {\r\n try {\r\n if (theFunc.fn.call(null, details) === false) {\r\n result = false;\r\n }\r\n }\r\n catch (e) {\r\n _throwInternal(core && core.logger, 1 /* eLoggingSeverity.CRITICAL */, 64 /* _eInternalMessageId.TelemetryInitializerFailed */, \"Dependency \" + message + \" [#\" + idx + \"] failed: \" + getExceptionName(e), { exception: dumpObj(e) }, true);\r\n }\r\n });\r\n return result;\r\n}\r\nfunction _processDependencyListeners(listeners, core, ajaxData, xhr, input, init) {\r\n var _a;\r\n var initializersCount = listeners[_DYN_LENGTH /* @min:%2elength */];\r\n if (initializersCount > 0) {\r\n var details = (_a = {},\r\n _a[_DYN_CORE /* @min:core */] = core,\r\n _a.xhr = xhr,\r\n _a.input = input,\r\n _a.init = init,\r\n _a.traceId = ajaxData[_DYN_TRACE_ID /* @min:%2etraceID */],\r\n _a.spanId = ajaxData[_DYN_SPAN_ID /* @min:%2espanID */],\r\n _a.traceFlags = ajaxData[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */],\r\n _a.context = ajaxData[_DYN_CONTEXT /* @min:%2econtext */] || {},\r\n _a.aborted = !!ajaxData[_DYN_ABORTED /* @min:%2eaborted */],\r\n _a);\r\n _processDependencyContainer(core, listeners, details, \"listener\");\r\n ajaxData[_DYN_TRACE_ID /* @min:%2etraceID */] = details[_DYN_TRACE_ID0 /* @min:%2etraceId */];\r\n ajaxData[_DYN_SPAN_ID /* @min:%2espanID */] = details[_DYN_SPAN_ID1 /* @min:%2espanId */];\r\n ajaxData[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */] = details[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */];\r\n ajaxData[_DYN_CONTEXT /* @min:%2econtext */] = details[_DYN_CONTEXT /* @min:%2econtext */];\r\n }\r\n}\r\nvar BLOB_CORE = \"*.blob.core.\";\r\nexport var DfltAjaxCorrelationHeaderExDomains = objFreeze([\r\n BLOB_CORE + \"windows.net\",\r\n BLOB_CORE + \"chinacloudapi.cn\",\r\n BLOB_CORE + \"cloudapi.de\",\r\n BLOB_CORE + \"usgovcloudapi.net\"\r\n]);\r\nvar _internalExcludeEndpoints = [\r\n /https:\\/\\/[^\\/]*(\\.pipe\\.aria|aria\\.pipe|events\\.data|collector\\.azure)\\.[^\\/]+\\/(OneCollector\\/1|Collector\\/3)\\.0/i\r\n];\r\nvar _defaultConfig = objFreeze((_a = {},\r\n _a[_DYN_MAX_AJAX_CALLS_PER_V7 /* @min:maxAjaxCallsPerView */] = 500,\r\n _a[_DYN_DISABLE_AJAX_TRACKIN9 /* @min:disableAjaxTracking */] = false,\r\n _a[_DYN_DISABLE_FETCH_TRACKI11 /* @min:disableFetchTracking */] = false,\r\n _a[_DYN_EXCLUDE_REQUEST_FROM8 /* @min:excludeRequestFromAutoTrackingPatterns */] = undefined,\r\n _a.disableCorrelationHeaders = false,\r\n _a.distributedTracingMode = 1 /* eDistributedTracingModes.AI_AND_W3C */,\r\n _a.correlationHeaderExcludedDomains = DfltAjaxCorrelationHeaderExDomains,\r\n _a.correlationHeaderDomains = undefined,\r\n _a.correlationHeaderExcludePatterns = undefined,\r\n _a.appId = undefined,\r\n _a.enableCorsCorrelation = false,\r\n _a[_DYN_ENABLE_REQUEST_HEADE4 /* @min:enableRequestHeaderTracking */] = false,\r\n _a[_DYN_ENABLE_RESPONSE_HEAD12 /* @min:enableResponseHeaderTracking */] = false,\r\n _a[_DYN_ENABLE_AJAX_ERROR_ST5 /* @min:enableAjaxErrorStatusText */] = false,\r\n _a[_DYN_ENABLE_AJAX_PERF_TRA6 /* @min:enableAjaxPerfTracking */] = false,\r\n _a.maxAjaxPerfLookupAttempts = 3,\r\n _a[_DYN_AJAX_PERF_LOOKUP_DEL10 /* @min:ajaxPerfLookupDelay */] = 25,\r\n _a.ignoreHeaders = [\r\n \"Authorization\",\r\n \"X-API-Key\",\r\n \"WWW-Authenticate\"\r\n ],\r\n _a[_DYN_ADD_REQUEST_CONTEXT /* @min:addRequestContext */] = undefined,\r\n _a.addIntEndpoints = true,\r\n _a));\r\nvar AjaxMonitor = /** @class */ (function (_super) {\r\n __extends(AjaxMonitor, _super);\r\n function AjaxMonitor() {\r\n var _this = _super.call(this) || this;\r\n _this.identifier = AjaxMonitor.identifier;\r\n _this.priority = 120;\r\n var _fetchInitialized; // fetch monitoring initialized\r\n var _xhrInitialized; // XHR monitoring initialized\r\n var _currentWindowHost;\r\n var _extensionConfig;\r\n var _enableRequestHeaderTracking;\r\n var _enableAjaxErrorStatusText;\r\n var _trackAjaxAttempts;\r\n var _context;\r\n var _isUsingW3CHeaders;\r\n var _isUsingAIHeaders;\r\n var _markPrefix;\r\n var _enableAjaxPerfTracking;\r\n var _maxAjaxCallsPerView;\r\n var _enableResponseHeaderTracking;\r\n var _disabledUrls;\r\n var _disableAjaxTracking;\r\n var _disableFetchTracking;\r\n var _excludeRequestFromAutoTrackingPatterns;\r\n var _addRequestContext;\r\n var _evtNamespace;\r\n var _ajaxDataId;\r\n var _dependencyHandlerId;\r\n var _dependencyListeners;\r\n var _dependencyInitializers;\r\n var _ignoreHeaders;\r\n var _maxAjaxPerfLookupAttempts;\r\n var _ajaxPerfLookupDelay;\r\n var _distributedTracingMode;\r\n var _appId;\r\n var _polyfillInitialized;\r\n dynamicProto(AjaxMonitor, _this, function (_self, _base) {\r\n var _addHook = _base[_DYN__ADD_HOOK /* @min:%2e_addHook */];\r\n _initDefaults();\r\n _self.initialize = function (config, core, extensions, pluginChain) {\r\n if (!_self.isInitialized()) {\r\n _base.initialize(config, core, extensions, pluginChain);\r\n _evtNamespace = mergeEvtNamespace(createUniqueNamespace(\"ajax\"), core && core.evtNamespace && core.evtNamespace());\r\n _populateDefaults(config);\r\n _instrumentXhr();\r\n _instrumentFetch();\r\n _populateContext();\r\n }\r\n };\r\n _self._doTeardown = function () {\r\n _initDefaults();\r\n };\r\n _self.trackDependencyData = function (dependency, properties) {\r\n _reportDependencyInternal(_dependencyInitializers, _self[_DYN_CORE /* @min:%2ecore */], null, dependency, properties);\r\n };\r\n _self[_DYN_INCLUDE_CORRELATION_2 /* @min:%2eincludeCorrelationHeaders */] = function (ajaxData, input, init, xhr) {\r\n // Test Hook to allow the overriding of the location host\r\n var currentWindowHost = _self[\"_currentWindowHost\"] || _currentWindowHost;\r\n _processDependencyListeners(_dependencyListeners, _self[_DYN_CORE /* @min:%2ecore */], ajaxData, xhr, input, init);\r\n if (input || input === \"\") { // Fetch\r\n if (correlationIdCanIncludeCorrelationHeader(_extensionConfig, ajaxData[_DYN_GET_ABSOLUTE_URL /* @min:%2egetAbsoluteUrl */](), currentWindowHost)) {\r\n if (!init) {\r\n init = {};\r\n }\r\n // init headers override original request headers\r\n // so, if they exist use only them, otherwise use request's because they should have been applied in the first place\r\n // not using original request headers will result in them being lost\r\n var headers = new Headers(init[_DYN_HEADERS /* @min:%2eheaders */] || (input instanceof Request ? (input[_DYN_HEADERS /* @min:%2eheaders */] || {}) : {}));\r\n if (_isUsingAIHeaders) {\r\n var id = \"|\" + ajaxData[_DYN_TRACE_ID /* @min:%2etraceID */] + \".\" + ajaxData[_DYN_SPAN_ID /* @min:%2espanID */];\r\n headers.set(RequestHeaders[3 /* eRequestHeaders.requestIdHeader */], id);\r\n if (_enableRequestHeaderTracking) {\r\n ajaxData[_DYN_REQUEST_HEADERS /* @min:%2erequestHeaders */][RequestHeaders[3 /* eRequestHeaders.requestIdHeader */]] = id;\r\n }\r\n }\r\n var appId = _appId || (_context && _context.appId());\r\n if (appId) {\r\n headers.set(RequestHeaders[0 /* eRequestHeaders.requestContextHeader */], RequestHeaders[2 /* eRequestHeaders.requestContextAppIdFormat */] + appId);\r\n if (_enableRequestHeaderTracking) {\r\n ajaxData[_DYN_REQUEST_HEADERS /* @min:%2erequestHeaders */][RequestHeaders[0 /* eRequestHeaders.requestContextHeader */]] = RequestHeaders[2 /* eRequestHeaders.requestContextAppIdFormat */] + appId;\r\n }\r\n }\r\n if (_isUsingW3CHeaders) {\r\n var traceFlags = ajaxData[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */];\r\n if (isNullOrUndefined(traceFlags)) {\r\n traceFlags = 0x01;\r\n }\r\n var traceParent = formatTraceParent(createTraceParent(ajaxData[_DYN_TRACE_ID /* @min:%2etraceID */], ajaxData[_DYN_SPAN_ID /* @min:%2espanID */], traceFlags));\r\n headers.set(RequestHeaders[4 /* eRequestHeaders.traceParentHeader */], traceParent);\r\n if (_enableRequestHeaderTracking) {\r\n ajaxData[_DYN_REQUEST_HEADERS /* @min:%2erequestHeaders */][RequestHeaders[4 /* eRequestHeaders.traceParentHeader */]] = traceParent;\r\n }\r\n }\r\n init[_DYN_HEADERS /* @min:%2eheaders */] = headers;\r\n }\r\n return init;\r\n }\r\n else if (xhr) { // XHR\r\n if (correlationIdCanIncludeCorrelationHeader(_extensionConfig, ajaxData[_DYN_GET_ABSOLUTE_URL /* @min:%2egetAbsoluteUrl */](), currentWindowHost)) {\r\n if (_isUsingAIHeaders) {\r\n if (!_isHeaderSet(xhr, RequestHeaders[3 /* eRequestHeaders.requestIdHeader */])) {\r\n var id = \"|\" + ajaxData[_DYN_TRACE_ID /* @min:%2etraceID */] + \".\" + ajaxData[_DYN_SPAN_ID /* @min:%2espanID */];\r\n xhr[_DYN_SET_REQUEST_HEADER /* @min:%2esetRequestHeader */](RequestHeaders[3 /* eRequestHeaders.requestIdHeader */], id);\r\n if (_enableRequestHeaderTracking) {\r\n ajaxData[_DYN_REQUEST_HEADERS /* @min:%2erequestHeaders */][RequestHeaders[3 /* eRequestHeaders.requestIdHeader */]] = id;\r\n }\r\n }\r\n else {\r\n _throwInternalWarning(_self, 71 /* _eInternalMessageId.FailedMonitorAjaxSetRequestHeader */, \"Unable to set [\" + RequestHeaders[3 /* eRequestHeaders.requestIdHeader */] + \"] as it has already been set by another instance\");\r\n }\r\n }\r\n var appId = _appId || (_context && _context.appId());\r\n if (appId) {\r\n if (!_isHeaderSet(xhr, RequestHeaders[0 /* eRequestHeaders.requestContextHeader */])) {\r\n xhr[_DYN_SET_REQUEST_HEADER /* @min:%2esetRequestHeader */](RequestHeaders[0 /* eRequestHeaders.requestContextHeader */], RequestHeaders[2 /* eRequestHeaders.requestContextAppIdFormat */] + appId);\r\n if (_enableRequestHeaderTracking) {\r\n ajaxData[_DYN_REQUEST_HEADERS /* @min:%2erequestHeaders */][RequestHeaders[0 /* eRequestHeaders.requestContextHeader */]] = RequestHeaders[2 /* eRequestHeaders.requestContextAppIdFormat */] + appId;\r\n }\r\n }\r\n else {\r\n _throwInternalWarning(_self, 71 /* _eInternalMessageId.FailedMonitorAjaxSetRequestHeader */, \"Unable to set [\" + RequestHeaders[0 /* eRequestHeaders.requestContextHeader */] + \"] as it has already been set by another instance\");\r\n }\r\n }\r\n if (_isUsingW3CHeaders) {\r\n var traceFlags = ajaxData[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */];\r\n if (isNullOrUndefined(traceFlags)) {\r\n traceFlags = 0x01;\r\n }\r\n if (!_isHeaderSet(xhr, RequestHeaders[4 /* eRequestHeaders.traceParentHeader */])) {\r\n var traceParent = formatTraceParent(createTraceParent(ajaxData[_DYN_TRACE_ID /* @min:%2etraceID */], ajaxData[_DYN_SPAN_ID /* @min:%2espanID */], traceFlags));\r\n xhr[_DYN_SET_REQUEST_HEADER /* @min:%2esetRequestHeader */](RequestHeaders[4 /* eRequestHeaders.traceParentHeader */], traceParent);\r\n if (_enableRequestHeaderTracking) {\r\n ajaxData[_DYN_REQUEST_HEADERS /* @min:%2erequestHeaders */][RequestHeaders[4 /* eRequestHeaders.traceParentHeader */]] = traceParent;\r\n }\r\n }\r\n else {\r\n _throwInternalWarning(_self, 71 /* _eInternalMessageId.FailedMonitorAjaxSetRequestHeader */, \"Unable to set [\" + RequestHeaders[4 /* eRequestHeaders.traceParentHeader */] + \"] as it has already been set by another instance\");\r\n }\r\n }\r\n }\r\n return xhr;\r\n }\r\n return undefined;\r\n };\r\n _self[_DYN_TRACK_DEPENDENCY_DAT3 /* @min:%2etrackDependencyDataInternal */] = function (dependency, properties, systemProperties) {\r\n if (_maxAjaxCallsPerView === -1 || _trackAjaxAttempts < _maxAjaxCallsPerView) {\r\n // Hack since expected format in w3c mode is |abc.def.\r\n // Non-w3c format is |abc.def\r\n // @todo Remove if better solution is available, e.g. handle in portal\r\n if ((_distributedTracingMode === 2 /* eDistributedTracingModes.W3C */\r\n || _distributedTracingMode === 1 /* eDistributedTracingModes.AI_AND_W3C */)\r\n && typeof dependency.id === \"string\" && dependency.id[dependency.id[_DYN_LENGTH /* @min:%2elength */] - 1] !== \".\") {\r\n dependency.id += \".\";\r\n }\r\n if (isNullOrUndefined(dependency[_DYN_START_TIME /* @min:%2estartTime */])) {\r\n dependency[_DYN_START_TIME /* @min:%2estartTime */] = new Date();\r\n }\r\n var item = createTelemetryItem(dependency, RemoteDependencyData.dataType, RemoteDependencyData.envelopeType, _self[strDiagLog](), properties, systemProperties);\r\n _self[_DYN_CORE /* @min:%2ecore */].track(item);\r\n }\r\n else if (_trackAjaxAttempts === _maxAjaxCallsPerView) {\r\n _throwInternalCritical(_self, 55 /* _eInternalMessageId.MaxAjaxPerPVExceeded */, \"Maximum ajax per page view limit reached, ajax monitoring is paused until the next trackPageView(). In order to increase the limit set the maxAjaxCallsPerView configuration parameter.\", true);\r\n }\r\n ++_trackAjaxAttempts;\r\n };\r\n _self.addDependencyListener = function (dependencyListener) {\r\n return _addHandler(_dependencyListeners, _dependencyHandlerId++, dependencyListener);\r\n };\r\n _self.addDependencyInitializer = function (dependencyInitializer) {\r\n return _addHandler(_dependencyInitializers, _dependencyHandlerId++, dependencyInitializer);\r\n };\r\n function _initDefaults() {\r\n var location = getLocation();\r\n _fetchInitialized = false; // fetch monitoring initialized\r\n _xhrInitialized = false; // XHR monitoring initialized\r\n _polyfillInitialized = false; // polyfill monitoring initialized\r\n _currentWindowHost = location && location.host && location.host[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]();\r\n _extensionConfig = null;\r\n _enableRequestHeaderTracking = false;\r\n _enableAjaxErrorStatusText = false;\r\n _trackAjaxAttempts = 0;\r\n _context = null;\r\n _isUsingW3CHeaders = false;\r\n _isUsingAIHeaders = false;\r\n _markPrefix = null;\r\n _enableAjaxPerfTracking = false;\r\n _maxAjaxCallsPerView = 0;\r\n _enableResponseHeaderTracking = false;\r\n _disabledUrls = {};\r\n _disableAjaxTracking = false;\r\n _disableFetchTracking = false;\r\n _excludeRequestFromAutoTrackingPatterns = null;\r\n _addRequestContext = null;\r\n _evtNamespace = null;\r\n _dependencyHandlerId = 0;\r\n _dependencyListeners = [];\r\n _dependencyInitializers = [];\r\n _ajaxDataId = createUniqueNamespace(\"ajaxData\");\r\n _self._ajaxDataId = _ajaxDataId;\r\n _ignoreHeaders = null;\r\n _maxAjaxPerfLookupAttempts = 1;\r\n _ajaxPerfLookupDelay = 1;\r\n _distributedTracingMode = 1 /* eDistributedTracingModes.AI_AND_W3C */;\r\n _appId = null;\r\n }\r\n function _populateDefaults(config) {\r\n _self[_DYN__ADD_HOOK /* @min:%2e_addHook */](onConfigChange(config, function (details) {\r\n var config = details.cfg;\r\n var ctx = createProcessTelemetryContext(null, config, _self[_DYN_CORE /* @min:%2ecore */]);\r\n _extensionConfig = ctx.getExtCfg(AjaxMonitor.identifier, _defaultConfig);\r\n _distributedTracingMode = _extensionConfig.distributedTracingMode;\r\n _enableRequestHeaderTracking = _extensionConfig[_DYN_ENABLE_REQUEST_HEADE4 /* @min:%2eenableRequestHeaderTracking */];\r\n _enableAjaxErrorStatusText = _extensionConfig[_DYN_ENABLE_AJAX_ERROR_ST5 /* @min:%2eenableAjaxErrorStatusText */];\r\n _enableAjaxPerfTracking = _extensionConfig[_DYN_ENABLE_AJAX_PERF_TRA6 /* @min:%2eenableAjaxPerfTracking */];\r\n _maxAjaxCallsPerView = _extensionConfig[_DYN_MAX_AJAX_CALLS_PER_V7 /* @min:%2emaxAjaxCallsPerView */];\r\n _excludeRequestFromAutoTrackingPatterns = [].concat(_extensionConfig[_DYN_EXCLUDE_REQUEST_FROM8 /* @min:%2eexcludeRequestFromAutoTrackingPatterns */] || [], _extensionConfig.addIntEndpoints !== false ? _internalExcludeEndpoints : []);\r\n _addRequestContext = _extensionConfig[_DYN_ADD_REQUEST_CONTEXT /* @min:%2eaddRequestContext */];\r\n _isUsingAIHeaders = _distributedTracingMode === 0 /* eDistributedTracingModes.AI */ || _distributedTracingMode === 1 /* eDistributedTracingModes.AI_AND_W3C */;\r\n _isUsingW3CHeaders = _distributedTracingMode === 1 /* eDistributedTracingModes.AI_AND_W3C */ || _distributedTracingMode === 2 /* eDistributedTracingModes.W3C */;\r\n if (_enableAjaxPerfTracking) {\r\n _markPrefix = _ajaxDataId;\r\n }\r\n _disableAjaxTracking = !!_extensionConfig[_DYN_DISABLE_AJAX_TRACKIN9 /* @min:%2edisableAjaxTracking */];\r\n _maxAjaxPerfLookupAttempts = _extensionConfig.maxAjaxPerfLookupAttempts;\r\n _ajaxPerfLookupDelay = _extensionConfig[_DYN_AJAX_PERF_LOOKUP_DEL10 /* @min:%2eajaxPerfLookupDelay */];\r\n _ignoreHeaders = _extensionConfig.ignoreHeaders;\r\n _appId = _extensionConfig.appId;\r\n }));\r\n }\r\n function _populateContext() {\r\n var propExt = _self[_DYN_CORE /* @min:%2ecore */].getPlugin(PropertiesPluginIdentifier);\r\n if (propExt) {\r\n _context = propExt.plugin[_DYN_CONTEXT /* @min:%2econtext */]; // we could move IPropertiesPlugin to common as well\r\n }\r\n }\r\n // discard the header if it's defined as ignoreHeaders in ICorrelationConfig\r\n function _canIncludeHeaders(header) {\r\n var rlt = true;\r\n if (header || _ignoreHeaders) {\r\n arrForEach(_ignoreHeaders, (function (key) {\r\n if (key[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]() === header[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]()) {\r\n rlt = false;\r\n return -1;\r\n }\r\n }));\r\n }\r\n return rlt;\r\n }\r\n // Fetch Stuff\r\n function _instrumentFetch() {\r\n var fetch = _supportsFetch();\r\n if (!fetch) {\r\n return;\r\n }\r\n var global = getGlobal();\r\n var isPolyfill = fetch.polyfill;\r\n _self[_DYN__ADD_HOOK /* @min:%2e_addHook */](onConfigChange(_extensionConfig, function () {\r\n _disableFetchTracking = !!_extensionConfig[_DYN_DISABLE_FETCH_TRACKI11 /* @min:%2edisableFetchTracking */];\r\n _enableResponseHeaderTracking = _extensionConfig[_DYN_ENABLE_RESPONSE_HEAD12 /* @min:%2eenableResponseHeaderTracking */];\r\n if (!_disableFetchTracking && !_fetchInitialized) {\r\n _addHook(InstrumentFunc(global, STR_FETCH, {\r\n ns: _evtNamespace,\r\n // Add request hook\r\n req: function (callDetails, input, init) {\r\n var fetchData;\r\n if (!_disableFetchTracking && _fetchInitialized &&\r\n !_isDisabledRequest(null, input, init) &&\r\n // If we have a polyfil and XHR instrumented then let XHR report otherwise we get duplicates\r\n !(isPolyfill && _xhrInitialized)) {\r\n var ctx = callDetails.ctx();\r\n fetchData = _createFetchRecord(input, init);\r\n var newInit = _self[_DYN_INCLUDE_CORRELATION_2 /* @min:%2eincludeCorrelationHeaders */](fetchData, input, init);\r\n if (newInit !== init) {\r\n callDetails.set(1, newInit);\r\n }\r\n ctx.data = fetchData;\r\n }\r\n },\r\n rsp: function (callDetails, input) {\r\n if (!_disableFetchTracking) {\r\n var fetchData_1 = callDetails.ctx().data;\r\n if (fetchData_1) {\r\n // Replace the result with the new promise from this code\r\n callDetails.rslt = callDetails.rslt.then(function (response) {\r\n _reportFetchMetrics(callDetails, (response || {})[_DYN_STATUS /* @min:%2estatus */], input, response, fetchData_1, function () {\r\n var _a;\r\n var ajaxResponse = (_a = {\r\n statusText: (response || {})[_DYN_STATUS_TEXT /* @min:%2estatusText */]\r\n },\r\n _a[_DYN_HEADER_MAP /* @min:headerMap */] = null,\r\n _a[_DYN_CORRELATION_CONTEXT /* @min:correlationContext */] = _getFetchCorrelationContext(response),\r\n _a);\r\n if (_enableResponseHeaderTracking && response) {\r\n var responseHeaderMap_1 = {};\r\n response.headers.forEach(function (value, name) {\r\n if (_canIncludeHeaders(name)) {\r\n responseHeaderMap_1[name] = value;\r\n }\r\n });\r\n ajaxResponse[_DYN_HEADER_MAP /* @min:%2eheaderMap */] = responseHeaderMap_1;\r\n }\r\n return ajaxResponse;\r\n });\r\n return response;\r\n })\r\n .catch(function (reason) {\r\n _reportFetchMetrics(callDetails, 0, input, null, fetchData_1, null, { error: reason.message || dumpObj(reason) });\r\n throw reason;\r\n });\r\n }\r\n }\r\n },\r\n // Create an error callback to report any hook errors\r\n hkErr: _createErrorCallbackFunc(_self, 15 /* _eInternalMessageId.FailedMonitorAjaxOpen */, \"Failed to monitor Window.fetch\" + ERROR_POSTFIX)\r\n }, true, isWebWorker()));\r\n _fetchInitialized = true;\r\n }\r\n else if (isPolyfill && !_polyfillInitialized) {\r\n // If fetch is a polyfill we need to capture the request to ensure that we correctly track\r\n // disabled request URLS (i.e. internal urls) to ensure we don't end up in a constant loop\r\n // of reporting ourselves, for example React Native uses a polyfill for fetch\r\n // Note: Polyfill implementations that don't support the \"polyfill\" tag are not supported\r\n // the workaround is to add a polyfill property to your fetch implementation before initializing\r\n // App Insights\r\n _addHook(InstrumentFunc(global, STR_FETCH, {\r\n ns: _evtNamespace,\r\n req: function (callDetails, input, init) {\r\n // Just call so that we record any disabled URL\r\n _isDisabledRequest(null, input, init);\r\n }\r\n }));\r\n _polyfillInitialized = true;\r\n }\r\n }));\r\n if (isPolyfill) {\r\n // retag the instrumented fetch with the same polyfill settings this is mostly for testing\r\n // But also supports multiple App Insights usages\r\n global[STR_FETCH].polyfill = isPolyfill;\r\n }\r\n }\r\n function _hookProto(target, funcName, callbacks) {\r\n _addHook(InstrumentProto(target, funcName, callbacks));\r\n }\r\n function _instrumentXhr() {\r\n if (!_supportsAjaxMonitoring(_self, _ajaxDataId)) {\r\n return;\r\n }\r\n _self[_DYN__ADD_HOOK /* @min:%2e_addHook */](onConfigChange(_extensionConfig, function () {\r\n _disableAjaxTracking = !!_extensionConfig[_DYN_DISABLE_AJAX_TRACKIN9 /* @min:%2edisableAjaxTracking */];\r\n _enableRequestHeaderTracking = _extensionConfig[_DYN_ENABLE_REQUEST_HEADE4 /* @min:%2eenableRequestHeaderTracking */];\r\n if (!_disableAjaxTracking && !_xhrInitialized) {\r\n // Instrument open\r\n _hookProto(XMLHttpRequest, \"open\", {\r\n ns: _evtNamespace,\r\n req: function (callDetails, method, url, async) {\r\n if (!_disableAjaxTracking) {\r\n var xhr = callDetails[_DYN_INST /* @min:%2einst */];\r\n var ajaxData = _getAjaxData(xhr, _ajaxDataId);\r\n if (!_isDisabledRequest(xhr, url) && _isMonitoredXhrInstance(xhr, ajaxData, true)) {\r\n if (!ajaxData || !ajaxData.xhrMonitoringState[_DYN_OPEN_DONE /* @min:%2eopenDone */]) {\r\n // Only create a single ajaxData (even when multiple AI instances are running)\r\n ajaxData = _openHandler(xhr, method, url, async);\r\n }\r\n // always attach to the on ready state change (required for handling multiple instances)\r\n _attachToOnReadyStateChange(xhr, ajaxData);\r\n }\r\n }\r\n },\r\n hkErr: _createErrorCallbackFunc(_self, 15 /* _eInternalMessageId.FailedMonitorAjaxOpen */, ERROR_HEADER + \".open\" + ERROR_POSTFIX)\r\n });\r\n // Instrument send\r\n _hookProto(XMLHttpRequest, \"send\", {\r\n ns: _evtNamespace,\r\n req: function (callDetails, context) {\r\n if (!_disableAjaxTracking) {\r\n var xhr = callDetails[_DYN_INST /* @min:%2einst */];\r\n var ajaxData = _getAjaxData(xhr, _ajaxDataId);\r\n if (_isMonitoredXhrInstance(xhr, ajaxData) && !ajaxData.xhrMonitoringState[_DYN_SEND_DONE /* @min:%2esendDone */]) {\r\n _createMarkId(\"xhr\", ajaxData);\r\n ajaxData[_DYN_REQUEST_SENT_TIME /* @min:%2erequestSentTime */] = dateTimeUtilsNow();\r\n _self[_DYN_INCLUDE_CORRELATION_2 /* @min:%2eincludeCorrelationHeaders */](ajaxData, undefined, undefined, xhr);\r\n ajaxData.xhrMonitoringState[_DYN_SEND_DONE /* @min:%2esendDone */] = true;\r\n }\r\n }\r\n },\r\n hkErr: _createErrorCallbackFunc(_self, 17 /* _eInternalMessageId.FailedMonitorAjaxSend */, ERROR_HEADER + ERROR_POSTFIX)\r\n });\r\n // Instrument abort\r\n _hookProto(XMLHttpRequest, \"abort\", {\r\n ns: _evtNamespace,\r\n req: function (callDetails) {\r\n if (!_disableAjaxTracking) {\r\n var xhr = callDetails[_DYN_INST /* @min:%2einst */];\r\n var ajaxData = _getAjaxData(xhr, _ajaxDataId);\r\n if (_isMonitoredXhrInstance(xhr, ajaxData) && !ajaxData.xhrMonitoringState[_DYN_ABORT_DONE /* @min:%2eabortDone */]) {\r\n ajaxData[_DYN_ABORTED /* @min:%2eaborted */] = 1;\r\n ajaxData.xhrMonitoringState[_DYN_ABORT_DONE /* @min:%2eabortDone */] = true;\r\n }\r\n }\r\n },\r\n hkErr: _createErrorCallbackFunc(_self, 13 /* _eInternalMessageId.FailedMonitorAjaxAbort */, ERROR_HEADER + \".abort\" + ERROR_POSTFIX)\r\n });\r\n // Instrument setRequestHeader\r\n _hookProto(XMLHttpRequest, \"setRequestHeader\", {\r\n ns: _evtNamespace,\r\n req: function (callDetails, header, value) {\r\n if (!_disableAjaxTracking) {\r\n var xhr = callDetails[_DYN_INST /* @min:%2einst */];\r\n var ajaxData = _getAjaxData(xhr, _ajaxDataId);\r\n if (ajaxData && _isMonitoredXhrInstance(xhr, ajaxData)) {\r\n _addSharedXhrHeaders(xhr, header, value);\r\n if (_enableRequestHeaderTracking && _canIncludeHeaders(header)) {\r\n if (ajaxData) {\r\n ajaxData[_DYN_REQUEST_HEADERS /* @min:%2erequestHeaders */][header] = value;\r\n }\r\n }\r\n }\r\n }\r\n },\r\n hkErr: _createErrorCallbackFunc(_self, 71 /* _eInternalMessageId.FailedMonitorAjaxSetRequestHeader */, ERROR_HEADER + \".setRequestHeader\" + ERROR_POSTFIX)\r\n });\r\n _xhrInitialized = true;\r\n }\r\n }));\r\n }\r\n function _isDisabledRequest(xhr, request, init) {\r\n var isDisabled = false;\r\n var theUrl = ((!isString(request) ? (request || {}).url || \"\" : request) || \"\")[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]();\r\n // check excludeRequestFromAutoTrackingPatterns before stripping off any query string\r\n arrForEach(_excludeRequestFromAutoTrackingPatterns, function (regex) {\r\n var theRegex = regex;\r\n if (isString(regex)) {\r\n theRegex = new RegExp(regex);\r\n }\r\n if (!isDisabled) {\r\n isDisabled = theRegex.test(theUrl);\r\n }\r\n });\r\n // if request url matches with exclude regex pattern, return true and no need to check for headers\r\n if (isDisabled) {\r\n return isDisabled;\r\n }\r\n var idx = _indexOf(theUrl, \"?\");\r\n var idx2 = _indexOf(theUrl, \"#\");\r\n if (idx === -1 || (idx2 !== -1 && idx2 < idx)) {\r\n idx = idx2;\r\n }\r\n if (idx !== -1) {\r\n // Strip off any Query string\r\n theUrl = theUrl.substring(0, idx);\r\n }\r\n // check that this instance is not not used by ajax call performed inside client side monitoring to send data to collector\r\n if (!isNullOrUndefined(xhr)) {\r\n // Look on the XMLHttpRequest of the URL string value\r\n isDisabled = xhr[DisabledPropertyName] === true || theUrl[DisabledPropertyName] === true;\r\n }\r\n else if (!isNullOrUndefined(request)) { // fetch\r\n // Look for DisabledPropertyName in either Request or RequestInit\r\n isDisabled = (typeof request === \"object\" ? request[DisabledPropertyName] === true : false) ||\r\n (init ? init[DisabledPropertyName] === true : false);\r\n }\r\n // Also add extra check just in case the XHR or fetch objects where not decorated with the DisableProperty due to sealing or freezing\r\n if (!isDisabled && theUrl && isInternalApplicationInsightsEndpoint(theUrl)) {\r\n isDisabled = true;\r\n }\r\n if (isDisabled) {\r\n // Add the disabled url if not present\r\n if (!_disabledUrls[theUrl]) {\r\n _disabledUrls[theUrl] = 1;\r\n }\r\n }\r\n else {\r\n // Check to see if the url is listed as disabled\r\n if (_disabledUrls[theUrl]) {\r\n isDisabled = true;\r\n }\r\n }\r\n return isDisabled;\r\n }\r\n /// Verifies that particular instance of XMLHttpRequest needs to be monitored\r\n /// Optional parameter. True if ajaxData must be excluded from verification\r\n /// True if instance needs to be monitored, otherwise false\r\n function _isMonitoredXhrInstance(xhr, ajaxData, excludeAjaxDataValidation) {\r\n var ajaxValidation = true;\r\n var initialized = _xhrInitialized;\r\n if (!isNullOrUndefined(xhr)) {\r\n ajaxValidation = excludeAjaxDataValidation === true || !isNullOrUndefined(ajaxData);\r\n }\r\n // checking to see that all interested functions on xhr were instrumented\r\n return initialized\r\n // checking on ajaxData to see that it was not removed in user code\r\n && ajaxValidation;\r\n }\r\n function _getDistributedTraceCtx() {\r\n var distributedTraceCtx = null;\r\n if (_self[_DYN_CORE /* @min:%2ecore */] && _self[_DYN_CORE /* @min:%2ecore */].getTraceCtx) {\r\n distributedTraceCtx = _self[_DYN_CORE /* @min:%2ecore */].getTraceCtx(false);\r\n }\r\n // Fall back\r\n if (!distributedTraceCtx && _context && _context.telemetryTrace) {\r\n distributedTraceCtx = createDistributedTraceContextFromTrace(_context.telemetryTrace);\r\n }\r\n return distributedTraceCtx;\r\n }\r\n function _openHandler(xhr, method, url, async) {\r\n var _a;\r\n var distributedTraceCtx = _getDistributedTraceCtx();\r\n var traceID = (distributedTraceCtx && distributedTraceCtx[_DYN_GET_TRACE_ID /* @min:%2egetTraceId */]()) || generateW3CId();\r\n var spanID = strSubstr(generateW3CId(), 0, 16);\r\n var xhrRequestData = xhr[AJAX_DATA_CONTAINER] = (xhr[AJAX_DATA_CONTAINER] || { xh: [], i: {} });\r\n var ajaxDataCntr = xhrRequestData.i = (xhrRequestData.i || {});\r\n var ajaxData = ajaxDataCntr[_ajaxDataId] = (ajaxDataCntr[_ajaxDataId] || new ajaxRecord(traceID, spanID, _self[strDiagLog](), (_a = _self.core) === null || _a === void 0 ? void 0 : _a.getTraceCtx()));\r\n ajaxData[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */] = distributedTraceCtx && distributedTraceCtx[_DYN_GET_TRACE_FLAGS /* @min:%2egetTraceFlags */]();\r\n ajaxData[_DYN_METHOD /* @min:%2emethod */] = method;\r\n ajaxData[_DYN_REQUEST_URL /* @min:%2erequestUrl */] = url;\r\n ajaxData.xhrMonitoringState[_DYN_OPEN_DONE /* @min:%2eopenDone */] = true;\r\n ajaxData[_DYN_REQUEST_HEADERS /* @min:%2erequestHeaders */] = {};\r\n ajaxData.async = async;\r\n ajaxData[_DYN_ERROR_STATUS_TEXT /* @min:%2eerrorStatusText */] = _enableAjaxErrorStatusText;\r\n return ajaxData;\r\n }\r\n function _attachToOnReadyStateChange(xhr, ajaxData) {\r\n ajaxData.xhrMonitoringState[_DYN_STATE_CHANGE_ATTACHE13 /* @min:%2estateChangeAttached */] = eventOn(xhr, \"readystatechange\", function () {\r\n var _a;\r\n try {\r\n if (xhr && xhr.readyState === 4 && _isMonitoredXhrInstance(xhr, ajaxData)) {\r\n _onAjaxComplete(xhr);\r\n }\r\n }\r\n catch (e) {\r\n var exceptionText = dumpObj(e);\r\n // ignore messages with c00c023f, as this a known IE9 XHR abort issue\r\n if (!exceptionText || _indexOf(exceptionText[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */](), \"c00c023f\") === -1) {\r\n _throwInternalCritical(_self, 16 /* _eInternalMessageId.FailedMonitorAjaxRSC */, ERROR_HEADER + \" 'readystatechange' event handler\" + ERROR_POSTFIX, (_a = {},\r\n _a[_DYN_AJAX_DIAGNOSTICS_MES16 /* @min:ajaxDiagnosticsMessage */] = _getFailedAjaxDiagnosticsMessage(xhr, _ajaxDataId),\r\n _a[_DYN_EXCEPTION /* @min:exception */] = exceptionText,\r\n _a));\r\n }\r\n }\r\n }, _evtNamespace);\r\n }\r\n function _getResponseText(xhr) {\r\n try {\r\n var responseType = xhr.responseType;\r\n if (responseType === \"\" || responseType === \"text\") {\r\n // As per the specification responseText is only valid if the type is an empty string or \"text\"\r\n return xhr[_DYN_RESPONSE_TEXT /* @min:%2eresponseText */];\r\n }\r\n }\r\n catch (e) {\r\n // This shouldn't happen because of the above check -- but just in case, so just ignore\r\n }\r\n return null;\r\n }\r\n function _onAjaxComplete(xhr) {\r\n var ajaxData = _getAjaxData(xhr, _ajaxDataId);\r\n ajaxData[_DYN_RESPONSE_FINISHED_TI14 /* @min:%2eresponseFinishedTime */] = dateTimeUtilsNow();\r\n ajaxData[_DYN_STATUS /* @min:%2estatus */] = xhr[_DYN_STATUS /* @min:%2estatus */];\r\n function _reportXhrError(e, failedProps) {\r\n var errorProps = failedProps || {};\r\n errorProps[\"ajaxDiagnosticsMessage\"] = _getFailedAjaxDiagnosticsMessage(xhr, _ajaxDataId);\r\n if (e) {\r\n errorProps[\"exception\"] = dumpObj(e);\r\n }\r\n _throwInternalWarning(_self, 14 /* _eInternalMessageId.FailedMonitorAjaxDur */, FAILED_TO_CALCULATE_DURATION_ERROR + \"ajax call\" + ERROR_NOT_SENT, errorProps);\r\n }\r\n _findPerfResourceEntry(\"xmlhttprequest\", ajaxData, function () {\r\n try {\r\n var dependency = ajaxData[_DYN__CREATE_TRACK_ITEM /* @min:%2eCreateTrackItem */](\"Ajax\", _enableRequestHeaderTracking, function () {\r\n var _a;\r\n var ajaxResponse = (_a = {\r\n statusText: xhr[_DYN_STATUS_TEXT /* @min:%2estatusText */]\r\n },\r\n _a[_DYN_HEADER_MAP /* @min:headerMap */] = null,\r\n _a[_DYN_CORRELATION_CONTEXT /* @min:correlationContext */] = _getAjaxCorrelationContext(xhr),\r\n _a.type = xhr.responseType,\r\n _a[_DYN_RESPONSE_TEXT /* @min:responseText */] = _getResponseText(xhr),\r\n _a.response = xhr[_DYN_RESPONSE /* @min:%2eresponse */],\r\n _a);\r\n if (_enableResponseHeaderTracking) {\r\n var headers = xhr[_DYN_GET_ALL_RESPONSE_HEA15 /* @min:%2egetAllResponseHeaders */]();\r\n if (headers) {\r\n // xhr.getAllResponseHeaders() method returns all the response headers, separated by CRLF, as a string or null\r\n // the regex converts the header string into an array of individual headers\r\n var arr = strTrim(headers).split(/[\\r\\n]+/);\r\n var responseHeaderMap_2 = {};\r\n arrForEach(arr, function (line) {\r\n var parts = line.split(\": \");\r\n var header = parts.shift();\r\n var value = parts.join(\": \");\r\n if (_canIncludeHeaders(header)) {\r\n responseHeaderMap_2[header] = value;\r\n }\r\n });\r\n ajaxResponse[_DYN_HEADER_MAP /* @min:%2eheaderMap */] = responseHeaderMap_2;\r\n }\r\n }\r\n return ajaxResponse;\r\n });\r\n var properties = void 0;\r\n try {\r\n if (!!_addRequestContext) {\r\n properties = _addRequestContext({ status: xhr[_DYN_STATUS /* @min:%2estatus */], xhr: xhr });\r\n }\r\n }\r\n catch (e) {\r\n _throwInternalWarning(_self, 104 /* _eInternalMessageId.FailedAddingCustomDefinedRequestContext */, CUSTOM_REQUEST_CONTEXT_ERROR);\r\n }\r\n if (dependency) {\r\n if (properties !== undefined) {\r\n dependency[STR_PROPERTIES /* @min:%2eproperties */] = __assign(__assign({}, dependency.properties), properties);\r\n }\r\n var sysProperties = ajaxData[_DYN_GET_PART_APROPS /* @min:%2egetPartAProps */]();\r\n _reportDependencyInternal(_dependencyInitializers, _self[_DYN_CORE /* @min:%2ecore */], ajaxData, dependency, null, sysProperties);\r\n }\r\n else {\r\n _reportXhrError(null, {\r\n requestSentTime: ajaxData[_DYN_REQUEST_SENT_TIME /* @min:%2erequestSentTime */],\r\n responseFinishedTime: ajaxData[_DYN_RESPONSE_FINISHED_TI14 /* @min:%2eresponseFinishedTime */]\r\n });\r\n }\r\n }\r\n finally {\r\n // cleanup telemetry data\r\n try {\r\n var xhrRequestData = (xhr[AJAX_DATA_CONTAINER] || { i: {} });\r\n var ajaxDataCntr = (xhrRequestData.i || {});\r\n if (ajaxDataCntr[_ajaxDataId]) {\r\n ajaxDataCntr[_ajaxDataId] = null;\r\n }\r\n }\r\n catch (e) {\r\n // May throw in environments that prevent extension or freeze xhr\r\n }\r\n }\r\n }, function (e) {\r\n _reportXhrError(e, null);\r\n });\r\n }\r\n function _getAjaxCorrelationContext(xhr) {\r\n var _a;\r\n try {\r\n var responseHeadersString = xhr[_DYN_GET_ALL_RESPONSE_HEA15 /* @min:%2egetAllResponseHeaders */]();\r\n if (responseHeadersString !== null) {\r\n var index = _indexOf(responseHeadersString[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */](), RequestHeaders[8 /* eRequestHeaders.requestContextHeaderLowerCase */]);\r\n if (index !== -1) {\r\n var responseHeader = xhr.getResponseHeader(RequestHeaders[0 /* eRequestHeaders.requestContextHeader */]);\r\n return correlationIdGetCorrelationContext(responseHeader);\r\n }\r\n }\r\n }\r\n catch (e) {\r\n _throwInternalWarning(_self, 18 /* _eInternalMessageId.FailedMonitorAjaxGetCorrelationHeader */, CORRELATION_HEADER_ERROR, (_a = {},\r\n _a[_DYN_AJAX_DIAGNOSTICS_MES16 /* @min:ajaxDiagnosticsMessage */] = _getFailedAjaxDiagnosticsMessage(xhr, _ajaxDataId),\r\n _a[_DYN_EXCEPTION /* @min:exception */] = dumpObj(e),\r\n _a));\r\n }\r\n }\r\n function _createMarkId(type, ajaxData) {\r\n if (ajaxData[_DYN_REQUEST_URL /* @min:%2erequestUrl */] && _markPrefix && _enableAjaxPerfTracking) {\r\n var performance_1 = getPerformance();\r\n if (performance_1 && isFunction(performance_1.mark)) {\r\n _markCount++;\r\n var markId = _markPrefix + type + \"#\" + _markCount;\r\n performance_1.mark(markId);\r\n var entries = performance_1.getEntriesByName(markId);\r\n if (entries && entries[_DYN_LENGTH /* @min:%2elength */] === 1) {\r\n ajaxData[_DYN_PERF_MARK /* @min:%2eperfMark */] = entries[0];\r\n }\r\n }\r\n }\r\n }\r\n function _findPerfResourceEntry(initiatorType, ajaxData, trackCallback, reportError) {\r\n var perfMark = ajaxData[_DYN_PERF_MARK /* @min:%2eperfMark */];\r\n var performance = getPerformance();\r\n var maxAttempts = _maxAjaxPerfLookupAttempts;\r\n var retryDelay = _ajaxPerfLookupDelay;\r\n var requestUrl = ajaxData[_DYN_REQUEST_URL /* @min:%2erequestUrl */];\r\n var attempt = 0;\r\n (function locateResourceTiming() {\r\n try {\r\n if (performance && perfMark) {\r\n attempt++;\r\n var perfTiming = null;\r\n var entries = performance.getEntries();\r\n for (var lp = entries[_DYN_LENGTH /* @min:%2elength */] - 1; lp >= 0; lp--) {\r\n var entry = entries[lp];\r\n if (entry) {\r\n if (entry.entryType === \"resource\") {\r\n if (entry.initiatorType === initiatorType &&\r\n (_indexOf(entry[_DYN_NAME /* @min:%2ename */], requestUrl) !== -1 || _indexOf(requestUrl, entry[_DYN_NAME /* @min:%2ename */]) !== -1)) {\r\n perfTiming = entry;\r\n }\r\n }\r\n else if (entry.entryType === \"mark\" && entry[_DYN_NAME /* @min:%2ename */] === perfMark[_DYN_NAME /* @min:%2ename */]) {\r\n // We hit the start event\r\n ajaxData[_DYN_PERF_TIMING /* @min:%2eperfTiming */] = perfTiming;\r\n break;\r\n }\r\n if (entry[_DYN_START_TIME /* @min:%2estartTime */] < perfMark[_DYN_START_TIME /* @min:%2estartTime */] - 1000) {\r\n // Fallback to try and reduce the time spent looking for the perf entry\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n if (!perfMark || // - we don't have a perfMark or\r\n ajaxData[_DYN_PERF_TIMING /* @min:%2eperfTiming */] || // - we have not found the perf entry or\r\n attempt >= maxAttempts || // - we have tried too many attempts or\r\n ajaxData.async === false) { // - this is a sync request\r\n if (perfMark && isFunction(performance.clearMarks)) {\r\n // Remove the mark so we don't fill up the performance resources too much\r\n performance.clearMarks(perfMark[_DYN_NAME /* @min:%2ename */]);\r\n }\r\n ajaxData.perfAttempts = attempt;\r\n // just continue and report the track event\r\n trackCallback();\r\n }\r\n else {\r\n // We need to wait for the browser to populate the window.performance entry\r\n // This needs to be at least 1ms as waiting <= 1 (on firefox) is not enough time for fetch or xhr,\r\n // this is a scheduling issue for the browser implementation\r\n scheduleTimeout(locateResourceTiming, retryDelay);\r\n }\r\n }\r\n catch (e) {\r\n reportError(e);\r\n }\r\n })();\r\n }\r\n function _createFetchRecord(input, init) {\r\n var _a;\r\n var distributedTraceCtx = _getDistributedTraceCtx();\r\n var traceID = (distributedTraceCtx && distributedTraceCtx[_DYN_GET_TRACE_ID /* @min:%2egetTraceId */]()) || generateW3CId();\r\n var spanID = strSubstr(generateW3CId(), 0, 16);\r\n var ajaxData = new ajaxRecord(traceID, spanID, _self[strDiagLog](), (_a = _self.core) === null || _a === void 0 ? void 0 : _a.getTraceCtx());\r\n ajaxData[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */] = distributedTraceCtx && distributedTraceCtx[_DYN_GET_TRACE_FLAGS /* @min:%2egetTraceFlags */]();\r\n ajaxData[_DYN_REQUEST_SENT_TIME /* @min:%2erequestSentTime */] = dateTimeUtilsNow();\r\n ajaxData[_DYN_ERROR_STATUS_TEXT /* @min:%2eerrorStatusText */] = _enableAjaxErrorStatusText;\r\n var requestUrl;\r\n if (input instanceof Request) {\r\n requestUrl = (input || {}).url || \"\";\r\n }\r\n else {\r\n requestUrl = input;\r\n }\r\n if (requestUrl === \"\") {\r\n var location_1 = getLocation();\r\n if (location_1 && location_1.href) {\r\n requestUrl = strSplit(location_1.href, \"#\")[0];\r\n }\r\n }\r\n ajaxData[_DYN_REQUEST_URL /* @min:%2erequestUrl */] = requestUrl;\r\n var method = \"GET\";\r\n if (init && init[_DYN_METHOD /* @min:%2emethod */]) {\r\n method = init[_DYN_METHOD /* @min:%2emethod */];\r\n }\r\n else if (input && input instanceof Request) {\r\n method = input[_DYN_METHOD /* @min:%2emethod */];\r\n }\r\n ajaxData[_DYN_METHOD /* @min:%2emethod */] = method;\r\n var requestHeaders = {};\r\n if (_enableRequestHeaderTracking) {\r\n var headers = new Headers((init ? init[_DYN_HEADERS /* @min:%2eheaders */] : 0) || (input instanceof Request ? (input[_DYN_HEADERS /* @min:%2eheaders */] || {}) : {}));\r\n headers.forEach(function (value, key) {\r\n if (_canIncludeHeaders(key)) {\r\n requestHeaders[key] = value;\r\n }\r\n });\r\n }\r\n ajaxData[_DYN_REQUEST_HEADERS /* @min:%2erequestHeaders */] = requestHeaders;\r\n _createMarkId(STR_FETCH, ajaxData);\r\n return ajaxData;\r\n }\r\n function _getFailedFetchDiagnosticsMessage(input) {\r\n var result = \"\";\r\n try {\r\n if (!isNullOrUndefined(input)) {\r\n if (typeof (input) === \"string\") {\r\n result += \"(url: '\".concat(input, \"')\");\r\n }\r\n else {\r\n result += \"(url: '\".concat(input.url, \"')\");\r\n }\r\n }\r\n }\r\n catch (e) {\r\n _throwInternalCritical(_self, 15 /* _eInternalMessageId.FailedMonitorAjaxOpen */, \"Failed to grab failed fetch diagnostics message\", { exception: dumpObj(e) });\r\n }\r\n return result;\r\n }\r\n function _reportFetchMetrics(callDetails, status, input, response, ajaxData, getResponse, properties) {\r\n if (!ajaxData) {\r\n return;\r\n }\r\n function _reportFetchError(msgId, e, failedProps) {\r\n var errorProps = failedProps || {};\r\n errorProps[\"fetchDiagnosticsMessage\"] = _getFailedFetchDiagnosticsMessage(input);\r\n if (e) {\r\n errorProps[\"exception\"] = dumpObj(e);\r\n }\r\n _throwInternalWarning(_self, msgId, FAILED_TO_CALCULATE_DURATION_ERROR + \"fetch call\" + ERROR_NOT_SENT, errorProps);\r\n }\r\n ajaxData[_DYN_RESPONSE_FINISHED_TI14 /* @min:%2eresponseFinishedTime */] = dateTimeUtilsNow();\r\n ajaxData[_DYN_STATUS /* @min:%2estatus */] = status;\r\n _findPerfResourceEntry(STR_FETCH, ajaxData, function () {\r\n var dependency = ajaxData[_DYN__CREATE_TRACK_ITEM /* @min:%2eCreateTrackItem */](\"Fetch\", _enableRequestHeaderTracking, getResponse);\r\n var properties;\r\n try {\r\n if (!!_addRequestContext) {\r\n properties = _addRequestContext({ status: status, request: input, response: response });\r\n }\r\n }\r\n catch (e) {\r\n _throwInternalWarning(_self, 104 /* _eInternalMessageId.FailedAddingCustomDefinedRequestContext */, CUSTOM_REQUEST_CONTEXT_ERROR);\r\n }\r\n if (dependency) {\r\n if (properties !== undefined) {\r\n dependency[STR_PROPERTIES /* @min:%2eproperties */] = __assign(__assign({}, dependency.properties), properties);\r\n }\r\n var sysProperties = ajaxData[_DYN_GET_PART_APROPS /* @min:%2egetPartAProps */]();\r\n _reportDependencyInternal(_dependencyInitializers, _self[_DYN_CORE /* @min:%2ecore */], ajaxData, dependency, null, sysProperties);\r\n }\r\n else {\r\n _reportFetchError(14 /* _eInternalMessageId.FailedMonitorAjaxDur */, null, {\r\n requestSentTime: ajaxData[_DYN_REQUEST_SENT_TIME /* @min:%2erequestSentTime */],\r\n responseFinishedTime: ajaxData[_DYN_RESPONSE_FINISHED_TI14 /* @min:%2eresponseFinishedTime */]\r\n });\r\n }\r\n }, function (e) {\r\n _reportFetchError(18 /* _eInternalMessageId.FailedMonitorAjaxGetCorrelationHeader */, e, null);\r\n });\r\n }\r\n function _getFetchCorrelationContext(response) {\r\n var _a;\r\n if (response && response[_DYN_HEADERS /* @min:%2eheaders */]) {\r\n try {\r\n var responseHeader = response[_DYN_HEADERS /* @min:%2eheaders */].get(RequestHeaders[0 /* eRequestHeaders.requestContextHeader */]);\r\n return correlationIdGetCorrelationContext(responseHeader);\r\n }\r\n catch (e) {\r\n _throwInternalWarning(_self, 18 /* _eInternalMessageId.FailedMonitorAjaxGetCorrelationHeader */, CORRELATION_HEADER_ERROR, (_a = {\r\n fetchDiagnosticsMessage: _getFailedFetchDiagnosticsMessage(response)\r\n },\r\n _a[_DYN_EXCEPTION /* @min:exception */] = dumpObj(e),\r\n _a));\r\n }\r\n }\r\n }\r\n function _reportDependencyInternal(initializers, core, ajaxData, dependency, properties, systemProperties) {\r\n var _a;\r\n var result = true;\r\n var initializersCount = initializers[_DYN_LENGTH /* @min:%2elength */];\r\n if (initializersCount > 0) {\r\n var details = (_a = {\r\n item: dependency\r\n },\r\n _a[STR_PROPERTIES /* @min:properties */] = properties,\r\n _a.sysProperties = systemProperties,\r\n _a.context = ajaxData ? ajaxData[_DYN_CONTEXT /* @min:%2econtext */] : null,\r\n _a.aborted = ajaxData ? !!ajaxData[_DYN_ABORTED /* @min:%2eaborted */] : false,\r\n _a);\r\n result = _processDependencyContainer(core, initializers, details, \"initializer\");\r\n }\r\n if (result) {\r\n _self[_DYN_TRACK_DEPENDENCY_DAT3 /* @min:%2etrackDependencyDataInternal */](dependency, properties, systemProperties);\r\n }\r\n }\r\n });\r\n return _this;\r\n }\r\n// Removed Stub for AjaxMonitor.prototype.initialize.\r\n AjaxMonitor.prototype.processTelemetry = function (item, itemCtx) {\r\n this.processNext(item, itemCtx);\r\n };\r\n// Removed Stub for AjaxMonitor.prototype.trackDependencyData.\r\n// Removed Stub for AjaxMonitor.prototype.includeCorrelationHeaders.\r\n// Removed Stub for AjaxMonitor.prototype.addDependencyListener.\r\n /**\r\n * Add an dependency telemetry initializer callback function to allow populating additional properties or drop the request.\r\n * It is called after the dependency call has completed and any available performance details are available. A dependency\r\n * initializer is similar to the TelemetryInitializer function but it allows you to block the reporting of the dependency\r\n * request so that it doesn't count against the `maxAjaxCallsPerView`.\r\n * @param dependencyInitializer - The Dependency Telemetry Initializer function\r\n * @returns - A IDependencyInitializerHandler to enable the initializer to be removed\r\n */\r\n AjaxMonitor.prototype.addDependencyInitializer = function (dependencyInitializer) {\r\n return null;\r\n };\r\n// Removed Stub for AjaxMonitor.prototype.trackDependencyDataInternal.\r\n AjaxMonitor.identifier = \"AjaxDependencyPlugin\";\r\n return AjaxMonitor;\r\n}(BaseTelemetryPlugin));\r\nexport { AjaxMonitor };\r\n//# sourceMappingURL=ajax.js.map","/*\n * Application Insights JavaScript SDK - Properties Plugin, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nvar Application = /** @class */ (function () {\r\n function Application() {\r\n }\r\n return Application;\r\n}());\r\nexport { Application };\r\n//# sourceMappingURL=Application.js.map","/*\n * Application Insights JavaScript SDK - Properties Plugin, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nvar Device = /** @class */ (function () {\r\n /**\r\n * Constructs a new instance of the Device class\r\n */\r\n function Device() {\r\n // don't attempt to fingerprint browsers\r\n this.id = \"browser\";\r\n // Device type is a dimension in our data platform\r\n // Setting it to 'Browser' allows to separate client and server dependencies/exceptions\r\n this.deviceClass = \"Browser\";\r\n }\r\n return Device;\r\n}());\r\nexport { Device };\r\n//# sourceMappingURL=Device.js.map","/*\n * Application Insights JavaScript SDK - Properties Plugin, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { onConfigChange } from \"@microsoft/applicationinsights-core-js\";\r\nvar Version = '3.3.4';\r\nvar Internal = /** @class */ (function () {\r\n /**\r\n * Constructs a new instance of the internal telemetry data class.\r\n */\r\n function Internal(config, unloadHookContainer) {\r\n var _this = this;\r\n var unloadHook = onConfigChange((config), function () {\r\n var prefix = config.sdkExtension;\r\n _this.sdkVersion = (prefix ? prefix + \"_\" : \"\") + \"javascript:\" + Version;\r\n });\r\n unloadHookContainer && unloadHookContainer.add(unloadHook);\r\n }\r\n return Internal;\r\n}());\r\nexport { Internal };\r\n//# sourceMappingURL=Internal.js.map","/*\n * Application Insights JavaScript SDK - Properties Plugin, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nvar Location = /** @class */ (function () {\r\n function Location() {\r\n }\r\n return Location;\r\n}());\r\nexport { Location };\r\n//# sourceMappingURL=Location.js.map","/*\n * Application Insights JavaScript SDK - Properties Plugin, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n// @skip-file-minify\r\n// ##############################################################\r\n// AUTO GENERATED FILE: This file is Auto Generated during build.\r\n// ##############################################################\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\n// Note: DON'T Export these const from the package as we are still targeting ES3 this will export a mutable variables that someone could change!!!\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\nexport var _DYN_SESSION_MANAGER = \"sessionManager\"; // Count: 3\r\nexport var _DYN_UPDATE = \"update\"; // Count: 4\r\nexport var _DYN_IS_USER_COOKIE_SET = \"isUserCookieSet\"; // Count: 4\r\nexport var _DYN_IS_NEW_USER = \"isNewUser\"; // Count: 4\r\nexport var _DYN_GET_TRACE_CTX = \"getTraceCtx\"; // Count: 3\r\nexport var _DYN_TELEMETRY_TRACE = \"telemetryTrace\"; // Count: 3\r\nexport var _DYN_APPLY_SESSION_CONTEX0 = \"applySessionContext\"; // Count: 2\r\nexport var _DYN_APPLY_APPLICATION_CO1 = \"applyApplicationContext\"; // Count: 2\r\nexport var _DYN_APPLY_DEVICE_CONTEXT = \"applyDeviceContext\"; // Count: 2\r\nexport var _DYN_APPLY_OPERATION_CONT2 = \"applyOperationContext\"; // Count: 2\r\nexport var _DYN_APPLY_USER_CONTEXT = \"applyUserContext\"; // Count: 2\r\nexport var _DYN_APPLY_OPERATING_SYST3 = \"applyOperatingSystemContxt\"; // Count: 2\r\nexport var _DYN_APPLY_LOCATION_CONTE4 = \"applyLocationContext\"; // Count: 2\r\nexport var _DYN_APPLY_INTERNAL_CONTE5 = \"applyInternalContext\"; // Count: 2\r\nexport var _DYN_ACCOUNT_ID = \"accountId\"; // Count: 7\r\nexport var _DYN_GET_SESSION_ID = \"getSessionId\"; // Count: 4\r\nexport var _DYN_NAME_PREFIX = \"namePrefix\"; // Count: 3\r\nexport var _DYN_SESSION_COOKIE_POSTF6 = \"sessionCookiePostfix\"; // Count: 2\r\nexport var _DYN_USER_COOKIE_POSTFIX = \"userCookiePostfix\"; // Count: 2\r\nexport var _DYN_ID_LENGTH = \"idLength\"; // Count: 4\r\nexport var _DYN_GET_NEW_ID = \"getNewId\"; // Count: 3\r\nexport var _DYN_LENGTH = \"length\"; // Count: 4\r\nexport var _DYN_AUTOMATIC_SESSION = \"automaticSession\"; // Count: 5\r\nexport var _DYN_AUTHENTICATED_ID = \"authenticatedId\"; // Count: 6\r\nexport var _DYN_ACQUISITION_DATE = \"acquisitionDate\"; // Count: 5\r\nexport var _DYN_RENEWAL_DATE = \"renewalDate\"; // Count: 4\r\nexport var _DYN_JOIN = \"join\"; // Count: 5\r\nexport var _DYN_COOKIE_SEPARATOR = \"cookieSeparator\"; // Count: 5\r\nexport var _DYN_AUTH_USER_COOKIE_NAM7 = \"authUserCookieName\"; // Count: 3\r\n//# sourceMappingURL=__DynamicConstants.js.map","/*\n * Application Insights JavaScript SDK - Properties Plugin, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { utlCanUseLocalStorage, utlGetLocalStorage, utlSetLocalStorage } from \"@microsoft/applicationinsights-common\";\r\nimport { _throwInternal, dateNow, dumpObj, getExceptionName, isFunction, newId, onConfigChange, safeGetCookieMgr, safeGetLogger } from \"@microsoft/applicationinsights-core-js\";\r\nimport { _DYN_ACQUISITION_DATE, _DYN_AUTOMATIC_SESSION, _DYN_GET_NEW_ID, _DYN_ID_LENGTH, _DYN_JOIN, _DYN_LENGTH, _DYN_NAME_PREFIX, _DYN_RENEWAL_DATE, _DYN_UPDATE } from \"../__DynamicConstants\";\r\nvar SESSION_COOKIE_NAME = \"ai_session\";\r\nvar ACQUISITION_SPAN = 86400000; // 24 hours in ms\r\nvar RENEWAL_SPAN = 1800000; // 30 minutes in ms\r\nvar COOKIE_UPDATE_INTERVAL = 60000; // 1 minute in ms\r\nvar Session = /** @class */ (function () {\r\n function Session() {\r\n }\r\n return Session;\r\n}());\r\nexport { Session };\r\nvar _SessionManager = /** @class */ (function () {\r\n function _SessionManager(config, core, unloadHookContainer) {\r\n var self = this;\r\n var _storageNamePrefix;\r\n var _cookieUpdatedTimestamp;\r\n var _logger = safeGetLogger(core);\r\n var _cookieManager = safeGetCookieMgr(core);\r\n var _sessionExpirationMs;\r\n var _sessionRenewalMs;\r\n dynamicProto(_SessionManager, self, function (_self) {\r\n if (!config) {\r\n config = {};\r\n }\r\n var unloadHook = onConfigChange(config, function (details) {\r\n _sessionExpirationMs = config.sessionExpirationMs || ACQUISITION_SPAN;\r\n _sessionRenewalMs = config.sessionRenewalMs || RENEWAL_SPAN;\r\n // sessionCookiePostfix takes the preference if it is configured, otherwise takes namePrefix if configured.\r\n var sessionCookiePostfix = config.sessionCookiePostfix || config[_DYN_NAME_PREFIX /* @min:%2enamePrefix */] || \"\";\r\n _storageNamePrefix = SESSION_COOKIE_NAME + sessionCookiePostfix;\r\n });\r\n unloadHookContainer && unloadHookContainer.add(unloadHook);\r\n _self[_DYN_AUTOMATIC_SESSION /* @min:%2eautomaticSession */] = new Session();\r\n _self[_DYN_UPDATE /* @min:%2eupdate */] = function () {\r\n // Always using Date getTime() as there is a bug in older IE instances that causes the performance timings to have the hi-bit set eg 0x800000000 causing\r\n // the number to be incorrect.\r\n var nowMs = dateNow();\r\n var isExpired = false;\r\n var session = _self[_DYN_AUTOMATIC_SESSION /* @min:%2eautomaticSession */];\r\n if (!session.id) {\r\n isExpired = !_initializeAutomaticSession(session, nowMs);\r\n }\r\n if (!isExpired && _sessionExpirationMs > 0) {\r\n var timeSinceAcqMs = nowMs - session[_DYN_ACQUISITION_DATE /* @min:%2eacquisitionDate */];\r\n var timeSinceRenewalMs = nowMs - session[_DYN_RENEWAL_DATE /* @min:%2erenewalDate */];\r\n isExpired = timeSinceAcqMs < 0 || timeSinceRenewalMs < 0; // expired if the acquisition or last renewal are in the future\r\n isExpired = isExpired || timeSinceAcqMs > _sessionExpirationMs; // expired if the time since acquisition is more than session Expiration\r\n isExpired = isExpired || timeSinceRenewalMs > _sessionRenewalMs; // expired if the time since last renewal is more than renewal period\r\n }\r\n // renew if acquisitionSpan or renewalSpan has elapsed\r\n if (isExpired) {\r\n // update automaticSession so session state has correct id\r\n _renew(nowMs);\r\n }\r\n else {\r\n // do not update the cookie more often than cookieUpdateInterval\r\n if (!_cookieUpdatedTimestamp || nowMs - _cookieUpdatedTimestamp > COOKIE_UPDATE_INTERVAL) {\r\n _setCookie(session, nowMs);\r\n }\r\n }\r\n };\r\n /**\r\n * Record the current state of the automatic session and store it in our cookie string format\r\n * into the browser's local storage. This is used to restore the session data when the cookie\r\n * expires.\r\n */\r\n _self.backup = function () {\r\n var session = _self[_DYN_AUTOMATIC_SESSION /* @min:%2eautomaticSession */];\r\n _setStorage(session.id, session[_DYN_ACQUISITION_DATE /* @min:%2eacquisitionDate */], session[_DYN_RENEWAL_DATE /* @min:%2erenewalDate */]);\r\n };\r\n /**\r\n * Use config.namePrefix + ai_session cookie data or local storage data (when the cookie is unavailable) to\r\n * initialize the automatic session.\r\n * @returns true if values set otherwise false\r\n */\r\n function _initializeAutomaticSession(session, now) {\r\n var isValid = false;\r\n var cookieValue = _cookieManager.get(_storageNamePrefix);\r\n if (cookieValue && isFunction(cookieValue.split)) {\r\n isValid = _initializeAutomaticSessionWithData(session, cookieValue);\r\n }\r\n else {\r\n // There's no cookie, but we might have session data in local storage\r\n // This can happen if the session expired or the user actively deleted the cookie\r\n // We only want to recover data if the cookie is missing from expiry. We should respect the user's wishes if the cookie was deleted actively.\r\n // The User class handles this for us and deletes our local storage object if the persistent user cookie was removed.\r\n var storageValue = utlGetLocalStorage(_logger, _storageNamePrefix);\r\n if (storageValue) {\r\n isValid = _initializeAutomaticSessionWithData(session, storageValue);\r\n }\r\n }\r\n return isValid || !!session.id;\r\n }\r\n /**\r\n * Extract id, acquisitionDate, and renewalDate from an ai_session payload string and\r\n * use this data to initialize automaticSession.\r\n *\r\n * @param sessionData - The string stored in an ai_session cookie or local storage backup\r\n * @returns true if values set otherwise false\r\n */\r\n function _initializeAutomaticSessionWithData(session, sessionData) {\r\n var isValid = false;\r\n var sessionReset = \", session will be reset\";\r\n var tokens = sessionData.split(\"|\");\r\n if (tokens[_DYN_LENGTH /* @min:%2elength */] >= 2) {\r\n try {\r\n var acqMs = +tokens[1] || 0;\r\n var renewalMs = +tokens[2] || 0;\r\n if (isNaN(acqMs) || acqMs <= 0) {\r\n _throwInternal(_logger, 2 /* eLoggingSeverity.WARNING */, 27 /* _eInternalMessageId.SessionRenewalDateIsZero */, \"AI session acquisition date is 0\" + sessionReset);\r\n }\r\n else if (isNaN(renewalMs) || renewalMs <= 0) {\r\n _throwInternal(_logger, 2 /* eLoggingSeverity.WARNING */, 27 /* _eInternalMessageId.SessionRenewalDateIsZero */, \"AI session renewal date is 0\" + sessionReset);\r\n }\r\n else if (tokens[0]) {\r\n // Everything looks valid so set the values\r\n session.id = tokens[0];\r\n session[_DYN_ACQUISITION_DATE /* @min:%2eacquisitionDate */] = acqMs;\r\n session[_DYN_RENEWAL_DATE /* @min:%2erenewalDate */] = renewalMs;\r\n isValid = true;\r\n }\r\n }\r\n catch (e) {\r\n _throwInternal(_logger, 1 /* eLoggingSeverity.CRITICAL */, 9 /* _eInternalMessageId.ErrorParsingAISessionCookie */, \"Error parsing ai_session value [\" + (sessionData || \"\") + \"]\" + sessionReset + \" - \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n }\r\n return isValid;\r\n }\r\n function _renew(nowMs) {\r\n var getNewId = config[_DYN_GET_NEW_ID /* @min:%2egetNewId */] || newId;\r\n _self.automaticSession.id = getNewId(config[_DYN_ID_LENGTH /* @min:%2eidLength */] || 22);\r\n _self[_DYN_AUTOMATIC_SESSION /* @min:%2eautomaticSession */][_DYN_ACQUISITION_DATE /* @min:%2eacquisitionDate */] = nowMs;\r\n _setCookie(_self[_DYN_AUTOMATIC_SESSION /* @min:%2eautomaticSession */], nowMs);\r\n // If this browser does not support local storage, fire an internal log to keep track of it at this point\r\n if (!utlCanUseLocalStorage()) {\r\n _throwInternal(_logger, 2 /* eLoggingSeverity.WARNING */, 0 /* _eInternalMessageId.BrowserDoesNotSupportLocalStorage */, \"Browser does not support local storage. Session durations will be inaccurate.\");\r\n }\r\n }\r\n function _setCookie(session, nowMs) {\r\n var acq = session[_DYN_ACQUISITION_DATE /* @min:%2eacquisitionDate */];\r\n session[_DYN_RENEWAL_DATE /* @min:%2erenewalDate */] = nowMs;\r\n var renewalPeriodMs = _sessionRenewalMs;\r\n // Set cookie to expire after the session expiry time passes or the session renewal deadline, whichever is sooner\r\n // Expiring the cookie will cause the session to expire even if the user isn't on the page\r\n var acqTimeLeftMs = (acq + _sessionExpirationMs) - nowMs;\r\n var cookie = [session.id, acq, nowMs];\r\n var maxAgeSec = 0;\r\n if (acqTimeLeftMs < renewalPeriodMs) {\r\n maxAgeSec = acqTimeLeftMs / 1000;\r\n }\r\n else {\r\n maxAgeSec = renewalPeriodMs / 1000;\r\n }\r\n var cookieDomain = config.cookieDomain || null;\r\n // if sessionExpirationMs is set to 0, it means the expiry is set to 0 for this session cookie\r\n // A cookie with 0 expiry in the session cookie will never expire for that browser session. If the browser is closed the cookie expires.\r\n // Depending on the browser, another instance does not inherit this cookie, however, another tab will\r\n _cookieManager.set(_storageNamePrefix, cookie[_DYN_JOIN /* @min:%2ejoin */](\"|\"), _sessionExpirationMs > 0 ? maxAgeSec : null, cookieDomain);\r\n _cookieUpdatedTimestamp = nowMs;\r\n }\r\n function _setStorage(guid, acq, renewal) {\r\n // Keep data in local storage to retain the last session id, allowing us to cleanly end the session when it expires\r\n // Browsers that don't support local storage won't be able to end sessions cleanly from the client\r\n // The server will notice this and end the sessions itself, with loss of accurate session duration\r\n utlSetLocalStorage(_logger, _storageNamePrefix, [guid, acq, renewal][_DYN_JOIN /* @min:%2ejoin */](\"|\"));\r\n }\r\n });\r\n }\r\n// Removed Stub for _SessionManager.prototype.update.\r\n// Removed Stub for _SessionManager.prototype.backup.\r\n // This is a workaround for an IE bug when using dynamicProto() with classes that don't have any\n // non-dynamic functions or static properties/functions when using uglify-js to minify the resulting code.\n _SessionManager.__ieDyn=1;\n\n return _SessionManager;\r\n}());\r\nexport { _SessionManager };\r\n//# sourceMappingURL=Session.js.map","/*\n * Application Insights JavaScript SDK - Properties Plugin, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { dataSanitizeString } from \"@microsoft/applicationinsights-common\";\r\nimport { generateW3CId, getLocation } from \"@microsoft/applicationinsights-core-js\";\r\nvar TelemetryTrace = /** @class */ (function () {\r\n function TelemetryTrace(id, parentId, name, logger) {\r\n var _self = this;\r\n _self.traceID = id || generateW3CId();\r\n _self.parentID = parentId;\r\n var location = getLocation();\r\n if (!name && location && location.pathname) {\r\n name = location.pathname;\r\n }\r\n _self.name = dataSanitizeString(logger, name);\r\n }\r\n return TelemetryTrace;\r\n}());\r\nexport { TelemetryTrace };\r\n//# sourceMappingURL=TelemetryTrace.js.map","/*\n * Application Insights JavaScript SDK - Properties Plugin, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { utlRemoveStorage } from \"@microsoft/applicationinsights-common\";\r\nimport { _throwInternal, newId, onConfigChange, safeGetCookieMgr, safeGetLogger, toISOString } from \"@microsoft/applicationinsights-core-js\";\r\nimport { objDefine } from \"@nevware21/ts-utils\";\r\nimport { _DYN_ACCOUNT_ID, _DYN_AUTHENTICATED_ID, _DYN_AUTH_USER_COOKIE_NAM7, _DYN_COOKIE_SEPARATOR, _DYN_GET_NEW_ID, _DYN_ID_LENGTH, _DYN_IS_NEW_USER, _DYN_IS_USER_COOKIE_SET, _DYN_JOIN, _DYN_LENGTH, _DYN_NAME_PREFIX, _DYN_UPDATE, _DYN_USER_COOKIE_POSTFIX } from \"../__DynamicConstants\";\r\nfunction _validateUserInput(id) {\r\n // Validate:\r\n // 1. Id is a non-empty string.\r\n // 2. It does not contain special characters for cookies.\r\n if (typeof id !== \"string\" ||\r\n !id ||\r\n id.match(/,|;|=| |\\|/)) {\r\n return false;\r\n }\r\n return true;\r\n}\r\nvar User = /** @class */ (function () {\r\n function User(config, core, unloadHookContainer) {\r\n /**\r\n * A flag indicating whether this represents a new user\r\n */\r\n this.isNewUser = false;\r\n /**\r\n * A flag indicating whether the user cookie has been set\r\n */\r\n this.isUserCookieSet = false;\r\n var _logger = safeGetLogger(core);\r\n var _cookieManager = safeGetCookieMgr(core);\r\n var _storageNamePrefix;\r\n dynamicProto(User, this, function (_self) {\r\n // Define _self.config\r\n objDefine(_self, \"config\", {\r\n g: function () { return config; }\r\n });\r\n var unloadHook = onConfigChange(config, function () {\r\n var userCookiePostfix = config[_DYN_USER_COOKIE_POSTFIX /* @min:%2euserCookiePostfix */] || \"\";\r\n _storageNamePrefix = User.userCookieName + userCookiePostfix;\r\n // get userId or create new one if none exists\r\n var cookie = _cookieManager.get(_storageNamePrefix);\r\n if (cookie) {\r\n _self[_DYN_IS_NEW_USER /* @min:%2eisNewUser */] = false;\r\n var params = cookie.split(User[_DYN_COOKIE_SEPARATOR /* @min:%2ecookieSeparator */]);\r\n if (params[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n _self.id = params[0];\r\n // we already have a cookie\r\n _self[_DYN_IS_USER_COOKIE_SET /* @min:%2eisUserCookieSet */] = !!_self.id;\r\n }\r\n }\r\n if (!_self.id) {\r\n _self.id = _generateNewId();\r\n var newCookie = _generateNewCookie(_self.id);\r\n _setUserCookie(newCookie[_DYN_JOIN /* @min:%2ejoin */](User[_DYN_COOKIE_SEPARATOR /* @min:%2ecookieSeparator */]));\r\n // If we have an config.namePrefix() + ai_session in local storage this means the user actively removed our cookies.\r\n // We should respect their wishes and clear ourselves from local storage\r\n var name_1 = (config[_DYN_NAME_PREFIX /* @min:%2enamePrefix */] || \"\") + \"ai_session\";\r\n utlRemoveStorage(_logger, name_1);\r\n }\r\n // We still take the account id from the ctor param for backward compatibility.\r\n // But if the the customer set the accountId through the newer setAuthenticatedUserContext API, we will override it.\r\n _self[_DYN_ACCOUNT_ID /* @min:%2eaccountId */] = config[_DYN_ACCOUNT_ID /* @min:%2eaccountId */] || undefined;\r\n // Get the auth user id and account id from the cookie if exists\r\n // Cookie is in the pattern: |\r\n var authCookie = _cookieManager.get(User[_DYN_AUTH_USER_COOKIE_NAM7 /* @min:%2eauthUserCookieName */]);\r\n if (authCookie) {\r\n authCookie = decodeURI(authCookie);\r\n var authCookieString = authCookie.split(User[_DYN_COOKIE_SEPARATOR /* @min:%2ecookieSeparator */]);\r\n if (authCookieString[0]) {\r\n _self[_DYN_AUTHENTICATED_ID /* @min:%2eauthenticatedId */] = authCookieString[0];\r\n }\r\n if (authCookieString[_DYN_LENGTH /* @min:%2elength */] > 1 && authCookieString[1]) {\r\n _self[_DYN_ACCOUNT_ID /* @min:%2eaccountId */] = authCookieString[1];\r\n }\r\n }\r\n });\r\n unloadHookContainer && unloadHookContainer.add(unloadHook);\r\n function _generateNewId() {\r\n var theConfig = (config || {});\r\n var getNewId = theConfig[_DYN_GET_NEW_ID /* @min:%2egetNewId */] || newId;\r\n var id = getNewId(theConfig[_DYN_ID_LENGTH /* @min:%2eidLength */] ? config[_DYN_ID_LENGTH /* @min:%2eidLength */] : 22);\r\n return id;\r\n }\r\n function _generateNewCookie(userId) {\r\n var acqStr = toISOString(new Date());\r\n _self.accountAcquisitionDate = acqStr;\r\n _self[_DYN_IS_NEW_USER /* @min:%2eisNewUser */] = true;\r\n var newCookie = [userId, acqStr];\r\n return newCookie;\r\n }\r\n function _setUserCookie(cookie) {\r\n // without expiration, cookies expire at the end of the session\r\n // set it to 365 days from now\r\n // 365 * 24 * 60 * 60 = 31536000\r\n var oneYear = 31536000;\r\n _self[_DYN_IS_USER_COOKIE_SET /* @min:%2eisUserCookieSet */] = _cookieManager.set(_storageNamePrefix, cookie, oneYear);\r\n }\r\n _self.setAuthenticatedUserContext = function (authenticatedUserId, accountId, storeInCookie) {\r\n if (storeInCookie === void 0) { storeInCookie = false; }\r\n // Validate inputs to ensure no cookie control characters.\r\n var isInvalidInput = !_validateUserInput(authenticatedUserId) || (accountId && !_validateUserInput(accountId));\r\n if (isInvalidInput) {\r\n _throwInternal(_logger, 2 /* eLoggingSeverity.WARNING */, 60 /* _eInternalMessageId.SetAuthContextFailedAccountName */, \"Setting auth user context failed. \" +\r\n \"User auth/account id should be of type string, and not contain commas, semi-colons, equal signs, spaces, or vertical-bars.\", true);\r\n return;\r\n }\r\n // Create cookie string.\r\n _self[_DYN_AUTHENTICATED_ID /* @min:%2eauthenticatedId */] = authenticatedUserId;\r\n var authCookie = _self[_DYN_AUTHENTICATED_ID /* @min:%2eauthenticatedId */];\r\n if (accountId) {\r\n _self[_DYN_ACCOUNT_ID /* @min:%2eaccountId */] = accountId;\r\n authCookie = [_self[_DYN_AUTHENTICATED_ID /* @min:%2eauthenticatedId */], _self.accountId][_DYN_JOIN /* @min:%2ejoin */](User[_DYN_COOKIE_SEPARATOR /* @min:%2ecookieSeparator */]);\r\n }\r\n if (storeInCookie) {\r\n // Set the cookie. No expiration date because this is a session cookie (expires when browser closed).\r\n // Encoding the cookie to handle unexpected unicode characters.\r\n _cookieManager.set(User[_DYN_AUTH_USER_COOKIE_NAM7 /* @min:%2eauthUserCookieName */], encodeURI(authCookie));\r\n }\r\n };\r\n /**\r\n * Clears the authenticated user id and the account id from the user context.\r\n * @returns {}\r\n */\r\n _self.clearAuthenticatedUserContext = function () {\r\n _self[_DYN_AUTHENTICATED_ID /* @min:%2eauthenticatedId */] = null;\r\n _self[_DYN_ACCOUNT_ID /* @min:%2eaccountId */] = null;\r\n _cookieManager.del(User[_DYN_AUTH_USER_COOKIE_NAM7 /* @min:%2eauthUserCookieName */]);\r\n };\r\n _self[_DYN_UPDATE /* @min:%2eupdate */] = function (userId) {\r\n // Optimizations to avoid setting and processing the cookie when not needed\r\n if (_self.id !== userId || !_self[_DYN_IS_USER_COOKIE_SET /* @min:%2eisUserCookieSet */]) {\r\n var user_id = userId ? userId : _generateNewId();\r\n var user_cookie = _generateNewCookie(user_id);\r\n _setUserCookie(user_cookie[_DYN_JOIN /* @min:%2ejoin */](User[_DYN_COOKIE_SEPARATOR /* @min:%2ecookieSeparator */]));\r\n }\r\n };\r\n });\r\n }\r\n// Removed Stub for User.prototype.setAuthenticatedUserContext.\r\n// Removed Stub for User.prototype.clearAuthenticatedUserContext.\r\n// Removed Stub for User.prototype.update.\r\n User.cookieSeparator = \"|\";\r\n User.userCookieName = \"ai_user\";\r\n User.authUserCookieName = \"ai_authUser\";\r\n return User;\r\n}());\r\nexport { User };\r\n//# sourceMappingURL=User.js.map","/*\n * Application Insights JavaScript SDK - Properties Plugin, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n/**\r\n* TelemetryContext.ts\r\n* @copyright Microsoft 2018\r\n*/\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { CtxTagKeys, Extensions, PageView, dataSanitizeString } from \"@microsoft/applicationinsights-common\";\r\nimport { _InternalLogMessage, getSetValue, hasWindow, isNullOrUndefined, isString, objKeys, setValue } from \"@microsoft/applicationinsights-core-js\";\r\nimport { Application } from \"./Context/Application\";\r\nimport { Device } from \"./Context/Device\";\r\nimport { Internal } from \"./Context/Internal\";\r\nimport { Location } from \"./Context/Location\";\r\nimport { Session, _SessionManager } from \"./Context/Session\";\r\nimport { TelemetryTrace } from \"./Context/TelemetryTrace\";\r\nimport { User } from \"./Context/User\";\r\nimport { _DYN_ACCOUNT_ID, _DYN_APPLY_APPLICATION_CO1, _DYN_APPLY_DEVICE_CONTEXT, _DYN_APPLY_INTERNAL_CONTE5, _DYN_APPLY_LOCATION_CONTE4, _DYN_APPLY_OPERATING_SYST3, _DYN_APPLY_OPERATION_CONT2, _DYN_APPLY_SESSION_CONTEX0, _DYN_APPLY_USER_CONTEXT, _DYN_AUTHENTICATED_ID, _DYN_AUTOMATIC_SESSION, _DYN_GET_SESSION_ID, _DYN_LENGTH, _DYN_SESSION_MANAGER, _DYN_TELEMETRY_TRACE } from \"./__DynamicConstants\";\r\nvar strExt = \"ext\";\r\nvar strTags = \"tags\";\r\nfunction _removeEmpty(target, name) {\r\n if (target && target[name] && objKeys(target[name])[_DYN_LENGTH /* @min:%2elength */] === 0) {\r\n delete target[name];\r\n }\r\n}\r\nfunction _nullResult() {\r\n return null;\r\n}\r\nvar TelemetryContext = /** @class */ (function () {\r\n function TelemetryContext(core, defaultConfig, previousTraceCtx, unloadHookContainer) {\r\n var _this = this;\r\n var logger = core.logger;\r\n dynamicProto(TelemetryContext, this, function (_self) {\r\n _self.appId = _nullResult;\r\n _self[_DYN_GET_SESSION_ID /* @min:%2egetSessionId */] = _nullResult;\r\n _self.application = new Application();\r\n _self.internal = new Internal(defaultConfig, unloadHookContainer);\r\n if (hasWindow()) {\r\n _self[_DYN_SESSION_MANAGER /* @min:%2esessionManager */] = new _SessionManager(defaultConfig, core, unloadHookContainer);\r\n _self.device = new Device();\r\n _self.location = new Location();\r\n _self.user = new User(defaultConfig, core, unloadHookContainer);\r\n var traceId = void 0;\r\n var parentId = void 0;\r\n var name_1;\r\n if (previousTraceCtx) {\r\n traceId = previousTraceCtx.getTraceId();\r\n parentId = previousTraceCtx.getSpanId();\r\n name_1 = previousTraceCtx.getName();\r\n }\r\n _self[_DYN_TELEMETRY_TRACE /* @min:%2etelemetryTrace */] = new TelemetryTrace(traceId, parentId, name_1, logger);\r\n _self.session = new Session();\r\n }\r\n _self[_DYN_GET_SESSION_ID /* @min:%2egetSessionId */] = function () {\r\n var session = _self.session;\r\n var sesId = null;\r\n // If customer set session info, apply their context; otherwise apply context automatically generated\r\n if (session && isString(session.id)) {\r\n sesId = session.id;\r\n }\r\n else {\r\n // Gets the automatic session if it exists or an empty object\r\n var autoSession = (_self[_DYN_SESSION_MANAGER /* @min:%2esessionManager */] || {})[_DYN_AUTOMATIC_SESSION /* @min:%2eautomaticSession */];\r\n sesId = autoSession && isString(autoSession.id) ? autoSession.id : null;\r\n }\r\n return sesId;\r\n };\r\n _self[_DYN_APPLY_SESSION_CONTEX0 /* @min:%2eapplySessionContext */] = function (evt, itemCtx) {\r\n setValue(getSetValue(evt.ext, Extensions.AppExt), \"sesId\", _self[_DYN_GET_SESSION_ID /* @min:%2egetSessionId */](), isString);\r\n };\r\n _self[_DYN_APPLY_OPERATING_SYST3 /* @min:%2eapplyOperatingSystemContxt */] = function (evt, itemCtx) {\r\n setValue(evt.ext, Extensions.OSExt, _self.os);\r\n };\r\n _self[_DYN_APPLY_APPLICATION_CO1 /* @min:%2eapplyApplicationContext */] = function (evt, itemCtx) {\r\n var application = _self.application;\r\n if (application) {\r\n // evt.ext.app\r\n var tags = getSetValue(evt, strTags);\r\n setValue(tags, CtxTagKeys.applicationVersion, application.ver, isString);\r\n setValue(tags, CtxTagKeys.applicationBuild, application.build, isString);\r\n }\r\n };\r\n _self[_DYN_APPLY_DEVICE_CONTEXT /* @min:%2eapplyDeviceContext */] = function (evt, itemCtx) {\r\n var device = _self.device;\r\n if (device) {\r\n // evt.ext.device\r\n var extDevice = getSetValue(getSetValue(evt, strExt), Extensions.DeviceExt);\r\n setValue(extDevice, \"localId\", device.id, isString);\r\n setValue(extDevice, \"ip\", device.ip, isString);\r\n setValue(extDevice, \"model\", device.model, isString);\r\n setValue(extDevice, \"deviceClass\", device.deviceClass, isString);\r\n }\r\n };\r\n _self[_DYN_APPLY_INTERNAL_CONTE5 /* @min:%2eapplyInternalContext */] = function (evt, itemCtx) {\r\n var internal = _self.internal;\r\n if (internal) {\r\n var tags = getSetValue(evt, strTags);\r\n setValue(tags, CtxTagKeys.internalAgentVersion, internal.agentVersion, isString); // not mapped in CS 4.0\r\n setValue(tags, CtxTagKeys.internalSdkVersion, dataSanitizeString(logger, internal.sdkVersion, 64), isString);\r\n if (evt.baseType === _InternalLogMessage.dataType || evt.baseType === PageView.dataType) {\r\n setValue(tags, CtxTagKeys.internalSnippet, internal.snippetVer, isString);\r\n setValue(tags, CtxTagKeys.internalSdkSrc, internal.sdkSrc, isString);\r\n }\r\n }\r\n };\r\n _self[_DYN_APPLY_LOCATION_CONTE4 /* @min:%2eapplyLocationContext */] = function (evt, itemCtx) {\r\n var location = _this.location;\r\n if (location) {\r\n setValue(getSetValue(evt, strTags, []), CtxTagKeys.locationIp, location.ip, isString);\r\n }\r\n };\r\n _self[_DYN_APPLY_OPERATION_CONT2 /* @min:%2eapplyOperationContext */] = function (evt, itemCtx) {\r\n var telemetryTrace = _self[_DYN_TELEMETRY_TRACE /* @min:%2etelemetryTrace */];\r\n if (telemetryTrace) {\r\n var extTrace = getSetValue(getSetValue(evt, strExt), Extensions.TraceExt, { traceID: undefined, parentID: undefined });\r\n setValue(extTrace, \"traceID\", telemetryTrace.traceID, isString, isNullOrUndefined);\r\n setValue(extTrace, \"name\", telemetryTrace.name, isString, isNullOrUndefined);\r\n setValue(extTrace, \"parentID\", telemetryTrace.parentID, isString, isNullOrUndefined);\r\n }\r\n };\r\n _self.applyWebContext = function (evt, itemCtx) {\r\n var web = _this.web;\r\n if (web) {\r\n setValue(getSetValue(evt, strExt), Extensions.WebExt, web);\r\n }\r\n };\r\n _self[_DYN_APPLY_USER_CONTEXT /* @min:%2eapplyUserContext */] = function (evt, itemCtx) {\r\n var user = _self.user;\r\n if (user) {\r\n var tags = getSetValue(evt, strTags, []);\r\n // stays in tags\r\n setValue(tags, CtxTagKeys.userAccountId, user[_DYN_ACCOUNT_ID /* @min:%2eaccountId */], isString);\r\n // CS 4.0\r\n var extUser = getSetValue(getSetValue(evt, strExt), Extensions.UserExt);\r\n setValue(extUser, \"id\", user.id, isString);\r\n setValue(extUser, \"authId\", user[_DYN_AUTHENTICATED_ID /* @min:%2eauthenticatedId */], isString);\r\n }\r\n };\r\n _self.cleanUp = function (evt, itemCtx) {\r\n var ext = evt.ext;\r\n if (ext) {\r\n _removeEmpty(ext, Extensions.DeviceExt);\r\n _removeEmpty(ext, Extensions.UserExt);\r\n _removeEmpty(ext, Extensions.WebExt);\r\n _removeEmpty(ext, Extensions.OSExt);\r\n _removeEmpty(ext, Extensions.AppExt);\r\n _removeEmpty(ext, Extensions.TraceExt);\r\n }\r\n };\r\n });\r\n }\r\n// Removed Stub for TelemetryContext.prototype.applySessionContext.\r\n// Removed Stub for TelemetryContext.prototype.applyOperatingSystemContxt.\r\n// Removed Stub for TelemetryContext.prototype.applyApplicationContext.\r\n// Removed Stub for TelemetryContext.prototype.applyDeviceContext.\r\n// Removed Stub for TelemetryContext.prototype.applyInternalContext.\r\n// Removed Stub for TelemetryContext.prototype.applyLocationContext.\r\n// Removed Stub for TelemetryContext.prototype.applyOperationContext.\r\n// Removed Stub for TelemetryContext.prototype.applyWebContext.\r\n// Removed Stub for TelemetryContext.prototype.applyUserContext.\r\n// Removed Stub for TelemetryContext.prototype.cleanUp.\r\n // This is a workaround for an IE bug when using dynamicProto() with classes that don't have any\n // non-dynamic functions or static properties/functions when using uglify-js to minify the resulting code.\n TelemetryContext.__ieDyn=1;\n\n return TelemetryContext;\r\n}());\r\nexport { TelemetryContext };\r\n//# sourceMappingURL=TelemetryContext.js.map","/*\n * Application Insights JavaScript SDK - Properties Plugin, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n/**\r\n* PropertiesPlugin.ts\r\n* @copyright Microsoft 2018\r\n*/\r\nvar _a;\r\nimport { __extendsFn as __extends } from \"@microsoft/applicationinsights-shims\";\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { BreezeChannelIdentifier, PageView, PropertiesPluginIdentifier, createDistributedTraceContextFromTrace, utlSetStoragePrefix } from \"@microsoft/applicationinsights-common\";\r\nimport { BaseTelemetryPlugin, _InternalLogMessage, _logInternalMessage, createProcessTelemetryContext, getNavigator, getSetValue, isNullOrUndefined, onConfigChange } from \"@microsoft/applicationinsights-core-js\";\r\nimport { objDeepFreeze, objDefine } from \"@nevware21/ts-utils\";\r\nimport { TelemetryContext } from \"./TelemetryContext\";\r\nimport { _DYN_ACCOUNT_ID, _DYN_APPLY_APPLICATION_CO1, _DYN_APPLY_DEVICE_CONTEXT, _DYN_APPLY_INTERNAL_CONTE5, _DYN_APPLY_LOCATION_CONTE4, _DYN_APPLY_OPERATING_SYST3, _DYN_APPLY_OPERATION_CONT2, _DYN_APPLY_SESSION_CONTEX0, _DYN_APPLY_USER_CONTEXT, _DYN_GET_NEW_ID, _DYN_GET_SESSION_ID, _DYN_GET_TRACE_CTX, _DYN_ID_LENGTH, _DYN_IS_NEW_USER, _DYN_IS_USER_COOKIE_SET, _DYN_NAME_PREFIX, _DYN_SESSION_COOKIE_POSTF6, _DYN_SESSION_MANAGER, _DYN_TELEMETRY_TRACE, _DYN_UPDATE, _DYN_USER_COOKIE_POSTFIX } from \"./__DynamicConstants\";\r\nvar undefString;\r\nvar nullValue = null;\r\nvar _defaultConfig = objDeepFreeze((_a = {},\r\n _a[_DYN_ACCOUNT_ID /* @min:accountId */] = nullValue,\r\n _a.sessionRenewalMs = 30 * 60 * 1000,\r\n _a.samplingPercentage = 100,\r\n _a.sessionExpirationMs = 24 * 60 * 60 * 1000,\r\n _a.cookieDomain = nullValue,\r\n _a.sdkExtension = nullValue,\r\n _a.isBrowserLinkTrackingEnabled = false,\r\n _a.appId = nullValue,\r\n _a[_DYN_GET_SESSION_ID /* @min:getSessionId */] = nullValue,\r\n _a[_DYN_NAME_PREFIX /* @min:namePrefix */] = undefString,\r\n _a[_DYN_SESSION_COOKIE_POSTF6 /* @min:sessionCookiePostfix */] = undefString,\r\n _a[_DYN_USER_COOKIE_POSTFIX /* @min:userCookiePostfix */] = undefString,\r\n _a[_DYN_ID_LENGTH /* @min:idLength */] = 22,\r\n _a[_DYN_GET_NEW_ID /* @min:getNewId */] = nullValue,\r\n _a));\r\nvar PropertiesPlugin = /** @class */ (function (_super) {\r\n __extends(PropertiesPlugin, _super);\r\n function PropertiesPlugin() {\r\n var _this = _super.call(this) || this;\r\n _this.priority = 110;\r\n _this.identifier = PropertiesPluginIdentifier;\r\n var _extensionConfig;\r\n var _distributedTraceCtx;\r\n var _previousTraceCtx;\r\n var _context;\r\n var _disableUserInitMessage;\r\n dynamicProto(PropertiesPlugin, _this, function (_self, _base) {\r\n _initDefaults();\r\n objDefine(_self, \"context\", {\r\n g: function () {\r\n return _context;\r\n }\r\n });\r\n _self.initialize = function (config, core, extensions, pluginChain) {\r\n _base.initialize(config, core, extensions, pluginChain);\r\n _populateDefaults(config);\r\n };\r\n /**\r\n * Add Part A fields to the event\r\n * @param event - The event that needs to be processed\r\n */\r\n _self.processTelemetry = function (event, itemCtx) {\r\n if (!isNullOrUndefined(event)) {\r\n itemCtx = _self._getTelCtx(itemCtx);\r\n // If the envelope is PageView, reset the internal message count so that we can send internal telemetry for the new page.\r\n if (event.name === PageView.envelopeType) {\r\n itemCtx.diagLog().resetInternalMessageCount();\r\n }\r\n var theContext = (_context || {});\r\n if (theContext.session) {\r\n // If customer did not provide custom session id update the session manager\r\n if (typeof _context.session.id !== \"string\" && theContext[_DYN_SESSION_MANAGER /* @min:%2esessionManager */]) {\r\n theContext[_DYN_SESSION_MANAGER /* @min:%2esessionManager */][_DYN_UPDATE /* @min:%2eupdate */]();\r\n }\r\n }\r\n var userCtx = theContext.user;\r\n if (userCtx && !userCtx[_DYN_IS_USER_COOKIE_SET /* @min:%2eisUserCookieSet */]) {\r\n userCtx[_DYN_UPDATE /* @min:%2eupdate */](theContext.user.id);\r\n }\r\n _processTelemetryInternal(event, itemCtx);\r\n if (userCtx && userCtx[_DYN_IS_NEW_USER /* @min:%2eisNewUser */]) {\r\n userCtx[_DYN_IS_NEW_USER /* @min:%2eisNewUser */] = false;\r\n if (!_disableUserInitMessage) {\r\n var message = new _InternalLogMessage(72 /* _eInternalMessageId.SendBrowserInfoOnUserInit */, ((getNavigator() || {}).userAgent || \"\"));\r\n _logInternalMessage(itemCtx.diagLog(), 1 /* eLoggingSeverity.CRITICAL */, message);\r\n }\r\n }\r\n _self.processNext(event, itemCtx);\r\n }\r\n };\r\n _self._doTeardown = function (unloadCtx, unloadState) {\r\n var core = (unloadCtx || {}).core();\r\n if (core && core[_DYN_GET_TRACE_CTX /* @min:%2egetTraceCtx */]) {\r\n var traceCtx = core[_DYN_GET_TRACE_CTX /* @min:%2egetTraceCtx */](false);\r\n if (traceCtx === _distributedTraceCtx) {\r\n core.setTraceCtx(_previousTraceCtx);\r\n }\r\n }\r\n _initDefaults();\r\n };\r\n function _initDefaults() {\r\n _extensionConfig = null;\r\n _distributedTraceCtx = null;\r\n _previousTraceCtx = null;\r\n _context = null;\r\n _disableUserInitMessage = true;\r\n }\r\n function _populateDefaults(config) {\r\n var identifier = _self.identifier;\r\n var core = _self.core;\r\n // This function will be re-called whenever any referenced configuration is changed\r\n _self._addHook(onConfigChange(config, function () {\r\n var ctx = createProcessTelemetryContext(null, config, core);\r\n if (config.storagePrefix) {\r\n utlSetStoragePrefix(config.storagePrefix);\r\n }\r\n _disableUserInitMessage = config.disableUserInitMessage === false ? false : true;\r\n _extensionConfig = ctx.getExtCfg(identifier, _defaultConfig);\r\n // Test hook to allow accessing the internal values -- explicitly not defined as an available property on the class\r\n _self[\"_extConfig\"] = _extensionConfig;\r\n }));\r\n // This is outside of the onConfigChange as we don't want to update (replace) these values whenever a referenced config item changes\r\n _previousTraceCtx = core[_DYN_GET_TRACE_CTX /* @min:%2egetTraceCtx */](false);\r\n _context = new TelemetryContext(core, _extensionConfig, _previousTraceCtx, _self._unloadHooks);\r\n _distributedTraceCtx = createDistributedTraceContextFromTrace(_self.context[_DYN_TELEMETRY_TRACE /* @min:%2etelemetryTrace */], _previousTraceCtx);\r\n core.setTraceCtx(_distributedTraceCtx);\r\n _self.context.appId = function () {\r\n var breezeChannel = core.getPlugin(BreezeChannelIdentifier);\r\n return breezeChannel ? breezeChannel.plugin[\"_appId\"] : null;\r\n };\r\n }\r\n function _processTelemetryInternal(evt, itemCtx) {\r\n // Set Part A fields\r\n getSetValue(evt, \"tags\", []);\r\n getSetValue(evt, \"ext\", {});\r\n var ctx = _self.context;\r\n ctx[_DYN_APPLY_SESSION_CONTEX0 /* @min:%2eapplySessionContext */](evt, itemCtx);\r\n ctx[_DYN_APPLY_APPLICATION_CO1 /* @min:%2eapplyApplicationContext */](evt, itemCtx);\r\n ctx[_DYN_APPLY_DEVICE_CONTEXT /* @min:%2eapplyDeviceContext */](evt, itemCtx);\r\n ctx[_DYN_APPLY_OPERATION_CONT2 /* @min:%2eapplyOperationContext */](evt, itemCtx);\r\n ctx[_DYN_APPLY_USER_CONTEXT /* @min:%2eapplyUserContext */](evt, itemCtx);\r\n ctx[_DYN_APPLY_OPERATING_SYST3 /* @min:%2eapplyOperatingSystemContxt */](evt, itemCtx);\r\n ctx.applyWebContext(evt, itemCtx);\r\n ctx[_DYN_APPLY_LOCATION_CONTE4 /* @min:%2eapplyLocationContext */](evt, itemCtx); // legacy tags\r\n ctx[_DYN_APPLY_INTERNAL_CONTE5 /* @min:%2eapplyInternalContext */](evt, itemCtx); // legacy tags\r\n ctx.cleanUp(evt, itemCtx);\r\n }\r\n });\r\n return _this;\r\n }\r\n// Removed Stub for PropertiesPlugin.prototype.initialize.\r\n// Removed Stub for PropertiesPlugin.prototype.processTelemetry.\r\n // This is a workaround for an IE bug when using dynamicProto() with classes that don't have any\n // non-dynamic functions or static properties/functions when using uglify-js to minify the resulting code.\n PropertiesPlugin.__ieDyn=1;\n\n return PropertiesPlugin;\r\n}(BaseTelemetryPlugin));\r\nexport default PropertiesPlugin;\r\n//# sourceMappingURL=PropertiesPlugin.js.map","/*\n * Application Insights JavaScript SDK - Web, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n// ###################################################################################################################################################\r\n// Note: DON'T Export these const from the package as we are still targeting IE/ES5 this will export a mutable variables that someone could change ###\r\n// ###################################################################################################################################################\r\n// Generally you should only put values that are used more than 2 times and then only if not already exposed as a constant (such as SdkCoreNames)\r\n// as when using \"short\" named values from here they will be will be minified smaller than the SdkCoreNames[eSdkCoreNames.xxxx] value.\r\nvar _AUTHENTICATED_USER_CONTEXT = \"AuthenticatedUserContext\";\r\nvar _TRACK = \"track\";\r\nexport var STR_EMPTY = \"\";\r\nexport var STR_SNIPPET = \"snippet\";\r\nexport var STR_GET_COOKIE_MGR = \"getCookieMgr\";\r\nexport var STR_START_TRACK_PAGE = \"startTrackPage\";\r\nexport var STR_STOP_TRACK_PAGE = \"stopTrackPage\";\r\nexport var STR_FLUSH = \"flush\";\r\nexport var STR_START_TRACK_EVENT = \"startTrackEvent\";\r\nexport var STR_STOP_TRACK_EVENT = \"stopTrackEvent\";\r\nexport var STR_ADD_TELEMETRY_INITIALIZER = \"addTelemetryInitializer\";\r\nexport var STR_ADD_TELEMETRY_INITIALIZERS = STR_ADD_TELEMETRY_INITIALIZER + \"s\";\r\nexport var STR_POLL_INTERNAL_LOGS = \"pollInternalLogs\";\r\nexport var STR_GET_PLUGIN = \"getPlugin\";\r\nexport var STR_EVT_NAMESPACE = \"evtNamespace\";\r\nexport var STR_TRACK_EVENT = _TRACK + \"Event\";\r\nexport var STR_TRACK_TRACE = _TRACK + \"Trace\";\r\nexport var STR_TRACK_METRIC = _TRACK + \"Metric\";\r\nexport var STR_TRACK_PAGE_VIEW = _TRACK + \"PageView\";\r\nexport var STR_TRACK_EXCEPTION = _TRACK + \"Exception\";\r\nexport var STR_TRACK_DEPENDENCY_DATA = _TRACK + \"DependencyData\";\r\nexport var STR_SET_AUTHENTICATED_USER_CONTEXT = \"set\" + _AUTHENTICATED_USER_CONTEXT;\r\nexport var STR_CLEAR_AUTHENTICATED_USER_CONTEXT = \"clear\" + _AUTHENTICATED_USER_CONTEXT;\r\nexport var CONFIG_ENDPOINT_URL = \"https://js.monitor.azure.com/scripts/b/ai.config.1.cfg.json\";\r\n//# sourceMappingURL=InternalConstants.js.map","/*\n * Application Insights JavaScript SDK - Web, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n// @skip-file-minify\r\n// ##############################################################\r\n// AUTO GENERATED FILE: This file is Auto Generated during build.\r\n// ##############################################################\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\n// Note: DON'T Export these const from the package as we are still targeting ES3 this will export a mutable variables that someone could change!!!\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\nexport var _DYN_VERSION = \"version\"; // Count: 6\r\nexport var _DYN_QUEUE = \"queue\"; // Count: 6\r\nexport var _DYN_CONNECTION_STRING = \"connectionString\"; // Count: 4\r\nexport var _DYN_INSTRUMENTATION_KEY = \"instrumentationKey\"; // Count: 5\r\nexport var _DYN_INSTRUMENTATIONKEY0 = \"instrumentationkey\"; // Count: 2\r\nexport var _DYN_USER_OVERRIDE_ENDPOI1 = \"userOverrideEndpointUrl\"; // Count: 6\r\nexport var _DYN_ENDPOINT_URL = \"endpointUrl\"; // Count: 6\r\nexport var _DYN_INGESTIONENDPOINT = \"ingestionendpoint\"; // Count: 2\r\nexport var _DYN_ONUNLOAD_FLUSH = \"onunloadFlush\"; // Count: 6\r\nexport var _DYN_CONTEXT = \"context\"; // Count: 5\r\nexport var _DYN_ADD_HOUSEKEEPING_BEF2 = \"addHousekeepingBeforeUnload\"; // Count: 2\r\nexport var _DYN_SEND_MESSAGE = \"sendMessage\"; // Count: 3\r\nexport var _DYN_UPDATE_SNIPPET_DEFIN3 = \"updateSnippetDefinitions\"; // Count: 2\r\n//# sourceMappingURL=__DynamicConstants.js.map","/*\n * Application Insights JavaScript SDK - Web, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n\"use strict\";\r\nvar _a, _b, _c, _d;\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { AnalyticsPlugin } from \"@microsoft/applicationinsights-analytics-js\";\r\nimport { CfgSyncPlugin } from \"@microsoft/applicationinsights-cfgsync-js\";\r\nimport { Sender } from \"@microsoft/applicationinsights-channel-js\";\r\nimport { AnalyticsPluginIdentifier, DEFAULT_BREEZE_PATH, PropertiesPluginIdentifier, ThrottleMgr, parseConnectionString } from \"@microsoft/applicationinsights-common\";\r\nimport { AppInsightsCore, _throwInternal, addPageHideEventListener, addPageUnloadEventListener, cfgDfMerge, cfgDfValidate, createDynamicConfig, createProcessTelemetryContext, createUniqueNamespace, doPerf, hasDocument, hasWindow, isArray, isFeatureEnabled, isFunction, isNullOrUndefined, isReactNative, isString, mergeEvtNamespace, onConfigChange, proxyAssign, proxyFunctions, removePageHideEventListener, removePageUnloadEventListener } from \"@microsoft/applicationinsights-core-js\";\r\nimport { AjaxPlugin as DependenciesPlugin } from \"@microsoft/applicationinsights-dependencies-js\";\r\nimport { PropertiesPlugin } from \"@microsoft/applicationinsights-properties-js\";\r\nimport { createPromise, createSyncPromise, doAwaitResponse } from \"@nevware21/ts-async\";\r\nimport { arrForEach, arrIndexOf, isPromiseLike, objDefine, objForEachKey, strIndexOf, throwUnsupported } from \"@nevware21/ts-utils\";\r\nimport { CONFIG_ENDPOINT_URL, STR_ADD_TELEMETRY_INITIALIZER, STR_CLEAR_AUTHENTICATED_USER_CONTEXT, STR_EVT_NAMESPACE, STR_FLUSH, STR_GET_COOKIE_MGR, STR_GET_PLUGIN, STR_POLL_INTERNAL_LOGS, STR_SET_AUTHENTICATED_USER_CONTEXT, STR_SNIPPET, STR_START_TRACK_EVENT, STR_START_TRACK_PAGE, STR_STOP_TRACK_EVENT, STR_STOP_TRACK_PAGE, STR_TRACK_DEPENDENCY_DATA, STR_TRACK_EVENT, STR_TRACK_EXCEPTION, STR_TRACK_METRIC, STR_TRACK_PAGE_VIEW, STR_TRACK_TRACE } from \"./InternalConstants\";\r\nimport { _DYN_ADD_HOUSEKEEPING_BEF2, _DYN_CONNECTION_STRING, _DYN_CONTEXT, _DYN_ENDPOINT_URL, _DYN_INGESTIONENDPOINT, _DYN_INSTRUMENTATIONKEY0, _DYN_INSTRUMENTATION_KEY, _DYN_ONUNLOAD_FLUSH, _DYN_QUEUE, _DYN_SEND_MESSAGE, _DYN_UPDATE_SNIPPET_DEFIN3, _DYN_USER_OVERRIDE_ENDPOI1, _DYN_VERSION } from \"./__DynamicConstants\";\r\nvar _internalSdkSrc;\r\n// This is an exclude list of properties that should not be updated during initialization\r\n// They include a combination of private and internal property names\r\nvar _ignoreUpdateSnippetProperties = [\r\n STR_SNIPPET, \"dependencies\", \"properties\", \"_snippetVersion\", \"appInsightsNew\", \"getSKUDefaults\"\r\n];\r\nvar IKEY_USAGE = \"iKeyUsage\";\r\nvar CDN_USAGE = \"CdnUsage\";\r\nvar SDK_LOADER_VER = \"SdkLoaderVer\";\r\nvar UNDEFINED_VALUE = undefined;\r\nvar default_limit = {\r\n samplingRate: 100,\r\n maxSendNumber: 1\r\n};\r\nvar default_interval = {\r\n monthInterval: 3,\r\n daysOfMonth: [28]\r\n};\r\nvar default_throttle_config = {\r\n disabled: true,\r\n limit: cfgDfMerge(default_limit),\r\n interval: cfgDfMerge(default_interval)\r\n};\r\n// We need to include all properties that we only reference that we want to be dynamically updatable here\r\n// So they are converted even when not specified in the passed configuration\r\nvar defaultConfigValues = (_a = {},\r\n _a[_DYN_CONNECTION_STRING /* @min:connectionString */] = UNDEFINED_VALUE,\r\n _a[_DYN_ENDPOINT_URL /* @min:endpointUrl */] = UNDEFINED_VALUE,\r\n _a[_DYN_INSTRUMENTATION_KEY /* @min:instrumentationKey */] = UNDEFINED_VALUE,\r\n _a[_DYN_USER_OVERRIDE_ENDPOI1 /* @min:userOverrideEndpointUrl */] = UNDEFINED_VALUE,\r\n _a.diagnosticLogInterval = cfgDfValidate(_chkDiagLevel, 10000),\r\n _a.featureOptIn = (_b = {},\r\n _b[IKEY_USAGE] = { mode: 3 /* FeatureOptInMode.enable */ },\r\n _b[CDN_USAGE] = { mode: 2 /* FeatureOptInMode.disable */ },\r\n _b[SDK_LOADER_VER] = { mode: 2 /* FeatureOptInMode.disable */ },\r\n _b),\r\n _a.throttleMgrCfg = cfgDfMerge((_c = {},\r\n _c[109 /* _eInternalMessageId.DefaultThrottleMsgKey */] = cfgDfMerge(default_throttle_config),\r\n _c[106 /* _eInternalMessageId.InstrumentationKeyDeprecation */] = cfgDfMerge(default_throttle_config),\r\n _c[111 /* _eInternalMessageId.SdkLdrUpdate */] = cfgDfMerge(default_throttle_config),\r\n _c[110 /* _eInternalMessageId.CdnDeprecation */] = cfgDfMerge(default_throttle_config),\r\n _c)),\r\n _a.extensionConfig = cfgDfMerge((_d = {},\r\n _d[\"AppInsightsCfgSyncPlugin\"] = cfgDfMerge({\r\n cfgUrl: CONFIG_ENDPOINT_URL,\r\n syncMode: 2 /* ICfgSyncMode.Receive */\r\n }),\r\n _d)),\r\n _a);\r\nfunction _chkDiagLevel(value) {\r\n // Make sure we have a value > 0\r\n return value && value > 0;\r\n}\r\n/**\r\n * Application Insights API\r\n * @group Entrypoint\r\n * @group Classes\r\n * @class Initialization\r\n * @implements {IApplicationInsights}\r\n */\r\nvar AppInsightsSku = /** @class */ (function () {\r\n function AppInsightsSku(snippet) {\r\n var _this = this;\r\n // NOTE!: DON'T set default values here, instead set them in the _initDefaults() function as it is also called during teardown()\r\n var dependencies;\r\n var properties;\r\n var _sender;\r\n var _snippetVersion;\r\n var _evtNamespace;\r\n var _houseKeepingNamespace;\r\n var _core;\r\n var _config;\r\n var _analyticsPlugin;\r\n var _cfgSyncPlugin;\r\n var _throttleMgr;\r\n var _iKeySentMessage;\r\n var _cdnSentMessage;\r\n var _sdkVerSentMessage;\r\n dynamicProto(AppInsightsSku, this, function (_self) {\r\n _initDefaults();\r\n objDefine(_self, \"config\", {\r\n g: function () {\r\n return _config;\r\n }\r\n });\r\n arrForEach([\"pluginVersionStringArr\", \"pluginVersionString\"], function (key) {\r\n objDefine(_self, key, {\r\n g: function () {\r\n if (_core) {\r\n return _core[key];\r\n }\r\n return null;\r\n }\r\n });\r\n });\r\n // initialize the queue and config in case they are undefined\r\n _snippetVersion = \"\" + (snippet.sv || snippet[_DYN_VERSION /* @min:%2eversion */] || \"\");\r\n snippet[_DYN_QUEUE /* @min:%2equeue */] = snippet[_DYN_QUEUE /* @min:%2equeue */] || [];\r\n snippet[_DYN_VERSION /* @min:%2eversion */] = snippet[_DYN_VERSION /* @min:%2eversion */] || 2.0; // Default to new version\r\n var cfgHandler = createDynamicConfig(snippet.config || {}, defaultConfigValues);\r\n _config = cfgHandler.cfg;\r\n _analyticsPlugin = new AnalyticsPlugin();\r\n objDefine(_self, \"appInsights\", {\r\n g: function () {\r\n return _analyticsPlugin;\r\n }\r\n });\r\n properties = new PropertiesPlugin();\r\n dependencies = new DependenciesPlugin();\r\n _sender = new Sender();\r\n _core = new AppInsightsCore();\r\n objDefine(_self, \"core\", {\r\n g: function () {\r\n return _core;\r\n }\r\n });\r\n // Will get recalled if any referenced values are changed\r\n _addUnloadHook(onConfigChange(cfgHandler, function () {\r\n var configCs = _config[_DYN_CONNECTION_STRING /* @min:%2econnectionString */];\r\n function _parseCs() {\r\n return createSyncPromise(function (resolve, reject) {\r\n doAwaitResponse(configCs, function (res) {\r\n var curCs = res && res.value;\r\n var parsedCs = null;\r\n if (!res.rejected && curCs) {\r\n // replace cs with resolved values in case of circular promises\r\n _config[_DYN_CONNECTION_STRING /* @min:%2econnectionString */] = curCs;\r\n parsedCs = parseConnectionString(curCs);\r\n }\r\n // if can't resolve cs promise, null will be returned\r\n resolve(parsedCs);\r\n });\r\n });\r\n }\r\n if (isPromiseLike(configCs)) {\r\n var ikeyPromise = createSyncPromise(function (resolve, reject) {\r\n _parseCs().then(function (cs) {\r\n var ikey = _config[_DYN_INSTRUMENTATION_KEY /* @min:%2einstrumentationKey */];\r\n ikey = cs && cs[_DYN_INSTRUMENTATIONKEY0 /* @min:%2einstrumentationkey */] || ikey;\r\n resolve(ikey);\r\n }).catch(function (e) {\r\n // parseCs will always resolve(unless timeout)\r\n // return null in case any error happens\r\n resolve(null);\r\n });\r\n });\r\n var url = _config[_DYN_USER_OVERRIDE_ENDPOI1 /* @min:%2euserOverrideEndpointUrl */];\r\n if (isNullOrUndefined(url)) {\r\n url = createSyncPromise(function (resolve, reject) {\r\n _parseCs().then(function (cs) {\r\n var url = _config[_DYN_ENDPOINT_URL /* @min:%2eendpointUrl */];\r\n var ingest = cs && cs[_DYN_INGESTIONENDPOINT /* @min:%2eingestionendpoint */];\r\n url = ingest ? ingest + DEFAULT_BREEZE_PATH : url;\r\n resolve(url);\r\n }).catch(function (e) {\r\n // parseCs will always resolve(unless timeout)\r\n // return null in case any error happens\r\n resolve(null);\r\n });\r\n });\r\n }\r\n _config[_DYN_INSTRUMENTATION_KEY /* @min:%2einstrumentationKey */] = ikeyPromise;\r\n _config[_DYN_ENDPOINT_URL /* @min:%2eendpointUrl */] = url;\r\n }\r\n if (isString(configCs) && configCs) {\r\n // confirm if promiselike function present\r\n // handle cs promise here\r\n // add cases to oneNote\r\n var cs = parseConnectionString(configCs);\r\n var ingest = cs[_DYN_INGESTIONENDPOINT /* @min:%2eingestionendpoint */];\r\n _config.endpointUrl = _config[_DYN_USER_OVERRIDE_ENDPOI1 /* @min:%2euserOverrideEndpointUrl */] ? _config[_DYN_USER_OVERRIDE_ENDPOI1 /* @min:%2euserOverrideEndpointUrl */] : ingest + DEFAULT_BREEZE_PATH; // add /v2/track\r\n _config[_DYN_INSTRUMENTATION_KEY /* @min:%2einstrumentationKey */] = cs[_DYN_INSTRUMENTATIONKEY0 /* @min:%2einstrumentationkey */] || _config[_DYN_INSTRUMENTATION_KEY /* @min:%2einstrumentationKey */];\r\n }\r\n // userOverrideEndpointUrl have the highest priority\r\n _config.endpointUrl = _config[_DYN_USER_OVERRIDE_ENDPOI1 /* @min:%2euserOverrideEndpointUrl */] ? _config[_DYN_USER_OVERRIDE_ENDPOI1 /* @min:%2euserOverrideEndpointUrl */] : _config[_DYN_ENDPOINT_URL /* @min:%2eendpointUrl */];\r\n }));\r\n _self[STR_SNIPPET /* @min:%2esnippet */] = snippet;\r\n _self[STR_FLUSH /* @min:%2eflush */] = function (async, callBack) {\r\n if (async === void 0) { async = true; }\r\n var result;\r\n doPerf(_core, function () { return \"AISKU.flush\"; }, function () {\r\n if (async && !callBack) {\r\n result = createPromise(function (resolve) {\r\n callBack = resolve;\r\n });\r\n }\r\n var waiting = 1;\r\n var flushDone = function () {\r\n waiting--;\r\n if (waiting === 0) {\r\n callBack();\r\n }\r\n };\r\n arrForEach(_core.getChannels(), function (channel) {\r\n if (channel) {\r\n waiting++;\r\n channel[STR_FLUSH /* @min:%2eflush */](async, flushDone);\r\n }\r\n });\r\n // decrement the initial \"waiting\"\r\n flushDone();\r\n }, null, async);\r\n return result;\r\n };\r\n _self[_DYN_ONUNLOAD_FLUSH /* @min:%2eonunloadFlush */] = function (async) {\r\n if (async === void 0) { async = true; }\r\n arrForEach(_core.getChannels(), function (channel) {\r\n if (channel[_DYN_ONUNLOAD_FLUSH /* @min:%2eonunloadFlush */]) {\r\n channel[_DYN_ONUNLOAD_FLUSH /* @min:%2eonunloadFlush */]();\r\n }\r\n else {\r\n channel[STR_FLUSH /* @min:%2eflush */](async);\r\n }\r\n });\r\n };\r\n _self.loadAppInsights = function (legacyMode, logger, notificationManager) {\r\n if (legacyMode === void 0) { legacyMode = false; }\r\n if (legacyMode) {\r\n throwUnsupported(\"Legacy Mode is no longer supported\");\r\n }\r\n function _updateSnippetProperties(snippet) {\r\n if (snippet) {\r\n var snippetVer = \"\";\r\n if (!isNullOrUndefined(_snippetVersion)) {\r\n snippetVer += _snippetVersion;\r\n }\r\n if (_self[_DYN_CONTEXT /* @min:%2econtext */] && _self[_DYN_CONTEXT /* @min:%2econtext */].internal) {\r\n _self[_DYN_CONTEXT /* @min:%2econtext */].internal.snippetVer = snippetVer || \"-\";\r\n }\r\n // apply updated properties to the global instance (snippet)\r\n objForEachKey(_self, function (field, value) {\r\n if (isString(field) &&\r\n !isFunction(value) &&\r\n field && field[0] !== \"_\" && // Don't copy \"internal\" values\r\n arrIndexOf(_ignoreUpdateSnippetProperties, field) === -1) {\r\n if (snippet[field] !== value) {\r\n snippet[field] = value;\r\n }\r\n }\r\n });\r\n }\r\n }\r\n doPerf(_self.core, function () { return \"AISKU.loadAppInsights\"; }, function () {\r\n // initialize core\r\n _core.initialize(_config, [_sender, properties, dependencies, _analyticsPlugin, _cfgSyncPlugin], logger, notificationManager);\r\n objDefine(_self, \"context\", {\r\n g: function () { return properties[_DYN_CONTEXT /* @min:%2econtext */]; }\r\n });\r\n if (!_throttleMgr) {\r\n _throttleMgr = new ThrottleMgr(_core);\r\n }\r\n var sdkSrc = _findSdkSourceFile();\r\n if (sdkSrc && _self[_DYN_CONTEXT /* @min:%2econtext */]) {\r\n _self[_DYN_CONTEXT /* @min:%2econtext */].internal.sdkSrc = sdkSrc;\r\n }\r\n _updateSnippetProperties(_self[STR_SNIPPET /* @min:%2esnippet */]);\r\n // Empty queue of all api calls logged prior to sdk download\r\n _self.emptyQueue();\r\n _self[STR_POLL_INTERNAL_LOGS /* @min:%2epollInternalLogs */]();\r\n _self[_DYN_ADD_HOUSEKEEPING_BEF2 /* @min:%2eaddHousekeepingBeforeUnload */](_self);\r\n _addUnloadHook(onConfigChange(cfgHandler, function () {\r\n var defaultEnable = false;\r\n if (_config.throttleMgrCfg[109 /* _eInternalMessageId.DefaultThrottleMsgKey */]) {\r\n defaultEnable = !_config.throttleMgrCfg[109 /* _eInternalMessageId.DefaultThrottleMsgKey */].disabled;\r\n }\r\n if (!_throttleMgr.isReady() && _config.extensionConfig && _config.extensionConfig[_cfgSyncPlugin.identifier] && defaultEnable) {\r\n // set ready state to true will automatically trigger flush()\r\n _throttleMgr.onReadyState(true);\r\n }\r\n var result;\r\n if (!_iKeySentMessage && !_config[_DYN_CONNECTION_STRING /* @min:%2econnectionString */] && isFeatureEnabled(IKEY_USAGE, _config)) {\r\n result = _throttleMgr[_DYN_SEND_MESSAGE /* @min:%2esendMessage */](106 /* _eInternalMessageId.InstrumentationKeyDeprecation */, \"See Instrumentation key support at aka.ms/IkeyMigrate\");\r\n _iKeySentMessage = true;\r\n }\r\n if (!_cdnSentMessage && _self[_DYN_CONTEXT /* @min:%2econtext */].internal.sdkSrc && _self[_DYN_CONTEXT /* @min:%2econtext */].internal.sdkSrc.indexOf(\"az416426\") != -1 && isFeatureEnabled(CDN_USAGE, _config)) {\r\n result = _throttleMgr[_DYN_SEND_MESSAGE /* @min:%2esendMessage */](110 /* _eInternalMessageId.CdnDeprecation */, \"See Cdn support notice at aka.ms/JsActiveCdn\");\r\n _cdnSentMessage = true;\r\n }\r\n if (!_sdkVerSentMessage && parseInt(_snippetVersion) < 6 && isFeatureEnabled(SDK_LOADER_VER, _config)) {\r\n result = _throttleMgr[_DYN_SEND_MESSAGE /* @min:%2esendMessage */](111 /* _eInternalMessageId.SdkLdrUpdate */, \"An updated Sdk Loader is available, see aka.ms/SnippetVer\");\r\n _sdkVerSentMessage = true;\r\n }\r\n }));\r\n });\r\n return _self;\r\n };\r\n _self[_DYN_UPDATE_SNIPPET_DEFIN3 /* @min:%2eupdateSnippetDefinitions */] = function (snippet) {\r\n // apply full appInsights to the global instance\r\n // Note: This must be called before loadAppInsights is called\r\n proxyAssign(snippet, _self, function (name) {\r\n // Not excluding names prefixed with \"_\" as we need to proxy some functions like _onError\r\n return name && arrIndexOf(_ignoreUpdateSnippetProperties, name) === -1;\r\n });\r\n };\r\n _self.emptyQueue = function () {\r\n // call functions that were queued before the main script was loaded\r\n try {\r\n if (isArray(_self.snippet[_DYN_QUEUE /* @min:%2equeue */])) {\r\n // note: do not check length in the for-loop conditional in case something goes wrong and the stub methods are not overridden.\r\n var length_1 = _self.snippet[_DYN_QUEUE /* @min:%2equeue */].length;\r\n for (var i = 0; i < length_1; i++) {\r\n var call = _self.snippet[_DYN_QUEUE /* @min:%2equeue */][i];\r\n call();\r\n }\r\n _self.snippet[_DYN_QUEUE /* @min:%2equeue */] = undefined;\r\n delete _self.snippet[_DYN_QUEUE /* @min:%2equeue */];\r\n }\r\n }\r\n catch (exception) {\r\n var properties_1 = {};\r\n if (exception && isFunction(exception.toString)) {\r\n properties_1.exception = exception.toString();\r\n }\r\n // need from core\r\n // Microsoft.ApplicationInsights._InternalLogging.throwInternal(\r\n // eLoggingSeverity.WARNING,\r\n // _eInternalMessageId.FailedToSendQueuedTelemetry,\r\n // \"Failed to send queued telemetry\",\r\n // properties);\r\n }\r\n };\r\n _self[_DYN_ADD_HOUSEKEEPING_BEF2 /* @min:%2eaddHousekeepingBeforeUnload */] = function (appInsightsInstance) {\r\n // Add callback to push events when the user navigates away\r\n if (hasWindow() || hasDocument()) {\r\n var performHousekeeping_1 = function () {\r\n // Adds the ability to flush all data before the page unloads.\r\n // Note: This approach tries to push a sync request with all the pending events onbeforeunload.\r\n // Firefox does not respect this.Other browsers DO push out the call with < 100% hit rate.\r\n // Telemetry here will help us analyze how effective this approach is.\r\n // Another approach would be to make this call sync with a acceptable timeout to reduce the\r\n // impact on user experience.\r\n // appInsightsInstance.context._sender.triggerSend();\r\n appInsightsInstance[_DYN_ONUNLOAD_FLUSH /* @min:%2eonunloadFlush */](false);\r\n // Back up the current session to local storage\r\n // This lets us close expired sessions after the cookies themselves expire\r\n if (isFunction(_self.core[STR_GET_PLUGIN /* @min:%2egetPlugin */])) {\r\n var loadedPlugin = _this.core[STR_GET_PLUGIN /* @min:%2egetPlugin */](PropertiesPluginIdentifier);\r\n if (loadedPlugin) {\r\n var propertiesPlugin = loadedPlugin.plugin;\r\n if (propertiesPlugin && propertiesPlugin[_DYN_CONTEXT /* @min:%2econtext */] && propertiesPlugin[_DYN_CONTEXT /* @min:%2econtext */]._sessionManager) {\r\n propertiesPlugin[_DYN_CONTEXT /* @min:%2econtext */]._sessionManager.backup();\r\n }\r\n }\r\n }\r\n };\r\n var added_1 = false;\r\n if (!_houseKeepingNamespace) {\r\n _houseKeepingNamespace = mergeEvtNamespace(_evtNamespace, _core[STR_EVT_NAMESPACE /* @min:%2eevtNamespace */] && _core[STR_EVT_NAMESPACE /* @min:%2eevtNamespace */]());\r\n }\r\n // Will be recalled if any referenced config properties change\r\n _addUnloadHook(onConfigChange(_config, function (details) {\r\n var coreConfig = details.cfg;\r\n var analyticsPlugin = appInsightsInstance.appInsights;\r\n var ctx = createProcessTelemetryContext(null, coreConfig, analyticsPlugin.core);\r\n var extConfig = ctx.getExtCfg(analyticsPlugin.identifier || AnalyticsPluginIdentifier);\r\n // As we could get recalled, remove any previously registered event handlers first\r\n _removePageEventHandlers();\r\n var excludePageUnloadEvents = coreConfig.disablePageUnloadEvents;\r\n if (!extConfig.disableFlushOnBeforeUnload) {\r\n // Hook the unload event for the document, window and body to ensure that the client events are flushed to the server\r\n // As just hooking the window does not always fire (on chrome) for page navigation's.\r\n if (addPageUnloadEventListener(performHousekeeping_1, excludePageUnloadEvents, _houseKeepingNamespace)) {\r\n added_1 = true;\r\n }\r\n // We also need to hook the pagehide and visibilitychange events as not all versions of Safari support load/unload events.\r\n if (addPageHideEventListener(performHousekeeping_1, excludePageUnloadEvents, _houseKeepingNamespace)) {\r\n added_1 = true;\r\n }\r\n // A reactNative app may not have a window and therefore the beforeunload/pagehide events -- so don't\r\n // log the failure in this case\r\n if (!added_1 && !isReactNative()) {\r\n _throwInternal(_core.logger, 1 /* eLoggingSeverity.CRITICAL */, 19 /* _eInternalMessageId.FailedToAddHandlerForOnBeforeUnload */, \"Could not add handler for beforeunload and pagehide\");\r\n }\r\n }\r\n if (!added_1 && !extConfig.disableFlushOnUnload) {\r\n // If we didn't add the normal set then attempt to add the pagehide and visibilitychange only\r\n addPageHideEventListener(performHousekeeping_1, excludePageUnloadEvents, _houseKeepingNamespace);\r\n }\r\n }));\r\n }\r\n };\r\n _self.getSender = function () {\r\n return _sender;\r\n };\r\n _self.unload = function (isAsync, unloadComplete, cbTimeout) {\r\n var unloadDone = false;\r\n var result;\r\n if (isAsync && !unloadComplete) {\r\n result = createPromise(function (resolve) {\r\n // Set the callback to the promise resolve callback\r\n unloadComplete = resolve;\r\n });\r\n }\r\n function _unloadCallback(unloadState) {\r\n if (!unloadDone) {\r\n unloadDone = true;\r\n _initDefaults();\r\n unloadComplete && unloadComplete(unloadState);\r\n }\r\n }\r\n _self[_DYN_ONUNLOAD_FLUSH /* @min:%2eonunloadFlush */](isAsync);\r\n _removePageEventHandlers();\r\n _core.unload && _core.unload(isAsync, _unloadCallback, cbTimeout);\r\n return result;\r\n };\r\n proxyFunctions(_self, _analyticsPlugin, [\r\n STR_GET_COOKIE_MGR,\r\n STR_TRACK_EVENT,\r\n STR_TRACK_PAGE_VIEW,\r\n \"trackPageViewPerformance\",\r\n STR_TRACK_EXCEPTION,\r\n \"_onerror\",\r\n STR_TRACK_TRACE,\r\n STR_TRACK_METRIC,\r\n STR_START_TRACK_PAGE,\r\n STR_STOP_TRACK_PAGE,\r\n STR_START_TRACK_EVENT,\r\n STR_STOP_TRACK_EVENT\r\n ]);\r\n proxyFunctions(_self, _getCurrentDependencies, [\r\n STR_TRACK_DEPENDENCY_DATA,\r\n \"addDependencyListener\",\r\n \"addDependencyInitializer\"\r\n ]);\r\n proxyFunctions(_self, _core, [\r\n STR_ADD_TELEMETRY_INITIALIZER,\r\n STR_POLL_INTERNAL_LOGS,\r\n \"stopPollingInternalLogs\",\r\n STR_GET_PLUGIN,\r\n \"addPlugin\",\r\n STR_EVT_NAMESPACE,\r\n \"addUnloadCb\",\r\n \"getTraceCtx\",\r\n \"updateCfg\",\r\n \"onCfgChange\"\r\n ]);\r\n proxyFunctions(_self, function () {\r\n var context = properties[_DYN_CONTEXT /* @min:%2econtext */];\r\n return context ? context.user : null;\r\n }, [\r\n STR_SET_AUTHENTICATED_USER_CONTEXT,\r\n STR_CLEAR_AUTHENTICATED_USER_CONTEXT\r\n ]);\r\n // Using a function to support the dynamic adding / removal of plugins, so this will always return the current value\r\n function _getCurrentDependencies() {\r\n return dependencies;\r\n }\r\n function _initDefaults() {\r\n _evtNamespace = createUniqueNamespace(\"AISKU\");\r\n _houseKeepingNamespace = null;\r\n dependencies = null;\r\n properties = null;\r\n _sender = null;\r\n _snippetVersion = null;\r\n _throttleMgr = null;\r\n _iKeySentMessage = false;\r\n _cdnSentMessage = false;\r\n _sdkVerSentMessage = false;\r\n _cfgSyncPlugin = new CfgSyncPlugin();\r\n }\r\n function _removePageEventHandlers() {\r\n // Remove any registered event handlers\r\n if (_houseKeepingNamespace) {\r\n removePageUnloadEventListener(null, _houseKeepingNamespace);\r\n removePageHideEventListener(null, _houseKeepingNamespace);\r\n }\r\n }\r\n function _addUnloadHook(hooks) {\r\n _core.addUnloadHook(hooks);\r\n }\r\n });\r\n }\r\n // Analytics Plugin\r\n// Removed Stub for AppInsightsSku.prototype.getCookieMgr.\r\n// Removed Stub for AppInsightsSku.prototype.trackEvent.\r\n// Removed Stub for AppInsightsSku.prototype.trackPageView.\r\n// Removed Stub for AppInsightsSku.prototype.trackPageViewPerformance.\r\n// Removed Stub for AppInsightsSku.prototype.trackException.\r\n// Removed Stub for AppInsightsSku.prototype._onerror.\r\n// Removed Stub for AppInsightsSku.prototype.trackTrace.\r\n// Removed Stub for AppInsightsSku.prototype.trackMetric.\r\n// Removed Stub for AppInsightsSku.prototype.startTrackPage.\r\n// Removed Stub for AppInsightsSku.prototype.stopTrackPage.\r\n// Removed Stub for AppInsightsSku.prototype.startTrackEvent.\r\n// Removed Stub for AppInsightsSku.prototype.stopTrackEvent.\r\n// Removed Stub for AppInsightsSku.prototype.addTelemetryInitializer.\r\n // Properties Plugin\r\n// Removed Stub for AppInsightsSku.prototype.setAuthenticatedUserContext.\r\n// Removed Stub for AppInsightsSku.prototype.clearAuthenticatedUserContext.\r\n // Dependencies Plugin\r\n// Removed Stub for AppInsightsSku.prototype.trackDependencyData.\r\n // Misc\r\n// Removed Stub for AppInsightsSku.prototype.flush.\r\n// Removed Stub for AppInsightsSku.prototype.onunloadFlush.\r\n// Removed Stub for AppInsightsSku.prototype.loadAppInsights.\r\n// Removed Stub for AppInsightsSku.prototype.updateSnippetDefinitions.\r\n// Removed Stub for AppInsightsSku.prototype.emptyQueue.\r\n// Removed Stub for AppInsightsSku.prototype.pollInternalLogs.\r\n// Removed Stub for AppInsightsSku.prototype.stopPollingInternalLogs.\r\n// Removed Stub for AppInsightsSku.prototype.addHousekeepingBeforeUnload.\r\n// Removed Stub for AppInsightsSku.prototype.getSender.\r\n// Removed Stub for AppInsightsSku.prototype.unload.\r\n// Removed Stub for AppInsightsSku.prototype.getPlugin.\r\n// Removed Stub for AppInsightsSku.prototype.addPlugin.\r\n// Removed Stub for AppInsightsSku.prototype.updateCfg.\r\n// Removed Stub for AppInsightsSku.prototype.evtNamespace.\r\n// Removed Stub for AppInsightsSku.prototype.addUnloadCb.\r\n// Removed Stub for AppInsightsSku.prototype.addDependencyListener.\r\n /**\r\n * Add an dependency telemetry initializer callback function to allow populating additional properties or drop the request.\r\n * It is called after the dependency call has completed and any available performance details are available. A dependency\r\n * initializer is similar to the TelemetryInitializer function but it allows you to block the reporting of the dependency\r\n * request so that it doesn't count against the `maxAjaxCallsPerView`.\r\n * @param dependencyInitializer - The Dependency Telemetry Initializer function\r\n * @returns - A IDependencyInitializerHandler to enable the initializer to be removed\r\n */\r\n AppInsightsSku.prototype.addDependencyInitializer = function (dependencyInitializer) {\r\n return null;\r\n };\r\n// Removed Stub for AppInsightsSku.prototype.getTraceCtx.\r\n// Removed Stub for AppInsightsSku.prototype.onCfgChange.\r\n return AppInsightsSku;\r\n}());\r\nexport { AppInsightsSku };\r\n// tslint:disable-next-line\r\nexport function _findSdkSourceFile() {\r\n if (_internalSdkSrc) {\r\n // Use the cached value\r\n return _internalSdkSrc;\r\n }\r\n var sdkSrc = null;\r\n var isModule = false;\r\n var cdns = [\r\n \"://js.monitor.azure.com/\",\r\n \"://az416426.vo.msecnd.net/\"\r\n ];\r\n try {\r\n // Try and determine whether the sdk is being loaded from the CDN\r\n // currentScript is only valid during initial processing\r\n var scrpt = (document || {}).currentScript;\r\n if (scrpt) {\r\n sdkSrc = scrpt.src;\r\n // } else {\r\n // // We need to update to at least typescript 2.9 for this to work :-(\r\n // // Leaving as a stub for now so after we upgrade this breadcrumb is available\r\n // let meta = import.meta;\r\n // sdkSrc = (meta || {}).url;\r\n // isModule = true;\r\n }\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n if (sdkSrc) {\r\n try {\r\n var url_1 = sdkSrc.toLowerCase();\r\n if (url_1) {\r\n var src_1 = \"\";\r\n arrForEach(cdns, function (value, idx) {\r\n if (strIndexOf(url_1, value) !== -1) {\r\n src_1 = \"cdn\" + (idx + 1);\r\n if (strIndexOf(url_1, \"/scripts/\") === -1) {\r\n if (strIndexOf(url_1, \"/next/\") !== -1) {\r\n src_1 += \"-next\";\r\n }\r\n else if (strIndexOf(url_1, \"/beta/\") !== -1) {\r\n src_1 += \"-beta\";\r\n }\r\n }\r\n _internalSdkSrc = src_1 + (isModule ? \".mod\" : \"\");\r\n return -1;\r\n }\r\n });\r\n }\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n // Cache the found value so we don't have to look it up again\r\n _internalSdkSrc = sdkSrc;\r\n }\r\n return _internalSdkSrc;\r\n}\r\n//# sourceMappingURL=AISku.js.map","/* eslint-disable @typescript-eslint/no-unsafe-return */\n/* eslint-disable @typescript-eslint/no-unsafe-assignment */\nimport { Config } from '../interfaces/Config';\nimport { startsWith } from 'utils/collection';\n\nconst ADS_PREFIX = 'ads:';\nconst ADS_SESSION_KEY = 'ads-persist-config';\n\n/**\n * Interface for the config object\n */\nexport interface ConfigObject {\n reset: (configObj: Config) => void;\n get: (key: keyof Config, fallback?: any) => any;\n getBoolean: (key: keyof Config, fallback?: boolean) => boolean;\n getNumber: (key: keyof Config, fallback?: number) => number;\n set: (key: keyof Config, value: any) => void;\n}\n\n/**\n * Class representing an ADS config\n * @implements {ConfigObject}\n * @hidden\n */\nclass ConfigObjectClass implements ConfigObject {\n private m = new Map();\n\n reset(configObj: Config): void {\n this.m = new Map(Object.entries(configObj) as any);\n }\n\n get(key: keyof Config, fallback?: any): any {\n const value = this.m.get(key);\n return value !== undefined ? value : fallback;\n }\n\n getBoolean(key: keyof Config, fallback = false): boolean {\n const val = this.m.get(key);\n if (val === undefined) {\n return fallback;\n }\n if (typeof val === 'string') {\n return val === 'true';\n }\n return !!val;\n }\n\n getNumber(key: keyof Config, fallback?: number): number {\n const val = parseFloat(this.m.get(key));\n return isNaN(val) ? (fallback !== undefined ? fallback : NaN) : val;\n }\n\n set(key: keyof Config, value: any): void {\n this.m.set(key, value);\n }\n}\n\nexport const config = /*@__PURE__*/ new ConfigObjectClass();\n\n/**\n * Save a config object\n * @param {Window} win The window object\n * @param {Config} c The config object\n * @hidden\n */\nexport const saveConfig = (win: Window, c: Config): void => {\n try {\n win.sessionStorage.setItem(ADS_SESSION_KEY, JSON.stringify(c));\n } catch (err) {\n return;\n }\n};\n\n/**\n * Return a config object from a session\n * @param {Window} win The window object\n * @returns {Config} The config object\n * @hidden\n */\nexport const configFromSession = (win: Window): Config => {\n try {\n const configStr = win.sessionStorage.getItem(ADS_SESSION_KEY);\n return configStr !== null ? JSON.parse(configStr) : {};\n } catch (err) {\n return {};\n }\n};\n\n/**\n * Return a config object from a given url\n * @param {Window} win The window object\n * @returns {Config} The config object\n * @hidden\n */\nexport const configFromURL = (win: Window): Config => {\n const configObj: any = {};\n win.location.search\n .slice(1)\n .split('&')\n .map((entry) => entry.split('='))\n .map(([key, value]) => [decodeURIComponent(key), decodeURIComponent(value)])\n .filter(([key]) => startsWith(key, ADS_PREFIX))\n .map(([key, value]) => [key.slice(ADS_PREFIX.length), value])\n .forEach(([key, value]) => {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n configObj[key] = value;\n });\n\n return configObj;\n};\n","/* eslint-disable @typescript-eslint/no-unsafe-assignment */\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\nimport { ApplicationInsights } from '@microsoft/applicationinsights-web';\nimport { Config } from '../interfaces/Config';\nimport { Dictionary } from '../classes/Dictionary';\nimport { ITelemetryItem } from '@microsoft/applicationinsights-core-js';\nimport { Languages, Theme, Themes, WindowGlobal } from '../types/globalTypes';\nimport { config, configFromSession, configFromURL, saveConfig } from '../classes/Config';\nimport { environment, instrumentationKey, version } from './AppInsights/constants';\nimport { isNullOrUndefined } from 'utils/collection';\n\n/**\n * Initialise the Arm Design System global settings\n * @param {Config} configFromUser The user's config\n */\nexport const initialise = (configFromUser: Config = {}): void => {\n if (isNullOrUndefined(typeof (window as Window))) {\n return;\n }\n\n const win = window;\n const doc = win.document;\n\n // Expose the Arm Design System object globally\n const ArmDesignSystem = ((win as WindowGlobal)['ArmDesignSystem'] = (win as WindowGlobal)['ArmDesignSystem'] || {});\n\n // Define the ADS config\n const configObj: Config = {\n ...configFromSession(win),\n _persistConfig: false,\n ...ArmDesignSystem.config,\n ...configFromURL(win),\n ...configFromUser,\n };\n\n // Update the config\n config.reset(configObj);\n if (config.getBoolean('_persistConfig')) {\n saveConfig(win, configObj);\n }\n\n // Set the language\n const defaultLanguage: string = config.get('language', doc.documentElement?.getAttribute('lang') || Languages.EN);\n config.set('language', defaultLanguage);\n if (!isNullOrUndefined(doc.documentElement)) {\n doc.documentElement.setAttribute('lang', defaultLanguage);\n }\n\n // Set the theme\n const defaultTheme: Theme = config.get('theme', doc.documentElement?.getAttribute('theme') || Themes.DEFAULT);\n config.set('theme', defaultTheme);\n if (!isNullOrUndefined(doc.documentElement)) {\n doc.documentElement?.setAttribute('theme', defaultTheme);\n }\n\n // Update the global config object\n if (isNullOrUndefined(win.location?.host)) {\n config.set('_isTesting', true);\n }\n if (config.getBoolean('_isTesting')) {\n config.set('isAnimated', false);\n }\n\n ArmDesignSystem.config = config;\n\n // Initialise i18next\n if (!isNullOrUndefined(config.get('i18n'))) {\n void Dictionary.init(config.get('i18n'));\n }\n\n // Initialise the pipeline\n ArmDesignSystem.pipeline = new Map();\n\n // Initialise AppInsights\n if (!config.getBoolean('_isTesting')) {\n const appInsights = new ApplicationInsights({\n config: { instrumentationKey, disablePageUnloadEvents: ['unload'] },\n });\n\n appInsights.loadAppInsights();\n const telemetryInitializer = (item: ITelemetryItem): void => {\n item.data.host = window.location.host;\n item.data.referrer = window.location.href;\n item.data.environment = environment;\n item.data.version = version;\n };\n appInsights.addTelemetryInitializer(telemetryInitializer);\n appInsights.trackPageView({ name: 'ADS installed' });\n (window as WindowGlobal)['AppInsights'] = appInsights;\n }\n};\n\nexport default initialise;\n","import appGlobalScript from '/home/vsts/work/1/s/core/src/components/core/global/ads-global.ts';\nexport const globalScripts = appGlobalScript;\n"],"mappings":"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","ignoreList":[]}